private static byte translate(char character) {
		switch (character) {
		case '+':
			return 62;
		case '/':
			return 63;
		default:
			if ('a' <= character && character <= 'z') {
				return (byte) (character - 'a' + 26);
			} else if ('A' <= character && character <= 'Z') {
				return (byte) (character - 'A');
			} else if ('0' <= character && character <= '9') {
				return (byte) (character - '0' + 52);
			}
		case '=':
			throw new IllegalArgumentException(
					"could not translate character '" + character + "'");
		}
	}