Here are the details of the support given in the Devroye Open Type font:

-Scripts supported: Cyrillic, Greek, and Latin.

-Languages supported: Cyrillic, Greek, English, Bulgarian, Baltic, Czech, Danish, German, Spanish, Finnish, French, Croatian, Hungarian, Icelandic, Italian, Dutch, Norwegian, Polish, Romanian, Slovenian, Swedish, Turkish, and Vietnamese.

- Extended Latin A and B glyphs are also included with this version for even wider linguistic support than mentioned above.   

- The following OpenType features are supported within this version, for all the laguages and scripts listed above:
1) Small Caps
2) Caps to Small Caps
3) Oldstyle Figures
4) Standard Ligatures
5) Discretionary Ligatures
6) Historical Forms
7) Stylistic Alternates
8) Kerning
9) Tabular Figures

- DEVROYE_.OTF contains 711 glyphs, including the Euro in both the Euro and the Currency cells. A Euro symbol substitution for OsF combinations is also included in the Small Caps feature.

- This font was designed and generated by Apostrophe. It is free for everyone to use personally or commercially, as long as it is not resold. If you have any questions about this, you should email apostrophe@apostrophiclab.com and ask.