%% GPM Procedure Definition for PostScript
%% File: GPMps
  
/zdiv {
  dup 0 eq { pop pop 0 } { div } ifelse
} bind def
/rshow {
  dup stringwidth pop neg 0 rmoveto show
} bind def
/cshow {
  dup stringwidth pop neg 2 zdiv 0 rmoveto show
} bind def
  
/ginit { 2 setlinejoin 0 setlinecap } def

% rshow_l :: stack : char theta x y 
/rshow_l {
  gsave
  translate -0.3 0 moveto rotate show
  grestore
} bind def
  
% rshow_r :: stack : char theta x y
/rshow_r {
  gsave
  translate -0.3 0 moveto rotate rshow
  grestore
} bind def
  
% rshow_c :: stack : char theta x y
/rshow_c {
  gsave
  translate -0.3 0 moveto rotate cshow
  grestore
} bind def
  
% nshow_l :: stack : char x y
/nshow_l {
  gsave
  moveto 0 rotate show
  grestore
} bind def
  
% nshow_r :: stack : char x y
/nshow_r  {
  gsave
  moveto 0 rotate rshow
  grestore
} bind def
  
% nshow_c :: stack : char x y
/nshow_c {
  gsave
  moveto 0 rotate cshow
  grestore
} bind def
  
% MV LN ST
/MV { moveto } bind def
/LN { lineto } bind def
/ST { stroke } bind def
/FL { fill } bind def

% box :: l_x l_y x y
/box {
  newpath moveto exch dup 0 rlineto
  exch 0 exch rlineto neg 0 rlineto closepath
} bind def
  
% Center Symbol Definition
/csymbol0 {
  gsave [] 0 setdash newpath 3 1 roll moveto
  dup -2 div dup rmoveto 0 2 copy 
  rlineto exch 2 copy rlineto
  neg 2 copy exch rlineto
  rlineto closepath stroke
  grestore
} bind def

/csymbol1 {
  gsave [] 0 setdash 2 div 0 360 arc stroke grestore
} bind def

/csymbol2 {
  gsave
  [] 0 setdash newpath 3 1 roll moveto
  dup -2 div dup 1.73 div rmoveto dup 0 rlineto
  dup -2 div exch 1.2 div rlineto closepath stroke
  grestore
} bind def

/csymbol3 {
  gsave
    [] 0 setdash 3 1 roll moveto dup -2 div 0 rmoveto
    dup 0 rlineto dup -2 div dup rmoveto 0 exch rlineto stroke 
  grestore
} bind def

/csymbol4 {
  gsave
  [] 0 setdash 3 1 roll moveto dup -2.8 div dup rmoveto
  dup 1.4 div dup rlineto dup -1.4 div 0 rmoveto
  dup 1.4 div exch neg 1.4 div rlineto stroke
  grestore
} bind def

/csymbol5 {
  gsave
    [] 0 setdash newpath 3 1 roll moveto -2 div dup 0 rmoveto
    neg dup 2 copy neg rlineto 2 copy rlineto neg exch 2 copy rlineto
    neg rlineto closepath stroke
  grestore
} bind def

/csymbol6 {
  gsave
  newpath [] 0 setdash 3 1 roll moveto dup -2 div dup rmoveto
  0 2 copy rlineto exch 2 copy rlineto neg 2 copy exch rlineto 
  rlineto closepath fill
  grestore
} bind def

/csymbol7 {
  gsave
  [] 0 setdash 2 div 0 360 arc fill stroke
  grestore
} bind def

/csymbol8 {
  gsave
  newpath [] 0 setdash 3 1 roll moveto
  dup -2 div dup 1.73 div rmoveto
  dup 0 rlineto
  dup -2 div exch 1.2 div rlineto
  closepath fill
  grestore
} bind def

/csymbol9 {
  gsave
  newpath [] 0 setdash 3 1 roll moveto
  dup -2 div dup -1.73 div rmoveto dup 0 rlineto
  dup -2 div exch -1.2 div rlineto
  closepath stroke
  grestore
} bind def

/csymbol10 {
  gsave
  newpath [] 0 setdash 3 1 roll moveto
  dup -2 div dup -1.73 div rmoveto dup 0 rlineto
  dup -2 div exch -1.2 div rlineto
  closepath fill
  grestore
} bind def

/csymbol11 {
  gsave
  newpath [] 0 setdash
  3 1 roll moveto -2 div dup 0 rmoveto
  neg dup 2 copy neg rlineto
  2 copy rlineto neg exch 2 copy rlineto
  neg rlineto closepath fill
  grestore
} bind def

/csymbol12 {
  gsave
  [] 0 setdash
  3 copy currentrgbcolor 9 6 roll 
  1 setgray newpath 3 1 roll moveto
  dup -2 div dup rmoveto 0 2 copy 
  rlineto exch 2 copy rlineto
  neg 2 copy exch rlineto
  rlineto closepath fill
  setrgbcolor newpath 3 1 roll moveto
  dup -2 div dup rmoveto 0 2 copy 
  rlineto exch 2 copy rlineto
  neg 2 copy exch rlineto
  rlineto closepath stroke
  grestore
} bind def

/csymbol13 {
  gsave
    [] 0 setdash
    3 copy currentrgbcolor 9 6 roll
    1 setgray 2 div 0 360 arc fill
    setrgbcolor 2 div 0 360 arc stroke
  grestore
} bind def

/csymbol14 {
  gsave
    [] 0 setdash
    3 copy currentrgbcolor 9 6 roll 
    1 setgray newpath 3 1 roll moveto
    dup -2 div dup 1.73 div rmoveto dup 0 rlineto
    dup -2 div exch 1.2 div rlineto closepath fill
    setrgbcolor newpath 3 1 roll moveto
    dup -2 div dup 1.73 div rmoveto dup 0 rlineto
    dup -2 div exch 1.2 div rlineto closepath stroke
  grestore
} bind def

/csymbol15 {
  gsave
    [] 0 setdash
    3 copy currentrgbcolor 9 6 roll 
    1 setgray newpath 3 1 roll moveto -2 div dup 0 rmoveto
    neg dup 2 copy neg rlineto 2 copy rlineto neg exch 2 copy rlineto
    neg rlineto closepath fill
    setrgbcolor newpath 3 1 roll moveto -2 div dup 0 rmoveto
    neg dup 2 copy neg rlineto 2 copy rlineto neg exch 2 copy rlineto
    neg rlineto closepath stroke
  grestore
} bind def

/csymbol16 {
  gsave
  [] 0 setdash
  3 copy currentrgbcolor 9 6 roll
  1 setgray newpath  3 1 roll moveto
  dup -2 div dup -1.73 div rmoveto
  dup 0 rlineto
  dup -2 div exch -1.2 div rlineto
  closepath fill
  setrgbcolor newpath  3 1 roll moveto
  dup -2 div dup -1.73 div rmoveto
  dup 0 rlineto
  dup -2 div exch -1.2 div rlineto
  closepath stroke
  grestore
} bind def

%% End file of GPMps
