SET PATH=E:\builds\release-1911-x64\bin;E:\builds\release-1911-x64\bin\curl;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX64\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCPackages;C:\Program Files (x86)\Microsoft SDKs\TypeScript\3.1;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TestWindow;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin\Roslyn;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Team Tools\Performance Tools\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Team Tools\Performance Tools;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\\x64;C:\Program Files (x86)\Microsoft Visual Studio\Shared\Common\VSPerfCollectionTools\;C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\FSharp\;C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64;C:\Program Files (x86)\Windows Kits\10\bin\x64;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\\MSBuild\15.0\bin;C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\ActiveTcl\bin;C:\Perl64\site\bin;C:\Perl64\bin;C:\Program Files\Microsoft MPI\Bin\;E:\app\szekeres\product\11.2.0\dbhome_1\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\WINDOWS\system32\config\systemprofile\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\nodejs\;C:\Program Files (x86)\Microsoft Team Foundation Server 2015 Power Tools\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\Microsoft Network Monitor 3\;C:\Program Files\dotnet\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\TortoiseGit\bin;C:\Program Files\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program Files\Microsoft SQL Server\120\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files\Microsoft SQL Server\140\DTS\Binn\;;C:\Program Files\7-Zip;C:\Program Files (x86)\Certum\proCertum CardManager;C:\Program Files (x86)\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\dotnet\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\;C:\Program Files\Microsoft SQL Server\140\DTS\Binn\;C:\Strawberry\c\bin;C:\Strawberry\perl\site\bin;C:\Strawberry\perl\bin;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Microsoft SQL Server\130\DTS\Binn\;C:\Program Files\Git\cmd;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Users\szekeres\AppData\Roaming\npm;C:\Users\szekeres\AppData\Local\Microsoft\WindowsApps;C:\Users\szekeres\AppData\Local\Programs\Fiddler;C:\Users\szekeres\.dotnet\tools;C:\Users\szekeres\.dotnet\tools;;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin;C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja if exist E:\builds\release-1911-x64\bin\curl\curl.exe E:\builds\release-1911-x64\bin\curl\curl.exe -o E:\builds\release-1911-x64\bin\curl\curl-ca-bundle.crt "https://curl.haxx.se/ca/cacert.pem" set TERM=msys set "PATH=E:\Git\bin;%PATH%" cd ..\sdk\vc15x64\mapserver git reset --hard HEAD HEAD is now at 8ae12e9f Merge pull request #6226 from rouault/followup_5416 git fetch git checkout main Your branch is behind 'origin/main' by 399 commits, and can be fast-forwarded. (use "git pull" to update your local branch) git pull origin main Updating 8ae12e9f..4d7e1a1c Fast-forward .github/workflows/backport.yml | 10 +- .github/workflows/build.yml | 14 + .github/workflows/coverity-scan.yml | 64 + .github/workflows/cppcheck.yml | 20 + .github/workflows/start.sh | 134 + .travis.yml | 8 +- CMakeLists.txt | 72 +- CONTRIBUTING.md | 25 +- HISTORY.TXT | 28 +- INSTALL.CMAKE | 1 - Makefile | 22 +- SECURITY.md | 21 + apache/mod_mapserver.c | 9 +- appveyor.yml | 34 +- cgiutil.c | 86 +- cgiutil.h | 20 +- ci/travis/before_install.sh | 17 +- ci/travis/script.sh | 4 +- classobject.c | 8 +- cmake/FindICONV.cmake | 2 +- cmake/FindPostgreSQL.cmake | 63 +- cmake/FindProj.cmake | 2 +- fontcache.c | 17 +- hittest.c | 2 + idw.c | 76 + interpolation.c | 259 + kerneldensity.c | 317 +- layerobject.c | 5 +- mapagg.cpp | 88 +- mapagg.h | 9 +- mapcairo.c | 46 +- mapchart.c | 64 +- mapcluster.c | 18 +- mapcompositingfilter.c | 71 +- mapcontext.c | 29 +- mapcontour.c | 5 +- mapcopy.c | 89 +- mapcopy.h | 8 - mapcpl.c | 2 + mapcrypto.c | 3 + mapdebug.c | 3 +- mapdraw.c | 200 +- mapdrawgdal.c | 271 +- mapdummyrenderer.c | 115 + maperror.c | 152 +- maperror.h | 38 +- mapfile.c | 296 +- mapfile.dtd | 3 +- mapfile.h | 10 - mapgdal.c | 28 +- mapgeomtransform.c | 6 +- mapgeos.c | 77 +- mapgml.c | 111 +- mapgraticule.c | 23 +- maphash.c | 9 +- maphash.h | 8 +- maphttp.c | 64 +- mapimageio.c | 54 +- mapimagemap.c | 66 +- mapio.c | 27 +- mapjoin.c | 11 +- mapkml.cpp | 24 +- mapkmlrenderer.cpp | 16 +- mapkmlrenderer.h | 88 +- maplabel.c | 92 +- maplayer.c | 118 +- maplegend.c | 88 +- maplexer.c | 5479 ++-- maplexer.l | 26 +- maplibxml2.c | 1 + mapmetadata.c | 29 +- mapmssql2008.c | 24 +- mapmvt.c | 21 +- mapobject.c | 41 +- mapogcapi.cpp | 1646 ++ mapogcapi.h | 42 + mapogcfilter.cpp | 81 +- mapogcfiltercommon.cpp | 2 +- mapogcsld.c | 105 +- mapogcsos.c | 15 +- mapogr.cpp | 433 +- mapogroutput.cpp | 52 +- maporaclespatial.c | 596 +- mapoutput.c | 74 +- mapows.c | 78 +- mapows.h | 11 +- mapowscommon.h | 2 + mapparser.c | 1 + mapparser.y | 1 + mappluginlayer.c | 6 +- mappool.c | 5 +- mappostgis.cpp | 259 +- mapprimitive.c | 87 +- mapprimitive.h | 66 +- mapproject.c | 32 +- mapproject.h | 39 +- mapquantization.c | 35 +- mapquery.c | 58 +- mapraster.c | 49 +- maprasterquery.c | 21 +- maprendering.c | 59 +- mapresample.c | 16 +- mapscale.c | 49 +- mapscript/csharp/Makefile.in | 9 +- mapscript/csharp/csmodule.i | 2 +- mapscript/csharp/swig_csharp_extensions.i | 10 +- mapscript/java/examples/DrawMap.java | 4 +- mapscript/java/javaextend.i | 6 +- mapscript/perl/CMakeLists.txt | 2 +- mapscript/php/image.c | 2 +- mapscript/php/label.c | 8 +- mapscript/php/layer.c | 187 +- mapscript/php/map.c | 23 +- mapscript/php/mapscript_i.c | 10 +- mapscript/php/php_mapscript.c | 3 +- mapscript/php/point.c | 10 - mapscript/php/style.c | 165 +- mapscript/php/web.c | 22 +- mapscript/python/CMakeLists.txt | 2 +- mapscript/python/README.rst | 52 +- mapscript/python/examples/wxs.py | 2 +- mapscript/python/mapscript/__init__.py | 5 +- mapscript/python/pyextend.i | 56 +- mapscript/python/pymodule.i | 2 + mapscript/python/tests/cases/clone_test.py | 9 +- mapscript/python/tests/cases/image_test.py | 17 - mapscript/python/tests/cases/layer_test.py | 12 +- mapscript/python/tests/cases/line_test.py | 2 +- mapscript/python/tests/cases/map_test.py | 62 - mapscript/python/tests/cases/ows_test.py | 32 + mapscript/python/tests/cases/shape_test.py | 6 +- mapscript/python/tests/cases/style_test.py | 9 +- mapscript/python/tests/cases/symbolset_test.py | 3 +- mapscript/python/tests/runtests.py | 8 +- mapscript/ruby/rbmodule.i | 2 + mapscript/swiginc/class.i | 32 - mapscript/swiginc/image.i | 2 +- mapscript/swiginc/label.i | 2 +- mapscript/swiginc/layer.i | 96 +- mapscript/swiginc/legend.i | 2 +- mapscript/swiginc/line.i | 4 + mapscript/swiginc/map.i | 50 +- mapscript/swiginc/mapzoom.i | 6 +- mapscript/swiginc/outputformat.i | 6 +- mapscript/swiginc/owsrequest.i | 28 +- mapscript/swiginc/point.i | 38 +- mapscript/swiginc/querymap.i | 2 +- mapscript/swiginc/referencemap.i | 2 +- mapscript/swiginc/resultcache.i | 2 +- mapscript/swiginc/symbol.i | 2 +- mapscript/v8/line.cpp | 6 - mapscript/v8/point.cpp | 12 - mapsearch.c | 40 +- mapserv.c | 31 +- mapserv.h | 7 +- mapserver-config.h.in | 2 +- mapserver.h | 1027 +- mapservutil.c | 226 +- mapshape.c | 114 +- mapsmoothing.c | 6 +- mapstring.cpp | 74 +- mapsymbol.c | 37 +- mapsymbol.h | 85 +- maptemplate.c | 118 +- maptemplate.h | 1 + maptile.c | 30 +- maptime.c | 37 +- maptree.c | 28 +- mapunion.c => mapunion.cpp | 195 +- maputfgrid.cpp | 378 +- maputfgrid.h | 13 +- maputil.c | 156 +- mapuvraster.c | 17 +- mapwcs.cpp | 27 +- mapwcs11.cpp | 4 +- mapwcs20.cpp | 57 +- mapwfs.cpp | 83 +- mapwfs11.cpp | 15 +- mapwfs20.c | 25 +- mapwfslayer.c | 24 +- mapwms.cpp | 181 +- mapwmslayer.c | 75 +- mapxbase.c | 13 +- mapxmp.c | 4 +- msautotest/api/data/mn_counties.dbf | Bin 0 -> 14010 bytes msautotest/api/data/mn_counties.prj | 1 + msautotest/api/data/mn_counties.shp | Bin 0 -> 1217052 bytes msautotest/api/data/mn_counties.shx | Bin 0 -> 1036 bytes msautotest/api/data/mn_major_rivers.dbf | Bin 0 -> 25704 bytes msautotest/api/data/mn_major_rivers.prj | 1 + msautotest/api/data/mn_major_rivers.shp | Bin 0 -> 6697664 bytes msautotest/api/data/mn_major_rivers.shx | Bin 0 -> 540 bytes msautotest/api/data/mn_population_centers.dbf | Bin 0 -> 254325 bytes msautotest/api/data/mn_population_centers.prj | 1 + msautotest/api/data/mn_population_centers.shp | Bin 0 -> 30368 bytes msautotest/api/data/mn_population_centers.shx | Bin 0 -> 8748 bytes msautotest/api/expected/conformance.json | 1 + msautotest/api/expected/ogcapi_api.json | 1 + msautotest/api/expected/ogcapi_collections.json | 1 + .../expected/ogcapi_collections_mn_counties.json | 1 + .../ogcapi_collections_mn_counties_items.json | 1 + ...ogcapi_collections_mn_counties_items_by_id.json | 1 + ...ions_mn_counties_items_by_id_not_found.json.txt | 1 + ...capi_collections_mn_counties_items_limit_1.json | 1 + ...ections_mn_counties_items_limit_1_offset_2.json | 1 + ..._mn_counties_items_limit_bbox_empty_result.json | 1 + ...ns_mn_counties_items_unknown_parameter.json.txt | 4 + msautotest/api/expected/ogcapi_root.html.txt | 58 + msautotest/api/expected/ogcapi_root.json | 1 + msautotest/api/expected/ogcapi_root.json.txt | 3 + msautotest/api/ogcapi.map | 138 + msautotest/api/run_test.py | 48 + msautotest/create_postgis_test_data.sh | 14 + msautotest/gdal/class16.map | 12 +- msautotest/gdal/class16_classify_scaled.map | 12 +- msautotest/gdal/class16_intoddscale.map | 12 +- msautotest/gdal/class16_ndmap.map | 12 +- msautotest/gdal/class16_oddscale.map | 4 +- msautotest/gdal/class16_range.map | 8 +- msautotest/gdal/class8_range.map | 2 +- msautotest/gdal/classtest1.map | 6 +- msautotest/gdal/classtest2.map | 2 +- msautotest/gdal/connectionoptions.map | 1 - msautotest/gdal/expected/class16_range.png | Bin 857 -> 857 bytes msautotest/gdal/expected/class8_range.png | Bin 2030 -> 1977 bytes msautotest/gdal/expected/idw.png | Bin 0 -> 1849 bytes msautotest/gdal/expected/nodata_scaled.png | Bin 386 -> 390 bytes msautotest/gdal/expected/wmsclient_3543.png | Bin 24643 -> 24821 bytes msautotest/gdal/gd_png_tr_256.map | 1 - msautotest/gdal/gd_png_tr_256_res.map | 2 +- msautotest/gdal/idw.map | 77 + msautotest/gdal/mask_1.map | 1 - msautotest/gdal/mask_3.map | 1 - msautotest/gdal/nodata_rgb.map | 1 - msautotest/gdal/nodata_scaled.map | 5 - msautotest/gdal/tileindex.map | 1 - msautotest/gdal/tileindex_mi.map | 1 - msautotest/gdal/tileindexmixedsrs.map | 1 - msautotest/gdal/tileindexmixedsrs2.map | 1 - msautotest/gdal/tileindexmixedsrs3.map | 2 - msautotest/gdal/tileindexmixedsrs4.map | 2 - msautotest/gdal/trlay1.map | 4 +- msautotest/gdal/trlay2.map | 4 +- msautotest/gdal/trlay3.map | 4 +- msautotest/misc/bug1526.map | 6 +- msautotest/misc/data/union/layer1.dbf | Bin 0 -> 370 bytes msautotest/misc/data/union/layer1.shp | Bin 0 -> 3060 bytes msautotest/misc/data/union/layer1.shx | Bin 0 -> 148 bytes msautotest/misc/data/union/layer2.dbf | Bin 0 -> 118 bytes msautotest/misc/data/union/layer2.shp | Bin 0 -> 1620 bytes msautotest/misc/data/union/layer2.shx | Bin 0 -> 132 bytes msautotest/misc/dateline.map | 6 +- .../expected/line_offset_clipped_to_multiline.png | Bin 0 -> 1647 bytes msautotest/misc/expected/union.png | Bin 0 -> 14966 bytes .../misc/line_offset_clipped_to_multiline.map | 34 + msautotest/misc/mode_tile.map | 6 +- msautotest/misc/multipoint.map | 8 +- msautotest/misc/ogr_attrfilter.map | 6 +- msautotest/misc/ogr_direct.map | 6 +- msautotest/misc/ogr_join.map | 12 +- msautotest/misc/ogr_multi_defer.map | 12 +- msautotest/misc/ogr_select.map | 6 +- msautotest/misc/ogr_vrtconnect.map | 6 +- msautotest/misc/ogr_wkt.map | 14 +- msautotest/misc/ortho.map | 8 +- msautotest/misc/quoting.map | 41 +- msautotest/misc/rfc36.map | 11 +- msautotest/misc/rfc36_ogr.map | 11 +- msautotest/misc/rot_out.map | 6 +- msautotest/misc/sde_bug2072.map | 7 +- msautotest/misc/sde_join.map | 13 +- msautotest/misc/sde_utf2.map | 1 - msautotest/misc/sde_view.map | 12 +- msautotest/misc/sde_wms.map | 12 +- msautotest/misc/union.map | 61 + msautotest/msoracle/README.md | 20 + msautotest/msoracle/docker-compose.yaml | 12 + msautotest/msoracle/expected/oracle.png | Bin 0 -> 2954 bytes msautotest/msoracle/oracle.map | 98 + msautotest/msoracle/run_test.py | 50 + msautotest/msoracle/sample-data.sql | 79 + msautotest/msoracle/tnsnames.ora | 9 + msautotest/mspython/ogr_query.map | 7 +- msautotest/mspython/test_postgis.py | 41 +- msautotest/mssql/cluster_mssql.map | 51 + msautotest/mssql/create_mssql_db.bat | 2 +- msautotest/mssql/expected/cluster_mssql.png | Bin 0 -> 15206 bytes .../mssql/expected/cluster_mssql_getmetadata.xml | 195 + msautotest/mssql/expected/line.json | 1 + msautotest/mssql/expected/multiline.json | 1 + msautotest/mssql/expected/multipoint.json | 1 + msautotest/mssql/expected/multipolygon.json | 1 + .../mssql/expected/multipolygon_with_hole.json | 1 + msautotest/mssql/expected/null_line.json | 1 + msautotest/mssql/expected/null_multiline.json | 1 + msautotest/mssql/expected/null_multipoint.json | 1 + msautotest/mssql/expected/null_multipolygon.json | 1 + msautotest/mssql/expected/null_point.json | 1 + msautotest/mssql/expected/null_polygon.json | 1 + msautotest/mssql/expected/point.json | 1 + msautotest/mssql/expected/polygon.json | 1 + msautotest/mssql/expected/polygon_with_hole.json | 1 + .../mssql/expected/wfs_mssql_maxfeatures.json | 1 + .../expected/wfs_mssql_maxfeatures_order.json | 1 + .../mssql/expected/wfs_mssql_maxfeatures_qs.json | 1 + msautotest/mssql/filters_mssql.map | 2 +- msautotest/mssql/include/bdry_counpy2_mssql.map | 4 +- msautotest/mssql/include/mssql_connection.map | 2 +- msautotest/php/classObjTest.php | 4 +- msautotest/php/colorObjTest.php | 13 +- msautotest/php/errorObjTest.php | 4 +- msautotest/php/hashtableObjTest.php | 4 +- msautotest/php/labelObjTest.php | 4 +- msautotest/php/labelleaderObjTest.php | 4 +- msautotest/php/layerObjTest.php | 7 +- msautotest/php/lineObjTest.php | 4 +- msautotest/php/mapObjTest.php | 4 +- msautotest/php/maps/filters.map | 2 +- msautotest/php/maps/helloworld-gif.map | 1 - msautotest/php/maps/ogr_query.map | 7 +- msautotest/php/maps/ows_wms.map | 8 +- msautotest/php/maps/test.map | 2 - msautotest/php/maps/wms_simple.map | 8 +- msautotest/php/owsRequestObjTest.php | 4 +- msautotest/php/pointObjTest.php | 4 +- msautotest/php/projectionObjTest.php | 4 +- msautotest/php/queryMapObjTest.php | 4 +- msautotest/php/rectObjTest.php | 4 +- msautotest/php/shapeFileObjTest.php | 4 +- msautotest/php/shapeObjTest.php | 4 +- msautotest/php/styleObjTest.php | 4 +- msautotest/php/symbolObjTest.php | 4 +- msautotest/php/webObjTest.php | 4 +- msautotest/pymod/mstestlib.py | 5 + msautotest/pytest.ini | 2 +- msautotest/query/filters.map | 2 +- msautotest/query/filters_postgis.map | 2 +- msautotest/query/text.map | 14 +- msautotest/renderers/chartlayer_bar.map | 5 +- msautotest/renderers/chartlayer_vbar.map | 5 +- msautotest/renderers/embed_legend.map | 18 +- msautotest/renderers/embed_legend_rgba.map | 28 +- msautotest/renderers/embed_legend_rgba_tr.map | 28 +- msautotest/renderers/embed_legend_tr.map | 18 +- msautotest/renderers/embed_sb_rgb.map | 2 - msautotest/renderers/embed_sb_rgb_tr.map | 1 - msautotest/renderers/embed_sb_rgba.map | 12 +- msautotest/renderers/embed_sb_rgba_offset.map | 12 +- msautotest/renderers/embed_sb_rgba_tr.map | 12 +- .../renderers/expected/font-fail-missing-glyph.png | Bin 0 -> 2307 bytes .../expected/legend_sizeunits_meters.cairo.png | Bin 12525 -> 13076 bytes .../renderers/expected/legend_sizeunits_meters.pdf | Bin 56411 -> 56463 bytes .../renderers/expected/legend_sizeunits_meters.png | Bin 12659 -> 13145 bytes .../renderers/expected/legend_sizeunits_meters.svg | 12 +- msautotest/renderers/font-fail.map | 18 + msautotest/renderers/grid.map | 10 +- msautotest/renderers/labelrot.map | 14 +- msautotest/renderers/legend.map | 24 +- msautotest/renderers/legend_label_offset.map | 24 +- msautotest/renderers/legend_sizeunits_meters.map | 24 +- msautotest/renderers/plb_embed_legend.map | 18 +- msautotest/renderers/plb_embed_legend_rgba.map | 28 +- msautotest/renderers/plb_embed_legend_rgba_tr.map | 32 +- msautotest/renderers/plb_embed_legend_tr.map | 18 +- msautotest/renderers/polyline_no_clip.map | 4 +- msautotest/wxs/data/test_6325.gpkg | Bin 0 -> 98304 bytes msautotest/wxs/etc/fonts.txt | 4 +- .../wxs/expected/ows_all_wms_capabilities.xml | 1 + .../wxs/expected/ows_all_wms_capabilities_post.xml | 1 + .../expected/ows_metadata_wms_capabilities111.xml | 1 + .../expected/ows_metadata_wms_capabilities130.xml | 1 + msautotest/wxs/expected/ows_wms_capabilities.xml | 1 + .../ows_wms_rootlayer_name_capabilities.xml | 1 + .../ows_wms_rootlayer_name_empty_capabilities.xml | 1 + ...tfeature_resourceid_filter_invalid_typename.xml | 4 +- ..._exception_getfeature_resourceid_inexisting.xml | 10 - ...wfs_200_exception_getfeaturebyid_invalid_id.xml | 4 +- .../wfs_200_exception_getfeaturebyid_nofeature.xml | 6 +- .../wfs_200_getfeature_resourceid_inexisting.xml | 12 + .../wfs_filter_intersects_empty_multipolygon.xml | 16 + .../wxs/expected/wfs_ogr_gpkg_issue_6325.xml | 36 + msautotest/wxs/expected/wfs_postgis_issue_6181.xml | 35 + .../wfs_postgis_issue_6181_startindex_1.xml | 35 + msautotest/wxs/expected/wfsogr10_bnazip.zip | Bin 339 -> 0 bytes msautotest/wxs/expected/wfsogr10_caps.xml | 2 +- msautotest/wxs/expected/wfsogr10_csvzip.zip | Bin 0 -> 426 bytes msautotest/wxs/expected/wfsogr11_caps.xml | 8 +- .../wxs/expected/wfsogr11_caps.xml.alternative | 8 +- .../wxs/expected/wfsogr_addfiles_onelayer.zip | Bin 907 -> 994 bytes .../wxs/expected/wms111_test_xml_escaping.xml | 1 + .../wxs/expected/wms130_test_xml_escaping.xml | 1 + msautotest/wxs/expected/wms_dimension_cap.xml | 1 + msautotest/wxs/expected/wms_dimension_cap130.xml | 1 + msautotest/wxs/expected/wms_empty_cap111.xml | 1 + msautotest/wxs/expected/wms_empty_cap130.xml | 1 + .../wxs/expected/wms_empty_cap_latestversion.xml | 1 + msautotest/wxs/expected/wms_filter_color_bind.png | Bin 0 -> 1922 bytes .../wms_get_capabilities_tileindexmixedsrs.xml | 1 + msautotest/wxs/expected/wms_inspire_cap.xml | 1 + msautotest/wxs/expected/wms_inspire_cap_111.xml | 1 + .../wxs/expected/wms_inspire_cap_111_eng.xml | 1 + .../wxs/expected/wms_inspire_cap_111_ger.xml | 1 + msautotest/wxs/expected/wms_inspire_cap_eng.xml | 1 + msautotest/wxs/expected/wms_inspire_cap_ger.xml | 1 + .../wxs/expected/wms_inspire_scenario1_cap130.xml | 1 + .../expected/wms_inspire_scenario1_cap130_eng.xml | 1 + .../expected/wms_inspire_scenario1_cap130_ger.xml | 1 + .../wxs/expected/wms_inspire_scenario2_cap111.xml | 1 + .../expected/wms_inspire_scenario2_cap111_eng.xml | 1 + .../expected/wms_inspire_scenario2_cap111_ger.xml | 1 + .../wxs/expected/wms_inspire_scenario2_cap130.xml | 1 + .../expected/wms_inspire_scenario2_cap130_eng.xml | 1 + .../expected/wms_inspire_scenario2_cap130_ger.xml | 1 + .../wxs/expected/wms_layer_groups_caps111.xml | 1 + msautotest/wxs/expected/wms_mvt.mvt | Bin 8454 -> 8466 bytes msautotest/wxs/expected/wms_mvt_xprotobuf.mvt | Bin 0 -> 8454 bytes .../wxs/expected/wms_north_polar_stereo_extent.xml | 1 + msautotest/wxs/expected/wms_nosld_cap.xml | 1 + msautotest/wxs/expected/wms_nosld_cap_postgis.xml | 1 + .../wxs/expected/wms_tiled_tiled_disabled.png | Bin 0 -> 8125 bytes .../wxs/expected/wms_tiled_tiled_enabled.png | Bin 0 -> 8396 bytes msautotest/wxs/ogr_connectionoptions.map | 1 - msautotest/wxs/ows_all.map | 15 +- msautotest/wxs/ows_disable.map | 1 - msautotest/wxs/ows_metadata.map | 16 +- msautotest/wxs/ows_sos.map | 8 +- msautotest/wxs/ows_test_xml_escaping.map | 7 +- msautotest/wxs/ows_wcs.map | 3 +- msautotest/wxs/ows_wfs.map | 7 +- msautotest/wxs/ows_wms.map | 26 +- msautotest/wxs/ows_wms_rootlayer_name.map | 24 +- msautotest/wxs/ows_wms_rootlayer_name_empty.map | 24 +- msautotest/wxs/sos.map | 8 +- msautotest/wxs/tomk_workshop.map | 11 +- msautotest/wxs/wcs_grib_input_output.map | 2 - msautotest/wxs/wcs_grib_output.map | 2 - msautotest/wxs/wcs_inspire_scenario1.map | 2 - msautotest/wxs/wcs_inspire_scenario2.map | 2 - msautotest/wxs/wcs_mask.map | 2 - msautotest/wxs/wcs_multi.map | 3 - msautotest/wxs/wcs_multiple_metadatalink.map | 2 - msautotest/wxs/wcs_post.map | 2 - msautotest/wxs/wcs_simple.map | 2 - .../wxs/wcs_simple_layer_specific_option.map | 2 - msautotest/wxs/wcs_tileindexmixedsrs.map | 1 - msautotest/wxs/wfs_200.map | 16 +- msautotest/wxs/wfs_200_inspire.map | 7 +- msautotest/wxs/wfs_200_inspire_missing_md.map | 7 +- msautotest/wxs/wfs_200_inspire_scenario1.map | 7 +- msautotest/wxs/wfs_200_low_wfsmaxfeatures.map | 7 +- ...ow_wfsmaxfeatures_no_compute_number_matched.map | 7 +- msautotest/wxs/wfs_alltypes.map | 1 - msautotest/wxs/wfs_combined_filter.map | 1 - msautotest/wxs/wfs_default_version_110.map | 7 +- msautotest/wxs/wfs_filter.map | 36 +- msautotest/wxs/wfs_filter_ogr.map | 16 +- msautotest/wxs/wfs_filter_postgis.map | 16 +- msautotest/wxs/wfs_filter_projmeter.map | 31 +- msautotest/wxs/wfs_group.map | 7 +- msautotest/wxs/wfs_misc.map | 31 +- msautotest/wxs/wfs_multi_geom_elements.map | 1 - msautotest/wxs/wfs_multiple_metadataurl.map | 7 +- msautotest/wxs/wfs_ogr.map | 29 +- msautotest/wxs/wfs_ogr_25d.map | 12 - msautotest/wxs/wfs_ogr_gpkg.map | 21 + msautotest/wxs/wfs_ogr_invalid_filename.map | 1 - msautotest/wxs/wfs_ogr_tileindex_of_shp.map | 2 - msautotest/wxs/wfs_ogr_tileindexmixedsrs.map | 2 - msautotest/wxs/wfs_optional_items.map | 7 +- msautotest/wxs/wfs_postgis_25d.map | 9 - msautotest/wxs/wfs_postgis_4f_precision.map | 2 - msautotest/wxs/wfs_postgis_paging.map | 62 + msautotest/wxs/wfs_shape_tileindex_of_shp.map | 2 - msautotest/wxs/wfs_shape_tileindexmixedsrs.map | 2 - msautotest/wxs/wfs_simple.map | 7 +- msautotest/wxs/wfs_simple_ogr.map | 7 +- msautotest/wxs/wms_filter.map | 30 +- msautotest/wxs/wms_filter_color_bind.map | 106 + msautotest/wxs/wms_grid_reproj_to_3857.map | 20 +- msautotest/wxs/wms_inspire_scenario1.map | 16 +- msautotest/wxs/wms_inspire_scenario2.map | 16 +- msautotest/wxs/wms_multiple_metadataurl.map | 8 +- msautotest/wxs/wms_mvt.map | 12 +- msautotest/wxs/wms_nosld.map | 24 +- msautotest/wxs/wms_nosld_postgis.map | 24 +- msautotest/wxs/wms_raster.map | 3 - msautotest/wxs/wms_simple.map | 8 +- msautotest/wxs/wms_simple_kml.map | 8 +- msautotest/wxs/wms_simple_postgis.map | 8 +- msautotest/wxs/wms_sld.map | 29 +- msautotest/wxs/wms_sld2.map | 26 +- msautotest/wxs/wms_sld_postgis.map | 31 +- msautotest/wxs/wms_sld_proj.map | 24 +- msautotest/wxs/wms_sld_validation.map | 29 +- msautotest/wxs/wms_tiled.map | 81 + msautotest/wxs/wms_tileindexmixedsrs.map | 1 - msautotest/wxs/wms_time1.map | 12 +- msautotest/wxs/wms_time1_postgis.map | 12 +- msautotest/wxs/wms_time2.map | 12 +- msautotest/wxs/wms_time2_postgis.map | 12 +- msautotest/wxs/wms_time_pattern.map | 124 +- msautotest/wxs/wms_time_pattern_12_13_test.map | 20 +- .../wxs/wms_time_pattern_12_13_test_postgis.map | 20 +- msautotest/wxs/wms_time_pattern_fail.map | 20 +- msautotest/wxs/wms_time_pattern_postgis.map | 124 +- print-test-results.sh | 2 +- renderers/agg/include/agg_arc.h | 4 +- renderers/agg/include/agg_basics.h | 4 +- renderers/agg/include/agg_bezier_arc.h | 2 +- renderers/agg/include/agg_color_rgba.h | 10 +- renderers/agg/include/agg_conv_adaptor_vcgen.h | 8 +- renderers/agg/include/agg_curves.h | 138 +- renderers/agg/include/agg_dda_line.h | 12 +- renderers/agg/include/agg_font_cache_manager.h | 4 +- renderers/agg/include/agg_image_accessors.h | 12 +- renderers/agg/include/agg_line_aa_basics.h | 12 +- renderers/agg/include/agg_path_storage.h | 6 + renderers/agg/include/agg_path_storage_integer.h | 4 +- renderers/agg/include/agg_pixfmt_rgba.h | 2 +- renderers/agg/include/agg_rasterizer_outline_aa.h | 11 +- renderers/agg/include/agg_rasterizer_scanline_aa.h | 2 +- renderers/agg/include/agg_rasterizer_sl_clip.h | 2 +- renderers/agg/include/agg_renderer_outline_image.h | 2 +- renderers/agg/include/agg_scanline_bin.h | 4 +- renderers/agg/include/agg_scanline_p.h | 2 +- renderers/agg/include/agg_scanline_storage_aa.h | 10 +- renderers/agg/include/agg_scanline_storage_bin.h | 10 +- renderers/agg/include/agg_scanline_u.h | 2 +- renderers/agg/include/agg_vcgen_contour.h | 2 +- renderers/agg/include/agg_vcgen_dash.h | 6 +- renderers/agg/include/agg_vcgen_stroke.h | 2 +- renderers/agg/include/agg_vertex_sequence.h | 11 +- renderers/agg/include/clipper.hpp | 6 +- renderers/agg/src/agg_font_freetype.cpp | 18 +- renderers/agg/src/agg_vcgen_contour.cpp | 3 + renderers/agg/src/agg_vcgen_dash.cpp | 1 + renderers/agg/src/agg_vcgen_stroke.cpp | 2 + renderers/agg/src/clipper.cpp | 20 +- scripts/cppcheck.sh | 373 + scripts/docker/Dockerfile | 1 - scripts/docker/Dockerfile_mapcache | 1 - scripts/docker/Dockerfile_oracle_mapcache | 1 - scripts/vagrant/packages.sh | 2 +- .../templates/html-bootstrap4/collection-item.html | 29 + .../html-bootstrap4/collection-items.html | 39 + .../templates/html-bootstrap4/collection.html | 64 + .../templates/html-bootstrap4/collections.html | 36 + .../templates/html-bootstrap4/conformance.html | 22 + share/ogcapi/templates/html-bootstrap4/debug.html | 14 + share/ogcapi/templates/html-bootstrap4/footer.html | 7 + share/ogcapi/templates/html-bootstrap4/header.html | 39 + .../ogcapi/templates/html-bootstrap4/landing.html | 22 + .../ogcapi/templates/html-bootstrap4/openapi.html | 40 + .../templates/html-plain/collection-item.html | 13 + .../templates/html-plain/collection-items.html | 29 + share/ogcapi/templates/html-plain/collection.html | 22 + share/ogcapi/templates/html-plain/collections.html | 26 + share/ogcapi/templates/html-plain/conformance.html | 14 + share/ogcapi/templates/html-plain/debug.html | 12 + share/ogcapi/templates/html-plain/footer.html | 3 + share/ogcapi/templates/html-plain/header.html | 7 + share/ogcapi/templates/html-plain/landing.html | 15 + share/ogcapi/templates/html-plain/openapi.html | 40 + shp2img.c | 19 +- shptree.c | 1 + shptreetst.c | 10 +- symbols/examples.map | 112 +- textlayout.c | 79 +- third-party/include_nlohmann_json.hpp | 41 + third-party/include_pantor_inja.hpp | 36 + third-party/nlohmann/json.hpp | 25533 +++++++++++++++++++ third-party/pantor/inja.hpp | 4441 ++++ uthash.h | 20 +- xmlmapfile/mapfile.xsd | 14 +- xmlmapfile/mapfile.xsl | 26 +- xmlmapfile/tests/layerset.xml | 1 - 576 files changed, 43851 insertions(+), 8643 deletions(-) create mode 100644 .github/workflows/build.yml create mode 100644 .github/workflows/coverity-scan.yml create mode 100644 .github/workflows/cppcheck.yml create mode 100755 .github/workflows/start.sh create mode 100644 SECURITY.md create mode 100644 idw.c create mode 100644 interpolation.c create mode 100644 mapogcapi.cpp create mode 100644 mapogcapi.h rename mapunion.c => mapunion.cpp (80%) create mode 100644 msautotest/api/data/mn_counties.dbf create mode 100644 msautotest/api/data/mn_counties.prj create mode 100644 msautotest/api/data/mn_counties.shp create mode 100644 msautotest/api/data/mn_counties.shx create mode 100644 msautotest/api/data/mn_major_rivers.dbf create mode 100644 msautotest/api/data/mn_major_rivers.prj create mode 100644 msautotest/api/data/mn_major_rivers.shp create mode 100644 msautotest/api/data/mn_major_rivers.shx create mode 100644 msautotest/api/data/mn_population_centers.dbf create mode 100644 msautotest/api/data/mn_population_centers.prj create mode 100644 msautotest/api/data/mn_population_centers.shp create mode 100644 msautotest/api/data/mn_population_centers.shx create mode 100644 msautotest/api/expected/conformance.json create mode 100644 msautotest/api/expected/ogcapi_api.json create mode 100644 msautotest/api/expected/ogcapi_collections.json create mode 100644 msautotest/api/expected/ogcapi_collections_mn_counties.json create mode 100644 msautotest/api/expected/ogcapi_collections_mn_counties_items.json create mode 100644 msautotest/api/expected/ogcapi_collections_mn_counties_items_by_id.json create mode 100644 msautotest/api/expected/ogcapi_collections_mn_counties_items_by_id_not_found.json.txt create mode 100644 msautotest/api/expected/ogcapi_collections_mn_counties_items_limit_1.json create mode 100644 msautotest/api/expected/ogcapi_collections_mn_counties_items_limit_1_offset_2.json create mode 100644 msautotest/api/expected/ogcapi_collections_mn_counties_items_limit_bbox_empty_result.json create mode 100644 msautotest/api/expected/ogcapi_collections_mn_counties_items_unknown_parameter.json.txt create mode 100644 msautotest/api/expected/ogcapi_root.html.txt create mode 100644 msautotest/api/expected/ogcapi_root.json create mode 100644 msautotest/api/expected/ogcapi_root.json.txt create mode 100644 msautotest/api/ogcapi.map create mode 100755 msautotest/api/run_test.py create mode 100644 msautotest/gdal/expected/idw.png create mode 100644 msautotest/gdal/idw.map create mode 100644 msautotest/misc/data/union/layer1.dbf create mode 100644 msautotest/misc/data/union/layer1.shp create mode 100644 msautotest/misc/data/union/layer1.shx create mode 100644 msautotest/misc/data/union/layer2.dbf create mode 100644 msautotest/misc/data/union/layer2.shp create mode 100644 msautotest/misc/data/union/layer2.shx create mode 100644 msautotest/misc/expected/line_offset_clipped_to_multiline.png create mode 100644 msautotest/misc/expected/union.png create mode 100644 msautotest/misc/line_offset_clipped_to_multiline.map create mode 100644 msautotest/misc/union.map create mode 100644 msautotest/msoracle/README.md create mode 100644 msautotest/msoracle/docker-compose.yaml create mode 100644 msautotest/msoracle/expected/oracle.png create mode 100644 msautotest/msoracle/oracle.map create mode 100644 msautotest/msoracle/run_test.py create mode 100644 msautotest/msoracle/sample-data.sql create mode 100644 msautotest/msoracle/tnsnames.ora create mode 100644 msautotest/mssql/cluster_mssql.map create mode 100644 msautotest/mssql/expected/cluster_mssql.png create mode 100644 msautotest/mssql/expected/cluster_mssql_getmetadata.xml create mode 100644 msautotest/renderers/expected/font-fail-missing-glyph.png create mode 100644 msautotest/wxs/data/test_6325.gpkg delete mode 100644 msautotest/wxs/expected/wfs_200_exception_getfeature_resourceid_inexisting.xml create mode 100644 msautotest/wxs/expected/wfs_200_getfeature_resourceid_inexisting.xml create mode 100644 msautotest/wxs/expected/wfs_filter_intersects_empty_multipolygon.xml create mode 100644 msautotest/wxs/expected/wfs_ogr_gpkg_issue_6325.xml create mode 100644 msautotest/wxs/expected/wfs_postgis_issue_6181.xml create mode 100644 msautotest/wxs/expected/wfs_postgis_issue_6181_startindex_1.xml delete mode 100644 msautotest/wxs/expected/wfsogr10_bnazip.zip create mode 100644 msautotest/wxs/expected/wfsogr10_csvzip.zip create mode 100644 msautotest/wxs/expected/wms_filter_color_bind.png create mode 100644 msautotest/wxs/expected/wms_mvt_xprotobuf.mvt create mode 100644 msautotest/wxs/expected/wms_tiled_tiled_disabled.png create mode 100644 msautotest/wxs/expected/wms_tiled_tiled_enabled.png create mode 100644 msautotest/wxs/wfs_postgis_paging.map create mode 100644 msautotest/wxs/wms_filter_color_bind.map create mode 100644 msautotest/wxs/wms_tiled.map create mode 100755 scripts/cppcheck.sh create mode 100644 share/ogcapi/templates/html-bootstrap4/collection-item.html create mode 100644 share/ogcapi/templates/html-bootstrap4/collection-items.html create mode 100644 share/ogcapi/templates/html-bootstrap4/collection.html create mode 100644 share/ogcapi/templates/html-bootstrap4/collections.html create mode 100644 share/ogcapi/templates/html-bootstrap4/conformance.html create mode 100644 share/ogcapi/templates/html-bootstrap4/debug.html create mode 100644 share/ogcapi/templates/html-bootstrap4/footer.html create mode 100644 share/ogcapi/templates/html-bootstrap4/header.html create mode 100644 share/ogcapi/templates/html-bootstrap4/landing.html create mode 100644 share/ogcapi/templates/html-bootstrap4/openapi.html create mode 100644 share/ogcapi/templates/html-plain/collection-item.html create mode 100644 share/ogcapi/templates/html-plain/collection-items.html create mode 100644 share/ogcapi/templates/html-plain/collection.html create mode 100644 share/ogcapi/templates/html-plain/collections.html create mode 100644 share/ogcapi/templates/html-plain/conformance.html create mode 100644 share/ogcapi/templates/html-plain/debug.html create mode 100644 share/ogcapi/templates/html-plain/footer.html create mode 100644 share/ogcapi/templates/html-plain/header.html create mode 100644 share/ogcapi/templates/html-plain/landing.html create mode 100644 share/ogcapi/templates/html-plain/openapi.html create mode 100644 third-party/include_nlohmann_json.hpp create mode 100644 third-party/include_pantor_inja.hpp create mode 100644 third-party/nlohmann/json.hpp create mode 100644 third-party/pantor/inja.hpp git reset --hard HEAD HEAD is now at 4d7e1a1c Merge pull request #6380 from gisspace/main git log --pretty=format:%H -n 1 > E:\builds\release-1911-x64\doc\ms_revision.txt type E:\builds\release-1911-x64\doc\ms_revision.txt 4d7e1a1c6b3654a33c9c927d5623f5466fb2942f cd E:\builds cd ..\sdk\vc15x64\gdal\gdal git reset --hard HEAD HEAD is now at b3582884ea Merge pull request #3417 from Laixer/master git fetch git checkout master Your branch is behind 'origin/master' by 1359 commits, and can be fast-forwarded. (use "git pull" to update your local branch) git pull origin master Updating b3582884ea..244a4dc52c Fast-forward .github/LICENSE.TXT | 1 + .github/workflows/android.yml | 8 +- .github/workflows/asan/start.sh | 5 +- .github/workflows/asan_build.yml | 8 +- .github/workflows/backport.yml | 18 + .github/workflows/clang_static_analyzer.yml | 33 +- .github/workflows/code_checks.yml | 40 +- .github/workflows/conda.yml | 9 +- .github/workflows/fedora_rawhide.yml | 31 + .github/workflows/fedora_rawhide/start.sh | 81 + .github/workflows/macos.yml | 9 +- .github/workflows/mingw_w64.yml | 9 +- .github/workflows/mingw_w64/install-python.sh | 2 +- .github/workflows/ubuntu_18.04.yml | 9 +- .github/workflows/ubuntu_18.04/before_install.sh | 2 +- .github/workflows/ubuntu_18.04/install.sh | 10 +- .github/workflows/ubuntu_18.04_32bit.yml | 9 +- .github/workflows/ubuntu_18.04_32bit/start.sh | 12 +- .github/workflows/ubuntu_20.04.yml | 30 +- .github/workflows/ubuntu_20.04/build-deps.sh | 60 +- .github/workflows/ubuntu_20.04/build.sh | 23 +- .github/workflows/validate_xml.yml | 9 +- .github/workflows/windows_build.yml | 35 +- .travis.yml | 21 +- CONTRIBUTING.md | 7 +- GOVERNANCE.md | 4 + README.md | 29 +- SECURITY.md | 18 + appveyor.yml | 6 + .../alg/data/geoloc/latitude_including_pole.tif | Bin 0 -> 26188 bytes .../alg/data/geoloc/longitude_including_pole.tif | Bin 0 -> 80869 bytes autotest/alg/data/polygonize_check_area.tif | Bin 0 -> 76008 bytes autotest/alg/data/polygonize_in_3.grd | 9 + autotest/alg/data/polygonize_in_4.grd | 10 + autotest/alg/data/utmsmall_ds_rms.vrt | 2 +- autotest/alg/data/utmsmall_rms.vrt | 2 +- autotest/alg/data/utmsmall_rms_float.vrt | 2 +- autotest/alg/polygonize.py | 134 + autotest/alg/transformgeoloc.py | 14 +- autotest/alg/warp.py | 15 +- autotest/conftest.py | 7 +- autotest/cpp/bug1488.cpp | 2 +- autotest/cpp/data/test_aux.db | Bin 0 -> 12288 bytes autotest/cpp/test_cpl.cpp | 407 +- autotest/cpp/test_gdal.cpp | 175 +- autotest/cpp/test_ogr.cpp | 324 +- autotest/cpp/test_osr.cpp | 28 +- autotest/cpp/test_osr_ct.cpp | 220 + autotest/cpp/test_osr_set_proj_search_paths.cpp | 37 + autotest/cpp/testclosedondestroydm.cpp | 1 + autotest/gcore/basic_test.py | 166 +- autotest/gcore/cog.py | 48 +- .../data/gtiff/compdcrs_without_gtcitation.tif | Bin 0 -> 832 bytes autotest/gcore/data/pixfun_pow.vrt | 14 + autotest/gcore/geoloc.py | 66 +- autotest/gcore/hfa_rfc40.py | 47 +- autotest/gcore/misc.py | 16 +- autotest/gcore/multidim.py | 372 ++ autotest/gcore/numpy_rw.py | 163 +- autotest/gcore/numpy_rw_multidim.py | 39 +- autotest/gcore/overviewds.py | 43 +- autotest/gcore/pam.py | 23 +- autotest/gcore/pixfun.py | 203 +- autotest/gcore/rasterio.py | 258 +- autotest/gcore/rat.py | 45 +- autotest/gcore/test_driver_metadata.py | 15 +- autotest/gcore/testnonboundtoswig.py | 19 +- autotest/gcore/thread_test.py | 9 +- autotest/gcore/tiff_ovr.py | 134 +- autotest/gcore/tiff_read.py | 127 +- autotest/gcore/tiff_srs.py | 45 +- autotest/gcore/tiff_write.py | 106 +- autotest/gcore/virtualmem.py | 45 +- autotest/gcore/vrt_read.py | 92 +- autotest/gcore/vrtmisc.py | 16 + autotest/gcore/vsiaz.py | 358 +- autotest/gcore/vsiaz_real_instance_auto.py | 202 + autotest/gcore/vsiaz_real_instance_manual.py | 190 + autotest/gcore/vsicrypt.py | 8 +- autotest/gcore/vsicurl.py | 126 +- autotest/gcore/vsifile.py | 16 +- autotest/gcore/vsigs.py | 370 +- autotest/gcore/vsis3.py | 186 +- autotest/gcore/vsiswift.py | 122 + autotest/gdrivers/bag.py | 46 +- autotest/gdrivers/daas.py | 100 + autotest/gdrivers/data/e00grid/fake_e00grid.e00 | 32 - .../data/e00grid/fake_e00grid_compressed.e00 | 11 - .../data/grib/one_value_and_nodata_points.grb2 | Bin 0 -> 253 bytes .../ignfheightasciigrid/ignfheightasciigrid.gra | 9 - .../ignfheightasciigrid_ar1.mnt | 7 - .../ignfheightasciigrid_ar1_nocoords.mnt | 7 - .../ignfheightasciigrid_ar1_nocoords_noprec.mnt | 2 - .../ignfheightasciigrid_ar1_noprec.mnt | 7 - .../ignfheightasciigrid_ar2.mnt | 7 - .../ignfheightasciigrid_ar3.mnt | 7 - .../ignfheightasciigrid_ar4.mnt | 7 - autotest/gdrivers/data/isce/isce.slc.xml | 2 +- .../data/kml/small_world_in_document_pct.kml | 19 + autotest/gdrivers/data/netcdf/MODIS_ARRAY.nc | Bin 0 -> 584 bytes autotest/gdrivers/data/netcdf/fake_ISO_METADATA.nc | Bin 0 -> 7390 bytes autotest/gdrivers/data/netcdf/sentinel5p_fake.nc | Bin 0 -> 66968 bytes autotest/gdrivers/data/nitf/sar_sicd.ntf | Bin 0 -> 7955 bytes autotest/gdrivers/data/ntv1/ntv1_can_truncated.dat | Bin 256 -> 0 bytes .../gdrivers/data/sar_ceos/R1_26161_FN1_F164.D | Bin 0 -> 33536 bytes .../gdrivers/data/sar_ceos/R1_26161_FN1_F164.L | Bin 0 -> 28809 bytes autotest/gdrivers/data/sar_ceos/ottawa_patch.img | Bin 0 -> 32504 bytes .../gdrivers/data/stacit/overlapping_sources.json | 151 + autotest/gdrivers/data/stacit/test.json | 66 + .../gdrivers/data/stacit/test_multiple_assets.json | 166 + autotest/gdrivers/data/stacit/test_page2.json | 55 + .../gdrivers/data/zarr/array_attrs.zarr/.zarray | 10 + .../gdrivers/data/zarr/array_attrs.zarr/.zattrs | 15 + .../data/zarr/array_dimensions.zarr/.zgroup | 3 + .../data/zarr/array_dimensions.zarr/.zmetadata | 63 + .../data/zarr/array_dimensions.zarr/lat/.zarray | 14 + .../data/zarr/array_dimensions.zarr/lat/.zattrs | 5 + .../data/zarr/array_dimensions.zarr/lon/.zarray | 14 + .../data/zarr/array_dimensions.zarr/lon/.zattrs | 5 + .../data/zarr/array_dimensions.zarr/var/.zarray | 14 + .../data/zarr/array_dimensions.zarr/var/.zattrs | 3 + autotest/gdrivers/data/zarr/blosc.zarr/.zarray | 20 + autotest/gdrivers/data/zarr/blosc.zarr/0 | Bin 0 -> 18 bytes .../data/zarr/compound_complex.zarr/.zarray | 48 + .../gdrivers/data/zarr/compound_complex.zarr/0 | 1 + .../data/zarr/compound_not_aligned.zarr/.zarray | 27 + .../gdrivers/data/zarr/compound_not_aligned.zarr/0 | 1 + .../data/zarr/compound_well_aligned.zarr/.zarray | 23 + .../data/zarr/compound_well_aligned.zarr/0 | 1 + .../data/zarr/delta_filter_i4.zarr/.zarray | 17 + autotest/gdrivers/data/zarr/delta_filter_i4.zarr/0 | Bin 0 -> 27 bytes autotest/gdrivers/data/zarr/empty.zarr/.zarray | 10 + autotest/gdrivers/data/zarr/empty.zarr/0 | 1 + autotest/gdrivers/data/zarr/f2_be.zarr/.zarray | 14 + autotest/gdrivers/data/zarr/f2_be.zarr/0 | Bin 0 -> 4 bytes autotest/gdrivers/data/zarr/f2_le.zarr/.zarray | 14 + autotest/gdrivers/data/zarr/f2_le.zarr/0 | Bin 0 -> 4 bytes autotest/gdrivers/data/zarr/generate_test_files.py | 115 + autotest/gdrivers/data/zarr/group.zarr/.zattrs | 3 + autotest/gdrivers/data/zarr/group.zarr/.zgroup | 3 + autotest/gdrivers/data/zarr/group.zarr/foo/.zgroup | 3 + .../gdrivers/data/zarr/group.zarr/foo/bar/.zgroup | 3 + .../data/zarr/group.zarr/foo/bar/baz/.zarray | 14 + .../gdrivers/data/zarr/group.zarr/foo/bar/baz/0 | Bin 0 -> 4 bytes .../data/zarr/group_with_zmetadata.zarr/.zattrs | 3 + .../data/zarr/group_with_zmetadata.zarr/.zgroup | 3 + .../data/zarr/group_with_zmetadata.zarr/.zmetadata | 40 + .../zarr/group_with_zmetadata.zarr/foo/.zgroup | 3 + .../zarr/group_with_zmetadata.zarr/foo/bar/.zattrs | 3 + .../zarr/group_with_zmetadata.zarr/foo/bar/.zgroup | 3 + .../group_with_zmetadata.zarr/foo/bar/baz/.zarray | 14 + .../group_with_zmetadata.zarr/foo/bar/baz/.zattrs | 3 + .../zarr/group_with_zmetadata.zarr/foo/bar/baz/0 | Bin 0 -> 4 bytes autotest/gdrivers/data/zarr/gzip.zarr/.zarray | 17 + autotest/gdrivers/data/zarr/gzip.zarr/0 | Bin 0 -> 22 bytes autotest/gdrivers/data/zarr/lz4.zarr/.zarray | 17 + autotest/gdrivers/data/zarr/lz4.zarr/0 | Bin 0 -> 7 bytes autotest/gdrivers/data/zarr/lzma.zarr/.zarray | 20 + autotest/gdrivers/data/zarr/lzma.zarr/0 | Bin 0 -> 60 bytes .../data/zarr/lzma_with_filters.zarr/.zarray | 29 + .../gdrivers/data/zarr/lzma_with_filters.zarr/0 | Bin 0 -> 60 bytes .../gdrivers/data/zarr/order_f_s3.zarr/.zarray | 16 + autotest/gdrivers/data/zarr/order_f_s3.zarr/0.0 | 1 + autotest/gdrivers/data/zarr/order_f_s3.zarr/0.1 | Bin 0 -> 18 bytes autotest/gdrivers/data/zarr/order_f_s3.zarr/1.0 | 1 + autotest/gdrivers/data/zarr/order_f_s3.zarr/1.1 | Bin 0 -> 18 bytes .../gdrivers/data/zarr/order_f_u1.zarr/.zarray | 16 + autotest/gdrivers/data/zarr/order_f_u1.zarr/0.0 | Bin 0 -> 6 bytes autotest/gdrivers/data/zarr/order_f_u1.zarr/0.1 | Bin 0 -> 6 bytes autotest/gdrivers/data/zarr/order_f_u1.zarr/1.0 | 2 + autotest/gdrivers/data/zarr/order_f_u1.zarr/1.1 | Bin 0 -> 6 bytes .../gdrivers/data/zarr/order_f_u1_3d.zarr/.zarray | 18 + .../gdrivers/data/zarr/order_f_u1_3d.zarr/0.0.0 | Bin 0 -> 24 bytes .../gdrivers/data/zarr/order_f_u2.zarr/.zarray | 16 + autotest/gdrivers/data/zarr/order_f_u2.zarr/0.0 | Bin 0 -> 12 bytes autotest/gdrivers/data/zarr/order_f_u2.zarr/0.1 | Bin 0 -> 12 bytes autotest/gdrivers/data/zarr/order_f_u2.zarr/1.0 | Bin 0 -> 12 bytes autotest/gdrivers/data/zarr/order_f_u2.zarr/1.1 | Bin 0 -> 12 bytes .../gdrivers/data/zarr/order_f_u4.zarr/.zarray | 16 + autotest/gdrivers/data/zarr/order_f_u4.zarr/0.0 | Bin 0 -> 24 bytes autotest/gdrivers/data/zarr/order_f_u4.zarr/0.1 | Bin 0 -> 24 bytes autotest/gdrivers/data/zarr/order_f_u4.zarr/1.0 | Bin 0 -> 24 bytes autotest/gdrivers/data/zarr/order_f_u4.zarr/1.1 | Bin 0 -> 24 bytes .../gdrivers/data/zarr/order_f_u8.zarr/.zarray | 16 + autotest/gdrivers/data/zarr/order_f_u8.zarr/0.0 | Bin 0 -> 48 bytes autotest/gdrivers/data/zarr/order_f_u8.zarr/0.1 | Bin 0 -> 48 bytes autotest/gdrivers/data/zarr/order_f_u8.zarr/1.0 | Bin 0 -> 48 bytes autotest/gdrivers/data/zarr/order_f_u8.zarr/1.1 | Bin 0 -> 48 bytes .../gdrivers/data/zarr/v3/test.zr3/data/root/ar/c0 | Bin 0 -> 22 bytes .../gdrivers/data/zarr/v3/test.zr3/data/root/c0/0 | Bin 0 -> 40 bytes .../gdrivers/data/zarr/v3/test.zr3/data/root/c0/1 | Bin 0 -> 40 bytes .../gdrivers/data/zarr/v3/test.zr3/data/root/c1/0 | Bin 0 -> 40 bytes .../gdrivers/data/zarr/v3/test.zr3/data/root/c1/1 | Bin 0 -> 40 bytes .../gdrivers/data/zarr/v3/test.zr3/data/root/c2/0 | Bin 0 -> 40 bytes .../gdrivers/data/zarr/v3/test.zr3/data/root/c2/1 | Bin 0 -> 40 bytes .../zarr/v3/test.zr3/data/root/marvin/android/c0/0 | 1 + .../zarr/v3/test.zr3/data/root/marvin/android/c0/1 | 1 + .../zarr/v3/test.zr3/data/root/marvin/android/c1/0 | 1 + .../zarr/v3/test.zr3/data/root/marvin/android/c1/1 | 1 + .../zarr/v3/test.zr3/data/root/marvin/android/c2/0 | 1 + .../zarr/v3/test.zr3/data/root/marvin/android/c2/1 | 1 + .../zarr/v3/test.zr3/data/root/marvin/android/c3/0 | 1 + .../zarr/v3/test.zr3/data/root/marvin/android/c3/1 | 1 + .../data/zarr/v3/test.zr3/meta/root.array.json | 19 + .../data/zarr/v3/test.zr3/meta/root.group.json | 4 + .../data/zarr/v3/test.zr3/meta/root/ar.array.json | 23 + .../zarr/v3/test.zr3/meta/root/marvin.group.json | 4 + .../test.zr3/meta/root/marvin/android.array.json | 19 + .../test.zr3/meta/root/marvin/paranoid.group.json | 4 + autotest/gdrivers/data/zarr/v3/test.zr3/zarr.json | 6 + autotest/gdrivers/data/zarr/zlib.zarr/.zarray | 17 + autotest/gdrivers/data/zarr/zlib.zarr/0 | Bin 0 -> 10 bytes autotest/gdrivers/data/zarr/zstd.zarr/.zarray | 17 + autotest/gdrivers/data/zarr/zstd.zarr/0 | Bin 0 -> 11 bytes autotest/gdrivers/derived.py | 9 + autotest/gdrivers/e00grid.py | 123 - autotest/gdrivers/ecw.py | 12 +- autotest/gdrivers/eedai.py | 6 +- autotest/gdrivers/envi.py | 57 +- autotest/gdrivers/genbin.py | 15 +- autotest/gdrivers/gpkg.py | 40 +- autotest/gdrivers/grib.py | 121 +- autotest/gdrivers/hdf5multidim.py | 5 +- autotest/gdrivers/ignfheightasciigrid.py | 199 - autotest/gdrivers/jp2kak.py | 8 +- autotest/gdrivers/jp2lura.py | 12 +- autotest/gdrivers/jp2openjpeg.py | 76 +- autotest/gdrivers/jpeg.py | 49 +- autotest/gdrivers/kmlsuperoverlay.py | 21 +- autotest/gdrivers/lcp.py | 16 +- autotest/gdrivers/mem.py | 8 +- autotest/gdrivers/memmultidim.py | 62 +- autotest/gdrivers/mrf.py | 50 +- autotest/gdrivers/mrsid.py | 26 +- autotest/gdrivers/netcdf.py | 346 +- autotest/gdrivers/netcdf_multidim.py | 195 +- autotest/gdrivers/ngw.py | 18 +- autotest/gdrivers/nitf.py | 320 +- autotest/gdrivers/pds4.py | 30 +- autotest/gdrivers/rda.py | 23 +- autotest/gdrivers/rmf.py | 5 +- autotest/gdrivers/sar_ceos.py | 21 +- autotest/gdrivers/sentinel2.py | 39 +- autotest/gdrivers/stacit.py | 146 + autotest/gdrivers/tiledb_write.py | 10 +- autotest/gdrivers/vrtderived.py | 30 +- autotest/gdrivers/vrtmask.py | 8 +- autotest/gdrivers/vrtwarp.py | 5 +- autotest/gdrivers/wcs.py | 37 +- autotest/gdrivers/webp.py | 23 + autotest/gdrivers/wms.py | 242 +- autotest/gdrivers/zarr_driver.py | 2069 ++++++++++ autotest/ogr/data/bna/test.bna | 119 - autotest/ogr/data/dxf/additional-entities.dxf | 4 + autotest/ogr/data/dxf/block-hidden-entities.dxf | 454 +++ autotest/ogr/data/dxf/leader-mleader.dxf | 2 +- .../filegdb/Domains.gdb/a00000001.TablesByName.atx | Bin 0 -> 4118 bytes .../data/filegdb/Domains.gdb/a00000001.gdbindexes | Bin 0 -> 110 bytes .../data/filegdb/Domains.gdb/a00000001.gdbtable | Bin 0 -> 316 bytes .../data/filegdb/Domains.gdb/a00000001.gdbtablx | Bin 0 -> 5152 bytes .../data/filegdb/Domains.gdb/a00000002.gdbtable | Bin 0 -> 1456 bytes .../data/filegdb/Domains.gdb/a00000002.gdbtablx | Bin 0 -> 5152 bytes .../data/filegdb/Domains.gdb/a00000003.gdbindexes | Bin 0 -> 42 bytes .../data/filegdb/Domains.gdb/a00000003.gdbtable | Bin 0 -> 1015 bytes .../data/filegdb/Domains.gdb/a00000003.gdbtablx | Bin 0 -> 5152 bytes .../a00000004.CatItemsByPhysicalName.atx | Bin 0 -> 4118 bytes .../Domains.gdb/a00000004.CatItemsByType.atx | Bin 0 -> 4118 bytes .../filegdb/Domains.gdb/a00000004.FDO_UUID.atx | Bin 0 -> 4118 bytes .../data/filegdb/Domains.gdb/a00000004.freelist | Bin 0 -> 20824 bytes .../data/filegdb/Domains.gdb/a00000004.gdbindexes | Bin 0 -> 310 bytes .../data/filegdb/Domains.gdb/a00000004.gdbtable | Bin 0 -> 14982 bytes .../data/filegdb/Domains.gdb/a00000004.gdbtablx | Bin 0 -> 5152 bytes .../ogr/data/filegdb/Domains.gdb/a00000004.spx | Bin 0 -> 4118 bytes .../a00000005.CatRelsByDestinationID.atx | Bin 0 -> 4118 bytes .../Domains.gdb/a00000005.CatRelsByOriginID.atx | Bin 0 -> 4118 bytes .../Domains.gdb/a00000005.CatRelsByType.atx | Bin 0 -> 4118 bytes .../filegdb/Domains.gdb/a00000005.FDO_UUID.atx | Bin 0 -> 4118 bytes .../data/filegdb/Domains.gdb/a00000005.gdbindexes | Bin 0 -> 318 bytes .../data/filegdb/Domains.gdb/a00000005.gdbtable | Bin 0 -> 482 bytes .../data/filegdb/Domains.gdb/a00000005.gdbtablx | Bin 0 -> 5152 bytes .../a00000006.CatRelTypesByBackwardLabel.atx | Bin 0 -> 4118 bytes .../a00000006.CatRelTypesByDestItemTypeID.atx | Bin 0 -> 4118 bytes .../a00000006.CatRelTypesByForwardLabel.atx | Bin 0 -> 4118 bytes .../Domains.gdb/a00000006.CatRelTypesByName.atx | Bin 0 -> 4118 bytes .../a00000006.CatRelTypesByOriginItemTypeID.atx | Bin 0 -> 4118 bytes .../Domains.gdb/a00000006.CatRelTypesByUUID.atx | Bin 0 -> 4118 bytes .../data/filegdb/Domains.gdb/a00000006.gdbindexes | Bin 0 -> 602 bytes .../data/filegdb/Domains.gdb/a00000006.gdbtable | Bin 0 -> 2263 bytes .../data/filegdb/Domains.gdb/a00000006.gdbtablx | Bin 0 -> 5152 bytes .../Domains.gdb/a00000007.CatItemTypesByName.atx | Bin 0 -> 12310 bytes .../a00000007.CatItemTypesByParentTypeID.atx | Bin 0 -> 4118 bytes .../Domains.gdb/a00000007.CatItemTypesByUUID.atx | Bin 0 -> 4118 bytes .../data/filegdb/Domains.gdb/a00000007.gdbindexes | Bin 0 -> 296 bytes .../data/filegdb/Domains.gdb/a00000007.gdbtable | Bin 0 -> 1705 bytes .../data/filegdb/Domains.gdb/a00000007.gdbtablx | Bin 0 -> 5152 bytes .../data/filegdb/Domains.gdb/a0000000a.gdbindexes | Bin 0 -> 116 bytes .../data/filegdb/Domains.gdb/a0000000a.gdbtable | Bin 0 -> 1149 bytes .../data/filegdb/Domains.gdb/a0000000a.gdbtablx | Bin 0 -> 32 bytes .../ogr/data/filegdb/Domains.gdb/a0000000a.spx | Bin 0 -> 4118 bytes autotest/ogr/data/filegdb/Domains.gdb/gdb | Bin 0 -> 4 bytes autotest/ogr/data/filegdb/Domains.gdb/timestamps | 1 + .../featuredataset.gdb/a00000001.TablesByName.atx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a00000001.gdbindexes | Bin 0 -> 110 bytes .../filegdb/featuredataset.gdb/a00000001.gdbtable | Bin 0 -> 375 bytes .../filegdb/featuredataset.gdb/a00000001.gdbtablx | Bin 0 -> 5152 bytes .../filegdb/featuredataset.gdb/a00000002.gdbtable | Bin 0 -> 2059 bytes .../filegdb/featuredataset.gdb/a00000002.gdbtablx | Bin 0 -> 5152 bytes .../featuredataset.gdb/a00000003.gdbindexes | Bin 0 -> 42 bytes .../filegdb/featuredataset.gdb/a00000003.gdbtable | Bin 0 -> 1738 bytes .../filegdb/featuredataset.gdb/a00000003.gdbtablx | Bin 0 -> 5152 bytes .../a00000004.CatItemsByPhysicalName.atx | Bin 0 -> 4118 bytes .../a00000004.CatItemsByType.atx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a00000004.FDO_UUID.atx | Bin 0 -> 4118 bytes .../filegdb/featuredataset.gdb/a00000004.freelist | Bin 0 -> 4440 bytes .../featuredataset.gdb/a00000004.gdbindexes | Bin 0 -> 310 bytes .../filegdb/featuredataset.gdb/a00000004.gdbtable | Bin 0 -> 12703 bytes .../filegdb/featuredataset.gdb/a00000004.gdbtablx | Bin 0 -> 5152 bytes .../data/filegdb/featuredataset.gdb/a00000004.spx | Bin 0 -> 4118 bytes .../a00000005.CatItemTypesByName.atx | Bin 0 -> 12310 bytes .../a00000005.CatItemTypesByParentTypeID.atx | Bin 0 -> 4118 bytes .../a00000005.CatItemTypesByUUID.atx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a00000005.gdbindexes | Bin 0 -> 296 bytes .../filegdb/featuredataset.gdb/a00000005.gdbtable | Bin 0 -> 1709 bytes .../filegdb/featuredataset.gdb/a00000005.gdbtablx | Bin 0 -> 5152 bytes .../a00000006.CatRelsByDestinationID.atx | Bin 0 -> 4118 bytes .../a00000006.CatRelsByOriginID.atx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a00000006.CatRelsByType.atx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a00000006.FDO_UUID.atx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a00000006.gdbindexes | Bin 0 -> 318 bytes .../filegdb/featuredataset.gdb/a00000006.gdbtable | Bin 0 -> 632 bytes .../filegdb/featuredataset.gdb/a00000006.gdbtablx | Bin 0 -> 5152 bytes .../a00000007.CatRelTypesByBackwardLabel.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByDestItemTypeID.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByForwardLabel.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByName.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByOriginItemTypeID.atx | Bin 0 -> 4118 bytes .../a00000007.CatRelTypesByUUID.atx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a00000007.gdbindexes | Bin 0 -> 602 bytes .../filegdb/featuredataset.gdb/a00000007.gdbtable | Bin 0 -> 2267 bytes .../filegdb/featuredataset.gdb/a00000007.gdbtablx | Bin 0 -> 5152 bytes .../featuredataset.gdb/a00000009.gdbindexes | Bin 0 -> 116 bytes .../filegdb/featuredataset.gdb/a00000009.gdbtable | Bin 0 -> 512 bytes .../filegdb/featuredataset.gdb/a00000009.gdbtablx | Bin 0 -> 32 bytes .../data/filegdb/featuredataset.gdb/a00000009.spx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a0000000a.gdbindexes | Bin 0 -> 116 bytes .../filegdb/featuredataset.gdb/a0000000a.gdbtable | Bin 0 -> 512 bytes .../filegdb/featuredataset.gdb/a0000000a.gdbtablx | Bin 0 -> 32 bytes .../data/filegdb/featuredataset.gdb/a0000000a.spx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a0000000b.gdbindexes | Bin 0 -> 116 bytes .../filegdb/featuredataset.gdb/a0000000b.gdbtable | Bin 0 -> 1022 bytes .../filegdb/featuredataset.gdb/a0000000b.gdbtablx | Bin 0 -> 32 bytes .../data/filegdb/featuredataset.gdb/a0000000b.spx | Bin 0 -> 4118 bytes .../featuredataset.gdb/a0000000c.gdbindexes | Bin 0 -> 116 bytes .../filegdb/featuredataset.gdb/a0000000c.gdbtable | Bin 0 -> 1022 bytes .../filegdb/featuredataset.gdb/a0000000c.gdbtablx | Bin 0 -> 32 bytes .../data/filegdb/featuredataset.gdb/a0000000c.spx | Bin 0 -> 4118 bytes autotest/ogr/data/filegdb/featuredataset.gdb/gdb | Bin 0 -> 8 bytes .../ogr/data/filegdb/featuredataset.gdb/timestamps | 1 + .../test_ogr_flatgeobuf_coordinate_epoch.fgb | Bin 0 -> 544 bytes autotest/ogr/data/gml/expected_gml_21.xsd | 4 +- autotest/ogr/data/gml/expected_gml_21_deegree3.xsd | 2 +- autotest/ogr/data/gml/expected_gml_gml32.xsd | 4 +- autotest/ogr/data/gpkg/domains.gpkg | Bin 0 -> 122880 bytes autotest/ogr/data/gpx/bna_for_gpx.bna | 4 - autotest/ogr/data/gpx/csv_for_gpx.csv | 3 + autotest/ogr/data/htf/test.htf | 130 - autotest/ogr/data/kml/non_conformant_multi.kml | 16 + autotest/ogr/data/lvbag/archive_single.zip | Bin 0 -> 29323 bytes autotest/ogr/data/lvbag/file4.vbo | 73 + autotest/ogr/data/lvbag/inval_polygon2.xml | 200 + autotest/ogr/data/mdb/null_memo.mdb | Bin 0 -> 286720 bytes autotest/ogr/data/mitab/all_geoms.mif.golden.csv | 26 +- autotest/ogr/data/openair/openair_test.txt | 40 - autotest/ogr/data/segukooa/test.ukooa | 16 - autotest/ogr/data/segy/ascii-header-with-nuls.sgy | Bin 28176 -> 0 bytes autotest/ogr/data/segy/testsegy.segy | Bin 3840 -> 0 bytes autotest/ogr/data/shp/pointnan.dbf | Bin 0 -> 116 bytes autotest/ogr/data/shp/pointnan.shp | Bin 0 -> 156 bytes autotest/ogr/data/shp/pointnan.shx | Bin 0 -> 116 bytes autotest/ogr/data/sua/za.sua | 83 - .../data/xlsx/cells_with_inline_formatting.xlsx | Bin 0 -> 10419 bytes autotest/ogr/data/xplane/apt.dat | 1283 ------ autotest/ogr/data/xplane/apt810/apt.dat | 101 - autotest/ogr/data/xplane/awy.dat | 14 - autotest/ogr/data/xplane/fix.dat | 5 - autotest/ogr/data/xplane/nav.dat | 30 - autotest/ogr/ogr_bna.py | 224 -- autotest/ogr/ogr_csv.py | 14 +- autotest/ogr/ogr_dxf.py | 20 +- autotest/ogr/ogr_fgdb.py | 120 +- autotest/ogr/ogr_fielddomain.py | 143 + autotest/ogr/ogr_flatgeobuf.py | 107 + autotest/ogr/ogr_geojson.py | 13 +- autotest/ogr/ogr_geom.py | 62 +- autotest/ogr/ogr_geos.py | 18 + autotest/ogr/ogr_gml_geom.py | 50 +- autotest/ogr/ogr_gml_read.py | 105 +- autotest/ogr/ogr_gpkg.py | 844 +++- autotest/ogr/ogr_gpx.py | 4 +- autotest/ogr/ogr_htf.py | 103 - autotest/ogr/ogr_kml.py | 35 +- autotest/ogr/ogr_libkml.py | 45 +- autotest/ogr/ogr_lvbag.py | 72 +- autotest/ogr/ogr_mem.py | 21 +- autotest/ogr/ogr_mitab.py | 6 +- autotest/ogr/ogr_mvt.py | 39 +- autotest/ogr/ogr_ngw.py | 82 +- autotest/ogr/ogr_oapif.py | 68 +- autotest/ogr/ogr_odbc.py | 56 +- autotest/ogr/ogr_openair.py | 73 - autotest/ogr/ogr_openfilegdb.py | 103 +- autotest/ogr/ogr_pg.py | 2 +- autotest/ogr/ogr_plscenes.py | 9 +- autotest/ogr/ogr_segukooa.py | 188 - autotest/ogr/ogr_segy.py | 98 - autotest/ogr/ogr_shape.py | 206 +- autotest/ogr/ogr_sql_rfc28.py | 120 +- autotest/ogr/ogr_sql_test.py | 4 +- autotest/ogr/ogr_sqlite.py | 58 +- autotest/ogr/ogr_sua.py | 66 - autotest/ogr/ogr_vrt.py | 2 +- autotest/ogr/ogr_wfs.py | 32 +- autotest/ogr/ogr_wkbwkt_geom.py | 17 +- autotest/ogr/ogr_xlsx.py | 18 +- autotest/ogr/ogr_xplane.py | 191 - autotest/osr/osr_basic.py | 168 +- .../ntv1.py => osr/osr_basic_subprocess.py} | 41 +- autotest/osr/osr_ct.py | 120 +- autotest/osr/osr_ct_proj.py | 3 +- autotest/osr/osr_epsg.py | 25 +- autotest/osr/osr_metacrs.py | 3 +- autotest/osr/osr_pci.py | 4 +- autotest/osr/osr_url.py | 25 +- autotest/osr/osr_usgs.py | 4 +- autotest/pymod/ogrtest.py | 19 + autotest/pymod/test_py_scripts.py | 22 +- .../tests => autotest/pyscripts}/data/warped.vrt | 0 .../pyscripts}/data/warped_grey.vrt | 0 .../pyscripts}/data/warped_rgb.vrt | 0 .../pyscripts/gdal2tiles}/__init__.py | 0 .../test_add_alpha_band_to_string_vrt.py | 33 +- .../test_add_gdal_warp_options_to_string.py | 71 + .../pyscripts/gdal2tiles/test_nb_data_bands.py | 74 + .../pyscripts}/gdal2tiles/test_option_parser.py | 48 +- .../gdal2tiles/test_reproject_dataset.py | 35 +- .../pyscripts}/gdal2tiles/test_setup_input_srs.py | 39 +- .../gdal2tiles/test_setup_no_data_value.py | 33 +- ...test_update_alpha_value_for_non_alpha_inputs.py | 60 + autotest/pyscripts/test_gdal2xyz.py | 83 + autotest/pyscripts/test_gdal_calc.py | 95 +- autotest/pyscripts/test_gdal_edit.py | 6 +- autotest/pyscripts/test_gdal_merge.py | 4 +- autotest/pyscripts/test_gdal_pansharpen.py | 9 +- autotest/pyscripts/test_gdal_polygonize.py | 73 +- autotest/pyscripts/test_gdal_retile.py | 5 +- autotest/pyscripts/test_gdal_utils.py | 239 ++ autotest/pyscripts/test_gdallocationinfo_py.py | 189 + autotest/pyscripts/test_ogr2ogr_py.py | 16 +- autotest/pyscripts/test_osr_util.py | 164 + autotest/pyscripts/test_pct.py | 16 +- autotest/pytest.ini | 23 +- autotest/requirements.txt | 10 +- .../data/color_paletted_red_green_0-1-nv.txt | 3 + .../data/color_paletted_red_green_0-255.qml | 303 ++ .../data/color_paletted_red_green_0-255.txt | 256 ++ .../data/color_pseudocolor_spectral_0-100.qml | 78 + .../data/color_pseudocolor_spectral_0-100.txt | 5 + autotest/utilities/test_gdal_rasterize.py | 9 +- autotest/utilities/test_gdalinfo_lib.py | 11 + autotest/utilities/test_gdalwarp_lib.py | 100 +- autotest/utilities/test_ogr2ogr.py | 39 +- autotest/utilities/test_ogr2ogr_lib.py | 139 +- autotest/utilities/test_ogrinfo.py | 86 + gdal/.gitignore | 4 + gdal/Doxyfile | 16 +- gdal/GDALmake.opt.in | 29 +- gdal/GNUmakefile | 2 +- gdal/HOWTO-RELEASE | 101 +- gdal/MIGRATION_GUIDE.TXT | 29 +- gdal/NEWS | 503 ++- gdal/NEWS.template | 2 + gdal/VERSION | 2 +- gdal/alg/GNUmakefile | 2 +- gdal/alg/gdal_alg.h | 24 +- gdal/alg/gdal_alg_priv.h | 55 + gdal/alg/gdal_rpc.cpp | 58 +- gdal/alg/gdaldither.cpp | 23 +- gdal/alg/gdalgeoloc.cpp | 469 +-- gdal/alg/gdalgrid.cpp | 94 +- gdal/alg/gdalmediancut.cpp | 90 +- gdal/alg/gdalpansharpen.cpp | 7 +- gdal/alg/gdaltransformer.cpp | 412 +- gdal/alg/gdalwarper.cpp | 65 +- gdal/alg/gdalwarper.h | 19 +- gdal/alg/gdalwarpkernel.cpp | 339 +- gdal/alg/gdalwarpkernel_opencl.cpp | 1203 +++--- gdal/alg/gdalwarpkernel_opencl.h | 2 + gdal/alg/gdalwarpoperation.cpp | 48 +- gdal/alg/makefile.vc | 2 +- gdal/alg/marching_squares/level_generator.h | 2 +- gdal/alg/polygonize.cpp | 96 +- gdal/alg/rasterfill.cpp | 2 +- gdal/apps/GNUmakefile | 5 +- gdal/apps/gdal_contour.cpp | 12 +- gdal/apps/gdal_grid_bin.cpp | 3 - gdal/apps/gdal_grid_lib.cpp | 15 +- gdal/apps/gdal_rasterize_lib.cpp | 2 +- gdal/apps/gdal_translate_bin.cpp | 3 +- gdal/apps/gdal_translate_lib.cpp | 50 +- gdal/apps/gdalasyncread.cpp | 2 +- gdal/apps/gdalbuildvrt_lib.cpp | 4 + gdal/apps/gdalinfo_lib.cpp | 21 + gdal/apps/gdalmdiminfo_lib.cpp | 117 +- gdal/apps/gdalmdimtranslate_lib.cpp | 13 +- gdal/apps/gdalwarp_bin.cpp | 2 + gdal/apps/gdalwarp_lib.cpp | 183 +- gdal/apps/makefile.vc | 2 +- gdal/apps/ogr2ogr_bin.cpp | 2 + gdal/apps/ogr2ogr_lib.cpp | 141 +- gdal/apps/ogrinfo.cpp | 300 +- gdal/apps/test_ogrsf.cpp | 8 + gdal/apps/testreprojmulti.cpp | 4 +- gdal/ci/travis/conda/compile.sh | 1 + gdal/ci/travis/csa_common/before_install.sh | 6 +- gdal/ci/travis/csa_common/script.sh | 5 +- gdal/ci/travis/graviton2/before_install.sh | 11 + gdal/ci/travis/graviton2/install.sh | 40 + gdal/ci/travis/graviton2/script.sh | 19 + gdal/ci/travis/osx/script.sh | 2 +- gdal/ci/travis/python3/script.sh | 2 +- gdal/ci/travis/s390x/before_install.sh | 7 +- gdal/ci/travis/s390x/install.sh | 7 +- gdal/ci/travis/s390x/script.sh | 24 - gdal/ci/travis/trusty_clang/before_install.sh | 4 +- gdal/configure | 1701 ++++---- gdal/configure.ac | 543 ++- gdal/data/gdalvrt.xsd | 5 +- gdal/data/netcdf_config.xsd | 2 +- gdal/data/ogrvrt.xsd | 2 +- gdal/data/pdfcomposition.xsd | 10 +- gdal/data/pds4_template.xml | 2 +- gdal/data/plscenesconf.json | 169 +- gdal/doc/.azure-pipelines.yml | 2 + gdal/doc/Makefile | 11 +- gdal/doc/generate-sponsor-logos.sh | 15 + gdal/doc/images/foss4g2020.png | Bin 14375 -> 0 bytes gdal/doc/images/foss4g2021.png | Bin 0 -> 5960 bytes gdal/doc/images/logo-faunalia.png | Bin 0 -> 8167 bytes gdal/doc/images/logo-mundialis.png | Bin 0 -> 5189 bytes gdal/doc/images/logo-numfocus.png | Bin 0 -> 18096 bytes gdal/doc/images/logo-osgeo.png | Bin 0 -> 5086 bytes gdal/doc/images/logo-osgeo.svg | 15 + gdal/doc/images/logo-spatialys.png | Bin 0 -> 8784 bytes gdal/doc/images/sponsors/logo-FrontierSI.svg | 21 + gdal/doc/images/sponsors/logo-esri.png | Bin 0 -> 12399 bytes gdal/doc/images/sponsors/logo-esri.svg | 146 + gdal/doc/images/sponsors/logo-frontiersi.png | Bin 0 -> 1991 bytes gdal/doc/images/sponsors/logo-google.png | Bin 0 -> 6558 bytes gdal/doc/images/sponsors/logo-google.svg | 2 + gdal/doc/images/sponsors/logo-koordinates.png | Bin 0 -> 2176 bytes gdal/doc/images/sponsors/logo-koordinates.svg | 1 + gdal/doc/images/sponsors/logo-mapgears.png | Bin 0 -> 12890 bytes gdal/doc/images/sponsors/logo-maxar.ai | 621 +++ gdal/doc/images/sponsors/logo-maxar.png | Bin 0 -> 4622 bytes gdal/doc/images/sponsors/logo-maxar.svg | 89 + gdal/doc/images/sponsors/logo-microsoft.png | Bin 0 -> 4649 bytes gdal/doc/images/sponsors/logo-microsoft.svg | 1 + gdal/doc/images/sponsors/logo-planet.png | Bin 0 -> 7265 bytes gdal/doc/images/sponsors/logo-planet.svg | 3 + gdal/doc/images/sponsors/logo-safe.png | Bin 0 -> 5989 bytes gdal/doc/images/sponsors/logo-safe.svg | 2889 ++++++++++++++ gdal/doc/images/sponsors/logo-sparkgeo-big.png | Bin 0 -> 35153 bytes gdal/doc/images/sponsors/logo-sparkgeo.png | Bin 0 -> 7095 bytes gdal/doc/source/_extensions/driverproperties.py | 49 +- gdal/doc/source/about_no_title.rst | 4 +- gdal/doc/source/api/cpl.rst | 6 + gdal/doc/source/api/csharp/csharp_compile.rst | 186 + gdal/doc/source/api/csharp/csharp_conda.rst | 63 + gdal/doc/source/api/csharp/csharp_raster.rst | 228 ++ gdal/doc/source/api/csharp/csharp_usage.rst | 48 + gdal/doc/source/api/csharp/csharp_vector.rst | 220 + gdal/doc/source/api/csharp/index.rst | 72 + gdal/doc/source/api/index.rst | 52 +- gdal/doc/source/api/java/index.rst | 43 + gdal/doc/source/api/ogrfeature_cpp.rst | 28 + gdal/doc/source/api/python.rst | 273 ++ gdal/doc/source/api/python_samples.rst | 96 + gdal/doc/source/community/code_of_conduct.rst | 139 + .../source/{community.rst => community/index.rst} | 75 +- gdal/doc/source/community/service_providers.rst | 170 + gdal/doc/source/conf.py | 84 +- gdal/doc/source/contributing/developer.rst | 2 +- gdal/doc/source/contributing/rst_style.rst | 21 +- gdal/doc/source/development/rfc/index.rst | 5 + gdal/doc/source/development/rfc/rfc31_ogr_64.rst | 4 +- .../rfc/rfc41_multiple_geometry_fields.rst | 2 +- .../source/development/rfc/rfc45_virtualmem.rst | 6 +- .../development/rfc/rfc46_gdal_ogr_unification.rst | 2 +- .../development/rfc/rfc49_curve_geometries.rst | 2 +- .../development/rfc/rfc52_strict_sql_quoting.rst | 2 +- .../development/rfc/rfc53_ogr_notnull_default.rst | 8 +- .../development/rfc/rfc54_dataset_transactions.rst | 6 +- .../rfc/rfc59.1_utilities_as_a_library.rst | 2 +- gdal/doc/source/development/rfc/rfc5_unicode.rst | 2 +- .../rfc/rfc63_sparse_datasets_improvements.rst | 2 +- .../development/rfc/rfc66_randomlayerreadwrite.rst | 2 +- gdal/doc/source/development/rfc/rfc6_sqlgeom.rst | 2 +- .../development/rfc/rfc78_gdal_utils_package.rst | 243 ++ .../rfc/rfc79_listing_service_providers.rst | 124 + .../rfc/rfc80_numfocus_relationship.rst | 137 + .../development/rfc/rfc81_coordinate_epoch.rst | 93 + .../rfc/rfc83_use_of_project_sponsorship.rst | 235 ++ .../doc/source/development/rfc/rfc9_maintainer.rst | 4 +- gdal/doc/source/download.rst | 30 +- gdal/doc/source/drivers/raster/Idrisi.rst | 2 +- gdal/doc/source/drivers/raster/bpg.rst | 12 - gdal/doc/source/drivers/raster/byn.rst | 2 +- gdal/doc/source/drivers/raster/cog.rst | 110 +- gdal/doc/source/drivers/raster/db2.rst | 14 +- gdal/doc/source/drivers/raster/derived.rst | 2 +- gdal/doc/source/drivers/raster/e00grid.rst | 24 - gdal/doc/source/drivers/raster/epsilon.rst | 57 - gdal/doc/source/drivers/raster/esric.rst | 2 +- gdal/doc/source/drivers/raster/georaster.rst | 8 +- gdal/doc/source/drivers/raster/gpkg.rst | 26 +- gdal/doc/source/drivers/raster/gsbg.rst | 2 +- gdal/doc/source/drivers/raster/gtiff.rst | 31 +- .../source/drivers/raster/ignfheightasciigrid.rst | 29 - gdal/doc/source/drivers/raster/index.rst | 12 +- gdal/doc/source/drivers/raster/jp2lura.rst | 4 +- gdal/doc/source/drivers/raster/jp2openjpeg.rst | 9 +- gdal/doc/source/drivers/raster/jpeg.rst | 31 +- gdal/doc/source/drivers/raster/mg4lidar.rst | 2 +- gdal/doc/source/drivers/raster/netcdf.rst | 57 +- gdal/doc/source/drivers/raster/ngw.rst | 2 +- gdal/doc/source/drivers/raster/nitf.rst | 55 +- gdal/doc/source/drivers/raster/ntv1.rst | 18 - gdal/doc/source/drivers/raster/ogcapi.rst | 34 +- gdal/doc/source/drivers/raster/pdf.rst | 8 +- gdal/doc/source/drivers/raster/rasterlite.rst | 12 +- gdal/doc/source/drivers/raster/sar_ceos.rst | 10 +- gdal/doc/source/drivers/raster/sentinel2.rst | 2 +- gdal/doc/source/drivers/raster/stacit.rst | 86 + gdal/doc/source/drivers/raster/stacta.rst | 9 +- gdal/doc/source/drivers/raster/til.rst | 2 +- gdal/doc/source/drivers/raster/vrt.rst | 275 +- .../source/drivers/raster/vrt_multidimensional.rst | 4 +- gdal/doc/source/drivers/raster/wcs.rst | 2 +- gdal/doc/source/drivers/raster/wms.rst | 38 +- gdal/doc/source/drivers/raster/wmts.rst | 16 +- gdal/doc/source/drivers/raster/zarr.rst | 339 ++ gdal/doc/source/drivers/vector/aeronavfaa.rst | 26 - gdal/doc/source/drivers/vector/bna.rst | 126 - gdal/doc/source/drivers/vector/cad.rst | 2 +- gdal/doc/source/drivers/vector/csv.rst | 10 +- gdal/doc/source/drivers/vector/dgnv8.rst | 4 +- gdal/doc/source/drivers/vector/dwg.rst | 2 +- gdal/doc/source/drivers/vector/dxf.rst | 10 +- gdal/doc/source/drivers/vector/filegdb.rst | 20 +- gdal/doc/source/drivers/vector/flatgeobuf.rst | 4 +- gdal/doc/source/drivers/vector/gml.rst | 8 +- gdal/doc/source/drivers/vector/gpkg.rst | 42 +- gdal/doc/source/drivers/vector/htf.rst | 101 - gdal/doc/source/drivers/vector/index.rst | 14 +- gdal/doc/source/drivers/vector/nas.rst | 4 +- gdal/doc/source/drivers/vector/netcdf.rst | 6 +- gdal/doc/source/drivers/vector/ngw.rst | 11 +- gdal/doc/source/drivers/vector/openair.rst | 35 - gdal/doc/source/drivers/vector/openfilegdb.rst | 18 + gdal/doc/source/drivers/vector/pg.rst | 8 +- gdal/doc/source/drivers/vector/pgdump.rst | 4 +- gdal/doc/source/drivers/vector/plscenes.rst | 2 +- .../doc/source/drivers/vector/plscenes_data_v1.rst | 2 +- gdal/doc/source/drivers/vector/segukooa.rst | 29 - gdal/doc/source/drivers/vector/segy.rst | 32 - gdal/doc/source/drivers/vector/shapefile.rst | 8 +- gdal/doc/source/drivers/vector/sqlite.rst | 4 +- gdal/doc/source/drivers/vector/sua.rst | 29 - gdal/doc/source/drivers/vector/vdv.rst | 2 +- gdal/doc/source/drivers/vector/wfs.rst | 2 +- gdal/doc/source/drivers/vector/xlsx.rst | 19 + gdal/doc/source/drivers/vector/xplane.rst | 689 ---- gdal/doc/source/faq.rst | 4 +- gdal/doc/source/gdal_rtd/footer.html | 1 + gdal/doc/source/gdal_rtd/static/css/gdal.css | 42 + gdal/doc/source/index.rst | 3 +- gdal/doc/source/index_pdf.rst | 3 +- gdal/doc/source/programs/gdal-config.rst | 2 +- gdal/doc/source/programs/gdal2tiles.rst | 8 +- gdal/doc/source/programs/gdal2xyz.rst | 103 + gdal/doc/source/programs/gdal_calc.rst | 10 +- gdal/doc/source/programs/gdal_contour.rst | 2 +- gdal/doc/source/programs/gdal_edit.rst | 6 +- gdal/doc/source/programs/gdal_fillnodata.rst | 2 +- gdal/doc/source/programs/gdal_merge.rst | 6 +- gdal/doc/source/programs/gdal_polygonize.rst | 2 +- gdal/doc/source/programs/gdal_proximity.rst | 2 +- gdal/doc/source/programs/gdal_retile.rst | 2 +- gdal/doc/source/programs/gdal_sieve.rst | 2 +- gdal/doc/source/programs/gdal_translate.rst | 29 +- gdal/doc/source/programs/gdaladdo.rst | 2 +- gdal/doc/source/programs/gdalattachpct.rst | 2 +- gdal/doc/source/programs/gdalbuildvrt.rst | 10 - gdal/doc/source/programs/gdalcompare.rst | 6 +- gdal/doc/source/programs/gdaldem.rst | 9 +- gdal/doc/source/programs/gdallocationinfo.rst | 2 +- gdal/doc/source/programs/gdalmdimtranslate.rst | 4 +- gdal/doc/source/programs/gdalmove.rst | 2 +- gdal/doc/source/programs/gdaltindex.rst | 32 +- gdal/doc/source/programs/gdalwarp.rst | 30 +- gdal/doc/source/programs/index.rst | 4 +- gdal/doc/source/programs/ogr2ogr.rst | 63 +- gdal/doc/source/programs/ogrinfo.rst | 19 +- gdal/doc/source/programs/ogrlineref.rst | 2 +- gdal/doc/source/programs/ogrmerge.rst | 2 +- gdal/doc/source/programs/ogrtindex.rst | 2 +- gdal/doc/source/programs/options/srs_def.rst | 4 + .../source/programs/options/srs_def_gdalwarp.rst | 10 +- gdal/doc/source/programs/pct2rgb.rst | 2 +- gdal/doc/source/programs/rgb2pct.rst | 6 +- gdal/doc/source/software_using_gdal.rst | 7 +- .../Sustainable GDAL Sponsorship Prospectus.pdf | Bin 0 -> 211275 bytes gdal/doc/source/sponsors/faq.rst | 123 + gdal/doc/source/sponsors/index.rst | 221 ++ gdal/doc/source/tutorials/osr_api_tut.rst | 26 +- gdal/doc/source/tutorials/raster_driver_tut.rst | 2 +- gdal/doc/source/tutorials/vector_python_driver.rst | 4 +- gdal/doc/source/tutorials/wktproblems.rst | 8 +- gdal/doc/source/user/coordinate_epoch.rst | 195 + gdal/doc/source/user/index.rst | 1 + .../doc/source/user/multidim_raster_data_model.rst | 10 +- gdal/doc/source/user/sql_sqlite_dialect.rst | 23 +- gdal/doc/source/user/vector_data_model.rst | 4 +- gdal/doc/source/user/virtual_file_systems.rst | 32 +- gdal/docker/README.md | 46 +- gdal/docker/alpine-normal/Dockerfile | 141 +- gdal/docker/alpine-normal/build.sh | 29 +- gdal/docker/alpine-small/Dockerfile | 18 +- gdal/docker/alpine-small/build.sh | 29 +- gdal/docker/alpine-ultrasmall/Dockerfile | 9 +- gdal/docker/alpine-ultrasmall/build.sh | 2 +- gdal/docker/ubuntu-full/Dockerfile | 190 +- gdal/docker/ubuntu-full/bh-gdal.sh | 51 +- gdal/docker/ubuntu-full/bh-proj.sh | 65 +- gdal/docker/ubuntu-full/bh-set-envvars.sh | 20 + gdal/docker/ubuntu-full/build.sh | 35 +- gdal/docker/ubuntu-full/mdbtools-lexer.patch | 11 + gdal/docker/ubuntu-full/tiledb-5cad65f4c.patch | 31 + gdal/docker/ubuntu-small/Dockerfile | 101 +- gdal/docker/ubuntu-small/bh-set-envvars.sh | 20 + gdal/docker/ubuntu-small/build.sh | 29 +- gdal/docker/util.sh | 128 +- gdal/frmts/GNUmakefile | 2 +- gdal/frmts/adrg/GNUmakefile | 2 +- gdal/frmts/adrg/adrgdataset.cpp | 4 +- gdal/frmts/adrg/srpdataset.cpp | 4 +- gdal/frmts/aigrid/GNUmakefile | 2 +- gdal/frmts/arg/GNUmakefile | 2 +- gdal/frmts/bmp/bmpdataset.cpp | 2 +- gdal/frmts/bpg/bpgdataset.cpp | 352 -- gdal/frmts/ceos/ceosopen.c | 8 + gdal/frmts/ceos2/ceos.c | 255 +- gdal/frmts/ceos2/ceos.h | 7 +- gdal/frmts/ceos2/ceosrecipe.c | 336 +- gdal/frmts/ceos2/ceossar.c | 97 +- gdal/frmts/ceos2/link.c | 6 +- gdal/frmts/ceos2/sar_ceosdataset.cpp | 138 +- gdal/frmts/daas/GNUmakefile | 2 +- gdal/frmts/daas/daasdataset.cpp | 173 +- gdal/frmts/dds/ddsdataset.cpp | 2 +- gdal/frmts/derived/deriveddataset.cpp | 25 +- gdal/frmts/dimap/GNUmakefile | 2 +- gdal/frmts/dimap/dimapdataset.cpp | 129 +- gdal/frmts/dods/GNUmakefile | 2 +- gdal/frmts/dods/dodsdataset2.cpp | 6 + gdal/frmts/e00grid/GNUmakefile | 17 - gdal/frmts/e00grid/e00compr.h | 178 - gdal/frmts/e00grid/e00griddataset.cpp | 933 ----- gdal/frmts/e00grid/e00read.c | 670 ---- gdal/frmts/e00grid/makefile.vc | 13 - gdal/frmts/ecw/ecwcreatecopy.cpp | 49 +- gdal/frmts/ecw/ecwdataset.cpp | 113 +- gdal/frmts/ecw/ecwsdk_headers.h | 1 + gdal/frmts/ecw/gdal_ecw.h | 17 +- gdal/frmts/eeda/GNUmakefile | 2 +- gdal/frmts/eeda/eedadataset.cpp | 14 +- gdal/frmts/eeda/eedaidataset.cpp | 157 +- gdal/frmts/elas/elasdataset.cpp | 4 +- gdal/frmts/envisat/envisat_dump.c | 2 +- gdal/frmts/envisat/envisatdataset.cpp | 2 +- gdal/frmts/epsilon/epsilondataset.cpp | 1051 ----- gdal/frmts/epsilon/makefile.vc | 15 - gdal/frmts/ers/ersdataset.cpp | 2 +- gdal/frmts/esric/esric_dataset.cpp | 15 +- gdal/frmts/exr/exrdataset.cpp | 34 +- gdal/frmts/exr/openexr_headers.h | 1 + gdal/frmts/fit/gstEndian.h | 2 +- gdal/frmts/fits/fitsdataset.cpp | 66 +- gdal/frmts/gdalallregister.cpp | 23 +- gdal/frmts/georaster/cpl_vsil_ocilob.cpp | 6 +- gdal/frmts/georaster/georaster_dataset.cpp | 150 +- gdal/frmts/georaster/georaster_priv.h | 6 +- gdal/frmts/georaster/georaster_rasterband.cpp | 6 +- gdal/frmts/georaster/georaster_wrapper.cpp | 49 +- gdal/frmts/georaster/oci_wrapper.cpp | 33 +- gdal/frmts/grib/GNUmakefile | 6 +- gdal/frmts/grib/degrib/degrib/degrib1.cpp | 18 +- gdal/frmts/grib/degrib/degrib/degrib1.h | 1 + gdal/frmts/grib/degrib/degrib/grib1tab.cpp | 310 +- gdal/frmts/grib/degrib/g2clib/dec_jpeg2000.cpp | 6 +- gdal/frmts/grib/gribcreatecopy.cpp | 42 +- gdal/frmts/grib/gribdataset.cpp | 4 + gdal/frmts/gsg/gs7bgdataset.cpp | 8 +- gdal/frmts/gsg/gsbgdataset.cpp | 24 +- gdal/frmts/gtiff/GNUmakefile | 22 +- gdal/frmts/gtiff/cogdriver.cpp | 114 +- gdal/frmts/gtiff/generate_quant_table_md5sum.cpp | 168 + gdal/frmts/gtiff/geotiff.cpp | 1072 ++--- gdal/frmts/gtiff/gt_citation.cpp | 2 +- gdal/frmts/gtiff/gt_citation.h | 2 +- gdal/frmts/gtiff/gt_jpeg_copy.cpp | 10 +- gdal/frmts/gtiff/gt_overview.cpp | 43 +- gdal/frmts/gtiff/gt_overview.h | 4 +- gdal/frmts/gtiff/gt_wkt_srs.cpp | 318 +- gdal/frmts/gtiff/gt_wkt_srs.h | 2 +- gdal/frmts/gtiff/gt_wkt_srs_for_gdal.h | 5 +- gdal/frmts/gtiff/gtiff.h | 28 +- gdal/frmts/gtiff/libgeotiff/GNUmakefile | 2 +- .../libgeotiff/gdal_libgeotiff_symbol_rename.h | 2 +- gdal/frmts/gtiff/libgeotiff/geo_config.h | 2 +- gdal/frmts/gtiff/libgeotiff/geo_normalize.c | 186 +- gdal/frmts/gtiff/libgeotiff/geo_normalize.h | 4 +- gdal/frmts/gtiff/libgeotiff/geokeys.inc | 4 +- gdal/frmts/gtiff/libgeotiff/geotiff.h | 2 +- gdal/frmts/gtiff/libtiff/GNUmakefile | 27 +- gdal/frmts/gtiff/libtiff/dump_symbols.sh | 8 +- .../gtiff/libtiff/gdal_libtiff_symbol_rename.h | 32 +- gdal/frmts/gtiff/libtiff/makefile.vc | 11 +- gdal/frmts/gtiff/libtiff/tif_aux.c | 106 +- gdal/frmts/gtiff/libtiff/tif_close.c | 4 +- gdal/frmts/gtiff/libtiff/tif_codec.c | 8 +- gdal/frmts/gtiff/libtiff/tif_color.c | 42 +- gdal/frmts/gtiff/libtiff/tif_compress.c | 30 +- gdal/frmts/gtiff/libtiff/tif_dir.c | 462 +-- gdal/frmts/gtiff/libtiff/tif_dir.h | 88 +- gdal/frmts/gtiff/libtiff/tif_dirinfo.c | 22 +- gdal/frmts/gtiff/libtiff/tif_dirread.c | 2033 +++++----- gdal/frmts/gtiff/libtiff/tif_dirwrite.c | 1038 ++--- gdal/frmts/gtiff/libtiff/tif_dumpmode.c | 22 +- gdal/frmts/gtiff/libtiff/tif_extension.c | 4 +- gdal/frmts/gtiff/libtiff/tif_fax3.c | 366 +- gdal/frmts/gtiff/libtiff/tif_fax3.h | 14 +- gdal/frmts/gtiff/libtiff/tif_getimage.c | 500 +-- gdal/frmts/gtiff/libtiff/tif_jpeg.c | 4182 ++++++++++---------- gdal/frmts/gtiff/libtiff/tif_jpeg_12.c | 89 +- gdal/frmts/gtiff/{ => libtiff}/tif_lerc.c | 75 +- gdal/frmts/gtiff/libtiff/tif_luv.c | 311 +- gdal/frmts/gtiff/libtiff/tif_lzma.c | 32 +- gdal/frmts/gtiff/libtiff/tif_lzw.c | 155 +- gdal/frmts/gtiff/libtiff/tif_next.c | 24 +- gdal/frmts/gtiff/libtiff/tif_ojpeg.c | 648 +-- gdal/frmts/gtiff/libtiff/tif_open.c | 46 +- gdal/frmts/gtiff/libtiff/tif_packbits.c | 64 +- gdal/frmts/gtiff/libtiff/tif_pixarlog.c | 238 +- gdal/frmts/gtiff/libtiff/tif_predict.c | 130 +- gdal/frmts/gtiff/libtiff/tif_predict.h | 2 +- gdal/frmts/gtiff/libtiff/tif_print.c | 225 +- gdal/frmts/gtiff/libtiff/tif_read.c | 495 +-- gdal/frmts/gtiff/libtiff/tif_strip.c | 115 +- gdal/frmts/gtiff/libtiff/tif_swab.c | 28 +- gdal/frmts/gtiff/libtiff/tif_thunder.c | 27 +- gdal/frmts/gtiff/libtiff/tif_tile.c | 82 +- gdal/frmts/gtiff/libtiff/tif_webp.c | 42 +- gdal/frmts/gtiff/libtiff/tif_write.c | 110 +- gdal/frmts/gtiff/libtiff/tif_zip.c | 56 +- gdal/frmts/gtiff/libtiff/tif_zstd.c | 51 +- gdal/frmts/gtiff/libtiff/tiff.h | 60 +- gdal/frmts/gtiff/libtiff/tiffio.h | 254 +- gdal/frmts/gtiff/libtiff/tiffiop.h | 161 +- gdal/frmts/gtiff/libtiff/tiffvers.h | 4 +- gdal/frmts/gtiff/makefile.vc | 23 +- gdal/frmts/gtiff/quant_table_md5sum.h | 210 + gdal/frmts/gtiff/tif_float.h | 4 + gdal/frmts/gtiff/tif_lerc.h | 54 - gdal/frmts/gxf/gxf_ogcwkt.c | 28 +- gdal/frmts/gxf/gxfdataset.cpp | 2 +- gdal/frmts/hdf4/GNUmakefile | 2 +- gdal/frmts/hdf4/hdf-eos/EHapi.c | 2 +- gdal/frmts/hdf4/hdf-eos/GNUmakefile | 2 +- gdal/frmts/hdf4/hdf-eos/HdfEosDef.h | 2 +- gdal/frmts/hdf4/hdf4dataset.cpp | 2 +- gdal/frmts/hdf4/hdf4imagedataset.cpp | 54 +- gdal/frmts/hdf4/hdf4multidim.cpp | 36 +- gdal/frmts/hdf5/bagdataset.cpp | 35 +- gdal/frmts/hdf5/hdf5dataset.h | 2 + gdal/frmts/hdf5/hdf5multidim.cpp | 73 +- gdal/frmts/hfa/hfaband.cpp | 13 +- gdal/frmts/hfa/hfadataset.cpp | 14 +- gdal/frmts/hfa/hfadataset.h | 2 +- gdal/frmts/hfa/hfafield.cpp | 4 +- gdal/frmts/hfa/hfaopen.cpp | 48 +- gdal/frmts/idrisi/IdrisiDataset.cpp | 22 +- gdal/frmts/ignfheightasciigrid/GNUmakefile | 15 - .../ignfheightasciigrid/ignfheightasciigrid.cpp | 721 ---- gdal/frmts/ilwis/ilwiscoordinatesystem.cpp | 42 +- gdal/frmts/ilwis/ilwisdataset.cpp | 13 +- gdal/frmts/ilwis/ilwisdataset.h | 2 +- gdal/frmts/ingr/GNUmakefile | 2 +- gdal/frmts/ingr/IngrTypes.cpp | 145 +- gdal/frmts/ingr/IngrTypes.h | 177 +- gdal/frmts/ingr/IntergraphBand.cpp | 51 +- gdal/frmts/ingr/IntergraphBand.h | 16 +- gdal/frmts/ingr/IntergraphDataset.cpp | 13 +- gdal/frmts/iris/irisdataset.cpp | 2 +- gdal/frmts/iso8211/GNUmakefile | 2 +- gdal/frmts/iso8211/ddfmodule.cpp | 2 +- gdal/frmts/jaxapalsar/jaxapalsardataset.cpp | 4 +- gdal/frmts/jp2kak/GNUmakefile | 2 +- gdal/frmts/jp2kak/jp2kakdataset.cpp | 191 +- gdal/frmts/jp2kak/jp2kakdataset.h | 24 +- gdal/frmts/jp2kak/subfile_source.h | 14 +- gdal/frmts/jp2lura/GNUmakefile | 2 +- gdal/frmts/jp2lura/jp2luradataset.cpp | 12 +- gdal/frmts/jpeg/GNUmakefile | 10 +- gdal/frmts/jpeg/jpgdataset.cpp | 64 +- gdal/frmts/jpeg/jpgdataset.h | 2 +- gdal/frmts/jpeg/libjpeg/jmemansi.c | 233 -- gdal/frmts/jpeg/libjpeg/jmemnobs.c | 111 + gdal/frmts/jpeg/libjpeg/makefile.vc | 6 +- gdal/frmts/jpeg/libjpeg12/jmorecfg.h.12 | 2 +- gdal/frmts/jpeg/libjpeg12/makefile.vc | 6 +- gdal/frmts/jpeg2000/jpeg2000dataset.cpp | 15 +- gdal/frmts/jpegls/jpeglsdataset.cpp | 9 +- gdal/frmts/jpipkak/GNUmakefile | 2 +- gdal/frmts/jpipkak/jpipkakdataset.cpp | 60 +- gdal/frmts/jpipkak/jpipkakdataset.h | 75 +- gdal/frmts/kea/keadataset.cpp | 36 +- gdal/frmts/kea/keadataset.h | 6 +- .../kmlsuperoverlay/kmlsuperoverlaydataset.cpp | 27 +- gdal/frmts/l1b/l1bdataset.cpp | 2 +- gdal/frmts/makefile.vc | 8 +- gdal/frmts/mbtiles/GNUmakefile | 2 +- gdal/frmts/mbtiles/mbtilesdataset.cpp | 8 +- gdal/frmts/mem/memdataset.cpp | 316 +- gdal/frmts/mem/memdataset.h | 14 +- gdal/frmts/mem/memmultidim.h | 293 ++ gdal/frmts/mrf/BitMask2D.h | 2 +- gdal/frmts/mrf/GNUmakefile | 13 +- gdal/frmts/mrf/JPEG_band.cpp | 97 +- gdal/frmts/mrf/JPNG_band.cpp | 10 +- gdal/frmts/mrf/LERCV1/GNUmakefile | 2 +- gdal/frmts/mrf/README | 94 - gdal/frmts/mrf/README.md | 7 + gdal/frmts/mrf/makefile.vc | 25 +- gdal/frmts/mrf/marfa.h | 59 +- gdal/frmts/mrf/marfa_dataset.cpp | 51 +- gdal/frmts/mrf/mrf_band.cpp | 311 +- gdal/frmts/mrf/mrf_util.cpp | 130 +- gdal/frmts/mrsid/mrsiddataset.cpp | 250 +- gdal/frmts/mrsid_lidar/gdal_MG4Lidar.cpp | 3 + gdal/frmts/msg/GNUmakefile | 2 +- gdal/frmts/msg/msgdataset.cpp | 70 +- gdal/frmts/msg/msgdataset.h | 3 +- gdal/frmts/msgn/GNUmakefile | 2 +- gdal/frmts/msgn/msg_reader_core.cpp | 4 +- gdal/frmts/netcdf/netcdf_cf_constants.h | 139 + gdal/frmts/netcdf/netcdfdataset.cpp | 431 +- gdal/frmts/netcdf/netcdfdataset.h | 135 +- gdal/frmts/netcdf/netcdflayersg.cpp | 12 +- gdal/frmts/netcdf/netcdfmultidim.cpp | 237 +- gdal/frmts/netcdf/netcdfsg.cpp | 4 +- gdal/frmts/netcdf/netcdfsgwriterutil.cpp | 150 +- gdal/frmts/netcdf/netcdfsgwriterutil.h | 10 +- gdal/frmts/nitf/GNUmakefile | 2 +- gdal/frmts/nitf/nitfdataset.cpp | 657 ++- gdal/frmts/nitf/nitfdataset.h | 1 + gdal/frmts/nitf/nitffile.c | 50 +- gdal/frmts/nitf/nitfimage.c | 20 +- gdal/frmts/nitf/nitflib.h | 11 + gdal/frmts/nitf/rpftocdataset.cpp | 20 +- gdal/frmts/nitf/rpftocfile.cpp | 2 +- gdal/frmts/northwood/GNUmakefile | 2 + gdal/frmts/northwood/grcdataset.cpp | 35 +- gdal/frmts/northwood/grddataset.cpp | 137 +- gdal/frmts/northwood/northwood.cpp | 26 +- gdal/frmts/northwood/northwood.h | 10 +- gdal/frmts/ogcapi/GNUmakefile | 2 +- gdal/frmts/ogcapi/gdalogcapidataset.cpp | 56 +- gdal/frmts/openjpeg/GNUmakefile | 2 +- gdal/frmts/openjpeg/openjpegdataset.cpp | 133 +- gdal/frmts/ozi/ozidataset.cpp | 3 +- gdal/frmts/pcidsk/pcidskdataset2.cpp | 78 +- gdal/frmts/pcidsk/pcidskdataset2.h | 2 +- gdal/frmts/pcidsk/sdk/Makefile | 2 +- gdal/frmts/pcidsk/sdk/blockdir/asciitiledir.cpp | 18 +- gdal/frmts/pcidsk/sdk/blockdir/asciitilelayer.cpp | 2 + gdal/frmts/pcidsk/sdk/blockdir/binarytiledir.cpp | 11 +- gdal/frmts/pcidsk/sdk/blockdir/binarytilelayer.cpp | 2 + gdal/frmts/pcidsk/sdk/blockdir/blockdir.cpp | 2 +- gdal/frmts/pcidsk/sdk/blockdir/blocklayer.cpp | 4 +- gdal/frmts/pcidsk/sdk/blockdir/blocktiledir.cpp | 2 +- gdal/frmts/pcidsk/sdk/blockdir/blocktiledir.h | 10 +- gdal/frmts/pcidsk/sdk/blockdir/blocktilelayer.cpp | 23 +- .../pcidsk/sdk/channel/cbandinterleavedchannel.cpp | 5 +- gdal/frmts/pcidsk/sdk/channel/cexternalchannel.cpp | 18 +- gdal/frmts/pcidsk/sdk/channel/ctiledchannel.cpp | 12 +- gdal/frmts/pcidsk/sdk/core/cpcidskfile.cpp | 1 + gdal/frmts/pcidsk/sdk/core/pcidsk_utils.cpp | 10 +- gdal/frmts/pcidsk/sdk/core/pcidsk_utils.h | 6 +- gdal/frmts/pcidsk/sdk/core/pcidskcreate.cpp | 2 +- gdal/frmts/pcidsk/sdk/pcidsk_georef.h | 36 +- gdal/frmts/pcidsk/sdk/pcidsk_poly.h | 4 +- gdal/frmts/pcidsk/sdk/pcidsk_vectorsegment.h | 6 +- gdal/frmts/pcidsk/sdk/segment/cpcidskblut.cpp | 2 +- gdal/frmts/pcidsk/sdk/segment/cpcidskbpct.cpp | 2 +- .../pcidsk/sdk/segment/cpcidskgcp2segment.cpp | 9 +- gdal/frmts/pcidsk/sdk/segment/cpcidskgeoref.cpp | 88 +- gdal/frmts/pcidsk/sdk/segment/cpcidskpolymodel.cpp | 10 +- gdal/frmts/pcidsk/sdk/segment/cpcidskpolymodel.h | 4 +- gdal/frmts/pcidsk/sdk/segment/cpcidsksegment.cpp | 1 + .../pcidsk/sdk/segment/cpcidskvectorsegment.cpp | 7 +- .../pcidsk/sdk/segment/cpcidskvectorsegment.h | 2 +- gdal/frmts/pcidsk/sdk/segment/systiledir.cpp | 10 +- gdal/frmts/pcidsk/sdk/tutorial.dox | 4 +- gdal/frmts/pcraster/pcrasterdataset.cpp | 4 +- gdal/frmts/pcraster/pcrasterdataset.h | 2 +- gdal/frmts/pdf/GNUmakefile | 2 +- gdal/frmts/pdf/pdfcreatecopy.cpp | 10 +- gdal/frmts/pdf/pdfdataset.cpp | 13 +- gdal/frmts/pdf/pdfreadvectors.cpp | 4 +- gdal/frmts/pds/GNUmakefile | 2 +- gdal/frmts/pds/isis2dataset.cpp | 12 +- gdal/frmts/pds/pds4dataset.cpp | 87 +- gdal/frmts/pds/pds4dataset.h | 6 +- gdal/frmts/pds/pds4vector.cpp | 13 +- gdal/frmts/pds/pdsdataset.cpp | 2 +- gdal/frmts/plmosaic/GNUmakefile | 2 +- gdal/frmts/png/GNUmakefile | 3 +- gdal/frmts/png/pngdataset.h | 2 +- gdal/frmts/postgisraster/GNUmakefile | 2 +- gdal/frmts/postgisraster/postgisraster.h | 25 +- gdal/frmts/postgisraster/postgisrasterdataset.cpp | 45 +- gdal/frmts/postgisraster/postgisrasterdriver.cpp | 10 +- gdal/frmts/prf/phprfdataset.cpp | 8 +- gdal/frmts/rasdaman/rasdamandataset.cpp | 2 +- gdal/frmts/rasterlite/GNUmakefile | 2 +- gdal/frmts/rasterlite/rasterlitecreatecopy.cpp | 9 - gdal/frmts/rasterlite/rasterlitedataset.cpp | 9 +- gdal/frmts/raw/GNUmakefile | 2 +- gdal/frmts/raw/cpgdataset.cpp | 2 +- gdal/frmts/raw/ehdrdataset.cpp | 10 +- gdal/frmts/raw/ehdrdataset.h | 2 +- gdal/frmts/raw/fastdataset.cpp | 6 +- gdal/frmts/raw/fujibasdataset.cpp | 3 + gdal/frmts/raw/genbindataset.cpp | 9 +- gdal/frmts/raw/hkvdataset.cpp | 4 +- gdal/frmts/raw/idadataset.cpp | 10 +- gdal/frmts/raw/iscedataset.cpp | 2 +- gdal/frmts/raw/makefile.vc | 2 +- gdal/frmts/raw/mffdataset.cpp | 6 +- gdal/frmts/raw/ndfdataset.cpp | 14 +- gdal/frmts/raw/ntv1dataset.cpp | 318 -- gdal/frmts/raw/pauxdataset.cpp | 26 +- gdal/frmts/raw/pnmdataset.cpp | 2 +- gdal/frmts/rda/GNUmakefile | 2 +- gdal/frmts/rda/rdadataset.cpp | 35 +- gdal/frmts/rdb/GNUmakefile | 2 +- gdal/frmts/rdb/rdbdataset.cpp | 28 +- gdal/frmts/rmf/rmfdataset.cpp | 64 +- gdal/frmts/rmf/rmfdataset.h | 4 +- gdal/frmts/rmf/rmfdem.cpp | 8 +- gdal/frmts/rmf/rmflzw.cpp | 25 +- gdal/frmts/saga/sagadataset.cpp | 8 +- gdal/frmts/sdts/GNUmakefile | 4 +- gdal/frmts/sdts/sdts2shp.cpp | 44 +- gdal/frmts/sentinel2/sentinel2dataset.cpp | 53 +- gdal/frmts/{epsilon => stacit}/GNUmakefile | 7 +- .../{ignfheightasciigrid => stacit}/makefile.vc | 4 +- gdal/frmts/stacit/stacitdataset.cpp | 928 +++++ gdal/frmts/stacta/GNUmakefile | 2 +- gdal/frmts/stacta/stactadataset.cpp | 8 +- gdal/frmts/tga/tgadataset.cpp | 6 +- gdal/frmts/til/GNUmakefile | 2 +- gdal/frmts/til/tildataset.cpp | 30 +- gdal/frmts/tiledb/tiledbdataset.cpp | 109 +- gdal/frmts/tsx/tsxdataset.cpp | 2 + gdal/frmts/usgsdem/GNUmakefile | 2 +- gdal/frmts/vrt/pixelfunctions.cpp | 137 + gdal/frmts/vrt/vrtdataset.cpp | 146 +- gdal/frmts/vrt/vrtdataset.h | 146 +- gdal/frmts/vrt/vrtderivedrasterband.cpp | 144 +- gdal/frmts/vrt/vrtdriver.cpp | 4 +- gdal/frmts/vrt/vrtfilters.cpp | 48 +- gdal/frmts/vrt/vrtmultidim.cpp | 12 +- gdal/frmts/vrt/vrtrasterband.cpp | 8 +- gdal/frmts/vrt/vrtrawrasterband.cpp | 3 +- gdal/frmts/vrt/vrtsourcedrasterband.cpp | 395 +- gdal/frmts/vrt/vrtsources.cpp | 741 ++-- gdal/frmts/vrt/vrtwarped.cpp | 9 +- gdal/frmts/wcs/GNUmakefile | 2 +- gdal/frmts/wcs/wcsdataset.cpp | 14 +- gdal/frmts/webp/webpdataset.cpp | 6 + gdal/frmts/wms/gdalhttp.cpp | 20 +- gdal/frmts/wms/gdalwmsdataset.cpp | 3 +- gdal/frmts/wms/minidriver_tiled_wms.cpp | 347 +- gdal/frmts/wms/wmsdriver.cpp | 24 +- gdal/frmts/wms/wmsdriver.h | 3 +- gdal/frmts/wms/wmsmetadataset.cpp | 65 +- gdal/frmts/wms/wmsmetadataset.h | 14 +- gdal/frmts/xpm/GNUmakefile | 2 +- gdal/frmts/xyz/xyzdataset.cpp | 2 +- gdal/frmts/zarr/GNUmakefile | 22 + gdal/frmts/zarr/makefile.vc | 19 + gdal/frmts/zarr/zarr.h | 601 +++ gdal/frmts/zarr/zarr_array.cpp | 3278 +++++++++++++++ gdal/frmts/zarr/zarr_attribute.cpp | 315 ++ gdal/frmts/zarr/zarr_group.cpp | 1644 ++++++++ gdal/frmts/zarr/zarrdriver.cpp | 1233 ++++++ gdal/fuzzers/GNUmakefile | 2 +- gdal/fuzzers/build.sh | 8 +- gdal/fuzzers/build_google_oss_fuzzers.sh | 1 - gdal/fuzzers/build_seed_corpus.sh | 6 - gdal/gcore/GNUmakefile | 4 +- gdal/gcore/gdal.h | 120 +- gdal/gcore/gdal_avx2_emulation.hpp | 103 +- gdal/gcore/gdal_frmts.h | 6 +- gdal/gcore/gdal_mdreader.cpp | 86 +- gdal/gcore/gdal_mdreader.h | 2 + gdal/gcore/gdal_misc.cpp | 34 +- gdal/gcore/gdal_priv.h | 138 +- gdal/gcore/gdal_priv_templates.hpp | 3 +- gdal/gcore/gdal_proxy.h | 17 +- gdal/gcore/gdal_version.h.in | 4 +- gdal/gcore/gdaldataset.cpp | 180 +- gdal/gcore/gdaldriver.cpp | 24 +- gdal/gcore/gdaldrivermanager.cpp | 42 +- gdal/gcore/gdalexif.cpp | 4 +- gdal/gcore/gdalgeorefpamdataset.cpp | 49 +- gdal/gcore/gdalgeorefpamdataset.h | 18 +- gdal/gcore/gdaljp2abstractdataset.cpp | 5 +- gdal/gcore/gdaljp2metadata.cpp | 147 +- gdal/gcore/gdaljp2metadata.h | 4 +- gdal/gcore/gdalmultidim.cpp | 1695 +++++++- gdal/gcore/gdaloverviewdataset.cpp | 109 +- gdal/gcore/gdalpamdataset.cpp | 18 + gdal/gcore/gdalpamrasterband.cpp | 6 +- gdal/gcore/gdalproxypool.cpp | 94 +- gdal/gcore/gdalpython.cpp | 177 +- gdal/gcore/gdalpython.h | 18 +- gdal/gcore/gdalpythondriverloader.cpp | 105 +- gdal/gcore/gdalrasterband.cpp | 574 +-- gdal/gcore/gdalvirtualmem.cpp | 26 +- gdal/gcore/mdreader/reader_digital_globe.cpp | 2 + gdal/gcore/overview.cpp | 514 ++- gdal/gcore/rasterio.cpp | 223 +- gdal/gcore/rawdataset.cpp | 445 ++- gdal/gcore/rawdataset.h | 18 +- gdal/gcore/statistics.txt | 14 +- gdal/generate_vcxproj.bat | 2 +- gdal/gnm/gnm.h | 2 +- gdal/gnm/gnm_frmts/db/GNUmakefile | 2 +- gdal/gnm/gnm_frmts/file/GNUmakefile | 2 +- gdal/gnm/gnmgraph.cpp | 24 +- gdal/gnm/gnmgraph.h | 4 +- gdal/m4/ax_oracle_oci.m4 | 49 +- gdal/m4/geos.m4 | 23 +- gdal/m4/sfcgal.m4 | 22 +- gdal/makefile.vc | 11 +- gdal/mkgdaldist.sh | 2 +- gdal/nmake.opt | 2334 +++++------ gdal/ogr/GNUmakefile | 2 +- gdal/ogr/gml2ogrgeometry.cpp | 51 +- gdal/ogr/ogr_api.cpp | 45 +- gdal/ogr/ogr_api.h | 53 + gdal/ogr/ogr_core.h | 77 +- gdal/ogr/ogr_feature.h | 305 ++ gdal/ogr/ogr_geometry.h | 357 +- gdal/ogr/ogr_proj_p.cpp | 51 +- gdal/ogr/ogr_proj_p.h | 6 +- gdal/ogr/ogr_spatialref.h | 22 +- gdal/ogr/ogr_srs_api.h | 17 +- gdal/ogr/ogr_srs_ozi.cpp | 54 +- gdal/ogr/ogr_srs_usgs.cpp | 2 +- gdal/ogr/ogr_srs_xml.cpp | 30 +- gdal/ogr/ogr_srsnode.cpp | 4 + gdal/ogr/ogr_swq.h | 3 +- gdal/ogr/ogrcircularstring.cpp | 30 +- gdal/ogr/ogrcompoundcurve.cpp | 56 +- gdal/ogr/ogrct.cpp | 727 +++- gdal/ogr/ogrcurvecollection.cpp | 118 +- gdal/ogr/ogrcurvepolygon.cpp | 33 +- gdal/ogr/ogrfeature.cpp | 22 +- gdal/ogr/ogrfielddefn.cpp | 693 +++- gdal/ogr/ogrgeometry.cpp | 277 +- gdal/ogr/ogrgeometrycollection.cpp | 149 +- gdal/ogr/ogrgeometryfactory.cpp | 150 +- gdal/ogr/ogrlinearring.cpp | 69 +- gdal/ogr/ogrlinestring.cpp | 167 +- gdal/ogr/ogrmulticurve.cpp | 10 + gdal/ogr/ogrmultilinestring.cpp | 10 + gdal/ogr/ogrmultipoint.cpp | 50 +- gdal/ogr/ogrmultipolygon.cpp | 10 + gdal/ogr/ogrmultisurface.cpp | 10 + gdal/ogr/ogrpgeogeometry.cpp | 48 +- gdal/ogr/ogrpoint.cpp | 39 +- gdal/ogr/ogrpolygon.cpp | 79 +- gdal/ogr/ogrpolyhedralsurface.cpp | 138 +- gdal/ogr/ogrsf_frmts/aeronavfaa/GNUmakefile | 14 - gdal/ogr/ogrsf_frmts/aeronavfaa/makefile.vc | 15 - gdal/ogr/ogrsf_frmts/aeronavfaa/ogr_aeronavfaa.h | 183 - .../aeronavfaa/ograeronavfaadatasource.cpp | 172 - .../ogrsf_frmts/aeronavfaa/ograeronavfaadriver.cpp | 84 - .../ogrsf_frmts/aeronavfaa/ograeronavfaalayer.cpp | 718 ---- gdal/ogr/ogrsf_frmts/amigocloud/GNUmakefile | 4 +- gdal/ogr/ogrsf_frmts/amigocloud/ogr_amigocloud.h | 1 - .../amigocloud/ogramigoclouddatasource.cpp | 110 +- .../ogrsf_frmts/amigocloud/ogramigocloudlayer.cpp | 27 +- .../amigocloud/ogramigocloudtablelayer.cpp | 106 +- gdal/ogr/ogrsf_frmts/amigocloud/pkg/Makefile.in | 2 +- gdal/ogr/ogrsf_frmts/arcgen/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/arcgen/ograrcgendriver.cpp | 3 + gdal/ogr/ogrsf_frmts/arcobjects/aodriver.cpp | 3 + gdal/ogr/ogrsf_frmts/arcobjects/aolayer.cpp | 2 +- gdal/ogr/ogrsf_frmts/arcobjects/aoutils.cpp | 2 +- gdal/ogr/ogrsf_frmts/avc/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/avc/avc_e00write.cpp | 6 + gdal/ogr/ogrsf_frmts/avc/ogravcbindriver.cpp | 1 + gdal/ogr/ogrsf_frmts/bna/GNUmakefile | 13 - gdal/ogr/ogrsf_frmts/bna/makefile.vc | 16 - gdal/ogr/ogrsf_frmts/bna/ogr_bna.h | 150 - gdal/ogr/ogrsf_frmts/bna/ogrbnadatasource.cpp | 377 -- gdal/ogr/ogrsf_frmts/bna/ogrbnadriver.cpp | 156 - gdal/ogr/ogrsf_frmts/bna/ogrbnalayer.cpp | 820 ---- gdal/ogr/ogrsf_frmts/bna/ogrbnaparser.cpp | 670 ---- gdal/ogr/ogrsf_frmts/bna/ogrbnaparser.h | 92 - gdal/ogr/ogrsf_frmts/cad/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/cad/libopencad/GNUmakefile | 2 +- .../ogr/ogrsf_frmts/cad/libopencad/cadgeometry.cpp | 20 +- gdal/ogr/ogrsf_frmts/cad/libopencad/cadgeometry.h | 10 +- gdal/ogr/ogrsf_frmts/cad/libopencad/cadheader.cpp | 11 +- gdal/ogr/ogrsf_frmts/cad/libopencad/cadobjects.h | 4 +- .../ogr/ogrsf_frmts/cad/libopencad/dwg/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.cpp | 86 +- gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/io.h | 22 +- gdal/ogr/ogrsf_frmts/cad/libopencad/dwg/r2000.cpp | 129 +- gdal/ogr/ogrsf_frmts/cad/ogrcaddriver.cpp | 1 + gdal/ogr/ogrsf_frmts/carto/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/cloudant/GNUmakefile | 2 +- .../ogr/ogrsf_frmts/cloudant/ogrcloudantdriver.cpp | 6 + gdal/ogr/ogrsf_frmts/couchdb/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/couchdb/ogrcouchdbdriver.cpp | 9 + gdal/ogr/ogrsf_frmts/csv/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/csv/ogrcsvlayer.cpp | 9 +- gdal/ogr/ogrsf_frmts/csw/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/db2/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/db2/ogrdb2datasource.cpp | 38 +- gdal/ogr/ogrsf_frmts/db2/ogrdb2driver.cpp | 6 + gdal/ogr/ogrsf_frmts/dgn/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/dgn/dgnhelp.cpp | 5 +- gdal/ogr/ogrsf_frmts/dgn/ogrdgndriver.cpp | 1 + gdal/ogr/ogrsf_frmts/dgn/ogrdgnlayer.cpp | 28 +- gdal/ogr/ogrsf_frmts/dods/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/dods/ogrdodsdriver.cpp | 3 + gdal/ogr/ogrsf_frmts/dwg/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/dwg/ogrdgnv8layer.cpp | 18 +- gdal/ogr/ogrsf_frmts/dwg/ogrdwgdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/dwg/ogrdwglayer.cpp | 2 + gdal/ogr/ogrsf_frmts/dxf/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/dxf/ogr_dxf.h | 4 + gdal/ogr/ogrsf_frmts/dxf/ogrdxf_feature.cpp | 20 +- gdal/ogr/ogrsf_frmts/dxf/ogrdxf_hatch.cpp | 4 +- gdal/ogr/ogrsf_frmts/dxf/ogrdxf_leader.cpp | 4 +- gdal/ogr/ogrsf_frmts/dxf/ogrdxfdatasource.cpp | 2 +- gdal/ogr/ogrsf_frmts/dxf/ogrdxfdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/dxf/ogrdxflayer.cpp | 12 +- gdal/ogr/ogrsf_frmts/dxf/ogrdxfreader.cpp | 70 +- gdal/ogr/ogrsf_frmts/edigeo/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/edigeo/ogredigeodriver.cpp | 1 + gdal/ogr/ogrsf_frmts/elastic/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/filegdb/FGdbDatasource.cpp | 201 +- gdal/ogr/ogrsf_frmts/filegdb/FGdbDriver.cpp | 1 + gdal/ogr/ogrsf_frmts/filegdb/FGdbLayer.cpp | 15 + gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.cpp | 96 - gdal/ogr/ogrsf_frmts/filegdb/FGdbUtils.h | 1 - gdal/ogr/ogrsf_frmts/filegdb/GNUmakefile | 4 +- gdal/ogr/ogrsf_frmts/filegdb/makefile.vc | 2 +- gdal/ogr/ogrsf_frmts/filegdb/ogr_fgdb.h | 9 +- gdal/ogr/ogrsf_frmts/flatgeobuf/GNUmakefile | 2 +- .../ogr/ogrsf_frmts/flatgeobuf/feature_generated.h | 2 - gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/base.h | 63 +- .../flatgeobuf/flatbuffers/code_generators.h | 10 +- .../flatgeobuf/flatbuffers/flatbuffers.h | 225 +- .../flatgeobuf/flatbuffers/flexbuffers.h | 31 +- gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/grpc.h | 5 +- gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/idl.h | 125 +- .../flatgeobuf/flatbuffers/minireflect.h | 25 +- .../flatgeobuf/flatbuffers/pch/flatc_pch.h | 39 + .../ogrsf_frmts/flatgeobuf/flatbuffers/pch/pch.h | 38 + .../flatgeobuf/flatbuffers/reflection.h | 31 +- .../flatgeobuf/flatbuffers/reflection_generated.h | 100 +- .../flatgeobuf/flatbuffers/stl_emulation.h | 384 +- gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/util.h | 15 + gdal/ogr/ogrsf_frmts/flatgeobuf/geometrywriter.cpp | 41 +- gdal/ogr/ogrsf_frmts/flatgeobuf/header_generated.h | 83 +- gdal/ogr/ogrsf_frmts/flatgeobuf/ogr_flatgeobuf.h | 27 +- .../flatgeobuf/ogrflatgeobufdataset.cpp | 18 +- .../ogrsf_frmts/flatgeobuf/ogrflatgeobuflayer.cpp | 191 +- gdal/ogr/ogrsf_frmts/fme/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/fme/ogrfmedriver.cpp | 6 + gdal/ogr/ogrsf_frmts/generic/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/generic/makefile.vc | 2 +- .../ogrsf_frmts/generic/ogrmutexeddatasource.cpp | 20 + .../ogr/ogrsf_frmts/generic/ogrmutexeddatasource.h | 8 + gdal/ogr/ogrsf_frmts/generic/ogrregisterall.cpp | 24 - gdal/ogr/ogrsf_frmts/geoconcept/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/geoconcept/geoconcept.c | 11 +- gdal/ogr/ogrsf_frmts/geojson/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/geojson/libjson/config.h | 2 +- gdal/ogr/ogrsf_frmts/geojson/ogr_geojson.h | 2 +- gdal/ogr/ogrsf_frmts/geojson/ogrgeojsondriver.cpp | 2 +- gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.cpp | 2 +- gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonreader.h | 2 +- gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.cpp | 6 +- gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonutils.h | 2 +- gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.cpp | 46 +- gdal/ogr/ogrsf_frmts/geojson/ogrgeojsonwriter.h | 2 +- gdal/ogr/ogrsf_frmts/geojson/ogrtopojsonreader.cpp | 2 +- gdal/ogr/ogrsf_frmts/geomedia/GNUmakefile | 2 +- .../ogr/ogrsf_frmts/geomedia/ogrgeomediadriver.cpp | 10 +- gdal/ogr/ogrsf_frmts/georss/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/gml/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/gml/gmlreader.h | 4 + gdal/ogr/ogrsf_frmts/gml/ogrgmldatasource.cpp | 67 +- gdal/ogr/ogrsf_frmts/gml/ogrgmldriver.cpp | 3 +- gdal/ogr/ogrsf_frmts/gml/parsexsd.cpp | 48 +- gdal/ogr/ogrsf_frmts/gmlas/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/gmlas/ogrgmlasreader.cpp | 4 +- gdal/ogr/ogrsf_frmts/gmt/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/gmt/ogrgmtlayer.cpp | 6 +- gdal/ogr/ogrsf_frmts/gpkg/GNUmakefile | 2 +- .../ogrsf_frmts/gpkg/gdalgeopackagerasterband.cpp | 26 +- gdal/ogr/ogrsf_frmts/gpkg/ogr_geopackage.h | 42 +- .../ogrsf_frmts/gpkg/ogrgeopackagedatasource.cpp | 1346 +++++-- gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackagedriver.cpp | 15 +- .../ogrsf_frmts/gpkg/ogrgeopackagetablelayer.cpp | 630 +-- gdal/ogr/ogrsf_frmts/gpkg/ogrgeopackageutility.cpp | 5 + gdal/ogr/ogrsf_frmts/gpsbabel/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/gpsbabel/ogr_gpsbabel.h | 15 +- .../ogrsf_frmts/gpsbabel/ogrgpsbabeldatasource.cpp | 9 +- gdal/ogr/ogrsf_frmts/gpx/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/gpx/ogrgpxdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/gpx/ogrgpxlayer.cpp | 2 +- gdal/ogr/ogrsf_frmts/grass/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/gtm/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/gtm/ogrgtmdriver.cpp | 12 + gdal/ogr/ogrsf_frmts/htf/GNUmakefile | 14 - gdal/ogr/ogrsf_frmts/htf/makefile.vc | 15 - gdal/ogr/ogrsf_frmts/htf/ogr_htf.h | 172 - gdal/ogr/ogrsf_frmts/htf/ogrhtfdatasource.cpp | 239 -- gdal/ogr/ogrsf_frmts/htf/ogrhtfdriver.cpp | 83 - gdal/ogr/ogrsf_frmts/htf/ogrhtflayer.cpp | 703 ---- gdal/ogr/ogrsf_frmts/idb/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/idrisi/GNUmakefile | 2 +- .../ogr/ogrsf_frmts/idrisi/ogridrisidatasource.cpp | 5 +- gdal/ogr/ogrsf_frmts/ili/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/ili/ili2reader.cpp | 35 +- gdal/ogr/ogrsf_frmts/ili/imdreader.cpp | 2 + gdal/ogr/ogrsf_frmts/ili/ogrili1layer.cpp | 8 +- gdal/ogr/ogrsf_frmts/ingres/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/ingres/ogringresdriver.cpp | 11 + .../ogr/ogrsf_frmts/ingres/ogringrestablelayer.cpp | 14 +- gdal/ogr/ogrsf_frmts/jml/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/kml/GNUmakefile | 3 +- gdal/ogr/ogrsf_frmts/kml/kmlnode.cpp | 21 +- gdal/ogr/ogrsf_frmts/kml/kmlvector.cpp | 3 + gdal/ogr/ogrsf_frmts/kml/ogrkmldriver.cpp | 1 + gdal/ogr/ogrsf_frmts/libkml/GNUmakefile | 3 +- .../ogr/ogrsf_frmts/libkml/ogrlibkmldatasource.cpp | 39 + gdal/ogr/ogrsf_frmts/libkml/ogrlibkmldriver.cpp | 1 + gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.cpp | 13 +- gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlfeature.h | 2 +- .../ogrsf_frmts/libkml/ogrlibkmlfeaturestyle.cpp | 4 +- gdal/ogr/ogrsf_frmts/libkml/ogrlibkmlstyle.cpp | 36 +- gdal/ogr/ogrsf_frmts/lvbag/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/lvbag/ogrlvbagdriver.cpp | 21 +- gdal/ogr/ogrsf_frmts/lvbag/ogrlvbaglayer.cpp | 59 +- gdal/ogr/ogrsf_frmts/makefile.vc | 18 +- gdal/ogr/ogrsf_frmts/mapml/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/mapml/ogrmapmldataset.cpp | 13 +- gdal/ogr/ogrsf_frmts/mdb/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/mdb/ogrmdbdriver.cpp | 2 + gdal/ogr/ogrsf_frmts/mdb/ogrmdblayer.cpp | 2 +- gdal/ogr/ogrsf_frmts/mem/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/mem/ogr_mem.h | 3 + gdal/ogr/ogrsf_frmts/mem/ogrmemdatasource.cpp | 19 + gdal/ogr/ogrsf_frmts/mem/ogrmemdriver.cpp | 3 + gdal/ogr/ogrsf_frmts/mitab/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/mitab/mitab.h | 2 +- gdal/ogr/ogrsf_frmts/mitab/mitab_coordsys.cpp | 10 +- gdal/ogr/ogrsf_frmts/mitab/mitab_feature.cpp | 173 +- gdal/ogr/ogrsf_frmts/mitab/mitab_miffile.cpp | 6 +- gdal/ogr/ogrsf_frmts/mitab/mitab_spatialref.cpp | 342 +- gdal/ogr/ogrsf_frmts/mongodb/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/mongodb/ogrmongodbdriver.cpp | 3 + gdal/ogr/ogrsf_frmts/mongodbv3/GNUmakefile | 2 +- .../ogrsf_frmts/mongodbv3/ogrmongodbv3driver.cpp | 1 + gdal/ogr/ogrsf_frmts/mssqlspatial/GNUmakefile | 2 +- .../ogrsf_frmts/mssqlspatial/ogr_mssqlspatial.h | 29 +- .../mssqlspatial/ogrmssqlgeometryparser.cpp | 16 +- .../mssqlspatial/ogrmssqlgeometryvalidator.cpp | 176 +- .../mssqlspatial/ogrmssqlspatialdriver.cpp | 1 + .../mssqlspatial/ogrmssqlspatialtablelayer.cpp | 34 +- gdal/ogr/ogrsf_frmts/mvt/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/mvt/ogrmvtdataset.cpp | 30 +- gdal/ogr/ogrsf_frmts/mysql/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/mysql/ogrmysqldriver.cpp | 1 + gdal/ogr/ogrsf_frmts/nas/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/nas/ogrnasdatasource.cpp | 3 +- gdal/ogr/ogrsf_frmts/ngw/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/ngw/gdalngwdataset.cpp | 49 +- gdal/ogr/ogrsf_frmts/ngw/ngw_api.cpp | 28 +- gdal/ogr/ogrsf_frmts/ngw/ogr_ngw.h | 5 +- gdal/ogr/ogrsf_frmts/ngw/ogrngwdriver.cpp | 7 +- gdal/ogr/ogrsf_frmts/ngw/ogrngwlayer.cpp | 28 +- gdal/ogr/ogrsf_frmts/ntf/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/oci/ogr_oci.h | 2 +- gdal/ogr/ogrsf_frmts/oci/ogrocidatasource.cpp | 17 +- gdal/ogr/ogrsf_frmts/oci/ogrocidriver.cpp | 5 +- gdal/ogr/ogrsf_frmts/oci/ogrociselectlayer.cpp | 12 +- gdal/ogr/ogrsf_frmts/oci/ogrocisession.cpp | 35 +- gdal/ogr/ogrsf_frmts/oci/ogrocistatement.cpp | 20 +- gdal/ogr/ogrsf_frmts/oci/ogrocitablelayer.cpp | 6 +- gdal/ogr/ogrsf_frmts/odbc/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/odbc/ogrodbcdriver.cpp | 5 +- gdal/ogr/ogrsf_frmts/ods/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/ods/ogrodsdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/ogdi/ogrogdidriver.cpp | 1 + gdal/ogr/ogrsf_frmts/ogrsf_frmts.h | 8 - gdal/ogr/ogrsf_frmts/openair/GNUmakefile | 14 - gdal/ogr/ogrsf_frmts/openair/makefile.vc | 15 - gdal/ogr/ogrsf_frmts/openair/ogr_openair.h | 138 - .../ogrsf_frmts/openair/ogropenairdatasource.cpp | 204 - gdal/ogr/ogrsf_frmts/openair/ogropenairdriver.cpp | 128 - .../ogrsf_frmts/openair/ogropenairlabellayer.cpp | 161 - gdal/ogr/ogrsf_frmts/openair/ogropenairlayer.cpp | 461 --- gdal/ogr/ogrsf_frmts/openfilegdb/GNUmakefile | 4 +- .../ogrsf_frmts/openfilegdb/filegdb_fielddomain.h | 218 + .../openfilegdb/filegdb_gdbtoogrfieldtype.h | 132 + gdal/ogr/ogrsf_frmts/openfilegdb/filegdbindex.cpp | 4 +- gdal/ogr/ogrsf_frmts/openfilegdb/filegdbtable.cpp | 34 +- gdal/ogr/ogrsf_frmts/openfilegdb/ogr_openfilegdb.h | 5 +- .../openfilegdb/ogropenfilegdbdatasource.cpp | 175 +- .../openfilegdb/ogropenfilegdbdriver.cpp | 1 + .../openfilegdb/ogropenfilegdblayer.cpp | 107 +- gdal/ogr/ogrsf_frmts/osm/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/osm/ogr_osm.h | 10 +- gdal/ogr/ogrsf_frmts/osm/ogrosmdatasource.cpp | 34 +- gdal/ogr/ogrsf_frmts/osm/ogrosmdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/osm/ogrosmlayer.cpp | 12 +- gdal/ogr/ogrsf_frmts/osm/osm_parser.cpp | 2 +- gdal/ogr/ogrsf_frmts/pds/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/pg/GNUmakefile | 4 +- gdal/ogr/ogrsf_frmts/pg/ogr_pg.h | 205 +- gdal/ogr/ogrsf_frmts/pg/ogrpgdatasource.cpp | 120 +- gdal/ogr/ogrsf_frmts/pg/ogrpgdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/pg/ogrpglayer.cpp | 146 +- gdal/ogr/ogrsf_frmts/pg/ogrpgresultlayer.cpp | 23 +- gdal/ogr/ogrsf_frmts/pg/ogrpgtablelayer.cpp | 88 +- gdal/ogr/ogrsf_frmts/pgdump/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/pgdump/ogr_pgdump.h | 87 +- .../ogr/ogrsf_frmts/pgdump/ogrpgdumpdatasource.cpp | 9 +- gdal/ogr/ogrsf_frmts/pgdump/ogrpgdumplayer.cpp | 23 +- gdal/ogr/ogrsf_frmts/pgeo/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/pgeo/ogr_pgeo.h | 9 +- gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodatasource.cpp | 59 + gdal/ogr/ogrsf_frmts/pgeo/ogrpgeodriver.cpp | 2 + gdal/ogr/ogrsf_frmts/pgeo/ogrpgeolayer.cpp | 2 +- gdal/ogr/ogrsf_frmts/pgeo/ogrpgeotablelayer.cpp | 4 +- gdal/ogr/ogrsf_frmts/plscenes/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/plscenes/ogr_plscenes.h | 4 +- .../plscenes/ogrplscenesdatav1dataset.cpp | 81 +- .../plscenes/ogrplscenesdatav1layer.cpp | 28 +- gdal/ogr/ogrsf_frmts/rec/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/rec/ogrrecdriver.cpp | 5 + gdal/ogr/ogrsf_frmts/s57/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/s57/ogrs57driver.cpp | 1 + gdal/ogr/ogrsf_frmts/s57/s57reader.cpp | 6 +- gdal/ogr/ogrsf_frmts/s57/s57writer.cpp | 10 +- gdal/ogr/ogrsf_frmts/sdts/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/segukooa/GNUmakefile | 14 - gdal/ogr/ogrsf_frmts/segukooa/makefile.vc | 15 - gdal/ogr/ogrsf_frmts/segukooa/ogr_segukooa.h | 155 - .../ogrsf_frmts/segukooa/ogrsegukooadatasource.cpp | 188 - .../ogr/ogrsf_frmts/segukooa/ogrsegukooadriver.cpp | 81 - gdal/ogr/ogrsf_frmts/segukooa/ogrsegukooalayer.cpp | 834 ---- gdal/ogr/ogrsf_frmts/segukooa/segukooa.txt | 13 - gdal/ogr/ogrsf_frmts/segy/GNUmakefile | 14 - gdal/ogr/ogrsf_frmts/segy/makefile.vc | 15 - gdal/ogr/ogrsf_frmts/segy/ogr_segy.h | 158 - gdal/ogr/ogrsf_frmts/segy/ogrsegydatasource.cpp | 215 - gdal/ogr/ogrsf_frmts/segy/ogrsegydriver.cpp | 195 - gdal/ogr/ogrsf_frmts/segy/ogrsegylayer.cpp | 939 ----- gdal/ogr/ogrsf_frmts/segy/segy.txt | 30 - gdal/ogr/ogrsf_frmts/selafin/GNUmakefile | 2 +- .../ogrsf_frmts/selafin/ogrselafindatasource.cpp | 3 +- gdal/ogr/ogrsf_frmts/shape/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/shape/dbfopen.c | 467 +-- gdal/ogr/ogrsf_frmts/shape/ogrshape.h | 1 - gdal/ogr/ogrsf_frmts/shape/ogrshapedatasource.cpp | 8 +- gdal/ogr/ogrsf_frmts/shape/ogrshapelayer.cpp | 46 +- gdal/ogr/ogrsf_frmts/shape/sbnsearch.c | 257 +- gdal/ogr/ogrsf_frmts/shape/shape2ogr.cpp | 402 +- gdal/ogr/ogrsf_frmts/shape/shapefil.h | 1 + gdal/ogr/ogrsf_frmts/shape/shpopen.c | 532 ++- gdal/ogr/ogrsf_frmts/shape/shptree.c | 74 +- gdal/ogr/ogrsf_frmts/sosi/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/sqlite/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/sqlite/ogr_sqlite.h | 13 +- .../ogr/ogrsf_frmts/sqlite/ogrsqlitedatasource.cpp | 78 +- gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitedriver.cpp | 1 + gdal/ogr/ogrsf_frmts/sqlite/ogrsqlitelayer.cpp | 111 +- .../ogrsf_frmts/sqlite/ogrsqliteselectlayer.cpp | 2 +- .../ogrsf_frmts/sqlite/ogrsqlitesqlfunctions.cpp | 13 +- .../ogr/ogrsf_frmts/sqlite/ogrsqlitetablelayer.cpp | 55 +- gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.cpp | 225 +- gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteutility.h | 30 +- gdal/ogr/ogrsf_frmts/sqlite/ogrsqliteviewlayer.cpp | 2 +- .../ogr/ogrsf_frmts/sqlite/ogrsqlitevirtualogr.cpp | 23 +- gdal/ogr/ogrsf_frmts/sua/GNUmakefile | 14 - gdal/ogr/ogrsf_frmts/sua/makefile.vc | 15 - gdal/ogr/ogrsf_frmts/sua/ogr_sua.h | 90 - gdal/ogr/ogrsf_frmts/sua/ogrsuadatasource.cpp | 99 - gdal/ogr/ogrsf_frmts/sua/ogrsuadriver.cpp | 125 - gdal/ogr/ogrsf_frmts/sua/ogrsualayer.cpp | 352 -- gdal/ogr/ogrsf_frmts/svg/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/sxf/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/sxf/ogrsxfdatasource.cpp | 4 +- gdal/ogr/ogrsf_frmts/sxf/ogrsxflayer.cpp | 12 +- gdal/ogr/ogrsf_frmts/tiger/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/vdv/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/vfk/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/vfk/vfkdatablock.cpp | 22 +- gdal/ogr/ogrsf_frmts/vfk/vfkdatablocksqlite.cpp | 36 +- gdal/ogr/ogrsf_frmts/vfk/vfkreader.h | 2 +- gdal/ogr/ogrsf_frmts/vrt/GNUmakefile | 4 +- gdal/ogr/ogrsf_frmts/vrt/ogrvrtdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/vrt/ogrvrtlayer.cpp | 42 +- gdal/ogr/ogrsf_frmts/walk/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/walk/ogrwalkdriver.cpp | 10 +- gdal/ogr/ogrsf_frmts/wasp/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/wasp/ogrwasplayer.cpp | 14 +- gdal/ogr/ogrsf_frmts/wfs/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/wfs/ogroapifdriver.cpp | 100 +- gdal/ogr/ogrsf_frmts/wfs/ogrwfsdatasource.cpp | 48 +- gdal/ogr/ogrsf_frmts/wfs/ogrwfsjoinlayer.cpp | 21 +- gdal/ogr/ogrsf_frmts/xls/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/xls/ogrxlsdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/xls/ogrxlslayer.cpp | 2 + gdal/ogr/ogrsf_frmts/xlsx/GNUmakefile | 2 +- gdal/ogr/ogrsf_frmts/xlsx/ogr_xlsx.h | 1 + gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdatasource.cpp | 16 +- gdal/ogr/ogrsf_frmts/xlsx/ogrxlsxdriver.cpp | 1 + gdal/ogr/ogrsf_frmts/xplane/GNUmakefile | 18 - gdal/ogr/ogrsf_frmts/xplane/makefile.vc | 18 - gdal/ogr/ogrsf_frmts/xplane/ogr_xplane.h | 130 - .../ogrsf_frmts/xplane/ogr_xplane_apt_reader.cpp | 3260 --------------- .../ogr/ogrsf_frmts/xplane/ogr_xplane_apt_reader.h | 674 ---- .../ogrsf_frmts/xplane/ogr_xplane_awy_reader.cpp | 426 -- .../ogr/ogrsf_frmts/xplane/ogr_xplane_awy_reader.h | 101 - .../ogrsf_frmts/xplane/ogr_xplane_fix_reader.cpp | 179 - .../ogr/ogrsf_frmts/xplane/ogr_xplane_fix_reader.h | 71 - .../ogrsf_frmts/xplane/ogr_xplane_nav_reader.cpp | 905 ----- .../ogr/ogrsf_frmts/xplane/ogr_xplane_nav_reader.h | 210 - gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_reader.cpp | 332 -- gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_reader.h | 147 - .../ogr/ogrsf_frmts/xplane/ogrxplanedatasource.cpp | 179 - gdal/ogr/ogrsf_frmts/xplane/ogrxplanedriver.cpp | 98 - gdal/ogr/ogrsf_frmts/xplane/ogrxplanelayer.cpp | 333 -- gdal/ogr/ogrspatialreference.cpp | 518 ++- gdal/ogr/ogrtriangle.cpp | 14 +- gdal/ogr/ogrtriangulatedsurface.cpp | 10 + gdal/ogr/ogrutils.cpp | 6 +- gdal/ogr/swq.cpp | 62 + gdal/ogr/swq_op_general.cpp | 26 + gdal/ogr/swq_parser.cpp | 362 +- gdal/ogr/swq_parser.y | 42 +- gdal/perftests/computestatistics.py | 28 + gdal/port/GNUmakefile | 27 +- gdal/port/cpl_aws.cpp | 14 +- gdal/port/cpl_aws.h | 2 + gdal/port/cpl_compressor.cpp | 1919 +++++++++ gdal/port/cpl_compressor.h | 125 + gdal/port/cpl_conv.cpp | 19 +- gdal/port/cpl_conv.h | 2 +- gdal/port/cpl_curl_priv.h | 40 + gdal/port/cpl_error.cpp | 14 +- gdal/port/cpl_google_cloud.cpp | 63 +- gdal/port/cpl_google_cloud.h | 7 +- gdal/port/cpl_http.cpp | 345 +- gdal/port/cpl_json.cpp | 32 +- gdal/port/cpl_json.h | 2 + gdal/port/cpl_md5.cpp | 31 +- gdal/port/cpl_md5.h | 4 +- gdal/port/cpl_minixml.cpp | 21 +- gdal/port/cpl_minizip_unzip.cpp | 2 + gdal/port/cpl_minizip_zip.cpp | 5 +- gdal/port/cpl_odbc.cpp | 100 +- gdal/port/cpl_port.h | 12 +- gdal/port/cpl_quad_tree.cpp | 100 + gdal/port/cpl_quad_tree.h | 4 + gdal/port/cpl_spawn.cpp | 6 +- gdal/port/cpl_string.cpp | 230 +- gdal/port/cpl_swift.cpp | 191 +- gdal/port/cpl_swift.h | 11 +- gdal/port/cpl_virtualmem.cpp | 6 +- gdal/port/cpl_vsi.h | 72 +- gdal/port/cpl_vsi_mem.cpp | 8 +- gdal/port/cpl_vsi_virtual.h | 5 +- gdal/port/cpl_vsil.cpp | 141 +- gdal/port/cpl_vsil_adls.cpp | 17 +- gdal/port/cpl_vsil_az.cpp | 386 +- gdal/port/cpl_vsil_crypt.cpp | 11 +- gdal/port/cpl_vsil_curl.cpp | 226 +- gdal/port/cpl_vsil_curl_class.h | 33 +- gdal/port/cpl_vsil_curl_streaming.cpp | 28 +- gdal/port/cpl_vsil_gs.cpp | 461 ++- gdal/port/cpl_vsil_gzip.cpp | 59 +- gdal/port/cpl_vsil_hdfs.cpp | 6 +- gdal/port/cpl_vsil_oss.cpp | 20 +- gdal/port/cpl_vsil_plugin.cpp | 5 +- gdal/port/cpl_vsil_plugin.h | 3 +- gdal/port/cpl_vsil_s3.cpp | 300 +- gdal/port/cpl_vsil_sparsefile.cpp | 6 +- gdal/port/cpl_vsil_stdin.cpp | 6 +- gdal/port/cpl_vsil_stdout.cpp | 12 +- gdal/port/cpl_vsil_subfile.cpp | 8 +- gdal/port/cpl_vsil_swift.cpp | 30 +- gdal/port/cpl_vsil_tar.cpp | 6 +- gdal/port/cpl_vsil_unix_stdio_64.cpp | 6 +- gdal/port/cpl_vsil_uploadonclose.cpp | 4 +- gdal/port/cpl_vsil_webhdfs.cpp | 49 +- gdal/port/cpl_vsil_win32.cpp | 6 +- gdal/port/cplkeywordparser.cpp | 31 + gdal/port/makefile.vc | 17 + gdal/scripts/GNUmakefile | 2 +- gdal/scripts/completionFinder.py | 6 +- gdal/scripts/fix_typos.sh | 28 +- gdal/scripts/gdal-bash-completion.sh | 12 +- gdal/scripts/typos_allowlist.txt | 110 +- gdal/swig/SWIGmake.base | 25 +- gdal/swig/csharp/GNUmakefile | 39 +- gdal/swig/csharp/apps/GDALColorTable.cs | 12 +- gdal/swig/csharp/apps/GDALWrite.cs | 8 +- gdal/swig/csharp/apps/WKT2WKB.cs | 4 +- gdal/swig/csharp/apps/ogrinfo.cs | 2 +- gdal/swig/include/Band.i | 10 +- gdal/swig/include/Dataset.i | 18 + gdal/swig/include/MajorObject.i | 3 +- gdal/swig/include/MultiDimensional.i | 168 +- gdal/swig/include/cpl.i | 17 +- gdal/swig/include/csharp/ogr_csharp.i | 10 +- gdal/swig/include/gdal.i | 23 +- gdal/swig/include/gdal_array.i | 201 +- gdal/swig/include/gdalconst.i | 23 +- gdal/swig/include/java/gdal_java.i | 7 + gdal/swig/include/java/ogr_java.i | 16 + gdal/swig/include/java/typemaps_java.i | 37 +- gdal/swig/include/ogr.i | 350 +- gdal/swig/include/osr.i | 62 +- gdal/swig/include/perl/gdal_perl.i | 11 +- gdal/swig/include/perl/ogr_perl.i | 2 +- gdal/swig/include/perl/typemaps_perl.i | 60 +- gdal/swig/include/python/callback.i | 2 +- gdal/swig/include/python/gdal_python.i | 705 ++-- gdal/swig/include/python/ogr_python.i | 31 +- gdal/swig/include/python/python_exceptions.i | 3 + gdal/swig/include/python/python_strings.i | 23 +- gdal/swig/include/python/typemaps_python.i | 544 ++- gdal/swig/java/GNUmakefile | 2 +- gdal/swig/java/apps/WKT2WKB.java | 2 +- gdal/swig/java/javadoc.java | 12 +- gdal/swig/makefile.vc | 13 +- gdal/swig/perl/GNUmakefile | 6 +- gdal/swig/perl/lib/Geo/GDAL.dox | 2 +- gdal/swig/perl/lib/Geo/OSR.dox | 4 +- gdal/swig/python/GNUmakefile | 106 +- gdal/swig/python/README.rst | 4 +- gdal/swig/python/extensions/gdal_array_wrap.cpp | 239 +- gdal/swig/python/extensions/gdal_wrap.cpp | 2580 +++++++----- gdal/swig/python/extensions/gdalconst_wrap.c | 23 +- gdal/swig/python/extensions/gnm_wrap.cpp | 51 +- gdal/swig/python/extensions/ogr_wrap.cpp | 2450 ++++++++++-- gdal/swig/python/extensions/osr_wrap.cpp | 352 +- gdal/swig/python/gdal-utils/.gitignore | 117 + gdal/swig/python/gdal-utils/README.rst | 46 + .../swig/python/gdal-utils/osgeo_utils/__init__.py | 11 + .../osgeo_utils}/auxiliary/__init__.py | 0 .../gdal-utils/osgeo_utils/auxiliary/array_util.py | 69 + .../osgeo_utils}/auxiliary/base.py | 68 +- .../osgeo_utils/auxiliary/batch_creator.py | 85 + .../osgeo_utils}/auxiliary/color_palette.py | 284 +- .../osgeo_utils}/auxiliary/color_table.py | 57 +- .../osgeo_utils}/auxiliary/extent_util.py | 4 +- .../osgeo_utils/auxiliary/gdal_argparse.py | 166 + .../osgeo_utils}/auxiliary/numpy_util.py | 21 +- .../gdal-utils/osgeo_utils/auxiliary/osr_util.py | 135 + .../gdal-utils/osgeo_utils/auxiliary/progress.py | 85 + .../osgeo_utils/auxiliary/raster_creation.py | 151 + .../osgeo_utils}/auxiliary/rectangle.py | 0 .../gdal-utils/osgeo_utils/auxiliary/util.py | 402 ++ .../osgeo_utils}/gdal2tiles.py | 3 +- .../swig/python/gdal-utils/osgeo_utils/gdal2xyz.py | 294 ++ .../utils => gdal-utils/osgeo_utils}/gdal_calc.py | 546 ++- .../utils => gdal-utils/osgeo_utils}/gdal_edit.py | 0 .../osgeo_utils}/gdal_fillnodata.py | 160 +- .../utils => gdal-utils/osgeo_utils}/gdal_merge.py | 22 +- .../osgeo_utils}/gdal_pansharpen.py | 173 +- .../osgeo_utils}/gdal_polygonize.py | 174 +- .../osgeo_utils}/gdal_proximity.py | 60 +- .../osgeo_utils}/gdal_retile.py | 0 .../utils => gdal-utils/osgeo_utils}/gdal_sieve.py | 30 +- .../osgeo_utils}/gdalattachpct.py | 29 +- .../osgeo_utils}/gdalcompare.py | 4 +- .../utils => gdal-utils/osgeo_utils}/gdalmove.py | 10 +- .../utils => gdal-utils/osgeo_utils}/ogrmerge.py | 76 +- .../utils => gdal-utils/osgeo_utils}/pct2rgb.py | 139 +- .../utils => gdal-utils/osgeo_utils}/rgb2pct.py | 141 +- .../osgeo_utils/samples}/__init__.py | 0 .../osgeo_utils}/samples/assemblepoly.py | 0 .../osgeo_utils}/samples/build_jp2_from_xml.py | 5 +- .../osgeo_utils}/samples/classify.py | 0 .../osgeo_utils}/samples/crs2crs2grid.py | 0 .../osgeo_utils}/samples/densify.py | 59 +- .../osgeo_utils}/samples/dump_jp2.py | 5 +- .../osgeo_utils/samples}/epsg_tr.py | 104 +- .../osgeo_utils/samples}/esri2wkt.py | 44 +- .../{ => gdal-utils/osgeo_utils}/samples/fft.py | 6 +- .../osgeo_utils}/samples/fix_gpkg.py | 0 .../osgeo_utils}/samples/gcps2ogr.py | 0 .../osgeo_utils/samples}/gcps2vec.py | 49 +- .../osgeo_utils/samples}/gcps2wld.py | 0 .../osgeo_utils}/samples/gdal2grd.py | 0 .../osgeo_utils/samples}/gdal_auth.py | 0 .../osgeo_utils}/samples/gdal_cp.py | 2 +- .../osgeo_utils}/samples/gdal_create_pdf.py | 0 .../osgeo_utils}/samples/gdal_ls.py | 5 +- .../osgeo_utils}/samples/gdal_lut.py | 8 +- .../osgeo_utils}/samples/gdal_mkdir.py | 0 .../osgeo_utils}/samples/gdal_remove_towgs84.py | 0 .../osgeo_utils}/samples/gdal_rm.py | 7 +- .../osgeo_utils}/samples/gdal_rmdir.py | 0 .../osgeo_utils}/samples/gdal_vrtmerge.py | 0 .../osgeo_utils}/samples/gdal_zip.py | 0 .../osgeo_utils/samples}/gdalchksum.py | 0 .../osgeo_utils}/samples/gdalcopyproj.py | 0 .../osgeo_utils}/samples/gdalfilter.py | 0 .../osgeo_utils/samples}/gdalident.py | 0 .../osgeo_utils/samples}/gdalimport.py | 0 .../osgeo_utils}/samples/gdalinfo.py | 0 .../osgeo_utils/samples/gdallocationinfo.py | 433 ++ .../osgeo_utils}/samples/get_soundg.py | 0 .../osgeo_utils}/samples/histrep.py | 0 .../osgeo_utils}/samples/hsv_merge.py | 6 +- .../osgeo_utils}/samples/jpeg_in_tiff_extract.py | 0 .../osgeo_utils}/samples/load2odbc.py | 0 .../osgeo_utils}/samples/loslas2ntv2.py | 2 +- .../osgeo_utils}/samples/magphase.py | 0 .../samples/make_fuzzer_friendly_archive.py | 0 .../osgeo_utils/samples}/mkgraticule.py | 0 .../osgeo_utils}/samples/ogr2ogr.py | 0 .../osgeo_utils}/samples/ogr2vrt.py | 0 .../samples/ogr_build_junction_table.py | 0 .../osgeo_utils}/samples/ogr_dispatch.py | 6 +- .../osgeo_utils}/samples/ogr_layer_algebra.py | 14 +- .../osgeo_utils}/samples/ogrinfo.py | 0 .../osgeo_utils}/samples/ogrupdate.py | 0 .../{ => gdal-utils/osgeo_utils}/samples/rel.py | 4 +- .../osgeo_utils}/samples/tigerpoly.py | 0 .../samples/tile_extent_from_raster.py | 2 +- .../osgeo_utils}/samples/tolatlong.py | 0 .../osgeo_utils}/samples/val_repl.py | 6 +- .../samples/validate_cloud_optimized_geotiff.py | 0 .../osgeo_utils}/samples/validate_gpkg.py | 525 ++- .../osgeo_utils}/samples/validate_jp2.py | 0 .../{ => gdal-utils/osgeo_utils}/samples/vec_tr.py | 0 .../osgeo_utils}/samples/vec_tr_spat.py | 0 .../osgeo_utils}/samples/wcs_virtds_params.py | 0 gdal/swig/python/gdal-utils/scripts/gdal2tiles.py | 11 + gdal/swig/python/gdal-utils/scripts/gdal2xyz.py | 11 + gdal/swig/python/gdal-utils/scripts/gdal_calc.py | 11 + gdal/swig/python/gdal-utils/scripts/gdal_edit.py | 11 + .../python/gdal-utils/scripts/gdal_fillnodata.py | 11 + gdal/swig/python/gdal-utils/scripts/gdal_merge.py | 11 + .../python/gdal-utils/scripts/gdal_pansharpen.py | 11 + .../python/gdal-utils/scripts/gdal_polygonize.py | 11 + .../python/gdal-utils/scripts/gdal_proximity.py | 11 + gdal/swig/python/gdal-utils/scripts/gdal_retile.py | 11 + gdal/swig/python/gdal-utils/scripts/gdal_sieve.py | 11 + .../python/gdal-utils/scripts/gdalattachpct.py | 11 + gdal/swig/python/gdal-utils/scripts/gdalcompare.py | 11 + gdal/swig/python/gdal-utils/scripts/gdalmove.py | 11 + gdal/swig/python/gdal-utils/scripts/ogrmerge.py | 11 + gdal/swig/python/gdal-utils/scripts/pct2rgb.py | 11 + gdal/swig/python/gdal-utils/scripts/rgb2pct.py | 11 + gdal/swig/python/gdal-utils/setup.py | 57 + gdal/swig/python/osgeo/__init__.py | 86 +- gdal/swig/python/osgeo/gdal.py | 332 +- gdal/swig/python/osgeo/gdal_array.py | 161 +- gdal/swig/python/osgeo/gdalconst.py | 22 +- gdal/swig/python/osgeo/gnm.py | 14 +- gdal/swig/python/osgeo/ogr.py | 180 +- gdal/swig/python/osgeo/osr.py | 27 + gdal/swig/python/osgeo/utils.py | 3 + gdal/swig/python/osgeo/utils/auxiliary/util.py | 156 - gdal/swig/python/osgeo/utils/gdal2xyz.py | 248 -- gdal/swig/python/samples/README.md | 161 - gdal/swig/python/samples/val_at_coord.py | 136 - gdal/swig/python/scripts/epsg_tr.py | 11 - gdal/swig/python/scripts/esri2wkt.py | 11 - gdal/swig/python/scripts/gcps2vec.py | 11 - gdal/swig/python/scripts/gcps2wld.py | 11 - gdal/swig/python/scripts/gdal2xyz.py | 11 - gdal/swig/python/scripts/gdal_auth.py | 11 - gdal/swig/python/scripts/gdal_calc.py | 11 - gdal/swig/python/scripts/gdal_edit.py | 11 - gdal/swig/python/scripts/gdal_fillnodata.py | 11 - gdal/swig/python/scripts/gdal_merge.py | 11 - gdal/swig/python/scripts/gdal_pansharpen.py | 11 - gdal/swig/python/scripts/gdal_polygonize.py | 11 - gdal/swig/python/scripts/gdal_proximity.py | 11 - gdal/swig/python/scripts/gdal_retile.py | 11 - gdal/swig/python/scripts/gdal_sieve.py | 11 - gdal/swig/python/scripts/gdalattachpct.py | 11 - gdal/swig/python/scripts/gdalchksum.py | 11 - gdal/swig/python/scripts/gdalcompare.py | 11 - gdal/swig/python/scripts/gdalident.py | 11 - gdal/swig/python/scripts/gdalimport.py | 11 - gdal/swig/python/scripts/gdalmove.py | 11 - gdal/swig/python/scripts/mkgraticule.py | 11 - gdal/swig/python/scripts/ogrmerge.py | 11 - gdal/swig/python/scripts/pct2rgb.py | 11 - gdal/swig/python/scripts/rgb2pct.py | 11 - .../python/scripts/tests/gdal2tiles/__init__.py | 0 .../test_add_gdal_warp_options_to_string.py | 40 - .../scripts/tests/gdal2tiles/test_nb_data_bands.py | 43 - ...test_update_alpha_value_for_non_alpha_inputs.py | 29 - gdal/swig/python/setup.py | 106 +- gdal/third_party/GNUmakefile | 10 +- gdal/third_party/LercLib/Lerc.cpp | 10 +- gdal/third_party/LercLib/Lerc2.h | 10 +- gdal/third_party/LercLib/Lerc_c_api.h | 14 + gdal/third_party/makefile.vc | 2 +- 1853 files changed, 82245 insertions(+), 56206 deletions(-) create mode 120000 .github/LICENSE.TXT create mode 100644 .github/workflows/backport.yml create mode 100644 .github/workflows/fedora_rawhide.yml create mode 100755 .github/workflows/fedora_rawhide/start.sh create mode 100644 GOVERNANCE.md create mode 100644 SECURITY.md create mode 100644 autotest/alg/data/geoloc/latitude_including_pole.tif create mode 100644 autotest/alg/data/geoloc/longitude_including_pole.tif create mode 100644 autotest/alg/data/polygonize_check_area.tif create mode 100644 autotest/alg/data/polygonize_in_3.grd create mode 100644 autotest/alg/data/polygonize_in_4.grd create mode 100644 autotest/cpp/data/test_aux.db create mode 100644 autotest/gcore/data/gtiff/compdcrs_without_gtcitation.tif create mode 100644 autotest/gcore/data/pixfun_pow.vrt create mode 100644 autotest/gcore/multidim.py create mode 100644 autotest/gcore/vsiaz_real_instance_auto.py create mode 100644 autotest/gcore/vsiaz_real_instance_manual.py delete mode 100644 autotest/gdrivers/data/e00grid/fake_e00grid.e00 delete mode 100644 autotest/gdrivers/data/e00grid/fake_e00grid_compressed.e00 create mode 100644 autotest/gdrivers/data/grib/one_value_and_nodata_points.grb2 delete mode 100644 autotest/gdrivers/data/ignfheightasciigrid/ignfheightasciigrid.gra delete mode 100644 autotest/gdrivers/data/ignfheightasciigrid/ignfheightasciigrid_ar1.mnt delete mode 100644 autotest/gdrivers/data/ignfheightasciigrid/ignfheightasciigrid_ar1_nocoords.mnt delete mode 100644 autotest/gdrivers/data/ignfheightasciigrid/ignfheightasciigrid_ar1_nocoords_noprec.mnt delete mode 100644 autotest/gdrivers/data/ignfheightasciigrid/ignfheightasciigrid_ar1_noprec.mnt delete mode 100644 autotest/gdrivers/data/ignfheightasciigrid/ignfheightasciigrid_ar2.mnt delete mode 100644 autotest/gdrivers/data/ignfheightasciigrid/ignfheightasciigrid_ar3.mnt delete mode 100644 autotest/gdrivers/data/ignfheightasciigrid/ignfheightasciigrid_ar4.mnt create mode 100644 autotest/gdrivers/data/kml/small_world_in_document_pct.kml create mode 100644 autotest/gdrivers/data/netcdf/MODIS_ARRAY.nc create mode 100644 autotest/gdrivers/data/netcdf/fake_ISO_METADATA.nc create mode 100644 autotest/gdrivers/data/netcdf/sentinel5p_fake.nc create mode 100644 autotest/gdrivers/data/nitf/sar_sicd.ntf delete mode 100644 autotest/gdrivers/data/ntv1/ntv1_can_truncated.dat create mode 100644 autotest/gdrivers/data/sar_ceos/R1_26161_FN1_F164.D create mode 100644 autotest/gdrivers/data/sar_ceos/R1_26161_FN1_F164.L create mode 100644 autotest/gdrivers/data/sar_ceos/ottawa_patch.img create mode 100644 autotest/gdrivers/data/stacit/overlapping_sources.json create mode 100644 autotest/gdrivers/data/stacit/test.json create mode 100644 autotest/gdrivers/data/stacit/test_multiple_assets.json create mode 100644 autotest/gdrivers/data/stacit/test_page2.json create mode 100644 autotest/gdrivers/data/zarr/array_attrs.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/array_attrs.zarr/.zattrs create mode 100755 autotest/gdrivers/data/zarr/array_dimensions.zarr/.zgroup create mode 100644 autotest/gdrivers/data/zarr/array_dimensions.zarr/.zmetadata create mode 100644 autotest/gdrivers/data/zarr/array_dimensions.zarr/lat/.zarray create mode 100644 autotest/gdrivers/data/zarr/array_dimensions.zarr/lat/.zattrs create mode 100644 autotest/gdrivers/data/zarr/array_dimensions.zarr/lon/.zarray create mode 100644 autotest/gdrivers/data/zarr/array_dimensions.zarr/lon/.zattrs create mode 100644 autotest/gdrivers/data/zarr/array_dimensions.zarr/var/.zarray create mode 100644 autotest/gdrivers/data/zarr/array_dimensions.zarr/var/.zattrs create mode 100644 autotest/gdrivers/data/zarr/blosc.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/blosc.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/compound_complex.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/compound_complex.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/compound_not_aligned.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/compound_not_aligned.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/compound_well_aligned.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/compound_well_aligned.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/delta_filter_i4.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/delta_filter_i4.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/empty.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/empty.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/f2_be.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/f2_be.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/f2_le.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/f2_le.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/generate_test_files.py create mode 100644 autotest/gdrivers/data/zarr/group.zarr/.zattrs create mode 100644 autotest/gdrivers/data/zarr/group.zarr/.zgroup create mode 100644 autotest/gdrivers/data/zarr/group.zarr/foo/.zgroup create mode 100644 autotest/gdrivers/data/zarr/group.zarr/foo/bar/.zgroup create mode 100644 autotest/gdrivers/data/zarr/group.zarr/foo/bar/baz/.zarray create mode 100644 autotest/gdrivers/data/zarr/group.zarr/foo/bar/baz/0 create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/.zattrs create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/.zgroup create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/.zmetadata create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/foo/.zgroup create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/foo/bar/.zattrs create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/foo/bar/.zgroup create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/foo/bar/baz/.zarray create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/foo/bar/baz/.zattrs create mode 100644 autotest/gdrivers/data/zarr/group_with_zmetadata.zarr/foo/bar/baz/0 create mode 100644 autotest/gdrivers/data/zarr/gzip.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/gzip.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/lz4.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/lz4.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/lzma.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/lzma.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/lzma_with_filters.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/lzma_with_filters.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/order_f_s3.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/order_f_s3.zarr/0.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_s3.zarr/0.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_s3.zarr/1.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_s3.zarr/1.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_u1.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/order_f_u1.zarr/0.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u1.zarr/0.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_u1.zarr/1.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u1.zarr/1.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_u1_3d.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/order_f_u1_3d.zarr/0.0.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u2.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/order_f_u2.zarr/0.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u2.zarr/0.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_u2.zarr/1.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u2.zarr/1.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_u4.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/order_f_u4.zarr/0.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u4.zarr/0.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_u4.zarr/1.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u4.zarr/1.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_u8.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/order_f_u8.zarr/0.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u8.zarr/0.1 create mode 100644 autotest/gdrivers/data/zarr/order_f_u8.zarr/1.0 create mode 100644 autotest/gdrivers/data/zarr/order_f_u8.zarr/1.1 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/ar/c0 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/c0/0 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/c0/1 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/c1/0 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/c1/1 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/c2/0 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/c2/1 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/marvin/android/c0/0 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/marvin/android/c0/1 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/marvin/android/c1/0 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/marvin/android/c1/1 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/marvin/android/c2/0 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/marvin/android/c2/1 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/marvin/android/c3/0 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/data/root/marvin/android/c3/1 create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/meta/root.array.json create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/meta/root.group.json create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/meta/root/ar.array.json create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/meta/root/marvin.group.json create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/meta/root/marvin/android.array.json create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/meta/root/marvin/paranoid.group.json create mode 100644 autotest/gdrivers/data/zarr/v3/test.zr3/zarr.json create mode 100644 autotest/gdrivers/data/zarr/zlib.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/zlib.zarr/0 create mode 100644 autotest/gdrivers/data/zarr/zstd.zarr/.zarray create mode 100644 autotest/gdrivers/data/zarr/zstd.zarr/0 delete mode 100755 autotest/gdrivers/e00grid.py delete mode 100755 autotest/gdrivers/ignfheightasciigrid.py create mode 100755 autotest/gdrivers/stacit.py create mode 100644 autotest/gdrivers/zarr_driver.py delete mode 100644 autotest/ogr/data/bna/test.bna create mode 100644 autotest/ogr/data/dxf/block-hidden-entities.dxf create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000001.TablesByName.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000001.gdbindexes create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000001.gdbtable create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000001.gdbtablx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000002.gdbtable create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000002.gdbtablx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000003.gdbindexes create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000003.gdbtable create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000003.gdbtablx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000004.CatItemsByPhysicalName.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000004.CatItemsByType.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000004.FDO_UUID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000004.freelist create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000004.gdbindexes create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000004.gdbtable create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000004.gdbtablx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000004.spx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000005.CatRelsByDestinationID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000005.CatRelsByOriginID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000005.CatRelsByType.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000005.FDO_UUID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000005.gdbindexes create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000005.gdbtable create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000005.gdbtablx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.CatRelTypesByBackwardLabel.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.CatRelTypesByDestItemTypeID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.CatRelTypesByForwardLabel.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.CatRelTypesByName.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.CatRelTypesByOriginItemTypeID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.CatRelTypesByUUID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.gdbindexes create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.gdbtable create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000006.gdbtablx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000007.CatItemTypesByName.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000007.CatItemTypesByParentTypeID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000007.CatItemTypesByUUID.atx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000007.gdbindexes create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000007.gdbtable create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a00000007.gdbtablx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a0000000a.gdbindexes create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a0000000a.gdbtable create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a0000000a.gdbtablx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/a0000000a.spx create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/gdb create mode 100644 autotest/ogr/data/filegdb/Domains.gdb/timestamps create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000001.TablesByName.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000001.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000001.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000001.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000002.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000002.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000003.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000003.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000003.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000004.CatItemsByPhysicalName.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000004.CatItemsByType.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000004.FDO_UUID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000004.freelist create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000004.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000004.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000004.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000004.spx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000005.CatItemTypesByName.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000005.CatItemTypesByParentTypeID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000005.CatItemTypesByUUID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000005.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000005.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000005.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000006.CatRelsByDestinationID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000006.CatRelsByOriginID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000006.CatRelsByType.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000006.FDO_UUID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000006.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000006.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000006.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.CatRelTypesByBackwardLabel.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.CatRelTypesByDestItemTypeID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.CatRelTypesByForwardLabel.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.CatRelTypesByName.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.CatRelTypesByOriginItemTypeID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.CatRelTypesByUUID.atx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000007.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000009.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000009.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000009.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a00000009.spx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000a.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000a.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000a.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000a.spx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000b.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000b.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000b.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000b.spx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000c.gdbindexes create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000c.gdbtable create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000c.gdbtablx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/a0000000c.spx create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/gdb create mode 100644 autotest/ogr/data/filegdb/featuredataset.gdb/timestamps create mode 100644 autotest/ogr/data/flatgeobuf/test_ogr_flatgeobuf_coordinate_epoch.fgb create mode 100644 autotest/ogr/data/gpkg/domains.gpkg delete mode 100644 autotest/ogr/data/gpx/bna_for_gpx.bna create mode 100644 autotest/ogr/data/gpx/csv_for_gpx.csv delete mode 100644 autotest/ogr/data/htf/test.htf create mode 100644 autotest/ogr/data/kml/non_conformant_multi.kml create mode 100644 autotest/ogr/data/lvbag/archive_single.zip create mode 100644 autotest/ogr/data/lvbag/file4.vbo create mode 100644 autotest/ogr/data/lvbag/inval_polygon2.xml create mode 100644 autotest/ogr/data/mdb/null_memo.mdb delete mode 100644 autotest/ogr/data/openair/openair_test.txt delete mode 100644 autotest/ogr/data/segukooa/test.ukooa delete mode 100644 autotest/ogr/data/segy/ascii-header-with-nuls.sgy delete mode 100644 autotest/ogr/data/segy/testsegy.segy create mode 100644 autotest/ogr/data/shp/pointnan.dbf create mode 100644 autotest/ogr/data/shp/pointnan.shp create mode 100644 autotest/ogr/data/shp/pointnan.shx delete mode 100644 autotest/ogr/data/sua/za.sua create mode 100644 autotest/ogr/data/xlsx/cells_with_inline_formatting.xlsx delete mode 100644 autotest/ogr/data/xplane/apt.dat delete mode 100644 autotest/ogr/data/xplane/apt810/apt.dat delete mode 100644 autotest/ogr/data/xplane/awy.dat delete mode 100644 autotest/ogr/data/xplane/fix.dat delete mode 100644 autotest/ogr/data/xplane/nav.dat delete mode 100755 autotest/ogr/ogr_bna.py create mode 100755 autotest/ogr/ogr_fielddomain.py delete mode 100755 autotest/ogr/ogr_htf.py delete mode 100755 autotest/ogr/ogr_openair.py delete mode 100755 autotest/ogr/ogr_segukooa.py delete mode 100755 autotest/ogr/ogr_segy.py delete mode 100755 autotest/ogr/ogr_sua.py delete mode 100755 autotest/ogr/ogr_xplane.py rename autotest/{gdrivers/ntv1.py => osr/osr_basic_subprocess.py} (67%) rename {gdal/swig/python/scripts/tests => autotest/pyscripts}/data/warped.vrt (100%) rename {gdal/swig/python/scripts/tests => autotest/pyscripts}/data/warped_grey.vrt (100%) rename {gdal/swig/python/scripts/tests => autotest/pyscripts}/data/warped_rgb.vrt (100%) rename {gdal/swig/python/osgeo/utils => autotest/pyscripts/gdal2tiles}/__init__.py (100%) rename {gdal/swig/python/scripts/tests => autotest/pyscripts}/gdal2tiles/test_add_alpha_band_to_string_vrt.py (71%) create mode 100644 autotest/pyscripts/gdal2tiles/test_add_gdal_warp_options_to_string.py create mode 100644 autotest/pyscripts/gdal2tiles/test_nb_data_bands.py rename {gdal/swig/python/scripts/tests => autotest/pyscripts}/gdal2tiles/test_option_parser.py (76%) rename {gdal/swig/python/scripts/tests => autotest/pyscripts}/gdal2tiles/test_reproject_dataset.py (54%) rename {gdal/swig/python/scripts/tests => autotest/pyscripts}/gdal2tiles/test_setup_input_srs.py (63%) rename {gdal/swig/python/scripts/tests => autotest/pyscripts}/gdal2tiles/test_setup_no_data_value.py (54%) create mode 100644 autotest/pyscripts/gdal2tiles/test_update_alpha_value_for_non_alpha_inputs.py create mode 100644 autotest/pyscripts/test_gdal2xyz.py create mode 100644 autotest/pyscripts/test_gdal_utils.py create mode 100644 autotest/pyscripts/test_gdallocationinfo_py.py create mode 100644 autotest/pyscripts/test_osr_util.py create mode 100644 autotest/utilities/data/color_paletted_red_green_0-1-nv.txt create mode 100644 autotest/utilities/data/color_paletted_red_green_0-255.qml create mode 100644 autotest/utilities/data/color_paletted_red_green_0-255.txt create mode 100644 autotest/utilities/data/color_pseudocolor_spectral_0-100.qml create mode 100644 autotest/utilities/data/color_pseudocolor_spectral_0-100.txt create mode 100755 gdal/ci/travis/graviton2/before_install.sh create mode 100755 gdal/ci/travis/graviton2/install.sh create mode 100755 gdal/ci/travis/graviton2/script.sh create mode 100755 gdal/doc/generate-sponsor-logos.sh delete mode 100644 gdal/doc/images/foss4g2020.png create mode 100644 gdal/doc/images/foss4g2021.png create mode 100644 gdal/doc/images/logo-faunalia.png create mode 100644 gdal/doc/images/logo-mundialis.png create mode 100644 gdal/doc/images/logo-numfocus.png create mode 100644 gdal/doc/images/logo-osgeo.png create mode 100644 gdal/doc/images/logo-osgeo.svg create mode 100644 gdal/doc/images/logo-spatialys.png create mode 100644 gdal/doc/images/sponsors/logo-FrontierSI.svg create mode 100644 gdal/doc/images/sponsors/logo-esri.png create mode 100644 gdal/doc/images/sponsors/logo-esri.svg create mode 100644 gdal/doc/images/sponsors/logo-frontiersi.png create mode 100644 gdal/doc/images/sponsors/logo-google.png create mode 100644 gdal/doc/images/sponsors/logo-google.svg create mode 100644 gdal/doc/images/sponsors/logo-koordinates.png create mode 100644 gdal/doc/images/sponsors/logo-koordinates.svg create mode 100644 gdal/doc/images/sponsors/logo-mapgears.png create mode 100644 gdal/doc/images/sponsors/logo-maxar.ai create mode 100644 gdal/doc/images/sponsors/logo-maxar.png create mode 100644 gdal/doc/images/sponsors/logo-maxar.svg create mode 100644 gdal/doc/images/sponsors/logo-microsoft.png create mode 100644 gdal/doc/images/sponsors/logo-microsoft.svg create mode 100644 gdal/doc/images/sponsors/logo-planet.png create mode 100644 gdal/doc/images/sponsors/logo-planet.svg create mode 100644 gdal/doc/images/sponsors/logo-safe.png create mode 100644 gdal/doc/images/sponsors/logo-safe.svg create mode 100644 gdal/doc/images/sponsors/logo-sparkgeo-big.png create mode 100644 gdal/doc/images/sponsors/logo-sparkgeo.png create mode 100644 gdal/doc/source/api/csharp/csharp_compile.rst create mode 100644 gdal/doc/source/api/csharp/csharp_conda.rst create mode 100644 gdal/doc/source/api/csharp/csharp_raster.rst create mode 100644 gdal/doc/source/api/csharp/csharp_usage.rst create mode 100644 gdal/doc/source/api/csharp/csharp_vector.rst create mode 100644 gdal/doc/source/api/csharp/index.rst create mode 100644 gdal/doc/source/api/java/index.rst create mode 100644 gdal/doc/source/api/python.rst create mode 100644 gdal/doc/source/api/python_samples.rst create mode 100644 gdal/doc/source/community/code_of_conduct.rst rename gdal/doc/source/{community.rst => community/index.rst} (73%) create mode 100644 gdal/doc/source/community/service_providers.rst create mode 100644 gdal/doc/source/development/rfc/rfc78_gdal_utils_package.rst create mode 100644 gdal/doc/source/development/rfc/rfc79_listing_service_providers.rst create mode 100644 gdal/doc/source/development/rfc/rfc80_numfocus_relationship.rst create mode 100644 gdal/doc/source/development/rfc/rfc81_coordinate_epoch.rst create mode 100644 gdal/doc/source/development/rfc/rfc83_use_of_project_sponsorship.rst delete mode 100644 gdal/doc/source/drivers/raster/bpg.rst delete mode 100644 gdal/doc/source/drivers/raster/e00grid.rst delete mode 100644 gdal/doc/source/drivers/raster/epsilon.rst delete mode 100644 gdal/doc/source/drivers/raster/ignfheightasciigrid.rst delete mode 100644 gdal/doc/source/drivers/raster/ntv1.rst create mode 100644 gdal/doc/source/drivers/raster/stacit.rst create mode 100644 gdal/doc/source/drivers/raster/zarr.rst delete mode 100644 gdal/doc/source/drivers/vector/aeronavfaa.rst delete mode 100644 gdal/doc/source/drivers/vector/bna.rst delete mode 100644 gdal/doc/source/drivers/vector/htf.rst delete mode 100644 gdal/doc/source/drivers/vector/openair.rst delete mode 100644 gdal/doc/source/drivers/vector/segukooa.rst delete mode 100644 gdal/doc/source/drivers/vector/segy.rst delete mode 100644 gdal/doc/source/drivers/vector/sua.rst delete mode 100644 gdal/doc/source/drivers/vector/xplane.rst create mode 100644 gdal/doc/source/programs/gdal2xyz.rst create mode 100644 gdal/doc/source/programs/options/srs_def.rst create mode 100644 gdal/doc/source/sponsors/Sustainable GDAL Sponsorship Prospectus.pdf create mode 100644 gdal/doc/source/sponsors/faq.rst create mode 100644 gdal/doc/source/sponsors/index.rst create mode 100644 gdal/doc/source/user/coordinate_epoch.rst create mode 100644 gdal/docker/ubuntu-full/bh-set-envvars.sh create mode 100644 gdal/docker/ubuntu-full/mdbtools-lexer.patch create mode 100644 gdal/docker/ubuntu-full/tiledb-5cad65f4c.patch create mode 100644 gdal/docker/ubuntu-small/bh-set-envvars.sh delete mode 100644 gdal/frmts/bpg/bpgdataset.cpp delete mode 100644 gdal/frmts/e00grid/GNUmakefile delete mode 100644 gdal/frmts/e00grid/e00compr.h delete mode 100644 gdal/frmts/e00grid/e00griddataset.cpp delete mode 100644 gdal/frmts/e00grid/e00read.c delete mode 100644 gdal/frmts/e00grid/makefile.vc delete mode 100644 gdal/frmts/epsilon/epsilondataset.cpp delete mode 100644 gdal/frmts/epsilon/makefile.vc create mode 100644 gdal/frmts/gtiff/generate_quant_table_md5sum.cpp rename gdal/frmts/gtiff/{ => libtiff}/tif_lerc.c (95%) create mode 100644 gdal/frmts/gtiff/quant_table_md5sum.h delete mode 100644 gdal/frmts/gtiff/tif_lerc.h delete mode 100644 gdal/frmts/ignfheightasciigrid/GNUmakefile delete mode 100644 gdal/frmts/ignfheightasciigrid/ignfheightasciigrid.cpp delete mode 100644 gdal/frmts/jpeg/libjpeg/jmemansi.c create mode 100644 gdal/frmts/jpeg/libjpeg/jmemnobs.c create mode 100644 gdal/frmts/mem/memmultidim.h delete mode 100644 gdal/frmts/mrf/README create mode 100644 gdal/frmts/mrf/README.md create mode 100644 gdal/frmts/netcdf/netcdf_cf_constants.h delete mode 100644 gdal/frmts/raw/ntv1dataset.cpp rename gdal/frmts/{epsilon => stacit}/GNUmakefile (55%) rename gdal/frmts/{ignfheightasciigrid => stacit}/makefile.vc (70%) create mode 100644 gdal/frmts/stacit/stacitdataset.cpp create mode 100644 gdal/frmts/zarr/GNUmakefile create mode 100644 gdal/frmts/zarr/makefile.vc create mode 100644 gdal/frmts/zarr/zarr.h create mode 100644 gdal/frmts/zarr/zarr_array.cpp create mode 100644 gdal/frmts/zarr/zarr_attribute.cpp create mode 100644 gdal/frmts/zarr/zarr_group.cpp create mode 100644 gdal/frmts/zarr/zarrdriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/aeronavfaa/GNUmakefile delete mode 100644 gdal/ogr/ogrsf_frmts/aeronavfaa/makefile.vc delete mode 100644 gdal/ogr/ogrsf_frmts/aeronavfaa/ogr_aeronavfaa.h delete mode 100644 gdal/ogr/ogrsf_frmts/aeronavfaa/ograeronavfaadatasource.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/aeronavfaa/ograeronavfaadriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/aeronavfaa/ograeronavfaalayer.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/bna/GNUmakefile delete mode 100644 gdal/ogr/ogrsf_frmts/bna/makefile.vc delete mode 100644 gdal/ogr/ogrsf_frmts/bna/ogr_bna.h delete mode 100644 gdal/ogr/ogrsf_frmts/bna/ogrbnadatasource.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/bna/ogrbnadriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/bna/ogrbnalayer.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/bna/ogrbnaparser.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/bna/ogrbnaparser.h create mode 100644 gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/pch/flatc_pch.h create mode 100644 gdal/ogr/ogrsf_frmts/flatgeobuf/flatbuffers/pch/pch.h delete mode 100644 gdal/ogr/ogrsf_frmts/htf/GNUmakefile delete mode 100644 gdal/ogr/ogrsf_frmts/htf/makefile.vc delete mode 100644 gdal/ogr/ogrsf_frmts/htf/ogr_htf.h delete mode 100644 gdal/ogr/ogrsf_frmts/htf/ogrhtfdatasource.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/htf/ogrhtfdriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/htf/ogrhtflayer.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/openair/GNUmakefile delete mode 100644 gdal/ogr/ogrsf_frmts/openair/makefile.vc delete mode 100644 gdal/ogr/ogrsf_frmts/openair/ogr_openair.h delete mode 100644 gdal/ogr/ogrsf_frmts/openair/ogropenairdatasource.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/openair/ogropenairdriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/openair/ogropenairlabellayer.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/openair/ogropenairlayer.cpp create mode 100644 gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_fielddomain.h create mode 100644 gdal/ogr/ogrsf_frmts/openfilegdb/filegdb_gdbtoogrfieldtype.h delete mode 100644 gdal/ogr/ogrsf_frmts/segukooa/GNUmakefile delete mode 100644 gdal/ogr/ogrsf_frmts/segukooa/makefile.vc delete mode 100644 gdal/ogr/ogrsf_frmts/segukooa/ogr_segukooa.h delete mode 100644 gdal/ogr/ogrsf_frmts/segukooa/ogrsegukooadatasource.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/segukooa/ogrsegukooadriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/segukooa/ogrsegukooalayer.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/segukooa/segukooa.txt delete mode 100644 gdal/ogr/ogrsf_frmts/segy/GNUmakefile delete mode 100644 gdal/ogr/ogrsf_frmts/segy/makefile.vc delete mode 100644 gdal/ogr/ogrsf_frmts/segy/ogr_segy.h delete mode 100644 gdal/ogr/ogrsf_frmts/segy/ogrsegydatasource.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/segy/ogrsegydriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/segy/ogrsegylayer.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/segy/segy.txt delete mode 100644 gdal/ogr/ogrsf_frmts/sua/GNUmakefile delete mode 100644 gdal/ogr/ogrsf_frmts/sua/makefile.vc delete mode 100644 gdal/ogr/ogrsf_frmts/sua/ogr_sua.h delete mode 100644 gdal/ogr/ogrsf_frmts/sua/ogrsuadatasource.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/sua/ogrsuadriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/sua/ogrsualayer.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/GNUmakefile delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/makefile.vc delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane.h delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_apt_reader.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_apt_reader.h delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_awy_reader.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_awy_reader.h delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_fix_reader.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_fix_reader.h delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_nav_reader.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_nav_reader.h delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_reader.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogr_xplane_reader.h delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogrxplanedatasource.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogrxplanedriver.cpp delete mode 100644 gdal/ogr/ogrsf_frmts/xplane/ogrxplanelayer.cpp create mode 100644 gdal/perftests/computestatistics.py create mode 100644 gdal/port/cpl_compressor.cpp create mode 100644 gdal/port/cpl_compressor.h create mode 100644 gdal/port/cpl_curl_priv.h create mode 100644 gdal/swig/python/gdal-utils/.gitignore create mode 100644 gdal/swig/python/gdal-utils/README.rst create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/__init__.py rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/auxiliary/__init__.py (100%) create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/auxiliary/array_util.py rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/auxiliary/base.py (58%) create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/auxiliary/batch_creator.py rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/auxiliary/color_palette.py (58%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/auxiliary/color_table.py (74%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/auxiliary/extent_util.py (97%) create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/auxiliary/gdal_argparse.py rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/auxiliary/numpy_util.py (77%) create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/auxiliary/osr_util.py create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/auxiliary/progress.py create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/auxiliary/raster_creation.py rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/auxiliary/rectangle.py (100%) create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/auxiliary/util.py rename gdal/swig/python/{scripts => gdal-utils/osgeo_utils}/gdal2tiles.py (99%) mode change 100755 => 100644 create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/gdal2xyz.py rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_calc.py (54%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_edit.py (100%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_fillnodata.py (54%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_merge.py (97%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_pansharpen.py (57%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_polygonize.py (52%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_proximity.py (76%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_retile.py (100%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdal_sieve.py (85%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdalattachpct.py (81%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdalcompare.py (98%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/gdalmove.py (95%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/ogrmerge.py (88%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/pct2rgb.py (60%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils}/rgb2pct.py (53%) rename gdal/swig/python/{scripts/tests => gdal-utils/osgeo_utils/samples}/__init__.py (100%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/assemblepoly.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/build_jp2_from_xml.py (99%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/classify.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/crs2crs2grid.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/densify.py (83%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/dump_jp2.py (98%) mode change 100755 => 100644 rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/epsg_tr.py (73%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/esri2wkt.py (66%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/fft.py (97%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/fix_gpkg.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gcps2ogr.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/gcps2vec.py (81%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/gcps2wld.py (100%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal2grd.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/gdal_auth.py (100%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_cp.py (99%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_create_pdf.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_ls.py (98%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_lut.py (97%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_mkdir.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_remove_towgs84.py (100%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_rm.py (93%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_rmdir.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_vrtmerge.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdal_zip.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/gdalchksum.py (100%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdalcopyproj.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdalfilter.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/gdalident.py (100%) rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/gdalimport.py (100%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/gdalinfo.py (100%) mode change 100755 => 100644 create mode 100644 gdal/swig/python/gdal-utils/osgeo_utils/samples/gdallocationinfo.py rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/get_soundg.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/histrep.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/hsv_merge.py (98%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/jpeg_in_tiff_extract.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/load2odbc.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/loslas2ntv2.py (99%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/magphase.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/make_fuzzer_friendly_archive.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{osgeo/utils => gdal-utils/osgeo_utils/samples}/mkgraticule.py (100%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/ogr2ogr.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/ogr2vrt.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/ogr_build_junction_table.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/ogr_dispatch.py (98%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/ogr_layer_algebra.py (98%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/ogrinfo.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/ogrupdate.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/rel.py (98%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/tigerpoly.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/tile_extent_from_raster.py (98%) rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/tolatlong.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/val_repl.py (97%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/validate_cloud_optimized_geotiff.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/validate_gpkg.py (79%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/validate_jp2.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/vec_tr.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/vec_tr_spat.py (100%) mode change 100755 => 100644 rename gdal/swig/python/{ => gdal-utils/osgeo_utils}/samples/wcs_virtds_params.py (100%) mode change 100755 => 100644 create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal2tiles.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal2xyz.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_calc.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_edit.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_fillnodata.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_merge.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_pansharpen.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_polygonize.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_proximity.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_retile.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdal_sieve.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdalattachpct.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdalcompare.py create mode 100644 gdal/swig/python/gdal-utils/scripts/gdalmove.py create mode 100644 gdal/swig/python/gdal-utils/scripts/ogrmerge.py create mode 100644 gdal/swig/python/gdal-utils/scripts/pct2rgb.py create mode 100644 gdal/swig/python/gdal-utils/scripts/rgb2pct.py create mode 100644 gdal/swig/python/gdal-utils/setup.py create mode 100644 gdal/swig/python/osgeo/utils.py delete mode 100644 gdal/swig/python/osgeo/utils/auxiliary/util.py delete mode 100644 gdal/swig/python/osgeo/utils/gdal2xyz.py delete mode 100644 gdal/swig/python/samples/README.md delete mode 100755 gdal/swig/python/samples/val_at_coord.py delete mode 100755 gdal/swig/python/scripts/epsg_tr.py delete mode 100755 gdal/swig/python/scripts/esri2wkt.py delete mode 100755 gdal/swig/python/scripts/gcps2vec.py delete mode 100755 gdal/swig/python/scripts/gcps2wld.py delete mode 100755 gdal/swig/python/scripts/gdal2xyz.py delete mode 100755 gdal/swig/python/scripts/gdal_auth.py delete mode 100755 gdal/swig/python/scripts/gdal_calc.py delete mode 100755 gdal/swig/python/scripts/gdal_edit.py delete mode 100755 gdal/swig/python/scripts/gdal_fillnodata.py delete mode 100755 gdal/swig/python/scripts/gdal_merge.py delete mode 100755 gdal/swig/python/scripts/gdal_pansharpen.py delete mode 100755 gdal/swig/python/scripts/gdal_polygonize.py delete mode 100755 gdal/swig/python/scripts/gdal_proximity.py delete mode 100755 gdal/swig/python/scripts/gdal_retile.py delete mode 100755 gdal/swig/python/scripts/gdal_sieve.py delete mode 100644 gdal/swig/python/scripts/gdalattachpct.py delete mode 100755 gdal/swig/python/scripts/gdalchksum.py delete mode 100755 gdal/swig/python/scripts/gdalcompare.py delete mode 100755 gdal/swig/python/scripts/gdalident.py delete mode 100755 gdal/swig/python/scripts/gdalimport.py delete mode 100755 gdal/swig/python/scripts/gdalmove.py delete mode 100755 gdal/swig/python/scripts/mkgraticule.py delete mode 100755 gdal/swig/python/scripts/ogrmerge.py delete mode 100755 gdal/swig/python/scripts/pct2rgb.py delete mode 100755 gdal/swig/python/scripts/rgb2pct.py delete mode 100644 gdal/swig/python/scripts/tests/gdal2tiles/__init__.py delete mode 100644 gdal/swig/python/scripts/tests/gdal2tiles/test_add_gdal_warp_options_to_string.py delete mode 100644 gdal/swig/python/scripts/tests/gdal2tiles/test_nb_data_bands.py delete mode 100644 gdal/swig/python/scripts/tests/gdal2tiles/test_update_alpha_value_for_non_alpha_inputs.py git reset --hard HEAD HEAD is now at 244a4dc52c Merge pull request #4171 from nyalldawson/odbc_metadata git log --pretty=format:%H -n 1 > E:\builds\release-1911-x64\doc\gdal_revision.txt type E:\builds\release-1911-x64\doc\gdal_revision.txt 244a4dc52c77c5c7f963e0b3f4474db2c2357537 cd E:\builds