GithubHelp home page GithubHelp logo

weblateorg / translation-finder Goto Github PK

View Code? Open in Web Editor NEW
15.0 15.0 12.0 652 KB

Translation files finder

Home Page: https://weblate.org/

License: GNU General Public License v3.0

Python 99.76% PHP 0.24%
files i18n python weblate

translation-finder's People

Contributors

codacy-badger avatar deepsource-autofix[bot] avatar dependabot-preview[bot] avatar dependabot[bot] avatar nijel avatar pre-commit-ci[bot] avatar renovate[bot] avatar snyk-bot avatar stickler-ci avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

translation-finder's Issues

AttributeError: 'dict' object has no attribute '_sort_key' with iso-codes-4.2

after launching my script again with the last two patches you just wrote (thank you again), I have a regression, it makes it crash with iso-codes:

extract_srpm: ./src.rpms/f30/iso-codes-4.2-2.fc30.src.rpm
discover_translations: /tmp/tmpah3onmyv
Traceback (most recent call last):
  File "./build.py", line 143, in <module>
    main()
  File "./build.py", line 44, in main
    discover_translations(tmp, package)
  File "./build.py", line 65, in discover_translations
    translation_files = discover(tmp)
  File "/home/jb/Projects/fedora-l10n/translation-finder/translation_finder/api.py", line 68, in discover
    return list(sorted(results))
  File "/home/jb/Projects/fedora-l10n/translation-finder/translation_finder/discovery/base.py", line 58, in __gt__
    return self._sort_key > other._sort_key
AttributeError: 'dict' object has no attribute '_sort_key'

Previous result was:

[
   {
      'filemask':'iso_15924/*.po',
      'new_base':'iso_15924/iso_15924.pot',
      'file_format':'po'
   },
   {
      'filemask':'iso_3166-1/*.po',
      'new_base':'iso_3166-1/iso_3166-1.pot',
      'file_format':'po'
   },
   {
      'filemask':'iso_3166-2/*.po',
      'new_base':'iso_3166-2/iso_3166-2.pot',
      'file_format':'po'
   },
   {
      'filemask':'iso_3166-2/*.po',
      'template':'iso_3166-2/en.po',
      'new_base':'iso_3166-2/iso_3166-2.pot',
      'file_format':'po-mono'
   },
   {
      'filemask':'iso_3166-3/*.po',
      'new_base':'iso_3166-3/iso_3166-3.pot',
      'file_format':'po'
   },
   {
      'filemask':'iso_4217/*.po',
      'new_base':'iso_4217/iso_4217.pot',
      'file_format':'po'
   },
   {
      'filemask':'iso_639-2/*.po',
      'new_base':'iso_639-2/iso_639-2.pot',
      'file_format':'po'
   },
   {
      'filemask':'iso_639-3/*.po',
      'new_base':'iso_639-3/iso_639-3.pot',
      'file_format':'po'
   },
   {
      'filemask':'iso_639-5/*.po',
      'new_base':'iso_639-5/iso_639-5.pot',
      'file_format':'po'
   }
]

Here are the files: files.txt. Upstream code is there: https://salsa.debian.org/iso-codes-team/iso-codes

To pull your new code, I removed my virtualenv, did git pull in my folder and made pip install -r requirements.txt && pip install -e .

Thanks a lot for your help!

false positives with man-db-2.8.4

Hello, while working on this: https://pagure.io/fedora-localization-statistics

I notice false positives with man-db-2.8.4

[
   {
      'filemask':'*/po/af.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'gl/po/*.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/be.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/bg.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/ca.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/cs.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/da.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/de.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/el.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/eo.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/es.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/et.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/eu.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/fi.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/fr.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/ga.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/*.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/hu.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/it.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/ja.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/ko.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/ms.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/nb.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/nl.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/pl.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/pt.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/pt_BR.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/ro.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/ru.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/rw.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/sk.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/sl.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/sr.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/sv.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/tr.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/uk.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/vi.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/zh_CN.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'*/po/zh_TW.po',
      'new_base':'gl/po/man-db-gnulib.pot',
      'file_format':'po'
   },
   {
      'filemask':'man/po4a/po/*.po',
      'new_base':'man/po4a/po/man-db-manpages.pot',
      'file_format':'po'
   },
   {
      'filemask':'po/*.po',
      'new_base':'po/man-db.pot',
      'file_format':'po'
   }
]

I think all filemask starting with a * is a false positive.

Files: files.txt
Source code: http://download.savannah.nongnu.org/releases/man-db/

Thanks a lot for your help!

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/closing.yml
  • peter-evans/create-or-update-comment v4
  • peter-evans/create-or-update-comment v4
  • ubuntu 22.04
.github/workflows/codeql-analysis.yml
  • actions/checkout v4
  • github/codeql-action v3
  • github/codeql-action v3
  • github/codeql-action v3
  • ubuntu 22.04
.github/workflows/label-sync.yml
  • actions/checkout v4
  • srealmoreno/label-sync-action v1
  • ubuntu 22.04
.github/workflows/labels.yml
  • peter-evans/create-or-update-comment v4
  • peter-evans/create-or-update-comment v4
  • peter-evans/create-or-update-comment v4
  • peter-evans/create-or-update-comment v4
  • peter-evans/create-or-update-comment v4
  • ubuntu 22.04
.github/workflows/pre-commit.yml
  • actions/checkout v4
  • actions/cache v4
  • actions/setup-python v5
  • ubuntu 22.04
.github/workflows/pull_requests.yaml
  • peter-evans/enable-pull-request-automerge v3
.github/workflows/setup.yml
  • actions/checkout v4
  • actions/cache v4
  • actions/setup-python v5
  • ubuntu 22.04
.github/workflows/stale.yml
  • actions/stale v9
  • ubuntu 22.04
.github/workflows/test.yml
  • actions/checkout v4
  • actions/cache v4
  • actions/setup-python v5
  • codecov/codecov-action v4
pip_requirements
requirements-dev.txt
requirements-lint.txt
  • pre-commit ==3.7.1
requirements-test.txt
  • twine ==5.1.0
requirements.txt
  • charset-normalizer >2.0,<4.0
  • weblate-language-data >=2021.2
pre-commit
.pre-commit-config.yaml
  • pre-commit/pre-commit-hooks v4.6.0
  • adrienverge/yamllint v1.35.1
  • astral-sh/ruff-pre-commit v0.4.4
  • asottile/blacken-docs 1.16.0
  • macisamuele/language-formatters-pre-commit-hooks v2.13.0
  • executablebooks/mdformat 0.7.17
  • igorshubovych/markdownlint-cli v0.40.0
  • fsfe/reuse-tool v3.0.2
regex
.pre-commit-config.yaml
  • mdformat-gfm 0.3.6
  • mdformat-black 0.1.1
  • mdformat-shfmt 0.1.0
.pre-commit-config.yaml

  • Check this box to trigger a request for Renovate to run again on this repository

Import transifex configuration

There are quite some projects migrating from transifex and we might help in migration by parsing .tx/config files.

Some examples found in free software projects on Hosted Weblate:

[main]
host = https://www.transifex.com

[ring.lrc_en_ts]
file_filter = translations/lrc_<lang>.ts
source_file = translations/lrc_en.ts
source_lang = en
type = TS
[main]
host = https://www.transifex.com

[arctica-greeter.remote-logon-service]
source_file = po/remote-logon-service.pot
source_lang = en
type = PO
file_filter = po/<lang>.po
[main]
host = https://www.transifex.com

[ring.localizablestrings]
file_filter = ui/<lang>.lproj/Localizable.strings
source_file = ui/Base.lproj/Localizable.strings
source_lang = en
type = STRINGS

[ring.osxAccAdvanced]
file_filter = ui/<lang>.lproj/AccAdvanced.strings
source_file = ui/Base.lproj/AccAdvanced.strings
source_lang = en
type = STRINGS
[main]
host = https://www.transifex.com

[darkwallet.darkwallet]
file_filter = i18n/<lang>.json
source_file = i18n/en_US.json
source_lang = en_US
type = KEYVALUEJSON

false positive on boost package

When using translation-finder on boost, I have false positives:

discover_translations: boost-1.69.0-18.fc32.src/boost_1_69_0
[ { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_12_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_12_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_12_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_12_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_12_1_1_5.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_12_1_1_6.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_13_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_13_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_13_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_19_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_19_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_20_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_20_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_20_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_20_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_21_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_21_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_21_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_21_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_23_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_23_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_26_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_26_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_31_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_31_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_36_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_36_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_38_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_38_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_44_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_44_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_44_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_44_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_45_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_45_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_45_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_50_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_50_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_53_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_56_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_56_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_57_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feat_1_3_2_6_3_57_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_featu_1_3_2_6_2_7_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_featu_1_3_2_6_3_6_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_featu_1_3_2_6_3_9_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_featu_1_3_2_6_3_9_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_featu_1_3_2_6_3_9_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_featu_1_3_2_6_3_9_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_feature.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_wei_1_3_2_6_3_12_1_1_10.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_wei_1_3_2_6_3_12_1_1_12.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_wei_1_3_2_6_3_12_1_1_14.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_wei_1_3_2_6_3_12_1_1_16.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_wei_1_3_2_6_3_13_1_1_10.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_10_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_13_1_1_6.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_13_1_1_8.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_15_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_16_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_18_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_19_1_1_5.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_19_1_1_7.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_20_1_1_7.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_20_1_1_9.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_21_1_1_7.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_21_1_1_9.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_28_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_30_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_31_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_33_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_34_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_36_1_1_5.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_36_1_1_7.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_38_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weig_1_3_2_6_3_38_1_1_6.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weigh_1_3_2_6_2_7_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weigh_1_3_2_6_3_4_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weigh_1_3_2_6_3_5_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weigh_1_3_2_6_3_6_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weigh_1_3_2_6_3_8_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weigh_1_3_2_6_3_9_1_1_7.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weigh_1_3_2_6_3_9_1_1_9.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/*_weighted_feature.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/tag/*_dro_1_3_2_6_2_7_1_1_4_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/tag/*_droppable.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/tail_*_1_3_2_6_3_32_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/tail_*_1_3_2_6_3_32_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/accumulators/tail_cache_size_named_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_alnum.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_alpha.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_any_of.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_classified.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_cntrl.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_digit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_equal.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_from_range.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_graph.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_iequal.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_iless.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_less.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_lower.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_not_greater.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_not_igreater.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_print.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_punct.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_space.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_upper.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_xdigit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_lower_copy.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/algorithm/*_upper_copy.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/container/allocator_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/container/allocator_*_t.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/copy_*_1_3_26_20_6_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/constrained_value.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/simple_exception_policy.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/simple_exception_policy/exception_wrapper.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/date_time/convert_*_lower.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/date_time/*_dst_trait.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/date_time/var_string_*_int.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/enable_*_1_3_26_20_16_2_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/interprocess/open_*_create.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/interprocess/open_*_create_t.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/interprocess/*_raw_pointer_idp67860336.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/interprocess/*_raw_pointer_idp67906304.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/interprocess/try_*_lock.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/interprocess/try_*_lock_type.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/any_*_avl_set_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/any_*_set_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/any_*_list_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/any_*_slist_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/any_*_unordered_set_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/*_multiset.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/*_set.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/*_set_base_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/*_set_member_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/make_*_multiset.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/make_*_set.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/make_*_set_base_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/make_*_set_member_hook.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/intrusive/max_pointer_*_idp78100672.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*_recursive_wrapper.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/all_*_all.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/bitwise_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_commutative.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_1_3_27_5_14_3_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_1_3_27_5_14_8_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_builtin_datatype.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_byte_datatype.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_complex_datatype.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_datatype.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_integer_datatype.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_logical_datatype.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/mpi/*_mpi_op.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_1_3_2_6_4_4_1_1_1_10.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_max.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_max_1_3_2_6_4_5_1_1_1_8.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_max_base.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_mi_1_3_2_6_4_2_1_1_6_51.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_min.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_min_1_3_2_6_4_4_1_1_1_9.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_min_1_3_2_6_4_5_1_1_1_7.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_min_base.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_on_1_3_2_6_4_4_1_1_1_12.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_on_1_3_2_6_4_5_1_1_1_10.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_one.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_one_base.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_ze_1_3_2_6_4_4_1_1_1_11.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_zer_1_3_2_6_4_5_1_1_1_9.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_zero.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/*_zero_base.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/equal_*_base.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/max_*_1_3_2_6_4_4_1_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/max_*_1_3_2_6_4_5_1_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/min_*_1_3_2_6_4_4_1_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/min_*_1_3_2_6_4_5_1_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/not_equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/not_equal_*_base.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/tag_*_1_3_2_6_4_4_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/functional/tag_*_1_3_2_6_4_5_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/one_*_default.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/op/*_max.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/op/*_min.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/op/*_one.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/op/*_zero.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/op/equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/op/not_equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/numeric/zero_*_default.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/*_parser.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/parse_*_1_3_32_9_8_1_1_10.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/parse_*_1_3_32_9_8_1_1_11.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/parse_*_1_3_32_9_8_1_1_13.html',
    'new_base': 'doc/html/boost/program_options/parse_en_1_3_32_9_8_1_1_13.html',
    'template': 'doc/html/boost/program_options/parse_en_1_3_32_9_8_1_1_13.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/parse_*_1_3_32_9_8_1_1_14.html',
    'new_base': 'doc/html/boost/program_options/parse_en_1_3_32_9_8_1_1_14.html',
    'template': 'doc/html/boost/program_options/parse_en_1_3_32_9_8_1_1_14.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/parse_*_1_3_32_9_8_1_1_15.html',
    'new_base': 'doc/html/boost/program_options/parse_en_1_3_32_9_8_1_1_15.html',
    'template': 'doc/html/boost/program_options/parse_en_1_3_32_9_8_1_1_15.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/value_*_1_3_32_9_10_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/value_*_1_3_32_9_10_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/program_options/value_*_1_3_32_9_10_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/property_tree/*_translator.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_child.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_env.html',
    'new_base': 'doc/html/boost/proto/_env.html',
    'template': 'doc/html/boost/proto/_env.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_expr.html',
    'new_base': 'doc/html/boost/proto/_expr.html',
    'template': 'doc/html/boost/proto/_expr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/bitwise_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/bitwise_*_assign.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_value_generator.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/convertible_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/domain/*_child.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/domain/*_expr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/functional/*_child.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/functional/*_env.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/functional/*_expr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_aggregate.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_callable.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_domain.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_extension.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_proto_expr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_transform.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/logical_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/not_equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/*_.html',
    'new_base': 'doc/html/boost/proto/_.html',
    'template': 'doc/html/boost/proto/_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/result_of/*_child.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/result_of/*_env.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/result_of/*_expr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/tag/bitwise_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/tag/bitwise_*_assign.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/tag/equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/tag/logical_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/proto/tag/not_equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/random/*_squared_distribution.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/random/non_*_1_3_35_5_6_29_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/random/traits/*_integral.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/random/traits/*_signed.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/random/traits/make_unsigned_*_unbounded.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/signals2/signal/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/signals2/slot/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/type_erasure/*_param.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/type_erasure/*_empty.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/type_erasure/*_placeholder.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/type_erasure/*_relaxed.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/type_erasure/*_subconcept.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/typeindex/type_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/typeindex/type_*_runtime.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/typeindex/type_*_with_cvr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_10_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_11_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_12_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_13_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_16_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_17_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_18_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_19_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_5_20_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_6_10_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_6_13_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_6_14_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_6_16_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_6_17_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_6_19_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_10_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_11_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_12_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_13_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_14_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_15_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_19_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_20_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_21_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_1_3_44_10_10_9_22_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/cgs/centimeter_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/cgs/centimeters_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/cgs/centimetre_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/cgs/centimetres_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_di_1_3_44_10_2_19_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_di_1_3_44_10_2_20_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_di_1_3_44_10_2_20_2_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_di_1_3_44_10_2_21_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_di_1_3_44_10_2_21_2_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_dim.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_dimension_list.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_dimensionless.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_dimensionless_quantity.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_dimensionless_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_qu_1_3_44_10_2_24_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_qu_1_3_44_10_2_25_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_qu_1_3_44_10_2_26_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_quantity.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_quantity_of_dimension.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_quantity_of_system.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_un_1_3_44_10_2_27_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_un_1_3_44_10_2_28_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_un_1_3_44_10_2_28_2_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_un_1_3_44_10_2_29_2_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_un_1_3_44_10_2_29_2_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_unit_of_dimension.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*_unit_of_system.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/metric/*_base_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/ampere.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/ampere_base_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/amperes.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/becquerel.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/becquerels.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/candela.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/candela_base_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/candelas.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_15_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_16_1_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_17_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_19_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_20_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_21_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_22_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_24_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_25_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_26_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/constants/codata/_1_3_44_10_4_28_2_1_1_1_1_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/coulomb.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/coulombs.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/cubic_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/cubic_meters.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/cubic_metre.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/cubic_metres.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/farad.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/farads.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/gray.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/grays.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/henry.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/henrys.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/hertz.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/joule.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/joules.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/katal.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/katals.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kelvin.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kelvin_base_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kelvins.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kil_1_3_44_10_4_53_1_1_1_5.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kil_1_3_44_10_4_66_1_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kil_1_3_44_10_4_66_1_1_1_5.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilogram.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilogram_per_cubic_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/kilogram_*_cubic_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilogram_per_square_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/kilogram_*_square_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilogramme.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilogramme_per_cubic_metre.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/kilogramme_*_cubic_metre.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilogrammes.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilograms.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilograms_per_cubic_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/kilograms_*_cubic_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/kilograms_per_square_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/kilograms_*_square_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/lumen.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/lumens.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/lux.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/meter_base_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/meter_per_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/meter_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/meter_per_second_squared.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/meter_*_second_squared.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/meters.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/meters_per_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/meters_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/meters_per_second_squared.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/meters_*_second_squared.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/metre.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/metre_per_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/metre_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/metre_per_second_squared.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/metre_*_second_squared.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/metres.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/metres_per_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/metres_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/metres_per_second_squared.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/metres_*_second_squared.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/mho.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/mhos.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/mole.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/mole_base_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/moles.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/newton.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/newton_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/newton_meters.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/newton_per_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/newton_*_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/newtons.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/newtons_per_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/newtons_*_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/ohm.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/ohms.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/pascal.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/pascals.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/radian.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/radian_per_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/radian_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/radians.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/radians_per_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/si/radians_*_second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/reciprocal_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/reciprocal_meters.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/reciprocal_metre.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/reciprocal_metres.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/second.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/second_base_unit.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/seconds.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/*_dimensionless.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/siemen.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/siemens.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/sievert.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/sieverts.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/square_meter.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/square_meters.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/square_metre.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/square_metres.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/steradian.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/steradians.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/tesla.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/teslas.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/volt.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/volts.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/watt.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/watts.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/weber.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/units/*/webers.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/xpressive/_*.html',
    'new_base': 'doc/html/boost/xpressive/_.html',
    'template': 'doc/html/boost/xpressive/_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/xpressive/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/xpressive/*_xpr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/xpressive/*_ref.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/xpressive/op/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/xpressive/regex_*_filter_predicate.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/argument.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/as_exp_1_3_48_8_2_2_1_1_15.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/yap/*_exp_1_3_48_8_2_2_1_1_15.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/as_exp_1_3_48_8_2_5_1_1_34.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/yap/*_exp_1_3_48_8_2_5_1_1_34.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/callable.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/cond.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/deref.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/else_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/evaluate.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/evaluation.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/expr_kind.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/expr_tag.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/express_1_3_48_8_2_5_1_1_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/expression.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/expression_function.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/expression_ref.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/get.html',
    'new_base': 'doc/html/boost/get.html',
    'template': 'doc/html/boost/get.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/get_c.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/if_else.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/is_expr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/yap/*_expr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/left.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/literals/opera_1_3_48_8_2_3_1_1_5_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/make_e_1_3_48_8_2_2_1_1_13.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/make_e_1_3_48_8_2_5_1_1_32.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/make_expression_function.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/make_t_1_3_48_8_2_2_1_1_14.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/make_t_1_3_48_8_2_5_1_1_33.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/minimal_expr.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/op_string.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_10.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_11.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_12.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_13.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_14.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_15.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_18.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_19.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_20.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_21.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_22.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_23.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_26.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_28.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operat_1_3_48_8_2_5_1_1_29.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operato_1_3_48_8_2_5_1_1_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operato_1_3_48_8_2_5_1_1_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operato_1_3_48_8_2_5_1_1_5.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operato_1_3_48_8_2_5_1_1_7.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operato_1_3_48_8_2_5_1_1_9.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operator%.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operator^.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operator_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operator__.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/operator~.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/placeholder.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/print.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/replace_placeholders.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/replacements.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/right.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/terminal.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/then.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/transform.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/transform_strict.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost/*/value.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/asio_handler_*_continuation.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/async_result_*__Handler__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/async_result_*__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_datagram_socket/async_send_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_datagram_socket/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_datagram_socket/send_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_raw_socket/async_send_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_raw_socket/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_raw_socket/send_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_seq_packet_socket/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_socket/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_socket_acceptor/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_stream_socket/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/basic_yield_context/operator_*__rb_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/buffers_iterator/operator_*__rb_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/buffers_iterator/operator_*_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/buffers_iterator/operator_*__eq_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/coroutine/*_child.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/coroutine/*_complete.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/coroutine/*_parent.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/execution_context__*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/execution_context__id/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/executor_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/executor_*_t.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/executor_arg_t/executor_*_t.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/experimental__*_spawn.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/generic__basic_endpoint/operator_*_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/generic__basic_endpoint/operator_*__eq_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/io_context/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/io_context/*/overload1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/io_context/*/overload2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/io_context/*_for.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/io_context/*_one.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/io_context/*_one_for.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/io_context/*_one_until.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/io_context/*_until.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/*_loopback.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/*_multicast.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/*_unspecified.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/*_v4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/*_v6.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/operator_*_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/operator_*__eq_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/operator_*__lt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address/*_string.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_class_a.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_class_b.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_class_c.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_loopback.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_multicast.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_unspecified.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/operator_*_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/operator_*__eq_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/operator_*__lt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_bytes.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_string.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_uint.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v4/*_ulong.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_link_local.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_loopback.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_multicast.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_multicast_global.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_multicast_link_local.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_multicast_node_local.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_multicast_org_local.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_multicast_site_local.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_site_local.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_unspecified.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_v4_compatible.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_v4_mapped.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/operator_*_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/operator_*__eq_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/operator_*__lt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/scope_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_bytes.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_string.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__address_v6/*_v4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__basic_address_iterator_*__address_v4__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__basic_address_iterator_*__address_v6__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__basic_address_range_*__address_v4__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__basic_address_range_*__address_v6__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__basic_endpoint/operator_*_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__basic_endpoint/operator_*__eq_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__basic_endpoint/operator_*__lt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__network_v4/*_host.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__network_v4/*_subnet_of.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__network_v4/*_string.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__network_v6/*_host.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__network_v6/*_subnet_of.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/ip__network_v6/*_string.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_const_buffer_sequence.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_dynamic_buffer.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_endpoint_sequence.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_error_code_enum_lt__addrinfo_errors__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_error_code_enum_lt__basic_errors__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_error_code_enum_lt__boost__asio__ssl__error__stream_errors__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_error_code_enum_lt__misc_errors__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_error_code_enum_lt__netdb_errors__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_error_code_enum_lt__ssl_errors__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_executor.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_match_condition.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_mutable_buffer_sequence.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_read_buffered.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/*_write_buffered.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/local__basic_endpoint/operator_*_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/local__basic_endpoint/operator_*__eq_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/local__basic_endpoint/operator_*__lt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/posix__descriptor/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/posix__stream_descriptor/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/serial_port/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/time_traits_*__ptime__gt_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/time_traits_lt__ptime__gt_/*_posix_duration.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/use_future_t/operator_*__rb_.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/wait_traits/*_wait_duration.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/windows__object_handle/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/windows__overlapped_handle/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/windows__random_access_handle/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_asio/reference/windows__stream_handle/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_CB_*_CONVERTIBLE.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_MPI_DATATYPE.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_PROTO_REPEAT_FROM_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_typeindex/how_*_works.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boost_units/version_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*__1_3_48_8_2_7_10.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*__1_3_48_8_2_7_11.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*__1_3_48_8_2_7_12.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_1.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_2.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_3.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_4.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_5.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_6.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_7.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_8.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/BOOST_*_U_1_3_48_8_2_7_9.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boostbook/dtd/*-fail-test.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boostbook/dtd/*-test.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/boostbook/dtd/template-*.html',
    'new_base': 'doc/html/boostbook/dtd/template.html',
    'template': 'doc/html/boostbook/dtd/template.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/circular_buffer/version_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/intrusive/*_set_multiset.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/move/thanks_*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/move/what_*_boost_move.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/poly_collection/*_efficient_polymorphic_data_st.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/predef/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/*.html'},
  { 'file_format': 'html',
    'filemask': 'doc/html/*/reference.html',
    'new_base': 'doc/html/reference.html',
    'template': 'doc/html/reference.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/boyer_moore_*_idp38975248.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/boyer_moore_*_idp38936352.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_decreasing_idp38490464.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_decreasing_idp38496064.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_increasing_idp38480384.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_increasing_idp38486016.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_palindrome_idp38797168.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_palindrome_idp38804352.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_palindrome_idp38809856.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_palindrome_idp38814224.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_palindrome_idp38820288.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_palindrome_idp38823808.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_partitioned_idp38374160.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_partitioned_idp38381264.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_partitioned_idp38832464.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_partitioned_idp38839680.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_permutation_idp38388912.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_permutation_idp38397600.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_permutation_idp38404176.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_permutation_idp38409440.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_permutation_idp38418768.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_permutation_idp38426912.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_sorted_idp38450448.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_sorted_idp38456992.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_sorted_idp38471152.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_sorted_idp38476688.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_sorted_unti_idp38438976.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_sorted_unti_idp38445584.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_sorted_unti_idp38461824.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_sorted_unti_idp38467408.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_strictly_de_idp38510560.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_strictly_de_idp38516160.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_strictly_in_idp38500512.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/boost/algorithm/*_strictly_in_idp38506112.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/header/boost/algorithm/cxx11/*_partitioned_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/header/boost/algorithm/cxx11/*_permutation_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/header/boost/algorithm/cxx11/*_sorted_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/header/boost/algorithm/cxx14/*_permutation_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/header/boost/algorithm/*_palindrome_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/header/boost/algorithm/*_partitioned_until_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/the_boost_algorithm_library/CXX11/*_partitioned.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/the_boost_algorithm_library/CXX11/*_permutation.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/the_boost_algorithm_library/CXX11/*_sorted.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/the_boost_algorithm_library/Misc/*_palindrome.html'},
  { 'file_format': 'html',
    'filemask': 'libs/algorithm/doc/html/the_boost_algorithm_library/Misc/*_partitioned_until.html'},
  { 'file_format': 'html',
    'filemask': 'libs/assign/doc/*_vector_example.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/design_choices/comparison_*_zaphoyd_studios_we.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/design_choices/http_comparison_*_other_librari.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__basic_flat_buffer/shrink_*_fit.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__buffers_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__buffers_*_view.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__buffers_cat_view/buffers_*_view.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__buffers_*_string.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__file/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__file_posix/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__file_stdio/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__file_win32/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__basic_fields/operator_*__rb_.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__basic_file_body__value_type/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__basic_parser/*_done.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__basic_parser/*_header_done.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__basic_parser/*_request.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__ext_list/*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__header/*_request.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__int_*_status.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__*_body.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__*_body_reader.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__*_body_writer.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__*_fields.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__*_mutable_body_writer.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__message/*_request.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__operator_*__lt_.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__parser/*_done.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__parser/*_header_done.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__parser/*_request.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__serializer/*_done.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__serializer/*_header_done.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__string_*_field.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__string_*_verb.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__*_status_class.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__http__*_string.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_async_read_stream.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_async_stream.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_async_write_stream.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_completion_handler.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_file.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_sync_read_stream.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_sync_stream.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_sync_write_stream.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__operator_*_.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__operator_*__eq_.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__operator_*__lt_.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__read_size_*_throw.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__static_string/operator_*__rb_.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__static_string/shrink_*_fit.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__test__stream__state/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__*_static_string.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__websocket__*_upgrade.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__websocket__stream/*_deflate_supported.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__websocket__stream/*_message_done.html'},
  { 'file_format': 'html',
    'filemask': 'libs/beast/doc/html/beast/ref/boost__beast__websocket__stream/*_open.html'},
  { 'file_format': 'html',
    'filemask': 'libs/bimap/doc/html/boost_bimap/examples/multiindex_*_bimap_path___bidirectional_map.html'},
  { 'file_format': 'html',
    'filemask': 'libs/bimap/doc/html/boost_bimap/examples/multiindex_*_bimap_path___hashed_indices.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/atomic_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*_device_iter_idp50474432.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*_device_iterator.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*_fundamental.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*_partitioned.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*_permutation.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*_placeholder.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*_sorted.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/*_vector_type.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/reduce_*_key.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/sort_*_key.html'},
  { 'file_format': 'html',
    'filemask': 'libs/compute/doc/html/boost/compute/stable_sort_*_key.html'},
  { 'file_format': 'html',
    'filemask': 'libs/context/doc/html/context/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/context/doc/html/context/*/class__fiber_.html'},
  { 'file_format': 'html',
    'filemask': 'libs/context/doc/html/context/*/implementations__fcontext_t__ucontext_t_and_winfiber.html'},
  { 'file_format': 'html',
    'filemask': 'libs/contract/doc/html/boost/contract/*_old_value_copyable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/convert/doc/html/BOOST_CNV_STRING_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/convert/doc/html/BOOST_CNV_*_STRING.html'},
  { 'file_format': 'html',
    'filemask': 'libs/convert/doc/html/boost_convert/getting_started/flexibility_and_adaptability_*_change.html'},
  { 'file_format': 'html',
    'filemask': 'libs/convert/doc/html/boost_convert/supporting_tools/boost__cnv__*_cnv.html'},
  { 'file_format': 'html',
    'filemask': 'libs/convert/doc/html/boost_convert/supporting_tools/boost__cnv__*_range.html'},
  { 'file_format': 'html',
    'filemask': 'libs/convert/doc/html/boost_convert/supporting_tools/boost_declare_*_callable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/core/doc/html/boost/*_reference_wrapper.html'},
  { 'file_format': 'html',
    'filemask': 'libs/core/doc/html/core/*_same.html'},
  { 'file_format': 'html',
    'filemask': 'libs/exception/doc/exception_types_*_simple_semantic_tags.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fiber/doc/html/fiber/callbacks/data_*_exception.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fiber/doc/html/fiber/callbacks/return_errorcode_*_data.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fiber/doc/html/fiber/callbacks/success_*_exception.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fiber/doc/html/fiber/fiber_mgmt/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fiber/doc/html/fiber/when_any/when_any/when_any__produce_first_outcome__whether_result_*_exception.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/functions/*_deque.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/functions/*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/functions/*_map.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/functions/*_set.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/functions/*_vector.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/metafunctions/*_deque.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/metafunctions/*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/metafunctions/*_map.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/metafunctions/*_set.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/container/conversion/metafunctions/*_vector.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/extension/*_full.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/functional/generation/functions/*_fused.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/functional/generation/functions/*_fused_fobj.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/functional/generation/functions/*_fused_proc.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/functional/generation/functions/*_unfused.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/functional/generation/metafunctions/*_fused.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/functional/generation/metafunctions/*_fused_fobj.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/functional/generation/metafunctions/*_fused_proc.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/functional/generation/metafunctions/*_unfused.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/iterator/metafunctions/equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/support/*_sequence.html'},
  { 'file_format': 'html',
    'filemask': 'libs/fusion/doc/html/fusion/support/*_view.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/access/get/get_*_radian_1.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/access/get/get_*_radian_1_0.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/covered_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/*_empty.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/*_simple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/is_simple/*_simple_1.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/is_simple/*_simple_2_with_strategy.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/*_valid.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/is_valid/*_valid_1.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/is_valid/*_valid_2_with_failure_value.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/is_valid/*_valid_2_with_message.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/is_valid/*_valid_2_with_strategy.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/is_valid/*_valid_3_with_failure_value_and_strategy.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/algorithms/is_valid/*_valid_3_with_message_and_strategy.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/core/*_tag.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/core/*_radian.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/*/*_cartesian.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/*/*_geographic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/*/*_spherical.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/*/*_spherical_equatorial.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/spatial_indexes/group__predicates/covered_*_geometry_const___.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/spatial_indexes/observers/boost__geometry__index__equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/strategies/strategy_side_side_*_cross_track.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/reference/strategies/strategy_side_side_*_triangle.html'},
  { 'file_format': 'html',
    'filemask': 'libs/geometry/doc/html/geometry/spatial_indexes/rtree_examples/index_of_shared_pointers_*_polygons.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/group___g_i_l_*_basic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/group___g_i_l_*_mutable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/group___g_i_l_*_step.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1byte__*__memunit.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1detail_1_1equal__n__fn_3_01const_01pixel_3_01_t_00_01_*_01_4_01_5_00_01cof2dcbb9935c1f0c43d9a16609dbdbb2f.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1detail_1_1equal__n__fn_3_01const_01pixel_3_01_t_00_01_*_01_4_01_5_00_01cof677edf535b9930129958a7a23f04e18.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1detail_1_1equal__n__fn_3_01planar__pixel__iterator_3_01_i_c_00_01_*_01_4_24c83e783e21d37b62022997a2dbc869.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1detail_1_1equal__n__fn_3_01planar__pixel__iterator_3_01_i_c_00_01_*_01_4_5f4582bc2983f880fe38ecee99cfc579.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1detail_1_1rgb__*__luminance__fn-members.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1detail_1_1rgb__*__luminance__fn.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1detail_1_1type__*__index.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1image__*__basic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1iterator__*__basic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1iterator__*__mutable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1iterator__*__step.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1locator__*__basic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1locator__*__mutable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1locator__*__step__in__x.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1locator__*__step__in__y.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1pixel__*__reference.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1pixel__reference__*__basic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1pixel__reference__*__mutable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1pixel__reference__*__proxy.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1view__*__basic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1view__*__mutable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1view__*__step__in__x.html'},
  { 'file_format': 'html',
    'filemask': 'libs/gil/doc/html/reference/structboost_1_1gil_1_1view__*__step__in__y.html'},
  { 'file_format': 'html',
    'filemask': 'libs/graph/doc/*_bipartite.html'},
  { 'file_format': 'html',
    'filemask': 'libs/graph/doc/*_kuratowski_subgraph.html'},
  { 'file_format': 'html',
    'filemask': 'libs/graph/doc/*_straight_line_drawing.html'},
  { 'file_format': 'html',
    'filemask': 'libs/graph_parallel/doc/html/boman_*_graph_coloring.html'},
  { 'file_format': 'html',
    'filemask': 'libs/graph_parallel/doc/html/*_connected.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*_2boost_2fusion_2detail_2common_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*_2boost_2fusion_2tuple_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*_2boost_2tuple_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*_2std_2array_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*_2std_2integral__constant_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*_2std_2pair_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*_2std_2tuple_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/group__group-*-boost.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/group__group-*-fusion.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/group__group-*-mpl.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/group__group-*-std.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/group__group-*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*__disjoint_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*__empty_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/*__subset_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/nested__*_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/nested__*__fwd_8hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__*-members.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hana/doc/html/structboost_1_1hana_1_1detail_1_1nested__*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hof/doc/html/include/boost/hof/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hof/doc/html/include/boost/hof/*_invocable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/hof/doc/html/include/boost/hof/*_unpackable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/has_difference_*_id648660.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/has_difference_*_id648751.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/has_difference_*_id661853.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/has_difference_*_id661944.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/has_inverse_*_idp72415360.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/inplace_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_base_map/on_codomain_*_idp71006944.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_base_map/on_codomain_*_idp71016880.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_base_map/on_definedness_*_id649862.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_base_map/on_definedness_*_id649899.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_bound_*_id644965.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_bound_*_id645449.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_bound_*_id647075.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_bound_*_id657880.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_bound_*_id661707.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/interval_bound_*_id662379.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_continuous__idp70546336.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_continuous__idp72404160.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_continuous_boo_id662072.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_continuous_int_id645493.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_bo_idp70906944.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_bo_idp70923904.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_bo_idp72364016.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_bo_idp72378064.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_bo_idp72409760.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_boost_id648611.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_boost_id648719.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_boost_id661821.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_boost_id661912.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_boost_id662108.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_in_idp70637552.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_discrete_inter_id647119.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_co_idp71342016.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_co_idp71544624.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_co_idp71733232.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_co_idp71858352.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_co_idp72545792.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_co_idp72673568.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_co_idp72811824.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_conta_id653092.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_conta_id654476.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_conta_id656296.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_conta_id657129.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_conta_id662961.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_conta_id663849.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_conta_id664773.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_jo_idp71867840.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_joine_id657193.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_se_idp72555296.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_separ_id663026.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_sp_idp72687072.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_sp_idp72821312.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_split_id663943.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_interval_split_id664838.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_map_icl_int_idp71313296.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_map_icl_int_idp71706208.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_map_icl_interv_id652893.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_map_icl_interv_id656109.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_map_icl_map_Do_id659469.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_map_icl_map_idp72252176.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_map_icl_spl_idp72646544.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_map_icl_split__id663662.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_negative.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_negative_ic_idp70845392.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_negative_ic_idp70851120.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_negative_icl_i_id648255.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_negative_icl_i_id648291.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_numeric_boo_idp72398560.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_numeric_boost__id662036.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_set_icl_int_idp71534272.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_set_icl_int_idp71848864.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_set_icl_interv_id654405.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_set_icl_interv_id657064.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_set_icl_sep_idp72536288.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_set_icl_separa_id662896.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_set_icl_spl_idp72802336.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_set_icl_split__id664709.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_total_icl_i_idp71370736.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_total_icl_i_idp71760256.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_total_icl_inte_id653291.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_total_icl_inte_id656483.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_total_icl_m_idp72288672.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_total_icl_map__id659721.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_total_icl_s_idp72714096.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/*_total_icl_spli_id664130.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/map/on_codomain_*_idp72032400.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/map/on_codomain_*_idp72038560.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/map/on_codomain_*_idp72044720.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/map/on_codomain_*_idp72051760.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/map/on_definedness_*_id658226.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/map/on_definedness_*_id658263.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id645009.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id645537.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id647165.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id656577.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id657258.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id657925.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id659803.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id661751.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id662423.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id663090.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id664224.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_ic_id664903.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp70462912.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp70553536.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp70644752.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp71773760.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp71877328.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp71994992.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp72300496.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp72351248.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp72462000.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp72564800.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp72727600.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/type_*_string_idp72830800.html'},
  { 'file_format': 'html',
    'filemask': 'libs/icl/doc/html/boost/icl/value_size_icl_*_id645566.html'},
  { 'file_format': 'html',
    'filemask': 'libs/local_function/doc/html/BOOST_LOCAL_FUNCTION_CONFIG_LOCALS_*_TPARAMS.html'},
  { 'file_format': 'html',
    'filemask': 'libs/local_function/doc/html/BOOST_LOCAL_FUNCTION_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/local_function/doc/html/BOOST_LOCAL_FUNCTION_*_TPL.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/add_console_*_idp54537424.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/add_console_*_idp54548336.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/add_console_*_idp54553840.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/*_action.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/*_action_adapter.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/attributes/current_process_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/attributes/current_thread_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/bind_*_log_idp53765824.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/bind_*_log_idp53768944.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/BOOST_PP_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/attribute_*_range.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/format_date_*_idp49828448.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/format_date_*_idp49834512.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/format_date_*_idp49840592.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/format_date_*_idp49847840.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/format_date_*_idp49855104.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/format_date_*_idp49863456.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/*_range_idp50558176.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/*_range_idp50565984.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/*_range_idp50572656.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/expressions/*_keyword_descriptor.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_def_idp49354944.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_def_idp49364256.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_def_idp49373296.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_def_idp49382336.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_def_idp49435056.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_def_idp49444176.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_def_idp49453024.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_thr_idp49324080.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_thr_idp49332304.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_thr_idp49340256.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_thr_idp49348208.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_thr_idp49411504.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_thr_idp49419536.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/extract_*_thr_idp49427296.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/fallback_*_default.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/fallback_*_none.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/fallback_*_throw.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/not_equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/open_mode/open_*_create.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/open_mode/open_*_create_tag.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/result_of/extract_*_default.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/result_of/extract_*_throw.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sinks/asynchronous_sink/scoped_thread_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sinks/event_log/custom_event_*_mapping.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sinks/event_log/direct_event_*_mapping.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sinks/event_log/make_event_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sinks/file/*_file_name_composer.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sources/channel_logger_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sources/logger_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sources/severity_channel_logger_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sources/severity_logger_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sources/wchannel_logger_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sources/wlogger_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/sources/wseverity_logger_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/*_log_fun.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/*_log_fun_voi_idp53758704.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/*_log_idp54398240.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/*_log_idp54400912.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/*_log_manip.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/boost/log/trivial/*_string.html'},
  { 'file_format': 'html',
    'filemask': 'libs/log/doc/html/log/how_*_read.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/dist_ref/dists/*_squared_dist.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/dist_ref/dists/inverse_*_squared_dist.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/dist_ref/dists/nc_*_squared_dist.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_caveats.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_exp_sinh.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_levels.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_overview.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_refes.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_sinh_sinh.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_tanh_sinh.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_tanh_sinh_2_arg.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_thread.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/double_exponential/*_tol.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/intro_*_overview.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/jacobi/jacobi_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/*_overview.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/*_ref.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/pol_ref/iteration_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/pol_ref/namespace_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/pol_ref/*_ref_ref.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/pol_ref/precision_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/*_tutorial.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/pol_tutorial/user_def_err_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/pol_tutorial/what_*_a_policy.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/powers/*_pi.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/sinc/sinc_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/sinc/sinhc_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*/chi_sq_intervals.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/*_sq_intervals.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*/chi_sq_size.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/*_sq_size.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*/chi_sq_test.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/cs_eg/*_sq_test.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/find_eg/find_mean_and_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/inverse_*_squared_eg.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*/paired_st.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/st_eg/paired_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*/tut_mean_intervals.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*/tut_mean_size.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*/tut_mean_test.html'},
  { 'file_format': 'html',
    'filemask': 'libs/math/doc/html/math_toolkit/stat_tut/weg/*/two_sample_students_t.html'},
  { 'file_format': 'html',
    'filemask': 'libs/mpl/doc/refmanual/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/mpl/doc/refmanual/equal-*.html',
    'new_base': 'libs/mpl/doc/refmanual/equal.html',
    'template': 'libs/mpl/doc/refmanual/equal.html'},
  { 'file_format': 'html',
    'filemask': 'libs/mpl/doc/refmanual/*-sequence.html'},
  { 'file_format': 'html',
    'filemask': 'libs/mpl/doc/refmanual/not-equal-*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/multiprecision/doc/html/boost_multiprecision/tut/floats/fp_eg/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/multiprecision/doc/html/boost_multiprecision/tut/limits/how_*_tell.html'},
  { 'file_format': 'html',
    'filemask': 'libs/multiprecision/doc/html/boost_multiprecision/tut/rational/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_*_idp42468976.html'},
  { 'file_format': 'html',
    'filemask': 'libs/numeric/odeint/doc/html/boost/numeric/odeint/controlled_*_idp42563904.html'},
  { 'file_format': 'html',
    'filemask': 'libs/numeric/odeint/doc/html/boost/numeric/odeint/integrate_n_*_idp41344672.html'},
  { 'file_format': 'html',
    'filemask': 'libs/numeric/odeint/doc/html/boost/numeric/odeint/make_n_step_*_idp41770688.html'},
  { 'file_format': 'html',
    'filemask': 'libs/numeric/odeint/doc/html/boost/numeric/odeint/make_n_step_*_idp41783264.html'},
  { 'file_format': 'html',
    'filemask': 'libs/numeric/odeint/doc/html/boost/numeric/odeint/runge_kutta_*_idp43523888.html'},
  { 'file_format': 'html',
    'filemask': 'libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_cuda__*_openmp__tbb_______via_thrust.html'},
  { 'file_format': 'html',
    'filemask': 'libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_matrices_*_state_types.html'},
  { 'file_format': 'html',
    'filemask': 'libs/optional/doc/html/boost_optional/tutorial/when_*_use_optional.html'},
  { 'file_format': 'html',
    'filemask': 'libs/phoenix/doc/html/phoenix/examples/adding_*_expression.html'},
  { 'file_format': 'html',
    'filemask': 'libs/phoenix/doc/html/phoenix/lazy_list/what_*_provided.html'},
  { 'file_format': 'html',
    'filemask': 'libs/phoenix/doc/html/phoenix/maintenance/experience/bugs_*_fixed.html'},
  { 'file_format': 'html',
    'filemask': 'libs/phoenix/doc/html/phoenix/maintenance/*_understanding_of_how_maintenance_works.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/arithmetic/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/array/*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/array/*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/array/*_tuple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/list/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/list/*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/list/*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/list/*_tuple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/logical/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/punctuation/*_begin_parens.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/repeat_from_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/repeat_from_*_2nd.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/repeat_from_*_3rd.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/repetition/repeat_from_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/seq/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/seq/*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/seq/*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/seq/*_tuple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/seq/variadic_seq_*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/tuple/*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/tuple/*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/tuple/*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/variadic/*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/variadic/*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/variadic/*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/headers/variadic/*_tuple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/array_*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/array_*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/array_*_tuple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/*_d.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/*_begin_parens.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/*_iterating.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/*_selfish.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_d.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_cons.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_nil.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_array_d.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_seq_r.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_tuple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/list_*_tuple_r.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/repeat_from_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/repeat_from_*_1st.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/repeat_from_*_2nd.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/repeat_from_*_3rd.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/repeat_from_*_d.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/repeat_from_*_d_z.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/repeat_from_*_z.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/seq_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/seq_*_s.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/seq_*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/seq_*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/seq_*_tuple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/tuple_*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/tuple_*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/tuple_*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/variadic_seq_*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/variadic_*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/variadic_*_list.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/variadic_*_seq.html'},
  { 'file_format': 'html',
    'filemask': 'libs/preprocessor/doc/ref/variadic_*_tuple.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/faq/does_boost_python_work_with_*_.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/faq/how_do_i_debug_*_python_extensi.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/faq/i_m_getting_the_attempt_*_retur.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/faq/*_boost_python_thread_aware_com.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/faq/*_return_internal_reference_eff.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/faq/why_doesn_t_*_operator_work.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/faq/why_*_automatic_to_python_co.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/reference/*_from_python_type_conversion.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/reference/to_from_python_type_conversion/boost_python_register_ptr_*_pyt.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/reference/to_from_python_type_conversion/boost_python_*_python_converter.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/reference/utility_and_infrastructure/boost_python_type_*_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/python/doc/html/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/range/doc/html/range/headers/algorithm_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/range/doc/html/range/reference/algorithms/new/*_sorted.html'},
  { 'file_format': 'html',
    'filemask': 'libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_ALL_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_END_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/scope_exit/doc/html/BOOST_SCOPE_EXIT_*_TPL.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/advanced/customize/assign_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_*_attribute_from_iterators.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_*_attribute_from_value.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/advanced/customize/assign_to/assign_*_container_from_value.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/advanced/customize/attribute_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/advanced/customize/*_container.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/advanced/customize/*_string.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/advanced/customize/string_traits/*_char.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/karma/reference/directive/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/qi/reference/directive/*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/spirit/doc/html/spirit/qi/reference/operator/sequential_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/examples/*_double.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/add_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/copy_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/detected_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/has_bit_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/has_bit_*_assign.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/has_equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/has_logical_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/has_not_equal_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_abstract.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_arithmetic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_array.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_assignable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_base_of.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_class.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_complete.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_complex.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_compound.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_const.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_constructible.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_convertible.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_copy_assignable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_copy_constructible.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_default_constructible.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_destructible.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_detected.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_detected_convertible.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_detected_exact.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_empty.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_enum.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_final.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_floating_point.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_function.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_fundamental.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_integral.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_list_constructible.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_lvalue_reference.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_member_function_pointer.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_member_object_pointer.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_member_pointer.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_nothrow_move_assignable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_nothrow_move_constructible.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_nothrow_swappable.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_object.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_pod.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_pointer.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_polymorphic.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_reference.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_rvalue_reference.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_same.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_scalar.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_signed.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_stateless.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_union.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_unsigned.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_virtual_base_of.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_void.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/*_volatile.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/remove_*.html'},
  { 'file_format': 'html',
    'filemask': 'libs/type_traits/doc/html/boost_typetraits/reference/remove_*_ref.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ARRAY_*_SEQ.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ARRAY_*_TUPLE.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_ARRAY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_EMPTY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_LIST.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_LIST_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_NUMBER.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_SEQ.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_SEQ_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_TUPLE.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_TYPE.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_ASSERT_*_TYPE_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_ARRAY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_ARRAY_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_EMPTY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_EMPTY_ARRAY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_EMPTY_ARRAY_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_EMPTY_LIST.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_EMPTY_LIST_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_IDENTIFIER.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_IDENTIFIER_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_LIST.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_LIST_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_MULTI.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_MULTI_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_NUMBER.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_P_idp45976304.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_PARENS_EMPTY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_SEQ.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_SEQ_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_TUPLE.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_TYPE.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_TYPE_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_UNARY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_UNARY_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_VMD_SEQ.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_VMD_TUPLE.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_LIST_*_SEQ.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_LIST_*_TUPLE.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_SEQ_*_ARRAY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_SEQ_*_LIST.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_SEQ_*_TUPLE.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_*_TUPLE_D.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_TUPLE_*_ARRAY.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_TUPLE_*_LIST.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/BOOST_VMD_TUPLE_*_SEQ.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/array/*_tuple_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/assert_*_array_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/assert_*_empty_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/assert_*_identifier_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/assert_*_list_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/assert_*_number_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/assert_*_seq_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/assert_*_tuple_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/assert_*_type_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_array_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_empty_array_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_empty_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_empty_list_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_identifier_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_list_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_multi_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_number_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_parens_empty_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_seq_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_tuple_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_type_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/*_unary_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/list/*_seq_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/list/*_tuple_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/seq/*_vmd_seq_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/seq/*_array_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/seq/*_list_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/seq/*_tuple_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/tuple/*_vmd_tuple_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/tuple/*_array_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/tuple/*_list_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/vmd/doc/html/header/boost/vmd/tuple/*_seq_hpp.html'},
  { 'file_format': 'html',
    'filemask': 'libs/*/index.html',
    'new_base': 'libs/index.html',
    'template': 'libs/index.html'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.*_disjoint.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/debug/clang-3.6.2/benchmark.*_subset.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.*_disjoint.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/debug/clang-3.7.1/benchmark.*_subset.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.*_disjoint.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/debug/clang-3.8.0/benchmark.*_subset.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.*_disjoint.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/debug/clang-3.8.1/benchmark.*_subset.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.*_disjoint.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/release/clang-3.5.0/benchmark.*_subset.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.*_disjoint.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/release/clang-3.6.2/benchmark.*_subset.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.*_disjoint.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/release/clang-3.7.1/benchmark.*_subset.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.*_disjoint.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/hana/doc/html/benchmarks/release/clang-3.8.1/benchmark.*_subset.compile.json'},
  { 'file_format': 'json-nested',
    'filemask': 'libs/*/meta/libraries.json'},
  { 'file_format': 'odf',
    'filemask': 'libs/icl/doc/boostcon09/intro_*_itl.odp'},
  { 'file_format': 'odf',
    'filemask': 'libs/icl/doc/boostcon09/intro_*_itl_3_0_0_bc09.odp'},
  { 'file_format': 'odf',
    'filemask': 'libs/icl/doc/boostcon09/intro_*_itl_3_1_0.odp'},
  { 'file_format': 'po',
    'filemask': 'tools/build/example/gettext/*.po'}]

In fact, I don't see a single true match.

file is in https://kojipkgs.fedoraproject.org//packages/boost/1.69.0/18.fc32/src/boost-1.69.0-18.fc32.src.rpm

false positives for cacti

Here are a list of results that may come from the same issue as #51
My guess is that "to" is considered as a language code, which makes "How-to-Data-Query-Templates.html" considered as a translation file.
But if there isn't at least two languages codes detected, it's most probably a false positive.

[ { 'file_format': 'html',
    'filemask': 'docs/How-*-Data-Query-Templates.html'},
  { 'file_format': 'html',
    'filemask': 'docs/How-*-Determine-Template-Version.html'},
  { 'file_format': 'html',
    'filemask': 'docs/How-*-Graph-a-Custom-Collection-Script.html'},
  { 'file_format': 'html',
    'filemask': 'docs/How-*-Graph-Your-Network.html'},
  { 'file_format': 'html',
    'filemask': 'docs/How-*-Setup-Remote-Pollers.html'},
  { 'file_format': 'html',
    'filemask': 'docs/How-*-SSH-Tunnels.html'},
  { 'file_format': 'json-nested',
    'filemask': 'include/vendor/cldr-to-gettext-plural-rules/src/cldr-data/main/*/languages.json'},
  { 'file_format': 'json-nested',
    'filemask': 'include/vendor/cldr-to-gettext-plural-rules/src/cldr-data/main/*/scripts.json'},
  { 'file_format': 'json-nested',
    'filemask': 'include/vendor/cldr-to-gettext-plural-rules/src/cldr-data/main/*/territories.json'},
  { 'file_format': 'php',
    'filemask': 'cli/sqltable_*_php.php'},
  { 'file_format': 'php',
    'filemask': 'include/*/css/index.php'},
  { 'file_format': 'php',
    'filemask': 'include/*/index.php',
    'template': 'include/index.php'},
  { 'file_format': 'php',
    'filemask': 'include/*/less/index.php'},
  { 'file_format': 'php',
    'filemask': 'include/*/scss/index.php'},
  { 'file_format': 'php',
    'filemask': 'include/*/webfonts/index.php'},
  { 'file_format': 'php',
    'filemask': 'include/vendor/gettext/src/Extractors/*.php'},
  { 'file_format': 'php',
    'filemask': 'include/vendor/gettext/src/Generators/*.php'},
  { 'file_format': 'php',
    'filemask': 'include/vendor/phpmailer/language/phpmailer.lang-*.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_count_oids.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_cpoller.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_fping.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_gexport.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_host_cpu.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_host_disk.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_hstats.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_net_snmp_disk_bytes.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_net_snmp_disk_io.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_poller.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_sql.php'},
  { 'file_format': 'php',
    'filemask': 'scripts/*_webseer.php'},
  { 'file_format': 'po',
    'filemask': 'locales/po/*.po',
    'new_base': 'locales/po/cacti.pot'}]

file is inside https://kojipkgs.fedoraproject.org//packages/cacti/1.2.14/1.fc32/src/cacti-1.2.14-1.fc32.src.rpm
list of files

ุดูƒุฑ (I understand this means thanks in Arabic)

webkitgtk-2.24.1 false positives

Hello, while working on this: https://pagure.io/fedora-localization-statistics

I notice false positives with webkitgtk-2.24.1 (https://webkitgtk.org/releases/webkitgtk-2.24.1.tar.xz)

File list is: files.txt

It finds this:

[
   {
      'filemask':'*/WebCore/platform/gtk/po/ar.po',
      'file_format':'po'
   },
   {
      'filemask':'Source/WebCore/platform/gtk/po/*.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/as.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/bg.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/ca.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/cs.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/de.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/el.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/en_CA.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/en_GB.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/eo.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/es.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/et.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/eu.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/fi.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/fr.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/gl.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/gu.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/he.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/hi.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/hu.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/id.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/it.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/ja.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/kn.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/ko.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/lt.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/lv.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/ml.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/mr.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/nb.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/nl.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/or.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/pa.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/pl.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/pt.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/pt_BR.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/ro.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/ru.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/sl.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/sr.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/[email protected]',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/sv.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/ta.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/te.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/tr.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/uk.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/vi.po',
      'file_format':'po'
   },
   {
      'filemask':'*/WebCore/platform/gtk/po/zh_CN.po',
      'file_format':'po'
   },
   {
      'filemask':'*/JavaScriptCore/features.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/ApplicationCache.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Audit.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Canvas.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Console.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/CPUProfiler.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/CSS.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Database.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Debugger.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/DOM.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/DOMDebugger.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/DOMStorage.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/GenericTypes.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Heap.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/IndexedDB.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Inspector.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/LayerTree.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Memory.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Network.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/OverlayTypes.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Page.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Recording.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Runtime.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/ScriptProfiler.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Security.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/ServiceWorker.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Target.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Timeline.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/inspector/protocol/Worker.json',
      'file_format':'json'
   },
   {
      'filemask':'*/JavaScriptCore/wasm/wasm.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/compiler/translator/emulated_builtin_function_data_hlsl.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/es3_copy_conversion_formats.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/es3_format_type_combinations.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/format_map_data.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/packed_gl_enums.json',
      'file_format':'json'
   },
   {
      'filemask':'Source/ThirdParty/ANGLE/src/libANGLE/packed_*.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format_data.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/angle_format_map.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/dxgi_format_data.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/dxgi_support_data.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/texture_format_data.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/d3d/d3d11/texture_format_map.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/gl/gl_bindings_data.json',
      'file_format':'json'
   },
   {
      'filemask':'Source/ThirdParty/ANGLE/src/libANGLE/renderer/*/*_bindings_data.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/load_functions_data.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libANGLE/renderer/vulkan/vk_format_map.json',
      'file_format':'json'
   },
   {
      'filemask':'*/ThirdParty/ANGLE/src/libGLESv2/proc_table_data.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebCore/bindings/scripts/IDLAttributes.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebCore/css/CSSProperties.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebCore/features.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-10.0.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-10.3.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-11.0.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-11.3.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-12.0.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-12.2.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-8.0.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-9.0.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebInspectorUI/Versions/Inspector-iOS-9.3.json',
      'file_format':'json'
   },
   {
      'filemask':'*/WebKit/UIProcess/Automation/Automation.json',
      'file_format':'json'
   }
]

I think the correct result should be 'filemask':'./sources/WebCore/platform/gtk/po/*.po',

thanks a lot for your help

gnome-clock false positives

Hello, while working on this! https://pagure.io/fedora-localization-statistics

I notice false positives with gnome-clocks-3.32.0

File list is: files.txt

It finds this:

[
   {
      'filemask':'help/*/*.po',
      'file_format':'po'
   },
   {
      'filemask':'help/*/pt_BR.po',
      'file_format':'po'
   },
   {
      'filemask':'help/pt_BR/*.po',
      'file_format':'po'
   },
   {
      'filemask':'po/*.po',
      'file_format':'po'
   }
]

The two "pt_BR" are a bug.
I noticed the same bug with other gnome packages, let me know if you need a few more.

Exception in file discovery

I noticed an exception when trying to import a project to weblate where one of the filenames was:

6-migrate-archived-model-to-revision.ts
^                        ^^

Notice the file starts with a number and contains a language code to.

The relevant log from weblate:

uwsgi stderr | ERROR Internal Server Error: /create/component/vcs/
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/utils/decorators.py", line 45, in _wrapper
    return bound_method(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/create.py", line 264, in dispatch
    return super(CreateComponent, self).dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/views/generic/base.py", line 97, in dispatch
    return handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py", line 172, in post
    return super().post(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py", line 142, in post
    return self.form_valid(form)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/create.py", line 203, in form_valid
    return self.get(self, self.request)
  File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py", line 168, in get
    return super().get(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py", line 133, in get
    return self.render_to_response(self.get_context_data())
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/create.py", line 218, in get_context_data
    kwargs = super(CreateComponent, self).get_context_data(**kwargs)
  File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py", line 66, in get_context_data
    kwargs['form'] = self.get_form()
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/create.py", line 207, in get_form
    form = super(CreateComponent, self).get_form(form_class)
  File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py", line 33, in get_form
    return form_class(**self.get_form_kwargs())
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/forms.py", line 1529, in __init__
    self.discovered = self.perform_discovery(request, kwargs)
  File "/usr/local/lib/python3.7/dist-packages/weblate/trans/forms.py", line 1542, in perform_discovery
    discovered = discover(self.instance.full_path)
  File "/usr/local/lib/python3.7/dist-packages/translation_finder/api.py", line 79, in discover
    results.extend(instance.discover())
  File "/usr/local/lib/python3.7/dist-packages/translation_finder/discovery/base.py", line 153, in discover
    for result in self.get_masks():
  File "/usr/local/lib/python3.7/dist-packages/translation_finder/discovery/base.py", line 190, in get_masks
    mask[i] = match.sub("\\1{}\\2".format(wildcard), current)
  File "/usr/lib/python3.7/re.py", line 309, in _subx
    template = _compile_repl(template, pattern)
  File "/usr/lib/python3.7/re.py", line 300, in _compile_repl
    return sre_parse.parse_template(repl, pattern)
  File "/usr/lib/python3.7/sre_parse.py", line 1018, in parse_template
    addgroup(int(this[1:]), len(this) - 1)
  File "/usr/lib/python3.7/sre_parse.py", line 962, in addgroup
    raise s.error("invalid group reference %d" % index, pos)
re.error: invalid group reference 15 at position 1

Python 3.8 ModuleNotFoundError: No module named 'ruamel'

I have this error (it worked fine in October 2nd)

[jb@localhost fedora-localization-statistics]$ rm -rf venv && virtualenv venv && source venv/bin/activate && pip install -r requirements.txt 
Using base prefix '/usr'
New python executable in /home/jb/Projects/fedora-localization-statistics/venv/bin/python3
Also creating executable in /home/jb/Projects/fedora-localization-statistics/venv/bin/python
Installing setuptools, pip, wheel...
done.
Collecting git+https://github.com/WeblateOrg/language-data.git@master (from -r requirements.txt (line 2))
  Cloning https://github.com/WeblateOrg/language-data.git (to revision master) to /tmp/pip-req-build-uhs5h29n
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting git+https://github.com/WeblateOrg/translation-finder.git@master (from -r requirements.txt (line 4))
  Cloning https://github.com/WeblateOrg/translation-finder.git (to revision master) to /tmp/pip-req-build-b70fxemn
    ERROR: Command errored out with exit status 1:
     command: /home/jb/Projects/fedora-localization-statistics/venv/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-b70fxemn/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-b70fxemn/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-u3ekgmgg
         cwd: /tmp/pip-req-build-b70fxemn/
    Complete output (11 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-req-build-b70fxemn/setup.py", line 27, in <module>
        VERSION = __import__("translation_finder").__version__
      File "/tmp/pip-req-build-b70fxemn/translation_finder/__init__.py", line 22, in <module>
        from .api import discover
      File "/tmp/pip-req-build-b70fxemn/translation_finder/api.py", line 25, in <module>
        from .discovery.files import (
      File "/tmp/pip-req-build-b70fxemn/translation_finder/discovery/files.py", line 25, in <module>
        from ruamel.yaml import YAML
    ModuleNotFoundError: No module named 'ruamel'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
(venv) [jb@localhost fedora-localization-statistics]$ python --version
Python 3.8.5

My requirement.txt contains (I tried both with and without ruamel.yaml:

# translation finder
git+https://github.com/WeblateOrg/language-data.git@master
ruamel.yaml
git+https://github.com/WeblateOrg/translation-finder.git@master

# my scripts
pyyaml
pandas
geopandas
matplotlib
descartes

Did I missed something obvious?

false positive for Cataclysm-DDA

here, aresource and po looks fine.
but json-nested and yaml are incorrect.

[ { 'file_format': 'aresource',
    'filemask': 'Cataclysm-DDA-0.E-2/android/app/src/experimental/res/values-*/strings.xml',
    'template': 'Cataclysm-DDA-0.E-2/android/app/src/experimental/res/values/strings.xml'},
  { 'file_format': 'aresource',
    'filemask': 'Cataclysm-DDA-0.E-2/android/app/src/main/res/values-*/strings.xml',
    'template': 'Cataclysm-DDA-0.E-2/android/app/src/main/res/values/strings.xml'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/book/*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/classes/*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/12mm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/20x66mm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/22.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/223.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/270win.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/300.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/3006.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/300BLK.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/308.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/32.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/357sig.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/36paper.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/38.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/380.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/38super.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/40.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/40x46mm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/40x53mm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/410shot.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/44.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/44paper.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/45.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/454.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/4570.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/45colt.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/46.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/460.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/50.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/500.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/545x39.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/57.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/5x50.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/66mm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/700nx.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/762.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/762R.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/762x25.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/84x246mm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/8x40mm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/9mm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/9x18.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/atgm.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/bio.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/blunderbuss.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/chemical_spray.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/combination.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/faults_*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/flammable.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/flintlock.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/metal_rail.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/monster_*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/nail.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/paintball.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/shot.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/signal_flare.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/items/*/ups.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_car_dealership.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_car_showroom.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_city_dump_small.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_gardening_allotment.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_internet_cafe.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_market_small.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_open_sewer_small.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_private_park.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_public_art_piece.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_public_space.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_sex_shop.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/*_tire_shop.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/fema/FEMA_*_00.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/fema/FEMA_*_01.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/fema/FEMA_*_02.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/fema/FEMA_*_03.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/house/house05_*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/mi-go/*-go_encampment.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/mi-go/*-go_nested.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/mi-go/*-go_scout_tower.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/refugee_center/rc_grounds_*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen/s_*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/mapgen_palettes/*-go_palette.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/monstergroups/*-go.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/monsters/*-go.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/npcs/Backgrounds/gung_*_1.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/npcs/Backgrounds/gung_*_2.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/npcs/Backgrounds/gung_*_3.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/npcs/*_trait_groups.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/npcs/*_traits.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/npcs/holdouts/*_Lapin.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/npcs/prisoners/*-go_prisoners.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/json/overmap/overmap_terrain/overmap_terrain_*-go.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/Aftershock/items/*/5x50.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/Aftershock/items/*/laser.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/CRT_EXPANSION/items/crt_*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/CRT_EXPANSION/martial/crt_*_techniques.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/CRT_EXPANSION/mutations/vamp_mut_*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/CRT_EXPANSION/mutations/wendigo_mut_*.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/Graphical_Overmap/go_overmap_terrain_*-go.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/Magiclysm/ter_fur_transform/ter_*_transform.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/more_classes_scenarios/*_classes.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/more_classes_scenarios/*_scenarios.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/more_classes_scenarios/*_start_locations.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_01.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_02.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_03.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_04.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_05.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_gate_01.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_gate_02.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_gate_03.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/More_Locations/factory/factory_*_06.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/mods/Urban_Development/building_jsons/urban_38_*_hardware_house.json'},
  { 'file_format': 'json-nested',
    'filemask': 'Cataclysm-DDA-0.E-2/data/names/*.json',
    'template': 'Cataclysm-DDA-0.E-2/data/names/en.json'},
  { 'file_format': 'po',
    'filemask': 'Cataclysm-DDA-0.E-2/lang/po/*.po'},
  { 'file_format': 'yaml',
    'filemask': 'Cataclysm-DDA-0.E-2/.github/workflows/*-validator.yml'}]

file comes from https://kojipkgs.fedoraproject.org//packages/cataclysm-dda/0.E.2/1.fc32/src/cataclysm-dda-0.E.2-1.fc32.src.rpm
list of files

JSONDecodeError at /create/component/vcs/

Describe the bug
I wanted to try out weblate. Running it via the docker-compose up command right out of the box of the docker repo.
Hooked up the ssh key to my bitbucket username.
Created a Project, and trying to add a component. This Fails with the following error:

JSONDecodeError at /create/component/vcs/
Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0)

To Reproduce
Docker image used: weblate/weblate:latest

Steps to reproduce the behavior:

  1. Go to 'Project' โ†’ Add new Component
  2. Add all the data needed,
  3. Click on 'Continue'
  4. See error

Expected behavior
I don't know - maybe it should add the component.
Screenshots
If applicable, add screenshots to help explain your problem.

Server configuration and status
Please paste the output of list_versions and check --deploy commands over
here. Depending on installation these can be executed in different way, please
consult https://docs.weblate.org/en/latest/admin/management.html for more
details.

Additional context

Traceback
Environment:


Request Method: POST
Request URL: https://localhost/create/component/vcs/

Django Version: 2.2.4
Python Version: 3.7.3
Installed Applications:
['django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin.apps.SimpleAdminConfig',
 'django.contrib.admindocs',
 'django.contrib.sitemaps',
 'django.contrib.humanize',
 'social_django',
 'crispy_forms',
 'compressor',
 'rest_framework',
 'rest_framework.authtoken',
 'weblate.addons',
 'weblate.auth',
 'weblate.checks',
 'weblate.formats',
 'weblate.machinery',
 'weblate.trans',
 'weblate.lang',
 'weblate.langdata',
 'weblate.memory',
 'weblate.screenshots',
 'weblate.fonts',
 'weblate.accounts',
 'weblate.utils',
 'weblate.vcs',
 'weblate.wladmin',
 'weblate',
 'weblate.gitexport']
Installed Middleware:
['weblate.middleware.ProxyMiddleware',
 'django.middleware.security.SecurityMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.locale.LocaleMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'weblate.accounts.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'social_django.middleware.SocialAuthExceptionMiddleware',
 'weblate.accounts.middleware.RequireLoginMiddleware',
 'weblate.middleware.SecurityMiddleware']



Traceback:

File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/exception.py" in inner
  34.             response = get_response(request)

File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py" in _get_response
  115.                 response = self.process_exception_by_middleware(e, request)

File "/usr/local/lib/python3.7/dist-packages/django/core/handlers/base.py" in _get_response
  113.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/usr/local/lib/python3.7/dist-packages/django/views/generic/base.py" in view
  71.             return self.dispatch(request, *args, **kwargs)

File "/usr/local/lib/python3.7/dist-packages/django/utils/decorators.py" in _wrapper
  45.         return bound_method(*args, **kwargs)

File "/usr/local/lib/python3.7/dist-packages/django/contrib/auth/decorators.py" in _wrapped_view
  21.                 return view_func(request, *args, **kwargs)

File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/create.py" in dispatch
  275.         return super(CreateComponent, self).dispatch(request, *args, **kwargs)

File "/usr/local/lib/python3.7/dist-packages/django/views/generic/base.py" in dispatch
  97.         return handler(request, *args, **kwargs)

File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py" in post
  172.         return super().post(request, *args, **kwargs)

File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py" in post
  142.             return self.form_valid(form)

File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/create.py" in form_valid
  214.         return self.get(self, self.request)

File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py" in get
  168.         return super().get(request, *args, **kwargs)

File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py" in get
  133.         return self.render_to_response(self.get_context_data())

File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/create.py" in get_context_data
  229.         kwargs = super(CreateComponent, self).get_context_data(**kwargs)

File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py" in get_context_data
  66.             kwargs['form'] = self.get_form()

File "/usr/local/lib/python3.7/dist-packages/weblate/trans/views/create.py" in get_form
  218.         form = super(CreateComponent, self).get_form(form_class)

File "/usr/local/lib/python3.7/dist-packages/django/views/generic/edit.py" in get_form
  33.         return form_class(**self.get_form_kwargs())

File "/usr/local/lib/python3.7/dist-packages/weblate/trans/forms.py" in __init__
  1796.         self.discovered = self.perform_discovery(request, kwargs)

File "/usr/local/lib/python3.7/dist-packages/weblate/trans/forms.py" in perform_discovery
  1811.         discovered = discover(self.instance.full_path)

File "/usr/local/lib/python3.7/dist-packages/translation_finder/api.py" in discover
  79.         results.extend(instance.discover())

File "/usr/local/lib/python3.7/dist-packages/translation_finder/discovery/base.py" in discover
  159.             self.adjust_format(result)

File "/usr/local/lib/python3.7/dist-packages/translation_finder/discovery/files.py" in adjust_format
  215.             data = json.load(handle)

File "/usr/lib/python3.7/json/__init__.py" in load
  296.         parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)

File "/usr/lib/python3.7/json/__init__.py" in loads
  338.                                   s, 0)

Exception Type: JSONDecodeError at /create/component/vcs/
Exception Value: Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0)

Django Error Message


Request Method: | POST
-- | --
https://localhost/create/component/vcs/
2.2.4
JSONDecodeError
Unexpected UTF-8 BOM (decode using utf-8-sig): line 1 column 1 (char 0)
/usr/lib/python3.7/json/__init__.py in loads, line 338
/usr/bin/uwsgi-core
3.7.3
['/',  '/usr/local/lib/python3.7/dist-packages/',  '.',  '',  '/usr/lib/python37.zip',  '/usr/lib/python3.7',  '/usr/lib/python3.7/lib-dynload',  '/usr/local/lib/python3.7/dist-packages',  '/usr/lib/python3/dist-packages']
Fri, 30 Aug 2019 19:40:15 +0000

Initializing a component from a .zip file does not respect the template file

To Reproduce the issue

  1. Create a component from the attached .zip file
    pot_not_honored.zip
  2. Set pot_not_honored.pot as the source template for new translations
    (why isn't it suggested automatically? The .po file(s) are detected)
  3. When the component is created, go to "English" translation, which shows: two string four words โœ”๏ธ
  4. Go to "German" translation, which shows: one string two words, 100% translated โŒ
    Expected: two strings, four words as in English, 50% translated.
  5. Go to "English" translation
    Files -> upload translation
    Extract pot_not_honored.pot from the zip and upload it again with "update source strings"
  6. Go to "German" translation, which now shows: 50% translated, two string four words โœ”๏ธ

IMHO the .pot file should always be the reference for the translations. It may well be that .po files haven't been updated for a while and thus are missing msgids or containing outdated msgids. The attached .zip only tests the first case, not the second.

Find new language templates

Finder should be able to discover new language templates for file formats it makes sense (eg. pot files for gettext).

Too many false positives in some cases

The detection seems to find too many possible files in some cases, eg. on https://code.getnoc.com/noc/noc:

== Match 1 ==
file_format    : po
filemask       : services/*/translations/pt_BR/LC_MESSAGES/messages.po
new_base       : services/bi/translations/messages.pot

== Match 2 ==
file_format    : po
filemask       : services/bi/translations/*/LC_MESSAGES/messages.po
new_base       : services/bi/translations/messages.pot

== Match 3 ==
file_format    : po
filemask       : services/*/translations/pt_BR/LC_MESSAGES/messages_js.po
new_base       : services/bi/translations/messages_js.pot

== Match 4 ==
file_format    : po
filemask       : services/bi/translations/*/LC_MESSAGES/messages_js.po
new_base       : services/bi/translations/messages_js.pot

== Match 5 ==
file_format    : po
filemask       : services/*/translations/ru/LC_MESSAGES/messages.po
new_base       : services/bi/translations/messages.pot

== Match 6 ==
file_format    : po
filemask       : services/*/translations/ru/LC_MESSAGES/messages_js.po
new_base       : services/bi/translations/messages_js.pot

== Match 7 ==
file_format    : po
filemask       : services/card/translations/*/LC_MESSAGES/messages.po
new_base       : services/card/translations/messages.pot

== Match 8 ==
file_format    : po
filemask       : services/card/translations/*/LC_MESSAGES/messages_js.po
new_base       : services/card/translations/messages_js.pot

== Match 9 ==
file_format    : po
filemask       : services/login/translations/*/LC_MESSAGES/messages.po
new_base       : services/login/translations/messages.pot

== Match 10 ==
file_format    : po
filemask       : services/login/translations/*/LC_MESSAGES/messages_js.po
new_base       : services/login/translations/messages_js.pot

== Match 11 ==
file_format    : po
filemask       : services/web/translations/*/LC_MESSAGES/messages.po
new_base       : services/web/translations/messages.pot

== Match 12 ==
file_format    : po
filemask       : services/web/translations/*/LC_MESSAGES/messages_js.po
new_base       : services/web/translations/messages_js.pot

== Match 13 ==
file_format    : json
filemask       : requirements/*.json

== Match 14 ==
file_format    : json
filemask       : */profiles/Alcatel/7302/snmp_metrics/cpu_usage.json

== Match 15 ==
file_format    : json
filemask       : */profiles/Alcatel/7302/snmp_metrics/environment_temperature.json

== Match 16 ==
file_format    : json
filemask       : */profiles/Alcatel/7302/snmp_metrics/memory_usage.json

== Match 17 ==
file_format    : json
filemask       : */profiles/Alcatel/AOS/snmp_metrics/cpu_load_1min.json

== Match 18 ==
file_format    : json
filemask       : */profiles/Alcatel/AOS/snmp_metrics/cpu_usage.json

== Match 19 ==
file_format    : json
filemask       : */profiles/Alcatel/AOS/snmp_metrics/cpu_usage_5sec.json

== Match 20 ==
file_format    : json
filemask       : */profiles/Alcatel/AOS/snmp_metrics/interface_errors_crc.json

== Match 21 ==
file_format    : json
filemask       : */profiles/Alcatel/AOS/snmp_metrics/interface_errors_frame.json

== Match 22 ==
file_format    : json
filemask       : */profiles/Alcatel/AOS/snmp_metrics/memory_load_1min.json

== Match 23 ==
file_format    : json
filemask       : */profiles/Alcatel/AOS/snmp_metrics/memory_usage_5sec.json

== Match 24 ==
file_format    : json
filemask       : */profiles/Alcatel/TIMOS/snmp_metrics/subscribers_ipoe.json

== Match 25 ==
file_format    : json
filemask       : */profiles/APC/AOS/snmp_metrics/environment_temperature.json

== Match 26 ==
file_format    : json
filemask       : */profiles/Cisco/IOS/snmp_metrics/cpu_usage.json

== Match 27 ==
file_format    : json
filemask       : */profiles/Cisco/IOS/snmp_metrics/environment_temperature.json

== Match 28 ==
file_format    : json
filemask       : */profiles/Cisco/IOS/snmp_metrics/interface_errors_crc.json

== Match 29 ==
file_format    : json
filemask       : */profiles/Cisco/IOS/snmp_metrics/interface_errors_frame.json

== Match 30 ==
file_format    : json
filemask       : */profiles/Cisco/IOS/snmp_metrics/memory_usage.json

== Match 31 ==
file_format    : json
filemask       : */profiles/Cisco/IOS/snmp_metrics/subscribers_ipoe.json

== Match 32 ==
file_format    : json
filemask       : */profiles/Cisco/WLC/snmp_metrics/cpu_usage.json

== Match 33 ==
file_format    : json
filemask       : */profiles/Cisco/WLC/snmp_metrics/memory_usage.json

== Match 34 ==
file_format    : json
filemask       : */profiles/EdgeCore/ES/snmp_metrics/cpu_usage.json

== Match 35 ==
file_format    : json
filemask       : sa/profiles/EdgeCore/*/snmp_metrics/cpu_usage.json

== Match 36 ==
file_format    : json
filemask       : */profiles/EdgeCore/ES/snmp_metrics/memory_usage.json

== Match 37 ==
file_format    : json
filemask       : sa/profiles/EdgeCore/*/snmp_metrics/memory_usage.json

== Match 38 ==
file_format    : json
filemask       : */profiles/ElectronR/KO01M/snmp_metrics/environment_temperature.json

== Match 39 ==
file_format    : json
filemask       : */profiles/ElectronR/KO01M/snmp_metrics/interface_status.json

== Match 40 ==
file_format    : json
filemask       : */profiles/Eltex/DSLAM/snmp_metrics/cpu_usage.json

== Match 41 ==
file_format    : json
filemask       : */profiles/Eltex/DSLAM/snmp_metrics/environment_temperature.json

== Match 42 ==
file_format    : json
filemask       : */profiles/Eltex/DSLAM/snmp_metrics/memory_usage.json

== Match 43 ==
file_format    : json
filemask       : */profiles/Eltex/MES/snmp_metrics/cpu_usage.json

== Match 44 ==
file_format    : json
filemask       : */profiles/Eltex/MES/snmp_metrics/environment_temperature.json

== Match 45 ==
file_format    : json
filemask       : */profiles/Extreme/XOS/snmp_metrics/cpu_usage.json

== Match 46 ==
file_format    : json
filemask       : */profiles/Extreme/XOS/snmp_metrics/environment_temperature.json

== Match 47 ==
file_format    : json
filemask       : */profiles/Extreme/XOS/snmp_metrics/memory_usage.json

== Match 48 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_broadcast_packets_in.json

== Match 49 ==
file_format    : json
filemask       : sa/profiles/Generic/snmp_metrics/interface_broadcast_packets_*.json

== Match 50 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_broadcast_packets_out.json

== Match 51 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_discards_in.json

== Match 52 ==
file_format    : json
filemask       : sa/profiles/Generic/snmp_metrics/interface_discards_*.json

== Match 53 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_discards_out.json

== Match 54 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_errors_in.json

== Match 55 ==
file_format    : json
filemask       : sa/profiles/Generic/snmp_metrics/interface_errors_*.json

== Match 56 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_errors_out.json

== Match 57 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_load_in.json

== Match 58 ==
file_format    : json
filemask       : sa/profiles/Generic/snmp_metrics/interface_load_*.json

== Match 59 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_load_out.json

== Match 60 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_multicast_packets_in.json

== Match 61 ==
file_format    : json
filemask       : sa/profiles/Generic/snmp_metrics/interface_multicast_packets_*.json

== Match 62 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_multicast_packets_out.json

== Match 63 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_octets_in.json

== Match 64 ==
file_format    : json
filemask       : sa/profiles/Generic/snmp_metrics/interface_octets_*.json

== Match 65 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_octets_out.json

== Match 66 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_packets_in.json

== Match 67 ==
file_format    : json
filemask       : sa/profiles/Generic/snmp_metrics/interface_packets_*.json

== Match 68 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_packets_out.json

== Match 69 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_speed.json

== Match 70 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_status_admin.json

== Match 71 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_status_duplex.json

== Match 72 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/interface_status_oper.json

== Match 73 ==
file_format    : json
filemask       : */profiles/Generic/snmp_metrics/network_stp_topology_changes.json

== Match 74 ==
file_format    : json
filemask       : */profiles/H3C/VRP/snmp_metrics/cpu_usage.json

== Match 75 ==
file_format    : json
filemask       : */profiles/H3C/VRP/snmp_metrics/memory_usage.json

== Match 76 ==
file_format    : json
filemask       : */profiles/HP/1910/snmp_metrics/cpu_usage.json

== Match 77 ==
file_format    : json
filemask       : */profiles/HP/1910/snmp_metrics/memory_usage.json

== Match 78 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/cpu_usage.json

== Match 79 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/cpu_usage_1min.json

== Match 80 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/cpu_usage_5min.json

== Match 81 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/cpu_usage_5sec.json

== Match 82 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/environment_temperature.json

== Match 83 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/interface_errors_crc.json

== Match 84 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/interface_errors_frame.json

== Match 85 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/memory_usage.json

== Match 86 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/memory_usage_5sec.json

== Match 87 ==
file_format    : json
filemask       : */profiles/Huawei/VRP/snmp_metrics/subscribers_summary.json

== Match 88 ==
file_format    : json
filemask       : */profiles/IRE-Polus/Taros/snmp_metrics/interface_dom_rxpower.json

== Match 89 ==
file_format    : json
filemask       : */profiles/Iskratel/MSAN/snmp_metrics/interface_load_in.json

== Match 90 ==
file_format    : json
filemask       : sa/profiles/Iskratel/MSAN/snmp_metrics/interface_load_*.json

== Match 91 ==
file_format    : json
filemask       : */profiles/Iskratel/MSAN/snmp_metrics/interface_load_out.json

== Match 92 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOS/snmp_metrics/cpu_usage.json

== Match 93 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOS/snmp_metrics/environment_temperature.json

== Match 94 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOS/snmp_metrics/memory_usage.json

== Match 95 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOS/snmp_metrics/subscribers_l2tp.json

== Match 96 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOS/snmp_metrics/subscribers_ppp.json

== Match 97 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOS/snmp_metrics/subscribers_pppoe.json

== Match 98 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOS/snmp_metrics/subscribers_total.json

== Match 99 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOSe/snmp_metrics/cpu_load_1min.json

== Match 100 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOSe/snmp_metrics/cpu_usage.json

== Match 101 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOSe/snmp_metrics/cpu_usage_5sec.json

== Match 102 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOSe/snmp_metrics/environment_temperature.json

== Match 103 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOSe/snmp_metrics/memory_usage_5sec.json

== Match 104 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOSe/snmp_metrics/subscribers_ipoe.json

== Match 105 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOSe/snmp_metrics/subscribers_l2tp.json

== Match 106 ==
file_format    : json
filemask       : */profiles/Juniper/JUNOSe/snmp_metrics/subscribers_ppp.json

== Match 107 ==
file_format    : json
filemask       : */profiles/Linux/Debian/snmp_metrics/cpu_usage_1min.json

== Match 108 ==
file_format    : json
filemask       : */profiles/Linux/Debian/snmp_metrics/cpu_usage_5min.json

== Match 109 ==
file_format    : json
filemask       : */profiles/Linux/RHEL/snmp_metrics/cpu_load_1min.json

== Match 110 ==
file_format    : json
filemask       : */profiles/Linux/RHEL/snmp_metrics/cpu_load_5min.json

== Match 111 ==
file_format    : json
filemask       : */profiles/NSN/TIMOS/snmp_metrics/subscribers_ipoe.json

== Match 112 ==
file_format    : json
filemask       : */profiles/Planar/SDO3000/snmp_metrics/environment_temperature.json

== Match 113 ==
file_format    : json
filemask       : */profiles/Planar/SDO3000/snmp_metrics/environment_voltage.json

== Match 114 ==
file_format    : json
filemask       : */profiles/Planar/SDO3000/snmp_metrics/interface_dom_rxpower.json

== Match 115 ==
file_format    : json
filemask       : */profiles/Planar/SDO3000/snmp_metrics/interface_rf_txpower.json

== Match 116 ==
file_format    : json
filemask       : */profiles/Qtech/BFC_PBIC_S/snmp_metrics/environment_temperature.json

== Match 117 ==
file_format    : json
filemask       : */profiles/Qtech/BFC_PBIC_S/snmp_metrics/interface_status.json

== Match 118 ==
file_format    : json
filemask       : */profiles/Qtech/QSW/snmp_metrics/cpu_usage.json

== Match 119 ==
file_format    : json
filemask       : */profiles/Qtech/QSW/snmp_metrics/memory_usage.json

== Match 120 ==
file_format    : json
filemask       : */profiles/Qtech/QSW2800/snmp_metrics/cpu_usage.json

== Match 121 ==
file_format    : json
filemask       : */profiles/Qtech/QSW2800/snmp_metrics/cpu_usage_5sec.json

== Match 122 ==
file_format    : json
filemask       : */profiles/Qtech/QSW2800/snmp_metrics/memory_usage.json

== Match 123 ==
file_format    : json
filemask       : */profiles/Qtech/QSW2800/snmp_metrics/memory_usage_5sec.json

== Match 124 ==
file_format    : json
filemask       : */profiles/Raisecom/ROS/snmp_metrics/cpu_usage.json

== Match 125 ==
file_format    : json
filemask       : */profiles/Raisecom/ROS/snmp_metrics/environment_temperature.json

== Match 126 ==
file_format    : json
filemask       : */profiles/Raisecom/ROS/snmp_metrics/memory_usage.json

== Match 127 ==
file_format    : json
filemask       : */profiles/Rotek/BT/snmp_metrics/environment_temperature.json

== Match 128 ==
file_format    : json
filemask       : */profiles/Rotek/BT/snmp_metrics/environments_current.json

== Match 129 ==
file_format    : json
filemask       : */profiles/Rotek/BT/snmp_metrics/environments_status.json

== Match 130 ==
file_format    : json
filemask       : */profiles/Rotek/BT/snmp_metrics/environments_voltage.json

== Match 131 ==
file_format    : json
filemask       : */profiles/Rotek/RTBS/snmp_metrics/cpu_usage.json

== Match 132 ==
file_format    : json
filemask       : */profiles/Rotek/RTBS/snmp_metrics/memory_usage.json

== Match 133 ==
file_format    : json
filemask       : */profiles/Rotek/RTBS/snmp_metrics/noise_level.json

== Match 134 ==
file_format    : json
filemask       : */profiles/Rotek/RTBS/snmp_metrics/radio_quality.json

== Match 135 ==
file_format    : json
filemask       : */profiles/Rotek/RTBS/snmp_metrics/signal_level.json

== Match 136 ==
file_format    : json
filemask       : */profiles/Rotek/RTBS/snmp_metrics/tx_power.json

== Match 137 ==
file_format    : json
filemask       : */profiles/Rotek/RTBSv1/snmp_metrics/cpu_usage.json

== Match 138 ==
file_format    : json
filemask       : */profiles/Rotek/RTBSv1/snmp_metrics/memory_usage.json

== Match 139 ==
file_format    : json
filemask       : */profiles/Rotek/RTBSv1/snmp_metrics/noise_level.json

== Match 140 ==
file_format    : json
filemask       : */profiles/Rotek/RTBSv1/snmp_metrics/signal_level.json

== Match 141 ==
file_format    : json
filemask       : */profiles/Rotek/RTBSv1/snmp_metrics/tx_power.json

== Match 142 ==
file_format    : json
filemask       : */profiles/Siklu/EH/snmp_metrics/environment_temperature.json

== Match 143 ==
file_format    : json
filemask       : */profiles/Siklu/EH/snmp_metrics/environment_voltage.json

== Match 144 ==
file_format    : json
filemask       : */profiles/Siklu/EH/snmp_metrics/radio_cinr.json

== Match 145 ==
file_format    : json
filemask       : */profiles/Siklu/EH/snmp_metrics/radio_rssi.json

== Match 146 ==
file_format    : json
filemask       : */profiles/Vector/Lambda/snmp_metrics/environment_temperature.json

== Match 147 ==
file_format    : json
filemask       : */profiles/Vector/Lambda/snmp_metrics/environment_voltage.json

== Match 148 ==
file_format    : json
filemask       : */profiles/Vector/Lambda/snmp_metrics/interface_dom_rxpower.json

== Match 149 ==
file_format    : json
filemask       : */profiles/Vector/Lambda/snmp_metrics/interface_rf_txpower.json

== Match 150 ==
file_format    : json
filemask       : */profiles/Zyxel/ZyNOS/snmp_metrics/cpu_usage.json

== Match 151 ==
file_format    : json
filemask       : */profiles/Zyxel/ZyNOS/snmp_metrics/memory_usage.json

== Match 152 ==
file_format    : json
filemask       : services/web/translations/*/LC_MESSAGES/messages_js.json

== Match 153 ==
file_format    : json
filemask       : ui/card/translations/*.json

== Match 154 ==
file_format    : json
filemask       : ui/login/translations/*.json

== Match 155 ==
file_format    : json
filemask       : ui/web/translations/*.json

Many of the json files are not actually translations....

Detect file encoding

In some cases (eg. Java properties or OSX strings) it's possible to use several encodings for the files. This should be easy to detect if there is some translation existing (typically it's ascii/iso-8859-1 with \u escapes, utf-8 or utf-16).

chkconfig-1.11 false positives

Hello, while working on this! https://pagure.io/fedora-localization-statistics

I notice false positives with chkconfig-1.11

File list is: files.txt

It finds this:

[
   {
      'name':'chkconfig.default',
      'filemask':'po/*.po',
      'new_base':'po/chkconfig.pot',
      'file_format':'auto'
   },
   {
      'filemask':'po/*.po',
      'new_base':'po/chkconfig.pot',
      'file_format':'po'
   }
]

I feel like the name':'chkconfig.default' is a bug, is it?

false positives for calibre

when the file organization contain both a folder per language and multiples po files inside it, translation finder propose two filemasks.

'filemask': 'translations/manual//conversion.po' is correct
'filemask': 'translations/manual/am/
.po' is not correct

[ { 'file_format': 'json-nested',
    'filemask': 'translations/manual/*/stats.json'},
  { 'file_format': 'po',
    'filemask': 'translations/calibre/*.po',
    'new_base': 'translations/calibre/main.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/iso_639/*.po',
    'new_base': 'translations/iso_639/iso_639_3.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/catalogs.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/conversion.po',
    'new_base': 'translations/manual/conversion.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/creating_plugins.po',
    'new_base': 'translations/manual/creating_plugins.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/customize.po',
    'new_base': 'translations/manual/customize.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/db_api.po',
    'new_base': 'translations/manual/db_api.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/develop.po',
    'new_base': 'translations/manual/develop.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/diff.po',
    'new_base': 'translations/manual/diff.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/drm.po',
    'new_base': 'translations/manual/drm.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/edit.po',
    'new_base': 'translations/manual/edit.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/faq.po',
    'new_base': 'translations/manual/faq.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/function_mode.po',
    'new_base': 'translations/manual/function_mode.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/glossary.po',
    'new_base': 'translations/manual/glossary.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/gui.po',
    'new_base': 'translations/manual/gui.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/index.po',
    'new_base': 'translations/manual/index.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/metadata.po',
    'new_base': 'translations/manual/metadata.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/news.po',
    'new_base': 'translations/manual/news.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/news_recipe.po',
    'new_base': 'translations/manual/news_recipe.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/plugins.po',
    'new_base': 'translations/manual/plugins.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/polish.po',
    'new_base': 'translations/manual/polish.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/af/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/regexp.po',
    'new_base': 'translations/manual/regexp.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/regexp_quick_reference.po',
    'new_base': 'translations/manual/regexp_quick_reference.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/server.po',
    'new_base': 'translations/manual/server.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/simple_index.po',
    'new_base': 'translations/manual/simple_index.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/snippets.po',
    'new_base': 'translations/manual/snippets.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/sphinx.po',
    'new_base': 'translations/manual/sphinx.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/sub_groups.po',
    'new_base': 'translations/manual/sub_groups.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/template_lang.po',
    'new_base': 'translations/manual/template_lang.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/tutorials.po',
    'new_base': 'translations/manual/tutorials.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/typesetting_math.po',
    'new_base': 'translations/manual/typesetting_math.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/viewer.po',
    'new_base': 'translations/manual/viewer.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/virtual_libraries.po',
    'new_base': 'translations/manual/virtual_libraries.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/*/xpath.po',
    'new_base': 'translations/manual/xpath.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/am/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ar/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ast/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/az/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/be/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/bg/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/bn/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/bn_BD/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/bn_IN/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/br/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/bs/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ca/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/crh/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/cs/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/cy/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/da/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/de/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/el/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/en_AU/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/en_CA/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/en_GB/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/eo/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/es/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/es_MX/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/et/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/eu/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/fa/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/fi/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/fil/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/fo/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/fr/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/fr_CA/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/fur/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ga/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/gl/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/gu/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/he/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/hi/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/hr/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/hu/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/hy/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/id/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/is/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/it/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ja/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/jv/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ka/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/km/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/km_KH/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/kn/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ko/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ku/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/lt/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ltg/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/lv/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/mi/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/mk/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ml/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/mn/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/mr/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ms/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/mt/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/my/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/nb/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/nds/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/nl/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/nn/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/nso/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/oc/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/or/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/pa/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/pl/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ps/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/pt/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/pt_BR/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ro/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ru/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/rw/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/sc/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/si/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/sk/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/sl/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/sl_SI/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/sq/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/sr/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/sr@latin/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/sv/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ta/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/te/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/th/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ti/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/tr/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/tt/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ug/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/uk/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ur/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/uz@Latn/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/ve/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/vi/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/wa/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/xh/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/yi/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/zh_CN/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/zh_HK/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/zh_TW/*.po',
    'new_base': 'translations/manual/catalogs.pot'},
  { 'file_format': 'po',
    'filemask': 'translations/manual/zu/*.po',
    'new_base': 'translations/manual/catalogs.pot'}]

files comes from https://kojipkgs.fedoraproject.org//packages/calibre/4.22.0/1.fc32/src/calibre-4.22.0-1.fc32.src.rpm
list of files

Performance issue with libreoffice-6.2.2 and wrong results

Hello,

while working on this: https://pagure.io/fedora-localization-statistics/

the translation finder will never bring back results on a package like libreoffice.

The translation are inside a dedicated archive http://download.documentfoundation.org/libreoffice/src/6.2.2/

Here is how the file hierarchy looks like, (I kept only the three first folders of languages "ab" and "af"):

./translations
./translations/README
./translations/git-hooks
./translations/git-hooks/commit-msg
./translations/git-hooks/post-merge
./translations/git-hooks/pre-commit
./translations/source
./translations/source/ab
./translations/source/ab/accessibility
./translations/source/ab/accessibility/messages.po
./translations/source/ab/avmedia
./translations/source/ab/avmedia/messages.po
./translations/source/ab/basctl
./translations/source/ab/basctl/messages.po
./translations/source/af
./translations/source/af/accessibility
./translations/source/af/accessibility/messages.po
./translations/source/af/avmedia
./translations/source/af/avmedia/messages.po
./translations/source/af/basctl
./translations/source/af/basctl/messages.po

Expected result is should be:

/translations/source/*/accessibility/messages.po
/translations/source/*/avmedia/messages.po
/translations/source/*/basctl/messages.po
...

But this is the actual result (when I ran this, I kept like the 10 first languages)

[
   {
      'filemask':'translations/source/*/accessibility/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/avmedia/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/basctl/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/basic/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/chart2/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/ado/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/calc/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/dbase/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/evoab2/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/firebird/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/flat/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/hsqldb/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/jdbc/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/macab/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/mork/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/mysql_jdbc/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/mysqlc/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/odbc/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/postgresql/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/connectivity/registry/writer/org/openoffice/Office/DataAccess.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/cui/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dbaccess/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/desktop/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/af_ZA.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/dictionaries/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/an_ES.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/ar.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/be_BY.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/bg_BG.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/bn_BD.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/bo.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/br_FR.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/bs_BA.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/ca.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/cs_CZ.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/da_DK.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/de.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/el_GR.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/en.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/en/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/dictionaries/*/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/en/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/es.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/et_EE.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/fr_FR.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/gd_GB.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/gl.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/gu_IN.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/gug.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/he_IL.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/hi_IN.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/hr_HR.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/hu_HU.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/hu_HU/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/hu_HU/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/id.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/is.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/it_IT.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/kmr_Latn.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/lo_LA.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/lt_LT.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/lv_LV.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/ne_NP.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/nl_NL.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/no.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/oc_FR.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/pl_PL.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/pt_BR.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/pt_BR/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/pt_BR/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/pt_PT.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/ro.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/ru_RU.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/ru_RU/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/ru_RU/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/si_LK.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/sk_SK.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/sl_SI.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/sq_AL.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/sr.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/sv_SE.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/sw_TZ.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/te_IN.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/th_TH.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/tr_TR.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/uk_UA.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/vi.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/zu_ZA.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/editeng/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/extensions/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/extensions/source/update/check/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/extras/source/autocorr/emoji.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/extras/source/gallery/share.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/filter/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/filter/source/config/fragments/filters.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/filter/source/config/fragments/internalgraphicfilters.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/filter/source/config/fragments/types.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/forms/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/formula/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/fpicker/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/framework/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/instsetoo_native/inc_openoffice/windows/msi_languages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/librelogo/source/pythonpath.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/nlpsolver/src/com/sun/star/comp/Calc/NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/nlpsolver/src/com/*/star/comp/Calc/NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/nlpsolver/src/locale.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/officecfg/registry/data/org/openoffice.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/officecfg/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/officecfg/registry/data/org/openoffice/Office/UI.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/readlicense_oo/docs.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/reportbuilder/java/org/libreoffice/report/function/metadata.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/reportdesign/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/sc/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/*/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scaddins/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/sccomp/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/activex.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/base.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/scp2/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/calc.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/draw.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/extensions.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/gnome.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/graphicfilter.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/impress.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/kde.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/math.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/onlineupdate.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/ooo.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/python.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/quickstart.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/winexplorerext.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/writer.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/scp2/source/xsltfilter.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/sd/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/setup_native/source/mac.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/setup_native/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/sfx2/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/shell/source/win32/shlxthandler/res.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/starmath/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/svl/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/svtools/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/svx/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/sw/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/swext/mediawiki/help.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/swext/mediawiki/src.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/swext/mediawiki/src/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/swext/mediawiki/src/registry/data/org/openoffice/Office/Custom.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/sysui/desktop/share.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/uui/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/vcl/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/wizards/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/wizards/source/resources.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/writerperfect/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/xmlsecurity/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/*_ZA.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/dictionaries/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/dictionaries/*/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/nlpsolver/src/com/*/star/comp/Calc/NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/*/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/scp2/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/setup_native/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/dictionaries/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/dictionaries/*/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/auxiliary.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sbasic/guide.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sbasic/shared.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sbasic/shared/01.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sbasic/shared/02.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sbasic/shared/03.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/scalc.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/scalc/00.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/scalc/01.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/scalc/02.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/scalc/04.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/scalc/05.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/scalc/06.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/scalc/guide.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/schart.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/schart/00.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/schart/01.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/schart/02.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/schart/04.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sdraw.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sdraw/00.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sdraw/01.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sdraw/04.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/sdraw/guide.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/00.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/01.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/02.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/04.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/05.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/06.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/07.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/autokorr.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/autopi.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/explorer/database.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/guide.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/help.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/menu.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/shared/optionen.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/simpress.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/simpress/00.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/simpress/01.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/simpress/02.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/simpress/04.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/simpress/guide.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/smath.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/smath/00.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/smath/01.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/smath/02.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/smath/04.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/smath/06.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/smath/guide.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/swriter.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/swriter/00.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/swriter/01.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/swriter/02.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/swriter/04.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/swriter/guide.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/swriter/librelogo.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/helpcontent2/source/text/swriter/menu.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/nlpsolver/src/com/*/star/comp/Calc/NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/*/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/scp2/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/setup_native/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/dictionaries/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/*_ES.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/dictionaries/*/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/nlpsolver/src/com/*/star/comp/Calc/NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/*/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/scp2/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/setup_native/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/dictionaries/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/*/dictionaries/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/dictionaries/*/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/nlpsolver/src/com/*/star/comp/Calc/NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/*/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/scp2/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/setup_native/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/dictionaries/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/dictionaries/*/dialog.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/nlpsolver/src/com/*/star/comp/Calc/NLPSolver.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/*/messages.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/scp2/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/setup_native/source/*.po',
      'file_format':'po'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/dictionaries/*.po',
      'template':'translations/source/ab/dictionaries/en.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/dictionaries/*/dialog.po',
      'template':'translations/source/ab/dictionaries/en/dialog.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'template':'translations/source/ab/dictionaries/en/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ab/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'template':'translations/source/ab/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/dictionaries/*.po',
      'template':'translations/source/af/dictionaries/en.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/dictionaries/*/dialog.po',
      'template':'translations/source/af/dictionaries/en/dialog.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'template':'translations/source/af/dictionaries/en/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/af/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'template':'translations/source/af/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/dictionaries/*.po',
      'template':'translations/source/am/dictionaries/en.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/dictionaries/*/dialog.po',
      'template':'translations/source/am/dictionaries/en/dialog.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'template':'translations/source/am/dictionaries/en/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/am/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'template':'translations/source/am/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/dictionaries/*.po',
      'template':'translations/source/an/dictionaries/en.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/dictionaries/*/dialog.po',
      'template':'translations/source/an/dictionaries/en/dialog.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'template':'translations/source/an/dictionaries/en/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/an/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'template':'translations/source/an/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/dictionaries/*.po',
      'template':'translations/source/ar/dictionaries/en.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/dictionaries/*/dialog.po',
      'template':'translations/source/ar/dictionaries/en/dialog.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'template':'translations/source/ar/dictionaries/en/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/ar/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'template':'translations/source/ar/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/dictionaries/*.po',
      'template':'translations/source/as/dictionaries/en.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/dictionaries/*/dialog.po',
      'template':'translations/source/as/dictionaries/en/dialog.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/dictionaries/*/dialog/registry/data/org/openoffice/Office.po',
      'template':'translations/source/as/dictionaries/en/dialog/registry/data/org/openoffice/Office.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ],
   {
      'filemask':'translations/source/as/nlpsolver/help/*/com.sun.star.comp.Calc.NLPSolver.po',
      'template':'translations/source/as/nlpsolver/help/en/com.sun.star.comp.Calc.NLPSolver.po',
      'file_format':'po-mono'
   }   [
      meta:{
         'discovery':'GettextDiscovery',
         'origin':None,
         'priority':1000
      }
   ]
]

All translation makes 1.4 Gb...

false positives with gnome-desktop3-3.32.1

Hello, while working on this: https://pagure.io/fedora-localization-statistics

I notice false positives with gnome-desktop3-3.32.1

[
   {
      'filemask':'desktop-docs/fdl/*/*.po',
      'file_format':'po'
   },
   {
      'filemask':'desktop-docs/gpl/*/*.po',
      'file_format':'po'
   },
   {
      'filemask':'desktop-docs/gpl/*/[email protected]',
      'file_format':'po'
   },
   {
      'filemask':'desktop-docs/gpl/sr/*.po',
      'file_format':'po'
   },
   {
      'filemask':'desktop-docs/lgpl/*/*.po',
      'file_format':'po'
   },
   {
      'filemask':'po/*.po',
      'file_format':'po'
   },
   {
      'filemask':'po/*.po',
      'template':'po/en.po',
      'file_format':'po-mono'
   }
]

these match are false positives:

  • 'filemask':'desktop-docs/gpl/*/[email protected]',
  • 'filemask':'desktop-docs/gpl/sr/*.po',

There may be something weird with the way the gnome team handle Serbian language:

$ find . | grep sr
./desktop-docs/gpl/sr
./desktop-docs/gpl/sr/[email protected]
./desktop-docs/gpl/sr/sr.po
./desktop-docs/gpl/sr@latin
./desktop-docs/gpl/sr@latin/[email protected]
./po/[email protected]
./po/sr.po

thanks a lot for your help!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.