Index | Thread | Search

From:
Rafael Sadowski <rafael@sizeofvoid.org>
Subject:
Re: [update] cad/freecad 1.0.2 -> 1.1.0
To:
Johannes Thyssen Tishman <jtt@openbsd.org>, ports@openbsd.org
Date:
Fri, 17 Apr 2026 12:47:05 +0200

Download raw body.

Thread
On Sat Apr 04, 2026 at 02:44:32PM +0000, Johannes Thyssen Tishman wrote:
> Please find below an update for cad/freecad to version 1.1.0.
> 
> Changelog: https://wiki.freecad.org/Release_notes_1.1
> 
> Notes about this update:
> 
> 1. I've reenabled the AddonManager as it does not cause FreeCAD to crash
>    anymore when saving preferences.
> 
> 2. As you can see by the modified comment in the Makefile, I'm now
>    including build dependencies that are picked up by the Find*.cmake
>    modules of some of FreeCAD's dependencies like vtk or pcl. This is
>    just a precaution suggested by tb@ a while ago that I completely
>    forgot to patch (sorry).
> 
> 3. Most tests of the TestFramework workbench are still passing (32 of 35
>    test sets). A set of tests is not passing due to missing optional
>    dependencies (not yet ported) that are, in my opinion, not worth
>    adding before a user requests them (e.g. vtk python wrapper and gmsh
>    mesher for FEM Workbench). Two other partially failing test sets are
>    due to issues I'm still debugging. One I've already reported[1]
>    upstream and the other is related to the CAM workbench which I'd like
>    to debug once we land this update (if that's okay).
> 
>    [1] https://github.com/FreeCAD/FreeCAD/issues/29041
> 
> 4. Major bump to OndselSolver shared library due to a dynamic export
>    removal.

OK rsadowski

> 
> diff /usr/ports
> path + /usr/ports
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - e2f0a453c5cdf19487ec678e06c98cc1daff7261
> file + cad/freecad/Makefile
> --- cad/freecad/Makefile
> +++ cad/freecad/Makefile
> @@ -4,12 +4,12 @@ DPB_PROPERTIES =	parallel parallel2
>  
>  COMMENT =		general purpose parametric 3D CAD modeler
>  
> -V =			1.0.2
> -DISTNAME =		freecad_source
> +V =			1.1.0
> +DISTNAME =		freecad_source_${V}
>  PKGNAME =		freecad-${V}
> -REVISION =		5
>  
> -SHARED_LIBS +=		OndselSolver              1.0 # 0.0
> +SHARED_LIBS +=		OndselSolver              2.0 # 0.0
> +SHARED_LIBS +=		E57Format                 0.0 # 0.0
>  
>  CATEGORIES =		cad
>  HOMEPAGE =		https://www.freecad.org/
> @@ -26,35 +26,34 @@ WANTLIB += TKDEIGES TKDESTEP TKDESTL TKExpress TKFeat 
>  WANTLIB += TKG2d TKG3d TKGeomAlgo TKGeomBase TKHLR TKLCAF TKMath
>  WANTLIB += TKMesh TKMeshVS TKOffset TKPrim TKRWMesh TKService
>  WANTLIB += TKShHealing TKTopAlgo TKV3d TKVCAF TKXCAF TKXSBase
> -WANTLIB += TKernel X11 boost_atomic-mt boost_chrono-mt boost_container-mt
> +WANTLIB += TKernel boost_atomic-mt boost_chrono-mt boost_container-mt
>  WANTLIB += boost_date_time-mt boost_filesystem-mt boost_iostreams-mt
>  WANTLIB += boost_program_options-mt boost_random-mt boost_regex-mt
>  WANTLIB += boost_serialization-mt boost_thread-mt c execinfo fmt
> -WANTLIB += freetype hdf5 hdf5_hl m med medC pcl_common pcl_features
> -WANTLIB += pcl_filters pcl_kdtree pcl_ml pcl_octree pcl_sample_consensus
> -WANTLIB += pcl_search pcl_segmentation pcl_surface pyside6.abi3
> -WANTLIB += ${MODPY_WANTLIB} shiboken6.abi3 vtkCommonCore vtkCommonDataModel
> -WANTLIB += vtkCommonExecutionModel vtkCommonMath vtkCommonMisc
> -WANTLIB += vtkCommonTransforms vtkFiltersCellGrid vtkFiltersCore
> -WANTLIB += vtkFiltersExtraction vtkFiltersGeneral vtkFiltersGeometry
> -WANTLIB += vtkFiltersSources vtkFiltersVerdict vtkIOCellGrid vtkIOCore
> -WANTLIB += vtkIOImage vtkIOLegacy vtkIOXML vtkIOXMLParser vtkImagingCore
> -WANTLIB += vtkInteractionStyle vtkRenderingCore vtkRenderingFreeType
> -WANTLIB += vtkRenderingHyperTreeGrid vtkRenderingOpenGL2 vtkRenderingUI
> -WANTLIB += vtkglad vtkkissfft vtksys vtktoken xerces-c yaml-cpp
> -WANTLIB += z
> +WANTLIB += freetype hdf5 hdf5_hl icui18n icuuc m med medC pcl_common
> +WANTLIB += pcl_features pcl_filters pcl_kdtree pcl_ml pcl_octree
> +WANTLIB += pcl_sample_consensus pcl_search pcl_segmentation pcl_surface
> +WANTLIB += pyside6.abi3 python3.13 scn shiboken6.abi3 vtkCommonCore
> +WANTLIB += vtkCommonDataModel vtkCommonExecutionModel vtkCommonMath
> +WANTLIB += vtkCommonMisc vtkCommonTransforms vtkFiltersCellGrid
> +WANTLIB += vtkFiltersCore vtkFiltersExtraction vtkFiltersGeneral
> +WANTLIB += vtkFiltersGeometry vtkFiltersSources vtkFiltersVerdict
> +WANTLIB += vtkIOCellGrid vtkIOCore vtkIOImage vtkIOLegacy vtkIOXML
> +WANTLIB += vtkIOXMLParser vtkImagingCore vtkInteractionStyle vtkRenderingCore
> +WANTLIB += vtkRenderingFreeType vtkRenderingHyperTreeGrid vtkRenderingOpenGL2
> +WANTLIB += vtkRenderingUI vtkfmt vtkglad vtkkissfft vtksys vtktoken
> +WANTLIB += vtkx11 xerces-c yaml-cpp z
>  
>  SITES =			https://github.com/FreeCAD/FreeCAD/releases/download/${V}/
>  
> +FIX_CRLF_FILES =	src/Gui/View3DInventor.cpp \
> +			src/Gui/ViewProvider.h
> +
>  COMPILER =		base-clang ports-gcc
>  MODULES =		devel/cmake \
>  			lang/python \
>  			x11/qt6
>  
> -# There are a few dependencies listed at configure time that are not required
> -# by FreeCAD but that are picked up by the Find*.cmake modules of some of its
> -# dependencies like vtk or pcl, e.g., flann, qhull, libusb1, utf8cpp, glslang,
> -# shaderc or exprtk. Do not list these here.
>  BUILD_DEPENDS =		cad/netgen-mesher \
>  			devel/boost \
>  			devel/gtest \
> @@ -67,9 +66,21 @@ BUILD_DEPENDS =		cad/netgen-mesher \
>  			textproc/nlohmann-json \
>  			x11/qt6/pyside6/tools
>  
> +# There are a few dependencies listed at configure time that are not required
> +# by FreeCAD but that are picked up by the Find*.cmake modules of some of its
> +# dependencies like vtk or pcl. List them here just in case.
> +BUILD_DEPENDS +=	devel/libusb1 \
> +			devel/utfcpp \
> +			graphics/glslang \
> +			graphics/shaderc \
> +			math/exprtk \
> +			math/flann \
> +			math/qhull
> +
>  RUN_DEPENDS =		cad/netgen-mesher \
>  			devel/desktop-file-utils \
>  			devel/py-ply \
> +			devel/py-typing-extensions \
>  			graphics/py-matplotlib \
>  			graphics/py-pivy \
>  			misc/shared-mime-info \
> @@ -102,6 +113,7 @@ LIB_DEPENDS =		${MODPY_LIB_DEPENDS} \
>  #	https://github.com/FreeCAD/FreeCAD/blob/main/src/Mod/Robot/App/CMakeLists.txt#L77
>  CONFIGURE_ARGS +=	-DFREECAD_USE_EXTERNAL_FMT=ON \
>  			-DFREECAD_USE_EXTERNAL_PIVY=ON \
> +			-DFREECAD_USE_EXTERNAL_GTEST=ON \
>  			-DFREECAD_USE_EXTERNAL_KDL=OFF \
>  			-DFREECAD_USE_EXTERNAL_ZIPIOS=OFF \
>  			-DFREECAD_USE_EXTERNAL_SMESH=OFF \
> @@ -113,7 +125,6 @@ CONFIGURE_ARGS +=	-DFREECAD_USE_EXTERNAL_FMT=ON \
>  			-DFREECAD_QT_VERSION=6 \
>  			-DINSTALL_TO_SITEPACKAGES=ON \
>  			-DBUILD_FEM_NETGEN=ON \
> -			-DBUILD_ADDONMGR=OFF \
>  			-DCMAKE_DISABLE_FIND_PACKAGE_Doxygen=ON \
>  			-DCMAKE_DISABLE_FIND_PACKAGE_Spnav=ON \
>  			-DCMAKE_DISABLE_FIND_PACKAGE_OpenMP=ON \
> @@ -138,10 +149,9 @@ WRKDIST =		${WRKDIR}
>  PORTHOME =		${WRKDIR}
>  DEBUG_PACKAGES =	${BUILD_PACKAGES}
>  
> -# Some tarballs bundle GSL and GTest, use GSL and GTest from ports:
> +# Some tarballs bundle GSL, use GSL from ports.
>  post-extract:
>  	rm -r ${WRKSRC}/src/3rdParty/GSL
> -	rm -r ${WRKSRC}/tests/lib
>  
>  # To generate src/Build/Version.h file:
>  # 1. git clone --single-branch -b ${VERSION} https://github.com/FreeCAD/FreeCAD
> @@ -163,4 +173,8 @@ post-install:
>  		${WRKINST}${MODPY_SITEPKG}/freecad/ \
>  		${PREFIX}/lib/freecad/{Mod,Ext}/
>  
> +	# Remove unnecessary files from E57Format and OndselSolver.
> +	find ${WRKINST} \( -name 'E57*' -o -name 'OndselSolver*' \) \
> +		-exec rm -rf {} +
> +
>  .include <bsd.port.mk>
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 58be48ead67a3e8657f5144db1c194ce5b35db15
> file + cad/freecad/distinfo
> --- cad/freecad/distinfo
> +++ cad/freecad/distinfo
> @@ -1,2 +1,2 @@
> -SHA256 (freecad_source.tar.gz) = ybjhnb8gzqOHxDKJDqBZBZ/2tX7EzXeCDNEgLRJHu94=
> -SIZE (freecad_source.tar.gz) = 97214151
> +SHA256 (freecad_source_1.1.0.tar.gz) = PQQVYaoSl1XupR38DhzfQ/JiOrBlOOCGCpHb7xrkM9c=
> +SIZE (freecad_source_1.1.0.tar.gz) = 98114570
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 76a7fed76c87bd8a9091405fdac11eb66f30b186
> file + cad/freecad/files/Version.h
> --- cad/freecad/files/Version.h
> +++ cad/freecad/files/Version.h
> @@ -1,16 +1,18 @@
>  
>  // Version Number
>  #define FCVersionMajor  "1"
> -#define FCVersionMinor  "0"
> +#define FCVersionMinor  "1"
>  #define FCVersionName   ""
> -#define FCVersionPoint  "2"
> +#define FCVersionPoint  "0"
>  #define FCVersionSuffix ""
> +// Displayed Copyright Year (i.e. build year)
> +#define FCCopyrightYear 2026
>  // test: $Format:Hash (%H), Date: %ci$
> -#define FCRevision      "39319 (Git)"      //Highest committed revision number
> -#define FCRevisionDate  "2025/08/05 20:19:07"     //Date of highest committed revision
> +#define FCRevision      "44795 (Git)"      //Highest committed revision number
> +#define FCRevisionDate  "2026/03/25 02:17:53"     //Date of highest committed revision
>  #define FCRepositoryURL "Unknown"      //Repository URL of the working copy
>  
>  // Git relevant stuff
> -#define FCRepositoryHash   "256fc7eff3379911ab5daf88e10182c509aa8052"
> -#define FCRepositoryBranch "tag: 1.0.2"
> +#define FCRepositoryHash   "34a9716668b1ddeb55b914f1c5be644826bdbbbf"
> +#define FCRepositoryBranch "tag: 1.1.0"
>  
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 27f9750978608e43a081e55268fab565234d1bf3
> file + cad/freecad/patches/patch-cMake_FreeCAD_Helpers_SetupSalomeSMESH_cmake
> --- cad/freecad/patches/patch-cMake_FreeCAD_Helpers_SetupSalomeSMESH_cmake
> +++ cad/freecad/patches/patch-cMake_FreeCAD_Helpers_SetupSalomeSMESH_cmake
> @@ -3,9 +3,9 @@ OpenMPI is only needed if devel/med was compiled with 
>  Index: cMake/FreeCAD_Helpers/SetupSalomeSMESH.cmake
>  --- cMake/FreeCAD_Helpers/SetupSalomeSMESH.cmake.orig
>  +++ cMake/FreeCAD_Helpers/SetupSalomeSMESH.cmake
> -@@ -111,15 +111,6 @@ macro(SetupSalomeSMESH)
> -                 if(NOT HDF5_FOUND)
> -                     message( FATAL_ERROR "hdf5.h was not found.")
> +@@ -131,15 +131,6 @@ macro(SetupSalomeSMESH)
> +                         message( FATAL_ERROR "hdf5.h was not found (tested pkg-config ${HDF5_VARIANT}, suggested header location was '${hdf5_include_path}').")
> +                     endif()
>                   endif()
>  -
>  -                # Med Fichier can require MPI
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - cda801258a2e8fb127dd8e336f018c8df6124b19
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_CMakeLists_txt
> --- cad/freecad/patches/patch-src_3rdParty_salomesmesh_CMakeLists_txt
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_CMakeLists_txt
> @@ -1,7 +1,7 @@
>  Index: src/3rdParty/salomesmesh/CMakeLists.txt
>  --- src/3rdParty/salomesmesh/CMakeLists.txt.orig
>  +++ src/3rdParty/salomesmesh/CMakeLists.txt
> -@@ -135,6 +135,7 @@ else(MSVC)
> +@@ -134,6 +134,7 @@ else(MSVC)
>               ${NGLIB_LIBRARIES}
>               ${OCC_LIBRARIES}
>               ${OCC_OCAF_LIBRARIES}
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_inc_SMDS_MeshElement_hxx (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_inc_SMDS_MeshElement_hxx
> @@ -0,0 +1,18 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +
> +Index: src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
> +--- src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx.orig
> ++++ src/3rdParty/salomesmesh/inc/SMDS_MeshElement.hxx
> +@@ -45,11 +45,7 @@
> + //typedef unsigned short UShortType;
> + typedef short ShortType;
> + typedef int   LongType;
> +-#ifdef VTK_CELL_ARRAY_V2
> + typedef const vtkIdType* vtkIdTypePtr;
> +-#else
> +-typedef vtkIdType* vtkIdTypePtr;
> +-#endif
> + class SMDS_MeshNode;
> + class SMDS_MeshEdge;
> + class SMDS_MeshFace;
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_inc_SMDS_UnstructuredGrid_hxx (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_inc_SMDS_UnstructuredGrid_hxx
> @@ -0,0 +1,32 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +Commit: c9acda2a659f9ac079fefd2c0b8d6ff9c8a8238e
> +
> +Index: src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
> +--- src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx.orig
> ++++ src/3rdParty/salomesmesh/inc/SMDS_UnstructuredGrid.hxx
> +@@ -28,6 +28,7 @@
> + 
> + #include <vtkUnstructuredGrid.h>
> + #include <vtkCellLinks.h>
> ++#include <vtkVersion.h>
> + 
> + #include <vector>
> + #include <set>
> +@@ -95,14 +96,10 @@ class SMDS_EXPORT SMDS_UnstructuredGrid: public vtkUns
> +                                        std::map<int, std::map<long,int> >& nodeQuadDomains);
> +   vtkCellLinks* GetLinks()
> +   {
> +-#ifdef VTK_CELL_ARRAY_V2
> +-  #if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +     return static_cast<vtkCellLinks*>(vtkUnstructuredGrid::GetLinks());
> +-  #else
> +-    return static_cast<vtkCellLinks*>(GetCellLinks());
> +-  #endif
> + #else
> +-    return Links;
> ++    return static_cast<vtkCellLinks*>(GetCellLinks());
> + #endif
> +   }
> +   SMDS_Downward* getDownArray(unsigned char vtkType)
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_BallElement_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_BallElement_cpp
> @@ -0,0 +1,23 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_BallElement.cpp
> +@@ -67,16 +67,9 @@ void SMDS_BallElement::SetDiameter(double diameter)
> + bool SMDS_BallElement::ChangeNode (const SMDS_MeshNode * node)
> + {
> +   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
> +-#ifdef VTK_CELL_ARRAY_V2
> +   vtkNew<vtkIdList> cellPoints;
> +   grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
> +   cellPoints->SetId(0, node->getVtkId());
> +-#else
> +-  vtkIdType npts = 0;
> +-  vtkIdType* pts = 0;
> +-  grid->GetCellPoints(myVtkID, npts, pts);
> +-  pts[0] = node->getVtkId();
> +-#endif
> +   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
> +   return true;
> + }
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_Mesh0DElement_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_Mesh0DElement_cpp
> @@ -0,0 +1,33 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh0DElement.cpp
> +@@ -146,7 +146,6 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNo
> +   if ( nbNodes == 1 )
> +   {
> +     vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
> +-#ifdef VTK_CELL_ARRAY_V2
> +     vtkNew<vtkIdList> cellPoints;
> +     grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
> +     if (nbNodes != cellPoints->GetNumberOfIds())
> +@@ -156,18 +155,6 @@ bool SMDS_Mesh0DElement::ChangeNodes(const SMDS_MeshNo
> +     }
> +     myNode = nodes[0];
> +     cellPoints->SetId(0, myNode->getVtkId());
> +-#else
> +-    vtkIdType npts = 0;
> +-    vtkIdType* pts = 0;
> +-    grid->GetCellPoints(myVtkID, npts, pts);
> +-    if (nbNodes != npts)
> +-    {
> +-      MESSAGE("ChangeNodes problem: not the same number of nodes " << npts << " -> " << nbNodes);
> +-      return false;
> +-    }
> +-    myNode = nodes[0];
> +-    pts[0] = myNode->getVtkId();
> +-#endif
> + 
> +     SMDS_Mesh::_meshList[myMeshId]->setMyModified();
> +     return true;
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_MeshNode_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_MeshNode_cpp
> @@ -0,0 +1,68 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: c9acda2a659f9ac079fefd2c0b8d6ff9c8a8238e
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshNode.cpp
> +@@ -31,6 +31,7 @@
> + #include "SMDS_IteratorOfElements.hxx"
> + #include "SMDS_Mesh.hxx"
> + #include <vtkUnstructuredGrid.h>
> ++#include <vtkVersion.h>
> + 
> + #include "utilities.h"
> + #include "Utils_SALOME_Exception.hxx"
> +@@ -69,7 +70,7 @@ void SMDS_MeshNode::init(int id, int meshId, int shape
> +   SMDS_UnstructuredGrid * grid = mesh->getGrid();
> +   vtkPoints *points = grid->GetPoints();
> +   points->InsertPoint(myVtkID, x, y, z);
> +-#if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +   SMDS_CellLinks *cellLinks = dynamic_cast<SMDS_CellLinks*>(grid->GetLinks());
> + #else
> +   SMDS_CellLinks *cellLinks = dynamic_cast<SMDS_CellLinks*>(grid->GetCellLinks());
> +@@ -195,7 +196,7 @@ class SMDS_MeshNode_MyInvIterator: public SMDS_ElemIte
> + SMDS_ElemIteratorPtr SMDS_MeshNode::
> + GetInverseElementIterator(SMDSAbs_ElementType type) const
> + {
> +-#if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks())->GetLink(myVtkID);
> + #else
> +   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
> +@@ -259,7 +260,7 @@ elementsIterator(SMDSAbs_ElementType type) const
> +     return SMDS_MeshElement::elementsIterator(SMDSAbs_Node);
> +   else
> +   {
> +-#if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +     vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks())->GetLink(myVtkID);
> + #else
> +     vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
> +@@ -362,7 +363,7 @@ void SMDS_MeshNode::AddInverseElement(const SMDS_MeshE
> +   const SMDS_MeshCell *cell = dynamic_cast<const SMDS_MeshCell*> (ME);
> +   assert(cell);
> +   SMDS_UnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
> +-#if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +   vtkCellLinks *Links = static_cast<vtkCellLinks*>(grid->GetLinks());
> + #else
> +   vtkCellLinks *Links = static_cast<vtkCellLinks*>(grid->GetCellLinks());
> +@@ -382,7 +383,7 @@ void SMDS_MeshNode::ClearInverseElements()
> + 
> + bool SMDS_MeshNode::emptyInverseElements()
> + {
> +-#if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks())->GetLink(myVtkID);
> + #else
> +   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
> +@@ -398,7 +399,7 @@ bool SMDS_MeshNode::emptyInverseElements()
> + 
> + int SMDS_MeshNode::NbInverseElements(SMDSAbs_ElementType type) const
> + {
> +-#if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetLinks())->GetLink(myVtkID);
> + #else
> +   vtkCellLinks::Link l = static_cast<vtkCellLinks*>(SMDS_Mesh::_meshList[myMeshId]->getGrid()->GetCellLinks())->GetLink(myVtkID);
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_Mesh_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_Mesh_cpp
> @@ -0,0 +1,357 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +Commit: c9acda2a659f9ac079fefd2c0b8d6ff9c8a8238e
> +Commit: 3a68d91ae306d88703d203d2ac8d41b2e5ce12dd
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_Mesh.cpp
> +@@ -53,6 +53,7 @@
> + #include <vtkCell.h>
> + #include <vtkCellLinks.h>
> + #include <vtkIdList.h>
> ++#include <vtkVersion.h>
> + 
> + #include <algorithm>
> + #include <map>
> +@@ -283,7 +284,11 @@ SMDS_BallElement* SMDS_Mesh::AddBallWithID(const SMDS_
> +   ball->init(n->getVtkId(), diameter, this);
> +   if (!this->registerElement(ID,ball))
> +   {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(ball->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +     this->myGrid->GetCellTypesArray()->SetValue(ball->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +     myBallPool->destroy(ball);
> +     return 0;
> +   }
> +@@ -343,7 +348,11 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_Mes
> +   edgevtk->init(nodeIds, this);
> +   if (!this->registerElement(ID,edgevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(edgevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(edgevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myEdgePool->destroy(edgevtk);
> +       return 0;
> +     }
> +@@ -627,7 +636,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +     volvtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,volvtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myVolumePool->destroy(volvtk);
> +       return 0;
> +     }
> +@@ -734,7 +747,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +     volvtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,volvtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myVolumePool->destroy(volvtk);
> +       return 0;
> +     }
> +@@ -847,7 +864,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +     volvtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,volvtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myVolumePool->destroy(volvtk);
> +       return 0;
> +     }
> +@@ -982,7 +1003,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +     volvtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,volvtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myVolumePool->destroy(volvtk);
> +       return 0;
> +     }
> +@@ -1104,7 +1129,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +     volvtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,volvtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myVolumePool->destroy(volvtk);
> +       return 0;
> +     }
> +@@ -1307,7 +1336,11 @@ SMDS_Mesh::AddPolygonalFaceWithID (const vector<const 
> +     facevtk->initPoly(myNodeIds, this);
> +     if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -1372,7 +1405,11 @@ SMDS_Mesh::AddQuadPolygonalFaceWithID (const vector<co
> +     facevtk->initQuadPoly(myNodeIds, this);
> +     if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -1452,7 +1489,11 @@ SMDS_Mesh::AddPolyhedralVolumeWithID (const vector<con
> +     volvtk->initPoly(myNodeIds, quantities, this);
> +     if (!this->registerElement(ID, volvtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myVolumePool->destroy(volvtk);
> +       return 0;
> +     }
> +@@ -1508,7 +1549,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeFromVtkIdsWithID(
> +   volvtk->init(vtkNodeIds, this);
> +   if (!this->registerElement(ID,volvtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myVolumePool->destroy(volvtk);
> +       return 0;
> +     }
> +@@ -1567,7 +1612,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceFromVtkIdsWithID(cons
> +   facevtk->init(vtkNodeIds, this);
> +   if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -1715,7 +1764,11 @@ SMDS_MeshFace * SMDS_Mesh::createTriangle(const SMDS_M
> +     facevtk->init(myNodeIds, this); // put in vtkUnstructuredGrid
> +     if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -1769,7 +1822,11 @@ SMDS_MeshFace * SMDS_Mesh::createQuadrangle(const SMDS
> +     facevtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -2100,7 +2157,11 @@ SMDS_MeshEdge* SMDS_Mesh::FindEdgeOrCreate(const SMDS_
> +     edgevtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,edgevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(edgevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(edgevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myEdgePool->destroy(edgevtk);
> +       return 0;
> +     }
> +@@ -3311,7 +3372,11 @@ void SMDS_Mesh::RemoveElement(const SMDS_MeshElement *
> +       if (vtkid >= 0)
> +         {
> +           //MESSAGE("VTK_EMPTY_CELL in " << vtkid);
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++          this->myGrid->GetCellTypes()->SetTuple1(vtkid, VTK_EMPTY_CELL);
> ++#else
> +           this->myGrid->GetCellTypesArray()->SetValue(vtkid, VTK_EMPTY_CELL);
> ++#endif
> +         }
> +       it++;
> +     }
> +@@ -3416,7 +3481,11 @@ void SMDS_Mesh::RemoveFreeElement(const SMDS_MeshEleme
> +     }
> +     myElementIDFactory->ReleaseID(elemId, vtkId);
> + 
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(vtkId, VTK_EMPTY_CELL);
> ++#else
> +     this->myGrid->GetCellTypesArray()->SetValue(vtkId, VTK_EMPTY_CELL);
> ++#endif
> +     // --- to do: keep vtkid in a list of reusable cells
> +   }
> + }
> +@@ -3598,7 +3667,11 @@ SMDS_MeshEdge* SMDS_Mesh::AddEdgeWithID(const SMDS_Mes
> +   edgevtk->init(myNodeIds, this);
> +   if (!this->registerElement(ID,edgevtk))
> +   {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(edgevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +     this->myGrid->GetCellTypesArray()->SetValue(edgevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +     myEdgePool->destroy(edgevtk);
> +     return 0;
> +   }
> +@@ -3681,7 +3754,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_Mes
> +     facevtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -3768,7 +3845,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_Mes
> +     facevtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -3859,7 +3940,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_Mes
> +     facevtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -3953,7 +4038,11 @@ SMDS_MeshFace* SMDS_Mesh::AddFaceWithID(const SMDS_Mes
> +     facevtk->init(myNodeIds, this);
> +     if (!this->registerElement(ID,facevtk))
> +     {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++      this->myGrid->GetCellTypes()->SetTuple1(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +       this->myGrid->GetCellTypesArray()->SetValue(facevtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +       myFacePool->destroy(facevtk);
> +       return 0;
> +     }
> +@@ -4056,7 +4145,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +   volvtk->init(myNodeIds, this);
> +   if (!this->registerElement(ID,volvtk))
> +   {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +     myVolumePool->destroy(volvtk);
> +     return 0;
> +   }
> +@@ -4171,7 +4264,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +   volvtk->init(myNodeIds, this);
> +   if (!this->registerElement(ID,volvtk))
> +   {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +     myVolumePool->destroy(volvtk);
> +     return 0;
> +   }
> +@@ -4298,7 +4395,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +   volvtk->init(myNodeIds, this);
> +   if (!this->registerElement(ID,volvtk))
> +   {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +     myVolumePool->destroy(volvtk);
> +     return 0;
> +   }
> +@@ -4445,7 +4546,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +   volvtk->init(myNodeIds, this);
> +   if (!this->registerElement(ID,volvtk))
> +   {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +     myVolumePool->destroy(volvtk);
> +     return 0;
> +   }
> +@@ -4625,7 +4730,11 @@ SMDS_MeshVolume* SMDS_Mesh::AddVolumeWithID(const SMDS
> +   volvtk->init(myNodeIds, this);
> +   if (!this->registerElement(ID,volvtk))
> +   {
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 5, 20251004)
> ++    this->myGrid->GetCellTypes()->SetTuple1(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#else
> +     this->myGrid->GetCellTypesArray()->SetValue(volvtk->getVtkId(), VTK_EMPTY_CELL);
> ++#endif
> +     myVolumePool->destroy(volvtk);
> +     return 0;
> +   }
> +@@ -4712,14 +4821,10 @@ void SMDS_Mesh::dumpGrid(string ficdump)
> +         ficcon << endl;
> +   }
> +   ficcon << "-------------------------------- connectivity " <<  nbPoints << endl;
> +-#ifdef VTK_CELL_ARRAY_V2
> +-  #if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +   vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetLinks());
> +-  #else
> +-  vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetCellLinks());
> +-  #endif
> + #else
> +-  vtkCellLinks *links = myGrid->GetCellLinks();
> ++  vtkCellLinks *links = static_cast<vtkCellLinks*>(myGrid->GetCellLinks());
> + #endif
> +   for (int i=0; i<nbPoints; i++)
> +   {
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_UnstructuredGrid_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_UnstructuredGrid_cpp
> @@ -0,0 +1,230 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +Commit: ff3e419d2ea4603ed8a28d3777f0d75b2a2af194
> +Commit: 3a68d91ae306d88703d203d2ac8d41b2e5ce12dd
> +Commit: 261ca3905b47b251b0751fd7af45ad5c3fd129e4
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_UnstructuredGrid.cpp
> +@@ -193,8 +193,8 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<in
> + 
> +   vtkCellArray *newConnectivity = vtkCellArray::New();
> +   newConnectivity->Initialize();
> +-  int oldCellDataSize = this->Connectivity->GetData()->GetSize();
> +-  newConnectivity->Allocate(oldCellDataSize);
> ++  int oldCellDataSize = this->GetCells()->GetConnectivityArray()->GetSize();
> ++  newConnectivity->AllocateExact(oldCellDataSize, oldCellDataSize);
> +   MESSAGE("oldCellSize="<< oldCellSize << " oldCellDataSize=" << oldCellDataSize);
> + 
> +   vtkUnsignedCharArray *newTypes = vtkUnsignedCharArray::New();
> +@@ -214,11 +214,11 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<in
> +   while ( i < oldCellSize )
> +   {
> +     // skip a hole if any
> +-    while ( i < oldCellSize && this->Types->GetValue(i) == VTK_EMPTY_CELL )
> ++    while ( i < oldCellSize && this->GetCellType(i) == VTK_EMPTY_CELL )
> +       ++i;
> +     int startBloc = i;
> +     // look for a block end
> +-    while ( i < oldCellSize && this->Types->GetValue(i) != VTK_EMPTY_CELL )
> ++    while ( i < oldCellSize && this->GetCellType(i) != VTK_EMPTY_CELL )
> +       ++i;
> +     int endBloc = i;
> +     if ( endBloc > startBloc )
> +@@ -242,7 +242,7 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<in
> +   {
> +     for (int oldCellID = 0; oldCellID < oldCellSize; oldCellID++)
> +     {
> +-      if (this->Types->GetValue(oldCellID) == VTK_EMPTY_CELL)
> ++      if (this->GetCellType(oldCellID) == VTK_EMPTY_CELL)
> +         continue;
> +       int newCellId = idCellsOldToNew[ oldCellID ];
> +       if (newTypes->GetValue(newCellId) == VTK_POLY_VERTEX)
> +@@ -250,6 +250,71 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<in
> +     }
> +   }
> + 
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 3, 20240112)
> ++  if ( this->FaceLocations )
> ++  {
> ++    vtkIdTypeArray *iniFaceLocO = (vtkIdTypeArray *)this->FaceLocations->GetOffsetsArray();
> ++    vtkIdTypeArray *iniFaceLocC = (vtkIdTypeArray *)this->FaceLocations->GetConnectivityArray();
> ++    vtkIdTypeArray *iniFaceO = (vtkIdTypeArray *)this->Faces->GetOffsetsArray();
> ++    vtkIdTypeArray *iniFaceC = (vtkIdTypeArray *)this->Faces->GetConnectivityArray();
> ++    //
> ++    vtkNew<vtkIdTypeArray> facesLoc_o; facesLoc_o->Initialize(); facesLoc_o->InsertNextValue(0);
> ++    vtkNew<vtkIdTypeArray> facesLoc_c; facesLoc_c->Initialize();
> ++    vtkNew<vtkIdTypeArray> faces_o; faces_o->Initialize(); faces_o->InsertNextValue(0);
> ++    vtkNew<vtkIdTypeArray> faces_c; faces_c->Initialize();
> ++    int newFaceId( 0 );
> ++    vtkIdType facesLoc_o_cur(0),faces_o_cur(0);
> ++    // for ( vtkIdType newCellID = 0; newCellID < newCellSize; newCellID++ )
> ++    for (int oldCellId = 0; oldCellId < oldCellSize; oldCellId++)
> ++    {
> ++      int newCellId = idCellsOldToNew[oldCellId];
> ++      if ( this->GetCellType(newCellId) == VTK_POLYHEDRON )
> ++      {
> ++        vtkIdType oldStartFaceLocOff = iniFaceLocO->GetValue( oldCellId );
> ++        vtkIdType nCellFaces = iniFaceLocO->GetValue( oldCellId + 1 ) - oldStartFaceLocOff;
> ++        facesLoc_o_cur += nCellFaces;
> ++        facesLoc_o->InsertNextValue( facesLoc_o_cur );
> ++        for ( int n = 0; n < nCellFaces; n++ )
> ++        {
> ++          facesLoc_c->InsertNextValue( newFaceId++ );
> ++          int curFaceId = iniFaceLocC->GetValue( oldStartFaceLocOff + n );
> ++          int oldStartPtOfFaceOff = iniFaceO->GetValue( curFaceId );
> ++          int nbOfPts = iniFaceO->GetValue( curFaceId + 1 ) - oldStartPtOfFaceOff;
> ++          faces_o_cur += nbOfPts;
> ++          faces_o->InsertNextValue( faces_o_cur );
> ++          for( int m = 0 ; m < nbOfPts ; m++ )
> ++          {
> ++            vtkIdType oldpt = iniFaceC->GetValue( oldStartPtOfFaceOff + m );
> ++            int curPt = idNodesOldToNew[ oldpt ];
> ++            faces_c->InsertNextValue( curPt );
> ++          }
> ++        }
> ++      }
> ++      else
> ++      {
> ++        facesLoc_o->InsertNextValue(facesLoc_o_cur);
> ++      }
> ++    }
> ++    {
> ++      faces_o->Squeeze(); faces_c->Squeeze();
> ++      facesLoc_o->Squeeze(); facesLoc_c->Squeeze();
> ++      //
> ++      vtkNew<vtkCellArray> outFaces;
> ++      outFaces->SetData( faces_o, faces_c );
> ++      vtkNew<vtkCellArray> outFaceLocations;
> ++      outFaceLocations->SetData( facesLoc_o, facesLoc_c );
> ++      //
> ++      this->SetPolyhedralCells(newTypes, newConnectivity, outFaceLocations, outFaces);
> ++    }
> ++  }
> ++  else
> ++  {
> ++    {
> ++      this->SetCells(newTypes,newConnectivity);
> ++    }
> ++    //this->CellLocations = newLocations;
> ++  }
> ++#else
> +   vtkIdTypeArray* thisFaceLocations = GetFaceLocations();
> +   vtkIdTypeArray* thisFaces = GetFaces();
> +   if (thisFaceLocations)
> +@@ -262,7 +327,7 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<in
> +       newFaces->Allocate(thisFaces->GetSize());
> +       for (int i = 0; i < oldCellSize; i++)
> +         {
> +-          if (this->Types->GetValue(i) == VTK_EMPTY_CELL)
> ++          if (this->GetCellType(i) == VTK_EMPTY_CELL)
> +             continue;
> +           int newCellId = idCellsOldToNew[i];
> +           if (newTypes->GetValue(newCellId) == VTK_POLYHEDRON)
> +@@ -297,6 +362,7 @@ void SMDS_UnstructuredGrid::compactGrid(std::vector<in
> +   {
> +     this->SetCells(newTypes, newLocations, newConnectivity, thisFaceLocations, thisFaces);
> +   }
> ++#endif
> + 
> +   newPoints->Delete();
> +   newTypes->Delete();
> +@@ -333,7 +399,7 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharAr
> +   //MESSAGE("copyBloc " << alreadyCopied << " " << start << " " << end << " size: " << end - start << " total: " << alreadyCopied + end - start);
> +   for (int j = start; j < end; j++)
> +     {
> +-      newTypes->SetValue(alreadyCopied, this->Types->GetValue(j));
> ++      newTypes->SetValue(alreadyCopied, this->GetCellType(j));
> +       idCellsOldToNew[j] = alreadyCopied; // old vtkId --> new vtkId
> +       // The difference is mainly the internal representation of vtkCellArray between vtk 7.x and vtk 9.x
> +       // In the old version a single array of the form (n1,id1,id2,...,idn1, n2,id1,id2,...,idn2, ...) is used
> +@@ -341,16 +407,12 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharAr
> +       // (n1,n2,n3) and (id1,id2,...,idn1,id1,id2,...,idn2, ...)
> +       // The Locations array in vtk 7.x kept the positions of the n's of the above array: (0, idn1 + 1, idn2 + 2).
> +       // In vtk 9.x this array doesn't exist any more but its values can be determined with idni + i
> +-#ifdef VTK_CELL_ARRAY_V2
> +       vtkIdType oldLoc = ((vtkIdTypeArray *)(this->Connectivity->GetOffsetsArray()))->GetValue( j ) + j;
> +-#else
> +-      vtkIdType oldLoc = this->Locations->GetValue(j);
> +-#endif
> +       vtkIdType nbpts;
> +       vtkIdTypePtr oldPtsCell = 0;
> +       this->Connectivity->GetCell(oldLoc, nbpts, oldPtsCell);
> +       assert(nbpts < NBMAXNODESINCELL);
> +-      //MESSAGE(j << " " << alreadyCopied << " " << (int)this->Types->GetValue(j) << " " << oldLoc << " " << nbpts );
> ++      //MESSAGE(j << " " << alreadyCopied << " " << (int)this->GetCellType(j) << " " << oldLoc << " " << nbpts );
> +       for (int l = 0; l < nbpts; l++)
> +         {
> +           int oldval = oldPtsCell[l];
> +@@ -358,7 +420,8 @@ void SMDS_UnstructuredGrid::copyBloc(vtkUnsignedCharAr
> +           //MESSAGE("   " << oldval << " " << pointsCell[l]);
> +         }
> +       /*int newcnt = */newConnectivity->InsertNextCell(nbpts, pointsCell);
> +-      int newLoc = newConnectivity->GetInsertLocation(nbpts);
> ++      int newLoc = this->GetCells()->GetOffsetsArray()->GetNumberOfValues() - 1
> ++        + this->GetCells()->GetConnectivityArray()->GetNumberOfValues() - nbpts - 1;
> +       //MESSAGE(newcnt << " " << newLoc);
> +       newLocations->SetValue(alreadyCopied, newLoc);
> +       alreadyCopied++;
> +@@ -965,7 +1028,6 @@ void SMDS_UnstructuredGrid::GetNodeIds(std::set<int>& 
> +  */
> + void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVolId, std::map<int, int> localClonedNodeIds)
> + {
> +-#ifdef VTK_CELL_ARRAY_V2
> +   vtkNew<vtkIdList> cellPoints;
> +   this->GetCellPoints(vtkVolId, cellPoints.GetPointer());
> +   for (vtkIdType i = 0; i < cellPoints->GetNumberOfIds(); i++)
> +@@ -979,22 +1041,6 @@ void SMDS_UnstructuredGrid::ModifyCellNodes(int vtkVol
> +           //this->AddReferenceToCell(pts[i], vtkVolId);
> +         }
> +     }
> +-#else
> +-  vtkIdType npts = 0;
> +-  vtkIdType *pts; // will refer to the point id's of the face
> +-  this->GetCellPoints(vtkVolId, npts, pts);
> +-  for (int i = 0; i < npts; i++)
> +-    {
> +-      if (localClonedNodeIds.count(pts[i]))
> +-        {
> +-          vtkIdType oldpt = pts[i];
> +-          pts[i] = localClonedNodeIds[oldpt];
> +-          //MESSAGE(oldpt << " --> " << pts[i]);
> +-          //this->RemoveReferenceToCell(oldpt, vtkVolId);
> +-          //this->AddReferenceToCell(pts[i], vtkVolId);
> +-        }
> +-    }
> +-#endif
> + }
> + 
> + /*! reorder the nodes of a face
> +@@ -1024,25 +1070,17 @@ void SMDS_UnstructuredGrid::BuildLinks()
> +     this->Links->UnRegister(this);
> +     }
> + 
> +-#ifdef VTK_CELL_ARRAY_V2
> +   this->Links = SMDS_CellLinks::New();
> +   GetLinks()->Allocate(this->GetNumberOfPoints());
> +   GetLinks()->Register(this);
> +-//FIXME: vtk9
> +-  #if VTK_VERSION_NUMBER < VTK_VERSION_CHECK(9,3,0)
> ++#if VTK_VERSION_NUMBER < VTK_VERSION_CHECK(9, 2, 20221112)
> +   GetLinks()->BuildLinks(this);
> +-  #else
> ++#else
> +   GetLinks()->SetDataSet(this);
> ++  std::cout << this->GetNumberOfPoints() << std::endl;
> +   GetLinks()->BuildLinks();
> +-  #endif
> +-  GetLinks()->Delete();
> +-#else
> +-  this->Links = SMDS_CellLinks::New();
> +-  this->Links->Allocate(this->GetNumberOfPoints());
> +-  this->Links->Register(this);
> +-  this->Links->BuildLinks(this, this->Connectivity);
> +-  this->Links->Delete();
> + #endif
> ++  GetLinks()->Delete();
> + }
> + 
> + /*! Create a volume (prism or hexahedron) by duplication of a face.
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_VtkCellIterator_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_VtkCellIterator_cpp
> @@ -0,0 +1,20 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: 6d4ce9e9b84963688e283adaf775ed40d5d775a1
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkCellIterator.cpp
> +@@ -182,9 +182,10 @@ SMDS_VtkCellIteratorPolyH::SMDS_VtkCellIteratorPolyH(S
> +   case SMDSEntity_Polyhedra:
> +   {
> +     //MESSAGE("SMDS_VtkCellIterator Polyhedra");
> +-    vtkIdType nFaces = 0;
> +-    vtkIdTypePtr ptIds = 0;
> +-    grid->GetFaceStream(_cellId, nFaces, ptIds);
> ++    vtkNew<vtkIdList> faceStream;
> ++    grid->GetFaceStream( vtkCellId, faceStream);
> ++    vtkIdType nFaces = faceStream->GetId(0);
> ++    vtkIdType *ptIds = faceStream->GetPointer(1);
> +     int id = 0;
> +     _nbNodesInFaces = 0;
> +     for (int i = 0; i < nFaces; i++)
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_VtkEdge_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_VtkEdge_cpp
> @@ -0,0 +1,35 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkEdge.cpp
> +@@ -67,7 +67,6 @@ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode * n
> + bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
> + {
> +   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
> +-#ifdef VTK_CELL_ARRAY_V2
> +   vtkNew<vtkIdList> cellPoints;
> +   grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
> +   if (nbNodes != cellPoints->GetNumberOfIds())
> +@@ -79,20 +78,6 @@ bool SMDS_VtkEdge::ChangeNodes(const SMDS_MeshNode* no
> +     {
> +       cellPoints->SetId(i, nodes[i]->getVtkId());
> +     }
> +-#else
> +-  vtkIdType npts = 0;
> +-  vtkIdType* pts = 0;
> +-  grid->GetCellPoints(myVtkID, npts, pts);
> +-  if (nbNodes != npts)
> +-    {
> +-      MESSAGE("ChangeNodes problem: not the same number of nodes " << npts << " -> " << nbNodes);
> +-      return false;
> +-    }
> +-  for (int i = 0; i < nbNodes; i++)
> +-    {
> +-      pts[i] = nodes[i]->getVtkId();
> +-    }
> +-#endif
> +   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
> +   return true;
> + }
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_VtkFace_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_VtkFace_cpp
> @@ -0,0 +1,54 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkFace.cpp
> +@@ -101,7 +101,6 @@ void SMDS_VtkFace::initQuadPoly(const std::vector<vtkI
> + bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
> + {
> +   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
> +-#ifdef VTK_CELL_ARRAY_V2
> +   vtkNew<vtkIdList> cellPoints;
> +   grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
> +   if (nbNodes != cellPoints->GetNumberOfIds())
> +@@ -113,20 +112,6 @@ bool SMDS_VtkFace::ChangeNodes(const SMDS_MeshNode* no
> +     {
> +       cellPoints->SetId(i, nodes[i]->getVtkId());
> +     }
> +-#else
> +-  vtkIdType npts = 0;
> +-  vtkIdType* pts = 0;
> +-  grid->GetCellPoints(myVtkID, npts, pts);
> +-  if (nbNodes != npts)
> +-    {
> +-      MESSAGE("ChangeNodes problem: not the same number of nodes " << npts << " -> " << nbNodes);
> +-      return false;
> +-    }
> +-  for (int i = 0; i < nbNodes; i++)
> +-    {
> +-      pts[i] = nodes[i]->getVtkId();
> +-    }
> +-#endif
> +   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
> +   return true;
> + }
> +@@ -372,18 +357,10 @@ SMDS_NodeIteratorPtr SMDS_VtkFace::interlacedNodesIter
> + void SMDS_VtkFace::ChangeApex(SMDS_MeshNode* node)
> + {
> +   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
> +-#ifdef VTK_CELL_ARRAY_V2
> +   vtkNew<vtkIdList> cellPoints;
> +   grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
> +   grid->RemoveReferenceToCell(cellPoints->GetId(0), myVtkID);
> +   cellPoints->SetId(0, node->getVtkId());
> +-#else
> +-  vtkIdType npts = 0;
> +-  vtkIdType* pts = 0;
> +-  grid->GetCellPoints(myVtkID, npts, pts);
> +-  grid->RemoveReferenceToCell(pts[0], myVtkID);
> +-  pts[0] = node->getVtkId();
> +-#endif
> +   node->AddInverseElement(this),
> +   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
> + }
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_VtkVolume_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMDS_SMDS_VtkVolume_cpp
> @@ -0,0 +1,148 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +Commit: 6d4ce9e9b84963688e283adaf775ed40d5d775a1
> +
> +Index: src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
> +--- src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMDS/SMDS_VtkVolume.cpp
> +@@ -133,7 +133,6 @@ void SMDS_VtkVolume::initPoly(const std::vector<vtkIdT
> + bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)
> + {
> +   vtkUnstructuredGrid* grid = SMDS_Mesh::_meshList[myMeshId]->getGrid();
> +-#ifdef VTK_CELL_ARRAY_V2
> +   vtkNew<vtkIdList> cellPoints;
> +   grid->GetCellPoints(myVtkID, cellPoints.GetPointer());
> +   if (nbNodes != cellPoints->GetNumberOfIds())
> +@@ -145,20 +144,6 @@ bool SMDS_VtkVolume::ChangeNodes(const SMDS_MeshNode* 
> +     {
> +       cellPoints->SetId(i, nodes[i]->getVtkId());
> +     }
> +-#else
> +-  vtkIdType npts = 0;
> +-  vtkIdType* pts = 0;
> +-  grid->GetCellPoints(myVtkID, npts, pts);
> +-  if (nbNodes != npts)
> +-    {
> +-      MESSAGE("ChangeNodes problem: not the same number of nodes " << npts << " -> " << nbNodes);
> +-      return false;
> +-    }
> +-  for (int i = 0; i < nbNodes; i++)
> +-    {
> +-      pts[i] = nodes[i]->getVtkId();
> +-    }
> +-#endif
> +   SMDS_Mesh::_meshList[myMeshId]->setMyModified();
> +   return true;
> + }
> +@@ -220,9 +205,10 @@ int SMDS_VtkVolume::NbFaces() const
> +       break;
> +     case VTK_POLYHEDRON:
> +       {
> +-        vtkIdType nFaces = 0;
> +-        vtkIdTypePtr ptIds = 0;
> +-        grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
> ++        vtkNew<vtkIdList> faceStream;
> ++        grid->GetFaceStream( this->myVtkID, faceStream);
> ++        vtkIdType nFaces = faceStream->GetId(0);
> ++        vtkIdType *ptIds = faceStream->GetPointer(1);
> +         nbFaces = nFaces;
> +         break;
> +       }
> +@@ -249,9 +235,10 @@ int SMDS_VtkVolume::NbNodes() const
> +     }
> +   else
> +     {
> +-      vtkIdType nFaces = 0;
> +-      vtkIdTypePtr ptIds = 0;
> +-      grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
> ++      vtkNew<vtkIdList> faceStream;
> ++      grid->GetFaceStream( this->myVtkID, faceStream);
> ++      vtkIdType nFaces = faceStream->GetId(0);
> ++      vtkIdType *ptIds = faceStream->GetPointer(1);
> +       int id = 0;
> +       for (int i = 0; i < nFaces; i++)
> +         {
> +@@ -289,9 +276,10 @@ int SMDS_VtkVolume::NbEdges() const
> +       break;
> +     case VTK_POLYHEDRON:
> +       {
> +-        vtkIdType nFaces = 0;
> +-        vtkIdTypePtr ptIds = 0;
> +-        grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
> ++        vtkNew<vtkIdList> faceStream;
> ++        grid->GetFaceStream( this->myVtkID, faceStream);
> ++        vtkIdType nFaces = faceStream->GetId(0);
> ++        vtkIdType *ptIds = faceStream->GetPointer(1);
> +         nbEdges = 0;
> +         int id = 0;
> +         for (int i = 0; i < nFaces; i++)
> +@@ -325,9 +313,10 @@ int SMDS_VtkVolume::NbFaceNodes(const int face_ind) co
> +   int nbNodes = 0;
> +   if (aVtkType == VTK_POLYHEDRON)
> +     {
> +-      vtkIdType nFaces = 0;
> +-      vtkIdTypePtr ptIds = 0;
> +-      grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
> ++      vtkNew<vtkIdList> faceStream;
> ++      grid->GetFaceStream( this->myVtkID, faceStream);
> ++      vtkIdType nFaces = faceStream->GetId(0);
> ++      vtkIdType *ptIds = faceStream->GetPointer(1);
> +       int id = 0;
> +       for (int i = 0; i < nFaces; i++)
> +         {
> +@@ -355,9 +344,10 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetFaceNode(const
> +   const SMDS_MeshNode* node = 0;
> +   if (aVtkType == VTK_POLYHEDRON)
> +     {
> +-      vtkIdType nFaces = 0;
> +-      vtkIdTypePtr ptIds = 0;
> +-      grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
> ++      vtkNew<vtkIdList> faceStream;
> ++      grid->GetFaceStream( this->myVtkID, faceStream);
> ++      vtkIdType nFaces = faceStream->GetId(0);
> ++      vtkIdType *ptIds = faceStream->GetPointer(1);
> +       int id = 0;
> +       for (int i = 0; i < nFaces; i++)
> +         {
> +@@ -385,9 +375,10 @@ std::vector<int> SMDS_VtkVolume::GetQuantities() const
> +   vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
> +   if (aVtkType == VTK_POLYHEDRON)
> +     {
> +-      vtkIdType nFaces = 0;
> +-      vtkIdTypePtr ptIds = 0;
> +-      grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
> ++      vtkNew<vtkIdList> faceStream;
> ++      grid->GetFaceStream( this->myVtkID, faceStream);
> ++      vtkIdType nFaces = faceStream->GetId(0);
> ++      vtkIdType *ptIds = faceStream->GetPointer(1);
> +       int id = 0;
> +       for (int i = 0; i < nFaces; i++)
> +         {
> +@@ -443,9 +434,10 @@ const SMDS_MeshNode* SMDS_VtkVolume::GetNode(const int
> +   vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
> +   if ( aVtkType == VTK_POLYHEDRON)
> +   {
> +-    vtkIdType nFaces = 0;
> +-    vtkIdTypePtr ptIds = 0;
> +-    grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
> ++    vtkNew<vtkIdList> faceStream;
> ++    grid->GetFaceStream( this->myVtkID, faceStream);
> ++    vtkIdType nFaces = faceStream->GetId(0);
> ++    vtkIdType *ptIds = faceStream->GetPointer(1);
> +     int id = 0, nbPoints = 0;
> +     for (int i = 0; i < nFaces; i++)
> +     {
> +@@ -474,9 +466,10 @@ int SMDS_VtkVolume::GetNodeIndex( const SMDS_MeshNode*
> +   const  vtkIdType aVtkType = grid->GetCellType(this->myVtkID);
> +   if ( aVtkType == VTK_POLYHEDRON)
> +   {
> +-    vtkIdType nFaces = 0;
> +-    vtkIdTypePtr ptIds = 0;
> +-    grid->GetFaceStream(this->myVtkID, nFaces, ptIds);
> ++    vtkNew<vtkIdList> faceStream;
> ++    grid->GetFaceStream( this->myVtkID, faceStream);
> ++    vtkIdType nFaces = faceStream->GetId(0);
> ++    vtkIdType *ptIds = faceStream->GetPointer(1);
> +     int id = 0;
> +     for (int iF = 0; iF < nFaces; iF++)
> +     {
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMESH_SMESH_MeshEditor_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_3rdParty_salomesmesh_src_SMESH_SMESH_MeshEditor_cpp
> @@ -0,0 +1,32 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: c9acda2a659f9ac079fefd2c0b8d6ff9c8a8238e
> +
> +Index: src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
> +--- src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp.orig
> ++++ src/3rdParty/salomesmesh/src/SMESH/SMESH_MeshEditor.cpp
> +@@ -57,6 +57,7 @@
> + #include "utilities.h"
> + #include "chrono.hxx"
> + 
> ++#include <vtkVersion.h>
> + #include <BRepAdaptor_Surface.hxx>
> + #include <BRepBuilderAPI_MakeEdge.hxx>
> + #include <BRepClass3d_SolidClassifier.hxx>
> +@@ -11348,7 +11349,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( c
> +             {
> +               int oldId = *itn;
> +               //MESSAGE("     node " << oldId);
> +-#if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +               vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetLinks())->GetLink(oldId);
> + #else
> +               vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetCellLinks())->GetLink(oldId);
> +@@ -11712,7 +11713,7 @@ bool SMESH_MeshEditor::DoubleNodesOnGroupBoundaries( c
> +         {
> +           int oldId = itnod->first;
> +           //MESSAGE("     node " << oldId);
> +-#if VTK_VERSION_NUMBER_QUICK >= 90300000000
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20221112)
> +           vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetLinks())->GetLink(oldId);
> + #else
> +           vtkCellLinks::Link l = static_cast<vtkCellLinks*>(grid->GetCellLinks())->GetLink(oldId);
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 08f6a1239e70537b5f637b1bcda74fcfc1e38b0a
> file + /dev/null
> --- cad/freecad/patches/patch-src_CXX_Python3_Objects_hxx
> +++ /dev/null
> @@ -1,51 +0,0 @@
> -This patch has been merged upstream. Drop next update.
> -Commit: 39ca75bac294a69504e1ea551e1615816e3aec06
> -
> -Index: src/CXX/Python3/Objects.hxx
> ---- src/CXX/Python3/Objects.hxx.orig
> -+++ src/CXX/Python3/Objects.hxx
> -@@ -1787,8 +1787,8 @@ namespace Py
> -     typedef std::basic_string<Py_UNICODE> unicodestring;
> -     extern Py_UNICODE unicode_null_string[1];
> - #endif
> --    typedef std::basic_string<Py_UCS4> ucs4string;
> --    extern Py_UCS4 ucs4_null_string[1];
> -+    typedef std::basic_string<char32_t> ucs4string;
> -+    extern char32_t ucs4_null_string[1];
> - 
> -     class PYCXX_EXPORT Byte: public Object
> -     {
> -@@ -2152,13 +2152,13 @@ namespace Py
> -         // Need these c'tors becuase Py_UNICODE is 2 bytes
> -         // User may use "int" or "unsigned int" as the unicode type
> -         String( const unsigned int *s, int length )
> --        : SeqBase<Char>( PyUnicode_FromKindAndData( PyUnicode_4BYTE_KIND, reinterpret_cast<const Py_UCS4 *>( s ), length ), true )
> -+        : SeqBase<Char>( PyUnicode_FromKindAndData( PyUnicode_4BYTE_KIND, reinterpret_cast<const char32_t *>( s ), length ), true )
> -         {
> -             validate();
> -         }
> - 
> -         String( const int *s, int length )
> --        : SeqBase<Char>( PyUnicode_FromKindAndData( PyUnicode_4BYTE_KIND, reinterpret_cast<const Py_UCS4 *>( s ), length ), true )
> -+        : SeqBase<Char>( PyUnicode_FromKindAndData( PyUnicode_4BYTE_KIND, reinterpret_cast<const char32_t *>( s ), length ), true )
> -         {
> -             validate();
> -         }
> -@@ -2196,7 +2196,7 @@ namespace Py
> - #if !defined( Py_UNICODE_WIDE ) && !defined( Py_LIMITED_API )
> -         String &operator=( const ucs4string &v )
> -         {
> --            set( PyUnicode_FromKindAndData( PyUnicode_4BYTE_KIND, reinterpret_cast<const Py_UCS4 *>( v.data() ), v.length() ), true );
> -+            set( PyUnicode_FromKindAndData( PyUnicode_4BYTE_KIND, reinterpret_cast<const char32_t *>( v.data() ), v.length() ), true );
> -             return *this;
> -         }
> - #endif
> -@@ -2237,7 +2237,7 @@ namespace Py
> -             {
> -                 ifPyErrorThrowCxxException();
> -             }
> --            ucs4string ucs4( buf, size() );
> -+            ucs4string ucs4( reinterpret_cast<char32_t *>(buf), size() );
> -             delete[] buf;
> - 
> -             return ucs4;
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - fc3c24a9b83faac066be1ecdd89b2a681a2294df
> file + /dev/null
> --- cad/freecad/patches/patch-src_CXX_Python3_cxxsupport_cxx
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -This patch has been merged upstream. Drop next update.
> -Commit: 39ca75bac294a69504e1ea551e1615816e3aec06
> -
> -Index: src/CXX/Python3/cxxsupport.cxx
> ---- src/CXX/Python3/cxxsupport.cxx.orig
> -+++ src/CXX/Python3/cxxsupport.cxx
> -@@ -48,7 +48,7 @@ Py_ssize_t numeric_limits_max()
> - #if !defined(Py_LIMITED_API)
> - Py_UNICODE unicode_null_string[1] = { 0 };
> - #endif
> --Py_UCS4 ucs4_null_string[1] = { 0 };
> -+char32_t ucs4_null_string[1] = { 0 };
> - 
> - Type Object::type() const
> - {
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 1af794eaa984551052337cdfda3fa8bf38493737
> file + /dev/null
> --- cad/freecad/patches/patch-src_CXX_Version_hxx
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -This patch has been merged upstream. Drop next update.
> -Commit: 39ca75bac294a69504e1ea551e1615816e3aec06
> -
> -Index: src/CXX/Version.hxx
> ---- src/CXX/Version.hxx.orig
> -+++ src/CXX/Version.hxx
> -@@ -40,7 +40,7 @@
> - 
> - #define PYCXX_VERSION_MAJOR 7
> - #define PYCXX_VERSION_MINOR 1
> --#define PYCXX_VERSION_PATCH 9
> -+#define PYCXX_VERSION_PATCH 11
> - #define PYCXX_MAKEVERSION( major, minor, patch ) ((major<<16)|(minor<<8)|(patch))
> - #define PYCXX_VERSION PYCXX_MAKEVERSION( PYCXX_VERSION_MAJOR, PYCXX_VERSION_MINOR, PYCXX_VERSION_PATCH )
> - #endif
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_Gui_View3DInventor_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_Gui_View3DInventor_cpp
> @@ -0,0 +1,15 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: ee09d4e696aa530e100b840428ab9c358032c744
> +
> +Index: src/Gui/View3DInventor.cpp
> +--- src/Gui/View3DInventor.cpp.orig
> ++++ src/Gui/View3DInventor.cpp
> +@@ -604,7 +604,7 @@ bool View3DInventor::setCamera(const char* pCamera)
> +     }
> + 
> +     // this is to make sure to reliably delete the node
> +-    CoinPtr<SoNode> camPtr(Cam, true);
> ++    CoinPtr<SoNode> camPtr {Cam};
> + 
> +     // toggle between perspective and orthographic camera
> +     if (Cam->getTypeId() != CamViewer->getTypeId()) {
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_Gui_ViewProviderLink_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_Gui_ViewProviderLink_cpp
> @@ -0,0 +1,15 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: ee09d4e696aa530e100b840428ab9c358032c744
> +
> +Index: src/Gui/ViewProviderLink.cpp
> +--- src/Gui/ViewProviderLink.cpp.orig
> ++++ src/Gui/ViewProviderLink.cpp
> +@@ -1624,7 +1624,7 @@ void LinkView::updateLink()
> + bool LinkView::linkGetElementPicked(const SoPickedPoint* pp, std::string& subname) const
> + {
> +     std::ostringstream ss;
> +-    CoinPtr<SoPath> path = pp->getPath();
> ++    CoinPtr<SoPath> path {pp->getPath()};
> +     if (!nodeArray.empty()) {
> +         auto idx = path->findNode(pcLinkRoot);
> +         if (idx < 0 || idx + 2 >= path->getLength()) {
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_Gui_ViewProvider_h (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_Gui_ViewProvider_h
> @@ -0,0 +1,123 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: ee09d4e696aa530e100b840428ab9c358032c744
> +
> +Index: src/Gui/ViewProvider.h
> +--- src/Gui/ViewProvider.h.orig
> ++++ src/Gui/ViewProvider.h
> +@@ -87,26 +87,102 @@ enum ViewStatus
> + };
> + 
> + 
> ++/** Convenience smart pointer to manage the lifetime of coin nodes.
> ++ *
> ++ * This class is copied from Inventor/misc/SoRefPtr.h and can be removed when the
> ++ * minimum supported coin version provides this header.
> ++ */
> ++template<typename T>
> ++class SoRefPtr
> ++{
> ++public:
> ++    SoRefPtr(void) noexcept
> ++        : ptr(NULL)
> ++    {}
> ++
> ++    explicit SoRefPtr(T* p)
> ++        : ptr(p)
> ++    {
> ++        if (this->ptr) {
> ++            this->ptr->ref();
> ++        }
> ++    }
> ++
> ++    SoRefPtr(const SoRefPtr& other)
> ++        : ptr(other.ptr)
> ++    {
> ++        if (this->ptr) {
> ++            this->ptr->ref();
> ++        }
> ++    }
> ++
> ++    SoRefPtr(SoRefPtr&& other) noexcept
> ++        : ptr(other.ptr)
> ++    {
> ++        other.ptr = NULL;
> ++    }
> ++
> ++    ~SoRefPtr(void)
> ++    {
> ++        if (this->ptr) {
> ++            this->ptr->unref();
> ++        }
> ++    }
> ++
> ++    SoRefPtr& operator=(SoRefPtr other) noexcept
> ++    {
> ++        this->swap(other);
> ++        return *this;
> ++    }
> ++
> ++    void reset(T* p = NULL)
> ++    {
> ++        SoRefPtr tmp(p);
> ++        this->swap(tmp);
> ++    }
> ++
> ++    T* get(void) const noexcept
> ++    {
> ++        return this->ptr;
> ++    }
> ++    T& operator*(void) const
> ++    {
> ++        return *this->ptr;
> ++    }
> ++    T* operator->(void) const noexcept
> ++    {
> ++        return this->ptr;
> ++    }
> ++    explicit operator bool(void) const noexcept
> ++    {
> ++        return this->ptr != NULL;
> ++    }
> ++
> ++    void swap(SoRefPtr& other) noexcept
> ++    {
> ++        using std::swap;
> ++        swap(this->ptr, other.ptr);
> ++    }
> ++
> ++private:
> ++    T* ptr;
> ++};
> ++
> + /** Convenience smart pointer to wrap coin node.
> +  *
> +- * It is basically boost::intrusive plus implicit pointer conversion to save the
> +- * trouble of typing get() all the time.
> ++ * This class isn't merged with SoRefPtr because it can be removed in the future
> +  */
> + template<class T>
> +-class CoinPtr: public boost::intrusive_ptr<T>
> ++class CoinPtr: public SoRefPtr<T>
> + {
> + public:
> +-    // Too bad, VC2013 does not support constructor inheritance
> +-    // using boost::intrusive_ptr<T>::intrusive_ptr;
> +-    using inherited = boost::intrusive_ptr<T>;
> +-    CoinPtr() = default;
> +-    CoinPtr(T* p, bool add_ref = true)
> +-        : inherited(p, add_ref)
> +-    {}
> +-    template<class Y>
> +-    CoinPtr(CoinPtr<Y> const& r)
> +-        : inherited(r)
> +-    {}
> ++    using SoRefPtr<T>::SoRefPtr;
> ++
> ++    CoinPtr& operator=(T* ptr)
> ++    {
> ++        SoRefPtr<T>::reset(ptr);
> ++        return *this;
> ++    }
> + 
> +     operator T*() const
> +     {
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_Mod_Fem_App_FemPostPipeline_h (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_Mod_Fem_App_FemPostPipeline_h
> @@ -0,0 +1,15 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: c9acda2a659f9ac079fefd2c0b8d6ff9c8a8238e
> +
> +Index: src/Mod/Fem/App/FemPostPipeline.h
> +--- src/Mod/Fem/App/FemPostPipeline.h.orig
> ++++ src/Mod/Fem/App/FemPostPipeline.h
> +@@ -32,7 +32,7 @@
> + #include "FemResultObject.h"
> + #include "VTKExtensions/vtkFemFrameSourceAlgorithm.h"
> + 
> +-#if VTK_VERSION_NUMBER < VTK_VERSION_CHECK(9, 3, 0)
> ++#if VTK_VERSION_NUMBER < VTK_VERSION_CHECK(9, 2, 20230125)
> + # include "VTKExtensions/vtkCleanUnstructuredGrid.h"
> + #else
> + # include <vtkCleanUnstructuredGrid.h>
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_Mod_Fem_App_PreCompiled_h (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_Mod_Fem_App_PreCompiled_h
> @@ -0,0 +1,15 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: c9acda2a659f9ac079fefd2c0b8d6ff9c8a8238e
> +
> +Index: src/Mod/Fem/App/PreCompiled.h
> +--- src/Mod/Fem/App/PreCompiled.h.orig
> ++++ src/Mod/Fem/App/PreCompiled.h
> +@@ -151,7 +151,7 @@
> + #include <vtkAppendFilter.h>
> + #include <vtkArrayCalculator.h>
> + #include <vtkCellArray.h>
> +-#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 3, 0)
> ++#if VTK_VERSION_NUMBER >= VTK_VERSION_CHECK(9, 2, 20230125)
> + # include <vtkCleanUnstructuredGrid.h>
> + #endif
> + #include <vtkCompositeDataSet.h>
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_Mod_Fem_App_PropertyPostDataObject_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_Mod_Fem_App_PropertyPostDataObject_cpp
> @@ -0,0 +1,21 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +
> +Index: src/Mod/Fem/App/PropertyPostDataObject.cpp
> +--- src/Mod/Fem/App/PropertyPostDataObject.cpp.orig
> ++++ src/Mod/Fem/App/PropertyPostDataObject.cpp
> +@@ -400,14 +400,12 @@ void PropertyPostDataObject::SaveDocFile(Base::Writer&
> +         xmlWriter->SetInputDataObject(m_dataObject);
> +         xmlWriter->SetFileName(fi.filePath().c_str());
> + 
> +-#ifdef VTK_CELL_ARRAY_V2
> +         // Looks like an invalid data object that causes a crash with vtk9
> +         vtkUnstructuredGrid* dataGrid = vtkUnstructuredGrid::SafeDownCast(m_dataObject);
> +         if (dataGrid && (dataGrid->GetPiece() < 0 || dataGrid->GetNumberOfPoints() <= 0)) {
> +             std::cerr << "PropertyPostDataObject::SaveDocFile: ignore empty vtkUnstructuredGrid\n";
> +             return;
> +         }
> +-#endif
> +     }
> +     xmlWriter->SetDataModeToBinary();
> + 
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - /dev/null
> file + cad/freecad/patches/patch-src_Mod_Fem_Gui_ViewProviderFemPostObject_cpp (mode 644)
> --- /dev/null
> +++ cad/freecad/patches/patch-src_Mod_Fem_Gui_ViewProviderFemPostObject_cpp
> @@ -0,0 +1,18 @@
> +This patch has been merged upstream. Drop next update.
> +Commit: bd90728f886bbeb6d69aafd4f68f934109b96f91
> +
> +Index: src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
> +--- src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp.orig
> ++++ src/Mod/Fem/Gui/ViewProviderFemPostObject.cpp
> +@@ -75,11 +75,7 @@
> + using namespace FemGui;
> + namespace sp = std::placeholders;
> + 
> +-#ifdef VTK_CELL_ARRAY_V2
> + using vtkIdTypePtr = const vtkIdType*;
> +-#else
> +-using vtkIdTypePtr = vtkIdType*;
> +-#endif
> + 
> + // ----------------------------------------------------------------------------
> + 
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - d51430e7ef16817d727550bdb624fcd8443a3678
> file + /dev/null
> --- cad/freecad/patches/patch-src_Mod_Material_App_CMakeLists_txt
> +++ /dev/null
> @@ -1,14 +0,0 @@
> -See https://github.com/FreeCAD/FreeCAD/issues/18170
> -and https://github.com/FreeCAD/FreeCAD/issues/18168
> -
> -Index: src/Mod/Material/App/CMakeLists.txt
> ---- src/Mod/Material/App/CMakeLists.txt.orig
> -+++ src/Mod/Material/App/CMakeLists.txt
> -@@ -58,6 +58,7 @@ generate_from_xml(ModelPy)
> - generate_from_xml(UUIDsPy)
> - 
> - SET(Python_SRCS
> -+    Exceptions.cpp
> -     Exceptions.h
> -     Array2DPy.xml
> -     Array2DPyImp.cpp
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - bc4eb73dfe5f6da6433860bbbccb491b6b637090
> file + /dev/null
> --- cad/freecad/patches/patch-src_Mod_Material_App_Exceptions_cpp
> +++ /dev/null
> @@ -1,157 +0,0 @@
> -See https://github.com/FreeCAD/FreeCAD/issues/18170
> -and https://github.com/FreeCAD/FreeCAD/issues/18168
> -
> -Index: src/Mod/Material/App/Exceptions.cpp
> ---- src/Mod/Material/App/Exceptions.cpp.orig
> -+++ src/Mod/Material/App/Exceptions.cpp
> -@@ -0,0 +1,150 @@
> -+#include "Exceptions.h"
> -+
> -+namespace Materials
> -+{
> -+
> -+Uninitialized::Uninitialized() {}
> -+
> -+Uninitialized::Uninitialized(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+Uninitialized::Uninitialized(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+Uninitialized::~Uninitialized() noexcept = default;
> -+
> -+ModelNotFound::ModelNotFound() {}
> -+
> -+ModelNotFound::ModelNotFound(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+ModelNotFound::ModelNotFound(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+ModelNotFound::~ModelNotFound() noexcept = default;
> -+
> -+InvalidMaterialType::InvalidMaterialType() {}
> -+
> -+InvalidMaterialType::InvalidMaterialType(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+InvalidMaterialType::InvalidMaterialType(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+InvalidMaterialType::~InvalidMaterialType() noexcept = default;
> -+
> -+MaterialNotFound::MaterialNotFound() {}
> -+
> -+MaterialNotFound::MaterialNotFound(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+MaterialNotFound::MaterialNotFound(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+MaterialNotFound::~MaterialNotFound() noexcept = default;
> -+
> -+MaterialExists::MaterialExists() {}
> -+
> -+MaterialExists::MaterialExists(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+MaterialExists::MaterialExists(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+MaterialExists::~MaterialExists() noexcept = default;
> -+
> -+MaterialReadError::MaterialReadError() {}
> -+
> -+MaterialReadError::MaterialReadError(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+MaterialReadError::MaterialReadError(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+MaterialReadError::~MaterialReadError() noexcept = default;
> -+
> -+PropertyNotFound::PropertyNotFound() {}
> -+
> -+PropertyNotFound::PropertyNotFound(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+PropertyNotFound::PropertyNotFound(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+PropertyNotFound::~PropertyNotFound() noexcept = default;
> -+
> -+LibraryNotFound::LibraryNotFound() {}
> -+
> -+LibraryNotFound::LibraryNotFound(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+LibraryNotFound::LibraryNotFound(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+LibraryNotFound::~LibraryNotFound() noexcept = default;
> -+
> -+InvalidModel::InvalidModel() {}
> -+
> -+InvalidModel::InvalidModel(const char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+InvalidModel::InvalidModel(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+InvalidModel::~InvalidModel() noexcept = default;
> -+
> -+InvalidIndex::InvalidIndex() {}
> -+
> -+InvalidIndex::InvalidIndex(char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+InvalidIndex::InvalidIndex(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+InvalidIndex::~InvalidIndex() noexcept = default;
> -+
> -+UnknownValueType::UnknownValueType() {}
> -+
> -+UnknownValueType::UnknownValueType(char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+UnknownValueType::UnknownValueType(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+UnknownValueType::~UnknownValueType() noexcept = default;
> -+
> -+DeleteError::DeleteError() {}
> -+
> -+DeleteError::DeleteError(char* msg) {
> -+    this->setMessage(msg);
> -+}
> -+
> -+DeleteError::DeleteError(const QString& msg) {
> -+    this->setMessage(msg.toStdString().c_str());
> -+}
> -+
> -+DeleteError::~DeleteError() noexcept = default;
> -+
> -+}  // namespace Materials
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 1223c300086cdd6fb06e541bb60023bf4fe4d431
> file + /dev/null
> --- cad/freecad/patches/patch-src_Mod_Material_App_Exceptions_h
> +++ /dev/null
> @@ -1,256 +0,0 @@
> -See https://github.com/FreeCAD/FreeCAD/issues/18170
> -and https://github.com/FreeCAD/FreeCAD/issues/18168
> -
> -Index: src/Mod/Material/App/Exceptions.h
> ---- src/Mod/Material/App/Exceptions.h.orig
> -+++ src/Mod/Material/App/Exceptions.h
> -@@ -23,7 +23,6 @@
> - #define MATERIAL_EXCEPTIONS_H
> - 
> - #include <QString>
> --
> - #include <Base/BaseClass.h>
> - #include <Base/Exception.h>
> - 
> -@@ -33,193 +32,109 @@ namespace Materials
> - class Uninitialized: public Base::Exception
> - {
> - public:
> --    Uninitialized()
> --    {}
> --    explicit Uninitialized(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit Uninitialized(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~Uninitialized() noexcept override = default;
> -+    Uninitialized();
> -+    explicit Uninitialized(const char* msg);
> -+    explicit Uninitialized(const QString& msg);
> -+    ~Uninitialized() noexcept override;
> - };
> - 
> - class ModelNotFound: public Base::Exception
> - {
> - public:
> --    ModelNotFound()
> --    {}
> --    explicit ModelNotFound(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit ModelNotFound(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~ModelNotFound() noexcept override = default;
> -+    ModelNotFound();
> -+    explicit ModelNotFound(const char* msg);
> -+    explicit ModelNotFound(const QString& msg);
> -+    ~ModelNotFound() noexcept override;
> - };
> - 
> - class InvalidMaterialType: public Base::Exception
> - {
> - public:
> --    InvalidMaterialType()
> --    {}
> --    explicit InvalidMaterialType(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit InvalidMaterialType(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~InvalidMaterialType() noexcept override = default;
> -+    InvalidMaterialType();
> -+    explicit InvalidMaterialType(const char* msg);
> -+    explicit InvalidMaterialType(const QString& msg);
> -+    ~InvalidMaterialType() noexcept override;
> - };
> - 
> - class MaterialNotFound: public Base::Exception
> - {
> - public:
> --    MaterialNotFound()
> --    {}
> --    explicit MaterialNotFound(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit MaterialNotFound(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~MaterialNotFound() noexcept override = default;
> -+    MaterialNotFound();
> -+    explicit MaterialNotFound(const char* msg);
> -+    explicit MaterialNotFound(const QString& msg);
> -+    ~MaterialNotFound() noexcept override;
> - };
> - 
> - class MaterialExists: public Base::Exception
> - {
> - public:
> --    MaterialExists()
> --    {}
> --    explicit MaterialExists(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit MaterialExists(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~MaterialExists() noexcept override = default;
> -+    MaterialExists();
> -+    explicit MaterialExists(const char* msg);
> -+    explicit MaterialExists(const QString& msg);
> -+    ~MaterialExists() noexcept override;
> - };
> - 
> - class MaterialReadError: public Base::Exception
> - {
> - public:
> --    MaterialReadError()
> --    {}
> --    explicit MaterialReadError(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit MaterialReadError(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~MaterialReadError() noexcept override = default;
> -+    MaterialReadError();
> -+    explicit MaterialReadError(const char* msg);
> -+    explicit MaterialReadError(const QString& msg);
> -+    ~MaterialReadError() noexcept override;
> - };
> - 
> - class PropertyNotFound: public Base::Exception
> - {
> - public:
> --    PropertyNotFound()
> --    {}
> --    explicit PropertyNotFound(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit PropertyNotFound(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~PropertyNotFound() noexcept override = default;
> -+    PropertyNotFound();
> -+    explicit PropertyNotFound(const char* msg);
> -+    explicit PropertyNotFound(const QString& msg);
> -+    ~PropertyNotFound() noexcept override;
> - };
> - 
> - class LibraryNotFound: public Base::Exception
> - {
> - public:
> --    LibraryNotFound()
> --    {}
> --    explicit LibraryNotFound(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit LibraryNotFound(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~LibraryNotFound() noexcept override = default;
> -+    LibraryNotFound();
> -+    explicit LibraryNotFound(const char* msg);
> -+    explicit LibraryNotFound(const QString& msg);
> -+    ~LibraryNotFound() noexcept override;
> - };
> - 
> - class InvalidModel: public Base::Exception
> - {
> - public:
> --    InvalidModel()
> --    {}
> --    explicit InvalidModel(const char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit InvalidModel(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~InvalidModel() noexcept override = default;
> -+    InvalidModel();
> -+    explicit InvalidModel(const char* msg);
> -+    explicit InvalidModel(const QString& msg);
> -+    ~InvalidModel() noexcept override;
> - };
> - 
> - class InvalidIndex: public Base::Exception
> - {
> - public:
> --    InvalidIndex()
> --    {}
> --    explicit InvalidIndex(char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit InvalidIndex(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~InvalidIndex() noexcept override = default;
> -+    InvalidIndex();
> -+    explicit InvalidIndex(char* msg);
> -+    explicit InvalidIndex(const QString& msg);
> -+    ~InvalidIndex() noexcept override;
> - };
> - 
> - class UnknownValueType: public Base::Exception
> - {
> - public:
> --    UnknownValueType()
> --    {}
> --    explicit UnknownValueType(char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit UnknownValueType(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~UnknownValueType() noexcept override = default;
> -+    UnknownValueType();
> -+    explicit UnknownValueType(char* msg);
> -+    explicit UnknownValueType(const QString& msg);
> -+    ~UnknownValueType() noexcept override;
> - };
> - 
> - class DeleteError: public Base::Exception
> - {
> - public:
> --    DeleteError()
> --    {}
> --    explicit DeleteError(char* msg)
> --    {
> --        this->setMessage(msg);
> --    }
> --    explicit DeleteError(const QString& msg)
> --    {
> --        this->setMessage(msg.toStdString().c_str());
> --    }
> --    ~DeleteError() noexcept override = default;
> -+    DeleteError();
> -+    explicit DeleteError(char* msg);
> -+    explicit DeleteError(const QString& msg);
> -+    ~DeleteError() noexcept override;
> - };
> - 
> - }  // namespace Materials
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 848856a2671f2fcabc71c548cab38adc6235a0cb
> file + cad/freecad/patches/patch-src_Mod_Part_App_CMakeLists_txt
> --- cad/freecad/patches/patch-src_Mod_Part_App_CMakeLists_txt
> +++ cad/freecad/patches/patch-src_Mod_Part_App_CMakeLists_txt
> @@ -1,11 +1,11 @@
>  Index: src/Mod/Part/App/CMakeLists.txt
>  --- src/Mod/Part/App/CMakeLists.txt.orig
>  +++ src/Mod/Part/App/CMakeLists.txt
> -@@ -26,6 +26,7 @@ set(Part_LIBS
> +@@ -23,6 +23,7 @@ set(Part_LIBS
>       ${OCC_DEBUG_LIBRARIES}
>       FreeCADApp
>       Materials
>  +    -L${X11BASE}/lib
>   )
>   
> - if(FREETYPE_FOUND)
> + target_link_directories(Part PUBLIC ${OCC_LIBRARY_DIR})
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 68d1abe09e6ad2fa28e44b9cf9c83b1ff94b7ea0
> file + /dev/null
> --- cad/freecad/patches/patch-src_Mod_ReverseEngineering_App_SurfaceTriangulation_cpp
> +++ /dev/null
> @@ -1,15 +0,0 @@
> -This patch has been merged upstream. Drop next update.
> -Commit: d9e731ca94abc14808ebeed208617116f6d5ea4a
> -
> -Index: src/Mod/ReverseEngineering/App/SurfaceTriangulation.cpp
> ---- src/Mod/ReverseEngineering/App/SurfaceTriangulation.cpp.orig
> -+++ src/Mod/ReverseEngineering/App/SurfaceTriangulation.cpp
> -@@ -40,7 +40,7 @@
> - #include <pcl/common/io.h>
> - #include <pcl/features/normal_3d.h>
> - #include <pcl/pcl_config.h>
> --#include <pcl/point_traits.h>
> -+#include <pcl/type_traits.h>
> - #include <pcl/point_types.h>
> - #include <pcl/surface/ear_clipping.h>
> - #include <pcl/surface/gp3.h>
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - c8a95d335576323b8602475568c56cca76612e13
> file + cad/freecad/patches/patch-src_Tools_freecad-thumbnailer_in
> --- cad/freecad/patches/patch-src_Tools_freecad-thumbnailer_in
> +++ cad/freecad/patches/patch-src_Tools_freecad-thumbnailer_in
> @@ -1,75 +1,9 @@
> -This patch has been merged upstream. Drop next update but fix shebang!
> -Commit: c8b1ea28364ef185ef61d2ca20230e92bb475b89
> -
>  Index: src/Tools/freecad-thumbnailer.in
>  --- src/Tools/freecad-thumbnailer.in.orig
>  +++ src/Tools/freecad-thumbnailer.in
> -@@ -0,0 +1,68 @@
> +@@ -1,4 +1,4 @@
> +-#!/usr/bin/python3
>  +#!${LOCALBASE}/bin/python3
> -+"""Support file to show FreeCAD thumbnails on Free Desktop Environments (like GNOME or KDE)
> -+
> -+Installation:
> -+- This executable file should be on the PATH so it can be found
> -+    "$ sudo cp freecad-thumbnailer /usr/bin"
> -+  and must have execution rights
> -+    "$ sudo chmod +x /usr/bin/freecad-thumbnailer"
> -+
> -+- If a FreeCAD project file doesn't include a thumbnail the file org.freecad.FreeCAD.png is used.
> -+  Thus, the file src/Gui/Icons/freecad-icon-48.png must be installed.
> -+    "$ sudo cp freecad-icon-48.png /usr/share/icons/hicolor/48x48/apps/org.freecad.FreeCAD.png"
> -+
> -+- The application/x-extension-fcstd MIME type should be registered
> -+    Check that a corresponding /usr/share/mime/packages/freecad.xml file exists
> -+    Make sure the MIME database is up to date
> -+    "$ sudo update-mime-database /usr/share/mime"
> -+
> -+- Register this thumbnailer
> -+    Adding a file /usr/share/thumbnailers/FreeCAD.thumbnailer with the following content:
> -+
> -+    [Thumbnailer Entry]
> -+    TryExec=freecad-thumbnailer
> -+    Exec=freecad-thumbnailer -s %s %i %o
> -+    MimeType=application/x-extension-fcstd;
> -+
> -+HINT: Make sure that the symlink /usr/bin/python exists and points to the Python executable
> -+
> -+NOTE: To make sure FreeCAD saves thumbnail information:
> -+
> -+    Edit -> Preferences... -> Document -> Save thumbnail into project when saving document
> -+"""
> -+import sys
> -+import zipfile
> -+import getopt
> -+
> -+opt, par = getopt.getopt(sys.argv[1:], "-s:")
> -+input_file = par[0]
> -+output_file = par[1]
> -+default_icon = "@CMAKE_INSTALL_DATAROOTDIR@/icons/hicolor/48x48/apps/org.freecad.FreeCAD.png"
> -+
> -+try:
> -+    # Read compressed file
> -+    zfile = zipfile.ZipFile(input_file)
> -+    files = zfile.namelist()
> -+
> -+    # Check whether we have a FreeCAD document
> -+    if "Document.xml" not in files:
> -+        print(input_file, " doesn't look like a FreeCAD file")
> -+        sys.exit(1)
> -+
> -+    # Read thumbnail from file or use default icon
> -+    image = "thumbnails/Thumbnail.png"
> -+    if image in files:
> -+        image = zfile.read(image)
> -+    else:
> -+        # apps should have at least 48x48 icons
> -+        freecad = open(default_icon, "rb")
> -+        image = freecad.read()
> -+
> -+    # Write icon to output_file
> -+    thumb = open(output_file, "wb")
> -+    thumb.write(image)
> -+    thumb.close()
> -+
> -+except Exception:
> -+    print("Error creating FreeCAD thumbnail for file ", input_file)
> -+    sys.exit(1)
> + # SPDX-License-Identifier: LGPL-2.1-or-later
> + 
> + """Support file to show FreeCAD thumbnails on Free Desktop Environments (like GNOME or KDE)
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - c283007c2ea2c1bd99ffffb42aa54cdc905f70c8
> file + /dev/null
> --- cad/freecad/patches/patch-src_XDGData_CMakeLists_txt
> +++ /dev/null
> @@ -1,28 +0,0 @@
> -This patch has been merged upstream. Drop next update.
> -Commit: c8b1ea28364ef185ef61d2ca20230e92bb475b89
> -
> -Index: src/XDGData/CMakeLists.txt
> ---- src/XDGData/CMakeLists.txt.orig
> -+++ src/XDGData/CMakeLists.txt
> -@@ -34,7 +34,20 @@ install(
> -     DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/mime/packages
> - )
> - 
> -+configure_file(
> -+    FreeCAD.thumbnailer.in
> -+    ${CMAKE_BINARY_DIR}/FreeCAD.thumbnailer
> -+)
> - install(
> --    FILES FreeCAD.thumbnailer
> -+    FILES ${CMAKE_BINARY_DIR}/FreeCAD.thumbnailer
> -     DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/thumbnailers
> -+)
> -+
> -+configure_file(
> -+    ${CMAKE_SOURCE_DIR}/src/Tools/freecad-thumbnailer.in
> -+    ${CMAKE_BINARY_DIR}/freecad-thumbnailer
> -+)
> -+install(
> -+    PROGRAMS ${CMAKE_BINARY_DIR}/freecad-thumbnailer
> -+    TYPE BIN
> - )
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 0eeb30942b73b360023de197a12103d8c5d75540
> file + /dev/null
> --- cad/freecad/patches/patch-src_XDGData_FreeCAD_thumbnailer_in
> +++ /dev/null
> @@ -1,11 +0,0 @@
> -This patch has been merged upstream. Drop next update.
> -Commit: c8b1ea28364ef185ef61d2ca20230e92bb475b89
> -
> -Index: src/XDGData/FreeCAD.thumbnailer.in
> ---- src/XDGData/FreeCAD.thumbnailer.in.orig
> -+++ src/XDGData/FreeCAD.thumbnailer.in
> -@@ -0,0 +1,4 @@
> -+[Thumbnailer Entry]
> -+TryExec=@CMAKE_INSTALL_BINDIR@/freecad-thumbnailer
> -+Exec=@CMAKE_INSTALL_BINDIR@/freecad-thumbnailer -s %s %i %o
> -+MimeType=application/x-extension-fcstd;
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - cc743cc0452be4d6c6361319a2732b955657d2c5
> file + cad/freecad/patches/patch-tests_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_CMakeLists_txt
> @@ -1,24 +1,11 @@
>  Index: tests/CMakeLists.txt
>  --- tests/CMakeLists.txt.orig
>  +++ tests/CMakeLists.txt
> -@@ -123,6 +123,7 @@ endif(BUILD_SKETCHER)
> - 
> - foreach (exe ${TestExecutables})
> -     add_executable(${exe})
> -+    target_link_directories(${exe} PUBLIC ${LOCALBASE}/lib)
> +@@ -157,6 +157,7 @@ foreach (exe ${TestExecutables})
> +         endif()
> +     else()
> +         set_target_properties(${exe} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/tests)
> ++        target_link_directories(${exe} PUBLIC ${LOCALBASE}/lib)
> +     endif()
> +     gtest_discover_tests(${exe})
>   endforeach()
> - 
> - if ( EXISTS "${CMAKE_SOURCE_DIR}/tests/lib/googletest" )
> -@@ -135,10 +136,12 @@ target_include_directories(Tests_run SYSTEM PUBLIC
> -     ${XercesC_INCLUDE_DIRS}
> - )
> - target_link_libraries(Tests_run
> -+    gtest
> -     gtest_main
> -     gmock_main
> -     ${Google_Tests_LIBS}
> -     FreeCADApp
> -+    -L${LOCALBASE}/lib
> - )
> - 
> - include(GoogleTest)
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - e51ee6db076b52503c4e186575f2b5683a46f683
> file + cad/freecad/patches/patch-tests_src_Mod_Assembly_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_Assembly_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_Assembly_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/Assembly/CMakeLists.txt
>  --- tests/src/Mod/Assembly/CMakeLists.txt.orig
>  +++ tests/src/Mod/Assembly/CMakeLists.txt
> -@@ -8,6 +8,7 @@ target_include_directories(Assembly_tests_run SYSTEM P
> - target_link_directories(Assembly_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -9,6 +9,7 @@ if (NOT FREECAD_USE_EXTERNAL_ONDSELSOLVER)
> + endif ()
>   
>   target_link_libraries(Assembly_tests_run
>  +    gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 3546b1361d142cc4ffe0d95b589f179bd043bf73
> file + cad/freecad/patches/patch-tests_src_Mod_Material_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_Material_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_Material_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/Material/CMakeLists.txt
>  --- tests/src/Mod/Material/CMakeLists.txt.orig
>  +++ tests/src/Mod/Material/CMakeLists.txt
> -@@ -8,6 +8,7 @@ target_include_directories(Material_tests_run SYSTEM P
> - target_link_directories(Material_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -3,6 +3,7 @@
> + add_subdirectory(App)
>   
>   target_link_libraries(Material_tests_run
>  +    gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - cf3b9d11633ee9e92fe5781cfb1f8e5d246e284b
> file + cad/freecad/patches/patch-tests_src_Mod_Measure_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_Measure_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_Measure_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/Measure/CMakeLists.txt
>  --- tests/src/Mod/Measure/CMakeLists.txt.orig
>  +++ tests/src/Mod/Measure/CMakeLists.txt
> -@@ -10,6 +10,7 @@ target_include_directories(Measure_tests_run SYSTEM PU
> - target_link_directories(Measure_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -3,6 +3,7 @@
> + add_subdirectory(App)
>   
>   target_link_libraries(Measure_tests_run
>  +    gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 5d697b7f0c017225f388f604620b365af4c4097e
> file + cad/freecad/patches/patch-tests_src_Mod_MeshPart_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_MeshPart_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_MeshPart_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/MeshPart/CMakeLists.txt
>  --- tests/src/Mod/MeshPart/CMakeLists.txt.orig
>  +++ tests/src/Mod/MeshPart/CMakeLists.txt
> -@@ -10,6 +10,7 @@ target_include_directories(MeshPart_tests_run SYSTEM P
> - target_link_directories(MeshPart_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -3,6 +3,7 @@
> + add_subdirectory(App)
>   
>   target_link_libraries(MeshPart_tests_run
>  +    gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 437bc556f0061cfcee4f59b7663453cc5a7d71b8
> file + cad/freecad/patches/patch-tests_src_Mod_Mesh_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_Mesh_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_Mesh_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/Mesh/CMakeLists.txt
>  --- tests/src/Mod/Mesh/CMakeLists.txt.orig
>  +++ tests/src/Mod/Mesh/CMakeLists.txt
> -@@ -8,6 +8,7 @@ target_include_directories(Mesh_tests_run SYSTEM PUBLI
> - target_link_directories(Mesh_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -3,6 +3,7 @@
> + add_subdirectory(App)
>   
>   target_link_libraries(Mesh_tests_run
>  +    gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 40e74f63a8e7e3dff4e41c69c60da59a5e0a4dc1
> file + cad/freecad/patches/patch-tests_src_Mod_PartDesign_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_PartDesign_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_PartDesign_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/PartDesign/CMakeLists.txt
>  --- tests/src/Mod/PartDesign/CMakeLists.txt.orig
>  +++ tests/src/Mod/PartDesign/CMakeLists.txt
> -@@ -8,6 +8,7 @@ target_include_directories(PartDesign_tests_run SYSTEM
> - target_link_directories(PartDesign_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -3,6 +3,7 @@
> + add_subdirectory(App)
>   
>   target_link_libraries(PartDesign_tests_run
>  +        gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - 44fea82e9259a1ac982e66a051f59fb8b65ccf39
> file + cad/freecad/patches/patch-tests_src_Mod_Part_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_Part_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_Part_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/Part/CMakeLists.txt
>  --- tests/src/Mod/Part/CMakeLists.txt.orig
>  +++ tests/src/Mod/Part/CMakeLists.txt
> -@@ -8,6 +8,7 @@ target_include_directories(Part_tests_run SYSTEM PUBLI
> - target_link_directories(Part_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -3,6 +3,7 @@
> + add_subdirectory(App)
>   
>   target_link_libraries(Part_tests_run
>  +    gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - d948ce2911848eb3936f4c451a805b43a2a833af
> file + cad/freecad/patches/patch-tests_src_Mod_Points_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_Points_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_Points_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/Points/CMakeLists.txt
>  --- tests/src/Mod/Points/CMakeLists.txt.orig
>  +++ tests/src/Mod/Points/CMakeLists.txt
> -@@ -8,6 +8,7 @@ target_include_directories(Points_tests_run SYSTEM PUB
> - target_link_directories(Points_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -3,6 +3,7 @@
> + add_subdirectory(App)
>   
>   target_link_libraries(Points_tests_run
>  +    gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - fb2b12bbb1c27abfd24234bbb296195824bddb83
> file + cad/freecad/patches/patch-tests_src_Mod_Sketcher_CMakeLists_txt
> --- cad/freecad/patches/patch-tests_src_Mod_Sketcher_CMakeLists_txt
> +++ cad/freecad/patches/patch-tests_src_Mod_Sketcher_CMakeLists_txt
> @@ -1,8 +1,8 @@
>  Index: tests/src/Mod/Sketcher/CMakeLists.txt
>  --- tests/src/Mod/Sketcher/CMakeLists.txt.orig
>  +++ tests/src/Mod/Sketcher/CMakeLists.txt
> -@@ -8,6 +8,7 @@ target_include_directories(Sketcher_tests_run SYSTEM P
> - target_link_directories(Sketcher_tests_run PUBLIC ${OCC_LIBRARY_DIR})
> +@@ -3,6 +3,7 @@
> + add_subdirectory(App)
>   
>   target_link_libraries(Sketcher_tests_run
>  +    gtest
> commit - 4658dbcbe59eb87e0d95b05c390ef2da5fa86922
> blob - d57aebad3ce207901d81f05e7f3b698821fd8e61
> file + cad/freecad/pkg/PLIST
> --- cad/freecad/pkg/PLIST
> +++ cad/freecad/pkg/PLIST
> @@ -49,6 +49,262 @@ lib/freecad/Ext/lazy_loader/${MODPY_PYCACHE}lazy_loade
>  lib/freecad/Ext/lazy_loader/${MODPY_PYCACHE}lazy_loader.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Ext/lazy_loader/lazy_loader.py
>  lib/freecad/Mod/
> +lib/freecad/Mod/AddonManager/
> +lib/freecad/Mod/AddonManager/ALLOWED_PYTHON_PACKAGES.txt
> +lib/freecad/Mod/AddonManager/Addon.py
> +lib/freecad/Mod/AddonManager/AddonCatalog.py
> +lib/freecad/Mod/AddonManager/AddonCatalog.schema.json
> +lib/freecad/Mod/AddonManager/AddonCatalogCacheCreator.py
> +lib/freecad/Mod/AddonManager/AddonManager.py
> +lib/freecad/Mod/AddonManager/AddonManager.ui
> +lib/freecad/Mod/AddonManager/AddonManagerOptions.py
> +lib/freecad/Mod/AddonManager/AddonManagerOptions.ui
> +lib/freecad/Mod/AddonManager/AddonManagerOptions_AddCustomRepository.ui
> +lib/freecad/Mod/AddonManager/AddonStats.py
> +lib/freecad/Mod/AddonManager/Init.py
> +lib/freecad/Mod/AddonManager/InitGui.py
> +lib/freecad/Mod/AddonManager/LICENSE
> +lib/freecad/Mod/AddonManager/MacroCacheCreator.py
> +lib/freecad/Mod/AddonManager/NetworkManager.py
> +lib/freecad/Mod/AddonManager/PySideWrapper.py
> +lib/freecad/Mod/AddonManager/PythonDependencyUpdateDialog.ui
> +lib/freecad/Mod/AddonManager/Resources/
> +lib/freecad/Mod/AddonManager/Resources/icons/
> +lib/freecad/Mod/AddonManager/Resources/icons/addon_manager.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/addon_manager_with_warning.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/button_left.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/button_valid.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/compact_view.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/composite_view.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/debug-stop.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/document-package.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/document-python.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/expanded_view.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/gear.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/list-add.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/list-remove.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/preferences-addon_manager.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/process-stop.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/regex_bad.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/regex_ok.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/sort_ascending.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/sort_descending.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/spinner.svg
> +lib/freecad/Mod/AddonManager/Resources/icons/view-refresh.svg
> +lib/freecad/Mod/AddonManager/Resources/licenses/
> +lib/freecad/Mod/AddonManager/Resources/licenses/Apache-2.0.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/BSD-2-Clause.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/BSD-3-Clause.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/CC0-1.0.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/GPL-2.0-or-later.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/GPL-3.0-or-later.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/LGPL-2.1-or-later.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/LGPL-3.0-or-later.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/MIT.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/MPL-2.0.txt
> +lib/freecad/Mod/AddonManager/Resources/licenses/spdx.json
> +lib/freecad/Mod/AddonManager/Resources/translations/
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_be.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_ca.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_cs.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_da.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_de.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_el.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_es-AR.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_es-CO.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_es-ES.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_es-VE.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_eu.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_fr.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_hr.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_hu.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_it.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_ja.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_ka.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_pl.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_pt-BR.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_pt-PT.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_ru.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_sr-CS.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_sr-SP.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_uk.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_zh-CN.qm
> +lib/freecad/Mod/AddonManager/Resources/translations/AddonManager_zh-TW.qm
> +lib/freecad/Mod/AddonManager/TestAddonManagerApp.py
> +lib/freecad/Mod/AddonManager/TestAddonManagerGui.py
> +lib/freecad/Mod/AddonManager/Widgets/
> +lib/freecad/Mod/AddonManager/Widgets/__init__.py
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}/
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_colors.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_colors.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_utility_dialogs.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_utility_dialogs.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_addon_buttons.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_addon_buttons.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_filter_selector.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_filter_selector.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_global_buttons.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_global_buttons.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_package_details_view.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_package_details_view.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_progress_bar.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_progress_bar.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_readme_browser.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_readme_browser.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_search.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_search.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_view_control_bar.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_view_control_bar.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_view_selector.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}addonmanager_widget_view_selector.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}spinner.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/Widgets/${MODPY_PYCACHE}spinner.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_colors.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_utility_dialogs.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_addon_buttons.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_filter_selector.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_global_buttons.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_package_details_view.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_progress_bar.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_readme_browser.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_search.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_view_control_bar.py
> +lib/freecad/Mod/AddonManager/Widgets/addonmanager_widget_view_selector.py
> +lib/freecad/Mod/AddonManager/Widgets/spinner.py
> +lib/freecad/Mod/AddonManager/__init__.py
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}/
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}Addon.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}Addon.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonCatalog.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonCatalog.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonCatalogCacheCreator.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonCatalogCacheCreator.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonManager.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonManager.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonManagerOptions.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonManagerOptions.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonStats.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}AddonStats.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}InitGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}InitGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}MacroCacheCreator.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}MacroCacheCreator.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}NetworkManager.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}NetworkManager.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}PySideWrapper.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}PySideWrapper.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}TestAddonManagerApp.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}TestAddonManagerApp.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}TestAddonManagerGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}TestAddonManagerGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_connection_checker.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_connection_checker.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_dependency_installer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_dependency_installer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_firstrun.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_firstrun.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_freecad_interface.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_freecad_interface.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_git.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_git.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_icon_utilities.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_icon_utilities.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_installation_manifest.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_installation_manifest.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_installer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_installer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_installer_gui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_installer_gui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_licenses.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_licenses.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_macro.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_macro.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_macro_parser.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_macro_parser.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_metadata.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_metadata.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_package_details_controller.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_package_details_controller.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_preferences_migrations.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_preferences_migrations.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_python_deps.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_python_deps.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_python_deps_gui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_python_deps_gui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_readme_controller.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_readme_controller.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_toolbar_adapter.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_toolbar_adapter.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_uninstaller.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_uninstaller.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_uninstaller_gui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_uninstaller_gui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_update_all_gui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_update_all_gui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_utilities.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_utilities.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_workers_startup.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_workers_startup.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_workers_utility.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}addonmanager_workers_utility.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}compact_view.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}compact_view.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}composite_view.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}composite_view.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}expanded_view.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}expanded_view.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}package_list.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/AddonManager/${MODPY_PYCACHE}package_list.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/AddonManager/add_toolbar_button_dialog.ui
> +lib/freecad/Mod/AddonManager/addonmanager.dox
> +lib/freecad/Mod/AddonManager/addonmanager_connection_checker.py
> +lib/freecad/Mod/AddonManager/addonmanager_dependency_installer.py
> +lib/freecad/Mod/AddonManager/addonmanager_firstrun.py
> +lib/freecad/Mod/AddonManager/addonmanager_freecad_interface.py
> +lib/freecad/Mod/AddonManager/addonmanager_git.py
> +lib/freecad/Mod/AddonManager/addonmanager_icon_utilities.py
> +lib/freecad/Mod/AddonManager/addonmanager_installation_manifest.py
> +lib/freecad/Mod/AddonManager/addonmanager_installer.py
> +lib/freecad/Mod/AddonManager/addonmanager_installer_gui.py
> +lib/freecad/Mod/AddonManager/addonmanager_licenses.py
> +lib/freecad/Mod/AddonManager/addonmanager_macro.py
> +lib/freecad/Mod/AddonManager/addonmanager_macro_parser.py
> +lib/freecad/Mod/AddonManager/addonmanager_metadata.py
> +lib/freecad/Mod/AddonManager/addonmanager_package_details_controller.py
> +lib/freecad/Mod/AddonManager/addonmanager_preferences_defaults.json
> +lib/freecad/Mod/AddonManager/addonmanager_preferences_migrations.py
> +lib/freecad/Mod/AddonManager/addonmanager_python_deps.py
> +lib/freecad/Mod/AddonManager/addonmanager_python_deps_gui.py
> +lib/freecad/Mod/AddonManager/addonmanager_readme_controller.py
> +lib/freecad/Mod/AddonManager/addonmanager_toolbar_adapter.py
> +lib/freecad/Mod/AddonManager/addonmanager_uninstaller.py
> +lib/freecad/Mod/AddonManager/addonmanager_uninstaller_gui.py
> +lib/freecad/Mod/AddonManager/addonmanager_update_all_gui.py
> +lib/freecad/Mod/AddonManager/addonmanager_utilities.py
> +lib/freecad/Mod/AddonManager/addonmanager_workers_startup.py
> +lib/freecad/Mod/AddonManager/addonmanager_workers_utility.py
> +lib/freecad/Mod/AddonManager/compact_view.py
> +lib/freecad/Mod/AddonManager/compact_view.ui
> +lib/freecad/Mod/AddonManager/composite_view.py
> +lib/freecad/Mod/AddonManager/dependency_resolution_dialog.ui
> +lib/freecad/Mod/AddonManager/expanded_view.py
> +lib/freecad/Mod/AddonManager/expanded_view.ui
> +lib/freecad/Mod/AddonManager/first_run.ui
> +lib/freecad/Mod/AddonManager/package.xml
> +lib/freecad/Mod/AddonManager/package_details.ui
> +lib/freecad/Mod/AddonManager/package_list.py
> +lib/freecad/Mod/AddonManager/progress.ui
> +lib/freecad/Mod/AddonManager/proxy_authentication.ui
> +lib/freecad/Mod/AddonManager/select_toolbar_dialog.ui
> +lib/freecad/Mod/AddonManager/toolbar_button.ui
> +lib/freecad/Mod/AddonManager/update_all.ui
> +lib/freecad/Mod/AddonManager/update_all_progress.ui
>  lib/freecad/Mod/Assembly/
>  lib/freecad/Mod/Assembly/Assembly/
>  lib/freecad/Mod/Assembly/Assembly/__init__.py
> @@ -57,9 +313,15 @@ lib/freecad/Mod/Assembly/Assembly/${MODPY_PYCACHE}__in
>  lib/freecad/Mod/Assembly/Assembly/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/AssemblyImport.py
>  lib/freecad/Mod/Assembly/AssemblyTests/
> +lib/freecad/Mod/Assembly/AssemblyTests/MockGui.py
> +lib/freecad/Mod/Assembly/AssemblyTests/TestCommandInsertLink.py
>  lib/freecad/Mod/Assembly/AssemblyTests/TestCore.py
>  lib/freecad/Mod/Assembly/AssemblyTests/__init__.py
>  lib/freecad/Mod/Assembly/AssemblyTests/${MODPY_PYCACHE}/
> +lib/freecad/Mod/Assembly/AssemblyTests/${MODPY_PYCACHE}MockGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Assembly/AssemblyTests/${MODPY_PYCACHE}MockGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Assembly/AssemblyTests/${MODPY_PYCACHE}TestCommandInsertLink.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Assembly/AssemblyTests/${MODPY_PYCACHE}TestCommandInsertLink.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/AssemblyTests/${MODPY_PYCACHE}TestCore.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Assembly/AssemblyTests/${MODPY_PYCACHE}TestCore.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/AssemblyTests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -68,9 +330,11 @@ lib/freecad/Mod/Assembly/Assembly_rc.py
>  lib/freecad/Mod/Assembly/CommandCreateAssembly.py
>  lib/freecad/Mod/Assembly/CommandCreateBom.py
>  lib/freecad/Mod/Assembly/CommandCreateJoint.py
> +lib/freecad/Mod/Assembly/CommandCreateSimulation.py
>  lib/freecad/Mod/Assembly/CommandCreateView.py
>  lib/freecad/Mod/Assembly/CommandExportASMT.py
>  lib/freecad/Mod/Assembly/CommandInsertLink.py
> +lib/freecad/Mod/Assembly/CommandInsertNewPart.py
>  lib/freecad/Mod/Assembly/CommandSolveAssembly.py
>  lib/freecad/Mod/Assembly/Init.py
>  lib/freecad/Mod/Assembly/InitGui.py
> @@ -90,12 +354,16 @@ lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandCreate
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandCreateBom.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandCreateJoint.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandCreateJoint.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandCreateSimulation.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandCreateSimulation.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandCreateView.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandCreateView.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandExportASMT.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandExportASMT.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandInsertLink.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandInsertLink.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandInsertNewPart.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandInsertNewPart.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandSolveAssembly.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}CommandSolveAssembly.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Assembly/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -168,6 +436,7 @@ lib/freecad/Mod/BIM/Init.py
>  lib/freecad/Mod/BIM/InitGui.py
>  lib/freecad/Mod/BIM/OfflineRenderingUtils.py
>  lib/freecad/Mod/BIM/TestArch.py
> +lib/freecad/Mod/BIM/TestArchGui.py
>  lib/freecad/Mod/BIM/${MODPY_PYCACHE}/
>  lib/freecad/Mod/BIM/${MODPY_PYCACHE}Arch.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/${MODPY_PYCACHE}Arch.${MODPY_PYC_MAGIC_TAG}pyc
> @@ -257,6 +526,8 @@ lib/freecad/Mod/BIM/${MODPY_PYCACHE}OfflineRenderingUt
>  lib/freecad/Mod/BIM/${MODPY_PYCACHE}OfflineRenderingUtils.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/${MODPY_PYCACHE}TestArch.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/${MODPY_PYCACHE}TestArch.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/${MODPY_PYCACHE}TestArchGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/${MODPY_PYCACHE}TestArchGui.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/bimcommands/
>  lib/freecad/Mod/BIM/bimcommands/BimArchUtils.py
>  lib/freecad/Mod/BIM/bimcommands/BimAxis.py
> @@ -278,6 +549,7 @@ lib/freecad/Mod/BIM/bimcommands/BimCutPlane.py
>  lib/freecad/Mod/BIM/bimcommands/BimDiff.py
>  lib/freecad/Mod/BIM/bimcommands/BimDimensions.py
>  lib/freecad/Mod/BIM/bimcommands/BimDoor.py
> +lib/freecad/Mod/BIM/bimcommands/BimDrawingView.py
>  lib/freecad/Mod/BIM/bimcommands/BimEmptyTrash.py
>  lib/freecad/Mod/BIM/bimcommands/BimEquipment.py
>  lib/freecad/Mod/BIM/bimcommands/BimExamples.py
> @@ -379,6 +651,8 @@ lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimDim
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimDimensions.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimDoor.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimDoor.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimDrawingView.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimDrawingView.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimEmptyTrash.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimEmptyTrash.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimEquipment.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -499,7 +773,105 @@ lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimWin
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}BimWindows.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/bimcommands/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/
> +lib/freecad/Mod/BIM/bimtests/TestArchAxis.py
> +lib/freecad/Mod/BIM/bimtests/TestArchBase.py
> +lib/freecad/Mod/BIM/bimtests/TestArchBaseGui.py
> +lib/freecad/Mod/BIM/bimtests/TestArchBuildingPart.py
> +lib/freecad/Mod/BIM/bimtests/TestArchBuildingPartGui.py
> +lib/freecad/Mod/BIM/bimtests/TestArchComponent.py
> +lib/freecad/Mod/BIM/bimtests/TestArchCurtainWall.py
> +lib/freecad/Mod/BIM/bimtests/TestArchEquipment.py
> +lib/freecad/Mod/BIM/bimtests/TestArchFence.py
> +lib/freecad/Mod/BIM/bimtests/TestArchFrame.py
> +lib/freecad/Mod/BIM/bimtests/TestArchGrid.py
> +lib/freecad/Mod/BIM/bimtests/TestArchImportersGui.py
> +lib/freecad/Mod/BIM/bimtests/TestArchMaterial.py
> +lib/freecad/Mod/BIM/bimtests/TestArchPanel.py
> +lib/freecad/Mod/BIM/bimtests/TestArchPipe.py
> +lib/freecad/Mod/BIM/bimtests/TestArchProfile.py
> +lib/freecad/Mod/BIM/bimtests/TestArchProject.py
> +lib/freecad/Mod/BIM/bimtests/TestArchRebar.py
> +lib/freecad/Mod/BIM/bimtests/TestArchReference.py
> +lib/freecad/Mod/BIM/bimtests/TestArchRoof.py
> +lib/freecad/Mod/BIM/bimtests/TestArchSchedule.py
> +lib/freecad/Mod/BIM/bimtests/TestArchSectionPlane.py
> +lib/freecad/Mod/BIM/bimtests/TestArchSiteGui.py
> +lib/freecad/Mod/BIM/bimtests/TestArchSpace.py
> +lib/freecad/Mod/BIM/bimtests/TestArchStairs.py
> +lib/freecad/Mod/BIM/bimtests/TestArchStructure.py
> +lib/freecad/Mod/BIM/bimtests/TestArchTruss.py
> +lib/freecad/Mod/BIM/bimtests/TestArchWall.py
> +lib/freecad/Mod/BIM/bimtests/TestArchWindow.py
> +lib/freecad/Mod/BIM/bimtests/TestWebGLExport.py
> +lib/freecad/Mod/BIM/bimtests/TestWebGLExportGui.py
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}/
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchAxis.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchAxis.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchBase.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchBase.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchBaseGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchBaseGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchBuildingPart.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchBuildingPart.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchBuildingPartGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchBuildingPartGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchComponent.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchComponent.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchCurtainWall.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchCurtainWall.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchEquipment.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchEquipment.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchFence.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchFence.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchFrame.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchFrame.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchGrid.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchGrid.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchImportersGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchImportersGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchMaterial.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchMaterial.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchPanel.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchPanel.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchPipe.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchPipe.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchProfile.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchProfile.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchProject.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchProject.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchRebar.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchRebar.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchReference.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchReference.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchRoof.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchRoof.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchSchedule.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchSchedule.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchSectionPlane.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchSectionPlane.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchSiteGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchSiteGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchSpace.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchSpace.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchStairs.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchStairs.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchStructure.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchStructure.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchTruss.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchTruss.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchWall.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchWall.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchWindow.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestArchWindow.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestWebGLExport.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestWebGLExport.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestWebGLExportGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/bimtests/${MODPY_PYCACHE}TestWebGLExportGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/bimtests/fixtures/
> +lib/freecad/Mod/BIM/bimtests/fixtures/FC_site_simple-102.FCStd
>  lib/freecad/Mod/BIM/importers/
> +lib/freecad/Mod/BIM/importers/Sample.sh3d
>  lib/freecad/Mod/BIM/importers/__init__.py
>  lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}/
>  lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -530,6 +902,8 @@ lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importOB
>  lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importOBJ.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importSH3D.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importSH3D.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importSH3DHelper.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importSH3DHelper.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importSHP.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importSHP.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/importers/${MODPY_PYCACHE}importWebGL.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -547,6 +921,7 @@ lib/freecad/Mod/BIM/importers/importIFCmulticore.py
>  lib/freecad/Mod/BIM/importers/importJSON.py
>  lib/freecad/Mod/BIM/importers/importOBJ.py
>  lib/freecad/Mod/BIM/importers/importSH3D.py
> +lib/freecad/Mod/BIM/importers/importSH3DHelper.py
>  lib/freecad/Mod/BIM/importers/importSHP.py
>  lib/freecad/Mod/BIM/importers/importWebGL.py
>  lib/freecad/Mod/BIM/nativeifc/
> @@ -554,10 +929,14 @@ lib/freecad/Mod/BIM/nativeifc/__init__.py
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}/
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_classification.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_classification.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_commands.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_commands.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_diff.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_diff.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_export.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_export.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_generator.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_generator.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_geometry.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -586,10 +965,14 @@ lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_tool
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_tools.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_tree.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_tree.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_types.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_types.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_viewproviders.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/BIM/nativeifc/${MODPY_PYCACHE}ifc_viewproviders.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/BIM/nativeifc/ifc_classification.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_commands.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_diff.py
> +lib/freecad/Mod/BIM/nativeifc/ifc_export.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_generator.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_geometry.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_import.py
> @@ -604,6 +987,7 @@ lib/freecad/Mod/BIM/nativeifc/ifc_selftest.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_status.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_tools.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_tree.py
> +lib/freecad/Mod/BIM/nativeifc/ifc_types.py
>  lib/freecad/Mod/BIM/nativeifc/ifc_viewproviders.py
>  lib/freecad/Mod/CAM/
>  lib/freecad/Mod/CAM/CAMTests/
> @@ -620,6 +1004,7 @@ lib/freecad/Mod/CAM/CAMTests/TestMach3Mach4Post.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathAdaptive.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathCore.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathDepthParams.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathDressupArray.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathDressupDogbone.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathDressupDogboneII.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathDressupHoldingTags.py
> @@ -641,11 +1026,29 @@ lib/freecad/Mod/CAM/CAMTests/TestPathPropertyBag.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathRotationGenerator.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathSetupSheet.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathStock.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathTapGenerator.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathThreadMilling.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathThreadMillingGenerator.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolAsset.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolAssetCache.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolAssetManager.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolAssetStore.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolAssetUri.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathToolBit.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolBitBrowserWidget.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolBitEditorWidget.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolBitListWidget.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolBitPropertyEditorWidget.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolBitSerializer.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathToolChangeGenerator.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathToolController.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolDocumentObjectEditorWidget.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolLibrary.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolLibrarySerializer.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolMachine.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolShapeClasses.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolShapeDoc.py
> +lib/freecad/Mod/CAM/CAMTests/TestPathToolShapeIcon.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathUtil.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathVcarve.py
>  lib/freecad/Mod/CAM/CAMTests/TestPathVoronoi.py
> @@ -653,9 +1056,13 @@ lib/freecad/Mod/CAM/CAMTests/TestRefactoredCentroidPos
>  lib/freecad/Mod/CAM/CAMTests/TestRefactoredGrblPost.py
>  lib/freecad/Mod/CAM/CAMTests/TestRefactoredLinuxCNCPost.py
>  lib/freecad/Mod/CAM/CAMTests/TestRefactoredMach3Mach4Post.py
> +lib/freecad/Mod/CAM/CAMTests/TestRefactoredMassoG3Post.py
> +lib/freecad/Mod/CAM/CAMTests/TestRefactoredTestDressupPost.py
>  lib/freecad/Mod/CAM/CAMTests/TestRefactoredTestPost.py
>  lib/freecad/Mod/CAM/CAMTests/TestRefactoredTestPostGCodes.py
>  lib/freecad/Mod/CAM/CAMTests/TestRefactoredTestPostMCodes.py
> +lib/freecad/Mod/CAM/CAMTests/TestSnapmakerPost.py
> +lib/freecad/Mod/CAM/CAMTests/TestToolBitRecomputeState.py
>  lib/freecad/Mod/CAM/CAMTests/Tools/
>  lib/freecad/Mod/CAM/CAMTests/Tools/Bit/
>  lib/freecad/Mod/CAM/CAMTests/Tools/Bit/test-path-tool-bit-bit-00.fctb
> @@ -685,6 +1092,8 @@ lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathC
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathCore.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathDepthParams.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathDepthParams.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathDressupArray.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathDressupArray.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathDressupDogbone.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathDressupDogbone.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathDressupDogboneII.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -727,16 +1136,52 @@ lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathS
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathSetupSheet.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathStock.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathStock.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathTapGenerator.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathTapGenerator.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathThreadMilling.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathThreadMilling.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathThreadMillingGenerator.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathThreadMillingGenerator.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAsset.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAsset.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAssetCache.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAssetCache.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAssetManager.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAssetManager.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAssetStore.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAssetStore.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAssetUri.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolAssetUri.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBit.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBit.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitBrowserWidget.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitBrowserWidget.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitEditorWidget.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitEditorWidget.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitListWidget.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitListWidget.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitPropertyEditorWidget.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitPropertyEditorWidget.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitSerializer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolBitSerializer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolChangeGenerator.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolChangeGenerator.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolController.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolController.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolDocumentObjectEditorWidget.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolDocumentObjectEditorWidget.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolLibrary.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolLibrary.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolLibrarySerializer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolLibrarySerializer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolMachine.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolMachine.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolShapeClasses.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolShapeClasses.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolShapeDoc.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolShapeDoc.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolShapeIcon.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathToolShapeIcon.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathUtil.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathUtil.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestPathVcarve.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -751,16 +1196,25 @@ lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefac
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredLinuxCNCPost.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredMach3Mach4Post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredMach3Mach4Post.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredMassoG3Post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredMassoG3Post.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredTestDressupPost.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredTestDressupPost.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredTestPost.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredTestPost.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredTestPostGCodes.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredTestPostGCodes.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredTestPostMCodes.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestRefactoredTestPostMCodes.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestSnapmakerPost.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestSnapmakerPost.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestToolBitRecomputeState.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}TestToolBitRecomputeState.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/CAMTests/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/CAMTests/boxtest.fcstd
>  lib/freecad/Mod/CAM/CAMTests/boxtest1.fcstd
> +lib/freecad/Mod/CAM/CAMTests/dressuptest.FCStd
>  lib/freecad/Mod/CAM/CAMTests/drill_test1.FCStd
>  lib/freecad/Mod/CAM/CAMTests/test-path-tool-bit-bit-00.fctb
>  lib/freecad/Mod/CAM/CAMTests/test-path-tool-bit-library-00.fctl
> @@ -783,10 +1237,6 @@ lib/freecad/Mod/CAM/Data/Threads/metric-internal-6H.cs
>  lib/freecad/Mod/CAM/Images/
>  lib/freecad/Mod/CAM/Images/Ops/
>  lib/freecad/Mod/CAM/Images/Ops/chamfer.svg
> -lib/freecad/Mod/CAM/Images/Tools/
> -lib/freecad/Mod/CAM/Images/Tools/drill.svg
> -lib/freecad/Mod/CAM/Images/Tools/endmill.svg
> -lib/freecad/Mod/CAM/Images/Tools/v-bit.svg
>  lib/freecad/Mod/CAM/Init.py
>  lib/freecad/Mod/CAM/InitGui.py
>  lib/freecad/Mod/CAM/Path/
> @@ -803,6 +1253,8 @@ lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACH
>  lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACHE}helix.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACHE}rotation.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACHE}rotation.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACHE}tapping.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACHE}tapping.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACHE}threadmilling.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACHE}threadmilling.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Base/Generator/${MODPY_PYCACHE}toolchange.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -811,6 +1263,7 @@ lib/freecad/Mod/CAM/Path/Base/Generator/dogboneII.py
>  lib/freecad/Mod/CAM/Path/Base/Generator/drill.py
>  lib/freecad/Mod/CAM/Path/Base/Generator/helix.py
>  lib/freecad/Mod/CAM/Path/Base/Generator/rotation.py
> +lib/freecad/Mod/CAM/Path/Base/Generator/tapping.py
>  lib/freecad/Mod/CAM/Path/Base/Generator/threadmilling.py
>  lib/freecad/Mod/CAM/Path/Base/Generator/toolchange.py
>  lib/freecad/Mod/CAM/Path/Base/Gui/
> @@ -872,9 +1325,11 @@ lib/freecad/Mod/CAM/Path/Base/${MODPY_PYCACHE}Util.${M
>  lib/freecad/Mod/CAM/Path/Base/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Base/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Dressup/
> +lib/freecad/Mod/CAM/Path/Dressup/Array.py
>  lib/freecad/Mod/CAM/Path/Dressup/Boundary.py
>  lib/freecad/Mod/CAM/Path/Dressup/DogboneII.py
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/
> +lib/freecad/Mod/CAM/Path/Dressup/Gui/Array.py
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/AxisMap.py
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/Boundary.py
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/Dogbone.py
> @@ -888,6 +1343,8 @@ lib/freecad/Mod/CAM/Path/Dressup/Gui/Tags.py
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/ZCorrect.py
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/__init__.py
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Dressup/Gui/${MODPY_PYCACHE}Array.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Dressup/Gui/${MODPY_PYCACHE}Array.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/${MODPY_PYCACHE}AxisMap.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/${MODPY_PYCACHE}AxisMap.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Dressup/Gui/${MODPY_PYCACHE}Boundary.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -916,6 +1373,8 @@ lib/freecad/Mod/CAM/Path/Dressup/Tags.py
>  lib/freecad/Mod/CAM/Path/Dressup/Utils.py
>  lib/freecad/Mod/CAM/Path/Dressup/__init__.py
>  lib/freecad/Mod/CAM/Path/Dressup/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Dressup/${MODPY_PYCACHE}Array.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Dressup/${MODPY_PYCACHE}Array.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Dressup/${MODPY_PYCACHE}Boundary.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Dressup/${MODPY_PYCACHE}Boundary.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Dressup/${MODPY_PYCACHE}DogboneII.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1018,6 +1477,7 @@ lib/freecad/Mod/CAM/Path/Op/Gui/Engrave.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/FeatureExtension.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/Helix.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/MillFace.py
> +lib/freecad/Mod/CAM/Path/Op/Gui/PathShapeTC.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/Pocket.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/PocketBase.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/PocketShape.py
> @@ -1028,6 +1488,7 @@ lib/freecad/Mod/CAM/Path/Op/Gui/SimpleCopy.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/Slot.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/Stop.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/Surface.py
> +lib/freecad/Mod/CAM/Path/Op/Gui/Tapping.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/ThreadMilling.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/Vcarve.py
>  lib/freecad/Mod/CAM/Path/Op/Gui/Waterline.py
> @@ -1059,6 +1520,8 @@ lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Helix.
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Helix.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}MillFace.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}MillFace.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}PathShapeTC.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}PathShapeTC.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Pocket.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Pocket.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}PocketBase.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1079,6 +1542,8 @@ lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Stop.$
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Stop.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Surface.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Surface.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Tapping.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Tapping.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}ThreadMilling.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}ThreadMilling.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/Gui/${MODPY_PYCACHE}Vcarve.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1097,6 +1562,7 @@ lib/freecad/Mod/CAM/Path/Op/Profile.py
>  lib/freecad/Mod/CAM/Path/Op/Slot.py
>  lib/freecad/Mod/CAM/Path/Op/Surface.py
>  lib/freecad/Mod/CAM/Path/Op/SurfaceSupport.py
> +lib/freecad/Mod/CAM/Path/Op/Tapping.py
>  lib/freecad/Mod/CAM/Path/Op/ThreadMilling.py
>  lib/freecad/Mod/CAM/Path/Op/Util.py
>  lib/freecad/Mod/CAM/Path/Op/Vcarve.py
> @@ -1143,6 +1609,8 @@ lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}Surface.${
>  lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}Surface.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}SurfaceSupport.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}SurfaceSupport.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}Tapping.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}Tapping.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}ThreadMilling.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}ThreadMilling.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Op/${MODPY_PYCACHE}Util.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1190,6 +1658,8 @@ lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}comparams_post.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}dxf_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}dxf_post.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}dynapath_4060_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}dynapath_4060_post.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}dynapath_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}dynapath_post.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}estlcam_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1234,6 +1704,8 @@ lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}refactored_linuxcnc_post.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}refactored_mach3_mach4_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}refactored_mach3_mach4_post.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}refactored_masso_g3_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}refactored_masso_g3_post.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}refactored_test_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}refactored_test_post.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}rml_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1244,6 +1716,10 @@ lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}slic3r_pre.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}smoothie_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}smoothie_post.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}snapmaker_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}snapmaker_post.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}svg_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}svg_post.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}uccnc_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}uccnc_post.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}wedm_post.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1251,6 +1727,7 @@ lib/freecad/Mod/CAM/Path/Post/scripts/${MODPY_PYCACHE}
>  lib/freecad/Mod/CAM/Path/Post/scripts/centroid_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/comparams_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/dxf_post.py
> +lib/freecad/Mod/CAM/Path/Post/scripts/dynapath_4060_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/dynapath_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/estlcam_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/example_pre.py
> @@ -1273,48 +1750,387 @@ lib/freecad/Mod/CAM/Path/Post/scripts/refactored_centr
>  lib/freecad/Mod/CAM/Path/Post/scripts/refactored_grbl_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/refactored_linuxcnc_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/refactored_mach3_mach4_post.py
> +lib/freecad/Mod/CAM/Path/Post/scripts/refactored_masso_g3_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/refactored_test_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/rml_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/rrf_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/slic3r_pre.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/smoothie_post.py
> +lib/freecad/Mod/CAM/Path/Post/scripts/snapmaker_post.py
> +lib/freecad/Mod/CAM/Path/Post/scripts/svg_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/uccnc_post.py
>  lib/freecad/Mod/CAM/Path/Post/scripts/wedm_post.py
>  lib/freecad/Mod/CAM/Path/Preferences.py
>  lib/freecad/Mod/CAM/Path/Tool/
> -lib/freecad/Mod/CAM/Path/Tool/Bit.py
>  lib/freecad/Mod/CAM/Path/Tool/Controller.py
>  lib/freecad/Mod/CAM/Path/Tool/Gui/
> -lib/freecad/Mod/CAM/Path/Tool/Gui/Bit.py
> -lib/freecad/Mod/CAM/Path/Tool/Gui/BitCmd.py
> -lib/freecad/Mod/CAM/Path/Tool/Gui/BitEdit.py
> -lib/freecad/Mod/CAM/Path/Tool/Gui/BitLibrary.py
> -lib/freecad/Mod/CAM/Path/Tool/Gui/BitLibraryCmd.py
>  lib/freecad/Mod/CAM/Path/Tool/Gui/Controller.py
>  lib/freecad/Mod/CAM/Path/Tool/Gui/__init__.py
>  lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}/
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}Bit.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}Bit.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}BitCmd.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}BitCmd.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}BitEdit.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}BitEdit.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}BitLibrary.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}BitLibrary.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}BitLibraryCmd.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}BitLibraryCmd.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}Controller.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}Controller.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Tool/Gui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Tool/__init__.py
>  lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}/
> -lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}Bit.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}Bit.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}Controller.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}Controller.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}camassets.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/${MODPY_PYCACHE}camassets.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/
> +lib/freecad/Mod/CAM/Path/Tool/assets/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}asset.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}asset.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}cache.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}manager.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}manager.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}serializer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}serializer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}uri.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/${MODPY_PYCACHE}uri.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/asset.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/cache.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/manager.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/serializer.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}filestore.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}filestore.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}memory.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/${MODPY_PYCACHE}memory.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/base.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/filestore.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/store/memory.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}filedialog.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}filedialog.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}preferences.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}preferences.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/filedialog.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/preferences.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/ui/util.py
> +lib/freecad/Mod/CAM/Path/Tool/assets/uri.py
> +lib/freecad/Mod/CAM/Path/Tool/camassets.py
> +lib/freecad/Mod/CAM/Path/Tool/docobject/
> +lib/freecad/Mod/CAM/Path/Tool/docobject/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/docobject/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/docobject/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/docobject/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/docobject/models/
> +lib/freecad/Mod/CAM/Path/Tool/docobject/models/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/docobject/models/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/docobject/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/docobject/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/docobject/models/${MODPY_PYCACHE}docobject.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/docobject/models/${MODPY_PYCACHE}docobject.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/docobject/models/docobject.py
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/${MODPY_PYCACHE}docobject.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/${MODPY_PYCACHE}docobject.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/${MODPY_PYCACHE}property.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/${MODPY_PYCACHE}property.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/docobject.py
> +lib/freecad/Mod/CAM/Path/Tool/docobject/ui/property.py
> +lib/freecad/Mod/CAM/Path/Tool/library/
> +lib/freecad/Mod/CAM/Path/Tool/library/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/library/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/library/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/models/
> +lib/freecad/Mod/CAM/Path/Tool/library/models/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/library/models/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/library/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/models/${MODPY_PYCACHE}library.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/models/${MODPY_PYCACHE}library.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/models/library.py
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}camotics.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}camotics.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}fctl.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}fctl.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}linuxcnc.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/${MODPY_PYCACHE}linuxcnc.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/camotics.py
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/fctl.py
> +lib/freecad/Mod/CAM/Path/Tool/library/serializers/linuxcnc.py
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}browser.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}browser.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}cmd.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}cmd.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}dock.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}dock.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}editor.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}editor.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}properties.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/${MODPY_PYCACHE}properties.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/browser.py
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/cmd.py
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/dock.py
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/editor.py
> +lib/freecad/Mod/CAM/Path/Tool/library/ui/properties.py
> +lib/freecad/Mod/CAM/Path/Tool/library/util.py
> +lib/freecad/Mod/CAM/Path/Tool/machine/
> +lib/freecad/Mod/CAM/Path/Tool/machine/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/machine/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/machine/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/machine/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/machine/models/
> +lib/freecad/Mod/CAM/Path/Tool/machine/models/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/machine/models/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/machine/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/machine/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/machine/models/${MODPY_PYCACHE}machine.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/machine/models/${MODPY_PYCACHE}machine.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/machine/models/machine.py
> +lib/freecad/Mod/CAM/Path/Tool/migration/
> +lib/freecad/Mod/CAM/Path/Tool/migration/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/migration/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/migration/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/migration/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/migration/${MODPY_PYCACHE}migration.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/migration/${MODPY_PYCACHE}migration.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/migration/migration.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/
> +lib/freecad/Mod/CAM/Path/Tool/shape/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/shape/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/${MODPY_PYCACHE}doc.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/${MODPY_PYCACHE}doc.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/doc.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}ballend.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}ballend.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}bullnose.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}bullnose.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}chamfer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}chamfer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}custom.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}custom.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}dovetail.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}dovetail.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}drill.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}drill.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}endmill.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}endmill.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}icon.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}icon.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}probe.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}probe.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}radius.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}radius.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}reamer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}reamer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}slittingsaw.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}slittingsaw.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}tap.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}tap.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}taperedballnose.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}taperedballnose.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}threadmill.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}threadmill.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}vbit.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/${MODPY_PYCACHE}vbit.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/ballend.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/base.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/bullnose.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/chamfer.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/custom.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/dovetail.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/drill.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/endmill.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/icon.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/probe.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/radius.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/reamer.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/slittingsaw.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/tap.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/taperedballnose.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/threadmill.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/models/vbit.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}flowlayout.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}flowlayout.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}shapebutton.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}shapebutton.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}shapeselector.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}shapeselector.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}shapewidget.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/${MODPY_PYCACHE}shapewidget.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/flowlayout.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/shapebutton.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/shapeselector.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/ui/shapewidget.py
> +lib/freecad/Mod/CAM/Path/Tool/shape/util.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/${MODPY_PYCACHE}migration.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/${MODPY_PYCACHE}migration.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/migration.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/${MODPY_PYCACHE}cutting.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/${MODPY_PYCACHE}cutting.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/${MODPY_PYCACHE}rotary.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/${MODPY_PYCACHE}rotary.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/cutting.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/mixins/rotary.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}ballend.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}ballend.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}base.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}bullnose.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}bullnose.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}chamfer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}chamfer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}custom.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}custom.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}dovetail.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}dovetail.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}drill.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}drill.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}endmill.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}endmill.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}probe.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}probe.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}radius.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}radius.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}reamer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}reamer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}slittingsaw.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}slittingsaw.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}tap.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}tap.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}taperedballnose.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}taperedballnose.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}threadmill.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}threadmill.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}vbit.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/${MODPY_PYCACHE}vbit.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/ballend.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/base.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/bullnose.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/chamfer.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/custom.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/dovetail.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/drill.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/endmill.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/probe.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/radius.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/reamer.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/slittingsaw.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/tap.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/taperedballnose.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/threadmill.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/models/vbit.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}camotics.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}camotics.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}fctb.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}fctb.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}yaml.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/${MODPY_PYCACHE}yaml.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/camotics.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/fctb.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/serializers/yaml.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/__init__.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}/
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}browser.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}browser.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}cmd.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}cmd.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}editor.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}editor.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}file.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}file.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}panel.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}panel.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}selector.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}selector.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}tablecell.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}tablecell.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}toollist.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}toollist.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}util.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}view.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/${MODPY_PYCACHE}view.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/browser.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/cmd.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/editor.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/file.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/panel.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/selector.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/tablecell.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/toollist.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/util.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/ui/view.py
> +lib/freecad/Mod/CAM/Path/Tool/toolbit/util.py
>  lib/freecad/Mod/CAM/Path/__init__.py
>  lib/freecad/Mod/CAM/Path/${MODPY_PYCACHE}/
>  lib/freecad/Mod/CAM/Path/${MODPY_PYCACHE}Geom.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1354,8 +2170,13 @@ lib/freecad/Mod/CAM/PathScripts/${MODPY_PYCACHE}PathUt
>  lib/freecad/Mod/CAM/PathScripts/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/PathScripts/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/TestCAMApp.py
> +lib/freecad/Mod/CAM/TestCAMGui.py
>  lib/freecad/Mod/CAM/Tools/
>  lib/freecad/Mod/CAM/Tools/Bit/
> +lib/freecad/Mod/CAM/Tools/Bit/3.175mm_Endmill.fctb
> +lib/freecad/Mod/CAM/Tools/Bit/30degree_Vbit.fctb
> +lib/freecad/Mod/CAM/Tools/Bit/375-16_Tap.fctb
> +lib/freecad/Mod/CAM/Tools/Bit/45degree_Vbit.fctb
>  lib/freecad/Mod/CAM/Tools/Bit/45degree_chamfer.fctb
>  lib/freecad/Mod/CAM/Tools/Bit/5mm-thread-cutter.fctb
>  lib/freecad/Mod/CAM/Tools/Bit/5mm_Drill.fctb
> @@ -1363,6 +2184,7 @@ lib/freecad/Mod/CAM/Tools/Bit/5mm_Endmill.fctb
>  lib/freecad/Mod/CAM/Tools/Bit/60degree_Vbit.fctb
>  lib/freecad/Mod/CAM/Tools/Bit/6mm_Ball_End.fctb
>  lib/freecad/Mod/CAM/Tools/Bit/6mm_Bullnose.fctb
> +lib/freecad/Mod/CAM/Tools/Bit/90degree_Vbit.fctb
>  lib/freecad/Mod/CAM/Tools/Bit/probe.fctb
>  lib/freecad/Mod/CAM/Tools/Bit/slittingsaw.fctb
>  lib/freecad/Mod/CAM/Tools/Library/
> @@ -1370,15 +2192,33 @@ lib/freecad/Mod/CAM/Tools/Library/Default.fctl
>  lib/freecad/Mod/CAM/Tools/README.md
>  lib/freecad/Mod/CAM/Tools/Shape/
>  lib/freecad/Mod/CAM/Tools/Shape/ballend.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/ballend.svg
>  lib/freecad/Mod/CAM/Tools/Shape/bullnose.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/bullnose.svg
>  lib/freecad/Mod/CAM/Tools/Shape/chamfer.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/chamfer.svg
>  lib/freecad/Mod/CAM/Tools/Shape/dovetail.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/dovetail.svg
>  lib/freecad/Mod/CAM/Tools/Shape/drill.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/drill.svg
>  lib/freecad/Mod/CAM/Tools/Shape/endmill.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/endmill.svg
>  lib/freecad/Mod/CAM/Tools/Shape/probe.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/probe.svg
> +lib/freecad/Mod/CAM/Tools/Shape/radius.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/radius.svg
> +lib/freecad/Mod/CAM/Tools/Shape/reamer.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/reamer.svg
>  lib/freecad/Mod/CAM/Tools/Shape/slittingsaw.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/slittingsaw.svg
> +lib/freecad/Mod/CAM/Tools/Shape/tap.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/tap.svg
> +lib/freecad/Mod/CAM/Tools/Shape/taperedballnose.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/taperedballnose.svg
>  lib/freecad/Mod/CAM/Tools/Shape/thread-mill.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/thread-mill.svg
>  lib/freecad/Mod/CAM/Tools/Shape/v-bit.fcstd
> +lib/freecad/Mod/CAM/Tools/Shape/v-bit.svg
>  lib/freecad/Mod/CAM/${MODPY_PYCACHE}/
>  lib/freecad/Mod/CAM/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}pyc
> @@ -1388,6 +2228,8 @@ lib/freecad/Mod/CAM/${MODPY_PYCACHE}PathCommands.${MOD
>  lib/freecad/Mod/CAM/${MODPY_PYCACHE}PathCommands.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/CAM/${MODPY_PYCACHE}TestCAMApp.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/CAM/${MODPY_PYCACHE}TestCAMApp.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/CAM/${MODPY_PYCACHE}TestCAMGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/CAM/${MODPY_PYCACHE}TestCAMGui.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/
>  lib/freecad/Mod/Draft/Draft.py
>  lib/freecad/Mod/Draft/DraftGeomUtils.py
> @@ -1395,8 +2237,10 @@ lib/freecad/Mod/Draft/DraftGui.py
>  lib/freecad/Mod/Draft/DraftTools.py
>  lib/freecad/Mod/Draft/DraftVecUtils.py
>  lib/freecad/Mod/Draft/Draft_rc.py
> +lib/freecad/Mod/Draft/DxfImportDialog.py
>  lib/freecad/Mod/Draft/Init.py
>  lib/freecad/Mod/Draft/InitGui.py
> +lib/freecad/Mod/Draft/SVGPath.py
>  lib/freecad/Mod/Draft/TestDraft.py
>  lib/freecad/Mod/Draft/TestDraftGui.py
>  lib/freecad/Mod/Draft/WorkingPlane.py
> @@ -1413,10 +2257,14 @@ lib/freecad/Mod/Draft/${MODPY_PYCACHE}DraftVecUtils.${
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}DraftVecUtils.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}Draft_rc.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}Draft_rc.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Draft/${MODPY_PYCACHE}DxfImportDialog.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Draft/${MODPY_PYCACHE}DxfImportDialog.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}InitGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}InitGui.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Draft/${MODPY_PYCACHE}SVGPath.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Draft/${MODPY_PYCACHE}SVGPath.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}TestDraft.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}TestDraft.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/${MODPY_PYCACHE}TestDraftGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1958,6 +2806,7 @@ lib/freecad/Mod/Draft/drafttaskpanels/task_scale.py
>  lib/freecad/Mod/Draft/drafttaskpanels/task_selectplane.py
>  lib/freecad/Mod/Draft/drafttaskpanels/task_shapestring.py
>  lib/freecad/Mod/Draft/drafttests/
> +lib/freecad/Mod/Draft/drafttests/Issue24314.dxf
>  lib/freecad/Mod/Draft/drafttests/README.md
>  lib/freecad/Mod/Draft/drafttests/__init__.py
>  lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}/
> @@ -1971,6 +2820,8 @@ lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_
>  lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_airfoildat.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_array.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_array.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_base.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_base.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_creation.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_creation.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Draft/drafttests/${MODPY_PYCACHE}test_draftgeomutils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -1997,6 +2848,7 @@ lib/freecad/Mod/Draft/drafttests/auxiliary.py
>  lib/freecad/Mod/Draft/drafttests/draft_test_objects.py
>  lib/freecad/Mod/Draft/drafttests/test_airfoildat.py
>  lib/freecad/Mod/Draft/drafttests/test_array.py
> +lib/freecad/Mod/Draft/drafttests/test_base.py
>  lib/freecad/Mod/Draft/drafttests/test_creation.py
>  lib/freecad/Mod/Draft/drafttests/test_draftgeomutils.py
>  lib/freecad/Mod/Draft/drafttests/test_dwg.py
> @@ -2125,6 +2977,7 @@ lib/freecad/Mod/Draft/importDXF.py
>  lib/freecad/Mod/Draft/importOCA.py
>  lib/freecad/Mod/Draft/importSVG.py
>  lib/freecad/Mod/Fem/
> +lib/freecad/Mod/Fem/CreateLabels.py
>  lib/freecad/Mod/Fem/Init.py
>  lib/freecad/Mod/Fem/InitGui.py
>  lib/freecad/Mod/Fem/ObjectsFem.py
> @@ -2136,6 +2989,7 @@ lib/freecad/Mod/Fem/Resources/ui/ConstraintSectionPrin
>  lib/freecad/Mod/Fem/Resources/ui/ConstraintTie.ui
>  lib/freecad/Mod/Fem/Resources/ui/CurrentDensity.ui
>  lib/freecad/Mod/Fem/Resources/ui/DlgSettingsNetgen.ui
> +lib/freecad/Mod/Fem/Resources/ui/ElectricChargeDensity.ui
>  lib/freecad/Mod/Fem/Resources/ui/ElectrostaticPotential.ui
>  lib/freecad/Mod/Fem/Resources/ui/ElementFluid1D.ui
>  lib/freecad/Mod/Fem/Resources/ui/ElementGeometry1D.ui
> @@ -2153,12 +3007,27 @@ lib/freecad/Mod/Fem/Resources/ui/MeshGroup.ui
>  lib/freecad/Mod/Fem/Resources/ui/MeshGroupXDMFExport.ui
>  lib/freecad/Mod/Fem/Resources/ui/MeshNetgen.ui
>  lib/freecad/Mod/Fem/Resources/ui/MeshRegion.ui
> +lib/freecad/Mod/Fem/Resources/ui/PostHistogramFieldAppEdit.ui
> +lib/freecad/Mod/Fem/Resources/ui/PostHistogramFieldViewEdit.ui
> +lib/freecad/Mod/Fem/Resources/ui/PostHistogramIndexAppEdit.ui
> +lib/freecad/Mod/Fem/Resources/ui/PostLineplotFieldAppEdit.ui
> +lib/freecad/Mod/Fem/Resources/ui/PostLineplotFieldViewEdit.ui
> +lib/freecad/Mod/Fem/Resources/ui/PostLineplotIndexAppEdit.ui
> +lib/freecad/Mod/Fem/Resources/ui/PostTableFieldViewEdit.ui
>  lib/freecad/Mod/Fem/Resources/ui/ResultHints.ui
>  lib/freecad/Mod/Fem/Resources/ui/ResultShow.ui
> -lib/freecad/Mod/Fem/Resources/ui/SolverCalculix.ui
> +lib/freecad/Mod/Fem/Resources/ui/SolverCalculiX.ui
> +lib/freecad/Mod/Fem/Resources/ui/SolverCcxTools.ui
> +lib/freecad/Mod/Fem/Resources/ui/SolverElmer.ui
> +lib/freecad/Mod/Fem/Resources/ui/TaskPostExtraction.ui
> +lib/freecad/Mod/Fem/Resources/ui/TaskPostGlyph.ui
> +lib/freecad/Mod/Fem/Resources/ui/TaskPostHistogram.ui
> +lib/freecad/Mod/Fem/Resources/ui/TaskPostLineplot.ui
>  lib/freecad/Mod/Fem/TestFemApp.py
>  lib/freecad/Mod/Fem/TestFemGui.py
>  lib/freecad/Mod/Fem/${MODPY_PYCACHE}/
> +lib/freecad/Mod/Fem/${MODPY_PYCACHE}CreateLabels.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/${MODPY_PYCACHE}CreateLabels.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/${MODPY_PYCACHE}Init.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/${MODPY_PYCACHE}InitGui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2232,6 +3101,12 @@ lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_ca
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_cantilever_nodeload.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_cantilever_prescribeddisplacement.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_cantilever_prescribeddisplacement.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_disc_cyclic_symm_centrif.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_disc_cyclic_symm_centrif.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_pipe_pressure_2D.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_pipe_pressure_2D.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_rigid_body.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}ccx_rigid_body.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}constraint_centrif.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}constraint_centrif.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}constraint_contact_shell_shell.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2254,6 +3129,8 @@ lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equati
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_deformation_spring_elmer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_electrostatics_capacitance_two_balls.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_electrostatics_capacitance_two_balls.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_electrostatics_capacitance_two_balls_ccx.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_electrostatics_capacitance_two_balls_ccx.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_electrostatics_electricforce_elmer_nongui6.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_electrostatics_electricforce_elmer_nongui6.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_flow_elmer_2D.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2270,6 +3147,8 @@ lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equati
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_magnetodynamics_elmer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_magnetostatics_2D_elmer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_magnetostatics_2D_elmer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_staticcurrent_elmer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}equation_staticcurrent_elmer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}examplesgui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}examplesgui.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/${MODPY_PYCACHE}frequency_beamsimple.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2321,6 +3200,9 @@ lib/freecad/Mod/Fem/femexamples/ccx_cantilever_ele_tri
>  lib/freecad/Mod/Fem/femexamples/ccx_cantilever_faceload.py
>  lib/freecad/Mod/Fem/femexamples/ccx_cantilever_nodeload.py
>  lib/freecad/Mod/Fem/femexamples/ccx_cantilever_prescribeddisplacement.py
> +lib/freecad/Mod/Fem/femexamples/ccx_disc_cyclic_symm_centrif.py
> +lib/freecad/Mod/Fem/femexamples/ccx_pipe_pressure_2D.py
> +lib/freecad/Mod/Fem/femexamples/ccx_rigid_body.py
>  lib/freecad/Mod/Fem/femexamples/constraint_centrif.py
>  lib/freecad/Mod/Fem/femexamples/constraint_contact_shell_shell.py
>  lib/freecad/Mod/Fem/femexamples/constraint_contact_solid_solid.py
> @@ -2332,6 +3214,7 @@ lib/freecad/Mod/Fem/femexamples/constraint_transform_t
>  lib/freecad/Mod/Fem/femexamples/elmer_nonguitutorial01_eigenvalue_of_elastic_beam.py
>  lib/freecad/Mod/Fem/femexamples/equation_deformation_spring_elmer.py
>  lib/freecad/Mod/Fem/femexamples/equation_electrostatics_capacitance_two_balls.py
> +lib/freecad/Mod/Fem/femexamples/equation_electrostatics_capacitance_two_balls_ccx.py
>  lib/freecad/Mod/Fem/femexamples/equation_electrostatics_electricforce_elmer_nongui6.py
>  lib/freecad/Mod/Fem/femexamples/equation_flow_elmer_2D.py
>  lib/freecad/Mod/Fem/femexamples/equation_flow_initial_elmer_2D.py
> @@ -2340,6 +3223,7 @@ lib/freecad/Mod/Fem/femexamples/equation_flux_elmer.py
>  lib/freecad/Mod/Fem/femexamples/equation_magnetodynamics_2D_elmer.py
>  lib/freecad/Mod/Fem/femexamples/equation_magnetodynamics_elmer.py
>  lib/freecad/Mod/Fem/femexamples/equation_magnetostatics_2D_elmer.py
> +lib/freecad/Mod/Fem/femexamples/equation_staticcurrent_elmer.py
>  lib/freecad/Mod/Fem/femexamples/examplesgui.py
>  lib/freecad/Mod/Fem/femexamples/frequency_beamsimple.py
>  lib/freecad/Mod/Fem/femexamples/manager.py
> @@ -2352,6 +3236,8 @@ lib/freecad/Mod/Fem/femexamples/meshes/__init__.py
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}/
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}generate_mesh.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}generate_mesh.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}mesh_beamsimple_tetra10.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}mesh_beamsimple_tetra10.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}mesh_boxanalysis_tetra10.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2420,6 +3306,7 @@ lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}mesh_truss_crane_seg2.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}mesh_truss_crane_seg3.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femexamples/meshes/${MODPY_PYCACHE}mesh_truss_crane_seg3.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femexamples/meshes/generate_mesh.py
>  lib/freecad/Mod/Fem/femexamples/meshes/mesh_beamsimple_tetra10.py
>  lib/freecad/Mod/Fem/femexamples/meshes/mesh_boxanalysis_tetra10.py
>  lib/freecad/Mod/Fem/femexamples/meshes/mesh_boxes_2_vertikal_tetra10.py
> @@ -2472,10 +3359,13 @@ lib/freecad/Mod/Fem/femguiutils/__init__.py
>  lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}/
>  lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}disambiguate_solid_selection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}disambiguate_solid_selection.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}migrate_gui.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}migrate_gui.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}selection_widgets.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femguiutils/${MODPY_PYCACHE}selection_widgets.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femguiutils/disambiguate_solid_selection.py
>  lib/freecad/Mod/Fem/femguiutils/migrate_gui.py
>  lib/freecad/Mod/Fem/femguiutils/selection_widgets.py
>  lib/freecad/Mod/Fem/feminout/
> @@ -2570,6 +3460,8 @@ lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constra
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constraint_centrif.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constraint_currentdensity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constraint_currentdensity.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constraint_electricchargedensity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constraint_electricchargedensity.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constraint_electrostaticpotential.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constraint_electrostaticpotential.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}constraint_flowvelocity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2614,8 +3506,12 @@ lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}mesh_re
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}mesh_result.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}result_mechanical.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}result_mechanical.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}solver_calculix.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}solver_calculix.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}solver_ccxtools.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}solver_ccxtools.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}solver_elmer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femobjects/${MODPY_PYCACHE}solver_elmer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femobjects/base_femelement.py
>  lib/freecad/Mod/Fem/femobjects/base_femmeshelement.py
>  lib/freecad/Mod/Fem/femobjects/base_fempythonobject.py
> @@ -2623,6 +3519,7 @@ lib/freecad/Mod/Fem/femobjects/constant_vacuumpermitti
>  lib/freecad/Mod/Fem/femobjects/constraint_bodyheatsource.py
>  lib/freecad/Mod/Fem/femobjects/constraint_centrif.py
>  lib/freecad/Mod/Fem/femobjects/constraint_currentdensity.py
> +lib/freecad/Mod/Fem/femobjects/constraint_electricchargedensity.py
>  lib/freecad/Mod/Fem/femobjects/constraint_electrostaticpotential.py
>  lib/freecad/Mod/Fem/femobjects/constraint_flowvelocity.py
>  lib/freecad/Mod/Fem/femobjects/constraint_initialflowvelocity.py
> @@ -2645,7 +3542,17 @@ lib/freecad/Mod/Fem/femobjects/mesh_netgen.py
>  lib/freecad/Mod/Fem/femobjects/mesh_region.py
>  lib/freecad/Mod/Fem/femobjects/mesh_result.py
>  lib/freecad/Mod/Fem/femobjects/result_mechanical.py
> +lib/freecad/Mod/Fem/femobjects/solver_calculix.py
>  lib/freecad/Mod/Fem/femobjects/solver_ccxtools.py
> +lib/freecad/Mod/Fem/femobjects/solver_elmer.py
> +lib/freecad/Mod/Fem/fempreferencepages/
> +lib/freecad/Mod/Fem/fempreferencepages/__init__.py
> +lib/freecad/Mod/Fem/fempreferencepages/${MODPY_PYCACHE}/
> +lib/freecad/Mod/Fem/fempreferencepages/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/fempreferencepages/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/fempreferencepages/${MODPY_PYCACHE}dlg_settings_netgen.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/fempreferencepages/${MODPY_PYCACHE}dlg_settings_netgen.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/fempreferencepages/dlg_settings_netgen.py
>  lib/freecad/Mod/Fem/femresult/
>  lib/freecad/Mod/Fem/femresult/__init__.py
>  lib/freecad/Mod/Fem/femresult/${MODPY_PYCACHE}/
> @@ -2684,10 +3591,14 @@ lib/freecad/Mod/Fem/femsolver/calculix/__init__.py
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}/
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}calculixtools.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}calculixtools.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}solver.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}solver.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}tasks.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}tasks.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_amplitude.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_amplitude.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_bodyheatsource.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_bodyheatsource.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_centrif.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2696,6 +3607,12 @@ lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_contact.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_displacement.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_displacement.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_electricchargedensity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_electricchargedensity.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_electrostatic.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_electrostatic.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_finaltemperature.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_finaltemperature.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_fixed.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_fixed.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_constraint_fluidsection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2740,12 +3657,17 @@ lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}write_step_output.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}writer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/calculix/${MODPY_PYCACHE}writer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/calculix/calculixtools.py
>  lib/freecad/Mod/Fem/femsolver/calculix/solver.py
>  lib/freecad/Mod/Fem/femsolver/calculix/tasks.py
> +lib/freecad/Mod/Fem/femsolver/calculix/write_amplitude.py
>  lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_bodyheatsource.py
>  lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_centrif.py
>  lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_contact.py
>  lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_displacement.py
> +lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_electricchargedensity.py
> +lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_electrostatic.py
> +lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_finaltemperature.py
>  lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_fixed.py
>  lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_fluidsection.py
>  lib/freecad/Mod/Fem/femsolver/calculix/write_constraint_force.py
> @@ -2773,14 +3695,13 @@ lib/freecad/Mod/Fem/femsolver/elmer/__init__.py
>  lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}/
>  lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}elmertools.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}elmertools.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}sifio.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}sifio.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}solver.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}solver.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}tasks.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}tasks.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}writer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/elmer/${MODPY_PYCACHE}writer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/elmer/elmertools.py
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/__init__.py
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_PYCACHE}/
> @@ -2828,6 +3749,10 @@ lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_PYCACHE}magnetodynamic_writer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_PYCACHE}nonlinear.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_PYCACHE}nonlinear.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_PYCACHE}staticcurrent.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_PYCACHE}staticcurrent.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_PYCACHE}staticcurrent_writer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femsolver/elmer/equations/${MODPY_PYCACHE}staticcurrent_writer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/deformation.py
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/deformation_writer.py
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/elasticity.py
> @@ -2849,9 +3774,9 @@ lib/freecad/Mod/Fem/femsolver/elmer/equations/magnetod
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/magnetodynamic2D_writer.py
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/magnetodynamic_writer.py
>  lib/freecad/Mod/Fem/femsolver/elmer/equations/nonlinear.py
> +lib/freecad/Mod/Fem/femsolver/elmer/equations/staticcurrent.py
> +lib/freecad/Mod/Fem/femsolver/elmer/equations/staticcurrent_writer.py
>  lib/freecad/Mod/Fem/femsolver/elmer/sifio.py
> -lib/freecad/Mod/Fem/femsolver/elmer/solver.py
> -lib/freecad/Mod/Fem/femsolver/elmer/tasks.py
>  lib/freecad/Mod/Fem/femsolver/elmer/writer.py
>  lib/freecad/Mod/Fem/femsolver/equationbase.py
>  lib/freecad/Mod/Fem/femsolver/fenics/
> @@ -2922,8 +3847,10 @@ lib/freecad/Mod/Fem/femtaskpanels/__init__.py
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}/
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}base_femmeshtaskpanel.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> -lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}base_femmeshtaskpanel.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}base_femlogtaskpanel.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}base_femlogtaskpanel.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}base_fempostpanel.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}base_fempostpanel.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}base_femtaskpanel.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}base_femtaskpanel.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_bodyheatsource.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2932,6 +3859,8 @@ lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_centrif.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_currentdensity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_currentdensity.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_electricchargedensity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_electricchargedensity.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_electrostaticpotential.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_electrostaticpotential.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_constraint_flowvelocity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -2970,13 +3899,19 @@ lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_mesh_region.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_result_mechanical.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_result_mechanical.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_solver_calculix.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_solver_calculix.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_solver_ccxtools.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_solver_ccxtools.${MODPY_PYC_MAGIC_TAG}pyc
> -lib/freecad/Mod/Fem/femtaskpanels/base_femmeshtaskpanel.py
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_solver_elmer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femtaskpanels/${MODPY_PYCACHE}task_solver_elmer.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femtaskpanels/base_femlogtaskpanel.py
> +lib/freecad/Mod/Fem/femtaskpanels/base_fempostpanel.py
>  lib/freecad/Mod/Fem/femtaskpanels/base_femtaskpanel.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_constraint_bodyheatsource.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_constraint_centrif.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_constraint_currentdensity.py
> +lib/freecad/Mod/Fem/femtaskpanels/task_constraint_electricchargedensity.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_constraint_electrostaticpotential.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_constraint_flowvelocity.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_constraint_initialflowvelocity.py
> @@ -2996,7 +3931,9 @@ lib/freecad/Mod/Fem/femtaskpanels/task_mesh_group.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_mesh_netgen.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_mesh_region.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_result_mechanical.py
> +lib/freecad/Mod/Fem/femtaskpanels/task_solver_calculix.py
>  lib/freecad/Mod/Fem/femtaskpanels/task_solver_ccxtools.py
> +lib/freecad/Mod/Fem/femtaskpanels/task_solver_elmer.py
>  lib/freecad/Mod/Fem/femtest/
>  lib/freecad/Mod/Fem/femtest/__init__.py
>  lib/freecad/Mod/Fem/femtest/${MODPY_PYCACHE}/
> @@ -3212,6 +4149,8 @@ lib/freecad/Mod/Fem/femtools/${MODPY_PYCACHE}membertoo
>  lib/freecad/Mod/Fem/femtools/${MODPY_PYCACHE}membertools.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtools/${MODPY_PYCACHE}migrate_app.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femtools/${MODPY_PYCACHE}migrate_app.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femtools/${MODPY_PYCACHE}objecttools.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femtools/${MODPY_PYCACHE}objecttools.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtools/${MODPY_PYCACHE}tokrules.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femtools/${MODPY_PYCACHE}tokrules.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femtools/ccxtools.py
> @@ -3222,6 +4161,7 @@ lib/freecad/Mod/Fem/femtools/femutils.py
>  lib/freecad/Mod/Fem/femtools/geomtools.py
>  lib/freecad/Mod/Fem/femtools/membertools.py
>  lib/freecad/Mod/Fem/femtools/migrate_app.py
> +lib/freecad/Mod/Fem/femtools/objecttools.py
>  lib/freecad/Mod/Fem/femtools/tokrules.py
>  lib/freecad/Mod/Fem/femviewprovider/
>  lib/freecad/Mod/Fem/femviewprovider/__init__.py
> @@ -3246,6 +4186,8 @@ lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}vi
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_constraint_centrif.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_constraint_currentdensity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_constraint_currentdensity.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_constraint_electricchargedensity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_constraint_electricchargedensity.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_constraint_electrostaticpotential.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_constraint_electrostaticpotential.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_constraint_flowvelocity.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -3290,8 +4232,12 @@ lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}vi
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_mesh_result.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_result_mechanical.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_result_mechanical.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_solver_calculix.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_solver_calculix.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_solver_ccxtools.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_solver_ccxtools.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_solver_elmer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Fem/femviewprovider/${MODPY_PYCACHE}view_solver_elmer.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Fem/femviewprovider/view_base_femconstraint.py
>  lib/freecad/Mod/Fem/femviewprovider/view_base_femelement.py
>  lib/freecad/Mod/Fem/femviewprovider/view_base_femmaterial.py
> @@ -3301,6 +4247,7 @@ lib/freecad/Mod/Fem/femviewprovider/view_constant_vacu
>  lib/freecad/Mod/Fem/femviewprovider/view_constraint_bodyheatsource.py
>  lib/freecad/Mod/Fem/femviewprovider/view_constraint_centrif.py
>  lib/freecad/Mod/Fem/femviewprovider/view_constraint_currentdensity.py
> +lib/freecad/Mod/Fem/femviewprovider/view_constraint_electricchargedensity.py
>  lib/freecad/Mod/Fem/femviewprovider/view_constraint_electrostaticpotential.py
>  lib/freecad/Mod/Fem/femviewprovider/view_constraint_flowvelocity.py
>  lib/freecad/Mod/Fem/femviewprovider/view_constraint_initialflowvelocity.py
> @@ -3323,7 +4270,9 @@ lib/freecad/Mod/Fem/femviewprovider/view_mesh_netgen.p
>  lib/freecad/Mod/Fem/femviewprovider/view_mesh_region.py
>  lib/freecad/Mod/Fem/femviewprovider/view_mesh_result.py
>  lib/freecad/Mod/Fem/femviewprovider/view_result_mechanical.py
> +lib/freecad/Mod/Fem/femviewprovider/view_solver_calculix.py
>  lib/freecad/Mod/Fem/femviewprovider/view_solver_ccxtools.py
> +lib/freecad/Mod/Fem/femviewprovider/view_solver_elmer.py
>  lib/freecad/Mod/Help/
>  lib/freecad/Mod/Help/Help.py
>  lib/freecad/Mod/Help/Help_rc.py
> @@ -3405,6 +4354,14 @@ lib/freecad/Mod/Inspection/${MODPY_PYCACHE}InitGui.${M
>  lib/freecad/Mod/Material/
>  lib/freecad/Mod/Material/Init.py
>  lib/freecad/Mod/Material/InitGui.py
> +lib/freecad/Mod/Material/MaterialAPI/
> +lib/freecad/Mod/Material/MaterialAPI/MaterialManagerExternal.py
> +lib/freecad/Mod/Material/MaterialAPI/__init__.py
> +lib/freecad/Mod/Material/MaterialAPI/${MODPY_PYCACHE}/
> +lib/freecad/Mod/Material/MaterialAPI/${MODPY_PYCACHE}MaterialManagerExternal.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Material/MaterialAPI/${MODPY_PYCACHE}MaterialManagerExternal.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Material/MaterialAPI/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Material/MaterialAPI/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Material/MaterialEditor.py
>  lib/freecad/Mod/Material/Resources/
>  lib/freecad/Mod/Material/Resources/ui/
> @@ -3616,6 +4573,7 @@ lib/freecad/Mod/Part/BOPTools/JoinFeatures.py
>  lib/freecad/Mod/Part/BOPTools/ShapeMerge.py
>  lib/freecad/Mod/Part/BOPTools/SplitAPI.py
>  lib/freecad/Mod/Part/BOPTools/SplitFeatures.py
> +lib/freecad/Mod/Part/BOPTools/ToleranceFeatures.py
>  lib/freecad/Mod/Part/BOPTools/Utils.py
>  lib/freecad/Mod/Part/BOPTools/__init__.py
>  lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}/
> @@ -3633,6 +4591,8 @@ lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}SplitAPI
>  lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}SplitAPI.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}SplitFeatures.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}SplitFeatures.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}ToleranceFeatures.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}ToleranceFeatures.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}Utils.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}Utils.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Part/BOPTools/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -3702,6 +4662,8 @@ lib/freecad/Mod/Part/parttests/BRep_tests.py
>  lib/freecad/Mod/Part/parttests/ColorPerFaceTest.py
>  lib/freecad/Mod/Part/parttests/ColorTransparencyTest.py
>  lib/freecad/Mod/Part/parttests/Geom2d_tests.py
> +lib/freecad/Mod/Part/parttests/TestPartMirror.py
> +lib/freecad/Mod/Part/parttests/TestTangentMode3-0.21.FCStd
>  lib/freecad/Mod/Part/parttests/TopoShapeListTest.py
>  lib/freecad/Mod/Part/parttests/TopoShapeTest.py
>  lib/freecad/Mod/Part/parttests/__init__.py
> @@ -3714,6 +4676,8 @@ lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}ColorTr
>  lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}ColorTransparencyTest.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}Geom2d_tests.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}Geom2d_tests.${MODPY_PYC_MAGIC_TAG}pyc
> +lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}TestPartMirror.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}TestPartMirror.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}TopoShapeListTest.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}TopoShapeListTest.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Part/parttests/${MODPY_PYCACHE}TopoShapeTest.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -3735,6 +4699,7 @@ lib/freecad/Mod/PartDesign/PartDesignTests/
>  lib/freecad/Mod/PartDesign/PartDesignTests/Fixtures/
>  lib/freecad/Mod/PartDesign/PartDesignTests/Fixtures/InternalInvoluteGear_v0-20.FCStd
>  lib/freecad/Mod/PartDesign/PartDesignTests/Fixtures/InvoluteGear_v0-20.FCStd
> +lib/freecad/Mod/PartDesign/PartDesignTests/TestActiveObject.py
>  lib/freecad/Mod/PartDesign/PartDesignTests/TestBoolean.py
>  lib/freecad/Mod/PartDesign/PartDesignTests/TestChamfer.py
>  lib/freecad/Mod/PartDesign/PartDesignTests/TestDatum.py
> @@ -3760,6 +4725,8 @@ lib/freecad/Mod/PartDesign/PartDesignTests/TestThickne
>  lib/freecad/Mod/PartDesign/PartDesignTests/TestTopologicalNamingProblem.py
>  lib/freecad/Mod/PartDesign/PartDesignTests/__init__.py
>  lib/freecad/Mod/PartDesign/PartDesignTests/${MODPY_PYCACHE}/
> +lib/freecad/Mod/PartDesign/PartDesignTests/${MODPY_PYCACHE}TestActiveObject.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/PartDesign/PartDesignTests/${MODPY_PYCACHE}TestActiveObject.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/PartDesign/PartDesignTests/${MODPY_PYCACHE}TestBoolean.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/PartDesign/PartDesignTests/${MODPY_PYCACHE}TestBoolean.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/PartDesign/PartDesignTests/${MODPY_PYCACHE}TestChamfer.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -4021,12 +4988,15 @@ lib/freecad/Mod/Sketcher/ProfileLib/${MODPY_PYCACHE}__
>  lib/freecad/Mod/Sketcher/Profiles.py
>  lib/freecad/Mod/Sketcher/SketcherExample.py
>  lib/freecad/Mod/Sketcher/SketcherTests/
> +lib/freecad/Mod/Sketcher/SketcherTests/TestPlacementUpdate.py
>  lib/freecad/Mod/Sketcher/SketcherTests/TestSketchExpression.py
>  lib/freecad/Mod/Sketcher/SketcherTests/TestSketchFillet.py
>  lib/freecad/Mod/Sketcher/SketcherTests/TestSketchValidateCoincidents.py
>  lib/freecad/Mod/Sketcher/SketcherTests/TestSketcherSolver.py
>  lib/freecad/Mod/Sketcher/SketcherTests/__init__.py
>  lib/freecad/Mod/Sketcher/SketcherTests/${MODPY_PYCACHE}/
> +lib/freecad/Mod/Sketcher/SketcherTests/${MODPY_PYCACHE}TestPlacementUpdate.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> +lib/freecad/Mod/Sketcher/SketcherTests/${MODPY_PYCACHE}TestPlacementUpdate.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Sketcher/SketcherTests/${MODPY_PYCACHE}TestSketchExpression.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
>  lib/freecad/Mod/Sketcher/SketcherTests/${MODPY_PYCACHE}TestSketchExpression.${MODPY_PYC_MAGIC_TAG}pyc
>  lib/freecad/Mod/Sketcher/SketcherTests/${MODPY_PYCACHE}TestSketchFillet.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
> @@ -4219,6 +5189,7 @@ lib/freecad/Mod/Test/Metadata.py
>  lib/freecad/Mod/Test/StringHasher.py
>  lib/freecad/Mod/Test/TestApp.py
>  lib/freecad/Mod/Test/TestData/
> +lib/freecad/Mod/Test/TestData/DXFSample.dxf
>  lib/freecad/Mod/Test/TestData/bad_root_node.xml
>  lib/freecad/Mod/Test/TestData/bad_version.xml
>  lib/freecad/Mod/Test/TestData/bad_xml.xml
> @@ -4300,320 +5271,6 @@ lib/freecad/bin/
>  @bin lib/freecad/bin/FreeCADCmd
>  lib/freecad/bin/freecad-thumbnailer
>  lib/freecad/include/
> -lib/freecad/include/E57Format/
> -lib/freecad/include/E57Format/E57Export.h
> -lib/freecad/include/OndselSolver/
> -lib/freecad/include/OndselSolver/ASMTAllowRotation.h
> -lib/freecad/include/OndselSolver/ASMTAngleJoint.h
> -lib/freecad/include/OndselSolver/ASMTAnimationParameters.h
> -lib/freecad/include/OndselSolver/ASMTAssembly.h
> -lib/freecad/include/OndselSolver/ASMTAtPointJoint.h
> -lib/freecad/include/OndselSolver/ASMTCompoundJoint.h
> -lib/freecad/include/OndselSolver/ASMTConeConeContact.h
> -lib/freecad/include/OndselSolver/ASMTConstantGravity.h
> -lib/freecad/include/OndselSolver/ASMTConstantVelocityJoint.h
> -lib/freecad/include/OndselSolver/ASMTConstraintSet.h
> -lib/freecad/include/OndselSolver/ASMTContact.h
> -lib/freecad/include/OndselSolver/ASMTCylConeContact.h
> -lib/freecad/include/OndselSolver/ASMTCylCylContact.h
> -lib/freecad/include/OndselSolver/ASMTCylSphJoint.h
> -lib/freecad/include/OndselSolver/ASMTCylindricalJoint.h
> -lib/freecad/include/OndselSolver/ASMTExtrusion.h
> -lib/freecad/include/OndselSolver/ASMTFixedJoint.h
> -lib/freecad/include/OndselSolver/ASMTForceTorque.h
> -lib/freecad/include/OndselSolver/ASMTGearJoint.h
> -lib/freecad/include/OndselSolver/ASMTGeneralMotion.h
> -lib/freecad/include/OndselSolver/ASMTInLineJoint.h
> -lib/freecad/include/OndselSolver/ASMTInPlaneJoint.h
> -lib/freecad/include/OndselSolver/ASMTItem.h
> -lib/freecad/include/OndselSolver/ASMTItemIJ.h
> -lib/freecad/include/OndselSolver/ASMTJoint.h
> -lib/freecad/include/OndselSolver/ASMTKinematicIJ.h
> -lib/freecad/include/OndselSolver/ASMTLimit.h
> -lib/freecad/include/OndselSolver/ASMTLineInPlaneJoint.h
> -lib/freecad/include/OndselSolver/ASMTMarker.h
> -lib/freecad/include/OndselSolver/ASMTMotion.h
> -lib/freecad/include/OndselSolver/ASMTNoRotationJoint.h
> -lib/freecad/include/OndselSolver/ASMTParallelAxesJoint.h
> -lib/freecad/include/OndselSolver/ASMTPart.h
> -lib/freecad/include/OndselSolver/ASMTPerpendicularJoint.h
> -lib/freecad/include/OndselSolver/ASMTPlanarJoint.h
> -lib/freecad/include/OndselSolver/ASMTPointInLineJoint.h
> -lib/freecad/include/OndselSolver/ASMTPointInPlaneJoint.h
> -lib/freecad/include/OndselSolver/ASMTPrincipalMassMarker.h
> -lib/freecad/include/OndselSolver/ASMTRackPinionJoint.h
> -lib/freecad/include/OndselSolver/ASMTRefCurve.h
> -lib/freecad/include/OndselSolver/ASMTRefItem.h
> -lib/freecad/include/OndselSolver/ASMTRefPoint.h
> -lib/freecad/include/OndselSolver/ASMTRefSurface.h
> -lib/freecad/include/OndselSolver/ASMTRevCylJoint.h
> -lib/freecad/include/OndselSolver/ASMTRevRevJoint.h
> -lib/freecad/include/OndselSolver/ASMTRevoluteJoint.h
> -lib/freecad/include/OndselSolver/ASMTRotationLimit.h
> -lib/freecad/include/OndselSolver/ASMTRotationalMotion.h
> -lib/freecad/include/OndselSolver/ASMTScrewJoint.h
> -lib/freecad/include/OndselSolver/ASMTSimulationParameters.h
> -lib/freecad/include/OndselSolver/ASMTSpatialContainer.h
> -lib/freecad/include/OndselSolver/ASMTSpatialItem.h
> -lib/freecad/include/OndselSolver/ASMTSphSphJoint.h
> -lib/freecad/include/OndselSolver/ASMTSphericalJoint.h
> -lib/freecad/include/OndselSolver/ASMTTime.h
> -lib/freecad/include/OndselSolver/ASMTTranslationLimit.h
> -lib/freecad/include/OndselSolver/ASMTTranslationalJoint.h
> -lib/freecad/include/OndselSolver/ASMTTranslationalMotion.h
> -lib/freecad/include/OndselSolver/ASMTUniversalJoint.h
> -lib/freecad/include/OndselSolver/Abs.h
> -lib/freecad/include/OndselSolver/AbsConstraint.h
> -lib/freecad/include/OndselSolver/AccICKineNewtonRaphson.h
> -lib/freecad/include/OndselSolver/AccICNewtonRaphson.h
> -lib/freecad/include/OndselSolver/AccKineNewtonRaphson.h
> -lib/freecad/include/OndselSolver/AccNewtonRaphson.h
> -lib/freecad/include/OndselSolver/AllowZRotation.h
> -lib/freecad/include/OndselSolver/AllowZRotationConstraintIqctJqc.h
> -lib/freecad/include/OndselSolver/AngleJoint.h
> -lib/freecad/include/OndselSolver/AngleZConstraintIJ.h
> -lib/freecad/include/OndselSolver/AngleZConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/AngleZConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/AngleZIecJec.h
> -lib/freecad/include/OndselSolver/AngleZIeqcJec.h
> -lib/freecad/include/OndselSolver/AngleZIeqcJeqc.h
> -lib/freecad/include/OndselSolver/AnyGeneralSpline.h
> -lib/freecad/include/OndselSolver/AnyPosICNewtonRaphson.h
> -lib/freecad/include/OndselSolver/ArcSine.h
> -lib/freecad/include/OndselSolver/ArcTan.h
> -lib/freecad/include/OndselSolver/ArcTan2.h
> -lib/freecad/include/OndselSolver/Arguments.h
> -lib/freecad/include/OndselSolver/Array.h
> -lib/freecad/include/OndselSolver/AtPointConstraintIJ.h
> -lib/freecad/include/OndselSolver/AtPointConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/AtPointConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/AtPointConstraintIqctJqc.h
> -lib/freecad/include/OndselSolver/AtPointJoint.h
> -lib/freecad/include/OndselSolver/BasicIntegrator.h
> -lib/freecad/include/OndselSolver/BasicQuasiIntegrator.h
> -lib/freecad/include/OndselSolver/BasicUserFunction.h
> -lib/freecad/include/OndselSolver/CADSystem.h
> -lib/freecad/include/OndselSolver/CREATE.h
> -lib/freecad/include/OndselSolver/CartesianFrame.h
> -lib/freecad/include/OndselSolver/CompoundJoint.h
> -lib/freecad/include/OndselSolver/ConstVelConstraintIJ.h
> -lib/freecad/include/OndselSolver/ConstVelConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/ConstVelConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/Constant.h
> -lib/freecad/include/OndselSolver/ConstantGravity.h
> -lib/freecad/include/OndselSolver/ConstantVelocityJoint.h
> -lib/freecad/include/OndselSolver/Constraint.h
> -lib/freecad/include/OndselSolver/ConstraintIJ.h
> -lib/freecad/include/OndselSolver/ConstraintSet.h
> -lib/freecad/include/OndselSolver/Cosine.h
> -lib/freecad/include/OndselSolver/CylSphJoint.h
> -lib/freecad/include/OndselSolver/CylindricalJoint.h
> -lib/freecad/include/OndselSolver/DiagonalMatrix.h
> -lib/freecad/include/OndselSolver/DifferenceOperator.h
> -lib/freecad/include/OndselSolver/DifferentiatedGeneralSpline.h
> -lib/freecad/include/OndselSolver/DirectionCosineConstraintIJ.h
> -lib/freecad/include/OndselSolver/DirectionCosineConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/DirectionCosineConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/DirectionCosineConstraintIqctJqc.h
> -lib/freecad/include/OndselSolver/DirectionCosineIecJec.h
> -lib/freecad/include/OndselSolver/DirectionCosineIeqcJec.h
> -lib/freecad/include/OndselSolver/DirectionCosineIeqcJeqc.h
> -lib/freecad/include/OndselSolver/DirectionCosineIeqctJeqc.h
> -lib/freecad/include/OndselSolver/DiscontinuityError.h
> -lib/freecad/include/OndselSolver/DispCompIecJecIe.h
> -lib/freecad/include/OndselSolver/DispCompIecJecKec.h
> -lib/freecad/include/OndselSolver/DispCompIecJecKeqc.h
> -lib/freecad/include/OndselSolver/DispCompIecJecO.h
> -lib/freecad/include/OndselSolver/DispCompIeqcJecIe.h
> -lib/freecad/include/OndselSolver/DispCompIeqcJecKeqc.h
> -lib/freecad/include/OndselSolver/DispCompIeqcJecO.h
> -lib/freecad/include/OndselSolver/DispCompIeqcJeqcIe.h
> -lib/freecad/include/OndselSolver/DispCompIeqcJeqcKeqc.h
> -lib/freecad/include/OndselSolver/DispCompIeqcJeqcKeqct.h
> -lib/freecad/include/OndselSolver/DispCompIeqcJeqcO.h
> -lib/freecad/include/OndselSolver/DispCompIeqctJeqcIe.h
> -lib/freecad/include/OndselSolver/DispCompIeqctJeqcKeqct.h
> -lib/freecad/include/OndselSolver/DispCompIeqctJeqcO.h
> -lib/freecad/include/OndselSolver/DistIecJec.h
> -lib/freecad/include/OndselSolver/DistIeqcJec.h
> -lib/freecad/include/OndselSolver/DistIeqcJeqc.h
> -lib/freecad/include/OndselSolver/DistIeqctJeqc.h
> -lib/freecad/include/OndselSolver/DistanceConstraintIJ.h
> -lib/freecad/include/OndselSolver/DistanceConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/DistanceConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/DistanceConstraintIqctJqc.h
> -lib/freecad/include/OndselSolver/DistancexyConstraintIJ.h
> -lib/freecad/include/OndselSolver/DistancexyConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/DistancexyConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/DistxyIecJec.h
> -lib/freecad/include/OndselSolver/DistxyIeqcJec.h
> -lib/freecad/include/OndselSolver/DistxyIeqcJeqc.h
> -lib/freecad/include/OndselSolver/DistxyIeqctJeqc.h
> -lib/freecad/include/OndselSolver/EigenDecomposition.h
> -lib/freecad/include/OndselSolver/EndFramec.h
> -lib/freecad/include/OndselSolver/EndFrameqc.h
> -lib/freecad/include/OndselSolver/EndFrameqct.h
> -lib/freecad/include/OndselSolver/EndFrameqct2.h
> -lib/freecad/include/OndselSolver/EulerAngles.h
> -lib/freecad/include/OndselSolver/EulerAnglesDDot.h
> -lib/freecad/include/OndselSolver/EulerAnglesDot.h
> -lib/freecad/include/OndselSolver/EulerAngleszxz.h
> -lib/freecad/include/OndselSolver/EulerAngleszxzDDot.h
> -lib/freecad/include/OndselSolver/EulerAngleszxzDot.h
> -lib/freecad/include/OndselSolver/EulerArray.h
> -lib/freecad/include/OndselSolver/EulerConstraint.h
> -lib/freecad/include/OndselSolver/EulerParameters.h
> -lib/freecad/include/OndselSolver/EulerParametersDDot.h
> -lib/freecad/include/OndselSolver/EulerParametersDot.h
> -lib/freecad/include/OndselSolver/Exponential.h
> -lib/freecad/include/OndselSolver/ExpressionX.h
> -lib/freecad/include/OndselSolver/ExternalSystem.h
> -lib/freecad/include/OndselSolver/FixedJoint.h
> -lib/freecad/include/OndselSolver/ForceTorqueData.h
> -lib/freecad/include/OndselSolver/ForceTorqueItem.h
> -lib/freecad/include/OndselSolver/FullColumn.h
> -lib/freecad/include/OndselSolver/FullMatrix.h
> -lib/freecad/include/OndselSolver/FullMotion.h
> -lib/freecad/include/OndselSolver/FullRow.h
> -lib/freecad/include/OndselSolver/FullVector.h
> -lib/freecad/include/OndselSolver/Function.h
> -lib/freecad/include/OndselSolver/FunctionFromData.h
> -lib/freecad/include/OndselSolver/FunctionWithManyArgs.h
> -lib/freecad/include/OndselSolver/FunctionX.h
> -lib/freecad/include/OndselSolver/FunctionXY.h
> -lib/freecad/include/OndselSolver/FunctionXcParameter.h
> -lib/freecad/include/OndselSolver/GEFullMat.h
> -lib/freecad/include/OndselSolver/GEFullMatFullPv.h
> -lib/freecad/include/OndselSolver/GEFullMatParPv.h
> -lib/freecad/include/OndselSolver/GESpMat.h
> -lib/freecad/include/OndselSolver/GESpMatFullPv.h
> -lib/freecad/include/OndselSolver/GESpMatFullPvPosIC.h
> -lib/freecad/include/OndselSolver/GESpMatParPv.h
> -lib/freecad/include/OndselSolver/GESpMatParPvMarko.h
> -lib/freecad/include/OndselSolver/GESpMatParPvMarkoFast.h
> -lib/freecad/include/OndselSolver/GESpMatParPvPrecise.h
> -lib/freecad/include/OndselSolver/GearConstraintIJ.h
> -lib/freecad/include/OndselSolver/GearConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/GearConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/GearJoint.h
> -lib/freecad/include/OndselSolver/GeneralSpline.h
> -lib/freecad/include/OndselSolver/ICKineIntegrator.h
> -lib/freecad/include/OndselSolver/InLineJoint.h
> -lib/freecad/include/OndselSolver/InPlaneJoint.h
> -lib/freecad/include/OndselSolver/IndependentVariable.h
> -lib/freecad/include/OndselSolver/Integrator.h
> -lib/freecad/include/OndselSolver/IntegratorInterface.h
> -lib/freecad/include/OndselSolver/Item.h
> -lib/freecad/include/OndselSolver/ItemIJ.h
> -lib/freecad/include/OndselSolver/Joint.h
> -lib/freecad/include/OndselSolver/KineIntegrator.h
> -lib/freecad/include/OndselSolver/KinematicIeJe.h
> -lib/freecad/include/OndselSolver/LDUFullMat.h
> -lib/freecad/include/OndselSolver/LDUFullMatParPv.h
> -lib/freecad/include/OndselSolver/LDUSpMat.h
> -lib/freecad/include/OndselSolver/LDUSpMatParPv.h
> -lib/freecad/include/OndselSolver/LDUSpMatParPvMarko.h
> -lib/freecad/include/OndselSolver/LDUSpMatParPvPrecise.h
> -lib/freecad/include/OndselSolver/LimitIJ.h
> -lib/freecad/include/OndselSolver/LineInPlaneJoint.h
> -lib/freecad/include/OndselSolver/LinearMultiStepMethod.h
> -lib/freecad/include/OndselSolver/Ln.h
> -lib/freecad/include/OndselSolver/Log10.h
> -lib/freecad/include/OndselSolver/LogN.h
> -lib/freecad/include/OndselSolver/MarkerFrame.h
> -lib/freecad/include/OndselSolver/MatrixDecomposition.h
> -lib/freecad/include/OndselSolver/MatrixGaussElimination.h
> -lib/freecad/include/OndselSolver/MatrixLDU.h
> -lib/freecad/include/OndselSolver/MatrixSolver.h
> -lib/freecad/include/OndselSolver/MaximumIterationError.h
> -lib/freecad/include/OndselSolver/MbDMath.h
> -lib/freecad/include/OndselSolver/MomentOfInertiaSolver.h
> -lib/freecad/include/OndselSolver/Negative.h
> -lib/freecad/include/OndselSolver/NewtonRaphson.h
> -lib/freecad/include/OndselSolver/NewtonRaphsonError.h
> -lib/freecad/include/OndselSolver/NoRotationJoint.h
> -lib/freecad/include/OndselSolver/NotKinematicError.h
> -lib/freecad/include/OndselSolver/Numeric.h
> -lib/freecad/include/OndselSolver/OrbitAngleZIecJec.h
> -lib/freecad/include/OndselSolver/OrbitAngleZIeqcJec.h
> -lib/freecad/include/OndselSolver/OrbitAngleZIeqcJeqc.h
> -lib/freecad/include/OndselSolver/Orientation.h
> -lib/freecad/include/OndselSolver/ParallelAxesJoint.h
> -lib/freecad/include/OndselSolver/Part.h
> -lib/freecad/include/OndselSolver/PartFrame.h
> -lib/freecad/include/OndselSolver/PerpendicularJoint.h
> -lib/freecad/include/OndselSolver/PlanarJoint.h
> -lib/freecad/include/OndselSolver/PointInLineJoint.h
> -lib/freecad/include/OndselSolver/PointInPlaneJoint.h
> -lib/freecad/include/OndselSolver/PosICDragLimitNewtonRaphson.h
> -lib/freecad/include/OndselSolver/PosICDragNewtonRaphson.h
> -lib/freecad/include/OndselSolver/PosICKineNewtonRaphson.h
> -lib/freecad/include/OndselSolver/PosICNewtonRaphson.h
> -lib/freecad/include/OndselSolver/PosKineNewtonRaphson.h
> -lib/freecad/include/OndselSolver/PosNewtonRaphson.h
> -lib/freecad/include/OndselSolver/PosVelAccData.h
> -lib/freecad/include/OndselSolver/Power.h
> -lib/freecad/include/OndselSolver/PrescribedMotion.h
> -lib/freecad/include/OndselSolver/Product.h
> -lib/freecad/include/OndselSolver/QuasiIntegrator.h
> -lib/freecad/include/OndselSolver/RackPinConstraintIJ.h
> -lib/freecad/include/OndselSolver/RackPinConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/RackPinConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/RackPinJoint.h
> -lib/freecad/include/OndselSolver/Reciprocal.h
> -lib/freecad/include/OndselSolver/RedundantConstraint.h
> -lib/freecad/include/OndselSolver/RevCylJoint.h
> -lib/freecad/include/OndselSolver/RevRevJoint.h
> -lib/freecad/include/OndselSolver/RevoluteJoint.h
> -lib/freecad/include/OndselSolver/RotationLimitIJ.h
> -lib/freecad/include/OndselSolver/RowTypeMatrix.h
> -lib/freecad/include/OndselSolver/ScalarNewtonRaphson.h
> -lib/freecad/include/OndselSolver/ScrewConstraintIJ.h
> -lib/freecad/include/OndselSolver/ScrewConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/ScrewConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/ScrewJoint.h
> -lib/freecad/include/OndselSolver/SimulationStoppingError.h
> -lib/freecad/include/OndselSolver/Sine.h
> -lib/freecad/include/OndselSolver/SingularMatrixError.h
> -lib/freecad/include/OndselSolver/Solver.h
> -lib/freecad/include/OndselSolver/SparseColumn.h
> -lib/freecad/include/OndselSolver/SparseMatrix.h
> -lib/freecad/include/OndselSolver/SparseRow.h
> -lib/freecad/include/OndselSolver/SparseVector.h
> -lib/freecad/include/OndselSolver/SphSphJoint.h
> -lib/freecad/include/OndselSolver/SphericalJoint.h
> -lib/freecad/include/OndselSolver/StableBackwardDifference.h
> -lib/freecad/include/OndselSolver/StateData.h
> -lib/freecad/include/OndselSolver/Sum.h
> -lib/freecad/include/OndselSolver/SymTime.h
> -lib/freecad/include/OndselSolver/Symbolic.h
> -lib/freecad/include/OndselSolver/SymbolicParser.h
> -lib/freecad/include/OndselSolver/SyntaxError.h
> -lib/freecad/include/OndselSolver/System.h
> -lib/freecad/include/OndselSolver/SystemNewtonRaphson.h
> -lib/freecad/include/OndselSolver/SystemSolver.h
> -lib/freecad/include/OndselSolver/TooManyTriesError.h
> -lib/freecad/include/OndselSolver/TooSmallStepSizeError.h
> -lib/freecad/include/OndselSolver/Translation.h
> -lib/freecad/include/OndselSolver/TranslationConstraintIJ.h
> -lib/freecad/include/OndselSolver/TranslationConstraintIqcJc.h
> -lib/freecad/include/OndselSolver/TranslationConstraintIqcJqc.h
> -lib/freecad/include/OndselSolver/TranslationConstraintIqctJqc.h
> -lib/freecad/include/OndselSolver/TranslationLimitIJ.h
> -lib/freecad/include/OndselSolver/TranslationalJoint.h
> -lib/freecad/include/OndselSolver/Units.h
> -lib/freecad/include/OndselSolver/UniversalJoint.h
> -lib/freecad/include/OndselSolver/UserFunction.h
> -lib/freecad/include/OndselSolver/Variable.h
> -lib/freecad/include/OndselSolver/VectorNewtonRaphson.h
> -lib/freecad/include/OndselSolver/VelICKineSolver.h
> -lib/freecad/include/OndselSolver/VelICSolver.h
> -lib/freecad/include/OndselSolver/VelKineSolver.h
> -lib/freecad/include/OndselSolver/VelSolver.h
> -lib/freecad/include/OndselSolver/ZRotation.h
> -lib/freecad/include/OndselSolver/ZTranslation.h
> -lib/freecad/include/OndselSolver/enum.h
> -lib/freecad/include/OndselSolver/resource.h
>  lib/freecad/lib/
>  @so lib/freecad/lib/AssemblyApp.so
>  @so lib/freecad/lib/AssemblyGui.so
> @@ -4661,12 +5318,13 @@ lib/freecad/lib/
>  @so lib/freecad/lib/Web.so
>  @so lib/freecad/lib/_PartDesign.so
>  @so lib/freecad/lib/area.so
> +lib/freecad/lib/cmake/
>  @so lib/freecad/lib/flatmesh.so
>  @so lib/freecad/lib/libDriver.so
>  @so lib/freecad/lib/libDriverDAT.so
>  @so lib/freecad/lib/libDriverSTL.so
>  @so lib/freecad/lib/libDriverUNV.so
> -@so lib/freecad/lib/libE57Format.so
> +@lib lib/freecad/lib/libE57Format.so.${LIBE57Format_VERSION}
>  @so lib/freecad/lib/libFreeCADApp.so
>  @so lib/freecad/lib/libFreeCADBase.so
>  @so lib/freecad/lib/libFreeCADGui.so
> @@ -4745,131 +5403,256 @@ share/freecad/Gui/PreferencePacks/FreeCAD Light/
>  share/freecad/Gui/PreferencePacks/FreeCAD Light/FreeCAD Light.cfg
>  share/freecad/Gui/PreferencePacks/package.xml
>  share/freecad/Gui/Stylesheets/
> -share/freecad/Gui/Stylesheets/FreeCAD Dark.qss
> -share/freecad/Gui/Stylesheets/FreeCAD Light.qss
> +share/freecad/Gui/Stylesheets/FreeCAD.qss
> +share/freecad/Gui/Stylesheets/defaults.qss
>  share/freecad/Gui/Stylesheets/images_classic/
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-black.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-white.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-leftright-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-black.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-white.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-double-updown-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-down-black.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-down-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-down-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-down-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-down-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-down-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-down-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-down-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-down-white.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-down-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-left-black.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-left-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-left-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-left-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-left-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-left-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-left-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-left-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-left-white.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-left-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-black.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-white.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-leftdown-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-right-black.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-right-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-right-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-right-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-right-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-right-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-right-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-right-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-right-white.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-right-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-black.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-white.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-rightdown-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-up-black.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-up-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-up-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-up-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-up-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-up-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-up-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-up-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/arrow-up-white.png
> +share/freecad/Gui/Stylesheets/images_classic/arrow-up-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/autohide-black.png
> +share/freecad/Gui/Stylesheets/images_classic/autohide-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/autohide-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/autohide-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/autohide-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/autohide-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/autohide-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/autohide-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/autohide-white.png
> +share/freecad/Gui/Stylesheets/images_classic/autohide-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/background_freecad.png
> +share/freecad/Gui/Stylesheets/images_classic/background_freecad.svg
>  share/freecad/Gui/Stylesheets/images_classic/background_freecad_dark.png
> +share/freecad/Gui/Stylesheets/images_classic/background_freecad_dark.svg
>  share/freecad/Gui/Stylesheets/images_classic/background_freecad_light.png
> +share/freecad/Gui/Stylesheets/images_classic/background_freecad_light.svg
>  share/freecad/Gui/Stylesheets/images_classic/check-mark-black.png
> +share/freecad/Gui/Stylesheets/images_classic/check-mark-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/check-mark-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/check-mark-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/check-mark-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/check-mark-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/check-mark-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/check-mark-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/check-mark-white.png
> +share/freecad/Gui/Stylesheets/images_classic/check-mark-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-black.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-white.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-checked-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-black.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-white.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-empty-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-black.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-white.png
> +share/freecad/Gui/Stylesheets/images_classic/checkbox-indeterminate-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-black.png
> +share/freecad/Gui/Stylesheets/images_classic/close-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/close-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-darkerred.png
> +share/freecad/Gui/Stylesheets/images_classic/close-darkerred.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/close-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-darkred.png
> +share/freecad/Gui/Stylesheets/images_classic/close-darkred.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/close-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-lightred.png
> +share/freecad/Gui/Stylesheets/images_classic/close-lightred.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-red.png
> +share/freecad/Gui/Stylesheets/images_classic/close-red.svg
>  share/freecad/Gui/Stylesheets/images_classic/close-white.png
> +share/freecad/Gui/Stylesheets/images_classic/close-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/edithide-black.png
> +share/freecad/Gui/Stylesheets/images_classic/edithide-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/edithide-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/edithide-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/edithide-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/edithide-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/edithide-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/edithide-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/edithide-white.png
> +share/freecad/Gui/Stylesheets/images_classic/edithide-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/editshow-black.png
> +share/freecad/Gui/Stylesheets/images_classic/editshow-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/editshow-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/editshow-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/editshow-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/editshow-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/editshow-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/editshow-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/editshow-white.png
> +share/freecad/Gui/Stylesheets/images_classic/editshow-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/float-black.png
> +share/freecad/Gui/Stylesheets/images_classic/float-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/float-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/float-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/float-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/float-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/float-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/float-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/float-white.png
> +share/freecad/Gui/Stylesheets/images_classic/float-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-black.png
> +share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-white.png
> +share/freecad/Gui/Stylesheets/images_classic/hmovetoolbar-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-black.png
> +share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-white.png
> +share/freecad/Gui/Stylesheets/images_classic/hsepartoolbar-white.svg
> +share/freecad/Gui/Stylesheets/images_classic/icons classic.svg
>  share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-black.png
> +share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-white.png
> +share/freecad/Gui/Stylesheets/images_classic/indeterminate-mark-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/mode-black.png
> +share/freecad/Gui/Stylesheets/images_classic/mode-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/mode-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/mode-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/mode-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/mode-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/mode-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/mode-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/mode-white.png
> +share/freecad/Gui/Stylesheets/images_classic/mode-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/more-black-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/more-black-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/more-black.png
> +share/freecad/Gui/Stylesheets/images_classic/more-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/more-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/more-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/more-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/more-darkgray.svg
> +share/freecad/Gui/Stylesheets/images_classic/more-hack.png
> +share/freecad/Gui/Stylesheets/images_classic/more-hack.svg
>  share/freecad/Gui/Stylesheets/images_classic/more-white.png
> +share/freecad/Gui/Stylesheets/images_classic/more-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/overlay-black.png
> +share/freecad/Gui/Stylesheets/images_classic/overlay-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/overlay-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/overlay-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/overlay-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/overlay-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/overlay-white.png
> +share/freecad/Gui/Stylesheets/images_classic/overlay-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/overlay_lighter.png
> +share/freecad/Gui/Stylesheets/images_classic/overlay_lighter.svg
>  share/freecad/Gui/Stylesheets/images_classic/qsint_header_fold_black.png
>  share/freecad/Gui/Stylesheets/images_classic/qsint_header_fold_blue-blue.png
>  share/freecad/Gui/Stylesheets/images_classic/qsint_header_fold_blue-dark.png
> @@ -4891,56 +5674,120 @@ share/freecad/Gui/Stylesheets/images_classic/qsint_hea
>  share/freecad/Gui/Stylesheets/images_classic/qsint_header_unfoldover_blue-dark.png
>  share/freecad/Gui/Stylesheets/images_classic/qsint_header_unfoldover_blue-light.png
>  share/freecad/Gui/Stylesheets/images_classic/radio-checked-black.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-checked-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-checked-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-checked-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-checked-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-checked-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-checked-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-checked-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-checked-white.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-checked-white.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-checkedmark-black.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-checkedmark-blue.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-checkedmark-darkgray.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-checkedmark-lightgray.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-checkedmark-white.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-mark-black.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-mark-black.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-mark-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-mark-blue.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-mark-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-mark-lightgray.svg
> +share/freecad/Gui/Stylesheets/images_classic/radio-mark-white.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-mark-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-black.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-white.png
> +share/freecad/Gui/Stylesheets/images_classic/radio-unchecked-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/sizegrip-black.png
> +share/freecad/Gui/Stylesheets/images_classic/sizegrip-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/sizegrip-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/sizegrip-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/sizegrip-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/sizegrip-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/sizegrip-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/sizegrip-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/sizegrip-white.png
> +share/freecad/Gui/Stylesheets/images_classic/sizegrip-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-black.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-white.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_horizontal-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-black.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-white.png
> +share/freecad/Gui/Stylesheets/images_classic/splitter_vertical-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/taskshow-black.png
> +share/freecad/Gui/Stylesheets/images_classic/taskshow-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/taskshow-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/taskshow-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/taskshow-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/taskshow-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/taskshow-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/taskshow-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/taskshow-white.png
> +share/freecad/Gui/Stylesheets/images_classic/taskshow-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/transparent-black.png
> +share/freecad/Gui/Stylesheets/images_classic/transparent-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/transparent-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/transparent-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/transparent-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/transparent-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/transparent-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/transparent-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/transparent-white.png
> +share/freecad/Gui/Stylesheets/images_classic/transparent-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/transparent.png
> +share/freecad/Gui/Stylesheets/images_classic/transparent.svg
>  share/freecad/Gui/Stylesheets/images_classic/undock-black-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/undock-black-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/undock-black.png
> +share/freecad/Gui/Stylesheets/images_classic/undock-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/undock-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/undock-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/undock-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/undock-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/undock-white.png
> +share/freecad/Gui/Stylesheets/images_classic/undock-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-black.png
> +share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-white.png
> +share/freecad/Gui/Stylesheets/images_classic/vmovetoolbar-white.svg
>  share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-black.png
> +share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-black.svg
>  share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-blue.png
> +share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-blue.svg
>  share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-darkgray.png
> +share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-darkgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-lightgray.png
> +share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-lightgray.svg
>  share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-white.png
> +share/freecad/Gui/Stylesheets/images_classic/vsepartoolbar-white.svg
>  share/freecad/Gui/Stylesheets/images_dark-light/
>  share/freecad/Gui/Stylesheets/images_dark-light/Hmovetoolbar_dark.svg
>  share/freecad/Gui/Stylesheets/images_dark-light/Hmovetoolbar_light.svg
> @@ -5033,10 +5880,7 @@ share/freecad/Gui/Stylesheets/images_dark-light/up_arr
>  share/freecad/Gui/Stylesheets/images_dark-light/up_arrow_light.svg
>  share/freecad/Gui/Stylesheets/images_dark-light/up_arrow_lighter.svg
>  share/freecad/Gui/Stylesheets/overlay/
> -share/freecad/Gui/Stylesheets/overlay/Dark Theme + Dark Background.qss
> -share/freecad/Gui/Stylesheets/overlay/Dark Theme + Light Background.qss
> -share/freecad/Gui/Stylesheets/overlay/Light Theme + Dark Background.qss
> -share/freecad/Gui/Stylesheets/overlay/Light Theme + Light Background.qss
> +share/freecad/Gui/Stylesheets/overlay/Freecad Overlay.qss
>  share/freecad/Gui/Stylesheets/overlay/icons/
>  share/freecad/Gui/Stylesheets/overlay/icons/autohide.svg
>  share/freecad/Gui/Stylesheets/overlay/icons/autohide_light.svg
> @@ -5071,6 +5915,9 @@ share/freecad/Gui/Stylesheets/overlay/icons/taskshow_l
>  share/freecad/Gui/Stylesheets/overlay/icons/transparent.svg
>  share/freecad/Gui/Stylesheets/overlay/icons/transparent_light.svg
>  share/freecad/Gui/Stylesheets/overlay/icons/transparent_lighter.svg
> +share/freecad/Gui/Stylesheets/parameters/
> +share/freecad/Gui/Stylesheets/parameters/FreeCAD Dark.yaml
> +share/freecad/Gui/Stylesheets/parameters/FreeCAD Light.yaml
>  share/freecad/Mod/
>  share/freecad/Mod/Assembly/
>  share/freecad/Mod/Assembly/Resources/
> @@ -5085,10 +5932,14 @@ share/freecad/Mod/BIM/Presets/ifc_products_IFC4.json
>  share/freecad/Mod/BIM/Presets/ifc_types_IFC2X3.json
>  share/freecad/Mod/BIM/Presets/ifc_types_IFC4.json
>  share/freecad/Mod/BIM/Presets/profiles.csv
> +share/freecad/Mod/BIM/Presets/properties_conversion.csv
>  share/freecad/Mod/BIM/Presets/pset_definitions.csv
> +share/freecad/Mod/BIM/Presets/qto_definitions.csv
>  share/freecad/Mod/BIM/Resources/
>  share/freecad/Mod/BIM/Resources/icons/
>  share/freecad/Mod/BIM/Resources/icons/BIMWorkbench.svg
> +share/freecad/Mod/BIM/Resources/templates/
> +share/freecad/Mod/BIM/Resources/templates/webgl_export_template.html
>  share/freecad/Mod/CAM/
>  share/freecad/Mod/CAM/Resources/
>  share/freecad/Mod/CAM/Resources/icons/
> @@ -5103,7 +5954,10 @@ share/freecad/Mod/Fem/Resources/icons/
>  share/freecad/Mod/Fem/Resources/icons/FemWorkbench.svg
>  share/freecad/Mod/Fem/Resources/symbols/
>  share/freecad/Mod/Fem/Resources/symbols/ConstraintContact.iv
> +share/freecad/Mod/Fem/Resources/symbols/ConstraintCurrentDensity.iv
>  share/freecad/Mod/Fem/Resources/symbols/ConstraintDisplacement.iv
> +share/freecad/Mod/Fem/Resources/symbols/ConstraintElectricChargeDensity.iv
> +share/freecad/Mod/Fem/Resources/symbols/ConstraintElectrostaticPotential.iv
>  share/freecad/Mod/Fem/Resources/symbols/ConstraintFixed.iv
>  share/freecad/Mod/Fem/Resources/symbols/ConstraintForce.iv
>  share/freecad/Mod/Fem/Resources/symbols/ConstraintHeatFlux.iv
> @@ -5241,6 +6095,7 @@ share/freecad/Mod/Material/Resources/Materials/Standar
>  share/freecad/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlMgSi1F31.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/AlZn4-5Mg1F35.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-6061-T6.FCMat
> +share/freecad/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-7075-T6.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Metal/Aluminum/Aluminum-Generic.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Metal/Copper/
>  share/freecad/Mod/Material/Resources/Materials/Standard/Metal/Copper/Copper-Generic.FCMat
> @@ -5346,8 +6201,13 @@ share/freecad/Mod/Material/Resources/Materials/Standar
>  share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/ABS-Generic.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/Acrylic-Glass-Generic.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PA6-Generic.FCMat
> +share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PC-Molded.FCMat
> +share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PEEK-Generic.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PET-Generic.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PLA-Generic.FCMat
> +share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PMMA-Generic.FCMat
> +share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/POM-Copolymer-Generic.FCMat
> +share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/POM-Homopolymer-Generic.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PP-Generic.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PTFE-Generic.FCMat
>  share/freecad/Mod/Material/Resources/Materials/Standard/Thermoplast/PVC-Generic.FCMat
> @@ -5421,7 +6281,7 @@ share/freecad/Mod/Material/Resources/Models/Thermal/
>  share/freecad/Mod/Material/Resources/Models/Thermal/Thermal.yml
>  share/freecad/Mod/Material/Resources/icons/
>  share/freecad/Mod/Material/Resources/icons/MaterialWorkbench.svg
> -share/freecad/Mod/Material/Resources/icons/Materials_Edit.svg
> +share/freecad/Mod/Material/Resources/icons/Material_Edit.svg
>  share/freecad/Mod/Material/Resources/icons/list.svg
>  share/freecad/Mod/Material/Resources/icons/multiline.svg
>  share/freecad/Mod/Material/Resources/icons/preferences-material.svg
> @@ -5471,16 +6331,6 @@ share/freecad/Mod/ReverseEngineering/Resources/
>  share/freecad/Mod/ReverseEngineering/Resources/icons/
>  share/freecad/Mod/ReverseEngineering/Resources/icons/ReverseEngineeringWorkbench.svg
>  share/freecad/Mod/Robot/
> -share/freecad/Mod/Robot/Lib/
> -share/freecad/Mod/Robot/Lib/Kuka/
> -share/freecad/Mod/Robot/Lib/Kuka/kr125_3.wrl
> -share/freecad/Mod/Robot/Lib/Kuka/kr16.wrl
> -share/freecad/Mod/Robot/Lib/Kuka/kr210.WRL
> -share/freecad/Mod/Robot/Lib/Kuka/kr500_1.csv
> -share/freecad/Mod/Robot/Lib/Kuka/kr500_1.wrl
> -share/freecad/Mod/Robot/Lib/Kuka/kr_125.csv
> -share/freecad/Mod/Robot/Lib/Kuka/kr_16.csv
> -share/freecad/Mod/Robot/Lib/Kuka/kr_210_2.csv
>  share/freecad/Mod/Robot/Resources/
>  share/freecad/Mod/Robot/Resources/icons/
>  share/freecad/Mod/Robot/Resources/icons/RobotWorkbench.svg
> @@ -5672,158 +6522,164 @@ share/freecad/Mod/TechDraw/Symbols/surface-roughness-s
>  share/freecad/Mod/TechDraw/Symbols/surface-roughness-symbols/surface-roughness-no-layer-removing.svg
>  share/freecad/Mod/TechDraw/Symbols/surface-roughness-symbols/surface-roughness.svg
>  share/freecad/Mod/TechDraw/Templates/
> -share/freecad/Mod/TechDraw/Templates/A0_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/A0_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/A0_Landscape_blank.svg
> -share/freecad/Mod/TechDraw/Templates/A1_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/A1_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/A1_Landscape_blank.svg
> -share/freecad/Mod/TechDraw/Templates/A2_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/A2_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/A2_Landscape_blank.svg
> -share/freecad/Mod/TechDraw/Templates/A3_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/A3_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/A3_Landscape_TD.svg
> -share/freecad/Mod/TechDraw/Templates/A3_Landscape_blank.svg
> -share/freecad/Mod/TechDraw/Templates/A3_Landscape_m52.svg
> -share/freecad/Mod/TechDraw/Templates/A4_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/A4_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/A4_Landscape_TD.svg
> -share/freecad/Mod/TechDraw/Templates/A4_Landscape_blank.svg
> -share/freecad/Mod/TechDraw/Templates/A4_Portrait_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/A4_Portrait_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/A4_Portrait_blank.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIA_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIA_Landscape_blank.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIA_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIA_Portrait_blank.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIB.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIB_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIB_Landscape_blank.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIB_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIB_Portrait_blank.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIC_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIC_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/ANSID_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/ANSID_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIE_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/ANSIE_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_A_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_A_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_B_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_B_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_C_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_C_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_D_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_D_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_E1_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_E1_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_E2_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_E2_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_E3_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_E3_Portrait.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_E_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/Arch_E_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIA_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIA_Landscape_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIA_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIA_Portrait_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIB.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIB_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIB_Landscape_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIB_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIB_Portrait_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIC_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIC_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSID_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSID_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIE_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/ANSIE_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_A_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_A_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_B_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_B_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_C_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_C_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_D_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_D_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_E1_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_E1_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_E2_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_E2_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_E3_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_E3_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_E_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/Arch_E_Portrait.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/USLetter_Landscape.svg
> +share/freecad/Mod/TechDraw/Templates/ASME/USLetter_Landscape_blank.svg
>  share/freecad/Mod/TechDraw/Templates/Default_Template_A4_Landscape.svg
>  share/freecad/Mod/TechDraw/Templates/HowToExample.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/A0_Landscape_ISO5457_notitleblock.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/A1_Landscape_ISO5457_notitleblock.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/A2_Landscape_ISO5457_notitleblock.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/A3_Landscape_ISO5457_notitleblock.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/A4_Landscape_ISO5457_notitleblock.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/A4_Portrait_ISO5457_notitleblock.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/ISO7200_titleblock_1_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/ISO7200_titleblock_2.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/ISO7200_titleblock_3_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/ISO7200_titleblock_4.svg
> -share/freecad/Mod/TechDraw/Templates/ISO 5457/ISO7200_titleblock_5_maximal.svg
> -share/freecad/Mod/TechDraw/Templates/USLetter_Landscape.svg
> -share/freecad/Mod/TechDraw/Templates/USLetter_Landscape_blank.svg
> -share/freecad/Mod/TechDraw/Templates/locale/
> -share/freecad/Mod/TechDraw/Templates/locale/ca/
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A0_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A0_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A1_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A1_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A2_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A2_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A3_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A3_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A4_Landscape_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A4_Landscape_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A4_Portrait_ISO5457_advanced.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ca/A4_Portrait_ISO5457_minimal.svg
> -share/freecad/Mod/TechDraw/Templates/locale/de/
> -share/freecad/Mod/TechDraw/Templates/locale/de/A0_Landscape_ISO7200_DE.svg
> -share/freecad/Mod/TechDraw/Templates/locale/de/A1_Landscape_ISO7200_DE.svg
> -share/freecad/Mod/TechDraw/Templates/locale/de/A2_Landscape_ISO7200_DE.svg
> -share/freecad/Mod/TechDraw/Templates/locale/de/A3_Landscape_ISO7200_DE.svg
> -share/freecad/Mod/TechDraw/Templates/locale/de/A4_Landscape_ISO7200_DE.svg
> -share/freecad/Mod/TechDraw/Templates/locale/de/A4_Portrait_ISO7200_DE.svg
> -share/freecad/Mod/TechDraw/Templates/locale/es-AR/
> -share/freecad/Mod/TechDraw/Templates/locale/es-AR/A0.svg
> -share/freecad/Mod/TechDraw/Templates/locale/es-AR/A1.svg
> -share/freecad/Mod/TechDraw/Templates/locale/es-AR/A2.svg
> -share/freecad/Mod/TechDraw/Templates/locale/es-AR/A3.svg
> -share/freecad/Mod/TechDraw/Templates/locale/es-AR/A4.svg
> -share/freecad/Mod/TechDraw/Templates/locale/fr/
> -share/freecad/Mod/TechDraw/Templates/locale/fr/A3_Landscape_FR_m52.svg
> -share/freecad/Mod/TechDraw/Templates/locale/it/
> -share/freecad/Mod/TechDraw/Templates/locale/it/A3_Landscape_IT_m52.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Landscape_A0.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Landscape_A1.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Landscape_A2.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Landscape_A3.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Landscape_A4_NotInGOST.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Portrait_A0.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Portrait_A1.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Portrait_A2.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Portrait_A3.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading/Portrait_A4.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading_text/
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading_text/Portrait_A3.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Leading_text/Portrait_A4.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Landscape_A0.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Landscape_A1.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Landscape_A2.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Landscape_A3.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Landscape_A4.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Portrait_A0.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Portrait_A1.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Portrait_A2.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Portrait_A3.svg
> -share/freecad/Mod/TechDraw/Templates/locale/ru/Subsequent/Portrait_A4.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A0_Landscape_CN_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A0_Landscape_CN_NO_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A1_Landscape_CN_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A1_Landscape_CN_NO_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A2_Landscape_CN_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A2_Landscape_CN_NO_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A3_Landscape_CN_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A3_Landscape_CN_NO_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A4_Landscape_CN_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/landscape/A4_Landscape_CN_NO_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/portrait/
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/portrait/A3_Portrait_CN_CLIP.svg
> -share/freecad/Mod/TechDraw/Templates/locale/zh-CN/portrait/A4_Portrait_CN_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/
> +share/freecad/Mod/TechDraw/Templates/ISO/A0_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A0_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A0_Landscape_ISO5457_notitleblock.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A0_Landscape_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A1_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A1_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A1_Landscape_ISO5457_notitleblock.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A1_Landscape_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A2_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A2_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A2_Landscape_ISO5457_notitleblock.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A2_Landscape_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A3_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A3_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A3_Landscape_ISO5457_notitleblock.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A3_Landscape_TD.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A3_Landscape_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A3_Landscape_m52.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Landscape_ISO5457_notitleblock.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Landscape_TD.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Landscape_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Portrait_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Portrait_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Portrait_ISO5457_notitleblock.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/A4_Portrait_blank.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A0_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A0_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A1_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A1_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A2_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A2_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A3_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A3_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A4_Landscape_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A4_Landscape_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A4_Portrait_ISO5457_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ca/A4_Portrait_ISO5457_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/de/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/de/A0_Landscape_ISO7200_DE.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/de/A1_Landscape_ISO7200_DE.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/de/A2_Landscape_ISO7200_DE.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/de/A3_Landscape_ISO7200_DE.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/de/A4_Landscape_ISO7200_DE.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/de/A4_Portrait_ISO7200_DE.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/es-AR/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/es-AR/A0.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/es-AR/A1.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/es-AR/A2.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/es-AR/A3.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/es-AR/A4.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/fr/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/fr/A3_Landscape_FR_m52.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/it/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/it/A3_Landscape_IT_m52.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Landscape_A0.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Landscape_A1.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Landscape_A2.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Landscape_A3.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Landscape_A4_NotInGOST.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Portrait_A0.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Portrait_A1.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Portrait_A2.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Portrait_A3.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading/Portrait_A4.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading_text/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading_text/Portrait_A3.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Leading_text/Portrait_A4.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Landscape_A0.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Landscape_A1.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Landscape_A2.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Landscape_A3.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Landscape_A4.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Portrait_A0.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Portrait_A1.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Portrait_A2.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Portrait_A3.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/ru/Subsequent/Portrait_A4.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A0_Landscape_CN_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A0_Landscape_CN_NO_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A1_Landscape_CN_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A1_Landscape_CN_NO_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A2_Landscape_CN_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A2_Landscape_CN_NO_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A3_Landscape_CN_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A3_Landscape_CN_NO_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A4_Landscape_CN_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/landscape/A4_Landscape_CN_NO_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/portrait/
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/portrait/A3_Portrait_CN_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/localized/zh-CN/portrait/A4_Portrait_CN_CLIP.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/titleblocks/
> +share/freecad/Mod/TechDraw/Templates/ISO/titleblocks/ISO7200_titleblock_1_minimal.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/titleblocks/ISO7200_titleblock_2.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/titleblocks/ISO7200_titleblock_3_advanced.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/titleblocks/ISO7200_titleblock_4.svg
> +share/freecad/Mod/TechDraw/Templates/ISO/titleblocks/ISO7200_titleblock_5_maximal.svg
>  share/freecad/Mod/Test/
>  share/freecad/Mod/Test/Resources/
>  share/freecad/Mod/Test/Resources/icons/
>  share/freecad/Mod/Test/Resources/icons/TestWorkbench.svg
>  share/freecad/examples/
> +share/freecad/examples/ArchDetail.FCStd
>  share/freecad/examples/AssemblyExample.FCStd
>  share/freecad/examples/BIMExample.FCStd
>  share/freecad/examples/EngineBlock.FCStd
> +share/freecad/examples/FCPAT.pat
>  share/freecad/examples/FEMExample.FCStd
>  share/freecad/examples/PartDesignExample.FCStd
>  share/freecad/examples/Schenkel.stp
>  share/freecad/examples/draft_test_objects.FCStd
> +share/freecad/examples/osifont-lgpl3fe.ttf
> +share/freecad/examples/osifont.license
>  share/icons/hicolor/16x16/apps/org.freecad.FreeCAD.png
>  share/icons/hicolor/32x32/apps/org.freecad.FreeCAD.png
>  share/icons/hicolor/48x48/apps/org.freecad.FreeCAD.png
> @@ -5833,8 +6689,7 @@ share/icons/hicolor/scalable/mimetypes/application-x-e
>  share/metainfo/org.freecad.FreeCAD.metainfo.xml
>  share/mime/packages/org.freecad.FreeCAD.xml
>  share/pixmaps/
> -share/pixmaps/freecad.xpm
> -share/pkgconfig/OndselSolver.pc
> +share/pixmaps/freecad.svg
>  share/thumbnailers/FreeCAD.thumbnailer
>  @tag gtk-update-icon-cache %D/share/icons/hicolor
>  @tag update-mime-database
>