summaryrefslogtreecommitdiff
path: root/language/turkish
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /language/turkish
Initial commit
Diffstat (limited to 'language/turkish')
-rw-r--r--language/turkish/README15
-rw-r--r--language/turkish/doc/tugpap.tex878
-rw-r--r--language/turkish/doc/turkish-hyphens.tex305
-rw-r--r--language/turkish/hyphen/turk_hyf.c84
-rw-r--r--language/turkish/inputs/sample.tex497
-rw-r--r--language/turkish/inputs/tkccode.tex62
l---------language/turkish/inputs/tkhyphen.tex1
-rw-r--r--language/turkish/inputs/tplain.tex1240
-rw-r--r--language/turkish/manifest15
-rw-r--r--language/turkish/mf/accsub.mf291
-rw-r--r--language/turkish/mf/aynhmz.mf48
-rw-r--r--language/turkish/mf/readme19
-rw-r--r--language/turkish/mf/tkaccl.mf454
-rw-r--r--language/turkish/mf/tkaccu.mf424
-rw-r--r--language/turkish/mf/tkacil.mf264
-rw-r--r--language/turkish/mf/tkdotl.mf441
-rw-r--r--language/turkish/mf/tkdotu.mf374
-rw-r--r--language/turkish/mf/tkdtil.mf269
-rw-r--r--language/turkish/mf/tkital.mf457
-rw-r--r--language/turkish/mf/tklig.mf36
-rw-r--r--language/turkish/mf/tkpnct.mf331
-rw-r--r--language/turkish/mf/tkroml.mf818
-rw-r--r--language/turkish/mf/tksub.mf24
-rw-r--r--language/turkish/mf/turkce.mf227
-rw-r--r--language/turkish/mf/turkit.mf198
-rw-r--r--language/turkish/mf/wtkr10.mf75
-rw-r--r--language/turkish/mf/wtkti10.mf75
-rw-r--r--language/turkish/misc/wtkr10.pl1714
-rw-r--r--language/turkish/misc/wtkti10.pl1847
29 files changed, 11483 insertions, 0 deletions
diff --git a/language/turkish/README b/language/turkish/README
new file mode 100644
index 0000000000..78186f3991
--- /dev/null
+++ b/language/turkish/README
@@ -0,0 +1,15 @@
+This is a first release of fonts and macros for Ottoman Turkish
+and Modern Turkish in Roman letter transcription. It is a
+do-it-yourself kit. You will have to run METAFONT to get the
+fonts, and make a tplain.fmt file using the input files in
+./inputs. Make sure that your environment does not grab the
+wrong hyphen.tex file. The correct one is in ./inputs.
+
+For further information:
+
+Email: mackay@june.cs.washington.edu Pierre A. MacKay
+Smail: Northwest Computing Support Group TUG Site Coordinator for
+ Lewis Hall, Mail Stop DW10 Unix-flavored TeX
+ University of Washington
+ Seattle, WA 98195
+ (206) 543-6259
diff --git a/language/turkish/doc/tugpap.tex b/language/turkish/doc/tugpap.tex
new file mode 100644
index 0000000000..36d5b1b804
--- /dev/null
+++ b/language/turkish/doc/tugpap.tex
@@ -0,0 +1,878 @@
+%**start of header
+\catcode`@=11 % borrow the private macros of PLAIN (with care)
+
+\newskip\ttglue
+
+\font\elevenrm=cmr10 scaled \magstephalf % roman text
+\font\eleventt=cmtt10 scaled \magstephalf % typewriter
+\font\elevenit=cmti10 scaled\magstephalf
+\font\ninebf=cmbx9
+\font\ninerm=cmr9
+\font\ninei=cmmi9
+\font\ninesy=cmsy9
+\font\ninett=cmtt9
+\font\ninesl=cmsl9
+\font\nineit=cmti9
+\font\sixi=cmmi6
+\font\sixsy=cmsy6
+\font\sixbf=cmbx6
+\skewchar\ninei='177
+\skewchar\ninesy='60
+\hyphenchar\ninett=-1
+
+\def\ninepoint{\def\rm{\fam0\ninerm}% set in nine point families
+ \textfont0=\ninerm \scriptfont0=\sixrm \scriptscriptfont0=\fiverm
+ \textfont1=\ninei \scriptfont1=\sixi \scriptscriptfont1=\fivei
+ \textfont2=\ninesy \scriptfont2=\sixsy \scriptscriptfont2=\fivesy
+ \textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+ \textfont\itfam=\nineit \def\it{\fam\itfam\nineit}% \it is family 4
+ \textfont\slfam=\ninesl \def\sl{\fam\slfam\ninesl}% \sl is family 5
+ \textfont\bffam=\ninebf \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf \def\bf{\fam\bffam\ninebf}% \bf is family 6
+ \textfont\ttfam=\ninett \def\tt{\fam\ttfam\ninett}% \tt is family 7
+ \tt \ttglue=.5em plus.25em minus.15em
+ \normalbaselineskip=11pt
+ \setbox\strutbox=\hbox{\vrule height8pt depth3pt width0pt}% strut for 11pt
+ \let\sc=\sevenrm \normalbaselines\rm}
+
+\font\scaps=cmcsc10 % for \LaTeX
+\font\lb=logobf10
+\chardef\bs=`\\ % backslash in a string
+\def\;#1{{\it #1\/}} % The simplest and most useful of all.
+
+\input mftmac
+\parindent=1.5pc % restore after mftmac clobbered it
+
+\font\ninetex=cmtex9 \hyphenchar\ninetex=-1
+\def\finstring"#1"{\ninetex"#1"\egroup}
+
+\def\Beginmft{\par\begingroup\ninepoint
+% \chardef:=`\: \chardef!=`\! % \chardef==`\=
+ \catcode`\:=12 \catcode`\!=12 \catcode`\==12
+ \def\mathsemicolon{\mskip\thickmuskip}
+ \let\;=\mathsemicolon
+ % nine-point type:
+ \def\bf{\fam\bffam\ninebf
+ \def\_{\kern.04em\vbox{\hrule width.3em height .6pt}\kern.08em}%
+ \ninebf}
+ \textfont\bffam=\ninebf \scriptfont\bffam=\sixbf
+ \scriptscriptfont\bffam=\fivebf
+ \baselineskip=11pt
+ \def\MF{{\manual hijk}\-{\manual lmnj}}
+ \let\big=\ninebig
+ \setbox\strutbox=\hbox{\vrule height8pt depth3pt width0pt}
+ \rm
+ \setbox\shorthyf=\hbox{-\kern-.05em}
+ \parindent=0pt
+ }
+\def\Endmft{\par
+ \endgroup}
+
+\input tkccode
+\font\tentk=tkr10
+% \font\elvntk=tkr11
+\font\tenti=tkti10
+% \font\elvnti=tkti11
+
+\def\BeginTurkish{\par \begingroup
+% \chardef:=`\: \chardef!=`\! % \chardef==`\=
+ \def\`{\char'43}\def\'{\char'100}%
+ \catcode`\:=12 \catcode`\!=12 \catcode`\==12
+ \sfcode`\:=1000 \sfcode`\!=1000 \sfcode`\==1000 % Frenchspacing after
+% these
+ }
+\def\EndTurkish{\par %let's be quite certain about this!
+ \endgroup}
+\def\verbatim#1{\begingroup\ninepoint \frenchspacing
+ \def\do##1{\catcode`##1=12 } \dospecials
+ \catcode`\:=12 \catcode`\!=12 \catcode`\==12
+ \parskip 0pt \parindent 0pt
+ \catcode`\ =\active \catcode`\^^M=\active
+ \tt \def\par{\ \endgraf}\overfullrule=0pt \obeylines \obeyspaces
+ \input #1 \endgroup}
+% a blank line will be typeset at the end of the file;
+% if you're unlucky it will appear on a page by itself!
+{\obeyspaces\global\let =\ }
+
+\font\titlefont=cmr17
+\font\namefont=cmcsc10 scaled \magstep1
+\font\twelvebd=cmbx12
+\font\sixrm=cmr6
+
+\vsize=43pc
+\hsize=29pc
+\parindent=16pt
+\nopagenumbers
+\normalbaselines
+\footline={\hss\sixrm\folio\hss}
+\def\makefootline{\baselineskip3pc\line{\the\footline}}
+\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
+ \advancepageno
+ \vsize=45pc
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}
+\def\makeheadline{\vbox to\z@{\vskip-22.5\p@
+ \line{\vbox to8.5\p@{}\ifnum\count0=1
+ \else\ifodd\count0
+ \hfill\the\doctitle\ignorespaces
+ \else \the\authorname\hfill\fi\fi}\vss}\nointerlineskip}
+
+\newtoks\doctitle \newtoks\authorname
+
+\doctitle={The Ottoman Texts Project}
+\authorname={Walter Andrews and Pierre MacKay}
+% Added to the general format file
+% an addition needed by mftmac
+\def\ninebig#1{{\hbox{$\textfont0=\tenrm\textfont2=\tensy
+ \left#1\vbox to7.25pt{}\right.\n@space$}}}
+\catcode`@=12 % at signs are no longer letters
+\tenrm
+\begingroup
+\titlefont
+\the\doctitle\hfil
+\vskip 3pc
+\namefont\the\authorname\hfil
+\tenrm
+\vskip 1pc
+{\obeylines
+Department of Near Eastern Languages and Civilization
+University of Washington
+Seattle, Washington 98195
+}
+\vskip 3pc
+\line{\hfill\twelvebd ABSTRACT\hfill}
+\vskip 3pc
+\leftskip 4pc \rightskip 4pc
+The Turkish orthographic reform of 1928, which required the abandonment
+of Arabic script in favor of a Latin letter alphabet, was accompanied
+by a cultural rejection of all literature from the
+Ottoman period of Turkish history. As a result, only a small part of
+Ottoman Turkish literature has been made available in scholarly editions
+in the new orthography. The Ottoman Texts Project is a cooperative
+effort of Turkish and North American scholars to provide new editions
+of these works using popular low-priced personal computer systems and
+standard general purpose software. This paper describes an approach
+based on the adoption of \TeX\ as the preferred output system for
+publication.
+\par
+\endgroup
+\vskip 3pc
+%**end of header
+\font\eightrm=cmr8
+\def\sc{\eightrm}
+
+\font\huge=cmr17 scaled \magstep2
+\def\dropinitial#1#2{\def\biginitial#1{{\huge#1}}%
+ \def\makeinitial#1{\setbox8\hbox{\strut\vbox to 1.3ex
+ {\hbox{\biginitial#1}\vskip -4pc plus 3.5pc minus 3.5pc}}}%
+ \makeinitial#1%
+ \ifdim\parindent>1.3\wd8\dimen8=\parindent
+ \else\dimen8=1.3\wd8\fi
+ \hangindent=\dimen8\hangafter=-2
+ \noindent
+ \strut\hskip-1\dimen8\box8{\sc#2}}%
+
+\noindent
+The Ottoman Texts editing and typesetting project
+represents an attempt to provide a simple, low-cost
+system for the entry, editing, and typesetting of
+transcribed [romanized] Ottoman Turkish texts. The
+purpose of developing such a system was to take advantage
+of the increasing availability of microcomputers
+world-wide and to induce the editors of Ottoman texts--
+especially Turkish editors--to employ electronic media
+for their editing tasks. The benefits to scholars of
+having a large corpus of texts available in
+machine-readable form seem obvious, but overcoming
+``technology cringe'' on the part of scholars whose
+devotion to medieval literature stems in large part from
+a strong conservative-traditionalist ideological bent is
+no small task. Nonetheless, the rewards of converting a
+significant number of such scholars would be quite high.
+The vast majority of significant Ottoman Turkish texts
+await up-to-date editing and the suggested technological
+change could have a major impact on the speed and
+accuracy of the editing process as well as on the
+development of lexicographical tools and on many areas of
+literary and linguistic study.
+
+ The situation in Ottoman studies that makes a
+switch to electronic media especially attractive at this
+time is rather complex and demands some historical
+introduction. From its earliest years at about the
+beginning of the 14th century until early in the 20th
+century, the Ottoman dialect of Turkish was written in
+the Arabic script. The political decline of the Ottoman
+Empire from its pinnacle of world power in the 16th
+century to its status as a moribund, defeated ally of
+Germany following World War I, was arrested in the first
+three decades of this century by a political and
+ideological revolution that saw the establishment of a
+Turkish Republic and an accompanying rejection of the
+literary, cultural, and religious institutions of the
+Ottoman past. One aspect of the cultural revolution was
+the adoption of a latin letter alphabet for Turkish, a
+change which had among its
+consequences the expansion of literacy beyond a small
+elite circle to the general populace, a conscious effort
+to simplify the written language, and a resultant major
+decline in the ability to read and comprehend the Ottoman
+literary language in any of its forms. The ethos of the
+early years of the Republic, to which the Ottoman Empire
+appeared as decadent and its culture as derivative, also
+meant that, at a time when the scholarly edition of older
+texts was becoming a growing concern in other parts of
+the world, in Turkey interest in things Ottoman,
+including Ottoman texts, was considered backward,
+anti-nationalist, counter-revolutionary, and
+wrong-headed. As a result, very few texts were
+adequately edited and the population in general was
+further cut off from its historical past. Since the
+Second World War, however, there has been an increased
+scholarly interest in Ottoman texts and in the
+transcription and edition of such texts. This interest
+has grown with the growth of a tolerance for some
+reemergences of older ethical, religious, and cultural
+practices and attitudes.
+
+ It is clear that the particular situation in
+Turkey today lends itself to the adoption of editing
+methodologies that take advantage of computer technology:
+there is a large cadre of well-educated persons with very
+positive attitudes toward technological innovation; the
+Latin alphabet is used [with modifications for Ottoman
+transcription]; most of the basic editing work remains to
+be done; there is already great interest in the types of
+concordancing, indexing, lexicographical analysis, etc.
+that can be most easily done by computers. Nonetheless,
+Ottoman studies is still an area that attracts persons
+who would be least likely to welcome technological
+innovation and so any change would need to bring
+immediate and obvious benefits. When the editing project
+was initiated, it was decided that the result should have
+the following characteristics:
+
+\medskip
+\noindent1.\quad It should be easy to use even for the most
+unsophisticated user.
+
+\noindent2.\quad It should be adaptable to many different
+circumstances and should be easily supportable.
+
+\noindent3.\quad It should obviously eliminate the need for
+more than one entry of the basic text. [This is, of
+course, common to all computer word-processing systems
+but it is such a major departure from the usual round of
+draft typings that its benefits must be emphasized to
+those who have not experienced it.]
+
+\noindent4.\quad It should be capable of producing typeset
+camera-ready copy for printing. [This is a major
+potential benefit even in Turkey where the costs of more
+labor-intensive typesetting methods are growing rapidly.]
+
+\medskip
+
+ The project developed in several stages and was
+not without its problems and false starts. The first
+stage involved convincing a noted Turkish scholar and
+respected editor of Ottoman texts to come to the
+University of Washington to attempt to edit the collected
+poems of a 16th century Ottoman poet using the IBM XT
+already employed by the Department of Near Eastern
+Languages and Civilizations for the development of
+Turkish character-sets. Scholarly processes being what
+they are it turned out to be easier to bring the scholar
+than to have the necessary word-processing capabilities
+ready when he arrived. As a result, a rather cumbersome
+combination of Microsoft's WORD, Rosesoft's ``smart key''
+program [PROKEY], and a series of BASIC programs
+developed by Robert Blum of the UW administration was
+used to enable the Turkish visitor to input and edit
+about 90\% of the poems in the collection [over 500 poems]
+in about three months. The editor, who had had no
+previous experience of computers and no particular liking
+or aptitude for them, was an eager and willing convert to
+the process. Prior to his departure, we were also able
+to employ a simple translation program which converted
+the character-set designed for the XT to \TeX\ notation
+and, subsequently, to produce a typeset sample of the
+edited text on the SUN
+minicomputer. The reaction of our visitor to the
+results of this process, which was carried out with the
+help of two fellow scholars without the intervention of
+typists or typesetters, was pure delight and amazement.
+
+ In the ensuing months the project has been
+considerably refined and improved. With the invaluable
+assistance of the UW Humanities and Arts Computing
+Center and its resident character-sets guru, Gerald
+Barnett, we have been able to develop a word-processing
+system that is simple, efficient, flexible, and low-cost.
+The system is based on Quicksoft's PC WRITE program used
+with EGA/VGA and compatable graphics hardware.\footnote{$^*$}{NOTE: At
+present, the system produces a host of irritating ``ghost
+diacritics'' when used with the IBM PS 2 graphics--these
+are a distraction more than a real hinderance but, as
+yet, we have no idea why they occur.} The advantages of
+PC WRITE for this kind of word-processing are numerous
+but it is worth mentioning a few in some detail.
+
+ Given the goal of making this technology widely
+available among scholars and students [especially among
+foreign students and scholars], the fact that PC WRITE is
+low-cost, share-ware [\$89.00 with full support] makes it an
+attractive alternative. Moreover, PC WRITE permits
+virtually limitless customization of keyboards, fonts,
+printer controls, etc. in a manner accessible to persons
+without any knowledge of programming or programming
+languages. Using a simple set of programs--a program
+designed at Duke University for the creation of
+characters for display on an EGA driven monitor and a
+program being developed by Gerald Barnett of the UW for
+the production of downloadable printer fonts--we have
+been able to produce a word processing system that can
+display and edit an extended IBM character-set, which
+will allow the use of modern [roman alphabet] Turkish,
+the romanized transcription of Ottoman Turkish [Arabic
+alphabet], and a full English characters font. One can
+also switch instantly between a standard IBM
+keyboard, an IBM keyboard adapted to Turkish
+characters, and the standard Turkish keyboard with
+extensions for the Ottoman character-set. In addition,
+the system supports draft printing on the IBM Pro Printer
+and letter quality printing on the NEC and Toshiba 24 pin
+printers [with the use of a bi-directional tractor].
+
+ The extended IBM character-set uses 8 of the
+special European characters, 32 special Ottoman
+transcription characters [on ASCII codes 192--223], and 9
+special modern Turkish characters [on ASCII codes
+225--233], as well as the full English set. All of the
+modern Turkish characters appear as characters on the
+modified standard keyboard. The Ottoman Turkish
+characters [standard English characters with diacritics]
+are called up by two-key sequences. For example, a ``d''
+with a dot under it is produced by striking ``/'' followed
+by ``d''; all other special Ottoman characters are produced
+by the same sequence [``/''$+$``character'']. Keyboard
+arrangement and the particular character used to call up
+the special characters can be easily modified to suit the
+preferences of the user.
+
+ One fortunate aspect of the print control features of PC
+WRITE for this project
+is that the print control program can be set up to
+support two different fonts for each character.
+Therefore, \TeX\ notation can be provided as an alternative
+for each character and translation from the usual
+word-processor font to \TeX\ notation can be done
+automatically by simply printing in the \TeX\ input character set to
+another file. Because PC WRITE produces ``clean'' ASCII
+files, the material is immediately ready for typesetting
+in whatever \TeX\ environment is being used.
+
+\medskip
+\centerline{{\elevenrm Accented character sets in \TeX}}
+\smallskip
+
+\noindent
+In the few years since
+the official release of \TeX, a number of
+attempts have been made to adapt the program to languages other than
+English. The best known successes have depended on adaptations of the
+program itself, partly because the standard release of \TeX\ can
+support only one system of hyphenation at a time, which makes a truly
+bilingual document quite difficult to produce. These adaptations may
+be broadly classed as program-based extensions of the language. The
+extension which is most obviously necessary is the addition of a
+primitive which can control the switch between one predigested
+hyphenation pattern and another. Michael Ferguson's bilingual CNRS-\TeX,
+which was initially developed for an environment in the province of
+Quebec, where French and English are constantly intermingled, is one
+of the outstanding developments in this class of adaptations, and
+there are others as well.
+
+A second extension is needed to get around the problem of hyphenation
+in languages which make use of diacriticals and accents. The basic
+form of \TeX\ will reject any word containing an accent from the
+evaluation routine
+which normally looks for acceptable hyphenation breaks. In effect,
+any word with an accent is treated as if it were an unbreakable
+horizontal box, and is not evaluated for hyphenation at all. This can
+make line-breaking very difficult, and several users of \TeX\ have
+found it necessary to introduce a loop into the program so that
+accents and diacriticals will be stripped out just before the entry to
+the hyphenation routine, and then returned to their remembered positions
+after the discretionary hyphen nodes have been inserted into the word.
+
+The disadvantage of both these systems is that the adapted program is no
+longer \TeX. It is often possible to add the extra features in such a way
+that the resultant program will produce {\tt DVI} files that are
+indistinguishable from those generated by \TeX, but the extra features
+are not generally available on all systems which run \TeX, and the
+user is often excluded, therefore, from some of the most popular small
+system versions of \TeX.
+
+An alternative solution to the problem of accented languages, though
+not of bilingual hyphenation patterns, is a font-based, rather than a
+program-based approach. Font characters may be generated with the
+accents already applied, and mapped into unused or little-used areas
+of the normal Computer Modern font table. If these characters are
+then supplied with an appropriate \TeX\ {\tt\bs lccode} value, the
+hyphenation loop will recognize them as part of a sequence capable of
+being hyphenated. For a monolingual application in a language which
+makes intensive use of accents and diacriticals, this can be an
+attractive approach, especially when there are reasons for wishing to
+preserve the ability to make use of small system versions of \TeX.
+This is the approach we have taken for Turkish \TeX.
+
+Turkish provides a delightfully vivid set of examples of accentuation
+and hyphenation. The Latin-letter character set which has been in
+use since the orthographic reform of 1928 is extended, even in Modern
+Turkish, by means of a considerable number of diacriticals and accents. A
+diligent search through the modern dictionary will produce several
+five- and six-letter words in which every character is accented, and an
+intensive search might come up with words as much as nine letters long
+with every character accented. In critical editions of Ottoman texts,
+the number of accents more than doubles. Modern Turkish knows only
+the accented and unaccented pair of letters `{\bf s}' and `{\bf\c s}', but
+Ottoman Turkish has `{\bf s}', `{\bf\c s}', `{\bf\d s}' and `{\bf\b s}', which
+represent four completely distinct characters in the Arabic alphabet.
+The letter `{\bf h}' shows almost as much variety, and so do several
+others. Our Ottoman Turkish font has twenty-seven accent and letter
+composites, in addition to the basic twenty-six simple Latin letters.
+Moreover, all composites can exist in upper case forms as well as in
+lower case.
+
+When a character set is as heavily accented as this, it is desirable
+to make sure that the accents are positioned over their letters as
+exactly as possible. The {\tt\bs accent} primitive in \TeX\ does a
+remarkably good job of positioning accents, but it depends on a very
+general algorithm, and tends to place accents exactly centered over
+or under the affected character, no matter what the appearance of
+that character may be. Donald Knuth recognized this limitation in
+the very earliest stages of the development of \TeX, and has
+consistently recommended that frequently used combinations of
+character and accent be developed as composite single images in the
+font. The center of a character is not always the best visual
+position for an accent; top accents should often be slipped just a
+bit to the right, and bottom accents just a bit to the left of the
+mechanically defined centerline of the character. Height and depth
+of accents are similarly subject to aesthetic judgement.
+The{\tt\bs accent} primitive of \TeX\ works very well indeed for
+sparsely occurring accentuation, but not so well when accents occur
+in every second word.
+
+The problem of hyphenation in Turkish is even more striking. Turkish
+is known as an ``agglutinating'' language, which means, in effect that
+each discrete logico-syntactic qualification of a basic word is
+expressed in a single syllable tacked onto all the other syllables in
+the word. At the same time, it is a language in which consonant
+clusters are virtually unknown. A Turkish word is made up of simple
+open and closed syllables, of the form {\tt cv} or {\tt cvc}, and in
+native words there is not even the distinction between long and short
+vowels. The result is a language in which word-length tends to be
+greater than it is even in English, and where, as a result,
+hyphenation is often necessary. The hyphenation rules are inherited
+from the syllabification of Arabic. A syllable is assumed always to
+consist of an initial consonant (even when that consonant is no longer
+written) and to terminate in a vowel or in the next unvowelled
+consonant. This pattern is followed so absolutely that it is
+permitted to break up native Turkish suffixes. The plural suffix \;{
+-ler-} will be hyphenated as \;{-le-rine} in an environment where
+the {\tt -cv-cv-cv} pattern predominates.
+
+A set of hyphenation patterns for Turkish will therefore be quite
+simple to produce, but it will have no effect on most Turkish words
+unless something is done about the problem of accents. A word such as
+\;{\c cektirilebilecek} ought to provide six discretionary
+hyphenation nodes: \;{\c cek-ti-ri-le-bi-le-cek}, but the {\tt\bs
+accent} primitive applied to the first letter will guarantee that the
+standard version of \TeX\ gives up any attempt to hyphenate it at
+all.\footnote{$^*$}{The word is a future participle, and describes
+something as being
+capable of being extracted at some time in the future--like a tooth.
+A morphological division of the word would produce a very different
+hyphenation pattern, \;{\c cek-tir-il-e-bil-ecek}, with only five nodes.}
+If the initial letter `{\bf \c c}' were a single character in a special
+font, and were provided with an {\tt\bs lccode} value, the {\tt\bs
+accent} primitive would no longer appear, and the word could be
+evaluated for hyphenation.
+
+Since the majority of \TeX\ users will never have to deal with {\tt\bs
+lccode}s at all, a word of explanation is in order here. \TeX\
+is designed to take care of the problems of typesetting in a
+general manner, independent of the language of the text to be
+set. The program recognizes that while many languages have
+paired upper and lower case character sets, not all do, and the
+order of the basic text character set may not be that of the
+Latin alphabet. For this reason, specific upper and lower case
+pairings are not built into the program, but are supplied by
+macro definitions in {\tt plain.tex}. Like all other
+definitions in plain.tex, they may be replaced, and it is quite
+possible to dispense with plain.tex altogether, and substitute
+another basic format file such as {\tt sadece.tex}, {\tt
+franc.tex}, {\tt einfach.tex} or {\tt sketo.tex}. (Knuth
+insists, for obvious reasons, that the one thing you may not call it is
+``plain.tex.'') If additional characters such as the accented letters
+of Turkish are made part of the basic input coding table, then they
+are likely to exist in upper and lower case pairs. Each lower case
+code is given itself as a lower case {\tt\bs lccode}, and the code of
+its upper case equivalent as its {\tt\bs uccode}. These can be used
+to force conversion from one case to the other, but the {\tt\bs
+lccode} serves an additional purpose. When \TeX\ enters the program
+loop which searches for discretionary hyphen nodes in each word, it
+first unpicks all ligatures such as {\bf ffi} and then evaluates the
+resultant list from the beginning,
+working on any given word only so long as every character it
+finds has a valid {\tt\bs lccode}. Any node that is not a simple
+character with a valid {\tt\bs lccode} causes the routine to terminate;
+the sequence so marked is supplied with no discretionary
+hyphen nodes at all, and therefore cannot be broken by the
+line-breaking algorithm. This is what prevents hyphenation in the
+case of the Turkish word given above.
+
+\medskip
+\centerline{\elevenrm Input Code Interpretation}
+\smallskip
+
+\noindent
+The Turkish text-editing system described above
+is driven from a keyboard mapped to conform as
+closely as possible to the standard Turkish typewriter keyboard.
+This mapping is not used directly in the design of the Ottoman
+Turkish font and, in its present form,
+is isolated from the actual \TeX\ input. After the
+raw input has been corrected, it is passed through a filter which
+converts the accented characters into character pairs (or, in a very
+few instances, into \TeX\ command sequences). These pairings are
+based on a proposal made more than ten years ago at the Orientalist
+Congress held in Paris, in 1974. Owing to the extraordinary richness
+of the Ottoman Turkish character set, it has been necessary to extend
+the old proposal, but it still retains the original principles, which
+are closely associated with the coding scheme used by the Onomasticon
+Arabicum project. The Onomasticon Arabicum uses a post-positive dot
+and a post-positive hyphen to indicate diacriticals, which is
+acceptable in a data-base of names, but not in continuous prose text.
+To provide the indications for Ottoman Turkish diacriticals,
+we have taken over the exclamation
+point `{\tt!}', the equals sign `{\tt=}', and the colon `{\tt:}'.
+
+The exclamation point is used for all the ``emphatic'' letters of the
+Arabic alphabet (the alphabet in which Turkish was written until
+1928). These are the letters \;{\d Dad} (usually pronounced as `{\bf z}' in
+Turkish, and hence paired with a non-Arabic letter known as \;{\.Zad}),
+\;{\d Sad}, \;{\d Ha'}, \;{\d Ta'} and \;{\d Za'}.
+The equals sign is used for all the
+consonants which are represented in Latin-letter transcriptions by a
+letter with a bar under, such as {\bf\b d} (\;{dhal}), more
+commonly written in
+Turkish as `{\bf\b z}', and also for vowels with a macron or, following the
+Turkish convention, a `hat' accent, and similar forms, chosen like the
+cupped `{\bf\u g}', because the equals sign is visually closer than the colon
+is. (Moreover, the colon is needed for a different variety of the
+letter `{\bf g}'.) The colon is a catch-all for everything else, but works
+out rather well visually, as it happens. The three post-positives are
+not accents, but regular characters, which use the \TeX\ convention of
+ligatures to invoke accented characters from the font, just as the
+second `{\bf f$\,$}' in the normal \TeX\ `{\bf ff}'
+ligature pair does. If a standard
+Latin-letter character does not have an associated ligature table in
+the font, a following colon will be unaffected.
+Thus, the letter `{\bf o}',
+when followed by a colon will produce `{\bf\"o}', but the letter `{\bf e}' when
+followed by a colon will produce `{\bf e:}'. The equals sign is returned to
+its normal function in math mode, and the colon and exclamation point
+can be invoked by the command sequences {\tt\bs:} and {\tt\bs bang}
+when the simple character will not work.
+
+This set of conventions produces an input file which can, if
+necessary, be edited on a ordinary terminal lacking the special
+Turkish character features, and which a Turkish speaker can become
+accustomed to without too much difficulty. When coupled with a
+well-designed macro file and a rewritten hyphenation table, it
+provides the possibility of naturalizing a \TeX\ environment into
+Turkish without any large investment in special purpose hardware and
+rewritten versions of non-standard (non-)\TeX.
+
+\medskip
+\centerline{\elevenrm The Font}
+\smallskip
+
+\noindent
+Donald Knuth's Computer Modern fonts come with a wide range of accents, which
+cover most of the requirements for Turkish. The only obvious lack is
+the flat cup which is used under both upper and lower case `{\bf h}' as
+an aesthetic variant for the simple bar under the letter. All the
+existing accents in Computer Modern are designed for consistency
+with the stroke-weights and proportions of the underlying alphabetic
+characters, and it is therefore very desirable to
+retain the details of this design in any associated font of accented
+characters. The vertical and horizontal positions
+may be altered and, for other languages than Turkish, the angle of
+acute and grave accents over upper case letters, but the basic
+proportions of each accent or diacritical remain unchanged. This is
+achieved by taking over the entire text of the Computer Modern
+character file {\tt accent.mf} and converting the {\tt beginchar
+$\ldots$ endchar} pairs to {\tt def} and {\tt enddef}. It is
+not quite so easy as that, but the process is essentially mechanical,
+and guarantees the preservation of all the essential design details for
+each accent. (The flat cup under `{\bf h}' is based on the slavic tie
+accent, turned upside down.) The resultant file, {\tt accdef.mf},
+is now full of ``definitions'' which can be
+invoked as part of the program file for composite characters.
+Positioning, however, can not be entirely taken care of in the
+{\tt accdef.mf} file. The accents in {\tt accent.mf}
+are, for the most part, designed with a fixed reference
+point at the top of the image, but correct positioning usually
+requires a knowledge of where the bottom edge will be. It is
+herefore necessary to take some of the calculations from the accent
+definitions, and incorporate them into the description of the
+underlying character. For example, the superscript dot accent in the
+Computer Modern font is produced as follows.
+\medskip
+\Beginmft
+$\2{iff}\\{ligs}>0\?\2{cmchar}\7"Dot accent";$\par
+$\2{numeric}\\{dot\_diam}\SH ;\ \\{dot\_diam}\SH =\1{max}(\\{dot\_size}\SH ,%
+\\{cap\_curve}\SH );$\par
+$\2{beginchar}(\1{oct}\7"137",5u\SH ,\1{min}(\\{asc\_height}\SH ,\frac10/{7}%
+\\{x\_height}\SH +.5\\{dot\_diam}\SH ),0);$\par
+$\2{define\_whole\_blacker\_pixels}(\\{dot\_diam});$\par
+$\2{italcorr}h\SH \ast \\{slant}+.5\\{dot\_diam}\SH -2u\SH ;$\par
+$\2{adjust\_fit}(0,0);$\par
+$\2{pickup}\\{tiny}.\\{nib};\ \\{pos}_{1}(\\{dot\_diam},0);\ \\{pos}_{2}(\\{dot%
+\_diam},90);$\par
+$x_{1}=x_{2}=.5w;\ \\{top}\,y_{2r}=h+1;$\par
+$\2{if}\\{bot}\,y_{2l}<\\{x\_height}+o+\\{slab}\?y_{2l}:=\1{min}(y_{2r}-%
+\\{eps},\\{x\_height}+o+\\{slab}+.5\\{tiny});\3{fi}$\par
+$y_{1}=.5[y_{2l},y_{2r}];\ \\{dot}(1,2);\ \9 dot\par
+$\2{penlabels}(1,2);\3{endchar};$\par
+\Endmft
+\medskip
+
+\noindent
+The corresponding {\tt accdef.mf} definition is
+
+\medskip
+\Beginmft
+$\2{def}\\{dot\_accent}(\2{suffix}\$,@)(\2{expr}\\{dotY\_shift})=$\par
+$\2{save}@;$\par
+$\2{forsuffixes}\\{\$\$}=@,@_{\_}\?\2{transform}\\{\$\$};\3{endfor}$\par
+$\2{numeric}\\{dh}\SH ;\ \\{dh}\SH :=\1{min}(\\{asc\_height}\SH ,\frac10/{7}%
+\\{x\_height}\SH +.5\\{dot\_diam}\SH );$\par
+$\2{define\_whole\_blacker\_pixels}(\\{dh},\\{dot\_diam});$\par
+$\2{pickup}\\{tiny}.\\{nib};\ \\{pos}_{@\_1}(\\{dot\_diam},0);\ \\{pos}_{@\_2}(%
+\\{dot\_diam},90);$\par
+$x_{@\_1}=x_{@\_2}=x_{\$};\ \\{top}\,y_{@\_2r}=\\{dh}+1;$\par
+$\2{if}\\{bot}\,y_{@\_2l}<\\{x\_height}+o+\\{slab}\?y_{@\_2l}:=\1{min}(y_{@%
+\_2r}-\\{eps},\\{x\_height}+o+\\{slab}+.5\\{tiny});\3{fi}$\par
+$y_{@\_1}=.5[y_{@\_2l},y_{@\_2r}];$\par
+$\2{numeric}\\{dot\_span};\ \\{dot\_span}=\\{dh}-\\{bot}\,y_{@\_2l};$\par
+$@=\\{identity}\2{if}\\{dotY\_shift}<>0\?\6{shifted}(0,\\{dotY\_shift}+\\{dot%
+\_span})\3{fi};$\par
+$\2{for}n=1,2\?\2{forsuffixes}e=l,,r\?$\par
+\quad$z_{@}[n]e=z_{@\_}[n]e\6{transformed}@;\3{endfor}\3{endfor}$\par
+$\\{dot}(@_{1},@_{2});\ \9 dot\par
+$\2{penlabels}(@_{1},@_{2});\3{enddef};$\par
+\Endmft
+\medskip
+
+To get this into position over the letter `{\bf o}', requires the
+following program text,
+
+\medskip
+\Beginmft
+$\2{cmchar}\7"The letter dotted o";$\par
+$\\{dot\_sharp\_values};$\par
+$\2{beginchar}(\1{oct}\7"025",9u\SH ,\\{dot\_top}\SH ,0);$\par
+$\2{italcorr}\frac1/{3}[\\{x\_height}\SH ,\\{asc\_height}\SH ]\ast %
+\\{slant}-.5u\SH \2{if}\\{serifs}\?+.25\\{dot\_diam}\SH \3{fi};$\par
+$\2{adjust\_fit}(\2{if}\\{monospace}\?.5u\SH ,.5u\SH \2{else}\?0,0\3{fi});$\par
+$\\{penpos}_{1}(\\{vair},90);\ \\{penpos}_{3}(\\{vair}',-90);$\par
+$\\{penpos}_{2}(\\{curve},180);\ \\{penpos}_{4}(\\{curve},0);$\par
+$x_{2r}=\1{hround}\1{max}(.5u,1.25u-.5\\{curve});$\par
+$x_{4r}=w-x_{2r};\ x_{1}=x_{3}=.5w;\ y_{1r}=\\{x\_height}+\1{vround}1.5\\{oo};\
+y_{3r}=-\\{oo};$\par
+$y_{2}=y_{4}=.5\\{x\_height}-\\{vair\_corr};\ y_{2l}:=y_{4l}:=.52\\{x%
+\_height};$\par
+$\2{penstroke}\\{pulled\_arc}_{e}(1,2)\AM \\{pulled\_arc}_{e}(2,3)$\par
+\quad${}\AM \\{pulled\_arc}_{e}(3,4)\AM \\{pulled\_arc}_{e}(4,1)\AM \1{cycle};\
+\9 bowl\par
+$\2{numeric}\\{dot\_shift},\\{dot\_top};$\par
+$\2{define\_whole\_blacker\_pixels}(\\{dot\_diam},\\{dot\_top});$\par
+$\\{dot\_shift}=0;\ \9 in this case, the position happens to be correct\par
+$x_{7}=x_{1}-.8\\{dot\_diam};\ x_{8}=x_{7}+1.6\\{dot\_diam};$\par
+$\\{dot\_accent}(7,a,\\{dot\_shift});$\par
+$\\{dot\_accent}(8,b,\\{dot\_shift});$\par
+$\2{penlabels}(1,2,3,4,7,8);\3{endchar};$\par
+\Endmft
+\medskip
+
+\noindent
+in which the line
+
+\medskip
+\Beginmft
+$\\{dot\_sharp\_values};$\par
+\Endmft
+\medskip
+
+\noindent
+expands to a macro
+
+\medskip
+\Beginmft
+$\2{def}\\{dot\_sharp\_values}=$\par
+$\2{numeric}\\{dot\_diam}\SH ;\ \\{dot\_diam}\SH =\1{max}(\\{dot\_size}\SH ,%
+\\{cap\_curve}\SH );$\par
+$\2{numeric}\\{dot\_top}\SH ;\ \\{dot\_top}\SH =\1{min}(\\{asc\_height}\SH ,%
+\frac10/{7}\\{x\_height}\SH +.5\\{dot\_diam}\SH );$\par
+$\!\3{enddef};$\par
+\Endmft
+\medskip
+
+
+\noindent
+which repeats some of the calculations made in the definition of the dot
+accent.
+
+
+The composites that result from this programming effort look, for the
+most part, identical to the results of the application of the {\tt\bs
+accent} primitive to characters in the regular Computer Modern fonts.
+The one major difference comes in the shape of the ``hat'' accent over
+the letter `{\bf i}'. In this instance, the accent would spread beyond the
+left and right side bearings of the underlying character and mess up the
+letter spacing if it were
+not pinched in, so a special narrow hat accent is provided for `{\bf i}'.
+The proportions of each stroke remain essentially the same as
+those in the original model, but they form an acute angle over the top
+of the letter. Except in the case of this character and some of the
+uniquely Turkish dotted uppercase letters,
+it will probably be difficult to distinguish the two styles of accent
+in the final printed version even when they are
+intermingled in the same text.
+
+The creation of the composite characters is only the first stage in
+the development of the font. Next, the italic correction must be set
+for all the italic and slant fonts. This is the spacing that may be
+added to the right side of any slanted character to prevent it from
+running into something like a non-slanted closing parenthesis. There
+does not seem to be any way except visual inspection to discover an
+acceptable italic correction. One wants a fairly simple, general
+calculation, but one which will do rough justice
+to all slanted versions of the character. There were more proof
+copies generated to get the italic correction right than for any other
+feature of the font. (In the absence of any accessible system on which
+proofs could be displayed on the screen, a great many paper proofs had
+to be generated.)
+
+Following this comes the generation of ligature and kerning tables,
+which are necessarily quite large, and need to be carefully worked out
+since there is only a finite region of a {\tt tfm} file that can be
+devoted to them. The smaller of the two ligature tables, for the
+italic fonts, is shown in appendix A. It still needs one further refinement;
+the kernings appear in the order of English letter frequency, and it
+might be possible to gain a little efficiency by rearranging some of
+them. Notice that the `{\bf f$\,$}' ligatures are altogether eliminated.
+In Turkish it is essential to retain the distinction between the
+dotted and the undotted `{\bf i}, which cannot be done if the `{\bf
+fi}' ligature is used. The problem that arises, in fact is to provide
+adequate separation between the dotted `{\bf i}' and a preceding `{\bf
+f$\,$}'.
+
+In addition to the accented characters, it was necessary to design
+three additional characters for Ottoman Turkish. The simplest is
+a dot at about the bar height of lower case `{\bf e}'. This is
+used for a type of Persian suffix known as ``izafet,'' which is
+very common in Ottoman texts. The remaining two characters are
+representations of the Arabic letters ``Ayn'' and ``Hamza,'' which
+are conventionally represented by opening and closing single
+quotes in most fonts. The ``lazy man's \;{`ayn}'' (as just
+illustrated) is acceptable for the occasional reference, but not
+for extensive literary texts. Ayn is not an accent, it is a
+regular consonant of the Arabic alphabet and Hamza, though it can
+be omitted in many positions is also a consonant. What is needed
+is a pair of characters which are clearly distinguishable from
+single quotes, but sufficiently like them to conform with the
+general appearance of Computer Modern. The programs shown below,
+draw on the same standard definition as is used to generate the
+single quotes, but alter the position and the proportions. The
+bulb is uppermost in both instances, and is somewhat smaller than
+the bulb of the close quote. The tail is brought out further from
+the side of the bulb, and is tucked more tightly under. The
+versions for slanted and italic fonts use some special
+transformations to insure that the {\tenti \`ayn} (that was the
+character from the Ottoman font) is correctly formed. In
+effect, the character is built out to the left of the centerline,
+with a reverse slant, and then reflected back into the normal letter space.
+The program for these characters is Appendix B.
+
+A complete passage from our first proposed critical text edition is
+given below, first in \TeX\ input coding, and then as typeset. The
+text from which this passage was extracted runs to twelve pages, and
+was set without the benefit of a properly rewritten hyphenation table.
+By good luck, most of the English pattern hyphenations turned out to
+correspond with acceptable Turkish hyphenations, but it will certainly
+be necessary to make up a proper Turkish hyphenation table in the near
+future. When that is done, and an appropriate set of formatting
+macros has been written to isolate Turkish text from non-Turkish text
+and math mode, we will have a Turkish language adaptation of \TeX\
+which can be exported onto any small \TeX\ system, with no alteration
+of the program whatsoever. The full range of standard Computer Modern
+font styles will be available, and will blend in perfectly with the
+normal unaccented library of Computer Modern fonts. We will not have
+a truly bilingual version of \TeX, but for a predominantly Turkish
+language environment we will be offering a cheaper and more accessible
+monolingual font-based adaptation.
+
+\bigskip
+{\verbatim {Tktexinput} }
+
+\bigskip
+\BeginTurkish
+\tentk
+\`A=s:ik!lik! zama=ninda \`is:k! va=sit!asi ve s:eyda=lik! \`a=lemi:nde
+s:evk! vesi=lesi:, vus!lat eyya=minda mah!abbet muk!tez:a=si, fi:ra=k!
+gu:nleri:nde h!urk!at i:k!ti:z:a=si, baha=r mev\-si:mi:nde s!oh!bet
+germi:yyeti:, mah!bu=blar mecli:si:nde s:ara=b keyfi:yyeti:, ca=na=neler
+i:bra=mi ve \`a=s:ik!lar i:k!da=mi ve fuz:ala= mus!a=h!abeti: ve \`uk!ala=
+i:lti:fa=ti, ehl..i: di:ller rag:beti: ve t!a=li:bler mi:nneti: i:le di:du:gu:
+ebya=t ve es:\`a=r, ki: her bi:ri:nu:n= lat!i=f ma\`a=ni=si: ca=m..i naz!ma
+s:ara=b..i rengi=n ve s:i=ri=n h=aya=la=ti bezm..i: s!afa=da nuk!l..i:
+s:ekkeri=n olup mu\`a=s:i:ra=n..i mecli:s..i: z=evk! bu meyh=a=nenu:n=
+ba=deci:si: ve h!ari=fa=n..i bezm..i: s:evk! bu ka=s:a=nenu:n= sebu=-kes:i:
+olmis:lardi. K!alem..i: i:\`ti:z=a=r bu h=a=me..i: i:nki:sa=r i:le bu evra=k!a
+tah!ri=re i:k!da=m ve bu ecza=ya tast!i=re i:hti:ma=m go:sterdi:.
+\EndTurkish
+\tenrm
+\vfil\eject
+
+\strut\vskip .75in
+\centerline{{\elevenrm Appendix A}}
+\smallskip
+\centerline{{\elevenrm The {\eleventt turkit.mf} driver file}}
+\bigskip
+\Beginmft
+\input turkit.tex
+\Endmft
+
+\vfil\eject
+
+\strut\vskip .75in
+\centerline{{\elevenrm Appendix B}}
+\smallskip
+\centerline{{\elevenrm The {\tt aynhmz.mf} file}}
+\Beginmft
+\input aynhmz.tex
+\vfil
+\Endmft
+
+
+
+
+
+
+
+
+\bye
diff --git a/language/turkish/doc/turkish-hyphens.tex b/language/turkish/doc/turkish-hyphens.tex
new file mode 100644
index 0000000000..fd3646c0e3
--- /dev/null
+++ b/language/turkish/doc/turkish-hyphens.tex
@@ -0,0 +1,305 @@
+%**start of header
+\input tugbot.sty
+\vol 0, 0.
+\issdate ????????, 198x.
+\issueseqno=00
+\twocol
+%**end of header
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% tb20mackay.tex
+
+\title Turkish Hyphenations for \TeX
+\\Pierre A. Mackay
+\endx
+
+\pagexref{mackay}
+
+Turkish belongs to the class of agglutinative languages, which
+means that it expresses syntactic relations between words through
+discrete suffixes, each of which conveys a single idea such as
+plurality or case in nouns, and plurality, person, tense, voice
+or any of the other possibilities in verbs. Since each suffix is
+a distinct syllable (occasionally more than one syllable), Turkish
+sentences are likely to contain a high proportion of long multi-syllable
+words, and to need an efficient system of hyphenation for typesetting.
+Owing to the long association of almost every Turkic-language region
+with Islam, certain conventions of the language have been deeply
+influenced by Arabic orthographic habits, and among these is the
+syllabification scheme on which a system of hyphenation is built.
+
+According to the syllabification pattern of Arabic, a syllable
+is assumed always to
+consist of an initial consonant (even when that consonant is no longer
+written) and to terminate in a vowel {\tt -cv-} or in the next unvowelled
+consonant {\tt -cvc-}. This pattern is followed so absolutely that it is
+permitted to break up native Turkish suffixes. The plural suffix
+\hbox{\it -ler-} will be hyphenated as {\it -le-rine\/} in an environment
+where the {\tt -cv-cv-cv} pattern predominates. A syllabic division of
+{\it\c cektirilebilecek\/} provides six places for
+hyphenation {\it \c cek-ti-ri-le-bi-le-cek}, while a
+morphological division of the word would produce only five
+{\it \c cek-tir-il-e-bil-ecek}.\footnote{$^*$}{The word is
+a future participle, and describes something as being
+capable of being extracted at some time in the future\Dash like a tooth.}
+
+There are almost no exceptions to this pattern. Words which
+appear to begin with a vowel, like {\it et-mek}, can also be
+described as beginning with the now suppressed half-consonant
+{\it hamza}. Widely sanctioned orthographic irregularities like
+{\it brak-mak\/} can be found in stricter orthography as {\it b\i-rak-mak}.
+The only universally practiced violation of the rule is associated
+with the word {\it T\"urk}, in which the {\it -rk-} combination is
+inseparable, and contributes to several of
+the very few three-consonant clusters
+regularly used in the language---{\it T\"urk\c ce}, {\it T\"urkler}.
+One other significant consonant cluster occurs in the suffix
+{\it [i]m-trak}.
+
+The Ottoman Texts Project at the University of Washington has
+undertaken the development of a set of editing and typesetting
+tools for the production of texts in modern Latin-letter Turkish,
+using the full range of diacriticals needed for scholarly editions
+of historic Arabic-script manuscripts. Because we wish to work
+in cooperation with scholars in Turkey, who are most likely to
+have access to unmodified versions of \TeX, we have chosen
+a font-based adaptation of the \TeX\ environment, which will require
+no alterations in the program. The work on fonts is largely complete,
+and one of the last major efforts necessary is the creation of
+a Turkish hyphenation table.
+
+The obvious way to create such a table in the \TeX\ environment, is to
+run a list of correctly hyphenated words through {\tt Patgen}, but
+it is not always easy to find such a list. English and German dictionaries
+quite commonly provide hyphenation patterns, but the dictionaries of
+the Romance languages rarely do, and in Turkish, the hyphenation pattern
+is so obvious that the production of such a list is viewed as an
+unimaginable waste of time. Rather than try to scan a Turkish
+word-list and supply hyphens, we have taken advantage of the strict formalism
+of the patterns and generated the Turkish hyphenation file by
+program.
+
+Turkish orthography uses a very large number of accented characters.
+The Latin-letter character set which has been in
+use since the orthographic reform of 1928 is extended, even in Modern
+Turkish, by means of a considerable number of diacriticals and accents. A
+diligent search through the modern dictionary will produce several
+five- and six-letter words in which every character is accented, and an
+intensive search might come up with words as much as nine letters long
+with every character accented. In critical editions of Ottoman texts,
+the number of accents more than doubles. Modern Turkish knows only
+the accented and unaccented pair of letters `{\bf s}' and `{\bf\c s}', but
+Ottoman Turkish has `{\bf s}', `{\bf\c s}', `{\bf\d s}' and `{\bf\b s}', which
+represent four completely distinct characters in the Arabic alphabet.
+The letter `{\bf h}' shows almost as much variety, and so do several
+others. Our Ottoman Turkish font has twenty-seven accent and letter
+composites, in addition to the basic twenty-six simple Latin letters.
+Moreover, all composites can exist in upper case forms as well as in
+lower case. To accommodate these composite characters in the normal
+{\ninerm ASCII} character set,
+we use an input coding convention in which accented
+letters are treated as a class of ligatures, and three characters from the
+{\ninerm ASCII} symbol set are borrowed for use as postpositive
+pseudo-letters, to trigger the selection of accented letters in
+the Turkish fonts. The three symbols are the exclamation
+point `{\tt!}', the equals sign `{\tt=}', and the colon `{\tt:}'.
+
+The choice of these symbols is
+based on a proposal made more than ten years ago at the Orientalist
+Congress held in Paris, in 1974. Owing to the extraordinary richness
+of the Ottoman Turkish character set, it has been necessary to extend
+the old proposal, but it still retains the original principles, which
+are closely associated with the coding scheme used by the Onomasticon
+Arabicum project, which is coordinated at the Centre National de la Recherche
+Scientifique in Paris. (The Onomasticon Arabicum uses a post-positive dot
+and a post-positive hyphen to indicate diacriticals, which is
+acceptable in a data-base of names, but not in continuous prose text.)
+The current set of conventions, using (|! = :|),
+produces an input file which can, if
+necessary, be edited on a ordinary terminal lacking any special
+Turkish character features, and which a Turkish speaker can become
+accustomed to without too much difficulty. When coupled with a
+well-designed macro file and a rewritten hyphenation table, it
+provides the possibility of naturalizing a \TeX\ environment into
+Turkish without any large investment in special purpose hardware and
+rewritten versions of non-standard (non-)\TeX.
+
+The exclamation point is used for all the ``emphatic'' letters of the
+Arabic alphabet (the alphabet in which Turkish was written until 1928).
+These are the letters {\it \d Dad\/} (usually pronounced as `{\bf z}' in
+Turkish, and hence paired with a non-Arabic letter known as {\it \.Zad\/}),
+{\it \d Sad}, {\it \d Ha'}, {\it \d Ta'} and {\it \d Za'}.
+The equals sign is used for all the
+consonants which are represented in Latin-letter transcriptions by a
+letter with a bar under, such as `{\bf\b d}' ({\it dhal\/}), more
+commonly written in
+Turkish as `{\bf\b z}', and also for vowels with a macron or, following the
+Turkish convention, a `hat' accent, and similar forms, chosen like the
+cupped `{\bf\u g}', because the equals sign is visually closer than the colon
+is. (Moreover, the colon is needed for a different variety of the
+letter `{\bf g}'.) The colon is a catch-all for everything else, but works
+out rather well visually, as it happens. The three post-positives are
+not accents, but regular characters, which use the \TeX\ convention of
+ligatures to invoke accented characters from the font, just as the
+second `{\bf f$\,$}' in the normal \TeX\ `{\bf ff$\,$}'
+ligature pair does. If a standard
+Latin-letter character does not have an associated ligature table in
+the font, a following diacritical postpositive will be unaffected.
+Thus, the letter `{\bf o}',
+when followed by a colon will produce `{\bf\"o}', but the letter `{\bf e}' when
+followed by a colon will produce `{\bf e:}'. The equals sign retains
+its normal function in math mode because the math font {\tt TFM} files
+do not call it into ligature pairings, and the colon and exclamation point
+can be invoked by the command sequences {\tt\bs:} and {\tt\bs bang}
+when the simple character will not work.
+
+Since the hyphenation evaluation loop in \TeX\ dismantles all ligatures
+before it looks for acceptable hyphenation positions, it will have
+to accept the post-positive symbols (|! = :|) as part of the alphabet,
+so each of these symbols receives its own value as an |\lccode|.
+The full Turkish-\TeX\ alphabet is:
+
+{\advance\baselineskip by 3pt
+\obeylines
+a \^a e \i\ i \^\i\ o \"o \^o u \"u
+` ' b c d f g h j k l m n p r s t v y z
+\d d \d h \d k \d s \d t \d z
+\b d \u g \b h \~n \b s \b t \b z
+\c c \.g \c s \.z
+\par }
+\smallskip
+In the hyphenation loop of \TeX, these characters resolve into
+the set:
+
+{\advance\baselineskip by 3pt
+\obeylines
+|! = : @ # a b c d e f g h i|
+|j k l m n o p r s t u v y z|
+\par }
+\smallskip
+\noindent and it is this latter set only which will appear in the
+hyphenation patterns. The dotted {\tt i} in the above list really
+stands for the Turkish undotted `{\bf\i}'. The input code convention
+for Turkish uses {\tt i:} for the Turkish `{\bf i}'. The {\tt @}
+sign stands for the Arabic letter {\it hamza} and the {\tt \#}
+stands for {\it `\kern-1.5pt ayn}. To avoid conflict with
+{\tt plain.tex} uses of these two characters, they appear explicitly
+only in the hyphenation pattern file. Turkish text input uses
+|\`| to generate |\char'43| ({\it `\kern-1.5pt ayn}) and |\'|
+to generate |\char'100| ({\it hamza}).
+
+We begin constructing the table by considering the pseudo-letters
+(|! = :|). Since these are used exclusively in ligature pairs,
+no hyphenation is ever permissible between them and the preceding
+letter. Odd values permit, and even values in the hyphenation
+code prohibit hyphenation,
+so we give the highest possible even value (8) to the region
+preceding each pseudo-letter. The pseudo-letters can follow
+both vowels and consonants, so hyphenation will often, but not
+always, be possible after them. We give that region the lowest
+possible odd value (1) to show that hyphens are permitted here.
+\smallskip
+\centerline{\tt 8!1 8=1 8:1}
+\smallskip
+
+In strict orthography, a vowel cannot be separated from the
+preceding consonant, and the few apparent instances of hyphenation
+between two adjacent vowels (suppressed consonant) can be treated later.
+In all normal instances a vowel cannot accept a hyphen in the
+preceding region and will probably accept one in the following region,
+so the vowels are set thus.
+\smallskip
+\centerline{\tt 2a1 2e1 2i1 2o1 2u1}
+\smallskip
+
+A consonant may begin a {\tt -cv-} sequence or end a {\tt -cvc-} sequence,
+so we give it a 1 on either side:
+\smallskip
+\centerline{\tt 1b1 $\;\ldots\;$ 1z1}
+\smallskip
+
+This simple lot of patterns will provide for all normal {\tt -cv-}
+instances such as
+\smallskip
+\centerline{\tt1h1\ \ \ \ } %seven elements
+\centerline{\tt\ \ 8=1\ \ }
+\centerline{\tt\ \ \ \ 2a1}
+\centerline{\tt1h8=2a1}
+\smallskip
+\noindent which will result in the sequence {\tt-h=a-}, with hyphens fore
+and aft.
+
+The next group of patterns controls hyphenation at the end
+of words. \TeX\ will usually not break off two-letter fragments
+in its hyphenation loop, but owing to the nature of the input coding
+we have chosen, it may see a three- or four-letter sequence where
+a two-letter result is intended. We do not want to find
+{\it l\"u}, {\it\c c\"u\/} and {\it si\/} isolated at the beginning
+of a line, nor do we really want the {\it cek\/} of {\it -ecek\/}
+broken off if it is at the end of a word. To prevent hyphenations of
+this sort, the program generates all possible patterns of the type:
+\smallskip
+\centerline{|2ba=.| $\;\ldots\;$ |2z:u:.|}
+\smallskip
+\noindent using the conventional |.| for end-of-word.
+The resultant list includes sequences that are phonetically impossible in
+Turkish but these take up so little additional space in the file that
+they can be left there. The pattern |2e2cek.|\kern -1.5pt is added as a special case.
+
+The break after {\tt -cvc-} syllables is almost taken care of:
+\smallskip
+\centerline{\tt1h1\ \ \ \ } %seven elements
+\centerline{\tt\ \ 8=1\ \ }
+\centerline{\tt\ \ \ \ 1h1}
+\centerline{\tt1h8=1h1}
+\smallskip
+\noindent but it makes the thoroughly undesirable {\tt -cv-ccv-}
+sequence as acceptable as the correct {\tt -cvc-cv-} sequence.
+To prevent this error, all possible Turkish
+two-consonant sequences (e.g.\ {\tt h=h=}${}\rightarrow{}$`{\bf\b h\b h}')
+are covered by patterns such as {\tt2h=h=}, in which the value 2
+will override the 1 after the preceding vowel.
+
+The few undesirable hyphenations at the beginning of
+words which appear to start with a vowel are prevented
+by generating the patterns
+|.a=2| through |.u:2| and
+similarly, the few instances where an apparent {\tt -cv-v-} hyphenation
+stands for {\tt -cv-[c]v-} can be allowed by adding the full range of patterns
+|a3a2| through |u:3u:2| which includes a large number of impossible
+pairings.
+
+
+The last patterns to be added are |m1t4ra4k| and |t2u8:2r4k1|. At the price of
+slightly excessive strictness (the prohibition against the {\tt r-k}
+division is only valid when the word begins with an upper-case {\tt T})
+we can ensure that {\it T\"urk\/} always stays in one piece.
+
+Files of this sort, when generated by program, tend to be
+larger than hand-worked files, but if it seems that
+all the redundancies mentioned above might
+be seriously wasteful of space, consider the following statistics:
+\smallskip
+\settabs 4 \columns
+{\advance\baselineskip by 3pt
+\+&\hfil{}Entries\hfil&\hfil{}Trie size\hfil&\hfil{}Ops\hfil\cr
+\+\quad English&\hfil4460\hfil&\hfil5492\hfil&\hfil181\hfil\cr
+\+\quad Turkish&\hfil1840\hfil&\hfil\hphantom{0}616\hfil&\hfil\hphantom{0}16\hfil\cr
+}\smallskip
+
+The format file that makes use of this set of patterns will no
+longer serve very well for English language \TeX. The font-based
+solution to foreign-language typesetting is definitely monolingual,
+since only one {\tt hyphen.tex} file can be read in at a time.
+A multilingual system, good for both English and Turkish, would
+require modifications of the program code.
+This simple solution, however, will be quite satisfactory in a
+purely Turkish environment, and can be made even more successful
+by taking the {\tt tex.pool} file and translating it all into
+Turkish.
+
+\endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\bye
+
+
diff --git a/language/turkish/hyphen/turk_hyf.c b/language/turkish/hyphen/turk_hyf.c
new file mode 100644
index 0000000000..1f3526a869
--- /dev/null
+++ b/language/turkish/hyphen/turk_hyf.c
@@ -0,0 +1,84 @@
+/****************************************************************************
+ * *
+ * turk_hyf.c -- a program to produce PatGen-like hyphenation *
+ * patterns for the Turkish Language. *
+ * *
+ * Copyright 1987, by Pierre A. MacKay. *
+ * This program and the resulting pattern file may be used *
+ * freely by non-profit institutions. Commercial users intending *
+ * sale of any product incorporating this file should communicate *
+ * with the author at the Humanities and Arts Computing Center *
+ * Mail-Stop DW-10 *
+ * University of Washington *
+ * Seattle, Washington 98105 *
+ * *
+ ****************************************************************************/
+#include <strings.h>
+
+static char *tk_vowel[]=
+ {"a", "a=", "e", "i", "i=", "i:",
+ "o", "o=", "o:", "u", "u:"};
+static char *tk_cons[]=
+ {"@", "#", "b", "c", "c:", "d", "d!", "d=", "f",
+ "g", "g=", "g:", "h", "h!", "h=", "j", "k", "k!",
+ "l", "m", "n", "n=", "p", "r", "s", "s!", "s=", "s:",
+ "t", "t!", "t=", "v", "y", "z", "z!", "z=", "z:"};
+
+int i,j;
+
+main()
+{
+ printf("%% A mechanically generated Turkish Hyphenation table for TeX,\n");
+ printf("%% using the University of Washington diacritical coding\n");
+ printf("%% developed by P. A. MacKay for the Ottoman Texts Project.\n");
+
+/* make # a letter for now */
+ printf("\\catcode`\\#=11\n");
+
+/* prohibit hyphen before pseudo-letters
+ and allow it after */
+ printf("\\patterns{%\n8!1\n8=1\n8:1\n");
+
+/* prohibit hyphen before vowels, allow after */
+ for (i=0; i<(sizeof tk_vowel / sizeof &tk_vowel[0]); i++ )
+ if (strlen(tk_vowel[i])==1) printf("2%s1\n",tk_vowel[i]);
+
+/* allow hyphen either side of simple consonants */
+ for (i=0; i<(sizeof tk_cons / sizeof &tk_cons[0]); i++ )
+ if (strlen(tk_cons[i])==1) printf("1%s1\n",tk_cons[i]);
+
+/* prohibit hyphen before disguised two-letter fragments */
+ for (i=0; i<(sizeof tk_cons / sizeof &tk_cons[0]); i++ )
+ for (j=0; j<(sizeof tk_vowel / sizeof &tk_cons[0]); j++ )
+ if ((strlen(tk_cons[i]) + strlen(tk_vowel[j]))>2)
+ printf("2%s%s.\n",tk_cons[i], tk_vowel[j]);
+
+/* prevent e-cek at end of word */
+ printf("2e2cek.\n");
+
+/* prohibit hyphen before pair of consonants---many
+ pairs generated here are impossible anyway */
+ for (i=0; i<(sizeof tk_cons / sizeof &tk_cons[0]); i++ )
+ for (j=0; j<(sizeof tk_cons / sizeof &tk_cons[0]); j++ )
+ printf("2%s%s\n",tk_cons[i], tk_cons[j]);
+
+/* allow hyphen between vowels, but not after second vowel of
+ pair---several phonetically impossible pairs here */
+ for (i=0; i<(sizeof tk_vowel / sizeof &tk_cons[0]); i++ )
+ for (j=0; j<(sizeof tk_vowel / sizeof &tk_cons[0]); j++ )
+ printf("%s3%s2\n",tk_vowel[i], tk_vowel[j]);
+
+/* prohibit hyphen after disguised single vowels
+ at start of word */
+ for (i=0; i<(sizeof tk_vowel / sizeof &tk_vowel[0]); i++ )
+ if (strlen(tk_vowel[i])>1) printf(".%s2\n",tk_vowel[i]);
+
+/* a couple of consonant-clusters */
+ printf("tu4r4k\nm1t4rak\n");
+
+/* terminate the patterns. */
+ printf("}\n");
+
+/* restore # as parameter symbol */
+ printf("\\catcode`\\#=6");
+}
diff --git a/language/turkish/inputs/sample.tex b/language/turkish/inputs/sample.tex
new file mode 100644
index 0000000000..14bca89a6f
--- /dev/null
+++ b/language/turkish/inputs/sample.tex
@@ -0,0 +1,497 @@
+% Copyright 1986 by Walter Andrews, University of Washington.
+% This input file is provided as a test of the Turkish fonts
+% and is not for publication.
+
+% \input tkccode % may be needed if unfiltered Turkish input is used
+\font\tk=wtkr10
+\font\ti=wtkti10
+\hsize=4.5in\vsize=7in
+\def\beginprose{\endmode
+ \begingroup\smallskip\def\endmode{\par\endgroup}}
+\def\beginverse{\endmode
+ \begingroup\obeylines\def\endmode{\par\endgroup}}
+\let\endmode=\par
+\def\beyt{\beginverse\getverse}
+{\obeylines\gdef\getverse #1
+ #2
+ {#1\gdef\style{#2}%
+ \bgroup\bigskip\leftskip=4pc\parindent=0pc\raggedright#2
+ \def\endmode{\egroup\endgroup}}}
+\def\nathr{\beginprose\goodbreak\bigskip\noindent Nes=r\par\nobreak}
+\def\dua{\beginprose\goodbreak\noindent}
+
+\sfcode`\:=1000 \sfcode`\!=1000 \sfcode`\==1000 % Frenchspacing after
+% these
+
+
+\tk
+\centerline{DI=BA=CE}
+\vskip.5in
+\noindent
+H!amd..i: na=-mah!du=d ve s=ena=..yi na=-ma\`du=d
+H!az:ret..i: \`I:zzete ki: mu:bdi:\`..i: ma=hi:y\-ya=t ve muh=teri:\`..i:
+\`ak!l u h!aya=tdur celle cela=lehu ve \`amme neva=lehu.
+
+\beyt
+ Beyt
+ I:ri:s:mez \`ak!l..i ka=mi:l h!i:kmeti:ne
+ Yeti:s:mez ki:mse anun= k!udreti:ne
+
+
+\nathr
+Zi:hi= H=a=lik! ki: zu:mre..i: i:nsa=ni es:ref..i: mah=lu=k!a=t
+i:du:p \`akl..i reh-nu:ma=yi ve fi:kr..i: ci:ha=n-a=ra=yi z=i:hn..i:
+seli=m ve t!ab\`..i mu:stak!i=m i:le nut!k!..i fas!i=h! ve kela=m..i
+s!ah!i=h! erza=ni= go:ru:p ve faz:z:alna=hu:m \`ala= kes=i=ri:n mi:mmen
+h=alak!na= tafz:i=la= s:erefi:yle mug:tenem buyurdi.
+
+\beyt
+ Beyt
+ Di:la= \`a=ci:z durur medh!i:nde i:dra=k
+ K!ac:an vas!f i:der ani bi:r avuc: h=a=k
+
+\nathr
+Zi:hi= K!a=di:r ki: fes!a=h!at meyda=ninun= c:a=bu:k-su:va=rlarina
+ni:ya=m..i deha=ndan ti=g:..i: a=bda=r..i zeba=n vi:ru:p mu:lk..i: naz!m
+u Nes=ri: an=lara mu:sah=h=ar i:tdi:.
+
+\beyt
+ Beyt
+ Ne ulu pa=di:s:a=h olur o Su:bh!a=n
+ Ki:m anun= bi:r k!ulidur Mis!ra sult!a=n
+
+\dua
+{\ti h=allada'lla=hu mu:lkehu ve ebbede salt!anatahu i:la=
+ebedi:'d-du:hu=ri: ve'l-ezma=n.}
+
+
+\nathr
+Zi:hi= mu:tekelli:m ki: bela=g:at s:ekeri:sta=ninun=
+t!u=t!i=leri:n a=yi=ne..i: efka=r i:le gu=ya= i:du:p
+s:ekkeri=n-gu:fta=r i:tdi:.
+
+\beyt
+ Beyt
+ Zeba=n bi:r t!u=t!i=..i: s:i=ri=n-suh=endu:r
+ Di:l a=yi=ne k!afes an=a dehendu:r
+
+\nathr
+Zi:hi= ka=s:i:f ki: g:ayb mestu=releri:nu:n= perde-gu:s:a=lig:in
+dest..i: i:lha=m i:le a=sa=n i:du:p mu:s:a=hedesi:n
+di=de..i: du=rbi=ne mu:yesser k!ildi.
+
+\beyt
+ Beyt
+ K!amer h!u:sni:ni: k!ilmis:dur mu:retteb
+ Hi:la=li: an=a i:tmi:s: t!avk!..i g:abg:ab
+
+\nathr
+Zi:hi= \`a=li:m ki: debi=ri:sta=n..i \`i:rfa=nda ta\`li=m u: i:rs:a=d i:le
+t!ifl..i nev-a=mu=z k!ilup h=ava=t!ir..i i:nsa=ni, ki: h=ula=sa..i:
+a=feri=ni:s:du:r, gu:li:sta=n..i faz:l u da=ni:s: k!ildi. Ve heza=r-da=sta=n..i
+zeba=ni bu=sta=n-sera=y..i deha=nda h!amd u: s=ena=siyle gu=ya= i:du:p
+ag:s!a=n..i beya=nda da=sta=n..i teba=reka'lla=hu ah!senu'l-h=a=lik!i=n
+okindi.
+
+\beyt
+ Beyt
+ K!udreti: k!as!ri i:c:i:nde c:arh= bi:r ka=s:a=nedu:r
+ \`Ak!l..i ka=mi:l \`i:lmi: i:c:re t!ifl..i mekteb-h=a=nedu:r
+
+\nathr
+Zi:hi= rah!i=m ki: i:sti:h!ka=m..i esa=s..i mu:lk u: mi:llet ve esba=b..i farz:
+u su:nnet i:c:u:n enbi:ya= ve ru:su:le s:em\`..i: nu:bu:vvet ve c:era=g:..i
+ri:sa=let mu:yesser i:du:p enva=r..i i:rs:a=dlariyle gu:m-ra=ha=n..i
+ba=di:ye..i: d!ala=let ve peyreva=n..i ka=rba=n..i z!ulema=t..i ceha=lete deli=l
+oldilar. H=us!u=s!a= h={\ti a=\/}ce..i: \`a=lem ve muk!teda=..yi evla=d..i
+a=dem, mu:fti=..i: h=it!t!a..i: meleku=t, mu:nhi=..i: \`a=lem..i:
+ceberu=t, \`andeli=b..i: gu:li:sta=n..i ve ma= yant!ik!u \`ani:'l-heva= ve
+t!u=t!i=..i: s:ekeri:sta=n..i i:n huve i:lla= vah!yun yu=h!a= Muh!ammed
+Mus!t!afa= s!alava=ta'lla=hu \`aleyhi: ve \`ala= a=li:hi: ma=
+da=metu:'l-\`arz:u ve's-sema=
+
+\beyt
+ Mes=nevi=
+ H!abi=b..i: H!ak! mu\`i=n..i: h=alk!..i \`a=lem
+ Gu:zi=n..i: enbi:ya= vu: fah=r..i: A=dem
+ Mu\`anber s!ac:lari anun= s:eb..i: K!adr
+ Mu:nevver ruh=lari anun= meh..i: bedr
+ Degu:ldu:r kehkes:a=n germ olup efla=k
+ Anun= s:evk!inden i:tmi:s: yak!asin c:a=k
+ Ri:ya=z:etde an=a olmag:a hem-reng
+ K!omis: H!a=tem k!us:ag:i i:c:i:ne seng
+ Sara=yi menzi:l..i: Ru=h!u:'l-Emi=ndu:r
+ Vu:cu=di rah!meten li:'l-\`a=lemi=ndu:r
+ I:ki: \`a=lemde oldur k!urretu:'l-\`ayn
+ T!ufeyli: k!as:larinun= k!a=be k!avseyn
+ Seri=r..i: \`ars:a na\`leyni: durur ta=c
+ Emi=n..i: vah!y u s!a=h!i:b-sirr..i mi:\`ra=c
+ Ci:ha=n ki:m tes:neli:kden ola bi=-ta=b
+ Ak!ida lu=le..i: si=mi=nleri: a=b
+ Ne mu\`ci:zdu:r o si=mi=n h=a=meye bak!
+ Ki: ma=hun= na=h=uninda eyledi: s:ak!
+ Go:n=u:l yok! mu\`ci:za=tina ni:ha=yet
+ Anun= na\`ti:nde olmaz so:ze g:a=yet
+ Odur c:u:n H!ak! yaninda z=a=t..i ekrem
+ Gerek so:z muh=tas!ar va'lla=hi: a\`lem
+
+\nathr
+Zi:hi= mu:debbi:r te\'ki=d..i: umu=r..i mes!a=li:h!..i: \`a=lem ve te\'yi=d..i:
+mu:hi:mma=t..i beni= \`adem i:c:u:n mu:lu=k..i: di=nda=r ve sela=t!i=n..i:
+z=evi='l..i:kti:da=ri ki: ta=c..i i:bti:ha=c..i es-sult!a=n z!illu'lla=h i:le
+mu\`alla= ve ser-efra=z ve h=il\`at..i: ri:f\`at..i: ve u:lu:'l-emru:
+mi:nku:m i:le muh!alla= ve mu:mta=z i:du:p sema=\'..i: devletleri:nde
+a=fi:ta=b..i \`adl seyya=re ve felek..i: h!as:metleri:nde k!amer-va=r devva=r
+olup \`a=lem sa=ye..i: hi:ma=yetleri:nde a=su=de-h!a=l ve h=alk! ketf..i:
+\`a=t!ifetleri:nde mu:reffehu:'l-ah!va=l olmis:lardur. Si:yyema= h!az:ret..i:
+salt!anat-pena=hi= ve h=ila=fet-destga=hi= ki:, s!ah!i=fe..i: h=a=t!ir..i
+s:eri=fleri: mah!all..i: nu:k!u=s:..i h!ak!a=yik! ve levh!..i: z:ami=r..i:
+mu:ni=rleri: mehbit!..i enva=r..i dek!a=yik! ve derya=..yi t!ab\`..i
+gevher-efs:a=nlari mah=zen..i: esra=r..i I:la=hi= ve z=i:hn..i: vek!k!a=d..i
+du:r-efs:a=nlari mevri:d..i: let!a=yi:f..i: na=-mu:tena=hi=du:r, da=yi:ma=
+\`ahd..i: s:eri=fi:nde \`uk!u=d..i s:er\` muntaz!am ve her dem \`as!r..i
+mu:ni=fi:nde cu:nu=d..i fisk! mu:nhezi:m.
+
+\beyt
+ Beyt
+ G:ibt!a eyler t!a=\`ati:nu:n= yi:ri:ne Da=ru:'ssela=m
+ Zu:hdi: s!ah!ra=si olupdur menzi:l..i: Ru=h!u:'lemi=n
+
+\nathr
+Bi:r gerdu=n..i:k!ti:da=rdur ki: a=fi:ta=b..i \`a=lem-ta=b h!u:km..i:
+sat!veti:ne t!ug:ra=..yi s:ehri:ya=ri= ve bi:r refi=\`-mi:k!da=rdur ki:
+felek..i: pu:r-encu:m defter..i: \`az!ameti:ne ci:ld..i: s!adefka=ri=du:r.
+
+\beyt
+ Beyt
+ Hey ne \`a=li= s:a=h olur ol h=usrev..i: \`a=li=-cena=b
+ K'i:s:i:gi:nde altun u:sku:flu: k!ulidur a=fi:ta=b
+
+\nathr
+Es-sult!a=n i:bnu:'s-sulta=n i:bnu:'s-sult!a=n i:bnu:'s-sult!a=n Seli=m
+H=a=n i:bnu:'s-sult!a=n Ba=yezi=d bi:n sult!a=n Meh!emmed bi:n Mura=d H=a=n
+h=allada'lla=hu mu:lkehu ve ebbede salt!anatahu i:la= ebedi:'d-du:hu=ri:
+ve'l-ezma=nun= eyya=m..i hu:ma=yu=n ve ru=zga=r..i meymu=nlarinda ehl..i:
+\`i:lme zi:ya=de \`i:zzet ve s!a=h!i:b..i: faz:la tama=m rag:bet olup s:i:\`r
+u: i:ns:a= ve naz!m..i di:l-gu:s:a=ya i:lti:fa=t..i s:a=ha=ne ve
+i:\`ti:ba=ra=t..i pa=di:s:a=ha=ne olinurdi. Ol ci:hetden erba=b..i
+k!ara=yih!..i seli=m ve as!h!a=b..i t!aba=yi\`..i mu:stak!i=m g:avva=s!lik!lar
+i:du:p fi:ki:r derya=sindan c:ik!arduk!lari du:rr..i: s:a=hva=rdan so:z
+\`aru=sina gu=s:va=r i:derlerdi: ve suh=envera=n..i ci:ha=n ve
+nu:kte-perda=za=n..i zama=n s!arra=flik!lar i:du:p me\`a=di:n..i: mak!a=lden
+ceva=hi:r..i: h=aya=l getu:ru:p ebka=r..i efka=run= sa=\`i:dleri:ne mu:cevher
+si:va=rlar du:zerlerddi:. Her ga=h ki: muh=addera=t..i t!abi=\`at ve
+\`ara=yi:s..i: efka=r sera=-perde..i: bela=g:at ve tu:tu:k..i: fes!a=h!atden
+ki:lk..i: h=aya=l..i: dak!i=k! ve h!ulel..i: ma\`a=ni=..i: rak!i=k! i:le
+muh!alla= ve mu:zeyyen k!ilinup manz!ara..i: t!a=k!..i tema=s:a=ga=hda
+ci:lveler i:du:p h!u:sn..i: behcet..i: di:l-gu:s:a= ve h!u:sn..i: cema=l..i:
+ci:ha=n-a=ra= i:le \`us:s:a=k!i h!ayra=n ve u:fta=deleri: ser-gerda=n
+i:derlerdi:.
+
+\beyt
+ Beyt
+ Yu:ri: \`a=s:ik! naz!ar eyle bu k!as!r..i gu:ls:en-a=ra=ya
+ Gu:zeller seyri:n i:stersen= gel i:mdi: sen tema=s:a=ya
+
+\nathr
+Ve ebka=r..i efka=r mu:s:ki=n k!aba=lar geyu:p Meryem-a=sa= ci:lvega=h..i
+\`i:zz u: na=z ve gu:lges:t..i: i:\`za=zda h=ira=ma=n ve ga=h s:a=hi:d..i:
+es:\`a=r mu:zellef mah!bu=blar gi:bi: ma\`na=..yi rengi=ni: zi=net..i:
+ruh=sa=r i:du:p seyra=nga=h..i h=ava=t!irda s!adr-ni:s:i=n olmis:lardi.
+
+\beyt
+ Naz!m
+ Ne na=zu:kdu:r bu zi=ba= di:lru:ba=lar
+ T!onanmis:lar geyu:p rengi=n k!aba=lar
+ Bularun= h!u:sni: c:avlanmis: irak!dan
+ Ki: \`a=lem h=alk!i \`a=s:ik!dur k!ulak!dan
+
+\nathr
+I:dra=k meh!a=fi:li:nu:n= s!adr-ni:s:i=nleri:
+vi: i:z=\`a=n meca=mi:\`i:nu:n= pa=k u: gu:zi=nleri: bunlarun= h!u:sn u:
+cema=li:ne h!ayra=n ve na=z u ki:ri:s:meleri:ne va=li:h u: ser-gerda=n
+olmis:lardi.
+
+\beyt
+ Beyt
+ H=a=llerdu:r so:z \`aru=sinun= yu:zi:nde zeyn i:c:u:n
+ Nok!t!alar s!anman= ki: du:s:mi:s:du:r h=at!..i es:\`a=rda
+
+\nathr
+S:evk! meyh=a=nesi:nu:n= ba=de-nu=s:lari ve z=evk! h=umh=a=nesi:nu:n=
+mey-fu:ru=s:lari sebu=..yi es:\`a=r ve k!ira=be..i: gu:fta=rdan mu:da=m
+s:ara=b..i h=aya=l i:le def\`..i: mela=l i:derlerdi:.
+
+\beyt
+ Beyt
+ Ne sa=g:ardur k'anun= yok! i:nki:sa=ri
+ Ne meydu:r k'ol anun= olmaz h=uma=ri
+
+\nathr
+Kela=m ba=g:inun= bu:lbu:l..i: gu=ya=lari ve naz!m gu:li:sta=ninun= murg:..i:
+h=o=s:-neva=lari gu:lbu:n..i: gu:li:sta=n..i \`i:ba=ra=t ve g:onca..i:
+baha=ri:sta=n..i i:sti:\`a=ra=tdan su\-h=en-sa=z ve nag:me-perda=z olmis:lardi.
+
+\beyt
+ Beyt
+ Ne gu:ls:endu:r k'anun= yok!dur h=aza=ni
+ Ne gu:ldu:r ol k'anun= c:ok!dur zama=ni
+
+\nathr
+S!ah!a=yif..i evra=k!..i h=ava=t!ir..i da=na=ya=n ve defa=ti:r..i: ecza=..yi
+z!ama=yi:r..i: g:azel-sera=ya=n naz!m..i di:l-gu:s:a= i:le mektu=b u
+muh!as:s:a= olmis:dur.
+
+\beyt
+ Beyt
+ Ok!inan mecli:sler i:c:re s:i:\`r..i: gevherba=rdur
+ Her go:n=u:l gu=ya= ki: bi:r mecmu=\`a..i: es:\`a=rdr
+
+\nathr
+Ol sebebden nak!k!a=s:..i nak!s:bend..i: es:\`a=r ve ressa=m..i beyt..i:
+a=bda=r, ki: nak!s:inda Ma=ni= h!ayra=n ve resmi:nde Erjeng
+ser-gerda=ndur, ya\`ni= gi:ri:h-gu:s:a=..yi fi:kr..i: \`ami=k! ve
+s:emme-gu:da=z=..i z:ami=r..i: dak!i=k! nak!s: u ni:ga=r i:le her mat!la\`i
+g:ayret..i: h=uld..i: beri=n ve her beyti: res:k..i: ni:ga=rh=a=ne..i: C:i=n
+k!ilmis:dur.
+
+\beyt
+ Beyt
+ Beytu:mu:n= her ki:m naz!ar i:tse i:c:i:ne t!as:s:ina
+ Di:r heza=ra=n a=feri=n tah!si=n anun= nak!k!a=s:ina
+
+\nathr
+T!u=t!i=..i: h=a=me..i: du:-zeba=n ve bu:lbu:l..i: gu:li:sta=n..i beya=n
+g:ulg:ule..i: \`is:k!-engi=z ve velvele..i: s:evk!-a=mi=zi: bu k!afes..i:
+a=benu=s..i efla=k ve bu gu:ls:en..i: zu:mu:rru:di=n..i: h=a=k u:zre
+s!alup, a=va=ze..i: s:i:\`r..i: bu:lend-pa=ye ve s!ada=..yi naz!m..i
+refi=\`-pi=ra=yeden mesa=mi:\`..i: gu=s:e-ni:s:i=na=n..i ku=y..i mah!abbet ve
+gu=s:..i hu=s:..i mu:ca=vi:ra=n..i s:ehr..i: meveddet memlu= olup nag:ama=t..i
+\`is:k! ve terennu:ma=t..i a=s:ik!i= bi:le t!a=s..i felek pu:r-t!ani=n i:di:.
+
+\beyt
+ Beyt
+ Felek bi:r c:engi=du:r so:zdu:r s!ada=si
+ Ne rag:bet c:enge olmasa neva=si
+
+\nathr
+Ci:ha=n s!arra=flari naz!m cevheri:ne t!a=li:b ve devra=n h={\ti a=\/}celeri:
+meta=\`..i s:i:\`ru:me ra=g:ib olup da=yi:m terti=b..i: di=va=n ve her dem
+tah!ri=r..i: es:\`ar..i peri=s:a=n olmag:a h!u:sn..i: i:k!da=m ve kema=l..i:
+i:hti:ma=m go:steru:rlerdi:. Eks=eri:yya= mah!bu=blar na=me..i: es:\`a=rumi
+g:onca..i: zanbak! gi:bi: a=ra=yi:s:..i: desta=r ve \`a=s:ik!lar t!o=ma=r..i
+gu:fta=ruma h!ama=yi:l gi:bi: i:\`ti:ba=r i:derlerdi:. Amma= h=a=t!ir..i
+fa=t!irda ol ni:yyet ve z:ami=r..i: k!a=s!irda ol \`azi=met yog: i:di: ki:m
+du:s:en es:\`a=r ve va=k!i:\` olan gu:fta=r seva=ddan beya=z:a
+go:tu:ru:leydi:, eks=er du:s:en k!as!a=yi:d memdu=h!a va=s!il olmag: i:c:u:n
+tah!ri=r ve s!a=dir olan es:\`a=r ca=na=nelere i:rsa=l olmag: i:c:u:n
+tast!i=r olinurdi. I:tti:fa=k! s:ol eyya=mda ki: di:l..i: a=s:u:fte-h!a=l u:
+peri=s:a=n-ah!va=l mu:ca=vi:r..i: Ka\`be..i: ku=y..i ya=r ve za=yi:r..i:
+h=aremh=a=ne..i: di:lda=r olmak!dan fera=g:at eyleyu:p \`azm..i: beytu'lla=h
+ve sefer..i: Ka\`be..i: s:eri=fe s:errefeha='lla=hu ni:yyet ve \`azi=met
+go:stermi:s:di:.
+
+\beyt
+ Mes=nevi=
+ Nedu:r ol s:a=n..i a\`z!am z=a=t..i ekrem
+ Ki: olupdur zi:ya=retga=h..i \`a=lem
+ Ya za=hi:ddu:r ki: olmis:dur si:yeh-pu=s:
+ Go:ren ani i:der derya= gi:bi: cu=s:
+ \`Aru=s..i dehr anun=la buldi zi=ver
+ \`I:z=a=rinda budur h=a=l..i: mu\`anber
+ Ci:ha=nda \`i:zzeti: c:ok! k!adri: \`a=li=
+ Cema=li:n go:rmege \`a=lem s!afa=li
+ Hi:la=l olmis:dur an=a h!alk!a..i: der
+ K!apusinda gu:nes: bi:r s:emse..i: zer
+
+\nathr
+As!h!a=b..i pu:r-s!afa= ve ah!ba=b..i bi=-ri:ya= bu bende..i: h!ak!i=r ve bu
+\`abd..i: fak!i=ri: muh!i:b-neva=zlik! eyleyu:p mu:sa=feret i:c:u:n gu=s:e..i:
+gu:lza=r ve bi:r di:l-gu:s:a= merg:za=ra i:ledu:p ezha=r..i nevbaha=r..i
+pu:r-su:ru=rdan nu=ru:n \`ala= nu=r sirri z!uhu=r bulmis:di ve
+su:nbu:lza=r Ka\`be..i: gu:lza=ra perdeda=r olup mena=r..i s:a=h=dan
+bela=bi:l..i: mu:\'ez=z=i:na=n..i h=u=b-a=va=z gi:bi: ser-a=g:a=z i:du:p
+di:l..i: muk!i=ma=n ve h=a=t!ir..i mu\`teki:fa=n s!ada=..yi di:l-gu:s:a= ve
+neva=..yi ca=n-feza=sindan mesru=r u s:a=da=n olmis:lardi. La=leza=r Mu:nye
+ba=za=ri gi:bi: \`ak!i=k!..i rengi=n ve merca=n..i s=emi=nden zi=b u: zi=net
+bulmis:di. Mis!ra gu:lza=r ve Ni=le cu=yba=r ve S:a=ma benefs:eza=r
+ben=zeyu:p k!ulu=b..i as!h!a=b ve h=ava=t!ir..i ah!ba=b bu tema=s:a=dan
+mesru=r ve bu seyra=ndan pu:r-h!uz:u=r olup ebya=t u es:\`a=r ok!inmag:a
+i:s:\`a=r olindi. I:tti:fa=k! s!oh!betde s:a=ri:b..i: s:ara=b..i cennet ve
+\`ayya=s:..i bezmga=h..i mag:fi:ret mag:fu=r u merh!u=m..i ki:ra=mi=
+H!az:ret..i: Mevla=na= Ca=mi= nevvera'lla=he merk!adehunun= di=va=n..i
+tama=mi bulinup ya=ra=n tefe\'\'u:l i:tdu:kden s!on=ra bendeye bu mat!la\`..i
+s:i=ri=n-mak!a=l h!asb..i: h!a=l va=k!i\` oldi:
+
+\beyt
+ Beyt
+ Key bu:ved ya= Rab ki: ru=-der-Yes=ri:b u: Bat!h!a= ku:nem
+ Geh be-Mekke menzi:l u: geh der-Medi=ne ca= ku:nem
+
+\nathr
+Ya=ra=n bu sirra h!ayra=n k!alup ``Bi:-\`avni:'lla=hi: Meli:ki:'l-Menna=n bu
+sefer..i: sa\`a=det-enca=m ve bu mu:sa=feret..i: \`i:zzet-ferca=m, ki:
+fi:'l-h!ak!i=k!a \`i:na=yet..i: I:la=hi= ve h!i:ma=yet..i:
+na=-mu:tena=hi=du:r, si:zlere ve cemi=\`..i: k!arindas:lara mu:yesser ve
+muk!adder olmis: ola ki: mut!a=bik!..i ni:yyet ve muva=fik!..i \`azi=mi:t
+va=k!i:\` oldi'' di:yu: kera=mete h!aml i:tdi:ler. Alla=hu:mme yessi:r
+reca=..yi va=ci:b du\`a=..yi vi:rd..i: zeba=n ve z=i:kr..i: li:sa=n
+kilindi. Ya=ra=n dah=i: muh=li:sleri:n bu s:evk!den pu:r-su:ru=r go:ru:p
+yi:ne i:k!da=m u i:bra=m go:sterdi:ler ki: peri=s:a=n so:zleru:m tah!ri=r ve
+na=-merbu=t! keli:ma=tum tast!i=r olina.
+
+\beyt
+ Mes=nevi=
+ S:u den=lu: eyledi: i:bra=mi ya=ra=n
+ Ki: oldum ben bu i:s:de mest u: h!ayra=n
+ Go:n=u:l gerc:i: degu:ldu:r bun=a k!a=di:r
+ Di:lemez buni ki:m i:nci:ne h=a=t!ir
+ Ki:s:i: k!urtulmak! olur bendeli:kden
+ Veli= k!urtulimaz s:ermendeli:kden
+
+\nathr
+Bu h!ak!i=r dah=i: anlarun= ceva=binda ``Bu emre i:mti:s=a=l olinurdi li=k
+si:z s!a=h!i:b-kema=lleru:n naz!arinda hema=n Mis!ra s:eker ve \`Adene
+gevher ve Hi:nde \`anber ve H=utene mu:s:k..i: ezfer ve Yemene \`ak!i=k!..i
+k!iymetda=r ve Bedah=s:a=na la\`l..i: a=bda=r i:letmek gi:bi:du:r, bunun=
+gi:bi: ti:ca=retden ki:s:i:ye ne fa=yi:de'' di:ni:ldu:kde anlar dah=i:
+zi:ya=de lut!f u k!abu=l go:steru:p ``Cevher k!iymetden ve k!uma=s: baha=dan
+k!almaz, bu \`o:z=r degu:ldu:r belki: ta\`allu:ldu:r,
+i:ns:a='lla=hu'l-e\`azzu: mu:la=k!a=t mu:yesser olinca ya=ra=na eglencedu:r''
+di:yu: yi:ne i:bra=m..i bi=-ni:ha=ye ve i:k!da=m..i bi=-g:a=ye go:sterdi:ler.
+Eyle olsa el..i:bra=m muh!as!s!ilu'l-mera=m muk!tez:a=sinca anlarun=
+h=a=t!ir..i \`a=t!irlari, ki: mi:\`ya=r..i nak!d..i: kela=mdur, muh=a=lefete
+meca=l olmayup \`is:k! zenci=ri:nu:n= esi=ri: ve derd u: mi:h!net
+esra=rinun= h=abi=ri: Reva=ni=..i: bi=-k!ara=r u a=s:u:fte vu: za=r
+ant!ak!a'lla=hu bi:'l-h!ak!k!i ve's!-s!ava=bi: ve h!allas!ahu
+\`ani:'l-su\'a=li: vel-ceva=b
+
+\beyt
+ Mes=nevi=
+ Gel ey s:u=ri=de-di:l ma\`z=u=r oldun=
+ Bu i:s:de c:u:nki: sen me\'mu=r oldun=
+ Bas!i=ret ehli: an=ladi c:u: h!a=lu:n=
+ Dah=i: k!almadi hi=c: \`o:z=re meca=lu:n=
+ Ele al h=a=meyi: go:ster ma\`a=ni=
+ Mu:zeyyen k!il yi:ne si:lk..i: beya=ni
+
+\nathr
+\`A=s:ik!lik! zama=ninda \`is:k! va=sit!asi ve s:eyda=lik! \`a=lemi:nde
+s:evk! vesi=lesi:, vus!lat eyya=minda mah!abbet muk!tez:a=si, fi:ra=k!
+gu:nleri:nde h!urk!at i:k!ti:z:a=si, baha=r mevsi:mi:nde s!oh!bet
+germi:yyeti:, mah!bu=blar mecli:si:nde s:ara=b keyfi:yyeti:, ca=na=neler
+i:bra=mi ve \`a=s:ik!lar i:k!da=mi ve fuz:ala= mus!a=h!abeti: ve \`uk!ala=
+i:lti:fa=ti, ehl..i: di:ller rag:beti: ve t!a=li:bler mi:nneti: i:le di:du:gu:
+ebya=t ve es:\`a=r, ki: her bi:ri:nu:n= lat!i=f ma\`a=ni=si: ca=m..i naz!ma
+s:ara=b..i rengi=n ve s:i=ri=n h=aya=la=ti bezm..i: s!afa=da nuk!l..i:
+s:ekkeri=n olup mu\`a=s:i:ra=n..i mecli:s..i: z=evk! bu meyh=a=nenu:n=
+ba=deci:si: ve h!ari=fa=n..i bezm..i: s:evk! bu ka=s:a=nenu:n= sebu=-kes:i:
+olmis:lardi. K!alem..i: i:\`ti:z=a=r bu h=a=me..i: i:nki:sa=r i:le bu evra=k!a
+tah!ri=re i:k!da=m ve bu ecza=ya tast!i=re i:hti:ma=m go:sterdi:.
+
+\beyt
+ Mes=nevi=
+ Gel ey cu=yende..i: esra=r..i ma\`ni=
+ Gel ey gu=yende..i: gu:fta=r..i ma\`ni=
+ Gel ey gevher-fu:ru=s:..i naz!m u i:ns:a=
+ Gel ey cevher-fu:ru=s:..i s:i:\`r..i: g:arra=
+ Gel ey nak!k!a=s:..i tas!vi=r..i: h=aya=la=t
+ Gel ey ressa=m..i tah!ri=r..i: mak!a=la=t
+ H=at! u ma\`ni=den i:stersen= i:s:a=ret
+ Bu ebya=tum yeter san=a bes:a=ret
+ H=aya=l..i: naz!m..i g:arra= h=at!t!..i di:lkes:
+ Go:ri:nu:r go:zlere beyt..i: mu:nak!k!as:
+ H=at!i beytu:n= ten..i: i:nsa=na ben=zer
+ H=aya=l anun= i:c:i:nde ca=na ben=zer
+ Ma\`a=ni=du:r h=at!..i es:\`a=r i:c:i:nde
+ Ac:ilmis: ta=ze gu:ller h=a=r i:c:i:nde
+ Seva=d..i naz!mdur s!an s!ah!n..i cennet
+ Tera=zu= vezndu:r ma\`na= k!iya=met
+ H=aya=l..i: beyt k!as!r..i ka=mra=ni=
+ I:ki: mis!ra\`dur i:ki: nerdu:ba=ni
+ H=at! u ma\`ni= ki: i:tmi:s: a=s:i:na=lik!
+ Gi:ce s:em\` i:le bulmis: ru=s:ena=lik!
+ Anun=c:u:n di:r go:ru:p ya=r..i suh=enda=n
+ Bulut i:c:i:ndedu:r s!an ma=h..i ta=ba=n
+ Hu:ma= olmak! gerek ma\`ni=nu:n= adi
+ Ki: beyt olmis: durur i:ki: k!ana=di
+ Yah=o=d naz!mum \`aru=si h=at! yeri:ne
+ T!ak!inmis: zi=net i:c:u:n \`anberi=ne
+ Ne zi=ba=dur go:r ol s!a=h!i:b-cema=li:
+ Ki: h=at!t! u nok!t!a olmis: zu:lf u: h=a=li:
+ Bu ni:ce ma\`ni= ni:ce h=at!t!a ben=zer
+ Hema=n bi:r k!as:i go:zi: k!ara di:lber
+ Ya \`a=s:ik!dur yi:ne bi:r meh-li:k!a=ya
+ Ki: go:n=legi:n boyamis:dur k!araya
+ Gu:zel ma\`ni= i:le h=at!t!..i di:l-a=vi=z
+ T!urur Gu:lgu=n i:le bi:r yerde S:ebdi=z
+ Zi:hi= h=at!t! u zi:hi= ma\`na=..yi ru=s:en
+ S!anasin pehleva=ndur geydi: cevs:en
+ H=aya=lu:n= gu=s:e..i: h=at!dur t!urag:i
+ Olurmis: mi=s:eler arslan yatag:i
+ Bu ni:ce s!ayd olur buna ne tedbi=r
+ Bu arslana gerekdu:r i:ki: zenci=r
+
+\nathr
+I:lahi= bu gu:ldeste..i: t!ara=vet-bah=s:a=..yi c:emen..i: mah!abbet ve bu
+nah=l..i: naz:a=ret-efza=..yi gu:ls:en..i: h!ayret mah!bu=blar bezmi:nu:n=
+a=ra=yi:s:i: ve \`a=s:ik!lar mec\-li:\-si:nu:n= a=sa=yi:s:i: olup \`ana=di:l..i:
+s:evk! ve bela=bi:l..i: z=evk! tema=s:a=sindan h!ayra=n ve bu=y..i
+di:l-a=vi=zi:nden ser-gerda=n olup a=sa=yi:s:..i: ca=n..i h=asta ve
+gu:s:a=yi:s:..i: h=a=t!ir..i beste ola.
+
+\beyt
+ Beyt
+ Bu ba=g:ba=n..i t!ab\`uma s!ad a=feri=n ki:m
+ Vi:rdi: ci:ha=na naz!mum i:le ra=yega=n gu:l
+
+\nathr
+Ve mercu=dur ki: bu la=leza=r..i h=aya=l ve sebzeza=r..i mak!a=l seyra=nga=h..i
+h=ava=\-t!ir-s!a=h!i:b-kema=l ve tema=s:a=ga=h..i z:ama=yi:r..i: ehl..i: h!a=l
+olup t!ab\`..i a=bda=r ve z=i:hn..i: cu=yba=rlarindan nad!ret..i: ta=ze ve
+h=ad!ret..i: bi=-enda=ze h!a=s!il eyleye.
+
+\beyt
+ Beyt
+ Gu:lza=r..i t!ab\`umun= deru:ben ta=ze gu:lleri:n
+ Bi:r nah=l bag:ladum k'ola \`a=lemde ya=di:ga=r
+
+\nathr
+Ve mu:tevak!k!a\`dur ki: bu res:ah!a=t..i: ki:lk..i: \`anber-ba=r ve
+nefah!a=t..i: h=a=me..i: si:h!r-a=s:a=r nesi=m..i: gu:lza=r ve hava=..yi
+ezha=r..i nevbaha=r gi:bi: ca=n-feza= vu: ru=h!-perver ve di:l-gu:s:a= vu:
+s!afa=-gu:ster olup h=alk!..i \`a=lem heva=da=ri olmag: i:le k!adr u:
+i:\`ti:ba=r bula.
+
+\beyt
+ Beyt
+ Yazmadan es:\`a=rumi olmis: durur h!ayra=n k!alem
+ Bu peri=s:a=n so:zleru:mden oldi ser-gerda=n k!alem
+
+\nathr
+Ve mes\'u=ldu:r ki: erba=b..i naz!ar ve as!h!a=b..i bas!ar bu evra=k!..i
+muh=at!t!at!a ve bu ecza=..yi muh=abbat!a di=de..i: k!abu=l i:le na=z!ir olup
+h=at!a=sin is!la=h buyurmag:la \`uyu=bin sa=ti:r olalar
+
+\beyt
+ Mes=nevi=
+ Go:n=u:l c:ekme so:zu:n=den i:nfi:\`a=li:
+ Bi:lu:r ehl..i: di:l olanlar bu h!a=li:
+ H=at!a=suz olmaz i:mi:s: hi=c: gu:fta=r
+ Olurmis: bi:r gu:lu:n= yaninda bi:n h=a=r
+
+\beyt
+ K!it!\`a
+ Reva=ni= bu ni:ce di=va=neli:kdu:r
+ Ki: di=va=n yazmag:a i:k!da=m i:dersi:n
+ Elu:n=e ca=m alup serh=o=s:lanursin
+ Hema=n sen kendu:n=i: bedna=m i:dersi:n
+
+\beyt
+ Mes=nevi=
+ I:la=hi= senden i:rmezse \`i:na=yet
+ Bu i:s:de eylemez \`ak!lum ki:fa=yet
+ Beni: sen s:ermsa=r i:tme I:la=hi=
+ Ki: s!ig:indum san=a ben ya= I:la=hi=
+\endmode
+\bye
diff --git a/language/turkish/inputs/tkccode.tex b/language/turkish/inputs/tkccode.tex
new file mode 100644
index 0000000000..39bc30c6ad
--- /dev/null
+++ b/language/turkish/inputs/tkccode.tex
@@ -0,0 +1,62 @@
+% uccodes and lccodes for Turkish font with full diacriticals.
+\chardef\`='43 \chardef\'='100 % codes for ayn and hamza (accents not needed)
+
+% codes required for postpositive accent convention
+
+\lccode`!=`! \uccode`!=`! % These four characters are
+\lccode`==`= \uccode`==`= % swallowed up by the ligtable
+\lccode`:=`: \uccode`:=`: % but must have \lccodes to
+\lccode`.=`. \uccode`.=`. % permit hyphenation of Turkish
+
+\lccode'43='43 \uccode'43='43 % ayn
+\lccode'100='100 \uccode'100='100 % hamza
+\lccode'175='175 \uccode'175='175 % dot for Persian izafet
+
+% uccodes and lccodes for future use with direct input
+
+\uccode'044='044 \uccode'074='044
+\uccode'013='013 \uccode'033='013
+\uccode'000='000 \uccode'020='000
+\uccode'014='014 \uccode'034='014
+\uccode'015='015 \uccode'035='015
+\uccode'001='001 \uccode'021='001
+\uccode'004='004 \uccode'024='004
+\uccode'005='005 \uccode'025='005
+\uccode'046='046 \uccode'076='046
+\uccode'007='007 \uccode'027='007
+\uccode'010='010 \uccode'030='010
+\uccode'016='016 \uccode'036='016
+\uccode'002='002 \uccode'022='002
+\uccode'003='003 \uccode'023='003
+\uccode'045='045 \uccode'075='045
+\uccode'017='017 \uccode'037='017
+\uccode'052='052 \uccode'053='052
+\uccode'0136='0136 \uccode'0176='0136
+\uccode'006='006 \uccode'026='006
+\uccode'011='011 \uccode'031='011
+\uccode'0137='0137 \uccode'0177='0137
+\uccode'012='012 \uccode'032='012
+
+
+\lccode'074='074 \lccode'044='074
+\lccode'033='033 \lccode'013='033
+\lccode'020='020 \lccode'000='020
+\lccode'034='034 \lccode'014='034
+\lccode'035='035 \lccode'015='035
+\lccode'021='021 \lccode'001='021
+\lccode'024='024 \lccode'004='024
+\lccode'025='025 \lccode'005='025
+\lccode'076='076 \lccode'046='076
+\lccode'027='027 \lccode'007='027
+\lccode'030='030 \lccode'010='030
+\lccode'036='036 \lccode'016='036
+\lccode'022='022 \lccode'002='022
+\lccode'023='023 \lccode'003='023
+\lccode'037='037 \lccode'017='037
+\lccode'075='075 \lccode'045='075
+\lccode'053='053 \lccode'052='053
+\lccode'0176='0176 \lccode'0136='0176
+\lccode'026='026 \lccode'006='026
+\lccode'031='031 \lccode'011='031
+\lccode'0177='0177 \lccode'0137='0177
+\lccode'032='032 \lccode'012='032
diff --git a/language/turkish/inputs/tkhyphen.tex b/language/turkish/inputs/tkhyphen.tex
new file mode 120000
index 0000000000..05b78e17ec
--- /dev/null
+++ b/language/turkish/inputs/tkhyphen.tex
@@ -0,0 +1 @@
+../../hyphenation/tkhyph.tex \ No newline at end of file
diff --git a/language/turkish/inputs/tplain.tex b/language/turkish/inputs/tplain.tex
new file mode 100644
index 0000000000..71966757bb
--- /dev/null
+++ b/language/turkish/inputs/tplain.tex
@@ -0,0 +1,1240 @@
+% This is a Turkish adaptation of the plain TeX format that's
+% described in The TeXbook, modified for Turkish fonts and hyphenation
+
+% Adapted by P. A. MacKay. 8 May, 1988
+
+% Would like to avoid using a modified plain, but need to replace
+% some of the preloaded fonts for a truly Turkish TeX
+
+\catcode`\{=1 % left brace is begin-group character
+\catcode`\}=2 % right brace is end-group character
+\catcode`\$=3 % dollar sign is math shift
+\catcode`\&=4 % ampersand is alignment tab
+\catcode`\#=6 % hash mark is macro parameter character
+\catcode`\^=7 \catcode`\^^K=7 % circumflex and uparrow are for superscripts
+\catcode`\_=8 \catcode`\^^A=8 % underline and downarrow are for subscripts
+\catcode`\^^I=10 % ascii tab is a blank space
+\chardef\active=13 \catcode`\~=\active % tilde is active
+\catcode`\^^L=\active \outer\def^^L{\par} % ascii form-feed is "\outer\par"
+
+\message{Preloading the plain format: codes,}
+
+% We had to define the \catcodes right away, before the message line,
+% since \message uses the { and } characters.
+% When INITEX (the TeX initializer) starts up,
+% it has defined the following \catcode values:
+% \catcode`\^^@=9 % ascii null is ignored
+% \catcode`\^^M=5 % ascii return is end-line
+% \catcode`\\=0 % backslash is TeX escape character
+% \catcode`\%=14 % percent sign is comment character
+% \catcode`\ =10 % ascii space is blank space
+% \catcode`\^^?=15 % ascii delete is invalid
+% \catcode`\A=11 ... \catcode`\Z=11 % uppercase letters
+% \catcode`\a=11 ... \catcode`\z=11 % lowercase letters
+% all others are type 12 (other)
+
+% Here is a list of the characters that have been specially catcoded:
+\def\dospecials{\do\ \do\\\do\{\do\}\do\$\do\&%
+ \do\#\do\^\do\^^K\do\_\do\^^A\do\%\do\~}
+% (not counting ascii null, tab, linefeed, formfeed, return, delete)
+% Each symbol in the list is preceded by \do, which can be defined
+% if you want to do something to every item in the list.
+
+% We make @ signs act like letters, temporarily, to avoid conflict
+% between user names and internal control sequences of plain format.
+\catcode`@=11
+
+% INITEX sets up \mathcode x=x, for x=0..127, except that
+% \mathcode x=x+"7100, for x = `A to `Z and `a to `z;
+% \mathcode x=x+"7000, for x = `0 to `9.
+% The following changes define internal codes as recommended
+% in Appendix C of The TeXbook:
+\mathcode`\^^@="2201 % \cdot
+\mathcode`\^^A="3223 % \downarrow
+\mathcode`\^^B="010B % \alpha
+\mathcode`\^^C="010C % \beta
+\mathcode`\^^D="225E % \land
+\mathcode`\^^E="023A % \lnot
+\mathcode`\^^F="3232 % \in
+\mathcode`\^^G="0119 % \pi
+\mathcode`\^^H="0115 % \lambda
+\mathcode`\^^I="010D % \gamma
+\mathcode`\^^J="010E % \delta
+\mathcode`\^^K="3222 % \uparrow
+\mathcode`\^^L="2206 % \pm
+\mathcode`\^^M="2208 % \oplus
+\mathcode`\^^N="0231 % \infty
+\mathcode`\^^O="0140 % \partial
+\mathcode`\^^P="321A % \subset
+\mathcode`\^^Q="321B % \supset
+\mathcode`\^^R="225C % \cap
+\mathcode`\^^S="225B % \cup
+\mathcode`\^^T="0238 % \forall
+\mathcode`\^^U="0239 % \exists
+\mathcode`\^^V="220A % \otimes
+\mathcode`\^^W="3224 % \leftrightarrow
+\mathcode`\^^X="3220 % \leftarrow
+\mathcode`\^^Y="3221 % \rightarrow
+\mathcode`\^^Z="8000 % \ne
+\mathcode`\^^[="2205 % \diamond
+\mathcode`\^^\="3214 % \le
+\mathcode`\^^]="3215 % \ge
+\mathcode`\^^^="3211 % \equiv
+\mathcode`\^^_="225F % \lor
+\mathcode`\ ="8000 % \space
+\mathcode`\!="5021
+\mathcode`\'="8000 % ^\prime
+\mathcode`\(="4028
+\mathcode`\)="5029
+\mathcode`\*="2203 % \ast
+\mathcode`\+="202B
+\mathcode`\,="613B
+\mathcode`\-="2200
+\mathcode`\.="013A
+\mathcode`\/="013D
+\mathcode`\:="303A
+\mathcode`\;="603B
+\mathcode`\<="313C
+\mathcode`\=="303D
+\mathcode`\>="313E
+\mathcode`\?="503F
+\mathcode`\[="405B
+\mathcode`\\="026E % \backslash
+\mathcode`\]="505D
+\mathcode`\_="8000 % \_
+\mathcode`\{="4266
+\mathcode`\|="026A
+\mathcode`\}="5267
+\mathcode`\^^?="1273 % \smallint
+
+% INITEX sets \uccode`x=`X and \uccode `X=`X for all letters x,
+% and \lccode`x=`x, \lccode`X=`x; all other values are zero.
+% No changes to those tables are needed in plain TeX format.
+
+% uccodes and lccodes for Turkish font with full diacriticals.
+
+\message{Turkish character codes,}
+
+\chardef\`='43 \chardef\'='100 % codes for ayn and hamza
+
+% codes required for postpositive accent convention
+
+\lccode`!=`! \uccode`!=`! % These three characters are
+\lccode`==`= \uccode`==`= % swallowed up by the ligtable
+\lccode`:=`: \uccode`:=`: % but must have \lccodes for hyphenation
+
+\lccode'43='43 \uccode'43='43 % ayn
+\lccode'100='100 \uccode'100='100 % hamza
+\lccode'175='175 \uccode'175='175 % dot for Persian izafet
+
+
+% INITEX sets \sfcode x=1000 for all x, except that \sfcode`X=999
+% for uppercase letters. The following changes are needed:
+\sfcode`\)=0 \sfcode`\'=0 \sfcode`\]=0
+% The \nonfrenchspacing macro will make further changes to \sfcode values.
+
+% Finally, INITEX sets all \delcode values to -1, except \delcode`.=0
+\delcode`\(="028300
+\delcode`\)="029301
+\delcode`\[="05B302
+\delcode`\]="05D303
+\delcode`\<="26830A
+\delcode`\>="26930B
+\delcode`\/="02F30E
+\delcode`\|="26A30C
+\delcode`\\="26E30F
+% N.B. { and } should NOT get delcodes; otherwise parameter grouping fails!
+
+% To make the plain macros more efficient in time and space,
+% several constant values are declared here as control sequences.
+% If they were changed, anything could happen; so they are private symbols.
+\chardef\@ne=1
+\chardef\tw@=2
+\chardef\thr@@=3
+\chardef\sixt@@n=16
+\chardef\@cclv=255
+\mathchardef\@cclvi=256
+\mathchardef\@m=1000
+\mathchardef\@M=10000
+\mathchardef\@MM=20000
+
+% Allocation of registers
+
+% Here are macros for the automatic allocation of \count, \box, \dimen,
+% \skip, \muskip, and \toks registers, as well as \read and \write
+% stream numbers, \fam codes, and \insert numbers.
+
+\message{registers,}
+
+% When a register is used only temporarily, it need not be allocated;
+% grouping can be used, making the value previously in the register return
+% after the close of the group. The main use of these macros is for
+% registers that are defined by one macro and used by others, possibly at
+% different nesting levels. All such registers should be defined through
+% these macros; otherwise conflicts may occur, especially when two or more
+% more macro packages are being used at once.
+
+% The following counters are reserved:
+% 0 to 9 page numbering
+% 10 count allocation
+% 11 dimen allocation
+% 12 skip allocation
+% 13 muskip allocation
+% 14 box allocation
+% 15 toks allocation
+% 16 read file allocation
+% 17 write file allocation
+% 18 math family allocation
+% 19 insert allocation
+% 20 the most recently allocated number
+% 21 constant -1
+% New counters are allocated starting with 22, 23, etc. Other registers are
+% allocated starting with 10. This leaves 0 through 9 for the user to play
+% with safely, except that counts 0 to 9 are considered to be the page and
+% subpage numbers (since they are displayed during output). In this scheme,
+% \count 10 always contains the number of the highest-numbered counter that
+% has been allocated, \count 14 the highest-numbered box, etc.
+% Inserts are given numbers 254, 253, etc., since they require a \count,
+% \dimen, \skip, and \box all with the same number; \count 19 contains the
+% lowest-numbered insert that has been allocated. Of course, \box255 is
+% reserved for \output; \count255, \dimen255, and \skip255 can be used freely.
+
+% It is recommended that macro designers always use
+% \global assignments with respect to registers numbered 1, 3, 5, 7, 9, and
+% always non-\global assignments with respect to registers 0, 2, 4, 6, 8, 255.
+% This will prevent ``save stack buildup'' that might otherwise occur.
+
+\count10=21 % allocates \count registers 22, 23, ...
+\count11=9 % allocates \dimen registers 10, 11, ...
+\count12=9 % allocates \skip registers 10, 11, ...
+\count13=9 % allocates \muskip registers 10, 11, ...
+\count14=9 % allocates \box registers 10, 11, ...
+\count15=9 % allocates \toks registers 10, 11, ...
+\count16=-1 % allocates input streams 0, 1, ...
+\count17=-1 % allocates output streams 0, 1, ...
+\count18=3 % allocates math families 4, 5, ...
+\count19=255 % allocates insertions 254, 253, ...
+\countdef\insc@unt=19 % the insertion counter
+\countdef\allocationnumber=20 % the most recent allocation
+\countdef\m@ne=21 \m@ne=-1 % a handy constant
+\def\wlog{\immediate\write\m@ne} % write on log file (only)
+
+% Here are abbreviations for the names of scratch registers
+% that don't need to be allocated.
+
+\countdef\count@=255
+\dimendef\dimen@=0
+\dimendef\dimen@i=1 % global only
+\dimendef\dimen@ii=2
+\skipdef\skip@=0
+\toksdef\toks@=0
+
+% Now, we define \newcount, \newbox, etc. so that you can say \newcount\foo
+% and \foo will be defined (with \countdef) to be the next counter.
+% To find out which counter \foo is, you can look at \allocationnumber.
+% Since there's no \boxdef command, \chardef is used to define a \newbox,
+% \newinsert, \newfam, and so on.
+
+\outer\def\newcount{\alloc@0\count\countdef\insc@unt}
+\outer\def\newdimen{\alloc@1\dimen\dimendef\insc@unt}
+\outer\def\newskip{\alloc@2\skip\skipdef\insc@unt}
+\outer\def\newmuskip{\alloc@3\muskip\muskipdef\@cclvi}
+\outer\def\newbox{\alloc@4\box\chardef\insc@unt}
+\let\newtoks=\relax % we do this to allow plain.tex to be read in twice
+\outer\def\newhelp#1#2{\newtoks#1#1\expandafter{\csname#2\endcsname}}
+\outer\def\newtoks{\alloc@5\toks\toksdef\@cclvi}
+\outer\def\newread{\alloc@6\read\chardef\sixt@@n}
+\outer\def\newwrite{\alloc@7\write\chardef\sixt@@n}
+\outer\def\newfam{\alloc@8\fam\chardef\sixt@@n}
+\def\alloc@#1#2#3#4#5{\global\advance\count1#1by\@ne
+ \ch@ck#1#4#2% make sure there's still room
+ \allocationnumber=\count1#1%
+ \global#3#5=\allocationnumber
+ \wlog{\string#5=\string#2\the\allocationnumber}}
+\outer\def\newinsert#1{\global\advance\insc@unt by\m@ne
+ \ch@ck0\insc@unt\count
+ \ch@ck1\insc@unt\dimen
+ \ch@ck2\insc@unt\skip
+ \ch@ck4\insc@unt\box
+ \allocationnumber=\insc@unt
+ \global\chardef#1=\allocationnumber
+ \wlog{\string#1=\string\insert\the\allocationnumber}}
+\def\ch@ck#1#2#3{\ifnum\count1#1<#2%
+ \else\errmessage{No room for a new #3}\fi}
+
+% Here are some examples of allocation.
+\newdimen\maxdimen \maxdimen=16383.99999pt % the largest legal <dimen>
+\newskip\hideskip \hideskip=-1000pt plus 1fill % negative but can grow
+\newskip\centering \centering=0pt plus 1000pt minus 1000pt
+\newdimen\p@ \p@=1pt % this saves macro space and time
+\newdimen\z@ \z@=0pt % can be used both for 0pt and 0
+\newskip\z@skip \z@skip=0pt plus0pt minus0pt
+\newbox\voidb@x % permanently void box register
+
+% And here's a different sort of allocation:
+% For example, \newif\iffoo creates \footrue, \foofalse to go with \iffoo.
+\outer\def\newif#1{\count@\escapechar \escapechar\m@ne
+ \expandafter\expandafter\expandafter
+ \edef\@if#1{true}{\let\noexpand#1=\noexpand\iftrue}%
+ \expandafter\expandafter\expandafter
+ \edef\@if#1{false}{\let\noexpand#1=\noexpand\iffalse}%
+ \@if#1{false}\escapechar\count@} % the condition starts out false
+\def\@if#1#2{\csname\expandafter\if@\string#1#2\endcsname}
+{\uccode`1=`i \uccode`2=`f \uppercase{\gdef\if@12{}}} % `if' is required
+
+% Assign initial values to TeX's parameters
+
+\message{parameters,}
+
+% All of TeX's numeric parameters are listed here,
+% but the code is commented out if no special value needs to be set.
+% INITEX makes all parameters zero except where noted.
+
+\pretolerance=100
+\tolerance=200 % INITEX sets this to 10000
+\hbadness=1000
+\vbadness=1000
+\linepenalty=10
+\hyphenpenalty=50
+\exhyphenpenalty=50
+\binoppenalty=700
+\relpenalty=500
+\clubpenalty=150
+\widowpenalty=150
+\displaywidowpenalty=50
+\brokenpenalty=100
+\predisplaypenalty=10000
+% \postdisplaypenalty=0
+% \interlinepenalty=0
+% \floatingpenalty=0, set during \insert
+% \outputpenalty=0, set before TeX enters \output
+\doublehyphendemerits=10000
+\finalhyphendemerits=5000
+\adjdemerits=10000
+% \looseness=0, cleared by TeX after each paragraph
+% \pausing=0
+% \tracingonline=0
+% \tracingmacros=0
+% \tracingstats=0
+% \tracingparagraphs=0
+% \tracingpages=0
+% \tracingoutput=0
+\tracinglostchars=1
+% \tracingcommands=0
+% \tracingrestores=0
+\uchyph=1
+% \globaldefs=0
+% \maxdeadcycles=25 % INITEX does this
+% \hangafter=1 % INITEX does this, also TeX after each paragraph
+% \fam=0
+% \mag=1000 % INITEX does this
+% \escapechar=`\\ % INITEX does this
+\defaulthyphenchar=`\-
+\defaultskewchar=-1
+% \endlinechar=`\^^M % INITEX does this
+\newlinechar=-1
+\delimiterfactor=901
+% \time=now % TeX does this at beginning of job
+% \day=now % TeX does this at beginning of job
+% \month=now % TeX does this at beginning of job
+% \year=now % TeX does this at beginning of job
+\showboxbreadth=5
+\showboxdepth=3
+
+\hfuzz=0.1pt
+\vfuzz=0.1pt
+\overfullrule=5pt
+\hsize=6.5in
+\vsize=8.9in
+\maxdepth=4pt
+\splitmaxdepth=\maxdimen
+\boxmaxdepth=\maxdimen
+% \lineskiplimit=0pt, changed by \normalbaselines
+\delimitershortfall=5pt
+\nulldelimiterspace=1.2pt
+\scriptspace=0.5pt
+% \mathsurround=0pt
+% \predisplaysize=0pt, set before TeX enters $$
+% \displaywidth=0pt, set before TeX enters $$
+% \displayindent=0pt, set before TeX enters $$
+\parindent=20pt
+% \hangindent=0pt, zeroed by TeX after each paragraph
+% \hoffset=0pt
+% \voffset=0pt
+
+% \baselineskip=0pt, changed by \normalbaselines
+% \lineskip=0pt, changed by \normalbaselines
+\parskip=0pt plus 1pt
+\abovedisplayskip=12pt plus 3pt minus 9pt
+\abovedisplayshortskip=0pt plus 3pt
+\belowdisplayskip=12pt plus 3pt minus 9pt
+\belowdisplayshortskip=7pt plus 3pt minus 4pt
+% \leftskip=0pt
+% \rightskip=0pt
+\topskip=10pt
+\splittopskip=10pt
+% \tabskip=0pt
+% \spaceskip=0pt
+% \xspaceskip=0pt
+\parfillskip=0pt plus 1fil
+
+\thinmuskip=3mu
+\medmuskip=4mu plus 2mu minus 4mu
+\thickmuskip=5mu plus 5mu
+
+% We also define special registers that function like parameters:
+\newskip\smallskipamount \smallskipamount=3pt plus 1pt minus 1pt
+\newskip\medskipamount \medskipamount=6pt plus 2pt minus 2pt
+\newskip\bigskipamount \bigskipamount=12pt plus 4pt minus 4pt
+\newskip\normalbaselineskip \normalbaselineskip=12pt
+\newskip\normallineskip \normallineskip=1pt
+\newdimen\normallineskiplimit \normallineskiplimit=0pt
+\newdimen\jot \jot=3pt
+\newcount\interdisplaylinepenalty \interdisplaylinepenalty=100
+\newcount\interfootnotelinepenalty \interfootnotelinepenalty=100
+
+% Definitions for preloaded fonts
+
+\def\magstephalf{1095 }
+\def\magstep#1{\ifcase#1 \@m\or 1200\or 1440\or 1728\or 2074\or 2488\fi\relax}
+
+% Fonts assigned to \preloaded are not part of "plain TeX",
+% but they are preloaded so that other format packages can use them.
+% For example, if another set of macros says "\font\ninerm=cmr9",
+% TeX will not have to reload the font metric information for cmr9.
+
+\message{fonts,}
+
+\font\tenrm=wtkr10 % roman text
+\font\preloaded=cmr9
+\font\preloaded=cmr8
+\font\sevenrm=cmr7
+\font\preloaded=cmr6
+\font\fiverm=cmr5
+
+\font\teni=cmmi10 % math italic
+\font\preloaded=cmmi9
+\font\preloaded=cmmi8
+\font\seveni=cmmi7
+\font\preloaded=cmmi6
+\font\fivei=cmmi5
+
+\font\tensy=cmsy10 % math symbols
+\font\preloaded=cmsy9
+\font\preloaded=cmsy8
+\font\sevensy=cmsy7
+\font\preloaded=cmsy6
+\font\fivesy=cmsy5
+
+\font\tenex=cmex10 % math extension
+
+\font\preloaded=cmss10 % sans serif
+\font\preloaded=cmssq8
+
+\font\preloaded=cmssi10 % sans serif italic
+\font\preloaded=cmssqi8
+
+\font\tenbf=cmbx10 % boldface extended
+\font\preloaded=cmbx9
+\font\preloaded=cmbx8
+\font\sevenbf=cmbx7
+\font\preloaded=cmbx6
+\font\fivebf=cmbx5
+
+\font\tentt=cmtt10 % typewriter
+\font\preloaded=cmtt9
+\font\preloaded=cmtt8
+
+\font\preloaded=cmsltt10 % slanted typewriter
+
+\font\tensl=cmsl10 % slanted roman
+\font\preloaded=cmsl9
+\font\preloaded=cmsl8
+
+\font\tenit=wtkti10 % text italic
+\font\preloaded=cmti9
+\font\preloaded=cmti8
+\font\preloaded=cmti7
+
+\message{more fonts,}
+\font\preloaded=cmu10 % unslanted text italic
+
+\font\preloaded=cmmib10 % bold math italic
+\font\preloaded=cmbsy10 % bold math symbols
+
+\font\preloaded=cmcsc10 % caps and small caps
+
+\font\preloaded=cmssbx10 % sans serif bold extended
+
+\font\preloaded=cmdunh10 % Dunhill style
+
+\font\preloaded=cmr7 scaled \magstep4 % for titles
+\font\preloaded=cmtt10 scaled \magstep2
+\font\preloaded=cmssbx10 scaled \magstep2
+
+\font\preloaded=manfnt % METAFONT logo and dragon curve and special symbols
+
+% Additional \preloaded fonts can be specified here.
+% (And those that were \preloaded above can be eliminated.)
+
+\let\preloaded=\undefined % preloaded fonts must be declared anew later.
+
+\skewchar\teni='177 \skewchar\seveni='177 \skewchar\fivei='177
+\skewchar\tensy='60 \skewchar\sevensy='60 \skewchar\fivesy='60
+
+\textfont0=\tenrm \scriptfont0=\sevenrm \scriptscriptfont0=\fiverm
+\def\rm{\fam\z@\tenrm}
+\textfont1=\teni \scriptfont1=\seveni \scriptscriptfont1=\fivei
+\def\mit{\fam\@ne} \def\oldstyle{\fam\@ne\teni}
+\textfont2=\tensy \scriptfont2=\sevensy \scriptscriptfont2=\fivesy
+\def\cal{\fam\tw@}
+\textfont3=\tenex \scriptfont3=\tenex \scriptscriptfont3=\tenex
+\newfam\itfam \def\it{\fam\itfam\tenit} % \it is family 4
+\textfont\itfam=\tenit
+\newfam\slfam \def\sl{\fam\slfam\tensl} % \sl is family 5
+\textfont\slfam=\tensl
+\newfam\bffam \def\bf{\fam\bffam\tenbf} % \bf is family 6
+\textfont\bffam=\tenbf \scriptfont\bffam=\sevenbf
+\scriptscriptfont\bffam=\fivebf
+\newfam\ttfam \def\tt{\fam\ttfam\tentt} % \tt is family 7
+\textfont\ttfam=\tentt
+
+% Macros for setting ordinary text
+\message{macros,}
+
+\def\frenchspacing{\sfcode`\.\@m \sfcode`\?\@m \sfcode`\!\@m
+ \sfcode`\:\@m \sfcode`\;\@m \sfcode`\,\@m}
+\def\nonfrenchspacing{\sfcode`\.3000\sfcode`\?3000\sfcode`\!3000%
+ \sfcode`\:2000\sfcode`\;1500\sfcode`\,1250 }
+
+\def\normalbaselines{\lineskip\normallineskip
+ \baselineskip\normalbaselineskip \lineskiplimit\normallineskiplimit}
+
+\def\^^M{\ } % control <return> = control <space>
+\def\^^I{\ } % same for <tab>
+
+\def\lq{`} \def\rq{'}
+\def\lbrack{[} \def\rbrack{]}
+
+\let\endgraf=\par \let\endline=\cr
+
+\def\space{ }
+\def\empty{}
+\def\null{\hbox{}}
+
+\let\bgroup={ \let\egroup=}
+
+% In \obeylines, we say `\let^^M=\par' instead of `\def^^M{\par}'
+% since this allows, for example, `\let\par=\cr \obeylines \halign{...'
+{\catcode`\^^M=\active % these lines must end with %
+ \gdef\obeylines{\catcode`\^^M\active \let^^M\par}%
+ \global\let^^M\par} % this is in case ^^M appears in a \write
+\def\obeyspaces{\catcode`\ \active}
+{\obeyspaces\global\let =\space}
+
+\def\loop#1\repeat{\def\body{#1}\iterate}
+\def\iterate{\body \let\next\iterate \else\let\next\relax\fi \next}
+\let\repeat=\fi % this makes \loop...\if...\repeat skippable
+
+\def\thinspace{\kern .16667em }
+\def\negthinspace{\kern-.16667em }
+\def\enspace{\kern.5em }
+
+\def\enskip{\hskip.5em\relax}
+\def\quad{\hskip1em\relax}
+\def\qquad{\hskip2em\relax}
+
+\def\smallskip{\vskip\smallskipamount}
+\def\medskip{\vskip\medskipamount}
+\def\bigskip{\vskip\bigskipamount}
+
+\def\nointerlineskip{\prevdepth-1000\p@}
+\def\offinterlineskip{\baselineskip-1000\p@
+ \lineskip\z@ \lineskiplimit\maxdimen}
+
+\def\vglue{\afterassignment\vgl@\skip@=}
+\def\vgl@{\par \dimen@\prevdepth \hrule height\z@
+ \nobreak\vskip\skip@ \prevdepth\dimen@}
+\def\hglue{\afterassignment\hgl@\skip@=}
+\def\hgl@{\leavevmode \count@\spacefactor \vrule width\z@
+ \nobreak\hskip\skip@ \spacefactor\count@}
+
+\def~{\penalty\@M \ } % tie
+\def\slash{/\penalty\exhyphenpenalty} % a `/' that acts like a `-'
+
+\def\break{\penalty-\@M}
+\def\nobreak{\penalty \@M}
+\def\allowbreak{\penalty \z@}
+
+\def\filbreak{\par\vfil\penalty-200\vfilneg}
+\def\goodbreak{\par\penalty-500 }
+\def\eject{\par\break}
+\def\supereject{\par\penalty-\@MM}
+
+\def\removelastskip{\ifdim\lastskip=\z@\else\vskip-\lastskip\fi}
+\def\smallbreak{\par\ifdim\lastskip<\smallskipamount
+ \removelastskip\penalty-50\smallskip\fi}
+\def\medbreak{\par\ifdim\lastskip<\medskipamount
+ \removelastskip\penalty-100\medskip\fi}
+\def\bigbreak{\par\ifdim\lastskip<\bigskipamount
+ \removelastskip\penalty-200\bigskip\fi}
+
+\def\line{\hbox to\hsize}
+\def\leftline#1{\line{#1\hss}}
+\def\rightline#1{\line{\hss#1}}
+\def\centerline#1{\line{\hss#1\hss}}
+
+\def\rlap#1{\hbox to\z@{#1\hss}}
+\def\llap#1{\hbox to\z@{\hss#1}}
+
+\def\m@th{\mathsurround=\z@}
+\def\underbar#1{$\setbox\z@\hbox{#1}\dp\z@\z@
+ \m@th \underline{\box\z@}$}
+
+\newbox\strutbox
+\setbox\strutbox=\hbox{\vrule height8.5pt depth3.5pt width\z@}
+\def\strut{\relax\ifmmode\copy\strutbox\else\unhcopy\strutbox\fi}
+
+\def\hidewidth{\hskip\hideskip} % for alignment entries that can stick out
+\def\ialign{\everycr{}\tabskip\z@skip\halign} % initialized \halign
+\newcount\mscount
+\def\multispan#1{\omit \mscount#1
+ \loop\ifnum\mscount>\@ne \sp@n\repeat}
+\def\sp@n{\span\omit\advance\mscount\m@ne}
+
+\newif\ifus@ \newif\if@cr
+\newbox\tabs \newbox\tabsyet \newbox\tabsdone
+
+\def\cleartabs{\global\setbox\tabsyet\null \setbox\tabs\null}
+\def\settabs{\setbox\tabs\null \futurelet\next\sett@b}
+\let\+=\relax % in case this file is being read in twice
+\def\sett@b{\ifx\next\+\let\next\relax
+ \def\next{\afterassignment\s@tt@b\let\next}%
+ \else\let\next\s@tcols\fi\next}
+\def\s@tt@b{\let\next\relax\us@false\m@ketabbox}
+\def\tabalign{\us@true\m@ketabbox} % non-\outer version of \+
+\outer\def\+{\tabalign}
+\def\s@tcols#1\columns{\count@#1 \dimen@\hsize
+ \loop\ifnum\count@>\z@ \@nother \repeat}
+\def\@nother{\dimen@ii\dimen@ \divide\dimen@ii\count@
+ \setbox\tabs\hbox{\hbox to\dimen@ii{}\unhbox\tabs}%
+ \advance\dimen@-\dimen@ii \advance\count@\m@ne}
+
+\def\m@ketabbox{\begingroup
+ \global\setbox\tabsyet\copy\tabs
+ \global\setbox\tabsdone\null
+ \def\cr{\@crtrue\crcr\egroup\egroup
+ \ifus@\unvbox\z@\lastbox\fi\endgroup
+ \setbox\tabs\hbox{\unhbox\tabsyet\unhbox\tabsdone}}%
+ \setbox\z@\vbox\bgroup\@crfalse
+ \ialign\bgroup&\t@bbox##\t@bb@x\crcr}
+
+\def\t@bbox{\setbox\z@\hbox\bgroup}
+\def\t@bb@x{\if@cr\egroup % now \box\z@ holds the column
+ \else\hss\egroup \global\setbox\tabsyet\hbox{\unhbox\tabsyet
+ \global\setbox\@ne\lastbox}% now \box\@ne holds its size
+ \ifvoid\@ne\global\setbox\@ne\hbox to\wd\z@{}%
+ \else\setbox\z@\hbox to\wd\@ne{\unhbox\z@}\fi
+ \global\setbox\tabsdone\hbox{\box\@ne\unhbox\tabsdone}\fi
+ \box\z@}
+
+\def\hang{\hangindent\parindent}
+\def\textindent#1{\indent\llap{#1\enspace}\ignorespaces}
+\def\item{\par\hang\textindent}
+\def\itemitem{\par\indent \hangindent2\parindent \textindent}
+\def\narrower{\advance\leftskip\parindent
+ \advance\rightskip\parindent}
+
+\outer\def\beginsection#1\par{\vskip\z@ plus.3\vsize\penalty-250
+ \vskip\z@ plus-.3\vsize\bigskip\vskip\parskip
+ \message{#1}\leftline{\bf#1}\nobreak\smallskip\noindent}
+\outer\def\proclaim #1. #2\par{\medbreak
+ \noindent{\bf#1.\enspace}{\sl#2}\par
+ \ifdim\lastskip<\medskipamount \removelastskip\penalty55\medskip\fi}
+
+\def\raggedright{\rightskip\z@ plus2em \spaceskip.3333em \xspaceskip.5em\relax}
+\def\ttraggedright{\tt\rightskip\z@ plus2em\relax} % for use with \tt only
+
+\chardef\%=`\%
+\chardef\&=`\&
+\chardef\#=`\#
+\chardef\$=`\$
+\chardef\ss="19
+\chardef\ae="1A
+\chardef\oe="1B
+\chardef\o="1C
+\chardef\AE="1D
+\chardef\OE="1E
+\chardef\O="1F
+\chardef\i="10 \chardef\j="11 % dotless letters
+\def\aa{\accent23a}
+\def\l{\char32l}
+\def\L{\leavevmode\setbox0\hbox{L}\hbox to\wd0{\hss\char32L}}
+
+\def\leavevmode{\unhbox\voidb@x} % begins a paragraph, if necessary
+\def\_{\leavevmode \kern.06em \vbox{\hrule width.3em}}
+\def\AA{\leavevmode\setbox0\hbox{h}\dimen@\ht0\advance\dimen@-1ex%
+ \rlap{\raise.67\dimen@\hbox{\char'27}}A}
+
+\def\mathhexbox#1#2#3{\leavevmode
+ \hbox{$\m@th \mathchar"#1#2#3$}}
+\def\dag{\mathhexbox279}
+\def\ddag{\mathhexbox27A}
+\def\S{\mathhexbox278}
+\def\P{\mathhexbox27B}
+
+\def\oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex%
+ \ialign{##\crcr#1\crcr}}} % put characters over each other
+\def\ooalign{\lineskiplimit-\maxdimen \oalign}
+\def\d#1{\oalign{#1\crcr\hidewidth.\hidewidth}}
+\def\b#1{\oalign{#1\crcr\hidewidth
+ \vbox to.2ex{\hbox{\char22}\vss}\hidewidth}}
+\def\c#1{\setbox\z@\hbox{#1}\ifdim\ht\z@=1ex\accent24 #1%
+ \else{\ooalign{\hidewidth\char24\hidewidth\crcr\unhbox\z@}}\fi}
+\def\copyright{{\ooalign{\hfil\raise.07ex\hbox{c}\hfil\crcr\mathhexbox20D}}}
+
+\def\dots{\relax\ifmmode\ldots\else$\m@th\ldots\,$\fi}
+\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}
+
+\def\v#1{{\accent20 #1}} \let\^^_=\v
+\def\u#1{{\accent21 #1}} \let\^^S=\u
+\def\=#1{{\accent22 #1}}
+\def\^#1{{\accent94 #1}} \let\^^D=\^
+\def\.#1{{\accent95 #1}}
+\def\H#1{{\accent"7D #1}}
+\def\~#1{{\accent"7E #1}}
+\def\"#1{{\accent"7F #1}}
+\def\t#1{{\edef\next{\the\font}\the\textfont1\accent"7F\next#1}}
+
+\def\hrulefill{\leaders\hrule\hfill}
+\def\dotfill{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill}
+\def\rightarrowfill{$\m@th\mathord-\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
+ \mkern-6mu\mathord\rightarrow$}
+\def\leftarrowfill{$\m@th\mathord\leftarrow\mkern-6mu%
+ \cleaders\hbox{$\mkern-2mu\mathord-\mkern-2mu$}\hfill
+ \mkern-6mu\mathord-$}
+\mathchardef\braceld="37A \mathchardef\bracerd="37B
+\mathchardef\bracelu="37C \mathchardef\braceru="37D
+\def\downbracefill{$\m@th\braceld\leaders\vrule\hfill\braceru
+ \bracelu\leaders\vrule\hfill\bracerd$}
+\def\upbracefill{$\m@th\bracelu\leaders\vrule\hfill\bracerd
+ \braceld\leaders\vrule\hfill\braceru$}
+
+\outer\def\bye{\par\vfill\supereject\end}
+
+% Macros for math setting
+\message{math definitions,}
+
+\let\sp=^ \let\sb=_
+\def\,{\mskip\thinmuskip}
+\def\>{\mskip\medmuskip}
+\def\;{\mskip\thickmuskip}
+\def\!{\mskip-\thinmuskip}
+\def\*{\discretionary{\thinspace\the\textfont2\char2}{}{}}
+{\catcode`\'=\active \gdef'{^\bgroup\prim@s}}
+\def\prim@s{\prime\futurelet\next\pr@m@s}
+\def\pr@m@s{\ifx'\next\let\nxt\pr@@@s \else\ifx^\next\let\nxt\pr@@@t
+ \else\let\nxt\egroup\fi\fi \nxt}
+\def\pr@@@s#1{\prim@s} \def\pr@@@t#1#2{#2\egroup}
+{\catcode`\^^Z=\active \gdef^^Z{\not=}} % ^^Z is like \ne in math
+
+{\catcode`\_=\active \global\let_=\_} % _ in math is either subscript or \_
+
+\mathchardef\alpha="010B
+\mathchardef\beta="010C
+\mathchardef\gamma="010D
+\mathchardef\delta="010E
+\mathchardef\epsilon="010F
+\mathchardef\zeta="0110
+\mathchardef\eta="0111
+\mathchardef\theta="0112
+\mathchardef\iota="0113
+\mathchardef\kappa="0114
+\mathchardef\lambda="0115
+\mathchardef\mu="0116
+\mathchardef\nu="0117
+\mathchardef\xi="0118
+\mathchardef\pi="0119
+\mathchardef\rho="011A
+\mathchardef\sigma="011B
+\mathchardef\tau="011C
+\mathchardef\upsilon="011D
+\mathchardef\phi="011E
+\mathchardef\chi="011F
+\mathchardef\psi="0120
+\mathchardef\omega="0121
+\mathchardef\varepsilon="0122
+\mathchardef\vartheta="0123
+\mathchardef\varpi="0124
+\mathchardef\varrho="0125
+\mathchardef\varsigma="0126
+\mathchardef\varphi="0127
+\mathchardef\Gamma="7000
+\mathchardef\Delta="7001
+\mathchardef\Theta="7002
+\mathchardef\Lambda="7003
+\mathchardef\Xi="7004
+\mathchardef\Pi="7005
+\mathchardef\Sigma="7006
+\mathchardef\Upsilon="7007
+\mathchardef\Phi="7008
+\mathchardef\Psi="7009
+\mathchardef\Omega="700A
+
+\mathchardef\aleph="0240
+\def\hbar{{\mathchar'26\mkern-9muh}}
+\mathchardef\imath="017B
+\mathchardef\jmath="017C
+\mathchardef\ell="0160
+\mathchardef\wp="017D
+\mathchardef\Re="023C
+\mathchardef\Im="023D
+\mathchardef\partial="0140
+\mathchardef\infty="0231
+\mathchardef\prime="0230
+\mathchardef\emptyset="023B
+\mathchardef\nabla="0272
+\def\surd{{\mathchar"1270}}
+\mathchardef\top="023E
+\mathchardef\bot="023F
+\def\angle{{\vbox{\ialign{$\m@th\scriptstyle##$\crcr
+ \not\mathrel{\mkern14mu}\crcr
+ \noalign{\nointerlineskip}
+ \mkern2.5mu\leaders\hrule height.34pt\hfill\mkern2.5mu\crcr}}}}
+\mathchardef\triangle="0234
+\mathchardef\forall="0238
+\mathchardef\exists="0239
+\mathchardef\neg="023A \let\lnot=\neg
+\mathchardef\flat="015B
+\mathchardef\natural="015C
+\mathchardef\sharp="015D
+\mathchardef\clubsuit="027C
+\mathchardef\diamondsuit="027D
+\mathchardef\heartsuit="027E
+\mathchardef\spadesuit="027F
+
+\mathchardef\coprod="1360
+\mathchardef\bigvee="1357
+\mathchardef\bigwedge="1356
+\mathchardef\biguplus="1355
+\mathchardef\bigcap="1354
+\mathchardef\bigcup="1353
+\mathchardef\intop="1352 \def\int{\intop\nolimits}
+\mathchardef\prod="1351
+\mathchardef\sum="1350
+\mathchardef\bigotimes="134E
+\mathchardef\bigoplus="134C
+\mathchardef\bigodot="134A
+\mathchardef\ointop="1348 \def\oint{\ointop\nolimits}
+\mathchardef\bigsqcup="1346
+\mathchardef\smallint="1273
+
+\mathchardef\triangleleft="212F
+\mathchardef\triangleright="212E
+\mathchardef\bigtriangleup="2234
+\mathchardef\bigtriangledown="2235
+\mathchardef\wedge="225E \let\land=\wedge
+\mathchardef\vee="225F \let\lor=\vee
+\mathchardef\cap="225C
+\mathchardef\cup="225B
+\mathchardef\ddagger="227A
+\mathchardef\dagger="2279
+\mathchardef\sqcap="2275
+\mathchardef\sqcup="2274
+\mathchardef\uplus="225D
+\mathchardef\amalg="2271
+\mathchardef\diamond="2205
+\mathchardef\bullet="220F
+\mathchardef\wr="226F
+\mathchardef\div="2204
+\mathchardef\odot="220C
+\mathchardef\oslash="220B
+\mathchardef\otimes="220A
+\mathchardef\ominus="2209
+\mathchardef\oplus="2208
+\mathchardef\mp="2207
+\mathchardef\pm="2206
+\mathchardef\circ="220E
+\mathchardef\bigcirc="220D
+\mathchardef\setminus="226E % for set difference A\setminus B
+\mathchardef\cdot="2201
+\mathchardef\ast="2203
+\mathchardef\times="2202
+\mathchardef\star="213F
+
+\mathchardef\propto="322F
+\mathchardef\sqsubseteq="3276
+\mathchardef\sqsupseteq="3277
+\mathchardef\parallel="326B
+\mathchardef\mid="326A
+\mathchardef\dashv="3261
+\mathchardef\vdash="3260
+\mathchardef\nearrow="3225
+\mathchardef\searrow="3226
+\mathchardef\nwarrow="322D
+\mathchardef\swarrow="322E
+\mathchardef\Leftrightarrow="322C
+\mathchardef\Leftarrow="3228
+\mathchardef\Rightarrow="3229
+\def\neq{\not=} \let\ne=\neq
+\mathchardef\leq="3214 \let\le=\leq
+\mathchardef\geq="3215 \let\ge=\geq
+\mathchardef\succ="321F
+\mathchardef\prec="321E
+\mathchardef\approx="3219
+\mathchardef\succeq="3217
+\mathchardef\preceq="3216
+\mathchardef\supset="321B
+\mathchardef\subset="321A
+\mathchardef\supseteq="3213
+\mathchardef\subseteq="3212
+\mathchardef\in="3232
+\mathchardef\ni="3233 \let\owns=\ni
+\mathchardef\gg="321D
+\mathchardef\ll="321C
+\mathchardef\not="3236
+\mathchardef\leftrightarrow="3224
+\mathchardef\leftarrow="3220 \let\gets=\leftarrow
+\mathchardef\rightarrow="3221 \let\to=\rightarrow
+\mathchardef\mapstochar="3237 \def\mapsto{\mapstochar\rightarrow}
+\mathchardef\sim="3218
+\mathchardef\simeq="3227
+\mathchardef\perp="323F
+\mathchardef\equiv="3211
+\mathchardef\asymp="3210
+\mathchardef\smile="315E
+\mathchardef\frown="315F
+\mathchardef\leftharpoonup="3128
+\mathchardef\leftharpoondown="3129
+\mathchardef\rightharpoonup="312A
+\mathchardef\rightharpoondown="312B
+
+\def\joinrel{\mathrel{\mkern-3mu}}
+\def\relbar{\mathrel{\smash-}} % \smash, because - has the same height as +
+\def\Relbar{\mathrel=}
+\mathchardef\lhook="312C \def\hookrightarrow{\lhook\joinrel\rightarrow}
+\mathchardef\rhook="312D \def\hookleftarrow{\leftarrow\joinrel\rhook}
+\def\bowtie{\mathrel\triangleright\joinrel\mathrel\triangleleft}
+\def\models{\mathrel|\joinrel=}
+\def\Longrightarrow{\Relbar\joinrel\Rightarrow}
+\def\longrightarrow{\relbar\joinrel\rightarrow}
+\def\longleftarrow{\leftarrow\joinrel\relbar}
+\def\Longleftarrow{\Leftarrow\joinrel\Relbar}
+\def\longmapsto{\mapstochar\longrightarrow}
+\def\longleftrightarrow{\leftarrow\joinrel\rightarrow}
+\def\Longleftrightarrow{\Leftarrow\joinrel\Rightarrow}
+\def\iff{\;\Longleftrightarrow\;}
+
+\mathchardef\ldotp="602E % ldot as a punctuation mark
+\mathchardef\cdotp="6201 % cdot as a punctuation mark
+\mathchardef\colon="603A % colon as a punctuation mark
+\def\ldots{\mathinner{\ldotp\ldotp\ldotp}}
+\def\cdots{\mathinner{\cdotp\cdotp\cdotp}}
+\def\vdots{\vbox{\baselineskip4\p@ \lineskiplimit\z@
+ \kern6\p@\hbox{.}\hbox{.}\hbox{.}}}
+\def\ddots{\mathinner{\mkern1mu\raise7\p@\vbox{\kern7\p@\hbox{.}}\mkern2mu
+ \raise4\p@\hbox{.}\mkern2mu\raise\p@\hbox{.}\mkern1mu}}
+
+\def\acute{\mathaccent"7013 }
+\def\grave{\mathaccent"7012 }
+\def\ddot{\mathaccent"707F }
+\def\tilde{\mathaccent"707E }
+\def\bar{\mathaccent"7016 }
+\def\breve{\mathaccent"7015 }
+\def\check{\mathaccent"7014 }
+\def\hat{\mathaccent"705E }
+\def\vec{\mathaccent"017E }
+\def\dot{\mathaccent"705F }
+\def\widetilde{\mathaccent"0365 }
+\def\widehat{\mathaccent"0362 }
+\def\overrightarrow#1{\vbox{\ialign{##\crcr
+ \rightarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\def\overleftarrow#1{\vbox{\ialign{##\crcr
+ \leftarrowfill\crcr\noalign{\kern-\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}
+\def\overbrace#1{\mathop{\vbox{\ialign{##\crcr\noalign{\kern3\p@}
+ \downbracefill\crcr\noalign{\kern3\p@\nointerlineskip}
+ $\hfil\displaystyle{#1}\hfil$\crcr}}}\limits}
+\def\underbrace#1{\mathop{\vtop{\ialign{##\crcr
+ $\hfil\displaystyle{#1}\hfil$\crcr\noalign{\kern3\p@\nointerlineskip}
+ \upbracefill\crcr\noalign{\kern3\p@}}}}\limits}
+\def\skew#1#2#3{{#2{#3\mkern#1mu}\mkern-#1mu}{}}
+
+\def\lmoustache{\delimiter"4000340 } % top from (, bottom from )
+\def\rmoustache{\delimiter"5000341 } % top from ), bottom from (
+\def\lgroup{\delimiter"400033A } % extensible ( with sharper tips
+\def\rgroup{\delimiter"500033B } % extensible ) with sharper tips
+\def\arrowvert{\delimiter"33C } % arrow without arrowheads
+\def\Arrowvert{\delimiter"33D } % double arrow without arrowheads
+\def\bracevert{\delimiter"33E } % the vertical bar that extends braces
+\def\Vert{\delimiter"26B30D } \let\|=\Vert
+\def\vert{\delimiter"26A30C }
+\def\uparrow{\delimiter"3222378 }
+\def\downarrow{\delimiter"3223379 }
+\def\updownarrow{\delimiter"326C33F }
+\def\Uparrow{\delimiter"322A37E }
+\def\Downarrow{\delimiter"322B37F }
+\def\Updownarrow{\delimiter"326D377 }
+\def\backslash{\delimiter"26E30F } % for double coset G\backslash H
+\def\rangle{\delimiter"526930B }
+\def\langle{\delimiter"426830A }
+\def\rbrace{\delimiter"5267309 } \let\}=\rbrace
+\def\lbrace{\delimiter"4266308 } \let\{=\lbrace
+\def\rceil{\delimiter"5265307 }
+\def\lceil{\delimiter"4264306 }
+\def\rfloor{\delimiter"5263305 }
+\def\lfloor{\delimiter"4262304 }
+
+\def\bigl{\mathopen\big}
+\def\bigm{\mathrel\big}
+\def\bigr{\mathclose\big}
+\def\Bigl{\mathopen\Big}
+\def\Bigm{\mathrel\Big}
+\def\Bigr{\mathclose\Big}
+\def\biggl{\mathopen\bigg}
+\def\biggm{\mathrel\bigg}
+\def\biggr{\mathclose\bigg}
+\def\Biggl{\mathopen\Bigg}
+\def\Biggm{\mathrel\Bigg}
+\def\Biggr{\mathclose\Bigg}
+\def\big#1{{\hbox{$\left#1\vbox to8.5\p@{}\right.\n@space$}}}
+\def\Big#1{{\hbox{$\left#1\vbox to11.5\p@{}\right.\n@space$}}}
+\def\bigg#1{{\hbox{$\left#1\vbox to14.5\p@{}\right.\n@space$}}}
+\def\Bigg#1{{\hbox{$\left#1\vbox to17.5\p@{}\right.\n@space$}}}
+\def\n@space{\nulldelimiterspace\z@ \m@th}
+
+\def\choose{\atopwithdelims()}
+\def\brack{\atopwithdelims[]}
+\def\brace{\atopwithdelims\{\}}
+
+\def\sqrt{\radical"270370 }
+
+\def\mathpalette#1#2{\mathchoice{#1\displaystyle{#2}}%
+ {#1\textstyle{#2}}{#1\scriptstyle{#2}}{#1\scriptscriptstyle{#2}}}
+\newbox\rootbox
+\def\root#1\of{\setbox\rootbox\hbox{$\m@th\scriptscriptstyle{#1}$}
+ \mathpalette\r@@t}
+\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}
+ \dimen@\ht\z@ \advance\dimen@-\dp\z@
+ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-10mu \box\z@}
+\newif\ifv@ \newif\ifh@
+\def\vphantom{\v@true\h@false\ph@nt}
+\def\hphantom{\v@false\h@true\ph@nt}
+\def\phantom{\v@true\h@true\ph@nt}
+\def\ph@nt{\ifmmode\def\next{\mathpalette\mathph@nt}%
+ \else\let\next\makeph@nt\fi\next}
+\def\makeph@nt#1{\setbox\z@\hbox{#1}\finph@nt}
+\def\mathph@nt#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finph@nt}
+\def\finph@nt{\setbox\tw@\null
+ \ifv@ \ht\tw@\ht\z@ \dp\tw@\dp\z@\fi
+ \ifh@ \wd\tw@\wd\z@\fi \box\tw@}
+\def\mathstrut{\vphantom(}
+\def\smash{\relax % \relax, in case this comes first in \halign
+ \ifmmode\def\next{\mathpalette\mathsm@sh}\else\let\next\makesm@sh
+ \fi\next}
+\def\makesm@sh#1{\setbox\z@\hbox{#1}\finsm@sh}
+\def\mathsm@sh#1#2{\setbox\z@\hbox{$\m@th#1{#2}$}\finsm@sh}
+\def\finsm@sh{\ht\z@\z@ \dp\z@\z@ \box\z@}
+
+\def\cong{\mathrel{\mathpalette\@vereq\sim}} % congruence sign
+\def\@vereq#1#2{\lower.5\p@\vbox{\baselineskip\z@skip\lineskip-.5\p@
+ \ialign{$\m@th#1\hfil##\hfil$\crcr#2\crcr=\crcr}}}
+\def\notin{\mathrel{\mathpalette\c@ncel\in}}
+\def\c@ncel#1#2{\ooalign{$\hfil#1\mkern1mu/\hfil$\crcr$#1#2$}}
+\def\rightleftharpoons{\mathrel{\mathpalette\rlh@{}}}
+\def\rlh@#1{\vcenter{\hbox{\ooalign{\raise2pt
+ \hbox{$#1\rightharpoonup$}\crcr
+ $#1\leftharpoondown$}}}}
+\def\buildrel#1\over#2{\mathrel{\mathop{\kern\z@#2}\limits^{#1}}}
+\def\doteq{\buildrel\textstyle.\over=}
+
+\def\log{\mathop{\rm log}\nolimits}
+\def\lg{\mathop{\rm lg}\nolimits}
+\def\ln{\mathop{\rm ln}\nolimits}
+\def\lim{\mathop{\rm lim}}
+\def\limsup{\mathop{\rm lim\,sup}}
+\def\liminf{\mathop{\rm lim\,inf}}
+\def\sin{\mathop{\rm sin}\nolimits}
+\def\arcsin{\mathop{\rm arcsin}\nolimits}
+\def\sinh{\mathop{\rm sinh}\nolimits}
+\def\cos{\mathop{\rm cos}\nolimits}
+\def\arccos{\mathop{\rm arccos}\nolimits}
+\def\cosh{\mathop{\rm cosh}\nolimits}
+\def\tan{\mathop{\rm tan}\nolimits}
+\def\arctan{\mathop{\rm arctan}\nolimits}
+\def\tanh{\mathop{\rm tanh}\nolimits}
+\def\cot{\mathop{\rm cot}\nolimits}
+\def\coth{\mathop{\rm coth}\nolimits}
+\def\sec{\mathop{\rm sec}\nolimits}
+\def\csc{\mathop{\rm csc}\nolimits}
+\def\max{\mathop{\rm max}}
+\def\min{\mathop{\rm min}}
+\def\sup{\mathop{\rm sup}}
+\def\inf{\mathop{\rm inf}}
+\def\arg{\mathop{\rm arg}\nolimits}
+\def\ker{\mathop{\rm ker}\nolimits}
+\def\dim{\mathop{\rm dim}\nolimits}
+\def\hom{\mathop{\rm hom}\nolimits}
+\def\det{\mathop{\rm det}}
+\def\exp{\mathop{\rm exp}\nolimits}
+\def\Pr{\mathop{\rm Pr}}
+\def\gcd{\mathop{\rm gcd}}
+\def\deg{\mathop{\rm deg}\nolimits}
+
+\def\bmod{\mskip-\medmuskip\mkern5mu
+ \mathbin{\rm mod}\penalty900\mkern5mu\mskip-\medmuskip}
+\def\pmod#1{\allowbreak\mkern18mu({\rm mod}\,\,#1)}
+
+\def\cases#1{\left\{\,\vcenter{\normalbaselines\m@th
+ \ialign{$##\hfil$&\quad##\hfil\crcr#1\crcr}}\right.}
+\def\matrix#1{\null\,\vcenter{\normalbaselines\m@th
+ \ialign{\hfil$##$\hfil&&\quad\hfil$##$\hfil\crcr
+ \mathstrut\crcr\noalign{\kern-\baselineskip}
+ #1\crcr\mathstrut\crcr\noalign{\kern-\baselineskip}}}\,}
+\def\pmatrix#1{\left(\matrix{#1}\right)}
+\newdimen\p@renwd
+\setbox0=\hbox{\tenex B} \p@renwd=\wd0 % width of the big left (
+\def\bordermatrix#1{\begingroup \m@th
+ \setbox\z@\vbox{\def\cr{\crcr\noalign{\kern2\p@\global\let\cr\endline}}%
+ \ialign{$##$\hfil\kern2\p@\kern\p@renwd&\thinspace\hfil$##$\hfil
+ &&\quad\hfil$##$\hfil\crcr
+ \omit\strut\hfil\crcr\noalign{\kern-\baselineskip}%
+ #1\crcr\omit\strut\cr}}%
+ \setbox\tw@\vbox{\unvcopy\z@\global\setbox\@ne\lastbox}%
+ \setbox\tw@\hbox{\unhbox\@ne\unskip\global\setbox\@ne\lastbox}%
+ \setbox\tw@\hbox{$\kern\wd\@ne\kern-\p@renwd\left(\kern-\wd\@ne
+ \global\setbox\@ne\vbox{\box\@ne\kern2\p@}%
+ \vcenter{\kern-\ht\@ne\unvbox\z@\kern-\baselineskip}\,\right)$}%
+ \null\;\vbox{\kern\ht\@ne\box\tw@}\endgroup}
+
+\def\openup{\afterassignment\@penup\dimen@=}
+\def\@penup{\advance\lineskip\dimen@
+ \advance\baselineskip\dimen@
+ \advance\lineskiplimit\dimen@}
+\def\eqalign#1{\null\,\vcenter{\openup\jot\m@th
+ \ialign{\strut\hfil$\displaystyle{##}$&$\displaystyle{{}##}$\hfil
+ \crcr#1\crcr}}\,}
+\newif\ifdt@p
+\def\displ@y{\global\dt@ptrue\openup\jot\m@th
+ \everycr{\noalign{\ifdt@p \global\dt@pfalse
+ \vskip-\lineskiplimit \vskip\normallineskiplimit
+ \else \penalty\interdisplaylinepenalty \fi}}}
+\def\@lign{\tabskip\z@skip\everycr{}} % restore inside \displ@y
+\def\displaylines#1{\displ@y
+ \halign{\hbox to\displaywidth{$\@lign\hfil\displaystyle##\hfil$}\crcr
+ #1\crcr}}
+\def\eqalignno#1{\displ@y \tabskip\centering
+ \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\llap{$\@lign##$}\tabskip\z@skip\crcr
+ #1\crcr}}
+\def\leqalignno#1{\displ@y \tabskip\centering
+ \halign to\displaywidth{\hfil$\@lign\displaystyle{##}$\tabskip\z@skip
+ &$\@lign\displaystyle{{}##}$\hfil\tabskip\centering
+ &\kern-\displaywidth\rlap{$\@lign##$}\tabskip\displaywidth\crcr
+ #1\crcr}}
+
+% Definitions related to output
+
+\message{output routines,}
+
+\countdef\pageno=0 \pageno=1 % first page is number 1
+\newtoks\headline \headline={\hfil} % headline is normally blank
+\newtoks\footline \footline={\hss\tenrm\folio\hss}
+ % footline is normally a centered page number in font \tenrm
+\newif\ifr@ggedbottom
+\def\raggedbottom{\topskip 10\p@ plus60\p@ \r@ggedbottomtrue}
+\def\normalbottom{\topskip 10\p@ \r@ggedbottomfalse} % undoes \raggedbottom
+\def\folio{\ifnum\pageno<\z@ \romannumeral-\pageno \else\number\pageno \fi}
+\def\nopagenumbers{\footline{\hfil}} % blank out the footline
+\def\advancepageno{\ifnum\pageno<\z@ \global\advance\pageno\m@ne
+ \else\global\advance\pageno\@ne \fi} % increase |pageno|
+
+\newinsert\footins
+\def\footnote#1{\let\@sf\empty % parameter #2 (the text) is read later
+ \ifhmode\edef\@sf{\spacefactor\the\spacefactor}\/\fi
+ #1\@sf\vfootnote{#1}}
+\def\vfootnote#1{\insert\footins\bgroup
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\ht\strutbox % top baseline for broken footnotes
+ \splitmaxdepth\dp\strutbox \floatingpenalty\@MM
+ \leftskip\z@skip \rightskip\z@skip \spaceskip\z@skip \xspaceskip\z@skip
+ \textindent{#1}\footstrut\futurelet\next\fo@t}
+\def\fo@t{\ifcat\bgroup\noexpand\next \let\next\f@@t
+ \else\let\next\f@t\fi \next}
+\def\f@@t{\bgroup\aftergroup\@foot\let\next}
+\def\f@t#1{#1\@foot}
+\def\@foot{\strut\egroup}
+\def\footstrut{\vbox to\splittopskip{}}
+\skip\footins=\bigskipamount % space added when footnote is present
+\count\footins=1000 % footnote magnification factor (1 to 1)
+\dimen\footins=8in % maximum footnotes per page
+
+\newinsert\topins
+\newif\ifp@ge \newif\if@mid
+\def\topinsert{\@midfalse\p@gefalse\@ins}
+\def\midinsert{\@midtrue\@ins}
+\def\pageinsert{\@midfalse\p@getrue\@ins}
+\skip\topins=\z@skip % no space added when a topinsert is present
+\count\topins=1000 % magnification factor (1 to 1)
+\dimen\topins=\maxdimen % no limit per page
+\def\@ins{\par\begingroup\setbox\z@\vbox\bgroup} % start a \vbox
+\def\endinsert{\egroup % finish the \vbox
+ \if@mid \dimen@\ht\z@ \advance\dimen@\dp\z@
+ \advance\dimen@12\p@ \advance\dimen@\pagetotal
+ \ifdim\dimen@>\pagegoal\@midfalse\p@gefalse\fi\fi
+ \if@mid \bigskip\box\z@\bigbreak
+ \else\insert\topins{\penalty100 % floating insertion
+ \splittopskip\z@skip
+ \splitmaxdepth\maxdimen \floatingpenalty\z@
+ \ifp@ge \dimen@\dp\z@
+ \vbox to\vsize{\unvbox\z@\kern-\dimen@}% depth is zero
+ \else \box\z@\nobreak\bigskip\fi}\fi\endgroup}
+
+\output{\plainoutput}
+\def\plainoutput{\shipout\vbox{\makeheadline\pagebody\makefootline}%
+ \advancepageno
+ \ifnum\outputpenalty>-\@MM \else\dosupereject\fi}
+\def\pagebody{\vbox to\vsize{\boxmaxdepth\maxdepth \pagecontents}}
+\def\makeheadline{\vbox to\z@{\vskip-22.5\p@
+ \line{\vbox to8.5\p@{}\the\headline}\vss}\nointerlineskip}
+\def\makefootline{\baselineskip24\p@\line{\the\footline}}
+\def\dosupereject{\ifnum\insertpenalties>\z@ % something is being held over
+ \line{}\kern-\topskip\nobreak\vfill\supereject\fi}
+
+\def\pagecontents{\ifvoid\topins\else\unvbox\topins\fi
+ \dimen@=\dp\@cclv \unvbox\@cclv % open up \box255
+ \ifvoid\footins\else % footnote info is present
+ \vskip\skip\footins
+ \footnoterule
+ \unvbox\footins\fi
+ \ifr@ggedbottom \kern-\dimen@ \vfil \fi}
+\def\footnoterule{\kern-3\p@
+ \hrule width 2truein \kern 2.6\p@} % the \hrule is .4pt high
+
+% Hyphenation, miscellaneous macros, and initial values for standard layout
+\message{hyphenation}
+
+
+\input hyphen
+
+
+\def\magnification{\afterassignment\m@g\count@}
+\def\m@g{\mag\count@
+ \hsize6.5truein\vsize8.9truein\dimen\footins8truein}
+
+\def\tracingall{\tracingonline\@ne\tracingcommands\tw@\tracingstats\tw@
+ \tracingpages\@ne\tracingoutput\@ne\tracinglostchars\@ne
+ \tracingmacros\tw@\tracingparagraphs\@ne\tracingrestores\@ne
+ \showboxbreadth\maxdimen\showboxdepth\maxdimen\errorstopmode}
+
+\def\showhyphens#1{\setbox0\vbox{\parfillskip\z@skip\hsize\maxdimen\tenrm
+ \pretolerance\m@ne\tolerance\m@ne\hbadness0\showboxdepth0\ #1}}
+
+\normalbaselines\rm % select roman font
+\frenchspacing % punctuation does not affect the spacing
+\catcode`@=12 % at signs are no longer letters
+
+\def\fmtname{tplain}\def\fmtversion{0.9} % identifies the current format
diff --git a/language/turkish/manifest b/language/turkish/manifest
new file mode 100644
index 0000000000..16106d07d6
--- /dev/null
+++ b/language/turkish/manifest
@@ -0,0 +1,15 @@
+You should have all of these files before you start work on Turkish
+
+ README
+ doc/
+ TUGpap.tex turkish-hyphens.tex
+ hyphen/
+ turk_hyf.c
+ inputs/
+ hyphen.tex sample.tex tkccode.tex tplain.tex
+ mf/
+ README accsub.mf aynhmz.mf tkaccl.mf tkaccu.mf tkacil.mf tkdotl.mf
+ tkdotu.mf tkdtil.mf tkital.mf tklig.mf tkpnct.mf tkroml.mf tksub.mf
+ turkce.mf turkit.mf wtkr10.mf wtkti10.mf
+ misc/
+ wtkr10.pl wtkti10.pl
diff --git a/language/turkish/mf/accsub.mf b/language/turkish/mf/accsub.mf
new file mode 100644
index 0000000000..932c2a7b58
--- /dev/null
+++ b/language/turkish/mf/accsub.mf
@@ -0,0 +1,291 @@
+% This file contains macro definitions for accents common to text roman
+% and italic fonts. It is directly derived from accent.mf, which is
+% one of the standard Computer Modern Program files released by Donald
+% Knuth in 1986. These accents are intended for pre-defined character
+% and diacritical combinations in fonts derived from Computer Modern.
+
+% Written by P. A. MacKay, University of Washington
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Beta release (some accents not completely coded) 8 May, 1988 %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Accents are intended to be exact copies of the accents in the
+% Computer Modern file accent.mf, with the following exceptions:
+% 1. Bar accents are adjusted to the width of the associated letter.
+% 2. The hat accent is pinched in to fit the letter i.
+% 3. Acute and grave accents are rotated to whatever angle
+% best suits the associated letter. (Especially for Upper Case.)
+% 4. The under_h accent is based on an inverted tie accent.
+
+% No attempt is made to put the accent in the same position
+% that it would occupy if \TeX\ put it in with the \accent primitive.
+% Each accent has been adjusted for vertical and horizontal position
+% position to best fit the associated letter.
+
+accsub:=1; % when |accsub| is known, this file has been input
+
+numeric xxxpr; xxxpr:=0;
+
+def Grave_accent (expr xxxpr) =
+if serifs: pickup crisp.nib; x@_1-.5stem=hround 2u; x@_2=2/3[x@_1,w-x@_1];
+ y@_1+.5stem=h+eps; y@_2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z@_2-z@_1)+90;
+ pos@_1(stem,theta); pos@_2(hair,theta);
+ filldraw circ_stroke z@_1e--z@_2e; % diagonal
+else: pickup fine.nib; pos@_1(stem,0); pos@_2(vair,0);
+ lft x@_1l=hround 1.5u; rt x@_2r=hround(.5w+.25u+.5vair);
+ top y@_1=h; bot y@_2=vround 2/3[h,x_height];
+ filldraw stroke z@_1e--z@_2e; fi % diagonal
+penlabels(1,2); enddef;
+
+def Acute_accent (expr xxxpr) =
+if serifs: pickup crisp.nib; x@_1+.5stem=hround(w-2u); x@_2=2/3[x@_1,w-x@_1];
+ y@_1+.5stem=h+eps; y@_2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z@_2-z@_1)+90;
+ pos@_1(stem,theta); pos@_2(hair,theta);
+ filldraw circ_stroke z@_1e--z@_2e; % diagonal
+else: pickup fine.nib; pos@_1(stem,0); pos@_2(vair,0);
+ rt x@_1r=hround(w-1.5u); lft x@_2l=hround(.5w-.25u-.5vair);
+ top y@_1=h; bot y@_2=vround 2/3[h,x_height];
+ filldraw stroke z@_1e--z@_2e; fi % diagonal
+penlabels(1,2); enddef;
+
+def Hachek_accent (expr xxxpr) =
+if serifs:
+ pickup crisp.nib; pos@_2'(.5[vair,curve],90); top y@_2'r=h;
+ pos@_2(.5[vair,curve],90); x@_2=.5w;
+ x@_1=w-x@_3=good.x 2.25u; top y@_1=top y@_3=h; y@_1-y@_2=.5(y@_2'-x_height);
+ pos@_1(hair,angle(z@_2-z@_1)+90); pos@_3(hair,angle(z@_3-z@_2)+90);
+ filldraw stroke z@_1e--z@_2e--z@_3e; % diagonals
+else:
+ pickup fine.nib; pos@_1(vair,0); pos@_3(vair,0); x@_1=w-x@_3;
+ pos@_2(stem,0); bot y@_2=vround(1/12[x_height,h']+o); x@_2=.5w;
+ top y@_1=top y@_3=h+o; lft x@_1l=hround(rt x@_2r-3.25u-.5vair);
+ z@_0=whatever[z@_1r,z@_2r]=whatever[z@_2l,z@_3l];
+ y@_4l=y@_4r=y@_2; x@_4l=good.x .2[x@_2l,x@_2]; x@_4r=w-x@_4l;
+ filldraw z@_4l--z@_1l--z@_1r--z@_0--z@_3l--z@_3r--z@_4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); enddef;
+
+def cup_accent (suffix $,@)(expr cY_shift) =
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+pickup crisp.nib; pos@_1(vair,-180); pos@_3(vair,0);
+top y@_1=top y@_3=asc_height;
+rt x@_3r-x$=x$-lft x@_1r=2.5u+.5vair;
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos@_2(mid_thickness,-90); x@_2=.5[x@_1,x@_3];
+bot y@_2r=vround
+ max(x_height+o+tiny,1/3[x_height,asc_height]+o-.5mid_thickness);
+@ = identity shifted(0,cY_shift);
+for n = 1,2,3: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+filldraw stroke z@1e{down}...z@2e{right}...{up}z@3e; % stroke
+penlabels(@1,@2,@3); enddef;
+
+def bar_accent (suffix $,$$,@)(expr bH) =
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos@1(macron_breadth,90); pos@2(macron_breadth,90);
+top y@1r=top y@2r=if bH<0: bH + macron_breadth else: bH+o fi;
+lft x@1=x$; rt x@2=x$$;
+filldraw stroke z@1e--z@2e; % bar
+penlabels(@1,@2); enddef;
+
+def circle_accent (expr xxxpr) =
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos@_1(circ_vair,90); penpos@_3(circ_vair,-90);
+penpos@_2(circ_hair,180); penpos@_4(circ_hair,0);
+x@_2r=hround(.5w-1.5u-.5circ_hair);
+x@_4r=w-x@_2r; x@_1=x@_3=.5w; y@_1r=h+apex_o; y@_2=y@_4=.5[y@_1,y@_3];
+y@_3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); enddef;
+
+def cedilla_accent (suffix $,@)(expr cD_shift) =
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+if serifs: pickup crisp.nib; pos@_1(stem,0); pos@_2(stem,0);
+ pos@_3(vair,90); pos@_4(stem,0); pos@_5(vair,-90);
+ x@_1=x@_2=x$; z@_3l=z@_2l; x@_4=x@_2+1.5u; x@_5=x@_3-1.5u;
+ bot y@_1=-o; bot y@_2=-vround 2/7d-o; y@_4=.5[y@_3,y@_5]; bot y@_5=-d-o;
+ @ = identity shifted(0,cD_shift);
+ for n = 1,2,3,4,5: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw stroke z@1e--z@2e; % stem
+ filldraw stroke z@3e{right}...z@4e{down}...{left}z@5e; % hook
+else: pickup fine.nib; pos@_1(vair,0); top y@_1=-o-2;
+ pos@_2(.5[vair,stem],0); bot y@_2=-d-o; x@_1=x$; x@_2=x@_1-1.25u;
+ @ = identity shifted(0,cD_shift);
+ for n = 1,2: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw stroke z@1e--z@2e; fi % diagonal
+penlabels(@1,@2,@3,@4,@5); enddef;
+
+def cross_for_l (expr xxxpr) =
+if unknown l_width#:
+ l_width#:=5u#+2serif_fit#; fi % nominal width of `l'
+if unknown L_stem#:
+ L_stem#:=cap_serif_fit#+max(2u#+.5cap_stem#,3u#); fi % center of `L' stem
+ligtable oct"040": "l" kern -l_width#-2letter_fit#,
+ "L" kern -.5l_width#-L_stem#-2letter_fit#;
+pickup crisp.nib; x@_2-x@_1=max(4u,2.8u+stem); .5[x@_1,x@_2]=.5w;
+y@_1-.5bar=.2[bar_height,x_height]; y@_2+.5bar=.8[bar_height,x_height];
+numeric theta; theta=angle(z@_2-z@_1)+90;
+pos@_1(bar,theta); pos@_2(bar,theta);
+filldraw stroke z@_1e--z@_2e; % diagonal
+penlabels(1,2); enddef;
+
+% hat_accent. To get the same effect as the Computer modern character,
+% set the first $ suffix to the center high-point of the character,
+% For lower case characters whose "beginchar" height
+% parameter is x_height, change this to asc_height, or a fraction
+% of the distance from x_height to asc_height. Check through
+% the character program to make sure that values of "h" are renamed
+% "x_height".
+
+def hat_accent (suffix $,@)(expr hY_shift) =
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+if serifs:
+ pickup crisp.nib; pos@_2(.5[vair,curve],90);
+ top y@_2r=min(asc_height,2x_height); x@_2=x$;
+ if w>6u: x@_3-x@_2=x@_2-x@_1=2.25u;
+ else: x@_3-x@_2=x@_2-x@_1=1.65u; fi % reshape over i
+ y@_1=y@_3=.5[x_height,y@_2];
+ pos@_1(hair,angle(z@_2-z@_1)+90); pos@_3(hair,angle(z@_3-z@_2)+90);
+ @ = identity shifted(0,hY_shift);
+ for n = 1,2,3: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw stroke z@1e--z@2e--z@3e; % diagonals
+else:
+ pickup fine.nib; pos@_1(vair,0); pos@_3(vair,0); x@_1=w-x@_3;
+ pos@_2(stem,0); top y@_2=min(asc_height,2x_height); x@_2=x$;
+ bot y@_1=bot y@_3=vround 2/3[min(asc_height,2x_height),x_height]-eps;
+ if w>6u:
+ lft x@_1l=hround(rt x@_2r-3.25u-.5vair); % same slope as in the acute accent
+ else:
+ lft x@_1l=hround(rt x@_2r-2.25u-.5vair); fi % pinch it for i
+ z@_0=whatever[z@_1r,z@_2r]=whatever[z@_2l,z@_3l];
+ y@_4l=y@_4r=y@_2; x@_4l=good.x .2[x@_2l,x@_2]; x@_4r=w-x@_4l;
+ @ = identity shifted(0,hY_shift);
+ for n = 0,1,2,3,4: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw z@4l--z@1l--z@1r--z@0--z@3l--z@3r--z@4r--cycle; fi % diagonals
+penlabels(@0,@1,@2,@3,@4); enddef;
+
+% This is a bit odd, owing to the fact that what we know is the
+% position of the top of the dot, but what we want to position
+% correctly is the bottom of the dot. For this reason, the shift
+% value must be calculated (in the code for the associated letter)
+% from the expected top pixel of the dot to the desired bottom
+% edge of the dot. Then dot_span is added to correct the effect.
+def dot_accent (suffix $,@) (expr dotY_shift)=
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+numeric dh#; dh#:=min(asc_height#,10/7x_height#+.5dot_diam#);
+define_whole_blacker_pixels(dh,dot_diam);
+pickup tiny.nib; pos@_1(dot_diam,0); pos@_2(dot_diam,90);
+x@_1=x@_2=x$; top y@_2r=dh+1;
+if bot y@_2l<x_height+o+slab: y@_2l:=min(y@_2r-eps,x_height+o+slab+.5tiny); fi
+y@_1=.5[y@_2l,y@_2r];
+numeric dot_span; dot_span=dh-bot y@_2l;
+@ = identity if dotY_shift <> 0: shifted(0,dotY_shift+dot_span) fi;
+for n = 1,2: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+dot(@1,@2); % dot
+penlabels(@1,@2); enddef;
+
+def dot_sharp_values =
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+numeric dot_top#; dot_top#=min(asc_height#,10/7x_height#+.5dot_diam#);
+enddef;
+
+def Long_Hungarian_accent (expr xxxpr) =
+x@_3-x@_1=x@_4-x@_2=hround 3u; y@_3=y@_1; y@_4=y@_2;
+if serifs: pickup crisp.nib; x@_3+.5stem=hround(w-1.5u); x@_2=2.5u;
+ y@_1+.5stem=h; y@_2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z@_2-z@_1)+90;
+ pos@_1(stem,theta); pos@_2(hair,theta);
+ pos@_3(stem,theta); pos@_4(hair,theta);
+ filldraw circ_stroke z@_1e--z@_2e; % left diagonal
+ filldraw circ_stroke z@_3e--z@_4e; % right diagonal
+else: pickup fine.nib; pos@_1(stem,0); pos@_2(vair,0);
+ pos@_3(stem,0); pos@_4(vair,0);
+ rt x@_3r=hround(w-1.5u); lft x@_4l=hround(.5w+u-.5vair);
+ top y@_1=h; bot y@_2=vround 2/3[h,x_height];
+ filldraw stroke z@_1e--z@_2e; % left diagonal
+ filldraw stroke z@_3e--z@_4e; fi % right diagonal
+penlabels(1,2,3,4); enddef;
+
+def tilde_accent (suffix $,@)(expr tY_shift) =
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(asc_height-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos@_1(vair,theta+90); pos@_2(vair,theta+90);
+ pos@_3(vair,theta+90); pos@_4(vair,theta+90);
+ z@_2-z@_1=z@_4-z@_3=(mid_width-crisp)*dir theta;
+ rt x@_4l-x$=x$-lft x@_1r=3u; top y@_4r=asc_height;
+ bot y@_1l=vround(bot y@_1l+min(2/3[x_height,asc_height],y@_3l-.25vair)-top y@_1r);
+ pair delta; ypart delta=3(y@_3l-y@_1l); delta=whatever*dir theta;
+ @ = identity shifted(0,tY_shift);
+ for n = 1,2,3,4: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw z@1l..controls(z@1l+delta)and(z@3l-delta)..z@3l..z@4l
+ --z@4r..controls(z@4r-delta)and(z@2r+delta)..z@2r..z@1r--cycle; % stroke
+else: pickup fine.nib; pos@_1(vair,180); pos@_2(vair,90);
+ pos@_3(.5[vair,slab],90); pos@_4(vair,90); pos@_5(vair,180);
+ rt x@_5l-x$=x$-lft x@_1r=3u; x@_2-x@_1=x@_3-x@_2=x@_4-x@_3=x@_5-x@_4;
+ bot y@_1=bot y@_4l=vround(.75[x_height,asc_height]-vair);
+ top y@_2r=top y@_5=asc_height; y@_3=.5[y@_2,y@_4];
+ @ = identity shifted(0,tY_shift);
+ for n = 1,2,3,4,5: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw stroke z@1e{up}...z@2e{right}..z@3e..{right}z@4e...{up}z@5e; fi % stroke
+penlabels(@1,@2,@3,@4,@5); enddef;
+
+def cap_tilde (suffix $,@)(expr tW) =
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+pickup crisp.nib;
+numeric theta,tmp_h;
+tmp_h=.5[asc_height,body_height];
+theta=angle(1/6(tW-vair),1/4(tmp_h-x_height));
+numeric mid_width; mid_width=.4[vair,stem];
+pos@_1(vair,theta+90); pos@_2(vair,theta+90);
+pos@_3(vair,theta+90); pos@_4(vair,theta+90);
+z@_2-z@_1=z@_4-z@_3=(mid_width-crisp)*dir theta;
+w-rt x@_4l=lft x@_1r=.5w-.5tW; top y@_4r=.5[asc_height,body_height];
+bot y@_1l=vround(bot y@_1l+min(2/3[x_height,tmp_h],y@_3l-.25vair)-top y@_1r);
+pair delta; ypart delta=3(y@_3l-y@_1l); delta=whatever*dir theta;
+@ = identity shifted(0,if dish > 0: y@_4r-y@_1l else: 2(y@_4r-y@_1l) fi);
+for n = 1,2,3,4,5: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+filldraw z@1l..controls(z@1l+delta)and(z@3l-delta)..z@3l..z@4l
+ --z@4r..controls(z@4r-delta)and(z@2r+delta)..z@2r..z@1r--cycle; % stroke
+penlabels(@1,@2,@3,@4); enddef;
+
+def double_dot_accent (expr xxxpr) =
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+pickup tiny.nib; pos@_1(dot_diam,0); pos@_2(dot_diam,90);
+x@_1=x@_2=2.75u; top y@_2r=h+1;
+if bot y@_2l<x_height+o+slab: y@_2l:=min(y@_2r-eps,x_height+o+slab+.5tiny); fi
+y@_1=.5[y@_2l,y@_2r]; dot(1,2); % left dot
+pos@_3(dot_diam,0); penpos@_4(y@_2r-y@_2l,90); y@_3=y@_4=y@_1; x@_3=x@_4=w-x@_1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); enddef;
+
+def under_h_accent (suffix $,$$,@) =
+pickup fine.nib; pos@1(hair,180); pos@2(vround 1/3[vair,stem],270); pos@3(hair,0);
+lft x@1r=x$; x@2=.5[x@1,x@3];
+rt x@3r=x$$;
+y@1=y@3=vround(-fine-1); bot y@2r=vround (y@1-4/9desc_depth);
+filldraw stroke super_arc.e(@1,@2) & super_arc.e(@2,@3); % arc
+penlabels(@1,@2,@3); enddef;
+
diff --git a/language/turkish/mf/aynhmz.mf b/language/turkish/mf/aynhmz.mf
new file mode 100644
index 0000000000..efbf569bd7
--- /dev/null
+++ b/language/turkish/mf/aynhmz.mf
@@ -0,0 +1,48 @@
+% Ayn and Hamza (smooth and rough breathing) for Computer Modern
+% These letters were originally coded by P. A. MacKay in December, 1986,
+
+% Ayn and Hamza are based on the comma supplied in {\tt cmbase.mf},
+% but the jut is increased, the tail is tucked in more tightly, and the
+% bulb is uppermost in both cases. Ayn is NOT the mirror image of Hamza in
+% slanted or italic fonts, thanks to a little magic with |currenttransform|.
+
+% Character codes \0043 and \0100 are generated.
+
+% if |izafet_dot| is known, character \0175 (dot at |bar_height|) is generated
+if unknown accsub: input accsub fi % needed for |izafet_dot|
+
+newinternal pslant,nslant; pslant:=slant; nslant:=-slant;
+
+cmchar "Rough breathing or `Ayn";
+beginchar(oct"043",5u#,min(asc_height#,10/7x_height#),0); % height of i-dot
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+currenttransform:=identity slanted nslant
+ yscaled aspect_ratio scaled granularity; % build italic with reverse slant
+x1-.325dot_size=hround(.5w-.325dot_size); y1+.325dot_size=h; % smaller bulb
+if monospace: comma(1,a,.65dot_size,.35u,vround .85comma_depth); % large comma
+else: comma(1,a,.65dot_size,1.6u,.85comma_depth); fi % comma; increased jut
+currentpicture:=currentpicture reflectedabout ((.5[l,r],h),(.5[l,r],0));
+currenttransform:=identity slanted pslant
+ yscaled aspect_ratio scaled granularity; % restore normal font slant
+penlabels(1); endchar;
+
+cmchar "Smooth breathing or Hamza";
+beginchar(oct"100",5u#,min(asc_height#,10/7x_height#),0); % height of i-dot
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.325dot_size=hround(.5w-.325dot_size); y1+.325dot_size=h; % smaller bulb
+if monospace: comma(1,a,.65dot_size,.35u,vround .85comma_depth); % large comma
+else: comma(1,a,.65dot_size,1.6u,.85comma_depth); fi % comma; increased jut
+penlabels(1); endchar;
+
+iff known izafet_dot: cmchar "Period raised to bar height";
+dot_sharp_values;
+beginchar(izafet_dot,4.5u#,x_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+define_whole_blacker_pixels(dot_diam);
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam);
+y1+.5dot_diam=vround(bar_height+.5dot_diam);
+z1=z2; dot(1,2); penlabels(1,2); endchar;
+
diff --git a/language/turkish/mf/readme b/language/turkish/mf/readme
new file mode 100644
index 0000000000..540b416103
--- /dev/null
+++ b/language/turkish/mf/readme
@@ -0,0 +1,19 @@
+Only the uniquely Turkish mf files are included here. Many of the
+standard computer modern character description files are used, such
+as romanu.mf and romand.mf. These should be linked or copied into
+this directory before running METAFONT.
+
+
+wtkr10.mf and wtkti10.mf are supplied for regular serifed and italic
+text. Other text faces can be made up on the model of these two.
+A reasonable number of tests has been made on typewriter and sans serif
+versions, but no real refinement has been attempted
+
+For further information:
+
+Email: mackay@june.cs.washington.edu Pierre A. MacKay
+Smail: Northwest Computing Support Group TUG Site Coordinator for
+ Lewis Hall, Mail Stop DW10 Unix-flavored TeX
+ University of Washington
+ Seattle, WA 98195
+ (206) 543-6259
diff --git a/language/turkish/mf/tkaccl.mf b/language/turkish/mf/tkaccl.mf
new file mode 100644
index 0000000000..fb0033e9d2
--- /dev/null
+++ b/language/turkish/mf/tkaccl.mf
@@ -0,0 +1,454 @@
+% Accented Turkish based on Computer Modern Roman lower case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Accents added by P. A. MacKay in December, 1986.
+
+% Accents are intended to be exact copies of the accents in the
+% Computer Modern file accent.mf, with the following exceptions:
+% 1. Bar accents are adjusted to the width of the associated letter.
+% 2. The hat accent is pinched in to fit the letter i.
+% 3. Acute and grave accents are rotated to whatever angle
+% best suits the letter associated letter.
+% 4. The under_h accent is based on an inverted tie accent.
+
+% No attempt is made to put the accent in the same position
+% that it would occupy if \TeX\ put it in with the \accent primitive.
+% Each accent has been adjusted for vertical and horizontal position
+% position to best fit the associated letter.
+
+% Character codes \0033--\0037, \0053, \0074--\0076, \0176 and \0177
+% are generated.
+% Character \0040 is generated |iff not monospace|.
+
+if unknown accsub: input accsub fi
+
+cmchar "The letter hatted a";
+beginchar(oct "074",9u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
+ .8[x_height#,asc_height#] else:asc_height# fi
+ else:asc_height# fi, 0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 2/3[x_height#,asc_height#]*slant+.5stem#-serif_fit#-if serifs: 3 fi u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
+ else:hat_shift=0; fi
+hat_accent(3,a,hat_shift);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The letter chim";
+beginchar(oct "033",8u#,x_height#,.875desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+cedilla_accent(4,a,o if serifs: -crisp fi);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter dhal";
+beginchar(oct "034",10u#+serif_fit#,asc_height#,.6desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+bar_accent(5,3,c,-8/9desc_depth);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% cupped g. This is fairly straightforward, except for the
+% lengthy calculation of cup_shift. To understand that, you must
+% look at the dimension calculations and use of mid_thickness
+% in Breve accent in accent.mf. No change to italic correction,
+% because right horn of cup will always fall to left of hook of g.
+
+iff not variant_g: cmchar "The letter cupped g";
+beginchar(oct "035",9u#,min(asc_height#,2x_height#),desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=x_height+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=x_height+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,x_height]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=x_height+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+numeric cup_shift; cup_shift=
+ x_height+slab-max(x_height+o+tiny,1/3[x_height,asc_height]+o-vround 1/6[vair,stem]);
+if cup_shift>0:cup_shift:=0; fi
+cup_accent(1,c,cup_shift);
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: cmchar "Variant cupped g";
+beginchar(oct "035",10u#+serif_fit#,.8[x_height#,asc_height#],desc_depth#);
+italcorr .8[x_height#,asc_height#]*slant-serif_fit#+.5stem#-2u# if serifs: -.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,x_height)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=x_height+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+numeric cup_shift; cup_shift=
+ x_height+slab-max(x_height+o+tiny,1/3[x_height,asc_height]+o-vround 1/6[vair,stem]);
+if cup_shift>0:cup_shift:=0; fi
+cup_accent(4r,c,cup_shift);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The letter kha";
+beginchar(oct "036",10u#,asc_height#,.6desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+if dish>0: under_h_accent(2,4,k);
+else: bar_accent(2,4,k,-8/9desc_depth); fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter hatted i";
+beginchar(oct"075",5u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
+ .8[x_height#,asc_height#] else:asc_height# fi
+ else:asc_height# fi, 0);
+italcorr if serifs: asc_height#*slant-serif_fit#+.5stem#-2u#;
+ else: asc_height#*slant+.5stem#; fi
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
+ else:hat_shift=0; fi
+hat_accent(1,d,hat_shift);
+penlabels(1,2); endchar;
+
+cmchar "The letter gnaf";
+beginchar(oct "037",10u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
+ .8[x_height#,asc_height#] else:asc_height# fi
+ else:asc_height# fi, 0);
+italcorr .8[x_height#,asc_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=x_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+numeric tilde_shift; if h<asc_height:tilde_shift=-.3(asc_height-x_height);
+ else:tilde_shift=0; fi
+x5=hround .5w;
+tilde_accent(5,t,tilde_shift);
+penlabels(1,2,3,4); endchar;
+
+iff not monospace: cmchar "The letter hatted o";
+beginchar(oct "040",9u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
+ .8[x_height#,asc_height#] else:asc_height# fi
+ else:asc_height# fi, 0);
+italcorr 1/3[x_height#,asc_height#]*slant-.5u# if serifs: - stem# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
+ else:hat_shift=0; fi
+hat_accent(1,a,hat_shift);
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter shin";
+beginchar(oct "053",7.1u#,x_height#,.875desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+cedilla_accent(7,c,o if serifs: -crisp fi);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter tha";
+beginchar(oct "0176",7.1u#,x_height#,.6desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+x11=1.25u; x12=w-x11;
+bar_accent(11,12,a,-8/9desc_depth);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10,11,12); endchar;
+
+cmchar "The letter hatted u";
+beginchar(oct"076",10u#,if serifs: if .5(asc_height#-x_height#)>1.5stem#:
+ .8[x_height#,asc_height#] else:asc_height# fi
+ else:asc_height# fi, 0);
+italcorr 1/3[x_height#,asc_height#]*slant-.5u# if serifs: - stem# fi;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+x7=.5w;
+numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
+ else:hat_shift=0; fi
+hat_accent(7,g,hat_shift);
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "The letter zal";
+beginchar(oct "0177",8u#,x_height#,.6desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+x9=1.5u; x10=w-x9;
+bar_accent(9,10,c,-8/9desc_depth);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
diff --git a/language/turkish/mf/tkaccu.mf b/language/turkish/mf/tkaccu.mf
new file mode 100644
index 0000000000..70667bf30b
--- /dev/null
+++ b/language/turkish/mf/tkaccu.mf
@@ -0,0 +1,424 @@
+% Accented Turkish based on Computer Modern Roman upper case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Accents added by P. A. MacKay in December, 1986.
+
+% Accents are intended to be exact copies of the accents in the
+% Computer Modern file accent.mf, with the following exceptions:
+% 1. Bar accents are adjusted to the width of the associated letter.
+% 2. The hat accent is pinched in to fit the letter i.
+% 3. Acute and grave accents are rotated to whatever angle
+% best suits the letter associated letter.
+% 4. The under_h accent is based on an inverted tie accent.
+
+% No attempt is made to put the accent in the same position
+% that it would occupy if \TeX\ put it in with the \accent primitive.
+% Each accent has been adjusted for vertical and horizontal position
+% position to best fit the associated letter.
+
+% Upper case letters with accents above are all given the height
+% value |body_height|, with the result that the accents kern up
+% into the white space or leading from the previous line. It is
+% the responsibility of the formatter to set TeX's baselineskip
+% so that there is adequate room for such accents. The cup on
+% upper case G is probably the most extreme case in serifed roman
+% or italic fonts; the hat on O is the most extreme in sans-serif
+% fonts
+
+% Character codes \0013--\0017, \0044--\0046, \0052 and \0136--\0137
+% are generated.
+
+
+if unknown accsub: input accsub fi
+
+cmchar "The letter hatted A";
+beginchar(oct "044",13u#,body_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+numeric hat_top, hat_thick, hat_shift;
+hat_top=min(asc_height,2x_height);
+hat_thick=.25[vair,curve];
+hat_shift=hat_top-.5[x_height,hat_top]+if dish > 0: .5 else: .85 fi(body_height-y2);
+x7=.5w; hat_accent(7,g,hat_shift);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter CHIM";
+if serifs: beginchar(oct "013",13u#,cap_height#,.875desc_depth#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct "013",11.5u#,cap_height#,.875desc_depth#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+cedilla_accent(4,a,o if serifs: -crisp fi);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The letter DHAL";
+beginchar(oct "014",13.5u#,cap_height#,.6desc_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#);
+if serifs: x9=2u; x10=w-3.5u;
+else: x9=x2l; x10=.5[x5l,x5]; fi
+bar_accent(9,10,g,-8/9desc_depth);
+penlabels(0,1,2,3,4,5,6,7,9,10); endchar;
+
+% cupped g. This is fairly straightforward, except for the
+% lengthy calculation of cup_shift. To understand that, you must
+% look at the dimension calculations and use of mid_thickness
+% in Breve accent in accent.mf. No change to italic correction,
+% because right horn of cup will always fall to left of hook of g.
+
+cmchar "The letter cupped G";
+if serifs: beginchar(oct "015",14u#,body_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=cap_height+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=cap_height+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar(oct "015",12u#,body_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93cap_height+o; top y2r=cap_height+o; y3=.5cap_height;
+ bot y4r=-o; bot y5r=vround .07cap_height-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+numeric cup_shift; cup_shift=
+ .5[asc_height,body_height]-max(x_height+o+tiny,1/3[x_height,asc_height]+o-vround 1/6[vair,stem]);
+cup_accent(2,d,cup_shift);
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter KHA";
+beginchar(oct "016",13u#+width_adj#,cap_height#,.6desc_depth#);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#);
+if dish>0: under_h_accent(2,4,k);
+else: bar_accent(2,4,k,-8/9desc_depth); fi
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter hatted I";
+beginchar(oct "045",max(6u#,4u#+cap_stem#),body_height#,0);
+italcorr cap_height#*slant+.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#);
+numeric hat_top, hat_thick, hat_shift;
+hat_top=min(asc_height,2x_height);
+hat_thick=.25[vair,curve];
+hat_shift=hat_top-.5[x_height,hat_top]+if serifs: .85 else: 1.15 fi(body_height-y1);
+hat_accent(1,g,hat_shift);
+penlabels(1,2); endchar;
+
+cmchar "The letter GNAF";
+beginchar(oct "017",13u#+width_adj#,body_height#,0);
+italcorr body_height#*slant-cap_serif_fit#+cap_jut# if serifs: -2.5u# fi +min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=cap_height; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=cap_height; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=cap_height-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0));
+x8=hround .5w;
+cap_tilde(8,t,10u);
+penlabels(1,1',2,3,4,4',5,6,7,8); endchar;
+
+cmchar "The letter SHIN";
+beginchar(oct "052",10u#,cap_height#,.875desc_depth#);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#);
+cedilla_accent(7,c,o if serifs: -crisp fi);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter THA";
+beginchar(oct "0136",10u#,cap_height#,.6desc_depth#);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#);
+x11=1.5u; x12=w-x11;
+bar_accent(11,12,a,-8/9desc_depth);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10,11,12); endchar;
+
+cmchar "The letter hatted U";
+beginchar(oct"046",13u#+.5width_adj#,body_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0));
+x6=.5w;
+numeric hat_top, hat_thick, hat_shift;
+hat_top=min(asc_height,2x_height);
+hat_thick=.25[vair,curve];
+hat_shift=hat_top-.5[x_height,hat_top]+if serifs: .85 else: 1.15 fi(body_height-y1);
+hat_accent(6,g,hat_shift);
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter ZAL";
+beginchar(oct "0137",11u#,cap_height#,.6desc_depth#);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#);
+x9=1.5u; x10=w-x9;
+bar_accent(9,10,c,-8/9desc_depth);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+% cmchar "The letter hatted O";
+% beginchar(oct "046",14u#-width_adj#,body_height#,0);
+% italcorr .7cap_height#*slant-.5u#;
+% adjust_fit(0,0);
+% penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+% penpos2(cap_curve,180); penpos4(cap_curve,0);
+% if monospace: x2r=hround 1.5u;
+% interim superness:=sqrt superness; % make |"O"|, not |"0"|
+% else: x2r=hround u; fi
+% x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+% y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+% penstroke pulled_super_arc.e(1,2)(.5superpull)
+% & pulled_super_arc.e(2,3)(.5superpull)
+% & pulled_super_arc.e(3,4)(.5superpull)
+% & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+% math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+% numeric hat_top, hat_thick, hat_shift;
+% hat_top=min(asc_height,2x_height);
+% hat_thick=.25[vair,curve];
+% hat_shift=hat_top-.5[x_height,hat_top]+if serifs: .85 else: .95 fi(body_height-y1);
+% hat_accent(1,a,hat_shift);
+% penlabels(1,2,3,4); endchar;
+%
+%
diff --git a/language/turkish/mf/tkacil.mf b/language/turkish/mf/tkacil.mf
new file mode 100644
index 0000000000..0c9f37b5d1
--- /dev/null
+++ b/language/turkish/mf/tkacil.mf
@@ -0,0 +1,264 @@
+% Accented Turkish based on Computer Modern Italic lower case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Accents added by P. A. MacKay in December, 1986.
+
+% Accents are intended to be exact copies of the accents in the
+% Computer Modern file accent.mf, with the following exceptions:
+% 1. Bar accents are adjusted to the width of the associated letter.
+% 2. The hat accent is pinched in to fit the letter i.
+% 3. Acute and grave accents are rotated to whatever angle
+% best suits the letter associated letter.
+% 4. The under_h accent is based on an inverted tie accent.
+
+% No attempt is made to put the accent in the same position
+% that it would occupy if \TeX\ put it in with the \accent primitive.
+% Each accent has been adjusted for vertical and horizontal position
+% position to best fit the associated letter.
+
+% Character codes \0033--\0037, \0053, \0074--\0076 and \0176--0177
+% are generated.
+% Character code \0043 (hatted Persian o) is generated |iff not monospace|.
+% This code position is used for the upright single quote in monospace fonts.
+
+if unknown accsub: input accsub fi
+
+cmchar "Italic letter hatted a";
+beginchar(oct "074",9u#,if .5(asc_height#-x_height#)>1.5stem#:
+ .8[x_height#,asc_height#] else:asc_height# fi,0);
+italcorr 2/3[x_height#,asc_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
+ else:hat_shift=0; fi
+hat_accent(1,a,hat_shift);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter chim";
+beginchar(oct "033",8u#,x_height#,.875desc_depth#);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+cedilla_accent(4,a,o-crisp);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter dhal";
+beginchar(oct "034",9u#,asc_height#,.6desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+bar_accent(2,5,c,-8/9desc_depth);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% cupped g. This is fairly straightforward, except for the
+% lengthy calculation of cup_shift. To understand that, you must
+% look at the dimension calculations and use of mid_thickness
+% in Breve accent in accent.mf. No change to italic correction,
+% because right horn of cup will always fall to left of hook of g.
+
+cmchar "Italic letter cupped g";
+beginchar(oct "035",8u#,min(asc_height#,2x_height#),desc_depth#);
+italcorr x_height#*slant+.5stem#-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=x_height+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98x_height;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant);
+numeric cup_shift; cup_shift=
+ x_height+slab-max(x_height+o+tiny,1/3[x_height,asc_height]+o-vround 1/6[vair,stem]);
+if cup_shift>0:cup_shift:=0; fi
+cup_accent(1,c,cup_shift);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Italic letter kha";
+beginchar(oct "036",9u#,asc_height#,.6desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(0,ic#);
+bar_accent(2,6,k,-8/9desc_depth);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter hatted i";
+beginchar(oct "075",5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2.5u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
+ else:hat_shift=0; fi
+hat_accent(1,d,hat_shift);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Italic letter gnaf";
+beginchar(oct "037",10u#,if .5(asc_height#-x_height#)>1.5stem#:
+ .8[x_height#,asc_height#] else:asc_height# fi,0);
+italcorr .8[x_height#,asc_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+numeric tilde_shift; if h<asc_height:tilde_shift=-.3(asc_height-x_height);
+ else:tilde_shift=0; fi
+x8=hround .5w;
+tilde_accent(8,t,tilde_shift);
+penlabels(0,a,1,2,3,4,5,6,7,8); endchar;
+
+iff not monospace: cmchar "Italic letter hatted o";
+beginchar(oct "040",9u#,if .5(asc_height#-x_height#)>1.5stem#:
+ .8[x_height#,asc_height#] else:asc_height# fi,0);
+italcorr 1/3[x_height#,asc_height#]*slant+.5curve#-1.75u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
+ else:hat_shift=0; fi
+hat_accent(1,a,hat_shift);
+penlabels(1,2,3,4); endchar;
+
+cmchar "Italic letter shin";
+beginchar(oct "053",5.25u#+max(1.75u#,flare#),x_height#,.875desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#);
+cedilla_accent(7,c,o-crisp);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter tha";
+beginchar(oct "0176",5.25u#+max(1.75u#,flare#),x_height#,.6desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+x11=1.25u; x12=w-x11;
+math_fit(0,ic#);
+bar_accent(11,12,a,-8/9desc_depth);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Italic letter hatted u";
+beginchar(oct "076",9.5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr 1/3x_height#*slant+.5hair#+u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+numeric hat_shift; if h<asc_height:hat_shift=-.2(asc_height-x_height);
+ else:hat_shift=0; fi
+x10=.5w; hat_accent(10,d,hat_shift);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic letter zal";
+beginchar(oct "0177",5.5u#+max(1.5u#,stem#),x_height#,.6desc_depth#);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+x9=x5; x10=.4[x7,x8];
+bar_accent(9,10,c,-8/9desc_depth);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
diff --git a/language/turkish/mf/tkdotl.mf b/language/turkish/mf/tkdotl.mf
new file mode 100644
index 0000000000..ae1b1e6c17
--- /dev/null
+++ b/language/turkish/mf/tkdotl.mf
@@ -0,0 +1,441 @@
+% Computer Modern Roman lower case with dotted diacriticals for Turkish etc.
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Dotted diacriticals added by P. A. MacKay, January, 1987.
+
+% Character codes \0220 through \0232 are generated unless pxlfont = 128
+% in which case the characters are mapped into \020 through \032
+
+if unknown accsub: input accsub fi
+
+cmchar "The letter dad";
+dot_sharp_values;
+beginchar(oct"020",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x8=.5w; dot_accent(8,g,dot_shift);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff not variant_g: cmchar "The letter ghayn";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"021",10u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=x_height+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=x_height+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,x_height]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=x_height+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+pickup tiny.nib;
+pos15(dot_diam,0); pos16(dot_diam,90);
+x15=.55[x2r,x4r]; %
+top y16r=h+1;
+if bot y16l-top y1<slab: y16l:=min(y16r-eps,y1+tiny+slab); fi
+x15=x16; y15=.5[y16l,y16r]; dot(15,16); % dot
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16); labels(8',8''); endchar;
+
+iff variant_g: cmchar "Variant letter ghayn";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"021",10u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,x_height)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=x_height+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+pickup tiny.nib;
+pos13(dot_diam,0); pos14(dot_diam,90);
+x13=x4l; % Pulls the dot over just a bit to the right.
+top y14r=h+1;
+if bot y14l-top y4r<slab: y14l:=min(y14r-eps,y4+tiny+slab); fi
+x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,13,14); endchar;
+
+cmchar "The letter hha";
+dot_sharp_values;
+beginchar(oct"022",10u#,asc_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x5=.5w; dot_accent(5,k,dot_shift);
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter dotted i";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"023",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter qaf";
+dot_sharp_values;
+beginchar(oct"024",9.5u#,asc_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x12=.5w; dot_accent(12,q,dot_shift);
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+cmchar "The letter dotted o";
+dot_sharp_values;
+beginchar(oct"025",9u#,dot_top#,0);
+italcorr 1/3[x_height#,asc_height#]*slant-.5u# if serifs: + .25dot_diam# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_diam, dot_top);
+dot_shift=0; % in this case, the position happens to be correct
+x7=x1-.8dot_diam; x8=x7+1.6dot_diam;
+dot_accent(7,a,dot_shift);
+dot_accent(8,b,dot_shift);
+penlabels(1,2,3,4,7,8); endchar;
+
+cmchar "The letter sad";
+dot_sharp_values;
+beginchar(oct"026",7.1u#,x_height#,desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x11=.5[x3l,x6r]; % Centered on outside edges of curves
+dot_accent(11,q,dot_shift);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter tta";
+dot_sharp_values;
+beginchar(oct"027",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x9=.5[x3,x4]; % A little left of the low point of hook
+dot_accent(9,g,dot_shift);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter dotted u";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"030",10u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr 1/3[x_height#,asc_height#]*slant-.5u# if serifs: - stem# fi;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+pickup tiny.nib;
+pos7(dot_diam,0); pos8(dot_diam,90);
+pos9(dot_diam,0); pos10(dot_diam,90);
+x7=.5[x1,x3]-.9dot_diam; %
+top y8r=top y10r=h+1;
+if bot y8l-top y1<slab: y8l:=y10l:=min(y8r-eps,y1+tiny+slab); fi
+x7=x8; y7=y9=.5[y8l,y8r]; dot(7,8); % dot
+x9r=max(x7+1.9dot_diam,x3);
+x9=x10; dot(9,10);
+penlabels(1,2,3,4,5,7,8,9,10); labels(6); endchar;
+
+cmchar "The letter zad";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"031",8u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-.5serif_fit# + .5dot_diam# -2u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=x_height; y2=min(y1,x_height-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=x_height; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+pickup tiny.nib;
+pos9(dot_diam,0); pos10(dot_diam,90);
+x9=.55[x3,x1]; % Pull the dot over just a bit to the right.
+top y10r=h+1;
+if bot y10l-top y1<slab: y10l:=min(y10r-eps,y1+tiny+slab); fi
+x9=x10; y9=.5[y10l,y10r]; dot(9,10); % dot
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "The letter zza";
+dot_sharp_values;
+beginchar(oct"032",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x9=.5[x3,x1]; dot_accent(9,c,dot_shift);
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/language/turkish/mf/tkdotu.mf b/language/turkish/mf/tkdotu.mf
new file mode 100644
index 0000000000..30fe05b721
--- /dev/null
+++ b/language/turkish/mf/tkdotu.mf
@@ -0,0 +1,374 @@
+% Computer Modern Roman upper case with dotted diacriticals for Turkish etc.
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Dotted diacriticals added by P. A. MacKay, January, 1987.
+
+% Upper case letters with accents above are all given the height
+% value |body_height|, with the result that the accents kern up
+% into the white space or leading from the previous line. It is
+% the responsibility of the formatter to set TeX's baselineskip
+% so that there is adequate room for such accents. The cup on
+% upper case G is probably the most extreme case in serifed roman
+% or italic fonts; the hat on O is the most extreme in sans-serif
+% fonts
+
+% Character codes \000 through \012 are generated.
+
+if unknown accsub: input accsub fi
+
+cmchar "The letter DAD";
+dot_sharp_values;
+beginchar(oct "000",13.5u#,cap_height#,desc_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x8=2/3[x3,x4]; dot_accent(8,g,dot_shift);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter GHAYN";
+dot_sharp_values;
+if serifs: beginchar(oct "001",14u#,body_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=cap_height+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6cap_height,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=cap_height+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar(oct "001",12u#,body_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93cap_height+o; top y2r=cap_height+o; y3=.5cap_height;
+ bot y4r=-o; bot y5r=vround .07cap_height-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=.85[cap_height+o,body_height]-dot_top;
+dot_accent(2l,g,dot_shift);
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter HHA";
+dot_sharp_values;
+beginchar(oct "002",13u#+width_adj#,cap_height#,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x7=1/2[x2,x4]; dot_accent(7,k,dot_shift);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter dotted I";
+dot_sharp_values;
+beginchar(oct "003",max(6u#,4u#+cap_stem#),body_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=.85[cap_height+o,body_height]-dot_top;
+dot_accent(2,g,dot_shift);
+penlabels(1,2); endchar;
+
+cmchar "The letter QAF";
+dot_sharp_values;
+beginchar(oct "004",13.5u#,cap_height#,desc_depth#);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x7=1/2[x2,x6]; dot_accent(7,q,dot_shift);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter dotted O";
+dot_sharp_values;
+beginchar(oct "005",14u#-width_adj#,body_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+numeric clearance, dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+clearance=hround((w-dot_size-cap_curve)/2); x5=w-x6=min(clearance,5.25u);
+dot_shift=.85[cap_height+o,body_height]-dot_top;
+dot_accent(5,a,dot_shift);
+dot_accent(6,b,dot_shift);
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter SAD";
+dot_sharp_values;
+beginchar(oct "006",10u#,cap_height#,desc_depth#);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+dot_accent(7,q,dot_shift);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter TTA";
+dot_sharp_values;
+beginchar(oct "007",13u#-width_adj#,cap_height#,desc_depth#);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+dot_accent(2,g,dot_shift);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter dotted U";
+dot_sharp_values;
+beginchar(oct "010",13u#+.5width_adj#,body_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0));
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+x6=4.75u; w-x7=if dish > 0: 3.75 else: 4.75 fi u;
+dot_shift=.85[cap_height+o,body_height]-dot_top;
+dot_accent(6,f,dot_shift);
+dot_accent(7,g,dot_shift);
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter ZAD";
+dot_sharp_values;
+beginchar(oct "011",11u#,body_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=cap_height; y2=min(y1,cap_height-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=cap_height; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+x9=5/9[x6,x5];
+dot_shift=.85[cap_height+o,body_height]-dot_top;
+dot_accent(9,f,dot_shift);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter ZZA";
+dot_sharp_values;
+beginchar(oct "012",11u#,cap_height#,desc_depth#);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x9=4/9[x3,x8]; dot_accent(9,c,dot_shift);
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/language/turkish/mf/tkdtil.mf b/language/turkish/mf/tkdtil.mf
new file mode 100644
index 0000000000..1ab0755c60
--- /dev/null
+++ b/language/turkish/mf/tkdtil.mf
@@ -0,0 +1,269 @@
+% Computer Modern italic lower case with dotted diacriticals for Turkish etc.
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Dotted diacriticals added by P. A. MacKay, January, 1987.
+
+if unknown accsub: input accsub fi
+
+% Character codes \020 through \032 are generated.
+
+cmchar "Italic letter dad";
+dot_sharp_values;
+beginchar(oct"020",9u#,asc_height#,desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x8=.5w; dot_accent(8,g,dot_shift);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter ghayn";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct "021",8u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=x_height+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98x_height;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant);
+pickup tiny.nib;
+pos9(dot_diam,0); pos10(dot_diam,90);
+x9=.55[x2r,x4r]; %
+top y10r=h+1;
+if bot y10l-top y1<slab: y10l:=min(y10r-eps,y1+tiny+slab); fi
+x9=x10; y9=.5[y10l,y10r]; dot(9,10); % dot
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter hha";
+dot_sharp_values;
+beginchar(oct "022",9u#,asc_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(0,ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x8=.5w; dot_accent(8,g,dot_shift);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic letter dotted i";
+beginchar(oct "023",5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+cmchar "Italic letter qaf";
+dot_sharp_values;
+beginchar(oct "024",8u#,asc_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x10=.5w; dot_accent(10,g,dot_shift);
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+cmchar "Italic letter dotted o";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct "025",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr 1/3[x_height#,asc_height#]*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+pickup tiny.nib;
+pos7(dot_diam,0); pos8(dot_diam,90);
+pos9(dot_diam,0); pos10(dot_diam,90);
+x7=x1-.8dot_diam; %
+top y8r=h+1;
+if bot y8l-top y1<slab: y8l:=y10l:=min(y8r-eps,y1+tiny+slab); fi
+x7=x8; y7=y9=.5[y8l,y8r]; dot(7,8); % dot
+x9=x10=x7+1.6dot_diam; y9=y10; dot(9,10);
+penlabels(1,2,3,4,7,8,9,10); endchar;
+
+cmchar "Italic letter sad";
+dot_sharp_values;
+beginchar(oct "026",5.25u#+max(1.75u#,flare#),x_height#,desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x11=.5[x3l,x6r]; % Centered on outside edges of curves
+dot_accent(11,g,dot_shift);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter tta";
+dot_sharp_values;
+beginchar(oct "027",5.5u#,min(asc_height#,10/7x_height#),desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+filldraw circ_stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+math_fit(1.25u#-x_height#*slant,ic#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x7=.65[x2,x3]; % A little left of the low point of hook
+dot_accent(7,g,dot_shift);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter dotted u";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct "030",9.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr 1/3[x_height#,asc_height#]*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+pickup tiny.nib;
+pos11(dot_diam,0); pos12(dot_diam,90);
+pos13(dot_diam,0); pos14(dot_diam,90);
+x11=x2; %
+top y12r=h+1;
+if bot y12l-top y1<slab: y12l:=y14l:=min(y12r-eps,y1+tiny+slab); fi
+x11=x12; y11=y13=.5[y12l,y12r]; dot(11,12); % dot
+x13r=max(x11+1.9dot_diam,x6);
+x13=x14; y13=y14; dot(13,14);
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14); endchar;
+
+cmchar "Italic letter zad";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct "031",5.5u#+max(1.5u#,stem#),min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78x_height; top y2l=top y4=x_height+oo; y3=.825x_height;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175x_height; bot y8=.31x_height;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+pickup tiny.nib;
+pos9(dot_diam,0); pos10(dot_diam,90);
+x9=.55[x3,x1]; % Pull the dot over just a bit to the right.
+top y10r=h+1;
+if bot y10l-top y1<slab: y10l:=min(y10r-eps,y1+tiny+slab); fi
+x9=x10; y9=.5[y10l,y10r]; dot(9,10); % dot
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter zza";
+dot_sharp_values;
+beginchar(oct "032",5.5u#+max(1.5u#,stem#),x_height#,desc_depth#);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+numeric dot_shift, dot_top;
+define_whole_blacker_pixels(dot_top);
+dot_shift=-dot_top-desc_depth;
+x9=.8[x5,x7]; dot_accent(9,g,dot_shift);
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/language/turkish/mf/tkital.mf b/language/turkish/mf/tkital.mf
new file mode 100644
index 0000000000..01f89b86ee
--- /dev/null
+++ b/language/turkish/mf/tkital.mf
@@ -0,0 +1,457 @@
+% Computer Modern Italic lower case for Turkish:
+% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Differs from itall.mf in that the i is undotted.
+% Adapted from itall.mf by P. A. MacKay, January, 1987.
+
+% Character codes \0141 through \0172 are generated.
+
+cmchar "Italic letter a";
+beginchar("a",9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter b";
+beginchar("b",8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Italic letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter d";
+beginchar("d",9u#,asc_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter e";
+beginchar("e",8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter f";
+beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+cmchar "Italic letter g";
+beginchar("g",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98h;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Italic letter h";
+beginchar("h",9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter i";
+beginchar("i",5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Italic letter j";
+beginchar("j",5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr h#*slant+.5stem#-u#;
+adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+pos8(flare,0); pos9(flare,90);
+rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+cmchar "Italic letter k";
+beginchar("k",8u#,asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic letter l";
+beginchar("l",4u#,asc_height#,0); l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=h; x1=x2; filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Italic letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Italic letter p";
+beginchar("p",9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter q";
+beginchar("q",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem)+eps;
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pickup tiny.nib; pos4(stem,0); pos5(stem,0);
+x4=x5; x6=x5r; top y6=h+oo; bot y4=-d;
+y5=ypart(((x4l,0)--(x4l,y6))intersectionpoint super_arc.r(0,1));
+filldraw z6{2(x5l-x6),y5-y6}...z5l---z4l--z4r--cycle; % stem
+dish_serif(4,5,a,1/3,jut,b,1/3,jut); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Italic letter r";
+beginchar("r",5.5u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+hook_in(0,1,2); % opening hook
+filldraw circ_stroke z3e--z2e; % left stem
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=h+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter s";
+beginchar("s",5.25u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter t";
+beginchar("t",5.5u#,min(asc_height#,10/7x_height#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+filldraw circ_stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter u";
+beginchar("u",9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic letter v";
+beginchar("v",8u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter w";
+beginchar("w",12u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:-1.5u#,-u# else: 0,0 fi);
+pickup fine.nib; interim superness:=more_super; begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if monospace: pos1(vair,90); x1=good.x .5[x0,x2]; top y1r=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z1e{right}...{-u,-x_height}z2e;
+else: hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0);
+x4=.6[x2,x5]; x5=x6=x7; pos6(stem,-180); pos7(stem,-180);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+rt x6l=hround(rt x6l+.5w+.75u-x6); y6+.5stem=h; y7=y3;
+pos8(vair,-90); pos9(hair,0);
+x8=w-2.75u; rt x9r=hround(w-.5u); bot y8r=-oo; y9=y5;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e..super_arc.e(7,8)...{up}z9e; % middle stem and arc
+v_bulb(9,10); % closing bulb
+endgroup; math_fit(-2/3x_height#*slant+.5hair#+.5u#,3/4ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter x";
+beginchar("x",6.5u#+max(1.5u#,flare#),x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+cmchar "Italic letter y";
+beginchar("y",8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter z";
+beginchar("z",5.5u#+max(1.5u#,stem#),x_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/language/turkish/mf/tklig.mf b/language/turkish/mf/tklig.mf
new file mode 100644
index 0000000000..6aa3d398fa
--- /dev/null
+++ b/language/turkish/mf/tklig.mf
@@ -0,0 +1,36 @@
+HAT_A=oct"044"; CHIM=oct"013"; DAD=oct"000"; DHAL=oct"014";
+CUP_G=oct"015"; GHAYN=oct"001"; QAF=oct"004"; DOT_O=oct"005";
+HAT_O=oct"046"; TTA=oct"007"; DOT_U=oct"010";
+hat_a=oct"074"; chim=oct"033"; cup_g=oct"035"; ghayn=oct"021";
+hha=oct"022"; kha=oct"036"; dot_i=oct"023"; hat_i=oct"075";
+qaf=oct"024"; gnaf=oct"037"; dot_o=oct"025"; hat_o=oct"076";
+tta=oct"027"
+
+ligtable "A": "="=:HAT_A,
+ligtable "C": ":"=:CHIM,
+ligtable "D": "="=:DHAL, "!"=:DAD,
+ligtable "G": ":"=:GHAYN, "="=:CUP_G,
+ligtable "H": "="=:oct"016", "!"=:oct"002",
+ligtable "I": ":"=:oct"003", "="=:oct"045",
+ligtable "K": "!"=:QAF,
+ligtable "N": "="=:oct"017",
+ligtable "O": ":"=:DOT_O, "="=:HAT_O,
+ligtable "S": ":"=:oct"052", "="=:oct"0136", "!"=:oct"006",
+ligtable "T": "!"=:TTA,
+ligtable "U": ":"=:DOT_U,
+ligtable "Z": ":"=:oct"011", "="=:oct"0137, "!"=:oct"012,
+
+ligtable "a": "="=:hat_a,
+ligtable "c": ":"=:chim,
+ligtable "d": "="=:oct"034", "!"=:oct"020",
+ligtable "g": ":"=:ghayn, "="=:cup_g,
+ligtable "h": "="=:kha, "!"=:hha,
+ligtable "i": ":"=:dot_i, "="=:hat_i,
+ligtable "k": "!"=:qaf,
+ligtable "n": "="=:oct"037",
+ligtable "o": ":"=:dot_o, "="=:hat_o,
+ligtable "s": ":"=:oct"053", "="=:oct"0176", "!"=:oct"026",
+ligtable "t": "!"=:tta,
+ligtable "u": ":"=:oct"030",
+ligtable "z": ":"=:oct"031", "="=:oct"0177", "!"=:oct"032",
+
diff --git a/language/turkish/mf/tkpnct.mf b/language/turkish/mf/tkpnct.mf
new file mode 100644
index 0000000000..f692acce62
--- /dev/null
+++ b/language/turkish/mf/tkpnct.mf
@@ -0,0 +1,331 @@
+% This file contains a reduced set of punctuation marks common to
+% roman and italic styles for use with Turkish diacritical fonts.
+
+% Codes \0041, \0047--\0051, \0054\ %
+%% \0056, \0057, \0072, \0073, \0077,\par
+% \0133, \0135, and \0140 are generated.
+% Codes \0045, \0052, \0053, and \0075 are generated |iff not use_pxl|
+% Codes \0043 and \0100 are preempted by ayn and hamza. They must be
+% in the |lccode| range.
+
+% Adapted from punct.mf by P. A. MacKay, January, 1987.
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff known spanish_shriek: cmchar "Spanish open exclamation point";
+beginchar(spanish_shriek,5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff not use_pxl: cmchar "Hash mark (number sign)"; % normal place preempted
+if monospace: compute_spread(.6x_height#,.7x_height#); % by `ayn.
+else: compute_spread(.45x_height#,.55x_height#); fi
+beginchar(oct"243",15u#,asc_height#,asc_depth#); % Not in normal place
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+adjust_fit(0,0);
+pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); endchar;
+
+iff not use_pxl: cmchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+iff not use_pxl: cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+iff not use_pxl: cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+iff not use_pxl: cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+iff known romquery: cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff known italquery: cmchar "Italic question mark";
+beginchar("?",9u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; dot(10,11); % dot
+pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
+lft x1r=hround u; x3=.5w;
+y1-.5flare=x_height; top y3r=h+o; bulb(3,2,1); % bulb
+pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
+numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
+pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
+x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{down}
+ ..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff not use_pxl: cmchar "At sign"; % normal position preempted by hamza
+beginchar(oct"300",14u#,asc_height#,0); % not in normal position
+italcorr .7asc_height#*slant-.5u#;
+adjust_fit(0,if hefty or monospace:-2u# else: 0 fi);
+pickup fine.nib; pos0(fudged.hair,0); pos1(vair,90);
+pos2(fudged.stem,180); pos3(vair,270);
+pos4(fudged.stem,-180); pos5(fudged.stem,-180);
+pos6(vair,-90); pos7(fudged.hair,0);
+pos8(vair,90); pos9(fudged.hair,180);
+pos10(vair,270); pos11(.5[vair,flare],360);
+x1=x3=.5[x0,x2]; y0=y2=.5[y1,y3];
+x8=x10=.5w; y7=y9=.5[y8,y10];
+lft x9r=hround u; x7=w-x9; top y8r=h+oo; bot y10r=-oo;
+top y1r=vround(.8[y10,y8]+.5vair); bot y3r=vround(.2[y10,y8]-.5vair);
+x6l=1/3[x5l,x7l]; y6=y3; y11=good.y(.1[y10,y8]-.5);
+x0=x4=x5; y4=.8[y3,y1]; y5=2/3[y7,y6];
+if hefty or monospace: lft x2r=hround(5u-.5fudged.stem);
+ rt x0r=hround(w-3u); x11r=x0r;
+else: lft x2r=hround 3.4u; x0=w-x2; x11r=x7r; fi
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % left inner bowl
+filldraw stroke super_arc.e(3,0) & super_arc.e(0,1); % right inner bowl
+filldraw stroke super_arc.e(8,9) & super_arc.e(9,10)
+ & term.e(10,11,right,1,4); % left outer bowl and terminal
+if hefty or monospace: {{interim superness:=hein_super;
+ filldraw stroke super_arc.e(0,8)}}; % link
+else: (x,y6r)=whatever[z6l,z7l]; x6r:=x;
+ filldraw stroke z4e---z5e...z6e{right}...{up}z7e
+ & super_arc.e(7,8); fi % stem and link
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
diff --git a/language/turkish/mf/tkroml.mf b/language/turkish/mf/tkroml.mf
new file mode 100644
index 0000000000..6ec8269b35
--- /dev/null
+++ b/language/turkish/mf/tkroml.mf
@@ -0,0 +1,818 @@
+% Computer Modern Roman lower case for Turkish:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Differs from romanl.mf in that the i is undotted.
+% Adapted from romanl.mf by P. A. MacKay, January, 1987.
+
+% Character codes \0141 through \0172 are generated.
+
+cmchar "The letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter d";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter f";
+beginchar("f",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+iff not variant_g: cmchar "The letter g";
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: cmchar "Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter i";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("i",5u#,x_height#,0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter j";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+cmchar "The letter l";
+beginchar("l",5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "The letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter p";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter u";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "The letter v";
+beginchar("v",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.5[z5l,z6l]
+ --.5[z5r,z6r]--cycle;% middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter x";
+beginchar("x",if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter z";
+beginchar("z",8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/language/turkish/mf/tksub.mf b/language/turkish/mf/tksub.mf
new file mode 100644
index 0000000000..bf2e58d502
--- /dev/null
+++ b/language/turkish/mf/tksub.mf
@@ -0,0 +1,24 @@
+% This file defines characters that go into the Turkish font when |ligs=0|.
+
+% Adapted from romsub.mf by P. A. MacKay, January, 1987.
+
+% Character codes \0042--\0043, \0055, \0134, and \0173--\0175 are generated
+% when |ligs=0|;
+
+straight_quotes=oct"042"; minus=ASCII"-";
+backslash=ASCII"\";
+left_brace=ASCII"{"; vertical=ASCII"|"; right_brace=ASCII"}";
+
+input sym;
+
+cmchar "Straight single quote";
+beginchar(oct"043",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2); endchar;
+
diff --git a/language/turkish/mf/turkce.mf b/language/turkish/mf/turkce.mf
new file mode 100644
index 0000000000..d3c84abf42
--- /dev/null
+++ b/language/turkish/mf/turkce.mf
@@ -0,0 +1,227 @@
+% Turkish font with full diacriticals, based on the
+% Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+
+% Adapted for Turkish by P. A. MacKay, January, 1987.
+
+% If command line includes |pxlfont=128;|, |use_pxl| becomes true
+boolean use_pxl;
+if unknown pxlfont: use_pxl:=false; else: use_pxl:=true; fi
+
+% Use the roman questionmark for this class of fonts
+% This will come out of romanp.mf if a 256-character font is being
+% written, otherwise it will be supplied by conditional code in
+% tkpnct.mf. This code is activated by a known value in |romquery|.
+if use_pxl: romquery=oct"077";
+else: spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+if not monospace: izafet_dot= if use_pxl: oct"0175" else: oct"0375" fi; fi
+
+if ligs>0: font_coding_scheme:="TeX Turkish"
+else: font_coding_scheme:="TeX typewriter Turkish" fi;
+
+mode_setup; font_setup;
+
+input romanu; % upper case (majuscules) unchanged for Turkish
+input tkroml; % lower case (minuscules) romanl with dotless i
+input romand; % numerals
+if ligs>0: input comlig; fi % ligatures common with italic text
+input tkpnct; % punctuation common to roman and italic (reduced set)
+input aynhmz; % ayn and hamza, izafet dot |iff not monospace|
+if use_pxl:
+else:
+ input greeku; % upper case Greek letters
+ input romanp; % ampersand, question marks, currency sign
+ input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+ input romspu; % uppercase specials (\AE, \OE, \O)
+ input accent; % accents common to roman and italic text
+ if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ ligtable "!": "`" =: spanish_shriek;
+ ligtable "?": "`" =: spanish_query;
+ extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+ code_offset:=128; % move accented chars into 128..255 region
+fi
+input tkdotu; % upper case with dotted diacriticals
+input tkdotl; % lower case with dotted diacriticals
+input tkaccu; % upper case with assorted accents
+input tkaccl; % lower case with assorted accents
+if ligs<=0: input tksub; fi % substitutes for ligatures
+
+% A thoroughly mixed list of names for the accented characters.
+% These follow English, Arabic and Turkish conventions rather arbitrarily
+% Only the letters that appear more than once in the ligtable are coded here.
+
+if use_pxl:
+ HAT_A=oct"044"; CHIM=oct"013"; DAD=oct"000"; DHAL=oct"014";
+ CUP_G=oct"015"; GHAYN=oct"001"; QAF=oct"004";
+ DOT_O=oct"005"; TTA=oct"007";
+ DOT_U=oct"010"; HAT_U=oct"046";
+ hat_a=oct"074"; chim=oct"033"; dhal=oct"034"; dad=oct"020";
+ cup_g=oct"035"; ghayn=oct"021";
+ hha=oct"022"; kha=oct"036"; dot_i=oct"023"; hat_i=oct"075";
+ qaf=oct"024"; gnaf=oct"037"; dot_o=oct"025"; hat_o=oct"040";
+ tta=oct"027"; dot_u=oct"030"; hat_u=oct"076";
+else:
+ HAT_A=oct"0244"; CHIM=oct"0213"; DAD=oct"0200"; DHAL=oct"0214";
+ CUP_G=oct"0215"; GHAYN=oct"0201"; QAF=oct"0204";
+ DOT_O=oct"0205"; TTA=oct"0207";
+ DOT_U=oct"0210"; HAT_U=oct"0246";
+ hat_a=oct"0274"; chim=oct"0233"; dhal=oct"0234"; dad=oct"0220";
+ cup_g=oct"0235"; ghayn=oct"0221";
+ hha=oct"0222"; kha=oct"0236"; dot_i=oct"0223"; hat_i=oct"0275";
+ qaf=oct"0224"; gnaf=oct"0237"; dot_o=oct"0225"; hat_o=oct"0240";
+ tta=oct"0227"; dot_u=oct"0230"; hat_u=oct"0276";
+fi
+
+font_slant slant; font_x_height x_height#;
+
+% Accent ligatures not complicated by questions of kerning
+% good for both monospace and variable-space fonts.
+
+ligtable "C": ":"=:CHIM; ligtable "G": ":"=:GHAYN, "="=:CUP_G;
+ligtable "H": "="=:if use_pxl: oct"016" else: oct"0216" fi,
+ "!"=:if use_pxl: oct"002" else: oct"0202" fi;
+ligtable "N": "="=:if use_pxl: oct"017" else: oct"0217" fi;
+ligtable "S": ":"=:if use_pxl: oct"052" else: oct"0252" fi,
+ "="=:if use_pxl: oct"0136" else: oct"0336" fi,
+ "!"=:if use_pxl: oct"006" else: oct"0206" fi;
+ligtable "U": ":"=:DOT_U, "="=:HAT_U;
+ligtable "Z": ":"=:if use_pxl: oct"011" else: oct"0211" fi,
+ "="=:if use_pxl: oct"0137" else: oct"0337" fi,
+ "!"=:if use_pxl: oct"012" else: oct"0212" fi;
+
+ligtable "d": "="=:dhal, "!"=:dad; ligtable "i": ":"=:dot_i, "="=:hat_i;
+ligtable "s": ":"=:if use_pxl: oct"053" else: oct"0253" fi,
+ "="=:if use_pxl: oct"0176" else: oct"0376" fi,
+ "!"=:if use_pxl: oct"026" else: oct"0226" fi;
+ligtable "z": ":"=:if use_pxl: oct"031" else: oct"0231" fi,
+ "="=:if use_pxl: oct"0177" else: oct"0377" fi,
+ "!"=:if use_pxl: oct"032" else: oct"0232" fi;
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ ligtable "A": "="=:HAT_A; ligtable "a": "="=:hat_a;
+ ligtable "D": "="=:DHAL, "!"=:DAD;
+ ligtable "I": ":"=:if use_pxl: oct"003" else: oct"0203" fi,
+ "="=:if use_pxl: oct"045" else: oct"0245" fi;
+ ligtable "K": "!"=:QAF; ligtable "k": "!"=:qaf;
+ ligtable "O": ":"=:DOT_O; ligtable "o": ":"=:dot_o; % no |hat_o| here
+ ligtable "T": "!"=:TTA; ligtable "t": "!"=:tta;
+ ligtable "c": ":"=:chim; ligtable "g": ":"=:ghayn, "="=:cup_g;
+ ligtable "h": "="=:kha, "!"=:hha; ligtable "n": "="=:gnaf;
+ ligtable "u": ":"=:dot_u, "="=:hat_u;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+% The following ligtable entries are based on the entries in
+% roman.mf. It has been necessary to extract many parts of the
+% original entries in order to keep the ligature structure clear.
+
+ ligtable "k": "!"=:qaf, % new ligature---kerns from what follows
+ qaf: % remainder---kerns only
+ if serifs: "v": "a" kern -u#, hat_a kern -u#, fi\\
+ "w": "e" kern k#,
+ "a" kern k#, hat_a kern k#, "c" kern k#, chim kern k#,
+ "o" kern k#, dot_o kern k#, hat_o kern k#;
+
+ ligtable "P": "A" kern kk#, HAT_A kern kk#,
+ "y": "o" kern k#, hat_o kern k#, dot_o kern k#,
+ "e" kern k#, "a" kern k#, hat_a kern k#, "." kern kk#, "," kern kk#;
+
+ ligtable "F": "V": "W": if serifs: % remainder---kerns only
+ "o" kern kk#, hat_o kern kk#, dot_o kern kk#,
+ "e" kern kk#, "u" kern kk#, dot_u kern kk#, hat_u kern k#,
+ "r" kern kk#, "a" kern kk#, hat_a kern kk#,
+ "A" kern kkk#, HAT_A kern kkk#,
+ else: "o" kern k#, hat_o kern k#, dot_o kern k#,
+ "e" kern k#, "u" kern k#, dot_u kern k#, hat_u kern k#,
+ "r" kern k#, "a" kern k#, hat_a kern k#,
+ "A" kern kk#, HAT_A kern kk#, fi
+ "K": "!"=:QAF, % new ligature---kerns from what follows
+ QAF: "X": "O" kern k#, DOT_O kern k#,
+ "C" kern k#, CHIM kern k#, "G" kern k#, GHAYN kern k#, CUP_G kern k#,
+ "Q" kern k#;
+
+ ligtable "T": "!"=:TTA, % new ligature---kerns from what follows
+ TTA: "y" kern if serifs: k# else: kk# fi, % remainder---kerns only
+ "Y": "e" kern kk#, "o" kern kk#, hat_o kern kk#, dot_o kern kk#,
+ "r" kern kk#, "a" kern kk#, hat_a kern kk#,
+ "A" kern kk#, HAT_A kern kk#,
+ "u" kern kk#, dot_u kern kk#, hat_u kern kk#;
+
+ ligtable "D": "="=:DHAL, "!"=:DAD, % new ligature---kerns from what follows
+ "X" kern k#, "W" kern k#, "A" kern k#, HAT_A kern k#,
+ "V" kern k#, "Y" kern k#;
+
+ ligtable "O": ":"=:DOT_O, % another new ligature in this group
+ DOT_O: DHAL: DAD: % remainder---kerns only
+ "X" kern k#, "W" kern k#, "A" kern k#, HAT_A kern k#,
+ "V" kern k#, "Y" kern k#;
+
+ ligtable "c": ":"=:chim, % new ligature---kerns from what follows
+ if serifs: "h" kern k#, hha kern k#, kha kern k#,
+ "k" kern k#, qaf kern k#; fi
+ ligtable "h": "="=:kha, "!"=:hha, % another new ligature in this group
+ if serifs: "t" kern k#, tta kern k#, "u" kern k#, dot_u kern k#,
+ "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#; fi
+ ligtable "n": "="=:gnaf, % another new ligature in this group
+ if serifs: "t" kern k#, tta kern k#,
+ "u" kern k#, dot_u kern k#, hat_u kern k#,
+ "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#; fi
+ if serifs: ligtable hha: kha: "m": gnaf: % remainder---kerns only
+ "t" kern k#, "u" kern k#, dot_u kern k#, hat_u kern k#,
+ "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#;
+ ligtable chim:
+ "h" kern k#, hha kern k#, kha kern k#,
+ "k" kern k#, qaf kern k#; fi
+
+ ligtable "o": ":"=:dot_o, "="=:hat_o, %new ligature---kerns from what follows
+ "e" kern -k#, "o" kern -k#, hat_o kern -k#, dot_o kern -k#, "x" kern k#,
+ "d" kern -k#, dhal kern -k#, dad kern -k#,
+ "c" kern -k#, chim kern -k#, "q" kern -k#,
+ if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "y" kern k#, "w" kern k#;
+ ligtable "a": "="=:hat_a, % another new ligature in this group
+ if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "y" kern k#, "w" kern k#;
+ ligtable "t": "!"=:tta, % another new ligature in this group
+ "y" kern k#, "w" kern k#;
+ ligtable "u": ":"=:dot_u, "="=:hat_u,
+ "w" kern k#; % another new ligature in this group
+ ligtable hat_o: dot_o: "b": "p": % remainder---kerns only
+ "e" kern -k#, "o" kern -k#, hat_o kern -k#, dot_o kern -k#, "x" kern k#,
+ "d" kern -k#, dhal kern -k#, dad kern -k#,
+ "c" kern -k#, chim kern -k#, "q" kern -k#,
+ hat_a: if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ tta: "y" kern k#,
+ dot_u: hat_u: "w" kern k#;
+
+ ligtable "A": "="=:HAT_A, % new ligature---kerns follow
+ HAT_A: if serifs: "R": fi % remainder---kerns only
+ "t" kern k#, tta kern k#,
+ "C" kern k#, CHIM kern k#,
+ "O" kern k#, DOT_O kern k#,
+ "G" kern k#, GHAYN kern k#, CUP_G kern k#,
+ "U" kern k#, DOT_U kern k#, HAT_U kern k#, "Q" kern k#,
+ "L": "T" kern kk#, TTA kern kk#,
+ "Y" kern kk#, "V" kern kkk#, "W" kern kkk#;
+
+ ligtable "g": ":"=:ghayn, "="=:cup_g, % new ligature
+ "j" kern -k#; % logjam (might happen in a foreign word.)
+ ligtable "I": ":"=:if use_pxl: oct"003" else: oct"0203" fi,
+ "="=:if use_pxl: oct"045" else: oct"0245" fi, % new ligature
+ "I" kern -k#; % Possible for ikinci Mehmed ?
+ ligtable oct"043": oct"100": % kerns for ayn and hamza
+ "A" kern kkk#, HAT_A kern kkk#,
+ "a" kern k#, hat_a kern k#;
+ ligtable ".": "."=:if use_pxl: oct"0175" else: oct"0375" fi;
+ ligtable "f": % Turkish cannot use the ordinary ligatures for |"f"|.
+ hat_i kern 3u#, dot_i kern 3u#, % and therefore needs these kerns
+ oct"043" kern 3u#, oct"0100" kern 3u#;
+fi
+ % ligatures for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
diff --git a/language/turkish/mf/turkit.mf b/language/turkish/mf/turkit.mf
new file mode 100644
index 0000000000..5a222cf6ed
--- /dev/null
+++ b/language/turkish/mf/turkit.mf
@@ -0,0 +1,198 @@
+% Turkish Text Italic with full diacriticals, based on
+% The Computer Modern Text Italic family (by D. E. Knuth, 1979--1985)
+
+% Adapted for Turkish by P. A. MacKay, January, 1987.
+
+% If command line includes |pxlfont=128;|, |use_pxl| becomes true
+boolean use_pxl;
+if unknown pxlfont: use_pxl:=false; else: use_pxl:=true; fi
+
+% Use the roman questionmark for this class of fonts
+% This will come out of romanp.mf if a 256-character font is being
+% written, otherwise it will be supplied by conditional code in
+% tkpnct.mf. This code is activated by a known value in |romquery|.
+if use_pxl: romquery=oct"077";
+else: spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+if not monospace: izafet_dot= if use_pxl: oct"0175" else: oct"0375" fi ; fi
+
+if ligs>0: font_coding_scheme:="TeX Turkish"
+else: font_coding_scheme:="TeX typewriter Turkish" fi;
+
+mode_setup; font_setup;
+
+input romanu; % upper case (majuscules)
+input tkital; % itall.mf lower case (minuscules) with undotted i
+input itald; % numerals
+if ligs>0: input comlig; fi % ligatures common with roman text
+input tkpnct; % punctuation common to roman and italic (reduced set)
+input aynhmz; % ayn and hamza, izafet dot |iff not monospace|
+if use_pxl:
+else:
+ input greeku; % upper case Greek letters
+ input romanp; % ampersand, question marks, currency sign
+ input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+ input romspu; % uppercase specials (\AE, \OE, \O)
+ input accent; % accents common to roman and italic text
+ if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ ligtable "!": "`" =: spanish_shriek;
+ ligtable "?": "`" =: spanish_query;
+ extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+ code_offset:=128; % move accented chars into 128..255 region
+fi
+input tkdotu; % upper case with dotted diacriticals
+input tkdtil; % lower case italic with dotted diacriticals
+input tkaccu; % upper case with assorted acents
+input tkacil; % lower case italic assorted accents
+if ligs<=0: input tksub; fi % substitutes for ligatures
+
+% A thoroughly mixed list of names for the accented characters.
+% These follow English, Arabic and Turkish conventions rather arbitrarily
+% Only the letters that appear more than once in the ligtable are coded here.
+
+if use_pxl:
+ HAT_A=oct"044"; CHIM=oct"013"; DAD=oct"000"; DHAL=oct"014";
+ CUP_G=oct"015"; GHAYN=oct"001"; QAF=oct"004";
+ DOT_O=oct"005"; TTA=oct"007";
+ DOT_U=oct"010"; HAT_U=oct"046";
+ hat_a=oct"074"; chim=oct"033"; dhal=oct"034"; dad=oct"020";
+ cup_g=oct"035"; ghayn=oct"021";
+ hha=oct"022"; kha=oct"036"; dot_i=oct"023"; hat_i=oct"075";
+ qaf=oct"024"; gnaf=oct"037"; dot_o=oct"025"; hat_o=oct"040";
+ tta=oct"027"; dot_u=oct"030"; hat_u=oct"076";
+else:
+ HAT_A=oct"0244"; CHIM=oct"0213"; DAD=oct"0200"; DHAL=oct"0214";
+ CUP_G=oct"0215"; GHAYN=oct"0201"; QAF=oct"0204";
+ DOT_O=oct"0205"; TTA=oct"0207";
+ DOT_U=oct"0210"; HAT_U=oct"0246";
+ hat_a=oct"0274"; chim=oct"0233"; dhal=oct"0234"; dad=oct"0220";
+ cup_g=oct"0235"; ghayn=oct"0221";
+ hha=oct"0222"; kha=oct"0236"; dot_i=oct"0223"; hat_i=oct"0275";
+ qaf=oct"0224"; gnaf=oct"0237"; dot_o=oct"0225"; hat_o=oct"0240";
+ tta=oct"0227"; dot_u=oct"0230"; hat_u=oct"0276";
+fi
+
+font_slant slant; font_x_height x_height#;
+
+% Accent ligatures not complicated by questions of kerning
+% good for both monospace and variable-space fonts.
+
+ligtable "C": ":"=:CHIM; ligtable "G": ":"=:GHAYN, "="=:CUP_G;
+ligtable "H": "="=:if use_pxl: oct"016" else: oct"0216" fi,
+ "!"=:if use_pxl: oct"002" else: oct"0202" fi;
+ligtable "I": ":"=:if use_pxl: oct"003" else: oct"0203" fi,
+ "="=:if use_pxl: oct"045" else: oct"0245" fi;
+ligtable "N": "="=:if use_pxl: oct"017" else: oct"0217" fi;
+ligtable "S": ":"=:if use_pxl: oct"052" else: oct"0252" fi,
+ "="=:if use_pxl: oct"0136" else: oct"0336" fi,
+ "!"=:if use_pxl: oct"006" else: oct"0206" fi;
+ligtable "U": ":"=:DOT_U, "="=:HAT_U;
+ligtable "Z": ":"=:if use_pxl: oct"011" else: oct"0211" fi,
+ "="=:if use_pxl: oct"0137" else: oct"0337" fi,
+ "!"=:if use_pxl: oct"012" else: oct"0212" fi;
+
+ligtable "a": "="=:hat_a;
+ligtable "g": ":"=:ghayn, "="=:cup_g;
+ligtable "h": "="=:kha, "!"=:hha;
+ligtable "i": ":"=:dot_i, "="=:hat_i;
+ligtable "s": ":"=:if use_pxl: oct"053" else: oct"0253" fi,
+ "="=:if use_pxl: oct"0176" else: oct"0376" fi,
+ "!"=:if use_pxl: oct"026" else: oct"0226" fi;
+ligtable "t": "!"=:tta;
+ligtable "u": ":"=:dot_u, "="=:hat_u;
+ligtable "z": ":"=:if use_pxl: oct"031" else: oct"0231" fi,
+ "="=:if use_pxl: oct"0177" else: oct"0377" fi,
+ "!"=:if use_pxl: oct"032" else: oct"0232" fi;
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+ ligtable "A": "="=:HAT_A;
+ ligtable "D": "="=:DHAL, "!"=:DAD;
+ ligtable "K": "!"=:QAF; ligtable "k": "!"=:qaf;
+ ligtable "O": ":"=:DOT_O; % no |hat_o| here
+ ligtable "T": "!"=:TTA;
+ ligtable "c": ":"=:chim; ligtable "d": "="=:dhal, "!"=:dad;
+ ligtable "n": "="=:gnaf; ligtable "o": ":"=:dot_o; % no |hat_o| here
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+% The following ligtable entries are based on the entries in
+% roman.mf. It has been necessary to extract many parts of the
+% original entries in order to keep the ligature structure clear.
+
+ ligtable "F": "V": "o" kern kk#, dot_o kern kk#, hat_o kern kk#,
+ "e" kern kk#,
+ "u" kern kk#, dot_u kern kk#, hat_u kern kk#,
+ "r" kern kk#, "a" kern kk#, hat_a kern kk#,
+ "A" kern kkk#, HAT_A kern kkk#,
+ "K": "!"=:QAF,
+ QAF: "X": "O" kern k#, DOT_O kern k#, "C" kern k#, CHIM kern k#,
+ "G" kern k#, GHAYN kern k#, CUP_G kern k#, "Q" kern k#;
+
+ ligtable "T": "!"=:TTA, TTA: "y" kern kk#,
+ "Y": "e" kern kk#, "o" kern kk#, dot_o kern kk#, hat_o kern kk#,
+ "r" kern kk#, "a" kern kk#, hat_a kern kk#,
+ "u" kern kk#, dot_u kern kk#, hat_u kern kk#,
+ "P": "W": "A" kern kk#, HAT_A kern kk#;
+
+ ligtable "D": "="=:DHAL, "!"=:DAD,
+ DHAL: DAD: "X" kern k#, "W" kern k#, "A" kern k#, HAT_A kern k#,
+ "V" kern k#, "Y" kern k#;
+ ligtable "O": ":"=:DOT_O,
+ DOT_O: "X" kern k#, "W" kern k#, "A" kern k#, HAT_A kern k#,
+ "V" kern k#, "Y" kern k#;
+
+ ligtable "A": "="=: HAT_A,
+ HAT_A: "R": "n" kern k#, gnaf kern k#,
+ "l" kern k#, "r" kern k#, "u" kern k#, dot_u kern k#, hat_u kern k#,
+ "m" kern k#, "t" kern k#, tta kern k#,
+ "i" kern k#, dot_i kern k#, hat_i kern k#,
+ "C" kern k#, CHIM kern k#, "O" kern k#, DOT_O kern k#,
+ "G" kern k#, GHAYN kern k#, CUP_G kern k#,
+ "h" kern k#, kha kern k#, hha kern k#, "b" kern k#,
+ "U" kern k#, DOT_U kern k#, HAT_U kern k#,
+ "k" kern k#, qaf kern k#, "v" kern k#, "w" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, TTA kern kk#,
+ "Y" kern kk#, "V" kern kkk#, "W" kern kkk#,
+ "b": "e": "p": "r": "e" kern -u#,
+ "a" kern -u#, hat_a kern -u#,
+ "o" kern -u#, dot_o kern -u#, hat_o kern -u#,
+ "d" kern -u#, dhal kern -u#, dad kern -u#,
+ "c" kern -u#, chim kern -u#,
+ "g" kern -u#, ghayn kern -u#, cup_g kern -u#, "q" kern -u#;
+
+ ligtable "c": ":"=:chim,
+ chim: "e" kern -u#,
+ "a" kern -u#, hat_a kern -u#,
+ "o" kern -u#, dot_o kern -u#, hat_o kern -u#,
+ "d" kern -u#, dhal kern -u#, dad kern -u#,
+ "c" kern -u#, chim kern -u#,
+ "g" kern -u#, ghayn kern -u#, cup_g kern -u#, "q" kern -u#;
+
+ ligtable "d": "="=:dhal, "!"=:dad,
+ dhal: dad: "w": "l": "l" kern +u#;
+
+ ligtable "o": ":"=:dot_o, "="=:hat_o,
+ dot_o: hat_o: "e" kern -u#,
+ "a" kern -u#, hat_a kern -u#,
+ "o" kern -u#, dot_o kern -u#, hat_o kern -u#,
+ "d" kern -u#, dhal kern -u#, dad kern -u#,
+ "c" kern -u#, chim kern -u#,
+ "g" kern -u#, ghayn kern -u#, cup_g kern -u#, "q" kern -u#;
+ ligtable "n": "="=:gnaf, "'" kern kkk#, gnaf: "'" kern kk#;
+ ligtable oct"043": oct"100": % kerns for ayn and hamza
+ "A" kern kkk#, HAT_A kern kkk#,
+ "a" kern k#, hat_a kern k#;
+ ligtable ".": "."=:if use_pxl: oct"0175" else: oct"0375" fi; % izafet dot
+ ligtable "f": % Turkish cannot use the ordinary ligatures for |"f"|.
+ hat_i kern 3u#, dot_i kern 3u#, % and therefore needs these kerns
+ oct"043" kern 3u#, oct"0100" kern 3u#;
+fi
+ % ligatures for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
diff --git a/language/turkish/mf/wtkr10.mf b/language/turkish/mf/wtkr10.mf
new file mode 100644
index 0000000000..b28a207aa0
--- /dev/null
+++ b/language/turkish/mf/wtkr10.mf
@@ -0,0 +1,75 @@
+% Turkish font adapted from Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TKR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate turkce % switch to the driver file
diff --git a/language/turkish/mf/wtkti10.mf b/language/turkish/mf/wtkti10.mf
new file mode 100644
index 0000000000..53fbab13ee
--- /dev/null
+++ b/language/turkish/mf/wtkti10.mf
@@ -0,0 +1,75 @@
+% Turkish font adapted from Computer Modern Text Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TKTI"; font_size 10pt#;
+
+u#:=18.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate turkit % switch to the driver file
diff --git a/language/turkish/misc/wtkr10.pl b/language/turkish/misc/wtkr10.pl
new file mode 100644
index 0000000000..3026a54b5d
--- /dev/null
+++ b/language/turkish/misc/wtkr10.pl
@@ -0,0 +1,1714 @@
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 20757166124)
+(FONTDIMEN
+ (SLANT R 0.0)
+ (SPACE R 0.333334)
+ (STRETCH R 0.166667)
+ (SHRINK R 0.111112)
+ (XHEIGHT R 0.430555)
+ (QUAD R 1.000003)
+ (EXTRASPACE R 0.111112)
+ )
+(LIGTABLE
+ (LABEL O 140)
+ (LIG O 140 O 134)
+ (STOP)
+ (LABEL O 47)
+ (LIG O 47 O 42)
+ (KRN O 77 R 0.111112)
+ (KRN O 41 R 0.111112)
+ (STOP)
+ (LABEL O 55)
+ (LIG O 55 O 173)
+ (STOP)
+ (LABEL O 173)
+ (LIG O 55 O 174)
+ (STOP)
+ (LABEL O 40)
+ (KRN C l R -0.277779)
+ (KRN C L R -0.319446)
+ (STOP)
+ (LABEL O 41)
+ (LIG O 140 O 16)
+ (STOP)
+ (LABEL O 77)
+ (LIG O 140 O 17)
+ (STOP)
+ (LABEL C C)
+ (LIG O 72 O 213)
+ (STOP)
+ (LABEL C G)
+ (LIG O 72 O 201)
+ (LIG O 75 O 215)
+ (STOP)
+ (LABEL C H)
+ (LIG O 75 O 216)
+ (LIG O 41 O 202)
+ (STOP)
+ (LABEL C N)
+ (LIG O 75 O 217)
+ (STOP)
+ (LABEL C S)
+ (LIG O 72 O 252)
+ (LIG O 75 O 336)
+ (LIG O 41 O 206)
+ (STOP)
+ (LABEL C U)
+ (LIG O 72 O 210)
+ (LIG O 75 O 246)
+ (STOP)
+ (LABEL C Z)
+ (LIG O 72 O 211)
+ (LIG O 75 O 337)
+ (LIG O 41 O 212)
+ (STOP)
+ (LABEL C d)
+ (LIG O 75 O 234)
+ (LIG O 41 O 220)
+ (STOP)
+ (LABEL C i)
+ (LIG O 72 O 223)
+ (LIG O 75 O 275)
+ (STOP)
+ (LABEL C s)
+ (LIG O 72 O 253)
+ (LIG O 75 O 376)
+ (LIG O 41 O 226)
+ (STOP)
+ (LABEL C z)
+ (LIG O 72 O 231)
+ (LIG O 75 O 377)
+ (LIG O 41 O 232)
+ (STOP)
+ (LABEL C k)
+ (LIG O 41 O 224)
+ (LABEL C v)
+ (LABEL O 224)
+ (KRN C a R -0.055555)
+ (KRN O 274 R -0.055555)
+ (LABEL C w)
+ (KRN C e R -0.027779)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (KRN C c R -0.027779)
+ (KRN O 233 R -0.027779)
+ (KRN C o R -0.027779)
+ (KRN O 225 R -0.027779)
+ (KRN O 240 R -0.027779)
+ (STOP)
+ (LABEL C P)
+ (KRN C A R -0.083334)
+ (KRN O 244 R -0.083334)
+ (LABEL C y)
+ (KRN C o R -0.027779)
+ (KRN O 240 R -0.027779)
+ (KRN O 225 R -0.027779)
+ (KRN C e R -0.027779)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (KRN O 56 R -0.083334)
+ (KRN O 54 R -0.083334)
+ (STOP)
+ (LABEL C F)
+ (LABEL C V)
+ (LABEL C W)
+ (KRN C o R -0.083334)
+ (KRN O 240 R -0.083334)
+ (KRN O 225 R -0.083334)
+ (KRN C e R -0.083334)
+ (KRN C u R -0.083334)
+ (KRN O 230 R -0.083334)
+ (KRN O 276 R -0.027779)
+ (KRN C r R -0.083334)
+ (KRN C a R -0.083334)
+ (KRN O 274 R -0.083334)
+ (KRN C A R -0.111112)
+ (KRN O 244 R -0.111112)
+ (LABEL C K)
+ (LIG O 41 O 204)
+ (LABEL C X)
+ (LABEL O 204)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C Q R -0.027779)
+ (STOP)
+ (LABEL C T)
+ (LIG O 41 O 207)
+ (LABEL O 207)
+ (KRN C y R -0.027779)
+ (LABEL C Y)
+ (KRN C e R -0.083334)
+ (KRN C o R -0.083334)
+ (KRN O 240 R -0.083334)
+ (KRN O 225 R -0.083334)
+ (KRN C r R -0.083334)
+ (KRN C a R -0.083334)
+ (KRN O 274 R -0.083334)
+ (KRN C A R -0.083334)
+ (KRN O 244 R -0.083334)
+ (KRN C u R -0.083334)
+ (KRN O 230 R -0.083334)
+ (KRN O 276 R -0.083334)
+ (STOP)
+ (LABEL C D)
+ (LIG O 75 O 214)
+ (LIG O 41 O 200)
+ (KRN C X R -0.027779)
+ (KRN C W R -0.027779)
+ (KRN C A R -0.027779)
+ (KRN O 244 R -0.027779)
+ (KRN C V R -0.027779)
+ (KRN C Y R -0.027779)
+ (STOP)
+ (LABEL C O)
+ (LIG O 72 O 205)
+ (LABEL O 200)
+ (LABEL O 205)
+ (LABEL O 214)
+ (KRN C X R -0.027779)
+ (KRN C W R -0.027779)
+ (KRN C A R -0.027779)
+ (KRN O 244 R -0.027779)
+ (KRN C V R -0.027779)
+ (KRN C Y R -0.027779)
+ (STOP)
+ (LABEL C c)
+ (LIG O 72 O 233)
+ (KRN C h R -0.027779)
+ (KRN O 222 R -0.027779)
+ (KRN O 236 R -0.027779)
+ (KRN C k R -0.027779)
+ (KRN O 224 R -0.027779)
+ (STOP)
+ (LABEL C h)
+ (LIG O 75 O 236)
+ (LIG O 41 O 222)
+ (KRN C t R -0.027779)
+ (KRN O 227 R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ (STOP)
+ (LABEL C n)
+ (LIG O 75 O 237)
+ (KRN C t R -0.027779)
+ (KRN O 227 R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN O 276 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ (STOP)
+ (LABEL C m)
+ (LABEL O 222)
+ (LABEL O 236)
+ (LABEL O 237)
+ (KRN C t R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN O 276 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ (STOP)
+ (LABEL O 233)
+ (KRN C h R -0.027779)
+ (KRN O 222 R -0.027779)
+ (KRN O 236 R -0.027779)
+ (KRN C k R -0.027779)
+ (KRN O 224 R -0.027779)
+ (STOP)
+ (LABEL C o)
+ (LIG O 72 O 225)
+ (LIG O 75 O 240)
+ (KRN C e R 0.027779)
+ (KRN C o R 0.027779)
+ (KRN O 240 R 0.027779)
+ (KRN O 225 R 0.027779)
+ (KRN C x R -0.027779)
+ (KRN C d R 0.027779)
+ (KRN O 234 R 0.027779)
+ (KRN O 220 R 0.027779)
+ (KRN C c R 0.027779)
+ (KRN O 233 R 0.027779)
+ (KRN C q R 0.027779)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ (STOP)
+ (LABEL C a)
+ (LIG O 75 O 274)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ (STOP)
+ (LABEL C t)
+ (LIG O 41 O 227)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ (STOP)
+ (LABEL C u)
+ (LIG O 72 O 230)
+ (LIG O 75 O 276)
+ (KRN C w R -0.027779)
+ (STOP)
+ (LABEL C b)
+ (LABEL C p)
+ (LABEL O 225)
+ (LABEL O 240)
+ (KRN C e R 0.027779)
+ (KRN C o R 0.027779)
+ (KRN O 240 R 0.027779)
+ (KRN O 225 R 0.027779)
+ (KRN C x R -0.027779)
+ (KRN C d R 0.027779)
+ (KRN O 234 R 0.027779)
+ (KRN O 220 R 0.027779)
+ (KRN C c R 0.027779)
+ (KRN O 233 R 0.027779)
+ (KRN C q R 0.027779)
+ (LABEL O 274)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (LABEL O 227)
+ (KRN C y R -0.027779)
+ (LABEL O 230)
+ (LABEL O 276)
+ (KRN C w R -0.027779)
+ (STOP)
+ (LABEL C A)
+ (LIG O 75 O 244)
+ (LABEL C R)
+ (LABEL O 244)
+ (KRN C t R -0.027779)
+ (KRN O 227 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C U R -0.027779)
+ (KRN O 210 R -0.027779)
+ (KRN O 246 R -0.027779)
+ (KRN C Q R -0.027779)
+ (LABEL C L)
+ (KRN C T R -0.083334)
+ (KRN O 207 R -0.083334)
+ (KRN C Y R -0.083334)
+ (KRN C V R -0.111112)
+ (KRN C W R -0.111112)
+ (STOP)
+ (LABEL C g)
+ (LIG O 72 O 221)
+ (LIG O 75 O 235)
+ (KRN C j R 0.027779)
+ (STOP)
+ (LABEL C I)
+ (LIG O 72 O 203)
+ (LIG O 75 O 245)
+ (KRN C I R 0.027779)
+ (STOP)
+ (LABEL O 43)
+ (LABEL O 100)
+ (KRN C A R -0.111112)
+ (KRN O 244 R -0.111112)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (STOP)
+ (LABEL O 56)
+ (LIG O 56 O 375)
+ (STOP)
+ (LABEL C f)
+ (KRN O 275 R 0.166667)
+ (KRN O 223 R 0.166667)
+ (KRN O 43 R 0.166667)
+ (KRN O 100 R 0.166667)
+ (STOP)
+ )
+(CHARACTER O 0
+ (CHARWD R 0.625002)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 1
+ (CHARWD R 0.833336)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 2
+ (CHARWD R 0.777781)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 3
+ (CHARWD R 0.694446)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 4
+ (CHARWD R 0.666669)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 5
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 6
+ (CHARWD R 0.722224)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 7
+ (CHARWD R 0.777781)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 10
+ (CHARWD R 0.722224)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 11
+ (CHARWD R 0.777781)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 12
+ (CHARWD R 0.722224)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 16
+ (CHARWD R 0.277779)
+ (CHARHT R 0.5)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 17
+ (CHARWD R 0.472224)
+ (CHARHT R 0.5)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 20
+ (CHARWD R 0.277779)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER O 21
+ (CHARWD R 0.305557)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 22
+ (CHARWD R 0.500002)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 23
+ (CHARWD R 0.500002)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 24
+ (CHARWD R 0.500002)
+ (CHARHT R 0.628473)
+ )
+(CHARACTER O 25
+ (CHARWD R 0.500002)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 26
+ (CHARWD R 0.500002)
+ (CHARHT R 0.567777)
+ )
+(CHARACTER O 27
+ (CHARWD R 0.750002)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 30
+ (CHARWD R 0.444446)
+ (CHARDP R 0.170138)
+ )
+(CHARACTER O 31
+ (CHARWD R 0.500003)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 32
+ (CHARWD R 0.722224)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER O 33
+ (CHARWD R 0.777781)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER O 34
+ (CHARWD R 0.500002)
+ (CHARHT R 0.527779)
+ (CHARDP R 0.097223)
+ )
+(CHARACTER O 35
+ (CHARWD R 0.902781)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 36
+ (CHARWD R 1.013891)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 37
+ (CHARWD R 0.777781)
+ (CHARHT R 0.731944)
+ (CHARDP R 0.048612)
+ )
+(CHARACTER O 40
+ (CHARWD R 0.277779)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (KRN C l R -0.277779)
+ (KRN C L R -0.319446)
+ )
+ )
+(CHARACTER O 41
+ (CHARWD R 0.277779)
+ (CHARHT R 0.694445)
+ (COMMENT
+ (LIG O 140 O 16)
+ )
+ )
+(CHARACTER O 42
+ (CHARWD R 0.500002)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 43
+ (CHARWD R 0.277779)
+ (CHARHT R 0.61508)
+ (COMMENT
+ (KRN C A R -0.111112)
+ (KRN O 244 R -0.111112)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ )
+ )
+(CHARACTER O 44
+ (CHARWD R 0.500002)
+ (CHARHT R 0.75)
+ (CHARDP R 0.055555)
+ )
+(CHARACTER O 45
+ (CHARWD R 0.833336)
+ (CHARHT R 0.75)
+ (CHARDP R 0.055555)
+ )
+(CHARACTER O 46
+ (CHARWD R 0.777781)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 47
+ (CHARWD R 0.277779)
+ (CHARHT R 0.694445)
+ (COMMENT
+ (LIG O 47 O 42)
+ (KRN O 77 R 0.111112)
+ (KRN O 41 R 0.111112)
+ )
+ )
+(CHARACTER O 50
+ (CHARWD R 0.38889)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ )
+(CHARACTER O 51
+ (CHARWD R 0.38889)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ )
+(CHARACTER O 52
+ (CHARWD R 0.500002)
+ (CHARHT R 0.75)
+ )
+(CHARACTER O 53
+ (CHARWD R 0.777781)
+ (CHARHT R 0.583334)
+ (CHARDP R 0.083334)
+ )
+(CHARACTER O 54
+ (CHARWD R 0.277779)
+ (CHARHT R 0.105556)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 55
+ (CHARWD R 0.333334)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 55 O 173)
+ )
+ )
+(CHARACTER O 56
+ (CHARWD R 0.277779)
+ (CHARHT R 0.105556)
+ (COMMENT
+ (LIG O 56 O 375)
+ )
+ )
+(CHARACTER O 57
+ (CHARWD R 0.500002)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ )
+(CHARACTER C 0
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 1
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 2
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 3
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 4
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 5
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 6
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 7
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 8
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER C 9
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER O 72
+ (CHARWD R 0.277779)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER O 73
+ (CHARWD R 0.277779)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 75
+ (CHARWD R 0.777781)
+ (CHARHT R 0.366875)
+ (CHARDP R -0.133125)
+ )
+(CHARACTER O 77
+ (CHARWD R 0.472224)
+ (CHARHT R 0.694445)
+ (COMMENT
+ (LIG O 140 O 17)
+ )
+ )
+(CHARACTER O 100
+ (CHARWD R 0.277779)
+ (CHARHT R 0.61508)
+ (COMMENT
+ (KRN C A R -0.111112)
+ (KRN O 244 R -0.111112)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ )
+ )
+(CHARACTER C A
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 75 O 244)
+ (KRN C t R -0.027779)
+ (KRN O 227 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C U R -0.027779)
+ (KRN O 210 R -0.027779)
+ (KRN O 246 R -0.027779)
+ (KRN C Q R -0.027779)
+ (KRN C T R -0.083334)
+ (KRN O 207 R -0.083334)
+ (KRN C Y R -0.083334)
+ (KRN C V R -0.111112)
+ (KRN C W R -0.111112)
+ )
+ )
+(CHARACTER C B
+ (CHARWD R 0.708336)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER C C
+ (CHARWD R 0.722224)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 72 O 213)
+ )
+ )
+(CHARACTER C D
+ (CHARWD R 0.763891)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 75 O 214)
+ (LIG O 41 O 200)
+ (KRN C X R -0.027779)
+ (KRN C W R -0.027779)
+ (KRN C A R -0.027779)
+ (KRN O 244 R -0.027779)
+ (KRN C V R -0.027779)
+ (KRN C Y R -0.027779)
+ )
+ )
+(CHARACTER C E
+ (CHARWD R 0.680557)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER C F
+ (CHARWD R 0.652781)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (KRN C o R -0.083334)
+ (KRN O 240 R -0.083334)
+ (KRN O 225 R -0.083334)
+ (KRN C e R -0.083334)
+ (KRN C u R -0.083334)
+ (KRN O 230 R -0.083334)
+ (KRN O 276 R -0.027779)
+ (KRN C r R -0.083334)
+ (KRN C a R -0.083334)
+ (KRN O 274 R -0.083334)
+ (KRN C A R -0.111112)
+ (KRN O 244 R -0.111112)
+ (LIG O 41 O 204)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C Q R -0.027779)
+ )
+ )
+(CHARACTER C G
+ (CHARWD R 0.784724)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 72 O 201)
+ (LIG O 75 O 215)
+ )
+ )
+(CHARACTER C H
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 75 O 216)
+ (LIG O 41 O 202)
+ )
+ )
+(CHARACTER C I
+ (CHARWD R 0.361112)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 72 O 203)
+ (LIG O 75 O 245)
+ (KRN C I R 0.027779)
+ )
+ )
+(CHARACTER C J
+ (CHARWD R 0.51389)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER C K
+ (CHARWD R 0.777781)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 41 O 204)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C Q R -0.027779)
+ )
+ )
+(CHARACTER C L
+ (CHARWD R 0.625002)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (KRN C T R -0.083334)
+ (KRN O 207 R -0.083334)
+ (KRN C Y R -0.083334)
+ (KRN C V R -0.111112)
+ (KRN C W R -0.111112)
+ )
+ )
+(CHARACTER C M
+ (CHARWD R 0.916669)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER C N
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 75 O 217)
+ )
+ )
+(CHARACTER C O
+ (CHARWD R 0.777781)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 72 O 205)
+ (KRN C X R -0.027779)
+ (KRN C W R -0.027779)
+ (KRN C A R -0.027779)
+ (KRN O 244 R -0.027779)
+ (KRN C V R -0.027779)
+ (KRN C Y R -0.027779)
+ )
+ )
+(CHARACTER C P
+ (CHARWD R 0.680557)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (KRN C A R -0.083334)
+ (KRN O 244 R -0.083334)
+ (KRN C o R -0.027779)
+ (KRN O 240 R -0.027779)
+ (KRN O 225 R -0.027779)
+ (KRN C e R -0.027779)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (KRN O 56 R -0.083334)
+ (KRN O 54 R -0.083334)
+ )
+ )
+(CHARACTER C Q
+ (CHARWD R 0.777781)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER C R
+ (CHARWD R 0.736113)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (KRN C t R -0.027779)
+ (KRN O 227 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C U R -0.027779)
+ (KRN O 210 R -0.027779)
+ (KRN O 246 R -0.027779)
+ (KRN C Q R -0.027779)
+ (KRN C T R -0.083334)
+ (KRN O 207 R -0.083334)
+ (KRN C Y R -0.083334)
+ (KRN C V R -0.111112)
+ (KRN C W R -0.111112)
+ )
+ )
+(CHARACTER C S
+ (CHARWD R 0.555557)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 72 O 252)
+ (LIG O 75 O 336)
+ (LIG O 41 O 206)
+ )
+ )
+(CHARACTER C T
+ (CHARWD R 0.722224)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 41 O 207)
+ (KRN C y R -0.027779)
+ (KRN C e R -0.083334)
+ (KRN C o R -0.083334)
+ (KRN O 240 R -0.083334)
+ (KRN O 225 R -0.083334)
+ (KRN C r R -0.083334)
+ (KRN C a R -0.083334)
+ (KRN O 274 R -0.083334)
+ (KRN C A R -0.083334)
+ (KRN O 244 R -0.083334)
+ (KRN C u R -0.083334)
+ (KRN O 230 R -0.083334)
+ (KRN O 276 R -0.083334)
+ )
+ )
+(CHARACTER C U
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 72 O 210)
+ (LIG O 75 O 246)
+ )
+ )
+(CHARACTER C V
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.013888)
+ (COMMENT
+ (KRN C o R -0.083334)
+ (KRN O 240 R -0.083334)
+ (KRN O 225 R -0.083334)
+ (KRN C e R -0.083334)
+ (KRN C u R -0.083334)
+ (KRN O 230 R -0.083334)
+ (KRN O 276 R -0.027779)
+ (KRN C r R -0.083334)
+ (KRN C a R -0.083334)
+ (KRN O 274 R -0.083334)
+ (KRN C A R -0.111112)
+ (KRN O 244 R -0.111112)
+ (LIG O 41 O 204)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C Q R -0.027779)
+ )
+ )
+(CHARACTER C W
+ (CHARWD R 1.027781)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.013888)
+ (COMMENT
+ (KRN C o R -0.083334)
+ (KRN O 240 R -0.083334)
+ (KRN O 225 R -0.083334)
+ (KRN C e R -0.083334)
+ (KRN C u R -0.083334)
+ (KRN O 230 R -0.083334)
+ (KRN O 276 R -0.027779)
+ (KRN C r R -0.083334)
+ (KRN C a R -0.083334)
+ (KRN O 274 R -0.083334)
+ (KRN C A R -0.111112)
+ (KRN O 244 R -0.111112)
+ (LIG O 41 O 204)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C Q R -0.027779)
+ )
+ )
+(CHARACTER C X
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C Q R -0.027779)
+ )
+ )
+(CHARACTER C Y
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.025)
+ (COMMENT
+ (KRN C e R -0.083334)
+ (KRN C o R -0.083334)
+ (KRN O 240 R -0.083334)
+ (KRN O 225 R -0.083334)
+ (KRN C r R -0.083334)
+ (KRN C a R -0.083334)
+ (KRN O 274 R -0.083334)
+ (KRN C A R -0.083334)
+ (KRN O 244 R -0.083334)
+ (KRN C u R -0.083334)
+ (KRN O 230 R -0.083334)
+ (KRN O 276 R -0.083334)
+ )
+ )
+(CHARACTER C Z
+ (CHARWD R 0.611113)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 72 O 211)
+ (LIG O 75 O 337)
+ (LIG O 41 O 212)
+ )
+ )
+(CHARACTER O 133
+ (CHARWD R 0.277779)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ )
+(CHARACTER O 134
+ (CHARWD R 0.500002)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 135
+ (CHARWD R 0.277779)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ )
+(CHARACTER O 136
+ (CHARWD R 0.500002)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 137
+ (CHARWD R 0.277779)
+ (CHARHT R 0.667859)
+ )
+(CHARACTER O 140
+ (CHARWD R 0.277779)
+ (CHARHT R 0.694445)
+ (COMMENT
+ (LIG O 140 O 134)
+ )
+ )
+(CHARACTER C a
+ (CHARWD R 0.500002)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 75 O 274)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C b
+ (CHARWD R 0.555557)
+ (CHARHT R 0.694445)
+ (COMMENT
+ (KRN C e R 0.027779)
+ (KRN C o R 0.027779)
+ (KRN O 240 R 0.027779)
+ (KRN O 225 R 0.027779)
+ (KRN C x R -0.027779)
+ (KRN C d R 0.027779)
+ (KRN O 234 R 0.027779)
+ (KRN O 220 R 0.027779)
+ (KRN C c R 0.027779)
+ (KRN O 233 R 0.027779)
+ (KRN C q R 0.027779)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C c
+ (CHARWD R 0.444446)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 72 O 233)
+ (KRN C h R -0.027779)
+ (KRN O 222 R -0.027779)
+ (KRN O 236 R -0.027779)
+ (KRN C k R -0.027779)
+ (KRN O 224 R -0.027779)
+ )
+ )
+(CHARACTER C d
+ (CHARWD R 0.555557)
+ (CHARHT R 0.694445)
+ (COMMENT
+ (LIG O 75 O 234)
+ (LIG O 41 O 220)
+ )
+ )
+(CHARACTER C e
+ (CHARWD R 0.444446)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER C f
+ (CHARWD R 0.305557)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.077779)
+ (COMMENT
+ (KRN O 275 R 0.166667)
+ (KRN O 223 R 0.166667)
+ (KRN O 43 R 0.166667)
+ (KRN O 100 R 0.166667)
+ )
+ )
+(CHARACTER C g
+ (CHARWD R 0.500002)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.013888)
+ (COMMENT
+ (LIG O 72 O 221)
+ (LIG O 75 O 235)
+ (KRN C j R 0.027779)
+ )
+ )
+(CHARACTER C h
+ (CHARWD R 0.555557)
+ (CHARHT R 0.694445)
+ (COMMENT
+ (LIG O 75 O 236)
+ (LIG O 41 O 222)
+ (KRN C t R -0.027779)
+ (KRN O 227 R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C i
+ (CHARWD R 0.277779)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 72 O 223)
+ (LIG O 75 O 275)
+ )
+ )
+(CHARACTER C j
+ (CHARWD R 0.305557)
+ (CHARHT R 0.667859)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER C k
+ (CHARWD R 0.527781)
+ (CHARHT R 0.694445)
+ (COMMENT
+ (LIG O 41 O 224)
+ (KRN C a R -0.055555)
+ (KRN O 274 R -0.055555)
+ (KRN C e R -0.027779)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (KRN C c R -0.027779)
+ (KRN O 233 R -0.027779)
+ (KRN C o R -0.027779)
+ (KRN O 225 R -0.027779)
+ (KRN O 240 R -0.027779)
+ )
+ )
+(CHARACTER C l
+ (CHARWD R 0.277779)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER C m
+ (CHARWD R 0.833336)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (KRN C t R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN O 276 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C n
+ (CHARWD R 0.555557)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 75 O 237)
+ (KRN C t R -0.027779)
+ (KRN O 227 R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN O 276 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C o
+ (CHARWD R 0.500002)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 72 O 225)
+ (LIG O 75 O 240)
+ (KRN C e R 0.027779)
+ (KRN C o R 0.027779)
+ (KRN O 240 R 0.027779)
+ (KRN O 225 R 0.027779)
+ (KRN C x R -0.027779)
+ (KRN C d R 0.027779)
+ (KRN O 234 R 0.027779)
+ (KRN O 220 R 0.027779)
+ (KRN C c R 0.027779)
+ (KRN O 233 R 0.027779)
+ (KRN C q R 0.027779)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C p
+ (CHARWD R 0.555557)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (COMMENT
+ (KRN C e R 0.027779)
+ (KRN C o R 0.027779)
+ (KRN O 240 R 0.027779)
+ (KRN O 225 R 0.027779)
+ (KRN C x R -0.027779)
+ (KRN C d R 0.027779)
+ (KRN O 234 R 0.027779)
+ (KRN O 220 R 0.027779)
+ (KRN C c R 0.027779)
+ (KRN O 233 R 0.027779)
+ (KRN C q R 0.027779)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C q
+ (CHARWD R 0.527779)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER C r
+ (CHARWD R 0.391668)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER C s
+ (CHARWD R 0.394445)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 72 O 253)
+ (LIG O 75 O 376)
+ (LIG O 41 O 226)
+ )
+ )
+(CHARACTER C t
+ (CHARWD R 0.38889)
+ (CHARHT R 0.61508)
+ (COMMENT
+ (LIG O 41 O 227)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C u
+ (CHARWD R 0.555557)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 72 O 230)
+ (LIG O 75 O 276)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER C v
+ (CHARWD R 0.527781)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.013888)
+ (COMMENT
+ (KRN C a R -0.055555)
+ (KRN O 274 R -0.055555)
+ (KRN C e R -0.027779)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (KRN C c R -0.027779)
+ (KRN O 233 R -0.027779)
+ (KRN C o R -0.027779)
+ (KRN O 225 R -0.027779)
+ (KRN O 240 R -0.027779)
+ )
+ )
+(CHARACTER C w
+ (CHARWD R 0.722224)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.013888)
+ (COMMENT
+ (KRN C e R -0.027779)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (KRN C c R -0.027779)
+ (KRN O 233 R -0.027779)
+ (KRN C o R -0.027779)
+ (KRN O 225 R -0.027779)
+ (KRN O 240 R -0.027779)
+ )
+ )
+(CHARACTER C x
+ (CHARWD R 0.527781)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER C y
+ (CHARWD R 0.527781)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.013888)
+ (COMMENT
+ (KRN C o R -0.027779)
+ (KRN O 240 R -0.027779)
+ (KRN O 225 R -0.027779)
+ (KRN C e R -0.027779)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (KRN O 56 R -0.083334)
+ (KRN O 54 R -0.083334)
+ )
+ )
+(CHARACTER C z
+ (CHARWD R 0.444446)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (LIG O 72 O 231)
+ (LIG O 75 O 377)
+ (LIG O 41 O 232)
+ )
+ )
+(CHARACTER O 173
+ (CHARWD R 0.500002)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.027779)
+ (COMMENT
+ (LIG O 55 O 174)
+ )
+ )
+(CHARACTER O 174
+ (CHARWD R 1.000003)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.027779)
+ )
+(CHARACTER O 175
+ (CHARWD R 0.500002)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 176
+ (CHARWD R 0.500002)
+ (CHARHT R 0.667859)
+ )
+(CHARACTER O 177
+ (CHARWD R 0.500002)
+ (CHARHT R 0.667859)
+ )
+(CHARACTER O 200
+ (CHARWD R 0.763891)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (COMMENT
+ (KRN C X R -0.027779)
+ (KRN C W R -0.027779)
+ (KRN C A R -0.027779)
+ (KRN O 244 R -0.027779)
+ (KRN C V R -0.027779)
+ (KRN C Y R -0.027779)
+ )
+ )
+(CHARACTER O 201
+ (CHARWD R 0.784724)
+ (CHARHT R 0.75)
+ )
+(CHARACTER O 202
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 203
+ (CHARWD R 0.361112)
+ (CHARHT R 0.75)
+ )
+(CHARACTER O 204
+ (CHARWD R 0.777781)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (COMMENT
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C Q R -0.027779)
+ )
+ )
+(CHARACTER O 205
+ (CHARWD R 0.777781)
+ (CHARHT R 0.75)
+ (COMMENT
+ (KRN C X R -0.027779)
+ (KRN C W R -0.027779)
+ (KRN C A R -0.027779)
+ (KRN O 244 R -0.027779)
+ (KRN C V R -0.027779)
+ (KRN C Y R -0.027779)
+ )
+ )
+(CHARACTER O 206
+ (CHARWD R 0.555557)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 207
+ (CHARWD R 0.722224)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (COMMENT
+ (KRN C y R -0.027779)
+ (KRN C e R -0.083334)
+ (KRN C o R -0.083334)
+ (KRN O 240 R -0.083334)
+ (KRN O 225 R -0.083334)
+ (KRN C r R -0.083334)
+ (KRN C a R -0.083334)
+ (KRN O 274 R -0.083334)
+ (KRN C A R -0.083334)
+ (KRN O 244 R -0.083334)
+ (KRN C u R -0.083334)
+ (KRN O 230 R -0.083334)
+ (KRN O 276 R -0.083334)
+ )
+ )
+(CHARACTER O 210
+ (CHARWD R 0.750002)
+ (CHARHT R 0.75)
+ )
+(CHARACTER O 211
+ (CHARWD R 0.611113)
+ (CHARHT R 0.75)
+ )
+(CHARACTER O 212
+ (CHARWD R 0.611113)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 213
+ (CHARWD R 0.722224)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.170138)
+ )
+(CHARACTER O 214
+ (CHARWD R 0.763891)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.116667)
+ (COMMENT
+ (KRN C X R -0.027779)
+ (KRN C W R -0.027779)
+ (KRN C A R -0.027779)
+ (KRN O 244 R -0.027779)
+ (KRN C V R -0.027779)
+ (KRN C Y R -0.027779)
+ )
+ )
+(CHARACTER O 215
+ (CHARWD R 0.784724)
+ (CHARHT R 0.75)
+ )
+(CHARACTER O 216
+ (CHARWD R 0.750002)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.116667)
+ )
+(CHARACTER O 217
+ (CHARWD R 0.750002)
+ (CHARHT R 0.75)
+ )
+(CHARACTER O 220
+ (CHARWD R 0.555557)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 221
+ (CHARWD R 0.555557)
+ (CHARHT R 0.667859)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 222
+ (CHARWD R 0.555557)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ (COMMENT
+ (KRN C t R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN O 276 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 223
+ (CHARWD R 0.277779)
+ (CHARHT R 0.667859)
+ )
+(CHARACTER O 224
+ (CHARWD R 0.527781)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ (COMMENT
+ (KRN C a R -0.055555)
+ (KRN O 274 R -0.055555)
+ (KRN C e R -0.027779)
+ (KRN C a R -0.027779)
+ (KRN O 274 R -0.027779)
+ (KRN C c R -0.027779)
+ (KRN O 233 R -0.027779)
+ (KRN C o R -0.027779)
+ (KRN O 225 R -0.027779)
+ (KRN O 240 R -0.027779)
+ )
+ )
+(CHARACTER O 225
+ (CHARWD R 0.500002)
+ (CHARHT R 0.667859)
+ (COMMENT
+ (KRN C e R 0.027779)
+ (KRN C o R 0.027779)
+ (KRN O 240 R 0.027779)
+ (KRN O 225 R 0.027779)
+ (KRN C x R -0.027779)
+ (KRN C d R 0.027779)
+ (KRN O 234 R 0.027779)
+ (KRN O 220 R 0.027779)
+ (KRN C c R 0.027779)
+ (KRN O 233 R 0.027779)
+ (KRN C q R 0.027779)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 226
+ (CHARWD R 0.394445)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 227
+ (CHARWD R 0.38889)
+ (CHARHT R 0.61508)
+ (CHARDP R 0.194445)
+ (COMMENT
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 230
+ (CHARWD R 0.555557)
+ (CHARHT R 0.667859)
+ (COMMENT
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 231
+ (CHARWD R 0.444446)
+ (CHARHT R 0.667859)
+ )
+(CHARACTER O 232
+ (CHARWD R 0.444446)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 233
+ (CHARWD R 0.444446)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.170138)
+ (COMMENT
+ (KRN C h R -0.027779)
+ (KRN O 222 R -0.027779)
+ (KRN O 236 R -0.027779)
+ (KRN C k R -0.027779)
+ (KRN O 224 R -0.027779)
+ )
+ )
+(CHARACTER O 234
+ (CHARWD R 0.555557)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.116667)
+ )
+(CHARACTER O 235
+ (CHARWD R 0.500002)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.013888)
+ )
+(CHARACTER O 236
+ (CHARWD R 0.555557)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.116667)
+ (COMMENT
+ (KRN C t R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN O 276 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 237
+ (CHARWD R 0.555557)
+ (CHARHT R 0.643056)
+ (COMMENT
+ (KRN C t R -0.027779)
+ (KRN C u R -0.027779)
+ (KRN O 230 R -0.027779)
+ (KRN O 276 R -0.027779)
+ (KRN C b R -0.027779)
+ (KRN C y R -0.027779)
+ (KRN C v R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 240
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ (COMMENT
+ (KRN C e R 0.027779)
+ (KRN C o R 0.027779)
+ (KRN O 240 R 0.027779)
+ (KRN O 225 R 0.027779)
+ (KRN C x R -0.027779)
+ (KRN C d R 0.027779)
+ (KRN O 234 R 0.027779)
+ (KRN O 220 R 0.027779)
+ (KRN C c R 0.027779)
+ (KRN O 233 R 0.027779)
+ (KRN C q R 0.027779)
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 243
+ (CHARWD R 0.833336)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194443)
+ )
+(CHARACTER O 244
+ (CHARWD R 0.750002)
+ (CHARHT R 0.75)
+ (COMMENT
+ (KRN C t R -0.027779)
+ (KRN O 227 R -0.027779)
+ (KRN C C R -0.027779)
+ (KRN O 213 R -0.027779)
+ (KRN C O R -0.027779)
+ (KRN O 205 R -0.027779)
+ (KRN C G R -0.027779)
+ (KRN O 201 R -0.027779)
+ (KRN O 215 R -0.027779)
+ (KRN C U R -0.027779)
+ (KRN O 210 R -0.027779)
+ (KRN O 246 R -0.027779)
+ (KRN C Q R -0.027779)
+ (KRN C T R -0.083334)
+ (KRN O 207 R -0.083334)
+ (KRN C Y R -0.083334)
+ (KRN C V R -0.111112)
+ (KRN C W R -0.111112)
+ )
+ )
+(CHARACTER O 245
+ (CHARWD R 0.361112)
+ (CHARHT R 0.75)
+ (CHARIC R 0.027779)
+ )
+(CHARACTER O 246
+ (CHARWD R 0.750002)
+ (CHARHT R 0.75)
+ )
+(CHARACTER O 252
+ (CHARWD R 0.555557)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.170138)
+ )
+(CHARACTER O 253
+ (CHARWD R 0.394445)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.170138)
+ )
+(CHARACTER O 274
+ (CHARWD R 0.500002)
+ (CHARHT R 0.643056)
+ (COMMENT
+ (KRN C v R -0.027779)
+ (KRN C j R 0.055555)
+ (KRN C y R -0.027779)
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 275
+ (CHARWD R 0.277779)
+ (CHARHT R 0.643056)
+ )
+(CHARACTER O 276
+ (CHARWD R 0.555557)
+ (CHARHT R 0.643056)
+ (COMMENT
+ (KRN C w R -0.027779)
+ )
+ )
+(CHARACTER O 300
+ (CHARWD R 0.777781)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 336
+ (CHARWD R 0.555557)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.116667)
+ )
+(CHARACTER O 337
+ (CHARWD R 0.611113)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.116667)
+ )
+(CHARACTER O 375
+ (CHARWD R 0.250002)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER O 376
+ (CHARWD R 0.394445)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.116667)
+ )
+(CHARACTER O 377
+ (CHARWD R 0.444446)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.116667)
+ )
diff --git a/language/turkish/misc/wtkti10.pl b/language/turkish/misc/wtkti10.pl
new file mode 100644
index 0000000000..2726710a74
--- /dev/null
+++ b/language/turkish/misc/wtkti10.pl
@@ -0,0 +1,1847 @@
+(DESIGNSIZE R 10.0)
+(COMMENT DESIGNSIZE IS IN POINTS)
+(COMMENT OTHER SIZES ARE MULTIPLES OF DESIGNSIZE)
+(CHECKSUM O 16270460061)
+(FONTDIMEN
+ (SLANT R 0.25)
+ (SPACE R 0.357776)
+ (STRETCH R 0.153333)
+ (SHRINK R 0.1022215)
+ (XHEIGHT R 0.430555)
+ (QUAD R 1.022217)
+ (EXTRASPACE R 0.1022215)
+ )
+(LIGTABLE
+ (LABEL O 140)
+ (LIG O 140 O 134)
+ (STOP)
+ (LABEL O 47)
+ (LIG O 47 O 42)
+ (KRN O 77 R 0.1022215)
+ (KRN O 41 R 0.1022215)
+ (STOP)
+ (LABEL O 55)
+ (LIG O 55 O 173)
+ (STOP)
+ (LABEL O 173)
+ (LIG O 55 O 174)
+ (STOP)
+ (LABEL O 40)
+ (KRN C l R -0.255554)
+ (KRN C L R -0.320554)
+ (STOP)
+ (LABEL O 41)
+ (LIG O 140 O 16)
+ (STOP)
+ (LABEL O 77)
+ (LIG O 140 O 17)
+ (STOP)
+ (LABEL C C)
+ (LIG O 72 O 213)
+ (STOP)
+ (LABEL C G)
+ (LIG O 72 O 201)
+ (LIG O 75 O 215)
+ (STOP)
+ (LABEL C H)
+ (LIG O 75 O 216)
+ (LIG O 41 O 202)
+ (STOP)
+ (LABEL C I)
+ (LIG O 72 O 203)
+ (LIG O 75 O 245)
+ (STOP)
+ (LABEL C N)
+ (LIG O 75 O 217)
+ (STOP)
+ (LABEL C S)
+ (LIG O 72 O 252)
+ (LIG O 75 O 336)
+ (LIG O 41 O 206)
+ (STOP)
+ (LABEL C U)
+ (LIG O 72 O 210)
+ (LIG O 75 O 246)
+ (STOP)
+ (LABEL C Z)
+ (LIG O 72 O 211)
+ (LIG O 75 O 337)
+ (LIG O 41 O 212)
+ (STOP)
+ (LABEL C a)
+ (LIG O 75 O 274)
+ (STOP)
+ (LABEL C g)
+ (LIG O 72 O 221)
+ (LIG O 75 O 235)
+ (STOP)
+ (LABEL C h)
+ (LIG O 75 O 236)
+ (LIG O 41 O 222)
+ (STOP)
+ (LABEL C i)
+ (LIG O 72 O 223)
+ (LIG O 75 O 275)
+ (STOP)
+ (LABEL C s)
+ (LIG O 72 O 253)
+ (LIG O 75 O 376)
+ (LIG O 41 O 226)
+ (STOP)
+ (LABEL C t)
+ (LIG O 41 O 227)
+ (STOP)
+ (LABEL C u)
+ (LIG O 72 O 230)
+ (LIG O 75 O 276)
+ (STOP)
+ (LABEL C z)
+ (LIG O 72 O 231)
+ (LIG O 75 O 377)
+ (LIG O 41 O 232)
+ (STOP)
+ (LABEL C F)
+ (LABEL C V)
+ (KRN C o R -0.076666)
+ (KRN O 225 R -0.076666)
+ (KRN O 240 R -0.076666)
+ (KRN C e R -0.076666)
+ (KRN C u R -0.076666)
+ (KRN O 230 R -0.076666)
+ (KRN O 276 R -0.076666)
+ (KRN C r R -0.076666)
+ (KRN C a R -0.076666)
+ (KRN O 274 R -0.076666)
+ (KRN C A R -0.1022215)
+ (KRN O 244 R -0.1022215)
+ (LABEL C K)
+ (LIG O 41 O 204)
+ (LABEL C X)
+ (LABEL O 204)
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C Q R -0.025556)
+ (STOP)
+ (LABEL C T)
+ (LIG O 41 O 207)
+ (LABEL O 207)
+ (KRN C y R -0.076666)
+ (LABEL C Y)
+ (KRN C e R -0.076666)
+ (KRN C o R -0.076666)
+ (KRN O 225 R -0.076666)
+ (KRN O 240 R -0.076666)
+ (KRN C r R -0.076666)
+ (KRN C a R -0.076666)
+ (KRN O 274 R -0.076666)
+ (KRN C u R -0.076666)
+ (KRN O 230 R -0.076666)
+ (KRN O 276 R -0.076666)
+ (LABEL C P)
+ (LABEL C W)
+ (KRN C A R -0.076666)
+ (KRN O 244 R -0.076666)
+ (STOP)
+ (LABEL C D)
+ (LIG O 75 O 214)
+ (LIG O 41 O 200)
+ (LABEL O 200)
+ (LABEL O 214)
+ (KRN C X R -0.025556)
+ (KRN C W R -0.025556)
+ (KRN C A R -0.025556)
+ (KRN O 244 R -0.025556)
+ (KRN C V R -0.025556)
+ (KRN C Y R -0.025556)
+ (STOP)
+ (LABEL C O)
+ (LIG O 72 O 205)
+ (LABEL O 205)
+ (KRN C X R -0.025556)
+ (KRN C W R -0.025556)
+ (KRN C A R -0.025556)
+ (KRN O 244 R -0.025556)
+ (KRN C V R -0.025556)
+ (KRN C Y R -0.025556)
+ (STOP)
+ (LABEL C A)
+ (LIG O 75 O 244)
+ (LABEL C R)
+ (LABEL O 244)
+ (KRN C n R -0.025556)
+ (KRN O 237 R -0.025556)
+ (KRN C l R -0.025556)
+ (KRN C r R -0.025556)
+ (KRN C u R -0.025556)
+ (KRN O 230 R -0.025556)
+ (KRN O 276 R -0.025556)
+ (KRN C m R -0.025556)
+ (KRN C t R -0.025556)
+ (KRN O 227 R -0.025556)
+ (KRN C i R -0.025556)
+ (KRN O 223 R -0.025556)
+ (KRN O 275 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C h R -0.025556)
+ (KRN O 236 R -0.025556)
+ (KRN O 222 R -0.025556)
+ (KRN C b R -0.025556)
+ (KRN C U R -0.025556)
+ (KRN O 210 R -0.025556)
+ (KRN O 246 R -0.025556)
+ (KRN C k R -0.025556)
+ (KRN O 224 R -0.025556)
+ (KRN C v R -0.025556)
+ (KRN C w R -0.025556)
+ (KRN C Q R -0.025556)
+ (LABEL C L)
+ (KRN C T R -0.076666)
+ (KRN O 207 R -0.076666)
+ (KRN C Y R -0.076666)
+ (KRN C V R -0.1022215)
+ (KRN C W R -0.1022215)
+ (LABEL C b)
+ (LABEL C e)
+ (LABEL C p)
+ (LABEL C r)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ (STOP)
+ (LABEL C c)
+ (LIG O 72 O 233)
+ (LABEL O 233)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ (STOP)
+ (LABEL C d)
+ (LIG O 75 O 234)
+ (LIG O 41 O 220)
+ (LABEL C l)
+ (LABEL C w)
+ (LABEL O 220)
+ (LABEL O 234)
+ (KRN C l R 0.051111)
+ (STOP)
+ (LABEL C o)
+ (LIG O 72 O 225)
+ (LIG O 75 O 240)
+ (LABEL O 225)
+ (LABEL O 240)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ (STOP)
+ (LABEL C n)
+ (LIG O 75 O 237)
+ (KRN O 47 R -0.1022215)
+ (LABEL O 237)
+ (KRN O 47 R -0.076666)
+ (STOP)
+ (LABEL O 43)
+ (LABEL O 100)
+ (KRN C A R -0.1022215)
+ (KRN O 244 R -0.1022215)
+ (KRN C a R -0.025556)
+ (KRN O 274 R -0.025556)
+ (STOP)
+ (LABEL O 56)
+ (LIG O 56 O 375)
+ (STOP)
+ (LABEL C f)
+ (KRN O 275 R 0.153333)
+ (KRN O 223 R 0.153333)
+ (KRN O 43 R 0.153333)
+ (KRN O 100 R 0.153333)
+ (STOP)
+ )
+(CHARACTER O 0
+ (CHARWD R 0.627218)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.133055)
+ )
+(CHARACTER O 1
+ (CHARWD R 0.817774)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 2
+ (CHARWD R 0.766663)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.0940275)
+ )
+(CHARACTER O 3
+ (CHARWD R 0.692218)
+ (CHARHT R 0.683332)
+ )
+(CHARACTER O 4
+ (CHARWD R 0.664441)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.152944)
+ )
+(CHARACTER O 5
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.16389)
+ )
+(CHARACTER O 6
+ (CHARWD R 0.715551)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.120346)
+ )
+(CHARACTER O 7
+ (CHARWD R 0.766663)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.111112)
+ )
+(CHARACTER O 10
+ (CHARWD R 0.715551)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.059862)
+ )
+(CHARACTER O 11
+ (CHARWD R 0.766663)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.111112)
+ )
+(CHARACTER O 12
+ (CHARWD R 0.715551)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.102419)
+ )
+(CHARACTER O 16
+ (CHARWD R 0.306665)
+ (CHARHT R 0.5)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.075557)
+ )
+(CHARACTER O 17
+ (CHARWD R 0.485553)
+ (CHARHT R 0.5)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 20
+ (CHARWD R 0.306665)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.037361)
+ )
+(CHARACTER O 21
+ (CHARWD R 0.33222)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.037361)
+ )
+(CHARACTER O 22
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 23
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.096945)
+ )
+(CHARACTER O 24
+ (CHARWD R 0.511108)
+ (CHARHT R 0.628473)
+ (CHARIC R 0.0829525)
+ )
+(CHARACTER O 25
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.108057)
+ )
+(CHARACTER O 26
+ (CHARWD R 0.511108)
+ (CHARHT R 0.561666)
+ (CHARIC R 0.103334)
+ )
+(CHARACTER O 27
+ (CHARWD R 0.831291)
+ (CHARHT R 0.694445)
+ )
+(CHARACTER O 30
+ (CHARWD R 0.459997)
+ (CHARDP R 0.170138)
+ )
+(CHARACTER O 31
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.1225)
+ )
+(CHARACTER O 32
+ (CHARWD R 0.715551)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.084028)
+ )
+(CHARACTER O 33
+ (CHARWD R 0.766663)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.084028)
+ )
+(CHARACTER O 34
+ (CHARWD R 0.511108)
+ (CHARHT R 0.527779)
+ (CHARDP R 0.097223)
+ (CHARIC R 0.053612)
+ )
+(CHARACTER O 35
+ (CHARWD R 0.882772)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.120346)
+ )
+(CHARACTER O 36
+ (CHARWD R 0.984995)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.120346)
+ )
+(CHARACTER O 37
+ (CHARWD R 0.766663)
+ (CHARHT R 0.731944)
+ (CHARDP R 0.048612)
+ (CHARIC R 0.0940275)
+ )
+(CHARACTER O 40
+ (CHARWD R 0.255554)
+ (CHARHT R 0.430555)
+ (COMMENT
+ (KRN C l R -0.255554)
+ (KRN C L R -0.320554)
+ )
+ )
+(CHARACTER O 41
+ (CHARWD R 0.306665)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.124168)
+ (COMMENT
+ (LIG O 140 O 16)
+ )
+ )
+(CHARACTER O 42
+ (CHARWD R 0.514442)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.0696125)
+ )
+(CHARACTER O 43
+ (CHARWD R 0.306665)
+ (CHARHT R 0.61508)
+ (CHARIC R 0.124168)
+ (COMMENT
+ (KRN C A R -0.1022215)
+ (KRN O 244 R -0.1022215)
+ (KRN C a R -0.025556)
+ (KRN O 274 R -0.025556)
+ )
+ )
+(CHARACTER O 44
+ (CHARWD R 0.511108)
+ (CHARHT R 0.75)
+ (CHARDP R 0.055555)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER O 45
+ (CHARWD R 0.817774)
+ (CHARHT R 0.75)
+ (CHARDP R 0.055555)
+ (CHARIC R 0.136389)
+ )
+(CHARACTER O 46
+ (CHARWD R 0.766663)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.087209)
+ )
+(CHARACTER O 47
+ (CHARWD R 0.306665)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.124168)
+ (COMMENT
+ (LIG O 47 O 42)
+ (KRN O 77 R 0.1022215)
+ (KRN O 41 R 0.1022215)
+ )
+ )
+(CHARACTER O 50
+ (CHARWD R 0.408887)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ (CHARIC R 0.161944)
+ )
+(CHARACTER O 51
+ (CHARWD R 0.408887)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ (CHARIC R 0.036944)
+ )
+(CHARACTER O 52
+ (CHARWD R 0.511108)
+ (CHARHT R 0.75)
+ (CHARIC R 0.149167)
+ )
+(CHARACTER O 53
+ (CHARWD R 0.766663)
+ (CHARHT R 0.561666)
+ (CHARDP R 0.056665)
+ (CHARIC R 0.036944)
+ )
+(CHARACTER O 54
+ (CHARWD R 0.306665)
+ (CHARHT R 0.105556)
+ (CHARDP R 0.194445)
+ )
+(CHARACTER O 55
+ (CHARWD R 0.357776)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.028264)
+ (COMMENT
+ (LIG O 55 O 173)
+ )
+ )
+(CHARACTER O 56
+ (CHARWD R 0.306665)
+ (CHARHT R 0.105556)
+ (COMMENT
+ (LIG O 56 O 375)
+ )
+ )
+(CHARACTER O 57
+ (CHARWD R 0.511108)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ (CHARIC R 0.161944)
+ )
+(CHARACTER C 0
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 1
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 2
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 3
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 4
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 5
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 6
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 7
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 8
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER C 9
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.135556)
+ )
+(CHARACTER O 72
+ (CHARWD R 0.306665)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.058195)
+ )
+(CHARACTER O 73
+ (CHARWD R 0.306665)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.058195)
+ )
+(CHARACTER O 75
+ (CHARWD R 0.766663)
+ (CHARHT R 0.366875)
+ (CHARDP R -0.133125)
+ (CHARIC R 0.066312)
+ )
+(CHARACTER O 77
+ (CHARWD R 0.485553)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.13889)
+ (COMMENT
+ (LIG O 140 O 17)
+ )
+ )
+(CHARACTER O 100
+ (CHARWD R 0.306665)
+ (CHARHT R 0.61508)
+ (CHARIC R 0.124168)
+ (COMMENT
+ (KRN C A R -0.1022215)
+ (KRN O 244 R -0.1022215)
+ (KRN C a R -0.025556)
+ (KRN O 274 R -0.025556)
+ )
+ )
+(CHARACTER C A
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (LIG O 75 O 244)
+ (KRN C n R -0.025556)
+ (KRN O 237 R -0.025556)
+ (KRN C l R -0.025556)
+ (KRN C r R -0.025556)
+ (KRN C u R -0.025556)
+ (KRN O 230 R -0.025556)
+ (KRN O 276 R -0.025556)
+ (KRN C m R -0.025556)
+ (KRN C t R -0.025556)
+ (KRN O 227 R -0.025556)
+ (KRN C i R -0.025556)
+ (KRN O 223 R -0.025556)
+ (KRN O 275 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C h R -0.025556)
+ (KRN O 236 R -0.025556)
+ (KRN O 222 R -0.025556)
+ (KRN C b R -0.025556)
+ (KRN C U R -0.025556)
+ (KRN O 210 R -0.025556)
+ (KRN O 246 R -0.025556)
+ (KRN C k R -0.025556)
+ (KRN O 224 R -0.025556)
+ (KRN C v R -0.025556)
+ (KRN C w R -0.025556)
+ (KRN C Q R -0.025556)
+ (KRN C T R -0.076666)
+ (KRN O 207 R -0.076666)
+ (KRN C Y R -0.076666)
+ (KRN C V R -0.1022215)
+ (KRN C W R -0.1022215)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C B
+ (CHARWD R 0.703885)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.102419)
+ )
+(CHARACTER C C
+ (CHARWD R 0.715551)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.145277)
+ (COMMENT
+ (LIG O 72 O 213)
+ )
+ )
+(CHARACTER C D
+ (CHARWD R 0.754995)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.0940275)
+ (COMMENT
+ (LIG O 75 O 214)
+ (LIG O 41 O 200)
+ (KRN C X R -0.025556)
+ (KRN C W R -0.025556)
+ (KRN C A R -0.025556)
+ (KRN O 244 R -0.025556)
+ (KRN C V R -0.025556)
+ (KRN C Y R -0.025556)
+ )
+ )
+(CHARACTER C E
+ (CHARWD R 0.678329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.120346)
+ )
+(CHARACTER C F
+ (CHARWD R 0.652774)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.133055)
+ (COMMENT
+ (KRN C o R -0.076666)
+ (KRN O 225 R -0.076666)
+ (KRN O 240 R -0.076666)
+ (KRN C e R -0.076666)
+ (KRN C u R -0.076666)
+ (KRN O 230 R -0.076666)
+ (KRN O 276 R -0.076666)
+ (KRN C r R -0.076666)
+ (KRN C a R -0.076666)
+ (KRN O 274 R -0.076666)
+ (KRN C A R -0.1022215)
+ (KRN O 244 R -0.1022215)
+ (LIG O 41 O 204)
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C Q R -0.025556)
+ )
+ )
+(CHARACTER C G
+ (CHARWD R 0.773607)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.087209)
+ (COMMENT
+ (LIG O 72 O 201)
+ (LIG O 75 O 215)
+ )
+ )
+(CHARACTER C H
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.16389)
+ (COMMENT
+ (LIG O 75 O 216)
+ (LIG O 41 O 202)
+ )
+ )
+(CHARACTER C I
+ (CHARWD R 0.385553)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.158055)
+ (COMMENT
+ (LIG O 72 O 203)
+ (LIG O 75 O 245)
+ )
+ )
+(CHARACTER C J
+ (CHARWD R 0.524997)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.140279)
+ )
+(CHARACTER C K
+ (CHARWD R 0.768885)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.145277)
+ (COMMENT
+ (LIG O 41 O 204)
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C Q R -0.025556)
+ )
+ )
+(CHARACTER C L
+ (CHARWD R 0.627218)
+ (CHARHT R 0.683332)
+ (COMMENT
+ (KRN C T R -0.076666)
+ (KRN O 207 R -0.076666)
+ (KRN C Y R -0.076666)
+ (KRN C V R -0.1022215)
+ (KRN C W R -0.1022215)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C M
+ (CHARWD R 0.896662)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.16389)
+ )
+(CHARACTER C N
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.16389)
+ (COMMENT
+ (LIG O 75 O 217)
+ )
+ )
+(CHARACTER C O
+ (CHARWD R 0.766663)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.0940275)
+ (COMMENT
+ (LIG O 72 O 205)
+ (KRN C X R -0.025556)
+ (KRN C W R -0.025556)
+ (KRN C A R -0.025556)
+ (KRN O 244 R -0.025556)
+ (KRN C V R -0.025556)
+ (KRN C Y R -0.025556)
+ )
+ )
+(CHARACTER C P
+ (CHARWD R 0.678329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.102419)
+ (COMMENT
+ (KRN C A R -0.076666)
+ (KRN O 244 R -0.076666)
+ )
+ )
+(CHARACTER C Q
+ (CHARWD R 0.766663)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.0940275)
+ )
+(CHARACTER C R
+ (CHARWD R 0.729441)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.038681)
+ (COMMENT
+ (KRN C n R -0.025556)
+ (KRN O 237 R -0.025556)
+ (KRN C l R -0.025556)
+ (KRN C r R -0.025556)
+ (KRN C u R -0.025556)
+ (KRN O 230 R -0.025556)
+ (KRN O 276 R -0.025556)
+ (KRN C m R -0.025556)
+ (KRN C t R -0.025556)
+ (KRN O 227 R -0.025556)
+ (KRN C i R -0.025556)
+ (KRN O 223 R -0.025556)
+ (KRN O 275 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C h R -0.025556)
+ (KRN O 236 R -0.025556)
+ (KRN O 222 R -0.025556)
+ (KRN C b R -0.025556)
+ (KRN C U R -0.025556)
+ (KRN O 210 R -0.025556)
+ (KRN O 246 R -0.025556)
+ (KRN C k R -0.025556)
+ (KRN O 224 R -0.025556)
+ (KRN C v R -0.025556)
+ (KRN C w R -0.025556)
+ (KRN C Q R -0.025556)
+ (KRN C T R -0.076666)
+ (KRN O 207 R -0.076666)
+ (KRN C Y R -0.076666)
+ (KRN C V R -0.1022215)
+ (KRN C W R -0.1022215)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C S
+ (CHARWD R 0.56222)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.119722)
+ (COMMENT
+ (LIG O 72 O 252)
+ (LIG O 75 O 336)
+ (LIG O 41 O 206)
+ )
+ )
+(CHARACTER C T
+ (CHARWD R 0.715551)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.133055)
+ (COMMENT
+ (LIG O 41 O 207)
+ (KRN C y R -0.076666)
+ (KRN C e R -0.076666)
+ (KRN C o R -0.076666)
+ (KRN O 225 R -0.076666)
+ (KRN O 240 R -0.076666)
+ (KRN C r R -0.076666)
+ (KRN C a R -0.076666)
+ (KRN O 274 R -0.076666)
+ (KRN C u R -0.076666)
+ (KRN O 230 R -0.076666)
+ (KRN O 276 R -0.076666)
+ (KRN C A R -0.076666)
+ (KRN O 244 R -0.076666)
+ )
+ )
+(CHARACTER C U
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.16389)
+ (COMMENT
+ (LIG O 72 O 210)
+ (LIG O 75 O 246)
+ )
+ )
+(CHARACTER C V
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.183611)
+ (COMMENT
+ (KRN C o R -0.076666)
+ (KRN O 225 R -0.076666)
+ (KRN O 240 R -0.076666)
+ (KRN C e R -0.076666)
+ (KRN C u R -0.076666)
+ (KRN O 230 R -0.076666)
+ (KRN O 276 R -0.076666)
+ (KRN C r R -0.076666)
+ (KRN C a R -0.076666)
+ (KRN O 274 R -0.076666)
+ (KRN C A R -0.1022215)
+ (KRN O 244 R -0.1022215)
+ (LIG O 41 O 204)
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C Q R -0.025556)
+ )
+ )
+(CHARACTER C W
+ (CHARWD R 0.998883)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.183611)
+ (COMMENT
+ (KRN C A R -0.076666)
+ (KRN O 244 R -0.076666)
+ )
+ )
+(CHARACTER C X
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.158055)
+ (COMMENT
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C Q R -0.025556)
+ )
+ )
+(CHARACTER C Y
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.193832)
+ (COMMENT
+ (KRN C e R -0.076666)
+ (KRN C o R -0.076666)
+ (KRN O 225 R -0.076666)
+ (KRN O 240 R -0.076666)
+ (KRN C r R -0.076666)
+ (KRN C a R -0.076666)
+ (KRN O 274 R -0.076666)
+ (KRN C u R -0.076666)
+ (KRN O 230 R -0.076666)
+ (KRN O 276 R -0.076666)
+ (KRN C A R -0.076666)
+ (KRN O 244 R -0.076666)
+ )
+ )
+(CHARACTER C Z
+ (CHARWD R 0.61333)
+ (CHARHT R 0.683332)
+ (CHARIC R 0.145277)
+ (COMMENT
+ (LIG O 72 O 211)
+ (LIG O 75 O 337)
+ (LIG O 41 O 212)
+ )
+ )
+(CHARACTER O 133
+ (CHARWD R 0.306665)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ (CHARIC R 0.1875)
+ )
+(CHARACTER O 134
+ (CHARWD R 0.514442)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.1685)
+ )
+(CHARACTER O 135
+ (CHARWD R 0.306665)
+ (CHARHT R 0.75)
+ (CHARDP R 0.25)
+ (CHARIC R 0.105278)
+ )
+(CHARACTER O 136
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.066312)
+ )
+(CHARACTER O 137
+ (CHARWD R 0.306665)
+ (CHARHT R 0.667859)
+ (CHARIC R 0.117464)
+ )
+(CHARACTER O 140
+ (CHARWD R 0.306665)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.124168)
+ (COMMENT
+ (LIG O 140 O 134)
+ )
+ )
+(CHARACTER C a
+ (CHARWD R 0.511108)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.076714)
+ (COMMENT
+ (LIG O 75 O 274)
+ )
+ )
+(CHARACTER C b
+ (CHARWD R 0.459997)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.063124)
+ (COMMENT
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C c
+ (CHARWD R 0.459997)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.056528)
+ (COMMENT
+ (LIG O 72 O 233)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C d
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.103334)
+ (COMMENT
+ (LIG O 75 O 234)
+ (LIG O 41 O 220)
+ (KRN C l R 0.051111)
+ )
+ )
+(CHARACTER C e
+ (CHARWD R 0.459997)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.075139)
+ (COMMENT
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C f
+ (CHARWD R 0.306665)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.211945)
+ (COMMENT
+ (KRN O 275 R 0.153333)
+ (KRN O 223 R 0.153333)
+ (KRN O 43 R 0.153333)
+ (KRN O 100 R 0.153333)
+ )
+ )
+(CHARACTER C g
+ (CHARWD R 0.459997)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.088472)
+ (COMMENT
+ (LIG O 72 O 221)
+ (LIG O 75 O 235)
+ )
+ )
+(CHARACTER C h
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.076714)
+ (COMMENT
+ (LIG O 75 O 236)
+ (LIG O 41 O 222)
+ )
+ )
+(CHARACTER C i
+ (CHARWD R 0.306665)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.076714)
+ (COMMENT
+ (LIG O 72 O 223)
+ (LIG O 75 O 275)
+ )
+ )
+(CHARACTER C j
+ (CHARWD R 0.306665)
+ (CHARHT R 0.655359)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.144673)
+ )
+(CHARACTER C k
+ (CHARWD R 0.459997)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.107638)
+ )
+(CHARACTER C l
+ (CHARWD R 0.255554)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.103334)
+ (COMMENT
+ (KRN C l R 0.051111)
+ )
+ )
+(CHARACTER C m
+ (CHARWD R 0.817774)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.076714)
+ )
+(CHARACTER C n
+ (CHARWD R 0.56222)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.076714)
+ (COMMENT
+ (LIG O 75 O 237)
+ (KRN O 47 R -0.1022215)
+ (KRN O 47 R -0.076666)
+ )
+ )
+(CHARACTER C o
+ (CHARWD R 0.511108)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.063124)
+ (COMMENT
+ (LIG O 72 O 225)
+ (LIG O 75 O 240)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C p
+ (CHARWD R 0.511108)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.063124)
+ (COMMENT
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C q
+ (CHARWD R 0.459997)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.088472)
+ )
+(CHARACTER C r
+ (CHARWD R 0.421664)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.107638)
+ (COMMENT
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER C s
+ (CHARWD R 0.408887)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.082083)
+ (COMMENT
+ (LIG O 72 O 253)
+ (LIG O 75 O 376)
+ (LIG O 41 O 226)
+ )
+ )
+(CHARACTER C t
+ (CHARWD R 0.33222)
+ (CHARHT R 0.61508)
+ (CHARIC R 0.094861)
+ (COMMENT
+ (LIG O 41 O 227)
+ )
+ )
+(CHARACTER C u
+ (CHARWD R 0.536664)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.076714)
+ (COMMENT
+ (LIG O 72 O 230)
+ (LIG O 75 O 276)
+ )
+ )
+(CHARACTER C v
+ (CHARWD R 0.459997)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.107638)
+ )
+(CHARACTER C w
+ (CHARWD R 0.664441)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.107638)
+ (COMMENT
+ (KRN C l R 0.051111)
+ )
+ )
+(CHARACTER C x
+ (CHARWD R 0.463887)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.120346)
+ )
+(CHARACTER C y
+ (CHARWD R 0.485553)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.088472)
+ )
+(CHARACTER C z
+ (CHARWD R 0.408887)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.122917)
+ (COMMENT
+ (LIG O 72 O 231)
+ (LIG O 75 O 377)
+ (LIG O 41 O 232)
+ )
+ )
+(CHARACTER O 173
+ (CHARWD R 0.511108)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.092079)
+ (COMMENT
+ (LIG O 55 O 174)
+ )
+ )
+(CHARACTER O 174
+ (CHARWD R 1.022217)
+ (CHARHT R 0.430555)
+ (CHARIC R 0.092079)
+ )
+(CHARACTER O 175
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.1225)
+ )
+(CHARACTER O 176
+ (CHARWD R 0.511108)
+ (CHARHT R 0.667859)
+ (CHARIC R 0.115854)
+ )
+(CHARACTER O 177
+ (CHARWD R 0.511108)
+ (CHARHT R 0.667859)
+ (CHARIC R 0.104744)
+ )
+(CHARACTER O 200
+ (CHARWD R 0.754995)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.0940275)
+ (COMMENT
+ (KRN C X R -0.025556)
+ (KRN C W R -0.025556)
+ (KRN C A R -0.025556)
+ (KRN O 244 R -0.025556)
+ (KRN C V R -0.025556)
+ (KRN C Y R -0.025556)
+ )
+ )
+(CHARACTER O 201
+ (CHARWD R 0.773607)
+ (CHARHT R 0.75)
+ (CHARIC R 0.087209)
+ )
+(CHARACTER O 202
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.16389)
+ )
+(CHARACTER O 203
+ (CHARWD R 0.385553)
+ (CHARHT R 0.75)
+ (CHARIC R 0.158055)
+ )
+(CHARACTER O 204
+ (CHARWD R 0.768885)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.145277)
+ (COMMENT
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C Q R -0.025556)
+ )
+ )
+(CHARACTER O 205
+ (CHARWD R 0.766663)
+ (CHARHT R 0.75)
+ (CHARIC R 0.0940275)
+ (COMMENT
+ (KRN C X R -0.025556)
+ (KRN C W R -0.025556)
+ (KRN C A R -0.025556)
+ (KRN O 244 R -0.025556)
+ (KRN C V R -0.025556)
+ (KRN C Y R -0.025556)
+ )
+ )
+(CHARACTER O 206
+ (CHARWD R 0.56222)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.119722)
+ )
+(CHARACTER O 207
+ (CHARWD R 0.715551)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.133055)
+ (COMMENT
+ (KRN C y R -0.076666)
+ (KRN C e R -0.076666)
+ (KRN C o R -0.076666)
+ (KRN O 225 R -0.076666)
+ (KRN O 240 R -0.076666)
+ (KRN C r R -0.076666)
+ (KRN C a R -0.076666)
+ (KRN O 274 R -0.076666)
+ (KRN C u R -0.076666)
+ (KRN O 230 R -0.076666)
+ (KRN O 276 R -0.076666)
+ (KRN C A R -0.076666)
+ (KRN O 244 R -0.076666)
+ )
+ )
+(CHARACTER O 210
+ (CHARWD R 0.743329)
+ (CHARHT R 0.75)
+ (CHARIC R 0.16389)
+ )
+(CHARACTER O 211
+ (CHARWD R 0.61333)
+ (CHARHT R 0.75)
+ (CHARIC R 0.145277)
+ )
+(CHARACTER O 212
+ (CHARWD R 0.61333)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.145277)
+ )
+(CHARACTER O 213
+ (CHARWD R 0.715551)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.170138)
+ (CHARIC R 0.145277)
+ )
+(CHARACTER O 214
+ (CHARWD R 0.754995)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.116667)
+ (CHARIC R 0.0940275)
+ (COMMENT
+ (KRN C X R -0.025556)
+ (KRN C W R -0.025556)
+ (KRN C A R -0.025556)
+ (KRN O 244 R -0.025556)
+ (KRN C V R -0.025556)
+ (KRN C Y R -0.025556)
+ )
+ )
+(CHARACTER O 215
+ (CHARWD R 0.773607)
+ (CHARHT R 0.75)
+ (CHARIC R 0.087209)
+ )
+(CHARACTER O 216
+ (CHARWD R 0.743329)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.116667)
+ (CHARIC R 0.16389)
+ )
+(CHARACTER O 217
+ (CHARWD R 0.743329)
+ (CHARHT R 0.75)
+ (CHARIC R 0.180557)
+ )
+(CHARACTER O 220
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.103334)
+ (COMMENT
+ (KRN C l R 0.051111)
+ )
+ )
+(CHARACTER O 221
+ (CHARWD R 0.459997)
+ (CHARHT R 0.667859)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.088472)
+ )
+(CHARACTER O 222
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.076714)
+ )
+(CHARACTER O 223
+ (CHARWD R 0.306665)
+ (CHARHT R 0.655359)
+ (CHARIC R 0.101896)
+ )
+(CHARACTER O 224
+ (CHARWD R 0.459997)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.107638)
+ )
+(CHARACTER O 225
+ (CHARWD R 0.511108)
+ (CHARHT R 0.667859)
+ (CHARIC R 0.117464)
+ (COMMENT
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER O 226
+ (CHARWD R 0.408887)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.082083)
+ )
+(CHARACTER O 227
+ (CHARWD R 0.33222)
+ (CHARHT R 0.61508)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.094861)
+ )
+(CHARACTER O 230
+ (CHARWD R 0.536664)
+ (CHARHT R 0.667859)
+ (CHARIC R 0.129629)
+ )
+(CHARACTER O 231
+ (CHARWD R 0.408887)
+ (CHARHT R 0.667859)
+ (CHARIC R 0.122917)
+ )
+(CHARACTER O 232
+ (CHARWD R 0.408887)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.122917)
+ )
+(CHARACTER O 233
+ (CHARWD R 0.459997)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.170138)
+ (CHARIC R 0.056528)
+ (COMMENT
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER O 234
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.116667)
+ (CHARIC R 0.103334)
+ (COMMENT
+ (KRN C l R 0.051111)
+ )
+ )
+(CHARACTER O 235
+ (CHARWD R 0.459997)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194445)
+ (CHARIC R 0.114027)
+ )
+(CHARACTER O 236
+ (CHARWD R 0.511108)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.116667)
+ (CHARIC R 0.076714)
+ )
+(CHARACTER O 237
+ (CHARWD R 0.56222)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.090139)
+ (COMMENT
+ (KRN O 47 R -0.076666)
+ )
+ )
+(CHARACTER O 240
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.079074)
+ (COMMENT
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER O 243
+ (CHARWD R 0.817774)
+ (CHARHT R 0.694445)
+ (CHARDP R 0.194443)
+ (CHARIC R 0.066312)
+ )
+(CHARACTER O 244
+ (CHARWD R 0.743329)
+ (CHARHT R 0.75)
+ (COMMENT
+ (KRN C n R -0.025556)
+ (KRN O 237 R -0.025556)
+ (KRN C l R -0.025556)
+ (KRN C r R -0.025556)
+ (KRN C u R -0.025556)
+ (KRN O 230 R -0.025556)
+ (KRN O 276 R -0.025556)
+ (KRN C m R -0.025556)
+ (KRN C t R -0.025556)
+ (KRN O 227 R -0.025556)
+ (KRN C i R -0.025556)
+ (KRN O 223 R -0.025556)
+ (KRN O 275 R -0.025556)
+ (KRN C C R -0.025556)
+ (KRN O 213 R -0.025556)
+ (KRN C O R -0.025556)
+ (KRN O 205 R -0.025556)
+ (KRN C G R -0.025556)
+ (KRN O 201 R -0.025556)
+ (KRN O 215 R -0.025556)
+ (KRN C h R -0.025556)
+ (KRN O 236 R -0.025556)
+ (KRN O 222 R -0.025556)
+ (KRN C b R -0.025556)
+ (KRN C U R -0.025556)
+ (KRN O 210 R -0.025556)
+ (KRN O 246 R -0.025556)
+ (KRN C k R -0.025556)
+ (KRN O 224 R -0.025556)
+ (KRN C v R -0.025556)
+ (KRN C w R -0.025556)
+ (KRN C Q R -0.025556)
+ (KRN C T R -0.076666)
+ (KRN O 207 R -0.076666)
+ (KRN C Y R -0.076666)
+ (KRN C V R -0.1022215)
+ (KRN C W R -0.1022215)
+ (KRN C e R -0.051111)
+ (KRN C a R -0.051111)
+ (KRN O 274 R -0.051111)
+ (KRN C o R -0.051111)
+ (KRN O 225 R -0.051111)
+ (KRN O 240 R -0.051111)
+ (KRN C d R -0.051111)
+ (KRN O 234 R -0.051111)
+ (KRN O 220 R -0.051111)
+ (KRN C c R -0.051111)
+ (KRN O 233 R -0.051111)
+ (KRN C g R -0.051111)
+ (KRN O 221 R -0.051111)
+ (KRN O 235 R -0.051111)
+ (KRN C q R -0.051111)
+ )
+ )
+(CHARACTER O 245
+ (CHARWD R 0.385553)
+ (CHARHT R 0.75)
+ (CHARIC R 0.196388)
+ )
+(CHARACTER O 246
+ (CHARWD R 0.743329)
+ (CHARHT R 0.75)
+ (CHARIC R 0.16389)
+ )
+(CHARACTER O 252
+ (CHARWD R 0.56222)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.170138)
+ (CHARIC R 0.119722)
+ )
+(CHARACTER O 253
+ (CHARWD R 0.408887)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.170138)
+ (CHARIC R 0.082083)
+ )
+(CHARACTER O 274
+ (CHARWD R 0.511108)
+ (CHARHT R 0.643056)
+ (CHARIC R 0.081343)
+ )
+(CHARACTER O 275
+ (CHARWD R 0.306665)
+ (CHARHT R 0.655359)
+ (CHARIC R 0.076714)
+ )
+(CHARACTER O 276
+ (CHARWD R 0.536664)
+ (CHARHT R 0.655359)
+ (CHARIC R 0.102419)
+ )
+(CHARACTER O 300
+ (CHARWD R 0.766663)
+ (CHARHT R 0.694445)
+ (CHARIC R 0.095972)
+ )
+(CHARACTER O 336
+ (CHARWD R 0.56222)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.116667)
+ (CHARIC R 0.119722)
+ )
+(CHARACTER O 337
+ (CHARWD R 0.61333)
+ (CHARHT R 0.683332)
+ (CHARDP R 0.116667)
+ (CHARIC R 0.145277)
+ )
+(CHARACTER O 375
+ (CHARWD R 0.28111)
+ (CHARHT R 0.430555)
+ )
+(CHARACTER O 376
+ (CHARWD R 0.408887)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.116667)
+ (CHARIC R 0.082083)
+ )
+(CHARACTER O 377
+ (CHARWD R 0.408887)
+ (CHARHT R 0.430555)
+ (CHARDP R 0.116667)
+ (CHARIC R 0.122917)
+ )