# Generated by stepmaker version 20081113 (instance: 508523687947)
# Generated on Thu Nov 13 10:45:53 2008
# uname -a: Linux blond-vdsb.qa.qumranet.com 2.6.18-92.1.17.el5 #1 SMP Tue Nov 4 13:43:30 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
# QEMU command line: qemu-system-x86_64 ./ubuntu.qcow2 -cdrom /isos/linux/ubuntu-8.10-desktop-amd64.iso -m 512 -nographic -monitor unix:/tmp/monitor_508523687947,server,nowait &
# -------- Step 1 recorded at time 18.51 --------
# english
barrier_2 175 35 80 262 11413382dc673e62fe8f2ed6a810c5c6 93
key ret
# -------- Step 2 recorded at time 21.16 --------
# try ubuntu
barrier_2 373 48 136 216 2af67f5a5e42ba9b7259f10867481a04 13
key ret
# -------- Step 3 recorded at time 110.42 --------
# disable screensaver
barrier_2 546 423 0 0 eedd1a7c5b94ddbc7d37d1baf4981e16 446
key alt-f1
# -------- Step 4 recorded at time 113.58 --------
barrier_2 118 193 18 35 f78996649c3e7da444ea1937c569f695 16
key right
key right
# -------- Step 5 recorded at time 116.82 --------
barrier_2 117 189 194 35 4fe6849f794efef24166beecafd60b44 16
key down
# -------- Step 6 recorded at time 121.42 --------
barrier_2 85 675 359 33 c5df9a948b109d0e75e5edf7aa8ad16c 23
key right
# -------- Step 7 recorded at time 123.92 --------
barrier_2 189 66 352 31 1cf952c382a9f591248e880980f745ea 13
# Sending keys: up up up up up
key up
key up
key up
key up
key up
# -------- Step 8 recorded at time 127.83 --------
barrier_2 178 66 356 546 4990575b1c9792ed283dc3cf5cccf37c 20
key ret
# -------- Step 9 recorded at time 133.80 --------
barrier_2 105 62 218 193 c2ed5e13dbe79b247fc174338cb040f8 30
key tab
key tab
key tab
# -------- Step 10 recorded at time 136.53 --------
barrier_2 307 29 221 569 5cb23e5de320665d1bb2995dd3a1a390 14
key spc
# -------- Step 11 recorded at time 138.77 --------
# close screensaver dialog
barrier_2 306 27 221 570 6d4a6222da882425e5f7863f942133fc 11
key alt-c
# -------- Step 12 recorded at time 141.96 --------
# focus on desktop
barrier_2 143 108 445 340 8feb652e8d3812de5d44588e40241d15 16
key alt-ctrl-d
# -------- Step 13 recorded at time 147.43 --------
key down
key down
# -------- Step 14 recorded at time 149.72 --------
# install
barrier_2 77 94 47 137 02525e888873650a34554dc6cff7a7e7 11
key ret
# -------- Step 15 recorded at time 176.71 --------
# welcome
barrier_2 666 52 186 596 2c78dd30e81a4a7714e3a0111a4d4837 135
key alt-f
# -------- Step 16 recorded at time 183.30 --------
# location
barrier_2 655 44 193 601 b0a1c947f3edcb68442b2d4d48dbf4c9 33
key alt-f
# -------- Step 17 recorded at time 188.06 --------
# keyboard layout
barrier_2 643 44 206 602 6cf5b3f7057ff93182965d8c36fd720f 24
key alt-f
# -------- Step 18 recorded at time 227.80 --------
# partitioning
barrier_2 627 44 222 601 ae85a7ca8618b1f4cd3302c664053881 199
key alt-f
# -------- Step 19 recorded at time 248.93 --------
# user info
barrier_2 125 60 220 208 17e04072490a761c2cf8be8b44f0a247 106
# Sending keys: u s e r tab u s e r tab 1 2 3 4 5 6 tab 1 2 3 4 5 6 tab m o o f
key u
key s
key e
key r
key tab
key u
key s
key e
key r
key tab
key 1
key 2
key 3
key 4
key 5
key 6
key tab
key 1
key 2
key 3
key 4
key 5
key 6
key tab
key m
key o
key o
key f
# -------- Step 20 recorded at time 257.64 --------
barrier_2 47 57 182 451 87fb07c258e488c9fb74a81635380260 44
# Sending keys: alt-f
key alt-f
# -------- Step 21 recorded at time 264.21 --------
# begin installation
barrier_2 639 101 212 546 41ec69edd5d8ea98977cbd71fd3c928e 33
# Sending keys: ret
key ret
# -------- Step 22 recorded at time 1552.48 --------
# restart now
barrier_2 400 50 319 436 27861c890a349734019776827f59e742 6441
# Sending keys: ret
key ret
# -------- Step 23 recorded at time 1569.56 --------
barrier_2 259 49 108 369 1dc20dfefe0d669fa47f5a20336143f9 85
# Sending keys: ret
key ret
# -------- Step 24 recorded at time 1611.38 --------
# login
barrier_2 34 114 450 390 34d05e3fadaede2b278e4322c6864333 209
# Sending keys: u s e r ret
key u
key s
key e
key r
key ret
# -------- Step 25 recorded at time 1614.21 --------
barrier_2 29 114 452 390 0af0bd39a3900276df0b61b45fa421da 14
# Sending keys: 1 2 3 4 5 6 ret
key 1
key 2
key 3
key 4
key 5
key 6
key ret
# -------- Step 26 recorded at time 1658.02 --------
# desktop reached
barrier_2 98 91 467 345 2563f9c875174d4c1e6e2c39ac14722d 219
# Sending keys: alt-f1
key alt-f1
# -------- Step 27 recorded at time 1662.27 --------
barrier_2 86 192 13 37 e0d3e41ad05a44c166ec2c6601854e5a 21
# Sending keys: right right
key right
key right
# -------- Step 28 recorded at time 1669.04 --------
# shut down
barrier_2 106 242 193 38 bde4b4fe4f99363d35b5f6914b36c7c6 34
# Sending keys: up ret
key up
key ret
# -------- Step 29 recorded at time 1674.62 --------
barrier_2 386 69 322 250 5470d8be3a0a20e195638cd03771a623 28
# Sending keys: alt-s
key alt-s
