import java.awt.*;
import java.awt.geom.*;
import java.awt.image.*;
import java.net.*;
import java.awt.event.*;
import java.lang.*;


public class MaestroG{
    //MaestroG(){};
    //tipo=1 arrow up
    //
    public static final void drawArrow(int x, int y, int tipo, Graphics g){
        Graphics2D g2d = (Graphics2D)g;
	 switch (tipo){
	   case 1://ArrowUp
	  	g.drawLine(x,y,x,y-8);
		g.drawLine(x-3,y-2,x+3,y-2);
		g.drawLine(x-2,y-3,x+2,y-3);
		g.drawLine(x-2,y-4,x+2,y-4);
		g.drawLine(x-1,y-5,x+1,y-5);
		g.drawLine(x-1,y-6,x+1,y-6);
	   break;
	   case 2://Down
		g.drawLine(x,y,x,y+8);
		g.drawLine(x-1,y+6,x+1,y+6);
		g.drawLine(x-1,y+5,x+1,y+5);
		g.drawLine(x-2,y+4,x+2,y+4);
		g.drawLine(x-2,y+3,x+2,y+3);
		g.drawLine(x-3,y+2,x+3,y+2);
	   break;
	   case 3://ArrowRight
		g.drawLine(x,y,x+8,y);
		g.drawLine(x+6,y-1,x+6,y+1);
		g.drawLine(x+5,y-1,x+5,y+1);
		g.drawLine(x+4,y-2,x+4,y+2);
		g.drawLine(x+3,y-2,x+3,y+2);
		g.drawLine(x+2,y-3,x+2,y+3);
	   break;
	   case 4://ArrowLeft
		g.drawLine(x,y,x-8,y);
		g.drawLine(x-2,y-3,x-2,y+3);
		g.drawLine(x-3,y-2,x-3,y+2);
		g.drawLine(x-4,y-2,x-4,y+2);
		g.drawLine(x-5,y-1,x-5,y+1);
		g.drawLine(x-6,y-1,x-6,y+1); 
	  break;
          
          case 5://ArrowUpSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
                g.drawLine(x,y,x,y-8);
		//draw oblique arrow head
		Polygon pH = new Polygon();
		pH.addPoint(x-2, y-2);
		pH.addPoint(x+2, y-2);
		pH.addPoint(x,y-8);
		g.drawPolygon(pH);
		g.fillPolygon(pH);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
        
          break;
          
          case 6://ArrowDownSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
                g.drawLine(x,y,x,y+8);
		//draw oblique arrow head
		Polygon pJ = new Polygon();
		pJ.addPoint(x-2, y+2);
		pJ.addPoint(x+2, y+2);
		pJ.addPoint(x,y+8);
		g.drawPolygon(pJ);
		g.fillPolygon(pJ);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
	   break;
           
           case 7://ArrowRightSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
                g.drawLine(x,y,x+8,y);
		//draw oblique arrow head
		Polygon pK = new Polygon();
		pK.addPoint(x+2, y-2);
		pK.addPoint(x+2, y+2);
		pK.addPoint(x+8,y);
		g.drawPolygon(pK);
		g.fillPolygon(pK);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
	   
	   break;
           
           case 8://ArrowLeftSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
                g.drawLine(x,y,x-8,y);
		//draw oblique arrow head
		Polygon pL = new Polygon();
		pL.addPoint(x-2, y-2);
		pL.addPoint(x-2, y+2);
		pL.addPoint(x-8,y);
		g.drawPolygon(pL);
		g.fillPolygon(pL);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
 
	   break;
           
           case 9://ArrowOblique 45 degrees NE
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
		//draw oblique arrow head
		Polygon pM = new Polygon();
                //draw oblique arrow head
                
                //pM.addPoint(x+6,y-6);
		//pM.addPoint(x-2,y-2);
		//pM.addPoint(x+2,y+2);
                
		pM.addPoint(x+5,y-5);
		pM.addPoint(x-1,y-2);
		pM.addPoint(x+2,y+1);
		
                g.drawPolygon(pM);
		g.fillPolygon(pM);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
                 
           break;
           
           case 10://ArrowOblique 45 degrees SW
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
		//draw oblique arrow head
		Polygon pX = new Polygon();
                //draw oblique arrow head
                
                pX.addPoint(x-5,y+5);
		pX.addPoint(x+1,y+2);
		pX.addPoint(x-2,y-1);
		
                g.drawPolygon(pX);
		g.fillPolygon(pX);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
                 
           break;
	}	
	
    } 
    
    public static final void drawArrowtip(int x, int y, int tipo, Graphics g){
	Graphics2D g2d = (Graphics2D)g;
	 
        switch (tipo){
	   case 1://ArrowUp
	  	g.drawLine(x,y-4,x,y-8);
		g.drawLine(x-3,y-2,x+3,y-2);
		g.drawLine(x-2,y-3,x+2,y-3);
		g.drawLine(x-2,y-4,x+2,y-4);
		g.drawLine(x-1,y-5,x+1,y-5);
		g.drawLine(x-1,y-6,x+1,y-6);
	   break;
	   case 2://Down
		g.drawLine(x,y+4,x,y+8);
		g.drawLine(x-1,y+6,x+1,y+6);
		g.drawLine(x-1,y+5,x+1,y+5);
		g.drawLine(x-2,y+4,x+2,y+4);
		g.drawLine(x-2,y+3,x+2,y+3);
		g.drawLine(x-3,y+2,x+3,y+2);
	   break;
	   case 3://ArrowRight
		g.drawLine(x+4,y,x+8,y);
		g.drawLine(x+6,y-1,x+6,y+1);
		g.drawLine(x+5,y-1,x+5,y+1);
		g.drawLine(x+4,y-2,x+4,y+2);
		g.drawLine(x+3,y-2,x+3,y+2);
		g.drawLine(x+2,y-3,x+2,y+3);
	   break;
	   case 4://ArrowLeft
		g.drawLine(x-4,y,x-8,y);
		g.drawLine(x-2,y-3,x-2,y+3);
		g.drawLine(x-3,y-2,x-3,y+2);
		g.drawLine(x-4,y-2,x-4,y+2);
		g.drawLine(x-5,y-1,x-5,y+1);
		g.drawLine(x-6,y-1,x-6,y+1); 
	  break;
          
            case 5://ArrowUpSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
                Polygon pH = new Polygon();
		pH.addPoint(x-2, y-2);
		pH.addPoint(x+2, y-2);
		pH.addPoint(x,y-7);
		g.drawPolygon(pH);
		g.fillPolygon(pH);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
        
          break;
          
          case 6://ArrowDownSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
                Polygon pJ = new Polygon();
		pJ.addPoint(x-2, y+2);
		pJ.addPoint(x+2, y+2);
		pJ.addPoint(x,y+7);
		g.drawPolygon(pJ);
		g.fillPolygon(pJ);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
	   break;
           
           case 7://ArrowRightSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
          	Polygon pK = new Polygon();
		pK.addPoint(x+2, y-2);
		pK.addPoint(x+2, y+2);
		pK.addPoint(x+7,y);
		g.drawPolygon(pK);
		g.fillPolygon(pK);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
	   
	   break;
           
           case 8://ArrowLeftSmooth
               g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
                Polygon pL = new Polygon();
		pL.addPoint(x-2, y-2);
		pL.addPoint(x-2, y+2);
		pL.addPoint(x-7,y);
		g.drawPolygon(pL);
		g.fillPolygon(pL);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
 
	   break;
          
	}		
    }  
    
    public static void addComponent(Container container, Component component, int gridx, int gridy,
	int gridwidth, int gridheight, int fill, int anchor) throws AWTException{
	    LayoutManager lm = container.getLayout();
	    if(!(lm instanceof GridBagLayout)){
		throw new AWTException ("Invalid layout"+lm);
	    }
	    else{
		GridBagConstraints gbc = new GridBagConstraints();
		gbc.gridx = gridx;
		gbc.gridy = gridy;
		gbc.gridwidth = gridwidth;
		gbc.gridheight = gridheight;
		gbc.fill = fill;
		gbc.anchor = anchor;
		((GridBagLayout)lm).setConstraints(component, gbc);
		container.add(component);
	    }
    }
    
  
    public static void  subscripter(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
    }
    
    public static void  subsubsub(String str1, String str2, String str3, String str4, String str5, String str6, 
                                  String str7, String str8, String str9, String str10,  Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str4,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str4) + 1;
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str5,x,y);
                x = x + fm.stringWidth(str5) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str6,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str6) + 1;
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str7,x,y);
                x = x + fm.stringWidth(str7) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str8,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str8) + 1;
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str9,x,y);
                x = x + fm.stringWidth(str9) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str10,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str10) + 1;
                
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterWavy(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
        
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize+2)); // Put tilde on top of symbol
                g.drawString("~",x,y-90*fm.getHeight()/200-2);  
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str3,x,y);
    }
    
    public static void  subscripterB(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.BOLD,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.BOLD,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.BOLD,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
    }
    
    public static void  subscripternew(String str0, String str1, String str2, String str3, String str4, String str5, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize+1));
		fm = g.getFontMetrics();
		g.drawString(str0,x,y);
		x = x + fm.stringWidth(str0) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
		x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("Serif",Font.ITALIC,fsize+3));
		fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                x = x + fm.stringWidth(str4) + 1;
		
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str5,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		
    }
    
    public static void  subscripternew2(String str0, String str00,String str1, String str2, String str3, String str4, 
                                        String str5, String str6, String str7, String str8, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
                g.setFont(new Font("Serif",Font.PLAIN | Font.BOLD,fsize));
		fm = g.getFontMetrics();
		g.drawString(str0,x,y);
		x = x + fm.stringWidth(str0) + 1;
                g.setFont(new Font("Serif",Font.ITALIC | Font.BOLD,fsize+3));
		fm = g.getFontMetrics();
		g.drawString(str00,x,y);
		x = x + fm.stringWidth(str00);
		g.setFont(new Font("Serif",Font.PLAIN | Font.BOLD,fsize-2));
		fm = g.getFontMetrics();
                y = y + fm.getHeight()/3;
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
                y = y - fm.getHeight()/3;
		g.setFont(new Font("Serif",Font.ITALIC | Font.BOLD,fsize+3));
		fm = g.getFontMetrics();
		g.drawString(str2,x,y);
		x = x + fm.stringWidth(str2);
                g.setFont(new Font("Serif",Font.PLAIN | Font.BOLD,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str3,x,y);
		x = x + fm.stringWidth(str3) + 1;
		y = y - fm.getHeight()/3;
		
                g.setFont(new Font("Serif",Font.PLAIN | Font.BOLD,fsize));
		fm = g.getFontMetrics();
                g.drawString(str4,x,y);
		x = x + fm.stringWidth(str4) + 2;
                
                g.setFont(new Font("Serif",Font.ITALIC | Font.BOLD,fsize+3));
		fm = g.getFontMetrics();
		g.drawString(str5,x,y);
                x = x + fm.stringWidth(str5) + 2;
		
                g.setFont(new Font("Serif",Font.PLAIN | Font.BOLD,fsize));
		fm = g.getFontMetrics();
                g.drawString(str6,x,y);
		x = x + fm.stringWidth(str6) + 2;
                
                g.setFont(new Font("Serif",Font.ITALIC | Font.BOLD,fsize+3));
		fm = g.getFontMetrics();
		g.drawString(str7,x,y);
                x = x + fm.stringWidth(str7) + 1;
		
                g.setFont(new Font("SanSerif",Font.PLAIN | Font.BOLD,fsize));
                fm = g.getFontMetrics();
		g.drawString(str8,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		
    }
    
    public static void  subscripter2types(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
                fm = g.getFontMetrics();
		g.drawString(str3,x,y);
    }


    public static void  subscripterCompact(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/4;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/4;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
    }

    public static void  subscripterSans(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }

    public static void  subscripterSansFrontBack(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.PLAIN,fsize+2));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		
                g.setFont(new Font("Serif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		
    }

    public static void  subscripterSansBackItalic(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		
                g.setFont(new Font("Serif",Font.ITALIC,fsize+1));
                fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		
    }
    
    public static void  subscripter4delta(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		
                g.setFont(new Font("Serif",Font.PLAIN,fsize+4));
		fm = g.getFontMetrics();
		g.drawString(str2,x,y);
		x = x + fm.stringWidth(str2) + 1;
		
                g.setFont(new Font("Serif",Font.PLAIN,fsize+2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str3,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str3) + 1;
                
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterSansItalic(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }

    public static void  subscripterSansItalic2(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize+2));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }

    public static void  subscripterSansItalic21(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		int sizeo;
                
                FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize+4));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		//y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		//y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterSansItalic22(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize+4));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
		fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }

    public static void  subscripterSansItalic23(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		int sizeo;
                
                FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		//y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		//y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
                sizeo = fm.stringWidth("000");
		g.drawString(str3,x+sizeo-fm.stringWidth(str3),y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterSansItalic4(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize+2));
		
                fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
                fm = g.getFontMetrics();
		
                y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
                x = x + fm.stringWidth(str2) + 1;
		
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterSansItalic6(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize+4));
		
                fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
                fm = g.getFontMetrics();
		
                y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
                x = x + fm.stringWidth(str2) + 1;
		
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterSansItalic3(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC | Font.BOLD,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subsubSansItalic3(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str4,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subsubsubSansItalic3(String str1, String str2, String str3, String str4, String str5, String str6, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC | Font.BOLD,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("Serif",Font.ITALIC | Font.BOLD,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str4,x,y);
                
                y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str4) + 1;
		g.setFont(new Font("Serif",Font.ITALIC | Font.BOLD,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str5,x,y);
                x = x + fm.stringWidth(str5) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str6,x,y);
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterSansItalic5(String str0, String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		g.drawString(str0,x,y);
		x = x + fm.stringWidth(str0) + 1;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterPhase(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.ITALIC,fsize+2));
		fm = g.getFontMetrics();
		g.drawString("L",x,y+2);
		x = x + fm.stringWidth("L") + 2;
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                
    }
    
    public static void  subscripterSansItalicNudge(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
                int nudge = 2;
		g.setFont(new Font("Serif",Font.ITALIC,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x+nudge,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterBold(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.BOLD,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  superscripter(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y - fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y + fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
    } 
    
    public static void  superscripterinsert(String str1, String str1b, String str1c, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
           
                g.setFont(new Font("Serif",Font.PLAIN,fsize+1));
		fm = g.getFontMetrics();
		g.drawString(str1b,x,y);
		x = x + fm.stringWidth(str1b) + 1;
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1c,x,y);
		x = x + fm.stringWidth(str1c) + 1;
                
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y - fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y + fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
		g.drawString(str3,x,y);
    }
    
    public static void  subsupspecial(String str1, String str2, String str3, String str4, String str5, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.ITALIC,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1);
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2);
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
		x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y - fm.getHeight()/3;
		g.drawString(str4,x,y);
		y = y + fm.getHeight()/3;
		x = x + fm.stringWidth(str4) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str5,x,y);
    } 
    
    public static void  subsupspecial2(String str1, String str2, String str3, String str4, String str5, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.ITALIC,fsize+2));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1);
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2);
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
		x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y - fm.getHeight()/3;
		g.drawString(str4,x,y);
		y = y + fm.getHeight()/3;
		x = x + fm.stringWidth(str4) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str5,x,y);
    }
    
    public static void  subsub(String str1, String str2, String str3, String str4, String str5, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1);
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2);
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
		x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str4,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str4) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str5,x,y);
    }
    
    public static void  subscripterInfinityOne(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		
                //create a symbol for "infinity".  JAVA 1.5 has a terrible rendition of the character
                //string str4 is not used
                g.setFont(new Font("Serif",Font.PLAIN,fsize+3));
                fm = g.getFontMetrics();
                g.setFont(new Font("Serif",Font.PLAIN,fsize+5));
                fm = g.getFontMetrics();
                g.drawString("o",x,y);
                g.drawString("o",x+5,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
    }
    
    public static void  subscripterInfinityTwo(String str1, String str2, String str3, String str4, String str5, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
		//create a symbol for "infinity".  JAVA 1.5 has a terrible rendition of the character
                //string str4 is not used
                
                g.setFont(new Font("Serif",Font.PLAIN,fsize+3));
                fm = g.getFontMetrics();
                g.drawString("o",x,y);
                g.drawString("o",x+5,y);
                
                x = x + fm.stringWidth("oo") + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str5,x,y);
    }

    
    public static void  SansMiditalic(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.ITALIC,fsize+1));
		fm = g.getFontMetrics();
		g.drawString(str2,x,y);
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str3,x,y);
    }
    
    public static void  SansMiditalicSuper(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
                
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y - fm.getHeight()/3;
		g.drawString(str2,x,y);
                x = x + fm.stringWidth(str2) + 1;
		y = y + fm.getHeight()/3;
		g.setFont(new Font("SanSerif",Font.ITALIC,fsize+1));
		fm = g.getFontMetrics();
		g.drawString(str3,x,y);
		x = x + fm.stringWidth(str3) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str4,x,y);
    }
    
    
    public static void  subscripterSanSym2(String str1, String str2, String str3, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                x = x + fm.stringWidth(str3) + 1;
                
		g.setFont(new Font("Serif",Font.PLAIN,fsize+1));
                fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    }
    
    public static void  subscripterSanSym3(String str1, String str2, String str3, String str3b, String str4, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
		fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("Serif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
                fm = g.getFontMetrics();
		g.drawString(str3,x,y);
                y = y - fm.getHeight()/3;
                x = x + fm.stringWidth(str3) + 1;
                
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str3b,x,y);
                x = x + fm.stringWidth(str3b) + 1;
                
               g.setFont(new Font("Serif",Font.PLAIN,fsize+2));
                fm = g.getFontMetrics();
		g.drawString(str4,x,y);
                g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		
    } 
    
    public static void  subscripterSymFirst2(String str1, String str2, String str3, Graphics g, int fsize, int x, int y){
		FontMetrics fm;
		g.setFont(new Font("Serif",Font.PLAIN,fsize+1));
                //g.setFont(new Font("Symbol",Font.PLAIN,fsize+1));
                fm = g.getFontMetrics();
		g.drawString(str1,x,y);
		x = x + fm.stringWidth(str1) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize-2));
		fm = g.getFontMetrics();
		y = y + fm.getHeight()/3;
		g.drawString(str2,x,y);
		y = y - fm.getHeight()/3;
		x = x + fm.stringWidth(str2) + 1;
		g.setFont(new Font("SanSerif",Font.PLAIN,fsize));
                fm = g.getFontMetrics();
		g.drawString(str3,x,y);
    }
    
    public static void drawCircle(int x, int y, int radius, Graphics g){
		Graphics2D g2d = (Graphics2D)g;
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
                
                g.drawOval(x-radius/2,y-radius/2,radius,radius);
                
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
    }
    
    public static void fillCircle(int x, int y, int radius, Graphics g){
            Graphics2D g2d = (Graphics2D)g;
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
        
            g.fillOval(x-radius/2,y-radius/2,radius,radius);
            
            g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_OFF);
    } 
}
