)]}'
{
  "log": [
    {
      "commit": "575a7a594b753cb516635e9b3222f8a27e6a78b2",
      "tree": "fa929d0e779a5fe151162c1ffa962e97704a76a9",
      "parents": [
        "2e775aca674cd2910e272eed7736acceb4c2e4a2"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:40:31 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:40:31 2026"
      },
      "message": "Update the ANNOUNCEMENT\n"
    },
    {
      "commit": "2e775aca674cd2910e272eed7736acceb4c2e4a2",
      "tree": "150d92710ec708d61ac62aa9e7abe048d6a29908",
      "parents": [
        "6556dc615566d8bf935fe9318c0590a646888509"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:24:52 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:24:52 2026"
      },
      "message": "Add NEWS entry for the Russian grade 1 contractions\n\nAssisted-by: Claude:claude-opus-5\n"
    },
    {
      "commit": "6556dc615566d8bf935fe9318c0590a646888509",
      "tree": "36fb58517eef18ab52a9fa0b3ee7bf388ceaa735",
      "parents": [
        "2224057bd4e493f7b2d648499088dc5b1404c1d9",
        "469ba875f89ad87a088711da21e158156871374f"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:18:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 15:18:23 2026"
      },
      "message": "Merge pull request #1895 from Daredevilsprmcy/patch-3\n\nComplete Russian Grade 1 contractions (Tables I–VIII)"
    },
    {
      "commit": "469ba875f89ad87a088711da21e158156871374f",
      "tree": "36fb58517eef18ab52a9fa0b3ee7bf388ceaa735",
      "parents": [
        "94d0b35ed566eac40270863f700618a82c776600"
      ],
      "author": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 14:15:51 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:08:23 2026"
      },
      "message": "Update existing tests with added contractions\n"
    },
    {
      "commit": "94d0b35ed566eac40270863f700618a82c776600",
      "tree": "fbbd1306b87e88ab908390824a855dfd1eac5fd3",
      "parents": [
        "605817fd9ecef1de166b7d1c660a671fdf8701cc"
      ],
      "author": {
        "name": "Daredevilsprmcy",
        "email": "dlazarev86@gmail.com",
        "time": "Wed Aug 19 21:38:43 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:08:23 2026"
      },
      "message": "Restore Russian hard/soft sign handling\n\nRestored the original generic midword rules for ъ and ь instead of enumerating individual consonant combinations. This prevents regressions in existing contractions such as ешь and preserves the intended distinction for final soft signs described by Zubkov.\r\nAlso revert the internal shch attribute name back to the original sch name, keeping the change focused on functional Russian Grade 1 updates."
    },
    {
      "commit": "605817fd9ecef1de166b7d1c660a671fdf8701cc",
      "tree": "e47835c5c6075b93755f0378067dae78e38a0794",
      "parents": [
        "fdc90b2b539b72e2061e20825283728b9e4eb396"
      ],
      "author": {
        "name": "Daredevilsprmcy",
        "email": "dlazarev86@gmail.com",
        "time": "Fri Aug 14 04:08:32 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:08:23 2026"
      },
      "message": "Add tests\n\nAdds focused tests for Table VIII, hard and soft sign handling, and ё\ncontractions, and updates the table selector from partial to full.\n"
    },
    {
      "commit": "fdc90b2b539b72e2061e20825283728b9e4eb396",
      "tree": "4c932e499b63644a4eb501e29fda56c1f801f5fa",
      "parents": [
        "3c80b853edbc6c676ae25e61bd6164fbb6e936da"
      ],
      "author": {
        "name": "Daredevilsprmcy",
        "email": "dlazarev86@gmail.com",
        "time": "Fri Aug 14 02:08:50 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:08:23 2026"
      },
      "message": "Fix remaining hard and soft sign cases\n\nRestores the valid дьё case and adds the missing бъя handling required for words such as объяснить."
    },
    {
      "commit": "3c80b853edbc6c676ae25e61bd6164fbb6e936da",
      "tree": "5dbfd33206a65191f0361d5e273a795028d6dbfe",
      "parents": [
        "1c14a3d6774f3cd731a1deedc3db06d67c6a97f6"
      ],
      "author": {
        "name": "Daredevilsprmcy",
        "email": "dlazarev86@gmail.com",
        "time": "Thu Aug 13 07:59:17 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:08:23 2026"
      },
      "message": "Further refine Russian Grade 1 contractions\n\nReturning to this PR after a delay. I reviewed the previous feedback\nand cleaned up the Russian Grade 1 table before continuing with\ntests. This revision removes redundant and unnecessary rules, restores\nthe `ru-litbrl.ctb` include and related directives to their original\nposition, keeps the completed Table VIII, preserves the intended\nhard/soft-sign handling, and retains the additional valid `ё`\ncombinations while removing the overgenerated `ё` cases that were only\nneeded during development. I also updated my copyright year. YAML\ntests will follow separately.\n"
    },
    {
      "commit": "1c14a3d6774f3cd731a1deedc3db06d67c6a97f6",
      "tree": "81588b22c2e512ea78ed7c19e8fae52dc8bd8392",
      "parents": [
        "4894cdc32f4a7a03ce581f953aae3f8c933fbd4f"
      ],
      "author": {
        "name": "Daredevilsprmcy",
        "email": "dlazarev86@gmail.com",
        "time": "Mon Jan 12 04:42:20 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:08:23 2026"
      },
      "message": "One more ё varient of a partword\n\npartword рё 2 was added. Example: веревка and верёвка.\n"
    },
    {
      "commit": "4894cdc32f4a7a03ce581f953aae3f8c933fbd4f",
      "tree": "28de381daec8595cf71243defd0730cdd38b1e87",
      "parents": [
        "cdd3a78ec9353a0dc918114526ae9788e0c8c347"
      ],
      "author": {
        "name": "Daredevilsprmcy",
        "email": "dlazarev86@gmail.com",
        "time": "Mon Jan 12 04:07:27 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:08:23 2026"
      },
      "message": "Add a few more ё word varients\n\nAdded a few ё endword varients to already existing е отаишнаг гевр лг\nстаёмся\n"
    },
    {
      "commit": "cdd3a78ec9353a0dc918114526ae9788e0c8c347",
      "tree": "73e7a7458d844a0787bb0f724a327e9d4b7f96b7",
      "parents": [
        "2224057bd4e493f7b2d648499088dc5b1404c1d9"
      ],
      "author": {
        "name": "Daredevilsprmcy",
        "email": "dlazarev86@gmail.com",
        "time": "Sat Dec 27 06:58:57 2025"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 15:08:23 2026"
      },
      "message": "Complete Russian Grade 1 contractions (Tables I-VIII)\n\nThis commit completes the Russian Grade 1 contracted braille table by adding the missing Table VIII contractions.\n\nIt also:\n- Corrects handling of soft and hard signs (ь, ъ) in midword and endword contexts\n- Adds ё variants to mirror е contractions\n- Aligns transliteration of щ to “shch”\n- Updates metadata to reflect a complete Grade 1 system\n\nThis is intended as a focused, standalone contribution for ru-ru-g1.ctb.\n"
    },
    {
      "commit": "2224057bd4e493f7b2d648499088dc5b1404c1d9",
      "tree": "578cb98ebb25e253c54cd7cbcd4196f338de33f0",
      "parents": [
        "dbf3cfbf863865db1ecaf9decb7296987c35c3cf"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 14:26:59 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 14:27:17 2026"
      },
      "message": "Update the version number\n\nAssisted-by: Claude:claude-opus-5\n"
    },
    {
      "commit": "dbf3cfbf863865db1ecaf9decb7296987c35c3cf",
      "tree": "1c99efa8000aa4960ac65901ad5f4a5e680333b8",
      "parents": [
        "1ff54ed9796ef7be319cb750cb98b43f1ff254e3"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 14:19:24 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 14:21:37 2026"
      },
      "message": "Add the release summary for 3.39\n\nAssisted-by: Claude:claude-opus-5\n"
    },
    {
      "commit": "1ff54ed9796ef7be319cb750cb98b43f1ff254e3",
      "tree": "bda34c6fb54505933a27d79b7ad01df0772d8ae3",
      "parents": [
        "e6b8367e68ef686571b64c9394b87a92a94d9e8d"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 14:09:05 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 14:09:05 2026"
      },
      "message": "Add NEWS entries for the merged 3.39 pull requests\n\nCovers the Russian mathematical braille definitions, the malformed\nreplace rule fix and the Thai table fixes.\n\nAssisted-by: Claude:claude-opus-5\n"
    },
    {
      "commit": "e6b8367e68ef686571b64c9394b87a92a94d9e8d",
      "tree": "9fcc0aaca40322fe7ae9020e4e4ce21ea5eb2147",
      "parents": [
        "9303f54f894517439bcf15d13fca990ae3ea1f90",
        "ebae95b51d88e0bcaf8d37718d59b65b2d175116"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 13:58:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 13:58:32 2026"
      },
      "message": "Merge pull request #2076 from liblouis/fix-2070-swapdd-single-cell\n\nth-g1.uti: remove unused and invalid swapdd rule"
    },
    {
      "commit": "ebae95b51d88e0bcaf8d37718d59b65b2d175116",
      "tree": "9fcc0aaca40322fe7ae9020e4e4ce21ea5eb2147",
      "parents": [
        "9303f54f894517439bcf15d13fca990ae3ea1f90"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Aug 25 09:14:13 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 13:53:05 2026"
      },
      "message": "th-g1.uti: remove unused and invalid swapdd rule\n\nAheadbrl used `156-2`, a two-cell dot pattern, in the search operand\nof swapdd, which the manual requires to be single cells only. The\nswap class is also not referenced anywhere in th-g1.uti, th-g2.ctb,\nor elsewhere in the tree, so the rule is dead code.\n\nFixes #2070\n\nAssisted-by: Claude:claude-sonnet-5\n"
    },
    {
      "commit": "9303f54f894517439bcf15d13fca990ae3ea1f90",
      "tree": "dcf730badbe50d3a471390cae1b62571ba115405",
      "parents": [
        "9ba91cbb4fc5bd61d9b06943dc4701e0b08655ee",
        "de0ca6e7d4120fc318e63a66197764790336a8a6"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 13:52:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 13:52:23 2026"
      },
      "message": "Merge pull request #2077 from liblouis/fix-2072-afteraespell-swapcd\n\nth-g2.ctb: fix missing dot pattern for ง in AfterAeSpell swapcd"
    },
    {
      "commit": "de0ca6e7d4120fc318e63a66197764790336a8a6",
      "tree": "dcf730badbe50d3a471390cae1b62571ba115405",
      "parents": [
        "9ba91cbb4fc5bd61d9b06943dc4701e0b08655ee"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Aug 25 09:18:25 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 13:46:41 2026"
      },
      "message": "th-g2.ctb: fix missing dot pattern for ง in AfterAeSpell swapcd\n\nThe swapcd listed 5 characters (ก ง ด บ อ) but only 4 comma-separated\ndot patterns, with ง\u0027s own base pattern (12456, per its `letter`\ndefinition in th-g1.uti) dropped between ก\u0027s and ด\u0027s. As written, ง\ncould never match any of the \"แ\" vowel-spelling context rules that\nreference %AfterAeSpell.\n\nFixes #2072\n\nAssisted-by: Claude:claude-sonnet-5\n"
    },
    {
      "commit": "9ba91cbb4fc5bd61d9b06943dc4701e0b08655ee",
      "tree": "49f5fd6b9b166afe08d64cc2b9ea0dd93fb51c7f",
      "parents": [
        "fabca9eddb05b3f3438c3f855a6c8c7d6115d341",
        "396b308c2e25f167ec98f30a48a2170b8c1801fb"
      ],
      "author": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:27:21 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:27:23 2026"
      },
      "message": "Fix malformed replace rule handling\n\nsee https://github.com/liblouis/liblouis/pull/2057\n"
    },
    {
      "commit": "396b308c2e25f167ec98f30a48a2170b8c1801fb",
      "tree": "49f5fd6b9b166afe08d64cc2b9ea0dd93fb51c7f",
      "parents": [
        "e4e8f3b703c97ead29207528b605f93143b7a9d9"
      ],
      "author": {
        "name": "Darren Carreras",
        "email": "carrerasdarren@gmail.com",
        "time": "Mon Aug 31 18:25:19 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:24:02 2026"
      },
      "message": "Isolate tests for malformed table regressions\n\nCo-Authored-By: Bert Frees \u003cbertfrees@gmail.com\u003e\n"
    },
    {
      "commit": "e4e8f3b703c97ead29207528b605f93143b7a9d9",
      "tree": "110c0fdb3fdb0cd5a66b532f7ce0365d1aae79a4",
      "parents": [
        "db2b8a06d4c967ae8e16720804520fc44128507d"
      ],
      "author": {
        "name": "Darren Carreras",
        "email": "carrerasdarren@gmail.com",
        "time": "Thu Aug 20 18:29:55 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:18:05 2026"
      },
      "message": "Clarify escaped-hash regression\n\nExplain why the malformed replacement fixture includes \\\\# and tie the trailing escape to the ruleDots underflow it guards. Comment-only; git diff --check passes.\n"
    },
    {
      "commit": "db2b8a06d4c967ae8e16720804520fc44128507d",
      "tree": "5acb2d4b0edd0fa65716240424843430501c3e79",
      "parents": [
        "628203461084793350548b9fb473b10a3283de1f"
      ],
      "author": {
        "name": "Darren Carreras",
        "email": "carrerasdarren@gmail.com",
        "time": "Thu Aug 20 00:30:44 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:18:05 2026"
      },
      "message": "Clarify malformed replace regressions\n"
    },
    {
      "commit": "628203461084793350548b9fb473b10a3283de1f",
      "tree": "9cec0b538c48b7a3bb40df095f447318d125bf1d",
      "parents": [
        "9f97fe282a44496ea14dd43b85afd22fff581a47"
      ],
      "author": {
        "name": "Darren Carreras",
        "email": "carrerasdarren@gmail.com",
        "time": "Thu Aug 13 17:00:53 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:18:05 2026"
      },
      "message": "Exercise malformed replace rules via table loading\n"
    },
    {
      "commit": "9f97fe282a44496ea14dd43b85afd22fff581a47",
      "tree": "92ae67218f7fe5ca5ce3610011659471749bac26",
      "parents": [
        "fabca9eddb05b3f3438c3f855a6c8c7d6115d341"
      ],
      "author": {
        "name": "Darren Carreras",
        "email": "carrerasdarren@gmail.com",
        "time": "Mon Aug 10 06:42:51 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:18:05 2026"
      },
      "message": "Fix malformed replace rule handling\n\nStop compiling a replace rule when either operand fails to parse, guard escaped-hash inspection by the parsed length, and avoid copying the removed escape prefix. Add regressions for malformed source and replacement operands.\n\nFixes #2048.\n\nReported-by: Shujie Xiang (@CrJyyy)\n"
    },
    {
      "commit": "fabca9eddb05b3f3438c3f855a6c8c7d6115d341",
      "tree": "ea792109fd38a4b600e334c382c1aeb10732e537",
      "parents": [
        "3487ae20c09ec25a304714b0d31a619fd9e7a4ff",
        "6c6c8dfa939471648518a6144e9cdf9c15ad59f9"
      ],
      "author": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:14:14 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:14:19 2026"
      },
      "message": "Expand Russian mathematical braille\n\nsee https://github.com/liblouis/liblouis/pull/2039\n"
    },
    {
      "commit": "3487ae20c09ec25a304714b0d31a619fd9e7a4ff",
      "tree": "34a9f24c3f31c177a0887060de8ef3659d973a29",
      "parents": [
        "e4ddf239befc614d83e5cd1a88638ae711771cde"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 13:10:50 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 13:10:50 2026"
      },
      "message": "Add news entries for merged PRs\n"
    },
    {
      "commit": "6c6c8dfa939471648518a6144e9cdf9c15ad59f9",
      "tree": "e685847a02cc17ca5f02df5eb069a25c680d7091",
      "parents": [
        "c85584c213d2587c5d262549b5d95bfbf2a7cc9c"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Mon Aug 31 07:25:19 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:08:28 2026"
      },
      "message": "Enable Russian slash in back-translation\n\nThe Russian literary braille table was marking `/` as `noback`, preventing it from being back-translated correctly. This changes it to a regular math symbol and adds a regression test covering the `⠠⠌` → `/` case.\n"
    },
    {
      "commit": "c85584c213d2587c5d262549b5d95bfbf2a7cc9c",
      "tree": "28ab53b6966adc90203a45ed9005df1efc8d25fc",
      "parents": [
        "e7520ad052f7c021efe385ef8b7f31ee2d792584"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Sat Aug 29 04:29:14 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:08:28 2026"
      },
      "message": "Align Russian braille rules and tests\n\nRemove stale table version metadata, fix Russian braille slash and spacing behavior in ru-litbrl, and update the math subtable comments/license formatting. Refresh the Russian braille-spec tests to match the revised punctuation, spacing, and notation rules introduced by the current table definitions.\n"
    },
    {
      "commit": "e7520ad052f7c021efe385ef8b7f31ee2d792584",
      "tree": "f6757fb8f9d3a8cc88d9a95b9d87096ebbc742e2",
      "parents": [
        "2e5dd149e35b482a60554f3fe289e51bf5fb28f4"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Fri Aug 28 14:00:28 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:08:25 2026"
      },
      "message": "Fixing copyright info and add\n\nThis commit updates the file attribution in the table metadata at ru-litbrl-detailed.utb fixing the e-mail. Also add the NEWS file with suggestions about release pollicy for math Braille.\n"
    },
    {
      "commit": "2e5dd149e35b482a60554f3fe289e51bf5fb28f4",
      "tree": "74318dfc5aac54e1f45731480dba8e6357bed595",
      "parents": [
        "69779a007a2d83639b70d9d982597b4c096e397b"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Fri Aug 28 06:32:02 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Clarify Unicode sub/superscript digit handling\n\nRemove explicit superscript/subscript digit attributes and update comments to state that the formatter supplies F320/F321 as the structural indicator before subscript/superscript runs. Document that the digits use the lowered numeric row without a number sign or terminator. Update the corresponding test comment in tests/braille-specs/ru.yaml. No changes to existing math mappings.\n"
    },
    {
      "commit": "69779a007a2d83639b70d9d982597b4c096e397b",
      "tree": "46ec0ea07eb512e3b8f30a880044a5056af957f3",
      "parents": [
        "4b3c25c1524696a34627f4f3cf89535f50d0cc7f"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Thu Aug 27 20:50:59 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Align Russian Braille math table with notation\n\nThis patch updates the Russian literary Braille tables to use the Russian mathematical notation system and publication Guidelines as the primary references instead of the GOST citation. It revises symbol mappings for division, percent, arrows, vectors, and root/fraction structures, and marks several multi-cell math symbols as forward-only to avoid collisions with ordinary Cyrillic and punctuation cells. The spec comments and braille test expectations were updated to reflect the new conventions and the corrected outputs.\n"
    },
    {
      "commit": "4b3c25c1524696a34627f4f3cf89535f50d0cc7f",
      "tree": "e09f4ed0e3180aad84cc508fc680ea65755ff721",
      "parents": [
        "dd9bb8a31b8e2b38fdf6c6f3769d4b0c676b14e3"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Wed Aug 19 15:25:40 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "ru-math: make function tokens forward-only\n\nChange ru-math function definitions from bi-directional to forward-only (always -\u003e noback always) because their braille cells collide with ordinary Cyrillic letter runs and cannot be unambiguously reconstructed. Clarify PUA reuse in header comments and add copyright attribution. Update tests/ru.yaml to stop expecting round-trips to semantic PUA tokens and instead assert Cyrillic back-translation for function cells.\n"
    },
    {
      "commit": "dd9bb8a31b8e2b38fdf6c6f3769d4b0c676b14e3",
      "tree": "7f3f2c0404bb11c578a1049150a86ac6032d6c2e",
      "parents": [
        "2e9ea5146882ccdb323103f526a1741a80453019"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Sat Aug 15 06:43:05 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Add copyright notice for 2026 contributor\n\nThis change adds the 2026 copyright attribution for Danil Kostenkov to the Russian literary Braille table file.\n"
    },
    {
      "commit": "2e9ea5146882ccdb323103f526a1741a80453019",
      "tree": "ce2b3b53eda0686a19ce9bbe2415a1fd36cb3f32",
      "parents": [
        "47cdb027908c2254c7c006d3f23a529ddeb5c64f"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Sat Aug 15 06:32:30 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Update Russian copyright metadata\n\nCorrect the copyright attribution in the Russian braille tables. This change removes a stale entry from ru-litbrl.ctb and updates the name/email in ru-math.uti to the current contact details.\n"
    },
    {
      "commit": "47cdb027908c2254c7c006d3f23a529ddeb5c64f",
      "tree": "d2c941d291999602a6fc5cc4bc659cb82198da01",
      "parents": [
        "0f96b3edf158c2cf33d5a3c3ac739a1bac3aaf77"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Mon Jul 20 06:44:47 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Extract Russian math braille to separate file\n\nRefactor Russian mathematical Braille definitions from ru-litbrl.ctb into a new ru-math.uti subtable file. This improves maintainability and code organization by separating math-specific rules from general braille definitions. The new file is included by ru-litbrl.ctb after digit and Latin-letter definitions.\n"
    },
    {
      "commit": "0f96b3edf158c2cf33d5a3c3ac739a1bac3aaf77",
      "tree": "cbf379fa05e13c654e4765f93e1081068d7205ae",
      "parents": [
        "4fef2e73b37aa3e8cdd3f89a8b9b426991ccd29e"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Mon Jul 20 05:49:14 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Add joining-brace segments to ru-litbrl and tests\n\nAdd formatter-selected joining-brace segments (U+F570–U+F577) to tables/ru-litbrl.ctb with one-line and multi-line frame tokens and their braille cell patterns. Add corresponding expectations to tests/braille-specs/ru.yaml, including spacing checks with adjacent letters.\n"
    },
    {
      "commit": "4fef2e73b37aa3e8cdd3f89a8b9b426991ccd29e",
      "tree": "70d0c6006e51d593db1926acb3d8c4bbb8b85aa8",
      "parents": [
        "1c2f6beef2889dbc88d9455c0d81bad55d98b32f"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Mon Jul 20 05:31:03 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Add F555/F556 tokens to ru table\n\nIntroduce two PUA tokens in tables/ru-litbrl.ctb: F555 as a math token for division (colon) and F556 as a digit-token for an omitted digit inside numbers (preserves numeric mode). Update tests/braille-specs/ru.yaml to include expected braille output for \\uF555 and for a numeric sequence containing \\uF556.\n"
    },
    {
      "commit": "1c2f6beef2889dbc88d9455c0d81bad55d98b32f",
      "tree": "bd55277994346edfef05ec0433cc688a2a4f60f5",
      "parents": [
        "c036e113eb28a45c69df38a7e7ce1396801980ec"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Sun Jul 19 18:41:18 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Add GOST-2019 refs and 2026 copyright\n\nUpdate Russian braille tables and tests: add \"+version: 2019\" to ru-litbrl.ctb and ru-litbrl-detailed.utb; insert references to GOST R 58511-2019 for mathematical notation; add 2026 copyright attribution for Danil in both table headers and tests/braille-specs/ru.yaml. These are documentation/comment changes only.\n"
    },
    {
      "commit": "c036e113eb28a45c69df38a7e7ce1396801980ec",
      "tree": "69ce769fbbad8dd16c50c13e2db4c186b5721b01",
      "parents": [
        "79bb1cad2bf1604a5a613b5198d2fd7edca6fa00"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Sun Jul 19 18:27:11 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Add Russian Braille decimal fractions and punctuation rules\n\nImplement rules from the GOST R 58511-2019 standard and Russian Braille math sources:\n\n- Handle punctuation after numero (№) and section (§) signs without dot-6 separator\n- Support periodic decimal fractions written in parentheses (e.g., 0,4(71))\n- Add internal character mappings (F554-F569) for decimal fraction formatting\n- Update dropspaceafter attribute to use explicit rules instead\n- Add comprehensive test coverage for named numbers, degree symbols, and mathematical expressions with various punctuation combinations\n"
    },
    {
      "commit": "79bb1cad2bf1604a5a613b5198d2fd7edca6fa00",
      "tree": "a62b95050ad242cde014868fb99d618a3fa95ad1",
      "parents": [
        "d7501beae07f23a2feb74c249d31166d3b48bb87"
      ],
      "author": {
        "name": "Danil",
        "email": "81031453+Kostenkov-2021@users.noreply.github.com",
        "time": "Thu Jul 16 13:29:59 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 13:07:59 2026"
      },
      "message": "Add semantic math tokens and GOST math rules\n\nIntroduce extensive semantic/math support in tables/ru-litbrl.ctb: add PUA semantic tokens (indices, roots, fractions, function names, marks, vectors, per-mille, etc.), adjust many math symbol mappings (multiplication dot, division/fraction slash, arrows and operators), and update spacing/attribute rules to follow GOST 2019. Expand tests/tests/braille-specs/ru.yaml with numerous GOST R 58511-2019 and structured-math round-trip cases, function-token checks, arrow variants, and other math examples to cover the new mappings and behavior.\n"
    },
    {
      "commit": "e4ddf239befc614d83e5cd1a88638ae711771cde",
      "tree": "dc0c90e894b19f1a05a3304f8fb8ebf5186eb5fd",
      "parents": [
        "d7501beae07f23a2feb74c249d31166d3b48bb87",
        "fa647dbc59ed096c6cf604f91ab122b12a32caf8"
      ],
      "author": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 12:41:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 12:41:23 2026"
      },
      "message": "Merge pull request #2078 from hammera/extend_braille_input\n\ntables/hu-backtranslate-word-corrections.cti, tables/hu-exceptionwords.cti: added new forward and backward exceptions"
    },
    {
      "commit": "fa647dbc59ed096c6cf604f91ab122b12a32caf8",
      "tree": "dc0c90e894b19f1a05a3304f8fb8ebf5186eb5fd",
      "parents": [
        "ca04463172c09fd2eb0e2180292b9de4b1ff5e95"
      ],
      "author": {
        "name": "Attila Hammer",
        "email": "hammera@pickup.hu",
        "time": "Mon Jun 01 18:54:58 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 12:34:35 2026"
      },
      "message": "tests/braille-specs/hu-hu-g1_dictionary_special_consonants.yaml: added new testcase\n\nSigned-off-by: Attila Hammer \u003chammera@pickup.hu\u003e\n"
    },
    {
      "commit": "ca04463172c09fd2eb0e2180292b9de4b1ff5e95",
      "tree": "04cda181b1c800b90a83d6641bd8159006796fe5",
      "parents": [
        "d7501beae07f23a2feb74c249d31166d3b48bb87"
      ],
      "author": {
        "name": "Attila Hammer",
        "email": "hammera@pickup.hu",
        "time": "Mon Jun 01 18:36:17 2026"
      },
      "committer": {
        "name": "Christian Egli",
        "email": "christian.egli@sbs.ch",
        "time": "Tue Sep 01 12:34:35 2026"
      },
      "message": "tables/hu-backtranslate-word-corrections.cti, tables/hu-exceptionwords.cti: added new forward and backward exceptions\n\nSigned-off-by: Attila Hammer \u003chammera@pickup.hu\u003e\n"
    },
    {
      "commit": "d7501beae07f23a2feb74c249d31166d3b48bb87",
      "tree": "0be026a2a5a7ab23f1021b6ab457b504cf99e1aa",
      "parents": [
        "30738c0ed3f0222b11494ee60d585b0e45fa6ffa",
        "7214bcda6863628644f9ca57868945f5923d169b"
      ],
      "author": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:18:33 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:18:41 2026"
      },
      "message": "Update Portuguese grade 1\n\nsee https://github.com/liblouis/liblouis/pull/2069\n"
    },
    {
      "commit": "7214bcda6863628644f9ca57868945f5923d169b",
      "tree": "0be026a2a5a7ab23f1021b6ab457b504cf99e1aa",
      "parents": [
        "c8ec0470c44f7777fec9d76162ada553c993deb8"
      ],
      "author": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:09:56 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:09:56 2026"
      },
      "message": "Fix the generate-display-names check\n"
    },
    {
      "commit": "c8ec0470c44f7777fec9d76162ada553c993deb8",
      "tree": "20da6584582139689a45cbf25122a00919e45f15",
      "parents": [
        "c80bcfe3e50e3fd94b4ad8b526636623d3bc5277"
      ],
      "author": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:22 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:22 2026"
      },
      "message": "Also remove #-reference-name metadata from fr-bfu-comp8.utb\n"
    },
    {
      "commit": "c80bcfe3e50e3fd94b4ad8b526636623d3bc5277",
      "tree": "aefb8f62706c93dc8de3b6ee01cef1465a93cca1",
      "parents": [
        "0cfb34ef414d166aea7e27ece26fc1ca9cf70c89"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Fri Aug 28 21:55:49 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Remove 3 more lines from the header\n\nConcludes 2 comment threads in pull request 2069.\n\nSee https://github.com/liblouis/liblouis/pull/2069#discussion_r3843295160\nand\nsee https://github.com/liblouis/liblouis/pull/2069#discussion_r3820857081\n"
    },
    {
      "commit": "0cfb34ef414d166aea7e27ece26fc1ca9cf70c89",
      "tree": "082751c8edb4f5b0fdcb515f99b89953dcb26340",
      "parents": [
        "cece55bfe79c3f4db9f24a1e72397c567d3325a7"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Tue Aug 25 19:50:43 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Delete one more author metadata line\n\nSolution for a comment thread in pull request 2069.\n\nSee https://github.com/liblouis/liblouis/pull/2069#discussion_r3851958323\n"
    },
    {
      "commit": "cece55bfe79c3f4db9f24a1e72397c567d3325a7",
      "tree": "17c56e42ebe4de31ee5de8113b4816146016f253",
      "parents": [
        "d1975c3f57190cc47b0c4149ba4fa5863a253cd7"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 24 23:58:06 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Backtranslate dots 256 appropriately\n"
    },
    {
      "commit": "d1975c3f57190cc47b0c4149ba4fa5863a253cd7",
      "tree": "de17c6708c462c935119525f7c1c5093ad9121d9",
      "parents": [
        "9c9dd06226c0789691b4c5daaba5422b9d516f3f"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 24 23:56:34 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Allows asterisk back-translation\n"
    },
    {
      "commit": "9c9dd06226c0789691b4c5daaba5422b9d516f3f",
      "tree": "038f42ded8e2be703c242b202cb88ea1689c2979",
      "parents": [
        "a723c5957d3efce61dd0ec39e0e6621d091af7ae"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 24 23:54:18 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Improve asterisk and slash back-translation test scenarios\n"
    },
    {
      "commit": "a723c5957d3efce61dd0ec39e0e6621d091af7ae",
      "tree": "126a0db5e26b4fb787790f5459ae19ea3013b758",
      "parents": [
        "78e799d505271c6d04eb40710211c4e1419f4898"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat Aug 22 21:54:02 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Halve the number of lines of author metadata\n\nApplies a criterion to halve the number of author metadata lines,\nthe first solution for a comment thread in pull request 2069.\n\nSee https://github.com/liblouis/liblouis/pull/2069#discussion_r3831915633\n"
    },
    {
      "commit": "78e799d505271c6d04eb40710211c4e1419f4898",
      "tree": "8376503c78b69f1abfcb11941d95ae461196f99e",
      "parents": [
        "86dd1f16a4fde209882e829c680671065321480e"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Wed Aug 19 03:45:53 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Refactor the tests\n"
    },
    {
      "commit": "86dd1f16a4fde209882e829c680671065321480e",
      "tree": "07151e81f21ad93d5ad7f1112c02cacb6bb51252",
      "parents": [
        "cab3d568dcfa73b23d4e8fb9b94e70d60cabe986"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Wed Aug 19 03:42:49 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Add references about Portuguese grade 1 braille code\n"
    },
    {
      "commit": "cab3d568dcfa73b23d4e8fb9b94e70d60cabe986",
      "tree": "6af009e64755f6b61a3500017bfa4f539e580479",
      "parents": [
        "d5c9087b0def0f24d562a36d80f29e5441f85178"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Wed Aug 19 03:42:02 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Add more pt-pt-g1 tests\n"
    },
    {
      "commit": "d5c9087b0def0f24d562a36d80f29e5441f85178",
      "tree": "5a077e77d7b2b2f5d4dea2671d4f6ab3e659ca63",
      "parents": [
        "540e3b07b6ae88eeeee0f964fb6317346cf17948"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:25:52 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Move tests that do not back-translate to appropriate section\n"
    },
    {
      "commit": "540e3b07b6ae88eeeee0f964fb6317346cf17948",
      "tree": "dcc97e4ac2b506c191640f06d9fd7d5349928770",
      "parents": [
        "ada1db18e5c79340d49b57a04a6c9e9ad893972e"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:14:12 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Adjust repetitive character tests\n"
    },
    {
      "commit": "ada1db18e5c79340d49b57a04a6c9e9ad893972e",
      "tree": "98d7611298e12332e7e8c01c85967740b8e94635",
      "parents": [
        "785e00c9b246475ae22c0ada4f1312721aa76043"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:12:23 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: This is back translated — acute, right single quotation, euro\n"
    },
    {
      "commit": "785e00c9b246475ae22c0ada4f1312721aa76043",
      "tree": "bddb79a231f294f7650e2d1c318b6ed6098e8c44",
      "parents": [
        "622833ac147aa5264f7c584316118178d1d0918b"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:10:21 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Letters take precedence in back-translation\n"
    },
    {
      "commit": "622833ac147aa5264f7c584316118178d1d0918b",
      "tree": "352ef311a74837bc67eb4644647b7763df500bf1",
      "parents": [
        "74227cd36425a6f786136236a73a745ed1262421"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:08:21 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Adjust some tests with numbers\n"
    },
    {
      "commit": "74227cd36425a6f786136236a73a745ed1262421",
      "tree": "828d51180b6351a68359f13e9048ccca064799e7",
      "parents": [
        "167199c32605bdca4109d5a92d7ecb867c2019cf"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:06:08 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Delete tests for symbols not defined by the braille code\n"
    },
    {
      "commit": "167199c32605bdca4109d5a92d7ecb867c2019cf",
      "tree": "09d342f7f99350ffe7b77d398ae5948e4613d2ac",
      "parents": [
        "d87a62857ab3a89fb0b49e581c6102aa61b8cdfd"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:04:22 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Do not remove space before or after double hyphen\n"
    },
    {
      "commit": "d87a62857ab3a89fb0b49e581c6102aa61b8cdfd",
      "tree": "2da1a536d8d01b204193ee71d11b1c20eff8e7bb",
      "parents": [
        "39159a1d3f8e61e3c439e3737612d8479f9abd2e"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:02:48 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Back-translate right-pointing double angle quotation mark\n"
    },
    {
      "commit": "39159a1d3f8e61e3c439e3737612d8479f9abd2e",
      "tree": "1807fe0ab6e4cfd3f6eef637c0c8c3ba0be951ca",
      "parents": [
        "4b9549314eea5641a3c82c1f3ee7fc4eec023384"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Aug 17 00:00:50 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Delete obsolete lines\n"
    },
    {
      "commit": "4b9549314eea5641a3c82c1f3ee7fc4eec023384",
      "tree": "5c27d30b02fb7e361b86dd8e387d6a5c35d8e4a2",
      "parents": [
        "1e19ba0471d4a2f19c8b62ead66d5279bf0bb9d1"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Aug 16 23:56:07 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Fix expected outputs according to the official braille code\n"
    },
    {
      "commit": "1e19ba0471d4a2f19c8b62ead66d5279bf0bb9d1",
      "tree": "cd322b98898061eee2a3e6f324f35b11261a8251",
      "parents": [
        "ed238e571f030e501ccdcf213e4589176eb2d203"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Aug 16 23:54:39 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt.yaml: Delete old duplicate line\n"
    },
    {
      "commit": "ed238e571f030e501ccdcf213e4589176eb2d203",
      "tree": "8f459a993f59d37f953873359b5e58a835f1b173",
      "parents": [
        "ea83b03b28b6dfbb8cf9577dda3b9caa258c857d"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Aug 16 23:50:03 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Properly translate symbols ( ) \u003e [ ] after math symbols\n"
    },
    {
      "commit": "ea83b03b28b6dfbb8cf9577dda3b9caa258c857d",
      "tree": "1ac8ae21d3bd05d341ba11517698949b92054981",
      "parents": [
        "08ffbff50bf251987cabad9d5261246c56c3b8e5"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Tue Jul 07 03:12:31 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Allow back-translation on some table entries\n"
    },
    {
      "commit": "08ffbff50bf251987cabad9d5261246c56c3b8e5",
      "tree": "11c3d2f36c675f71a4b26c9829b9ab5a8fca6f91",
      "parents": [
        "2dcf38838d56b2a036096dc9a89fbcbc1001a3ab"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Jul 05 02:10:02 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add 6-dot computer braille uppercase letters\n"
    },
    {
      "commit": "2dcf38838d56b2a036096dc9a89fbcbc1001a3ab",
      "tree": "d752ff901f0cce99f7657c61f61a230b8bafc250",
      "parents": [
        "0024ab4bc4776812cbec9a04fa3c4532117ab6e3"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Jul 05 01:54:02 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Changes some table entries to use after/before opcodes\n"
    },
    {
      "commit": "0024ab4bc4776812cbec9a04fa3c4532117ab6e3",
      "tree": "b224ad6770f674da64a3b76d8671e35be733bac2",
      "parents": [
        "89a7e81404d10120bb6c391fdd59eb81ba63f850"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Jul 05 01:18:15 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add 6-dot computer braille digits\n"
    },
    {
      "commit": "89a7e81404d10120bb6c391fdd59eb81ba63f850",
      "tree": "afec8d0b02c1f2eeac58d3051ea3b525638af311",
      "parents": [
        "0dd55fa8bc4577fac9db62ee6ad1c4eb8ebcb8db"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Fri Jun 26 23:59:54 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Enable back-translation of { and ⟨ in numbers\n"
    },
    {
      "commit": "0dd55fa8bc4577fac9db62ee6ad1c4eb8ebcb8db",
      "tree": "9698fbb6826b82aaf036f34684e0061f726bddf6",
      "parents": [
        "ad52bcc5e44b9d6fdf3147fca2a8fea654105deb"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Fri Jun 26 23:58:01 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Disable back-translation on multiple table entries\n\nThere are various characters represented with dots from other (one or\nmore) characters; disables back-translation in these ambiguous cases;\nin situations where there would be doubts between two or more\ncharacters that use the same dots, the back-translation of the\nsimplest or most significant character is allowed, etc.\n"
    },
    {
      "commit": "ad52bcc5e44b9d6fdf3147fca2a8fea654105deb",
      "tree": "45fa18162fc4b690ccbdcbe4d416a5b527f75af4",
      "parents": [
        "eb111bb5538f2a8e11a2cc4e0ed1b4ca9b5751b6"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Jun 14 01:25:02 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Rework and extend the translation rules of vertical bar\n"
    },
    {
      "commit": "eb111bb5538f2a8e11a2cc4e0ed1b4ca9b5751b6",
      "tree": "28e8c85b510805df60dbbbe9db3831372d87e50f",
      "parents": [
        "5dca8cb06f4b25088928d1d941eb82974686f312"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat Jun 13 22:42:53 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Change the Brazilian to Portuguese definition of ≅\n"
    },
    {
      "commit": "5dca8cb06f4b25088928d1d941eb82974686f312",
      "tree": "1f6e6ac8c2c24e1fb8331b0e067e38ab55500d0b",
      "parents": [
        "98a3aa99b0b8686a3c4e07bf436c2a3aec016176"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat Jun 13 22:36:39 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add some more Greek characters\n"
    },
    {
      "commit": "98a3aa99b0b8686a3c4e07bf436c2a3aec016176",
      "tree": "d9e28f31abca7d5eefbc7bbb536ddd33503d67f8",
      "parents": [
        "14c4843fbaf58bd2d3ab7e83e3ff872b148bf463"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Jun 01 02:10:33 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add more five bullet characters\n"
    },
    {
      "commit": "14c4843fbaf58bd2d3ab7e83e3ff872b148bf463",
      "tree": "774ecd2eff122ed206935cec783d618afbe5773f",
      "parents": [
        "2b5419b0222f4c7801de377e36d5f55e694ee12a"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Jun 01 02:04:16 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Remove some unnecessary character names\n\nRemoves repeated character names,\nremains names in character-definition entries.\n"
    },
    {
      "commit": "2b5419b0222f4c7801de377e36d5f55e694ee12a",
      "tree": "b1fb44dfffac07ca778fcc4b818eb6899380daad",
      "parents": [
        "7cb84b635646d81c442971a57dfb329769b24407"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun May 31 23:59:13 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Update paragraph about the table in header\n"
    },
    {
      "commit": "7cb84b635646d81c442971a57dfb329769b24407",
      "tree": "2610cfc4384af0b0188cbc4ef01aff899a3ad801",
      "parents": [
        "d979ccbcb19564077ae8f86470b3b5ce1ad3ddde"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun May 31 23:58:25 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Fix typo in the dots of the Cyrillic small letter yeru\n"
    },
    {
      "commit": "d979ccbcb19564077ae8f86470b3b5ce1ad3ddde",
      "tree": "fa7a8675a86a3e037af2b4c4f6fc395465a53d3d",
      "parents": [
        "4206c07c451dc320d7efd76c1e4469dfcb7f6cda"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun May 31 23:56:56 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Translate some characters preceded by vertical bar\n"
    },
    {
      "commit": "4206c07c451dc320d7efd76c1e4469dfcb7f6cda",
      "tree": "04547c136e637fc75a6ca814b0d4964342109a0f",
      "parents": [
        "eb4e38c9e69b49e8b6afdd251336eb734c66f61a"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun May 31 23:54:31 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Change letters that use special prefixes to letter class\n\nPrevents Portuguese braille indicators of uppercase\nand lowercase letters from being used in letters that have other\ncase-specific prefixes, such as letters from the Greek and Russian\nalphabets; It also prevents case indicators from appearing duplicated\nin some Latin letters that use specific prefixes\nto indicate diacritics.\n"
    },
    {
      "commit": "eb4e38c9e69b49e8b6afdd251336eb734c66f61a",
      "tree": "214239de349cd5d059c7596ab2fc1af92e39ed90",
      "parents": [
        "4213bbe05b59f555b3c4af55195687175bac2945"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun May 31 23:52:31 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Change opcodes from 3 secondary entries to comp6\n"
    },
    {
      "commit": "4213bbe05b59f555b3c4af55195687175bac2945",
      "tree": "31676c79334ef19932ea07f360ab3a8b1d21575b",
      "parents": [
        "76363939a0090084d3be36e11c90ac1119c3912f"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun May 31 23:50:02 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add 51 more math characters\n"
    },
    {
      "commit": "76363939a0090084d3be36e11c90ac1119c3912f",
      "tree": "1ba76a77082504514f3c9c52ec8980ff676f074b",
      "parents": [
        "2cd9fe4e20cfa31119bb265cf435fd88ad3f3a16"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Fri May 22 17:08:56 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add a few more letters with diacritics\n"
    },
    {
      "commit": "2cd9fe4e20cfa31119bb265cf435fd88ad3f3a16",
      "tree": "c6096f5e84fff7827212a2c77169183a63b9a72f",
      "parents": [
        "ca477b1551cb69c948858d79881fc24278608a6c"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon May 11 23:34:02 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Fix apostrophe with quotation mark role\n\nAdjusts the definition and forward translation of apostrophe in\nprobable situations where it functions as a variant of\nquotation marks, dots 56-236, according to the 2002 Portuguese braille\ndocumentation; for back-translation of apostrophe, Braille typing with\na screen reader, the use of dot 6 remains, which has been used\nsuccessfully in the table since Liblouis 3.15.0 until a\nbetter solution is found.\n"
    },
    {
      "commit": "ca477b1551cb69c948858d79881fc24278608a6c",
      "tree": "002c584f97cfd6396b4a2328a201671460a3940a",
      "parents": [
        "791e41be6359626b968a8b5fc1fee94aa5572775"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat May 09 03:14:51 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Normalize some letters combined with diacritic\n"
    },
    {
      "commit": "791e41be6359626b968a8b5fc1fee94aa5572775",
      "tree": "b74145d54a71d14088f0f39127da8e496f5d1628",
      "parents": [
        "dd722bb132149ddc62ff79a32b5adce6218670ad"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat May 09 03:12:21 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Support Esperanto letters\n\nAdds the accented letters of the Esperanto language based on the\ndefinitions in the book World Braille Usage 3rd edition. Link:\nhttps://www.perkins.org/wp-content/uploads/2021/07/wbu13v05.brf\n"
    },
    {
      "commit": "dd722bb132149ddc62ff79a32b5adce6218670ad",
      "tree": "6ad6af5d815ba47cdfbc3a4a48dc60e59b7bc686",
      "parents": [
        "cef2a9c180ceb68292937c7c401aaed0ec89c358"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat May 09 03:10:09 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Support the 6 most common fullwidth punctuations\n"
    },
    {
      "commit": "cef2a9c180ceb68292937c7c401aaed0ec89c358",
      "tree": "f0d74d4b23c6738968242bd1ba0c71a98806ef54",
      "parents": [
        "8a6815a5d4e44318c87f68aa7c1ab15bc8899f8a"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Mon Apr 27 00:00:47 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add Russian alphabet\n"
    },
    {
      "commit": "8a6815a5d4e44318c87f68aa7c1ab15bc8899f8a",
      "tree": "7bb70a8a5d64bfd8d0d5357fb5d4039e7cfa492c",
      "parents": [
        "890617f557894cd416568ed3f9885eb01e3ff681"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Apr 26 23:58:51 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Translate some temperature symbols\n"
    },
    {
      "commit": "890617f557894cd416568ed3f9885eb01e3ff681",
      "tree": "acd0e74bc86f225f2d8049331eec3063945fe39e",
      "parents": [
        "0ec2ad8b315162aed5eb181bbe1169e0306c4694"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sun Apr 26 23:56:45 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add Hebrew alphabet\n\nAdds definitions of the Hebrew alphabet from the 2002 Portuguese\nbraille documentation, such documentation left the\nfinal 5 letters (sofit) uncovered, assuming the\nsame braille dots as the non-final letters.\n"
    },
    {
      "commit": "0ec2ad8b315162aed5eb181bbe1169e0306c4694",
      "tree": "255c80a3177fb348d7a063d4df2684f6cea53a83",
      "parents": [
        "e05cb8723e563ba810a2dad96f8a05d79215eb24"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat Apr 25 23:50:45 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Pre-translate some Roman numeral characters\n"
    },
    {
      "commit": "e05cb8723e563ba810a2dad96f8a05d79215eb24",
      "tree": "f97b2a988fa687de68419076e5261553b41c0a9a",
      "parents": [
        "6f2deb104149e703ae0521077d88d8bf28a543f8"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat Apr 25 23:48:07 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add Cruzeiro currency sign\n\nAdds Cruzeiro character with its transcription (letters),\nan old Brazilian currency that was in force from 1942 to 1967,\n1970-1986, and 1990-1993. More information in Portuguese at the link:\nhttps://pt.wikipedia.org/wiki/Cruzeiro_(moeda)\n"
    },
    {
      "commit": "6f2deb104149e703ae0521077d88d8bf28a543f8",
      "tree": "ab6ef96b9dd163f2263f7f1becfcb79ebfb5d2aa",
      "parents": [
        "5e503dc294cf996eabcf4865d37ca7602a3d8c25"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Sat Apr 25 23:44:21 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add forty math characters\n\nAdds some superscript and subscript characters,\nsome fractions, division slash, some root characters,\nless-than/greater-than or equal to characters.\n"
    },
    {
      "commit": "5e503dc294cf996eabcf4865d37ca7602a3d8c25",
      "tree": "7cecf8f02a63b04e8dd065d47bad578caf04c02d",
      "parents": [
        "095f0d9a24f9412b81899a94d780d06428a0787e"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Thu Apr 23 21:55:35 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add characters ¡¿ßæëîïøùûœÆËÎÏØÙÛŒẞ\n\nAdds a few more characters, definitions from Appendix 2 or B of the\nbook Grafia Braille para a Língua Portuguesa:\ninverted exclamation mark, inverted question mark,\nletter sharp s, Latin letter ae, letter e with diaeresis,\nletter i with circumflex, letter i with diaeresis,\nletter o with stroke, letter u with grave,\nletter u with circumflex, Latin ligature oe.\n"
    },
    {
      "commit": "095f0d9a24f9412b81899a94d780d06428a0787e",
      "tree": "92a41889effa54d62602f91360955bb77656c035",
      "parents": [
        "b11c2fb96fdd498abbe0b40787b0cfa389ca1ecb"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Wed Apr 22 04:30:33 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add support for Unicode braille\n\nIncorporates braille-patterns.cti at the end of the\ncharacter-definitions section, giving forward translation precedence\nto the definitions that precede such entry.\n"
    },
    {
      "commit": "b11c2fb96fdd498abbe0b40787b0cfa389ca1ecb",
      "tree": "b8f04bfb4fbe59af9fe8f51d38540fa8f82a4cdb",
      "parents": [
        "10b7dcc35fc0cf99eaf0bb103d3a9c7d6ee06130"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Wed Apr 22 04:28:43 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add 6-dot computer braille characters\n"
    },
    {
      "commit": "10b7dcc35fc0cf99eaf0bb103d3a9c7d6ee06130",
      "tree": "b1de1f1a2f4b41e4816ba68e303f4a7c607a3681",
      "parents": [
        "a9959e0a11b1ee67f901252955c00e4afb37b875"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Wed Apr 22 04:25:59 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add Greek alphabet support\n"
    },
    {
      "commit": "a9959e0a11b1ee67f901252955c00e4afb37b875",
      "tree": "88e177ad8c7bf91df4407606ebafb237443c9d24",
      "parents": [
        "d54f3f31f3c7ae074108f13e4d753156093073da"
      ],
      "author": {
        "name": "Tiago Melo Casal",
        "email": "tcasal@intervox.nce.ufrj.br",
        "time": "Wed Apr 22 04:22:01 2026"
      },
      "committer": {
        "name": "Bert Frees",
        "email": "bertfrees@gmail.com",
        "time": "Tue Sep 01 10:05:00 2026"
      },
      "message": "pt-pt-g1.utb: Add definitions of ¨¬±⁄−∧∨∩∪␢\n\nAdds definitions for the following characters: diaeresis, not sign,\nplus-or-minus sign, fraction slash, minus sign, logical and,\nlogical or, intersection, union, blank symbol.\n"
    }
  ],
  "next": "d54f3f31f3c7ae074108f13e4d753156093073da"
}
