.cmchar "The Fraktur numeral 1";
.beginchar("1",2.778u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos2(w,0); z2=(0.5w,0); 
penpos1(stem,0); z1=(0.5w,foot);
penpos3(hair,90); penpos4(hair,90);
z3l=z2l; z4l=z2r; penpos5(stem,0);
z5=(x1,0.79h); penpos6(hair,0);
z6r=(x5r,h); penpos7(1.5hair,90);
z7=(0,0.9h);
filldraw z4l--z4r...z1r---z6r--
z6l..z7r{left}--z7l{right}...
z5l---z1l...z3r--z2l--z4l & cycle;
.endchar;

.cmchar "The Fraktur numeral 2";
.beginchar("2",5.694u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(0.625stem,-90); penpos2(stem,-90);
penpos3(4/3stem,-115);
z1r=(0,0); z2r=(0.722w,0.026h);
x3l=w; y3r=-apex_o;
penstroke z1e..z2e{right}..z3e;
penpos4(0.917stem,20);
z4r=(0.966w,0.721h);
z5=(0.478w,0.848h);
z6=(0.244w,h+apex_o);
z7=(0.093w,0.822h);
penpos8(hair,13); z8=(0.146w,3/4h);
penstroke z1e{dir44}..z4e{up};
filldraw z8r..z5{right}..z4l{down}
--z4r{up}..z6{dir173} & z6--z7--z8l--z8r &
cycle;
.endchar;

.cmchar "The Fraktur numeral 3";
.beginchar("3",5.5u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(1.5hair,-90); penpos2(stem,18);
penpos3(1.833stem,35);
penpos4(hair,-90); penpos5(0.625stem,0);
z1r=(0,-apex_o); z2=(0.788w,0.353h);
z4r=(0.167w,0.489h); z5r=(w,h);
z3l=z4r;
penstroke z1e{dir12}..z2e{up}..z3e{left};
penstroke z4e{dir30}..z5e{up};
penpos7(0.917stem,-90);
penpos8(0.417stem,-17);
penpos9(hair,0);
z8l=(0,0.796h); z9l-z8l=whatever*dir73;
y9=h+apex_o; z7l=(0.273w,h-apex_o);
z6=(z4l{dir30}..z5l{up}) intersectionpoint 
((0,y7r+apex_o)--(w,y7r+apex_o));
filldraw z8l--z9l--z9r..z7l{right}...
z5l---z5r--z6..z7r{left}..z8r{z8l-z9l}
--z8l & cycle;
.endchar;

.cmchar "The Fraktur numeral 4";
.beginchar("4",7.361u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(stem,0); penpos2(stem,0);
z1=(0.619w,foot); z2=(x1,0.831h);
z3=(x1,h); z4=(0,0.444h);
penpos6(0.521stem,90); z6=(0.796w,0.45h);
y5=y6l; (x2r,h)-z5=whatever*dir50;
z4'=(1/45w,y6r); z3'-z4'=whatever*dir50;
x3'=x2l; penpos9(hair,90); 
penpos10(hair,-90); z9l=(x1-stem,0);
z10r=(x1+stem,0);
z8=(w,0.521h); z7=(0.921w,0.376h);
filldraw z9l--z9r...z1l---z2l--
z2r---z1r...z10l--z10r--z9l & cycle;
z3''=whatever[z5,(x2r,h)]; x3''=x2l;
filldraw z2l--z3''--z5--z4'---z3'...
z3{right}..{down}z2r--z2l & cycle;
filldraw z6l---z5...z4{up}..z4'{z3'-z4'}
& z4'---z6r...z8{right}--z7..
z6l{left} & cycle;
.endchar;

.cmchar "The Fraktur numeral 5";
.beginchar("5",5.528u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(0.458stem,-60); penpos2(1.125stem,25);
penpos3(1.125stem,65); penpos4(1.167stem,53);
penpos5(1.5hair,-25); penpos6(0.958stem,-77);
z1=(0.221w,-apex_o); z2=(0.729w,0.417h);
z3=(0.462w,0.578h); z4l=(0,0.618h);
z5=(0.161w,0.814h); z6l=(0.349w,h);
z7=(0.673w,0.98h); z8=(w,h);
z9=(0.851w,0.828h);
penstroke z1e{dir30}..z2e{up}..
z3e{dir169}..z4e{up}..z5e{dir65}..z6e{right};
filldraw z6l{right}..z7..z8 & z8--z9 &
z9..{left}z6r--z6l & cycle;
.endchar;

.cmchar "The Fraktur numeral 6";
.beginchar("6",6.056u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(1.4hair,-42); penpos2(1.208stem,40);
penpos3(1.125stem,54); penpos4(1.2hair,-36);
penpos5(stem,30); penpos7(hair,-45);
z1l=(0.716w,h+apex_o); z2l=(0,0.342h);
z3l=(0.674w,-apex_o); 
penstroke z3e..z2e{up}..z1e{dir48};
z4r=z3; z5r=(w,0.362h); z6=(0.573w,0.753h);
z6-z7l=whatever*dir45; y7l=0.555h;
z8=(0.477w,0.566h);
filldraw z4r---z3r...z5r{up}..z6{dir135}
--z7l--z7r{z6-z7l}..z8{right}..z5l{down}
..z4l{z3l-z3r}--z4r & cycle;
.endchar;

.cmchar "The Fraktur numeral 7";
.beginchar("7",5.906u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(1.417stem,0); z1=(0.466w,0);
penpos2(hair,-57); y2l=h; x2r=w;
penstroke z1e{up}..z2e{dir64};
penpos3(hair,-20); penpos5(stem,-90);
z3l=(0,0.776h); z5l=(0.24w,h);
z4-z3l=whatever*dir70; y4=h+apex_o;
z6=(z5r--(w,y5r)) intersectionpoint 
(z1{up}..z2{dir64});
filldraw z3r{z4-z3l}...z5r---z6--
z2--z2l---z5l...z4 & z4--z3l--z3r & 
cycle;
.endchar;

.cmchar "The Fraktur numeral 8";
.beginchar("8",6.722u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(1.042stem,61.5);
penpos2(hair,110);
z1=z2=(0.5w,0.51h);
penpos3(0.917stem,24);
z3l=(0.083w,0.721h);
penpos5(0.917stem,-204);
z5l=(w-x3l,y3l);
penpos4(hair,-90); z4l=(0.5w,h+apex_o);
penpos6(stem,180); z6r=(0,0.245h);
penpos7(2hair,-90); z7r=(0.5w,-apex_o);
penpos8(stem,0); z8r=(w,y6);
penstroke z1e{dir151.5}..z3e{up}..
z4e{right}..z5e{down}..z2e{dir200}..
z6e{down}..z7e{right}..z8e{up}..
z1e{dir151.5};
.endchar;

.cmchar "The Fraktur numeral 9";
.beginchar("9",6.056u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(1.4hair,-42); penpos2(1.208stem,40);
penpos3(1.125stem,54); penpos4(1.2hair,-36);
penpos5(stem,30); penpos7(hair,-45);
z1l=(0.716w,h+apex_o); z2l=(0,0.342h);
z3l=(0.674w,-apex_o); 
penstroke z3e..z2e{up}..z1e{dir48};
z4r=z3; z5r=(w,0.362h); z6=(0.573w,0.753h);
z6-z7l=whatever*dir45; y7l=0.555h;
z8=(0.477w,0.566h);
filldraw z4r---z3r...z5r{up}..z6{dir135}
--z7l--z7r{z6-z7l}..z8{right}..z5l{down}
..z4l{z3l-z3r}--z4r & cycle;
transform gurisma;
gurisma=identity 
rotatedaround ((0.5w,0.5h),180);
picture krufo;
krufo:= currentpicture transformed
gurisma;
picture currentpicture;
currentpicture=krufo;
.endchar;

.cmchar "The Fraktur numeral 0";
.beginchar("0",7.332u#,1.2x_height#,0);
.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
penpos1(1.059stem,-143);
penpos2(stem,-140);
penpos3(1.05stem,-136);
penpos4(1.1stem,-142);
penpos5(hair,128);
penpos6(hair,127);
z1l=(0.535w,h+apex_o); z4r=(w-x1l,-apex_o);
z2l=(w,0.528h); x3r=0; y3=y2l+apex_o;
z5l=z4; z6r=z1;
penstroke z1e{dir-25}..z2e{down}..
z5e{z4r-z4l};
penstroke z6e{z1r-z1l}..z3e{down}..
z4e{dir-31};
.endchar;
