% +AMDG  This document was begun on 8 June 11EX, the feast
% of Pentecost, and it is humbly dedicated to the Immaculate
% Heart of Mary, for her prayers, and to the Sacred Heart of
% Jesus and the Holy Spirit, for their mercy.

beginchar("&",3em#/4,cap#,0); "The italic ampersand, &";
italcorr(ex#*slant);

penpos0(thickl,0);
z0l = (ss,3ex/4);
penpos1(thickl,180);
z1r = (ss,ex/4);
penpos2(thinl,-90);
z2r = (w/3,ex+o);
penpos3(thinl,90);
z3 = (x5r,ex/2);
penpos4(thinl,-90);
z4r = (x3,0-o);
penpos5(thinl,180);
z5 = (1w/2,(y2+y0)/2);
penpos6(thickl,0);
z6 = (3w/4,y1);
penpos7(thickl,0);
z7r = (x6,h);
penpos8(1.5thinl,45);
z8l = (x5l,ex);
z10 = (w,y8);
z11 = (z8--z10) intersectionpoint (z6r--z7r);
penpos9(1.5thinl,45);
z9 = 2[z8,z11] shifted (0.5thickstroke,0);

penstroke z5e..z2e..z0e..{right}z3e;
penstroke z3e{left}..z1e..z4e..z6e..tension 1.5..z7e;
penstroke z8e--z9e;

penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,100);
endchar;

beginchar("?",digwid#+2ss#,cap#,0); "The italic question mark, ?";
italcorr(ex#*slant);

penpos0(thinl,-90);
z0l = (w/2,h);
penpos1(thickl,0);
z1l = (ss,3h/4);
penpos2(thinl,90);
z2l = (w/2,h/2);
penpos3(curvl,180);
z3l = (w-ss,3h/4);
penpos4(thickl,0);
z4 = (2w/3,h/3);
penpos5(1.5thinl,-90);
z5 = (w/2,h/4);
penpos6(thickl,180);
z6 = (w/3,h/3);
penpos7(1.5thinl,90);
z7r = z1r;
penpos8(1.5thinl,180);
z8r = z7r;
penpos9(1.5thinl,-90);
z9r = z8r;

penstroke z9e..z8e..z7e..z1e{up}..z0e..z3e..z2e..z6e..z5e..z4e;
fill period shifted (w/2-2dotwid+ss,-o);

questionmark := currentpicture;

penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,100);
endchar;

beginchar(oct"276",digwid#+2ss#,cap#,dep#); "The reverse question mark";

currentpicture := questionmark rotatedaround ((w/2,(h-dep)/2),180);

endchar;

beginchar(oct"275",1.5pwid#,cap#,dep#); "The reverse exclamation point";

currentpicture := bang rotatedaround ((w/2,(h-dep)/2),180)
	shifted (0.75pwid,0);

endchar;
