lastFlags = flags;
lastFlags = getFlags();
	protected char interpretExtendedScanCode(int scancode, int vk, boolean released) throws UnsupportedKeyException, DeadKeyException {		boolean deadKey = false;//		System.err.print("vk = "+vk);		switch(vk) {			case KeyEvent.VK_DEAD_CIRCUMFLEX:				lastDeadVK = KeyEvent.VK_DEAD_CIRCUMFLEX;				lastFlags = flags;				deadKey = true;				break;		}		if(deadKey) {//			System.err.println("Dead key pressed : vk="+vk+", flags="+flags);			throw new DeadKeyException();		} else {			try {				switch(lcharMap[scancode]) {					case 'a':						switch(lastDeadVK) {							case KeyEvent.VK_DEAD_CIRCUMFLEX:								if(lastFlags == InputEvent.SHIFT_DOWN_MASK) {									return '';								} else {									return '';								}							default:								throw new UnsupportedKeyException();						}					case 'e':						switch(lastDeadVK) {							case KeyEvent.VK_DEAD_CIRCUMFLEX:								if(lastFlags == InputEvent.SHIFT_DOWN_MASK) {									return '';								} else {									return '';								}							default:								throw new UnsupportedKeyException();						}					case 'i':						switch(lastDeadVK) {							case KeyEvent.VK_DEAD_CIRCUMFLEX:								if(lastFlags == InputEvent.SHIFT_DOWN_MASK) {									return '';								} else {									return '';								}							default:								throw new UnsupportedKeyException();						}					case 'o':						switch(lastDeadVK) {							case KeyEvent.VK_DEAD_CIRCUMFLEX:								if(lastFlags == InputEvent.SHIFT_DOWN_MASK) {									return '';								} else {									return '';								}							default:								throw new UnsupportedKeyException();						}					case 'u':						switch(lastDeadVK) {							case KeyEvent.VK_DEAD_CIRCUMFLEX:								if(lastFlags == InputEvent.SHIFT_DOWN_MASK) {									return '';								} else {									return '';								}							default:								throw new UnsupportedKeyException();						}					case 'y':						switch(lastDeadVK) {							case KeyEvent.VK_DEAD_CIRCUMFLEX:								if(lastFlags == InputEvent.SHIFT_DOWN_MASK) {									return '';								} else {									throw new UnsupportedKeyException();								}							default:								throw new UnsupportedKeyException();						}					default:						throw new UnsupportedKeyException();				}			} finally {				if(!released) {//					System.err.println("deadKey reset");					lastDeadVK = -1;					lastFlags = -1;				}			}		}	}