From dbdca0fef86f95df20556a5cbbf13da009ddfa40 Mon Sep 17 00:00:00 2001 From: wyq Date: Mon, 13 Dec 2021 15:25:49 +0800 Subject: [PATCH] update polyline marker plot functions --- .../org/meteoinfo/chart/ChartColorBar.java | 4 +- .../chart/graphic/GraphicFactory.java | 12 ++--- .../java/org/meteoinfo/geo/drawing/Draw.java | 42 +++++++++--------- .../meteoinfo/geo/layout/LayoutLegend.java | 8 ++-- .../geo/legend/FrmPolylineSymbolSet.java | 2 +- .../org/meteoinfo/geo/mapview/MapView.java | 10 ++--- .../meteoinfo/geometry/graphic/Graphic.java | 2 +- .../geometry/legend/LegendScheme.java | 2 +- .../geometry/legend/PolylineBreak.java | 12 ++++- meteoinfo-lab/milconfig.xml | 14 +++--- .../pylib/mipylib/plotlib/_axes$py.class | Bin 208202 -> 208260 bytes meteoinfo-lab/pylib/mipylib/plotlib/_axes.py | 6 ++- .../pylib/mipylib/plotlib/plotutil$py.class | Bin 56971 -> 56959 bytes .../pylib/mipylib/plotlib/plotutil.py | 10 ++--- 14 files changed, 68 insertions(+), 56 deletions(-) diff --git a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/ChartColorBar.java b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/ChartColorBar.java index 6eca3d76..2507a698 100644 --- a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/ChartColorBar.java +++ b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/ChartColorBar.java @@ -449,7 +449,7 @@ public class ChartColorBar extends ChartLegend { break; case POLYLINE: PolylineBreak aPLB = (PolylineBreak) aLS.getLegendBreaks().get(idx); - DrawShape = aPLB.getDrawPolyline(); + DrawShape = aPLB.isDrawPolyline(); FillColor = aPLB.getColor(); break; case POLYGON: @@ -775,7 +775,7 @@ public class ChartColorBar extends ChartLegend { break; case POLYLINE: PolylineBreak aPLB = (PolylineBreak) aLS.getLegendBreaks().get(idx); - DrawShape = aPLB.getDrawPolyline(); + DrawShape = aPLB.isDrawPolyline(); FillColor = aPLB.getColor(); break; case POLYGON: diff --git a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/graphic/GraphicFactory.java b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/graphic/GraphicFactory.java index 848ba759..40e404cd 100644 --- a/meteoinfo-chart/src/main/java/org/meteoinfo/chart/graphic/GraphicFactory.java +++ b/meteoinfo-chart/src/main/java/org/meteoinfo/chart/graphic/GraphicFactory.java @@ -831,7 +831,7 @@ public class GraphicFactory { gc.setSingleLegend(false); PolylineBreak lb = (PolylineBreak) ecb.clone(); if (cb instanceof PolylineBreak) - lb.setDrawSymbol(((PolylineBreak)cb).getDrawSymbol()); + lb.setDrawSymbol(((PolylineBreak)cb).isDrawSymbol()); else { lb.setSymbol((PointBreak) cb); lb.setCaption(cb.getCaption()); @@ -1171,12 +1171,12 @@ public class GraphicFactory { ps = new PointShape(); ps.setPoint(new PointD(xIter.getDoubleNext(), yIter.getDoubleNext())); graphics.add(new Graphic(ps, cbs.get(0))); - LegendScheme ls = new LegendScheme(); - ls.setLegendBreaks(cbs); - ls.setLegendType(LegendType.SINGLE_SYMBOL); - ls.setShapeType(ShapeTypes.POINT); - graphics.setLegendScheme(ls); } + LegendScheme ls = new LegendScheme(); + ls.setLegendBreaks(cbs); + ls.setLegendType(LegendType.SINGLE_SYMBOL); + ls.setShapeType(ShapeTypes.POINT); + graphics.setLegendScheme(ls); } return graphics; } diff --git a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/drawing/Draw.java b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/drawing/Draw.java index b556f9b5..fb85221b 100644 --- a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/drawing/Draw.java +++ b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/drawing/Draw.java @@ -2930,7 +2930,7 @@ public class Draw { drawPolyline(points, g); //Draw symbol - if (alb.getDrawSymbol()) { + if (alb.isDrawSymbol()) { Object rend = g.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Rectangle clip = g.getClipBounds(); @@ -2942,7 +2942,7 @@ public class Draw { if (p.X >= clip.x && p.X <= clip.x + clip.width && p.Y >= clip.y && p.Y <= clip.y + clip.height) { if (i % alb.getSymbolInterval() == 0) { drawPoint(alb.getSymbolStyle(), p, alb.getSymbolFillColor(), alb.getSymbolColor(), - alb.getSymbolSize(), true, alb.isFillSymbol(), g); + alb.getSymbolSize(), alb.isDrawSymbolOutline(), alb.isFillSymbol(), g); } } } @@ -2952,7 +2952,7 @@ public class Draw { if (i % alb.getSymbolInterval() == 0) { p = new PointF(points[i].X, points[i].Y); drawPoint(alb.getSymbolStyle(), p, alb.getSymbolFillColor(), alb.getSymbolColor(), - alb.getSymbolSize(), true, alb.isFillSymbol(), g); + alb.getSymbolSize(), alb.isDrawSymbolOutline(), alb.isFillSymbol(), g); } } } @@ -3004,7 +3004,7 @@ public class Draw { } //Draw symbol - if (alb.getDrawSymbol()) { + if (alb.isDrawSymbol()) { Object rend = g.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Rectangle clip = g.getClipBounds(); @@ -3016,7 +3016,7 @@ public class Draw { if (p.X >= clip.x && p.X <= clip.x + clip.width && p.Y >= clip.y && p.Y <= clip.y + clip.height) { if (i % alb.getSymbolInterval() == 0) { drawPoint(alb.getSymbolStyle(), p, alb.getSymbolFillColor(), alb.getSymbolColor(), - alb.getSymbolSize(), true, alb.isFillSymbol(), g); + alb.getSymbolSize(), alb.isDrawSymbolOutline(), alb.isFillSymbol(), g); } } } @@ -3026,7 +3026,7 @@ public class Draw { if (i % alb.getSymbolInterval() == 0) { p = new PointF(points[i].X, points[i].Y); drawPoint(alb.getSymbolStyle(), p, alb.getSymbolFillColor(), alb.getSymbolColor(), - alb.getSymbolSize(), true, alb.isFillSymbol(), g); + alb.getSymbolSize(), alb.isDrawSymbolOutline(), alb.isFillSymbol(), g); } } } @@ -3054,7 +3054,7 @@ public class Draw { drawPolyline(points, g); //Draw symbol - if (aPLB.getDrawSymbol()) { + if (aPLB.isDrawSymbol()) { Object rend = g.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); Rectangle clip = g.getClipBounds(); @@ -3066,7 +3066,7 @@ public class Draw { if (p.X >= clip.x && p.X <= clip.x + clip.width && p.Y >= clip.y && p.Y <= clip.y + clip.height) { if (i % aPLB.getSymbolInterval() == 0) { drawPoint(aPLB.getSymbolStyle(), p, aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), - aPLB.getSymbolSize(), true, aPLB.isFillSymbol(), g); + aPLB.getSymbolSize(), aPLB.isDrawSymbolOutline(), aPLB.isFillSymbol(), g); } } } @@ -3076,7 +3076,7 @@ public class Draw { if (i % aPLB.getSymbolInterval() == 0) { p = new PointF(points[i].X, points[i].Y); drawPoint(aPLB.getSymbolStyle(), p, aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), - aPLB.getSymbolSize(), true, aPLB.isFillSymbol(), g); + aPLB.getSymbolSize(), aPLB.isDrawSymbolOutline(), aPLB.isFillSymbol(), g); } } } @@ -3249,12 +3249,12 @@ public class Draw { path.reset(); path.moveTo(p.X, p.Y); //Draw symbol - if (aPLB.getDrawSymbol()) { + if (aPLB.isDrawSymbol()) { Object rend = g.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); for (int j = 0; j < drawPs.size(); j++) { Draw.drawPoint(aPLB.getSymbolStyle(), p, aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), - aPLB.getSymbolSize(), true, aPLB.isFillSymbol(), g); + aPLB.getSymbolSize(), aPLB.isDrawSymbolOutline(), aPLB.isFillSymbol(), g); } g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, rend); } @@ -3283,7 +3283,7 @@ public class Draw { } //Draw symbol - if (aPLB.getDrawSymbol()) { + if (aPLB.isDrawSymbol()) { Object rend = g.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); @@ -3299,7 +3299,7 @@ public class Draw { } if (i % aPLB.getSymbolInterval() == 0) { drawPoint(aPLB.getSymbolStyle(), p, aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), - aPLB.getSymbolSize(), true, aPLB.isFillSymbol(), g); + aPLB.getSymbolSize(), aPLB.isDrawSymbolOutline(), aPLB.isFillSymbol(), g); } } } @@ -3313,7 +3313,7 @@ public class Draw { if (i % aPLB.getSymbolInterval() == 0) { p = new PointF(points[i].X, points[i].Y); drawPoint(aPLB.getSymbolStyle(), p, aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), - aPLB.getSymbolSize(), true, aPLB.isFillSymbol(), g); + aPLB.getSymbolSize(), aPLB.isDrawSymbolOutline(), aPLB.isFillSymbol(), g); } } } @@ -3464,15 +3464,15 @@ public class Draw { float[] dashPattern = getDashPattern(aPLB.getStyle()); g.setStroke(new BasicStroke(aPLB.getWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dashPattern, 0.0f)); - if (aPLB.getDrawPolyline()) { + if (aPLB.isDrawPolyline()) { drawPolyline(points, g); } g.setStroke(new BasicStroke()); //Draw symbol - if (aPLB.getDrawSymbol()) { - drawPoint(aPLB.getSymbolStyle(), points[1], aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), aPLB.getSymbolSize(), true, aPLB.isFillSymbol(), g); - drawPoint(aPLB.getSymbolStyle(), points[2], aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), aPLB.getSymbolSize(), true, aPLB.isFillSymbol(), g); + if (aPLB.isDrawSymbol()) { + drawPoint(aPLB.getSymbolStyle(), points[1], aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), aPLB.getSymbolSize(), aPLB.isDrawSymbolOutline(), aPLB.isFillSymbol(), g); + drawPoint(aPLB.getSymbolStyle(), points[2], aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), aPLB.getSymbolSize(), aPLB.isDrawSymbolOutline(), aPLB.isFillSymbol(), g); } } else { PointF[] points = new PointF[2]; @@ -3614,14 +3614,14 @@ public class Draw { float[] dashPattern = getDashPattern(aPLB.getStyle()); g.setStroke(new BasicStroke(aPLB.getWidth(), BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dashPattern, 0.0f)); - if (aPLB.getDrawPolyline()) { + if (aPLB.isDrawPolyline()) { drawPolyline(points, g); } g.setStroke(new BasicStroke()); //Draw symbol - if (aPLB.getDrawSymbol()) { - drawPoint(aPLB.getSymbolStyle(), aP, aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), aPLB.getSymbolSize(), true, aPLB.isFillSymbol(), g); + if (aPLB.isDrawSymbol()) { + drawPoint(aPLB.getSymbolStyle(), aP, aPLB.getSymbolFillColor(), aPLB.getSymbolColor(), aPLB.getSymbolSize(), aPLB.isDrawSymbolOutline(), aPLB.isFillSymbol(), g); } } else { PointF[] points = new PointF[2]; diff --git a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/layout/LayoutLegend.java b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/layout/LayoutLegend.java index a3ac09b4..2e2018fd 100644 --- a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/layout/LayoutLegend.java +++ b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/layout/LayoutLegend.java @@ -729,7 +729,7 @@ public class LayoutLegend extends LayoutElement { case POLYLINE: case POLYLINE_Z: PolylineBreak aPLB = (PolylineBreak) aLS.getLegendBreaks().get(idx); - DrawShape = aPLB.getDrawPolyline(); + DrawShape = aPLB.isDrawPolyline(); FillColor = aPLB.getColor(); if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) { caption = aPLB.getCaption(); @@ -923,7 +923,7 @@ public class LayoutLegend extends LayoutElement { case POLYLINE: case POLYLINE_Z: PolylineBreak aPLB = (PolylineBreak) aLS.getLegendBreaks().get(idx); - DrawShape = aPLB.getDrawPolyline(); + DrawShape = aPLB.isDrawPolyline(); FillColor = aPLB.getColor(); break; case POLYGON: @@ -1117,7 +1117,7 @@ public class LayoutLegend extends LayoutElement { case POLYLINE: case POLYLINE_Z: PolylineBreak aPLB = (PolylineBreak) aLS.getLegendBreaks().get(i); - DrawShape = aPLB.getDrawPolyline(); + DrawShape = aPLB.isDrawPolyline(); FillColor = aPLB.getColor(); if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) { caption = aPLB.getCaption(); @@ -1288,7 +1288,7 @@ public class LayoutLegend extends LayoutElement { case POLYLINE: case POLYLINE_Z: PolylineBreak aPLB = (PolylineBreak) aLS.getLegendBreaks().get(i); - DrawShape = aPLB.getDrawPolyline(); + DrawShape = aPLB.isDrawPolyline(); FillColor = aPLB.getColor(); break; case POLYGON: diff --git a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/legend/FrmPolylineSymbolSet.java b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/legend/FrmPolylineSymbolSet.java index 3d137db3..4f1cf69f 100644 --- a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/legend/FrmPolylineSymbolSet.java +++ b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/legend/FrmPolylineSymbolSet.java @@ -513,7 +513,7 @@ import javax.swing.JColorChooser; this.jLabel_Color.setBackground(_polylineBreak.getColor()); this.jSpinner_Size.setValue(_polylineBreak.getWidth()); this.jCheckBox_DrawShape.setSelected(_polylineBreak.isDrawShape()); - this.jCheckBox_DrawPointSymbol.setSelected(_polylineBreak.getDrawSymbol()); + this.jCheckBox_DrawPointSymbol.setSelected(_polylineBreak.isDrawSymbol()); this.jSpinner_SymbolSize.setValue(_polylineBreak.getSymbolSize()); this.jLabel_SymbolColor.setBackground(_polylineBreak.getSymbolColor()); this.jSpinner_SymbolInterval.setValue(_polylineBreak.getSymbolInterval()); diff --git a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/mapview/MapView.java b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/mapview/MapView.java index 414bfa64..96db0c20 100644 --- a/meteoinfo-geo/src/main/java/org/meteoinfo/geo/mapview/MapView.java +++ b/meteoinfo-geo/src/main/java/org/meteoinfo/geo/mapview/MapView.java @@ -5057,7 +5057,7 @@ public class MapView extends JPanel implements IWebMapPanel { continue; } - if (aPLB.getDrawPolyline()) { + if (aPLB.isDrawPolyline()) { drawLonLatPolylineShape(g, aPLS, aPLB, LonShift); } } @@ -5405,7 +5405,7 @@ public class MapView extends JPanel implements IWebMapPanel { } PolylineBreak aPLB = (PolylineBreak) aLS.getLegendBreaks().get(aPLS.getLegendIndex()); - if (aPLB.getDrawPolyline() || aPLB.getDrawSymbol()) { + if (aPLB.isDrawPolyline() || aPLB.isDrawSymbol()) { drawPolylineShape(g, aPLS, aPLB, LonShift, isStreamline); } } @@ -5473,7 +5473,7 @@ public class MapView extends JPanel implements IWebMapPanel { g.setStroke(pen); List drawPs = new ArrayList<>(); - if (aPLB.getDrawPolyline()) { + if (aPLB.isDrawPolyline()) { for (Polyline aline : aPLS.getPolylines()) { double[] sXY; PointF[] Points = new PointF[aline.getPointList().size()]; @@ -5525,7 +5525,7 @@ public class MapView extends JPanel implements IWebMapPanel { } //Draw symbol - if (aPLB.getDrawSymbol()) { + if (aPLB.isDrawSymbol()) { Object rend = g.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); for (int i = 0; i < drawPs.size(); i++) { @@ -5590,7 +5590,7 @@ public class MapView extends JPanel implements IWebMapPanel { path.reset(); path.moveTo(sXY[0], sXY[1]); //Draw symbol - if (aPLB.getDrawSymbol()) { + if (aPLB.isDrawSymbol()) { Object rend = g.getRenderingHint(RenderingHints.KEY_ANTIALIASING); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); for (int j = 0; j < drawPs.size(); j++) { diff --git a/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/graphic/Graphic.java b/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/graphic/Graphic.java index a9e3f5ba..a6dea397 100644 --- a/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/graphic/Graphic.java +++ b/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/graphic/Graphic.java @@ -447,7 +447,7 @@ package org.meteoinfo.geometry.graphic; //legendType.InnerText = "PolylineBreak"; size.setValue(String.valueOf(aPLB.getWidth())); style.setValue(aPLB.getStyle().toString()); - drawSymbol.setValue(String.valueOf(aPLB.getDrawSymbol())); + drawSymbol.setValue(String.valueOf(aPLB.isDrawSymbol())); symbolSize.setValue(String.valueOf(aPLB.getSymbolSize())); symbolStyle.setValue(String.valueOf(aPLB.getSymbolStyle())); symbolColor.setValue(ColorUtil.toHexEncoding(aPLB.getSymbolColor())); diff --git a/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/LegendScheme.java b/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/LegendScheme.java index 23973697..89ab30ee 100644 --- a/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/LegendScheme.java +++ b/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/LegendScheme.java @@ -959,7 +959,7 @@ package org.meteoinfo.geometry.legend; drawShape.setValue(String.valueOf(aPLB.isDrawShape())); size.setValue(String.valueOf(aPLB.getWidth())); style.setValue(aPLB.getStyle().toString()); - drawSymbol.setValue(String.valueOf(aPLB.getDrawSymbol())); + drawSymbol.setValue(String.valueOf(aPLB.isDrawSymbol())); symbolSize.setValue(String.valueOf(aPLB.getSymbolSize())); symbolStyle.setValue(aPLB.getSymbolStyle().toString()); symbolColor.setValue(ColorUtil.toHexEncoding(aPLB.getSymbolColor())); diff --git a/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/PolylineBreak.java b/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/PolylineBreak.java index d39c6fda..aa3bc304 100644 --- a/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/PolylineBreak.java +++ b/meteoinfo-geometry/src/main/java/org/meteoinfo/geometry/legend/PolylineBreak.java @@ -137,7 +137,7 @@ public class PolylineBreak extends ColorBreak { * * @return Boolean */ - public boolean getDrawPolyline() { + public boolean isDrawPolyline() { return drawPolyline; } @@ -155,7 +155,7 @@ public class PolylineBreak extends ColorBreak { * * @return Boolean */ - public boolean getDrawSymbol() { + public boolean isDrawSymbol() { return drawSymbol; } @@ -168,6 +168,14 @@ public class PolylineBreak extends ColorBreak { drawSymbol = isTrue; } + /** + * Get is draw symbol outline or not + * @return Draw symbol outline or not + */ + public boolean isDrawSymbolOutline() { + return this.symbolColor != null; + } + /** * Get symbol size * diff --git a/meteoinfo-lab/milconfig.xml b/meteoinfo-lab/milconfig.xml index 937ae77b..fe06abc0 100644 --- a/meteoinfo-lab/milconfig.xml +++ b/meteoinfo-lab/milconfig.xml @@ -1,12 +1,9 @@ - - - + - @@ -16,17 +13,22 @@ + + + - + + - + + diff --git a/meteoinfo-lab/pylib/mipylib/plotlib/_axes$py.class b/meteoinfo-lab/pylib/mipylib/plotlib/_axes$py.class index 6b6b5905675307d552bd08acc3347ada2da87b5e..69efca01f52bd3795e8f80cd61bc09b3aa24cead 100644 GIT binary patch delta 35908 zcmbrn2Y6J)_XfN(yZ7$hmbMA$gkHdQ%iB-#atgK!5-5`JRu**SS0Q%$a`9nKLst+m1M2{nfdob`P62 zEH5j!(6IEG(WOU9Y+uXscGG%G8Z#M#G7DShW#{D^mUL!f{f*+!dn|}AvJFfhkU2ob zFG2iJ!?H|oe%&PhF_Shpy>P%_!&0Iccz&&9CYyXL$QqkzSiWZ_-OFP&Gud1kh9;fAV_L_}NwCrOhGiVLVf#Pl>GOX=>W+uz%%zQ)~_GR<5$j7k!ifjbi!I@cu z2BW!;IW312lM_gUH(-1U>~gX)49l5fHm*La_?u|9tb)S4LHX%9hUJ1F%*q9`i_B!r z$jmLsDjZ{2F3(6CpBs18Zklbm28xWVfddW84K(q95jh1TknYxu-^Y)y_=n|BL2?Iu zl%Ab6DA%z3?X;XzMfeBlL`H_?{){O_rDHXd)ACTh(zvG#Y5mdAhGr?=Ry2(lSy2Gd zHv@AD4b6sP=VxXZngg^s>G?x5^JTmXZQ$w3C$qA%4J{a{`llDDRH42WN-fOHDKIp* zQ`1$R5hzXpA`LB4bWUDwVcv-Ra`kF5^J06F_*Z=R<*&?TV!#1|R1U_R^kIe;2kL>y zDQ#qW_J~YFOPKM+Ye_|AP%7{knVDbMEzi)(VPtmh)S*|0b}4NQtpYOzqm0>^gEDh7 z3I+_$%t5+JXuN`)ygc;3Rs~~kP<~cMMtWg-+OYh*VJK-;*~|k__3Eg4R>mkptBE8z znT3P%&M3AhSq?Y!qo6)>aISF}dkESpy91DGXjP zNgbR%EVJ8~VW?U=6ea_6t6*??Mjp!DUbSI|^!}OIshP;ABk~=Xm6@FZ7NGB>I6Nt0 zQe;dQH6a3GQj5?Y15tWI>yF%!q5AQxqLjR!l&^cKN{QELwG6EfGlih><;-j~ri1JQ zG?<#SGMSpR8pM&9$3iHeF0$b1$Z2%mz=4Q1nrQ=2Ej;z?q$0FTydC3ts|`{wdwE}G zp%m#O^RhB9a?l?`XDpdqs$mX#B_ne{R!(|0T0c)ooR%XB^V+CLLmRG2>-pU#Yfx4p zC<|shoE%qSgkYJGAa8(i9%hTyHMAFsTfVi&95fzf69e$6PAP^qVMgM# znCO?C+Bil3DvIIh-GPSoT5;EDQ_amMVU(o}%5-XzO}8=j8rRV3Tk1@0< z$R*P=Ql|OlRlA(@LFmGFW+c5^s@J<1BJDc1e5$RX%|vTL+KoZ1_zke?vCtek?uVgSu4p8D>K=H{P)K~84DU{NST`<$7=)u8Sy zd$4m}_LxC=kX+h)r}n90vH(nmp$DK~w6BVvd4IjR);GSn@D$ki6D@ISi&UazqMUfA z@?Kutc-A^|)Cx2x8owJ_z|g*PY9)$xRdLvy_UtJr6e}t!@;5YS5|`&kZM2=J0Q87Q zA+%Hx8=cx3#R2L=^H6Omo;UX!)_gmLl8}4e#5*BAR7GWCF?S7Zw^Q4u80;0pLU0vn z3~hh$^v^zJ9S?ztjP;0RxZTtQN8(s55&I@o!UXg^CX%e zJvTS65Gu^jP8U!3yb+H&=hV)s*XKoJj2^5q{JnVJe8#F=#%T6*hp!{9I<-qG#dXwj znAF^o;HFQhyJ73q}&7eDCRB41(XrLrv>^}$dK5}0K2Y?{Ssk>Ftp)t(EvOra?IAz5ITi=T4k;1%ep&<3jVAx-17d;tI zZCa*2ZRpkTKDA5tmR;K#dJV*O?$ABe&}*S2DvMTmD0v;HUO}<1i!SP)H+ooh9{ANS zPTo-8T+{?vj?F@SnxWZ*07!?TPs>e5v$X*CjLdBL+zNeFfSyNj+hE*2l|G`NAS*q$ zeH-NbBr1q*FBk>`&Cs95uS}r_#W2yIfu%Oe&^w?=!}4G@VA6v{3OLI_S5Rc=ozakD zS`Ez3%7nq9cLf9Sdq6r=p59F~b7ltek|Rs+fw!U#QX%R+QRq=HAfWj@F}+bbMem7t z4tYrtm0{@5JN3q@Df)r!$gI3ASm8Txo#u``+U=HGc3&UkLKQSDW|`PG5)pWgi1H{oMXJq7t>NteZWQ*VBG zhxi8pz#19)lo``EC$M*CEZH2*-k-5;bK4qUfL0B)FH!R`1%tB&qJ#_aJX)y({c92L zdH!Zbvn}NsEkW-VX2BRSbO<_@Wa!IL+U&dmhF;>-2dXApiOF1;J_d3#4c#FvL;d^W zSz8X7yR1R_y!;H90s1;*pH(noq@iy>Ph}Nk=jCQ(Q{Q9{Iv<=0i!xg^b}rh z#-xB2kRrQv-iX}78GCoMWvh!LcYfKn=#Yuq*+lz!7>(-bci4#P>5@~^)zcN2DeCDO zRG@mg0p+HiZb5^nr$3+u)Dz^&BK7n)B)59{2NGC4-G?YuPel(Q0p+8ELD;D$GlZCW z(jcDHlNAz3Jqbago*bCk>dA#!sGfo`2-Q<4+EzWeo%(9^6yel8xkWnl(}-KK#?4wX z%d$~N<5utp7Gy4h`HqnjC2VLJ!eADmFk)p0drgM01Y`&eFGDC%8A1=r5UNdvP+KyD z@{u8Qhzue3We5Q;Lx^n=HWKn!MnK?-P)JP~LW;={;zov;Ycj+DlHuwVTccQiot>bn ziR=q@V#WSMcHdxgXm2G}g&m-KA~2|8WmZLNT4FLn=)_?jOT#O(PV6JvP?0A}o z+IbM~s-+oescy?zdLo%Mh_T#rTh9AaJn*Gh@ZTvK7MTMRXqqpG%0pZ04X?ZiiE1!=KcTkI$O)eQs@spZb80`c5Ec#rTw4``J%=#!G512U3bp zVUhG!H5MLy!L9w~C%fn)t54Ufv4rRwZtaTy^)27)_UiRrxAv$1^*!I~K2)(fs~Bx| zYY%;|b>9%PPnNF}oNnDetn?sX>QyLWh@DOz=H)4`26LFh^#G0jd%4*R9V^lh~?b6RS+x$;V8ua;)P zqu!8GYqHAa(%pJffBFHw^r9!NB7L}?L33)d2)3L`YO;hj-?{a{{sgPM37pN4;L$0r z?{n*G{iMFWbbdrpwIE6!P-_u%pH%8f_FoGul&*#gnr(yIC~HWYP{m4I4mH z;3JdC>IS9*3xMBDCZjS?04xIjF_~<=fr-FkU?Xq@xMMQe%K`O)_COzCGO)^IayS7z zJ3#Af1|SdT1Cz=|nO1FOK=Q~w`Wd6q(_bY6-*N9z~zvaBB+f0I|@S|{4DfyGtmpB$=nMyn-kepfQ$i|`A@f%rucwbq@ zAe6DhboT?xLJ&VsOYEp|&PLQYjfNMqI4ug%{d_!PwQBgCPCsvCm05pco6x5NsOlz` z#4_l?H!O*AHZd2=6j8A{YYF0k)NwK5S8rl=Hi(XW$m6t8h#pL?B`j*@Pbk#kpIB*n z@h8@oWsArpy89FB&2p&wX7oZXUEa!)wC9i{kJfBv~t0;;zKB`u_WTUf(VLX=l4F?VZZiMDKhxLCFDNLsvwwPmB}k1eRo z7)sj8sx2gc$%RI&pFpFyWY@Gd!b zB6yGL??fqPQlFiyDWmtA@wjkpdSLY*TtKlt5Oq(W^E=UEAJM&?ERM~h=AC$qp?xA- zIh@ivaW|UNROX&(sn*~=`^M_%s_}nJg)7o`u}o&}Vd_p>ceCX3?J%960Wbx%6rdB( z8NgK2x&o;{4~pKyn%5nK$HBl5AREX5a)CTxm?z9fh?%bydcu+P_8!(62Bk@xL7T-g*v${<1o|2NZCz$_p$nk z+8$9;vlveNpcqbWz6}&5COMq;%I4tOKI*rhMMstrytG}wZU8G2Z7;BoPV8mT!CbO` zRk7F2f_(#Kp%(klteWDZ>yl4%$w%jqdS<`^fG^BfW|`zG`7uw)mnMhm^(5=b9@h00 z>jsi_Lc{-~{CXo#zKun`iB0Pv7syGy0niX=1T;pj?|5@{Y=IC&S?tY`YX_O@yPjNA zX!U-U%sNq8dmig>cx8~@`Mq^K#u?)DMRcJSrFbNT)ML7CE(<HCl=us)$-2{t11!$n4TS#5x&v%_P|+`}4AndcN%AZ;KFFe3 zFU2|QASPgMntqVgfIQi7kd=>pPP9r$FuE0ags42`oBD#y^TZBeil@=uVirNI4`C+v zqvsE?vU<8mqthFQA^P_mVs;&(TSS}^5eXH!m1_RXbVxdp1B6`PpILO&AVDLPv5?Hc zzRC=yDL+H+523jiy=}pZk^4|u+mXkS>k5la+JxWPNd7^o7h#ZGVMuoJbRXMYgZeJOqv3kZdu?e)Xuwa9>#`iB}=eXV9M?N*S+|pPH5W zo5YWT&t%H0%M!KrsO?+S_aheP(0v@_lqD#1HQPNA<8 z;t(?fWFhvIrkm(PkCK+!L4TJ*kFmEQNM|3zEG8u!^$#T12q7H9>EJcqYlZa4+S6{bx21Y(ou$x zkUAu!4(X^vI_i*)aDJHdk-#XEse(QR4`YEBfpNeD;3eQ?;8kEE@ESEb!D8D_!Q)im z9bg9VE&!RT6Yv3K!slL@;LL$c&><7fprw99)zxYcGF0Cr8^TJv{$jBXPs1VlCt7=g zMMiHHZ+%va-Pbo;sNYGfFvtH0`=T?*w^D8onDs4BvPia#dYy!d+)krTLMiT`St8g; z8%{#>?4m0tSzQ|8%cCr+{E><}fM#-#b#H!rPPGK%nv82hDZ+G(cKnbR=WtGvKM=;G5N_DWr0SqkZ>thW-=35*_(7*wO@IJKz26X@PQES~EpsPh@vBByBV85Hp} z%{{})QPf!$8fPh#Op5V;#l$a0&eBa#N1uB9C!Ez+0%noQ$DBbJ!Eq|9gkz@m+|z@$Y3 zU#DH?(ET^)vIuUH{WlhGy(JTbP_36(L^5nuQ+ZI{mXT3XL~M9WM9epp2F0J0i`0o? ziJ2Ut2r+tvy%;L;mI_|~i!R@0Wwhm>|C{!Lp53Kuzp)C`_dIh)2ni$zRd?Q#oZOT? zl_j>(?+5V3NEdwFesY!KK>*EGMHAuA`ytIa&*I&pJ$#b={@?JcaN2Vo64Xq$&a=|t zXc|-iwm*u3%5MjOM%OQ}4et4-E%;%G_hB_Ag#=Y+tP7^oPJTtQBENSz$?8VM$qGy;!lPv^oH+|Ew+`2nYs3A=lv9RJNgWkw>mw zM9mwapvrXxxn^x5mVT963U`=Sw_AM`7fWJ@HH;0Ye4o&>Hb->0MYI&efJYJ0+RG4Z zQ!c~4Zb>`WvncC)HU#`z(cD~2vg>nMux>hth}LxRGFCfns2U6d)|T2`fx3B;YJ~F$ ztqI;gO%p^+JNozvOTaQz{^}rpMOpB=BjqjRu?f}`RW!9u^cStOhz=22u#|3^0s1cV z%vG2HUFl6TuS*|ZWlok#wxv8S(khmtzR~z_yXwYnbmS_8R(ByK%ds9}F&r1?Q?}M; z1%EAI)EuGbufZniNktJnQ5%LFd(o_G5Wl_Y=rxGnK4iO&Wy*83wkw2?RLoddTKiJ& zbgZPU{b;y_C((pS%*L(hLW;-L!TQT8?Xkdo9+$ozt5g+wfROm{RPzi=;MNRkcmvXR zAPu;IiVUJRZ=fQBY4HtKD#9=1d@E~f79A0ULx|mEr7A4LjOR+RouZ{+&V$X_zJF<{E01_De(^$ z+2`eeD35&hihS^UMZOgR+ik|o5)xiXVOe0&s=kSG|1RiX6Z9TIe3YjD!RBLC-|$b& z+c%}i9by&kyJW~~R2q^z6=~iQF@Zz+_+tWBIIX3#$NIJ)6+-<{fh#ndPe)m&3Zf8? zX?pcfHi&H&cxR;<;nsUoCb?y$1auvo2q z0a&Y6SgTf8tJVQP28I8{p3-1+T1QjAzgXFhFfpyK00jWtYSu}>o4{n?E#PfnD&#Nr zla&1B{jkD?UCBey4j-c2%C9eaau#j*izT~ei^_N`z29g4&1y$pN{zNy+?Fe;)i8i9 z*I7zRHEpG(AGQ0NRdUSaVQkJPy34wD{1Ek;1z~{hx z)Em2Js@`aFX;16Tkk>L~;;;8|S#RqKk#mTXl3oz&F~3k+NmKq|Nj1Myuf<4^O4t1_ zE7X%j$-(dG_&=-(TSc+=AOY71!4~K6%dxeTeGiuCnS1|biTdT$dRlXjRVa(8?U5y( zyuFsFPeQt>*L~=)6%^W#MFxjjF`51HknWv@J!%zhXeE)nHCRRcKIc)~x{0RVhw1(k zt-8-DRD)gh7~SJS&u3Ozw@}anbmms!oQvkxZPfVzim{!tA3#X$pf^RZlfD$eE+G(N zy{4oU(+9Z-3(0NyZ_%}voDX4$?o))c_cjX`YInad6{YcLJwSP&U^`o+*wjkHD7~@7@L)zw8kv<1yiu ziJ^zBI8^5G_h#^9b^?x>imsD_of1kKd+!!6hZRT^<8fGl2u~lko~15~4~<@iVY(bx z0jvbR1HK1V(J{uK5%}X$!A} z^$*OBD$FMQ0)DH+u+w@AuN)?A>HtZt*@cmV44uNtQC{MtJQTzwD-+C6b7JPn`D7qVqo%m3?qVc$}Fu^*o3_;WaOI&Wa zg$RpFngRw;VCZn@E3aF{x9~P1Xt>UwX!76LBPp~SCIT$|-EIxa7YfhscA0MyrHk_J zeEg;JI$@YHj}|A4hEEbr5+iLk*&4C3I03EU^Bfv+G{gG;(i#Z?t>H9y8CPk^t|n^d z*21Z=!TUgV4f&eKa-+N&&_>1idkoGR{()h52lxy48@LPH1MUM@H(-fiG8n);A=VED z)(_ac47Kw}4a){}S2a9#kHBLoAPR^EVt`m64oCn>1Lc77Kt&9EoQY5a-}n~UK*L#= zq3PrbL+&wS;2Vu;x}7JmCSu2>vP&&Aq|K;ddn|@mt}0gY2JC#(2PkPLS`-VmooW2rqLsT)`ce^gr4vpbS0+{The)pfM{?|7 z8QsJTjnR2Hp1Z4MPiGeo$0B0aJO)0`(wA|(T)CctPYC9i@Yni$$p&T#26G$P-DT-| z942-jat5Jd&rwYTuD*{D^b6uGU1^U;m8ZYsc?hJ3(NDY*%UicrUXJgu-ja1i{D2J= zAbgB;$whTZWl9L|}-jig}8d8f8-UTk|hl#wYYmj`ShJRx^ z8p3n+EDbctq%b~!CWrBIT5AmFHncp9*Xhy|kG%l+Fb!CQ1}s7&4d@4?0|S5zAQKn}z>jHU z0q|oQLjm|Pja&f!OJg`@NGq!8<`Ka!q3G%;g_sgA3-OysYwIv0D%6n1w-{J~o$@L+ z@_0fKygSB3QEl z-g=y2XTeZGFv#{n2bmFxmX}5)1|02>hwhb z<9x~3uh8*&e!%NOm2Z%*+r&`#QV{r-PgN1KK*XrQGg78d&w*lOz9|NT&aeEGqv@L{ z-iGete-YSjFlGSn0oZOZ2zZ}Tqj}?6U*d5A@D(Hk&JZdcYU`?Ws3GL{TJTf{s)WE; zCv_;*jo~4*&dy_88$_0#k?B#RKZvNn#{1uD^hc#eH!3x{NvYAFlp5Wv)aVwaM)xQ+ zx;H?L?i2Y4arD2`=zgU}4|vq*L5~_eq|_)(-~U^U9#(3UEkV7H1gOzpJ!Tts?oELM@cnWs_HoruX??_9049#31R-Y4*iW9C&2hP zPyG^jY1akG(5q3WB=D;2cUl(=V^`|bivc?Ik{}K2wg3M*^|H(zLK}wTqdN79e4}*g zD^jPjYcuQe(lmK1x5XIO#p{p|IWM3Benkh|kWm4a^m}REk(!m^<=Sn=eAoiOUv9u(ZtMg01Mry}@R=L%nH#?V zSd&Nw##KaUIE}VH?9LWfSbTA;5P6l0HfLX z8&eR6chwZM&ryd0jC0AMHpq2ML2*zKQ_$uRQ!qZrh9yP7%=`LXUa7SWBJ9yld~E9Z zl$Z@d2dOa!#2&g&Z`y)sQCS|Df~F7HM)aqWdkfxFzBQIDOppt?o+3KoPkHq7 zwu&O|zl97^R2FXoC(U$eKiK5R6)MQzMpXo<)MUb}VReu?S=6ivt4iZ4@R)ck0K9`< z?9rL(;B14(Wo)ZX%Pa7TZb9PnK|I_57B%Q<1s=_6kx`K+xoQg*9>>EBs*9*bb!3#M zpTocaj?MY}1d=`>^Ydw%Hi)YGNcyQ2c}#4*|4cs_#0}KRwdV7q=?Kyj+r8+ew$V+YC1n>>a<^ zh1A_eGsl)T;fSEEhcD-pWd1FCsT%Z@t*49(Q=5OclKE2lx+;I#g=MoX9!LZ#6064D zu4;I!4v4S@l}1#%x_GPyGyoa`jey2L6QC*33}^wg1X=-Y0Qk6VPXh39+u-B2Jp;6- zan*QaL{~hf0^NZgKu-v`Piby7tU`vMnCdvSkZ41tL`$+|i^5AWB4h%@h-INijJyu2 z9I=}h!)>{gP@R`ydDOBxFI#4qNb}$GbG~ULlI7Dk3q(T~DEF1EkXRmzNwSUbCj9p* z8mUH#(>gKau7TC&C_$-Q;u@?wX{DmSed`Y84o|NE|KDgaEVHVQ5h*-YYk8UCafR&_ zUdU>!(AZ_U?FFH-lY(sO=#O`Vj;hJ4xyH#7s1f=lEv?C)X5*#0jIG7(;YBhxC3B!H zUjWYu^icyIS4}MT0=6&s2~~PA=iTDsLBKN9_Oj5ArK11+PA*|=uh7z3ym>TMmo}^} zZCG8}asaF_ZCGL2hEZs3-m;g;_A-9Ff{wU2nOYe&j5?r1klu<}E zTWs-Sq|6ap!3gKl>^eL)@l$WQ{~Rdulpy-64u7W6=YmrD79aC<`0OB{L zWqR=mbn|=}rMh`3l{~@Qu`kih$>9qmW0(P0pLlwBAvLcH$@&#Nhu|?=$M&`COZucP z*Z*zs*cK6-buqNJF1+Tq>+-0GS?IHmf!V+uU@q_}m9EE2*D%?>#*anlP~03+9qK#Z z`95l~4kc4J7(|Dzr>uIsTN$|~5W6^P*G&6f4m+i3#6F(w2Wq(i-jLYt%n@c=hYZ#O z8-O2>(HaV_&m*4LB{{G27(J-CS{1oDG%`+%%KaBC14~$(Y!jir_E69Iyk@A_p{`cK zt3lC;1Kqa0!l4<#wGFhSK88a-!c>i+tMz%XOD-WitCt_?rAEA-Yrn|JqeC}Q#|FG3 zb{NEL!Z{}Cy|?`$rUDo=;Gyl{qqpq_U@O{SE81Wy+F&c%U?b*hGZm85 zE)-vdQk|9c6E`$Oi=6YH&!RI8VW0o?JBn;OPhU6WjoAgd&=9V~i$2e6D6Oy0-H%j7 z+V7sK?2=Vsm#JwgOR$ds|0}ZnXz4PXBD&Xz+g(=!s=0^Ujd?@Y^+%#m^VT%0F&yDH z)lj?Tss0~y64ZUqqITzi-+=SL1>hoZ34qCKgUM^V3c%#G!Q8dM+_n9I*1)AN)fzZ| zEcYTUIB06;vNgmd6tsrjOoP|5vRWBDTIiD|JfRe{f)W)0$3N@_?Q6mZG=}60lyaWo z79tdh@)Ot{fCv1g zQOqd$8taAKim1d=8U~o}#G753)gh?-Bkz6NmG&4q(43ct^YyL>;wY&FuYgk?Pqly> zJwfpHOqV@0t_A$2iNdsr!=(aDmsp%0PJ18zk))QqVFdjCcKH15763kay8+l}WJ{j< z1S}JK5>N(11a}WTqNWj^kiZ1v-!AM`bpc5X5n-xQO=6MN?N1*Z(Ybs*n!qV6(U@VedvO+CYtT4=Czis;JMZqV`lp z?Ins@voww#*kPmDVWZi*0kG5T&jRo~+k2s4_v!jGJR&?pmgJ$QBm)I=L!CbL>1X>O zsh^#GtHwT9G-7#{MHAcewm8$XIEzPf`%t>k0b>W3PC8&MJ`}wC%NZdCa;QlMUY+HM zR)@80A0`f)w`IdU$@5k60*b8_k{62PrD$R?R}b;X7V(3pqeO3;gxZudO-@0cTE)4R>NFpv_FNX;7Ik}cIf`s zRhv$tKArf8q71YhyzzE;u@5~>{*h|(S*pjd!g;L6K2|+8+uLJvRFBQ|B>z+;|4j9mFr^;t@Oc3}_C-LC z&3~-NzEnN7K=s%{)niM2v%;g;WsfaWJ@&1rwx`GJs>e!HkF8KW_MPgnchQnF0XRkN z?*ktI9|9i%FpOjf;wmsMTAmTr>#wu za2DF*$#HPX?apJvC5?~aL&!ddSq#eEf`{rXGB9G(41ccqr}gP}+|I#{hUJ z(c{CP1K!NhK`sElA_yq`~$cH`~}iC(-M2p_c5Xty+@`dh%*j1%j zhEfA-#DG+|6y#Tlu5|iY>-MbIR+@qhOanPsP%M&Me;L zXemk{jZBnaXK$3C4SmvwCy2`wj<#g)16B4U-Os==sLp-31?EZjKDVy1ar+_(-m9eNcuZ1?Y(il@{wIe{)cZM{Z>UP^ z`|?sLgtBz;C-@(WHB2l=S3%`M)A zC}|HG-WS5a%!f7W*IwhqcNq=gb#@kmKAWIW0n#FT2HmtMoQ0mpu%3|Fi zPwzM~14?ly4NW~zT-1%za=>s9#q{Gb*1?if2(?V(tx!mu`Ed*hNcD9;UM5_aO5P1# zcmUwPb!7WD9G(jUo2ds}Hwe>C?Pal_bic1x6FtoLp60lZ$M^k#|S z2bJVgBaU(ERj|<@p@Geek%MNg?Q3SN@g4H$f=3KL zK~H7yZxUV;DTNop?Y)qJl@o@J@IW}E)dpcZX+@1pp3A#bg`BDez$5CY0o3$_wGh?; zo&f3r^??RJBLJ>ZM-u?9Q3s5D8N%Rqz~FbZq(2Ao)9WW&w zg}?}tskdV!9$-g0U`IN}0xtsNfbl>PFadZ4cnx?R5H=+~+M+BJqm9XionYMIK#Pg( ze)WX|(S9FE*8+uPLD0++(o;+?(Gedj+oe+$Y?s+$Srw~^Zk$6eWMM{~&Elc7E(<34 zXS6K~GJPJnJ|ZK1N7Wpk&m6+T)pojDZ%%PTU`q6(MLE12?kza56vu=RYgV@o$>{N9 zVrtaH%P+-C<+0UU)8rvM$t_)Io~X8kD zNtR+NpUtbf#c^uyg%;I-#bVDu9c`ou+1wJdJRq^flNe?UzC$r{G!GAx9Mle;XCseX zIhc<}v#|kDLN~H`8PDNnE44_#HDV!rSAr+5&{2yVtYE&QzBxR>fR_%1L`%PtgLRK= z>2^55d?$yOajq8c5jna)}KXyfz}H_2x9w)5Yc^8qqS&V zoIh`*31iLezcS%iFUlfsRk?MzK7@l_Y%-OYqU2l`74!Aa{avX34|Fn*e--f|2K-0B zEZ}1RCO!u0m&14++c$Vz417Unhw&N_tMRx7SPy&;{D5gPkdlV;h^l+RU46(y%nRu~ zlnuqMh?2P3lhPuW1vxeAj=^#c`5474XW| zx6xyey0oK!N7MTSu>Mcex&o-3Gjy^5_Uz%2Jcyiy(5%^1u@EN|&QZ5QoG~3kOA2{h zg6ME{8PFjz^L69{+_-jJpo@iY-26`V5j?T>#mB2H8ZTTQi~0su*5}xAT%tZBcwB?a zNcV^k@+&HIBI*aj$zybmf-&heImKEoXz=RGx^HkhlDQQ>{@ryE#U#iPAKDAWAQyqEWnTtZZ|XN~HFe69=swcWKQi zY*`o6-BCQ|DbJw2@6X;l+$M-Nw}?Aj;rh#ByvbqayU^;8%chVBDZVGt!xwo34I7O! z)vtjzwU;Gae?vZK;=b+V(KxmHkQR>SF+om~KQDbU%^HXK#OU%keEsLdIPP=_KeD&w za;f?lxS-6`Z47T5jD-VwQkVdZH1Um~PsZ?s$hVLSf zd8Bow%GPoEN2F7ygz+%Dr_r>rSUOLm)nj2r7t4X$IDiaRJMxY~-r@Q?qBSg~g$#@G z%P=Qq8A#xX6(m&S1x#`qJ^2FffDenzc!4*p=IIkBoCyK-nE9^?tV9JI^!E!qp?;{! z3KhgBi@ePJk@$F#TmQh<``%`Ik5XRb-TL~A?|6tTeZ$}$Lk4g)dz;zQX~RA&;Rd>wQTH_V+igoa4q&YD6+B!oM$ zY3uftottp;!|&KUFK|nAN0)zr#fEx%0Ldf<8 zf2w>XJXQuom<(XS<-~$ZhDiu(05xgE8$7XALp(MDn!w1y$0F5Q#POBd)3H0zOju~c z<`Q2-6XT$ZI*23=u?L4bu{y-`Be6!ry$&3UtK1}2M2R)1cl+b|G5+hdga zdJ27yM~8KPJpKo2@*ZYb58rCX&YjQF+DY(c_N1xr@lsK}WI298IRfn~XK%8+$)CrK ziYaemmv_vYFw&nB&s8e)l?f)vf@4V`tXLnHP?O*TFj-3ASoA##GC+^vpE-*@XHm;n5#c97dZ2X)e9$6kH>;FD4#w zEcpO^F_Ip<4Z$;tI)8v*G^MP>#ZBK%sdKFG5XMAv9BXvGAlUl8<-pb>>czl<= z_Q=-&ocPY!bPTWQ^!{{Sh!32}kGaTi1vE!(-lbaaV7N_s2Zz7=zQcp@jh-Atc)roY zogYx*Cr~Hr-{F&}%M3m%YZPWNybsQ?zzYDp4^DU=obWz4;dyYr1iTEq3QPpxg>b$B zOadkYZvk%uQ-Nu~bYKSXF7O^O6CmINN_m$@2QNmY-MZ%xfpf_tVqvLl)$v zvD*KX1;sPp<5j|zi*y09L-)-5Zv$t3iJJK<)XZNgv-;P}|BlwYhnfGq8s@9iFkekQ zW@4{ljYxvsmc5^{aEH%L=Uhv(XTrSviT=UNpcp52(e;^do@^Eobt+)idMyp_!890V zkQlJFps~CXqZ{$ciCYD&m_h$Ji?;<1TrrEcs~NOI&ElQj#Q$~D-ZP7Lsad>RNv1tg zGWFW)O(++Qruz_3zKdqgecqSiU{#5H>H9L7Q!b?c=Zrt_czF-1@*Yy<{n^X;zsoBe zRnA}J6sL_J;2=^z*p>ma{0My_X8*5B790zh^T!3_N9X*Bz@msbe^Sl)Q-U;bntJB^ znZP-JR?YcykI>3Fe_qacb%0-fJV)$1+@H!LUB5p<3}MpJc}YY)GXF38V!ZSJs+#}T z)cn6rMYAyfZ$38vZ>jlzn?gUv{QvW@`F}^we_YAO4YvgLx0?KS)wY%Mo|yb|X!9q$ z0h~Z4j9trYo>~Os!wKWV3B$vA9DwoRgz@2o@!^Ew;XDh#_;6w$%6S36UX=3^a2bFl z;)EsQybjz1ZUMJ}KY=>{%n>Kd66amu9*hNiMOqmPwwlUVFhawULtR*NKrEb9)`F`P zot%xmlSp-%)D=ag=I}BVu<-J3@BAipuWU_u%}tqpiC`2<&(DD*jZ-H{UGd@zFmdq- z{-hUVQbW!@;qh_dD9juP$RxTfg3@H0i=d1eF%9QJ-;|{k5mkrBK$GY4$_W+y z9Iq=wz~*OJ$?IPCd$s&EA%o4{)0zWL}n}e>Z;?r1h zbQ~AM5?}>++Cb~4vUT~htxmO`#}4F#F5KxCP_7zO>oa6ullpwdlS66=2L5XsFlMoN zOv^rl?f(Sr`Ha_2kjAqPu5SG=l?4`R(zr%r)uW_&xC>sNik36{orAK7YCw7O&@K&W zs(90gZfxfXIzNs#jp_J2EV-M|?8f*WouF+>)j#Kn?q;$O!sFqw_AE=q+3jfgu^{o8 z4smo_8;k@kd>_@aCA;MAnk<=>$&v-0yH+RAS}i=*rYT?YtQIC$3Vw7lF?_1YGjA-l)Vwi&iG0#g1-CWCGi~~d3I&d- zAE?Fx9$k6BWAT96qsZk&#dc%1jli#Amm=a^zHm(J1Fxp4tgpw-Bcq`jMC*l=>A9 zt*8BpvIz^+JzkM?7H@-Bb%@dj(~4TjM=F@GA9P#H(xAt#Q3d(-y(rL0#~^g6I90G-NAI3p85* z17U%nji!5xaE5T9XgD!;rD2b?w(Bd3{swhfMAx?R=zs?QhSI*lG+XS`XdxO7le?Cv zZv}4shKI4Gbo3iuq0BPD)7u%3t_kKd9chYHn#PNfX1VO_GT;6mX-uCWO^HhLnMkvO zN*2RGv67B1<`pV^_kSf7-|$eA>U-%q5iSVx7Vul;t4DBY^T&t~yBLr7dHut44NX~s zCRs~MmS8@vqXSF$6KsR{K3BY37-v4G!oz$p`ayA4-xB)}5xB>QFL|+zl(+zz?L_?uEUVF$%^SWZgpLrC{d7A7dn zrPr2YQ|u@$U(OqrI`T-pUsClx7Ldw(aYYA-RgDN+hYuGcrBu7t;i zczp8nO}GIU1l8vw=t*yX2NwsYFTVq0Gi~|~m9+>JR~BDy!Ktb8JV>X;-}A&U4BJQh zte9HvLa7a*-V$^(@(!}m!tZ&NXz9LIM^Mn7(Xct>m$rf&bmeiRN}lc zu^}~I4MU~;YBXmgxmKei`{22fGzvYgq@JqBqSORMp~QVXRrDB|vl=}ROPd9QI6Ai) z4HZuzYtT>$^u!vxOQb$)P`f00QAC!eIS5KihpZeAys_dQ>7D*!g%VVj&aMHcaumE4 z)a6B))#%Ar)QOK!SD@6jpsq;c1$8Aq^+-hx*QhkKnK&2Z>OF=Bz`Kn!-(*sKF8mszukC3(*bD3f_5%liL%=VYw~ou>WBBjd495&lyb7AdZOfP27w-~sTEHvY)#$HRRZ6b!(18U)vAkQ)dG zV9o_aQq)HNinxv!)Cg!ovo`YRr03B_ZmYO#3KKl9p`Znk!R8c&32oBNA8FGJB{H z7J~xb^`v{7AS?!puMn5wL0Li!Rl%`uxR>xp3C4qZD829#bZWL(QzpU7xA!M>DJ(U@ zMTekaJX55R7k>0y03EEDdS(W{k^EH)D2$Cti82-M%wym%k-xLN`Ie6a0 zpJ1Sx+i+IqEk*D)_1K0tQ|X0msMIw2U>j`X>9leik1PLLE!&iGdLcC_<*o+VQj2xd~h?T|P`uWtwI_v!QPD9{J=lc4)hETGEbUR=ZuM9!jm zJ20<5rnx(m>T;>|ZS zN4#0=U;L=oOX!+-y_7Dp%=^(Af+tQ3juR&^ij*%Nw!v)NU{6 zHc-x9UX%SmpX>$sMq0NQ*TgoF3jz?%x#}X=LY?*@Lutc>#M6zP=#6dkiFmbLNXjbs zKps?tr`9_uXg^QVcZtUJh{#U+VaV?m!rw!)hsJ{jhTH7@SQhT1?IPGuclPu6!~+4n z0<%&WL8bk@a!_0`jiwFCS zGA_}MpCJPOq(6U#47y9nzo2tC^$>xRUJ^k#KKKu>c^sV)zba7BVFWd)p$Hn_Q~vx3 zdjBvE>~^80A_||}J&c|E0;+rjzg|>-foJ#;h}$VN`3SG?6vy^5zGN609_Cq2UGxR0u6vJKyLsI8jJ=Eo`O~6ao;NP8rJa|R*|bw z%X2j6R|u{1boy7+@`CS-v&|eD^gGo!%Acxx4jG;YE&#uSk?(tE;Z7{m%D^WGix;6rg{-RFDFp&SE zVaKqF6-KGsdPA`dHqraXc-?9bQ6&=?{N-ctBhHPBlDwN78f=wG?s}3K;_hTaCwyc| zh6_*WspnV(54KZ}j9djr-3!3meUCBzTxsRZL-nK3?bQwE86KoD61F0qn5`R|nJbp6Un>oZG1A zVN;K4o#J)1x*)1YLrN5_lSD2Rs9`2RZ`qVFh=hU(cZEJ!H{adW!xm zJ@^d*t0z@D%j>#&fb3ZS-ykraro2=520^+cf5t=JpQfBeO$Vr&W~iEGsspU>nFJ4{ zXi>L8o~jO(Ri*W!jP;AN+-^s^rL0zyL(DMMpbq!l|7FkJQ}1BuEAp| z{XE)5x{=J^dq`iUN#}Xx_=!j_w+uXcz`pAdsOxLA`#d`5b-HvOP4Wf>Ux3*?iCSI2 z)x0-pxCkcGoC^?^Z;8vDwaisab_)HSm$sUMCnMjtsMhbu_fuKK0iJw6qh7!BW>tmx z;5G&$awR{9ygnD@aEotr;nIi4&RJ>XuEVSO6peGmRQ)0hR$PZJ1p^}ZA_}xn+=i}D zKKN^qH1L#MxGs*JiLEAY^bi_<5q8@marh>&|2O^wf#=keNtmyD)`PEf!25fV>~54#|+tPGOt{FA>+%Dg*^f_n4<-@6m%Z_&9EGF%7?jfxldM zOlrbL*>DM}p@c49;tk!)!PDpnt8h069oA2nY%c#)zv>1VV z#Utq^Al)iDdl_ndjoO_|yuuxkYej)Y%fhzx9l#4-M=h^_aJ@QgG~o&?gAFw43U65^ zQhqVflI=TYf^;6olUzFn|45gwz|pgjVy;3bZlW$%p+q;+sH;4=!4{F3Jn5Dq{Ir2L zk+D1v7S@o62TRXKwiU~5_}D#9=&>EI)%n!N33f=n!mH0X(yMP~`W*woJ4H&_aVmG5 zu=9_BlxtX}?xvyFcuevh5Q-s>41C9?g7^9(#!FOQ^*bU*Ac1%VpvauZ}85} zqk_&XhLGhTZM?y|!jT+#lef36^B$|Bp*OLbI!>?MMAM$2uW#a5>`6L&6E@^2x^oj< zzYjcoL+0KWXxlUXZ{mtS85evOU!uom(m7vd);r2DgrfAA>%qUN{lDwCFvWhjg(d$5 zwdIEh2fSqWZee|Jk>YNn{Vq{M5nQGow=s+-(1_cp*A;sIHp+BW+^LDvP9WE7^z&_A z(&UE7RW9KeOAdjjW4HXusrOG$%@;Oh@J%0)*CUUwA_d=~t$*MQ+im*$59|&6A!%Zi zPrc@!d~VUFkT9PC^MKER`M{UJ0$?HVHLwWy23QO%0hR&9z;fVQpv3dM0^v&FJK%dj z{9XmD0oDTRfb{_E%HSV?jV4pQ;7xeg3~T|m0^5M?zz$$1up8I|>;?7#`+);A%v=TuQki*`|5t5peuLdwv5K2JGnTQ!X)$l$SSRk% z%?&UqtX2g0TQ*j6{h%YMRSmbTGK!(QEo*3^)jS-ZKfPl$H-&9o*D&{vUx9aSw`CQA za5rm%AOe&KO1UlT=xf6qo3uL>Up}%N4Anm}Tb3CmA@vzEhla3~#_D3remx|brbn2g zXWGn_F}14L%=J?Q&oIT)t$2njo)K7lPK%WxF{hMhmqrP#HGzXQ-L=5SO=g zT=b;F99P$l)ONRqieO}DVF;YE8E_>fD%AR$s(<4E9;I~rWmL3qOn9=Wye(c-UXMgV z-K{0kA*Z=!5#EFZxwUEtg59|Spd_CI{wg(XsF7vp+pm* z#A1ZuFWt97fNBgyfC-UwR(I{vP$;7zwQ zb2KFfnImGp4z=}Glq~`%7wRGSC?F;TN9T+PGCvXdZK!RcqH7sIS4``J%(bHytH!~f zTlG#UZFPtqViTh@nu>zW;Zz_0i`^P(+o(ue2as+Csoh6fBl19~?TDgk6F{|(HU*pO zL;c+kHrHgwsCtMwCh|no+WRP~c77_|EUD5lJ!z+)3JSGP zR#eXfP&qM)ae!M;bqF(e#U{b*FmtRCi%xW7NYW2ss6hEp`zn>ReL&K(#N6hD*iK@U z<`8rD9U%E5gLR#oMy9- zh8+Sjs7LGE=BOBC@c#^GCeQ+4iUVdcV0Hx=1=>J0{i85*ym+!8H`HUkNSYI;r;9Kj z0s2Qrl-XN+w;(q(!u^oc?3~^w%B(DkoV3{v0L=!v{m}G0F=oZ-&qbN7fqR*i#hA@d zmEA;A76Tl1JT1mN0a&xdhyw#}BT!CEm~G|sdU0kk;0?yp#F-7)4}sjz@^<=Jab|nq zU<$7Uvl{TuR}%^5G+<3MTY@oRNi(syBPxwh!40 z4)(llKeJeo)UX|77CRmWm#JNc*?TzC(w2`L)!p9iJ7%$s$r*_R-v>)=D~dI2M^UOM zWpGaJpuuR%<8Ip_Mf4;x30j8jG|1=W4lrzImq$EPmsR>vv|?^yQNf^**?ETTCy_8W zAH;q}@dI-53v-Lc8n$1UWzfv#UFy$VIKD>GuTINc+hrsikUMaoVY`Bc?>{Q9a1^p% zoB7xH@#SyWeiuppK(A&G%N>+&*#2_ceo&m;L_SfTVf$z1JH;gvZU4G$cVv`iFbe^k$57A=-^NI}34(>z;~H0nUm%z83= z*r*&sOPaajg|y-{l;6J~|H+(@McoSwtrSLPm(Cq}c4*hBwV{<^mI!b&EN4(o{(!>% zgLCqbuN<1GFt4Bh{jXKP*c&u5cff$`qU@~UBMXLur%JLx`=gQ>sATSd(S}w9S@JO6 z3sB)|C_xVAe6+LHr-m3{qWm#~M~V8@5>vyZXlQkqB}xsymIe7m1*1lGKm($Tdf*zB zYdxkY2Xjqp;MQVQGc-bTft*NcXib(cdGR1GZjSC7mOVBHZ(546Fg8CsFSoy;wZ`BD zk<7u_!*jZi9geEC0W$+Iw+aVm4=4cN?Nl3f$nKXjEHeiMwMV%Fb906b012e;s3<%n z-gJ_0I;#m0_NHqw+G8MCGPF#Tjsn$>9xA1z{g8})R8>kuXH_?}p3LGy&cQZEgyKyhpSZk0PI zw+Jam%=EmHRIX5v956ugjF+R_S~JyKqs5FHCR*3f#xC#t%6_Z&Y49cnV4KdJ3~l_( z%F`3#C%CnzRQgF^!|dIGhW6a@zSE~!o4$xqmNh8HtxdLw*{Z#aPRlM7V<>y%$n3F( z_6kbLF-OYO;0$V)mpuqwIDKZ7SuvGg!w_lLv3Z-;hBgbW2?3rna(Kb8?4sO)d_#Lf zj7f8#7}}dNN6ab_`<7dKK{53X$mix24i*Du&hmF>J#B3|9~ts;3I_`&4DEepiB^NS zi|ny31;fS;Du8IxK6GpI6p;lWG8`=qU7{^q{@9zFt<^sbj{P=)*yf}rPqub09uQCa--6E%G zbWTowsL%d&YyZgXI&_0uO5uJgjiK}9^FFQ0nKpC(=cy@nx2^=b4#nUJPdLWVUCTX- zFW3i1L7?;(B3+M0Q|4tCVFqOl!A#dsY9Q%Q0k)wzV+#!(vfmJbEoT76yq*No zW`pGBG#}X?2~ym8q+$>X!8$w_sY)&Hy?TP9Pg(RwQNb{w>Gbj-*iR@Ay&|4kHP38o z=;?^h?AoJwx7LPU8E?CE=#gpYRl$iWqD28XukO~%DDpMYLH!EG3?EhidbO9=-%{6F z+yF(6%SC+}p>f3g&W7U7%FoU>^d_J_AZM6-Zib#JM8AXG78s^&vPTsb=4R)&Z-tUu zp@Qi2!r?H<4E-Ve$`NW#3=+L9Y_rjZ{xDb?UH~%ya~dQ%fU+ENg~f*62@NS`(ZFH3 zIWR!O1`rFg+TU093g7<}q-m(wi@Op)4tZ z1{iv8w_aa0#SP`1s z*_#S2G_L|cx)Q`Yc;(Qds^%0aydFJKFeHS{O-rhixX#83htr~70q4r}72j>n1mmlMKjFR~JC*r;N z{OQaNJIXWweXS@L_J*NDwy`urUj~kc74$ds6>fciYPMCF&PCZ{Au6-bCDPi{*DU{J z$6;&MdgLz{IRKho--zOK3r9U^=wG0>atntQBmU^Sc4Dcx`Tw(=@V8P+L1(jJNA%Pe1YT5tKfXZi}u&dSSdr~J0Vp`>Sm zNvF~IO01>(Tf|k)GO{xLwsTY~oz+XQ-SXSchjQEw=2-CGIqDa)@C=$YnBm6)1LKf&xDdbA541l z!KCl{wUJV#%Npb_ma!;;BegIzD4W3gxl zp^SB)Au!uwu}1>afCa#h7K>3H7y&E-Zdxpk$AD*n&www1BfuXPi?b9^8)ygg1SSJ( zEf$v(z_SZ!-Hia0;l6FLcse8A^E4iwvsk>1R=-%2{q~AuuElAwf7bzqg{P=?>u8x7#MJ%RsMSx$FK_Zet~bF9+>ixsKc)0Qo$ zYzOLlg(Xq5w#>n`j?~A-6R7f+%*DFAaU4UUFLn8nm1YAdZVIo!wXT%1l_ke_7bW>w z%qq)qko79Ep!o=O--^_aQm3zw_XKs>%1Y4U`pivBwz5>#llE_A&#+!1Iyw4rLB!_; zzpE^_X4^hN{@&zE;Hfm{E0o`dMl5GZS{zPuYAo)Qu=n*iw&h_Gk6JldpoPlhEeiPmZtSao;;edgZUp?W$lXgtC;SKinpOL z5s@#e5rt~_t;a;Wr~B-(P8S{(*$`WKm9={VTfA-i-CYYTv+;5`o!P~r>G2(?<_H?J z19cfG$k&e%vOAP~vFfQJI0?LqJwH5S248oURb%%WHJu*U3l+PQ}%`=^Ds z!M{I)7ZMGSLUDUpG!%U0y&(P;ZTXZZ7}`6s^`mJ9<9` zZ-&DWV#;eH&9DgJlfY>DVn1sM$A?9Gnd}Ex)kp{mjQ~t)?JeLP>U@C3N9+dQew$FV zVwCKm<_B3_uI;7lZ&@PO_Q~3DZ9iQ+z*6h)M!r43USJ=v-@Y@j+hNcE&ibt$OUl2oUd zRBJ1$brjXQg5@Mu&m>---ujlMmZ$}K5OsPTpe|4ks84&pW$`5*mc(Y6#5&+ty3axT zIZtr=oB>Iqccj#okVK6RVTyF3wudl+I@9p;JeGWQn66t(gRL$!;}C1ex>A!PEP-{S zo<~?UmPzs7u_S*t&<#zb-ALV?)*itCAMzb@vL00OFpJiCDZGDFP)Sn4Wj}sDM!UXa zRUxZJe2+qViInlIHyv1x%uf(^aJ`TCQG%X1%o6k`1phkCIm%L47Hv4p9@G1(SBb}1 zJFhPwahrj1KSi>?AX!4pRy~K7e$Qg!28tX)RSIcpWg7X+Kmz1`|hJ|5!D+PUa!bt z-#!)o+GGc*$J3c(P!h$^I}bxRwLcC?Gl{Z4VSXw;4zcwttve2Go}*I;l3tKRFno?@ ztYR}!ujnBC7b*D!y5l8kbOPxoQ(qChOnu%)3(h-%I!>WQCqVoas$P<(YGqLNt8`Vo znJ$!RTEYy__Bq#Bu7hm2&eUI{_9xk^kXJ{cb0M#U4B|SG_b-+}8K+pW<6#VR$Q6v= zPfxML;%<0^SkZd`n5#NW10AYg?*;S*`T$P=SwLT)AJ8Aj0R{q)L3%C#Iiy1l>5xM* zge=k_i*(2#9dbyA9DJlGx(8_pllVq4HgYLNv2rf;R)r&&7tik804W4OMJ zd}mlJ`JHI=eip3;y*crr@1)ApzoDgPpl^24 zVG-=2f6jpVZYqD4)nUL{kGM#cm<1()_-~+@mh-9&EvR!f&Tpw)&80K-e6_R=ocSIxE>t%Z6T&hP}+IS zuxaOE+H^S&v1VF`ia)WGMXR7af29NGAzUugujg4J`;CmBSaQoNl6;)7qHGDuiV}Uh z$|9^N{c0$dW5fs>%NvTlCS!dx@hXpxEQ{pVL&uYV3M#KVH{rLikn?9&iZQDEGb@?KB@tNP zC>5i97ZO;-tEg(SZ@;1ZpV@kNNc#QEw!kvBJLt+q$SbFmSLN+4ncWe{-W@62@|Cb# z1EYEmb^L|Jm-C1S5Z@Pd7~J}8C{eT-x+qj*dj!4m3wznI1p;F$@D;^gVpXdjz~e#S zTi_7z9dH;p3LFED11Er!z-izNjlRU%Yro_1588f-mF{sF3oKYEc33HP4!}yWL;lzu zfD>>5ZomUXKvKa4sB9wlXQrh31$C>3DkvWhhLXL3SoWmSFC5;&hBV?=Rw7QU9)qID zl=n#4nCAS7RZJ5aF^84XEwB~rP3h#XFhp1UiXnb=K8w&T-{Ea@Dsvf2u@3o|GkONf0o=$TcPJDt+)ff-_NPy6Tb z#CW?jjsnZ95M!N$-ZE`|nCkY<^w|;~&+T1k?r-n`cBQkwvE-O8C?Gh9#L5G*%-)Tn zuRthf28CP%`L961{<{UE1G>@SxAzc?g|8xy(A*Lb2=+&)vlb>o?T^yoD-fZNQOs3{ z(4N%tDlGb5RGM}^lQJ_pdd*HDEV`sx}hlOau~@cc#hNu}W8)INxcZ$my+yN;^< ze2w`kKOjScrk6eU{zh0yr?#;;uYHJ!2+GiRuS4(WTxXGNtq`$jq+wL4KI)ma8-}7i zkGwZnxeRH3h4Xm7Qr27E?Fpa8YRhM^LP`Y3#t6ZH5A$`OT#B+= z={}FS6t$0}O*gQVE2I-QFx`vjCVtsR$qW%e>1cmaz7W#GucTuMHir8A&XUWH4T~{_ zqtBe^=qhQ=`68+MM5uF!NBdK>8M)v*fxIj0wLcSsH>P6*3mio<{~MFA6O+8>bFqRPRMeCHM-o)g(jX?Kiv{lONbyeM7?LFKnjQ!*+x z#QIB8@|Cp<$CR`gq}j-@zbXvB_Z?W=*c$*1 zY1v<_eD#O$h-Id|9RPFCj-{p@CZW9(0GEy(%T0S%GlYF;&m`yHtaLogKs(GpJIp|P zHqZ|k0OZg^f3r3ktU3EwdJQRC!{D>ScC)_-yaZsiX@41*0=x<_i2V;G26F-g`E8dnD`QyMeq)_FRo2$n z2GCT(dhFes%-ecSSf;D8twjT(Sujw8mWzF^NTqZ*bW|ObIWH{Vb-H>Jvv_`(xG0At z?@_~BtW>G@MM~M3wr^2@^aaXZVjR+vt+M?|#kW{>_BSoPg(bs>bl?{2*6~f$|1IEM z0De3BTwoqBA9xRVANUaMgIyujKK71EP3TQf^b(XAYM*7Yeb`ER2hGG*QIj}GwKM-P zBYw5uO-{gostkxMb{isV4aMDNjUW$t+=j4PFJw+Rwt+sn&B|2X_(0bCrB%?1vu~om zkdt=aW|36o4zrgJnR@=9FxdP6!IczQpT$N*+J$`{5>&%(Kv1>2!=k|0;ychvTj`rS zsMuH3X&o<1+Yu9GyI(BD(xp3M(Yb*8xqZ9vC?&8R^zy$f@$qjY^|lx{V)fNPOZUac zV-TEUc#O2~lx)R|$rv!^U`NP_gVyDOq2)eH}a z6A;}W7Hf*GfbE6Y12Q%`B)SgL!n=@-7+jzkqbxi7p)eX-RSC+*k^&24zI#1_m!r#f zVb}$XwxA^YJ}k2-$-)HC5#icOini}Ss*orXmfdmT=qSzYCtlyf)7i<_Z}Re=Ff7O(CRZvhhwG|s4nsQnyGVSH%GB^c++fR(^1U^TD?SPQHNHc$lTZGD<{aLQwF5PH+;07&b8A?$&c3vw`(Ko1$blqXf@sV0<&7Db~B{y3aT2MnIXN~?isl%;F6 z!F(A9|EbRnjHy3>KY_o1zkyr8KfoQ}U*IlwQY>Z&we9s>finqNxi#a?#0shL$YW^(wfJv_$qsH|Np+2Z9jS7DYo+Bdj_M_em&FfhT7;S~ zOOhZNU7j9`;8mlt#jEh?T9J;$@&s%Kl}zQW%J#oMI$caRzlO#;o}r7KM!!~-l6|~F z?dsC}(P|>l{95gx6{MzRa5Z5JkW5ULOw^@uKHe28lW9$G4&j0ib0SAZt2t4hVj_7y z8zh!(rLp0(FcQs~OU=`HGB<|MjFR{{jHXxTF)omLOSx<0Lo;^j5iokn~5DT>!D?uo}aHhFpvuj0pM;l;A%7qFj<-fCJUUIa>GG;2D}x63w5?Ya4OCDux{Y*uAzB; z9vd@JFe?UM*fQ6cM0@{eG0q4FqJQhA@u}|xRXVQ2jM70ZbEx{9OzAE0B>AQ)7;CGhnn3jhz z^?sHyDTO+k7Fv_nYY)=XMLM-S)gDoVga%T!c}SXD=byDy7Z} zPo;dFYd@C#! zgaO(hOkcho7TH&^5*GW8hz%bj{b+v{iz#8q<&D{{n6RQ&7Rp>UwVDPWi3Dm)U^SJ2EDOXNH35nwLG>IiB^FqOmRX2|5oXFKMM_8( zYJP_M2~ML*S~2GL1gaR%+mx7zM|l1Xc>awyfH#5J^n5&TSaBgF08Ys%b?NA))TPl7 zPPKG-Ky!W>ra8AN&H0tmoZFP< z{90+wy-IWL3)7tYMR_(fsBpI3ulukgZyZpX^Ps6Yzg3#^kkXuo1G)c~=KNl2P6vFk zYzc@R2`Nt+u>$RU<^x!}#xbQpk1GXwLN-k+sXxLM=qaT@Pb&p_=KfU8J?HL!B^9Wz zh8ib7h*&ie?op$V)Ay^8%uA(({v~8_=pdQg}wx1@S7pn@p|xv(&2e zdkT;B{{QIEUu2R0Q-@xX(MpF-R66uBHK@%?rUV^z#&05x&nM>!CdP3z{}rWYuPQxz z&D68km7e|m|DtFAka{-$-Wenm#$U1!Q`MF(#XD*nFf%q%UMXI_9X90+ETxS709@V% zT;2v;-UeLW#$n)l;0SOOI0j&yWni6UV2x#*2C&95&H+Er$x^&@JNUef-+(K?Rp1(M z9e`WhfZ1&Pg^7qms%j!S=fQ!2y?^6;dZYu=0TWRi$iqZ*IH+rBp5lSPzJCUGn9Lm+ z4wr}s?^|;U1~!zio>KcY4ma&D&12#{B16C#9nyggFWoK8W9vl7g3L+l2xdmlV1FFl z(@9JoC}nMmsg&1&NjMW>soEV_$YXv|YEx_;I{frP8UA>wX!#B~wf~s2=oLo^`u7!> zxsDjI#nuSx$3A6Y@x{@Yvb;3)F3Y{Nuq^k$@3Fcp?AAm&f#^q*C7WuQV9Ix> z0Z)+avVp=M6c{MEyoe2NyJ^(19FLE#Al^%LBm9f3CX!YZ%++f&6_1q=dyi8$XiPfN zWkxxQ<@utTFzigHt|NnfE62K0@6JXt(5eqEX&306kF`{06+YnRY zhtePc<`hN+{>O@K1{IXY`m#DrFVEu}){t3)il!A3*9=d5f0G3rR*qVNKnZOMa@0}B zxaR)IoZL~DW~||fI(H+YUQjanN_p|Sz922+vQov^1n~u(TaE@atpYDo2GbGM^s8zH zJ>`x@k}D-YXVUi-u&i(LMn%}yO{ok5PqTaCyH`Yf3wov^AKJR5B#0pgOZy%f`FcP` z2F^%;Llh94Kj`*DHhHYk7e!lY@l?N*xsHcqnm}u2RpRBM+K5--BZP$8Esi_d($Y%2 zbVfVLL!{(kw%J2|4OWgAkYT!myen-Ik(r{+lhSZ@&e1(sQm1sjl1;1(4dr-5zKl|9hsqgzsfHCbM8@$9-o7{) zk7a@KKn0*8Pzgu}GR&|t!m2Hu{CEJqymfd)WBpb^jnXbLm~S^zD9 zRsekFjy6DBoGx&*!$W(Z11+x1W2d(W*SPtlWrEzIN>c)zd;S1{WU6&F-xS zN6E^nJQC;qFkDmL=)rCDOI7|*mC=HrY0Ta;ZiBi#Oe&8N%DoJZ2ST@}c^%_KUegdO zPfM%u%ATj>D>Z6AqD$3yTkPZr?b4peFnJ2q8ZTa1#lQ{hvnXL9R;rF- zpfyz7wH9y3J`z2g z9=$+PhHVh)*N^FJLom5e*+-(w@9is8=M&YB55}o}TqK-)wQJ8pH(>$czyiWS02UFB z*}z-C+rYcP9AGXm4|orFpEB$4lIYeIR9uIbh}a1J)X9F)t()lmI=p)+xtI_mPi@I* zYvddX8-1H8zAjJgwGjk20bc-{Av17QM_EhUu4D%L3Pg9yA~u@V(jL(ua)5Fn<;}Cx zSfH+ANpk25MYxwRcHN*l!U2YJK`$O0nEu4RH{75B#;pMpFJpELk zH>8dAc@&NRg_q!tpHa{9bgM4+2P%0ntdhHBCD||3I1?u%d=0rxza*j!TDpuS#fApz zuQHQrhP~9WA+H}Ljd-(V_Wno9_*@~8bXAShYi4WQP@d&ljd*GwSkaCjfFFVLz)!%> zz(wE};1cjF0Q1@b)7k;k+HnKTglk)>nQ**U?w8tdUesxk%_J^%pqZSEmNeq!b$Rke zr_Qxli3Dg@C+4w|IGxgiHFWCaZp`}^+eO?1<27vC!ikxr7Hj5CqV_#X3%Dhv|4%q4 zf&#~h2^-J=<}lTcB1hOTg*tNz%O0l}K;^dM!lb^<0p zU2Tk0YPRF73_aCEb}(F-6+OzRS8KxEw5U54IPx~*WibzGi6DV`HRI)Atxs%*@-g>< zQ)Vx%ZU!f7vaov+xidu#0B0Iyy$Kqr2P%#1Yj zH?GU6{szxl<>4a_Ltch$FsY?sUCSiE0t2!cGI)Tuoe*EMFm4!JnBJxsNM>M;1P zlev>S2hkVpd26`QeI2pf%cZmqyj(S`a?n~*Gnw0i!uVDWMrSS}LrW(yw};Zij=UsM z2doeCM4!O0cIJzN;L&ud1Fy~s6!qbfIt)M7mM8g#KR{=spi>1WZE#jRfp&HTucOpa z(#atBBo0?6i=&?jawv?Z-j^U*onxqXCtgyXa}HM z$-Cs~%sb&Ubnng>HP4$}@}kPGM$O{R{PE&`XnMH!ojJfjU=RQ+%LyyX2`fv6u(X`8 zvYfE8oCN?ZE$0X`9Eq?97zI2Dj0VO4#lQsMS>QR~dEiA06E|AJyEw*z%gbns*T9&% zgC>UGEY-)ahxPFr;eAZ1kKa_iFkAJpauENIJ{A_+y?y+4SRcO|=;JwIeLPoDpQrkG zzUpIPo!v|4J=Mn_g!S=gZz~4i4w{U`$;d6n%U| zcCIVvQ*j(#uN(6W1 z!ZwR4fYvFR&=q3#41L%YTInnu=*lb62VG&pc)IaK{|^ro6;BPj!Ey7Wj1bFlY3$Vp zsq-|a8;<-;=!R9n1@T-1N1+dNgKoMgHsq6%6Orf_Vig=%27potf%7LZYKwDtxf@FV)<391!yF2%>KPj&} zj{Xem&eKGF1slPE|L>1@b5j-~NTGVcV*t+E;5-|!Frd$TyeS}Xb{vHGL2moKJ6TVg_e63FSTAinWGr(Ek8~`iP z`6F;1xB$RPbizt>!b)_)N_4_Xbizt>UIAb!I$Jsi`H?a)18Yvwc%@c%s|9Fe!}1t z8PN%9#i_0#)`wrr93ZYL^x0#)vhbdTy74Z|eOFbw{1}gee@~t>a@C;Dxja?0bFJWg zD!Yc`Jg(X_q9?Cku8t@}I41mh1#>udN;g-|Sm?>Mo~s`1?}_19AJR|WN=n56iK@Mz zj~mj%y?9kzp&i$YCuP795XOz@^TvX@9G_uRHwzI>Kq`^`?ZT4FyPAqb(sB)B!8C(| zEVQ7KkAsDlH25i2j=Ne3n@ipfvumG$UTd26IQB55Z%)_(51x)eqBep?iiYEVuD0~g zZj zQPayKwnPa;JBO10j|C^}b5|FUDsV4M7A>#z1}%9c=^D^5E&K4A(cL6jAxoqjJAnk5 zboF;!d(FdRcUsg3UDSi-KEZ2n%}KY!&qqO_0yTaD#&=Jd)+N&Rl0|o-rG0P$ zHrWCT&Lz3}%YuD<(TM}Z)!n2tQE-kd7_A+UnZdmt*FY-h3zKKC%=Z)WMGMPL9e$Ga zJ&pXh85f63U0v~ro4nb)BOHBGvr*4{T9}R8!_`qvUq5a%8=)#0Dl4dITq7lAujpO_?$@iBbpZWBL9s?T&G}#bjQFAu4K*ejk@pF%vnS04boNK1j;1F4v0rh$ zAI=E$rLp~a9X5`Z^oQ7cN?uqlCz|!?`xy7b%)LBjJCtGM+jOfHv!ZS}Uiu zOPx2`e3IN&MZY2X=PJTMV>4tO3AhAuwNqKqJ;mBk^BtJx#bQ*WZD)K?9J zRG%%qAzDQ|z9r;tS@yQDic+}iUAaW0CAr)N|KQ48jD&f@9*s|S%?F8l66=XA;M_FXZtumBEj64*EP| zfa{RA%IpxgiK-#;BRSqC%K_h;mMwl!y?*HsiC})XQ6oI zi;%S2(a@nVp+2F>B3MKVMDQtX8w#`JGrBR9m-7qGL#9VNl)qTWWpyAlt_OZgli573 zrOD%3wxyIcjA!`8`SgJ6MX9Ex;=ZT49aB@#S|*q=^UB>Db!Sa}lmfrq;%2_p&)+p| zO1eA@GjTa-dFZVbl%B^+ku47vWL6%Jwyy#)d{KeM_?WubKuUh;YYoNz# zSw4Js#)mIyxbaK3`t^>P@w&~gcSfN3^{xnzB@=<&ulGQJq4y{PAKvy9AznY88L!3b z;vjzmO_+xM&^c|_Cc%qZHS2xE7*P9ct1NNCVsnX#1^eaBUcA|CdfSHc8Od*A9?S;b z0^SC&xNyw@u&{8=r(?r;O~(g#TnsFsm=U~c^-XwO1HdUOK4_$7PwY^O3-iYk4cCmS-g6`@%@Df$BvistI{PFJSMD0godb@AqOJc56481d9Ai>%N9zS*Tip7Idbf&= z3b%+|as{I{c68_sG^2qY7u(jW^ik53GM}k_A?Eo>$}5DWaf&7v@`{O5&@aM)XSpMK z#~ao=r)f_iRxxMjW+C=x&r(7Wd}l+bei8ghLnyn5XRse=Y7tJ`j;3FVcv6b!VsW(w z&2tj933lDTeevce+W4#xJQwIB!c^DK_t#f6S+qU|6-6y+;wbK~e^I27qnGEY;o(EY zlvl+i);{-$sgO>(M0-Y|hQHFqQM_cS%Yur$WoaJW_Uli{wVf~oGQipu%6O7j7;*{e zf;`{F;X>EdQ2C2g`D%$KN9VOr<_9s z8t%zIsq<*mR|TId)P0)o4@I=(Y#TyxFK6v zWcd$iqXzRoA#MX>Z@lOSdA&DUpCAUG9CN{IU@o}|lRL$J{aIOkRTC>(@lb~77jdk$ zr!`vlKZop@J#EqY3-Un&S(^3?Pp;&;Bg$3V&0@i6y@9(Bf%OFDK(GZTlY1;r^18$l zF3_q&-WU%7X`xDEv50Ixp1W~5b?R8&FhaV>eK8m)4YX+8Lr2E)l-QS1G~}7Mp)H0x z)Xbadk!~w_#_^u_H0rCeQQe`T?6%Qk<1yl=(uDDt4O8jU@#v1Fa>REFO9rZ_OB{-g z)~AaGvy~JRDlRmk+*s5gN&Nju!fvj(?KI&j-T~+1_B_Sw3n{EY*tjvBkugxESr61@ z4bnJ78Z}pHiZ1Yp_Lm&U@*)&VXajr;DZoVNCBBN}*C{x-R3k&+&!m^0=H2^*>M8py zI7@Cbl#GQzpjXV%BVGE@x@h$O96fHReY4{+dZ_+0Jf+^7NGwOmTk-*2_l|tfqxCuR z!5*#8lMhC;{+@jBA#SP|N-4}spFhJB&HVypH^@Pg?197xaHp#=6B#yUqEzR;pgQ-3 z@XjqCXnh#rA-VAH*QhZLNCatqNE`8~0k0dq6ZURt2aY3|vC>Z$2|v6W10yWDStoqA z!5vStim~`e2pJ63u@ZGBillNE<9|7%5}~r?U3Pa8*(UI+Ny*4^k1R|IrbwaA6W}yT zr6(ugkX>3B8i8T_t&F*JUuS%VS>o3h z<9~HpyG*dDYtiiIcv9us4`dM%IQ()=*2yhfQ1{?=Y0;hn} z0Q^)g_^Dj*QOWl|A-q6SUgU|juiz2xDHmK)u4}+`04^!l?*QCVF1V#!f0^Om2>$_Y z)A1L19msloRLl){051>$_<%?t3J~u~05R0?CEliNIXqSbu;O!L#V5lQgjn^ts{qx2 z>a^e`o?5X1%sG6OQkiqEMQRJx=|+=wLaV9Iu!(WfnU>7Lo?aKxl=q$q#)(8{qpspT zq67t6mMxQc4DPL9sg(+M2fj%X zi+d}+m+|sZI)g8i;L>`Nm-!QLc)a^E_L_Rp4g}_H6)C;659sd8@S4f*o>g@A7A0b@ zcb}D-zl!bAK9n^D8$wS6Ukh8$a>uWKNxoNjbZizP{CpFJUC2;eV0oU#Ou_kqukL%@ ziq_(F&9Co!4KvO?AW*=AXCM)qqfXNeM~T=X!%4~{+%c)ToyU}O4-RDfuOm&?1q|15 z-MMt?6|~O~af~tv=cE!}MKFx&A!w8r$S)45$gdNGZuYwK1Ch8@c;9JikSz$~YPjNR zgvr&&K*s;(N?5M$LW-OUkyAu>XCoLzS@=bDr{dIBUyKCWGaGwsV}$22fttO=wdk>e zrd-1avx02~iE%*=d|Ez!KSdMY;z=ImL}?`!wOUE4K8-hLU7D|7c$@yUdWxY}`W1~0+~({L}(yr0+< zv9Hn4*Fa(>u{qGYvnXv2RxmHV#(lK^Q@GOI_*U9${C%wx=4WS`Fq6+M9)riR0Gt|b zI5pgGYPiP(#lQq$67Vbl=Z5w3comomOao>BuK_cGS-|T6VgBP=wC4Qp zt>(W2&R+LtXaK)c7pEG80Qg)9fW@)_N%n(zDL@E-^d;i`|C0b%N)28|w=JWIld(lC zC;M_W*;lB^zEVy0Rcf-YroUdtWM88O`dT&6*U|Jhu#>W06zX%!qg}N34QQeb<{O+8 zjP{z>*%w%bg8#3G5!P?pM36);xw%Jt5X@QbYgr*vZYb3On`NK!fC$+Yyg*+ub-PF_ zB*}ly=pDh48_m8^b7!YHcXkCb{`cIGGkUk2(at@Aq^7jmE2S0NM@!$t$k|VO5u_dn zB>K-ud@ziWZxthlOhWc+VN8IxIck8dC$wqt8O=_MW|kZmb}elJs0lJVNT?W;{81n zSuAzUH|9kCRZZl}Y9jweYu~{{zIxw8zNRMfb!z`ECi3t1P2@k+ME+Av}L zC&k>i#4Jvr!a4i}?K8}=&*{%OyrK3L9=B1QxjeHNW`p|#0Mo$@)4>hX!40#)jqNQr zOb0i%w%jls+}Pf7Uj%*uu&w334EzSbhH%4%aKnah!+vnXesIHnaKnCZ!*+1r!mJJ+ zl)*V)c`(X=ap&=)HT-4tAJwe(V1p1n12f-r*ar_;dP=Ad;&^Zgdmb-UDpn-K8VmyR zCpk-G8_PR?YEvMU3g+=REVjh@-jkqC+j zA*wu$c#pS8sSv8j?}|PwlmPvT5G6b&>|0(z53Q$?`0!V`l=NVB4F-g8x_Ls`GpPC# zIE1pUDH=OmrF|$r28YNmTnFYD=^*katIxlA zI?{~=yl=c8-`tG`U?Y2CfLI_NNT2~9^U_)wJeH+bKIT=m8hETpn?L5cRDB_Ky`(W{ z_nFhBuT)x10(T^Fz9BSWvISFN8qjtLnS^|n25@MA_miiW>5GLJAN^_PLNxIJaYQ|_ zth#qB^ox+r%5V$i8z>t@7l+`ZDXRpxJJFzn%$MSDv)4Rlxxg|SF}YOm2?o*-dPM|7 z(szq+x3`GmKIK#3{KTgQ61iuL5S@wGJUjU*uU`?{LLO`jd9W?y z=?7qI$TI-I){ti)FbK#6hEUzlVAK`iaWnv1$uo`$KI8Eb6Ty_QzSn3pRh zji*4r-*>~2>BzHGza|B>D@2kBR+GER#!R?^kQaQ3aDm?gYih1LJJ ztm1rtbU}O8D7VVfOYk{?wZRHR=+<{ZeVzDZSpq(fvttSByn%jMf;w*$A1;fbGD~6D zej%QdqCLVs3wjdn;@FI5v!bOwzxEbhY!R0=F#x`#)P*=yx^F3_!&bVylvj=U@}Asl z6=Ppfjb#uj+vtg95HZ_n{4#K|gJv(|iPgUmb(2T#{K82gXc2Jm0Gcd4#5|;MK5uv3UhH(T>q?D|r2wBlqw& zQC0Q$edV1{<(&*G@3bf{DeA1Kc$nzXSJFQ4!Oqdel`!FcAm1v;fFB8G56ZFg)O{81 zQ~gBGAn0*HWEHLC*MELMpW#g)5>}LGPhlD>eUIgyM;KdvJ|D9ME9KzFqddRRtyR2j zBAnTngI(^4RWOrd}pYkZAI+<1u#A8?Q9$!|9P;t2hEy z4ri)Ht>dXt=<$2nLSIV0&v8%9s|%G|nr5xT!t%yC$W?3SX?A0Y?_Kkph}+4S9beROI)#84y|8(_|$%`x4QB4 z@nvOvT3CEJIw9iA({04#08RNXkgTFiRx&JEC3^A;I6S4z=PMN!kwNPa0rT#d$XG>Y zG~J*0XuY>8RoslhQ;it2Xo0j9MZhd>${v%-n*ukN*(*?;~IV@G-CuSOk1Z zo4(|2iod|)dSElK1^5!!YKB8Z<2i-PVIEmt-%hd3tc%?XP$r3!by9acg0tnzvdc_+pqi@-+;nLYw!V2O^lMEc*VjBj~H`SgmZ`4jmV@1II^3g|kGBcA#RT>DpObpTG$??-&}r z19E(v_)<)YeDf4-6mOo!p9J8g5}pycg&7ml9t$i}ka0XEeS>7h)Kml$soytn_dP3& zvGnNYBwJXqqT*l+heW*3Q^8Kmvlqy=6L#iHR8a(zsgrp5vWlA`lxCU7UzM37k=bu= zrbI7fooGUsiQcJUvG1CyBBU9-)54gd>^KQJuR~~mm$h=L{#mjf- zF23wcyLUrD&JnNT+>e0?ll8eGwshLOFcvX_?@@LrdOo!f->G|#^7o+V_wk1tQ0ND= zdJjtbkdEwuHTMzS!b|%CNhpS@??%Fpsoh?rSV%+mBK;@kdJeX~cM+`>F`v>g5%ZZ) zFY=S@-p{GxK13|0hxdW#5*oG-U9yyB;AQD$g0`45fmMZlB_<6jB0F?A$S$WtBK-=w zxeqP1lG65r)+%bgABC)@Vf)b>YiPO%*3t?QtfM0$$$Gjel58M%6PBX0Rv@*J+8*Ey z*d}`R0MdOy3l6~e+Du0dAo-Vc^8k(*ZlyMm&oC(mi{NXTd=L$=T{b|nYJeSdL_~cf z1bHRLwmW9$A2dT3Nz7;orNoi0^2{AvDBcI(`WGzo*-W(5Oc!MtGhGtD9uvQ6(Zk2EA2fpcAH%D0 z>MsN>ItB~*720-;*L92Q3YD|$;;$RcBI7t8-5eWvUU=iY7Xj!UFZ2!ci6z1bK$%1& z0B{>bQ~~M$oq@*yG-w1GFya;3d>r(Dpkv1&yUtV62~_E);Gu1YHPU;5a!>F!o*zK{ zJn$26fi|AN>h(9-EEmjXxgsQL3in9K_VV{7?1Nse5#BWS4TvAS{NH8A7rBxl|93oMW!Nq8c-4_Wno4V`A*?v zzOdr_Mv6(QQWz;|#tC&3s!<00DM(cWiAq2^kO5L<>8v0nwy*t0d6QHv8hV!3u3Qso zY9UQVz--|CaE-=hv9Oz9y|K(v#mv%#_MC;(X(~D}6^^vXbLhY3;_zrH`Oa|{J%&^7 zI0TOkG2t$oejd>ez3~Ig|6S*BhPVx#J%`nFTfC`AXGHp1h{IO}+x-BWz616B3G29y zH1!AGNox$Yn$S^1G=B(>ZGg5wJD@$#0q6*>n+CYHJOiG=wWSZZ?k>4*ZgSm&8vh8v z@(A_&k=GUw0xu#LfWV7@z>9#ui-5q3z@5MgVE;*3(;g=Kqg74u0qqN@>61tX85l8!-WExv z3(309Ogf3SUcd}~mM&jF+doH+pAkGyWq(HXU!ZnB>}KXLQ(sT{wDGHH1i^FlJTB=IT$b3@bhS0EDo^@GlmH7 zylLHESYzaWfv69~jg!*Q*0}Foo-LquzhJ$W_6ttB;<|TCnNLK{@Dp^=x;T?2wygrM z2h*BgU|cNxAi*w~Y(v4-7 zI+Lbff;G657G1&+UPe1FLGLc7e=b1)ub^_j^7?*Z2ZX#s&!O;@B3T(v5e^)hC)pxa z(fhxG&DHd^2-eU=1pbxx7^_9NWU;Y?m60&pg2NJ_R{7nJURxpZ{Rd~@Yqwt ze){DK8tDKg~CZQs(r*LXK97`k5P?aOQoI~*n2$2?P8GIRtg z;skBJj^;i|KV9b;si#DV@^4uLKPn7mf%;q!lIb*6zk!jmABlov?Dj{9I4eH7m?ZuZ zUBo$h@doDf547}#bdO=Br1n}$MVuGJC7T8u6T5gUMwz$V}eU<&}_u}K81$B1pf*T8mQ2k;HB6W9gp0rmp> zfc?M$;2>}a_>MOJ#be`7;PE7I3OEgjWM_eMboDP@H4?^D1dOSOYru8j#_D>1LxQpH zt21x%B@D|D+dupT1XKROa9&B9|KXJ*x@TtioZ@6(hR@~Km#)735C0um=-M6rjtUa! zC90+;&F3x;Uqt$nD7;hR~mA_t3w&KUiN34E9e+aXdLZ(-lb$#g9Fm8Q`U0eMJ zw{~IdiPaC;tXnu1fQB784^ndx=rqo5t?NCKnPK=H6~T(`x2>ly?A8&u(O2EDHii*h zU|4(gScy2l-?kP(w4b#?Py#6t#Q1F+5ybi(nF!+ij@k&~{f<-w34Yt2On6Og-$v@Q zt+r*xDqmg3tdTyp#@Mjjc7ReG*4CKi102@6F`|ShRRaE^pC}<(@UqllO)PmrQaOXa z<7<;t>V;7`<@4Z=Q%rPPqdgZhGr+$$GsBL*V?bV~H395zbXqG?H$=zYjQ$R#hF96?H~sMV%95opIyD8fjmkifIrkMq|3qLnR&7 zax}qZO{!rahtsdQ5xD%C4}m+7KPJ-tqpD`Zu>8@q*JZ6}lt4<|uO*YuW35&!dd%zB z(h)@X9sNZsX-y-I@+y0yuA7+QUV}{jle36-9!#8&`Gc>=kRWunc!Jx?;IbsxO z52+F!Mu2yN5a4Ae1P;F=7Xi2yLl<24tB%m^*9Ic+__ZMjz)Zg6VqBy#LN!9;FfPW> zY4`n=sQo}Cd_KRmf~4|%q_IfVrAZi-XLVmJ9dKDw4IRw^?vm*pk2MifV~xj}S%$zz zjNic|g}IT&O+}$;7=?GKs@K{+_LE4*V=A&)Smehv!)r~3_js|_S}S3Bq~lqYrg>PJ zrH1%KhuxY$u@Tl1(VwZR;?J@M2Di43nnhS!CvJ~)e5oQ^hDC1k={~2(A5VQEtkJY5 z!kQR+Fw${EC2bX!bU)pVu-1h}tn0H@t8pB4i|`wF5cvGYT?CPS;}2QWvyqNJ6r-)f zvY)2eK5K=9pCg^66zzw?B7d^uEbhc))Z!1HH9q!Qq_eh4)Fv#^6)GEPtsQ$S(%DW$ zwhfE?n?^)h2gh0?ojp}#yHF(l4CPf3>5gm zazhh}ACj8w(+k9yl|`Y+9Oy=%J^O$Z(2EDAi803jH(bYxF`J<(xQS4pIQ^s;vo&y7 zkX4*{f;A}L3JJ6Q0#d@lZ2y3ih%g%{5dn+07$7Ak%(fgz0gJa1ASEHpYy?VK?7V_J zf2Lm$XEtCz04-YCC7A7j!zAt!%xb_9**pp6G+?cBRf0Jf*lO35WKQH-3DU^ICdk_| zeTpPdBhUlv!mPKapOyqxP%EdmOEIeeoxVnjSsvIXJ0k_Gi5^X7m1fokj^G$d0}cH$ zJwlpU2UvQyf+&XRn?MxT^!p%6XgZG!voaSjHi11HX+eIe>6Qq-iXgwr^fVcuGQH`O zWtdI5fPMxlvlHYun|=u->_7cKLO4i}AGjh|7ARaeJzEy&{Hp2uWtqK!al$Rfe3Y?g K`$akC&3phFHKU9G diff --git a/meteoinfo-lab/pylib/mipylib/plotlib/_axes.py b/meteoinfo-lab/pylib/mipylib/plotlib/_axes.py index bd7ef4ff..3a7c6f84 100644 --- a/meteoinfo-lab/pylib/mipylib/plotlib/_axes.py +++ b/meteoinfo-lab/pylib/mipylib/plotlib/_axes.py @@ -1348,8 +1348,6 @@ class Axes(object): s = kwargs.pop('s', 8) c = kwargs.pop('c', None) - if c is None: - c = kwargs.pop('facecolor', 'b') #Add data series label = kwargs.pop('label', 'S_0') @@ -1358,6 +1356,10 @@ class Axes(object): #Set plot data styles pb, isunique = plotutil.getlegendbreak('point', **kwargs) + if c is None: + c = pb.getColor() + if c is None: + c = 'b' pb.setCaption(label) #pstyle = plotutil.getpointstyle(marker) #pb.setStyle(pstyle) diff --git a/meteoinfo-lab/pylib/mipylib/plotlib/plotutil$py.class b/meteoinfo-lab/pylib/mipylib/plotlib/plotutil$py.class index 5164c5009d2fc67e4480c863d72103af63bf5e08..6bb0527c13172d8087695e0e3081c38009e31e25 100644 GIT binary patch delta 10651 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 KnVgjC<^KaPS|!c^ delta 10730 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 diff --git a/meteoinfo-lab/pylib/mipylib/plotlib/plotutil.py b/meteoinfo-lab/pylib/mipylib/plotlib/plotutil.py index 4df16cb9..7b83d5c6 100644 --- a/meteoinfo-lab/pylib/mipylib/plotlib/plotutil.py +++ b/meteoinfo-lab/pylib/mipylib/plotlib/plotutil.py @@ -388,6 +388,7 @@ def getplotstyle(style, caption, **kwargs): markerfillcolor = kwargs.pop('markerfacecolor', markercolor) markerfillcolor = getcolor(markerfillcolor) plb.setSymbolFillColor(markerfillcolor) + plb.setFillSymbol(not markerfillcolor is None) return plb else: plb = PolylineBreak() @@ -473,11 +474,10 @@ def getlegendbreak(geometry, **kwargs): markersize = kwargs.pop('markersize', None) if not markersize is None: lb.setSymbolSize(markersize) - markercolor = kwargs.pop('markercolor', None) - if not markercolor is None: - markercolor = getcolor(markercolor) - lb.setSymbolColor(markercolor) - fillcolor = kwargs.pop('makerfillcolor', None) + markercolor = kwargs.pop('markeredgecolor', None) + markercolor = getcolor(markercolor) + lb.setSymbolColor(markercolor) + fillcolor = kwargs.pop('markerfacecolor', None) if not fillcolor is None: lb.setFillSymbol(True) lb.setSymbolFillColor(getcolor(fillcolor))