#################################################
#   Copyright (C) 2005 by Brian Arnold
#   brian@ae6gn.com
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the
#   Free Software Foundation, Inc.,
#   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#################################################

# Form implementation generated from reading ui file 'enigma.ui'
#
# Created: Thu Oct 27 19:14:31 2005
#      by: The QtRuby User Interface Compiler (rbuic)
#
# WARNING! All changes made in this file will be lost!


require 'Korundum'
require 'rotors.rb'
require 'textwindow.rb'
require 'xmlsettings.rb'
require 'stecker.rb'
require 'options.rb'

class KEnigma < KDE::MainWindow

    slots 'languageChange()',
    'fileNew()',
    'fileOpen()',
    'fileSave()',
    'fileSaveAs()',
    'rotorInt1()',
    'helpContents()',
    'helpAbout()',
    'rotorDec1()',
    'keyClickedA()',
    'viewTextWindow()',
    'settingsOptions()',
    'changeStatusbar(text)',
    'rotorInt2()',
    'rotorDec2()',
    'rotorInt3()',
    'rotorInt4()',
    'rotorDec3()',
    'rotorDec4()',
    'rotor4Changed()',
    'rotor3Changed()',
    'rotor2Changed()',
    'rotor1Changed()',
    'refChanged()',
    'keyBindings()',
    'keyClickedB()',
    'keyClickedC()',
    'keyClickedD()',
    'keyClickedE()',
    'keyClickedF()',
    'keyClickedH()',
    'keyClickedN()',
    'keyClickedM()',
    'keyClickedL()',
    'keyClickedK()',
    'keyClickedJ()',
    'keyClickedG()',
    'keyClickedI()',
    'keyClickedO()',
    'keyClickedP()',
    'keyClickedQ()',
    'keyClickedR()',
    'keyClickedS()',
    'keyClickedT()',
    'keyClickedU()',
    'keyClickedV()',
    'keyClickedW()',
    'keyClickedX()',
    'keyClickedY()',
    'keyClickedZ()',
    'viewStecker()',
    'keyReleased()',
    'helpAboutKDE()'

    attr_reader :kActiveLabel2_3_2
    attr_reader :kActiveLabel1
    attr_reader :ledD
    attr_reader :ledT
    attr_reader :keyV
    attr_reader :keyU
    attr_reader :ledA
    attr_reader :ledQ
    attr_reader :keyN
    attr_reader :keyB
    attr_reader :keyM
    attr_reader :ledM
    attr_reader :ledY
    attr_reader :keyK
    attr_reader :keyL
    attr_reader :keyZ
    attr_reader :keyH
    attr_reader :keyG
    attr_reader :ledC
    attr_reader :keyJ
    attr_reader :keyE
    attr_reader :ledN
    attr_reader :keyY
    attr_reader :ledS
    attr_reader :ledE
    attr_reader :keyS
    attr_reader :ledX
    attr_reader :ledK
    attr_reader :ledU
    attr_reader :ledW
    attr_reader :keyA
    attr_reader :ledO
    attr_reader :keyC
    attr_reader :keyP
    attr_reader :ledJ
    attr_reader :ledH
    attr_reader :keyR
    attr_reader :ledP
    attr_reader :ledR
    attr_reader :keyX
    attr_reader :ledB
    attr_reader :keyT
    attr_reader :keyI
    attr_reader :keyD
    attr_reader :ledL
    attr_reader :ledI
    attr_reader :ledZ
    attr_reader :keyW
    attr_reader :ledG
    attr_reader :ledV
    attr_reader :keyQ
    attr_reader :ledF
    attr_reader :kActiveLabel2
    attr_reader :rotorDec4
    attr_reader :rotorInt1
    attr_reader :rotorDec1
    attr_reader :kActiveLabel2_2
    attr_reader :rotorInt3
    attr_reader :rotorDec3
    attr_reader :rotorInt2
    attr_reader :rotorDec2
    attr_reader :kActiveLabel2_3
    attr_reader :kActiveLabel22
    attr_reader :rotorInt4
    attr_reader :keyF
    attr_reader :Ref
    attr_reader :keyO
    attr_reader :rotorPos4
    attr_reader :rotorPos3
    attr_reader :rotorPos1
    attr_reader :rotorPos2
    attr_reader :kActiveLabel21
    attr_reader :kActiveLabel6
    attr_reader :kActiveLabel6_2
    attr_reader :kActiveLabel7
    attr_reader :Rotor1
    attr_reader :Rotor4
    attr_reader :Rotor3
    attr_reader :kActiveLabel8
    attr_reader :Rotor2

    @@image0_data = [
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
    0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30,
    0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9, 0x87, 0x00, 0x00, 0x0e,
    0xa6, 0x49, 0x44, 0x41, 0x54, 0x68, 0x81, 0xbd, 0x59, 0x6f, 0x6c, 0x1b,
    0xe7, 0x7d, 0x7e, 0xe4, 0x30, 0xc9, 0xa9, 0x61, 0xba, 0x57, 0x8b, 0xdc,
    0x9e, 0x3a, 0x2e, 0x3b, 0xb5, 0x2a, 0xaa, 0x73, 0xd5, 0x8d, 0x97, 0xa9,
    0x80, 0x2e, 0x50, 0x01, 0x33, 0x61, 0x07, 0x97, 0x51, 0x3b, 0x97, 0x99,
    0xb3, 0x99, 0x9e, 0x81, 0x86, 0x9e, 0xd7, 0x98, 0x9a, 0xb0, 0x7a, 0x74,
    0x86, 0x05, 0x4a, 0x3e, 0x78, 0xb2, 0x3e, 0x78, 0x8a, 0x3e, 0x08, 0xa5,
    0x96, 0xa9, 0xa0, 0x56, 0x08, 0xa5, 0x5a, 0x34, 0xa5, 0xd5, 0xd5, 0x61,
    0xbc, 0xd6, 0x06, 0xe5, 0xc2, 0x19, 0xe5, 0x42, 0x28, 0xe5, 0xcd, 0x19,
    0xa5, 0xce, 0xc9, 0x28, 0xc3, 0x71, 0x49, 0x56, 0x71, 0x28, 0x46, 0x55,
    0x29, 0x46, 0x96, 0xfb, 0xec, 0xc3, 0x7b, 0x94, 0x44, 0x89, 0xb6, 0x9c,
    0xd8, 0xd9, 0x0f, 0x38, 0xbc, 0x77, 0xbc, 0xf7, 0xee, 0x7e, 0xff, 0x9e,
    0xdf, 0x3f, 0x82, 0x24, 0xee, 0xf6, 0xa1, 0x69, 0xc6, 0xa7, 0x5c, 0x1d,
    0x99, 0x03, 0x81, 0xa3, 0xa9, 0x9f, 0xa4, 0xc6, 0xf8, 0x2d, 0xad, 0xc9,
    0x54, 0x01, 0xdc, 0xf3, 0x61, 0x7c, 0xcb, 0x86, 0xbb, 0x44, 0x4f, 0x3c,
    0x75, 0xc4, 0x36, 0x3f, 0x3f, 0xff, 0xb8, 0xae, 0x3f, 0xe6, 0x9e, 0xe8,
    0x9a, 0xfa, 0xf2, 0xa8, 0x7d, 0xf6, 0x33, 0x47, 0xbe, 0xba, 0x03, 0xcf,
    0x7f, 0x6f, 0xf6, 0x46, 0x5d, 0x7d, 0xe3, 0x85, 0xcb, 0x6f, 0x9e, 0x1f,
    0xae, 0xa9, 0xa9, 0x21, 0xc9, 0xdf, 0xde, 0xad, 0x6f, 0x02, 0xc0, 0x1d,
    0x6b, 0xc0, 0x68, 0x8d, 0x3d, 0xec, 0xef, 0x0a, 0xfd, 0x6d, 0xfe, 0x1c,
    0xcf, 0x84, 0x46, 0x38, 0xcf, 0x0c, 0x99, 0xbc, 0x48, 0x49, 0x0b, 0x24,
    0xe7, 0x48, 0xcf, 0xfe, 0xd0, 0x8f, 0x14, 0xbb, 0x78, 0x18, 0x80, 0xed,
    0x6e, 0x5b, 0xe0, 0x03, 0x3d, 0xa4, 0x37, 0x1b, 0xdb, 0xfd, 0x5d, 0x3d,
    0x7f, 0x52, 0x1c, 0xe4, 0x4b, 0xa1, 0x91, 0x64, 0x96, 0x79, 0x32, 0x3e,
    0x91, 0x27, 0x49, 0xe6, 0x17, 0x8a, 0x72, 0xcd, 0xcb, 0x35, 0x79, 0x31,
    0xcf, 0x60, 0x2f, 0xf3, 0xaa, 0x66, 0x74, 0x90, 0x04, 0x6c, 0xca, 0x27,
    0x15, 0x9b, 0xf2, 0x09, 0x00, 0xf7, 0x00, 0xa8, 0xf9, 0x7f, 0x15, 0xc0,
    0xbb, 0xc7, 0xf7, 0x48, 0x6a, 0x24, 0xf3, 0x0f, 0xb1, 0x53, 0xfc, 0x0f,
    0x2e, 0x90, 0x89, 0x29, 0x4b, 0xd3, 0xc5, 0x0d, 0xeb, 0x9c, 0xb5, 0x66,
    0xe4, 0x12, 0x1a, 0x25, 0x5d, 0x1d, 0x99, 0xef, 0xa8, 0xaa, 0xd6, 0x1d,
    0x6d, 0x4f, 0xfc, 0x8f, 0xde, 0xe2, 0x7a, 0x05, 0xc0, 0xf6, 0xbb, 0x61,
    0x91, 0x2d, 0x37, 0x04, 0xba, 0x82, 0x0f, 0xe4, 0x8f, 0x16, 0x9f, 0x0c,
    0x8f, 0xc4, 0xbe, 0x4f, 0xf2, 0x72, 0xf2, 0x62, 0xbe, 0x42, 0xc3, 0x65,
    0x2a, 0x6e, 0xd0, 0x7c, 0x26, 0x63, 0x5d, 0xcf, 0x15, 0xc9, 0x22, 0xe9,
    0x3f, 0x1c, 0x5b, 0xf1, 0xee, 0xe9, 0xa6, 0xff, 0x60, 0x1f, 0x03, 0x07,
    0xf3, 0x25, 0xc5, 0x2e, 0xfe, 0x14, 0xc0, 0x03, 0x77, 0x6a, 0x85, 0x9b,
    0xde, 0x10, 0x76, 0x51, 0x13, 0xec, 0x0a, 0x7e, 0x85, 0xe4, 0x05, 0x5e,
    0xe1, 0x92, 0xe4, 0x86, 0x95, 0xb4, 0xbc, 0x41, 0xf3, 0x0b, 0x1b, 0x2c,
    0x70, 0xc5, 0x5a, 0xd3, 0x64, 0x71, 0x92, 0x0c, 0x3e, 0x17, 0x25, 0xcf,
    0x91, 0xe1, 0xe1, 0x18, 0xe3, 0x1d, 0x89, 0xef, 0x02, 0xf8, 0x18, 0x80,
    0x7b, 0x3f, 0x14, 0x01, 0x0c, 0xa7, 0xb1, 0x8d, 0xe4, 0xf7, 0x32, 0x99,
    0x8d, 0x5c, 0x57, 0x32, 0x5f, 0x2c, 0x96, 0x2d, 0xc0, 0xaa, 0x16, 0x48,
    0xa7, 0xe5, 0xf3, 0xe1, 0xb1, 0x34, 0xf3, 0xfd, 0x64, 0xec, 0x64, 0x82,
    0x24, 0x19, 0x19, 0x89, 0xe6, 0xd4, 0x7a, 0xd5, 0x0d, 0xa0, 0xf6, 0x4e,
    0xac, 0x70, 0xcb, 0x9b, 0x7d, 0xfd, 0xa1, 0xe7, 0xab, 0x73, 0x5f, 0x29,
    0xc4, 0x26, 0x0b, 0x94, 0x65, 0xce, 0x54, 0xae, 0xdd, 0xfd, 0xa9, 0x8a,
    0x7d, 0xde, 0xdd, 0xde, 0x7e, 0x00, 0xbf, 0x73, 0x27, 0x58, 0xd8, 0x76,
    0xab, 0x10, 0x7b, 0xf6, 0xcc, 0xa9, 0x1f, 0x4f, 0xbf, 0x3e, 0x9b, 0xab,
    0x7a, 0xf3, 0x3a, 0x80, 0x7b, 0x01, 0x2c, 0x59, 0x3a, 0xbc, 0x0e, 0xe0,
    0x41, 0x60, 0xe2, 0xb5, 0x29, 0x60, 0x05, 0x98, 0x7d, 0x23, 0x0b, 0x34,
    0x00, 0xd9, 0xb7, 0xe6, 0xe5, 0xfa, 0xf6, 0x12, 0x84, 0xd8, 0x81, 0x57,
    0xcf, 0x64, 0x81, 0x07, 0x81, 0xf9, 0xb7, 0x97, 0x60, 0x9a, 0x27, 0xdc,
    0xb0, 0xe1, 0x53, 0x1f, 0x6e, 0x1e, 0x98, 0x62, 0x64, 0xd5, 0xa7, 0x6f,
    0x66, 0x81, 0xb2, 0xe6, 0xc7, 0xc9, 0xf4, 0x48, 0x9a, 0x7d, 0xfd, 0x7d,
    0xe4, 0x45, 0xca, 0x83, 0x5c, 0xc3, 0xc2, 0x04, 0x99, 0x9f, 0x20, 0x13,
    0xe7, 0x52, 0xe4, 0x82, 0xc4, 0x82, 0xd6, 0xa4, 0x7f, 0x03, 0x80, 0x1d,
    0xc0, 0xb6, 0x0f, 0x62, 0x81, 0x2d, 0x37, 0x04, 0x0f, 0x07, 0xbf, 0x44,
    0xf2, 0xbd, 0x62, 0x65, 0xd0, 0x59, 0x63, 0x7e, 0x59, 0x1e, 0x91, 0xd1,
    0x08, 0xb9, 0x40, 0xfa, 0x0f, 0xfa, 0xc9, 0x0c, 0x19, 0x1d, 0x8b, 0x92,
    0x03, 0x64, 0xfc, 0xb4, 0xf4, 0xf9, 0xbc, 0x85, 0x89, 0x9e, 0x81, 0x14,
    0xfb, 0x06, 0xc9, 0xd0, 0x40, 0x94, 0xc5, 0x5e, 0xd2, 0x68, 0x75, 0x9d,
    0x07, 0xf0, 0x59, 0x7c, 0xc0, 0x52, 0x63, 0xcb, 0x0d, 0x9a, 0x43, 0xfb,
    0xe3, 0xc8, 0x68, 0xec, 0x8d, 0x5b, 0x59, 0x20, 0xfa, 0x72, 0x54, 0x9e,
    0x5f, 0x92, 0x16, 0xe8, 0xe9, 0xed, 0x91, 0x42, 0x8d, 0x44, 0x58, 0x3c,
    0x5d, 0x64, 0x64, 0x24, 0x2a, 0x37, 0xce, 0x91, 0xcc, 0x93, 0xc1, 0xa3,
    0x64, 0x72, 0x30, 0x4f, 0xc3, 0xe9, 0xa2, 0xb0, 0xab, 0x37, 0x00, 0xfc,
    0x04, 0xc0, 0x67, 0xef, 0x9a, 0x00, 0x00, 0xb6, 0x29, 0x8a, 0x68, 0xd5,
    0x34, 0xe3, 0xb8, 0xd9, 0xea, 0xbb, 0x9a, 0x7f, 0x81, 0xd7, 0x53, 0xd3,
    0x65, 0x44, 0x56, 0x32, 0x5f, 0x2c, 0x92, 0x1c, 0x22, 0x93, 0x93, 0x49,
    0xa9, 0xe1, 0xa3, 0x3d, 0xf4, 0xee, 0xf1, 0x32, 0x76, 0x32, 0x46, 0xa6,
    0xc9, 0xf0, 0x70, 0x98, 0xe9, 0xc3, 0x69, 0xc6, 0xc7, 0xe5, 0xfd, 0xd4,
    0xa5, 0x22, 0x7d, 0x87, 0x48, 0x28, 0x82, 0x00, 0xd6, 0x1f, 0x71, 0x00,
    0x7f, 0x84, 0xf7, 0x99, 0xa1, 0x37, 0x31, 0x2e, 0x84, 0xfa, 0x84, 0xde,
    0xec, 0xfa, 0x76, 0xcc, 0x9d, 0xca, 0xf9, 0xf6, 0xf6, 0x30, 0x35, 0x5c,
    0x64, 0xcf, 0xd1, 0xb0, 0xf4, 0xf3, 0x9b, 0x44, 0xd4, 0xbe, 0xfe, 0x3e,
    0x79, 0xb2, 0x40, 0x72, 0x82, 0xd4, 0x34, 0x8d, 0x61, 0x67, 0x98, 0xc1,
    0xae, 0x20, 0x99, 0x26, 0x83, 0x87, 0x83, 0x52, 0xfb, 0x0b, 0x24, 0x27,
    0x49, 0xc5, 0x2e, 0x18, 0x6a, 0x0a, 0x51, 0x6f, 0xd2, 0x69, 0x38, 0x0d,
    0x0a, 0xb1, 0x2a, 0xcc, 0x59, 0x00, 0x7f, 0xf0, 0x7e, 0xdc, 0xa9, 0x86,
    0x24, 0x0e, 0xf8, 0x0f, 0xd4, 0x36, 0xa8, 0x8d, 0x7f, 0x76, 0xe1, 0xc2,
    0xcc, 0x3e, 0x40, 0x98, 0xea, 0xf6, 0x86, 0x8f, 0x2a, 0xa2, 0x0e, 0xc7,
    0xea, 0x3b, 0x31, 0x6c, 0x1f, 0xc5, 0x91, 0xfa, 0x7d, 0x78, 0x75, 0xfb,
    0x14, 0x9e, 0xf8, 0xd2, 0x23, 0x9b, 0x82, 0xc0, 0xf0, 0xbf, 0x0e, 0xe3,
    0xc0, 0xde, 0x03, 0x80, 0x0d, 0x58, 0xfa, 0xe6, 0x12, 0x76, 0x7c, 0x73,
    0x07, 0x0a, 0x85, 0x02, 0x84, 0x10, 0x98, 0x7a, 0x7a, 0x0a, 0x63, 0x8e,
    0x31, 0x64, 0x2f, 0x67, 0xe1, 0xf9, 0xea, 0x3e, 0x3c, 0xe2, 0x68, 0x44,
    0xc3, 0x1f, 0x36, 0xa0, 0x51, 0x6b, 0x44, 0xe1, 0x5a, 0x01, 0x4b, 0x2b,
    0x4b, 0x00, 0x80, 0x3a, 0x51, 0x07, 0x45, 0x51, 0x30, 0xf3, 0x8b, 0x19,
    0x14, 0x0a, 0x85, 0x7f, 0x06, 0xf0, 0x1c, 0x80, 0xdf, 0x90, 0xbc, 0xb1,
    0x65, 0x14, 0x4a, 0xf4, 0x27, 0x1a, 0x38, 0xc7, 0x1f, 0x93, 0xbc, 0x91,
    0x9c, 0x24, 0x39, 0x4d, 0xf6, 0x1d, 0x8f, 0x90, 0x93, 0x64, 0x74, 0x34,
    0x2e, 0xb5, 0x3e, 0x29, 0x15, 0x9c, 0x98, 0xdc, 0xa0, 0xfa, 0xbc, 0xd4,
    0x38, 0xd3, 0xf2, 0xd2, 0xbf, 0xdf, 0xcf, 0x68, 0x7b, 0x94, 0x91, 0xe1,
    0x08, 0x99, 0x27, 0x63, 0x63, 0x31, 0xf2, 0x12, 0xd9, 0xfd, 0x6c, 0x37,
    0x99, 0x21, 0x7d, 0x7b, 0x7d, 0x0c, 0x3b, 0xc3, 0xd4, 0x9b, 0x75, 0xa6,
    0x86, 0x53, 0xec, 0x7e, 0xae, 0x9b, 0x89, 0xe3, 0x09, 0x1a, 0x2d, 0x06,
    0x35, 0x87, 0x46, 0xd7, 0x4e, 0x17, 0x35, 0x4d, 0x2b, 0x02, 0x78, 0x06,
    0x80, 0xed, 0x76, 0x22, 0x13, 0x32, 0x57, 0x32, 0xcf, 0x90, 0x64, 0x3a,
    0x2d, 0x7d, 0x3c, 0x3e, 0x9e, 0x24, 0xd3, 0x64, 0xfc, 0xb4, 0xf4, 0xd9,
    0xcc, 0x15, 0xe9, 0x37, 0xe5, 0x5a, 0x67, 0x23, 0x16, 0xc2, 0x43, 0xe1,
    0x35, 0x4c, 0x2c, 0xaf, 0x61, 0x21, 0x3e, 0x1e, 0x27, 0x47, 0xc9, 0xee,
    0xe7, 0xba, 0xc9, 0x01, 0xb9, 0x1a, 0xad, 0x06, 0x8d, 0x16, 0x83, 0xec,
    0x27, 0x43, 0x03, 0x21, 0x7a, 0x76, 0x79, 0xe4, 0x6f, 0x4e, 0x83, 0xa2,
    0x5e, 0x50, 0x08, 0x41, 0xb3, 0xcd, 0xa4, 0xd1, 0x62, 0xcc, 0x02, 0x78,
    0x0a, 0xc0, 0x7d, 0x5b, 0xe1, 0x01, 0x24, 0xc3, 0xab, 0x71, 0x7c, 0x4a,
    0xfa, 0x69, 0x74, 0x34, 0x2e, 0xaf, 0xcb, 0xa1, 0xb3, 0xec, 0xfb, 0xe7,
    0x58, 0xf9, 0xbb, 0x45, 0x3d, 0x47, 0x7b, 0x2a, 0xf6, 0xc5, 0xc7, 0xe3,
    0xe4, 0x45, 0x32, 0x3c, 0x18, 0x26, 0x97, 0xc9, 0xf8, 0xe9, 0x38, 0xa3,
    0xed, 0x51, 0x1a, 0x4e, 0x83, 0xc9, 0xc1, 0x24, 0xbb, 0x5f, 0xe8, 0xa6,
    0x5a, 0xaf, 0x56, 0x80, 0x58, 0xad, 0x57, 0xa9, 0x35, 0x69, 0x34, 0xdb,
    0x4c, 0xfa, 0x0f, 0xfa, 0x19, 0x6a, 0x09, 0xff, 0x0a, 0xc0, 0x5f, 0x6c,
    0x29, 0x40, 0x71, 0xa1, 0xf8, 0xed, 0x0a, 0x0b, 0x9c, 0x4e, 0x92, 0xa3,
    0x64, 0x74, 0x2c, 0x6e, 0x69, 0x3c, 0x4d, 0x16, 0xc9, 0xe8, 0x58, 0x82,
    0x1c, 0x21, 0xa3, 0xa7, 0x92, 0xdc, 0x44, 0x43, 0x64, 0x62, 0x5c, 0xc6,
    0xfb, 0xc4, 0x44, 0x92, 0xcc, 0x5b, 0xcf, 0x91, 0x4c, 0x9c, 0x4b, 0xd0,
    0xdb, 0xe1, 0xa5, 0xe1, 0x34, 0x68, 0xb6, 0x9a, 0x74, 0xb9, 0x3d, 0x54,
    0x6c, 0x4a, 0x65, 0x04, 0xb2, 0x81, 0xaa, 0x43, 0xa5, 0xd9, 0x6e, 0xd2,
    0xb3, 0xcb, 0x43, 0xcf, 0x2e, 0x0f, 0x7d, 0x7b, 0x5c, 0x74, 0xb5, 0x69,
    0x19, 0xdd, 0x81, 0xbf, 0x56, 0x05, 0x9a, 0x6e, 0x65, 0x81, 0xe7, 0xcb,
    0x16, 0x48, 0xae, 0x5a, 0x80, 0xe4, 0x34, 0x19, 0x3b, 0x95, 0x20, 0xaf,
    0x90, 0xe1, 0xa1, 0x18, 0x8b, 0xe7, 0xc8, 0xe0, 0xb3, 0x21, 0x16, 0xc7,
    0x29, 0x31, 0xb1, 0x2c, 0x43, 0x24, 0xcf, 0x49, 0xf7, 0x48, 0x0e, 0x26,
    0x19, 0xe8, 0x0a, 0x30, 0x7f, 0xaa, 0xc8, 0xc8, 0x48, 0x84, 0x9c, 0x26,
    0x03, 0x5d, 0x01, 0x46, 0xda, 0x22, 0x34, 0x5b, 0x4d, 0xaa, 0xaa, 0x4a,
    0x4d, 0xd3, 0x18, 0x71, 0x6a, 0x54, 0x14, 0x50, 0x51, 0x14, 0xaa, 0xaa,
    0xca, 0x50, 0x73, 0x88, 0x8a, 0x4d, 0x91, 0xd7, 0xf5, 0x2a, 0x35, 0x87,
    0x46, 0xbf, 0x5b, 0x90, 0x93, 0x26, 0x79, 0xca, 0x47, 0x5e, 0x8a, 0x33,
    0x7a, 0x58, 0x7d, 0x3d, 0xd6, 0x84, 0x4e, 0xc8, 0xba, 0xa9, 0x22, 0x42,
    0xd5, 0xf8, 0x0f, 0xfa, 0x1f, 0x1b, 0xfe, 0xd6, 0xf0, 0x2b, 0xb3, 0xb3,
    0xd9, 0x8f, 0x34, 0x36, 0x36, 0x60, 0xfc, 0xcc, 0x14, 0x1e, 0x6b, 0x7a,
    0x04, 0x83, 0xff, 0x7e, 0x02, 0x9d, 0x78, 0x12, 0x2f, 0x16, 0x46, 0xf1,
    0x64, 0x61, 0x1f, 0x8e, 0xbc, 0xd1, 0x89, 0xa9, 0xff, 0x3c, 0x0f, 0xa0,
    0x84, 0xa9, 0xa7, 0x93, 0x78, 0xfe, 0xda, 0x11, 0xcc, 0xcc, 0xcc, 0x20,
    0x77, 0x79, 0x16, 0x50, 0x6a, 0x01, 0x00, 0xaa, 0x50, 0x51, 0xd7, 0x50,
    0x07, 0x00, 0xc8, 0x66, 0xb3, 0x28, 0x2d, 0x96, 0x30, 0xbf, 0x38, 0x8f,
    0xd2, 0x62, 0x09, 0xb9, 0x6b, 0x39, 0x74, 0x1f, 0x0e, 0xa0, 0x41, 0xb9,
    0x80, 0xd1, 0x57, 0xb2, 0xc8, 0x2e, 0xd6, 0xa2, 0x51, 0x53, 0x01, 0xd4,
    0xe2, 0xec, 0x4f, 0xc7, 0x81, 0x95, 0x12, 0x00, 0x40, 0xd7, 0x14, 0x4c,
    0xcf, 0x4e, 0x03, 0x4b, 0xf3, 0x40, 0xed, 0x23, 0x58, 0x7a, 0x7b, 0x16,
    0xb5, 0xdb, 0x1b, 0x71, 0xe2, 0x1f, 0x1f, 0x5d, 0xee, 0x7d, 0xe9, 0xfc,
    0xd7, 0x2e, 0xe4, 0x10, 0x05, 0xb0, 0x42, 0xca, 0xb8, 0x0f, 0x51, 0x2f,
    0x94, 0xd8, 0xa9, 0xf8, 0x4b, 0x24, 0x6f, 0xac, 0x62, 0xe0, 0xe5, 0x38,
    0x39, 0x41, 0x06, 0x0e, 0xf6, 0x30, 0xd6, 0x91, 0xa2, 0xe6, 0xd0, 0xa9,
    0x28, 0xd2, 0xec, 0xa9, 0xa1, 0x14, 0xc3, 0x43, 0x61, 0xc6, 0xdc, 0x31,
    0x1a, 0x4e, 0x83, 0xb1, 0x8e, 0x18, 0x3d, 0x6e, 0x0f, 0xa3, 0xed, 0x51,
    0xea, 0xcd, 0x3a, 0x35, 0x4d, 0xa3, 0x62, 0x17, 0x54, 0x14, 0x41, 0xcd,
    0xa1, 0xd2, 0x68, 0xd1, 0x18, 0x3c, 0x68, 0x92, 0xa7, 0x13, 0x0c, 0x0f,
    0xf6, 0x90, 0xf9, 0x34, 0x83, 0x7b, 0x35, 0xc6, 0xdc, 0x31, 0x09, 0xe2,
    0x66, 0x8d, 0xba, 0xa6, 0x30, 0xd6, 0x02, 0x6a, 0x02, 0xcc, 0x0c, 0x68,
    0x9b, 0x5d, 0xd4, 0x22, 0x6f, 0x0b, 0xfe, 0xc5, 0xaa, 0x9b, 0x56, 0x7b,
    0x08, 0x90, 0x84, 0xde, 0xa4, 0x77, 0x84, 0x87, 0x23, 0xef, 0x4a, 0x9f,
    0x4d, 0x59, 0xc9, 0xa7, 0x87, 0x9a, 0x66, 0x54, 0xf8, 0xaa, 0xd9, 0x66,
    0x32, 0x31, 0x91, 0xb0, 0x7c, 0xd4, 0x67, 0x61, 0x26, 0xce, 0x9e, 0xa3,
    0x3d, 0xf4, 0xed, 0xf7, 0x51, 0x6f, 0xd1, 0x65, 0x34, 0xb1, 0x2b, 0x34,
    0x5b, 0x55, 0xfa, 0x77, 0x6b, 0x8c, 0x8d, 0x85, 0xe8, 0xdf, 0xef, 0x65,
    0x6c, 0x24, 0x48, 0x0e, 0xa5, 0x19, 0x19, 0xf4, 0xd3, 0xe5, 0x54, 0x28,
    0x84, 0xa0, 0xae, 0x09, 0x46, 0x8f, 0xea, 0xe4, 0x72, 0x80, 0x99, 0xd3,
    0x41, 0x72, 0xd8, 0xcb, 0xc8, 0xb3, 0x37, 0x11, 0x20, 0x1d, 0xa6, 0xd7,
    0x89, 0xb3, 0x00, 0x3e, 0xb3, 0x49, 0x00, 0x00, 0x8f, 0x9b, 0xad, 0xe6,
    0x3b, 0xe1, 0xa1, 0x30, 0x39, 0x49, 0x76, 0xbf, 0xd0, 0xc3, 0xe4, 0x60,
    0x92, 0xae, 0x9d, 0x26, 0x85, 0x7d, 0x2d, 0xe5, 0xfb, 0x9f, 0xf6, 0x33,
    0x3d, 0x9a, 0xa6, 0xd9, 0x66, 0x92, 0xcb, 0x64, 0xe0, 0x50, 0x80, 0xaa,
    0x5a, 0x19, 0x4d, 0x00, 0x30, 0xd8, 0xe5, 0x27, 0x8b, 0x45, 0x7a, 0x77,
    0x19, 0x2c, 0x9e, 0xce, 0x90, 0x63, 0x7d, 0xe4, 0x98, 0x8b, 0xae, 0x9d,
    0x06, 0x43, 0x4d, 0x6b, 0xfb, 0xc3, 0x2f, 0x98, 0x92, 0xb9, 0xf5, 0xfd,
    0xc4, 0x32, 0xc9, 0x01, 0x6f, 0x25, 0xf3, 0xf9, 0x08, 0x39, 0xa7, 0xd3,
    0xdb, 0xa6, 0xbe, 0xa7, 0x28, 0xe2, 0x98, 0x85, 0x85, 0x6d, 0x2c, 0x67,
    0xe2, 0x9a, 0x9a, 0x9a, 0xc7, 0x8d, 0x56, 0xe3, 0xfb, 0xe6, 0xe7, 0xcd,
    0x87, 0x0a, 0x8b, 0x05, 0x94, 0x4a, 0x25, 0x94, 0x7e, 0x5d, 0xc2, 0xd2,
    0xca, 0x12, 0x66, 0x7f, 0x31, 0x8b, 0xcb, 0x57, 0x2f, 0x03, 0x00, 0x8c,
    0x56, 0x03, 0x42, 0x08, 0xe8, 0x9f, 0xd6, 0x51, 0x57, 0x5f, 0x87, 0xde,
    0x9e, 0xde, 0xaa, 0xc9, 0x31, 0x70, 0xc8, 0x8f, 0x17, 0x7b, 0x3b, 0x51,
    0x5b, 0x18, 0xc3, 0xe0, 0x77, 0x66, 0xe0, 0xb9, 0xa6, 0xe0, 0xc9, 0xb3,
    0xe3, 0x50, 0x56, 0x72, 0x68, 0x50, 0x80, 0xd2, 0x0a, 0x90, 0xcd, 0x01,
    0x53, 0xd3, 0xdd, 0xc0, 0xf6, 0x63, 0x9b, 0x5f, 0xf0, 0xdd, 0x4e, 0x64,
    0x1b, 0xeb, 0xd0, 0x60, 0x1e, 0x03, 0x66, 0x0e, 0x00, 0x8e, 0xf3, 0x38,
    0xf6, 0xf5, 0x19, 0x0c, 0xbf, 0xa6, 0x01, 0x4a, 0xed, 0x3b, 0x97, 0xdf,
    0x9c, 0xf9, 0x1a, 0x80, 0x33, 0x00, 0xae, 0xaf, 0x0e, 0xb6, 0x82, 0x08,
    0x62, 0x2c, 0x3b, 0x86, 0xf9, 0xc5, 0x79, 0x14, 0x0a, 0x05, 0x74, 0x96,
    0x3a, 0x71, 0x6c, 0xf1, 0x18, 0x0a, 0x8b, 0x85, 0xd5, 0xf7, 0xce, 0xbe,
    0x39, 0x8b, 0x13, 0xed, 0x27, 0x70, 0xca, 0x7e, 0x0a, 0xc6, 0x59, 0xa3,
    0xe2, 0x9b, 0xc2, 0x2e, 0xa0, 0x08, 0x05, 0x75, 0xf6, 0x3a, 0xc0, 0x06,
    0xd4, 0xfe, 0xbc, 0x0e, 0x8f, 0xfe, 0xdd, 0x20, 0x66, 0x2e, 0x17, 0x70,
    0xa4, 0x04, 0x2c, 0x8d, 0x68, 0xc0, 0xa7, 0x83, 0xc0, 0xe7, 0x5f, 0x04,
    0xce, 0xbf, 0x08, 0xac, 0x34, 0x00, 0x3f, 0x18, 0x03, 0x02, 0x9b, 0xf9,
    0x1f, 0xbf, 0x76, 0x1e, 0x46, 0x2e, 0x0b, 0xe4, 0x2e, 0x00, 0xce, 0x2c,
    0x4e, 0x74, 0xcf, 0xe0, 0xd1, 0x19, 0xa0, 0xf7, 0xea, 0x65, 0x34, 0x36,
    0xe9, 0x0f, 0xa9, 0x0e, 0xf5, 0x1b, 0xb9, 0xab, 0xb9, 0xff, 0x02, 0xf0,
    0xab, 0xb2, 0x0b, 0xb9, 0x35, 0x87, 0x76, 0xcd, 0x70, 0x1a, 0xd4, 0x9a,
    0x34, 0xaa, 0xaa, 0x4a, 0xc5, 0xae, 0xac, 0x02, 0xb7, 0x7c, 0xe8, 0xcd,
    0x3a, 0x5d, 0x3b, 0x5d, 0xf4, 0x74, 0x78, 0x2a, 0x12, 0x91, 0xe6, 0xd0,
    0x68, 0x38, 0x0d, 0x7a, 0xdc, 0x1e, 0x7a, 0xf7, 0xf8, 0xe8, 0x71, 0xbb,
    0x08, 0xdb, 0xda, 0x73, 0x3e, 0xb7, 0x20, 0xaf, 0x84, 0x2a, 0xbc, 0xa2,
    0xb8, 0x90, 0x27, 0x07, 0xbd, 0x4c, 0x4f, 0x58, 0x85, 0x60, 0xd1, 0xca,
    0x2f, 0x69, 0x2f, 0x79, 0x08, 0x0c, 0xee, 0xd5, 0xc8, 0x7c, 0x80, 0xf9,
    0x8b, 0x32, 0xd3, 0xa7, 0x46, 0xfd, 0x4c, 0xef, 0x52, 0x28, 0x14, 0xd0,
    0x70, 0x1a, 0x45, 0x00, 0x4f, 0x03, 0x50, 0x56, 0x31, 0x20, 0xec, 0xe2,
    0x1d, 0x21, 0xc4, 0x26, 0xa6, 0xd7, 0x1f, 0x46, 0xab, 0xc1, 0xe8, 0xce,
    0x28, 0xf5, 0x26, 0x9d, 0x6a, 0xbd, 0x4a, 0x21, 0x04, 0x15, 0x9b, 0x8c,
    0xdf, 0x66, 0x9b, 0x49, 0x97, 0xdb, 0xc5, 0x48, 0x6b, 0x84, 0xae, 0x16,
    0xc1, 0x4c, 0xbf, 0xca, 0x9e, 0xfd, 0x2a, 0xa3, 0xcd, 0x60, 0x5f, 0x97,
    0x5e, 0x1d, 0x98, 0x17, 0x23, 0xe4, 0xa5, 0x04, 0x99, 0x0e, 0x91, 0x4c,
    0x93, 0x53, 0x2e, 0xf2, 0xb4, 0x60, 0xc0, 0xad, 0x54, 0xdf, 0x3f, 0xd9,
    0xc7, 0x58, 0xb3, 0x42, 0xd5, 0xa1, 0x51, 0x08, 0xf1, 0x6f, 0x00, 0x7e,
    0xbf, 0x2c, 0xc0, 0x0e, 0x00, 0x6f, 0xdd, 0x8c, 0xf1, 0xf5, 0x02, 0x78,
    0x76, 0x79, 0x68, 0x38, 0x65, 0xfd, 0xe2, 0xda, 0xe9, 0xaa, 0x04, 0xb1,
    0x0d, 0x0c, 0xee, 0x51, 0x25, 0x33, 0xe9, 0x88, 0xd4, 0xdc, 0xc9, 0x20,
    0xd9, 0x6b, 0x30, 0x3d, 0x15, 0xdb, 0xc0, 0x4d, 0x91, 0x64, 0x80, 0xfe,
    0x36, 0x90, 0x87, 0x35, 0xa6, 0x5f, 0x36, 0xc8, 0x41, 0x83, 0xc1, 0x9d,
    0x60, 0x66, 0xb7, 0x42, 0xe6, 0x53, 0x55, 0x65, 0xf0, 0xef, 0x54, 0xa9,
    0x3a, 0x34, 0x2a, 0x76, 0xe5, 0x12, 0x80, 0x2f, 0x94, 0x05, 0xb8, 0x17,
    0xc0, 0x0f, 0x6f, 0x47, 0x80, 0xd4, 0x50, 0x8a, 0xde, 0x0e, 0x2f, 0x93,
    0x03, 0x49, 0x7a, 0xf7, 0xf8, 0x2a, 0xa2, 0x94, 0x26, 0xc0, 0xaa, 0x4d,
    0xc3, 0x54, 0x84, 0xbc, 0x98, 0x5c, 0x57, 0x5b, 0x45, 0xa5, 0x90, 0x43,
    0x0a, 0xf3, 0xc7, 0x15, 0xf2, 0xa4, 0x0c, 0xc9, 0xbc, 0x24, 0x97, 0xf8,
    0x80, 0x8b, 0x4c, 0xe7, 0xd7, 0xda, 0xd6, 0x32, 0x65, 0xba, 0x99, 0x72,
    0x2b, 0xd4, 0x9a, 0x74, 0x02, 0x78, 0x03, 0xc0, 0x17, 0xd7, 0x37, 0x33,
    0xed, 0x00, 0xde, 0xb9, 0x95, 0x00, 0x66, 0xab, 0x49, 0xdf, 0x5e, 0x1f,
    0x3d, 0x6e, 0x0f, 0x8d, 0x56, 0x93, 0x2e, 0xa7, 0xca, 0xc0, 0x6e, 0x41,
    0x1e, 0xd6, 0x19, 0xd8, 0x25, 0x18, 0x68, 0x03, 0xf3, 0xe9, 0x78, 0x55,
    0xcd, 0xc5, 0x8e, 0x9b, 0xe4, 0x42, 0x9a, 0x4c, 0x77, 0x93, 0xf4, 0x32,
    0x3d, 0xaa, 0xd2, 0xd3, 0x0c, 0xc6, 0x47, 0x7c, 0x37, 0xd9, 0xef, 0x92,
    0x27, 0xcb, 0xb2, 0xc6, 0xe2, 0x95, 0x20, 0x99, 0x51, 0xe9, 0xef, 0xd0,
    0x29, 0xea, 0x35, 0x02, 0xf8, 0xdf, 0x8d, 0x02, 0xd4, 0x00, 0xf0, 0x03,
    0x58, 0xb8, 0x99, 0x00, 0xaa, 0x43, 0x65, 0xcc, 0x1d, 0x23, 0x6c, 0xa0,
    0xd9, 0x2c, 0x98, 0x2a, 0x6b, 0x6e, 0x3a, 0x4a, 0x16, 0xc9, 0xc4, 0x80,
    0x49, 0xa6, 0xd3, 0x9b, 0xb9, 0x99, 0x0b, 0x31, 0x7f, 0x5c, 0xa1, 0xaf,
    0x5d, 0x21, 0xa7, 0xc3, 0xe4, 0x88, 0x8b, 0x1c, 0x37, 0xe9, 0x69, 0x81,
    0xd4, 0x74, 0x35, 0x9a, 0x4b, 0x32, 0x75, 0xd2, 0x4f, 0x32, 0x43, 0x9e,
    0xf3, 0x92, 0x69, 0x9d, 0xa1, 0x2e, 0x83, 0xa1, 0xa6, 0x50, 0x99, 0x9f,
    0x57, 0x01, 0x38, 0x37, 0xb6, 0x94, 0xf7, 0x03, 0x38, 0x04, 0xe0, 0xdd,
    0x6a, 0x02, 0x08, 0x21, 0xe8, 0xdd, 0xed, 0x25, 0x00, 0x46, 0xca, 0x1a,
    0xda, 0x40, 0xf1, 0x01, 0xcf, 0x66, 0xcd, 0xcd, 0xa9, 0x0c, 0xee, 0x02,
    0x39, 0xea, 0x23, 0xaf, 0xc8, 0x06, 0x3f, 0x33, 0x9d, 0x20, 0x17, 0xfa,
    0x18, 0x3d, 0x6a, 0x56, 0x7d, 0x4f, 0x72, 0x40, 0x50, 0xaf, 0x07, 0x5d,
    0x2d, 0xa0, 0xdf, 0xad, 0xd1, 0xeb, 0x36, 0xd6, 0xe3, 0xed, 0x2a, 0x80,
    0xbf, 0x04, 0xf0, 0xf0, 0xa6, 0x9e, 0x18, 0xc0, 0x47, 0x00, 0x74, 0x55,
    0x73, 0x27, 0x61, 0x17, 0x8c, 0x77, 0xc4, 0x09, 0x80, 0xbc, 0x52, 0x1d,
    0x64, 0x9c, 0x4b, 0x59, 0x4c, 0xa5, 0xc9, 0x09, 0xa9, 0x39, 0x5f, 0x1b,
    0x58, 0x1c, 0x0a, 0x6d, 0xf6, 0x69, 0x92, 0x2c, 0xe6, 0x99, 0x3c, 0xd9,
    0x2d, 0xcf, 0x17, 0xa2, 0x24, 0xf3, 0xe4, 0x94, 0xce, 0x4c, 0x87, 0x85,
    0x2b, 0x4d, 0xa7, 0xd6, 0x5c, 0xd1, 0x37, 0xbf, 0x0d, 0xe0, 0x08, 0x80,
    0x16, 0x00, 0x0f, 0x55, 0x9b, 0x48, 0xd4, 0x58, 0x96, 0xf8, 0x73, 0x00,
    0xb9, 0xf5, 0x02, 0x28, 0x8a, 0x42, 0x97, 0xdb, 0x45, 0x45, 0x51, 0x98,
    0x18, 0xad, 0xee, 0xbb, 0xa9, 0x21, 0x8d, 0x86, 0x03, 0x0c, 0x1f, 0x56,
    0xc9, 0x51, 0x17, 0x93, 0x43, 0x26, 0xbb, 0x3b, 0x04, 0x23, 0xcf, 0x55,
    0x0f, 0xa5, 0xc5, 0x4b, 0x7d, 0x64, 0x97, 0xce, 0xd4, 0xe9, 0x00, 0xb9,
    0xec, 0x67, 0x6a, 0x44, 0x67, 0xf7, 0x6e, 0x85, 0x9a, 0x2a, 0x68, 0x38,
    0x4d, 0xea, 0xcd, 0xfa, 0xfa, 0xfe, 0x61, 0x0e, 0xc0, 0xdf, 0x43, 0xce,
    0x91, 0x3e, 0x0e, 0xe0, 0xde, 0x9b, 0x8d, 0x55, 0x6a, 0x20, 0x7b, 0xd2,
    0xa7, 0x00, 0xbc, 0xb9, 0x5e, 0x88, 0xb0, 0x33, 0x4c, 0xa3, 0xd5, 0x64,
    0x66, 0x50, 0x27, 0x97, 0x2d, 0xc0, 0x96, 0x3b, 0xba, 0x8b, 0x26, 0x39,
    0x0c, 0x46, 0x8f, 0x1a, 0xf2, 0xfa, 0x92, 0x15, 0x3a, 0xa7, 0x22, 0xe4,
    0x84, 0x8b, 0xa9, 0xf1, 0xca, 0x64, 0xc6, 0x85, 0x38, 0xb9, 0x10, 0xa6,
    0x6e, 0x07, 0x55, 0x3b, 0xa8, 0xab, 0x60, 0x48, 0x55, 0xe4, 0xb4, 0xa2,
    0xd5, 0xa4, 0xa8, 0xaf, 0x18, 0xbd, 0xcc, 0x00, 0xe8, 0xb4, 0x34, 0xff,
    0x71, 0x00, 0xf7, 0xf3, 0x56, 0x83, 0x2d, 0xcb, 0x9d, 0xee, 0x03, 0xe0,
    0x06, 0x90, 0x5a, 0x0d, 0x95, 0x0e, 0x8d, 0x1e, 0xb7, 0x87, 0x8a, 0x0d,
    0xec, 0x3b, 0x6c, 0x30, 0x3f, 0x19, 0x24, 0xe9, 0x67, 0xe6, 0xa4, 0x49,
    0x1e, 0x14, 0x12, 0x98, 0x55, 0x28, 0x73, 0x29, 0x49, 0xf6, 0xbb, 0x48,
    0x5a, 0xd8, 0xc8, 0xf4, 0x90, 0x34, 0x19, 0x3e, 0x04, 0x2a, 0xb6, 0x72,
    0xa6, 0x97, 0xf9, 0x45, 0xd3, 0xb4, 0x8d, 0xf8, 0x7b, 0xd5, 0x52, 0x66,
    0x33, 0xe4, 0x48, 0xfe, 0xbe, 0x55, 0x3e, 0x6f, 0x26, 0xc0, 0x3a, 0x4b,
    0xd4, 0x00, 0x68, 0x03, 0xf0, 0x33, 0x00, 0x54, 0x6c, 0xd2, 0x8d, 0x34,
    0x2b, 0x1a, 0xe8, 0xaa, 0x42, 0xb3, 0x59, 0x61, 0xd8, 0x21, 0xcd, 0xec,
    0x72, 0x2a, 0x64, 0xbe, 0x7a, 0x28, 0x0d, 0x77, 0x09, 0xf2, 0x9c, 0x8b,
    0xa9, 0x93, 0x5e, 0xf2, 0x62, 0x98, 0x3d, 0x7b, 0x15, 0xea, 0x0e, 0xd9,
    0xa9, 0x45, 0x77, 0x46, 0xa9, 0x69, 0x5a, 0x45, 0x5e, 0x01, 0xf0, 0x4b,
    0x00, 0xff, 0x04, 0xe0, 0x0b, 0x00, 0x1a, 0x01, 0xd4, 0x61, 0xc3, 0x24,
    0x7b, 0xeb, 0xc9, 0x97, 0xd5, 0x54, 0x5b, 0x96, 0x78, 0xa7, 0x1c, 0x4e,
    0x3d, 0xbb, 0xaa, 0xf4, 0xb6, 0x00, 0x75, 0xad, 0x6c, 0x01, 0x2b, 0x6b,
    0x2d, 0x5b, 0x61, 0x72, 0xda, 0xc7, 0xfc, 0x6e, 0x2b, 0x18, 0x28, 0xa0,
    0xee, 0x10, 0x52, 0xe3, 0xad, 0x26, 0x8d, 0x16, 0xa3, 0xa2, 0x76, 0x02,
    0x50, 0x04, 0xf0, 0x0a, 0x80, 0xfd, 0x96, 0xcb, 0xfc, 0x1e, 0x64, 0x23,
    0xb3, 0x69, 0xe0, 0x75, 0x7b, 0xe3, 0x3b, 0x69, 0x85, 0x7b, 0x00, 0xbc,
    0x50, 0xfe, 0x88, 0xd1, 0x62, 0xd0, 0x6c, 0x37, 0x37, 0x09, 0xa1, 0xd8,
    0xc0, 0x68, 0xbf, 0x55, 0xcf, 0x17, 0xad, 0x99, 0xe8, 0xb4, 0x97, 0x9c,
    0x16, 0x34, 0x35, 0xab, 0xf0, 0x6b, 0x35, 0x69, 0xb4, 0x6e, 0x02, 0x68,
    0xf9, 0x98, 0x84, 0x1c, 0x6c, 0xb5, 0x01, 0xf8, 0x24, 0x80, 0x7a, 0x2b,
    0xa8, 0x54, 0x9d, 0x11, 0x95, 0xb5, 0x7b, 0x5b, 0x54, 0x53, 0x53, 0x23,
    0x2c, 0x93, 0x1e, 0x04, 0x00, 0xb3, 0xdd, 0x44, 0x9d, 0xa8, 0xc3, 0xd4,
    0xcf, 0xa7, 0x90, 0xbb, 0x96, 0x03, 0x56, 0xe4, 0x3e, 0x61, 0x03, 0x82,
    0x4f, 0x6b, 0x78, 0xbe, 0x7d, 0x07, 0xa6, 0x1f, 0x04, 0x76, 0xbc, 0x91,
    0xc5, 0xbe, 0xb3, 0x25, 0x64, 0x57, 0x1a, 0x51, 0x28, 0x64, 0x91, 0xbd,
    0x9a, 0xad, 0xd8, 0x0f, 0xe0, 0xb7, 0x90, 0xa5, 0xc1, 0x0f, 0x01, 0xfc,
    0x14, 0x32, 0xcb, 0x2e, 0x42, 0x26, 0xd5, 0xf7, 0x78, 0x8b, 0x09, 0xdd,
    0xfb, 0x12, 0xc0, 0x12, 0x42, 0x05, 0xd0, 0xab, 0xd8, 0x14, 0xbf, 0xaa,
    0xa9, 0x18, 0x6e, 0x19, 0xc6, 0x68, 0xdd, 0x28, 0x1e, 0x9b, 0x79, 0x0c,
    0xbd, 0x85, 0x5e, 0x60, 0x05, 0x58, 0xc2, 0x12, 0x8e, 0xac, 0x00, 0x83,
    0x36, 0x40, 0x55, 0x1b, 0x50, 0x57, 0xdf, 0x00, 0xef, 0x35, 0x1f, 0x8e,
    0xbc, 0xf9, 0x37, 0x28, 0x14, 0x64, 0xc3, 0x64, 0xd1, 0x0a, 0x80, 0xff,
    0x86, 0x1c, 0xec, 0x9e, 0x81, 0x2c, 0x28, 0xe7, 0x01, 0xfc, 0x06, 0xc0,
    0x12, 0xc9, 0xeb, 0x5b, 0xf2, 0xf3, 0x3e, 0x2d, 0x50, 0x06, 0xb5, 0x03,
    0xc0, 0x33, 0x8a, 0x5d, 0xf9, 0xba, 0xd1, 0x62, 0xfc, 0xae, 0xf1, 0x39,
    0x03, 0x75, 0x6a, 0x1d, 0x8e, 0x89, 0x63, 0xe8, 0xbc, 0xdc, 0x09, 0xac,
    0x00, 0x85, 0xc5, 0x02, 0x84, 0x5d, 0x20, 0x77, 0xad, 0x80, 0xec, 0x5b,
    0xb3, 0x28, 0x2d, 0x96, 0x90, 0xcd, 0x59, 0x9a, 0x97, 0x0c, 0xfe, 0x0c,
    0xc0, 0x6b, 0xd6, 0xf1, 0x4b, 0x48, 0xbf, 0x5f, 0x80, 0xfc, 0xcf, 0xe7,
    0x3a, 0x6f, 0x97, 0xb1, 0xdb, 0xc1, 0xc0, 0x4d, 0xf0, 0xf0, 0x51, 0x00,
    0x5f, 0x51, 0x6c, 0xca, 0x8f, 0xb4, 0x26, 0xed, 0xd7, 0xa9, 0x91, 0x94,
    0x9c, 0x13, 0x4d, 0x93, 0x7d, 0xbd, 0x7d, 0xcc, 0xbc, 0x9c, 0xa1, 0xff,
    0xa0, 0x9f, 0xb1, 0x5d, 0x31, 0xea, 0x4d, 0x3a, 0x85, 0x5d, 0x2c, 0x02,
    0x78, 0x1d, 0xc0, 0x20, 0x80, 0xbf, 0x82, 0x2c, 0x1e, 0x35, 0x00, 0x9f,
    0x80, 0xec, 0x71, 0xb7, 0x1c, 0x23, 0xde, 0x31, 0x06, 0x36, 0x58, 0x63,
    0x1b, 0x64, 0x19, 0xfe, 0x31, 0xc8, 0xb9, 0xfe, 0x17, 0x85, 0x5d, 0x7c,
    0x4e, 0xa8, 0xe2, 0x81, 0x5a, 0x5b, 0x6d, 0xcd, 0x52, 0x69, 0xa9, 0x26,
    0x77, 0x2d, 0xc7, 0xd2, 0x62, 0x29, 0x07, 0x99, 0x0c, 0x93, 0x00, 0xae,
    0x40, 0x46, 0xb2, 0x77, 0x01, 0x94, 0x00, 0xbc, 0x07, 0xa0, 0x44, 0x72,
    0xa5, 0xfa, 0x57, 0x6e, 0x83, 0x8f, 0x0f, 0x2a, 0x80, 0x25, 0x44, 0x39,
    0x63, 0xdf, 0x0f, 0x40, 0x81, 0xac, 0xa3, 0xee, 0x87, 0xf5, 0x27, 0x05,
    0xd6, 0x22, 0xcb, 0x75, 0x00, 0xcb, 0xeb, 0x98, 0x5e, 0x86, 0x1c, 0x4e,
    0x6d, 0x3d, 0x3e, 0xdf, 0x8a, 0x87, 0x3b, 0x11, 0x60, 0xf5, 0x25, 0x6b,
    0x82, 0xd8, 0xb0, 0xc6, 0x7c, 0x99, 0x08, 0x19, 0x65, 0x56, 0x00, 0xdc,
    0xb8, 0x1b, 0x4c, 0xaf, 0xa7, 0xff, 0x03, 0x82, 0x9e, 0x26, 0x83, 0x95,
    0x73, 0xcc, 0xc6, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae,
    0x42, 0x60, 0x82 ].pack "C*"


    @@image4_data = [
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
    0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
    0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff, 0x61, 0x00, 0x00, 0x02,
    0x40, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0xc5, 0x93, 0x41, 0x48, 0x93,
    0x71, 0x18, 0xc6, 0x7f, 0x9b, 0x9f, 0xf0, 0x1f, 0x78, 0x98, 0xa0, 0xe8,
    0x40, 0xe1, 0xfb, 0x20, 0xa1, 0x99, 0xe8, 0x92, 0x09, 0x11, 0x31, 0x6a,
    0xe0, 0x45, 0x91, 0xca, 0x9d, 0x42, 0x22, 0x44, 0x0c, 0x6c, 0x74, 0xab,
    0x2e, 0x9e, 0xa4, 0x75, 0x49, 0xa5, 0x43, 0x1b, 0xb4, 0xd0, 0x83, 0xd4,
    0x2e, 0x92, 0x11, 0x51, 0x97, 0xc0, 0x4f, 0x59, 0xb9, 0x84, 0xcc, 0xa3,
    0x42, 0x85, 0x86, 0x81, 0xec, 0x30, 0x64, 0xc4, 0xf0, 0xfb, 0x23, 0x5f,
    0x7b, 0x3b, 0x7c, 0x09, 0xea, 0xd5, 0x43, 0xef, 0xe5, 0xc7, 0xfb, 0xc2,
    0xcb, 0xfb, 0xf0, 0xf0, 0xbc, 0x3e, 0x11, 0xe1, 0x34, 0xe5, 0x3f, 0xd5,
    0x36, 0x60, 0xb4, 0x3f, 0x07, 0x56, 0x0b, 0x24, 0x2f, 0x5c, 0x24, 0xb3,
    0x0a, 0x44, 0xc1, 0x59, 0xb3, 0xb9, 0x17, 0x89, 0xdf, 0x4d, 0xad, 0xf1,
    0x98, 0x0e, 0x60, 0x69, 0xe1, 0x01, 0x6e, 0xe2, 0xa9, 0x2e, 0xcf, 0x42,
    0x65, 0x04, 0x5d, 0x99, 0xf2, 0xa8, 0xa7, 0xa9, 0xa9, 0x6b, 0x8c, 0x51,
    0x6b, 0xc4, 0xc8, 0xef, 0xd8, 0xd4, 0x62, 0xe1, 0xec, 0xd8, 0x50, 0x8d,
    0x27, 0xec, 0xdd, 0xc2, 0xb3, 0xf8, 0x44, 0xab, 0xb2, 0x7e, 0x3b, 0xc6,
    0xf6, 0xb7, 0xce, 0xb8, 0xde, 0xcb, 0x6d, 0xaa, 0xea, 0xad, 0xcd, 0xca,
    0x41, 0x06, 0x0e, 0x5c, 0xf4, 0xfe, 0x12, 0xaa, 0x9a, 0x84, 0x74, 0x56,
    0x08, 0x0f, 0x0b, 0xe1, 0xac, 0x60, 0x0e, 0x2f, 0x92, 0xce, 0x48, 0xb4,
    0xf9, 0x86, 0x14, 0x17, 0x37, 0x44, 0x64, 0x5f, 0x44, 0x44, 0x64, 0x30,
    0x2b, 0x12, 0xbc, 0x24, 0xc5, 0x60, 0x64, 0x26, 0x1a, 0x3c, 0x2b, 0xa8,
    0x96, 0x49, 0x54, 0x70, 0x0f, 0xd4, 0x38, 0xfe, 0xa9, 0x55, 0x1b, 0x0c,
    0x70, 0x56, 0x6d, 0x02, 0xc4, 0xdb, 0x52, 0x9f, 0xec, 0x9c, 0x15, 0xa5,
    0xc9, 0x51, 0x40, 0x00, 0x0a, 0xbf, 0x60, 0xe1, 0x36, 0x58, 0x57, 0xb6,
    0x9b, 0xb4, 0x3b, 0x92, 0xc3, 0xcd, 0xb4, 0x29, 0x92, 0x68, 0x77, 0x1a,
    0x05, 0x10, 0xce, 0x0a, 0xe1, 0xd1, 0x15, 0xd2, 0x59, 0xa9, 0x37, 0x6f,
    0xca, 0x72, 0xf8, 0xad, 0xc8, 0xc3, 0x82, 0x77, 0x79, 0x66, 0xdd, 0xe3,
    0xab, 0x0d, 0x4f, 0x8c, 0x39, 0x2a, 0x12, 0x3c, 0x23, 0xcb, 0xaa, 0x65,
    0xb2, 0xfe, 0x50, 0x81, 0xe7, 0x81, 0x3f, 0x46, 0x7e, 0xcb, 0xce, 0xd2,
    0x60, 0x5d, 0xed, 0x6c, 0x85, 0xd0, 0x65, 0xf8, 0x90, 0x87, 0xa1, 0x0e,
    0x98, 0xc8, 0x43, 0xa9, 0x1d, 0xbe, 0xac, 0x43, 0xe0, 0x3a, 0x7c, 0xff,
    0x6c, 0x9b, 0xee, 0xcf, 0xed, 0x90, 0x3e, 0xf8, 0xf8, 0xe6, 0xa8, 0x07,
    0xa9, 0xe6, 0x39, 0x91, 0xf3, 0x59, 0x91, 0x95, 0x5d, 0x91, 0xc1, 0xd7,
    0x22, 0x2b, 0x3b, 0x1e, 0x17, 0x8f, 0xb0, 0x6f, 0x5e, 0xc4, 0x2c, 0x88,
    0x10, 0x79, 0x29, 0x4a, 0xed, 0xa6, 0x50, 0xe3, 0xf8, 0xcc, 0xe1, 0xc5,
    0x3e, 0x88, 0x2f, 0x14, 0x4d, 0x47, 0x59, 0xcd, 0x01, 0x70, 0x01, 0x83,
    0x63, 0x74, 0x5c, 0x28, 0x56, 0x40, 0x1f, 0xce, 0x8a, 0xc0, 0x8b, 0x94,
    0xa6, 0x5c, 0x4e, 0xd4, 0x84, 0xc6, 0xe6, 0xe6, 0x4b, 0x2e, 0x2d, 0x46,
    0x6f, 0x2d, 0x95, 0x1f, 0x50, 0xe9, 0x82, 0xd2, 0x16, 0xe8, 0x2e, 0xa8,
    0x6c, 0x79, 0x7d, 0x79, 0x0b, 0x54, 0x8f, 0xb7, 0x58, 0xd7, 0x03, 0xec,
    0x43, 0x5d, 0x6f, 0xcc, 0xd0, 0xcb, 0xf9, 0x73, 0x3e, 0x73, 0xec, 0xab,
    0x1b, 0x88, 0x74, 0xd7, 0xa0, 0xbd, 0x64, 0x39, 0x47, 0x52, 0x16, 0x38,
    0xa1, 0xe4, 0x18, 0x0d, 0xd8, 0x7e, 0xc2, 0x1f, 0xff, 0xbd, 0x8e, 0xee,
    0x52, 0xb3, 0x86, 0xf4, 0x00, 0x58, 0x0d, 0x30, 0x3b, 0x00, 0xed, 0x21,
    0x8f, 0x56, 0xe3, 0xbf, 0xf9, 0x49, 0x86, 0x20, 0x68, 0x01, 0xc5, 0x54,
    0xc9, 0x67, 0x5e, 0x7b, 0x77, 0x87, 0xda, 0xfe, 0x49, 0x78, 0xef, 0xc7,
    0xe9, 0x07, 0x77, 0x01, 0xdc, 0x04, 0x5a, 0xe7, 0xc0, 0x1d, 0x42, 0xeb,
    0x59, 0x94, 0x3b, 0x82, 0xd6, 0x19, 0x70, 0x93, 0x68, 0x3d, 0x85, 0x32,
    0x92, 0x94, 0xcb, 0x8f, 0xaa, 0x54, 0xf4, 0x7d, 0xdf, 0x7f, 0xff, 0xc6,
    0xbf, 0xa5, 0xde, 0x32, 0x3c, 0x24, 0x4a, 0xba, 0x26, 0x00, 0x00, 0x00,
    0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ].pack "C*"

    @@image5_data = [
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
    0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
    0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff, 0x61, 0x00, 0x00, 0x02,
    0x29, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0xc5, 0x93, 0x4f, 0x48, 0x54,
    0x51, 0x14, 0xc6, 0x7f, 0xa3, 0xb3, 0xb8, 0xc1, 0x04, 0xaf, 0x10, 0x1a,
    0x17, 0xc2, 0xd3, 0x95, 0x06, 0x52, 0x84, 0x0b, 0x47, 0x68, 0x13, 0x2d,
    0x4a, 0x05, 0x17, 0xaf, 0x56, 0xae, 0x4a, 0x44, 0x70, 0x28, 0x8a, 0x99,
    0xda, 0x8c, 0xae, 0xd4, 0x85, 0x4d, 0xae, 0xf4, 0x6d, 0xc2, 0xd9, 0x14,
    0x2d, 0x82, 0x71, 0x55, 0x6d, 0x04, 0xa5, 0xb1, 0x1c, 0xc5, 0xca, 0x81,
    0xe8, 0x1f, 0x32, 0x4c, 0x61, 0xa1, 0x63, 0xd9, 0xf8, 0xb0, 0xc7, 0x78,
    0x19, 0x1e, 0x9e, 0x16, 0x6f, 0xa2, 0x88, 0x5a, 0xb9, 0xe8, 0x6e, 0x7e,
    0x7c, 0xe7, 0x72, 0xef, 0x39, 0x7c, 0x87, 0x2f, 0x20, 0x22, 0x1c, 0xe4,
    0xd4, 0x1c, 0xe8, 0x35, 0x10, 0x3c, 0x7e, 0x87, 0xc1, 0xbd, 0xe5, 0x6c,
    0x92, 0xb6, 0x8e, 0x1a, 0xfd, 0x0c, 0x38, 0x09, 0x3c, 0x7d, 0x0c, 0x5e,
    0x17, 0x5a, 0xcf, 0x80, 0x67, 0xa1, 0xf5, 0x7d, 0x94, 0xd7, 0x8b, 0xd6,
    0x29, 0xa0, 0x0f, 0xad, 0x6d, 0x70, 0x2e, 0xef, 0xe3, 0x0c, 0xdf, 0x08,
    0x84, 0xfb, 0x17, 0x8b, 0x2d, 0x6d, 0x1d, 0xc7, 0x1a, 0x1b, 0x80, 0x36,
    0xd0, 0x2f, 0x40, 0xfd, 0x64, 0x3b, 0xe8, 0xe5, 0x3f, 0x58, 0xad, 0xe7,
    0x26, 0x37, 0xc9, 0x25, 0xd5, 0x16, 0x66, 0x4a, 0xbc, 0x91, 0xac, 0x88,
    0x88, 0xc8, 0xe2, 0xba, 0x4f, 0x59, 0xff, 0xbb, 0x7e, 0xb9, 0x51, 0xd5,
    0x5f, 0x44, 0xca, 0x22, 0x82, 0x39, 0xed, 0x11, 0xbe, 0x38, 0x97, 0x8b,
    0x4c, 0x88, 0x24, 0x57, 0xfc, 0xbb, 0xa9, 0x7f, 0x71, 0x55, 0x64, 0xa4,
    0x22, 0x12, 0x9b, 0x15, 0x29, 0x89, 0x48, 0xcb, 0xf5, 0x37, 0x82, 0x4a,
    0xe4, 0x30, 0xc7, 0xa5, 0xd3, 0xe8, 0x7e, 0xb4, 0x37, 0x9d, 0x15, 0x89,
    0xcd, 0x8b, 0x14, 0x4a, 0x22, 0x83, 0xb3, 0x3e, 0x63, 0xb3, 0x22, 0x85,
    0x5d, 0x5f, 0xa7, 0xd7, 0x44, 0x8c, 0x09, 0x11, 0x23, 0x2b, 0x62, 0x0c,
    0x8b, 0x10, 0x2a, 0xed, 0x41, 0xac, 0x33, 0x10, 0x3e, 0x97, 0x06, 0x6d,
    0x8d, 0x6a, 0x63, 0x3e, 0xd1, 0x78, 0xfe, 0x0c, 0xf5, 0x47, 0x7c, 0x2f,
    0x58, 0x02, 0x22, 0x3e, 0x3f, 0xb8, 0xf0, 0x6e, 0xbb, 0x6a, 0xbb, 0x07,
    0xdc, 0x03, 0xf2, 0xd1, 0x31, 0x88, 0x0f, 0xd5, 0xd6, 0x35, 0x3f, 0xc0,
    0xab, 0xcc, 0xcc, 0x07, 0x9d, 0xae, 0xa6, 0xed, 0x6f, 0xd9, 0x13, 0xdf,
    0xbb, 0x1a, 0xf8, 0x9a, 0x01, 0xb7, 0x15, 0x36, 0x33, 0xf0, 0xa9, 0x05,
    0x3e, 0xbe, 0xad, 0x7e, 0x56, 0x04, 0x1e, 0x02, 0xaf, 0xa2, 0x77, 0x21,
    0x7e, 0x15, 0x6c, 0x6a, 0x55, 0x53, 0x2b, 0x60, 0xa1, 0xcb, 0xa9, 0x0c,
    0xc5, 0x9e, 0x76, 0xa7, 0xb0, 0x6a, 0xba, 0x47, 0xeb, 0x29, 0xe6, 0xc1,
    0xd1, 0xe0, 0xe6, 0x81, 0x7d, 0x60, 0x03, 0x98, 0x03, 0x16, 0xe2, 0x19,
    0xb8, 0x76, 0x09, 0x6c, 0x0d, 0x50, 0xa3, 0x82, 0x16, 0x30, 0x83, 0x0a,
    0xf6, 0xed, 0xe0, 0xd9, 0xfd, 0xea, 0xf9, 0xa9, 0x35, 0xde, 0x83, 0x71,
    0x1a, 0x14, 0x60, 0x44, 0x40, 0x85, 0x40, 0x29, 0xe0, 0x49, 0x7c, 0x0d,
    0xa2, 0xfd, 0x60, 0xef, 0x40, 0x0c, 0xa0, 0x3a, 0xc1, 0xbe, 0x85, 0x2e,
    0xa7, 0xa0, 0x32, 0x50, 0xd2, 0xbb, 0xa3, 0xcb, 0x7c, 0x5e, 0xe9, 0xa9,
    0xa3, 0x31, 0xd4, 0xd0, 0x74, 0x98, 0x43, 0xbb, 0xa0, 0xf2, 0xb0, 0x3d,
    0x3e, 0xb4, 0x45, 0x65, 0xe0, 0x02, 0xd8, 0xaf, 0x7d, 0x33, 0x96, 0x80,
    0x28, 0x98, 0xdd, 0x42, 0xf8, 0x6c, 0x9a, 0x70, 0xbb, 0x60, 0x34, 0x4f,
    0x61, 0x98, 0x65, 0x54, 0x28, 0x61, 0x19, 0xa6, 0xe8, 0xc8, 0xb8, 0x48,
    0x7a, 0x41, 0x44, 0xd5, 0x25, 0x35, 0x14, 0x2c, 0xbf, 0xeb, 0x06, 0xbf,
    0xd3, 0xdf, 0x82, 0x67, 0xa1, 0x9d, 0x14, 0xb8, 0x7d, 0x68, 0xf7, 0xb6,
    0x4f, 0x67, 0xec, 0x8a, 0x32, 0x8c, 0x5b, 0x78, 0xa0, 0xdd, 0xde, 0x9b,
    0x60, 0x4f, 0xfe, 0x4a, 0x40, 0x14, 0xb0, 0x01, 0x08, 0xfc, 0xf7, 0x34,
    0xfe, 0x00, 0xfd, 0x96, 0x54, 0x6f, 0x23, 0x41, 0xc5, 0x44, 0x00, 0x00,
    0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ].pack "C*"


    @@image13_data = [
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d,
    0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10,
    0x08, 0x06, 0x00, 0x00, 0x00, 0x1f, 0xf3, 0xff, 0x61, 0x00, 0x00, 0x03,
    0x53, 0x49, 0x44, 0x41, 0x54, 0x38, 0x8d, 0x55, 0x90, 0x61, 0x48, 0x9c,
    0x75, 0x00, 0xc6, 0x7f, 0x3b, 0x5f, 0xf1, 0x7f, 0x79, 0x47, 0xef, 0x35,
    0x8f, 0x76, 0xe4, 0x55, 0x27, 0x6d, 0xac, 0x4b, 0x29, 0xa5, 0x09, 0xea,
    0x5c, 0xa1, 0x64, 0x79, 0x63, 0x0a, 0x77, 0x94, 0xe1, 0xbe, 0x25, 0xf4,
    0xc5, 0x11, 0x91, 0x05, 0x81, 0xf5, 0x41, 0xb4, 0x0f, 0xb2, 0xfa, 0xd0,
    0xd0, 0x40, 0x38, 0x05, 0x6d, 0x4a, 0x89, 0x5e, 0xb1, 0xa5, 0xd0, 0xb6,
    0x8e, 0x68, 0x4d, 0x73, 0xb1, 0x3b, 0xd3, 0xbc, 0xd1, 0x1c, 0x77, 0x43,
    0x2e, 0xbd, 0x9a, 0xe8, 0x71, 0x7b, 0x39, 0x5f, 0xf4, 0xef, 0xfd, 0xfb,
    0xe0, 0x35, 0xea, 0xf9, 0xf2, 0xfb, 0xf6, 0xf0, 0x7b, 0x1e, 0xd6, 0x67,
    0x15, 0x53, 0x93, 0x0a, 0xb5, 0xa4, 0x1c, 0xdf, 0x85, 0x6e, 0xfc, 0xa1,
    0x94, 0x32, 0x54, 0x4c, 0x3d, 0x50, 0x5b, 0x6a, 0x75, 0x6a, 0xf2, 0x87,
    0x73, 0xd9, 0x39, 0x55, 0x1c, 0x1c, 0x9c, 0x62, 0xeb, 0x27, 0x45, 0x70,
    0xe8, 0x80, 0x03, 0x9f, 0x4f, 0xa1, 0xb6, 0x14, 0x4a, 0x29, 0x0a, 0x74,
    0xaf, 0x9b, 0x57, 0x33, 0xcf, 0x32, 0x6b, 0x5c, 0xd9, 0x0f, 0xe4, 0x1a,
    0x45, 0x44, 0x26, 0x9a, 0x5d, 0x15, 0x8e, 0x22, 0xac, 0x3c, 0xe6, 0x7d,
    0xce, 0xe3, 0x9b, 0xbc, 0x3a, 0x73, 0xb8, 0x85, 0xd6, 0xef, 0x43, 0x9b,
    0xd3, 0x39, 0x3f, 0x01, 0x42, 0x9b, 0xd3, 0xb4, 0xc8, 0x00, 0xcb, 0x45,
    0x31, 0xdc, 0x6e, 0x27, 0xc4, 0x2f, 0x65, 0x0b, 0xbb, 0x3f, 0x0e, 0xb2,
    0x32, 0xb9, 0x45, 0x70, 0x68, 0x8a, 0xf5, 0x2b, 0xea, 0x9d, 0x1b, 0x73,
    0x2b, 0x19, 0xf5, 0x6f, 0x76, 0x95, 0x3a, 0xdf, 0x7f, 0xf1, 0xcd, 0xf8,
    0xa5, 0x2c, 0xe7, 0xfb, 0x2f, 0xb2, 0x3e, 0x9b, 0xa5, 0xb7, 0x27, 0x88,
    0x5a, 0xcb, 0x1b, 0x94, 0x94, 0x7b, 0x26, 0x35, 0xe9, 0x4f, 0xcc, 0xc7,
    0x87, 0xd7, 0x4f, 0xa5, 0x1a, 0x19, 0x59, 0x1b, 0x5e, 0xf0, 0x19, 0xad,
    0x0d, 0xb2, 0x6c, 0xbb, 0xcc, 0x5a, 0x6c, 0x65, 0x3b, 0xb3, 0x43, 0xd5,
    0x9d, 0xaa, 0xec, 0x70, 0x7c, 0xec, 0x72, 0x1b, 0x6f, 0xa8, 0xd1, 0xe4,
    0x04, 0x42, 0x6b, 0x47, 0x7f, 0x2a, 0x89, 0xf3, 0x71, 0x07, 0x96, 0x8f,
    0x9a, 0x3b, 0x02, 0xae, 0xd2, 0xb9, 0xaf, 0xfd, 0xcf, 0x04, 0x2a, 0xc6,
    0xe5, 0x38, 0x6f, 0xbd, 0xd0, 0xd1, 0xed, 0xaa, 0xe1, 0xa4, 0xc3, 0xe9,
    0x80, 0x3d, 0x70, 0x38, 0xac, 0x84, 0xb4, 0x69, 0x77, 0x43, 0xa9, 0xaf,
    0x78, 0xd8, 0x18, 0xc1, 0x57, 0xea, 0xc3, 0x6a, 0x9b, 0xc5, 0x5b, 0xe1,
    0x01, 0xc0, 0x32, 0x7d, 0x37, 0x9c, 0xed, 0x78, 0xfb, 0xb4, 0x27, 0x9c,
    0x0e, 0x7f, 0x65, 0x15, 0xe2, 0x8b, 0xb4, 0x2b, 0xd1, 0xc7, 0x09, 0xc4,
    0xf6, 0xfd, 0x6d, 0x28, 0x84, 0xc4, 0xea, 0x06, 0x35, 0x29, 0xdf, 0x46,
    0x78, 0xb1, 0x2f, 0xd3, 0x27, 0x06, 0xd9, 0x58, 0xac, 0xa2, 0xd3, 0x1c,
    0xe1, 0x61, 0x56, 0x42, 0x5b, 0x2b, 0x6a, 0x2d, 0xbf, 0x37, 0x9c, 0xe7,
    0xda, 0x7f, 0x98, 0x51, 0xaa, 0xeb, 0x83, 0xe0, 0x35, 0x35, 0xda, 0x5d,
    0xae, 0x7a, 0x74, 0xd4, 0x90, 0xce, 0xad, 0xfe, 0x1a, 0x94, 0xca, 0x7f,
    0x90, 0xca, 0x49, 0xd9, 0x64, 0x69, 0x3a, 0x93, 0xd2, 0x37, 0x70, 0x54,
    0xda, 0x49, 0xac, 0x6e, 0xe0, 0xf0, 0xe4, 0x69, 0xb3, 0x33, 0xf3, 0x4b,
    0x84, 0x73, 0xb6, 0xaa, 0xb2, 0x48, 0xea, 0xdd, 0x33, 0x2e, 0x89, 0x0c,
    0xdf, 0x93, 0x37, 0x6b, 0x1f, 0x71, 0x42, 0x7d, 0x47, 0x21, 0x60, 0x29,
    0xe8, 0x0d, 0x0c, 0xdc, 0xfa, 0xe4, 0xfa, 0x67, 0xfb, 0xf5, 0x87, 0x1b,
    0x6a, 0x6f, 0xc6, 0xa3, 0x5a, 0xf5, 0xd3, 0x5e, 0x66, 0x7e, 0x86, 0xea,
    0x27, 0xed, 0xcc, 0xc5, 0xa1, 0xf1, 0x88, 0x0e, 0x91, 0x3a, 0x5c, 0x47,
    0x93, 0x8f, 0xb2, 0x2b, 0x9a, 0x3d, 0x65, 0x36, 0x63, 0x66, 0x29, 0x39,
    0x7f, 0xac, 0xa4, 0x42, 0x91, 0x4e, 0xaa, 0x43, 0xfe, 0xd7, 0xbb, 0x30,
    0x1f, 0xec, 0xb0, 0x63, 0x9a, 0xa7, 0xad, 0x42, 0xbc, 0x24, 0xec, 0xd6,
    0xe3, 0xec, 0xf8, 0x53, 0xc2, 0x19, 0xae, 0x1c, 0x7f, 0xb9, 0xf3, 0xc5,
    0x58, 0xaa, 0x0e, 0x2f, 0x09, 0x90, 0x26, 0xd8, 0x04, 0x31, 0x74, 0xe9,
    0xbd, 0x2b, 0xba, 0xc6, 0x8d, 0xf4, 0x05, 0x9f, 0x09, 0x05, 0xbd, 0x6d,
    0x03, 0x44, 0x93, 0x51, 0xda, 0xb4, 0xb6, 0xd5, 0x88, 0x11, 0xbd, 0x6a,
    0x1a, 0xbe, 0x6f, 0xd3, 0xe6, 0xc4, 0x37, 0xef, 0xe7, 0xbc, 0x4b, 0xb1,
    0xbd, 0x80, 0xbf, 0xae, 0x39, 0x6d, 0x25, 0xa7, 0x41, 0x8d, 0x80, 0x8c,
    0x86, 0xf3, 0x84, 0xb4, 0xc4, 0x0c, 0x9a, 0x1a, 0x4b, 0x6c, 0xe9, 0xd0,
    0xdf, 0x2c, 0x14, 0x48, 0xa7, 0x1d, 0x99, 0x93, 0x44, 0x76, 0xa3, 0x80,
    0xc0, 0xcc, 0x2d, 0x4b, 0x97, 0xcd, 0xe4, 0xe8, 0x13, 0x83, 0x7f, 0x36,
    0x65, 0xb5, 0xec, 0x72, 0x56, 0x7b, 0xc5, 0xd5, 0xaa, 0x15, 0x90, 0xd4,
    0xe0, 0x79, 0x0d, 0x7e, 0x97, 0x07, 0x25, 0x31, 0x5e, 0xab, 0xdd, 0xe4,
    0x2f, 0x4b, 0x7b, 0x79, 0x3b, 0x48, 0x38, 0xab, 0x9d, 0x05, 0xcc, 0x03,
    0x4a, 0x93, 0xc0, 0x71, 0xc1, 0x84, 0x64, 0xc0, 0x63, 0x8a, 0x0f, 0xf9,
    0x12, 0xc5, 0x49, 0x01, 0x8b, 0x26, 0xd8, 0x4c, 0xb8, 0x6c, 0xe2, 0xad,
    0x37, 0x0f, 0x85, 0x75, 0x7a, 0xf2, 0x06, 0x6d, 0x44, 0x76, 0x47, 0x21,
    0x07, 0x51, 0xb9, 0x8a, 0x5d, 0x48, 0xb4, 0xbd, 0xdb, 0xf8, 0xd1, 0x18,
    0x4b, 0xc8, 0x79, 0xe7, 0x3d, 0xb6, 0x6f, 0xdf, 0x91, 0x4d, 0x6e, 0x5d,
    0x5a, 0x48, 0x4a, 0xc8, 0x02, 0x69, 0x83, 0x63, 0x19, 0xad, 0x28, 0x6f,
    0x30, 0x9e, 0x37, 0x00, 0xa1, 0x05, 0x1e, 0x1a, 0x84, 0x24, 0xb4, 0x57,
    0xc2, 0x34, 0x5c, 0xd0, 0xe7, 0x79, 0x8f, 0x1f, 0xd9, 0xa7, 0x46, 0xc0,
    0x11, 0xc0, 0x2d, 0x18, 0x4c, 0x88, 0xa5, 0xff, 0x7f, 0x90, 0x13, 0x98,
    0x32, 0x8a, 0x5d, 0x80, 0xb6, 0x97, 0xa0, 0x05, 0x18, 0x4b, 0x82, 0x94,
    0xf0, 0xab, 0x64, 0x41, 0xdf, 0xd4, 0xd2, 0xb3, 0xf3, 0xb2, 0xba, 0xea,
    0xbe, 0x96, 0xfb, 0xf4, 0xba, 0xf6, 0xdb, 0x29, 0x43, 0xeb, 0xfc, 0x07,
    0x5e, 0x48, 0xc8, 0x4f, 0x1d, 0x99, 0x70, 0xe8, 0x00, 0x00, 0x00, 0x00,
    0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 ].pack "C*"


    def initialize(parent = nil, name = nil, fl = WType_TopLevel)
        super

        @image0 = Qt::Pixmap.new()
        @image0.loadFromData(@@image0_data, @@image0_data.length, "PNG")
        @image4 = Qt::Pixmap.new()
        @image4.loadFromData(@@image4_data, @@image4_data.length, "PNG")
        @image5 = Qt::Pixmap.new()
        @image5.loadFromData(@@image5_data, @@image5_data.length, "PNG")
        @image13 = Qt::Pixmap.new()
        @image13.loadFromData(@@image13_data, @@image13_data.length, "PNG")

        statusBar()
        if name.nil?
        	setName("KEnigma")
        end
        setIcon(@image0)

        setCentralWidget(Qt::Widget.new(self, "qt_central_widget"))

        @kActiveLabel2_3_2 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel2_3_2")
        @kActiveLabel2_3_2.setGeometry( Qt::Rect.new(304, 42, 39, 31) )
        @kActiveLabel2_3_2_font = Qt::Font.new(@kActiveLabel2_3_2.font())
        @kActiveLabel2_3_2_font.setPointSize(18)
        @kActiveLabel2_3_2.setFont(@kActiveLabel2_3_2_font)
        @kActiveLabel2_3_2.setTextFormat( KDE::ActiveLabel::PlainText )

        @kActiveLabel1 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel1")
        @kActiveLabel1.setGeometry( Qt::Rect.new(128, 10, 156, 25) )
        @kActiveLabel1_font = Qt::Font.new(@kActiveLabel1.font())
        @kActiveLabel1_font.setPointSize(14)
        @kActiveLabel1_font.setBold(true)
        @kActiveLabel1.setFont(@kActiveLabel1_font)
        @kActiveLabel1.setTextFormat( KDE::ActiveLabel::PlainText )

        @ledD = KDE::Led.new(centralWidget(), "ledD")
        @ledD.setGeometry( Qt::Rect.new(130, 210, 30, 30) )
        @ledD.setState( KDE::Led::Off )

        @ledT = KDE::Led.new(centralWidget(), "ledT")
        @ledT.setGeometry( Qt::Rect.new(190, 170, 30, 30) )
        @ledT.setState( KDE::Led::Off )

        @keyV = KDE::PushButton.new(centralWidget(), "keyV")
        @keyV.setGeometry( Qt::Rect.new(190, 380, 30, 30) )
        @keyV_font = Qt::Font.new(@keyV.font())
        @keyV_font.setPointSize(14)
        @keyV_font.setBold(true)
        @keyV.setFont(@keyV_font)

        @keyU = KDE::PushButton.new(centralWidget(), "keyU")
        @keyU.setGeometry( Qt::Rect.new(270, 300, 30, 30) )
        @keyU_font = Qt::Font.new(@keyU.font())
        @keyU_font.setPointSize(14)
        @keyU_font.setBold(true)
        @keyU.setFont(@keyU_font)

        @ledA = KDE::Led.new(centralWidget(), "ledA")
        @ledA.setGeometry( Qt::Rect.new(50, 210, 30, 30) )
        @ledA.setState( KDE::Led::Off )

        @ledQ = KDE::Led.new(centralWidget(), "ledQ")
        @ledQ.setGeometry( Qt::Rect.new(30, 170, 30, 30) )
        @ledQ.setState( KDE::Led::Off )

        @keyN = KDE::PushButton.new(centralWidget(), "keyN")
        @keyN.setGeometry( Qt::Rect.new(270, 380, 30, 30) )
        @keyN_font = Qt::Font.new(@keyN.font())
        @keyN_font.setPointSize(14)
        @keyN_font.setBold(true)
        @keyN.setFont(@keyN_font)

        @keyB = KDE::PushButton.new(centralWidget(), "keyB")
        @keyB.setGeometry( Qt::Rect.new(230, 380, 30, 30) )
        @keyB_font = Qt::Font.new(@keyB.font())
        @keyB_font.setPointSize(14)
        @keyB_font.setBold(true)
        @keyB.setFont(@keyB_font)

        @keyM = KDE::PushButton.new(centralWidget(), "keyM")
        @keyM.setGeometry( Qt::Rect.new(310, 380, 30, 30) )
        @keyM_font = Qt::Font.new(@keyM.font())
        @keyM_font.setPointSize(14)
        @keyM_font.setBold(true)
        @keyM.setFont(@keyM_font)

        @ledM = KDE::Led.new(centralWidget(), "ledM")
        @ledM.setGeometry( Qt::Rect.new(310, 250, 30, 30) )
        @ledM.setState( KDE::Led::Off )

        @ledY = KDE::Led.new(centralWidget(), "ledY")
        @ledY.setGeometry( Qt::Rect.new(70, 250, 30, 30) )
        @ledY.setState( KDE::Led::Off )

        @keyK = KDE::PushButton.new(centralWidget(), "keyK")
        @keyK.setGeometry( Qt::Rect.new(330, 340, 30, 30) )
        @keyK_font = Qt::Font.new(@keyK.font())
        @keyK_font.setPointSize(14)
        @keyK_font.setBold(true)
        @keyK.setFont(@keyK_font)

        @keyL = KDE::PushButton.new(centralWidget(), "keyL")
        @keyL.setGeometry( Qt::Rect.new(350, 380, 30, 30) )
        @keyL_font = Qt::Font.new(@keyL.font())
        @keyL_font.setPointSize(14)
        @keyL_font.setBold(true)
        @keyL.setFont(@keyL_font)

        @keyZ = KDE::PushButton.new(centralWidget(), "keyZ")
        @keyZ.setGeometry( Qt::Rect.new(230, 300, 30, 30) )
        @keyZ_font = Qt::Font.new(@keyZ.font())
        @keyZ_font.setPointSize(14)
        @keyZ_font.setBold(true)
        @keyZ.setFont(@keyZ_font)

        @keyH = KDE::PushButton.new(centralWidget(), "keyH")
        @keyH.setGeometry( Qt::Rect.new(250, 340, 30, 30) )
        @keyH_font = Qt::Font.new(@keyH.font())
        @keyH_font.setPointSize(14)
        @keyH_font.setBold(true)
        @keyH.setFont(@keyH_font)

        @keyG = KDE::PushButton.new(centralWidget(), "keyG")
        @keyG.setGeometry( Qt::Rect.new(210, 340, 30, 30) )
        @keyG_font = Qt::Font.new(@keyG.font())
        @keyG_font.setPointSize(14)
        @keyG_font.setBold(true)
        @keyG.setFont(@keyG_font)

        @ledC = KDE::Led.new(centralWidget(), "ledC")
        @ledC.setGeometry( Qt::Rect.new(150, 250, 30, 30) )
        @ledC.setState( KDE::Led::Off )

        @keyJ = KDE::PushButton.new(centralWidget(), "keyJ")
        @keyJ.setGeometry( Qt::Rect.new(290, 340, 30, 30) )
        @keyJ_font = Qt::Font.new(@keyJ.font())
        @keyJ_font.setPointSize(14)
        @keyJ_font.setBold(true)
        @keyJ.setFont(@keyJ_font)

        @keyE = KDE::PushButton.new(centralWidget(), "keyE")
        @keyE.setGeometry( Qt::Rect.new(110, 300, 30, 30) )
        @keyE_font = Qt::Font.new(@keyE.font())
        @keyE_font.setPointSize(14)
        @keyE_font.setBold(true)
        @keyE.setFont(@keyE_font)

        @ledN = KDE::Led.new(centralWidget(), "ledN")
        @ledN.setGeometry( Qt::Rect.new(270, 250, 30, 30) )
        @ledN.setState( KDE::Led::Off )

        @keyY = KDE::PushButton.new(centralWidget(), "keyY")
        @keyY.setGeometry( Qt::Rect.new(70, 380, 30, 30) )
        @keyY_font = Qt::Font.new(@keyY.font())
        @keyY_font.setPointSize(14)
        @keyY_font.setBold(true)
        @keyY.setFont(@keyY_font)

        @ledS = KDE::Led.new(centralWidget(), "ledS")
        @ledS.setGeometry( Qt::Rect.new(90, 210, 30, 30) )
        @ledS.setState( KDE::Led::Off )

        @ledE = KDE::Led.new(centralWidget(), "ledE")
        @ledE.setGeometry( Qt::Rect.new(110, 170, 30, 30) )
        @ledE.setState( KDE::Led::Off )

        @keyS = KDE::PushButton.new(centralWidget(), "keyS")
        @keyS.setGeometry( Qt::Rect.new(90, 340, 30, 30) )
        @keyS_font = Qt::Font.new(@keyS.font())
        @keyS_font.setPointSize(14)
        @keyS_font.setBold(true)
        @keyS.setFont(@keyS_font)

        @ledX = KDE::Led.new(centralWidget(), "ledX")
        @ledX.setGeometry( Qt::Rect.new(110, 250, 30, 30) )
        @ledX.setState( KDE::Led::Off )

        @ledK = KDE::Led.new(centralWidget(), "ledK")
        @ledK.setGeometry( Qt::Rect.new(330, 210, 30, 30) )
        @ledK.setState( KDE::Led::Off )

        @ledU = KDE::Led.new(centralWidget(), "ledU")
        @ledU.setGeometry( Qt::Rect.new(270, 170, 30, 30) )
        @ledU.setState( KDE::Led::Off )

        @ledW = KDE::Led.new(centralWidget(), "ledW")
        @ledW.setGeometry( Qt::Rect.new(70, 170, 30, 30) )
        @ledW.setState( KDE::Led::Off )

        @keyA = KDE::PushButton.new(centralWidget(), "keyA")
        @keyA.setGeometry( Qt::Rect.new(50, 340, 30, 30) )
        @keyA_font = Qt::Font.new(@keyA.font())
        @keyA_font.setPointSize(14)
        @keyA_font.setBold(true)
        @keyA.setFont(@keyA_font)

        @ledO = KDE::Led.new(centralWidget(), "ledO")
        @ledO.setGeometry( Qt::Rect.new(350, 170, 30, 30) )
        @ledO.setState( KDE::Led::Off )

        @keyC = KDE::PushButton.new(centralWidget(), "keyC")
        @keyC.setGeometry( Qt::Rect.new(150, 380, 30, 30) )
        @keyC_font = Qt::Font.new(@keyC.font())
        @keyC_font.setPointSize(14)
        @keyC_font.setBold(true)
        @keyC.setFont(@keyC_font)

        @keyP = KDE::PushButton.new(centralWidget(), "keyP")
        @keyP.setGeometry( Qt::Rect.new(30, 380, 30, 30) )
        @keyP_font = Qt::Font.new(@keyP.font())
        @keyP_font.setPointSize(14)
        @keyP_font.setBold(true)
        @keyP.setFont(@keyP_font)

        @ledJ = KDE::Led.new(centralWidget(), "ledJ")
        @ledJ.setGeometry( Qt::Rect.new(290, 210, 30, 30) )
        @ledJ.setState( KDE::Led::Off )

        @ledH = KDE::Led.new(centralWidget(), "ledH")
        @ledH.setGeometry( Qt::Rect.new(250, 210, 30, 30) )
        @ledH.setState( KDE::Led::Off )

        @keyR = KDE::PushButton.new(centralWidget(), "keyR")
        @keyR.setGeometry( Qt::Rect.new(150, 300, 30, 30) )
        @keyR_font = Qt::Font.new(@keyR.font())
        @keyR_font.setPointSize(14)
        @keyR_font.setBold(true)
        @keyR.setFont(@keyR_font)

        @ledP = KDE::Led.new(centralWidget(), "ledP")
        @ledP.setGeometry( Qt::Rect.new(30, 250, 30, 30) )
        @ledP.setState( KDE::Led::Off )

        @ledR = KDE::Led.new(centralWidget(), "ledR")
        @ledR.setGeometry( Qt::Rect.new(150, 170, 30, 30) )
        @ledR.setState( KDE::Led::Off )

        @keyX = KDE::PushButton.new(centralWidget(), "keyX")
        @keyX.setGeometry( Qt::Rect.new(110, 380, 30, 30) )
        @keyX_font = Qt::Font.new(@keyX.font())
        @keyX_font.setPointSize(14)
        @keyX_font.setBold(true)
        @keyX.setFont(@keyX_font)

        @ledB = KDE::Led.new(centralWidget(), "ledB")
        @ledB.setGeometry( Qt::Rect.new(230, 250, 30, 30) )
        @ledB.setState( KDE::Led::Off )

        @keyT = KDE::PushButton.new(centralWidget(), "keyT")
        @keyT.setGeometry( Qt::Rect.new(190, 300, 30, 30) )
        @keyT_font = Qt::Font.new(@keyT.font())
        @keyT_font.setPointSize(14)
        @keyT_font.setBold(true)
        @keyT.setFont(@keyT_font)

        @keyI = KDE::PushButton.new(centralWidget(), "keyI")
        @keyI.setGeometry( Qt::Rect.new(310, 300, 30, 30) )
        @keyI_font = Qt::Font.new(@keyI.font())
        @keyI_font.setPointSize(14)
        @keyI_font.setBold(true)
        @keyI.setFont(@keyI_font)

        @keyD = KDE::PushButton.new(centralWidget(), "keyD")
        @keyD.setGeometry( Qt::Rect.new(130, 340, 30, 30) )
        @keyD_font = Qt::Font.new(@keyD.font())
        @keyD_font.setPointSize(14)
        @keyD_font.setBold(true)
        @keyD.setFont(@keyD_font)

        @ledL = KDE::Led.new(centralWidget(), "ledL")
        @ledL.setGeometry( Qt::Rect.new(350, 250, 30, 30) )
        @ledL.setState( KDE::Led::Off )

        @ledI = KDE::Led.new(centralWidget(), "ledI")
        @ledI.setGeometry( Qt::Rect.new(310, 170, 30, 30) )
        @ledI.setState( KDE::Led::Off )

        @ledZ = KDE::Led.new(centralWidget(), "ledZ")
        @ledZ.setGeometry( Qt::Rect.new(230, 170, 30, 30) )
        @ledZ.setState( KDE::Led::Off )

        @keyW = KDE::PushButton.new(centralWidget(), "keyW")
        @keyW.setGeometry( Qt::Rect.new(70, 300, 30, 30) )
        @keyW_font = Qt::Font.new(@keyW.font())
        @keyW_font.setPointSize(14)
        @keyW_font.setBold(true)
        @keyW.setFont(@keyW_font)

        @ledG = KDE::Led.new(centralWidget(), "ledG")
        @ledG.setGeometry( Qt::Rect.new(210, 210, 30, 30) )
        @ledG.setState( KDE::Led::Off )

        @ledV = KDE::Led.new(centralWidget(), "ledV")
        @ledV.setGeometry( Qt::Rect.new(190, 250, 30, 30) )
        @ledV.setState( KDE::Led::Off )

        @keyQ = KDE::PushButton.new(centralWidget(), "keyQ")
        @keyQ.setGeometry( Qt::Rect.new(30, 300, 30, 30) )
        @keyQ_font = Qt::Font.new(@keyQ.font())
        @keyQ_font.setPointSize(14)
        @keyQ_font.setBold(true)
        @keyQ.setFont(@keyQ_font)

        @ledF = KDE::Led.new(centralWidget(), "ledF")
        @ledF.setGeometry( Qt::Rect.new(170, 210, 30, 30) )
        @ledF.setState( KDE::Led::Off )

        @kActiveLabel2 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel2")
        @kActiveLabel2.setGeometry( Qt::Rect.new(3, 42, 39, 31) )
        @kActiveLabel2_font = Qt::Font.new(@kActiveLabel2.font())
        @kActiveLabel2_font.setPointSize(18)
        @kActiveLabel2.setFont(@kActiveLabel2_font)
        @kActiveLabel2.setTextFormat( KDE::ActiveLabel::PlainText )

        @kActiveLabel2_2 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel2_2")
        @kActiveLabel2_2.setGeometry( Qt::Rect.new(101, 42, 40, 31) )
        @kActiveLabel2_2_font = Qt::Font.new(@kActiveLabel2_2.font())
        @kActiveLabel2_2_font.setPointSize(18)
        @kActiveLabel2_2.setFont(@kActiveLabel2_2_font)
        @kActiveLabel2_2.setTextFormat( KDE::ActiveLabel::PlainText )

        @rotorInt1 = KDE::PushButton.new(centralWidget(), "rotorInt1")
        @rotorInt1.setGeometry( Qt::Rect.new(378, 40, 22, 16) )
        @rotorInt1.setPixmap( @image4 )

        @rotorDec1 = KDE::PushButton.new(centralWidget(), "rotorDec1")
        @rotorDec1.setGeometry( Qt::Rect.new(378, 56, 22, 16) )
        @rotorDec1.setPixmap( @image5 )

        @rotorInt2 = KDE::PushButton.new(centralWidget(), "rotorInt2")
        @rotorInt2.setGeometry( Qt::Rect.new(280, 40, 22, 16) )
        @rotorInt2.setPixmap( @image4 )

        @rotorDec2 = KDE::PushButton.new(centralWidget(), "rotorDec2")
        @rotorDec2.setGeometry( Qt::Rect.new(280, 56, 22, 16) )
        @rotorDec2.setPixmap( @image5 )

        @rotorInt3 = KDE::PushButton.new(centralWidget(), "rotorInt3")
        @rotorInt3.setGeometry( Qt::Rect.new(176, 40, 22, 16) )
        @rotorInt3.setPixmap( @image4 )

        @rotorDec3 = KDE::PushButton.new(centralWidget(), "rotorDec3")
        @rotorDec3.setGeometry( Qt::Rect.new(176, 56, 22, 16) )
        @rotorDec3.setPixmap( @image5 )

        @rotorInt4 = KDE::PushButton.new(centralWidget(), "rotorInt4")
        @rotorInt4.setGeometry( Qt::Rect.new(76, 40, 22, 16) )
        @rotorInt4.setPixmap( @image4 )

        @rotorDec4 = KDE::PushButton.new(centralWidget(), "rotorDec4")
        @rotorDec4.setGeometry( Qt::Rect.new(76, 56, 22, 16) )
        @rotorDec4.setPixmap( @image5 )

        @kActiveLabel2_3 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel2_3")
        @kActiveLabel2_3.setGeometry( Qt::Rect.new(201, 42, 43, 31) )
        @kActiveLabel2_3_font = Qt::Font.new(@kActiveLabel2_3.font())
        @kActiveLabel2_3_font.setPointSize(18)
        @kActiveLabel2_3.setFont(@kActiveLabel2_3_font)
        @kActiveLabel2_3.setTextFormat( KDE::ActiveLabel::PlainText )

        @kActiveLabel22 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel22")
        @kActiveLabel22.setGeometry( Qt::Rect.new(120, 90, 160, 25) )
        @kActiveLabel22_font = Qt::Font.new(@kActiveLabel22.font())
        @kActiveLabel22_font.setPointSize(14)
        @kActiveLabel22_font.setBold(true)
        @kActiveLabel22.setFont(@kActiveLabel22_font)

        @keyF = KDE::PushButton.new(centralWidget(), "keyF")
        @keyF.setGeometry( Qt::Rect.new(170, 340, 30, 30) )
        @keyF_font = Qt::Font.new(@keyF.font())
        @keyF_font.setPointSize(14)
        @keyF_font.setBold(true)
        @keyF.setFont(@keyF_font)

        @keyO = KDE::PushButton.new(centralWidget(), "keyO")
        @keyO.setGeometry( Qt::Rect.new(350, 300, 30, 30) )
        @keyO_font = Qt::Font.new(@keyO.font())
        @keyO_font.setPointSize(14)
        @keyO_font.setBold(true)
        @keyO.setFont(@keyO_font)

        @rotorPos4 = KDE::LineEdit.new(centralWidget(), "rotorPos4")
        @rotorPos4.setEnabled( true )
        @rotorPos4.setGeometry( Qt::Rect.new(42, 40, 34, 32) )
        @rotorPos4_font = Qt::Font.new(@rotorPos4.font())
        @rotorPos4_font.setPointSize(20)
        @rotorPos4_font.setBold(true)
        @rotorPos4.setFont(@rotorPos4_font)
        @rotorPos4.setMaxLength( 1 )
        @rotorPos4.setReadOnly( true )

        @rotorPos3 = KDE::LineEdit.new(centralWidget(), "rotorPos3")
        @rotorPos3.setGeometry( Qt::Rect.new(142, 40, 34, 32) )
        @rotorPos3_font = Qt::Font.new(@rotorPos3.font())
        @rotorPos3_font.setPointSize(20)
        @rotorPos3_font.setBold(true)
        @rotorPos3.setFont(@rotorPos3_font)
        @rotorPos3.setMaxLength( 1 )
        @rotorPos3.setReadOnly( true )

        @rotorPos1 = KDE::LineEdit.new(centralWidget(), "rotorPos1")
        @rotorPos1.setGeometry( Qt::Rect.new(344, 40, 34, 32) )
        @rotorPos1_font = Qt::Font.new(@rotorPos1.font())
        @rotorPos1_font.setPointSize(20)
        @rotorPos1_font.setBold(true)
        @rotorPos1.setFont(@rotorPos1_font)
        @rotorPos1.setMaxLength( 1 )
        @rotorPos1.setReadOnly( true )

        @rotorPos2 = KDE::LineEdit.new(centralWidget(), "rotorPos2")
        @rotorPos2.setGeometry( Qt::Rect.new(246, 40, 34, 32) )
        @rotorPos2_font = Qt::Font.new(@rotorPos2.font())
        @rotorPos2_font.setPointSize(20)
        @rotorPos2_font.setBold(true)
        @rotorPos2.setFont(@rotorPos2_font)
        @rotorPos2.setMaxLength( 1 )
        @rotorPos2.setReadOnly( true )


        @kActiveLabel8 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel8")
        @kActiveLabel8.setGeometry( Qt::Rect.new(321, 120, 29, 20) )
        @kActiveLabel8_font = Qt::Font.new(@kActiveLabel8.font())
        @kActiveLabel8_font.setBold(true)
        @kActiveLabel8.setFont(@kActiveLabel8_font)

        @kActiveLabel7 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel7")
        @kActiveLabel7.setGeometry( Qt::Rect.new(233, 120, 33, 20) )
        @kActiveLabel7_font = Qt::Font.new(@kActiveLabel7.font())
        @kActiveLabel7_font.setBold(true)
        @kActiveLabel7.setFont(@kActiveLabel7_font)

        @kActiveLabel6 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel6")
        @kActiveLabel6.setGeometry( Qt::Rect.new(148, 120, 30, 20) )
        @kActiveLabel6_font = Qt::Font.new(@kActiveLabel6.font())
        @kActiveLabel6_font.setBold(true)
        @kActiveLabel6.setFont(@kActiveLabel6_font)

        @kActiveLabel6_2 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel6_2")
        @kActiveLabel6_2.setGeometry( Qt::Rect.new(56, 120, 30, 20) )
        @kActiveLabel6_2_font = Qt::Font.new(@kActiveLabel6_2.font())
        @kActiveLabel6_2_font.setBold(true)
        @kActiveLabel6_2.setFont(@kActiveLabel6_2_font)

        @kActiveLabel21 = KDE::ActiveLabel.new(centralWidget(), "kActiveLabel21")
        @kActiveLabel21.setGeometry( Qt::Rect.new(0, 120, 17, 20) )
        @kActiveLabel21_font = Qt::Font.new(@kActiveLabel21.font())
        @kActiveLabel21_font.setBold(true)
        @kActiveLabel21.setFont(@kActiveLabel21_font)

        @Rotor1 = KDE::ComboBox.new(centralWidget(), "Rotor1")
        @Rotor1.setGeometry( Qt::Rect.new(351, 120, 53, 22) )

        @Rotor2 = KDE::ComboBox.new(centralWidget(), "Rotor2")
        @Rotor2.setGeometry( Qt::Rect.new(268, 120, 53, 22) )

        @Rotor3 = KDE::ComboBox.new(centralWidget(), "Rotor3")
        @Rotor3.setGeometry( Qt::Rect.new(180, 120, 53, 22) )

        @Rotor4 = KDE::ComboBox.new(centralWidget(), "Rotor4")
        @Rotor4.setGeometry( Qt::Rect.new(88, 120, 60, 22) )

        @Ref = KDE::ComboBox.new(centralWidget(), "Ref")
        @Ref.setGeometry( Qt::Rect.new(18, 120, 38, 22) )


        @fileNewAction = KDE::StdAction.openNew(self, SLOT('fileNew()'), actionCollection())
        @fileOpenAction = KDE::StdAction.open(self, SLOT('fileOpen()'), actionCollection())
        @fileSaveAction = KDE::StdAction.save(self, SLOT('fileSave()'), actionCollection())
        @fileSaveAsAction = KDE::StdAction.saveAs(self, SLOT('fileSaveAs()'), actionCollection())
        @fileExitAction = KDE::StdAction.quit($kapp, SLOT('quit()'), actionCollection())
        @helpAboutAction= Qt::Action.new(self, "helpAboutAction")
        @viewText_WindowAction= Qt::Action.new(self, "viewText_WindowAction")
        @viewText_WindowAction.setToggleAction(true)
        @settingsOptionsAction= Qt::Action.new(self, "settingsOptionsAction")
        @settingsOptionsAction.setIconSet(Qt::IconSet.new(@image13))
        @viewSteckerAction= Qt::Action.new(self, "viewSteckerAction")
        @viewSteckerAction.setToggleAction(true)
        @settingsKeyBindingsAction= Qt::Action.new(self, "settingsKeyBindingsAction")
        @settingsKeyBindingsAction.setToggleAction(true)
        @helpContentsAction = KDE::StdAction.helpContents(self, SLOT('helpContents()'), actionCollection())
        @helpAboutKDEAction = KDE::StdAction.aboutKDE(self, SLOT('helpAboutKDE()'), actionCollection())




        @MenuBar = KDE::MenuBar.new( self, "MenuBar" )


        @File = Qt::PopupMenu.new( self )
        @fileNewAction.plug( @File )
        @fileOpenAction.plug( @File )
        @File.insertSeparator()
        @fileSaveAction.plug( @File )
        @fileSaveAsAction.plug( @File )
        @File.insertSeparator()
        @fileExitAction.plug( @File )
        @MenuBar.insertItem( "", @File, 1 )

        @View = Qt::PopupMenu.new( self )
        @viewSteckerAction.addTo( @View )
        @viewText_WindowAction.addTo( @View )
        @MenuBar.insertItem( "", @View, 2 )

        @Settings = Qt::PopupMenu.new( self )
        @settingsKeyBindingsAction.addTo( @Settings )
        @Settings.insertSeparator()
        @settingsOptionsAction.addTo( @Settings )
        @MenuBar.insertItem( "", @Settings, 3 )

        @Help = Qt::PopupMenu.new( self )
        @helpContentsAction.plug( @Help )
        @Help.insertSeparator()
        @helpAboutAction.addTo( @Help )
        @helpAboutKDEAction.plug( @Help )
        @MenuBar.insertItem( "", @Help, 4 )

        languageChange()
        resize( Qt::Size.new(410, 479).expandedTo(minimumSizeHint()) )
        clearWState( WState_Polished )

        Qt::Object.connect(@rotorDec4, SIGNAL("clicked()"), self, SLOT("rotorDec4()") )
        Qt::Object.connect(@rotorInt4, SIGNAL("clicked()"), self, SLOT("rotorInt4()") )
        Qt::Object.connect(@rotorDec3, SIGNAL("clicked()"), self, SLOT("rotorDec3()") )
        Qt::Object.connect(@rotorInt3, SIGNAL("clicked()"), self, SLOT("rotorInt3()") )
        Qt::Object.connect(@rotorDec2, SIGNAL("clicked()"), self, SLOT("rotorDec2()") )
        Qt::Object.connect(@rotorInt2, SIGNAL("clicked()"), self, SLOT("rotorInt2()") )
        Qt::Object.connect(@rotorDec1, SIGNAL("clicked()"), self, SLOT("rotorDec1()") )
        Qt::Object.connect(@rotorInt1, SIGNAL("clicked()"), self, SLOT("rotorInt1()") )
        Qt::Object.connect(@helpAboutAction, SIGNAL("activated()"), self, SLOT("helpAbout()") )
        Qt::Object.connect(@settingsOptionsAction, SIGNAL("activated()"), self, SLOT("settingsOptions()") )
        Qt::Object.connect(@viewText_WindowAction, SIGNAL("activated()"), self, SLOT("viewTextWindow()") )
        Qt::Object.connect(@Ref, SIGNAL("activated(const QString&)"), self, SLOT("refChanged()") )
        Qt::Object.connect(@Rotor1, SIGNAL("activated(const QString&)"), self, SLOT("rotor1Changed()") )
        Qt::Object.connect(@Rotor2, SIGNAL("activated(const QString&)"), self, SLOT("rotor2Changed()") )
        Qt::Object.connect(@Rotor3, SIGNAL("activated(const QString&)"), self, SLOT("rotor3Changed()") )
        Qt::Object.connect(@Rotor4, SIGNAL("activated(const QString&)"), self, SLOT("rotor4Changed()") )
        Qt::Object.connect(@settingsKeyBindingsAction, SIGNAL("activated()"), self, SLOT("keyBindings()") )
        Qt::Object.connect(@keyA, SIGNAL("pressed()"), self, SLOT("keyClickedA()") )
        Qt::Object.connect(@keyB, SIGNAL("pressed()"), self, SLOT("keyClickedB()") )
        Qt::Object.connect(@keyC, SIGNAL("pressed()"), self, SLOT("keyClickedC()") )
        Qt::Object.connect(@keyD, SIGNAL("pressed()"), self, SLOT("keyClickedD()") )
        Qt::Object.connect(@keyE, SIGNAL("pressed()"), self, SLOT("keyClickedE()") )
        Qt::Object.connect(@keyF, SIGNAL("pressed()"), self, SLOT("keyClickedF()") )
        Qt::Object.connect(@keyG, SIGNAL("pressed()"), self, SLOT("keyClickedG()") )
        Qt::Object.connect(@keyH, SIGNAL("pressed()"), self, SLOT("keyClickedH()") )
        Qt::Object.connect(@keyI, SIGNAL("pressed()"), self, SLOT("keyClickedI()") )
        Qt::Object.connect(@keyJ, SIGNAL("pressed()"), self, SLOT("keyClickedJ()") )
        Qt::Object.connect(@keyK, SIGNAL("pressed()"), self, SLOT("keyClickedK()") )
        Qt::Object.connect(@keyL, SIGNAL("pressed()"), self, SLOT("keyClickedL()") )
        Qt::Object.connect(@keyM, SIGNAL("pressed()"), self, SLOT("keyClickedM()") )
        Qt::Object.connect(@keyN, SIGNAL("pressed()"), self, SLOT("keyClickedN()") )
        Qt::Object.connect(@keyO, SIGNAL("pressed()"), self, SLOT("keyClickedO()") )
        Qt::Object.connect(@keyP, SIGNAL("pressed()"), self, SLOT("keyClickedP()") )
        Qt::Object.connect(@keyQ, SIGNAL("pressed()"), self, SLOT("keyClickedQ()") )
        Qt::Object.connect(@keyR, SIGNAL("pressed()"), self, SLOT("keyClickedR()") )
        Qt::Object.connect(@keyS, SIGNAL("pressed()"), self, SLOT("keyClickedS()") )
        Qt::Object.connect(@keyT, SIGNAL("pressed()"), self, SLOT("keyClickedT()") )
        Qt::Object.connect(@keyU, SIGNAL("pressed()"), self, SLOT("keyClickedU()") )
        Qt::Object.connect(@keyV, SIGNAL("pressed()"), self, SLOT("keyClickedV()") )
        Qt::Object.connect(@keyW, SIGNAL("pressed()"), self, SLOT("keyClickedW()") )
        Qt::Object.connect(@keyX, SIGNAL("pressed()"), self, SLOT("keyClickedX()") )
        Qt::Object.connect(@keyY, SIGNAL("pressed()"), self, SLOT("keyClickedY()") )
        Qt::Object.connect(@keyZ, SIGNAL("pressed()"), self, SLOT("keyClickedZ()") )
        Qt::Object.connect(@viewSteckerAction, SIGNAL("activated()"), self, SLOT("viewStecker()") )
        Qt::Object.connect(@keyA, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyB, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyC, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyD, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyE, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyF, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyG, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyH, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyI, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyJ, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyK, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyL, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyM, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyN, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyO, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyP, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyQ, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyR, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyS, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyT, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyU, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyV, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyW, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyX, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyY, SIGNAL("released()"), self, SLOT("keyReleased()") )
        Qt::Object.connect(@keyZ, SIGNAL("released()"), self, SLOT("keyReleased()") )


        @textWindow = TextWindow.new
        @steckerBoard = SteckerBoard.new
        @options = Options.new
        @FileName = String.new
        init()
    end

    def init()
        @Ref.insertItem("A")
        @Ref.insertItem("B")
        @Ref.insertItem("C")
        @Ref.setCurrentItem(1)

        @Rotor4.insertItem("none")
        @Rotor4.insertItem("b")
        @Rotor4.insertItem("c")

        @Rotor3.insertItem("I")
        @Rotor3.insertItem("IV")
        @Rotor3.insertItem("V")
        @Rotor3.insertItem("VI")
        @Rotor3.insertItem("VII")
        @Rotor3.insertItem("VIII")

        @Rotor2.insertItem("II")
        @Rotor2.insertItem("IV")
        @Rotor2.insertItem("V")
        @Rotor2.insertItem("VI")
        @Rotor2.insertItem("VII")
        @Rotor2.insertItem("VIII")

        @Rotor1.insertItem("III")
        @Rotor1.insertItem("IV")
        @Rotor1.insertItem("V")
        @Rotor1.insertItem("VI")
        @Rotor1.insertItem("VII")
        @Rotor1.insertItem("VIII")

        @rotorPos4.setEnabled(false)
        @rotorDec4.setEnabled(false)
        @rotorInt4.setEnabled(false)

        @inUse = Hash.new
        @inUse["rotor1"] = "III"
        @inUse["rotor2"] = "II"
        @inUse["rotor3"] = "I"
        @inUse["rotor4"] = "none"
        @inUse["ref"] = "B"

        @position1 = 0
        @position2 = 0
        @position3 = 0
        @position4 = 0

        @steckerBoard.resetSteckers
    end

    #
    #  Sets the strings of the subwidgets using the current
    #  language.
    #
    def languageChange()
        setCaption(trUtf8("KEnigma"))
        @kActiveLabel2_3_2.setText( trUtf8("1st") )
        @kActiveLabel1.setText( trUtf8("Rotor positions") )
        @keyV.setText( trUtf8("&V") )
        @keyV.setAccel( Qt::KeySequence.new(trUtf8("Alt+V")) )
        @keyU.setText( trUtf8("&U") )
        @keyU.setAccel( Qt::KeySequence.new(trUtf8("Alt+U")) )
        @keyN.setText( trUtf8("&N") )
        @keyN.setAccel( Qt::KeySequence.new(trUtf8("Alt+N")) )
        @keyB.setText( trUtf8("&B") )
        @keyB.setAccel( Qt::KeySequence.new(trUtf8("Alt+B")) )
        @keyM.setText( trUtf8("&M") )
        @keyM.setAccel( Qt::KeySequence.new(trUtf8("Alt+M")) )
        @keyK.setText( trUtf8("&K") )
        @keyK.setAccel( Qt::KeySequence.new(trUtf8("Alt+K")) )
        @keyL.setText( trUtf8("&L") )
        @keyL.setAccel( Qt::KeySequence.new(trUtf8("Alt+L")) )
        @keyZ.setText( trUtf8("&Z") )
        @keyZ.setAccel( Qt::KeySequence.new(trUtf8("Alt+Z")) )
        @keyH.setText( trUtf8("&H") )
        @keyH.setAccel( Qt::KeySequence.new(trUtf8("Alt+H")) )
        @keyG.setText( trUtf8("&G") )
        @keyG.setAccel( Qt::KeySequence.new(trUtf8("Alt+G")) )
        @keyJ.setText( trUtf8("&J") )
        @keyJ.setAccel( Qt::KeySequence.new(trUtf8("Alt+J")) )
        @keyE.setText( trUtf8("&E") )
        @keyE.setAccel( Qt::KeySequence.new(trUtf8("Alt+E")) )
        @keyY.setText( trUtf8("&Y") )
        @keyY.setAccel( Qt::KeySequence.new(trUtf8("Alt+Y")) )
        @keyS.setText( trUtf8("&S") )
        @keyS.setAccel( Qt::KeySequence.new(trUtf8("Alt+S")) )
        @keyA.setText( trUtf8("&A") )
        @keyA.setAccel( Qt::KeySequence.new(trUtf8("Alt+A")) )
        @keyC.setText( trUtf8("&C") )
        @keyC.setAccel( Qt::KeySequence.new(trUtf8("Alt+C")) )
        @keyP.setText( trUtf8("&P") )
        @keyP.setAccel( Qt::KeySequence.new(trUtf8("Alt+P")) )
        @keyR.setText( trUtf8("&R") )
        @keyR.setAccel( Qt::KeySequence.new(trUtf8("Alt+R")) )
        @keyX.setText( trUtf8("&X") )
        @keyX.setAccel( Qt::KeySequence.new(trUtf8("Alt+X")) )
        @keyT.setText( trUtf8("&T") )
        @keyT.setAccel( Qt::KeySequence.new(trUtf8("Alt+T")) )
        @keyI.setText( trUtf8("&I") )
        @keyI.setAccel( Qt::KeySequence.new(trUtf8("Alt+I")) )
        @keyD.setText( trUtf8("&D") )
        @keyD.setAccel( Qt::KeySequence.new(trUtf8("Alt+D")) )
        @keyW.setText( trUtf8("&W") )
        @keyW.setAccel( Qt::KeySequence.new(trUtf8("Alt+W")) )
        @keyQ.setText( trUtf8("&Q") )
        @keyQ.setAccel( Qt::KeySequence.new(trUtf8("Alt+Q")) )
        @kActiveLabel2.setText( trUtf8("4th") )
        @rotorDec4.setText( nil )
        @rotorInt1.setText( nil )
        @rotorDec1.setText( nil )
        @kActiveLabel2_2.setText( trUtf8("3rd") )
        @rotorInt3.setText( nil )
        @rotorDec3.setText( nil )
        @rotorInt2.setText( nil )
        @rotorDec2.setText( nil )
        @kActiveLabel2_3.setText( trUtf8("2nd") )
        @kActiveLabel22.setText( trUtf8("Reflector/Rotors") )
        @rotorInt4.setText( nil )
        @keyF.setText( trUtf8("&F") )
        @keyF.setAccel( Qt::KeySequence.new(trUtf8("Alt+F")) )
        @keyO.setText( trUtf8("&O") )
        @keyO.setAccel( Qt::KeySequence.new(trUtf8("Alt+O")) )
        @rotorPos4.setText( trUtf8("A") )
        @rotorPos3.setText( trUtf8("A") )
        @rotorPos1.setText( trUtf8("A") )
        @rotorPos2.setText( trUtf8("A") )
        @kActiveLabel21.setText( trUtf8("R") )
        @kActiveLabel6.setText( trUtf8("3rd") )
        @kActiveLabel6_2.setText( trUtf8("4th") )
        @kActiveLabel7.setText( trUtf8("2nd") )
        @kActiveLabel8.setText( trUtf8("1st") )
        @helpAboutAction.setText(trUtf8("About KEnigma"))
        @helpAboutAction.setMenuText(trUtf8("&About KEnigma"))
        @helpAboutAction.setAccel(Qt::KeySequence.new(nil))
        @viewText_WindowAction.setText(trUtf8("View Text Window"))
        @viewText_WindowAction.setMenuText(trUtf8("&Text Window"))
        @settingsOptionsAction.setText(trUtf8("Options"))
        @settingsOptionsAction.setMenuText(trUtf8("&Options"))
        @viewSteckerAction.setText(trUtf8("Open Stecker Board"))
        @viewSteckerAction.setMenuText(trUtf8("&Stecker Board"))
        @settingsKeyBindingsAction.setText(trUtf8("Key Bindings"))
        @settingsKeyBindingsAction.setMenuText(trUtf8("&Key Bindings"))
        if !@MenuBar.findItem(1).nil?
                @MenuBar.findItem(1).setText( trUtf8("&File") )
        end
        if !@MenuBar.findItem(2).nil?
                @MenuBar.findItem(2).setText( trUtf8("&View") )
        end
        if !@MenuBar.findItem(3).nil?
                @MenuBar.findItem(3).setText( trUtf8("&Settings") )
        end
        if !@MenuBar.findItem(4).nil?
                @MenuBar.findItem(4).setText( trUtf8("&Help") )
        end
    end
    protected :languageChange


    def fileNew(*k)
      @Rotor1.clear
      @Rotor2.clear
      @Rotor3.clear
      @Rotor4.clear

      @rotorPos1.setText("A")
      @rotorPos2.setText("A")
      @rotorPos3.setText("A")
      @rotorPos4.setText("A")

      init()
    end

    def fileOpen(*k)
      @FileName = KDE::FileDialog.getOpenFileName("./settings.xml", "*.xml|(*.xml) XML Files")
      if @FileName then
        loadSettings(@FileName)
      end
    end

    def fileSave(*k)
      if !@FileName or @FileName.empty? then
        fileSaveAs()
       else
        saveSettings(@FileName)
      end
    end

    def fileSaveAs(*k)
      @FileName = KDE::FileDialog.getSaveFileName("./settings.xml", "*.xml|(*.xml) XML Files")
      if @FileName and !@FileName.empty? then
        saveSettings(@FileName)
      end
    end

    def viewTextWindow(*k)
      if @viewText_WindowAction.isOn == true then
        @textWindow.show
       else
        @textWindow.hide
      end
    end

    def viewStecker(*k)
      if @viewSteckerAction.isOn == true then
        @steckerBoard.show
       else
        @steckerBoard.hide
      end
    end

    def settingsOptions(*k)
        @options.exec
        if @options.return == 1 then
          color = @options.color
          @ledA.setColor( color )
          @ledB.setColor( color )
          @ledC.setColor( color )
    	  @ledD.setColor( color )
          @ledE.setColor( color )
          @ledF.setColor( color )
	  @ledG.setColor( color )
    	  @ledH.setColor( color )
          @ledI.setColor( color )
	  @ledJ.setColor( color )
    	  @ledK.setColor( color )
          @ledL.setColor( color )
	  @ledM.setColor( color )
    	  @ledN.setColor( color )
          @ledO.setColor( color )
	  @ledP.setColor( color )
    	  @ledQ.setColor( color )
          @ledR.setColor( color )
	  @ledS.setColor( color )
          @ledT.setColor( color )
    	  @ledU.setColor( color )
	  @ledV.setColor( color )
    	  @ledW.setColor( color )
          @ledX.setColor( color )
	  @ledY.setColor( color )
    	  @ledZ.setColor( color )
    	  @options.return = nil
    	end
    end

    def helpContents(*k)
        KDE::MessageBox.information(self, i18n("KEnigma.helpContents(): Not implemented yet."))
    end

    def helpAbout(*k)
        @aboutKEnigma = KDE::AboutApplication.new()
        @aboutKEnigma.show
    end

    def helpAboutKDE(*k)
    	@aboutKDE = KDE::AboutKDE.new
        @aboutKDE.show
    end

    def changeStatusbar(*k)
        # display the text on the statusbar
        statusBar().message(text)
    end

    def keyBindings(*k)
    	if @settingsKeyBindingsAction.isOn == true then
    		@keyA.setAccel( Qt::KeySequence.new(trUtf8("A")) )
    		@keyB.setAccel( Qt::KeySequence.new(trUtf8("B")) )
    		@keyC.setAccel( Qt::KeySequence.new(trUtf8("C")) )
    		@keyD.setAccel( Qt::KeySequence.new(trUtf8("D")) )
    		@keyE.setAccel( Qt::KeySequence.new(trUtf8("E")) )
    		@keyF.setAccel( Qt::KeySequence.new(trUtf8("F")) )
    		@keyG.setAccel( Qt::KeySequence.new(trUtf8("G")) )
    		@keyH.setAccel( Qt::KeySequence.new(trUtf8("H")) )
    		@keyI.setAccel( Qt::KeySequence.new(trUtf8("I")) )
    		@keyJ.setAccel( Qt::KeySequence.new(trUtf8("J")) )
		@keyK.setAccel( Qt::KeySequence.new(trUtf8("K")) )
    		@keyL.setAccel( Qt::KeySequence.new(trUtf8("L")) )
    		@keyM.setAccel( Qt::KeySequence.new(trUtf8("M")) )
    		@keyN.setAccel( Qt::KeySequence.new(trUtf8("N")) )
    		@keyO.setAccel( Qt::KeySequence.new(trUtf8("O")) )
    		@keyP.setAccel( Qt::KeySequence.new(trUtf8("P")) )
    		@keyQ.setAccel( Qt::KeySequence.new(trUtf8("Q")) )
    		@keyR.setAccel( Qt::KeySequence.new(trUtf8("R")) )
    		@keyS.setAccel( Qt::KeySequence.new(trUtf8("S")) )
    		@keyT.setAccel( Qt::KeySequence.new(trUtf8("T")) )
    		@keyU.setAccel( Qt::KeySequence.new(trUtf8("U")) )
    		@keyV.setAccel( Qt::KeySequence.new(trUtf8("V")) )
    		@keyW.setAccel( Qt::KeySequence.new(trUtf8("W")) )
    		@keyX.setAccel( Qt::KeySequence.new(trUtf8("X")) )
    		@keyY.setAccel( Qt::KeySequence.new(trUtf8("Y")) )
    		@keyZ.setAccel( Qt::KeySequence.new(trUtf8("Z")) )
    	 else
    		@keyA.setAccel( Qt::KeySequence.new(trUtf8("Alt+A")) )
    		@keyB.setAccel( Qt::KeySequence.new(trUtf8("Alt+B")) )
    		@keyC.setAccel( Qt::KeySequence.new(trUtf8("Alt+C")) )
    		@keyD.setAccel( Qt::KeySequence.new(trUtf8("Alt+D")) )
    		@keyE.setAccel( Qt::KeySequence.new(trUtf8("Alt+E")) )
    		@keyF.setAccel( Qt::KeySequence.new(trUtf8("Alt+F")) )
    		@keyG.setAccel( Qt::KeySequence.new(trUtf8("Alt+G")) )
    		@keyH.setAccel( Qt::KeySequence.new(trUtf8("Alt+H")) )
    		@keyI.setAccel( Qt::KeySequence.new(trUtf8("Alt+I")) )
    		@keyJ.setAccel( Qt::KeySequence.new(trUtf8("Alt+J")) )
    		@keyK.setAccel( Qt::KeySequence.new(trUtf8("Alt+K")) )
    		@keyL.setAccel( Qt::KeySequence.new(trUtf8("Alt+L")) )
    		@keyM.setAccel( Qt::KeySequence.new(trUtf8("Alt+M")) )
    		@keyN.setAccel( Qt::KeySequence.new(trUtf8("Alt+N")) )
    		@keyO.setAccel( Qt::KeySequence.new(trUtf8("Alt+O")) )
    		@keyP.setAccel( Qt::KeySequence.new(trUtf8("Alt+P")) )
    		@keyQ.setAccel( Qt::KeySequence.new(trUtf8("Alt+Q")) )
    		@keyR.setAccel( Qt::KeySequence.new(trUtf8("Alt+R")) )
    		@keyS.setAccel( Qt::KeySequence.new(trUtf8("Alt+S")) )
    		@keyT.setAccel( Qt::KeySequence.new(trUtf8("Alt+T")) )
    		@keyU.setAccel( Qt::KeySequence.new(trUtf8("Alt+U")) )
    		@keyV.setAccel( Qt::KeySequence.new(trUtf8("Alt+V")) )
    		@keyW.setAccel( Qt::KeySequence.new(trUtf8("Alt+W")) )
    		@keyX.setAccel( Qt::KeySequence.new(trUtf8("Alt+X")) )
    		@keyY.setAccel( Qt::KeySequence.new(trUtf8("Alt+Y")) )
    		@keyZ.setAccel( Qt::KeySequence.new(trUtf8("Alt+Z")) )
    	end
    end

    def rotor1Changed(*k)
        rotor2 = @Rotor2.currentText
	    @Rotor2.clear
	    rotor3 = @Rotor3.currentText
	    @Rotor3.clear
        rotor1 = @Rotor1.currentText
        for i in 0...$rotorList.length
           if $rotorList[i] != rotor1 then
              if $rotorList[i] != rotor3 then
                 @Rotor2.insertItem($rotorList[i])
              end
              if $rotorList[i] != rotor2 then
                 @Rotor3.insertItem($rotorList[i])
              end
           end
        end
        @Rotor3.setCurrentText(rotor3)
        @Rotor2.setCurrentText(rotor2)
        @rotorPos1.setText("A")
        @inUse["rotor1"] = @Rotor1.currentText
        @position1 = 0
    end

    def rotor2Changed(*k)
        rotor1 = @Rotor1.currentText
	    @Rotor1.clear
	    rotor3 = @Rotor3.currentText
        @Rotor3.clear
        rotor2 = @Rotor2.currentText
        for i in 0...$rotorList.length
           if $rotorList[i] != rotor2 then
              if $rotorList[i] != rotor3 then
                 @Rotor1.insertItem($rotorList[i])
              end
              if $rotorList[i] != rotor1 then
                 @Rotor3.insertItem($rotorList[i])
              end
           end
        end
        @Rotor1.setCurrentText(rotor1)
        @Rotor3.setCurrentText(rotor3)
        @rotorPos2.setText("A")
        @inUse["rotor2"] = @Rotor2.currentText
        @position2 = 0
    end

    def rotor3Changed(*k)
        rotor1 = @Rotor1.currentText
	    @Rotor1.clear
        rotor2 = @Rotor2.currentText
        @Rotor2.clear
        rotor3 = @Rotor3.currentText
        for i in 0...$rotorList.length
           if $rotorList[i] != rotor3 then
              if $rotorList[i] != rotor1 then
                 @Rotor2.insertItem($rotorList[i])
              end
              if $rotorList[i] != rotor2 then
                 @Rotor1.insertItem($rotorList[i])
              end
           end
        end
        @Rotor1.setCurrentText(rotor1)
        @Rotor2.setCurrentText(rotor2)
        @rotorPos3.setText("A")
        @inUse["rotor3"] = @Rotor3.currentText
        @position3 = 0
    end

    def rotor4Changed(*k)
        tmp = @Rotor4.currentItem
    	if tmp == 0 then
    	   @rotorPos4.setEnabled(false)
           @rotorInt4.setEnabled(false)
           @rotorDec4.setEnabled(false)
           @Ref.clear
           @Ref.insertItem("A")
           @Ref.insertItem("B")
           @Ref.insertItem("C")
           @Ref.setCurrentItem(1)
           @inUse["rotor4"] = "none"
           @inUse["ref"] = @Ref.currentText
         else
           @rotorPos4.setEnabled(true)
           @rotorInt4.setEnabled(true)
           @rotorDec4.setEnabled(true)
           @Ref.clear
           @Ref.insertItem("b")
           @Ref.insertItem("c")
           @Ref.setCurrentItem(0)
           @inUse["rotor4"] = @Rotor4.currentText
           @inUse["ref"] = @Ref.currentText
        end
        @rotorPos4.setText("A")
        @position4 = 0
    end

    def refChanged(*k)
        @inUse["ref"] = @Ref.currentText
    end

    def rotor3turn()
		letter = @rotorPos2.text
		case @inUse["rotor2"]
 	      when "I"
 	         if letter == "Q" then turn = 1 end
 	         print letter
 	         print "\n"
 	      when "II"
 	         if letter == "E" then turn = 1 end
 	      when "III"
 	         if letter == "V" then turn = 1 end
 	      when "IV"
 	         if letter == "J" then turn = 1 end
 	      when "V"
 	         if letter == "Z" then turn = 1 end
 	      when "VI"
 	         if letter == "M" then turn = 1 end
 	         if letter == "Z" then turn = 1 end
 	      when "VII"
 	         if letter == "M" then turn = 1 end
 	         if letter == "Z" then turn = 1 end
 	      when "VIII"
 	         if letter == "M" then turn = 1 end
 	         if letter == "Z" then turn = 1 end
 	      else
 	         turn = 0
 	   end
		return turn
    end

    def rotorInt1(*k)
       letter = rotorPos1.text
       letter.unpack('c')
       letter = letter[0]
	    case @inUse["rotor1"]
	       when "I"
	   	      if letter.chr == "Q" then rotorInt2() end
	       when "II"
	   	      if letter.chr == "E" then rotorInt2() end
	       when "III"
	   	      if letter.chr == "V" then rotorInt2() end
	       when "IV"
	   	      if letter.chr == "J" then rotorInt2() end
	       when "V"
	   	      if letter.chr == "Z" then rotorInt2() end
	       when "VI"
	   	      if letter.chr == "M" then rotorInt2() end
	   	      if letter.chr == "Z" then rotorInt2() end
	       when "VII"
	   	      if letter.chr == "M" then rotorInt2() end
	   	      if letter.chr == "Z" then rotorInt2() end
	       when "VIII"
	   	      if letter.chr == "M" then rotorInt2() end
	   	      if letter.chr == "Z" then rotorInt2() end
	    end
  	    case @inUse["rotor1"]
  	       when "I"
  	   	      if letter.chr == "R" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	       when "II"
  	   	      if letter.chr == "F" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	       when "III"
  	   	      if letter.chr == "W" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	       when "IV"
  	   	      if letter.chr == "K" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	       when "V"
  	   	      if letter.chr == "A" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	       when "VI"
  	   	      if letter.chr == "N" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	   	      if letter.chr == "A" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	       when "VII"
  	   	      if letter.chr == "N" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	   	      if letter.chr == "A" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	       when "VIII"
  	   	      if letter.chr == "N" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	   	      if letter.chr == "A" then
  	   	      	if rotor3turn() == 1 then rotorInt2() end
  	   	      end
  	    end
	    letter = rotorPos1.text
       letter.unpack('c')
	    if letter[0] == 90 then
         letter = 65
        else
	      letter = letter[0] + 1
	    end
	    rotorPos1.setText(letter.chr)
       if @position1 <= 25 then
       	@position1 = @position1 + 1
        else
         @position1 = 0
       end
    end

    def rotorInt2(*k)
       letter = rotorPos2.text
       letter.unpack('c')
       letter = letter[0]
	    case @inUse["rotor2"]
	       when "I"
	   	      if letter.chr == "Q" then rotorInt3() end
	       when "II"
	   	      if letter.chr == "E" then rotorInt3() end
	       when "III"
	   	      if letter.chr == "V" then rotorInt3() end
	       when "IV"
	   	      if letter.chr == "J" then rotorInt3() end
	       when "V"
	   	      if letter.chr == "Z" then rotorInt3() end
	       when "VI"
	   	      if letter.chr == "M" then rotorInt3() end
	   	      if letter.chr == "Z" then rotorInt3() end
	       when "VII"
	   	      if letter.chr == "M" then rotorInt3() end
	   	      if letter.chr == "Z" then rotorInt3() end
	       when "VIII"
	   	      if letter.chr == "M" then rotorInt3() end
	   	      if letter.chr == "Z" then rotorInt3() end
	    end

# 	    case @inUse["rotor2"]
# 	       when "I"
# 	   	      if letter.chr == "R" then rotorInt3() end
# 	       when "II"
# 	   	      if letter.chr == "F" then rotorInt3() end
# 	       when "III"
# 	   	      if letter.chr == "W" then rotorInt3() end
# 	       when "IV"
# 	   	      if letter.chr == "K" then rotorInt3() end
# 	       when "V"
# 	   	      if letter.chr == "A" then rotorInt3() end
# 	       when "VI"
# 	   	      if letter.chr == "N" then rotorInt3() end
# 	   	      if letter.chr == "A" then rotorInt3() end
# 	       when "VII"
# 	   	      if letter.chr == "N" then rotorInt3() end
# 	   	      if letter.chr == "A" then rotorInt3() end
# 	       when "VIII"
# 	   	      if letter.chr == "N" then rotorInt3() end
# 	   	      if letter.chr == "A" then rotorInt3() end
# 	    end
	    letter = rotorPos2.text
       letter.unpack('c')
	    if letter[0] == 90 then
         letter = 65
         rotorInt3()
        else
	      letter = letter[0] + 1
	    end
       rotorPos2.setText(letter.chr)
       if @position2 <= 25 then
         @position2 = @position2 + 1
        else
         @position2 = 0
       end
    end

    def rotorInt3(*k)
       letter = rotorPos3.text
       letter.unpack('c')
       letter = letter[0]
	    letter = rotorPos3.text
       letter.unpack('c')
	    if letter[0] == 90 then
         letter = 65
         if @rotorPos4.isEnabled == true then
        	  rotorInt4
         end
        else
	      letter = letter[0] + 1
	    end
       rotorPos3.setText(letter.chr)
       if @position3 <= 25 then
        	@position3 = @position3 + 1
        else
         @position3 = 0
       end
    end

    def rotorInt4(*k)
        letter = rotorPos4.text
        letter.unpack('c')
	     if letter[0] == 90 then
           letter = 65
         else
	        letter = letter[0] + 1
	     end
        rotorPos4.setText(letter.chr)
        if @position4 <= 25 then
        	 @position4 = @position4 + 1
         else
          @position4 = 0
        end
    end

    def rotorDec1(*k)
       letter = rotorPos1.text
       letter.unpack('c')
	    if letter[0] == 65 then
         letter = 90
        else
	      letter = letter[0] - 1
	    end
       rotorPos1.setText(letter.chr)
       if @position1 >= 0 then
        	@position1 = @position1 - 1
        else
         @position1 = 25
       end
    end

    def rotorDec2(*k)
       letter = rotorPos2.text
       letter.unpack('c')
	    if letter[0] == 65 then
         letter = 90
        else
	      letter = letter[0] - 1
	    end
       rotorPos2.setText(letter.chr)
       if @position2 >= 0 then
        	@position2 = @position2 - 1
        else
        	@position2 = 25
       end
    end

    def rotorDec3(*k)
       letter = rotorPos3.text
       letter.unpack('c')
	    if letter[0] == 65 then
         letter = 90
        else
	      letter = letter[0] - 1
	    end
       rotorPos3.setText(letter.chr)
       if @position3 >= 0 then
        	@position3 = @position3 - 1
        else
        	@position3 = 25
       end
    end

    def rotorDec4(*k)
       letter = rotorPos4.text
       letter.unpack('c')
	    if letter[0] == 65 then
         letter = 90
        else
	      letter = letter[0] - 1
	    end
       rotorPos4.setText(letter.chr)
       if @position4 >= 0 then
        	@position4 = @position4 - 1
        else
        	@position4 = 25
       end
    end

    def keyClickedA(*k)
        rotorInt1()
        cypher1(@steckerBoard.a)
    end

    def keyClickedB(*k)
        rotorInt1()
        cypher1(@steckerBoard.b)
    end

    def keyClickedC(*k)
        rotorInt1()
        cypher1(@steckerBoard.c)
    end

    def keyClickedD(*k)
        rotorInt1()
        cypher1(@steckerBoard.d)
    end

    def keyClickedE(*k)
        rotorInt1()
        cypher1(@steckerBoard.e)
    end

    def keyClickedF(*k)
        rotorInt1()
        cypher1(@steckerBoard.f)
    end

    def keyClickedG(*k)
        rotorInt1()
        cypher1(@steckerBoard.g)
    end

    def keyClickedH(*k)
        rotorInt1()
        cypher1(@steckerBoard.h)
    end

    def keyClickedI(*k)
        rotorInt1()
        cypher1(@steckerBoard.i)
    end

    def keyClickedJ(*k)
        rotorInt1()
        cypher1(@steckerBoard.j)
    end

    def keyClickedK(*k)
        rotorInt1()
        cypher1(@steckerBoard.k)
    end

    def keyClickedL(*k)
        rotorInt1()
        cypher1(@steckerBoard.l)
    end

    def keyClickedM(*k)
        rotorInt1()
        cypher1(@steckerBoard.m)
    end

    def keyClickedN(*k)
        rotorInt1()
        cypher1(@steckerBoard.n)
    end

    def keyClickedO(*k)
        rotorInt1()
        cypher1(@steckerBoard.o)
    end

    def keyClickedP(*k)
        rotorInt1()
        cypher1(@steckerBoard.p)
    end

    def keyClickedQ(*k)
        rotorInt1()
        cypher1(@steckerBoard.q)
    end

    def keyClickedR(*k)
        rotorInt1()
        cypher1(@steckerBoard.r)
    end

    def keyClickedS(*k)
        rotorInt1()
        cypher1(@steckerBoard.s)
    end

    def keyClickedT(*k)
        rotorInt1()
        cypher1(@steckerBoard.t)
    end

    def keyClickedU(*k)
        rotorInt1()
        cypher1(@steckerBoard.u)
    end

    def keyClickedV(*k)
        rotorInt1()
        cypher1(@steckerBoard.v)
    end

    def keyClickedW(*k)
        rotorInt1()
        cypher1(@steckerBoard.w)
    end

    def keyClickedX(*k)
        rotorInt1()
        cypher1(@steckerBoard.x)
    end

    def keyClickedY(*k)
        rotorInt1()
        cypher1(@steckerBoard.y)
    end

    def keyClickedZ(*k)
        rotorInt1()
        cypher1(@steckerBoard.z)
    end

    def keyReleased(*k)
        unlight(@CypherLetter)
    end

end

if $0 == __FILE__
    about = KDE::AboutData.new("kenigma", "KEnigma", "1.2.1",
   			"KEnigma is a Enigma Code Machine simulator for Linux",
   			KDE::AboutData.License_GPL, "(C) 2006 Brian Arnold")
    about.addAuthor( "Brian Arnold", nil, "brian@ae6gn.com" )
    KDE::CmdLineArgs.init(ARGV, about)
    a = KDE::Application.new
    w = KEnigma.new
    a.mainWidget = w
    w.show
    a.exec
end
