diff --git a/.gitignore b/.gitignore
index 6843c3f40b..608fdd3e74 100644
--- a/.gitignore
+++ b/.gitignore
@@ -107,4 +107,6 @@ src/ifcopenshell-python/ifcopenshell/ifcopenshell_wrapper.py
src/bonsai/bonsai/bim/schema/Brick.ttl
bonsaiDecoratorForLoads.code-workspace
+dev_environment.bat
+.pixi/
\ No newline at end of file
diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
index fd08532b0b..e2ab60cffb 100644
--- a/cmake/CMakeLists.txt
+++ b/cmake/CMakeLists.txt
@@ -578,7 +578,18 @@ if(BUILD_IFCGEOM)
endif(WITH_OPENCASCADE)
endif(BUILD_IFCGEOM)
-if(COLLADA_SUPPORT)
+if(COLLADA_SUPPORT AND (NOT OPENCOLLADA_INCLUDE_DIR AND NOT OPENCOLLADA_LIBRARY_DIR))
+ # If package is found, automatically sets
+ # OPENCOLLADA_INCLUDE_DIRS and OPENCOLLADA_LIBRARIES (list of targets, not paths).
+ find_package(OpenCOLLADA CONFIG)
+ if(OpenCOLLADA_DIR)
+ message(STATUS "Found OpenCOLLADA: '${OpenCOLLADA_DIR}'.")
+ set(OPENCOLLADA_FOUND TRUE)
+ else()
+ message(STATUS "OpenCOLLADA package not found, falling back to manual search.")
+ endif()
+endif()
+if(COLLADA_SUPPORT AND NOT OpenCOLLADA_DIR)
# Find OpenCOLLADA
if("${OPENCOLLADA_INCLUDE_DIR}" STREQUAL "")
message(STATUS "No OpenCOLLADA include directory specified")
@@ -611,8 +622,7 @@ if(COLLADA_SUPPORT)
if(COLLADASWStreamWriter_h)
message(STATUS "OpenCOLLADA header files found")
- add_definitions(-DWITH_OPENCOLLADA)
- set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_OPENCOLLADA)
+ set(OPENCOLLADA_FOUND TRUE)
set(OPENCOLLADA_LIBRARY_NAMES
GeneratedSaxParser MathMLSolver OpenCOLLADABaseUtils OpenCOLLADAFramework OpenCOLLADASaxFrameworkLoader
@@ -660,7 +670,12 @@ if(COLLADA_SUPPORT)
message(FATAL_ERROR "COLLADA_SUPPORT enabled, but unable to find OpenCOLLADA headers. "
"Disable COLLADA_SUPPORT or fix OpenCOLLADA paths to proceed.")
endif()
-endif(COLLADA_SUPPORT)
+endif(COLLADA_SUPPORT AND NOT OpenCOLLADA_DIR)
+if(COLLADA_SUPPORT AND OPENCOLLADA_FOUND)
+ add_definitions(-DWITH_OPENCOLLADA)
+ set(SWIG_DEFINES ${SWIG_DEFINES} -DWITH_OPENCOLLADA)
+endif()
+
if(HDF5_SUPPORT)
if("${HDF5_INCLUDE_DIR}" STREQUAL "")
diff --git a/cmake/CMakePresets.json b/cmake/CMakePresets.json
new file mode 100644
index 0000000000..9c10495ad3
--- /dev/null
+++ b/cmake/CMakePresets.json
@@ -0,0 +1,114 @@
+{
+ "version": 6,
+ "configurePresets": [
+ {
+ "name": "shared",
+ "generator": "Ninja",
+ "hidden": true,
+ "cacheVariables": {
+ "BUILD_IFCPYTHON": "ON",
+ "BUILD_IFCGEOM": "ON",
+ "COLLADA_SUPPORT": "OFF",
+ "BUILD_EXAMPLES": "OFF",
+ "BUILD_GEOMSERVER": "OFF",
+ "GLTF_SUPPORT": "ON",
+ "BUILD_CONVERT": "ON",
+ "BUILD_IFCMAX": "OFF",
+ "IFCXML_SUPPORT": "ON",
+ "HDF5_SUPPORT": "ON",
+ "SCHEMA_VERSIONS": "4x3_add2",
+ "CITYJSON_SUPPORT": "OFF",
+ "CMAKE_GENERATOR_PLATFORM": "",
+ "CMAKE_GENERATOR_TOOLSET": ""
+ }
+ },
+ {
+ "name": "win-shared",
+ "inherits": [
+ "shared"
+ ],
+ "hidden": true,
+ "environment": {
+ "CONDA_BUILD": "ON",
+ "CONDA_PY": "312"
+ },
+ "cacheVariables": {
+ "Boost_USE_STATIC_LIBS": "OFF",
+ "CMAKE_INSTALL_PREFIX": "$env{LIBRARY_PREFIX}",
+ "PYTHON_EXECUTABLE": "$env{PREFIX}/python.exe",
+ "PYTHON_INCLUDE_DIR": "$env{PREFIX}/include",
+ "PYTHON_LIBRARY": "$env{PREFIX}/libs/python$env{CONDA_PY}.lib",
+ "CMAKE_FIND_ROOT_PATH": "$env{LIBRARY_PREFIX}",
+ "CMAKE_PREFIX_PATH": "$env{LIBRARY_PREFIX}",
+ "LIBXML2_LIBRARIES": "$env{LIBRARY_PREFIX}/lib/libxml2.lib",
+ "OCC_INCLUDE_DIR": "$env{LIBRARY_PREFIX}/include/opencascade",
+ "OCC_LIBRARY_DIR": "$env{LIBRARY_PREFIX}/lib",
+ "CGAL_INCLUDE_DIR": "$env{LIBRARY_PREFIX}/include",
+ "EIGEN_DIR": "$env{LIBRARY_PREFIX}/include/eigen3",
+ "JSON_INCLUDE_DIR": "$env{LIBRARY_PREFIX}/include",
+ "GMP_INCLUDE_DIR": "$env{LIBRARY_PREFIX}/include",
+ "GMP_LIBRARY_DIR": "$env{LIBRARY_PREFIX}/lib",
+ "MPFR_LIBRARY_DIR": "$env{LIBRARY_PREFIX}/lib",
+ "Boost_LIBRARY_DIR": "$env{LIBRARY_PREFIX}/lib",
+ "Boost_INCLUDE_DIR": "$env{LIBRARY_PREFIX}/include",
+ "HDF5_INCLUDE_DIR": "$env{LIBRARY_PREFIX}/include",
+ "HDF5_LIBRARY_DIR": "$env{LIBRARY_PREFIX}/lib",
+ "ZLIB_INCLUDE_DIR": "$env{LIBRARY_PREFIX}/include"
+ }
+ },
+ {
+ "name": "win-release",
+ "inherits": [
+ "win-shared"
+ ],
+ "hidden": false,
+ "warnings": {
+ "dev": false
+ },
+ "environment": {
+ "PREFIX": "${sourceDir}/../.pixi/envs/prod",
+ "LIBRARY_PREFIX": "${sourceDir}/../.pixi/envs/prod/Library"
+ },
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "Release"
+ }
+ },
+ {
+ "name": "win-debug",
+ "inherits": [
+ "win-shared"
+ ],
+ "hidden": false,
+ "binaryDir": "${sourceDir}/../build/win-debug",
+ "warnings": {
+ "dev": false
+ },
+ "environment": {
+ "PREFIX": "${sourceDir}/../.pixi/envs/dev",
+ "LIBRARY_PREFIX": "${sourceDir}/../.pixi/envs/dev/Library"
+ },
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "RelWithDebInfo"
+ }
+ },
+ {
+ "name": "win-test",
+ "inherits": [
+ "win-shared"
+ ],
+ "hidden": false,
+ "binaryDir": "${sourceDir}/../build/win-test",
+ "warnings": {
+ "dev": false
+ },
+ "environment": {
+ "PREFIX": "${sourceDir}/../.pixi/envs/tests",
+ "LIBRARY_PREFIX": "${sourceDir}/../.pixi/envs/tests/Library"
+ },
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "Release",
+ "SCHEMA_VERSIONS": "2x3;4;4x3_add2"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/nix/build-all.py b/nix/build-all.py
index 1766da861a..68b9b5a278 100644
--- a/nix/build-all.py
+++ b/nix/build-all.py
@@ -127,7 +127,7 @@ OCCT_VERSION = "7.8.1"
BOOST_VERSION = "1.86.0"
PCRE_VERSION = "8.41"
LIBXML2_VERSION = "2.13.8"
-SWIG_VERSION = "4.0.2"
+SWIG_VERSION = "4.1.0"
OPENCOLLADA_VERSION = "v1.6.68"
HDF5_VERSION = "1.13.0"
diff --git a/pixi.lock b/pixi.lock
new file mode 100644
index 0000000000..aff1b38b70
--- /dev/null
+++ b/pixi.lock
@@ -0,0 +1,8645 @@
+version: 6
+environments:
+ common:
+ channels:
+ - url: https://conda.anaconda.org/conda-forge/
+ packages:
+ linux-64:
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.43-h4852527_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.43-h4852527_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.9.0-h2b85faf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h6aadc51_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cmake-3.30.5-hf9cb763_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.9.0-h1a2810e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freeimage-3.18.0-h3a85593_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.3.0-h9576a4e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.3.0-hfea6d02_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.3.0-h9576a4e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.3.0-hdbfa832_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/imath-3.1.12-h7955e40_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-hd590300_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-28_h59b9bed_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-h6c02f8c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-h1a2810e_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-28_he106b2a_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.3.0-h84ea5a7_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-28_h7ac8fdf_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.46-h943b412_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libraw-0.21.3-hca62329_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.3.0-heb74ff8_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.48.0-hee588c1_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.3.0-h84ea5a7_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.50.0-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h90cbb55_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.12.1-h297d8ca_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-he02047a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.2-py312h72c5963_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/occt-7.8.1-novtk_he2768ca_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openexr-3.3.2-h6326327_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pythonocc-core-7.8.1.1-novtk_h9a8ab00_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/rapidjson-1.1.0.post20240409-hac33072_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/rhash-1.4.5-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/swig-4.3.0-heed6a68_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.5-he73a12e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.11-h4f16b4b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.1-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda
+ osx-64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.4-hf13058a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.9.0-h09a7c41_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2025.1.31-h8857fd0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools-1010.6-ha66f10e_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-1010.6-hd19c6af_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cgal-cpp-6.0.1-h20ba9b8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-18-18.1.8-default_h3571c67_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-18.1.8-default_h576c50e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-18.1.8-h6a44ed1_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-18.1.8-h7e5c614_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx-18.1.8-default_heb2e8d1_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-18.1.8-h4b7810f_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-18.1.8-h7e5c614_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cmake-3.30.5-h7243fc2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-18.1.8-h1020d70_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-18.1.8-hf2b8a54_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.9.0-h20888b2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/eigen-3.4.0-h1c7c39f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.15.0-h37eeddb_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/freeimage-3.18.0-h7cd8ba8_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.4-nompi_h1607680_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/imath-3.1.12-h2016aa1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/jxrlib-1.1-h10d778d_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64-951.9-h4e51db5_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-951.9-h33512f0_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-28_h7f60823_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-1.86.0-hf0da243_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-devel-1.86.0-h20888b2_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.86.0-h694c41f_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-28_hff6cab4_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp18.1-18.1.8-default_h3571c67_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.11.1-h5dec5d8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.7-hf95d169_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-devel-18.1.8-h7c275be_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.23-he65b83e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20250104-pl5321ha958ccf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-28_h236ab99_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm18-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-devel-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.28-openmp_hbf64a52_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.46-h3c4a55f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libraw-0.21.3-h8f7feda_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.48.0-hdb6dae5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-h3dc7d44_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.0-hb77a491_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.50.0-h4cb831e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.5.0-h6cf52b4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.8-he1bc88e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-19.1.7-ha54dae1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-18-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/mpfr-4.2.1-haed47dc_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ninja-1.12.1-h3c5361c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.11.3-hf036a51_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.2.2-py312h6693b03_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/occt-7.8.1-novtk_h6d54593_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openexr-3.3.2-heaa778b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.3-h7fd6d84_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.8-h9ccd52b_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pythonocc-core-7.8.1.1-novtk_hb8dc2b1_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/rapidjson-1.1.0.post20240409-hf036a51_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/rhash-1.4.5-ha44c9a9_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/swig-4.3.0-h05d4bff_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tapi-1300.6.5-h390ca13_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.8.1-h357f2ed_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-gpl-tools-5.8.1-h357f2ed_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-tools-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda
+ win-64:
+ - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/c-compiler-1.9.0-hcfcfb64_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-h31bd75c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cmake-3.30.5-h400e5d1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.9.0-h91493d7_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/eigen-3.4.0-h91493d7_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freeimage-3.18.0-h8310ca0_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/imath-3.1.12-hbb528cf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/jxrlib-1.1-hcfcfb64_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-28_h576b46c_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-hb0986bb_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h91493d7_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-28_h7ad3364_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.11.1-h88aaa65_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.23-h9062f6e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.2-default_ha69328c_1001.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-28_hacfb0e4_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-devel-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.46-had7236b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libraw-0.21.3-h0f5434b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.48.0-h67fdade_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h797046b_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libuv-1.50.0-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.5.0-h3b0e114_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.8-h741aa76_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_15.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.1-hbc20e70_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.12.1-hc790b64_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/nlohmann_json-3.11.3-he0c23c2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.2.2-py312h3150e54_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/occt-7.8.1-novtk_hdfbec02_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openexr-3.3.2-h3924f79_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h4d64b90_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.8-h3f84c4b_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/pythonocc-core-7.8.1.1-novtk_h94eb9d1_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/rapidjson-1.1.0.post20240409-he0c23c2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/swig-4.3.0-h51fbe9b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h62715c5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h5fd82a7_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2019_win-64-19.29.30139-h7dcff83_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2022_win-64-19.42.34433-hd920555_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vswhere-3.1.7-h57928b3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.6.4-h208afaa_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/xz-tools-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda
+ default:
+ channels:
+ - url: https://conda.anaconda.org/conda-forge/
+ packages: {}
+ dev:
+ channels:
+ - url: https://conda.anaconda.org/conda-forge/
+ packages:
+ linux-64:
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.43-h4852527_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.43-h4852527_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.9.0-h2b85faf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h6aadc51_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cmake-3.30.5-hf9cb763_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.9.0-h1a2810e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freeimage-3.18.0-h3a85593_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.3.0-h9576a4e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.3.0-hfea6d02_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.3.0-h9576a4e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.3.0-hdbfa832_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/imath-3.1.12-h7955e40_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-hd590300_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-28_h59b9bed_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-h6c02f8c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-h1a2810e_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-28_he106b2a_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.3.0-h84ea5a7_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-28_h7ac8fdf_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.46-h943b412_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libraw-0.21.3-hca62329_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.3.0-heb74ff8_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.0-hee588c1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.3.0-h84ea5a7_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.50.0-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h90cbb55_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.12.1-h297d8ca_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-he02047a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.2-py312h72c5963_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/occt-7.8.1-novtk_he2768ca_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openexr-3.3.2-h6326327_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pythonocc-core-7.8.1.1-novtk_h9a8ab00_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/rapidjson-1.1.0.post20240409-hac33072_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/rhash-1.4.5-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/swig-4.3.0-heed6a68_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.5-he73a12e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.11-h4f16b4b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.1-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda
+ osx-64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.4-hf13058a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.9.0-h09a7c41_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2025.1.31-h8857fd0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools-1010.6-ha66f10e_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-1010.6-hd19c6af_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cgal-cpp-6.0.1-h20ba9b8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-18-18.1.8-default_h3571c67_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-18.1.8-default_h576c50e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-18.1.8-h6a44ed1_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-18.1.8-h7e5c614_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx-18.1.8-default_heb2e8d1_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-18.1.8-h4b7810f_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-18.1.8-h7e5c614_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cmake-3.30.5-h7243fc2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-18.1.8-h1020d70_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-18.1.8-hf2b8a54_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.9.0-h20888b2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/eigen-3.4.0-h1c7c39f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.15.0-h37eeddb_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/freeimage-3.18.0-h7cd8ba8_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.4-nompi_h1607680_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/imath-3.1.12-h2016aa1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/jxrlib-1.1-h10d778d_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64-951.9-h4e51db5_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-951.9-h33512f0_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-28_h7f60823_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-1.86.0-hf0da243_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-devel-1.86.0-h20888b2_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.86.0-h694c41f_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-28_hff6cab4_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp18.1-18.1.8-default_h3571c67_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.11.1-h5dec5d8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.7-hf95d169_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-devel-18.1.8-h7c275be_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.23-he65b83e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20250104-pl5321ha958ccf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-28_h236ab99_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm18-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-devel-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.28-openmp_hbf64a52_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.46-h3c4a55f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libraw-0.21.3-h8f7feda_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.49.0-hdb6dae5_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-h3dc7d44_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.0-hb77a491_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.50.0-h4cb831e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.5.0-h6cf52b4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.8-he1bc88e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-19.1.7-ha54dae1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-18-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/mpfr-4.2.1-haed47dc_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ninja-1.12.1-h3c5361c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.11.3-hf036a51_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.2.2-py312h6693b03_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/occt-7.8.1-novtk_h6d54593_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openexr-3.3.2-heaa778b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.3-h7fd6d84_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.8-h9ccd52b_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pythonocc-core-7.8.1.1-novtk_hb8dc2b1_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/rapidjson-1.1.0.post20240409-hf036a51_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/rhash-1.4.5-ha44c9a9_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/swig-4.3.0-h05d4bff_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tapi-1300.6.5-h390ca13_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.8.1-h357f2ed_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-gpl-tools-5.8.1-h357f2ed_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-tools-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda
+ win-64:
+ - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/c-compiler-1.9.0-hcfcfb64_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-h31bd75c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cmake-3.30.5-h400e5d1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.9.0-h91493d7_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/eigen-3.4.0-h91493d7_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freeimage-3.18.0-h8310ca0_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/imath-3.1.12-hbb528cf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/jxrlib-1.1-hcfcfb64_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-28_h576b46c_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-hb0986bb_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h91493d7_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-28_h7ad3364_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.11.1-h88aaa65_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.23-h9062f6e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.2-default_ha69328c_1001.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-28_hacfb0e4_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-devel-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.46-had7236b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libraw-0.21.3-h0f5434b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.49.0-h67fdade_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h797046b_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libuv-1.50.0-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.5.0-h3b0e114_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.8-h741aa76_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_15.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.1-hbc20e70_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.12.1-hc790b64_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/nlohmann_json-3.11.3-he0c23c2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.2.2-py312h3150e54_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/occt-7.8.1-novtk_hdfbec02_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openexr-3.3.2-h3924f79_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h4d64b90_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.8-h3f84c4b_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/pythonocc-core-7.8.1.1-novtk_h94eb9d1_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/rapidjson-1.1.0.post20240409-he0c23c2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/swig-4.3.0-h51fbe9b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h62715c5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h5fd82a7_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2019_win-64-19.29.30139-h7dcff83_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2022_win-64-19.42.34433-hd920555_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vswhere-3.1.7-h57928b3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.6.4-h208afaa_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/xz-tools-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda
+ lint:
+ channels:
+ - url: https://conda.anaconda.org/conda-forge/
+ packages:
+ linux-64:
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/black-25.1.0-py312h7900ff3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.2-h26f9b46_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.4.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.11-h9e4cc4f_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.12.10-h718f522_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
+ osx-64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/black-25.1.0-py312hb401068_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.1-h21dd04a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.6-h281671d_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.50.4-h39a8b3b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.5.2-h6e31bce_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.4.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.11-h9ccd52b_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.12.10-hab3cb23_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
+ win-64:
+ - conda: https://conda.anaconda.org/conda-forge/noarch/black-25.1.0-pyh866005b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh7428d3b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.1-hac47afa_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.50.4-hf5d6505_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.2-h725018a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.4.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.5-h7de537c_102_cp313.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.12.10-h429b229_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda
+ prod:
+ channels:
+ - url: https://conda.anaconda.org/conda-forge/
+ packages:
+ linux-64:
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.43-h4852527_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.43-h4852527_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.9.0-h2b85faf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h6aadc51_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cmake-3.30.5-hf9cb763_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.9.0-h1a2810e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freeimage-3.18.0-h3a85593_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.3.0-h9576a4e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.3.0-hfea6d02_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.3.0-h9576a4e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.3.0-hdbfa832_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/imath-3.1.12-h7955e40_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-hd590300_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-28_h59b9bed_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-h6c02f8c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-h1a2810e_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-28_he106b2a_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.3.0-h84ea5a7_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-28_h7ac8fdf_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.46-h943b412_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libraw-0.21.3-hca62329_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.3.0-heb74ff8_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.0-hee588c1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.3.0-h84ea5a7_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.50.0-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h90cbb55_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.12.1-h297d8ca_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-he02047a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.2-py312h72c5963_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/occt-7.8.1-novtk_he2768ca_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openexr-3.3.2-h6326327_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pythonocc-core-7.8.1.1-novtk_h9a8ab00_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/rapidjson-1.1.0.post20240409-hac33072_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/rhash-1.4.5-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/swig-4.3.0-heed6a68_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.5-he73a12e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.11-h4f16b4b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.1-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda
+ osx-64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.4-hf13058a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.9.0-h09a7c41_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2025.1.31-h8857fd0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools-1010.6-ha66f10e_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-1010.6-hd19c6af_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cgal-cpp-6.0.1-h20ba9b8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-18-18.1.8-default_h3571c67_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-18.1.8-default_h576c50e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-18.1.8-h6a44ed1_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-18.1.8-h7e5c614_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx-18.1.8-default_heb2e8d1_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-18.1.8-h4b7810f_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-18.1.8-h7e5c614_23.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cmake-3.30.5-h7243fc2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-18.1.8-h1020d70_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-18.1.8-hf2b8a54_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.9.0-h20888b2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/eigen-3.4.0-h1c7c39f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.15.0-h37eeddb_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/freeimage-3.18.0-h7cd8ba8_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.4-nompi_h1607680_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/imath-3.1.12-h2016aa1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/jxrlib-1.1-h10d778d_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64-951.9-h4e51db5_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-951.9-h33512f0_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-28_h7f60823_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-1.86.0-hf0da243_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-devel-1.86.0-h20888b2_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.86.0-h694c41f_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-28_hff6cab4_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp18.1-18.1.8-default_h3571c67_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.11.1-h5dec5d8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.7-hf95d169_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-devel-18.1.8-h7c275be_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.23-he65b83e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20250104-pl5321ha958ccf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-28_h236ab99_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm18-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-devel-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.28-openmp_hbf64a52_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.46-h3c4a55f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libraw-0.21.3-h8f7feda_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.49.0-hdb6dae5_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-h3dc7d44_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.0-hb77a491_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.50.0-h4cb831e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.5.0-h6cf52b4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.8-he1bc88e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-19.1.7-ha54dae1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-18-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-18.1.8-hc29ff6c_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/mpfr-4.2.1-haed47dc_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ninja-1.12.1-h3c5361c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.11.3-hf036a51_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.2.2-py312h6693b03_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/occt-7.8.1-novtk_h6d54593_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openexr-3.3.2-heaa778b_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.3-h7fd6d84_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.8-h9ccd52b_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pythonocc-core-7.8.1.1-novtk_hb8dc2b1_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/rapidjson-1.1.0.post20240409-hf036a51_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/rhash-1.4.5-ha44c9a9_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/swig-4.3.0-h05d4bff_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tapi-1300.6.5-h390ca13_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.8.1-h357f2ed_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-gpl-tools-5.8.1-h357f2ed_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-tools-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda
+ win-64:
+ - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/c-compiler-1.9.0-hcfcfb64_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-h31bd75c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cmake-3.30.5-h400e5d1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.9.0-h91493d7_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/eigen-3.4.0-h91493d7_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freeimage-3.18.0-h8310ca0_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_105.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/imath-3.1.12-hbb528cf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/jxrlib-1.1-hcfcfb64_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-28_h576b46c_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-hb0986bb_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h91493d7_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-28_h7ad3364_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.11.1-h88aaa65_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.23-h9062f6e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.2-default_ha69328c_1001.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-28_hacfb0e4_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-devel-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.46-had7236b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libraw-0.21.3-h0f5434b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.49.0-h67fdade_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h797046b_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libuv-1.50.0-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.5.0-h3b0e114_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.8-h741aa76_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_15.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.1-hbc20e70_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.12.1-hc790b64_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/nlohmann_json-3.11.3-he0c23c2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.2.2-py312h3150e54_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/occt-7.8.1-novtk_hdfbec02_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openexr-3.3.2-h3924f79_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h4d64b90_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.8-h3f84c4b_1_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/pythonocc-core-7.8.1.1-novtk_h94eb9d1_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/rapidjson-1.1.0.post20240409-he0c23c2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/swig-4.3.0-h51fbe9b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h62715c5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h5fd82a7_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2019_win-64-19.29.30139-h7dcff83_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2022_win-64-19.42.34433-hd920555_24.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vswhere-3.1.7-h57928b3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.6.4-h208afaa_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/xz-tools-5.6.4-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda
+ tests:
+ channels:
+ - url: https://conda.anaconda.org/conda-forge/
+ packages:
+ linux-64:
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.44-h4852527_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.44-h4bf12b8_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.44-h4852527_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.11.0-h4d9bdce_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h9b37d73_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cmake-3.30.5-hf9cb763_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.3.0-hb991d5c_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.11.0-hfcd1e18_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.7-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/elementpath-5.0.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freeglut-3.2.2-ha6d2627_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freeimage-3.18.0-h3a85593_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.13.3-ha770c72_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-14.3.0-h76bdaa0_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.3.0-hd9e9e21_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-14.3.0-h1382650_11.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.1-h97f6797_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-14.3.0-he448592_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-14.3.0-he663afc_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-14.3.0-ha7acb78_11.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/imath-3.1.12-h7955e40_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/isodate-0.7.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/jasper-4.2.8-he3c4edf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-hd590300_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_8.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.4-h3f801dc_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-34_h59b9bed_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.88.0-hed09d94_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.88.0-hfcd1e18_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.88.0-ha770c72_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-34_he106b2a_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.24-h86f0d12_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.13.3-ha770c72_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.13.3-h48d6fc4_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.3.0-h85bb3a7_104.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.3-h5888daf_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.0-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-34_h7ac8fdf_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.50-h421ea60_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libraw-0.21.4-h9969a89_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.3.0-hd08acf3_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-14.3.0-h85bb3a7_104.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-h8261f1e_6.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.8-h04c0eec_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h7a3aeb2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-6.0.1-py312h70dad80_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h90cbb55_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.5-pyhe01879c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.1-h171cf75_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h3f2d84a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.2-py312h33ff503_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/occt-7.9.0-novtk_h09ba48e_104.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openexr-3.3.5-h09fa569_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h55fea9a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.2-h26f9b46_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.45-hc749103_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.11-h9e4cc4f_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/pythonocc-core-7.9.0-novtk_h9a8ab00_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/rapidjson-1.1.0.post20240409-h3f2d84a_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/rhash-1.4.6-hb9d3cd8_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.12.10-h718f522_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.1.1-py312h21f5128_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/swig-4.3.1-h32e72b7_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_8.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/toposort-1.10-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/untokenize-0.1.1-pyhd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/xmlschema-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-he73a12e_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.12-h4f16b4b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.1-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.1-hb9d3cd8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/xsdata-25.7-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h4c3975b_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda
+ osx-64:
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312haafddd8_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.5-hf13058a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.11.0-h7a00415_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools-1024.3-h67a6458_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-1024.3-haa85c18_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py312hf857d28_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cgal-cpp-6.0.1-hcb3e410_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-19-19.1.7-default_h3571c67_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang-19.1.7-default_h576c50e_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-19.1.7-hc73cdc9_25.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-19.1.7-h7e5c614_25.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx-19.1.7-default_heb2e8d1_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-19.1.7-hb295874_25.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-19.1.7-h7e5c614_25.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cmake-3.30.5-h7243fc2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-19.1.7-h52031e2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-19.1.7-hc6f8467_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.11.0-h307afc9_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.7-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/eigen-3.4.0-h1c7c39f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/elementpath-5.0.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.15.0-h37eeddb_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/freeimage-3.18.0-h7cd8ba8_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.13.3-h694c41f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/geos-3.13.1-h502464c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc8237f9_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/imath-3.1.12-h2016aa1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/isodate-0.7.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/jasper-4.2.8-h9ce442b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/jxrlib-1.1-h10d778d_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64-955.13-hc3792c1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-955.13-hf1c22e8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.4-ha6bc127_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-34_h7f60823_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-1.88.0-hf0da243_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-devel-1.88.0-h20888b2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.88.0-h694c41f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-34_hff6cab4_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp19.1-19.1.7-default_h3571c67_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.14.1-h5dec5d8_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-20.1.8-h3d58e20_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-devel-19.1.7-h7c275be_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.24-hcc1b750_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20250104-pl5321ha958ccf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.1-h21dd04a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.6-h281671d_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libfreetype-2.13.3-h694c41f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libfreetype6-2.13.3-h40dfd5c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.1.0-h5f6db21_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.1.0-hfa3c126_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.0-h6e16a3a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-34_h236ab99_openblas.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm19-19.1.7-hc29ff6c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-devel-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h83c2472_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.50-h84aeda2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libraw-0.21.4-h0ade9e5_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.50.4-h39a8b3b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hed3591d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.0-h59ddb5d_6.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.51.0-h58003a5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.6.0-hb807250_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.8-he1bc88e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.43-h59ddae0_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-20.1.8-hf4e0ed4_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-19-19.1.7-he90a8e3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-19.1.7-h3fe3016_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/lxml-6.0.1-py312ha108ba6_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.2-py312h3520af0_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/mpfr-4.2.1-haed47dc_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.5-pyhe01879c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ninja-1.13.1-h0ba0a54_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h92383a6_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.2-py312hda18a35_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/occt-7.9.0-novtk_h7eef8d4_104.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openexr-3.3.5-h5783f79_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.3-h036ada5_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.5.2-h6e31bce_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.45-hf733adb_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.11-h9ccd52b_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/pythonocc-core-7.9.0-novtk_hb8dc2b1_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/rapidjson-1.1.0.post20240409-h92383a6_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/rhash-1.4.6-h6e16a3a_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.12.10-hab3cb23_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.1.1-py312hbf10b29_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/swig-4.3.1-h7b1c113_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tapi-1300.6.5-h390ca13_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/toposort-1.10-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/untokenize-0.1.1-pyhd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/xmlschema-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/xsdata-25.7-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.8.1-h357f2ed_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-gpl-tools-5.8.1-h357f2ed_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/xz-tools-5.8.1-hd471939_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h2f459f6_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h8210216_2.conda
+ win-64:
+ - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h275cf98_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/c-compiler-1.11.0-h528c1b4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-hc4f255e_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh7428d3b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cmake-3.30.5-h400e5d1_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.11.0-h1c1089f_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.7-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/eigen-3.4.0-h91493d7_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/elementpath-5.0.4-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freeglut-3.2.2-he0c23c2_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freeimage-3.18.0-h8310ca0_22.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.13.3-h57928b3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.13.1-h9ea8674_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_he30205f_103.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/imath-3.1.12-hbb528cf_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/isodate-0.7.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/jasper-4.2.8-h8ad263b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/jxrlib-1.1-hcfcfb64_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.4-h20038f6_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-34_h5709861_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.88.0-h1c1089f_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.88.0-h57928b3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-34_h2a3cdd5_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.14.1-h88aaa65_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.24-h76ddb4d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.1-hac47afa_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.13.3-h57928b3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.13.3-h0b5ce68_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_4.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h88281d1_1000.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.0-h2466b09_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-34_hf9ab0e9_mkl.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-devel-5.8.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.50-h7351971_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libraw-0.21.4-h866491b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.50.4-hf5d6505_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h550210a_6.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libuv-1.51.0-hfd05255_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.8-h741aa76_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.43-h25c3957_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-20.1.8-hfa2b4ca_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/lxml-6.0.1-py312hc85b015_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py312h31fea79_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h57928b3_16.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.1-hbc20e70_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.5-pyhe01879c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.13.1-h477610d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/nlohmann_json-3.12.0-he0c23c2_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py312ha72d056_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/occt-7.9.0-novtk_h9449c50_104.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openexr-3.3.5-h4750f91_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h24db6dd_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.2-h725018a_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.45-h99c9b8b_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.11-h3f84c4b_0_cpython.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/pythonocc-core-7.9.0-novtk_h94eb9d1_100.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/rapidjson-1.1.0.post20240409-he0c23c2_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.12.10-h429b229_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.1.1-py312h3f81574_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/swig-4.3.1-hf4c94c2_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h18a62a1_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/toposort-1.10-pyhd8ed1ab_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/untokenize-0.1.1-pyhd8ed1ab_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/vs2022_win-64-19.44.35207-ha74f236_31.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/vswhere-3.1.7-h40126e0_1.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/xmlschema-4.1.0-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/noarch/xsdata-25.7-pyhd8ed1ab_0.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.8.1-h208afaa_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/xz-tools-5.8.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312he06e257_3.conda
+ - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-hbeecb71_2.conda
+packages:
+- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2
+ sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726
+ md5: d7c89558ba9fa0495403155b64376d81
+ license: None
+ purls: []
+ size: 2562
+ timestamp: 1578324546067
+- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2
+ build_number: 16
+ sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22
+ md5: 73aaf86a425cc6e73fcf236a5a46396d
+ depends:
+ - _libgcc_mutex 0.1 conda_forge
+ - libgomp >=7.5.0
+ constrains:
+ - openmp_impl 9999
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 23621
+ timestamp: 1650670423406
+- conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda
+ build_number: 8
+ sha256: 1a62cd1f215fe0902e7004089693a78347a30ad687781dfda2289cab000e652d
+ md5: 37e16618af5c4851a3f3d66dd0e11141
+ depends:
+ - libgomp >=7.5.0
+ - libwinpthread >=12.0.0.r2.ggc561118da
+ constrains:
+ - openmp_impl 9999
+ - msys2-conda-epoch <0.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 49468
+ timestamp: 1718213032772
+- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.43-h4852527_2.conda
+ sha256: 92be0f8ccd501ceeb3c782e2182e6ea04dca46799038176de40a57bca45512c5
+ md5: 348619f90eee04901f4a70615efff35b
+ depends:
+ - binutils_impl_linux-64 >=2.43,<2.44.0a0
+ license: GPL-3.0-only
+ license_family: GPL
+ size: 33876
+ timestamp: 1729655402186
+- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils-2.44-h4852527_1.conda
+ sha256: 3feccd1dd61bc18e41548d015e65f731400aa3ffe65802bc22ad772052d5326c
+ md5: 0fab3ce18775aba71131028a04c20dfe
+ depends:
+ - binutils_impl_linux-64 >=2.44,<2.45.0a0
+ license: GPL-3.0-only
+ license_family: GPL
+ purls: []
+ size: 34998
+ timestamp: 1752032786202
+- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_2.conda
+ sha256: 267e78990247369b13234bda270f31beb56a600b4851a8244e31dd9ad85b3b17
+ md5: cf0c5521ac2a20dfa6c662a4009eeef6
+ depends:
+ - ld_impl_linux-64 2.43 h712a8e2_2
+ - sysroot_linux-64
+ license: GPL-3.0-only
+ license_family: GPL
+ size: 5682777
+ timestamp: 1729655371045
+- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.44-h4bf12b8_1.conda
+ sha256: 8556847f91a85c31ef65b05b7e9182a52775616d5d4e550dfb48cdee5fd35687
+ md5: e45cfedc8ca5630e02c106ea36d2c5c6
+ depends:
+ - ld_impl_linux-64 2.44 h1423503_1
+ - sysroot_linux-64
+ license: GPL-3.0-only
+ license_family: GPL
+ purls: []
+ size: 3781716
+ timestamp: 1752032761608
+- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.43-h4852527_2.conda
+ sha256: df52bd8b8b2a20a0c529d9ad08aaf66093ac318aa8a33d270f18274341a77062
+ md5: 18aba879ddf1f8f28145ca6fcb873d8c
+ depends:
+ - binutils_impl_linux-64 2.43 h4bf12b8_2
+ license: GPL-3.0-only
+ license_family: GPL
+ size: 34945
+ timestamp: 1729655404893
+- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.44-h4852527_1.conda
+ sha256: fbd94448d099a8c5fe7d9ec8c67171ab6e2f4221f453fe327de9b5aaf507f992
+ md5: 38e0be090e3af56e44a9cac46101f6cd
+ depends:
+ - binutils_impl_linux-64 2.44 h4bf12b8_1
+ license: GPL-3.0-only
+ license_family: GPL
+ purls: []
+ size: 36046
+ timestamp: 1752032788780
+- conda: https://conda.anaconda.org/conda-forge/linux-64/black-25.1.0-py312h7900ff3_0.conda
+ sha256: a115a0984455ee031ac90fc533ab719fd5f5e3803930ccf0a934fb7416d568ef
+ md5: 986a60de52eec10b36c61bb3890858ff
+ depends:
+ - click >=8.0.0
+ - mypy_extensions >=0.4.3
+ - packaging >=22.0
+ - pathspec >=0.9
+ - platformdirs >=2
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: MIT
+ license_family: MIT
+ size: 394760
+ timestamp: 1738616131766
+- conda: https://conda.anaconda.org/conda-forge/noarch/black-25.1.0-pyh866005b_0.conda
+ sha256: c68f110cd491dc839a69e340930862e54c00fb02cede5f1831fcf8a253bd68d2
+ md5: b9b0c42e7316aa6043bdfd49883955b8
+ depends:
+ - click >=8.0.0
+ - mypy_extensions >=0.4.3
+ - packaging >=22.0
+ - pathspec >=0.9
+ - platformdirs >=2
+ - python >=3.11
+ license: MIT
+ license_family: MIT
+ size: 172678
+ timestamp: 1742502887437
+- conda: https://conda.anaconda.org/conda-forge/osx-64/black-25.1.0-py312hb401068_0.conda
+ sha256: e937f18e36e23ecf0ec9ab89fc3ef5263308e88b645c4278fe8807fd95bef4c1
+ md5: d37d5213fcf23a33d946e40937578a02
+ depends:
+ - click >=8.0.0
+ - mypy_extensions >=0.4.3
+ - packaging >=22.0
+ - pathspec >=0.9
+ - platformdirs >=2
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: MIT
+ license_family: MIT
+ size: 393484
+ timestamp: 1738616259890
+- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_3.conda
+ sha256: dc27c58dc717b456eee2d57d8bc71df3f562ee49368a2351103bc8f1b67da251
+ md5: a32e0c069f6c3dcac635f7b0b0dac67e
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - libbrotlicommon 1.1.0 hb9d3cd8_3
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/brotli?source=hash-mapping
+ size: 351721
+ timestamp: 1749230265727
+- conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.1.0-py312haafddd8_3.conda
+ sha256: d1a8635422d99b4b7cc1b35d62d1a5c392ae0a4d74e0a44bf190916a21180ba3
+ md5: 11489c0fc22f550acf63da5e7ec7304d
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - libbrotlicommon 1.1.0 h6e16a3a_3
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/brotli?source=hash-mapping
+ size: 367262
+ timestamp: 1749230495846
+- conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.1.0-py312h275cf98_3.conda
+ sha256: d5c18a90220853c86f7cc23db62b32b22c6c5fe5d632bc111fc1e467c9fd776f
+ md5: a87a39f9eb9fd5f171b13d8c79f7a99a
+ depends:
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - libbrotlicommon 1.1.0 h2466b09_3
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/brotli?source=hash-mapping
+ size: 321941
+ timestamp: 1749231054102
+- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda
+ sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d
+ md5: 62ee74e96c5ebb0af99386de58cf9553
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc-ng >=12
+ license: bzip2-1.0.6
+ license_family: BSD
+ purls: []
+ size: 252783
+ timestamp: 1720974456583
+- conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hfdf4475_7.conda
+ sha256: cad153608b81fb24fc8c509357daa9ae4e49dfc535b2cb49b91e23dbd68fc3c5
+ md5: 7ed4301d437b59045be7e051a0308211
+ depends:
+ - __osx >=10.13
+ license: bzip2-1.0.6
+ license_family: BSD
+ purls: []
+ size: 134188
+ timestamp: 1720974491916
+- conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h2466b09_7.conda
+ sha256: 35a5dad92e88fdd7fc405e864ec239486f4f31eec229e31686e61a140a8e573b
+ md5: 276e7ffe9ffe39688abc665ef0f45596
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: bzip2-1.0.6
+ license_family: BSD
+ purls: []
+ size: 54927
+ timestamp: 1720974860185
+- conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda
+ sha256: d4f28d87b6339b94f74762c0076e29c8ef8ddfff51a564a92da2843573c18320
+ md5: e2775acf57efd5af15b8e3d1d74d72d3
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ size: 206085
+ timestamp: 1734208189009
+- conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda
+ sha256: f8003bef369f57396593ccd03d08a8e21966157269426f71e943f96e4b579aeb
+ md5: f7f0d6cc2dc986d42ac2689ec88192be
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 206884
+ timestamp: 1744127994291
+- conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.4-hf13058a_0.conda
+ sha256: 8dcc1628d34fe7d759f3a7dee52e09c5162a3f9669dddd6100bff965450f4a0a
+ md5: 133255af67aaf1e0c0468cc753fd800b
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ size: 184455
+ timestamp: 1734208242547
+- conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.5-hf13058a_0.conda
+ sha256: b37f5dacfe1c59e0a207c1d65489b760dff9ddb97b8df7126ceda01692ba6e97
+ md5: eafe5d9f1a8c514afe41e6e833f66dfd
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 184824
+ timestamp: 1744128064511
+- conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.11.0-h4d9bdce_0.conda
+ sha256: 8e7a40f16400d7839c82581410aa05c1f8324a693c9d50079f8c50dc9fb241f0
+ md5: abd85120de1187b0d1ec305c2173c71b
+ depends:
+ - binutils
+ - gcc
+ - gcc_linux-64 14.*
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6693
+ timestamp: 1753098721814
+- conda: https://conda.anaconda.org/conda-forge/linux-64/c-compiler-1.9.0-h2b85faf_0.conda
+ sha256: 1e4b86b0f3d4ce9f3787b8f62e9f2c5683287f19593131640eed01cbdad38168
+ md5: 3cb814f83f1f71ac1985013697f80cc1
+ depends:
+ - binutils
+ - gcc
+ - gcc_linux-64 13.*
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6196
+ timestamp: 1736437002021
+- conda: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.11.0-h7a00415_0.conda
+ sha256: 2bd1cf3d26789b7e1d04e914ccd169bd618fceed68abf7b6a305266b88dcf861
+ md5: 2b23ec416cef348192a5a17737ddee60
+ depends:
+ - cctools >=949.0.1
+ - clang_osx-64 19.*
+ - ld64 >=530
+ - llvm-openmp
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6695
+ timestamp: 1753098825695
+- conda: https://conda.anaconda.org/conda-forge/osx-64/c-compiler-1.9.0-h09a7c41_0.conda
+ sha256: 31851c99aa6250be4885bb4a8ee2001e92c710f7fc89eb0947f575cc51405ec4
+ md5: ab45badcb5d035d3bddfdbdd96e00967
+ depends:
+ - cctools >=949.0.1
+ - clang_osx-64 18.*
+ - ld64 >=530
+ - llvm-openmp
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6236
+ timestamp: 1736437072741
+- conda: https://conda.anaconda.org/conda-forge/win-64/c-compiler-1.11.0-h528c1b4_0.conda
+ sha256: 55e04bd4af61500cb8cae064386be57d18fbfdf676655ff1c97c7e5d146c6e34
+ md5: 6d994ff9ab924ba11c2c07e93afbe485
+ depends:
+ - vs2022_win-64
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6938
+ timestamp: 1753098808371
+- conda: https://conda.anaconda.org/conda-forge/win-64/c-compiler-1.9.0-hcfcfb64_0.conda
+ sha256: fa07ffc464b5a104a4d504c1a0a684ae383a67bef907d61697f22d48340c46cd
+ md5: 7d9b49b7ef31f9a23bdbc7ea0dd9996e
+ depends:
+ - vs2019_win-64
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6481
+ timestamp: 1736437097803
+- conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2025.1.31-hbcca054_0.conda
+ sha256: bf832198976d559ab44d6cdb315642655547e26d826e34da67cbee6624cda189
+ md5: 19f3a56f68d2fd06c516076bff482c52
+ license: ISC
+ size: 158144
+ timestamp: 1738298224464
+- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-h4c7d964_0.conda
+ sha256: 3b82f62baad3fd33827b01b0426e8203a2786c8f452f633740868296bcbe8485
+ md5: c9e0c0f82f6e63323827db462b40ede8
+ depends:
+ - __win
+ license: ISC
+ purls: []
+ size: 154489
+ timestamp: 1754210967212
+- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.8.3-hbd8a1cb_0.conda
+ sha256: 837b795a2bb39b75694ba910c13c15fa4998d4bb2a622c214a6a5174b2ae53d1
+ md5: 74784ee3d225fc3dca89edb635b4e5cc
+ depends:
+ - __unix
+ license: ISC
+ purls: []
+ size: 154402
+ timestamp: 1754210968730
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2025.1.31-h8857fd0_0.conda
+ sha256: 42e911ee2d8808eacedbec46d99b03200a6138b8e8a120bd8acabe1cac41c63b
+ md5: 3418b6c8cac3e71c0bc089fc5ea53042
+ license: ISC
+ size: 158408
+ timestamp: 1738298385933
+- conda: https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2025.1.31-h56e8100_0.conda
+ sha256: 1bedccdf25a3bd782d6b0e57ddd97cdcda5501716009f2de4479a779221df155
+ md5: 5304a31607974dfc2110dfbb662ed092
+ license: ISC
+ size: 158690
+ timestamp: 1738298232550
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cctools-1010.6-ha66f10e_3.conda
+ sha256: c2fa3a11ab0576ca569f6d4e349c1e4dc9f864fb9f8c85c09a427f7fbd3feb96
+ md5: 35dcc7020f26efb8baf60ce6fa0b0c36
+ depends:
+ - cctools_osx-64 1010.6 hd19c6af_3
+ - ld64 951.9 h4e51db5_3
+ - libllvm18 >=18.1.8,<18.2.0a0
+ license: APSL-2.0
+ license_family: Other
+ size: 21297
+ timestamp: 1738620872016
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cctools-1024.3-h67a6458_0.conda
+ sha256: 7a4dea5460a9094c02e9df4d0064be3c84b108ca54bd41b000577afa6f9914f7
+ md5: a6698215b42b9310815ef3b9d95d0fc9
+ depends:
+ - cctools_osx-64 1024.3 haa85c18_0
+ - ld64 955.13 hc3792c1_0
+ - libllvm19 >=19.1.7,<19.2.0a0
+ license: APSL-2.0
+ license_family: Other
+ purls: []
+ size: 20743
+ timestamp: 1756212761738
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-1010.6-hd19c6af_3.conda
+ sha256: 2694cafb16b591c6c0008b9862c2da45c5b618381aaa229a4b32f71df04cfcc0
+ md5: b360b015bfbce96ceecc3e6eb85aed11
+ depends:
+ - __osx >=10.13
+ - ld64_osx-64 >=951.9,<951.10.0a0
+ - libcxx
+ - libllvm18 >=18.1.8,<18.2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - llvm-tools 18.1.*
+ - sigtool
+ constrains:
+ - cctools 1010.6.*
+ - ld64 951.9.*
+ - clang 18.1.*
+ license: APSL-2.0
+ license_family: Other
+ size: 1121052
+ timestamp: 1738620829929
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cctools_osx-64-1024.3-haa85c18_0.conda
+ sha256: 0c95e7dc7b2df006b97485a8eae953758fa15bf68c11b8f3919ba7c1053370ef
+ md5: ee3c3fec64ee60639cf1e1b3e3b55ea7
+ depends:
+ - __osx >=10.13
+ - ld64_osx-64 >=955.13,<955.14.0a0
+ - libcxx
+ - libllvm19 >=19.1.7,<19.2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - llvm-tools 19.1.*
+ - sigtool
+ constrains:
+ - clang 19.1.*
+ - ld64 955.13.*
+ - cctools 1024.3.*
+ license: APSL-2.0
+ license_family: Other
+ purls: []
+ size: 741390
+ timestamp: 1756212731349
+- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.8.3-pyhd8ed1ab_0.conda
+ sha256: a1ad5b0a2a242f439608f22a538d2175cac4444b7b3f4e2b8c090ac337aaea40
+ md5: 11f59985f49df4620890f3e746ed7102
+ depends:
+ - python >=3.9
+ license: ISC
+ purls:
+ - pkg:pypi/certifi?source=compressed-mapping
+ size: 158692
+ timestamp: 1754231530168
+- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda
+ sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457
+ md5: a861504bbea4161a9170b85d4d2be840
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libffi >=3.4,<4.0a0
+ - libgcc >=13
+ - pycparser
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/cffi?source=hash-mapping
+ size: 294403
+ timestamp: 1725560714366
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-1.17.1-py312hf857d28_0.conda
+ sha256: 94fe49aed25d84997e2630d6e776a75ee2a85bd64f258702c57faa4fe2986902
+ md5: 5bbc69b8194fedc2792e451026cac34f
+ depends:
+ - __osx >=10.13
+ - libffi >=3.4,<4.0a0
+ - pycparser
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/cffi?source=hash-mapping
+ size: 282425
+ timestamp: 1725560725144
+- conda: https://conda.anaconda.org/conda-forge/win-64/cffi-1.17.1-py312h4389bb4_0.conda
+ sha256: ac007bf5fd56d13e16d95eea036433012f2e079dc015505c8a79efebbad1fcbc
+ md5: 08310c1a22ef957d537e547f8d484f92
+ depends:
+ - pycparser
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/cffi?source=hash-mapping
+ size: 288142
+ timestamp: 1725560896359
+- conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h6aadc51_0.conda
+ sha256: 3e462f93064c9a0159bb1cf3a5433fa03917d12d3631477646e83d5a6e3dd982
+ md5: 3dc6d2006e420dfd77374298f871e45e
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - eigen
+ - libboost >=1.86.0,<1.87.0a0
+ - libboost-devel
+ - libgcc >=13
+ - libstdcxx >=13
+ - mpfr >=4.2.1,<5.0a0
+ license: GPL3/LGPL3
+ size: 5868980
+ timestamp: 1729765220331
+- conda: https://conda.anaconda.org/conda-forge/linux-64/cgal-cpp-6.0.1-h9b37d73_1.conda
+ sha256: 77942d4f054e99faa7847cac883a6298dd26e4f997b251e7992f36efcd202da1
+ md5: 257f168056bc44e0cbc6351c8e913234
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - eigen
+ - libboost >=1.88.0,<1.89.0a0
+ - libboost-devel
+ - libgcc >=14
+ - libstdcxx >=14
+ - mpfr >=4.2.1,<5.0a0
+ license: GPL3/LGPL3
+ purls: []
+ size: 5866779
+ timestamp: 1753275161432
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cgal-cpp-6.0.1-h20ba9b8_0.conda
+ sha256: 948be4f7c3f89b96d3af81fd98d6757943b674b4cba64a1a56540344a2108faa
+ md5: 981fcaecfb2dc8ccada88b02b6fb9b6a
+ depends:
+ - __osx >=10.13
+ - eigen
+ - libboost >=1.86.0,<1.87.0a0
+ - libboost-devel
+ - libcxx >=17
+ - mpfr >=4.2.1,<5.0a0
+ license: GPL3/LGPL3
+ size: 5875258
+ timestamp: 1729765412521
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cgal-cpp-6.0.1-hcb3e410_1.conda
+ sha256: 34e59b82abd791cec280e740737173cfac4c52575a65145b6b493339a5cac52e
+ md5: 44cd1b5233adf2920933bd961bae951f
+ depends:
+ - __osx >=10.13
+ - eigen
+ - libboost >=1.88.0,<1.89.0a0
+ - libboost-devel
+ - libcxx >=19
+ - mpfr >=4.2.1,<5.0a0
+ license: GPL3/LGPL3
+ purls: []
+ size: 5887000
+ timestamp: 1753275378338
+- conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-h31bd75c_0.conda
+ sha256: 53002381648f1e9bc9b8596494b52631827910b4e073eda9ed24c916641c8d87
+ md5: f9defd692bff41e9771b90aa6aae23ec
+ depends:
+ - eigen
+ - libboost >=1.86.0,<1.87.0a0
+ - libboost-devel
+ - mpfr >=4.2.1,<5.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: GPL3/LGPL3
+ size: 5852917
+ timestamp: 1729765382648
+- conda: https://conda.anaconda.org/conda-forge/win-64/cgal-cpp-6.0.1-hc4f255e_1.conda
+ sha256: a1f688c4534805745ecdf5af56693e51cc9f08ca229aa0833b9bcd8d38809319
+ md5: 1d24d2a3da87350a846ab3bdbd4b9396
+ depends:
+ - eigen
+ - libboost >=1.88.0,<1.89.0a0
+ - libboost-devel
+ - mpfr >=4.2.1,<5.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: GPL3/LGPL3
+ purls: []
+ size: 5890254
+ timestamp: 1753275328387
+- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.3-pyhd8ed1ab_0.conda
+ sha256: 838d5a011f0e7422be6427becba3de743c78f3874ad2743c341accbba9bb2624
+ md5: 7e7d5ef1b9ed630e4a1c358d6bc62284
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/charset-normalizer?source=hash-mapping
+ size: 51033
+ timestamp: 1754767444665
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clang-18.1.8-default_h576c50e_7.conda
+ sha256: def6d2facf51e34dca06f3e9063c52fadb096783d7d8d601f309380f14ce5810
+ md5: 623987a715f5fb4cbee8f059d91d0397
+ depends:
+ - clang-18 18.1.8 default_h3571c67_7
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 71151
+ timestamp: 1738270236118
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clang-19.1.7-default_h576c50e_3.conda
+ sha256: 838abc0a72f1227cac837b9350809d7c852e5e4e69952b21789f12ae1557bcce
+ md5: 7b5ece07d175b7175b4a544f9835683a
+ depends:
+ - clang-19 19.1.7 default_h3571c67_3
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 24253
+ timestamp: 1747709797405
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clang-18-18.1.8-default_h3571c67_7.conda
+ sha256: 3a74de8af6896d276847332c1a350bab3c1791a13090588463edf4fabf9d424d
+ md5: 098293f10df1166408bac04351b917c5
+ depends:
+ - __osx >=10.13
+ - libclang-cpp18.1 18.1.8 default_h3571c67_7
+ - libcxx >=18.1.8
+ - libllvm18 >=18.1.8,<18.2.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 807874
+ timestamp: 1738270127631
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clang-19-19.1.7-default_h3571c67_3.conda
+ sha256: 6ff0928325ea99a65b1c3dc0a212fd0cb5b65884657c8d3c0bcffc038d092431
+ md5: 5bd5cda534488611b3970b768139127c
+ depends:
+ - __osx >=10.13
+ - libclang-cpp19.1 19.1.7 default_h3571c67_3
+ - libcxx >=19.1.7
+ - libllvm19 >=19.1.7,<19.2.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 766607
+ timestamp: 1747709700983
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-18.1.8-h6a44ed1_23.conda
+ sha256: 1b6d10afcfc661500f98c81a3c6bf55a923e75ce74bc404e84c99f030fd647de
+ md5: 3f2a260a1febaafa4010aac7c2771c9e
+ depends:
+ - cctools_osx-64
+ - clang 18.1.8.*
+ - compiler-rt 18.1.8.*
+ - ld64_osx-64
+ - llvm-tools 18.1.8.*
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 17783
+ timestamp: 1731984965328
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clang_impl_osx-64-19.1.7-hc73cdc9_25.conda
+ sha256: 88edc0b34affbfffcec5ffea59b432ee3dd114124fd4d5f992db6935421f4a64
+ md5: 76954503be09430fb7f4683a61ffb7b0
+ depends:
+ - cctools_osx-64
+ - clang 19.1.7.*
+ - compiler-rt 19.1.7.*
+ - ld64_osx-64
+ - llvm-tools 19.1.7.*
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 18175
+ timestamp: 1748575764900
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-18.1.8-h7e5c614_23.conda
+ sha256: 07348ac1da6697b72623be27f145c0fbaa03a123244a0289f1c6779a889e8339
+ md5: 207116d6cb3762c83661bb49e6976e7d
+ depends:
+ - clang_impl_osx-64 18.1.8 h6a44ed1_23
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 21092
+ timestamp: 1731984970165
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clang_osx-64-19.1.7-h7e5c614_25.conda
+ sha256: 6435fdeae76f72109bc9c7b41596104075a2a8a9df3ee533bd98bb06548bbc83
+ md5: a526ba9df7e7d5448d57b33941614dae
+ depends:
+ - clang_impl_osx-64 19.1.7 hc73cdc9_25
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 21473
+ timestamp: 1748575768567
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx-18.1.8-default_heb2e8d1_7.conda
+ sha256: a1b0a353fbc465034ceafa6dbf3cf6e4ce9be07088bb38e44e30c9ab1265057e
+ md5: f2ec690c4ac8d9e6ffbf3be019d68170
+ depends:
+ - clang 18.1.8 default_h576c50e_7
+ - libcxx-devel 18.1.8.*
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 71187
+ timestamp: 1738270260674
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx-19.1.7-default_heb2e8d1_3.conda
+ sha256: 5870bdbd2c15abf84692f6069b2181a7a28f76451b28fc8e986b978d4f5c577f
+ md5: 1c1bbb9fb93dcf58f4dc6e308b1af083
+ depends:
+ - clang 19.1.7 default_h576c50e_3
+ - libcxx-devel 19.1.*
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 24370
+ timestamp: 1747709814665
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-18.1.8-h4b7810f_23.conda
+ sha256: f8b2b92c1389ddaadf3eb8f11d63403fcbb5b532299d9f86f54cc1f256fad1c0
+ md5: 8f15135d550beba3e9a0af94661bed16
+ depends:
+ - clang_osx-64 18.1.8 h7e5c614_23
+ - clangxx 18.1.8.*
+ - libcxx >=18
+ - libllvm18 >=18.1.8,<18.2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 17821
+ timestamp: 1731984993303
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_impl_osx-64-19.1.7-hb295874_25.conda
+ sha256: 8a2571da4bd90e3fc4523e962d6562607df133694a409959ec9c7ac4292bd676
+ md5: 9fe0247ba2650f90c650001f88a87076
+ depends:
+ - clang_osx-64 19.1.7 h7e5c614_25
+ - clangxx 19.1.7.*
+ - libcxx >=19
+ - libllvm19 >=19.1.7,<19.2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 18289
+ timestamp: 1748575802444
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-18.1.8-h7e5c614_23.conda
+ sha256: 36315114552b56069cc6792289b119ab62d311f435d9abd98a4cc61a857c2970
+ md5: b6ee451fb82e7e27ea070cbac3117d59
+ depends:
+ - clang_osx-64 18.1.8 h7e5c614_23
+ - clangxx_impl_osx-64 18.1.8 h4b7810f_23
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 19451
+ timestamp: 1731984998897
+- conda: https://conda.anaconda.org/conda-forge/osx-64/clangxx_osx-64-19.1.7-h7e5c614_25.conda
+ sha256: 81365d98e1bb5f98a7acd1bde86ccf534b36c78bfae601e2c26a73d8de52da1e
+ md5: d0b5d9264d40ae1420e31c9066a1dcf0
+ depends:
+ - clang_osx-64 19.1.7 h7e5c614_25
+ - clangxx_impl_osx-64 19.1.7 hb295874_25
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 19873
+ timestamp: 1748575806458
+- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda
+ sha256: 8aee789c82d8fdd997840c952a586db63c6890b00e88c4fb6e80a38edd5f51c0
+ md5: 94b550b8d3a614dbd326af798c7dfb40
+ depends:
+ - __unix
+ - python >=3.10
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/click?source=hash-mapping
+ size: 87749
+ timestamp: 1747811451319
+- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh7428d3b_0.conda
+ sha256: 20c2d8ea3d800485245b586a28985cba281dd6761113a49d7576f6db92a0a891
+ md5: 3a59475037bc09da916e4062c5cad771
+ depends:
+ - __win
+ - colorama
+ - python >=3.10
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/click?source=hash-mapping
+ size: 88117
+ timestamp: 1747811467132
+- conda: https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.4-pyhd8ed1ab_1.conda
+ sha256: cb7279eecddbd35ea78fd0e189a9a7db8b84c2c0e3b1271cf26251615f75dc4d
+ md5: 7cd83dd6831b61ad9624a694e4afd7dc
+ depends:
+ - click
+ - python >=3.9
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/click-default-group?source=hash-mapping
+ size: 10124
+ timestamp: 1734029586298
+- conda: https://conda.anaconda.org/conda-forge/linux-64/cmake-3.30.5-hf9cb763_0.conda
+ sha256: 9b775bbdee337d67b180b6fbc6c93fa1ba73a18b167c242d792dee2797245148
+ md5: b3b88a7ec6372b6f2c0ddb31ee009ebd
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - bzip2 >=1.0.8,<2.0a0
+ - libcurl >=8.10.1,<9.0a0
+ - libexpat >=2.6.3,<3.0a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - libuv >=1.49.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ncurses >=6.5,<7.0a0
+ - rhash >=1.4.4,<2.0a0
+ - xz >=5.2.6,<6.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 19606674
+ timestamp: 1728416480376
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cmake-3.30.5-h7243fc2_0.conda
+ sha256: 09aa49a9f068233e4d98688268465f431426a338c115c56517c3c3193198d07b
+ md5: 826e05dc51e8a9e4d10680f37e267b68
+ depends:
+ - __osx >=10.13
+ - bzip2 >=1.0.8,<2.0a0
+ - libcurl >=8.10.1,<9.0a0
+ - libcxx >=17
+ - libexpat >=2.6.3,<3.0a0
+ - libuv >=1.49.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ncurses >=6.5,<7.0a0
+ - rhash >=1.4.4,<2.0a0
+ - xz >=5.2.6,<6.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 17507220
+ timestamp: 1728417253023
+- conda: https://conda.anaconda.org/conda-forge/win-64/cmake-3.30.5-h400e5d1_0.conda
+ sha256: f1df2ab533ffed1a544ab0672bd09abeaee36cadf59c12f8564b03237779b3d3
+ md5: 4b84d88fe13e33dd1cad2deaac3fbcf4
+ depends:
+ - bzip2 >=1.0.8,<2.0a0
+ - libcurl >=8.10.1,<9.0a0
+ - libexpat >=2.6.3,<3.0a0
+ - libuv >=1.49.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc14_runtime >=14.29.30139
+ - xz >=5.2.6,<6.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 14357142
+ timestamp: 1728417628536
+- conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda
+ sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287
+ md5: 962b9857ee8e7018c22f2776ffa0b2d7
+ depends:
+ - python >=3.9
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/colorama?source=hash-mapping
+ size: 27011
+ timestamp: 1733218222191
+- conda: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-18.1.8-h1020d70_1.conda
+ sha256: 30bd259ad8909c02ee9da8b13bf7c9f6dc0f4d6fa3c5d1cd82213180ca5f9c03
+ md5: bc1714a1e73be18e411cff30dc1fe011
+ depends:
+ - __osx >=10.13
+ - clang 18.1.8.*
+ - clangxx 18.1.8.*
+ - compiler-rt_osx-64 18.1.8.*
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ size: 95345
+ timestamp: 1725258125808
+- conda: https://conda.anaconda.org/conda-forge/osx-64/compiler-rt-19.1.7-h52031e2_0.conda
+ sha256: 781b70f7475d387183fba59b5d88e874ec976458b893ec4e8c4c2564944aa680
+ md5: 8098d99b4c30adb2f9cc18f8584d0b45
+ depends:
+ - __osx >=10.13
+ - clang 19.1.7.*
+ - compiler-rt_osx-64 19.1.7.*
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ purls: []
+ size: 96517
+ timestamp: 1736976706563
+- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-18.1.8-hf2b8a54_1.conda
+ sha256: 1230fe22d190002693ba77cf8af754416d6ea7121707b74a7cd8ddc537f98bdb
+ md5: 76f906e6bdc58976c5593f650290ae20
+ depends:
+ - clang 18.1.8.*
+ - clangxx 18.1.8.*
+ constrains:
+ - compiler-rt 18.1.8
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ size: 10420490
+ timestamp: 1725258080385
+- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt_osx-64-19.1.7-hc6f8467_0.conda
+ sha256: bc64b862791161f90adb0e9b91290091604a3791e4434cb3901c13101136255b
+ md5: d5216811ea499344af3f05f71b922637
+ depends:
+ - clang 19.1.7.*
+ constrains:
+ - compiler-rt 19.1.7
+ - clangxx 19.1.7
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ purls: []
+ size: 10666253
+ timestamp: 1736976649189
+- conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.3.0-hb991d5c_4.conda
+ sha256: 275a7a6c627ded925e98a94162d4efd7ad578731915334831ee8881b34aecad1
+ md5: b6025bc20bf223d68402821f181707fb
+ depends:
+ - gcc_impl_linux-64 >=14.3.0,<14.3.1.0a0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 33272
+ timestamp: 1753905153853
+- conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.11.0-hfcd1e18_0.conda
+ sha256: 3fcc97ae3e89c150401a50a4de58794ffc67b1ed0e1851468fcc376980201e25
+ md5: 5da8c935dca9186673987f79cef0b2a5
+ depends:
+ - c-compiler 1.11.0 h4d9bdce_0
+ - gxx
+ - gxx_linux-64 14.*
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6635
+ timestamp: 1753098722177
+- conda: https://conda.anaconda.org/conda-forge/linux-64/cxx-compiler-1.9.0-h1a2810e_0.conda
+ sha256: 5efc51b8e7d87fc5380f00ace9f9c758142eade520a63d3631d2616d1c1b25f9
+ md5: 1ce8b218d359d9ed0ab481f2a3f3c512
+ depends:
+ - c-compiler 1.9.0 h2b85faf_0
+ - gxx
+ - gxx_linux-64 13.*
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6168
+ timestamp: 1736437002465
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.11.0-h307afc9_0.conda
+ sha256: d6976f8d8b51486072abfe1e76a733688380dcbd1a8e993a43d59b80f7288478
+ md5: 463bb03bb27f9edc167fb3be224efe96
+ depends:
+ - c-compiler 1.11.0 h7a00415_0
+ - clangxx_osx-64 19.*
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6732
+ timestamp: 1753098827160
+- conda: https://conda.anaconda.org/conda-forge/osx-64/cxx-compiler-1.9.0-h20888b2_0.conda
+ sha256: 05ba8e40b4ff53c3326a8e0adcf63ba9514b614435da737c5b8942eed64ef729
+ md5: cd17d9bf9780b0db4ed31fb9958b167f
+ depends:
+ - c-compiler 1.9.0 h09a7c41_0
+ - clangxx_osx-64 18.*
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6256
+ timestamp: 1736437074458
+- conda: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.11.0-h1c1089f_0.conda
+ sha256: c888f4fe9ec117c1c01bfaa4c722ca475ebbb341c92d1718afa088bb0d710619
+ md5: 4d94d3c01add44dc9d24359edf447507
+ depends:
+ - vs2022_win-64
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6957
+ timestamp: 1753098809481
+- conda: https://conda.anaconda.org/conda-forge/win-64/cxx-compiler-1.9.0-h91493d7_0.conda
+ sha256: b7ebc992f8ff3d5f9f40ea3555534440a0438fead4dd5d1dea60113ce224b487
+ md5: 6c4b643c7dd8f13dafc8679ffc5671eb
+ depends:
+ - vs2019_win-64
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6528
+ timestamp: 1736437098756
+- conda: https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.7-pyhd8ed1ab_0.conda
+ sha256: 290a1d9935947c72d90781efad59d7be36fc3e6c9ce4bf5d5478804ce9070006
+ md5: b1e2509c25d36f7b19ceb42193120071
+ depends:
+ - charset-normalizer >=3.0.0
+ - python >=3.9
+ - untokenize >=0.1.1
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/docformatter?source=hash-mapping
+ size: 30130
+ timestamp: 1746994987190
+- conda: https://conda.anaconda.org/conda-forge/linux-64/eigen-3.4.0-h00ab1b0_0.conda
+ sha256: 53b15a98aadbe0704479bacaf7a5618fcb32d1577be320630674574241639b34
+ md5: b1b879d6d093f55dd40d58b5eb2f0699
+ depends:
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ license: MPL-2.0
+ license_family: MOZILLA
+ purls: []
+ size: 1088433
+ timestamp: 1690272126173
+- conda: https://conda.anaconda.org/conda-forge/osx-64/eigen-3.4.0-h1c7c39f_0.conda
+ sha256: 187c0677e0cdcdc39aed716687a6290dd5b7f52b49eedaef2ed76be6cd0a5a3d
+ md5: 5b2cfc277e3d42d84a2a648825761156
+ depends:
+ - libcxx >=15.0.7
+ license: MPL-2.0
+ license_family: MOZILLA
+ purls: []
+ size: 1090184
+ timestamp: 1690272503232
+- conda: https://conda.anaconda.org/conda-forge/win-64/eigen-3.4.0-h91493d7_0.conda
+ sha256: 633a6a8db1f9a010cb0619f3446fb61f62dea348b09615ffae9744ab1001c24c
+ md5: 305b3ca7023ac046b9a42a48661f6512
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MPL-2.0
+ license_family: MOZILLA
+ purls: []
+ size: 1089706
+ timestamp: 1690273089254
+- conda: https://conda.anaconda.org/conda-forge/noarch/elementpath-5.0.4-pyhd8ed1ab_0.conda
+ sha256: 6c366e1d56ffb2e111fe60177a3de38ce464de58765f69b34437e06c8f1daf32
+ md5: 04148798af7d259f25726da3216cc058
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/elementpath?source=hash-mapping
+ size: 175341
+ timestamp: 1755379273161
+- conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda
+ sha256: ce61f4f99401a4bd455b89909153b40b9c823276aefcbb06f2044618696009ca
+ md5: 72e42d28960d875c7654614f8b50939a
+ depends:
+ - python >=3.9
+ - typing_extensions >=4.6.0
+ license: MIT and PSF-2.0
+ purls:
+ - pkg:pypi/exceptiongroup?source=hash-mapping
+ size: 21284
+ timestamp: 1746947398083
+- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2
+ sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b
+ md5: 0c96522c6bdaed4b1566d11387caaf45
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 397370
+ timestamp: 1566932522327
+- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2
+ sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c
+ md5: 34893075a5c9e55cdafac56607368fc6
+ license: OFL-1.1
+ license_family: Other
+ purls: []
+ size: 96530
+ timestamp: 1620479909603
+- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2
+ sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139
+ md5: 4d59c254e01d9cde7957100457e2d5fb
+ license: OFL-1.1
+ license_family: Other
+ purls: []
+ size: 700814
+ timestamp: 1620479612257
+- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda
+ sha256: 2821ec1dc454bd8b9a31d0ed22a7ce22422c0aef163c59f49dfdf915d0f0ca14
+ md5: 49023d73832ef61042f6a237cb2687e7
+ license: LicenseRef-Ubuntu-Font-Licence-Version-1.0
+ license_family: Other
+ purls: []
+ size: 1620504
+ timestamp: 1727511233259
+- conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda
+ sha256: 7093aa19d6df5ccb6ca50329ef8510c6acb6b0d8001191909397368b65b02113
+ md5: 8f5b0b297b59e1ac160ad4beec99dbee
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - freetype >=2.12.1,<3.0a0
+ - libexpat >=2.6.3,<3.0a0
+ - libgcc >=13
+ - libuuid >=2.38.1,<3.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 265599
+ timestamp: 1730283881107
+- conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.15.0-h37eeddb_1.conda
+ sha256: 61a9aa1d2dd115ffc1ab372966dc8b1ac7b69870e6b1744641da276b31ea5c0b
+ md5: 84ccec5ee37eb03dd352db0a3f89ada3
+ depends:
+ - __osx >=10.13
+ - freetype >=2.12.1,<3.0a0
+ - libexpat >=2.6.3,<3.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 232313
+ timestamp: 1730283983397
+- conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda
+ sha256: ed122fc858fb95768ca9ca77e73c8d9ddc21d4b2e13aaab5281e27593e840691
+ md5: 9bb0026a2131b09404c59c4290c697cd
+ depends:
+ - freetype >=2.12.1,<3.0a0
+ - libexpat >=2.6.3,<3.0a0
+ - libiconv >=1.17,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 192355
+ timestamp: 1730284147944
+- conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2
+ sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61
+ md5: fee5683a3f04bd15cbd8318b096a27ab
+ depends:
+ - fonts-conda-forge
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 3667
+ timestamp: 1566974674465
+- conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2
+ sha256: 53f23a3319466053818540bcdf2091f253cbdbab1e0e9ae7b9e509dcaa2a5e38
+ md5: f766549260d6815b0c52253f1fb1bb29
+ depends:
+ - font-ttf-dejavu-sans-mono
+ - font-ttf-inconsolata
+ - font-ttf-source-code-pro
+ - font-ttf-ubuntu
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 4102
+ timestamp: 1566932280397
+- conda: https://conda.anaconda.org/conda-forge/linux-64/freeglut-3.2.2-ha6d2627_3.conda
+ sha256: 676540a8e7f73a894cb1fcb870e7bec623ec1c0a2d277094fd713261a02d8d56
+ md5: 84ec3f5b46f3076be49f2cf3f1cfbf02
+ depends:
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ - libxcb >=1.16,<2.0.0a0
+ - xorg-libx11 >=1.8.9,<2.0a0
+ - xorg-libxau >=1.0.11,<2.0a0
+ - xorg-libxext >=1.3.4,<2.0a0
+ - xorg-libxfixes
+ - xorg-libxi
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 144010
+ timestamp: 1719014356708
+- conda: https://conda.anaconda.org/conda-forge/win-64/freeglut-3.2.2-he0c23c2_3.conda
+ sha256: 8b41913ed6c8c0dadda463a649bc16f45e88faa58553efc6830f4de1138c97f2
+ md5: 5872031ef7cba8435ff24af056777473
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 111956
+ timestamp: 1719014753462
+- conda: https://conda.anaconda.org/conda-forge/linux-64/freeimage-3.18.0-h3a85593_22.conda
+ sha256: 03ccff5d255eab7a1736de9eeb539fbb1333036fa5e37ea7c8ec428270067c99
+ md5: bbdf3d43d752b793ac81f27b28c49e2d
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - imath >=3.1.12,<3.1.13.0a0
+ - jxrlib >=1.1,<1.2.0a0
+ - libgcc >=13
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libpng >=1.6.44,<1.7.0a0
+ - libraw >=0.21.3,<0.22.0a0
+ - libstdcxx >=13
+ - libtiff >=4.7.0,<4.8.0a0
+ - libwebp-base >=1.4.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openexr >=3.3.1,<3.4.0a0
+ - openjpeg >=2.5.2,<3.0a0
+ license: GPL-2.0-or-later OR GPL-3.0-or-later OR FreeImage
+ purls: []
+ size: 467860
+ timestamp: 1729024045245
+- conda: https://conda.anaconda.org/conda-forge/osx-64/freeimage-3.18.0-h7cd8ba8_22.conda
+ sha256: 89553f22495b2e22b8f603126d6a580cc0cbc5517e9c0dff4be4a3e9055f8f56
+ md5: 4ea546f119eaf4a1457ded2054982d52
+ depends:
+ - __osx >=10.13
+ - imath >=3.1.12,<3.1.13.0a0
+ - jxrlib >=1.1,<1.2.0a0
+ - libcxx >=17
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libpng >=1.6.44,<1.7.0a0
+ - libraw >=0.21.3,<0.22.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ - libwebp-base >=1.4.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openexr >=3.3.1,<3.4.0a0
+ - openjpeg >=2.5.2,<3.0a0
+ license: GPL-2.0-or-later OR GPL-3.0-or-later OR FreeImage
+ purls: []
+ size: 410944
+ timestamp: 1729024174328
+- conda: https://conda.anaconda.org/conda-forge/win-64/freeimage-3.18.0-h8310ca0_22.conda
+ sha256: 89ff5bd00c94d201b76f90b939cbd9ec013171c45d9967f7dac71d330cd10343
+ md5: 5c8c15da921f6a9388d37c4fc81dad4a
+ depends:
+ - imath >=3.1.12,<3.1.13.0a0
+ - jxrlib >=1.1,<1.2.0a0
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libpng >=1.6.44,<1.7.0a0
+ - libraw >=0.21.3,<0.22.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ - libwebp-base >=1.4.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openexr >=3.3.1,<3.4.0a0
+ - openjpeg >=2.5.2,<3.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: GPL-2.0-or-later OR GPL-3.0-or-later OR FreeImage
+ purls: []
+ size: 465887
+ timestamp: 1729024520954
+- conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda
+ sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6
+ md5: 9ae35c3d96db2c94ce0cef86efdfa2cb
+ depends:
+ - libgcc-ng >=12
+ - libpng >=1.6.39,<1.7.0a0
+ - libzlib >=1.2.13,<2.0.0a0
+ license: GPL-2.0-only OR FTL
+ size: 634972
+ timestamp: 1694615932610
+- conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.13.3-ha770c72_1.conda
+ sha256: 7ef7d477c43c12a5b4cddcf048a83277414512d1116aba62ebadfa7056a7d84f
+ md5: 9ccd736d31e0c6e41f54e704e5312811
+ depends:
+ - libfreetype 2.13.3 ha770c72_1
+ - libfreetype6 2.13.3 h48d6fc4_1
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 172450
+ timestamp: 1745369996765
+- conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.12.1-h60636b9_2.conda
+ sha256: b292cf5a25f094eeb4b66e37d99a97894aafd04a5683980852a8cbddccdc8e4e
+ md5: 25152fce119320c980e5470e64834b50
+ depends:
+ - libpng >=1.6.39,<1.7.0a0
+ - libzlib >=1.2.13,<2.0.0a0
+ license: GPL-2.0-only OR FTL
+ size: 599300
+ timestamp: 1694616137838
+- conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.13.3-h694c41f_1.conda
+ sha256: e2870e983889eec73fdc0d4ab27d3f6501de4750ffe32d7d0a3a287f00bc2f15
+ md5: 126dba1baf5030cb6f34533718924577
+ depends:
+ - libfreetype 2.13.3 h694c41f_1
+ - libfreetype6 2.13.3 h40dfd5c_1
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 172649
+ timestamp: 1745370231293
+- conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.12.1-hdaf720e_2.conda
+ sha256: 2c53ee8879e05e149a9e525481d36adfd660a6abda26fd731376fa64ff03e728
+ md5: 3761b23693f768dc75a8fd0a73ca053f
+ depends:
+ - libpng >=1.6.39,<1.7.0a0
+ - libzlib >=1.2.13,<2.0.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: GPL-2.0-only OR FTL
+ size: 510306
+ timestamp: 1694616398888
+- conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.13.3-h57928b3_1.conda
+ sha256: 0bcc9c868d769247c12324f957c97c4dbee7e4095485db90d9c295bcb3b1bb43
+ md5: 633504fe3f96031192e40e3e6c18ef06
+ depends:
+ - libfreetype 2.13.3 h57928b3_1
+ - libfreetype6 2.13.3 h0b5ce68_1
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 184162
+ timestamp: 1745370242683
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-13.3.0-h9576a4e_1.conda
+ sha256: d0161362430183cbdbc3db9cf95f9a1af1793027f3ab8755b3d3586deb28bf84
+ md5: 606924335b5bcdf90e9aed9a2f5d22ed
+ depends:
+ - gcc_impl_linux-64 13.3.0.*
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 53864
+ timestamp: 1724801360210
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-14.3.0-h76bdaa0_4.conda
+ sha256: ded010fa43178225054436cfc24c1cc74e1f17303f39442b5254422e2f8a0b2d
+ md5: 7e8d408ed45953d8a9fd5e9c5d44ab2d
+ depends:
+ - conda-gcc-specs
+ - gcc_impl_linux-64 14.3.0.*
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 31016
+ timestamp: 1753905350635
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-13.3.0-hfea6d02_1.conda
+ sha256: 998ade1d487e93fc8a7a16b90e2af69ebb227355bf4646488661f7ae5887873c
+ md5: 0d043dbc126b64f79d915a0e96d3a1d5
+ depends:
+ - binutils_impl_linux-64 >=2.40
+ - libgcc >=13.3.0
+ - libgcc-devel_linux-64 13.3.0 h84ea5a7_101
+ - libgomp >=13.3.0
+ - libsanitizer 13.3.0 heb74ff8_1
+ - libstdcxx >=13.3.0
+ - sysroot_linux-64
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 67464415
+ timestamp: 1724801227937
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.3.0-hd9e9e21_4.conda
+ sha256: 70dd8f8cf040ffcb073c98651aaae614f4db4d76d0c9928a5aea0309a3b29722
+ md5: 18005317e139bb60f4c5d3ef9cc46b85
+ depends:
+ - binutils_impl_linux-64 >=2.40
+ - libgcc >=14.3.0
+ - libgcc-devel_linux-64 14.3.0 h85bb3a7_104
+ - libgomp >=14.3.0
+ - libsanitizer 14.3.0 hd08acf3_4
+ - libstdcxx >=14.3.0
+ - sysroot_linux-64
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 71083505
+ timestamp: 1753904987887
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-13.3.0-hc28eda2_7.conda
+ sha256: 1e5ac50580a68fdc7d2f5722abcf1a87898c24b1ab6eb5ecd322634742d93645
+ md5: ac23afbf5805389eb771e2ad3b476f75
+ depends:
+ - binutils_linux-64
+ - gcc_impl_linux-64 13.3.0.*
+ - sysroot_linux-64
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 32005
+ timestamp: 1731939593317
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-14.3.0-h1382650_11.conda
+ sha256: 0d7fe52c578ef99f03defe8cab5308124b388c694e88f5494716d11532a6d12a
+ md5: 2e650506e6371ac4289c9bf7fc207f3b
+ depends:
+ - binutils_linux-64
+ - gcc_impl_linux-64 14.3.0.*
+ - sysroot_linux-64
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 32512
+ timestamp: 1748905876846
+- conda: https://conda.anaconda.org/conda-forge/linux-64/geos-3.13.1-h97f6797_0.conda
+ sha256: 3a9c854fa8cf1165015b6ee994d003c3d6a8b0f532ca22b6b29cd6e8d03942ed
+ md5: 5bc18c66111bc94532b0d2df00731c66
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ license: LGPL-2.1-only
+ purls: []
+ size: 1871567
+ timestamp: 1741051481612
+- conda: https://conda.anaconda.org/conda-forge/osx-64/geos-3.13.1-h502464c_0.conda
+ sha256: d2ec00b2600ebda6ec5f953d5e65eacdb66f356acc7dd952bb42e2bf7a22b602
+ md5: 480d6bc3033367f3d7b412cc5a9e0819
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ license: LGPL-2.1-only
+ purls: []
+ size: 1562536
+ timestamp: 1741051661501
+- conda: https://conda.anaconda.org/conda-forge/win-64/geos-3.13.1-h9ea8674_0.conda
+ sha256: 8b2dd4b831ddac64584d49b50f0547c90f5b352a7ec62f941686bb59c21d6055
+ md5: 2ebe8eb886545cdc287324d41186a698
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: LGPL-2.1-only
+ purls: []
+ size: 1703268
+ timestamp: 1741052039669
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hac33072_2.conda
+ sha256: 309cf4f04fec0c31b6771a5809a1909b4b3154a2208f52351e1ada006f4c750c
+ md5: c94a5994ef49749880a8139cf9afcbe1
+ depends:
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ license: GPL-2.0-or-later OR LGPL-3.0-or-later
+ purls: []
+ size: 460055
+ timestamp: 1718980856608
+- conda: https://conda.anaconda.org/conda-forge/osx-64/gmp-6.3.0-hf036a51_2.conda
+ sha256: 75aa5e7a875afdcf4903b7dc98577672a3dc17b528ac217b915f9528f93c85fc
+ md5: 427101d13f19c4974552a4e5b072eef1
+ depends:
+ - __osx >=10.13
+ - libcxx >=16
+ license: GPL-2.0-or-later OR LGPL-3.0-or-later
+ purls: []
+ size: 428919
+ timestamp: 1718981041839
+- conda: https://conda.anaconda.org/conda-forge/win-64/gmp-6.3.0-hfeafd45_2.conda
+ sha256: 664311ea9164898f72d43b7ebf591b1a337d574cbb0d5026b4a8f21000dc8b29
+ md5: 74558de25a206a7dff062fd4f5ff2d8b
+ depends:
+ - libgcc >=13
+ - libwinpthread >=12.0.0.r2.ggc561118da
+ - ucrt >=10.0.20348.0
+ constrains:
+ - mpir <0.0a0
+ license: GPL-2.0-or-later OR LGPL-3.0-or-later
+ purls: []
+ size: 567053
+ timestamp: 1718982076982
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-13.3.0-h9576a4e_1.conda
+ sha256: 5446f5d1d609d996579f706d2020e83ef48e086d943bfeef7ab807ea246888a0
+ md5: 209182ca6b20aeff62f442e843961d81
+ depends:
+ - gcc 13.3.0.*
+ - gxx_impl_linux-64 13.3.0.*
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 53338
+ timestamp: 1724801498389
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-14.3.0-he448592_4.conda
+ sha256: 5e92e1360a21dbbae2126dccdd37f97e34331fcccc5d76d12dbbad2fda1a5228
+ md5: 26ccfde67e88b646e57a7e56ce4ef56d
+ depends:
+ - gcc 14.3.0.*
+ - gxx_impl_linux-64 14.3.0.*
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 30420
+ timestamp: 1753905382479
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-13.3.0-hdbfa832_1.conda
+ sha256: 746dff24bb1efc89ab0ec108838d0711683054e3bbbcb94d042943410a98eca1
+ md5: 806367e23a0a6ad21e51875b34c57d7e
+ depends:
+ - gcc_impl_linux-64 13.3.0 hfea6d02_1
+ - libstdcxx-devel_linux-64 13.3.0 h84ea5a7_101
+ - sysroot_linux-64
+ - tzdata
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 13337720
+ timestamp: 1724801455825
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-14.3.0-he663afc_4.conda
+ sha256: d37c0a50684e1bfb3cb7f8e417d8b42a43a0dbd0bd5fa4b41a46d26eddc2c4aa
+ md5: 1f7b059bae1fc5e72ae23883e04abc48
+ depends:
+ - gcc_impl_linux-64 14.3.0 hd9e9e21_4
+ - libstdcxx-devel_linux-64 14.3.0 h85bb3a7_104
+ - sysroot_linux-64
+ - tzdata
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 15144697
+ timestamp: 1753905289599
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-13.3.0-h6834431_7.conda
+ sha256: a9b1ffea76f2cc5aedeead4793fcded7a687cce9d5e3f4fe93629f1b1d5043a6
+ md5: 7c82ca9bda609b6f72f670e4219d3787
+ depends:
+ - binutils_linux-64
+ - gcc_linux-64 13.3.0 hc28eda2_7
+ - gxx_impl_linux-64 13.3.0.*
+ - sysroot_linux-64
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 30356
+ timestamp: 1731939612705
+- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-14.3.0-ha7acb78_11.conda
+ sha256: 6c06752e4773dfd61a1928e9f7e9d21c3b97068daf27b84696c33057a091fe27
+ md5: d4af016b3511135302a19f2a58544fcd
+ depends:
+ - binutils_linux-64
+ - gcc_linux-64 14.3.0 h1382650_11
+ - gxx_impl_linux-64 14.3.0.*
+ - sysroot_linux-64
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 30802
+ timestamp: 1748905895571
+- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda
+ sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3
+ md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9
+ depends:
+ - python >=3.10
+ - hyperframe >=6.1,<7
+ - hpack >=4.1,<5
+ - python
+ license: MIT
+ purls:
+ - pkg:pypi/h2?source=compressed-mapping
+ size: 95967
+ timestamp: 1756364871835
+- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.4-nompi_h2d575fe_105.conda
+ sha256: 93d2bfc672f3ee0988d277ce463330a467f3686d3f7ee37812a3d8ca11776d77
+ md5: d76fff0092b6389a12134ddebc0929bd
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libaec >=1.1.3,<2.0a0
+ - libcurl >=8.10.1,<9.0a0
+ - libgcc >=13
+ - libgfortran
+ - libgfortran5 >=13.3.0
+ - libstdcxx >=13
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 3950601
+ timestamp: 1733003331788
+- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda
+ sha256: 4f173af9e2299de7eee1af3d79e851bca28ee71e7426b377e841648b51d48614
+ md5: c74d83614aec66227ae5199d98852aaf
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libaec >=1.1.4,<2.0a0
+ - libcurl >=8.14.1,<9.0a0
+ - libgcc >=14
+ - libgfortran
+ - libgfortran5 >=14.3.0
+ - libstdcxx >=14
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.1,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 3710057
+ timestamp: 1753357500665
+- conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.4-nompi_h1607680_105.conda
+ sha256: 56500937894b1ca917e1ae1bea64b873a9eec57d581173579189d0b1f590db26
+ md5: 12ebafc40b10d4bf519e4c2074c52aef
+ depends:
+ - __osx >=10.13
+ - libaec >=1.1.3,<2.0a0
+ - libcurl >=8.10.1,<9.0a0
+ - libcxx >=18
+ - libgfortran 5.*
+ - libgfortran5 >=13.2.0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 3732340
+ timestamp: 1733003702265
+- conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc8237f9_103.conda
+ sha256: e41d22f672b1fbe713d22cf69630abffaee68bdb38a500a708fc70e6f639357f
+ md5: 3f1df98f96e0c369d94232712c9b87d0
+ depends:
+ - __osx >=10.13
+ - libaec >=1.1.4,<2.0a0
+ - libcurl >=8.14.1,<9.0a0
+ - libcxx >=19
+ - libgfortran
+ - libgfortran5 >=14.3.0
+ - libgfortran5 >=15.1.0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.1,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 3522832
+ timestamp: 1753358062940
+- conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.4-nompi_hd5d9e70_105.conda
+ sha256: e8ced65c604a3b9e4803758a25149d71d8096f186fe876817a0d1d97190550c0
+ md5: 4381be33460283890c34341ecfa42d97
+ depends:
+ - libaec >=1.1.3,<2.0a0
+ - libcurl >=8.10.1,<9.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 2048450
+ timestamp: 1733003052575
+- conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_he30205f_103.conda
+ sha256: 0a90263b97e9860cec6c2540160ff1a1fff2a609b3d96452f8716ae63489dac5
+ md5: f1f7aaf642cefd2190582550eaca4658
+ depends:
+ - libaec >=1.1.4,<2.0a0
+ - libcurl >=8.14.1,<9.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.1,<4.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 2031491
+ timestamp: 1753357255237
+- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda
+ sha256: 6ad78a180576c706aabeb5b4c8ceb97c0cb25f1e112d76495bff23e3779948ba
+ md5: 0a802cb9888dd14eeefc611f05c40b6e
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/hpack?source=hash-mapping
+ size: 30731
+ timestamp: 1737618390337
+- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda
+ sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8
+ md5: 8e6923fc12f1fe8f8c4e5c9f343256ac
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/hyperframe?source=hash-mapping
+ size: 17397
+ timestamp: 1737618427549
+- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda
+ sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e
+ md5: 8b189310083baabfb622af68fd9d3ae3
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 12129203
+ timestamp: 1720853576813
+- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda
+ sha256: 2e64307532f482a0929412976c8450c719d558ba20c0962832132fd0d07ba7a7
+ md5: d68d48a3060eb5abdc1cdc8e2a3a5966
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 11761697
+ timestamp: 1720853679409
+- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda
+ sha256: d7a472c9fd479e2e8dcb83fb8d433fce971ea369d704ece380e876f9c3494e87
+ md5: 39a4f67be3286c86d696df570b1201b7
+ depends:
+ - python >=3.9
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/idna?source=hash-mapping
+ size: 49765
+ timestamp: 1733211921194
+- conda: https://conda.anaconda.org/conda-forge/linux-64/imath-3.1.12-h7955e40_0.conda
+ sha256: 4d8d07a4d5079d198168b44556fb86d094e6a716e8979b25a9f6c9c610e9fe56
+ md5: 37f5e1ab0db3691929f37dee78335d1b
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 159630
+ timestamp: 1725971591485
+- conda: https://conda.anaconda.org/conda-forge/osx-64/imath-3.1.12-h2016aa1_0.conda
+ sha256: 5bf9c041b97b1af21808938fcaa64acafe0d853de5478fa08005176664ee4552
+ md5: 326b3d68ab3f43396e7d7e0e9a496f73
+ depends:
+ - __osx >=10.13
+ - libcxx >=17
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 155534
+ timestamp: 1725971674035
+- conda: https://conda.anaconda.org/conda-forge/win-64/imath-3.1.12-hbb528cf_0.conda
+ sha256: 184c796615cebaa73246f351144f164ee7b61ea809e4ba3c5d98fa9ca333e058
+ md5: c25af729c8c1c41f96202f8a96652bbe
+ depends:
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 160408
+ timestamp: 1725972042635
+- conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.0.0-pyhd8ed1ab_1.conda
+ sha256: 0ec8f4d02053cd03b0f3e63168316530949484f80e16f5e2fb199a1d117a89ca
+ md5: 6837f3eff7dcea42ecd714ce1ac2b108
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/iniconfig?source=hash-mapping
+ size: 11474
+ timestamp: 1733223232820
+- conda: https://conda.anaconda.org/conda-forge/win-64/intel-openmp-2024.2.1-h57928b3_1083.conda
+ sha256: 0fd2b0b84c854029041b0ede8f4c2369242ee92acc0092f8407b1fe9238a8209
+ md5: 2d89243bfb53652c182a7c73182cce4f
+ license: LicenseRef-IntelSimplifiedSoftwareOct2022
+ license_family: Proprietary
+ size: 1852356
+ timestamp: 1723739573141
+- conda: https://conda.anaconda.org/conda-forge/noarch/isodate-0.7.2-pyhd8ed1ab_1.conda
+ sha256: 845fc87dfaf3f96245ad6ad69c5e5b31b084979f64f9e32157888ee0a08f39ba
+ md5: 14c42a6334f38c412449f5a5e4043a5a
+ depends:
+ - python >=3.9
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/isodate?source=hash-mapping
+ size: 23778
+ timestamp: 1733230826126
+- conda: https://conda.anaconda.org/conda-forge/linux-64/jasper-4.2.8-he3c4edf_0.conda
+ sha256: 0e919ec86d980901d8cbb665e91f5e9bddb5ff662178f25aed6d63f999fd9afc
+ md5: a04073db11c2c86c555fb088acc8f8c1
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - freeglut >=3.2.2,<4.0a0
+ - libgcc >=14
+ - libglu >=9.0.3,<10.0a0
+ - libglu >=9.0.3,<9.1.0a0
+ - libjpeg-turbo >=3.1.0,<4.0a0
+ license: JasPer-2.0
+ purls: []
+ size: 681643
+ timestamp: 1754514437930
+- conda: https://conda.anaconda.org/conda-forge/osx-64/jasper-4.2.8-h9ce442b_0.conda
+ sha256: b095874f61125584d99b4f55a2bba3e4bd9aa61b2d2e4ab8d03372569f0ca01c
+ md5: 155c61380cc98685f4d6237cb19c5f97
+ depends:
+ - __osx >=10.13
+ - libjpeg-turbo >=3.1.0,<4.0a0
+ license: JasPer-2.0
+ purls: []
+ size: 574167
+ timestamp: 1754514708717
+- conda: https://conda.anaconda.org/conda-forge/win-64/jasper-4.2.8-h8ad263b_0.conda
+ sha256: 67a171de9975e583d1cd860d67e67552b28bd992ed6d0b6b8f3311ff0f7fb6cf
+ md5: f25a27d9c58ef3a63173f372edef0639
+ depends:
+ - freeglut >=3.2.2,<4.0a0
+ - libjpeg-turbo >=3.1.0,<4.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: JasPer-2.0
+ purls: []
+ size: 447036
+ timestamp: 1754514582523
+- conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda
+ sha256: f1ac18b11637ddadc05642e8185a851c7fab5998c6f5470d716812fae943b2af
+ md5: 446bd6c8cb26050d528881df495ce646
+ depends:
+ - markupsafe >=2.0
+ - python >=3.9
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/jinja2?source=hash-mapping
+ size: 112714
+ timestamp: 1741263433881
+- conda: https://conda.anaconda.org/conda-forge/linux-64/jxrlib-1.1-hd590300_3.conda
+ sha256: 2057ca87b313bde5b74b93b0e696f8faab69acd4cb0edebb78469f3f388040c0
+ md5: 5aeabe88534ea4169d4c49998f293d6c
+ depends:
+ - libgcc-ng >=12
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 239104
+ timestamp: 1703333860145
+- conda: https://conda.anaconda.org/conda-forge/osx-64/jxrlib-1.1-h10d778d_3.conda
+ sha256: a548a4be14a4c76d6d992a5c1feffcbb08062f5c57abc6e4278d40c2c9a7185b
+ md5: cfaf81d843a80812fe16a68bdae60562
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 220376
+ timestamp: 1703334073774
+- conda: https://conda.anaconda.org/conda-forge/win-64/jxrlib-1.1-hcfcfb64_3.conda
+ sha256: a9ac265bcf65fce57cfb6512a1b072d5489445d14aa1b60c9bdf73370cf261b2
+ md5: a9dff8432c11dfa980346e934c29ca3f
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 355340
+ timestamp: 1703334132631
+- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda
+ sha256: a922841ad80bd7b222502e65c07ecb67e4176c4fa5b03678a005f39fcc98be4b
+ md5: ad8527bf134a90e1c9ed35fa0b64318c
+ constrains:
+ - sysroot_linux-64 ==2.17
+ license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0
+ license_family: GPL
+ size: 943486
+ timestamp: 1729794504440
+- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_8.conda
+ sha256: 305c22a251db227679343fd73bfde121e555d466af86e537847f4c8b9436be0d
+ md5: ff007ab0f0fdc53d245972bba8a6d40c
+ constrains:
+ - sysroot_linux-64 ==2.28
+ license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later
+ license_family: GPL
+ purls: []
+ size: 1272697
+ timestamp: 1752669126073
+- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2
+ sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb
+ md5: 30186d27e2c9fa62b45fb1476b7200e3
+ depends:
+ - libgcc-ng >=10.3.0
+ license: LGPL-2.1-or-later
+ size: 117831
+ timestamp: 1646151697040
+- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda
+ sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4
+ md5: b38117a3c920364aff79f870c984b4a3
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: LGPL-2.1-or-later
+ purls: []
+ size: 134088
+ timestamp: 1754905959823
+- conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda
+ sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238
+ md5: 3f43953b7d3fb3aaa1d0d0723d91e368
+ depends:
+ - keyutils >=1.6.1,<2.0a0
+ - libedit >=3.1.20191231,<3.2.0a0
+ - libedit >=3.1.20191231,<4.0a0
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ - openssl >=3.3.1,<4.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 1370023
+ timestamp: 1719463201255
+- conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda
+ sha256: 83b52685a4ce542772f0892a0f05764ac69d57187975579a0835ff255ae3ef9c
+ md5: d4765c524b1d91567886bde656fb514b
+ depends:
+ - __osx >=10.13
+ - libcxx >=16
+ - libedit >=3.1.20191231,<3.2.0a0
+ - libedit >=3.1.20191231,<4.0a0
+ - openssl >=3.3.1,<4.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 1185323
+ timestamp: 1719463492984
+- conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda
+ sha256: 18e8b3430d7d232dad132f574268f56b3eb1a19431d6d5de8c53c29e6c18fa81
+ md5: 31aec030344e962fbd7dbbbbd68e60a9
+ depends:
+ - openssl >=3.3.1,<4.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 712034
+ timestamp: 1719463874284
+- conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.2.2-pyhd8ed1ab_1.conda
+ sha256: 637a9c32e15a4333f1f9c91e0a506dbab4a6dab7ee83e126951159c916c81c99
+ md5: 3a8063b25e603999188ed4bbf3485404
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/lark?source=hash-mapping
+ size: 92093
+ timestamp: 1734709450256
+- conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda
+ sha256: d6a61830a354da022eae93fa896d0991385a875c6bba53c82263a289deda9db8
+ md5: 000e85703f0fd9594c81710dd5066471
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 248046
+ timestamp: 1739160907615
+- conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda
+ sha256: bcb81543e49ff23e18dea79ef322ab44b8189fb11141b1af99d058503233a5fc
+ md5: bf210d0c63f2afb9e414a858b79f0eaa
+ depends:
+ - __osx >=10.13
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 226001
+ timestamp: 1739161050843
+- conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda
+ sha256: 7712eab5f1a35ca3ea6db48ead49e0d6ac7f96f8560da8023e61b3dbe4f3b25d
+ md5: 3538827f77b82a837fa681a4579e37a1
+ depends:
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 510641
+ timestamp: 1739161381270
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ld64-951.9-h4e51db5_3.conda
+ sha256: 36e5a42c7aebad58d629c6bc1cb36243653a935e609e03a89b22005aa4ab2ddb
+ md5: d1743e343b8e13a4980dac16f050d2b6
+ depends:
+ - ld64_osx-64 951.9 h33512f0_3
+ - libllvm18 >=18.1.8,<18.2.0a0
+ constrains:
+ - cctools 1010.6.*
+ - cctools_osx-64 1010.6.*
+ license: APSL-2.0
+ license_family: Other
+ size: 18577
+ timestamp: 1738620853804
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ld64-955.13-hc3792c1_0.conda
+ sha256: 076ff5ecf1ad4db0b3032a93cf526f8793a43c0d1a985524f55fb7c221b41a8d
+ md5: e283b733b36540616287db2083702b80
+ depends:
+ - ld64_osx-64 955.13 hf1c22e8_0
+ - libllvm19 >=19.1.7,<19.2.0a0
+ constrains:
+ - cctools_osx-64 1024.3.*
+ - cctools 1024.3.*
+ license: APSL-2.0
+ license_family: Other
+ purls: []
+ size: 18109
+ timestamp: 1756212747763
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-951.9-h33512f0_3.conda
+ sha256: 4e6a37e3ea23a3d2f9b25b1b476728be6b5a1bab326fa5a976997698c60f70c0
+ md5: f5c97cad6996928bdffc55b8f5e70723
+ depends:
+ - __osx >=10.13
+ - libcxx
+ - libllvm18 >=18.1.8,<18.2.0a0
+ - sigtool
+ - tapi >=1300.6.5,<1301.0a0
+ constrains:
+ - clang >=18.1.8,<19.0a0
+ - ld 951.9.*
+ - cctools_osx-64 1010.6.*
+ - cctools 1010.6.*
+ license: APSL-2.0
+ license_family: Other
+ size: 1100751
+ timestamp: 1738620763081
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ld64_osx-64-955.13-hf1c22e8_0.conda
+ sha256: 1baa6cfa917103b07f7543fb0e6b82efa92b19c10c4ecb125ab6026a88d4430f
+ md5: 25c3fa946892c05b51a6f794949864ba
+ depends:
+ - __osx >=10.13
+ - libcxx
+ - libllvm19 >=19.1.7,<19.2.0a0
+ - sigtool
+ - tapi >=1300.6.5,<1301.0a0
+ constrains:
+ - cctools_osx-64 1024.3.*
+ - ld 955.13.*
+ - clang >=19.1.7,<20.0a0
+ - cctools 1024.3.*
+ license: APSL-2.0
+ license_family: Other
+ purls: []
+ size: 1107425
+ timestamp: 1756212688116
+- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda
+ sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe
+ md5: 048b02e3962f066da18efe3a21b77672
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ constrains:
+ - binutils_impl_linux-64 2.43
+ license: GPL-3.0-only
+ license_family: GPL
+ size: 669211
+ timestamp: 1729655358674
+- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-h1423503_1.conda
+ sha256: 1a620f27d79217c1295049ba214c2f80372062fd251b569e9873d4a953d27554
+ md5: 0be7c6e070c19105f966d3758448d018
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ constrains:
+ - binutils_impl_linux-64 2.44
+ license: GPL-3.0-only
+ license_family: GPL
+ purls: []
+ size: 676044
+ timestamp: 1752032747103
+- conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda
+ sha256: 412381a43d5ff9bbed82cd52a0bbca5b90623f62e41007c9c42d3870c60945ff
+ md5: 9344155d33912347b37f0ae6c410a835
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ license: Apache-2.0
+ license_family: Apache
+ purls: []
+ size: 264243
+ timestamp: 1745264221534
+- conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2
+ sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12
+ md5: 76bbff344f0134279f225174e9064c8f
+ depends:
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ license: Apache-2.0
+ license_family: Apache
+ size: 281798
+ timestamp: 1657977462600
+- conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hb486fe8_0.tar.bz2
+ sha256: e41790fc0f4089726369b3c7f813117bbc14b533e0ed8b94cf75aba252e82497
+ md5: f9d6a4c82889d5ecedec1d90eb673c55
+ depends:
+ - libcxx >=13.0.1
+ license: Apache-2.0
+ license_family: Apache
+ size: 290319
+ timestamp: 1657977526749
+- conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda
+ sha256: cc1f1d7c30aa29da4474ec84026ec1032a8df1d7ec93f4af3b98bb793d01184e
+ md5: 21f765ced1a0ef4070df53cb425e1967
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ license: Apache-2.0
+ license_family: Apache
+ purls: []
+ size: 248882
+ timestamp: 1745264331196
+- conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h63175ca_0.tar.bz2
+ sha256: f4f39d7f6a2f9b407f8fb567a6c25755270421731d70f0ff331f5de4fa367488
+ md5: 1900cb3cab5055833cfddb0ba233b074
+ depends:
+ - vc >=14.2,<15
+ - vs2015_runtime >=14.29.30037
+ license: Apache-2.0
+ license_family: Apache
+ size: 194365
+ timestamp: 1657977692274
+- conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda
+ sha256: 868a3dff758cc676fa1286d3f36c3e0101cca56730f7be531ab84dc91ec58e9d
+ md5: c1b81da6d29a14b542da14a36c9fbf3f
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: Apache-2.0
+ license_family: Apache
+ purls: []
+ size: 164701
+ timestamp: 1745264384716
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.3-h59595ed_0.conda
+ sha256: 2ef420a655528bca9d269086cf33b7e90d2f54ad941b437fb1ed5eca87cee017
+ md5: 5e97e271911b8b2001a8b71860c32faa
+ depends:
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 35446
+ timestamp: 1711021212685
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.4-h3f801dc_0.conda
+ sha256: 410ab78fe89bc869d435de04c9ffa189598ac15bb0fe1ea8ace8fb1b860a2aa3
+ md5: 01ba04e414e47f95c03d6ddd81fd37be
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 36825
+ timestamp: 1749993532943
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.3-h73e2aa4_0.conda
+ sha256: dae5921339c5d89f4bf58a95fd4e9c76270dbf7f6a94f3c5081b574905fcccf8
+ md5: 66d3c1f6dd4636216b4fca7a748d50eb
+ depends:
+ - libcxx >=16
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 28602
+ timestamp: 1711021419744
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.4-ha6bc127_0.conda
+ sha256: f4fe00ef0df58b670696c62f2ec3f6484431acbf366ecfbcb71141c81439e331
+ md5: 1a768b826dfc68e07786788d98babfc3
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 30034
+ timestamp: 1749993664561
+- conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.3-h63175ca_0.conda
+ sha256: f5c293d3cfc00f71dfdb64bd65ab53625565f8778fc2d5790575bef238976ebf
+ md5: 8723000f6ffdbdaef16025f0a01b64c5
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 32567
+ timestamp: 1711021603471
+- conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.4-h20038f6_0.conda
+ sha256: 0be89085effce9fdcbb6aea7acdb157b18793162f68266ee0a75acf615d4929b
+ md5: 85a2bed45827d77d5b308cb2b165404f
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 33847
+ timestamp: 1749993666162
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-28_h59b9bed_openblas.conda
+ build_number: 28
+ sha256: 93fbcf2800b859b7ca5add3ab5d3aa11c6a6ff4b942a1cea4bf644f78488edb8
+ md5: 73e2a99fdeb8531d50168987378fda8a
+ depends:
+ - libopenblas >=0.3.28,<0.3.29.0a0
+ - libopenblas >=0.3.28,<1.0a0
+ constrains:
+ - libcblas =3.9.0=28*_openblas
+ - blas =2.128=openblas
+ - liblapack =3.9.0=28*_openblas
+ - liblapacke =3.9.0=28*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 16621
+ timestamp: 1738114033763
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-34_h59b9bed_openblas.conda
+ build_number: 34
+ sha256: 08a394ba934f68f102298259b150eb5c17a97c30c6da618e1baab4247366eab3
+ md5: 064c22bac20fecf2a99838f9b979374c
+ depends:
+ - libopenblas >=0.3.30,<0.3.31.0a0
+ - libopenblas >=0.3.30,<1.0a0
+ constrains:
+ - mkl <2025
+ - blas 2.134 openblas
+ - liblapacke 3.9.0 34*_openblas
+ - libcblas 3.9.0 34*_openblas
+ - liblapack 3.9.0 34*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 19306
+ timestamp: 1754678416811
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-28_h7f60823_openblas.conda
+ build_number: 28
+ sha256: c44341975c7d0b4b02c2676af30a723b109698b2939928b80c45efc2aa36ef2d
+ md5: c9f0b30e5ab2f4ddc450b95743d2070d
+ depends:
+ - libopenblas >=0.3.28,<0.3.29.0a0
+ - libopenblas >=0.3.28,<1.0a0
+ constrains:
+ - liblapacke =3.9.0=28*_openblas
+ - libcblas =3.9.0=28*_openblas
+ - blas =2.128=openblas
+ - liblapack =3.9.0=28*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 16854
+ timestamp: 1738114357360
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.9.0-34_h7f60823_openblas.conda
+ build_number: 34
+ sha256: ea5d0341df78f7f2d6fe3a03a9b7327958d9e21b4f2d13ef0eddadc335999232
+ md5: 3f29ba70f912e56d4be6b55bc213a082
+ depends:
+ - libopenblas >=0.3.30,<0.3.31.0a0
+ - libopenblas >=0.3.30,<1.0a0
+ constrains:
+ - liblapacke 3.9.0 34*_openblas
+ - mkl <2025
+ - libcblas 3.9.0 34*_openblas
+ - liblapack 3.9.0 34*_openblas
+ - blas 2.134 openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 19537
+ timestamp: 1754678644797
+- conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-28_h576b46c_mkl.conda
+ build_number: 28
+ sha256: 664fac202fb0f48f11538863f78128cc95e72fbf75fa7d037ddea7c497c0df5d
+ md5: eb97c3ea4cc02e42c01bc6c928094037
+ depends:
+ - mkl 2024.2.2 h66d3029_15
+ constrains:
+ - liblapack =3.9.0=28*_mkl
+ - blas =2.128=mkl
+ - liblapacke =3.9.0=28*_mkl
+ - libcblas =3.9.0=28*_mkl
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 3732428
+ timestamp: 1738114465076
+- conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.9.0-34_h5709861_mkl.conda
+ build_number: 34
+ sha256: d7865fcc7d29b22e4111ababec49083851a84bb3025748eed65184be765b6e7d
+ md5: a64dcde5f27b8e0e413ddfc56151664c
+ depends:
+ - mkl >=2024.2.2,<2025.0a0
+ constrains:
+ - libcblas 3.9.0 34*_mkl
+ - liblapacke 3.9.0 34*_mkl
+ - blas 2.134 mkl
+ - liblapack 3.9.0 34*_mkl
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 70548
+ timestamp: 1754682440057
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.86.0-h6c02f8c_3.conda
+ sha256: bad622863b3e4c8f0d107d8efd5b808e52d79cb502a20d700d05357b59a51e8f
+ md5: eead4e74198698d1c74f06572af753bc
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - bzip2 >=1.0.8,<2.0a0
+ - icu >=75.1,<76.0a0
+ - libgcc >=13
+ - liblzma >=5.6.3,<6.0a0
+ - libstdcxx >=13
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 2946990
+ timestamp: 1733501899743
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-1.88.0-hed09d94_1.conda
+ sha256: 27f776874e3bc8d73ca8d88374b337dc9901ad4663e4b077f97d08ab2a313c59
+ md5: a8755608e921f8ec265eb63c4eab3a54
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - bzip2 >=1.0.8,<2.0a0
+ - icu >=75.1,<76.0a0
+ - libgcc >=14
+ - liblzma >=5.8.1,<6.0a0
+ - libstdcxx >=14
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 3036176
+ timestamp: 1755040683556
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-1.86.0-hf0da243_3.conda
+ sha256: 7758971337b07d1f4fd0c55eed4bfb06e3c0512a7e4549c648a01383926c1fcd
+ md5: 1e25fad7b2c160cd3b9b52f3507eb272
+ depends:
+ - __osx >=10.13
+ - bzip2 >=1.0.8,<2.0a0
+ - icu >=75.1,<76.0a0
+ - libcxx >=18
+ - liblzma >=5.6.3,<6.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 2134033
+ timestamp: 1733503407177
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-1.88.0-hf0da243_1.conda
+ sha256: ee08844c658d6b626a61c469eee16e2e2330aefeb3a727b54c2383de70899a7e
+ md5: 0b410c1bc0240122b61d7ff5011ec38a
+ depends:
+ - __osx >=10.13
+ - bzip2 >=1.0.8,<2.0a0
+ - icu >=75.1,<76.0a0
+ - libcxx >=18
+ - liblzma >=5.8.1,<6.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 2143629
+ timestamp: 1755041112348
+- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.86.0-hb0986bb_3.conda
+ sha256: 0e1f19d03c2755f424321e0bebf3a62f864e084e812d172b3953e5215d4e4d36
+ md5: d0550e3c23e9e9885bf410fe6f519361
+ depends:
+ - bzip2 >=1.0.8,<2.0a0
+ - libiconv >=1.17,<2.0a0
+ - liblzma >=5.6.3,<6.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ - zstd >=1.5.6,<1.6.0a0
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 2502049
+ timestamp: 1733503877084
+- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-1.88.0-h9dfe17d_1.conda
+ sha256: 4199d989d9bdd66cc4cab63c3ae2ca8c7279ae889a2cc7be19a6bea7711b43f5
+ md5: a19e51f7d5e5ee8d1ad0ef1376dc051b
+ depends:
+ - bzip2 >=1.0.8,<2.0a0
+ - libiconv >=1.18,<2.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - zstd >=1.5.7,<1.6.0a0
+ constrains:
+ - __win ==0|>=10
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 2495267
+ timestamp: 1755042179457
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.86.0-h1a2810e_3.conda
+ sha256: 1bbc13f4bed720af80e67e5df1e609f4efd801ae27d85107c36416de20ebb84c
+ md5: ffe09ce10ce1e03e1e762ab5bc006a35
+ depends:
+ - libboost 1.86.0 h6c02f8c_3
+ - libboost-headers 1.86.0 ha770c72_3
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 37554
+ timestamp: 1733502001252
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-devel-1.88.0-hfcd1e18_1.conda
+ sha256: 8c38660661e7445b49368b9d807dd1091ceebab7344cb4297185d93f9832d7cf
+ md5: 28d09c69e988367e88c6eeece349961a
+ depends:
+ - libboost 1.88.0 hed09d94_1
+ - libboost-headers 1.88.0 ha770c72_1
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 38151
+ timestamp: 1755040798180
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-devel-1.86.0-h20888b2_3.conda
+ sha256: 297427f9edce4b04847d13bfaa2401326d69b351290bf7f61565844a503c7fc8
+ md5: f4386c067b2bcd09be47d4092cf4c81d
+ depends:
+ - libboost 1.86.0 hf0da243_3
+ - libboost-headers 1.86.0 h694c41f_3
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 38825
+ timestamp: 1733503676067
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-devel-1.88.0-h20888b2_1.conda
+ sha256: 3cdbef523637963c8d82cf536b3c5b673e34f304881b40fc41914c5b5d1ad9cb
+ md5: 36f6714745826d740278da3013bc840b
+ depends:
+ - libboost 1.88.0 hf0da243_1
+ - libboost-headers 1.88.0 h694c41f_1
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 38738
+ timestamp: 1755041280680
+- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.86.0-h91493d7_3.conda
+ sha256: 604bbee4cc195b2ed745efc4bd9b3172c82ff1468ffbba25f6d0fc176b10b995
+ md5: 2e5f24412d1cebea7fd9f9a41ffc7a85
+ depends:
+ - libboost 1.86.0 hb0986bb_3
+ - libboost-headers 1.86.0 h57928b3_3
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 40415
+ timestamp: 1733504121541
+- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-devel-1.88.0-h1c1089f_1.conda
+ sha256: 55ba2923159aa478ae737f34d3c7ddf3a3427bad2371e0eea94d72b3683a11ab
+ md5: 9aa7ddfc3d14a84be1fd378859a2387a
+ depends:
+ - libboost 1.88.0 h9dfe17d_1
+ - libboost-headers 1.88.0 h57928b3_1
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 40542
+ timestamp: 1755042380260
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.86.0-ha770c72_3.conda
+ sha256: 322be3cc409ee8b7f46a6e237c91cdcf810bc528af5865f6b7c46cc56ad5f070
+ md5: be60ca34cfa7a867c2911506cad8f7c3
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 13991670
+ timestamp: 1733501914699
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libboost-headers-1.88.0-ha770c72_1.conda
+ sha256: 39aff06e61d273e856732db9816f8e2958bb4784cc568571bc7d13fe2d460d9b
+ md5: f4904e9af33091a14c966b6b8f6ac1b8
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 14513031
+ timestamp: 1755040699172
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.86.0-h694c41f_3.conda
+ sha256: 9e441c92ad0ff786cae47f6a66fb60fc0d146c69386e4f6f5b7ecdda89db878f
+ md5: 7f26ba01ef422fd27abfdc98ceb104f0
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 14151060
+ timestamp: 1733503490599
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libboost-headers-1.88.0-h694c41f_1.conda
+ sha256: 3b2e2bb09f8d426b2d9d81a5de51cb76c09508de7604fba52690e954393617ba
+ md5: f5d8af6d6fe3c2953292a962cdeafe26
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 14601134
+ timestamp: 1755041154211
+- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.86.0-h57928b3_3.conda
+ sha256: 231042814cfdb494b63b2829ce832f352ff8bcb8cc10eef148db7c799c9c8c29
+ md5: 4bc32387538adb61353d76c629fb20e6
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ size: 14179084
+ timestamp: 1733503940017
+- conda: https://conda.anaconda.org/conda-forge/win-64/libboost-headers-1.88.0-h57928b3_1.conda
+ sha256: 36620591837470a8e44a1fedd885fee8d622886c286a71bf909f64db43430120
+ md5: 9e69f044a16fdfc7b7bc7ec311155ed5
+ constrains:
+ - boost-cpp <0.0a0
+ license: BSL-1.0
+ purls: []
+ size: 14618746
+ timestamp: 1755042236296
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-28_he106b2a_openblas.conda
+ build_number: 28
+ sha256: de293e117db53e5d78b579136509c35a5e4ad11529c05f9af83cf89be4d30de1
+ md5: 4e20a1c00b4e8a984aac0f6cce59e3ac
+ depends:
+ - libblas 3.9.0 28_h59b9bed_openblas
+ constrains:
+ - blas =2.128=openblas
+ - liblapack =3.9.0=28*_openblas
+ - liblapacke =3.9.0=28*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 16539
+ timestamp: 1738114043618
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-34_he106b2a_openblas.conda
+ build_number: 34
+ sha256: edde454897c7889c0323216516abb570a593de728c585b14ef41eda2b08ddf3a
+ md5: 148b531b5457ad666ed76ceb4c766505
+ depends:
+ - libblas 3.9.0 34_h59b9bed_openblas
+ constrains:
+ - liblapacke 3.9.0 34*_openblas
+ - blas 2.134 openblas
+ - liblapack 3.9.0 34*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 19313
+ timestamp: 1754678426220
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-28_hff6cab4_openblas.conda
+ build_number: 28
+ sha256: 3940ad1fe20fac8a21fe699ade336a649d0509bc6ff9bfc080b258f68cd056df
+ md5: bf672fd5b62c531028cda585c6ee91b1
+ depends:
+ - libblas 3.9.0 28_h7f60823_openblas
+ constrains:
+ - liblapacke =3.9.0=28*_openblas
+ - blas =2.128=openblas
+ - liblapack =3.9.0=28*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 16772
+ timestamp: 1738114371625
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.9.0-34_hff6cab4_openblas.conda
+ build_number: 34
+ sha256: 393e24b890009d4d4ace5531d39adfd9be3b97040653f6febbb74311dad84146
+ md5: 0f6bf5f39b2301a165389e3624f0c297
+ depends:
+ - libblas 3.9.0 34_h7f60823_openblas
+ constrains:
+ - liblapacke 3.9.0 34*_openblas
+ - liblapack 3.9.0 34*_openblas
+ - blas 2.134 openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 19518
+ timestamp: 1754678655239
+- conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-28_h7ad3364_mkl.conda
+ build_number: 28
+ sha256: affd4330721e0dadeefb31cd8191478772f75643db6bef485309782be689c52f
+ md5: fc67cf6a19301fc7d6eb83949abce428
+ depends:
+ - libblas 3.9.0 28_h576b46c_mkl
+ constrains:
+ - liblapack =3.9.0=28*_mkl
+ - blas =2.128=mkl
+ - liblapacke =3.9.0=28*_mkl
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 3732314
+ timestamp: 1738114505434
+- conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.9.0-34_h2a3cdd5_mkl.conda
+ build_number: 34
+ sha256: e9f31d44e668822f6420bfaeda4aa74cd6c60d3671cf0b00262867f36ad5a8c1
+ md5: 25a019872ff471af70fd76d9aaaf1313
+ depends:
+ - libblas 3.9.0 34_h5709861_mkl
+ constrains:
+ - liblapacke 3.9.0 34*_mkl
+ - blas 2.134 mkl
+ - liblapack 3.9.0 34*_mkl
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 70700
+ timestamp: 1754682490395
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp18.1-18.1.8-default_h3571c67_7.conda
+ sha256: 81917105ee2f49e85f0abd684696ad9d9a81aef9d825e563e0013fd9a1ccbd23
+ md5: d22bdc2b1ecf45631c5aad91f660623a
+ depends:
+ - __osx >=10.13
+ - libcxx >=18.1.8
+ - libllvm18 >=18.1.8,<18.2.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 13901227
+ timestamp: 1738269502537
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp19.1-19.1.7-default_h3571c67_3.conda
+ sha256: 527a96d48122dfd99e955dd73077f52a0e0bbec7eea08bbe4dc2ba12c1905b37
+ md5: 2ec1f70656609b17b438ac07e1b2b611
+ depends:
+ - __osx >=10.13
+ - libcxx >=19.1.7
+ - libllvm19 >=19.1.7,<19.2.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 14708000
+ timestamp: 1747709593789
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda
+ sha256: 3cd4075b2a7b5562e46c8ec626f6f9ca57aeecaa94ff7df57eca26daa94c9906
+ md5: 2b3e0081006dc21e8bf53a91c83a055c
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - krb5 >=1.21.3,<1.22.0a0
+ - libgcc >=13
+ - libnghttp2 >=1.64.0,<2.0a0
+ - libssh2 >=1.11.1,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: curl
+ license_family: MIT
+ size: 423011
+ timestamp: 1733999897624
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.14.1-h332b0f4_0.conda
+ sha256: b6c5cf340a4f80d70d64b3a29a7d9885a5918d16a5cb952022820e6d3e79dc8b
+ md5: 45f6713cb00f124af300342512219182
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - krb5 >=1.21.3,<1.22.0a0
+ - libgcc >=13
+ - libnghttp2 >=1.64.0,<2.0a0
+ - libssh2 >=1.11.1,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.0,<4.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ license: curl
+ license_family: MIT
+ purls: []
+ size: 449910
+ timestamp: 1749033146806
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.11.1-h5dec5d8_0.conda
+ sha256: a4ee3da1a5fd753a382d129dffb079a1e8a244e5c7ff3f7aadc15bf127f8b5e5
+ md5: 2f80e92674f4a92e9f8401494496ee62
+ depends:
+ - __osx >=10.13
+ - krb5 >=1.21.3,<1.22.0a0
+ - libnghttp2 >=1.64.0,<2.0a0
+ - libssh2 >=1.11.1,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: curl
+ license_family: MIT
+ size: 406590
+ timestamp: 1734000110972
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.14.1-h5dec5d8_0.conda
+ sha256: ca0d8d12056227d6b47122cfb6d68fc5a3a0c6ab75a0e908542954fc5f84506c
+ md5: 8738cd19972c3599400404882ddfbc24
+ depends:
+ - __osx >=10.13
+ - krb5 >=1.21.3,<1.22.0a0
+ - libnghttp2 >=1.64.0,<2.0a0
+ - libssh2 >=1.11.1,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.0,<4.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ license: curl
+ license_family: MIT
+ purls: []
+ size: 424040
+ timestamp: 1749033558114
+- conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.11.1-h88aaa65_0.conda
+ sha256: 1a67f01da0e35296c6d1fdf6baddc45ad3cc2114132ff4638052eb7cf258aab2
+ md5: 071d3f18dba5a6a13c6bb70cdb42678f
+ depends:
+ - krb5 >=1.21.3,<1.22.0a0
+ - libssh2 >=1.11.1,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: curl
+ license_family: MIT
+ size: 349553
+ timestamp: 1734000095720
+- conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.14.1-h88aaa65_0.conda
+ sha256: b2cface2cf35d8522289df7fffc14370596db6f6dc481cc1b6ca313faeac19d8
+ md5: 836b9c08f34d2017dbcaec907c6a1138
+ depends:
+ - krb5 >=1.21.3,<1.22.0a0
+ - libssh2 >=1.11.1,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: curl
+ license_family: MIT
+ purls: []
+ size: 368346
+ timestamp: 1749033492826
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-19.1.7-hf95d169_0.conda
+ sha256: 6b2fa3fb1e8cd2000b0ed259e0c4e49cbef7b76890157fac3e494bc659a20330
+ md5: 4b8f8dc448d814169dbc58fc7286057d
+ depends:
+ - __osx >=10.13
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 527924
+ timestamp: 1736877256721
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-20.1.8-h3d58e20_1.conda
+ sha256: 9643d6c5a94499cddb5ae1bccc4f78aef8cfd77bcf6b37ad325bc7232a8a870f
+ md5: d2db320b940047515f7a27f870984fe7
+ depends:
+ - __osx >=10.13
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 564830
+ timestamp: 1752814841086
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-devel-18.1.8-h7c275be_7.conda
+ sha256: 5d886a04be00a5a54a81fb040aacd238d0d55d4522c61c7875b675b803c748a3
+ md5: 0c389f3214ce8cad37a12cb0bae44c54
+ depends:
+ - libcxx >=18.1.8
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 792227
+ timestamp: 1725403715206
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-devel-19.1.7-h7c275be_1.conda
+ sha256: d1ee08b0614d8f9bca84aa91b4015c5efa96162fd865590a126544243699dfc6
+ md5: 0f3f15e69e98ce9b3307c1d8309d1659
+ depends:
+ - libcxx >=19.1.7
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 826706
+ timestamp: 1742451299167
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda
+ sha256: 511d801626d02f4247a04fff957cc6e9ec4cc7e8622bd9acd076bcdc5de5fe66
+ md5: 8dfae1d2e74767e9ce36d5fa0d8605db
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ size: 72255
+ timestamp: 1734373823254
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.24-h86f0d12_0.conda
+ sha256: 8420748ea1cc5f18ecc5068b4f24c7a023cc9b20971c99c824ba10641fb95ddf
+ md5: 64f0c503da58ec25ebd359e4d990afa8
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 72573
+ timestamp: 1747040452262
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.23-he65b83e_0.conda
+ sha256: 20c1e685e7409bb82c819ba55b9f7d9a654e8e6d597081581493badb7464520e
+ md5: 120f8f7ba6a8defb59f4253447db4bb4
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ size: 69309
+ timestamp: 1734374105905
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.24-hcc1b750_0.conda
+ sha256: 2733a4adf53daca1aa4f41fe901f0f8ee9e4c509abd23ffcd7660013772d6f45
+ md5: f0a46c359722a3e84deb05cd4072d153
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 69751
+ timestamp: 1747040526774
+- conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.23-h9062f6e_0.conda
+ sha256: 96c47725a8258159295996ea2758fa0ff9bea330e72b59641642e16be8427ce8
+ md5: a9624935147a25b06013099d3038e467
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ size: 155723
+ timestamp: 1734374084110
+- conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.24-h76ddb4d_0.conda
+ sha256: 65347475c0009078887ede77efe60db679ea06f2b56f7853b9310787fe5ad035
+ md5: 08d988e266c6ae77e03d164b83786dc4
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 156292
+ timestamp: 1747040812624
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda
+ sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724
+ md5: c277e0a4d549b03ac1e9d6cbbe3d017b
+ depends:
+ - ncurses
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - ncurses >=6.5,<7.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 134676
+ timestamp: 1738479519902
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20250104-pl5321ha958ccf_0.conda
+ sha256: 6cc49785940a99e6a6b8c6edbb15f44c2dd6c789d9c283e5ee7bdfedd50b4cd6
+ md5: 1f4ed31220402fcddc083b4bff406868
+ depends:
+ - ncurses
+ - __osx >=10.13
+ - ncurses >=6.5,<7.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 115563
+ timestamp: 1738479554273
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda
+ sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4
+ md5: 172bf1cd1ff8629f2b1179945ed45055
+ depends:
+ - libgcc-ng >=12
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 112766
+ timestamp: 1702146165126
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda
+ sha256: 0d238488564a7992942aa165ff994eca540f687753b4f0998b29b4e4d030ff43
+ md5: 899db79329439820b7e8f8de41bca902
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 106663
+ timestamp: 1702146352558
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda
+ sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26
+ md5: db833e03127376d461e1e13e76f09b6c
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ constrains:
+ - expat 2.6.4.*
+ license: MIT
+ license_family: MIT
+ size: 73304
+ timestamp: 1730967041968
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_0.conda
+ sha256: da2080da8f0288b95dd86765c801c6e166c4619b910b11f9a8446fb852438dc2
+ md5: 4211416ecba1866fab0c6470986c22d6
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ constrains:
+ - expat 2.7.1.*
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 74811
+ timestamp: 1752719572741
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.6.4-h240833e_0.conda
+ sha256: d10f43d0c5df6c8cf55259bce0fe14d2377eed625956cddce06f58827d288c59
+ md5: 20307f4049a735a78a29073be1be2626
+ depends:
+ - __osx >=10.13
+ constrains:
+ - expat 2.6.4.*
+ license: MIT
+ license_family: MIT
+ size: 70758
+ timestamp: 1730967204736
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.7.1-h21dd04a_0.conda
+ sha256: 689862313571b62ee77ee01729dc093f2bf25a2f99415fcfe51d3a6cd31cce7b
+ md5: 9fdeae0b7edda62e989557d645769515
+ depends:
+ - __osx >=10.13
+ constrains:
+ - expat 2.7.1.*
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 72450
+ timestamp: 1752719744781
+- conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.6.4-he0c23c2_0.conda
+ sha256: 0c0447bf20d1013d5603499de93a16b6faa92d7ead870d96305c0f065b6a5a12
+ md5: eb383771c680aa792feb529eaf9df82f
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - expat 2.6.4.*
+ license: MIT
+ license_family: MIT
+ size: 139068
+ timestamp: 1730967442102
+- conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.1-hac47afa_0.conda
+ sha256: 8432ca842bdf8073ccecf016ccc9140c41c7114dc4ec77ca754551c01f780845
+ md5: 3608ffde260281fa641e70d6e34b1b96
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ constrains:
+ - expat 2.7.1.*
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 141322
+ timestamp: 1752719767870
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2
+ sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e
+ md5: d645c6d2ac96843a2bfaccd2d62b3ac3
+ depends:
+ - libgcc-ng >=9.4.0
+ license: MIT
+ license_family: MIT
+ size: 58292
+ timestamp: 1636488182923
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda
+ sha256: 764432d32db45466e87f10621db5b74363a9f847d2b8b1f9743746cd160f06ab
+ md5: ede4673863426c0883c0063d853bbd85
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 57433
+ timestamp: 1743434498161
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.2-h0d85af4_5.tar.bz2
+ sha256: 7a2d27a936ceee6942ea4d397f9c7d136f12549d86f7617e8b6bad51e01a941f
+ md5: ccb34fb14960ad8b125962d3d79b31a9
+ license: MIT
+ license_family: MIT
+ size: 51348
+ timestamp: 1636488394370
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.4.6-h281671d_1.conda
+ sha256: 6394b1bc67c64a21a5cc73d1736d1d4193a64515152e861785c44d2cfc49edf3
+ md5: 4ca9ea59839a9ca8df84170fab4ceb41
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 51216
+ timestamp: 1743434595269
+- conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.2-h8ffe710_5.tar.bz2
+ sha256: 1951ab740f80660e9bc07d2ed3aefb874d78c107264fd810f24a1a6211d4b1a5
+ md5: 2c96d1b6915b408893f9472569dee135
+ depends:
+ - vc >=14.1,<15.0a0
+ - vs2015_runtime >=14.16.27012
+ license: MIT
+ license_family: MIT
+ size: 42063
+ timestamp: 1636489106777
+- conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.4.6-h537db12_1.conda
+ sha256: d3b0b8812eab553d3464bbd68204f007f1ebadf96ce30eb0cbc5159f72e353f5
+ md5: 85d8fa5e55ed8f93f874b3b23ed54ec6
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 44978
+ timestamp: 1743435053850
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.13.3-ha770c72_1.conda
+ sha256: 7be9b3dac469fe3c6146ff24398b685804dfc7a1de37607b84abd076f57cc115
+ md5: 51f5be229d83ecd401fb369ab96ae669
+ depends:
+ - libfreetype6 >=2.13.3
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 7693
+ timestamp: 1745369988361
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libfreetype-2.13.3-h694c41f_1.conda
+ sha256: afe0e2396844c8cfdd6256ac84cabc9af823b1727f704c137b030b85839537a6
+ md5: 07c8d3fbbe907f32014b121834b36dd5
+ depends:
+ - libfreetype6 >=2.13.3
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 7805
+ timestamp: 1745370212559
+- conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.13.3-h57928b3_1.conda
+ sha256: e5bc7d0a8d11b7b234da4fcd9d78f297f7dec3fec8bd06108fd3ac7b2722e32e
+ md5: 410ba2c8e7bdb278dfbb5d40220e39d2
+ depends:
+ - libfreetype6 >=2.13.3
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 8159
+ timestamp: 1745370227235
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.13.3-h48d6fc4_1.conda
+ sha256: 7759bd5c31efe5fbc36a7a1f8ca5244c2eabdbeb8fc1bee4b99cf989f35c7d81
+ md5: 3c255be50a506c50765a93a6644f32fe
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libpng >=1.6.47,<1.7.0a0
+ - libzlib >=1.3.1,<2.0a0
+ constrains:
+ - freetype >=2.13.3
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 380134
+ timestamp: 1745369987697
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libfreetype6-2.13.3-h40dfd5c_1.conda
+ sha256: 058165962aa64fc5a6955593212c0e1ea42ca6d6dba60ee61dff612d4c3818d7
+ md5: c76e6f421a0e95c282142f820835e186
+ depends:
+ - __osx >=10.13
+ - libpng >=1.6.47,<1.7.0a0
+ - libzlib >=1.3.1,<2.0a0
+ constrains:
+ - freetype >=2.13.3
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 357654
+ timestamp: 1745370210187
+- conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.13.3-h0b5ce68_1.conda
+ sha256: 61308653e7758ff36f80a60d598054168a1389ddfbac46d7864c415fafe18e69
+ md5: a84b7d1a13060a9372bea961a8131dbc
+ depends:
+ - libpng >=1.6.47,<1.7.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - freetype >=2.13.3
+ license: GPL-2.0-only OR FTL
+ purls: []
+ size: 337007
+ timestamp: 1745370226578
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda
+ sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569
+ md5: 3cb76c3f10d3bc7f1105b2fc9db984df
+ depends:
+ - _libgcc_mutex 0.1 conda_forge
+ - _openmp_mutex >=4.5
+ constrains:
+ - libgomp 14.2.0 h77fa898_1
+ - libgcc-ng ==14.2.0=*_1
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 848745
+ timestamp: 1729027721139
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_4.conda
+ sha256: 144e35c1c2840f2dc202f6915fc41879c19eddbb8fa524e3ca4aa0d14018b26f
+ md5: f406dcbb2e7bef90d793e50e79a2882b
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - _openmp_mutex >=4.5
+ constrains:
+ - libgcc-ng ==15.1.0=*_4
+ - libgomp 15.1.0 h767d61c_4
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 824153
+ timestamp: 1753903866511
+- conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-14.2.0-h1383e82_1.conda
+ sha256: ef840e797714440bb10b69446d815966fff41fdac79f79c4e19c475d81cd375d
+ md5: 75fdd34824997a0f9950a703b15d8ac5
+ depends:
+ - _openmp_mutex >=4.5
+ - libwinpthread >=12.0.0.r4.gg4f2fc60ca
+ constrains:
+ - libgcc-ng ==14.2.0=*_1
+ - libgomp 14.2.0 h1383e82_1
+ - msys2-conda-epoch <0.0a0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 666386
+ timestamp: 1729089506769
+- conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.1.0-h1383e82_4.conda
+ sha256: c169606e148f8df3375fdc9fe76ee3f44b8ffc2515e8131ede8f2d75cf7d6f0c
+ md5: 59fe76f0ff39b512ff889459b9fc3054
+ depends:
+ - _openmp_mutex >=4.5
+ - libwinpthread >=12.0.0.r4.gg4f2fc60ca
+ constrains:
+ - msys2-conda-epoch <0.0a0
+ - libgcc-ng ==15.1.0=*_4
+ - libgomp 15.1.0 h1383e82_4
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 668220
+ timestamp: 1753904114303
+- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-13.3.0-h84ea5a7_101.conda
+ sha256: 027cfb011328a108bc44f512a2dec6d954db85709e0b79b748c3392f85de0c64
+ md5: 0ce69d40c142915ac9734bc6134e514a
+ depends:
+ - __unix
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 2598313
+ timestamp: 1724801050802
+- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.3.0-h85bb3a7_104.conda
+ sha256: e655874112406dcf3c356a546c2cf051393985aeb36704962dc00d8da2bf95c2
+ md5: d8e4f3677752c5dc9b77a9f11b484c9d
+ depends:
+ - __unix
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 2725618
+ timestamp: 1753904712267
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda
+ sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7
+ md5: e39480b9ca41323497b05492a63bc35b
+ depends:
+ - libgcc 14.2.0 h77fa898_1
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 54142
+ timestamp: 1729027726517
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_4.conda
+ sha256: 76ceac93ed98f208363d6e9c75011b0ff7b97b20f003f06461a619557e726637
+ md5: 28771437ffcd9f3417c66012dc49a3be
+ depends:
+ - libgcc 15.1.0 h767d61c_4
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 29249
+ timestamp: 1753903872571
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda
+ sha256: fc9e7f22a17faf74da904ebfc4d88699013d2992e55505e4aa0eb01770290977
+ md5: f1fd30127802683586f768875127a987
+ depends:
+ - libgfortran5 14.2.0 hd5240d6_1
+ constrains:
+ - libgfortran-ng ==14.2.0=*_1
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 53997
+ timestamp: 1729027752995
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_4.conda
+ sha256: 2fe41683928eb3c57066a60ec441e605a69ce703fc933d6d5167debfeba8a144
+ md5: 53e876bc2d2648319e94c33c57b9ec74
+ depends:
+ - libgfortran5 15.1.0 hcea5267_4
+ constrains:
+ - libgfortran-ng ==15.1.0=*_4
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 29246
+ timestamp: 1753903898593
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.1.0-h5f6db21_1.conda
+ sha256: 844500c9372d455f6ae538ffd3cdd7fda5f53d25a2a6b3ba33060a302c37bc3e
+ md5: 07cfad6b37da6e79349c6e3a0316a83b
+ depends:
+ - libgfortran5 15.1.0 hfa3c126_1
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 133973
+ timestamp: 1756239628906
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-5.0.0-13_2_0_h97931a8_3.conda
+ sha256: 4874422e567b68334705c135c17e5acdca1404de8255673ce30ad3510e00be0d
+ md5: 0b6e23a012ee7a9a5f6b244f5a92c1d5
+ depends:
+ - libgfortran5 13.2.0 h2873a65_3
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 110106
+ timestamp: 1707328956438
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda
+ sha256: d149a37ca73611e425041f33b9d8dbed6e52ec506fe8cc1fc0ee054bddeb6d5d
+ md5: 9822b874ea29af082e5d36098d25427d
+ depends:
+ - libgcc >=14.2.0
+ constrains:
+ - libgfortran 14.2.0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 1462645
+ timestamp: 1729027735353
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_4.conda
+ sha256: 3070e5e2681f7f2fb7af0a81b92213f9ab430838900da8b4f9b8cf998ddbdd84
+ md5: 8a4ab7ff06e4db0be22485332666da0f
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=15.1.0
+ constrains:
+ - libgfortran 15.1.0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 1564595
+ timestamp: 1753903882088
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-13.2.0-h2873a65_3.conda
+ sha256: da3db4b947e30aec7596a3ef92200d17e774cccbbf7efc47802529a4ca5ca31b
+ md5: e4fb4d23ec2870ff3c40d10afe305aec
+ depends:
+ - llvm-openmp >=8.0.0
+ constrains:
+ - libgfortran 5.0.0 13_2_0_*_3
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 1571379
+ timestamp: 1707328880361
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.1.0-hfa3c126_1.conda
+ sha256: c4bb79d9e9be3e3a335282b50d18a7965e2a972b95508ea47e4086f1fd699342
+ md5: 696e408f36a5a25afdb23e862053ca82
+ depends:
+ - llvm-openmp >=8.0.0
+ constrains:
+ - libgfortran 15.1.0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 1225193
+ timestamp: 1756238834726
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_2.conda
+ sha256: dc2752241fa3d9e40ce552c1942d0a4b5eeb93740c9723873f6fcf8d39ef8d2d
+ md5: 928b8be80851f5d8ffb016f9c81dae7a
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libglvnd 1.7.0 ha4b6fd6_2
+ - libglx 1.7.0 ha4b6fd6_2
+ license: LicenseRef-libglvnd
+ purls: []
+ size: 134712
+ timestamp: 1731330998354
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libglu-9.0.3-h5888daf_1.conda
+ sha256: a0105eb88f76073bbb30169312e797ed5449ebb4e964a756104d6e54633d17ef
+ md5: 8422fcc9e5e172c91e99aef703b3ce65
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libopengl >=1.7.0,<2.0a0
+ - libstdcxx >=13
+ license: SGI-B-2.0
+ purls: []
+ size: 325262
+ timestamp: 1748692137626
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_2.conda
+ sha256: 1175f8a7a0c68b7f81962699751bb6574e6f07db4c9f72825f978e3016f46850
+ md5: 434ca7e50e40f4918ab701e3facd59a0
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ license: LicenseRef-libglvnd
+ purls: []
+ size: 132463
+ timestamp: 1731330968309
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_2.conda
+ sha256: 2d35a679624a93ce5b3e9dd301fff92343db609b79f0363e6d0ceb3a6478bfa7
+ md5: c8013e438185f33b13814c5c488acd5c
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libglvnd 1.7.0 ha4b6fd6_2
+ - xorg-libx11 >=1.8.10,<2.0a0
+ license: LicenseRef-libglvnd
+ purls: []
+ size: 75504
+ timestamp: 1731330988898
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda
+ sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63
+ md5: cc3573974587f12dda90d96e3e55a702
+ depends:
+ - _libgcc_mutex 0.1 conda_forge
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 460992
+ timestamp: 1729027639220
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_4.conda
+ sha256: e0487a8fec78802ac04da0ac1139c3510992bc58a58cde66619dde3b363c2933
+ md5: 3baf8976c96134738bba224e9ef6b1e5
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 447289
+ timestamp: 1753903801049
+- conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-14.2.0-h1383e82_1.conda
+ sha256: d8739b834608f35775209b032f0c2be752ef187863c7ec847afcebe2f681be4e
+ md5: 9e2d4d1214df6f21cba12f6eff4972f9
+ depends:
+ - libwinpthread >=12.0.0.r4.gg4f2fc60ca
+ constrains:
+ - msys2-conda-epoch <0.0a0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 524249
+ timestamp: 1729089441747
+- conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.1.0-h1383e82_4.conda
+ sha256: e4ce8693bc3250b98cbc41cc53116fb27ad63eaf851560758e8ccaf0e9b137aa
+ md5: 78582ad1a764f4a0dca2f3027a46cc5a
+ depends:
+ - libwinpthread >=12.0.0.r4.gg4f2fc60ca
+ constrains:
+ - msys2-conda-epoch <0.0a0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 535125
+ timestamp: 1753904060607
+- conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.11.2-default_ha69328c_1001.conda
+ sha256: 850e255997f538d5fb6ed651321141155a33bb781d43d326fc4ff62114dd2842
+ md5: b87a0ac5ab6495d8225db5dc72dd21cd
+ depends:
+ - libwinpthread >=12.0.0.r4.gg4f2fc60ca
+ - libxml2 >=2.13.4,<3.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 2390021
+ timestamp: 1731375651179
+- conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h88281d1_1000.conda
+ sha256: 2fb437b82912c74b4869b66c601d52c77bb3ee8cb4812eab346d379f1c823225
+ md5: e6298294e7612eccf57376a0683ddc80
+ depends:
+ - libwinpthread >=12.0.0.r4.gg4f2fc60ca
+ - libxml2 >=2.13.8,<2.14.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 2412139
+ timestamp: 1752762145331
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda
+ sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f
+ md5: 915f5995e94f60e9a4826e0b0920ee88
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ license: LGPL-2.1-only
+ purls: []
+ size: 790176
+ timestamp: 1754908768807
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda
+ sha256: a1c8cecdf9966921e13f0ae921309a1f415dfbd2b791f2117cf7e8f5e61a48b6
+ md5: 210a85a1119f97ea7887188d176db135
+ depends:
+ - __osx >=10.13
+ license: LGPL-2.1-only
+ purls: []
+ size: 737846
+ timestamp: 1754908900138
+- conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda
+ sha256: 0dcdb1a5f01863ac4e8ba006a8b0dc1a02d2221ec3319b5915a1863254d7efa7
+ md5: 64571d1dd6cdcfa25d0664a5950fdaa2
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: LGPL-2.1-only
+ purls: []
+ size: 696926
+ timestamp: 1754909290005
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda
+ sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f
+ md5: ea25936bb4080d843790b586850f82b8
+ depends:
+ - libgcc-ng >=12
+ constrains:
+ - jpeg <0.0.0a
+ license: IJG AND BSD-3-Clause AND Zlib
+ size: 618575
+ timestamp: 1694474974816
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.0-hb9d3cd8_0.conda
+ sha256: 98b399287e27768bf79d48faba8a99a2289748c65cd342ca21033fab1860d4a4
+ md5: 9fa334557db9f63da6c9285fd2a48638
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ constrains:
+ - jpeg <0.0.0a
+ license: IJG AND BSD-3-Clause AND Zlib
+ purls: []
+ size: 628947
+ timestamp: 1745268527144
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.0.0-h0dc2134_1.conda
+ sha256: d9572fd1024adc374aae7c247d0f29fdf4b122f1e3586fe62acc18067f40d02f
+ md5: 72507f8e3961bc968af17435060b6dd6
+ constrains:
+ - jpeg <0.0.0a
+ license: IJG AND BSD-3-Clause AND Zlib
+ size: 579748
+ timestamp: 1694475265912
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.0-h6e16a3a_0.conda
+ sha256: 9c0009389c1439ec96a08e3bf7731ac6f0eab794e0a133096556a9ae10be9c27
+ md5: 87537967e6de2f885a9fcebd42b7cb10
+ depends:
+ - __osx >=10.13
+ constrains:
+ - jpeg <0.0.0a
+ license: IJG AND BSD-3-Clause AND Zlib
+ purls: []
+ size: 586456
+ timestamp: 1745268522731
+- conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.0.0-hcfcfb64_1.conda
+ sha256: 4e7808e3098b4b4ed7e287f63bb24f9045cc4d95bfd39f0db870fc2837d74dff
+ md5: 3f1b948619c45b1ca714d60c7389092c
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - jpeg <0.0.0a
+ license: IJG AND BSD-3-Clause AND Zlib
+ size: 822966
+ timestamp: 1694475223854
+- conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.0-h2466b09_0.conda
+ sha256: e61b0adef3028b51251124e43eb6edf724c67c0f6736f1628b02511480ac354e
+ md5: 7c51d27540389de84852daa1cdb9c63c
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - jpeg <0.0.0a
+ license: IJG AND BSD-3-Clause AND Zlib
+ purls: []
+ size: 838154
+ timestamp: 1745268437136
+- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-28_h7ac8fdf_openblas.conda
+ build_number: 28
+ sha256: 9530e6840690b78360946390a1d29624734a6b624f02c26631fb451592cbb8ef
+ md5: 069f40bfbf1dc55c83ddb07fc6a6ef8d
+ depends:
+ - libblas 3.9.0 28_h59b9bed_openblas
+ constrains:
+ - libcblas =3.9.0=28*_openblas
+ - blas =2.128=openblas
+ - liblapacke =3.9.0=28*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 16553
+ timestamp: 1738114053556
+- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-34_h7ac8fdf_openblas.conda
+ build_number: 34
+ sha256: 9c941d5da239f614b53065bc5f8a705899326c60c9f349d9fbd7bd78298f13ab
+ md5: f05a31377b4d9a8d8740f47d1e70b70e
+ depends:
+ - libblas 3.9.0 34_h59b9bed_openblas
+ constrains:
+ - liblapacke 3.9.0 34*_openblas
+ - libcblas 3.9.0 34*_openblas
+ - blas 2.134 openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 19324
+ timestamp: 1754678435277
+- conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-28_h236ab99_openblas.conda
+ build_number: 28
+ sha256: 862267d20bd7a248cef3dad1fefe5b31d44503943bd9745de42e8be17c86c806
+ md5: edbfe8906ba99637eebb9ebe675a57d3
+ depends:
+ - libblas 3.9.0 28_h7f60823_openblas
+ constrains:
+ - liblapacke =3.9.0=28*_openblas
+ - libcblas =3.9.0=28*_openblas
+ - blas =2.128=openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 16758
+ timestamp: 1738114383382
+- conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.9.0-34_h236ab99_openblas.conda
+ build_number: 34
+ sha256: 6ecbd5c2b39e40766935c8311238cfbfcf7ca43b5eafc9bb5f883d59c705981e
+ md5: 8ddbc2de70c2fedfb4cfbcb8d5562ac8
+ depends:
+ - libblas 3.9.0 34_h7f60823_openblas
+ constrains:
+ - liblapacke 3.9.0 34*_openblas
+ - blas 2.134 openblas
+ - libcblas 3.9.0 34*_openblas
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 19548
+ timestamp: 1754678665504
+- conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-28_hacfb0e4_mkl.conda
+ build_number: 28
+ sha256: 4b4bb704f46d12f56c1dcf5525bb97aea53a110e6bde6b8d588bf43b773500da
+ md5: 5aa8e62e29e0d76b0b99b79a739cd2dd
+ depends:
+ - libblas 3.9.0 28_h576b46c_mkl
+ constrains:
+ - blas =2.128=mkl
+ - liblapacke =3.9.0=28*_mkl
+ - libcblas =3.9.0=28*_mkl
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 3732321
+ timestamp: 1738114541347
+- conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.9.0-34_hf9ab0e9_mkl.conda
+ build_number: 34
+ sha256: c65298d584551cba1b7a42537f8e0093ec9fd0e871fc80ddf9cf6ffa0efa25ae
+ md5: ba80d9feadfbafceafb0bf46d35f5886
+ depends:
+ - libblas 3.9.0 34_h5709861_mkl
+ constrains:
+ - libcblas 3.9.0 34*_mkl
+ - liblapacke 3.9.0 34*_mkl
+ - blas 2.134 mkl
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 82224
+ timestamp: 1754682540087
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm18-18.1.8-hc29ff6c_3.conda
+ sha256: c488d96dcd0b2db0438b9ec7ea92627c1c36aa21491ebcd5cc87a9c58aa0a612
+ md5: a04c2fc058fd6b0630c1a2faad322676
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - libxml2 >=2.13.5,<3.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 27771340
+ timestamp: 1737837075440
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm19-19.1.7-hc29ff6c_1.conda
+ sha256: 2b9aa347ea26e911b925aca1e96ac595f9ceacbd6ab2d7b15fbdd42b90f6a9a3
+ md5: a937150d07aa51b50ded6a0816df4a5a
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - libxml2 >=2.13.5,<2.14.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 28848197
+ timestamp: 1737782191240
+- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda
+ sha256: f2591c0069447bbe28d4d696b7fcb0c5bd0b4ac582769b89addbcf26fb3430d8
+ md5: 1a580f7796c7bf6393fddb8bbbde58dc
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ constrains:
+ - xz 5.8.1.*
+ license: 0BSD
+ purls: []
+ size: 112894
+ timestamp: 1749230047870
+- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda
+ sha256: 7e22fd1bdb8bf4c2be93de2d4e718db5c548aa082af47a7430eb23192de6bb36
+ md5: 8468beea04b9065b9807fc8b9cdc5894
+ depends:
+ - __osx >=10.13
+ constrains:
+ - xz 5.8.1.*
+ license: 0BSD
+ purls: []
+ size: 104826
+ timestamp: 1749230155443
+- conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.6.4-h2466b09_0.conda
+ sha256: 3f552b0bdefdd1459ffc827ea3bf70a6a6920c7879d22b6bfd0d73015b55227b
+ md5: c48f6ad0ef0a555b27b233dfcab46a90
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: 0BSD
+ size: 104465
+ timestamp: 1738525557254
+- conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda
+ sha256: 55764956eb9179b98de7cc0e55696f2eff8f7b83fc3ebff5e696ca358bca28cc
+ md5: c15148b2e18da456f5108ccb5e411446
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - xz 5.8.1.*
+ license: 0BSD
+ purls: []
+ size: 104935
+ timestamp: 1749230611612
+- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda
+ sha256: 329e66330a8f9cbb6a8d5995005478188eb4ba8a6b6391affa849744f4968492
+ md5: f61edadbb301530bd65a32646bd81552
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - liblzma 5.8.1 hb9d3cd8_2
+ license: 0BSD
+ purls: []
+ size: 439868
+ timestamp: 1749230061968
+- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-devel-5.8.1-hd471939_2.conda
+ sha256: a020ad9f1e27d4f7a522cbbb9613b99f64a5cc41f80caf62b9fdd1cf818acf18
+ md5: 2e16f5b4f6c92b96f6a346f98adc4e3e
+ depends:
+ - __osx >=10.13
+ - liblzma 5.8.1 hd471939_2
+ license: 0BSD
+ purls: []
+ size: 116356
+ timestamp: 1749230171181
+- conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-devel-5.6.4-h2466b09_0.conda
+ sha256: 9b185dc6889843f6660584be226c45c048e9b18598642e7455b69e277587c872
+ md5: 1e5c2564c8615e8ed993ff634e4181a9
+ depends:
+ - liblzma 5.6.4 h2466b09_0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: 0BSD
+ size: 126091
+ timestamp: 1738525583264
+- conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-devel-5.8.1-h2466b09_2.conda
+ sha256: 1ccff927a2d768403bad85e36ca3e931d96890adb4f503e1780c3412dd1e1298
+ md5: 42c90c4941c59f1b9f8fab627ad8ae76
+ depends:
+ - liblzma 5.8.1 h2466b09_2
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: 0BSD
+ purls: []
+ size: 129344
+ timestamp: 1749230637001
+- conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda
+ sha256: fc529fc82c7caf51202cc5cec5bb1c2e8d90edbac6d0a4602c966366efe3c7bf
+ md5: 74860100b2029e2523cf480804c76b9b
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 88657
+ timestamp: 1723861474602
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda
+ sha256: b0f2b3695b13a989f75d8fd7f4778e1c7aabe3b36db83f0fe80b2cd812c0e975
+ md5: 19e57602824042dfd0446292ef90488b
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - c-ares >=1.32.3,<2.0a0
+ - libev >=4.33,<4.34.0a0
+ - libev >=4.33,<5.0a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.3.2,<4.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 647599
+ timestamp: 1729571887612
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.64.0-hc7306c3_0.conda
+ sha256: 0dcfdcf3a445d2d7de4f3b186ab0a794dc872f4ea21622f9b997be72712c027f
+ md5: ab21007194b97beade22ceb7a3f6fee5
+ depends:
+ - __osx >=10.13
+ - c-ares >=1.34.2,<2.0a0
+ - libcxx >=17
+ - libev >=4.33,<4.34.0a0
+ - libev >=4.33,<5.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.3.2,<4.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 606663
+ timestamp: 1729572019083
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda
+ sha256: 927fe72b054277cde6cb82597d0fcf6baf127dcbce2e0a9d8925a68f1265eef5
+ md5: d864d34357c3b65a4b731f78c0801dc4
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: LGPL-2.1-only
+ license_family: GPL
+ purls: []
+ size: 33731
+ timestamp: 1750274110928
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda
+ sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6
+ md5: 30fd6e37fe21f86f4bd26d6ee73eeec7
+ depends:
+ - libgcc-ng >=12
+ license: LGPL-2.1-only
+ license_family: GPL
+ size: 33408
+ timestamp: 1697359010159
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda
+ sha256: 99ba271d8a80a1af2723f2e124ffd91d850074c0389c067e6d96d72a2dbfeabe
+ md5: 62857b389e42b36b686331bec0922050
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ - libgfortran
+ - libgfortran5 >=14.2.0
+ constrains:
+ - openblas >=0.3.28,<0.3.29.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 5578513
+ timestamp: 1730772671118
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_2.conda
+ sha256: 1b51d1f96e751dc945cc06f79caa91833b0c3326efe24e9b506bd64ef49fc9b0
+ md5: dfc5aae7b043d9f56ba99514d5e60625
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ - libgfortran
+ - libgfortran5 >=14.3.0
+ constrains:
+ - openblas >=0.3.30,<0.3.31.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 5938936
+ timestamp: 1755474342204
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.28-openmp_hbf64a52_1.conda
+ sha256: cef5856952688ce9303f85f5bc62c99e8c2256b4c679f63afdfb381f222e90c7
+ md5: cd2c572c02a73b88c4d378eb31110e85
+ depends:
+ - __osx >=10.13
+ - libgfortran 5.*
+ - libgfortran5 >=13.2.0
+ - llvm-openmp >=18.1.8
+ constrains:
+ - openblas >=0.3.28,<0.3.29.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6165715
+ timestamp: 1730773348340
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h83c2472_2.conda
+ sha256: 341dd45c2e88261f1f9ff76c3410355b4b0e894abe6ac89f7cbf64a3d10f0f01
+ md5: 89edf77977f520c4245567460d065821
+ depends:
+ - __osx >=10.13
+ - libgfortran
+ - libgfortran5 >=14.3.0
+ - llvm-openmp >=19.1.7
+ constrains:
+ - openblas >=0.3.30,<0.3.31.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6262457
+ timestamp: 1755473612572
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_2.conda
+ sha256: 215086c108d80349e96051ad14131b751d17af3ed2cb5a34edd62fa89bfe8ead
+ md5: 7df50d44d4a14d6c31a2c54f2cd92157
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libglvnd 1.7.0 ha4b6fd6_2
+ license: LicenseRef-libglvnd
+ purls: []
+ size: 50757
+ timestamp: 1731330993524
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.46-h943b412_0.conda
+ sha256: a46436dadd12d58155280d68876dba2d8a3badbc8074956d14fe6530c7c7eda6
+ md5: adcf7bacff219488e29cfa95a2abd8f7
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: zlib-acknowledgement
+ size: 292273
+ timestamp: 1737791061653
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.50-h421ea60_1.conda
+ sha256: e75a2723000ce3a4b9fd9b9b9ce77553556c93e475a4657db6ed01abc02ea347
+ md5: 7af8e91b0deb5f8e25d1a595dea79614
+ depends:
+ - libgcc >=14
+ - __glibc >=2.17,<3.0.a0
+ - libzlib >=1.3.1,<2.0a0
+ license: zlib-acknowledgement
+ purls: []
+ size: 317390
+ timestamp: 1753879899951
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.46-h3c4a55f_0.conda
+ sha256: a293b883b5b334555c643bb3b076018127d7e49d26d59787392b23effae4a3d9
+ md5: 82ecce167bb9c069b12968b7b1bee609
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: zlib-acknowledgement
+ size: 272958
+ timestamp: 1737791101929
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.50-h84aeda2_1.conda
+ sha256: 8d92c82bcb09908008d8cf5fab75e20733810d40081261d57ef8cd6495fc08b4
+ md5: 1fe32bb16991a24e112051cc0de89847
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: zlib-acknowledgement
+ purls: []
+ size: 297609
+ timestamp: 1753879919854
+- conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.46-had7236b_0.conda
+ sha256: c866cd79dce3f6478fa3b4bc625d5cbe0512720fd6f8d45718da9537292329cf
+ md5: 4ddc2d65b35403e6ed75545f4cb4ec98
+ depends:
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: zlib-acknowledgement
+ size: 356357
+ timestamp: 1737791350471
+- conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.50-h7351971_1.conda
+ sha256: e84b041f91c94841cb9b97952ab7f058d001d4a15ed4ce226ec5fdb267cc0fa5
+ md5: 3ae6e9f5c47c495ebeed95651518be61
+ depends:
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ - libzlib >=1.3.1,<2.0a0
+ license: zlib-acknowledgement
+ purls: []
+ size: 382709
+ timestamp: 1753879944850
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libraw-0.21.3-hca62329_0.conda
+ sha256: 4b483d963686bcc1fbe225c41f48a2ec206bc97e1d9d1c16fac2d6b5709240b8
+ md5: e99091d245425cf089b814107b40c349
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - _openmp_mutex >=4.5
+ - lcms2 >=2.16,<3.0a0
+ - libgcc >=13
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libstdcxx >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: LGPL-2.1-only
+ license_family: LGPL
+ size: 640729
+ timestamp: 1726766159397
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libraw-0.21.4-h9969a89_0.conda
+ sha256: 96bbd009b3d7f82e9af37e980af9285431ecd5c6f098a0f1afe0021d8d02b88a
+ md5: e4fdd13a67d5b30459463e925b9e7e1f
+ depends:
+ - libgcc >=13
+ - __glibc >=2.17,<3.0.a0
+ - libstdcxx >=13
+ - libgcc >=13
+ - _openmp_mutex >=4.5
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - jasper >=4.2.5,<5.0a0
+ - lcms2 >=2.17,<3.0a0
+ license: LGPL-2.1-only
+ purls: []
+ size: 704665
+ timestamp: 1744641234631
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libraw-0.21.3-h8f7feda_0.conda
+ sha256: 6b1cebffeedbc8d3ccf203b71e488361893060ac0172c1e8812ef1fda031484d
+ md5: ea73d5e8ffd5f89389303c681d48ea2b
+ depends:
+ - __osx >=10.13
+ - lcms2 >=2.16,<3.0a0
+ - libcxx >=17
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: LGPL-2.1-only
+ license_family: LGPL
+ size: 581665
+ timestamp: 1726766248079
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libraw-0.21.4-h0ade9e5_0.conda
+ sha256: 8a8927014c5e0d3ea4feae4d17cab90f6d256268c4323dc0d99762c1f00b5fe2
+ md5: bb165a63c4ccb98777a0c2f35ba646af
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - lcms2 >=2.17,<3.0a0
+ - jasper >=4.2.5,<5.0a0
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: LGPL-2.1-only
+ purls: []
+ size: 663777
+ timestamp: 1744641301951
+- conda: https://conda.anaconda.org/conda-forge/win-64/libraw-0.21.3-h0f5434b_0.conda
+ sha256: 0d2610b684cd8712bdcf0873b17b1fa3d7ce1105550264b7fd91b184a00d1a28
+ md5: 075f3d5fe250279afc5d9b221d71f84b
+ depends:
+ - lcms2 >=2.16,<3.0a0
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: LGPL-2.1-only
+ license_family: LGPL
+ size: 489267
+ timestamp: 1726766863050
+- conda: https://conda.anaconda.org/conda-forge/win-64/libraw-0.21.4-h866491b_0.conda
+ sha256: db2cd8a48e5d329eb6a324063daa63eced3761ea42badaed5c685f468695fbd3
+ md5: e5d4bf6388c45045a73d5e58e1364769
+ depends:
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ - ucrt >=10.0.20348.0
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - lcms2 >=2.17,<3.0a0
+ - jasper >=4.2.5,<5.0a0
+ license: LGPL-2.1-only
+ purls: []
+ size: 536650
+ timestamp: 1744641254166
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-13.3.0-heb74ff8_1.conda
+ sha256: c86d130f0a3099e46ff51aa7ffaab73cb44fc420d27a96076aab3b9a326fc137
+ md5: c4cb22f270f501f5c59a122dc2adf20a
+ depends:
+ - libgcc >=13.3.0
+ - libstdcxx >=13.3.0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 4133922
+ timestamp: 1724801171589
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.3.0-hd08acf3_4.conda
+ sha256: 9d28a094f14bef4b96446534414bd20c104bbc2f557cc76ecbc9343389b87e5c
+ md5: a42368edbd3a672bad21c1fe8d307dce
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14.3.0
+ - libstdcxx >=14.3.0
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 5069018
+ timestamp: 1753904903838
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.48.0-hee588c1_1.conda
+ sha256: 22853d289ef6ec8a5b20f1aa261895b06525439990d3b139f8bfd0b5c5e32a3a
+ md5: 3fa05c528d8a1e2a67bbf1e36f22d3bc
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: Unlicense
+ size: 878223
+ timestamp: 1737564987837
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.0-hee588c1_0.conda
+ sha256: 51c68794a1f32c2742cbcfc8ea8cd730bb19148bed437197380778d3a6d49385
+ md5: a12aa55f2a4446af8aa44d69ac563d58
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: Unlicense
+ size: 917347
+ timestamp: 1739176276854
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda
+ sha256: 6d9c32fc369af5a84875725f7ddfbfc2ace795c28f246dc70055a79f9b2003da
+ md5: 0b367fad34931cb79e0d6b7e5c06bb1c
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ - libzlib >=1.3.1,<2.0a0
+ license: blessing
+ purls: []
+ size: 932581
+ timestamp: 1753948484112
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.48.0-hdb6dae5_1.conda
+ sha256: ccff3309ed7b1561d3bb00f1e4f36d9d1323af998013e3182a13bf0b5dcef4ec
+ md5: 6c4d367a4916ea169d614590bdf33b7c
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: Unlicense
+ size: 926014
+ timestamp: 1737565233282
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.49.0-hdb6dae5_0.conda
+ sha256: d90d5212f9cf1a30f9e6e4f17963b4cad113581bc71f29eb592eeeb70fe72011
+ md5: a2420c8aa0c7f88f7caa9ee7a308549f
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: Unlicense
+ size: 977401
+ timestamp: 1739176558707
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.50.4-h39a8b3b_0.conda
+ sha256: 466366b094c3eb4b1d77320530cbf5400e7a10ab33e4824c200147488eebf7a6
+ md5: 156bfb239b6a67ab4a01110e6718cbc4
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: blessing
+ purls: []
+ size: 980121
+ timestamp: 1753948554003
+- conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.48.0-h67fdade_1.conda
+ sha256: eb889b9ea754d30268fa740f91e62fae6c30ca40f9769051dd42390d2470a7ff
+ md5: 5a7a8f7f68ce1bdb7b58219786436f30
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: Unlicense
+ size: 897026
+ timestamp: 1737565547561
+- conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.49.0-h67fdade_0.conda
+ sha256: ff6670afcef19234145cd7e2e3b97a6a591a09f2b98d0920b140bf175979db47
+ md5: b5aae7f19da05cb648ca214bf14ddd81
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: Unlicense
+ size: 1082337
+ timestamp: 1739176678486
+- conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.50.4-hf5d6505_0.conda
+ sha256: 5dc4f07b2d6270ac0c874caec53c6984caaaa84bc0d3eb593b0edf3dc8492efa
+ md5: ccb20d946040f86f0c05b644d5eadeca
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: blessing
+ purls: []
+ size: 1288499
+ timestamp: 1753948889360
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda
+ sha256: fa39bfd69228a13e553bd24601332b7cfeb30ca11a3ca50bb028108fe90a7661
+ md5: eecce068c7e4eddeb169591baac20ac4
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.0,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 304790
+ timestamp: 1745608545575
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda
+ sha256: 0407ac9fda2bb67e11e357066eff144c845801d00b5f664efbc48813af1e7bb9
+ md5: be2de152d8073ef1c01b7728475f2fe7
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 304278
+ timestamp: 1732349402869
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-h3dc7d44_0.conda
+ sha256: ef2a81c9a15080b996a37f0e1712881da90a710b234e63d8539d69892353de90
+ md5: b1caec4561059e43a5d056684c5a2de0
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 283874
+ timestamp: 1732349525684
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hed3591d_0.conda
+ sha256: 00654ba9e5f73aa1f75c1f69db34a19029e970a4aeb0fa8615934d8e9c369c3c
+ md5: a6cb15db1c2dc4d3a5f6cf3772e09e81
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.0,<4.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 284216
+ timestamp: 1745608575796
+- conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda
+ sha256: cbdf93898f2e27cefca5f3fe46519335d1fab25c4ea2a11b11502ff63e602c09
+ md5: 9dce2f112bfd3400f4f432b3d0ac07b2
+ depends:
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.0,<4.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 292785
+ timestamp: 1745608759342
+- conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-he619c9f_0.conda
+ sha256: 4b3256bd2b4e4b3183005d3bd8826d651eccd1a4740b70625afa2b7e7123d191
+ md5: af0cbf037dd614c34399b3b3e568c557
+ depends:
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 291889
+ timestamp: 1732349796504
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda
+ sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462
+ md5: 234a5554c53625688d51062645337328
+ depends:
+ - libgcc 14.2.0 h77fa898_1
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 3893695
+ timestamp: 1729027746910
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_4.conda
+ sha256: b5b239e5fca53ff90669af1686c86282c970dd8204ebf477cf679872eb6d48ac
+ md5: 3c376af8888c386b9d3d1c2701e2f3ab
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc 15.1.0 h767d61c_4
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 3903453
+ timestamp: 1753903894186
+- conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-13.3.0-h84ea5a7_101.conda
+ sha256: 0a9226c1b994f996229ffb54fa40d608cd4e4b48e8dc73a66134bea8ce949412
+ md5: 29b5a4ed4613fa81a07c21045e3f5bf6
+ depends:
+ - __unix
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 14074676
+ timestamp: 1724801075448
+- conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-14.3.0-h85bb3a7_104.conda
+ sha256: f912644de2d2770042abf1a7646eff4350644e6dfea64c816dca0c3f62a94fbe
+ md5: c8d0b75a145e4cc3525df0343146c459
+ depends:
+ - __unix
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 14630918
+ timestamp: 1753904753558
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda
+ sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8
+ md5: 8371ac6457591af2cf6159439c1fd051
+ depends:
+ - libstdcxx 14.2.0 hc0a3c3a_1
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ size: 54105
+ timestamp: 1729027780628
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_4.conda
+ sha256: 81c841c1cf4c0d06414aaa38a249f9fdd390554943065c3a0b18a9fb7e8cc495
+ md5: 2d34729cbc1da0ec988e57b13b712067
+ depends:
+ - libstdcxx 15.1.0 h8f9b012_4
+ license: GPL-3.0-only WITH GCC-exception-3.1
+ license_family: GPL
+ purls: []
+ size: 29317
+ timestamp: 1753903924491
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-h8261f1e_6.conda
+ sha256: c62694cd117548d810d2803da6d9063f78b1ffbf7367432c5388ce89474e9ebe
+ md5: b6093922931b535a7ba566b6f384fbe6
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - lerc >=4.0.0,<5.0a0
+ - libdeflate >=1.24,<1.25.0a0
+ - libgcc >=14
+ - libjpeg-turbo >=3.1.0,<4.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libstdcxx >=14
+ - libwebp-base >=1.6.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ license: HPND
+ purls: []
+ size: 433078
+ timestamp: 1755011934951
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda
+ sha256: b224e16b88d76ea95e4af56e2bc638c603bd26a770b98d117d04541d3aafa002
+ md5: 0ea6510969e1296cc19966fad481f6de
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - lerc >=4.0.0,<5.0a0
+ - libdeflate >=1.23,<1.24.0a0
+ - libgcc >=13
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - liblzma >=5.6.3,<6.0a0
+ - libstdcxx >=13
+ - libwebp-base >=1.4.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: HPND
+ size: 428173
+ timestamp: 1734398813264
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.0-h59ddb5d_6.conda
+ sha256: 656dc01238d4b766e35976319aba2a9b3ea707b467b7a5aad94ef49a150be7a8
+ md5: 1cb7b8054ffa9460ca3dd782062f3074
+ depends:
+ - __osx >=10.13
+ - lerc >=4.0.0,<5.0a0
+ - libcxx >=19
+ - libdeflate >=1.24,<1.25.0a0
+ - libjpeg-turbo >=3.1.0,<4.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libwebp-base >=1.6.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.7,<1.6.0a0
+ license: HPND
+ purls: []
+ size: 401676
+ timestamp: 1755012183336
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.0-hb77a491_3.conda
+ sha256: bb50df7cfc1acb11eae63c5f4fdc251d381cda96bf02c086c3202c83a5200032
+ md5: 6f2f9df7b093d6b33bc0c334acc7d2d9
+ depends:
+ - __osx >=10.13
+ - lerc >=4.0.0,<5.0a0
+ - libcxx >=18
+ - libdeflate >=1.23,<1.24.0a0
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - liblzma >=5.6.3,<6.0a0
+ - libwebp-base >=1.4.0,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: HPND
+ size: 400099
+ timestamp: 1734398943635
+- conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h550210a_6.conda
+ sha256: fd27821c8cfc425826f13760c3263d7b3b997c5372234cefa1586ff384dcc989
+ md5: 72d45aa52ebca91aedb0cfd9eac62655
+ depends:
+ - lerc >=4.0.0,<5.0a0
+ - libdeflate >=1.24,<1.25.0a0
+ - libjpeg-turbo >=3.1.0,<4.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - zstd >=1.5.7,<1.6.0a0
+ license: HPND
+ purls: []
+ size: 983988
+ timestamp: 1755012056987
+- conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.0-h797046b_3.conda
+ sha256: c363a8baba4ce12b8f01f0ab74fe8b0dc83facd89c6604f4a191084923682768
+ md5: defed79ff7a9164ad40320e3f116a138
+ depends:
+ - lerc >=4.0.0,<5.0a0
+ - libdeflate >=1.23,<1.24.0a0
+ - libjpeg-turbo >=3.0.0,<4.0a0
+ - liblzma >=5.6.3,<6.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ - zstd >=1.5.6,<1.6.0a0
+ license: HPND
+ size: 978878
+ timestamp: 1734399004259
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda
+ sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18
+ md5: 40b61aab5c7ba9ff276c41cfffe6b80b
+ depends:
+ - libgcc-ng >=12
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 33601
+ timestamp: 1680112270483
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.50.0-hb9d3cd8_0.conda
+ sha256: b4a8890023902aef9f1f33e3e35603ad9c2f16c21fdb58e968fa6c1bd3e94c0b
+ md5: 771ee65e13bc599b0b62af5359d80169
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ size: 891272
+ timestamp: 1737016632446
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda
+ sha256: c180f4124a889ac343fc59d15558e93667d894a966ec6fdb61da1604481be26b
+ md5: 0f03292cc56bf91a077a134ea8747118
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 895108
+ timestamp: 1753948278280
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.50.0-h4cb831e_0.conda
+ sha256: ec9da0a005c668c0964e0a6546c21416bab608569b5863edbdf135cee26e67d8
+ md5: c86c7473f79a3c06de468b923416aa23
+ depends:
+ - __osx >=11.0
+ license: MIT
+ license_family: MIT
+ size: 420128
+ timestamp: 1737016791074
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libuv-1.51.0-h58003a5_1.conda
+ sha256: d90dd0eee6f195a5bd14edab4c5b33be3635b674b0b6c010fb942b956aa2254c
+ md5: fbfc6cf607ae1e1e498734e256561dc3
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 422612
+ timestamp: 1753948458902
+- conda: https://conda.anaconda.org/conda-forge/win-64/libuv-1.50.0-h2466b09_0.conda
+ sha256: aeb71b2a2973ffed6d639ace6c1afef1a337836425e637d2320f3166dbaa5c80
+ md5: a63a1ec1e8d017d1b9894aed98c419da
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ size: 291944
+ timestamp: 1737017103042
+- conda: https://conda.anaconda.org/conda-forge/win-64/libuv-1.51.0-hfd05255_1.conda
+ sha256: f03dc82e6fb1725788e73ae97f0cd3d820d5af0d351a274104a0767035444c59
+ md5: 31e1545994c48efc3e6ea32ca02a8724
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 297087
+ timestamp: 1753948490874
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda
+ sha256: c45283fd3e90df5f0bd3dbcd31f59cdd2b001d424cf30a07223655413b158eaf
+ md5: 63f790534398730f59e1b899c3644d4a
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ constrains:
+ - libwebp 1.5.0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 429973
+ timestamp: 1734777489810
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda
+ sha256: 3aed21ab28eddffdaf7f804f49be7a7d701e8f0e46c856d801270b470820a37b
+ md5: aea31d2e5b1091feca96fcfe945c3cf9
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ constrains:
+ - libwebp 1.6.0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 429011
+ timestamp: 1752159441324
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.5.0-h6cf52b4_0.conda
+ sha256: 7f110eba04150f1fe5fe297f08fb5b82463eed74d1f068bc67c96637f9c63569
+ md5: 5e0cefc99a231ac46ba21e27ae44689f
+ depends:
+ - __osx >=10.13
+ constrains:
+ - libwebp 1.5.0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 357662
+ timestamp: 1734777539822
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.6.0-hb807250_0.conda
+ sha256: 00dbfe574b5d9b9b2b519acb07545380a6bc98d1f76a02695be4995d4ec91391
+ md5: 7bb6608cf1f83578587297a158a6630b
+ depends:
+ - __osx >=10.13
+ constrains:
+ - libwebp 1.6.0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 365086
+ timestamp: 1752159528504
+- conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.5.0-h3b0e114_0.conda
+ sha256: 1d75274614e83a5750b8b94f7bad2fc0564c2312ff407e697d99152ed095576f
+ md5: 33f7313967072c6e6d8f865f5493c7ae
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - libwebp 1.5.0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 273661
+ timestamp: 1734777665516
+- conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda
+ sha256: 7b6316abfea1007e100922760e9b8c820d6fc19df3f42fb5aca684cfacb31843
+ md5: f9bbae5e2537e3b06e0f7310ba76c893
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ constrains:
+ - libwebp 1.6.0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 279176
+ timestamp: 1752159543911
+- conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_9.conda
+ sha256: 373f2973b8a358528b22be5e8d84322c165b4c5577d24d94fd67ad1bb0a0f261
+ md5: 08bfa5da6e242025304b206d152479ef
+ depends:
+ - ucrt
+ constrains:
+ - pthreads-win32 <0.0a0
+ - msys2-conda-epoch <0.0a0
+ license: MIT AND BSD-3-Clause-Clear
+ purls: []
+ size: 35794
+ timestamp: 1737099561703
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda
+ sha256: 666c0c431b23c6cec6e492840b176dde533d48b7e6fb8883f5071223433776aa
+ md5: 92ed62436b625154323d40d5f2f11dd7
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - pthread-stubs
+ - xorg-libxau >=1.0.11,<2.0a0
+ - xorg-libxdmcp
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 395888
+ timestamp: 1727278577118
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda
+ sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c
+ md5: 5aa797f8787fe7a17d1b0821485b5adc
+ depends:
+ - libgcc-ng >=12
+ license: LGPL-2.1-or-later
+ purls: []
+ size: 100393
+ timestamp: 1702724383534
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.8-h04c0eec_1.conda
+ sha256: 03deb1ec6edfafc5aaeecadfc445ee436fecffcda11fcd97fde9b6632acb583f
+ md5: 10bcbd05e1c1c9d652fccb42b776a9fa
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - icu >=75.1,<76.0a0
+ - libgcc >=14
+ - libiconv >=1.18,<2.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 698448
+ timestamp: 1754315344761
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.13.8-he1bc88e_1.conda
+ sha256: 248871154c6f86f0c6d456872457ad4f5799e23c09512a473041da3b9b9ee83c
+ md5: 1d31029d8d2685d56a812dec48083483
+ depends:
+ - __osx >=10.13
+ - icu >=75.1,<76.0a0
+ - libiconv >=1.18,<2.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 611430
+ timestamp: 1754315569848
+- conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.13.8-h741aa76_1.conda
+ sha256: 32fa908bb2f2a6636dab0edaac1d4bf5ff62ad404a82d8bb16702bc5b8eb9114
+ md5: aeb49dc1f5531de13d2c0d57ffa6d0c8
+ depends:
+ - libiconv >=1.18,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 1519401
+ timestamp: 1754315497781
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h7a3aeb2_0.conda
+ sha256: 35ddfc0335a18677dd70995fa99b8f594da3beb05c11289c87b6de5b930b47a3
+ md5: 31059dc620fa57d787e3899ed0421e6d
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libxml2 >=2.13.8,<2.14.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 244399
+ timestamp: 1753273455036
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.43-h59ddae0_0.conda
+ sha256: f3456f4c823ffebadc8b28a85ef146758935646a92e345e72e0617645596907e
+ md5: 8e76996e563b8f4de1df67da0580fd95
+ depends:
+ - __osx >=10.13
+ - libxml2 >=2.13.8,<2.14.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 225189
+ timestamp: 1753273768630
+- conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.43-h25c3957_0.conda
+ sha256: 20857f1adb91cc59826e146ee6cb1157c6abf2901a93d359b1106ba87c8e770b
+ md5: e84f36aa02735c140099d992d491968d
+ depends:
+ - libxml2 >=2.13.8,<2.14.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 416974
+ timestamp: 1753273998632
+- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda
+ sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4
+ md5: edb0dca6bc32e4f4789199455a1dbeb8
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ constrains:
+ - zlib 1.3.1 *_2
+ license: Zlib
+ license_family: Other
+ purls: []
+ size: 60963
+ timestamp: 1727963148474
+- conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda
+ sha256: 8412f96504fc5993a63edf1e211d042a1fd5b1d51dedec755d2058948fcced09
+ md5: 003a54a4e32b02f7355b50a837e699da
+ depends:
+ - __osx >=10.13
+ constrains:
+ - zlib 1.3.1 *_2
+ license: Zlib
+ license_family: Other
+ purls: []
+ size: 57133
+ timestamp: 1727963183990
+- conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda
+ sha256: ba945c6493449bed0e6e29883c4943817f7c79cbff52b83360f7b341277c6402
+ md5: 41fbfac52c601159df6c01f875de31b9
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - zlib 1.3.1 *_2
+ license: Zlib
+ license_family: Other
+ purls: []
+ size: 55476
+ timestamp: 1727963768015
+- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-19.1.7-ha54dae1_0.conda
+ sha256: b5b06821b0d4143f66ba652ffe6f535696dc3a4096175d9be8b19b1a7350c86d
+ md5: 65d08c50518999e69f421838c1d5b91f
+ depends:
+ - __osx >=10.13
+ constrains:
+ - openmp 19.1.7|19.1.7.*
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ size: 304885
+ timestamp: 1736986327031
+- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-20.1.8-hf4e0ed4_2.conda
+ sha256: e91aab8de03406a3c7798d939997eeea021de7c3da263869ded0b980ce74b756
+ md5: ffb5c09a0f4576942082a3a8fc37c4a0
+ depends:
+ - __osx >=10.13
+ constrains:
+ - intel-openmp <0.0a0
+ - openmp 20.1.8|20.1.8.*
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ purls: []
+ size: 307983
+ timestamp: 1756144829047
+- conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-20.1.8-hfa2b4ca_2.conda
+ sha256: 8970b7f9057a1c2c18bfd743c6f5ce73b86197d7724423de4fa3d03911d5874b
+ md5: 2dc2edf349464c8b83a576175fc2ad42
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ constrains:
+ - intel-openmp <0.0a0
+ - openmp 20.1.8|20.1.8.*
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: APACHE
+ purls: []
+ size: 344490
+ timestamp: 1756145011384
+- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-18.1.8-hc29ff6c_3.conda
+ sha256: 694ec5d1753cfff97785f3833173c1277d0ca0711d7c78ffc1011b40e7842741
+ md5: 2585f8254d2ce24399a601e9b4e15652
+ depends:
+ - __osx >=10.13
+ - libllvm18 18.1.8 hc29ff6c_3
+ - libxml2 >=2.13.5,<3.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - llvm-tools-18 18.1.8 hc29ff6c_3
+ - zstd >=1.5.6,<1.6.0a0
+ constrains:
+ - clang 18.1.8
+ - llvm 18.1.8
+ - clang-tools 18.1.8
+ - llvmdev 18.1.8
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 88081
+ timestamp: 1737837724397
+- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-19.1.7-h3fe3016_1.conda
+ sha256: 473bc7c6edba8a19e17774545e5b582a7097fcadf0ed8ae16c5b39df955e248a
+ md5: 9275202e21af00428e7cc23d28b2d2ca
+ depends:
+ - __osx >=10.13
+ - libllvm19 19.1.7 hc29ff6c_1
+ - llvm-tools-19 19.1.7 he90a8e3_1
+ constrains:
+ - llvmdev 19.1.7
+ - clang 19.1.7
+ - clang-tools 19.1.7
+ - llvm 19.1.7
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 87412
+ timestamp: 1737782713306
+- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-18-18.1.8-hc29ff6c_3.conda
+ sha256: 7a302073bd476d19474272471a5ed7ecec935e65fe16bb3f35e3d5d070ce0466
+ md5: 61dfcd8dc654e2ca399a214641ab549f
+ depends:
+ - __osx >=10.13
+ - libllvm18 18.1.8 hc29ff6c_3
+ - libxml2 >=2.13.5,<3.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ size: 25229705
+ timestamp: 1737837655816
+- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-tools-19-19.1.7-he90a8e3_1.conda
+ sha256: f61ff471024bdf1964c06b30dd46d44f6bc2d1af3c1d924a3448cd2e0ce611c6
+ md5: eb6f2bb07f6409f943ee12fabd23bea7
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - libllvm19 19.1.7 hc29ff6c_1
+ - libzlib >=1.3.1,<2.0a0
+ - zstd >=1.5.6,<1.6.0a0
+ license: Apache-2.0 WITH LLVM-exception
+ license_family: Apache
+ purls: []
+ size: 17631684
+ timestamp: 1737782657331
+- conda: https://conda.anaconda.org/conda-forge/linux-64/lxml-6.0.1-py312h70dad80_0.conda
+ sha256: d52d4955733a2bed23d381783161311e5dc5a39308f7ee488aa4a6e8bf1506d6
+ md5: c3a5588db43fdabededaf958ace2334c
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ - libxml2 >=2.13.8,<2.14.0a0
+ - libxslt >=1.1.43,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause and MIT-CMU
+ purls:
+ - pkg:pypi/lxml?source=hash-mapping
+ size: 1611694
+ timestamp: 1755885885464
+- conda: https://conda.anaconda.org/conda-forge/osx-64/lxml-6.0.1-py312ha108ba6_0.conda
+ sha256: 6b9bb0fd7c1fefdb882bcbc19d8f1b129d7d24a84e3f4e2addd38d667c46ee46
+ md5: 9572f116c19b4b0ecd1cd035e664d37c
+ depends:
+ - __osx >=10.13
+ - libxml2 >=2.13.8,<2.14.0a0
+ - libxslt >=1.1.43,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause and MIT-CMU
+ purls:
+ - pkg:pypi/lxml?source=hash-mapping
+ size: 1410674
+ timestamp: 1755886058218
+- conda: https://conda.anaconda.org/conda-forge/win-64/lxml-6.0.1-py312hc85b015_0.conda
+ sha256: efdc69ab1ecf5995e34e0378d2faee09ed3ea43b9e8b39ae039f5c429d020ee9
+ md5: 6fa26df885238410e32f139cc9e46bfb
+ depends:
+ - libxml2 >=2.13.8,<2.14.0a0
+ - libxslt >=1.1.43,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: BSD-3-Clause and MIT-CMU
+ purls:
+ - pkg:pypi/lxml?source=hash-mapping
+ size: 1234085
+ timestamp: 1755886164704
+- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda
+ sha256: 4a6bf68d2a2b669fecc9a4a009abd1cf8e72c2289522ff00d81b5a6e51ae78f5
+ md5: eb227c3e0bf58f5bd69c0532b157975b
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - jinja2 >=3.0.0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/markupsafe?source=hash-mapping
+ size: 24604
+ timestamp: 1733219911494
+- conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.2-py312h3520af0_1.conda
+ sha256: d521e272f7789ca62e7617058a4ea3bd79efa73de1a39732df209ca5299e64e2
+ md5: 32d6bc2407685d7e2d8db424f42018c6
+ depends:
+ - __osx >=10.13
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - jinja2 >=3.0.0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/markupsafe?source=hash-mapping
+ size: 23888
+ timestamp: 1733219886634
+- conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.2-py312h31fea79_1.conda
+ sha256: bbb9595fe72231a8fbc8909cfa479af93741ecd2d28dfe37f8f205fef5df2217
+ md5: 944fdd848abfbd6929e57c790b8174dd
+ depends:
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - jinja2 >=3.0.0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/markupsafe?source=hash-mapping
+ size: 27582
+ timestamp: 1733220007802
+- conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h57928b3_16.conda
+ sha256: ce841e7c3898764154a9293c0f92283c1eb28cdacf7a164c94b632a6af675d91
+ md5: 5cddc979c74b90cf5e5cda4f97d5d8bb
+ depends:
+ - llvm-openmp >=20.1.8
+ - tbb 2021.*
+ license: LicenseRef-IntelSimplifiedSoftwareOct2022
+ license_family: Proprietary
+ purls: []
+ size: 103088799
+ timestamp: 1753975600547
+- conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2024.2.2-h66d3029_15.conda
+ sha256: 20e52b0389586d0b914a49cd286c5ccc9c47949bed60ca6df004d1d295f2edbd
+ md5: 302dff2807f2927b3e9e0d19d60121de
+ depends:
+ - intel-openmp 2024.*
+ - tbb 2021.*
+ license: LicenseRef-IntelSimplifiedSoftwareOct2022
+ license_family: Proprietary
+ size: 103106385
+ timestamp: 1730232843711
+- conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.1-h90cbb55_3.conda
+ sha256: f25d2474dd557ca66c6231c8f5ace5af312efde1ba8290a6ea5e1732a4e669c0
+ md5: 2eeb50cab6652538eee8fc0bc3340c81
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - gmp >=6.3.0,<7.0a0
+ - libgcc >=13
+ license: LGPL-3.0-only
+ license_family: LGPL
+ purls: []
+ size: 634751
+ timestamp: 1725746740014
+- conda: https://conda.anaconda.org/conda-forge/osx-64/mpfr-4.2.1-haed47dc_3.conda
+ sha256: dddb6721dff05b8dfb654c532725330231fcb81ff1e27d885ee0cdcc9fccf1c4
+ md5: d511e58aaaabfc23136880d9956fa7a6
+ depends:
+ - __osx >=10.13
+ - gmp >=6.3.0,<7.0a0
+ license: LGPL-3.0-only
+ license_family: LGPL
+ purls: []
+ size: 373396
+ timestamp: 1725746891597
+- conda: https://conda.anaconda.org/conda-forge/win-64/mpfr-4.2.1-hbc20e70_3.conda
+ sha256: 4c8033476b623aed34f71482c03f892587166fd97227a1b576f15cd26da940db
+ md5: 9714a8ef685435ac5437defa415ffc5c
+ depends:
+ - gmp >=6.3.0,<7.0a0
+ - libgcc >=13
+ - libwinpthread >=12.0.0.r4.gg4f2fc60ca
+ - ucrt >=10.0.20348.0
+ license: LGPL-3.0-only
+ license_family: LGPL
+ purls: []
+ size: 654269
+ timestamp: 1725748295260
+- conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda
+ sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1
+ md5: e9c622e0d00fa24a6292279af3ab6d06
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ size: 11766
+ timestamp: 1745776666688
+- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda
+ sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586
+ md5: 47e340acb35de30501a76c7c799c41d7
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: X11 AND BSD-3-Clause
+ purls: []
+ size: 891641
+ timestamp: 1738195959188
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda
+ sha256: ea4a5d27ded18443749aefa49dc79f6356da8506d508b5296f60b8d51e0c4bd9
+ md5: ced34dd9929f491ca6dab6a2927aff25
+ depends:
+ - __osx >=10.13
+ license: X11 AND BSD-3-Clause
+ purls: []
+ size: 822259
+ timestamp: 1738196181298
+- conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.5-pyhe01879c_0.conda
+ sha256: 02019191a2597865940394ff42418b37bc585a03a1c643d7cea9981774de2128
+ md5: 16bff3d37a4f99e3aa089c36c2b8d650
+ depends:
+ - python >=3.11
+ - python
+ constrains:
+ - numpy >=1.25
+ - scipy >=1.11.2
+ - matplotlib >=3.8
+ - pandas >=2.0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/networkx?source=hash-mapping
+ size: 1564462
+ timestamp: 1749078300258
+- conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.12.1-h297d8ca_0.conda
+ sha256: 40f7b76b07067935f8a5886aab0164067b7aa71eb5ad20b7278618c0c2c98e06
+ md5: 3aa1c7e292afeff25a0091ddd7c69b72
+ depends:
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ license: Apache-2.0
+ license_family: Apache
+ size: 2198858
+ timestamp: 1715440571685
+- conda: https://conda.anaconda.org/conda-forge/linux-64/ninja-1.13.1-h171cf75_0.conda
+ sha256: 1522b6d4a55af3b5a4475db63a608aad4c250af9f05050064298dcebe5957d38
+ md5: 6567fa1d9ca189076d9443a0b125541c
+ depends:
+ - libstdcxx >=14
+ - libgcc >=14
+ - __glibc >=2.17,<3.0.a0
+ license: Apache-2.0
+ license_family: APACHE
+ purls: []
+ size: 186326
+ timestamp: 1752218296032
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ninja-1.12.1-h3c5361c_0.conda
+ sha256: 230f11a2f73955b67550be09a0c1fd053772f5e01e98d5873547d63ebea73229
+ md5: a0ebabd021c8191aeb82793fe43cfdcb
+ depends:
+ - __osx >=10.13
+ - libcxx >=16
+ license: Apache-2.0
+ license_family: Apache
+ size: 124942
+ timestamp: 1715440780183
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ninja-1.13.1-h0ba0a54_0.conda
+ sha256: e920fc52ab18d8bd03d26e9ffe6a44ae1683d2811eaef8289051a34b738a799a
+ md5: 71576ca895305a20c73304fcb581ae1a
+ depends:
+ - __osx >=10.13
+ - libcxx >=19
+ license: Apache-2.0
+ license_family: APACHE
+ purls: []
+ size: 177958
+ timestamp: 1752218300571
+- conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.12.1-hc790b64_0.conda
+ sha256: b821cb72cb3ef08fab90a9bae899510e6cf3c23b5da6070d1ec30099dfe6a5be
+ md5: a557dde55343e03c68cd7e29e7f87279
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: Apache-2.0
+ license_family: Apache
+ size: 285150
+ timestamp: 1715441052517
+- conda: https://conda.anaconda.org/conda-forge/win-64/ninja-1.13.1-h477610d_0.conda
+ sha256: c5d1da3a21e1749286dba462e05be817bfb9ff50597e6f13645c98138a50cd56
+ md5: b8a603d4b32e113e3551b257b677de67
+ depends:
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ license: Apache-2.0
+ license_family: APACHE
+ purls: []
+ size: 309517
+ timestamp: 1752218329097
+- conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.11.3-he02047a_1.conda
+ sha256: ce4bcced4f8eea71b7cac8bc3daac097abf7a5792f278cd811dedada199500c1
+ md5: e46f7ac4917215b49df2ea09a694a3fa
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ license: MIT
+ license_family: MIT
+ size: 122743
+ timestamp: 1723652407663
+- conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h3f2d84a_0.conda
+ sha256: e2fc624d6f9b2f1b695b6be6b905844613e813aa180520e73365062683fe7b49
+ md5: d76872d096d063e226482c99337209dc
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 135906
+ timestamp: 1744445169928
+- conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.11.3-hf036a51_1.conda
+ sha256: 41b1aa2a67654917c9c32a5f0111970b11cfce49ed57cf44bba4aefdcd59e54b
+ md5: 00c3efa95b3a010ee85bc36aac6ab2f6
+ depends:
+ - __osx >=10.13
+ - libcxx >=16
+ license: MIT
+ license_family: MIT
+ size: 122773
+ timestamp: 1723652497933
+- conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h92383a6_0.conda
+ sha256: b3bcb65c023d2e9f5e5e809687cfede587cc71ea9f037c45b1f87727003583db
+ md5: 9334c0f8d63ac55ff03e3b9cef9e371c
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 136237
+ timestamp: 1744445192082
+- conda: https://conda.anaconda.org/conda-forge/win-64/nlohmann_json-3.11.3-he0c23c2_1.conda
+ sha256: 106af14431772a6bc659e8d5a3bb1930cf1010b85e0e7eca99ecd3e556e91470
+ md5: 340cbb4ab78c90cd9d08f826ad22aed2
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ size: 124255
+ timestamp: 1723652081336
+- conda: https://conda.anaconda.org/conda-forge/win-64/nlohmann_json-3.12.0-he0c23c2_0.conda
+ sha256: 046a033594e87705de4edab215ceb567ea24e205fbd058d3fbfd7055b8a80fa4
+ md5: 401617c1ad869b46966165aba18466fd
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 134432
+ timestamp: 1744445192270
+- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.2-py312h72c5963_0.conda
+ sha256: c4161495b60f31de75b7ae5af3c93d5f3cd89ca0a53f132e3f9ea5ce1024bfd7
+ md5: 7e984cb31e0366d1812096b41b361425
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libblas >=3.9.0,<4.0a0
+ - libcblas >=3.9.0,<4.0a0
+ - libgcc >=13
+ - liblapack >=3.9.0,<4.0a0
+ - libstdcxx >=13
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - numpy-base <0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 8480583
+ timestamp: 1737331690623
+- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.2-py312h33ff503_2.conda
+ sha256: 0348fcaaefba8b77e7f9889a0d8ed356ff8aa53c1b69b47697b5c8c5f7d33b0e
+ md5: b6daf7dbe075ac2ae2ad59cdc45aa8c4
+ depends:
+ - python
+ - __glibc >=2.17,<3.0.a0
+ - libstdcxx >=14
+ - libgcc >=14
+ - libblas >=3.9.0,<4.0a0
+ - libcblas >=3.9.0,<4.0a0
+ - python_abi 3.12.* *_cp312
+ - liblapack >=3.9.0,<4.0a0
+ constrains:
+ - numpy-base <0a0
+ license: BSD-3-Clause
+ purls:
+ - pkg:pypi/numpy?source=hash-mapping
+ size: 8785544
+ timestamp: 1756343060399
+- conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.2.2-py312h6693b03_0.conda
+ sha256: 5e2e6e06cf0a762e76c1a6d66cd3b46b710b659a14555ca14c2580ad3616b21c
+ md5: e223d8b92079f7a27355bedc72d74291
+ depends:
+ - __osx >=10.13
+ - libblas >=3.9.0,<4.0a0
+ - libcblas >=3.9.0,<4.0a0
+ - libcxx >=18
+ - liblapack >=3.9.0,<4.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ constrains:
+ - numpy-base <0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 7572175
+ timestamp: 1737331525721
+- conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.2-py312hda18a35_2.conda
+ sha256: a6540036fc49d2a5f044adc567b148c2c22bdef34a6a4957727083bb4127995e
+ md5: 95fac8d8fcce82d91e07aba451c7cdaa
+ depends:
+ - python
+ - __osx >=10.13
+ - libcxx >=19
+ - python_abi 3.12.* *_cp312
+ - libblas >=3.9.0,<4.0a0
+ - libcblas >=3.9.0,<4.0a0
+ - liblapack >=3.9.0,<4.0a0
+ constrains:
+ - numpy-base <0a0
+ license: BSD-3-Clause
+ purls:
+ - pkg:pypi/numpy?source=hash-mapping
+ size: 7945733
+ timestamp: 1756343067826
+- conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.2.2-py312h3150e54_0.conda
+ sha256: 81042833d4756b9e59c438c871156eb55952ca3ce4252d7b794cac25ddb2b91f
+ md5: cba08d3c789f57ff31e45fbd54333428
+ depends:
+ - libblas >=3.9.0,<4.0a0
+ - libcblas >=3.9.0,<4.0a0
+ - liblapack >=3.9.0,<4.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - numpy-base <0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 7111468
+ timestamp: 1737332033876
+- conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.2-py312ha72d056_2.conda
+ sha256: 86591a692a02eafcc33d4f35b26b53471dd8ab53492a58052461d5da037806c3
+ md5: d98b7ec5211b2e197e7e0991757116cb
+ depends:
+ - python
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ - python_abi 3.12.* *_cp312
+ - libcblas >=3.9.0,<4.0a0
+ - libblas >=3.9.0,<4.0a0
+ - liblapack >=3.9.0,<4.0a0
+ constrains:
+ - numpy-base <0a0
+ license: BSD-3-Clause
+ purls:
+ - pkg:pypi/numpy?source=hash-mapping
+ size: 7376601
+ timestamp: 1756343079617
+- conda: https://conda.anaconda.org/conda-forge/linux-64/occt-7.8.1-novtk_he2768ca_103.conda
+ sha256: 801a89aad7276a56117f418ed0ebf1a94fc94b559651898bf679fadef6f98fe9
+ md5: 2cc93f4634b2e18f9fd25ee0effda18e
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - fontconfig >=2.14.2,<3.0a0
+ - fonts-conda-ecosystem
+ - freeimage >=3.18.0,<3.19.0a0
+ - freetype >=2.12.1,<3.0a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - rapidjson
+ - xorg-libxt >=1.3.0,<2.0a0
+ license: LGPL-2.1-only
+ license_family: LGPL
+ size: 28405633
+ timestamp: 1729329914579
+- conda: https://conda.anaconda.org/conda-forge/linux-64/occt-7.9.0-novtk_h09ba48e_104.conda
+ sha256: 567102a4fa3d5387525247db2738019f9ec3a7df13ec583d5671aafbd8f7491c
+ md5: e5719f35e66af1261068f3bfa24875b2
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - fontconfig >=2.15.0,<3.0a0
+ - fonts-conda-ecosystem
+ - freeimage >=3.18.0,<3.19.0a0
+ - freetype
+ - libfreetype >=2.13.3
+ - libfreetype6 >=2.13.3
+ - libgcc >=13
+ - libgl >=1.7.0,<2.0a0
+ - libstdcxx >=13
+ - rapidjson
+ - xorg-libx11 >=1.8.12,<2.0a0
+ - xorg-libxt >=1.3.1,<2.0a0
+ license: LGPL-2.1-only
+ license_family: LGPL
+ purls: []
+ size: 24952098
+ timestamp: 1751411255412
+- conda: https://conda.anaconda.org/conda-forge/osx-64/occt-7.8.1-novtk_h6d54593_103.conda
+ sha256: 4a20b71ca27c5a0cfb18e6821e46fce8beef8e659583fc43ea9575e55c3e3fc9
+ md5: 21bf8bede9c8e7f9970d8e7b4df9af3d
+ depends:
+ - __osx >=10.13
+ - fontconfig >=2.14.2,<3.0a0
+ - fonts-conda-ecosystem
+ - freeimage >=3.18.0,<3.19.0a0
+ - freetype >=2.12.1,<3.0a0
+ - libcxx >=17
+ - rapidjson
+ license: LGPL-2.1-only
+ license_family: LGPL
+ size: 24934160
+ timestamp: 1729328376404
+- conda: https://conda.anaconda.org/conda-forge/osx-64/occt-7.9.0-novtk_h7eef8d4_104.conda
+ sha256: 3e76e45314fe3ab0ee419df387f8f10bac42fc351558a169289b428077295bdc
+ md5: e3a39e4ed5eba86a9610d688d28d9c53
+ depends:
+ - __osx >=10.13
+ - fontconfig >=2.15.0,<3.0a0
+ - fonts-conda-ecosystem
+ - freeimage >=3.18.0,<3.19.0a0
+ - freetype
+ - libcxx >=18
+ - libfreetype >=2.13.3
+ - libfreetype6 >=2.13.3
+ - rapidjson
+ license: LGPL-2.1-only
+ license_family: LGPL
+ purls: []
+ size: 25176639
+ timestamp: 1751411042717
+- conda: https://conda.anaconda.org/conda-forge/win-64/occt-7.8.1-novtk_hdfbec02_103.conda
+ sha256: 28e3da6feaec750f1a7b64f0aebc7a5f209d64ce3cbc49a3d1a22d2c81ff32d1
+ md5: 6d69bb81e6f74e7818c3ba59fa026467
+ depends:
+ - fontconfig >=2.14.2,<3.0a0
+ - fonts-conda-ecosystem
+ - freeimage >=3.18.0,<3.19.0a0
+ - freetype >=2.12.1,<3.0a0
+ - rapidjson
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: LGPL-2.1-only
+ license_family: LGPL
+ size: 24745172
+ timestamp: 1729330315091
+- conda: https://conda.anaconda.org/conda-forge/win-64/occt-7.9.0-novtk_h9449c50_104.conda
+ sha256: 118f8c26cffd8302452340b17e2da10362ab979f14b4893915d90b65ffb2c121
+ md5: 9c9150d2948565d47bcea2b3926d8f15
+ depends:
+ - fontconfig >=2.15.0,<3.0a0
+ - fonts-conda-ecosystem
+ - freeimage >=3.18.0,<3.19.0a0
+ - freetype
+ - libfreetype >=2.13.3
+ - libfreetype6 >=2.13.3
+ - rapidjson
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: LGPL-2.1-only
+ license_family: LGPL
+ purls: []
+ size: 24531205
+ timestamp: 1751413672290
+- conda: https://conda.anaconda.org/conda-forge/linux-64/openexr-3.3.2-h6326327_1.conda
+ sha256: c4fe8f44c5c7c7cb872a518c9e279dc351047c479bda498bfd229ac58e6aff65
+ md5: 3d2b6258db35c422c95ad89b72bf0aae
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - imath >=3.1.12,<3.1.13.0a0
+ - libdeflate >=1.23,<1.24.0a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 1406200
+ timestamp: 1734400244945
+- conda: https://conda.anaconda.org/conda-forge/linux-64/openexr-3.3.5-h09fa569_0.conda
+ sha256: db6bac8013542227eda2153b7473b10faef11fd2bae57591d1f729993109e152
+ md5: f46ae82586acba0872546bd79261fafc
+ depends:
+ - libstdcxx >=14
+ - libgcc >=14
+ - __glibc >=2.17,<3.0.a0
+ - libdeflate >=1.24,<1.25.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - imath >=3.1.12,<3.1.13.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 1326814
+ timestamp: 1753614941084
+- conda: https://conda.anaconda.org/conda-forge/osx-64/openexr-3.3.2-heaa778b_1.conda
+ sha256: 4b2380eec838014d6f9726acf94b02167aff0e5c5914aefccd5b7ceaf3f6d6d2
+ md5: a61b89428c31ed7b31cbf01f1d380c50
+ depends:
+ - __osx >=10.13
+ - imath >=3.1.12,<3.1.13.0a0
+ - libcxx >=18
+ - libdeflate >=1.23,<1.24.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 1218664
+ timestamp: 1734400517405
+- conda: https://conda.anaconda.org/conda-forge/osx-64/openexr-3.3.5-h5783f79_0.conda
+ sha256: e332c1c123ad002b133c01d51d136c7cddec47d1d9223ab5e6ff6cbf8ee78759
+ md5: 63253e9bc101dc92563862c5c617de00
+ depends:
+ - libcxx >=19
+ - __osx >=10.13
+ - imath >=3.1.12,<3.1.13.0a0
+ - libdeflate >=1.24,<1.25.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 1132521
+ timestamp: 1753614982652
+- conda: https://conda.anaconda.org/conda-forge/win-64/openexr-3.3.2-h3924f79_1.conda
+ sha256: 78064a2ffa02d3a23f27f63f04ac0ab9ad6ab95f61b2fe5e67ba883366694930
+ md5: 88a5c7a59a7740104f0bfac86225a53d
+ depends:
+ - imath >=3.1.12,<3.1.13.0a0
+ - libdeflate >=1.23,<1.24.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 1179194
+ timestamp: 1734400780381
+- conda: https://conda.anaconda.org/conda-forge/win-64/openexr-3.3.5-h4750f91_0.conda
+ sha256: d1ba290a484da1dcb6900a94a6b0a9e37799a056b6416c81fdae46fd73224094
+ md5: 1adc969e971c0265e57f2fe0fce7035c
+ depends:
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ - libdeflate >=1.24,<1.25.0a0
+ - imath >=3.1.12,<3.1.13.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 1060265
+ timestamp: 1753614985511
+- conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h55fea9a_1.conda
+ sha256: 0b7396dacf988f0b859798711b26b6bc9c6161dca21bacfd778473da58730afa
+ md5: 01243c4aaf71bde0297966125aea4706
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=14
+ - libpng >=1.6.50,<1.7.0a0
+ - libstdcxx >=14
+ - libtiff >=4.7.0,<4.8.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 357828
+ timestamp: 1754297886899
+- conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda
+ sha256: 5bee706ea5ba453ed7fd9da7da8380dd88b865c8d30b5aaec14d2b6dd32dbc39
+ md5: 9e5816bc95d285c115a3ebc2f8563564
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libpng >=1.6.44,<1.7.0a0
+ - libstdcxx >=13
+ - libtiff >=4.7.0,<4.8.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 342988
+ timestamp: 1733816638720
+- conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.3-h036ada5_1.conda
+ sha256: fea2a79edb123fda31d73857e96b6cd24404a31d41693d8ef41235caed74b28e
+ md5: 38f264b121a043cf379980c959fb2d75
+ depends:
+ - __osx >=10.13
+ - libcxx >=19
+ - libpng >=1.6.50,<1.7.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 336370
+ timestamp: 1754297904811
+- conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.3-h7fd6d84_0.conda
+ sha256: faea03f36c9aa3524c911213b116da41695ff64b952d880551edee2843fe115b
+ md5: 025c711177fc3309228ca1a32374458d
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - libpng >=1.6.44,<1.7.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 332320
+ timestamp: 1733816828284
+- conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h24db6dd_1.conda
+ sha256: c29cb1641bc5cfc2197e9b7b436f34142be4766dd2430a937b48b7474935aa55
+ md5: 25f45acb1a234ad1c9b9a20e1e6c559e
+ depends:
+ - libpng >=1.6.50,<1.7.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: BSD-2-Clause
+ license_family: BSD
+ purls: []
+ size: 245076
+ timestamp: 1754298075628
+- conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.3-h4d64b90_0.conda
+ sha256: 410175815df192f57a07c29a6b3fdd4231937173face9e63f0830c1234272ce3
+ md5: fc050366dd0b8313eb797ed1ffef3a29
+ depends:
+ - libpng >=1.6.44,<1.7.0a0
+ - libtiff >=4.7.0,<4.8.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-2-Clause
+ license_family: BSD
+ size: 240148
+ timestamp: 1733817010335
+- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda
+ sha256: f62f6bca4a33ca5109b6d571b052a394d836956d21b25b7ffd03376abf7a481f
+ md5: 4ce6875f75469b2757a65e10a5d05e31
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - ca-certificates
+ - libgcc >=13
+ license: Apache-2.0
+ license_family: Apache
+ size: 2937158
+ timestamp: 1736086387286
+- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.2-h26f9b46_0.conda
+ sha256: c9f54d4e8212f313be7b02eb962d0cb13a8dae015683a403d3accd4add3e520e
+ md5: ffffb341206dd0dab0c36053c048d621
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - ca-certificates
+ - libgcc >=14
+ license: Apache-2.0
+ license_family: Apache
+ purls: []
+ size: 3128847
+ timestamp: 1754465526100
+- conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.4.0-hc426f3f_1.conda
+ sha256: 879a960d586cf8a64131ac0c060ef575cfb8aa9f6813093cba92042a86ee867c
+ md5: eaae23dbfc9ec84775097898526c72ea
+ depends:
+ - __osx >=10.13
+ - ca-certificates
+ license: Apache-2.0
+ license_family: Apache
+ size: 2590210
+ timestamp: 1736086530077
+- conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.5.2-h6e31bce_0.conda
+ sha256: 8be57a11019666aa481122c54e29afd604405b481330f37f918e9fbcd145ef89
+ md5: 22f5d63e672b7ba467969e9f8b740ecd
+ depends:
+ - __osx >=10.13
+ - ca-certificates
+ license: Apache-2.0
+ license_family: Apache
+ purls: []
+ size: 2743708
+ timestamp: 1754466962243
+- conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.4.0-ha4e3fda_1.conda
+ sha256: 519a06eaab7c878fbebb8cab98ea4a4465eafb1e9ed8c6ce67226068a80a92f0
+ md5: fb45308ba8bfe1abf1f4a27bad24a743
+ depends:
+ - ca-certificates
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: Apache-2.0
+ license_family: Apache
+ size: 8462960
+ timestamp: 1736088436984
+- conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.5.2-h725018a_0.conda
+ sha256: 2413f3b4606018aea23acfa2af3c4c46af786739ab4020422e9f0c2aec75321b
+ md5: 150d3920b420a27c0848acca158f94dc
+ depends:
+ - ca-certificates
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: Apache-2.0
+ license_family: Apache
+ purls: []
+ size: 9275175
+ timestamp: 1754467904482
+- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda
+ sha256: 289861ed0c13a15d7bbb408796af4de72c2fe67e2bcb0de98f4c3fce259d7991
+ md5: 58335b26c38bf4a20f399384c33cbcf9
+ depends:
+ - python >=3.8
+ - python
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/packaging?source=hash-mapping
+ size: 62477
+ timestamp: 1745345660407
+- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda
+ sha256: 9f64009cdf5b8e529995f18e03665b03f5d07c0b17445b8badef45bde76249ee
+ md5: 617f15191456cc6a13db418a275435e5
+ depends:
+ - python >=3.9
+ license: MPL-2.0
+ license_family: MOZILLA
+ size: 41075
+ timestamp: 1733233471940
+- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.44-hba22ea6_2.conda
+ sha256: 1087716b399dab91cc9511d6499036ccdc53eb29a288bebcb19cf465c51d7c0d
+ md5: df359c09c41cd186fffb93a2d87aa6f5
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - bzip2 >=1.0.8,<2.0a0
+ - libgcc-ng >=12
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 952308
+ timestamp: 1723488734144
+- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.45-hc749103_0.conda
+ sha256: 27c4014f616326240dcce17b5f3baca3953b6bc5f245ceb49c3fa1e6320571eb
+ md5: b90bece58b4c2bf25969b70f3be42d25
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - bzip2 >=1.0.8,<2.0a0
+ - libgcc >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 1197308
+ timestamp: 1745955064657
+- conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.44-h7634a1b_2.conda
+ sha256: 336057fce69d45e1059f138beb38d60eb87ba858c3ad729ed49d9ecafd23669f
+ md5: 58cde0663f487778bcd7a0c8daf50293
+ depends:
+ - __osx >=10.13
+ - bzip2 >=1.0.8,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 854306
+ timestamp: 1723488807216
+- conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.45-hf733adb_0.conda
+ sha256: 5b2c93ee8714c17682cd926127f1e712efef00441a79732635a80b24f5adc212
+ md5: d9f1976154f2f45588251dcfc48bcdda
+ depends:
+ - __osx >=10.13
+ - bzip2 >=1.0.8,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 1086588
+ timestamp: 1745955211398
+- conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.44-h3d7b363_2.conda
+ sha256: f4a12cbf8a7c5bfa2592b9dc92b492c438781898e5b02f397979b0be6e1b5851
+ md5: a3a3baddcfb8c80db84bec3cb7746fb8
+ depends:
+ - bzip2 >=1.0.8,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 820831
+ timestamp: 1723489427046
+- conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.45-h99c9b8b_0.conda
+ sha256: 165d6f76e7849615cfa5fe5f0209b90103102db17a7b4632f933fa9c0e8d8bfe
+ md5: f4c483274001678e129f5cbaf3a8d765
+ depends:
+ - bzip2 >=1.0.8,<2.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 1040584
+ timestamp: 1745955875845
+- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.4.0-pyhcf101f3_0.conda
+ sha256: dfe0fa6e351d2b0cef95ac1a1533d4f960d3992f9e0f82aeb5ec3623a699896b
+ md5: cc9d9a3929503785403dbfad9f707145
+ depends:
+ - python >=3.10
+ - python
+ license: MIT
+ size: 23653
+ timestamp: 1756227402815
+- conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda
+ sha256: a8eb555eef5063bbb7ba06a379fa7ea714f57d9741fe0efdb9442dbbc2cccbcc
+ md5: 7da7ccd349dbf6487a7778579d2bb971
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pluggy?source=hash-mapping
+ size: 24246
+ timestamp: 1747339794916
+- conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda
+ sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973
+ md5: b3c17d95b5a10c6e64a21fa17573e70e
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 8252
+ timestamp: 1726802366959
+- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda
+ sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6
+ md5: 12c566707c80111f9799308d9e265aef
+ depends:
+ - python >=3.9
+ - python
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/pycparser?source=hash-mapping
+ size: 110100
+ timestamp: 1733195786147
+- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda
+ sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a
+ md5: 6b6ece66ebcae2d5f326c77ef2c5a066
+ depends:
+ - python >=3.9
+ license: BSD-2-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/pygments?source=hash-mapping
+ size: 889287
+ timestamp: 1750615908735
+- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.3-pyhe01879c_2.conda
+ sha256: afe32182b1090911b64ac0f29eb47e03a015d142833d8a917defd65d91c99b74
+ md5: aa0028616c0750c773698fdc254b2b8d
+ depends:
+ - python >=3.9
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pyparsing?source=compressed-mapping
+ size: 102292
+ timestamp: 1753873557076
+- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda
+ sha256: d016e04b0e12063fbee4a2d5fbb9b39a8d191b5a0042f0b8459188aedeabb0ca
+ md5: e2fd202833c4a981ce8a65974fe4abd1
+ depends:
+ - __win
+ - python >=3.9
+ - win_inet_pton
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/pysocks?source=hash-mapping
+ size: 21784
+ timestamp: 1733217448189
+- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda
+ sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8
+ md5: 461219d1a5bd61342293efa2c0c90eac
+ depends:
+ - __unix
+ - python >=3.9
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/pysocks?source=hash-mapping
+ size: 21085
+ timestamp: 1733217331982
+- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.1-pyhd8ed1ab_0.conda
+ sha256: 93e267e4ec35353e81df707938a6527d5eb55c97bf54c3b87229b69523afb59d
+ md5: a49c2283f24696a7b30367b7346a0144
+ depends:
+ - colorama >=0.4
+ - exceptiongroup >=1
+ - iniconfig >=1
+ - packaging >=20
+ - pluggy >=1.5,<2
+ - pygments >=2.7.2
+ - python >=3.9
+ - tomli >=1
+ constrains:
+ - pytest-faulthandler >=2
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/pytest?source=hash-mapping
+ size: 276562
+ timestamp: 1750239526127
+- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.11-h9e4cc4f_0_cpython.conda
+ sha256: 6cca004806ceceea9585d4d655059e951152fc774a471593d4f5138e6a54c81d
+ md5: 94206474a5608243a10c92cefbe0908f
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - bzip2 >=1.0.8,<2.0a0
+ - ld_impl_linux-64 >=2.36.1
+ - libexpat >=2.7.0,<3.0a0
+ - libffi >=3.4.6,<3.5.0a0
+ - libgcc >=13
+ - liblzma >=5.8.1,<6.0a0
+ - libnsl >=2.0.1,<2.1.0a0
+ - libsqlite >=3.50.0,<4.0a0
+ - libuuid >=2.38.1,<3.0a0
+ - libxcrypt >=4.4.36
+ - libzlib >=1.3.1,<2.0a0
+ - ncurses >=6.5,<7.0a0
+ - openssl >=3.5.0,<4.0a0
+ - readline >=8.2,<9.0a0
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ constrains:
+ - python_abi 3.12.* *_cp312
+ license: Python-2.0
+ purls: []
+ size: 31445023
+ timestamp: 1749050216615
+- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda
+ build_number: 1
+ sha256: 3f0e0518c992d8ccfe62b189125721309836fe48a010dc424240583e157f9ff0
+ md5: 7fd2fd79436d9b473812f14e86746844
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - bzip2 >=1.0.8,<2.0a0
+ - ld_impl_linux-64 >=2.36.1
+ - libexpat >=2.6.4,<3.0a0
+ - libffi >=3.4,<4.0a0
+ - libgcc >=13
+ - liblzma >=5.6.3,<6.0a0
+ - libnsl >=2.0.1,<2.1.0a0
+ - libsqlite >=3.47.0,<4.0a0
+ - libuuid >=2.38.1,<3.0a0
+ - libxcrypt >=4.4.36
+ - libzlib >=1.3.1,<2.0a0
+ - ncurses >=6.5,<7.0a0
+ - openssl >=3.4.0,<4.0a0
+ - readline >=8.2,<9.0a0
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ constrains:
+ - python_abi 3.12.* *_cp312
+ license: Python-2.0
+ size: 31565686
+ timestamp: 1733410597922
+- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.11-h9ccd52b_0_cpython.conda
+ sha256: ebda5b5e8e25976013fdd81b5ba253705b076741d02bdc8ab32763f2afb2c81b
+ md5: 06049132ecd09d0c1dc3d54d93cf1d5d
+ depends:
+ - __osx >=10.13
+ - bzip2 >=1.0.8,<2.0a0
+ - libexpat >=2.7.0,<3.0a0
+ - libffi >=3.4.6,<3.5.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libsqlite >=3.50.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ncurses >=6.5,<7.0a0
+ - openssl >=3.5.0,<4.0a0
+ - readline >=8.2,<9.0a0
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ constrains:
+ - python_abi 3.12.* *_cp312
+ license: Python-2.0
+ purls: []
+ size: 13571569
+ timestamp: 1749049058713
+- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.8-h9ccd52b_1_cpython.conda
+ build_number: 1
+ sha256: bee7b5288337cde8cbb21f34ff5b041511e4e9ba380838ab1be4deab1b55ea97
+ md5: 68a31f9cfbdcab2a4baec79095374780
+ depends:
+ - __osx >=10.13
+ - bzip2 >=1.0.8,<2.0a0
+ - libexpat >=2.6.4,<3.0a0
+ - libffi >=3.4,<4.0a0
+ - liblzma >=5.6.3,<6.0a0
+ - libsqlite >=3.47.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - ncurses >=6.5,<7.0a0
+ - openssl >=3.4.0,<4.0a0
+ - readline >=8.2,<9.0a0
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ constrains:
+ - python_abi 3.12.* *_cp312
+ license: Python-2.0
+ size: 13683139
+ timestamp: 1733410021762
+- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.11-h3f84c4b_0_cpython.conda
+ sha256: b69412e64971b5da3ced0fc36f05d0eacc9393f2084c6f92b8f28ee068d83e2e
+ md5: 6aa5e62df29efa6319542ae5025f4376
+ depends:
+ - bzip2 >=1.0.8,<2.0a0
+ - libexpat >=2.7.0,<3.0a0
+ - libffi >=3.4.6,<3.5.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libsqlite >=3.50.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.0,<4.0a0
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - python_abi 3.12.* *_cp312
+ license: Python-2.0
+ purls: []
+ size: 15829289
+ timestamp: 1749047682640
+- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.12.8-h3f84c4b_1_cpython.conda
+ build_number: 1
+ sha256: e1b37a398b3e2ea363de7cff6706e5ec2a5eb36b211132150e8601d7afd8f3aa
+ md5: 8cd0693344796fb32087185fca16f4cc
+ depends:
+ - bzip2 >=1.0.8,<2.0a0
+ - libexpat >=2.6.4,<3.0a0
+ - libffi >=3.4,<4.0a0
+ - liblzma >=5.6.3,<6.0a0
+ - libsqlite >=3.47.0,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.4.0,<4.0a0
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - python_abi 3.12.* *_cp312
+ license: Python-2.0
+ size: 15812363
+ timestamp: 1733408080064
+- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.5-h7de537c_102_cp313.conda
+ build_number: 102
+ sha256: 3de2b9f89b220cb779f6947cf87b328f73d54eed4f7e75a3f9337caeb4443910
+ md5: a9a4658f751155c819d6cd4c47f0a4d2
+ depends:
+ - bzip2 >=1.0.8,<2.0a0
+ - libexpat >=2.7.0,<3.0a0
+ - libffi >=3.4.6,<3.5.0a0
+ - liblzma >=5.8.1,<6.0a0
+ - libmpdec >=4.0.0,<5.0a0
+ - libsqlite >=3.50.1,<4.0a0
+ - libzlib >=1.3.1,<2.0a0
+ - openssl >=3.5.0,<4.0a0
+ - python_abi 3.13.* *_cp313
+ - tk >=8.6.13,<8.7.0a0
+ - tzdata
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: Python-2.0
+ size: 16825621
+ timestamp: 1750062318985
+ python_site_packages_path: Lib/site-packages
+- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda
+ sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664
+ md5: 5b8d21249ff20967101ffa321cab24e8
+ depends:
+ - python >=3.9
+ - six >=1.5
+ - python
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/python-dateutil?source=hash-mapping
+ size: 233310
+ timestamp: 1751104122689
+- conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda
+ build_number: 5
+ sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0
+ md5: 0424ae29b104430108f5218a66db7260
+ constrains:
+ - python 3.12.* *_cpython
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6238
+ timestamp: 1723823388266
+- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda
+ build_number: 8
+ sha256: 80677180dd3c22deb7426ca89d6203f1c7f1f256f2d5a94dc210f6e758229809
+ md5: c3efd25ac4d74b1584d2f7a57195ddf1
+ constrains:
+ - python 3.12.* *_cpython
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 6958
+ timestamp: 1752805918820
+- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda
+ build_number: 8
+ sha256: 210bffe7b121e651419cb196a2a63687b087497595c9be9d20ebe97dd06060a7
+ md5: 94305520c52a4aa3f6c2b1ff6008d9f8
+ constrains:
+ - python 3.13.* *_cp313
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 7002
+ timestamp: 1752805902938
+- conda: https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.12-5_cp312.conda
+ build_number: 5
+ sha256: 4da26c7508d5bc5d8621e84dc510284402239df56aab3587a7d217de9d3c806d
+ md5: c34dd4920e0addf7cfcc725809f25d8e
+ constrains:
+ - python 3.12.* *_cpython
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6312
+ timestamp: 1723823137004
+- conda: https://conda.anaconda.org/conda-forge/win-64/python_abi-3.12-5_cp312.conda
+ build_number: 5
+ sha256: 9486662af81a219e96d343449eff242f38d7c5128ced5ce5acf85857265058d6
+ md5: e8681f534453af7afab4cd2bc1423eec
+ constrains:
+ - python 3.12.* *_cpython
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 6730
+ timestamp: 1723823139725
+- conda: https://conda.anaconda.org/conda-forge/linux-64/pythonocc-core-7.8.1.1-novtk_h9a8ab00_100.conda
+ sha256: c232420f79ea822ba777c301839f859e7fa2b52f8bd2aa3a87244075a59a75de
+ md5: 6d87689e9c120801a7bd3e62ecf62bb9
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - numpy >=1.19,<3
+ - occt 7.8.1 *novtk*
+ - occt >=7.8.1,<7.8.2.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - svgwrite
+ constrains:
+ - occt 7.8.1 *novtk*
+ license: LGPL-3.0-or-later
+ license_family: LGPL
+ size: 58088195
+ timestamp: 1734428515614
+- conda: https://conda.anaconda.org/conda-forge/linux-64/pythonocc-core-7.9.0-novtk_h9a8ab00_100.conda
+ sha256: 22f4edebf9fb9b800c35b45d97de16efe668e35583335173591f5c8feb883295
+ md5: a997c3c571c6ead84f9aab7fb84e252d
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - numpy >=1.19,<3
+ - occt 7.9.0 *novtk*
+ - occt >=7.9.0,<7.9.1.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - svgwrite
+ constrains:
+ - occt 7.9.0 *novtk*
+ license: LGPL-3.0-or-later
+ license_family: LGPL
+ purls: []
+ size: 55270831
+ timestamp: 1744452686968
+- conda: https://conda.anaconda.org/conda-forge/osx-64/pythonocc-core-7.8.1.1-novtk_hb8dc2b1_100.conda
+ sha256: 067307705005656e692421481a9ca5edcaea01aafae20b19077b3f85ec82248d
+ md5: 1f51ba5cb8c3ae3b087bf727b088c7dc
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - numpy >=1.19,<3
+ - occt 7.8.1 *novtk*
+ - occt >=7.8.1,<7.8.2.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - svgwrite
+ constrains:
+ - occt 7.8.1 *novtk*
+ license: LGPL-3.0-or-later
+ license_family: LGPL
+ size: 45956286
+ timestamp: 1734427012959
+- conda: https://conda.anaconda.org/conda-forge/osx-64/pythonocc-core-7.9.0-novtk_hb8dc2b1_100.conda
+ sha256: 349f75a54e921fb56a04871899cad140d301a7653c2592041678aa120932e1a4
+ md5: f4abb0dd5eb1a22f9f8fe524d36a9e64
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - numpy >=1.19,<3
+ - occt 7.9.0 *novtk*
+ - occt >=7.9.0,<7.9.1.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - svgwrite
+ constrains:
+ - occt 7.9.0 *novtk*
+ license: LGPL-3.0-or-later
+ license_family: LGPL
+ purls: []
+ size: 43691761
+ timestamp: 1744451595414
+- conda: https://conda.anaconda.org/conda-forge/win-64/pythonocc-core-7.8.1.1-novtk_h94eb9d1_100.conda
+ sha256: 4975251069b5929edd112fd25ef0a79c784b68976d6b851ec7cf9be992c1232b
+ md5: d2eb7ca3ace2e6f8f0ff44cd37baf3d9
+ depends:
+ - numpy >=1.19,<3
+ - occt 7.8.1 *novtk*
+ - occt >=7.8.1,<7.8.2.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - svgwrite
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - occt 7.8.1 *novtk*
+ license: LGPL-3.0-or-later
+ license_family: LGPL
+ size: 39954303
+ timestamp: 1734428743098
+- conda: https://conda.anaconda.org/conda-forge/win-64/pythonocc-core-7.9.0-novtk_h94eb9d1_100.conda
+ sha256: d5c5b98ee8ad90c41ccbab25835c9825c7646f050970af292c5e78d9906f02a3
+ md5: d6281b438222c7673b4f783c2d4eb910
+ depends:
+ - numpy >=1.19,<3
+ - occt 7.9.0 *novtk*
+ - occt >=7.9.0,<7.9.1.0a0
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - svgwrite
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - occt 7.9.0 *novtk*
+ license: LGPL-3.0-or-later
+ license_family: LGPL
+ purls: []
+ size: 38773572
+ timestamp: 1744455636146
+- conda: https://conda.anaconda.org/conda-forge/linux-64/rapidjson-1.1.0.post20240409-h3f2d84a_2.conda
+ sha256: f87f265263a1ddbc50b98e2c2bcaa2bac63da3acc09267815dd0f4bd614cd902
+ md5: 65e2f30d532b4ae2063a424c185cc678
+ depends:
+ - libgcc >=13
+ - libstdcxx >=13
+ - libgcc >=13
+ - __glibc >=2.17,<3.0.a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 156074
+ timestamp: 1742820732296
+- conda: https://conda.anaconda.org/conda-forge/linux-64/rapidjson-1.1.0.post20240409-hac33072_1.conda
+ sha256: 645e408a91d3c3bea6cbb24e0c208222eb45694978b48e0224424369271ca0ef
+ md5: d6e98530772fc26c112640461110d127
+ depends:
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ license: MIT
+ license_family: MIT
+ size: 145404
+ timestamp: 1715006973191
+- conda: https://conda.anaconda.org/conda-forge/osx-64/rapidjson-1.1.0.post20240409-h92383a6_2.conda
+ sha256: 978580bd85c5cabca47b0f2a6ad4f22340858aa51b0c86537716bd93ca505e9e
+ md5: 34a2ae1d4771d5ba5b819075cf7c3d67
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 156314
+ timestamp: 1742820725403
+- conda: https://conda.anaconda.org/conda-forge/osx-64/rapidjson-1.1.0.post20240409-hf036a51_1.conda
+ sha256: 07f88271bc5a73fc5a910895bf83bb6046b2b84a3935015c448667aef41abf9e
+ md5: 7b32c6b26b7c3a0d97ad484ab6f207c9
+ depends:
+ - __osx >=10.13
+ - libcxx >=16
+ license: MIT
+ license_family: MIT
+ size: 145520
+ timestamp: 1715007151117
+- conda: https://conda.anaconda.org/conda-forge/win-64/rapidjson-1.1.0.post20240409-he0c23c2_1.conda
+ sha256: 569ccbf264ed1fd40ee92f9909e54019c87f8cfbccd508c6bb1983b1d6f93d4b
+ md5: b16fc1a64fe3ef08c3c886d372c64934
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: MIT
+ license_family: MIT
+ size: 145494
+ timestamp: 1715007138921
+- conda: https://conda.anaconda.org/conda-forge/win-64/rapidjson-1.1.0.post20240409-he0c23c2_2.conda
+ sha256: cd36fcd850cdfdca316ce048714ed5a2911d5af6e3297a557a284fed77107fe9
+ md5: 473596080645129ca9939cbac7c4a2cc
+ depends:
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ - ucrt >=10.0.20348.0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 153477
+ timestamp: 1742820803681
+- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda
+ sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7
+ md5: 47d31b792659ce70f470b5c82fdfb7a4
+ depends:
+ - libgcc-ng >=12
+ - ncurses >=6.3,<7.0a0
+ license: GPL-3.0-only
+ license_family: GPL
+ size: 281456
+ timestamp: 1679532220005
+- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda
+ sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c
+ md5: 283b96675859b20a825f8fa30f311446
+ depends:
+ - libgcc >=13
+ - ncurses >=6.5,<7.0a0
+ license: GPL-3.0-only
+ license_family: GPL
+ purls: []
+ size: 282480
+ timestamp: 1740379431762
+- conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda
+ sha256: 53017e80453c4c1d97aaf78369040418dea14cf8f46a2fa999f31bd70b36c877
+ md5: 342570f8e02f2f022147a7f841475784
+ depends:
+ - ncurses >=6.5,<7.0a0
+ license: GPL-3.0-only
+ license_family: GPL
+ purls: []
+ size: 256712
+ timestamp: 1740379577668
+- conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h9e318b2_1.conda
+ sha256: 41e7d30a097d9b060037f0c6a2b1d4c4ae7e942c06c943d23f9d481548478568
+ md5: f17f77f2acf4d344734bda76829ce14e
+ depends:
+ - ncurses >=6.3,<7.0a0
+ license: GPL-3.0-only
+ license_family: GPL
+ size: 255870
+ timestamp: 1679532707590
+- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda
+ sha256: 8dc54e94721e9ab545d7234aa5192b74102263d3e704e6d0c8aa7008f2da2a7b
+ md5: db0c6b99149880c8ba515cf4abe93ee4
+ depends:
+ - certifi >=2017.4.17
+ - charset-normalizer >=2,<4
+ - idna >=2.5,<4
+ - python >=3.9
+ - urllib3 >=1.21.1,<3
+ constrains:
+ - chardet >=3.0.2,<6
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/requests?source=compressed-mapping
+ size: 59263
+ timestamp: 1755614348400
+- conda: https://conda.anaconda.org/conda-forge/linux-64/rhash-1.4.5-hb9d3cd8_0.conda
+ sha256: 04677caac29ec64a5d41d0cca8dbec5f60fa166d5458ff5a4393e4dc08a4799e
+ md5: 9af0e7981755f09c81421946c4bcea04
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ size: 186921
+ timestamp: 1728886721623
+- conda: https://conda.anaconda.org/conda-forge/linux-64/rhash-1.4.6-hb9d3cd8_1.conda
+ sha256: d5c73079c1dd2c2a313c3bfd81c73dbd066b7eb08d213778c8bff520091ae894
+ md5: c1c9b02933fdb2cfb791d936c20e887e
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 193775
+ timestamp: 1748644872902
+- conda: https://conda.anaconda.org/conda-forge/osx-64/rhash-1.4.5-ha44c9a9_0.conda
+ sha256: 8680069a88f33e96046cf09c3c973074976064c5f13c282bf0e6d6a798f4f7ab
+ md5: a7a3324229bba7fd1c06bcbbb26a420a
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ size: 178400
+ timestamp: 1728886821902
+- conda: https://conda.anaconda.org/conda-forge/osx-64/rhash-1.4.6-h6e16a3a_1.conda
+ sha256: 65c946fc5a9bb71772a7ac9bad64ff08ac07f7d5311306c2dcc1647157b96706
+ md5: d0fcaaeff83dd4b6fb035c2f36df198b
+ depends:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 185180
+ timestamp: 1748644989546
+- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.12.10-h718f522_0.conda
+ noarch: python
+ sha256: f7cdb61d8e758d47500b6f45e6c2685a275ca65d1cb9c8bd094fcea227e8b318
+ md5: 356a5e0f6531b190b002f7257675074d
+ depends:
+ - python
+ - libgcc >=14
+ - __glibc >=2.17,<3.0.a0
+ constrains:
+ - __glibc >=2.17
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/ruff?source=compressed-mapping
+ size: 10661766
+ timestamp: 1755823612718
+- conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.12.10-hab3cb23_0.conda
+ noarch: python
+ sha256: a5dd1d849b51c32f32c05d0a0ed36631c9047c387cc6759728072438e7e4e3ca
+ md5: 42bacf6b1ba6d0aa0501f08cfe5161ed
+ depends:
+ - python
+ - __osx >=10.13
+ constrains:
+ - __osx >=10.13
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/ruff?source=hash-mapping
+ size: 10670425
+ timestamp: 1755823705979
+- conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.12.10-h429b229_0.conda
+ noarch: python
+ sha256: fabd95186f2e4c3239ff3ad139ff62f1c3523189f3187397d94734f8acfc281a
+ md5: aeac13adbe43735128768c89574c1e11
+ depends:
+ - python
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ - ucrt >=10.0.20348.0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/ruff?source=hash-mapping
+ size: 10954968
+ timestamp: 1755823643535
+- conda: https://conda.anaconda.org/conda-forge/linux-64/shapely-2.1.1-py312h21f5128_0.conda
+ sha256: 5e4086909b5884d6ba1244f63ac83b6cff9d1a871e1c334cd07eb28d0feda5cd
+ md5: d38eb6d34385f82b02ff776a66977cc4
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - geos >=3.13.1,<3.13.2.0a0
+ - libgcc >=13
+ - numpy >=1.19,<3
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/shapely?source=hash-mapping
+ size: 639956
+ timestamp: 1747664455853
+- conda: https://conda.anaconda.org/conda-forge/osx-64/shapely-2.1.1-py312hbf10b29_0.conda
+ sha256: 9cbaaed784b2d73d469dbc1ea19d09e28c23547759f37e460d2cb0595a414481
+ md5: 410a639266f470aa4bf28ee796085971
+ depends:
+ - __osx >=10.13
+ - geos >=3.13.1,<3.13.2.0a0
+ - numpy >=1.19,<3
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/shapely?source=hash-mapping
+ size: 606029
+ timestamp: 1747664579208
+- conda: https://conda.anaconda.org/conda-forge/win-64/shapely-2.1.1-py312h3f81574_0.conda
+ sha256: c6ac68bb8077690fae4f0e29abefc1fe71fc53b6f01dcb0c9f35269218d14914
+ md5: 5681a2b9d6082a1b034b5339a21cb497
+ depends:
+ - geos >=3.13.1,<3.13.2.0a0
+ - numpy >=1.19,<3
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/shapely?source=hash-mapping
+ size: 596725
+ timestamp: 1747664874209
+- conda: https://conda.anaconda.org/conda-forge/osx-64/sigtool-0.1.3-h88f4db0_0.tar.bz2
+ sha256: 46fdeadf8f8d725819c4306838cdfd1099cd8fe3e17bd78862a5dfdcd6de61cf
+ md5: fbfb84b9de9a6939cb165c02c69b1865
+ depends:
+ - openssl >=3.0.0,<4.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 213817
+ timestamp: 1643442169866
+- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda
+ sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d
+ md5: 3339e3b65d58accf4ca4fb8748ab16b3
+ depends:
+ - python >=3.9
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/six?source=hash-mapping
+ size: 18455
+ timestamp: 1753199211006
+- conda: https://conda.anaconda.org/conda-forge/noarch/svgwrite-1.4.3-pyhd8ed1ab_1.conda
+ sha256: 0571b8426cd6fab05cd0639d4a5203e0f01ba8da75b48ed7b7b1103445e6a3b2
+ md5: 9a13b437c86284d668ba1ad03647f6c7
+ depends:
+ - pyparsing >=2.0.1
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/svgwrite?source=hash-mapping
+ size: 55407
+ timestamp: 1734380310892
+- conda: https://conda.anaconda.org/conda-forge/linux-64/swig-4.3.0-heed6a68_0.conda
+ sha256: 4771f7a2323d7f3c4d42b1c8ed670335ede7e78b80d8ba17d3c40b781dedcbdc
+ md5: 0e4da15e507b716140699aca1a279a88
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - pcre2 >=10.44,<10.45.0a0
+ license: GPL-3.0-or-later
+ license_family: GPL
+ size: 1248414
+ timestamp: 1729588950292
+- conda: https://conda.anaconda.org/conda-forge/linux-64/swig-4.3.1-h32e72b7_1.conda
+ sha256: 1db074e3671dd736f2d44c42f8cdf7a4afe879b1fbfcffb3b3f87b40777239fd
+ md5: 1b22a26c3a9ad805c0fb861b23160ba5
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - pcre2 >=10.45,<10.46.0a0
+ license: GPL-3.0-or-later
+ license_family: GPL
+ purls: []
+ size: 1249501
+ timestamp: 1746016691247
+- conda: https://conda.anaconda.org/conda-forge/osx-64/swig-4.3.0-h05d4bff_0.conda
+ sha256: 5d1accf5609d7152c8ee0961b7a83aa73519866f549e4e75aa0b8e2fe365db65
+ md5: e977150e8f2dd12aa3fa3c94c87e5b8f
+ depends:
+ - __osx >=10.13
+ - libcxx >=17
+ - pcre2 >=10.44,<10.45.0a0
+ license: GPL-3.0-or-later
+ license_family: GPL
+ size: 1160596
+ timestamp: 1729589065015
+- conda: https://conda.anaconda.org/conda-forge/osx-64/swig-4.3.1-h7b1c113_1.conda
+ sha256: 01774177bdeff550a1eea670db9db1fdd1e547b58967ced67782fed47bce5583
+ md5: 1c17974c580218e6ee35c2a72a497177
+ depends:
+ - __osx >=10.13
+ - libcxx >=18
+ - pcre2 >=10.45,<10.46.0a0
+ license: GPL-3.0-or-later
+ license_family: GPL
+ purls: []
+ size: 1158340
+ timestamp: 1746016697903
+- conda: https://conda.anaconda.org/conda-forge/win-64/swig-4.3.0-h51fbe9b_0.conda
+ sha256: b6f66e27dac7799a844e530f2b946713223106b8df66c809a6dda4a96ae68ba3
+ md5: f076cd8282f1c164e57990a1daf70fd1
+ depends:
+ - pcre2 >=10.44,<10.45.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: GPL-3.0-or-later
+ license_family: GPL
+ size: 1079944
+ timestamp: 1729589112085
+- conda: https://conda.anaconda.org/conda-forge/win-64/swig-4.3.1-hf4c94c2_1.conda
+ sha256: 179a523645c682b31e21f6bccb12bd58fa68e227f54d796964e277254ffa8b75
+ md5: 94e5e95118a09b93e13ceb9681044be0
+ depends:
+ - pcre2 >=10.45,<10.46.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: GPL-3.0-or-later
+ license_family: GPL
+ purls: []
+ size: 1081846
+ timestamp: 1746017001804
+- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda
+ sha256: 69ab5804bdd2e8e493d5709eebff382a72fab3e9af6adf93a237ccf8f7dbd624
+ md5: 460eba7851277ec1fd80a1a24080787a
+ depends:
+ - kernel-headers_linux-64 3.10.0 he073ed8_18
+ - tzdata
+ license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0
+ license_family: GPL
+ size: 15166921
+ timestamp: 1735290488259
+- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_8.conda
+ sha256: 0053c17ffbd9f8af1a7f864995d70121c292e317804120be4667f37c92805426
+ md5: 1bad93f0aa428d618875ef3a588a889e
+ depends:
+ - __glibc >=2.28
+ - kernel-headers_linux-64 4.18.0 he073ed8_8
+ - tzdata
+ license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later
+ license_family: GPL
+ purls: []
+ size: 24210909
+ timestamp: 1752669140965
+- conda: https://conda.anaconda.org/conda-forge/noarch/tabulate-0.9.0-pyhd8ed1ab_2.conda
+ sha256: 090023bddd40d83468ef86573976af8c514f64119b2bd814ee63a838a542720a
+ md5: 959484a66b4b76befcddc4fa97c95567
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/tabulate?source=hash-mapping
+ size: 37554
+ timestamp: 1733589854804
+- conda: https://conda.anaconda.org/conda-forge/osx-64/tapi-1300.6.5-h390ca13_0.conda
+ sha256: f97372a1c75b749298cb990405a690527e8004ff97e452ed2c59e4bc6a35d132
+ md5: c6ee25eb54accb3f1c8fc39203acfaf1
+ depends:
+ - __osx >=10.13
+ - libcxx >=17.0.0.a0
+ - ncurses >=6.5,<7.0a0
+ license: NCSA
+ license_family: MIT
+ purls: []
+ size: 221236
+ timestamp: 1725491044729
+- conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h18a62a1_3.conda
+ sha256: 30e82640a1ad9d9b5bee006da7e847566086f8fdb63d15b918794a7ef2df862c
+ md5: 72226638648e494aaafde8155d50dab2
+ depends:
+ - libhwloc >=2.12.1,<2.12.2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: Apache-2.0
+ license_family: APACHE
+ purls: []
+ size: 150266
+ timestamp: 1755776172092
+- conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2021.13.0-h62715c5_1.conda
+ sha256: 03cc5442046485b03dd1120d0f49d35a7e522930a2ab82f275e938e17b07b302
+ md5: 9190dd0a23d925f7602f9628b3aed511
+ depends:
+ - libhwloc >=2.11.2,<2.11.3.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: Apache-2.0
+ license_family: APACHE
+ size: 151460
+ timestamp: 1732982860332
+- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda
+ sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e
+ md5: d453b98d9c83e71da0741bb0ff4d76bc
+ depends:
+ - libgcc-ng >=12
+ - libzlib >=1.2.13,<2.0.0a0
+ license: TCL
+ license_family: BSD
+ size: 3318875
+ timestamp: 1699202167581
+- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda
+ sha256: a84ff687119e6d8752346d1d408d5cf360dee0badd487a472aa8ddedfdc219e1
+ md5: a0116df4f4ed05c303811a837d5b39d8
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: TCL
+ license_family: BSD
+ purls: []
+ size: 3285204
+ timestamp: 1748387766691
+- conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-h1abcd95_1.conda
+ sha256: 30412b2e9de4ff82d8c2a7e5d06a15f4f4fef1809a72138b6ccb53a33b26faf5
+ md5: bf830ba5afc507c6232d4ef0fb1a882d
+ depends:
+ - libzlib >=1.2.13,<2.0.0a0
+ license: TCL
+ license_family: BSD
+ size: 3270220
+ timestamp: 1699202389792
+- conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_2.conda
+ sha256: b24468006a96b71a5f4372205ea7ec4b399b0f2a543541e86f883de54cd623fc
+ md5: 9864891a6946c2fe037c02fca7392ab4
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: TCL
+ license_family: BSD
+ purls: []
+ size: 3259809
+ timestamp: 1748387843735
+- conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_2.conda
+ sha256: e3614b0eb4abcc70d98eae159db59d9b4059ed743ef402081151a948dce95896
+ md5: ebd0e761de9aa879a51d22cc721bd095
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: TCL
+ license_family: BSD
+ purls: []
+ size: 3466348
+ timestamp: 1748388121356
+- conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h5226925_1.conda
+ sha256: 2c4e914f521ccb2718946645108c9bd3fc3216ba69aea20c2c3cedbd8db32bb1
+ md5: fc048363eb8f03cd1737600a5d08aafe
+ depends:
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: TCL
+ license_family: BSD
+ size: 3503410
+ timestamp: 1699202577803
+- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhe01879c_2.conda
+ sha256: 040a5a05c487647c089ad5e05ad5aff5942830db2a4e656f1e300d73436436f1
+ md5: 30a0a26c8abccf4b7991d590fe17c699
+ depends:
+ - python >=3.9
+ - python
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/tomli?source=compressed-mapping
+ size: 21238
+ timestamp: 1753796677376
+- conda: https://conda.anaconda.org/conda-forge/noarch/toposort-1.10-pyhd8ed1ab_1.conda
+ sha256: f646e7944f722281b27e9dea97c51047840b9f7860e740dbd1869cf7f5b2bd23
+ md5: 56bddff4bb4bdfd4badd35cb8312f1a4
+ depends:
+ - python >=3.9
+ license: Apache-2.0
+ license_family: APACHE
+ purls:
+ - pkg:pypi/toposort?source=hash-mapping
+ size: 14231
+ timestamp: 1734343818024
+- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda
+ sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c
+ md5: edd329d7d3a4ab45dcf905899a7a6115
+ depends:
+ - typing_extensions ==4.15.0 pyhcf101f3_0
+ license: PSF-2.0
+ license_family: PSF
+ purls: []
+ size: 91383
+ timestamp: 1756220668932
+- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda
+ sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731
+ md5: 0caa1af407ecff61170c9437a808404d
+ depends:
+ - python >=3.10
+ - python
+ license: PSF-2.0
+ license_family: PSF
+ purls:
+ - pkg:pypi/typing-extensions?source=compressed-mapping
+ size: 51692
+ timestamp: 1756220668932
+- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025a-h78e105d_0.conda
+ sha256: c4b1ae8a2931fe9b274c44af29c5475a85b37693999f8c792dad0f8c6734b1de
+ md5: dbcace4706afdfb7eb891f7b37d07c04
+ license: LicenseRef-Public-Domain
+ size: 122921
+ timestamp: 1737119101255
+- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda
+ sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192
+ md5: 4222072737ccff51314b5ece9c7d6f5a
+ license: LicenseRef-Public-Domain
+ purls: []
+ size: 122968
+ timestamp: 1742727099393
+- conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.22621.0-h57928b3_1.conda
+ sha256: db8dead3dd30fb1a032737554ce91e2819b43496a0db09927edf01c32b577450
+ md5: 6797b005cd0f439c4c5c9ac565783700
+ constrains:
+ - vs2015_runtime >=14.29.30037
+ license: LicenseRef-MicrosoftWindowsSDK10
+ purls: []
+ size: 559710
+ timestamp: 1728377334097
+- conda: https://conda.anaconda.org/conda-forge/noarch/untokenize-0.1.1-pyhd8ed1ab_2.conda
+ sha256: a179ee4e4d13bdb308d4c26f8af1da1510d07961fe0c5b0cfe0fff25e9eb6905
+ md5: a7bafc627d25a939bb68206bd7abd483
+ depends:
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/untokenize?source=hash-mapping
+ size: 9517
+ timestamp: 1734421007487
+- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda
+ sha256: 4fb9789154bd666ca74e428d973df81087a697dbb987775bc3198d2215f240f8
+ md5: 436c165519e140cb08d246a4472a9d6a
+ depends:
+ - brotli-python >=1.0.9
+ - h2 >=4,<5
+ - pysocks >=1.5.6,<2.0,!=1.5.7
+ - python >=3.9
+ - zstandard >=0.18.0
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/urllib3?source=hash-mapping
+ size: 101735
+ timestamp: 1750271478254
+- conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_31.conda
+ sha256: cb357591d069a1e6cb74199a8a43a7e3611f72a6caed9faa49dbb3d7a0a98e0b
+ md5: 28f4ca1e0337d0f27afb8602663c5723
+ depends:
+ - vc14_runtime >=14.44.35208
+ track_features:
+ - vc14
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 18249
+ timestamp: 1753739241465
+- conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h5fd82a7_24.conda
+ sha256: 7ce178cf139ccea5079f9c353b3d8415d1d49b0a2f774662c355d3f89163d7b4
+ md5: 00cf3a61562bd53bd5ea99e6888793d0
+ depends:
+ - vc14_runtime >=14.40.33810
+ track_features:
+ - vc14
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 17693
+ timestamp: 1737627189024
+- conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_31.conda
+ sha256: af4b4b354b87a9a8d05b8064ff1ea0b47083274f7c30b4eb96bc2312c9b5f08f
+ md5: 603e41da40a765fd47995faa021da946
+ depends:
+ - ucrt >=10.0.20348.0
+ - vcomp14 14.44.35208 h818238b_31
+ constrains:
+ - vs2015_runtime 14.44.35208.* *_31
+ license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime
+ license_family: Proprietary
+ purls: []
+ size: 682424
+ timestamp: 1753739239305
+- conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_31.conda
+ sha256: 67b317b64f47635415776718d25170a9a6f9a1218c0f5a6202bfd687e07b6ea4
+ md5: a6b1d5c1fc3cb89f88f7179ee6a9afe3
+ depends:
+ - ucrt >=10.0.20348.0
+ constrains:
+ - vs2015_runtime 14.44.35208.* *_31
+ license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime
+ license_family: Proprietary
+ purls: []
+ size: 113963
+ timestamp: 1753739198723
+- conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.44.35208-h38c0c73_31.conda
+ sha256: 8b20152d00e1153ccb1ed377a160110482f286a6d85a82b57ffcd60517d523a7
+ md5: d75abcfbc522ccd98082a8c603fce34c
+ depends:
+ - vc14_runtime >=14.44.35208
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 18249
+ timestamp: 1753739241918
+- conda: https://conda.anaconda.org/conda-forge/win-64/vs2019_win-64-19.29.30139-h7dcff83_24.conda
+ sha256: 4125acd871ba3498f25799b1999bf0fa4d80b0b353eb56ac170809f9eda19dd1
+ md5: 41aaa71a5d4f668f5795c0647eeea776
+ depends:
+ - vswhere
+ constrains:
+ - vs_win-64 2019.11
+ track_features:
+ - vc14
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 20377
+ timestamp: 1737627273487
+- conda: https://conda.anaconda.org/conda-forge/win-64/vs2022_win-64-19.42.34433-hd920555_24.conda
+ sha256: 3966f53623d5aa259c2ae8b5a62f9d59cafcd35da393a38d74a5596bdad95b62
+ md5: b7bf381ce6c037f88f32d93103a4e6d4
+ depends:
+ - vswhere
+ constrains:
+ - vs_win-64 2022.12
+ track_features:
+ - vc14
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 20370
+ timestamp: 1737627065789
+- conda: https://conda.anaconda.org/conda-forge/win-64/vs2022_win-64-19.44.35207-ha74f236_31.conda
+ sha256: c0a380608afc9ad98b1e261fe55702b72e33f80d372f358075c5dea3d185816f
+ md5: 0bf228856c72261e5bbd9530002176f2
+ depends:
+ - vswhere
+ constrains:
+ - vs_win-64 2022.14
+ track_features:
+ - vc14
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 21054
+ timestamp: 1753739201422
+- conda: https://conda.anaconda.org/conda-forge/noarch/vswhere-3.1.7-h40126e0_1.conda
+ sha256: b72270395326dc56de9bd6ca82f63791b3c8c9e2b98e25242a9869a4ca821895
+ md5: f622897afff347b715d046178ad745a5
+ depends:
+ - __win
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 238764
+ timestamp: 1745560912727
+- conda: https://conda.anaconda.org/conda-forge/win-64/vswhere-3.1.7-h57928b3_0.conda
+ sha256: 8caeda9c0898cb8ee2cf4f45640dbbbdf772ddc01345cfb0f7b352c58b4d8025
+ md5: ba83df93b48acfc528f5464c9a882baa
+ license: MIT
+ license_family: MIT
+ size: 219013
+ timestamp: 1719460515960
+- conda: https://conda.anaconda.org/conda-forge/noarch/win_inet_pton-1.1.0-pyh7428d3b_8.conda
+ sha256: 93807369ab91f230cf9e6e2a237eaa812492fe00face5b38068735858fba954f
+ md5: 46e441ba871f524e2b067929da3051c2
+ depends:
+ - __win
+ - python >=3.9
+ license: LicenseRef-Public-Domain
+ purls:
+ - pkg:pypi/win-inet-pton?source=hash-mapping
+ size: 9555
+ timestamp: 1733130678956
+- conda: https://conda.anaconda.org/conda-forge/noarch/xmlschema-4.1.0-pyhd8ed1ab_0.conda
+ sha256: 7565515b9d97575a393c44ee6ddca5a69fc37fc59b29c44467c7b8a7225468a4
+ md5: 4f10c752b1e5bc8b533a14c356db7b46
+ depends:
+ - elementpath <6.0.0,>=4.8.0
+ - python >=3.9
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/xmlschema?source=hash-mapping
+ size: 425680
+ timestamp: 1749678710627
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda
+ sha256: c12396aabb21244c212e488bbdc4abcdef0b7404b15761d9329f5a4a39113c4b
+ md5: fb901ff28063514abb6046c9ec2c4a45
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 58628
+ timestamp: 1734227592886
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.5-he73a12e_0.conda
+ sha256: 760f43df6c2ce8cbbbcb8f2f3b7fc0f306716c011e28d1d340f3dfa8ccf29185
+ md5: 4c3e9fab69804ec6077697922d70c6e2
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libuuid >=2.38.1,<3.0a0
+ - xorg-libice >=1.1.2,<2.0a0
+ license: MIT
+ license_family: MIT
+ size: 27198
+ timestamp: 1734229639785
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-he73a12e_0.conda
+ sha256: 277841c43a39f738927145930ff963c5ce4c4dacf66637a3d95d802a64173250
+ md5: 1c74ff8c35dcadf952a16f752ca5aa49
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libuuid >=2.38.1,<3.0a0
+ - xorg-libice >=1.1.2,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 27590
+ timestamp: 1741896361728
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.11-h4f16b4b_0.conda
+ sha256: a0e7fca9e341dc2455b20cd320fc1655e011f7f5f28367ecf8617cccd4bb2821
+ md5: b6eb6d0cb323179af168df8fe16fb0a1
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libxcb >=1.17.0,<2.0a0
+ license: MIT
+ license_family: MIT
+ size: 835157
+ timestamp: 1738613163812
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.12-h4f16b4b_0.conda
+ sha256: 51909270b1a6c5474ed3978628b341b4d4472cd22610e5f22b506855a5e20f67
+ md5: db038ce880f100acc74dba10302b5630
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libxcb >=1.17.0,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 835896
+ timestamp: 1741901112627
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda
+ sha256: ed10c9283974d311855ae08a16dfd7e56241fac632aec3b92e3cfe73cff31038
+ md5: f6ebe2cb3f82ba6c057dde5d9debe4f7
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 14780
+ timestamp: 1734229004433
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda
+ sha256: 6b250f3e59db07c2514057944a3ea2044d6a8cdde8a47b6497c254520fade1ee
+ md5: 8035c64cb77ed555e3f150b7b3972480
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 19901
+ timestamp: 1727794976192
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda
+ sha256: da5dc921c017c05f38a38bd75245017463104457b63a1ce633ed41f214159c14
+ md5: febbab7d15033c913d53c7a2c102309d
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - xorg-libx11 >=1.8.10,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 50060
+ timestamp: 1727752228921
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.1-hb9d3cd8_0.conda
+ sha256: 2fef37e660985794617716eb915865ce157004a4d567ed35ec16514960ae9271
+ md5: 4bdb303603e9821baf5fe5fdff1dc8f8
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - xorg-libx11 >=1.8.10,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 19575
+ timestamp: 1727794961233
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda
+ sha256: 1a724b47d98d7880f26da40e45f01728e7638e6ec69f35a3e11f92acd05f9e7a
+ md5: 17dcc85db3c7886650b8908b183d6876
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - xorg-libx11 >=1.8.10,<2.0a0
+ - xorg-libxext >=1.3.6,<2.0a0
+ - xorg-libxfixes >=6.0.1,<7.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 47179
+ timestamp: 1727799254088
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxt-1.3.1-hb9d3cd8_0.conda
+ sha256: a8afba4a55b7b530eb5c8ad89737d60d60bc151a03fbef7a2182461256953f0e
+ md5: 279b0de5f6ba95457190a1c459a64e31
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - xorg-libice >=1.1.1,<2.0a0
+ - xorg-libsm >=1.2.4,<2.0a0
+ - xorg-libx11 >=1.8.10,<2.0a0
+ license: MIT
+ license_family: MIT
+ purls: []
+ size: 379686
+ timestamp: 1731860547604
+- conda: https://conda.anaconda.org/conda-forge/noarch/xsdata-25.7-pyhd8ed1ab_0.conda
+ sha256: c59b93c0d1e1c00948431cec6f38b2ebd800c2e282e2efc90b055350f2138ff0
+ md5: 4395b9c3f174e5abeb837db379343244
+ depends:
+ - click >=5.0
+ - click-default-group >=1.2
+ - docformatter >=1.7.2
+ - jinja2 >=2.10
+ - lxml >=4.4.1
+ - python >=3.9
+ - requests
+ - ruff >=0.1.9
+ - toposort >=1.5
+ - typing-extensions
+ license: MIT
+ license_family: MIT
+ purls:
+ - pkg:pypi/xsdata?source=hash-mapping
+ size: 260640
+ timestamp: 1751907866433
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda
+ sha256: 802725371682ea06053971db5b4fb7fbbcaee9cb1804ec688f55e51d74660617
+ md5: 68eae977d7d1196d32b636a026dc015d
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - liblzma 5.8.1 hb9d3cd8_2
+ - liblzma-devel 5.8.1 hb9d3cd8_2
+ - xz-gpl-tools 5.8.1 hbcc6ac9_2
+ - xz-tools 5.8.1 hb9d3cd8_2
+ license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later
+ purls: []
+ size: 23987
+ timestamp: 1749230104359
+- conda: https://conda.anaconda.org/conda-forge/osx-64/xz-5.8.1-h357f2ed_2.conda
+ sha256: 89248de6c9417522b6fec011dc26b81c25af731a31ba91e668f72f1b9aab05d7
+ md5: 7eee908c7df8478c1f35b28efa2e42b1
+ depends:
+ - __osx >=10.13
+ - liblzma 5.8.1 hd471939_2
+ - liblzma-devel 5.8.1 hd471939_2
+ - xz-gpl-tools 5.8.1 h357f2ed_2
+ - xz-tools 5.8.1 hd471939_2
+ license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later
+ purls: []
+ size: 24033
+ timestamp: 1749230223096
+- conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.6.4-h208afaa_0.conda
+ sha256: 26d5a1569c391566d42e7094aa5a3695487cf6c5cf33f45a7bb750bbcaca79fc
+ md5: 97e1f122231e057a3da5cd32affcc9c2
+ depends:
+ - liblzma 5.6.4 h2466b09_0
+ - liblzma-devel 5.6.4 h2466b09_0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ - xz-tools 5.6.4 h2466b09_0
+ license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later
+ size: 23977
+ timestamp: 1738525637903
+- conda: https://conda.anaconda.org/conda-forge/win-64/xz-5.8.1-h208afaa_2.conda
+ sha256: 22289a81da4698bb8d13ac032a88a4a1f49505b2303885e1add3d8bd1a7b56e6
+ md5: fb3fa84ea37de9f12cc8ba730cec0bdc
+ depends:
+ - liblzma 5.8.1 h2466b09_2
+ - liblzma-devel 5.8.1 h2466b09_2
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ - xz-tools 5.8.1 h2466b09_2
+ license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later
+ purls: []
+ size: 24430
+ timestamp: 1749230691276
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda
+ sha256: 840838dca829ec53f1160f3fca6dbfc43f2388b85f15d3e867e69109b168b87b
+ md5: bf627c16aa26231720af037a2709ab09
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - liblzma 5.8.1 hb9d3cd8_2
+ constrains:
+ - xz 5.8.1.*
+ license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later
+ purls: []
+ size: 33911
+ timestamp: 1749230090353
+- conda: https://conda.anaconda.org/conda-forge/osx-64/xz-gpl-tools-5.8.1-h357f2ed_2.conda
+ sha256: 5cdadfff31de7f50d1b2f919dd80697c0a08d90f8d6fb89f00c93751ec135c3c
+ md5: d4044359fad6af47224e9ef483118378
+ depends:
+ - __osx >=10.13
+ - liblzma 5.8.1 hd471939_2
+ constrains:
+ - xz 5.8.1.*
+ license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later
+ purls: []
+ size: 33890
+ timestamp: 1749230206830
+- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda
+ sha256: 58034f3fca491075c14e61568ad8b25de00cb3ae479de3e69be6d7ee5d3ace28
+ md5: 1bad2995c8f1c8075c6c331bf96e46fb
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - liblzma 5.8.1 hb9d3cd8_2
+ constrains:
+ - xz 5.8.1.*
+ license: 0BSD AND LGPL-2.1-or-later
+ purls: []
+ size: 96433
+ timestamp: 1749230076687
+- conda: https://conda.anaconda.org/conda-forge/osx-64/xz-tools-5.8.1-hd471939_2.conda
+ sha256: 3b1d8958f8dceaa4442100d5326b2ec9bcc2e8d7ee55345bf7101dc362fb9868
+ md5: 349148960ad74aece88028f2b5c62c51
+ depends:
+ - __osx >=10.13
+ - liblzma 5.8.1 hd471939_2
+ constrains:
+ - xz 5.8.1.*
+ license: 0BSD AND LGPL-2.1-or-later
+ purls: []
+ size: 85777
+ timestamp: 1749230191007
+- conda: https://conda.anaconda.org/conda-forge/win-64/xz-tools-5.6.4-h2466b09_0.conda
+ sha256: 100d88365523051c5542a2657598cb25a85feb387bba8fa7e4ccb99fa57ad3f6
+ md5: 213c6ca29a37cf0d84281d063368428d
+ depends:
+ - liblzma 5.6.4 h2466b09_0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: 0BSD AND LGPL-2.1-or-later
+ size: 64183
+ timestamp: 1738525614199
+- conda: https://conda.anaconda.org/conda-forge/win-64/xz-tools-5.8.1-h2466b09_2.conda
+ sha256: 38712f0e62f61741ab69d7551fa863099f5be769bdf9fdbc28542134874b4e88
+ md5: e1b62ec0457e6ba10287a49854108fdb
+ depends:
+ - liblzma 5.8.1 h2466b09_2
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ constrains:
+ - xz 5.8.1.*
+ license: 0BSD AND LGPL-2.1-or-later
+ purls: []
+ size: 67419
+ timestamp: 1749230666460
+- conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda
+ sha256: 5d7c0e5f0005f74112a34a7425179f4eb6e73c92f5d109e6af4ddeca407c92ab
+ md5: c9f075ab2f33b3bbee9e62d4ad0a6cd8
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libzlib 1.3.1 hb9d3cd8_2
+ license: Zlib
+ license_family: Other
+ purls: []
+ size: 92286
+ timestamp: 1727963153079
+- conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.1-hd23fc13_2.conda
+ sha256: 219edbdfe7f073564375819732cbf7cc0d7c7c18d3f546a09c2dfaf26e4d69f3
+ md5: c989e0295dcbdc08106fe5d9e935f0b9
+ depends:
+ - __osx >=10.13
+ - libzlib 1.3.1 hd23fc13_2
+ license: Zlib
+ license_family: Other
+ purls: []
+ size: 88544
+ timestamp: 1727963189976
+- conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.1-h2466b09_2.conda
+ sha256: 8c688797ba23b9ab50cef404eca4d004a948941b6ee533ead0ff3bf52012528c
+ md5: be60c4e8efa55fddc17b4131aa47acbd
+ depends:
+ - libzlib 1.3.1 h2466b09_2
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: Zlib
+ license_family: Other
+ purls: []
+ size: 107439
+ timestamp: 1727963788936
+- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h4c3975b_3.conda
+ sha256: 40c76563f3a398f27b4036e468881a1f909a8c66d100a16a28c1379a0940a59c
+ md5: 7a2c6e25a4fabf9fab62ee1977beabe5
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - cffi >=1.11
+ - libgcc >=14
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/zstandard?source=hash-mapping
+ size: 488806
+ timestamp: 1756075707087
+- conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.23.0-py312h2f459f6_3.conda
+ sha256: ae6a6f87f27270d3c58c826ba3e344780816793af7586fe7f3fa4d4b07c9e274
+ md5: f53fa375c2e4a2e42a64578db302145d
+ depends:
+ - __osx >=10.13
+ - cffi >=1.11
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/zstandard?source=hash-mapping
+ size: 644204
+ timestamp: 1756075773049
+- conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.23.0-py312he06e257_3.conda
+ sha256: 13f43231e22173473ba300d9a128caf386ec73a18a5b9b192858ba18ea2e78f1
+ md5: e23097165ce8ba29c30854c2a9e84449
+ depends:
+ - cffi >=1.11
+ - python >=3.12,<3.13.0a0
+ - python_abi 3.12.* *_cp312
+ - ucrt >=10.0.20348.0
+ - vc >=14.3,<15
+ - vc14_runtime >=14.44.35208
+ license: BSD-3-Clause
+ license_family: BSD
+ purls:
+ - pkg:pypi/zstandard?source=hash-mapping
+ size: 342842
+ timestamp: 1756075919270
+- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda
+ sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b
+ md5: 4d056880988120e29d75bfff282e0f45
+ depends:
+ - libgcc-ng >=12
+ - libstdcxx-ng >=12
+ - libzlib >=1.2.13,<2.0.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 554846
+ timestamp: 1714722996770
+- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda
+ sha256: a4166e3d8ff4e35932510aaff7aa90772f84b4d07e9f6f83c614cba7ceefe0eb
+ md5: 6432cb5d4ac0046c3ac0a8a0f95842f9
+ depends:
+ - __glibc >=2.17,<3.0.a0
+ - libgcc >=13
+ - libstdcxx >=13
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 567578
+ timestamp: 1742433379869
+- conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.6-h915ae27_0.conda
+ sha256: efa04a98cb149643fa54c4dad5a0179e36a5fbc88427ea0eec88ceed87fd0f96
+ md5: 4cb2cd56f039b129bb0e491c1164167e
+ depends:
+ - __osx >=10.9
+ - libzlib >=1.2.13,<2.0.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 498900
+ timestamp: 1714723303098
+- conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h8210216_2.conda
+ sha256: c171c43d0c47eed45085112cb00c8c7d4f0caa5a32d47f2daca727e45fb98dca
+ md5: cd60a4a5a8d6a476b30d8aa4bb49251a
+ depends:
+ - __osx >=10.13
+ - libzlib >=1.3.1,<2.0a0
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 485754
+ timestamp: 1742433356230
+- conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.6-h0ea2cb4_0.conda
+ sha256: 768e30dc513568491818fb068ee867c57c514b553915536da09e5d10b4ebf3c3
+ md5: 9a17230f95733c04dc40a2b1e5491d74
+ depends:
+ - libzlib >=1.2.13,<2.0.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ size: 349143
+ timestamp: 1714723445995
+- conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-hbeecb71_2.conda
+ sha256: bc64864377d809b904e877a98d0584f43836c9f2ef27d3d2a1421fa6eae7ca04
+ md5: 21f56217d6125fb30c3c3f10c786d751
+ depends:
+ - libzlib >=1.3.1,<2.0a0
+ - ucrt >=10.0.20348.0
+ - vc >=14.2,<15
+ - vc14_runtime >=14.29.30139
+ license: BSD-3-Clause
+ license_family: BSD
+ purls: []
+ size: 354697
+ timestamp: 1742433568506
diff --git a/pixi.toml b/pixi.toml
new file mode 100644
index 0000000000..71bc0b887d
--- /dev/null
+++ b/pixi.toml
@@ -0,0 +1,84 @@
+[project]
+name = "IfcOpenShell"
+version = "0.8.4"
+description = "IfcOpenShell is a library to support the IFC file format"
+channels = ["conda-forge"]
+platforms = ["win-64", "linux-64", "osx-64"]
+
+[environments]
+common = { features = ["common"], no-default-feature = true }
+prod = { features = ["prod", "common"], no-default-feature = true }
+dev = { features = ["dev", "common"], no-default-feature = true }
+lint = { features = ["lint"], no-default-feature = true }
+tests = { features = ["tests", "common"], no-default-feature = true }
+
+[feature.lint.dependencies]
+ruff = "*"
+black = "*"
+
+[feature.common.dependencies]
+# Build deps
+cmake = "==3.30.5"
+ninja = "*"
+swig = "*"
+c-compiler = "*"
+cxx-compiler = "*"
+
+# Runtime deps
+python = "3.12.*"
+libboost-devel = "*"
+occt = { version = "*", build = "*novtk*" }
+cgal-cpp = "*"
+numpy = "*"
+lark = "*"
+hdf5 = "*"
+eigen = "*"
+mpfr = "*"
+gmp = "*"
+nlohmann_json = "*"
+zlib = "*"
+# Not strictly necessary
+pythonocc-core = "*"
+
+[feature.tests.dependencies]
+pytest = "*"
+shapely = "*"
+tabulate = "*"
+isodate = "*"
+python-dateutil = "*"
+xmlschema = "*"
+xsdata = "*"
+lxml = "*"
+networkx = "*"
+
+[feature.common.target.win-64.dependencies]
+vs2022_win-64 = "*"
+#vs_win-64 = "*" # Visual Studio
+#vswhere = "*" # Visual Studio
+
+[feature.common.tasks]
+init-submodules = { cmd = "git submodule update --init --recursive", outputs =["$PIXI_PROJECT_ROOT/src/svgfill/3rdparty/svgpp/*"]}
+
+[feature.prod.target.win-64.tasks]
+configure-release = { cmd = ["cmake", "--preset", "win-release", "-B", "build/win-release", "cmake"], description = "Configure the project", depends-on=[{ task="init-submodules", environment = "common" }] }
+build-release = { cmd = ["cmake", "--build", "build/win-release", "--config", "Release"], description = "Build the project" }
+
+[feature.dev.target.win-64.tasks]
+configure-debug = { cmd = ["cmake", "--preset", "win-debug", "-B", "build/win-debug", "cmake"], description = "Configure the project", depends-on=[{ task="init-submodules", environment = "common" }], outputs=["build/win-debug/CMakeCache.txt"] }
+build-debug = { cmd = ["cmake", "--build", "build/win-debug", "--config", "Debug"], description = "Build the project", depends-on = ["configure-debug"] }
+install-debug = { cmd = ["cmake", "--install", "build/win-debug", "--config", "Debug"], description = "Install the project" } # Optionally Install files to your desired env using --prefix
+
+vsdebug = { cmd = ["python"], description = "Run a python script with vs debugger attached" }
+
+[feature.tests.tasks]
+configure-test = { cmd = ["cmake", "--preset", "win-test", "-B", "build/win-test", "cmake"], description = "Configure the project", depends-on=[{ task="init-submodules", environment = "common" }], outputs=["build/win-test/CMakeCache.txt"] }
+build-test = { cmd = ["cmake", "--build", "build/win-test", "--config", "Release"], description = "Build the project", depends-on = ["configure-test"], outputs=["build/win-test/IfcGeom.lib"] }
+install-test = { cmd = ["cmake", "--install", "build/win-test", "--config", "Release"], description = "Install the project", depends-on = ["build-test"] } # Optionally Install files to your desired env using --prefix
+
+test = { cmd = "pytest .", cwd="src/ifcopenshell-python/test", depends-on=["install-test"], env = {PYTHONPATH="$PIXI_PROJECT_ROOT/src/ifcpatch"}}
+
+[feature.lint.tasks]
+lint = { cmd = "ruff check && black --diff --check ."}
+
+[feature.common.target.win-64.activation]
+#scripts = ["cmake/activate.bat"]
diff --git a/src/bonsai/bonsai/bim/module/project/__init__.py b/src/bonsai/bonsai/bim/module/project/__init__.py
index 81bf9e9ec7..1316eb0325 100644
--- a/src/bonsai/bonsai/bim/module/project/__init__.py
+++ b/src/bonsai/bonsai/bim/module/project/__init__.py
@@ -55,6 +55,7 @@ classes = (
operator.RefreshClippingPlanes,
operator.RefreshLibrary,
operator.ReloadLink,
+ operator.RemoveProjectLibrary,
operator.RevertProject,
operator.RewindLibrary,
operator.SaveLibraryFile,
diff --git a/src/bonsai/bonsai/bim/module/project/data.py b/src/bonsai/bonsai/bim/module/project/data.py
index 50aad50e07..d391c172c1 100644
--- a/src/bonsai/bonsai/bim/module/project/data.py
+++ b/src/bonsai/bonsai/bim/module/project/data.py
@@ -29,6 +29,7 @@ from typing import Union, Any
def refresh():
ProjectData.is_loaded = False
LinksData.is_loaded = False
+ ProjectLibraryData.is_loaded = False
class ProjectData:
diff --git a/src/bonsai/bonsai/bim/module/project/operator.py b/src/bonsai/bonsai/bim/module/project/operator.py
index ec068c9040..8ef95b19e1 100644
--- a/src/bonsai/bonsai/bim/module/project/operator.py
+++ b/src/bonsai/bonsai/bim/module/project/operator.py
@@ -167,11 +167,27 @@ class SelectLibraryFile(bpy.types.Operator, IFCFileSelector, ImportHelper):
bl_idname = "bim.select_library_file"
bl_label = "Select Library File"
bl_options = {"REGISTER", "UNDO"}
- bl_description = "Select an IFC file that can be used as a library"
+ bl_description = (
+ "Select an IFC file that can be used as a library.\n\nALT+click to reload the current loaded library file."
+ )
filter_glob: bpy.props.StringProperty(default="*.ifc;*.ifczip;*.ifcxml", options={"HIDDEN"})
append_all: bpy.props.BoolProperty(default=False)
use_relative_path: bpy.props.BoolProperty(name="Use Relative Path", default=False)
+ reload_previous_file = False
+
+ def invoke(self, context, event):
+ if event.alt:
+ old_filepath = IfcStore.library_path
+ if not old_filepath:
+ self.report({"ERROR"}, "No library file loaded to reload.")
+ return {"CANCELLED"}
+ self.filepath = old_filepath
+ self.reload_previous_file = True
+ return self.execute(context)
+
+ return ImportHelper.invoke(self, context, event)
+
def execute(self, context):
IfcStore.begin_transaction(self)
old_filepath = IfcStore.library_path
@@ -201,6 +217,7 @@ class SelectLibraryFile(bpy.types.Operator, IFCFileSelector, ImportHelper):
if self.append_all:
bpy.ops.bim.append_entire_library()
ProjectLibraryData.load()
+ self.report({"INFO"}, f"Loaded library from {filepath}.")
return {"FINISHED"}
def rollback(self, data):
@@ -223,6 +240,7 @@ class SelectLibraryFile(bpy.types.Operator, IFCFileSelector, ImportHelper):
class RefreshLibrary(bpy.types.Operator):
bl_idname = "bim.refresh_library"
bl_label = "Refresh Library"
+ bl_description = "Refresh the library browser"
bl_options = {"UNDO"}
def execute(self, context):
@@ -506,6 +524,7 @@ class SaveLibraryFile(bpy.types.Operator):
def execute(self, context):
IfcStore.library_file.write(IfcStore.library_path)
+ self.report({"INFO"}, f"Library saved to {IfcStore.library_path}")
return {"FINISHED"}
@@ -601,8 +620,11 @@ class AppendLibraryElement(bpy.types.Operator, tool.Ifc.Operator):
self.import_type_from_ifc(element_type, context)
elif element.is_a("IfcMaterial"):
self.import_material_from_ifc(element, context)
- elif element.is_a("IfcPresentationStyle"):
+ elif element.is_a("IfcSurfaceStyle"):
self.import_presentation_style_from_ifc(element, context)
+ else:
+ # E.g. other IfcPresentationStyles.
+ pass
try:
props = tool.Project.get_project_props()
@@ -774,6 +796,45 @@ class AddProjectLibrary(bpy.types.Operator):
IfcStore.library_file.redo()
+class RemoveProjectLibrary(bpy.types.Operator):
+ bl_idname = "bim.remove_project_library"
+ bl_label = "Remove Project Library"
+ bl_description = "Remove the currently selected IfcProjectLibrary."
+ bl_options = {"REGISTER", "UNDO"}
+
+ def execute(self, context):
+ IfcStore.begin_transaction(self)
+ library_file = IfcStore.library_file
+ assert library_file
+ library_file.begin_transaction()
+ result = self._execute(context)
+ library_file.end_transaction()
+ IfcStore.add_transaction_operation(self)
+ IfcStore.end_transaction(self)
+ return result
+
+ def _execute(self, context):
+ props = tool.Project.get_project_props()
+ library_file = IfcStore.library_file
+ assert library_file
+
+ project_library = library_file.by_id(int(props.selected_project_library))
+ tool.Project.remove_project_library(project_library)
+
+ ProjectLibraryData.load() # Update enum.
+ enum_len = len(ProjectLibraryData.data["project_libraries_enum"])
+ if props.is_property_set("selected_project_library"):
+ props["selected_project_library"] = min(enum_len - 1, props["selected_project_library"])
+ bpy.ops.bim.refresh_library()
+ return {"FINISHED"}
+
+ def rollback(self, data):
+ IfcStore.library_file.undo()
+
+ def commit(self, data):
+ IfcStore.library_file.redo()
+
+
class EnableEditingHeader(bpy.types.Operator):
bl_idname = "bim.enable_editing_header"
bl_label = "Enable Editing Header"
diff --git a/src/bonsai/bonsai/bim/module/project/ui.py b/src/bonsai/bonsai/bim/module/project/ui.py
index 88164e86c6..0c305302f2 100644
--- a/src/bonsai/bonsai/bim/module/project/ui.py
+++ b/src/bonsai/bonsai/bim/module/project/ui.py
@@ -406,6 +406,7 @@ class BIM_PT_project_library(Panel):
if library_is_selected and not props.is_editing_project_library:
row.prop(props, "is_editing_project_library", text="", icon="GREASEPENCIL")
+ row.operator("bim.remove_project_library", text="", icon="X")
row.prop(self.props, "show_library_tree", text="", icon="OUTLINER")
diff --git a/src/bonsai/bonsai/tool/project.py b/src/bonsai/bonsai/tool/project.py
index a83f4d2fdc..f8c13e93b5 100644
--- a/src/bonsai/bonsai/tool/project.py
+++ b/src/bonsai/bonsai/tool/project.py
@@ -21,6 +21,7 @@ import os
import bpy
import ifcopenshell
import ifcopenshell.api.document
+import ifcopenshell.util.element
import ifcopenshell.util.representation
import ifcopenshell.util.unit
import bonsai.core.aggregate
@@ -398,3 +399,41 @@ class Project(bonsai.core.tool.Project):
if library_element.is_a("IfcProfileDef"):
return "ProfileName"
return "Name"
+
+ # TODO: Move to ifcopenshell.api and add tests.
+ @classmethod
+ def remove_project_library(cls, project_library: ifcopenshell.entity_instance) -> None:
+ ifc_file = project_library.file
+ roots_to_remove = {project_library}
+ rels_to_clean_up: set[ifcopenshell.entity_instance] = set()
+ queue = [project_library]
+ while queue:
+ current = queue.pop()
+ inverses = ifc_file.get_inverse(current)
+ rels_to_clean_up.update(i for i in inverses if i.is_a() in ("IfcRelNests", "IfcRelDeclares"))
+
+ children = ifcopenshell.util.element.get_components(current)
+ queue.extend(children)
+ roots_to_remove.update(children)
+
+ def remove_root(root: ifcopenshell.entity_instance) -> None:
+ history = root.OwnerHistory
+ ifc_file.remove(root)
+ if history:
+ ifcopenshell.util.element.remove_deep2(ifc_file, history)
+
+ for root in roots_to_remove:
+ remove_root(root)
+
+ # Clean up invalidated rels.
+ for rel in rels_to_clean_up:
+ if rel.is_a("IfcRelDeclares"):
+ # Project library was either assigned to Project or some types were assigned to it.
+ if not rel.RelatingContext or not rel.RelatedDefinitions:
+ remove_root(rel)
+ elif rel.is_a("IfcRelNests"):
+ # Project library was either parent or child to other project libraries.
+ if not rel.RelatingObject or not rel.RelatedObjects:
+ remove_root(rel)
+ else:
+ assert False, f"Shouldn't be here, {rel}"
diff --git a/src/bonsai/bonsai/tool/unit.py b/src/bonsai/bonsai/tool/unit.py
index 16ec9db2fb..81bc92bd94 100644
--- a/src/bonsai/bonsai/tool/unit.py
+++ b/src/bonsai/bonsai/tool/unit.py
@@ -203,8 +203,8 @@ class Unit(bonsai.core.tool.Unit):
@classmethod
def format_value(cls, value: float) -> str:
- precision = tool.Ifc.get().by_type("IfcGeometricRepresentationContext")[0].Precision
- if precision:
+ context = next(iter(tool.Ifc.get().by_type("IfcGeometricRepresentationContext")), None)
+ if context and (precision := context.Precision):
decimal_places = math.ceil(math.log10(1 / precision))
else:
precision = 1e-5
diff --git a/src/ifcfm/ifcfm/__init__.py b/src/ifcfm/ifcfm/__init__.py
index 6d08e2f17d..ff36e5702c 100644
--- a/src/ifcfm/ifcfm/__init__.py
+++ b/src/ifcfm/ifcfm/__init__.py
@@ -16,6 +16,7 @@
# You should have received a copy of the GNU Lesser General Public License
# along with IfcFM. If not, see .
+from __future__ import annotations
import os
import re
import csv
@@ -23,7 +24,7 @@ import importlib
import ifcopenshell.util.selector
from pathlib import Path
from collections import defaultdict
-from typing import Literal, Union, Any, Callable
+from typing import Literal, Union, Any, Callable, TYPE_CHECKING
try:
from openpyxl import Workbook
@@ -46,6 +47,9 @@ try:
except:
pass # No Pandas support
+if TYPE_CHECKING:
+ import pandas as pd
+
__version__ = version = "0.0.0"
diff --git a/src/ifcgeom/mapping/IfcFixedReferenceSweptAreaSolid.cpp b/src/ifcgeom/mapping/IfcFixedReferenceSweptAreaSolid.cpp
index 28e23fb30f..e462fc75e0 100644
--- a/src/ifcgeom/mapping/IfcFixedReferenceSweptAreaSolid.cpp
+++ b/src/ifcgeom/mapping/IfcFixedReferenceSweptAreaSolid.cpp
@@ -17,107 +17,119 @@
* *
********************************************************************************/
-#include "mapping.h"
#include "../function_item_evaluator.h"
+#include "mapping.h"
#define mapping POSTFIX_SCHEMA(mapping)
using namespace ifcopenshell::geometry;
#ifdef SCHEMA_HAS_IfcFixedReferenceSweptAreaSolid
taxonomy::ptr mapping::map_impl(const IfcSchema::IfcFixedReferenceSweptAreaSolid* inst) {
- auto dir = map(inst->Directrix());
- auto ref = taxonomy::cast(map(inst->FixedReference()));
- auto profile = taxonomy::cast(map(inst->SweptArea()));
+ auto dir = map(inst->Directrix());
+ auto ref = taxonomy::cast(map(inst->FixedReference()));
+ auto profile = taxonomy::cast(map(inst->SweptArea()));
- auto loft = taxonomy::make();
- // @todo intialize as default
- loft->axis = nullptr;
-
- // @todo currently only the case is handled where directrix returns a piecewise_function
- if (auto fn = taxonomy::dcast(dir)) {
- function_item_evaluator evaluator(settings_,fn);
- double start = 0;
- double end = fn->length();
- // IfcPointByDistanceExpression is introduced in rc2, the code below doesn't work on rc1 because startparam is optional
-#if defined(SCHEMA_HAS_IfcDirectrixCurveSweptAreaSolid) && defined(SCHEMA_HAS_IfcPointByDistanceExpression)
- // IfcDirectrixCurveSweptAreaSolid introduced in 4.3 changed attribute type
- // from optional IfcParamValue to optional IfcCurveMeasureSelect.
- // Invocation of mapping on pre-4.3 models can never result in a piecewise_function.
- if (inst->StartParam() && inst->StartParam()->as()) {
- double s = *inst->StartParam()->as();
- if (s > start) {
- start = s;
- }
- }
- if (inst->EndParam() && inst->EndParam()->as()) {
- double e = *inst->EndParam()->as();
- if (e < end) {
- end = e;
- }
- }
+ auto loft = taxonomy::make();
+ // @todo intialize as default
+ loft->axis = nullptr;
+ // Check if this instance has alignment elements
+ // @todo currently only the case is handled where directrix returns a piecewise_function
+ if (auto fn = std::dynamic_pointer_cast(dir)) {
+ function_item_evaluator evaluator(settings_, fn);
+ double start = 0;
+ double end = fn->length();
+#ifdef SCHEMA_HAS_IfcDirectrixCurveSweptAreaSolid
+ // IfcDirectrixCurveSweptAreaSolid introduced in 4.3 changed attribute type
+ // from optional IfcParamValue to optional IfcCurveMeasureSelect.
+ // Invocation of mapping on pre-4.3 models can never result in a piecewise_function.
+ if (inst->StartParam() && inst->StartParam()->as()) {
+ double s = *inst->StartParam()->as();
+ if (s > start) {
+ start = s;
+ }
+ }
+ if (inst->EndParam() && inst->EndParam()->as()) {
+ double e = *inst->EndParam()->as();
+ if (e < end) {
+ end = e;
+ }
+ }
#endif
- auto evaluation_points = evaluator.evaluation_points();
- for (const auto& dist_along : evaluation_points) {
- auto m4 = evaluator.evaluate(dist_along);
-
- /*
- std::stringstream ss;
- ss << m4;
- auto s = ss.str();
- std::wcout << s.c_str() << std::endl;
+ auto evaluation_points = evaluator.evaluation_points();
+ for (const auto& dist_along : evaluation_points) {
+ auto m4 = evaluator.evaluate(dist_along);
+
+ /*
+ std::stringstream ss;
+ ss << m4;
+ auto s = ss.str();
+ std::wcout << s.c_str() << std::endl;
std::wcout << "determinant: " << m4.determinant() << std::endl;
- */
+ */
+
+ Eigen::Matrix4d m4b = Eigen::Matrix4d::Identity();
+ bool is_directrix_derived = false;
- Eigen::Matrix4d m4b = Eigen::Matrix4d::Identity();
- bool is_directrix_derived = false;
-
#ifdef SCHEMA_HAS_IfcDirectrixDerivedReferenceSweptAreaSolid
- if (inst->as()) {
- is_directrix_derived = true;
- }
+ if (inst->as()) {
+ is_directrix_derived = true;
+ }
#endif
- auto pos = m4.col(3).head<3>();
+ auto pos = m4.col(3).head<3>();
- if (is_directrix_derived) {
- m4b.col(0).head<3>() = m4.col(1).head<3>();
- m4b.col(1).head<3>() = m4.col(0).head<3>().cross(m4.col(1).head<3>());
- m4b.col(2).head<3>() = m4.col(0).head<3>();
- m4b.col(3).head<3>() = pos;
- } else {
- Eigen::Vector3d tangent = m4.col(0).head<3>().normalized();
- Eigen::Vector3d proj = (ref->components() - tangent * tangent.dot(ref->components()));
- proj.normalize();
- auto ref = proj.cross(tangent);
+ if (is_directrix_derived) {
+ m4b.col(0).head<3>() = m4.col(1).head<3>();
+ m4b.col(1).head<3>() = m4.col(0).head<3>().cross(m4.col(1).head<3>());
+ m4b.col(2).head<3>() = m4.col(0).head<3>();
+ m4b.col(3).head<3>() = pos;
+ } else {
+ Eigen::Vector3d tangent = m4.col(0).head<3>().normalized();
+ Eigen::Vector3d proj = (ref->components() - tangent * tangent.dot(ref->components()));
+ proj.normalize();
+ auto ref = proj.cross(tangent);
- m4b.col(0).head<3>() = proj;
- m4b.col(1).head<3>() = ref;
- m4b.col(2).head<3>() = tangent;
- m4b.col(3).head<3>() = pos;
+ m4b.col(0).head<3>() = proj;
+ m4b.col(1).head<3>() = ref;
+ m4b.col(2).head<3>() = tangent;
+ m4b.col(3).head<3>() = pos;
- /*
- Eigen::JacobiSVD svd(m4b);
- auto condition_number = svd.singularValues()(0)
- / svd.singularValues()(svd.singularValues().size() - 1);
- if (condition_number > 1.e10) {
- Logger::Error("Non-invertible matrix at " + std::to_string(distalong) + " conversion will likely fail.");
- }
- */
- }
+ /*
+ Eigen::JacobiSVD svd(m4b);
+ auto condition_number = svd.singularValues()(0)
+ / svd.singularValues()(svd.singularValues().size() - 1);
+ if (condition_number > 1.e10) {
+ Logger::Error("Non-invertible matrix at " + std::to_string(distalong) + " conversion will likely fail.");
+ }
+ */
+ }
- // @todo taxonomy::clone() does not actually clone. That's really confusing.
- // loft->children.push_back(taxonomy::clone(profile));
- loft->children.push_back(taxonomy::face::ptr(profile->clone_()));
- loft->children.back()->matrix = taxonomy::make();
-
- if (profile->matrix) {
- loft->children.back()->matrix->components() = (m4b * profile->matrix->ccomponents()).eval();
- } else {
- loft->children.back()->matrix->components() = m4b;
- }
- }
- }
+ // @todo taxonomy::clone() does not actually clone. That's really confusing.
+ // loft->children.push_back(taxonomy::clone(profile));
+ loft->children.push_back(taxonomy::face::ptr(profile->clone_()));
+ loft->children.back()->matrix = taxonomy::make();
- return loft;
+ if (profile->matrix) {
+ loft->children.back()->matrix->components() = (m4b * profile->matrix->ccomponents()).eval();
+ } else {
+ loft->children.back()->matrix->components() = m4b;
+ }
+ }
+ } else {
+ taxonomy::matrix4::ptr matrix;
+ if (inst->Position() != nullptr) {
+ matrix = taxonomy::cast(map(inst->Position()));
+ }
+ // TODO: Implement handling for non-alignment curves using sweep_along_curve
+ auto sweep = taxonomy::make(
+ matrix, // matrix4::ptr - no transformation needed
+ profile, // face::ptr - the profile to sweep
+ dir, // item::ptr curve - the directrix curve
+ ref);
+
+ return sweep;
+ }
+
+ return loft;
}
#endif
diff --git a/src/ifcgeom/taxonomy.h b/src/ifcgeom/taxonomy.h
index 849b9d5790..94e2e7bf52 100644
--- a/src/ifcgeom/taxonomy.h
+++ b/src/ifcgeom/taxonomy.h
@@ -1210,11 +1210,15 @@ typedef item const* ptr;
item::ptr surface;
item::ptr curve;
+ direction3::ptr direction = nullptr;
virtual sweep_along_curve* clone_() const { return new sweep_along_curve(*this); }
virtual kinds kind() const { return SWEEP_ALONG_CURVE; }
- sweep_along_curve(matrix4::ptr m, face::ptr basis, item::ptr surf, item::ptr crv) : sweep(m, basis), surface(surf), curve(crv) {}
+ sweep_along_curve(matrix4::ptr m, face::ptr basis, item::ptr surf, item::ptr crv) : sweep(m, basis), surface(surf), curve(crv), direction(nullptr) {}
+
+ // New constructor for fixed reference swept area solid
+ sweep_along_curve(matrix4::ptr m, face::ptr profile, item::ptr directrix, direction3::ptr ref) : sweep(m, profile), surface(nullptr), curve(directrix), direction(ref) { }
virtual size_t calc_hash() const {
auto v = std::make_tuple(static_cast(SWEEP_ALONG_CURVE), matrix->hash_components(), basis->calc_hash(), surface->calc_hash(), curve->calc_hash());
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/__init__.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/__init__.py
index 9154159bb5..563376485f 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/__init__.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/__init__.py
@@ -60,7 +60,9 @@ from .create_segment_representations import create_segment_representations
from .create_representation import create_representation
from .distance_along_from_station import distance_along_from_station
from .get_alignment import get_alignment
-from .get_alignment_station import get_alignment_station
+from .get_alignment_layout_nest import get_alignment_layout_nest
+from .get_alignment_segment_nest import get_alignment_segment_nest
+from .get_alignment_start_station import get_alignment_start_station
from .get_curve_segment_transition_code import get_curve_segment_transition_code
from .get_layout_segments import get_layout_segments
from .get_horizontal_layout import get_horizontal_layout
@@ -74,6 +76,7 @@ from .get_curve import get_curve
from .get_layout_curve import get_layout_curve
from .get_mapped_segments import get_mapped_segments
from .get_parent_alignment import get_parent_alignment
+from .get_referent_nest import get_referent_nest
from .has_zero_length_segment import has_zero_length_segment
from .layout_horizontal_alignment_by_pi_method import layout_horizontal_alignment_by_pi_method
from .layout_vertical_alignment_by_pi_method import layout_vertical_alignment_by_pi_method
@@ -97,8 +100,10 @@ __all__ = [
"create_segment_representations",
"distance_along_from_station",
"get_alignment",
+ "get_alignment_layout_nest",
"get_alignment_layouts",
- "get_alignment_station",
+ "get_alignment_segment_nest",
+ "get_alignment_start_station",
"get_axis_subcontext",
"get_basis_curve",
"get_cant_layout",
@@ -109,6 +114,7 @@ __all__ = [
"get_layout_curve",
"get_layout_segments",
"get_parent_alignment",
+ "get_referent_nest",
"get_vertical_layout",
"has_zero_length_segment",
"layout_horizontal_alignment_by_pi_method",
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_layout.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_layout.py
index 1d798ec89e..88b68ff674 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_layout.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_segment_to_layout.py
@@ -60,132 +60,93 @@ def _add_segment_to_layout(file: ifcopenshell.file, layout: entity_instance, seg
# swap the last two segments
ifcopenshell.api.nest.reorder_nesting(file, segment, -1, -1)
- # add the new segment to the geometric representation curve
- _add_segment_to_curve(file, segment, curve)
+ if curve:
+ # add the new segment to the geometric representation curve
+ _add_segment_to_curve(file, segment, curve)
- # gather information to:
- # (1) add a referent at the start of this segment
- # (2) update the name of the zero length segment's referent
+ # gather information to:
+ # (1) add a referent at the start of this segment
+ # (2) update the name of the zero length segment's referent
- # get the distance along the alignment to the start of the new segment
- dist_along = 0.0
- if layout.is_a("IfcAlignmentHorizontal"):
- for nest in layout.IsNestedBy:
- for seg in nest.RelatedObjects:
- if seg.is_a("IfcAlignmentSegment"):
- dist_along += seg.DesignParameters.SegmentLength
+ # get the distance along the alignment to the start of the new segment
+ dist_along = 0.0
+ if layout.is_a("IfcAlignmentHorizontal"):
+ for nest in layout.IsNestedBy:
+ for seg in nest.RelatedObjects:
+ if seg.is_a("IfcAlignmentSegment"):
+ dist_along += seg.DesignParameters.SegmentLength
- # the length of the current segment is in dist_along, so subtract it out
- dist_along -= segment.DesignParameters.SegmentLength
- else:
- dist_along = segment.DesignParameters.StartDistAlong
-
- # get the station of the start of the segment
- alignment = ifcopenshell.api.alignment.get_alignment(layout)
- start_station = ifcopenshell.api.alignment.get_alignment_station(file, alignment)
- station = start_station + dist_along
-
- # update the zero length layout segment
- unit_scale = ifcopenshell.util.unit.calculate_unit_scale(file)
-
- zero_length_segment = layout.IsNestedBy[0].RelatedObjects[-1]
- # DesignParameters.StartPoint for IfcAlignmentHorizontalSegment is automatically updated when the
- # geometric representation is updated because the semantic and geometric data use the same IfcPoint.
- # This is not the case of IfcAlignmentVerticalSegment and IfcAlignmentCantSegment. For these
- # segment types, the design parameters of the zero length segment must be updated explicitly.
- if zero_length_segment.DesignParameters.is_a(
- "IfcAlignmentVerticalSegment"
- ) or zero_length_segment.DesignParameters.is_a("IfcAlignmentCantSegment"):
- # get the geometric representation for the new segment
- mapped_segments = ifcopenshell.api.alignment.get_mapped_segments(segment)
- mapped_segment = mapped_segments[0] if mapped_segments[1] == None else mapped_segments[1]
-
- # compute the end point matrix
- settings = ifcopenshell.geom.settings()
- segment_fn = ifcopenshell_wrapper.map_shape(settings, mapped_segment.wrapped_data)
- segment_evaluator = ifcopenshell_wrapper.function_item_evaluator(settings, segment_fn)
- e = segment_evaluator.evaluate(segment_fn.end())
- end = np.array(e)
-
- # update the zero length segment semantic representation parameters
- if zero_length_segment.DesignParameters.is_a("IfcAlignmentVerticalSegment"):
- y = float(end[1, 3]) / unit_scale
- zero_length_segment.DesignParameters.StartHeight = y
- dx = float(end[0, 0])
- dy = float(end[1, 0])
- zero_length_segment.DesignParameters.StartGradient = dy / dx
- zero_length_segment.DesignParameters.EndGradient = zero_length_segment.DesignParameters.StartGradient
+ # the length of the current segment is in dist_along, so subtract it out
+ dist_along -= segment.DesignParameters.SegmentLength
else:
- z = float(end[2, 3]) / unit_scale
- dx = float(end[0, 1])
- dy = float(end[1, 1])
- dz = float(end[2, 1])
- ds = math.sqrt(dx * dx + dy * dy)
- slope = dz / ds
- railhead = layout.RailHeadDistance
+ dist_along = segment.DesignParameters.StartDistAlong
- zero_length_segment.DesignParameters.StartCantLeft = z + slope * railhead / 2.0
- zero_length_segment.DesignParameters.StartCantRight = z - slope * railhead / 2.0
-
- # updated the referent's name because the referent is now at a new station
- start_dist_along = 0.0
- if segment.DesignParameters.is_a("IfcAlignmentHorizontalSegment"):
- start_dist_along = dist_along + segment.DesignParameters.SegmentLength
- else:
- start_dist_along = segment.DesignParameters.StartDistAlong + segment.DesignParameters.HorizontalLength
- zero_length_segment.DesignParameters.StartDistAlong = start_dist_along
-
- end_referent = zero_length_segment.IsNestedBy[0].RelatedObjects[0]
- end_referent.Name = f"{_get_segment_start_point_label(zero_length_segment,None)} ({ifcopenshell.util.alignment.station_as_string(file,start_station+start_dist_along)})"
-
- # update the referent's geometric representation's location
- end_referent.ObjectPlacement.RelativePlacement.Location.DistanceAlong.wrappedValue = start_dist_along
- settings = ifcopenshell.geom.settings()
- basis_curve = ifcopenshell.api.alignment.get_basis_curve(alignment)
- curve_fn = ifcopenshell_wrapper.map_shape(settings, basis_curve.wrapped_data)
- curve_evaluator = ifcopenshell_wrapper.function_item_evaluator(settings, curve_fn)
- p = curve_evaluator.evaluate(start_dist_along * unit_scale)
- p = np.array(p)
-
- x = float(p[0, 3]) / unit_scale
- y = float(p[1, 3]) / unit_scale
- z = float(p[2, 3]) / unit_scale
-
- rx = float(p[0, 0])
- ry = float(p[1, 0])
- rz = float(p[2, 0])
-
- ax = float(p[0, 2])
- ay = float(p[1, 2])
- az = float(p[2, 2])
-
- end_referent.ObjectPlacement.CartesianPosition.Location.Coordinates = (x, y, z)
- end_referent.ObjectPlacement.CartesianPosition.Axis.DirectionRatios = (ax, ay, az)
- end_referent.ObjectPlacement.CartesianPosition.RefDirection.DirectionRatios = (rx, ry, rz)
-
- start_station = ifcopenshell.api.alignment.get_alignment_station(file, alignment)
- end_referent_station = start_station + start_dist_along
- pset_stationing = ifcopenshell.api.pset.add_pset(file, product=end_referent, name="Pset_Stationing")
- ifcopenshell.api.pset.edit_pset(file, pset=pset_stationing, properties={"Station": end_referent_station})
-
- # create the start of segment referent
-
- # get the previous segment. Working from the end of the basis curve, -1 is zero length segment
- # -2 is the newly added segment, so -3 is the segment occuring just before the newly added segment
- prev_segment = layout.IsNestedBy[0].RelatedObjects[-3] if 2 < len(layout.IsNestedBy[0].RelatedObjects) else None
- name = f"{_get_segment_start_point_label(prev_segment,segment)} ({ifcopenshell.util.alignment.station_as_string(file,station)})"
- referent = ifcopenshell.api.alignment.add_stationing_referent(
- file, segment, distance_along=dist_along, station=station, name=name
- )
-
- if len(curve.Segments) == 2 and layout.is_a("IfcAlignmentHorizontal"):
- # this is the first real segment in the horizontal alignment
- # update the location of the alignment's stationing referent
+ # get the station of the start of the segment
alignment = ifcopenshell.api.alignment.get_alignment(layout)
- stationing_referent = alignment.IsNestedBy[0].RelatedObjects[0]
- p = curve_evaluator.evaluate(
- stationing_referent.ObjectPlacement.RelativePlacement.Location.DistanceAlong.wrappedValue
- )
+ start_station = ifcopenshell.api.alignment.get_alignment_start_station(file, alignment)
+ station = start_station + dist_along
+
+ # update the zero length layout segment
+ unit_scale = ifcopenshell.util.unit.calculate_unit_scale(file)
+
+ segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(layout)
+ zero_length_segment = segment_nest.RelatedObjects[-1]
+ # DesignParameters.StartPoint for IfcAlignmentHorizontalSegment is automatically updated when the
+ # geometric representation is updated because the semantic and geometric data use the same IfcPoint.
+ # This is not the case of IfcAlignmentVerticalSegment and IfcAlignmentCantSegment. For these
+ # segment types, the design parameters of the zero length segment must be updated explicitly.
+ if zero_length_segment.DesignParameters.is_a(
+ "IfcAlignmentVerticalSegment"
+ ) or zero_length_segment.DesignParameters.is_a("IfcAlignmentCantSegment"):
+ # get the geometric representation for the new segment
+ mapped_segments = ifcopenshell.api.alignment.get_mapped_segments(segment)
+ mapped_segment = mapped_segments[0] if mapped_segments[1] == None else mapped_segments[1]
+
+ # compute the end point matrix
+ settings = ifcopenshell.geom.settings()
+ segment_fn = ifcopenshell_wrapper.map_shape(settings, mapped_segment.wrapped_data)
+ segment_evaluator = ifcopenshell_wrapper.function_item_evaluator(settings, segment_fn)
+ e = segment_evaluator.evaluate(segment_fn.end())
+ end = np.array(e)
+
+ # update the zero length segment semantic representation parameters
+ if zero_length_segment.DesignParameters.is_a("IfcAlignmentVerticalSegment"):
+ y = float(end[1, 3]) / unit_scale
+ zero_length_segment.DesignParameters.StartHeight = y
+ dx = float(end[0, 0])
+ dy = float(end[1, 0])
+ zero_length_segment.DesignParameters.StartGradient = dy / dx
+ zero_length_segment.DesignParameters.EndGradient = zero_length_segment.DesignParameters.StartGradient
+ else:
+ z = float(end[2, 3]) / unit_scale
+ dx = float(end[0, 1])
+ dy = float(end[1, 1])
+ dz = float(end[2, 1])
+ ds = math.sqrt(dx * dx + dy * dy)
+ slope = dz / ds
+ railhead = layout.RailHeadDistance
+
+ zero_length_segment.DesignParameters.StartCantLeft = z + slope * railhead / 2.0
+ zero_length_segment.DesignParameters.StartCantRight = z - slope * railhead / 2.0
+
+ # updated the referent's name because the referent is now at a new station
+ start_dist_along = 0.0
+ if segment.DesignParameters.is_a("IfcAlignmentHorizontalSegment"):
+ start_dist_along = dist_along + segment.DesignParameters.SegmentLength
+ else:
+ start_dist_along = segment.DesignParameters.StartDistAlong + segment.DesignParameters.HorizontalLength
+ zero_length_segment.DesignParameters.StartDistAlong = start_dist_along
+
+ end_referent = zero_length_segment.PositionedRelativeTo[0].RelatingPositioningElement
+ end_referent.Name = f"{_get_segment_start_point_label(zero_length_segment,None)} ({ifcopenshell.util.alignment.station_as_string(file,start_station+start_dist_along)})"
+
+ # update the referent's geometric representation's location
+ end_referent.ObjectPlacement.RelativePlacement.Location.DistanceAlong.wrappedValue = start_dist_along
+ settings = ifcopenshell.geom.settings()
+ basis_curve = ifcopenshell.api.alignment.get_basis_curve(alignment)
+ curve_fn = ifcopenshell_wrapper.map_shape(settings, basis_curve.wrapped_data)
+ curve_evaluator = ifcopenshell_wrapper.function_item_evaluator(settings, curve_fn)
+ p = curve_evaluator.evaluate(start_dist_along * unit_scale)
p = np.array(p)
x = float(p[0, 3]) / unit_scale
@@ -200,6 +161,48 @@ def _add_segment_to_layout(file: ifcopenshell.file, layout: entity_instance, seg
ay = float(p[1, 2])
az = float(p[2, 2])
- stationing_referent.ObjectPlacement.CartesianPosition.Location.Coordinates = (x, y, z)
- stationing_referent.ObjectPlacement.CartesianPosition.Axis.DirectionRatios = (ax, ay, az)
- stationing_referent.ObjectPlacement.CartesianPosition.RefDirection.DirectionRatios = (rx, ry, rz)
+ end_referent.ObjectPlacement.CartesianPosition.Location.Coordinates = (x, y, z)
+ end_referent.ObjectPlacement.CartesianPosition.Axis.DirectionRatios = (ax, ay, az)
+ end_referent.ObjectPlacement.CartesianPosition.RefDirection.DirectionRatios = (rx, ry, rz)
+
+ start_station = ifcopenshell.api.alignment.get_alignment_start_station(file, alignment)
+ end_referent_station = start_station + start_dist_along
+ pset_stationing = ifcopenshell.api.pset.add_pset(file, product=end_referent, name="Pset_Stationing")
+ ifcopenshell.api.pset.edit_pset(file, pset=pset_stationing, properties={"Station": end_referent_station})
+
+ # create the start of segment referent
+
+ # get the previous segment. Working from the end of the basis curve, -1 is zero length segment
+ # -2 is the newly added segment, so -3 is the segment occuring just before the newly added segment
+ prev_segment = segment_nest.RelatedObjects[-3] if 2 < len(segment_nest.RelatedObjects) else None
+ name = f"{_get_segment_start_point_label(prev_segment,segment)} ({ifcopenshell.util.alignment.station_as_string(file,station)})"
+ referent = ifcopenshell.api.alignment.add_stationing_referent(
+ file, alignment, distance_along=dist_along, station=station, name=name, positioned_product=segment
+ )
+
+ if len(curve.Segments) == 2 and layout.is_a("IfcAlignmentHorizontal"):
+ # this is the first real segment in the horizontal alignment
+ # update the location of the alignment's stationing referent
+ alignment = ifcopenshell.api.alignment.get_alignment(layout)
+ ref_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
+ stationing_referent = ref_nest.RelatedObjects[0]
+ p = curve_evaluator.evaluate(
+ stationing_referent.ObjectPlacement.RelativePlacement.Location.DistanceAlong.wrappedValue
+ )
+ p = np.array(p)
+
+ x = float(p[0, 3]) / unit_scale
+ y = float(p[1, 3]) / unit_scale
+ z = float(p[2, 3]) / unit_scale
+
+ rx = float(p[0, 0])
+ ry = float(p[1, 0])
+ rz = float(p[2, 0])
+
+ ax = float(p[0, 2])
+ ay = float(p[1, 2])
+ az = float(p[2, 2])
+
+ stationing_referent.ObjectPlacement.CartesianPosition.Location.Coordinates = (x, y, z)
+ stationing_referent.ObjectPlacement.CartesianPosition.Axis.DirectionRatios = (ax, ay, az)
+ stationing_referent.ObjectPlacement.CartesianPosition.RefDirection.DirectionRatios = (rx, ry, rz)
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_zero_length_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_zero_length_segment.py
index 1f53e33ba9..1219e35762 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_zero_length_segment.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/_add_zero_length_segment.py
@@ -48,8 +48,9 @@ def _add_zero_length_segment(file: ifcopenshell.file, layout: entity_instance) -
if curve:
ifcopenshell.api.alignment.add_zero_length_segment(file, curve)
- segment = layout.IsNestedBy[0].RelatedObjects[-1]
- alignment = ifcopenshell.api.alignment.get_alignment(layout)
- station = ifcopenshell.api.alignment.get_alignment_station(file, alignment)
- name = f"{_get_segment_start_point_label(segment,None)} ({ifcopenshell.util.alignment.station_as_string(file,station)})"
- ifcopenshell.api.alignment.add_stationing_referent(file, segment, 0.0, station, name=name)
+ segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(layout)
+ segment = segment_nest.RelatedObjects[-1]
+ alignment = ifcopenshell.api.alignment.get_alignment(layout)
+ station = ifcopenshell.api.alignment.get_alignment_start_station(file, alignment)
+ name = f"{_get_segment_start_point_label(segment,None)} ({ifcopenshell.util.alignment.station_as_string(file,station)})"
+ referent = ifcopenshell.api.alignment.add_stationing_referent(file, alignment, 0.0, station, name, segment)
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_stationing_referent.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_stationing_referent.py
index eece9ce581..1534ad9d5d 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_stationing_referent.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_stationing_referent.py
@@ -30,19 +30,20 @@ import numpy as np
def add_stationing_referent(
file: ifcopenshell.file,
- element: entity_instance,
+ alignment: entity_instance,
distance_along: float,
station: float,
name: str,
+ positioned_product: entity_instance,
) -> entity_instance:
"""
- Adds an IfcReferent to the element with the Pset_Stationing property set.
- If element is an IfcAlignment, IfcReferent.PredefinedType is set to "STATION", otherwise "POSITION"
+ Adds an IfcReferent to the alignment with the Pset_Stationing property set.
- :param element: the element to receive the referent, expected to be an IfcAlignment or IfcAlignmentSegment
- :param distance_along: distance along the alignment curve
+ :param alignment: the alignment to receive the referent
+ :param distance_along: distance along the alignment basis curve
:param station: station value
:param name: name to assign to IfcReferent.Name, typically a stringized version of the station value
+ :param positioned_product: the product whose position is informed by the referent
:return: referent
Example:
@@ -50,13 +51,8 @@ def add_stationing_referent(
.. code:: python
alignment = model.by_type("IfcAlignment")[0]
- ifcopenshell.api.alignment.add_stationing_referent(model,entity=alignment,distance_along=0.0,station=100.0)
+ ifcopenshell.api.alignment.add_stationing_referent(model,alignment=alignment,distance_along=0.0,station=100.0)
"""
- alignment = element
-
- if element.is_a("IfcAlignmentSegment"):
- layout = element.Nests[0].RelatingObject
- alignment = ifcopenshell.api.alignment.get_alignment(layout)
basis_curve = ifcopenshell.api.alignment.get_basis_curve(alignment)
@@ -76,6 +72,8 @@ def add_stationing_referent(
)
is_valid_curve = True
+ if basis_curve.is_a("IfcCompositeCurve") and len(basis_curve.Segments) == 0:
+ is_valid_curve = False
if basis_curve.is_a("IfcPolyline") and len(basis_curve.Points) < 2:
is_valid_curve = False
elif basis_curve.is_a("IfcIndexedPolyCurve") and len(basis_curve.Points.CoordList) < 2:
@@ -91,6 +89,7 @@ def add_stationing_referent(
fn = ifcopenshell_wrapper.convert_loop_to_function_item(fn)
evaluator = ifcopenshell_wrapper.function_item_evaluator(settings, fn)
+
p = evaluator.evaluate(distance_along * unit_scale)
p = np.array(p)
@@ -105,12 +104,23 @@ def add_stationing_referent(
ax = float(p[0, 2])
ay = float(p[1, 2])
az = float(p[2, 2])
+ else:
+ x = 0.0
+ y = 0.0
+ z = 0.0
+ rx = 1.0
+ ry = 0.0
+ rz = 0.0
+ ax = 0.0
+ ay = 0.0
+ az = 1.0
+
+ object_placement.CartesianPosition = file.createIfcAxis2Placement3D(
+ Location=file.createIfcCartesianPoint((x, y, z)),
+ Axis=file.createIfcDirection((ax, ay, az)),
+ RefDirection=file.createIfcDirection((rx, ry, rz)),
+ )
- object_placement.CartesianPosition = file.createIfcAxis2Placement3D(
- Location=file.createIfcCartesianPoint((x, y, z)),
- Axis=file.createIfcDirection((ax, ay, az)),
- RefDirection=file.createIfcDirection((rx, ry, rz)),
- )
# this commented out code is what you would do to add a geometric representation of the referent
# the example is a circle. a better way would be to pass a representation into the function
# representation = file.create_entity(
@@ -120,7 +130,6 @@ def add_stationing_referent(
# )
# create referent for the station
- predefined_type = "STATION" if element.is_a("IfcAlignment") else "POSITION"
referent = file.createIfcReferent(
GlobalId=ifcopenshell.guid.new(),
OwnerHistory=None,
@@ -129,21 +138,27 @@ def add_stationing_referent(
ObjectType=None,
ObjectPlacement=object_placement,
Representation=representation,
- PredefinedType=predefined_type,
+ PredefinedType="STATION",
)
pset_stationing = ifcopenshell.api.pset.add_pset(file, product=referent, name="Pset_Stationing")
ifcopenshell.api.pset.edit_pset(file, pset=pset_stationing, properties={"Station": station})
- ifcopenshell.api.nest.assign_object(file, related_objects=[referent], relating_object=element)
- if len(alignment.Positions) == 0:
+ nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
+ nest.RelatedObjects += (referent,)
+
+ nest.RelatedObjects = sorted(
+ nest.RelatedObjects, key=lambda x: ifcopenshell.util.element.get_pset(x, name="Pset_Stationing", prop="Station")
+ )
+
+ if len(referent.Positions) == 0:
rel_positions = file.createIfcRelPositions(
GlobalId=ifcopenshell.guid.new(),
- RelatingPositioningElement=alignment,
+ RelatingPositioningElement=referent,
RelatedProducts=[
- referent,
+ positioned_product,
],
)
else:
- alignment.Positions[0].RelatedProducts += (referent,)
+ referent.Positions[0].RelatedProducts += (positioned_product,)
return referent
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_vertical_layout.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_vertical_layout.py
index 6a388ff9d0..06c1ef9fa8 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_vertical_layout.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_vertical_layout.py
@@ -50,9 +50,21 @@ def _move_vertical_layout_to_child_alignment(
# nest the vertical layout onto the child alignment
ifcopenshell.api.nest.assign_object(file, related_objects=[vertical_layout], relating_object=child_alignment)
- # aggreage the child alignment to the parent alignment
+ # aggregate the child alignment to the parent alignment
ifcopenshell.api.aggregate.assign_object(file, products=[child_alignment], relating_object=parent_alignment)
+ # move all referents positioning segments of the vertical layout to the referent nest of the child alignment
+ child_referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, child_alignment)
+ parent_referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, parent_alignment)
+ for referent in parent_referent_nest.RelatedObjects:
+ for product in referent.Positions[0].RelatedProducts:
+ if product.is_a("IfcAlignmentSegment") and product.Nests[0].RelatingObject == vertical_layout:
+ # ifcopenshell.api.nest.change_nest(file,referent,child_alignment) - this doesn't work because referent is assigned to child_alignment.IsNestedBy[0].RelatedObjects
+ # and it needs to be assigned to child_alignment.IsNestedBy[1].RelatedObjects
+ # move the referent manually - unassign it and add it to the child alignment's referent nest
+ ifcopenshell.api.nest.unassign_object(file, [referent])
+ child_referent_nest.RelatedObjects += (referent,)
+
# if the parent alignment has a representation, move the Axis/Curve3D represention to the child alignment
base_curve = ifcopenshell.api.alignment.get_basis_curve(parent_alignment)
if base_curve:
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_zero_length_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_zero_length_segment.py
index 339098fa40..fc2fcb2c0e 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/add_zero_length_segment.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/add_zero_length_segment.py
@@ -231,8 +231,11 @@ def add_zero_length_segment(file: ifcopenshell.file, layout: entity_instance, in
if include_referent:
alignment = ifcopenshell.api.alignment.get_alignment(layout)
- station = ifcopenshell.api.alignment.get_alignment_station(file, alignment)
+ station = ifcopenshell.api.alignment.get_alignment_start_station(file, alignment)
name = f"{_get_segment_start_point_label(zero_length_curve_segment,None)} ({ifcopenshell.util.alignment.station_as_string(file,station)})"
- ifcopenshell.api.alignment.add_stationing_referent(file, zero_length_curve_segment, 0.0, station, name=name)
+ referent = ifcopenshell.api.alignment.add_stationing_referent(
+ file, alignment, 0.0, station, name, zero_length_curve_segment
+ )
+ referent.Description = f"Positions zero length segment {zero_length_curve_segment.id()}"
return True
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create.py
index 7abb768174..cd707920c0 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create.py
@@ -33,27 +33,31 @@ def create(
name: str,
include_vertical: bool = False,
include_cant: bool = False,
+ include_geometry: bool = True,
start_station: float = 0.0,
) -> entity_instance:
"""
- Creates a new IfcAlignment with an IfcRelNests nesting an IfcReferent (for stationing) and IfcAlignmentHorizontal. The nest relationship can optionally
- include IfcAlignmentVertical and IfcAlignmentCant. Geometric representations for the alignment layouts (IfcCompositeCurve,
- IfcGradientCurve, IfcSegmentedReferenceCurve) are created as well.
+ Creates a new alignment with a horizontal layout. Optionally, vertical and cant layouts can be created as well.
+ The geometric representations are created as well, unless they are explicitly excluded.
+ Zero length segments are added at the end of the layouts and geometric representations.
+ The alignment is automatically aggreated to the project if it exists.
- Zero length segments are added at the end.
+ Use get_horizontal_layout(alignment), get_vertical_layout(alignment) and get_cant_layout(alignment) to get the
+ corresponding IfcAlignmentHorizontal, IfcAlignmentVertical, and IfcAlignmentCant layout entities.
- The IfcAlignment is aggreated to IfcProject
+ If the alignment has Viennese Bend transition curves, create the segments in the cant layout before the horizontal layout using create_layout_segment().
+ The horizontal geometry in the Viennese Bend transition curves depends on the Viennese Bend cant parameters. create_layout_segment() automatically creates
+ the geometric representation from the semantic definition. The horizontal segment geometric representation will fail if the cant segment is not defined.
- Use get_horizontal_layout(alignment) to get the IfcAlignmentHorizontal layout.
-
- If the alignment has Viennese Bend transition curves, create the cant layout before the horizontal layout. This is because the horizontal layout
- in the Viennese Bend transition curves depends on the Viennese Bend cant parameters.
+ If geometric representations are created, the alignment stationing referent is also created using the start_station value. IfcReferent.ObjectPlacement
+ is required for linear positiion elements and IfcLinearPlacement is defined relative to alignment curve geometry.
:param file:
:param name: name assigned to IfcAlignment.Name
- :param include_vertical: If True, IfcAlignmentVertical and IfcGradientCurve are created
- :param include_cant: If True, IfcAlignmentCant and IfcSegmentedReferenceCurve are created
- :param start_station: station value at the start of the alignment
+ :param include_vertical: If True, IfcAlignmentVertical is created. IfcGradientCurve is created if include_geometry is True
+ :param include_cant: If True, IfcAlignmentCant is created. IfcSegmentedReferenceCurve is created if include_geometry is True
+ :param include_geometry: If True, the geometric representations are added
+ :param start_station: station value at the start of the alignment.
:return: Returns an IfcAlignment
"""
alignment = file.createIfcAlignment(
@@ -73,16 +77,17 @@ def create(
ifcopenshell.api.nest.assign_object(file, related_objects=alignment_layouts, relating_object=alignment)
- _create_geometric_representation(file, alignment)
+ if include_geometry:
+ _create_geometric_representation(file, alignment)
+
+ name = ifcopenshell.util.alignment.station_as_string(file, start_station)
+ referent = ifcopenshell.api.alignment.add_stationing_referent(
+ file, alignment, 0.0, start_station, name, alignment
+ )
for layout in alignment_layouts:
_add_zero_length_segment(file, layout)
- # define stationing
- name = ifcopenshell.util.alignment.station_as_string(file, start_station)
- referent = ifcopenshell.api.alignment.add_stationing_referent(file, alignment, 0.0, start_station, name)
- ifcopenshell.api.nest.reorder_nesting(file, referent, -1, 0)
-
# IFC 4.1.4.1.1 Alignment Aggregation To Project
project = file.by_type("IfcProject")[0]
if project:
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py
index dd7be84223..a206fda69b 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_offset_curve.py
@@ -53,11 +53,6 @@ def create_as_offset_curve(
_create_offset_curve_representation(file, alignment, offsets)
- # define stationing
- # name = ifcopenshell.util.alignment.station_as_string(file, start_station)
- # referent = ifcopenshell.api.alignment.add_stationing_referent(file, alignment, 0.0, start_station, name)
- # ifcopenshell.api.nest.reorder_nesting(file, referent, -1, 0)
-
# IFC 4.1.4.1.1 Alignment Aggregation To Project
project = file.by_type("IfcProject")[0]
if project:
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_polyline.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_polyline.py
index cd7ebeb896..1048f1fa69 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_polyline.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_as_polyline.py
@@ -137,14 +137,11 @@ def create_as_polyline(
Name=name,
)
- # _create_layout(file,alignment,points)
-
_create_polyline_representation(file, alignment, points)
# define stationing
name = ifcopenshell.util.alignment.station_as_string(file, start_station)
- referent = ifcopenshell.api.alignment.add_stationing_referent(file, alignment, 0.0, start_station, name)
- ifcopenshell.api.nest.reorder_nesting(file, referent, -1, 0)
+ referent = ifcopenshell.api.alignment.add_stationing_referent(file, alignment, 0.0, start_station, name, alignment)
# IFC 4.1.4.1.1 Alignment Aggregation To Project
project = file.by_type("IfcProject")[0]
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_layout_segment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_layout_segment.py
index e002b8b223..3f6789fd98 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_layout_segment.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_layout_segment.py
@@ -23,20 +23,21 @@ from ifcopenshell import entity_instance
import math
from ifcopenshell import ifcopenshell_wrapper
import numpy as np
+from typing import Union
from ifcopenshell.api.alignment._add_segment_to_layout import _add_segment_to_layout
def create_layout_segment(
file: ifcopenshell.file, layout: entity_instance, design_parameters: entity_instance
-) -> np.array:
+) -> Union[np.array, None]:
"""
Creates a new IfcAlignmentSegment using the IfcAlignmentParameterSegment design parameters.
- The new segment is appended to the layout alignment and the corresponding IfcCurveSegment is created in the geometric representation
+ The new segment is appended to the layout alignment and the corresponding IfcCurveSegment is created in the geometric representation if it exists.
:param layout: The layout to receive the new layout segment. This parameter is expected to be IfcAlignmentHorizontal, IfcAlignmentVertical or IfcAlignmentCant
:param design_parameters: The parameters defining the segment. Expected to be the appropreate subclass of IfcAlignmentParameterSegment
- :return: 4x4 matrix at end of segment as np.array intended to be used as the start point geometry for the next segment.
+ :return: 4x4 matrix at end of segment as np.array intended to be used as the start point geometry for the next segment or None if there is the geometric representation is not defined.
"""
expected_types = ["IfcAlignmentHorizontal", "IfcAlignmentVertical", "IfcAlignmentCant"]
if not layout.is_a() in expected_types:
@@ -60,25 +61,28 @@ def create_layout_segment(
alignment = ifcopenshell.api.alignment.get_alignment(layout)
curve = ifcopenshell.api.alignment.get_curve(alignment)
- if layout.is_a("IfcAlignmentHorizontal"):
- if curve.is_a("IfcGradientCurve"):
- curve = curve.BaseCurve
- elif curve.is_a("IfcSegmentedReferenceCurve"):
- curve = (
- curve.BaseCurve.BaseCurve
- ) # layout is horizontal and curve is segmented ref ... we want the curve's base curve
- elif layout.is_a("IfcAlignmentVertical"):
- if curve.is_a("IfcSegmentedReferenceCurve"):
- curve = curve.BaseCurve
+ if curve:
+ if layout.is_a("IfcAlignmentHorizontal"):
+ if curve.is_a("IfcGradientCurve"):
+ curve = curve.BaseCurve
+ elif curve.is_a("IfcSegmentedReferenceCurve"):
+ curve = (
+ curve.BaseCurve.BaseCurve
+ ) # layout is horizontal and curve is segmented ref ... we want the curve's base curve
+ elif layout.is_a("IfcAlignmentVertical"):
+ if curve.is_a("IfcSegmentedReferenceCurve"):
+ curve = curve.BaseCurve
- # the new segment is two from the end... the end segment is zero length
- curve_segment = curve.Segments[-2]
+ # the new segment is two from the end... the end segment is zero length
+ curve_segment = curve.Segments[-2]
- settings = ifcopenshell.geom.settings()
+ settings = ifcopenshell.geom.settings()
- segment_fn = ifcopenshell_wrapper.map_shape(settings, curve_segment.wrapped_data)
- segment_evaluator = ifcopenshell_wrapper.function_item_evaluator(settings, segment_fn)
- e = segment_evaluator.evaluate(segment_fn.end())
- end = np.array(e)
+ segment_fn = ifcopenshell_wrapper.map_shape(settings, curve_segment.wrapped_data)
+ segment_evaluator = ifcopenshell_wrapper.function_item_evaluator(settings, segment_fn)
+ e = segment_evaluator.evaluate(segment_fn.end())
+ end = np.array(e)
- return end
+ return end
+ else:
+ return None
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_representation.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_representation.py
index 443345bd0f..c94ee873fa 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/create_representation.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/create_representation.py
@@ -50,5 +50,6 @@ def create_representation(
layouts = ifcopenshell.api.alignment.get_alignment_layouts(alignment)
for layout in layouts:
curve = ifcopenshell.api.alignment.get_layout_curve(layout)
- for segment in layout.IsNestedBy[0].RelatedObjects:
+ layout_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(layout)
+ for segment in layout_nest.RelatedObjects:
_add_segment_to_curve(file, segment, curve)
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/distance_along_from_station.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/distance_along_from_station.py
index e67b468c75..c52d9962ad 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/distance_along_from_station.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/distance_along_from_station.py
@@ -43,6 +43,6 @@ def distance_along_from_station(file: ifcopenshell.file, alignment: entity_insta
print(dist_along) # 100.00
"""
- start_station = ifcopenshell.api.alignment.get_alignment_station(file, alignment)
+ start_station = ifcopenshell.api.alignment.get_alignment_start_station(file, alignment)
dist_along = station - start_station
return dist_along
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment.py
index 21dc9f9d2b..850ee12ca9 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment.py
@@ -16,16 +16,17 @@
# You should have received a copy of the GNU Lesser General Public License
# along with IfcOpenShell. If not, see .
-import ifcopenshell
-import ifcopenshell.util
from ifcopenshell import entity_instance
-from collections.abc import Sequence
-
-import ifcopenshell.util.representation
def get_alignment(layout: entity_instance) -> entity_instance:
"""
Returns the alignment that nests this layout
"""
- return layout.Nests[0].RelatingObject if 0 < len(layout.Nests) else None
+ alignment = None
+ for nest in layout.Nests:
+ if nest.RelatingObject.is_a("IfcAlignment"):
+ alignment = nest.RelatingObject
+ break
+
+ return alignment
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layout_nest.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layout_nest.py
new file mode 100644
index 0000000000..b870fd1692
--- /dev/null
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_layout_nest.py
@@ -0,0 +1,37 @@
+# IfcOpenShell - IFC toolkit and geometry engine
+# Copyright (C) 2025 Thomas Krijnen
+#
+# This file is part of IfcOpenShell.
+#
+# IfcOpenShell is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# IfcOpenShell is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with IfcOpenShell. If not, see .
+
+import ifcopenshell
+from ifcopenshell import entity_instance
+
+
+def get_alignment_layout_nest(alignment: entity_instance) -> entity_instance:
+ """
+ Searches for the IfcRelNest that contains IfcAlignmentHorizontal, IfcAlignmentVertical, or IfcAlignmentCant
+
+ :param alignment: the alignment
+ :return: Returns the IfcRelNests containing the alignment layout
+ """
+ layout_types = ["IfcAlignmentHorizontal", "IfcAlignmentVertical", "IfcAlignmentCant"]
+
+ for nest in alignment.IsNestedBy:
+ for related_object in nest.RelatedObjects:
+ if related_object.is_a() in layout_types:
+ return nest
+
+ return None
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_segment_nest.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_segment_nest.py
new file mode 100644
index 0000000000..fba39617ea
--- /dev/null
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_segment_nest.py
@@ -0,0 +1,34 @@
+# IfcOpenShell - IFC toolkit and geometry engine
+# Copyright (C) 2025 Thomas Krijnen
+#
+# This file is part of IfcOpenShell.
+#
+# IfcOpenShell is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# IfcOpenShell is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with IfcOpenShell. If not, see .
+
+import ifcopenshell
+from ifcopenshell import entity_instance
+
+
+def get_alignment_segment_nest(layout: entity_instance) -> entity_instance:
+ """
+ Searches for the IfcRelNest that contains IfcAlignmentSegment
+
+ :param layout: an alignment layout, expected to be one of IfcAlignmentHorizontal, IfcAlignmentVertical, or IfcAlignmentCant
+ :return: Returns the IfcRelNests
+ """
+ for nest in layout.IsNestedBy:
+ for related_object in nest.RelatedObjects:
+ if related_object.is_a("IfcAlignmentSegment"):
+ return nest
+ return None
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_station.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_start_station.py
similarity index 75%
rename from src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_station.py
rename to src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_start_station.py
index 2f5feabd7d..8f9a5f0beb 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_station.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_alignment_start_station.py
@@ -22,11 +22,11 @@ import ifcopenshell.util.element
from ifcopenshell import entity_instance
-def get_alignment_station(file: ifcopenshell.file, alignment: entity_instance) -> float:
+def get_alignment_start_station(file: ifcopenshell.file, alignment: entity_instance) -> float:
"""
- Returns the start station of the alignment. If the alignment is nested by an IfcReferent
- the referent is checked for PredefinedType of STATION and an occurance of Pset_Stationing.Station,
- otherwise start station is taken to be 0.0.
+ Returns the start station of the alignment. The starting station is defined by the first nested IfcReferent.
+ This is interpreted to mean the first IfcReferent with an occurance of Pset_Stationing.Station,
+ otherwise returns 0.0.
"""
if not alignment.is_a("IfcAlignment"):
@@ -36,12 +36,13 @@ def get_alignment_station(file: ifcopenshell.file, alignment: entity_instance) -
parent_alignment = ifcopenshell.api.alignment.get_parent_alignment(alignment)
if parent_alignment:
- start_station = ifcopenshell.api.alignment.get_alignment_station(file, parent_alignment)
+ start_station = ifcopenshell.api.alignment.get_alignment_start_station(file, parent_alignment)
else:
components = ifcopenshell.util.element.get_components(alignment)
for c in components:
- if c.is_a("IfcReferent") and ifcopenshell.util.element.get_predefined_type(c) == "STATION":
+ if c.is_a("IfcReferent"):
start_station = ifcopenshell.util.element.get_pset(c, name="Pset_Stationing", prop="Station")
- break
+ if not start_station == None:
+ break
return start_station
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/get_referent_nest.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_referent_nest.py
new file mode 100644
index 0000000000..b57b787e38
--- /dev/null
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/get_referent_nest.py
@@ -0,0 +1,40 @@
+# IfcOpenShell - IFC toolkit and geometry engine
+# Copyright (C) 2025 Thomas Krijnen
+#
+# This file is part of IfcOpenShell.
+#
+# IfcOpenShell is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# IfcOpenShell is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with IfcOpenShell. If not, see .
+
+import ifcopenshell
+from ifcopenshell import entity_instance
+
+
+def get_referent_nest(file: ifcopenshell.file, alignment: entity_instance) -> entity_instance:
+ """
+ Searches for the IfcRelNest that contains IfcReferent. If one is not found, a empty IfcRelNests is created.
+
+ :param file:
+ :param alignment: The IfcAlignment which hosts IfcReferent
+ :return: Returns the IfcRelNests.
+ """
+ if not alignment.is_a("IfcAlignment"):
+ raise TypeError(f"Expected IfcAlignment, instead received {alignment.is_a()}")
+
+ for nest in alignment.IsNestedBy:
+ for related_object in nest.RelatedObjects:
+ if related_object.is_a("IfcReferent"):
+ return nest
+
+ nest = file.createIfcRelNests(GlobalId=ifcopenshell.guid.new(), RelatingObject=alignment, RelatedObjects=[])
+ return nest
diff --git a/src/ifcopenshell-python/ifcopenshell/api/alignment/util.py b/src/ifcopenshell-python/ifcopenshell/api/alignment/util.py
index 7f24b4eddf..389f94576a 100644
--- a/src/ifcopenshell-python/ifcopenshell/api/alignment/util.py
+++ b/src/ifcopenshell-python/ifcopenshell/api/alignment/util.py
@@ -162,3 +162,12 @@ def print_composite_curve_deep(curve):
print(" " * 4, segment.Placement)
print(" " * 4, segment.Placement.Location)
print(" " * 4, segment.Placement.RefDirection)
+
+
+def print_positioned_products(file: ifcopenshell.file):
+ referents = file.by_type("IfcReferent")
+ for referent in referents:
+ print(referent)
+ for rel in referent.Positions:
+ for product in rel.RelatedProducts:
+ print(" " * 2, product)
diff --git a/src/ifcopenshell-python/ifcopenshell/geom/occ_utils.py b/src/ifcopenshell-python/ifcopenshell/geom/occ_utils.py
index eb3fa7ac52..9835b48696 100644
--- a/src/ifcopenshell-python/ifcopenshell/geom/occ_utils.py
+++ b/src/ifcopenshell-python/ifcopenshell/geom/occ_utils.py
@@ -18,6 +18,7 @@
from __future__ import annotations
+import inspect
import random
import operator
import warnings
@@ -225,10 +226,24 @@ def serialize_shape(shape):
shapes.SetFormatNb(2)
shapes.Add(shape)
+
+ # Check if WriteToString method exists and has the correct signature
+ # In PythonOCC >= 7.8.0, WriteToString signature changed and requires additional arguments
if hasattr(shapes, "WriteToString"):
- return shapes.WriteToString()
- else:
- return shapes.Write()
+ try:
+ # Try to get the method signature
+ sig = inspect.signature(shapes.WriteToString)
+ # If WriteToString has no parameters (just self), use it
+ # This works for PythonOCC < 7.8.0
+ if len(sig.parameters) == 0:
+ return shapes.WriteToString()
+ except (ValueError, TypeError):
+ # If signature inspection fails, fall through to Write() method
+ pass
+
+ # Fall back to Write() method for newer PythonOCC versions (>= 7.8.0)
+ # or when WriteToString is not available/compatible
+ return shapes.Write()
def create_shape_from_serialization(
diff --git a/src/ifcopenshell-python/test/api/alignment/test_add_segment_to_layout.py b/src/ifcopenshell-python/test/api/alignment/test_add_segment_to_layout.py
index 5c796554ce..bea6f8989a 100644
--- a/src/ifcopenshell-python/test/api/alignment/test_add_segment_to_layout.py
+++ b/src/ifcopenshell-python/test/api/alignment/test_add_segment_to_layout.py
@@ -68,13 +68,10 @@ def test_add_segment_to_layout():
_add_segment_to_layout(file, horizontal_alignment, alignment_segment)
assert len(horizontal_alignment.IsNestedBy) == 1
- assert (
- len(horizontal_alignment.IsNestedBy[0].RelatedObjects) == 2
- ) # The the segment we added and the automatically created zero length segment
- assert horizontal_alignment.IsNestedBy[0].RelatedObjects[0] == alignment_segment
- assert (
- alignment_segment.IsNestedBy[0].RelatedObjects[0].is_a("IfcReferent")
- ) # a referent is automatically added at the start of the segment
+ segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(horizontal_alignment)
+ assert len(segment_nest.RelatedObjects) == 2
+ referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
+ assert len(referent_nest.RelatedObjects) == 3
test_add_segment_to_layout()
diff --git a/src/ifcopenshell-python/test/api/alignment/test_add_stationing_to_alignment.py b/src/ifcopenshell-python/test/api/alignment/test_add_stationing_to_alignment.py
index d4d75b31d5..49cbd70367 100644
--- a/src/ifcopenshell-python/test/api/alignment/test_add_stationing_to_alignment.py
+++ b/src/ifcopenshell-python/test/api/alignment/test_add_stationing_to_alignment.py
@@ -39,14 +39,14 @@ def test_add_stationing_to_alignment():
alignment = ifcopenshell.api.alignment.create(file, "TestAlignment", start_station=2000.0)
- for rel in alignment.IsNestedBy:
- for referent in rel.RelatedObjects:
- if referent.is_a("IfcReferent"):
- assert referent.PredefinedType == "STATION"
- assert referent.Name == "2+000.000"
- assert ifcopenshell.util.element.get_pset(element=referent, name="Pset_Stationing")
- assert (
- ifcopenshell.util.element.get_pset(element=referent, name="Pset_Stationing", prop="Station")
- == 2000.0
- )
- assert referent.ObjectPlacement != None
+ referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
+ referent = referent_nest.RelatedObjects[0]
+
+ assert referent.PredefinedType == "STATION"
+ assert referent.Name == "2+000.000"
+ assert ifcopenshell.util.element.get_pset(element=referent, name="Pset_Stationing")
+ assert ifcopenshell.util.element.get_pset(element=referent, name="Pset_Stationing", prop="Station") == 2000.0
+ assert referent.ObjectPlacement != None
+
+
+test_add_stationing_to_alignment()
diff --git a/src/ifcopenshell-python/test/api/alignment/test_add_vertical_alignment.py b/src/ifcopenshell-python/test/api/alignment/test_add_vertical_alignment.py
index 256c9eab37..243188866c 100644
--- a/src/ifcopenshell-python/test/api/alignment/test_add_vertical_alignment.py
+++ b/src/ifcopenshell-python/test/api/alignment/test_add_vertical_alignment.py
@@ -32,23 +32,25 @@ def test_add_vertical_alignment():
alignment = ifcopenshell.api.alignment.create(file, "A1", include_vertical=False)
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
- assert len(alignment.IsNestedBy) == 1 # one nest
- assert len(alignment.IsNestedBy[0].RelatedObjects) == 2 # nesting IfcReferent, IfcAlignmentHorizontal
- assert alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcReferent")
- assert alignment.IsNestedBy[0].RelatedObjects[1].is_a("IfcAlignmentHorizontal")
+ assert len(alignment.IsNestedBy) == 2 # nests for layout and referents
+ layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(alignment)
+ assert len(layout_nest.RelatedObjects) == 1
+ assert layout_nest.RelatedObjects[0].is_a("IfcAlignmentHorizontal")
+ referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
+ assert len(referent_nest.RelatedObjects) == 2
+ assert referent_nest.RelatedObjects[0].is_a("IfcReferent")
+
curve = ifcopenshell.api.alignment.get_curve(alignment)
assert curve.is_a("IfcCompositeCurve")
vertical_layout = ifcopenshell.api.alignment.add_vertical_layout(file, alignment)
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
- assert len(alignment.IsNestedBy) == 1 # one nest
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects) == 3
- ) # nesting IfcReferent, IfcAlignmentHorizontal, IfcAlignmentVertical
- assert alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcReferent")
- assert alignment.IsNestedBy[0].RelatedObjects[1].is_a("IfcAlignmentHorizontal")
- assert alignment.IsNestedBy[0].RelatedObjects[2].is_a("IfcAlignmentVertical")
+ assert len(alignment.IsNestedBy) == 2
+ assert len(layout_nest.RelatedObjects) == 2
+ assert layout_nest.RelatedObjects[0].is_a("IfcAlignmentHorizontal")
+ assert layout_nest.RelatedObjects[1].is_a("IfcAlignmentVertical")
+
curve = ifcopenshell.api.alignment.get_curve(alignment)
assert curve.is_a("IfcGradientCurve")
@@ -56,20 +58,18 @@ def test_add_vertical_alignment():
vertical_layout = ifcopenshell.api.alignment.add_vertical_layout(file, alignment)
assert len(alignment.IsDecomposedBy) == 1 # 1 IfcRelAggreates relationship for the child algiments
- assert (
- len(alignment.IsDecomposedBy[0].RelatedObjects) == 2
- ) # two child alignments, one for the first vertical and one for the vertical just added
+ assert len(alignment.IsDecomposedBy[0].RelatedObjects) == 2
for child_alignment in alignment.IsDecomposedBy[0].RelatedObjects:
assert child_alignment.is_a("IfcAlignment")
- assert len(child_alignment.IsNestedBy) == 1 # one nesting relationship for the IfcAlignmentVertical
- assert len(child_alignment.IsNestedBy[0].RelatedObjects) == 1 # The IfcAlignmentVertical
- assert child_alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcAlignmentVertical")
+ assert len(child_alignment.IsNestedBy) == 2
+ child_layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(child_alignment)
+ assert len(child_layout_nest.RelatedObjects) == 1 # The IfcAlignmentVertical
+ assert child_layout_nest.RelatedObjects[0].is_a("IfcAlignmentVertical")
- assert len(alignment.IsNestedBy) == 1 # 1 nesting relationsip for the alignments
- assert len(alignment.IsNestedBy[0].RelatedObjects) == 2 # nesting IfcReferent and IfcAlignmentHorizontal
- assert alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcReferent")
- assert alignment.IsNestedBy[0].RelatedObjects[1].is_a("IfcAlignmentHorizontal")
+ assert len(alignment.IsNestedBy) == 2
+ assert len(layout_nest.RelatedObjects) == 1
+ assert layout_nest.RelatedObjects[0].is_a("IfcAlignmentHorizontal")
test_add_vertical_alignment()
diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_by_pi_method.py b/src/ifcopenshell-python/test/api/alignment/test_create_by_pi_method.py
index 0f1bb5fd3a..bd3a25faed 100644
--- a/src/ifcopenshell-python/test/api/alignment/test_create_by_pi_method.py
+++ b/src/ifcopenshell-python/test/api/alignment/test_create_by_pi_method.py
@@ -46,22 +46,21 @@ def test_create_by_pi_method():
)
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
- assert len(alignment.IsNestedBy) == 1 # one nest
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects) == 3
- ) # nesting IfcReferent, IfcAlignmentHorizontal, IfcAlignmentVertical
- assert alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcReferent")
- assert alignment.IsNestedBy[0].RelatedObjects[1].is_a("IfcAlignmentHorizontal")
- assert alignment.IsNestedBy[0].RelatedObjects[2].is_a("IfcAlignmentVertical")
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects[1].IsNestedBy) == 1
- ) # nesting of segments beneath IfcAlignmentHorizontal
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects[1].IsNestedBy[0].RelatedObjects) == 8
- ) # segments in horizontal layout
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects[2].IsNestedBy[0].RelatedObjects) == 10
- ) # segments in vertical layout
+ assert len(alignment.IsNestedBy) == 2
+
+ layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(alignment)
+ assert len(layout_nest.RelatedObjects) == 2
+
+ referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
+ assert len(referent_nest.RelatedObjects) == 19
+
+ horizontal_layout = ifcopenshell.api.alignment.get_horizontal_layout(alignment)
+ horizontal_segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(horizontal_layout)
+ assert len(horizontal_segment_nest.RelatedObjects) == 8
+
+ vertical_layout = ifcopenshell.api.alignment.get_vertical_layout(alignment)
+ vertical_segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(vertical_layout)
+ assert len(vertical_segment_nest.RelatedObjects) == 10
test_create_by_pi_method()
diff --git a/src/ifcopenshell-python/test/api/alignment/test_create_no_geometry.py b/src/ifcopenshell-python/test/api/alignment/test_create_no_geometry.py
new file mode 100644
index 0000000000..15b64af2f9
--- /dev/null
+++ b/src/ifcopenshell-python/test/api/alignment/test_create_no_geometry.py
@@ -0,0 +1,68 @@
+# IfcOpenShell - IFC toolkit and geometry engine
+# Copyright (C) 2025 Thomas Krijnen
+#
+# This file is part of IfcOpenShell.
+#
+# IfcOpenShell is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# IfcOpenShell is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with IfcOpenShell. If not, see .
+
+import pytest
+import ifcopenshell.api.alignment
+import ifcopenshell.api.context
+import ifcopenshell.api.unit
+
+
+def test_create_no_geometry():
+ file = ifcopenshell.file(schema="IFC4X3_ADD2")
+ project = file.createIfcProject(GlobalId=ifcopenshell.guid.new(), Name="Test")
+ length = ifcopenshell.api.unit.add_si_unit(file, unit_type="LENGTHUNIT")
+ ifcopenshell.api.unit.assign_unit(file, units=[length])
+
+ # creates an IfcAlignment with an IfcAlignmentHorizontal layout containing only the zero length segment
+ ali = ifcopenshell.api.alignment.create(file, "A1", include_vertical=True, include_geometry=False)
+
+ # append a segment to the horizontal layout
+ horizontal_alignment = ifcopenshell.api.alignment.get_horizontal_layout(ali)
+ vertical_alignment = ifcopenshell.api.alignment.get_vertical_layout(ali)
+
+ curve = ifcopenshell.api.alignment.get_curve(ali)
+ assert curve == None
+
+ design_parameters = file.create_entity(
+ type="IfcAlignmentHorizontalSegment",
+ StartTag=None,
+ EndTag=None,
+ StartPoint=file.createIfcCartesianPoint(Coordinates=((0.0, 0.0))),
+ StartDirection=0.0,
+ StartRadiusOfCurvature=0.0,
+ EndRadiusOfCurvature=0.0,
+ SegmentLength=100.0,
+ GravityCenterLineHeight=None,
+ PredefinedType="LINE",
+ )
+ end = ifcopenshell.api.alignment.create_layout_segment(file, horizontal_alignment, design_parameters)
+ assert end == None
+
+ design_parameters = file.createIfcAlignmentVerticalSegment(
+ StartDistAlong=0.0,
+ HorizontalLength=50.0,
+ StartHeight=20.0,
+ StartGradient=1.0 / 100.0,
+ EndGradient=1.0 / 100.0,
+ PredefinedType="CONSTANTGRADIENT",
+ )
+ end = ifcopenshell.api.alignment.create_layout_segment(file, vertical_alignment, design_parameters)
+ assert end == None
+
+
+test_create_no_geometry()
diff --git a/src/ifcopenshell-python/test/api/alignment/test_horizontal_layout_by_pi_method.py b/src/ifcopenshell-python/test/api/alignment/test_horizontal_layout_by_pi_method.py
index fd3321b425..a4678f7e0e 100644
--- a/src/ifcopenshell-python/test/api/alignment/test_horizontal_layout_by_pi_method.py
+++ b/src/ifcopenshell-python/test/api/alignment/test_horizontal_layout_by_pi_method.py
@@ -45,16 +45,13 @@ def test_horizontal_layout_by_pi_method():
alignment = ifcopenshell.api.alignment.create_by_pi_method(file, "TestAlignment", coordinates, radii)
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
- assert len(alignment.IsNestedBy) == 1 # one nest
- assert len(alignment.IsNestedBy[0].RelatedObjects) == 2 # nesting IfcReferent, IfcAlignmentHorizontal
- assert alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcReferent")
- assert alignment.IsNestedBy[0].RelatedObjects[1].is_a("IfcAlignmentHorizontal")
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects[1].IsNestedBy) == 1
- ) # nesting of segments beneath IfcAlignmentHorizontal
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects[1].IsNestedBy[0].RelatedObjects) == 3
- ) # segments in horizontal layout
+ assert len(alignment.IsNestedBy) == 2
+ referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
+ layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(alignment)
+ assert referent_nest.RelatedObjects[0].is_a("IfcReferent")
+ assert layout_nest.RelatedObjects[0].is_a("IfcAlignmentHorizontal")
+ segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(layout_nest.RelatedObjects[0])
+ assert len(segment_nest.RelatedObjects) == 3 # segments in horizontal layout
test_horizontal_layout_by_pi_method()
diff --git a/src/ifcopenshell-python/test/api/alignment/test_name_segments.py b/src/ifcopenshell-python/test/api/alignment/test_name_segments.py
index 89629b78c9..5a1174573b 100644
--- a/src/ifcopenshell-python/test/api/alignment/test_name_segments.py
+++ b/src/ifcopenshell-python/test/api/alignment/test_name_segments.py
@@ -45,12 +45,15 @@ def test_name_segments():
file, "TestAlignment", coordinates, radii, vpoints, lengths
)
- for rel in alignment.IsNestedBy:
- for a in rel.RelatedObjects:
- if a.is_a("IfcLinearElement"):
- ifcopenshell.api.alignment.name_segments("Q", a)
- i = 1
- for sr in a.IsNestedBy:
- for s in sr.RelatedObjects:
- assert f"Q{i}" == s.Name
- i += 1
+ layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(alignment)
+ for layout in layout_nest.RelatedObjects:
+ assert layout.is_a("IfcLinearElement")
+ ifcopenshell.api.alignment.name_segments("Q", layout)
+ segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(layout)
+ i = 1
+ for segment in segment_nest.RelatedObjects:
+ assert f"Q{i}" == segment.Name
+ i += 1
+
+
+test_name_segments()
diff --git a/src/ifcopenshell-python/test/api/alignment/test_referent_names.py b/src/ifcopenshell-python/test/api/alignment/test_referent_names.py
index 835233f227..2e0e50a683 100644
--- a/src/ifcopenshell-python/test/api/alignment/test_referent_names.py
+++ b/src/ifcopenshell-python/test/api/alignment/test_referent_names.py
@@ -97,32 +97,16 @@ def callback_alignment():
def test_with_default_names(default_names_alignment):
- hlayout = ifcopenshell.api.alignment.get_horizontal_layout(default_names_alignment)
+ referent_nest = ifcopenshell.api.alignment.get_referent_nest(None, default_names_alignment)
- assert "P.O.B." in hlayout.IsNestedBy[0].RelatedObjects[0].IsNestedBy[0].RelatedObjects[0].Name
- assert "P.C." in hlayout.IsNestedBy[0].RelatedObjects[1].IsNestedBy[0].RelatedObjects[0].Name
- assert "P.T." in hlayout.IsNestedBy[0].RelatedObjects[2].IsNestedBy[0].RelatedObjects[0].Name
- assert "P.O.E." in hlayout.IsNestedBy[0].RelatedObjects[-1].IsNestedBy[0].RelatedObjects[0].Name
-
- vlayout = ifcopenshell.api.alignment.get_vertical_layout(default_names_alignment)
-
- assert "V.P.O.B." in vlayout.IsNestedBy[0].RelatedObjects[0].IsNestedBy[0].RelatedObjects[0].Name
- assert "P.V.C." in vlayout.IsNestedBy[0].RelatedObjects[1].IsNestedBy[0].RelatedObjects[0].Name
- assert "P.V.T." in vlayout.IsNestedBy[0].RelatedObjects[2].IsNestedBy[0].RelatedObjects[0].Name
- assert "V.P.O.E." in vlayout.IsNestedBy[0].RelatedObjects[-1].IsNestedBy[0].RelatedObjects[0].Name
+ expected = ["P.O.B", "P.C.", "P.T.", "P.O.E.", "V.P.O.B.", "P.V.C.", "P.V.T.", "V.P.O.E"]
+ for r in referent_nest.RelatedObjects:
+ assert [x in r.Name for x in expected]
def test_with_callbacks(callback_alignment):
- hlayout = ifcopenshell.api.alignment.get_horizontal_layout(callback_alignment)
+ referent_nest = ifcopenshell.api.alignment.get_referent_nest(None, callback_alignment)
- assert "A" in hlayout.IsNestedBy[0].RelatedObjects[0].IsNestedBy[0].RelatedObjects[0].Name
- assert "Q" in hlayout.IsNestedBy[0].RelatedObjects[1].IsNestedBy[0].RelatedObjects[0].Name
- assert "Q" in hlayout.IsNestedBy[0].RelatedObjects[2].IsNestedBy[0].RelatedObjects[0].Name
- assert "Z" in hlayout.IsNestedBy[0].RelatedObjects[-1].IsNestedBy[0].RelatedObjects[0].Name
-
- vlayout = ifcopenshell.api.alignment.get_vertical_layout(callback_alignment)
-
- assert "a" in vlayout.IsNestedBy[0].RelatedObjects[0].IsNestedBy[0].RelatedObjects[0].Name
- assert "q" in vlayout.IsNestedBy[0].RelatedObjects[1].IsNestedBy[0].RelatedObjects[0].Name
- assert "q" in vlayout.IsNestedBy[0].RelatedObjects[2].IsNestedBy[0].RelatedObjects[0].Name
- assert "z" in vlayout.IsNestedBy[0].RelatedObjects[-1].IsNestedBy[0].RelatedObjects[0].Name
+ expected = ["A", "Q", "Z", "a", "q", "z"]
+ for r in referent_nest.RelatedObjects:
+ assert [x in r.Name for x in expected]
diff --git a/src/ifcopenshell-python/test/api/alignment/test_vertical_layout_by_pi_method.py b/src/ifcopenshell-python/test/api/alignment/test_vertical_layout_by_pi_method.py
index be9f9b55a3..8dab67c181 100644
--- a/src/ifcopenshell-python/test/api/alignment/test_vertical_layout_by_pi_method.py
+++ b/src/ifcopenshell-python/test/api/alignment/test_vertical_layout_by_pi_method.py
@@ -58,22 +58,17 @@ def test_vertical_layout_by_pi_method():
ifcopenshell.api.alignment.layout_vertical_alignment_by_pi_method(file, vlayout, vpoints, lengths)
assert len(alignment.IsDecomposedBy) == 0 # no child alignments
- assert len(alignment.IsNestedBy) == 1 # one nest
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects) == 3
- ) # nesting IfcReferent, IfcAlignmentHorizontal, IfcAlignmentVertical
- assert alignment.IsNestedBy[0].RelatedObjects[0].is_a("IfcReferent")
- assert alignment.IsNestedBy[0].RelatedObjects[1].is_a("IfcAlignmentHorizontal")
- assert alignment.IsNestedBy[0].RelatedObjects[2].is_a("IfcAlignmentVertical")
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects[1].IsNestedBy) == 1
- ) # nesting of segments beneath IfcAlignmentHorizontal
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects[1].IsNestedBy[0].RelatedObjects) == 2
- ) # segments in horizontal layout
- assert (
- len(alignment.IsNestedBy[0].RelatedObjects[2].IsNestedBy[0].RelatedObjects) == 3
- ) # segments in vertical layout
+
+ assert len(alignment.IsNestedBy) == 2
+
+ layout_nest = ifcopenshell.api.alignment.get_alignment_layout_nest(alignment)
+ assert len(layout_nest.RelatedObjects) == 2
+
+ referent_nest = ifcopenshell.api.alignment.get_referent_nest(file, alignment)
+ assert len(referent_nest.RelatedObjects) == 6
+
+ segment_nest = ifcopenshell.api.alignment.get_alignment_segment_nest(vlayout)
+ assert len(segment_nest.RelatedObjects) == 3
test_vertical_layout_by_pi_method()
diff --git a/src/ifcopenshell-python/test/fixtures/geom/pipe.ifc b/src/ifcopenshell-python/test/fixtures/geom/pipe.ifc
new file mode 100644
index 0000000000..2c49742dda
--- /dev/null
+++ b/src/ifcopenshell-python/test/fixtures/geom/pipe.ifc
@@ -0,0 +1,119 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition [CoordinationView]'),'2;1');
+FILE_NAME('','2025-02-14T16:16:53',(''),(''),'IfcOpenShell 0.8.1-c49ca69','IfcOpenShell 0.8.1-c49ca69','');
+FILE_SCHEMA(('IFC4X3_ADD2'));
+ENDSEC;
+DATA;
+#1=IFCPERSON($,$,'Pravin.Muthukrishnan',$,$,$,$,$);
+#2=IFCORGANIZATION($,'BG&E Pty Ltd','BG&E Pty Ltd',$,$);
+#3=IFCPERSONANDORGANIZATION(#1,#2,$);
+#4=IFCAPPLICATION(#2,'15.0C1n','12d Model','12d Model');
+#5=IFCOWNERHISTORY(#3,#4,$,.NOCHANGE.,$,$,$,1739508662);
+#6=IFCCARTESIANPOINT((0.,0.,0.));
+#7=IFCDIRECTION((0.,0.,1.));
+#8=IFCDIRECTION((1.,0.,0.));
+#9=IFCAXIS2PLACEMENT3D(#6,#7,#8);
+#10=IFCDIRECTION((0.,1.,0.));
+#11=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-06,#9,#10);
+#12=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
+#13=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
+#14=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
+#15=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
+#16=IFCUNITASSIGNMENT((#12,#13,#14,#15));
+#17=IFCPROJECT('3f4tUCcZz5OBp_RAlF3Yjd',#5,'DRAINAGE DESIGN','No description set',$,$,$,(#11),#16);
+#18=IFCPERSON($,$,'Pravin.Muthukrishnan',$,$,$,$,$);
+#19=IFCORGANIZATION($,'BG&E Pty Ltd','BG&E Pty Ltd',$,$);
+#20=IFCPERSONANDORGANIZATION(#18,#19,$);
+#21=IFCAPPLICATION(#19,'15.0C1n','12d Model','12d Model');
+#22=IFCOWNERHISTORY(#20,#21,$,.NOCHANGE.,$,$,$,1739508662);
+#30=IFCCARTESIANPOINT((0.,0.));
+#31=IFCAXIS2PLACEMENT2D(#30,$);
+#32=IFCCIRCLEPROFILEDEF(.AREA.,$,#31,0.179);
+#33=IFCCARTESIANPOINT((289.080,582.2,118.886));
+#34=IFCCARTESIANPOINT((290.081,582.9,118.886));
+#35=IFCPOLYLINE((#33,#34));
+#36=IFCDIRECTION((1.,0.,0.));
+#37=IFCFIXEDREFERENCESWEPTAREASOLID(#32,$,#35,$,$,#36);
+#38=IFCSHAPEREPRESENTATION(#11,'Body','AdvancedSweptSolid',(#37));
+#39=IFCPRODUCTDEFINITIONSHAPE($,$,(#38));
+#40=IFCFLOWSEGMENT('1iJOpv7cX1SBoQLaHDDolV',#108,'5','5-1 to 1-1','EXISTING (RETAINED)',#103,#39,$);
+#41=IFCRELDEFINESBYPROPERTIES('10rIwnj8r8RR3PKc1TXqSB',#22,'12d Model','Attributes',(#40),#94);
+#42=IFCPROPERTYSINGLEVALUE('calculated critical cover chainage',$,IFCREAL(2.24873590275508),$);
+#43=IFCPROPERTYSINGLEVALUE('nominal diameter',$,IFCREAL(0.3),$);
+#44=IFCPROPERTYSINGLEVALUE('pipe id',$,IFCINTEGER(35),$);
+#45=IFCPROPERTYSINGLEVALUE('colour',$,IFCLABEL('orange'),$);
+#46=IFCPROPERTYSINGLEVALUE('group',$,IFCLABEL('EX'),$);
+#47=IFCCOMPLEXPROPERTY('pipe sched','12d_attribute_group',$,(#46));
+#48=IFCPROPERTYSINGLEVALUE('name',$,IFCLABEL('EX'),$);
+#49=IFCCOMPLEXPROPERTY('lplot','12d_attribute_group',$,(#48));
+#50=IFCPROPERTYSINGLEVALUE('pipe name',$,IFCLABEL('5-1 to 1-1'),$);
+#51=IFCPROPERTYSINGLEVALUE('calculated direct pipe flow total minor',$,IFCREAL(0.),$);
+#52=IFCPROPERTYSINGLEVALUE('calculated direct pipe flow total major',$,IFCREAL(0.),$);
+#53=IFCPROPERTYSINGLEVALUE('calculated direct pit and pipe flow total minor',$,IFCREAL(0.),$);
+#54=IFCPROPERTYSINGLEVALUE('calculated direct pit and pipe flow total major',$,IFCREAL(0.),$);
+#55=IFCPROPERTYSINGLEVALUE('pipe type',$,IFCLABEL('EXISTING (RETAINED)'),$);
+#56=IFCPROPERTYSINGLEVALUE('roughness text',$,IFCLABEL('n=0.013'),$);
+#57=IFCPROPERTYSINGLEVALUE('calculated design grade minimum',$,IFCREAL(1.),$);
+#58=IFCPROPERTYSINGLEVALUE('calculated pipe length',$,IFCREAL(7.19890895752825),$);
+#59=IFCPROPERTYSINGLEVALUE('invert us',$,IFCREAL(118.736),$);
+#60=IFCPROPERTYSINGLEVALUE('invert ds',$,IFCREAL(118.736),$);
+#61=IFCPROPERTYSINGLEVALUE('calculated pipe grade',$,IFCREAL(-0.),$);
+#62=IFCPROPERTYSINGLEVALUE('calculated pipe vert angle',$,IFCREAL(0.),$);
+#63=IFCPROPERTYSINGLEVALUE('calculated pipe grade 1 in',$,IFCREAL(1000000.),$);
+#64=IFCPROPERTYSINGLEVALUE('pipe size',$,IFCLABEL('300'),$);
+#65=IFCPROPERTYSINGLEVALUE('diameter',$,IFCREAL(0.3),$);
+#66=IFCPROPERTYSINGLEVALUE('nominal pipe size',$,IFCLABEL('300'),$);
+#67=IFCPROPERTYSINGLEVALUE('calculated us deflection',$,IFCREAL(0.),$);
+#68=IFCPROPERTYSINGLEVALUE('calculated ds deflection',$,IFCREAL(89.4496469263205),$);
+#69=IFCPROPERTYSINGLEVALUE('calculated design drop',$,IFCREAL(0.02),$);
+#70=IFCPROPERTYSINGLEVALUE('calculated drop',$,IFCREAL(0.),$);
+#71=IFCPROPERTYSINGLEVALUE('calculated pipe vert ds deflection angle',$,IFCREAL(-4.09980829540645),$);
+#72=IFCPROPERTYSINGLEVALUE('calculated design cover',$,IFCREAL(1.1),$);
+#73=IFCPROPERTYSINGLEVALUE('minimum cover',$,IFCREAL(1.67561504823626),$);
+#74=IFCPROPERTYSINGLEVALUE('pipe colour',$,IFCINTEGER(8),$);
+#75=IFCPROPERTYSINGLEVALUE('conduit shape',$,IFCLABEL('Circular'),$);
+#76=IFCPROPERTYSINGLEVALUE('calculated invert us',$,IFCREAL(118.736),$);
+#77=IFCPROPERTYSINGLEVALUE('calculated invert ds',$,IFCREAL(118.736),$);
+#78=IFCPROPERTYSINGLEVALUE('calculated hgl us',$,IFCREAL(118.736),$);
+#79=IFCPROPERTYSINGLEVALUE('calculated hgl ds',$,IFCREAL(118.736),$);
+#80=IFCPROPERTYSINGLEVALUE('lock us il',$,IFCINTEGER(1),$);
+#81=IFCPROPERTYSINGLEVALUE('lock ds il',$,IFCINTEGER(1),$);
+#82=IFCPROPERTYSINGLEVALUE('critical barrel',$,IFCINTEGER(0),$);
+#83=IFCPROPERTYSINGLEVALUE('critical side',$,IFCINTEGER(0),$);
+#84=IFCPROPERTYSINGLEVALUE('Pipe Name',$,IFCLABEL('5-1 to 1-1'),$);
+#85=IFCPROPERTYSINGLEVALUE('Pipe Type',$,IFCLABEL('EXISTING (RETAINED)'),$);
+#86=IFCPROPERTYSINGLEVALUE('Justification',$,IFCLABEL('Invert'),$);
+#87=IFCPROPERTYSINGLEVALUE('Start x',$,IFCREAL(289080.818499209),$);
+#88=IFCPROPERTYSINGLEVALUE('Start y',$,IFCREAL(5822851.36621952),$);
+#89=IFCPROPERTYSINGLEVALUE('Start z',$,IFCREAL(118.736),$);
+#90=IFCPROPERTYSINGLEVALUE('End x',$,IFCREAL(289081.570466963),$);
+#91=IFCPROPERTYSINGLEVALUE('End y',$,IFCREAL(5822857.54453541),$);
+#92=IFCPROPERTYSINGLEVALUE('End z',$,IFCREAL(118.736),$);
+#93=IFCCOMPLEXPROPERTY('Geometry','12d_attribute_group',$,(#86,#87,#88,#89,#90,#91,#92));
+#94=IFCPROPERTYSET('0pqqHlNsb54w9VRYcNog0C',#22,'12d Model',$,(#42,#43,#44,#45,#47,#49,#50,#51,#52,#53,#54,#55,#56,#57,#58,#59,#60,#61,#62,#63,#64,#65,#66,#67,#68,#69,#70,#71,#72,#73,#74,#75,#76,#77,#78,#79,#80,#81,#82,#83,#84,#85,#93));
+#95=IFCSTYLEDITEM(#37,(#98),$);
+#96=IFCCOLOURRGB('orange',1.,0.647058823529412,0.);
+#97=IFCSURFACESTYLERENDERING(#96,$,$,$,$,$,IFCNORMALISEDRATIOMEASURE(0.00390625),IFCSPECULAREXPONENT(10.),.NOTDEFINED.);
+#98=IFCSURFACESTYLE($,.POSITIVE.,(#97));
+#99=IFCCARTESIANPOINT((0.,0.,0.));
+#100=IFCDIRECTION((0.,0.,1.));
+#101=IFCDIRECTION((1.,0.,0.));
+#102=IFCAXIS2PLACEMENT3D(#99,#100,#101);
+#103=IFCLOCALPLACEMENT($,#102);
+#104=IFCACTORROLE(.USERDEFINED.,'CONTRIBUTOR',$);
+#105=IFCTELECOMADDRESS(.USERDEFINED.,$,'WEBPAGE',$,$,$,$,'https://ifcopenshell.org',$);
+#106=IFCORGANIZATION('IfcOpenShell','IfcOpenShell','IfcOpenShell is an open source software library that helps users and software developers to work with IFC data.',(#104),(#105));
+#107=IFCAPPLICATION(#106,'0.8.1-alpha250208-3832077','Bonsai','Bonsai');
+#108=IFCOWNERHISTORY(#20,#21,$,.MODIFIED.,1739510213,#3,#107,1739508662);
+#114=IFCSITE('2CTfxIYCTCsRAvUEqFZoH3',#120,'Default Site','Description of Default Site',$,#119,$,$,.ELEMENT.,$,$,$,$,$);
+#115=IFCCARTESIANPOINT((0.,0.,0.));
+#116=IFCDIRECTION((0.,0.,1.));
+#117=IFCDIRECTION((1.,0.,0.));
+#118=IFCAXIS2PLACEMENT3D(#115,#116,#117);
+#119=IFCLOCALPLACEMENT($,#118);
+#120=IFCOWNERHISTORY(#20,#21,$,.MODIFIED.,1739510213,#3,#107,1739508662);
+#121=IFCRELCONTAINEDINSPATIALSTRUCTURE('05AVd4pPf1jeS4OU20v7N9',#5,$,$,(#40),#114);
+#122=IFCRELAGGREGATES('3PxVuUIG14dQdQEHf8wUca',#5,$,$,#17,(#114));
+ENDSEC;
+END-ISO-10303-21;
diff --git a/src/ifcopenshell-python/test/fixtures/geom/simple_sweep_1.ifc b/src/ifcopenshell-python/test/fixtures/geom/simple_sweep_1.ifc
new file mode 100644
index 0000000000..0afe5fc07e
--- /dev/null
+++ b/src/ifcopenshell-python/test/fixtures/geom/simple_sweep_1.ifc
@@ -0,0 +1,74 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1');
+FILE_NAME('/dev/null','2025-08-27T14:53:55+02:00',('AdaUser'),('AdaOrg'),'IfcOpenShell 0.8.2','IfcOpenShell 0.8.2','Nobody');
+FILE_SCHEMA(('IFC4X3_ADD2'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('2MG118AczBnBRhfOi7rLGC',$,'AdaProject',$,$,$,$,(#11),#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
+#6=IFCUNITASSIGNMENT((#5,#3,#4,#2));
+#7=IFCCARTESIANPOINT((0.,0.,0.));
+#8=IFCDIRECTION((0.,0.,1.));
+#9=IFCDIRECTION((1.,0.,0.));
+#10=IFCAXIS2PLACEMENT3D(#7,#8,#9);
+#11=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#10,$);
+#12=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#11,$,.MODEL_VIEW.,$);
+#13=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#11,$,.GRAPH_VIEW.,$);
+#14=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#11,$,.MODEL_VIEW.,$);
+#15=IFCACTORROLE(.ENGINEER.,$,$);
+#16=IFCPERSON('AdaUser',$,$,$,$,$,(#15),$);
+#17=IFCORGANIZATION('ADA','Assembly For Design and Analysis',$,$,$);
+#18=IFCPERSONANDORGANIZATION(#16,#17,$);
+#19=IFCAPPLICATION(#17,'XXX','ADA','ADA');
+#20=IFCOWNERHISTORY(#18,#19,.READWRITE.,$,$,#18,#19,1756299235);
+#21=IFCDIRECTION((0.,0.,1.));
+#22=IFCDIRECTION((1.,0.,0.));
+#23=IFCCARTESIANPOINT((0.,0.,0.));
+#24=IFCAXIS2PLACEMENT3D(#23,#21,#22);
+#25=IFCLOCALPLACEMENT($,#24);
+#26=IFCSITE('2V9fV9zKnAP9J5CfXLkqps',#20,'Ada',$,$,#25,$,$,.ELEMENT.,$,$,$,$,$);
+#27=IFCRELAGGREGATES('12FX4aagX3HQdiLOLDvGX_',#20,'Project Container',$,#1,(#26));
+#28=IFCPROPERTYSINGLEVALUE('project',$,IFCTEXT('AdaProject'),$);
+#29=IFCPROPERTYSINGLEVALUE('schema',$,IFCTEXT('IFC4X3_add2'),$);
+#30=IFCPROPERTYSET('2yltt4JCTAOAyhAFFKmDBW',#20,'Properties',$,(#28,#29));
+#31=IFCRELDEFINESBYPROPERTIES('3U0CyjG8XALx2oClwZMPg9',#20,'Properties',$,(#26),#30);
+#32=IFCMATERIAL('S355',$,'Steel');
+#33=IFCPROPERTYSINGLEVALUE('Grade',$,IFCTEXT('S355'),$);
+#34=IFCPROPERTYSINGLEVALUE('YieldStress',$,IFCPRESSUREMEASURE(355000000.),$);
+#35=IFCPROPERTYSINGLEVALUE('YoungModulus',$,IFCMODULUSOFELASTICITYMEASURE(210000000000.),$);
+#36=IFCPROPERTYSINGLEVALUE('PoissonRatio',$,IFCPOSITIVERATIOMEASURE(0.3),$);
+#37=IFCPROPERTYSINGLEVALUE('ThermalExpansionCoefficient',$,IFCTHERMALEXPANSIONCOEFFICIENTMEASURE(1.2E-05),$);
+#38=IFCPROPERTYSINGLEVALUE('SpecificHeatCapacity',$,IFCSPECIFICHEATCAPACITYMEASURE(0.03),$);
+#39=IFCPROPERTYSINGLEVALUE('MassDensity',$,IFCMASSDENSITYMEASURE(7850.),$);
+#40=IFCMATERIALPROPERTIES('MaterialMechanical','A Material property description',(#33,#34,#35,#36,#37,#38,#39),#32);
+#41=IFCRELASSOCIATESMATERIAL('3__DXGCfr15fk06ugmrrR4',#20,'S355','Objects related to S355',(#64),#32);
+#42=IFCDIRECTION((0.,0.,1.));
+#43=IFCDIRECTION((1.,0.,0.));
+#44=IFCCARTESIANPOINT((0.,0.,0.));
+#45=IFCAXIS2PLACEMENT3D(#44,#42,#43);
+#46=IFCLOCALPLACEMENT(#25,#45);
+#47=IFCCARTESIANPOINTLIST2D(((0.,0.),(0.,0.1),(0.1,0.),(0.1,0.1)),$);
+#48=IFCINDEXEDPOLYCURVE(#47,(IFCLINEINDEX((3,1)),IFCLINEINDEX((1,2)),IFCLINEINDEX((2,4)),IFCLINEINDEX((4,3))),$);
+#49=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#48);
+#50=IFCCARTESIANPOINTLIST3D(((-1.,0.,0.8),(-0.14253,0.,0.542759),(-0.039541321421393,0.,0.470579850861542),(0.,0.,0.),(0.,0.,0.351194)),$);
+#51=IFCINDEXEDPOLYCURVE(#50,(IFCLINEINDEX((4,5)),IFCARCINDEX((5,3,2)),IFCLINEINDEX((2,1))),$);
+#52=IFCDIRECTION((-0.,1.,0.));
+#53=IFCCARTESIANPOINT((0.,0.,0.));
+#54=IFCDIRECTION((1.,0.,0.));
+#55=IFCDIRECTION((0.,0.,-1.));
+#56=IFCAXIS2PLACEMENT3D(#53,#54,#55);
+#57=IFCFIXEDREFERENCESWEPTAREASOLID(#49,#56,#51,$,$,#52);
+#58=IFCSHAPEREPRESENTATION(#12,'Body','AdvancedSweptSolid',(#57));
+#59=IFCPRODUCTDEFINITIONSHAPE($,$,(#58));
+#60=IFCCOLOURRGB('Color1',0.8,0.8,0.8);
+#61=IFCSURFACESTYLESHADING(#60,0.);
+#62=IFCSURFACESTYLE('Color1',.BOTH.,(#61));
+#63=IFCSTYLEDITEM(#57,(#62),'Color1');
+#64=IFCBUILDINGELEMENTPROXY('07ngBzsO5BK8C3rDUqQfSD',#20,'sweep1',$,$,#46,#59,$,$);
+#65=IFCRELCONTAINEDINSPATIALSTRUCTURE('1_r$SsBj1C3wgAjnhfmkqs',#20,'Physical model',$,(#64),#26);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/src/ifcopenshell-python/test/fixtures/geom/simple_sweep_2.ifc b/src/ifcopenshell-python/test/fixtures/geom/simple_sweep_2.ifc
new file mode 100644
index 0000000000..b7c2eaf2e2
--- /dev/null
+++ b/src/ifcopenshell-python/test/fixtures/geom/simple_sweep_2.ifc
@@ -0,0 +1,74 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('ViewDefinition[DesignTransferView]'),'2;1');
+FILE_NAME('/dev/null','2025-08-28T09:45:32+02:00',('AdaUser'),('AdaOrg'),'IfcOpenShell 0.8.2','IfcOpenShell 0.8.2','Nobody');
+FILE_SCHEMA(('IFC4X3_ADD2'));
+ENDSEC;
+DATA;
+#1=IFCPROJECT('3kk2KcD29DrxlrjJ23wiG2',$,'AdaProject',$,$,$,$,(#11),#6);
+#2=IFCSIUNIT(*,.LENGTHUNIT.,$,.METRE.);
+#3=IFCSIUNIT(*,.AREAUNIT.,$,.SQUARE_METRE.);
+#4=IFCSIUNIT(*,.VOLUMEUNIT.,$,.CUBIC_METRE.);
+#5=IFCSIUNIT(*,.PLANEANGLEUNIT.,$,.RADIAN.);
+#6=IFCUNITASSIGNMENT((#3,#5,#4,#2));
+#7=IFCCARTESIANPOINT((0.,0.,0.));
+#8=IFCDIRECTION((0.,0.,1.));
+#9=IFCDIRECTION((1.,0.,0.));
+#10=IFCAXIS2PLACEMENT3D(#7,#8,#9);
+#11=IFCGEOMETRICREPRESENTATIONCONTEXT($,'Model',3,1.E-05,#10,$);
+#12=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Body','Model',*,*,*,*,#11,$,.MODEL_VIEW.,$);
+#13=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Axis','Model',*,*,*,*,#11,$,.GRAPH_VIEW.,$);
+#14=IFCGEOMETRICREPRESENTATIONSUBCONTEXT('Box','Model',*,*,*,*,#11,$,.MODEL_VIEW.,$);
+#15=IFCACTORROLE(.ENGINEER.,$,$);
+#16=IFCPERSON('AdaUser',$,$,$,$,$,(#15),$);
+#17=IFCORGANIZATION('ADA','Assembly For Design and Analysis',$,$,$);
+#18=IFCPERSONANDORGANIZATION(#16,#17,$);
+#19=IFCAPPLICATION(#17,'XXX','ADA','ADA');
+#20=IFCOWNERHISTORY(#18,#19,.READWRITE.,$,$,#18,#19,1756367132);
+#21=IFCDIRECTION((0.,0.,1.));
+#22=IFCDIRECTION((1.,0.,0.));
+#23=IFCCARTESIANPOINT((0.,0.,0.));
+#24=IFCAXIS2PLACEMENT3D(#23,#21,#22);
+#25=IFCLOCALPLACEMENT($,#24);
+#26=IFCSITE('3192LLwf9Et9NYY6Dp1HMI',#20,'Ada',$,$,#25,$,$,.ELEMENT.,$,$,$,$,$);
+#27=IFCRELAGGREGATES('3sB8i$7If0y9iXdBJx7Et7',#20,'Project Container',$,#1,(#26));
+#28=IFCPROPERTYSINGLEVALUE('project',$,IFCTEXT('AdaProject'),$);
+#29=IFCPROPERTYSINGLEVALUE('schema',$,IFCTEXT('IFC4X3_add2'),$);
+#30=IFCPROPERTYSET('16zSs_zL5FTQaH0f6iQohK',#20,'Properties',$,(#28,#29));
+#31=IFCRELDEFINESBYPROPERTIES('2hQUoEcor7uf16HkCAa06h',#20,'Properties',$,(#26),#30);
+#32=IFCMATERIAL('S355',$,'Steel');
+#33=IFCPROPERTYSINGLEVALUE('Grade',$,IFCTEXT('S355'),$);
+#34=IFCPROPERTYSINGLEVALUE('YieldStress',$,IFCPRESSUREMEASURE(355000000.),$);
+#35=IFCPROPERTYSINGLEVALUE('YoungModulus',$,IFCMODULUSOFELASTICITYMEASURE(210000000000.),$);
+#36=IFCPROPERTYSINGLEVALUE('PoissonRatio',$,IFCPOSITIVERATIOMEASURE(0.3),$);
+#37=IFCPROPERTYSINGLEVALUE('ThermalExpansionCoefficient',$,IFCTHERMALEXPANSIONCOEFFICIENTMEASURE(1.2E-05),$);
+#38=IFCPROPERTYSINGLEVALUE('SpecificHeatCapacity',$,IFCSPECIFICHEATCAPACITYMEASURE(0.03),$);
+#39=IFCPROPERTYSINGLEVALUE('MassDensity',$,IFCMASSDENSITYMEASURE(7850.),$);
+#40=IFCMATERIALPROPERTIES('MaterialMechanical','A Material property description',(#33,#34,#35,#36,#37,#38,#39),#32);
+#41=IFCRELASSOCIATESMATERIAL('3GCQxFEKjCmPtz21j5vEC_',#20,'S355','Objects related to S355',(#64),#32);
+#42=IFCDIRECTION((0.,0.,1.));
+#43=IFCDIRECTION((1.,0.,0.));
+#44=IFCCARTESIANPOINT((0.,0.,0.));
+#45=IFCAXIS2PLACEMENT3D(#44,#42,#43);
+#46=IFCLOCALPLACEMENT(#25,#45);
+#47=IFCCARTESIANPOINTLIST2D(((0.1,0.05),(0.,0.),(0.1,0.),(0.1,0.05)),$);
+#48=IFCINDEXEDPOLYCURVE(#47,$,$);
+#49=IFCARBITRARYCLOSEDPROFILEDEF(.AREA.,$,#48);
+#50=IFCCARTESIANPOINTLIST3D(((50.,100.,200.),(50.,100.,200.389146),(50.0003133895072,100.025071208213,200.486102587622),(50.001174980994,100.093998658131,200.558749),(50.0086491903016,100.691934415524,200.932458971772),(50.0310627108963,100.770687414196,201.008805063266),(50.089001837944,100.800000190195,201.100002410475),(50.6760204909973,100.800000000803,201.843063903121),(50.7636872882004,100.858578730855,201.954034522829),(50.7999999397009,101.700000021708,201.999999960467),(50.8000002509973,100.999999960803,202.000000303121)),$);
+#51=IFCINDEXEDPOLYCURVE(#50,(IFCLINEINDEX((1,2)),IFCARCINDEX((2,3,4)),IFCLINEINDEX((4,5)),IFCARCINDEX((5,6,7)),IFCLINEINDEX((7,8)),IFCARCINDEX((8,9,11)),IFCLINEINDEX((11,10))),$);
+#52=IFCDIRECTION((1.,0.,0.));
+#53=IFCCARTESIANPOINT((0.,0.,0.));
+#54=IFCDIRECTION((0.,0.,1.));
+#55=IFCDIRECTION((1.,0.,0.));
+#56=IFCAXIS2PLACEMENT3D(#53,#54,#55);
+#57=IFCFIXEDREFERENCESWEPTAREASOLID(#49,#56,#51,$,$,#52);
+#58=IFCSHAPEREPRESENTATION(#12,'Body','AdvancedSweptSolid',(#57));
+#59=IFCPRODUCTDEFINITIONSHAPE($,$,(#58));
+#60=IFCCOLOURRGB('Color1',0.8,0.8,0.8);
+#61=IFCSURFACESTYLESHADING(#60,0.);
+#62=IFCSURFACESTYLE('Color1',.BOTH.,(#61));
+#63=IFCSTYLEDITEM(#57,(#62),'Color1');
+#64=IFCBUILDINGELEMENTPROXY('0Yr8J8fnj47xCNdvnijjk4',#20,'sweep2',$,$,#46,#59,$,$);
+#65=IFCRELCONTAINEDINSPATIALSTRUCTURE('1Bl6up0hb69elL9bAj0Yd6',#20,'Physical model',$,(#64),#26);
+ENDSEC;
+END-ISO-10303-21;
diff --git a/src/ifcopenshell-python/test/geom/test_sweeps.py b/src/ifcopenshell-python/test/geom/test_sweeps.py
new file mode 100644
index 0000000000..d77faec540
--- /dev/null
+++ b/src/ifcopenshell-python/test/geom/test_sweeps.py
@@ -0,0 +1,85 @@
+import pathlib
+from collections.abc import Sequence
+
+import ifcopenshell
+import pytest
+
+
+def _bbox_from_vertices(verts: list[tuple[float, float, float]]):
+ if not verts:
+ return (0, 0, 0), (0, 0, 0)
+ xs = [v[0] for v in verts]
+ ys = [v[1] for v in verts]
+ zs = [v[2] for v in verts]
+ mn = (min(xs), min(ys), min(zs))
+ mx = (max(xs), max(ys), max(zs))
+ return mn, mx
+
+
+def _size_from_bbox(mn, mx):
+ return (mx[0] - mn[0], mx[1] - mn[1], mx[2] - mn[2])
+
+
+def _triples(flat: Sequence[float]) -> list[tuple[float, float, float]]:
+ return [(float(flat[i]), float(flat[i + 1]), float(flat[i + 2])) for i in range(0, len(flat), 3)]
+
+
+def load_ifc_mesh_bbox(ifc_path: str):
+ """Load first product's mesh from IFC using ifcopenshell.geom and return bbox and size."""
+ try:
+ import ifcopenshell.geom as geom
+ except Exception as e:
+ raise RuntimeError("ifcopenshell.geom not available: cannot validate IFC geometry") from e
+
+ settings = geom.settings()
+ settings.set(settings.USE_WORLD_COORDS, True)
+
+ f = ifcopenshell.open(ifc_path)
+ # Prefer the proxy we created, otherwise take any product with representation
+ products = f.by_type("IfcProduct")
+ target = None
+ for p in products:
+ if p.is_a("IfcBuildingElementProxy") and getattr(p, "Representation", None):
+ target = p
+ break
+ if target is None:
+ for p in products:
+ if getattr(p, "Representation", None):
+ target = p
+ break
+ if target is None:
+ raise RuntimeError("No representable product found in IFC for validation")
+
+ shape = geom.create_shape(settings, target)
+ verts = _triples(shape.geometry.verts)
+ mn, mx = _bbox_from_vertices(verts)
+ return mn, mx, _size_from_bbox(mn, mx)
+
+
+@pytest.fixture
+def geom_dir():
+ return pathlib.Path(__file__).parent.parent.resolve().absolute() / "fixtures/geom"
+
+
+def test_simple_sweep_1(geom_dir):
+ ifc_file_path = geom_dir / "simple_sweep_1.ifc"
+ ifc_mn, ifc_mx, ifc_sz = load_ifc_mesh_bbox(ifc_file_path)
+ assert ifc_sz == pytest.approx((0.8957825463853046, 0.1, 1.1))
+ assert ifc_mn == pytest.approx((0.0, 0, -0.1))
+ assert ifc_mx == pytest.approx((0.8957825463853046, 0.1, 1.0))
+
+
+def test_simple_sweep_2(geom_dir):
+ ifc_file_path = geom_dir / "simple_sweep_2.ifc"
+ ifc_mn, ifc_mx, ifc_sz = load_ifc_mesh_bbox(ifc_file_path)
+ assert ifc_mn == pytest.approx((50.0, 100.0, 200.0))
+ assert ifc_mx == pytest.approx((50.89584911299009, 101.70000025609394, 202.0000003710634))
+ assert ifc_sz == pytest.approx((0.8958491129900921, 1.7000002560939436, 2.0000003710634076))
+
+
+def test_pipe_12d(geom_dir):
+ ifc_file_path = geom_dir / "pipe.ifc"
+ ifc_mn, ifc_mx, ifc_sz = load_ifc_mesh_bbox(ifc_file_path)
+ assert ifc_sz == pytest.approx((1.205888147422229, 0.9929900508137735, 0.35776115971654576))
+ assert ifc_mn == pytest.approx((288.9774190979147, 582.0537006391681, 118.70711942014172))
+ assert ifc_mx == pytest.approx((290.18330724533695, 583.0466906899819, 119.06488057985827))
diff --git a/src/ifcopenshell-python/test/test_open.py b/src/ifcopenshell-python/test/test_open.py
index fd8864e584..99f312c76e 100644
--- a/src/ifcopenshell-python/test/test_open.py
+++ b/src/ifcopenshell-python/test/test_open.py
@@ -21,7 +21,7 @@ import pytest
import ifcopenshell
-TEST_FILE_DIR = Path("../../test/input/")
+TEST_FILE_DIR = Path(__file__).parent / "../../../test/input/"
class TestOpen:
diff --git a/src/ifcopenshell-python/test/test_write.py b/src/ifcopenshell-python/test/test_write.py
index 356f46c6fc..352aea2538 100644
--- a/src/ifcopenshell-python/test/test_write.py
+++ b/src/ifcopenshell-python/test/test_write.py
@@ -22,7 +22,7 @@ import pytest
import ifcopenshell
-TEST_FILE_DIR = Path("../../test/input/")
+TEST_FILE_DIR = Path(__file__).parent / "../../../test/input/"
class TestWrite:
diff --git a/src/ifcwrap/CMakeLists.txt b/src/ifcwrap/CMakeLists.txt
index 930d3b6401..4e2e93157f 100644
--- a/src/ifcwrap/CMakeLists.txt
+++ b/src/ifcwrap/CMakeLists.txt
@@ -102,8 +102,22 @@ IF((PYTHONINTERP_FOUND AND NOT "${PYTHON_EXECUTABLE}" STREQUAL "") OR PYTHON_MOD
OUTPUT_VARIABLE PYTHON_EXTENSION_SUFFIX
OUTPUT_STRIP_TRAILING_WHITESPACE
)
- SET_TARGET_PROPERTIES(${SWIG_MODULE_ifcopenshell_wrapper_REAL_NAME} PROPERTIES SUFFIX ${PYTHON_EXTENSION_SUFFIX})
+
+ # On Windows there is '_d' prefix for debug builds - e.g. `_d.cp311-win_amd64.pyd`.
+ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
+ set_target_properties(
+ ${SWIG_MODULE_ifcopenshell_wrapper_REAL_NAME} PROPERTIES
+ SUFFIX ${PYTHON_EXTENSION_SUFFIX}
+ DEBUG_POSTFIX "_d"
+ )
+ else()
+ set_target_properties(
+ ${SWIG_MODULE_ifcopenshell_wrapper_REAL_NAME} PROPERTIES
+ SUFFIX ${PYTHON_EXTENSION_SUFFIX}
+ )
endif()
+ endif(NOT WASM_BUILD)
+
if (PYTHON_MODULE_INSTALL_DIR)
set(python_package_dir "${PYTHON_MODULE_INSTALL_DIR}")
else()
diff --git a/win/build-deps.cmd b/win/build-deps.cmd
index fae82c3786..7d129828a9 100644
--- a/win/build-deps.cmd
+++ b/win/build-deps.cmd
@@ -20,6 +20,9 @@
:: This batch file expects CMake generator as %1 and build configuration type as %2. If not provided,
:: a deduced generator will be used for %1 and BUILD_CFG_DEFAULT for %2 (both set in vs-cfg.cmd)
:: Optionally a build type (Build/Rebuild/Clean) can be passed as %3.
+::
+:: Example usage (all arguments are optional):
+:: build-deps.cmd vs2022-x64 RelWithDebInfo Build
@echo off
echo.
@@ -534,21 +537,38 @@ IF EXIST "%INSTALL_DIR%\swigwin" (
goto :cgal
)
+cd "%DEPS_DIR%"
+
+:: Install bizon dependency for SWIG.
+set DEPENDENCY_NAME=win_flex_bison
+set WIN_FLEX_BIZON=win_flex_bison-2.5.25
+set WIN_FLEX_BIZON_ZIP=%WIN_FLEX_BIZON%.zip
+call :DownloadFile https://github.com/lexxmark/winflexbison/releases/download/v2.5.25/%WIN_FLEX_BIZON_ZIP% "%DEPS_DIR%" %WIN_FLEX_BIZON_ZIP%
+IF NOT %ERRORLEVEL%==0 GOTO :Error
+echo test %WIN_FLEX_BIZON%
+call :ExtractArchive %WIN_FLEX_BIZON_ZIP% "%DEPS_DIR%\%WIN_FLEX_BIZON%" "%DEPS_DIR%\%WIN_FLEX_BIZON%"
+IF NOT %ERRORLEVEL%==0 GOTO :Error
+
set SWIG_VERSION=4.3.0
set DEPENDENCY_NAME=SWIG %SWIG_VERSION%
-set DEPENDENCY_DIR=N/A
+set DEPENDENCY_DIR=%DEPS_DIR%\swig-%SWIG_VERSION%
set SWIG_ZIP=swigwin-%SWIG_VERSION%.zip
-cd "%DEPS_DIR%"
-call :DownloadFile https://sourceforge.net/projects/swig/files/swigwin/swigwin-%SWIG_VERSION%/%SWIG_ZIP% "%DEPS_DIR%" %SWIG_ZIP%
+call :DownloadFile https://github.com/swig/swig/archive/refs/tags/v%SWIG_VERSION%.zip "%DEPS_DIR%" swig-%SWIG_VERSION%.zip
IF NOT %ERRORLEVEL%==0 GOTO :Error
-call :ExtractArchive %SWIG_ZIP% "%DEPS_DIR%" "%DEPS_DIR%\swigwin"
+
+call :ExtractArchive swig-%SWIG_VERSION%.zip "%DEPS_DIR%" "%DEPENDENCY_DIR%"
IF NOT %ERRORLEVEL%==0 GOTO :Error
-IF EXIST "%DEPS_DIR%\swigwin-%SWIG_VERSION%". (
- pushd "%DEPS_DIR%"
- ren swigwin-%SWIG_VERSION% swigwin
- popd
-)
-IF EXIST "%DEPS_DIR%\swigwin\". robocopy "%DEPS_DIR%\swigwin" "%INSTALL_DIR%\swigwin" /E /IS /MOVE /njh /njs
+cd "%DEPENDENCY_DIR%"
+
+call :RunCMake -DCMAKE_INSTALL_PREFIX="%INSTALL_DIR%\swigwin" ^
+ -DWITH_PCRE=OFF ^
+ -DBISON_EXECUTABLE="%DEPS_DIR%\%WIN_FLEX_BIZON%\win_bison.exe"
+IF NOT %ERRORLEVEL%==0 GOTO :Error
+call :BuildSolution "%DEPENDENCY_DIR%\%BUILD_DIR%\swig.sln" Release
+IF NOT %ERRORLEVEL%==0 GOTO :Error
+call :InstallCMakeProject "%DEPENDENCY_DIR%\%BUILD_DIR%" Release
+IF NOT %ERRORLEVEL%==0 GOTO :Error
+robocopy "%INSTALL_DIR%\swigwin\bin" "%INSTALL_DIR%\swigwin" /move /e
:cgal
diff --git a/win/run-cmake.bat b/win/run-cmake.bat
index 7c9aeb08f6..76e8a17436 100755
--- a/win/run-cmake.bat
+++ b/win/run-cmake.bat
@@ -87,8 +87,7 @@ set BOOST_ROOT=%DEPS_DIR%\boost_%BOOST_VER%
set BOOST_LIBRARYDIR=%BOOST_ROOT%\stage\%GEN_SHORTHAND%\lib
if not defined OCC_INCLUDE_DIR set OCC_INCLUDE_DIR=%INSTALL_DIR%\oce\include\oce
if not defined OCC_LIBRARY_DIR set OCC_LIBRARY_DIR=%INSTALL_DIR%\oce\Win%ARCH_BITS%\lib
-set OPENCOLLADA_INCLUDE_DIR=%INSTALL_DIR%\OpenCOLLADA\include\opencollada
-set OPENCOLLADA_LIBRARY_DIR=%INSTALL_DIR%\OpenCOLLADA\lib\opencollada
+set OPENCOLLADA_INSTALL_DIR=%INSTALL_DIR%\OpenCOLLADA
set LIBXML2_INCLUDE_DIR=%DEPS_DIR%\OpenCOLLADA\Externals\LibXML\include
set LIBXML2_LIBRARIES=%INSTALL_DIR%\OpenCOLLADA\lib\opencollada\xml.lib
set HDF5_INSTALL_DIR=%INSTALL_DIR%\HDF5-%HDF5_VERSION%-win%ARCH_BITS%
@@ -97,7 +96,7 @@ if not defined PYTHONHOME set PYTHONHOME=%INSTALL_DIR%\Python%PY_VER_MAJOR_MINOR
set PYTHON_INCLUDE_DIR=%PYTHONHOME%\include
set PYTHON_LIBRARY=%PYTHONHOME%\libs\python%PY_VER_MAJOR_MINOR%.lib
set PYTHON_EXECUTABLE=%PYTHONHOME%\python.exe
-set SWIG_EXECUTABLE=%SWIG_DIR%\swig.exe
+set SWIG_INSTALL_DIR=%INSTALL_DIR%\swigwin
set PATH=%PATH%;%PYTHONHOME%
set JSON_INCLUDE_DIR=%INSTALL_DIR%\json
if not defined ADD_COMMIT_SHA set ADD_COMMIT_SHA=Off
@@ -128,8 +127,7 @@ echo BOOST_ROOT = %BOOST_ROOT%
echo BOOST_LIBRARYDIR = %BOOST_LIBRARYDIR%
echo OCC_INCLUDE_DIR = %OCC_INCLUDE_DIR%
echo OCC_LIBRARY_DIR = %OCC_LIBRARY_DIR%
-echo OPENCOLLADA_INCLUDE_DIR = %OPENCOLLADA_INCLUDE_DIR%
-echo OPENCOLLADA_LIBRARY_DIR = %OPENCOLLADA_LIBRARY_DIR%
+echo OPENCOLLADA_INSTALL_DIR = %OPENCOLLADA_INSTALL_DIR%
echo LIBXML2_INCLUDE_DIR = %LIBXML2_INCLUDE_DIR%
echo LIBXML2_LIBRARIES = %LIBXML2_LIBRARIES%
echo HDF5_INSTALL_DIR = %HDF5_INSTALL_DIR%
@@ -163,12 +161,12 @@ call cecho.cmd 0 13 "Running CMake for %PROJECT_NAME%."
IF NOT "%VS_TOOLSET_HOST%"=="" (
cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% -T %VS_TOOLSET_HOST% ^
-DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DBoost_NO_BOOST_CMAKE=ON ^
- -DCMAKE_PREFIX_PATH="%HDF5_INSTALL_DIR%" ^
+ -DCMAKE_PREFIX_PATH="%HDF5_INSTALL_DIR%;%OPENCOLLADA_INSTALL_DIR%;%SWIG_INSTALL_DIR%" ^
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS%
) ELSE (
cmake.exe %CMAKELISTS_DIR% -G %GENERATOR% -A %VS_PLATFORM% ^
-DCMAKE_INSTALL_PREFIX="%CMAKE_INSTALL_PREFIX%" -DBoost_NO_BOOST_CMAKE=ON ^
- -DCMAKE_PREFIX_PATH="%HDF5_INSTALL_DIR%" ^
+ -DCMAKE_PREFIX_PATH="%HDF5_INSTALL_DIR%;%OPENCOLLADA_INSTALL_DIR%;%SWIG_INSTALL_DIR%" ^
-DADD_COMMIT_SHA=%ADD_COMMIT_SHA% %ARGUMENTS%
)