gitextract_zc64qp50/ ├── .ctags ├── .github/ │ ├── FUNDING.yml │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.md │ │ └── feature_request.md │ └── workflows/ │ ├── codeql-analysis.yml │ ├── default.yml │ └── tx-push.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .sonarcloud.properties ├── .tx/ │ └── config ├── .vscode/ │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── CONTRIBUTING.md ├── CREDITS ├── LICENSE ├── MANIFEST.in ├── Makefile ├── README.md ├── Windows.md ├── build.py ├── commitlint.config.js ├── core/ │ ├── __init__.py │ ├── app.py │ ├── directories.py │ ├── engine.py │ ├── exclude.py │ ├── export.py │ ├── fs.py │ ├── gui/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── deletion_options.py │ │ ├── details_panel.py │ │ ├── directory_tree.py │ │ ├── exclude_list_dialog.py │ │ ├── exclude_list_table.py │ │ ├── ignore_list_dialog.py │ │ ├── ignore_list_table.py │ │ ├── prioritize_dialog.py │ │ ├── problem_dialog.py │ │ ├── problem_table.py │ │ ├── result_table.py │ │ └── stats_label.py │ ├── ignore.py │ ├── markable.py │ ├── me/ │ │ ├── __init__.py │ │ ├── fs.py │ │ ├── prioritize.py │ │ ├── result_table.py │ │ └── scanner.py │ ├── pe/ │ │ ├── __init__.py │ │ ├── block.py │ │ ├── block.pyi │ │ ├── cache.py │ │ ├── cache.pyi │ │ ├── cache_sqlite.py │ │ ├── exif.py │ │ ├── matchblock.py │ │ ├── matchexif.py │ │ ├── modules/ │ │ │ ├── block.c │ │ │ ├── block_osx.m │ │ │ ├── cache.c │ │ │ ├── common.c │ │ │ └── common.h │ │ ├── photo.py │ │ ├── prioritize.py │ │ ├── result_table.py │ │ └── scanner.py │ ├── prioritize.py │ ├── results.py │ ├── scanner.py │ ├── se/ │ │ ├── __init__.py │ │ ├── fs.py │ │ ├── result_table.py │ │ └── scanner.py │ ├── tests/ │ │ ├── __init__.py │ │ ├── app_test.py │ │ ├── base.py │ │ ├── block_test.py │ │ ├── cache_test.py │ │ ├── conftest.py │ │ ├── directories_test.py │ │ ├── engine_test.py │ │ ├── exclude_test.py │ │ ├── fs_test.py │ │ ├── ignore_test.py │ │ ├── markable_test.py │ │ ├── prioritize_test.py │ │ ├── result_table_test.py │ │ ├── results_test.py │ │ └── scanner_test.py │ └── util.py ├── help/ │ ├── changelog │ ├── changelog.tmpl │ ├── conf.tmpl │ ├── de/ │ │ ├── faq.rst │ │ ├── folders.rst │ │ ├── index.rst │ │ ├── preferences.rst │ │ ├── quick_start.rst │ │ ├── reprioritize.rst │ │ └── results.rst │ ├── en/ │ │ ├── contribute.rst │ │ ├── developer/ │ │ │ ├── core/ │ │ │ │ ├── app.rst │ │ │ │ ├── directories.rst │ │ │ │ ├── engine.rst │ │ │ │ ├── fs.rst │ │ │ │ ├── gui/ │ │ │ │ │ ├── deletion_options.rst │ │ │ │ │ └── index.rst │ │ │ │ ├── index.rst │ │ │ │ └── results.rst │ │ │ ├── hscommon/ │ │ │ │ ├── build.rst │ │ │ │ ├── conflict.rst │ │ │ │ ├── desktop.rst │ │ │ │ ├── gui/ │ │ │ │ │ ├── base.rst │ │ │ │ │ ├── column.rst │ │ │ │ │ ├── progress_window.rst │ │ │ │ │ ├── selectable_list.rst │ │ │ │ │ ├── table.rst │ │ │ │ │ ├── text_field.rst │ │ │ │ │ └── tree.rst │ │ │ │ ├── index.rst │ │ │ │ ├── jobprogress/ │ │ │ │ │ ├── job.rst │ │ │ │ │ └── performer.rst │ │ │ │ ├── notify.rst │ │ │ │ ├── path.rst │ │ │ │ └── util.rst │ │ │ └── index.rst │ │ ├── faq.rst │ │ ├── folders.rst │ │ ├── index.rst │ │ ├── preferences.rst │ │ ├── quick_start.rst │ │ ├── reprioritize.rst │ │ ├── results.rst │ │ └── scan.rst │ ├── fr/ │ │ ├── faq.rst │ │ ├── folders.rst │ │ ├── index.rst │ │ ├── preferences.rst │ │ ├── quick_start.rst │ │ ├── reprioritize.rst │ │ └── results.rst │ ├── hy/ │ │ ├── faq.rst │ │ ├── folders.rst │ │ ├── index.rst │ │ ├── preferences.rst │ │ ├── quick_start.rst │ │ ├── reprioritize.rst │ │ └── results.rst │ ├── ru/ │ │ ├── faq.rst │ │ ├── folders.rst │ │ ├── index.rst │ │ ├── preferences.rst │ │ ├── quick_start.rst │ │ ├── reprioritize.rst │ │ └── results.rst │ └── uk/ │ ├── faq.rst │ ├── folders.rst │ ├── index.rst │ ├── preferences.rst │ ├── quick_start.rst │ ├── reprioritize.rst │ └── results.rst ├── hscommon/ │ ├── LICENSE │ ├── README │ ├── __init__.py │ ├── build.py │ ├── conflict.py │ ├── desktop.py │ ├── gui/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── column.py │ │ ├── progress_window.py │ │ ├── selectable_list.py │ │ ├── table.py │ │ ├── text_field.py │ │ └── tree.py │ ├── jobprogress/ │ │ ├── __init__.py │ │ ├── job.py │ │ └── performer.py │ ├── loc.py │ ├── notify.py │ ├── path.py │ ├── plat.py │ ├── pygettext.py │ ├── sphinxgen.py │ ├── tests/ │ │ ├── __init__.py │ │ ├── conflict_test.py │ │ ├── notify_test.py │ │ ├── path_test.py │ │ ├── selectable_list_test.py │ │ ├── table_test.py │ │ ├── tree_test.py │ │ └── util_test.py │ ├── testutil.py │ ├── trans.py │ └── util.py ├── images/ │ ├── dupeguru.icns │ ├── exchange.icns │ └── exchange_purple_waifu_s4_tta8.xcf ├── locale/ │ ├── ar/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── columns.pot │ ├── core.pot │ ├── cs/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── de/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── el/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── en/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── es/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── fr/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── hy/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── it/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── ja/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── ko/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── ms/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── nl/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── pl_PL/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── pt_BR/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── ru/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── tr/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── ui.pot │ ├── uk/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── vi/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ ├── zh_CN/ │ │ └── LC_MESSAGES/ │ │ ├── columns.po │ │ ├── core.po │ │ └── ui.po │ └── zh_TW/ │ └── LC_MESSAGES/ │ ├── columns.po │ ├── core.po │ └── ui.po ├── macos.md ├── package.py ├── pkg/ │ ├── arch/ │ │ ├── dupeguru.desktop │ │ └── dupeguru.json │ ├── debian/ │ │ ├── Makefile │ │ ├── build_pe_modules.py │ │ ├── changelog │ │ ├── compat │ │ ├── control │ │ ├── copyright │ │ ├── dirs │ │ ├── dupeguru.desktop │ │ ├── dupeguru.json │ │ ├── rules │ │ └── source/ │ │ ├── format │ │ └── options │ └── dupeguru.desktop ├── pyproject.toml ├── qt/ │ ├── __init__.py │ ├── about_box.py │ ├── app.py │ ├── column.py │ ├── deletion_options.py │ ├── details_dialog.py │ ├── details_table.py │ ├── dg.qrc │ ├── directories_dialog.py │ ├── directories_model.py │ ├── error_report_dialog.py │ ├── exclude_list_dialog.py │ ├── exclude_list_table.py │ ├── ignore_list_dialog.py │ ├── ignore_list_table.py │ ├── me/ │ │ ├── __init__.py │ │ ├── details_dialog.py │ │ ├── preferences_dialog.py │ │ └── results_model.py │ ├── pe/ │ │ ├── __init__.py │ │ ├── block.py │ │ ├── block.pyi │ │ ├── details_dialog.py │ │ ├── image_viewer.py │ │ ├── modules/ │ │ │ └── block.c │ │ ├── photo.py │ │ ├── preferences_dialog.py │ │ └── results_model.py │ ├── platform.py │ ├── preferences.py │ ├── preferences_dialog.py │ ├── prioritize_dialog.py │ ├── problem_dialog.py │ ├── problem_table.py │ ├── progress_window.py │ ├── radio_box.py │ ├── recent.py │ ├── result_window.py │ ├── results_model.py │ ├── se/ │ │ ├── __init__.py │ │ ├── details_dialog.py │ │ ├── preferences_dialog.py │ │ └── results_model.py │ ├── search_edit.py │ ├── selectable_list.py │ ├── stats_label.py │ ├── tabbed_window.py │ ├── table.py │ ├── tree_model.py │ └── util.py ├── requirements-extra.txt ├── requirements.txt ├── run.py ├── setup.cfg ├── setup.nsi ├── setup.py ├── tox.ini └── win_version_info.temp