From d6eac07eeac864d952200bc5f0723fe4b8c01dbd Mon Sep 17 00:00:00 2001 From: SaraP Date: Thu, 12 Dec 2024 08:37:52 +0100 Subject: [PATCH] Extern : - C3d aggiornamento librerie ( 118019). --- C3d/Include/action_b_shaper.h | 3 +- C3d/Include/action_curve3d.h | 12 +- C3d/Include/action_polymesh.h | 3 +- C3d/Include/action_wireframe.h | 25 ++++ C3d/Include/attr_hotpoint_attribute.h | 15 ++- C3d/Include/attr_user_attribute.h | 2 + C3d/Include/attribute_item.h | 4 +- C3d/Include/check_geometry.h | 34 ++++- C3d/Include/conv_exchange_settings.h | 39 +++++- C3d/Include/conv_model_tree_linearized.h | 30 +++-- C3d/Include/conv_topo_mesh.h | 20 +-- C3d/Include/cr_offset_wireframe.h | 75 +++++++++++ C3d/Include/cr_split_data.h | 40 +++--- C3d/Include/creator.h | 2 + C3d/Include/cur_surface_intersection.h | 8 +- C3d/Include/func_nurbs_function.h | 2 +- C3d/Include/gc_api.h | 2 +- C3d/Include/gce_api.h | 115 ++++++++++++++++- C3d/Include/gce_equations.h | 131 +++++++++++++++++++ C3d/Include/gce_routines.h | 25 ++++ C3d/Include/gce_types.h | 37 +++++- C3d/Include/gcm_api.h | 26 ++++ C3d/Include/gcm_manager.h | 10 +- C3d/Include/gcm_mates_generator.h | 10 +- C3d/Include/gcm_routines.h | 8 +- C3d/Include/gcm_types.h | 24 ++-- C3d/Include/lump.h | 3 +- C3d/Include/map_lump.h | 4 +- C3d/Include/math_version.h | 2 + C3d/Include/math_x.h | 2 +- C3d/Include/mb_point_mating.h | 8 +- C3d/Include/mb_property_title.h | 4 + C3d/Include/mb_smooth_nurbs_fit_curve.h | 4 +- C3d/Include/mb_variables.h | 2 +- C3d/Include/mesh_halfedge_attr.h | 20 ++- C3d/Include/mesh_halfedge_attr_base.h | 10 +- C3d/Include/op_curve_parameter.h | 158 +++++++++++++++-------- C3d/Include/op_direct_mod_parameter.h | 16 +++ C3d/Include/op_duplication_parameter.h | 2 +- C3d/Include/op_mesh_parameter.h | 61 ++++----- C3d/Include/op_polymesh_parameter.h | 13 +- C3d/Include/op_shell_parameter.h | 27 ++-- C3d/Include/op_swept_parameter.h | 4 +- C3d/Include/op_wireframe_parameter.h | 112 +++++++++++++++- C3d/Include/pars_equation_tree.h | 6 +- C3d/Include/polymesh_topo.h | 16 +++ C3d/Include/se_curve.h | 41 +++++- C3d/Include/se_surface.h | 33 ++++- C3d/Include/space_item.h | 1 + C3d/Include/surf_grid_surface.h | 3 +- C3d/Include/templ_multimap.h | 4 +- C3d/Include/tool_err_handling.h | 27 +++- C3d/Include/topology.h | 8 +- C3d/Lib/x32/Debug/c3d.lib | Bin 11084604 -> 11150066 bytes C3d/Lib/x32/Release/c3d.lib | Bin 12134192 -> 12203762 bytes C3d/Lib/x64/Debug/c3d.lib | Bin 11394128 -> 11460580 bytes C3d/Lib/x64/Release/c3d.lib | Bin 12479572 -> 12550252 bytes 57 files changed, 1049 insertions(+), 244 deletions(-) create mode 100644 C3d/Include/cr_offset_wireframe.h create mode 100644 C3d/Include/gce_equations.h create mode 100644 C3d/Include/gce_routines.h diff --git a/C3d/Include/action_b_shaper.h b/C3d/Include/action_b_shaper.h index 8dd9538..3854fab 100644 --- a/C3d/Include/action_b_shaper.h +++ b/C3d/Include/action_b_shaper.h @@ -122,8 +122,8 @@ public: MbeCreateBRepMode bMode = cbm_Default ) : useRelativeTolerance( useRelTol ) , smoothBoundaryEdges ( smoothBoundary ) - , tolerance ( tol ) , bAngle ( angle ) + , tolerance ( tol ) , surfReconstructMode ( reconMode ) , brepCreationMode ( bMode ) {} @@ -491,4 +491,5 @@ MATH_FUNC( MbResultType ) ConvertCollectionToShell( MbCollection & collection, M */ // --- MATH_FUNC( MbResultType ) FitSurfaceToGrid( const MbGrid & grid, const MbSurfaceFitToGridParameters & params, MbSurfaceFitToGridResults & results ); + #endif // __ACTION_B_SHAPER_H diff --git a/C3d/Include/action_curve3d.h b/C3d/Include/action_curve3d.h index dba3c39..f369fc9 100644 --- a/C3d/Include/action_curve3d.h +++ b/C3d/Include/action_curve3d.h @@ -217,12 +217,12 @@ MATH_FUNC (MbResultType) NurbsCurve( const SArray & pointList, \ingroup Curve3D_Modeling */ // --- -MATH_FUNC (double) NurbsFitting( const std::vector & pointList, - bool curveClosed, - size_t degree, - size_t mode, - double & accuracy, - MbCurve3D *& result ); +DEPRECATE_DECLARE MATH_FUNC (double) NurbsFitting( const std::vector & pointList, + bool curveClosed, + size_t degree, + size_t mode, + double & accuracy, + MbCurve3D *& result ); //------------------------------------------------------------------------------ diff --git a/C3d/Include/action_polymesh.h b/C3d/Include/action_polymesh.h index 46d869d..a2d6730 100644 --- a/C3d/Include/action_polymesh.h +++ b/C3d/Include/action_polymesh.h @@ -315,11 +315,10 @@ MATH_FUNC( MbResultType ) DrapeShell( const MbDrapeShellParams & params, MbDrape \en Merging parameters. \~ \param[in-out] meshTo - \ru Полигональный объект, который аккумулирует результат объединения. \en A polygonal object, accumulating merged objects. \~ - \return \ru Код результата операции, rt_Success если объекты успешно объединены. + \return \ru Код результата операции, rt_Success, если объекты успешно объединены. \en Returns the operation result code, rt_Success if the objects are successfully merged. \n \warning \ru В разработке. \en Under development.\~ */ // --- MATH_FUNC( MbResultType ) MergePolymeshes( const MbPolymesh & meshFrom, const MbMergePolymeshParams & params, MbPolymesh & meshTo ); - #endif // __ACTION_POLYMESH_H diff --git a/C3d/Include/action_wireframe.h b/C3d/Include/action_wireframe.h index f9e620c..3579cff 100644 --- a/C3d/Include/action_wireframe.h +++ b/C3d/Include/action_wireframe.h @@ -19,6 +19,7 @@ class MbNurbsWireFrameParams; class MbTrimmedWireFrameParams; class MbWireFrameProjParams; class MbWireFrameProjResult; +class MbOffsetWireFrameParams; //------------------------------------------------------------------------------ @@ -201,4 +202,28 @@ MATH_FUNC( MbResultType ) ExtendWireFrame( c3d::WireFrameSPtr & const MbCurveExtensionParameters3D & params, c3d::WireFrameSPtr & result ); + +//------------------------------------------------------------------------------ +/** \brief \ru Создать эквидистантный каркас. + \en Create an offset wire frame. \~ + \details \ru Создать эквидистантный каркас смещением базового каркаса. + \en Create an offset wire frame by shifting the base wire frame. \~ + \param[in] wireFrame - \ru Исходный каркас. + \en The initial wire frame. \~ + \param[in] sameWire - \ru Режим копирования входного каркаса. + \en Whether to copy the input wire frame. \~ + \param[in] params - \ru Параметры операции. + \en Operation parameters. \~ + \param[out] result - \ru Эквидистантный каркас. + \en The offset wire frame. \~ + \return \ru Возвращает код результата операции. + \en Returns operation result code. \~ + \ingroup WireFrame_Modeling +*/ +// --- +MATH_FUNC( MbResultType ) CreateOffsetWireFrame( c3d::WireFrameSPtr & wireFrame, + MbeCopyMode sameWire, + const MbOffsetWireFrameParams & params, + c3d::WireFrameSPtr & result ); + #endif // __ACTION_WIREFRAME_H diff --git a/C3d/Include/attr_hotpoint_attribute.h b/C3d/Include/attr_hotpoint_attribute.h index e7edb71..7723519 100644 --- a/C3d/Include/attr_hotpoint_attribute.h +++ b/C3d/Include/attr_hotpoint_attribute.h @@ -44,13 +44,14 @@ public: */ //--- enum class MbeHotPointType : uint16 { - undefinedHP = 0, ///< \ru Неопределенный тип. \en Undefined type. - draftHP, ///< \ru Хот-точка операции уклона. \en The draft operation hot point. - conicSectionHP, ///< \ru Хот-точка операции построения переменного конического сечения. \en The conic section operation hot point. - DMFilletRadiusSetHP, ///< \ru Хот-точка операции прямого моделирования по установке радиусов граням скругления. \en The direct modeling operation's hot point by set fillet face's radius. - elementaryHP, ///< \ru Хот-точка операции построения элементарного тела. \en The elementary solid operation hot point. - DMReplaceFacesHP, ///< \ru Хот-точка операции замены граней. \en Hot point of the face replacement operation. - DMOffsetFacesHP, ///< \ru Хот-точка операции замены граней на эквидистантные. \en Hot point of the operation of replacement faces with the offset ones. + undefinedHP = 0, ///< \ru Неопределенный тип. \en Undefined type. + draftHP, ///< \ru Хот-точка операции уклона. \en The draft operation hot point. + conicSectionHP, ///< \ru Хот-точка операции построения переменного конического сечения. \en The conic section operation hot point. + DMFilletRadiusSetHP, ///< \ru Хот-точка операции прямого моделирования по установке радиусов граням скругления. \en The direct modeling operation's hot point by set fillet face's radius. + elementaryHP, ///< \ru Хот-точка операции построения элементарного тела. \en The elementary solid operation hot point. + DMReplaceFacesHP, ///< \ru Хот-точка операции замены граней. \en Hot point of the face replacement operation. + DMOffsetFacesHP, ///< \ru Хот-точка операции замены граней на эквидистантные. \en Hot point of the operation of replacement faces with the offset ones. + DMReplaceFacesGroupHP, ///< \ru Хот-точка операции замены группы граней. \en Hot point of the operation of replacement faces group. // \ru Вставлять новые типы перед этим типом. \en Insert new types before this type. endHP = SYS_MAX_INT16 }; diff --git a/C3d/Include/attr_user_attribute.h b/C3d/Include/attr_user_attribute.h index 255ba4a..bba1457 100644 --- a/C3d/Include/attr_user_attribute.h +++ b/C3d/Include/attr_user_attribute.h @@ -40,6 +40,8 @@ class MATH_CLASS MbFixAttrSet; class IAttrDefinition { public: + virtual ~IAttrDefinition() = default; + /// \ru Преобразовать из пользовательского в "системный". \en Convert user attribute to "system" one. virtual MbUserAttribute * ReduceUserAttrib ( const MbExternalAttribute & source ) = 0; diff --git a/C3d/Include/attribute_item.h b/C3d/Include/attribute_item.h index 29a8110..5cd7419 100644 --- a/C3d/Include/attribute_item.h +++ b/C3d/Include/attribute_item.h @@ -600,7 +600,9 @@ namespace c3d // namespace C3D constexpr TCHAR c3dStr_SavedViewUpVector[] = _T( "c3d_SavedView_UpVector" ); /** \ru Подсказка для масштаба текущего вида. \en Hint for the scale of the current view. \~*/ constexpr TCHAR c3dStr_SavedViewScale[] = _T( "c3d_SavedView_Scale" ); - + /** \ru Подсказка для типа текущего вида (ортогональный/перспективный). Хранится в виде значения bool. + \en Hint for the type of the current view (orthogonal/perspective). Stored as a bool value. \~*/ + constexpr TCHAR c3dStr_SavedViewPerspective[] = _T( "c3d_SavedView_Perspective" ); } // namespace C3D diff --git a/C3d/Include/check_geometry.h b/C3d/Include/check_geometry.h index 7b2d4cf..00e4e31 100644 --- a/C3d/Include/check_geometry.h +++ b/C3d/Include/check_geometry.h @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -1227,7 +1228,7 @@ public: /// \ru Режим проверки самопересечений. \en Mode of self intersection checking. enum class MbeCheckSelfIntMode { - Auto , /// \ru Автоматический режим. \en Auto mode. + Auto , /// \ru Автоматический режим (проверять пересечение граней, включая самопересечения). \en Auto mode (check intersection of faces including self-intersections). SelfIntFacesOnly , /// \ru Проверять только самопересечение граней. \en Check only self-intersection of faces. IntDfferentFacesOnly /// \ru Проверять только пересечение различных граней. \en Check only the intersection of different faces. }; @@ -1235,6 +1236,8 @@ public: private: MbeCheckSelfIntMode _mode; ///< \ru Режим проверки самопересечений. \en Mode of self intersection checking. VERSION _version; ///< \ru Версия алгоритма. \en Algorithm version. + std::unique_ptr _stepData; ///< \ru Данные для вычисления шага при триангуляции. \en Data for step calculation during triangulation. + public: mutable IProgressIndicator * _progress; ///< \ru Индикатор прогресса выполнения операции. \en A progress indicator of the operation. @@ -1243,7 +1246,7 @@ public: MbShellSelfIntParams(); /** \brief \ru Конструктор проверки на самопересечение оболочки. \en Constructor of checking for self-intersection of shell. \~ - \details \ru Конструктор проверки на самопересечение оболчки. + \details \ru Конструктор проверки на самопересечение оболочки. \en Constructor of checking for self-intersection of shell. \~ \param[in] version - \ru Версия алгоритма. \en Algorithm version. \~ @@ -1253,7 +1256,7 @@ public: MbShellSelfIntParams( VERSION version, IProgressIndicator * prog = nullptr ); /** \brief \ru Конструктор проверки на самопересечение оболочки. \en Constructor of checking for self-intersection of shell. \~ - \details \ru Конструктор проверки на самопересечение оболчки. + \details \ru Конструктор проверки на самопересечение оболочки. \en Constructor of checking for self-intersection of shell. \~ \param[in] mode - \ru Режим проверки самопересечений. \en Mode of self intersection checking. \~ @@ -1263,6 +1266,20 @@ public: \en A progress indicator of the operation. */ MbShellSelfIntParams( MbeCheckSelfIntMode mode, VERSION version, IProgressIndicator * prog = nullptr ); + /** \brief \ru Конструктор проверки на самопересечение оболочки с помощью анализа сеток. + \en Constructor of checking for self-intersection of shell by meshes check. \~ + \details \ru Конструктор проверки на самопересечение оболочки с помощью анализа сеток. + \en Constructor of checking for self-intersection of shell by meshes check. \~ + \param[in] stepData - \ru Данные для вычисления шага при триангуляции. + \en Data for step calculation during triangulation. \~ + \param[in] version - \ru Версия алгоритма. + \en Algorithm version. \~ + \param[in] prog - \ru Индикатор прогресса выполнения операции. + \en A progress indicator of the operation. + \warning \ru Пока не готово. \en Not yet ready. +*/ + MbShellSelfIntParams( const MbStepData & stepData, VERSION version = Math::DefaultMathVersion(), IProgressIndicator * prog = nullptr ); + /// \ru Деструктор. \en Destructor. ~MbShellSelfIntParams() {} public: @@ -1272,6 +1289,9 @@ public: void SetMode( MbeCheckSelfIntMode mode ) { _mode = mode; } /// \ru Получить версию алгоритма. \en Get the algorithm version. VERSION GetVersion() const { return _version; } + // \ru Получить данные для расчета шага. \en Get data for the step calculation. \~ + const MbStepData * GetStepData() const { return _stepData.get(); } + OBVIOUS_PRIVATE_COPY( MbShellSelfIntParams ) }; @@ -1292,7 +1312,7 @@ private: \en Result of intersection/self-intersection of faces. \~ \details \ru Результат пересечения/самопересечения граней. Если '_facesIndices' содержат одинаковые индексы, значит грань с данным индексом самопересекается. - Кривые пересечения не вычисляются для сомопересечения и '_curves' будет пустым. \n + Кривые пересечения не вычисляются для самопересечения и '_curves' будет пустым. \n \en The result of intersection/self-intersection of edges. If '_facesIndices' contains identical indices, which means the face with this index intersects itself. Intersection curves are not calculated for self-intersection and '_curves' will be empty. \n \~ @@ -1359,8 +1379,8 @@ public: If intersectionCurves = nullptr - intersection curves do not return. \~ \return \ru Возвращает: - false, если результата с заданым индексом не содержится; - true, если результата с заданым индексом найден; + false, если результата с заданным индексом не содержится; + true, если результата с заданным индексом найден; \en Returns: false, if there is no result with the given index; true, if a result with the given index is found; \~ @@ -1370,6 +1390,8 @@ public: size_t Count() const { return _selfIntResults.size(); } /// \ru Установить значения по умолчанию. \en Set defaults. void Reset() { _selfIntResults.clear(); }; + /// \ru Зарезервировать размер массива пар пересекающихся и самопересекающихся граней. \en Reserve the size the array of pairs of intersecting and self-intersecting faces. + void ReserveResult( size_t count ) { _selfIntResults.reserve( count ); } OBVIOUS_PRIVATE_COPY( MbShellSelfIntResults ) }; diff --git a/C3d/Include/conv_exchange_settings.h b/C3d/Include/conv_exchange_settings.h index 4260d5c..8a5f44f 100644 --- a/C3d/Include/conv_exchange_settings.h +++ b/C3d/Include/conv_exchange_settings.h @@ -409,9 +409,9 @@ public : public: /// \ru Получить имя документа. \en Get document's name. virtual const std::string GetDocumentName () const = 0; //{ return std::string( GetDocName().get_str() ); }; - /// \ru Получить имя файла для конвертирования. \en Get file name for converting. - virtual const c3d::path_string FullFilePath () const = 0 ;//{ return c3d::path_string( GetFileName().c_str() ); }; - /// \ru Является ли файл текстовым. \en Whether the file is a text file. + /// \ru Получить имя файла для конвертирования. \en Get file name for converting. + virtual const c3d::path_string FullFilePath() const = 0;//{ return c3d::path_string( GetFileName().c_str() ); }; + /// \ru Является ли файл текстовым. \en Whether the file is a text file. virtual bool IsFileAscii () const = 0; /// \ru Получить версию формата при экспорте. \en Get the version of format for export. virtual long int GetFormatVersion () const { return EXPORT_DEFAULT; }; @@ -529,6 +529,9 @@ public: /// \ru Определить способ формирования визуальных свойст при чтении из C3D. \en Specify the way how visual properties form while reading from C3D. virtual ColorProcessing GetC3DVisualPropertiesResolutionStrategy() const { return ColorProcessing::cr_Both; } + + /// \ru Импортировать полигональные объекты как объекты с топологической информацией. \en Import polygonal objects as objects with topological information. + virtual bool ImportMeshesWithTopology() const { return false; } }; // IConvertorProperty3D @@ -576,6 +579,7 @@ public: double appUnitsFactor; ///< \ru Единицы длины модели пользовательского приложения. \en Length units of the model used in user application. bool attatchIdAttributes; ///< \ru Следует ли формировать атрибут на основе идентификатора элемнта в файле. \en Whether to attatch the element's id in file as attribute. bool auditEnabled; + bool importMeshesWithTopology; ///< \ru Сохранять сетки в MbMesh (false) или в MbPolymesh (true). \en Save meshes to MbMesh (false) or to MbPolymesh (true). ColorProcessing visualPropertiesFormation; ///< \ru Способ формирования визуальных свойст при чтении из C3D. \en The way how visual properties form while reading from C3D. SPtr pruductIdMaker; ///< \ru Генератор однострочного идентификатора по данным об изделии. \en Generator of a single-line id based on product information attribute. SPtr scaleRequester; /// \ru Запросчик масштабного коэффициента единиц длины. \en Scale requester. @@ -715,6 +719,9 @@ public: /// \ru Определить способ формирования визуальных свойст при чтении из C3D. \en Specify the way how visual properties form while reading from C3D. ColorProcessing GetC3DVisualPropertiesResolutionStrategy() const override; + /// \ru Импортировать полигональные объекты как объекты с топологической информацией. \en Import polygonal objects as objects with topological information. + bool ImportMeshesWithTopology() const override { return importMeshesWithTopology; } + OBVIOUS_PRIVATE_COPY( ConvConvertorProperty3D ) }; // IConvertorProperty3D @@ -803,4 +810,30 @@ public: bool StdToC3D( const std::string & from, c3d::string_t& to ) override; }; + +//------------------------------------------------------------------------------ +/** \brief \ru Преобразование строк с использованием кодировки Windows-1251. + \en Transform strings using the Windows-1251 encoding. + \ingroup Base_Tools_String +*/ +class CONV_CLASS IC3DCharEncodingTransformerWindows1251 : public IC3DCharEncodingTransformer +{ +public: + ~IC3DCharEncodingTransformerWindows1251() override = default; + + //------------------------------------------------------------------------------ + /** \brief \ru Преобразовать строку C3D в строку STD. + \en Transform C3D string to the STD one. \~ + \ingroup Base_Tools_String + */ + bool C3DToStd( const c3d::string_t& from, std::string & to ) override; + + //------------------------------------------------------------------------------ + /** \brief \ru Преобразовать строку STD в строку C3D. + \en Transform STD string to the C3D one. \~ + \ingroup Base_Tools_String + */ + bool StdToC3D( const std::string & from, c3d::string_t& to ) override; +}; + #endif // __CONV_EXCHANGE_SETTINGS_H diff --git a/C3d/Include/conv_model_tree_linearized.h b/C3d/Include/conv_model_tree_linearized.h index 1566404..676c8be 100644 --- a/C3d/Include/conv_model_tree_linearized.h +++ b/C3d/Include/conv_model_tree_linearized.h @@ -1,4 +1,7 @@ -#include +#ifndef MODEL_TREE_LINEARIZED_H +#define MODEL_TREE_LINEARIZED_H + +#include #include #include #include @@ -50,18 +53,18 @@ class LinearizedContainer { ReferencedItemType item; mutable std::vector references; public: + // Конструктор по умолчанию + LinearizedContainer() = default; + + // Конструктор копирования по умолчанию + LinearizedContainer(const LinearizedContainer& i) = default; + // Конструктор - LinearizedContainer( const ReferencedItemType& it ) + LinearizedContainer(const ReferencedItemType& it) : item( it ) , references() { } - // Конструктор копирования - LinearizedContainer( const LinearizedContainer& i ) - : item( i.item ) - , references( i.references ) { - } - // Оператор сравнения bool operator ==(const LinearizedContainer& to) const { return item == to.item; @@ -117,9 +120,14 @@ public: // Деструктор ~LinearizedTreeDocument(); -public: + PartsLinearized GetPartsList() const; + + AssembliesLinearized GetAssembliesList() const; + // Заполнить данные void FillLinearizedData(); + + private: // Заполнены ли данные bool IsFilled(); @@ -153,4 +161,6 @@ public: void SolidPlaneCutting( const MbSolid & solid, std::vector & cutRes ); // Резка тела MbResultType SolidCut( const MbSolid & solid, const MbSurface & surf, bool forward ); -}; \ No newline at end of file +}; + +#endif //MODEL_TREE_LINEARIZED_H \ No newline at end of file diff --git a/C3d/Include/conv_topo_mesh.h b/C3d/Include/conv_topo_mesh.h index 8df60d7..baa5c1a 100644 --- a/C3d/Include/conv_topo_mesh.h +++ b/C3d/Include/conv_topo_mesh.h @@ -19,8 +19,7 @@ class MbGrid; class MbFloatGrid; -class MbMesh; -class MbTriangle; +class MbItem; namespace JTC { @@ -45,14 +44,12 @@ namespace JTC { typedef std::vector MeshVertexVector; typedef std::vector MeshPolygonVector; - typedef std::pair TrianglePair; - - //------------------------------------------------------------------------------ // Сетка с топологической информацией // --- class CONV_CLASS TopoMesh : public MbRefItem { - SPtr mesh; + protected: + SPtr item; TopoGridVector grids; MeshVertexVector ownPoints; MeshPolygonVector ownFacePolygons; @@ -67,10 +64,10 @@ namespace JTC { virtual ~TopoMesh(); /// Инициализировать - bool Init( const MbMesh& mesh, bool enableDiagnostics = false ); + bool Init( const MbItem& mesh, bool enableDiagnostics = false ); /// Получить сетку - const MbMesh* GetMesh() const; + SPtr GetMesh() const; /// Число полигонов size_t MeshPolygonsCount() const; @@ -89,7 +86,7 @@ namespace JTC { /// Получить вырожденные треуголники std::map< size_t, std::vector > GetDegeneratedTriangles() const; - + /// Получить граничные точки сетки std::vector GetBoundaryPoints() const; @@ -97,7 +94,7 @@ namespace JTC { void Reset(); /// Получить следующую в цепочке граничную вершину. - size_t NextBoundaryVertex( size_t indexBoundaryVertex, const std::vector& allBoundary ) const; + //unused:size_t NextBoundaryVertex( size_t indexBoundaryVertex, const std::vector& allBoundary ) const; /// Сформировать внешнюю границу начиная с указанной вершины. bool InitVoidBoundFrom( std::vector& freeBoundaryVerticis ); @@ -105,6 +102,9 @@ namespace JTC { /// Получить точность задания расстояния. double MetricTolerance() const; + /// Получить нормаль на сетке + void GetNormal( size_t indexGrid, size_t indexNormal, MbFloatVector3D& vNormal ) const; + OBVIOUS_PRIVATE_COPY( TopoMesh ) }; diff --git a/C3d/Include/cr_offset_wireframe.h b/C3d/Include/cr_offset_wireframe.h new file mode 100644 index 0000000..59bc039 --- /dev/null +++ b/C3d/Include/cr_offset_wireframe.h @@ -0,0 +1,75 @@ +//////////////////////////////////////////////////////////////////////////////// +/** + \file + \brief \ru Строитель эквидистантного каркаса. + \en Creator of an offset wire frame. +*/ +//////////////////////////////////////////////////////////////////////////////// + +#ifndef __CR_OFFSET_WIREFRAME_H +#define __CR_OFFSET_WIREFRAME_H + + +#include +#include + + +//------------------------------------------------------------------------------ +/** \brief \ru Строитель эквидистантного каркаса. + \en Creator of an offset wire frame. \~ + \details \ru Строитель эквидистантного каркаса. + \en Creator of an offset wire frame. \~ + \ingroup Model_Creators +*/ +// --- +class MATH_CLASS MbOffsetWireFrameCreator : public MbCreator { +private: + MbOffsetWireFrameParams _parameters; ///< \ru Параметры эквидистантного каркаса. \en Parameters of an offset wire frame. + +public: + /** \brief \ru Конструктор по параметрам. + \en Constructor by parameters. \~ + \details \ru Конструктор эквидистантного карскаса в пространстве. + \en Constructor of an offset wire frame in the space. \~ + \param[in] params - \ru Параметры. + \en Parameters. \~ + */ + MbOffsetWireFrameCreator( const MbOffsetWireFrameParams & params ); + + /// \ru Деструктор. \en Destructor. + virtual ~MbOffsetWireFrameCreator(); + +protected: + /// \ru Конструктор копирования. \en Copy-constructor. + MbOffsetWireFrameCreator( const MbOffsetWireFrameCreator & other, + MbRegDuplicate * iReg ); +private: + MbOffsetWireFrameCreator(); ///< \ru Не реализовано. \en Not implemented. + +public: + // \ru Общие функции строителя. \en The common functions of the creator. + MbeCreatorType IsA() const override; ///< \ru Тип элемента. \en A type of element. + MbCreator & Duplicate( MbRegDuplicate * iReg = nullptr) const override; ///< \ru Сделать копию. \en Create a copy. + + bool IsSame ( const MbCreator &, double accuracy) const override; ///< \ru Являются ли объекты равными? \en Determine whether an object is equal? + bool IsSimilar( const MbCreator & ) const override; ///< \ru Являются ли объекты подобными. \en Whether the objects are similar. + bool SetEqual ( const MbCreator & ) override; ///< \ru Сделать равным. \en Make equal. + + void Transform( const MbMatrix3D &, MbRegTransform * = nullptr ) override; ///< \ru Преобразовать элемент согласно матрице. \en Transform element according to the matrix. + void Move ( const MbVector3D &, MbRegTransform * = nullptr ) override; ///< \ru Сдвиг. \en Translation. + void Rotate ( const MbAxis3D &, double angle, MbRegTransform * = nullptr ) override; ///< \ru Повернуть вокруг оси. \en Rotate about an axis. + + MbePrompt GetPropertyName() override; ///< \ru Дать имя свойства объекта. \en Get the object property name. + void GetProperties ( MbProperties & ) override; ///< \ru Выдать свойства объекта. \en Get properties of the object. + void SetProperties ( const MbProperties & ) override; ///< \ru Записать свойства объекта. \en Set properties of the object. + + bool CreateWireFrame( MbWireFrame *&, MbeCopyMode, RPArray * items = nullptr ) override; ///< \ru Построить каркас по журналу построения \en Create an offset wire frame from the history tree. + +DECLARE_PERSISTENT_CLASS_NEW_DEL( MbOffsetWireFrameCreator ) +}; // MbOffsetWireFrameCreator + + +IMPL_PERSISTENT_OPS( MbOffsetWireFrameCreator ) + + +#endif // __CR_OFFSET_WIREFRAME_H diff --git a/C3d/Include/cr_split_data.h b/C3d/Include/cr_split_data.h index d009f85..f475748 100644 --- a/C3d/Include/cr_split_data.h +++ b/C3d/Include/cr_split_data.h @@ -84,10 +84,10 @@ private: public: /// \ru Конструктор. \en Constructor. MbSplitData() - : place ( ) + : sketchContours( ) + , place ( ) , direction ( ) , sense ( orient_BOTH ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -96,10 +96,10 @@ public: } /// \ru Конструктор по двумерному контуру в локальной системе координат. \en Constructor by two-dimensional contour in the local coordinate system. MbSplitData( const MbPlacement3D & pl, MbeSenseValue dirSense, const MbContour & item, bool same ) - : place ( pl ) + : sketchContours( ) + , place ( pl ) , direction ( ) , sense ( dirSense ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -111,10 +111,10 @@ public: } /// \ru Конструктор по двумерному контуру в локальной системе координат. \en Constructor by two-dimensional contour in the local coordinate system. MbSplitData( const MbPlacement3D & pl, const MbVector3D & dir, const MbContour & item, bool same ) - : place ( pl ) + : sketchContours( ) + , place ( pl ) , direction ( dir ) , sense ( orient_BOTH ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -129,10 +129,10 @@ public: /// \ru Конструктор по двумерным контурам в локальной системе координат. \en Constructor by two-dimensional contours in the local coordinate system. template MbSplitData( const MbPlacement3D & pl, MbeSenseValue dirSense, const PlaneContoursVector & items, bool same ) - : place ( pl ) + : sketchContours( ) + , place ( pl ) , direction ( ) , sense ( dirSense ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -143,10 +143,10 @@ public: /// \ru Конструктор по двумерным контурам в локальной системе координат. \en Constructor by two-dimensional contours in the local coordinate system. template MbSplitData( const MbPlacement3D & pl, const MbVector3D & dir, const PlaneContoursVector & items, bool same ) - : place ( pl ) + : sketchContours( ) + , place ( pl ) , direction ( dir ) , sense ( orient_BOTH ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -158,10 +158,10 @@ public: } /// \ru Конструктор по пространственным кривым. \en Constructor by spatial curves. MbSplitData( const c3d::ConstSpaceCurvesSPtrVector & items, bool same ) - : place ( ) + : sketchContours( ) + , place ( ) , direction ( ) , sense ( orient_BOTH ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -171,10 +171,10 @@ public: } /// \ru Конструктор по пространственным кривым. \en Constructor by spatial curves. MbSplitData( const c3d::ConstSpaceCurvesVector & items, bool same ) - : place ( ) + : sketchContours( ) + , place ( ) , direction ( ) , sense ( orient_BOTH ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -184,10 +184,10 @@ public: } /// \ru Конструктор по поверхности. \en Constructor by a surface. MbSplitData( const MbSurface & item, bool same ) - : place ( ) + : sketchContours( ) + , place ( ) , direction ( ) , sense ( orient_BOTH ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -199,10 +199,10 @@ public: } /// \ru Конструктор по поверхностям. \en Constructor by surfaces. MbSplitData( const c3d::ConstSurfacesSPtrVector & items, bool same ) - : place ( ) + : sketchContours( ) + , place ( ) , direction ( ) , sense ( orient_BOTH ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) @@ -212,10 +212,10 @@ public: } /// \ru Конструктор по поверхностям. \en Constructor by surfaces. MbSplitData( const c3d::ConstSurfacesVector & items, bool same ) - : place ( ) + : sketchContours( ) + , place ( ) , direction ( ) , sense ( orient_BOTH ) - , sketchContours( ) , spaceCurves ( ) , surfaces ( ) , creators ( ) diff --git a/C3d/Include/creator.h b/C3d/Include/creator.h index 22a78db..6bbb798 100644 --- a/C3d/Include/creator.h +++ b/C3d/Include/creator.h @@ -102,6 +102,8 @@ enum MbeCreatorType { ct_UnwrapPointCreator = 220, ///< \ru Строитель развёрнутой точки. \en Constructor of the unwrapped point. \n ct_WrapPointCreator = 221, ///< \ru Строитель свёрнутой точки. \en Constructor of the wrapped point. \n + ct_OffsetWireFrameCreator = 222, ///< \ru Строитель эквидистантного каркаса. \en Constructor of the offset wireframe. \n + // \ru Строители полигональных объектов. \en Creators of polygonal objects. ct_SimpleMeshCreator = 400, ///< \ru Строитель полигонального объекта без истории. \en Constructor of a polygonal object without history. ct_ReverseMeshCreator = 401, ///< \ru Строитель вывернутого полигонального объекта. \en Constructor of a reversed polygonal object. diff --git a/C3d/Include/cur_surface_intersection.h b/C3d/Include/cur_surface_intersection.h index 7706825..68c90ba 100644 --- a/C3d/Include/cur_surface_intersection.h +++ b/C3d/Include/cur_surface_intersection.h @@ -72,10 +72,10 @@ namespace c3d // namespace C3D Кривая пересечения поверхностей используется для стыковки поверхностей или для описания ребра стыковки двух граней. Кривая пересечения может описывать разные типы рёбер стыковки двух граней: \n обычное ребро - поверхности разные, двумерные кривые разные,\n - ребро-шов - поверхность одина и та же, двумерные кривые разные не равные,\n + ребро-шов - поверхность одна и та же, двумерные кривые разные не равные,\n Ребро-линия разъема - поверхности копии, двумерные кривые копии,\n - ребро-край - поверхность одина и та же, двумерная кривая одина и та же,\n - ребро-полюс - поверхность одина и та же, двумерные кривые копии.\n + ребро-край - поверхность одна и та же, двумерная кривая одна и та же,\n + ребро-полюс - поверхность одна и та же, двумерные кривые копии.\n Если две двумерные кривые кривых на поверхности curveOne curveTwo являются контурами, то количество сегментов в них должно быть одинаковым. \en Intersection curve of surfaces contains two curves on intersected surfaces - curveOne and curveTwo, conformed to the next rules:\n @@ -128,7 +128,7 @@ private : { SPtr spaceCurve; ///< \ru Пространственная аппроксимационная кривая. \en The spatial approximating curve. \~ SpaceCurveAuxiliaryData() : spaceCurve( nullptr ) {} - SpaceCurveAuxiliaryData( const SpaceCurveAuxiliaryData & c ) : spaceCurve( nullptr ) { + SpaceCurveAuxiliaryData( const SpaceCurveAuxiliaryData & c ) : AuxiliaryData {}, spaceCurve( nullptr ) { if ( c.spaceCurve != nullptr ) { spaceCurve = static_cast( &c.spaceCurve->Duplicate() ); } diff --git a/C3d/Include/func_nurbs_function.h b/C3d/Include/func_nurbs_function.h index b46c50b..4aa3746 100644 --- a/C3d/Include/func_nurbs_function.h +++ b/C3d/Include/func_nurbs_function.h @@ -53,7 +53,7 @@ protected: public: MbNurbsFunctionAuxiliaryData() : values(), pointsM(), weightM() {} - MbNurbsFunctionAuxiliaryData( const MbNurbsFunctionAuxiliaryData & ) : values(), pointsM(), weightM() {} + MbNurbsFunctionAuxiliaryData( const MbNurbsFunctionAuxiliaryData & ) : AuxiliaryData {}, values(), pointsM(), weightM() {} virtual ~MbNurbsFunctionAuxiliaryData() {} }; diff --git a/C3d/Include/gc_api.h b/C3d/Include/gc_api.h index 8dd5fad..7d1849d 100644 --- a/C3d/Include/gc_api.h +++ b/C3d/Include/gc_api.h @@ -21,7 +21,7 @@ #include #include -#include +#include template class SArray; diff --git a/C3d/Include/gce_api.h b/C3d/Include/gce_api.h index 2457a97..e2eb6cf 100644 --- a/C3d/Include/gce_api.h +++ b/C3d/Include/gce_api.h @@ -337,6 +337,25 @@ GCE_FUNC(pattern_item) GCE_AddLinearPattern( GCE_system gSys, GCE_vec2d trans ); //--- GCE_FUNC(pattern_item) GCE_AddAngularPattern( GCE_system gSys, GCE_point point, double angle ); +//---------------------------------------------------------------------------------------- +/** \brief \ru Объявить составной паттерн по двум данным. + \en Declare a composition pattern of two patterns. \~ + \param[in] gSys - \ru Система ограничений. + \en System of constraints. \~ + \param[in] pItem1 - \ru Первый паттерн. + \en The first pattern. \~ + \param[in] pItem2 - \ru Второй паттерн. + \en The second patttern. \~ + + \return \ru Дескриптор зарегистрированного паттерна. + \en Descriptor of registered pattern. \~ + + \details \ru Метод создает паттерн - композицию двух паттернов. + \en The method creates an composition pattern defined by two patterns. \~ +*/ +//--- +GCE_FUNC(pattern_item) GCE_AddCompositionPattern( GCE_system gSys, pattern_item pItem1, pattern_item pItem2 ); + //---------------------------------------------------------------------------------------- /** \brief \ru Создать k-й экземпляр образца в данном паттерне. \en Create k-th instance of the sample in a given pattern. \~ @@ -359,13 +378,38 @@ GCE_FUNC(pattern_item) GCE_AddAngularPattern( GCE_system gSys, GCE_point point, //--- GCE_FUNC(geom_item) GCE_AddInstance( GCE_system gSys, pattern_item pItem, geom_item sample, int k ); +//---------------------------------------------------------------------------------------- +/** \brief \ru Создать (i, j) экземпляр образца в данном составном паттерне. + \en Create (i, j) instance of the sample in a given composition pattern. \~ + \param[in] gSys - \ru Система ограничений. + \en System of constraints. \~ + \param[in] pItem - \ru Дескриптор паттерна. + \en Descriptor of pattern. \~ + \param[in] sample - \ru Дескриптор образца. + \en Descriptor of sample. \~ + \param[in] i - \ru Номер экземпляра. + \en Copy number. \~ + \param[in] j - \ru Номер экземпляра. + \en Copy number. \~ + + \return \ru Дескриптор зарегистрированного экземпляра. + \en Descriptor of registered instance. \~ + + \details \ru Метод создает (i, j) экземпляр образца в данном составном паттерне. + При i = 0, j = 0 возвращает идентификатор образца. + \en The method creates the (i, j) instance of the sample in the given pattern. + It returns the sample descriptor if i = 0 and j = 0. \~ +*/ +//--- +GCE_FUNC(geom_item) GCE_AddInstance( GCE_system gSys, pattern_item pItem, geom_item sample, int i, int j ); + //---------------------------------------------------------------------------------------- /** \brief \ru Добавить в систему жёсткое множество геометрических объектов. \en Add a rigid set of geometric objects to the system. \~ \details \ru Жёсткое множество - это массив геометрических объектов, зафиксированных друг относительно друга. Жёсткое множество представляет собой геометрический объект, для которого доступен весь функционал работы с геометрическими объектами. Например, у него можно спросить тип (#GCE_GeomType -> GCE_SET) или запросить - положение. С помощью вызовов #GCE_GetPoint и #GCE_GetCoordValue можно получить начало координат и направление оси OX + положение. С помощью вызовов #GCE_GetPointXY и #GCE_GetCoordValue можно получить начало координат и направление оси OX ЛСК жёсткого множества. Чтобы удалить жёсткое множество, надо, как и для любого другого геометрического объекта, вызвать функцию #GCE_RemoveGeom. При этом составляющие жёсткое множество объекты (geoms) при удалении жёсткого множества не удаляются и могут далее быть использованы в решателе. С геометрическими объектами, образующими @@ -375,7 +419,7 @@ GCE_FUNC(geom_item) GCE_AddInstance( GCE_system gSys, pattern_item pItem, geom_i дескриптор самого геометрического объекта из массива geoms, на который накладывается ограничение. \en A rigid set is an array of geometric objects which are fixed relative to each other. It is considered as a geometric object and hence all the functionality for working with geometric objects is available for it. For - example, it's possible to request its type (#GCE_GeomType -> GCE_SET) or get its position invoking #GCE_GetPoint + example, it's possible to request its type (#GCE_GeomType -> GCE_SET) or get its position invoking #GCE_GetPointXY and #GCE_GetCoordValue to get the origin and the direction of the OX axis of the LCS of the rigid set. To remove a rigid set it's necessary to call the function #GCE_RemoveGeom. Geometric objects (geoms) are not deleted together with a rigid set and can be used in the solver after it will be deleted. With geometric objects that have been @@ -828,6 +872,21 @@ GCE_FUNC(geom_item) GCE_FixOffset( GCE_system gSys, geom_item curve ); //--- GCE_FUNC(bool) GCE_IsConstrainedGeom( GCE_system gSys, geom_item g ); +//---------------------------------------------------------------------------------------- +/** \brief \ru Определить смежные ли это ограничение и геометрический объект. + \en Determine whether the constraint and the geometric object are adjacent. \~ + \param[in] gSys - \ru Система ограничений. + \en System of constraints. \~ + \param[in] g - \ru Дескриптор геометрического объекта. + \en Descriptor of geometric object. \~ + \param[in] cItem - \ru Дескриптор ограничения. + \en Descriptor of constraint. \~ + \return \ru true, если ограничение и геометрический объект смежные. + \en true if the constraint and the geometric object are adjacent. \~ +*/ +//--- +GCE_FUNC(bool) GCE_IsAdjacentConstraint( GCE_system gSys, geom_item g, constraint_item cItem ); + //---------------------------------------------------------------------------------------- /** \brief \ru Функция отвечает на вопрос: Имеется ли хотя бы один экземпляр паттерна? \en The function answers the question: Is there an instance of the pattern? \~ @@ -1507,6 +1566,32 @@ GCE_FUNC(constraint_item) GCE_AddLength( GCE_system gSys, geom_item curve, GCE_d //--- GCE_FUNC(constraint_item) GCE_AddPatterned( GCE_system gSys, pattern_item pItem, geom_item sample, geom_item instance, int k ); +//---------------------------------------------------------------------------------------- +/** \brief \ru Связать ограничением паттерна два геометрических объекта. + \en Bind two geometric objects by a pattern constraint. \~ + \param[in] gSys - \ru Система ограничений. + \en System of constraints. \~ + \param[in] pItem1 - \ru Дескриптор первого паттерна. + \en Descriptor of first pattern. \~ + \param[in] pItem2 - \ru Дескриптор второго паттерна. + \en Descriptor of second pattern. \~ + \param[in] sample - \ru Дескриптор образца. + \en Descriptor of sample. \~ + \param[in] instance - \ru Дескриптор экземпляра. + \en Descriptor of instance. \~ + \param[in] i - \ru Номер экземпляра в первом паттерне. + \en Copy number in first pattern. \~ + \param[in] j - \ru Номер экземпляра во втором паттерне. + \en Copy number in second pattern. \~ + \return \ru Дескриптор зарегистрированного ограничения. + \en Descriptor of registered constrained. \~ + + \details \ru Метод связывает два объекта ограничением паттерна. + \en The method binds the two objects by a pattern constraint. \~ +*/ +//--- +GCE_FUNC(constraint_item) GCE_AddPatterned( GCE_system gSys, pattern_item pItem, geom_item sample, geom_item instance, int i, int j ); + //---------------------------------------------------------------------------------------- /** \brief \ru Задать ограничение "Управляющий параметр" или "Фиксация переменной" \en Set the constraint "Driving parameter" or "Fixation of variable" \~ @@ -1825,6 +1910,30 @@ GCE_FUNC(constraint_item) GCE_AddDirectedDistance( GCE_system gSys, geom_item p[ GCE_FUNC(constraint_item) GCE_AddLinearEquation( GCE_system gSys, const double * a , const var_item * v, size_t n, double c ); +//---------------------------------------------------------------------------------------- +/** \brief \ru Задать ориентацию касания. + \en Set the tangent orientation. + \param[in] \ru gSys Система ограничений. + \en gSys System of constraints. \~ + \param[in] \ru constraint Дескриптор ограничения. + \en constraint Constraint's descriptor. \~ + \param[in] \ru alignment Опция выравнивания касания кривых. + \en alignment Curve tangency alignment option. \~ + \return \ru В случае успешного вызова функция вернет новое значение выравнивания, заданного вызовом. + \en If the call is successful, the function will return the new alignment value specified by the call. \~ + \details + \ru В настоящее время функция применяется к ограничению касания (GCE_TANGENT). Данный вызов устанавливает + сонаправленность или противонаправленность касательных (GCE_COORIENTED, GCE_OPPOSITE), + либо делает выбор автоматически, если задать опцию GCE_AUTO_ALIGNMENT. Когда выбрана опцию GCE_CLOSEST, + солвер будет поддерживать взаимную ориентацию согласно текущего размещения геометрии. + \en The function currently applies to the tangency constraint (GCE_TANGENT). The call sets whether + the direction of the geometry tangents are cooriented/opposite or makes the selection automatically + if you set the GCE_AUTO_ALIGNMENT option. When the option GCE_CLOSEST is selected the C3D Solver + should maintain the current geometry positions. \~ +*/ +//--- +GCE_FUNC(GCE_alignment) GCE_SetAlignment( GCE_system gSys, constraint_item constraint, GCE_alignment alignment = GCE_AUTO_ALIGNMENT ); + //---------------------------------------------------------------------------------------- /** \brief \ru Изменить значение управляющего размера. \en Change the value of driving dimension. \~ @@ -2126,8 +2235,6 @@ GCE_FUNC(GCE_result) GCE_Transform( GCE_system gSys, const MbMatrix & mat ); //--- GCE_FUNC(bool) GCE_SetJournal( GCE_system gSys, const char * fName ); -#define FB_NULL_GEOM 0 - //---------------------------------------------------------------------------------------- /** \brief \ru Устаревшая функция. Вызов будет удален в одной из следующих версий. diff --git a/C3d/Include/gce_equations.h b/C3d/Include/gce_equations.h new file mode 100644 index 0000000..ca43ab3 --- /dev/null +++ b/C3d/Include/gce_equations.h @@ -0,0 +1,131 @@ +////////////////////////////////////////////////////////////////////////////////////////// +/** + \file + \brief \ru Нелинейные уравнения и неравенства, определяемые на стороне Приложения. + \en Nonlinear equations and inequations defined by the application. \~ +*/ +////////////////////////////////////////////////////////////////////////////////////////// + +#ifndef __GCE_EQUATIONS_H +#define __GCE_EQUATIONS_H + +#include +#include "gce_geom.h" + +class MtVectorN; +template class RPArray; + +//---------------------------------------------------------------------------------------- +/** \brief \ru Интерфейс численного уравнения, выраженного через набор координат. + \en Interface of the numeric equation expressed via a set of coordinates. + \details \ru Как правило, это алгебраические уравнение общего вида f(x1,x2,..,xn) = g(x1,x2,..,xn) + явно-выраженной форме: x1 = g(x2,x3,..,xn). + \en As a rule, it is an algebraic equation of a general form f(x1,x2,..,xn) = g(x1,x2,..,xn) + or, as a special case, it is an equation in explicit form: x1 = g(x2,x3,..,xn). \~ +*/ +//--- +struct GCE_CLASS ItNumericEquation +{ + enum eval_result_code: char + { + EVAL_RESULT_Undefined = 0, + EVAL_RESULT_Ok, + EVAL_RESULT_OutOfDomaint + }; + struct eval_result + { + eval_result_code resCode = EVAL_RESULT_Undefined; + double funDer = MB_MAXDOUBLE; // Derivative value. + double funVal = MB_MAXDOUBLE; // Function value. + }; + /// \ru Выдать координату с индексом crdIdx. \en Get coordinate with crdIdx index. + virtual ItCoord* Coord( size_t crdIdx ) const = 0; + /// \ru Количество координат, связанных с уравнением. \en Count of coordinates connected with the equation. + virtual size_t NumCoords() const = 0; + /// \ru Вычисление первой производной по координате и значений функции. \en The first derivative by coordinate and the function values calculation. + virtual eval_result Evaluate(const ItCoord* crd, const std::vector& crdVals) const; + /// \ru Выдать координату зависимой переменной (для уравнений заданных в явно-выраженной форме). \en Get the coordinate of dependent variable (for explicit equations). + virtual const ItCoord* DependedCoord() const = 0; + + /** \brief \ru Признак уравнения, заданного в форме присвоения (начиная с Компас V12). + \en Flag of equation specified in form of assignment. + \details + \ru Уравнения, заданные в явно выраженной форме, считающиеся присвоением выражения зависимой переменной: x1 = g(x2,x3,..,xn). + Такие уравнения стремимся вычислять иерархическим способом, сверху-вниз. + \en Equations specified explicitly, considered to be the assignment of dependent variable: x1 = g(x2,x3,..,xn). + It is preferred to compute such equations by hierarchical top-down method. \~ + */ + virtual bool IsExplicit() const = 0; + +public: + virtual refcount_t AddRef() const = 0; + virtual refcount_t Release() const = 0; + +private: + // It will be removed + virtual bool CalcDerive( ItGeomCoord &, const MtVectorN &, double &, double & ) const { return false; } + // It will be removed. + virtual ItGeomCoord * GetCoord( ptrdiff_t ) const { return nullptr; } + // It will be removed. + virtual bool CalcDerive( ItGeomCoord &, const std::vector & /*argLine*/, double & /*fd*/, double & /*f*/ ) const { return false; } + // It will be removed. + virtual ptrdiff_t GetCoordCount() const { return 0; } + // It will be removed. + virtual ptrdiff_t GetDependedCoordIdx() const { return -1; } + +protected: + ~ItNumericEquation() {} +}; + +//---------------------------------------------------------------------------------------- +/** \brief \ru Вычисление первой производной по координате и значений функции. + \en The first derivative by coordinate and the function values calculation. +*/ +//--- +inline ItNumericEquation::eval_result ItNumericEquation::Evaluate(const ItCoord* crd, const std::vector& crdVals) const +{ + eval_result res; + ItGeomCoord * gCrd = dynamic_cast(const_cast(crd)); + if ( gCrd!=nullptr && CalcDerive(*gCrd, crdVals, res.funDer, res.funVal)) + { + res.resCode = EVAL_RESULT_Ok; + } + return res; +} + + +using ItAlgebraicConstraint = ItNumericEquation; + +/** + \addtogroup Constraints2D_API + \{ +*/ + +//---------------------------------------------------------------------------------------- +/** \brief \ru Задать ограничение, реализуемое на стороне клиента. + \en Specify a constraint implemented by the user. \~ + \param[in] gSys - \ru Система ограничений. + \en System of constraints. \~ + \param[in] iEqu - \ru Интерфейс уравнения, заданного пользователем. + \en Interface of the equation specified by the user. \~ + \param[in] varsCount - \ru Количество переменных. + \en Count of variables. \~ + \param[in] varsVector - \ru Вектор переменных. + \en Vector of variables. \~ + \return \ru Дескриптор нового ограничения. + \en Descriptor of a new constraint. \~ +*/ +// --- +GCE_FUNC(constraint_item) GCE_AddEquation( GCE_system gSys + , ItAlgebraicConstraint & iEqu + , size_t varsCount + , const var_item * varsVector ); + +/** + \} + Constraints2D_API +*/ + +#endif // __GCE_EQUATIONS_H + +// eof \ No newline at end of file diff --git a/C3d/Include/gce_routines.h b/C3d/Include/gce_routines.h new file mode 100644 index 0000000..75ab437 --- /dev/null +++ b/C3d/Include/gce_routines.h @@ -0,0 +1,25 @@ +////////////////////////////////////////////////////////////////////////////////////////// +/** + \file + \brief \ru API процедур и функций 2D решателя. + \en API of procedures and functions of 2D solver. \~ +*/ +////////////////////////////////////////////////////////////////////////////////////////// + +#ifndef __GCE_ROUTINES_H +#define __GCE_ROUTINES_H + +/** + \addtogroup Constraints2D_API + \{ +*/ + + +/** + \} + Constraints2D_API +*/ + +#endif // __GCE_ROUTINES_H + +// eof \ No newline at end of file diff --git a/C3d/Include/gce_types.h b/C3d/Include/gce_types.h index 8c558b1..f6227ba 100644 --- a/C3d/Include/gce_types.h +++ b/C3d/Include/gce_types.h @@ -76,7 +76,7 @@ const pattern_item GCE_NULL_P = GCE_NULL; const double GCE_UNDEFINED_DBL = UNDEFINED_DBL; //---------------------------------------------------------------------------------------- -/// \ru Словарь типов геометрических примитивов. \en Dictionary of geometric primitives types. +/// \ru Словарь геометрических типов данных. \en Dictionary of а geometric data types. //--- typedef enum { @@ -363,6 +363,34 @@ typedef enum } GCE_bisec_variant; +//---------------------------------------------------------------------------------------- +/** \brief \ru Варианты выравнивания направлений. + \en Variants of alignment. \~ + \details \en Значение опции выравнивания используется для выбора из альтернативных решений + ограничения, такого как `GCE_TANGENT`. + \en The alignment value is used to alternate between solutions of a constraint such as `GCE_TANGENT`. + \note \ru Значения этого перечисления могут быть использованы для постоянного хранения и + останутся неизменными в следующих версиях. + \en Values of this enum can be used for permanent storage and will be kept + in the future versions. \~ +*/ +//--- +typedef enum +{ + GCE_NO_ALIGNMENT = 0, ///< \ru Неопределенное значение выравнивания (=не применима к данному ограничению). \en Undefined alignment value (=not applicable to this constraint). + GCE_COORIENTED, ///< \ru Для касания это сонаправленные касательные вектора (=нормали). \en For tangency, these are co-directional tangent vectors (=normal). + GCE_OPPOSITE, ///< \ru Для касания это противонаправленные касательные вектора (=нормали). \en For tangency, these are the opposing tangent vectors (=normal). + + /** \brief \ru Поддерживать способ выравнивания согласно начальному или текущему положению геометрии (соответствует поведению прежних версий). + \en Maintain the alignment according to the initial or current position of the geometry (reproduces behaviour from previous versions). \~ */ + GCE_CLOSEST, + + /** \brief \ru Автоматически выбрать опцию выравнивания, используя начальное приближение геометрии. + \en Automatically determine alignment options using initial geometry approximation. \~ */ + GCE_AUTO_ALIGNMENT, + +} GCE_alignment; + //---------------------------------------------------------------------------------------- /// \ru Координаты вектора. \en Vector coordinates. @@ -380,7 +408,7 @@ struct GCE_CLASS GCE_vecNd { size_t size; double * arg; - GCE_vecNd(): arg(0), size(0) {} + GCE_vecNd(): size(0), arg(0) {} }; //---------------------------------------------------------------------------------------- @@ -568,8 +596,9 @@ struct GCE_CLASS GCE_dim_pars double dimValue; ///< \ru Значение размера, когда var == GCE_NULL_V. \en Value of dimension when var == GCE_NULL_V. GCE_dim_pars() - : dimValue( 0.0 ) - , var( GCE_NULL_V ) + : var( GCE_NULL_V ) + , dimValue( 0.0 ) + {} }; diff --git a/C3d/Include/gcm_api.h b/C3d/Include/gcm_api.h index 50a001d..3838f9d 100644 --- a/C3d/Include/gcm_api.h +++ b/C3d/Include/gcm_api.h @@ -1134,6 +1134,32 @@ GCM_FUNC(GCM_geom) GCM_GetMovingGeom( GCM_system gSys ); GCM_FUNC(GCM_result) GCM_SolveReposition( GCM_system gSys, GCM_geom g, const MbPlacement3D & newPos, GCM_reposition movType ); +//---------------------------------------------------------------------------------------- +/** + \brief \ru Решить систему для произвольного изменения положения тела в заданной плоскости. + \en Solve the system for an arbitrary change of position of one solid in a given plane. + \param[in] gSys - \ru Система ограничений. + \en System of constraints. \~ + \param[in] movGeom - \ru Компонент, деталь, которой манипулируют. + \en Component, part which is manipulated. \~ + \param[in] projPlane - \ru Нормаль к плоскости, в которой происходит перетаскивание, заданная в ГСК сборки. + \en The normal to the plane in which the dragging occurs, specified in the assembly WCS. \~ + \param[in] cursor - \ru Текущее положение курсора в ГСК.. + \en Current position of a cursor in the WCS. \~ + \return \ru Код результата. \en Result code. \~ + + \details + \ru Процедура, управляющая режимом перетаскивания. При использовании данной функции не требуется предварительно + делать соответствующий ей вызов GCM_PrepareReposition, а так же не требуется вызывать GCM_FinishReposition + по окончании её использования. + \en The procedure that controls the drag and drop mode. When using this function, there is no need to make + a preliminary invoke of GCM_PrepareReposition, and there is no need to invoke GCM_FinishReposition + after using it. \~ +*/ +//--- +GCM_FUNC(GCM_result) GCM_SolveReposition( GCM_system gSys, GCM_geom moveGeom, const MbCartPoint3D & cursor, + const MbVector3D & projPlane ); + /** \brief \ru Решить систему сопряжений для новой позиции курсора в режиме драггинга. \en Solve the system of constraints for new position of cursor in the dragging mode. diff --git a/C3d/Include/gcm_manager.h b/C3d/Include/gcm_manager.h index 78c6ec8..8ae19e1 100644 --- a/C3d/Include/gcm_manager.h +++ b/C3d/Include/gcm_manager.h @@ -88,12 +88,12 @@ public: static const MtParVariant undef; ///< \ru Неопределенное значение. \en Undefined value. public: - MtParVariant() : tag( GCM_ARG_UNDEFINED ), enumVal( SYS_MAX_INT64-2 ) {} // \ru Неопределенное значение \en Undefined value - MtParVariant( float val ) : tag( GCM_ARG_NUMBER ), numVal( static_cast(val) ) {} - MtParVariant( double val ) : tag( GCM_ARG_NUMBER ), numVal( val ) {} + MtParVariant() : enumVal( SYS_MAX_INT64-2 ), tag( GCM_ARG_UNDEFINED ) {} // \ru Неопределенное значение \en Undefined value + MtParVariant( float val ) : numVal( static_cast(val) ), tag( GCM_ARG_NUMBER ) {} + MtParVariant( double val ) : numVal( val ), tag( GCM_ARG_NUMBER ) {} template< class _EnumType > - MtParVariant( _EnumType val ) : tag( GCM_ARG_ENUM ), enumVal( static_cast(val) ) {} - MtParVariant( const GCM_interval & interval ) : tag( GCM_ARG_INTERVAL ), interVal( interval ) {} + MtParVariant( _EnumType val ) : enumVal( static_cast(val) ), tag( GCM_ARG_ENUM ) {} + MtParVariant( const GCM_interval & interval ) : interVal( interval ), tag( GCM_ARG_INTERVAL ) {} public: template< typename _EnumType > diff --git a/C3d/Include/gcm_mates_generator.h b/C3d/Include/gcm_mates_generator.h index 1a9da3a..5f83388 100644 --- a/C3d/Include/gcm_mates_generator.h +++ b/C3d/Include/gcm_mates_generator.h @@ -32,13 +32,13 @@ struct GCM_CLASS TMParameters double realpar; // Dimension value. TMParameters( AlignCondition al, MtMateType mtype, double par = 0. ) - : align ( al ) - , matetype( mtype ) + : matetype( mtype ) + , align ( al ) , realpar ( par ) {} TMParameters( GCM_c_type mtype, double par = 0.0, GCM_alignment al = GCM_NO_ALIGNMENT ) - : align ( al ) - , matetype( mtype ) + : matetype( mtype ) + , align ( al ) , realpar ( par ) {} }; @@ -267,7 +267,7 @@ private: MtGeomSolver & manager; ///< \ru Решатель сборки. \en Solver of the assembly. public: - explicit AssemblyGenerator( MtGeomSolver & m ) : manager( m ), dimConstrs() {} + explicit AssemblyGenerator( MtGeomSolver & m ) : dimConstrs(), manager( m ) {} private: AssemblyGenerator( const AssemblyGenerator & ); diff --git a/C3d/Include/gcm_routines.h b/C3d/Include/gcm_routines.h index a7e0fe1..e3b1a50 100644 --- a/C3d/Include/gcm_routines.h +++ b/C3d/Include/gcm_routines.h @@ -77,8 +77,8 @@ struct GCM_CLASS MtMateParameters public: MtMateParameters() - : myAlignVal( GCM_NO_ALIGNMENT ) - , myDimVal( 0.0 ) + : myDimVal( 0.0 ) + , myAlignVal( GCM_NO_ALIGNMENT ) , myDimEvaluated( false ) , myDimSigned( false ) {} @@ -154,9 +154,9 @@ struct GCM_CLASS MtADimensionTraits double value; ///< \ru Значение размера - угол вращения. \en Dimension value - the angle of rotation. MtADimensionTraits() - : axisZ() - , firstVector() + : firstVector() , secondVector() + , axisZ() , value( 0.0 ) {} }; diff --git a/C3d/Include/gcm_types.h b/C3d/Include/gcm_types.h index 6b77e95..b853fc1 100644 --- a/C3d/Include/gcm_types.h +++ b/C3d/Include/gcm_types.h @@ -339,18 +339,19 @@ typedef enum /* Произвольное поведение (arbitrary behavior). */ - GCM_REPOSITION_FreeRotation ///< \ru Произвольная репозиция с преимуществом вращения. \en Arbitrary reposition with predominant rotation. \~ - , GCM_REPOSITION_FreeMoving ///< \ru Произвольная репозиция с преимуществом перемещения. \en Arbitrary reposition with predominant moving. \~ + GCM_REPOSITION_FreeRotation = 1 ///< \ru Произвольная репозиция с преимуществом вращения. \en Arbitrary reposition with predominant rotation. \~ + , GCM_REPOSITION_FreeMoving = 2 ///< \ru Произвольная репозиция с преимуществом перемещения. \en Arbitrary reposition with predominant moving. \~ /* Строгое поведение (strict behavior). */ - , GCM_REPOSITION_Dragging ///< \ru Перетаскивание в плоскости "экрана". \en Dragging in the plane of the screen. \~ - , GCM_REPOSITION_Rotation ///< \ru Вращение вокруг неподвижной оси. \en Rotation around fixed axis. \~ - , GCM_REPOSITION_Transfer /**< \ru Перенос только для одного твердого тела. \en Shift only one solid. \~ + , GCM_REPOSITION_Dragging = 3///< \ru Перетаскивание в плоскости "экрана". \en Dragging in the plane of the screen. \~ + , GCM_REPOSITION_Rotation = 4///< \ru Вращение вокруг неподвижной оси. \en Rotation around fixed axis. \~ + , GCM_REPOSITION_Transfer = 5/**< \ru Перенос только для одного твердого тела. \en Shift only one solid. \~ \note \ru Этот режим #GCM_REPOSITION_Transfer был задуман для процессов вставки нового тела в сборку САПР. \en This mode #GCM_REPOSITION_Transfer have been intended for insertion processes of a new solid in the CAD assembly. \~ */ + , GCM_REPOSITION_Inactive = 1000 } GCM_reposition; //---------------------------------------------------------------------------------------- @@ -421,19 +422,20 @@ typedef enum \note Internal use only. The feature is under development. */ //--- -typedef struct +struct GCM_CLASS GCM_dof_record { - GCM_dof_result result; ///< \ru Код результата вычисления степени свободы геометрического объекта. \en Resulting code of evaluating the geometric degrees of freedom. \~ + /// \ru Код результата вычисления степени свободы геометрического объекта. \en Resulting code of evaluating the geometric degrees of freedom. \~ + GCM_dof_result result; // Translational degree of freedom info. - size_t tdof; + size_t tdof; GCM_vec3d dir1; GCM_vec3d dir2; // Rotational degree of freedom info. size_t rdof; GCM_point center; - GCM_vec3d axis1; - GCM_vec3d axis2; -} GCM_dof_record; + GCM_vec3d axis1 ; + GCM_vec3d axis2 ; +}; //---------------------------------------------------------------------------------------- /** \brief \ru Статус геометрического объекта. diff --git a/C3d/Include/lump.h b/C3d/Include/lump.h index e6365df..a08aee4 100644 --- a/C3d/Include/lump.h +++ b/C3d/Include/lump.h @@ -181,7 +181,8 @@ public: {} /// \ru Конструктор копирования с регистратором. \en Copy-constructor with the registrator. MbLumpCube( const MbLumpCube & other ) - : cube( other.cube ) + : MbRefItem {} + , cube( other.cube ) , from( other.from ) , component( other.component ) , identifier( other.identifier ) diff --git a/C3d/Include/map_lump.h b/C3d/Include/map_lump.h index aa18b8b..71b5b4a 100644 --- a/C3d/Include/map_lump.h +++ b/C3d/Include/map_lump.h @@ -209,8 +209,8 @@ public: : component ( _comp ) , identifier( _ident ) , solid ( _solid ) - , name ( &_name ) , from ( _from ) + , name ( &_name ) , wtCurves ( 0, 1, true ) { name.SetOwn(false); @@ -231,8 +231,8 @@ public: : component ( _comp ) , identifier( _ident ) , solid ( nullptr ) - , name ( &_name ) , from ( ) + , name ( &_name ) , wtCurves ( 0, 1, true ) { name.SetOwn(false); diff --git a/C3d/Include/math_version.h b/C3d/Include/math_version.h index d13c6fb..9eaa589 100644 --- a/C3d/Include/math_version.h +++ b/C3d/Include/math_version.h @@ -97,10 +97,12 @@ #define MATH_22_HF3_VERSION 0x16000004L ///< \ru Версия файла - 22.0 HF3. \en The file version - 22.0 HF3. \~ \ingroup Base_Tools #define MATH_22_HF4_VERSION 0x16000005L ///< \ru Версия файла - 22.0 HF4. \en The file version - 22.0 HF4. \~ \ingroup Base_Tools #define MATH_22_HF5_VERSION 0x16000006L ///< \ru Версия файла - 22.0 HF5. \en The file version - 22.0 HF5. \~ \ingroup Base_Tools +#define MATH_22_HF6_VERSION 0x16000007L ///< \ru Версия файла - 22.0 HF6. \en The file version - 22.0 HF6. \~ \ingroup Base_Tools #define MATH_22_UHF_VERSION 0x16000011L ///< \ru Версия файла - 22.0 UHF (Upper Hot Fix). \en The file version - 22.0 UHF (Upper Hot Fix). \~ \ingroup Base_Tools #define C3D_2023_VERSION 0x16001001L ///< \ru Версия файла - C3D 2023. \en The file version - C3D 2023. \~ \ingroup Base_Tools #define MATH_23_VERSION 0x17000001L ///< \ru Версия файла - 23.0. \en The file version - 23.0. \~ \ingroup Base_Tools #define MATH_23_HF1_VERSION 0x17000003L ///< \ru Версия файла - 23.0 HF1. \en The file version - 23.0 HF1. \~ \ingroup Base_Tools +#define MATH_23_HF2_VERSION 0x17000004L ///< \ru Версия файла - 23.0 HF2. \en The file version - 23.0 HF2. \~ \ingroup Base_Tools #define MATH_23_UHF_VERSION 0x17000101L ///< \ru Версия файла - 23.0 UHF (Upper Hot Fix). \en The file version - 23.0 UHF (Upper Hot Fix). \~ \ingroup Base_Tools #define C3D_2024_VERSION 0x17001002L ///< \ru Версия файла - C3D 2024. \en The file version - C3D 2024. \~ \ingroup Base_Tools diff --git a/C3d/Include/math_x.h b/C3d/Include/math_x.h index 7f1b0f4..89b377d 100644 --- a/C3d/Include/math_x.h +++ b/C3d/Include/math_x.h @@ -93,7 +93,7 @@ namespace c3d { #define CONCAT_TKNS(A, B, C, D) A B C D // Concatenate tokens without expanding macro (if invoked from macro, arguments are expanded). #define CONCAT_TOKENS(A, B, C, D) CONCAT_TKNS(A, B, C, D) // Concatenate tokens with expanding macro. -#define DEPR_MSG "This is a deprecated API that will be removed in version 2024!" // Message about a deprecated API. +#define DEPR_MSG "This is a deprecated API that will be removed in version 2025!" // Message about a deprecated API. #define DEPR_MSG_EX(msg) CONCAT_TOKENS(DEPR_MSG, " Use ", #msg, " instead it.") // Message about a deprecated API indicating a replacement API. diff --git a/C3d/Include/mb_point_mating.h b/C3d/Include/mb_point_mating.h index 48534f1..ea7b4c6 100644 --- a/C3d/Include/mb_point_mating.h +++ b/C3d/Include/mb_point_mating.h @@ -131,12 +131,12 @@ MbPntMatingData::MbPntMatingData( const MbeMatingType nType, bool nMovePnts, bool nAttach ) : MbRefItem ( ) - , type ( nType ) , tangent ( (nTang != nullptr) ? new Vector( *nTang ) : nullptr ) , tangentDer1 ( (nTangDer1 != nullptr) ? new Vector( *nTangDer1 ) : nullptr ) , tangentDer2 ( (nTangDer2 != nullptr) ? new Vector( *nTangDer2 ) : nullptr ) - , movePnts ( nMovePnts ) , changedPnts ( nChangedPnts ) + , type ( nType ) + , movePnts ( nMovePnts ) , attach ( nAttach ) { if ( type <= trt_Position ) { // BUG_52162 @@ -153,12 +153,12 @@ MbPntMatingData::MbPntMatingData( const MbeMatingType nType, template MbPntMatingData::MbPntMatingData( const MbPntMatingData & d ) : MbRefItem ( ) - , type ( d.type ) , tangent ( (d.tangent != nullptr) ? new Vector( *d.tangent ) : nullptr ) , tangentDer1 ( (d.tangentDer1 != nullptr) ? new Vector( *d.tangentDer1 ) : nullptr ) , tangentDer2 ( (d.tangentDer2 != nullptr) ? new Vector( *d.tangentDer2 ) : nullptr ) - , movePnts ( d.movePnts ) , changedPnts ( d.changedPnts ) + , type ( d.type ) + , movePnts ( d.movePnts ) , attach ( d.attach ) { } diff --git a/C3d/Include/mb_property_title.h b/C3d/Include/mb_property_title.h index 2ed906a..5e84b74 100644 --- a/C3d/Include/mb_property_title.h +++ b/C3d/Include/mb_property_title.h @@ -181,6 +181,7 @@ enum MbePrompt IDS_ITEM_0274, ///< \ru Усеченный каркас. \en Trimmed wire frame. IDS_ITEM_0275, ///< \ru Развернутая точка. \en Unwrapped point. IDS_ITEM_0276, ///< \ru Свёрнутая точка. \en Wrapped point. + IDS_ITEM_0277, ///< \ru Эквидистантный каркас. \en Offset wire frame. // \ru Типы параметрических поверхностей. \en Types of parametric surfaces. @@ -202,6 +203,7 @@ enum MbePrompt IDS_ITEM_0315, ///< \ru Конически согнутая поверхность. \en Conically Bent Surface. IDS_ITEM_0316, ///< \ru Конически разогнутая поверхность. \en Conically Unbent Surface. IDS_ITEM_0317, ///< \ru Поверхность заметания с изменением образующей. \en Sweep Surface with Changin Generatin. + IDS_ITEM_0318, ///< \ru Линейчато согнутая/разогнутая поверхность. \en Ruled Bent/Unbent Surface. IDS_ITEM_0319, ///< \ru Плоскость. \en Plane. IDS_ITEM_0320, ///< \ru Сферическая поверхность. \en Spherical Surface. IDS_ITEM_0321, ///< \ru Тороидальная поверхность. \en Toroidal Surface. @@ -1341,6 +1343,8 @@ enum MbePrompt IDS_PROP_2033, ///< \ru Индекс части скругления. \en Index of fillet part. IDS_PROP_2034, ///< \ru Опция выбора результата. \en Option for the result selection. + IDS_PROP_2035, ///< \ru Режим адаптации. \en Adaptation mode. + IDS_PROP_LAST = 9999, ///< \ru Наибольшее значение. \en The greatest value. }; diff --git a/C3d/Include/mb_smooth_nurbs_fit_curve.h b/C3d/Include/mb_smooth_nurbs_fit_curve.h index 2645fe7..d07fc6f 100644 --- a/C3d/Include/mb_smooth_nurbs_fit_curve.h +++ b/C3d/Include/mb_smooth_nurbs_fit_curve.h @@ -182,11 +182,11 @@ private: public: /// \ru Конструктор по умолчанию. \en Default constructor. MbApproxNurbsParameters( VERSION version = Math::DefaultMathVersion() ) - : _order ( c3d::NURBS_DEGREE ) + : _bClosed ( false ) + , _order ( c3d::NURBS_DEGREE ) , _methodSmoothing( sm_CurvatureVariance ) , _coefSmoothing ( -1. ) , _tolerance ( c3d::DELTA_MIN ) - , _bClosed ( false ) , _pReference ( nullptr ) , _version ( version ) {} diff --git a/C3d/Include/mb_variables.h b/C3d/Include/mb_variables.h index 7faa600..3f201a6 100644 --- a/C3d/Include/mb_variables.h +++ b/C3d/Include/mb_variables.h @@ -623,7 +623,7 @@ MATH_FUNC(const char *) C3DFileNameOnly( const char * path ); // Suppress a warning "unreferenced formal parameter" -#define C3D_UNUSED_PARAMETER( param ) (void*)(¶m) +#define C3D_UNUSED_PARAMETER( param ) (std::ignore = param) #ifdef C3D_DEBUG diff --git a/C3d/Include/mesh_halfedge_attr.h b/C3d/Include/mesh_halfedge_attr.h index e019447..88f7637 100644 --- a/C3d/Include/mesh_halfedge_attr.h +++ b/C3d/Include/mesh_halfedge_attr.h @@ -22,11 +22,13 @@ class MbHalfedge; #define SIMPLE_FACET_ATTRIBUTE(type, value, nameAttr, typeAttr) \ class MATH_CLASS nameAttr : public MbHalfedgeAttrSimpleValueFacetBase\ {\ + private:\ + const type _def = value;\ public:\ nameAttr( const MbHalfedge & topo ) : MbHalfedgeAttrSimpleValueFacetBase( topo, typeAttr ) {}\ virtual ~nameAttr() {}\ static MbeTypeAttr IsA() { return typeAttr; }\ - type DefaultValue() const override { return value; }\ + const type& DefaultValue() const override { return _def; }\ HALFEDGE_VISITING();\ DECLARE_PERSISTENT_CLASS( nameAttr );\ }; @@ -35,11 +37,13 @@ class MbHalfedge; #define SIMPLE_EDGE_ATTRIBUTE(type, value, nameAttr, typeAttr) \ class MATH_CLASS nameAttr : public MbHalfedgeAttrSimpleValueEdgeBase\ {\ + private:\ + const type _def = value;\ public:\ nameAttr( const MbHalfedge & topo ) : MbHalfedgeAttrSimpleValueEdgeBase( topo, typeAttr ) {}\ virtual ~nameAttr() {}\ static MbeTypeAttr IsA() { return typeAttr; }\ - type DefaultValue() const override { return value; }\ + const type& DefaultValue() const override { return _def; }\ HALFEDGE_VISITING();\ DECLARE_PERSISTENT_CLASS( nameAttr );\ }; @@ -48,11 +52,13 @@ class MbHalfedge; #define SIMPLE_VERTEX_ATTRIBUTE(type, value, nameAttr, typeAttr) \ class MATH_CLASS nameAttr : public MbHalfedgeAttrSimpleValueVertexBase\ {\ + private:\ + const type _def = value;\ public:\ nameAttr( const MbHalfedge & topo ) : MbHalfedgeAttrSimpleValueVertexBase( topo, typeAttr ) {}\ virtual ~nameAttr() {}\ static MbeTypeAttr IsA() { return typeAttr; }\ - type DefaultValue() const override { return value; }\ + const type& DefaultValue() const override { return _def; }\ HALFEDGE_VISITING();\ DECLARE_PERSISTENT_CLASS( nameAttr );\ }; @@ -105,6 +111,8 @@ public: bool CalculateEdgePoint( size_t iEd, double prm, MbCartPoint3D & pt ) const; /// \ru Получить 3Д вершины для последовательности ребер. \en Get 3D points for all vertices in the edges chain. bool GetEdgePathVertices( const c3d::IndicesVector & edges, c3d::SpacePointsVector & points ) const; + /// \ru Получить 3Д вершины для последовательности ребер. \en Get 3D points for all vertices in the edges chain. + bool GetEdgePathVertices( const c3d::IndicesPairsVector & edges, c3d::SpacePointsVector & points ) const; /// \ru Посчитать нормаль треугольного фасета. \en Calculate the normal for the triangle facet. bool CalculateTriangleNormal( size_t iTr, MbVector3D & normal ) const; /// \ru Посчитать aspect ratio треугольного фасета. \en Calculate aspect ratio for the triangle facet. @@ -123,8 +131,10 @@ public: bool CalculateLengthEdge( size_t iEd, double & len ) const; /// \ru Посчитать квадрат длины ребра. \en Calculate the square of the edge's length. bool CalculateLengthEdge2( size_t iEd, double & len2 ) const; - // \ru Рассчитать габарит в локальной системы координат. \en Calculate the bounding box int the given coordinate system. + // \ru Рассчитать габарит в локальной системе координат. \en Calculate the bounding box int the given coordinate system. void CalculateLocalGabarit( const MbMatrix3D & matrInto, MbCube & localCube ) const; + // \ru Рассчитать габарит фасета в локальной системе координат. \en Calculate the facet's bounding box int the given coordinate system. + void CalculateFacetLocalGabarit( const MbMatrix3D & matrInto, size_t iF, MbCube & localCube ) const; // \ru Рассчитать уравнение плоскости треугольного фасета. \en Calculate the plane where the given triangle facet is located. bool GetTrianglePlaneEquation( size_t iTr, bool bNormalize, std::array & plane ) const; // \ru Рассчитать нормаль в вершине усреднением нормалей соседних треугольных фасетов. \en Calculate the normal at a vertex as the average normal of all triangle facets around it. @@ -192,6 +202,8 @@ public: bool CalculateLengthEdge2( size_t iEd, double & len2 ) const; /// \ru Получить параметры для последовательности ребер. \en Get 2D parameters for all vertices in the edges chain. bool GetEdgePathVertices( const c3d::IndicesVector & edges, c3d::ParamPointsVector & points ) const; + /// \ru Получить параметры для последовательности ребер. \en Get 2D parameters for all vertices in the edges chain. + bool GetEdgePathVertices( const c3d::IndicesPairsVector & edges, c3d::ParamPointsVector & points ) const; /// \ru Рассчитать габаритный прямоугольник. \en Calculate the bounding rect. void CalculateRect( MbRect & rect ) const; diff --git a/C3d/Include/mesh_halfedge_attr_base.h b/C3d/Include/mesh_halfedge_attr_base.h index b2d673e..5acb4f4 100644 --- a/C3d/Include/mesh_halfedge_attr_base.h +++ b/C3d/Include/mesh_halfedge_attr_base.h @@ -121,6 +121,8 @@ public: void SetId( size_t id ) { _id = id; } /// \ru Получить индекс. \en Get identifier. size_t GetId() const { return _id; } + /// \ru Получить топологию. \en GetTopology. + const MbHalfedge & GetTopo() const { return *_topo; } /// \ru Принять посетителя. \en Accept Visitor virtual void Accept( HalfedgeVisitor & visitor ) = 0; @@ -179,7 +181,7 @@ const T * CastHalfedgeAttribute( const MbHalfedgeAttrBase * pObj ) \ingroup Data_Structures */ // --- -template +template class MbHalfedgeAttrSimpleValueBase : public MbHalfedgeAttrBase { protected: @@ -192,7 +194,7 @@ public: virtual ~MbHalfedgeAttrSimpleValueBase() {} /// \ru Получить значение по умолчанию. \en Get default value. - virtual Value DefaultValue() const = 0; + virtual const Value & DefaultValue() const = 0; /// \ru Установить размер массива величин, заполнить его значением по умолчанию. \en Set size of the values array filled with default values. void SetSize( size_t size ) { _values.assign( size, DefaultValue() ); } /// \ru Получить размер массива величин. \en Get size of the values array. @@ -200,7 +202,11 @@ public: /// \ru Определено ли значение элемента. \en Check if value is undefined (default). virtual bool IsUndefined( size_t i ) const { return _values[i] == DefaultValue(); } /// \ru Получить значение элемента. \en Get value by identifier. + template::value >::type> Value GetValue( size_t i ) const { return _values[i]; } + /// \ru Получить значение элемента. \en Get value by identifier. + template::value >::type> + const Value & GetValue( size_t i ) const { return _values[i]; } /// \ru Установить значение элемента в указанную величину. \en Set value to the element given by identifier. void SetValue( size_t i, Value val ) { _values[i] = val; } /// \ru Установить значение набора элементов в указанную величину. \en Set value to the set of elements. diff --git a/C3d/Include/op_curve_parameter.h b/C3d/Include/op_curve_parameter.h index 74d643a..ae83693 100644 --- a/C3d/Include/op_curve_parameter.h +++ b/C3d/Include/op_curve_parameter.h @@ -161,12 +161,12 @@ public: const MbVector3D & dir ) : _uv1beg ( uv1beg ) , _uv1end ( uv1end ) - , _ext1 ( ext1 ) , _uv2beg ( uv2beg ) , _uv2end ( uv2end ) - , _ext2 ( ext2 ) , _direction ( dir ) , _guideCurve ( nullptr ) + , _ext1 ( ext1 ) + , _ext2 ( ext2 ) , _useRedetermination ( false ) , _checkPoles ( false ) {} @@ -205,11 +205,11 @@ public: bool checkPoles ) : _uv1beg ( uv1beg ) , _uv1end ( uv1end ) - , _ext1 ( ext1 ) , _uv2beg ( uv2beg ) , _uv2end ( uv2end ) - , _ext2 ( ext2 ) , _guideCurve ( guideCurve ) + , _ext1 ( ext1 ) + , _ext2 ( ext2 ) , _useRedetermination ( useRedetermination ) , _checkPoles ( checkPoles ) {} @@ -287,8 +287,8 @@ public: MbIntCurveParams( const MbSNameMaker & snMaker ) : mergeCurves( true ) , cutCurves ( false ) - , _snMaker ( &snMaker.Duplicate() ) , _type ( ict_General ) + , _snMaker ( &snMaker.Duplicate() ) { if ( snMaker.GetMathVersion() > MATH_19_VERSION ) // KOMPAS-39273 + KOMPAS-40408 cutCurves = true; @@ -305,8 +305,8 @@ public: MbIntCurveParams( bool _cutCurves, const MbSNameMaker & snMaker ) : mergeCurves( true ) , cutCurves ( _cutCurves ) - , _snMaker ( &snMaker.Duplicate() ) , _type ( ict_General ) + , _snMaker ( &snMaker.Duplicate() ) {} /** \brief \ru Конструктор. \en Constructor. \~ @@ -322,8 +322,8 @@ public: MbIntCurveParams( bool _mergeCurves, bool _cutCurves, const MbSNameMaker & snMaker ) : mergeCurves( _mergeCurves ) , cutCurves ( _cutCurves ) - , _snMaker ( &snMaker.Duplicate() ) , _type ( ict_General ) + , _snMaker ( &snMaker.Duplicate() ) {} /** \brief \ru Конструктор. @@ -349,12 +349,12 @@ public: const MbCartPoint & uvInitOnSurface2, const MbVector3D & initDirection, const MbSNameMaker & nameMaker ) - : _values ( new MbIntCurveOnePointValues( - surface1Domain, surface2Domain, uvInitOnSurface1, uvInitOnSurface2, initDirection) ) - , _type ( ict_OnePoint ) - , mergeCurves( true ) + : mergeCurves( true ) , cutCurves ( true ) + , _type ( ict_OnePoint ) , _snMaker ( &nameMaker.Duplicate() ) + , _values ( new MbIntCurveOnePointValues( + surface1Domain, surface2Domain, uvInitOnSurface1, uvInitOnSurface2, initDirection) ) {} /** \brief \ru Конструктор. @@ -386,11 +386,11 @@ public: bool ext2, const MbVector3D & dir, const MbSNameMaker & nameMaker ) - : _values ( new MbIntCurveLimitPointsValues(uv1beg, uv1end, ext1, uv2beg, uv2end, ext2, dir) ) - , _type ( ict_TwoPoints ) - , mergeCurves( true ) + : mergeCurves( true ) , cutCurves ( true ) + , _type ( ict_TwoPoints ) , _snMaker ( &nameMaker.Duplicate() ) + , _values ( new MbIntCurveLimitPointsValues(uv1beg, uv1end, ext1, uv2beg, uv2end, ext2, dir) ) {} @@ -429,12 +429,12 @@ public: bool useRedetermination, bool checkPoles, const MbSNameMaker & nameMaker ) - : _values ( new MbIntCurveLimitPointsValues( - uv1beg, uv1end, ext1, uv2beg, uv2end, ext2, guideCurve, useRedetermination, checkPoles) ) - , _type ( ict_TwoPointsGuide ) - , mergeCurves( true ) + : mergeCurves( true ) , cutCurves ( true ) + , _type ( ict_TwoPointsGuide ) , _snMaker ( &nameMaker.Duplicate() ) + , _values ( new MbIntCurveLimitPointsValues( + uv1beg, uv1end, ext1, uv2beg, uv2end, ext2, guideCurve, useRedetermination, checkPoles) ) {} /// \ru Получить параметры создания кривой по начальной точке. \en Get the parameters for the curve creation by the initial point. @@ -490,8 +490,8 @@ public: const MbSNameMaker & snMaker ) : MbIntCurveParams( mergeCrvs, cutCrvs, snMaker ) , _faces1 ( faceIndices1 ) - , _same1 ( same1 ) , _faces2 ( faceIndices2 ) + , _same1 ( same1 ) , _same2 ( same2 ) , _useCreators( true ) {} @@ -515,8 +515,8 @@ public: const MbSNameMaker & snMaker ) : MbIntCurveParams( snMaker ) , _faces1 ( faceIndices1 ) - , _same1 ( same1 ) , _faces2 ( faceIndices2 ) + , _same1 ( same1 ) , _same2 ( same2 ) , _useCreators( true ) {} @@ -541,8 +541,8 @@ public: const MbSNameMaker & snMaker ) : MbIntCurveParams( mergeCrvs, cutCrvs, snMaker ) , _faces1 ( faceIndices1 ) - , _same1 ( false ) , _faces2 ( faceIndices2 ) + , _same1 ( false ) , _same2 ( false ) , _useCreators( false ) {} @@ -562,8 +562,8 @@ public: const MbSNameMaker & snMaker ) : MbIntCurveParams( snMaker ) , _faces1 ( faceIndices1 ) - , _same1 ( false ) , _faces2 ( faceIndices2 ) + , _same1 ( false ) , _same2 ( false ) , _useCreators( false ) {} @@ -639,21 +639,48 @@ public: protected: bool useSurfaceNormal; ///< \ru Эквидистанта согласована с нормалью к поверхности. \en Offset point is moved according to surface normal. c3d::ConstSurfaceSPtr surface; ///< \ru Поверхность кривой или подобная ей. \en Curve's surface or similar to such surface. - const MbSNameMaker & snMaker; ///< \ru Именователь кривых каркаса. \en An object defining the frame curves names. + c3d::SNameMakerSPtr snMaker; ///< \ru Именователь кривых каркаса. \en An object defining the frame curves names. public: /// \ru Конструктор по параметрам. \en Constructor by parameters. MbSpatialOffsetCurveParams( const MbVector3D & v, const MbSNameMaker & nm ) - : offsetVect ( v ) - , useFillet ( false ) - , keepRadius ( false ) - , bluntAngle ( false ) - , fromBeg ( true ) - , useSurfaceNormal( false ) - , surface ( nullptr ) - , snMaker ( nm ) + : offsetVect ( v ) + , useFillet ( false ) + , keepRadius ( false ) + , bluntAngle ( false ) + , fromBeg ( true ) + , useSurfaceNormal( false ) + , surface ( nullptr ) + , snMaker ( &nm.Duplicate() ) {} + /// \ru Конструктор по параметрам. \en Constructor by parameters. + MbSpatialOffsetCurveParams( const MbVector3D & offset, bool useFllt, bool keepRds, bool bluntAngl, bool beg, bool useNrm, c3d::ConstSurfaceSPtr surf, const MbSNameMaker & nm ) + : offsetVect ( offset ) + , useFillet ( useFllt ) + , keepRadius ( keepRds ) + , bluntAngle ( bluntAngl ) + , fromBeg ( beg ) + , useSurfaceNormal( useNrm ) + , surface ( nullptr ) + , snMaker ( &nm.Duplicate() ) + { + if ( surface != nullptr ) + SetBySurfaceNormal( useSurfaceNormal, &surface ); + } + /// \ru Конструктор копирования. \en Copy constructor. + MbSpatialOffsetCurveParams( const MbSpatialOffsetCurveParams & other ); + /// \ru Конструктор для чтения. \en Constructor for reading. + MbSpatialOffsetCurveParams( TapeInit tapeInit ); + public: + /// \ru Преобразовать элемент согласно матрице. \en Transform element by matrix. + void Transform( const MbMatrix3D & matrix ); + /// \ru поворот точкек вокруг произвольной оси \en rotate points around an arbitrary axis. + void Rotate( const MbAxis3D & axis, double angle ); + /// \ru Сдвиг точкек на произвольный вектор \en Move points on arbitrary vector. + void Move( const MbVector3D & to ); + /// \ru Проверка на равенство. \en Check if *this == other. + bool IsEqual( const MbSpatialOffsetCurveParams & other, double accuracy ) const; /// \ru Установка режима по поверхности, переносится ли эквидистантная точка согласованно с нормалью к поверхности. \en Setting the mode whether offset point is moved according to surface normal or not. void SetBySurfaceNormal( bool set, c3d::ConstSurfaceSPtr * s = nullptr ) { @@ -667,14 +694,19 @@ public: surface = nullptr; } } - /// \ru Получить поверхность. \en Get surface. + /// \ru Получить флаг согласованности с нормалью к поверхности. \en Get the surface normal according flag. bool BySurfaceNormal() const { return useSurfaceNormal; } - /// \ru Получить поверхность. \en Get surface. + /// \ru Получить поверхность. \en Get surface. const c3d::ConstSurfaceSPtr & GetSurface() const { return surface; } - /// \ru Получить ссылку на именователь. \en Get names maker reference. - const MbSNameMaker & GetNameMaker() const { return snMaker; } + /// \ru Получить ссылку на именователь. \en Get names maker reference. + const MbSNameMaker & GetNameMaker() const { return *snMaker; } + /// \ru Задать именователь. \en Set names maker. + void SetNameMaker( const MbSNameMaker & newName ) const { snMaker->SetNameMaker( newName, true ); } -OBVIOUS_PRIVATE_COPY( MbSpatialOffsetCurveParams ) + /// \ru Оператор присваивания. \en Assignment operator. + MbSpatialOffsetCurveParams & operator=( const MbSpatialOffsetCurveParams & ); + + KNOWN_OBJECTS_RW_REF_OPERATORS( MbSpatialOffsetCurveParams ) // \ru Для работы со ссылками и объектами класса. \en For working with references and objects of the class. \~ }; @@ -687,11 +719,11 @@ OBVIOUS_PRIVATE_COPY( MbSpatialOffsetCurveParams ) */ // --- struct MATH_CLASS MbSurfaceOffsetCurveParams { public: - c3d::ConstFaceSPtr face; ///< \ru Грань, на которой строится эквидистанта. \en The face on which to build the offset curve. - MbAxis3D dirAxis; ///< \ru Направление смещения с точкой приложения. \en The offset direction with a reference point. - double dist; ///< \ru Величина смещения. \en The offset distance. + c3d::ConstFaceSPtr face; ///< \ru Грань, на которой строится эквидистанта. \en The face on which to build the offset curve. + MbAxis3D dirAxis; ///< \ru Направление смещения с точкой приложения. \en The offset direction with a reference point. + double dist; ///< \ru Величина смещения. \en The offset distance. protected: - const MbSNameMaker & snMaker; ///< \ru Именователь кривых каркаса. \en An object defining the frame curves names. + c3d::SNameMakerSPtr snMaker; ///< \ru Именователь кривых каркаса. \en An object defining the frame curves names. public: /// \ru Конструктор по параметрам. \en Constructor by parameters. @@ -699,13 +731,37 @@ public: : face ( &f ) , dirAxis( a ) , dist ( d ) - , snMaker( nm ) + , snMaker( &nm.Duplicate() ) {} -public: - /// \ru Получить ссылку на именователь. \en Get names maker reference. - const MbSNameMaker & GetNameMaker() const { return snMaker; } + /// \ru Конструктор копирования. \en Copy constructor. + MbSurfaceOffsetCurveParams( const MbSurfaceOffsetCurveParams & other ); + /// \ru Конструктор для чтения. \en Constructor for reading. + MbSurfaceOffsetCurveParams( TapeInit tapeInit ); -OBVIOUS_PRIVATE_COPY( MbSurfaceOffsetCurveParams ) +public: + /// \ru Преобразовать элемент согласно матрице. \en Transform element by matrix. + void Transform( const MbMatrix3D & matrix ); + /// \ru Поворот точкек вокруг произвольной оси \en Rotate points around an arbitrary axis. + void Rotate( const MbAxis3D & axis, double angle ); + /// \ru Сдвиг точкек на произвольный вектор \en Move points on arbitrary vector. + void Move( const MbVector3D & to ); + /// \ru Проверка на равенство. \en Check if *this == other. + bool IsEqual( const MbSurfaceOffsetCurveParams & other, double accuracy ) const; + /// \ru Установка поверхности. \en Setting the surface. + void SetFace( c3d::ConstFaceSPtr * f = nullptr ) + { + if ( f != nullptr ) + face = *f; + } + /// \ru Получить ссылку на именователь. \en Get names maker reference. + const MbSNameMaker & GetNameMaker() const { return *snMaker; } + /// \ru Задать именователь. \en Set names maker. + void SetNameMaker( const MbSNameMaker & newName ) const { snMaker->SetNameMaker( newName, true ); } + + /// \ru Оператор присваивания. \en Assignment operator. + MbSurfaceOffsetCurveParams & operator=( const MbSurfaceOffsetCurveParams & ); + + KNOWN_OBJECTS_RW_REF_OPERATORS( MbSurfaceOffsetCurveParams ) // \ru Для работы со ссылками и объектами класса. \en For working with references and objects of the class. \~ }; @@ -1096,23 +1152,23 @@ public: /// \ru Конструктор по параметрам. \en Constructor by parameters. MbCornerChamferParams( size_t _index, double _distance, double _distAngle, bool _type = false ) - : index ( _index ) - , distance ( _distance ) + : distance ( _distance ) , distAngle( _distAngle ) + , index ( _index ) , type ( _type ) {} /// \ru Конструктор по умолчанию. \en Default constructor. MbCornerChamferParams() - : index ( -1 ) - , distance ( 0 ) + : distance ( 0 ) , distAngle( 0 ) + , index ( -1 ) , type ( false ) {} /// \ru Конструктор копирования. \en Copy constructor. MbCornerChamferParams(const MbCornerChamferParams & other) - : index ( other.index ) - , distance ( other.distance ) + : distance ( other.distance ) , distAngle( other.distAngle ) + , index ( other.index ) , type ( other.type ) {} /// \ru Оператор присваивания. \en Assignment operator. \~ diff --git a/C3d/Include/op_direct_mod_parameter.h b/C3d/Include/op_direct_mod_parameter.h index b81f906..2d3953d 100644 --- a/C3d/Include/op_direct_mod_parameter.h +++ b/C3d/Include/op_direct_mod_parameter.h @@ -1011,6 +1011,22 @@ public: bool GetOffsetFacesHotPoint( MbCartPoint3D & pnt, MbVector3D & dir ) const; + /** \brief \ru Получить хот-точку и её вектор направления смещения для операции замены группы граней. + \en Get hot point and its displacement direction vector for the replacement faces group operation. \~ + \details \ru В случае успешного выполнения операции хот-точка размещается в центре грани, ближайшей к центру заменяющей группы граней. + В случае неудачного выполнения операции хот-точка располагается в центре заменяющей группы граней плюс смещение. + \en If the operation is successful, the hot point is placed in the center of the face, closest to the replacement group faces center. + If the operation fails, the hot point is located in the center of a replacement group faces, plus the offset is taken relative to this center.\~ + \param[out] pnt - \ru Хот-точка. + \en Hot point. \~ + \param[out] dir - \ru Вектор направления смещения хот-точки. + \en Hot point displacement direction vector.\~ + \return \ru Возвращает "true", если хот-точка была рассчитана. + \en Returns "true" if the hot-point is calculated. \~ + */ + bool GetReplaceFacesGroupHotPoint( MbCartPoint3D & pnt, + MbVector3D & dir ) const; + /** \brief \ru Получить константную ссылку на массив вариантов замены граней. \en Get a constant reference to an array of face replacement options. \~ \details \ru Получить константную ссылку на массив вариантов замены граней. diff --git a/C3d/Include/op_duplication_parameter.h b/C3d/Include/op_duplication_parameter.h index 91757c7..4251de2 100644 --- a/C3d/Include/op_duplication_parameter.h +++ b/C3d/Include/op_duplication_parameter.h @@ -516,7 +516,7 @@ public: /// \ru Получить индексы выбранных граней оболочки. \en Get indices of selected shell faces. void GetFacesIndices( c3d::IndicesVector & selIndices ) const { selIndices = _selIndices; } /// \ru Установить индексы выбранных граней оболочки. \en Set indices of selected shell faces. - void SetFacesIndices( c3d::IndicesVector & selIndices ) { _selIndices = selIndices; } + void SetFacesIndices( const c3d::IndicesVector & selIndices ) { _selIndices = selIndices; } /// \ru Режим адаптации открытых оболочек. \en Open shell instances adaptation mode. bool IsAdaptMode() const { return _adaptMode; } /// \ru Режим адаптации открытых оболочек. \en Open shell instances adaptation mode. diff --git a/C3d/Include/op_mesh_parameter.h b/C3d/Include/op_mesh_parameter.h index c1406a3..a19d704 100644 --- a/C3d/Include/op_mesh_parameter.h +++ b/C3d/Include/op_mesh_parameter.h @@ -140,18 +140,18 @@ private: public: /// \ru Конструктор.. \en Constructor. \~ MbConvexHullParams( const c3d::ParamPointsVector & points, double tolerance, bool makeContour, bool makeGrid, bool makeDelaunay ) - : _points ( points ) - , _tolerance ( tolerance ) - , _makeContour ( makeContour ) - , _makeGrid ( makeGrid ) + : _makeGrid ( makeGrid ) , _makeDelaunay( makeDelaunay ) + , _makeContour ( makeContour ) + , _tolerance ( tolerance ) + , _points ( points ) {} /// \ru Конструктор.. \en Constructor. \~ MbConvexHullParams( const std::vector & points, double tolerance, bool makeContour, bool makeGrid, bool makeDelaunay ) - : _tolerance ( tolerance ) - , _makeContour ( makeContour ) - , _makeGrid ( makeGrid ) + : _makeGrid ( makeGrid ) , _makeDelaunay( makeDelaunay ) + , _makeContour ( makeContour ) + , _tolerance ( tolerance ) { _points.clear(); _points.reserve( points.size() ); @@ -160,10 +160,10 @@ public: } /// \ru Конструктор.. \en Constructor. \~ MbConvexHullParams( const SArray & points, double tolerance, bool makeContour, bool makeGrid, bool makeDelaunay ) - : _tolerance ( tolerance ) - , _makeContour ( makeContour ) - , _makeGrid ( makeGrid ) + : _makeGrid ( makeGrid ) , _makeDelaunay( makeDelaunay ) + , _makeContour ( makeContour ) + , _tolerance ( tolerance ) { _points.clear(); _points.reserve( points.size() ); @@ -172,10 +172,10 @@ public: } /// \ru Конструктор.. \en Constructor. \~ MbConvexHullParams( const SArray & points, double tolerance, bool makeContour, bool makeGrid, bool makeDelaunay ) - : _tolerance ( tolerance ) - , _makeContour ( makeContour ) - , _makeGrid ( makeGrid ) + : _makeGrid ( makeGrid ) , _makeDelaunay( makeDelaunay ) + , _makeContour ( makeContour ) + , _tolerance ( tolerance ) { _points.clear(); _points.reserve( points.size() ); @@ -248,8 +248,9 @@ private: public: /// \ru Конструктор.. \en Constructor. \~ MbConvexHullParams3D( const c3d::SpacePointsVector & points, double tolerance ) - : _points ( points ) - , _tolerance( tolerance ) + : _tolerance( tolerance ) + , _points ( points ) + {} /// \ru Конструктор.. \en Constructor. \~ MbConvexHullParams3D( const std::vector & points, double tolerance ) @@ -1362,12 +1363,12 @@ private: , _pointsFittingMax ( 10000 ) , _withRefinement ( false ) , _closed ( false ) - , _order ( c3d::NURBS_DEGREE ) - , _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT ) - , _smoothCoef ( METRIC_ACCURACY ) , _angleConeMin ( 1. ) , _angleConeMax ( 89. ) , _radiusAnalyticShapeMax( 1500. ) + , _order ( c3d::NURBS_DEGREE ) + , _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT ) + , _smoothCoef ( METRIC_ACCURACY ) {} public: @@ -1383,12 +1384,12 @@ public: , _pointsFittingMax ( 10000 ) , _withRefinement ( false ) , _closed ( false ) - , _order ( c3d::NURBS_DEGREE ) - , _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT ) - , _smoothCoef ( METRIC_ACCURACY ) , _angleConeMin ( 1. ) , _angleConeMax ( 89. ) , _radiusAnalyticShapeMax( 1500. ) + , _order ( c3d::NURBS_DEGREE ) + , _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT ) + , _smoothCoef ( METRIC_ACCURACY ) {} /// \ru Конструктор по параметрам. \en Constructor by parameters. explicit MbSurfaceFitToGridParameters( MbeSpaceType surfaceType, @@ -1404,12 +1405,12 @@ public: , _pointsFittingMax ( 10000 ) , _withRefinement ( false ) , _closed ( false ) - , _order ( c3d::NURBS_DEGREE ) - , _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT ) - , _smoothCoef ( METRIC_ACCURACY ) , _angleConeMin ( 1. ) , _angleConeMax ( 89. ) , _radiusAnalyticShapeMax( 1500. ) + , _order ( c3d::NURBS_DEGREE ) + , _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT ) + , _smoothCoef ( METRIC_ACCURACY ) {} /// \ru Конструктор по параметрам для вписывания аналитических поверхностей. \en Constructor by parameters for analytic surfaces fitting. explicit MbSurfaceFitToGridParameters( MbeSpaceType surfaceType, @@ -1428,12 +1429,12 @@ public: , _pointsFittingMax ( 10000 ) , _withRefinement ( false ) , _closed ( false ) - , _order ( c3d::NURBS_DEGREE ) - , _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT ) - , _smoothCoef ( METRIC_ACCURACY ) , _angleConeMin ( angleConeMin ) , _angleConeMax ( angleConeMax ) , _radiusAnalyticShapeMax( radiusAnalyticShapeMax ) + , _order ( c3d::NURBS_DEGREE ) + , _countCpMax ( c3d::NURBS_POINTS_MAX_COUNT ) + , _smoothCoef ( METRIC_ACCURACY ) {} /// \ru Конструктор по параметрам для вписывания нурбс поверхности. \en Constructor by parameters for NURBs surface fitting. explicit MbSurfaceFitToGridParameters( MbeSpaceType surfaceType, @@ -1450,12 +1451,12 @@ public: , _pointsFittingMax ( 10000 ) , _withRefinement ( false ) , _closed ( false ) - , _order ( order ) - , _countCpMax ( countCpMax ) - , _smoothCoef ( smoothCoef ) , _angleConeMin ( 1. ) , _angleConeMax ( 89. ) , _radiusAnalyticShapeMax( 1500. ) + , _order ( order ) + , _countCpMax ( countCpMax ) + , _smoothCoef ( smoothCoef ) {} /// \ru Выдать тип поверхности. \en Get surface type. diff --git a/C3d/Include/op_polymesh_parameter.h b/C3d/Include/op_polymesh_parameter.h index 78c5b8e..69d0e9b 100644 --- a/C3d/Include/op_polymesh_parameter.h +++ b/C3d/Include/op_polymesh_parameter.h @@ -335,7 +335,8 @@ private: std::vector _weft; ///< \ru Полилинии для нулевой нити утка. \en Weft polylines. \~ MbHalfedgeAttrSizetEdge * _pAttrId; ///< \ru Атрибут индексов сторон ячеек. \en An attribute for cell sides indices. \~ MbHalfedgeAttrDoubleEdge * _pAttrAng; ///< \ru Атрибут углов сторон ячеек. \en An attribute for cell sides angles. \~ - MbHalfedgeAttrBoolVertex * _pAttrNode; ///< \ru Атрибут флагов узлов ткани. \en An attribute for the fiber nodes. \~ + MbHalfedgeAttrBoolVertex * _pAttrNode; ///< \ru Атрибут флагов узлов ткани. \en An attribute for fiber nodes flags. \~ + MbHalfedgeAttrSizetEdge * _pAttrDir; ///< \ru Атрибут направлений сторон ячеек ткани. \en An attribute for cell sides directions. \~ public: /// \ru Конструктор. \en Constructor. @@ -420,6 +421,16 @@ public: \en Polylines represented a line mapping to the shell. \~ */ void GetSplitPolylines( const MbCartPoint & uv, const MbVector & dir, std::vector & polys ) const; + /** \brief \ru Получить атрибут направлений сторон ячеек. + \en Get an attribute for cell sides directions. \~ + \details \ru Получить атрибут направлений сторон ячеек. + Возможные значения: + 0 - вдоль основы, 1 - вдоль утка, 2 - против основы, 3 - против утка, SYS_MAX_T - не определено. + \en Get an attribute for cell sides directions. + Possible values are: + 0 - along warp, 1 - along weft, 2 - against warp, 3 - against weft, SYS_MAX_T - undefined. + */ + const MbHalfedgeAttrSizetEdge * GetDirectionalAttribute() const { return _pAttrDir; } // \ru Инициализировать атрибуты сетки. \en Initialize the mesh attributes. \~ void InitAttributes(); diff --git a/C3d/Include/op_shell_parameter.h b/C3d/Include/op_shell_parameter.h index cb7d864..11cd532 100644 --- a/C3d/Include/op_shell_parameter.h +++ b/C3d/Include/op_shell_parameter.h @@ -689,7 +689,7 @@ KNOWN_OBJECTS_RW_REF_OPERATORS( PocketValues ) // \ru Для работы со // --- class MATH_CLASS SlotValues : public HoleValues { public: - // \ru Вид паза сверху. \en View of slot from above. \~ + /* \ru Вид паза сверху. \en View of slot from above. \~ // -- // / \ // | | @@ -698,6 +698,7 @@ public: // | | // \ / // -- + */ enum SlotType { // ________ * // | | * @@ -2834,6 +2835,10 @@ public: const MbFaceShell * GetShell() const { return shell; } /// \ru Номер грани в оболочке. \en The index of face in the shell. const MbItemIndex & GetFaceIndex() const { return faceIndex; } + /// \ru Номер грани в оболочке. \en The index of face in the shell. + void SetFaceIndex( const MbItemIndex & index ) { faceIndex.Init( index ); } + /// \ru Номер грани в оболочке. \en The index of face in the shell. + void SetFaceIndex( size_t index ) { faceIndex.Init( index ); } /// \ru Получить режим обработки оболочки-препятствия. \en Get obstacle shell processing mode. ShellObstacleType GetObstacleType() const { return toShellType; } /// \ru Получить вариант представления результирующего тела. \en Get options for representing the resulting body. @@ -4263,9 +4268,9 @@ public: \en An object for naming the new objects. \~ */ MbShellChamferParams( const c3d::EdgesSPtrVector & initCurves, const SmoothValues & params, const MbSNameMaker & names ) - : _params( params ) + : _initCurves( initCurves ) , _nameMaker( &names.Duplicate() ) - , _initCurves( initCurves ) {} + , _params( params ) {} public: /// \ru Получить именователь операции. \en Get the object defining names generation in the operation. @@ -4436,8 +4441,8 @@ public: MbShellFilletValues( const std::vector & initFunctions, c3d::FacesSPtrVector & initBounds, const MbSNameMaker & names, const SmoothValues & params ) : MbShellChamferParams( c3d::EdgesSPtrVector(), params, names ) - , _initBounds ( initBounds ) - , _initFunctions( initFunctions ) {} + , _initFunctions( initFunctions ) + , _initBounds ( initBounds ) {} public: /// \ru Получить набор скругляемых ребер тела с функциями изменения радиуса. \en Get the edges to fillet together with the radius laws. @@ -5544,8 +5549,8 @@ public: : _initFaces ( initFaces ) , _initFacesLeft ( initFacesLeft ) , _initFacesRight( initFacesRight ) - , _params ( params ) - , _nameMaker ( &names.Duplicate() ) {} + , _nameMaker ( &names.Duplicate() ) + , _params ( params ) {} public: /// \ru Получить набор граней для скругления. \en Get faces to fillet. @@ -6179,15 +6184,15 @@ public: public: /// \ru Конструктор. \en Constructor. MbShellPartResults() - : _solid() - , _partIndices() + : _partIndices() + , _solid() { } /// \ru Конструктор по индексам частей тела. \en Constructor by the indices of the parts of the solid. MbShellPartResults( const MbPartSolidIndices & partIndices ) - : _solid() - , _partIndices( partIndices ) + : _partIndices( partIndices ) + , _solid() { } diff --git a/C3d/Include/op_swept_parameter.h b/C3d/Include/op_swept_parameter.h index 6210131..a3feb08 100644 --- a/C3d/Include/op_swept_parameter.h +++ b/C3d/Include/op_swept_parameter.h @@ -1603,9 +1603,9 @@ protected: protected: /// \ru Конструктор. \en Constructor. - MbSweptLayout( const MbSurface & surf, Direction dir ) : surface( &surf ), direction( dir ), skipUnion( false ) {} + MbSweptLayout( const MbSurface & surf, Direction dir ) : direction( dir ), skipUnion( false ), surface( &surf ) {} /// \ru Конструктор копирования. \en Copy-constructor. - MbSweptLayout( const MbSweptLayout & other ) : surface( other.surface ), direction( other.direction ), skipUnion( other.skipUnion ) {} + MbSweptLayout( const MbSweptLayout & other ) : direction( other.direction ), skipUnion( other.skipUnion ), surface( other.surface ) {} /// \ru Деструктор. \en Destructor. virtual ~MbSweptLayout(); public: diff --git a/C3d/Include/op_wireframe_parameter.h b/C3d/Include/op_wireframe_parameter.h index d8260d2..4aac35d 100644 --- a/C3d/Include/op_wireframe_parameter.h +++ b/C3d/Include/op_wireframe_parameter.h @@ -12,7 +12,7 @@ #include -#include +#include #include @@ -433,4 +433,114 @@ public: }; +//------------------------------------------------------------------------------- +/** \brief \ru Параметры эквидистантного каркаса. + \en Parameters of an offset wire frame. \~ + \details \ru Параметры эквидистантного каркаса. + \en Parameters of an offset wire frame. \~ + \ingroup WireFrame_Parameters +*/ +// --- +class MATH_CLASS MbOffsetWireFrameParams : public MbPrecision { +private: + std::unique_ptr _spatialParameters; ///< \ru Параметры для смещения пространственной кривой. \en Parameters for offsetting a spatial curve. \~ + std::unique_ptr _surfaceParameters; ///< \ru Параметры для смещения кривой вдоль поверхности. \en Parameters for offsetting a curve along a surface. \~ + MbVector3D _offset; ///< \ru Вспомогательный вектор смещения. \en The auxiliary offset vector. + +public: + /** \brief \ru Конструктор по параметрам. + \en Constructor by parameters. \~ + \details \ru Конструктор для смещения пространственной кривой. + \en Constructor for offsetting a spatial curve. \~ + \param[in] offsetVect - \ru Вектор, задающий смещение в точке кривой. + \en The displacement vector at a point of the curve. \~ + \param[in] useFillet - \ru Если true, то разрывы заполнять скруглением, иначе продолженными кривыми. + \en If 'true', the gaps are to be filled with fillet, otherwise with the extended curves. \~ + \param[in] keepRadius - \ru Если true, то в существующих скруглениях сохранять радиусы. + \en If 'true', the existent fillet radii are to be kept. \~ + \param[in] bluntAngle - \ru Если true, то в притуплять острые углы. + \en If 'true', sharp corners are to be blunt. \~ + \param[in] fromBeg - \ru Вектор смещения привязан к началу (если true). + \en The translation vector is associated with the beginning (if true). \~ + \param[in] nameMaker - \ru Именователь кривых каркаса. + \en An object defining the frame curves names. \~ + \param[in] useSurfaceNormal - \ru Эквидистанта согласована с нормалью к поверхности. + \en Offset point is moved according to surface normal. \~ + \param[in] surface - \ru Поверхность кривой или подобная ей. + \en Curve's surface or similar to such surface. \~ + */ + explicit MbOffsetWireFrameParams( const MbVector3D & offsetVect, + bool useFillet, + bool keepRadius, + bool bluntAngle, + bool fromBeg, + const MbSNameMaker & nameMaker, + bool useSurfaceNormal, + c3d::ConstSurfaceSPtr surface = nullptr ); + + /** \brief \ru Конструктор по параметрам. + \en Constructor by parameters. \~ + \details \ru Конструктор для смещения пространственной кривой. + \en Constructor for offsetting a spatial curve. \~ + \param[in] offsetVect - \ru Вектор, задающий смещение в точке кривой. + \en The displacement vector at a point of the curve. \~ + \param[in] nameMaker - \ru Именователь кривых каркаса. + \en An object defining the frame curves names. \~ + */ + explicit MbOffsetWireFrameParams( const MbVector3D & offsetVect, + const MbSNameMaker & nameMaker ); + + /** \brief \ru Конструктор по параметрам. + \en Constructor by parameters. \~ + \details \ru Конструктор для смещения кривой вдоль поверхности. + \en Constructor for offsetting a curve along a surface. \~ + \param[in] face - \ru Грань, на которой строится эквидистанта. + \en The face on which to build the offset curve. \~ + \param[in] axis - \ru Направление смещения с точкой приложения. + \en The offset direction with a reference point. \~ + \param[in] dist - \ru Величина смещения. + \en The offset distance. \~ + \param[in] nameMaker - \ru Именователь кривых каркаса. + \en An object defining the frame curves names. \~ + */ + explicit MbOffsetWireFrameParams( const MbFace & face, const MbAxis3D & axis, double dist, const MbSNameMaker & nameMaker ); + /// \ru Конструктор копирования. \en Copy constructor. + MbOffsetWireFrameParams( const MbOffsetWireFrameParams & other ); + /// \ru Конструктор для чтения. \en Constructor for reading. + MbOffsetWireFrameParams( TapeInit ti ); + /// \ru Деструктор. \en Destructor. + virtual ~MbOffsetWireFrameParams() {} + +public: + /// \ru Получить параметры. \en Get parameters. + const MbSpatialOffsetCurveParams * GetSpatialParams() const { return _spatialParameters.get(); } + /// \ru Получить параметры. \en Get parameters. + const MbSurfaceOffsetCurveParams * GetSurfaceParams() const { return _surfaceParameters.get(); } + /// \ru Выдать вектор смещения. \en Get offset vector. + const MbVector3D & GetOffsetVector() const; + /// \ru Установить вектор смещения. \en Set offset vector. + MbVector3D & SetOffsetVector(); + /// \ru Установить параметры по вектору смещения. \en Set parameters by offset vector. + void SetOffsetParams( const MbVector3D & offset ); + /// \ru Являются ли параметры параметрами для смещением кривой вдоль вектора. \en Are the parameters for a shift of the curve along the vector. + bool IsParamsForSpatialCurve() const; + /// \ru Преобразовать элемент согласно матрице. \en Transform element by matrix. + void Transform( const MbMatrix3D & matrix ); + /// \ru поворот точек вокруг произвольной оси \en rotate points around an arbitrary axis. + void Rotate( const MbAxis3D & axis, double angle ); + /// \ru Сдвиг точек на произвольный вектор \en Move points on arbitrary vector. + void Move( const MbVector3D & to ); + /// \ru Проверка на равенство. \en Check if *this == other. + bool IsEqual( const MbOffsetWireFrameParams & other, double accuracy ) const; + /// \ru Получить именователь операции. \en Get names maker. + const MbSNameMaker & GetNameMaker() const; + + /// \ru Оператор присваивания. \en An assignment operator. + const MbOffsetWireFrameParams & operator=( const MbOffsetWireFrameParams & other ); + + KNOWN_OBJECTS_RW_REF_OPERATORS( MbOffsetWireFrameParams ) // \ru Для работы со ссылками и объектами класса. \en For working with references and objects of the class. \~ + +}; + + #endif // __OP_WIREFRAME_PARAMETERS_H diff --git a/C3d/Include/pars_equation_tree.h b/C3d/Include/pars_equation_tree.h index 7044d08..8c650aa 100644 --- a/C3d/Include/pars_equation_tree.h +++ b/C3d/Include/pars_equation_tree.h @@ -691,7 +691,8 @@ public: \en Object to copy. \~ */ IntervalConstNode( const IntervalConstNode & other ) - : m_firstValue ( other.m_firstValue->Duplicate() ) // ( other.m_firstValue ) + : TreeIntervalNode {} + , m_firstValue ( other.m_firstValue->Duplicate() ) // ( other.m_firstValue ) , m_secondValue( other.m_secondValue->Duplicate() ) // ( other.m_secondValue ) {} /** \brief \ru Деструктор. @@ -1529,7 +1530,8 @@ class MATH_CLASS BTreeUserFunc : public BTreeNode public: // Конструктор копирования BTreeUserFunc( const BTreeUserFunc & other ) - : func( &other.func->Duplicate() ) + : BTreeNode {} + , func( &other.func->Duplicate() ) { for ( size_t i = 0, c = other.pars.size(); i < c; ++i ) { pars.Add( other.pars[i]->Duplicate() ); diff --git a/C3d/Include/polymesh_topo.h b/C3d/Include/polymesh_topo.h index 4f2fb23..a287f3d 100644 --- a/C3d/Include/polymesh_topo.h +++ b/C3d/Include/polymesh_topo.h @@ -367,6 +367,22 @@ public: \en Keep old regions (i.e. do not make separate regions from new subregions). \~ */ virtual void SplitByEdgesTopo( const c3d::IndicesVector & splitSet, bool bKeepRegions ) = 0; + /** \brief \ru Удалить ребра сетки из ребер сегментации. + \en Remove mesh edges from segmentation edges. \~ + \param[in] edgesToDel - \ru Удаляемые ребра сетки. + \en Mesh edges to remove. \~ + */ + virtual void RemoveTopoEdgesFromSegm( const c3d::IndicesVector & edgesToDel ) = 0; + /** \brief \ru Удалить ребра сегментации. + * После удаления ребер общие регионы объединяются и + * сохраняется регион, у которого наибольшая площадь. + \en Segmentation edges to remove. + * Merges all regions connected through removed edges into one. + This region has the ID of the original region with the largest area. \~ + \param[in] edgesToDel - \ru Удаляемые ребра сегментации. + \en Remove segmentation edges. \~ + */ + virtual bool RemoveSegmEdges( const c3d::IndicesVector & edgesToDel ) = 0; /** \brief \ru Объединить несколько регионов в один. \en Merge several regions into one. \~ \param[in] regions - \ru Регионы. diff --git a/C3d/Include/se_curve.h b/C3d/Include/se_curve.h index dbde98c..fd82d0f 100644 --- a/C3d/Include/se_curve.h +++ b/C3d/Include/se_curve.h @@ -46,7 +46,7 @@ namespace c3d //------------------------------------------------------------------------------ /** \brief \ru Форма ограничения кривой STEP. - \en . \~ + \en . Trimming form of STEP curve\~ \note \ru ЭКСПЕРИМЕНТАЛЬНАЯ. \en EXPEREIMENTAL. \~ */ @@ -184,6 +184,8 @@ namespace c3d std::vector m_knotMultiplicities; ///< \ru Множители узлов. \en Knots multiplicities. std::vector m_knots; ///< \ru Узлы. \en Knots. SeBKnotsType m_knotsType; ///< \ru Тип вектора. \en Type of knots vector. + bool m_weightsDefined; ///< \ru Заданы ли веса точек. \en Wether the weights of points are defined. + std::vector m_weights; ///< \ru Веса точек. \en Weights of points. public: @@ -220,7 +222,13 @@ namespace c3d /// \ru Получить тип вектора. \en Get type of vector. SeBKnotsType GetKnotsType() const; - /// \ru . \en . + /// \ru Заданы ли веса. \en Wether the weights defined. + bool AreWeightsDefined() const; + + /// \ru Получить вес точки. \en Get weightf of a point. + double GetWeight( size_t index ); + + /// \ru Создать сплайн. \en Create a spline. static std::shared_ptr Create( size_t const thisId, ptrdiff_t const degree, @@ -233,6 +241,21 @@ namespace c3d SeBKnotsType const knotsType ); + + /// \ru Создать сплайн. \en Create a spline. + static std::shared_ptr Create( + size_t const thisId, + ptrdiff_t const degree, + std::vector && controlPointsList, + SeBCurveForm const curveForm, + bool const isClosed, + bool const isSelfIntersected, + std::vector && knotMultiplicities, + std::vector && knots, + std::vector && weights, + SeBKnotsType const knotsType + ); + VISITING_CLASS( SeBSplineWithKnotsCurve ) void Accept( Visitor & visitor ) const override @@ -255,6 +278,20 @@ namespace c3d std::vector && knots, SeBKnotsType const knotsType ); + + /// \ru Конструктор. \en Constructor. + SeBSplineWithKnotsCurve( + size_t const thisId, + ptrdiff_t const degree, + std::vector && controlPointsList, + SeBCurveForm const curveForm, + bool const isClosed, + bool const isSelfIntersected, + std::vector && knotMultiplicities, + std::vector && knots, + std::vector && weights, + SeBKnotsType const knotsType + ); }; //------------------------------------------------------------------------------ diff --git a/C3d/Include/se_surface.h b/C3d/Include/se_surface.h index e2e8be1..dde336c 100644 --- a/C3d/Include/se_surface.h +++ b/C3d/Include/se_surface.h @@ -13,6 +13,20 @@ namespace c3d { namespace converter { + + //------------------------------------------------------------------------------ + /** \brief \ru Форма тора STEP. + \en STEP Torus form. \~ + \note \ru ЭКСПЕРИМЕНТАЛЬНАЯ. + \en EXPEREIMENTAL. \~ + */ + enum class SeTorusForm { + Donut, ///< \ru Тор. \en Donut. + Apple, ///< \ru Яблоко. \en Apple. + Lemon, ///< \ru Лимон. \en Lemon. + }; + + //------------------------------------------------------------------------------ /** \brief \ru Плоскость. \en Plane. \~ @@ -151,22 +165,27 @@ namespace c3d */ class CONV_CLASS SeTorusSurface : public SeBase { - size_t m_placement; ///< \ru Локальная система координат. \en Location. - double m_majorRadius, ///< \ru . \en . - m_minorRadius; ///< \ru . \en . + size_t m_placement; ///< \ru Локальная система координат. \en Location. + double m_majorRadius, ///< \ru Радиус. \en Radius. + m_minorRadius; ///< \ru Толщина. \en Thickness. + SeTorusForm m_torusForm; ///< \ru Torus form. \en Form. public: - /// \ru . \en . + + /// \ru Создать поверхность тора. \en Create toroidal surace. static std::shared_ptr Create( size_t thisId, size_t placement, double majorRadius, double minorRadius ); /// \ru . \en . size_t GetPlacement() const; - /// \ru . \en . + /// \ru Получить радиус. \en Get radius. double GetMajorRadius() const; - /// \ru . \en . + /// \ru Получить толщину. \en GetThickness. double GetMinorRadius() const; + /// \ru Получить форму. \en Get form. + SeTorusForm GetTorusForm() const; + VISITING_CLASS( SeTorusSurface ) void Accept( Visitor & visitor ) const override @@ -178,7 +197,7 @@ namespace c3d private: /// \ru Конструктор. \en Constructor. - SeTorusSurface( size_t thisId, size_t placement, double majorRadius, double minorRadius ); + SeTorusSurface( size_t thisId, size_t placement, double majorRadius, double minorRadius, SeTorusForm torusForm ); }; diff --git a/C3d/Include/space_item.h b/C3d/Include/space_item.h index 22f358b..3119800 100644 --- a/C3d/Include/space_item.h +++ b/C3d/Include/space_item.h @@ -150,6 +150,7 @@ enum MbeSpaceType { st_ExplorationSurface = 347, ///< \ru Поверхность заметания с масштабированием и поворотом образующей кривой. \en Swept surface with scaling and winding of generating curve. st_SectionSurface = 348, ///< \ru Поверхность заметания переменного сечения. \en The swept mutable section surface. st_SimplexSpline = 349, ///< \ru Поверхность, моделирующая симплексный сплайн. + st_RuledBendedUnbendedSurface=341, ///< \ru Поверхность, полученная линейчатым сгибом/разгибом. \en Surface constructed by ruled fold / unbending. st_FreeSurface = 400, ///< \ru Тип для поверхностей, созданных пользователем. \en Type for the user-defined surfaces. \n // \ru Типы вспомогательных объектов. \en Helper object types. diff --git a/C3d/Include/surf_grid_surface.h b/C3d/Include/surf_grid_surface.h index 1b7fe50..1e1e73c 100644 --- a/C3d/Include/surf_grid_surface.h +++ b/C3d/Include/surf_grid_surface.h @@ -36,13 +36,14 @@ protected : size_t index[_C3D_3_]; ///< \ru Номера вершин треугольника в массиве точек. \en The numbers of vertices in points array. size_t neighbour[_C3D_3_]; ///< \ru Номера соседних треугольников. \en The numbers of neighbour triangles. SYS_MAX_T if it is absent. -// points[index[2]] +/* points[index[2]] // + // / \ // neighbour[2] / \ neighbour[1] // / \ // points[index[0]] +---------------+ points[index[1]] // neighbour[0] +*/ public : MbTrigon() { index[0] = SYS_MAX_T; index[1] = SYS_MAX_T; index[2] = SYS_MAX_T; diff --git a/C3d/Include/templ_multimap.h b/C3d/Include/templ_multimap.h index 852f823..4f16696 100644 --- a/C3d/Include/templ_multimap.h +++ b/C3d/Include/templ_multimap.h @@ -266,7 +266,7 @@ size_t MultiMap::LowerBoundEx( const SArray= 0 && key <= pairs[firstNotLess].m_key ) + if ( firstNotLess <= last && key <= pairs[firstNotLess].m_key ) return firstNotLess; if ( key == pairs[last].m_key ) return last; @@ -330,7 +330,7 @@ size_t MultiMap::UpperBoundEx( const SArray= 0 && key < pairs[firstGreater].m_key ) + if ( firstGreater <= end && key < pairs[firstGreater].m_key ) return firstGreater; if ( key < pairs[last].m_key ) return last; diff --git a/C3d/Include/tool_err_handling.h b/C3d/Include/tool_err_handling.h index 96c30f9..e674329 100644 --- a/C3d/Include/tool_err_handling.h +++ b/C3d/Include/tool_err_handling.h @@ -107,31 +107,44 @@ public: */ static MbResultType SetError( MbResultType ); + /** \brief \ru Достаточно ли памяти для работы. \en Whether is enough memory to work. + \param[in] memRatio - \ru Максимальный процент использования памяти (при memRatio == -1 используются значения по умолчанию). + \en The maximum percentage of memory usage (with memRatio == -1, the default values are used). \~ + */ + static bool IsEnoughMemory( double memRatio = -1 ); + + /** \brief \ru Сбросить все данные. + \en Reset all data. + */ + static void Reset(); + + ///> \ru Следующие методы будут удалены. \en The next methods will be removed. + /** \brief \ru Инициализировать обработчик перед началом мониторинга ошибок. Возвращает true, если обработчик стартовал, или false, если обработчик уже работает. Парная функция Recover() должна вызываться, только если Init() вернул true. \en Initialize handler before starting error monitoring. Returns true if the handler is started or false if the handler is already working. - The paired function Recover() should be called only if Init() returnes true. + The paired function Recover() should be called only if Init() returns true. */ - static bool Init(); + DEPRECATE_DECLARE static bool Init(); /** \brief \ru Восстановиться, если обнаружена фатальная ошибка. \en Recover if a fatal error is detected. */ - static void Recover(); + DEPRECATE_DECLARE static void Recover(); - /** \brief \ru Достаточно ли памяти для работы. \en Whether is enough memory to work. + /** \brief \ru Коэффициент использования памяти [0.0, 1.0]. \en Memory use coefficient [0.0, 1.0]. */ - static bool IsEnoughMemory(); + DEPRECATE_DECLARE static double MemoryUseRatio(); /** \brief \ru Установить допустимый порог памяти для работы (Mb). \en Set an acceptable memory threshold for work (Mb). */ - static void SetMemoryThreshold( double ); + DEPRECATE_DECLARE static void SetMemoryThreshold( double memThreshold ); /** \brief \ru Установить порог памяти по умолчанию. \en Set default memory threshold. */ - static void ResetMemoryThreshold(); + DEPRECATE_DECLARE static void ResetMemoryThreshold(); }; #endif // __TOOL_ERR_HANDLING_H diff --git a/C3d/Include/topology.h b/C3d/Include/topology.h index 1891be1..76d7592 100644 --- a/C3d/Include/topology.h +++ b/C3d/Include/topology.h @@ -962,8 +962,8 @@ public : /// \ru Получить параметры разрезки для периодического ребра. \en Get the cutting parameters for a periodic edge. bool CutPeriodicEdge( const MbVector3D & eye, SSArray & trimParams, double & delT1, double & delT2 ) const; - /// \ru Согласовать тип кроивой пересечения. \en Agree on the type of intersection curve. - void AgreeBuildType( double tCurve ); + /// \ru Согласовать тип кривой пересечения. \en Agree on the type of intersection curve. + DEPRECATE_DECLARE void AgreeBuildType( double tCurve ); // \ru Объявление оператора присваивания без реализации, чтобы не было присваивания по умолчанию. \en The declaration of the assignment operator without implementation to prevent an assignment by default. OBVIOUS_PRIVATE_COPY( MbCurveEdge ) @@ -1504,7 +1504,7 @@ public: { MbFaceTemp * _temporal; ///< \ru Объект сопровождения грани (для скорости вычислений). \en An object for maintenance of a face (to improve calculations speed). MbFaceAuxiliaryData() : AuxiliaryData(), _temporal( nullptr ) {} - MbFaceAuxiliaryData( const MbFaceAuxiliaryData & ) : _temporal( nullptr ) {} + MbFaceAuxiliaryData( const MbFaceAuxiliaryData & ) : AuxiliaryData {}, _temporal( nullptr ) {} virtual ~MbFaceAuxiliaryData(); }; @@ -1526,9 +1526,9 @@ public: template MbFace( const Loops & bnds, const MbSurface & surf, bool sense ) : MbTopologyItem() - , loops ( bnds.size(), 1 ) , surface ( const_cast(&surf) ) , sameSense ( sense ) // признак совпадения нормали + , loops ( bnds.size(), 1 ) , cache ( nullptr ) { surface->AddRef(); diff --git a/C3d/Lib/x32/Debug/c3d.lib b/C3d/Lib/x32/Debug/c3d.lib index 665b6ad919ea69a5f89fcf98d39c62e418780bce..cc6be651a2b281f2a0cea0a835e469c394d46d25 100644 GIT binary patch delta 968045 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

|yT5JYA?Dj&! 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

JtgPAH;_h_!Q}SpeTj!+COqc++wqSk1hJq6X z>k8JVtw~#(_B?G}TAzac1<`_j1p^8e7xXPS9yk#=8F(51XM?gi*&ov0r_s~j*1WHI zSM#RkPfbTrq^Q}CEDkRu@_@6#Ga3ho{PMRr?*sTsx=l(t)`c!r)P{O zmI-A-m)y}W|T}xtacO@{{;6!k-R;^WNm0FdyNIRM`iZYUd4xIC!^`G%iq)ebd zwFoUt3)kKu4`&Qx2(+2n3@u;F)n;jV+VsDk3#ZN5<%C*dEig+j%OJ}@%PC7KR)?*_ zTCpz@z9hU%5K42THfgqW7IOx3CUXsw&ZIG^%yL(mtHm{sF_+St870R`` z_x?10s{gZ}rMiKmg<4_Ou=R}VwCk+voa?-6eblqgbI{Yr+RNI*+S}UG zy3|VZ&S{?8O!Z#PzLLF`cPaaF_8Q*z?2Xn9*7ep;*1tu8I&2-LZd@I@Zn~RK&7$(C znbZs_mpaWYpr%u!j{c4bj^nOlt`n}4u2Zh1lx39Vlzo&IPqQcNnc|u3S?1a8I^sI& z`pEdi_`rz%3kjkoLVkPBwGg~7h%brXh^a&pF`4+aq=C>#@DkF?)5Q3qH z(z~U%O8;dHU=L(ZX5X*7SNDwal=7nVdFiv#;nAjJn&X-ynxmS-niHCXnnRjXn*Evs znv>#o-3z-;?0`)d1t znwgq2fJ)F}&LYl2&H~Q2d`Q8`{1f>H@^9sz%D<7n*1g8P-~B1@KJX!s(srx$W-E`$ zXGSxanGLxOk_K@@VM7Rvu1D6R>f!Z>`p){U#BPZumXYOVnH?sF%kdua4)PWP%l}(T z%dZvbL~l#9qQ@mKN_yA#sqb6Avc4eRTbv*NJNsAm&+O8iA>5(dVcfIa1Gas(^R_kG z)!K9JQ|{C5lkPL_C+?q+ACSxJE9@sx_7?kQ`)PYRj0?+vrNL&i=djnX$0m$Vn42&z zA(^BnZ7A7TvcBY4$tllC&n?ec=4s|B=6$9kU=Nt#Ciu(zSNX5=zvREje_zrorgzNI zxFd0WWBSDOjOh_`1AG&F3w#HB8+;vn4ZNv-YyIZ>E%nFhN41V@9nm_vRTB7?5QUJw zC$tg*1V3RM;g^*f|JM;ms3S}uOeD-A#5W~0QJP3iv?gj3v5DN|X(BZB(Du~&wXNE@ z+Bw?U+F9CV+NIhh+Fk73?9=Qw?6+(H2P6iFx#An5YogyG30+JV(fM=%ok!mQSPv)$ zEy*8YTcTd3UaHnp%c$j1Y6Z2FI!rfQH$*p7H&wS%w@SA{w@0^JH$yjFw^Roc4ALdb zl4Km&uJ+ySJKImSpKd?XezH9!_%!cH-j%$|dGUFV^B(2h&WjB~f}i2`U{kOq*c|)< zcLbfmPw+$;Q^t@{W#9h}Oh^O@fj|(0Bw2!tAlr;M*ma;Qy1Q#n*97%=^&Hx4+ANwu zp#>Q`3>~dBAMG{dCFB+41%zNj+iKJ$wDVo(x=wcuiwuoCi9C%=tDRcAv+I9dRlehq zV-bAk`pCKnsIwcri{42u?of2hBhM$#CC?!rCLbanB;QouQbPe1pj$u$&p+R>u4f%JdHq$qtR>}Ta~TC=4d^k zJE=RayRN&YyP-p18x=jtJ;>e3W69&lW5}b)QF*W^7#G9`r9pHM6RZPTfvDlf{WlIln6P3h`=M92s@G&kw(5n=0)a4K1bGp7lRjpSAti7=YVH}&7I?D zV`yV(Bh;g5ZK90`MgAL^P;;&8YS*PM0w@7Q1Z_p++hjJiO=YW4R4aN22ats)0Ve>1 zY&#;`Bd|^jrW#X$DaV*F#%YTiq`asLw-EaayAQh__q>>hABZ#JP`I<$y|`rj1l$HJ z4R;3%z~|ySamBa{+-vL^+_&OVyb@7{xGB3w{e)Ob-GMk2nf&*0<82L*UIRX8<4R_T z9HR0PR|&sllW0`reE12*px)8(0(J<71GaX!IszSj&}g{W_RSZI~+v@bM2v^10)S`<1KS`*q3+7;RoN)P3Q4n!75 zeqt^IR;d0}Y1u3BlK9N{W%wD9PntLC_nKUQkhavfsx3~o#D5=9qCO8k4SNlH2m1&+ z1HKAA3tI|U1^5hz&IL>ZoPvD^Tm)YRzXudWc91EZH;Z3mo`>&iqoO1~KQBEGDx)Ia z!3V-$`S`LFf2K$%x-9#x-W1s#86R2D@lzuLt;e^+S>aB26WjyufVaW}@DRK=+y(Cr zzaMIWJKzhHDnK5y;WP}&G^7ME-i}Y?Ivl!=SX;RKo*n{0UF**X5Utn zXIbJ}%?8bB=L?36nZlgm-0UKm)P5NO}ckFJnxCq0{_o3 zwE|9hT+zXMl>~-OVE)SlxQ;REsqQ=lVHW`wkcrWW1~`C^)$dOnE?(ERrEMIam;BcP zXUQ3#L)4vu?1IG0p>mA8fj?OPN`El9%8-?~oA-Z)&cZJZg^j`p7=Qstn3N!PqS9dy zf`q6j-62Y@i`BjB?(XjR*4;hVo9phn>;Cp%yub6F^E__Sj|zVwjc?$Nwj}3ez#6mo?xbo28=*q@5j_zM z_;>h8_;vV=q-RNAl6ocq`Di#9UJl=#G#Wk&-XCs2cn~%O1aTYw0zM;YOj032gIEAx z244eDLJUV};D!iX44;cAO8SeIO`;~9F6>3|I$vk}#GL~gF&i_=8FcjLzxml?)LX(~ z*f!W%SU2n%Yy+%;`H>MZnwt_r35U{a?GyEL>J%J3=WIrOv5uNYe4$<$ z(eJ4<#-3@@LY7KaOU(92jV^t3x&^2Q4#S>Ee8mnmtt#%%+{$!>wy-u+hp^7JgG)YA zKQx87CQl-_poEgsOE3@NOZ!==j^%QL*xA?-IX2>aPc-atVu&}!dx^!xxEWr?KjQ1v zt+=NSTYL(qy#$(DW*a4$%8sdvR5cGXpU9vShPDr|ugqAN(a#Z&Thg40BYs3aGJjjTTP{jw z;%ab#IF{!=D~=6J&hb2e#cTTE2H=L^HaiAr78-AqY}FuJXW0i^I&eN*7`Hmr?3nJ5 z;LJD&Zc6kY$7?hZ{Y|Jx<<^7KPL)mO%;hweKZV7XP0t)kyq)?Y^@I3}_*^Zh?osXM z)@|+k-1E)tnT^26a*`S%gh(J8?H}8VwN+X_D6y?4UP(|{K18Q6#k8lwfo(3{pOO)| zhx8ljy6nHAuM@YM7Z4|6sb_16MFt)ik7y6s;4@77Y+3GrBq|J73T8DVhvS71Xps%|tS zvI2M$V5mW-kA#eZSlzIs^@zSHFKTN$*_~}sZ=>R)PDMeYih{|(^dKxq4l;vFg7br$ zK+8dEK?^{t(1i33+NVSTbAHCPFc!E2%F@^BPXTrY4T;T(vP4zlcz^^@7&Rj55FjDS z9CZY60V*t^BA2st* zH0kjG7(n5srLS|Xb?x%*^e%QSa_w^Mbgg!+a&32Qb1ic%b!~BNc5QS;Hn@KC}(-9E{oN?WI&HE7&&ww%Bxr!Mjv~EUnMxS8s;Ev$-;Gy8b;FRFx z;K7tiU>UF!D055QVz?@Y4PRp4o<|*+3a0K?v6eg&7?7C;CMf2 zN6fIKPq2?LTJ<~FTiAElH&|^oxB6addv$UAg4#4x1vnR+1EzwpCSC$JA-#5G?U2~? zID6gDv7}v?I7dp*e=u8*hqEH>VAa2gfa1tqx)5lshw3j1vnWv09FAjhtXi0 z;x@!>jKp=qEHE3)3fmR^67T}>cek5doJ35jNy?KRI;Pi8Ht_KWU+9+-z6JwJ}0GQlw3u($erCbZ@Q5CDRK#sC+lUIZMn zX%c!QjINtqr{!2VC+cFWixNlF42p(B>f$0)Zm+bK*xF*x#*dmnq4<4lU-Mzq)l3sX*XrZUCm6!v7k(75wsAxF_VMqPQ8(uUHv(8 zY4m@sh1IWGAJ@*U?E?Id^xA#LU5NW0%}zd>yR8l!QxJDVI0JkKc@KFP`5p8F^fLm= zPar0flEZaN>(XL2XJGpW-QRTxAD(}GFCtRN$}G`KjpD7Xr= z0ki}(DZQ3?Gu#~}0M7#U2KNLT5*rh52rmln39r1N_6&azAlj{5|!nd7C-Q zI1uh0&KTY#UIDicuZ`EqQ}cvadQ`XYlJLGzguO1jAiOKYR$r{kj8qS)?p-}Dep38^ z>ZiKXb^Y3})hwxbR&!PKT2u?z=ve_J!A8T@z*q@Gc^dA2+^3vne^&v=I6U44&SFjs zcPD2gZ#*xVkL4%vXT}2)&cq)S+!id89F^=ye2@sPUgYV?YvHj_e&j1bIv>vu#9wV~ z=P7x0*hk3Hgq!q8*576(i+R_7(|^x@%YWa0+yBu2$p6Iu*#Ff3z<bCHz@R4wA?B%*?vBRqSR!@kZ5Bqu8ZD^HhWe<$*{4obudoC za9$htBlkIHg`k6bf+OH<;wIblE02Q;BJ)9+d?G&-f4#MX*T}2KK0%fz+@{|YUKTzOrc__5!&MKh?o&NJescW4 z>Sww$b^Y6~*DS4hUUNcyU3JPnVH3Lsw#GWZ03F#cMr zm#5;1v5%2u3AgBEAS>#Q@S5-N}0fPZCbOQI$3!rrnE+-CGm5E&W#Z=WuSYIfeD=G1#yCux4_5|L0{lMzzA?2 zb$;4_=tRhI)EIJctZ|Lgz&fMBjs7g4Ik& zh{dnr^Z1>K&!U9bU!B;UcpEtloR{zx z^a=DCG)_;Vr|OY$B)`K1QFUx9WBJe0`>#tZ&jc==FS#UZ`*457(cKfV;rw!OdVZ zxCN{Rr-L~#9!v|k17E?4#GpfgP(#NX0KpuC?WJV7!^7J zR)U>%TjE5_cfiO|!9d_B;4t9Am{exZx);IZ5IFQB_%&F=goXwIM+1ig+Y?_zl>$zJ zRp700{edHZLx2N-BY{JK&VVCu32+&32XGgVk$_F$M)RT<#x07w8+9FU10YGv1b+h+ zft@f)%yjS<5D0t(tOJ{1;AmBuT13<*V^KpaOrMm$1XMqEM^Aq$ZlBpVrp1R(!Iyhpr1JV)F> zTt^U)cqEh$;nyK+kwc)vp}!fsaR}Hh92|B(cr6$Kk)y^6#|g&>rweBYrwJzsCkrPE zPti`(PSO?%7YP>#mkE~(mqvthgmZ##P^8qfsV0t*9saYfb_;US*Eo_W6czRSK#zO%mbzH`1SzAoPd z-$mcu;EiAcY-jb3Y7_B#@MP-#+T*FoQHMR-YL!qG)C#ph-Oz{!>V7l^unR!bF*&7AQ69@A?_q1Z{>=qC~+{sUKaRT%TS4xjwkwyI`>RzF4R|i9yAoVo?y( zj=b%8JM*^X4apjuH8d-dRY5POSJG+pDtZ|`qNi)=2D*-Jq_@#eW6xsGUq*wLtjAe1(X-LB&=K?y^kDRT_Cxjqw%Kfrm@Q^@ zJ}aM-&&>a3{bBuX?O^#>ovhWCwU#xOo6>ISE$Iy@9!ta$u+cKGEJg;BtL=UbQS}~-8iqFO8;B72B z%gRz0G!`@!s0s$k2FN0VWc_6~@wf4}@Ea;NRcx$i$dl#C^Q3t@NZUy}N!v*Omi|*Z zqI7uax6-er-%G!g_7U|K^%eCJjVu^ZFsk6+f~T@4vS+f#vI8_(gS4Tcp}rxRf~24* z2+E>{g$;`v7BmF#A$$=3Isa4sm;8_URh5iNdgZ>ty@mS=_xx>VQ9Kkc#Z7rv@n6OJ z3M142H9_^zFf;`10S!X?NPA2BN_$Ctm4QlsQ?5FGj=0WCx zX0#k7$H*he@<7NR3Wj{4A@afUq4J140h5GD#9$?fN6}l+SJ6vxQgK3YN^x8fql{L@D#6NBLOLOh5M>A1f%bN62iA){pQ=~t zlm?|%d6w73JI}koJIB*Oi!3FUV#`(DW!^R372avxu(IBsUY=u?6PCzv%RS2j%YDl` z9L1zgWImzFO*3wJM>iMn$A$(MYsCvE>eUPB3qEn$Tnmv@-5;GA|IKD z%tU4&Nk}5{0-_6X6>$Y|6VZ*>huDjV=fn695cd&J5l;}W5HAs@5GN6F$XH|oG9C#+ z0+9_!8B&dGL@JRAWC^kuNkNj4IY=t9r7FEE8-{O2jU~*1Hy>hj`$y92Vxr{qbR*7vnZ|T3FR^6DdiDmxbt7EJIk=8Cht8pO;OqoD-hQ_6Oyjx6(~bGILR*1Nq}|ZI zv3-4eZ$=+RFNU$mP-H677nNm~W|wD|WFM+JQgyhBnwXuKlSoMxB%P74zm61 z5WAB-!!XmpvUBWg`#tqt^?mgn^*6>B##hF7#%D$q6KaXKz%1Kvt1H)5uBmhq+yob) zN!%<}i+h5uVQyfqV|sylgQ`+UQB!TxZPRQ)R+trvuu_Xtiqnd*#Uvt`m_-CrLDXm} zkXmn%S)`Uvm0v19S0-5y7PzI&uCr_Hi}g$OOY{qh=NB(5o>#n@x{A7nx{|6T>WMm{ ztI65qZgMp3(eKmm)t{=ci^A+K$_SJ1OaD?``j8-&4D{_8=|<3W6e= zv0JfQu=6b|-cR7ML5A3(5uL_9qS`4j>-#AYl;L9PeE3Z0`+LH%o(Q z!?a>rp>5EO;!WZW;%|;0j_-~OC0!*KOU{=J&W+>_$sLqiYZKb)YzrijMUsV*TkJdR z+w88?xy^H$=QYo6o?)J4o@w?HItd+w)$MEASG7;JPqk06PjF0fOmqNSqFO*LfR?_X zexU1~W4NBy-qv2$fh_}C2DS8Wx!7`{B+hEH z+ibS~*|yuZ+1@(eJKsf|85kTU6LYZaK-r+6LGrS52*&QWa-~S|QeG4OkPS0ckSo)9N$p)9Z2dsr8dQQ#_MBKsJC4Vn?yT z>_03t8^cDi$9l$l#(Bb;kfw(ws5$O9={Vt7t68sEr-}TR|33di{=58dny;GgnlGBk zt&>`(v`%c@g4>FlYME}CX1SPpIrUO%*wNF`!?DJ(&au{U%XG(d+l0lWVp1?u(9_UU z(Ew4DXbox|YAtG8{r~E>*Ke&Cme-Yw%4^HNmVYV#R{ptsCUG`#7V%u_k&!gw4bo&dGo!wUa_`b zE73M+rCPaGrX30z3>pR+0_xS)v#obqkG5s_03k#O5}X#d#bv2r9-|$n9i<(j9i|+h2=dX+vp!>E+x@xmR*8=3dc9uIaDpPu9J#zp}ryzaYLMz9e2WUp8Md z?;!3X?j+vA+`-(&II(uD3+uq16`m2E6P^~{b3Aa|cRa>D#XZ4AJiVYjp}&N`h3VQ< zZH6{Y>+^Ja(y$rWbnHgdX4EFsa@0!H3e^8l+fmz4K0}AWZ|F1x3|_+p;w9q62oXez zCV@$%73CFW6@?Y~6-5;V6}7-aqJyFnqT`~Yq9Y<^A)~OhQ_~sW+1%OEnFxCx-j913 zz8riOHn@zgd%>GQQ@{|=2aJIesb^BRgwKW$;S(WvI4Qh2j0(HMiD6gxbZC3HBfK@7 z5dL4-7v2=!7CsYlhEIl?k>Sqp#;_;s4Y!Ar!>2+!!e>(t;P&9QB95jWOVxMkI@>z6 zozcJ;ARL$z^_LO{tP55LYl4DcZBQ7*hO8l5=q&9FEgtrV@hVILCcy|%w`ZK}U4@TK z5RMnl63!G(6;2T@5iS<46s{1?7tRx2r(L7DpmPHQpbG-Jz);TuUpurD8i01uF41-d z=K81jm-&bLC;Aurr~7C57x>rs$N5+KNBBqkA7LJ2W_f3N|MiUU^!Mz}+m$ywYgiV8 zPN$pcCi)=IU*~;FN4__|!$WpZB949d{rHF0N7hZ&&DK-a)7EL$>DI*jg!~s-&$H&B z=c0$AhoK*_AG2*{yP22I&HrirW%aWHtaX<4mOIkhQW7=`8z+mEt;=7VpF^gS(Kd|j zBK-n=DQX#NSjF&)JbXUh$#Sq-3YrTB%ObKn_`CSc6q@2MZ4rc2YVhA1Xdp^q2ON1}j6A zH?-YakyGq+Io;0X&K1sGwYzJNIFC9Vh4#V^ts&1$&vW(*cEmi`oFd1{!=X@UxO|u# zjzM73BH?l7DmvE&|}f# z(96)v(Ie0!(XqrhBHtl!=p6dy}VWzy5%pq|MUyWA$b2#PzZFwePF_A9fpd0q0HA>!!ba1)GYsR9UM|O%yje&G*Gl2wE-n5 z7nlDi|6V?aIF~rcv&FpC+|Kf{EG#qYl>KzXUg$0G4hQ`M>f6?*EllV^@L1X{Cum1# zTiQ0aDN5y~*K)7sUf18yzqY@zzb3vRUNK)a?b_;4NY87fVY6og3Dr5*6E)%a1V@R)qA&r9&^c2mJug4K@91ii_kw%HqV*V!dpEk&!>jq=9TRipzFFfU*_&MDkeEDf(1Mq(TuZ zhtLa@1y}JT^7({42{t@3O)L7R;M3nx3Y>DY{B8b#+~3HL$X&Efd}rms*k#7m#`Q*L zx?5r@yp_7dt@d=VHyil{p3orqb#$WSrl~4c94m~)NFo)I9kCnSFVGgrL-_^Fq~Za| z+mdf4&n-Tt04YD>n~aRIFR`)4sJN}}^QQk9zvX<;Um)x!%p|NP3{Ae2{4g17u2wNI zD^;MzT8R+BM>HeCh@l7${5Sk8{1*In(yOE&NiqCXcn-V@zCUR^d>%Xkw;(zZE<^(2 zIs9t`z9?y0QYk`*SOQ-K-vCcWj7R9;7Pt)lz2G{j!6=LE!2JB1hE>Ma#8$+Dh;vLs zOd8{<#`&gmo|llx3A<^>6V@a&dfjC&VqfUK>I|MckSnHWRGm>%b~rBDxT6r3kzCgoM}pm#|9h-1A^04mHS$`9k8oJFL?rdjxQwyP+mlT8;*KhTWW?X=mD__P$lbmAfRc4HHy9wIgZJOL2CY%v~c zY@rEh>)LMT%pqOYtBlWy+4UQVi!gGmiMG=82-gVNMw=fy$-ND-4l)C>5#o#MA_7S} zX*+0y!m`5rLU>_xR73_n<2wjA3`mSR4mb%I4*3@{C@3XX0UP3{0+*-ilEJ8nhC^{< zFn`GVMCX-ni|iYFHjR&*(7Wp83%<$V3?Jl(8fOIQN7ph8e75D2OTCV^St6u1P3 z_=owK0-WGC{|_H5h!)J}FW@ibFXOM~ui-~rgIyc>oA}%K+xdI=d-*f@v-tP;_xVrw zPx+B<{!M;^KrUz#Xa#CPlORh#7Q_n@1Xw|eU^0ISKf)i(FBX&tL;|tk75_E=KmG^) zSN=DCt{_j)Dewu-@z3)w^RMtv@K5spE9fG9iBrXe8t+1SCG1O>n$TKyGxkNYqzsaH zBSBi+fTxuoiXEM%!)HM^5rc7n#I8sJBKcRrSyEck4bu0Vxg=&8vpl1DcnhHLagHXg zSKOVP4{00o31wNy8L`o6pYbD$MG!Hh36xScsO@^r6w>rqPu#)q`S8f_s4zGf9ef*l z7wQh(3`N3&!;mmEoE@fyabbM;ci>N8d3Z&*Dcl^M5S|#m5V{ze9-a}7Si`n(pK#ys zyzu;RR1g@%hEu{{1K$E)LSI9=us$3Nhr)&7qHsf49j2@Q=XHz}oP-@YOKd zJD_xa;)JyI!1ZZ|pm)P`Ko!8?&PsR)egM7?z6ZVwz5~7u?g0*iL*O7d0QQ4@;7%~4 zU0$uIPOVL;O^ehjYZbLk$$!9K!C(HS45=|`F)1_v?I{O9Dl{Ff{A1af$Gl)5CQ@=pFNJf zIqev9U0_4nVW_2KA#j7>LX@xKX2AsV73^g!E+vwm!U>$N{)clI$Ph6_Bynr}osKh} zQYJ}67G;Ty@eSfS@s_mXP?ZSkDTS^E%me%o#6@*SovHqpbBLS7BP7SC{Br4i=c`9? zmUw~m?cQ4*H#^E}yE|yLE_{th0IY?svkk}pgMY@Y;MJtornXBxQhT+t+EMMQc1CL7 z7Zp(VRw_Al7+eWYgkMZL1kXkc{QDH{o%Fdau?AIFYA7>g7k+KKCcZ9Csws+|8HY(2 zM;}k`0_8wQ(ibJ~ORfeU0m4%esS%TJypQAiTHU4_R6E3&R0qhUXZ*}4@$r1xw8`+T zNty8bNkBveB9t@&F(ji`Qs4H}!0nD39oc?1%i}ZqCiu8M7MsZ)!ycc!#+QOm#nS`7 zU4LAks$x7pTu*!-tClf%0Bm4ep_TH?5b}rp_+)*&Ha;_y7W%2(5D}%i*Lhfht1=70 zY`K~C78>iWV=reMVZ_9NK!g;0O0B2Z^FM*Lv4EM+Br*S?AK>odCh%f;Bj}w9pTe&Q zDgp|V6a?JOJ;;sYCGy_G=K=;}BA6kVwE@3qhh(qB6}Z-6bWUUD`5)&U%i5MToIZ^1 zsou%m!QIY{Y~$|d?&I#|?&03#+~UOWqIqB*h!@X;@t`~i?>pxQ=Ud?_N=0#A@y&#X z*;lf^us^etOX73TTom_Ty1V)S0imR83)HKn*3@#2ijFVn$s11AbJ#iG<|gPnB-6F1LZ^`!AJ|?LimuK9~q2z z3jYjWFI)#+4=yEm#692wcme!f(gpYrUOgg^G&^a0(hSy2R%>V$>xTQP`-=Or`?~v@ z`;xocebJpn`bjZ(Mcl=Ce@K_B#Pp2(zWJZC{ParloYF4xom^(SPP>JBmGe|PS_j~L z;&2$HML#IYY=L(KgUnvU07b-_VmnpEdQ$ukb02FDbu25UaUdP%A-60Z;f_R?*6uH!~MTub{n&ly@4@SuvYzF{Nebh&TVO@p!?|?lCLD6 zNxq%@CKO3+(lFg^^sr+1iKEH*n zVK=i|*-dOUJBOdgCj)W-vXonto0Q(D7p8{Lg2aB&7m?eL3!*dA#*nC;gS1p#j_$a- zx#e~8r(`!9>>d-i68FRw zRWfaZ_c#47%LJMT^}tspf#AoJw!`1?(h>RA2SH)NS)hmc5!eCpb^1F4onYwgrq9B= zjQHY&;?G4$>P*CP%xl~})E2Y~8^ThsD=<0e$Q2Y6EBJdCokqu@JJCAyE%YHwBbI{s zg)?Co=r5>x^b=GFGaNey%fr0E%)|XbuStD_PC*+`lQ2|lHueJUC&rIbpr)WMVxMB4 zVP9b-AR9I>MX^D8~KGpBQNFD!|vqN%D>EY&p7{-;n~)?foD-)IBHgT&T~ ziv=UdXG`<)bR=74I_*>Onvx&QhL(i#ZRF(oXxdxjUd28|MX1&EHHyZ}aDU2)PhXpI z2L?-D>tE;h1vevK23`l=2Hpoy(A{x6;|Ok|o8&HZ7r6`E`R?L~yTna(XS*rxTsO;| z=f=5d?h1E~o9QldXSwn2Qa9OM<)*tC?s7NVUFqhy_r&drdugZ#np^%WEhsN8C@LVB z&a_fZ&nsM}PLtc@FgZ;=(+k%#SBl9J<2U7-3QT#XEK{xtWlA;`l^2$$n%YesQ-{fG zdR!4XtUjWCQ6a4@E^l>T^3EaC6G~N=6OZaVZoB(G)d$r_)pGR;^-A?BHOz!JWt#kL zHSStB*WE#`b_?8#^83jB#yFEn3^m1@0>(X_-5!NVF50KwuWoa9iZ!NsQD6Ca8K+@d z!z9&Y)l}6C)lAhi)hyK%)pXTt)#-?mq$a9c#cg7(*eJfQ)QQh4yS&AfNkw}pqgzL{ zzOB5dysW&Yyso^eyrI0LyrS$@eyRJrW)xnpQwlx8GGTvVZ+TDtV$BiVZ{t{gZ$4Tu zhTn^i5{%~i_-64XS#`tgh8uFS`joCeKg_=%<2B4^cvE>I=YM6C@{O&LZ}FpQJn{{# zru-7sinb+rfGhz0K-M8?G}$HFRZvClRl2kE0y#Qw4{3xHD90(Pm1F+CsuoeCMZYNH zid5N2YMAyI<6+Ux>>1SaO;3v@CE}dvIZI12bMH3Sw(M_NSoTcPsyS8vt?Zw2taoy* z*4@MHcaKnwRE<`RQ;m&?p5K>0j^BrWQ@%9sN|l6uSQ?Ptj9g9S5k=9b)Ru4_5af~-f>zhbp%PS>Y+Yqba3sD{a!DVnL8)v$@0NgAW~YE?bG zAwNhzUNE;*l{Y|Y)+Xx4>x7LwMzwb&Bb(jG8o@lk8qXRc=;ys7dCl5cuP@)#4)hAO zi`ovgkv}yV>0!n#9lLo~ieX2dW0C z2CIgthO36C{!v9#LskE(=BW4$GaF9kY%9wy-|G<+ms7Q-MVjhj8r9vpvaP1Lg6e7Q zmS?HQOT~@X>c7fHNkxs9>le4Rm@di$4YL}ymr=`eyn3-gys!L#I>Zn1d+^W6wyOUZ zQ6Ey1tb0lwQdGHJYLTyNHOtqw9#o%EzOF2*L>HZ;yjQJO59F^=i$yXK-_3ImFK;t` zh>ec?k(+Ia732hFs1>PS1mmw&s3~e zFqKH%5@m{Np(;^5NZnCf(zL!L*nGRWre#OVeNEr`Pi14u^Gi=k_eDzk6vXG%NEd38 zbxW10s?w%iIsNKCmyIo#>kgD!q&?&v(*6aLv=;3&4X%7?IW7Nw$A(6u8$^H5q0?z?iU{t|IXW#w=h4Q+`HmYK?`|~?l?uk z&MybLLGGRv4+`4JUUGuTUa4|-XYFcy-zH5_raV!Kn>r%$lj2k2)8f9xM{@Yli{pkw zXF)z@KXm(j6+ui8AB+#~Fzqy@Lym}#i;szqiVur>7&q0dN8*hFyC8Z=+|Xz;Bt2~u z>1E!YtkV2x`EatLU~s`Na(DT%LN&#S=M~(R-;vYHI4WmjbkR17wQON!adCI{t4dK* zQ;9Jr@|VS1eyZhV&V!tXISVwK^7G0HlC#Qx;c;b@iXSvV+0ulk)Rq!$&RLmP{zi4Q zvAN9B@>bPS=JSEu4(A+f{3-n`JtdpcaHO%msk*$S^#F{b9;22tO=`Baei2khFO3@( zO@TaeZ#DhT6qRr^XNx2?<4O9q^p5o3>3`CPMpE{Q*9l0*Wz6mBed4>dYc$&nZIpCx zK%Su_#Da{e?yNv(yM@gW5yW{RXk4J( z+dfOz(M}Ec+p`1Yz)aoac3(RvZ5xP})ZU)Jdc?>Q7!6zdxEQlOR0 zFtLi?WuIuxVwxzsDUh7kk&X`?v!Ns~8T=eFJFyE{m>@M>s2k3G?EY-{WT*iKe8j+M z^CMG9Xfk9WYCdWKsx*|CkeR$*5Fv}1Pr^^bPX$i|v!HVmb-oT?yRWxztk3J~<-@u& zORzcin3vffa-1zM4DXEZjd*%q=RNwqnEf%Dn6{YK7;Vg-s>or6E=C{oxHQ^yvGiH# zAXjcXT!auE^BwZ7^eyw9@@?>K@$K^+p^xS^vZommQ#Omn`NGDjhJLQ=zN@|k`Dx_& z`Kjc?^ikZe)?TJ-zAc3YN=)&m>>RF;bv)}__Ac#i?WS^#&Yra~Awl~jmJ~b0-4wSX z~+`(Pg}hS-{g#O28iA z72sarRUjjEb>w;TBJFt}NuNju^A6=5&O4GfHfuuGxU7j; zld{HV-DO4<01Lnc(FLG_;j(pw8w)oS1`7KW_9*OG7%uEx7%J>l7%Xh1XeoF~7KKb9 zQHT@*g;%*E)X(@!!8E3+&J=bPo-aICc((9j;f2CWg}o{LDg7vYDSapdC<7_^?UN16 zh`Lwh&Z1pKyNmV|&B&ga-7Bp6ARHGah10|PLW{zx@YrxyXiC@=?irpPJ`h5Ow}(E5TEqTuUYHp!4Fkfv zL#xBIAUcQ(<^|b7D($XyS6Lh_GB_;uD})=AbI zhQ>~x(PUmDUMv34qBH7^-S}V$A~&fxu^7uLW?eL_vS?jxE{76fQ}7;j+`#A14jGmh z&SYIGeU$CXd1LrwJZU&(kQ!u$27}xHZFd_TMw`)Tv>QD}SHw7|pwirjJ}3KSX#p*t zmPbo1uW{O(i=79YSJfz13G1nCpruk`mDrW*3)?7Ff2qDZ%Rb=&_EaOvLNQ)4+&0`X z+%;S_+%sG;+%#M>+%jA>Tp?T{TqIm3lo(5mcP-cOM=gogqn^)}xyCuhJXR^I7u^&B zqI%Q&(j!Bi0F%}T21J=oFzQTfN3AK-zRQ$nb1GjeUCLL=T-q`FQ9IZHa*T?a8}&PC zb<}~VGUL6fM*2>6PdXFNz@KM}871su!UX1Y))>J;wumr-{Z#USWg?Uq9?)ypOuLRf z#Rq1_S>mWai+&Y-EBaCNyXZ^N*P`!5fJkv7HHiwNCQ#v22o*|=ry{6-ilT~>t-Hzl z$gQ&B(*GLH%Ci+)6t&7S-6|zQ-LLs+v$W-4%M;Dv`XZLZ0dN9UHOkVz-(|*ya$4DO7`dCUNI>`@Pwq=jyhULAb zpR>xLc3|xk+i!ch{kge-Fy2;UiLx}>{q_$Iu5FrR5qqM!mN42r($Q(v+Sb^fItNQe zvU}PNI+ohUSvnlc9B}7q^M1RYV6;56pEP$nA~t0|TVK~>Q!LGDJm%n=vdebo5Q*3E zRb~Qlie<88wS#41oBp;7oWsk|tOC{y;s$e@>>ufehI4YNVymJ~S*}~HM5_BYKWmn? z9BO&0IZ~g`+S4f3ZP)G6m9dW4Uprqp@!q{f`-)~|Z>_u~a9Eh;b?Wu%4Qh}nEmD5G z{(`y7eAn@p$s&S?j@54}Tqv5Ky|Bh*a2whU9>Z4rZuSLyCB6cGf&CW$Mt_EIny`zo zlQ4xanXrtol<=ESNJt~j)w7BJ)AuAUX4er$vEvMrhz7!W{UhQU;%VY9BHg?yYJXH8 zd~f_f{1p5k`~dt^yv98vnGhT4Zkm$XZ|EEd83BNt#sT$R0!ODn3tL zP{Pf9TS6{fo{J-mNWzokGKTbVL%L#>qDooRw5_SL`FgXUrA~8K(_SxZJ1AAin9?T= zs}*$RJY{jy_9kERjpl7FLXEdx)Hc=EZInoPjsMoS=AAd5F`hIIj_CX9vHrIW%MuSY zy=d86-y$0-ecd2Xj?z^(9&WnREZ6L>Z)h887;89g7-G0?ykQ*ZT5C9=J!Slu`=#Yq z%ew}#W?#LcjgzM$9Vltf<&_@IU1fL{t(F~<FkQH{tCdFq3S2zG~Rl^rU%D{WA42X_M@*EU#g7!(i#lhEsBi z!lBr#_@dw`7b_R2FzTV|y-mHEA2-*x>}hGxJl4!_-CZwhJLMjk^d)6KrLF8j?Ir1d z(zenmr5*S!%5!C3@Ivt((SxdbhL%~z9w*qyIH?_P+;3t=OuaIu1Cj5kGj z)TMv9P+Wu>5k#=yKjEk0-SC@9FOt3`f%#Z?HoOA9H)$+<4tyZogzzF92pFOm(S}$A zUjbhSk020ja1*>9z65z*eL>x&zNmg#!6<%{z0Y{D^+GE!>u?s6TtMo~K9)Uz`jc9k zn`i#*T%Ju8lM~hy>L@NTTjUV)#MvUgm@29hQAAuZN1P)HiG?DO$Sj>F-e4Pn?{bdB zzb>_kY1Rs>TWS$+G3+FNZ>uy^8K{xM1)`sA6$Yo+T%y+*bY`8_3_{WP<@}}MCE_1d zYZ!BxKdaU<<}jDrv%~;hlx~A(DIyMp)6Lfo!VJXFvJPeiMNl%A{D53T8B0mbZqGiF zJ&<~ps><1rQViZ}2xHNe?!x39;l`<$vS~#U#ZYMY?j3 z5~1>_uBzG^vl=HhercSlwyP7HCN}*Ws&C%b>}w&lM5eV6G)FZZt);D`wwZ0Kr1`St zvZRJk15$dVVSR`z-!2C#8WmF&_Z2wh5G6|0p}L{cH)c0ZY5d+eL+w%{nx-_33N3%tU0L(wpO%ex6N%^Db15DlO;9; z8xYdN4eLT2`8Ii!LZz6ZxTnZe4pt_sysGOeT_dG&a^ttg>1wAM-ZZ&sWJuP$quJj= zZkf?S(j3?LTFYC>ZL{0fNDE~vWf4R}j|PtxM&OOdGozj+%efPG8V0N zZvV9y%XiIi<+_i!Lms{--#gp8QqM3fGr)}zW4iv3ab2{;wA~bEwwR}xZ<_Izm?hKN zVZCUru~BSOZJ%s2?XC7S$5hAYsNT8L8F7(avt0S^WA09m&_njl^{&%%4XX{A#$HCW z{x9R^Xqo8`Q?l7ose=jbWQ*`)-?O@35mBvm6tm7Uy1PPZ!-a z-$iquaz{Ke58eBlSB!iII||#Lb0YQkHgyRs^hWkq;okE7<*<%Xxn1h8y1imo`5)z< zz2dsB-d|ZhU!$+0qoibK&Z*SbvO|TRWnW}#3Ktgrtl7}ME0%LQHQ2GcdQWvqLuv!G zA*$|Ht4i7>m)J8Y0m;AY8I)JDgM}}uVSczD;lG{LNw|ey+;%UE4dcL|p?@R)M5Zyb z$XA&w$Q;%fRy@Tj!LfgntYcd!ZGvrr-t0#dlyo(xgnCBuhJh!!q%S!0sDIh2xft4J z*$i$AEjCqpg?os0S{mf_F8G^wrohjyc*R~hyjsK${-p8lrMV?vvko8OoPmU)(^R+(*u4QlUiXFE1H zg3b$0xofja<-Y9hPo$T>Z=WZ{t7%8M;ZD0TSl+xFB8VR!u-}Ow9L22Z7Xds z`v5z~vC+}y{Kr}7+Vab1eZ}3|Q|+nKm3dzQeNp--yYsf3W#>f?d0&3z6;2adMq}C&Vdmo-?T(V5cg&623+xgEQcKp+G1U{t7JJDZE{Ht8gBZ zNdC(FkGzXrL;0OkO-*FdNKoz)s)mcA&F2oF-RJJ5O(?j;tESK6+Zkg-`Ax7kc-uSu zF3T%d1LdBeO3(4Jd|V&fr?idK#eBa(gPC^bL0!KZs_(G3e+|ud#9OVLq#UH|r5p_% z4tFrG@!~|2W1<kMj(}v)22gFNN;!b}opeD~DW9IYJ4u<;C7;7Cq|6f>23=?D zBfZnr)J!%#sOj(>R;*J@R1Q?4Y$b(!ZXC@{D-De*B$q5IOs=|4vlRD8KH%8K8&R~c zcz?n8;+{$wUq>HY);Ht_)q|#1_2=^#SF4{CvvslE9h*r%JJdD%z0|rNqzmLI1xbph zfvRrM^z>;}e8vRYKzLvJtkjvQM-+p718NTGT5a!P$6$-4JL`4Xo0FT`2N6z0)@KwV zCCD`yTQfFgyoh?MAV= zoE^E+zD>PA9T5){Kkdp4fA2~Pufn)Ox7wW@y_g?Kr)8ybZ1%L&N*1>R(Yhx0T+{rf zolV1K~Hlx-uy@U<^zOgv!?iDmaB54eFyMK*J{E ziYUo+8vU*6QgbRgjIKj>HPWi9JFcUx)yqwXF|SPJ=3(Z)W9Iw0uba~>xJHl9+_Am! zY-7Z7ul7jZ#=P-)3-b;s9yflm&@g7}wqM%CYn<`a&cH0#4`KsGQdo@sj544fpn`bo)o302*g5zQyK z@ch*@Sz~Oc^h1NTWm>I?S6{%+e_>x+TV34LGBRtZV?A$BQQzp!;#~zJiqCZj_-uOL zvY*lbazWNKdTajg?a@#vW^C2t)^2_dL)<*RdR9rHb7Vtt-iVIDEdyJZJL!oHO>oyJ z*Gr6C_8ZaIytw&#APzHL_^7?RdO*qd+E8u2sN*{(g0i4yponz`^WWwtNv@0CWJYN6}4ee zIMzGd8PJqEwc z7S_(_Rx~^Uw|D#uaFX+qXG11I_SWC7&u)mxx61d(@77)SS48bi9pwJx{;1K3k%Y04 zFJVOjtP)m%1gSJ z_^9w%;S2dV&{)uG&|AyFz7Y8b@}iQW>L?x6xh(WB z_!>x($FZ)F<5}0qKbcp_H2ItQclGD$UepsCepoNqr#PE@Uu#wqURInWS0%(e2tvbT zCYtPJU1lyLGg*7|qgX%5MoBii!Z2U5hHav>3N{M5*?SBm;|t!Rk zO*DwTkA0bRoRq@D#tM#0TX{VT=#Djxlf2UfO1|{hQtk|W8T}-G3O~wVFgppsT6+X~td5j*eJNWW5!K3THx#ak@QXNI@5;)WworOk-LSmz z52)&2Ro?WqzE{;o$_C0_%1+7||NX+B;6JNl2dXLchLSk-Kpr+NJMB8|F78Cx1NJ4s zWx++k@LXg4dE7-D*|*gPs!7$Y^sVsa`!@O3`;uzFx+Gm`UA8aFx7L@S``wr8Tjg8r zi_>lML3PW0%Y5T1Hv2aCAi8AT|Ekvb;&qFB3w^)&epG+2mif8$oO)A9v(2WV#xzTP zvz0TIgXnv5&Zd^cEl>Dg{8QNz*<+cl&{}9IY%2QoT2S;y;qJm+g;R>&6)*N3ui}=@ zQa0LZO6Ds0P5mhYD4q1zf>(lp^qsuuMu%Ff& zOQtCGRn3wMY#-%6fxWH|-Bd5~$0jR9(Y0EVZ;LOvCPkO$+vr>8ORNFu5_PJ&CBDBy zjA(b{LG_S$dh{J|qi_@xMs~6OV=g8au!gg~k+qTx_6*5lb|u9xSS0}17bz!MDbh(C z3H71mh=j^irs$=5&O^?0Y7sY?wn8?T>!S^q=JVtQn1X}SCSGT(;2`g4K`~!IPmwL8 zkLFVtYS}DdRQ5UNjxZ$JL_!G`Fr0M=$wP5nnm_Gz-Hy6hb-&d?cpqu^fvf7>*<-{6 zZHm^djc5zCL$!Mn%8=ugJpcNHyM_02KBscKO1dO*`{b9C*CVeeP9i@m+{pb2g(VMx z1qt{BecV6sv1{@F#b1cO8t?BywB3z7p|d;Aho*4~si0r*QZ7%$6BM+1zQ*sjHpRtetJ3s}<00np(`Vx8>dK$_B3IH1LF2n(BfC^9mC4drm_6u~N z15AJcxPe^22{-^3@ILe*#04IQo`gzcz?+Z^cooVAktp%1BJk&5D_2%c>o^3 z0c_x7=y}KrK!GBl7{CIbLf=9)fEu_Ox)ypELIT;qnGgyn2h2bPU;)s;y^sbl09rr- z+ztr=5r6>1fD{k_H$rzpaNujm2P6a6Ll__l00D_WECcWWw?gSa8juO-fh-^as0OM4 z9Z(5)fjHntC?5D3f&phk-$OS;cSB_W1TX<$AO%PTjKJs6ARq<|28IA5f&Rc)U=%PA z7y$GHdI4jA5x_8@8yF581EzM)1-gJ{U~=b_&h@}L002$`CxE|zq|VhqQw-tNv;i}L zKEMWG1`q<;fd#;PU=}bNm;%}Q{eTwWI1mH|b&dy?0`q_#KonREECCh)zXK7V zH!vDl25bbvKr8_GfjXcTnAUke^dNL3ax#1>+^g;sy{faiv!YAe>4;c5x2qSbD?2aQ zvr@mwW1V?&R%dG`N6wW$Px%{Y=^WfyR7?pk$ef?aPMDq|LiIxRMr}-aDqozrC=(Qa zDV_-9CGr!6iPA(-qBv2KC`cTiyCdPhoF}QuxGOQ_9poeAZwa5f>JXRy0AtZ zHfI2-ik%JXPx#Za8$S*{2VN}vlD(ZZFZpxZZR)MIfrACL`LiW8TR%&CU;rfh}ZRV|A&W&M|RF>6ShvVB-5&5w;M zPqjrB=C)Sv!ix}NoFDneqBY%@ScT-llwuOxlwUBWU?<(d*vq(@LQ0+j;Unsk6H^XH z$;ne80z^Y{Qp%Fle$Z3ff>pKgMiorw*D>-08yQz**{#c)wwIV2mgvvqo?HREe_5Y&l7J&H zGq5#K&51OyP0s2mrj4f0rt#*n6>}=~HTJV4T0PeN)}Dc{dE!<}YYf#Av-RQLwJ}Th zEqeRYhOGS3#>7T*OASw&|JmN&vYR)p7{VV}7S50H)y@eGqg%$dZgAQ)!6uArvdhuD zyt#jMQr(?uc**|O{J@{?S)R2mV;h(J5+hs@Hi;(XfAZ{ZfeEg(9B5$G$pn8eV$4qR zRhda{VPRWWG;NKQSQ_$KgIF-i+1%6YVU#6;X@+lx=ahP5X)clZStkuR1G56#0zDcy zCRg=T(-+eOGo{gM{nMId>lG+3{Fdh^aurEht*z*mA-4G)VlI=`mphVn&o-fuRU&9H z*dI2eR-NZ&=WnK!HU4a{wD@>a3S{|T>>VwC@WvO#juhW7m|lFTBZZ$pA651zJ(54W zY6!oRQSKbmGOBf>v#lx1HO1v@UeP?DdRWQb>et1Hl0RD?@DI3Wd)BoqZG{H-x~sxw z(d7Kko;PYndB<1gRApB6#o=%(!Kc8AIuvJVH^0Yb@ZaF2;H3IJ*nLT9ZV&6ijbV3K zA7-K0sMl?O?J(^l5uun^oL8J*oLek_u7|u%$^@`1j)3;JM%wPAcbs z>QB`sRdxPZP)|@FqR&vKe{W=(D=iYo5a$zjU!Bz(48=mUob}8CGL3vN#_mVyDL4Z{ zFbhd0?qu#@+DY1N-mL-y-%a06U(UBO+T0)beRMyB!$hk|e8HcLgO)3}TexeuOSsFp zJGdLTo4EVFbCD;ApNQ9p2MACaBJC3bmG&U=81Vz~3c*1Chsw%LL3g2R(Oe8Dw+Q_S zrAI$Rm19;Aw_&m9*kxjJ8a(YI0-5#{5tsG`u{IT)mX`Jzflec9UD{q+wKhkbD{-bs z2_vz)a656}!~kqn-0HY_ar5Kemn}(I#5}<67ND60yj#32{O`h{BA#GqD4f1AEhYVb zY5USYsPZ#Lr#sR!)Bj65md?zWmA)%2KmC3hD5Ef=Z@MOy&QE`r_HX)6l_}%9hM`T< z-q18?`)Mn+@TMc4l8PT<(z{&!S|vvc3?79l5Q$a&I)PYdYFA zr3uWsOO~MTpbnJy8|18yO_{~38ZYTlS@DJytUOA3^9i{g^*3s;gqZudNXG7O_&0Zh zx3K{FcNAKiu?*eI?ZS!3*Yj6Q;HsGeuKV>*YCn0uLz zniDKeNoY6vEh-_uM^UV} z)!mA3*=1uiuj=Sk=;QKe2W2a`(`l9v&z@Z~tuUdrwWP4+y8T??>xNZQNuIT89A;WG zqZq>@=EoOQHNKUC8{I97YDe-`7L?|ZDW{15KQo~ez8u#wi)t?0lPG!-30ZPkfHe~D)1L%b(C>N_?x#6ZPIimnwM zZlQ(5HHw;UZ);vl<7@3R?K*F@;5_3(?W2}Q`DYt8<}bn+vrcMnwB99tDmv+vb%3%a zqr9kvs6gG>{CE;m@>4v!@<8RP%Hfr_HNzCcJNM(j@t5O+h)-E-Qx3$@lBYwU*_X1C z;y2;4+XuB>^}Y2qwm)qziM2D@4|S*`&d9*7&(2+O`)fw{NBRe7e)_rQ zxX!LfTF$4kbJU~wk;HZ)qoOstB^%m->^Mt(U2{dZ0@_Ai3BADmQujv~+~aZ3E-n>6 z4Qf&surL(7lA3rh;c3F&vMxd{p%J^M?0LdX_Ufv?sq>j^@@Hmj3JXlx$L>Ly$-y!e zBsh0Dl}4M(9ZGx8-A_A>5Antp+~eIT!18|-c==xXdcKP>0{e!aBKj#}3Jx&(DZZCY ztd~biqKas#e?#*xpd*)}8=K21;g*ak8(a3I`f2sh++n$sawq4i{I&*l?x{dwel&kl zeR&Q%Fd)|)gIsSR>kc<;fS(4beG`-~eFH#`tCnz?t*Yd2?B52XH$PGwB z1Ye9R9wo+Wr-_&UO7h9Iu_4+W+U;7h#2bYnuERa>ThTXJH&oApW?U`tYuoU^ZP6Xk zUC}+!UhN;+*VuYtgODS=Cm|Esu_0^+mO@yTg$-s0J>alue$GOu3#7*_NC_$~B6Zu(LbpTjrc8v7ioxf?=VGH+5N-?0l4I{a z8%@H^!5&oQ;_`5(^-|#uizU~ZD-+2@5=djWqaNqa@#Fp3{!{wx7JIHO_aWq2cx{C( zUx*cB`}$sGzpD;G$Q%-9e&zh`$7-x^85D<~j<*s9r2Ts5zzzcs^nLecYes*Ff&#Ry@ z15ylmoc+FfaCe_>RFCD*dgKBXozMrHNyx?`30N!?KMni?{1g8JKdeFoxu1>Hupw6$C_p5Yh=4Yz83<`x!s9 z;tT#>cBY1aC1O9t@Q<>Ygnn2h-6|o9G z5?&4~&(Nf6w%~DCJT}-S?keqymwyGn!}|&!W_uvgT6_LC@MPj7qM%e*I-;u=uQzWl zFCABJQ0c!Ijg~=9r@PM6OZQ6uTJJX;H7NC;jWL5|rDc_6pwr>5_4L#^yl?&Q{P=Q0 zIj;P;g;T^Wq83q#L`8SJx4lY#6=AdRXYNhbHP(IB9ab4ZL%5s}LV6RgBrFz}6IQ9z z;a=h%;wPGzVz5F6yPmunI!Coo)mS+l*QThioSZNaQay#;G%hr9@nkF$5aq0p0OLYA~Kl4n7JQh5cA zaJ=4&#S>1{*I+;D;|X8s3rVfmZ`nVyX-+bj&sq=PBe(~?4~EtB=glp^@pHkWMC(Iu zQvMEJ4&DkL4xS9|34Ti{E)FKd79@VoEkMyxuaL{irXou_Nlvo!5R_k$);2d|UPhMO zinHUY*$VcLqVq+w+dK+~!UWcX8^P6JBY0g!Q+#9mtFq3t**QzH?&5b;W7`L}UH85B z9qITzWnkK%w83eyG`_Tv`bc6xI*}RN!_-dj+?-iORmfv_RL3adt{7H@+z~e*{#3me zd9mJu?4`Jf?-7YcTy6G-^4!ybqWtcBMBqltk%lO4S+sOXoA6~k zlDV3HLiecaao2a*$hJ?Ad%l&0UC3uLdtr0Yp29~mb76ha&ce}PC*)Mwy{=EPkFtBR z`!YkJv9PYFwrFc%Y)j#`!uQ1=iY<|)MQ%krzO0i^h+zwG8HhXZ$I_La$I%DThf%+2 zi_HgTA=44J;g6(D1j&*v)` ztAx+_UxkB30>LWA0gwZ95aa|M0*xj$Nb;oF;!DzvH7q8ZDNT{34AKwQ7u!l~+Z@{+ z?Yf|@O;?zL32~TQraZ+jStTJ#FG-rD`(*Q_|4DOYUfCEKQSwntfIspG8@@S~d3#Y} zA-b73LAo{ZfCY>bRaz>YmE+Yu*f_Np#ty^7FT18eA1kFQONq3Y2l-lbwx}kdC80jS znZT-e4d!qrcH?{GLv~d1IIqBL&YJdB?SDjdkn;)YiSEQfB%Cnl6?HFUeqv5$5!id! zeFet_^EenLjO*ae;=bcv=ecA2b^H~=H^T2ChTu157SqX{&Aq|%@Jk}r$j@ji!URVr zj?v84hTwjrjP0z)ohm*LFC=IrvWm8#vUe7QZkC}VL(ZOIQLwqvK_ALvV`{$Lv#6$<3torHv@~hj*g@&i`4kiawiP!dNMM#{VK5BoYc% zGkVw1$x_lG3ywC3cC)}hUq?4E)-aYN=ER)@XYbP8$(&yNysqtm-t4 z_xyymd-1|HueckGpU#`XTa}$A?{4|6hD%#Ugw;Oip0nU*I?5PeYZ2;rQ7x{CvC` z{}k7lV+wu4DI{a+nE$AQE`_Sox*HuBn zcFjPIu3g$*-7abG6YLv&$=paz;;x`(@a8|mqF(7 z=JVFcm&s2lk1LNTvsLI{H%isL^g_t{WPfxK;)df+dbx2-(&NPCa*OSL`h)ak>hj{g ziaDBhZSULmbk}tu@XX|Q$+_j-JX5YjbO|5j{i*q*a&gKc@vEwLRm_TI;&b?7zXUTY zH(xg~i{9fOFop9yWm5NoZbBR0m*cwyp4m<9LFlnKbrNrnxi9oiEM)@xN(wc38ia?a zOHN2hPKoB^$x4JLT*qBwWmKUpX8`_SbadoXI6Lu5*^{z(930mTT2Qs5hN9@Lpep(( z((rYOwTTUh+p0fM-cyEarfD{7GV_pmBQ(=BTQrhlek38`Rs8GtFY)$zTfMd3QeP*= z;GZ$~kqe|NI57wHhUA9lwDPF(gc7UDRAE$a(?Q&w)LP*rDW7+h=H%DYd**z`T_YJt zPW@kwr>+^gm+4bTTi^{4K}t<_D$;Fm>0cXO@Q-(?PP6>|7g{LL<}G2v-Yd zh^C7cq|K`DUq7OLbp5z`Fl?!Rm4B^2P;L9gA2j}!wlM7#er|oNeo(#Bzo7m?y|^XO zZ}M0Bcl*b;{9fOuel$_--|C-9oL;}QeoDR85Am<4|0ze~7voK~cj@obRfIZWIsO^W zPCSe|f?tVWjsJv0;rEkiQYZDgWIOd5t%3d?=dEuw`1En68K(a^0`7UbW^ZErFifl< zaUf<++}yasTCcdPa-)A|^#lA9Jh=L;u%d2hWS4!n-5h@1MJb+>a}OWE7C1*RQ^_6d zy9^Ymffp+HlQ*9}l22mDb+?3VqD;YD#^kK2SxVeniiX&a@Dkrf$b_LHeY;p)#a%B_ z@^aQOdyw)|ugeCdSmg6r6ItjOn)CCp>_5{*kKH>(|h@59N z?>K`3I`9{WrqBi%h7Y!vDJm6VUR~}}9wl{RQ96Hk=-@B=;$QgM<`Kjt!rsIM?uG8% ztap5hu#I?0mndpiOclLtD;03-{sDr&^dSB4Wf5{Wz8llc>K1m#iaTqFO}UGix0#bz zN7)g@*tT`?ss3?2zTiT_mcxkL`xo`1U|i=RwKA@3uzl~`pSMBM%oJE?7{ z<{oZO<(=r6==*48_uB5Qh|`E|2#|0iVm)F**$PaJNyt@V6zmIM`QnZn9a+e1WPQxE z+f%NnQpE7R;PVa1#x^5FFE+ufP1dv4v9?#XiS{}>*fHGs!g0iF|Av2FE%Z0+TS#`={$1{nS;K9+FW96 z$Ys51%7c!9{?@oikH~tVAHYITQkuKv8q`UYN`heH45xD^N=~qcP<(>l1+DDKhR=ql zlvu5?IQJMUK{}SBrS6k_&{aqe)CdFCz_h@oKqaS9eX^vhVViM&lxaGTj;k(&Uu%Y= zqv!^7w2@goq~2)%K-@ z_Zzay2TGZFkg9!UBQX5z@y%zs==_bppz=SY-y4iA^J+c3Nd@BkkM^y#v725;aj<1f z)^@~A#7M_Z-q@l6(L=>|3#JtR*CFQz>BGwsWWQ(aqj%=7OYK$-3{_xeR=sK+#1Aow zo2OLIFDZ47ZBXZpXc^wR&e_t0a!qu-!4%6@5^c>(n{Nk_G1G;8tA~^%)J2;^vRlIjq_f~M=9h!h{L|qa#h$iGOYuM3}6heEa=Kk_xHjeeS zsZs^U82_ui*m5U-f5Ynhc^FmJ#nvmtJDEKAQEyz<7?d3~8^x$Qk^eOxEV(7Vr5e?> z3xm)8Kt#80&b{2Ur0GD@_$D6u8fsICq2W!_qQ>+rXmcg%H0o4tOdPNWW(2kbPLy;u zTtFvO-)K%l_e3|Ldp5GG@1qZ(ZPmvy&vHLD*JtH79%%fx@oDYxyd8Oy^A_j5XcS<& z1Fe`+^beF3{T%fvPtCF2{)@lG+o0l}-4S+Fys$(Vbbv>K+wT^1siEV3L z+?o>jfX+oXqsHg2XxP=_&GR;%uD#rHJAYrps{93*vaHLk*N6#O<4{i2T-5RWFZshG z@50G=GjclXsCJT=s+}WVDPAis*N)OoW7WnVQ*V$@L28k)G0Iu;JIdQio{Fowp=7D1 z$ww(?%5N%fDcLHHYA&)jiO*)R%h_sn5&IVXCVdTwAQZ6sYx11=&fl3#axX)-;ZOD; zN>qSi7LgSCWRu>q$wK3uqMgFu#PT?yDT+9 zOIRYVAe4uDi=*PF8caufJGUae>16$X^|FdoEZvFjm_TU8aw>SS3U7e^7Q}8Fqt&$V)9q?q>d4XRKL0p3WV4orV=1%T@ z#9mH0TKFu7+C7BSNzubcYG!C=5U6Ms9F9WOK!+Ow~#n!8%Mv^g@Y6kCXuWACX% zT^sQ8uy74bQ-m$X3cGG)BOq{yGJ2+Ndd(G*GACYK(4oi?Vm=k8AZZ=@G&d@&43=;biJBV7MJ|rXErune7 z*zeh2+V*xBAWPI;rakzrERygB_9m9aUZ+!QA*C61?xHtyxlO|U? zL+sT?wZ+=u+HUcnnD}y5lD0`~*0yN{+Amsz_*+)2P0`M5&nE!bBODIY#a&+y6{sG+z-3;9W-3#3Y-2z=ocg}dEE+!aD2vu3}m^RP@1Ezn2mi{|DYZmhJ^Dvh#hC!o`@vI^PwQuS6F`FGc@}s^J(;uto>Z;v`b;j9OqMKQt0~I_ZR}#> zKa|U&Bi2A2QE4{~=N|kaGX|ct!0bDn2u=HQz|9 z^K%&rS*PrM&J+F(VXG)zFq>hkOO@OeZvZz!ic`GV!1Q>Zd-0&R(`Ki5TzN&n$)jnVc=>v-)2`*;Tn z%K2P+vTQDW7(b7ply%8I{h}U5ez6cs;lYQj#KL%9&E8o8%>VNM^W2 zXcb=XI$rcGemb#&hz!n9r51lH3K&M|<4r8{cJn8*$+Fv0ZNu6N9cLUvoo}2L*I}32 z{nTyn{Hu$(yxRpIyUr9Ti_41tDY{*Br|4Eu0b9==K?cPM<4 z?!mAju%58quxpjS_!jJ^?3XEl&O-lRID6OPn%bE7Lz${*y?ipVy!xaTPM2R%UR4&T=qgOvsM3+8q0&+I6@^aXZ?4IrHTl_Nunn zmbO#S>|%vzLK_dC&FR4X8x}^7<5u7dh69EI<7lHuf7ggLuQY!)ODqel|Fag_R@EABpITd13_Q+MYY zW*Op)&BpJ#UB=&|0u#tuXFVLV;%y^rk8BqE5Bpe0EIJH}b6t03xpO_=Jy`E#?>T+g zaLm9qPBzx+Q%oH5I`dbv*|OQP*!s+xWgloSa{S{6JFhyeu6?cs_cQmOp7XjoFAGdC z%rN{gG#bC^b{H2%d8Q<*&w9|BV;g3BU^Cgj*+)ADMTcUsuGlpf+D-6$^<;S`dX?Qb z1y+59ZL$t6G70Zsn+=TyuimZyVf10Gn>br;Ltd?IPbV{ZmBN8OYm~Qx3G(Kzw0Ql4LF!^BkrNhROm0-Uih(CSX7EF z!>VIggyyNbS^-8}gd-96;7_IBGv8)bu>UE}3XT?MYeCw}8mqQLE7A_shO-*8q*-^e z=0t8nAd$kXo5T~il{ll}pn+~2V-)M}88?}7%&W{_%u>rjYmse@?S;)}Pj+l|0M3g} zg=@R(v8%#;!`;h6_cZD5V>R9x-q>oKQK%PEk;`!<-G^=v7RwUrb8EJJkiFRPuOs5T=Crx?yBgik-3L5>>-=7J3`{i4H2gF)8Ncav z8h?xOP07|;>me)7Hr)2mX10H~k8uo+=D2RSFm9sfnpT_UT(~gslR(G?z06bSWTi4`m@Y;o`!iQLj0i@q&JZ$N2Ic@dY6CGM7 z-YwG+y)h#@BfmaXee5YHc?xvHEDy|Qf--5rR8f!YWr*V1xvzxQ+ocY zUSCH^#7yaJNjkb2U55UNvY}s~CQ9!}SnR96V08z3Ff zIPNCun`Xk179InP6p$aq$?6uKJR$Cp;s4aos_WxlQcWi0P8!1tlLsP0r-YzcG* zK2p=;S6`*DZfE6!%Kw27RZ&PU(5SYZ?OWTAwg1%~XwR$6t(?{NK5ITy58J2Oqk00} zuiC51v*ug(TV5q)fDnkA@CQ;lGSTxas_WjsWRMTB`%-!d(wOC>6z(FbnTw}Q;l^lp zc()6Td=GsE-@^DQ94@ldHO5$VrXv;xGQqPCSAc{gZouzLX~-{G)m7h%&K2#*wge{= z0@?pmFkx#nEZBb)|5mhR4^_-&Wm2wFS0Y+qTR|yc9moLM1cHF8K)=i9u#l9S)K!R9 z*ftOptOprEn?b4IYS1EiB?P9^LguozgSLPc%URLANtz@HDfSo5L^slnj6Wk=lke7x z8eSp;CGwK*fE(d(J;?czx?g@N`FQdMfE>k%!(VRw)aLEZ2E9E97gVu*Oyx{MG zuLUdV#f+7V&o$JDD58&ij{hU!MM7nhw&`v+yoa<$R*$?Mh#q!OPUr4+ZY8qeB=sl> zCEp+ZGfax5T?k$Y9toZb?hOVp`=I-w7Yh$$RV7-A<`d?gsCA#ydA%JV02BhnIze+m8Q?T&h){aTPzyb+I;WTP_?6 zUxR51jZYq%JTAGD8D>VAUCaoxo7sbDA{)s{vYD(QSCS3nYH|fxM^=%wM@^u{Q)d|M#sjQ_tPau+&`!`d$xzN<&H&CpPJhlIPCrhJL#HyR z1ymZ9O5G(HkyfIRD=Ohta5txnqvl-mtTnDTu8SEr7zrk#Dc6)|I*UGo<|pxzVCWv` zdh~F@U3C@&1F6#t$hn2SiPj+_72%2-_zR{Jn4=hh*`>5A9m?0r`-(R6LGusuWbnh} z2gxEuyE32*DtkhEL;FB`L6s^Nlnv!Tlav;y8ES$Wp}UiJCDSoRtHWlrUE;(pbFOeM za{lA|%lU^hj5?e;lsbeOqYkEypuR|Yo|FcHgAkyf!~muVqd=nRUHC% zfK$|iz_|JZ;(o$DLbt7#t*7lJVQL4JTfn7p>D)f>0q}nC{_wu=H`IBuc5Vmv*XWzu z$(;$G1)mL9(X=6&Jvr8X0hW<`9`-jZJvjzh23ran3>j-5XFo&uA0ee2Tn;G*l|#$> zNT0!v zcJy-ecl2}&cJy`ha}06}a138=thtK14`7*kkUPLdX zhjYG5f3bz&-?9$THAo3cjFO@ThlYTLf?}X6pv$03psS#Zp#MN>%)F}kRdcICe1H#S zz!(#qkQgzA=+qQw6q;Js=9Jf%MZ`o*0_I;rCNYB;kZmMvAbfQxiHXQ0B;0+4f0cio ze~tgfjr5>AXwL@hN5azN#mR5buhDq)oRkLCYtJmjY{h-gGwf6B$huK=BkER?R*`-d zVMAPEns){)<{jc4>Qx};kv3^&V3=9giLrl(uZ!Lky)7D?bRu(5(yheXiQ7_sVtS&w zQBl;)6dP(o$}CieX0>Kr`P%X|<))lPI9Jda?2SK>eY^Zt`OWgP*^=_}m48>>uY6D$ z%U+eZGI2xV`ozVFixO?oDY*QEgIO_R4`MU1oIH;5TzyDg5~vL<2>cNk80cBit3n&g z)*xP&pHM5v<0)^;-<7{F5A)L)Z_0;om{c`+8+=B2kBXkbbsRVKEps7x8I2pQ%_aMZ{ z%)y8lVwUN=`hxmz^*`#(IY(2sS}!7^&1luamx}mmq~dA1=poA zUU6lz=X=ej$_LDc%$?+2@gB4fCl4 zS})qQ0z18mF`%h{cHB=T2PqFIHtMB@1ymxfcZ_zuz(KEO2%6?X7lK+d@A~igANue6 zANcS1ANe2qpZNduAMj6MW|Qk!*O;rxEY?^Sh+>xHvKL6Uu)~y1f}ZT#l)qV-(it2T z^|ZtxwR4_v=1{fVT-rw2SZ;t8S2J09gPU7$Qrf}mS8#@Ru7IS}@XP2Kvi0;?{1}&U zt4uFjE9@^D=YB5iEg}o{Fft`i#Y%jAk82DqiB(8TT3z9UzJx77+;j{BT?36xN=mwf zxQy6RE)xzG?52PE)g4(=F{$vK2C0qH>a{Iej&_6i5#l@IB_b>yAa;cF!(HJgU4$?` z91KgtRpI*Z;BZE`fB0KhVl38M_Dh)@y!8wkp#-d7!K!-l}u){DQ>|OK~`lgd$i$|;TXkXJjD7T z8O~u*cT1k>N~IHOH~~XoVqk5coO7h4tzn~aPBh>2wd!JXXJd?7?W{3YFEhO~8I&88 z=M`%6Q1f~7z1&yL2+Qr7oJN;#YvY;5u;p&;;k*rbuX*cXxMp_fGB3H?uoEv$H$h-5uZj3-^b6&OPsYpC^4l zx+f!=5z0u(xRL%eeKuk|f}3H_SR7AZnZ78S8OTS()g4Pxh7ri2~!s;+I z)Vm%RoEl|u-_qvEI=DJ|QR|iZr;dR|Z$mk9dZ^6&pRcc!MEtB77Cgm;kyg{C{+-hI zK6PkHV-2s7!6rR7uWdZz(3JQ?gDvZM1B&}}Z!g)&7+UgIl+UL#`&7h#NJle6q^{PH z+DGATekMy49IKllFSHK#6%mI;2Zs8Gms`DoRNDxfOjaFS5d1eXR@klkP5!Mh8f=nX z(A_CXYuFZkhuhJBwh!_9!?VH(k#AL}g=Wz((jwoM(1&QLGu=@~toPT7mExg}1i@(5 zvBvYEYoy)2#iYOD;g3~&9J%hpq&K8w$-iO%0*3gImWhza>ypKCb8>yMOfHrGqDCZN zf)Nx{gq4H?j)qu)80bdbI-QneN?t@=tYxJ<$Mw&?V|fgD)!7~geB zB>&5tPX3Ra(u!(Dww`p&1);%NU<^1Li~?tZk>L1Ir`&~do}v=TB>E7Bg!Mfk2bv2# zi`tx$h?$A|t73J23FUQz6X*aEp#_8P(@@X8h&GB&xi_e`J3a1ylddG0TCTWiFkLyG9AAz%XQztRF%mJxJ=)Eq zoTkh!P}9KqWU>h0plh_ZxI5`X8SB%|F@nqmd?{-?nJJhXXAJ`+0*XMzpnckZwc|nW zK_goCz|VNVogJ)>q7F!op2raCvYWbM)RR0b@7Fy z!nCKjaiDjgLQqCji0g!1QbwY+vG4fFphWObPy+Y|=sRe1^7!Nl;_+fq)qHVk)huyH z91(}b@n&(0xJeupJF8ZTdsM9zE2^1Kwm%~L7zbJZyTz}rsRXxs-YBa}9c=LSo;9us2E0%ZG6E>%Ph5iR~F}Wtmlynp`5OdY#Y)Nm; zXdPj;6X-dq9)w=yKIi$?_OZHWK?Dtq%WVrYWcNe`ylmi?KNh%nWtI2(iKY?GKvo8OP zVLbbHPN(3AU|s<vGiKUSq} zmu*R0c&nk--mU*AoFL)|)b20VGGT&{k}rnpwX5~p$lLL23vm28dljjpdSNxBrnM&3 zFxx3J!t3mqaNYU3@%3-(eZR!F!>zBa<+kIthc<7+P$zyO# zAr04yJQ~LmQgA)Uqi}oK3?ab`ZHh|}CWH@x(tc+yB5U$qRhD()N?sK&Rx5ZkMi0B! z{;=$J8Be3qPBV_MF4JcN_a>f7^yUfjwd9*zBI5?;3T7#$KjtK65GL%Z2foo|0f$3O zKooRda-B-0+NPYR{80H#H6K%^(y6@7xjDaM)?_!dvhw=nevR@mmrLRiwDJpA+)n2H5K*&*k3Z|Rjt{i`xYh>k&%02$e z{w~w~#^c0o#PP(1#OBh0sfsdH>JCV9X}=LBEpPLHy=A7~3?F|M9o()v&Ru%bNR zc*y$@NzM!@%}11f=ic<;RKH27#BZ9O+1D#Z1j!|Ta??m_>4pB?(vLnHToansI7VH| z3;yD7kzShDH-ePq(8eG=};$FL;9sk#O7V(SE-oH!yH4-E{b=B>11@}5@Is!8f1bu^G> z8)bWyT_jtSmz&oRT$;N&crTKeeI<8%TsTlSTn==j^4fwevMsq+b!B-EOVS&5ghw`z zBRBcG8nE`op|SoA*p~2|@Tc6Q$g3=TmKXJx&?*{1`lqrNW|c3YL{%@mLzP~+408(eKy?=5R~4%sR!+i9P?Z>5#x6ZV)b7F+ z{%3z+zt34reW87+T?&2)KIa(KV?__9=Z9@Z?u)kJIe6e0$V}%2$0^s;(jVvOwRoJ-nW9KCmFLConv)OK$UF*iQrV4bKdKph9wj zFrCAr&J_4Kxj9S-H=D#oxp9pz#E8J8=SW5%IeTCa$mBRhM4hH&R^mmdFWf!-!CB za0vVz?ce(0MIS@I?*>MyxM9~lhwuQ)*34AqTnJe{JS#x<@6c@}1!k z4V1{9hWVlK{%Ck^_?)moG?H|^a(8sK??C8F6d)MOI@x$T^e^e8ZyD))nBxAO^q$1U zKdNMyQ7)$Wwq<2Lo3fqrl3JB7CpT~xa^r*P|D#V}yx|>T9_L$G8--xeOi`ua0PDOl z-F3!v*6`fWSUtYRVE9nOtc}#}tks&{YVeRBC(GK9ZHp~)bxiVZ6YpM+&Yfc*}wYzHdrj4d_ zbD^c5^{KV4!E7I+=hXJsAFOnAXv}pfjJO;m~a`k8dmLvihJYx;C~3t zsN9%b>*FM7=i=yp(S_0L(bUeA&PCCGqyKgsFK#CbAs@hdTnUh2+4}5<_}7&~b=&Yi zi54wyK>yFpu)sL)yQeSUQu#B?|>HcKNwcWB|8%Xw_cD!SX!_Xty@JF4^OtXviiH4JP z7Bj^z)F(P}f#VQ zrrRZYBPYpls?KVr+C}=$O1JWkGN?{cyunS!!CSl3GgWs~>vb3Hm+XL~@=k2Y%i_us zS`s~pkyMD-28Oy4o#((mse|Eb;QV;!^^RoBq2>wAbDDva^VAITPnv}e&>m(?*5X_Z(#VAu-Qgg&Z0W6YoX`>OknyO8&s{u4SWb_J3UYfpwiZp4myk9f7+@m`%hI~!6* z0v;xZ0k+f;fCtH#b|o1}|BY^B?Z{jV92>g``PzA*a~!xQxEEO8y~{nvT^-N`Y6B-d z)n(c;U74XwUp64%kS|L+<~i;;;`!Zk)N{gP4AcZ3T1){;z#7m7l->G(Az&=4DVtxq zuyjG`+|qfanzHZMA8~Bh28ZV$`>_d6#^xm3 zlLATZBy&=0aX9I{cY}Am_obKSqxwpcecMbrS#yIEXu+GB@dQ zYEQRKvRINW{aa#}Zj()uo|R_FYGs3D@odRU@to`ffR9O^k|eR-?oR#h-pR?kfdA00 z(H4rz@j46;a=?dLfTyFg@z3=TBbgjs=x_+~zC2lRYRWw|0 z@aUC}!v;gO&~T>)Q!6&jH*K**t(UANwrw_L!@s{gA}WWwyFs!IHcQU)1`k& zvt=e(T!xms5{rG0QYlU3CQ?%mw^g!8k|q61(jeU`n<_mcMahh^fwC;g3-LifwkPU1 z1keFSq-p{8a_{HHALM>=e|CR#BLY&&Ui$|a(z8i9OZibH!fRAXl|L$-t$p&plF!PN zg(%GA6ayO>-bA<*kmZr{76TCg4GXmBh7T`>%{!slV)md{AG^&6Xr@hhhBejvqk(g>@5yA!1hsB3i-jBAbWjkTp)N-rw3wWDgU)IK5Lly8G5(>*7_-|QM*IjwS+ z|D3;<>2c#0Vw@N#J*@aq%1>Pjd8>Hp|7o(+?WxPGzf~}r))|=(lNEg+B9y$aAq)$} z`_~hLv!Yz?Ct44#kzU$*qaNwZa1JSw0UyKWLJq(_hX`_ZsLFguxv=PtFI&YRCTPb5 z&u}wI8|WqeFFt)}R->8cX9!5|%$pmJtIN`ANkS3 z(GM0vsf3@;{HfJgo4#I*vK%Jm*+85!z{A^ZHaDr~Oywp0%S4JEf8WLV> ztx*%yGIb!3X&Yy&4K51aj7%2x(hZdVY>WjH1DACbdG|}G%01!H4Y`p!{Cy1zL&N={ z@PaTfazW@2v6W*;PwdaJS1XtLwuin)%bg9x2LC7rNHCH0XXB+%{3dCiZzbtcc)x?_ zj;T+OK9Rtc$5d~WQ#IQ)%QS;Db5&`T_f*;VXO-hrxYQx3DnKPb2`Ja>aEid$$l0YY zWY(f^@u4D8>(JCm4NqV^;2g*j7}~SEK?;-r*JWtjfI8 zW0Y%F+7S!Xx-Kp%@lDSsQb?Q~953~R;0ZM&Ur2^qQ?2P%o@=;kge${ZUJvFjq}6b- z^r_q)^h_(t%H-XmXIuZ`U1!wsS29=gD_K}8-paP}tRU+%VWFUx#@YFVeOG2Eauti@ zTZ$%DH01wD{!jm}eq~xkY0$7Mb9bfyQH^Ls#Ge;($_vT|xAz9$?$EcNgpJ8ZP&OEN z)yp}Ts@GPdYI@f^V3k8TP&O1}I8~!Gf@+TMt5365p3hcs4Wzo zyMN(4}n~kEIzbw5pq9rSK(^papVtob5l!Gw5he}*QZ2NM^k50tf{N1 zyQxQ0HABtNFyss)qm-d!)G_KA2iynUi`@I%3*0mEw{ZCs1EZ0BGyg{ZDoQ1T$L6x9 zup!i~+)bP+#ukB=F|A-5S4q<`zOcTrzOq>4eDbS;mj#n(HF1WDtK`z?3dShzNNx+g zjIoisiCfO7VAL}H$2-lt#IP{R`DJ`L)5O@woXVfV7qiTa7yKu}Zz6&qPq2%nXMAV< zbSHTByT7@=yL0$i%(#A&elu6a;Q9)D#|^)vnbnmBwc%mSqncAjVlAmQP`jyibM3p@ z5|i8%UuarnT3^4R{@$-Nb&qAQrQ6!WdfR%(T4mGN_Sp8?p4)T{`i46V^X&8O1N4LR z1NB;m&apv%!M;(y$$P4Ea?@q#aqnV=!6Kv_GrTm^S4*f&a+Tq6%^yZ`ZLs!zt-`d} zw6PveZ=$2j!_0jdWtM%G3ycybmetdGH*VG13=MZ1hU)c>ovbCMRqo54E1s3^Qi2AX@ z!q=j{tdQ_RDY5LW=r>kG_)gTH)g;WpjU`VYZ|6H%Qo$Zpd^~v@-@%dycC#Xs`N%!U za^2-pO4(xM0pv>L@5s~HX~ik7pAML-UDMvR+`P`4k)S5v1gda-M1{Ckv))8iiMmY?sY6mU~{skEm#J+vf3PPMh-uV(1r%mjmL+MrA??W;>H2=fm|p3UHu}n-%RAm7+DNIuZ@vv=>_Zw zoM1W38`gb{QOxHv=QBt0DJ+e3o3+(OuuZki5au>~!X0hk+L_?n!a1U-XcL*>nBhPQ z=CLepKc$$qiVpG;D6>;$rFf{1sV15b$|nzS4s;$@ETCcN-SnIE9>DH6@E=AMa|Khy z+Dcx>5<%1R1>_X#N)yl;pp2!DqyOy@Q5vaSGMe5+pPhEda*ffOsb-e5hUo$74XoLP z=SuU+{%C$Jci5b^-wNjsxB__;xg2=}8801FI2yUNaA@h?!fD8_kuQ;N5lfmWt!HL+H@>~C zy}cdW6bCgynqG2|jAi!a_E5dLyDfb^0+jwIVsHA}vb>Dp>2>Ld^b3gJ(-|4l(sv;8 z((fRWGo%^4(v|52>8}yz)4!D&GQOzkRj{h-YIjxds>-TSRnHPRf$J^z)z8&?vRhhj zx7eav^LtTJ3ay35(IiZO{V|Uh%?a-yTo0^?2aX0N1OV(?6k*m))B(B6Ct<$}AWByF zFBvk>KMc#*xm0-YM4=Y-7plJmPk2x)=JcsPPgo~;&RI(xEO;xhX@+oaSF3Aaw0Sie z!c(?Ly1O7mdnVE3`^nvg7U^kcS;QMz80o3nA8{3&i>RX)sP%3z zGpkQlIIEvupd0GcM;~Mz$#Uyv8E+cTWD9G%Yme6ctbIlJ7POi4u6+MtmnnM0f8GDc z^s?~`aUXFQaXN7&@r}Q|qgUS9XJuBF~vuBebzs4Dyw%@xPW2^9$ypo+!iE6dlH zhs%dFZ7ttjez1IQ`JM7d<^RUZYb#t8)(TohS_QUZdijuYL4~g3Mftn(FXilt&WgXw zFPHyWp3OZ?8x(;MnzI{=R9T5xmaJE(pTv&h!muTb4eh9>2UkS9i|kwu{h(|acQU=E zm1E9wPAd8t3dp6Qf6Ql!Uiel>g+!xvRQ9AGy#&d_lYY?E{#VjCz;6jHXdKF0&QOs2 zmYt3F9k!BKXe#=y+{^f&A~?zNcKMA zi|hi~P*FFxrIN0ZUxQ8v_ERL~v&AL$2)A^9ert~sDtp&6{{tGcP~ zq{Jv)l!`)S@)#mV_vhSw&_0l6&J<0+;#}fC+sLLE4^9*mGhm+lw9_7_9>2>xa59YiUe7Yd*BgH={JMR0*!p$#x9YX#C%*rUi<^9I^ zVBS-l%KykHU`}IB(^jyySf>jA)4}AA_`a*GmMy?%&bI?Idb8=IN9B5_yZ z@x&8Vy%P_)7rTXk1i+P&=T(oY#O>sEReN!JdDp&9NY`ldIaPB`Vaa#`U3ih?nzr06Jm#B&S`;#kK0l;eWQCSrgr?J?GY6P zdPcWXpSEpIdW`#?vIlo2MVhcQX<5?oq!URA%}=>Z#trE+F4+FN?n?{5MHYL6`|5-|ba&A~<97R2`=+WkElt}UJ*)jo z+vVx@D5HOC-*WG{Pgan$T+ae(P~21eLFO!4Q?#&nbUgOCGbg##FkC!LjH|*{O%_9{ zELG;JwyM@DNtL*2P}RVyd+I@ABooD4C2FsdR!yo%Y%XiR0v(!On+{Juhd7c>%b1eB z4Uv<63z3*1&ghX|p3Y8xiTFGHOPMZX1MWylal!!HMdZK8PDI~~o9WNe=O88^MrHt# z5v3+bd|uN367>o732Tujk?WCvAa@k5L!LtRO+*X-0v-Y)qGy2zfj!f1^cdSQA$dHo z8rGR~EtRZ@;uhhSq+LoYhhz(>kZ}zwfG_QANLRb1$<^&h`#tuV?zfk8U(~*`C%{j` zcBS1;>volwTm&8i_KV#uZcSFZQh8I8-Ev19!Y&0N2PHP=Xyr4qFKEwe-?JFxJ@o<} znL(G_>?kWi6N|fbUR7{z=F-eXnUkCz=gZQYidL7r?1!RCu0wv&l_Mu<@(VQbpXk@# zbkB2dj_-^2v)9mW#cx*5R(?{IsDb;LLcrzh>IZ&8K z$y*XQ5Evc!JAXE1ll&K~QPZTsvtI_Vsl!sM0K-!?fJKJB?DrH%u(j|{!Yq!MI!A!h zjD!t<1vwL|KUSZnx@txj@M&-Lf`}mctGI~C9T33b-Gy>-a?+XZ82vB&~gVbMoox{@ER4#PtO>Pf-bQ6Bd* zttYpZUe@e&Q>>%t*h$!cTH0Hy~MMZagakPp_Ow^7Ip5-D*8|iZY zSDzs?yV1f6FodM{<}HoK)W(ud*X!~OVZR&j8mZjQXnI@(uG92OcHUS~C`iRwaiFo3j;x0!;A zgSR46;=7XMW@VrP(o4e4UcKai`?b!Z&(x>;SYxwhCz{wLZ>KSIhOR) zeywtuZ%61yw8Cj8+Wn&)V8JBT>Bh^UTcrKIRiw+||7D)ZWWee00}hhAQ+<;3nFOgk zu6nDSrrDucu8C{rsSuU-RWjA{%JHhFu=qNKvAwokCFBSzg#|*jkSlyCvlT^(4;Lwg zY~k6=knIuluS^d7b7Y&Bw3g9HFx zDmV3)Hzf53;5*01yBUfB{kgDS&5%c?tqdmRy(| zFHSB^E=iUrE0T+n#}jO%i-5s71M@ob{CS@`e2Psv3x>%NpoFMp&_Sp#)bX-miUzD1 zYsXr!Mm!ETfLz7F!uIBjfq%v1s%HZ4&_pTQ%APboZpn%EioL*nM0&9rwN4&@XEbLv z>tV?$J=zmedbcO0B&C2;fGIuW?Y-K&+qYyc?I>%}#TF9ASQCnb?R;Pm*aQSa&!qj8 zCIE(j%|HnBY}(&x6H}I_^iLH61HcIIXe`vKZH=_*TR*Z4WVp74H=Qwxv4cOI?`3&d zA^}Nonzfll*AC9_p!_SVEv#eX!m9$?<#j$Xdk`B={hM%xGmIKvCYVHWAP>G$g=6mjIjP>uPKFI9V*1@gA$?M4L$=C6>@%vN< zR0)^|u4TB?5?QW6-HsoIx#t*;S_>W8n!+n#+>#!!AGA*)-^<@h=_{#}OqD!|b5>Kq z(pd$iw4)N8bP(@Ne z)R{}n4Pf_HEYu35DDEkmUaiIrCeZX_36lx^2(Mfp5ry4p>b5J zVv%wLIes7d5IPAy3O*X%1KSfjtDz3J3BFe_mq7xL66H4K;`8t`88aAaOQl5#;kRR& zkA0$of}q{%?&=w)Rv`Vbt7N39rmflMpaj=xBiy@nS5SWRfxgp*csssgbRU%fxUqdfiwBjDZAwjJ~aDTV5xte;i;h)`wayc zY%eU8V5?6O#!IGg_|zE!FK2A^+v=0lhMME-MCphE4sE~WrCud1jyNLmxseXl?nqTZ zP=Za38k)ZGsD_VaX3-74c7qq=r@?Zw(hgfGDiQ?7q><*drR{;U3O)5FG- z#2v(m#Kpu{{%@wbx}9~1`Wpo!Y5gK4Mem3OVO=;q)UQ4-I3vp8zNameb#V=JdF%E1 z5k((EWH~FOGT-v`k4tI9ADU6Y)7*5@I(m_RkMxsI8=BE*;&~W6(kt`EMng$QXt-q) zZ&>kf-TO;+F~*jhkBayV=D>BRUNL1R)dY_Ev|;Y^ma!nT7mA$C1T0g=CqGFPcZjV zS@GPySXd4`2Zw!tISl?2Jho|EQ*q8A@E>4sZgws-7oGbx=P8Dr`x`ddRh?%c^>(eP zSX)tw7}h}#^yT&8Z34z~mnDP{VZ`;MHD!Io;}jDV;}sJXdoi=|K}}dQ3*V-=2^*I- zG3iUk<>EITWc-KxzbUQcl(c`~O-B%l%~dY)HyY&W&K3u+7*6 ztUxVP)1<$Pz7SZbeAIg2YotM5kGJ48969GgF|tL~!fi1t0^ks?4M9PyLf>?Ka2=1X zf?h4+ zGj!b71HTV^41A6`H1@W04*rMiGsIEUiQHdww&IVXGZi+-|0>p3-0!&6V~VR@@vEm? zD99a*W#TttJ}@)W?!uo)yNq7A5AKJbu(O=`&S-L*v)%dL`N7%Y>U2GKyl`B0Tya1l z6R|U}RiFe=NHgo#^je=bw^W-AAY-Gk&Lp>t!;QzCv*gM~Sx3s84ZGPj_Otpk`Ub~n zvR6WoqQzIFjgpm;9O>4AM%rbGPns=GD+^~Uz7L6*!Nhlz z?Jc|O`i{gzA2$nA_Q7X@EHIo9l#?#}C4Vc}1xeStAnP+XWsU)Nfwx!m&F+^SMYbbX zqZ3jAsmZBFqA!|l$*yF**dUgR6=GZgy1k)kB^sBkgHT|0(&WmKIRP9>wIYX=JPLa| z^+D?D%&D$vt~(XgiV}nw5sV|2CY&wBm)%WQK|TV%Cqa{?AW+H|C&&eMMO*+E(Dfg5 znNnF2hPT3pD@xLCz&-$7k`)rX^peCY-7A|dy&%nz*<>SRc*#5Q5%pp9yp&<6HPGy0 zba7DkM*BfKi?GEr9*tF8axe>WU3k}R@LVU=wJc>a?{MvJsquTz2hfRd5pWC44-5lA zP$;yKK$4xbjg^^kzvYCb9Rx8Do&2|JcEcvjt)%pv-x58^6P<2nmuqPWTwm+H0lo~5 zBsV30qkg4s!2DI3Q}!nPRr(^tEN_4B2=8d`I4=aY+_T2B-qWOO)R{dj|6K22?;x+u zv%q`ND~X2yo?4IIv)3~|wAkC%tMY93%*>naUGAOY)p($uRbF&XdG0a%x}0x#dNK)4 zgKzdgbckYO=c^7%Nf%bDo`_c9SLS@CB4McJejS1i5{``PCf|?^g4Pw%yaNTVsUN8s zuyojlvJtqikg6gxWJFGLOSxh)j+Qd9I6l0!U6I}1Hz&zEt$2Fz5%_WV0{9a6QTPe? zLikenFjzm>Nbp$jnbIprT-iNKicg5cy-pCL?? z{K*+YZ4@jPL^zYHzf{McQQb9i!bx_rbZmi!c2M$Bua+KhiX!!qX^|}vZ9zbJTHfi~ zQ8T}rZ9Jcqs4Is57fj3Qk>$_o;b-fHIPYZ*DLa&9(QP!I%>HDoFWpgkRbi+dTl-J# z3&Mw>2aPsKT@?Rh*CGE!e_zw{#y^R>i9?A~h|7rK(xkGDam5nFN5yVMQXN0Lq3%Fk zcKzLgim)v7aDY+6Y;x{vgS0u|8qYpAWNE=dmmJMuG zXV28W4iDnDvE;!iy7}@7>sX(PI3hGWyulg{WZ5R#-e${XtMkmk<-t1{ zvb#sHO?F%Nssz=rKTM1qY{;>%4UP8i#5Tpli^Gt}`>edI0P331FPcDF;oB7gwq`q~ z5?n-=f2^aWELCulb+++p=q~AyZ!KwFb~*ZL_nETB_ZCWK@k~}?|nR|!Zgxm;Jb4ob3nLKSaZWuYv)ovhf zB%^Ts$XU4G$Z#wIyA`tyQ_@-7*(`oaCMMr%@YO{-AH-Qm^ zE76V{lo!hjnW9Exm59J2w~SDYCApZBUa6}!1Igl(0yNlwGBadyLJQvViAF}U3U z4J79=XC?Js=sS8TZi{ZK4wutG#l!Fgjk&wZt^iL0ZzO$IeNjo&Lv+t|LohbXx{B2m zvs^P>G}%zpYA8ARb`m4EH})p_2KqmAQVtm&N?(rnfjElTnjU{zmYs1A_bFvP?r=&` zLM9vu&w$TEOhSy#kf$wB^~>msxSjqY{pT+evm7VGNpMBDV%)vh>X=+a#WS@EY#H`V z&fAlEaGD8*&1$*KYtChHAp|Cy<#UY3ROc2wFc~H4SHIRdbwd6D^?YVc8 zNKryGuYgdnjkJrs860tLCGBKy0*9S9Iug0tXol=p!VevgR%q*1JR$*;uq&CPWowH{ z_VPolJ^Uc6spGgao45cxAKZWgHh1AGK~V%AF*A|=8e3smbv!R_zn1V_~!Jc^wo$}h@|wy^b?5Vh@I&>(qERnD8pr7GscOBisy;J zRrOVC#0$k+#CO%t)J2`~e$ZY}e%1|?Sj?8*kz{0rvXof~S>~*lsJl{PR=v1PY{i{Q z`ZH+^eop4?goT+i#dWFc0P6u;Y4Zr5Ghb%jirtLWbX9keU{flY#i-<7NzJg_q(KQy ziK7!*6W4AsD(IuRfN*WUy+W$`d~)nPv0icdeFi` z416y@4tNPj2d#v?fUoC%1}1}s0PZAvY^ST2)%~v;(&FkAbar*Nb(%VZodY}jbvD~B z0DlMmm)qrycY7sXzPHdT_G-KbT?br749d3`R^49Hz7Mt^)*m$-Gz@ebbQ5$3bPIF? z^dBfi0aZX0H*;_2-paj`d)sr%iU_ zp1Gc&ZKkKeZnuBa?TCH!rZ(U2u{|dB+{Juq``q@W?GWxliZE~>`A0>8=M%CU`ONdw zlS(@v+Aq3Qoyq%7f0y_^u^+0!dnoO2+C}3L_hC1|x7R)2jq_oBi5{1?(VOH;^u@)V zQg4~}dm=K4E`An!5qlMT6PuEsO>wgS$zMU?ut%{Is3r-Hvp}+rQ%h|UY!me2JftF} zs|!kKXC$v#c(PUcykHJZ%gv&1mQCXZ>64|`xJT%xr4e2)#yQ>@hMQl-@5wA>X3DlO z7yp9kRm=Lz#y7m;zYz8j(c*&TEQcE@c_v<`-(KLOovKggeWeex54SIFy&GKs+;6C= z-d|0r8CFwZ_^-xhMAj~=eO1dd%{D!$lhiM-hnoAE^DXNwVe2`o)V9f{Xt>f)Wq0aJ z9S01W>I2o(n&CBE!;P8-;|U|Gc6sgVU*XyuleB(CeTuoCnQe)0utcoqtuotYTWQ19 z294dNFLNCB{!F+W>s_5@w3+Je7_E+p|>`rVB^n2mCw!D

2wiyx8r2Fno8Er`^xRU%@@)wkyn{o=GRJD+2z%C^!H8hAqiHA={ zuMwSUehqsCI|@4j>jX}~ee&Kf6_)*Id(?TW<79FCw{}8PZB9Y^eO4JXAIgIEa{lY+ z5RC(oQTTw#mtmuzygr5+rA)WLcb} zqxuAE1s$Ag)c>(lrIQO}v=b6WevP!I;BmnWnw$%!ua*twy6GdN6ds20yEMe>Wc?!+-yC-ZHWeXOv8r1WKyn?=IGpX3IjmnwI4=RPq)tp%Qz0%Rj%1zg$~#A`h-VvJ0R zbgDK)N}?y^Exv6v%eraC?^-GRTCmg4&^0)bN}t-O8*f}=d}lP4ZZ5r`(A18sy`*-M|1g>BcGqRp z_dtXzQY!}i@-J50EEq-Wh|Ge`gGr0t6VsI3us)m``mLT2oEa_Pex!ACYv_vB|LW77 zgNurQpF(-^{E*swP`RM!wl7OXC;rro4*rjuL0V5Q_J8*2LNgodc|Hc8^wzwo@ppA; zT6IY<)DDD0hg!DqW)%-Ap4h#+WFKQh$%W{93n^YI=ChdnDkd<;Gh0Z#T3a&5YM+Pu z@UvKj!ST9Ta)ouIuar0>G&sD*TCK)K^VCwcKagP?YcmEH25&^J=1vm!)D4jTXzUDb z%}oeg(v|1kD-;zQ=P3cI zpL&O@TmQn9gD`^vG2zo31IDHV~3ZtI6nJHpzXT@jc3n;hpS5u(W zdPyEd({1x2@kwSz~wLv*UN$%|Ily$~C`*&8AHWhAcoy;kqP7w$Q z|FBZXfBv7i_l|4&`u@jxnMDF5VM7Qc4B0DT??glt5)vRx!&KC~AZ+UvaBp#O+PYAy zt=569_0`se)z&(}Zmk15Y^zqWt(_{r^GXoMd;C7%$K&&TeE-nbz31N79p|2V?m6dq zUtxl*dTG{yiW$jS@n7Z4j#K1%N&ikCop3PzorJjwtndeZzv-Hi7mkjXTIUZ`e4T$S zJTT*&{EtG4{DaJqE)K{~Elo8D78Y8FwiGIxlA2obi76%jxU#~6{H{lrg&!(BTqrNQ zQ}boLZRx946YQAfta5far`)oag8$z_TFtsVAX==&ox^s08UDKl0L|I1Pj5-mO z5xqTTPIPy)WsEYWA?Cp-o2Z+SQ*8T$KMSX@USh4|E5hV{Va6Nvm+LdNchH>@y@X&M#Q^0)74?dYa;wH>uN><+H0QE$jL zTpIfp>s-m%lEm^cjbCy5ON_!j_ybXA1&4&crATb&3v+}*;b(%ALVw$}!h-^d@LK`X zHpccPVX81x_>16E;iD9l?LTRLqijZ9Nh=*SWmMXzMWb#LA(dAQH`DH>z3)U;e`6>h z-wu4q+o~ltKlUSMFPCvae|m(I?o|gRS1NZ^o~T?=$qKsR9pTvLa5Pb09v$?cQkbx# z;)_f>=Yh=Ef;@cq<4(nnap-lJ86}qd5FZshRrRT4chueBH+|Y4y^QQ$|R%D6)Pr`PuM(Ra%#(w3Hp#vCX6CKOPpFR%$kw) zxueyX$m;LL**i{koZvXULOy10aVGhL;|GqVV_wec%esKSIoG5)p|Q~3mpmF*pv@c` zRB?Q4Hu*utm5QIV{rU^i!_s-ub<)?RzgDDVdql=KZO^vIA#=(V$;w#eNM)tcp!`rF zRT4^$a*N{i7R4UL1jU?*Z!6wY98;`Ue5?3LaaEyJ>XrFQU!_1PQm#|XQOK1U%6p0j zihmTr%6jER#g~e+3g^&s!&@eBB?hOGxRH*-9P=FSJ6L$u#m80URf)zQ%<&tygKUZ` z3Jvi+7V}!@D&MT?kX)zY_Be~GafvbGzs|i7cdvX$bW4O(GkTFz`#8S@hcL0{fbXb^ z`_Zh5yz!g#bHld#C3{xtDE-Z%f`o?gYn;E+{TbF7e<*%+RfnpfMOhs*`By2Z*_U5bP2g){L-pNd5x7* z^Uvk~?ld-LPm4$Cxc%dPn!t5BEWc-%H)drbuVl)&6)~(zivp*NhlYmuC-OKSJ_Ya)6v_p%3*(oEaJn6HJglQ!-ljuW579VAW?hlqh1uSW02(#Q|$PSo9S6vqBq^q|Pn$Ti*# z_)7Gp=nn5T&sfB5;kiv>#;usReB#Q9U73-p-6|*bRJAzsoO)E&;Ver{f#wy>O^uIs zv9>Y$dUjCGD>(x>?YYKWSKWGDUf%J%p!_ZQ!3F0FrWGa>re%Z_y_FfQ+N*L=Pgi?n zUQmzDI-14P6lvCLe$@DCmuj1{Z)At$tj{5G>vG+68+8SFEhq9q^0(!O7W5P(6{cr| z6}^)gr`oS_Q_oU+W?ochW*yJ6(dadsG`BSY+7;R<+23V{=WNPh<~HVf=sI=9c^~D4 z=kLgu6?{^lD9p%^7ah!uSG}bYt7ogdGCxtPvOdV-Yf3bmHFq?D+LhX=+23c&ayI9% za+`7`x-Gh~EqSN%Wcjb>%L_g&m|3VS%*===I*=Kw>Qaf+Gu6_}UUf!Rcb2tgtY)L; zmd0PZT>Db?x7lGi8*>=B4Y}^R&AOtz5A(wEx95i!Tr8MTm{K?GM9$ljpyYA5rjG!K}g& zg{q9mqWzgssy!-a^)$76=6Q8`){!i(rcm>$<_FDi?GkNMc3*aI&Z{{VxvO$(b49uh zy8OHk@`CfX=7$tqD41TDSU4&pwCL^37}Y+Nt9pi7lG&pklXWc1N>i-ap!rGTr(LF< zoc&F9XiLt9oME~3xnkWWU18qIywLpD^1}*x3z7>*XM`8Mo0+IOpz=_+s(ms)Q)gwJ z%o1wKG+Q)xHNo0d+UeOpWJly|$>HQq&h^x7)0O0%&Wp(3nIBp3c|mHSIwPux6?aMW zGjDp-o#5AfmIm5-XGA#$zZ|tAIMb(6wp&&o{IyTZg&>>gkE4DHaQ4zfYeEE($)Q}| zT`_Y)%X}9`e;D21_fgnsKbx2>{>#Gs14hNXDt{^Fk?5wpKEhSj889r4hzoWxND{@5 zIC0_)lemSyaCRDw8y-*khI5Bc2!7>T3WS2c`A&jAgTL?^nDkrlCtm9(x$(rj--`IL z$1S6bf|l5GacARJ1Uh)Xmzkv68T^h)s%}&N91zY8;||aKT&>Bn)vVUe$o?^VYtBo# zUb@$Gr^8l;m*$s4S z@LEJ(Mnch8{-#MAC#9)^Gq0#Y8=!krmsn7gkyNxKQ0Toc(;+xQwLLh)r$Y9otS=D#8jDtIV5R}fzqz!{nG zy}T|WxX4AeIbfKvn9non`HZ+_fp*@RQBJ`vuSC5btnwKr+aqfTzT(pp#E(85bt}Nd zOB<~X5k{tj@_gTnnHyT}yD0jj=tjR&VQ2gz{rNFl{g;Oa1f<8Tmrsd#Ec!v-5FwIn z38XjXx9by})2(|Lv9WyVq!gq1>spuxZ zkHgOTMfnS2w)w9J4-6O`vq3&JWXB9&%42c8hN9JshF!NES3gW&uP61h^e^d`>YepM{W!f|AFTJ#57+1Ev-HXObp3q&OLp(poT#B{ zKBy@rPKmzeeIWXR_fAcB&3Vx|(G6Z7&nRz_*UMj$x5#J8r^)BQM&DTHmf!2wSu|MG zTNsIvL^yF#)GPX)_Z{!Onv*rT7Tt_$iwHtSJu$?C#%m_bMzMaTKy#b41KeHvEEV7*H`F^^?`b^-dmrm zSLqY=Y5KW(zqog+S6Ym-7;j;;Xt7#uHP_;>-EzBScJJ98u{&hQxr_cat}#FVTnSC3;_d zzFwnG(T~AK3-*kK6re^U!92#hL0TVlT0e*iXDk>?XR1bmD={Up8zj zYkQ^5?>2wiaI9?XN7(#f^N)?C72p0<>rQJcdxgyj<4NO3#t)4fjjtGw7*82LHeN7Z zHC{G;ZMr!h~YhBBz zW!7?QdA00X%UV_~r`ERCu6DqPGFdyUR#Gdi{l)me_^a_Z*qzQWc4n-rRe_;)eBG2L znLJ8HO`REA!D7@_)IfGZgd^}<<>}CLUGBQ@LR&0#p)D>TfiYo16A(uO9N?I1jRb@r zS+OAOa2y*LM+5AjzE8t}qf_H}OwCX|q;c7FwyGJ*y|W#-DJkLV%IC_N(0w#O0DXaR ztS2?w3gcZs(Hh5lh9Cl|O&k-#5;?;m+})E2y@#-4tSN$WuXyk0vpnarESXG(%urY6 zW>pxg)OhiwQK67Q!(Mj}-jgxlps)c)(AI0s0|3_}aZb>c$hU;LBXMj>bR_QX7_d>+ z3gE`yQcn;)lsZG5BHo;$6r6Z>H`qK&%7wf|wW%N+7SD#lMYX|fQ};5+j^l{nUQDpV zP?0;Fi^~>3XJ9-Bt`zv$z`jC1Yv`ZBW5MMDzd&gHBb)`vg?<5`m=Mo8=pBDRZ0=xn zN_-KlPlpQKx3bf5RanVdwmKH|oK>`0v>E1(CT`y1K^6O{3}>jS87up(uteyX#UY(X#lC z;ZVFk-j)B1G%6H%pxnXqr_S$>zfBBDCH4B-@hq814p(JPa0bD{crLVmhis5MjCZHr z{4V|jvGr3n7@MdvBH;~J#`wAk(ACCvhfdc7mMJH+%yHe}mLO%Bg|jU_!S7%~f*%{c zi^nxv+|Y=NG}Da*zRH9tu%xHf36?fA+L&lmhce;PEO0)SAbM^CRUAv$Bzn3>W?xF+ zQv;V0F60vU*W0&`ksl0A94jCBzrl7mUXbWWT`Er$aG6SFS|NA_MYzDql;c1N3_3nOug9X3)2oozBN$U7J2|GMp8iIH$#l@vpafs5NjE|hghQfHZC z?xeaY>Z+!uiiuTCisxssX<1TDzGv;^`mD({HM9UXDV`N_%qmP=5zE;ARN%KsRvMJW z{jx|W$do5@sdQQL#HoYpUU4f({Y1+MzYlVRP2UG`ps2zlkot0GGM5DY9RVBGWKM8| zZnxG{=(kI;r~2$uP9-yxBg$aEE=3AmpO0ZeyW=$8Q&RomR>9MpLg`ND#y~b!@Az~L zpM{)MjxfL7>gjGj>`A6?iOvDuc4yf`NMVW_gdb~ldM4X{#8NO+wO*GZ9LjX+Qfvn^ z!SwUGE+qwfRKtB;iVq0CwWP;3nCp@kTA6Y<8VU4$Ew*HvhGQC@1hkJ5tm!6*{1k84 ze6p1{mn}0?X-@m9&c-ybF%bSaH-frZn6kVF zt|%fbpWg-?lPH&ELBp$(P-?xuLL6c~vrwlvLY+<#0ZCa!p%5Oeuz}fGMN#I|K>l2% zIdv>w!Gg{4zQNF1tgxZF^A(rvEe7&EqD$Ag&8$D-MT&%I0Bkv|Q!{k2Nw&*yE}60H?V5 z_S7*?<@*F2%9c40qd}vS`NBO9r6pJ=$i&dCm$9hB-pV9P2#hNpP89_!Jv`vA1u`F4 zyjT_u(m664Xk8#5pZ#i z$ORp-85!TNOJ17&_zEt_45nu~lr$=yj z6*bD{=0-#1r1V7laqZLU?#-gmuR+ ziV+ZYdBoRXygVY(l}sG&^}k<2-3Gx1rYy_J^(s*rwSo#4L{PH zQhaR_cJQs#SZfD`uCBfgPuxk03|*>eB86i*F0FKg_P^Ln*j?nx1>@0FE7UWVwy?{e zB{b0}q@f{Rx!TbIOx<-hOIWaSv9%5KPgOFh?I%;ac;F^3;Xc2xl&mMU){oQJ{6E^O zCi~_;?^RRr)4j^OG~6BTd^J3e68w>x=!JXiMplFzX1k6I!F0bmA^`SfMX=#(*O7i^ zW2j-h+!;0-mN`)oqLGSPXkR$ev=N=5`?C^z&{mGLg%x_-mv_GLw+HFck#-QaUE~hk zOR+%PA2QrTqXdgbdijCCp>)t>=-oGRI9$IM;tieKM%qKq7ON0*D)WGqmpO%hJ4X(} zZ6htAUTPHt?K?&aDDD1{k9qc0jm^_?aii8wd|}g+$3;|9>4!%)JF(Im>n7JjMYcWz zw9H7f;#@uQO(}}|>Bv)7a5*)C_X6LyTpPJTifqu1iIBhmk!A_gYD%T+HlK0?9V8@!b^?a2puOgTHn-xxq1GsqH(P(%iTX70rf< z8k7Ifq%ga8=vvXzz|fA!gB$T2G1bLQTP}bBmoyGs+U;aVXyJxSng=Agru_|P2p;9z-ED{Nf)+9g9h;4}o0^E$wY-(*zyA z(G@ils>V;OQYgT)D(!8~pzi_q1tYy+WmqJe|I{CmM<@z`n2_d0-K|Qij)f%~(_EhC z8#JUvM8kxcRw2|JoUc-|5%O_5QY=4E+^FNh7FA&^8a|W%5 z<1MSiFwezO2Kc$PGhCm-Vo{-%qck;4+DxX}nn&H30R#6&4W2Sm?-5Ku%oBay-cfA0 zIoCgkTGl_x!NK}pq>fs~On(?)^X!Rkgtm}$2M}E=7sIlUbW3V?XnGVuWWknCows$o z@63ndPn_37uPj{(``(c(fN)v5JJl~sKVtKYf^ve|&FR(E19dk>d`DpWz>7Fwr(!N^Rl7Th6wy&Jum|5`2wHQKUPu@dilK zID_FoGU>+8YrQSe>?+GDEVh9Af0Tz%J4U7J-QYq+`U}SoZ-})P;9kO%QsT<=UBlc^ z7}1T*tvAVi>g2|ks-B8{+r5z@>iGC{DjCYY5ezcAJG;UOI+v&OAat?26clvoP^ZWP z`nTh#&umLq#RC6Zv!`JXSlbT5`_hH*cq`VCUQM?F@vo>wwC6D;+27#<-RJF1DHiPA z-{JL4c0;1bp1OM_eT53t_^av9Z7ZriV00e?cp;WV8ztETdn1 zNiQ4yy@POKP8BVw&odQ-m%xWg9yMA%+}c>zI4!TKDhGK|2gY#D%kW zL!#-F6?A8?+0eVF(!*Tko)?P?WtU%eg8q&8#*qxR0Hm307S;Xc=r(JB&@@-zIeOTE z5Jp=;+R9K5=%hvmz}UZE4(k{x;ZjH69X(^1*~PbZ^bnfsow5_Am`bM~8Xe&a4sVDH zsJw4R-}(SGC;IZ=!G-N(@CWXmWn$O*alVvv#~7{RNemzew8zG9sJfeD7UaO8*bLj} zRm!u%bwe?}hAN87h_r*pkEIg$CV}Neb!KJ=3GiOcbY!B7U;)}tmIrl8l~EH5^?7!t zGsX>ss|8YMpYJFD6BjqH9B&Q1^E0fVaH}YoDxaSb#Wypds5Qd_7QQwVUAT&c258z2`|c|#vN#2UI1d?ggpjyVtt zXzQt!FbcIwxc|;#7or%l#hnhI;PQQ;yE$_-IL@}Q1Kt;9_AEuQMM^GkXWMw7k}RZ^ zVX@9;z`(9TMfP`jsP`nWmNX{#EIhNdQTVqTCsWo(2Sb#`s$ znm}kjl4%Jm9_!uVlX#3l_Ni1H$U2f~4RuOB2g1muPEQM{;$xZ4c+P&9$r8MHSPe-a zkqc$39i72;Dq2nHk#ale(y*9ts+%1O?J=%Qc&COZqK=%(jLsjj5&|Jyg*Fiy2)=a6 zWE*f{M&A~DQ?{dI0>&&=meKToBJlWT3kti+(g6dFzV1*iRoOykfQSiQyBsB^0;*i1 z8tw$=<03fEOAN?fnov$ni^7X{9NKRz%TmD1Fz0Y6FIKUrS$Qgr9_3R;OpG}AmI_s| z61HSVl)#e3fnn4KZ>wx=L3&c<^2SIU8n^s)GcG4>>*^;mue9Nt?>7TuCLJ4W$X}% z%qigmREZ{9*B+~og_xqczRD6y{!0*iqYO8=@iz>0_55JPftugsj^OsIoDWyLWg=?t zpIIRy7)WJ57Z?ZIPKG^o*-n$s9*RRgjgG_P$rE@m)>R{dJ8iMH&~e<^6M9le4s>Rr zVk&XfI4|7bs-ZTxYIl`@u+5QWj+UDu=$+RDw$B95H#h|ep|4r{G@$-$@El_z&lZ{D z<{~rA6fp1l6HRhc6;o9FNx0kx`X_5`ha%;8bl%OG~PEik6#W4w+w+OT9qxkCfGMMr#V2yMgqP zG@t$t4dUHSxZC$SNuZONZ4HWtQWoHsv21GZ8EvpT9rI>Gdm7&w4*j52!{HyaK`#c? zCGh?aS`RuLj$HUji_wPyKOP-V_l5c&wRjv@$uP36_hN#e&~G@D|IM_5+Co2Z2h*Dm zy;t4&G~FJK75F(p_-=cvp+@+W@F(pb9?y)S>mMgJ2ogCXp_?zXqf@3Zya?L=me$bo zK}+y2Y2;AKmEv==ACCN&fV{#c+xq#S$p6iFe7VAAI4B0JxKN|8v4uyO$jvcomNT@d zS^m&Dzm5ryR4h+ORI_}jo~-N=OAM0+7i4=NgGIUY{}_lRLJbF5hEGCGitp?hCYw6G;6BD7oPI74f1gCz)O zBTYM-9RS)kwj<1LcD0B8iw!(eJ*u3WQ{^)l_C@XP39SJ+R?xNB-3x@-EGzI$NN_i& z@Xx4wnM-%8*j!2znzQ*?T%eB@%e#>|i=M#+Xc|=?mGgKHNWaN>UVm)a&vt{Z18lcv z6)&ayHpjqx%D4AAxk9l1F~^eH^FxkJ2XsC}+tGxp3F9XVpnN4074FR3LDkT+BfuYO z9}2kUDw}o$h|HxaCvrU@Xg}Kv?rrrKQnzR2HdMjmZ*oO~=fIVi5wPkPX9sZq#n}Zm z{Nn6MZTL3#i$su0bl59f7XtNiU+jymbLb$ZqCvs4wFd1re-$YHMgw8xZV{V0E!E*V z=tr`jLqQ;W4@R$(({+|`;gqu-9H##Z_!ymm_EA%rbe0ES=0y0zzH}XnTA8k!jv8PB z-7AeD^1B0s6lmrMC@y~r~L`u?!y0TyteUhnA(t-~c8DuA1Z;ec?rycfch z*J9aDl+i6Olk*gCp%8HC4~NX$JiF&lc4|*<-T~gfAS!Zbogc}eN=x$!lR#MWA7GUR z2scDn!e4-azANkVvU$$}Ea71PS7H!VxFc^y%oCWUVVk`Nv|h#eEwh@LK-pZ&`)A^R z0bIZ~CBgxUmvhhqSkqx*e~gnXwp0 zShy^LPq{zL-#+`_V=-RPPQx&_rx)C=dl7~aeqZ2EwkbXhbVFj|iVZFof9LsO1hfAvS{ml4(>=0GsTH!hj*b z1~ZX#za}CL*f33q6He3*p5QfDhVh9(yvCF<;WbaDfrB5!YfNu-Mw>Zd%4k{c*5(#X zL!hCXAuiF#%}~Y!+&pcuFRIXHuq+Td&ziv{Y{JBSeA-in=tA-)bo~ov1FOVE_MqO6 z27K4665NySMNV+-_8bp$>XN_0jY8Vha1g4COs`Gn$={|VKhlI9dQF#fN=I4I2vi@9*6-3oQ&{9-!> zY~01R<-Gx*S9zTS}kJQHDGB-<15A$Mv-mEP6oMSLh|v3>z)7wcaL%RNPf zx*po_sIJBOht~fE5Te(Tdc8ycd+`6x?TZF~u3O9hOAttb(dt%zt~K~vUXn@GoYep9 z^a2h93%O%$;Qd#)q0rU5!X3I^;pWl*@hQm_y_@7o;LU{C^!}|6q!1fY@c%Og)M=B) zgH}!nmzvHk5pp^#(K?;D8iP*HVLr~(VqwV@tA7Lc0Kz@!ru~TKlh%sG217N|6?!Kz z*|2XClZWEYv;>ram4R-w1aCd6# z=#rO*UrIR2$L^dNG}yo;iF64e2|%lHFcvRS~(j^fl z$Vl)4WCXU?O6}onouw}vsk7w6t*fOA{uMuBneZd1IEjjK<1CIC5IaJ&)B`Q#+H0j^ zxHpRPDm3$_f!n1DBMRn&?ze_?|Nx_GK3`3e<$VHFf!sya*!ml`B1beEdcI~ z&EY^s4_^+CKId|%ERV9YV(9BbjP?4f5)KVOd4puV1f#Tl7_gj0Nz$SBO}gNZ87Pfg zBzRe%56>JtY1k0n-R=P`No9D)<%&cA-93^72)}{GRDV(#TH7buU8(-$vi1NImW9hU z(9dzEW=|?R69~O4%l-q51>I3>>;H;l;Z4yI5uE=am}U6{ae>x(EN>`pDdK?5D`gl( zUsI-^Zi2C3|NBCFSd?Xh!P5eCyRG=;lEu(62SaP7yAviW`g5(EM`c|r z&m*AWZn-^_zvs+?^1gBb%(yL?3+-=694O3wE_g=Ins6>IgqLGfaQ5ADOE`6DEe4*3 zvQH7O`g`TJpzkjacn0w@(T==@u|=s!%Axl3my0<67UzQff0WCIDKQ{FU+O^p^+)+d z3A8&`yl{X*wvRR9*dYe5sVm ziq}&>FbEzDB3R{w&>4ERio$8|Dh7IoV~jiLb&PTM{ppBc_;8WmP>Ky36Ggu8@Cw3w zbSWj>Rzc>2+g}yJ=j{b*>R%OzbC*A=cmcvvKB_?A;8DeSEWFHQ0)JTLi}uRIVU-^` z{TCn$HYVfU$zaz?n}B~svxa3AQlTR%ze^iJusX;}ydt)+axezoFXuaS{LbdUhctR6 zol1jQTScLu^${VKeh<+rOxeP~qDnS}=vD9_Dr17C`Z_D|X3dJwl#VfueDvW$SyU!e z-hURAqN}WvqW5#bPN;^~L!*7neGKfh4m78%eI$|e`&88WN=X3q=E=%ezran5Xq625 z4!Lq*_WE&0p>O@T7ZeWSR^e3QhHol|4a4oG z)HDpYQ+?l!FkXo5PJ}Vje<~t4o zSlyw*Fmv_^fF-7`t{uNyFa%pUK=^Cp?Wo1CjaLnV2?$$Z$mO;1wp7pSY4-n2oW4E5mXTp`h0KBF&p^8WKZLjKZhmaFhFNh!@ za^(xBvu(Vf%LPp#KNnYTsHI#v)VUK?Z-jy3m#Syctgc)SUdL}$c(aG5zkp~B7V;qA zW~U>ReaYp)^)K***!XMJV@pu9x%>x^3+2=qDpor>njtPf0n3eg^s@4Px;#su_y5qWAIM4bv~##q8zwc8@#y~Tmn zl$J3u$PQ*1BmNbC>TsCIrDixzWTn8*xf5U5@z9nM;X}3RCRU^lZ9V927eqjR$Hb@j z6FO_n6Y**;Oe_-)fl&UCJl0PO^(#W-K)Z9I6J#y(OM~ktLero!R2#GZ8I4MJN5H}6e;Fp^QF=*FCVz}p<+Bis2 zR=W|m=^{7a|A5!chy7@n*2Y9!+j z$syff>rXh&lz*~ZK>d>;5A1GX1DY5)8xH+sD1c?R3{nVvr#89ct!ZMgyKM-AL$?eC z#ILaYmLU{&Op5h_@5^zlecPJF#BVfJ4C0PjgpF<+RM2(D5CTPa@P*%D{~g0R;t%>E zhDW3291xtZMt|S|DT8Ak$jCqGA~(4Fv!Rgl*C5mPk3l3d>#jk^_!~LXRwYN|rhQ%< z+*^tB{s$!Y42y|}u=Ae5$asVml8WVW=-;`_5_*ozmVuUAk7K@XKmjLXIdG&O=QoGW zmP&Dcq4y0srUii<8IWKv8%6bTAk3X9CJ4BH-|#wP7=d5Ykg?GnDMm|3$!b$G8Fc02 zkFz46z1cY2jC8r+zcg9Yv&(A31kJ%=S?VEthb!TR3~1_Hsx-!U!u16SmiKMd|2 zM z_Y@%Sx5R^VC(diwV}l>mJu<9exM1Oy+SrJW+iOugm*TWs&DA}j>#?DbDWW@B#XwZK z>r;1YIQkbY#aM0KFwzHh4Hyd7y++!>W`-tlotD%w-RbH#7#errCRE2kc)~m};Q?+0 zxsV~jc5U7lN5Un7%p=f-8%8cAJmJtVaz317kipQ!CKI8&twv0EgOWi8K|g~mhEJHt zs2NPMfH52!xL+R|0hTQ6$(QbFKT8t@Y68ckSlujU`q4Dar%usO$3TsNe;XKi3~zhvUY=V9~|$>>(z3TaKa`Vx^0Oy3&z+Wv!dvlO^j%q zMOJfcDBKR7g}hyB6f?Kdu%NNzh|U8sUH)PU+m_Slp3zWF9kx9#g|7VIJ_+hECL&XEuxJoqd0DY!p4u zSd->rD9t3%GrD*Ll9VsSN?^|b?vUhhbtunxWDu#a#er-fMuNQ~X(ZC1&5@jfAN(?5 z&r7kcaKr(p+I`%pf<7lw0t=nUB8*Gla3Uw;cRU5oWF0eu9#E^b#sx%jl$=aDyUAK( zdNmHDMp8_uV5bXN%}`^bWm96EAjB2fo&|GVv0n|?x}ij`odP`PldVsW_odcT&eFAebF(Y&`!wFjI&{H>M(Euqe)?yBS4D8kmYJw{#Sex|ajY3@QN(DbmY9ncoiikXq`n=Mh$l|6)fd0U zFeyaAt$8NeLZaMUG*I1;0DZrqf|q)eUT|koO)~U!;&_5 zEMeeAjhbkssgoIP*h$!I6shxG^?A%WbSuZ+V2UAWBr>_(+NdJt!VNj;03nVV9M^f& z@20&okET{L=Hu(D+9QIXesu$$v0ITd3!o>0oJB08A5t(zqEcCewK{tvQlY+Qo({Cp z$P0Z-?BLmYY$T~BmOyqiDS}xos87mcu#ohw0OMYP)fo#hdn*F)r@wmCT)%NF*iIUbBtAHx)>msEFe~cZ9Iu# z&vj4U6?}w$iEIr`olLAX7jBNnitC^u0Viv2JkIRfF<&x-rhQ2^ia+ z(66kKm`vqZ=-fG1%y`XAN060nV&D>q#uIJzY=^iJD3Ci~&j^%|*Xf58GE>O{<{Px& z-S>CJKxHbaXYL%#q5_Mp!$An^)y!QqP3xv{hUD3<&&tl5V3S5pVeTF*7XjH;r(^D+ zv-NIhC~bPcgH@Kv|k%4fQYp;~NSe3NCUX1rsj`0-u7BvmYkjf5jwGLP}0xdMJ2noSlmKEmAo z1+gM{oI~%~&8SySK|>CnDO&1@?Yy}fMfGEv+C-c-7owe2K%9Y|TvGgRY;58zT{4Y0 zXR1J()d?ME8pOnTSe1`w@bZOb%@JpkDQM5f6%3<3eFew!xh3jQGNeYhywK`WEY{H_=Ora zCy>*bcj*y^`e{PxH{(0HW{8M;5H^vdh<^Hk(1V}G3*eUyv)M}AhZ&Q|h0I^**OL7; z=zy+7e$oCYdd>|79RF|h1H-*D<$}SzH>^p_d_cd@UFt4@StMD+{CzN+4$HpZiu!6S z>MPn^L^rykhL+_6&&l$iX6m(-cvh{%eB9p~HJcgyUsK*BA(cE3bG;K=^yd|M2U@;6A zwH=R;_ByhhL6~zPAg#xVN8I| z>WyN8J49_oM;dF)Ago}^WZZ4xlgWC*nob`fZ0HAm`4z0OHxIRCO|=^R5!5d$rW8Qvrx){P|kbWJD?D4zBJd{k@nIarPHiPtqyy@scIGNM+q4--OSEiFX z!kH$lBwXP53^aCK>D+MWkMI>j>5Y6gESZUQL^RbNTndbdrmYGe%tr2%hiO=5!>#v2 z13F~0@c0vhayGKFH4L4S>#)-7<`eETwGAC+d|~lg zKIpM^IPHD!t+Iry`qe7*r|}(oxYk0Bhpla-Bk;~w+d%K7CKcfY`&-EtbgE@-xD9+@ z)m*fFdv=wv;Y=I7u5;0@R?Hy_317O%3%`!SNW}1W@eDMXw|*vS2OooVijeu}lA&b> zzs*ChKYR}A&Q0rt9C&Xo%65E|y=)OtXOcEdd6N)S!Jwa?g+Xi{zP%L05^ z0kL+_(;;+(>nAZb*y)32cF15&5VFC40lI3T^ukrh(R(oo^U7kQ95jDScC!w{0@F{p zC>zH?|NQDy*xYBt4@ef0^O-W!OaHjw{Zo(ixVqIhSu0XAqLKpGxSc&2EOuXA{>LrD- zPR&qY$J$r%z&1^0v-4avLy4r>TV3(1Tf-VOr}nN@6C~oYr^Xo)}mk>kH-h2e?d|7~S@U4(u7J&d?u&TXn%Y^m^6LQ?0?R1H}`6Wub$d z#?as__iu;|fNlkbJT!p1S8FDD!U`a}(1}lZnOulYeD*7}8~rkBtXw)hi_p;zUl`bk zdZ~BV%a+K1HFBt%yG#rfucB<^n_lTyk6WpLPC7#EdU6t@5Swq^6pKD8Em39Nr~{@? zLuoIf$~KT30{wP;I>YRZV55RbsB? zM7zlaL@C_cjD1~8cp|iA*EdAK-QW!(qKq!O1Q}aVKmW5C|4R<39*tvfayRXWaBIBw zg>Hq8QHd>XwvxyYd`GLa<<}|Z6;dYQ*1M|bSkkrdIE*0G%<=RJV*&oE#yPBO3W!&M zavQlA9eR8?fgvy?8NyHC1bRNlLt>(ty7V=2B6{<6+tK9+---w3(<#yl89jU~T1k*F zupJd_wYj1x4$yrGW5hL(^adFX?T59k)&6PK_j1ua685oS<~Ny7$Um=w|kA!?22QSam$KKbR^)M<1zY(WS?S2h4g6 zl|^s6QHRbw5)e*)E!GIV5HC#(!(u6Oo1(Xa4_!M zu|Ja_^z5pQzz->FMZ{FP=tE)}{cwje-;ifji|Op1j>~g#JL-uiJX53pU$zfpf-}t} z2;g7DQ@u}Bi?My}3iIl1TFP%Sho~fHao?GunX^H#pPa&J!9}DaG8H8L)J!QeWN=Jn zS5R{5(_R)~OyHll@N_OK#=&&;qOK}`i+q)6qp5R2_zrSz!!is2nU2!c?;vZ=zaHxk zAqSBA^T75U)Crpokd4HAI^D)xV3L`S?Y%(yL#+-20{0K1#B0;=V3giRIl(Z5+~kN5 zi_ArJX?O;0IEbgmVw$iJqXMQ^+9|RWV*&Rlaw&5e-KgfC5IU50d$cZ!Ogb@%P zKMU0_?J})^S?{4vT1i)wreh4dd>^j{uM?rJZ6Bl|aEOlSIt})3;?FARIYgh?yKtc~ zdLC=S7ce4#)b}t1fDbol|EzjEG#|xkk|X3e<~q8m@X@&YOsiu82+B&r?E6r^Nod^%!kb75fL3^$l}0*jX&C*NRfM24)o9pnHT?*&OZ z*OZ?^lXN@Quq~51z}ZtM8au%AWAu$) zrynk`?_;u>`37CTSB++6{c`;D$^=oF?WDgErP(=H8VKE|Q5bf?mNUrq;4@@1@g|*K zOzfr~ZgBUq{ot;-_wgb%V-I$FzbiHYgrB1wquo+1V(c}Oa5X||+3+|^gTMbn>!=pj zSJaGs&lI9#e;9v<4dnu37*n>1i7u+;JSiYB8nE&L9s_TI=SAGfU2mZdduF(3B!KiH zZVW77!J*r1{6VWj2n7s$*QSQGbV09HGknmX%R*O;HUWrt%#C3Y3u+(ZWvkAN=~j5H zgbX(WdQXxqPu@NgBTO#S+%Txnas~ZFEDD5;U!(AyH4_9^(0M*br>9{Y z0UsFkp<;#5pX}oSDOYiUFAPzYu;}78oX9m);5|dsB*CX#urF#u(TCH%Qtwi zehGqak)dC~%5QOwm*|Hl+$+Q&T6+T8G6QqhM&QpukRswT*xp2i-tQJP0{XwhUHA16 z0X+_JP!>(av%P&Dn#PDO5m)H)mBdxpauZ_!*XSJHCNI`xKtS}GL2%-_xsASJjgYn* z%=R0zkKW#0$`BV=@gv#HyfK(9Gw;kWnNbb%Zj+838TdKuke(jM*dd0LTR4gD=m*{! z)bev7{5FpCdo#fV@6!h|<0i78z67s7O70;4e=z4np!P#wm5#)K!#z^CZl(t+U_C18 z0v#fxb#oWFF@M6LtgH8U3HpD=)8dvn*Vs{t+w|C7G7r}FqsbMT-&76r*J37Ab^B@iHV@^Pqq5mUn?d}k5Pd^4c@6lOVJ`Y28_i+yWaN|C*zpqq- zUqvASmi>zE-tGGcv@w69wa82!M!sk85cHxgSjkS5j$d(N_h#_MK~fb;fZ|ug2k>UV zuV~aiFqh!Bmff*~e)c}SQO)=r>8rY9y&-?Xd^F-nT*f~TF-KSZPx>K&^YJxSraKp~ zvJ2xMf6-L@$p3e;2BRCMbgz>Ov*VJ>pxO=7&s4)Ff1=6W)sL4%+ar*Z+G{9I4}tgt z<)Q0)J{yuNFrah#wc5CjvX}6pz~5NA^Eg6Yrg%kpH>#7zIIdc?r~wdKi!&X`%mJD| zVR<4cjXvu*7K}kKsf_IaWtAvTPjtdysD}9e*gEfkEbH$7KX~1UpezR>8}|krDLBA} zS%KUbmYD<7O1%f5nVAD{Waa=(IcY<%vhApzd>RI}r|YquqPA?P*i$`~DZkhGT=xz1 z{Jwu(*LBXdKkIzn=Y7sc)}Pl`?b)8Ps$+07Ug#Dojjt5%SVOGnet|CB*_~4=I!CdV zoyG#tF3d%U@?A{@{F9x?Tyfz?@L~y1w^sSO{9q0YNHlFF(A_ zUoLtJi;<>%kt!1Y28Kk$DjfM|qc+BEy37Uj;}lWIpe&rR3UkdsCLwxuf-IWc8Kzqw zOl{~71I!D_xByp-UK2>XFkIOm5*%jQziEjp8z_a#c#Rp@Hi`upVW=$}KB+U6W!e&& z8txE)6?1A~mkj?nc@G}9vvWMLkP{9CxbB6BkY>3ks87-Z1H@JGu7>E`-oe)W) zRC=#sDlJ_L!Bn1U=~@h?!UiWmkn4IYhD>K8-)=T%qN~y2C>D9Zl=dBD*UI)y&&sjl zY&my&l)0;t2xNJPD?(JQx^RBuT>vKR>9t?IZ2uPHUAuf-V#6^)0#`l(@_j?Bs zmwhKaeXA9*Rl`E)S2WV=Y{mQDJAr78>hp|5Hcjlu9^XA1_T~LmC zC?3|n!krCa_s2@ta9$%J)OF12W?wl{l1@>Eoqh)-(mTqa2r5PCbwr@+2r19|4jnST zoeM70t;^!%@<>-VsTv}#JJBd@rk!p$hXbq?13k#>|{otJkgZOa||>#Ke+G+NHK zb9oU2pi!@bovn8zgiy4Y}L;=LoJ ze~fDa?1gjjuIMIpYGLkGQXj+r9TeaEGUVZMCO;NTFBWBeJdLEtiMf6}j?OkW4%9MB zZ`DO=<6O5vN@TyE)XqtP88tSxl{^qnk3{!Vodu> z>`Gb~&pf2?@~v?eotzxHvVE4UOLFBquJj$oR3^J-SYx;*X-#MTwpMJz8Y%yX1!iqA zoPo}+N!Hc=qvLb_2C!Zu=Q_KJK~C5($~=s-$QZFWmBIGzU>qPlr>ef~!ao`-nO$j` zxw=V~V_jX7NOxuS8A5&ILwFQ+Y@UqjPOlLEGKQXcErXmHNBTHbEdxYh6D!BNyJmo- zr1hk1cU(y{w|3F$)(jZ0!Z`V)hwBD;wij(;*XYP#xupeT;`OSE5%0f;hRK1RuE`|Z z@(ZG5axZGx4JwG1?0J-xP6t6%QhK{q!G>THB?o%DJo02;SBMPl4K8|gUT(X}x2fop z`AfTh3&V0hr`A3oq&3ABMM{HeB_7S-1^(<~jmV67U8=mUQv2L+N zQG)eNwy9LQ{9EP2R9B%j6V1UTq)*tKyCGeQvhWMdlD%n^>}*LH;F<-15;>3p*)@P} z+O7L5z)9HjsT}3XwC5gPJ?<^e5&RKs28v%j9feXoh(5hYH<05#fyXy&Fn_pM)(>`- zfRIF9;+hXa!X`n&ceU>!5w1vB7~g~9h7X~0zpYVqiIfcCRpvDchRfEOOEM(!Zk}_y zEv>sVHx2A^Ja*$R_6U&f7efh>6=+uL7Z z=Fuld>er8O-7f{1RK1ALVJ~gf?%GPq1N%w%FGm4d}2nbbg$CGm2+V{BBtWV zJuuM4bWxe7cQxvxrD7EQ%1T?XYl**+H{#JiDRq}p10ud;o{B%1Aqoc+cnZ=&@D$e8 z>L7i0d9rL4(rOiW0@g^%<*o(RTB_HQFNbzAQ1-6=xLVdBIdK(pnv^SC;~nMNAyt=v zd6+7_^9omvY`c;Qaa?7l0|4lR(L>7-=NMZ7a5vgDNq!mQ>LJ%0#jluiC4Ka^t6XF% z?U>j}>aXMvY?Qn)u7{ykuo*4=K1yyYIag8rDpdfGonD?THJ8Ux4rO>;3&t-3Qf