summaryrefslogtreecommitdiff
path: root/fonts/pigpen
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 /fonts/pigpen
Initial commit
Diffstat (limited to 'fonts/pigpen')
-rw-r--r--fonts/pigpen/README10
-rw-r--r--fonts/pigpen/doc/pigpendoc.pdfbin0 -> 54679 bytes
-rw-r--r--fonts/pigpen/doc/pigpendoc.tex108
-rw-r--r--fonts/pigpen/map/pigpen.map8
-rw-r--r--fonts/pigpen/mfinput/pigpen.mf282
l---------fonts/pigpen/pigpendoc.pdf1
-rw-r--r--fonts/pigpen/texinput/pigpen.sty44
-rw-r--r--fonts/pigpen/texinput/pigpen.tex40
-rw-r--r--fonts/pigpen/tfm/pigpen.tfmbin0 -> 252 bytes
-rw-r--r--fonts/pigpen/type1/pigpen.pfa148
10 files changed, 641 insertions, 0 deletions
diff --git a/fonts/pigpen/README b/fonts/pigpen/README
new file mode 100644
index 0000000000..c7a466c045
--- /dev/null
+++ b/fonts/pigpen/README
@@ -0,0 +1,10 @@
+The Pigpen Cipher is a simple substitution cipher originally used by Freemasons.
+It is also known as masonic cipher, and was in fairly wide use in the 18th
+century, for writing personal notes as well as complete books. It does not
+provide any meaningful protection against cryptanalysis, though. Today
+it is still used by schoolchildren.
+
+The pigpen cipher package provides the font and the necessary wrappers
+(style file, etc.) in order to write Pigpen ciphers.
+
+Oliver Corff, December 2008
diff --git a/fonts/pigpen/doc/pigpendoc.pdf b/fonts/pigpen/doc/pigpendoc.pdf
new file mode 100644
index 0000000000..faa2ffa4e2
--- /dev/null
+++ b/fonts/pigpen/doc/pigpendoc.pdf
Binary files differ
diff --git a/fonts/pigpen/doc/pigpendoc.tex b/fonts/pigpen/doc/pigpendoc.tex
new file mode 100644
index 0000000000..4da7d93ffa
--- /dev/null
+++ b/fonts/pigpen/doc/pigpendoc.tex
@@ -0,0 +1,108 @@
+\documentclass[a4paper]{article}
+\usepackage{pigpen}
+
+\newcommand\exa{\nopagebreak \begin{flushleft}\smallskip \nopagebreak
+ \begin{minipage}[t]{6cm}\sloppy}
+\newcommand\exb{\end{minipage}\kern 1cm\begin{minipage}[t]{8cm}\sloppy }
+\newcommand\exc{\end{minipage}\kern -3cm \smallskip\end{flushleft}}
+
+\title{{\pigpenfont PIG PEN FOR TEX}\\[0.5cm]
+ The Pigpen Cipher for \TeX\ 0.2}
+\author{Oliver Corff}
+\date{December 07, 2008}
+\begin{document}
+\maketitle
+
+
+\section{The Pigpen cipher}
+
+The \TeX\ Pigpen cipher font is a small hack\footnote{%
+ The \TeX\ Pigpen cipher was inspired by a discussion on
+ \texttt{comp.text.tex} in December 2008.}
+to type the so-called masonic cipher, or Freemason's cipher,
+which is a simple substitution cipher based on a grid.
+A 3x3 grid is filled with the letters A to I and J to R.
+\begin{center}
+\begin{minipage}[t]{3cm}%
+\begin{tabular}{c|c|c}
+ A&B&C\\
+ \hline
+ D&E&F\\
+ \hline
+ G&H&I\\
+\end{tabular}\end{minipage}%
+\begin{minipage}[t]{3cm}%
+\begin{tabular}{c|c|c}
+ J.&K.&L.\\
+ \hline
+ M.&N.&O.\\
+ \hline
+ P.&Q.&R.\\
+\end{tabular}\end{minipage}
+\begin{minipage}[t]{3cm}%
+\begin{tabular}{ccc}
+ &S& \\
+ T&$\times$&U\\
+ &V& \\
+\end{tabular}\end{minipage}%
+\begin{minipage}[t]{3cm}%
+\begin{tabular}{ccc}
+ &W.& \\
+ X.&$\times$&Y.\\
+ &Z.&\\
+\end{tabular}\end{minipage}
+\end{center}
+
+\begin{center}
+{\pigpenfont
+\begin{minipage}[t]{3cm}%
+\begin{tabular}{ccc}
+ A&B&C\\
+ D&E&F\\
+ G&H&I\\
+\end{tabular}\end{minipage}%
+\begin{minipage}[t]{3cm}%
+\begin{tabular}{ccc}
+ J&K&L\\
+ M&N&O\\
+ P&Q&R\\
+\end{tabular}\end{minipage}
+\begin{minipage}[t]{3cm}%
+\begin{tabular}{ccc}
+ &S& \\
+ T&$\times$&U\\
+ &V& \\
+\end{tabular}\end{minipage}%
+\begin{minipage}[t]{3cm}%
+\begin{tabular}{ccc}
+ &W&\\
+ X&$\times$&Y\\
+ &Z&\\
+\end{tabular}\end{minipage}}
+\end{center}
+
+The letters in this grid are simply replaced by the inner edges
+of their box within the grid. The subset of letters J to R is marked
+by a dot.
+
+The letters S, T, U and V are arranged in the four quadrants of an X,
+the letters W, X, Y and Z follow this arragement but are marked with
+a dot. Again, the letters are substituted by the inner edges of their
+respective corner.
+
+\section{Usage}
+
+In the preamble of a \LaTeXe\ document, the package is declared by
+saying \verb|\usepackage{pigpen}|. Options are not available.
+There is only one user command, \verb|\pigpenfont|:
+\exa
+ {\pigpenfont LUCAS}
+\exb
+ \begin{verbatim}
+ {\pigpenfont LUCAS}
+ \end{verbatim}
+\exc
+
+
+
+\end{document}
diff --git a/fonts/pigpen/map/pigpen.map b/fonts/pigpen/map/pigpen.map
new file mode 100644
index 0000000000..4d4d4c9ecd
--- /dev/null
+++ b/fonts/pigpen/map/pigpen.map
@@ -0,0 +1,8 @@
+%
+% Map file for Pigpen font
+%
+% Part of the Pigpen package.
+%
+% Oliver Corff, 2008
+%
+pigpen <<pigpen.pfa
diff --git a/fonts/pigpen/mfinput/pigpen.mf b/fonts/pigpen/mfinput/pigpen.mf
new file mode 100644
index 0000000000..d939f19f4b
--- /dev/null
+++ b/fonts/pigpen/mfinput/pigpen.mf
@@ -0,0 +1,282 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Pigpen Cipher Font.
+%%%%%
+%%%%% Inspired by a discussion in comp.text.tex, December 2008
+%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 2008.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+ if unknown mag: mag := 1; fi;
+ mg:=1;
+ width#:=mg*12pt#;
+ height#:=mg*12pt#;
+ depth#:=mg*0pt#;
+
+ thick#:=mg*1.5pt#;
+ thin#:=mg*1.00pt#;
+
+ define_pixels(height,depth,width);
+ define_blacker_pixels(thin,thick);
+
+ oben:=10/12height;
+ unten:=2/12height;
+ links:=2/12width;
+ rechts:=10/12width;
+ hm:=1/2width;
+ vm:=6/12height;
+
+ font_size 12pt#;
+ font_normal_space 3/8width#;
+ font_x_height height#;
+ font_quad width#;
+ font_extra_space 3/8width#;
+
+def roundpen = % Basic pen definition
+ pickup pencircle scaled 0.9 thin
+enddef;
+
+def dotted =
+ % numeric x[]; numeric y[];
+ z9=(1/2width,1/2height-2/8thin);
+ z10=(1/2width,1/2height+2/8thin);
+ pickup pencircle scaled 0.55 thin;
+ % roundpen;
+ draw (z9..z10..cycle);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("A", width#,height#,depth#);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ top z4=(rechts,oben);
+ roundpen;
+ draw z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("B", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("C", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ roundpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("D", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z2--z3--z4--z1;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("E", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z1--z2--z3--z4--cycle;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("F", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z4--z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("G", width#,height#,depth#);
+ lft top z1=(links,oben);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z1--z4--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("H", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z2--z1--z4--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("I", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z2--z1--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("J", width#,height#,depth#);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z2--z3--z4;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("K", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z1--z2--z3--z4;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("L", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ roundpen;
+ draw z1--z2--z3;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("M", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z2--z3--z4--z1;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("N", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z1--z2--z3--z4--cycle;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("O", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z4--z1--z2--z3;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("P", width#,height#,depth#);
+ lft top z1=(links,oben);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z1--z4--z3;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("Q", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z2--z1--z4--z3;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("R", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt top z4=(rechts,oben);
+ roundpen;
+ draw z2--z1--z4;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("S", width#,height#,depth#);
+ lft top z1=(links,oben);
+ rt top z4=(rechts,oben);
+ bot z6=(1/2width,unten);
+ roundpen;
+ draw z1--z6--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("T", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt z7=(rechts,1/2height);
+ roundpen;
+ draw z1--z7--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("U", width#,height#,depth#);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ lft z5=(links,1/2height);
+ roundpen;
+ draw z3--z5--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("V", width#,height#,depth#);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ top z8=(1/2width,oben);
+ roundpen;
+ draw z2--z8--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("W", width#,height#,depth#);
+ lft top z1=(links,oben);
+ rt top z4=(rechts,oben);
+ bot z6=(1/2width,unten);
+ roundpen;
+ draw z1--z6--z4;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("X", width#,height#,depth#);
+ lft top z1=(links,oben);
+ lft bot z2=(links,unten);
+ rt z7=(rechts,1/2height);
+ roundpen;
+ draw z1--z7--z2;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("Y", width#,height#,depth#);
+ rt bot z3=(rechts,unten);
+ rt top z4=(rechts,oben);
+ lft z5=(links,1/2height);
+ roundpen;
+ draw z3--z5--z4;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar("Z", width#,height#,depth#);
+ lft bot z2=(links,unten);
+ rt bot z3=(rechts,unten);
+ top z8=(1/2width,oben);
+ roundpen;
+ draw z2--z8--z3;
+ dotted;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+end.
diff --git a/fonts/pigpen/pigpendoc.pdf b/fonts/pigpen/pigpendoc.pdf
new file mode 120000
index 0000000000..6be73814b4
--- /dev/null
+++ b/fonts/pigpen/pigpendoc.pdf
@@ -0,0 +1 @@
+doc/pigpendoc.pdf \ No newline at end of file
diff --git a/fonts/pigpen/texinput/pigpen.sty b/fonts/pigpen/texinput/pigpen.sty
new file mode 100644
index 0000000000..3df45916a8
--- /dev/null
+++ b/fonts/pigpen/texinput/pigpen.sty
@@ -0,0 +1,44 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: clock.sty
+% Date: December 07, 2008
+% Author: Oliver Corff
+% (c) 2008 Ulaanbaatar, Macau, Berlin
+%
+% A package for providing the Pigpen
+% cipher to TeX- and LaTeX-users.
+%
+% Usage: \usepackage{pigpen}
+%
+% No options.
+%
+% NB: This package requires LaTeX2e!
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Identification
+%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{pigpen}[2008/12/07 v0.1 PigPen]
+%
+%
+% Preliminary declarations
+%
+\DeclareFontFamily{U}{pigpen}{}
+\DeclareFontShape{U}{pigpen}{m}{n}{%
+ <-> pigpen}{}
+\DeclareFontSubstitution{U}{pigpen}{m}{n}
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Loading the clock command structure
+%
+\def\LaTeXpigpen{}
+\input pigpen.tex
+\newcommand{\pigpenfont}{\usefont{U}{pigpen}{m}{n}\selectfont}
+%
+%
+% No options with this package.
+%
+% No More declarations
+%
+% End of file `clock.sty'.
diff --git a/fonts/pigpen/texinput/pigpen.tex b/fonts/pigpen/texinput/pigpen.tex
new file mode 100644
index 0000000000..527cd4c71c
--- /dev/null
+++ b/fonts/pigpen/texinput/pigpen.tex
@@ -0,0 +1,40 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: pigpen.tex
+% Date: December 07, 2008
+% Author: Oliver Corff
+% (c) 2008 Ulaanbaatar, Macau, Berlin
+%
+% A package for providing the Pigpen
+% cipher to TeX- and LaTeX-users.
+%
+% Usage: \input pigpen
+%
+% No options.
+%
+% NB: This file does not require LaTeX2e!
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Size definitions
+%
+\ifx\LaTeXpigpen\undefined
+ \font\mypigpenfont pigpen
+ %
+ \def\pigpenfont{\let\pigpenfont\mypigpenfont}
+\fi
+
+\ifx\TeXpigpen\undefined
+ \def\TeXpigpen{}
+ \catcode`@ 11
+\else
+ \endinput
+\fi
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%
+% Some Housekeeping...
+%
+\ifx\LaTeXpigpen\undefined
+ \catcode`@ 12
+\fi
diff --git a/fonts/pigpen/tfm/pigpen.tfm b/fonts/pigpen/tfm/pigpen.tfm
new file mode 100644
index 0000000000..2fe787506f
--- /dev/null
+++ b/fonts/pigpen/tfm/pigpen.tfm
Binary files differ
diff --git a/fonts/pigpen/type1/pigpen.pfa b/fonts/pigpen/type1/pigpen.pfa
new file mode 100644
index 0000000000..2e925c05fe
--- /dev/null
+++ b/fonts/pigpen/type1/pigpen.pfa
@@ -0,0 +1,148 @@
+%!PS-AdobeFont-1.0: pigpen 001.001
+%%Title: pigpen
+%Version: 001.001
+%%CreationDate: Sun Dec 7 18:43:02 2008
+%%Creator: Oliver Corff
+%Copyright: Generated from MetaFont bitmap by mftrace 1.2.14,
+%Copyright: http://www.xs4all.nl/~hanwen/mftrace/
+% Generated by FontForge 20070511 (http://fontforge.sf.net/)
+%%EndComments
+
+FontDirectory/pigpen known{/pigpen findfont dup/UniqueID known{dup
+/UniqueID get 4228959 eq exch/FontType get 1 eq and}{pop false}ifelse
+{save true}{false}ifelse}{false}ifelse
+11 dict begin
+/FontType 1 def
+/FontMatrix [0.001 0 0 0.001 0 0 ]readonly def
+/FontName /pigpen def
+/FontBBox {128 127 873 873 }readonly def
+/UniqueID 4228959 def
+/PaintType 0 def
+/FontInfo 9 dict dup begin
+ /version (001.001) readonly def
+ /Notice (Generated from MetaFont bitmap by mftrace 1.2.14, http://www.xs4all.nl/~hanwen/mftrace/ ) readonly def
+ /FullName (pigpen) readonly def
+ /FamilyName (pigpen) readonly def
+ /Weight (Regular) readonly def
+ /ItalicAngle 0 def
+ /isFixedPitch true def
+ /UnderlinePosition -100 def
+ /UnderlineThickness 50 def
+end readonly def
+/Encoding StandardEncoding def
+currentdict end
+currentfile eexec
+743F8413F3636CA85A9FFEFB50B4BB27302A5CC0AB6E2F959BF20D320C373C2128D0A0CE
+7072B1F672A0AA38C3C0ECEB04B44CB174A1C31612D71FFA20C90954256378372F795B0B
+F2941F437F059F41AE0598C00515FEF187333557F32CE32A9EE7D4BAB65DA5343F92707E
+2CFCF3E8CE446E5ADAC39FC37ECE64B68B356CE0D710F45B1E7F2CD768ABCA1436083668
+761A1009464162D054C1F6BF2C46A319B3C66452876316C13A926456D3662958FD56740D
+5856736E6104F813ED319156777934EEB1C5445AE6A81831F21DA2DF95EBF1B14CEAD16E
+5CDC931FB61EB265F0360B553E2D6EC7B748D94475F01BF926744C223FC2B631748E2F00
+614A95CCC2014EB59769A47B1AE28BA72E96EA34EBB9D205C82200B29BC119AE55645AE9
+6FB77CF2C8BD10DE8C0FFD0F7DB0B650EED3EB0F3389E5BE1B0136C1531A7583F6207275
+6FCBEBF484B75F3771A63E5FAB51BF5AF941380979A85192CC5915B6814A258B933A396C
+AC4EE6F70E1B74958148DD9E1A3E820FF5BA38A78A08A192418F3F4D649625A6D79D14A3
+DE94A538050704087B60A5F6CB2D42C40613A15C08FD725854A65DC0171B6FAB59F9491A
+44BAD3096CD6B82AA1434B2CFF9D079EED95D0F5D3BAB0D3A3A7664529D5B1809BC67CE7
+07100E647D23452B0AAF2BAA191C02A8A00BB81DC8D01DC0186B9C6DE9B49061C3F728E1
+489CD9B018D76E7A3EEB4C3023869B162BE787AFC22F5DB11112D306401A60B3D96D090E
+B53439CAFDE68B5F321415CFB6144D856CCA9BBE2ADC62E23A8F2078314203B1E8A2C019
+45908CF57A8AD5CED6CCD7F1C50F6D0C6A96772C08B056D0ED2D096BC9386DD583AF7973
+3E73A05F82729D7AA127AEDFF120BEE6004C1CF91AB77C820CAE1B734D62D966EB220058
+D1894D8D919957AA91E5F48C13DE524FF1745BB58EDB8F2714E74255CF1557B6BF939719
+598F44A65E2CF720869511DD65B092BDAB0D6685CF2C3B1CAD4630C7D35010B87C93AEFD
+79881CD2DC807BC9FA0743968BDA4826C2805DBE1E3C82E0518200CB8A2C84CD36B66277
+31D09231A8F93B36FA63BA31388FF0DC4B537B5E41B03D72EB66691573502E9A97CB995A
+8B2E2FF2D88223E9DDD06789094167AB6E9F919EB5EF964EE04446A55131FB87F17B8428
+E67D19C37A9F2CF487B31689A4B5F789CDFC1301C2B8720D32943924A53FB6FA6F45CCCE
+643DF5398DF7EEFEC7CD0DC6425374DCB0309F805746F7908AB4B24C8547B58A2670A7BC
+C7C8B73A75F75BCA1AB72B43CD28C5CD99D89F1AC0464D0E3D7358A6A00A0E1A75D91280
+1358F666756AB4CFDE77DB5EDC4EF4B165A9BF873DFB253A5806F908BE1F9809892A0BE3
+457FBF940B367E6893CB7BF21A37064C3AFB5C88ADD7E9836945B3AA3E47913EB7911918
+80FEF1AB786DC4BE18A3F97D680DFEF15C50E149AF67CAF9CA11AEA720B851570D1A8B8A
+A3B13F5D8674D5DE97B55351977DE49709F2FD6C49F144628D0AFCA78F69FB699EAF7BA0
+E68F2BEB8B965CF58CB18CAD205A2E5C1205AAC902C5A2E18FC71AE1BFF9E37672F661C0
+6F78C8B7F08D4FA87BDFA2C32344544DFEE3742CAC0DB8107396E6F1DDDAF294CCEBD3B5
+BA6C6876E50EA1DFC3C878DCDB53D2323CE6675A09788F415484BF9D6A2AFDBD2E6D1513
+F92A30933826705B3E4BB8670A750514CDE6221EDC62F1B08E9C898E347FC5C4FCB5EE2B
+CC5037FA63002141CD6834343D45CB14881476E192ABFC148FDB4081A309890A6E01A607
+C0865694A8F642313A252D5ABB82EAEA4F9CF8A8200BA989B7134CC5AC05C03E3DA086E3
+0B4059C67ED7240FFE4B18D7FF47565AB976740A4E6663380089CB2D82FB9F1B1A3BDADC
+AB60CEA61B8B8D44F88924905F96CCA22DEC05CE8B8BDBC3EA39BEEC8F786BF277CE5288
+14D12DDC35A2FB12D48617EC38099C6521D0D1E1F67ACC48682D01D7DABE72CAD438EA78
+97FF3283D8396F3DF0BAA982AA2226E0773A34C79C1A6947AFFC9E58F446C0EBC4E79EBB
+6A8F931D012BC2CBFFEA9B026EFA8516707EB55C056413740F962DC5CC09F1D3C2B45136
+1DC744F6652317980C436108F0F32C54CC34996E760303028831203BC00EB9168D911E8E
+D38CFE0E9D943FA2337D7172B9A7190DA2F632CDD94082E6D5059D77ED709C1F4E340332
+435B62083AB62F7E3A1F88D0EEE811E85ACBC62F80FCCF8DC3067B0631E5D30011A1FAA7
+F8C99A67D84BD14D124A5CA0F616190C0AEA3A664DC5CE5836B01A4C4052940A23C2D6CF
+25CB664DA3E22403430F8E35D884A82EDC81E1743D086A24D49972AA645DC38A8B848027
+A7951E2031A91F29C6887266006AB10C163245912B158CEA311D0413C77D141509B646B3
+8A824E2B345A559CD22BA5D9DC70690466710D6CB53C550682BD9CB90EF428714674E64D
+D1661191691E54E3735192BBD7864E435D1204C1B9DD42E13BDBC065204A1302432FD9B4
+09F25BB33ABEB62BE7A71AB97B20E1D57EF1EB7EFB1707CF495D036D1F5568AA3BB2E8CA
+F652EEA88958A23D3DCCE62CBB6058A4140F99AE22EC25B849CB0DE52161210FD783D4C2
+3CEC71706836123A8FE89A3598A2C9D831B13FB40A843E4DBE4D972C0A790FF32CDB86D6
+6629A9973BED8EBA21FCF47E9D8DBD48B33EC359981D87981421A975B67D3370795BC097
+A78AC3BDDDE6B525CB9BB5024D8310DA4A6C610F77B92FAB89A7DA441E646C2A5916677F
+C0EFD1363E535246947E91D91B556A7F774C34500E7FD984ED3C1B6955D34B7DA3F912BE
+F662659CD92D75C3AA07662470C8026CEF9CB83216F21694ABB2174CEDC2D5836CACBE46
+2A20C1ED14ECD5E7B84DD8F38816BD94010156745C6FAA1071C18F8B63F51F736811E634
+C92E9A7AF6DBCB4153DB391255574BC6C5F18CE7CE319AE22D9F51A970971590F6330CC2
+479437F033BFE6799697683CAF9C0633010027C4504E73CE3FAB26E146C171DCA1D176F9
+F300F0D95DAF83895E7EAC53A2F5DCEBDB17EFED079C3F4140CF26A0585DE705CEBEAD38
+2438E69D56E508D2B0E1A448C4685153CE2BBC5CA59613ADEB4E337DCBBC4B75B112FAD7
+6415B92C7C7421FC26F79E7C22E2D14BDE28B780275514FDE07C897616E0216D22769DB6
+A5FC8C6B487B5AB790A762EB258F739DD9AFF943076AF405F47FE537E713EF0802D4ED76
+BCA93900050381003BA69E25795EA22472A50E4E4C3996343EC0E904093D292FD3D99489
+6CD0311F907FBFA71CE90F0D88B45C7204F63637CCEE8291ADD007C90F28864E70AC7260
+ED7958A0EF4D6F0C4693EE2C65BB593B8739400C53F28423199E6744EFC7A6FBFD84F42D
+B18C0EE5DF4957E1B74517B312A38C5EB091A5D2233D15FEFAFC1004809FC720EFAA6E15
+2C38D230D4F69FFBBAFF147B09603187449923E72BE40EB96A1C9C8F0FA8C5B4611B1BA7
+6B8D18ACEC191A7B6FA730DC2CE6E32780D04D3ADB6B7ECED52ADB44B31257C9DD7E16BA
+07DAB3EDA3667A8262CDBB2821612964B30B11E5AB54A66F65B8FCBB450D099A12181466
+0DEA30A7D923D67E8CC0F0B8544C124C1A2B145E197A5358D7F2AF088FDCC710A7C43A4C
+4CFB92273EBA8F769CCD7D2E3FFD7CDD0759019011141D3E8D9A9BAA6EBD6E41238448CA
+0A07216A6ABEB1D57364869174DD9722FC4D5FA7EED1660591106F3C0AD1FC4983EC1511
+70EB5D8A75A7A68793DCCC53E7080E12AF6E108F9C66C250D75BDA7FC81EDB0B9264E221
+FBBF8A2392646993EFEF59A3C08DFCABDE61C6855728F2C0FC119E00309062B80F3B9132
+BB635E2462EDD5B5FDB1C0120DFA666D145FCB771B9FBBD18CE82B2930C968BE5F036264
+738CF5D96EF17BE0E18063F932ADF8BBD2575D78A5C75576AAD7ADE0C07C0ED95D718B5C
+069F508F6BD4732D95BD6F07D37AC51A87BEF11FAB3CB16EB254B065FF282D4F701891DC
+097A6FF93A633B93815C6151EB72EDCBBA257ADA4797064ABE16E79DF1588BAFADB4F28F
+25D68F3DBB3931302DD2DFC4A62DD415C63FB618BBBD9DE450346C0A93091F08C7ED2FD0
+547091155F2EFC63AAC66CE8A18CF6BDF7A3A81A0D8E7704161F740004FE1C310A008A92
+46FEC15179C1C3FD4C8B6A8A851C43E8FA975C6D76801023CDE0140B2519BC5F992CC01A
+E6D9AF97889CAFFA4BDD5F3E7A23631ECB6B8133D2720FCB414F557A4CC8027F3ED0B8FC
+A48700F8E5D561E1E282B7F606E37F989A550F02A310C5784F9A587C7C547B7B489B845A
+3CF8928A5018CFA990B6789F21A294426C56AE987676D609DE7CD5ACAA004F62B6D40E80
+8F8DC3A03077CA2E333210003F7F9CCFDAEEE014302E3ED98C4BFB1B4A88549DB09A5481
+D44120665932D06076D59B6008BDEB30CF29B9E0967B50543D7830EF21FE644F92A559FD
+3E83DB8879CBF4D9392AAAC1C227D2EEE3B92D50AAD94719F659E96EDBE77E7BD6A42D58
+E3B2092CA560511A763997027F4AEA70516BAD7EBE03E98AC3A3876E050719F2B1C99131
+1309950E3159A336BD4574EDAD2F4C836DD60A2CB6B35E57DCD990978CC1A74E061985B7
+BFB047C9AC6FF4DBB3F94636B1A6F31745E77869C33E0999EE8C38EDFAD3BFE751FC6B44
+89125B2F34A632420403401A00B96097BC8C229A97A0E1AA5F8505559384D1F0BD9850DB
+89ADF71FE7E9919C172BC713B59569E341C36C9B9CA5EF70F8D9A3FE91E221058C0922C6
+2585DDEC2526622A40D61D6EAE05EC862DE9FAAE876B9A5673CF23412E187670D39D625F
+E5C19D233CCF7CA29C3878D2A30F9C75C23256CC864F991E52457AF31947D3B931319988
+5843B83EB8E295057E5D1E226F95F3C70AEBF56A10AFEC043E85DCABA1C6679CD1CE5164
+594970A98EC0A72A2806D7605BBC781C1910D8788F91FF30DAD8A87920C6AC474A10BC9D
+80E9DE9D284D7CC86D57CC39EB93596744BA2FD06C1B85D02AD6106DA1E3B4ECD5A15011
+6B041D5CB709A5A62688942FCD7905A12AFFB8BEB7F95067E63CEF983A3BDCE898C16A17
+FCCA52C6406DB4A387591D749CB5EDBFDF845EBB6A00C14D24C23F31DF8011F49956AE43
+16F5098E73BF454447F8501BFF905F1DF71F8989B072CCFCE81CDC2FB1854C58AEA8E628
+FAE40F4192BAE4810DE01C8C25B91DE8245E5BADC0B3E76F3E02BBA1B0FD73E897AE4CE8
+059C9B6AE509922E0CD305AA66E5945833CDAFD4BF64A2975BF4045E2EB760FB943154E0
+E971A6EC539F64C39F99271ABC6A115864AA23BB6343E09DC0A8
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+0000000000000000000000000000000000000000000000000000000000000000
+cleartomark
+{restore}if