From 342bd09678461dce5b5da7efb846bc809e283e7e Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Fri, 12 May 2023 16:17:59 +0200 Subject: [PATCH 01/11] pie : add Pattern Patterns were already added to a few trace types in Plotly, like bar & scatter. Hereby a first version to do so for pie charts, cf. Feature request: ability to add pattern fills to pie chart #6134 --- src/components/drawing/index.js | 4 ++-- src/components/legend/style.js | 2 +- src/traces/pie/attributes.js | 2 ++ src/traces/pie/defaults.js | 7 ++++++- src/traces/pie/style.js | 2 +- src/traces/pie/style_one.js | 21 +++++++++++++++++++-- 6 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/components/drawing/index.js b/src/components/drawing/index.js index 9e680f17999..ba4dd9e5ac4 100644 --- a/src/components/drawing/index.js +++ b/src/components/drawing/index.js @@ -699,7 +699,7 @@ drawing.singlePointStyle = function(d, sel, trace, fns, gd) { if('mc' in d) { fillColor = d.mcc = fns.markerScale(d.mc); } else { - fillColor = marker.color || 'rgba(0,0,0,0)'; + fillColor = marker.color || marker.colors || 'rgba(0,0,0,0)'; } if(fns.selectedColorFn) { @@ -766,7 +766,7 @@ drawing.singlePointStyle = function(d, sel, trace, fns, gd) { patternBGColor, patternFGColor, patternFGOpacity ); } else { - Color.fill(sel, fillColor); + Lib.isArrayOrTypedArray(fillColor) ? Color.fill(sel, fillColor[d.i]) : Color.fill(sel, fillColor); } if(lineWidth) { diff --git a/src/components/legend/style.js b/src/components/legend/style.js index 72bc7f67c13..91ae4b6eb09 100644 --- a/src/components/legend/style.js +++ b/src/components/legend/style.js @@ -512,7 +512,7 @@ module.exports = function style(s, gd, legend) { var d0Mod = Lib.minExtend(d0, {trace: tMod}); - stylePie(pts, d0Mod, tMod); + stylePie(pts, d0Mod, tMod, gd); } } diff --git a/src/traces/pie/attributes.js b/src/traces/pie/attributes.js index ef4f7252b7f..b30d6ad519c 100644 --- a/src/traces/pie/attributes.js +++ b/src/traces/pie/attributes.js @@ -8,6 +8,7 @@ var hovertemplateAttrs = require('../../plots/template_attributes').hovertemplat var texttemplateAttrs = require('../../plots/template_attributes').texttemplateAttrs; var extendFlat = require('../../lib/extend').extendFlat; +var pattern = require('../../components/drawing/attributes').pattern; var textFontAttrs = fontAttrs({ editType: 'plot', @@ -89,6 +90,7 @@ module.exports = { }, editType: 'calc' }, + pattern: pattern, editType: 'calc' }, diff --git a/src/traces/pie/defaults.js b/src/traces/pie/defaults.js index 806897d12dc..9e3be392996 100644 --- a/src/traces/pie/defaults.js +++ b/src/traces/pie/defaults.js @@ -5,6 +5,7 @@ var Lib = require('../../lib'); var attributes = require('./attributes'); var handleDomainDefaults = require('../../plots/domain').defaults; var handleText = require('../bar/defaults').handleText; +var coercePattern = require('../../lib').coercePattern; function handleLabelsAndValues(labels, values) { var hasLabels = Array.isArray(labels); @@ -64,7 +65,11 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { var lineWidth = coerce('marker.line.width'); if(lineWidth) coerce('marker.line.color'); - coerce('marker.colors'); + var markerColors = coerce('marker.colors'); + coercePattern(coerce, 'marker.pattern', markerColors); + // push the marker colors (with s) to the foreground colors, to work around logic in the drawing pattern code on marker.color (without s, which is okay for a bar trace) + if(!traceOut.marker.pattern.fgcolor) traceOut.marker.pattern.fgcolor = traceIn.marker.colors; + if(!traceOut.marker.pattern.bgcolor) traceOut.marker.pattern.bgcolor = layout.paper_bgcolor; coerce('scalegroup'); // TODO: hole needs to be coerced to the same value within a scaleegroup diff --git a/src/traces/pie/style.js b/src/traces/pie/style.js index 9a1929a5311..08df15982b4 100644 --- a/src/traces/pie/style.js +++ b/src/traces/pie/style.js @@ -17,7 +17,7 @@ module.exports = function style(gd) { traceSelection.style({opacity: trace.opacity}); traceSelection.selectAll('path.surface').each(function(pt) { - d3.select(this).call(styleOne, pt, trace); + d3.select(this).call(styleOne, pt, trace, gd); }); }); }; diff --git a/src/traces/pie/style_one.js b/src/traces/pie/style_one.js index 943a69e6b37..e7f5b20c5e0 100644 --- a/src/traces/pie/style_one.js +++ b/src/traces/pie/style_one.js @@ -2,13 +2,30 @@ var Color = require('../../components/color'); var castOption = require('./helpers').castOption; +var Drawing = require('../../components/drawing'); -module.exports = function styleOne(s, pt, trace) { +module.exports = function styleOne(s, pt, trace, gd) { var line = trace.marker.line; var lineColor = castOption(line.color, pt.pts) || Color.defaultLine; var lineWidth = castOption(line.width, pt.pts) || 0; + // some temporary console statements, for later debugging, needs to be removed once the assembler below gets clean + // console.log('styleOne - s0', s[0], s[0][0], '__data__', s[0][0].__data__); + // console.log( 's0 iiiiiiiii pie : ', (s[0][0].__data__.i !== undefined ? s[0][0].__data__.i : 'nope')); + // console.log( 's0 iiiiiiiii legend : ', (s[0][0].__data__[0] !== undefined ? s[0][0].__data__[0].i : 'nope')); + // console.log( 'pie style_one: s', s, 'trace', trace, 'gd', gd); + + // to do: rework this assembler code in a next iteration. + if(s[0][0].__data__.i === undefined) { + // coming from a legend + s[0][0].__data__.i = s[0][0].__data__[0].i; + } + // console.log( 's0 - i : ', s[0][0].__data__['i']); + + Drawing.pointStyle(s, trace, gd); + // to do : push into s.style d3 logic + s.style('stroke-width', lineWidth) - .call(Color.fill, pt.color) + // .call(Color.fill, pt.color) .call(Color.stroke, lineColor); }; From 1cce2549fd1aee5203886580e16f43338ca81abe Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Fri, 12 May 2023 17:00:03 +0200 Subject: [PATCH 02/11] piePattern : add md & fix reference to colors only reference traceIn.marker.colors if traceIn.marker exists --- draftlogs/6601_add.md | 1 + src/traces/pie/defaults.js | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 draftlogs/6601_add.md diff --git a/draftlogs/6601_add.md b/draftlogs/6601_add.md new file mode 100644 index 00000000000..b42c26e127d --- /dev/null +++ b/draftlogs/6601_add.md @@ -0,0 +1 @@ +- add pattern to pie trace type [[#6601](https://github.com/plotly/plotly.js/pull/6601)] diff --git a/src/traces/pie/defaults.js b/src/traces/pie/defaults.js index 9e3be392996..2b780c2111c 100644 --- a/src/traces/pie/defaults.js +++ b/src/traces/pie/defaults.js @@ -68,7 +68,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { var markerColors = coerce('marker.colors'); coercePattern(coerce, 'marker.pattern', markerColors); // push the marker colors (with s) to the foreground colors, to work around logic in the drawing pattern code on marker.color (without s, which is okay for a bar trace) - if(!traceOut.marker.pattern.fgcolor) traceOut.marker.pattern.fgcolor = traceIn.marker.colors; + if(!traceOut.marker.pattern.fgcolor && traceIn.marker !== undefined) traceOut.marker.pattern.fgcolor = traceIn.marker.colors; if(!traceOut.marker.pattern.bgcolor) traceOut.marker.pattern.bgcolor = layout.paper_bgcolor; coerce('scalegroup'); From fedbe67ff48705505a28e31b77d8551d9c002378 Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Fri, 12 May 2023 19:28:50 +0200 Subject: [PATCH 03/11] Update src/traces/pie/defaults.js Co-authored-by: Mojtaba Samimi <33888540+archmoj@users.noreply.github.com> --- src/traces/pie/defaults.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/pie/defaults.js b/src/traces/pie/defaults.js index 2b780c2111c..953619a94b7 100644 --- a/src/traces/pie/defaults.js +++ b/src/traces/pie/defaults.js @@ -68,7 +68,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) { var markerColors = coerce('marker.colors'); coercePattern(coerce, 'marker.pattern', markerColors); // push the marker colors (with s) to the foreground colors, to work around logic in the drawing pattern code on marker.color (without s, which is okay for a bar trace) - if(!traceOut.marker.pattern.fgcolor && traceIn.marker !== undefined) traceOut.marker.pattern.fgcolor = traceIn.marker.colors; + if(traceIn.marker && !traceOut.marker.pattern.fgcolor) traceOut.marker.pattern.fgcolor = traceIn.marker.colors; if(!traceOut.marker.pattern.bgcolor) traceOut.marker.pattern.bgcolor = layout.paper_bgcolor; coerce('scalegroup'); From c24ae98479cce597972bea847cd4e8c6acd4ccff Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Fri, 12 May 2023 20:23:27 +0200 Subject: [PATCH 04/11] piePattern : use the old point color when no shape present + plot-schema.json after running npm run schema --- src/traces/pie/style_one.js | 4 +- test/plot-schema.json | 93 +++++++++++++++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 1 deletion(-) diff --git a/src/traces/pie/style_one.js b/src/traces/pie/style_one.js index e7f5b20c5e0..f95dfc84259 100644 --- a/src/traces/pie/style_one.js +++ b/src/traces/pie/style_one.js @@ -20,7 +20,9 @@ module.exports = function styleOne(s, pt, trace, gd) { // coming from a legend s[0][0].__data__.i = s[0][0].__data__[0].i; } - // console.log( 's0 - i : ', s[0][0].__data__['i']); + // console.log( 's0 - i : ', s[0][0].__data__['i'], 'pt.color', pt.color, 'trace', trace); + + if(!trace.marker.shape) trace.marker.color = pt.color; Drawing.pointStyle(s, trace, gd); // to do : push into s.style d3 logic diff --git a/test/plot-schema.json b/test/plot-schema.json index 8a2c9e85e44..3533572f2c4 100644 --- a/test/plot-schema.json +++ b/test/plot-schema.json @@ -41856,6 +41856,99 @@ "valType": "string" } }, + "pattern": { + "bgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of background pattern fill. Defaults to a `marker.color` background when `fillmode` is *overlay*. Otherwise, defaults to a transparent background.", + "editType": "style", + "valType": "color" + }, + "bgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `bgcolor`.", + "editType": "none", + "valType": "string" + }, + "description": "Sets the pattern within the marker.", + "editType": "style", + "fgcolor": { + "arrayOk": true, + "description": "When there is no colorscale sets the color of foreground pattern fill. Defaults to a `marker.color` background when `fillmode` is *replace*. Otherwise, defaults to dark grey or white to increase contrast with the `bgcolor`.", + "editType": "style", + "valType": "color" + }, + "fgcolorsrc": { + "description": "Sets the source reference on Chart Studio Cloud for `fgcolor`.", + "editType": "none", + "valType": "string" + }, + "fgopacity": { + "description": "Sets the opacity of the foreground pattern fill. Defaults to a 0.5 when `fillmode` is *overlay*. Otherwise, defaults to 1.", + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "fillmode": { + "description": "Determines whether `marker.color` should be used as a default to `bgcolor` or a `fgcolor`.", + "dflt": "replace", + "editType": "style", + "valType": "enumerated", + "values": [ + "replace", + "overlay" + ] + }, + "role": "object", + "shape": { + "arrayOk": true, + "description": "Sets the shape of the pattern fill. By default, no pattern is used for filling the area.", + "dflt": "", + "editType": "style", + "valType": "enumerated", + "values": [ + "", + "/", + "\\", + "x", + "-", + "|", + "+", + "." + ] + }, + "shapesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `shape`.", + "editType": "none", + "valType": "string" + }, + "size": { + "arrayOk": true, + "description": "Sets the size of unit squares of the pattern fill in pixels, which corresponds to the interval of repetition of the pattern.", + "dflt": 8, + "editType": "style", + "min": 0, + "valType": "number" + }, + "sizesrc": { + "description": "Sets the source reference on Chart Studio Cloud for `size`.", + "editType": "none", + "valType": "string" + }, + "solidity": { + "arrayOk": true, + "description": "Sets the solidity of the pattern fill. Solidity is roughly the fraction of the area filled by the pattern. Solidity of 0 shows only the background color without pattern and solidty of 1 shows only the foreground color without pattern.", + "dflt": 0.3, + "editType": "style", + "max": 1, + "min": 0, + "valType": "number" + }, + "soliditysrc": { + "description": "Sets the source reference on Chart Studio Cloud for `solidity`.", + "editType": "none", + "valType": "string" + } + }, "role": "object" }, "meta": { From e40e0788a6fdc323e1d1dff2af1a551ef5cb9f5b Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Sat, 13 May 2023 15:16:57 +0200 Subject: [PATCH 05/11] piePattern : rework styleOne in case no colors defined fixes bug (trace.marker.shape) & logic. --- src/traces/pie/style_one.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/traces/pie/style_one.js b/src/traces/pie/style_one.js index f95dfc84259..1688ec19e37 100644 --- a/src/traces/pie/style_one.js +++ b/src/traces/pie/style_one.js @@ -22,7 +22,10 @@ module.exports = function styleOne(s, pt, trace, gd) { } // console.log( 's0 - i : ', s[0][0].__data__['i'], 'pt.color', pt.color, 'trace', trace); - if(!trace.marker.shape) trace.marker.color = pt.color; + // enforce the point color, when colors (with s) & the pattern shape are missing. + // 'abuse' the color attribute, used in the Drawing component for bar trace type. + // alternative could be to pass the point color as an extra parameter in pointStyle + if(!trace.marker.colors && !trace.marker.pattern.shape) trace.marker.color = pt.color; Drawing.pointStyle(s, trace, gd); // to do : push into s.style d3 logic From a683c2a5b4b392ec8342367389f0280226cd9769 Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Sat, 13 May 2023 20:11:27 +0200 Subject: [PATCH 06/11] piePattern : extra check on trace.marker.pattern The styleOne function is also used by the funnelarea trace type, which has no pattern in it's schema at the moment, so extra check if pattern exists, before checking if a shape exists within the pattern. --- src/traces/pie/style_one.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/pie/style_one.js b/src/traces/pie/style_one.js index 1688ec19e37..4425d41525b 100644 --- a/src/traces/pie/style_one.js +++ b/src/traces/pie/style_one.js @@ -25,7 +25,7 @@ module.exports = function styleOne(s, pt, trace, gd) { // enforce the point color, when colors (with s) & the pattern shape are missing. // 'abuse' the color attribute, used in the Drawing component for bar trace type. // alternative could be to pass the point color as an extra parameter in pointStyle - if(!trace.marker.colors && !trace.marker.pattern.shape) trace.marker.color = pt.color; + if(!trace.marker.colors && trace.marker.pattern && !trace.marker.pattern.shape) trace.marker.color = pt.color; Drawing.pointStyle(s, trace, gd); // to do : push into s.style d3 logic From 49319de00bbe4fc9d04ddc096df4837597f5959e Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Sun, 14 May 2023 10:40:24 +0200 Subject: [PATCH 07/11] piePattern : fix broken tests funnelarea pixel tests were broken, so use the point color in way more cases --- src/traces/pie/style_one.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/traces/pie/style_one.js b/src/traces/pie/style_one.js index 4425d41525b..046107813ec 100644 --- a/src/traces/pie/style_one.js +++ b/src/traces/pie/style_one.js @@ -16,16 +16,22 @@ module.exports = function styleOne(s, pt, trace, gd) { // console.log( 'pie style_one: s', s, 'trace', trace, 'gd', gd); // to do: rework this assembler code in a next iteration. - if(s[0][0].__data__.i === undefined) { + var gibberish = s[0][0].__data__; + if(gibberish.i === undefined) { // coming from a legend - s[0][0].__data__.i = s[0][0].__data__[0].i; + gibberish.i = gibberish[0].i; } // console.log( 's0 - i : ', s[0][0].__data__['i'], 'pt.color', pt.color, 'trace', trace); // enforce the point color, when colors (with s) & the pattern shape are missing. // 'abuse' the color attribute, used in the Drawing component for bar trace type. // alternative could be to pass the point color as an extra parameter in pointStyle - if(!trace.marker.colors && trace.marker.pattern && !trace.marker.pattern.shape) trace.marker.color = pt.color; + var marker = trace.marker; + if(marker.pattern) { + if(!marker.colors || !marker.pattern.shape) marker.color = pt.color; + } else { + marker.color = pt.color; + } Drawing.pointStyle(s, trace, gd); // to do : push into s.style d3 logic From 8cd2c97c16bceb2eae886ffd25f619180e818121 Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Sun, 14 May 2023 15:25:15 +0200 Subject: [PATCH 08/11] piePattern : add mock add 5 pie charts, spread over the x domain, with increasing pattern functionalities --- test/image/baselines/zz-pie_pattern.png | Bin 0 -> 39215 bytes test/image/mocks/zz-pie_pattern.json | 89 ++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 test/image/baselines/zz-pie_pattern.png create mode 100644 test/image/mocks/zz-pie_pattern.json diff --git a/test/image/baselines/zz-pie_pattern.png b/test/image/baselines/zz-pie_pattern.png new file mode 100644 index 0000000000000000000000000000000000000000..3e421482db69d2593a58bf35eea6eec183f1fab8 GIT binary patch literal 39215 zcmeFZbx>Sivo1VXa2T8rWU$~6f&^!9cXvy$;1Jw`6Fh{VgF|p95FikopuvKBaCc|! z<~`>1n(NLr)>>UVsPq)R15f46%nBVz_wT zwOb#7xGAqKu#U4*UYX+)oRV?cMtiAgVtqjFj+Zp)o|6<>#iPei{J+mjhJXg1Qe6}O-=+ma z8d0GjfzN2*d0=t=p@Ry%K#(&w4?FTd?m|EaK|cQ!6#9b)5e%uw=?VQ?eBd(# z>V*3bK|yGZ(jdexo{2{AKi>dQ>cKyC2SWHCrT!nIR2U4Zr}uQhWq{4CpXtjlrB@3R z#m+)k%fV;oQzqjbp_oh@9F-ci&`mMGGO}v{!`Zf@jeQ6Lp`jrPAv`Px<65@|p>W$x zztAb_5)W+T8C|M>OEQ$fpExXhY1r1NU-KGW7=CwJ7`Tj`=Segd!sZH9tN<10OI=_i1Wq#(L!JqtQVU(4m2JCtJCWfDvcX#P{1<7zoQ$G~*-mu$10H6!oEGU0>4c0qH)0Kkp7& zPL-Q37k%VTK9;?F`BHolr)SroTC-Qv9uv+!H?kKUnu2(d>l z-&x#|_dRdAb$aTXnd4pBI>(&Xt6}$TyS-V0=~>K*z-KlC;$N0O)4Itp1-anpr4-CNM>+U40kZ-70jaK{;zEC7c$zH~%VUmPoNI6$le;| z5phCPK!|j{?tBD*W-O4!l^~Npvu=EfA~~oG)Yb7_hy%6)QA}3k*Y}` z9w+Q=jq~`tX&MlMIVK6t69n+lON3JNeCN#{it$x)s#WIe>86%rdB5Mt1opMM?fz!_ zfl5Cs2ysE=&|@=h(RB+x{rrN9eahIU`~|i-HBINFw_IRR^OLcbpVlSo6F3p6Q0~~~ z)3yUz<;VbA&(zev;rdp(8>} z<$(BrkB0+XxNkbINMa2#P@5 zpZE2Mq)N4ZEWNUoEHf2^xVz{7sehLji$dW0F@ap77KD7_NWSxXkW~Rg%wmG6v~_F# z6&P}Sq7>u~V3cG!2wAocJVU$XA71cxZ0=k0Y(N zsG$NQx_Ms!Lx_|C?ESchQ23wBWCXy^h>4I7<5ua&W{77}f|5 zHW^@Ke+~bissBeI|7j=xVcaS4@0WrCHDhDr>CH9C zw*cn-j&?$Rgv$TCpc&wz;^G`(pNo)%*}XkGvX`%A|G$R#FwhJo58@U%BGh!JuNMyuskP;(o}> zKcO0Awv4q-f?Bx3!sZAa;$mr1Kl`T*Z3k005uWQRd}gKQEnbCv)+*H=1t{Y2}j~_pFEq(j5u`w2ef*JB+#hZjppU}x)T3T9@ zR7Rf(SvDWpS>)fV1uR>j6&jEh^ch7eaD3OivLN+f8bn6JL?LFdQ|}H%K__`IDp#;V z4e9P3D^Rcj!fc1=pLSHLe6ipsUcX-Fh z33)EZ6rp{+Fx`QM1;KoSpyRxj5&d0^EWeD42(m2QnG^fp@_a$-k`E+hxC3Y%F~z`V zw$s|zk)TcfLjxh;*$znB@SW`LBuv znpk#mu^ingW9kHHxf`E@* zQUqiV|8^oMfEaSsHJPrDtO48Cgjx$=I!fa4&av zUhJnYy9SJ~n(fImuRa?%*{!|vw~rafEr3eA94Ek^Mxd!M37yDsqx9uN}SnN z^zRJ6xHd(Q5LQ>wfNUD=S@PfXE`t5NE_(bU5)7tt71z{!ba8dH`Oow_fiS^?VptUJ z>wSMdCAE273xLG0T&bwL7aJp4hf7JGNA0MQx9xC|`?K-Dn=9nC`qwBYz9Pv3K*~?| zVAAF<%%)cpVmXqj6es$?$7b+#FhFS$J(bs8 zor&UyrcMeuw0NhVD?mDnb$kj4ZTg1x9H)WBwiVEckkL`kFjN@!$!B3!s zO){mbtGk9J|8)P8#H@(wKc@=v@?G^9n3$nO0+;iyp<7P_5rky6PLA^Z{ZNj_SY@U}{k>XLk}`hK_vQh8>GGBEybwfNt!iTaSx=t^(i1H3 z)YLJ8839M$&xxm28Df)@lWuDp)~|Mmx;TK&qC zJx@9Y|GXV}0MmnO_ODz5vh0NjVd?oBOv9Xc}%3Nt46i{``5rU5j+S$7>xr};Ql4jGATleDSy~Y zTOzSQNo+Ree>^cAz?6mO4sdTU+jj(9&@m*AEaq02&?y;;+TK?J2yIA6G*S- zb!1m~PoaTW0^--6Q{27OLM=#2PLd~hvUw#sGCW*JEfMDV znH@R8D*OpH(qAgribmE%aLI3q)IKc3_>k+NOa^<^!h#$T^$OD+Y8Vou@HbXUCI>P@ z(+uW{zE<;WNogb|GO`Hs(;(Emonn71T-kI*;MLhqGOJAibif9vigCaF%?dw!wcwTr z7idYWwjQN9z6ES!#@b8`9c5u+(4|k^{;{Z3Xo~|-`t?g)JMDbW$ zv0{2$?X)7E@b3PRBz*jcPc04r0MhV!*@5)2DIo;#V*DV9o8Y4n09LSzJbq=1 z#E1V+4y=sh>6ezYYj z6xYOK`Nw+%K?aAIm=+x5h`BCj;eW`97g2y4VIT;xv*dAH6!N}W3BMPl-BFHwYWi)w zBg-h@{@gzxz6e`7{sT31{(0=~KNK7j=tWr8pFMRd)!u&|K&eb>JlWgXj~u0x_ZTER z$aVanZi-dYhZ67DfseYMS}tbax?Qg)M`ci}=M$2U+$uHX@`9g6b=fJPZ1JgH^)|BdG>Ntcs9A+Q=Dlw$A@EB z3TX~fZvZ|Q`u{ek`3e$#QmkZ-`eN$!zblwhXXUy?fVU>}zWdv=$QeKg_~gZ8AEunI z(ul+35HC3e_*2*FSh@Ky3czXC<1 zzq5}=I&z92`Hv6|g=7NzFH0t};0s>IO03gsYx4t#YUo(Ty zy7&PE;-i9c|EtdXUo2!b5~yGa#SqV8`~^%PL}#G7L^q5I9zy*K0zmIQfuiL9En;^U zmGkiM0DFAWN=izfGBerr6JRikyx+?;%6QAic6N4z@IQ?wa2p#NWh2D%t_YB5?aCFin#-y-kj z;HK2bj3Dd%XyS60s;_H$qM*Xo!^!hN4%5!lra*L2ybkc!{&v(QCDJBfF_1{^ukA%G z_CcAIdFxl)BBzkQP~lxPS(e^Ix*qz);0a$^jN_SpY+5(gFb`gyt^!!w)`e|K+iJV@P2J0MQ6|HpfrM2Z##*qum(qQ7df}0|a zp+~pKb}hBL*i{c~BWs-sL`RA4AjThP?F-f3-4Cqw!;g&06i9o$-UCV^k*5A&zs%7I zY?&~#un=%G>k{)9uW-n>fM}`EDOLC@Ml)J;>n9kwz3kLzXn%~@+1M0&I_&RBO1o>F z*2b74kJ$YQ@lqTZ80bED%@-w_(C|YCNk#MemXCu2H&Gik`{a^Cv~~pp2Q>{+Vw%H5 za(5MwvcWG!d@dObxC?iYcee6%Xdl6Ztclw@rSeayza1=m>k3o7Ex$-lC|sZHE`Ils zJa_w=SdjfE88)6c{-=alzPKc}@b0dv`h+ftf#(jFK--5D_!_-rJT$98mIQL8x9%KT z{Q3K6LeR&yC|V=NBHNPO3LB$)?0AAf+19md{{6Xz%9KX)4qHb%Jyl@yg?rU%U{UKl z_Op3NFY!{h_n_0KW&jc9*D20RXYR#cJ6G?@3hxWdLZygea{cZaI$V}U3@tOplf%w! zJ;HokEuNMy>TSbYWZcQl`{Z-Xgqu~3wVBWRl(G3lG{10~O*Yea;C-57`8sYTBSHZ8 zTh1Q4Z;an_lH>xiJNJ>ZS{*?tu`WjyJXiR+mC~x!} zUe$TEvoTVo_3vH)G(vu}_3BV2l_O_t8P$HPq~4ENTIbE4;)m#GgWpC%e4qXSN+J5= zFN@rle|mFZcdF?g)y7~kG(v&0I!fPYYY2>^%c6cr+=)<&ceG;c29$$W2Gd5QoA&DT zvHG>;pV|fA^f;9o!O-#yB`W24AL5Cxp{|}=-(i{2Ldw7<)~h8Em;xIx&v)r3ETI(5 zEGbm1CeyCI;WhmMLc>F1^0&mL5@A)`DtjK@^Aj_!TFn|c*pVJOIQ;hhz@ymv%BduS zUt``;yYyVhZ2c!QJQ!@l&@ZSfAo!_;@y7^L924fxs!TnpKqrf z6rn92l4Q!EB|ULX%gR!z5~?B-^F4U-xGBUab4=EyvX9Ma#w5M<_>k+dCf@! zuXne9g{wBwo!=u9qQtA~8-h>SBHv^^K%=kK((iI&&MOU6P1bPGr*USmY^(WdHa z&k#1=9WA%V3(BzyTHd%b+-y?^K(x=sgof^nwy(4N{YIfHe@YN42X1Onnpz$ zRzdxOfL{Sx}BAj7Cq!A1}(b6-l^wti6td!0E1L<-=QM7bYe@I_^k`BPiV}k ztXsRkymN^dc`F^AU4utkboWsq$oOlmvaQ?mB38zAuDA7Ml(vSGR=nRUK6;bb<9*>y zCXRw@_?*8g@7O#2T!&Tib6cw3$VWp#pJe=0;50XW644|-NF7lJMOIyb>)l+7fT@uB zTVFwrp_vW;#GTC;ulwR^nE>12VN7oYGd0HCVm#&8cmT>mKo-v4Md-}8j&{r?1-KqM zHmN$>bxSq~G?l4InKX)Z?BtU%-mg;y>reA7fn|Vo5C#qzdrr}&u=&%m*jcXa)d2}< z@V!(&dvkO@M>Ff6{6b*YRiMGtkjjEb?47(S8TC6br0qK98;CRW^>gT_5wGylv#@7H zZYQs8hX%PRNHQm?ei~Uh`PQdp3(zytTYo{3{lPUSt~uw($Fp&PaWi<*=pH8Pp^fRQ zj4p40nBO$W0CgEek+O{+nH%FOu9yPZ?kvX5st+mUc&SAw)tbsbovKW0d@F=3OOBm7 ziG03LzJ9iHU|V8;M$h0{BB>BaI`_&<6~~B|ontE&O+}O7U5zb|*qfF14Zehm52cq9 z+$a$(+V_14n!dZ`nq2hYC=*giuT(e2am6v(U~1_R zDWdl#tJ(CD2QyA^YH9n*qgvy+u28Hr72cZgg#DaA$-XNh&-sfum+4gETXJ}ZRHzxy z9)XUTe#>y&@A=}HCU3pBg+;1`ASK1~5@NNgjNEoX8oRW2!$*c1)Ez9PEzds6mU6eu zRr_2zOfeJ*SvsJBy&R8X(J=A2#>*sum&(szaBlbYoc4`nC`w3K3-Lb4WrO~y_xjj> zaokSsO5j}6{~qb;c3RO>>TM9Sm*5H#P^A2`Ij@o#osOOW%-|w=xj#qZhMGo#IUUVT zHd6Ksv1>4LVNWn57}x1coDdwr3$O=kg4n7DRf4Cy4c-D>6wxOXK1kb$U9WbXh-zXdA5RMHZK1Af2kbFK%p!su# z4Z)m{1{HqqSn^b)rITxb+Q{n_9iDh|m_FJnI`g5XbZsLOw2?|%&?xey9(FyrOYm3A zE?#6CY*KiI9-+ftsjFM0l=H{t0l>DMv%XyrT@PgG^bYwVip=RKIXWrQtv>Q_R#QvZR*riHyvU$E;AR7t=dD8~8XC!a zIGrSiiIb+7Vsjv-Cu!A?JIL3N0U+`^d);5rNJ|jxT zlE@4&XY$u}9(C_VairMbY$7*q=cVU11(k@q`JhT-fFIf(U>-qXc`-70_;%ENL+G|; zC}<||>6$hTsY}F??M3I6a1tEP8ZyV`2Rxy&DuP3hc_3k9|}On4POe1B`EPI zRgA&r36Y41%8z2U> zff`8HaIE%AtMd5go|bkiC9<5)8iOJ8g+T|~ZVNMhf+?@NgV6(Dm`yiS21{6#J%4G8 z2bss={mGohUn|kK=!r*doYvQ8HMK1S$z6PL5}_GOp@3T1RPy+pE*~0kd$dQLuCHY0 z)0rJ9yrCB@?k5pW5Ak_^GHx$^en7=rtq+B8A*@PLg3pb|hG^A=&$vqt1?xJ?(eTXA z-Bw*6x!fLp)ar42S1+m{i`1u5U7|`fFq62yueVD7Au;L5`~XL*X=zb)MxUo#VBc+; zhxkMbwJ`~Gdl#x;c~~OeOtF=az86&THaZe31{>$2OuqjQ(5&CMk~6(HU&}$Ju#W&% z_*@}B1#z%)rr1}zw}BRV)$;X|rodQ$CLriKnqE$q46Az`T|l{Hh}i~0 z!W7zPhORwVWpiD@qt_AOFRk%vaZCVTh?^&ECtoqXxwD?gGt{F#`UqP2T4U1p&gznr zh`LiL_el4gBP|QnXQkVlW=#rk#g_!scOH~Fl~QUiqap|gDA?Bg$lnsMo~Po|_^$Od zf~nhyvG|Z#1nGNgJb~gLY0s;aVhRrOXmb8BR}pG};v9m>1c^oTcZC0-6O>`INYw_d z<0aVlD9f_8A>i-Mf+3WoDzzk(;nRL@Ln}q=7ggi-mFV%RG+l2CDFi(Z_Q2iIIz3*Y zLchC*gdpxW{W;#4hu>c<6ILo&4-#Xwyhup+)$$zLXmmdQCH(*}Q1MQJ9s9Yj?;=)- zb}88SD}ar@8Y4@=_r`Ncyl?YJh=WqhgwVm2>}WGyz010eK<`-OF`v_LAcdg2o9D{C zmsT}HSGX>d2NPb-LJrzjg4LwyGfNJk$_U)bgTOwYABrKKZ^SJuGdl&TL=CScbZCu2 zy^UKKp?r!Q=@$Fx!p*@P6YsQ!tB3rso`jn#B1@(60zQ+Ere|riE`$V&iZCP~LKyEa92P9Kp2I>A~^T3JjS= zk30|QVP(eO#BB6FpVYq$dxq-u4ps8v`|BPo=5G}Xi!eClE_%!i@YunM=*wswl!$3` zuT6@CrM?uodCXQ3%ME^G{TD|~pcO{F0zZ}funbBB6O(FV@Jj-!497?kEOR{BAA8Nh zi|)`yTtGyZHKWM4lHmXiaci`l>{pI$NwZ}=bYT0kKF3@)?6C{szyw>G5>v2zCLpV< z{QC2@XBRPK&SrxEzw||gklDt9{9-*f@$hkbA-OTLF)@U^Fqu~IIAlrJoIeL0P@%B4sd`LF-0I#ghI%H%E^kV z>oPePsy0sj?HGv+MbW|xa|=7Pu_1#8CUMr|E#Ao?baDHFxH5IKD-pB;{@$GBRVa}e zud8T1c<0sfI@6+M^KpE+r5fCvGbb_`1<7*b9boB$*9Rj4DMY;;uNhKAanp_b-2ZS{ znS8|iO^ge`Q&^HFmnk97c^~eUeHn2Gjb!Y&Fp!DRJqb3olo*zKLee_L2@khh9Mb3= z?f!y&*6_8iB$N1Vm*vL0Ql%=xMO-EA`d*`0XA0~1HrYph`|GACo@kcn*FgW%1DKE#;>R<7<84yHE-$y*s0=7RNeZEX9a{8iIsiPtPX{$>O~{obc@2M} z*04UV>(=~L|6{4^OPg<6h1V$={7}X3km+XKrj4*ohevz#9NwClId_zC<=3sE^Xpn- zm_)R4zV;)#uJ8M+>k?<3(JYP|F5#vJwWha|MuiJ;;S^v8PasF!_dM6K-JhLY!o@lN z$=m1f#+Wyq)gW#22ocWp zlXw^Ml;B#y5z?LpPOjwGKd52O>%K~MWV_m&bCWgtFJ8pP+`#(V!f)7l7fCEFj17(U z;QrcAtwUGJnMl6ySb4mXDoWp^%{|o^FSZ+`v;AoYXW!`Y`!_RB+NO(&9WOA$8T|LtW2)lggVutFx>r3#k})yy*G7EjIfkj^ zM#|+9aob%u(Dr%Q<9f+~Kpgp-#)m zvyLNoZ1?ADZ6B8OoTB%5)D^9D>jv9QMTYb_70z@X23JGk)@V>7w;P%HQEGs$R%#ue zUYYJ`%i)yP(@7nqrj^f)-0Ar>Ka&c)a4=CaS*nUmOUu_KyAJLBHP;XCX835B>2n(* zxA19pq$GXWNgf8TxG)JadzCrS@Dtn5)hWRNr$K+vXZYU|Pm8!M%Emw{~@dQ3NB0_aJ z+8&2UOf``c188BtVt+Qh{{{`Gpu6Ub!J`os;~To~RmUi^&TcY+r0Bd~k86-<<{URZ9Y|Lp)XLcw5uId@ z;A5gM60I14-A}!2o{Xr2A z_w`eKdl@_u#Q-cT&nar;S6GQgqUO7#p+@h1KQ4?2Z48c6IqeR08&%;@Wi@9 z|5!BnUAx%!J2r?}YLq1^3ozNLR0BU7h1#t5i3dq_qkgbSI(Dt40Q*PtxQkw?AJah_ zzgw!U<+8EEQu1BqVwykR38riI%dx;I?M8nzB6YAFYBy6Aj+FJHM5H!Gf6a=Up)uj} zr`j=pv?62Hml)XBu4-BdpR1x}5Q2WSsQK)>r2!iwhUB(9gR~6K?$(;6H0P$xONm;d zoDa4h{7rC(AsW57g}qA)_{(!<^VDj7&{o%ekn<25YX6oDLAaW}{L5m0`Wm%kfORaC zFllqcAh5Lj5*CMfT>pfpIvPXnve6=t5&!ctlTTGP$*JYv0u0ww11A(ypgx(L0@`3H z4MT^eR$<7F79UG-Py;jHl?U-t=`3&_h!fZ%X{9M^dytb1kB~iQ;TLIqe9DYqG6(L9 z?hl1oajDDbRv$~)N&Bp>V6ek0rQ$(iqUe!=jQnA*fLKrWnYxFmX8(;peV1lMJ znJz`J`PDz^^3cpZ zVqRMw6>dVl+%lZin+IBPFD=v^o&Basa$SaqfqdJldhdP3*Syp{b{QPHo+0NN;>DV7 zdyJE+mhG}|%m^$ptB5Bp|Inwm>p{7_T;?FeK?E>V-%-+ZV^}erRtz%A^}!&VH&b z|CaHC6gK(hjCK5HbU5r+%q4C3#=^z0Ac9(T#>LYY01WY0r}-zPMB<9X!-gfU1B;U6 z63f(jVKX!QuzQK1tB@|>trWMrlTDOm7*sAUMaV>uloi#7y29=1n$#<9B1pr3Z)N-5 z@;BVxe-Gkk?=1y!VyYOcszSZI$}(Y0%KMV(k+^^c)T^rWDAN1MXz|moL%M)b&%Rl+ zo$-`ZRPvr6QL&zS-v$EW?qv* z!e-_9Y1dwT#0FCBFE12heBZdKs$^4ui6P~BdUg9M0T`Zz8S^M+WAamm(HD784oZ6Y{*}_<%$&MmIm`*e-Li$0)IL z6DMx?(^B1lMO`B~8Rc&;vTc<2gHq53s4DKL?OB!z{pMuhO%>bk`Prk_zML8jM#-x? z^%>c&UADyH{zo~IJSBY~Nr=j9orqVQ{H=$Kz7(8G&Te*J5J^t{RMw_zS+Gw{)F1K zRK4aUuHSZVKkI(EFp-wJ4eu+CETQcf`z_1o<0Q0>pyo4-SY*Dnt-0h=1*iQYo-atv z3Zr21sqfaJjL(R*bRFXN(iA>B3skls=~@*2^)wFHeLg8FHHmJP-?bSH56|<}vMR-u z39QQcX(N%}Yj0}l?f~PgZBB#1U^~H58yJ?)iA#D3o~-|hgR6`LO3*Bza1wmZc$Qn$ zlWZnJDX)w8C(|dw;d>I}ePcEYE8WeuO620{8?QnpjR<0n=N}{2wJYeFek8+S6-^(u z5@aIy^1QT&M$e}Rggt~dJ3bIeW>ovvaV$kTME0=DwqPn)lEmWn%~MNkReblk-$$jr>8n~GikXg}kBJWHt1HBn? z^p|km7|cnm`2JgG>UQtWTpiel38=Wy<~OTIMC*7-P6b|@eqp+H)yKJdtlyf!^#=cG zFKlSCqHz`D=4Q8Ydy@pFaO&@jvJSTn<8wHe|HkdMr3%+gUq|4KeHpO$@v~U?6ByZx zD`iE^H6z`yH6(RoW95bg_h;os&Duvoj`OlNOHXyw#<~u#uh|X0Mq3V@(3imc9~!oC z$J_EZ*^sW`O2hVjEUQ5KaxmyDHoEo`bZ3`8LpZ_P3ITMQRQUQ~CBZQ6((%EQJY2!!7(U$1Vmg=!_m zMYo=RHY=PSs>^spcb@jvcW7>J;AD>kr)Q~P*>jy}=@{U=#B@Db*NxYwkylboD3O+% zlYc@I(son$2YS-0Uc0%Ypkanet@Vx{qGDwa;))Xb*b`geb-IBkY9VyJPJyfkMI3Oeb(+a&k25;fx`T)8YwzrJi^%bLsXC$s*ob&+13fw(E`b?F`r9 zoWqTY(bx_N?%NpL`?cXUp*Q`6&U^bh{#nBmf*;vi_eGoogn*Vlx61{OTdAU0(2B^! zT~<^i!$^&!?SEJb!pVBFiMp8?wGvD~E8FmV>;7!}V!>_P4;TNC^?38K-EYBT$xmEX z$mdegd4A-f3Mxr&0JJDIa(E_u3TVBbSNoKZseD;JC$@C+yJ4$tTp82zp$u7e_<%!T zFG#ZK*OzOuA7;+-KtB8d>5D%nWvP9k*T9-ps9|n33sf_IOmrP;Q;&8$5R@mQ9M;z} z+|4N4y6B;~7u(WMts3%_*Yd5-z0MvMtO*nU=ZBKisurN!x%EAFtr_G_M%-!9i4U>$ z(UXlP-=0HRF^Us~r*4hPL>@E^c;u_aAB|A?{UM-L5tefMttYZ#PDsn^l_J&kfetI5 znbixZ8?2R26G3tVo*?|l4U!7ZDEcsYKw^^5a(h7}NGcvb2xCE(2DYCaU-nxlNCxoj zvfiw71jv2&K0iTETr=+i6zV-u9r0RAB zI5UGnpi6IAwhPKp!j>DgxDoAgtVKf%8JjQ3?O>pr7TRrSqrcfTnL~+C%bxdd#*KGI z{WD|Lxp*I6hr8&*k!0eYO6A`uA|h?ZMBChzSM?g4fB_~ZoiYg!{tmP_cLgbzeXKOz zCxP@(;J5u!b%!njr7F(nW8?!BAWj186={LQ9FO(Jp3BK%aQiG-1>LP!=MD9}24PFG-DV*QHSi8*;HuE;bexhkf2N z5m#~aNt55@Z6amO<>GYZ=4;KwHez$`5X5kRgPcT}Lt^~Jl#D62W-odEZF>*)8 z{CzF3cRdTwJ}elZH{>eI&7~1=AGAVcW8luBxQ@=8eIP6sY+)C9a_-5}Nd%dD`*!<7 zkF?n-haWabRpuQ);TI|4ySN#y4pBp2YU>8*z-F`K@m2gMSef$L5&_wfM7kX~Af zb@6p#2WO|PjZIFuLBkWnQ`LQHeQzfw;pTh266@$JsT?O1G>){pEy2xE9}@?hBLp*q zlX=$>^nlD855El;p#OXW>E!Gp&-^lYV8$wo?V)WmbI{aW>fgNpK3lKWe5u_h6}RwP z)Uu0aMmrZ4USd4;w=|g5xAt0b@!m+c+DbohT-`{Gkqnd-#RW7IFzyaimxcCllJ=%?buG{i~%oa6-fi#yCIppk~6zHrBsP~0? zZH{Jq_t{=4HwX=o4L7HOPCzJE6gA_>`NhL=(@`Jd1yfi)==>ru$ja`Qb_}2jXMv{F zr=owJ#EEc@zVclZyWU)sZ#w^Nu>Ej*NV1{l625oK;P%BahO7eUd(1;irBQX%J_uI~6Gz*oR4`ROY!!J%NLUiBW%q)8C*%DK^>JdplG+ z9rt>BtbiM6?cBMH8JQ7IA!s6Gd}Hw?VjfZx(%ei$ESo{718k|}avKV|?`4ODJsFtQ zi~gkfYCIYBt#!A%V?~z~Gn6!F^pN%wF50bMkyP4i`)Lnu$Xc^eR(#nRVcKl~Dzc{I z6xIN1@#`wFjTXpToXVUp4WdeO14xNkdW)p&rtI)3ezTCB+FX!cXju9 z&AcYXj7u^~0r!mZzs)-wt-2FATmHDtU8JIt#+#6cg6DU9{^Vw$O*A{)p)u{G>8tDJ zh&xfzFBZ6-QX71cPXFs0s(lWA`BzHKvUe~KDTi-&=KVIS$dc`q9H*Zqa7a=<{~3<&K2(*@_RVP7uJC*`A+8HEUT5sPY6m_f zD?s_|FaT8`wN@_{tNR%<#^>sB+dnLM!QP~Tkc2cd;PCUfu>_j_!m*A0TOvWD0UTC> zW@BR}_tU_t?MZ`Yuf~Rqn$X@;D^`EC%aM_e23zWgJK4=ja=f-w9~oC6Sq&brvq%|Q zLtI6{`7+o_<#+qRJ5$6h;($^pq_$6%9=h~3N?SKNO3C! zlkU0s_i}MywsYE_na+9@eLA??#7Kje!tpygbidlq%5wN#@h?0?WkrZCU5=%5-v`y& zKr1P8W8ogNkzbL~tfV*&XDACN4-T}8VCAYK)Ep2yrX`xeI&GrjRB?+_JiA^vB1e|^{X*Lcy9I`1xZ*0|I^P(JTTj)0j(azP+@hrPhSd1&U8iBO^f>y_Jvy|MC$3dV5a zX3*2ucZp;S|M-!ak$>iLwVs((`a*lZpaHj4DbC(+aObGV-(d<_;mQl^nRHz3_S~^K z18xN0n=!hqZ9Q*!B)>bp^jf~6C?3X zgQuKHkM^!*@AcI0lKCF7l@!xz+HYs=D+)6|k!aF;E_=&$lnH{?qMv$v5Pfzpv3C=A zbZu#=>+aq#;VZ0l&SuWdrJl$rtaV5+H!&+|Fz|H@v)MSi0jK4S1zmt8Or=g8POY7&^zGH*T9VvfJX6q>o<7U`{*`^Qt_Ehi~-@!h2=uNuK z@o@K9RxsQ-Kdvb$gdXa~64&m0OX(Y55-ZqyvcBJPrkNVft*xz%kyVkFMz)ge zpmmjk#DlsO+)4FIV=gl{?_8!_+4;=18Bx-3UOE$JyhnQ5*K#d8t%t;jihaK|x z4-a5Y9q12B-yA4)C`~R7YnX*9-m$%_t9T7NLY;MT3!Y?(^{0#lC16((6!e#kj`Eo- zz{ZTYUknfsFj*Tzr;Wa)KlmLjnSasW%TX^|GLs<xyW9z~h}8gXNP~2(tQOX3k&GB~2t* z$EeVu(tiYsfm91pNIaynZT|O?{`j>Wm{{u3M>{RbD+_}vvA*J!`(8sy%gDf-eCl*E z(VwI|MxjInIX&`W#=oDccwt2)_)Xq+RiND>@igd1X$YQ|_C9X{PC!|M(Pc88nE;WW zoRZ`G&CKj?>4w(oEPXa&CB0~@!zAjizUe#G{%vzM>BenrrSiJGy7!B7YI3)+J4$Z* z?);<35wlba$(cKYH@%`8Im32rTPcy!y6 zw}D~ofS9(=6|;p$>Tb=pTF)k6Yzx!pcV(x4A{ol>+A2s_RENl!V!DCDQf~N(&w)0H zTVo!-2_tS*kFQ}k6!Lm{`y!_8nM}O=AI-Z`2AC$e`dU%!GP|2o2XNUvZk&nE>C-?! zn>qCZL)1a;d$JxKlCOlcCwe^6Z!xq{11>4c_!)c7s_oov{pe@5#sztN!O~0leL^#LTxU@F8ZS5QijAWi|-@}sXY9$?W zOEsKx(c`0}-SaSI>Sgdp{kDq}Q?uZ{jD8Q_&R_TRH99UmZ`z{CBIRHIq#ppvR$cqS z@#B8-b{p2=v2|P?C-{{t*%~pwI6Lqwm5M)u*G|jX#7{-ONUYG*e6i>%zG`M)Wj%?f z_q?{#Yh_2?~0-aiV*AHGcw&9Bc5O%Q$2 zzEsRb2QMo9`9WE;#ZERIX=m9zF}(Sb4}k+B)Vl91VEC4DaYh;DYX=NFNE|Gn(|a8D zCVXw}vERPa;>#>~fR?Vph##3hpA3#Ff1?!%S#lPAmuwuXFz49BnDp%c*;d~7$+L9? zVTM^#Mtr5f=t6^DQCi)0gEn0L|Vk5ySuxk89Ih8K}4jKlU))k zr6B|bmJY9Y21UyMEFE4;UhB%V%&}R*h0=F#xiWiC#`4^74G?UbKJ0-}gGPq)C5<(a zQ@fRUW2ZU}y@B>s@5k@U$L+j_uXY6l<3rxrmT_-JeVy3Ki;877_b_)oIyBt6J_;0K zw9U{^DWwuj=#h6b;jUmeR2ahq#C~;{W2D%A&+-_zKdb#F2HbnKvgk2RI6Ii2omD>Q zj;Uk*4TlH_5^%(Q&=^=9SQWHZ#68(5<+~_%DP$|d+gxUR4^c-g>ul-KAX+;TPu>QX~YoZFqoXcvP@ zmneQ_HQwKrijZNgcjfs-&%oOZsh! zXyE0S;5Q5mfD#pd0GDgxE8gz-_3b!CyP@2Dy;3PqRWKhJW9s`#hV;vIROI7R1p(t( zY4oY?WS>7YGPr>iur`hD4~pyhvNxA1lp%vdLy-+P*1mT)m7d*?K0@@}5I4en4dJiV zDxW1x!A7A)$DU~J74pB;pDkZ%zp3iQRDt;%2)q`gpD{og;mH4))xL-FtQ<)75IBzC zb>o`V%f;;#H|y%zhN>(}HfD{hl`Zn)IFq~IqekYy9&TsxO_=7^xp)8Q5*z2(S?*@Se3M=5ZR2EM~3Er5Yv4W?5Hs3}s1(y87>%zOnqPls}J2tQLuvkXK zQmNhv?9^4cCOeb;=p;(-tQII|e-0V(91|KpC{$b*=a!7NnjE-!$D+juW@-S=3=TT> zxV+*EEw*pmfLf#$k|}XI*fcH zz9ZYEsUn^g+{U~R9Bj2gBN&#Lgj7sm)+5xah7Zs3Vdjd*)L5H@XFj*>AC?zVO1Y>RbeX_#W%< z>ZX~#9#{U^m;eoqOTzkK#ztpkFmsHOugm(;KqC}|!|xdMIvrg2TFbpAcK8+4r4o2x z)00O+*~N7cQ)#BTJU`3<3aZ~3)8Yjw192RSkO&nm@!sVbHq`#%5-%uYquRcs6xTp9 z`XMUUh03+OK9!g3>erX?EZ)bsU*?$0QnKJ_m;2p;+XsE~H}YMS%*~rtHud8In}C1O zw5j_z>S?CtthPdSV!+EM^v4fkxv2HRjg;6W9$jU-EbwxK~+p>!gGvxG_z_2C#Vq!PN&U#rf7zWUM>0ThnN&Xo& z8YW~$Sn%CVd%4O78b`?pXn{Re)b|%6&EHgKBup(goiHjrkY6?r#O`!msHWJu&Cb%P zhwM&NkDkNrPJ0I6fT9=(H7IhnHd$6>81WZUGtvv6VRu-OKIJIMIT|f1_+u=>-L)Z{ zof5>EcN9H9E%mR?(#+{U%$a1g3m=rZLygP-!n8_+RK6)_6zC8(ty=)WRL}Ql36? z??#@MzEtU(o`~V@0<}m1B$&=>^$`J|%`k8A7ES&J0--6l%Ex5S1iy=(KS<($@vB8% zODf#Qc0XzGoBVNoN($E<9fS(>jqs7=J!hN4BwGsf?)(heNEPMoYGd5_U8&`RE5g(y za;$6ni~&rc4$`V8?z5xoZhk>?FZr(e?Klg&Y<$AKd>B(G*6dMLu*S&#a?pL<=47Zq zd6EZ=*r+&`kT2q4RgSj;W@X8mFRe~miJ@Oqt}Lke-rD|hx98dykIwrUR9ba(LKeSv zQgzT#eApJf$U(<(QY$4uQ zLjvdaTyD^$Eu%z6?bp^6X3EXWTO1*;umFeTf5aJq%{L<>%%_*X6>3IP`n+{>Hlh}JNGw|*^cGM-gIhjPB_?I7R}G+3C8qRUNKAa@)?VWpn=JmN z9!n!zf;Yj^qsd$*=Kc0B3h6Rp%M~eFG|ntB&jFz0QK2E(TK%t3iNP1N8=xV>$PqAR zYNw5#o^SG8?v!F-sez~K13sij-pTR-hTSO#2&A^neFGvN1K~-G&|O0I!~7U(OWV<0 zo<^F%+v7=xaEhkCp^B(!wXyNk9=Vi-=F&~JD)qSF+XRt12Uw7QZdEz>MP+G1g4s5`4t$=$`IvI|ZXQR2Ul>I-L7609bzp}4#<6-?FAZXTZ% zue|eX^g{OBHq&BwX3=T#DiJX!xxPBeCxS%Z3#X0&r0X>Hg!=$1&p(AC?#~^3?Pp%d z=Pe!zNw>`MXp|sk9~B3>wUo*{Rukb`hg%rOqgTM**?BnH~E)L2foP z6k0i7Z%51LY`oyctto+nkBa=xOUCGbrdb6%gG1Ax)cCaH(I{Q|a#S6gI08A%x3r_` z{fD~)^)BnOMUF((&VZ#i*}L8IiJ?2bCbX;+UGIdjy>M3)^XwOXSS5ED;_82PeVC#R zAmKr$y07(t%dK$PA)(qH)57s<;dVR~%=7-NPqDIA>L^*JGdK69we2fhH%VPqr}QpS zfBoXyBLc6Rxyshk^0BwULKXMqN`x4ccxm!M&CuH4KI=JIv!yS=OcCSsIjK^gJ$7G# zrZoJJ8iT?u5%LP3w!N}Qk_u-}bgJ)TuOtcmrp5sE7p^pjFM@^0k@t6E~uCwAmFx*I>i(p`n=gIhPW2h`7)xY&@J>9b-9c=P=)68<0< ze#!Udnj|77q)mr#x=3*D%Ol#JJjt^Fw3;HmJJmM0EbUf(@17eqqHDkR>&s`oRn?t@ z7p5WXvNe+@rXeF76}4yjj1{w5D%1~J8D)25JLj6cxhT8sOuZM(4Pm_t-?E4oq1ZZ) zsHYf|YxxD}9z4yQ=(Q+l`~k1fmk1=|$g`3XSe^Fksbo-KmY;GFPW{@3S(?J zuSW4wu?j1iz8g}3OAD)$OLQi$zx2pi(w@)?h8`Xs3aWoeicB_PK9-6g*08s~8da4s zd7#ttkuZ7Gsc+AKH`0cuf|I4KgG*N?&E7ikxmJo)bIIYFhq78^T_hPFkr0D!{%n(I z1TdpokZ<&pPB=Wz<}tG{+7@l)viLH$7K`rh1#nxGb&L&nO?&zGsom1tDiYoKpUz%w z&43-G!bSH|J%c_%NRZAdJ+xi(3J9jpMYq@-dd+t#&F?1u)$F?j#_C z=K>0BDNZ~0=8H1H&fCDg=%y#yI++%#d1GE=)>P zZ_p_#8S5s|Qk0RYO{Y``_Hf|L<$+Ux0c7F?n7FoAC|*&vsfdn~PHY{(eBUKUnU4Dh!^z>~=}77I6;Lh_i@cXmU3 z1W4p-_XzW~;JbDD#)s{Hs%{xo-G(AfMsS{#y{dv|xMp1abChh_AZXopZNGi-KY2?E zDs3-unD9>>jLHW!cvd*W&fk=R^C15E(b^hO4-D756Rxx*&Q4Da1ZtsN3ZtQ;v%iIu z21cB62NKFYQCyrhl$9!xqa~hL6x1fdYg{@L)HLBQCRA!0lZJmtFiqDn>(#p3>5RM< zc=xO-(YvS%cq8T4alTt*vAVwkJUrs|?)xc+l-MLx_kXG!dPmiFpg;I2xi@-0x3Xu9 zJ?b&B98g!}&XhS8nT)03o$`Q)NLl5VRWs6L$nIxUgdpbY_kv^_#WI%sBIm$+Ub0qZ z`K?kG&llL~e&olD0$EtMWaiR~m$zqOQnhC#XBiOM-FkaS3$?qVMEwjc~(n>Zi{gD>c4L>a;_G|LDe8hUzOdfsj75?5S5v9-0fq!jV1O~yd91xZ&G zeUZkhhQ1(^hW$~EMJ+Xr#XkC{t!G&m_KyjkfwbAKiXQU4VtU`4L&Y(``umf!+3Eqm z>9YhOQ&}_KvbLWLw%ijyHW{ja8O<-eSL2|p_CPPE1Y5M6EDT|npc^Q^Hik68YYqfu z?bTvw%qN#@RCuMXo_hg!A@S0qo!^6I$2BcK+Y;OO|I%(cL^PL~m^2J)KUR&;oQXKz z$x98-EUAS@^3p*I?;OhtWFubA9QUi{3vmvgHDu~t%w!2`YcPwO1t!VpnIz2=2?~a# zCr`chlAf`(nkZ02Et&v2QD{ z`FLY<>g#{;BFC3AGXA&OL;1#oe*>C%rrAb)F+ZfFm*M1`@G>a%lBKu1HTAKkxweIs?*39 z&vmz=tVLuGe4j;(ZyGbEmJTGQ<-yiAkDh+0{s!~LDb%HlOp8oLTBrv+kt<^aNMuh4 zMG`!a1hg(LEXB{~7wW>i8U|IBIiCk{1_rB~DcQ z%64r|+&9k9qt1NU6RE@d;C;TOfYqv9fOVSouFxYDr62QnOrbZf>amUCj?hGLoaw!8 zt5Law0cONe4>=2ZQmumX>ERKF!?b4Ed%~A_K(%w^%qf3?-7HM*T)IDA{_*I`P<#HS zoScE|-xI2?p`3s%9|JkOalsfWUS4~c#e6oVqv`0N-|k=^-a8mmYP&LF1+Xo6)FItq6-C`;+Q1VPmI?*N9*+z1FF^l|k`+CPA2mtQ?)nAE)_X~=@!x|l6LFN9T;vNq`=kAcWsT_P0u${ z3U2>f3s5y#EG_ss-!_JJ2zW!xGE9$XN*W{wnq+FGs)`r6TEqqDgY2jWiejj7M#oc! zOHz~WE~nd$k0)E5%$i{t9i4>#tZ9Z|C!vq+tH8S;RFfym$xQ3KaIW-s7@BmR8cU3qe=rmMI|j|2Jl5?X&n3~-2Y$JcGLDVA2$CfOGJ z54)scPZZ6L=eFd%`$xg?E7Opr1My@mV_LK4c*y2~p#Nq;q%q@l7Hvu9`Ol&hsVyS8`8LLZwq&lpDV5$95oj zAQ-Kp-4{usCU|?#N+Z7TyThk&32P}f%$rhR{<3Y$*PTe8^%b8L5QceNoBTFVSr7Bx znR!gQak!C=KmPT3B>7i9Dog(fg^csxC_}AV+~g}FwDFB_*+{aDL?=SXId6(OR#qiHZ&i&qPt3#l7Hp-d0m5+(B(=U*E2y|h} zn=`Sy$4zpGJlT#F!rc&T3}tc{LdLKz!{4k;8z4Py9?3`R0`1)6| zs)tk_f3oW2lCx&DoGjS_JqogPovRA+h?bzusF2a%Nt09!r$IiK(E|EAAN|IKE??;` zwYAU(0TydOjM)FHp^mXQnG989iGSjEVLj-71F<-wRC~>kT8AawJD``2+LjaoRhSq3@4N6W69Yb&yf(u1E3Z+6TLr%;wRCg>16XxgpIi ze%U2;GW^wLn?SXt+#(Kw)CKTe^4?m2N580@=}ZDF>6or0LEEIRrr4+S8@3wsDx2`R zUa~oZIdLHOgT0{#H@a0e1Q5rgMZ%}5MZK~j?Mb5ohL^3oQx!cfMUahD(67h!><^*< z{e-i_A#GuQua43DSR8n{*q?~5^7|;=&)q$`QlvpIBUy&#^!bxB+D`xDQo9gm$to_N|#Iay2J8UIJx!O zn6A~QR9#CT<{sE_eM9rRVhb`l_5!%2U2y*t^fOr+j@Y+1-(I6q(q%0V1*YZk9&J^U z3+e=Dyk?FXfbJ%@I||Enz1xrrp_kYGoaF9qXn(k-2<$NNuT{(QhLs<2TiAVF;0Oj; zIs7LVIlgVoT$RKOeK-BZc|~gVE3|T;AVd6swYhrcaZzSKi6bOCypTrEQoBh#ssFj> zt*Ff;KW&17K{nOlqOPUePp5lcPw4?=A(I4!`Is(3Hx(d#tJq!a%pnHfc#DxvjD0hH zs*|3Q#Oft8<6P&*;kdugQ5$eFSL!a?(l4to?HbUK?6-m3ZK2^q6) z0@dPSgC*F~W@3DX|Lfe`aX?%bnsRjI`lW)x&M#Am3~%Y;tu*C9xYypIN-y#PQNEjK z@ntmMLxsjNLENaUpL=3LU8zFFZ@kn~<+ZhvcEZd?vaX;u(h8Q#|A+Hq^lFprJ0NWh z>hU|HZ;tgM^v+rZ9`pMtu-#bPnf7>@*+th(u5`AzYRWSzy>Cp)b*ej)Zc6&~9lKV& z><{(~Y%`US$SJd5<9m?J#;#wHNDJFffpUJwZ`A_qyltZfO1~#>j0_d0m}9ft z9&nZC++Ad!DsTLWb9eYV@$5L>L|{d(d^u7Yqqtd5jf?xeu`>6@ z^sx>;V~5a7?_j>Suh2j|6wXtykcUU94|^R^*-U(U&r3iMa@`evwcYiA?FL!RArN6y zXM|wD2?)}fR6tA>rOM3g;<^RM-y0Y}CZ@sp{{C=v8UXeo>c9P2@#9IFuxdNfGNYfl zP3)^?v2;ZsTiBG?d@&Pl}P4Zs6b<7ACS6{b_+qY zJT@Yk9@j!E=K08I(?)mr0_q0-mh(J~vWGqWAKnPCI{jt);D}sjr+{N(h*? zLnGOz?_Eaq+XuNAXBXEx_4{4VlXK<-fCPuMTLvMpCs%ogw^O%J&?DKn}XiBJB%XdMIl^7Aq3QKGc=)GOJ_` zv`GXL;>Yk~^IYA^D+@G=63>H&Pr4+C__+waHs43EZ!GWX59*SWlRvf9mOG&P=&Jmo zb^1Z=8^eEwSLW2G6&&=j>Vbp(L9tw3fKDEBP$1o--OQ)1nOtXy6Ha5nFK@k$5N@6a z_M$vVbGdUvKt$jM5v4{~w~|YgC{s>K>z??eD5FV&fj0 z2stmiM-8r~_ju9Y!nLT4eU=qG*W^7%AiGTwK&e9H#G`Z$9UbXuGqvMC9@1Jxq#UNo z+OEbADvT98J8|1|O(D<68RJMHn8Bh4n9Y4#HeJ$_J+=3Ko{iFf#JE^WW0E=M0m0}x z+m_7*qQyFbhW)RoQ_Q@~D7nGQ3athXkIm7-=3O}3-~IpPSR6EvoBDhNlyEqM+5m~e zZLZ*p2i7*1_t+`Kc(S^m!j`T#_}<%&(!3~GDJ;3=|4yW|+W;0EfYkVYan1^Jou%xP zopKu!Is3gc3+t&8mKE+DO5q}JuQGsreyy7ECTPR|;452YPE|Xgko)84rmH#d@Rpz< z&^fE`L&|K#=obIza;3lyq%jTHc7MpSQ!z)!ix`@tk(xkdQ`M6YJNQcisbt z{(3!|N1J2CrCP<8ae+J4eOr%jC12l;nkpA(dZnGGk~h!=9&5mFPUj=NZ&vC$E`&|x zMq9n4LZnkc5y4h4VuSOjv$p3l+J;V<(QNTW)mY1iOK}yu>LdS$-6=;vNJfL>zy3Qk zI8de)Zu9#;4CdFP31Tq*<<&;{$4?cm{s^D-9$h|`Lw{qMc+O`)lK$ad|`NR7RPd*F;ZW6wzf)1`EHxaA7Y3h$Gb))f#@6JB5N~W!j>2vqr zYg{Ex<8#U4m$@D8J2)_2v5y~YekPpz{&Gyp;?xF3bJp2zopM zS>IMTToC>rLd9dtUpH+Bz0}*e5p++^-o+gyvS@u`;0A^h`G08?cJHtLYA>Lianrlp zE&AnUa^Phv+Wt~VMxf3aPyWDMI13jqxEYG>r=qqCG`~7=_kxU^^ z!Z28!IA2rV_z2U5rF_7;l78Y4-8U02qS`U~a|SOoCZdDjrzQRhK&k$fb3eK|+KKlg z>6e}l)t_`fni{)CP zcXU2~v72{lhBVL8j>pm{WG+O{J4s}BVb7+YPjd&ryLutSJIu59?lUmG$#!i&B(L9X z@XwmpK``1r5Pv4GOd|vr<0r&>C0H8HJX*U~5x@co0<##L9P-ZB`v=Ru)kGx3xoyg+ zQ97l3HWWMlSll!a*sw2rj8CFFJ8MgC35X~A3@KK643dSs`PO)01DkiDCr}N=jtmOA z+-@^pt85-t6{+J=C&XiHip?&#t1`a$Jd!2y`!bgkf->A}-p1A;fp+5mt*qRhS}^fR z5lQiYqbu96tOnxS(hmL>-2r{1`p7s?4v%~fdYCa0VlBOuO&i%e3*O$dVI;S|IpJF_ zT6fK>u`YAWqSZ66m47%kESyez&00^-ej-dTR(S*Ji0_=A92x$*{vGq4|k! zKY1jy9#%XjM}DJs)wvWnKYH^Amv?i^x9G<1>Q}L-W$;}q^^ThA-M7r^k75easZANu zE@}-ByM15t$*wRr#GxF-d$F!+lGw}IjHiFSB|>p>>aucSKe)2y?jXG9G=lk7L-yUx zUj5#J`R3ia3@`di8=+#*>?+# z{rqKFmABE*;3n0|pip)06cq{&FWbSL9GAh7!0IUj7E33ZQCKU27$D`$I~`?xj3{nY zWBh~5Hj~6klTqS;G`r~`JWbbYm{&?Sd}$;uT9e~~SE}f8^95$0PXa}$k{XW~Odfy@ z7cHEYIrTd$wKX~;LmzOYyDo>@ES<|P8Q>a;1FGDEjyLD$eM@yN!9urFah^@#&1k#K z6u@XvI5@CvbbTTc4>kF@t1%y*YOfN_l|De#9pDX+q{`nxH& zc-6{fSNf@$TaW&js+2Zd5xps;^zJFfw%YK_|yl!+ZrEqt7mP)?9iQiLfv(c6Dqz}MQl*@ za(KGj?T~%G-Jz`Yl%8#8roEB>q?xys_|(x48Ea7ci@2WmEak)gW{jHXZ?nZhR`R7) zWpH_2Rj}1(9X*|sy}<^f%sqkc?eFdrh%0KV0-eeDKn=wWPJ3Q6BkinPr?r>`J~(j(@_v0ioas zI7um19qH!*@Cp59_D}d6XmfyHX6%ot%Ow{ZM!$4_rCavd@7tRW{v&0W5*MiXaPVWL zb|;qfs$`d?xai$Q8;^mu=LWxZ6J^WZ6ihF1 z7C&3y8?S8jlC3P~zA?k@wH;9o{Izsuisk+>^(5v||3mTj^-?Akm%R}`SX?iT#2MU; z7=HS`{2BK{71X<69CV@DycYkF+r8(y)m2oxqDW#Rm~NhmdYiv5K)VW9d1R5TE>2M*&Gu&4wi&@>xD+l`MoC1kh34lSZ>oa8eOZAD z!RC|?#kHqcH&4orO+o&5@zk2z&-Cehdz((L`gZFp9Oy;~z=vY_6Knc@bJ{{)a~+!| zxoC%^4MzdR`2Tr}R79fBKHYB!HiQjLInSEK^AOpJ)y}6;pjQmQ8*3 z;pJJeZk*?DZkNTs2QNCYUeT!E?+XgJLE|jIo+0cAr2Y2&6gXeSg#~OY2{{eK4@c4< z%tW(w5>1H7v*2|Ndg#z$9@qpzaLIQQ#Op9cBZMwjn;qc`p1nPf8{66ot#eyNd#%Rk z&D2l`k?$iL#Ne__Y0g=agviIY{+C4YRn-QSHos@V6XGlZH(7s zg?AC$++OR9)#)T$X0PoDUY4!DiVoeeL)WfEBqyUplXkrdJz8#(sWB5=9BANvP~#C8WQys} zs5T#Kt21c!?YXLv>*1AFO2h8O=1vP2y9xwpcye?{@lGwbsw9oOMGI&sj*EGi-MSqJ;hH_+N3pD=Y!15wTf3=1)Q~kbeKTKlW8JCL+eoBnTAn07r&9IDC zjk{^Qy=+T`(fL~Ko1ZjR1e|%VeUI4rh`(6-_r8r=%ndPN@K_>no z4WHip{hVX-+rK%UG1g62yUkiSIVXaTh}F+Hq8g7PitDFlNJI+AEQ!|krE%b7v`S%l zQLXms@LpVS4K}W1TJFx2k&B87Cn;SbooLFjxMxfx;ixkiO^)f#(U|w$a<%&){q#)S zev>qA%0-q-?lzJt2w-A(Ea(?zcBk<6%`LIu|FoD^0gNf?0%g z38){c_uQU9F2+w=enCY4KxruqM%|VgPRg3COX=7-ZR_Qllt8ZrpI9_ykETU6XS>ux$ph#A^-8&U#b@hv^Y;p zJ=Hf&zS?VdhZ!NAq^pYgn*$2zrS;17$IX;GPZ*B-fHMksWK_nehRGLg%ehAHc^93< z8m5K9VxM2V&?%+@3CL&QEKbrapO}QAYu~8UL&PVpexn&_T??i?2rC~yG1e>Suy~`$ zi`(ktvkDlNLFI|j!U)r7w))C8JW`ttPUAk<8Bty|( zpRH1@{IRVz%v%+fJ56H8zW41(O2j2Cx|>)3Xv*v7kh70tGwl|;gjx9$GnZ15vr^or zm}7y}cf>|e(NYbNi=LUtB%M#r`@kV3CzHWd+Td$!Ep%T=hhSVxOiU>i+QP-J3ME2K z!;^z=rNTpL>*QNq#Ta=t-JRFlyZwQq5x7NAV0j7tS|c-5KF^xWIRbA)<~axzxs_Xe0)6ns58HUDA(|v%xAtIOvkX zh$ig>nizPhlVwP2LLanU(b_sVDqx%Cv|xDMw$2pBdGN6}2CW)%^@G>Re2Ps(e(Ocu zv%phGlLjmk;;ja&tnAV=;o`P@Nm6_wTDvRf%7&DJ#!@0>`k@Zx&Rrjb%l%p`{NREW zFo-z^IR=U#DGi$n;D&7k(lVuDhJo=7ilb?*PwJ4An*u<43Ti%1*b3JHc^6@_NeEVf zvJ9z?(d}N{yFzD5xz|f##vqg`r5T5tfV@4P0}^_=tq?BFVtDHk7$cLh*IS||>%I3^ABsNUy5V``G;?b|lQ zrcPwv)!cOb{KclNYP5PKNlVF`d!4KO;5y$@bg);QB0JZ#N0!)K$jz!)n{`YK&Vs7W zhn!T@3XRdKpD4g>e5*r*+o0o8JJ;TRS&8P9x3!@PYgj{+dMTTm5OmtzBUQPtiQ<4Z zbnf1ml!6+!4l~T`Gx+m6Ij=j`qH*!jXtdUIJU6xCjHT4?a7|nS@j-p}G)n2fp)j6L zo{+OSC$*iQD$P+1ihh(_0;f{b)4H=}fp&hqIUclDm&e;h5^n2rd1-fdn5EYK`WpEId_Ns1SYz$=4N z>0^wiwJV8mXpPoO-5+t1m9rpY3b?e;w{LX#^rt`>xX`Yw|5b(AJKq!O?=G+~yF$8(bmMxozwmH41N zdX{?#kzyJXRF^H3=ta!(1Y*eX_TD;0*khx#5$|M5`5NtGG%Ygqm24ECQw|po-g=zKv9z( zE5FDU>7f2mlZ9DS9&CU&rldvbu<*%sKX+Gvs>5(lVza3w53i6-t+eQ96cVIx*-p39 z;546{#>CmUO;_$;y-1=ko5%Vo-rYILlWu)?(O5w@!@&zMd-q!<^T0YJUZ*o(nZ4&W zM4|~bG-BwrEK_c_YbAKfUtM&n)j?5abjEfn)9y=wPcd^2b%H`Tlh0k*jd*=Jnlj=A zdsfx!pwI&yQpu&QwsZ%7e}8B=-wZUTy-Y^JI=$d8oqX;sA3!m709%;Q8*Bv? zF$nWx8gDD7Y;oz+#@X%D4VRx0;2RYtc*QD+W&@B~TH6fi7b(CV5cg1=Jw`s6m|bwV zgF82fG_ZKEPEe2-J#H2Zkj&%|ae{)TY*lT`@I^r<%uQ1UpbjF*uD~TgN?;riZ6TO% za9L9w7xMFr3%t8Z#~e@Mx3?)(Pc)51nMr)PY;!P{cSU0=sz*m>r{;~|_Hu!h`TD+P zWkwbCUP`jwg0xDoNtSbYNxgyGN)r=HKBu`v?&Xk)sc1Uex|me0?_@(UF#5IVCIkzC~_T|jAIMOc{m<7(| zvv<`O)aza7ty9cI{iRjc{dTJHcZ$;MXLe>&IRc>1_4ac)1r?S)qdwoTit7~5jf>@w#MJ@HX5Qa!O{4t3YZJTCo@cO?!mV(B5doj*J3fnt8$-n#lvUi<_!wf(O!!v-Oq7V}0zJ91+! zmd$eg4-JCf!h1)9@7DU$Eto|53(T}pI918tT+Pm7V_5-=n9}R+hB4n?P9pkrm2(_G-2N+~8kF-RTqbV&_dLo!S!%%~sV+(8^Js7;!8 zTxRN07jXwe`n`APCzw$cc8m@@4Gaq#RD=>xVfVb>;rx#Es#69U)NfSpNQv+^^!Oom zm|bx?f8vji9A-LqKNJNmJQMRiw4xSag%zm?O;FKOJ=BX#hkqzF?hY)5aHxq2OjW|c zMIb(sB@h#_P*`i)Sx2G@F{g(uC!aenMK!GMPLyfYe z*Er0hdo{3@M5NrF!J`mQUrL~aEy_lU=&Vf7?@{kG4w%VvWI%Tm%02CqT~ca{ypg|I zjpza;zKggR;-8>ub|`l&Y4#BVI_a^C3=Hx77Itmc6pS zqEEVlRvt58MfO#f_zz6AO5Od#ue3d?FROG9iw77?)d{qSiyjbrLJnpE(PaO*Un;5X4_|1CSG|9;B3-Gd+|fsVwyS z^7Y@M>5ASm8HmUvgd`>Bo&IO3I`>BnSXw0Oh8fEL=J_jdv@$ zSxP*cOeYcnkEo#K)|b`<ycDf-Kk@q+N-;vP117;+NtF}9Y{!X9Guyz zl>p3Slb0#9Khx_Xsh%KL@;%d_de%mf zTHNR~PqD8=SrHEEshmcwYRGpL3?BT>v-ema!8%IT@l(!}vDO`+M}Xg;JyZ6=D4~&4 zW>rep<&SOLUE7Eu$txjJji|mWVwc*xcitJayltE{uMnu*%14aLML#$?o{gq~V!Spp zwRTF2@ks8e%nh9b>4hS=QQ(ecMHpTx+8AjqvrxebQ5F|nq~go@ic{w$<5ctGy}c%i zZTn^ma;KqQSXJ`%+i`aT>%-3u>Xhu=j@U&L+b0#`1yA7F+qe1ndnMKOaI%Fk2-lQ| zZ==gB{25-Ah!J1WD@yAJ!k&-P))h^*WhL3v;s>n@vL9f}hqv8xUtnnV_xoq(cA7@6 zFy8a?6+#lLTfI}$Gxi?6v-WZ^b#A#Jk%^w%xep>a#0{dzCR698d&=v<=nBEB*|9Xo z^}*NkO&BYNBH@2}EIa$E?Jj;}>d>l#^_)WuNh zh*+8Dj_C!C5*IsEYx>%f9KPGxP zt}Apj+{$aOxzT0Sx$0n^Pp2*?=`f|f3ynlPn+MuKN#VU5Y=)pqw7*>pncYgvPDKc; zd?CK-mowCoSXW?vlvT|h7z5r`7dI$18Cda)D_Ixco6R*O^`zloy&63AGJ^TGS1du^ zp7@tGz|&ZToPikbEvyr90wgx1oWPyqfEg)=X|v1eP;A{m&z$NdQ0Zqhib-g;c@ll} z$K1WJ9zivX_vtS`p%0fo5VjbEo77lAN##fI$V35!BSE4PuriGgx#_2wNXK7*>i+g7 z6Z^w1a$1q@{fl6h#ZV=cM|EBk(Re~`y%a)V&C?vIP2GW;B1=wy#bQtPUIbw$ZdZwk z;gg+*jq%Ps;CerULRwbT)$yZM5z}XLl(su6B0sVqy6G{r>8%@TpcNukIYS5C%0o>I zxDt@2w{xnf2RZc4p^!24UQYR~w|={4nw6F$C&7?RttL+68Sv4jZB@DY-`pH26Fyl< zZ#F%xm`wF1*^%VuixIo+Xzy*&fPUUunwr?k6+|8%LT6rqhYGOXmOG91O?oWT{yOV} z&&qL_imFvnc|}#mFl*2rT3P3`La%98(2nCOiu~Jf`nz6L{_;HsNvTt^14Vl8jZ3;$ zCf5H}y{v#hb|HA_*qjFuvQa|YdNBGCf&aI6f%bIwBj>!gyvpE39K8lc2~}1)8fyn_ zh>U4!#xJ!|A>l?PcS{Zb?kP9qM|Rl%bwL>3*AQ3=fGwH^RF7x*7LC_CS2UP3gE5)j z?kNhcW-uGb%(xtV&BYPPT#GNh(`ZIpwh6DuuQ&S?_9pJej-mF)rbvHYqY>Y?fi5m5 z{wB3l6%7rYe*O*>4SaqNbxu9Dt5GN%U6YDkcZ{x1Vbz~K|2p&SW$ov9j#3Xwo@)ltdRiGwzv;N!YFCJC1{&}$=J|7M|zhO%zB5J_Ph`ph`pFhi$^bzYH1 zI2(Pra@jtp`CQU(%m(dCDx3ue(`xfo(COSeHB?ipf;|7(CJ%umA*Z!d4Xb6h{hg9@ z%Jv*$RX!FBCMo6^YhJe}0s%xJf^)fA+bBOmXW^9zy?%FbLv!oU9I@woTdecE|Ihha zpzp>w732oXQWqU++5ow+FC95UPpIM1MPkIhCDX*Tl51({EYmhUolJ%axctd<9$(=Pi z255>V@K)GnP9S<&dvE?bFK5}e8iEZChm_qO)}?^q$twa9;<5TTN%$-Dk&d+yVFJT> zGVTQ%;ARvY4zlm@=#D_a%f}0Ky|4Ge_^p0N6gz)G=?y;`$7Yv%A|j3IR)eu^hyDCU zB7O(^{bLTQoeK4ep{nPXMq;3#=jJF8AwvMvr+M)P%B(w-!#KzNTy9rPf6~wGckwJto3>V?E%uS53jY`@Q}u( z-5xVAtUmnC=p^tDM<~q>u|&TBUBA%px8Lqo!Tt=_Eo?s)0=*5l>rId&dEZ&X@rq$Q z!r-U!32ZP)bmbsXj|#~L*wQ4X7@MC2h)ghB$Yk~tUm*?l*K`kaTRk^3k)YB=Y{zC zA{hl&jOZ}V8xKjY@JS+qlIzfQN_NY@kisDz{Yv3z-Cm_P*Fh?GmH0ERO+~>~(QMSS zwv=u7_`%cuya8OgvxiwKw+^yPpUl<<{_$>HqvIfe#UBh|j%v+W+&f|Gm8bK0Pe#|IWSt zE{*>hmV5s-%m3Xq{=4V?*CqI`OYmQp;NJiLz2)m*5*ee_Xxs0vv4D?)jH+~{q Date: Wed, 17 May 2023 16:07:46 +0200 Subject: [PATCH 09/11] piePattern : rework the index of legend items - take the index from the point in the styleOne function, instead of setting it before in the data structure - zz-pie_pattern : height 500 --- src/components/drawing/index.js | 8 +++++--- src/traces/pie/style_one.js | 19 +++---------------- test/image/baselines/zz-pie_pattern.png | Bin 39215 -> 45800 bytes 3 files changed, 8 insertions(+), 19 deletions(-) diff --git a/src/components/drawing/index.js b/src/components/drawing/index.js index ba4dd9e5ac4..23cea5f0073 100644 --- a/src/components/drawing/index.js +++ b/src/components/drawing/index.js @@ -619,20 +619,22 @@ drawing.getPatternAttr = function(mp, i, dflt) { return mp; }; -drawing.pointStyle = function(s, trace, gd) { +drawing.pointStyle = function(s, trace, gd, pt) { if(!s.size()) return; var fns = drawing.makePointStyleFns(trace); s.each(function(d) { - drawing.singlePointStyle(d, d3.select(this), trace, fns, gd); + drawing.singlePointStyle(d, d3.select(this), trace, fns, gd, pt); }); }; -drawing.singlePointStyle = function(d, sel, trace, fns, gd) { +drawing.singlePointStyle = function(d, sel, trace, fns, gd, pt) { var marker = trace.marker; var markerLine = marker.line; + if( pt && pt.i>=0 && d.i === undefined) d.i = pt.i; + sel.style('opacity', fns.selectedOpacityFn ? fns.selectedOpacityFn(d) : (d.mo === undefined ? marker.opacity : d.mo) diff --git a/src/traces/pie/style_one.js b/src/traces/pie/style_one.js index 046107813ec..0b331ae7af2 100644 --- a/src/traces/pie/style_one.js +++ b/src/traces/pie/style_one.js @@ -9,23 +9,10 @@ module.exports = function styleOne(s, pt, trace, gd) { var lineColor = castOption(line.color, pt.pts) || Color.defaultLine; var lineWidth = castOption(line.width, pt.pts) || 0; - // some temporary console statements, for later debugging, needs to be removed once the assembler below gets clean - // console.log('styleOne - s0', s[0], s[0][0], '__data__', s[0][0].__data__); - // console.log( 's0 iiiiiiiii pie : ', (s[0][0].__data__.i !== undefined ? s[0][0].__data__.i : 'nope')); - // console.log( 's0 iiiiiiiii legend : ', (s[0][0].__data__[0] !== undefined ? s[0][0].__data__[0].i : 'nope')); - // console.log( 'pie style_one: s', s, 'trace', trace, 'gd', gd); - - // to do: rework this assembler code in a next iteration. - var gibberish = s[0][0].__data__; - if(gibberish.i === undefined) { - // coming from a legend - gibberish.i = gibberish[0].i; - } - // console.log( 's0 - i : ', s[0][0].__data__['i'], 'pt.color', pt.color, 'trace', trace); - // enforce the point color, when colors (with s) & the pattern shape are missing. // 'abuse' the color attribute, used in the Drawing component for bar trace type. - // alternative could be to pass the point color as an extra parameter in pointStyle + // alternative: could be to pass the point color as an extra parameter in pointStyle + // alternative: could be to activate pattern also for funnelarea var marker = trace.marker; if(marker.pattern) { if(!marker.colors || !marker.pattern.shape) marker.color = pt.color; @@ -33,7 +20,7 @@ module.exports = function styleOne(s, pt, trace, gd) { marker.color = pt.color; } - Drawing.pointStyle(s, trace, gd); + Drawing.pointStyle(s, trace, gd, pt); // to do : push into s.style d3 logic s.style('stroke-width', lineWidth) diff --git a/test/image/baselines/zz-pie_pattern.png b/test/image/baselines/zz-pie_pattern.png index 3e421482db69d2593a58bf35eea6eec183f1fab8..97baae2c83b932e5ecb8befe523328a832ab3af4 100644 GIT binary patch literal 45800 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 z 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 ZXY|I!2xBjB@c;$+GSIuHi_&(C{XgpjB0B&8 literal 39215 zcmeFZbx>Sivo1VXa2T8rWU$~6f&^!9cXvy$;1Jw`6Fh{VgF|p95FikopuvKBaCc|! z<~`>1n(NLr)>>UVsPq)R15f46%nBVz_wT zwOb#7xGAqKu#U4*UYX+)oRV?cMtiAgVtqjFj+Zp)o|6<>#iPei{J+mjhJXg1Qe6}O-=+ma z8d0GjfzN2*d0=t=p@Ry%K#(&w4?FTd?m|EaK|cQ!6#9b)5e%uw=?VQ?eBd(# z>V*3bK|yGZ(jdexo{2{AKi>dQ>cKyC2SWHCrT!nIR2U4Zr}uQhWq{4CpXtjlrB@3R z#m+)k%fV;oQzqjbp_oh@9F-ci&`mMGGO}v{!`Zf@jeQ6Lp`jrPAv`Px<65@|p>W$x zztAb_5)W+T8C|M>OEQ$fpExXhY1r1NU-KGW7=CwJ7`Tj`=Segd!sZH9tN<10OI=_i1Wq#(L!JqtQVU(4m2JCtJCWfDvcX#P{1<7zoQ$G~*-mu$10H6!oEGU0>4c0qH)0Kkp7& zPL-Q37k%VTK9;?F`BHolr)SroTC-Qv9uv+!H?kKUnu2(d>l z-&x#|_dRdAb$aTXnd4pBI>(&Xt6}$TyS-V0=~>K*z-KlC;$N0O)4Itp1-anpr4-CNM>+U40kZ-70jaK{;zEC7c$zH~%VUmPoNI6$le;| z5phCPK!|j{?tBD*W-O4!l^~Npvu=EfA~~oG)Yb7_hy%6)QA}3k*Y}` z9w+Q=jq~`tX&MlMIVK6t69n+lON3JNeCN#{it$x)s#WIe>86%rdB5Mt1opMM?fz!_ zfl5Cs2ysE=&|@=h(RB+x{rrN9eahIU`~|i-HBINFw_IRR^OLcbpVlSo6F3p6Q0~~~ z)3yUz<;VbA&(zev;rdp(8>} z<$(BrkB0+XxNkbINMa2#P@5 zpZE2Mq)N4ZEWNUoEHf2^xVz{7sehLji$dW0F@ap77KD7_NWSxXkW~Rg%wmG6v~_F# z6&P}Sq7>u~V3cG!2wAocJVU$XA71cxZ0=k0Y(N zsG$NQx_Ms!Lx_|C?ESchQ23wBWCXy^h>4I7<5ua&W{77}f|5 zHW^@Ke+~bissBeI|7j=xVcaS4@0WrCHDhDr>CH9C zw*cn-j&?$Rgv$TCpc&wz;^G`(pNo)%*}XkGvX`%A|G$R#FwhJo58@U%BGh!JuNMyuskP;(o}> zKcO0Awv4q-f?Bx3!sZAa;$mr1Kl`T*Z3k005uWQRd}gKQEnbCv)+*H=1t{Y2}j~_pFEq(j5u`w2ef*JB+#hZjppU}x)T3T9@ zR7Rf(SvDWpS>)fV1uR>j6&jEh^ch7eaD3OivLN+f8bn6JL?LFdQ|}H%K__`IDp#;V z4e9P3D^Rcj!fc1=pLSHLe6ipsUcX-Fh z33)EZ6rp{+Fx`QM1;KoSpyRxj5&d0^EWeD42(m2QnG^fp@_a$-k`E+hxC3Y%F~z`V zw$s|zk)TcfLjxh;*$znB@SW`LBuv znpk#mu^ingW9kHHxf`E@* zQUqiV|8^oMfEaSsHJPrDtO48Cgjx$=I!fa4&av zUhJnYy9SJ~n(fImuRa?%*{!|vw~rafEr3eA94Ek^Mxd!M37yDsqx9uN}SnN z^zRJ6xHd(Q5LQ>wfNUD=S@PfXE`t5NE_(bU5)7tt71z{!ba8dH`Oow_fiS^?VptUJ z>wSMdCAE273xLG0T&bwL7aJp4hf7JGNA0MQx9xC|`?K-Dn=9nC`qwBYz9Pv3K*~?| zVAAF<%%)cpVmXqj6es$?$7b+#FhFS$J(bs8 zor&UyrcMeuw0NhVD?mDnb$kj4ZTg1x9H)WBwiVEckkL`kFjN@!$!B3!s zO){mbtGk9J|8)P8#H@(wKc@=v@?G^9n3$nO0+;iyp<7P_5rky6PLA^Z{ZNj_SY@U}{k>XLk}`hK_vQh8>GGBEybwfNt!iTaSx=t^(i1H3 z)YLJ8839M$&xxm28Df)@lWuDp)~|Mmx;TK&qC zJx@9Y|GXV}0MmnO_ODz5vh0NjVd?oBOv9Xc}%3Nt46i{``5rU5j+S$7>xr};Ql4jGATleDSy~Y zTOzSQNo+Ree>^cAz?6mO4sdTU+jj(9&@m*AEaq02&?y;;+TK?J2yIA6G*S- zb!1m~PoaTW0^--6Q{27OLM=#2PLd~hvUw#sGCW*JEfMDV znH@R8D*OpH(qAgribmE%aLI3q)IKc3_>k+NOa^<^!h#$T^$OD+Y8Vou@HbXUCI>P@ z(+uW{zE<;WNogb|GO`Hs(;(Emonn71T-kI*;MLhqGOJAibif9vigCaF%?dw!wcwTr z7idYWwjQN9z6ES!#@b8`9c5u+(4|k^{;{Z3Xo~|-`t?g)JMDbW$ zv0{2$?X)7E@b3PRBz*jcPc04r0MhV!*@5)2DIo;#V*DV9o8Y4n09LSzJbq=1 z#E1V+4y=sh>6ezYYj z6xYOK`Nw+%K?aAIm=+x5h`BCj;eW`97g2y4VIT;xv*dAH6!N}W3BMPl-BFHwYWi)w zBg-h@{@gzxz6e`7{sT31{(0=~KNK7j=tWr8pFMRd)!u&|K&eb>JlWgXj~u0x_ZTER z$aVanZi-dYhZ67DfseYMS}tbax?Qg)M`ci}=M$2U+$uHX@`9g6b=fJPZ1JgH^)|BdG>Ntcs9A+Q=Dlw$A@EB z3TX~fZvZ|Q`u{ek`3e$#QmkZ-`eN$!zblwhXXUy?fVU>}zWdv=$QeKg_~gZ8AEunI z(ul+35HC3e_*2*FSh@Ky3czXC<1 zzq5}=I&z92`Hv6|g=7NzFH0t};0s>IO03gsYx4t#YUo(Ty zy7&PE;-i9c|EtdXUo2!b5~yGa#SqV8`~^%PL}#G7L^q5I9zy*K0zmIQfuiL9En;^U zmGkiM0DFAWN=izfGBerr6JRikyx+?;%6QAic6N4z@IQ?wa2p#NWh2D%t_YB5?aCFin#-y-kj z;HK2bj3Dd%XyS60s;_H$qM*Xo!^!hN4%5!lra*L2ybkc!{&v(QCDJBfF_1{^ukA%G z_CcAIdFxl)BBzkQP~lxPS(e^Ix*qz);0a$^jN_SpY+5(gFb`gyt^!!w)`e|K+iJV@P2J0MQ6|HpfrM2Z##*qum(qQ7df}0|a zp+~pKb}hBL*i{c~BWs-sL`RA4AjThP?F-f3-4Cqw!;g&06i9o$-UCV^k*5A&zs%7I zY?&~#un=%G>k{)9uW-n>fM}`EDOLC@Ml)J;>n9kwz3kLzXn%~@+1M0&I_&RBO1o>F z*2b74kJ$YQ@lqTZ80bED%@-w_(C|YCNk#MemXCu2H&Gik`{a^Cv~~pp2Q>{+Vw%H5 za(5MwvcWG!d@dObxC?iYcee6%Xdl6Ztclw@rSeayza1=m>k3o7Ex$-lC|sZHE`Ils zJa_w=SdjfE88)6c{-=alzPKc}@b0dv`h+ftf#(jFK--5D_!_-rJT$98mIQL8x9%KT z{Q3K6LeR&yC|V=NBHNPO3LB$)?0AAf+19md{{6Xz%9KX)4qHb%Jyl@yg?rU%U{UKl z_Op3NFY!{h_n_0KW&jc9*D20RXYR#cJ6G?@3hxWdLZygea{cZaI$V}U3@tOplf%w! zJ;HokEuNMy>TSbYWZcQl`{Z-Xgqu~3wVBWRl(G3lG{10~O*Yea;C-57`8sYTBSHZ8 zTh1Q4Z;an_lH>xiJNJ>ZS{*?tu`WjyJXiR+mC~x!} zUe$TEvoTVo_3vH)G(vu}_3BV2l_O_t8P$HPq~4ENTIbE4;)m#GgWpC%e4qXSN+J5= zFN@rle|mFZcdF?g)y7~kG(v&0I!fPYYY2>^%c6cr+=)<&ceG;c29$$W2Gd5QoA&DT zvHG>;pV|fA^f;9o!O-#yB`W24AL5Cxp{|}=-(i{2Ldw7<)~h8Em;xIx&v)r3ETI(5 zEGbm1CeyCI;WhmMLc>F1^0&mL5@A)`DtjK@^Aj_!TFn|c*pVJOIQ;hhz@ymv%BduS zUt``;yYyVhZ2c!QJQ!@l&@ZSfAo!_;@y7^L924fxs!TnpKqrf z6rn92l4Q!EB|ULX%gR!z5~?B-^F4U-xGBUab4=EyvX9Ma#w5M<_>k+dCf@! zuXne9g{wBwo!=u9qQtA~8-h>SBHv^^K%=kK((iI&&MOU6P1bPGr*USmY^(WdHa z&k#1=9WA%V3(BzyTHd%b+-y?^K(x=sgof^nwy(4N{YIfHe@YN42X1Onnpz$ zRzdxOfL{Sx}BAj7Cq!A1}(b6-l^wti6td!0E1L<-=QM7bYe@I_^k`BPiV}k ztXsRkymN^dc`F^AU4utkboWsq$oOlmvaQ?mB38zAuDA7Ml(vSGR=nRUK6;bb<9*>y zCXRw@_?*8g@7O#2T!&Tib6cw3$VWp#pJe=0;50XW644|-NF7lJMOIyb>)l+7fT@uB zTVFwrp_vW;#GTC;ulwR^nE>12VN7oYGd0HCVm#&8cmT>mKo-v4Md-}8j&{r?1-KqM zHmN$>bxSq~G?l4InKX)Z?BtU%-mg;y>reA7fn|Vo5C#qzdrr}&u=&%m*jcXa)d2}< z@V!(&dvkO@M>Ff6{6b*YRiMGtkjjEb?47(S8TC6br0qK98;CRW^>gT_5wGylv#@7H zZYQs8hX%PRNHQm?ei~Uh`PQdp3(zytTYo{3{lPUSt~uw($Fp&PaWi<*=pH8Pp^fRQ zj4p40nBO$W0CgEek+O{+nH%FOu9yPZ?kvX5st+mUc&SAw)tbsbovKW0d@F=3OOBm7 ziG03LzJ9iHU|V8;M$h0{BB>BaI`_&<6~~B|ontE&O+}O7U5zb|*qfF14Zehm52cq9 z+$a$(+V_14n!dZ`nq2hYC=*giuT(e2am6v(U~1_R zDWdl#tJ(CD2QyA^YH9n*qgvy+u28Hr72cZgg#DaA$-XNh&-sfum+4gETXJ}ZRHzxy z9)XUTe#>y&@A=}HCU3pBg+;1`ASK1~5@NNgjNEoX8oRW2!$*c1)Ez9PEzds6mU6eu zRr_2zOfeJ*SvsJBy&R8X(J=A2#>*sum&(szaBlbYoc4`nC`w3K3-Lb4WrO~y_xjj> zaokSsO5j}6{~qb;c3RO>>TM9Sm*5H#P^A2`Ij@o#osOOW%-|w=xj#qZhMGo#IUUVT zHd6Ksv1>4LVNWn57}x1coDdwr3$O=kg4n7DRf4Cy4c-D>6wxOXK1kb$U9WbXh-zXdA5RMHZK1Af2kbFK%p!su# z4Z)m{1{HqqSn^b)rITxb+Q{n_9iDh|m_FJnI`g5XbZsLOw2?|%&?xey9(FyrOYm3A zE?#6CY*KiI9-+ftsjFM0l=H{t0l>DMv%XyrT@PgG^bYwVip=RKIXWrQtv>Q_R#QvZR*riHyvU$E;AR7t=dD8~8XC!a zIGrSiiIb+7Vsjv-Cu!A?JIL3N0U+`^d);5rNJ|jxT zlE@4&XY$u}9(C_VairMbY$7*q=cVU11(k@q`JhT-fFIf(U>-qXc`-70_;%ENL+G|; zC}<||>6$hTsY}F??M3I6a1tEP8ZyV`2Rxy&DuP3hc_3k9|}On4POe1B`EPI zRgA&r36Y41%8z2U> zff`8HaIE%AtMd5go|bkiC9<5)8iOJ8g+T|~ZVNMhf+?@NgV6(Dm`yiS21{6#J%4G8 z2bss={mGohUn|kK=!r*doYvQ8HMK1S$z6PL5}_GOp@3T1RPy+pE*~0kd$dQLuCHY0 z)0rJ9yrCB@?k5pW5Ak_^GHx$^en7=rtq+B8A*@PLg3pb|hG^A=&$vqt1?xJ?(eTXA z-Bw*6x!fLp)ar42S1+m{i`1u5U7|`fFq62yueVD7Au;L5`~XL*X=zb)MxUo#VBc+; zhxkMbwJ`~Gdl#x;c~~OeOtF=az86&THaZe31{>$2OuqjQ(5&CMk~6(HU&}$Ju#W&% z_*@}B1#z%)rr1}zw}BRV)$;X|rodQ$CLriKnqE$q46Az`T|l{Hh}i~0 z!W7zPhORwVWpiD@qt_AOFRk%vaZCVTh?^&ECtoqXxwD?gGt{F#`UqP2T4U1p&gznr zh`LiL_el4gBP|QnXQkVlW=#rk#g_!scOH~Fl~QUiqap|gDA?Bg$lnsMo~Po|_^$Od zf~nhyvG|Z#1nGNgJb~gLY0s;aVhRrOXmb8BR}pG};v9m>1c^oTcZC0-6O>`INYw_d z<0aVlD9f_8A>i-Mf+3WoDzzk(;nRL@Ln}q=7ggi-mFV%RG+l2CDFi(Z_Q2iIIz3*Y zLchC*gdpxW{W;#4hu>c<6ILo&4-#Xwyhup+)$$zLXmmdQCH(*}Q1MQJ9s9Yj?;=)- zb}88SD}ar@8Y4@=_r`Ncyl?YJh=WqhgwVm2>}WGyz010eK<`-OF`v_LAcdg2o9D{C zmsT}HSGX>d2NPb-LJrzjg4LwyGfNJk$_U)bgTOwYABrKKZ^SJuGdl&TL=CScbZCu2 zy^UKKp?r!Q=@$Fx!p*@P6YsQ!tB3rso`jn#B1@(60zQ+Ere|riE`$V&iZCP~LKyEa92P9Kp2I>A~^T3JjS= zk30|QVP(eO#BB6FpVYq$dxq-u4ps8v`|BPo=5G}Xi!eClE_%!i@YunM=*wswl!$3` zuT6@CrM?uodCXQ3%ME^G{TD|~pcO{F0zZ}funbBB6O(FV@Jj-!497?kEOR{BAA8Nh zi|)`yTtGyZHKWM4lHmXiaci`l>{pI$NwZ}=bYT0kKF3@)?6C{szyw>G5>v2zCLpV< z{QC2@XBRPK&SrxEzw||gklDt9{9-*f@$hkbA-OTLF)@U^Fqu~IIAlrJoIeL0P@%B4sd`LF-0I#ghI%H%E^kV z>oPePsy0sj?HGv+MbW|xa|=7Pu_1#8CUMr|E#Ao?baDHFxH5IKD-pB;{@$GBRVa}e zud8T1c<0sfI@6+M^KpE+r5fCvGbb_`1<7*b9boB$*9Rj4DMY;;uNhKAanp_b-2ZS{ znS8|iO^ge`Q&^HFmnk97c^~eUeHn2Gjb!Y&Fp!DRJqb3olo*zKLee_L2@khh9Mb3= z?f!y&*6_8iB$N1Vm*vL0Ql%=xMO-EA`d*`0XA0~1HrYph`|GACo@kcn*FgW%1DKE#;>R<7<84yHE-$y*s0=7RNeZEX9a{8iIsiPtPX{$>O~{obc@2M} z*04UV>(=~L|6{4^OPg<6h1V$={7}X3km+XKrj4*ohevz#9NwClId_zC<=3sE^Xpn- zm_)R4zV;)#uJ8M+>k?<3(JYP|F5#vJwWha|MuiJ;;S^v8PasF!_dM6K-JhLY!o@lN z$=m1f#+Wyq)gW#22ocWp zlXw^Ml;B#y5z?LpPOjwGKd52O>%K~MWV_m&bCWgtFJ8pP+`#(V!f)7l7fCEFj17(U z;QrcAtwUGJnMl6ySb4mXDoWp^%{|o^FSZ+`v;AoYXW!`Y`!_RB+NO(&9WOA$8T|LtW2)lggVutFx>r3#k})yy*G7EjIfkj^ zM#|+9aob%u(Dr%Q<9f+~Kpgp-#)m zvyLNoZ1?ADZ6B8OoTB%5)D^9D>jv9QMTYb_70z@X23JGk)@V>7w;P%HQEGs$R%#ue zUYYJ`%i)yP(@7nqrj^f)-0Ar>Ka&c)a4=CaS*nUmOUu_KyAJLBHP;XCX835B>2n(* zxA19pq$GXWNgf8TxG)JadzCrS@Dtn5)hWRNr$K+vXZYU|Pm8!M%Emw{~@dQ3NB0_aJ z+8&2UOf``c188BtVt+Qh{{{`Gpu6Ub!J`os;~To~RmUi^&TcY+r0Bd~k86-<<{URZ9Y|Lp)XLcw5uId@ z;A5gM60I14-A}!2o{Xr2A z_w`eKdl@_u#Q-cT&nar;S6GQgqUO7#p+@h1KQ4?2Z48c6IqeR08&%;@Wi@9 z|5!BnUAx%!J2r?}YLq1^3ozNLR0BU7h1#t5i3dq_qkgbSI(Dt40Q*PtxQkw?AJah_ zzgw!U<+8EEQu1BqVwykR38riI%dx;I?M8nzB6YAFYBy6Aj+FJHM5H!Gf6a=Up)uj} zr`j=pv?62Hml)XBu4-BdpR1x}5Q2WSsQK)>r2!iwhUB(9gR~6K?$(;6H0P$xONm;d zoDa4h{7rC(AsW57g}qA)_{(!<^VDj7&{o%ekn<25YX6oDLAaW}{L5m0`Wm%kfORaC zFllqcAh5Lj5*CMfT>pfpIvPXnve6=t5&!ctlTTGP$*JYv0u0ww11A(ypgx(L0@`3H z4MT^eR$<7F79UG-Py;jHl?U-t=`3&_h!fZ%X{9M^dytb1kB~iQ;TLIqe9DYqG6(L9 z?hl1oajDDbRv$~)N&Bp>V6ek0rQ$(iqUe!=jQnA*fLKrWnYxFmX8(;peV1lMJ znJz`J`PDz^^3cpZ zVqRMw6>dVl+%lZin+IBPFD=v^o&Basa$SaqfqdJldhdP3*Syp{b{QPHo+0NN;>DV7 zdyJE+mhG}|%m^$ptB5Bp|Inwm>p{7_T;?FeK?E>V-%-+ZV^}erRtz%A^}!&VH&b z|CaHC6gK(hjCK5HbU5r+%q4C3#=^z0Ac9(T#>LYY01WY0r}-zPMB<9X!-gfU1B;U6 z63f(jVKX!QuzQK1tB@|>trWMrlTDOm7*sAUMaV>uloi#7y29=1n$#<9B1pr3Z)N-5 z@;BVxe-Gkk?=1y!VyYOcszSZI$}(Y0%KMV(k+^^c)T^rWDAN1MXz|moL%M)b&%Rl+ zo$-`ZRPvr6QL&zS-v$EW?qv* z!e-_9Y1dwT#0FCBFE12heBZdKs$^4ui6P~BdUg9M0T`Zz8S^M+WAamm(HD784oZ6Y{*}_<%$&MmIm`*e-Li$0)IL z6DMx?(^B1lMO`B~8Rc&;vTc<2gHq53s4DKL?OB!z{pMuhO%>bk`Prk_zML8jM#-x? z^%>c&UADyH{zo~IJSBY~Nr=j9orqVQ{H=$Kz7(8G&Te*J5J^t{RMw_zS+Gw{)F1K zRK4aUuHSZVKkI(EFp-wJ4eu+CETQcf`z_1o<0Q0>pyo4-SY*Dnt-0h=1*iQYo-atv z3Zr21sqfaJjL(R*bRFXN(iA>B3skls=~@*2^)wFHeLg8FHHmJP-?bSH56|<}vMR-u z39QQcX(N%}Yj0}l?f~PgZBB#1U^~H58yJ?)iA#D3o~-|hgR6`LO3*Bza1wmZc$Qn$ zlWZnJDX)w8C(|dw;d>I}ePcEYE8WeuO620{8?QnpjR<0n=N}{2wJYeFek8+S6-^(u z5@aIy^1QT&M$e}Rggt~dJ3bIeW>ovvaV$kTME0=DwqPn)lEmWn%~MNkReblk-$$jr>8n~GikXg}kBJWHt1HBn? z^p|km7|cnm`2JgG>UQtWTpiel38=Wy<~OTIMC*7-P6b|@eqp+H)yKJdtlyf!^#=cG zFKlSCqHz`D=4Q8Ydy@pFaO&@jvJSTn<8wHe|HkdMr3%+gUq|4KeHpO$@v~U?6ByZx zD`iE^H6z`yH6(RoW95bg_h;os&Duvoj`OlNOHXyw#<~u#uh|X0Mq3V@(3imc9~!oC z$J_EZ*^sW`O2hVjEUQ5KaxmyDHoEo`bZ3`8LpZ_P3ITMQRQUQ~CBZQ6((%EQJY2!!7(U$1Vmg=!_m zMYo=RHY=PSs>^spcb@jvcW7>J;AD>kr)Q~P*>jy}=@{U=#B@Db*NxYwkylboD3O+% zlYc@I(son$2YS-0Uc0%Ypkanet@Vx{qGDwa;))Xb*b`geb-IBkY9VyJPJyfkMI3Oeb(+a&k25;fx`T)8YwzrJi^%bLsXC$s*ob&+13fw(E`b?F`r9 zoWqTY(bx_N?%NpL`?cXUp*Q`6&U^bh{#nBmf*;vi_eGoogn*Vlx61{OTdAU0(2B^! zT~<^i!$^&!?SEJb!pVBFiMp8?wGvD~E8FmV>;7!}V!>_P4;TNC^?38K-EYBT$xmEX z$mdegd4A-f3Mxr&0JJDIa(E_u3TVBbSNoKZseD;JC$@C+yJ4$tTp82zp$u7e_<%!T zFG#ZK*OzOuA7;+-KtB8d>5D%nWvP9k*T9-ps9|n33sf_IOmrP;Q;&8$5R@mQ9M;z} z+|4N4y6B;~7u(WMts3%_*Yd5-z0MvMtO*nU=ZBKisurN!x%EAFtr_G_M%-!9i4U>$ z(UXlP-=0HRF^Us~r*4hPL>@E^c;u_aAB|A?{UM-L5tefMttYZ#PDsn^l_J&kfetI5 znbixZ8?2R26G3tVo*?|l4U!7ZDEcsYKw^^5a(h7}NGcvb2xCE(2DYCaU-nxlNCxoj zvfiw71jv2&K0iTETr=+i6zV-u9r0RAB zI5UGnpi6IAwhPKp!j>DgxDoAgtVKf%8JjQ3?O>pr7TRrSqrcfTnL~+C%bxdd#*KGI z{WD|Lxp*I6hr8&*k!0eYO6A`uA|h?ZMBChzSM?g4fB_~ZoiYg!{tmP_cLgbzeXKOz zCxP@(;J5u!b%!njr7F(nW8?!BAWj186={LQ9FO(Jp3BK%aQiG-1>LP!=MD9}24PFG-DV*QHSi8*;HuE;bexhkf2N z5m#~aNt55@Z6amO<>GYZ=4;KwHez$`5X5kRgPcT}Lt^~Jl#D62W-odEZF>*)8 z{CzF3cRdTwJ}elZH{>eI&7~1=AGAVcW8luBxQ@=8eIP6sY+)C9a_-5}Nd%dD`*!<7 zkF?n-haWabRpuQ);TI|4ySN#y4pBp2YU>8*z-F`K@m2gMSef$L5&_wfM7kX~Af zb@6p#2WO|PjZIFuLBkWnQ`LQHeQzfw;pTh266@$JsT?O1G>){pEy2xE9}@?hBLp*q zlX=$>^nlD855El;p#OXW>E!Gp&-^lYV8$wo?V)WmbI{aW>fgNpK3lKWe5u_h6}RwP z)Uu0aMmrZ4USd4;w=|g5xAt0b@!m+c+DbohT-`{Gkqnd-#RW7IFzyaimxcCllJ=%?buG{i~%oa6-fi#yCIppk~6zHrBsP~0? zZH{Jq_t{=4HwX=o4L7HOPCzJE6gA_>`NhL=(@`Jd1yfi)==>ru$ja`Qb_}2jXMv{F zr=owJ#EEc@zVclZyWU)sZ#w^Nu>Ej*NV1{l625oK;P%BahO7eUd(1;irBQX%J_uI~6Gz*oR4`ROY!!J%NLUiBW%q)8C*%DK^>JdplG+ z9rt>BtbiM6?cBMH8JQ7IA!s6Gd}Hw?VjfZx(%ei$ESo{718k|}avKV|?`4ODJsFtQ zi~gkfYCIYBt#!A%V?~z~Gn6!F^pN%wF50bMkyP4i`)Lnu$Xc^eR(#nRVcKl~Dzc{I z6xIN1@#`wFjTXpToXVUp4WdeO14xNkdW)p&rtI)3ezTCB+FX!cXju9 z&AcYXj7u^~0r!mZzs)-wt-2FATmHDtU8JIt#+#6cg6DU9{^Vw$O*A{)p)u{G>8tDJ zh&xfzFBZ6-QX71cPXFs0s(lWA`BzHKvUe~KDTi-&=KVIS$dc`q9H*Zqa7a=<{~3<&K2(*@_RVP7uJC*`A+8HEUT5sPY6m_f zD?s_|FaT8`wN@_{tNR%<#^>sB+dnLM!QP~Tkc2cd;PCUfu>_j_!m*A0TOvWD0UTC> zW@BR}_tU_t?MZ`Yuf~Rqn$X@;D^`EC%aM_e23zWgJK4=ja=f-w9~oC6Sq&brvq%|Q zLtI6{`7+o_<#+qRJ5$6h;($^pq_$6%9=h~3N?SKNO3C! zlkU0s_i}MywsYE_na+9@eLA??#7Kje!tpygbidlq%5wN#@h?0?WkrZCU5=%5-v`y& zKr1P8W8ogNkzbL~tfV*&XDACN4-T}8VCAYK)Ep2yrX`xeI&GrjRB?+_JiA^vB1e|^{X*Lcy9I`1xZ*0|I^P(JTTj)0j(azP+@hrPhSd1&U8iBO^f>y_Jvy|MC$3dV5a zX3*2ucZp;S|M-!ak$>iLwVs((`a*lZpaHj4DbC(+aObGV-(d<_;mQl^nRHz3_S~^K z18xN0n=!hqZ9Q*!B)>bp^jf~6C?3X zgQuKHkM^!*@AcI0lKCF7l@!xz+HYs=D+)6|k!aF;E_=&$lnH{?qMv$v5Pfzpv3C=A zbZu#=>+aq#;VZ0l&SuWdrJl$rtaV5+H!&+|Fz|H@v)MSi0jK4S1zmt8Or=g8POY7&^zGH*T9VvfJX6q>o<7U`{*`^Qt_Ehi~-@!h2=uNuK z@o@K9RxsQ-Kdvb$gdXa~64&m0OX(Y55-ZqyvcBJPrkNVft*xz%kyVkFMz)ge zpmmjk#DlsO+)4FIV=gl{?_8!_+4;=18Bx-3UOE$JyhnQ5*K#d8t%t;jihaK|x z4-a5Y9q12B-yA4)C`~R7YnX*9-m$%_t9T7NLY;MT3!Y?(^{0#lC16((6!e#kj`Eo- zz{ZTYUknfsFj*Tzr;Wa)KlmLjnSasW%TX^|GLs<xyW9z~h}8gXNP~2(tQOX3k&GB~2t* z$EeVu(tiYsfm91pNIaynZT|O?{`j>Wm{{u3M>{RbD+_}vvA*J!`(8sy%gDf-eCl*E z(VwI|MxjInIX&`W#=oDccwt2)_)Xq+RiND>@igd1X$YQ|_C9X{PC!|M(Pc88nE;WW zoRZ`G&CKj?>4w(oEPXa&CB0~@!zAjizUe#G{%vzM>BenrrSiJGy7!B7YI3)+J4$Z* z?);<35wlba$(cKYH@%`8Im32rTPcy!y6 zw}D~ofS9(=6|;p$>Tb=pTF)k6Yzx!pcV(x4A{ol>+A2s_RENl!V!DCDQf~N(&w)0H zTVo!-2_tS*kFQ}k6!Lm{`y!_8nM}O=AI-Z`2AC$e`dU%!GP|2o2XNUvZk&nE>C-?! zn>qCZL)1a;d$JxKlCOlcCwe^6Z!xq{11>4c_!)c7s_oov{pe@5#sztN!O~0leL^#LTxU@F8ZS5QijAWi|-@}sXY9$?W zOEsKx(c`0}-SaSI>Sgdp{kDq}Q?uZ{jD8Q_&R_TRH99UmZ`z{CBIRHIq#ppvR$cqS z@#B8-b{p2=v2|P?C-{{t*%~pwI6Lqwm5M)u*G|jX#7{-ONUYG*e6i>%zG`M)Wj%?f z_q?{#Yh_2?~0-aiV*AHGcw&9Bc5O%Q$2 zzEsRb2QMo9`9WE;#ZERIX=m9zF}(Sb4}k+B)Vl91VEC4DaYh;DYX=NFNE|Gn(|a8D zCVXw}vERPa;>#>~fR?Vph##3hpA3#Ff1?!%S#lPAmuwuXFz49BnDp%c*;d~7$+L9? zVTM^#Mtr5f=t6^DQCi)0gEn0L|Vk5ySuxk89Ih8K}4jKlU))k zr6B|bmJY9Y21UyMEFE4;UhB%V%&}R*h0=F#xiWiC#`4^74G?UbKJ0-}gGPq)C5<(a zQ@fRUW2ZU}y@B>s@5k@U$L+j_uXY6l<3rxrmT_-JeVy3Ki;877_b_)oIyBt6J_;0K zw9U{^DWwuj=#h6b;jUmeR2ahq#C~;{W2D%A&+-_zKdb#F2HbnKvgk2RI6Ii2omD>Q zj;Uk*4TlH_5^%(Q&=^=9SQWHZ#68(5<+~_%DP$|d+gxUR4^c-g>ul-KAX+;TPu>QX~YoZFqoXcvP@ zmneQ_HQwKrijZNgcjfs-&%oOZsh! zXyE0S;5Q5mfD#pd0GDgxE8gz-_3b!CyP@2Dy;3PqRWKhJW9s`#hV;vIROI7R1p(t( zY4oY?WS>7YGPr>iur`hD4~pyhvNxA1lp%vdLy-+P*1mT)m7d*?K0@@}5I4en4dJiV zDxW1x!A7A)$DU~J74pB;pDkZ%zp3iQRDt;%2)q`gpD{og;mH4))xL-FtQ<)75IBzC zb>o`V%f;;#H|y%zhN>(}HfD{hl`Zn)IFq~IqekYy9&TsxO_=7^xp)8Q5*z2(S?*@Se3M=5ZR2EM~3Er5Yv4W?5Hs3}s1(y87>%zOnqPls}J2tQLuvkXK zQmNhv?9^4cCOeb;=p;(-tQII|e-0V(91|KpC{$b*=a!7NnjE-!$D+juW@-S=3=TT> zxV+*EEw*pmfLf#$k|}XI*fcH zz9ZYEsUn^g+{U~R9Bj2gBN&#Lgj7sm)+5xah7Zs3Vdjd*)L5H@XFj*>AC?zVO1Y>RbeX_#W%< z>ZX~#9#{U^m;eoqOTzkK#ztpkFmsHOugm(;KqC}|!|xdMIvrg2TFbpAcK8+4r4o2x z)00O+*~N7cQ)#BTJU`3<3aZ~3)8Yjw192RSkO&nm@!sVbHq`#%5-%uYquRcs6xTp9 z`XMUUh03+OK9!g3>erX?EZ)bsU*?$0QnKJ_m;2p;+XsE~H}YMS%*~rtHud8In}C1O zw5j_z>S?CtthPdSV!+EM^v4fkxv2HRjg;6W9$jU-EbwxK~+p>!gGvxG_z_2C#Vq!PN&U#rf7zWUM>0ThnN&Xo& z8YW~$Sn%CVd%4O78b`?pXn{Re)b|%6&EHgKBup(goiHjrkY6?r#O`!msHWJu&Cb%P zhwM&NkDkNrPJ0I6fT9=(H7IhnHd$6>81WZUGtvv6VRu-OKIJIMIT|f1_+u=>-L)Z{ zof5>EcN9H9E%mR?(#+{U%$a1g3m=rZLygP-!n8_+RK6)_6zC8(ty=)WRL}Ql36? z??#@MzEtU(o`~V@0<}m1B$&=>^$`J|%`k8A7ES&J0--6l%Ex5S1iy=(KS<($@vB8% zODf#Qc0XzGoBVNoN($E<9fS(>jqs7=J!hN4BwGsf?)(heNEPMoYGd5_U8&`RE5g(y za;$6ni~&rc4$`V8?z5xoZhk>?FZr(e?Klg&Y<$AKd>B(G*6dMLu*S&#a?pL<=47Zq zd6EZ=*r+&`kT2q4RgSj;W@X8mFRe~miJ@Oqt}Lke-rD|hx98dykIwrUR9ba(LKeSv zQgzT#eApJf$U(<(QY$4uQ zLjvdaTyD^$Eu%z6?bp^6X3EXWTO1*;umFeTf5aJq%{L<>%%_*X6>3IP`n+{>Hlh}JNGw|*^cGM-gIhjPB_?I7R}G+3C8qRUNKAa@)?VWpn=JmN z9!n!zf;Yj^qsd$*=Kc0B3h6Rp%M~eFG|ntB&jFz0QK2E(TK%t3iNP1N8=xV>$PqAR zYNw5#o^SG8?v!F-sez~K13sij-pTR-hTSO#2&A^neFGvN1K~-G&|O0I!~7U(OWV<0 zo<^F%+v7=xaEhkCp^B(!wXyNk9=Vi-=F&~JD)qSF+XRt12Uw7QZdEz>MP+G1g4s5`4t$=$`IvI|ZXQR2Ul>I-L7609bzp}4#<6-?FAZXTZ% zue|eX^g{OBHq&BwX3=T#DiJX!xxPBeCxS%Z3#X0&r0X>Hg!=$1&p(AC?#~^3?Pp%d z=Pe!zNw>`MXp|sk9~B3>wUo*{Rukb`hg%rOqgTM**?BnH~E)L2foP z6k0i7Z%51LY`oyctto+nkBa=xOUCGbrdb6%gG1Ax)cCaH(I{Q|a#S6gI08A%x3r_` z{fD~)^)BnOMUF((&VZ#i*}L8IiJ?2bCbX;+UGIdjy>M3)^XwOXSS5ED;_82PeVC#R zAmKr$y07(t%dK$PA)(qH)57s<;dVR~%=7-NPqDIA>L^*JGdK69we2fhH%VPqr}QpS zfBoXyBLc6Rxyshk^0BwULKXMqN`x4ccxm!M&CuH4KI=JIv!yS=OcCSsIjK^gJ$7G# zrZoJJ8iT?u5%LP3w!N}Qk_u-}bgJ)TuOtcmrp5sE7p^pjFM@^0k@t6E~uCwAmFx*I>i(p`n=gIhPW2h`7)xY&@J>9b-9c=P=)68<0< ze#!Udnj|77q)mr#x=3*D%Ol#JJjt^Fw3;HmJJmM0EbUf(@17eqqHDkR>&s`oRn?t@ z7p5WXvNe+@rXeF76}4yjj1{w5D%1~J8D)25JLj6cxhT8sOuZM(4Pm_t-?E4oq1ZZ) zsHYf|YxxD}9z4yQ=(Q+l`~k1fmk1=|$g`3XSe^Fksbo-KmY;GFPW{@3S(?J zuSW4wu?j1iz8g}3OAD)$OLQi$zx2pi(w@)?h8`Xs3aWoeicB_PK9-6g*08s~8da4s zd7#ttkuZ7Gsc+AKH`0cuf|I4KgG*N?&E7ikxmJo)bIIYFhq78^T_hPFkr0D!{%n(I z1TdpokZ<&pPB=Wz<}tG{+7@l)viLH$7K`rh1#nxGb&L&nO?&zGsom1tDiYoKpUz%w z&43-G!bSH|J%c_%NRZAdJ+xi(3J9jpMYq@-dd+t#&F?1u)$F?j#_C z=K>0BDNZ~0=8H1H&fCDg=%y#yI++%#d1GE=)>P zZ_p_#8S5s|Qk0RYO{Y``_Hf|L<$+Ux0c7F?n7FoAC|*&vsfdn~PHY{(eBUKUnU4Dh!^z>~=}77I6;Lh_i@cXmU3 z1W4p-_XzW~;JbDD#)s{Hs%{xo-G(AfMsS{#y{dv|xMp1abChh_AZXopZNGi-KY2?E zDs3-unD9>>jLHW!cvd*W&fk=R^C15E(b^hO4-D756Rxx*&Q4Da1ZtsN3ZtQ;v%iIu z21cB62NKFYQCyrhl$9!xqa~hL6x1fdYg{@L)HLBQCRA!0lZJmtFiqDn>(#p3>5RM< zc=xO-(YvS%cq8T4alTt*vAVwkJUrs|?)xc+l-MLx_kXG!dPmiFpg;I2xi@-0x3Xu9 zJ?b&B98g!}&XhS8nT)03o$`Q)NLl5VRWs6L$nIxUgdpbY_kv^_#WI%sBIm$+Ub0qZ z`K?kG&llL~e&olD0$EtMWaiR~m$zqOQnhC#XBiOM-FkaS3$?qVMEwjc~(n>Zi{gD>c4L>a;_G|LDe8hUzOdfsj75?5S5v9-0fq!jV1O~yd91xZ&G zeUZkhhQ1(^hW$~EMJ+Xr#XkC{t!G&m_KyjkfwbAKiXQU4VtU`4L&Y(``umf!+3Eqm z>9YhOQ&}_KvbLWLw%ijyHW{ja8O<-eSL2|p_CPPE1Y5M6EDT|npc^Q^Hik68YYqfu z?bTvw%qN#@RCuMXo_hg!A@S0qo!^6I$2BcK+Y;OO|I%(cL^PL~m^2J)KUR&;oQXKz z$x98-EUAS@^3p*I?;OhtWFubA9QUi{3vmvgHDu~t%w!2`YcPwO1t!VpnIz2=2?~a# zCr`chlAf`(nkZ02Et&v2QD{ z`FLY<>g#{;BFC3AGXA&OL;1#oe*>C%rrAb)F+ZfFm*M1`@G>a%lBKu1HTAKkxweIs?*39 z&vmz=tVLuGe4j;(ZyGbEmJTGQ<-yiAkDh+0{s!~LDb%HlOp8oLTBrv+kt<^aNMuh4 zMG`!a1hg(LEXB{~7wW>i8U|IBIiCk{1_rB~DcQ z%64r|+&9k9qt1NU6RE@d;C;TOfYqv9fOVSouFxYDr62QnOrbZf>amUCj?hGLoaw!8 zt5Law0cONe4>=2ZQmumX>ERKF!?b4Ed%~A_K(%w^%qf3?-7HM*T)IDA{_*I`P<#HS zoScE|-xI2?p`3s%9|JkOalsfWUS4~c#e6oVqv`0N-|k=^-a8mmYP&LF1+Xo6)FItq6-C`;+Q1VPmI?*N9*+z1FF^l|k`+CPA2mtQ?)nAE)_X~=@!x|l6LFN9T;vNq`=kAcWsT_P0u${ z3U2>f3s5y#EG_ss-!_JJ2zW!xGE9$XN*W{wnq+FGs)`r6TEqqDgY2jWiejj7M#oc! zOHz~WE~nd$k0)E5%$i{t9i4>#tZ9Z|C!vq+tH8S;RFfym$xQ3KaIW-s7@BmR8cU3qe=rmMI|j|2Jl5?X&n3~-2Y$JcGLDVA2$CfOGJ z54)scPZZ6L=eFd%`$xg?E7Opr1My@mV_LK4c*y2~p#Nq;q%q@l7Hvu9`Ol&hsVyS8`8LLZwq&lpDV5$95oj zAQ-Kp-4{usCU|?#N+Z7TyThk&32P}f%$rhR{<3Y$*PTe8^%b8L5QceNoBTFVSr7Bx znR!gQak!C=KmPT3B>7i9Dog(fg^csxC_}AV+~g}FwDFB_*+{aDL?=SXId6(OR#qiHZ&i&qPt3#l7Hp-d0m5+(B(=U*E2y|h} zn=`Sy$4zpGJlT#F!rc&T3}tc{LdLKz!{4k;8z4Py9?3`R0`1)6| zs)tk_f3oW2lCx&DoGjS_JqogPovRA+h?bzusF2a%Nt09!r$IiK(E|EAAN|IKE??;` zwYAU(0TydOjM)FHp^mXQnG989iGSjEVLj-71F<-wRC~>kT8AawJD``2+LjaoRhSq3@4N6W69Yb&yf(u1E3Z+6TLr%;wRCg>16XxgpIi ze%U2;GW^wLn?SXt+#(Kw)CKTe^4?m2N580@=}ZDF>6or0LEEIRrr4+S8@3wsDx2`R zUa~oZIdLHOgT0{#H@a0e1Q5rgMZ%}5MZK~j?Mb5ohL^3oQx!cfMUahD(67h!><^*< z{e-i_A#GuQua43DSR8n{*q?~5^7|;=&)q$`QlvpIBUy&#^!bxB+D`xDQo9gm$to_N|#Iay2J8UIJx!O zn6A~QR9#CT<{sE_eM9rRVhb`l_5!%2U2y*t^fOr+j@Y+1-(I6q(q%0V1*YZk9&J^U z3+e=Dyk?FXfbJ%@I||Enz1xrrp_kYGoaF9qXn(k-2<$NNuT{(QhLs<2TiAVF;0Oj; zIs7LVIlgVoT$RKOeK-BZc|~gVE3|T;AVd6swYhrcaZzSKi6bOCypTrEQoBh#ssFj> zt*Ff;KW&17K{nOlqOPUePp5lcPw4?=A(I4!`Is(3Hx(d#tJq!a%pnHfc#DxvjD0hH zs*|3Q#Oft8<6P&*;kdugQ5$eFSL!a?(l4to?HbUK?6-m3ZK2^q6) z0@dPSgC*F~W@3DX|Lfe`aX?%bnsRjI`lW)x&M#Am3~%Y;tu*C9xYypIN-y#PQNEjK z@ntmMLxsjNLENaUpL=3LU8zFFZ@kn~<+ZhvcEZd?vaX;u(h8Q#|A+Hq^lFprJ0NWh z>hU|HZ;tgM^v+rZ9`pMtu-#bPnf7>@*+th(u5`AzYRWSzy>Cp)b*ej)Zc6&~9lKV& z><{(~Y%`US$SJd5<9m?J#;#wHNDJFffpUJwZ`A_qyltZfO1~#>j0_d0m}9ft z9&nZC++Ad!DsTLWb9eYV@$5L>L|{d(d^u7Yqqtd5jf?xeu`>6@ z^sx>;V~5a7?_j>Suh2j|6wXtykcUU94|^R^*-U(U&r3iMa@`evwcYiA?FL!RArN6y zXM|wD2?)}fR6tA>rOM3g;<^RM-y0Y}CZ@sp{{C=v8UXeo>c9P2@#9IFuxdNfGNYfl zP3)^?v2;ZsTiBG?d@&Pl}P4Zs6b<7ACS6{b_+qY zJT@Yk9@j!E=K08I(?)mr0_q0-mh(J~vWGqWAKnPCI{jt);D}sjr+{N(h*? zLnGOz?_Eaq+XuNAXBXEx_4{4VlXK<-fCPuMTLvMpCs%ogw^O%J&?DKn}XiBJB%XdMIl^7Aq3QKGc=)GOJ_` zv`GXL;>Yk~^IYA^D+@G=63>H&Pr4+C__+waHs43EZ!GWX59*SWlRvf9mOG&P=&Jmo zb^1Z=8^eEwSLW2G6&&=j>Vbp(L9tw3fKDEBP$1o--OQ)1nOtXy6Ha5nFK@k$5N@6a z_M$vVbGdUvKt$jM5v4{~w~|YgC{s>K>z??eD5FV&fj0 z2stmiM-8r~_ju9Y!nLT4eU=qG*W^7%AiGTwK&e9H#G`Z$9UbXuGqvMC9@1Jxq#UNo z+OEbADvT98J8|1|O(D<68RJMHn8Bh4n9Y4#HeJ$_J+=3Ko{iFf#JE^WW0E=M0m0}x z+m_7*qQyFbhW)RoQ_Q@~D7nGQ3athXkIm7-=3O}3-~IpPSR6EvoBDhNlyEqM+5m~e zZLZ*p2i7*1_t+`Kc(S^m!j`T#_}<%&(!3~GDJ;3=|4yW|+W;0EfYkVYan1^Jou%xP zopKu!Is3gc3+t&8mKE+DO5q}JuQGsreyy7ECTPR|;452YPE|Xgko)84rmH#d@Rpz< z&^fE`L&|K#=obIza;3lyq%jTHc7MpSQ!z)!ix`@tk(xkdQ`M6YJNQcisbt z{(3!|N1J2CrCP<8ae+J4eOr%jC12l;nkpA(dZnGGk~h!=9&5mFPUj=NZ&vC$E`&|x zMq9n4LZnkc5y4h4VuSOjv$p3l+J;V<(QNTW)mY1iOK}yu>LdS$-6=;vNJfL>zy3Qk zI8de)Zu9#;4CdFP31Tq*<<&;{$4?cm{s^D-9$h|`Lw{qMc+O`)lK$ad|`NR7RPd*F;ZW6wzf)1`EHxaA7Y3h$Gb))f#@6JB5N~W!j>2vqr zYg{Ex<8#U4m$@D8J2)_2v5y~YekPpz{&Gyp;?xF3bJp2zopM zS>IMTToC>rLd9dtUpH+Bz0}*e5p++^-o+gyvS@u`;0A^h`G08?cJHtLYA>Lianrlp zE&AnUa^Phv+Wt~VMxf3aPyWDMI13jqxEYG>r=qqCG`~7=_kxU^^ z!Z28!IA2rV_z2U5rF_7;l78Y4-8U02qS`U~a|SOoCZdDjrzQRhK&k$fb3eK|+KKlg z>6e}l)t_`fni{)CP zcXU2~v72{lhBVL8j>pm{WG+O{J4s}BVb7+YPjd&ryLutSJIu59?lUmG$#!i&B(L9X z@XwmpK``1r5Pv4GOd|vr<0r&>C0H8HJX*U~5x@co0<##L9P-ZB`v=Ru)kGx3xoyg+ zQ97l3HWWMlSll!a*sw2rj8CFFJ8MgC35X~A3@KK643dSs`PO)01DkiDCr}N=jtmOA z+-@^pt85-t6{+J=C&XiHip?&#t1`a$Jd!2y`!bgkf->A}-p1A;fp+5mt*qRhS}^fR z5lQiYqbu96tOnxS(hmL>-2r{1`p7s?4v%~fdYCa0VlBOuO&i%e3*O$dVI;S|IpJF_ zT6fK>u`YAWqSZ66m47%kESyez&00^-ej-dTR(S*Ji0_=A92x$*{vGq4|k! zKY1jy9#%XjM}DJs)wvWnKYH^Amv?i^x9G<1>Q}L-W$;}q^^ThA-M7r^k75easZANu zE@}-ByM15t$*wRr#GxF-d$F!+lGw}IjHiFSB|>p>>aucSKe)2y?jXG9G=lk7L-yUx zUj5#J`R3ia3@`di8=+#*>?+# z{rqKFmABE*;3n0|pip)06cq{&FWbSL9GAh7!0IUj7E33ZQCKU27$D`$I~`?xj3{nY zWBh~5Hj~6klTqS;G`r~`JWbbYm{&?Sd}$;uT9e~~SE}f8^95$0PXa}$k{XW~Odfy@ z7cHEYIrTd$wKX~;LmzOYyDo>@ES<|P8Q>a;1FGDEjyLD$eM@yN!9urFah^@#&1k#K z6u@XvI5@CvbbTTc4>kF@t1%y*YOfN_l|De#9pDX+q{`nxH& zc-6{fSNf@$TaW&js+2Zd5xps;^zJFfw%YK_|yl!+ZrEqt7mP)?9iQiLfv(c6Dqz}MQl*@ za(KGj?T~%G-Jz`Yl%8#8roEB>q?xys_|(x48Ea7ci@2WmEak)gW{jHXZ?nZhR`R7) zWpH_2Rj}1(9X*|sy}<^f%sqkc?eFdrh%0KV0-eeDKn=wWPJ3Q6BkinPr?r>`J~(j(@_v0ioas zI7um19qH!*@Cp59_D}d6XmfyHX6%ot%Ow{ZM!$4_rCavd@7tRW{v&0W5*MiXaPVWL zb|;qfs$`d?xai$Q8;^mu=LWxZ6J^WZ6ihF1 z7C&3y8?S8jlC3P~zA?k@wH;9o{Izsuisk+>^(5v||3mTj^-?Akm%R}`SX?iT#2MU; z7=HS`{2BK{71X<69CV@DycYkF+r8(y)m2oxqDW#Rm~NhmdYiv5K)VW9d1R5TE>2M*&Gu&4wi&@>xD+l`MoC1kh34lSZ>oa8eOZAD z!RC|?#kHqcH&4orO+o&5@zk2z&-Cehdz((L`gZFp9Oy;~z=vY_6Knc@bJ{{)a~+!| zxoC%^4MzdR`2Tr}R79fBKHYB!HiQjLInSEK^AOpJ)y}6;pjQmQ8*3 z;pJJeZk*?DZkNTs2QNCYUeT!E?+XgJLE|jIo+0cAr2Y2&6gXeSg#~OY2{{eK4@c4< z%tW(w5>1H7v*2|Ndg#z$9@qpzaLIQQ#Op9cBZMwjn;qc`p1nPf8{66ot#eyNd#%Rk z&D2l`k?$iL#Ne__Y0g=agviIY{+C4YRn-QSHos@V6XGlZH(7s zg?AC$++OR9)#)T$X0PoDUY4!DiVoeeL)WfEBqyUplXkrdJz8#(sWB5=9BANvP~#C8WQys} zs5T#Kt21c!?YXLv>*1AFO2h8O=1vP2y9xwpcye?{@lGwbsw9oOMGI&sj*EGi-MSqJ;hH_+N3pD=Y!15wTf3=1)Q~kbeKTKlW8JCL+eoBnTAn07r&9IDC zjk{^Qy=+T`(fL~Ko1ZjR1e|%VeUI4rh`(6-_r8r=%ndPN@K_>no z4WHip{hVX-+rK%UG1g62yUkiSIVXaTh}F+Hq8g7PitDFlNJI+AEQ!|krE%b7v`S%l zQLXms@LpVS4K}W1TJFx2k&B87Cn;SbooLFjxMxfx;ixkiO^)f#(U|w$a<%&){q#)S zev>qA%0-q-?lzJt2w-A(Ea(?zcBk<6%`LIu|FoD^0gNf?0%g z38){c_uQU9F2+w=enCY4KxruqM%|VgPRg3COX=7-ZR_Qllt8ZrpI9_ykETU6XS>ux$ph#A^-8&U#b@hv^Y;p zJ=Hf&zS?VdhZ!NAq^pYgn*$2zrS;17$IX;GPZ*B-fHMksWK_nehRGLg%ehAHc^93< z8m5K9VxM2V&?%+@3CL&QEKbrapO}QAYu~8UL&PVpexn&_T??i?2rC~yG1e>Suy~`$ zi`(ktvkDlNLFI|j!U)r7w))C8JW`ttPUAk<8Bty|( zpRH1@{IRVz%v%+fJ56H8zW41(O2j2Cx|>)3Xv*v7kh70tGwl|;gjx9$GnZ15vr^or zm}7y}cf>|e(NYbNi=LUtB%M#r`@kV3CzHWd+Td$!Ep%T=hhSVxOiU>i+QP-J3ME2K z!;^z=rNTpL>*QNq#Ta=t-JRFlyZwQq5x7NAV0j7tS|c-5KF^xWIRbA)<~axzxs_Xe0)6ns58HUDA(|v%xAtIOvkX zh$ig>nizPhlVwP2LLanU(b_sVDqx%Cv|xDMw$2pBdGN6}2CW)%^@G>Re2Ps(e(Ocu zv%phGlLjmk;;ja&tnAV=;o`P@Nm6_wTDvRf%7&DJ#!@0>`k@Zx&Rrjb%l%p`{NREW zFo-z^IR=U#DGi$n;D&7k(lVuDhJo=7ilb?*PwJ4An*u<43Ti%1*b3JHc^6@_NeEVf zvJ9z?(d}N{yFzD5xz|f##vqg`r5T5tfV@4P0}^_=tq?BFVtDHk7$cLh*IS||>%I3^ABsNUy5V``G;?b|lQ zrcPwv)!cOb{KclNYP5PKNlVF`d!4KO;5y$@bg);QB0JZ#N0!)K$jz!)n{`YK&Vs7W zhn!T@3XRdKpD4g>e5*r*+o0o8JJ;TRS&8P9x3!@PYgj{+dMTTm5OmtzBUQPtiQ<4Z zbnf1ml!6+!4l~T`Gx+m6Ij=j`qH*!jXtdUIJU6xCjHT4?a7|nS@j-p}G)n2fp)j6L zo{+OSC$*iQD$P+1ihh(_0;f{b)4H=}fp&hqIUclDm&e;h5^n2rd1-fdn5EYK`WpEId_Ns1SYz$=4N z>0^wiwJV8mXpPoO-5+t1m9rpY3b?e;w{LX#^rt`>xX`Yw|5b(AJKq!O?=G+~yF$8(bmMxozwmH41N zdX{?#kzyJXRF^H3=ta!(1Y*eX_TD;0*khx#5$|M5`5NtGG%Ygqm24ECQw|po-g=zKv9z( zE5FDU>7f2mlZ9DS9&CU&rldvbu<*%sKX+Gvs>5(lVza3w53i6-t+eQ96cVIx*-p39 z;546{#>CmUO;_$;y-1=ko5%Vo-rYILlWu)?(O5w@!@&zMd-q!<^T0YJUZ*o(nZ4&W zM4|~bG-BwrEK_c_YbAKfUtM&n)j?5abjEfn)9y=wPcd^2b%H`Tlh0k*jd*=Jnlj=A zdsfx!pwI&yQpu&QwsZ%7e}8B=-wZUTy-Y^JI=$d8oqX;sA3!m709%;Q8*Bv? zF$nWx8gDD7Y;oz+#@X%D4VRx0;2RYtc*QD+W&@B~TH6fi7b(CV5cg1=Jw`s6m|bwV zgF82fG_ZKEPEe2-J#H2Zkj&%|ae{)TY*lT`@I^r<%uQ1UpbjF*uD~TgN?;riZ6TO% za9L9w7xMFr3%t8Z#~e@Mx3?)(Pc)51nMr)PY;!P{cSU0=sz*m>r{;~|_Hu!h`TD+P zWkwbCUP`jwg0xDoNtSbYNxgyGN)r=HKBu`v?&Xk)sc1Uex|me0?_@(UF#5IVCIkzC~_T|jAIMOc{m<7(| zvv<`O)aza7ty9cI{iRjc{dTJHcZ$;MXLe>&IRc>1_4ac)1r?S)qdwoTit7~5jf>@w#MJ@HX5Qa!O{4t3YZJTCo@cO?!mV(B5doj*J3fnt8$-n#lvUi<_!wf(O!!v-Oq7V}0zJ91+! zmd$eg4-JCf!h1)9@7DU$Eto|53(T}pI918tT+Pm7V_5-=n9}R+hB4n?P9pkrm2(_G-2N+~8kF-RTqbV&_dLo!S!%%~sV+(8^Js7;!8 zTxRN07jXwe`n`APCzw$cc8m@@4Gaq#RD=>xVfVb>;rx#Es#69U)NfSpNQv+^^!Oom zm|bx?f8vji9A-LqKNJNmJQMRiw4xSag%zm?O;FKOJ=BX#hkqzF?hY)5aHxq2OjW|c zMIb(sB@h#_P*`i)Sx2G@F{g(uC!aenMK!GMPLyfYe z*Er0hdo{3@M5NrF!J`mQUrL~aEy_lU=&Vf7?@{kG4w%VvWI%Tm%02CqT~ca{ypg|I zjpza;zKggR;-8>ub|`l&Y4#BVI_a^C3=Hx77Itmc6pS zqEEVlRvt58MfO#f_zz6AO5Od#ue3d?FROG9iw77?)d{qSiyjbrLJnpE(PaO*Un;5X4_|1CSG|9;B3-Gd+|fsVwyS z^7Y@M>5ASm8HmUvgd`>Bo&IO3I`>BnSXw0Oh8fEL=J_jdv@$ zSxP*cOeYcnkEo#K)|b`<ycDf-Kk@q+N-;vP117;+NtF}9Y{!X9Guyz zl>p3Slb0#9Khx_Xsh%KL@;%d_de%mf zTHNR~PqD8=SrHEEshmcwYRGpL3?BT>v-ema!8%IT@l(!}vDO`+M}Xg;JyZ6=D4~&4 zW>rep<&SOLUE7Eu$txjJji|mWVwc*xcitJayltE{uMnu*%14aLML#$?o{gq~V!Spp zwRTF2@ks8e%nh9b>4hS=QQ(ecMHpTx+8AjqvrxebQ5F|nq~go@ic{w$<5ctGy}c%i zZTn^ma;KqQSXJ`%+i`aT>%-3u>Xhu=j@U&L+b0#`1yA7F+qe1ndnMKOaI%Fk2-lQ| zZ==gB{25-Ah!J1WD@yAJ!k&-P))h^*WhL3v;s>n@vL9f}hqv8xUtnnV_xoq(cA7@6 zFy8a?6+#lLTfI}$Gxi?6v-WZ^b#A#Jk%^w%xep>a#0{dzCR698d&=v<=nBEB*|9Xo z^}*NkO&BYNBH@2}EIa$E?Jj;}>d>l#^_)WuNh zh*+8Dj_C!C5*IsEYx>%f9KPGxP zt}Apj+{$aOxzT0Sx$0n^Pp2*?=`f|f3ynlPn+MuKN#VU5Y=)pqw7*>pncYgvPDKc; zd?CK-mowCoSXW?vlvT|h7z5r`7dI$18Cda)D_Ixco6R*O^`zloy&63AGJ^TGS1du^ zp7@tGz|&ZToPikbEvyr90wgx1oWPyqfEg)=X|v1eP;A{m&z$NdQ0Zqhib-g;c@ll} z$K1WJ9zivX_vtS`p%0fo5VjbEo77lAN##fI$V35!BSE4PuriGgx#_2wNXK7*>i+g7 z6Z^w1a$1q@{fl6h#ZV=cM|EBk(Re~`y%a)V&C?vIP2GW;B1=wy#bQtPUIbw$ZdZwk z;gg+*jq%Ps;CerULRwbT)$yZM5z}XLl(su6B0sVqy6G{r>8%@TpcNukIYS5C%0o>I zxDt@2w{xnf2RZc4p^!24UQYR~w|={4nw6F$C&7?RttL+68Sv4jZB@DY-`pH26Fyl< zZ#F%xm`wF1*^%VuixIo+Xzy*&fPUUunwr?k6+|8%LT6rqhYGOXmOG91O?oWT{yOV} z&&qL_imFvnc|}#mFl*2rT3P3`La%98(2nCOiu~Jf`nz6L{_;HsNvTt^14Vl8jZ3;$ zCf5H}y{v#hb|HA_*qjFuvQa|YdNBGCf&aI6f%bIwBj>!gyvpE39K8lc2~}1)8fyn_ zh>U4!#xJ!|A>l?PcS{Zb?kP9qM|Rl%bwL>3*AQ3=fGwH^RF7x*7LC_CS2UP3gE5)j z?kNhcW-uGb%(xtV&BYPPT#GNh(`ZIpwh6DuuQ&S?_9pJej-mF)rbvHYqY>Y?fi5m5 z{wB3l6%7rYe*O*>4SaqNbxu9Dt5GN%U6YDkcZ{x1Vbz~K|2p&SW$ov9j#3Xwo@)ltdRiGwzv;N!YFCJC1{&}$=J|7M|zhO%zB5J_Ph`ph`pFhi$^bzYH1 zI2(Pra@jtp`CQU(%m(dCDx3ue(`xfo(COSeHB?ipf;|7(CJ%umA*Z!d4Xb6h{hg9@ z%Jv*$RX!FBCMo6^YhJe}0s%xJf^)fA+bBOmXW^9zy?%FbLv!oU9I@woTdecE|Ihha zpzp>w732oXQWqU++5ow+FC95UPpIM1MPkIhCDX*Tl51({EYmhUolJ%axctd<9$(=Pi z255>V@K)GnP9S<&dvE?bFK5}e8iEZChm_qO)}?^q$twa9;<5TTN%$-Dk&d+yVFJT> zGVTQ%;ARvY4zlm@=#D_a%f}0Ky|4Ge_^p0N6gz)G=?y;`$7Yv%A|j3IR)eu^hyDCU zB7O(^{bLTQoeK4ep{nPXMq;3#=jJF8AwvMvr+M)P%B(w-!#KzNTy9rPf6~wGckwJto3>V?E%uS53jY`@Q}u( z-5xVAtUmnC=p^tDM<~q>u|&TBUBA%px8Lqo!Tt=_Eo?s)0=*5l>rId&dEZ&X@rq$Q z!r-U!32ZP)bmbsXj|#~L*wQ4X7@MC2h)ghB$Yk~tUm*?l*K`kaTRk^3k)YB=Y{zC zA{hl&jOZ}V8xKjY@JS+qlIzfQN_NY@kisDz{Yv3z-Cm_P*Fh?GmH0ERO+~>~(QMSS zwv=u7_`%cuya8OgvxiwKw+^yPpUl<<{_$>HqvIfe#UBh|j%v+W+&f|Gm8bK0Pe#|IWSt zE{*>hmV5s-%m3Xq{=4V?*CqI`OYmQp;NJiLz2)m*5*ee_Xxs0vv4D?)jH+~{q Date: Wed, 17 May 2023 16:23:30 +0200 Subject: [PATCH 10/11] piePattern : lint fix & d3 call style --- src/components/drawing/index.js | 2 +- src/traces/pie/style_one.js | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/components/drawing/index.js b/src/components/drawing/index.js index 23cea5f0073..b75d6e244c6 100644 --- a/src/components/drawing/index.js +++ b/src/components/drawing/index.js @@ -633,7 +633,7 @@ drawing.singlePointStyle = function(d, sel, trace, fns, gd, pt) { var marker = trace.marker; var markerLine = marker.line; - if( pt && pt.i>=0 && d.i === undefined) d.i = pt.i; + if(pt && pt.i >= 0 && d.i === undefined) d.i = pt.i; sel.style('opacity', fns.selectedOpacityFn ? fns.selectedOpacityFn(d) : diff --git a/src/traces/pie/style_one.js b/src/traces/pie/style_one.js index 0b331ae7af2..e98fe95e2d8 100644 --- a/src/traces/pie/style_one.js +++ b/src/traces/pie/style_one.js @@ -11,8 +11,6 @@ module.exports = function styleOne(s, pt, trace, gd) { // enforce the point color, when colors (with s) & the pattern shape are missing. // 'abuse' the color attribute, used in the Drawing component for bar trace type. - // alternative: could be to pass the point color as an extra parameter in pointStyle - // alternative: could be to activate pattern also for funnelarea var marker = trace.marker; if(marker.pattern) { if(!marker.colors || !marker.pattern.shape) marker.color = pt.color; @@ -20,10 +18,7 @@ module.exports = function styleOne(s, pt, trace, gd) { marker.color = pt.color; } - Drawing.pointStyle(s, trace, gd, pt); - // to do : push into s.style d3 logic - s.style('stroke-width', lineWidth) - // .call(Color.fill, pt.color) + .call(Drawing.pointStyle, trace, gd, pt) .call(Color.stroke, lineColor); }; From f376b63ec2f9543924425a2af491ffa7bf68176c Mon Sep 17 00:00:00 2001 From: thierry vergult Date: Wed, 17 May 2023 17:01:39 +0200 Subject: [PATCH 11/11] piePattern : call pointStyle outside the d3 s.style construction --- src/traces/pie/style_one.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/traces/pie/style_one.js b/src/traces/pie/style_one.js index e98fe95e2d8..139046ccc1e 100644 --- a/src/traces/pie/style_one.js +++ b/src/traces/pie/style_one.js @@ -18,7 +18,8 @@ module.exports = function styleOne(s, pt, trace, gd) { marker.color = pt.color; } + Drawing.pointStyle(s, trace, gd, pt); + s.style('stroke-width', lineWidth) - .call(Drawing.pointStyle, trace, gd, pt) .call(Color.stroke, lineColor); };