private static Map<String,String> initializeSTR2CODE()
	{
	   int num = 0;
	   int asciibase = 'A';

	   Map<String, String> retval = new HashMap<String, String>();

	   for (int xi = 0; xi < codechars.length; xi++)
	   {
		   retval.put(codechars[xi],
				      Character.toString((char) (num + asciibase)));

		   num++;

		   for (int yi = 0; yi < codechars.length; yi++)
		   {
			   retval.put(codechars[xi] + codechars[yi],
					      Character.toString((char) (num + asciibase)));
			   num++;
		   }
	   }

	   for (int xi = 0; xi < codechars.length; xi++)
	   {
		   for (int yi = 0; yi < codechars.length; yi++)
		   {
			   String m = retval.get(codechars[xi] + codechars[yi]);

			   for (int zi = 0; zi < codechars.length; zi++)
			   {
				   retval.put(codechars[xi]+codechars[yi]+codechars[zi],
						      m + retval.get(codechars[zi]));

				   for (int wi = 0; wi < codechars.length; wi++)
				   {
					   retval.put(codechars[xi]+codechars[yi]+codechars[zi]+codechars[wi],
							      m+retval.get(codechars[zi]+codechars[wi]));
                       //\\\\
                       for(int ui =0; ui < codechars.length; ui++){
                            retval.put(codechars[xi]+codechars[yi]+codechars[zi]+codechars[wi]+codechars[ui],
							           m+retval.get(codechars[zi]+codechars[wi])+retval.get(codechars[ui]));
                            for(int vi=0; vi < codechars.length; vi++){
                                 retval.put(codechars[xi]+codechars[yi]+codechars[zi]+codechars[wi]+codechars[ui]+codechars[vi],
							                m+retval.get(codechars[zi]+codechars[wi])+retval.get(codechars[ui]+codechars[vi]));
                            }
                       }
                       //\\\
				   }
			   }
		   }
	   }

	   return retval;
	}