From 50c00db30f94180aeccd1ae40c6d042e2f547f76 Mon Sep 17 00:00:00 2001 From: azv Date: Fri, 16 Aug 2019 08:49:58 +0300 Subject: [PATCH] Task 2.2. New arcs creation mode: perpendicular to a straight edge * Implement fourth mode of arc creation: by transversal line. * Unit test for that mode. * Documentation update. --- src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.cpp | 47 ++++- src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.h | 5 + src/SketchAPI/SketchAPI_MacroArc.cpp | 26 +++ src/SketchAPI/SketchAPI_MacroArc.h | 14 +- src/SketchAPI/SketchAPI_Sketch.cpp | 21 ++- src/SketchAPI/SketchAPI_Sketch.h | 14 +- src/SketchPlugin/CMakeLists.txt | 1 + src/SketchPlugin/SketchPlugin_MacroArc.cpp | 40 +++-- src/SketchPlugin/SketchPlugin_MacroArc.h | 11 +- src/SketchPlugin/SketchPlugin_Plugin.cpp | 2 + src/SketchPlugin/SketchPlugin_Validators.cpp | 38 ++++ src/SketchPlugin/SketchPlugin_Validators.h | 19 ++ .../Test/TestCreateArcByTransversalLine.py | 163 ++++++++++++++++++ src/SketchPlugin/doc/arcFeature.rst | 34 +++- src/SketchPlugin/doc/examples/arc.py | 1 + src/SketchPlugin/doc/images/Arc_panel_3pt.png | Bin 23337 -> 13650 bytes .../doc/images/Arc_panel_base.png | Bin 22794 -> 13623 bytes .../doc/images/Arc_panel_perp.png | Bin 0 -> 11448 bytes .../doc/images/Arc_panel_tang.png | Bin 16580 -> 11918 bytes src/SketchPlugin/doc/images/Arc_res.png | Bin 4964 -> 6080 bytes .../doc/images/arc_perp_32x32.png | Bin 0 -> 916 bytes src/SketchPlugin/icons/arc_perp_32x32.png | Bin 0 -> 916 bytes src/SketchPlugin/plugin-Sketch.xml | 18 ++ src/SketcherPrs/SketcherPrs_Perpendicular.cpp | 17 +- 24 files changed, 429 insertions(+), 42 deletions(-) create mode 100644 src/SketchPlugin/Test/TestCreateArcByTransversalLine.py create mode 100644 src/SketchPlugin/doc/images/Arc_panel_perp.png create mode 100644 src/SketchPlugin/doc/images/arc_perp_32x32.png create mode 100644 src/SketchPlugin/icons/arc_perp_32x32.png diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.cpp b/src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.cpp index 232a0d690..5b20ddb13 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.cpp +++ b/src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include #include @@ -48,6 +49,7 @@ typedef std::vector< std::shared_ptr > VectorOfGccLine; // Provide different mechanisms to create circle: // * by passing points // * by tangent edges +// * by transversal line // * with specified radius // * etc. class CircleBuilder @@ -83,6 +85,19 @@ public: } } + void setTransversalLine(const std::shared_ptr& theLine) + { + if (!theLine) + return; + + const TopoDS_Edge& anEdge = TopoDS::Edge(theLine->impl()); + + double aFirst, aLast; + TopLoc_Location aLoc; + Handle(Geom2d_Curve) aCurve = BRep_Tool::CurveOnSurface(anEdge, myPlane, aLoc, aFirst, aLast); + myTransversalLine = CurveAdaptorPtr(new Geom2dAdaptor_Curve(aCurve, aFirst, aLast)); + } + void setPassingPoints(const std::vector< std::shared_ptr >& thePoints) { std::vector< std::shared_ptr >::const_iterator aPIt; @@ -115,9 +130,13 @@ public: case 1: aResult = circleByPointAndTwoTangentCurves(); break; - case 2: - aResult = circleByTwoPointsAndTangentCurve(); + case 2: { + if (myTransversalLine) + aResult = circleByTwoPointsAndTransversalLine(); + else + aResult = circleByTwoPointsAndTangentCurve(); break; + } case 3: aResult = circleByThreePassingPoints(); break; @@ -342,6 +361,22 @@ private: } + Circ2dPtr circleByTwoPointsAndTransversalLine() + { + const gp_Pnt2d& aPoint1 = myPassingPoints[0]; + const gp_Pnt2d& aPoint2 = myPassingPoints[1]; + + if (myTransversalLine && myTransversalLine->GetType() == GeomAbs_Line) { + GccAna_Circ2d2TanOn aCircleBuilder(aPoint1, aPoint2, myTransversalLine->Line(), + Precision::Confusion()); + if (aCircleBuilder.NbSolutions() > 0) + return Circ2dPtr(new gp_Circ2d(aCircleBuilder.ThisSolution(1))); + } + + return Circ2dPtr(); + } + + Circ2dPtr circleByRadiusAndTwoTangentCurves() { VectorOfGccCirc aTgCirc; @@ -467,6 +502,7 @@ private: std::shared_ptr myCenter; std::vector myPassingPoints; std::vector myTangentShapes; + CurveAdaptorPtr myTransversalLine; double myRadius; std::shared_ptr myClosestPoint; }; @@ -497,6 +533,12 @@ void GeomAlgoAPI_Circ2dBuilder::addTangentCurve(const std::shared_ptr& theEdge) +{ + if (theEdge->isEdge()) + myTransversalLine = theEdge; +} + void GeomAlgoAPI_Circ2dBuilder::addPassingPoint(const std::shared_ptr& thePoint) { myPassingPoints.push_back(thePoint); @@ -526,6 +568,7 @@ std::shared_ptr GeomAlgoAPI_Circ2dBuilder::circle() CircleBuilder aCircleBuilder(myPlane); aCircleBuilder.setCenter(myCenter); aCircleBuilder.setTangentCurves(myTangentShapes); + aCircleBuilder.setTransversalLine(myTransversalLine); aCircleBuilder.setPassingPoints(myPassingPoints); aCircleBuilder.setClosestPoint(myClosestPoint); aCircleBuilder.setRadius(myRadius); diff --git a/src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.h b/src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.h index c193e877d..3105b5047 100644 --- a/src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.h +++ b/src/GeomAlgoAPI/GeomAlgoAPI_Circ2dBuilder.h @@ -58,6 +58,10 @@ public: GEOMALGOAPI_EXPORT void addTangentCurve(const std::shared_ptr& theEdge); + /// \brief Constrain circle to be orthogonal to the given edge + GEOMALGOAPI_EXPORT + void setTransversalLine(const std::shared_ptr& theEdge); + /// \brief Constrain circle to pass through the given point GEOMALGOAPI_EXPORT void addPassingPoint(const std::shared_ptr& thePoint); @@ -82,6 +86,7 @@ private: std::shared_ptr myCenter; std::vector< std::shared_ptr > myPassingPoints; std::vector< std::shared_ptr > myTangentShapes; + std::shared_ptr myTransversalLine; std::shared_ptr myClosestPoint; double myRadius; }; diff --git a/src/SketchAPI/SketchAPI_MacroArc.cpp b/src/SketchAPI/SketchAPI_MacroArc.cpp index 4bad39fef..67dc5f0c7 100644 --- a/src/SketchAPI/SketchAPI_MacroArc.cpp +++ b/src/SketchAPI/SketchAPI_MacroArc.cpp @@ -201,3 +201,29 @@ void SketchAPI_MacroArc::setByTangent(const ModelHighAPI_RefAttr& theTangentPoin execute(); } + +//================================================================================================ +void SketchAPI_MacroArc::setByTransversal(const ModelHighAPI_RefAttr& theTransversalPoint, + double theEndX, double theEndY, + bool theInversed) +{ + fillAttribute(SketchPlugin_MacroArc::ARC_TYPE_BY_TRANSVERSAL_LINE(), myarcType); + fillAttribute(theTransversalPoint, mytangentPoint); + fillAttribute(endPoint3(), theEndX, theEndY); + fillAttribute(theInversed, myreversed); + + execute(); +} + +//================================================================================================ +void SketchAPI_MacroArc::setByTransversal(const ModelHighAPI_RefAttr& theTransversalPoint, + const std::shared_ptr& theEnd, + bool theInversed) +{ + fillAttribute(SketchPlugin_MacroArc::ARC_TYPE_BY_TRANSVERSAL_LINE(), myarcType); + fillAttribute(theTransversalPoint, mytangentPoint); + fillAttribute(theEnd, myendPoint3); + fillAttribute(theInversed, myreversed); + + execute(); +} diff --git a/src/SketchAPI/SketchAPI_MacroArc.h b/src/SketchAPI/SketchAPI_MacroArc.h index a4b51ccec..3a6ae5566 100644 --- a/src/SketchAPI/SketchAPI_MacroArc.h +++ b/src/SketchAPI/SketchAPI_MacroArc.h @@ -114,8 +114,6 @@ public: angle, SketchPlugin_MacroArc::ANGLE_ID(), ModelAPI_AttributeDouble, /** Angle */) -private: - /// Set by center and start, end point. SKETCHAPI_EXPORT void setByCenterStartEnd(double theCenterX, double theCenterY, @@ -153,6 +151,18 @@ private: void setByTangent(const ModelHighAPI_RefAttr& theTangentPoint, const std::shared_ptr& theEnd, bool theInversed); + + /// Set by tangent and end point. + SKETCHAPI_EXPORT + void setByTransversal(const ModelHighAPI_RefAttr& theTransversalPoint, + double theEndX, double theEndY, + bool theInversed); + + /// Set by tangent and end point. + SKETCHAPI_EXPORT + void setByTransversal(const ModelHighAPI_RefAttr& theTransversalPoint, + const std::shared_ptr& theEnd, + bool theInversed); }; /// Pointer on Arc object. diff --git a/src/SketchAPI/SketchAPI_Sketch.cpp b/src/SketchAPI/SketchAPI_Sketch.cpp index 66e043c1c..b4b43cbb3 100644 --- a/src/SketchAPI/SketchAPI_Sketch.cpp +++ b/src/SketchAPI/SketchAPI_Sketch.cpp @@ -460,22 +460,33 @@ std::shared_ptr SketchAPI_Sketch::addArc( std::shared_ptr SketchAPI_Sketch::addArc( const ModelHighAPI_RefAttr& theTangentPoint, double theEndX, double theEndY, - bool theInversed) + bool theInversed, + bool theTransversal) { std::shared_ptr aFeature = compositeFeature()->addFeature(SketchPlugin_MacroArc::ID()); - return MacroArcPtr(new SketchAPI_MacroArc( - aFeature, theTangentPoint, theEndX, theEndY, theInversed)); + MacroArcPtr aMacroArc(new SketchAPI_MacroArc(aFeature)); + if (theTransversal) + aMacroArc->setByTransversal(theTangentPoint, theEndX, theEndY, theInversed); + else + aMacroArc->setByTangent(theTangentPoint, theEndX, theEndY, theInversed); + return aMacroArc; } std::shared_ptr SketchAPI_Sketch::addArc( const ModelHighAPI_RefAttr& theTangentPoint, const std::shared_ptr& theEnd, - bool theInversed) + bool theInversed, + bool theTransversal) { std::shared_ptr aFeature = compositeFeature()->addFeature(SketchPlugin_MacroArc::ID()); - return MacroArcPtr(new SketchAPI_MacroArc(aFeature, theTangentPoint, theEnd, theInversed)); + MacroArcPtr aMacroArc(new SketchAPI_MacroArc(aFeature)); + if (theTransversal) + aMacroArc->setByTransversal(theTangentPoint, theEnd, theInversed); + else + aMacroArc->setByTangent(theTangentPoint, theEnd, theInversed); + return aMacroArc; } std::shared_ptr SketchAPI_Sketch::addArc(const ModelHighAPI_Selection & theExternal) diff --git a/src/SketchAPI/SketchAPI_Sketch.h b/src/SketchAPI/SketchAPI_Sketch.h index 8b3237f7f..27a5c543d 100644 --- a/src/SketchAPI/SketchAPI_Sketch.h +++ b/src/SketchAPI/SketchAPI_Sketch.h @@ -236,19 +236,21 @@ public: const std::shared_ptr& theEnd, const std::shared_ptr& thePassed); - /// Add arc + /// Add transversal/tangent arc SKETCHAPI_EXPORT std::shared_ptr addArc( - const ModelHighAPI_RefAttr& theTangentPoint, + const ModelHighAPI_RefAttr& theConnectedPoint, double theEndX, double theEndY, - bool theInversed); + bool theInversed, + bool theTransversal = false); - /// Add arc + /// Add transversal/tangent arc SKETCHAPI_EXPORT std::shared_ptr addArc( - const ModelHighAPI_RefAttr& theTangentPoint, + const ModelHighAPI_RefAttr& theConnectedPoint, const std::shared_ptr& theEnd, - bool theInversed); + bool theInversed, + bool theTransversal = false); /// Add arc SKETCHAPI_EXPORT diff --git a/src/SketchPlugin/CMakeLists.txt b/src/SketchPlugin/CMakeLists.txt index f11be7799..cd9bc43fb 100644 --- a/src/SketchPlugin/CMakeLists.txt +++ b/src/SketchPlugin/CMakeLists.txt @@ -222,6 +222,7 @@ ADD_UNIT_TESTS( TestCreateArcByCenterStartEnd.py TestCreateArcByTangentEdge.py TestCreateArcByThreePoints.py + TestCreateArcByTransversalLine.py TestCreateArcChangeType.py TestCreateCircleByCenterAndPassed.py TestCreateCircleByThreePoints.py diff --git a/src/SketchPlugin/SketchPlugin_MacroArc.cpp b/src/SketchPlugin/SketchPlugin_MacroArc.cpp index 3e6327e08..f0379c461 100644 --- a/src/SketchPlugin/SketchPlugin_MacroArc.cpp +++ b/src/SketchPlugin/SketchPlugin_MacroArc.cpp @@ -20,6 +20,7 @@ #include "SketchPlugin_MacroArc.h" #include "SketchPlugin_Arc.h" +#include "SketchPlugin_ConstraintPerpendicular.h" #include "SketchPlugin_ConstraintTangent.h" #include "SketchPlugin_Sketch.h" #include "SketchPlugin_Tools.h" @@ -209,7 +210,9 @@ void SketchPlugin_MacroArc::attributeChanged(const std::string& theID) else if(anArcType == ARC_TYPE_BY_THREE_POINTS()) fillByThreePassedPoints(); else if(anArcType == ARC_TYPE_BY_TANGENT_EDGE()) - fillByTangentEdge(); + fillByEdge(false); + else if (anArcType == ARC_TYPE_BY_TRANSVERSAL_LINE()) + fillByEdge(true); double aRadius = 0; double anAngle = 0; @@ -339,19 +342,27 @@ void SketchPlugin_MacroArc::execute() AttributePtr(), anArcFeature->lastResult(), true); - } else if(anArcType == ARC_TYPE_BY_TANGENT_EDGE()) { - // constraints for tangent arc + } else { + // coincident with connection point SketchPlugin_Tools::createCoincidenceOrTangency(this, TANGENT_POINT_ID(), anArcFeature->attribute(SketchPlugin_Arc::START_ID()), ObjectPtr(), false); - FeaturePtr aTangent = sketch()->addFeature(SketchPlugin_ConstraintTangent::ID()); - AttributeRefAttrPtr aRefAttrA = aTangent->refattr(SketchPlugin_Constraint::ENTITY_A()); + // tangent or perpendicular constraint + FeaturePtr aStartPointConstraint; + if (anArcType == ARC_TYPE_BY_TANGENT_EDGE()) + aStartPointConstraint = sketch()->addFeature(SketchPlugin_ConstraintTangent::ID()); + else + aStartPointConstraint = sketch()->addFeature(SketchPlugin_ConstraintPerpendicular::ID()); + // setting attributes of the start point constraint + AttributeRefAttrPtr aRefAttrA = + aStartPointConstraint->refattr(SketchPlugin_Constraint::ENTITY_A()); AttributeRefAttrPtr aTgPntRefAttr = refattr(TANGENT_POINT_ID()); FeaturePtr aTgFeature = ModelAPI_Feature::feature(aTgPntRefAttr->attr()->owner()); aRefAttrA->setObject(aTgFeature->lastResult()); - AttributeRefAttrPtr aRefAttrB = aTangent->refattr(SketchPlugin_Constraint::ENTITY_B()); + AttributeRefAttrPtr aRefAttrB = + aStartPointConstraint->refattr(SketchPlugin_Constraint::ENTITY_B()); aRefAttrB->setObject(anArcFeature->lastResult()); // constraint for end point SketchPlugin_Tools::createCoincidenceOrTangency(this, @@ -596,15 +607,15 @@ void SketchPlugin_MacroArc::recalculateReversedFlagByPassed( myParamBefore = aEndParam; } -void SketchPlugin_MacroArc::fillByTangentEdge() +void SketchPlugin_MacroArc::fillByEdge(bool theTransversal) { AttributeRefAttrPtr aTangentAttr = refattr(TANGENT_POINT_ID()); if (!aTangentAttr->isInitialized()) return; - AttributePoint2DPtr aTangentPointAttr = + AttributePoint2DPtr aConnectionPointAttr = std::dynamic_pointer_cast(aTangentAttr->attr()); - if (!aTangentPointAttr->isInitialized()) + if (!aConnectionPointAttr->isInitialized()) return; AttributePoint2DPtr anEndPointAttr = @@ -612,19 +623,22 @@ void SketchPlugin_MacroArc::fillByTangentEdge() if (!anEndPointAttr->isInitialized()) return; - myStart = aTangentPointAttr->pnt(); + myStart = aConnectionPointAttr->pnt(); myEnd = anEndPointAttr->pnt(); if (myStart->isEqual(myEnd)) return; // obtain a shape the tangent point belongs to - FeaturePtr aTangentFeature = ModelAPI_Feature::feature(aTangentPointAttr->owner()); - std::shared_ptr aTangentShape = aTangentFeature->lastResult()->shape(); + FeaturePtr aConnectedFeature = ModelAPI_Feature::feature(aConnectionPointAttr->owner()); + std::shared_ptr aTangentShape = aConnectedFeature->lastResult()->shape(); GeomAlgoAPI_Circ2dBuilder aCircBuilder(SketchPlugin_Sketch::plane(sketch())); aCircBuilder.addPassingPoint(myStart); aCircBuilder.addPassingPoint(myEnd); - aCircBuilder.addTangentCurve(aTangentShape); + if (theTransversal) + aCircBuilder.setTransversalLine(aTangentShape); + else + aCircBuilder.addTangentCurve(aTangentShape); std::shared_ptr aCircle = aCircBuilder.circle(); if (!aCircle) diff --git a/src/SketchPlugin/SketchPlugin_MacroArc.h b/src/SketchPlugin/SketchPlugin_MacroArc.h index 815cd7002..886f6efdc 100644 --- a/src/SketchPlugin/SketchPlugin_MacroArc.h +++ b/src/SketchPlugin/SketchPlugin_MacroArc.h @@ -72,6 +72,12 @@ class SketchPlugin_MacroArc: public SketchPlugin_SketchEntity, return ID; } + inline static const std::string& ARC_TYPE_BY_TRANSVERSAL_LINE() + { + static const std::string ID("by_transversal_line"); + return ID; + } + /// Central 2D point of the circle which contains the arc inline static const std::string& CENTER_POINT_ID() { @@ -220,8 +226,9 @@ private: void fillByCenterAndTwoPassed(); /// Set fields for center, start and end points by selected passed points void fillByThreePassedPoints(); - /// Set fields for center, start and end points by selected tangent edge - void fillByTangentEdge(); + /// Set fields for center, start and end points by selected tangent or transversal edge + /// \param theTransversal if \c true, builds transversal arc, otherwise builds tangential arc. + void fillByEdge(bool theTransversal); FeaturePtr createArcFeature(); diff --git a/src/SketchPlugin/SketchPlugin_Plugin.cpp b/src/SketchPlugin/SketchPlugin_Plugin.cpp index 5d1e9804e..67d4e4656 100644 --- a/src/SketchPlugin/SketchPlugin_Plugin.cpp +++ b/src/SketchPlugin/SketchPlugin_Plugin.cpp @@ -119,6 +119,8 @@ SketchPlugin_Plugin::SketchPlugin_Plugin() new SketchPlugin_MiddlePointAttrValidator); aFactory->registerValidator("SketchPlugin_ArcTangentPoint", new SketchPlugin_ArcTangentPointValidator); + aFactory->registerValidator("SketchPlugin_ArcTransversalPoint", + new SketchPlugin_ArcTransversalPointValidator); aFactory->registerValidator("SketchPlugin_IntersectionValidator", new SketchPlugin_IntersectionValidator); aFactory->registerValidator("SketchPlugin_ProjectionValidator", diff --git a/src/SketchPlugin/SketchPlugin_Validators.cpp b/src/SketchPlugin/SketchPlugin_Validators.cpp index e95372a35..a0cbf6805 100644 --- a/src/SketchPlugin/SketchPlugin_Validators.cpp +++ b/src/SketchPlugin/SketchPlugin_Validators.cpp @@ -836,6 +836,44 @@ bool SketchPlugin_ArcTangentPointValidator::isValid(const AttributePtr& theAttri return true; } +bool SketchPlugin_ArcTransversalPointValidator::isValid( + const AttributePtr& theAttribute, + const std::list& /*theArguments*/, + Events_InfoMessage& theError) const +{ + if (theAttribute->attributeType() != ModelAPI_AttributeRefAttr::typeId()) { + theError = "The attribute with the %1 type is not processed"; + theError.arg(theAttribute->attributeType()); + return false; + } + AttributeRefAttrPtr aRefAttr = std::dynamic_pointer_cast(theAttribute); + AttributePtr anAttr = aRefAttr->attr(); + if (!anAttr) { + theError = "The attribute %1 should be a point"; + theError.arg(theAttribute->id()); + return false; + } + + FeaturePtr anAttrFeature = std::dynamic_pointer_cast(anAttr->owner()); + const std::string& aFeatureType = anAttrFeature->getKind(); + if (aFeatureType == SketchPlugin_Line::ID()) { + // selected point should be bound point of line + const std::string& aPntId = anAttr->id(); + if (aPntId != SketchPlugin_Line::START_ID() && aPntId != SketchPlugin_Line::END_ID()) { + theError = "The attribute %1 is not supported"; + theError.arg(aPntId); + return false; + } + } + else { + theError = "Unable to build transversal arc on %1"; + theError.arg(anAttrFeature->getKind()); + return false; + } + + return true; +} + bool SketchPlugin_IntersectionValidator::isValid(const AttributePtr& theAttribute, const std::list& theArguments, Events_InfoMessage& theError) const diff --git a/src/SketchPlugin/SketchPlugin_Validators.h b/src/SketchPlugin/SketchPlugin_Validators.h index d988ac751..b3fe8f574 100644 --- a/src/SketchPlugin/SketchPlugin_Validators.h +++ b/src/SketchPlugin/SketchPlugin_Validators.h @@ -249,6 +249,25 @@ class SketchPlugin_ArcTangentPointValidator : public ModelAPI_AttributeValidator Events_InfoMessage& theError) const; }; +/**\class SketchPlugin_ArcTransversalPointValidator + * \ingroup Validators + * \brief Validator for the point where the transversal arc is building. + * + * Checks that the point is a start or end point just on line or arc. + */ +class SketchPlugin_ArcTransversalPointValidator : public ModelAPI_AttributeValidator +{ + public: + //! returns true if attribute is valid + //! \param theAttribute the checked attribute + //! \param theArguments arguments of the attribute + //! \param theError error message + virtual bool isValid(const AttributePtr& theAttribute, + const std::list& theArguments, + Events_InfoMessage& theError) const; +}; + + /**\class SketchPlugin_SplitValidator * \ingroup Validators * \brief Validator for the entity of the following type: diff --git a/src/SketchPlugin/Test/TestCreateArcByTransversalLine.py b/src/SketchPlugin/Test/TestCreateArcByTransversalLine.py new file mode 100644 index 000000000..0250f952c --- /dev/null +++ b/src/SketchPlugin/Test/TestCreateArcByTransversalLine.py @@ -0,0 +1,163 @@ +# Copyright (C) 2014-2019 CEA/DEN, EDF R&D +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +# + + +#========================================================================= +# Initialization of the test +#========================================================================= +from GeomDataAPI import * +from ModelAPI import * +from SketchAPI import SketchAPI_Sketch +import math +from salome.shaper import model + +__updated__ = "2019-08-16" + +TOLERANCE = 1.e-7 + +#========================================================================= +# Auxiliary functions +#========================================================================= + +def verifyLastArc(theSketch, theCenter, theStart, theEnd): + """ + subroutine to verify position of last arc in the sketch + """ + aLastArc = model.lastSubFeature(theSketch, "SketchArc") + model.assertArc(aLastArc, theCenter, theStart, theEnd) + +def verifyArcLineTransversal(theArc, theLine): + aCenter = geomDataAPI_Point2D(theArc.attribute("center_point")) + aDistCL = model.distancePointLine(aCenter, theLine) + assert aDistCL < TOLERANCE, "Arc and line are not orthogonal" + +def verifyPointOnArc(thePoint, theArc): + aCenter = geomDataAPI_Point2D(theArc.attribute("center_point")) + aStart = geomDataAPI_Point2D(theArc.attribute("start_point")) + aRadius = model.distancePointPoint(aStart, aCenter) + + aDistPP = model.distancePointPoint(aCenter, thePoint) + assert math.fabs(aRadius - aDistPP) < TOLERANCE, "Point is not on Circle, distance: {0}".format(aDistPP) + + + +aSession = ModelAPI_Session.get() +aDocument = aSession.moduleDocument() +#========================================================================= +# Creation of a sketch +#========================================================================= +aSession.startOperation() +aSketchCommonFeature = aDocument.addFeature("Sketch") +aSketchFeature = featureToCompositeFeature(aSketchCommonFeature) +origin = geomDataAPI_Point(aSketchFeature.attribute("Origin")) +origin.setValue(0, 0, 0) +dirx = geomDataAPI_Dir(aSketchFeature.attribute("DirX")) +dirx.setValue(1, 0, 0) +norm = geomDataAPI_Dir(aSketchFeature.attribute("Norm")) +norm.setValue(0, 0, 1) +aSession.finishOperation() +aSketch = SketchAPI_Sketch(aSketchFeature) + +# auxiliary line +aLineStartPnt = [0., 0.] +aLineEndPnt = [50., 0.] +aSession.startOperation() +aSketchLine = aSketchFeature.addFeature("SketchLine") +aLineStart = geomDataAPI_Point2D(aSketchLine.attribute("StartPoint")) +aLineEnd = geomDataAPI_Point2D(aSketchLine.attribute("EndPoint")) +aLineStart.setValue(aLineStartPnt[0], aLineStartPnt[1]) +aLineEnd.setValue(aLineEndPnt[0], aLineEndPnt[1]) +aSession.finishOperation() + +#========================================================================= +# Test 1. Create an arc, orthogonal to the line +#========================================================================= +anArcEndPnt = [80., 20.] +aSession.startOperation() +anArc = aSketchFeature.addFeature("SketchMacroArc") +assert (anArc.getKind() == "SketchMacroArc") +anArcTgPnt = anArc.refattr("tangent_point") +assert (not anArcTgPnt.isInitialized()) +anArcEnd = geomDataAPI_Point2D(anArc.attribute("end_point_3")) +assert (not anArcEnd.isInitialized()) +anArcType = anArc.string("arc_type") +assert (not anArcType.isInitialized()) +# initialize attributes +anArcType.setValue("by_transversal_line") +anArcTgPnt.setAttr(aLineEnd) +anArcEnd.setValue(anArcEndPnt[0], anArcEndPnt[1]) +aSession.finishOperation() +verifyLastArc(aSketchFeature, [], aLineEndPnt, anArcEndPnt) +aLastArc = model.lastSubFeature(aSketchFeature, "SketchArc") +verifyArcLineTransversal(aLastArc, aSketchLine) +model.testNbSubFeatures(aSketch, "SketchConstraintCoincidence", 1) +model.testNbSubFeatures(aSketch, "SketchConstraintPerpendicular", 1) + +#========================================================================= +# Test 2. Create an arc, orthogonal to the previous arc (expect an error) +#========================================================================= +aPrevArc = aLastArc +aPrevArcEnd = geomDataAPI_Point2D(aPrevArc.attribute("end_point")) +anArcEndPnt = [50., 100.] +aSession.startOperation() +anArc = aSketchFeature.addFeature("SketchMacroArc") +anArcTgPnt = anArc.refattr("tangent_point") +anArcEnd = geomDataAPI_Point2D(anArc.attribute("end_point_3")) +anArcType = anArc.string("arc_type") +# initialize attributes +anArcType.setValue("by_transversal_line") +anArcTgPnt.setAttr(aPrevArcEnd) +anArcEnd.setValue(anArcEndPnt[0], anArcEndPnt[1]) +aSession.finishOperation() +assert(anArc.error() != "") +# remove failed feature +aSession.startOperation() +aDocument.removeFeature(anArc) +aSession.finishOperation() + +#========================================================================= +# Test 3. Create an arc, orthogonal to the line with end point on the arc +#========================================================================= +aPrevArc = model.lastSubFeature(aSketchFeature, "SketchArc") +aPrevArcEnd = geomDataAPI_Point2D(aPrevArc.attribute("end_point")) +aSession.startOperation() +anArc = aSketchFeature.addFeature("SketchMacroArc") +anArcTgPnt = anArc.refattr("tangent_point") +anArcEnd = geomDataAPI_Point2D(anArc.attribute("end_point_3")) +anArcEndRef = anArc.refattr("end_point_ref") +anArcType = anArc.string("arc_type") +# initialize attributes +anArcType.setValue("by_transversal_line") +anArcTgPnt.setAttr(aLineStart) +anArcEndRef.setObject(aPrevArc.lastResult()) +anArcEnd.setValue(anArcEndPnt[0], anArcEndPnt[1]) +aSession.finishOperation() +verifyLastArc(aSketchFeature, [], [aLineStart.x(), aLineStart.y()], []) +aLastArc = model.lastSubFeature(aSketchFeature, "SketchArc") +verifyArcLineTransversal(aLastArc, aSketchLine) +aLastArcEnd = geomDataAPI_Point2D(aLastArc.attribute("end_point")) +verifyPointOnArc(aLastArcEnd, aPrevArc) +model.testNbSubFeatures(aSketch, "SketchConstraintCoincidence", 3) +model.testNbSubFeatures(aSketch, "SketchConstraintPerpendicular", 2) + +#========================================================================= +# End of test +#========================================================================= + +assert(model.checkPythonDump()) diff --git a/src/SketchPlugin/doc/arcFeature.rst b/src/SketchPlugin/doc/arcFeature.rst index 9139ea4db..b00034cbe 100644 --- a/src/SketchPlugin/doc/arcFeature.rst +++ b/src/SketchPlugin/doc/arcFeature.rst @@ -10,7 +10,7 @@ To add a new Arc to the Sketch: #. select in the Main Menu *Sketch - > Arc* item or #. click |arc.icon| **Arc** button in Sketch toolbar: -There are 3 algorithms for creation of an Arc: +There are 4 algorithms for creation of an Arc: .. image:: images/arc_base_32x32.png :align: left @@ -24,6 +24,10 @@ There are 3 algorithms for creation of an Arc: :align: left **By tangent point and end point** creates an arc segment with the tangent point and the end point. +.. image:: images/arc_perp_32x32.png + :align: left +**By transversal point and end point** creates an arc segment perpendicular to a straight line with the start point, connected with boundary of this line, and the end point. + By center and two points """""""""""""""""""""""" @@ -90,12 +94,36 @@ The tangent point by itself is a start point. The edge on which it lies will be **TUI Command**: -.. py:function:: Sketch_1.addArc(TangetPoint, EndX, EndY, Inversed) +.. py:function:: Sketch_1.addArc(TangentPoint, EndX, EndY, Inversed) + + :param object: Tangent Point. + :param real: End X. + :param real: End Y. + :param boolean: Is inversed. + :return: Result object. + +By transveral point and point +""""""""""""""""""""""""""""" + +.. image:: images/Arc_panel_perp.png + :align: center + +Select a point on a straight segment in the view to set the transversal point, then move the mouse and click to set the end point. +The transversal point by itself is a start point. The edge on which it lies will be perpendicular to the arc (the center of the arc is lying on the edge). + +- When entering a transversal point by selecting a point on segment, a Perpendicular constraint is created. +- When entering an end point by selecting a segment, a Coincident constraint is created. +- When entering an end point, only segments are selectable. + +**TUI Command**: + +.. py:function:: Sketch_1.addArc(TransversalPoint, EndX, EndY, Inversed, True) - :param object: Tanget Point. + :param object: Transversal Point. :param real: End X. :param real: End Y. :param boolean: Is inversed. + :param boolean: Arc is transversal (always True). :return: Result object. Result diff --git a/src/SketchPlugin/doc/examples/arc.py b/src/SketchPlugin/doc/examples/arc.py index 3d44a951d..cad2078bf 100644 --- a/src/SketchPlugin/doc/examples/arc.py +++ b/src/SketchPlugin/doc/examples/arc.py @@ -10,5 +10,6 @@ SketchArc_2 = Sketch_1.addArc(8.1, 56.7, 58.2, 6.6, 44.8, 69.2) SketchLine_3 = Sketch_1.addLine(25.0, 109.4, 68.1, 153.6) SketchLine_3.setAuxiliary(True) SketchArc_3 = Sketch_1.addArc(SketchLine_3.startPoint(), 92.1, 34.0, True) +SketchArc_4 = Sketch_1.addArc(SketchLine_3.endPoint(), 150.0, 10.0, True, True) model.do() model.end() diff --git a/src/SketchPlugin/doc/images/Arc_panel_3pt.png b/src/SketchPlugin/doc/images/Arc_panel_3pt.png index 089d50730b22e133d05303bec7a93f95039ff42e..fd1b9aa8222b272545ae6b5234fda67fe2cffc7d 100644 GIT binary patch literal 13650 zcmb_@WmsHIw`C*2HMkQayIXK~cXyY@-2%bg-3jglcXtTx+PF^he)rDYnQ!FJ zJUpCkimp0!s%r1G*513rm(s90=o@|iVT4+YlQypK}6k-C~YnURV~NXr?0Glm5KNC6VU0!nVnry1^U1aot5d~r#C zY621ht-`lyWeC4psTXG#${|%qe(kSsn*2a+mXOq7K7&mqs%@sOk<<7~7qO{~3d_Bf ze-3-@m%oPHhyg!zTs4)EJ@$4et&H65Sc4DHj9`eV)`%<2Dr*9Cfu_6G%;Z=AYTsW^ zaje`tEXqP5hwBObOrkemu0D<7&(O12Z;l~)2qS>o914K*hw~+cBX>dOM+;odsjXG0 z^IB_h-hzPh&!#8T*ve7OEC5(-hZ!d*ee?9Uo?h^`(^7A=(VhmT5XT=0{CTZd5ZzPs zwWhhKi8Q`ft2uS}mPMu;M@mS)p!;%erS;}~Jb#0KIYVSSy87xZr#SJDAiJrFego0K z(_L#Ud+{eAK}m&o@CQKUO79wynuf;RuE49t-!8X3M5>Qm2vv`O#!C)#`js}lA<~jq zr@LW<-V~urk*($-*tz`4!Yb7cnY$(08F4oPEzl3wRu^<9#S`Y|30P72n-}a@2tb@L zT~g#VkO3sEi@gXs^UQ7dlOip9@U!+;@ls^?;xg3%No0APF>q8=6x7|3@A6V%;QV71 zE#Wj20X*n~dI;4~SRF-bw+EaZ_ykL;yyCmPG>a}WKjyyf%k>7ispw=D)4&OKuHN~{ zkbGB%Jx4OAg2%(!2A{-lZk0W@I%v;Z0e8ngg3c#HIzF`_!@13*J?h+M_ot_i;Nesr z?eprKmXf!A6=w|JtJ^f0o~WWPxmb*S9>@oqzSi!zHVxO5dN)W_!`yq_;xlh{_me0lQartX}2>6D`@O^i|o_#etH13PQ&;^p}Gq z#QIZ_Ls|?#3ZVCDFNnT<5G%>Y-w@YL|3>p_3=#4oKGC-BZ=3jX`6;X`L#vU`t>bkY zcQiiIH9%yOfluq^2R-^?bu-a~_MM%p9@azPVNciDvljy56|5K_Q}+cs1eIj3#Pqdq z`^{>vqiSO?u4Sa@tTx7BAP(jg^bCYZW-}!&Td@6QtAl&_?7F6iDMcX7C<1`iagR5i z+c;I#RHb|R&X??3SO{0Xu{y4M?&6@TXS{mfSw`FCu`-5>6x@yO`*?(Ud5D@N+5MA8 z>t++A&TcF7T$i+=(aQ{)9pvn8u$Ic=mhbS^SHs|}PJ6Etb7cg=0IMlH=08Sm*E zDIBgc?Kz&|wXY?461)E@($yZKlkDv7A4_xdJjM69RW5rL4AdW~(z$2!gDN}VnD3?B z*Ba?7^3GMwfPH%+-%BT8e1#(1I`Gui@><`8;;i~^`)$<)k*{fA$EW&MI=n|ez3gQt zq!)L)zcaS1V@13#@({0a<@^rda~0Bgk)>=4%1E;@Jn!&+K2eoky}Kd6a~)QDNPz22 zTxjSVb&uc`pKIO+-HicvGVa#JAKMJ?Od1GRx_(U+K~^8_Vy!w{qQdU3GRppqb~pV9 zgOJz10p(@;3d#GhCb~CDJ5f631Mhp+tkO2oIm*^~tsg4p^+jn z<#}TUJF{7;{={EKYdW3Ke^VAz6g>}judlB!>U4R#Vmh37=Jsi0bwe0VnomDcR<++F z0AP@4A7g`7vR?7UqKWpx*hqSrO}T@1FepX~6OJDY=Gb6QSFJVIcWbzO{;c^a?}&)K zW)@Rk}GT={ff>rY8CZRplyg~>vkc8AYbhfkr<{GMO6CL4KmWnE>BuobkJHGI%}Lbvlk z#|Liah-t1?`g{3!QZy1sfwm2me;(`?veS#eu3%%sk>svYeQxBQ#&iNYG_(u#Es1NP zJUpVymFUjlN!G{7i`!R|_@1SbQuE#z)OkNn52Wmb(HC~;g-t^D!D%4+K?`ZK+z}Qr z{LT2}KoMq_5Eg~R2n? z3KZZQ$b^EWBIZebZo7^M-?U2xdr3@evk<5vQK(x>pbndB^BIEj(N#mFsmSY$B5~y5vYRI1!(67>nTx9-(b!T|iST_9X%PVikI4h`i%4Dx6_cZeJDzbo8J}89>nD18O3v+eqLuhai=#h79EM6l%|Kn< zR=+HsTlUu5v*Vkk$7s@HF8|BUBH7fz1zztDKN3Ax;VC5moGwn&kMsCC;18Rsl;>Ja zm*6t!G2`QEtHE{kSFFIfoc$PG8&~go{))jNmNIbYNF!6)ZM#^TLPvB;$nF*@6oQJr z+{jj2$Z(4pE{Y@1T^NdIygQo07+(^f>pwXs!p`>=i1#XYqPxA`PWX*_D~HnSId3lO zdMR*PFg)EvREIaEX2YqTDOFtL?HUo6`SXL2*K-@H-HS1a@#ulPK>-IPfQQG) z>1;3K7DdOy5g7>FGzMTRk8hqd*Krgyg(^x)ejSX7(d+2zzrX%F z_C)$vP#$7Rha;C*k<{+wAtF2LrV;~6?FeV!Q{&E*7~Zjie6>DQMcw`+t0!?Xg&cEf z>@ocl6}B-khIB!D^a}8R;mzw%nb>=;laSXVl2X?rK^4-n`6YNl{!^>$ZZKfSc5Qeu zgk*0LGy!^Dow+~0A8KoH<|5H?qlnla(|;XxD2yZ-NY0gy9Hu9w=S(_2I@>c-#d$&@ z-0G>5HSJ4vZpys4Jf`&0s=uIBsn{57tZLo6UpJRUJ$F7c>P;MLyX~i5*SSN1$@^(< zC@D|9FR!3A>NdlUkW2owNiMcnXG`BIcwXnS4Z~`sHh~4y8Q-Ei#+zFk+k`KweHvk# zc}O`v;O%2(*X@@()6LfFh3Vh$put5#Ls9&#PqgiNx;0MFIm}k|fEhnNUg_lt`pVq z9*15Wj^h)iWH8?wN+ye(nv&zO9B0D+N=ucUUmRM3(O=h8OQuj&6r#(wX((^}LAK+X znyE;J__|qFUyLi>XGQqVabjAh>6^i*El|LF1wV3XO(oprEc-qO7T){1Rsh{MXSq{ClyKy0$@0&=`a4(q zjb=o4PTo4+RBj(a*Kf_y1DW2@Vy_QKL|mNi_atvy{WSC#mOLqta`(3@m~FQj2GOuu zH3d=p&3KA^Qdd`3;*Clsp>&0KWI(!-CwB1J^vh)E^tsaIPqyUs;th!*G@feX2w);R zT^%p40{+}m)dBnscU|AAuJxVMRU0-(#AY;Hb_ySe?9MhvBP1fxf=;y{$?d@I3r zKZ&8!zRbG2DRP|&^0P;X!P~7v?GH(oZ=?J%Up@Vvoo+squUCi79kX2tAJeG)a;GgX zM~fgj`JEbR8Qgm<%my9xW(MJ?58)0Y^gLkBfa~-oSx{UZ`z7lU`pt1k%*}gE)aPlZ zbE)0-EqiS>xlu*_dU-^GO|#J$iiOG4VL83|*RNk-S3%yNXR5@nqeBe)t=->lSPQt8 z{88m>Ipz8~djqNa^^_&1^Ncf;E?Tr||KeePhQ-rm-Wm@Hro;XwArg-#+z!|0c7NdT zDAD>rCKX^+k=z@6U|6$=<8>fJlIwY8ge01G7E>K#iw9Vt)T@=9vi*fCI7RUzZi z&m)(IV2KNsnu1rz{gIK>F0wg~6Lod^@N0cvt}!ud=eRRAXnAAa+UgRKHCa*b6+(>O z3MYBYKd!tzo1%DK#XBV=)$JFiE#Ayz-L|%e6)KdIyukr7a@wstY+Kb%hEgHZzgy#P z;$-a~wv@5Ez7Zqg=ydrVR~4CVl|cE(tP=(InPv^GoS**HeO*vzaAj51_3HMut!y_S z7NeBWf4$XPCB4)uc7|7OuuJJn#N3|{P zI=Pw;sqb}eYcN-YP`%!4a=DHQbl{JrXuo2P zCgvHov~8a{|LvQz*hv{Td{r9?%Me)UeoqJK;H485^*bdgNo;8+?2?|V+I*zTW>l}s zj9C=>0SPA3-JM}jl%=65`2ouj&-Q!Y1~p-12QI>kCs_)oJ|Up>_5>>eY_73iJ#R^} z$(y1k>*ykVE=5Ee8w^%E`3@hdu?zYP84@rJ@iluo0zzQs0MRk>yG+hkm?lXRTYtL) z$~Wpi6?L9$PjyoIyXHkC&QQppMeyKR0$y@njyHCO6RP4&zfT!5JJ=0JS_+Far3l$PGS(C@Kzh7b)A<15lA85FyeZptQP*mkibxYs1cX0F;`8B@J zAjBWGdb5(`@=#URV7A6^=X_OS^Y(Oy=b52jyLGx{7QF6xNcumb^ifE7xj%E-DG5Mq z4@BivXU7JFpdycRK@9kTec2NVaX2hOf^6nzY%WZ0--z|K+2e|4|8bdhtyaH>Iumo6 zDL*Kwrfn1(uV?#2C+ExCdWS3CCO8MT!0`6Z%)@{p+)Z&5f`o28JtcjJUE>+G1-z|X z5Fh(z(YJloPOP`P(GoI%kRYIizWvvQB)z^|dtjZ96ukD#$hG#N=Xt?(&A=8g3v_03 zyXsEqnPoPHO)%%H>i@-T$Tu!c~?;c1I9omQn&r;LZ~z#n&1r=eY+8VxMwU2|$LI7G7J;1^R&lE!W%zWK#`A=F@mDw1 z{jehRGVMqBgTd**ABB)#03&_zOA@nPEuFW+7b_>ep6fBq)|uJwWR2D$y28>)t7$c{aIraud|A*sw#zV&} za@&0wz^%`zC9X|#kSzobJ#QN9+w|!8Byo$Uhnwqw%=%i5VqHdD?v&TAVv^&gKT{uP z$P*^1s!!VsP6an9eUZqqupBNN!yzbZpvlwKh!_YOJ5g_-eSO%P*}DR1CSDD%ST40$ zbG_4Dkmt%0-m;MSB`)>I$U7Boo*7BzGi-@`B-aK6laV|3#`nyXrOZzH+RN@(x5uuH zuhV;%sJ7?I=QWv4sY@7##1KanvEm2=0zdT^FX$L@LsG$R?Hr<(0`Khtn4?h7so379Er%TU5rc4%;l zLi6LI_rLYg8?bv|UR^CZZ+H_nUHv#r{uFN2OKsFw!{K<4$qau5I`sMr!RT`dh&wzw zi_YJQv+jyPq-+JYj+wYTU&dfsEq3KZ&?nLhLz5PC6D}Qbm615RvIT!4(||hNAm7gr zdrI^RqH#`0no<6?;)?1Cp;lwi7u%BJ*l{@++p?ZB-zjwJ5!AsLD40|26hIm&WrQyG zKgAgT_d@PH3W@6uiFU2WlENVJR_Ea#=1>-*2V6d$uzxW(tsVypTt&b$dxD7t)F;6l zw47Mff(mlBvwp3Z73~=H4pjm6OhrJ@Ra1hxnN>YNfZK&YrwaMY5f(Jhd{dI%clAqX z4D#v$^ByCItp)aP?)5HP^%QN$MYpb!l7*&zxQvX9D@(NCFGZOiM|ubVHGJh@ z<5CH9|6dOc2E7DNt(9co?laTibg@0zP#tl-VIA*4I!#}Swu{3CxN{3+NrL^I6&ge+V$mtt6Fg)3% zC1RaTQPWh!tauzcUNm+?`0?<12&uYo3s9Snpv+B6t63f z2`w{>7PJM~Zn$*!LUPVS5mypvB!dIj7q!WNxym|rDmXz=OTgiLvo}Xk8OIKy&3sWrLEtYu;3}QiCEDa3H2Tsf%Fz1K zOy+-wai0-(ol>nf5#`9;(*R2h1v5rguJe3;6Uf2^S;02^ORuS`A&!c-b9W-f4O zR?u18n)@e%wqjOJi^qW2m~At%7V^{;;PkR^xVSjtr9!o`M=Sc{7!lgFTFrK7%muvA zoq-~=1GYtjVc~lFFV+HAs^2c)u^k}+dkzIL2scePTKD1~j@G~?XrZx{=^xY|OFdIP z7Tp13MwG?*m_}|5V__amQ0zZeCTBBGvw)L6Z$ht=_K{`P%s}1}@o9D@(Kmu$`jO@5 zpIK7hvhfJ(WoSRL?($iItIFkf>Z3O3m=A<4bi!cxSwNb%5Ai4wI3kxjmyL+9y&i?vtn}Fp~%sho8 z&Ef_wGx;KX#o-xT{d^xqFT-Dp&d2qJGBU=APFenT9|t*Us;9LiyNHOo3BQ$xV*sf@ zln{Fk)n6&BraDhMC6%sUSIe9GxEBUYNeJBg@VFAvS{07k#iZLD=DRiqlA!vBZKS3eZT&bNPADdyeHM( zV`u+*ZzQgeY|)aPg(OaJTZ+S)Cf`h*$X~^sXQ$V0XM7VO;h{h1ahGDgSVy{(4Y>dH zC(Y{Tf(_9%rOy}d#WI~maE5C+niVrkl-AFr*@wMar>RCKx!MKSL7n6-Mc}!b*@lm+PGib9BMz7Me#Gu#4 zR&Hqh`EiQV}Ao42exS3Wm&;g_586;W^VxwW+`$3q+^~ zM0PyVXX=k0n_b|379nFtNqL#QmIwhYZB=%EnK%0%hYRsvW`gcaFm7q#IH&+npYp0z z+pCunJT~i(KD1F#LzZmi$!AKuKZpajl$z&th*Ym96S60EV9sa2i#umF%F`TTnszcp zI_p7qsqwSNZt<$OGWdy`>`C-{%zI-!n^~9jC*JpXVr-=LAb3o}X*i%_%(Bbc>e6@;_TI=NQR#Y)&4ztDa!863v+UE@=NDq zp#G2L0bhU8LCpVil=J&1@Z^%<)zAV7aeRL3~dntE6vL%Qd& zYV&Xf{mHcuFonLbE#(FiHmgcqB~Y_D$2}i5vpi5!^Gm;GO8YMTCoK;c3q`)4BlM7Z z0(1z%hZ0ZF*~xaTC4~a<3nI1IYzJu!s!E7KC1u z-9*FC)4755P6tZ7?_Y@Yi}`Q&yh+>b(P-U)#mPE2(aisWw52KW8rQB>#~3k+_k*Sr z4zXui?rCA!N;yOpS3^Jy*uUg!)qDjzcV?g?kL2l3x~6vyQa=>s1(*sF7#Q-Zr-JKs zLgt_LNA!3kl^LN;6{=hn}yxO+h734wpY5H!{V9c&&b-%RIxwUQgzEKQTt3{;DS3p zZ0$m5`B88Syd2Mb`_lJg6ac_1eXj+ee}}93?SNEFp*t>VW_?)%-|05`jAQh`^p5~Z z!`aYh;*+u8VMc^Qi4iRE!Z`w{(kNV#$77EM=yo?LJLCp@5Lyt(jJ3>haHO<(xiV#K z0jyPm%^bbQ5lJL@W0pmn^U($Pt<=yQ2Q|}5=v@^udbzH;DOxe4>CY?xMC5PPb6~E3 zt9G3Ud}!`#CEiBrXmZU@@B4(`6U*&2Fe zKv*7?6ZVgp;wBjR^$X;19HaofZ>o=1Ao~F=kWcjMA#^cg{^oR9(FX_|ztq`>CX%8! zY7LYBfF%W)Wm0U&DlpbqIcBnGer^C%Y5;59CY~ z>DArwo%_6r0a>V%c!#1(iz^gkMt#x?!QR9p*C+=JMit~MQ+yOI@S7!NW!bbggGX0Z z3MF?P!~%ox5TW$X>iBj)#TOFh@O|eG@UQj8cEbEON`Bz2|EN>VS+&a1_|2X|74v&# zgLNioW2F-U#~UNOCKLj?HN$QQzQ19ndJMP}O(@Mt6&cExK?p;M$L8 zzQ*u*D4A6v8!_)Mw9vnR_kBC$Gcy@#X4^l7t4ui5%=~JPGCG0fcMMgt?tfmH8B_ZaTo-?|QI_!?;S5oJ?Xfn0`16Hup#+fD& zCzKUcaxfrQf3iNamOZ|}fp334*J{&lx5wL??)={67T>oyvmhL~wVmS?-=;GxWIwgU zmA-)PmbyId+pHSbGpnFQvYqbDO^>Z-V;<3Z+L&|E>8yZ-7+Q2AK)4++DFO2lD~z|- zPqD}GWjwizxJ!AzuMp2TAIFE_rCc@HuH})jR}#5%&O(f@?QSTtveouEU^beR&=mrg z{p)5k*iIl+$p!~AD83|`+*{L=a5DZLEbh>`w=O5jxX^*+PCaxk%F;CQdGn72LB`r3 z^V4uIXhnm81N#nPe=eL|3chm=31hyhioj>Zl*@wghvS<17yzb(NMJDT8N<6r&8+!C`a5t|XaI5R; z6g?!+g1?%RfPL}5)r9;Py~d6X&7)Qk$DoKN6Aj4EzhO zr)RlC>jG;sItjK9`hOJx%B82`9Z&0Nnx7NI`UK0QTpf{|n+x~q{-Ys+piC9SL1fR*lTLJfI}d;PPjG)r5hpto@*;oDE;9ZLGy}e#7XGJ#8?uJc zOuJkzW5P+OUx|hXlg42=a?RkcQ+>>yX&)~EWDkwoTp;EJ&SKqSd6Ve;MU>fO1#DP4 z=0{AcA3s`CXW|a*S^hdM7*aG#_Z9xNtT*!EyB);VuZ5#RQVka4^*!jx79u`{7p!6d zNFaWL6TBt%wL&6;d#~tXkU|I75&d5hx8gDodjl!fKdOKIG6=gnd10R`=}-5lxYeFG zSNeh{Pm-imxF+MEfN^6Qpvc$EJ>~j%3MYsH?>ljp{neuWU9i<6EuESPUH0{OgC&*c zXHd+4q9C)O-DB~-YpPjKCME+WV*PCX+&OzWv}X_eP!s_)a&C%^ zHf=q?*RtzQ3dQ%1PkVq!=gza=(NLxGM^WKQH0jPfzHbl=&Z0$Xi8B(z^Dx&ePUaz~Xb}Yriuz5c3s0Ww>9{&bI9r-^{S1cF9 zwL{TP_h?UDLS_I~H6xh$+X80uh||j_eFP(n*}@new<#6uV-L(?n|||+leonN>WqDk zpB5E(;PGC9RW*a2z9s3%p#9Ii2;u|=R$AoUAP@K7lD^bO_ai^`YEL$ z{*a2>_Yq7dB^J~LQX*e__0fKqqAIK{a@>eggbP&A60Z8&VvwX zgc6Z3=PSFyHCV4xTce3F<8O8bd~wMQPWg_2s^Q(Kn1Dc+tx-2=19sSyacIJ5!Hn+kCs#qJ0&1YC~qJKWfAwWsz=SpXLxde-VrNrZ)V-te)h{q-!Z|t(FHCOX@=qP-b zJ}bbV3o1lLH(RMX?A1pDS@`2=L;vdYlo4jP2A1^Fqmy+==hC5ZoJbs@1C`4H>f6po zy#E^DzpJ2zt1&z9vyF=G0Wq+wg7A~GOdMwiFAYP7r65|Bq0?=l_?rqfvh{Q zigQLLZ9%MFTaS#h{vN9noC*hfrpj(xWoPi)bUId`$>#BDaDL~=?d3J-t`t8XEW8^Q zX?jY{2491i5PP}?&nE;DVQ{2f>f`-{MS6%z&+`(@*zLNaQb;qw;<^eao=(2k@{6=^ z)}ve06n8$;a1q@(%`?MCXSEoTqM;w2UDAfxL}dnK_De2aXUwidX$ETkZsiCK?_sPF zvdvNTwNBD>Bvd^)ab(zW)^t_Abhk-Spsya6-!HqhVrUb>^%Y4g$Vy>`1g?fehDkdU zfx#~j2V(4Yj}1y?$A{79cdHxa->qQjUKf$_@TwGuou{7A*ULBx-4L3;i5I$?`Jev3LEC?+I&nxZ{|;%ra>EM* zb|iH5)3vqRBd+oAr1N^h6isAyQ;ze+9L7`rh(YKBY8WISbbU9P?R?@xioj= zupGC#x{7RT*2k#otjlCuVRcNqVe)Dy)bLP73yue@-eyO~M% z9uz04t84vXZ62s$0t7r%(SjfGyEd{s!%THG`!;|Ms`T5aA-(l&4dG>--Z*zJm-NpY zsQB)Ny`nyE*LBl%{tUAV0GBqBt;&$sm~(n_y=ivEs)?%h7h)alI&9ys82yZv%SvZ$ zmmVFj@mY@D{!Gb?#5y?v8h)-e=%*A)40a*;4G5PIy{hEp223GEq(F4HyZqZ$e(&_S1nsFLnn4 zcC`6}>j0Rl+9E|jd;KFgS*%HoY}SX~{E1vo7WhEq``jBcj{6&zgRurJ>yslQ?;!_D z{g+#3SK>3n_rW+ItIZKjCo(D?mTZZEaX2dNLsgyL7@3|O6F8Mk%&$u+jwY8bD|_p( z$VR5RT^k>}u*BD5m25-StwxmlGi}5+cwIlvTW(}+j`woDkik)E0InB-2WWSEw`^xG zk5QxPoGIWkRNOl4n+XTgjX@VJ9jhNb$}*!Luixj?X8V0bf<55Y^OQTiLl=6}E!GA7 z;#!?at=)(GH;xxWNgKG(A&JDpcPn=)b)X%**+r_OQl_FyrzZph(ew>;u9E@E_FJed zM<yTriC{bo9&bGwOw6_r66^sa(r`NXfi}YP%ixkjY{ZdK1fh zU+Lts;;5){53Xwy&Gn5bk~r6oTYVWz1reocDqyZK$jAASQ9&!CEO{dpWRuS03fU(aNbM zQFL(qB*@gv3#IR?m42WI=nG!36bh?iGSkf}n1W^b`6OqB(6RUy zmfCJ4T-obfwbRhA4S^P}R}#SQ?+2|fj0kuSokW^}*@M2@Cp^FZs!;vv|dpT7|T$uHV7TJ<}eGD(q~r+Gg# zT_3x!+IYuI1qFeNdYE;1o!i3fWKoO8XiaV0@fLJcdS?{}ByACT?6jboj{A>On7lQf z&(D`Cx9Ryh;^}9#MeV^=GKQT2d;1y%U`ER>4PlU;r*svDnlVC>>67?G@1`*MwAwYD^rRM{f z7gcCdQGt$z8NEz5Y7z}QikO!&kvp}R_LOCQTGdSdu}rH2pQ12|la|A#YlkEA{SzAT zv?p1Rm$@ToX}cLtC`Wv;^2~i^-L&xZ*HD$>AP+0bMFF^x19 z#40kD$6i&IB7NUT=$}&($$tic8XCjlJKw3lOL6Cl!{x^{fMhW4aT9z(J@C;v*ZHAI zyQghlI4>W=VG-#X*)Ikh*1(jAgs_te<58DJ{ z#=T9JqDhgyKs2q*^9%UsNn#4z&ev zQ6S~CnDL=tdII4?dINhWG0q@J38SqrP&V&7J$rt79CLTZ6N96sydT)z?%`m%^caNS zpv0e7^ceKILZ@))$W_G90zVzU)Bd)fk^KKer2j2M{cjCDaun9IU0;&4;+z8}xIvNE zrKCu(5CCuvQKUaA!*QHrIuEQseYd411Ag;yKz$HkSBFIVV<_EtD8`4R8_16q914Ke zH1ChjFwuCjtO1kOBcq%WAUKYf28m{69lQ)vibX%h_+gT0id@sI53~o%qb9AwO>@KJ zyL0+Gcg0?W?~dJ2GeD#*_D`jzPdcaOFR(`HB5irA7?aa9?pLrLSXo^TSs|7v53_dv zV|F?=3$vPU(-MC|SlqC1^)*cES%<)S4xIkzA1ox2JY_d133{PpKau|9p-}o^xvlDH=PsS zIU8=?IcENLeN#&&9VHM5|H9llr$9v8fTVNBh52)Kw@7wjudO`Ep%db;=@w{iYJ#dT_W8cQKCa6Puf>{cjxpyP_x-D}LX{Mx&`=0b;NalUq~D6Gz`?<@fPdM@h~Sl{ z_qD3v*JDR9X*Fc<hTda0?; z{5e`k?fxk*koy@!;4wV>Yk}9Vu1CnRpR|p;zW!W_O;4ev6h=W2f`k29AcyPq6ZjIi zAM`(m9(_E8+p;l*iaz@InS+y_YDHw>cC~CE#dE-YeScu3!EE2V=(w|_6)^y#<&ze? z(DW|^>Ch4!l5h+$Y(^?BY&i8No#X)+re%4XZ~++i#EAYM`}*WgJ-mPHF~p4xB0>F&VFIzIl9d{VPVS zbbBs1pfJ#v#vMzfRUsYm?=7I>fe4))6D(nvHnHr~qTk&IQ?r^q zxf&15xd-SW8?__#PB-l6J|aZ4ziE5w_zOo&>+|aB2Orq2>+as((b4(x=@#c)J%PG4 z8LgSw_36IEt;ZQMIy$Y8P|Ee$_HecY)eqRCNX$jHpRT1#wY(qfC&sjyt$-0b@P5n*%chkx!U3OSRUh6b+o z^t98#MCAT_?b7OMTgieCB{_LX-#VLnq}9fNU1(J3kF{8v9 ziafxitfHh{(zt(ehZpYq_n{&iBFnJ?ChC@3!+GR8i9;a}Nbt%NC9wdSDvF0kv z0xr9}eqPegzPq28>eai29){!P>Sil^^npU5PP;=NuTB;W_vf_T+}wWq-bYt^s>O^- zkl%gGtFCc48lkRr_WU+h&IM;}V*_z^fnO|k^i|FZ)BPy2gvUBuY`5T*_~!Ir5-&c( z{;X&Gk++KlSGo1{CmY?WlO9G+ls(vlZgJUiYkUNmXv}GZQ`-Ja ze6BEUGDjgsOUvobWb}NUi{t5}@xN9a_~;fG@$LAkNDo=(bD~umD{}E9HvF!xKC$9S zoS6cZ+>(ltfvTS$6w*C;wR@RG#X?Fm>8568;ylT6pOXjt=KE3|fPpK8nTXM{{1z-G zEn;asG30R7MNJ7>-ochiEU^$2cJ~o+ec!!tuLB$p{s6sE>VTZSRW)T~BM24bDLGRV z6$^PlJ3A~PeK&=;NV2o!eo!@~!7Ej_+d>WE@Ll_zZ<_5DpHJGpR_^%Pi+qgb7hQeb z%fZhCr3dQY4En)WTg=OHDJUpBuT3Gwjz@`<^v}R%YOw~h=;@;pWJDs;)#aM_l|@yC zsVS*}i=>cZH2=|9?c^*|`h>@vOXKIyUk=+2e4?q-U5@jQw#IhZtqZx=QJDjB9-n#$ z*WE*VB;@fm(kyXFQ(8wv$dZK>TwI<@`HIMO6?yZ)V8a%xO7#swO1b;#t6NSUMem|l zyJ{mpNa$tjTogI&P0s#YHE~!T**QyTBJ56RrQNz78|4!egpi*;sZSlwoz70t}O{70`Bnf+!yLO>ZA}jodkK_lKwvx1Ot~KeN zD-29c%^c3!NtJZhzp0{ewjawr*+}m^JU(n|ZB14+((LLRU>Qcj6;q2SFHn1~cSowr zs%vd+6B^be{cMn@Ll9Riv!tack5{?UTx$GDDg54#$fStU4o082n$cRid6upRxBmP|wX(b0 zQy8b_;1oDH@dBLN`W+90M4*nkJ=%;RoBetRM8#SaQVO9G7Eaww);_fnEEjjww%{r! z5c!(!Q2O*{g?IZWO{SpR=dv)d58(|A{ILk*SuD@u1=M5`wt8P^?ebMBS2vbwJ^Xh=?fc#77z|NVo{KS1>b5kwb;0 zoOG~VG|tB$g^D)vM>PSUZ*(i>_@Xy`f(A|9GVoh*sH@#c&{gpaHte(|wErgNp@wxr|>VW5~AZt|daWPBZtW$HID45z~R zXGla+FE2FPVwIa>P19v?IvLui+muyRqdV(KSx-0n)HE!)E4Ig4*qmO{s-s*RcOt)S zeB-|=nB!+(NNG0X{2e+3e>r(7RmkHlU*DF$;i{r?wY92!*O>IGH7GjPZ3nk1vzVRg zH%=odDUF!|x%idr+vwK8Vgdc}`s#030|%4OW8-7%o_o`a1auW36BF-t_Y6=7lE*$D zuQRl3p{QZk(9lpTeuprtQOM_g@sYst75d{kwb!$aXg=Jx{fz;6ZJ|3J){lG*!hh8I z+So4C^zVJOI<*>&Fg>#}Dva5w4#<(Ko!IS;+?gCU=i+l0IB}gJh%&g3ua3hXm_woI z6?rBo==nY~!+al#NVbt@;&2#~ISN^sK^swcJW99q{Bv?S_IJn#^B08_s%uj&0nW)b zSuYX1^f>V#h1XWa)Lf@_Gvme5Cx{g#@fFPE45Hf--w!A6P6&_%~K%R(|So zy>0YAJ{f#WgqkDuSh+ASu{%*I{xXD7P)cfQO?H?6cjD^ok=n)apMja$pRG^Hdt&?} zu~IEvI+;8Ds{^!lZOXN3@}%vh|4j7b`V*=g{2Xb!eVS)3YcL~IJc;!JlFGTmGrT_8 zI;J4MUfO_QHdEQ@v1>k1ZZnAEiL{+fHGI60e&szcnPI%lhL7TTWA&O^WI1nbrQOd( z@pEBsbNlP?s$^N|U`(+%P6_2h`@@V_1KxAJ>DOOuFb8zZ%FmzY;BYG|^FAFCQSiP9 z(#n;&Z`Cn1r3r4j34-s8Qevh|MHckDv!0E*evNQ+c0pZg>U_twseJDdAduT_{`|I0 zq~hC;*n9tqr%11;qYf>dm_!lNTc?LZ%TJxW@~V~lGi9WMvB25mGcsyr{+7ZQX@0Y>8!g7`#rVkSqqR?Pq z-1Zcbv~)p%6?p}F$}3_TW0@D)D9T^dn(##XYlOcGt}J-u#BDjWH2u{QCz6;0OI zR`*2yJ_2*Z% zDA){^ga@0iO+;0WBMj&C?gw*&LUVU!jX{q9Gqf`cj*OK580cC7%E!06%SMjSlwINi z8|z{7o*x2j{vMUK3WF2;0}Z@zYo;A*!m z%1Op)Vq$c6P@6^CB~Q zbSoq(YFX?p9X#4Lo_W<@AHm20p{C9n`k`tT8$Kz@(4S`B9P>sLZ^mUq!FEIiJFuXj zK#Ev<3H&-dKPRVQ$QyEzof{NWE2qHH6ch7G@=Bt}cz=91?Fa8`$LgmdT*gfP<4`qk zb(Jdb`Z__tLV|j(2WEzV=ryPJ@k@J3Y^;Apg>y`HQ9^ZkV2*hQcEPa|Y1iC&qd#5bZ@e9v3^$z&dq%B$m!3{5Kdq{E z;|$6lF8OKt;Y(Ul``(xuoL;%ku64oi%#2d&Y^;EK!(pxiZ_JhxexKJPyO=wq^D+#R ztjjhNwy$1X7%y;I2Wb^gU^OSZBG-a?Q8r9#wYoSO#P> zJT`J=osZ`H^HgWHtYZCz5F7r!8|{t>$YhyWm1ef1T9i#|};c9A%DgWu(_6tvP)J zVY~-+bIqPaRil~mvUfLv0j@MRb$TK>&T80cM7%#>D~c4Blg7n$yrGDJ+i9d+x$3F4 zjUsM*f<|Um{*m!G4C?#r!3xE+j8amT9*8AX+lEyZoc^rAKWgg?b}_Lam!_1i0#0=9 z%hyPIX5^$#%CHhKvHZuUHk6}C+i^B;CJp9n$KqU8^fM%SO~)=ST9vKRT|Leg>4SB$ zT68j-hoMoHr2FMQ1@K`Rj~dcUl3j*smEmT6MC3@CEV*)3T|`^0FfntEX1vOqv*9*9 zk0=Px2qC7I$d4XvFCVOZoEYG-BZn=0<<`(Jx3RHzb@(Z{I$r-_c)*;q*I#3K{|yjF7g}t z$vTA;g{riuv0?DFbi_<$^X3JJ7tKr?heRy7bWum$;e0u8c&d7< z3RZWt%u&+AGH|V)%=M-x&l3g@&@lVBM!~Td4jyG-&dDTh2AAeqB zA)QRF0zWDu0z-U@am9_r^l#G6!QkWG+_J|!Rw?)9uh{LL-_AqO5OMSkya&|%;c*Pv zR^H~bg=H8j<^EQAO=4h2IDWYDr`s_FwN9?rqoQA6`wo)vst*}tbM?_LgS)W_We^SZ5g8+@xbmmo_53k{p z-g%9(Xl^F^%GqF!xWZj?DS3_TcY2^(T$sF`#2s1F*Gf#^r2VK|jr^mN^9&<-U$}ul z0~RM;$9VM&25Y$royh1q#)>?T*n}7ftyTH5jw{-~mLp~ONfr$6U~d(Be@?pP?x5+g zq@w$sq3r~!zyF&b7cKL;I*^H(mE}#p{8&m?mC@sNCG94~C>IyL+1Z%F(U>o3Mj8uJ z-hRg2Fl}VIrTCLy9QddKH!z87#QV_rd`6FWl<|P4A0mlEo2P3Iui%Ix5z+C?thoqP zMn*zI!n$>Ra|@&%@enf3r4W}?mQpZthSPBtZF!7I@g>x!2l_cE==t_1b$%C(UemWA zB?>3((rX~Bb?sbSRonFX?73DI`Tmc#$xC6%%s&tELH1C_*ZcaL z-chfd4O`YX!Ja1<%zf3B)XyBQJNPE@ivGgU;%){SM!DXZDp!ZC^7~zgOrD-1PFc`% z2@=Av{$Krc)6;EkZVsj`R5O>FtWJ7wG;qJ&BB9hD;1i0yrxp%Wc5tv4xwiUvG0$SK z{w>s4=-A*06`fddezq9>ovg+*Scd2vOPcK}H)K=Lv~o>-a$|Fhw)Ph$W`nWvgvM6J z?+o?)o8cI6_?dOS*LZOICi}M{Sg}&0XBQBlB4Ss38>5LV36JQT{53g~%s!AQi+xdq z<$375FM6o7>_N4JtW070j^BV{U|{nb_mjou4Awvz7723qW$_Wkl(w^N9PF2!Gv9W9 zyg8sPlBqm@uY_$IMH;!ZYfvqvKN!wm;%YbANf&-=y{+dOT^UzD8Q7`x*O(c~M*6cL zqVykCidi;9^dzS63>H19KXqQ8{;|FBCA|z%k76D3XWtmh>t5nrps?)avDB-J^4)m8 zD#Y26(oDMLGjKr~NCr_)01e)#$2qbW8$CL`a8z~Us57VR<{h>~Ggz3nmg*VYMM%a< zaH&u~1Al?b1_3Owq_GWa5`zjB{`lhkgS64R zOQz8N0BOcEyM8?<o6s zZxU)|>F(rMAH@Zt%nx2fS0A?@D$WfqlVy&OL4*rR+f{KH&O>&f^$u;+Oj1|+o$AjS zwE0Xj#4b({COf;G^;%To?w$2acGKOwl_mB!V52?YHHWU;_tZ*1vcs^Q+s+1O2ba?` zFWaxA^eX;v#WSasDnVdZclGFKRc6n&;V944nXFfgFk=#})1+bTmNKYV641_()dHC_aGi7ib^ECT~=;!;a%djP7Q zQAQQn3#3ME=FsI;o*7l1O-CanIdLgZAE*&hOI8|ehLqN=Dah( zQr_^|-$M`iDK!m4*y`#}DdKla#3ZRX%iCfN9?s8f{tdicBJ+J3Jfaz*IIxDk`$z;E z^85v?e}-vC;);c+eEy3c{Id-B4`kxZFJ>^}J?xwWha?E2B}9d`C?o`#M)8XEV`}YC zk@w4$4#k&zmumX3-%FHN=d%Ygg7Qg`swrm%zU_ZLBFI7Sl-sBR=(^rMQCsO~;)>}^ z<}y0@g~rFnXMeuSFLM7Ltv{KUG5j(BBLi+N+Bg_Zv2yE`%KL)pR4hzPx4e^4Yv>Ic zU={T>?i~@DQx~mw^^=iAyzg%(4cLuZsGgJYf6Ab{yu4(yf90$1wsch=oco+WAmTZR zfc^EU#Xx$~tNB`IKF4+Ij}TIx51VWP<#vPJi-s*NEk`FO#uEhuTvjvKer;{yxXk)J z2Tk`MGw8~#CKCuo@59T=I6r&l@tH6B)n^uwzX^VUKNT~YJ#ct&by8hd$7wZzI#X$( zx@rd4aQf#VrSEZ4dbYN=22CP7JQq8L%=$OaCyNZsE`PtgKHEvY zxC$8l8)^FntTu%nYLj{i#4<~-lR7H z69ePVy1cHN#f`Yj!QFFBP0e5O>7l8qB)V1B;@P8|uKPl!gYNP1WIjr(ZVSFm;jW1+ zzZ6mh3UsT|rppZ076*~SZmh*Zjy3bRStOJ%mroQAPfrccQ)Tp2-&pm^89-rA++8r6k~RVlybvmMw;QZ%q`^&Q{uNL{4su);cr7rFq(NNk!ku zgeMddT=mg`E7lW7AN!Txk;i7n#jtzCb!#N6Y`BJ$G@H&J3GG9BSiIBLOsa6*Md@)X zy1ldW6T|LhiK*#XPV*t9PeGA?Mo0Yv?HZJq2kk87z{OS1>m_GM1}lW!4# zkjZ!IH8cs8k{3nX${pHCPyYGh3Eg@=EL8sj&%5mg@wg~1*nm)oIk!s z5{t3y`&l9TP4?)Demk0{C+vL{H$9}iqkUy{GbA;YIZP(-)BE~Z46(0We(?VKijtBv zkfWynU--9W4Qm;h*#%cfs?xkhAs7FF9aw(Km6@DW-jSt||4hva1C0F_U6^#QG7alM z@752DjQXT+W~-VKz~1(~Y$X!byMU_Fl8$Gj5uY~VPtz!r^he>{=5#*#0h5lLrKM#IOgSV> zBM)2}bGMWJC)UvVz{N#XxPYLblI_fB_mjd&h`l}CaCLYh6SaWAx8lh{lY_K_T;1a5 zv9yX3#gllow-E%Re2^R0godi}DM-_mDJ4%Ok7-r0_6ao%{iZ8VopGwhm=QF`zHh?3 z#ojxWHcoppNhGsXhiA1FKeMtqVIR-S%m&#lM$|kmw!5Liby~F_*pbjlIT#y%yg_ta zzC3XEr3^ynygDIDzAqbWT1<+eoGOC}YWQ5jH#cW%*RRe~T*PAF6pm$w0c-I6&E-AY zLB*4{j&^pdbG;4`-XNMtBD`s{y_w=oQA4Gey`?3*EocJ~SiR;IIzgzUa_^U!m&4tc z%h_MNcws$P9+<02lRV#O1Dsi580y*fMEm@FDt#<1ySoo7@PefTuKV@(OF>!xH5fV#at2nO_pmYIu#z6g&MMjIu-bA z-^sESQdv&;0_Ye`N;|l{v@pi=VeGs6luaEG^z-FdcTWG21<0(eb@B;AK=PsD;Yk=9 zQ>(O@RfwgDJUTq28+P+(NSj=58W^LGwRdpf%D){*6$G;${%!OM>d9?2@n>Qp;rC(q zlMdkbZom#)N9li4!U3?7BI1pRhldx082Q~hSRsN?nCAd_Jnj1jll5v^ovAPY4p*>3>Z5+!rmBgPLyO|fOoUwei^-3T3l+(@ z%(|mxnq;7eeibsogrldY2PM^I_cGzh$wtY2u&@)#Zr3WkYG`C6H+|!DnW@8NVmiOW zC5CJw)ADIjS)ZrPN9pu=Fwk;~QCtN?BuwB;P!@s~((6+xd>utx=h=qH#-j6yhZ+ z+U)PnL+cH9n(08@IN?3to0k~vB-^;!FnCExi6AH_h%NEMx2f^*W3E3?Xj+MJC!kcV zM=P`u1NSe1srTv?!mnFb6sag;YUcjScc&fezC*v{buV{M2CvM=gDP?}?if9y5{z$UYbnOAf4e6>|HFq5O2xLR zUXJu(pX%xa2O~+|sHt&H7E8T1Hui7wJ@a~~KtMMLlQD6+8{y!&7q*)4>Bh5~I6m4| zA1h|f4$W|2JX`73D836A8{_%~73TgXV#ClHEZQ1`Mnu5x;P%6NqUbg(b-_n>b1MTt zRCRB!sZw{w#_>EOGqcXB1s_FV@&erYWHFK#57U`5Og&!%KeAYJko0tWn)1L|OzhFT z=c#Gyb#acXD@mso?E7nkE6e#wE-PppgRL!-r!PMMhph_>WS}O5(p5>|KerjqGg?odDZn~FfF!JM#=gsZybTtGEEEHPZ%0Kh-^P4xLzXn$q2BWhi z(R?W=ijJVA7Z#I6g~JRn7udX_fAZAxr^{T)(tT>bZG$91Bt6i+)t3bz%Tx>2b8R!+ z>Bh#fFwRDe{I#>m4NjwFDzL1-2sm3N3-6bj$Z9uwJ@F5I9Fv;*CX(=u$-|7?$EPvS zw#jkBwf<_NrG63=cf`d`1eiSpLf=f=dr-3>8JqH@4-63?lkd(u8hyTd>TqfdI1L_W zt9!1vSh%=RnVFRG$sz-t`I<&Hsk(0LbmqulmB=LtM8?HoZ;$8q9 zOoo@K1A-0O#>WHy{E4c+Y&3vWKM+=OS1q1ANr$j5ZESSrJDMd6ueVg;m3YIVybk131^5lx2SGd2 zsyU_<6B7e~e62|}d+2!I+ZBE1RBcksN^@`emLx4Ljiw)|hL`4k;Xab~axB;D;>Grv zhXz>b7j-Th^Ut|FC*DI%b9Cw#1ilwEc=1NT>vDx)!>9r3YK20hz!j5AIaJYCMf?0Q{i zT| zbnm+-c8xV~f`WBoFnq>Y>j-+2&*5Lv(gxBRVEBB$o3tGheif9JTt%L-MsrM{e<|&6 z!HoBa%s1)9MI{gl;dk6%zZiFqAQ21#D?7omFQW%L@h9q$|M~52GLTf-7)X`>hTcv{%V!kIE^V$aou;BDs zZ`kweyL?6c8Uo{!*VA#%ES5g1*F=oQHcUQ_JtDHxrbhHVR1ga;LXg*ay*E=4Ig!k( zZe$YHPygoT_X!>g1}0{YAADds4K9y?cKp8%PuA&}(b6_E-cza6*1`<0C2kqxXbYUK zbru9sEV@#BBcq#q(3*;cuJueTY%kThLSe!Q_`No;f-X8DFV*;L*$oLW-Twlmv(`2BZ zX9~#S`sq{#f_1Y0HNW$B2>q{k4nKr|EzXQs4B5ybjh!B{yCU`DM{8~{JvUY{{%hXi1(GsI@!L=f|TO5#NEHP6Eki>q+(6`KD1qZJu-w`)t) z>=Jh44!UR(w-utzY&rZ(7Ll|kCku-o?Ai47(@>wGa0uuJpYQP#5X)(4@qsW|-#2c5 zQ~BgafU9<8w98)IUWh7T2fFOda2Q|vLR?%B9Tahp(1`y4Z6l(C*SLc*Mb!7B=0^X< zxciC4Ty@N})C1kTcso(uc<+M;K=Udf-kY#uk-oHBOZ|$_tx>c0Hpcz??-ojz{nxx; z^RAMev-Kv7STqqEe?EGjZbBmyI}}$Z3Uy!YBPgkY=dad;lBh{rQO*gqY@=Rh*G;0m z%I!!Hr0D(-6%TIgCK*cWh^b+ke5sx&UU(JTnY;n>Jk)HCp_CfRQKkg>w5KRQU42gh zvYUEMq|$&DtPdmwCMOetR^_f3!ZI*K?r$-j@#MJ$VnmXCQM9D)`f}!Q~S~9m>6kmYbF;Lm#dir z;U6`8|HRX;|G16AhlECTWQJtF!^26($Z*IT>LstQuYaqkNXyR7e$dd>MI;H6fL31( z?YsrA13^JDd-MekPU@t~?RCXmO?`tbcBaf#dfj{R5Se1Jrg$(7AmPLX+OaN!izY4! zUA$dmj5wbyHDRO$@eywB_zD9b2{}2YceO%+#dh3jZW;W~@EYayyo82_+3QaRFlVal zG*^cc*!M~I0|JAS)#8quq zSfEw%h2>pcnc0Q@12risDymsw)(=Q+5cWqzqc)#H2Ao{$a)OBZ&U#Ro_gkivZx#S- z5niThp`9{Wk8N0 zP*wja6%dQNF*-65qWJbzp+;|PK_JE&#f9{Q$6S83k=-i%7!7sNRJ9ve_$6g!63V$s zN?#feX~O@u_W#DFv(?V3OUud#gguxFXUo^u zLRr@unm`-1o~uqmBbr!RTr@ndezu_BcD^Tg+`#L+{Xr6y4Dl7TEH#2 zatzYDRrP-vy?XUya!ytc84CVV9T9Fq&Xzdn1b z;d}G+;hb>HxsP78ibtjOG*IS< zpW(*cz*B$>hDtiaM4o#1(aL>m{Uk015ngA(v?Bp*4*wgMt=@<93ah4!d%xGzX`Dhg z6d<$QIy*}Q9yX9ImX@oR@Oq(`uV3Ntq)#A{=;9oKEzDQa>|m9{D2l154zL3H6uEOhz|0+A4%*A3|@kejFuLVuRw z;Vc?7?@c`Ql|9QhVzOx7(|ooF0YtiuLF)TTVf>%jcD1MF2f4#;)v+c|!i3n^R#3D7 zf;TcBLVl2Da)ymhqF$0!9t7W-a}f%-?pr(f8Xo~fs-Ju>pqee$0#J0pB^fRr-r&W; z!7o)qkoH?w_X|FldaxM-0|`=PLwa)LFcUNAoc2bNe*XLbSYVKh`ps|Sj)?agQ8p5l zgCLsT+H}(w(;5uakr&y6DJD>>XQZ2=gpu(<`VBD5soZD5K39PNu_il-t^tb4M?l>7 zQyL5YE$|1kM*%UdV)`l?eJi^A1Du~mF-gYSx>*Y3%^Uq2@3(>f(6M^gvHY&?oH6hE zawu2z`}EPm$!*bmx%u?Bw1#U89Gv!5`dGNb)5Di9zr&Li-US2%JYHU2)^51Q!j>TC z<{sbl5>t}|UB?z$-;Knm!SUT!RHNYX^Hggr^hz{1B&RXE|MV@e2xV_X<2WA&*{Q|rxHHQAD9y%lUnU0K;pPQkm-40+n2-{9z`O^ zabGdXj*n{c!T`R?ZehK+>5c}_u>JjgFd+8#ZT6sm@w@Kp#oSI5+dK#Vg7|JlQs=e4m z`x6qA>E?TdB)Q`IIfD*Z3nz0^?BWsBCRrBma!2<8FBWD&4eLWzTe0~rl%rNQK2wCJ5K*gXKS zz>mCWbX^`hYIgRR(^DrN+c~+vadi%#n_Jafz}CxbW}l1PI&p*3GO#Ux^*vqUNQ=i3 z@Hru2;2XC=#^jFs@%|d>XHS`G-+OpObV73tFvWAg?iW}SM0aP={sf&FfH--t4O2GvF793(%WOXHs{s<$c5eadJ~vUu8wg~ zNioGi3Y^>WvTQRo@G2@`U;6J18TK!R{MhgNck-Vm z_dMT~$REdaa~+1g?zm3IDy})oS7Y!v+wPt{U;+XzF(^>qc)U{p(d*F--kH0ihx(Yk zpjAX%S=;L7q?E$M=KA@2E8sWsU%CA>>(P%t+de%Tz7X$hTijj_i;o{m#sfYQ=*v~M z3oWy~`9tTR|G%=mdLgFu@~?>g|I}3fmgi4VnLp+PxO8=O^$_YQdjcKZIeP%qmseLu z+jG;@gjLlXUF)`X1qCG_lLMrFuO=&A0s?|^+xak{w=J))C)h^O5dW0TMQ z^H44A6>h7>5BDF*v@0y12)bHRGcty2qn9tJ>YKzz_8ZKUj&$@$4t`~i#Om}ln?|@l zevwhisJ`s*e<8T}s749|CaRUJMFs4C0Iec8+vOa~*Tr*nb^Rrm*47={EG{m-YV&Xw z`J|?DldOJbN9F)(x-&ve@HpUexM6_BZoHp=f-mTT3ixipKx~akT>t#tQfY_l{v0__ z*MiUvL~XK7`w79$2~1p{7jz4yJss<;Hrf_+-bq$KE#S~jA>-Y@@9G|q%pd0fguUHX zS8v+Xv6n8n)?3*m@*tkY=h8wPY2&;fsM}FhZ zc~@6C>~Yf0o*hxjKZ~b6aS45N-5Nd%a+~HPE&a^ZfUToTPj8o+(cYAGeuUL!ep&Yr(x7cvTJb zCXq;Jgk73DjWkR`DWIe$G&H5G_a`qM9NfR{VZh^UqK6@bu`t@mfLSsr=N7Fnp#O?f z<}vd$Hi=9JE>bsrcLWhH`GG**RdIu*N`Z;;zeo7+pbVrg9IfjPH|whAgfDiZNO#uCamTq&9Yq2|>uP}J+s+HfdAL(B>j)`t zFEVxi6MenhV2GtG0#wcZT#gMGhX`myh=<3$vB3FZ3jYy^k>ST7tnM^qnZ)6anQLK@ z!taRd_Y{j}c=c#q2zvU|<8-%`Hr*@XAZYK5sPTu?pa^i5m@_*g)>;BFVrKwp(JD88 z3MAGHo4P2uuWX^o%F6D0kfWoA|MS=g4*C9h>2q_G{oa_2!wH|v>yR8An0_nE$y;OsA4Hy_ll4(BPQZ8KYU*@C?k(2t^xDxy^`5Va5OXszMOciQJ>Wn61`o^^ zFPiHPSXNF3MSmE*dL#Dc&2*hB89Y2%m<_^L&JA^rveE~)8sY+3S{YAgb3gW-zU-d_ z2Kg_=^iV)#>s-BMEiDN-O&i~HP4w$lmRe7%JbLtKs@~!mYh-%YK0x`~+dV+|0gT6Z zCn0jv$zy#WwG#-+5B6pl@d5Bkj`l~|$8uGJfm+S!d7e*va|IWU*VJ0EGr6Xw9D>O( zN?8;)rk22J@UfvmSpFN=fM|@21mJo2B3}5x&u<_3fm{e-BqCBF0uRpwm&M4}Tvb{k zoAA)krR;R{Qo}nTAT%d<{^T{mjF~KU+!`?{GKi+)yTo?f=xgckM-vrYsHauLGu!;! zTy8!52&pguAh^Y?wQfaG5-N^kM8IS}4D4zi9v=RgoekI2PZ|IZO=x&Dt3&-i5q;|U z2CAml-ygn%~p$YeO+2sgZ9;pd1at^ zLQO*x1lY`&B{u*L-iGzta3JimqTHrhNtUwE(Shq15h0feK_(B=qzSbGxq!YD_QF3f zAf5GnaT)C-{f0~yn8zh>j=Y6AfjWZdcX zl@))PtmUERbO6g)*bdHiVt!_4$A10#HBkucEXBVij&a3WzMYJ5+Qts4s^SGXo17eT zFR%K80SFo#tDW7b>llJsm|iG_xODtZ6)h(x76>`|XCe?r1_4@8vcFS&GUE%|a}~K< zd{gwU?qRc>>eU9fSH0eJ5pewird%_ zqFZJAg23JXBC(i_@Bkn{e&8yAJ*5S=$BaPQ-5Ob=2YC0W4Xa5`o3L8thFU)f1|SpUG&fRIJawkd$?Bp2YT?tODJQ{RM@me zh(&S8pUpXDCW+oV^8nSnH3;6+0EwpUp5s3Y8!A77P)RyAhch=v>ootWonmjz>0Vad zAd@qF{!6N)zj&s^+@8=+#3=BXJRo#6za)**Jwd;?xHy$3W^DLwN9~XYa`pQ+TiNUZ zpvnIb5~x21Di(;8Ph8#ccsVwSXl7^E;+j7+Q;;p8Ipf7GF1gE!Gyof-y{=GdMdtm_ zNdzA9Lzq}t^82jfCaQU2pTHB$yP)?6a8!$hB4%KpQF3ubsFQj30b|}CSo`Ys|B?lg zF{>8J+`3f&r@Qo+*C8e$(FUnb8pX7p#)dlOTnEPspbLh3UA8|c3!V+;!3A4&iVI8!}5Z(Wu@ZVRkzdinSQUL^w3|IVY+Xp0n z9w{oK1CL%k?+EM@E$;VC1-?Jn%WUofYyD>#;P9|()^u`TxZGy)Bh>r4#O-K=LecT! zf0-gD4F-C?s>{qpz81^C^Lt(bfdE#wQ*a@N0{ zT?OVa{SSATawEYSHhpa$@lpUO81aUj8SCnn$?)Pk!-N~eZFBUe}V*vL7 zmBnX&&o@0iog(NuP%s6khysB4hbJe@WrN0Y7AvkUE*+z-{wEs;_bBdbJ?el7=V(?% zb*H}x>G?SpYIU})_*P!tcsouSPA;7%zN_mkk2T%(#_2NdhUeLCbLdLb#_jEIJ6<>- z3bwCGvl7`LxvlgEg00#w;6S7TXeYl-PBg&!lU7tTTj}Trq)VyF_8lCE=1GG~0caIS z*8JOZwrOOD07mXZ?*%m$H>9Te?pK?x-hF9^@6h*;UKRUREiJ9!D8p%3uLZQ8;O_2@ z#uqH3Se19rAjh9W)naK0s~TDIPRyX_GFuJfi}2oh9~_tnqYd7L!5a zr{*`GfPM1=INrDoWo!psxgfE?q*EVoco<$?TZ;i=jCcla%>#j-;v$I#%R=+o)K3fMGGcB!DXCVmroF6lk z3xjW!_^j&#wza+ezxq`FNg1xX>HB(w0wOE*7toRV3$RS@2`(^!D^oAv>Jr+4Ch}kP z-1`Nnx0HmtDLV1}a}*W~R7CMzX84je!&m*1*viI{VH8?#OWNZiku@-7l`^L$BPqg| zt<+G}BbaH}6Y$|bhFI~+yGoEi<_*kMOnrR6V@Vo9f4n7j6y2~_SoemyrwKYn@gCH# z>ASk}!ac+?derl!Wn_MR|L#XBT+8X$!SxO&K*cfZSBc3^_Rs9}=AND};14Hv3((Qo zCWamQNLFy!r>6KCzJB`j3;4QkzgIIkX;&1V@5%pZZvL1hn|R``#sz0;YDz_&HZ*%M zka}PGevJVWE4FKJFgvo0Q}q$;=tR4OohZ2BKcx@8d`swv+PiP-?tbcLHF+n0d5uOz zLj%9Ke@^l7wW>Xx@{Vjsr+j==wdvrU-!nWGOcIiO5CoicvCX&Rw6QeIT9;E4ee>!S z1_IKl*?l9cR--k2FuHF(Q93*4*WF!f7YSQh1_n$Z-@Wbny)(I=X3ePjJiu+h_r64Zs##R6E^PPQlL)%pdNb9A6M=) z?O;1s-E1~nS?aq$n&#+{K(G2~$Q-!a@tQmW0yII;hK7*v$mKE{-R|!GHGg!|M3^_q z5nqnVavu0j2y*fht=nkDOAx=Qc00lZqOj>w3kDN2bFWvl%Jh1L(GI?l8%Ar8yJ}St z8bIX}<6@fmcCl$bL9Pq#L;&;>Z%=Ndy3#-{XDPERRfRDs&#?e#im0gI2Dz-3Sx;mO z3sJRRkND8e&pmO0JisLXQ9Arl_0i_m7DynWMMXuSk_c!OKaRqP&SXemad34t4j8l- zNfAz*c3kJMol7panXOcD#KFY{Od`9aqN07$j%!{>$o)1F0;F~L?^)FyleaDD0y>2g zhKcE4R8&Xo8}B)D^L7Y`6xDmhh%(eBYA8&K#b_NuwIlcz4hac~w)Q=m)yx_%cYCrl@DNh7Jpj!m5OiQ+vC+b7eE9N~ zvF+J_V7pgYDqAwxM5R`m*z~!%j~~|?Fz*mxJ)D+NnPJCTE@?;DV7I-$f$+Do z^cPn7Pmike6532`Z56^3n9b*FE8aJ_zX2CqIadvpgaaQhkw;5gn;lGCOKXgr{|XyU zHi1d<3F^g>am2lqo14>{EEOXwD=Yi`cXb(4)fQMgEfYgOrB^I<2dCWfbZ~2hf_emq zba}4FUn58>T&E$xnid12NC-rIDBRuMal+n&d{fKH4;wE8!DTKxsGME0Mm~_;GHTN? zh`6nDTyah|OIEbBw1$e_U5P4IS>MKWbq#8hkxJ%k6y`ZM^t7oafcxm9G{H}2j&go} z4i`Zx9QNCJhu?7>)%{|Bt4A`C%cF1S5*9t7ZWy>6L<`;%L2^N(Jj||FcW##!J2J4$ zuD)^sp-)XATUvRe=OqN}hL^OoiOjkp5}Ct8S9g0)fmclhrq0h_Lq(hZe!6rmf(Z6& z|J?tJNisahm4}9g0$QNQYN0;qA+w^+{LCgqMcXW^bQnN0?PfBEtr6gMaS z7eK_>>JfN$#OF~ERSkD@Bl$T#UczvQ3uIU99Xz7O^EJ1l=<4e|O8K0g($nX1+1vl| z?ZXG}i{sZ+P+&=}vVLMX^?Tu>vDiE!3YUP9pi)5w{}L-~GvocgAPP_mRQ zwAh#I>wL4;SSEY2r77zmW+HoqFm|$wC?s2wEF)94NetPu4n|`OO+&^QJlA}G|2)s@ z_iX>oYhL&3p8LM$y3YBWbKd79CBtsd;o?y>(^Hs3zeb7}VUuL$1C@^6-UQ~uv^q7E zM3$^$7noDQ>$LQR_UrA5=WblZrPr5TMLOVmP*qluf}4z-%%y)4iwlfFA=&>73Q7Mb zFXGRb17eai5Vv~uB9QD4trGBxh8L@gi$&kxVlW0q#uXzLR#vYX3(b@1XLxv0v+|B^ z3+vbvS%d>nm+yK!PnDsbkB`uiBhlzx{*1Q0ZaMRCq2U$Etl{y!d!5mt0FJd30~_a)a@RkeWDx! zf?7!ZOFD`ZZRDVO5R$cHFS_GS7e6;#C!@SB{4VVkC5!3)`wF8T!zAf!wWr+`qQ92D zXOd0|KtC={)O$r$+4py+$1$M-0^uve=LG~-4*w$K;=yR1k&yoP9#<32YQLFMv$Pzd z-o@VnDVo3QN={`nyjAR)vFYgES?H}YSQ({Z`!L|&n4E>Ca9=ZesHD~QX7aa-J&k@u7Lbf4&OQzU zHAwRQf&{4I{iE0d0#pXfQ#-o!i&{%uXIfG$RuP2SbnNhsarqjQBGnoAbIIjn|H|sB zUYS|7Qe)w!8$S2yEzc_zwl&feid3QzKnA^P66a=Tk#S}Q!=W`=nmD*c zv_da0+Wbh`Fg7VEnpRX(^-8F)^qT&|``jM+C#&LK>t$fHoV2w;u=kn48gCTkYX?@J zp5wKzQ%MlfV<9Sr@`3ym=nlCAC>1@`@SWfHKsyNoBm;j4b%%C;u}=_~e$W$PR%o{P zF_7@NuaEs`3=OC$%}^xOe%Q0#C&@W{2k2Z!lRTcAo?&_velF+hO-)Tdr!m5XbM2CQ zVOr9m)3=%f)}An&q;_c;szlWs|%lc29qU$Kc>)fVS zgrVU5kjW=Vh@&MNzz)(=-o_LZXm5Uqs11~JY;H9<*pEDR((x7vCh@4PO?PlG{6#^P zjE)%n;c|@-75j$;n6~Dy;H}^DJ&`eBsuvGX^!f(4Z?!~@ zYpNVDc43`10O|sd37#F-*%|%z?fol?ilCVxs*2U9!~)QwCqI#7>^+8Gi)e=gXP%8L z+DVM7d9{>%^C?>pH!CaaOKcB1Het#D>M8m7F>~_Wa1qZZcji6E-kmM0p*wi)T4rWm zFs%GERIit_VT}FF>TRzq69^JFM^kgtI*R1Bi7OMSs<@=fa&j==LNLy2ZhpRP)5B6d zc$05@T)l);`~JOtiG>1ciPOQs0hAN(v{C(lQ%%XwXZtkii^VDSYqf*hP^QUZz<;KJ zTaE3VacD&xm*i&K`s1=79?=}~@P$P=h;e_E6^37ul+4XhEX&%pW5fHJgmQpbtN>_F z`OxgZCNFD)y9=@^`UufbM?Rp?f-ZO+Gv`WxI+XK9NFsYD-fhOM9JP?$zlPz#v-MSh zdp0z<(Hs2$ynKHx_cyF3W&~tqL4{(~d&slieM9w6W5~9w+y0iEVd5rWIE8=>q2m%5 zihOfZkqPt~rC<-jF5;4eNUJsMgN@hW($doIgjPXNIi4MrQFi+1^tnD=6952*Z!f%7 zsC1~m54UTWO)k9}vJxsB z!IFT)nk1MUcGhckzIj`O!h2gYAZeO5$~!7Wk{x~`7POUEwpV;C8k zUUAThwvKSdgSJ6&aq$-h@jTM@=iX?(Tb}NTPv(vGU$HuI@|@Z)nirf;eGs->F<_qS zETQvA?$3HVNMH8H$XYOUbapC6e8x48RX;~_&CL0-|06x8+S;C&=6zt2zq_vxWNpr-76uUwGnzy8AGb@mWpk0w3Kn`vB!krC zo9XCy-p41jD)?yY{2hXO1?s0J$D232rY5v{C{^}LLhsBln_|n5eMt_GiWE|RncOIp z@=irJ76Oe1AAy&~+3V4)L;eQ*rF8itNuWgjO;2@pD7$wZn%KeO9&8CRrS&;8!Rfm}1K;*@j84A-DCFHu_3CJ@y`T@*^`=+ViH2O5yDG$^+np1?<*0b4 z-U4_Wi!11XT5&+I~O|5?&5^8 z$(iIIX?SUm3;0P}aW6T1r8LOkUaq%Q$+&^Rv$3CT-)K<0Qi8_^7x!?H0;Q2~;jtV2 zSbw!2s1ky&2?d?@)$4<~g>|l@m6aV{maVF0*rYw%l^PRo!Vegz9Q}yixXZ+~0oiM*t>T^CI@U7y>Yobq{47Z@dY?|je5pwjQrH~2rF?t2PHx&tmF%C?rY2HkrIVFD~1*=Z`_Q^fp!{k z8CrW5co%x(#>eCStWA(>>fE++ZGkOvJrePS>Ie52e|ID&CkGMx{nZ#k?C!oU=z;8` z{gP*4U+VwFy!Qa<=IT0#fk8wAd1{!Kavha?rud|!jOU4gtI8Ppu1Hs2R^F&3Z&lYY zh_kSY@6I!!X>IqJ7In=4!xgX!N*iu6148jX_r9=zb- znp-ei1LFE$@zH+@L;mgXGmwt|5={N~7mH`st4EMU$GP2AUH6_TgAQ`*6K|SZ_Gvd; zKE}+hX>TU88yquFJi}!hV573`=&TalwvbM+mU!{z2GlC;OVq>x4t)_a*5v=g=p(sxj|K42uR_8oBpCFeev3uJ`OvLa;Aj z!R-hEy06 z-<)DTsFOVn*x;#~kL7X6_eC`xOF3Tv}ZS%JJ$SBle3t!b(F3K%r zs2##k2%06N9K~(1<`5JS`~e*sX0K5uIXQvZz`*;O=6@=Z<46Gt6NHjyxOtX0s5g*b z0Nlywy8LTPDe*!z*X7ou=!1c*;qr7T+iLn3P+wrW9}pnw z5_kyA;N=JD@k*z?xS4&>DnSA@X6c)N!7yM2T~!9>^^!H@3C}Kaav1{AehRnHfFF`c}^3-<}uz3~(KTYd^4=6QBt{34`HR80a)|WM>SL>BskH z^_qhoz63QzO4% zTTVdfhlNFXb&c5(U1l+C?bhz0}F$rWJag8B{)H~X{eX`%G( R!K`bh>jq}})w;Kz{0E|`t;YZW diff --git a/src/SketchPlugin/doc/images/Arc_panel_base.png b/src/SketchPlugin/doc/images/Arc_panel_base.png index 9a5b9ed4a95cb5807180d49b6668a17cf2a36b7b..f702ca8bed48e2fd0eba6e80765590ff7ef3af5a 100644 GIT binary patch literal 13623 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ŠE&njb+{T)bQPrxJB-Xzt1oR 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 literal 0 HcmV?d00001 diff --git a/src/SketchPlugin/doc/images/Arc_panel_tang.png b/src/SketchPlugin/doc/images/Arc_panel_tang.png index ca02054011cb4b73ec2d6e950eda6e196622d55f..a14b891acaecd71f2a634254fdb70364cd604b42 100644 GIT binary patch literal 11918 zcmb_?1yCH{x8@)T?gZE1!5xAICunejyAN)`gJkgF?g=CzxDT!qJTSNi8{A=VcJh0> z^|t=+y?t9-TT@*<_jdP{?jzs%&WYAkSH!`jzytsQILbB`uUnI%Zs2}54V+GP#9j8k5;%g}CHF+E3&F(lk^~wjPT%Sz|4ZL6cQQsKf zFrgQ`*W71NUX%HXf>ACVIUKczPzD{}+5nlJF>95!&f1nQMO8@Y7wqA~D3%9o#WOzu zCRuQv>v`;-@FyHkvYH`cCoKXwj#kQ4Uj}44FqS9AyT^w<5s(Bxr$@qa$pB>j}jw|w7jl2W~ z)I|KC1ez0f-N9@21HPs{&P}T|ZPR&lu+9?$ri21zGPQ<|_&0g0c> zX5#Ky^G85sQ1%pg{+<6lXT(nZX=tNJCybX91H>!x#J%1lpc%(fC)x^m!c)h=Vpj)SUs-~C*TAoBM>^BkiMWq*xw^iCp-XuW*rele zux@!cZ=XP>hCb=L`diN^9O|K7sQ^&(dD&Tsnbh#^?T3dw82}`a7Pi(Mj!n)N5r%@M zwTip?&DDNwHROiUu)m;o6Z+!b;dDbsH)PtmvvxVa&wID(`Vu_NG2fPs^EBRrm@SV1 zKpSW(P0Pp>^VMZ4O@vJ$@a-_@;xqmp_H&9b^wvDHO0#8E)W+jikh3`=aiEC?tIrWaQ(nvi%&za-GHO*%GCYl4X|tVMdh=5yDbPnHD4qPXVGUTgS0*0q}7Ml zZB1H6mRjAw)O3s~!+5f?7HD|U$&nRUWJWO8Se`3PJHE}k|GMe?slflW1KtC6c=vBn ziDL zo47vRh>nl9fh17t=<5drg&=go(a~{dwu*L5sgXb6>OlSb;tLFpyg+&%x~1Lw_%7~J zRoLQFMt7e(ugj}C6XefuWdeV8DcB0_a&Ncn^!-)hc=AKZv1k8Ctk)-yXEs8{DJUtC z$fSbBnV6VzMcjKH9`>fo$;Es)0E&q;HrFSAu*rA|p?k-RRkUR?G7cAWdagWfwHma~ z8%y$iFuG#6g+2!!;s^){o!!9-w)CaiQu+*`-o7Bud=>8Y)Y@7;_$m>L`sPNWRB1;? zKEeV=VUvHH*l{Zly1U{H`T)C;pFfglYrN3^D{G*-EmtoEGOVr)v0-vS z55})Hi_PZu29?nT-^FAvFmK_<<8kEta}7=zyUvkDtWv z?^nHqL8gNjyHHX0^@v%zwLiU|qGMu;H3}s2v=r4`I7>8UP`!dfn=v-B<&lFl@(U+` z#}r8DI5=Bl$E8U^Pq=&glwK?#(_xzolYx$)I}!JFRBvx@DiOEP@7iTP?{C8I;C4E1 z`83qQp?BOduG{w=FWsIlRQ$XaW}6RM&v~AoG8fK*0pVzPxUU#~Z}~pOJ)%7SJvY~t zRHAruA8Ge@a1~iu6iQ*>7le&)fR+*v5KQcPQ+@wl6tdb8(Re0QvNL53=E9jDM(P*%P?~uGHj&0PAC}RtvyjNLh;+ls<@XO=+imex^>H5_TZ6B)=Xc#{9xmha2)7fsi4a8Fn)+^UUM18Yc z*g!2@mliZj*Voj0H+Y)Tko!%dUmucy#N)LleS3M>8w%>^Q;_!vRwaJNK!vLyi&F17 zJymDv8YB@BRz2Q^g`C%e2zJL)V^#D=kW zy7ny%2p;tr5{Aa0OcT2-^ej{?8osN||3(0_=n9>%FLd=20f=4cy)z8@_WfAM>9w{3 zj$OJxAE|1L#74q#tuL(OVJc7ZaCQYB7Q;o)v>#2)pRF>WkTfTp`fV?KDv_*v_q(E5=4EMQSTd6f}Yf;g63GFUcrh^!C+kkV*8gA%t*l zy!sbKBF$H!mmf)2IM)i~`%PDID8)g8yjEm_Ug%qQc(tv205q2b>-qp(D#i^w?vskD zka)4GyXOzLS4kN@Vo3JRUy5(pJ255A|nB9KYVmT0LEbjkOd!V1kaR>ia{-Q|3o{WC1!#GG5#ryJ-s$6t%3(8e!t->aH zOmYJA#cK8#kpH>b7+$dIZUigHr47In?79B+&ZRbk^l2d8#>~=-tNwQxI2%lA*5@}W zXu<-Bk3T4v{B^b5dcEGc&t`B#3*d^&`6vqHL%D_9eRDv!7&}rr{H{$U>XRzl*z3Gp zlczEJb6b1O2U{o58&poX?R7IsjM%#@Z6H4O^Xf(AIn$xvvY-4ej%YoPU4;2PzOhxi z$z9kS>3TK?-s+^cCyg&m^5Ig84po`eoQ!CM%$2G(6=R{&ZLYnES`Og;Q?AbsXucZe z76o>Iu8$u=V@uU+WHwo!U&Oj`NA1jG;qX#m;9*%w%b}Kh!r5AHHh=`j$KT&9Bij!2 zpRN25jH8sOh292-9V{;>1SsP2@>-9pH=Vb-UhO#w0hh;8PdCIa(J-o5?fT3zCQb$w zQz2RYAv+7H@IP zM~ix~#Wj}&q~|6`F4lqvR?ksxs~(9%DLa?sD*RtVJ3Bw0myKH=WZK`t_dj)4*+=4& zkf=X_g5$`9a$}h_++z<`SN&tLSTz2W6sO6_C(r|zA}TT7KgYZBq{k7+R(0WW00BI3?avB9t_gV)z&U4wWL~epVf0n$@ zFYm{_XR8~%&_aTaR|CBd{9w6;EOYy{H=CSIZueJ<4hO3R1JyiNh*|Ay#h)4Zp4j-y zmpza@2vxAG$BwrL=cX<%DpLq2oU^D~c7-C5#VdTue2&jq(#=~KJ@M;4N2}%Lma^p` zDrc_Q8;dsZo&XJgXtj|s!_|_Nuk!rtWM%d%z!B} z)A7wk6}x#S9Pcu65tfXuBQvt)>>6VG`Ev1rZ#CJa{{HAQod~DdMpjM0LA-ykN58 z1~s4T@Wug5HPerhQ9BdDd|IrrO4F{$zxis z(tQm>ZpXUgk4|_e!Zl4`ymYeLtIrBFY{}5jt6Kl4oTA*ZowNM-oEk_mQvC)+)a!!m zYrxfz)wlv_mpu=@r2yf&SK;T+_}KLHc~=8jNMuW$w4~}}kkp!qK(K}9r`s93$rXfW z@#xf@D?$=zr7r0X?I!C1g#-aaxq{6Urk5L0_b~{a7 z34QF=EsLoLq*)T0K#jP_lY&*5;2~@b40^{+H+Z7Ua!V_8=*Tg^Nqxp=&J?niH^KYM zj>jAuBTSv7BJAOgpUHz)6>JaMSGs7G5=%+M=m z+82}Xy73(&oru$G_bOQLGsv!5a z)@m2n6^(n!kvnc}0=c9rO@PnzMh!AgNkpt*AZcH0msp0gdb8Q_pt!`J|eh^BGrnkOQ-6`dC)To=~ zd{0k*!P`a0kh_Oe+~Cp641a>ervolP=!Jh4oNDe=QtBwukfm5sI{j9YtPvb+dvb_%t+QnL9NH-z59`PHRlgxTNjeujkx7o-SRxc=7$- z9r*b>Yv2Pys>afne5KwYp>}DSY4j=53NA|e89BhczR=iKabtWcpMN@TY6*d4n7r2r zA2*73*-CV6R~c1SOszdhrxawUF7rY%t{S81+#`VjSGmy7_I8>Aur(Tkn_FY3zF9nMdmI9`?7Z;*5)N!#9j z!8n`Ae+j76x7#n%Kr>e@cLyc)KHV|w%~V?L9GQ@X-k!LruXv~k$LD-VZ}(|^h{FtZ zKQ;}%={ufVZldiRc?dBU-H@3~sp=PSlP-tQh?@3#x^C7vru5#Zq1>K_Z@La?2c!b( zzY6xBmS)of37taV*kT@LFF(uznM3v|BUT@zma8t0-&}o|4~{Ah{e9-45C{_!*Yr$A z7WMDUe$qiM@|HV{z1|u^rZXJR7^4OPB>D%!blthG2!?UZ#}g zJ0Y9H{oa}bC@2p5Oudk5ItK^LdGH+tz;;+ZEU;s?tJ}KPVb@Y>F)~qC8hTybJ``?w z9N70cw!pSv28hPY+0QNN$CK?=xqRU`jHD6}jcD$J8MUpG|1$){y!fDTFhovzR+5vF zMs#BQ09V zbVJ`v^!8Nhj$Dz1(<3D0^d{xH_W{eW-JiYn$5kBy0JmNp{v8$(iZO68#~{FQCNXtC z!W=nX2DAb|`LfqhIB^EmfDHo3;)li&)r7~BPor0{JJ3(;cBY#R6^)f+c`+tR06Dyp zaZ)p$`vfs6qV~|eAFlqo=3(aO>a*1S^x4ek!&x zkk1j3aDR!zpdf9}Iz2AQ4%0_nQwx#}XK2vH^G}_H9!M+-$SHW3-+1&iy23Vf^>;ri z0Rl0_u~dTK%mLjs*qMJgV)TMku`hYwciiQYh9)N`(|GeqjQ$gX9q8uYvaq5pn9FJ) zf-!Gwp`6jmVLG{Ex$w|`h(QF!_`lPM|9NwwPE(-}_iQsoWA7yhIEdhlS&>AD?$0th zr{wXMV?NOa8~h6`Nf^qn(C@K5W}+_d%ULCs@9HZBSz!h+r+lAh8P)Q?`dL~3Io-DC zOf?mn4t|x+KWpB#c0Xcb>b?yO4uN=oXQ;6JUQo-f*MXrQ+}}*_mLtqw zL+!Gyv#8ttoSYm!ZQE;Gmy|;>e?BhBm$tN|^HOY>zIb(WTf*nSN6aUHKwAZ#yL=v- z4cV_6XZQgPa^iX}i>z`V*i=RgOrXX5UR4b_0+aY0T+L>YPM?pPm;kBXFTA?YoagTuUaS%aRhP=9_!K)~MF zu+Bisaq~QfsraHIL%L8ygz3b`a_^t!H|^&&2HQl333PfjQzc9$w~-~^(o`fGD;&Q@ zdOo%;t?~vR+K)DwLONhCv>rg_-O1nMD3@y`Di#PNXk%BcGHShmPO$1!-8Xryolcxc z_Esp_`ygCrA?IhdlV(02j7(qKL{}bWS##EDD)Y{7dyPD6ECnHlTGo!*aCoIzsWD4I z*|39$qZtLu*(e-HqBjkrN6$o<*>Wrkz!jo;$xB1hSVB!&8KiZ}?`tDa!;!+J5`P+u zEupg3c8;}u)8&Zg+LF}YZ-&{fwE2p@kmEgWs`|X=EMZoFHcXAyVl>%Lijsbl$}HOS zg41FU`X-_#I1$5IF(AAUIh{kT_9SQsJmYVlYgdkdxf|(NEu#VBhUx$m3`J;<8Pu6;mvu zzUa2s+1U`4aBQc?dj_T~)Qo}wmgMNPGw&5|MP|m7WL;1OYJC}(8HT|@+h8&#m2msM zLj4HKYjEn_K`iyyyP8-vk^Y|Pb;Gv~GZxxqoA6AZ+W36FAQ09~NVB$G>y`v-UH@gRn>DAFDPHlvC-#|;(0gu1 zZy1e&j4q`An34M<E0~{pIm#Br(_c*}E4h$P zI8CYG^~kO*Cf|Cv)VQ>_|8k#av%j{Cc7gD%8t}0K&U$gsFRz+MJG!(r!Lf3VnL~Jg zkyNtnUf{`LapaK+H#&YW4i62xy_x6;x8VHrD(ukykWJbP3Rsxb9fO1jk2}0JTjd4x z8mAvSbte>mA4&8%2yoq<0$2fPY?!4d_Rm3QqMvqdwAtQMeYp!T*T&M`Ki zlL_K1Aqsy$=x^5NX@|tC_pm{hf+=Td^Jy)VXUaY#zPeJSmZF}=k*j+XrkdjSC%tdf z(1h|03*h!!Dd-(9NbDB!+G!*jANj^#VWxA?J2X}rYiz`AqkzV%Erxe`Fkfm9j!q{o zxZBpv0qxv#u8u8_6aU(v{fu2nD+Jdj4|sWfz%Jt@Jhnnti2tuSo&UlJm!KBbdE8>r zk9`DOmtI||ZY}4@$;mLtmDjrpnZL!I;m`CgBhQ9&%L(rzqqfq4#7GN|YwSGV;L#H! zp=y}Ew$%pv%6;CNGj05xby+4t3FX7WTDS6>Z(&sgiXXKFjSklnIyG1fd(-5ksugo4 z$s}5_b2?$ArBedzS`^zF2K)q30cm>7yl=v$RotdG_W>5o?wuj+7fPzcRr8GW|?$ zZG>wF;erY!tN@aUNN}`;`G7Z{L$N@)70)ChcKW>%b3^Sc5PSGAOeU?eVM>95FGC=G zHzkW+gpNpy$^Oqg<=-6Fe|T-aTDX9i!K>R=7h<~{o|Z|Un=cet7mvYTnMPTtvoN%M zYM>;mE=MuhX_VDe++z1-ug_~2n@neUk%k>|@?^Z&kyw9?SY|Cor@wila8h?3m}^g- zrA8F~YKVt)u6o{i&iPp;l>gzinYCl3CoQCmj!4V0q_7!(31T!@!{te3mV20KytyPL zELa=q(Nk@`o#N~b%NOtPv%j1_0B@l}gxw8VCa{LOr_!5|0w;&l%HJPlyY>1!;(&RTc zlIU4AiBCOVZ*rWtWxwTcU{)=aA#@?{(^j?6%MW-}t6%x1b4xBcyY(~Q?BjN+r}I1z zQom99Tf$A0x<(r`RvMHN7E{N|WH?x}JvpN^ooxGZS(pK&A5&vlt2PXBsW?EW*)|`^ z!hJ(_B_D~Ft&gZ-s8wL&3%eXv)%qj?vuLJKRd5TyNFjCOiF4u5C17OuaVXlgGf$>I zoGTMsN7aXr_x@a%o2p1;dqWOFSJ}5n8PuI>G`%3^-j-k0H zx^h(7nE-zR$2QxhfoC4%h8>bb2op3zlp$>Ytp)hVG3wkCar_vDcK!3{f%kh zGxUo9RvJ>1th*1?$0;F=u`C5GA4oNKw0+fllE-{-cy9`g5u`S_Kt%$XeGd1|ihL_o zwLvInjek);OHzuaSi1ds1>&lOHFU~%<6pk!-G{sO6qR6BFJUV@K4i`dEk+#iPq zHkZ6SdgwqN@^7QX@rM4=A<2dgj*LK-60GSCv#%(oF3iUV`QP<{S)iy3NB-)(nGYOH zD+2GnwL`sw$}rHf^?vSl6_=rh@?(Yq2BmXfCOKgVl#DZQG;W)#IdXnAK!Bnd54^q< z3pM7|LuuQ|^N~Ke=LZgzV_?$aTGT+9Wo&Qo17CT4%l9G{;AX@R+%7x1e zRL2O&Qz(a;h8NHr;8Tz9f@|a&>X(P-hih(~UERU%Ic57`Fi%+N3l_d=*)6PzJk-KS z-q28}X;9h2^K6=>4_gU_!Gjo*1mQ3r$i-rhWd`}pW|mdlH_%D;mQS({(EaR!_wqfzuwY*F={)aFRxsb&TeoR(@mePG& zE%R7731-3W0O$PSY(4-QA@;!}VnXQclBU;Tes{lDnn|7zwwlUc0woG$8Z ztE)xdPgr(dsmX~NP~ghsNylQ2+qzZhRKNK32V5+3LH9QlqZvtX4Y?;ze7dClo4-QD zv(5JFs4_Bf&PyFB4Q4+uB~@#K!seZuvJqw{;p zo3{H$OxwQxvx5gIM1a4uhdBX-09J0SU(g2CBXDc3e zqyz+?qiw4e3?WD=@5soV?*v@|1r^M;Q|Q3vgZ<#n&JD2B4iU}suBo|GfU&421wXR} zgq(#ag^ZB4FI1bXL~_}pf07)qjj1EUPG_jtmAMohij04K z>Ds>K%9v7eg_$WZv*BX>n}v{Yfz6T}Z+r0<)9N8{>!3gfW8(us<-MvL*PGE2ge@oug&eQjBUs83d@$FiZQM{OO zx?YJme0k@XM1Dh0C5NI*?vWwJ3ID*qIBCY?Q+T5$knR?Ot19(77*yA(R_Cx0=<8gtvlGYb0B+t}KX0moQG+0)EN*@H!? zJxG2Fs4ldv=y9Q^3lK4D(?>UAuY0@3)Nukx<7kHwnTc!{T6}_T7`OOv8h_c11aRXj z&lq2msUE8vfvVTnIXivZqS5#VVs`#WCZY}r9 z&r7(zYk7=(0taxBw&poQ|nx^2cD(%u=nHFX3W7tOC(hI#6F5CI=J`m5m z51**>y8BT4wr4fEb1ks*7}?KK%qLgz@j{r!z^#1M7w{_fY>?p}U;t}OrDAXSo`m=u zJY_JX&vtKF>bex75{dfkh&Ao`{#3tAK{g5;-eT^v6l}fvG=gk|6}0ci_fzys3tWR9 zlD)sOS`~Df_HVet1gNw2;US#}WtXPWj%4mN2{i@*W8T#(H;cg!!KY=Nye3u1Snfa! zfIZ)5{Py<%X=qsF&NL$BFVdu`K=&AP?&6zd{8@Iz;f70+I*R%9jUo!UnI-zHd!s9)?#2PiG4&lYSKT151 zFc`&iZF#4!3-V+`2B70${7KmF=>9>PPk*|;Yr3jNLpgdb)tMO52B(K;l_%NvDKPSZ)7)5&YPWY zBipVlEMg&d7EyY5MeYkEXZ92cXbew=hL%SESd>Yoh?|4AM#~# z<&o^8a|mH46WI-%M;qKMrtU>)R8H&;)qx%t4djU%Mn9@JTb_{9iC7_KJS|vaf1lw* zA`^6GZQKxa5&x0d^HY3sRIR9n!4l|{Ah}8v7?yyiWA=FlT=!J3r_L_=xP*8rJysJ0 zqzC-eRsp5)H9si+c(9$zQi8Ae5t!u3MWi<|Lo(rdq`%Z9gg2U47A zP^|>1C}PLCI5>cS^8A(B=IBYVis$``gt%)YhH!QrHzAZcgc zF7<1}&0C{w8Uo+# z-#HU936fRDVb_THPp$!%4We+fH4o(N>+_7(>h>1&$Q@J}vGT$>-jbH{DA%)$rqzuZ zSL4Acj1A=Lq=H;Oa=jtwNakcWKdD(DmgsFD+SvWp8kS#R=q>UBDIMG_@SiVNUXS|A zgzNyZm_gLbS8ji33oJ)Y&fjw$$Q`mB8Dx)Q;XTE5qulQAVY+jnOFw}+$au^l3ClnT z@RLFS1Hh-%D$A|9^=Z}K_dwtACa1C*U!on$t@w)gd6zklh!jBWNtg^#$z>_DfV8r*^6$veY(W)$9dvIb zaOPh&@ogTb93COSE`2FMq_S#51wCSi9$C{+PBP0nS>s)Rgb;${G)_#N?+C%72bTeK zNVa6pkO@cqH%WCHCyT|>XUCc5p_^ zSO)p`<)4sul8h{Jgaw((ror#nEds>JXQ-4y=Ks`ZA;>FFW$Jk?x3!u;{je6crr^Ki zqL4GfBSbTLTQD0&R(d~R4h|VB{g6SFq3-ORNM%JR(Mcwaw9$c)lD=DS87T8*4Qh-z zE-Oor&Z!O|JGIDKYZ;5eO%{@sZ1sw){v`Eq@DZhj=qmxh;`igjDiCKrQPP!*o#*vm zka)N0*sDL=UKyCzeQkKiy}8GVjb$4dl6&N41enk~!jcTl&(S9&z)1c!I)0eXXdccP zSx*f1%H_3k2^8u)?v=VeQvFm`HbAL3V?fXf{JkMk7JjCZ^36SgiaYs+wmywZ{nj}M zhAP}|eUOzW1qifw==d9Nm=HwSiH2Qi(1|idZlZcW${&~Z|LoE?3-ZocMLi&>LMFAd zdQTFon}{#Z%_2ZnCOON>HS*H4NNtRp7zt71i{Lf>+hVHj`w$mOv@?y^IhDU<;mY#r Ka+NaXAO8mx4dL1V literal 16580 zcmeIaWl&sQv@IIk9fG?BcMHMYT>`;^yF>5*jk^bT*Wm8%?(XiccYohKbx+;8r|vuT ze!hBL)kV|nUVHW4Yt1?47-JHmC@+Boj|czh(SLOeG>dGB`T!) zOZRLI>WAtO@h7{_n)>GXG2&h7m{yoA{_3avEiF5vGrVCp@5gSYFb3GPE)ezT(>l{_ zmmg>CVAzWdr(}2%ChLqhniHAd4kwp5$vKqZNqZs9uYEw#AZcmo z>+5R=T3^{OE<70DvIysGwXfPGZCo9)~hq1&L zA@A9aMVCWD8kCZkiZS_{Lzb(1$yM6StM%iD=T>(g8hN0{FZURFP;|Viv^1?KNm*}y z|N4E?&E*!krp?+l3kzo;nFao*6RH9#Y$ly%yDR0NKhf!{z@-NBI7`36X7YO#6qM9E z^i}`)vlt!CM4=%)?3}mq4sothAb+u3J}{QrP+e2wdb-N-Yq08^&)s^xm6D4q$tq~l zN5jCtz|737Gj$66OW%DFDjtsg+6z72&gaa#dB8C6`SnI9)VIR(ehd7HRX4 z#m0(rWo~Y1W+Zj@TBp&@eEjq~3i0Fp#fI(Nab2c>*Ls8N#2g)VDu?a;^&DL_n(&8C za&odlCZCF`>g>#%+uO68l@$Ta7X>vr>%mQ-#Lu6*JpcVN(xtH7d3hAD~FHLvU2Vtol!Sv5$~aOfQjbgQpU^%kav3pFUcyJM;Rd9u>d3K~gTzFePR#ULOc zXhRg=@^W&l7IIs(%rP{m$obxe=PZ4NgybIep<<(@5<=m-x3_;XU4&&29e}^;DUWms zp!{-&Tg@E1|~R#oAqRpq9_@qvW8RE0NPaxj*9}K&D|-1D9c0 zn4NW+{0&ys2~RP?FNKK(QporgkU80t7n`NSTMFE`E>cno9cc{>?B~pr1zSHfQ+4&k zq=f(&6yjJ`(0eXB9w+S6b-rFldwuGe?y&3+z=5Jjgq|4xdv=D0oc?gcB$fjM~Eti}v%6rjVwlDkcG;Yv;-G z?Z&&q_lK8oouGHuBX!Lm!e|ZK3tOnq#r93BSy`J87XrKcQp^G}N=i!Jy1GI_LLr^9 zL70QSIc4Ex-F{@TY9XVuLm2qDcn1e2BElKDqUErDh8ylr&#qDUVh++{DGlb+y~1KT zJ0haDdjm|f+yoHTNZ)aBt7(J<*kEyjJHyMY%*~G!G9kvG-h&lD-Q777uEdW7+?aSc zW#%S1d3l4hZ^xWT+5~90US|{Jw&QM;*!FTM?1?c?^QTYiK9e&QFlDM!=%2B%eGsGg zKRPQFCfd`>cqu5UJzpR1PZo?;7;?e)*24Z7iy%j=^tWE|> z4bs5IyKCpcceupj8va@#lRtJs;bNirueAMn7`B2_ZEanx6NF#)H3GuWJnUO7JOV;b z4;dyVceRy^x_W(k1u{($d@94p)Ix;HCeDG8Ys&?`-LaLbs+F#gfu`i*feMj}0x{R{ zNQjbRJPWJ-$WW};a48vVQ(xcrC7x-qCtKZ)X_c7FuVouqB>B^B47S4N9kn=Zk#b~Hs?>NhE;6cVK<98)Gl84$8SctElJekBE;8f>sZv^@}EFI+$$BRcW|y)B1yQzN)Jt z$FXI(9Eaj-C1&jA_H_8ijGPdOGgYo$yvRmIN-88WA|gy-kVb&X#zo!5K{_{7jy6-O{7C6%4{>^jeJ0alE1q%2&$y&czw(ER2x`@4%tQS5L{MZNVv zBMvTJd;}I<5gF`Kb#-Dtw9A`2Q+@H+_J*1|-RhP)Td6m* zO`h)I#6CHl6J`rKPDxu$gGQQFQ&VHBss8zMC(9H*xma%|i_&Oh2n)*|0scAy5iu)B z%9@Gaj3;7L4)d#vXL$j#6z<`JwA53nDoFXADRstt4-W2B$73d-ZySF7o>FgV zQSm!h=vIY=g;iBud3ba%-gv};8(wNi%GcMosi_J6`kH5H37){snn4Z+H@3X5|K%Gq zJ=tZrX^R93{bQS=Eg$*g5<6Sl-CB$7gj;_T)L3F%j4`%-*xueEGx#Xem&y6rlKyY$s5)q9O16=iXRnXG zZorDjxlUzV+og&K%4FuR9UZP}@_1OfV!MKqO6X7!i6Ma3>SeU}Iud85@(p9`O%gFi>-8P<>k^Vd4_^y~zr*R^h_N zaKwo81AhfM4~D31{@FD$^@7{^3`dMBjS6adf;z_g>e2@NrPR{sz}tfpLs$UY>^y7A zGOsc-F;QJp@lQf}c|pOvVB5CJk6uWB*+^?_S2mdo#x?CIXATZ7gByv2ON@Eaffmas zJ~{1Vq*EE!88yF-vX1vrpNFOq0C9%$FUR8X*QpwOn(y!iM(e>8zli}Z*y zi&8+v`V-NJR+9yhGcoC9iy)Bqcl&{xIb_dhZ&_Lz`+Sd@(I)9dOj`%fZU+A+86})V z3cpD1k%7EFks1nvCZmG>x0HheO)8A|Zx;JM(-+k%J{zfCyOD_rB{g-NllAoMtg4z4 z2NyQ$g%4qIf8j*t%nTdwkZk5GE-ET1E#|Pc5SlI`LPZDJ9VJOhY1cK79xWey9Otu_ z=KXELmAaXWvA85-CRdTrP}mRp_7FI-*FP{&Tw20uX(3fT>60FPZYD0SzTz@ZDG;sZ zaS|Rb>+r1XoQF3FEeu($S>{I!E}vIgnw0TQuBD?Y0Snh1A8+KKCQbH@GefKU=T7L8 zr0=iIyxrUUV@ZxIY*x z*_syX*BVmcV(3N47XckT#aq{rI)DopZ z%;$fSO4%116SIFwT`D~>94SpAfxlX=VhPd4Xs!Ld&WuXTXGw_oG^Zgbngp{2uS<#L zX)=jU4+-}j*Vx#YJ_5-)_0OGB{EUL^m#GCN^A&Yzl^O@H!xAN9RN==q#OG^%_T#M< z1ymD7By;n`Z$9dor>m`xmFBZ1_2nrXQx=m2e~SY`vV%1s{Hxm0h(JB3gaLYQeSK(f zQWx!@HIKXJvI)My!`bR&=bM6K+R$YryurV25wh~SLKfogp3=)FS(_Tf{v@Vbk}$dA z?vZU)ZW5@_74I_Z83~o%_9a)_J*MX7<_yjpXmgU1k{QI8t2FeIks}P#v+>_sgL%DM zBGgwbbin`B;0Xz#%H$vX zj9HJv>n_Q(Vq>i>tfwj_h1RTFJ^5t#S3f2pCdRPFfO%e0rc|cX#Ln2&X6m*#f>#|n zWk3KXRngWdFHc5m#VeOXtZawf92}AwsS0iE!z-cPZOk_^GE$C>qg91?3xXp~?#yQj zzI(2ltua+aJ7s47*4zH~Z-TL*nlWYL_^$`~!9YlgY^=?MD$N^l9$9CC>Q1-EnupBs z^=5oR!k61KiR$!E$D3Hu)yi{4(Dakc!-)8_zsM;xm7dInm48`%Tay2@BupW%PjWD( zZ9$0q^&4w#M~1pet~jv$i=Z#C3x}nJVzHwqnWbf-&J9n@7Tn5ol3Wd9xb#}(rKR1l z@r3F{?h*j>-rcdFFr3vvp_T(9hy2kDL(%Zf8xHK^*-?Ub%#q;v)N9i_YGmjLH&5`> zQu#M!b@6M9PwU<`HexDNNnhv^28SqdaNe!gj)q%0UG=)3UJ^v^(L&U`Wq4?4biU(G zzwEZ%!FDl`X7!xTcMRaPj9+x;jIa8nBu$LE@iEb>8LRcJPwmc%%}L<31TCg5EFO7F+8SeCb(PDKBG{8@r}bVAO0;m(~t*rGc|j*#qCnl%H4U9Al{DcXye% zkb6=-E=!nI<@lYVCB<7B+wOJS?Br*Gb8Oaz0Eg9pw?}hyY@~DFzFuY=>TA%ND{?xT zEQW{F2QL7&ie9WP$Doyh$N%f*%6JkxHtd)(B@vZzNO^VpXJeUJQ!aZ>n`y?>`8-TTI&i^SkuH~1*}w}kX}2?YJ` zlE6G`5~zEntuO3stY*`a4}FEv(TkAEzmJJi606X&lecqSl44?5X6MXpED(oWyRuc$ z0$k^%C6hn>`!}XiadnqS?zy5ecVCUbWx|r|!lh2xOs-+1(8#@{tmj}xSW4}76Qcl$ zKC1ObO2>=#(Ki@n+~ihdv-~lAUv)_xu_oUVX?K@M{dPq^{Ml1swcOt$ScQ0X5&=C* zJ3d_;bX-wJ+0PQIiB-~>g|cioyyD)=?Dw}vr-lQ0(=$>+Zr4_vw-8&V>hcwvzrxcR zfkll#Q6hd8V>-gAsumNMFgC>0X<*Q%#wPUWJ*PE*t+0!LV2qBjbaf>LgCb3d@FYUP zT@hYe`>j+|u9)>D~F6x9Sg#>h>8k_H7WVXb` z2FA;CbT=@8RqrcCOQ&Lfl>-;ozs~(~vCTHH*WK<(hh9)tYl1CRswAUt^kpD%Zeivr zHgT?3F!Py?S``HjMc9{4y)1y^SM=sXw;%WL4-tR(l}@q_wwC(Nt7=sA) z@^^Jw)$isJjOZGSw(+pJl&cLO_yWH?LF?D z>qQr=R&3Ka5&ELKr=oaJ{yTmyWw;Tzbs9(^f`q^H zhJ_@pI8Z^Y6Rni1`K%7x*OJMZ+-G7^p`wZc-O)Yi zn!K&hcQAxBSa}#~%0ebJiIVJ`oZ&qOW3g{@RpMPCn@)DhvEp~XqYHrr5MZ>o`zIyk zy5P3dYtjn=0ZC0s-DbKs&FBh1!Jh8~@rg0-BAMTbu?wdJ*Sd4yhJ-(yh5b+=p`ncP zObhbk3bp5H%{&DIWHOZ{O0JF^_1)e3quf9owZ2F!;3v3S0BQ7W;4P|vLP`Pte*y9T zi(L9or2n`!b&T+IO-W8pM@gBShlVaLBBCOvHn+MOpGVh4QbrXlNRt>I^4&02JXm)z z3H5VnX^vDV#^PBpDea&OfZzf1J^B zs`LG=wXIb$Cvdi(1+C`T88s50Yii{MT0)k4BR7vsO=3lHj8xps9RX1P%e48!a8-HAtj2KcfT*}AWu+O1P1Av z+b5EOg575HFydq(Mzk0qi7|?RBb35I_}8z;)uo!1I&-9v(`2^oogFDKy@~VscW-Z} zO7T1ImJ2sITGWHNqOO^c%1{!-OCKqQHjf89mY>{p=MN<**h@ZhAbZ1vcuXLQU)?^1 z(aaRQxov);d7R*}KV94;6*=egblO|KJ3T$+VKa>drzxIf(wk;uUDoh zatkvvD$45hb!XnU8-{shsx~&~vr=(Xk;E_^^b}jyYgIPZN%Dl+9JZY1-H(3`%?8u> z9QRvXZLyhtnEf>SL`Xe2G&~F%Yj!?Ilp7x28!7Sv`*EK8Lr060erF@4T*;hvaT5a41ulyYNoSJ&GqE14U;RthyL*Ncm3g!LkZI|$Pd z=H(&~x3E_mTosn?AnsP13|mTTRKf}pk;wx!7G+Sanhak!O<`ajBcM?TE|2$QXay*F zk{5n7SkJ7NoaI2>6ptXPK3S+%?4n%14naJ=&8VP@GO19@X>!}j2gqu+Q}yxryk zRG7-Y%IqN?uC&MuAV*zn$OVTi))|)8sjbxR{u*?};dknQgUlD+iQg-u1D(`7IX ztTg27bVBiPd_LOUo0rZgTb*+GE zQV5s~0oTN3XxU`$siAfLFJGAX_}+FyFdDo(NiZUpnhb*$z`#)B?9RIL`+Xk8h8Cx6 zP-R}<+Hv`v29H$oGMsp))x_BkgN5%*#{LLRQ&NscA}>_vVqICNKAwHKOlkFbK(5F{ zSYKB~p2g7h4E}Pwhu(}0RS#+?EL6x499u&nFq^8S0TJ)EaPxF?Kyidegy0@+Bc9CO zZ@1!+$v>oT`W4&3B`|Dw7>a9YHJhu9D3R-&Z}l5s8RvV9ehKGk|9G9Pjr=+Bm z5EBz>sr6ing+{`|VYgs69jCV#0fBm3+8^f2b=Hbv+GAsyYa&kIAfy(&_Q6hU` zo4dRE)@ww_9QNJ6tgWrNe>us911wVL-bih2t&_7;BIEbh!>OHJBhsLf{-aM}eP6xK zTPrHg{oEXjxi0V*D&tsbiZ?e&g0^~KkcqBO63b@^)+c8-TI~&A#y1d=BH|O&)XTK6 z(1_45F-5KQpczSsGqrhLFM#L{u0_-^mFw|vB!VTE@~ug3rJexU^tAEHZi$kDLh(th zq&4?X0ve0ey~QzriKV92}g^hXR14jxQoSU=xs5E2sddA;4?b3LuMAzb(y z!GO(q<68c>^Pe0z;B8DgMfDY6S*)$BWT(N|+1ZP+N-`!l6^Cfm)|EzwVI3S?;KIV)w+?I# zXS$}mA#ZC*Z!#(?>*Qb#eY%^2HAE)o=rpoWmR6_1#}TZ5d47A6fO&r2ct;asV|~7V z#=*t!>q(WiDgz$AU>AD0fByXGR2a;Q^(%Q}oo}>&HjtJ+zQ!sokW1foJPGXB2O zb_i?Clf|*NW-xmgaX*-1G1|;@em;cKxk?G_{sUizTh4HOm(D6H@p5@DPWP z(3(((a28JJBfrw0fef`U0EZj_by{7JJ^BNYL+^q5} zhfO3{@4ep*7u~rzBZ>T8Zh9hE->?ZFOOSTxVk-#AXvx9ZT_;EWaF`+^l8|@zkis+% zdp*YnHp>QRh+H=K``!YnZGSBDV|s#E*!`^eZt{u3_;n|)u0+@8SPq1ai&l(4uH@y# zjd@F6G-~I4M-nHkE|ueRo}xTPGCDC4WK#jC5~&O?=W8z*)bcUlc!7a|<=PF)^8tlf z9fJF#$^O3L*2{xu@p?6|bbxEHD8&4|yuQqS9%?SvkM@V2CZ@)3 z7nT0@SN0Ilh|H|4$CH0|Qszpt5a5wEpX)47-S0sSh}9x$qL~$ms%)^?u3SFrt5|dz z&NX!})(aPH9(NQ_xAnFg@E^1yK@or0OuhBq1#nWw0y9%NZJ1d&GWa}fD%anDBY3P1 zQF(ZH-if;9a0Je$cBlz?ow3|orn|ZfKENJ;?Wo)0?RBv(pbrb5%v*1}_r)PiN4%*i zVs3tVxz!w^?k~4!CUWP?;3114N^^_r#d5x55HczQuj|>l$xAs)P=U!xWV%kXi?fSE z-uc`6`vCF&e#Af&;Y_=As!*@>WuP(P{D~#zI zZ5}I4GT7@|hi_iHuydt(iJhH-$|UGI#Yy(Yw6of4=BI z;$SDa>CA+|!b*U?J!AVdDOfadE^x1iA0~2pWC6$KGkgmKZMD*c^$ypdJj>t{$p-tK z{%#qC>AInVdqRn%lvje+gF3ezaUQp({E@`C+bGs5pAPdGpTDklBuC9-H>*eOUhZ+C zZW|u1s-9f7PpeIi*k411gt|QL&rdcwh-m}`ns^($+#f2qNkq3_?1dJK4Pl5gSNx$- z(s^y$BO=Cf0&b+hN(^&yb0J&mW~YIdtjU3)%v3P znwW53d=YlWa*;s$`Ja&e|0L)CcU=FHE%YZXZMs>mrJ82}Rd}<|3Qi&l_h4^N4juMw zmjbz4&t%kZUe?a-{!~JMcz-v<5E=QNLdbBpXbPK2mkbVcTy)EbozIp@O-VhG!H2>svBo@k}#~Qe9N5MY`G>JiPsi&erXM(>}y^9~mA73W5F6qd2%LI695;Y|e_TYd6=^#ramZ8aez05fLOW zjcP(+XJu!<%iSRrKf~_omh?$E>!s>^KR>_HQnrs`aVaIGsrPrVQjK!6#j5P=>@EOW z6f@8{+PhT$tyfo9PGL9qtB<@-=WU;wVyV=9D%WaCdtj&3N#7eu`sVovyR262|9kj= z5>RdsE%aqI@5}P53-N|VRHB-O6eJ}#?YNDfP=jWrjiI5z6;v#YKJfzb$4zE|DA69^ zNP!d}O_GK$@zkXanN-N8YROGFIy~In-xod+rOdX^Ri_P$MEjMZEX#gcR9ZT+=diOa zIjc0W;rjzfHs*+(@ND=s7RXRSdjVgs*#O^IoWc3<64{t0QOA2%0& z0sOSy<{`YY*zVQBpj|JF&Cbtnuu`AC*6cio{$Vbyl_ErzSpZTbRDv)Ro+2JNTWw;X zrZ%12G^jZkCFFF19V+h~nljjEhiH4b?Qpq!_I>jxE~GhI{hOX!ba;5U{dHPSTibG^ zGPNk8kHvobQ6h>+d&Q}{CATQD6r-k`rzM;~zN`xz2O{y%IJTe}^=EA9WR zApc_nU^p96QBza%P>Kac8IgiY0!CEIil-Enlwyn$(6K;UXfY+Uv;>jhGFmB=ePm6r zq;Lt6K+%Q`tbS7?6Fhv}*j42mKV~YVjBoL6vKS-DU? zorrUkpN=jpuQWC-t<_;Jh2IP2w(6wKWi9aZ)QWavLqLCg^(mUiZZg_>#Wj8pVfpV4 zmu0GamDAy3fYFsyiUJJ{O){r7bUZW^loF5A3IKpBwc0)(BaVb(m7>cWaO9WXB$lrf z?jd~(eATB<>)&L^8<>)e|V<6n6#pP}qxSelrdKZgLVZ+$9 zPDk4sOqp-(FI=&Vl;-?_IikBtjE#<(jK4zRv6!K%m;K-~ z-v-T>YsIjFeY`qaf!fHW;sLW-AcFmVxE_ED0ndiX=$~_s3w|Tvm=|9!LS7d|Wo5se zl@$~eSdysRB1)j5H672;Yt-kL3aizBZ_RLVp{1p5Zf+(QM|^p_!bo5;Pe*C|;IUdn zg@N%%3cVuB?#2qVuv;~4gm;Is%{&CgbDw6*zOF?rUpMK{8 zTi@J32)!<=vGLd1a|8nRsJ}kR_if*Yu#u$7<-0@qX>i)vC%`|Y)4YsK#7fZIsH)di zRCIWE!gYLn%vfQwW_8vdktupdg<2wy3J96}Z63x(Mu2@xK}+iqjf9)&mq)B9joDiY zhvoA@*GGO{UMG~-<>tqxB37V}=|slE%|j-aEwa=CxLN+)-RihGU_92HL6^JZpb3|dI@{tLnt1io5wqlz zy^wN~=W88nH*H=g`*-3Ictb-&b!Jm(v|pbmI(&%V4l4c66BFwevEN>KP}jMi@9{q| zXn%nDlMVpnk-+_FzO>kHR6wpy<2Dxt42P3e&75fN?^wb`9v(3I^+{#7_lu21-)(6j zzP-KWcRI`hD(^Z<>j$IDBuulX|g8^_*6{dj~sTC6a~L< zoRwBYB19PloaW`us_%$hdT82o%pMKv0R zpSTa8V&jd38r|=PCo&=UzO@$ZUhPoF#l>PXX$ex6igGDH=3jea_(c-EJtR(8yFPef zxAFnJgt{un0OZ=gBd*@G>D>3(m{Jb_wz1{q<-G8An}i$taRdsQAwNYmHRql{X8>3t zARwS1BKjfN-0UL}AO~S4<-B0PH@lGuCfvyVa(9ow=k3pt!jO}bq$Sc)OaE1mh0lI{< z&FJVKmbRiQ)b-PWD14dfVT`X0P-2JQ(A37cgd)ly51dq#l*Y$%(y@1dK`yVai8!5t z(+J#X$#vFB%Gk!;e0x>XNkD?${O{#}LqTCWw8h86QQ&H1ax~HbL7Oyab zy1IZg+VSzXP=}Xp3K+nU5zY)CG_LI(oPf*O#4I}d&zWPN?QNSUT?yIEHs`H*-S3Zi z?WZwu_Jy>SIB!d)dqZ|!?$7uP`%eve2(tuQtxqbW;jkHNd9JRmkdenHzjRIKmon6~ zm6q1TT9pmH1ya(*GUm|GOOkm+zgX z0%-CfH;hV2XmHO#hQjR>S6C7>TVxOy>vyxPr|l{&W%f zA9mLNVjlmkz5D+k^xund{~x(d^EcEefcbn(QjP+*ySLD@?e_2~sHzAhJ7zU@`*VRf z!&o@9Ydy>C6oobks6@u(csC>hG2+ItMoOG=9VO$vdWMgIuBF(X{DmmJS-bAb7kc+A zmcxgdq}hZ7tz`VTGgRR@Wigq?)i=G3-wh{J5qPspDMkrj553+Nk@V;gYTghEYc%O& z!%$aPxyoiQYi*cGY2dm3_{X0-2go@_GfL_iljH>VavuG@Fhk!AlBc|NJsE?-`XXP{O{ zFSrg13-kFfRG859;&uJ2(`Y6Iv@|5>`F8kp_DZRIbw1zUW6!ZU2d7wJ|ntbC=@0w3IhOh=o=6bI)Qh$atw5D;N>7 z^-^=2l?Qz5i);of(l|N}j%c;nu{od&sbyAE`hGkI^YfQ9nE78W$7zUv)e>o5j&>@x zhdA9`s;-(I4(GzFt+9aOn?`uZyh0eUceY3VNAJpA6IV)>c;|ONDVWfMS!2?>X8iI+ zv;8M!0@ESTLID(f_}_j_mZvTN?6liMBvXPy!^QQU%oe7{{b@n0F%Z6>v6}~;*mN@v z;?U#f%U1;VG6gP{8f-IVu-oJ_zh=axws`XJjA!>q^hXkU-Sp21tUbKEyx6X^#|;;D zz6ATVf=gXa&E0H4Y*g#5_VpD5AsZl62eG|8Rc)uBw}Pq$T@p=qefS~*6U8IS z=tqmw?i2TkyUC01Xx)DOiX;}8@6HJ+DA))18NIe^1e7Si*K$v6N6hc}Cob2&q@={x z7pxa2foZ(mI5swxMABp|4XEz3%gZ?|=feRlfdnJ;Gh^CDX<>S3XlO-6McZ323bBB4 z3&HD+V4*x=LVP@69wj(Eg8&CF^87^o)p7rHyAMG!C8{FB*ul}UQnw8mUr`EeK;kaB zh{S4UF`h#D?P7aO!j_*%i)FxZWOzvAMLD?~Kh+a4B4-{-r^&s}u&@FG2HE%gr@H#* z-G4K8rC8YhEObFZ0e~}r45k{Ztg4EMdfDvT+#FX!=fpb@PKeURJ&0|pCqzlvn(5~n zo+UuD7zc?Om&B-ZZoc532le>$^j%9+@njN7x5ecxCjfzDv4}uWLqTYva>J-*2@p5Q z%)$JCX{Ht7vtb$S?Vt1cm@lMBQ8h15k|%t2lW>|V!HObU_ql!qyPeVPaDxzG9UL9r zj_?C~*-xpLf{yWHQ4_4F6+ajkMpis#`tKUNY?hbq{_xs@g%|fOX`t46kEL)px(fV> zjRo)8e?Jg{9jrE3%$L#7FM>9#SzK%kKp3gB{e;IS;PU~6u&*@K5%r#1S-DVCNSKf} zITwd{E-BBsjdDhCFI$i(#E3mu&h)f}xdKrAOfZo}Jg69gv$%|<882c71{( z30`Li-Ty=*A|dhmtQ#&>Q>vQdHoM3Eq$!Rf7Vvt1U7G63_;<>}IewD@%)lC;u^(Pb z&U%FMHaGYwicVHsTr31}w*`Ug53mMZbGB1?a0z*XBP00uJ}=;(Zb`vpw6xN^=zi~? zLeO^l8dBPy_L}LBcB?MwtNOV4I?8XZKzY>$NNiWk3=NV^F~*J978cd zFvTJC!|@u5);Pd92#yab<+^^f2UTQHjJ3S&OlA8=WE(U!6b=ta1arc|IRA~5m2AF# zT+wb(d;njEf((c}oC?X4VfaxC$*30`2Y_PNv*$MLhKk7_g6(l}I~^ZHDDd!sy4w|N zKDD+RK_KezsJuH9JWIMD0cg{DD{o(OCEPh)0xWr^W zr=@};a_I0Q4VzX-B7RS&!^;gos6fJF|9v&hG*hVT%CRZ^W;oFf5RoFDF6XP}cO?mU zcu1tge$1Sl_dsR&+UDkZGm(DtTV`o``sbG4Q@QrdbEngbyNBLl(}L6@#aW^Bk6>7pUca^m|UP6hqIwR2ciW+L8Z0KTkBmAlJod33Tew(D5usjYXX&df zC%xq>d8dQFfKlN3a2#)qsc@d@FCUZ3GtS!x5QT*Fa(kit*{4~kwRJHmWGe?Q&e&>j}1B9A-LoOGy63Ld^D z4hJ4vR#FDl1)U*m_JwNSAG@1bmI$QVqC1Yb)zt^S^)>(a>u^-IFx_NiKdKS7UHENMQq|%d?lgp?2er&R0 zcpYy}EZ~iv&J=w9r;i;&a7yl0lnV}P?LL+$vmzrN-2g*8`?>76CAXTDbqD6&{k~(v zz0OvyIxi1!L%(Zr9_%`Al%@TMRU=y4m07932#<;q@H&1R!(X7Mr{5necYLi1v;)G7yd`8K~ufs=^Kpif8_hU{-(qJT3V2CESGJmREF07`3IJ)+ipT9p0 z;$dZJX=z^G?(sGxlD@KXb+D&BZ2BkZUQq?%ki~ZKNCmX72ACxWy-32@;)~8#cOD|> z+ed3H*tN7kGtgvU+QX&QOaaG_F0yN&2nCBj49TEX5Eg6jx{GAOtUdeZ^oK2eiW<2> zcs}oxS8^%bLWvB#`kVSV5>L7YxcXKL04=bqL*6-%HXn;jmhqJea>5h&pd+ib!L&XPpbk9jS~BhRYI_ zy@jNe6^7ywZm7J!qRUEUhR;5RF|czw-IHLthHuh+$n=KAvb^2^v~|~ujVQb$cz-%E zu|AgEHK4OsInWd1Q!1mL9r%}K!_PCapTxMPFxDtkomOPrJ%OMOs)EZ^^t#sps-q+UmznbpjZqbq z{W=QRYzv^-DS;cFo<<$+;-2^S2iDEUgiH_TD*Kq3xAN-GLVX9$rV=Q zB+=&HdI)a1dFYYAfjK?FzU7HJOQ@9y*O%^2Zjq~>SylYV_WBXd9ZASbTYHo{B5_Eq zc4OGRy}gZq%@~Qpvf48f29WWGbDpUDUeB^}YSw$9#w;vnXn=6TE_a z4Zv=htj_KWHhi2mtEZ=|vBNMiF-m9Uy#0NBG3>&!rB5UvXuDe+F3!}my>uHk;E}PyxN(xY2PgCxUMc~Wv!a*n{);@l71zJ<$`O&8FX$P0yb03 z50<>VJbfGw_85p3pTCO!XNgV5V ztCzXdjWnB_VxXZ>Qdc*rF$P3tpKValK#h>$<3z{6Mys2ptw5R)sVdj35vuzycjuGk z0E)*&tNMtDxue@tizKNp#RpjZ&(dr2fbJBJeF7jj^}0~`+hEIY6G-VEYR8xy*{5r*bGNl}rNW=Fl{(>klLGZ;TAG-=@6+!dv~AAe96q5Gv~}X?|hkg<1Eb$nHjhlKp+sa(Ph{b5QvHd z)Dn7HpeNwx<8FK zW-0ZW?YK6ei_gu*&R^f#(-ZCG4>Um_eP6VTKN=+%=;nW0(9p=t5+#kM1A#b2jbOSq zL1QbE!Iin_@Q>@$JkoWy1qoU;@<+E+h(oZpzU{ zg;?NS6lg)I|0$-qQ1rJ52ucgWK|sHHR%EF@qL@z9ffj`ETaQJ*m+&ji7NMMgv#qm{-2sdKG?vEY^XZ2M~ zFqCAwi!+gFm0OKmPUx2c5iW1YZTk%fC`jSnxgHz#27RNzV7R3Gy--*7sFx_>^q0%W znvRU~D;(kKp7CY_d|cDb6fIYFP^ynipZaX>m-@jXOjis91YNCd-fd9ZnIdIjFeAT* zg8RilM#cwILyrW07lXfGIGrZcS0jhA>p+(k@TGNomG+VR?>`{)VK9w`AJgPuPLSxu z(Vn4qt`XA0!g&$%LqRi(yUd4ERH4qZy{826ll~LnPJ?HjiRsSAlMTp~ubwTG12UyM zlSYt>Fu8^7Z;9l1Z_#=YP>%GOR`K202ZO5yYZed(((VZS>(xX|?}_MWKz;GHD(OZb zf4rGYf8ac*1S=|Iz1FmuEKe5&Nst8%1bcs>?&^6`vp zwkx43d4lpfSbweYVJ*lHr&zD*1G0HUJdr;sCkFq3rc{P-sP>*y5o8-*#X+r8cRBU{i4}mn4yaB%`=in_kxfcUMQHb8LrHv6k{M!_?!&J)NYiEJ8tlk=}+vIR3zZ<<_+h$*af){{& zK=J=r&<)+Wbw?b3P&~yMx>6;4Yrv5g44w}C-tFQZN*Wlzs2-9X-qAraf0PTHyGfFFXm47> zz6B>@>;eYLM)rD-hKYv9YgDFqS-3&MUHK1sOckrBxzM5bayJMY^5^~CoD4XO9x8~pM8%93jz<_ZY4!ulzk$8`eurR(;Y#{uLI*_p zC(VQLFi)vMvNw72?BPNOJWxS7lgXv@X z)R*SU#1(kxo3%KF<|Lo^&=hhiA!hHTRJolO_?y^RaU$RFp%>Rrm9OK6y9GRANQhyK zh#qFt<)&f6)@|prw{Z|y2ERd5s!oDDf(aR87qe(vFdiw>i-8Jza2G}C)OU^yVId-I z!ls{mloaL5A))e$w!d36+R_)mbq3;NDI(E_?a-omk%#umrg)q4xb*B8Bk}$fm*eNM zB6u4&?%1*z`?L-S48p+j&dnaH8}t0TZ1%Gbh%pZWjIZ&yUhai$&driD+?x&KcA9@_ zJt&+1#G+@K3w>P+p7#1Hb1GDr=`_4iv$wA`-j`hrDei)SL)7x0!GrxJ_&Alx1qxI7 z7VXZ?!*>&(Q+s!b_)#$8t-5Kc?y-c7D{x3gSlSxr+$^vhCicW?!33y>GESIjGO1cZ zm3ff&R0yAoQ0$aJFe(GeWlf?tY!GFJn-lt4vz~N7z_bjB)h5I_lAPiV=5=DaVhqF> zGPmQ#l?p9#`Ish!fBe^OPpoE3n%3R!XY`RP>JH|~gMZE4!x0{=f2@96abCd3SMfoP zp1djEG&tsdO*AhU=)WIy(>~yV<2@(&TVI8a#{#+anAj8K5T?RluUJUQ)#Pj|bNkH& z3-s5(%q$;6mA3P4B|S0A)wP6-GqEE;!#NF%G(O{!{!%x2kw3k3)GJ2B@kwkGT_f4- zhO|RAR^sLv4n%>m_p;;)Dre^EMb^p9PuA59Z#tD%>;~KEc7No3Yk$eF?*5Efw3e=T z<6V=f*~K>S7X}|&Pnjb<=3IE=zRE^MW;cZA@erMLUD-*h!M=z%|3y4wzkie4A z{muK$4SCI7(hga}xp~?Rf-}{x_^E9%cNdH1=W=gIbGnWk1WAxc&wI7UM^d4+OjY!O z{G%x;{QIFkMdeB9iam6Qz747*DkxrI;_z~UJbg6)u+tr*v=0SE@WN7UG@bStV3b;X zm9q7lv4%cyMsu*OjzH_nq6hOJjKU@7~Ep10D)rUre7yOpZx?fhA z;*{oc=heZ;86>#qqilklZBC+q)EEC8hTWp_%b3;>6Mf9t@frhs<33~A@0WwumAJBF zjY3FrmmUBvoCC58NsyDMa7};R$%FJRHowruxIr(&{=?WCbzy#RBmS+GR|NBw>z%CS z5OFWESe;oG_AEmcJyE&44={$kG}jrYeD^$?ix9`$PG3>u4;^C*@zGDHWyt{5++61; z$K6+yR|RLb_lxT4f)_(Nbe7z2PMf!a#Ykri_Lgbv!_aPp?1%WM&AHk!s1keirIS+#L)0h6AknEe;#HjT_Hi30PNIF6F0#hA7z4rCR4fG9_h2$>OGMoQ} zHZ((3pM7$!9~%-}r%KAvzotOk%E3+Z2;r^SW^9B#{5Vhxyi1nYi|Wjwmfv%z5ssEI z)+|+hTsl~|U2^IAe%)|JcYs3isr*-*Bo=+g4tmCFLG@`%mT<3+igkV)?_DnuyvM9K zj}_)ZRJLM1+12|BM%4HUvRt}ZUD}+tox{YdY}aom;B_5t?{mbi!o8N_oz|+!3lD~~6|a%P%Lb}P zxPM?u!ZFWz47@Uyt} zXV_9rJ%e&A=WBN?Bev(0k3Si|{nqVN`EK1ip+c3zQ`lKzrP*0%U83FoZfv^A{JrmR%7HEpt=*r%^g?b8*OUiZtlr3(M6 zMk_TB%h{}$okdTrbHBPn`QHPKFRXS#swGZWCZ*k&qi7)0%c){M96`&CvN@cmcdSa5Xo4Mir5AX` z&J3>2Lp38lHa9})TE!> zih*+hr)%`tGdEeEkF6E)TcpV}w|t408`1a_a*lMW@F=AoU7J{K##Q-f%PC*K(lc4) zSMcK4gRc40!%u+Mj!vJxBeCGU>7;Jj((jOJ*BT{D9c(Jb*VfshPKdf_2C?0^H`Zvf zVe)NZUbp4tsq}II0w+bcleKB_N}tMZS^(cSAI+WMbLN8G#K)M805^V|p;w;(%$v*q zuwBh>RpJx>m0fZd`j?Tx{*xtcpH(jVF;?MU&2iC+qIlc5jYd}#0XF)eOYGMXlKE*u zl9HKAvd9beSvjXBFRdsIjK_<9ZS-~h;a7x)i&oO4SMEZzutAh#k9a!Tcn8#`R`6!2 zv*{cu?=RIC4JO1Q7mpx2ZG@@Oi)AX5NG*#v>7Yt!9I-4C+r0ToqirEKrS`Zb`_=;E zglc((p*LS8OUBTF+v@pANA2Mv<-6=0bDRBLGauxS_6h!xA`c0%8T_Vr7TtAg-@~;} z2FCVzxBx%0T_HlMd*t$`1Bs{0Gv3O}$LD>g#^3FItvBA4O{6CWBty=8T+!w3r9&ddl(N0R;KV6ZFnenP~nask%GrK)r z%1+f<&mOoP^A1-)t|@g#dx+4u8)79?x{FXe64=^^?#g?n9SFzwfKfPPsdEgBgmHoK z2T=ATb^OlKFZljg9Wk{cAll^p{i(W@{4)RV*_+HgZpc&aB|}S{SxQ_))ouYzc^;12 z#{4cNp8-p6hU+1WzJA6WXddxlwpUMY_`lVzEj8~SC_I8&tu}2JdgOt@bR#;MI5lH5 zSs~JEX%f{do(0yT^qMBqWW)@o006L2=q{RF?I6w@<>q%~#&=|#HYdE$*xwrqlciy- zg28?0wbHw%&D0Za$&?+qxxaHr^9KbcG$(XG{=YHNf&C`5YqqzPUXP)-W@@_e0U^ zK-X1kC-IW?2ApUoHzeCKJ*^uytzdVEv|d2UE)qtB3P=*FNtNQ(yT2J&5m<43*20S| zMF^-^rZ}TqY3J3Thjv&aEnp=F2IWMabr|)j`{x%bo+_F3Ev}*{5B69ZtO( zfb~4KNl8-rV(VloI~60U7Z%Dtqs{A2{i_@YVPNou;W`J-pg~ZB zwEO+Vh^97oe41D{r_I1q~bgne`kCA>;GnuYnUs zq;S#(%?qZ7zq^*S(o2nmyEz?C6o0l*`if`B0DPE43XkI6$yw0~mGf3`r8*{yI5yFm z;w|IF-}^HI@rZo_8-3-@HZ#RvmChV0se8EUZ$ zxJyb$_YB#{0XDt?HrQsqTHtTdmHlG8rZ|%toZNcTIF@fiTtXJlLS@V93&Y4^f5e4J zM&trH*G<#KEcLqMhork#(kpZ^K=4miwvn4DPW|e;oMJ7DZ;S~sBOZ)oL$l3{0oT~E z7t7nIm<&BJq&$decmFl_dZ|WNz5v=-D`fa{<#ffA?6j_k#146bpcRO2555l#`<1jI z?%X)%;=4tqUll?=a*2G5v1@ipmZ*Om=#?42OQyE=;c7Hx9?yPK;elJI@ThsAA=kCy zOf6)9ecofGbrAJDL%Sk!1T|rvd_T@NlUwaG|JeTK0dP0{xoQgrkDC%mji~S$s6fK} z#h}*xl{}xrtVpl$3d&Cl;CkYBbTleLYBALMA$n7?Tvos{nx$4a+pvLaZhmdNebOzN zvbLY;v+P2FfWb@rk!zJ}X47+VdmZl{F+%kmsim#kRf&_7(F5#n@r*?{q227}Z;}>U*Ycz@~<_ z`<~W!&Zpmt!x)5pA5sN)rSFdgFz8*!Umrzq2qrAk#tuSVVa9hmDEf%3m>-A1Ocqxp zuu7|_JUjmG&Z07OdB@)Sd$f=Gty60`ErE0uB9!&@3%I2nM|QA%*lJliA4+WY!oJOi zq|y--lWpMI!TwukYxdvU7SbL!%C$m&=(5P^N#S*r+dec4T4dL$#;zWEz+lTe-G-!> z$o{~)U<8!52|WKLI&5Pi376|mkp?J;2|LQH8^8$0j&iCOSe_kqrHs4dKYMoaHh4y@ zg?pG(PJg33+nXNBp;Y?Z42P{T1T~8!br4q$txBefpgaDYuWK;_>UuJH<6o< z$nh9Em0fR=J|k-)vA01cQRVJlXNJ?n2Y0}irXJFI`7w!CCk9wT6dO{GRtM7o0SOg3 z95@!zUQQ*CqnLE4BC;$xXmobof*vo#j_HiXiJc4_$M> z7{HQYpgOt52+096ZIJOiK?4`s>ht-V8^D~xVrvN8}r9PiNJ}kf4kW9sk!u@%ryCwM9+&0W6*P2!(prV8tNBVg11gk!}Pxhn4Hy GjQ%f697j6< literal 4964 zcmZ`-c|6ql|3_2Ey0?_Glq)qUBg`;{m2u2& zc4IJ12D8W&!?@4f$M0i*+x~XH-^cHd_hTNfD#mL!E^qNC)e@9cgx zGz>FBAk@Al-z>7)O>B|7{W|KCcoOp<+xE)K8$UYx-HPQ>as0~NTu(L8HVFf;C- zza`_~GC1c4oV5Hvcy_>4p6ht`M^_ScIdCfzmFVWx|AprST;P2ukH~S{p~xh}0YkGK zZg~X;SG?GRrzQ%l^;8)|5)vTI$Ti&{L6KA95JWCW@`M$Spoj`^BRc~Sr0wl@?;r0psFdUKU4j=eGHT^{kfpraKA58rNA zvVG(P`!Q>$_O`=#^){!K9FE4yZFS>NLymV|-TK{(yy>~FRI@rT;nC__H#7B97Jrj5 zbyK^;y>FG$ADRpYT~}e{Ogv)gO6;+MC!U9~sQ0r^`;SxQ)|~?M5Z#~vPvM<;T4>co zU=`}ge21Lg=7>W^>VUxY3%I#fSy=YB+M)R;TX9s%v_-LSuix5?{nIo2D_?{Ly!?wR zHv-qPWn#0dXHos`->w7p@<5bkApsUOsMOE1o*i*Dy{gY~qC<9}^Rlmf(5=;Dh~Gg0 zLITxajx~U77FH5wy$-AXwpp0ph!DJ9GiD}N-dg=&WV0!>R=$>7&6butB+BVM*B1~R zu&{nZQt$;12;HBl;Qt)6($O(YO50_DtbM3LMS*B7>jO+!BmE zeoSgF?o9bx@}hPsC4Zv-Z0q|oC`BNnf142$DLklaombL}4UTiZbGy40$Y9~v&t7<> zdbCV64eq}7Mp+t7StwmO#FMb z(Fm2`$72D@)3$CsF8^^o*=|k}(@TJyA>anPYc<+h^|g)Zcf04>3)h_u#DtubLbD@14KJga{kT zdPKEsQm)&)v+L~MS8?X(t*!bqTS5it2TSPZRQ(R3)@;hiF>x{>9TCh%_0>@7z|NrH ze8VihxWB1(@JZ7wY6yJ?dq?pBVYIzgZy9K!5A@r@_|f23q0pe6-C((gdOVd$L5n1j zhc0W?rCz~{q?uG(n+B%!?Yfy%-q77Dg^sPc`Mq}o*y>QdK(2?)psPfkrD#p~YVnTW z(8gB}3HW;bR(tbYc!1ag!uThcm!L!Fa#xmK@J#cHY=H`nl(xIjcBxmi>lK0tYW1^` zyRD@)oad#7p|YNb>Gf{@dcYxMeXzCNQ%|V!G^5L=j}4*6>6FO_p(yKa=2cV$X&u+- zq35GA)l`qEt(>f&pNWyz9vdptAE#8bGt_7j4JR2jgCQo<0z=KQ$4gNX^iFnHV_dO1 zeN2qkQUGOP?OW@?R=w?FJcT6kL*l1qy@m#ofukj%oW&y}ZULcM7Q%N8_%Nb4*)j_PGaUzAZuAOKg9TKjNN4PLgimT> zJTIAge`XzovKH}G;LQMEWOuAyE^hRrFjXVa4r=esIPO0rE^8*->BXV+wyx!CrvIk# z;M4isnt1G-v3>Bfh3mf(6Hg`i^(5=+>9sq$}PWT=zLGar*hK z5&^Ha*yCON_$sD5Ph>}&=bXwnoSDoi99W*w7(Y(AKGn>>9}$CsatO=9y3iRaMtg{B z_xoDZ^AI=JA2s`{e38X|`ifvDlE2UrD zdBZ|u!V@|KFb#gvJ)3oi>UziSuHkKetV={~zWR%)EEo;^+on^lpGrC)!X8$O>;af5q{0whVp^0?8gkkGtpU3Na z_RQq+SJN~VZR?!n`sL=Hno+(LSU(!>_i|`xP*WzezOG>_aV~ZCXS{1}in;V>eyk8$ zwxC^q!g)YN_GI!vW3Q$0X*|lXPg{c>Kg#VhM1Wq=teK=!)9FY>ZH*-YP zR^;$Kc1g~3)&) zwqw&9rveH(D<>R~*oj>=sZ|{(?72XV-Q+2Xj}_pnsrR%#=!l~pXMfpD^aWS~Qa zYj5Zgx!V#E!lVl~d{!H4*Ai;}Q2x|Bk~Y5Zaq8`0I@e_p zj(qx0wDCecDXr>-tf4#gn%ogDgXSdlsyaq0sP22*a}Anjkn~E9H*}z5*`adS`1z+g z?d12CZ8Z3r8QiZDvBs_-_NUD`*2>ng!)oQO;}JuhaJiN(>yp;J1^wg(%eEHyns*e@ z0RWPhcIX(lT)C8cxSW;&v2ltLI^H+?RGl&x^(c>NR6&(fva6p~>j-quIXHy=7H zzVZv87r^>#YSWA2IwHb3NyC(??K&9?E-_Y|QU-GmU($|4beJnKduIuc;D~d482%TX zYLHO_ZXDP+hWtcJZa+6jjTXqxg3E0UnB7_J>EiVA%VyvFyiDLyLxb?3>8_1;)5V#> z!DXoA_w_y(^{o}Uv?0*9GncTZuEF;{l^W43% zK>>!JU}iA6NW8V<-gd&Hu1+JoeZHpgFB@vgu-h_$FcF|L;+^}xlLcc)oNTrq^>v?S zvvJ=se&Vik*&k zKPGd{5B|f60nPN=P$?J$7i*%D=6msnriNR;eQL+Y^cmK1pt;3e`y zjo9{!IjMhA*@z}{k}<-t=;hqQyN(ko8!wjiJoBs7XM-y+QlwK$L82ul^B)xlECJDqM|A(P;31hHzU%-<$XzUV$ir*e!xz~E{m3y^+DhLgKo6R z!nXCK2^uQpW?g)OfjuHA)6jy^Gt52giv=ZIgEdai=*}VoQ|Qag$;h+f@k6A{t(jYrYsV7Xk+vmkmB#4#p2~&tkJ)#9McIc$AMBcth*r{Hg|2w2;YjJowZe|4 zuPow~jF)Jt8ThuZ!A+;Lm->`f%3(!|AG?(%qM1U3d|6XcmlFIuL z05ftWwsUK)2Cn;IdiTgAH&O_v2+c&|p?I(xMBF?l>LzFD=U{6x)h*LVy(}S)A7a^8 zD#Nb$JTlzAWu3eBJgg9ZkB1L(;qW<&%U_ZwZ`u?0?rp{;3_V`c(+zFnHL<>2kQ*G`5|<4wANYE<&O&gR1FBMykf9(k(9Pgd4W?!k4^47flk^m=$f z_%2Dcc7Rwtyyvs0GBVAi?lD&syR4Ti#UYhTExj&NFqa>?MT zOtZqe{y2)K9J*TK4j^i`y%d}YmCjAcje~JC1gbaLH7wn_flE@W_P)*u?jd8J4>0F( zeUGEUBn85JC?6lEz6BJY=0$t?PfaR}xNKtgBtkjOJ8|iow+l|(lmqpzkCn zGjs0D{C{_5?ww$xv8)3) z>U-{kzXPzW9D99DKX4q_5%tsuT7h@K0$>qP81Y`bNdnlu&g~m9Z-5JcV<^Z zacQVEd-?$I4LAoh`=0wgdYEmTX+SM-2$&QBy4&~MC-DJTRw?jQ-@pQRo|QeYW<_-q zQ0IGY=h*aM8)pvC0Ib%~OJK9_x&83~Tm<$NqR!$6s?#2?20yzL2*5+m3b58-J z#TeH;LQEzO4t6CXu67ByqxGG(aVjD93KRlwfpmtpp&1dA1OT>iiU1GD0zLw(#$ExD z4+ML61$YIV0=6e34xoqiyfzDfvh6bJJD$lrjLd)>H$$ z)v_>E0L5CqN)U>hfgp^K_L6)UhMqTZHNK9H>0#>od-fT;ur(Im72ws9u> zB}2W6103@`w?A$G+c-9G(>Bh=WRz{=>;N`t^P2Cuw;|4qs5c{H-j=16Ezh#D!z<7T zoc2BUa~#5Xz*!&+-UY1lJ-0hP0Lz*WwA{Wq_)3AV z5#omuoiKR-s1oQ?;X#4D|66(lmqpzkCn zGjs0D{C{_5?ww$xv8)3) z>U-{kzXPzW9D99DKX4q_5%tsuT7h@K0$>qP81Y`bNdnlu&g~m9Z-5JcV<^Z zacQVEd-?$I4LAoh`=0wgdYEmTX+SM-2$&QBy4&~MC-DJTRw?jQ-@pQRo|QeYW<_-q zQ0IGY=h*aM8)pvC0Ib%~OJK9_x&83~Tm<$NqR!$6s?#2?20yzL2*5+m3b58-J z#TeH;LQEzO4t6CXu67ByqxGG(aVjD93KRlwfpmtpp&1dA1OT>iiU1GD0zLw(#$ExD z4+ML61$YIV0=6e34xoqiyfzDfvh6bJJD$lrjLd)>H$$ z)v_>E0L5CqN)U>hfgp^K_L6)UhMqTZHNK9H>0#>od-fT;ur(Im72ws9u> zB}2W6103@`w?A$G+c-9G(>Bh=WRz{=>;N`t^P2Cuw;|4qs5c{H-j=16Ezh#D!z<7T zoc2BUa~#5Xz*!&+-UY1lJ-0hP0Lz*WwA{Wq_)3AV z5#omuoiKR-s1oQ?;X#4D|66 + + + + + + + + SetPrimitivesAspect(aLineAspect); - // Draw constrained lines - addLine(aGroup, SketchPlugin_Constraint::ENTITY_A()); - addLine(aGroup, SketchPlugin_Constraint::ENTITY_B()); + for (int i = 0; i < 2; ++i) { + ObjectPtr anObj = + SketcherPrs_Tools::getResult(myConstraint, SketchPlugin_Constraint::ATTRIBUTE(i)); + GeomShapePtr aShape = SketcherPrs_Tools::getShape(anObj); + if (!aShape) + return; + drawShape(aShape, thePrs, theColor); + } } - -- 2.39.2