summaryrefslogtreecommitdiff
authorpaule <paule>2007-01-29 05:23:30 (UTC)
committer paule <paule>2007-01-29 05:23:30 (UTC)
commit865225eccc619cbd196d181e80ef27167b124090 (patch) (unidiff)
treebac8ca323c2af7c3b40c044271db619de2649c0c
parent7c04a4a9ceb843a3ca52b27840145ed598210068 (diff)
downloadopie-865225eccc619cbd196d181e80ef27167b124090.zip
opie-865225eccc619cbd196d181e80ef27167b124090.tar.gz
opie-865225eccc619cbd196d181e80ef27167b124090.tar.bz2
Change buttons from QLabel to QPushButton, which enables entering the PIN using directional buttons and space/enter (which is all that is available on some PDAs if the screen is uncalibrated). In addition, you can now enter numbers using number keys if your device has them.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/securityplugins/pin/pin.cpp67
-rw-r--r--noncore/securityplugins/pin/pinDialogBase.ui775
2 files changed, 366 insertions, 476 deletions
diff --git a/noncore/securityplugins/pin/pin.cpp b/noncore/securityplugins/pin/pin.cpp
index 2accb9c..f1c52c5 100644
--- a/noncore/securityplugins/pin/pin.cpp
+++ b/noncore/securityplugins/pin/pin.cpp
@@ -1,328 +1,369 @@
1/** 1/**
2 * \note Taken from opie-security and libqpe password.cpp, and modified for Opie multiauth by Clement Seveillac 2 * \note Taken from opie-security and libqpe password.cpp, and modified for Opie multiauth by Clement Seveillac
3 */ 3 */
4/********************************************************************** 4/**********************************************************************
5 ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. 5 ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved.
6 ** 6 **
7 ** This file is part of the Qtopia Environment. 7 ** This file is part of the Qtopia Environment.
8 ** 8 **
9 ** This file may be distributed and/or modified under the terms of the 9 ** This file may be distributed and/or modified under the terms of the
10 ** GNU General Public License version 2 as published by the Free Software 10 ** GNU General Public License version 2 as published by the Free Software
11 ** Foundation and appearing in the file LICENSE.GPL included in the 11 ** Foundation and appearing in the file LICENSE.GPL included in the
12 ** packaging of this file. 12 ** packaging of this file.
13 ** 13 **
14 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 14 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
15 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 15 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16 ** 16 **
17 ** See http://www.trolltech.com/gpl/ for GPL licensing information. 17 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
18 ** 18 **
19 ** Contact info@trolltech.com if any conditions of this licensing are 19 ** Contact info@trolltech.com if any conditions of this licensing are
20 ** not clear to you. 20 ** not clear to you.
21 ** 21 **
22 **********************************************************************/ 22 **********************************************************************/
23 23
24#include "pin.h" 24#include "pin.h"
25#include "pinDialogBase.h" 25#include "pinDialogBase.h"
26/* OPIE */ 26/* OPIE */
27#include <opie2/odebug.h> 27#include <opie2/odebug.h>
28#include <opie2/oapplication.h> 28#include <opie2/oapplication.h>
29/* QT */ 29/* QT */
30#include <qpe/config.h> 30#include <qpe/config.h>
31#include <qlabel.h> 31#include <qlabel.h>
32#include <qlineedit.h> 32#include <qlineedit.h>
33#include <qtextview.h> 33#include <qtextview.h>
34#include <qstring.h> 34#include <qstring.h>
35#include <qdialog.h> 35#include <qdialog.h>
36/* UNIX */ 36/* UNIX */
37#include <unistd.h> 37#include <unistd.h>
38#include <stdlib.h> 38#include <stdlib.h>
39#include <time.h> 39#include <time.h>
40 40
41extern "C" char *crypt(const char *key, const char *salt); 41extern "C" char *crypt(const char *key, const char *salt);
42 42
43using Opie::Security::MultiauthConfigWidget; 43using Opie::Security::MultiauthConfigWidget;
44using Opie::Security::MultiauthPluginObject; 44using Opie::Security::MultiauthPluginObject;
45 45
46/// set to TRUE when we press the 'Skip' button 46/// set to TRUE when we press the 'Skip' button
47static bool isSkip = FALSE; 47static bool isSkip = FALSE;
48 48
49/// PIN input graphical widget. 49/// PIN input graphical widget.
50/** 50/**
51 * Inherits the PinDialogBase class defined originally in pinDialogBase.ui interface file. 51 * Inherits the PinDialogBase class defined originally in pinDialogBase.ui interface file.
52 * \sa PinDlg and PinDialog (the class generated from the .ui file) 52 * \sa PinDlg and PinDialog (the class generated from the .ui file)
53 * It comes from the original PIN locking code in Opie : 53 * It comes from the original PIN locking code in Opie :
54 * \sa http://dudu.dyn.2-h.org/opiedoxydoc/library_2password_8cpp-source.html 54 * \sa http://dudu.dyn.2-h.org/opiedoxydoc/library_2password_8cpp-source.html
55 */ 55 */
56class PinDialog : public PinDialogBase 56class PinDialog : public PinDialogBase
57{ 57{
58 Q_OBJECT 58 Q_OBJECT
59 59
60 public: 60 public:
61 PinDialog( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 61 PinDialog( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
62 ~PinDialog(); 62 ~PinDialog();
63 63
64 void clear(); 64 void clear();
65 void setPrompt( const QString& ); 65 void setPrompt( const QString& );
66 66
67signals: 67signals:
68 /// emitted when we press the Enter button 68 /// emitted when we press the Enter button
69 void passwordEntered( const QString& ); 69 void passwordEntered( const QString& );
70 /// emitted when we press the Skip button 70 /// emitted when we press the Skip button
71 void skip(); 71 void skip();
72 72
73 protected: 73 protected:
74 bool eventFilter( QObject*, QEvent* ); 74 bool eventFilter( QObject*, QEvent* );
75 75
76 private: 76 private:
77 void input( QString ); 77 void input( QString );
78 friend class PinPlugin; 78 friend class PinPlugin;
79 QString text; 79 QString text;
80
81 private slots:
82 void slotInput();
83 void slotSkip();
84 void slotOK();
85 void slotBackspace();
80}; 86};
81 87
82 88
83/// Constructs a PinDialog widget, and initializes things 89/// Constructs a PinDialog widget, and initializes things
84PinDialog::PinDialog( QWidget* parent, const char* name, WFlags fl ) 90PinDialog::PinDialog( QWidget* parent, const char* name, WFlags fl )
85 : PinDialogBase( parent, name, fl ) 91 : PinDialogBase( parent, name, fl )
86{ 92{
87 QRect desk = oApp->desktop()->geometry(); 93 QRect desk = oApp->desktop()->geometry();
88 94
89 if ( desk.width() < 220 ) { 95 if ( desk.width() < 220 ) {
90 QFont f( font() ); 96 QFont f( font() );
91 f.setPointSize( 18 ); 97 f.setPointSize( 18 );
92 setFont( f ); 98 setFont( f );
93 f.setPointSize( 12 ); 99 f.setPointSize( 12 );
94 prompt->setFont( f ); 100 prompt->setFont( f );
95 } 101 }
96 102
103 connect ( button_0, SIGNAL( clicked()), SLOT( slotInput()));
104 connect ( button_1, SIGNAL( clicked()), SLOT( slotInput()));
105 connect ( button_2, SIGNAL( clicked()), SLOT( slotInput()));
106 connect ( button_3, SIGNAL( clicked()), SLOT( slotInput()));
107 connect ( button_4, SIGNAL( clicked()), SLOT( slotInput()));
108 connect ( button_5, SIGNAL( clicked()), SLOT( slotInput()));
109 connect ( button_6, SIGNAL( clicked()), SLOT( slotInput()));
110 connect ( button_7, SIGNAL( clicked()), SLOT( slotInput()));
111 connect ( button_8, SIGNAL( clicked()), SLOT( slotInput()));
112 connect ( button_9, SIGNAL( clicked()), SLOT( slotInput()));
113 connect ( button_Skip, SIGNAL( clicked()), SLOT( slotSkip()));
114 connect ( button_OK, SIGNAL( clicked()), SLOT( slotOK()));
115
97 button_0->installEventFilter( this ); 116 button_0->installEventFilter( this );
98 button_1->installEventFilter( this ); 117 button_1->installEventFilter( this );
99 button_2->installEventFilter( this ); 118 button_2->installEventFilter( this );
100 button_3->installEventFilter( this ); 119 button_3->installEventFilter( this );
101 button_4->installEventFilter( this ); 120 button_4->installEventFilter( this );
102 button_5->installEventFilter( this ); 121 button_5->installEventFilter( this );
103 button_6->installEventFilter( this ); 122 button_6->installEventFilter( this );
104 button_7->installEventFilter( this ); 123 button_7->installEventFilter( this );
105 button_8->installEventFilter( this ); 124 button_8->installEventFilter( this );
106 button_9->installEventFilter( this ); 125 button_9->installEventFilter( this );
107 button_Skip->installEventFilter( this ); 126 button_Skip->installEventFilter( this );
108 button_OK->installEventFilter( this ); 127 button_OK->installEventFilter( this );
109 setFocus(); 128 button_OK->setFocus();
110} 129}
111 130
112/// nothing to do 131/// nothing to do
113PinDialog::~PinDialog() 132PinDialog::~PinDialog()
114{ 133{
115 // no need to delete child widgets, Qt does it all for us 134 // no need to delete child widgets, Qt does it all for us
116} 135}
117 136
118/// Record the pressed numbers, and the Skip and Enter commands 137/// Handle keyboard events
119bool PinDialog::eventFilter( QObject*o, QEvent*e ) 138bool PinDialog::eventFilter( QObject*o, QEvent*e )
120{ 139{
121 if ( e->type() == QEvent::MouseButtonRelease ) { 140 if(e->type() == QEvent::KeyPress) {
122 if ( o == button_OK ) { 141 switch(((QKeyEvent *)e)->key()) {
123 emit passwordEntered( text ); 142 case Key_0...Key_9:
124 } 143 input(((QKeyEvent *)e)->text());
125 else if ( o == button_Skip ) { 144 return TRUE;
126 isSkip = TRUE; 145 case Key_Backspace:
127 emit skip(); 146 slotBackspace();
128 } 147 return TRUE;
129 else {
130 QLabel *l = (QLabel*)o;
131 input(l->text());
132 } 148 }
133 } 149 }
134 return FALSE; 150 return FALSE;
135} 151}
136 152
153void PinDialog::slotInput()
154{
155 QPushButton *l = (QPushButton*)sender();
156 input(l->text().stripWhiteSpace());
157}
158
159void PinDialog::slotSkip()
160{
161 isSkip = TRUE;
162 emit skip();
163}
164
165void PinDialog::slotOK()
166{
167 emit passwordEntered( text );
168}
169
170void PinDialog::slotBackspace()
171{
172 if(text.length() > 0) {
173 text.truncate( text.length() - 1 );
174 display->setText( text );
175 }
176}
177
137void PinDialog::input( QString c ) 178void PinDialog::input( QString c )
138{ 179{
139 text += c; 180 text += c;
140 display->setText( text ); 181 display->setText( text );
141} 182}
142 183
143void PinDialog::setPrompt( const QString& s ) 184void PinDialog::setPrompt( const QString& s )
144{ 185{
145 prompt->setText( s ); 186 prompt->setText( s );
146} 187}
147 188
148void PinDialog::clear() 189void PinDialog::clear()
149{ 190{
150 text = ""; 191 text = "";
151 input(""); 192 input("");
152} 193}
153 194
154/// PIN dialog 195/// PIN dialog
155/** 196/**
156 * Dialog containing the PinDialog widget (which asks for a PIN) and interfacing with its I/O. 197 * Dialog containing the PinDialog widget (which asks for a PIN) and interfacing with its I/O.
157 * \sa PinDialog 198 * \sa PinDialog
158 */ 199 */
159class PinDlg : public QDialog 200class PinDlg : public QDialog
160{ 201{
161 public: 202 public:
162 PinDlg( QWidget *parent, const char * name, bool modal, bool fullscreen = FALSE ) 203 PinDlg( QWidget *parent, const char * name, bool modal, bool fullscreen = FALSE )
163 : QDialog( parent, name, modal, fullscreen ? WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ), 204 : QDialog( parent, name, modal, fullscreen ? WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop : 0 ),
164 modl(modal) 205 modl(modal)
165 { 206 {
166 pinD = new PinDialog( this ); 207 pinD = new PinDialog( this );
167 208
168 if ( fullscreen ) { 209 if ( fullscreen ) {
169 QRect desk = oApp->desktop()->geometry(); 210 QRect desk = oApp->desktop()->geometry();
170 setGeometry( 0, 0, desk.width(), desk.height() ); 211 setGeometry( 0, 0, desk.width(), desk.height() );
171 } 212 }
172 213
173 connect( pinD, SIGNAL(passwordEntered(const QString&)), 214 connect( pinD, SIGNAL(passwordEntered(const QString&)),
174 this, SLOT(accept()) ); 215 this, SLOT(accept()) );
175 connect( pinD, SIGNAL(skip()), this, SLOT(accept()) ); 216 connect( pinD, SIGNAL(skip()), this, SLOT(accept()) );
176 } 217 }
177 218
178 void resizeEvent( QResizeEvent * ) 219 void resizeEvent( QResizeEvent * )
179 { 220 {
180 pinD->resize( size() ); 221 pinD->resize( size() );
181 } 222 }
182 223
183 void reset() 224 void reset()
184 { 225 {
185 pinD->clear(); 226 pinD->clear();
186 } 227 }
187 228
188 /// Slot receiving the Skip or Enter commands, and closing the QDialog 229 /// Slot receiving the Skip or Enter commands, and closing the QDialog
189 void accept() 230 void accept()
190 { 231 {
191 if ( !modl ) 232 if ( !modl )
192 oApp->exit_loop(); 233 oApp->exit_loop();
193 QDialog::accept(); 234 QDialog::accept();
194 } 235 }
195 236
196 PinDialog *pinD; 237 PinDialog *pinD;
197 bool modl; 238 bool modl;
198}; 239};
199 240
200/// generate a fairly random salt and return the PIN hashed by crypt() 241/// generate a fairly random salt and return the PIN hashed by crypt()
201QString PinPlugin::encrypt(const QString& pin) 242QString PinPlugin::encrypt(const QString& pin)
202{ 243{
203 // the salt must begin by "$1$" if we want crypt() to use MD5 244 // the salt must begin by "$1$" if we want crypt() to use MD5
204 char salt[] = "$1$........"; 245 char salt[] = "$1$........";
205 const char *const seedchars = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; 246 const char *const seedchars = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
206 // initialize the random generator 247 // initialize the random generator
207 srandom(time(0)); 248 srandom(time(0));
208 int i; 249 int i;
209 for(i = 0; i < 8; i++) 250 for(i = 0; i < 8; i++)
210 { 251 {
211 // initialize the salt with random() 252 // initialize the salt with random()
212 salt[i+3] = seedchars[random() % 64]; 253 salt[i+3] = seedchars[random() % 64];
213 } 254 }
214 return QString::fromLatin1(crypt(pin.latin1(),salt)); 255 return QString::fromLatin1(crypt(pin.latin1(),salt));
215} 256}
216 257
217/// verify a PIN against its crypt() hash 258/// verify a PIN against its crypt() hash
218/** 259/**
219 * \return true if the \a pin matches its \a hash 260 * \return true if the \a pin matches its \a hash
220 */ 261 */
221bool PinPlugin::verify(const QString& pin, const QString& hash) 262bool PinPlugin::verify(const QString& pin, const QString& hash)
222{ 263{
223 // the hash, which contains the salt (8 chars after "$1$"), can be given as the salt 264 // the hash, which contains the salt (8 chars after "$1$"), can be given as the salt
224 return hash.compare( QString::fromLatin1(crypt( pin.latin1(), hash.latin1() )) ) == 0 ? true : false; 265 return hash.compare( QString::fromLatin1(crypt( pin.latin1(), hash.latin1() )) ) == 0 ? true : false;
225} 266}
226 267
227/// Displays a PinDialog and returns the typed in PIN 268/// Displays a PinDialog and returns the typed in PIN
228/** 269/**
229 * The returned value is QString::null if the user cancels the operation, 270 * The returned value is QString::null if the user cancels the operation,
230 * or the empty string if the user enters no password (but confirms the 271 * or the empty string if the user enters no password (but confirms the
231 * dialog). 272 * dialog).
232 */ 273 */
233QString PinPlugin::getPIN( const QString& prompt ) 274QString PinPlugin::getPIN( const QString& prompt )
234{ 275{
235 PinDlg pd(0,0,TRUE); 276 PinDlg pd(0,0,TRUE);
236 pd.pinD->setPrompt( prompt ); 277 pd.pinD->setPrompt( prompt );
237 278
238 pd.showMaximized(); 279 pd.showMaximized();
239 int r = pd.exec(); 280 int r = pd.exec();
240 281
241 if ( r == QDialog::Accepted ) { 282 if ( r == QDialog::Accepted ) {
242 if (pd.pinD->text.isEmpty()) 283 if (pd.pinD->text.isEmpty())
243 return ""; 284 return "";
244 else 285 else
245 return pd.pinD->text; 286 return pd.pinD->text;
246 } 287 }
247 else 288 else
248 return QString::null; 289 return QString::null;
249} 290}
250 291
251/// Displays the PIN dialog and returns a hash of the typed in PIN 292/// Displays the PIN dialog and returns a hash of the typed in PIN
252/** 293/**
253 * \return the hashed ( =one-way encrypted) PIN typed in by the user 294 * \return the hashed ( =one-way encrypted) PIN typed in by the user
254 * \param prompt the prompt to display in the PinDialog 295 * \param prompt the prompt to display in the PinDialog
255 */ 296 */
256QString PinPlugin::getCryptedPIN( const QString& prompt ) 297QString PinPlugin::getCryptedPIN( const QString& prompt )
257{ 298{
258 return encrypt(getPIN(prompt)); 299 return encrypt(getPIN(prompt));
259} 300}
260 301
261/// Displays the PIN dialog, asks 2 times for a new PIN, saves it if entered two times 302/// Displays the PIN dialog, asks 2 times for a new PIN, saves it if entered two times
262/** 303/**
263 * writes nothing if we enter nothing the first time 304 * writes nothing if we enter nothing the first time
264 */ 305 */
265void PinPlugin::changePIN() 306void PinPlugin::changePIN()
266{ 307{
267 QString new1, new2; 308 QString new1, new2;
268 do { 309 do {
269 new1 = getPIN(QObject::tr("Enter new PIN")); 310 new1 = getPIN(QObject::tr("Enter new PIN"));
270 if ( new1.isNull() ) 311 if ( new1.isNull() )
271 return; 312 return;
272 new2 = getPIN(QObject::tr("Re-enter new PIN")); 313 new2 = getPIN(QObject::tr("Re-enter new PIN"));
273 } while (new1 != new2); 314 } while (new1 != new2);
274 315
275 odebug << "writing new PIN hash in Security.conf" << oendl; 316 odebug << "writing new PIN hash in Security.conf" << oendl;
276 Config cfg("Security"); 317 Config cfg("Security");
277 cfg.setGroup("PinPlugin"); 318 cfg.setGroup("PinPlugin");
278 cfg.writeEntry("hashedPIN", encrypt(new1)); 319 cfg.writeEntry("hashedPIN", encrypt(new1));
279} 320}
280 321
281/// Removes the PIN hashed value in the config file 322/// Removes the PIN hashed value in the config file
282void PinPlugin::clearPIN() 323void PinPlugin::clearPIN()
283{ 324{
284 Config cfg("Security"); 325 Config cfg("Security");
285 cfg.setGroup("PinPlugin"); 326 cfg.setGroup("PinPlugin");
286 cfg.removeEntry("hashedPIN"); 327 cfg.removeEntry("hashedPIN");
287} 328}
288 329
289/// Prompt, fullscreen, for the user's PIN and compare it to the stored one. 330/// Prompt, fullscreen, for the user's PIN and compare it to the stored one.
290/** 331/**
291 * \return the result code, as a MultiauthPluginObject::authResult object 332 * \return the result code, as a MultiauthPluginObject::authResult object
292 */ 333 */
293int PinPlugin::authenticate() 334int PinPlugin::authenticate()
294{ 335{
295 // reset skip (if we ran Pin two times in a row, skipping the first time, it must be put to 0 again) 336 // reset skip (if we ran Pin two times in a row, skipping the first time, it must be put to 0 again)
296 isSkip = FALSE; 337 isSkip = FALSE;
297 // fetch value in config 338 // fetch value in config
298 Config cfg("Security"); 339 Config cfg("Security");
299 cfg.setGroup("PinPlugin"); 340 cfg.setGroup("PinPlugin");
300 QString hashedPin = cfg.readEntry("hashedPIN"); 341 QString hashedPin = cfg.readEntry("hashedPIN");
301 if (!hashedPin.isEmpty()) 342 if (!hashedPin.isEmpty())
302 { 343 {
303 // prompt for the PIN in a fullscreen modal dialog 344 // prompt for the PIN in a fullscreen modal dialog
304 PinDlg pd(0,0,TRUE,TRUE); 345 PinDlg pd(0,0,TRUE,TRUE);
305 pd.reset(); 346 pd.reset();
306 pd.exec(); 347 pd.exec();
307 348
308 // analyse the result 349 // analyse the result
309 if (isSkip == TRUE) 350 if (isSkip == TRUE)
310 return MultiauthPluginObject::Skip; 351 return MultiauthPluginObject::Skip;
311 else if (verify(pd.pinD->text, hashedPin)) 352 else if (verify(pd.pinD->text, hashedPin))
312 return MultiauthPluginObject::Success; 353 return MultiauthPluginObject::Success;
313 else 354 else
314 return MultiauthPluginObject::Failure; 355 return MultiauthPluginObject::Failure;
315 } 356 }
316 owarn << "No PIN has been defined! We consider it as a successful authentication though." << oendl; 357 owarn << "No PIN has been defined! We consider it as a successful authentication though." << oendl;
317 return MultiauthPluginObject::Success; 358 return MultiauthPluginObject::Success;
318} 359}
319 360
320/// Standard c'tor 361/// Standard c'tor
321PinPlugin::PinPlugin() : MultiauthPluginObject(), m_pinW(0) { 362PinPlugin::PinPlugin() : MultiauthPluginObject(), m_pinW(0) {
322} 363}
323 364
324/// deletes m_pinW if we need to 365/// deletes m_pinW if we need to
325PinPlugin::~PinPlugin() { 366PinPlugin::~PinPlugin() {
326 if (m_pinW != 0) 367 if (m_pinW != 0)
327 delete m_pinW; 368 delete m_pinW;
328} 369}
diff --git a/noncore/securityplugins/pin/pinDialogBase.ui b/noncore/securityplugins/pin/pinDialogBase.ui
index f84587b..7fde488 100644
--- a/noncore/securityplugins/pin/pinDialogBase.ui
+++ b/noncore/securityplugins/pin/pinDialogBase.ui
@@ -1,1142 +1,991 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>PinDialogBase</class> 2<class>PinDialogBase</class>
3<widget> 3<widget>
4 <class>QWidget</class> 4 <class>QWidget</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>PinDialogBase</cstring> 7 <cstring>PinDialogBase</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>231</width> 14 <width>257</width>
15 <height>293</height> 15 <height>280</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>font</name> 19 <name>font</name>
20 <font> 20 <font>
21 <pointsize>24</pointsize> 21 <pointsize>24</pointsize>
22 </font> 22 </font>
23 </property> 23 </property>
24 <property stdset="1"> 24 <property stdset="1">
25 <name>caption</name> 25 <name>caption</name>
26 <string>PinDialogBase</string> 26 <string>PinDialogBase</string>
27 </property> 27 </property>
28 <grid> 28 <grid>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>11</number> 31 <number>11</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>6</number> 35 <number>6</number>
36 </property> 36 </property>
37 <widget row="3" column="0" > 37 <widget row="4" column="0" >
38 <class>QLabel</class> 38 <class>QPushButton</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>button_4</cstring> 41 <cstring>button_7</cstring>
42 </property> 42 </property>
43 <property stdset="1"> 43 <property stdset="1">
44 <name>sizePolicy</name> 44 <name>sizePolicy</name>
45 <sizepolicy> 45 <sizepolicy>
46 <hsizetype>5</hsizetype> 46 <hsizetype>7</hsizetype>
47 <vsizetype>5</vsizetype> 47 <vsizetype>7</vsizetype>
48 </sizepolicy> 48 </sizepolicy>
49 </property> 49 </property>
50 <property stdset="1"> 50 <property stdset="1">
51 <name>frameShape</name> 51 <name>text</name>
52 <enum>Box</enum> 52 <string>7</string>
53 </property> 53 </property>
54 </widget>
55 <widget row="2" column="0" >
56 <class>QPushButton</class>
54 <property stdset="1"> 57 <property stdset="1">
55 <name>frameShadow</name> 58 <name>name</name>
56 <enum>Raised</enum> 59 <cstring>button_1</cstring>
60 </property>
61 <property stdset="1">
62 <name>sizePolicy</name>
63 <sizepolicy>
64 <hsizetype>7</hsizetype>
65 <vsizetype>7</vsizetype>
66 </sizepolicy>
57 </property> 67 </property>
58 <property stdset="1"> 68 <property stdset="1">
59 <name>text</name> 69 <name>text</name>
60 <string>4</string> 70 <string>1</string>
61 </property> 71 </property>
72 </widget>
73 <widget row="2" column="2" >
74 <class>QPushButton</class>
62 <property stdset="1"> 75 <property stdset="1">
63 <name>alignment</name> 76 <name>name</name>
64 <set>AlignCenter</set> 77 <cstring>button_3</cstring>
65 </property> 78 </property>
66 <property> 79 <property stdset="1">
67 <name>hAlign</name> 80 <name>sizePolicy</name>
81 <sizepolicy>
82 <hsizetype>7</hsizetype>
83 <vsizetype>7</vsizetype>
84 </sizepolicy>
85 </property>
86 <property stdset="1">
87 <name>text</name>
88 <string>3</string>
68 </property> 89 </property>
69 </widget> 90 </widget>
70 <widget row="4" column="0" > 91 <widget row="4" column="2" >
71 <class>QLabel</class> 92 <class>QPushButton</class>
72 <property stdset="1"> 93 <property stdset="1">
73 <name>name</name> 94 <name>name</name>
74 <cstring>button_7</cstring> 95 <cstring>button_9</cstring>
75 </property> 96 </property>
76 <property stdset="1"> 97 <property stdset="1">
77 <name>sizePolicy</name> 98 <name>sizePolicy</name>
78 <sizepolicy> 99 <sizepolicy>
79 <hsizetype>5</hsizetype> 100 <hsizetype>7</hsizetype>
80 <vsizetype>5</vsizetype> 101 <vsizetype>7</vsizetype>
81 </sizepolicy> 102 </sizepolicy>
82 </property> 103 </property>
83 <property stdset="1"> 104 <property stdset="1">
84 <name>frameShape</name> 105 <name>text</name>
85 <enum>Box</enum> 106 <string> 9 </string>
107 </property>
108 </widget>
109 <widget row="3" column="2" >
110 <class>QPushButton</class>
111 <property stdset="1">
112 <name>name</name>
113 <cstring>button_6</cstring>
86 </property> 114 </property>
87 <property stdset="1"> 115 <property stdset="1">
88 <name>frameShadow</name> 116 <name>sizePolicy</name>
89 <enum>Raised</enum> 117 <sizepolicy>
118 <hsizetype>7</hsizetype>
119 <vsizetype>7</vsizetype>
120 </sizepolicy>
90 </property> 121 </property>
91 <property stdset="1"> 122 <property stdset="1">
92 <name>text</name> 123 <name>text</name>
93 <string>7</string> 124 <string>6</string>
94 </property> 125 </property>
126 </widget>
127 <widget row="5" column="0" >
128 <class>QPushButton</class>
95 <property stdset="1"> 129 <property stdset="1">
96 <name>alignment</name> 130 <name>name</name>
97 <set>AlignCenter</set> 131 <cstring>button_0</cstring>
98 </property> 132 </property>
99 <property> 133 <property stdset="1">
100 <name>hAlign</name> 134 <name>sizePolicy</name>
135 <sizepolicy>
136 <hsizetype>7</hsizetype>
137 <vsizetype>7</vsizetype>
138 </sizepolicy>
139 </property>
140 <property stdset="1">
141 <name>text</name>
142 <string> 0 </string>
101 </property> 143 </property>
102 </widget> 144 </widget>
103 <widget row="0" column="0" rowspan="1" colspan="3" > 145 <widget row="0" column="0" rowspan="1" colspan="3" >
104 <class>QLabel</class> 146 <class>QLabel</class>
105 <property stdset="1"> 147 <property stdset="1">
106 <name>name</name> 148 <name>name</name>
107 <cstring>prompt</cstring> 149 <cstring>prompt</cstring>
108 </property> 150 </property>
109 <property stdset="1"> 151 <property stdset="1">
110 <name>font</name> 152 <name>font</name>
111 <font> 153 <font>
112 <pointsize>18</pointsize> 154 <pointsize>18</pointsize>
113 </font> 155 </font>
114 </property> 156 </property>
115 <property stdset="1"> 157 <property stdset="1">
116 <name>text</name> 158 <name>text</name>
117 <string>Enter your PIN</string> 159 <string>Enter your PIN</string>
118 </property> 160 </property>
119 </widget> 161 </widget>
120 <widget row="1" column="0" rowspan="1" colspan="3" > 162 <widget row="1" column="0" rowspan="1" colspan="3" >
121 <class>QLineEdit</class> 163 <class>QLineEdit</class>
122 <property stdset="1"> 164 <property stdset="1">
123 <name>name</name> 165 <name>name</name>
124 <cstring>display</cstring> 166 <cstring>display</cstring>
125 </property> 167 </property>
126 <property stdset="1"> 168 <property stdset="1">
127 <name>enabled</name> 169 <name>enabled</name>
128 <bool>false</bool> 170 <bool>false</bool>
129 </property> 171 </property>
130 <property stdset="1"> 172 <property stdset="1">
131 <name>palette</name> 173 <name>palette</name>
132 <palette> 174 <palette>
133 <active> 175 <active>
134 <color> 176 <color>
135 <red>0</red> 177 <red>0</red>
136 <green>0</green> 178 <green>0</green>
137 <blue>0</blue> 179 <blue>0</blue>
138 </color> 180 </color>
139 <color> 181 <color>
140 <red>228</red> 182 <red>228</red>
141 <green>228</green> 183 <green>228</green>
142 <blue>228</blue> 184 <blue>228</blue>
143 </color> 185 </color>
144 <color> 186 <color>
145 <red>255</red> 187 <red>255</red>
146 <green>255</green> 188 <green>255</green>
147 <blue>255</blue> 189 <blue>255</blue>
148 </color> 190 </color>
149 <color> 191 <color>
150 <red>242</red> 192 <red>242</red>
151 <green>242</green> 193 <green>242</green>
152 <blue>242</blue> 194 <blue>242</blue>
153 </color> 195 </color>
154 <color> 196 <color>
155 <red>78</red> 197 <red>78</red>
156 <green>78</green> 198 <green>78</green>
157 <blue>78</blue> 199 <blue>78</blue>
158 </color> 200 </color>
159 <color> 201 <color>
160 <red>183</red> 202 <red>183</red>
161 <green>183</green> 203 <green>183</green>
162 <blue>183</blue> 204 <blue>183</blue>
163 </color> 205 </color>
164 <color> 206 <color>
165 <red>0</red> 207 <red>0</red>
166 <green>0</green> 208 <green>0</green>
167 <blue>0</blue> 209 <blue>0</blue>
168 </color> 210 </color>
169 <color> 211 <color>
170 <red>255</red> 212 <red>255</red>
171 <green>255</green> 213 <green>255</green>
172 <blue>255</blue> 214 <blue>255</blue>
173 </color> 215 </color>
174 <color> 216 <color>
175 <red>0</red> 217 <red>0</red>
176 <green>0</green> 218 <green>0</green>
177 <blue>0</blue> 219 <blue>0</blue>
178 </color> 220 </color>
179 <color> 221 <color>
180 <red>255</red> 222 <red>255</red>
181 <green>255</green> 223 <green>255</green>
182 <blue>255</blue> 224 <blue>255</blue>
183 </color> 225 </color>
184 <color> 226 <color>
185 <red>220</red> 227 <red>220</red>
186 <green>220</green> 228 <green>220</green>
187 <blue>220</blue> 229 <blue>220</blue>
188 </color> 230 </color>
189 <color> 231 <color>
190 <red>0</red> 232 <red>0</red>
191 <green>0</green> 233 <green>0</green>
192 <blue>0</blue> 234 <blue>0</blue>
193 </color> 235 </color>
194 <color> 236 <color>
195 <red>10</red> 237 <red>10</red>
196 <green>95</green> 238 <green>95</green>
197 <blue>137</blue> 239 <blue>137</blue>
198 </color> 240 </color>
199 <color> 241 <color>
200 <red>255</red> 242 <red>255</red>
201 <green>255</green> 243 <green>255</green>
202 <blue>255</blue> 244 <blue>255</blue>
203 </color> 245 </color>
204 </active> 246 </active>
205 <disabled> 247 <disabled>
206 <color> 248 <color>
207 <red>128</red> 249 <red>128</red>
208 <green>128</green> 250 <green>128</green>
209 <blue>128</blue> 251 <blue>128</blue>
210 </color> 252 </color>
211 <color> 253 <color>
212 <red>228</red> 254 <red>228</red>
213 <green>228</green> 255 <green>228</green>
214 <blue>228</blue> 256 <blue>228</blue>
215 </color> 257 </color>
216 <color> 258 <color>
217 <red>255</red> 259 <red>255</red>
218 <green>255</green> 260 <green>255</green>
219 <blue>255</blue> 261 <blue>255</blue>
220 </color> 262 </color>
221 <color> 263 <color>
222 <red>255</red> 264 <red>255</red>
223 <green>255</green> 265 <green>255</green>
224 <blue>255</blue> 266 <blue>255</blue>
225 </color> 267 </color>
226 <color> 268 <color>
227 <red>114</red> 269 <red>114</red>
228 <green>114</green> 270 <green>114</green>
229 <blue>114</blue> 271 <blue>114</blue>
230 </color> 272 </color>
231 <color> 273 <color>
232 <red>152</red> 274 <red>152</red>
233 <green>152</green> 275 <green>152</green>
234 <blue>152</blue> 276 <blue>152</blue>
235 </color> 277 </color>
236 <color> 278 <color>
237 <red>0</red> 279 <red>0</red>
238 <green>0</green> 280 <green>0</green>
239 <blue>0</blue> 281 <blue>0</blue>
240 </color> 282 </color>
241 <color> 283 <color>
242 <red>255</red> 284 <red>255</red>
243 <green>255</green> 285 <green>255</green>
244 <blue>255</blue> 286 <blue>255</blue>
245 </color> 287 </color>
246 <color> 288 <color>
247 <red>0</red> 289 <red>0</red>
248 <green>0</green> 290 <green>0</green>
249 <blue>0</blue> 291 <blue>0</blue>
250 </color> 292 </color>
251 <color> 293 <color>
252 <red>255</red> 294 <red>255</red>
253 <green>255</green> 295 <green>255</green>
254 <blue>255</blue> 296 <blue>255</blue>
255 </color> 297 </color>
256 <color> 298 <color>
257 <red>220</red> 299 <red>220</red>
258 <green>220</green> 300 <green>220</green>
259 <blue>220</blue> 301 <blue>220</blue>
260 </color> 302 </color>
261 <color> 303 <color>
262 <red>0</red> 304 <red>0</red>
263 <green>0</green> 305 <green>0</green>
264 <blue>0</blue> 306 <blue>0</blue>
265 </color> 307 </color>
266 <color> 308 <color>
267 <red>0</red> 309 <red>0</red>
268 <green>0</green> 310 <green>0</green>
269 <blue>128</blue> 311 <blue>128</blue>
270 </color> 312 </color>
271 <color> 313 <color>
272 <red>255</red> 314 <red>255</red>
273 <green>255</green> 315 <green>255</green>
274 <blue>255</blue> 316 <blue>255</blue>
275 </color> 317 </color>
276 </disabled> 318 </disabled>
277 <inactive> 319 <inactive>
278 <color> 320 <color>
279 <red>0</red> 321 <red>0</red>
280 <green>0</green> 322 <green>0</green>
281 <blue>0</blue> 323 <blue>0</blue>
282 </color> 324 </color>
283 <color> 325 <color>
284 <red>228</red> 326 <red>228</red>
285 <green>228</green> 327 <green>228</green>
286 <blue>228</blue> 328 <blue>228</blue>
287 </color> 329 </color>
288 <color> 330 <color>
289 <red>255</red> 331 <red>255</red>
290 <green>255</green> 332 <green>255</green>
291 <blue>255</blue> 333 <blue>255</blue>
292 </color> 334 </color>
293 <color> 335 <color>
294 <red>242</red> 336 <red>242</red>
295 <green>242</green> 337 <green>242</green>
296 <blue>242</blue> 338 <blue>242</blue>
297 </color> 339 </color>
298 <color> 340 <color>
299 <red>78</red> 341 <red>78</red>
300 <green>78</green> 342 <green>78</green>
301 <blue>78</blue> 343 <blue>78</blue>
302 </color> 344 </color>
303 <color> 345 <color>
304 <red>183</red> 346 <red>183</red>
305 <green>183</green> 347 <green>183</green>
306 <blue>183</blue> 348 <blue>183</blue>
307 </color> 349 </color>
308 <color> 350 <color>
309 <red>0</red> 351 <red>0</red>
310 <green>0</green> 352 <green>0</green>
311 <blue>0</blue> 353 <blue>0</blue>
312 </color> 354 </color>
313 <color> 355 <color>
314 <red>255</red> 356 <red>255</red>
315 <green>255</green> 357 <green>255</green>
316 <blue>255</blue> 358 <blue>255</blue>
317 </color> 359 </color>
318 <color> 360 <color>
319 <red>0</red> 361 <red>0</red>
320 <green>0</green> 362 <green>0</green>
321 <blue>0</blue> 363 <blue>0</blue>
322 </color> 364 </color>
323 <color> 365 <color>
324 <red>255</red> 366 <red>255</red>
325 <green>255</green> 367 <green>255</green>
326 <blue>255</blue> 368 <blue>255</blue>
327 </color> 369 </color>
328 <color> 370 <color>
329 <red>220</red> 371 <red>220</red>
330 <green>220</green> 372 <green>220</green>
331 <blue>220</blue> 373 <blue>220</blue>
332 </color> 374 </color>
333 <color> 375 <color>
334 <red>0</red> 376 <red>0</red>
335 <green>0</green> 377 <green>0</green>
336 <blue>0</blue> 378 <blue>0</blue>
337 </color> 379 </color>
338 <color> 380 <color>
339 <red>10</red> 381 <red>10</red>
340 <green>95</green> 382 <green>95</green>
341 <blue>137</blue> 383 <blue>137</blue>
342 </color> 384 </color>
343 <color> 385 <color>
344 <red>255</red> 386 <red>255</red>
345 <green>255</green> 387 <green>255</green>
346 <blue>255</blue> 388 <blue>255</blue>
347 </color> 389 </color>
348 </inactive> 390 </inactive>
349 </palette> 391 </palette>
350 </property> 392 </property>
351 <property stdset="1"> 393 <property stdset="1">
352 <name>echoMode</name> 394 <name>echoMode</name>
353 <enum>Password</enum> 395 <enum>Password</enum>
354 </property> 396 </property>
355 </widget> 397 </widget>
356 <widget row="2" column="0" >
357 <class>QLabel</class>
358 <property stdset="1">
359 <name>name</name>
360 <cstring>button_1</cstring>
361 </property>
362 <property stdset="1">
363 <name>sizePolicy</name>
364 <sizepolicy>
365 <hsizetype>5</hsizetype>
366 <vsizetype>5</vsizetype>
367 </sizepolicy>
368 </property>
369 <property stdset="1">
370 <name>frameShape</name>
371 <enum>Box</enum>
372 </property>
373 <property stdset="1">
374 <name>frameShadow</name>
375 <enum>Raised</enum>
376 </property>
377 <property stdset="1">
378 <name>text</name>
379 <string>1</string>
380 </property>
381 <property stdset="1">
382 <name>alignment</name>
383 <set>AlignCenter</set>
384 </property>
385 <property>
386 <name>hAlign</name>
387 </property>
388 </widget>
389 <widget row="2" column="1" >
390 <class>QLabel</class>
391 <property stdset="1">
392 <name>name</name>
393 <cstring>button_2</cstring>
394 </property>
395 <property stdset="1">
396 <name>sizePolicy</name>
397 <sizepolicy>
398 <hsizetype>5</hsizetype>
399 <vsizetype>5</vsizetype>
400 </sizepolicy>
401 </property>
402 <property stdset="1">
403 <name>frameShape</name>
404 <enum>Box</enum>
405 </property>
406 <property stdset="1">
407 <name>frameShadow</name>
408 <enum>Raised</enum>
409 </property>
410 <property stdset="1">
411 <name>text</name>
412 <string>2</string>
413 </property>
414 <property stdset="1">
415 <name>alignment</name>
416 <set>AlignCenter</set>
417 </property>
418 <property>
419 <name>hAlign</name>
420 </property>
421 </widget>
422 <widget row="3" column="1" >
423 <class>QLabel</class>
424 <property stdset="1">
425 <name>name</name>
426 <cstring>button_5</cstring>
427 </property>
428 <property stdset="1">
429 <name>sizePolicy</name>
430 <sizepolicy>
431 <hsizetype>5</hsizetype>
432 <vsizetype>5</vsizetype>
433 </sizepolicy>
434 </property>
435 <property stdset="1">
436 <name>frameShape</name>
437 <enum>Box</enum>
438 </property>
439 <property stdset="1">
440 <name>frameShadow</name>
441 <enum>Raised</enum>
442 </property>
443 <property stdset="1">
444 <name>text</name>
445 <string>5</string>
446 </property>
447 <property stdset="1">
448 <name>alignment</name>
449 <set>AlignCenter</set>
450 </property>
451 <property>
452 <name>hAlign</name>
453 </property>
454 </widget>
455 <widget row="3" column="2" >
456 <class>QLabel</class>
457 <property stdset="1">
458 <name>name</name>
459 <cstring>button_6</cstring>
460 </property>
461 <property stdset="1">
462 <name>sizePolicy</name>
463 <sizepolicy>
464 <hsizetype>5</hsizetype>
465 <vsizetype>5</vsizetype>
466 </sizepolicy>
467 </property>
468 <property stdset="1">
469 <name>frameShape</name>
470 <enum>Box</enum>
471 </property>
472 <property stdset="1">
473 <name>frameShadow</name>
474 <enum>Raised</enum>
475 </property>
476 <property stdset="1">
477 <name>text</name>
478 <string>6</string>
479 </property>
480 <property stdset="1">
481 <name>alignment</name>
482 <set>AlignCenter</set>
483 </property>
484 <property>
485 <name>hAlign</name>
486 </property>
487 </widget>
488 <widget row="2" column="2" >
489 <class>QLabel</class>
490 <property stdset="1">
491 <name>name</name>
492 <cstring>button_3</cstring>
493 </property>
494 <property stdset="1">
495 <name>sizePolicy</name>
496 <sizepolicy>
497 <hsizetype>5</hsizetype>
498 <vsizetype>5</vsizetype>
499 </sizepolicy>
500 </property>
501 <property stdset="1">
502 <name>frameShape</name>
503 <enum>Box</enum>
504 </property>
505 <property stdset="1">
506 <name>frameShadow</name>
507 <enum>Raised</enum>
508 </property>
509 <property stdset="1">
510 <name>text</name>
511 <string>3</string>
512 </property>
513 <property stdset="1">
514 <name>alignment</name>
515 <set>AlignCenter</set>
516 </property>
517 <property>
518 <name>hAlign</name>
519 </property>
520 </widget>
521 <widget row="5" column="0" >
522 <class>QLabel</class>
523 <property stdset="1">
524 <name>name</name>
525 <cstring>button_0</cstring>
526 </property>
527 <property stdset="1">
528 <name>sizePolicy</name>
529 <sizepolicy>
530 <hsizetype>5</hsizetype>
531 <vsizetype>5</vsizetype>
532 </sizepolicy>
533 </property>
534 <property stdset="1">
535 <name>frameShape</name>
536 <enum>Box</enum>
537 </property>
538 <property stdset="1">
539 <name>frameShadow</name>
540 <enum>Raised</enum>
541 </property>
542 <property stdset="1">
543 <name>text</name>
544 <string>0</string>
545 </property>
546 <property stdset="1">
547 <name>alignment</name>
548 <set>AlignCenter</set>
549 </property>
550 <property>
551 <name>hAlign</name>
552 </property>
553 <property>
554 <name>layoutMargin</name>
555 </property>
556 <property>
557 <name>layoutSpacing</name>
558 </property>
559 </widget>
560 <widget row="4" column="1" >
561 <class>QLabel</class>
562 <property stdset="1">
563 <name>name</name>
564 <cstring>button_8</cstring>
565 </property>
566 <property stdset="1">
567 <name>sizePolicy</name>
568 <sizepolicy>
569 <hsizetype>5</hsizetype>
570 <vsizetype>5</vsizetype>
571 </sizepolicy>
572 </property>
573 <property stdset="1">
574 <name>frameShape</name>
575 <enum>Box</enum>
576 </property>
577 <property stdset="1">
578 <name>frameShadow</name>
579 <enum>Raised</enum>
580 </property>
581 <property stdset="1">
582 <name>text</name>
583 <string>8</string>
584 </property>
585 <property stdset="1">
586 <name>alignment</name>
587 <set>AlignCenter</set>
588 </property>
589 <property>
590 <name>hAlign</name>
591 </property>
592 </widget>
593 <widget row="4" column="2" >
594 <class>QLabel</class>
595 <property stdset="1">
596 <name>name</name>
597 <cstring>button_9</cstring>
598 </property>
599 <property stdset="1">
600 <name>sizePolicy</name>
601 <sizepolicy>
602 <hsizetype>5</hsizetype>
603 <vsizetype>5</vsizetype>
604 </sizepolicy>
605 </property>
606 <property stdset="1">
607 <name>frameShape</name>
608 <enum>Box</enum>
609 </property>
610 <property stdset="1">
611 <name>frameShadow</name>
612 <enum>Raised</enum>
613 </property>
614 <property stdset="1">
615 <name>text</name>
616 <string>9</string>
617 </property>
618 <property stdset="1">
619 <name>alignment</name>
620 <set>AlignCenter</set>
621 </property>
622 <property>
623 <name>hAlign</name>
624 </property>
625 <property>
626 <name>layoutMargin</name>
627 </property>
628 <property>
629 <name>layoutSpacing</name>
630 </property>
631 </widget>
632 <widget row="5" column="2" > 398 <widget row="5" column="2" >
633 <class>QLabel</class> 399 <class>QPushButton</class>
634 <property stdset="1"> 400 <property stdset="1">
635 <name>name</name> 401 <name>name</name>
636 <cstring>button_OK</cstring> 402 <cstring>button_OK</cstring>
637 </property> 403 </property>
638 <property stdset="1"> 404 <property stdset="1">
639 <name>sizePolicy</name> 405 <name>sizePolicy</name>
640 <sizepolicy> 406 <sizepolicy>
641 <hsizetype>5</hsizetype> 407 <hsizetype>7</hsizetype>
642 <vsizetype>5</vsizetype> 408 <vsizetype>7</vsizetype>
643 </sizepolicy> 409 </sizepolicy>
644 </property> 410 </property>
645 <property stdset="1"> 411 <property stdset="1">
646 <name>palette</name> 412 <name>palette</name>
647 <palette> 413 <palette>
648 <active> 414 <active>
649 <color> 415 <color>
650 <red>0</red> 416 <red>0</red>
651 <green>0</green> 417 <green>0</green>
652 <blue>0</blue> 418 <blue>0</blue>
653 </color> 419 </color>
654 <color> 420 <color>
655 <red>192</red> 421 <red>170</red>
656 <green>192</green> 422 <green>255</green>
657 <blue>192</blue> 423 <blue>0</blue>
658 </color> 424 </color>
659 <color> 425 <color>
660 <red>255</red> 426 <red>212</red>
661 <green>255</green> 427 <green>255</green>
662 <blue>255</blue> 428 <blue>127</blue>
663 </color> 429 </color>
664 <color> 430 <color>
665 <red>223</red> 431 <red>191</red>
666 <green>223</green> 432 <green>255</green>
667 <blue>223</blue> 433 <blue>63</blue>
668 </color> 434 </color>
669 <color> 435 <color>
670 <red>96</red> 436 <red>85</red>
671 <green>96</green> 437 <green>127</green>
672 <blue>96</blue> 438 <blue>0</blue>
673 </color> 439 </color>
674 <color> 440 <color>
675 <red>128</red> 441 <red>113</red>
676 <green>128</green> 442 <green>170</green>
677 <blue>128</blue> 443 <blue>0</blue>
678 </color> 444 </color>
679 <color> 445 <color>
680 <red>0</red> 446 <red>0</red>
681 <green>0</green> 447 <green>0</green>
682 <blue>0</blue> 448 <blue>0</blue>
683 </color> 449 </color>
684 <color> 450 <color>
685 <red>255</red> 451 <red>255</red>
686 <green>255</green> 452 <green>255</green>
687 <blue>255</blue> 453 <blue>255</blue>
688 </color> 454 </color>
689 <color> 455 <color>
690 <red>0</red> 456 <red>0</red>
691 <green>0</green> 457 <green>0</green>
692 <blue>0</blue> 458 <blue>0</blue>
693 </color> 459 </color>
694 <color> 460 <color>
695 <red>255</red> 461 <red>255</red>
696 <green>255</green> 462 <green>255</green>
697 <blue>255</blue> 463 <blue>255</blue>
698 </color> 464 </color>
699 <color> 465 <color>
700 <red>0</red> 466 <red>238</red>
701 <green>170</green> 467 <green>238</green>
702 <blue>0</blue> 468 <blue>230</blue>
703 </color> 469 </color>
704 <color> 470 <color>
705 <red>0</red> 471 <red>0</red>
706 <green>0</green> 472 <green>0</green>
707 <blue>0</blue> 473 <blue>0</blue>
708 </color> 474 </color>
709 <color> 475 <color>
476 <red>255</red>
477 <green>221</green>
478 <blue>118</blue>
479 </color>
480 <color>
710 <red>0</red> 481 <red>0</red>
711 <green>0</green> 482 <green>0</green>
712 <blue>0</blue> 483 <blue>0</blue>
713 </color> 484 </color>
714 <color>
715 <red>255</red>
716 <green>255</green>
717 <blue>255</blue>
718 </color>
719 </active> 485 </active>
720 <disabled> 486 <disabled>
721 <color> 487 <color>
722 <red>128</red> 488 <red>128</red>
723 <green>128</green> 489 <green>128</green>
724 <blue>128</blue> 490 <blue>128</blue>
725 </color> 491 </color>
726 <color> 492 <color>
727 <red>192</red> 493 <red>170</red>
728 <green>192</green> 494 <green>255</green>
729 <blue>192</blue> 495 <blue>0</blue>
730 </color> 496 </color>
731 <color> 497 <color>
732 <red>255</red> 498 <red>212</red>
733 <green>255</green> 499 <green>255</green>
734 <blue>255</blue> 500 <blue>127</blue>
735 </color> 501 </color>
736 <color> 502 <color>
737 <red>220</red> 503 <red>183</red>
738 <green>220</green> 504 <green>255</green>
739 <blue>220</blue> 505 <blue>38</blue>
740 </color> 506 </color>
741 <color> 507 <color>
742 <red>96</red> 508 <red>85</red>
743 <green>96</green> 509 <green>127</green>
744 <blue>96</blue> 510 <blue>0</blue>
745 </color> 511 </color>
746 <color> 512 <color>
747 <red>128</red> 513 <red>113</red>
748 <green>128</green> 514 <green>170</green>
749 <blue>128</blue> 515 <blue>0</blue>
750 </color> 516 </color>
751 <color> 517 <color>
752 <red>0</red> 518 <red>0</red>
753 <green>0</green> 519 <green>0</green>
754 <blue>0</blue> 520 <blue>0</blue>
755 </color> 521 </color>
756 <color> 522 <color>
757 <red>255</red> 523 <red>255</red>
758 <green>255</green> 524 <green>255</green>
759 <blue>255</blue> 525 <blue>255</blue>
760 </color> 526 </color>
761 <color> 527 <color>
762 <red>128</red> 528 <red>128</red>
763 <green>128</green> 529 <green>128</green>
764 <blue>128</blue> 530 <blue>128</blue>
765 </color> 531 </color>
766 <color> 532 <color>
767 <red>255</red> 533 <red>255</red>
768 <green>255</green> 534 <green>255</green>
769 <blue>255</blue> 535 <blue>255</blue>
770 </color> 536 </color>
771 <color> 537 <color>
772 <red>0</red> 538 <red>238</red>
773 <green>170</green> 539 <green>238</green>
774 <blue>0</blue> 540 <blue>230</blue>
775 </color> 541 </color>
776 <color> 542 <color>
777 <red>0</red> 543 <red>0</red>
778 <green>0</green> 544 <green>0</green>
779 <blue>0</blue> 545 <blue>0</blue>
780 </color> 546 </color>
781 <color> 547 <color>
548 <red>255</red>
549 <green>221</green>
550 <blue>118</blue>
551 </color>
552 <color>
782 <red>0</red> 553 <red>0</red>
783 <green>0</green> 554 <green>0</green>
784 <blue>0</blue> 555 <blue>0</blue>
785 </color> 556 </color>
786 <color>
787 <red>255</red>
788 <green>255</green>
789 <blue>255</blue>
790 </color>
791 </disabled> 557 </disabled>
792 <inactive> 558 <inactive>
793 <color> 559 <color>
794 <red>0</red> 560 <red>0</red>
795 <green>0</green> 561 <green>0</green>
796 <blue>0</blue> 562 <blue>0</blue>
797 </color> 563 </color>
798 <color> 564 <color>
799 <red>192</red> 565 <red>170</red>
800 <green>192</green> 566 <green>255</green>
801 <blue>192</blue> 567 <blue>0</blue>
802 </color> 568 </color>
803 <color> 569 <color>
804 <red>255</red> 570 <red>212</red>
805 <green>255</green> 571 <green>255</green>
806 <blue>255</blue> 572 <blue>127</blue>
807 </color> 573 </color>
808 <color> 574 <color>
809 <red>220</red> 575 <red>183</red>
810 <green>220</green> 576 <green>255</green>
811 <blue>220</blue> 577 <blue>38</blue>
812 </color> 578 </color>
813 <color> 579 <color>
814 <red>96</red> 580 <red>85</red>
815 <green>96</green> 581 <green>127</green>
816 <blue>96</blue> 582 <blue>0</blue>
817 </color> 583 </color>
818 <color> 584 <color>
819 <red>128</red> 585 <red>113</red>
820 <green>128</green> 586 <green>170</green>
821 <blue>128</blue> 587 <blue>0</blue>
822 </color> 588 </color>
823 <color> 589 <color>
824 <red>0</red> 590 <red>0</red>
825 <green>0</green> 591 <green>0</green>
826 <blue>0</blue> 592 <blue>0</blue>
827 </color> 593 </color>
828 <color> 594 <color>
829 <red>255</red> 595 <red>255</red>
830 <green>255</green> 596 <green>255</green>
831 <blue>255</blue> 597 <blue>255</blue>
832 </color> 598 </color>
833 <color> 599 <color>
834 <red>0</red> 600 <red>0</red>
835 <green>0</green> 601 <green>0</green>
836 <blue>0</blue> 602 <blue>0</blue>
837 </color> 603 </color>
838 <color> 604 <color>
839 <red>255</red> 605 <red>255</red>
840 <green>255</green> 606 <green>255</green>
841 <blue>255</blue> 607 <blue>255</blue>
842 </color> 608 </color>
843 <color> 609 <color>
844 <red>0</red> 610 <red>238</red>
845 <green>170</green> 611 <green>238</green>
846 <blue>0</blue> 612 <blue>230</blue>
847 </color> 613 </color>
848 <color> 614 <color>
849 <red>0</red> 615 <red>0</red>
850 <green>0</green> 616 <green>0</green>
851 <blue>0</blue> 617 <blue>0</blue>
852 </color> 618 </color>
853 <color> 619 <color>
620 <red>255</red>
621 <green>221</green>
622 <blue>118</blue>
623 </color>
624 <color>
854 <red>0</red> 625 <red>0</red>
855 <green>0</green> 626 <green>0</green>
856 <blue>0</blue> 627 <blue>0</blue>
857 </color> 628 </color>
858 <color>
859 <red>255</red>
860 <green>255</green>
861 <blue>255</blue>
862 </color>
863 </inactive> 629 </inactive>
864 </palette> 630 </palette>
865 </property> 631 </property>
866 <property stdset="1"> 632 <property stdset="1">
867 <name>frameShape</name> 633 <name>text</name>
868 <enum>Box</enum> 634 <string>OK</string>
635 </property>
636 </widget>
637 <widget row="3" column="0" >
638 <class>QPushButton</class>
639 <property stdset="1">
640 <name>name</name>
641 <cstring>button_4</cstring>
869 </property> 642 </property>
870 <property stdset="1"> 643 <property stdset="1">
871 <name>frameShadow</name> 644 <name>sizePolicy</name>
872 <enum>Raised</enum> 645 <sizepolicy>
646 <hsizetype>7</hsizetype>
647 <vsizetype>7</vsizetype>
648 </sizepolicy>
873 </property> 649 </property>
874 <property stdset="1"> 650 <property stdset="1">
875 <name>text</name> 651 <name>text</name>
876 <string>Enter</string> 652 <string>4</string>
877 </property> 653 </property>
654 </widget>
655 <widget row="2" column="1" >
656 <class>QPushButton</class>
878 <property stdset="1"> 657 <property stdset="1">
879 <name>alignment</name> 658 <name>name</name>
880 <set>AlignCenter</set> 659 <cstring>button_2</cstring>
881 </property> 660 </property>
882 <property> 661 <property stdset="1">
883 <name>hAlign</name> 662 <name>sizePolicy</name>
663 <sizepolicy>
664 <hsizetype>7</hsizetype>
665 <vsizetype>7</vsizetype>
666 </sizepolicy>
667 </property>
668 <property stdset="1">
669 <name>text</name>
670 <string>2</string>
671 </property>
672 </widget>
673 <widget row="3" column="1" >
674 <class>QPushButton</class>
675 <property stdset="1">
676 <name>name</name>
677 <cstring>button_5</cstring>
678 </property>
679 <property stdset="1">
680 <name>sizePolicy</name>
681 <sizepolicy>
682 <hsizetype>7</hsizetype>
683 <vsizetype>7</vsizetype>
684 </sizepolicy>
685 </property>
686 <property stdset="1">
687 <name>text</name>
688 <string>5</string>
689 </property>
690 </widget>
691 <widget row="4" column="1" >
692 <class>QPushButton</class>
693 <property stdset="1">
694 <name>name</name>
695 <cstring>button_8</cstring>
696 </property>
697 <property stdset="1">
698 <name>sizePolicy</name>
699 <sizepolicy>
700 <hsizetype>7</hsizetype>
701 <vsizetype>7</vsizetype>
702 </sizepolicy>
703 </property>
704 <property stdset="1">
705 <name>text</name>
706 <string>8</string>
884 </property> 707 </property>
885 </widget> 708 </widget>
886 <widget row="5" column="1" > 709 <widget row="5" column="1" >
887 <class>QLabel</class> 710 <class>QPushButton</class>
888 <property stdset="1"> 711 <property stdset="1">
889 <name>name</name> 712 <name>name</name>
890 <cstring>button_Skip</cstring> 713 <cstring>button_Skip</cstring>
891 </property> 714 </property>
892 <property stdset="1"> 715 <property stdset="1">
893 <name>sizePolicy</name> 716 <name>sizePolicy</name>
894 <sizepolicy> 717 <sizepolicy>
895 <hsizetype>5</hsizetype> 718 <hsizetype>7</hsizetype>
896 <vsizetype>5</vsizetype> 719 <vsizetype>7</vsizetype>
897 </sizepolicy> 720 </sizepolicy>
898 </property> 721 </property>
899 <property stdset="1"> 722 <property stdset="1">
900 <name>palette</name> 723 <name>palette</name>
901 <palette> 724 <palette>
902 <active> 725 <active>
903 <color> 726 <color>
904 <red>0</red> 727 <red>0</red>
905 <green>0</green> 728 <green>0</green>
906 <blue>0</blue> 729 <blue>0</blue>
907 </color> 730 </color>
908 <color> 731 <color>
909 <red>192</red> 732 <red>255</red>
910 <green>192</green> 733 <green>255</green>
911 <blue>192</blue> 734 <blue>127</blue>
912 </color> 735 </color>
913 <color> 736 <color>
914 <red>255</red> 737 <red>255</red>
915 <green>255</green> 738 <green>255</green>
916 <blue>255</blue> 739 <blue>254</blue>
917 </color> 740 </color>
918 <color> 741 <color>
919 <red>223</red> 742 <red>255</red>
920 <green>223</green> 743 <green>255</green>
921 <blue>223</blue> 744 <blue>190</blue>
922 </color> 745 </color>
923 <color> 746 <color>
924 <red>96</red> 747 <red>127</red>
925 <green>96</green> 748 <green>127</green>
926 <blue>96</blue> 749 <blue>63</blue>
927 </color> 750 </color>
928 <color> 751 <color>
929 <red>128</red> 752 <red>170</red>
930 <green>128</green> 753 <green>170</green>
931 <blue>128</blue> 754 <blue>85</blue>
932 </color> 755 </color>
933 <color> 756 <color>
934 <red>0</red> 757 <red>0</red>
935 <green>0</green> 758 <green>0</green>
936 <blue>0</blue> 759 <blue>0</blue>
937 </color> 760 </color>
938 <color> 761 <color>
939 <red>255</red> 762 <red>255</red>
940 <green>255</green> 763 <green>255</green>
941 <blue>255</blue> 764 <blue>255</blue>
942 </color> 765 </color>
943 <color> 766 <color>
944 <red>0</red> 767 <red>0</red>
945 <green>0</green> 768 <green>0</green>
946 <blue>0</blue> 769 <blue>0</blue>
947 </color> 770 </color>
948 <color> 771 <color>
949 <red>255</red> 772 <red>255</red>
950 <green>255</green> 773 <green>255</green>
951 <blue>255</blue> 774 <blue>255</blue>
952 </color> 775 </color>
953 <color> 776 <color>
954 <red>255</red> 777 <red>238</red>
955 <green>255</green> 778 <green>238</green>
956 <blue>127</blue> 779 <blue>230</blue>
957 </color> 780 </color>
958 <color> 781 <color>
959 <red>0</red> 782 <red>0</red>
960 <green>0</green> 783 <green>0</green>
961 <blue>0</blue> 784 <blue>0</blue>
962 </color> 785 </color>
963 <color> 786 <color>
787 <red>255</red>
788 <green>221</green>
789 <blue>118</blue>
790 </color>
791 <color>
964 <red>0</red> 792 <red>0</red>
965 <green>0</green> 793 <green>0</green>
966 <blue>0</blue> 794 <blue>0</blue>
967 </color> 795 </color>
968 <color>
969 <red>255</red>
970 <green>255</green>
971 <blue>255</blue>
972 </color>
973 </active> 796 </active>
974 <disabled> 797 <disabled>
975 <color> 798 <color>
976 <red>128</red> 799 <red>128</red>
977 <green>128</green> 800 <green>128</green>
978 <blue>128</blue> 801 <blue>128</blue>
979 </color> 802 </color>
980 <color> 803 <color>
981 <red>192</red> 804 <red>255</red>
982 <green>192</green> 805 <green>255</green>
983 <blue>192</blue> 806 <blue>127</blue>
984 </color> 807 </color>
985 <color> 808 <color>
986 <red>255</red> 809 <red>255</red>
987 <green>255</green> 810 <green>255</green>
988 <blue>255</blue> 811 <blue>254</blue>
989 </color> 812 </color>
990 <color> 813 <color>
991 <red>220</red> 814 <red>255</red>
992 <green>220</green> 815 <green>255</green>
993 <blue>220</blue> 816 <blue>165</blue>
994 </color> 817 </color>
995 <color> 818 <color>
996 <red>96</red> 819 <red>127</red>
997 <green>96</green> 820 <green>127</green>
998 <blue>96</blue> 821 <blue>63</blue>
999 </color> 822 </color>
1000 <color> 823 <color>
1001 <red>128</red> 824 <red>170</red>
1002 <green>128</green> 825 <green>170</green>
1003 <blue>128</blue> 826 <blue>85</blue>
1004 </color> 827 </color>
1005 <color> 828 <color>
1006 <red>0</red> 829 <red>0</red>
1007 <green>0</green> 830 <green>0</green>
1008 <blue>0</blue> 831 <blue>0</blue>
1009 </color> 832 </color>
1010 <color> 833 <color>
1011 <red>255</red> 834 <red>255</red>
1012 <green>255</green> 835 <green>255</green>
1013 <blue>255</blue> 836 <blue>255</blue>
1014 </color> 837 </color>
1015 <color> 838 <color>
1016 <red>128</red> 839 <red>128</red>
1017 <green>128</green> 840 <green>128</green>
1018 <blue>128</blue> 841 <blue>128</blue>
1019 </color> 842 </color>
1020 <color> 843 <color>
1021 <red>255</red> 844 <red>255</red>
1022 <green>255</green> 845 <green>255</green>
1023 <blue>255</blue> 846 <blue>255</blue>
1024 </color> 847 </color>
1025 <color> 848 <color>
1026 <red>255</red> 849 <red>238</red>
1027 <green>255</green> 850 <green>238</green>
1028 <blue>127</blue> 851 <blue>230</blue>
1029 </color> 852 </color>
1030 <color> 853 <color>
1031 <red>0</red> 854 <red>0</red>
1032 <green>0</green> 855 <green>0</green>
1033 <blue>0</blue> 856 <blue>0</blue>
1034 </color> 857 </color>
1035 <color> 858 <color>
859 <red>255</red>
860 <green>221</green>
861 <blue>118</blue>
862 </color>
863 <color>
1036 <red>0</red> 864 <red>0</red>
1037 <green>0</green> 865 <green>0</green>
1038 <blue>0</blue> 866 <blue>0</blue>
1039 </color> 867 </color>
1040 <color>
1041 <red>255</red>
1042 <green>255</green>
1043 <blue>255</blue>
1044 </color>
1045 </disabled> 868 </disabled>
1046 <inactive> 869 <inactive>
1047 <color> 870 <color>
1048 <red>0</red> 871 <red>0</red>
1049 <green>0</green> 872 <green>0</green>
1050 <blue>0</blue> 873 <blue>0</blue>
1051 </color> 874 </color>
1052 <color> 875 <color>
1053 <red>192</red> 876 <red>255</red>
1054 <green>192</green> 877 <green>255</green>
1055 <blue>192</blue> 878 <blue>127</blue>
1056 </color> 879 </color>
1057 <color> 880 <color>
1058 <red>255</red> 881 <red>255</red>
1059 <green>255</green> 882 <green>255</green>
1060 <blue>255</blue> 883 <blue>254</blue>
1061 </color> 884 </color>
1062 <color> 885 <color>
1063 <red>220</red> 886 <red>255</red>
1064 <green>220</green> 887 <green>255</green>
1065 <blue>220</blue> 888 <blue>165</blue>
1066 </color> 889 </color>
1067 <color> 890 <color>
1068 <red>96</red> 891 <red>127</red>
1069 <green>96</green> 892 <green>127</green>
1070 <blue>96</blue> 893 <blue>63</blue>
1071 </color> 894 </color>
1072 <color> 895 <color>
1073 <red>128</red> 896 <red>170</red>
1074 <green>128</green> 897 <green>170</green>
1075 <blue>128</blue> 898 <blue>85</blue>
1076 </color> 899 </color>
1077 <color> 900 <color>
1078 <red>0</red> 901 <red>0</red>
1079 <green>0</green> 902 <green>0</green>
1080 <blue>0</blue> 903 <blue>0</blue>
1081 </color> 904 </color>
1082 <color> 905 <color>
1083 <red>255</red> 906 <red>255</red>
1084 <green>255</green> 907 <green>255</green>
1085 <blue>255</blue> 908 <blue>255</blue>
1086 </color> 909 </color>
1087 <color> 910 <color>
1088 <red>0</red> 911 <red>0</red>
1089 <green>0</green> 912 <green>0</green>
1090 <blue>0</blue> 913 <blue>0</blue>
1091 </color> 914 </color>
1092 <color> 915 <color>
1093 <red>255</red> 916 <red>255</red>
1094 <green>255</green> 917 <green>255</green>
1095 <blue>255</blue> 918 <blue>255</blue>
1096 </color> 919 </color>
1097 <color> 920 <color>
1098 <red>255</red> 921 <red>238</red>
1099 <green>255</green> 922 <green>238</green>
1100 <blue>127</blue> 923 <blue>230</blue>
1101 </color> 924 </color>
1102 <color> 925 <color>
1103 <red>0</red> 926 <red>0</red>
1104 <green>0</green> 927 <green>0</green>
1105 <blue>0</blue> 928 <blue>0</blue>
1106 </color> 929 </color>
1107 <color> 930 <color>
931 <red>255</red>
932 <green>221</green>
933 <blue>118</blue>
934 </color>
935 <color>
1108 <red>0</red> 936 <red>0</red>
1109 <green>0</green> 937 <green>0</green>
1110 <blue>0</blue> 938 <blue>0</blue>
1111 </color> 939 </color>
1112 <color>
1113 <red>255</red>
1114 <green>255</green>
1115 <blue>255</blue>
1116 </color>
1117 </inactive> 940 </inactive>
1118 </palette> 941 </palette>
1119 </property> 942 </property>
1120 <property stdset="1"> 943 <property stdset="1">
1121 <name>frameShape</name>
1122 <enum>Box</enum>
1123 </property>
1124 <property stdset="1">
1125 <name>frameShadow</name>
1126 <enum>Raised</enum>
1127 </property>
1128 <property stdset="1">
1129 <name>text</name> 944 <name>text</name>
1130 <string>Skip</string> 945 <string>Skip</string>
1131 </property> 946 </property>
1132 <property stdset="1"> 947 <property stdset="1">
1133 <name>alignment</name> 948 <name>autoResize</name>
1134 <set>AlignCenter</set> 949 <bool>false</bool>
1135 </property>
1136 <property>
1137 <name>hAlign</name>
1138 </property> 950 </property>
1139 </widget> 951 </widget>
1140 </grid> 952 </grid>
1141</widget> 953</widget>
954<customwidgets>
955 <customwidget>
956 <class>QWidget</class>
957 <header location="global">qwidget.h</header>
958 <sizehint>
959 <width>-1</width>
960 <height>-1</height>
961 </sizehint>
962 <container>0</container>
963 <sizepolicy>
964 <hordata>5</hordata>
965 <verdata>5</verdata>
966 </sizepolicy>
967 <pixmap>image0</pixmap>
968 </customwidget>
969</customwidgets>
970<images>
971 <image>
972 <name>image0</name>
973 <data format="XPM.GZ" length="646">789c6dd2c10ac2300c00d07bbf2234b7229d1be245fc04c5a3201e4615f430059d0711ff5ddb2e6bb236ec90eed134cb5a19d8ef36602af5ecdbfeeac05dda0798d3abebde87e3faa374d3807fa0d633a52d38d8de6f679fe33fc776e196f53cd010188256a3600a292882096246517815ca99884606e18044a3a40d91824820924265a7923a2e8bcd05f33db1173e002913175f2a6be6d3294871a2d95fa00e8a94ee017b69d339d90df1e77c57ea072ede6758</data>
974 </image>
975</images>
976<tabstops>
977 <tabstop>display</tabstop>
978 <tabstop>button_1</tabstop>
979 <tabstop>button_2</tabstop>
980 <tabstop>button_3</tabstop>
981 <tabstop>button_4</tabstop>
982 <tabstop>button_5</tabstop>
983 <tabstop>button_6</tabstop>
984 <tabstop>button_7</tabstop>
985 <tabstop>button_8</tabstop>
986 <tabstop>button_9</tabstop>
987 <tabstop>button_0</tabstop>
988 <tabstop>button_Skip</tabstop>
989 <tabstop>button_OK</tabstop>
990</tabstops>
1142</UI> 991</UI>