)]}'
{
  "log": [
    {
      "commit": "25a08f24cfc0da879d1938352d026532f280b77e",
      "tree": "f2f31c89feb27a877d11684530c35cca7c2eea52",
      "parents": [
        "b08a2eb0dd37f4a6c886fa5b0ecf5b3e1d27aac7"
      ],
      "author": {
        "name": "Hennadii Stepanov",
        "email": "hebasto@gmail.com",
        "time": "Thu Jun 04 13:08:30 2026 +0000"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Jun 04 09:08:30 2026 -0400"
      },
      "message": "[CMake] Fix shared library versioning on OpenBSD and NetBSD.\n\nFixes #1440.\n\n* CMakeLists.txt: Implement it.\n"
    },
    {
      "commit": "b08a2eb0dd37f4a6c886fa5b0ecf5b3e1d27aac7",
      "tree": "7e9bbd0a8e7caf46835070ea68372b25ba4cabe8",
      "parents": [
        "27229dccf89edabd16f5a13e13a30b486384df7f"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 31 14:06:45 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 31 14:06:45 2026 -0400"
      },
      "message": "* src/autofit/afgsub.c (af_validate_coverage): Use unsigned variables.\n"
    },
    {
      "commit": "27229dccf89edabd16f5a13e13a30b486384df7f",
      "tree": "2fff68952f2c647a0a13d257f6d050b1114edc7d",
      "parents": [
        "f9010851e4c8f5589955e70c32c5a8d9508c39e9"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 31 08:07:38 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 31 08:07:38 2026 -0400"
      },
      "message": "* src/autofit/afgsub.c (af_validate_coverage): Reject overlaps.\n"
    },
    {
      "commit": "f9010851e4c8f5589955e70c32c5a8d9508c39e9",
      "tree": "e46b4af0fc7fadff6b0e441a08cebce8a2e4656a",
      "parents": [
        "7e0e56f84fd53cf38378d33c8fc8f92d12ab9ac6"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri May 29 06:43:37 2026 +0200"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri May 29 06:46:24 2026 +0200"
      },
      "message": "* src/autofit/afgsub.c (af_validate_coverage): Check last element.\n\nFixes issue #1439.\n"
    },
    {
      "commit": "7e0e56f84fd53cf38378d33c8fc8f92d12ab9ac6",
      "tree": "7cbc2480f4153bba76fd82dfb2d23a91f5a491b2",
      "parents": [
        "c0bac4c2d229e5501ed0218ef789cb8ed75b8c52"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 17 12:29:34 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 17 12:29:34 2026 -0400"
      },
      "message": "Revert to signed span positioning.\n\nIn the context of FT_Outline_Render, the outline can be placed\narbitrarily and the resulting spans should be signed. This partially\nreverts ef04e4eb2056 and fixes #1410.  However, for internal use,\nwhen outlines are placed in the first quadrant, we still can interpret\npositions as unsigned.\n\n* include/freetype/ftimage.h (FT_Span): Use signed position again.\n* src/smooth/ftgrays.c (gray_sweep_direct): Sync with FT_Span.\n* src/smooth/ftsmooth.c (ft_smooth_lcd_spans, ft_smooth_lcdv_spans,\nft_smooth_overlap_spans): Prevent sign extension.\n"
    },
    {
      "commit": "c0bac4c2d229e5501ed0218ef789cb8ed75b8c52",
      "tree": "3e343473178703a7dbf8d41460010e2aa126270e",
      "parents": [
        "aaf69b609f8114df99f5be0b8872ffbaf66032f7"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 15 10:38:45 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 15 10:38:45 2026 -0400"
      },
      "message": "* src/smooth/ftgrays.c (gray_TWorker): Remove redundancies.\n(gray_raster_render, gray_convert_glyph, gray_set_cell): Updated."
    },
    {
      "commit": "aaf69b609f8114df99f5be0b8872ffbaf66032f7",
      "tree": "67015936c02238e061c3e04c442cb52d3719ce27",
      "parents": [
        "ce82ebedfeab072a86fad2767cc3ad34a9465590"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu May 14 23:39:27 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu May 14 23:39:27 2026 -0400"
      },
      "message": "* src/raster/ftraster.c (Render_Single_Pass): Simplify bisections.\n"
    },
    {
      "commit": "ce82ebedfeab072a86fad2767cc3ad34a9465590",
      "tree": "3c7a9fc7a727bb725f844b6750b441f41ec4d8c5",
      "parents": [
        "5a280ecde6f324de0d226261036e736e0cb49a71"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu May 14 23:14:25 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu May 14 23:14:25 2026 -0400"
      },
      "message": "* src/smooth/ftgrays.c (gray_convert_glyph): Simplify bisections.\n"
    },
    {
      "commit": "5a280ecde6f324de0d226261036e736e0cb49a71",
      "tree": "a24b67ca7305dfa6036f5342a17c3f441203afc3",
      "parents": [
        "8fa928f1617aba65f45b00f0dcb109f077b7741e"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed May 13 21:53:23 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed May 13 21:53:23 2026 -0400"
      },
      "message": "* src/truetype/ttgxvar.c (TT_Get_Var_Design): Zero extras.\n\nFixes #1436."
    },
    {
      "commit": "8fa928f1617aba65f45b00f0dcb109f077b7741e",
      "tree": "006b5813409d4d6e64379e1c7d8d5800b7af3493",
      "parents": [
        "c39ca391b34ca8afe2dc3a8fed51be216f77588d"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed May 13 21:31:32 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed May 13 21:31:32 2026 -0400"
      },
      "message": "* src/type1/t1load.c (T1_Get_Var_Design): Updated."
    },
    {
      "commit": "c39ca391b34ca8afe2dc3a8fed51be216f77588d",
      "tree": "e9dab662c3ca20c50165c33ce62e85e0cb0f40a4",
      "parents": [
        "3c364321adbdbc8a913f2ed1502babfe8044f434"
      ],
      "author": {
        "name": "Deborah Goldsmith",
        "email": "goldsmith@apple.com",
        "time": "Tue May 12 23:48:38 2026 +0000"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue May 12 19:48:38 2026 -0400"
      },
      "message": "[hvf] Fix macro usage and metrics calculations.\n\n* src/hvf/hvfload.c (hvf_render_callback): Fix glyph loader macro calls\nand metrics calculations.\n* src/hvf/hvfobjs.c (hvf_refresh_axis_coordinates,\nhvf_init_axis_coordinates): Tweak macro usage.\n* src/hvf/hvfobjs.h (HVF_RenderContext): Remove `face`.\n\n* include/freetype/ftmoderr.h: Add HVF error base.\n"
    },
    {
      "commit": "3c364321adbdbc8a913f2ed1502babfe8044f434",
      "tree": "0c083ad7883a75d5947d3dd936e94598921b417f",
      "parents": [
        "fae1e3160e727ae1fc19c54e54d71e9bd1d0c917"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue May 12 19:14:54 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue May 12 19:14:54 2026 -0400"
      },
      "message": "[smooth, raster] Fix signedness warning.\n\n* src/smooth/ftgrays.c (gray_convert_glyph): Use unsigned estimate.\n* src/raster/ftraster.c (ft_black_render): Ditto and expand.\n"
    },
    {
      "commit": "fae1e3160e727ae1fc19c54e54d71e9bd1d0c917",
      "tree": "5f4fdd34ac339dcba7468d6182536e18e30abb6f",
      "parents": [
        "9a4751a61d6d9fda7b96d6e7cfcb4029aff79aec"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 09 14:14:48 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 09 14:14:48 2026 -0400"
      },
      "message": "[raster] Dynamic pool allocation.\n\nUse pool allocation strategy similar to that of the smooth rasterizer.\nThis is beneficial at sizes larger than 100 ppem.\n\n* src/raster/ftraster.c (Render_Single_Pass): Move pool allocation...\n(ft_black_render): ... here. Allocate larger pools dynamically.\n\n* include/freetype/config/ftoption.h: Update comment.\n* devel/ftoption.h: Ditto.\n"
    },
    {
      "commit": "9a4751a61d6d9fda7b96d6e7cfcb4029aff79aec",
      "tree": "926f07796519b762d99fd7fa2062b22b38a7df8a",
      "parents": [
        "2c041d32fa14afa7845143d29f29c3c68f26bfcd"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 09 09:51:56 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 09 09:51:56 2026 -0400"
      },
      "message": "* src/base/ftbitmap.c (FT_Bitmap_Blend): Fix undefined shift.\n\nReported in\n  https://issues.oss-fuzz.com/issues/510113351\n"
    },
    {
      "commit": "2c041d32fa14afa7845143d29f29c3c68f26bfcd",
      "tree": "065903fda5cb98e4652d0b0bcd8d5ce2faa54dbc",
      "parents": [
        "a1dd8f8d682cd5b9d0637d0a003a99b8bdee56b7"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 09 09:03:57 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 09 09:03:57 2026 -0400"
      },
      "message": "* src/base/ftbitmap.c (FT_Bitmap_Blend): Refactor to avoid warnings.\n"
    },
    {
      "commit": "a1dd8f8d682cd5b9d0637d0a003a99b8bdee56b7",
      "tree": "c5a8e0909dbb70060957e2effea719056fdc1336",
      "parents": [
        "8cbc8a77586bbaed1d7e010ca346c371e4774b28"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 08 22:05:27 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 09 07:11:58 2026 -0400"
      },
      "message": ".gitlab-ci.yml: Update Windows pipeline.\n"
    },
    {
      "commit": "8cbc8a77586bbaed1d7e010ca346c371e4774b28",
      "tree": "739e1774d3b9306b40672850825b0bb398357ef7",
      "parents": [
        "7c08535abd05ada10f1382c4728773db7badd0db"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 08 21:21:45 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 08 21:21:45 2026 -0400"
      },
      "message": "* src/smooth/ftgrays.c: Comments expanded.\n"
    },
    {
      "commit": "7c08535abd05ada10f1382c4728773db7badd0db",
      "tree": "637a35ccaa9285c11497adb412b404983171e182",
      "parents": [
        "a39ef7632e3729f699aab928645ae4a91470ec43"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 08 18:34:38 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 08 18:34:38 2026 -0400"
      },
      "message": "* docs/CHANGES: Draft recent changes.\n"
    },
    {
      "commit": "a39ef7632e3729f699aab928645ae4a91470ec43",
      "tree": "ce02735ebd5e2635fcf1203725701ab986766d02",
      "parents": [
        "a1bbf07413107a483ea717c383dc5e7d2b32be34"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 08 18:14:53 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri May 08 18:14:53 2026 -0400"
      },
      "message": "[smooth] Dynamic pool allocation.\n\nThe fixed pool allocation on stack is very fast and works very well\nfor rendering glyphs smaller than 40 pixels. Larger glyphs have to be\nsplit and rendered piecewise, which is slower.  This commit introduces\ndynamic pool allocation for larger glyphs.  Complex large glyphs are\nnow rendered about 2x faster.\n\n* src/smooth/ftgrays.c (gray_convert_glyph): Use simpler banding schema\nin case of rendering emergency.\n(gray_raster_render): Allocate larger pools dynamically.\n\n* include/freetype/config/ftoption.h: Explain the render pool size.\n* devel/ftoption.h: Ditto.\n"
    },
    {
      "commit": "a1bbf07413107a483ea717c383dc5e7d2b32be34",
      "tree": "1bfec243b732572c37e80616285f5b61eb831def",
      "parents": [
        "7e3750982be8c6c71a572ef6829c89f27f9c989b"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri May 08 05:38:23 2026 +0200"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri May 08 05:38:23 2026 +0200"
      },
      "message": "* builds/windows/vc2010/index.html: Update file descriptions.\n\nFixes issue #1434.\n"
    },
    {
      "commit": "7e3750982be8c6c71a572ef6829c89f27f9c989b",
      "tree": "738a17879f8bd0de178237ac08d75cb0e21966ee",
      "parents": [
        "968af86becaae66f571feec0c8ad11c1bc39ddd9"
      ],
      "author": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 13:25:40 2026 +0000"
      },
      "committer": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 13:25:40 2026 +0000"
      },
      "message": "* src/truetype/ttinterp.c (TT_RunIns): Remove dead code.\n\nFixes #1433.\n"
    },
    {
      "commit": "968af86becaae66f571feec0c8ad11c1bc39ddd9",
      "tree": "88aff164feb6e4bb048ced44ff1d29ce600bf9ae",
      "parents": [
        "1ec3406aef4f19a3808f06317280d011500ee0b5"
      ],
      "author": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 13:16:55 2026 +0000"
      },
      "committer": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 13:16:55 2026 +0000"
      },
      "message": "* src/psaux/psintrp.c (cf2_interpT2CharString): Fix off-by-one in the subroutine nesting depth check.\n\nFixes #1432.\n"
    },
    {
      "commit": "1ec3406aef4f19a3808f06317280d011500ee0b5",
      "tree": "5751d6b24bdc6c125034c8b0afd892ed5d164e99",
      "parents": [
        "287206a96b200f9ab048bb0d83a4dbab8766b9f8"
      ],
      "author": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 13:13:16 2026 +0000"
      },
      "committer": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 13:13:16 2026 +0000"
      },
      "message": "* src/psaux/psstack.c (cf2_stack_roll): Process top stack elements instead of bottom ones.\n\nFixes #1431.\n"
    },
    {
      "commit": "287206a96b200f9ab048bb0d83a4dbab8766b9f8",
      "tree": "1b89aba4ee3db7e14e416132b85cd16657adc9fd",
      "parents": [
        "df2fb115bf874a242a9fd49aa99c3c2fd41d151c"
      ],
      "author": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 13:00:15 2026 +0000"
      },
      "committer": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 13:00:15 2026 +0000"
      },
      "message": "* src/truetype/ttinterp.c (Ins_WCVTF): Add missing CVT copy-on-write protection.\n\nFixes #1430.\n"
    },
    {
      "commit": "df2fb115bf874a242a9fd49aa99c3c2fd41d151c",
      "tree": "0dd6568a8e15355d540a9dd44cd4924074fde09f",
      "parents": [
        "1f705ffb716c7a35efe13d3b58f62ef7c4c6415d"
      ],
      "author": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 12:47:52 2026 +0000"
      },
      "committer": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 12:47:52 2026 +0000"
      },
      "message": "* src/psaux/psintrp.c (cf2_doBlend): Implement proper bounds check accounting for all operands.\n\nFixes #1429.\n"
    },
    {
      "commit": "1f705ffb716c7a35efe13d3b58f62ef7c4c6415d",
      "tree": "ce8085c55a9fd6187d269d9f324a79d2502bde7f",
      "parents": [
        "b6bcd2177f72bb4842c7701d7b7f633bb3fc951a"
      ],
      "author": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 12:29:45 2026 +0000"
      },
      "committer": {
        "name": "Mateusz Jurczyk",
        "email": "mjurczyk@google.com",
        "time": "Thu May 07 12:31:59 2026 +0000"
      },
      "message": "* src/psaux/psstack.c (cf2_stack_setReal): Fix off-by-one in index check.\n\nFixes #1428.\n"
    },
    {
      "commit": "b6bcd2177f72bb4842c7701d7b7f633bb3fc951a",
      "tree": "23edf1dc6a4cf1119488d27974f786abc371169c",
      "parents": [
        "53850f3cd538d62070f42056e881914e7de2ac08"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 03 13:21:19 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 03 13:21:19 2026 -0400"
      },
      "message": "* src/base/ftbitmap.c (FT_Bitmap_Blend): Check final dimensions.\n\nFixes #1413.\n"
    },
    {
      "commit": "53850f3cd538d62070f42056e881914e7de2ac08",
      "tree": "870a1815689e26ba4454cc9f373b44055d210d9a",
      "parents": [
        "cbe12767ea73d1006edc75fcd61c0b0d2a88f34e"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 03 13:10:01 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun May 03 13:10:01 2026 -0400"
      },
      "message": "* src/base/ftbitmap.c (FT_Bitmap_Blend): Refactor.\n"
    },
    {
      "commit": "cbe12767ea73d1006edc75fcd61c0b0d2a88f34e",
      "tree": "46a7b7715155b8ad7f9d48394c735b66142d87d3",
      "parents": [
        "590b77014bd920d0bdf64c039fddbce89a288b83"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 02 15:17:35 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 02 15:17:35 2026 -0400"
      },
      "message": "* src/base/ftobjs.c (FT_Render_Glyph_Internal): Protect FT_LOAD_COLOR.\n\nNow only *scalable* COLRv0 layers can be rendered with FT_LOAD_COLOR,\nin accordance with Chromium. Fixes #1425, also see !424.\n"
    },
    {
      "commit": "590b77014bd920d0bdf64c039fddbce89a288b83",
      "tree": "dfad3530481e564af2922f8c5fefbf26c9992aba",
      "parents": [
        "6d9fc45fc4bca8aef0b8f65592520673638c3334"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 02 15:09:51 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat May 02 15:09:51 2026 -0400"
      },
      "message": "* src/base/ftobjs.c (FT_Render_Glyph_Internal): Formatting.\n"
    },
    {
      "commit": "6d9fc45fc4bca8aef0b8f65592520673638c3334",
      "tree": "41ce8fb14a29fc8b4ff7e71a6077d58cf478c919",
      "parents": [
        "0d45c7f1911bc6db0bf072eea0c8cdccd77bc6b3"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Apr 28 18:56:18 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Apr 28 18:56:18 2026 -0400"
      },
      "message": "* src/truetype/ttgxvar.c (tt_delta_shift): Use unsigned references.\n"
    },
    {
      "commit": "0d45c7f1911bc6db0bf072eea0c8cdccd77bc6b3",
      "tree": "4301e5e13484ccef9c66eea1f5a92b41fac8810e",
      "parents": [
        "5d1099341f1734e460d17c4c689dcefaae8d172a"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Apr 27 22:33:16 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Apr 27 22:33:16 2026 -0400"
      },
      "message": "[truetype/GX] Fix signed overflow. \n\nFixes #1423.\n\n* src/truetype/ttgxvar.c (tt_interpolate_deltas, tt_delta_interpolate):\nUse unsigned counters."
    },
    {
      "commit": "5d1099341f1734e460d17c4c689dcefaae8d172a",
      "tree": "2e21f67eee32bb60b2caa907623ad63bc23e05a7",
      "parents": [
        "c8c8b4b8a0d98bee005700d7c7698adb78e96f4f"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 26 09:38:34 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 26 09:38:34 2026 -0400"
      },
      "message": "[truetype] Reduce zone copying.\n\n* src/truetype/ttinterp.c (Compute_Point_Displacement): Reduce\nzone copying and return reference on demand only.\n(Ins_SHP, Ins_SHC, Ins_SHZ): Updated accordingly.\n"
    },
    {
      "commit": "c8c8b4b8a0d98bee005700d7c7698adb78e96f4f",
      "tree": "d842f9af6dd39758a7c0e131558143e2813dcef3",
      "parents": [
        "85c20f4e78e3443704ac00f2f957ef873b068bdd"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 26 08:36:25 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 26 08:36:25 2026 -0400"
      },
      "message": "[truetype] Simplify shift conditions.\n\n* src/truetype/ttinterp.c (Compute_Point_Displacement,\nIns_SHP, Ins_SHPIX): Use \u0027FT_UInt\" as point references.\n(Ins_SHC, Ins_SHZ): Ditto and simplify repeated condition.\n"
    },
    {
      "commit": "85c20f4e78e3443704ac00f2f957ef873b068bdd",
      "tree": "a96a4c009284550989e8c6834ffe6c0bb1afd042",
      "parents": [
        "6d0ae3ae94e4d77d5fb89fe92628300b347c7b64"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 26 08:32:13 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 26 08:32:13 2026 -0400"
      },
      "message": "* src/truetype/ttinterp.c (Move_Zp2_Point): Remove \u0027touch\u0027.\n\nUpdate all callers.\n"
    },
    {
      "commit": "6d0ae3ae94e4d77d5fb89fe92628300b347c7b64",
      "tree": "d68af7ec0abfaefd4954966856ddb1f64053ba70",
      "parents": [
        "7d600a022e1d813e85a8c94ffd395f6135872267"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 26 08:26:52 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 26 08:26:52 2026 -0400"
      },
      "message": "[truetype] Fix SHZ according to specifications.\n\nSHZ must shift the zone specified by its arguments. Previously,\nit was shifting zp2 instead.\n\n* src/truetype/ttinterp.c (Ins_SHZ): Rewrite to specifications.\n"
    },
    {
      "commit": "7d600a022e1d813e85a8c94ffd395f6135872267",
      "tree": "afbea17e64fd7b026bf724fdd65f925e5ba02aea",
      "parents": [
        "1803559c4ee407d0bcbf2a67dbe96690cee869d2"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Apr 23 21:54:58 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Apr 23 21:54:58 2026 -0400"
      },
      "message": "* src/truetype/ttinterp.c (Ins_SHZ): Fix the range limit (cont\u0027d).\n\nFixes\n    https://issues.oss-fuzz.com/issues/505900175\n"
    },
    {
      "commit": "1803559c4ee407d0bcbf2a67dbe96690cee869d2",
      "tree": "6d017ba3307c7b9ee658ebedc1915b11c1ed15a4",
      "parents": [
        "7974be74d8b5a2fbf99aa88f0461d1f80af51cee"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed Apr 22 20:49:51 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed Apr 22 20:49:51 2026 -0400"
      },
      "message": "* src/truetype/ttinterp.c (Ins_SHZ): Fix the range limit.\n\nFixes #1419 and #1420, as well as\n    https://issues.oss-fuzz.com/issues/499455833"
    },
    {
      "commit": "7974be74d8b5a2fbf99aa88f0461d1f80af51cee",
      "tree": "36b01e1608ca3f061b456001964e36176ddf4faa",
      "parents": [
        "f2b3f96901a320a9cda78ddbee306d5b320342d3"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed Apr 22 16:04:14 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed Apr 22 16:04:14 2026 -0400"
      },
      "message": "* src/truetype/ttinterp.c (Ins_IUP): Use unsigned counter.\n\nFixes #1421."
    },
    {
      "commit": "f2b3f96901a320a9cda78ddbee306d5b320342d3",
      "tree": "324c7230d0288371da59f1beef42251c073cb779",
      "parents": [
        "ce4105f9138a03e869c1815ee2326c1be0e4a37f"
      ],
      "author": {
        "name": "Yaroslav Kolomiiets",
        "email": "yarikos@gmail.com",
        "time": "Wed Apr 22 13:01:21 2026 +0000"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Wed Apr 22 09:01:21 2026 -0400"
      },
      "message": "[build] Add a Plan 9 port.\n\n* mkfile: Build instructions.\n* build/plan9/p9lib.h: Standard lib replacement.\n* build/plan9/README: Docs.\n"
    },
    {
      "commit": "ce4105f9138a03e869c1815ee2326c1be0e4a37f",
      "tree": "dcc99a69b5a9e286c470a4044f04b19c8050adab",
      "parents": [
        "867c296b908be5c783cad60defe5cf5b3be393f2"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Apr 21 19:52:37 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Apr 21 19:52:37 2026 -0400"
      },
      "message": "* include/freetype/fttypes.h: Do not include stddef.h.\n"
    },
    {
      "commit": "867c296b908be5c783cad60defe5cf5b3be393f2",
      "tree": "5cbe7275c90491f6e298157514c1dc1b3924adf2",
      "parents": [
        "0db9ecac025aecf1d270def1f2879e798bb58697"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Tue Apr 21 22:12:09 2026 +0200"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Tue Apr 21 22:12:09 2026 +0200"
      },
      "message": "* src/sfnt/ttsbit.c (tt_face_load_sbix_image): Use `FT_MulDiv`.\n\nProblem reported as\n\n  https://issues.oss-fuzz.com/issues/505058300\n"
    },
    {
      "commit": "0db9ecac025aecf1d270def1f2879e798bb58697",
      "tree": "f43d6a76508ea94b661c60292d97819c81dae9fc",
      "parents": [
        "a6d486002dc6fb26dadfbca45bcab02e1250963a"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Apr 21 14:00:19 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Apr 21 14:00:19 2026 -0400"
      },
      "message": "* src/truetype/ttgload.c (TT_Load_Simple_Glyph): Use unsigned counts.\n\nThis helps Plan 9 compilation.\n"
    },
    {
      "commit": "a6d486002dc6fb26dadfbca45bcab02e1250963a",
      "tree": "6f5dfdce1f9556427ebe3545b2565ab029eb3b9e",
      "parents": [
        "18a463c2fbfc03ab8adf9d4bdc14716ba9b413db"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 12 22:46:32 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 12 22:46:32 2026 -0400"
      },
      "message": "* src/truetype/ttdriver.cv (tt_glyph_load): Remover redundancies.\n\nFixes #1417, found by `cppcheck`.\n"
    },
    {
      "commit": "18a463c2fbfc03ab8adf9d4bdc14716ba9b413db",
      "tree": "0c4e9663a4795883617a2febce0e6470bd77af19",
      "parents": [
        "ca53609f3c3ab0a742d895fbecd1912424750484"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 12 22:34:21 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 12 22:34:21 2026 -0400"
      },
      "message": "* src/sdf/ftsdf.c (sdf_*_to): Remover redundant checks.\n\nFixes #1417, found by `cppcheck`.\n"
    },
    {
      "commit": "ca53609f3c3ab0a742d895fbecd1912424750484",
      "tree": "4f4d514c1da4207dfad8436ee191de48bce9e248",
      "parents": [
        "3221895b3fabb02cf5a07597e126b78ebcd859c1"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 12 12:00:47 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Apr 12 12:00:47 2026 -0400"
      },
      "message": "[pcf] Limit bitmap allocation and loading.\n\nLoading huge bitmaps now requires selecting huge size, fixes #1411.\n\n* src/pcf/pcfread.c (pcf_get_metrics): Remove/delay sanity checks.\n* src/pcf/pcfdrivr.c (PCF_Glyph_Load): Sanitize bitmap dimensions.\n"
    },
    {
      "commit": "3221895b3fabb02cf5a07597e126b78ebcd859c1",
      "tree": "28d4d570fe2ae9992722a8da618ccdab4eba57f0",
      "parents": [
        "32c07226228e8d00b39662e95a6972a53733411c"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Apr 11 11:12:02 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Apr 11 11:12:02 2026 -0400"
      },
      "message": "* src/smooth/ftsmooth.c (ft_smooth_raster_lcd): Fix clip_box.\n\nThe bug is discussed in #1412, without security repercussions.\n"
    },
    {
      "commit": "32c07226228e8d00b39662e95a6972a53733411c",
      "tree": "e94d71e33e907f1c3dba2211c7cedac06e5d05fb",
      "parents": [
        "ef54557bda3b17da1b7e42e8e207efd1842bcc05"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Apr 11 09:31:18 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Apr 11 09:31:18 2026 -0400"
      },
      "message": "* src/type1/t1parse.c (T1_Get_Private_Dict): Minor.\n\nFixes #1416.\n"
    },
    {
      "commit": "ef54557bda3b17da1b7e42e8e207efd1842bcc05",
      "tree": "88aadb699a24996761ac12d5802348348f5a3537",
      "parents": [
        "cc1adf8d64dae3c0d6714f136b7bc932572f59fc"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Apr 03 06:27:32 2026 +0200"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Apr 03 06:27:32 2026 +0200"
      },
      "message": "[autofit] Prevent signed integer overflow.\n\nReported as\n\n    https://issues.oss-fuzz.com/issues/499135336\n\n* src/autofit/aflatin.c (af_move_contour_vertically): Use `ADD_LONG`.\n"
    },
    {
      "commit": "cc1adf8d64dae3c0d6714f136b7bc932572f59fc",
      "tree": "294f0ac1c3e95fc9ba56a0c10e3e9be4ab508b64",
      "parents": [
        "675a94f5d0e6a255d0255bd794b2d89f01b3f62f"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Thu Apr 02 07:23:11 2026 +0200"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Apr 03 04:20:24 2026 +0000"
      },
      "message": "[hvf] Correctly initialize driver if no HVF library is available.\n\nSince this font driver is by default enabled in `modules.cfg` and its\navailability controlled by `FT_CONFIG_OPTION_HVF`, we need to provide some\nstubs so that HVF fonts can be correctly rejected if there is no HVF library\navailable.\n\nFixes issue #1409.\n\n* src/hvf/hvfdrv.c (hvf_driver_class): Provide `hvf_face_init` and\n  `hvf_slot_load_glyph` unconditionally.\n\n* src/hvf/hvfload.c, src/hvf/hvfload.h (hvf_slot_load_glyph)\n  [!FT_CONFIG_OPTION_HVF]: Define stub.\n* src/hvf/hvfobjs.c, src/hvf/hvfobjs.h (hvf_face_init)\n  [!FT_CONFIG_OPTION_HVF]: Define stub.\n"
    },
    {
      "commit": "675a94f5d0e6a255d0255bd794b2d89f01b3f62f",
      "tree": "2ccc4ea49ba5b0b0a1419038fb248b5bd6734fd6",
      "parents": [
        "07d8d50a63a45a7446b2fc44732baecc685f3e4c"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Thu Apr 02 07:56:04 2026 +0200"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Thu Apr 02 07:56:04 2026 +0200"
      },
      "message": "[autofit] Prevent signed integer overflow.\n\nReported as\n\n  https://issues.oss-fuzz.com/issues/496105489\n\n* src/autofit/aflatin.c\n  (af_glyph_hints_apply_vertical_separation_adjustments): Use `ADD_LONG` and\n  `SUB_LONG`.\n"
    },
    {
      "commit": "07d8d50a63a45a7446b2fc44732baecc685f3e4c",
      "tree": "e0c8713e9da689c5c6982b06486ecd5c31054f0d",
      "parents": [
        "8dff1b4b0752c780c7200a4145555fe51b7ae943"
      ],
      "author": {
        "name": "Suzuki, Toshiya (鈴木俊哉)",
        "email": "mpsuzuki@hiroshima-u.ac.jp",
        "time": "Fri Nov 21 14:14:33 2025 +0900"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 23 19:36:36 2026 +0100"
      },
      "message": "Update some VisualStudio project files to include HVF module.\n\n* builds/windows/vc2010/freetype.vcxproj: Add hvf.c before ftlzw.c.\n* builds/windows/visualc/freetype.vcproj: Add hvf.c before pcf.c.\n* builds/windows/visualce/freetype.vcproj: Add hvf.c before pcf.c.\n"
    },
    {
      "commit": "8dff1b4b0752c780c7200a4145555fe51b7ae943",
      "tree": "fe154c45bbff9afb1de6f59921056d775c207a87",
      "parents": [
        "2228a8b446886d946156b4eb727f5ce2d4898c3f"
      ],
      "author": {
        "name": "Debbie Goldsmith",
        "email": "goldsmit@apple.com",
        "time": "Mon Mar 02 14:26:10 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 23 19:36:36 2026 +0100"
      },
      "message": "* builds/unix/configure.raw: Handle new HVF driver.\n"
    },
    {
      "commit": "2228a8b446886d946156b4eb727f5ce2d4898c3f",
      "tree": "28239096104cf9e9b63d1f99024915278832a5fd",
      "parents": [
        "39dab7d2cdc518b268ec0d86ce7a0092e95a7829"
      ],
      "author": {
        "name": "Debbie Goldsmith",
        "email": "goldsmit@apple.com",
        "time": "Mon Mar 02 07:17:27 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 23 19:36:36 2026 +0100"
      },
      "message": "* meson.build, meson_option.txt: Handle new HVF driver.\n\n(hvf): New option.\n"
    },
    {
      "commit": "39dab7d2cdc518b268ec0d86ce7a0092e95a7829",
      "tree": "774da3479ac782b0d792f52653b2bf604fe5496a",
      "parents": [
        "0c9b8e9e932265fcbcf6e4a2e9157d76e3b8019b"
      ],
      "author": {
        "name": "Debbie Goldsmith",
        "email": "goldsmit@apple.com",
        "time": "Mon Mar 02 07:11:40 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 23 19:36:36 2026 +0100"
      },
      "message": "* CMakeLists.txt: Handle new HVF driver.\n\n(FT_DISABLE_HVF): New option.\n"
    },
    {
      "commit": "0c9b8e9e932265fcbcf6e4a2e9157d76e3b8019b",
      "tree": "e166105811295eda208c2fbb51d1c987d5b22ba3",
      "parents": [
        "00e6a1bca9c5b5387c183d40f9c8146c0c1cddcc"
      ],
      "author": {
        "name": "Debbie Goldsmith",
        "email": "goldsmit@apple.com",
        "time": "Tue Mar 03 07:44:00 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 23 19:36:36 2026 +0100"
      },
      "message": "Support Hierarchical Variable Fonts (HVF) using Apple\u0027s \u0027libhvf\u0027 library.\n\nThe new \u0027hvf\u0027 module is a thin wrapper around \u0027libhvf\u0027 with the necessary\nboilerplate stuff to integrate it into FreeType.  Note that this currently\nworks on macOS \u003e\u003d 15.4 and iOS \u003e\u003d 18.4 only.\n\n* include/freetype/tttags.h (TTAG_hvgl, TTAG_hvpm): New macros.\n* include/freetype/config/ftmodule.h: Add `hvf_driver_class`.\n* include/freetype/internal/fttrace.h: Add tracing tags `hvfdrv`, `hvfobjs`,\n  and `hvfload`\n* include/freetype/internal/services/svfntfmt.h (FT_FONT_FORMAT_HVF): New\n  macro.\n\n* modules.cfg (FONT_MODULES): Add `hvf` module.\n\n* src/sfnt/sfobjc.s (sfnt_init_face): Handle \u0027hvgl\u0027 table.\n\n* src/hvf/*: New files.\n"
    },
    {
      "commit": "00e6a1bca9c5b5387c183d40f9c8146c0c1cddcc",
      "tree": "0ca0222a42ca3c8ec5e6604d15fa3464a32b6102",
      "parents": [
        "eb13f81a48d82e5957eeba7b08a6d061e86c462e"
      ],
      "author": {
        "name": "Debbie Goldsmith",
        "email": "goldsmit@apple.com",
        "time": "Tue Mar 03 07:39:12 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 23 19:36:36 2026 +0100"
      },
      "message": "Add flag `FT_CONFIG_OPTION_HVF`.\n\nThis flag is going to be used to conditionally compile support for Apple\u0027s\nHierarchical Variable Font (HVF) format.\n\n* devel/ftoption.h, include/freetype/config/ftoption.h\n  (FT_CONFIG_OPTION_HVF): New flag.\n"
    },
    {
      "commit": "eb13f81a48d82e5957eeba7b08a6d061e86c462e",
      "tree": "927c58799c6a7da77536f6e5a5f4e306e43e9aff",
      "parents": [
        "a3c1a452dffd4c2579cca9e92188593fa678abd3"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 23 14:26:02 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 23 14:26:02 2026 -0400"
      },
      "message": "* src/truetype/ttinterp.c (TT_MulFix14_i386):  Typo.\n\nFixes #1408."
    },
    {
      "commit": "a3c1a452dffd4c2579cca9e92188593fa678abd3",
      "tree": "8dba975f8948aeb1c818d3935893d13ecddce885",
      "parents": [
        "0a0221a1347e2f1e07c395263540026e9a0aa7c7"
      ],
      "author": {
        "name": "Rudi Heitbaum",
        "email": "rudi@heitbaum.com",
        "time": "Tue Mar 24 01:44:12 2026 +1100"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 23 10:44:12 2026 -0400"
      },
      "message": "* src/base/ftstroke.c (ft_stroke_border_get_counts): Remove variable.\n"
    },
    {
      "commit": "0a0221a1347e2f1e07c395263540026e9a0aa7c7",
      "tree": "589225074ab1eb876682820c482069693c251e88",
      "parents": [
        "402fa01ad977a0e4f10ca319423b76d59b7b40b4"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 22 16:07:10 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 22 16:07:10 2026 +0100"
      },
      "message": "* Version 2.14.3 released.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTag sources with `VER-2-14-3\u0027.\n\n* docs/VERSION.TXT: Add entry for version 2.14.3.\n* docs/CHANGES: Updated.\n* docs/release, docs/README, builds/macs/README: Updated.\n\n* README, src/base/ftver.rc, builds/windows/vc2010/index.html,\n  builds/windows/visualc/index.html, builds/windows/visualce/index.html,\n  builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,\n  docs/freetype-config.1: s/2.14.2/2.14.3/, s/2142/2143/.\n\n* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.\n\n* builds/unix/configure.raw (version_info): Set to 26:6:20.\n* CMakeLists.txt (VERSION_PATCH): Set to 3.\n"
    },
    {
      "commit": "402fa01ad977a0e4f10ca319423b76d59b7b40b4",
      "tree": "dc4712832336663296d2bbc0a76a82d7ae36e306",
      "parents": [
        "67c52a0b68eaeb7ae1f2248202924883c4a232d0"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 22 15:51:57 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 22 15:51:57 2026 +0100"
      },
      "message": "* subprojects/harfbuzz.wrap: Updated.\n"
    },
    {
      "commit": "67c52a0b68eaeb7ae1f2248202924883c4a232d0",
      "tree": "0fd0e8a53f696550f84cd51ff8196bfa6668cf37",
      "parents": [
        "238dd13d7d0f114d10ef7dc233538f4c2dea5405"
      ],
      "author": {
        "name": "David Pokora",
        "email": "david.pokora@trailofbits.com",
        "time": "Sun Mar 22 06:28:57 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 22 06:28:57 2026 +0100"
      },
      "message": "[psaux] Avoid stack overflow.\n\n* src/psaux/t1.decode.c (t1_decoder_parse_charstrings) [op_pop]: Check stack\n  size.\n\nFixes issue #1406.\n"
    },
    {
      "commit": "238dd13d7d0f114d10ef7dc233538f4c2dea5405",
      "tree": "3b6bf10513b794524157d9418197f1957ad5b2e2",
      "parents": [
        "78d65241aa880a75da047dbc77c2227571fdec34"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 22 06:22:31 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 22 06:22:31 2026 +0100"
      },
      "message": "* src/psaux/t1decide.c (t1_decoder_parse_charstrings): Fix bounds check.\n\nDuring charstring processing, the `decoder-\u003elen_buildchar` field can be\ncorrupted.  Avoid this by caching this value in a local variable at function\nentry.\n\nBased on a patch submitted by David Pokora \u003cdavid.pokora@trailofbits.com\u003e.\n\nFixes issue #1405.\n"
    },
    {
      "commit": "78d65241aa880a75da047dbc77c2227571fdec34",
      "tree": "f9b50af5bb520fb51c693462582d61e9de232a96",
      "parents": [
        "4130e62d23481aae7e61ded08ef3837859b62f69"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 20 08:06:02 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 20 08:06:02 2026 +0100"
      },
      "message": "ttnameid.h: Minor documentation improvement.\n"
    },
    {
      "commit": "4130e62d23481aae7e61ded08ef3837859b62f69",
      "tree": "b7650ce8b477332e443e14b3eba5803ae469c703",
      "parents": [
        "3d7c50d13c8332ee5dc683ef66a75fe34cfef6c6"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 20 07:44:55 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 20 07:47:10 2026 +0100"
      },
      "message": "* src/sdf/ftsdf.c (sdf_generate_bounding_box): Fix thinko.\n\nBug introduced in commit bda1d87f694dd.\n\nWe would need an `FT_NEW_ARRAY_MULT` array...\n\nReported as\n\n  https://issues.oss-fuzz.com/issues/494362618\n"
    },
    {
      "commit": "3d7c50d13c8332ee5dc683ef66a75fe34cfef6c6",
      "tree": "edf2c1ea343df9e029d68cc59d25725700687481",
      "parents": [
        "5846b6eda645090e10c30eca10b11167c2d13b77"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Mar 19 12:26:32 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Mar 19 12:26:32 2026 -0400"
      },
      "message": "[sfnt/COLRv0] Revise sanity checks.\n\nThis re-implements 6d62076a and potentially fixes #1404. \n\n* src/sfnt/ttcolr.c (tt_face_get_colr_layer): Rely on validated total num_layers."
    },
    {
      "commit": "5846b6eda645090e10c30eca10b11167c2d13b77",
      "tree": "5aabadd5f3111fece4306e9c06d3251e2e0d2de1",
      "parents": [
        "bda1d87f694dd228efd7fc93481afd3a9b415a03"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Mar 19 08:18:59 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Mar 19 08:18:59 2026 -0400"
      },
      "message": "* src/truetype/ttgload.c (TT_Process_Composite_Glyph): Fix allocation.\n\nFixes #1403, proposed by Chris Anderson."
    },
    {
      "commit": "bda1d87f694dd228efd7fc93481afd3a9b415a03",
      "tree": "5306056dc7b530572c288dc15add7f6e3ad5e801",
      "parents": [
        "264b5fbf5b912b39f98d038bf75d39be0a73f21b"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Wed Mar 18 14:45:57 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Wed Mar 18 14:45:57 2026 +0100"
      },
      "message": "* src/sdf/ftsdf.c (sdf_generate_bounding_box): Fix allocation.\n\nReported in\n\n  https://mail.gnu.org/archive/html/freetype-devel/2026-02/msg00005.html\n"
    },
    {
      "commit": "264b5fbf5b912b39f98d038bf75d39be0a73f21b",
      "tree": "99de7e508fedc1dffba70d9f64554912940c5832",
      "parents": [
        "99b479dc34728936b006679a31e12b8cf432fc55"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Wed Mar 11 17:27:07 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Wed Mar 11 17:27:07 2026 +0100"
      },
      "message": "Update all copyright notices.\n"
    },
    {
      "commit": "99b479dc34728936b006679a31e12b8cf432fc55",
      "tree": "9c0d207a2ab6c9344b2d1184079db8228b48c653",
      "parents": [
        "dc17b79e1acec15b1dcbfb669a4a46db08cd4656"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Mar 10 12:17:14 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Mar 10 12:17:14 2026 -0400"
      },
      "message": ".gitlab-ci.yml: Upgrade Windows pipelines.\n"
    },
    {
      "commit": "dc17b79e1acec15b1dcbfb669a4a46db08cd4656",
      "tree": "a0fa9757e0df586767c0466346206e01fb83a05b",
      "parents": [
        "e7d2cc6466d048b54aed94012e3ff3bf57e08c53"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 09 22:53:06 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 09 22:53:06 2026 -0400"
      },
      "message": "[base] Reintroduce overall rendering limits.\n\n* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Limit absolute\noutline coordinnates to prevent integer issues downstream.\n"
    },
    {
      "commit": "e7d2cc6466d048b54aed94012e3ff3bf57e08c53",
      "tree": "c580eeed5c0bca4ceda492ddab86b07f2b0ad7c2",
      "parents": [
        "06ec4ef4535861f27cc224a12be0799efbc5e364"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 09 22:14:01 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 09 22:14:01 2026 -0400"
      },
      "message": "* src/base/ftglyph.c (FT_Glyph_To_Bitmap): Fix memory leak.\n\nThis leak was introduced in 85c8efe0afa5ad by overlooking the\ndirect `ft_bitmap_glyph_init` call (now gone). Fixes #1399,\nalso reported earlier:\n  https://issues.oss-fuzz.com/issues/482909897.\n"
    },
    {
      "commit": "06ec4ef4535861f27cc224a12be0799efbc5e364",
      "tree": "c7be5f72708cf3c2245540e96e833167077eee8b",
      "parents": [
        "bf18015d3a40c84dedbbc154ccd1d41c3f7944b6"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 09 20:22:45 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 09 20:22:45 2026 -0400"
      },
      "message": "* src/raster/ftraster.c (Conic_To, Cubic_To): Avoid UB.\n\nFixes #1396.\n"
    },
    {
      "commit": "bf18015d3a40c84dedbbc154ccd1d41c3f7944b6",
      "tree": "242b2aad4d9cd2761f067d38d53b4cb696a5c964",
      "parents": [
        "93e7335adb2e6ab8ed6f6cf2714c9ef0eb3f3f96"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 09 19:53:30 2026 -0400"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Mon Mar 09 19:53:30 2026 -0400"
      },
      "message": "[stroker] Actually validate outlines.\n\nFixes #1400.\n\n* src/base/ftstroke.c (FT_Glyph_Stroke): Check for `GetCount` error.\n(ft_stroke_border_get_counts): Actually return expected error.\n(FT_Glyph_Stroke): Minor.\n"
    },
    {
      "commit": "93e7335adb2e6ab8ed6f6cf2714c9ef0eb3f3f96",
      "tree": "8ab708498bed2da9b4fb3770f2ccd8d07b89e127",
      "parents": [
        "1c6e43ab90af00261334c6cd214a5a33178eacd4"
      ],
      "author": {
        "name": "Miguel Sousa",
        "email": "@miguelsousa",
        "time": "Mon Mar 09 21:08:10 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 09 21:08:10 2026 +0100"
      },
      "message": "* src/sfnt/ttobjs.c (tt_size_init_bytecode): Be more generous.\n\nFixes issue #1137.\n"
    },
    {
      "commit": "1c6e43ab90af00261334c6cd214a5a33178eacd4",
      "tree": "5329964368782deb0592df6bc9e88920d68ffdfb",
      "parents": [
        "45556a19aab9502b91d6f30931e0cb5256f683f8"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 09 20:34:55 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 09 20:34:55 2026 +0100"
      },
      "message": "* src/sfnt/ttgpos.c (tt_face_load_gpos): Correctly release `gpos`.\n\nThis is a follow-up to issue #1398.\n"
    },
    {
      "commit": "45556a19aab9502b91d6f30931e0cb5256f683f8",
      "tree": "828bb03c1e17b2300a8e1f9d0ac74315a28644a2",
      "parents": [
        "a1079b181e569027a6f083c765f9ffdc44e78ba9"
      ],
      "author": {
        "name": "Dominik Röttsches",
        "email": "drott@chromium.org",
        "time": "Mon Mar 09 09:47:52 2026 +0200"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 09 10:44:19 2026 +0100"
      },
      "message": "[sfnt] Use array count in sanitization of `BaseGlyphPaintRecord` list.\n\n* src/sfnt/ttcolr.c (tt_face_load_colr): Compute correct length\n  of `BaseGlyphPaintRecord` array size.\n\nFixes issue #1397.\n"
    },
    {
      "commit": "a1079b181e569027a6f083c765f9ffdc44e78ba9",
      "tree": "d3334e474957b3e5126035ff6c5d28b174fa0e6b",
      "parents": [
        "6dc80885f4cfaa4d726c7344e9d300ba329fb5a3"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 09 05:50:43 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 09 05:50:43 2026 +0100"
      },
      "message": "* src/sfnt/ttgpos.c (tt_face_validate_pair_pos2): Correct limit check.\n\nFixes issue #1398.\n"
    },
    {
      "commit": "6dc80885f4cfaa4d726c7344e9d300ba329fb5a3",
      "tree": "dd8f2775dfc3539a0e1c0409dea0490e68dc3fce",
      "parents": [
        "31401a3b2d7a9c69c1c4292c59030fdd58402661"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 09 05:35:01 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 09 05:35:01 2026 +0100"
      },
      "message": "* src/truetype/ttgload.c (load_truetype_glyph): Limit recursion.\n\nFixes issue #1395.\n"
    },
    {
      "commit": "31401a3b2d7a9c69c1c4292c59030fdd58402661",
      "tree": "81ea0686524e0e9a68b3cda16dc404e9f8de55cd",
      "parents": [
        "aa8ca27f9b48bbb99f02d605b7dbf1d6a016cbcb"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Mar 07 22:46:57 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Mar 07 22:46:57 2026 -0500"
      },
      "message": "* src/raster/ftraster.c (Set_High_Precision): Limit size.\n\nThis should avoid integer overflows:\n   https://issues.oss-fuzz.com/issues/490433932\n   https://issues.oss-fuzz.com/issues/490464129\n"
    },
    {
      "commit": "aa8ca27f9b48bbb99f02d605b7dbf1d6a016cbcb",
      "tree": "20ed74a383caf5e911713e3eefc16ff42338dc40",
      "parents": [
        "5d249d8402a847b210baef887717111f7b90064a"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 06 07:17:59 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 06 07:17:59 2026 +0100"
      },
      "message": "[cid] Add boundary check in incremental interface.\n\n* src/cid/cidgload.c (cid_load_glyph) [FT_CONFIG_OPTION_INCREMENTAL]:\n  Validate `fd_select`.\n\nFixes issue #1394.\n"
    },
    {
      "commit": "5d249d8402a847b210baef887717111f7b90064a",
      "tree": "9e5a21ca8f20eab23f047239784160847a6a3014",
      "parents": [
        "b2c8a031a2f6fc1200868a8bee3175400cfb99fc"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 06 06:40:10 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 06 06:55:07 2026 +0100"
      },
      "message": "* src/sfnt/ttgpos.c (tt_face_get_pair_pos1_kerning): Typo.\n\nThis could lead to make FreeType miss some kerning pairs.\n\nFixes issue #1393.\n"
    },
    {
      "commit": "b2c8a031a2f6fc1200868a8bee3175400cfb99fc",
      "tree": "ec2d2772eda24bc82f4b585d2c8b79d3db2d92b1",
      "parents": [
        "6995a3462893e94043a89b1ddcef1520bcebb5d1"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 06 06:29:38 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Fri Mar 06 06:32:10 2026 +0100"
      },
      "message": "* src/sfnt/ttgpos.c (tt_face_get_class): Fix range check.\n\nFixes issue #1392.\n"
    },
    {
      "commit": "6995a3462893e94043a89b1ddcef1520bcebb5d1",
      "tree": "7762b924c92c22c64764b261bfa0ec284437bafd",
      "parents": [
        "d262bd978c3ea303289153dba1ae8a6dc4ac747a"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Mar 05 19:55:31 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Thu Mar 05 19:55:31 2026 -0500"
      },
      "message": "[base] Adjust rendering limits.\n\n* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Check width and\nheight directly. Fixes #1390.\n"
    },
    {
      "commit": "d262bd978c3ea303289153dba1ae8a6dc4ac747a",
      "tree": "6626c1e3046a0af92424fd09f1d81cdd6c4bb873",
      "parents": [
        "02f71ec67a5ef2c33fda93110ffc05dd8474cad1"
      ],
      "author": {
        "name": "Debbie Goldsmith",
        "email": "goldsmit@apple.com",
        "time": "Mon Mar 02 05:59:48 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Tue Mar 03 10:39:04 2026 +0100"
      },
      "message": "[truetype] Reject fonts without \u0027glyf\u0027 and \u0027loca\u0027 table.\n\n* src/truetype/ttobjs.c (tt_face_init): Add check.\n"
    },
    {
      "commit": "02f71ec67a5ef2c33fda93110ffc05dd8474cad1",
      "tree": "2b8fe4103b1952eb6663a0b3f57a3b30f68e8359",
      "parents": [
        "1ac5ed9a44944f40cce8867380dec8b57bec0924"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Tue Mar 03 08:00:15 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Tue Mar 03 08:00:15 2026 +0100"
      },
      "message": "Minor whitespace.\n"
    },
    {
      "commit": "1ac5ed9a44944f40cce8867380dec8b57bec0924",
      "tree": "9528cb30cb8cb743ed54a9049321d41c12dbb2d0",
      "parents": [
        "bf1f34d75ed4a36358e7a4ae6b21082d0d435b0e"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 02 07:07:26 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Tue Mar 03 07:25:53 2026 +0100"
      },
      "message": "CMakeLists.txt: Formatting.\n"
    },
    {
      "commit": "bf1f34d75ed4a36358e7a4ae6b21082d0d435b0e",
      "tree": "a9229d21aad3213953c71985a15bbdf4df4598f5",
      "parents": [
        "f4205da14867c5387cd6a329b90ee10a6df6eeff"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 02 08:30:20 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Mon Mar 02 08:30:20 2026 +0100"
      },
      "message": "* subprojects/*: Fix meson wrap files.\n"
    },
    {
      "commit": "f4205da14867c5387cd6a329b90ee10a6df6eeff",
      "tree": "eae964ec343082cde899593d5011f5ea4ffa44da",
      "parents": [
        "8fb4b4ac55cde6b6b936b2898624d6c1f80385e0"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 01 12:46:07 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 01 14:55:17 2026 +0100"
      },
      "message": "* Version 2.14.2 released.\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nTag sources with `VER-2-14-2\u0027.\n\n* docs/VERSION.TXT: Add entry for version 2.14.2.\n* docs/CHANGES: Updated.\n* docs/release, docs/README, builds/macs/README: Updated.\n\n* README, src/base/ftver.rc, builds/windows/vc2010/index.html,\n  builds/windows/visualc/index.html, builds/windows/visualce/index.html,\n  builds/wince/vc2005-ce/index.html, builds/wince/vc2008-ce/index.html,\n  docs/freetype-config.1: s/2.14.1/2.14.2/, s/2141/2142/.\n\n* include/freetype/freetype.h (FREETYPE_PATCH): Set to 2.\n\n* builds/unix/configure.raw (version_info): Set to 26:5:20.\n* CMakeLists.txt (VERSION_PATCH): Set to 2.\n"
    },
    {
      "commit": "8fb4b4ac55cde6b6b936b2898624d6c1f80385e0",
      "tree": "29a1a5429ec28930e1a49a8dfe9aec3b56089dff",
      "parents": [
        "109d617da2a3fc47bd525fb0346f8e0438eaa829"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 01 13:55:40 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 01 13:56:17 2026 +0100"
      },
      "message": "* subprojects/*.wrap: Updated.\n"
    },
    {
      "commit": "109d617da2a3fc47bd525fb0346f8e0438eaa829",
      "tree": "405fdba71d41d354191baa72de31a52638018cf3",
      "parents": [
        "459af335b9314bbbc9ec2f8306b7ed0c4773ad8a"
      ],
      "author": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 01 12:22:58 2026 +0100"
      },
      "committer": {
        "name": "Werner Lemberg",
        "email": "wl@gnu.org",
        "time": "Sun Mar 01 12:22:58 2026 +0100"
      },
      "message": "Very minor doc fixes.\n"
    },
    {
      "commit": "459af335b9314bbbc9ec2f8306b7ed0c4773ad8a",
      "tree": "f8da0126c2846fda4518e432dfbc73b4872bc3ca",
      "parents": [
        "31db10d922e9a16c45d240cbdbdd73fe61f4ea7f"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Feb 22 23:13:22 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sun Feb 22 23:13:22 2026 -0500"
      },
      "message": "[truetype] Clean up TT_Load_Context.\n\n* src/truetype/ttinterp.c (TT_Load_Context): Remove return type.\n* src/truetype/ttinterp.h (TT_Load_Context): Update signature.\n* src/truetype/ttobjs.c (tt_size_run_{fpgm,prep}): Update callers.\n* src/truetype/ttgload.c (tt_loader_init): Ditto.\n"
    },
    {
      "commit": "31db10d922e9a16c45d240cbdbdd73fe61f4ea7f",
      "tree": "c5c9ba8352526ce259c8edaaa147fe1d6614c6ca",
      "parents": [
        "c111f0713c08149402edbced631f07d35b171aea"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Feb 21 00:03:07 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Feb 21 00:03:07 2026 -0500"
      },
      "message": "[truetype] Use FT_QALLOC_MULT.\n\n* src/truetype/ttgxvar.c (tt_var_load_item_variation_store): Here.\nThis call provides builtin overflow protection. See #1382.\n"
    },
    {
      "commit": "c111f0713c08149402edbced631f07d35b171aea",
      "tree": "3bed46ce9bc34b32a7c1feaf0391cfc4d8c0c931",
      "parents": [
        "dd66971f3c8f1d4f3da5ba214072aedc8fad44a5"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri Feb 20 23:48:14 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri Feb 20 23:48:14 2026 -0500"
      },
      "message": "* src/base/ftbitmap.c (FT_Bitmap_Blend): Use FT_ALLOC_MULT.\n\nThis call is fortified with builtin overflow checks.\n"
    },
    {
      "commit": "dd66971f3c8f1d4f3da5ba214072aedc8fad44a5",
      "tree": "c2c712300eace091889776521ff1db58ce87cb03",
      "parents": [
        "be8e126ae0275ad181616f4dd66855908e1f7a75"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri Feb 20 23:29:30 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri Feb 20 23:29:30 2026 -0500"
      },
      "message": "[sdf] Substitute allocation macros.\n\n* src/sdf/ftsdf.c (sdf_generate_bounding_box,\nsdf_generate_with_overlaps): Use more robust macros.\n"
    },
    {
      "commit": "be8e126ae0275ad181616f4dd66855908e1f7a75",
      "tree": "9c6e7dd51502830ad966d29cb977b18a846398cc",
      "parents": [
        "156c7ea38f99de0d3827d0340fe6399325ef8cc7"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri Feb 20 22:50:50 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri Feb 20 22:50:50 2026 -0500"
      },
      "message": "[base] Clean up bitmap allocations.\n\n* src/base/src/base/ftobjs.c (ft_glyphslot_alloc_bitmap): Use preset\ndimensions and call FT_MEM_ALLOC_MULT.\n* include/freetype/internal/ftobjs.h (ft_glyphslot_alloc_bitmap):\nUpdated signature...\n* src/*: ... and all callers.\n"
    },
    {
      "commit": "156c7ea38f99de0d3827d0340fe6399325ef8cc7",
      "tree": "7f7a4bcb75738fb57ee6d2af810876687e268d0b",
      "parents": [
        "85c8efe0afa5ad0df35114e317a065f544943c52"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri Feb 20 07:55:43 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Fri Feb 20 07:55:43 2026 -0500"
      },
      "message": "* src/sfnt/ttcolr.c (tt_face_colr_blend_layer): Use FT_ALLOC_MULT.\n\nFixes #1389. The overflow is detected in ft_mem_qrealloc."
    },
    {
      "commit": "85c8efe0afa5ad0df35114e317a065f544943c52",
      "tree": "255f36a9fbd4c83b6f8e222400ae777f603f9b72",
      "parents": [
        "d41d4943410cb942e02e0a8866f39be02378ecf5"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Feb 07 19:20:05 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Feb 07 19:20:05 2026 -0500"
      },
      "message": "* src/base/ftglyph.c (ft_bitmap_glyph_init): Always copy in full.\n\nOther glyph formats never perform lazy copy.  Fixes #1385.\n"
    },
    {
      "commit": "d41d4943410cb942e02e0a8866f39be02378ecf5",
      "tree": "ee54c5c7775d5cd97c628aa48d713db09edbdd6e",
      "parents": [
        "e3a0652b6d706ee1ce77d4dda606b6597dd8b5c4"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Feb 07 11:03:25 2026 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Feb 07 11:03:25 2026 -0500"
      },
      "message": "* include/freetype/config/mac-support.h: Check for FT_MACINTOSH.\n\nFixes warnings reported in !414.\n"
    },
    {
      "commit": "e3a0652b6d706ee1ce77d4dda606b6597dd8b5c4",
      "tree": "ee87562e3dc33f0f34cb738dfda2c0729efd8e9b",
      "parents": [
        "676e8b8637f8e4ec8cfb5cba86549e4478f70631"
      ],
      "author": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Sat Dec 13 15:00:07 2025 -0500"
      },
      "committer": {
        "name": "Alexei Podtelezhnikov",
        "email": "apodtele@gmail.com",
        "time": "Tue Feb 03 20:34:35 2026 -0500"
      },
      "message": "[pshinter] Merge extrema and inflex analyses.\n\nAny point on the horizontal or vertical segment, which can either\nbe either extreme or inflection point is now marked.  This makes\nseparate inflection algorithm unnecessary.  This simplifies the\nalgorithm without noticeable rendering differences.\n\n* src/pshinter/pshalgo.c (psh_glyph_compute_extrema): Rewrite\nto detect both extrema and inflection points. Determine the\ntheir direction instantly.\n"
    }
  ],
  "next": "676e8b8637f8e4ec8cfb5cba86549e4478f70631"
}
