summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2009-11-13 06:20:37 (GMT)
committerBea Lam <bea.lam@nokia.com>2009-11-13 06:20:37 (GMT)
commita69086dd550e97957d985b5ec352f256bb8ddc29 (patch)
treeddbda4ab4449074c38d82754fc8d4a99a12d1110 /tests
parentec7590bf1b7120dd6948766280917a3db555d97f (diff)
parent7a05add9235a76f5a3fb721b574c3f41af32ea1f (diff)
downloadQt-a69086dd550e97957d985b5ec352f256bb8ddc29.zip
Qt-a69086dd550e97957d985b5ec352f256bb8ddc29.tar.gz
Qt-a69086dd550e97957d985b5ec352f256bb8ddc29.tar.bz2
Merge branch 'kinetic-declarativeui' of scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'tests')
-rw-r--r--tests/arthur/common/paintcommands.cpp16
-rw-r--r--tests/arthur/common/paintcommands.h2
-rw-r--r--tests/auto/auto.pro1
-rw-r--r--tests/auto/declarative/animations/tst_animations.cpp39
-rw-r--r--tests/auto/declarative/declarative.pro2
-rw-r--r--tests/auto/declarative/layouts/data/layouts.qml2
-rw-r--r--tests/auto/declarative/layouts/tst_layouts.cpp13
-rw-r--r--tests/auto/declarative/numberformatter/tst_numberformatter.cpp2
-rw-r--r--tests/auto/declarative/qmldom/data/MyItem.qml4
-rw-r--r--tests/auto/declarative/qmldom/tst_qmldom.cpp1048
-rw-r--r--tests/auto/declarative/qmleasefollow/data/easefollow1.qml3
-rw-r--r--tests/auto/declarative/qmleasefollow/data/easefollow2.qml5
-rw-r--r--tests/auto/declarative/qmleasefollow/data/easefollow3.qml6
-rw-r--r--tests/auto/declarative/qmleasefollow/qmleasefollow.pro8
-rw-r--r--tests/auto/declarative/qmleasefollow/tst_qmleasefollow.cpp122
-rw-r--r--tests/auto/declarative/qmlecmascript/data/scriptErrors.qml7
-rw-r--r--tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp20
-rw-r--r--tests/auto/declarative/qmlgraphicsgridview/data/gridview2.qml26
-rw-r--r--tests/auto/declarative/qmlgraphicsgridview/data/gridview3.qml6
-rw-r--r--tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp51
-rw-r--r--tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp2
-rw-r--r--tests/auto/declarative/qmlgraphicspathview/data/pathview1.qml4
-rw-r--r--tests/auto/declarative/qmlgraphicspathview/data/pathview2.qml57
-rw-r--r--tests/auto/declarative/qmlgraphicspathview/data/pathview3.qml58
-rw-r--r--tests/auto/declarative/qmlgraphicspathview/qmlgraphicspathview.pro8
-rw-r--r--tests/auto/declarative/qmlgraphicspathview/tst_qmlgraphicspathview.cpp123
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/data/http/ErrItem.qml7
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/data/http/NormItem.qml6
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTest.qml22
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestFail1.qml18
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestFail2.qml18
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestPass.qml18
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/data/httpfail/FailItem.qml5
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/data/httpslow/WaitItem.qml5
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/qmlgraphicstextedit.pro5
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp47
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/elements.html14
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/elements.qml7
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/newwindows.html16
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml32
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp95
-rw-r--r--tests/auto/declarative/qmllanguage/data/cppnamespace.2.qml5
-rw-r--r--tests/auto/declarative/qmllanguage/qmllanguage.pro9
-rw-r--r--tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml3
-rw-r--r--tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml2
-rw-r--r--tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml1
-rw-r--r--tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml2
-rw-r--r--tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.pngbin0 -> 84 bytes
-rw-r--r--tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir3
-rw-r--r--tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml3
-rw-r--r--tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir1
-rw-r--r--tests/auto/declarative/qmllanguage/testtypes.cpp1
-rw-r--r--tests/auto/declarative/qmllanguage/testtypes.h12
-rw-r--r--tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp32
-rw-r--r--tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp36
-rw-r--r--tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp2
-rw-r--r--tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp2
-rw-r--r--tests/auto/declarative/qmlqt/data/md5.qml6
-rw-r--r--tests/auto/declarative/qmlqt/tst_qmlqt.cpp15
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml10
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/data/unique.qml8
-rw-r--r--tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp64
-rw-r--r--tests/auto/declarative/repeater/data/intmodel.qml17
-rw-r--r--tests/auto/declarative/repeater/data/objlist.qml21
-rw-r--r--tests/auto/declarative/repeater/tst_repeater.cpp38
-rwxr-xr-xtests/auto/declarative/runall.sh9
-rw-r--r--tests/auto/declarative/states/data/explicit.qml14
-rw-r--r--tests/auto/declarative/states/data/parentChange4.qml30
-rw-r--r--tests/auto/declarative/states/data/parentChange5.qml30
-rw-r--r--tests/auto/declarative/states/data/restoreEntryValues.qml14
-rw-r--r--tests/auto/declarative/states/tst_states.cpp82
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/basic1.qml159
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/basic2.qml187
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/basic3.qml147
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/basic4.qml171
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/itemlist.0.pngbin0 -> 961 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/itemlist.1.pngbin0 -> 972 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/itemlist.2.pngbin0 -> 962 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/itemlist.3.pngbin0 -> 962 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/itemlist.4.pngbin0 -> 962 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/itemlist.5.pngbin0 -> 970 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/itemlist.6.pngbin0 -> 961 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/itemlist.qml2203
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.0.pngbin0 -> 1510 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.1.pngbin0 -> 1510 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.10.pngbin0 -> 1588 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.11.pngbin0 -> 1575 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.12.pngbin0 -> 1502 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.13.pngbin0 -> 1583 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.14.pngbin0 -> 1681 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.15.pngbin0 -> 1524 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.16.pngbin0 -> 1510 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.17.pngbin0 -> 1510 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.18.pngbin0 -> 1510 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.19.pngbin0 -> 1510 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.2.pngbin0 -> 1627 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.3.pngbin0 -> 1524 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.4.pngbin0 -> 1678 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.5.pngbin0 -> 1510 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.6.pngbin0 -> 1573 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.7.pngbin0 -> 1670 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.8.pngbin0 -> 1658 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.9.pngbin0 -> 1510 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data-MAC/listview.qml3079
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.0.pngbin0 -> 714 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.1.pngbin0 -> 714 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.10.pngbin0 -> 720 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.11.pngbin0 -> 755 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.12.pngbin0 -> 711 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.13.pngbin0 -> 718 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.14.pngbin0 -> 718 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.2.pngbin0 -> 714 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.3.pngbin0 -> 773 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.4.pngbin0 -> 715 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.5.pngbin0 -> 718 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.6.pngbin0 -> 720 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.7.pngbin0 -> 727 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.8.pngbin0 -> 720 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.9.pngbin0 -> 736 bytes
-rw-r--r--tests/auto/declarative/visual/Package_Views/data/packageviews.qml3935
-rw-r--r--tests/auto/declarative/visual/Package_Views/packageviews.qml81
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml (renamed from tests/auto/declarative/visual/bindinganimation/bindinganimation.qml)4
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png (renamed from tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png)bin817 -> 817 bytes
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png (renamed from tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png)bin815 -> 815 bytes
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.pngbin0 -> 817 bytes
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.pngbin0 -> 815 bytes
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.pngbin0 -> 813 bytes
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.pngbin0 -> 815 bytes
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.pngbin0 -> 817 bytes
-rw-r--r--tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml1655
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml (renamed from tests/auto/declarative/visual/colorAnimation/colorAnimation.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png (renamed from tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png)bin610 -> 610 bytes
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png (renamed from tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png)bin610 -> 610 bytes
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png (renamed from tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png)bin610 -> 610 bytes
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml (renamed from tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/easing/data/easing.0.png (renamed from tests/auto/declarative/visual/easing/data/easing.0.png)bin3393 -> 3393 bytes
-rw-r--r--tests/auto/declarative/visual/animation/easing/data/easing.1.png (renamed from tests/auto/declarative/visual/easing/data/easing.1.png)bin3381 -> 3381 bytes
-rw-r--r--tests/auto/declarative/visual/animation/easing/data/easing.2.png (renamed from tests/auto/declarative/visual/easing/data/easing.2.png)bin3101 -> 3101 bytes
-rw-r--r--tests/auto/declarative/visual/animation/easing/data/easing.3.png (renamed from tests/auto/declarative/visual/easing/data/easing.3.png)bin16542 -> 16542 bytes
-rw-r--r--tests/auto/declarative/visual/animation/easing/data/easing.qml (renamed from tests/auto/declarative/visual/easing/data/easing.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/easing/easing.qml (renamed from tests/auto/declarative/visual/easing/easing.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/easing/pics/qtlogo.png (renamed from tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.pngbin0 -> 774 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.pngbin0 -> 762 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.pngbin0 -> 773 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml463
-rw-r--r--tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml43
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png (renamed from tests/auto/declarative/visual/parentAction/data/parentAction.0.png)bin1652 -> 1652 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png (renamed from tests/auto/declarative/visual/parentAction/data/parentAction.1.png)bin1492 -> 1492 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png (renamed from tests/auto/declarative/visual/parentAction/data/parentAction.2.png)bin1424 -> 1424 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png (renamed from tests/auto/declarative/visual/parentAction/data/parentAction.3.png)bin1583 -> 1583 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png (renamed from tests/auto/declarative/visual/parentAction/data/parentAction.4.png)bin1640 -> 1640 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png (renamed from tests/auto/declarative/visual/parentAction/data/parentAction.5.png)bin1640 -> 1640 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml (renamed from tests/auto/declarative/visual/parentAction/data/parentAction.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/parentAction.qml (renamed from tests/auto/declarative/visual/parentAction/parentAction.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png (renamed from tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png)bin3211 -> 3211 bytes
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png (renamed from tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png)bin3214 -> 3214 bytes
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png (renamed from tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png)bin3209 -> 3209 bytes
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png (renamed from tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png)bin3211 -> 3211 bytes
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png (renamed from tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png)bin3214 -> 3214 bytes
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png (renamed from tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png)bin3214 -> 3214 bytes
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml (renamed from tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml (renamed from tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png (renamed from tests/auto/declarative/visual/easing/pics/qtlogo.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png (renamed from tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png)bin1418 -> 1418 bytes
-rw-r--r--tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png (renamed from tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png)bin1430 -> 1430 bytes
-rw-r--r--tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png (renamed from tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png)bin1431 -> 1431 bytes
-rw-r--r--tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml (renamed from tests/auto/declarative/visual/propertyAction/data/propertyAction.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml (renamed from tests/auto/declarative/visual/propertyAction/propertyAction.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png (renamed from tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png)bin1418 -> 1418 bytes
-rw-r--r--tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png (renamed from tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png)bin1431 -> 1431 bytes
-rw-r--r--tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml (renamed from tests/auto/declarative/visual/scriptAction/data/scriptAction.qml)0
-rw-r--r--tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml (renamed from tests/auto/declarative/visual/scriptAction/scriptAction.qml)0
-rw-r--r--tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml659
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/data/easefollow.0.pngbin0 -> 1305 bytes
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/data/easefollow.1.pngbin0 -> 1306 bytes
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/data/easefollow.2.pngbin0 -> 1305 bytes
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/data/easefollow.3.pngbin0 -> 1303 bytes
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/data/easefollow.4.pngbin0 -> 1303 bytes
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/data/easefollow.5.pngbin0 -> 1305 bytes
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/data/easefollow.6.pngbin0 -> 1306 bytes
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/data/easefollow.qml1807
-rw-r--r--tests/auto/declarative/visual/qmleasefollow/easefollow.qml40
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.0.pngbin0 -> 1303 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.1.pngbin0 -> 1317 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.2.pngbin0 -> 1318 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.3.pngbin0 -> 1306 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.4.pngbin0 -> 1308 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.5.pngbin0 -> 1303 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.6.pngbin0 -> 1323 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.7.pngbin0 -> 1325 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.8.pngbin0 -> 1346 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.9.pngbin0 -> 1303 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.qml2859
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.0.pngbin0 -> 1310 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.1.pngbin0 -> 1322 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.10.pngbin0 -> 1313 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.2.pngbin0 -> 1341 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.3.pngbin0 -> 1368 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.4.pngbin0 -> 1319 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.5.pngbin0 -> 1352 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.6.pngbin0 -> 1309 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.7.pngbin0 -> 1347 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.8.pngbin0 -> 1310 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.9.pngbin0 -> 1354 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.qml2479
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/gridview.qml51
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsgridview/gridview2.qml58
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.0.pngbin0 -> 2263 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.1.pngbin0 -> 2329 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.2.pngbin0 -> 2279 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.3.pngbin0 -> 2263 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.4.pngbin0 -> 2263 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.5.pngbin0 -> 2308 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.6.pngbin0 -> 2280 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.qml2303
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspathview/test-pathview-2.qml62
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.0.pngbin0 -> 1429 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.1.pngbin0 -> 1433 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.2.pngbin0 -> 1431 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.3.pngbin0 -> 1428 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.4.pngbin0 -> 1432 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.5.pngbin0 -> 1434 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.qml1603
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/repeater.0.pngbin0 -> 2790 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/data/repeater.qml339
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/dynamic.qml65
-rw-r--r--tests/auto/declarative/visual/qmlgraphicspositioners/repeater.qml15
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.0.pngbin0 -> 793 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.1.pngbin0 -> 795 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.2.pngbin0 -> 803 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.3.pngbin0 -> 805 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.4.pngbin0 -> 805 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.5.pngbin0 -> 805 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.6.pngbin0 -> 799 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.7.pngbin0 -> 799 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.8.pngbin0 -> 803 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.qml3555
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.0.pngbin0 -> 365 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.1.pngbin0 -> 365 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.2.pngbin0 -> 366 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.3.pngbin0 -> 362 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.qml1371
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.0.pngbin0 -> 793 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.1.pngbin0 -> 796 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.2.pngbin0 -> 804 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.3.pngbin0 -> 805 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.4.pngbin0 -> 805 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.5.pngbin0 -> 805 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.6.pngbin0 -> 801 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.7.pngbin0 -> 802 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.8.pngbin0 -> 802 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.qml3379
-rw-r--r--tests/auto/declarative/visual/repeater/data-MAC/basic1.0.pngbin0 -> 1550 bytes
-rw-r--r--tests/auto/declarative/visual/repeater/data-MAC/basic1.qml323
-rw-r--r--tests/auto/declarative/visual/repeater/data-MAC/basic2.0.pngbin0 -> 1550 bytes
-rw-r--r--tests/auto/declarative/visual/repeater/data-MAC/basic2.qml331
-rw-r--r--tests/auto/declarative/visual/repeater/data-MAC/basic3.0.pngbin0 -> 1550 bytes
-rw-r--r--tests/auto/declarative/visual/repeater/data-MAC/basic3.qml347
-rw-r--r--tests/auto/declarative/visual/repeater/data-MAC/basic4.0.pngbin0 -> 1550 bytes
-rw-r--r--tests/auto/declarative/visual/repeater/data-MAC/basic4.qml419
-rw-r--r--tests/auto/declarative/visual/webview/zooming/data/zooming.0.pngbin0 -> 735 bytes
-rw-r--r--tests/auto/declarative/visual/webview/zooming/data/zooming.1.pngbin0 -> 735 bytes
-rw-r--r--tests/auto/declarative/visual/webview/zooming/data/zooming.2.pngbin0 -> 735 bytes
-rw-r--r--tests/auto/declarative/visual/webview/zooming/data/zooming.3.pngbin0 -> 735 bytes
-rw-r--r--tests/auto/declarative/visual/webview/zooming/data/zooming.qml2115
-rw-r--r--tests/auto/declarative/visual/webview/zooming/zooming.html6
-rw-r--r--tests/auto/declarative/visual/webview/zooming/zooming.qml17
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/cdata.qml135
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/cdata.xml2
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/document.qml6
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/document.xml2
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/element.qml28
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/text.qml131
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/text.xml1
-rw-r--r--tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp36
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp17
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before22
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result25
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp3
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result8
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp3
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result12
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp5
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result6
-rw-r--r--tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp6
-rw-r--r--tests/auto/qaudioformat/tst_qaudioformat.cpp15
-rw-r--r--tests/auto/qaudioinput/tst_qaudioinput.cpp14
-rw-r--r--tests/auto/qaudiooutput/tst_qaudiooutput.cpp18
-rw-r--r--tests/auto/qcombobox/tst_qcombobox.cpp4
-rw-r--r--tests/auto/qdatastream/qdatastream.pro2
-rw-r--r--tests/auto/qdatastream/tst_qdatastream.cpp5
-rw-r--r--tests/auto/qfile/largefile/largefile.pro2
-rw-r--r--tests/auto/qfile/largefile/tst_largefile.cpp11
-rw-r--r--tests/auto/qfile/test/test.pro1
-rw-r--r--tests/auto/qfile/tst_qfile.cpp166
-rw-r--r--tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp9
-rw-r--r--tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp50
-rw-r--r--tests/auto/qimage/tst_qimage.cpp24
-rw-r--r--tests/auto/qimagewriter/tst_qimagewriter.cpp2
-rw-r--r--tests/auto/qitemdelegate/tst_qitemdelegate.cpp2
-rw-r--r--tests/auto/qlcdnumber/tst_qlcdnumber.cpp16
-rw-r--r--tests/auto/qlistwidget/tst_qlistwidget.cpp2
-rw-r--r--tests/auto/qlocalsocket/tst_qlocalsocket.cpp10
-rw-r--r--tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp39
-rw-r--r--tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp18
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp479
-rw-r--r--tests/auto/qpainter/tst_qpainter.cpp18
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp6
-rw-r--r--tests/auto/qregexp/tst_qregexp.cpp28
-rw-r--r--tests/auto/qregion/tst_qregion.cpp20
-rw-r--r--tests/auto/qscopedpointer/tst_qscopedpointer.cpp132
-rw-r--r--tests/auto/qscriptengine/tst_qscriptengine.cpp2
-rw-r--r--tests/auto/qtextdocument/tst_qtextdocument.cpp10
-rw-r--r--tests/benchmarks/qnetworkreply/tst_qnetworkreply.cpp530
-rw-r--r--tests/manual/windowflags/previewwindow.cpp20
-rw-r--r--tests/manual/windowflags/previewwindow.h6
319 files changed, 39486 insertions, 1401 deletions
diff --git a/tests/arthur/common/paintcommands.cpp b/tests/arthur/common/paintcommands.cpp
index 44deb0e..feabaed 100644
--- a/tests/arthur/common/paintcommands.cpp
+++ b/tests/arthur/common/paintcommands.cpp
@@ -587,10 +587,10 @@ void PaintCommands::staticInit()
"^image_setColor\\s+([\\w.:\\/]*)\\s+([0-9]*)\\s+#([0-9]*)$",
"image_setColor <imageName> <index> <color>",
"image_setColor myImage 0 black");
- DECL_PAINTCOMMAND("image_setNumColors", command_image_setNumColors,
- "^image_setNumColors\\s+([\\w.:\\/]*)\\s+([0-9]*)$",
- "image_setNumColors <imageName> <nbColors>",
- "image_setNumColors myImage 128");
+ DECL_PAINTCOMMAND("image_setColorCount", command_image_setColorCount,
+ "^image_setColorCount\\s+([\\w.:\\/]*)\\s+([0-9]*)$",
+ "image_setColorCount <imageName> <nbColors>",
+ "image_setColorCount myImage 128");
DECL_PAINTCOMMANDSECTION("transformations");
DECL_PAINTCOMMAND("resetMatrix", command_resetMatrix,
@@ -2245,7 +2245,7 @@ void PaintCommands::command_image_load(QRegExp re)
}
/***************************************************************************************************/
-void PaintCommands::command_image_setNumColors(QRegExp re)
+void PaintCommands::command_image_setColorCount(QRegExp re)
{
QStringList caps = re.capturedTexts();
@@ -2253,10 +2253,10 @@ void PaintCommands::command_image_setNumColors(QRegExp re)
int count = convertToInt(caps.at(2));
if (m_verboseMode)
- printf(" -(lance) image_setNumColors(%s), %d -> %d\n",
- qPrintable(name), m_imageMap[name].numColors(), count);
+ printf(" -(lance) image_setColorCount(%s), %d -> %d\n",
+ qPrintable(name), m_imageMap[name].colorCount(), count);
- m_imageMap[name].setNumColors(count);
+ m_imageMap[name].setColorCount(count);
}
/***************************************************************************************************/
diff --git a/tests/arthur/common/paintcommands.h b/tests/arthur/common/paintcommands.h
index ba91a92..e2c4d67 100644
--- a/tests/arthur/common/paintcommands.h
+++ b/tests/arthur/common/paintcommands.h
@@ -239,7 +239,7 @@ private:
void command_image_convertToFormat(QRegExp re);
void command_image_load(QRegExp re);
void command_image_setColor(QRegExp re);
- void command_image_setNumColors(QRegExp re);
+ void command_image_setColorCount(QRegExp re);
// commands: transformation
void command_resetMatrix(QRegExp re);
diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro
index 1ec4c16..46f26f8 100644
--- a/tests/auto/auto.pro
+++ b/tests/auto/auto.pro
@@ -135,6 +135,7 @@ SUBDIRS += \
qfocusevent \
qfocusframe \
qfont \
+ qfontcombobox \
qfontdatabase \
qfontdialog \
qfontmetrics \
diff --git a/tests/auto/declarative/animations/tst_animations.cpp b/tests/auto/declarative/animations/tst_animations.cpp
index 74d5f46..2692cb6 100644
--- a/tests/auto/declarative/animations/tst_animations.cpp
+++ b/tests/auto/declarative/animations/tst_animations.cpp
@@ -53,6 +53,7 @@ public:
tst_animations() {}
private slots:
+ void simpleProperty();
void simpleNumber();
void simpleColor();
void alwaysRunToEnd();
@@ -73,7 +74,31 @@ private slots:
} \
QCOMPARE(lhs, rhs); \
} while (false)
-
+
+void tst_animations::simpleProperty()
+{
+ QmlGraphicsRectangle rect;
+ QmlPropertyAnimation animation;
+ animation.setTarget(&rect);
+ animation.setProperty("pos");
+ animation.setTo(QPointF(200,200));
+ QVERIFY(animation.target() == &rect);
+ QVERIFY(animation.property() == "pos");
+ QVERIFY(animation.to().toPointF() == QPointF(200,200));
+ animation.start();
+ QVERIFY(animation.isRunning());
+ QTest::qWait(animation.duration());
+ QTIMED_COMPARE(rect.pos(), QPointF(200,200));
+
+ rect.setPos(0,0);
+ animation.start();
+ animation.pause();
+ QVERIFY(animation.isRunning());
+ QVERIFY(animation.isPaused());
+ animation.setCurrentTime(125);
+ QCOMPARE(rect.pos(), QPointF(100,100));
+}
+
void tst_animations::simpleNumber()
{
QmlGraphicsRectangle rect;
@@ -81,13 +106,19 @@ void tst_animations::simpleNumber()
animation.setTarget(&rect);
animation.setProperty("x");
animation.setTo(200);
+ QVERIFY(animation.target() == &rect);
+ QVERIFY(animation.property() == "x");
+ QVERIFY(animation.to() == 200);
animation.start();
+ QVERIFY(animation.isRunning());
QTest::qWait(animation.duration());
QTIMED_COMPARE(rect.x(), qreal(200));
rect.setX(0);
animation.start();
animation.pause();
+ QVERIFY(animation.isRunning());
+ QVERIFY(animation.isPaused());
animation.setCurrentTime(125);
QCOMPARE(rect.x(), qreal(100));
}
@@ -99,13 +130,19 @@ void tst_animations::simpleColor()
animation.setTarget(&rect);
animation.setProperty("color");
animation.setTo(QColor("red"));
+ QVERIFY(animation.target() == &rect);
+ QVERIFY(animation.property() == "color");
+ QVERIFY(animation.to() == QColor("red"));
animation.start();
+ QVERIFY(animation.isRunning());
QTest::qWait(animation.duration());
QTIMED_COMPARE(rect.color(), QColor("red"));
rect.setColor(QColor("blue"));
animation.start();
animation.pause();
+ QVERIFY(animation.isRunning());
+ QVERIFY(animation.isPaused());
animation.setCurrentTime(125);
QCOMPARE(rect.color(), QColor::fromRgbF(0.498039, 0, 0.498039, 1));
}
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro
index 8a3a06c..bcf908d 100644
--- a/tests/auto/declarative/declarative.pro
+++ b/tests/auto/declarative/declarative.pro
@@ -16,6 +16,7 @@ SUBDIRS += \
qmlconnection \ # Cover
qmlcontext \ # Cover
qmldom \ # Cover
+ qmleasefollow \ # Cover
qmlecmascript \ # Cover
qmlerror \ # Cover
qmlfontloader \ # Cover
@@ -27,6 +28,7 @@ SUBDIRS += \
qmlgraphicslistview \ # Cover
qmlgraphicsloader \ # Cover
qmlgraphicsparticles \ # Cover
+ qmlgraphicspathview \ # Cover
qmlgraphicspositioners \ # Cover
qmlgraphicstext \ # Cover
qmlgraphicstextedit \ # Cover
diff --git a/tests/auto/declarative/layouts/data/layouts.qml b/tests/auto/declarative/layouts/data/layouts.qml
index b0ee63b..00d785d 100644
--- a/tests/auto/declarative/layouts/data/layouts.qml
+++ b/tests/auto/declarative/layouts/data/layouts.qml
@@ -6,7 +6,7 @@ Item {
height:300
GraphicsObjectContainer {
- anchors.fill:parent
+ anchors.fill: parent
synchronizedResizing: true
QGraphicsWidget {
diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp
index 1c2330d..0f832bf 100644
--- a/tests/auto/declarative/layouts/tst_layouts.cpp
+++ b/tests/auto/declarative/layouts/tst_layouts.cpp
@@ -43,6 +43,7 @@
#include <qmlview.h>
#include <private/qmlgraphicslayoutitem_p.h>
#include <qmlexpression.h>
+#include <QStyle>
class tst_QmlGraphicsLayouts : public QObject
{
@@ -74,7 +75,12 @@ void tst_QmlGraphicsLayouts::test_qml()
QmlGraphicsLayoutItem *right = static_cast<QmlGraphicsLayoutItem*>(canvas->root()->findChild<QmlGraphicsItem*>("right"));
QVERIFY(right != 0);
- qreal gvMargin = 9.0;
+ qreal l = QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin);
+ qreal r = QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin);
+ qreal t = QApplication::style()->pixelMetric(QStyle::PM_LayoutTopMargin);
+ qreal b = QApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin);
+ QVERIFY2(l == r && r == t && t == b, "Test assumes equal margins.");
+ qreal gvMargin = l;
//Preferred Size
canvas->root()->setWidth(300 + 2*gvMargin);
canvas->root()->setHeight(300 + 2*gvMargin);
@@ -116,6 +122,7 @@ void tst_QmlGraphicsLayouts::test_qml()
QCOMPARE(right->width(), 400.0);
QCOMPARE(right->height(), 300.0);
+ delete canvas;
}
void tst_QmlGraphicsLayouts::test_cpp()
@@ -129,8 +136,8 @@ QmlView *tst_QmlGraphicsLayouts::createView(const QString &filename)
QFile file(filename);
file.open(QFile::ReadOnly);
- QString xml = file.readAll();
- canvas->setQml(xml, filename);
+ QString qml = file.readAll();
+ canvas->setQml(qml, filename);
return canvas;
}
diff --git a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp
index 152d6e3..1d68f35 100644
--- a/tests/auto/declarative/numberformatter/tst_numberformatter.cpp
+++ b/tests/auto/declarative/numberformatter/tst_numberformatter.cpp
@@ -212,6 +212,8 @@ void tst_numberformat::text()
QCOMPARE(formatter->format(), format);
QCOMPARE(formatter->text(), text);
+
+ delete formatter;
}
QTEST_MAIN(tst_numberformat)
diff --git a/tests/auto/declarative/qmldom/data/MyItem.qml b/tests/auto/declarative/qmldom/data/MyItem.qml
new file mode 100644
index 0000000..1472f01
--- /dev/null
+++ b/tests/auto/declarative/qmldom/data/MyItem.qml
@@ -0,0 +1,4 @@
+import Qt 4.6
+
+Item {
+}
diff --git a/tests/auto/declarative/qmldom/tst_qmldom.cpp b/tests/auto/declarative/qmldom/tst_qmldom.cpp
index 350e985..9e1a2a8 100644
--- a/tests/auto/declarative/qmldom/tst_qmldom.cpp
+++ b/tests/auto/declarative/qmldom/tst_qmldom.cpp
@@ -55,13 +55,25 @@ public:
private slots:
void loadSimple();
void loadProperties();
+ void loadGroupedProperties();
void loadChildObject();
void loadComposite();
void loadImports();
+ void loadErrors();
+ void loadSyntaxErrors();
+ void loadRemoteErrors();
+ void loadDynamicProperty();
+ void loadComponent();
void testValueSource();
void testValueInterceptor();
+ void object_dynamicProperty();
+ void object_property();
+ void object_url();
+
+ void copy();
+ void position();
private:
QmlEngine engine;
};
@@ -85,6 +97,7 @@ void tst_qmldom::loadSimple()
QVERIFY(rootObject.objectTypeMinorVersion() == 6);
}
+// Test regular properties
void tst_qmldom::loadProperties()
{
QByteArray qml = "import Qt 4.6\n"
@@ -100,15 +113,119 @@ void tst_qmldom::loadProperties()
QmlDomProperty xProperty = rootObject.property("x");
QVERIFY(xProperty.propertyName() == "x");
+ QCOMPARE(xProperty.propertyNameParts().count(), 1);
+ QVERIFY(xProperty.propertyNameParts().at(0) == "x");
+ QCOMPARE(xProperty.position(), 32);
+ QCOMPARE(xProperty.length(), 1);
QVERIFY(xProperty.value().isLiteral());
QVERIFY(xProperty.value().toLiteral().literal() == "300");
QmlDomProperty visibleProperty = rootObject.property("visible");
QVERIFY(visibleProperty.propertyName() == "visible");
+ QCOMPARE(visibleProperty.propertyNameParts().count(), 1);
+ QVERIFY(visibleProperty.propertyNameParts().at(0) == "visible");
+ QCOMPARE(visibleProperty.position(), 41);
+ QCOMPARE(visibleProperty.length(), 7);
QVERIFY(visibleProperty.value().isLiteral());
QVERIFY(visibleProperty.value().toLiteral().literal() == "true");
}
+// Test grouped properties
+void tst_qmldom::loadGroupedProperties()
+{
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item { anchors.left: parent.left; anchors.right: parent.right }";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootItem = document.rootObject();
+ QVERIFY(rootItem.isValid());
+ QVERIFY(rootItem.properties().size() == 2);
+
+ // Order is not deterministic
+ QmlDomProperty p0 = rootItem.properties().at(0);
+ QmlDomProperty p1 = rootItem.properties().at(1);
+ QmlDomProperty leftProperty;
+ QmlDomProperty rightProperty;
+ if (p0.propertyName() == "anchors.left") {
+ leftProperty = p0;
+ rightProperty = p1;
+ } else {
+ leftProperty = p1;
+ rightProperty = p0;
+ }
+
+ QVERIFY(leftProperty.propertyName() == "anchors.left");
+ QCOMPARE(leftProperty.propertyNameParts().count(), 2);
+ QVERIFY(leftProperty.propertyNameParts().at(0) == "anchors");
+ QVERIFY(leftProperty.propertyNameParts().at(1) == "left");
+ QCOMPARE(leftProperty.position(), 21);
+ QCOMPARE(leftProperty.length(), 12);
+ QVERIFY(leftProperty.value().isBinding());
+ QVERIFY(leftProperty.value().toBinding().binding() == "parent.left");
+
+ QVERIFY(rightProperty.propertyName() == "anchors.right");
+ QCOMPARE(rightProperty.propertyNameParts().count(), 2);
+ QVERIFY(rightProperty.propertyNameParts().at(0) == "anchors");
+ QVERIFY(rightProperty.propertyNameParts().at(1) == "right");
+ QCOMPARE(rightProperty.position(), 48);
+ QCOMPARE(rightProperty.length(), 13);
+ QVERIFY(rightProperty.value().isBinding());
+ QVERIFY(rightProperty.value().toBinding().binding() == "parent.right");
+ }
+
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item { \n"
+ " anchors {\n"
+ " left: parent.left\n"
+ " right: parent.right\n"
+ " }\n"
+ "}";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootItem = document.rootObject();
+ QVERIFY(rootItem.isValid());
+ QVERIFY(rootItem.properties().size() == 2);
+
+ // Order is not deterministic
+ QmlDomProperty p0 = rootItem.properties().at(0);
+ QmlDomProperty p1 = rootItem.properties().at(1);
+ QmlDomProperty leftProperty;
+ QmlDomProperty rightProperty;
+ if (p0.propertyName() == "anchors.left") {
+ leftProperty = p0;
+ rightProperty = p1;
+ } else {
+ leftProperty = p1;
+ rightProperty = p0;
+ }
+
+ QVERIFY(leftProperty.propertyName() == "anchors.left");
+ QCOMPARE(leftProperty.propertyNameParts().count(), 2);
+ QVERIFY(leftProperty.propertyNameParts().at(0) == "anchors");
+ QVERIFY(leftProperty.propertyNameParts().at(1) == "left");
+ QCOMPARE(leftProperty.position(), 44);
+ QCOMPARE(leftProperty.length(), 4);
+ QVERIFY(leftProperty.value().isBinding());
+ QVERIFY(leftProperty.value().toBinding().binding() == "parent.left");
+
+ QVERIFY(rightProperty.propertyName() == "anchors.right");
+ QCOMPARE(rightProperty.propertyNameParts().count(), 2);
+ QVERIFY(rightProperty.propertyNameParts().at(0) == "anchors");
+ QVERIFY(rightProperty.propertyNameParts().at(1) == "right");
+ QCOMPARE(rightProperty.position(), 70);
+ QCOMPARE(rightProperty.length(), 5);
+ QVERIFY(rightProperty.value().isBinding());
+ QVERIFY(rightProperty.value().toBinding().binding() == "parent.right");
+ }
+
+}
+
void tst_qmldom::loadChildObject()
{
QByteArray qml = "import Qt 4.6\n"
@@ -212,6 +329,7 @@ void tst_qmldom::testValueInterceptor()
QVERIFY(animationValue.isObject());
}
+// Test QmlDomDocument::imports()
void tst_qmldom::loadImports()
{
QByteArray qml = "import Qt 4.6\n"
@@ -259,6 +377,936 @@ void tst_qmldom::loadImports()
QCOMPARE(import.version(), QLatin1String(""));
}
+// Test loading a file with errors
+void tst_qmldom::loadErrors()
+{
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {\n"
+ " foo: 12\n"
+ "}";
+
+ QmlDomDocument document;
+ QVERIFY(false == document.load(&engine, qml));
+
+ QCOMPARE(document.errors().count(), 1);
+ QmlError error = document.errors().first();
+
+ QCOMPARE(error.url(), QUrl());
+ QCOMPARE(error.line(), 3);
+ QCOMPARE(error.column(), 3);
+ QCOMPARE(error.description(), QString("Cannot assign to non-existant property \"foo\""));
+}
+
+// Test loading a file with syntax errors
+void tst_qmldom::loadSyntaxErrors()
+{
+ QByteArray qml = "import Qt 4.6\n"
+ "asdf";
+
+ QmlDomDocument document;
+ QVERIFY(false == document.load(&engine, qml));
+
+ QCOMPARE(document.errors().count(), 1);
+ QmlError error = document.errors().first();
+
+ QCOMPARE(error.url(), QUrl());
+ QCOMPARE(error.line(), 2);
+ QCOMPARE(error.column(), 1);
+ QCOMPARE(error.description(), QString("Syntax error"));
+}
+
+// Test attempting to load a file with remote references
+void tst_qmldom::loadRemoteErrors()
+{
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {\n"
+ " Script {\n"
+ " source: \"http://localhost/exampleQmlScript.js\""
+ " }\n"
+ "}";
+ QmlDomDocument document;
+ QVERIFY(false == document.load(&engine, qml));
+
+ QCOMPARE(document.errors().count(), 1);
+ QmlError error = document.errors().first();
+
+ QCOMPARE(error.url(), QUrl());
+ QCOMPARE(error.line(), -1);
+ QCOMPARE(error.column(), -1);
+ QCOMPARE(error.description(), QString("QmlDomDocument supports local types only"));
+}
+
+// Test dynamic property declarations
+void tst_qmldom::loadDynamicProperty()
+{
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {\n"
+ " property int a\n"
+ " property bool b\n"
+ " property double c\n"
+ " property real d\n"
+ " property string e\n"
+ " property url f\n"
+ " property color g\n"
+ " property date h\n"
+ " property var i\n"
+ " property variant j\n"
+ " property Object k\n"
+ "}";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootObject = document.rootObject();
+ QVERIFY(rootObject.isValid());
+
+ QCOMPARE(rootObject.dynamicProperties().count(), 11);
+
+#define DP_TEST(index, name, type, test_position, test_length, propTypeName) \
+ { \
+ QmlDomDynamicProperty d = rootObject.dynamicProperties().at(index); \
+ QVERIFY(d.isValid()); \
+ QVERIFY(d.propertyName() == # name ); \
+ QVERIFY(d.propertyType() == type); \
+ QVERIFY(d.propertyTypeName() == propTypeName); \
+ QVERIFY(d.isDefaultProperty() == false); \
+ QVERIFY(d.defaultValue().isValid() == false); \
+ QCOMPARE(d.position(), test_position); \
+ QCOMPARE(d.length(), test_length); \
+ } \
+
+ DP_TEST(0, a, QVariant::Int, 25, 14, "int");
+ DP_TEST(1, b, QVariant::Bool, 44, 15, "bool");
+ DP_TEST(2, c, QVariant::Double, 64, 17, "double");
+ DP_TEST(3, d, QMetaType::QReal, 86, 15, "real");
+ DP_TEST(4, e, QVariant::String, 106, 17, "string");
+ DP_TEST(5, f, QVariant::Url, 128, 14, "url");
+ DP_TEST(6, g, QVariant::Color, 147, 16, "color");
+ DP_TEST(7, h, QVariant::Date, 168, 15, "date");
+ DP_TEST(8, i, qMetaTypeId<QVariant>(), 188, 14, "var");
+ DP_TEST(9, j, qMetaTypeId<QVariant>(), 207, 18, "variant");
+ DP_TEST(10, k, -1, 230, 17, "Object");
+ }
+
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {\n"
+ " property int a: 12\n"
+ " property int b: a + 6\n"
+ " default property Object c\n"
+ "}\n";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootObject = document.rootObject();
+ QVERIFY(rootObject.isValid());
+
+ QCOMPARE(rootObject.dynamicProperties().count(), 3);
+
+ {
+ QmlDomDynamicProperty d = rootObject.dynamicProperties().at(0);
+ QVERIFY(d.isDefaultProperty() == false);
+ QVERIFY(d.defaultValue().isValid());
+ QVERIFY(d.defaultValue().propertyName() == "a");
+ QVERIFY(d.defaultValue().value().isLiteral());
+ }
+
+ {
+ QmlDomDynamicProperty d = rootObject.dynamicProperties().at(1);
+ QVERIFY(d.isDefaultProperty() == false);
+ QVERIFY(d.defaultValue().isValid());
+ QVERIFY(d.defaultValue().propertyName() == "b");
+ QVERIFY(d.defaultValue().value().isBinding());
+ }
+
+ {
+ QmlDomDynamicProperty d = rootObject.dynamicProperties().at(2);
+ QVERIFY(d.isDefaultProperty() == true);
+ QVERIFY(d.defaultValue().isValid() == false);
+ }
+ }
+}
+
+// Test inline components
+void tst_qmldom::loadComponent()
+{
+ // Explicit component
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {\n"
+ " Component {\n"
+ " id: myComponent\n"
+ " Item {}\n"
+ " }\n"
+ "}";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootItem = document.rootObject();
+ QVERIFY(rootItem.isValid());
+ QVERIFY(rootItem.properties().size() == 1);
+
+ QmlDomProperty listProperty = rootItem.properties().at(0);
+ QVERIFY(listProperty.isDefaultProperty());
+ QVERIFY(listProperty.value().isList());
+
+ QmlDomList list = listProperty.value().toList();
+ QVERIFY(list.values().size() == 1);
+
+ QmlDomObject componentObject = list.values().first().toObject();
+ QVERIFY(componentObject.isValid());
+ QVERIFY(componentObject.objectClassName() == "Component");
+ QVERIFY(componentObject.isComponent());
+
+ QmlDomComponent component = componentObject.toComponent();
+ QVERIFY(component.isValid());
+ QVERIFY(component.objectType() == "Qt/Component");
+ QVERIFY(component.objectTypeMajorVersion() == 4);
+ QVERIFY(component.objectTypeMinorVersion() == 6);
+ QVERIFY(component.objectClassName() == "Component");
+ QVERIFY(component.objectId() == "myComponent");
+ QVERIFY(component.properties().isEmpty());
+ QVERIFY(component.dynamicProperties().isEmpty());
+ QVERIFY(component.isCustomType() == false);
+ QVERIFY(component.customTypeData() == "");
+ QVERIFY(component.isComponent());
+ QCOMPARE(component.position(), 25);
+ QCOMPARE(component.length(), 57);
+
+ QVERIFY(component.componentRoot().isValid());
+ QVERIFY(component.componentRoot().objectClassName() == "Item");
+ }
+
+ // Implicit component
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "ListView {\n"
+ " delegate: Item {}\n"
+ "}";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootItem = document.rootObject();
+ QVERIFY(rootItem.isValid());
+ QVERIFY(rootItem.properties().size() == 1);
+
+ QmlDomProperty delegate = rootItem.property("delegate");
+
+ QmlDomObject componentObject = delegate.value().toObject();
+ QVERIFY(componentObject.isValid());
+ QVERIFY(componentObject.objectClassName() == "Component");
+ QVERIFY(componentObject.isComponent());
+
+ QmlDomComponent component = componentObject.toComponent();
+ QVERIFY(component.isValid());
+ QVERIFY(component.objectType() == "Qt/Component");
+ QVERIFY(component.objectClassName() == "Component");
+ QVERIFY(component.objectId() == "");
+ QVERIFY(component.properties().isEmpty());
+ QVERIFY(component.dynamicProperties().isEmpty());
+ QVERIFY(component.isCustomType() == false);
+ QVERIFY(component.customTypeData() == "");
+ QVERIFY(component.isComponent());
+ QCOMPARE(component.position(), 39);
+ QCOMPARE(component.length(), 7);
+
+ QVERIFY(component.componentRoot().isValid());
+ QVERIFY(component.componentRoot().objectClassName() == "Item");
+ }
+}
+
+// Test QmlDomObject::dynamicProperty() method
+void tst_qmldom::object_dynamicProperty()
+{
+ // Invalid object
+ {
+ QmlDomObject object;
+ QVERIFY(object.dynamicProperty("").isValid() == false);
+ QVERIFY(object.dynamicProperty("foo").isValid() == false);
+ }
+
+
+ // Valid object, no dynamic properties
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {}";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootObject = document.rootObject();
+ QVERIFY(rootObject.isValid());
+
+ QVERIFY(rootObject.dynamicProperty("").isValid() == false);
+ QVERIFY(rootObject.dynamicProperty("foo").isValid() == false);
+ }
+
+ // Valid object, dynamic properties
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {\n"
+ " property int a\n"
+ "}";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootObject = document.rootObject();
+ QVERIFY(rootObject.isValid());
+
+ QVERIFY(rootObject.dynamicProperty("").isValid() == false);
+ QVERIFY(rootObject.dynamicProperty("foo").isValid() == false);
+
+ QmlDomDynamicProperty p = rootObject.dynamicProperty("a");
+ QVERIFY(p.isValid());
+ QVERIFY(p.propertyName() == "a");
+ QVERIFY(p.propertyType() == QVariant::Int);
+ QVERIFY(p.propertyTypeName() == "int");
+ QVERIFY(p.isDefaultProperty() == false);
+ QCOMPARE(p.position(), 25);
+ QCOMPARE(p.length(), 14);
+ }
+
+}
+
+// Test QmlObject::property() method
+void tst_qmldom::object_property()
+{
+ // Invalid object
+ {
+ QmlDomObject object;
+ QVERIFY(object.property("").isValid() == false);
+ QVERIFY(object.property("foo").isValid() == false);
+ }
+
+ // Valid object - no default
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {\n"
+ " x: 10\n"
+ " y: 12\n"
+ "}\n";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootObject = document.rootObject();
+ QVERIFY(rootObject.isValid());
+
+ QVERIFY(rootObject.property("").isValid() == false);
+ QVERIFY(rootObject.property("foo").isValid() == false);
+
+ QmlDomProperty x = rootObject.property("x");
+ QVERIFY(x.isValid());
+ QVERIFY(x.propertyName() == "x");
+ QVERIFY(x.propertyNameParts().count() == 1);
+ QVERIFY(x.propertyNameParts().at(0) == "x");
+ QVERIFY(x.isDefaultProperty() == false);
+ QVERIFY(x.value().isLiteral());
+ QVERIFY(x.value().toLiteral().literal() == "10");
+ QCOMPARE(x.position(), 25);
+ QCOMPARE(x.length(), 1);
+
+ QmlDomProperty y = rootObject.property("y");
+ QVERIFY(y.isValid());
+ QVERIFY(y.propertyName() == "y");
+ QVERIFY(y.propertyNameParts().count() == 1);
+ QVERIFY(y.propertyNameParts().at(0) == "y");
+ QVERIFY(y.isDefaultProperty() == false);
+ QVERIFY(y.value().isLiteral());
+ QVERIFY(y.value().toLiteral().literal() == "12");
+ QCOMPARE(y.position(), 35);
+ QCOMPARE(y.length(), 1);
+ }
+
+ // Valid object - with default
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {\n"
+ " x: 10\n"
+ " y: 12\n"
+ " Item {}\n"
+ "}\n";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootObject = document.rootObject();
+ QVERIFY(rootObject.isValid());
+
+ QVERIFY(rootObject.property("").isValid() == false);
+ QVERIFY(rootObject.property("foo").isValid() == false);
+
+ QmlDomProperty x = rootObject.property("x");
+ QVERIFY(x.isValid());
+ QVERIFY(x.propertyName() == "x");
+ QVERIFY(x.propertyNameParts().count() == 1);
+ QVERIFY(x.propertyNameParts().at(0) == "x");
+ QVERIFY(x.isDefaultProperty() == false);
+ QVERIFY(x.value().isLiteral());
+ QVERIFY(x.value().toLiteral().literal() == "10");
+ QCOMPARE(x.position(), 25);
+ QCOMPARE(x.length(), 1);
+
+ QmlDomProperty y = rootObject.property("y");
+ QVERIFY(y.isValid());
+ QVERIFY(y.propertyName() == "y");
+ QVERIFY(y.propertyNameParts().count() == 1);
+ QVERIFY(y.propertyNameParts().at(0) == "y");
+ QVERIFY(y.isDefaultProperty() == false);
+ QVERIFY(y.value().isLiteral());
+ QVERIFY(y.value().toLiteral().literal() == "12");
+ QCOMPARE(y.position(), 35);
+ QCOMPARE(y.length(), 1);
+
+ QmlDomProperty data = rootObject.property("data");
+ QVERIFY(data.isValid());
+ QVERIFY(data.propertyName() == "data");
+ QVERIFY(data.propertyNameParts().count() == 1);
+ QVERIFY(data.propertyNameParts().at(0) == "data");
+ QVERIFY(data.isDefaultProperty() == true);
+ QVERIFY(data.value().isList());
+ QCOMPARE(data.position(), 45);
+ QCOMPARE(data.length(), 0);
+ }
+}
+
+// Tests the QmlDomObject::url() method
+void tst_qmldom::object_url()
+{
+ // Invalid object
+ {
+ QmlDomObject object;
+ QCOMPARE(object.url(), QUrl());
+ }
+
+ // Valid builtin object
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "Item {}";
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject rootObject = document.rootObject();
+ QVERIFY(rootObject.isValid());
+ QCOMPARE(rootObject.url(), QUrl());
+ }
+
+ // Valid composite object
+ {
+ QByteArray qml = "import Qt 4.6\n"
+ "MyItem {}";
+
+ QUrl myUrl = QUrl::fromLocalFile(SRCDIR "/data/main.qml");
+ QUrl subUrl = QUrl::fromLocalFile(SRCDIR "/data/MyItem.qml");
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml, myUrl));
+
+ QmlDomObject rootObject = document.rootObject();
+ QVERIFY(rootObject.isValid());
+ QCOMPARE(rootObject.url(), subUrl);
+ }
+}
+
+// Test copy constructors and operators
+void tst_qmldom::copy()
+{
+ QByteArray qml = "import Qt 4.6\n"
+ "MyItem {\n"
+ " id: myItem\n"
+ " property int a: 10\n"
+ " x: 10\n"
+ " y: x + 10\n"
+ " z: NumberAnimation {}\n"
+ " opacity: Behavior {}\n"
+ " Component {\n"
+ " Item{}\n"
+ " }\n"
+ " children: [ Item{}, Item{} ]\n"
+ "}\n";
+
+ QUrl myUrl = QUrl::fromLocalFile(SRCDIR "/data/main.qml");
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml, myUrl));
+
+ // QmlDomDocument
+ {
+ QmlDomDocument document2(document);
+ QmlDomDocument document3;
+ document3 = document;
+
+ QCOMPARE(document.imports().count(), document2.imports().count());
+ QCOMPARE(document.errors().count(), document2.errors().count());
+ QCOMPARE(document.rootObject().objectClassName(), document2.rootObject().objectClassName());
+
+ QCOMPARE(document.imports().count(), document3.imports().count());
+ QCOMPARE(document.errors().count(), document3.errors().count());
+ QCOMPARE(document.rootObject().objectClassName(), document3.rootObject().objectClassName());
+ }
+
+ // QmlDomImport
+ {
+ QCOMPARE(document.imports().count(), 1);
+ QmlDomImport import = document.imports().at(0);
+
+ QmlDomImport import2(import);
+ QmlDomImport import3;
+ import3 = import2;
+
+ QCOMPARE(import.type(), import2.type());
+ QCOMPARE(import.uri(), import2.uri());
+ QCOMPARE(import.version(), import2.version());
+ QCOMPARE(import.qualifier(), import2.qualifier());
+
+ QCOMPARE(import.type(), import3.type());
+ QCOMPARE(import.uri(), import3.uri());
+ QCOMPARE(import.version(), import3.version());
+ QCOMPARE(import.qualifier(), import3.qualifier());
+ }
+
+ // QmlDomObject
+ {
+ QmlDomObject object = document.rootObject();
+ QVERIFY(object.isValid());
+
+ QmlDomObject object2(object);
+ QmlDomObject object3;
+ object3 = object;
+
+ QCOMPARE(object.isValid(), object2.isValid());
+ QCOMPARE(object.objectType(), object2.objectType());
+ QCOMPARE(object.objectClassName(), object2.objectClassName());
+ QCOMPARE(object.objectTypeMajorVersion(), object2.objectTypeMajorVersion());
+ QCOMPARE(object.objectTypeMinorVersion(), object2.objectTypeMinorVersion());
+ QCOMPARE(object.objectId(), object2.objectId());
+ QCOMPARE(object.properties().count(), object2.properties().count());
+ QCOMPARE(object.dynamicProperties().count(), object2.dynamicProperties().count());
+ QCOMPARE(object.isCustomType(), object2.isCustomType());
+ QCOMPARE(object.customTypeData(), object2.customTypeData());
+ QCOMPARE(object.isComponent(), object2.isComponent());
+ QCOMPARE(object.position(), object2.position());
+ QCOMPARE(object.length(), object2.length());
+ QCOMPARE(object.url(), object2.url());
+
+ QCOMPARE(object.isValid(), object3.isValid());
+ QCOMPARE(object.objectType(), object3.objectType());
+ QCOMPARE(object.objectClassName(), object3.objectClassName());
+ QCOMPARE(object.objectTypeMajorVersion(), object3.objectTypeMajorVersion());
+ QCOMPARE(object.objectTypeMinorVersion(), object3.objectTypeMinorVersion());
+ QCOMPARE(object.objectId(), object3.objectId());
+ QCOMPARE(object.properties().count(), object3.properties().count());
+ QCOMPARE(object.dynamicProperties().count(), object3.dynamicProperties().count());
+ QCOMPARE(object.isCustomType(), object3.isCustomType());
+ QCOMPARE(object.customTypeData(), object3.customTypeData());
+ QCOMPARE(object.isComponent(), object3.isComponent());
+ QCOMPARE(object.position(), object3.position());
+ QCOMPARE(object.length(), object3.length());
+ QCOMPARE(object.url(), object3.url());
+ }
+
+ // QmlDomDynamicProperty
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomDynamicProperty property = object.dynamicProperty("a");
+
+ QmlDomDynamicProperty property2(property);
+ QmlDomDynamicProperty property3;
+ property3 = property;
+
+ QCOMPARE(property.isValid(), property2.isValid());
+ QCOMPARE(property.propertyName(), property2.propertyName());
+ QCOMPARE(property.propertyType(), property2.propertyType());
+ QCOMPARE(property.propertyTypeName(), property2.propertyTypeName());
+ QCOMPARE(property.isDefaultProperty(), property2.isDefaultProperty());
+ QCOMPARE(property.defaultValue().propertyName(), property2.defaultValue().propertyName());
+ QCOMPARE(property.position(), property2.position());
+ QCOMPARE(property.length(), property2.length());
+
+ QCOMPARE(property.isValid(), property3.isValid());
+ QCOMPARE(property.propertyName(), property3.propertyName());
+ QCOMPARE(property.propertyType(), property3.propertyType());
+ QCOMPARE(property.propertyTypeName(), property3.propertyTypeName());
+ QCOMPARE(property.isDefaultProperty(), property3.isDefaultProperty());
+ QCOMPARE(property.defaultValue().propertyName(), property3.defaultValue().propertyName());
+ QCOMPARE(property.position(), property3.position());
+ QCOMPARE(property.length(), property3.length());
+ }
+
+ // QmlDomProperty
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("opacity");
+
+ QmlDomProperty property2(property);
+ QmlDomProperty property3;
+ property3 = property;
+
+ QCOMPARE(property.isValid(), property2.isValid());
+ QCOMPARE(property.propertyName(), property2.propertyName());
+ QCOMPARE(property.propertyNameParts(), property2.propertyNameParts());
+ QCOMPARE(property.isDefaultProperty(), property2.isDefaultProperty());
+ QCOMPARE(property.value().type(), property2.value().type());
+ QCOMPARE(property.position(), property2.position());
+ QCOMPARE(property.length(), property2.length());
+
+ QCOMPARE(property.isValid(), property3.isValid());
+ QCOMPARE(property.propertyName(), property3.propertyName());
+ QCOMPARE(property.propertyNameParts(), property3.propertyNameParts());
+ QCOMPARE(property.isDefaultProperty(), property3.isDefaultProperty());
+ QCOMPARE(property.value().type(), property3.value().type());
+ QCOMPARE(property.position(), property3.position());
+ QCOMPARE(property.length(), property3.length());
+ }
+
+ // QmlDomValueLiteral
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("x");
+ QmlDomValueLiteral literal = property.value().toLiteral();
+ QCOMPARE(literal.literal(), QString("10"));
+
+ QmlDomValueLiteral literal2(literal);
+ QmlDomValueLiteral literal3;
+ literal3 = literal2;
+
+ QCOMPARE(literal2.literal(), QString("10"));
+ QCOMPARE(literal3.literal(), QString("10"));
+ }
+
+
+ // QmlDomValueBinding
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("y");
+ QmlDomValueBinding binding = property.value().toBinding();
+ QCOMPARE(binding.binding(), QString("x + 10"));
+
+ QmlDomValueBinding binding2(binding);
+ QmlDomValueBinding binding3;
+ binding3 = binding2;
+
+ QCOMPARE(binding2.binding(), QString("x + 10"));
+ QCOMPARE(binding3.binding(), QString("x + 10"));
+ }
+
+ // QmlDomValueValueSource
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("z");
+ QmlDomValueValueSource source = property.value().toValueSource();
+ QCOMPARE(source.object().objectClassName(), QByteArray("NumberAnimation"));
+
+ QmlDomValueValueSource source2(source);
+ QmlDomValueValueSource source3;
+ source3 = source;
+
+ QCOMPARE(source2.object().objectClassName(), QByteArray("NumberAnimation"));
+ QCOMPARE(source3.object().objectClassName(), QByteArray("NumberAnimation"));
+ }
+
+ // QmlDomValueValueInterceptor
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("opacity");
+ QmlDomValueValueInterceptor interceptor = property.value().toValueInterceptor();
+ QCOMPARE(interceptor.object().objectClassName(), QByteArray("Behavior"));
+
+ QmlDomValueValueInterceptor interceptor2(interceptor);
+ QmlDomValueValueInterceptor interceptor3;
+ interceptor3 = interceptor;
+
+ QCOMPARE(interceptor2.object().objectClassName(), QByteArray("Behavior"));
+ QCOMPARE(interceptor3.object().objectClassName(), QByteArray("Behavior"));
+ }
+
+ // QmlDomComponent
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("data");
+ QCOMPARE(property.value().toList().values().count(), 1);
+ QmlDomComponent component =
+ property.value().toList().values().at(0).toObject().toComponent();
+ QCOMPARE(component.componentRoot().objectClassName(), QByteArray("Item"));
+
+ QmlDomComponent component2(component);
+ QmlDomComponent component3;
+ component3 = component;
+
+ QCOMPARE(component.componentRoot().objectClassName(), component2.componentRoot().objectClassName());
+ QCOMPARE(component.isValid(), component2.isValid());
+ QCOMPARE(component.objectType(), component2.objectType());
+ QCOMPARE(component.objectClassName(), component2.objectClassName());
+ QCOMPARE(component.objectTypeMajorVersion(), component2.objectTypeMajorVersion());
+ QCOMPARE(component.objectTypeMinorVersion(), component2.objectTypeMinorVersion());
+ QCOMPARE(component.objectId(), component2.objectId());
+ QCOMPARE(component.properties().count(), component2.properties().count());
+ QCOMPARE(component.dynamicProperties().count(), component2.dynamicProperties().count());
+ QCOMPARE(component.isCustomType(), component2.isCustomType());
+ QCOMPARE(component.customTypeData(), component2.customTypeData());
+ QCOMPARE(component.isComponent(), component2.isComponent());
+ QCOMPARE(component.position(), component2.position());
+ QCOMPARE(component.length(), component2.length());
+ QCOMPARE(component.url(), component2.url());
+
+ QCOMPARE(component.componentRoot().objectClassName(), component3.componentRoot().objectClassName());
+ QCOMPARE(component.isValid(), component3.isValid());
+ QCOMPARE(component.objectType(), component3.objectType());
+ QCOMPARE(component.objectClassName(), component3.objectClassName());
+ QCOMPARE(component.objectTypeMajorVersion(), component3.objectTypeMajorVersion());
+ QCOMPARE(component.objectTypeMinorVersion(), component3.objectTypeMinorVersion());
+ QCOMPARE(component.objectId(), component3.objectId());
+ QCOMPARE(component.properties().count(), component3.properties().count());
+ QCOMPARE(component.dynamicProperties().count(), component3.dynamicProperties().count());
+ QCOMPARE(component.isCustomType(), component3.isCustomType());
+ QCOMPARE(component.customTypeData(), component3.customTypeData());
+ QCOMPARE(component.isComponent(), component3.isComponent());
+ QCOMPARE(component.position(), component3.position());
+ QCOMPARE(component.length(), component3.length());
+ QCOMPARE(component.url(), component3.url());
+ }
+
+ // QmlDomValue
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("data");
+ QmlDomValue value = property.value();
+
+ QmlDomValue value2(value);
+ QmlDomValue value3;
+ value3 = value;
+
+ QCOMPARE(value.type(), value2.type());
+ QCOMPARE(value.isInvalid(), value2.isInvalid());
+ QCOMPARE(value.isLiteral(), value2.isLiteral());
+ QCOMPARE(value.isBinding(), value2.isBinding());
+ QCOMPARE(value.isValueSource(), value2.isValueSource());
+ QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor());
+ QCOMPARE(value.isObject(), value2.isObject());
+ QCOMPARE(value.isList(), value2.isList());
+ QCOMPARE(value.position(), value2.position());
+ QCOMPARE(value.length(), value2.length());
+
+ QCOMPARE(value.type(), value3.type());
+ QCOMPARE(value.isInvalid(), value3.isInvalid());
+ QCOMPARE(value.isLiteral(), value3.isLiteral());
+ QCOMPARE(value.isBinding(), value3.isBinding());
+ QCOMPARE(value.isValueSource(), value3.isValueSource());
+ QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor());
+ QCOMPARE(value.isObject(), value3.isObject());
+ QCOMPARE(value.isList(), value3.isList());
+ QCOMPARE(value.position(), value3.position());
+ QCOMPARE(value.length(), value3.length());
+ }
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("x");
+ QmlDomValue value = property.value();
+
+ QmlDomValue value2(value);
+ QmlDomValue value3;
+ value3 = value;
+
+ QCOMPARE(value.type(), value2.type());
+ QCOMPARE(value.isInvalid(), value2.isInvalid());
+ QCOMPARE(value.isLiteral(), value2.isLiteral());
+ QCOMPARE(value.isBinding(), value2.isBinding());
+ QCOMPARE(value.isValueSource(), value2.isValueSource());
+ QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor());
+ QCOMPARE(value.isObject(), value2.isObject());
+ QCOMPARE(value.isList(), value2.isList());
+ QCOMPARE(value.position(), value2.position());
+ QCOMPARE(value.length(), value2.length());
+
+ QCOMPARE(value.type(), value3.type());
+ QCOMPARE(value.isInvalid(), value3.isInvalid());
+ QCOMPARE(value.isLiteral(), value3.isLiteral());
+ QCOMPARE(value.isBinding(), value3.isBinding());
+ QCOMPARE(value.isValueSource(), value3.isValueSource());
+ QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor());
+ QCOMPARE(value.isObject(), value3.isObject());
+ QCOMPARE(value.isList(), value3.isList());
+ QCOMPARE(value.position(), value3.position());
+ QCOMPARE(value.length(), value3.length());
+ }
+ {
+ QmlDomValue value;
+
+ QmlDomValue value2(value);
+ QmlDomValue value3;
+ value3 = value;
+
+ QCOMPARE(value.type(), value2.type());
+ QCOMPARE(value.isInvalid(), value2.isInvalid());
+ QCOMPARE(value.isLiteral(), value2.isLiteral());
+ QCOMPARE(value.isBinding(), value2.isBinding());
+ QCOMPARE(value.isValueSource(), value2.isValueSource());
+ QCOMPARE(value.isValueInterceptor(), value2.isValueInterceptor());
+ QCOMPARE(value.isObject(), value2.isObject());
+ QCOMPARE(value.isList(), value2.isList());
+ QCOMPARE(value.position(), value2.position());
+ QCOMPARE(value.length(), value2.length());
+
+ QCOMPARE(value.type(), value3.type());
+ QCOMPARE(value.isInvalid(), value3.isInvalid());
+ QCOMPARE(value.isLiteral(), value3.isLiteral());
+ QCOMPARE(value.isBinding(), value3.isBinding());
+ QCOMPARE(value.isValueSource(), value3.isValueSource());
+ QCOMPARE(value.isValueInterceptor(), value3.isValueInterceptor());
+ QCOMPARE(value.isObject(), value3.isObject());
+ QCOMPARE(value.isList(), value3.isList());
+ QCOMPARE(value.position(), value3.position());
+ QCOMPARE(value.length(), value3.length());
+ }
+
+ // QmlDomList
+ {
+ QmlDomObject object = document.rootObject();
+ QmlDomProperty property = object.property("children");
+ QmlDomList list = property.value().toList();
+ QCOMPARE(list.values().count(), 2);
+
+ QmlDomList list2(list);
+ QmlDomList list3;
+ list3 = list2;
+
+ QCOMPARE(list.values().count(), list2.values().count());
+ QCOMPARE(list.position(), list2.position());
+ QCOMPARE(list.length(), list2.length());
+ QCOMPARE(list.commaPositions(), list2.commaPositions());
+
+ QCOMPARE(list.values().count(), list3.values().count());
+ QCOMPARE(list.position(), list3.position());
+ QCOMPARE(list.length(), list3.length());
+ QCOMPARE(list.commaPositions(), list3.commaPositions());
+
+ }
+}
+
+// Tests the position/length of various elements
+void tst_qmldom::position()
+{
+ QByteArray qml = "import Qt 4.6\n"
+ /*14*/ "Item {\n"
+ /*21*/ " id: myItem\n"
+ /*36*/ " property int a: 10\n"
+ /*59*/ " x: 10\n"
+ /*69*/ " y: x + 10\n"
+ /*83*/ " z: NumberAnimation {}\n"
+ /*109*/ " opacity: Behavior {}\n"
+ /*134*/ " Component {\n"
+ /*150*/ " Item{}\n"
+ /*165*/ " }\n"
+ /*171*/ " children: [ Item{}, Item{} ]\n"
+ /*204*/ "}\n";
+
+
+ QmlDomDocument document;
+ QVERIFY(document.load(&engine, qml));
+
+ QmlDomObject root = document.rootObject();
+
+ // All QmlDomDynamicProperty
+ QmlDomDynamicProperty dynProp = root.dynamicProperty("a");
+ QCOMPARE(dynProp.position(), 40);
+ QCOMPARE(dynProp.length(), 18);
+
+ // All QmlDomProperty
+ QmlDomProperty x = root.property("x");
+ QCOMPARE(x.position(), 63);
+ QCOMPARE(x.length(), 1);
+
+ QmlDomProperty y = root.property("y");
+ QCOMPARE(y.position(), 73);
+ QCOMPARE(y.length(), 1);
+
+ QmlDomProperty z = root.property("z");
+ QCOMPARE(z.position(), 87);
+ QCOMPARE(z.length(), 1);
+
+ QmlDomProperty opacity = root.property("opacity");
+ QCOMPARE(opacity.position(), 113);
+ QCOMPARE(opacity.length(), 7);
+
+ QmlDomProperty data = root.property("data");
+ QCOMPARE(data.position(), 138);
+ QCOMPARE(data.length(), 0);
+
+ QmlDomProperty children = root.property("children");
+ QCOMPARE(children.position(), 175);
+ QCOMPARE(children.length(), 8);
+
+ QmlDomList dataList = data.value().toList();
+ QCOMPARE(dataList.values().count(), 1);
+ QmlDomList childrenList = children.value().toList();
+ QCOMPARE(childrenList.values().count(), 2);
+
+ // All QmlDomObject
+ QCOMPARE(root.position(), 14);
+ QCOMPARE(root.length(), 191);
+
+ QmlDomObject numberAnimation = z.value().toValueSource().object();
+ QCOMPARE(numberAnimation.position(), 90);
+ QCOMPARE(numberAnimation.length(), 18);
+
+ QmlDomObject behavior = opacity.value().toValueInterceptor().object();
+ QCOMPARE(behavior.position(), 122);
+ QCOMPARE(behavior.length(), 11);
+
+ QmlDomObject component = dataList.values().at(0).toObject();
+ QCOMPARE(component.position(), 138);
+ QCOMPARE(component.length(), 32);
+
+ QmlDomObject componentRoot = component.toComponent().componentRoot();
+ QCOMPARE(componentRoot.position(), 158);
+ QCOMPARE(componentRoot.length(), 6);
+
+ QmlDomObject child1 = childrenList.values().at(0).toObject();
+ QCOMPARE(child1.position(), 187);
+ QCOMPARE(child1.length(), 6);
+
+ QmlDomObject child2 = childrenList.values().at(1).toObject();
+ QCOMPARE(child2.position(), 195);
+ QCOMPARE(child2.length(), 6);
+
+ // All QmlDomValue
+ QmlDomValue xValue = x.value();
+ QCOMPARE(xValue.position(), 66);
+ QCOMPARE(xValue.length(), 2);
+
+ QmlDomValue yValue = y.value();
+ QCOMPARE(yValue.position(), 76);
+ QCOMPARE(yValue.length(), 6);
+
+ QmlDomValue zValue = z.value();
+ QCOMPARE(zValue.position(), 90);
+ QCOMPARE(zValue.length(), 18);
+
+ QmlDomValue opacityValue = opacity.value();
+ QCOMPARE(opacityValue.position(), 122);
+ QCOMPARE(opacityValue.length(), 11);
+
+ QmlDomValue dataValue = data.value();
+ QCOMPARE(dataValue.position(), 138);
+ QCOMPARE(dataValue.length(), 32);
+
+ QmlDomValue child1Value = childrenList.values().at(0);
+ QCOMPARE(child1Value.position(), 187);
+ QCOMPARE(child1Value.length(), 6);
+
+ QmlDomValue child2Value = childrenList.values().at(1);
+ QCOMPARE(child2Value.position(), 195);
+ QCOMPARE(child2Value.length(), 6);
+
+ // All QmlDomList
+ qWarning("QmlListValue position test required");
+}
QTEST_MAIN(tst_qmldom)
diff --git a/tests/auto/declarative/qmleasefollow/data/easefollow1.qml b/tests/auto/declarative/qmleasefollow/data/easefollow1.qml
new file mode 100644
index 0000000..0cc19eb
--- /dev/null
+++ b/tests/auto/declarative/qmleasefollow/data/easefollow1.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+EaseFollow {}
diff --git a/tests/auto/declarative/qmleasefollow/data/easefollow2.qml b/tests/auto/declarative/qmleasefollow/data/easefollow2.qml
new file mode 100644
index 0000000..b65964e
--- /dev/null
+++ b/tests/auto/declarative/qmleasefollow/data/easefollow2.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+EaseFollow {
+ source: 10; duration: 300; enabled: true; reversingMode: EaseFollow.Immediate
+}
diff --git a/tests/auto/declarative/qmleasefollow/data/easefollow3.qml b/tests/auto/declarative/qmleasefollow/data/easefollow3.qml
new file mode 100644
index 0000000..f8886e9
--- /dev/null
+++ b/tests/auto/declarative/qmleasefollow/data/easefollow3.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+EaseFollow {
+ source: 10; velocity: 250; enabled: false; reversingMode: EaseFollow.Sync
+ maximumEasingTime: 150
+}
diff --git a/tests/auto/declarative/qmleasefollow/qmleasefollow.pro b/tests/auto/declarative/qmleasefollow/qmleasefollow.pro
new file mode 100644
index 0000000..4224a7e
--- /dev/null
+++ b/tests/auto/declarative/qmleasefollow/qmleasefollow.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qmleasefollow.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmleasefollow/tst_qmleasefollow.cpp b/tests/auto/declarative/qmleasefollow/tst_qmleasefollow.cpp
new file mode 100644
index 0000000..2e2050e
--- /dev/null
+++ b/tests/auto/declarative/qmleasefollow/tst_qmleasefollow.cpp
@@ -0,0 +1,122 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QtDeclarative/qmlengine.h>
+#include <QtDeclarative/qmlcomponent.h>
+#include <private/qmleasefollow_p.h>
+#include <private/qmlvaluetype_p.h>
+#include "../../../shared/util.h"
+
+class tst_qmleasefollow : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qmleasefollow();
+
+private slots:
+ void defaultValues();
+ void values();
+ void disabled();
+
+private:
+ QmlEngine engine;
+};
+
+tst_qmleasefollow::tst_qmleasefollow()
+{
+}
+
+void tst_qmleasefollow::defaultValues()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/easefollow1.qml"));
+ QmlEaseFollow *obj = qobject_cast<QmlEaseFollow*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->sourceValue(), 0.);
+ QCOMPARE(obj->velocity(), 200.);
+ QCOMPARE(obj->enabled(), true);
+ QCOMPARE(obj->duration(), -1.);
+ QCOMPARE(obj->maximumEasingTime(), -1.);
+ QCOMPARE(obj->reversingMode(), QmlEaseFollow::Eased);
+
+ delete obj;
+}
+
+void tst_qmleasefollow::values()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/easefollow2.qml"));
+ QmlEaseFollow *obj = qobject_cast<QmlEaseFollow*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->sourceValue(), 10.);
+ QCOMPARE(obj->velocity(), 200.);
+ QCOMPARE(obj->enabled(), true);
+ QCOMPARE(obj->duration(), 300.);
+ QCOMPARE(obj->maximumEasingTime(), -1.);
+ QCOMPARE(obj->reversingMode(), QmlEaseFollow::Immediate);
+
+ delete obj;
+}
+
+void tst_qmleasefollow::disabled()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/easefollow3.qml"));
+ QmlEaseFollow *obj = qobject_cast<QmlEaseFollow*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->sourceValue(), 10.);
+ QCOMPARE(obj->velocity(), 250.);
+ QCOMPARE(obj->enabled(), false);
+ QCOMPARE(obj->maximumEasingTime(), 150.);
+ QCOMPARE(obj->reversingMode(), QmlEaseFollow::Sync);
+
+ delete obj;
+}
+
+QTEST_MAIN(tst_qmleasefollow)
+
+#include "tst_qmleasefollow.moc"
diff --git a/tests/auto/declarative/qmlecmascript/data/scriptErrors.qml b/tests/auto/declarative/qmlecmascript/data/scriptErrors.qml
index d39b312..ff22990 100644
--- a/tests/auto/declarative/qmlecmascript/data/scriptErrors.qml
+++ b/tests/auto/declarative/qmlecmascript/data/scriptErrors.qml
@@ -4,9 +4,12 @@ MyQmlObject {
Script { source: "scriptErrors.js" }
Script { function getValue() { a = 10; return 0; } }
- property int x: a.value
- property int y: getValue();
+ property int t: a.value
+ property int w: getValue();
+ property int x: undefinedObject
+ property int y: (a.value, undefinedObject)
onBasicSignal: { print(a.value); }
+
}
diff --git a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
index 220f589..983ddd0 100644
--- a/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
+++ b/tests/auto/declarative/qmlecmascript/tst_qmlecmascript.cpp
@@ -480,6 +480,12 @@ void tst_qmlecmascript::enums()
// Non-existant enums
{
QmlComponent component(&engine, TEST_FILE("enums.2.qml"));
+
+ QString warning1 = component.url().toString() + ":5: Unable to assign [undefined] to int";
+ QString warning2 = component.url().toString() + ":6: Unable to assign [undefined] to int";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
+
QObject *object = component.create();
QVERIFY(object != 0);
QCOMPARE(object->property("a").toInt(), 0);
@@ -586,6 +592,10 @@ Tests for a regression where this used to crash.
void tst_qmlecmascript::nonExistantAttachedObject()
{
QmlComponent component(&engine, TEST_FILE("nonExistantAttachedObject.qml"));
+
+ QString warning = component.url().toString() + ":4: Unable to assign [undefined] to QString";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
+
QObject *object = component.create();
QVERIFY(object != 0);
}
@@ -683,6 +693,10 @@ Tests that only methods of Script {} blocks are exposed.
void tst_qmlecmascript::scriptAccess()
{
QmlComponent component(&engine, TEST_FILE("scriptAccess.qml"));
+
+ QString warning = component.url().toString() + ":16: Unable to assign [undefined] to int";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning));
+
QObject *object = component.create();
QVERIFY(object != 0);
@@ -811,11 +825,15 @@ void tst_qmlecmascript::scriptErrors()
QString warning1 = url.left(url.length() - 3) + "js:2: Error: Invalid write to global property \"a\"";
QString warning2 = url + ":7: TypeError: Result of expression 'a' [undefined] is not an object.";
QString warning3 = url + ":5: Error: Invalid write to global property \"a\"";
- QString warning4 = url + ":10: TypeError: Result of expression 'a' [undefined] is not an object.";
+ QString warning4 = url + ":12: TypeError: Result of expression 'a' [undefined] is not an object.";
+ QString warning5 = url + ":10: TypeError: Result of expression 'a' [undefined] is not an object.";
+ QString warning6 = url + ":9: Unable to assign [undefined] to int";
QTest::ignoreMessage(QtWarningMsg, warning1.toLatin1().constData());
QTest::ignoreMessage(QtWarningMsg, warning2.toLatin1().constData());
QTest::ignoreMessage(QtWarningMsg, warning3.toLatin1().constData());
+ QTest::ignoreMessage(QtWarningMsg, warning5.toLatin1().constData());
+ QTest::ignoreMessage(QtWarningMsg, warning6.toLatin1().constData());
MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
QVERIFY(object != 0);
diff --git a/tests/auto/declarative/qmlgraphicsgridview/data/gridview2.qml b/tests/auto/declarative/qmlgraphicsgridview/data/gridview2.qml
new file mode 100644
index 0000000..62b5bd3
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsgridview/data/gridview2.qml
@@ -0,0 +1,26 @@
+import Qt 4.6
+
+GridView {
+ anchors.fill: parent
+ width: 320; height: 200
+ cellWidth: 100; cellHeight: 100; cacheBuffer: 200; focus: true
+ keyNavigationWraps: true; highlightFollowsCurrentItem: false
+
+ model: ListModel {
+ id: appModel
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "blue" }
+ }
+
+ delegate: Item {
+ width: 100; height: 100
+ Rectangle {
+ color: lColor; x: 4; y: 4
+ width: 92; height: 92
+ }
+ }
+
+ highlight: Rectangle { width: 100; height: 100; color: "black" }
+}
diff --git a/tests/auto/declarative/qmlgraphicsgridview/data/gridview3.qml b/tests/auto/declarative/qmlgraphicsgridview/data/gridview3.qml
new file mode 100644
index 0000000..b133d55
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsgridview/data/gridview3.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+GridView {
+ anchors.fill: parent
+ width: 320; height: 200
+}
diff --git a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp
index d99b16f..d09aad7 100644
--- a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp
+++ b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp
@@ -38,6 +38,9 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+
+#include <qmlengine.h>
+#include <qmlcomponent.h>
#include <QtTest/QtTest>
#include <private/qlistmodelinterface_p.h>
#include <qmlview.h>
@@ -60,6 +63,8 @@ private slots:
void moved();
void currentIndex();
void changeFlow();
+ void defaultValues();
+ void properties();
private:
QmlView *createView(const QString &filename);
@@ -690,6 +695,52 @@ void tst_QmlGraphicsGridView::changeFlow()
delete canvas;
}
+void tst_QmlGraphicsGridView::defaultValues()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/gridview3.qml"));
+ QmlGraphicsGridView *obj = qobject_cast<QmlGraphicsGridView*>(c.create());
+
+ QVERIFY(obj != 0);
+ QVERIFY(obj->model() == QVariant());
+ QVERIFY(obj->delegate() == 0);
+ QCOMPARE(obj->currentIndex(), -1);
+ QVERIFY(obj->currentItem() == 0);
+ QCOMPARE(obj->count(), 0);
+ QVERIFY(obj->highlight() == 0);
+ QVERIFY(obj->highlightItem() == 0);
+ QCOMPARE(obj->highlightFollowsCurrentItem(), true);
+ QVERIFY(obj->flow() == 0);
+ QCOMPARE(obj->isWrapEnabled(), false);
+ QCOMPARE(obj->cacheBuffer(), 0);
+ QCOMPARE(obj->cellWidth(), 100); //### Should 100 be the default?
+ QCOMPARE(obj->cellHeight(), 100);
+ delete obj;
+}
+
+void tst_QmlGraphicsGridView::properties()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/gridview2.qml"));
+ QmlGraphicsGridView *obj = qobject_cast<QmlGraphicsGridView*>(c.create());
+
+ QVERIFY(obj != 0);
+ QVERIFY(obj->model() != QVariant());
+ QVERIFY(obj->delegate() != 0);
+ QCOMPARE(obj->currentIndex(), 0);
+ QVERIFY(obj->currentItem() != 0);
+ QCOMPARE(obj->count(), 4);
+ QVERIFY(obj->highlight() != 0);
+ QVERIFY(obj->highlightItem() != 0);
+ QCOMPARE(obj->highlightFollowsCurrentItem(), false);
+ QVERIFY(obj->flow() == 0);
+ QCOMPARE(obj->isWrapEnabled(), true);
+ QCOMPARE(obj->cacheBuffer(), 200);
+ QCOMPARE(obj->cellWidth(), 100);
+ QCOMPARE(obj->cellHeight(), 100);
+ delete obj;
+}
+
QmlView *tst_QmlGraphicsGridView::createView(const QString &filename)
{
QmlView *canvas = new QmlView(0);
diff --git a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp
index 8fda991..a88026b 100644
--- a/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp
+++ b/tests/auto/declarative/qmlgraphicsloader/tst_qmlgraphicsloader.cpp
@@ -114,7 +114,7 @@ void tst_QmlGraphicsLoader::component()
void tst_QmlGraphicsLoader::invalidUrl()
{
-// QTest::ignoreMessage(QtWarningMsg, "(:-1: File error for URL file://" SRCDIR "/IDontExist.qml)");
+ QTest::ignoreMessage(QtWarningMsg, "(:-1: File error for URL file://" SRCDIR "/IDontExist.qml) ");
QmlComponent component(&engine, QByteArray("import Qt 4.6\nLoader { source: \"IDontExist.qml\" }"), QUrl("file://" SRCDIR "/"));
QmlGraphicsLoader *loader = qobject_cast<QmlGraphicsLoader*>(component.create());
diff --git a/tests/auto/declarative/qmlgraphicspathview/data/pathview1.qml b/tests/auto/declarative/qmlgraphicspathview/data/pathview1.qml
new file mode 100644
index 0000000..b3b0a9a
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicspathview/data/pathview1.qml
@@ -0,0 +1,4 @@
+import Qt 4.6
+
+PathView {
+}
diff --git a/tests/auto/declarative/qmlgraphicspathview/data/pathview2.qml b/tests/auto/declarative/qmlgraphicspathview/data/pathview2.qml
new file mode 100644
index 0000000..0d5c98b
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicspathview/data/pathview2.qml
@@ -0,0 +1,57 @@
+import Qt 4.6
+
+PathView {
+ id: photoPathView; model: rssModel; delegate: photoDelegate
+ y: 100; width: 800; height: 330; pathItemCount: 10; z: 1
+
+ path: Path {
+ startX: -50; startY: 40;
+
+ PathAttribute { name: "scale"; value: 0.5 }
+ PathAttribute { name: "angle"; value: -45 }
+
+ PathCubic {
+ x: 400; y: 220
+ control1X: 140; control1Y: 40
+ control2X: 210; control2Y: 220
+ }
+
+ PathAttribute { name: "scale"; value: 1.2 }
+ PathAttribute { name: "angle"; value: 0 }
+
+ PathCubic {
+ x: 850; y: 40
+ control2X: 660; control2Y: 40
+ control1X: 590; control1Y: 220
+ }
+
+ PathAttribute { name: "scale"; value: 0.5 }
+ PathAttribute { name: "angle"; value: 45 }
+ }
+
+ model: ListModel {
+ id: rssModel
+ ListElement { lColor: "red" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "gray" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "thistle" }
+ }
+
+ delegate: Component {
+ id: photoDelegate
+ Rectangle {
+ id: wrapper
+ width: 85; height: 85; color: lColor
+ scale: wrapper.PathView.scale
+
+ transform: Rotation {
+ id: itemRotation; origin.x: wrapper.width/2; origin.y: wrapper.height/2
+ axis.y: 1; axis.z: 0; angle: wrapper.PathView.angle
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicspathview/data/pathview3.qml b/tests/auto/declarative/qmlgraphicspathview/data/pathview3.qml
new file mode 100644
index 0000000..a8c1e91
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicspathview/data/pathview3.qml
@@ -0,0 +1,58 @@
+import Qt 4.6
+
+PathView {
+ id: photoPathView; model: rssModel; delegate: photoDelegate
+ y: 100; width: 800; height: 330; pathItemCount: 4; offset: 10
+ dragMargin: 24; snapPosition: 50
+
+ path: Path {
+ startX: -50; startY: 40;
+
+ PathAttribute { name: "scale"; value: 0.5 }
+ PathAttribute { name: "angle"; value: -45 }
+
+ PathCubic {
+ x: 400; y: 220
+ control1X: 140; control1Y: 40
+ control2X: 210; control2Y: 220
+ }
+
+ PathAttribute { name: "scale"; value: 1.2 }
+ PathAttribute { name: "angle"; value: 0 }
+
+ PathCubic {
+ x: 850; y: 40
+ control2X: 660; control2Y: 40
+ control1X: 590; control1Y: 220
+ }
+
+ PathAttribute { name: "scale"; value: 0.5 }
+ PathAttribute { name: "angle"; value: 45 }
+ }
+
+ model: ListModel {
+ id: rssModel
+ ListElement { lColor: "red" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "gray" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "thistle" }
+ }
+
+ delegate: Component {
+ id: photoDelegate
+ Rectangle {
+ id: wrapper
+ width: 85; height: 85; color: lColor
+ scale: wrapper.PathView.scale
+
+ transform: Rotation {
+ id: itemRotation; origin.x: wrapper.width/2; origin.y: wrapper.height/2
+ axis.y: 1; axis.z: 0; angle: wrapper.PathView.angle
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicspathview/qmlgraphicspathview.pro b/tests/auto/declarative/qmlgraphicspathview/qmlgraphicspathview.pro
new file mode 100644
index 0000000..142a256
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicspathview/qmlgraphicspathview.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qmlgraphicspathview.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmlgraphicspathview/tst_qmlgraphicspathview.cpp b/tests/auto/declarative/qmlgraphicspathview/tst_qmlgraphicspathview.cpp
new file mode 100644
index 0000000..c36b969
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicspathview/tst_qmlgraphicspathview.cpp
@@ -0,0 +1,123 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <private/qmlgraphicspathview_p.h>
+#include <qmlcontext.h>
+#include <qmlexpression.h>
+#include <qtest.h>
+#include <QtDeclarative/qmlengine.h>
+#include <QtDeclarative/qmlcomponent.h>
+#include <private/qmlvaluetype_p.h>
+#include "../../../shared/util.h"
+
+class tst_QmlGraphicsPathView : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QmlGraphicsPathView();
+
+private slots:
+ void initValues();
+ void pathview2();
+ void pathview3();
+};
+
+
+tst_QmlGraphicsPathView::tst_QmlGraphicsPathView()
+{
+}
+
+void tst_QmlGraphicsPathView::initValues()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/pathview1.qml"));
+ QmlGraphicsPathView *obj = qobject_cast<QmlGraphicsPathView*>(c.create());
+
+ QVERIFY(obj != 0);
+ QVERIFY(obj->path() == 0);
+ QVERIFY(obj->delegate() == 0);
+ QCOMPARE(obj->model(), QVariant());
+ QCOMPARE(obj->currentIndex(), 0);
+ QCOMPARE(obj->offset(), 0.);
+ QCOMPARE(obj->snapPosition(), 0.);
+ QCOMPARE(obj->dragMargin(), 0.);
+ QCOMPARE(obj->count(), 0);
+ QCOMPARE(obj->pathItemCount(), -1);
+}
+
+void tst_QmlGraphicsPathView::pathview2()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/pathview2.qml"));
+ QmlGraphicsPathView *obj = qobject_cast<QmlGraphicsPathView*>(c.create());
+
+ QVERIFY(obj != 0);
+ QVERIFY(obj->path() != 0);
+ QVERIFY(obj->delegate() != 0);
+ QVERIFY(obj->model() != QVariant());
+ QCOMPARE(obj->currentIndex(), 0);
+ QCOMPARE(obj->offset(), 0.);
+ QCOMPARE(obj->snapPosition(), 0.);
+ QCOMPARE(obj->dragMargin(), 0.);
+ QCOMPARE(obj->count(), 8);
+ QCOMPARE(obj->pathItemCount(), 10);
+}
+
+void tst_QmlGraphicsPathView::pathview3()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/pathview3.qml"));
+ QmlGraphicsPathView *obj = qobject_cast<QmlGraphicsPathView*>(c.create());
+
+ QVERIFY(obj != 0);
+ QVERIFY(obj->path() != 0);
+ QVERIFY(obj->delegate() != 0);
+ QVERIFY(obj->model() != QVariant());
+ QCOMPARE(obj->currentIndex(), 0);
+ QCOMPARE(obj->offset(), 50.); // ???
+ QCOMPARE(obj->snapPosition(), 0.5); // ???
+ QCOMPARE(obj->dragMargin(), 24.);
+ QCOMPARE(obj->count(), 8);
+ QCOMPARE(obj->pathItemCount(), 4);
+}
+
+QTEST_MAIN(tst_QmlGraphicsPathView)
+
+#include "tst_qmlgraphicspathview.moc"
diff --git a/tests/auto/declarative/qmlgraphicstextedit/data/http/ErrItem.qml b/tests/auto/declarative/qmlgraphicstextedit/data/http/ErrItem.qml
new file mode 100644
index 0000000..34b3883
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicstextedit/data/http/ErrItem.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Item{
+ Fungus{
+ palatable: false;
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicstextedit/data/http/NormItem.qml b/tests/auto/declarative/qmlgraphicstextedit/data/http/NormItem.qml
new file mode 100644
index 0000000..718cb71
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicstextedit/data/http/NormItem.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+Item {
+ objectName: "delegateOkay"
+ Rectangle { }
+}
diff --git a/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTest.qml b/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTest.qml
new file mode 100644
index 0000000..3c31e11
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTest.qml
@@ -0,0 +1,22 @@
+import Qt 4.6
+
+Rectangle { width: 300; height: 300; color: "white"
+ resources: [
+ Component { id:cursorFail; FailItem { objectName: "delegateFail" } },
+ Component { id:cursorWait; WaitItem { objectName: "delegateSlow" } },
+ Component { id:cursorNorm; NormItem { objectName: "delegateOkay" } },
+ Component { id:cursorErr; ErrItem { objectName: "delegateErrorA" } }
+ ]
+ TextEdit {
+ cursorDelegate: cursorFail
+ }
+ TextEdit {
+ cursorDelegate: cursorWait
+ }
+ TextEdit {
+ cursorDelegate: cursorNorm
+ }
+ TextEdit {
+ cursorDelegate: cursorErr
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestFail1.qml b/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestFail1.qml
new file mode 100644
index 0000000..a44aec2
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestFail1.qml
@@ -0,0 +1,18 @@
+import Qt 4.6
+
+Rectangle { width: 300; height: 300; color: "white"
+ resources: [
+ Component { id:cursorFail; FailItem { objectName: "delegateFail" } },
+ Component { id:cursorWait; WaitItem { objectName: "delegateSlow" } },
+ Component { id:cursorNorm; NormItem { objectName: "delegateOkay" } }
+ ]
+ TextEdit {
+ cursorDelegate: cursorFail
+ }
+ TextEdit {
+ cursorDelegate: cursorWait
+ }
+ TextEdit {
+ cursorDelegate: cursorNorm
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestFail2.qml b/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestFail2.qml
new file mode 100644
index 0000000..57d3e47
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestFail2.qml
@@ -0,0 +1,18 @@
+import Qt 4.6
+
+Rectangle { width: 300; height: 300; color: "white"
+ resources: [
+ Component { id:cursorWait; WaitItem { objectName: "delegateSlow" } },
+ Component { id:cursorNorm; NormItem { objectName: "delegateOkay" } },
+ Component { id:cursorErr; ErrItem { objectName: "delegateErrorA" } }
+ ]
+ TextEdit {
+ cursorDelegate: cursorWait
+ }
+ TextEdit {
+ cursorDelegate: cursorNorm
+ }
+ TextEdit {
+ cursorDelegate: cursorErr
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestPass.qml b/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestPass.qml
new file mode 100644
index 0000000..a44e867
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicstextedit/data/http/cursorHttpTestPass.qml
@@ -0,0 +1,18 @@
+import Qt 4.6
+
+Rectangle { width: 300; height: 300; color: "white"
+ resources: [
+ Component { id:cursorWait; WaitItem { objectName: "delegateSlow" } },
+ Component { id:cursorNorm; NormItem { objectName: "delegateOkay" } }
+ ]
+ TextEdit {
+ cursorDelegate: cursorWait
+ text: "Hello"
+ }
+ TextEdit {
+ objectName: "textEditObject"
+ cursorDelegate: cursorNorm
+ focus: true;
+ text: "Hello"
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicstextedit/data/httpfail/FailItem.qml b/tests/auto/declarative/qmlgraphicstextedit/data/httpfail/FailItem.qml
new file mode 100644
index 0000000..ddbf526
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicstextedit/data/httpfail/FailItem.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Item {
+ Rectangle { }
+}
diff --git a/tests/auto/declarative/qmlgraphicstextedit/data/httpslow/WaitItem.qml b/tests/auto/declarative/qmlgraphicstextedit/data/httpslow/WaitItem.qml
new file mode 100644
index 0000000..ddbf526
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicstextedit/data/httpslow/WaitItem.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Item {
+ Rectangle { }
+}
diff --git a/tests/auto/declarative/qmlgraphicstextedit/qmlgraphicstextedit.pro b/tests/auto/declarative/qmlgraphicstextedit/qmlgraphicstextedit.pro
index 9e6a71a..a129120 100644
--- a/tests/auto/declarative/qmlgraphicstextedit/qmlgraphicstextedit.pro
+++ b/tests/auto/declarative/qmlgraphicstextedit/qmlgraphicstextedit.pro
@@ -1,8 +1,9 @@
load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative gui
+contains(QT_CONFIG,declarative): QT += declarative gui network
macx:CONFIG -= app_bundle
-SOURCES += tst_qmlgraphicstextedit.cpp
+SOURCES += tst_qmlgraphicstextedit.cpp ../shared/testhttpserver.cpp
+HEADERS += ../shared/testhttpserver.h
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp b/tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp
index 4dc036d..543c650 100644
--- a/tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp
+++ b/tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp
@@ -40,6 +40,7 @@
****************************************************************************/
#include <qtest.h>
#include "../../../shared/util.h"
+#include "../shared/testhttpserver.h"
#include <math.h>
#include <QFile>
#include <QTextDocument>
@@ -75,6 +76,7 @@ private slots:
void selection();
void cursorDelegate();
+ void delegateLoading();
void navigation();
void readOnly();
@@ -592,6 +594,51 @@ void tst_qmlgraphicstextedit::cursorDelegate()
QVERIFY(!textEditObject->findChild<QmlGraphicsItem*>("cursorInstance"));
}
+void tst_qmlgraphicstextedit::delegateLoading()
+{
+ TestHTTPServer server(42332);
+ server.serveDirectory("data/httpfail", TestHTTPServer::Disconnect);
+ server.serveDirectory("data/httpslow", TestHTTPServer::Delay);
+ server.serveDirectory("data/http");
+ QmlView* view= new QmlView(0);
+ view->setUrl(QUrl("http://localhost:42332/cursorHttpTestPass.qml"));
+ view->execute();
+ view->show();
+ view->setFocus();
+ QTest::qWait(500);
+ QmlGraphicsTextEdit *textEditObject = view->root()->findChild<QmlGraphicsTextEdit*>("textEditObject");
+ QEXPECT_FAIL("","QT-2498", Continue);
+ QVERIFY(textEditObject != 0);
+ //textEditObject->setFocus(true);
+ QmlGraphicsItem *delegate;
+ QEXPECT_FAIL("","QT-2498", Continue);
+ delegate = view->root()->findChild<QmlGraphicsItem*>("delegateOkay");
+ QVERIFY(delegate);
+ QEXPECT_FAIL("","QT-2498", Continue);
+ delegate = view->root()->findChild<QmlGraphicsItem*>("delegateSlow");
+ QVERIFY(delegate);
+ view->setUrl(QUrl("http://localhost:42332/cursorHttpTestFail1.qml"));
+ view->execute();
+ view->show();
+ view->setFocus();
+ delegate = view->root()->findChild<QmlGraphicsItem*>("delegateOkay");
+ QVERIFY(!delegate);
+ delegate = view->root()->findChild<QmlGraphicsItem*>("delegateFail");
+ QVERIFY(!delegate);
+ view->setUrl(QUrl("http://localhost:42332/cursorHttpTestFail2.qml"));
+ view->execute();
+ view->show();
+ view->setFocus();
+ delegate = view->root()->findChild<QmlGraphicsItem*>("delegateOkay");
+ QVERIFY(!delegate);
+ delegate = view->root()->findChild<QmlGraphicsItem*>("delegateErrorA");
+ QVERIFY(!delegate);
+ //ErrorB should get a component which is ready but component.create() returns null
+ //Not sure how to accomplish this with QmlGraphicsTextEdits cursor delegate
+ //delegate = view->root()->findChild<QmlGraphicsItem*>("delegateErrorB");
+ //QVERIFY(!delegate);
+}
+
/*
TextEdit element should only handle left/right keys until the cursor reaches
the extent of the text, then they should ignore the keys.
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/elements.html b/tests/auto/declarative/qmlgraphicswebview/data/elements.html
new file mode 100644
index 0000000..9236867
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicswebview/data/elements.html
@@ -0,0 +1,14 @@
+<body leftmargin=0 topmargin=0>
+<table width="300px" border=1 cellpadding=0 cellspacing=0>
+<tr>
+<td align=center width=25%%><p>A</p></td>
+<td width=75% height=50px>
+ <table width=100% border=1 cellpadding=0 cellspacing=0>
+ <tr>
+ <td align=center width=50% height=50px><p>B</p></td>
+ <td align=center width=50% height=50px><p>C</p></td>
+ </tr>
+ </table>
+</td>
+</tr>
+</table>
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/elements.qml b/tests/auto/declarative/qmlgraphicswebview/data/elements.qml
new file mode 100644
index 0000000..7c030e6
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicswebview/data/elements.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+WebView {
+ url: "elements.html"
+ width: 310
+ height: 100
+}
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html
new file mode 100644
index 0000000..dd541f9
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.html
@@ -0,0 +1,16 @@
+<html>
+<head>
+<script type="text/javascript">
+<!--
+function clickTheLink()
+{
+ var ev = document.createEvent('MouseEvents');
+ ev.initEvent( "click", true, false );
+ document.getElementById('thelink').dispatchEvent(ev);
+}
+// -->
+</script>
+</head>
+<h1>Multiple windows...</h1>
+
+<a id=thelink target="_blank" href="newwindows.html">Popup!</a>
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml
new file mode 100644
index 0000000..9d13715
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml
@@ -0,0 +1,32 @@
+// Demonstrates opening new WebViews from HTML
+
+import Qt 4.6
+
+Grid {
+ columns: 3
+ id: pages
+ height: 300; width: 600
+ property int total: 0
+
+ Component {
+ id: webViewPage
+ Rectangle {
+ width: webView.width
+ height: webView.height
+ border.color: "gray"
+
+ WebView {
+ id: webView
+ newWindowComponent: webViewPage
+ newWindowParent: pages
+ url: "newwindows.html"
+ Timer {
+ interval: 10; running: total<4; repeat: false;
+ onTriggered: {total++; webView.evaluateJavaScript("clickTheLink()")}
+ }
+ }
+ }
+ }
+
+ Loader { sourceComponent: webViewPage }
+}
diff --git a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
index 44319c1..da43e68 100644
--- a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
+++ b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp
@@ -43,6 +43,8 @@
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcomponent.h>
#include <private/qmlgraphicswebview_p.h>
+#include <private/qmlgraphicswebview_p_p.h>
+#include <private/qmlgraphicspositioners_p.h>
#include <QtWebKit/qwebpage.h>
#include <QtWebKit/qwebframe.h>
#include <QtCore/qdir.h>
@@ -56,7 +58,10 @@ public:
private slots:
void basicProperties();
+ void settings();
void historyNav();
+ void multipleWindows();
+ void elementAreaAt();
void loadError();
void setHtml();
void javaScript();
@@ -153,6 +158,71 @@ void tst_qmlgraphicswebview::basicProperties()
QTRY_COMPARE(wv->progress(), 1.0);
}
+void tst_qmlgraphicswebview::settings()
+{
+ QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/basic.qml"));
+ checkNoErrors(component);
+ QmlGraphicsWebView *wv = qobject_cast<QmlGraphicsWebView*>(component.create());
+ QVERIFY(wv != 0);
+ QTRY_COMPARE(wv->progress(), 1.0);
+
+ QmlGraphicsWebSettings *s = wv->settingsObject();
+
+ // merely tests that setting gets stored (in QWebSettings)
+ // behavioural tests are in WebKit.
+ for (int b=0; b<=1; ++b) {
+ bool on = !!b;
+
+ s->setAutoLoadImages(on);
+ s->setDeveloperExtrasEnabled(on);
+ s->setJavaEnabled(on);
+ s->setJavascriptCanAccessClipboard(on);
+ s->setJavascriptCanOpenWindows(on);
+ s->setJavascriptEnabled(on);
+ s->setLinksIncludedInFocusChain(on);
+ s->setLocalContentCanAccessRemoteUrls(on);
+ s->setLocalStorageDatabaseEnabled(on);
+ s->setOfflineStorageDatabaseEnabled(on);
+ s->setOfflineWebApplicationCacheEnabled(on);
+ s->setPluginsEnabled(on);
+ s->setPrintElementBackgrounds(on);
+ s->setPrivateBrowsingEnabled(on);
+ s->setZoomTextOnly(on);
+
+ QVERIFY(s->autoLoadImages() == on);
+ QVERIFY(s->developerExtrasEnabled() == on);
+ QVERIFY(s->javaEnabled() == on);
+ QVERIFY(s->javascriptCanAccessClipboard() == on);
+ QVERIFY(s->javascriptCanOpenWindows() == on);
+ QVERIFY(s->javascriptEnabled() == on);
+ QVERIFY(s->linksIncludedInFocusChain() == on);
+ QVERIFY(s->localContentCanAccessRemoteUrls() == on);
+ QVERIFY(s->localStorageDatabaseEnabled() == on);
+ QVERIFY(s->offlineStorageDatabaseEnabled() == on);
+ QVERIFY(s->offlineWebApplicationCacheEnabled() == on);
+ QVERIFY(s->pluginsEnabled() == on);
+ QVERIFY(s->printElementBackgrounds() == on);
+ QVERIFY(s->privateBrowsingEnabled() == on);
+ QVERIFY(s->zoomTextOnly() == on);
+
+ QVERIFY(s->property("autoLoadImages") == on);
+ QVERIFY(s->property("developerExtrasEnabled") == on);
+ QVERIFY(s->property("javaEnabled") == on);
+ QVERIFY(s->property("javascriptCanAccessClipboard") == on);
+ QVERIFY(s->property("javascriptCanOpenWindows") == on);
+ QVERIFY(s->property("javascriptEnabled") == on);
+ QVERIFY(s->property("linksIncludedInFocusChain") == on);
+ QVERIFY(s->property("localContentCanAccessRemoteUrls") == on);
+ QVERIFY(s->property("localStorageDatabaseEnabled") == on);
+ QVERIFY(s->property("offlineStorageDatabaseEnabled") == on);
+ QVERIFY(s->property("offlineWebApplicationCacheEnabled") == on);
+ QVERIFY(s->property("pluginsEnabled") == on);
+ QVERIFY(s->property("printElementBackgrounds") == on);
+ QVERIFY(s->property("privateBrowsingEnabled") == on);
+ QVERIFY(s->property("zoomTextOnly") == on);
+ }
+}
+
void tst_qmlgraphicswebview::historyNav()
{
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/basic.qml"));
@@ -218,6 +288,16 @@ void tst_qmlgraphicswebview::historyNav()
QVERIFY(!wv->stopAction()->isEnabled());
}
+void tst_qmlgraphicswebview::multipleWindows()
+{
+ QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/newwindows.qml"));
+ checkNoErrors(component);
+
+ QmlGraphicsGrid *grid = qobject_cast<QmlGraphicsGrid*>(component.create());
+ QVERIFY(grid != 0);
+ QTRY_COMPARE(grid->children().count(), 2+5); // Component, Loader, 5 WebViews
+}
+
void tst_qmlgraphicswebview::loadError()
{
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/loadError.qml"));
@@ -246,6 +326,21 @@ void tst_qmlgraphicswebview::setHtml()
QCOMPARE(wv->html(),QString("<html><head></head><body><p>This is a <b>string</b> set on the WebView</p></body></html>"));
}
+void tst_qmlgraphicswebview::elementAreaAt()
+{
+ QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/elements.qml"));
+ checkNoErrors(component);
+ QmlGraphicsWebView *wv = qobject_cast<QmlGraphicsWebView*>(component.create());
+ QVERIFY(wv != 0);
+ QTRY_COMPARE(wv->progress(), 1.0);
+
+ QCOMPARE(wv->elementAreaAt(40,30,100,100),QRect(1,1,75,54)); // Area A in data/elements.html
+ QCOMPARE(wv->elementAreaAt(130,30,200,100),QRect(78,3,110,50)); // Area B
+ QCOMPARE(wv->elementAreaAt(40,30,400,400),QRect(0,0,310,100)); // Whole view
+ QCOMPARE(wv->elementAreaAt(130,30,280,280),QRect(76,1,223,54)); // Area BC
+ QCOMPARE(wv->elementAreaAt(130,30,400,400),QRect(0,0,310,100)); // Whole view
+}
+
void tst_qmlgraphicswebview::javaScript()
{
QmlComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/javaScript.qml"));
diff --git a/tests/auto/declarative/qmllanguage/data/cppnamespace.2.qml b/tests/auto/declarative/qmllanguage/data/cppnamespace.2.qml
new file mode 100644
index 0000000..e3b32ca
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/data/cppnamespace.2.qml
@@ -0,0 +1,5 @@
+import Test 1.0
+
+MySecondNamespacedType {
+ list: [ MyNamespacedType {} ]
+}
diff --git a/tests/auto/declarative/qmllanguage/qmllanguage.pro b/tests/auto/declarative/qmllanguage/qmllanguage.pro
index e45d73a..d1876ef 100644
--- a/tests/auto/declarative/qmllanguage/qmllanguage.pro
+++ b/tests/auto/declarative/qmllanguage/qmllanguage.pro
@@ -1,11 +1,14 @@
load(qttest_p4)
contains(QT_CONFIG,declarative): QT += declarative
-QT += script
+QT += script network
macx:CONFIG -= app_bundle
SOURCES += tst_qmllanguage.cpp \
testtypes.cpp
HEADERS += testtypes.h
-# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
-# LIBS += -lgcov
+INCLUDEPATH += ../shared/
+HEADERS += ../shared/testhttpserver.h
+SOURCES += ../shared/testhttpserver.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml
new file mode 100644
index 0000000..836c20a
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/LocalInternal.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+Image { source: "pics/blue.png" }
diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml
new file mode 100644
index 0000000..c4d5905
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/Test.qml
@@ -0,0 +1,2 @@
+import Qt 4.6
+Rectangle { }
diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml
new file mode 100644
index 0000000..11443ca
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestLocal.qml
@@ -0,0 +1 @@
+LocalInternal {}
diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml
new file mode 100644
index 0000000..0dfede4
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/TestSubDir.qml
@@ -0,0 +1,2 @@
+import "subdir"
+SubTest { }
diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png
new file mode 100644
index 0000000..46f815f
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/pics/blue.png
Binary files differ
diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir
new file mode 100644
index 0000000..b32f82b
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/qmldir
@@ -0,0 +1,3 @@
+Test 0.0 Test.qml
+TestSubDir 0.0 TestSubDir.qml
+TestLocal 0.0 TestLocal.qml
diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml
new file mode 100644
index 0000000..0ea9ec6
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/SubTest.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+Text {}
diff --git a/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir
new file mode 100644
index 0000000..f7016c7
--- /dev/null
+++ b/tests/auto/declarative/qmllanguage/qtest/declarative/qmllanguage/subdir/qmldir
@@ -0,0 +1 @@
+SubTest 0.0 SubTest.qml
diff --git a/tests/auto/declarative/qmllanguage/testtypes.cpp b/tests/auto/declarative/qmllanguage/testtypes.cpp
index c370c09..933431d 100644
--- a/tests/auto/declarative/qmllanguage/testtypes.cpp
+++ b/tests/auto/declarative/qmllanguage/testtypes.cpp
@@ -47,4 +47,5 @@ QML_DEFINE_TYPE(Test,1,0,MyContainer,MyContainer);
QML_DEFINE_TYPE(Test,1,0,MyPropertyValueSource,MyPropertyValueSource);
QML_DEFINE_TYPE(Test,1,0,MyDotPropertyObject,MyDotPropertyObject);
QML_DEFINE_TYPE(Test,1,0,MyNamespacedType,MyNamespace::MyNamespacedType);
+QML_DEFINE_TYPE(Test,1,0,MySecondNamespacedType,MyNamespace::MySecondNamespacedType);
QML_DEFINE_NOCREATE_TYPE(MyGroupedObject);
diff --git a/tests/auto/declarative/qmllanguage/testtypes.h b/tests/auto/declarative/qmllanguage/testtypes.h
index b251f87..3598d68 100644
--- a/tests/auto/declarative/qmllanguage/testtypes.h
+++ b/tests/auto/declarative/qmllanguage/testtypes.h
@@ -535,7 +535,19 @@ namespace MyNamespace {
{
Q_OBJECT
};
+
+ class MySecondNamespacedType : public QObject
+ {
+ Q_OBJECT
+ Q_PROPERTY(QmlList<MyNamespace::MyNamespacedType *> *list READ list);
+ public:
+ QmlList<MyNamespacedType *> *list() { return &m_list; }
+
+ private:
+ QmlConcreteList<MyNamespacedType *> m_list;
+ };
}
QML_DECLARE_TYPE(MyNamespace::MyNamespacedType);
+QML_DECLARE_TYPE(MyNamespace::MySecondNamespacedType);
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
index c23bb2d..d5c5c4d 100644
--- a/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
+++ b/tests/auto/declarative/qmllanguage/tst_qmllanguage.cpp
@@ -49,7 +49,6 @@
#include "testtypes.h"
#include "../../../shared/util.h"
-#include "../../network-settings.h"
/*
This test case covers QML language issues. This covers everything that does
@@ -694,11 +693,22 @@ void tst_qmllanguage::valueTypes()
void tst_qmllanguage::cppnamespace()
{
- QmlComponent component(&engine, TEST_FILE("cppnamespace.qml"));
- VERIFY_ERRORS(0);
- QObject *object = component.create();
- QVERIFY(object != 0);
- delete object;
+ {
+ QmlComponent component(&engine, TEST_FILE("cppnamespace.qml"));
+ VERIFY_ERRORS(0);
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+ delete object;
+ }
+
+ {
+ QmlComponent component(&engine, TEST_FILE("cppnamespace.2.qml"));
+ qWarning() << component.errors();
+ VERIFY_ERRORS(0);
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+ delete object;
+ }
}
void tst_qmllanguage::aliasProperties()
@@ -1070,19 +1080,23 @@ void tst_qmllanguage::importsRemote_data()
QTest::addColumn<QString>("qml");
QTest::addColumn<QString>("type");
- QString serverdir = "http://"
- + QtNetworkSettings::serverName()
- + "/qtest/declarative/qmllanguage";
+ QString serverdir = "http://127.0.0.1:14445/qtest/declarative/qmllanguage";
QTest::newRow("remote import") << "import \""+serverdir+"\"\nTest {}" << "QmlGraphicsRectangle";
QTest::newRow("remote import with subdir") << "import \""+serverdir+"\"\nTestSubDir {}" << "QmlGraphicsText";
QTest::newRow("remote import with local") << "import \""+serverdir+"\"\nTestLocal {}" << "QmlGraphicsImage";
}
+#include "testhttpserver.h"
+
void tst_qmllanguage::importsRemote()
{
QFETCH(QString, qml);
QFETCH(QString, type);
+
+ TestHTTPServer server(14445);
+ server.serveDirectory(SRCDIR);
+
testType(qml,type);
}
diff --git a/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp b/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp
index b2d42ff..4c8219a 100644
--- a/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp
+++ b/tests/auto/declarative/qmllistaccessor/tst_qmllistaccessor.cpp
@@ -41,6 +41,7 @@
#include <qtest.h>
#include <QtDeclarative/qml.h>
#include <private/qmllistaccessor_p.h>
+#include <QDebug>
class tst_QmlListAccessor : public QObject
{
@@ -51,7 +52,7 @@ public:
private slots:
void qmllist();
//void qlist();
- //void qstringlist();
+ void qstringlist();
};
void tst_QmlListAccessor::qmllist()
@@ -71,31 +72,30 @@ void tst_QmlListAccessor::qmllist()
QVariant v = accessor.at(0);
QCOMPARE(qvariant_cast<QObject*>(v), obj);
- accessor.removeAt(3);
- QVERIFY(accessor.count() == 1);
-
- accessor.removeAt(0);
- QVERIFY(accessor.count() == 0);
+ QVERIFY(accessor.isValid());
+}
- accessor.insert(4, qVariantFromValue(obj));
- QVERIFY(accessor.count() == 1);
+void tst_QmlListAccessor::qstringlist()
+{
+ QStringList list;
+ list.append(QLatin1String("Item1"));
+ list.append(QLatin1String("Item2"));
+ QVERIFY(list.count() == 2);
- v = accessor.at(0);
- QCOMPARE(qvariant_cast<QObject*>(v), obj);
+ QmlListAccessor accessor;
+ accessor.setList(list);
- QObject *obj2 = new QObject;
- accessor.append(qVariantFromValue(obj2));
+ QVERIFY(accessor.isValid());
QVERIFY(accessor.count() == 2);
- v = accessor.at(1);
- QCOMPARE(qvariant_cast<QObject*>(v), obj2);
-
- accessor.clear();
- QVERIFY(accessor.count() == 0);
+ QVariant v = accessor.at(0);
+ QCOMPARE(qvariant_cast<QString>(v), QLatin1String("Item1"));
- QVERIFY(accessor.isValid());
+ v = accessor.at(1);
+ QCOMPARE(qvariant_cast<QString>(v), QLatin1String("Item2"));
}
+
QTEST_MAIN(tst_QmlListAccessor)
#include "tst_qmllistaccessor.moc"
diff --git a/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp b/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
index 36a7332..abc1fbe 100644
--- a/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
+++ b/tests/auto/declarative/qmlmetatype/tst_qmlmetatype.cpp
@@ -239,7 +239,7 @@ void tst_qmlmetatype::copy()
QT_COPY_TEST(QTextFormat, QTextFormat(QTextFormat::ListFormat));
QT_COPY_TEST(QMatrix, QMatrix().translate(10, 10));
QT_COPY_TEST(QTransform, QTransform().translate(10, 10));
- QT_COPY_TEST(QMatrix4x4, QMatrix4x4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));
+ QT_COPY_TEST(QMatrix4x4, QMatrix4x4(1,0,2,3,0,1,0,0,9,0,1,0,0,0,10,1));
QT_COPY_TEST(QVector2D, QVector2D(10.2, 1));
QT_COPY_TEST(QVector3D, QVector3D(10.2, 1, -2));
QT_COPY_TEST(QVector4D, QVector4D(10.2, 1, -2, 1.2));
diff --git a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp
index ece6030..fe2658c 100644
--- a/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp
+++ b/tests/auto/declarative/qmlpropertymap/tst_qmlpropertymap.cpp
@@ -41,7 +41,7 @@
#include <qtest.h>
#include <QtDeclarative/qmlengine.h>
#include <QtDeclarative/qmlcontext.h>
-#include <private/qmlpropertymap_p.h>
+#include <QtDeclarative/qmlpropertymap.h>
#include <QtDeclarative/qmlcomponent.h>
#include <private/qmlgraphicstext_p.h>
#include <QSignalSpy>
diff --git a/tests/auto/declarative/qmlqt/data/md5.qml b/tests/auto/declarative/qmlqt/data/md5.qml
new file mode 100644
index 0000000..3c96a6b
--- /dev/null
+++ b/tests/auto/declarative/qmlqt/data/md5.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+Object {
+ property string test1: Qt.md5()
+ property string test2: Qt.md5("Hello World")
+}
diff --git a/tests/auto/declarative/qmlqt/tst_qmlqt.cpp b/tests/auto/declarative/qmlqt/tst_qmlqt.cpp
index e9c9052..13f4904 100644
--- a/tests/auto/declarative/qmlqt/tst_qmlqt.cpp
+++ b/tests/auto/declarative/qmlqt/tst_qmlqt.cpp
@@ -46,6 +46,7 @@
#include <QmlComponent>
#include <QDir>
#include <QVector3D>
+#include <QCryptographicHash>
class tst_qmlqt : public QObject
{
@@ -67,6 +68,7 @@ private slots:
void closestAngle();
void playSound();
void openUrlExternally();
+ void md5();
private:
QmlEngine engine;
@@ -279,6 +281,19 @@ void tst_qmlqt::openUrlExternally()
QVERIFY(false);
}
+void tst_qmlqt::md5()
+{
+ QmlComponent component(&engine, TEST_FILE("md5.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toString(), QLatin1String(QCryptographicHash::hash(QByteArray(), QCryptographicHash::Md5).toHex()));
+ QCOMPARE(object->property("test2").toString(), QLatin1String(QCryptographicHash::hash("Hello World", QCryptographicHash::Md5).toHex()));
+
+ delete object;
+}
+
+
QTEST_MAIN(tst_qmlqt)
#include "tst_qmlqt.moc"
diff --git a/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml b/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml
new file mode 100644
index 0000000..26c533f
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/data/roleErrors.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+XmlListModel {
+ source: "model.xml"
+ query: "/Pets/Pet"
+ XmlRole { name: "name"; query: "/name/string()" } //starts with '/'
+ XmlRole { name: "type"; query: "type" } //no type
+ XmlRole { name: "age"; query: "age/" } //ends with '/'
+ XmlRole { name: "size"; query: "size/number()" } //wrong type
+}
diff --git a/tests/auto/declarative/qmlxmllistmodel/data/unique.qml b/tests/auto/declarative/qmlxmllistmodel/data/unique.qml
new file mode 100644
index 0000000..ed0f293
--- /dev/null
+++ b/tests/auto/declarative/qmlxmllistmodel/data/unique.qml
@@ -0,0 +1,8 @@
+import Qt 4.6
+
+XmlListModel {
+ source: "model.xml"
+ query: "/Pets/Pet"
+ XmlRole { name: "name"; query: "name/string()" }
+ XmlRole { name: "name"; query: "type/string()" }
+}
diff --git a/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp b/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp
index 4898686..a68006d 100644
--- a/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp
+++ b/tests/auto/declarative/qmlxmllistmodel/tst_qmlxmllistmodel.cpp
@@ -56,6 +56,9 @@ private slots:
void missingFields();
void cdata();
void attributes();
+ void roles();
+ void roleErrors();
+ void uniqueRoleNames();
private:
QmlEngine engine;
@@ -76,6 +79,8 @@ void tst_qmlxmllistmodel::buildModel()
QCOMPARE(data.value(Qt::UserRole+1).toString(), QLatin1String("Dog"));
QCOMPARE(data.value(Qt::UserRole+2).toInt(), 9);
QCOMPARE(data.value(Qt::UserRole+3).toString(), QLatin1String("Medium"));
+
+ delete listModel;
}
void tst_qmlxmllistmodel::missingFields()
@@ -95,6 +100,8 @@ void tst_qmlxmllistmodel::missingFields()
data = listModel->data(7, roles);
QVERIFY(data.count() == 5);
QCOMPARE(data.value(Qt::UserRole+2).toString(), QLatin1String(""));
+
+ delete listModel;
}
void tst_qmlxmllistmodel::cdata()
@@ -109,6 +116,8 @@ void tst_qmlxmllistmodel::cdata()
QHash<int, QVariant> data = listModel->data(2, roles);
QVERIFY(data.count() == 1);
QVERIFY(data.value(Qt::UserRole+2).toString().startsWith(QLatin1String("<html>")));
+
+ delete listModel;
}
void tst_qmlxmllistmodel::attributes()
@@ -123,8 +132,63 @@ void tst_qmlxmllistmodel::attributes()
QHash<int, QVariant> data = listModel->data(2, roles);
QVERIFY(data.count() == 1);
QCOMPARE(data.value(Qt::UserRole).toString(), QLatin1String("Vegetable Soup"));
+
+ delete listModel;
}
+void tst_qmlxmllistmodel::roles()
+{
+ QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/model.qml"));
+ QmlXmlListModel *listModel = qobject_cast<QmlXmlListModel*>(component.create());
+ QVERIFY(listModel != 0);
+ QTRY_COMPARE(listModel->count(), 9);
+
+ QList<int> roles = listModel->roles();
+ QCOMPARE(roles.count(), 4);
+ QCOMPARE(listModel->toString(roles.at(0)), QLatin1String("name"));
+ QCOMPARE(listModel->toString(roles.at(1)), QLatin1String("type"));
+ QCOMPARE(listModel->toString(roles.at(2)), QLatin1String("age"));
+ QCOMPARE(listModel->toString(roles.at(3)), QLatin1String("size"));
+
+ delete listModel;
+}
+
+void tst_qmlxmllistmodel::roleErrors()
+{
+ QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/roleErrors.qml"));
+ QTest::ignoreMessage(QtWarningMsg, "QML QmlXmlListModelRole (file://" SRCDIR "/data/roleErrors.qml:6:5) An XmlRole query must not start with '/'");
+ //### make sure we receive all expected warning messages.
+ QmlXmlListModel *listModel = qobject_cast<QmlXmlListModel*>(component.create());
+ QVERIFY(listModel != 0);
+ QTRY_COMPARE(listModel->count(), 9);
+
+ QList<int> roles;
+ roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3;
+ QHash<int, QVariant> data = listModel->data(3, roles);
+ QVERIFY(data.count() == 4);
+
+ //### should any of these return valid values?
+ QCOMPARE(data.value(Qt::UserRole), QVariant());
+ QCOMPARE(data.value(Qt::UserRole+1), QVariant());
+ QCOMPARE(data.value(Qt::UserRole+2), QVariant());
+ QCOMPARE(data.value(Qt::UserRole+3), QVariant());
+
+ delete listModel;
+}
+
+void tst_qmlxmllistmodel::uniqueRoleNames()
+{
+ QmlComponent component(&engine, QUrl("file://" SRCDIR "/data/unique.qml"));
+ QTest::ignoreMessage(QtWarningMsg, "QML QmlXmlListModelRole (file://" SRCDIR "/data/unique.qml:7:5) \"name\" duplicates a previous role name and will be disabled.");
+ QmlXmlListModel *listModel = qobject_cast<QmlXmlListModel*>(component.create());
+ QVERIFY(listModel != 0);
+ QTRY_COMPARE(listModel->count(), 9);
+
+ QList<int> roles = listModel->roles();
+ QCOMPARE(roles.count(), 1);
+
+ delete listModel;
+}
QTEST_MAIN(tst_qmlxmllistmodel)
diff --git a/tests/auto/declarative/repeater/data/intmodel.qml b/tests/auto/declarative/repeater/data/intmodel.qml
new file mode 100644
index 0000000..a779079
--- /dev/null
+++ b/tests/auto/declarative/repeater/data/intmodel.qml
@@ -0,0 +1,17 @@
+import Qt 4.6
+
+Rectangle {
+ id: container
+ objectName: "container"
+ width: 240
+ height: 320
+ color: "white"
+ Repeater {
+ id: repeater
+ objectName: "repeater"
+ model: testData
+ Component {
+ Item{}
+ }
+ }
+}
diff --git a/tests/auto/declarative/repeater/data/objlist.qml b/tests/auto/declarative/repeater/data/objlist.qml
new file mode 100644
index 0000000..ecc6d02
--- /dev/null
+++ b/tests/auto/declarative/repeater/data/objlist.qml
@@ -0,0 +1,21 @@
+import Qt 4.6
+
+Rectangle {
+ id: container
+ objectName: "container"
+ width: 240
+ height: 320
+ color: "white"
+ Repeater {
+ id: repeater
+ objectName: "repeater"
+ model: testData
+ property int errors: 0
+ property int instantiated: 0
+ Component {
+ Item{
+ Component.onCompleted: {if(index!=modelData.idx) repeater.errors += 1; repeater.instantiated++}
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/repeater/tst_repeater.cpp b/tests/auto/declarative/repeater/tst_repeater.cpp
index dc0f1be..e002ee1 100644
--- a/tests/auto/declarative/repeater/tst_repeater.cpp
+++ b/tests/auto/declarative/repeater/tst_repeater.cpp
@@ -52,6 +52,8 @@ public:
tst_QmlGraphicsRepeater();
private slots:
+ void numberModel();
+ void objectList();
void stringList();
private:
@@ -64,6 +66,42 @@ tst_QmlGraphicsRepeater::tst_QmlGraphicsRepeater()
{
}
+void tst_QmlGraphicsRepeater::numberModel()
+{
+ QmlView *canvas = createView(SRCDIR "/data/intmodel.qml");
+ canvas->execute();
+ qApp->processEvents();
+
+ QmlContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testData", 5);
+
+ QmlGraphicsRepeater *repeater = findItem<QmlGraphicsRepeater>(canvas->root(), "repeater");
+ QVERIFY(repeater != 0);
+ QCOMPARE(repeater->parentItem()->childItems().count(), 5+1);
+}
+
+void tst_QmlGraphicsRepeater::objectList()
+{
+ QmlView *canvas = createView(SRCDIR "/data/objlist.qml");
+
+ QObjectList* data = new QObjectList;
+ for(int i=0; i<100; i++){
+ *data << new QObject();
+ data->back()->setProperty("idx", i);
+ }
+
+ QmlContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testData", QVariant::fromValue<QObjectList*>(data));
+
+ canvas->execute();
+ qApp->processEvents();
+
+ QmlGraphicsRepeater *repeater = findItem<QmlGraphicsRepeater>(canvas->root(), "repeater");
+ QVERIFY(repeater != 0);
+ QCOMPARE(repeater->property("errors").toInt(), 0);//If this fails either they are out of order or can't find the object's data
+ QCOMPARE(repeater->property("instantiated").toInt(), 100);
+}
+
/*
The Repeater element creates children at its own position in its parent's
stacking order. In this test we insert a repeater between two other Text
diff --git a/tests/auto/declarative/runall.sh b/tests/auto/declarative/runall.sh
index e4b18da..33087a1 100755
--- a/tests/auto/declarative/runall.sh
+++ b/tests/auto/declarative/runall.sh
@@ -1,14 +1,21 @@
#!/bin/sh
Xnest :7 2>/dev/null &
+sleep 1
trap "kill $!" EXIT
export DISPLAY=:7
-make install 2>&1 |
+make -k -j1 install 2>&1 |
while read line
do
case "$line" in
+ make*Error) echo "$line";;
+ make*Stop) echo "$line";;
make*) ;;
+ */qmake*) ;;
+ */bin/moc*) ;;
+ *targ.debug*) ;;
+ g++*) ;;
cd*) ;;
PASS*) ;;
QDEBUG*) ;;
diff --git a/tests/auto/declarative/states/data/explicit.qml b/tests/auto/declarative/states/data/explicit.qml
new file mode 100644
index 0000000..271115a
--- /dev/null
+++ b/tests/auto/declarative/states/data/explicit.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+Rectangle {
+ id: MyRectangle
+ property color sourceColor: "blue"
+ width: 100; height: 100
+ color: "red"
+ states: State {
+ name: "blue"
+ PropertyChanges {
+ target: MyRectangle; explicit: true
+ color: sourceColor
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/data/parentChange4.qml b/tests/auto/declarative/states/data/parentChange4.qml
new file mode 100644
index 0000000..ee75176
--- /dev/null
+++ b/tests/auto/declarative/states/data/parentChange4.qml
@@ -0,0 +1,30 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 400
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ x: 5; y: 5
+ width: 100; height: 100
+ color: "red"
+ }
+ MouseRegion {
+ id: Clickable
+ anchors.fill: parent
+ }
+
+ Item {
+ id: newParent
+ transform: Scale { xScale: .5; yScale: .7}
+ }
+
+ states: State {
+ name: "reparented"
+ when: Clickable.pressed
+ ParentChange {
+ target: myRect
+ parent: newParent
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/data/parentChange5.qml b/tests/auto/declarative/states/data/parentChange5.qml
new file mode 100644
index 0000000..47b733b
--- /dev/null
+++ b/tests/auto/declarative/states/data/parentChange5.qml
@@ -0,0 +1,30 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 400
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ x: 5; y: 5
+ width: 100; height: 100
+ color: "red"
+ }
+ MouseRegion {
+ id: Clickable
+ anchors.fill: parent
+ }
+
+ Item {
+ id: newParent
+ transform: Rotation { angle: 30; axis { x: 0; y: 1; z: 0 } }
+ }
+
+ states: State {
+ name: "reparented"
+ when: Clickable.pressed
+ ParentChange {
+ target: myRect
+ parent: newParent
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/data/restoreEntryValues.qml b/tests/auto/declarative/states/data/restoreEntryValues.qml
new file mode 100644
index 0000000..d86f033
--- /dev/null
+++ b/tests/auto/declarative/states/data/restoreEntryValues.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+Rectangle {
+ id: MyRectangle
+ width: 100; height: 100
+ color: "red"
+ states: State {
+ name: "blue"
+ PropertyChanges {
+ target: MyRectangle
+ restoreEntryValues: false
+ color: "blue"
+ }
+ }
+}
diff --git a/tests/auto/declarative/states/tst_states.cpp b/tests/auto/declarative/states/tst_states.cpp
index 40e9aa8..3d8f303 100644
--- a/tests/auto/declarative/states/tst_states.cpp
+++ b/tests/auto/declarative/states/tst_states.cpp
@@ -56,8 +56,11 @@ private slots:
void signalOverride();
void signalOverrideCrash();
void parentChange();
+ void parentChangeErrors();
void anchorChanges();
void script();
+ void restoreEntryValues();
+ void explicitChanges();
};
void tst_states::basicChanges()
@@ -425,6 +428,43 @@ void tst_states::parentChange()
}
}
+void tst_states::parentChangeErrors()
+{
+ QmlEngine engine;
+
+ {
+ QmlComponent rectComponent(&engine, SRCDIR "/data/parentChange4.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QmlGraphicsRectangle *innerRect = qobject_cast<QmlGraphicsRectangle*>(rect->findChild<QmlGraphicsRectangle*>("MyRect"));
+ QVERIFY(innerRect != 0);
+
+ QTest::ignoreMessage(QtWarningMsg, "QML QmlParentChange (file://" SRCDIR "/data/parentChange4.qml:25:9) Unable to preserve appearance under non-uniform scale");
+ rect->setState("reparented");
+ QCOMPARE(innerRect->rotation(), qreal(0));
+ QCOMPARE(innerRect->scale(), qreal(1));
+ QCOMPARE(innerRect->x(), qreal(5));
+ QCOMPARE(innerRect->y(), qreal(5));
+ }
+
+ {
+ QmlComponent rectComponent(&engine, SRCDIR "/data/parentChange5.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QmlGraphicsRectangle *innerRect = qobject_cast<QmlGraphicsRectangle*>(rect->findChild<QmlGraphicsRectangle*>("MyRect"));
+ QVERIFY(innerRect != 0);
+
+ QTest::ignoreMessage(QtWarningMsg, "QML QmlParentChange (file://" SRCDIR "/data/parentChange5.qml:25:9) Unable to preserve appearance under complex transform");
+ rect->setState("reparented");
+ QCOMPARE(innerRect->rotation(), qreal(0));
+ QCOMPARE(innerRect->scale(), qreal(1));
+ QCOMPARE(innerRect->x(), qreal(5));
+ QCOMPARE(innerRect->y(), qreal(5));
+ }
+}
+
void tst_states::anchorChanges()
{
QmlEngine engine;
@@ -479,6 +519,48 @@ void tst_states::script()
}
}
+void tst_states::restoreEntryValues()
+{
+ QmlEngine engine;
+
+ QmlComponent rectComponent(&engine, SRCDIR "/data/restoreEntryValues.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QCOMPARE(rect->color(),QColor("red"));
+
+ rect->setState("blue");
+ QCOMPARE(rect->color(),QColor("blue"));
+
+ rect->setState("");
+ QCOMPARE(rect->color(),QColor("blue"));
+}
+
+void tst_states::explicitChanges()
+{
+ QmlEngine engine;
+
+ QmlComponent rectComponent(&engine, SRCDIR "/data/explicit.qml");
+ QmlGraphicsRectangle *rect = qobject_cast<QmlGraphicsRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QCOMPARE(rect->color(),QColor("red"));
+
+ rect->setState("blue");
+ QCOMPARE(rect->color(),QColor("blue"));
+
+ rect->setProperty("sourceColor", QColor("green"));
+ QCOMPARE(rect->color(),QColor("blue"));
+
+ rect->setState("");
+ QCOMPARE(rect->color(),QColor("red"));
+ rect->setProperty("sourceColor", QColor("yellow"));
+ QCOMPARE(rect->color(),QColor("red"));
+
+ rect->setState("blue");
+ QCOMPARE(rect->color(),QColor("yellow"));
+}
+
QTEST_MAIN(tst_states)
#include "tst_states.moc"
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/basic1.qml b/tests/auto/declarative/visual/ListView/data-MAC/basic1.qml
new file mode 100644
index 0000000..83b700d
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/basic1.qml
@@ -0,0 +1,159 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 32
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 48
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 64
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 80
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 96
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 112
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 128
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 144
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 160
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 176
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 192
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 208
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 224
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 240
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 256
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 272
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 288
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 304
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 320
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 336
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 352
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 368
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 384
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 400
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 416
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 432
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 448
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 464
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 480
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 496
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 512
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 528
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 544
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 560
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 576
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+}
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/basic2.qml b/tests/auto/declarative/visual/ListView/data-MAC/basic2.qml
new file mode 100644
index 0000000..1483512
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/basic2.qml
@@ -0,0 +1,187 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 32
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 48
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 64
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 80
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 96
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 112
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 128
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 144
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 160
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 176
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 192
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 208
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 224
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 240
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 256
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 272
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 288
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 304
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 320
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 336
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 352
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 368
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 384
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 400
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 416
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 432
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 448
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 464
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 480
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 496
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 512
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 528
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 544
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 560
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 576
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 592
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 608
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 624
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 640
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 656
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 672
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 688
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+}
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/basic3.qml b/tests/auto/declarative/visual/ListView/data-MAC/basic3.qml
new file mode 100644
index 0000000..bf68998
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/basic3.qml
@@ -0,0 +1,147 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 32
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 48
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 64
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 80
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 96
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 112
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 128
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 144
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 160
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 176
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 192
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 208
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 224
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 240
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 256
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 272
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 288
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 304
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 320
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 336
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 352
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 368
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 384
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 400
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 416
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 432
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 448
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 464
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 480
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 496
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 512
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 528
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+}
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/basic4.qml b/tests/auto/declarative/visual/ListView/data-MAC/basic4.qml
new file mode 100644
index 0000000..4aa9ab6
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/basic4.qml
@@ -0,0 +1,171 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 32
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 48
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 64
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 80
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 96
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 112
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 128
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 144
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 160
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 176
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 192
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 208
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 224
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 240
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 256
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 272
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 288
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 304
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 320
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 336
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 352
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 368
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 384
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 400
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 416
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 432
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 448
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 464
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 480
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 496
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 512
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 528
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 544
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 560
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 576
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 592
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 608
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+ Frame {
+ msec: 624
+ hash: "895c70434a24da42144e60e6d8dcf323"
+ }
+}
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.0.png b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.0.png
new file mode 100644
index 0000000..13b280c
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.1.png b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.1.png
new file mode 100644
index 0000000..402872b
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.2.png b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.2.png
new file mode 100644
index 0000000..afd0830
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.3.png b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.3.png
new file mode 100644
index 0000000..7c15f61
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.4.png b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.4.png
new file mode 100644
index 0000000..afd0830
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.5.png b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.5.png
new file mode 100644
index 0000000..fddf1cb
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.6.png b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.6.png
new file mode 100644
index 0000000..13b280c
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.qml b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.qml
new file mode 100644
index 0000000..073749f
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/itemlist.qml
@@ -0,0 +1,2203 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 32
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 48
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 64
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 80
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 96
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 112
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 128
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 144
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 160
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 176
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 192
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 208
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 224
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 240
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 256
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 272
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 288
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 304
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 320
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 336
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 352
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 368
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 384
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 400
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 416
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 432
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 448
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 464
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 480
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 496
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 512
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 528
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 544
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 560
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 576
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 592
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 608
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 624
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 640
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 656
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 672
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 688
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 704
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 720
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 736
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 752
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 768
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 784
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 800
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 816
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 832
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 848
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 864
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 880
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 896
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 912
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 928
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 944
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 960
+ image: "itemlist.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 992
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1008
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1024
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1040
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1056
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1072
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1088
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1104
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1120
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1136
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1152
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1168
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1184
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1200
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1216
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1232
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1248
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1264
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1280
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1296
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1312
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1328
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1344
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1360
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1376
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1392
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1408
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1424
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1440
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1456
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1472
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1488
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1504
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1520
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1536
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1552
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1568
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1584
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1600
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1616
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1632
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 1648
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 192; y: 111
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1664
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 111
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1680
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 190; y: 112
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 187; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1696
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 184; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 180; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1712
+ hash: "a68b1bc6c2963ee92c3a45f500667b3b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 174; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 167; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1728
+ hash: "7cda93e59466b3348e7ffe3895f89e86"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 160; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1744
+ hash: "06e0008c78e919f7270402938d9d764b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 140; y: 121
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 132; y: 122
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1760
+ hash: "9d8da9199efebb95f56e5d4ebc9a585e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 114; y: 126
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 132
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1776
+ hash: "54a60a4279911ba4a8a5741bcadfa783"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 91; y: 132
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 91; y: 132
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1792
+ hash: "a1a19370a1a8ed78e475f0d0eb12311c"
+ }
+ Frame {
+ msec: 1808
+ hash: "196a3b127cf7065614c34856bf8d8bca"
+ }
+ Frame {
+ msec: 1824
+ hash: "5fbefbd7c7be4374382cc4c8b86ac78a"
+ }
+ Frame {
+ msec: 1840
+ hash: "d6a544c622e504c1b931e1a8a1310a6e"
+ }
+ Frame {
+ msec: 1856
+ hash: "20e76f0eb4ec5f691999faf8ad313370"
+ }
+ Frame {
+ msec: 1872
+ hash: "7f84a3545907c754ae8a6a30ef61c98d"
+ }
+ Frame {
+ msec: 1888
+ hash: "b544901eae32903ad054e8cdfed715eb"
+ }
+ Frame {
+ msec: 1904
+ hash: "a010ed1e3312f4ca9f429b7e32cdcef9"
+ }
+ Frame {
+ msec: 1920
+ image: "itemlist.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "93a731dc6f71b6ff5400bf74c87e6c46"
+ }
+ Frame {
+ msec: 1952
+ hash: "c73f63d1a024ba956e693487b3ccc761"
+ }
+ Frame {
+ msec: 1968
+ hash: "539d3d00fce2d0128cd697d86d237fe7"
+ }
+ Frame {
+ msec: 1984
+ hash: "52752d7d6f2d0e085f7132313907b72b"
+ }
+ Frame {
+ msec: 2000
+ hash: "f46dd5803a6075e979e0fc733d503bfb"
+ }
+ Frame {
+ msec: 2016
+ hash: "b8734698a6bad00ecf019f85328c2c21"
+ }
+ Frame {
+ msec: 2032
+ hash: "1cfc499ca756023430cc5b2fa95a599d"
+ }
+ Frame {
+ msec: 2048
+ hash: "63a816548837c19f8f0494c137fc0174"
+ }
+ Frame {
+ msec: 2064
+ hash: "1bce9b85235e9a1a472c079dfec70ec5"
+ }
+ Frame {
+ msec: 2080
+ hash: "6677863e7f74c12648409883f73adbe2"
+ }
+ Frame {
+ msec: 2096
+ hash: "98e707a3e39a5f7bd4a101c2ed83535c"
+ }
+ Frame {
+ msec: 2112
+ hash: "c1f6d8842d14a9394d4b7797314f50e8"
+ }
+ Frame {
+ msec: 2128
+ hash: "579758b477bcd2112b305a5aac7df338"
+ }
+ Frame {
+ msec: 2144
+ hash: "4a7bb81090db246db53e2dbc56f710ea"
+ }
+ Frame {
+ msec: 2160
+ hash: "074995cdd8a70817d1c8a7bb0ad4c542"
+ }
+ Frame {
+ msec: 2176
+ hash: "bd8d7bda4d2e9ad1fba2895d568f36cc"
+ }
+ Frame {
+ msec: 2192
+ hash: "40cce3d2d80ac470af44fc334cec1d5b"
+ }
+ Frame {
+ msec: 2208
+ hash: "15cbc226b032d5a97199735ea7a1408b"
+ }
+ Frame {
+ msec: 2224
+ hash: "12b296aea9b058a5402d0d0a620f8edc"
+ }
+ Frame {
+ msec: 2240
+ hash: "6ffd2b79cf0e941a59e74bc6f9025bcb"
+ }
+ Frame {
+ msec: 2256
+ hash: "589a58ef76ea709dc8d80390c9044f99"
+ }
+ Frame {
+ msec: 2272
+ hash: "c009924bfa30153f22ab168b539494e9"
+ }
+ Frame {
+ msec: 2288
+ hash: "4b83674a7c2daa68d735901ad40be2bd"
+ }
+ Frame {
+ msec: 2304
+ hash: "0525908c0302ada989e28990bac3f2ca"
+ }
+ Frame {
+ msec: 2320
+ hash: "89eb13976ba3ba4413cafeb0cc91c01b"
+ }
+ Frame {
+ msec: 2336
+ hash: "75c1295ef99680784b2e11fb88fa1423"
+ }
+ Frame {
+ msec: 2352
+ hash: "93d89165cf6a97c76ae6e7f75678a3cd"
+ }
+ Frame {
+ msec: 2368
+ hash: "53064c1938f08a55603a99b0db225174"
+ }
+ Frame {
+ msec: 2384
+ hash: "31db5684466c0c32128a9a8c7b1835e1"
+ }
+ Frame {
+ msec: 2400
+ hash: "99d9e58697736198e0a00443d237e85b"
+ }
+ Frame {
+ msec: 2416
+ hash: "6c1e860aef983367365d53f5849ad441"
+ }
+ Frame {
+ msec: 2432
+ hash: "6c1e860aef983367365d53f5849ad441"
+ }
+ Frame {
+ msec: 2448
+ hash: "6c1e860aef983367365d53f5849ad441"
+ }
+ Frame {
+ msec: 2464
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2480
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2496
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2512
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2528
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2544
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2560
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2576
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2592
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2608
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2624
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2640
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2656
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2672
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2688
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2704
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2720
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2736
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2752
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2768
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2784
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2800
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2816
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2832
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2848
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 2864
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 181; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2880
+ image: "itemlist.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 179; y: 105
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 177; y: 106
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2912
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 174; y: 108
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 170; y: 110
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2928
+ hash: "5bb06b4e74532ba5bc8c7bc38bf77d7f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 112
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 160; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2944
+ hash: "b10a6206830a876017799ef2fcf61b1a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 140; y: 123
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2960
+ hash: "b2e24759ba10afd6cff90f4b1e04b496"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 124; y: 127
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 124; y: 127
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2976
+ hash: "ccbcd6f45cb529c2db71504c0f69d73e"
+ }
+ Frame {
+ msec: 2992
+ hash: "7b31c6d5931677f1aa1e8c7d48a4ff22"
+ }
+ Frame {
+ msec: 3008
+ hash: "c52f691a0a6cf155118bdfea2dfea623"
+ }
+ Frame {
+ msec: 3024
+ hash: "dd639d1df3d4a9b8f06718def63d588f"
+ }
+ Frame {
+ msec: 3040
+ hash: "39d767b09a648ef6295cec2848f9226f"
+ }
+ Frame {
+ msec: 3056
+ hash: "5dd46d5f386431e7b13348ac9a9630ed"
+ }
+ Frame {
+ msec: 3072
+ hash: "0354e5183b0e66e7ba146d292c559df4"
+ }
+ Frame {
+ msec: 3088
+ hash: "984aa6d7075e24de429e05b1b0eda94a"
+ }
+ Frame {
+ msec: 3104
+ hash: "1af58a2f44f1f613712d4df85e38356d"
+ }
+ Frame {
+ msec: 3120
+ hash: "6e4085e7f1fee724d78808753f04b471"
+ }
+ Frame {
+ msec: 3136
+ hash: "73a019ef9057639d631cd99a431b3f3b"
+ }
+ Frame {
+ msec: 3152
+ hash: "c9414a2e655a90dfdcb6fb288b4ba0ca"
+ }
+ Frame {
+ msec: 3168
+ hash: "3f4c24f7ac89da982af22032309637fb"
+ }
+ Frame {
+ msec: 3184
+ hash: "a50e6ada8f73a257657f4348ceaffcfd"
+ }
+ Frame {
+ msec: 3200
+ hash: "a67bf40d09259bbd079c12ae4f49150f"
+ }
+ Frame {
+ msec: 3216
+ hash: "a2fc512b7c234a9d0b2c1a83387a8a46"
+ }
+ Frame {
+ msec: 3232
+ hash: "85090683ce9a3c9833b1cb0b3df076ee"
+ }
+ Frame {
+ msec: 3248
+ hash: "275f3594a0e2cc4b6717f9f336e7e1b6"
+ }
+ Frame {
+ msec: 3264
+ hash: "2473eb11f7b65a784a2b166114026488"
+ }
+ Frame {
+ msec: 3280
+ hash: "4865c30dc45fbf5ca82047b77eca0912"
+ }
+ Frame {
+ msec: 3296
+ hash: "54de88bca395449fbaea2c090c7a5d91"
+ }
+ Frame {
+ msec: 3312
+ hash: "833f9295cf9a34934f001eac48551b59"
+ }
+ Frame {
+ msec: 3328
+ hash: "5bf565f57ababa7380faeee94add91ca"
+ }
+ Frame {
+ msec: 3344
+ hash: "6325578867f1eb3b2d47ed40b017b571"
+ }
+ Frame {
+ msec: 3360
+ hash: "046a6114176b3a3206b7a2acd6e30b41"
+ }
+ Frame {
+ msec: 3376
+ hash: "f8d4120a17f28c2d1d9c4be959098058"
+ }
+ Frame {
+ msec: 3392
+ hash: "71356d2e48aad2900784ea6bc1a3d908"
+ }
+ Frame {
+ msec: 3408
+ hash: "b84ad460fb81fdc4049abe8f3ff180bb"
+ }
+ Frame {
+ msec: 3424
+ hash: "0354239f5eaea23474d9f81385392a8a"
+ }
+ Frame {
+ msec: 3440
+ hash: "8ef0eef3393e07ae7605c865a95edc30"
+ }
+ Frame {
+ msec: 3456
+ hash: "5b8b384cc8e3faf4310015e19b3eb487"
+ }
+ Frame {
+ msec: 3472
+ hash: "77c18ac7dfff2a4e516915e3e3df0717"
+ }
+ Frame {
+ msec: 3488
+ hash: "c1d3264384c26345eb8100de829309ca"
+ }
+ Frame {
+ msec: 3504
+ hash: "6b21f71d0bedef4bbcb445a13f61e7a3"
+ }
+ Frame {
+ msec: 3520
+ hash: "f619097356671f6eb54d3b1c481e709d"
+ }
+ Frame {
+ msec: 3536
+ hash: "e56e3a90da446e0c482cb93717f6aacc"
+ }
+ Frame {
+ msec: 3552
+ hash: "aa94ebdbb4b8423aff28c95daff0baf5"
+ }
+ Frame {
+ msec: 3568
+ hash: "e1744d9cacd1a2c96af4cfdd5c486995"
+ }
+ Frame {
+ msec: 3584
+ hash: "7f19ea52e9e41a3b1bd90bb2a144d305"
+ }
+ Frame {
+ msec: 3600
+ hash: "7f19ea52e9e41a3b1bd90bb2a144d305"
+ }
+ Frame {
+ msec: 3616
+ hash: "7f19ea52e9e41a3b1bd90bb2a144d305"
+ }
+ Frame {
+ msec: 3632
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3648
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3664
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3680
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3696
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3712
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3728
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3744
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3760
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3776
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3792
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3808
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3824
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3840
+ image: "itemlist.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3872
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3888
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3904
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3920
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3936
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3952
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3968
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 3984
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 4000
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 4016
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 4032
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 4048
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 4064
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 4080
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Frame {
+ msec: 4096
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 31; y: 137
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4112
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 32; y: 137
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4128
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 33; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 36; y: 135
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4144
+ hash: "88143ff6c278a5433b314b551b7b8b1d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 134
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 132
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4160
+ hash: "c2c9c284b185a89faf4ddb5a7867f449"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 64; y: 130
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4176
+ hash: "de1c18aeda5d2fbd6dad4554c78617bd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 86; y: 126
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 110; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 110; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4192
+ hash: "a67bf40d09259bbd079c12ae4f49150f"
+ }
+ Frame {
+ msec: 4208
+ hash: "94514668dafbe41c5890a578efd6dea4"
+ }
+ Frame {
+ msec: 4224
+ hash: "2e97a74eb9ddb1c9613c89e2d78db018"
+ }
+ Frame {
+ msec: 4240
+ hash: "4b5368f0d86bffeb6bd31b58aec88650"
+ }
+ Frame {
+ msec: 4256
+ hash: "b459bde7bb4ce51e6ecdab58f64fcbb9"
+ }
+ Frame {
+ msec: 4272
+ hash: "7bac8cc3ec64c9ad1c0da282e38c953e"
+ }
+ Frame {
+ msec: 4288
+ hash: "a73a58c3d7a757547740a2a161f4c756"
+ }
+ Frame {
+ msec: 4304
+ hash: "b35edcb1fa3568a3e770ab2364b82e75"
+ }
+ Frame {
+ msec: 4320
+ hash: "d6c863ef57c5e5cb04cdac72f920db0b"
+ }
+ Frame {
+ msec: 4336
+ hash: "0db5e4588ff851918b07796f0cf07382"
+ }
+ Frame {
+ msec: 4352
+ hash: "71ec8c363ca6a6f7556afb70faccffe6"
+ }
+ Frame {
+ msec: 4368
+ hash: "18d026e9c965ada1db67c643576d2a80"
+ }
+ Frame {
+ msec: 4384
+ hash: "69f71c22dff981a4da8ec1edcf90e79f"
+ }
+ Frame {
+ msec: 4400
+ hash: "680460f5e4d9e649931601041af046b2"
+ }
+ Frame {
+ msec: 4416
+ hash: "3028763fd15de2607b20b1331b904a4a"
+ }
+ Frame {
+ msec: 4432
+ hash: "333eb60e217fe1ea7469eab52ac461f1"
+ }
+ Frame {
+ msec: 4448
+ hash: "ccbcd6f45cb529c2db71504c0f69d73e"
+ }
+ Frame {
+ msec: 4464
+ hash: "3445df9b41a0a3e74738cbf328ab7d5c"
+ }
+ Frame {
+ msec: 4480
+ hash: "bd2c072558479e9de7a97207e58cc57f"
+ }
+ Frame {
+ msec: 4496
+ hash: "3d34b0b24a30eda93377dcb4585afed8"
+ }
+ Frame {
+ msec: 4512
+ hash: "d3045703863b0c5a327b9355c23d69f2"
+ }
+ Frame {
+ msec: 4528
+ hash: "2f2eb55f693415b840a317211b250e9f"
+ }
+ Frame {
+ msec: 4544
+ hash: "791b9ca7d47a3343474c30a35e336d4b"
+ }
+ Frame {
+ msec: 4560
+ hash: "73a0c02ebad6d3d5f939d9a00dd898bf"
+ }
+ Frame {
+ msec: 4576
+ hash: "d5c11135d586711b12f236430a2c2795"
+ }
+ Frame {
+ msec: 4592
+ hash: "34f9ea214fe714ff4e994f715ea6ea39"
+ }
+ Frame {
+ msec: 4608
+ hash: "8e49afa00983b156b818533923fb6edd"
+ }
+ Frame {
+ msec: 4624
+ hash: "e7e7bef17cee92eca9191fd734d7a577"
+ }
+ Frame {
+ msec: 4640
+ hash: "e407f6ed7cb3c130365ab5515d6308c0"
+ }
+ Frame {
+ msec: 4656
+ hash: "5bb06b4e74532ba5bc8c7bc38bf77d7f"
+ }
+ Frame {
+ msec: 4672
+ hash: "0ad7411316031e22034c14e81ca3a806"
+ }
+ Frame {
+ msec: 4688
+ hash: "dd81d7a9b48c922b4c42cba1b5f2b9d7"
+ }
+ Frame {
+ msec: 4704
+ hash: "32bef6f5005ad94e29ff59165958fbdc"
+ }
+ Frame {
+ msec: 4720
+ hash: "87758dd311f91193bf1e3536c2f58525"
+ }
+ Frame {
+ msec: 4736
+ hash: "015be92a4ff4e735fcc3cbc7a8b9d763"
+ }
+ Frame {
+ msec: 4752
+ hash: "d4c34ed49317c6692d71681fcd9842b6"
+ }
+ Frame {
+ msec: 4768
+ hash: "abaa235bb946a8abaddd52981d632c2d"
+ }
+ Frame {
+ msec: 4784
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4800
+ image: "itemlist.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4832
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4848
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4864
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4880
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4896
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4912
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4928
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4944
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4960
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4976
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 4992
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5008
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5024
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5040
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5056
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5072
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5088
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5104
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5120
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5136
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5152
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5168
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5184
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5200
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5216
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Frame {
+ msec: 5232
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 17; y: 120
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5248
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 19; y: 120
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 21; y: 120
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5264
+ hash: "99f9988040a389576cb6420b5391f768"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 24; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 28; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5280
+ hash: "95b380c9ab6f8db7b822faf023d94546"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 35; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 44; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5296
+ hash: "bb79e53556698c62ec30c75be9f6b7d7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 96; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 96; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5312
+ hash: "285cc2f0df1f59f25a0135560ab6edf2"
+ }
+ Frame {
+ msec: 5328
+ hash: "93a731dc6f71b6ff5400bf74c87e6c46"
+ }
+ Frame {
+ msec: 5344
+ hash: "eb555741ab128a50de5a18a454f2e639"
+ }
+ Frame {
+ msec: 5360
+ hash: "5dbe6cf898c1e37fcaacecfcf57b2194"
+ }
+ Frame {
+ msec: 5376
+ hash: "e7795610115593e78bb32f7bcc0ae2eb"
+ }
+ Frame {
+ msec: 5392
+ hash: "20e76f0eb4ec5f691999faf8ad313370"
+ }
+ Frame {
+ msec: 5408
+ hash: "d6a544c622e504c1b931e1a8a1310a6e"
+ }
+ Frame {
+ msec: 5424
+ hash: "e7a3a21feed244c5b1c710a9254c15f0"
+ }
+ Frame {
+ msec: 5440
+ hash: "5a4b1aca24f121d1373646e9d80b86fd"
+ }
+ Frame {
+ msec: 5456
+ hash: "331d2ec7021655c86aa64e47718a1088"
+ }
+ Frame {
+ msec: 5472
+ hash: "92096bc872e7395aa5b75c44646a0b60"
+ }
+ Frame {
+ msec: 5488
+ hash: "0d9aa6cee4d21488cbb5153f8f3ed593"
+ }
+ Frame {
+ msec: 5504
+ hash: "c1b943d43701605563fffffcb75f9fa7"
+ }
+ Frame {
+ msec: 5520
+ hash: "1b680025d5ad1ddd8f8d5f570ba73e71"
+ }
+ Frame {
+ msec: 5536
+ hash: "5539a3b9f60ea747c10ed8328b467cbf"
+ }
+ Frame {
+ msec: 5552
+ hash: "0a1317bcb606cd3488c5b14ee5d96585"
+ }
+ Frame {
+ msec: 5568
+ hash: "8844af68b11db7d92c69804c7371a746"
+ }
+ Frame {
+ msec: 5584
+ hash: "28d7fd127739c6e3b8488651b725c802"
+ }
+ Frame {
+ msec: 5600
+ hash: "0cf1a7d958a96aa2768995dddc5ccc09"
+ }
+ Frame {
+ msec: 5616
+ hash: "64b902fe7ab4d89ef0c7b760974e3488"
+ }
+ Frame {
+ msec: 5632
+ hash: "aba11c597eba550fc1eaddbf554057f6"
+ }
+ Frame {
+ msec: 5648
+ hash: "1bacaa3bb9dc3cac9ffc7491cb4dc1a5"
+ }
+ Frame {
+ msec: 5664
+ hash: "0ba8b582234d9f0c198c0c9e18e1cb02"
+ }
+ Frame {
+ msec: 5680
+ hash: "f66eaf2b5c3529987c0d9d005351ed73"
+ }
+ Frame {
+ msec: 5696
+ hash: "75b0bb720fa4c77da3783b3ff31c2fae"
+ }
+ Frame {
+ msec: 5712
+ hash: "345b235bb7f13409378e5c0c370f2a41"
+ }
+ Frame {
+ msec: 5728
+ hash: "83b7e902dce4e0fdc4ef5d629188c23c"
+ }
+ Frame {
+ msec: 5744
+ hash: "04b9041c6f10969889d92e94785c7e88"
+ }
+ Frame {
+ msec: 5760
+ image: "itemlist.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "4f3a902addc34ecdaf390e2427cc52e7"
+ }
+ Frame {
+ msec: 5792
+ hash: "68d443f16c16821ffc9ca68b17c76034"
+ }
+ Frame {
+ msec: 5808
+ hash: "9d25adc77befa761ee376a9b43595b5e"
+ }
+ Frame {
+ msec: 5824
+ hash: "a68b1bc6c2963ee92c3a45f500667b3b"
+ }
+ Frame {
+ msec: 5840
+ hash: "d5268cd58c222451d48038e715e83802"
+ }
+ Frame {
+ msec: 5856
+ hash: "f37d461541a8ec7a4161b18748de6aea"
+ }
+ Frame {
+ msec: 5872
+ hash: "805319ac7ca842feb3649e92f8b5b72f"
+ }
+ Frame {
+ msec: 5888
+ hash: "73124472a05080891d4948d8ca273f8c"
+ }
+ Frame {
+ msec: 5904
+ hash: "b6e433a23282a50db2e165a2447ba3f6"
+ }
+ Frame {
+ msec: 5920
+ hash: "fd8d3f5688b1806998c6087e18c6c730"
+ }
+ Frame {
+ msec: 5936
+ hash: "f132dd459950ef2d18aa93ca950d0692"
+ }
+ Frame {
+ msec: 5952
+ hash: "ade5beb259b5277c333ca806fc9bdbec"
+ }
+ Frame {
+ msec: 5968
+ hash: "ade5beb259b5277c333ca806fc9bdbec"
+ }
+ Frame {
+ msec: 5984
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6000
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6016
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6032
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6048
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6064
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6080
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6096
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6112
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6128
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6144
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6160
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6176
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6192
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6208
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6224
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6240
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6256
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6272
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6288
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6304
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6320
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6336
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6352
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6368
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6384
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6400
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6416
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6432
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6448
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6464
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6480
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6496
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6512
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6528
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6544
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6560
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6576
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6592
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6608
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6624
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6640
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6656
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6672
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6688
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6704
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6720
+ image: "itemlist.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6752
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6768
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6784
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6800
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6816
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6832
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6848
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6864
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6880
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6896
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6912
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6928
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6944
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6960
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6976
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 6992
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7008
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7024
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7040
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7056
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7072
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7088
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7104
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7120
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7136
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7152
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7168
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7184
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7200
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7216
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7232
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7248
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7264
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7280
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7296
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+ Frame {
+ msec: 7312
+ hash: "bf47cc398a702dd17c8efebb3d2f8073"
+ }
+}
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.0.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.0.png
new file mode 100644
index 0000000..a1ab987
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.1.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.1.png
new file mode 100644
index 0000000..a1ab987
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.10.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.10.png
new file mode 100644
index 0000000..dcfca3f
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.11.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.11.png
new file mode 100644
index 0000000..7cc4047
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.11.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.12.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.12.png
new file mode 100644
index 0000000..a97f4ad
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.12.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.13.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.13.png
new file mode 100644
index 0000000..7a8c6bd
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.13.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.14.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.14.png
new file mode 100644
index 0000000..ae47356
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.14.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.15.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.15.png
new file mode 100644
index 0000000..b3a7260
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.15.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.16.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.16.png
new file mode 100644
index 0000000..581e824
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.16.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.17.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.17.png
new file mode 100644
index 0000000..581e824
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.17.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.18.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.18.png
new file mode 100644
index 0000000..581e824
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.18.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.19.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.19.png
new file mode 100644
index 0000000..581e824
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.19.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.2.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.2.png
new file mode 100644
index 0000000..9877b92
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.3.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.3.png
new file mode 100644
index 0000000..603bd24
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.4.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.4.png
new file mode 100644
index 0000000..5fdfbb8
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.5.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.5.png
new file mode 100644
index 0000000..a1ab987
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.6.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.6.png
new file mode 100644
index 0000000..9ccf9b0
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.7.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.7.png
new file mode 100644
index 0000000..6b40e1b
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.8.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.8.png
new file mode 100644
index 0000000..2fda36d
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.9.png b/tests/auto/declarative/visual/ListView/data-MAC/listview.9.png
new file mode 100644
index 0000000..581e824
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.qml b/tests/auto/declarative/visual/ListView/data-MAC/listview.qml
new file mode 100644
index 0000000..3765668
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data-MAC/listview.qml
@@ -0,0 +1,3079 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 32
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 48
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 64
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 80
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 96
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 112
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 128
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 144
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 160
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 176
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 192
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 208
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 224
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 240
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 256
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 272
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 288
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 304
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 320
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 336
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 352
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 368
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 384
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 400
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 416
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 432
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 448
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 464
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 480
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 496
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 512
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 528
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 544
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 560
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 576
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 592
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 608
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 624
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 640
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 656
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 672
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 688
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 704
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 720
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 736
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 752
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 768
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 784
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 800
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 816
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 832
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 848
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 864
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 880
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 896
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 912
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 928
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 944
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 960
+ image: "listview.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 992
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1008
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1024
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1040
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1056
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1072
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1088
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1104
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1120
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1136
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1152
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1168
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1184
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1200
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1216
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1232
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1248
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1264
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1280
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1296
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1312
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1328
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1344
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1360
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1376
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1392
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1408
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1424
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1440
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1456
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1472
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1488
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1504
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1520
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1536
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1552
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1568
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1584
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1600
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1616
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1632
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1648
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1664
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1680
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1696
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1712
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1728
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1744
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1760
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1776
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1792
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1808
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1824
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1840
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1856
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1872
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1888
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1904
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1920
+ image: "listview.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1952
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1968
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 1984
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2000
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2016
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2032
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2048
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2064
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2080
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2096
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2112
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2128
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2144
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2160
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2176
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2192
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2208
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2224
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2240
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2256
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2272
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2288
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2304
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2320
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2336
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2352
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2368
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2384
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2400
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2416
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2432
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2448
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2464
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2480
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2496
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2512
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2528
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2544
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2560
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2576
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2592
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 553; y: 267
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2608
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 2624
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 554; y: 267
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 555; y: 266
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2640
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 556; y: 265
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 558; y: 260
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2656
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 560; y: 256
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2672
+ hash: "c315e184c4dcb11d7e9fd4509a8b6a1f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 562; y: 250
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 566; y: 234
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2688
+ hash: "aeef1cacca9518408519b670443e396f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 568; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2704
+ hash: "621626927f83bf7b36b78f5ca7ed4ed0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 572; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 572; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2720
+ hash: "b2aca965b745e98365195c52b9dd9a2c"
+ }
+ Frame {
+ msec: 2736
+ hash: "4cc8c162afcc45c79afd8230893d4ddd"
+ }
+ Frame {
+ msec: 2752
+ hash: "b9c0815086393878ad00566db7a3c577"
+ }
+ Frame {
+ msec: 2768
+ hash: "23cbc15fce97f966c24e3ec626e01960"
+ }
+ Frame {
+ msec: 2784
+ hash: "3a7ce897b47ba39e63be31a020de6f3d"
+ }
+ Frame {
+ msec: 2800
+ hash: "2a8a32cd27fad2c57c9eb518c7b3b3ca"
+ }
+ Frame {
+ msec: 2816
+ hash: "96d676ad58119430b440a5f0a2215f26"
+ }
+ Frame {
+ msec: 2832
+ hash: "5f9cd251615ee6a98470a7b6098f7890"
+ }
+ Frame {
+ msec: 2848
+ hash: "c9b1c073cbfbf1c353685b3f38baa675"
+ }
+ Frame {
+ msec: 2864
+ hash: "cf5bfbfe8904ea40b796d2b33d5cc363"
+ }
+ Frame {
+ msec: 2880
+ image: "listview.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "c75c3342b476f75fc0c5f56a374da13e"
+ }
+ Frame {
+ msec: 2912
+ hash: "0dfcd15d21b7e949b56bc69d881c52f5"
+ }
+ Frame {
+ msec: 2928
+ hash: "73b7352bb11d29cbf64b6b594e761e42"
+ }
+ Frame {
+ msec: 2944
+ hash: "876361c2fc18c2236c1dffd36f517f44"
+ }
+ Frame {
+ msec: 2960
+ hash: "0dfaf61e3a86ee056a5d76cf6f7994b2"
+ }
+ Frame {
+ msec: 2976
+ hash: "391995cfc5d8d3808b30d74ba5ea3188"
+ }
+ Frame {
+ msec: 2992
+ hash: "6fd4f14c16a8870355fa190c94e4be2d"
+ }
+ Frame {
+ msec: 3008
+ hash: "0aac04c8092505d934220e61c7959512"
+ }
+ Frame {
+ msec: 3024
+ hash: "6cb0fbe22fcd60b5ed6385e49522b32e"
+ }
+ Frame {
+ msec: 3040
+ hash: "2eb7fd1a773e32ae94284cf57efaaff2"
+ }
+ Frame {
+ msec: 3056
+ hash: "e143ed5eeb94b35ef97e965f34d45e4d"
+ }
+ Frame {
+ msec: 3072
+ hash: "529e85f2cd48c1f0d056682b8350445b"
+ }
+ Frame {
+ msec: 3088
+ hash: "d74bded985c00ecd192ff8fdce708450"
+ }
+ Frame {
+ msec: 3104
+ hash: "f71568b2173f72c4433a019775923c02"
+ }
+ Frame {
+ msec: 3120
+ hash: "1185a1c936ac08633c14d39ca9c4f5e9"
+ }
+ Frame {
+ msec: 3136
+ hash: "e641720bf75f1e4f0a8471f3a8b35094"
+ }
+ Frame {
+ msec: 3152
+ hash: "cecc41fb42abb95505c094829fd415bf"
+ }
+ Frame {
+ msec: 3168
+ hash: "7ad89090beb9de3cd7c5a5a03fca900d"
+ }
+ Frame {
+ msec: 3184
+ hash: "2a98fe4406367d4e286d8932d6a21318"
+ }
+ Frame {
+ msec: 3200
+ hash: "9aad024b2fc25ce886ccaa4ac106b1d8"
+ }
+ Frame {
+ msec: 3216
+ hash: "3c4a787a4d590efd2e72706e40df7b6d"
+ }
+ Frame {
+ msec: 3232
+ hash: "1135e06c2981bdaed13c13400e178dc3"
+ }
+ Frame {
+ msec: 3248
+ hash: "1fbceedf1c20f2aa3f05be36126280e2"
+ }
+ Frame {
+ msec: 3264
+ hash: "5d1ec83f43b649c732cc3f7815100428"
+ }
+ Frame {
+ msec: 3280
+ hash: "27501f6b6adccfdb77a5228611e2a95a"
+ }
+ Frame {
+ msec: 3296
+ hash: "218dc244352c14467f2b2a39d78a1bc7"
+ }
+ Frame {
+ msec: 3312
+ hash: "33a998563d2c053e375f619b7a75a224"
+ }
+ Frame {
+ msec: 3328
+ hash: "02d34b79e25367e6d0dc1765cab12353"
+ }
+ Frame {
+ msec: 3344
+ hash: "2698cf68138aa7d292167bcc85f60b74"
+ }
+ Frame {
+ msec: 3360
+ hash: "0b33e929b420596ff1dce2eeef8480db"
+ }
+ Frame {
+ msec: 3376
+ hash: "d8ec307a85cecaacaa908ceb34d5db5b"
+ }
+ Frame {
+ msec: 3392
+ hash: "4afe1df3e802b41d1b89b5fab4e35190"
+ }
+ Frame {
+ msec: 3408
+ hash: "e8f484ed8d2a6745ee87ac9544281d55"
+ }
+ Frame {
+ msec: 3424
+ hash: "6df053920e87d7e6e3ec0368b4b14c25"
+ }
+ Frame {
+ msec: 3440
+ hash: "6e94791acce321417a37132821c0260d"
+ }
+ Frame {
+ msec: 3456
+ hash: "fea3e31cbf3078615f57c934197dac35"
+ }
+ Frame {
+ msec: 3472
+ hash: "e8d15890a8bd95db39889d19f046901b"
+ }
+ Frame {
+ msec: 3488
+ hash: "038b422b154dfef2d955b833892c581e"
+ }
+ Frame {
+ msec: 3504
+ hash: "01180b3d9b504ca2814382eadaf3a4e0"
+ }
+ Frame {
+ msec: 3520
+ hash: "869a0aa0d67043822c65383e0f3264d4"
+ }
+ Frame {
+ msec: 3536
+ hash: "43785b1214510c10b65018a9d68a93b1"
+ }
+ Frame {
+ msec: 3552
+ hash: "95e6ebc35c2fb128b6e6ac0743268523"
+ }
+ Frame {
+ msec: 3568
+ hash: "f8c22a6ca3169de4d29b3b0e2908f581"
+ }
+ Frame {
+ msec: 3584
+ hash: "6baf16c321847d269718bcb3468aeeb2"
+ }
+ Frame {
+ msec: 3600
+ hash: "30804b5eb2a6d99116475cbdc1a9c043"
+ }
+ Frame {
+ msec: 3616
+ hash: "c892c17ec947a910b74f5b8704405e9f"
+ }
+ Frame {
+ msec: 3632
+ hash: "696029b77512943001c9eba64191e633"
+ }
+ Frame {
+ msec: 3648
+ hash: "4c26bb0ca28d74a2bb79d0bfc8127361"
+ }
+ Frame {
+ msec: 3664
+ hash: "6e8c50cc14c9afe73b4baf09a6a8f1a4"
+ }
+ Frame {
+ msec: 3680
+ hash: "fd20e4259b44357c93f22f35c698fe1b"
+ }
+ Frame {
+ msec: 3696
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3712
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3728
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3744
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3760
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3776
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3792
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3808
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3824
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3840
+ image: "listview.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3872
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3888
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3904
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3920
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3936
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3952
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3968
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 3984
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4000
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4016
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4032
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4048
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4064
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4080
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4096
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4112
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4128
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Frame {
+ msec: 4144
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 521; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4160
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 25
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4176
+ hash: "5d49efe1383065f0b88f1bfdbbe5e165"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4192
+ hash: "a5df688148c264de1d376c9b87ddfa6b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4208
+ hash: "a4e2c1878b0afce0ee1eebd63e9c951a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 66
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4224
+ hash: "2f9a79278d492790ef86a09c77e95ff4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 531; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 531; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4240
+ hash: "5b5ce7206b26528157c426f4e1e3e0a8"
+ }
+ Frame {
+ msec: 4256
+ hash: "65a1e5f81ab89b163aed46b984cca45e"
+ }
+ Frame {
+ msec: 4272
+ hash: "e28253ad5a2415251b68bcda1d7d4bd0"
+ }
+ Frame {
+ msec: 4288
+ hash: "71aae5abb4a9e9077053ea21dd3ec315"
+ }
+ Frame {
+ msec: 4304
+ hash: "33fcea38fc3b328b3294f9ac2a26aa1a"
+ }
+ Frame {
+ msec: 4320
+ hash: "6299eb1d87f371966307668b92de6a0b"
+ }
+ Frame {
+ msec: 4336
+ hash: "4f66d8c7cb6971d0fc24089d123c547b"
+ }
+ Frame {
+ msec: 4352
+ hash: "d9906d61b31fabf968290ebcd6688f34"
+ }
+ Frame {
+ msec: 4368
+ hash: "5a1945993ff8096ba6b933d45586044a"
+ }
+ Frame {
+ msec: 4384
+ hash: "331535e54da9bbdbc2fbf2b244ad0199"
+ }
+ Frame {
+ msec: 4400
+ hash: "4dc39de0c54f6e0b77f94f6ae6c345ec"
+ }
+ Frame {
+ msec: 4416
+ hash: "ec309a298ce246c13eb666488eb75016"
+ }
+ Frame {
+ msec: 4432
+ hash: "a133819f8adc6265eb0e438261c869e3"
+ }
+ Frame {
+ msec: 4448
+ hash: "da4d64fd6b3ae7d49ee5c5c8d0117a37"
+ }
+ Frame {
+ msec: 4464
+ hash: "620dd1c3fc41ce657eac9d1a5b765fd4"
+ }
+ Frame {
+ msec: 4480
+ hash: "ff1c370bd1bf75a98ae7125e7dd5a9db"
+ }
+ Frame {
+ msec: 4496
+ hash: "59c6e4297109b5cc7c197749867dddae"
+ }
+ Frame {
+ msec: 4512
+ hash: "91b1719e86529d0c35a53a2d0a095dd6"
+ }
+ Frame {
+ msec: 4528
+ hash: "2994663d35c9eb453a27c1a1fa9aeeb8"
+ }
+ Frame {
+ msec: 4544
+ hash: "ae4ec37b9f6a00b3c9139e5cfe13d32e"
+ }
+ Frame {
+ msec: 4560
+ hash: "a98340236d1b65f47e88684168c1429d"
+ }
+ Frame {
+ msec: 4576
+ hash: "34848b483ea6a2bd412e29d26beb3ab0"
+ }
+ Frame {
+ msec: 4592
+ hash: "dd9bae0e2fca84b265d8cb59686ff88d"
+ }
+ Frame {
+ msec: 4608
+ hash: "18b6ef6f5913b0612b76e7b2e25073dd"
+ }
+ Frame {
+ msec: 4624
+ hash: "9398aab9478279aed1bc40c9378f8da4"
+ }
+ Frame {
+ msec: 4640
+ hash: "a297a304c12102f23bd1e0f0207e0df9"
+ }
+ Frame {
+ msec: 4656
+ hash: "091db9138cd6ae801ad857105a83c8f9"
+ }
+ Frame {
+ msec: 4672
+ hash: "253938ca4a4f13433ddd502eb94cb7cd"
+ }
+ Frame {
+ msec: 4688
+ hash: "6002df1793d290e4e31ee0c91c37bbe6"
+ }
+ Frame {
+ msec: 4704
+ hash: "212476fa1c3a52fb8eba03ec3aecdcd8"
+ }
+ Frame {
+ msec: 4720
+ hash: "80d4d8434d4e96a2bc23f5ed060d6ddc"
+ }
+ Frame {
+ msec: 4736
+ hash: "2d4add725f31a04558635ce4b73a758a"
+ }
+ Frame {
+ msec: 4752
+ hash: "57c06022ec1e502c4f49f43063c433e7"
+ }
+ Frame {
+ msec: 4768
+ hash: "8393e97990993f9d5f68ea65f8e4a2db"
+ }
+ Frame {
+ msec: 4784
+ hash: "9a1fcd96dffaf5c79ecc7f9427e02499"
+ }
+ Frame {
+ msec: 4800
+ image: "listview.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "5ae722cf541e3453e73bbee57dc379e9"
+ }
+ Frame {
+ msec: 4832
+ hash: "fc7326c2e2e56d9c3036e8dfc2ea77a8"
+ }
+ Frame {
+ msec: 4848
+ hash: "f22a2a68cea158f333b0457025d75490"
+ }
+ Frame {
+ msec: 4864
+ hash: "d684c8aa9b835779080f170cafead40f"
+ }
+ Frame {
+ msec: 4880
+ hash: "dd451e5e421f929d015981bc7aeb8c66"
+ }
+ Frame {
+ msec: 4896
+ hash: "d066f228295db7f46520495167d3e946"
+ }
+ Frame {
+ msec: 4912
+ hash: "ebf640a457e3498bade3220aafa70331"
+ }
+ Frame {
+ msec: 4928
+ hash: "190f5b1f3ce9d200790c34c50bcc62c5"
+ }
+ Frame {
+ msec: 4944
+ hash: "9d4ad865246eb008afa40740b5c9a208"
+ }
+ Frame {
+ msec: 4960
+ hash: "81c8b2c0b4f9e74f24d328a1d9b40a9f"
+ }
+ Frame {
+ msec: 4976
+ hash: "24acc300307e71bee79bce8de76f56cb"
+ }
+ Frame {
+ msec: 4992
+ hash: "1f9d31f94cfce6f868bfcc8a104d2465"
+ }
+ Frame {
+ msec: 5008
+ hash: "7a3cab008dcb7a893ae30797b33df6f2"
+ }
+ Frame {
+ msec: 5024
+ hash: "38d561a2950434e59513439c7f1120ea"
+ }
+ Frame {
+ msec: 5040
+ hash: "8d34131faa15bc126bd4d9ef3be39ef5"
+ }
+ Frame {
+ msec: 5056
+ hash: "85d57ef15791b56deb537795dd87911e"
+ }
+ Frame {
+ msec: 5072
+ hash: "71e932169915a6c8c2cef0b22febf316"
+ }
+ Frame {
+ msec: 5088
+ hash: "8b3452981963aeebadc9ac2013150263"
+ }
+ Frame {
+ msec: 5104
+ hash: "a3fb8abecfeb48ba1cd1fd8f40896fa0"
+ }
+ Frame {
+ msec: 5120
+ hash: "f53ab533f6a58ae45139f3da4bf8ab4e"
+ }
+ Frame {
+ msec: 5136
+ hash: "9ec7012404f3c1c7795810dcee5acc3b"
+ }
+ Frame {
+ msec: 5152
+ hash: "99ca43bab532dd5d7566e596c65053ce"
+ }
+ Frame {
+ msec: 5168
+ hash: "0af83ad2416821cc230cd2856d1a3e39"
+ }
+ Frame {
+ msec: 5184
+ hash: "86fa23ddf2005bbf35238ae04ae554ac"
+ }
+ Frame {
+ msec: 5200
+ hash: "bb52a748f1d85dde410cfa4f24e3ed20"
+ }
+ Frame {
+ msec: 5216
+ hash: "898b96bc5ee9a3ac61764e5cd9af8cfb"
+ }
+ Frame {
+ msec: 5232
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5248
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5264
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5280
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5296
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5312
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5328
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5344
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5360
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5376
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5392
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5408
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5424
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5440
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5456
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5472
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5488
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5504
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5520
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5536
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5552
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5568
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5584
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5600
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5616
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5632
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5648
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5664
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5680
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5696
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5712
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5728
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5744
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5760
+ image: "listview.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5792
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5808
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5824
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5840
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5856
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5872
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5888
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5904
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5920
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5936
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5952
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Frame {
+ msec: 5968
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 111; y: 230
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5984
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6000
+ hash: "3b88645092be28037fca4a6034f5b2f7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 210
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6016
+ hash: "0076b55d3da4ca365688b6a2c984103f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 112; y: 205
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6032
+ hash: "db846ad8e3200ca1fce36a38dc7beab8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 112; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6048
+ hash: "3cb6b25725b4285f9c096d595224c5ca"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 180
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6064
+ hash: "1832e12fdf3b464b02b296e727b33694"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 110; y: 173
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6080
+ hash: "6d18d2b5f65cbba4915d0725d24b40f3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 109; y: 158
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 107; y: 140
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6096
+ hash: "79bc7afc6b1aa5f8904b3e6d5d4a9389"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 103; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6112
+ hash: "4436f2d15304c839aacec486c1fd6d96"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 111
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6128
+ hash: "c3bffc7c95893cf9bbd8596208b7f657"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 105
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6144
+ hash: "04231c2fdc02729aa34ed4e403dd373b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6160
+ hash: "392d75c4b372825e78366eb63a618170"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 87
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 83
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6176
+ hash: "7f91f7bdb0cb62d600ac4aa573681fe3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6192
+ hash: "69207181a382650c5e33145555f0d9ba"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 103; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 103; y: 72
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6208
+ hash: "65a184b5c49b02e08114e437483f928d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 105; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6224
+ hash: "c22da9ce54d04f51fb55da755753a509"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 105; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6240
+ hash: "59dbd5216847a62f60a1d0701a15bb62"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 106; y: 57
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 106; y: 53
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6256
+ hash: "bbfc902db6e6ca253afb1c90306b2a63"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 106; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 106; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6272
+ hash: "5c41f194afec5f7e3db9d98673d03d5c"
+ }
+ Frame {
+ msec: 6288
+ hash: "deb06d0f915d5f6ec39b1820d57b6af6"
+ }
+ Frame {
+ msec: 6304
+ hash: "deb06d0f915d5f6ec39b1820d57b6af6"
+ }
+ Frame {
+ msec: 6320
+ hash: "2a1a1f9239a6ccb308e51796f9b0bb89"
+ }
+ Frame {
+ msec: 6336
+ hash: "3c1b44201616b8271023bf05a3f3f0f7"
+ }
+ Frame {
+ msec: 6352
+ hash: "87afcef49db8b2b547e85e834f8ec304"
+ }
+ Frame {
+ msec: 6368
+ hash: "290081b4b1272ef09ec9964c128e61b5"
+ }
+ Frame {
+ msec: 6384
+ hash: "19bb3b23ee4b14a5f0a313106ef7c8c1"
+ }
+ Frame {
+ msec: 6400
+ hash: "65a184b5c49b02e08114e437483f928d"
+ }
+ Frame {
+ msec: 6416
+ hash: "832d2aefbcaf776f35039be527d367c5"
+ }
+ Frame {
+ msec: 6432
+ hash: "69207181a382650c5e33145555f0d9ba"
+ }
+ Frame {
+ msec: 6448
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6464
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6480
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6496
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6512
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6528
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6544
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6560
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6576
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6592
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6608
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6624
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6640
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6656
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6672
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6688
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6704
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6720
+ image: "listview.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6752
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6768
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6784
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6800
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6816
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6832
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6848
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6864
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6880
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6896
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6912
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6928
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6944
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6960
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6976
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 6992
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7008
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7024
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7040
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7056
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7072
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7088
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7104
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7120
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7136
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7152
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7168
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7184
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7200
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7216
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7232
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7248
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7264
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7280
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Frame {
+ msec: 7296
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 519; y: 276
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7312
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 519; y: 275
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7328
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 519; y: 274
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7344
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 518; y: 273
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 518; y: 272
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7360
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 518; y: 271
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7376
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 518; y: 268
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7392
+ hash: "89fe95733476bd000457e36ee4ecfc73"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 518; y: 266
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 518; y: 265
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7408
+ hash: "9047f597b9e59ca652c172338bed6ef9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 262
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7424
+ hash: "87476f78daecd6bb49e8d6e673d28100"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 260
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7440
+ hash: "6bfd895c6b7d97e4102eb26608cdfeca"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 254
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7456
+ hash: "e4c2b75beaee54a5781a5acbeb37ea64"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 249
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7472
+ hash: "d5e816768e9c3db0631416bd86b1b461"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7488
+ hash: "df6c7252ebb51e7447396b640e1c6ead"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 237
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7504
+ hash: "5f4db5386dc76b9f2dac47618c733dee"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 231
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7520
+ hash: "534d1d16d8321996969b54875ec5f1e0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 225
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7536
+ hash: "5263016e53327df1972498b55a60c0ed"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: 219
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7552
+ hash: "6787a5a16d2a61643bb1435f6488ada6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 518; y: 215
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7568
+ hash: "1feabcd683590c3d28d899167e6278b3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 519; y: 208
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7584
+ hash: "c0495d6083b2e4ddd2b1dca2f231529c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 520; y: 202
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7600
+ hash: "cb302493a17c1806dfcdf002c44e7acd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 196
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7616
+ hash: "f3822b79b678532ce7f826952636be90"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 189
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7632
+ hash: "6e30eed182c38be110ba9c7e95b223be"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 185
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7648
+ hash: "9e3ad0331c0c041b9a5747a1d44a43fe"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 177
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7664
+ hash: "791e6abf9dae670770c2429ee9f1ad71"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 169
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7680
+ image: "listview.7.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 160
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7696
+ hash: "d3ae366fb8212cb987e23150802c88e3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 156
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7712
+ hash: "b87708e19d7e8b64fe1ab50ec1723975"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 147
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7728
+ hash: "512678e45cdd8d48e10b08ee020afe8e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 144
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7744
+ hash: "211aa70e813819d476996b3396e9e5a0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 137
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7760
+ hash: "f16eaa360604be84ce61364ad9733b52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 130
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7776
+ hash: "d3af36dfb187d08abe1458f186a935a2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7792
+ hash: "9d0a0ba1deb7c4a4a8838e5e6a27f2f6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 122
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7808
+ hash: "69aac14f4c137e66724ca33f00a86676"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7824
+ hash: "893d56e2a2ca257fae9f0c6c0629903d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 111
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7840
+ hash: "b9f734e57a72e33973740a59776948d9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 106
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7856
+ hash: "e4b0f3f6a6785d7a183e4a36c5803301"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7872
+ hash: "99ee1e8803c05e546a721b0c9ee39499"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7888
+ hash: "96e7da2f895500a786ed36cb295e9003"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7904
+ hash: "cd369fc5dc31814208e56cf7cd0decea"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7920
+ hash: "5fee72994b65a45b4900a3073f86a3e1"
+ }
+ Frame {
+ msec: 7936
+ hash: "9a2f8a65d842b8f92998e6411f7cd53c"
+ }
+ Frame {
+ msec: 7952
+ hash: "2848d69017ce71ae101ccdfa7c67f933"
+ }
+ Frame {
+ msec: 7968
+ hash: "6568aa88e81f988f65da435df7166167"
+ }
+ Frame {
+ msec: 7984
+ hash: "d5f15ee08a2d7667786757a378a7a7f4"
+ }
+ Frame {
+ msec: 8000
+ hash: "9b566bd02a561b32d1a4c1ec99c2e2c3"
+ }
+ Frame {
+ msec: 8016
+ hash: "580419e1c9e91046547d913f6b8790a4"
+ }
+ Frame {
+ msec: 8032
+ hash: "a5a3cd610ec0b35af1295ee6c41e09e3"
+ }
+ Frame {
+ msec: 8048
+ hash: "a5a3cd610ec0b35af1295ee6c41e09e3"
+ }
+ Frame {
+ msec: 8064
+ hash: "a5a3cd610ec0b35af1295ee6c41e09e3"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 521; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8080
+ hash: "a5a3cd610ec0b35af1295ee6c41e09e3"
+ }
+ Frame {
+ msec: 8096
+ hash: "a5a3cd610ec0b35af1295ee6c41e09e3"
+ }
+ Frame {
+ msec: 8112
+ hash: "83b91a371d682a501bc3a3fceabe4f8c"
+ }
+ Frame {
+ msec: 8128
+ hash: "798b1dbfa0cce362213f426e2c60ac0e"
+ }
+ Frame {
+ msec: 8144
+ hash: "d71b6a693c430a618c23413cb65bb320"
+ }
+ Frame {
+ msec: 8160
+ hash: "2baae394390da39447a67151bc503d65"
+ }
+ Frame {
+ msec: 8176
+ hash: "06688b05c61a7b862d39534207a8adab"
+ }
+ Frame {
+ msec: 8192
+ hash: "a1d3042e16709817906dcdc673ee52c7"
+ }
+ Frame {
+ msec: 8208
+ hash: "236dd41feac1b1a8a4bd7911bb184da2"
+ }
+ Frame {
+ msec: 8224
+ hash: "f3ec821bba1d32e90bdab0e85c07d7d8"
+ }
+ Frame {
+ msec: 8240
+ hash: "e328c35adf7ffc3d7e3af97e798ec8a5"
+ }
+ Frame {
+ msec: 8256
+ hash: "651101db68fd3ed1dc5f441c126dc31b"
+ }
+ Frame {
+ msec: 8272
+ hash: "651101db68fd3ed1dc5f441c126dc31b"
+ }
+ Frame {
+ msec: 8288
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8304
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8320
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8336
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8352
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8368
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8384
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8400
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8416
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8432
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8448
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8464
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8480
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8496
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8512
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8528
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8544
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8560
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8576
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8592
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8608
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8624
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8640
+ image: "listview.8.png"
+ }
+ Frame {
+ msec: 8656
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8672
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8688
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8704
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8720
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8736
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8752
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8768
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8784
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8800
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8816
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8832
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8848
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8864
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8880
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8896
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8912
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8928
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8944
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8960
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8976
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 8992
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9008
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9024
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9040
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9056
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9072
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9088
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9104
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9120
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9136
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9152
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9168
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9184
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9200
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9216
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9232
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9248
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9264
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9280
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9296
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9312
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9328
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9344
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9360
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9376
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9392
+ hash: "1171be123a361d72859c25434573482c"
+ }
+ Frame {
+ msec: 9408
+ hash: "1171be123a361d72859c25434573482c"
+ }
+}
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.0.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.0.png
new file mode 100644
index 0000000..c59b816
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.1.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.1.png
new file mode 100644
index 0000000..c59b816
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.10.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.10.png
new file mode 100644
index 0000000..3e79d41
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.11.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.11.png
new file mode 100644
index 0000000..75acd3f
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.11.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.12.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.12.png
new file mode 100644
index 0000000..258c8b3
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.12.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.13.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.13.png
new file mode 100644
index 0000000..c6fec5b
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.13.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.14.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.14.png
new file mode 100644
index 0000000..c6fec5b
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.14.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.2.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.2.png
new file mode 100644
index 0000000..c59b816
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.3.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.3.png
new file mode 100644
index 0000000..2b54c1b
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.4.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.4.png
new file mode 100644
index 0000000..346e6eb
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.5.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.5.png
new file mode 100644
index 0000000..b7b0cfa
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.6.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.6.png
new file mode 100644
index 0000000..3e79d41
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.7.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.7.png
new file mode 100644
index 0000000..db23a20
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.8.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.8.png
new file mode 100644
index 0000000..3e79d41
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.9.png b/tests/auto/declarative/visual/Package_Views/data/packageviews.9.png
new file mode 100644
index 0000000..82a3a0f
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.qml b/tests/auto/declarative/visual/Package_Views/data/packageviews.qml
new file mode 100644
index 0000000..45921d9
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/data/packageviews.qml
@@ -0,0 +1,3935 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 32
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 48
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 64
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 80
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 96
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 112
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 128
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 144
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 160
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 176
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 192
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 208
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 224
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 240
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 256
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 272
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 288
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 304
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 320
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 336
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 352
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 368
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 384
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 400
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 416
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 432
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 448
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 464
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 480
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 496
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 512
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 528
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 544
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 560
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 576
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 592
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 608
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 624
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 640
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 656
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 672
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 688
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 704
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 720
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 736
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 752
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 768
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 784
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 800
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 816
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 832
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 848
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 864
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 880
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 896
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 912
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 928
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 944
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 960
+ image: "packageviews.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 992
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1008
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1024
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1040
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1056
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1072
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1088
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1104
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1120
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1136
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1152
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1168
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1184
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1200
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1216
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1232
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1248
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1264
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1280
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1296
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1312
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1328
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1344
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1360
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1376
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1392
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1408
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1424
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1440
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1456
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1472
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1488
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1504
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1520
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1536
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1552
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1568
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1584
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1600
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1616
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1632
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1648
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1664
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1680
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1696
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1712
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1728
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1744
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1760
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1776
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1792
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1808
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1824
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1840
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1856
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1872
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1888
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1904
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1920
+ image: "packageviews.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1952
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1968
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 1984
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2000
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2016
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2032
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2048
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2064
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2080
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2096
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2112
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2128
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2144
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2160
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2176
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2192
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2208
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2224
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2240
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2256
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2272
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2288
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2304
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2320
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2336
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2352
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2368
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2384
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2400
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2416
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2432
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2448
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2464
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2480
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2496
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2512
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2528
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2544
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2560
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2576
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2592
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2608
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2624
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2640
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2656
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2672
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2688
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2704
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2720
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2736
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2752
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2768
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2784
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2800
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2816
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2832
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2848
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2864
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2880
+ image: "packageviews.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2912
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2928
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2944
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2960
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2976
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 2992
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3008
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3024
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3040
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3056
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3072
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3088
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3104
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3120
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3136
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3152
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3168
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3184
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3200
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3216
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3232
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3248
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3264
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3280
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3296
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3312
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3328
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3344
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3360
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3376
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3392
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3408
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3424
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3440
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3456
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3472
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3488
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3504
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3520
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3536
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3552
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3568
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3584
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3600
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3616
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3632
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 177; y: 29
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3648
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3664
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3680
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3696
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 177; y: 29
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3712
+ hash: "a327426c93b523526f993b5271ab4501"
+ }
+ Frame {
+ msec: 3728
+ hash: "39ed6105057543d350665c46abd08eea"
+ }
+ Frame {
+ msec: 3744
+ hash: "d7a9b575f3a792de5e1717cb85ee3b5d"
+ }
+ Frame {
+ msec: 3760
+ hash: "2a848259290f6654c1ae18cad3449fe2"
+ }
+ Frame {
+ msec: 3776
+ hash: "873e4ef69a8d6a5615576680e49a77b7"
+ }
+ Frame {
+ msec: 3792
+ hash: "63a588428459dbeaac87799f34bf6c82"
+ }
+ Frame {
+ msec: 3808
+ hash: "87da56ad18ba4a5992898947f6720132"
+ }
+ Frame {
+ msec: 3824
+ hash: "45262c15160d8b4dfe72f44b1756ccf4"
+ }
+ Frame {
+ msec: 3840
+ image: "packageviews.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "c595d69c44d217cb38091d44b27f147d"
+ }
+ Frame {
+ msec: 3872
+ hash: "9a508ec7a226a8020985e2c601cff282"
+ }
+ Frame {
+ msec: 3888
+ hash: "909e57750bc392e5246d691e11efb6d4"
+ }
+ Frame {
+ msec: 3904
+ hash: "cafd51b43b7b73e85dcf6e263f5e4b7e"
+ }
+ Frame {
+ msec: 3920
+ hash: "27a245e5592a39815c443cd5e493f540"
+ }
+ Frame {
+ msec: 3936
+ hash: "17a57ba0abcfa57efc7d72fc92f9e60b"
+ }
+ Frame {
+ msec: 3952
+ hash: "ad207c4e6403840433c00f1e76ad90e5"
+ }
+ Frame {
+ msec: 3968
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 3984
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4000
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4016
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4032
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4048
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4064
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4080
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4096
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4112
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4128
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4144
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4160
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4176
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4192
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4208
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4224
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4240
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4256
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4272
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4288
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4304
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4320
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4336
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4352
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4368
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4384
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4400
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4416
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4432
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4448
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4464
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4480
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4496
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4512
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4528
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4544
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4560
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4576
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4592
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4608
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4624
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4640
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4656
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4672
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4688
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4704
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4720
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4736
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4752
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4768
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4784
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4800
+ image: "packageviews.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4832
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4848
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4864
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4880
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4896
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4912
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4928
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4944
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4960
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4976
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 4992
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5008
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5024
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5040
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5056
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5072
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5088
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5104
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5120
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5136
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5152
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5168
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5184
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5200
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5216
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5232
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5248
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5264
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5280
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5296
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5312
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5328
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5344
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5360
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5376
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5392
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5408
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5424
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5440
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5456
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5472
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5488
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5504
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5520
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5536
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5552
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5568
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5584
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5600
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Frame {
+ msec: 5616
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 53; y: 171
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 170
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5632
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 168
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5648
+ hash: "ff7eb2fc2731ffd5ee96eb24696ffaf4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 165
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 162
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5664
+ hash: "1a95eb98d66c2169674c70d35a5ceba1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 157
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 150
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5680
+ hash: "985e040417d2bf2cb2f4f59ec0df6b4f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 143
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 137
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5696
+ hash: "72d3b6286138d30fd6cfe6e8eb04d79a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 56; y: 132
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5712
+ hash: "e3fea4dd47d0c9d18b75c2300a8ab9bf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 59; y: 128
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 62; y: 123
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 62; y: 123
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5728
+ hash: "e017f31e4d30f60eae5abfcf9cbe954a"
+ }
+ Frame {
+ msec: 5744
+ hash: "27188a640e20aca2013b7b6b72fda89c"
+ }
+ Frame {
+ msec: 5760
+ image: "packageviews.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "e5f56ee86145c107644d8b97dce91085"
+ }
+ Frame {
+ msec: 5792
+ hash: "0b959b652850085da5d0911804913891"
+ }
+ Frame {
+ msec: 5808
+ hash: "a1e49cb952b3c476a5fedea5082c5c0a"
+ }
+ Frame {
+ msec: 5824
+ hash: "4983768fa165f2e9e55e48c78c6f8dea"
+ }
+ Frame {
+ msec: 5840
+ hash: "9714a821c76a41fd7d5e0439f47854d2"
+ }
+ Frame {
+ msec: 5856
+ hash: "e5db5d7c1a6c692af9e292ac4b3dbc32"
+ }
+ Frame {
+ msec: 5872
+ hash: "0a69dfa9e6f056343651e2a2c067286b"
+ }
+ Frame {
+ msec: 5888
+ hash: "64faabf715d912b5abc8e86b91f68558"
+ }
+ Frame {
+ msec: 5904
+ hash: "b61b51a773a36e739322aa7301a4fb38"
+ }
+ Frame {
+ msec: 5920
+ hash: "0214367822797dcbe83e694addeafd33"
+ }
+ Frame {
+ msec: 5936
+ hash: "bc30176481cc47d6242ff21e037e4db9"
+ }
+ Frame {
+ msec: 5952
+ hash: "24eb0a98d26e88e4f39de2f6b2cd8ca5"
+ }
+ Frame {
+ msec: 5968
+ hash: "b5c4c8778820be865cb8372d716c9d2d"
+ }
+ Frame {
+ msec: 5984
+ hash: "228ac20aa0331c3ddeac862f01097742"
+ }
+ Frame {
+ msec: 6000
+ hash: "05e50f9ef2829b9a3d703d20b2588747"
+ }
+ Frame {
+ msec: 6016
+ hash: "b0738bf4dffd1e65f63204f1db4329a7"
+ }
+ Frame {
+ msec: 6032
+ hash: "b54b343a4905746297b4a150924477f4"
+ }
+ Frame {
+ msec: 6048
+ hash: "05cc4965322ff085c66953c1d39c46b6"
+ }
+ Frame {
+ msec: 6064
+ hash: "caf0233a179d83e8c1e0b26ec0a4f77d"
+ }
+ Frame {
+ msec: 6080
+ hash: "1a2a719be8cb1f9aad8c3f7fead652ae"
+ }
+ Frame {
+ msec: 6096
+ hash: "18438e347c4246fbfffd5401fc9915b3"
+ }
+ Frame {
+ msec: 6112
+ hash: "18438e347c4246fbfffd5401fc9915b3"
+ }
+ Frame {
+ msec: 6128
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6144
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6160
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6176
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6192
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6208
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6224
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6240
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6256
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6272
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6288
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6304
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6320
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6336
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6352
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6368
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6384
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6400
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6416
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6432
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6448
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6464
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6480
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6496
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6512
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6528
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6544
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6560
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6576
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6592
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6608
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6624
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6640
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6656
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6672
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6688
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6704
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6720
+ image: "packageviews.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6752
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6768
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6784
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6800
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6816
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6832
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6848
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6864
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6880
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6896
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6912
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6928
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6944
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6960
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6976
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 6992
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7008
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7024
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7040
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7056
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7072
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7088
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7104
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7120
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7136
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7152
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7168
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7184
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7200
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7216
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7232
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 167; y: 169
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7248
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7264
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7280
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7296
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 167; y: 169
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7312
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7328
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7344
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7360
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7376
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7392
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7408
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7424
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7440
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 7456
+ hash: "79a4237bc56d77b719d8472831f20a90"
+ }
+ Frame {
+ msec: 7472
+ hash: "df2eebdf2a8ce789a2429b40693eb82e"
+ }
+ Frame {
+ msec: 7488
+ hash: "a22f0abb89b5cfa85e01ed4db150eda7"
+ }
+ Frame {
+ msec: 7504
+ hash: "9364b1c7f3a15aad1a3f8e9e95cdb3a3"
+ }
+ Frame {
+ msec: 7520
+ hash: "43b8da45116dd87b8f044e698c7ea437"
+ }
+ Frame {
+ msec: 7536
+ hash: "10f0779a2d0cb5ccb879f0065eea70a3"
+ }
+ Frame {
+ msec: 7552
+ hash: "bd0c8df943774bbce144f745cbf9c6b9"
+ }
+ Frame {
+ msec: 7568
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7584
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7600
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7616
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7632
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7648
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7664
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7680
+ image: "packageviews.7.png"
+ }
+ Frame {
+ msec: 7696
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7712
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7728
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7744
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7760
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7776
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7792
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7808
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7824
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7840
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7856
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7872
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7888
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7904
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7920
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7936
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7952
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7968
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 7984
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8000
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8016
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8032
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8048
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8064
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8080
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8096
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8112
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8128
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8144
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8160
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8176
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8192
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8208
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8224
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8240
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8256
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8272
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8288
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8304
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8320
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8336
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8352
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8368
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8384
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8400
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8416
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 173; y: 165
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8432
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8448
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8464
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Frame {
+ msec: 8480
+ hash: "787eda91c0d26d7d81b853338dff0ae5"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 173; y: 165
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8496
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8512
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8528
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8544
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8560
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8576
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8592
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8608
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8624
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8640
+ image: "packageviews.8.png"
+ }
+ Frame {
+ msec: 8656
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8672
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8688
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8704
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8720
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8736
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8752
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8768
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8784
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8800
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8816
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8832
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8848
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8864
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8880
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8896
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8912
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8928
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8944
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8960
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8976
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 8992
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9008
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9024
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9040
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9056
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9072
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9088
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9104
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9120
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9136
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9152
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9168
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9184
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9200
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9216
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9232
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9248
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 131; y: 159
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9264
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9280
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9296
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9312
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9328
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 131; y: 159
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9344
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9360
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9376
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9392
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9408
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9424
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9440
+ hash: "3a8f58987c5a6197579217854ae1752e"
+ }
+ Frame {
+ msec: 9456
+ hash: "1617b7cdd44fe79dbdf4cb3a9d4683f3"
+ }
+ Frame {
+ msec: 9472
+ hash: "401fce6c56951704dc0993345ea931f5"
+ }
+ Frame {
+ msec: 9488
+ hash: "26fc730a372dc62e37dee377a91b390e"
+ }
+ Frame {
+ msec: 9504
+ hash: "9b1c2ddc3df2f7e890e37291c71254ff"
+ }
+ Frame {
+ msec: 9520
+ hash: "4ab79e1d14cc42f0958fac6e7a9f0a7d"
+ }
+ Frame {
+ msec: 9536
+ hash: "cc0f70388def738d2e6c044810b51d76"
+ }
+ Frame {
+ msec: 9552
+ hash: "d5fdd502b988ce596775ec10cf8c847e"
+ }
+ Frame {
+ msec: 9568
+ hash: "22398208dee9f63b16392fe0296d96a2"
+ }
+ Frame {
+ msec: 9584
+ hash: "6159fdeefda4c1514eb4cdc139f5db0d"
+ }
+ Frame {
+ msec: 9600
+ image: "packageviews.9.png"
+ }
+ Frame {
+ msec: 9616
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9632
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9648
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9664
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9680
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9696
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9712
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9728
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9744
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9760
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9776
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9792
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 131; y: 159
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9808
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9824
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9840
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9856
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9872
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Frame {
+ msec: 9888
+ hash: "b5c261081134314705594b3349cb4f53"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 131; y: 159
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9904
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9920
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9936
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9952
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9968
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 9984
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10000
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10016
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10032
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10048
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10064
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10080
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10096
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10112
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10128
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10144
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10160
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10176
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10192
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10208
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10224
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10240
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10256
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10272
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10288
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10304
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10320
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10336
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10352
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10368
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10384
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10400
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10416
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10432
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10448
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10464
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10480
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10496
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10512
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10528
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10544
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10560
+ image: "packageviews.10.png"
+ }
+ Frame {
+ msec: 10576
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10592
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Frame {
+ msec: 10608
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 59; y: 159
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 59; y: 158
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10624
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 60; y: 156
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10640
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 61; y: 154
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 63; y: 151
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10656
+ hash: "f0eb6047898c866e8852242a672c79b5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 64; y: 147
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 65; y: 143
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10672
+ hash: "4d932a26e4c9b1653468a27dfc3d6b85"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 65; y: 137
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 65; y: 131
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10688
+ hash: "a8cb864554c2b99580e2f8117dea075b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 64; y: 125
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10704
+ hash: "9f9b0514c3e9c527e65e595e7e1dc387"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 63; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 63; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10720
+ hash: "98b2701acdafcdc2400ebae72e619e5c"
+ }
+ Frame {
+ msec: 10736
+ hash: "8f1931199a51b4f8bc6f9a909c6de4e4"
+ }
+ Frame {
+ msec: 10752
+ hash: "54cd80bc91c526fb3889eb9534f7d572"
+ }
+ Frame {
+ msec: 10768
+ hash: "86c73e42f723a19a7f22f2ff17fc8323"
+ }
+ Frame {
+ msec: 10784
+ hash: "094cc9f26672919260acd6009d73b867"
+ }
+ Frame {
+ msec: 10800
+ hash: "0985b09c5623c486d7c39b37dfe00035"
+ }
+ Frame {
+ msec: 10816
+ hash: "0643039f9dc9b28a5dc728d3c42f675c"
+ }
+ Frame {
+ msec: 10832
+ hash: "6a814bf21ed200673809707de8ec9f03"
+ }
+ Frame {
+ msec: 10848
+ hash: "5d211606c6e53e18bce07d4024f07757"
+ }
+ Frame {
+ msec: 10864
+ hash: "cefcd9532017d873070889e4cc097879"
+ }
+ Frame {
+ msec: 10880
+ hash: "088117e4c32bd5d9dc3387c941e1fcdc"
+ }
+ Frame {
+ msec: 10896
+ hash: "05c9a90ba3b8d0ea5f775c6ca9f145f6"
+ }
+ Frame {
+ msec: 10912
+ hash: "0b440555c55aa67cccfce02a98b53748"
+ }
+ Frame {
+ msec: 10928
+ hash: "12fa35ebaf85d57be38984ceea2bdbae"
+ }
+ Frame {
+ msec: 10944
+ hash: "86b9ad23b79062a97f29c861333660fc"
+ }
+ Frame {
+ msec: 10960
+ hash: "45787d249a82149cf1f45756eb58751f"
+ }
+ Frame {
+ msec: 10976
+ hash: "de12cea0ebe645e365d2141e82eb107c"
+ }
+ Frame {
+ msec: 10992
+ hash: "41171745747d2a03d33c0ab59bfe0b5d"
+ }
+ Frame {
+ msec: 11008
+ hash: "5b9abaf20116ddd0142ee28ca3887ea6"
+ }
+ Frame {
+ msec: 11024
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11040
+ hash: "93ce707a06141bfe27ebd922934f1aed"
+ }
+ Frame {
+ msec: 11056
+ hash: "49e8a33a1955ee8f267eba98532124bc"
+ }
+ Frame {
+ msec: 11072
+ hash: "1f4e4f815c0ad7a5edf01f4dc493ec1d"
+ }
+ Frame {
+ msec: 11088
+ hash: "058ad87d035643f027e0469d54e35f2a"
+ }
+ Frame {
+ msec: 11104
+ hash: "822cf2c6da969a99f6413a659845a333"
+ }
+ Frame {
+ msec: 11120
+ hash: "a4e8d8093c1876af6669d8df92b515b5"
+ }
+ Frame {
+ msec: 11136
+ hash: "236f7f1a0c3b25ad7f33fa1700f3f947"
+ }
+ Frame {
+ msec: 11152
+ hash: "dec16d1e0edd3befa2d31972da2b57a6"
+ }
+ Frame {
+ msec: 11168
+ hash: "ae85e93afa88929f15fc668bab619ab8"
+ }
+ Frame {
+ msec: 11184
+ hash: "3f2ef5ecc13e0ef10c72dc3e05305c81"
+ }
+ Frame {
+ msec: 11200
+ hash: "0611193af6fc504048a06a7423172768"
+ }
+ Frame {
+ msec: 11216
+ hash: "82e4e806158be1a812d9b6a175c11b4a"
+ }
+ Frame {
+ msec: 11232
+ hash: "b7e8ae87deffc9ccbacce9b132ceeeed"
+ }
+ Frame {
+ msec: 11248
+ hash: "ae511e7358aaecc6a368dacd8a3f4b40"
+ }
+ Frame {
+ msec: 11264
+ hash: "b67b59b182ea950e830b85c393bc2bd1"
+ }
+ Frame {
+ msec: 11280
+ hash: "cfc6eccff56498ff38e98ff3252de1db"
+ }
+ Frame {
+ msec: 11296
+ hash: "542c54779a40b56091e6741c447dc223"
+ }
+ Frame {
+ msec: 11312
+ hash: "38a4fcbf35f24c9be706f238003a70f4"
+ }
+ Frame {
+ msec: 11328
+ hash: "38a4fcbf35f24c9be706f238003a70f4"
+ }
+ Frame {
+ msec: 11344
+ hash: "38a4fcbf35f24c9be706f238003a70f4"
+ }
+ Frame {
+ msec: 11360
+ hash: "542c54779a40b56091e6741c447dc223"
+ }
+ Frame {
+ msec: 11376
+ hash: "b67b59b182ea950e830b85c393bc2bd1"
+ }
+ Frame {
+ msec: 11392
+ hash: "79b8823ac67f6cc612f1b6aea743c413"
+ }
+ Frame {
+ msec: 11408
+ hash: "3f2ef5ecc13e0ef10c72dc3e05305c81"
+ }
+ Frame {
+ msec: 11424
+ hash: "dec16d1e0edd3befa2d31972da2b57a6"
+ }
+ Frame {
+ msec: 11440
+ hash: "cf7217bb1ceea9d3bf9f5ca604c15056"
+ }
+ Frame {
+ msec: 11456
+ hash: "8ad3c6a174f0876905db889a2d772c8a"
+ }
+ Frame {
+ msec: 11472
+ hash: "c45588ccc0aa28fc9b3414251c9689e3"
+ }
+ Frame {
+ msec: 11488
+ hash: "6cc42773631600d1eff92f3ba05a49f3"
+ }
+ Frame {
+ msec: 11504
+ hash: "51c4ad052c4c74cfc05ccd5de87418aa"
+ }
+ Frame {
+ msec: 11520
+ image: "packageviews.11.png"
+ }
+ Frame {
+ msec: 11536
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11552
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11568
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11584
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11600
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11616
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11632
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11648
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11664
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11680
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11696
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11712
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11728
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11744
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11760
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11776
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11792
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11808
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11824
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11840
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11856
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11872
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11888
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11904
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11920
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11936
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11952
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11968
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 11984
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12000
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12016
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12032
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12048
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12064
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12080
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12096
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12112
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12128
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12144
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12160
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12176
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12192
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12208
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12224
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12240
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12256
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12272
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12288
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12304
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12320
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12336
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12352
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12368
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12384
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12400
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12416
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12432
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12448
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12464
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12480
+ image: "packageviews.12.png"
+ }
+ Frame {
+ msec: 12496
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12512
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12528
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12544
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12560
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12576
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12592
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12608
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12624
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12640
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12656
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12672
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12688
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12704
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12720
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12736
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12752
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12768
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12784
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12800
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12816
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12832
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12848
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12864
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12880
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12896
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12912
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12928
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12944
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12960
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12976
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 12992
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 170; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 13008
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 13024
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 13040
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 13056
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Frame {
+ msec: 13072
+ hash: "a4fc0dbc0ebe550f5aa3a91350bbbf3f"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 170; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 13088
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13104
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13120
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13136
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13152
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13168
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13184
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13200
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13216
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13232
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13248
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13264
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13280
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13296
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13312
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13328
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13344
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13360
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13376
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13392
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13408
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13424
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13440
+ image: "packageviews.13.png"
+ }
+ Frame {
+ msec: 13456
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13472
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13488
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13504
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13520
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13536
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13552
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13568
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13584
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13600
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13616
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13632
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13648
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13664
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13680
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13696
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13712
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13728
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13744
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13760
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13776
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13792
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13808
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13824
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13840
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13856
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13872
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13888
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13904
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13920
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13936
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13952
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13968
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 13984
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14000
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14016
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14032
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14048
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14064
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14080
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14096
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14112
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14128
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14144
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14160
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14176
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14192
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14208
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14224
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14240
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14256
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14272
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14288
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14304
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14320
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14336
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14352
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14368
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14384
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14400
+ image: "packageviews.14.png"
+ }
+ Frame {
+ msec: 14416
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14432
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14448
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14464
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14480
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14496
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14512
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+ Frame {
+ msec: 14528
+ hash: "dbca3bbd626c61d30731f84693bc939b"
+ }
+}
diff --git a/tests/auto/declarative/visual/Package_Views/packageviews.qml b/tests/auto/declarative/visual/Package_Views/packageviews.qml
new file mode 100644
index 0000000..a9719ca
--- /dev/null
+++ b/tests/auto/declarative/visual/Package_Views/packageviews.qml
@@ -0,0 +1,81 @@
+import Qt 4.6
+
+Rectangle {
+ id: root
+ width: 200
+ height: 200
+ color: "black"
+
+ VisualDataModel {
+ id: Model
+ model: ListModel {
+ ListElement { itemColor: "red" }
+ ListElement { itemColor: "green" }
+ ListElement { itemColor: "blue" }
+ ListElement { itemColor: "orange" }
+ ListElement { itemColor: "purple" }
+ ListElement { itemColor: "yellow" }
+ ListElement { itemColor: "slategrey" }
+ ListElement { itemColor: "cyan" }
+ }
+ delegate: Package {
+ Rectangle {
+ id: listItem; Package.name: "list"; width:root.width/2; height: 50; color: "transparent"; border.color: "white"
+ MouseRegion {
+ anchors.fill: parent
+ onClicked: myState.state = myState.state == "list" ? "grid" : "list"
+ }
+ }
+ Rectangle {
+ id: gridItem; Package.name: "grid"; width:50; height: 50; color: "transparent"; border.color: "white"
+ MouseRegion {
+ anchors.fill: parent
+ onClicked: myState.state = myState.state == "list" ? "grid" : "list"
+ }
+ }
+ Rectangle { id: myContent; width:50; height: 50; color: itemColor }
+
+ StateGroup {
+ id: myState
+ state: "list"
+ states: [
+ State {
+ name: "list"
+ ParentChange { target: myContent; parent: listItem }
+ PropertyChanges { target: myContent; x: 0; y: 0; width: listItem.width }
+ },
+ State {
+ name: "grid"
+ ParentChange { target: myContent; parent: gridItem }
+ PropertyChanges { target: myContent; x: 0; y: 0; width: gridItem.width }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ from: "*"; to: "*"
+ SequentialAnimation {
+ ParentAction{}
+ NumberAnimation { matchProperties: "x,y,width"; easing: "easeInOutQuad" }
+ }
+ }
+ ]
+ }
+ }
+ }
+
+ ListView {
+ width: parent.width/2
+ height: parent.height
+ model: Model.parts.list
+ }
+
+ GridView {
+ x: parent.width/2
+ width: parent.width/2
+ cellWidth: 50
+ cellHeight: 50
+ height: parent.height
+ model: Model.parts.grid
+ }
+}
diff --git a/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml b/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml
index efbb1b4..1afd4cd 100644
--- a/tests/auto/declarative/visual/bindinganimation/bindinganimation.qml
+++ b/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml
@@ -17,11 +17,11 @@ Rectangle {
name: "hello"
PropertyChanges {
target: MyRectangle
- x: 100
+ x: 50 + 50
}
PropertyChanges {
target: MyMouseRegion
- onClicked: "Page.currentState = ''"
+ onClicked: Page.state = ''
}
}
]
diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png
index 1b08c81..1b08c81 100644
--- a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.0.png
+++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png
index f3074fc..f3074fc 100644
--- a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.1.png
+++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png
new file mode 100644
index 0000000..1b08c81
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png
new file mode 100644
index 0000000..e2560e0
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png
new file mode 100644
index 0000000..2ddde86
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png
new file mode 100644
index 0000000..f3074fc
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png
new file mode 100644
index 0000000..1b08c81
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml
new file mode 100644
index 0000000..8297c5a
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml
@@ -0,0 +1,1655 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 32
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 48
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 64
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 80
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 96
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 112
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 128
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 144
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 160
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 176
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 192
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 208
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 224
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 240
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 256
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 272
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 288
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 304
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 320
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 336
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 352
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 368
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 384
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 400
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 416
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 432
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 448
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 464
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 480
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 496
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 512
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 528
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 544
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 560
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 576
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 592
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 608
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 624
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 640
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 656
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 672
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 688
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 704
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 720
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 736
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 752
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 768
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 784
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 800
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 816
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 832
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 848
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 864
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 880
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 896
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 912
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 928
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 944
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 960
+ image: "bindinganimation.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 992
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1008
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1024
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1040
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1056
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1072
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1088
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1104
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1120
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1136
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1152
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 136; y: 174
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1168
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1184
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1200
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1216
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1232
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1248
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1264
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1280
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 136; y: 174
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1296
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 1312
+ hash: "a78c9394bf3b81f192f42710cd7218b1"
+ }
+ Frame {
+ msec: 1328
+ hash: "7f08e8170feb1d02373c9ab42b6e882d"
+ }
+ Frame {
+ msec: 1344
+ hash: "967fbad8ac664400a3efbe66617d62aa"
+ }
+ Frame {
+ msec: 1360
+ hash: "abc2ec0bc7a93e75b5823310e6284db1"
+ }
+ Frame {
+ msec: 1376
+ hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b"
+ }
+ Frame {
+ msec: 1392
+ hash: "9413dffb7ee853ba0125ac22ab22abbd"
+ }
+ Frame {
+ msec: 1408
+ hash: "fcae0317f81a3ddd713f4db1349a9da0"
+ }
+ Frame {
+ msec: 1424
+ hash: "37739777a5979f3ebf85e47e63341660"
+ }
+ Frame {
+ msec: 1440
+ hash: "72731478d80f024076ea639b55152360"
+ }
+ Frame {
+ msec: 1456
+ hash: "69058485ced6bc992a1a7c5ee34add4c"
+ }
+ Frame {
+ msec: 1472
+ hash: "391ad7ff2362e059f6170dfe306f94a7"
+ }
+ Frame {
+ msec: 1488
+ hash: "f9f74a2e38b52c9266f33e428b6acd9d"
+ }
+ Frame {
+ msec: 1504
+ hash: "25152412c4ea2aec6caf89486c073484"
+ }
+ Frame {
+ msec: 1520
+ hash: "ba403842ba3128b1cdf6a9cb28c90751"
+ }
+ Frame {
+ msec: 1536
+ hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9"
+ }
+ Frame {
+ msec: 1552
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1568
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1584
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1600
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1616
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1632
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1648
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1664
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1680
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1696
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1712
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1728
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1744
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1760
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1776
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1792
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1808
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1824
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1840
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1856
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1872
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1888
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1904
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1920
+ image: "bindinganimation.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1952
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1968
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 1984
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2000
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2016
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2032
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2048
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2064
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2080
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2096
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2112
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2128
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2144
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2160
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2176
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2192
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2208
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2224
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2240
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2256
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2272
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2288
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2304
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2320
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2336
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2352
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2368
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 2384
+ hash: "adc501a3a2b8aaf72f58ba985b57424e"
+ }
+ Frame {
+ msec: 2400
+ hash: "bfa51b7c19753ef7b16d78afffc7b9dd"
+ }
+ Frame {
+ msec: 2416
+ hash: "ffa8471f57765b49fcdb9155393251e5"
+ }
+ Frame {
+ msec: 2432
+ hash: "ddb65481469c38f2331546ee03a44206"
+ }
+ Frame {
+ msec: 2448
+ hash: "6f48d1a9977b77cafd38a5903017605b"
+ }
+ Frame {
+ msec: 2464
+ hash: "4279c814163af3bd069ce21b3cd1c729"
+ }
+ Frame {
+ msec: 2480
+ hash: "17c46242c17983478f34cb49cb91ca6e"
+ }
+ Frame {
+ msec: 2496
+ hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f"
+ }
+ Frame {
+ msec: 2512
+ hash: "6a74d6dc91a8b370200d3765c55c1136"
+ }
+ Frame {
+ msec: 2528
+ hash: "ecda10356cca33901c2acd0a702fee46"
+ }
+ Frame {
+ msec: 2544
+ hash: "4f58226bdbda7339d972eca065f75766"
+ }
+ Frame {
+ msec: 2560
+ hash: "a39c80859a7643c9879da9c77b644703"
+ }
+ Frame {
+ msec: 2576
+ hash: "16fe17b15900ff0464ab20ea921e5b1f"
+ }
+ Frame {
+ msec: 2592
+ hash: "bc5c83b2014b7260900587ae3637598f"
+ }
+ Frame {
+ msec: 2608
+ hash: "96c077e3a572edff04fa9b2f7020ffd0"
+ }
+ Frame {
+ msec: 2624
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2640
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2656
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2672
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2688
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2704
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2720
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2736
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2752
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2768
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2784
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2800
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2816
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2832
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2848
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2864
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2880
+ image: "bindinganimation.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2912
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2928
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2944
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2960
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2976
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 2992
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3008
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3024
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3040
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3056
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3072
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3088
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3104
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3120
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3136
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3152
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3168
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3184
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3200
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3216
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3232
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3248
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3264
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3280
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3296
+ hash: "7cb5fc371040e587de9f06ce14a4b29a"
+ }
+ Frame {
+ msec: 3312
+ hash: "a78c9394bf3b81f192f42710cd7218b1"
+ }
+ Frame {
+ msec: 3328
+ hash: "7f08e8170feb1d02373c9ab42b6e882d"
+ }
+ Frame {
+ msec: 3344
+ hash: "967fbad8ac664400a3efbe66617d62aa"
+ }
+ Frame {
+ msec: 3360
+ hash: "abc2ec0bc7a93e75b5823310e6284db1"
+ }
+ Frame {
+ msec: 3376
+ hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b"
+ }
+ Frame {
+ msec: 3392
+ hash: "9413dffb7ee853ba0125ac22ab22abbd"
+ }
+ Frame {
+ msec: 3408
+ hash: "fcae0317f81a3ddd713f4db1349a9da0"
+ }
+ Frame {
+ msec: 3424
+ hash: "37739777a5979f3ebf85e47e63341660"
+ }
+ Frame {
+ msec: 3440
+ hash: "72731478d80f024076ea639b55152360"
+ }
+ Frame {
+ msec: 3456
+ hash: "69058485ced6bc992a1a7c5ee34add4c"
+ }
+ Frame {
+ msec: 3472
+ hash: "391ad7ff2362e059f6170dfe306f94a7"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3488
+ hash: "f9f74a2e38b52c9266f33e428b6acd9d"
+ }
+ Frame {
+ msec: 3504
+ hash: "25152412c4ea2aec6caf89486c073484"
+ }
+ Frame {
+ msec: 3520
+ hash: "ba403842ba3128b1cdf6a9cb28c90751"
+ }
+ Frame {
+ msec: 3536
+ hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9"
+ }
+ Frame {
+ msec: 3552
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 3568
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 3584
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 3600
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3616
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 3632
+ hash: "adc501a3a2b8aaf72f58ba985b57424e"
+ }
+ Frame {
+ msec: 3648
+ hash: "bfa51b7c19753ef7b16d78afffc7b9dd"
+ }
+ Frame {
+ msec: 3664
+ hash: "ffa8471f57765b49fcdb9155393251e5"
+ }
+ Frame {
+ msec: 3680
+ hash: "ddb65481469c38f2331546ee03a44206"
+ }
+ Frame {
+ msec: 3696
+ hash: "6f48d1a9977b77cafd38a5903017605b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3712
+ hash: "4279c814163af3bd069ce21b3cd1c729"
+ }
+ Frame {
+ msec: 3728
+ hash: "17c46242c17983478f34cb49cb91ca6e"
+ }
+ Frame {
+ msec: 3744
+ hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f"
+ }
+ Frame {
+ msec: 3760
+ hash: "6a74d6dc91a8b370200d3765c55c1136"
+ }
+ Frame {
+ msec: 3776
+ hash: "ecda10356cca33901c2acd0a702fee46"
+ }
+ Frame {
+ msec: 3792
+ hash: "4f58226bdbda7339d972eca065f75766"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3808
+ hash: "4f58226bdbda7339d972eca065f75766"
+ }
+ Frame {
+ msec: 3824
+ hash: "5fae0bdc65c609cb766ce585b8c649db"
+ }
+ Frame {
+ msec: 3840
+ image: "bindinganimation.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "6a74d6dc91a8b370200d3765c55c1136"
+ }
+ Frame {
+ msec: 3872
+ hash: "4f41101378a104e72228eeb4ba395ca8"
+ }
+ Frame {
+ msec: 3888
+ hash: "37739777a5979f3ebf85e47e63341660"
+ }
+ Frame {
+ msec: 3904
+ hash: "f4fe2cc93d65e086ba8ded1438269eb2"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3920
+ hash: "4279c814163af3bd069ce21b3cd1c729"
+ }
+ Frame {
+ msec: 3936
+ hash: "72a0c017a2fa90a4aeadfa6e552ff573"
+ }
+ Frame {
+ msec: 3952
+ hash: "391ad7ff2362e059f6170dfe306f94a7"
+ }
+ Frame {
+ msec: 3968
+ hash: "0b0c6419e1e5b016d9c22bd98fd452b1"
+ }
+ Frame {
+ msec: 3984
+ hash: "365c824c330398d267ea52ae9468b9ee"
+ }
+ Frame {
+ msec: 4000
+ hash: "65ad7e0189c096792331bd1bb0daf0db"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4016
+ hash: "65ad7e0189c096792331bd1bb0daf0db"
+ }
+ Frame {
+ msec: 4032
+ hash: "a21aa1984f068650cce2a124a82c12be"
+ }
+ Frame {
+ msec: 4048
+ hash: "8006ceaa02d22b5fdfeab400d39a0caf"
+ }
+ Frame {
+ msec: 4064
+ hash: "a2cebc35e5c2c709a2cd83e1df6eaeab"
+ }
+ Frame {
+ msec: 4080
+ hash: "07f751ea4cf877ba72fbb36f9da268d7"
+ }
+ Frame {
+ msec: 4096
+ hash: "72731478d80f024076ea639b55152360"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4112
+ hash: "37739777a5979f3ebf85e47e63341660"
+ }
+ Frame {
+ msec: 4128
+ hash: "ed47684a0b21836cd27549e0989e96dd"
+ }
+ Frame {
+ msec: 4144
+ hash: "772396bb23c713f34ea5c23bfbcb115e"
+ }
+ Frame {
+ msec: 4160
+ hash: "d9af30557f99b086bb1a185a946b580d"
+ }
+ Frame {
+ msec: 4176
+ hash: "575d30ac088448b01f49082519bbb3a1"
+ }
+ Frame {
+ msec: 4192
+ hash: "2e3f134664df8204a291af2c9f81239a"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4208
+ hash: "2e3f134664df8204a291af2c9f81239a"
+ }
+ Frame {
+ msec: 4224
+ hash: "4f58226bdbda7339d972eca065f75766"
+ }
+ Frame {
+ msec: 4240
+ hash: "5fae0bdc65c609cb766ce585b8c649db"
+ }
+ Frame {
+ msec: 4256
+ hash: "82363265ed2b611a54f8d48b2af22f11"
+ }
+ Frame {
+ msec: 4272
+ hash: "f9deee3a204c939562b896a6179743d2"
+ }
+ Frame {
+ msec: 4288
+ hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4304
+ hash: "3223ed179c828fadb3eca9c6373176c1"
+ }
+ Frame {
+ msec: 4320
+ hash: "56125a260a79bc38bb0ef44fd65ba49b"
+ }
+ Frame {
+ msec: 4336
+ hash: "07f751ea4cf877ba72fbb36f9da268d7"
+ }
+ Frame {
+ msec: 4352
+ hash: "6f48d1a9977b77cafd38a5903017605b"
+ }
+ Frame {
+ msec: 4368
+ hash: "8006ceaa02d22b5fdfeab400d39a0caf"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4384
+ hash: "8006ceaa02d22b5fdfeab400d39a0caf"
+ }
+ Frame {
+ msec: 4400
+ hash: "6f48d1a9977b77cafd38a5903017605b"
+ }
+ Frame {
+ msec: 4416
+ hash: "69058485ced6bc992a1a7c5ee34add4c"
+ }
+ Frame {
+ msec: 4432
+ hash: "dafcce427161a70c3513841ac22aea00"
+ }
+ Frame {
+ msec: 4448
+ hash: "3223ed179c828fadb3eca9c6373176c1"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4464
+ hash: "b08811b237ce7a460c80d285f04d53d8"
+ }
+ Frame {
+ msec: 4480
+ hash: "fcae0317f81a3ddd713f4db1349a9da0"
+ }
+ Frame {
+ msec: 4496
+ hash: "772396bb23c713f34ea5c23bfbcb115e"
+ }
+ Frame {
+ msec: 4512
+ hash: "ecda10356cca33901c2acd0a702fee46"
+ }
+ Frame {
+ msec: 4528
+ hash: "575d30ac088448b01f49082519bbb3a1"
+ }
+ Frame {
+ msec: 4544
+ hash: "abc2ec0bc7a93e75b5823310e6284db1"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4560
+ hash: "abc2ec0bc7a93e75b5823310e6284db1"
+ }
+ Frame {
+ msec: 4576
+ hash: "575d30ac088448b01f49082519bbb3a1"
+ }
+ Frame {
+ msec: 4592
+ hash: "ecda10356cca33901c2acd0a702fee46"
+ }
+ Frame {
+ msec: 4608
+ hash: "772396bb23c713f34ea5c23bfbcb115e"
+ }
+ Frame {
+ msec: 4624
+ hash: "fcae0317f81a3ddd713f4db1349a9da0"
+ }
+ Frame {
+ msec: 4640
+ hash: "b08811b237ce7a460c80d285f04d53d8"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4656
+ hash: "17c46242c17983478f34cb49cb91ca6e"
+ }
+ Frame {
+ msec: 4672
+ hash: "dafcce427161a70c3513841ac22aea00"
+ }
+ Frame {
+ msec: 4688
+ hash: "69058485ced6bc992a1a7c5ee34add4c"
+ }
+ Frame {
+ msec: 4704
+ hash: "6f48d1a9977b77cafd38a5903017605b"
+ }
+ Frame {
+ msec: 4720
+ hash: "ddb65481469c38f2331546ee03a44206"
+ }
+ Frame {
+ msec: 4736
+ hash: "a21aa1984f068650cce2a124a82c12be"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4752
+ hash: "a21aa1984f068650cce2a124a82c12be"
+ }
+ Frame {
+ msec: 4768
+ hash: "8006ceaa02d22b5fdfeab400d39a0caf"
+ }
+ Frame {
+ msec: 4784
+ hash: "6f48d1a9977b77cafd38a5903017605b"
+ }
+ Frame {
+ msec: 4800
+ image: "bindinganimation.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "56125a260a79bc38bb0ef44fd65ba49b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4832
+ hash: "56c72b5da44bd5efdc47c3b9c3eac409"
+ }
+ Frame {
+ msec: 4848
+ hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f"
+ }
+ Frame {
+ msec: 4864
+ hash: "6a74d6dc91a8b370200d3765c55c1136"
+ }
+ Frame {
+ msec: 4880
+ hash: "9413dffb7ee853ba0125ac22ab22abbd"
+ }
+ Frame {
+ msec: 4896
+ hash: "527b1f9e7a222483134675a73f9cf5b7"
+ }
+ Frame {
+ msec: 4912
+ hash: "ffeb3db6d3f177acf6f92049359a9025"
+ }
+ Frame {
+ msec: 4928
+ hash: "a39c80859a7643c9879da9c77b644703"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 175
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4944
+ hash: "a39c80859a7643c9879da9c77b644703"
+ }
+ Frame {
+ msec: 4960
+ hash: "ffeb3db6d3f177acf6f92049359a9025"
+ }
+ Frame {
+ msec: 4976
+ hash: "527b1f9e7a222483134675a73f9cf5b7"
+ }
+ Frame {
+ msec: 4992
+ hash: "9413dffb7ee853ba0125ac22ab22abbd"
+ }
+ Frame {
+ msec: 5008
+ hash: "6a74d6dc91a8b370200d3765c55c1136"
+ }
+ Frame {
+ msec: 5024
+ hash: "4f41101378a104e72228eeb4ba395ca8"
+ }
+ Frame {
+ msec: 5040
+ hash: "56c72b5da44bd5efdc47c3b9c3eac409"
+ }
+ Frame {
+ msec: 5056
+ hash: "72731478d80f024076ea639b55152360"
+ }
+ Frame {
+ msec: 5072
+ hash: "07f751ea4cf877ba72fbb36f9da268d7"
+ }
+ Frame {
+ msec: 5088
+ hash: "a2cebc35e5c2c709a2cd83e1df6eaeab"
+ }
+ Frame {
+ msec: 5104
+ hash: "8006ceaa02d22b5fdfeab400d39a0caf"
+ }
+ Frame {
+ msec: 5120
+ hash: "f9f74a2e38b52c9266f33e428b6acd9d"
+ }
+ Frame {
+ msec: 5136
+ hash: "a93f930ec8528f954cd4a770c9a8171b"
+ }
+ Frame {
+ msec: 5152
+ hash: "bfa51b7c19753ef7b16d78afffc7b9dd"
+ }
+ Frame {
+ msec: 5168
+ hash: "df62027b6b53c69a071cb3dc09c3a7ed"
+ }
+ Frame {
+ msec: 5184
+ hash: "0d59ac57f8790fe741a31d12c3438abf"
+ }
+ Frame {
+ msec: 5200
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5216
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5232
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5248
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5264
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5280
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5296
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5312
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5328
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5344
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5360
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5376
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5392
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5408
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5424
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5440
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5456
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5472
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5488
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5504
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5520
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5536
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5552
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5568
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5584
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5600
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5616
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5632
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5648
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5664
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5680
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5696
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5712
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5728
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5744
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5760
+ image: "bindinganimation.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5792
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5808
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5824
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5840
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+ Frame {
+ msec: 5856
+ hash: "383ba6b9efcc58fca512982a207631f6"
+ }
+}
diff --git a/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml
index 0e98d7e..0e98d7e 100644
--- a/tests/auto/declarative/visual/colorAnimation/colorAnimation.qml
+++ b/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml
diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png
index f4a6cfd..f4a6cfd 100644
--- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.0.png
+++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png
index f4a6cfd..f4a6cfd 100644
--- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.1.png
+++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png
index f4a6cfd..f4a6cfd 100644
--- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.2.png
+++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml
index 900bf5c..900bf5c 100644
--- a/tests/auto/declarative/visual/colorAnimation/data/colorAnimation.qml
+++ b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml
diff --git a/tests/auto/declarative/visual/easing/data/easing.0.png b/tests/auto/declarative/visual/animation/easing/data/easing.0.png
index 4f75bfd..4f75bfd 100644
--- a/tests/auto/declarative/visual/easing/data/easing.0.png
+++ b/tests/auto/declarative/visual/animation/easing/data/easing.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/easing/data/easing.1.png b/tests/auto/declarative/visual/animation/easing/data/easing.1.png
index dc17765..dc17765 100644
--- a/tests/auto/declarative/visual/easing/data/easing.1.png
+++ b/tests/auto/declarative/visual/animation/easing/data/easing.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/easing/data/easing.2.png b/tests/auto/declarative/visual/animation/easing/data/easing.2.png
index 7f83548..7f83548 100644
--- a/tests/auto/declarative/visual/easing/data/easing.2.png
+++ b/tests/auto/declarative/visual/animation/easing/data/easing.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/easing/data/easing.3.png b/tests/auto/declarative/visual/animation/easing/data/easing.3.png
index c68e0fa..c68e0fa 100644
--- a/tests/auto/declarative/visual/easing/data/easing.3.png
+++ b/tests/auto/declarative/visual/animation/easing/data/easing.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/easing/data/easing.qml b/tests/auto/declarative/visual/animation/easing/data/easing.qml
index d8e8688..d8e8688 100644
--- a/tests/auto/declarative/visual/easing/data/easing.qml
+++ b/tests/auto/declarative/visual/animation/easing/data/easing.qml
diff --git a/tests/auto/declarative/visual/easing/easing.qml b/tests/auto/declarative/visual/animation/easing/easing.qml
index 1e8e907..1e8e907 100644
--- a/tests/auto/declarative/visual/easing/easing.qml
+++ b/tests/auto/declarative/visual/animation/easing/easing.qml
diff --git a/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png b/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/visual/pauseAnimation/pics/qtlogo.png
+++ b/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png
new file mode 100644
index 0000000..82c18d7
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png
new file mode 100644
index 0000000..b9a3b89
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png
new file mode 100644
index 0000000..789615b
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml
new file mode 100644
index 0000000..5f5b8fc
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml
@@ -0,0 +1,463 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 32
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 48
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 64
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 80
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 96
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 112
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 128
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 144
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 160
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 176
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 192
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 208
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 224
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 240
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 256
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 272
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 288
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 304
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 320
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 336
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 352
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 368
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 384
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 400
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 416
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 432
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 448
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 464
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 480
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 496
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 512
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 528
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 544
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 560
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 576
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 592
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 608
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 624
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 640
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 656
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 672
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 688
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 704
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 720
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 736
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 752
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 137; y: 74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 768
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 784
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 800
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 816
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 832
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 848
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 864
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 137; y: 74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 880
+ hash: "4faa7727bafeea0771f2db62f0141ac9"
+ }
+ Frame {
+ msec: 896
+ hash: "0fada111cb977c4de8c7499e44714f38"
+ }
+ Frame {
+ msec: 912
+ hash: "1817e010332117dcddc1a1b1a2caf52d"
+ }
+ Frame {
+ msec: 928
+ hash: "e4add6bf93479c9bca571419fe2fabf9"
+ }
+ Frame {
+ msec: 944
+ hash: "d8812e206d2cbf434d58db6a35439a44"
+ }
+ Frame {
+ msec: 960
+ image: "parallelAnimation.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "a238178c584aaf2563d29bff927d5bab"
+ }
+ Frame {
+ msec: 992
+ hash: "f583e9fe8feda02e796a61c5fed7b0eb"
+ }
+ Frame {
+ msec: 1008
+ hash: "b3a1a4fd85912831e551a8c07da1a561"
+ }
+ Frame {
+ msec: 1024
+ hash: "f7c111ee4a04af6c1da958f8b56c28ee"
+ }
+ Frame {
+ msec: 1040
+ hash: "f53fa374817d81ee44fb98e64e464b36"
+ }
+ Frame {
+ msec: 1056
+ hash: "547ddef13cbcaaf57bb1f4e2bb7bc822"
+ }
+ Frame {
+ msec: 1072
+ hash: "8b10ccfef926103a6d67d68eee250f83"
+ }
+ Frame {
+ msec: 1088
+ hash: "008bbb50dc659e6f5eea15290680edd7"
+ }
+ Frame {
+ msec: 1104
+ hash: "0217e3230d3df44363a023d0d7defc5f"
+ }
+ Frame {
+ msec: 1120
+ hash: "ab9907a92452de6878f4c346febe705c"
+ }
+ Frame {
+ msec: 1136
+ hash: "7bce31f347a7f0598d2d64026c702f3e"
+ }
+ Frame {
+ msec: 1152
+ hash: "032080184907bc5b01db7675802d7dbe"
+ }
+ Frame {
+ msec: 1168
+ hash: "2cba43a2e5febcc44bfd1379b9cb2591"
+ }
+ Frame {
+ msec: 1184
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1200
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1216
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1232
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1248
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1264
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1280
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1296
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1312
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1328
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1344
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1360
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1376
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1392
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1408
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1424
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1440
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1456
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1472
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1488
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1504
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1520
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1536
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1552
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1568
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1584
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1600
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1616
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1632
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1648
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1664
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1680
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1696
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1712
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+ Frame {
+ msec: 1728
+ hash: "b901a51b5605621adff7b34c61f8f320"
+ }
+}
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml b/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml
new file mode 100644
index 0000000..9e0422f
--- /dev/null
+++ b/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml
@@ -0,0 +1,43 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 200
+ Rectangle {
+ id: redRect
+ width: 100; height: 100
+ color: "red"
+ }
+ Rectangle {
+ id: redRect2
+ width: 100; height: 100
+ y: 100
+ color: "red"
+ }
+
+ MouseRegion {
+ anchors.fill: parent
+ onClicked: parent.state = "state1"
+ }
+
+ states: State {
+ name: "state1"
+ PropertyChanges {
+ target: redRect
+ x: 300
+ color: "purple"
+ }
+ PropertyChanges {
+ target: redRect2
+ x: 300
+ color: "purple"
+ }
+ }
+
+ transitions: Transition {
+ PropertyAnimation { matchTargets: redRect; matchProperties: "x,color"; duration: 300 }
+ ParallelAnimation {
+ NumberAnimation { matchTargets: redRect2; matchProperties: "x"; duration: 300 }
+ ColorAnimation { matchTargets: redRect2; matchProperties: "color"; duration: 300 }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.0.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png
index a0032f8..a0032f8 100644
--- a/tests/auto/declarative/visual/parentAction/data/parentAction.0.png
+++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png
index 958b6af..958b6af 100644
--- a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png
+++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png
index 3a1811f..3a1811f 100644
--- a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png
+++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png
index 36064c2..36064c2 100644
--- a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png
+++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png
index c493a1d..c493a1d 100644
--- a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png
+++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png
index c493a1d..c493a1d 100644
--- a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png
+++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml
index de27af7..de27af7 100644
--- a/tests/auto/declarative/visual/parentAction/data/parentAction.qml
+++ b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml
diff --git a/tests/auto/declarative/visual/parentAction/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml
index e69d234..e69d234 100644
--- a/tests/auto/declarative/visual/parentAction/parentAction.qml
+++ b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml
diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png
index 693a794..693a794 100644
--- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.0.png
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png
index 06d43f1..06d43f1 100644
--- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.1.png
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png
index e619baf..e619baf 100644
--- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.2.png
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png
index 30c7671..30c7671 100644
--- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.3.png
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png
index 132803c..132803c 100644
--- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.4.png
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png
index 8372bc3..8372bc3 100644
--- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.5.png
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml
index 73c6542..73c6542 100644
--- a/tests/auto/declarative/visual/pauseAnimation/data/pauseAnimation.qml
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml
diff --git a/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml
index fba8ae6..fba8ae6 100644
--- a/tests/auto/declarative/visual/pauseAnimation/pauseAnimation.qml
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml
diff --git a/tests/auto/declarative/visual/easing/pics/qtlogo.png b/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/visual/easing/pics/qtlogo.png
+++ b/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png
Binary files differ
diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png
index 64d6b06..64d6b06 100644
--- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png
+++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png
index f7fce15..f7fce15 100644
--- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png
+++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png
index 3080df5..3080df5 100644
--- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png
+++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml
index 7c8c233..7c8c233 100644
--- a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml
+++ b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml
diff --git a/tests/auto/declarative/visual/propertyAction/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml
index a9d3c74..a9d3c74 100644
--- a/tests/auto/declarative/visual/propertyAction/propertyAction.qml
+++ b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml
diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png
index 64d6b06..64d6b06 100644
--- a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png
+++ b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png
index 1a25c63..1a25c63 100644
--- a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png
+++ b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml
index 01da490..01da490 100644
--- a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml
+++ b/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml
diff --git a/tests/auto/declarative/visual/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml
index 872701b..872701b 100644
--- a/tests/auto/declarative/visual/scriptAction/scriptAction.qml
+++ b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml
diff --git a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml
deleted file mode 100644
index 2501797..0000000
--- a/tests/auto/declarative/visual/bindinganimation/data/bindinganimation.qml
+++ /dev/null
@@ -1,659 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 32
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 48
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 64
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 80
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 96
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 112
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 128
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 144
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 160
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 176
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 192
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 208
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 224
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 240
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 256
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 272
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 288
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 304
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 320
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 336
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 352
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 368
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 384
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 400
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 416
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 432
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 448
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 464
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 480
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 496
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 512
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 528
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 544
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 560
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 576
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 592
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 608
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 624
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 640
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 656
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 672
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 688
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 704
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 720
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 736
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 752
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 768
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 784
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 800
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 816
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 832
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 848
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 864
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 880
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 896
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 912
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 928
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 944
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 960
- image: "bindinganimation.0.png"
- }
- Frame {
- msec: 976
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 992
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1008
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1024
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1040
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1056
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1072
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1088
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1104
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1120
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1136
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1152
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1168
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1184
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1200
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1216
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1232
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1248
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1264
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1280
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1296
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1312
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1328
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1344
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1360
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1376
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1392
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1408
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1424
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1440
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1456
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1472
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1488
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 150; y: 158
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1504
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1520
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1536
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1552
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1568
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 150; y: 158
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1584
- hash: "7cb5fc371040e587de9f06ce14a4b29a"
- }
- Frame {
- msec: 1600
- hash: "a78c9394bf3b81f192f42710cd7218b1"
- }
- Frame {
- msec: 1616
- hash: "7f08e8170feb1d02373c9ab42b6e882d"
- }
- Frame {
- msec: 1632
- hash: "967fbad8ac664400a3efbe66617d62aa"
- }
- Frame {
- msec: 1648
- hash: "abc2ec0bc7a93e75b5823310e6284db1"
- }
- Frame {
- msec: 1664
- hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b"
- }
- Frame {
- msec: 1680
- hash: "9413dffb7ee853ba0125ac22ab22abbd"
- }
- Frame {
- msec: 1696
- hash: "fcae0317f81a3ddd713f4db1349a9da0"
- }
- Frame {
- msec: 1712
- hash: "37739777a5979f3ebf85e47e63341660"
- }
- Frame {
- msec: 1728
- hash: "72731478d80f024076ea639b55152360"
- }
- Frame {
- msec: 1744
- hash: "69058485ced6bc992a1a7c5ee34add4c"
- }
- Frame {
- msec: 1760
- hash: "391ad7ff2362e059f6170dfe306f94a7"
- }
- Frame {
- msec: 1776
- hash: "f9f74a2e38b52c9266f33e428b6acd9d"
- }
- Frame {
- msec: 1792
- hash: "25152412c4ea2aec6caf89486c073484"
- }
- Frame {
- msec: 1808
- hash: "ba403842ba3128b1cdf6a9cb28c90751"
- }
- Frame {
- msec: 1824
- hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9"
- }
- Frame {
- msec: 1840
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 1856
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 1872
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 1888
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 1904
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 1920
- image: "bindinganimation.1.png"
- }
- Frame {
- msec: 1936
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 1952
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 1968
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 1984
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2000
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2016
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2032
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2048
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2064
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2080
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2096
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2112
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2128
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2144
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2160
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2176
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2192
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2208
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2224
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2240
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2256
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2272
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2288
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2304
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2320
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2336
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2352
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2368
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2384
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2400
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2416
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 67108864
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2432
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2448
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2464
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2480
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2496
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
- Frame {
- msec: 2512
- hash: "383ba6b9efcc58fca512982a207631f6"
- }
-}
diff --git a/tests/auto/declarative/visual/qmleasefollow/data/easefollow.0.png b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.0.png
new file mode 100644
index 0000000..21b6afb
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmleasefollow/data/easefollow.1.png b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.1.png
new file mode 100644
index 0000000..bb8a02b
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmleasefollow/data/easefollow.2.png b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.2.png
new file mode 100644
index 0000000..da60237
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmleasefollow/data/easefollow.3.png b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.3.png
new file mode 100644
index 0000000..3e943e8
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmleasefollow/data/easefollow.4.png b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.4.png
new file mode 100644
index 0000000..4fbaf26
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmleasefollow/data/easefollow.5.png b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.5.png
new file mode 100644
index 0000000..c10d196
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmleasefollow/data/easefollow.6.png b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.6.png
new file mode 100644
index 0000000..a672c06
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmleasefollow/data/easefollow.qml b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.qml
new file mode 100644
index 0000000..029a2fc
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/data/easefollow.qml
@@ -0,0 +1,1807 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "1f60efdb8704b92c9361daa468a25391"
+ }
+ Frame {
+ msec: 32
+ hash: "3bb6a87617e0e5d4922e573eec975886"
+ }
+ Frame {
+ msec: 48
+ hash: "268941737e6324d580890b151de621fb"
+ }
+ Frame {
+ msec: 64
+ hash: "99c674eccc082d7f0982257a748d93e5"
+ }
+ Frame {
+ msec: 80
+ hash: "2970467e8262c8a3f0b11be71245d048"
+ }
+ Frame {
+ msec: 96
+ hash: "63cbd06d6bb035d27c18dba49238d8b2"
+ }
+ Frame {
+ msec: 112
+ hash: "49f77bb3d323f882c0ec56e1f1040b3a"
+ }
+ Frame {
+ msec: 128
+ hash: "40263c5f9b5d2236536163785f832b4d"
+ }
+ Frame {
+ msec: 144
+ hash: "dc63b1c21a2027c4beb9c297a3677fbd"
+ }
+ Frame {
+ msec: 160
+ hash: "4fab52ea29a819fec032f19dbcbef012"
+ }
+ Frame {
+ msec: 176
+ hash: "60b48407a8f8ae2cce7d3e7c8b21991c"
+ }
+ Frame {
+ msec: 192
+ hash: "6e542c681092a5ebeef0534fa2bd2d6c"
+ }
+ Frame {
+ msec: 208
+ hash: "c7c6471969bbf81efdb86d1695548fc6"
+ }
+ Frame {
+ msec: 224
+ hash: "b7f4ad9a49feb400894209c02b94478a"
+ }
+ Frame {
+ msec: 240
+ hash: "3eb58b2f5233aead976183c13f241113"
+ }
+ Frame {
+ msec: 256
+ hash: "54f2036c50c6d8079fc0cadc01385980"
+ }
+ Frame {
+ msec: 272
+ hash: "f297659d75f6e724d72bd548821f4c9f"
+ }
+ Frame {
+ msec: 288
+ hash: "112798f080336fc9c603a7e9097dd8aa"
+ }
+ Frame {
+ msec: 304
+ hash: "c432e6ec2b53ca43cb7a7325d0cc379b"
+ }
+ Frame {
+ msec: 320
+ hash: "4a6d3db3efd665ad7f372bf3f2508ed7"
+ }
+ Frame {
+ msec: 336
+ hash: "0befa5dc4d2cc196fed0eb1a3aa75b8f"
+ }
+ Frame {
+ msec: 352
+ hash: "a34d010b50d59c362b54e44d69c2df91"
+ }
+ Frame {
+ msec: 368
+ hash: "cbdacced50186c87066ce1d46548b27e"
+ }
+ Frame {
+ msec: 384
+ hash: "a4060010ae4d3c0973bda48d68f7bd0a"
+ }
+ Frame {
+ msec: 400
+ hash: "47353437da587f732f986004c09884d0"
+ }
+ Frame {
+ msec: 416
+ hash: "080c348145167bbec671a04da6f7564f"
+ }
+ Frame {
+ msec: 432
+ hash: "69dead737c717a076ae3865680341fb4"
+ }
+ Frame {
+ msec: 448
+ hash: "1efdc31c5c8fa72fc848877deb6caaa4"
+ }
+ Frame {
+ msec: 464
+ hash: "28d7da1e933d0585d03acf4a529e7b42"
+ }
+ Frame {
+ msec: 480
+ hash: "bf85534124bf025b7ede0d6c80b8e443"
+ }
+ Frame {
+ msec: 496
+ hash: "cdbeb2d51541b1b1eff060efe993db91"
+ }
+ Frame {
+ msec: 512
+ hash: "52ad56ae16c8ab523adda8edc512dd87"
+ }
+ Frame {
+ msec: 528
+ hash: "61b1937f4c8dd2cb0ddd7031c5bfb3ab"
+ }
+ Frame {
+ msec: 544
+ hash: "1b109baba71b16827f90da654af093a3"
+ }
+ Frame {
+ msec: 560
+ hash: "d56621362802c8626868f36ba1e7db22"
+ }
+ Frame {
+ msec: 576
+ hash: "ee5555ec3ad8760f43bbf5958a925936"
+ }
+ Frame {
+ msec: 592
+ hash: "1ed2831144a453af1978605c0e42d17c"
+ }
+ Frame {
+ msec: 608
+ hash: "c74d5cdb3395a702269dfa88c8c9d975"
+ }
+ Frame {
+ msec: 624
+ hash: "ea98ddd9588cc23fd82a342ec2925ba8"
+ }
+ Frame {
+ msec: 640
+ hash: "e76b94d6d57f1a510f7649eaab892562"
+ }
+ Frame {
+ msec: 656
+ hash: "022f40b6fe9dbaf8019855234acb3461"
+ }
+ Frame {
+ msec: 672
+ hash: "467da4f48aa6aeb113f0797facf157e8"
+ }
+ Frame {
+ msec: 688
+ hash: "8df407aadd4d896eb6537e1555a0242f"
+ }
+ Frame {
+ msec: 704
+ hash: "122e4671881e31f54e617729f4fbb3b0"
+ }
+ Frame {
+ msec: 720
+ hash: "562718f101c3cd7525b890076413df5e"
+ }
+ Frame {
+ msec: 736
+ hash: "07feae99ecf4b70eb094fd3e10deca56"
+ }
+ Frame {
+ msec: 752
+ hash: "0980d133b1006cc07796023880415163"
+ }
+ Frame {
+ msec: 768
+ hash: "7112b6ac97678b3b942c64c5108f0329"
+ }
+ Frame {
+ msec: 784
+ hash: "bb9f893a9aaee60ab6c30918552828a4"
+ }
+ Frame {
+ msec: 800
+ hash: "65d1f29437aaaea33676757276f1e434"
+ }
+ Frame {
+ msec: 816
+ hash: "52adcf2509f3236ac8ef571708e77206"
+ }
+ Frame {
+ msec: 832
+ hash: "22df5e7eda8a813531d0e0366cbfbf64"
+ }
+ Frame {
+ msec: 848
+ hash: "fe9b7b7812dd2410b8ed2eb19aa78f4d"
+ }
+ Frame {
+ msec: 864
+ hash: "141e22de4469f316b5ef5471f3c7bba0"
+ }
+ Frame {
+ msec: 880
+ hash: "1125c0a105fc4a2cae36b798058ce23f"
+ }
+ Frame {
+ msec: 896
+ hash: "8c17c5da2ae867fb0016a485ba9e4166"
+ }
+ Frame {
+ msec: 912
+ hash: "d8da9fc7ec4dcefb894c5a6a71e9d001"
+ }
+ Frame {
+ msec: 928
+ hash: "00ff642bea89fd89de394d78f8c5db33"
+ }
+ Frame {
+ msec: 944
+ hash: "8549063d517a3ce1ffd44c56b3b6cf5e"
+ }
+ Frame {
+ msec: 960
+ image: "easefollow.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "95a642caa72bb31cc1e04ecc12d07cd0"
+ }
+ Frame {
+ msec: 992
+ hash: "e65c823476bf920d0386f62ca831e6a0"
+ }
+ Frame {
+ msec: 1008
+ hash: "91e8913dc693c91a674a10b5b088dd8f"
+ }
+ Frame {
+ msec: 1024
+ hash: "1a469ffa0d530f72c78dc14783891c78"
+ }
+ Frame {
+ msec: 1040
+ hash: "6e46a83d07f8bc034b421103ef0e4f8c"
+ }
+ Frame {
+ msec: 1056
+ hash: "8ddacab411a8b73b6c9e69576fa1b003"
+ }
+ Frame {
+ msec: 1072
+ hash: "41f419a85fe44efe27c9a526d83a1e9a"
+ }
+ Frame {
+ msec: 1088
+ hash: "73d4ece31b258f9caf4556ce20a5be1f"
+ }
+ Frame {
+ msec: 1104
+ hash: "ef3ebe0acb50386cf79b9f08fbba2fbc"
+ }
+ Frame {
+ msec: 1120
+ hash: "c11a84d2fa80f28adb1466409812e987"
+ }
+ Frame {
+ msec: 1136
+ hash: "2e9db854b02d28b38063ff2a8e821ed1"
+ }
+ Frame {
+ msec: 1152
+ hash: "48e073c0e6b19aea8314629a2179af87"
+ }
+ Frame {
+ msec: 1168
+ hash: "77e518b7428d93b67a8fb0d33d85ed97"
+ }
+ Frame {
+ msec: 1184
+ hash: "1d18323af9c62e015513451883f8b39f"
+ }
+ Frame {
+ msec: 1200
+ hash: "df49889ba157cdc1ca240d08d2760ad7"
+ }
+ Frame {
+ msec: 1216
+ hash: "7b8cd2bcf0a4c38ab870f27894a43d2f"
+ }
+ Frame {
+ msec: 1232
+ hash: "84f10e0c9fd57dd1799df7fc34c5ef01"
+ }
+ Frame {
+ msec: 1248
+ hash: "ead4e609bc4a0755032b1648485b9625"
+ }
+ Frame {
+ msec: 1264
+ hash: "9a9829c3bd4a3a4155383c37e21e8db8"
+ }
+ Frame {
+ msec: 1280
+ hash: "5008917f60256abad867f32c1caf954d"
+ }
+ Frame {
+ msec: 1296
+ hash: "c21455d66ed0754177af5ce44b7c7600"
+ }
+ Frame {
+ msec: 1312
+ hash: "e8332f2586d80a2700b610e8fe5c72d9"
+ }
+ Frame {
+ msec: 1328
+ hash: "0d0c8af138f98bae8a370ebec4a4796c"
+ }
+ Frame {
+ msec: 1344
+ hash: "04065e8feeb900d18deeb941572f7f10"
+ }
+ Frame {
+ msec: 1360
+ hash: "992a225b1f25bf5b21dd7f8a55dc4b70"
+ }
+ Frame {
+ msec: 1376
+ hash: "8ef739d91ee2a4337cbfc3dc94ce9845"
+ }
+ Frame {
+ msec: 1392
+ hash: "46744977a26b37ab65e65e1891ceafe7"
+ }
+ Frame {
+ msec: 1408
+ hash: "1b4c0d79eeb8d6b2e30172f3664407b9"
+ }
+ Frame {
+ msec: 1424
+ hash: "d572831ed34d14d1125570b8b8767bdb"
+ }
+ Frame {
+ msec: 1440
+ hash: "8b785c756d11e0fc18959d0897a45673"
+ }
+ Frame {
+ msec: 1456
+ hash: "164a71ffcea63ceb6c1ebeb8d0d07af1"
+ }
+ Frame {
+ msec: 1472
+ hash: "e128dc12d5117eed9f7c0a16e8348ba2"
+ }
+ Frame {
+ msec: 1488
+ hash: "4c7db5b12d83bf22b1c88ac06ca7c385"
+ }
+ Frame {
+ msec: 1504
+ hash: "c7283df8dbd78121e17a5893e3ea4f3c"
+ }
+ Frame {
+ msec: 1520
+ hash: "fea768e5bb43f6d86d88ced9f73915de"
+ }
+ Frame {
+ msec: 1536
+ hash: "b99b54f8e75452c539bb4e7b6a36e944"
+ }
+ Frame {
+ msec: 1552
+ hash: "b7274938d16f03b376ad9739e2e893f1"
+ }
+ Frame {
+ msec: 1568
+ hash: "e61601942193add8c1c8ebf5c5319932"
+ }
+ Frame {
+ msec: 1584
+ hash: "8fdc2181e0120391505706716ba7e5d7"
+ }
+ Frame {
+ msec: 1600
+ hash: "66f737ed28453da5175d6b5e807c374d"
+ }
+ Frame {
+ msec: 1616
+ hash: "2e00a7895d61edbe794f0a8000871b30"
+ }
+ Frame {
+ msec: 1632
+ hash: "1a279fc6b7c4105eccc4e3bc99481bef"
+ }
+ Frame {
+ msec: 1648
+ hash: "bc1dea4d23ca9bc29b72a8c2bde4787b"
+ }
+ Frame {
+ msec: 1664
+ hash: "8ef40e0be5fb82b32b365b3d4b85421d"
+ }
+ Frame {
+ msec: 1680
+ hash: "ee37c68bf38d5eed4e3e9a31306f6801"
+ }
+ Frame {
+ msec: 1696
+ hash: "303d760c87a7a833606c8e9f46cb5fc0"
+ }
+ Frame {
+ msec: 1712
+ hash: "cc2563b47c58efd39bec6b4e0f2995bb"
+ }
+ Frame {
+ msec: 1728
+ hash: "33f7daf09497510475283d6dc7c51228"
+ }
+ Frame {
+ msec: 1744
+ hash: "5b5e2de9934c80bd49e0eb7afd85151d"
+ }
+ Frame {
+ msec: 1760
+ hash: "5e6bf706336789ca6b60a82998b70113"
+ }
+ Frame {
+ msec: 1776
+ hash: "b4d4a860f49bfb88dd2079862b40b7ec"
+ }
+ Frame {
+ msec: 1792
+ hash: "07b571fa55327487e34a592c778beb67"
+ }
+ Frame {
+ msec: 1808
+ hash: "cb5b349a536cf75a83734181b3eab92b"
+ }
+ Frame {
+ msec: 1824
+ hash: "ce903bb58c5c86f2955e68412893aedf"
+ }
+ Frame {
+ msec: 1840
+ hash: "ffa89e879558c83ed538812a93e2fe29"
+ }
+ Frame {
+ msec: 1856
+ hash: "562aa66bf537853be82a654542c8b80e"
+ }
+ Frame {
+ msec: 1872
+ hash: "dc45dac0cc20220bcc81210fb5506ee2"
+ }
+ Frame {
+ msec: 1888
+ hash: "3b429eb827df0800a1ad8b906ea32ef9"
+ }
+ Frame {
+ msec: 1904
+ hash: "d6ebaf12515d9e24cdbf6d75080c0b28"
+ }
+ Frame {
+ msec: 1920
+ image: "easefollow.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "9f6d26224055c809dc2f3490cd0ff880"
+ }
+ Frame {
+ msec: 1952
+ hash: "5630cc8f0b401f7d81bdceaaae5cce68"
+ }
+ Frame {
+ msec: 1968
+ hash: "dafda60467e5e2b99c41543dd191ac2d"
+ }
+ Frame {
+ msec: 1984
+ hash: "e053cb07a734278cd111d612883c165e"
+ }
+ Frame {
+ msec: 2000
+ hash: "63870f3e99c11707004dab9439d61389"
+ }
+ Frame {
+ msec: 2016
+ hash: "14c311a6fab45f828c3a19535ea9edc8"
+ }
+ Frame {
+ msec: 2032
+ hash: "13e614446cbfcbfd2a7ecc5f0e8688df"
+ }
+ Frame {
+ msec: 2048
+ hash: "173c97f59da05b9347180a4824e60c06"
+ }
+ Frame {
+ msec: 2064
+ hash: "932e2a9bbcb7dc5befca8f63d8fa3c95"
+ }
+ Frame {
+ msec: 2080
+ hash: "4b8f232ffe0cbc7f900de5737c9f95be"
+ }
+ Frame {
+ msec: 2096
+ hash: "9686d294d4e931a5eed0e6b5bda63377"
+ }
+ Frame {
+ msec: 2112
+ hash: "969c569d92e3ec51dfbdd20d64432224"
+ }
+ Frame {
+ msec: 2128
+ hash: "0cef3550cca9fb5611b836098c517dd1"
+ }
+ Frame {
+ msec: 2144
+ hash: "6728080a09aa5d48462a3abb8e285e8a"
+ }
+ Frame {
+ msec: 2160
+ hash: "4b904dc671b7fc72db0b6e52543e96bd"
+ }
+ Frame {
+ msec: 2176
+ hash: "38232f89dffc9b16db6ea60b02f8d1be"
+ }
+ Frame {
+ msec: 2192
+ hash: "6b41f2a0f950eddad217a03e137f9a9b"
+ }
+ Frame {
+ msec: 2208
+ hash: "be576ea74c2c404da46fcf1d22de6df9"
+ }
+ Frame {
+ msec: 2224
+ hash: "3f44bad4b51ceff2944337064a5efa91"
+ }
+ Frame {
+ msec: 2240
+ hash: "e1ab98ac1366e9fd8af62a6a26878c73"
+ }
+ Frame {
+ msec: 2256
+ hash: "bd131e1725a54b3dbbb86a29ca8a56a9"
+ }
+ Frame {
+ msec: 2272
+ hash: "4d3e8af70f228643803f780c4e36f1a6"
+ }
+ Frame {
+ msec: 2288
+ hash: "853a5ab4271af7a7638454cfa883aa33"
+ }
+ Frame {
+ msec: 2304
+ hash: "ede9260157000f346900153ce2409278"
+ }
+ Frame {
+ msec: 2320
+ hash: "b2b16d8ce1ba89f0d9558ac387e25c3d"
+ }
+ Frame {
+ msec: 2336
+ hash: "387d338910453637c5cf80fa35528e56"
+ }
+ Frame {
+ msec: 2352
+ hash: "26deabf9cdd994455f2a8802eb0e04dc"
+ }
+ Frame {
+ msec: 2368
+ hash: "13939659a315dae1b81e3ea166102edf"
+ }
+ Frame {
+ msec: 2384
+ hash: "be92b55bb7562372401b25a9167abb2b"
+ }
+ Frame {
+ msec: 2400
+ hash: "ee7bf60d7ee97b7de5e909b9af88df80"
+ }
+ Frame {
+ msec: 2416
+ hash: "434313a3bcd1d7582b0d89b9a145ef09"
+ }
+ Frame {
+ msec: 2432
+ hash: "0857ca59a283897e3df62b9633488f83"
+ }
+ Frame {
+ msec: 2448
+ hash: "76718fc7e3d21b54930bc8307a57733a"
+ }
+ Frame {
+ msec: 2464
+ hash: "93a91588b38129053a462b920fd686e3"
+ }
+ Frame {
+ msec: 2480
+ hash: "2a2486c52fde915696fd8cbd3682e8db"
+ }
+ Frame {
+ msec: 2496
+ hash: "b1f4ab6cc5fb4a3a1b4885f2d1b29277"
+ }
+ Frame {
+ msec: 2512
+ hash: "4258afce8a85a2e9ead149e34b43d8fc"
+ }
+ Frame {
+ msec: 2528
+ hash: "6672c71b98e13d51ebb523aed9036a72"
+ }
+ Frame {
+ msec: 2544
+ hash: "eaa39af7eb78948f433e3b44a9454317"
+ }
+ Frame {
+ msec: 2560
+ hash: "0a766bc97bea67d4b848c703eaa6777a"
+ }
+ Frame {
+ msec: 2576
+ hash: "0b461ec1885ede1dd96b71cf38bfd3d6"
+ }
+ Frame {
+ msec: 2592
+ hash: "15efc929370a3864529080e30db1026a"
+ }
+ Frame {
+ msec: 2608
+ hash: "e1529e30ff1e4ea1b092a88e85f2f1f6"
+ }
+ Frame {
+ msec: 2624
+ hash: "f29bd9dbf7317e94b885da63f0cb7374"
+ }
+ Frame {
+ msec: 2640
+ hash: "e5294e087e2ce0d7d936c0129b6c37ae"
+ }
+ Frame {
+ msec: 2656
+ hash: "9c63129e774b391cc398cf5da5c9339c"
+ }
+ Frame {
+ msec: 2672
+ hash: "4371d85854419d4b00671176bb7c5a2b"
+ }
+ Frame {
+ msec: 2688
+ hash: "dd10b3f50e2fdc56c75f00321634b1cc"
+ }
+ Frame {
+ msec: 2704
+ hash: "aac6256b21152a5f1f8c576b667d275e"
+ }
+ Frame {
+ msec: 2720
+ hash: "c937c44037b2228590d334df4d56a86f"
+ }
+ Frame {
+ msec: 2736
+ hash: "f6c714db51cbd1bdb737afe612c33f9c"
+ }
+ Frame {
+ msec: 2752
+ hash: "0bba45af79f3201bc7cf042d5c648f73"
+ }
+ Frame {
+ msec: 2768
+ hash: "941b08ddbafea3bd46262c060b1e290b"
+ }
+ Frame {
+ msec: 2784
+ hash: "d898918dc2023de239b4ab38f7420960"
+ }
+ Frame {
+ msec: 2800
+ hash: "d1a16dc2282329113093d06862e7a871"
+ }
+ Frame {
+ msec: 2816
+ hash: "bba5359475f643fbeee240e71e843d4c"
+ }
+ Frame {
+ msec: 2832
+ hash: "03cf861f4b6bc767e723e47e95c2448b"
+ }
+ Frame {
+ msec: 2848
+ hash: "a64bf158c6199b88bc2db3b741d342f0"
+ }
+ Frame {
+ msec: 2864
+ hash: "cf0fe7cb42ba842f1c28c1211adb768d"
+ }
+ Frame {
+ msec: 2880
+ image: "easefollow.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "9b3c6414e4ef5a452a5c92bb0b893fc3"
+ }
+ Frame {
+ msec: 2912
+ hash: "7cc7ddec3ac2d8cac33c0b0f80a7544d"
+ }
+ Frame {
+ msec: 2928
+ hash: "7dd4e7d606e953c872c57fad786d64aa"
+ }
+ Frame {
+ msec: 2944
+ hash: "117cc903a39d99ca22f6556095e6f883"
+ }
+ Frame {
+ msec: 2960
+ hash: "c6c9304fd65fee1909473bdb21ac7806"
+ }
+ Frame {
+ msec: 2976
+ hash: "8e704fe81c040f49c4d80e7dcc46084d"
+ }
+ Frame {
+ msec: 2992
+ hash: "d202d5c0a058e1e088fdd280e59f17bb"
+ }
+ Frame {
+ msec: 3008
+ hash: "90c072dea32c056f8bd6d010df681929"
+ }
+ Frame {
+ msec: 3024
+ hash: "80b4e99f1b47e64084e295a2a3e1121e"
+ }
+ Frame {
+ msec: 3040
+ hash: "41d6307075ec9ae9e92d227921f71289"
+ }
+ Frame {
+ msec: 3056
+ hash: "f33de23cf4a5c4881310c6866261d387"
+ }
+ Frame {
+ msec: 3072
+ hash: "441faa0a1fc95d66b27479dfc1e40188"
+ }
+ Frame {
+ msec: 3088
+ hash: "2314b5f6ba3864abd5e87bc87bd621b0"
+ }
+ Frame {
+ msec: 3104
+ hash: "e71e3b0ad953258ceef3101e38283fdb"
+ }
+ Frame {
+ msec: 3120
+ hash: "890c3b0e727f136bf1ccc486531c9677"
+ }
+ Frame {
+ msec: 3136
+ hash: "2a0d23e6dcc6475c323dbf8eb36e8094"
+ }
+ Frame {
+ msec: 3152
+ hash: "692682e82347936f87a66484b428e959"
+ }
+ Frame {
+ msec: 3168
+ hash: "cf4005c08789762ad21be1a1d78755c9"
+ }
+ Frame {
+ msec: 3184
+ hash: "566184563091626bb20ae679e3ce3b91"
+ }
+ Frame {
+ msec: 3200
+ hash: "f88a24ad3bbc2699924bb9a7ff6490b3"
+ }
+ Frame {
+ msec: 3216
+ hash: "23f3f63d07b2bdc2b82ff4e8606a634d"
+ }
+ Frame {
+ msec: 3232
+ hash: "fe121c71ce469ec6f0bf957eb2f0447b"
+ }
+ Frame {
+ msec: 3248
+ hash: "ba217690a33c701afe11842aa8105cbb"
+ }
+ Frame {
+ msec: 3264
+ hash: "e5c7c1323108f13ba26f5198cc62c137"
+ }
+ Frame {
+ msec: 3280
+ hash: "664f76d3d0008b56be2790c470befc91"
+ }
+ Frame {
+ msec: 3296
+ hash: "b3f54070ba64b983ccd2a15941ef4c35"
+ }
+ Frame {
+ msec: 3312
+ hash: "8a0ba2ae36ad3811778f3a3bc55743f5"
+ }
+ Frame {
+ msec: 3328
+ hash: "bfdc71733ca45a2ba2e8abf751554a62"
+ }
+ Frame {
+ msec: 3344
+ hash: "686e4d7bb5ae148d37fc2a1f6004a33a"
+ }
+ Frame {
+ msec: 3360
+ hash: "29c553d9fe42fdbbd019d0ead61dffa0"
+ }
+ Frame {
+ msec: 3376
+ hash: "bfa2b72c6554a2ed80a3b86f2cbed986"
+ }
+ Frame {
+ msec: 3392
+ hash: "074ff90417a947f0a04926d5675d073b"
+ }
+ Frame {
+ msec: 3408
+ hash: "6f56f9e0aa40149156ca71d6f8d4476a"
+ }
+ Frame {
+ msec: 3424
+ hash: "950ce749bbf572021de2dd1688cb87e6"
+ }
+ Frame {
+ msec: 3440
+ hash: "2d0903bd71862dc6f28bd702d955ae99"
+ }
+ Frame {
+ msec: 3456
+ hash: "2733adae56728f1b744a4086ecb98052"
+ }
+ Frame {
+ msec: 3472
+ hash: "779859d739e799bba15beeb97d18e682"
+ }
+ Frame {
+ msec: 3488
+ hash: "9074386cfabe136b8839637e5cd58f57"
+ }
+ Frame {
+ msec: 3504
+ hash: "fa5bcbf20c6ad0a218f23d98961229a1"
+ }
+ Frame {
+ msec: 3520
+ hash: "5406c94da1717eaa5eb0010564216059"
+ }
+ Frame {
+ msec: 3536
+ hash: "27d0a3c3a33c04df843bebd72ef79824"
+ }
+ Frame {
+ msec: 3552
+ hash: "270df9c99c2679071b854b3d82337f79"
+ }
+ Frame {
+ msec: 3568
+ hash: "5b3945505443a67e7a91f66fe42b4fe3"
+ }
+ Frame {
+ msec: 3584
+ hash: "9a2f8565c354cb366725368ed323ccf4"
+ }
+ Frame {
+ msec: 3600
+ hash: "6702cb7ccd61c008b511932d7bd5d107"
+ }
+ Frame {
+ msec: 3616
+ hash: "f6b86c3a1cc88357f588b6dae11aae30"
+ }
+ Frame {
+ msec: 3632
+ hash: "b10c23937f420db72af8abaf126f71c2"
+ }
+ Frame {
+ msec: 3648
+ hash: "7d6b0810ffc6e488c8168e19bccb7358"
+ }
+ Frame {
+ msec: 3664
+ hash: "c01ef69ec46391909619434e9d9dd0ce"
+ }
+ Frame {
+ msec: 3680
+ hash: "a046464fccb0c5ba1f63f8b569821a44"
+ }
+ Frame {
+ msec: 3696
+ hash: "8763c526924d882438f9aa9bfb4fe87d"
+ }
+ Frame {
+ msec: 3712
+ hash: "dede7a62d6e5c10e8f30caa075bd8dfd"
+ }
+ Frame {
+ msec: 3728
+ hash: "3b408e5c986f5bb01d8c3949876b792f"
+ }
+ Frame {
+ msec: 3744
+ hash: "0a458f3b17cdd3ea85522779c9346af9"
+ }
+ Frame {
+ msec: 3760
+ hash: "fef521f0301cce90af88d37e6d441ec8"
+ }
+ Frame {
+ msec: 3776
+ hash: "3d083e0822242b3b37c6839ca91a1f68"
+ }
+ Frame {
+ msec: 3792
+ hash: "f8fe013a717e6e61830137bdc78a8b40"
+ }
+ Frame {
+ msec: 3808
+ hash: "0ae80ad65dd194043500fa50b5a547a6"
+ }
+ Frame {
+ msec: 3824
+ hash: "a53c67fa32ef971eaea202fa5d8a6ad6"
+ }
+ Frame {
+ msec: 3840
+ image: "easefollow.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "41f86bbf0658b127f01e8d46d7ec941b"
+ }
+ Frame {
+ msec: 3872
+ hash: "d20f21df127565f9eb87c5d759a638d9"
+ }
+ Frame {
+ msec: 3888
+ hash: "85ff94f03cea3e111807e90d062c1367"
+ }
+ Frame {
+ msec: 3904
+ hash: "aa637850fe5f05a71ac4c7d31dbb36ee"
+ }
+ Frame {
+ msec: 3920
+ hash: "c86a67096c5e62bb73b785cdf6a5b6b1"
+ }
+ Frame {
+ msec: 3936
+ hash: "9d53537f2c50a0016bf7bb522b2ec3d8"
+ }
+ Frame {
+ msec: 3952
+ hash: "b48630c27c27785ddce568a85d4dc58f"
+ }
+ Frame {
+ msec: 3968
+ hash: "01c1bdb6e261cc509f26712b13eeb554"
+ }
+ Frame {
+ msec: 3984
+ hash: "af8a44284695fd999acd5944434f0372"
+ }
+ Frame {
+ msec: 4000
+ hash: "b156d9d6d5163f007ac4a309d8927ae9"
+ }
+ Frame {
+ msec: 4016
+ hash: "2df3715416c3c005f04b66fe1258c0d8"
+ }
+ Frame {
+ msec: 4032
+ hash: "96b4a7c6b8542b50fc345b54d38ec82a"
+ }
+ Frame {
+ msec: 4048
+ hash: "7e62e757fafa06833444c3a7e1d96ce4"
+ }
+ Frame {
+ msec: 4064
+ hash: "5222a8f9366c7d974d0687d05d229069"
+ }
+ Frame {
+ msec: 4080
+ hash: "ec96169f4633c3bddfd582feeb8e9ad4"
+ }
+ Frame {
+ msec: 4096
+ hash: "cb10db893d1e1cb2a370507dc5679985"
+ }
+ Frame {
+ msec: 4112
+ hash: "d7e346c2ac77796bde639bd829b72e85"
+ }
+ Frame {
+ msec: 4128
+ hash: "ba5bea8857e4fb444bedd3873563e7db"
+ }
+ Frame {
+ msec: 4144
+ hash: "05556fba5d1714f70fd6c2bfb43d213b"
+ }
+ Frame {
+ msec: 4160
+ hash: "aeeabf35f9759f045a670a9b9f90dc68"
+ }
+ Frame {
+ msec: 4176
+ hash: "131bd453f4c7726e5fdd546252700e2e"
+ }
+ Frame {
+ msec: 4192
+ hash: "7c5c3b5bb7a4082e6b9b43640e29f4e2"
+ }
+ Frame {
+ msec: 4208
+ hash: "07515e21b7a7895f333e4a8bbd2202eb"
+ }
+ Frame {
+ msec: 4224
+ hash: "6cf136f223ac6edd39ba6ed9b4445884"
+ }
+ Frame {
+ msec: 4240
+ hash: "84264f5745add8a922101735ed8def84"
+ }
+ Frame {
+ msec: 4256
+ hash: "660863d1e4b361f2e5445b417be0d2ad"
+ }
+ Frame {
+ msec: 4272
+ hash: "7ceb86f4b16546370d72164d0ca3147c"
+ }
+ Frame {
+ msec: 4288
+ hash: "a13e97da9722545ad87ac3c5eb92c497"
+ }
+ Frame {
+ msec: 4304
+ hash: "5896b5307cbd609d2062d3607786d40c"
+ }
+ Frame {
+ msec: 4320
+ hash: "c8c511115394116e4544c67f615ea5d5"
+ }
+ Frame {
+ msec: 4336
+ hash: "59ca5fdf12a735e5c292901b54acccb2"
+ }
+ Frame {
+ msec: 4352
+ hash: "155cce2738d34e0eac86f5eb63d638f0"
+ }
+ Frame {
+ msec: 4368
+ hash: "83a840c3ae7dbd9a05c17fdd8be07d7a"
+ }
+ Frame {
+ msec: 4384
+ hash: "800a15de28b14d88f0ad58fc3f4a2520"
+ }
+ Frame {
+ msec: 4400
+ hash: "c8381439a3cd3f9e7f80061023723a6e"
+ }
+ Frame {
+ msec: 4416
+ hash: "e3d63000db4b9458b202dece49d1bdba"
+ }
+ Frame {
+ msec: 4432
+ hash: "c943e56781695798f3c221f8ab09681a"
+ }
+ Frame {
+ msec: 4448
+ hash: "1137ee66d7fbf5a84c33f5ffff15b3dd"
+ }
+ Frame {
+ msec: 4464
+ hash: "5a98013cc4462aad18cad8d941f77aa0"
+ }
+ Frame {
+ msec: 4480
+ hash: "d0b3748fb49a13c0ad9a68b0e2914921"
+ }
+ Frame {
+ msec: 4496
+ hash: "12113f71f9117670acbd7877edded7e0"
+ }
+ Frame {
+ msec: 4512
+ hash: "22983424da08cdae7a9c6a8905b37736"
+ }
+ Frame {
+ msec: 4528
+ hash: "b2db5618a025cefb2650124c81880c49"
+ }
+ Frame {
+ msec: 4544
+ hash: "84fb5e7edc5b42163a83e0cd362b3a46"
+ }
+ Frame {
+ msec: 4560
+ hash: "39d6f1ed0f60a0c366c22e1442c455ac"
+ }
+ Frame {
+ msec: 4576
+ hash: "702367f6e4aaa2a862e57f9e02a08758"
+ }
+ Frame {
+ msec: 4592
+ hash: "ecc75293bc156c560d55cb7d278a4e58"
+ }
+ Frame {
+ msec: 4608
+ hash: "e68af8e97ce65376fd7904e599440c92"
+ }
+ Frame {
+ msec: 4624
+ hash: "75fe9f766d6cf636cd72d8879a461439"
+ }
+ Frame {
+ msec: 4640
+ hash: "162aef147ef4bbb0cd92bd70e4f37f62"
+ }
+ Frame {
+ msec: 4656
+ hash: "d879aae8949976c7bad4d97f1e5b5549"
+ }
+ Frame {
+ msec: 4672
+ hash: "8a983d7228190721f988de2d72cb3aa2"
+ }
+ Frame {
+ msec: 4688
+ hash: "a4f3c63fde664d128cd35b129a4f9a23"
+ }
+ Frame {
+ msec: 4704
+ hash: "115fb5f3c9b7f1c28ab379596faba91c"
+ }
+ Frame {
+ msec: 4720
+ hash: "ea9600c4d6c77a3b32e59401aa84fe96"
+ }
+ Frame {
+ msec: 4736
+ hash: "bd6531fdd9cfd46af2df73bacb31f4c5"
+ }
+ Frame {
+ msec: 4752
+ hash: "33bdcf1df50eab5e7963c649fbd32226"
+ }
+ Frame {
+ msec: 4768
+ hash: "236e88fb72369a55f9eba4b50712ae85"
+ }
+ Frame {
+ msec: 4784
+ hash: "5eb3c14a6296fb3a1c58603b2fc937c8"
+ }
+ Frame {
+ msec: 4800
+ image: "easefollow.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "31d11a1ce6422524241c77603fe53e61"
+ }
+ Frame {
+ msec: 4832
+ hash: "44e8b9947026c10b922c84883dd8e889"
+ }
+ Frame {
+ msec: 4848
+ hash: "d049e4f7c4bc1849398859a4d630c1b3"
+ }
+ Frame {
+ msec: 4864
+ hash: "e83b4757898e4eeef74be8213619fbfa"
+ }
+ Frame {
+ msec: 4880
+ hash: "d08f40615f2d5abc6236e856a67575dd"
+ }
+ Frame {
+ msec: 4896
+ hash: "d9cb26bf1b8bbafb2aed8f74bd454077"
+ }
+ Frame {
+ msec: 4912
+ hash: "aa321b94a6cc53b2ebac80e834c0a908"
+ }
+ Frame {
+ msec: 4928
+ hash: "48da37164be156b67a4b3b14e50f2375"
+ }
+ Frame {
+ msec: 4944
+ hash: "f522ce7728a4a9e7fad86c72f29bd8f9"
+ }
+ Frame {
+ msec: 4960
+ hash: "9bc1d16b4bda596702a3d8a3fad8a5c5"
+ }
+ Frame {
+ msec: 4976
+ hash: "5275dccf18745dec6c59b846de17d9ef"
+ }
+ Frame {
+ msec: 4992
+ hash: "4eb6babc177b96f69b148d52f56d82d7"
+ }
+ Frame {
+ msec: 5008
+ hash: "ccdfb454070ac04c4fe4f3513c52f8c8"
+ }
+ Frame {
+ msec: 5024
+ hash: "07f6adad6e8ff4f0eff92c758636a951"
+ }
+ Frame {
+ msec: 5040
+ hash: "241e0ad9218d49be477509e008e45548"
+ }
+ Frame {
+ msec: 5056
+ hash: "151a482e821779da8a61063f1cc73f8c"
+ }
+ Frame {
+ msec: 5072
+ hash: "1499d207c5a3a9bc7bbb84d9c5e35578"
+ }
+ Frame {
+ msec: 5088
+ hash: "c253753f653157a5058ef071f16b8bbb"
+ }
+ Frame {
+ msec: 5104
+ hash: "ec9fea5a870724a106b952edef7fb466"
+ }
+ Frame {
+ msec: 5120
+ hash: "99b673f8ed049d31a2aecabcc46d841d"
+ }
+ Frame {
+ msec: 5136
+ hash: "61e77fea693ea55aafbdc94c40c3ab33"
+ }
+ Frame {
+ msec: 5152
+ hash: "53e44a3732ee6858d5bd596b4c5d5305"
+ }
+ Frame {
+ msec: 5168
+ hash: "5b25d3894a56dc4f4a0aa8f88cb69e23"
+ }
+ Frame {
+ msec: 5184
+ hash: "5683ad02f1b9126f4e4ff6b03044fdc6"
+ }
+ Frame {
+ msec: 5200
+ hash: "0a3ec255575ec1b70e0b10cf59c7c5fd"
+ }
+ Frame {
+ msec: 5216
+ hash: "0f5f46fe3fdf42d4651891f13c8afc7e"
+ }
+ Frame {
+ msec: 5232
+ hash: "b6955407245c73e356a460d99dad77be"
+ }
+ Frame {
+ msec: 5248
+ hash: "6018b53414921943b37c33fa04a29697"
+ }
+ Frame {
+ msec: 5264
+ hash: "ff184d349ce0b648f8c1fce91ae997f6"
+ }
+ Frame {
+ msec: 5280
+ hash: "9c112a3a785d970593887eeab72fa7fe"
+ }
+ Frame {
+ msec: 5296
+ hash: "00384fb20d4c6cd6236d519d2d734cc3"
+ }
+ Frame {
+ msec: 5312
+ hash: "601ea99400e5f50ee9a5a4b74b6f3017"
+ }
+ Frame {
+ msec: 5328
+ hash: "9afed04bf7eca24d9b6d31ac84ae59c2"
+ }
+ Frame {
+ msec: 5344
+ hash: "1983319c8043bfe403513af7ccb5b924"
+ }
+ Frame {
+ msec: 5360
+ hash: "b0244e4e1b61202ede78405415c22bca"
+ }
+ Frame {
+ msec: 5376
+ hash: "ec5516b1aaeace8784b04649c51ab40b"
+ }
+ Frame {
+ msec: 5392
+ hash: "8ff7d2001594abb588f769bab15406d7"
+ }
+ Frame {
+ msec: 5408
+ hash: "64d5fd96a1726aa5276f9b508566676f"
+ }
+ Frame {
+ msec: 5424
+ hash: "ab49497a6c825038354f076bdbbbc235"
+ }
+ Frame {
+ msec: 5440
+ hash: "6b821e43be932800b20af58a7b5a1ff7"
+ }
+ Frame {
+ msec: 5456
+ hash: "683a2902300f930e2a81a82dc37c583b"
+ }
+ Frame {
+ msec: 5472
+ hash: "86d7946d7fbb66369ccbf26430939225"
+ }
+ Frame {
+ msec: 5488
+ hash: "fb38f5fb6555fc14e95a47c595a6ea0c"
+ }
+ Frame {
+ msec: 5504
+ hash: "3878f685d9fa3299e9ffe78c22595387"
+ }
+ Frame {
+ msec: 5520
+ hash: "b48840a68ff007901b02332c7177f315"
+ }
+ Frame {
+ msec: 5536
+ hash: "9d847abc99220b04aceef12e5c09aac0"
+ }
+ Frame {
+ msec: 5552
+ hash: "9893ac89fda64d96ec4140c3c87e17a5"
+ }
+ Frame {
+ msec: 5568
+ hash: "cd94e1c36e6be9877cd9c12df42bd968"
+ }
+ Frame {
+ msec: 5584
+ hash: "c1ce5e53b74af022dc103ad74ff5f1af"
+ }
+ Frame {
+ msec: 5600
+ hash: "b3630e08eac02a9578a00b01baabaaba"
+ }
+ Frame {
+ msec: 5616
+ hash: "0eb9241aa1f9526c1e24ba76d630805c"
+ }
+ Frame {
+ msec: 5632
+ hash: "1b532ae7f9253469467522d4ca66c47b"
+ }
+ Frame {
+ msec: 5648
+ hash: "7e6e49079ed6330da2e337a5e4ffd730"
+ }
+ Frame {
+ msec: 5664
+ hash: "0391d668f4b906b244a5f5c1713573c2"
+ }
+ Frame {
+ msec: 5680
+ hash: "8070fa3280d0d64bf976d4a276359c4c"
+ }
+ Frame {
+ msec: 5696
+ hash: "f7d0d36a2d40c798f56ac7ecc1effca6"
+ }
+ Frame {
+ msec: 5712
+ hash: "9f8e35ee5080e811c670c480a9c2bd9f"
+ }
+ Frame {
+ msec: 5728
+ hash: "c7fea75a43a59a11aa504df32afcdaf8"
+ }
+ Frame {
+ msec: 5744
+ hash: "7e549a93ffc6ddcc3d8111f10c05b29e"
+ }
+ Frame {
+ msec: 5760
+ image: "easefollow.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "92d298262f610a2dafa095e3d67c80af"
+ }
+ Frame {
+ msec: 5792
+ hash: "db8826b0b2feece0999863b8827a6234"
+ }
+ Frame {
+ msec: 5808
+ hash: "12c7050e8094bb39212aed0163666d1a"
+ }
+ Frame {
+ msec: 5824
+ hash: "69531beace5c749bf90160a4b25f736a"
+ }
+ Frame {
+ msec: 5840
+ hash: "ce873e4dbc8853183b54d59991b2e030"
+ }
+ Frame {
+ msec: 5856
+ hash: "fa1078973634578d69527402b11fb7e0"
+ }
+ Frame {
+ msec: 5872
+ hash: "1e3b3db590567c0afd1913101192cda9"
+ }
+ Frame {
+ msec: 5888
+ hash: "7b9e097018278b784973a546da3d401a"
+ }
+ Frame {
+ msec: 5904
+ hash: "a7b0667093888480de6697280aeea9ba"
+ }
+ Frame {
+ msec: 5920
+ hash: "e381f2422ead86575abf643b0b0c9797"
+ }
+ Frame {
+ msec: 5936
+ hash: "44b08f5a0de2a6955e02f67753f409c8"
+ }
+ Frame {
+ msec: 5952
+ hash: "db04665e58448ecc7f95baa3e4ea79a5"
+ }
+ Frame {
+ msec: 5968
+ hash: "0e4aae728d8d543538a9446c41e18e91"
+ }
+ Frame {
+ msec: 5984
+ hash: "e3cd1bbb1d9963e5c74d36e526a871b0"
+ }
+ Frame {
+ msec: 6000
+ hash: "bcd893a0e200ddda4e1468c159018865"
+ }
+ Frame {
+ msec: 6016
+ hash: "9c5293356aa6312f909e655e9bcf961b"
+ }
+ Frame {
+ msec: 6032
+ hash: "0bab7b9166f6af554d4fa0badeec739e"
+ }
+ Frame {
+ msec: 6048
+ hash: "e74996581f0aaeced118c5cbfd977d90"
+ }
+ Frame {
+ msec: 6064
+ hash: "5d128eb20a2a23da8c2d9a35293e5769"
+ }
+ Frame {
+ msec: 6080
+ hash: "ebbbc343698287faf7ffa7526a726b54"
+ }
+ Frame {
+ msec: 6096
+ hash: "d812172192cc19590f9a2d7dbf970439"
+ }
+ Frame {
+ msec: 6112
+ hash: "60263addb1b4b5ac43f8199b8ed77e40"
+ }
+ Frame {
+ msec: 6128
+ hash: "702a1ff2876eaaa59359811bb6437c5b"
+ }
+ Frame {
+ msec: 6144
+ hash: "8f81dc43decce5094ee7a089f0009730"
+ }
+ Frame {
+ msec: 6160
+ hash: "efda5dd9edd83a0da089d0b28806c6b6"
+ }
+ Frame {
+ msec: 6176
+ hash: "7274a33a7a5272d7abdaf41f4b2bf664"
+ }
+ Frame {
+ msec: 6192
+ hash: "0cc80077476e721a3da85c17cc56a65e"
+ }
+ Frame {
+ msec: 6208
+ hash: "e65a534f0e7e70520a9c2cfa09ee8159"
+ }
+ Frame {
+ msec: 6224
+ hash: "b05b514c63bd8998785382e6a9cbd849"
+ }
+ Frame {
+ msec: 6240
+ hash: "10a04d641e0cc65c120d8bcf2f3e54c8"
+ }
+ Frame {
+ msec: 6256
+ hash: "68418e2206a496dd15a05b50fec6f87e"
+ }
+ Frame {
+ msec: 6272
+ hash: "6549e0989e1c86e3a7eb0dcc8dd31380"
+ }
+ Frame {
+ msec: 6288
+ hash: "bd0193c2cbc8958f674f4ec52a693b72"
+ }
+ Frame {
+ msec: 6304
+ hash: "746440b45a3688dbd32b34c57454e956"
+ }
+ Frame {
+ msec: 6320
+ hash: "6b54ee8af30be2178e8b3afab5dcb4c7"
+ }
+ Frame {
+ msec: 6336
+ hash: "ba2fbad3fe2fe25ec0c0c542659168dc"
+ }
+ Frame {
+ msec: 6352
+ hash: "84bd72703bd8200f8f090783d06ae451"
+ }
+ Frame {
+ msec: 6368
+ hash: "17c9fb063280c2ee4cb4a13273bbb199"
+ }
+ Frame {
+ msec: 6384
+ hash: "df28fd55719f5c2d164596d02c2faff2"
+ }
+ Frame {
+ msec: 6400
+ hash: "c2e280e78e892200d40022d17ce695b7"
+ }
+ Frame {
+ msec: 6416
+ hash: "c657caa0c5158e178ec5df80bbad6bcb"
+ }
+ Frame {
+ msec: 6432
+ hash: "d91f4f6ec6503fe8280f9b02dd11e64a"
+ }
+ Frame {
+ msec: 6448
+ hash: "0fb9400cdca9dbd4035fbf8af9952360"
+ }
+ Frame {
+ msec: 6464
+ hash: "cac0e1b4aa094306b95f90ede4705391"
+ }
+ Frame {
+ msec: 6480
+ hash: "e60a4bb14300a937a767effee931c60f"
+ }
+ Frame {
+ msec: 6496
+ hash: "8b461397e3f210ee7e9305dcab2af2db"
+ }
+ Frame {
+ msec: 6512
+ hash: "6ce9ec0942dd06c9f73929a7e176852c"
+ }
+ Frame {
+ msec: 6528
+ hash: "da36e254635eea854a6552ba008117f9"
+ }
+ Frame {
+ msec: 6544
+ hash: "0bec6402b5eb09d05ce8e9ff5253ea8d"
+ }
+ Frame {
+ msec: 6560
+ hash: "72f6610527d395ca590eda166ef6bc4e"
+ }
+ Frame {
+ msec: 6576
+ hash: "622ae3fd47adb2432e2a40d3c5539393"
+ }
+ Frame {
+ msec: 6592
+ hash: "0b18c49e2bbf9370216e06b555faf183"
+ }
+ Frame {
+ msec: 6608
+ hash: "0c090bb975fb883301b52479fd6f5fdf"
+ }
+ Frame {
+ msec: 6624
+ hash: "c4205d7ecb7327426d9591e77247acab"
+ }
+ Frame {
+ msec: 6640
+ hash: "f0e0075243e4b8aa97056248fe6033ed"
+ }
+ Frame {
+ msec: 6656
+ hash: "47f99b40a8764ee9d9e429061fb7acb2"
+ }
+ Frame {
+ msec: 6672
+ hash: "49e8c1e974b0716570d85109b53817a5"
+ }
+ Frame {
+ msec: 6688
+ hash: "72f981bad831b6ed858009527902f734"
+ }
+ Frame {
+ msec: 6704
+ hash: "e959a0493b06369a429f90f66cb65977"
+ }
+ Frame {
+ msec: 6720
+ image: "easefollow.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "93470d983282f24425558f47ad705154"
+ }
+ Frame {
+ msec: 6752
+ hash: "cdccbe1a7c7abd4a6a6ee754ed0c9759"
+ }
+ Frame {
+ msec: 6768
+ hash: "0e1b7b5332a9fcdb492db5314a2a0267"
+ }
+ Frame {
+ msec: 6784
+ hash: "1e1ffe3439aab51d0b325474e7d8dc28"
+ }
+ Frame {
+ msec: 6800
+ hash: "e8e7e9b5871caf77f15678616d6c9c8a"
+ }
+ Frame {
+ msec: 6816
+ hash: "9771fff3b7752154d093c038bea73d28"
+ }
+ Frame {
+ msec: 6832
+ hash: "1af851ea214cbddb0e3a743084a5cf6b"
+ }
+ Frame {
+ msec: 6848
+ hash: "1566182a7e29bbb738705a90c4909617"
+ }
+ Frame {
+ msec: 6864
+ hash: "feed650e1d948fe622234d212fb745f2"
+ }
+ Frame {
+ msec: 6880
+ hash: "3cd3d063275b91f9680717421c118ba4"
+ }
+ Frame {
+ msec: 6896
+ hash: "c1f088801334762cd499e7cc70e1e59a"
+ }
+ Frame {
+ msec: 6912
+ hash: "e8f8d153e7a027a5092a9209411d97f7"
+ }
+ Frame {
+ msec: 6928
+ hash: "f11747c3533b4b2fc77a64ca0cace8b0"
+ }
+ Frame {
+ msec: 6944
+ hash: "21618c67a2a8bbce86fc872060ad40e8"
+ }
+ Frame {
+ msec: 6960
+ hash: "02da96335db74b87ceefe91b1dfe72e6"
+ }
+ Frame {
+ msec: 6976
+ hash: "2b2e4143143ead8dea5865fd782f1775"
+ }
+ Frame {
+ msec: 6992
+ hash: "13e710900b05e26cdb030b1e2b2be715"
+ }
+ Frame {
+ msec: 7008
+ hash: "29e8995d17aac4d02034debcbb9fcb98"
+ }
+ Frame {
+ msec: 7024
+ hash: "1099db1b3e4c69e84c6ab1b7c311bf1e"
+ }
+ Frame {
+ msec: 7040
+ hash: "cc7cb720043334f1eeb385dce4389dc2"
+ }
+ Frame {
+ msec: 7056
+ hash: "34c7a62c1bc7261e2fd31c40068b37a7"
+ }
+ Frame {
+ msec: 7072
+ hash: "7fafbe05cbcaa21893e3aa0f1fcfb5a0"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7088
+ hash: "5b26c8cf047706633795a8ed3e703a89"
+ }
+ Frame {
+ msec: 7104
+ hash: "e0774bf9e74d0cde81c5cb216a9258fc"
+ }
+ Frame {
+ msec: 7120
+ hash: "0870262f643245e13f4fba79fd575897"
+ }
+ Frame {
+ msec: 7136
+ hash: "8faf0d050bb435ade8af5012c1a6b0dc"
+ }
+ Frame {
+ msec: 7152
+ hash: "382c037895cc39a6870db57b5016c01f"
+ }
+ Frame {
+ msec: 7168
+ hash: "f1f5a2cbc103ab1bee9f537fa8266e03"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmleasefollow/easefollow.qml b/tests/auto/declarative/visual/qmleasefollow/easefollow.qml
new file mode 100644
index 0000000..d0fac42
--- /dev/null
+++ b/tests/auto/declarative/visual/qmleasefollow/easefollow.qml
@@ -0,0 +1,40 @@
+import Qt 4.6
+
+Rectangle {
+ width: 800; height: 240; color: "gray"
+
+ Rectangle {
+ id: rect
+ width: 50; height: 20; y: 30; color: "black"
+ x: SequentialAnimation {
+ running: true; repeat: true
+ NumberAnimation { from: 50; to: 700; duration: 2000 }
+ NumberAnimation { from: 700; to: 50; duration: 2000 }
+ }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 60; color: "red"
+ x: EaseFollow { source: rect.x; velocity: 400 }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 90; color: "yellow"
+ x: EaseFollow { source: rect.x; velocity: 300; reversingMode: EaseFollow.Immediate }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 120; color: "green"
+ x: EaseFollow { source: rect.x; reversingMode: EaseFollow.Sync }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 150; color: "purple"
+ x: EaseFollow { source: rect.x; maximumEasingTime: 200 }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 180; color: "blue"
+ x: EaseFollow { source: rect.x; duration: 300 }
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.0.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.0.png
new file mode 100644
index 0000000..6c82777
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.1.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.1.png
new file mode 100644
index 0000000..07b1f7c
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.2.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.2.png
new file mode 100644
index 0000000..f2f08c0
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.3.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.3.png
new file mode 100644
index 0000000..08649f9
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.4.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.4.png
new file mode 100644
index 0000000..f9c2f17
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.5.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.5.png
new file mode 100644
index 0000000..52ec0bd
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.6.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.6.png
new file mode 100644
index 0000000..3fe25be
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.7.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.7.png
new file mode 100644
index 0000000..4cc12a6
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.8.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.8.png
new file mode 100644
index 0000000..2267f23
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.9.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.9.png
new file mode 100644
index 0000000..6c82777
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.qml b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.qml
new file mode 100644
index 0000000..c7ac52d
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview.qml
@@ -0,0 +1,2859 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 32
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 48
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 64
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 80
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 96
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 112
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 128
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 144
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 160
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 176
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 192
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 208
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 224
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 240
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 256
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 272
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 288
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 304
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 320
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 336
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 352
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 368
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 384
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 400
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 416
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Frame {
+ msec: 432
+ hash: "c33447c78ea64452ec3cd1696fb502eb"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 448
+ hash: "96ad89eafa7f99269518a192573af91b"
+ }
+ Frame {
+ msec: 464
+ hash: "735b00b968d0e2ea1f34cc0bdc028a8e"
+ }
+ Frame {
+ msec: 480
+ hash: "ce37c8e15fbb1aea72aff9629683fa96"
+ }
+ Frame {
+ msec: 496
+ hash: "a3f2471ef4ceac77a1c20ac327550d8d"
+ }
+ Frame {
+ msec: 512
+ hash: "28f120bd3bda9552dbc8cc908409c67d"
+ }
+ Frame {
+ msec: 528
+ hash: "f21cf0ed746fa48e67dc90c70c5bbae8"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 544
+ hash: "485d55730366b68e01582879f6970fa1"
+ }
+ Frame {
+ msec: 560
+ hash: "700e53c78b28993dce5dafb4035f4760"
+ }
+ Frame {
+ msec: 576
+ hash: "1e538e175a5e402e2334cf354392e8a7"
+ }
+ Frame {
+ msec: 592
+ hash: "0fbfba93eebaf05ae60067b365b6b4bc"
+ }
+ Frame {
+ msec: 608
+ hash: "7b1893397b76b0c95094eeca1dd21446"
+ }
+ Frame {
+ msec: 624
+ hash: "7b1893397b76b0c95094eeca1dd21446"
+ }
+ Frame {
+ msec: 640
+ hash: "7b1893397b76b0c95094eeca1dd21446"
+ }
+ Frame {
+ msec: 656
+ hash: "7b1893397b76b0c95094eeca1dd21446"
+ }
+ Frame {
+ msec: 672
+ hash: "7b1893397b76b0c95094eeca1dd21446"
+ }
+ Frame {
+ msec: 688
+ hash: "7b1893397b76b0c95094eeca1dd21446"
+ }
+ Frame {
+ msec: 704
+ hash: "7b1893397b76b0c95094eeca1dd21446"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 720
+ hash: "25e48099a8194ed2674651818d854c61"
+ }
+ Frame {
+ msec: 736
+ hash: "b75d02dfc238ba2292306ca1421279c3"
+ }
+ Frame {
+ msec: 752
+ hash: "7e48b7d9c1291b4e438c81f44228d8ad"
+ }
+ Frame {
+ msec: 768
+ hash: "fe4b009abe081a6eaeab6ef9e996f3fd"
+ }
+ Frame {
+ msec: 784
+ hash: "edea8c305fe88708dbafc03e427caa09"
+ }
+ Frame {
+ msec: 800
+ hash: "7b58803f12d0ab893acf539799d79e31"
+ }
+ Frame {
+ msec: 816
+ hash: "9b56c3d1d140114dcc57d0a8568e9b95"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 832
+ hash: "35e38e273dbc8e565917b21d00fc1530"
+ }
+ Frame {
+ msec: 848
+ hash: "116e294391333e8780daeca54c3d51ea"
+ }
+ Frame {
+ msec: 864
+ hash: "6219676215f82540d7a53b2a8aa60279"
+ }
+ Frame {
+ msec: 880
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 896
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 912
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 928
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 944
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 960
+ image: "gridview.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 992
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1008
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1024
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1040
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1056
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1072
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1088
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1104
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1120
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1136
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 1152
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1168
+ hash: "2667c2596de97dc15353158eba03495f"
+ }
+ Frame {
+ msec: 1184
+ hash: "6a7b64e1427dcb7e438aa09a739cbc7b"
+ }
+ Frame {
+ msec: 1200
+ hash: "5bad6dc745958f5827403ea593c78752"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1216
+ hash: "b393401219ada7d094a451dba8af3f1a"
+ }
+ Frame {
+ msec: 1232
+ hash: "ba656452f8adf3d1ca7db9286274c37f"
+ }
+ Frame {
+ msec: 1248
+ hash: "1e9725c8c364a491f34035fad1f77c63"
+ }
+ Frame {
+ msec: 1264
+ hash: "a0aef0b65446dec0673b5cec3a260390"
+ }
+ Frame {
+ msec: 1280
+ hash: "d60c11a5d376af0831d6f05f2a839a92"
+ }
+ Frame {
+ msec: 1296
+ hash: "1dd2c456c6ee9cc8f9be0e9f3617d44b"
+ }
+ Frame {
+ msec: 1312
+ hash: "56208e6551e2f4202bab2d62a1cf46a2"
+ }
+ Frame {
+ msec: 1328
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1344
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1360
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1376
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1392
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1408
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1424
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1440
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1456
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1472
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1488
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1504
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1520
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1536
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1552
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1568
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1584
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1600
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1616
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1632
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Frame {
+ msec: 1648
+ hash: "caa3c1a106d549e6bb94a1746bd7a53c"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1664
+ hash: "f0f00d22d15ed9828db7b5f3a3669fe9"
+ }
+ Frame {
+ msec: 1680
+ hash: "153e7984089530bbd052c9e4f62eb14c"
+ }
+ Frame {
+ msec: 1696
+ hash: "0525d40cc58d054a3abd7ee2486576f8"
+ }
+ Frame {
+ msec: 1712
+ hash: "8c23d5245774ab5252c98c19c33f8171"
+ }
+ Frame {
+ msec: 1728
+ hash: "5ca243794d1350f04cf973d4bfc8ab89"
+ }
+ Frame {
+ msec: 1744
+ hash: "d19b7f4c0897aba498e122d83b4cbbf1"
+ }
+ Frame {
+ msec: 1760
+ hash: "99e41460dd8efc6e5c3faf54b14c3d43"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1776
+ hash: "703469f8b133156ed3aabe02762d66c3"
+ }
+ Frame {
+ msec: 1792
+ hash: "1cc2c383e988048db76a80d8d7f5a0e2"
+ }
+ Frame {
+ msec: 1808
+ hash: "8e87117c19eb9d6e600c44e0f3869ae1"
+ }
+ Frame {
+ msec: 1824
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1840
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1856
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1872
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1888
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1904
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1920
+ image: "gridview.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1952
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1968
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Frame {
+ msec: 1984
+ hash: "8304d2432168a2ea8a887d9a135b40b4"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2000
+ hash: "4924037ce643d0748b8b2c666e61fd62"
+ }
+ Frame {
+ msec: 2016
+ hash: "ef9750584e669a8b2d415d13854e12a6"
+ }
+ Frame {
+ msec: 2032
+ hash: "69937eacef6e6b11ad1d5741c69a1faa"
+ }
+ Frame {
+ msec: 2048
+ hash: "a1bd870fffd95a0604dd8e170e571632"
+ }
+ Frame {
+ msec: 2064
+ hash: "a3a72386594aacc88977cdaa6441df48"
+ }
+ Frame {
+ msec: 2080
+ hash: "6d8e89de38d52f0f0f871dfa18361cb5"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2096
+ hash: "96cfb1eb6893fac86c9434d1ffb82fcb"
+ }
+ Frame {
+ msec: 2112
+ hash: "5e11df1660634ff317be474118174ec5"
+ }
+ Frame {
+ msec: 2128
+ hash: "2eb75858b50c3a9a80673ab89014ed63"
+ }
+ Frame {
+ msec: 2144
+ hash: "3ff5d66f7902af92d49ebebf04d16c26"
+ }
+ Frame {
+ msec: 2160
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2176
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2192
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2208
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2224
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2240
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2256
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2272
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2288
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2304
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2320
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Frame {
+ msec: 2336
+ hash: "570da61e2d48acd11474fe005110ab4b"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2352
+ hash: "efeda5b2d97e1b7c22e2308250501cb7"
+ }
+ Frame {
+ msec: 2368
+ hash: "d6158379b699279f66b94a8418e53af1"
+ }
+ Frame {
+ msec: 2384
+ hash: "ab960b0669fa594e0552df623a9136ea"
+ }
+ Frame {
+ msec: 2400
+ hash: "0ebf6be1305ee1eb8740f4d0365ef4c5"
+ }
+ Frame {
+ msec: 2416
+ hash: "46cde47dffc6f2687c8c643eca09b95d"
+ }
+ Frame {
+ msec: 2432
+ hash: "2b8698ce02a6964115d960ae19f40c37"
+ }
+ Frame {
+ msec: 2448
+ hash: "ff1e7d800bb27b41710c50554adc1091"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2464
+ hash: "5837b3aca09038cae23dcb149acc8b0b"
+ }
+ Frame {
+ msec: 2480
+ hash: "dbe7c571cdbdb9de4fd01faa6d5374cf"
+ }
+ Frame {
+ msec: 2496
+ hash: "f431abcaf05f49ead909296d7649f8a9"
+ }
+ Frame {
+ msec: 2512
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2528
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2544
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2560
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2576
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2592
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2608
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2624
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2640
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2656
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2672
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2688
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2704
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2720
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2736
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2752
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2768
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Frame {
+ msec: 2784
+ hash: "043583b19c921740dbc990afd4f508ed"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2800
+ hash: "4f2fafdb59db544352e3067d67c0a714"
+ }
+ Frame {
+ msec: 2816
+ hash: "4dcd4cdf6f4e305732185ec52cd2f2f6"
+ }
+ Frame {
+ msec: 2832
+ hash: "dfd3c29b0520edbbee57dfacfa7e2b30"
+ }
+ Frame {
+ msec: 2848
+ hash: "257d3d8bcf78671d35a898befec091cb"
+ }
+ Frame {
+ msec: 2864
+ hash: "20e89c544284603943396694abe86756"
+ }
+ Frame {
+ msec: 2880
+ image: "gridview.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "b88c6af89423b32b3a4413035711df03"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2912
+ hash: "e34de13af44c449c9ecc86e06ce01ed2"
+ }
+ Frame {
+ msec: 2928
+ hash: "98ffe81129aa7cc7325764221f1dae59"
+ }
+ Frame {
+ msec: 2944
+ hash: "db2d545de9879362738e71a02a3d1d26"
+ }
+ Frame {
+ msec: 2960
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 2976
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 2992
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 3008
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 3024
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 3040
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 3056
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 3072
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 3088
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Frame {
+ msec: 3104
+ hash: "e67ae32a47213b360c1a445bf645dde2"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3120
+ hash: "02d8c90faf56c65252e4f938944bda7b"
+ }
+ Frame {
+ msec: 3136
+ hash: "a32994e2320e357241f63b956b6db236"
+ }
+ Frame {
+ msec: 3152
+ hash: "9ada466c26c217adbcd7a93df264ed75"
+ }
+ Frame {
+ msec: 3168
+ hash: "79d1a3489be95d113e8c611a2ba63456"
+ }
+ Frame {
+ msec: 3184
+ hash: "d3aa82455c4ae3ac25097354e132a30f"
+ }
+ Frame {
+ msec: 3200
+ hash: "62d12e5933ed4ed048ccafd229f4b2b7"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3216
+ hash: "5bc4ac94ae20e425084d0811dee1ba08"
+ }
+ Frame {
+ msec: 3232
+ hash: "6d5113e3732dc7a9172eea3667a01f7b"
+ }
+ Frame {
+ msec: 3248
+ hash: "e435a2588b25d3336f290331931f5981"
+ }
+ Frame {
+ msec: 3264
+ hash: "bce201adbeb319b181cce139f179d7f0"
+ }
+ Frame {
+ msec: 3280
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3296
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3312
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3328
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3344
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3360
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3376
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3392
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3408
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3424
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3440
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Frame {
+ msec: 3456
+ hash: "5fa3ec31176bed2de8cb076b87e0be74"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3472
+ hash: "8f0f3cd35ae92047f23084f447046eb8"
+ }
+ Frame {
+ msec: 3488
+ hash: "ceb12e6c5e9f0566039040d9f3ff587f"
+ }
+ Frame {
+ msec: 3504
+ hash: "dfd0c89c3ea73aceefcdafa71609c720"
+ }
+ Frame {
+ msec: 3520
+ hash: "8d8ed1a9dc6a9f74dfc81b79f02af4c5"
+ }
+ Frame {
+ msec: 3536
+ hash: "d450bd62e03e1e4c7cb66e98ece05f97"
+ }
+ Frame {
+ msec: 3552
+ hash: "d1ece2210cd24eedd5361e5c3a162236"
+ }
+ Frame {
+ msec: 3568
+ hash: "77589e48b9db95e702055753046319e5"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3584
+ hash: "7793263ecb831a1e63fbd76c8addde03"
+ }
+ Frame {
+ msec: 3600
+ hash: "bfa9675f981c37fed27dea100226f61a"
+ }
+ Frame {
+ msec: 3616
+ hash: "9780849fe8abd22c32ccafcdd46b0d65"
+ }
+ Frame {
+ msec: 3632
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3648
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3664
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3680
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3696
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3712
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3728
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3744
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3760
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3776
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3792
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3808
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3824
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3840
+ image: "gridview.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3872
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3888
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3904
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Frame {
+ msec: 3920
+ hash: "e63d987ba303a42046827f14941b444a"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3936
+ hash: "a61dbcb7d914afe34009085bf37fb8e2"
+ }
+ Frame {
+ msec: 3952
+ hash: "89175b83b4f7ee4b5d99219cdc97aa59"
+ }
+ Frame {
+ msec: 3968
+ hash: "f524421286503f6175e4ad71dd89145f"
+ }
+ Frame {
+ msec: 3984
+ hash: "ca5af7d98a008eccba1e21be0da61f3c"
+ }
+ Frame {
+ msec: 4000
+ hash: "77c19e7e17e00787ff0d7a4e7bad7bc8"
+ }
+ Frame {
+ msec: 4016
+ hash: "04c8db761e324101ad92e0ac9ceed7d4"
+ }
+ Frame {
+ msec: 4032
+ hash: "97a3dcb81349efab6b44d458e83ce5c4"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4048
+ hash: "e86ebc276b88705c97cc9efb66ccc6b2"
+ }
+ Frame {
+ msec: 4064
+ hash: "a134bbfd14879f13b288a04d23382348"
+ }
+ Frame {
+ msec: 4080
+ hash: "9530ad3f58ad1c66401572869f7d91bc"
+ }
+ Frame {
+ msec: 4096
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Frame {
+ msec: 4112
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Frame {
+ msec: 4128
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Frame {
+ msec: 4144
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Frame {
+ msec: 4160
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Frame {
+ msec: 4176
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Frame {
+ msec: 4192
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Frame {
+ msec: 4208
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Frame {
+ msec: 4224
+ hash: "db3d030de94b19ea1db5c60be7c7ca5c"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4240
+ hash: "980e0fa84fd3bab496623936f5f220a2"
+ }
+ Frame {
+ msec: 4256
+ hash: "ed3268911723d664699bbc31317befc1"
+ }
+ Frame {
+ msec: 4272
+ hash: "3bfda4b3b0b2d2a97ec1c0b5b3f4da63"
+ }
+ Frame {
+ msec: 4288
+ hash: "1616c6def28659d51905564ff83cc112"
+ }
+ Frame {
+ msec: 4304
+ hash: "68342f34c18956d3a093f8eeeae6977e"
+ }
+ Frame {
+ msec: 4320
+ hash: "ac1b12959e9055a28fe2bda0a12b75bc"
+ }
+ Frame {
+ msec: 4336
+ hash: "009b85ff6b86e418c78ed33a5e88d3f1"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4352
+ hash: "59753bc7dc69767fe2109fdc41f20dae"
+ }
+ Frame {
+ msec: 4368
+ hash: "1c87d3d8c8d564d4d95a26f57fd28f38"
+ }
+ Frame {
+ msec: 4384
+ hash: "4e43b7b6787002c9013010dd74c83f49"
+ }
+ Frame {
+ msec: 4400
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4416
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4432
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4448
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4464
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4480
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4496
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4512
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4528
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4544
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4560
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4576
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Frame {
+ msec: 4592
+ hash: "2476aa1a7191b485a76c76e98c9be2b0"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4608
+ hash: "84de5b5e8b0fba190a783c72967661c7"
+ }
+ Frame {
+ msec: 4624
+ hash: "60b696f4913379d28f300fd1b531c6cb"
+ }
+ Frame {
+ msec: 4640
+ hash: "d01e651d9094332fd82ad1cea3e93e9d"
+ }
+ Frame {
+ msec: 4656
+ hash: "87be4cd7c894b03b2b64c996e915d71f"
+ }
+ Frame {
+ msec: 4672
+ hash: "b07fccb0c5565d2feed5a9fcdf8acead"
+ }
+ Frame {
+ msec: 4688
+ hash: "3dca3165fd34be549d21fb6c414c67d8"
+ }
+ Frame {
+ msec: 4704
+ hash: "5f69f3298f8ca73fa9b3b6e630c60186"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4720
+ hash: "d7f41e9a29d550a7d9a41bb947569abe"
+ }
+ Frame {
+ msec: 4736
+ hash: "4ede2e90ad216a2d44580c50a25dea23"
+ }
+ Frame {
+ msec: 4752
+ hash: "9b339845ee588b789dc9095c272e0bdf"
+ }
+ Frame {
+ msec: 4768
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4784
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4800
+ image: "gridview.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4832
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4848
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4864
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4880
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4896
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4912
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4928
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4944
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4960
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4976
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 4992
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5008
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5024
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5040
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5056
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5072
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5088
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5104
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5120
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5136
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Frame {
+ msec: 5152
+ hash: "9cdea4790972efaecabd52b435107e69"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5168
+ hash: "d6f0a6d7604bad811eeba13fd7c45368"
+ }
+ Frame {
+ msec: 5184
+ hash: "5f92e1531a3f6c21ec82e3c908167fc7"
+ }
+ Frame {
+ msec: 5200
+ hash: "5214e99ff052dcdc8f85bad29de92e03"
+ }
+ Frame {
+ msec: 5216
+ hash: "d4abed9f0f1115c9a45b0b9b4f54754e"
+ }
+ Frame {
+ msec: 5232
+ hash: "cfae8a0281e704b0e62f6bf31b32800f"
+ }
+ Frame {
+ msec: 5248
+ hash: "c203f0674596ae690bf19f2d49be62ac"
+ }
+ Frame {
+ msec: 5264
+ hash: "2e2c7e05aade104bdc4f6c489b6f0601"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5280
+ hash: "b4b2148b0557dcab3a441165e5e4de5f"
+ }
+ Frame {
+ msec: 5296
+ hash: "c5e791d27a42a63d25cdbd492b4af29a"
+ }
+ Frame {
+ msec: 5312
+ hash: "0f94ebcb407f8e6ae263bd954f2c8177"
+ }
+ Frame {
+ msec: 5328
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Frame {
+ msec: 5344
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Frame {
+ msec: 5360
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Frame {
+ msec: 5376
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Frame {
+ msec: 5392
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Frame {
+ msec: 5408
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Frame {
+ msec: 5424
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Frame {
+ msec: 5440
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Frame {
+ msec: 5456
+ hash: "d9b56b817a411812789881697a28fe4c"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5472
+ hash: "6fdfe69e377da72e04dc130f5677ed2c"
+ }
+ Frame {
+ msec: 5488
+ hash: "c041d26d43766fa1735f2ada2a43225b"
+ }
+ Frame {
+ msec: 5504
+ hash: "aa62dbd6c6256665ee1b4ef468607978"
+ }
+ Frame {
+ msec: 5520
+ hash: "987fcdf6483a83b1242053f4e7fb7a26"
+ }
+ Frame {
+ msec: 5536
+ hash: "fbde70c34709b68eb22f5460a8815fba"
+ }
+ Frame {
+ msec: 5552
+ hash: "911ddc838ebaf5ade1bb026dff2741ba"
+ }
+ Frame {
+ msec: 5568
+ hash: "120bbf35b2a3b756bdeaea0df43e49b2"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5584
+ hash: "ea93e33c079d6dc5fb18c69fb4fed441"
+ }
+ Frame {
+ msec: 5600
+ hash: "b9ac8ab01cb59b1fee11967bdb6d2dd6"
+ }
+ Frame {
+ msec: 5616
+ hash: "3ff266bf29cbcaa30bc1e7af5dd9866b"
+ }
+ Frame {
+ msec: 5632
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5648
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5664
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5680
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5696
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5712
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5728
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5744
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5760
+ image: "gridview.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5792
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Frame {
+ msec: 5808
+ hash: "edd6c3a9493a63674e2d7af5f3e8467e"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5824
+ hash: "de1f83d25751639dff42f1755a6534c3"
+ }
+ Frame {
+ msec: 5840
+ hash: "edefdea8b2461d03fb97cf5ed66e9b6d"
+ }
+ Frame {
+ msec: 5856
+ hash: "cef1886397e3932a511f37571b5011f4"
+ }
+ Frame {
+ msec: 5872
+ hash: "05589ad354314d9e04ef90c1addd99f5"
+ }
+ Frame {
+ msec: 5888
+ hash: "ff88b52e3755b9b4785d2719ddd4f090"
+ }
+ Frame {
+ msec: 5904
+ hash: "f59edc3016b177a2e8faa6612d718b17"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5920
+ hash: "dc673a7cdd927f70b28ebcfe51cd3d89"
+ }
+ Frame {
+ msec: 5936
+ hash: "3abec0da85fb663e63ab22188e092827"
+ }
+ Frame {
+ msec: 5952
+ hash: "50c2c8ac68cafad7c47b576cd8f4a037"
+ }
+ Frame {
+ msec: 5968
+ hash: "06c31b861e2b96e6595b2244d7b3f4d5"
+ }
+ Frame {
+ msec: 5984
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6000
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6016
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6032
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6048
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6064
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6080
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6096
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6112
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6128
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6144
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6160
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6176
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6192
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6208
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6224
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6240
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6256
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6272
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6288
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6304
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6320
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6336
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6352
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6368
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6384
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6400
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Frame {
+ msec: 6416
+ hash: "0aa7ce5ba9c875619a6e4629a0eb4065"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6432
+ hash: "7f52a770775c19e10784b4c5f7874210"
+ }
+ Frame {
+ msec: 6448
+ hash: "827cfb74286a2a80aca8b6c5277d6cfd"
+ }
+ Frame {
+ msec: 6464
+ hash: "8399231eda9b66821d43a3d8c4c7d645"
+ }
+ Frame {
+ msec: 6480
+ hash: "fc163583671f3c4023361460b436c895"
+ }
+ Frame {
+ msec: 6496
+ hash: "893dea6496c95c32095ad1d673e500c2"
+ }
+ Frame {
+ msec: 6512
+ hash: "808c7403b2cdcc882059da56a2f806fe"
+ }
+ Frame {
+ msec: 6528
+ hash: "7466b2e5b86ba8ad46be75818659786c"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6544
+ hash: "dd2561cd780e24401130305d47757a53"
+ }
+ Frame {
+ msec: 6560
+ hash: "bee89299532d43fc3e6c3e69c343b381"
+ }
+ Frame {
+ msec: 6576
+ hash: "94f8474aedee94098592c05d8fc7d868"
+ }
+ Frame {
+ msec: 6592
+ hash: "b6ee51bfa4d4ab7a83cca5c18453f0b8"
+ }
+ Frame {
+ msec: 6608
+ hash: "b6ee51bfa4d4ab7a83cca5c18453f0b8"
+ }
+ Frame {
+ msec: 6624
+ hash: "b6ee51bfa4d4ab7a83cca5c18453f0b8"
+ }
+ Frame {
+ msec: 6640
+ hash: "b6ee51bfa4d4ab7a83cca5c18453f0b8"
+ }
+ Frame {
+ msec: 6656
+ hash: "b6ee51bfa4d4ab7a83cca5c18453f0b8"
+ }
+ Frame {
+ msec: 6672
+ hash: "b6ee51bfa4d4ab7a83cca5c18453f0b8"
+ }
+ Frame {
+ msec: 6688
+ hash: "b6ee51bfa4d4ab7a83cca5c18453f0b8"
+ }
+ Frame {
+ msec: 6704
+ hash: "b6ee51bfa4d4ab7a83cca5c18453f0b8"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6720
+ image: "gridview.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "ccd58be20d47422121d6ef799b927a7a"
+ }
+ Frame {
+ msec: 6752
+ hash: "e090c7f39649786a1796870e25bd0f0d"
+ }
+ Frame {
+ msec: 6768
+ hash: "acf3dcd9f4a869169dbc1ae7fe60e9d0"
+ }
+ Frame {
+ msec: 6784
+ hash: "51795e9a720845e8305d23507785e1ca"
+ }
+ Frame {
+ msec: 6800
+ hash: "0d34a43e177e6b73e2ff9155747d0385"
+ }
+ Frame {
+ msec: 6816
+ hash: "1876c3cdffc1af01da1aaa0ac636d0a8"
+ }
+ Frame {
+ msec: 6832
+ hash: "3131296b6edf4190520e2cdb3f8b936e"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6848
+ hash: "ee92f0a764e5081b130e205a5c362b07"
+ }
+ Frame {
+ msec: 6864
+ hash: "8737ea2c60aeb215228c00a7fddd1baa"
+ }
+ Frame {
+ msec: 6880
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 6896
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 6912
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 6928
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 6944
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 6960
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 6976
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 6992
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7008
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7024
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7040
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7056
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7072
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7088
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7104
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7120
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7136
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7152
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7168
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7184
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7200
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7216
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7232
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7248
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7264
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7280
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7296
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7312
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7328
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7344
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7360
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7376
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7392
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7408
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7424
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7440
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7456
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7472
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7488
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7504
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7520
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7536
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7552
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7568
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7584
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Key {
+ type: 6
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7600
+ hash: "ac036f1f5c5ae23ddfca3060dff83f15"
+ }
+ Frame {
+ msec: 7616
+ hash: "eb0d1be15f63af6eaf6634b02e5f240a"
+ }
+ Frame {
+ msec: 7632
+ hash: "2423c305bebb3449e87c78e8fb447c88"
+ }
+ Frame {
+ msec: 7648
+ hash: "f0ede6ea85647728db80878b3e525edc"
+ }
+ Frame {
+ msec: 7664
+ hash: "387d127b2b000dc344ee4768cf2d29b2"
+ }
+ Frame {
+ msec: 7680
+ image: "gridview.7.png"
+ }
+ Frame {
+ msec: 7696
+ hash: "1d0d8100e994c16d7973ad9a97b0068f"
+ }
+ Key {
+ type: 7
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7712
+ hash: "95fb4a6d0331ffc4773e39ec8c3e6511"
+ }
+ Frame {
+ msec: 7728
+ hash: "34738f16150228d971972833d4bd5c8f"
+ }
+ Frame {
+ msec: 7744
+ hash: "9b71c8dacc530f32d7c6f409928caf5c"
+ }
+ Frame {
+ msec: 7760
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7776
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7792
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7808
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7824
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7840
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7856
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7872
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7888
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7904
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7920
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7936
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7952
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 7968
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Key {
+ type: 6
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7984
+ hash: "831efd0970c5c29fbe10b3be7707f915"
+ }
+ Frame {
+ msec: 8000
+ hash: "0587fc809c38c3bbe1fbac2960596974"
+ }
+ Frame {
+ msec: 8016
+ hash: "d20eba806cf4730a850db4c095fa36f9"
+ }
+ Key {
+ type: 7
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 8032
+ hash: "c1663e75ba05b341e1e970a451958ea0"
+ }
+ Frame {
+ msec: 8048
+ hash: "ea40cc33b689d6b42fc5a69fa30178e4"
+ }
+ Frame {
+ msec: 8064
+ hash: "a07a1c61de1813158ff743cd326ee427"
+ }
+ Frame {
+ msec: 8080
+ hash: "6dfddaa340df8999ca77f6a6e4c6c3ce"
+ }
+ Frame {
+ msec: 8096
+ hash: "76ca40bb169c1ddc291847d4be2d38d7"
+ }
+ Frame {
+ msec: 8112
+ hash: "e44778541b76208981a3944a64235cac"
+ }
+ Frame {
+ msec: 8128
+ hash: "fdf45ea650d31957cc675c3bec8bf53e"
+ }
+ Frame {
+ msec: 8144
+ hash: "b78cdb727535ab7e567af08abf25e64c"
+ }
+ Frame {
+ msec: 8160
+ hash: "b78cdb727535ab7e567af08abf25e64c"
+ }
+ Frame {
+ msec: 8176
+ hash: "b78cdb727535ab7e567af08abf25e64c"
+ }
+ Frame {
+ msec: 8192
+ hash: "b78cdb727535ab7e567af08abf25e64c"
+ }
+ Frame {
+ msec: 8208
+ hash: "b78cdb727535ab7e567af08abf25e64c"
+ }
+ Frame {
+ msec: 8224
+ hash: "b78cdb727535ab7e567af08abf25e64c"
+ }
+ Frame {
+ msec: 8240
+ hash: "b78cdb727535ab7e567af08abf25e64c"
+ }
+ Key {
+ type: 6
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 8256
+ hash: "b78cdb727535ab7e567af08abf25e64c"
+ }
+ Frame {
+ msec: 8272
+ hash: "338481e6390f2a61e975084c16427584"
+ }
+ Frame {
+ msec: 8288
+ hash: "8923c45c23b1f4250b7d1e483b07a4da"
+ }
+ Frame {
+ msec: 8304
+ hash: "b21de834906d0eecea985561e2e41e4f"
+ }
+ Frame {
+ msec: 8320
+ hash: "a8c9761cfb20631520ed890cd2648c4b"
+ }
+ Frame {
+ msec: 8336
+ hash: "abf96a042ef12190bc48ff49732ef55a"
+ }
+ Key {
+ type: 7
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 8352
+ hash: "5b9506dfb038cd26dfc81ecd2406ada9"
+ }
+ Frame {
+ msec: 8368
+ hash: "be75b8d39f81b2fdaff01469bfc67d4a"
+ }
+ Frame {
+ msec: 8384
+ hash: "488aa2977f349df82b5f6ae5e3619d35"
+ }
+ Frame {
+ msec: 8400
+ hash: "d69f17f0ce8537511353d20b59d20de0"
+ }
+ Frame {
+ msec: 8416
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8432
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8448
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8464
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8480
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8496
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8512
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8528
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8544
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Key {
+ type: 6
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 8560
+ hash: "7647efcc0152cc3d6544106f969ace26"
+ }
+ Frame {
+ msec: 8576
+ hash: "8f74d33bf95cbf37fdb4521c69373a64"
+ }
+ Frame {
+ msec: 8592
+ hash: "e33bb4cd12790c9d9992efdd3e23bee9"
+ }
+ Frame {
+ msec: 8608
+ hash: "36f32e34b4093091c4707f26c52896ad"
+ }
+ Frame {
+ msec: 8624
+ hash: "5ab5e142f8dc883287c116cedbacfd55"
+ }
+ Frame {
+ msec: 8640
+ image: "gridview.8.png"
+ }
+ Key {
+ type: 7
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 8656
+ hash: "c74212e45a6c4b6a18caeb6a22350609"
+ }
+ Frame {
+ msec: 8672
+ hash: "8919643a7d13677dd902941860093209"
+ }
+ Frame {
+ msec: 8688
+ hash: "6f2ab4400fadf51b994351f0975e31fc"
+ }
+ Frame {
+ msec: 8704
+ hash: "4798559ce6f9bd7455ed5385d0030763"
+ }
+ Frame {
+ msec: 8720
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8736
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8752
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8768
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8784
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8800
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8816
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8832
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8848
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8864
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Key {
+ type: 6
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 8880
+ hash: "72759bd1e2618c61c42bbe4de3ad3a96"
+ }
+ Frame {
+ msec: 8896
+ hash: "fac81cf6f45cb47abc1fa36d23e39d34"
+ }
+ Frame {
+ msec: 8912
+ hash: "862f4deee01183fd38b094da59048b23"
+ }
+ Frame {
+ msec: 8928
+ hash: "2f3b147221da30d8857d25fc788b3eac"
+ }
+ Frame {
+ msec: 8944
+ hash: "5b295b187c6cfc6aefa51e5efc2c27e3"
+ }
+ Frame {
+ msec: 8960
+ hash: "fe3139ddc8fdbc1b0c25bd641f83e833"
+ }
+ Key {
+ type: 7
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 8976
+ hash: "8f2a9585dc6248a403aafd0f151d6ba0"
+ }
+ Frame {
+ msec: 8992
+ hash: "39eca8cc6bb8ea30cc452dc24f8e46dc"
+ }
+ Frame {
+ msec: 9008
+ hash: "8dbbc6026942cb6e572f1cb7e2675713"
+ }
+ Frame {
+ msec: 9024
+ hash: "62dfa07b96dd18c6be89822654bf09f3"
+ }
+ Frame {
+ msec: 9040
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9056
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9072
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9088
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9104
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9120
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9136
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9152
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9168
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9184
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9200
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9216
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9232
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9248
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9264
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Key {
+ type: 6
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 9280
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9296
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9312
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9328
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9344
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9360
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9376
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Key {
+ type: 7
+ key: 16777235
+ modifiers: 536870912
+ text: "1e"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 9392
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9408
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9424
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9440
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9456
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9472
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9488
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9504
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9520
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9536
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9552
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9568
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9584
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9600
+ image: "gridview.9.png"
+ }
+ Frame {
+ msec: 9616
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9632
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9648
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9664
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9680
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9696
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9712
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9728
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9744
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9760
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 9776
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9792
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9808
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9824
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+ Frame {
+ msec: 9840
+ hash: "02c632713d0dc64bff9d8e58f745df95"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.0.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.0.png
new file mode 100644
index 0000000..3021d58
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.1.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.1.png
new file mode 100644
index 0000000..baeb1a6
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.10.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.10.png
new file mode 100644
index 0000000..b0486e5
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.2.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.2.png
new file mode 100644
index 0000000..2d0c731
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.3.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.3.png
new file mode 100644
index 0000000..af9ed05
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.4.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.4.png
new file mode 100644
index 0000000..0b0945d
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.5.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.5.png
new file mode 100644
index 0000000..618ae0c
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.6.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.6.png
new file mode 100644
index 0000000..fc31262
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.7.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.7.png
new file mode 100644
index 0000000..22291ac
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.8.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.8.png
new file mode 100644
index 0000000..3021d58
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.9.png b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.9.png
new file mode 100644
index 0000000..2f2f5b9
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.qml b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.qml
new file mode 100644
index 0000000..fb5f1fb
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/data/gridview2.qml
@@ -0,0 +1,2479 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "dba2f6f1c773bd4cd9523108fca861c4"
+ }
+ Frame {
+ msec: 32
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 48
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 64
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 80
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 96
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 112
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 128
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 144
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 160
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 176
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 192
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 208
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 224
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 240
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 256
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 272
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 288
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 304
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 320
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 336
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 352
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 368
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 384
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 400
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 416
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 432
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 448
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 464
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 480
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 496
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 512
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 528
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 544
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 560
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 576
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 592
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 608
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 624
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 640
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 656
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 672
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 688
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 704
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 720
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 736
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 752
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 768
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 784
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 800
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 816
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 832
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 848
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 864
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 880
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 896
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 912
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 928
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 944
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 960
+ image: "gridview2.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 992
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1008
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1024
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1040
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1056
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1072
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1088
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1104
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1120
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1136
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1152
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1168
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1184
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1200
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1216
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1232
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1248
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1264
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 1280
+ hash: "aaec7184a27e6700d96ffff376b8fa53"
+ }
+ Frame {
+ msec: 1296
+ hash: "3fa3a890a4ff4a59336a9a2d478d0dde"
+ }
+ Frame {
+ msec: 1312
+ hash: "3711c6c2f4f9aba7f2c72bd1f1d85016"
+ }
+ Frame {
+ msec: 1328
+ hash: "23da2f9a800b805ce7b77ff08218907d"
+ }
+ Frame {
+ msec: 1344
+ hash: "12e4bc953b06cdaad0720f87fb96a37e"
+ }
+ Frame {
+ msec: 1360
+ hash: "46e69658bda69bab202a2790a76ba1cd"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1376
+ hash: "44608e67c69b92ccbb45e119e1158fe3"
+ }
+ Frame {
+ msec: 1392
+ hash: "97a309b47017d38294644a486a7ce68e"
+ }
+ Frame {
+ msec: 1408
+ hash: "41f42b50b22e0496c8aca5019b24b9cb"
+ }
+ Frame {
+ msec: 1424
+ hash: "8603ea1cb60c804563f50bc41c0180fe"
+ }
+ Frame {
+ msec: 1440
+ hash: "e29777fa70daafe9640c6e9bb7bd63d6"
+ }
+ Frame {
+ msec: 1456
+ hash: "2c4c360320f527e99fee799e68c2c0aa"
+ }
+ Frame {
+ msec: 1472
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Frame {
+ msec: 1488
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Frame {
+ msec: 1504
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Frame {
+ msec: 1520
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Frame {
+ msec: 1536
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Frame {
+ msec: 1552
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Frame {
+ msec: 1568
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Frame {
+ msec: 1584
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Key {
+ type: 6
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1600
+ hash: "0d30916c7e05ff8609af5894f47a89bb"
+ }
+ Frame {
+ msec: 1616
+ hash: "17027b7c099b11cb5382f30dbbd1e647"
+ }
+ Frame {
+ msec: 1632
+ hash: "0e17461a4ca843f9903b7f03e99a0b00"
+ }
+ Frame {
+ msec: 1648
+ hash: "a5e61901920553e59892fa405beea15a"
+ }
+ Frame {
+ msec: 1664
+ hash: "310eaf71fe8d3807606e58a666c65ccd"
+ }
+ Frame {
+ msec: 1680
+ hash: "76f556d05fb77082f33eb1836c10587a"
+ }
+ Key {
+ type: 7
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1696
+ hash: "4e7e4b7790a96396e7ea3533b5c32ed9"
+ }
+ Frame {
+ msec: 1712
+ hash: "b065287b6490f58ca6f0e9eb2027cf20"
+ }
+ Frame {
+ msec: 1728
+ hash: "907cd9dbdffa1d395caaabd466dc8e86"
+ }
+ Frame {
+ msec: 1744
+ hash: "3b144e5b4867328beafa3020ce931480"
+ }
+ Frame {
+ msec: 1760
+ hash: "b59b2b60b7d55424b61b1b0ed3e227b8"
+ }
+ Frame {
+ msec: 1776
+ hash: "4032e934871b315b68c7c2abea42efee"
+ }
+ Frame {
+ msec: 1792
+ hash: "8f80127b2f8d6fc10aa84062544cc381"
+ }
+ Frame {
+ msec: 1808
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1824
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1840
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1856
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1872
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1888
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1904
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1920
+ image: "gridview2.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1952
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1968
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 1984
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 2000
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 2016
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2032
+ hash: "77d5193bc5f53fe5cb98a236c55f841e"
+ }
+ Frame {
+ msec: 2048
+ hash: "a45d2630872a14541f39b862e15ff461"
+ }
+ Frame {
+ msec: 2064
+ hash: "714711d7382ef8bba5fb39e2e44bd59c"
+ }
+ Frame {
+ msec: 2080
+ hash: "63deed0356e761f94f88be18a7d10053"
+ }
+ Frame {
+ msec: 2096
+ hash: "d5b4fc1b568a4a1b63a91b422272c704"
+ }
+ Frame {
+ msec: 2112
+ hash: "b6d2c80925cc6b4b7b297bd6ee903c7c"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2128
+ hash: "38117482196360353586cb7ace593894"
+ }
+ Frame {
+ msec: 2144
+ hash: "2301f3a148bf4e311cc8ce011ddf65f8"
+ }
+ Frame {
+ msec: 2160
+ hash: "2a4982a0961f89a15618f8d4c2081f5a"
+ }
+ Frame {
+ msec: 2176
+ hash: "acf8666d6a8a29925f3895aa8e93f713"
+ }
+ Frame {
+ msec: 2192
+ hash: "967ed026bc92a6d2747c5227105543a6"
+ }
+ Frame {
+ msec: 2208
+ hash: "ff72f3fb95f25990c99c1c14cfef57da"
+ }
+ Frame {
+ msec: 2224
+ hash: "0874a4f863596c3860dcf5b1f7f6ceb2"
+ }
+ Frame {
+ msec: 2240
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2256
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2272
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2288
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2304
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2320
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2336
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2352
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2368
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Key {
+ type: 6
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2384
+ hash: "520445d8619ad9bdde0db0e61f17567c"
+ }
+ Frame {
+ msec: 2400
+ hash: "7c4bbf0423d63d7642d218cac56a6215"
+ }
+ Frame {
+ msec: 2416
+ hash: "e8c77dbc89721b51549f8d46453fe09d"
+ }
+ Frame {
+ msec: 2432
+ hash: "7953503590b639872ac12215695e8cea"
+ }
+ Frame {
+ msec: 2448
+ hash: "edaee946a2e25fed6de9acfda0d44a14"
+ }
+ Frame {
+ msec: 2464
+ hash: "4996ef39bb0122c10d65f8dd8674b386"
+ }
+ Frame {
+ msec: 2480
+ hash: "ede7c6ca9d6deb7819c3715e98755d6e"
+ }
+ Frame {
+ msec: 2496
+ hash: "e703fad2fcf9244ec9865200c7d17ce3"
+ }
+ Key {
+ type: 7
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2512
+ hash: "e2bfc16fd893bb3eb0e5df89a0169af3"
+ }
+ Frame {
+ msec: 2528
+ hash: "cfd0eb2bc378bd46644f3f7820150685"
+ }
+ Frame {
+ msec: 2544
+ hash: "442b05b04762c2bcda291aaa0341398e"
+ }
+ Frame {
+ msec: 2560
+ hash: "55842a6503057eea98e2075ef160873e"
+ }
+ Frame {
+ msec: 2576
+ hash: "730f80233dacf1119660a76d2a34c5fc"
+ }
+ Frame {
+ msec: 2592
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2608
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2624
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2640
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2656
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2672
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2688
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2704
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2720
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2736
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 536870912
+ text: "1c"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2752
+ hash: "d4a48ee79a18cc5c0bc123fbb40c3efd"
+ }
+ Frame {
+ msec: 2768
+ hash: "4d04c12bc7fab0b22df3135bf3a87a22"
+ }
+ Frame {
+ msec: 2784
+ hash: "fdca5a3f8312452feba7f37b1caa6419"
+ }
+ Frame {
+ msec: 2800
+ hash: "97b955e0f8cde30299b238d9ac0eb308"
+ }
+ Frame {
+ msec: 2816
+ hash: "19664de1a738458810896959ba4087ad"
+ }
+ Frame {
+ msec: 2832
+ hash: "4f9a4b6de6a2969e4639076a8f7c258e"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 536870912
+ text: "1c"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2848
+ hash: "a10f18aa686be2681a48082ec9f01df7"
+ }
+ Frame {
+ msec: 2864
+ hash: "b8f39a6cca377dd573429d879286dd63"
+ }
+ Frame {
+ msec: 2880
+ image: "gridview2.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "3301e52a46efbc49882401c77853ffde"
+ }
+ Frame {
+ msec: 2912
+ hash: "0c614597f17496ebc701efe7b0c1fbb6"
+ }
+ Frame {
+ msec: 2928
+ hash: "6dda2d6b034c932e279cf216c9b3e6ad"
+ }
+ Frame {
+ msec: 2944
+ hash: "7bf08cd5fe3ad3f83bbef28f452e0545"
+ }
+ Frame {
+ msec: 2960
+ hash: "1b7ebcf0e3d68e429cb04966120985e5"
+ }
+ Frame {
+ msec: 2976
+ hash: "1b7ebcf0e3d68e429cb04966120985e5"
+ }
+ Frame {
+ msec: 2992
+ hash: "1b7ebcf0e3d68e429cb04966120985e5"
+ }
+ Frame {
+ msec: 3008
+ hash: "1b7ebcf0e3d68e429cb04966120985e5"
+ }
+ Frame {
+ msec: 3024
+ hash: "1b7ebcf0e3d68e429cb04966120985e5"
+ }
+ Key {
+ type: 6
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3040
+ hash: "1b7ebcf0e3d68e429cb04966120985e5"
+ }
+ Frame {
+ msec: 3056
+ hash: "0fe7d46e7c18ce7bb5a098c5c662d557"
+ }
+ Frame {
+ msec: 3072
+ hash: "cd5df541cc1ed545bc27da9e4a937261"
+ }
+ Frame {
+ msec: 3088
+ hash: "35762467b83fee1870cff9b0436994d3"
+ }
+ Frame {
+ msec: 3104
+ hash: "75a620b42caabf5b1576041dbd4c2808"
+ }
+ Frame {
+ msec: 3120
+ hash: "f1b06290a6cbd48b8d3d4ce1e42ed754"
+ }
+ Frame {
+ msec: 3136
+ hash: "8e1a50dc082828587a4656117760a852"
+ }
+ Frame {
+ msec: 3152
+ hash: "aae8e5f166e736040138d8e222a844dd"
+ }
+ Frame {
+ msec: 3168
+ hash: "f69e5cf2bcb26fe49126776695b0b7e0"
+ }
+ Key {
+ type: 7
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3184
+ hash: "7b482fece0255ea07496ef0545b008a2"
+ }
+ Frame {
+ msec: 3200
+ hash: "3f96eaebfebe8d4eeb347b201b59ab11"
+ }
+ Frame {
+ msec: 3216
+ hash: "9943626d2226c3be711c8213906133f0"
+ }
+ Frame {
+ msec: 3232
+ hash: "fd5fd8177b3957c27f1de0d95621351a"
+ }
+ Frame {
+ msec: 3248
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3264
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3280
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3296
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3312
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3328
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3344
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3360
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3376
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3392
+ hash: "506283ccfe9670633ce0bf60b437b37b"
+ }
+ Frame {
+ msec: 3408
+ hash: "fb437f6c23561092a124e498f1604ff2"
+ }
+ Frame {
+ msec: 3424
+ hash: "402ba144bbb7260eec4553e68eb35cda"
+ }
+ Frame {
+ msec: 3440
+ hash: "76a983de9e85e0c81dfb8908252bd6c9"
+ }
+ Frame {
+ msec: 3456
+ hash: "09219f55fae47a0afed887ebf68a36bc"
+ }
+ Frame {
+ msec: 3472
+ hash: "344e81cc262093facef2f6a235a734dc"
+ }
+ Frame {
+ msec: 3488
+ hash: "8f1c5544eb537555b1c59a377b15e31d"
+ }
+ Frame {
+ msec: 3504
+ hash: "606b9bb549fe2e4bbd09d67b7dea0d1a"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3520
+ hash: "63e239c97bd01a61cb31ef2869e7f47c"
+ }
+ Frame {
+ msec: 3536
+ hash: "f7c176550c39f8a1ad64590cf33a60a4"
+ }
+ Frame {
+ msec: 3552
+ hash: "8581cb14ed81efdf9abb638b5e542cc3"
+ }
+ Frame {
+ msec: 3568
+ hash: "7a1e9354ecc49d8bc27d303c7bdc81f9"
+ }
+ Frame {
+ msec: 3584
+ hash: "610288b97276ee03702ed8a814ef333d"
+ }
+ Frame {
+ msec: 3600
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3616
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3632
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3648
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3664
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3680
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3696
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3712
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3728
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3744
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3760
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3776
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3792
+ hash: "8d36bc2f3ab614d19f3ec8821f3e81ed"
+ }
+ Frame {
+ msec: 3808
+ hash: "9713c6b9aff051dd0cc45c545d34b688"
+ }
+ Frame {
+ msec: 3824
+ hash: "1f8fd4d759e343720a8681b6ad126b72"
+ }
+ Frame {
+ msec: 3840
+ image: "gridview2.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "8550d916d91a40b0c3a886b962e07ffc"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3872
+ hash: "df0c2e474139e79429bfc19c79a65ef8"
+ }
+ Frame {
+ msec: 3888
+ hash: "acfb99d081d754276e5ed59bd590aeab"
+ }
+ Frame {
+ msec: 3904
+ hash: "2b34cd101b442f7a3de2893fd5514c16"
+ }
+ Frame {
+ msec: 3920
+ hash: "df92ced66faa1d59354d8010278438ec"
+ }
+ Frame {
+ msec: 3936
+ hash: "dd39a8e6fa3784453461193a6da416cd"
+ }
+ Frame {
+ msec: 3952
+ hash: "5670e8f91ea2df451f0974a51cd77d7d"
+ }
+ Frame {
+ msec: 3968
+ hash: "74b97a09bfe7400872a2c6214e04a5ac"
+ }
+ Frame {
+ msec: 3984
+ hash: "cfd55b963506ab54cf09a7311e84bcc9"
+ }
+ Frame {
+ msec: 4000
+ hash: "59657ee9293c03f064d62de826931435"
+ }
+ Frame {
+ msec: 4016
+ hash: "31f6a4adf31be5ed0af0ea4097e3acee"
+ }
+ Frame {
+ msec: 4032
+ hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76"
+ }
+ Frame {
+ msec: 4048
+ hash: "9dc38985113124130e2ca7950e0bd144"
+ }
+ Frame {
+ msec: 4064
+ hash: "786e6e8b9e74876a6f393d61a78b8fc7"
+ }
+ Frame {
+ msec: 4080
+ hash: "1f4d59a4e4684aab309363a711b30006"
+ }
+ Frame {
+ msec: 4096
+ hash: "a11e332de151b43051796e16dbcf75c3"
+ }
+ Frame {
+ msec: 4112
+ hash: "1a0e82029ae107cb2a018786752433ff"
+ }
+ Frame {
+ msec: 4128
+ hash: "b14c51977c7fbf51f9cf6fec309bff6a"
+ }
+ Frame {
+ msec: 4144
+ hash: "2b418f811992399c3f87c268db745632"
+ }
+ Frame {
+ msec: 4160
+ hash: "0e9a056207053ca98c4e9f42de244c62"
+ }
+ Frame {
+ msec: 4176
+ hash: "1945c3f9e3a1337e7d111e15adea345f"
+ }
+ Frame {
+ msec: 4192
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4208
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4224
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4240
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4256
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4272
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4288
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4304
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4320
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4336
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4352
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4368
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4384
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4400
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4416
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4432
+ hash: "d8cf36b6cc15a01ead815d814ae81cb4"
+ }
+ Frame {
+ msec: 4448
+ hash: "1945c3f9e3a1337e7d111e15adea345f"
+ }
+ Frame {
+ msec: 4464
+ hash: "0e9a056207053ca98c4e9f42de244c62"
+ }
+ Frame {
+ msec: 4480
+ hash: "2b418f811992399c3f87c268db745632"
+ }
+ Frame {
+ msec: 4496
+ hash: "b14c51977c7fbf51f9cf6fec309bff6a"
+ }
+ Frame {
+ msec: 4512
+ hash: "1a0e82029ae107cb2a018786752433ff"
+ }
+ Frame {
+ msec: 4528
+ hash: "a11e332de151b43051796e16dbcf75c3"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4544
+ hash: "1f4d59a4e4684aab309363a711b30006"
+ }
+ Frame {
+ msec: 4560
+ hash: "786e6e8b9e74876a6f393d61a78b8fc7"
+ }
+ Frame {
+ msec: 4576
+ hash: "9dc38985113124130e2ca7950e0bd144"
+ }
+ Frame {
+ msec: 4592
+ hash: "8f5bfc40c8cdb2f8ce69adb72e7efe76"
+ }
+ Frame {
+ msec: 4608
+ hash: "31f6a4adf31be5ed0af0ea4097e3acee"
+ }
+ Frame {
+ msec: 4624
+ hash: "59657ee9293c03f064d62de826931435"
+ }
+ Frame {
+ msec: 4640
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4656
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4672
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4688
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4704
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4720
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4736
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4752
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4768
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4784
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4800
+ image: "gridview2.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4832
+ hash: "23aa652a0de7fced4a780d72f0940a1b"
+ }
+ Frame {
+ msec: 4848
+ hash: "d46eea049d6156a5e85d9c6811d9d367"
+ }
+ Frame {
+ msec: 4864
+ hash: "d5796ae85247cb8502f92f0d044e4e1f"
+ }
+ Frame {
+ msec: 4880
+ hash: "90987ac49c1a4e6b668436e3ff631e6c"
+ }
+ Frame {
+ msec: 4896
+ hash: "c38d69759ad80242b1fe83ba191cd421"
+ }
+ Frame {
+ msec: 4912
+ hash: "09d08aed76a04e492d8a39cc4dd2b8f5"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 536870912
+ text: "1d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4928
+ hash: "9671d2ff9a2ef46ce3c750a1965404a4"
+ }
+ Frame {
+ msec: 4944
+ hash: "f55857816d666ece4a7987a70883b3d1"
+ }
+ Frame {
+ msec: 4960
+ hash: "a2d80527b30316d9120b057bbfcfa666"
+ }
+ Frame {
+ msec: 4976
+ hash: "87ca69287c1469cbc7e65d1673016de7"
+ }
+ Frame {
+ msec: 4992
+ hash: "51588c7ebbe2dcd87a3c9bebf028aee3"
+ }
+ Frame {
+ msec: 5008
+ hash: "917a9a171273fe9fd4c450eeed6f58ed"
+ }
+ Frame {
+ msec: 5024
+ hash: "6e7ade250a9a9692caee2a220dd2ac53"
+ }
+ Frame {
+ msec: 5040
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5056
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5072
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5088
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5104
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5120
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5136
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5152
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5168
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5184
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5200
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5216
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5232
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5248
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5264
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5280
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5296
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5312
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5328
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5344
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5360
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5376
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5392
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5408
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5424
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5440
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5456
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5472
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5488
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5504
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5520
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5536
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5552
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5568
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5584
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5600
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Key {
+ type: 6
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5616
+ hash: "ca2dcb16d553889a3a57b48700c2a595"
+ }
+ Frame {
+ msec: 5632
+ hash: "c5c9aab9bea757f1c451e89df72bd836"
+ }
+ Frame {
+ msec: 5648
+ hash: "a8cf3085f8c3b743f3f15db1ad7b8801"
+ }
+ Frame {
+ msec: 5664
+ hash: "c25a92050eced1c304506572723273a3"
+ }
+ Frame {
+ msec: 5680
+ hash: "cff981039c1a3eb6c3c1a20f142fbae2"
+ }
+ Frame {
+ msec: 5696
+ hash: "930765587fe3355873bbdff66b812b74"
+ }
+ Frame {
+ msec: 5712
+ hash: "6a60f97c7b39add465e1bd366e9c644b"
+ }
+ Key {
+ type: 7
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5728
+ hash: "7a1fd3c488d1064a75dc598c9a773291"
+ }
+ Frame {
+ msec: 5744
+ hash: "e2ecd7e68e27eb3d2dcb5e368d3ee5a0"
+ }
+ Frame {
+ msec: 5760
+ image: "gridview2.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "20f3aaca2efc3066076e73d1d95e5363"
+ }
+ Frame {
+ msec: 5792
+ hash: "b18d476cadc36e22dddc3185f595c123"
+ }
+ Frame {
+ msec: 5808
+ hash: "8cbc47555178c8ee355774eab17b4b19"
+ }
+ Frame {
+ msec: 5824
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5840
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5856
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5872
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5888
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5904
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5920
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5936
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5952
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5968
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 5984
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 6000
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 6016
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 6032
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 6048
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 6064
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 6080
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 6096
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Key {
+ type: 6
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6112
+ hash: "e488fb76fb550fba51b95bee3fee80d5"
+ }
+ Frame {
+ msec: 6128
+ hash: "8c2fab0c73d1cfbeeb0ec937085d6b3b"
+ }
+ Frame {
+ msec: 6144
+ hash: "5d9353517177ef7c6314d8a65cb009ec"
+ }
+ Frame {
+ msec: 6160
+ hash: "ed8de504f7e2028cd369c1555314fd81"
+ }
+ Frame {
+ msec: 6176
+ hash: "8fe84d8badbe5bd08d097ba6bda10611"
+ }
+ Frame {
+ msec: 6192
+ hash: "d77419a55a3cf933505e793bb258e6af"
+ }
+ Frame {
+ msec: 6208
+ hash: "457ac82be02e2f5e08e51ccc78c94781"
+ }
+ Frame {
+ msec: 6224
+ hash: "e57e2852f065afff9c24c5bc9f29edee"
+ }
+ Frame {
+ msec: 6240
+ hash: "f72cd6ad3324936c3a18c264e23e05a9"
+ }
+ Key {
+ type: 7
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6256
+ hash: "a4bf7eae6fc7a05239d09421ae95304a"
+ }
+ Frame {
+ msec: 6272
+ hash: "423f3bd07df8bee25818644c07201a3c"
+ }
+ Frame {
+ msec: 6288
+ hash: "225e9c698424f287b9458b7839b4479b"
+ }
+ Frame {
+ msec: 6304
+ hash: "0f463db7e4acc184a4efb7b5e5c0d397"
+ }
+ Frame {
+ msec: 6320
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6336
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6352
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6368
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6384
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6400
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6416
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6432
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6448
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6464
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6480
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6496
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6512
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6528
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6544
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6560
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6576
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6592
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6608
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6624
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6640
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6656
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6672
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6688
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6704
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6720
+ image: "gridview2.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Key {
+ type: 6
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6752
+ hash: "b92ad1c3be35c46c0d12bf7701c56f23"
+ }
+ Frame {
+ msec: 6768
+ hash: "738f6bcc043d221488285c7e529b1d1c"
+ }
+ Frame {
+ msec: 6784
+ hash: "cb0a4e8e79372dd67e8ecfea2143a47c"
+ }
+ Frame {
+ msec: 6800
+ hash: "544d1825b36f4e7950c1a62b26c1fd9b"
+ }
+ Frame {
+ msec: 6816
+ hash: "df99396622342b4f092b0db34a224c3d"
+ }
+ Frame {
+ msec: 6832
+ hash: "47391f51e5df2249a6ca1f1f6e8e80e0"
+ }
+ Key {
+ type: 7
+ key: 16777237
+ modifiers: 536870912
+ text: "1f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6848
+ hash: "d8079a874ca18d00aeeb611effcbeb8b"
+ }
+ Frame {
+ msec: 6864
+ hash: "4cfd9264af6935aca425da75ebb2d7cc"
+ }
+ Frame {
+ msec: 6880
+ hash: "aee6547cb653cd2d56d07285d836149d"
+ }
+ Frame {
+ msec: 6896
+ hash: "969720f17eae51258e2e143e14bfa737"
+ }
+ Frame {
+ msec: 6912
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 6928
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 6944
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 6960
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 6976
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 6992
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7008
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7024
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7040
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7056
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7072
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7088
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7104
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7120
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7136
+ hash: "b6a0ee0b24737bc0045ff3fb68cfe3ad"
+ }
+ Frame {
+ msec: 7152
+ hash: "beeaec4b983c970ae448e33047dfdfea"
+ }
+ Frame {
+ msec: 7168
+ hash: "7c415ab1b7d8e25b71af75d3eec8ee4a"
+ }
+ Frame {
+ msec: 7184
+ hash: "8913037e57b9a6a58b68f2d6e69b1bd1"
+ }
+ Frame {
+ msec: 7200
+ hash: "19e59e9409fdaf90ccf75606b58688b7"
+ }
+ Frame {
+ msec: 7216
+ hash: "1ae71ef5b1006f637bd8df0769af65a6"
+ }
+ Frame {
+ msec: 7232
+ hash: "1f0aa8b368b2dbccafd54b923d8cce95"
+ }
+ Frame {
+ msec: 7248
+ hash: "c5079fb25a8c80a995d7aa5fbbd91428"
+ }
+ Frame {
+ msec: 7264
+ hash: "59f41220fa5d23db298c9e94f115c17b"
+ }
+ Frame {
+ msec: 7280
+ hash: "48259dfe8b266d9e7f50b187be98c3cb"
+ }
+ Frame {
+ msec: 7296
+ hash: "f7554552598351c3b8dfcbe3ebc32b3b"
+ }
+ Frame {
+ msec: 7312
+ hash: "219e9cd84d7e5c5c0e6cb80100aa3ab5"
+ }
+ Frame {
+ msec: 7328
+ hash: "5578e870ee8ce00bce5a59bb25e3d0a9"
+ }
+ Frame {
+ msec: 7344
+ hash: "4d9cebbf750c03380694245e0e22ab94"
+ }
+ Frame {
+ msec: 7360
+ hash: "a60a8032e97ed0a3caa05012c1283de5"
+ }
+ Frame {
+ msec: 7376
+ hash: "3bee20b349a7e9d67f7770ede6da8673"
+ }
+ Frame {
+ msec: 7392
+ hash: "d8c34576c25fb8b5e4fa12680ac32e99"
+ }
+ Frame {
+ msec: 7408
+ hash: "cd1360aa7db7c3b2f2012dfc44de2198"
+ }
+ Frame {
+ msec: 7424
+ hash: "cd82782f63c9a7d21d51b3440c2f038b"
+ }
+ Frame {
+ msec: 7440
+ hash: "e59061967a841aa45607c0828b687527"
+ }
+ Frame {
+ msec: 7456
+ hash: "01962406c9aaf1aa8bf3ab49e30ddf5f"
+ }
+ Frame {
+ msec: 7472
+ hash: "5a5732a568189e598c7985ee806bc67e"
+ }
+ Frame {
+ msec: 7488
+ hash: "54775aed3a6283c1fa330d65de5bc70c"
+ }
+ Frame {
+ msec: 7504
+ hash: "66640b4a5c1e68924b25de24e3c3f008"
+ }
+ Frame {
+ msec: 7520
+ hash: "76999d3125f20ba47dbdff38ee722a8a"
+ }
+ Frame {
+ msec: 7536
+ hash: "5159c81533bee8825cff11910bcb90dc"
+ }
+ Frame {
+ msec: 7552
+ hash: "ac0295495345987d1e000f6bb2436927"
+ }
+ Frame {
+ msec: 7568
+ hash: "d56b4a04f1d2835a0852ea20e8e2f451"
+ }
+ Frame {
+ msec: 7584
+ hash: "ae41fe23e2ab508d7642973c0d9d35b0"
+ }
+ Frame {
+ msec: 7600
+ hash: "730ca01fbee6ec4928715ec52773c06c"
+ }
+ Frame {
+ msec: 7616
+ hash: "ad1fa52c617a2b119d61eb9fb7d58a82"
+ }
+ Frame {
+ msec: 7632
+ hash: "c74321a822b515a393e8e218bd45e8e3"
+ }
+ Frame {
+ msec: 7648
+ hash: "a9e2f3bee1d47166204c74bdf90cd8c8"
+ }
+ Frame {
+ msec: 7664
+ hash: "e10d4bf08980ea7d079a2f359ee62b95"
+ }
+ Frame {
+ msec: 7680
+ image: "gridview2.7.png"
+ }
+ Frame {
+ msec: 7696
+ hash: "9f0ba6051e684e54ff4e36d980a7e600"
+ }
+ Frame {
+ msec: 7712
+ hash: "aa6268d8d7fb3d2b91db3e225e8c818a"
+ }
+ Frame {
+ msec: 7728
+ hash: "8e547e55279b1929f42bf51e753f142e"
+ }
+ Frame {
+ msec: 7744
+ hash: "5386c71f8d6701379e177f161d714da2"
+ }
+ Frame {
+ msec: 7760
+ hash: "a184e9e6012c72fc1aeaed9f98b0fb1e"
+ }
+ Frame {
+ msec: 7776
+ hash: "777a6b70ca77c45e2e5e3914cc328dcb"
+ }
+ Frame {
+ msec: 7792
+ hash: "424f73f25a1e91126f951838d45adc3b"
+ }
+ Frame {
+ msec: 7808
+ hash: "3f7f2eb6b9a5d19fbfcd700baf566dfb"
+ }
+ Frame {
+ msec: 7824
+ hash: "c3c4c72b25c2295b82a5fd7454942f77"
+ }
+ Frame {
+ msec: 7840
+ hash: "3b35e93d3eb9d28c5c03d6d353f805d2"
+ }
+ Frame {
+ msec: 7856
+ hash: "5dcad019a1c0eaaab381a7602e1914ff"
+ }
+ Frame {
+ msec: 7872
+ hash: "602a5c569555767413bf445af44c744f"
+ }
+ Frame {
+ msec: 7888
+ hash: "3e9facab95dae772f695b6f7c5175063"
+ }
+ Frame {
+ msec: 7904
+ hash: "0921220ec36ca7b25eaae699872a2006"
+ }
+ Frame {
+ msec: 7920
+ hash: "1d5fa7fd630af62bcc805bdc6686df37"
+ }
+ Frame {
+ msec: 7936
+ hash: "165c02de63604aa118d9f8995e6b45af"
+ }
+ Frame {
+ msec: 7952
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 7968
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 7984
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8000
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8016
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8032
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8048
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8064
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8080
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8096
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8112
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8128
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8144
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8160
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8176
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8192
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8208
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8224
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8240
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8256
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8272
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8288
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8304
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8320
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8336
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8352
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8368
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8384
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8400
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8416
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8432
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8448
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8464
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8480
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8496
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8512
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8528
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8544
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8560
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8576
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8592
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8608
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8624
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8640
+ image: "gridview2.8.png"
+ }
+ Frame {
+ msec: 8656
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8672
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8688
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8704
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 8720
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8736
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8752
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8768
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8784
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8800
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8816
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8832
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8848
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8864
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8880
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8896
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8912
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8928
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8944
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8960
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8976
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 8992
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 9008
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+ Frame {
+ msec: 9024
+ hash: "33d81c39d16c6a326012499796e50e03"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/gridview.qml b/tests/auto/declarative/visual/qmlgraphicsgridview/gridview.qml
new file mode 100644
index 0000000..f8782a5
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/gridview.qml
@@ -0,0 +1,51 @@
+import Qt 4.6
+
+Rectangle {
+ width: 300; height: 400; color: "black"
+
+ ListModel {
+ id: appModel
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "orange" }
+ ListElement { lColor: "pink" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "gray" }
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "orange" }
+ ListElement { lColor: "pink" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "gray" }
+ }
+
+ Component {
+ id: appDelegate
+ Item {
+ width: 100; height: 100
+ Rectangle {
+ color: lColor; x: 4; y: 4
+ width: 92; height: 92
+ }
+ }
+ }
+
+ Component {
+ id: appHighlight
+ Rectangle { width: 100; height: 100; color: "white"; z: 3000 }
+ }
+
+ GridView {
+ anchors.fill: parent
+ cellWidth: 100; cellHeight: 100; cacheBuffer: 200
+ model: appModel; delegate: appDelegate
+ highlight: appHighlight
+ focus: true
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicsgridview/gridview2.qml b/tests/auto/declarative/visual/qmlgraphicsgridview/gridview2.qml
new file mode 100644
index 0000000..81d06cf
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsgridview/gridview2.qml
@@ -0,0 +1,58 @@
+import Qt 4.6
+
+Rectangle {
+ width: 300; height: 400; color: "black"
+
+ ListModel {
+ id: appModel
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "orange" }
+ ListElement { lColor: "pink" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "gray" }
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "orange" }
+ ListElement { lColor: "pink" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "gray" }
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ }
+
+ Component {
+ id: appDelegate
+ Item {
+ width: 100; height: 100
+ Rectangle {
+ color: lColor; x: 4; y: 4
+ width: 92; height: 92
+ }
+ }
+ }
+
+ GridView {
+ id: gridView; anchors.fill: parent
+ cellWidth: 100; cellHeight: 100; cacheBuffer: 200
+ model: appModel; delegate: appDelegate; focus: true
+ keyNavigationWraps: true
+
+ flickableData: [
+ Rectangle {
+ color: "transparent"; border.color: "white"; border.width: 8; z: 3000
+ height: 100; width: 100; x: 4; y: 4
+ x: EaseFollow { source: gridView.currentItem.x; velocity: 500 }
+ y: EaseFollow { source: gridView.currentItem.y; velocity: 500 }
+ }
+ ]
+ }
+
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.0.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.0.png
new file mode 100644
index 0000000..18c8a9e
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.1.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.1.png
new file mode 100644
index 0000000..e86acb4
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.2.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.2.png
new file mode 100644
index 0000000..17990b7
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.3.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.3.png
new file mode 100644
index 0000000..18c8a9e
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.4.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.4.png
new file mode 100644
index 0000000..18c8a9e
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.5.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.5.png
new file mode 100644
index 0000000..8636f8f
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.6.png b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.6.png
new file mode 100644
index 0000000..fa7c4b6
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.qml b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.qml
new file mode 100644
index 0000000..b8ff925
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/data/test-pathview-2.qml
@@ -0,0 +1,2303 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 32
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 48
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 64
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 80
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 96
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 112
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 128
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 144
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 160
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 176
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 192
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 208
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 224
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 240
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 256
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 272
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 288
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 304
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 320
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 336
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 352
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 368
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 384
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 400
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 416
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 432
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 448
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 464
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 480
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 496
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 512
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 528
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 544
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 560
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 576
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 592
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 608
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 624
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 640
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 656
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 672
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 688
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 704
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 720
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 736
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 752
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 768
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 784
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 800
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 816
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 832
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 848
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 864
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 880
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 896
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 912
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 928
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 944
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 960
+ image: "test-pathview-2.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 992
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 1008
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 1024
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 1040
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 562; y: 250
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1056
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 557; y: 251
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1072
+ hash: "1ed6fa56736cf7cb2f99b5d362974463"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 544; y: 254
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1088
+ hash: "24f3dd6c49dd8b19cd0c387409405e18"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 534; y: 258
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1104
+ hash: "08c828e7fdfba4252fa7a9fb06eb728e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 511; y: 267
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1120
+ hash: "b76110faf8520f52128b5e1af8f2b838"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 499; y: 272
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1136
+ hash: "5f56acb5f39ac291cc8e73c0268df214"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 473; y: 281
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1152
+ hash: "840ee0c0d8ea94e22e783a15687f979d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 459; y: 285
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1168
+ hash: "69827007bbdf5a360ccc34a016315113"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 446; y: 288
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1184
+ hash: "2437beb8f9cb39b125611fb186bad820"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 433; y: 290
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 433; y: 290
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1200
+ hash: "df07c389b26fc191234c70b97bfaa432"
+ }
+ Frame {
+ msec: 1216
+ hash: "8d4e23f4e91d0e0df9d87c3171d5971f"
+ }
+ Frame {
+ msec: 1232
+ hash: "dd79837aefeabffa7184be07f2a98969"
+ }
+ Frame {
+ msec: 1248
+ hash: "2d9bb2aaf4b882902f090ff0c89053c8"
+ }
+ Frame {
+ msec: 1264
+ hash: "b1ec9adbb026d8002a7f16fe9a8d56d2"
+ }
+ Frame {
+ msec: 1280
+ hash: "43b23d6e1aeeb36350c3530650e9156f"
+ }
+ Frame {
+ msec: 1296
+ hash: "03f231597c4d5010ee71c74217f2483d"
+ }
+ Frame {
+ msec: 1312
+ hash: "8607c7412a5a1b4ea1522f28c465a83e"
+ }
+ Frame {
+ msec: 1328
+ hash: "671e80e290bec997eb36320ff76fdccf"
+ }
+ Frame {
+ msec: 1344
+ hash: "5f6717112bd45e5ebe194e0f87d12be6"
+ }
+ Frame {
+ msec: 1360
+ hash: "ca8e33c7a5428d70ae13cb64e5098a48"
+ }
+ Frame {
+ msec: 1376
+ hash: "86e60eb395f66bbaa1ec07b3e07013c0"
+ }
+ Frame {
+ msec: 1392
+ hash: "342fa6ddc02d0a793e97a79ba8882415"
+ }
+ Frame {
+ msec: 1408
+ hash: "a907fbcc47807d4eb6d66e070ea7f2de"
+ }
+ Frame {
+ msec: 1424
+ hash: "04838f8b495bed6d050cbe54d00aad31"
+ }
+ Frame {
+ msec: 1440
+ hash: "d485534916473ea6c4612230c5a95421"
+ }
+ Frame {
+ msec: 1456
+ hash: "1d3da7cc5b9120724645558584f2f0f3"
+ }
+ Frame {
+ msec: 1472
+ hash: "c271f057d5f1745e910b2b407c52a4f3"
+ }
+ Frame {
+ msec: 1488
+ hash: "050d1814a9ced514db6cfd2732eb76be"
+ }
+ Frame {
+ msec: 1504
+ hash: "cfcd21aadfe3fd611caad83920fb2432"
+ }
+ Frame {
+ msec: 1520
+ hash: "472f900ef8eef74522da3338ce7fa93e"
+ }
+ Frame {
+ msec: 1536
+ hash: "f9d892a81c6ba3b9fc4c6e76082d4fa7"
+ }
+ Frame {
+ msec: 1552
+ hash: "a3febe1c3c4585e25a410a91cc34c1fa"
+ }
+ Frame {
+ msec: 1568
+ hash: "74cd765c9d9a6fb243070b4a56a07e87"
+ }
+ Frame {
+ msec: 1584
+ hash: "469d324abbef017a99bc587bfae622b3"
+ }
+ Frame {
+ msec: 1600
+ hash: "6054ff6e658f0a5f5e313f0a724d9610"
+ }
+ Frame {
+ msec: 1616
+ hash: "67cee7ebe428c9d35f1f28274f3049d5"
+ }
+ Frame {
+ msec: 1632
+ hash: "ce6c3a1dd726eacbba6306e56121beef"
+ }
+ Frame {
+ msec: 1648
+ hash: "a7d5f703c98c0c8cd32b189a79e1fd05"
+ }
+ Frame {
+ msec: 1664
+ hash: "41cfd9982767ba904843fb73a5a0ed71"
+ }
+ Frame {
+ msec: 1680
+ hash: "388dcde17a820800237d1185372d889f"
+ }
+ Frame {
+ msec: 1696
+ hash: "3bd72585388f04d55900ccd345cd576e"
+ }
+ Frame {
+ msec: 1712
+ hash: "0e5c63b066f2b70000eca7f3aaa3a195"
+ }
+ Frame {
+ msec: 1728
+ hash: "15199f3e9f00afc76279b5bbffb78d92"
+ }
+ Frame {
+ msec: 1744
+ hash: "596ad681a3b96afbc284e3af5fd173cb"
+ }
+ Frame {
+ msec: 1760
+ hash: "e5ae2d0245fc5d74c6ea3f7dddd1ca2a"
+ }
+ Frame {
+ msec: 1776
+ hash: "0d152716f9ebe5f0fae3f5cabb20630f"
+ }
+ Frame {
+ msec: 1792
+ hash: "74afbfa464b0d19b53432fa4d5ea2804"
+ }
+ Frame {
+ msec: 1808
+ hash: "c8aa3f4738a8c07cdf2450a24c885ce6"
+ }
+ Frame {
+ msec: 1824
+ hash: "2e4e0003f1b1cb10593075862b972643"
+ }
+ Frame {
+ msec: 1840
+ hash: "acea518c7da7330ae78daf5fbfd1a423"
+ }
+ Frame {
+ msec: 1856
+ hash: "0b8d4ea6947b522c6aa9a32d9f16723e"
+ }
+ Frame {
+ msec: 1872
+ hash: "19f2aef82586817ef574a70865060997"
+ }
+ Frame {
+ msec: 1888
+ hash: "115565eb0ba3024dbf15d00ed242c389"
+ }
+ Frame {
+ msec: 1904
+ hash: "7e59425c85acf93f5bf55e139c148737"
+ }
+ Frame {
+ msec: 1920
+ image: "test-pathview-2.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "ce96601476cf55f665bef09bb1b038e2"
+ }
+ Frame {
+ msec: 1952
+ hash: "dc6eaacefe37fc709ac0bef99110f796"
+ }
+ Frame {
+ msec: 1968
+ hash: "82ad9b84425bd8e385524cb052a8fdd4"
+ }
+ Frame {
+ msec: 1984
+ hash: "608000b44ade998e225010d5ea562316"
+ }
+ Frame {
+ msec: 2000
+ hash: "ec6b4d519b7bafcf5293c2b5e6585007"
+ }
+ Frame {
+ msec: 2016
+ hash: "9895792ffa929ba6fc600949f11766b6"
+ }
+ Frame {
+ msec: 2032
+ hash: "0d2b27c9ca22520b269f93c90de08df4"
+ }
+ Frame {
+ msec: 2048
+ hash: "78a61e4565db709215b419aa56f6efab"
+ }
+ Frame {
+ msec: 2064
+ hash: "d6f2aebed062d093c00b27a52f0b14b8"
+ }
+ Frame {
+ msec: 2080
+ hash: "21b7a438ad1e835b84e5576e52abbe84"
+ }
+ Frame {
+ msec: 2096
+ hash: "703e32f43e9a71b8677d6839a0eafe06"
+ }
+ Frame {
+ msec: 2112
+ hash: "b04bea8af558de4120723fc5abd0f36c"
+ }
+ Frame {
+ msec: 2128
+ hash: "ac8e91c3b55e058ce8ff08ad6e3af9b6"
+ }
+ Frame {
+ msec: 2144
+ hash: "54846c8c70b232d05ff5eaf144f6f7d3"
+ }
+ Frame {
+ msec: 2160
+ hash: "52281806f5c80512b4bcab7f61139f74"
+ }
+ Frame {
+ msec: 2176
+ hash: "a352657ff34ef8962162c00647df343a"
+ }
+ Frame {
+ msec: 2192
+ hash: "3a0b12d1f8bf5cae8ac06289dd30d52a"
+ }
+ Frame {
+ msec: 2208
+ hash: "2c6bbcd05719f69b9a67be18de2084a6"
+ }
+ Frame {
+ msec: 2224
+ hash: "ab091484522587412b0e8aceeb8987ce"
+ }
+ Frame {
+ msec: 2240
+ hash: "13682b0d45bcbad0f011d08899085b1d"
+ }
+ Frame {
+ msec: 2256
+ hash: "3c5d6f82eafd1b04edfbcbffbdbe2177"
+ }
+ Frame {
+ msec: 2272
+ hash: "151803d70b7c3327df32c8602fcd677a"
+ }
+ Frame {
+ msec: 2288
+ hash: "78613cec5364fe3f0df84188793d8eac"
+ }
+ Frame {
+ msec: 2304
+ hash: "fc05a3cad43af35230c5ba89f6fd13c5"
+ }
+ Frame {
+ msec: 2320
+ hash: "9f826733b300c89eeb80452129505e8b"
+ }
+ Frame {
+ msec: 2336
+ hash: "8565efc5c1fb1bdf5629e3bd495bb611"
+ }
+ Frame {
+ msec: 2352
+ hash: "3b8f6e8c526ab8cce170277c378a5a69"
+ }
+ Frame {
+ msec: 2368
+ hash: "07db3bc0ab19e0ca829e89558bacf1a1"
+ }
+ Frame {
+ msec: 2384
+ hash: "ed8843024c6ac28a8c782839b362149c"
+ }
+ Frame {
+ msec: 2400
+ hash: "381a9f6564c090613aa2cd0476b95210"
+ }
+ Frame {
+ msec: 2416
+ hash: "c3fabd891fa8e27fd71df175db383667"
+ }
+ Frame {
+ msec: 2432
+ hash: "9b441792fdaa9ba9d340fc0c6a9c11bd"
+ }
+ Frame {
+ msec: 2448
+ hash: "3209c9ba69fa016370e3d56e7e1e37a4"
+ }
+ Frame {
+ msec: 2464
+ hash: "34da0a01453fbb2571b370257fd35f8e"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 591; y: 245
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 588; y: 245
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2480
+ hash: "32e6204a07c493d0a0f9f50773fe8f32"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 585; y: 245
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2496
+ hash: "2a1814768ae500ba9c24bc2e3e4de1d5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 582; y: 245
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2512
+ hash: "7cf6e3c52d12d590beafd061979a49cb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 574; y: 245
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 565; y: 246
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2528
+ hash: "c66c36642ab7f6c32b45e27de38d23b6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 553; y: 246
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2544
+ hash: "6e003380cc6fd303ae3b499863225ba5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 538; y: 246
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2560
+ hash: "a790259cea2c247493be58c6018435b9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 523; y: 247
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 523; y: 247
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2576
+ hash: "e6cce7468a27b5063821df8dbaa15c18"
+ }
+ Frame {
+ msec: 2592
+ hash: "ff8386cbe89aeac184f4a75237ef4a14"
+ }
+ Frame {
+ msec: 2608
+ hash: "1a11a90853b025837b991be40efb78f8"
+ }
+ Frame {
+ msec: 2624
+ hash: "17da10de7e2d2fcf125207e2873bdee8"
+ }
+ Frame {
+ msec: 2640
+ hash: "dfbda435d05903cc3a31f4f8f31e8985"
+ }
+ Frame {
+ msec: 2656
+ hash: "1f3753e809099f20c6289f150a096935"
+ }
+ Frame {
+ msec: 2672
+ hash: "9454afc9d70103e1f1c00eb0ad2ca534"
+ }
+ Frame {
+ msec: 2688
+ hash: "860ab90e2421a0c8faab304915b5e6f2"
+ }
+ Frame {
+ msec: 2704
+ hash: "600258507426a8c3c89e3591ee9328f1"
+ }
+ Frame {
+ msec: 2720
+ hash: "0795a607b893da2bdc0970195f3039fd"
+ }
+ Frame {
+ msec: 2736
+ hash: "e300b9109e242d85537fc3f4461eaf8e"
+ }
+ Frame {
+ msec: 2752
+ hash: "dbb84b38e2bda694f210f133dc133180"
+ }
+ Frame {
+ msec: 2768
+ hash: "2455e9de47da4db88eef35fea1dc2abe"
+ }
+ Frame {
+ msec: 2784
+ hash: "5f0c3d7e089c921a68813a48f0fd8844"
+ }
+ Frame {
+ msec: 2800
+ hash: "e6d9e7d0fdc724a6a1804bc94629cab4"
+ }
+ Frame {
+ msec: 2816
+ hash: "d177183bcbaa27ad061fd88bd037277d"
+ }
+ Frame {
+ msec: 2832
+ hash: "78dd13fa6367abd14374462d89a3d066"
+ }
+ Frame {
+ msec: 2848
+ hash: "41d12e4c362ccc99a1a04b3a09f0e68c"
+ }
+ Frame {
+ msec: 2864
+ hash: "5112700bf72aacb176e63ef054fce244"
+ }
+ Frame {
+ msec: 2880
+ image: "test-pathview-2.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "0257e67512c62ffc42a272fd304e4ed3"
+ }
+ Frame {
+ msec: 2912
+ hash: "42cd0a98aa0f3768cf77aac284072fa9"
+ }
+ Frame {
+ msec: 2928
+ hash: "811d27f89b0c434fc49e4280f85c2f27"
+ }
+ Frame {
+ msec: 2944
+ hash: "887406c50c666d08e4d98c040efae9a5"
+ }
+ Frame {
+ msec: 2960
+ hash: "27e10fa9d82920c7f761465501d44564"
+ }
+ Frame {
+ msec: 2976
+ hash: "ba67dbe0010ba2aae3ca100886b11553"
+ }
+ Frame {
+ msec: 2992
+ hash: "8064db575e2c74c0faf7782adc527a08"
+ }
+ Frame {
+ msec: 3008
+ hash: "b7fd5446ad957610ab853e0c597b9a36"
+ }
+ Frame {
+ msec: 3024
+ hash: "092b53eb50e91d74db7899328899cfd3"
+ }
+ Frame {
+ msec: 3040
+ hash: "0346065ad603b41db9365987ebe81586"
+ }
+ Frame {
+ msec: 3056
+ hash: "705083f27a338fea544c9806f0d8fcb3"
+ }
+ Frame {
+ msec: 3072
+ hash: "fc29b4888e26deec4c983e487b9bd058"
+ }
+ Frame {
+ msec: 3088
+ hash: "0ff734e0509908eba292c1814f677e5b"
+ }
+ Frame {
+ msec: 3104
+ hash: "7181d9011ddd3ad49ee95fac2e146b12"
+ }
+ Frame {
+ msec: 3120
+ hash: "4478b07b0331bb30e60f23ee74475f73"
+ }
+ Frame {
+ msec: 3136
+ hash: "514aa7a4b1230ae1701004f479eeb5f2"
+ }
+ Frame {
+ msec: 3152
+ hash: "56e51f8f36e0f1a5a4b6b21c41151375"
+ }
+ Frame {
+ msec: 3168
+ hash: "f58216f12e507a91482ded5372f960c7"
+ }
+ Frame {
+ msec: 3184
+ hash: "18e8675ca5ea7ade7e32b29f1632e1ff"
+ }
+ Frame {
+ msec: 3200
+ hash: "13ec0166cc7dd82042e596739c598a1e"
+ }
+ Frame {
+ msec: 3216
+ hash: "5cebf9afa912b17ac3161619d238e5da"
+ }
+ Frame {
+ msec: 3232
+ hash: "f096b191e347b7e2eab51b6adc1a5aac"
+ }
+ Frame {
+ msec: 3248
+ hash: "81cffc13a615ab673172912760863c08"
+ }
+ Frame {
+ msec: 3264
+ hash: "e89c7acfc07bc0eb6e9740d545400064"
+ }
+ Frame {
+ msec: 3280
+ hash: "e681f06f57d43a38acb29a3cb45e4384"
+ }
+ Frame {
+ msec: 3296
+ hash: "945bfe7808fb620dc3f7ad887183244c"
+ }
+ Frame {
+ msec: 3312
+ hash: "4d1fc53701adce4e4af87c32e6c5a8de"
+ }
+ Frame {
+ msec: 3328
+ hash: "c42bbf27e800558fab33bc6e9a0f36b9"
+ }
+ Frame {
+ msec: 3344
+ hash: "5f48f59812b17a9be466f0601f0ed0df"
+ }
+ Frame {
+ msec: 3360
+ hash: "f3a3f645115077b7aeb66465280b7a16"
+ }
+ Frame {
+ msec: 3376
+ hash: "d1c295b2157001ff1020515f4b2aceaa"
+ }
+ Frame {
+ msec: 3392
+ hash: "e5f364e0e4bd75dd04280f6b6f48b8ba"
+ }
+ Frame {
+ msec: 3408
+ hash: "f439df4b5907ba0201c0dad934115721"
+ }
+ Frame {
+ msec: 3424
+ hash: "2e7eb0e999792f3aa87c63865f68d26b"
+ }
+ Frame {
+ msec: 3440
+ hash: "45d3ccb3b03adc8323445207d2dca502"
+ }
+ Frame {
+ msec: 3456
+ hash: "c345f92a25406e33256bfe47dc7f72f3"
+ }
+ Frame {
+ msec: 3472
+ hash: "dcb2663d27d644c0b50aa7386aa9d488"
+ }
+ Frame {
+ msec: 3488
+ hash: "ebe4b9eaf39676bcdd968f8517efa222"
+ }
+ Frame {
+ msec: 3504
+ hash: "deb3e3e6fdf8fe18de907f88822538e8"
+ }
+ Frame {
+ msec: 3520
+ hash: "30e8ab0e6cf32a45190c4b29e458d858"
+ }
+ Frame {
+ msec: 3536
+ hash: "059e6f57c2c78a25ab8b515c878231f9"
+ }
+ Frame {
+ msec: 3552
+ hash: "fa7621f338ae187edac5cb69b22e64b3"
+ }
+ Frame {
+ msec: 3568
+ hash: "bf287cbb0963fc8e575cd95808e1983d"
+ }
+ Frame {
+ msec: 3584
+ hash: "741dc09e0ae13d6afbdaae701cb699ef"
+ }
+ Frame {
+ msec: 3600
+ hash: "8dd52007df5585aed4b9737a8314a74d"
+ }
+ Frame {
+ msec: 3616
+ hash: "ddcd945a3a4467d8dd0b7a4197aafed5"
+ }
+ Frame {
+ msec: 3632
+ hash: "015deb5f228fa2f77978315ccca4f4c8"
+ }
+ Frame {
+ msec: 3648
+ hash: "e1c960e966873e694837fd98f231cfcb"
+ }
+ Frame {
+ msec: 3664
+ hash: "17a177d37b427d9488e36d19b345a397"
+ }
+ Frame {
+ msec: 3680
+ hash: "d4aded08d04f79d50536ecf539c0583d"
+ }
+ Frame {
+ msec: 3696
+ hash: "72890e9b84acf9df6083e23ab9270da1"
+ }
+ Frame {
+ msec: 3712
+ hash: "313859115de570f8d41f67c4db7cf49e"
+ }
+ Frame {
+ msec: 3728
+ hash: "98918d73b6d6b375db53470dd72c7b35"
+ }
+ Frame {
+ msec: 3744
+ hash: "ff706517a4d257747893c11a3b059926"
+ }
+ Frame {
+ msec: 3760
+ hash: "73e62664a31232c1a349568c8da6ce64"
+ }
+ Frame {
+ msec: 3776
+ hash: "bed046c6eae90d267e859cd76d3eacfb"
+ }
+ Frame {
+ msec: 3792
+ hash: "4643348fc1b47f0d3244e7e717247953"
+ }
+ Frame {
+ msec: 3808
+ hash: "0305bfc35b5618da19e9eabb3c1b5d2b"
+ }
+ Frame {
+ msec: 3824
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3840
+ image: "test-pathview-2.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3872
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3888
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3904
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3920
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3936
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3952
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3968
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 3984
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4000
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4016
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 305; y: 280
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4032
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 305; y: 281
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4048
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 306; y: 281
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4064
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 308; y: 281
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4080
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 310; y: 282
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4096
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 313; y: 283
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 317; y: 283
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4112
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 321; y: 283
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4128
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 328; y: 283
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4144
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 341; y: 283
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 347; y: 282
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4160
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 360; y: 281
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4176
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 385; y: 282
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4192
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 433; y: 292
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 486; y: 307
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4208
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 538; y: 322
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4224
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 588; y: 336
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4240
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 620; y: 343
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 677; y: 354
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4256
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 733; y: 362
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4272
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 785; y: 365
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4288
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 830; y: 365
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 861; y: 357
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4304
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 879; y: 346
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4320
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 888; y: 335
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4336
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 893; y: 326
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 893; y: 326
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4352
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4368
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4384
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4400
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4416
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4432
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4448
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4464
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4480
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4496
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4512
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4528
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4544
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4560
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4576
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4592
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4608
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4624
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4640
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4656
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4672
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4688
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4704
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4720
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4736
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4752
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4768
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4784
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4800
+ image: "test-pathview-2.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4832
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4848
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4864
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4880
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4896
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4912
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4928
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4944
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4960
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4976
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 4992
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5008
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5024
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5040
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5056
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5072
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5088
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5104
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5120
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5136
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5152
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5168
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5184
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5200
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5216
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5232
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5248
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5264
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5280
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5296
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5312
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5328
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5344
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5360
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Frame {
+ msec: 5376
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 242; y: 280
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5392
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 244; y: 280
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 246; y: 281
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5408
+ hash: "754f9689239e6154a762a6a1e9e0131b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 251; y: 282
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5424
+ hash: "ba4e61f8de7f078cfc1e5fc8dd3c65f3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 261; y: 282
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5440
+ hash: "00389598468dbd1a90cada9543715770"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 300; y: 279
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5456
+ hash: "ab020b76bc23554e176bd3a59712c3bc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 350; y: 282
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5472
+ hash: "96483c5c51cc851c55166b13617b12ea"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 417; y: 290
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5488
+ hash: "1ad679d1400a0f185a380a75840c6a50"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 500; y: 300
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 585; y: 309
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5504
+ hash: "b5ed338d402d16a831c0595311350789"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 669; y: 315
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 669; y: 315
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5520
+ hash: "bf51ff7b6f264170d9c5700559e03262"
+ }
+ Frame {
+ msec: 5536
+ hash: "0d62681e661aad7b67b880e13afeb4de"
+ }
+ Frame {
+ msec: 5552
+ hash: "3371739270c458d4ce8a08f2e12d4ba5"
+ }
+ Frame {
+ msec: 5568
+ hash: "db271b0ebfa0172d8386ac9afde9f296"
+ }
+ Frame {
+ msec: 5584
+ hash: "d64c064ab483c9636b2736c67b2b1a48"
+ }
+ Frame {
+ msec: 5600
+ hash: "20a8ccb0ff1c0d5ff606b343f1a32bff"
+ }
+ Frame {
+ msec: 5616
+ hash: "5547bb0a4d6b51733829597b9d8d141a"
+ }
+ Frame {
+ msec: 5632
+ hash: "1135177a5cb24aa11372653985599775"
+ }
+ Frame {
+ msec: 5648
+ hash: "5031ea6ca8ec59155edb7c1f10f77925"
+ }
+ Frame {
+ msec: 5664
+ hash: "7c5c1015af23f32c002a24a880201883"
+ }
+ Frame {
+ msec: 5680
+ hash: "c1dd3ad07775d74d2e81b830d07543e0"
+ }
+ Frame {
+ msec: 5696
+ hash: "ad6651f644be3c6f1ebf340809fe516f"
+ }
+ Frame {
+ msec: 5712
+ hash: "1eb69541ae67d9d9193b86a6592de4c2"
+ }
+ Frame {
+ msec: 5728
+ hash: "c9c40ec693a421243804efb8f99707f4"
+ }
+ Frame {
+ msec: 5744
+ hash: "832884a5102069ca085001156a04e74e"
+ }
+ Frame {
+ msec: 5760
+ image: "test-pathview-2.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "df0c7d73069e1087d34c7a703197cb2a"
+ }
+ Frame {
+ msec: 5792
+ hash: "4a8e1f548e48b86140aa1a5fa8b17bd3"
+ }
+ Frame {
+ msec: 5808
+ hash: "f79f47e3a0c16a1361fa287a594c4673"
+ }
+ Frame {
+ msec: 5824
+ hash: "c26da5ed2e4055f5c172b48163560143"
+ }
+ Frame {
+ msec: 5840
+ hash: "0e971cd0c2e25d52b689d4b22509a7d9"
+ }
+ Frame {
+ msec: 5856
+ hash: "40bae0ef35772c476cddccc034b7c872"
+ }
+ Frame {
+ msec: 5872
+ hash: "ce1fc0faae5e313bc21e024dac3097da"
+ }
+ Frame {
+ msec: 5888
+ hash: "ba614972cec0e9fa47cb09f1ba77eefb"
+ }
+ Frame {
+ msec: 5904
+ hash: "2266ae29490ae01ff8a2329956c124a7"
+ }
+ Frame {
+ msec: 5920
+ hash: "debae0194926cb5af0a8f7fdfb7f08b8"
+ }
+ Frame {
+ msec: 5936
+ hash: "10a7111367cfcbe24063b9ee6975e4fc"
+ }
+ Frame {
+ msec: 5952
+ hash: "3c0f9e0603e33506f31ff6569d007b97"
+ }
+ Frame {
+ msec: 5968
+ hash: "69d92abce3f093cc7610bd715a7396fa"
+ }
+ Frame {
+ msec: 5984
+ hash: "befad9882a6af920684d94c74d8d7f78"
+ }
+ Frame {
+ msec: 6000
+ hash: "10632052ac53504bd36687ba7aa7ebc1"
+ }
+ Frame {
+ msec: 6016
+ hash: "af4053320c12cbcc6f0e7e321dba1c83"
+ }
+ Frame {
+ msec: 6032
+ hash: "4560c5fcef9d630d744e80dc46947b9d"
+ }
+ Frame {
+ msec: 6048
+ hash: "012ee780ed98131321aaa241a2599c5f"
+ }
+ Frame {
+ msec: 6064
+ hash: "25d3fb9d44bc2be3b86a5451d8ffaec2"
+ }
+ Frame {
+ msec: 6080
+ hash: "09c5cbff81a5c9fae40ec29b936ee52b"
+ }
+ Frame {
+ msec: 6096
+ hash: "27a0b1d2ea2fc8729e5542c6462c1815"
+ }
+ Frame {
+ msec: 6112
+ hash: "c6f347c942aed190ebee077b5bd0888c"
+ }
+ Frame {
+ msec: 6128
+ hash: "029d78844bd72acb310bd2887489bdf0"
+ }
+ Frame {
+ msec: 6144
+ hash: "3af16ab398f1515e90e81460ac061a74"
+ }
+ Frame {
+ msec: 6160
+ hash: "0151ca050722645e2899919f79f6aa0b"
+ }
+ Frame {
+ msec: 6176
+ hash: "eead61dfc1851bc9fba3b4bca510af6a"
+ }
+ Frame {
+ msec: 6192
+ hash: "da822098c606556ad8683316f5a821ab"
+ }
+ Frame {
+ msec: 6208
+ hash: "ee47fc2bcf2264f5799a76308fbf2b65"
+ }
+ Frame {
+ msec: 6224
+ hash: "81b208b84ca887d35cda79b5c0e4cd4e"
+ }
+ Frame {
+ msec: 6240
+ hash: "fd52ccaddcb79a2dfa12bb57640a3610"
+ }
+ Frame {
+ msec: 6256
+ hash: "b187e8fcd0a777657a733c260aaaf557"
+ }
+ Frame {
+ msec: 6272
+ hash: "2cfe47a86bf9df3704002288b6249ed9"
+ }
+ Frame {
+ msec: 6288
+ hash: "b79b81706f62789a15557ac1a017addf"
+ }
+ Frame {
+ msec: 6304
+ hash: "77a84eb447fe7034783678f6903ff76d"
+ }
+ Frame {
+ msec: 6320
+ hash: "82529385d3072812fa737193914ece1c"
+ }
+ Frame {
+ msec: 6336
+ hash: "a7ccfa6c8aebf2016f2f12045d2f1abe"
+ }
+ Frame {
+ msec: 6352
+ hash: "486d38e7ea6a5cf13f2ecd1c6919ece7"
+ }
+ Frame {
+ msec: 6368
+ hash: "6c5bd377d2289ec88f969e961f1dcf65"
+ }
+ Frame {
+ msec: 6384
+ hash: "92e20565fbcf8c7c9a67726f3a0dd41f"
+ }
+ Frame {
+ msec: 6400
+ hash: "0fcd995a26262b875440d0d9f03d16c4"
+ }
+ Frame {
+ msec: 6416
+ hash: "f679759eddca739764bd2816ee53ef31"
+ }
+ Frame {
+ msec: 6432
+ hash: "adffd1da9b750df3d9f48820a2235c0b"
+ }
+ Frame {
+ msec: 6448
+ hash: "e0f8730acf7a6802ade228f95d700c08"
+ }
+ Frame {
+ msec: 6464
+ hash: "2c5209c3715bb9f39ac23a8b32a17ef9"
+ }
+ Frame {
+ msec: 6480
+ hash: "741694ef4cbd3477a8e13ba89fc9d607"
+ }
+ Frame {
+ msec: 6496
+ hash: "e88d6a61acb3fde6b441c2e718a0c2fb"
+ }
+ Frame {
+ msec: 6512
+ hash: "b91863800e6ab967616d68def388d5d5"
+ }
+ Frame {
+ msec: 6528
+ hash: "4c28a99236c351a2e3e3301c0b5bbba8"
+ }
+ Frame {
+ msec: 6544
+ hash: "6affb524d7f63fef94d29629a148be04"
+ }
+ Frame {
+ msec: 6560
+ hash: "f7823d25adf673117f010738d977b787"
+ }
+ Frame {
+ msec: 6576
+ hash: "dfb930f3db30ec53c8e9a1aa5d9056e4"
+ }
+ Frame {
+ msec: 6592
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6608
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6624
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6640
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6656
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6672
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6688
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6704
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6720
+ image: "test-pathview-2.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6752
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6768
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6784
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6800
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6816
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6832
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6848
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6864
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6880
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6896
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6912
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6928
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6944
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6960
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6976
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 6992
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7008
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7024
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7040
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7056
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7072
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7088
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7104
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7120
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7136
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7152
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7168
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7184
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7200
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7216
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7232
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7248
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+ Frame {
+ msec: 7264
+ hash: "57269234dc01b66f6aeb841c328c06b5"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicspathview/test-pathview-2.qml b/tests/auto/declarative/visual/qmlgraphicspathview/test-pathview-2.qml
new file mode 100644
index 0000000..c6d71d5
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspathview/test-pathview-2.qml
@@ -0,0 +1,62 @@
+import Qt 4.6
+
+Rectangle {
+ width: 800; height: 450
+ //Same as test-pathview, but with pathItemCount < model.count
+
+ ListModel {
+ id: rssModel
+ ListElement { lColor: "red" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "gray" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "thistle" }
+ }
+
+ Component {
+ id: photoDelegate
+ Rectangle {
+ id: wrapper
+ width: 85; height: 85; color: lColor
+ scale: wrapper.PathView.scale
+
+ transform: Rotation {
+ id: itemRotation; origin.x: wrapper.width/2; origin.y: wrapper.height/2
+ axis.y: 1; axis.z: 0; angle: wrapper.PathView.angle
+ }
+ }
+ }
+
+ PathView {
+ id: pathView; model: rssModel; delegate: photoDelegate
+ y: 100; width: 800; height: 330; pathItemCount: 6; z: 1
+ focus: true
+ path: Path {
+ startX: -50; startY: 40;
+
+ PathAttribute { name: "scale"; value: 0.5 }
+ PathAttribute { name: "angle"; value: -45 }
+
+ PathCubic {
+ x: 400; y: 220
+ control1X: 140; control1Y: 40
+ control2X: 210; control2Y: 220
+ }
+
+ PathAttribute { name: "scale"; value: 1.2 }
+ PathAttribute { name: "angle"; value: 0 }
+
+ PathCubic {
+ x: 850; y: 40
+ control2X: 660; control2Y: 40
+ control1X: 590; control1Y: 220
+ }
+
+ PathAttribute { name: "scale"; value: 0.5 }
+ PathAttribute { name: "angle"; value: 45 }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.0.png b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.0.png
new file mode 100644
index 0000000..f474afe
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.1.png b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.1.png
new file mode 100644
index 0000000..8b7ae74
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.2.png b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.2.png
new file mode 100644
index 0000000..9088bb4
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.3.png b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.3.png
new file mode 100644
index 0000000..18cd429
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.4.png b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.4.png
new file mode 100644
index 0000000..739afc1
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.5.png b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.5.png
new file mode 100644
index 0000000..93f0682
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.qml b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.qml
new file mode 100644
index 0000000..7091bb3
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/dynamic.qml
@@ -0,0 +1,1603 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 32
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 48
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 64
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 80
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 96
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 112
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 128
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 144
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 160
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 176
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 192
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 208
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 224
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 240
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 256
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 272
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 288
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 304
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 320
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 336
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 352
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 368
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 384
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 400
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 416
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 432
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 448
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 464
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 480
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 496
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 512
+ hash: "ee42cfa8cbbd67becb7d50998d26fe73"
+ }
+ Frame {
+ msec: 528
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 544
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 560
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 576
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 592
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 608
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 624
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 640
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 656
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 672
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 688
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 704
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 720
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 736
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 752
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 768
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 784
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 800
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 816
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 832
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 848
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 864
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 880
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 896
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 912
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 928
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 944
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 960
+ image: "dynamic.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 992
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 1008
+ hash: "62727b1025930e19bb03c8f533a12ced"
+ }
+ Frame {
+ msec: 1024
+ hash: "3e52e7d7d428cf1b850cb9c60dbb3c21"
+ }
+ Frame {
+ msec: 1040
+ hash: "64f75ab14c979d33d6e0c0d86b76cd35"
+ }
+ Frame {
+ msec: 1056
+ hash: "c198a48f4050f176465649d203d6e09a"
+ }
+ Frame {
+ msec: 1072
+ hash: "6dd8cee5a585a96e78f2cf7478c4da62"
+ }
+ Frame {
+ msec: 1088
+ hash: "09edfbce2ea4b8a547f769ce709dcb6b"
+ }
+ Frame {
+ msec: 1104
+ hash: "e93d01aa6e4f5d3fc82cf5a008e3ea17"
+ }
+ Frame {
+ msec: 1120
+ hash: "0e2e7b5eec0e62853972b0139b8c17c6"
+ }
+ Frame {
+ msec: 1136
+ hash: "26d4f54628ce20f5665bdc6ddc7f3b6a"
+ }
+ Frame {
+ msec: 1152
+ hash: "59836aa6eff85b0152be352b97076d89"
+ }
+ Frame {
+ msec: 1168
+ hash: "47cc9894096731a52ca342ab04df9aad"
+ }
+ Frame {
+ msec: 1184
+ hash: "ec95dd3b34a0f17f6fb9b5bedab73653"
+ }
+ Frame {
+ msec: 1200
+ hash: "e32c2b70882828b5082ca3ec889a0dde"
+ }
+ Frame {
+ msec: 1216
+ hash: "68d3f8e9c9d5388a6f8360368c8f4d2f"
+ }
+ Frame {
+ msec: 1232
+ hash: "17378b2bd8bde7f357fa5463f457c7b2"
+ }
+ Frame {
+ msec: 1248
+ hash: "03db786cd54ec34ce8db15953a5fc847"
+ }
+ Frame {
+ msec: 1264
+ hash: "9e22a82a622ed0287c44cc629059d5bd"
+ }
+ Frame {
+ msec: 1280
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1296
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1312
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1328
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1344
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1360
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1376
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1392
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1408
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1424
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1440
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1456
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1472
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1488
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1504
+ hash: "42955cd23747f7c37d0f0229c0955e90"
+ }
+ Frame {
+ msec: 1520
+ hash: "981fb1ee75e307b548a32df08a86f4cd"
+ }
+ Frame {
+ msec: 1536
+ hash: "f77568307e93d8cd9f0ae417cc19d6e3"
+ }
+ Frame {
+ msec: 1552
+ hash: "3bdd4468e26aceee0dad6b3b97b1c1ea"
+ }
+ Frame {
+ msec: 1568
+ hash: "252c9ebc2c32755b2289ee1b03877fe3"
+ }
+ Frame {
+ msec: 1584
+ hash: "64169b7eb7b7ae8573556c5f80230965"
+ }
+ Frame {
+ msec: 1600
+ hash: "4965dfa709a9ac7d8f7dfb4bf8303c65"
+ }
+ Frame {
+ msec: 1616
+ hash: "8c53cf92510154087341ac65a93aae5a"
+ }
+ Frame {
+ msec: 1632
+ hash: "4dd7502e3e238743d2f3cf038270491e"
+ }
+ Frame {
+ msec: 1648
+ hash: "cd9a58316837eb92f4ac92dbd86bdba3"
+ }
+ Frame {
+ msec: 1664
+ hash: "5de043e3ac8696b59293a2fa60ed7e65"
+ }
+ Frame {
+ msec: 1680
+ hash: "1bf42a6f6be5a3468d2f47cccfac761e"
+ }
+ Frame {
+ msec: 1696
+ hash: "ca05510c1ad25e5d3b002603f4379a09"
+ }
+ Frame {
+ msec: 1712
+ hash: "f6904a918a6475f1965d74372e52a4b1"
+ }
+ Frame {
+ msec: 1728
+ hash: "9e2312ddfc1648b615288107a06c9f9c"
+ }
+ Frame {
+ msec: 1744
+ hash: "95c470273b1cb08d4d602efcce339554"
+ }
+ Frame {
+ msec: 1760
+ hash: "dade96f707d4a21885480e13b258b7e9"
+ }
+ Frame {
+ msec: 1776
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1792
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1808
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1824
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1840
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1856
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1872
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1888
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1904
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1920
+ image: "dynamic.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1952
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1968
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 1984
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 2000
+ hash: "0bfbd46f1d4cf562253fb383776cb601"
+ }
+ Frame {
+ msec: 2016
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2032
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2048
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2064
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2080
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2096
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2112
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2128
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2144
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2160
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2176
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2192
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2208
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2224
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2240
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2256
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2272
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2288
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2304
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2320
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2336
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2352
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2368
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2384
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2400
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2416
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2432
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2448
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2464
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2480
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2496
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2512
+ hash: "6fc83e8d4ac99b34062c122a8f7f1850"
+ }
+ Frame {
+ msec: 2528
+ hash: "fabf4e535bc4cc17497939d2eeae4a2d"
+ }
+ Frame {
+ msec: 2544
+ hash: "a7981035f46869f5ae824d0c58b263b2"
+ }
+ Frame {
+ msec: 2560
+ hash: "86d8e369bdceb499b244f84ed9e80ba3"
+ }
+ Frame {
+ msec: 2576
+ hash: "e28a7dc7ea8690da75670b5a6e93a26b"
+ }
+ Frame {
+ msec: 2592
+ hash: "bf4e815360a67bd80732bd8812269b21"
+ }
+ Frame {
+ msec: 2608
+ hash: "a6f8c56cb93da8acc0c90e35596a60d4"
+ }
+ Frame {
+ msec: 2624
+ hash: "1e60656f0758605169e51b57bd03af36"
+ }
+ Frame {
+ msec: 2640
+ hash: "c069b26b9fae47e0104070d702ba9562"
+ }
+ Frame {
+ msec: 2656
+ hash: "457eb2ca1adff6cbb158afa140b2f20b"
+ }
+ Frame {
+ msec: 2672
+ hash: "4e5e750b0d94b6777aebff85d38225d9"
+ }
+ Frame {
+ msec: 2688
+ hash: "96d9840c2354a8786a8470309be97544"
+ }
+ Frame {
+ msec: 2704
+ hash: "ac7570cc7eeff1acd8c47f2d9328f8be"
+ }
+ Frame {
+ msec: 2720
+ hash: "887f937bb263c54f29659f27f2b7a3e3"
+ }
+ Frame {
+ msec: 2736
+ hash: "616371183c82b97f69a4c6e2367b8066"
+ }
+ Frame {
+ msec: 2752
+ hash: "36de8ffa9abe850fb681b37aea45ef8b"
+ }
+ Frame {
+ msec: 2768
+ hash: "0505101f0edaaf7ff17deeaaddc6bbf9"
+ }
+ Frame {
+ msec: 2784
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2800
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2816
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2832
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2848
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2864
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2880
+ image: "dynamic.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2912
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2928
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2944
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2960
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2976
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 2992
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 3008
+ hash: "e8c53dd8343d7d4c384c2f8507ff0631"
+ }
+ Frame {
+ msec: 3024
+ hash: "99e4d853d64a381e8db27707b5ff2b25"
+ }
+ Frame {
+ msec: 3040
+ hash: "ab0e62aeffc0d57a5e1d63e6cf49b809"
+ }
+ Frame {
+ msec: 3056
+ hash: "4ab11bbf1fb6adb0eec8895f78a24a41"
+ }
+ Frame {
+ msec: 3072
+ hash: "634ff2ceb39a3f263a3362238a4ae252"
+ }
+ Frame {
+ msec: 3088
+ hash: "7f4856873dc23a02297b2497101de9b9"
+ }
+ Frame {
+ msec: 3104
+ hash: "bca3919e9d8e6dc5badd8090401dc934"
+ }
+ Frame {
+ msec: 3120
+ hash: "824bfe40c3657cfe1368563640e4cfce"
+ }
+ Frame {
+ msec: 3136
+ hash: "f831c1600f68bda139697c406ca70c5e"
+ }
+ Frame {
+ msec: 3152
+ hash: "f8102ca251a9ff46a8fe5a24cff0d2d6"
+ }
+ Frame {
+ msec: 3168
+ hash: "f33407ad684aa16efc6615d1cf6fa4b9"
+ }
+ Frame {
+ msec: 3184
+ hash: "a73d27f776a6ebfc90309b34421700e5"
+ }
+ Frame {
+ msec: 3200
+ hash: "ff2a4e2663fc50dfec35152f0e79f935"
+ }
+ Frame {
+ msec: 3216
+ hash: "4935f5f58f2672e9d240625151044bda"
+ }
+ Frame {
+ msec: 3232
+ hash: "f3ad5c203f621fe4d5d321c3c1880743"
+ }
+ Frame {
+ msec: 3248
+ hash: "d4fb7cd2e1f6a533dae65ddbb50da8ac"
+ }
+ Frame {
+ msec: 3264
+ hash: "91705e9234c4f02d0a730f6270f9e95f"
+ }
+ Frame {
+ msec: 3280
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3296
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3312
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3328
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3344
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3360
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3376
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3392
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3408
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3424
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3440
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3456
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3472
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3488
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3504
+ hash: "41e177bec783497b996d6d5f6dac1a15"
+ }
+ Frame {
+ msec: 3520
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3536
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3552
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3568
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3584
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3600
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3616
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3632
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3648
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3664
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3680
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3696
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3712
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3728
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3744
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3760
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3776
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3792
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3808
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3824
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3840
+ image: "dynamic.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3872
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3888
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3904
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3920
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3936
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3952
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3968
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 3984
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4000
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4016
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4032
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4048
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4064
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4080
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4096
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4112
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4128
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4144
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4160
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4176
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4192
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4208
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4224
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4240
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4256
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4272
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4288
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4304
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4320
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4336
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4352
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4368
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4384
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4400
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4416
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4432
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4448
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4464
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4480
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4496
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4512
+ hash: "496dc6261695bcf04a8e574146544e98"
+ }
+ Frame {
+ msec: 4528
+ hash: "9681be99003f8a14cc5654d06d2c8255"
+ }
+ Frame {
+ msec: 4544
+ hash: "bcb592a2335aa2e35956881fd028f4e6"
+ }
+ Frame {
+ msec: 4560
+ hash: "f914b25fdcb02a02b71220d82b7b2a75"
+ }
+ Frame {
+ msec: 4576
+ hash: "63c82c08eb7f2bd50b54b94c952df3f2"
+ }
+ Frame {
+ msec: 4592
+ hash: "8a8dc82be81fa55605c6c2e749895120"
+ }
+ Frame {
+ msec: 4608
+ hash: "271f8d79b8052dfcd840ffa9ba9ffeec"
+ }
+ Frame {
+ msec: 4624
+ hash: "8f77bbd0585b57e69ac1919bd81ee3b1"
+ }
+ Frame {
+ msec: 4640
+ hash: "b974260a2f90e141ebc33ced98fbca88"
+ }
+ Frame {
+ msec: 4656
+ hash: "77ada180f8a45652a6fa636d7ece4d9d"
+ }
+ Frame {
+ msec: 4672
+ hash: "4c8dc2e33cd989cb3b0938c6c75b5f95"
+ }
+ Frame {
+ msec: 4688
+ hash: "a145954989508b925a444e14f0c27a20"
+ }
+ Frame {
+ msec: 4704
+ hash: "8d27ff203819174747ae4a5cee8d0ae8"
+ }
+ Frame {
+ msec: 4720
+ hash: "830f34b0dab780c6efe2294872ba8508"
+ }
+ Frame {
+ msec: 4736
+ hash: "5d70a4bbd815569cfe5735b596bad080"
+ }
+ Frame {
+ msec: 4752
+ hash: "964527bb82ea006e03b030c787a8597c"
+ }
+ Frame {
+ msec: 4768
+ hash: "1ad54954b818fa9e6032ac4b6114e7db"
+ }
+ Frame {
+ msec: 4784
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4800
+ image: "dynamic.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4832
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4848
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4864
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4880
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4896
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4912
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4928
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4944
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4960
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4976
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 4992
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 5008
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 5024
+ hash: "47865243cc252aef67774001af70c54c"
+ }
+ Frame {
+ msec: 5040
+ hash: "baeb8adffc13e230e797e0437f2ad5fa"
+ }
+ Frame {
+ msec: 5056
+ hash: "d2e440fcad0ee2b7b35d7e5c4e581f73"
+ }
+ Frame {
+ msec: 5072
+ hash: "fb8acb2f69234d3ee089281d0297ad7c"
+ }
+ Frame {
+ msec: 5088
+ hash: "7fda29a83dc535ed8d6b35e999400311"
+ }
+ Frame {
+ msec: 5104
+ hash: "6482e3eb10cfdbdeb57dd38ba3e3d67e"
+ }
+ Frame {
+ msec: 5120
+ hash: "4d222549bc2565c1598a532460aae4e6"
+ }
+ Frame {
+ msec: 5136
+ hash: "776d1b0f9945c0e1ceda0cf117264919"
+ }
+ Frame {
+ msec: 5152
+ hash: "f2c362b34a0982ee1a11dea6b063945e"
+ }
+ Frame {
+ msec: 5168
+ hash: "115f02b8893972b5b1d63525ce70762e"
+ }
+ Frame {
+ msec: 5184
+ hash: "7f2d53581fe2c6c45a628fa4cd9b5742"
+ }
+ Frame {
+ msec: 5200
+ hash: "b5ed1120c4edf842b15d5144adbd93b0"
+ }
+ Frame {
+ msec: 5216
+ hash: "3511938df57c4cdce316692de204b057"
+ }
+ Frame {
+ msec: 5232
+ hash: "99583918d068ab5d132fe7a699c2a7a6"
+ }
+ Frame {
+ msec: 5248
+ hash: "c0ce9df18479dbb57fb1dbc777f4f0e5"
+ }
+ Frame {
+ msec: 5264
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5280
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5296
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5312
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5328
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5344
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5360
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5376
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5392
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5408
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5424
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5440
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5456
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5472
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5488
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5504
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5520
+ hash: "b24db7b5c406328380fcf9927fb26c5c"
+ }
+ Frame {
+ msec: 5536
+ hash: "98cc64411264d8a635a6afe6b11cee6e"
+ }
+ Frame {
+ msec: 5552
+ hash: "b86434b7af8ad1db946c43a2791d69ab"
+ }
+ Frame {
+ msec: 5568
+ hash: "f45616f9e33658d1dddb537e842c8768"
+ }
+ Frame {
+ msec: 5584
+ hash: "e49d8955e27cdc19a37c331e56c81af1"
+ }
+ Frame {
+ msec: 5600
+ hash: "b2dbe764906b50195f65dc11a5842515"
+ }
+ Frame {
+ msec: 5616
+ hash: "71ce7c63d65c29cdffd83f5ae07f0b93"
+ }
+ Frame {
+ msec: 5632
+ hash: "901d01e1fc777ec185cd023ad0ace4c1"
+ }
+ Frame {
+ msec: 5648
+ hash: "a3f31de30fc2e92bae1f735504216216"
+ }
+ Frame {
+ msec: 5664
+ hash: "0fc52dd8102506e3e7671fa548551b23"
+ }
+ Frame {
+ msec: 5680
+ hash: "fb92809e728416035dbb91116ad8fe0e"
+ }
+ Frame {
+ msec: 5696
+ hash: "9003dc8ca4f781909035cb03dc45864f"
+ }
+ Frame {
+ msec: 5712
+ hash: "2bff1de793ad8521fd54413849c3cf29"
+ }
+ Frame {
+ msec: 5728
+ hash: "8362e4db7c4446282d844a4fc6632d19"
+ }
+ Frame {
+ msec: 5744
+ hash: "b874fa274c6ec77c106ff4a0288f9169"
+ }
+ Frame {
+ msec: 5760
+ image: "dynamic.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5792
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5808
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5824
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5840
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5856
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5872
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5888
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5904
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5920
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5936
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5952
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5968
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 5984
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 6000
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 6016
+ hash: "e64ac8e11e36cafb25c947c5802d54b9"
+ }
+ Frame {
+ msec: 6032
+ hash: "7621e64568058b82bcb6f6b46cee3ebc"
+ }
+ Frame {
+ msec: 6048
+ hash: "f77f6de6fc88813f49427b4888a59dbf"
+ }
+ Frame {
+ msec: 6064
+ hash: "d3a48f596219372ac25941e4c5ec5b2b"
+ }
+ Frame {
+ msec: 6080
+ hash: "d572d932b613f9ca1e0acf144f127dd1"
+ }
+ Frame {
+ msec: 6096
+ hash: "edf317eaf51d933bcd0f57f214921a81"
+ }
+ Frame {
+ msec: 6112
+ hash: "e0cee7959a5a8a08ad03d75e7b5c6ca1"
+ }
+ Frame {
+ msec: 6128
+ hash: "96877a15f44d4a2c8d9974cb28b9e1b6"
+ }
+ Frame {
+ msec: 6144
+ hash: "c0ffb0ef6dd9d007d201feebd2f68e44"
+ }
+ Frame {
+ msec: 6160
+ hash: "209fb930223243fa19c5dde9e85ec518"
+ }
+ Frame {
+ msec: 6176
+ hash: "ae98ac4dba0e78eb8fb7f7dbe29b2832"
+ }
+ Frame {
+ msec: 6192
+ hash: "c94a7d68ce007d83df77a595a5815a96"
+ }
+ Frame {
+ msec: 6208
+ hash: "4c28e409bf5a6c1289bcab8cd59a9e42"
+ }
+ Frame {
+ msec: 6224
+ hash: "ea1009f1a3446dd5ce937e6949794794"
+ }
+ Frame {
+ msec: 6240
+ hash: "940c16766c2f87feef48e1187672ca9b"
+ }
+ Frame {
+ msec: 6256
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+ Frame {
+ msec: 6272
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+ Frame {
+ msec: 6288
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+ Frame {
+ msec: 6304
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+ Frame {
+ msec: 6320
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+ Frame {
+ msec: 6336
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+ Frame {
+ msec: 6352
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+ Frame {
+ msec: 6368
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+ Frame {
+ msec: 6384
+ hash: "93664c87c8dcfadc0345f646b2508625"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/repeater.0.png b/tests/auto/declarative/visual/qmlgraphicspositioners/data/repeater.0.png
new file mode 100644
index 0000000..f7018fd
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/repeater.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/data/repeater.qml b/tests/auto/declarative/visual/qmlgraphicspositioners/data/repeater.qml
new file mode 100644
index 0000000..1eb115d
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/data/repeater.qml
@@ -0,0 +1,339 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 32
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 48
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 64
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 80
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 96
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 112
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 128
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 144
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 160
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 176
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 192
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 208
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 224
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 240
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 256
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 272
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 288
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 304
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 320
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 336
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 352
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 368
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 384
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 400
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 416
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 432
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 448
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 464
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 480
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 496
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 512
+ hash: "0273c293855f2b2bdbf579fc5cdce63f"
+ }
+ Frame {
+ msec: 528
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 544
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 560
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 576
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 592
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 608
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 624
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 640
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 656
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 672
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 688
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 704
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 720
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 736
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 752
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 768
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 784
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 800
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 816
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 832
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 848
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 864
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 880
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 896
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 912
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 928
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 944
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 960
+ image: "repeater.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 992
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1008
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1024
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1040
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1056
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1072
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1088
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1104
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1120
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1136
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1152
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1168
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1184
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1200
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1216
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1232
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1248
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1264
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1280
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1296
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1312
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+ Frame {
+ msec: 1328
+ hash: "53a01771047c8ec806a335a1a3d6af71"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/dynamic.qml b/tests/auto/declarative/visual/qmlgraphicspositioners/dynamic.qml
new file mode 100644
index 0000000..4b03749
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/dynamic.qml
@@ -0,0 +1,65 @@
+import Qt 4.6
+
+Item {
+ width: 400; height: 400;
+ property int step: 0
+ function tick()
+ {
+ step++;
+ if(step == 1){
+ row1.destroy(); //Not dynamically created, so is this valid?
+ }else if(step == 2){
+ r2a.destroy();
+ }else if(step == 3){
+ r2b.destroy();
+ }else if(step == 4){
+ r2c.destroy();
+ }else if(step == 5){
+ r3a.parent = row2;
+ }else if(step == 6){
+ r3b.parent = row2;
+ }else if(step == 7){
+ r3c.parent = row2;
+ }else if(step == 8){
+ row3.destroy();
+ }else{
+ repeater.model++;
+ }
+ }
+
+ //Tests base positioner functionality, so just using row
+ Row{
+ id: row1
+ Rectangle{id: r1a; width:20; height:20; color: "red"}
+ Rectangle{id: r1b; width:20; height:20; color: "green"}
+ Rectangle{id: r1c; width:20; height:20; color: "blue"}
+ }
+ Row{
+ y:20
+ id: row2
+ move: Transition{NumberAnimation{matchProperties:"x"}}
+ Repeater{
+ id: repeater
+ model: 0;
+ delegate: Component{ Rectangle { color: "yellow"; width:20; height:20;}}
+ }
+ Rectangle{id: r2a; width:20; height:20; color: "red"}
+ Rectangle{id: r2b; width:20; height:20; color: "green"}
+ Rectangle{id: r2c; width:20; height:20; color: "blue"}
+ }
+ Row{
+ move: Transition{NumberAnimation{matchProperties:"x"}}
+ y:40
+ id: row3
+ Rectangle{id: r3a; width:20; height:20; color: "red"}
+ Rectangle{id: r3b; width:20; height:20; color: "green"}
+ Rectangle{id: r3c; width:20; height:20; color: "blue"}
+ }
+ Timer{
+ interval: 500;
+ running: true;
+ repeat: true;
+ onTriggered: tick();
+ }
+}
+
diff --git a/tests/auto/declarative/visual/qmlgraphicspositioners/repeater.qml b/tests/auto/declarative/visual/qmlgraphicspositioners/repeater.qml
new file mode 100644
index 0000000..ff60365
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicspositioners/repeater.qml
@@ -0,0 +1,15 @@
+import Qt 4.6
+
+Item{
+ width: 200; height: 600
+ Column{
+ Rectangle{color:"Red"; width:40; height:40;}
+ Repeater{
+ id: rep
+ model: 3
+ delegate: Component{Rectangle{color:"Green"; width:40; height:40; radius: 20;}}
+ }
+ Rectangle{color:"Blue"; width:40; height:40;}
+ }
+ Timer{ interval: 500; running: true; onTriggered: rep.model=6;}
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.0.png
new file mode 100644
index 0000000..464a578
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.1.png
new file mode 100644
index 0000000..9beb1ca
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.2.png
new file mode 100644
index 0000000..001be30
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.3.png
new file mode 100644
index 0000000..fc3e4b3
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.4.png
new file mode 100644
index 0000000..24f43e6
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.5.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.5.png
new file mode 100644
index 0000000..001223b
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.6.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.6.png
new file mode 100644
index 0000000..7126e07
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.7.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.7.png
new file mode 100644
index 0000000..f0bea88
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.8.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.8.png
new file mode 100644
index 0000000..4381b8d
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.qml b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.qml
new file mode 100644
index 0000000..8ee92d7
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/cursorDelegate.qml
@@ -0,0 +1,3555 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 32
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 48
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 64
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 80
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 96
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 112
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 128
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 144
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 160
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 176
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 192
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 208
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 224
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 240
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 256
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 272
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 288
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 304
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 320
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 336
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 352
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 368
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 384
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 400
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 416
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 432
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 448
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 464
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 480
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 496
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 512
+ hash: "e0366dbd264ca453f5dad3a7966f17a2"
+ }
+ Frame {
+ msec: 528
+ hash: "84cad44c4cccf8a0942865719d05c2eb"
+ }
+ Frame {
+ msec: 544
+ hash: "60d24c160adb8e074c04d4f40bf140a8"
+ }
+ Frame {
+ msec: 560
+ hash: "ff5fac70804eb01da28c2988aba520a4"
+ }
+ Frame {
+ msec: 576
+ hash: "a6bdf56b4f8783969935488e1955e59c"
+ }
+ Frame {
+ msec: 592
+ hash: "d0ad97647c5092a64426187406ec5316"
+ }
+ Frame {
+ msec: 608
+ hash: "77e7a4a4a9c38cd7b5ef734d39089e3f"
+ }
+ Frame {
+ msec: 624
+ hash: "0285340a2e03568810a76d840369f5c8"
+ }
+ Frame {
+ msec: 640
+ hash: "6ba6a1a05c5a9ec0d2897b3454affd09"
+ }
+ Frame {
+ msec: 656
+ hash: "3caa36cc3857803248d12ec09ea357df"
+ }
+ Frame {
+ msec: 672
+ hash: "500f7b72acc877fc1662e4f4ceb090e1"
+ }
+ Frame {
+ msec: 688
+ hash: "aadc71923926885ccce87e6be1c742d7"
+ }
+ Frame {
+ msec: 704
+ hash: "9b7503189ecf2999934716f227469463"
+ }
+ Frame {
+ msec: 720
+ hash: "874296e182abe96e58f9c0463a0f32c9"
+ }
+ Frame {
+ msec: 736
+ hash: "4262c79b6844d4d62aa9fb02c335fb95"
+ }
+ Frame {
+ msec: 752
+ hash: "a5862eaf12cc342054fd3f8d1f4c91c3"
+ }
+ Frame {
+ msec: 768
+ hash: "0034ef8851c9810ed5d50496aea367da"
+ }
+ Frame {
+ msec: 784
+ hash: "24cebf60ade86469a154abaa64f3b40d"
+ }
+ Frame {
+ msec: 800
+ hash: "1100ef4e2db234ea77ff4c70df6bfbe7"
+ }
+ Frame {
+ msec: 816
+ hash: "c40d8d42a55dde7dbbcae2dda9aaccb8"
+ }
+ Frame {
+ msec: 832
+ hash: "5c1000fdc279742cbe46987045c0a92b"
+ }
+ Frame {
+ msec: 848
+ hash: "bcef4a0ff72330f05f2bf5042e414fde"
+ }
+ Frame {
+ msec: 864
+ hash: "228551c38b567f1550b44f9dac08786b"
+ }
+ Frame {
+ msec: 880
+ hash: "531c5ca6992c4a12927c61e22c02dd6b"
+ }
+ Frame {
+ msec: 896
+ hash: "127cc30967f95cb88f4238e0b33c741d"
+ }
+ Frame {
+ msec: 912
+ hash: "3c3fb1d8dbe7443f80550a30ada7f120"
+ }
+ Frame {
+ msec: 928
+ hash: "edca065d42bf9b63a79d1e97d1a1eed0"
+ }
+ Frame {
+ msec: 944
+ hash: "1e4424f1f40bfce3205e1d1401ab0dcf"
+ }
+ Frame {
+ msec: 960
+ image: "cursorDelegate.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1072
+ hash: "90ac5ad7ce23786fe838426605e737e1"
+ }
+ Frame {
+ msec: 1088
+ hash: "1e4424f1f40bfce3205e1d1401ab0dcf"
+ }
+ Frame {
+ msec: 1104
+ hash: "edca065d42bf9b63a79d1e97d1a1eed0"
+ }
+ Frame {
+ msec: 1120
+ hash: "3c3fb1d8dbe7443f80550a30ada7f120"
+ }
+ Frame {
+ msec: 1136
+ hash: "127cc30967f95cb88f4238e0b33c741d"
+ }
+ Frame {
+ msec: 1152
+ hash: "531c5ca6992c4a12927c61e22c02dd6b"
+ }
+ Frame {
+ msec: 1168
+ hash: "228551c38b567f1550b44f9dac08786b"
+ }
+ Frame {
+ msec: 1184
+ hash: "bcef4a0ff72330f05f2bf5042e414fde"
+ }
+ Frame {
+ msec: 1200
+ hash: "5c1000fdc279742cbe46987045c0a92b"
+ }
+ Frame {
+ msec: 1216
+ hash: "c40d8d42a55dde7dbbcae2dda9aaccb8"
+ }
+ Frame {
+ msec: 1232
+ hash: "1100ef4e2db234ea77ff4c70df6bfbe7"
+ }
+ Frame {
+ msec: 1248
+ hash: "24cebf60ade86469a154abaa64f3b40d"
+ }
+ Frame {
+ msec: 1264
+ hash: "0034ef8851c9810ed5d50496aea367da"
+ }
+ Frame {
+ msec: 1280
+ hash: "a5862eaf12cc342054fd3f8d1f4c91c3"
+ }
+ Frame {
+ msec: 1296
+ hash: "4262c79b6844d4d62aa9fb02c335fb95"
+ }
+ Frame {
+ msec: 1312
+ hash: "874296e182abe96e58f9c0463a0f32c9"
+ }
+ Frame {
+ msec: 1328
+ hash: "9b7503189ecf2999934716f227469463"
+ }
+ Frame {
+ msec: 1344
+ hash: "aadc71923926885ccce87e6be1c742d7"
+ }
+ Frame {
+ msec: 1360
+ hash: "500f7b72acc877fc1662e4f4ceb090e1"
+ }
+ Frame {
+ msec: 1376
+ hash: "3caa36cc3857803248d12ec09ea357df"
+ }
+ Key {
+ type: 6
+ key: 16777232
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1392
+ hash: "6ba6a1a05c5a9ec0d2897b3454affd09"
+ }
+ Frame {
+ msec: 1408
+ hash: "0285340a2e03568810a76d840369f5c8"
+ }
+ Frame {
+ msec: 1424
+ hash: "77e7a4a4a9c38cd7b5ef734d39089e3f"
+ }
+ Frame {
+ msec: 1440
+ hash: "d0ad97647c5092a64426187406ec5316"
+ }
+ Frame {
+ msec: 1456
+ hash: "a6bdf56b4f8783969935488e1955e59c"
+ }
+ Key {
+ type: 7
+ key: 16777232
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1472
+ hash: "ff5fac70804eb01da28c2988aba520a4"
+ }
+ Frame {
+ msec: 1488
+ hash: "60d24c160adb8e074c04d4f40bf140a8"
+ }
+ Frame {
+ msec: 1504
+ hash: "84cad44c4cccf8a0942865719d05c2eb"
+ }
+ Frame {
+ msec: 1520
+ hash: "907c6363d1e524f391d001944febe1ac"
+ }
+ Frame {
+ msec: 1536
+ hash: "313a06d40274e46453342e66236f09f8"
+ }
+ Frame {
+ msec: 1552
+ hash: "0d410f7bfa3e4c58948a8f1e7c7695c4"
+ }
+ Frame {
+ msec: 1568
+ hash: "a9911e076af337fe30e322f03d84a528"
+ }
+ Frame {
+ msec: 1584
+ hash: "4a8efcc341bba9ba621ce0f785a75432"
+ }
+ Frame {
+ msec: 1600
+ hash: "479f192c8cf7b8e4407655382402700f"
+ }
+ Frame {
+ msec: 1616
+ hash: "63dc16e66def35abba5159d5650f165d"
+ }
+ Frame {
+ msec: 1632
+ hash: "26e88aae512304c28d425c311febce1b"
+ }
+ Key {
+ type: 6
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1648
+ hash: "8dca7a7912ddaa853dff9c09882082b1"
+ }
+ Frame {
+ msec: 1664
+ hash: "5c3ebee155e29a0ba4a45706dd87396a"
+ }
+ Frame {
+ msec: 1680
+ hash: "29a517a66867f6f527c6db5bb5651f92"
+ }
+ Frame {
+ msec: 1696
+ hash: "a4fde31f55f866224eca2b51586b601f"
+ }
+ Frame {
+ msec: 1712
+ hash: "9c9c7fb9fb8aab8c24f2eb03df791a00"
+ }
+ Frame {
+ msec: 1728
+ hash: "dd972e37166d1186a717a956343a7758"
+ }
+ Key {
+ type: 7
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1744
+ hash: "1af5e24651ef422ff93dab7bd2a8f832"
+ }
+ Frame {
+ msec: 1760
+ hash: "885473be4e44bb1f4b014f9b3d4d2e74"
+ }
+ Frame {
+ msec: 1776
+ hash: "1f6e0407392322c34567caaecae5b449"
+ }
+ Frame {
+ msec: 1792
+ hash: "dcae85a4b05c450b6b1619f9fd7e17b0"
+ }
+ Frame {
+ msec: 1808
+ hash: "3b872e5030e34edf678ac2547df48699"
+ }
+ Frame {
+ msec: 1824
+ hash: "5d76b324496297d08cff57b4c21ce592"
+ }
+ Frame {
+ msec: 1840
+ hash: "4acfe3c4cf2f4e477f1a72817af556d2"
+ }
+ Frame {
+ msec: 1856
+ hash: "a04671fe8d28cfb629f2090e342747fb"
+ }
+ Frame {
+ msec: 1872
+ hash: "2474db802c7d8e0ec8fa7f958c04bf30"
+ }
+ Frame {
+ msec: 1888
+ hash: "11a1e1f38c407de4bc069aa192319fe4"
+ }
+ Frame {
+ msec: 1904
+ hash: "ec8aacc8d2280068dd7f020e8648afea"
+ }
+ Frame {
+ msec: 1920
+ image: "cursorDelegate.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "fbbe4d0fed6274968a89e02bb1ca5685"
+ }
+ Frame {
+ msec: 1952
+ hash: "13d478424a8f0cab8bab6a157efce318"
+ }
+ Frame {
+ msec: 1968
+ hash: "ea6bc9ec217fb80b86276a2675c08a0f"
+ }
+ Frame {
+ msec: 1984
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2000
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2016
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2032
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2048
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2064
+ hash: "ea6bc9ec217fb80b86276a2675c08a0f"
+ }
+ Frame {
+ msec: 2080
+ hash: "13d478424a8f0cab8bab6a157efce318"
+ }
+ Frame {
+ msec: 2096
+ hash: "fbbe4d0fed6274968a89e02bb1ca5685"
+ }
+ Frame {
+ msec: 2112
+ hash: "00dedd48bd6861cb4bf4953162a67cc0"
+ }
+ Key {
+ type: 6
+ key: 16777248
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2128
+ hash: "ec8aacc8d2280068dd7f020e8648afea"
+ }
+ Frame {
+ msec: 2144
+ hash: "11a1e1f38c407de4bc069aa192319fe4"
+ }
+ Frame {
+ msec: 2160
+ hash: "2474db802c7d8e0ec8fa7f958c04bf30"
+ }
+ Frame {
+ msec: 2176
+ hash: "a04671fe8d28cfb629f2090e342747fb"
+ }
+ Frame {
+ msec: 2192
+ hash: "4acfe3c4cf2f4e477f1a72817af556d2"
+ }
+ Frame {
+ msec: 2208
+ hash: "5d76b324496297d08cff57b4c21ce592"
+ }
+ Frame {
+ msec: 2224
+ hash: "3b872e5030e34edf678ac2547df48699"
+ }
+ Frame {
+ msec: 2240
+ hash: "dcae85a4b05c450b6b1619f9fd7e17b0"
+ }
+ Frame {
+ msec: 2256
+ hash: "1f6e0407392322c34567caaecae5b449"
+ }
+ Frame {
+ msec: 2272
+ hash: "885473be4e44bb1f4b014f9b3d4d2e74"
+ }
+ Frame {
+ msec: 2288
+ hash: "1af5e24651ef422ff93dab7bd2a8f832"
+ }
+ Frame {
+ msec: 2304
+ hash: "dd972e37166d1186a717a956343a7758"
+ }
+ Frame {
+ msec: 2320
+ hash: "9c9c7fb9fb8aab8c24f2eb03df791a00"
+ }
+ Key {
+ type: 6
+ key: 16777232
+ modifiers: 33554432
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2336
+ hash: "aec9683f3a677dab781bdf3bbf7cce5e"
+ }
+ Frame {
+ msec: 2352
+ hash: "63c6a7810dec832f1b8288807f1d932a"
+ }
+ Frame {
+ msec: 2368
+ hash: "70409eeee50fbb54097a3c430e1e1f21"
+ }
+ Frame {
+ msec: 2384
+ hash: "efc77b82c0ffd7f3fbe5fed06ea418bd"
+ }
+ Frame {
+ msec: 2400
+ hash: "26e88aae512304c28d425c311febce1b"
+ }
+ Frame {
+ msec: 2416
+ hash: "63dc16e66def35abba5159d5650f165d"
+ }
+ Frame {
+ msec: 2432
+ hash: "479f192c8cf7b8e4407655382402700f"
+ }
+ Key {
+ type: 7
+ key: 16777232
+ modifiers: 33554432
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2448
+ hash: "4a8efcc341bba9ba621ce0f785a75432"
+ }
+ Frame {
+ msec: 2464
+ hash: "a9911e076af337fe30e322f03d84a528"
+ }
+ Frame {
+ msec: 2480
+ hash: "0d410f7bfa3e4c58948a8f1e7c7695c4"
+ }
+ Frame {
+ msec: 2496
+ hash: "313a06d40274e46453342e66236f09f8"
+ }
+ Frame {
+ msec: 2512
+ hash: "907c6363d1e524f391d001944febe1ac"
+ }
+ Frame {
+ msec: 2528
+ hash: "84cad44c4cccf8a0942865719d05c2eb"
+ }
+ Frame {
+ msec: 2544
+ hash: "60d24c160adb8e074c04d4f40bf140a8"
+ }
+ Frame {
+ msec: 2560
+ hash: "ff5fac70804eb01da28c2988aba520a4"
+ }
+ Frame {
+ msec: 2576
+ hash: "a6bdf56b4f8783969935488e1955e59c"
+ }
+ Frame {
+ msec: 2592
+ hash: "d0ad97647c5092a64426187406ec5316"
+ }
+ Frame {
+ msec: 2608
+ hash: "77e7a4a4a9c38cd7b5ef734d39089e3f"
+ }
+ Frame {
+ msec: 2624
+ hash: "0285340a2e03568810a76d840369f5c8"
+ }
+ Frame {
+ msec: 2640
+ hash: "6ba6a1a05c5a9ec0d2897b3454affd09"
+ }
+ Frame {
+ msec: 2656
+ hash: "3caa36cc3857803248d12ec09ea357df"
+ }
+ Frame {
+ msec: 2672
+ hash: "500f7b72acc877fc1662e4f4ceb090e1"
+ }
+ Frame {
+ msec: 2688
+ hash: "aadc71923926885ccce87e6be1c742d7"
+ }
+ Frame {
+ msec: 2704
+ hash: "9b7503189ecf2999934716f227469463"
+ }
+ Frame {
+ msec: 2720
+ hash: "874296e182abe96e58f9c0463a0f32c9"
+ }
+ Frame {
+ msec: 2736
+ hash: "4262c79b6844d4d62aa9fb02c335fb95"
+ }
+ Frame {
+ msec: 2752
+ hash: "a5862eaf12cc342054fd3f8d1f4c91c3"
+ }
+ Frame {
+ msec: 2768
+ hash: "0034ef8851c9810ed5d50496aea367da"
+ }
+ Frame {
+ msec: 2784
+ hash: "24cebf60ade86469a154abaa64f3b40d"
+ }
+ Key {
+ type: 7
+ key: 16777248
+ modifiers: 33554432
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2800
+ hash: "1100ef4e2db234ea77ff4c70df6bfbe7"
+ }
+ Frame {
+ msec: 2816
+ hash: "c40d8d42a55dde7dbbcae2dda9aaccb8"
+ }
+ Frame {
+ msec: 2832
+ hash: "5c1000fdc279742cbe46987045c0a92b"
+ }
+ Frame {
+ msec: 2848
+ hash: "bcef4a0ff72330f05f2bf5042e414fde"
+ }
+ Frame {
+ msec: 2864
+ hash: "228551c38b567f1550b44f9dac08786b"
+ }
+ Frame {
+ msec: 2880
+ image: "cursorDelegate.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "127cc30967f95cb88f4238e0b33c741d"
+ }
+ Frame {
+ msec: 2912
+ hash: "3c3fb1d8dbe7443f80550a30ada7f120"
+ }
+ Frame {
+ msec: 2928
+ hash: "edca065d42bf9b63a79d1e97d1a1eed0"
+ }
+ Frame {
+ msec: 2944
+ hash: "1e4424f1f40bfce3205e1d1401ab0dcf"
+ }
+ Frame {
+ msec: 2960
+ hash: "90ac5ad7ce23786fe838426605e737e1"
+ }
+ Frame {
+ msec: 2976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3072
+ hash: "90ac5ad7ce23786fe838426605e737e1"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3088
+ hash: "cf467854dfde9b2111bc6e7e4442aab5"
+ }
+ Frame {
+ msec: 3104
+ hash: "df6f025130dc82f4764def81cec5fa7b"
+ }
+ Frame {
+ msec: 3120
+ hash: "bdcafed4ae9c890eec2e3e0cb2ff5a14"
+ }
+ Frame {
+ msec: 3136
+ hash: "14b328c8ec6276e022643102af80fa44"
+ }
+ Frame {
+ msec: 3152
+ hash: "078d75d72bff036574b85ac0aeaaf2b6"
+ }
+ Frame {
+ msec: 3168
+ hash: "fbefb1e0801f4578ab93dd7ff4062e68"
+ }
+ Frame {
+ msec: 3184
+ hash: "eac8375d9b9cf0afbf232e27c6ceb037"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3200
+ hash: "3462a3e166120515e67430600e4653f8"
+ }
+ Frame {
+ msec: 3216
+ hash: "7f2d9959323f0707e36ecb2252c89727"
+ }
+ Frame {
+ msec: 3232
+ hash: "0a1c2eb8a7451a5e37fefb96a58a88a1"
+ }
+ Frame {
+ msec: 3248
+ hash: "4a02aaca12e3fd86ee3b516b3a307f86"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3264
+ hash: "0034ef8851c9810ed5d50496aea367da"
+ }
+ Frame {
+ msec: 3280
+ hash: "a5862eaf12cc342054fd3f8d1f4c91c3"
+ }
+ Frame {
+ msec: 3296
+ hash: "4262c79b6844d4d62aa9fb02c335fb95"
+ }
+ Frame {
+ msec: 3312
+ hash: "874296e182abe96e58f9c0463a0f32c9"
+ }
+ Frame {
+ msec: 3328
+ hash: "9b7503189ecf2999934716f227469463"
+ }
+ Frame {
+ msec: 3344
+ hash: "aadc71923926885ccce87e6be1c742d7"
+ }
+ Frame {
+ msec: 3360
+ hash: "500f7b72acc877fc1662e4f4ceb090e1"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3376
+ hash: "3caa36cc3857803248d12ec09ea357df"
+ }
+ Frame {
+ msec: 3392
+ hash: "6ba6a1a05c5a9ec0d2897b3454affd09"
+ }
+ Frame {
+ msec: 3408
+ hash: "0285340a2e03568810a76d840369f5c8"
+ }
+ Frame {
+ msec: 3424
+ hash: "77e7a4a4a9c38cd7b5ef734d39089e3f"
+ }
+ Frame {
+ msec: 3440
+ hash: "d0ad97647c5092a64426187406ec5316"
+ }
+ Frame {
+ msec: 3456
+ hash: "a6bdf56b4f8783969935488e1955e59c"
+ }
+ Frame {
+ msec: 3472
+ hash: "ff5fac70804eb01da28c2988aba520a4"
+ }
+ Frame {
+ msec: 3488
+ hash: "60d24c160adb8e074c04d4f40bf140a8"
+ }
+ Frame {
+ msec: 3504
+ hash: "84cad44c4cccf8a0942865719d05c2eb"
+ }
+ Frame {
+ msec: 3520
+ hash: "907c6363d1e524f391d001944febe1ac"
+ }
+ Frame {
+ msec: 3536
+ hash: "313a06d40274e46453342e66236f09f8"
+ }
+ Frame {
+ msec: 3552
+ hash: "0d410f7bfa3e4c58948a8f1e7c7695c4"
+ }
+ Frame {
+ msec: 3568
+ hash: "a9911e076af337fe30e322f03d84a528"
+ }
+ Frame {
+ msec: 3584
+ hash: "4a8efcc341bba9ba621ce0f785a75432"
+ }
+ Frame {
+ msec: 3600
+ hash: "479f192c8cf7b8e4407655382402700f"
+ }
+ Frame {
+ msec: 3616
+ hash: "63dc16e66def35abba5159d5650f165d"
+ }
+ Frame {
+ msec: 3632
+ hash: "26e88aae512304c28d425c311febce1b"
+ }
+ Frame {
+ msec: 3648
+ hash: "efc77b82c0ffd7f3fbe5fed06ea418bd"
+ }
+ Frame {
+ msec: 3664
+ hash: "70409eeee50fbb54097a3c430e1e1f21"
+ }
+ Frame {
+ msec: 3680
+ hash: "63c6a7810dec832f1b8288807f1d932a"
+ }
+ Frame {
+ msec: 3696
+ hash: "aec9683f3a677dab781bdf3bbf7cce5e"
+ }
+ Frame {
+ msec: 3712
+ hash: "2e6dd79fc23acbf710e757f3d0999ab8"
+ }
+ Frame {
+ msec: 3728
+ hash: "4d9dd9e515a21478cb3364032acf8c15"
+ }
+ Frame {
+ msec: 3744
+ hash: "5dc2129cac6e667d39da3304a37a76f2"
+ }
+ Frame {
+ msec: 3760
+ hash: "ab5eb4750139875586a346b1c3a84f42"
+ }
+ Frame {
+ msec: 3776
+ hash: "96d3bd62d4a0bf39a672b97fcc050bd5"
+ }
+ Frame {
+ msec: 3792
+ hash: "546cec655631b5802eb4d7008093eb69"
+ }
+ Frame {
+ msec: 3808
+ hash: "85f33f1bf1b1e11be450ab85bf6dab3d"
+ }
+ Frame {
+ msec: 3824
+ hash: "44b195297acd1bf59e43751df8dc1c1d"
+ }
+ Frame {
+ msec: 3840
+ image: "cursorDelegate.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "47942253c07fd39894445ff5e5b9608c"
+ }
+ Frame {
+ msec: 3872
+ hash: "d26d71b1c03fb21550820dd1586a7a8e"
+ }
+ Frame {
+ msec: 3888
+ hash: "37ec2ed29006575e8bd41a1989b75e27"
+ }
+ Frame {
+ msec: 3904
+ hash: "5ad1ab34572f9ef339774134bc0ab407"
+ }
+ Frame {
+ msec: 3920
+ hash: "a4f68f6ee46642e7cc5a542b9f8a2464"
+ }
+ Frame {
+ msec: 3936
+ hash: "fce95d18a0efee74554209ca39637062"
+ }
+ Frame {
+ msec: 3952
+ hash: "1587fc2668f1f44e76f252bfd75f2708"
+ }
+ Frame {
+ msec: 3968
+ hash: "e0a6eb42de552281e297ca5c50c1df23"
+ }
+ Frame {
+ msec: 3984
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4000
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4016
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4032
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4048
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4064
+ hash: "e0a6eb42de552281e297ca5c50c1df23"
+ }
+ Frame {
+ msec: 4080
+ hash: "1587fc2668f1f44e76f252bfd75f2708"
+ }
+ Frame {
+ msec: 4096
+ hash: "fce95d18a0efee74554209ca39637062"
+ }
+ Frame {
+ msec: 4112
+ hash: "a4f68f6ee46642e7cc5a542b9f8a2464"
+ }
+ Frame {
+ msec: 4128
+ hash: "5ad1ab34572f9ef339774134bc0ab407"
+ }
+ Frame {
+ msec: 4144
+ hash: "37ec2ed29006575e8bd41a1989b75e27"
+ }
+ Frame {
+ msec: 4160
+ hash: "d26d71b1c03fb21550820dd1586a7a8e"
+ }
+ Frame {
+ msec: 4176
+ hash: "47942253c07fd39894445ff5e5b9608c"
+ }
+ Frame {
+ msec: 4192
+ hash: "a62f1cbf43da0381c7c9099d47ded882"
+ }
+ Frame {
+ msec: 4208
+ hash: "44b195297acd1bf59e43751df8dc1c1d"
+ }
+ Frame {
+ msec: 4224
+ hash: "85f33f1bf1b1e11be450ab85bf6dab3d"
+ }
+ Frame {
+ msec: 4240
+ hash: "546cec655631b5802eb4d7008093eb69"
+ }
+ Frame {
+ msec: 4256
+ hash: "96d3bd62d4a0bf39a672b97fcc050bd5"
+ }
+ Frame {
+ msec: 4272
+ hash: "ab5eb4750139875586a346b1c3a84f42"
+ }
+ Frame {
+ msec: 4288
+ hash: "5dc2129cac6e667d39da3304a37a76f2"
+ }
+ Frame {
+ msec: 4304
+ hash: "4d9dd9e515a21478cb3364032acf8c15"
+ }
+ Frame {
+ msec: 4320
+ hash: "2e6dd79fc23acbf710e757f3d0999ab8"
+ }
+ Frame {
+ msec: 4336
+ hash: "aec9683f3a677dab781bdf3bbf7cce5e"
+ }
+ Frame {
+ msec: 4352
+ hash: "63c6a7810dec832f1b8288807f1d932a"
+ }
+ Frame {
+ msec: 4368
+ hash: "70409eeee50fbb54097a3c430e1e1f21"
+ }
+ Frame {
+ msec: 4384
+ hash: "efc77b82c0ffd7f3fbe5fed06ea418bd"
+ }
+ Frame {
+ msec: 4400
+ hash: "26e88aae512304c28d425c311febce1b"
+ }
+ Frame {
+ msec: 4416
+ hash: "63dc16e66def35abba5159d5650f165d"
+ }
+ Frame {
+ msec: 4432
+ hash: "479f192c8cf7b8e4407655382402700f"
+ }
+ Frame {
+ msec: 4448
+ hash: "4a8efcc341bba9ba621ce0f785a75432"
+ }
+ Frame {
+ msec: 4464
+ hash: "a9911e076af337fe30e322f03d84a528"
+ }
+ Frame {
+ msec: 4480
+ hash: "0d410f7bfa3e4c58948a8f1e7c7695c4"
+ }
+ Frame {
+ msec: 4496
+ hash: "313a06d40274e46453342e66236f09f8"
+ }
+ Frame {
+ msec: 4512
+ hash: "907c6363d1e524f391d001944febe1ac"
+ }
+ Frame {
+ msec: 4528
+ hash: "84cad44c4cccf8a0942865719d05c2eb"
+ }
+ Frame {
+ msec: 4544
+ hash: "60d24c160adb8e074c04d4f40bf140a8"
+ }
+ Frame {
+ msec: 4560
+ hash: "ff5fac70804eb01da28c2988aba520a4"
+ }
+ Frame {
+ msec: 4576
+ hash: "a6bdf56b4f8783969935488e1955e59c"
+ }
+ Frame {
+ msec: 4592
+ hash: "d0ad97647c5092a64426187406ec5316"
+ }
+ Frame {
+ msec: 4608
+ hash: "77e7a4a4a9c38cd7b5ef734d39089e3f"
+ }
+ Frame {
+ msec: 4624
+ hash: "0285340a2e03568810a76d840369f5c8"
+ }
+ Frame {
+ msec: 4640
+ hash: "6ba6a1a05c5a9ec0d2897b3454affd09"
+ }
+ Frame {
+ msec: 4656
+ hash: "3caa36cc3857803248d12ec09ea357df"
+ }
+ Frame {
+ msec: 4672
+ hash: "500f7b72acc877fc1662e4f4ceb090e1"
+ }
+ Frame {
+ msec: 4688
+ hash: "aadc71923926885ccce87e6be1c742d7"
+ }
+ Frame {
+ msec: 4704
+ hash: "9b7503189ecf2999934716f227469463"
+ }
+ Frame {
+ msec: 4720
+ hash: "874296e182abe96e58f9c0463a0f32c9"
+ }
+ Frame {
+ msec: 4736
+ hash: "4262c79b6844d4d62aa9fb02c335fb95"
+ }
+ Frame {
+ msec: 4752
+ hash: "a5862eaf12cc342054fd3f8d1f4c91c3"
+ }
+ Frame {
+ msec: 4768
+ hash: "0034ef8851c9810ed5d50496aea367da"
+ }
+ Frame {
+ msec: 4784
+ hash: "24cebf60ade86469a154abaa64f3b40d"
+ }
+ Frame {
+ msec: 4800
+ image: "cursorDelegate.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "c40d8d42a55dde7dbbcae2dda9aaccb8"
+ }
+ Frame {
+ msec: 4832
+ hash: "5c1000fdc279742cbe46987045c0a92b"
+ }
+ Frame {
+ msec: 4848
+ hash: "bcef4a0ff72330f05f2bf5042e414fde"
+ }
+ Frame {
+ msec: 4864
+ hash: "228551c38b567f1550b44f9dac08786b"
+ }
+ Frame {
+ msec: 4880
+ hash: "531c5ca6992c4a12927c61e22c02dd6b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 130; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4896
+ hash: "14b328c8ec6276e022643102af80fa44"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 130; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4912
+ hash: "bdcafed4ae9c890eec2e3e0cb2ff5a14"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 131; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4928
+ hash: "df6f025130dc82f4764def81cec5fa7b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 132; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4944
+ hash: "cf467854dfde9b2111bc6e7e4442aab5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 133; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 134; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4960
+ hash: "cfcdf63ca06c2b9ab197821bc1e48c7c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 135; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 136; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 137; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 138; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 139; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 140; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 141; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 143; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 144; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5072
+ hash: "cfcdf63ca06c2b9ab197821bc1e48c7c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 146; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5088
+ hash: "cf467854dfde9b2111bc6e7e4442aab5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 148; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 149; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5104
+ hash: "7643fcfb740d33b87915300684e85a44"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 150; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5120
+ hash: "1bd041a5e8d2237b51720fed82250303"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 151; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5136
+ hash: "1a00c9d3ce747e3bc7ee5878d21260b4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5152
+ hash: "803896c1be68588ba2cddd7effbb8d62"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 153; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5168
+ hash: "282ab572698088fba3aba8e6a091aa38"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5184
+ hash: "24402d9e4fabd78bc8f3921db82e554e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 155; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 156; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5200
+ hash: "39a89e9ca7c4edd9c8503927d639df0f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5216
+ hash: "b984b7d032544acd4dab8901e0af1ef5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 158; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5232
+ hash: "e014414626407b0446939ad2ce38b7dd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 160; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 161; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5248
+ hash: "beccb93613279e2f48507ddc9a4418e8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5264
+ hash: "dd861f8dc89587301e860217fdf2a701"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 164; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5280
+ hash: "1ae0b7a18a7d3ebe4871a0045005e2b7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 168; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5296
+ hash: "071e1f8bcc0e541b23d134f32c19d20b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 170; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5312
+ hash: "e8ce2716f4595bc5bf68c24c8a63bbfe"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 174; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5328
+ hash: "d36a35503af76b12fe5cec65e3f22eda"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 176; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 178; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5344
+ hash: "cea0f90a56fd5789b3e166f09f2bfcec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 179; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5360
+ hash: "151f5357d9c1a3f1fe09380a287abab0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 180; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5376
+ hash: "bdab9d7077734087cb7f9516e9c517bc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 182; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 183; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5392
+ hash: "6d6d929a7c7be1d2e7d1b2f98a6866be"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 185; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5408
+ hash: "3fbe3f45afc5aa40fff7f795ced8a05d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 187; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5424
+ hash: "b35b4dc480aeb76912d927b0ff8676c6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 189; y: 93
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5440
+ hash: "94e82e888280f20cce3ac38b353b79f4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5456
+ hash: "4674fbd35e467bed780a5ea2fe2e258b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5472
+ hash: "698827bfa7ff2eae6b0e0efa99bb15bb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5488
+ hash: "67c7adef5e41481d631f54d34423b93d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5504
+ hash: "097512c005127fa3ebfcbc52808264a8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5520
+ hash: "ad64b5913350e6c6fda199ecb34278f4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5536
+ hash: "3237e88e0f40595d2fde62723c00b7fa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 89
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5552
+ hash: "18db89296849f22a7af0a1ffc9762a32"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5568
+ hash: "7f6ac84baaa2c5fcd22ba45172611840"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5584
+ hash: "7b887d3aa44229d9f25fdde8f5ccf471"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5600
+ hash: "b0c08726d0f2a460d5862cd2d7ee6230"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5616
+ hash: "d99389a3287d453b942f070d8c1e86e8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5632
+ hash: "a0751fa826b03cb25e615c6a1435d92a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 213; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 214; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5648
+ hash: "f33da88ae881c846bd86ab3dc4f12efc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 215; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5664
+ hash: "7049bee9a984a2c2d3101eb6d3cce31e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5680
+ hash: "72757a5099748b70241a0d4279e42313"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5696
+ hash: "705feb098ebb2d689526d9271098d6b5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5712
+ hash: "49de92770edb0aae82cf66ae42b31caa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5728
+ hash: "70fe89f9dce556ec1859f325aa27b7db"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 219; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 219; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5744
+ hash: "1ededcc625a0e9e317c5aefc238a175a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 221; y: 87
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5760
+ image: "cursorDelegate.5.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 87
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5776
+ hash: "f1ae53071836512830f7284c4ac884b3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5792
+ hash: "f73c2b66b61bdcb080f8be6607079729"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 224; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5808
+ hash: "11da14806fbca5c7cd559286fb5d70ff"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 226; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5824
+ hash: "b3ad82e900925227fb020009ae619d28"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 228; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5840
+ hash: "d8cea4160f0044b09e595610ead01879"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 229; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 231; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5856
+ hash: "bdd0d1bea8590b40cdce2fb45e17901b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 232; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5872
+ hash: "007a5d123eea589264e22f862f1bcac6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 233; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5888
+ hash: "3a83635e8371f3e26baf83c285b7801d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 233; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5904
+ hash: "6615931007ab0f9da070b6316068ad12"
+ }
+ Frame {
+ msec: 5920
+ hash: "be695ab0dced25c1c498d977fc822cef"
+ }
+ Frame {
+ msec: 5936
+ hash: "46dea7348473bc6ce4ea696292e5aae0"
+ }
+ Frame {
+ msec: 5952
+ hash: "23ce0ba723ffe4253610fdc635df9ae2"
+ }
+ Frame {
+ msec: 5968
+ hash: "9d6243396fd98b7efd14ae8a67297e79"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 233; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5984
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 232; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 232; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6000
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 231; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6016
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 230; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6032
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 229; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 228; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6048
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 227; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6064
+ hash: "be488252ce6c39317c33706f7febe7b5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 225; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6080
+ hash: "16c38b5dcd8ffbadc533d4fea8a85b0d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 224; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6096
+ hash: "a3ca6fa1bbc5ca3ff4cf281ae112102d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6112
+ hash: "58e53a9cb886d6d90c0b5987d0693904"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 219; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6128
+ hash: "a7f3e07ad0335e2852a156b5a3e1bd3d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6144
+ hash: "bea9d0338212c01474b25ee637aa8fd0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 215; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6160
+ hash: "b509c0cdea6b1352ff1e146a8f243820"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 213; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6176
+ hash: "9c968354773878009af2f176b1e38d42"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6192
+ hash: "d8cea4160f0044b09e595610ead01879"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6208
+ hash: "b3ad82e900925227fb020009ae619d28"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6224
+ hash: "11da14806fbca5c7cd559286fb5d70ff"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6240
+ hash: "707f51caadf24d3ed88b69c290d56971"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6256
+ hash: "c23b2afed7fa0e3dbce1183cf8e8d724"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6272
+ hash: "653b2e2d711c1abc1893d0068f4c531c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6288
+ hash: "246a73b19421f0ea8ec444429bd6704e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6304
+ hash: "3878df64c0cecb2051e04dafe16ad407"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6320
+ hash: "1cf92a793a4d145acce08c61cca3ba4f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6336
+ hash: "6c5f70c941a04172aae855eed1516971"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 197; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6352
+ hash: "5f4b8d6ad49de0ea1a2ee057e783b363"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6368
+ hash: "dc185cf4a14801d7bcc24ceadffe312b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 188; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6384
+ hash: "6934c069d1b7daf1c2dd76739941c7c2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 187; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6400
+ hash: "415510947b49a08459523fa2221d3609"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 185; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6416
+ hash: "9586619df75f07cc1f01201abd0f1f43"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 182; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6432
+ hash: "d016b14c9d5e5cd2545f1c85aa1edc4f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 176; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6448
+ hash: "4100837adeaf1557534f5c243eeacc37"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 171; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6464
+ hash: "a9351f624dc7de55ca8e799cf4371e75"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6480
+ hash: "8f2f9ba7de4e01767dda2c6d8f09e218"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 160; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6496
+ hash: "fb9b7d7e1aa140efc7e39cbca7299d34"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 159; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6512
+ hash: "eb1c2399d5779cc3382f02e69e5a31f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 156; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6528
+ hash: "3bd98dc8a8cfb7af8a5f2ab11f387065"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 156; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6544
+ hash: "1eea9af6e5f359b96df86d56d74f8375"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 155; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6560
+ hash: "74c68b948d8e1d3c716eba5f1a186464"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 153; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6576
+ hash: "7103ecc0c21208d210938b0cd86fa4e2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 151; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6592
+ hash: "187b7801be7cd9643c707016166fcb38"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 149; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6608
+ hash: "571fe7704d5d95e91d4bd411ab00edf0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 148; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6624
+ hash: "2b6fd25a47274ffa56c3d0020babfdfc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 146; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6640
+ hash: "febcd6b5fc1806ff57d1669c79aa4cb2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 145; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6656
+ hash: "5c731fc4a2aeccf55a0af2b7171f25ce"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 145; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6672
+ hash: "7d9df9dd9a99eabaa4b426438e44d612"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 144; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6688
+ hash: "48278540489142f8a63ed120f4b956c2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 144; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6704
+ hash: "d08abdfb587a7ec07872cb662526b6d8"
+ }
+ Frame {
+ msec: 6720
+ image: "cursorDelegate.6.png"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 144; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6736
+ hash: "4622738082ac75e00b6c63e846b7e98b"
+ }
+ Frame {
+ msec: 6752
+ hash: "87a9f2facbaba462c562f09947bb7ded"
+ }
+ Frame {
+ msec: 6768
+ hash: "77e730ece9f195c3627508d1c2a126fc"
+ }
+ Frame {
+ msec: 6784
+ hash: "4a02aaca12e3fd86ee3b516b3a307f86"
+ }
+ Frame {
+ msec: 6800
+ hash: "0a1c2eb8a7451a5e37fefb96a58a88a1"
+ }
+ Frame {
+ msec: 6816
+ hash: "7f2d9959323f0707e36ecb2252c89727"
+ }
+ Frame {
+ msec: 6832
+ hash: "3462a3e166120515e67430600e4653f8"
+ }
+ Frame {
+ msec: 6848
+ hash: "eac8375d9b9cf0afbf232e27c6ceb037"
+ }
+ Frame {
+ msec: 6864
+ hash: "fbefb1e0801f4578ab93dd7ff4062e68"
+ }
+ Frame {
+ msec: 6880
+ hash: "078d75d72bff036574b85ac0aeaaf2b6"
+ }
+ Frame {
+ msec: 6896
+ hash: "14b328c8ec6276e022643102af80fa44"
+ }
+ Frame {
+ msec: 6912
+ hash: "bdcafed4ae9c890eec2e3e0cb2ff5a14"
+ }
+ Frame {
+ msec: 6928
+ hash: "df6f025130dc82f4764def81cec5fa7b"
+ }
+ Frame {
+ msec: 6944
+ hash: "cf467854dfde9b2111bc6e7e4442aab5"
+ }
+ Frame {
+ msec: 6960
+ hash: "cfcdf63ca06c2b9ab197821bc1e48c7c"
+ }
+ Frame {
+ msec: 6976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 6992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 7008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 7024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 7040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 7056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 7072
+ hash: "cfcdf63ca06c2b9ab197821bc1e48c7c"
+ }
+ Frame {
+ msec: 7088
+ hash: "cf467854dfde9b2111bc6e7e4442aab5"
+ }
+ Frame {
+ msec: 7104
+ hash: "df6f025130dc82f4764def81cec5fa7b"
+ }
+ Frame {
+ msec: 7120
+ hash: "bdcafed4ae9c890eec2e3e0cb2ff5a14"
+ }
+ Frame {
+ msec: 7136
+ hash: "14b328c8ec6276e022643102af80fa44"
+ }
+ Frame {
+ msec: 7152
+ hash: "078d75d72bff036574b85ac0aeaaf2b6"
+ }
+ Frame {
+ msec: 7168
+ hash: "fbefb1e0801f4578ab93dd7ff4062e68"
+ }
+ Frame {
+ msec: 7184
+ hash: "eac8375d9b9cf0afbf232e27c6ceb037"
+ }
+ Frame {
+ msec: 7200
+ hash: "3462a3e166120515e67430600e4653f8"
+ }
+ Frame {
+ msec: 7216
+ hash: "7f2d9959323f0707e36ecb2252c89727"
+ }
+ Frame {
+ msec: 7232
+ hash: "0a1c2eb8a7451a5e37fefb96a58a88a1"
+ }
+ Frame {
+ msec: 7248
+ hash: "4a02aaca12e3fd86ee3b516b3a307f86"
+ }
+ Frame {
+ msec: 7264
+ hash: "77e730ece9f195c3627508d1c2a126fc"
+ }
+ Frame {
+ msec: 7280
+ hash: "87a9f2facbaba462c562f09947bb7ded"
+ }
+ Frame {
+ msec: 7296
+ hash: "4622738082ac75e00b6c63e846b7e98b"
+ }
+ Frame {
+ msec: 7312
+ hash: "9fcec7616e28cb8317709656fd94f480"
+ }
+ Frame {
+ msec: 7328
+ hash: "d08abdfb587a7ec07872cb662526b6d8"
+ }
+ Frame {
+ msec: 7344
+ hash: "48278540489142f8a63ed120f4b956c2"
+ }
+ Frame {
+ msec: 7360
+ hash: "7d9df9dd9a99eabaa4b426438e44d612"
+ }
+ Frame {
+ msec: 7376
+ hash: "5c731fc4a2aeccf55a0af2b7171f25ce"
+ }
+ Frame {
+ msec: 7392
+ hash: "febcd6b5fc1806ff57d1669c79aa4cb2"
+ }
+ Frame {
+ msec: 7408
+ hash: "4ad2c0877360b0e1bf2212f9455f741e"
+ }
+ Frame {
+ msec: 7424
+ hash: "4df1951aac4ed1957925c95e112b0766"
+ }
+ Frame {
+ msec: 7440
+ hash: "bfbb624abe63639f2a7cb826b6b47393"
+ }
+ Frame {
+ msec: 7456
+ hash: "538cf4ee98145b3801e198b036e24a46"
+ }
+ Frame {
+ msec: 7472
+ hash: "5602c039a304ac0b1fd99957970a825b"
+ }
+ Frame {
+ msec: 7488
+ hash: "9ddd7709269b9a008e15d942e156e13a"
+ }
+ Frame {
+ msec: 7504
+ hash: "91d7c43f5f985d624e77da43ba5fb90f"
+ }
+ Frame {
+ msec: 7520
+ hash: "9153b0419d28e3c8137b58f95451cd58"
+ }
+ Frame {
+ msec: 7536
+ hash: "c5aad5ea4db81cf72f1ff390ed1dc868"
+ }
+ Frame {
+ msec: 7552
+ hash: "47b52ce9e5c705017e94b419b53d20d9"
+ }
+ Frame {
+ msec: 7568
+ hash: "f968e3289a2a6343cdb64e37b83f142a"
+ }
+ Frame {
+ msec: 7584
+ hash: "6fe898a37b17b6b6fa9a2971b518d185"
+ }
+ Frame {
+ msec: 7600
+ hash: "90ced2e487b6e760f2ad2c7d6375a36f"
+ }
+ Frame {
+ msec: 7616
+ hash: "b2d87713d12a54d4d7b6fd6ba2671704"
+ }
+ Frame {
+ msec: 7632
+ hash: "edce9857bd0e93ab841ae62ffba0149f"
+ }
+ Frame {
+ msec: 7648
+ hash: "13ce69facee6bf01c9712db1781c5ef9"
+ }
+ Frame {
+ msec: 7664
+ hash: "64924e43e004f0d9e90c23f61813c732"
+ }
+ Frame {
+ msec: 7680
+ image: "cursorDelegate.7.png"
+ }
+ Frame {
+ msec: 7696
+ hash: "9c384359c664a71b5b6b9f9d62dd38bf"
+ }
+ Frame {
+ msec: 7712
+ hash: "5998579d228bcf0efdbcee805796ec23"
+ }
+ Frame {
+ msec: 7728
+ hash: "fe69cab70ad5b25f757bc413b895ff94"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 227; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7744
+ hash: "1ededcc625a0e9e317c5aefc238a175a"
+ }
+ Frame {
+ msec: 7760
+ hash: "460a4cbee55ccdeda1941c8dccf08cbd"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 227; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7776
+ hash: "f1ae53071836512830f7284c4ac884b3"
+ }
+ Frame {
+ msec: 7792
+ hash: "f73c2b66b61bdcb080f8be6607079729"
+ }
+ Frame {
+ msec: 7808
+ hash: "11da14806fbca5c7cd559286fb5d70ff"
+ }
+ Frame {
+ msec: 7824
+ hash: "b3ad82e900925227fb020009ae619d28"
+ }
+ Frame {
+ msec: 7840
+ hash: "d8cea4160f0044b09e595610ead01879"
+ }
+ Frame {
+ msec: 7856
+ hash: "9c968354773878009af2f176b1e38d42"
+ }
+ Frame {
+ msec: 7872
+ hash: "b509c0cdea6b1352ff1e146a8f243820"
+ }
+ Frame {
+ msec: 7888
+ hash: "bea9d0338212c01474b25ee637aa8fd0"
+ }
+ Frame {
+ msec: 7904
+ hash: "a7f3e07ad0335e2852a156b5a3e1bd3d"
+ }
+ Frame {
+ msec: 7920
+ hash: "58e53a9cb886d6d90c0b5987d0693904"
+ }
+ Frame {
+ msec: 7936
+ hash: "a3ca6fa1bbc5ca3ff4cf281ae112102d"
+ }
+ Frame {
+ msec: 7952
+ hash: "16c38b5dcd8ffbadc533d4fea8a85b0d"
+ }
+ Frame {
+ msec: 7968
+ hash: "be488252ce6c39317c33706f7febe7b5"
+ }
+ Frame {
+ msec: 7984
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8000
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8016
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8032
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8048
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8064
+ hash: "be488252ce6c39317c33706f7febe7b5"
+ }
+ Frame {
+ msec: 8080
+ hash: "16c38b5dcd8ffbadc533d4fea8a85b0d"
+ }
+ Frame {
+ msec: 8096
+ hash: "a3ca6fa1bbc5ca3ff4cf281ae112102d"
+ }
+ Frame {
+ msec: 8112
+ hash: "58e53a9cb886d6d90c0b5987d0693904"
+ }
+ Frame {
+ msec: 8128
+ hash: "a7f3e07ad0335e2852a156b5a3e1bd3d"
+ }
+ Frame {
+ msec: 8144
+ hash: "bea9d0338212c01474b25ee637aa8fd0"
+ }
+ Frame {
+ msec: 8160
+ hash: "b509c0cdea6b1352ff1e146a8f243820"
+ }
+ Frame {
+ msec: 8176
+ hash: "9c968354773878009af2f176b1e38d42"
+ }
+ Frame {
+ msec: 8192
+ hash: "d8cea4160f0044b09e595610ead01879"
+ }
+ Frame {
+ msec: 8208
+ hash: "b3ad82e900925227fb020009ae619d28"
+ }
+ Frame {
+ msec: 8224
+ hash: "11da14806fbca5c7cd559286fb5d70ff"
+ }
+ Frame {
+ msec: 8240
+ hash: "f73c2b66b61bdcb080f8be6607079729"
+ }
+ Frame {
+ msec: 8256
+ hash: "f1ae53071836512830f7284c4ac884b3"
+ }
+ Frame {
+ msec: 8272
+ hash: "460a4cbee55ccdeda1941c8dccf08cbd"
+ }
+ Frame {
+ msec: 8288
+ hash: "1ededcc625a0e9e317c5aefc238a175a"
+ }
+ Frame {
+ msec: 8304
+ hash: "70fe89f9dce556ec1859f325aa27b7db"
+ }
+ Frame {
+ msec: 8320
+ hash: "49de92770edb0aae82cf66ae42b31caa"
+ }
+ Frame {
+ msec: 8336
+ hash: "705feb098ebb2d689526d9271098d6b5"
+ }
+ Frame {
+ msec: 8352
+ hash: "72757a5099748b70241a0d4279e42313"
+ }
+ Frame {
+ msec: 8368
+ hash: "7049bee9a984a2c2d3101eb6d3cce31e"
+ }
+ Frame {
+ msec: 8384
+ hash: "f33da88ae881c846bd86ab3dc4f12efc"
+ }
+ Frame {
+ msec: 8400
+ hash: "a0751fa826b03cb25e615c6a1435d92a"
+ }
+ Frame {
+ msec: 8416
+ hash: "d99389a3287d453b942f070d8c1e86e8"
+ }
+ Frame {
+ msec: 8432
+ hash: "e3219357e73a2dfd5b80dfbd6feb79e2"
+ }
+ Frame {
+ msec: 8448
+ hash: "c0953accd856883c813d4ecf99fb632b"
+ }
+ Frame {
+ msec: 8464
+ hash: "185743339cba9dfc1a2c2ff1efd23855"
+ }
+ Frame {
+ msec: 8480
+ hash: "30a4419de779037fd84bd70a99c4d6de"
+ }
+ Frame {
+ msec: 8496
+ hash: "1d9cbd0814831c518e9e8041fe8285c9"
+ }
+ Frame {
+ msec: 8512
+ hash: "81d660df1b0eab7c382991b600f88ba3"
+ }
+ Frame {
+ msec: 8528
+ hash: "7ee1467525b9fe3b6a32fba8c2454df1"
+ }
+ Frame {
+ msec: 8544
+ hash: "28dd72957652cf130d28d30203b36c59"
+ }
+ Frame {
+ msec: 8560
+ hash: "e9697d06a22958cea4f766dd3ec31ca9"
+ }
+ Frame {
+ msec: 8576
+ hash: "81970c31a0a1e42929c83ef5140401c2"
+ }
+ Frame {
+ msec: 8592
+ hash: "ebb5be43955725bef66bf99bd7288c04"
+ }
+ Frame {
+ msec: 8608
+ hash: "afbf0645ea651b2c459eeb43bdc65992"
+ }
+ Frame {
+ msec: 8624
+ hash: "42bf6ab3963652617f2feb96ee170af5"
+ }
+ Frame {
+ msec: 8640
+ image: "cursorDelegate.8.png"
+ }
+ Frame {
+ msec: 8656
+ hash: "4a5966f600f9b27bf7a65fcc6c1c5d17"
+ }
+ Frame {
+ msec: 8672
+ hash: "ecdc1d89af1e76648c8298e2b9940549"
+ }
+ Frame {
+ msec: 8688
+ hash: "0ba1e105a7ae41926e2106b60eafdec9"
+ }
+ Frame {
+ msec: 8704
+ hash: "96e4f277d4ff76afe0c2d58b4aed3acb"
+ }
+ Frame {
+ msec: 8720
+ hash: "f41c6fd9e22354b8f5c940c04930a591"
+ }
+ Frame {
+ msec: 8736
+ hash: "00b522554cf6c0c09e5425f4d3c3fcf9"
+ }
+ Frame {
+ msec: 8752
+ hash: "e8549c0c361f20d167cab128dc996274"
+ }
+ Frame {
+ msec: 8768
+ hash: "976c61615250f9bfa3b4c02ee88bee03"
+ }
+ Frame {
+ msec: 8784
+ hash: "06c95d2fa5e2b4751e5693b179e76eb4"
+ }
+ Frame {
+ msec: 8800
+ hash: "a3d79197235c4717b1f9af3582118ca6"
+ }
+ Frame {
+ msec: 8816
+ hash: "68b23db8f519aa161278074aa318eaa1"
+ }
+ Frame {
+ msec: 8832
+ hash: "af967462be12d0b6ddd3571b00804c12"
+ }
+ Frame {
+ msec: 8848
+ hash: "46f5c0baa2b95fd418984eebe308157e"
+ }
+ Frame {
+ msec: 8864
+ hash: "0a7407c6c751b3f1380a99883e95f1dd"
+ }
+ Frame {
+ msec: 8880
+ hash: "9969c206488671c45c43f3a3dd3f5994"
+ }
+ Frame {
+ msec: 8896
+ hash: "89efa872ce2e71935b47cac101bf15c9"
+ }
+ Frame {
+ msec: 8912
+ hash: "a4545a0c50fb071d267b06bf2d114802"
+ }
+ Frame {
+ msec: 8928
+ hash: "f4df98459c18399e1c6b2d8a43bdd678"
+ }
+ Frame {
+ msec: 8944
+ hash: "027eb091eea8bf51d7ad3ff44120e075"
+ }
+ Frame {
+ msec: 8960
+ hash: "138ec35b850d20664f905a4eea6f7456"
+ }
+ Frame {
+ msec: 8976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9072
+ hash: "138ec35b850d20664f905a4eea6f7456"
+ }
+ Frame {
+ msec: 9088
+ hash: "027eb091eea8bf51d7ad3ff44120e075"
+ }
+ Frame {
+ msec: 9104
+ hash: "f4df98459c18399e1c6b2d8a43bdd678"
+ }
+ Frame {
+ msec: 9120
+ hash: "a4545a0c50fb071d267b06bf2d114802"
+ }
+ Frame {
+ msec: 9136
+ hash: "89efa872ce2e71935b47cac101bf15c9"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.0.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.0.png
new file mode 100644
index 0000000..cc1774f
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.1.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.1.png
new file mode 100644
index 0000000..60eba16
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.2.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.2.png
new file mode 100644
index 0000000..d4663f7
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.3.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.3.png
new file mode 100644
index 0000000..dc1bb52
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.qml b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.qml
new file mode 100644
index 0000000..84c16e1
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data-MAC/qt-669.qml
@@ -0,0 +1,1371 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 32
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 48
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 64
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 80
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 96
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 112
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 128
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 144
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 160
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 176
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 192
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 208
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 224
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 240
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 256
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 272
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 288
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 304
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 320
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 336
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 352
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 368
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 384
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 400
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 416
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 432
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 448
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 464
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 480
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 496
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 512
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 528
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 544
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 560
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 576
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 592
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 608
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 624
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 640
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 656
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 672
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 688
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 704
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 720
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 736
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 752
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 768
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 784
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 800
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 816
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 832
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 848
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 864
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 880
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 896
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 912
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 928
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 944
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 960
+ image: "qt-669.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 992
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 1008
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1024
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 1040
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 1056
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 1072
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 1088
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1104
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 1120
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 1136
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1152
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 1168
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 1184
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 1200
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 1216
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1232
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 1248
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 1264
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 1280
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1296
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 1312
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 1328
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 1344
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1360
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1376
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1392
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1408
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1424
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1440
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1456
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1472
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1488
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1504
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1520
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1536
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1552
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1568
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1584
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1600
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1616
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1632
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1648
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1664
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1680
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1696
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1712
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1728
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1744
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1760
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1776
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1792
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1808
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1824
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Frame {
+ msec: 1840
+ hash: "781a5a09fb6c6ca1fd38f63938f9c8d0"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1856
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1872
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1888
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1904
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1920
+ image: "qt-669.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1952
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1968
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 1984
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2000
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 2016
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 2032
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 2048
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Frame {
+ msec: 2064
+ hash: "2718ab36551a20d36664f26e408f8f24"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2080
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 2096
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 2112
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 2128
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 2144
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2160
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 2176
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 2192
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 2208
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Frame {
+ msec: 2224
+ hash: "823ccdc677997c96e4ae16891ffffa77"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2240
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 2256
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2272
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 2288
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 2304
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 2320
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Frame {
+ msec: 2336
+ hash: "f90403e0b62f9579b5c5f591e75e9eb5"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2352
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2368
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2384
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2400
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2416
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2432
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2448
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2464
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2480
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2496
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2512
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2528
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2544
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2560
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2576
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Frame {
+ msec: 2592
+ hash: "1295bd1d94fe518d5a871e90cab88e0c"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2608
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 2624
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 2640
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 2656
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 2672
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2688
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 2704
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 2720
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 2736
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Frame {
+ msec: 2752
+ hash: "c186352ed5d1539a45b3c9e1dfa408d6"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2768
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 2784
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 2800
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2816
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 2832
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 2848
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Frame {
+ msec: 2864
+ hash: "c602a6535ef86125615307d9d187eb3f"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2880
+ image: "qt-669.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 2912
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 2928
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2944
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 2960
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 2976
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 2992
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Frame {
+ msec: 3008
+ hash: "fbc07fa31ab2022f3155bd1fb591fe6c"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3024
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3040
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3056
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3072
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3088
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3104
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3120
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3136
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3152
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3168
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3184
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3200
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3216
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3232
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3248
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3264
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3280
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3296
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3312
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3328
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3344
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3360
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3376
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3392
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3408
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3424
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3440
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3456
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3472
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3488
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3504
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3520
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3536
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3552
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3568
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3584
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3600
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3616
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3632
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3648
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3664
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3680
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Frame {
+ msec: 3696
+ hash: "e64c3246a0f81e2df29ac276ac6d411f"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3712
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3728
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3744
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3760
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3776
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3792
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3808
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3824
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3840
+ image: "qt-669.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3872
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3888
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3904
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3920
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3936
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3952
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3968
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 3984
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4000
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4016
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4032
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4048
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4064
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4080
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4096
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4112
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4128
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4144
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4160
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4176
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4192
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4208
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4224
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4240
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4256
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4272
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4288
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+ Frame {
+ msec: 4304
+ hash: "c043ae4adb31cb53bfc089e7f2ed07b2"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.0.png
new file mode 100644
index 0000000..9d0bab2
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.1.png
new file mode 100644
index 0000000..db66ff7
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.2.png
new file mode 100644
index 0000000..cbcca68
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.3.png
new file mode 100644
index 0000000..c22196b
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.4.png
new file mode 100644
index 0000000..a1d051e
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.5.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.5.png
new file mode 100644
index 0000000..9289dc0
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.6.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.6.png
new file mode 100644
index 0000000..7331f89
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.7.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.7.png
new file mode 100644
index 0000000..968bdd2
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.8.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.8.png
new file mode 100644
index 0000000..9a3436a
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.qml b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.qml
new file mode 100644
index 0000000..3b664b6
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data-MAC/cursorDelegate.qml
@@ -0,0 +1,3379 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 32
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 48
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 64
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 80
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 96
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 112
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 128
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 144
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 160
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 176
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 192
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 208
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 224
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 240
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 256
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 272
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 288
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 304
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 320
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 336
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 352
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 368
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 384
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 400
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 416
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 432
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 448
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 464
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 480
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 496
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Frame {
+ msec: 512
+ hash: "701d8c0f72330c0b72df071bd17749e6"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 528
+ hash: "438be260f19d04c9f98ed7dce1c7db40"
+ }
+ Frame {
+ msec: 544
+ hash: "6032aada2c48092000ecb93e52656414"
+ }
+ Frame {
+ msec: 560
+ hash: "d23bdd94019477d8378cde580d8765ad"
+ }
+ Frame {
+ msec: 576
+ hash: "d74f8e44d47710714d4197809fffb622"
+ }
+ Frame {
+ msec: 592
+ hash: "4fbbb8447d80012bc6b5c24ddbfe498e"
+ }
+ Frame {
+ msec: 608
+ hash: "4e875ba8703b690a17e445f2b3810435"
+ }
+ Frame {
+ msec: 624
+ hash: "e4d7a59716cd704fe1cfa8ba91454e93"
+ }
+ Frame {
+ msec: 640
+ hash: "a2ea272b45d8de225826d9381015ff2e"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 656
+ hash: "5d112a3675ea4c010e7bc60e036d0262"
+ }
+ Frame {
+ msec: 672
+ hash: "788d8962f311adf57a3acc876b0e8804"
+ }
+ Frame {
+ msec: 688
+ hash: "827fdd6a3d1006f4a9dd2faf208ea436"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 704
+ hash: "91b2695e4915238ae8610a64e279b0f4"
+ }
+ Frame {
+ msec: 720
+ hash: "a97d90765f87b998eae6e9f603c61bff"
+ }
+ Frame {
+ msec: 736
+ hash: "48969edab07b942480d93ac2d383ca24"
+ }
+ Frame {
+ msec: 752
+ hash: "ecfd9d6d5873001f0c67806544a14983"
+ }
+ Frame {
+ msec: 768
+ hash: "a3a3bc1e2523d3e7f961893bcd1dd3a8"
+ }
+ Frame {
+ msec: 784
+ hash: "e337735ad0b42e60c54f16f3da7af3cf"
+ }
+ Frame {
+ msec: 800
+ hash: "c39db081130d269f25dbcb1a19afb8d0"
+ }
+ Frame {
+ msec: 816
+ hash: "c464d501e3935ec0f53eb780bd1a8289"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 832
+ hash: "9dc01a69f2a6892d3c4203674c8bef72"
+ }
+ Frame {
+ msec: 848
+ hash: "d94054222fd37a350bd8abd592a332e3"
+ }
+ Frame {
+ msec: 864
+ hash: "46fed264c233490b477e3a7c22183e18"
+ }
+ Frame {
+ msec: 880
+ hash: "34bc703c915b49b0450ece1d18306df8"
+ }
+ Frame {
+ msec: 896
+ hash: "e87f18da2fa5c91c9b2b5dea50f9c1e2"
+ }
+ Frame {
+ msec: 912
+ hash: "4f6dbc7b249c37390518cc263832b587"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 928
+ hash: "df09fa2fd138d1b480eec82db3872d6f"
+ }
+ Frame {
+ msec: 944
+ hash: "b74cb1bfbb979a5e91853d9145d277d8"
+ }
+ Frame {
+ msec: 960
+ image: "cursorDelegate.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 1056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Key {
+ type: 6
+ key: 16777248
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 33554432
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1072
+ hash: "35425ae3ccf3c8dcc1483479c57a3287"
+ }
+ Frame {
+ msec: 1088
+ hash: "b74cb1bfbb979a5e91853d9145d277d8"
+ }
+ Frame {
+ msec: 1104
+ hash: "df09fa2fd138d1b480eec82db3872d6f"
+ }
+ Frame {
+ msec: 1120
+ hash: "4f6dbc7b249c37390518cc263832b587"
+ }
+ Frame {
+ msec: 1136
+ hash: "e87f18da2fa5c91c9b2b5dea50f9c1e2"
+ }
+ Frame {
+ msec: 1152
+ hash: "34bc703c915b49b0450ece1d18306df8"
+ }
+ Frame {
+ msec: 1168
+ hash: "46fed264c233490b477e3a7c22183e18"
+ }
+ Frame {
+ msec: 1184
+ hash: "d94054222fd37a350bd8abd592a332e3"
+ }
+ Frame {
+ msec: 1200
+ hash: "9dc01a69f2a6892d3c4203674c8bef72"
+ }
+ Frame {
+ msec: 1216
+ hash: "76fb2e1ad33affe33c0887f04caa7396"
+ }
+ Frame {
+ msec: 1232
+ hash: "0f500339c81ca3621d13910017b84b7b"
+ }
+ Frame {
+ msec: 1248
+ hash: "702864de569e6a5648ee174d5ef891f8"
+ }
+ Frame {
+ msec: 1264
+ hash: "01e937e1fcc0331b2541fa32c3479a24"
+ }
+ Frame {
+ msec: 1280
+ hash: "ee661e6cc1f86e755ff399adb6b11fd1"
+ }
+ Frame {
+ msec: 1296
+ hash: "ea2d610e9b41e72b2984a51f0d3f7587"
+ }
+ Frame {
+ msec: 1312
+ hash: "4a646d76b706698a02cead560b1f8d57"
+ }
+ Frame {
+ msec: 1328
+ hash: "48ec87bfc25471f6fa2d43f9db80b693"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 100663296
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1344
+ hash: "12b5e016bad990d1f2bf427ee8e3e6d9"
+ }
+ Frame {
+ msec: 1360
+ hash: "66a2ba3f9e005cd58aa50cfa0000cd15"
+ }
+ Frame {
+ msec: 1376
+ hash: "a2e9e42e09dadbd0791f52bb96e0e0dc"
+ }
+ Frame {
+ msec: 1392
+ hash: "ac68396566ea85a157e944e601dd8d18"
+ }
+ Frame {
+ msec: 1408
+ hash: "b9bfdebec8dd1a93de7ef2768b2542ba"
+ }
+ Frame {
+ msec: 1424
+ hash: "2e0a4b960803770acb34ef56ccf2be35"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 100663296
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1440
+ hash: "df1643f0f8b7aa2dc080958822aeb3d0"
+ }
+ Frame {
+ msec: 1456
+ hash: "15bb91195adfaf83e88fd93e41ff3e17"
+ }
+ Frame {
+ msec: 1472
+ hash: "dc0476c27bd7eef3a59637df9a3fecd8"
+ }
+ Frame {
+ msec: 1488
+ hash: "a271f69e9dc6d1e0362c3e10760895df"
+ }
+ Frame {
+ msec: 1504
+ hash: "7fe66bcc6bada354b4dd7baf8c977740"
+ }
+ Frame {
+ msec: 1520
+ hash: "6b502dbd5ac8ff010df326cb9b593dce"
+ }
+ Frame {
+ msec: 1536
+ hash: "a9dd21649a95a6a6e8daea91bc6e2a5f"
+ }
+ Frame {
+ msec: 1552
+ hash: "374686590eaa02b7b436caa40cc0b0a0"
+ }
+ Frame {
+ msec: 1568
+ hash: "09ac3c5d413b1f650407eaa971aade81"
+ }
+ Frame {
+ msec: 1584
+ hash: "39f84e04f1ae58600591c0de40558d2c"
+ }
+ Frame {
+ msec: 1600
+ hash: "0336ea1799835af2185c361e221a9661"
+ }
+ Frame {
+ msec: 1616
+ hash: "8c7ab13e499d7f31107cf0f899334259"
+ }
+ Frame {
+ msec: 1632
+ hash: "bad5899324e52c9e6eadb72f3e7c2150"
+ }
+ Frame {
+ msec: 1648
+ hash: "4b78f451ecb22cfbed9f5998d61018eb"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 100663296
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1664
+ hash: "6c913bc712eee18947a43dd1c0a6516b"
+ }
+ Frame {
+ msec: 1680
+ hash: "4e566abf1e0696e72b2a4beab5a53d6e"
+ }
+ Frame {
+ msec: 1696
+ hash: "6ad579c289c63a6b90a1517765fc041e"
+ }
+ Frame {
+ msec: 1712
+ hash: "cef43f349cf221a1aa6e6e70f1fa6339"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 100663296
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1728
+ hash: "d89f7e3e2510fcb34786584747633673"
+ }
+ Frame {
+ msec: 1744
+ hash: "eb23a3eac684808f73034f4e4ef8984d"
+ }
+ Frame {
+ msec: 1760
+ hash: "6f2c1f61e58940d9cc1a70c0db903446"
+ }
+ Frame {
+ msec: 1776
+ hash: "f036a5ecda518be198f3bdf2dbc5baab"
+ }
+ Frame {
+ msec: 1792
+ hash: "7411784774fdc3b324644395f7beb013"
+ }
+ Frame {
+ msec: 1808
+ hash: "abfdd1f8440998af2ff7903f49f1bd7c"
+ }
+ Frame {
+ msec: 1824
+ hash: "6edd29f2e8d3d81e912c6b279ecc1885"
+ }
+ Frame {
+ msec: 1840
+ hash: "8eb5ba22793c7cbfa97a64557f2a023f"
+ }
+ Frame {
+ msec: 1856
+ hash: "9a39470525e6f508228f7e0014e02d64"
+ }
+ Frame {
+ msec: 1872
+ hash: "b3ad10cf28151f5f7f5a4c3540f1660e"
+ }
+ Frame {
+ msec: 1888
+ hash: "816203df3cf42fa7a0e8d6730c186444"
+ }
+ Frame {
+ msec: 1904
+ hash: "a0a7e7ff7960dfe6149e526badf799a6"
+ }
+ Frame {
+ msec: 1920
+ image: "cursorDelegate.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "4d245b2285eadfd206409f74e03c7fc9"
+ }
+ Frame {
+ msec: 1952
+ hash: "e1d5e6c2e4df1454b5a256c3678ffdef"
+ }
+ Frame {
+ msec: 1968
+ hash: "781d7fb03a37cb3f297cc0d2df338fd7"
+ }
+ Key {
+ type: 7
+ key: 16777249
+ modifiers: 100663296
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1984
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2000
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2016
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2032
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2048
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2064
+ hash: "781d7fb03a37cb3f297cc0d2df338fd7"
+ }
+ Frame {
+ msec: 2080
+ hash: "e1d5e6c2e4df1454b5a256c3678ffdef"
+ }
+ Frame {
+ msec: 2096
+ hash: "4d245b2285eadfd206409f74e03c7fc9"
+ }
+ Frame {
+ msec: 2112
+ hash: "5a647962e016d15daa417d88524d6061"
+ }
+ Frame {
+ msec: 2128
+ hash: "a0a7e7ff7960dfe6149e526badf799a6"
+ }
+ Frame {
+ msec: 2144
+ hash: "816203df3cf42fa7a0e8d6730c186444"
+ }
+ Frame {
+ msec: 2160
+ hash: "b3ad10cf28151f5f7f5a4c3540f1660e"
+ }
+ Frame {
+ msec: 2176
+ hash: "9a39470525e6f508228f7e0014e02d64"
+ }
+ Frame {
+ msec: 2192
+ hash: "8eb5ba22793c7cbfa97a64557f2a023f"
+ }
+ Frame {
+ msec: 2208
+ hash: "6edd29f2e8d3d81e912c6b279ecc1885"
+ }
+ Frame {
+ msec: 2224
+ hash: "abfdd1f8440998af2ff7903f49f1bd7c"
+ }
+ Frame {
+ msec: 2240
+ hash: "7411784774fdc3b324644395f7beb013"
+ }
+ Frame {
+ msec: 2256
+ hash: "f036a5ecda518be198f3bdf2dbc5baab"
+ }
+ Key {
+ type: 7
+ key: 16777248
+ modifiers: 33554432
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2272
+ hash: "6f2c1f61e58940d9cc1a70c0db903446"
+ }
+ Frame {
+ msec: 2288
+ hash: "eb23a3eac684808f73034f4e4ef8984d"
+ }
+ Frame {
+ msec: 2304
+ hash: "d89f7e3e2510fcb34786584747633673"
+ }
+ Frame {
+ msec: 2320
+ hash: "cef43f349cf221a1aa6e6e70f1fa6339"
+ }
+ Frame {
+ msec: 2336
+ hash: "6ad579c289c63a6b90a1517765fc041e"
+ }
+ Frame {
+ msec: 2352
+ hash: "4e566abf1e0696e72b2a4beab5a53d6e"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2368
+ hash: "6c913bc712eee18947a43dd1c0a6516b"
+ }
+ Frame {
+ msec: 2384
+ hash: "2c518a32ca3b5ca924709cc6990fb039"
+ }
+ Frame {
+ msec: 2400
+ hash: "7f40db00bd3e6d0b39454eefa1403f44"
+ }
+ Frame {
+ msec: 2416
+ hash: "98db32e0d1812e9584105dc4dbceff80"
+ }
+ Frame {
+ msec: 2432
+ hash: "c2150a67391bb574141c16cb011847bf"
+ }
+ Frame {
+ msec: 2448
+ hash: "f9ea21d894fa2dace4d43ce99a580b90"
+ }
+ Frame {
+ msec: 2464
+ hash: "2f580c3244499fc6ecd2121693f463fd"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2480
+ hash: "2f7f421d3e6a895a9efa6b0e8feb81c4"
+ }
+ Frame {
+ msec: 2496
+ hash: "35a18447f319431ed0a645d05a1d03d1"
+ }
+ Frame {
+ msec: 2512
+ hash: "54e36fb4014be554d13709b48b9bdce7"
+ }
+ Frame {
+ msec: 2528
+ hash: "dbe3456536a729b268850a6ee5d1fb47"
+ }
+ Frame {
+ msec: 2544
+ hash: "4c148434cf3868db5dc98f426d9fb913"
+ }
+ Frame {
+ msec: 2560
+ hash: "2eb6da3ebfd531037523347603a805e2"
+ }
+ Frame {
+ msec: 2576
+ hash: "fefbb2f4671f8a36f9d2207ced8c0bfb"
+ }
+ Frame {
+ msec: 2592
+ hash: "1ab596339afc1f96136ee69c4b7688e1"
+ }
+ Frame {
+ msec: 2608
+ hash: "e07f59d729cb2790296e8c7cd3d0d3c9"
+ }
+ Frame {
+ msec: 2624
+ hash: "a7dccada1080487cab2d0a916676c5cb"
+ }
+ Frame {
+ msec: 2640
+ hash: "ac5939eb4379394fab829b307cbfe7ec"
+ }
+ Frame {
+ msec: 2656
+ hash: "9329d353c678d2bc61d08f63029d1b9b"
+ }
+ Frame {
+ msec: 2672
+ hash: "41263f56af7875028bb0c1e7eccf6f5d"
+ }
+ Frame {
+ msec: 2688
+ hash: "e2eb18af82c85ea78ba438163e922df3"
+ }
+ Frame {
+ msec: 2704
+ hash: "91b2695e4915238ae8610a64e279b0f4"
+ }
+ Frame {
+ msec: 2720
+ hash: "a97d90765f87b998eae6e9f603c61bff"
+ }
+ Frame {
+ msec: 2736
+ hash: "48969edab07b942480d93ac2d383ca24"
+ }
+ Frame {
+ msec: 2752
+ hash: "ecfd9d6d5873001f0c67806544a14983"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2768
+ hash: "01e937e1fcc0331b2541fa32c3479a24"
+ }
+ Frame {
+ msec: 2784
+ hash: "702864de569e6a5648ee174d5ef891f8"
+ }
+ Frame {
+ msec: 2800
+ hash: "0f500339c81ca3621d13910017b84b7b"
+ }
+ Frame {
+ msec: 2816
+ hash: "76fb2e1ad33affe33c0887f04caa7396"
+ }
+ Frame {
+ msec: 2832
+ hash: "9dc01a69f2a6892d3c4203674c8bef72"
+ }
+ Frame {
+ msec: 2848
+ hash: "d94054222fd37a350bd8abd592a332e3"
+ }
+ Frame {
+ msec: 2864
+ hash: "46fed264c233490b477e3a7c22183e18"
+ }
+ Frame {
+ msec: 2880
+ image: "cursorDelegate.2.png"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2896
+ hash: "e87f18da2fa5c91c9b2b5dea50f9c1e2"
+ }
+ Frame {
+ msec: 2912
+ hash: "4f6dbc7b249c37390518cc263832b587"
+ }
+ Frame {
+ msec: 2928
+ hash: "df09fa2fd138d1b480eec82db3872d6f"
+ }
+ Frame {
+ msec: 2944
+ hash: "b74cb1bfbb979a5e91853d9145d277d8"
+ }
+ Frame {
+ msec: 2960
+ hash: "35425ae3ccf3c8dcc1483479c57a3287"
+ }
+ Frame {
+ msec: 2976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 2992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 3072
+ hash: "35425ae3ccf3c8dcc1483479c57a3287"
+ }
+ Frame {
+ msec: 3088
+ hash: "b74cb1bfbb979a5e91853d9145d277d8"
+ }
+ Frame {
+ msec: 3104
+ hash: "df09fa2fd138d1b480eec82db3872d6f"
+ }
+ Frame {
+ msec: 3120
+ hash: "4f6dbc7b249c37390518cc263832b587"
+ }
+ Frame {
+ msec: 3136
+ hash: "e87f18da2fa5c91c9b2b5dea50f9c1e2"
+ }
+ Frame {
+ msec: 3152
+ hash: "34bc703c915b49b0450ece1d18306df8"
+ }
+ Frame {
+ msec: 3168
+ hash: "46fed264c233490b477e3a7c22183e18"
+ }
+ Frame {
+ msec: 3184
+ hash: "d94054222fd37a350bd8abd592a332e3"
+ }
+ Frame {
+ msec: 3200
+ hash: "9dc01a69f2a6892d3c4203674c8bef72"
+ }
+ Frame {
+ msec: 3216
+ hash: "76fb2e1ad33affe33c0887f04caa7396"
+ }
+ Frame {
+ msec: 3232
+ hash: "0f500339c81ca3621d13910017b84b7b"
+ }
+ Frame {
+ msec: 3248
+ hash: "702864de569e6a5648ee174d5ef891f8"
+ }
+ Frame {
+ msec: 3264
+ hash: "01e937e1fcc0331b2541fa32c3479a24"
+ }
+ Frame {
+ msec: 3280
+ hash: "ee661e6cc1f86e755ff399adb6b11fd1"
+ }
+ Frame {
+ msec: 3296
+ hash: "ea2d610e9b41e72b2984a51f0d3f7587"
+ }
+ Frame {
+ msec: 3312
+ hash: "4a646d76b706698a02cead560b1f8d57"
+ }
+ Frame {
+ msec: 3328
+ hash: "48ec87bfc25471f6fa2d43f9db80b693"
+ }
+ Frame {
+ msec: 3344
+ hash: "827fdd6a3d1006f4a9dd2faf208ea436"
+ }
+ Frame {
+ msec: 3360
+ hash: "788d8962f311adf57a3acc876b0e8804"
+ }
+ Frame {
+ msec: 3376
+ hash: "5d112a3675ea4c010e7bc60e036d0262"
+ }
+ Frame {
+ msec: 3392
+ hash: "a2ea272b45d8de225826d9381015ff2e"
+ }
+ Frame {
+ msec: 3408
+ hash: "e4d7a59716cd704fe1cfa8ba91454e93"
+ }
+ Frame {
+ msec: 3424
+ hash: "4e875ba8703b690a17e445f2b3810435"
+ }
+ Frame {
+ msec: 3440
+ hash: "4fbbb8447d80012bc6b5c24ddbfe498e"
+ }
+ Frame {
+ msec: 3456
+ hash: "d74f8e44d47710714d4197809fffb622"
+ }
+ Frame {
+ msec: 3472
+ hash: "d23bdd94019477d8378cde580d8765ad"
+ }
+ Frame {
+ msec: 3488
+ hash: "6032aada2c48092000ecb93e52656414"
+ }
+ Frame {
+ msec: 3504
+ hash: "438be260f19d04c9f98ed7dce1c7db40"
+ }
+ Frame {
+ msec: 3520
+ hash: "3af60972e7d5d4320a549e5df52a1228"
+ }
+ Frame {
+ msec: 3536
+ hash: "bf8459b99ca0bf568c58a3bb2a2fcc1f"
+ }
+ Frame {
+ msec: 3552
+ hash: "c0dc1cf5ba7014e069c4d4bd7ac0f89d"
+ }
+ Frame {
+ msec: 3568
+ hash: "f2ddf9d4fd3a2a2d354172714ce94d99"
+ }
+ Frame {
+ msec: 3584
+ hash: "bdfb42dc3879099e402784238c2cdddb"
+ }
+ Frame {
+ msec: 3600
+ hash: "5e483b0fd4808f2fb31aea90ccf86d3e"
+ }
+ Frame {
+ msec: 3616
+ hash: "8159bda651d95a320ac09aa6feb377a1"
+ }
+ Frame {
+ msec: 3632
+ hash: "ceda37af96bd02baae218d3bfaed93f7"
+ }
+ Frame {
+ msec: 3648
+ hash: "4b81757a105aa7c5ac6148455eea66c3"
+ }
+ Frame {
+ msec: 3664
+ hash: "ff7e2cdd006f9b76ab8c0416d81f0cb1"
+ }
+ Frame {
+ msec: 3680
+ hash: "9b174cd9a87ff193ce646408946b310c"
+ }
+ Frame {
+ msec: 3696
+ hash: "89fa590b47ee77021dedf7938439ce69"
+ }
+ Frame {
+ msec: 3712
+ hash: "6e5680803184dfc76cbf1c2de804d6cc"
+ }
+ Frame {
+ msec: 3728
+ hash: "c6de6b9203673c77427ab84ce86daaf5"
+ }
+ Frame {
+ msec: 3744
+ hash: "198f8e912c19debd51f837627d1171e9"
+ }
+ Frame {
+ msec: 3760
+ hash: "3b380dcb6815698241f3dcccb52785c2"
+ }
+ Frame {
+ msec: 3776
+ hash: "254942e12b8a31420d2243b7e2529ae8"
+ }
+ Frame {
+ msec: 3792
+ hash: "ebf121910a5318c284f8e964d63aed40"
+ }
+ Frame {
+ msec: 3808
+ hash: "0fcf416a80d22f077fcf4d23bddeb6c6"
+ }
+ Frame {
+ msec: 3824
+ hash: "4a6596da390380dbafc1cdaceca1101e"
+ }
+ Frame {
+ msec: 3840
+ image: "cursorDelegate.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "c2be53ae5e2d5d3081df9af31426ec84"
+ }
+ Frame {
+ msec: 3872
+ hash: "52350ac5d10f8fe7571d12193b861d3f"
+ }
+ Frame {
+ msec: 3888
+ hash: "f286a35d7f4a022315f69a5db72da388"
+ }
+ Frame {
+ msec: 3904
+ hash: "aa329519eba4dad9589bff095528c535"
+ }
+ Frame {
+ msec: 3920
+ hash: "0beae60853afaaa0e7f7540fb50bcddf"
+ }
+ Frame {
+ msec: 3936
+ hash: "dc098a8b4d2f117a09cf1f2ced201a60"
+ }
+ Frame {
+ msec: 3952
+ hash: "3655b992097b433071ec9dd69e086c70"
+ }
+ Frame {
+ msec: 3968
+ hash: "82cb92d7940d13deee97e4ccda9210fb"
+ }
+ Frame {
+ msec: 3984
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4000
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4016
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4032
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4048
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4064
+ hash: "82cb92d7940d13deee97e4ccda9210fb"
+ }
+ Key {
+ type: 6
+ key: 16777232
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4080
+ hash: "3655b992097b433071ec9dd69e086c70"
+ }
+ Frame {
+ msec: 4096
+ hash: "dc098a8b4d2f117a09cf1f2ced201a60"
+ }
+ Frame {
+ msec: 4112
+ hash: "0beae60853afaaa0e7f7540fb50bcddf"
+ }
+ Frame {
+ msec: 4128
+ hash: "aa329519eba4dad9589bff095528c535"
+ }
+ Key {
+ type: 7
+ key: 16777232
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4144
+ hash: "f286a35d7f4a022315f69a5db72da388"
+ }
+ Frame {
+ msec: 4160
+ hash: "52350ac5d10f8fe7571d12193b861d3f"
+ }
+ Frame {
+ msec: 4176
+ hash: "c2be53ae5e2d5d3081df9af31426ec84"
+ }
+ Frame {
+ msec: 4192
+ hash: "367391b2a124e2c818510567d0884d18"
+ }
+ Frame {
+ msec: 4208
+ hash: "4a6596da390380dbafc1cdaceca1101e"
+ }
+ Frame {
+ msec: 4224
+ hash: "0fcf416a80d22f077fcf4d23bddeb6c6"
+ }
+ Frame {
+ msec: 4240
+ hash: "ebf121910a5318c284f8e964d63aed40"
+ }
+ Frame {
+ msec: 4256
+ hash: "254942e12b8a31420d2243b7e2529ae8"
+ }
+ Frame {
+ msec: 4272
+ hash: "3b380dcb6815698241f3dcccb52785c2"
+ }
+ Frame {
+ msec: 4288
+ hash: "198f8e912c19debd51f837627d1171e9"
+ }
+ Frame {
+ msec: 4304
+ hash: "c6de6b9203673c77427ab84ce86daaf5"
+ }
+ Frame {
+ msec: 4320
+ hash: "6e5680803184dfc76cbf1c2de804d6cc"
+ }
+ Frame {
+ msec: 4336
+ hash: "89fa590b47ee77021dedf7938439ce69"
+ }
+ Frame {
+ msec: 4352
+ hash: "9b174cd9a87ff193ce646408946b310c"
+ }
+ Frame {
+ msec: 4368
+ hash: "ff7e2cdd006f9b76ab8c0416d81f0cb1"
+ }
+ Frame {
+ msec: 4384
+ hash: "4b81757a105aa7c5ac6148455eea66c3"
+ }
+ Frame {
+ msec: 4400
+ hash: "ceda37af96bd02baae218d3bfaed93f7"
+ }
+ Frame {
+ msec: 4416
+ hash: "8159bda651d95a320ac09aa6feb377a1"
+ }
+ Frame {
+ msec: 4432
+ hash: "5e483b0fd4808f2fb31aea90ccf86d3e"
+ }
+ Frame {
+ msec: 4448
+ hash: "bdfb42dc3879099e402784238c2cdddb"
+ }
+ Frame {
+ msec: 4464
+ hash: "f2ddf9d4fd3a2a2d354172714ce94d99"
+ }
+ Frame {
+ msec: 4480
+ hash: "c0dc1cf5ba7014e069c4d4bd7ac0f89d"
+ }
+ Frame {
+ msec: 4496
+ hash: "bf8459b99ca0bf568c58a3bb2a2fcc1f"
+ }
+ Frame {
+ msec: 4512
+ hash: "3af60972e7d5d4320a549e5df52a1228"
+ }
+ Frame {
+ msec: 4528
+ hash: "438be260f19d04c9f98ed7dce1c7db40"
+ }
+ Frame {
+ msec: 4544
+ hash: "6032aada2c48092000ecb93e52656414"
+ }
+ Frame {
+ msec: 4560
+ hash: "d23bdd94019477d8378cde580d8765ad"
+ }
+ Frame {
+ msec: 4576
+ hash: "d74f8e44d47710714d4197809fffb622"
+ }
+ Key {
+ type: 6
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4592
+ hash: "4fbbb8447d80012bc6b5c24ddbfe498e"
+ }
+ Frame {
+ msec: 4608
+ hash: "4e875ba8703b690a17e445f2b3810435"
+ }
+ Frame {
+ msec: 4624
+ hash: "e4d7a59716cd704fe1cfa8ba91454e93"
+ }
+ Key {
+ type: 7
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4640
+ hash: "a2ea272b45d8de225826d9381015ff2e"
+ }
+ Frame {
+ msec: 4656
+ hash: "5d112a3675ea4c010e7bc60e036d0262"
+ }
+ Frame {
+ msec: 4672
+ hash: "788d8962f311adf57a3acc876b0e8804"
+ }
+ Frame {
+ msec: 4688
+ hash: "827fdd6a3d1006f4a9dd2faf208ea436"
+ }
+ Frame {
+ msec: 4704
+ hash: "48ec87bfc25471f6fa2d43f9db80b693"
+ }
+ Frame {
+ msec: 4720
+ hash: "4a646d76b706698a02cead560b1f8d57"
+ }
+ Frame {
+ msec: 4736
+ hash: "ea2d610e9b41e72b2984a51f0d3f7587"
+ }
+ Frame {
+ msec: 4752
+ hash: "ee661e6cc1f86e755ff399adb6b11fd1"
+ }
+ Frame {
+ msec: 4768
+ hash: "01e937e1fcc0331b2541fa32c3479a24"
+ }
+ Frame {
+ msec: 4784
+ hash: "702864de569e6a5648ee174d5ef891f8"
+ }
+ Frame {
+ msec: 4800
+ image: "cursorDelegate.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "76fb2e1ad33affe33c0887f04caa7396"
+ }
+ Frame {
+ msec: 4832
+ hash: "9dc01a69f2a6892d3c4203674c8bef72"
+ }
+ Frame {
+ msec: 4848
+ hash: "d94054222fd37a350bd8abd592a332e3"
+ }
+ Frame {
+ msec: 4864
+ hash: "46fed264c233490b477e3a7c22183e18"
+ }
+ Frame {
+ msec: 4880
+ hash: "34bc703c915b49b0450ece1d18306df8"
+ }
+ Frame {
+ msec: 4896
+ hash: "e87f18da2fa5c91c9b2b5dea50f9c1e2"
+ }
+ Frame {
+ msec: 4912
+ hash: "4f6dbc7b249c37390518cc263832b587"
+ }
+ Frame {
+ msec: 4928
+ hash: "df09fa2fd138d1b480eec82db3872d6f"
+ }
+ Frame {
+ msec: 4944
+ hash: "b74cb1bfbb979a5e91853d9145d277d8"
+ }
+ Frame {
+ msec: 4960
+ hash: "35425ae3ccf3c8dcc1483479c57a3287"
+ }
+ Frame {
+ msec: 4976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 4992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 5008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 5024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 5040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 5056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 5072
+ hash: "35425ae3ccf3c8dcc1483479c57a3287"
+ }
+ Frame {
+ msec: 5088
+ hash: "b74cb1bfbb979a5e91853d9145d277d8"
+ }
+ Frame {
+ msec: 5104
+ hash: "df09fa2fd138d1b480eec82db3872d6f"
+ }
+ Frame {
+ msec: 5120
+ hash: "4f6dbc7b249c37390518cc263832b587"
+ }
+ Frame {
+ msec: 5136
+ hash: "e87f18da2fa5c91c9b2b5dea50f9c1e2"
+ }
+ Frame {
+ msec: 5152
+ hash: "34bc703c915b49b0450ece1d18306df8"
+ }
+ Frame {
+ msec: 5168
+ hash: "46fed264c233490b477e3a7c22183e18"
+ }
+ Frame {
+ msec: 5184
+ hash: "d94054222fd37a350bd8abd592a332e3"
+ }
+ Frame {
+ msec: 5200
+ hash: "9dc01a69f2a6892d3c4203674c8bef72"
+ }
+ Frame {
+ msec: 5216
+ hash: "76fb2e1ad33affe33c0887f04caa7396"
+ }
+ Frame {
+ msec: 5232
+ hash: "0f500339c81ca3621d13910017b84b7b"
+ }
+ Frame {
+ msec: 5248
+ hash: "702864de569e6a5648ee174d5ef891f8"
+ }
+ Frame {
+ msec: 5264
+ hash: "01e937e1fcc0331b2541fa32c3479a24"
+ }
+ Frame {
+ msec: 5280
+ hash: "ee661e6cc1f86e755ff399adb6b11fd1"
+ }
+ Frame {
+ msec: 5296
+ hash: "ea2d610e9b41e72b2984a51f0d3f7587"
+ }
+ Frame {
+ msec: 5312
+ hash: "4a646d76b706698a02cead560b1f8d57"
+ }
+ Frame {
+ msec: 5328
+ hash: "48ec87bfc25471f6fa2d43f9db80b693"
+ }
+ Frame {
+ msec: 5344
+ hash: "827fdd6a3d1006f4a9dd2faf208ea436"
+ }
+ Frame {
+ msec: 5360
+ hash: "788d8962f311adf57a3acc876b0e8804"
+ }
+ Frame {
+ msec: 5376
+ hash: "5d112a3675ea4c010e7bc60e036d0262"
+ }
+ Frame {
+ msec: 5392
+ hash: "a2ea272b45d8de225826d9381015ff2e"
+ }
+ Frame {
+ msec: 5408
+ hash: "e4d7a59716cd704fe1cfa8ba91454e93"
+ }
+ Frame {
+ msec: 5424
+ hash: "4e875ba8703b690a17e445f2b3810435"
+ }
+ Frame {
+ msec: 5440
+ hash: "4fbbb8447d80012bc6b5c24ddbfe498e"
+ }
+ Frame {
+ msec: 5456
+ hash: "d74f8e44d47710714d4197809fffb622"
+ }
+ Frame {
+ msec: 5472
+ hash: "d23bdd94019477d8378cde580d8765ad"
+ }
+ Frame {
+ msec: 5488
+ hash: "6032aada2c48092000ecb93e52656414"
+ }
+ Frame {
+ msec: 5504
+ hash: "438be260f19d04c9f98ed7dce1c7db40"
+ }
+ Frame {
+ msec: 5520
+ hash: "3af60972e7d5d4320a549e5df52a1228"
+ }
+ Frame {
+ msec: 5536
+ hash: "bf8459b99ca0bf568c58a3bb2a2fcc1f"
+ }
+ Frame {
+ msec: 5552
+ hash: "c0dc1cf5ba7014e069c4d4bd7ac0f89d"
+ }
+ Frame {
+ msec: 5568
+ hash: "f2ddf9d4fd3a2a2d354172714ce94d99"
+ }
+ Frame {
+ msec: 5584
+ hash: "bdfb42dc3879099e402784238c2cdddb"
+ }
+ Frame {
+ msec: 5600
+ hash: "5e483b0fd4808f2fb31aea90ccf86d3e"
+ }
+ Frame {
+ msec: 5616
+ hash: "8159bda651d95a320ac09aa6feb377a1"
+ }
+ Frame {
+ msec: 5632
+ hash: "ceda37af96bd02baae218d3bfaed93f7"
+ }
+ Frame {
+ msec: 5648
+ hash: "4b81757a105aa7c5ac6148455eea66c3"
+ }
+ Frame {
+ msec: 5664
+ hash: "ff7e2cdd006f9b76ab8c0416d81f0cb1"
+ }
+ Frame {
+ msec: 5680
+ hash: "9b174cd9a87ff193ce646408946b310c"
+ }
+ Frame {
+ msec: 5696
+ hash: "89fa590b47ee77021dedf7938439ce69"
+ }
+ Frame {
+ msec: 5712
+ hash: "6e5680803184dfc76cbf1c2de804d6cc"
+ }
+ Frame {
+ msec: 5728
+ hash: "c6de6b9203673c77427ab84ce86daaf5"
+ }
+ Frame {
+ msec: 5744
+ hash: "198f8e912c19debd51f837627d1171e9"
+ }
+ Frame {
+ msec: 5760
+ image: "cursorDelegate.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "254942e12b8a31420d2243b7e2529ae8"
+ }
+ Frame {
+ msec: 5792
+ hash: "ebf121910a5318c284f8e964d63aed40"
+ }
+ Frame {
+ msec: 5808
+ hash: "0fcf416a80d22f077fcf4d23bddeb6c6"
+ }
+ Frame {
+ msec: 5824
+ hash: "4a6596da390380dbafc1cdaceca1101e"
+ }
+ Frame {
+ msec: 5840
+ hash: "367391b2a124e2c818510567d0884d18"
+ }
+ Frame {
+ msec: 5856
+ hash: "c2be53ae5e2d5d3081df9af31426ec84"
+ }
+ Frame {
+ msec: 5872
+ hash: "52350ac5d10f8fe7571d12193b861d3f"
+ }
+ Frame {
+ msec: 5888
+ hash: "f286a35d7f4a022315f69a5db72da388"
+ }
+ Frame {
+ msec: 5904
+ hash: "aa329519eba4dad9589bff095528c535"
+ }
+ Frame {
+ msec: 5920
+ hash: "0beae60853afaaa0e7f7540fb50bcddf"
+ }
+ Frame {
+ msec: 5936
+ hash: "dc098a8b4d2f117a09cf1f2ced201a60"
+ }
+ Frame {
+ msec: 5952
+ hash: "3655b992097b433071ec9dd69e086c70"
+ }
+ Frame {
+ msec: 5968
+ hash: "82cb92d7940d13deee97e4ccda9210fb"
+ }
+ Frame {
+ msec: 5984
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 6000
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 6016
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 6032
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 6048
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 6064
+ hash: "82cb92d7940d13deee97e4ccda9210fb"
+ }
+ Frame {
+ msec: 6080
+ hash: "3655b992097b433071ec9dd69e086c70"
+ }
+ Frame {
+ msec: 6096
+ hash: "dc098a8b4d2f117a09cf1f2ced201a60"
+ }
+ Frame {
+ msec: 6112
+ hash: "0beae60853afaaa0e7f7540fb50bcddf"
+ }
+ Frame {
+ msec: 6128
+ hash: "aa329519eba4dad9589bff095528c535"
+ }
+ Frame {
+ msec: 6144
+ hash: "f286a35d7f4a022315f69a5db72da388"
+ }
+ Frame {
+ msec: 6160
+ hash: "52350ac5d10f8fe7571d12193b861d3f"
+ }
+ Frame {
+ msec: 6176
+ hash: "c2be53ae5e2d5d3081df9af31426ec84"
+ }
+ Frame {
+ msec: 6192
+ hash: "367391b2a124e2c818510567d0884d18"
+ }
+ Frame {
+ msec: 6208
+ hash: "4a6596da390380dbafc1cdaceca1101e"
+ }
+ Frame {
+ msec: 6224
+ hash: "0fcf416a80d22f077fcf4d23bddeb6c6"
+ }
+ Frame {
+ msec: 6240
+ hash: "ebf121910a5318c284f8e964d63aed40"
+ }
+ Frame {
+ msec: 6256
+ hash: "254942e12b8a31420d2243b7e2529ae8"
+ }
+ Frame {
+ msec: 6272
+ hash: "3b380dcb6815698241f3dcccb52785c2"
+ }
+ Frame {
+ msec: 6288
+ hash: "198f8e912c19debd51f837627d1171e9"
+ }
+ Frame {
+ msec: 6304
+ hash: "c6de6b9203673c77427ab84ce86daaf5"
+ }
+ Frame {
+ msec: 6320
+ hash: "6e5680803184dfc76cbf1c2de804d6cc"
+ }
+ Frame {
+ msec: 6336
+ hash: "89fa590b47ee77021dedf7938439ce69"
+ }
+ Frame {
+ msec: 6352
+ hash: "9b174cd9a87ff193ce646408946b310c"
+ }
+ Frame {
+ msec: 6368
+ hash: "ff7e2cdd006f9b76ab8c0416d81f0cb1"
+ }
+ Frame {
+ msec: 6384
+ hash: "4b81757a105aa7c5ac6148455eea66c3"
+ }
+ Frame {
+ msec: 6400
+ hash: "ceda37af96bd02baae218d3bfaed93f7"
+ }
+ Frame {
+ msec: 6416
+ hash: "8159bda651d95a320ac09aa6feb377a1"
+ }
+ Frame {
+ msec: 6432
+ hash: "5e483b0fd4808f2fb31aea90ccf86d3e"
+ }
+ Frame {
+ msec: 6448
+ hash: "bdfb42dc3879099e402784238c2cdddb"
+ }
+ Frame {
+ msec: 6464
+ hash: "f2ddf9d4fd3a2a2d354172714ce94d99"
+ }
+ Frame {
+ msec: 6480
+ hash: "c0dc1cf5ba7014e069c4d4bd7ac0f89d"
+ }
+ Frame {
+ msec: 6496
+ hash: "bf8459b99ca0bf568c58a3bb2a2fcc1f"
+ }
+ Frame {
+ msec: 6512
+ hash: "3af60972e7d5d4320a549e5df52a1228"
+ }
+ Frame {
+ msec: 6528
+ hash: "438be260f19d04c9f98ed7dce1c7db40"
+ }
+ Frame {
+ msec: 6544
+ hash: "6032aada2c48092000ecb93e52656414"
+ }
+ Frame {
+ msec: 6560
+ hash: "d23bdd94019477d8378cde580d8765ad"
+ }
+ Frame {
+ msec: 6576
+ hash: "d74f8e44d47710714d4197809fffb622"
+ }
+ Frame {
+ msec: 6592
+ hash: "4fbbb8447d80012bc6b5c24ddbfe498e"
+ }
+ Frame {
+ msec: 6608
+ hash: "4e875ba8703b690a17e445f2b3810435"
+ }
+ Frame {
+ msec: 6624
+ hash: "e4d7a59716cd704fe1cfa8ba91454e93"
+ }
+ Frame {
+ msec: 6640
+ hash: "a2ea272b45d8de225826d9381015ff2e"
+ }
+ Frame {
+ msec: 6656
+ hash: "5d112a3675ea4c010e7bc60e036d0262"
+ }
+ Frame {
+ msec: 6672
+ hash: "788d8962f311adf57a3acc876b0e8804"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 271; y: 89
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6688
+ hash: "e2eb18af82c85ea78ba438163e922df3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 271; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6704
+ hash: "91b2695e4915238ae8610a64e279b0f4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 271; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 270; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6720
+ image: "cursorDelegate.6.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 269; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6736
+ hash: "ea2d610e9b41e72b2984a51f0d3f7587"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 268; y: 107
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6752
+ hash: "ee661e6cc1f86e755ff399adb6b11fd1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 266; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6768
+ hash: "01e937e1fcc0331b2541fa32c3479a24"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 266; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6784
+ hash: "702864de569e6a5648ee174d5ef891f8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 265; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6800
+ hash: "0f500339c81ca3621d13910017b84b7b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 263; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 261; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6816
+ hash: "76fb2e1ad33affe33c0887f04caa7396"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 259; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6832
+ hash: "9dc01a69f2a6892d3c4203674c8bef72"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 256; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6848
+ hash: "58693aa1a3616310b7ae1e529c4c461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 250; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 243; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6864
+ hash: "96afccd7ec697c9c10840f0effaa448d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 235; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6880
+ hash: "a00d49e2a9069b1be41f95f6ff4c0312"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 227; y: 121
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6896
+ hash: "a0ff4b93291fc12054d3989a20335a87"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 126
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6912
+ hash: "a86e1347bb25489547514955762d92d3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 126
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6928
+ hash: "e5cba3c1e41e38117508c84e894beb11"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 190; y: 127
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6944
+ hash: "2560f53b8ac0a84fef895dbb8f0e393e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 181; y: 127
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 172; y: 127
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6960
+ hash: "c1b8bfc008319b793b6bd9345d34ccf5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 127
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 126
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 146; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 138; y: 121
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 130; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 123; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 118; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 114; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 110; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7072
+ hash: "a9f2804ac7918971f237c4cfa6339c24"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 108; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7088
+ hash: "bc9c96855f048cb6c86d480e501322ab"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 107; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 106; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7104
+ hash: "706730602364bfb4d0193d1728a6d350"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 105; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7120
+ hash: "df80fe3e3ba35ab3fafca929b9101e13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7136
+ hash: "aa8fa1baf61919004a4f14948826882e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 103; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7152
+ hash: "1829dfa3615d6ae430ba81a2df9a9e15"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7168
+ hash: "c4ea5c767192bbd3bfac58d07594016a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7184
+ hash: "319aede65b3473f28a4ca62a524e4a76"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7200
+ hash: "e1de653161e3348e083267c9082bc0f0"
+ }
+ Frame {
+ msec: 7216
+ hash: "de5f2d5147c600d2cb44072801c2338e"
+ }
+ Frame {
+ msec: 7232
+ hash: "6db41d704d2e28f36b206bdb317ee361"
+ }
+ Frame {
+ msec: 7248
+ hash: "a500b87efea241cdf8adf97ae86e10c3"
+ }
+ Frame {
+ msec: 7264
+ hash: "86c4eb0164a5b57eb22de4c9d58345f5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7280
+ hash: "2dbb1e3a1374b7c4aecd5a891be4573d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7296
+ hash: "07bcafdf5ca28a1416a20ed375ec3ea6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7312
+ hash: "e79def41bbf7e544d64cf19d74524d3a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7328
+ hash: "20aff98618d16c00dc9b76035e9523f5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 103; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7344
+ hash: "12b5e016bad990d1f2bf427ee8e3e6d9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 105; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7360
+ hash: "66a2ba3f9e005cd58aa50cfa0000cd15"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 107; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7376
+ hash: "a2e9e42e09dadbd0791f52bb96e0e0dc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 110; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7392
+ hash: "ac68396566ea85a157e944e601dd8d18"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 113; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 117; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7408
+ hash: "b9bfdebec8dd1a93de7ef2768b2542ba"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 124; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7424
+ hash: "2e0a4b960803770acb34ef56ccf2be35"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 131; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7440
+ hash: "df1643f0f8b7aa2dc080958822aeb3d0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 138; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 144; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7456
+ hash: "af8ce877d953727d37fd6f7e4962f45a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 148; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7472
+ hash: "b9de04c0d7532d67404a5a773d9fab99"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 155; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7488
+ hash: "7904312a7efe0b545070c5a5615011df"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7504
+ hash: "0069a8f088c83c6716bac15567a5b38d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 159; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 162; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7520
+ hash: "8c17c78d663097e275ed2f80d6479caf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7536
+ hash: "9e8781569e07fca7def229b76189082d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 165; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7552
+ hash: "8dba2f259740d869bfa20205d2e14433"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 168; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7568
+ hash: "4e7ad066aadbad3f71a08962ba1379c0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 171; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7584
+ hash: "a5d1554a6fb311239acc077f01adc597"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 174; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7600
+ hash: "e91b45c430f7e10c2205af620350ddb6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 177; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 183; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7616
+ hash: "6c731f4dbdec441cd36b1e9727758d73"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 188; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7632
+ hash: "31634e757bdec45feb1f021e35746d65"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7648
+ hash: "846dcb42fa85719223eb19f7af3d0630"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7664
+ hash: "a5826c5d7d1b9161cc7fb76f59021fdd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7680
+ image: "cursorDelegate.7.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7696
+ hash: "bdfb9b949489744bc77905249eb647f9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7712
+ hash: "307d4fb47604c00e213f8d9616e0da13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 213; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7728
+ hash: "74201a80a9032cb18b0c9e26bb67363f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 214; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7744
+ hash: "38ca918199552a525fb7f3a3773761d9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 215; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7760
+ hash: "d64c06c25229b3b64b779ca1bef7d2cb"
+ }
+ Frame {
+ msec: 7776
+ hash: "4ba0117db1ff431de20c06c79866d509"
+ }
+ Frame {
+ msec: 7792
+ hash: "ca56899ded0e5ea361aac24493793f58"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 215; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 215; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7808
+ hash: "ebce1d3b4d088278b6f36dac444c7ca6"
+ }
+ Frame {
+ msec: 7824
+ hash: "16c52065169bffc4648eda0226dba13a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7840
+ hash: "7a5a6a02f57545d9f2336ff18dd118d6"
+ }
+ Frame {
+ msec: 7856
+ hash: "328c8133c68fc2e86dc2193d1bee3259"
+ }
+ Frame {
+ msec: 7872
+ hash: "fcad1d2819e3cede6081b4dfbb5a4a65"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7888
+ hash: "85ff2968ba06443f300c9c0ef36c7054"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7904
+ hash: "871025c33fa769a790fc460a95b183ec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7920
+ hash: "5b96f2673e0ccd2b198b9f99c65b4b12"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7936
+ hash: "5fc6f30a2dd019c4f2af056b51cfaa27"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7952
+ hash: "fc6bf3bcde1f89f0bff40e3e019aed33"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 219; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7968
+ hash: "703beec7b035080146131936da8c0fb3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7984
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 221; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8000
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8016
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8032
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8048
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8064
+ hash: "703beec7b035080146131936da8c0fb3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8080
+ hash: "fc6bf3bcde1f89f0bff40e3e019aed33"
+ }
+ Frame {
+ msec: 8096
+ hash: "5fc6f30a2dd019c4f2af056b51cfaa27"
+ }
+ Frame {
+ msec: 8112
+ hash: "5b96f2673e0ccd2b198b9f99c65b4b12"
+ }
+ Frame {
+ msec: 8128
+ hash: "871025c33fa769a790fc460a95b183ec"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 222; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8144
+ hash: "85ff2968ba06443f300c9c0ef36c7054"
+ }
+ Frame {
+ msec: 8160
+ hash: "fcad1d2819e3cede6081b4dfbb5a4a65"
+ }
+ Frame {
+ msec: 8176
+ hash: "328c8133c68fc2e86dc2193d1bee3259"
+ }
+ Frame {
+ msec: 8192
+ hash: "7a5a6a02f57545d9f2336ff18dd118d6"
+ }
+ Frame {
+ msec: 8208
+ hash: "16c52065169bffc4648eda0226dba13a"
+ }
+ Frame {
+ msec: 8224
+ hash: "ebce1d3b4d088278b6f36dac444c7ca6"
+ }
+ Frame {
+ msec: 8240
+ hash: "ca56899ded0e5ea361aac24493793f58"
+ }
+ Frame {
+ msec: 8256
+ hash: "4ba0117db1ff431de20c06c79866d509"
+ }
+ Frame {
+ msec: 8272
+ hash: "d64c06c25229b3b64b779ca1bef7d2cb"
+ }
+ Frame {
+ msec: 8288
+ hash: "38ca918199552a525fb7f3a3773761d9"
+ }
+ Frame {
+ msec: 8304
+ hash: "74201a80a9032cb18b0c9e26bb67363f"
+ }
+ Frame {
+ msec: 8320
+ hash: "307d4fb47604c00e213f8d9616e0da13"
+ }
+ Frame {
+ msec: 8336
+ hash: "9ad660f83ed62b964b676106f8aa7114"
+ }
+ Frame {
+ msec: 8352
+ hash: "457fc0df515f9813e98a6a86f4ab5231"
+ }
+ Frame {
+ msec: 8368
+ hash: "372cbc6ad4edc85319743627ced05671"
+ }
+ Frame {
+ msec: 8384
+ hash: "4e08beac6ee40acaa4de6963522d63d0"
+ }
+ Frame {
+ msec: 8400
+ hash: "5e790c2199a5e95fc17f8c0b49809cc9"
+ }
+ Frame {
+ msec: 8416
+ hash: "e36310e1866d4a95bac60084fa4aa2c1"
+ }
+ Frame {
+ msec: 8432
+ hash: "b7182b171316cc2db4de2b23de93dc41"
+ }
+ Frame {
+ msec: 8448
+ hash: "6aaf7f8e6e238973dfd4030eb146198b"
+ }
+ Frame {
+ msec: 8464
+ hash: "901ead3167e602dfe043c56c6c805d54"
+ }
+ Frame {
+ msec: 8480
+ hash: "5a97542680475b1382ad5b7c3f6fa96a"
+ }
+ Frame {
+ msec: 8496
+ hash: "fb34d93127f3c3ad0c7bacce0200753b"
+ }
+ Frame {
+ msec: 8512
+ hash: "993c97dc85e83e241538356e317b7767"
+ }
+ Frame {
+ msec: 8528
+ hash: "fb11a9edb3a613be5cb6949c76c5c715"
+ }
+ Frame {
+ msec: 8544
+ hash: "e68b7461f94adeaf330f67d36d0d3b3e"
+ }
+ Frame {
+ msec: 8560
+ hash: "7ed043cc027fdb467bd16847187cd48d"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 277; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8576
+ hash: "fefbb2f4671f8a36f9d2207ced8c0bfb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 277; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8592
+ hash: "1ab596339afc1f96136ee69c4b7688e1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 276; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8608
+ hash: "e07f59d729cb2790296e8c7cd3d0d3c9"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 276; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8624
+ hash: "a7dccada1080487cab2d0a916676c5cb"
+ }
+ Frame {
+ msec: 8640
+ image: "cursorDelegate.8.png"
+ }
+ Frame {
+ msec: 8656
+ hash: "9329d353c678d2bc61d08f63029d1b9b"
+ }
+ Frame {
+ msec: 8672
+ hash: "41263f56af7875028bb0c1e7eccf6f5d"
+ }
+ Frame {
+ msec: 8688
+ hash: "e2eb18af82c85ea78ba438163e922df3"
+ }
+ Frame {
+ msec: 8704
+ hash: "91b2695e4915238ae8610a64e279b0f4"
+ }
+ Frame {
+ msec: 8720
+ hash: "a97d90765f87b998eae6e9f603c61bff"
+ }
+ Frame {
+ msec: 8736
+ hash: "48969edab07b942480d93ac2d383ca24"
+ }
+ Frame {
+ msec: 8752
+ hash: "ecfd9d6d5873001f0c67806544a14983"
+ }
+ Frame {
+ msec: 8768
+ hash: "a3a3bc1e2523d3e7f961893bcd1dd3a8"
+ }
+ Frame {
+ msec: 8784
+ hash: "e337735ad0b42e60c54f16f3da7af3cf"
+ }
+ Frame {
+ msec: 8800
+ hash: "c39db081130d269f25dbcb1a19afb8d0"
+ }
+ Frame {
+ msec: 8816
+ hash: "c464d501e3935ec0f53eb780bd1a8289"
+ }
+ Frame {
+ msec: 8832
+ hash: "2be4fd986de19f6f76dfddec75b26804"
+ }
+ Frame {
+ msec: 8848
+ hash: "a1280e9fb86ca96b2340bb70aa774806"
+ }
+ Frame {
+ msec: 8864
+ hash: "cce4c17a387893478bcfa547f7561aba"
+ }
+ Frame {
+ msec: 8880
+ hash: "7094db3e04895d8d7f5f58caf0658592"
+ }
+ Frame {
+ msec: 8896
+ hash: "edb1f644757f9ba0a39549d77141c280"
+ }
+ Frame {
+ msec: 8912
+ hash: "cd381e847ecfce2db111bdf94a437cbc"
+ }
+ Frame {
+ msec: 8928
+ hash: "6a089603b641b683a744b88f2ebe82d1"
+ }
+ Frame {
+ msec: 8944
+ hash: "8c0e47f7c87a1a11cd733a453b31c780"
+ }
+ Frame {
+ msec: 8960
+ hash: "b53c892d62e787eb2565820d79739de6"
+ }
+ Frame {
+ msec: 8976
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 8992
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9008
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9024
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9040
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9056
+ hash: "e165a0b90fdc1eef2c8244ad8545bd6f"
+ }
+ Frame {
+ msec: 9072
+ hash: "b53c892d62e787eb2565820d79739de6"
+ }
+ Frame {
+ msec: 9088
+ hash: "8c0e47f7c87a1a11cd733a453b31c780"
+ }
+ Frame {
+ msec: 9104
+ hash: "6a089603b641b683a744b88f2ebe82d1"
+ }
+ Frame {
+ msec: 9120
+ hash: "cd381e847ecfce2db111bdf94a437cbc"
+ }
+ Frame {
+ msec: 9136
+ hash: "edb1f644757f9ba0a39549d77141c280"
+ }
+ Frame {
+ msec: 9152
+ hash: "7094db3e04895d8d7f5f58caf0658592"
+ }
+ Frame {
+ msec: 9168
+ hash: "cce4c17a387893478bcfa547f7561aba"
+ }
+ Frame {
+ msec: 9184
+ hash: "a1280e9fb86ca96b2340bb70aa774806"
+ }
+ Frame {
+ msec: 9200
+ hash: "2be4fd986de19f6f76dfddec75b26804"
+ }
+ Frame {
+ msec: 9216
+ hash: "c464d501e3935ec0f53eb780bd1a8289"
+ }
+ Frame {
+ msec: 9232
+ hash: "c39db081130d269f25dbcb1a19afb8d0"
+ }
+ Frame {
+ msec: 9248
+ hash: "e337735ad0b42e60c54f16f3da7af3cf"
+ }
+ Frame {
+ msec: 9264
+ hash: "a3a3bc1e2523d3e7f961893bcd1dd3a8"
+ }
+ Frame {
+ msec: 9280
+ hash: "ecfd9d6d5873001f0c67806544a14983"
+ }
+ Frame {
+ msec: 9296
+ hash: "48969edab07b942480d93ac2d383ca24"
+ }
+ Frame {
+ msec: 9312
+ hash: "a97d90765f87b998eae6e9f603c61bff"
+ }
+ Frame {
+ msec: 9328
+ hash: "91b2695e4915238ae8610a64e279b0f4"
+ }
+ Frame {
+ msec: 9344
+ hash: "e2eb18af82c85ea78ba438163e922df3"
+ }
+ Frame {
+ msec: 9360
+ hash: "41263f56af7875028bb0c1e7eccf6f5d"
+ }
+ Frame {
+ msec: 9376
+ hash: "9329d353c678d2bc61d08f63029d1b9b"
+ }
+ Frame {
+ msec: 9392
+ hash: "ac5939eb4379394fab829b307cbfe7ec"
+ }
+ Frame {
+ msec: 9408
+ hash: "a7dccada1080487cab2d0a916676c5cb"
+ }
+ Frame {
+ msec: 9424
+ hash: "e07f59d729cb2790296e8c7cd3d0d3c9"
+ }
+}
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic1.0.png b/tests/auto/declarative/visual/repeater/data-MAC/basic1.0.png
new file mode 100644
index 0000000..2658b6b
--- /dev/null
+++ b/tests/auto/declarative/visual/repeater/data-MAC/basic1.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic1.qml b/tests/auto/declarative/visual/repeater/data-MAC/basic1.qml
new file mode 100644
index 0000000..5bc0d6b
--- /dev/null
+++ b/tests/auto/declarative/visual/repeater/data-MAC/basic1.qml
@@ -0,0 +1,323 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 32
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 48
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 64
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 80
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 96
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 112
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 128
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 144
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 160
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 176
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 192
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 208
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 224
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 240
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 256
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 272
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 288
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 304
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 320
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 336
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 352
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 368
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 384
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 400
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 416
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 432
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 448
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 464
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 480
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 496
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 512
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 528
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 544
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 560
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 576
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 592
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 608
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 624
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 640
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 656
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 672
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 688
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 704
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 720
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 736
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 752
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 768
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 784
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 800
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 816
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 832
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 848
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 864
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 880
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 896
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 912
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 928
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 944
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 960
+ image: "basic1.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 992
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1008
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1024
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1040
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1056
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1072
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1088
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1104
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1120
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1136
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1152
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1168
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1184
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1200
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1216
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1232
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+}
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic2.0.png b/tests/auto/declarative/visual/repeater/data-MAC/basic2.0.png
new file mode 100644
index 0000000..2658b6b
--- /dev/null
+++ b/tests/auto/declarative/visual/repeater/data-MAC/basic2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic2.qml b/tests/auto/declarative/visual/repeater/data-MAC/basic2.qml
new file mode 100644
index 0000000..64cf2ea
--- /dev/null
+++ b/tests/auto/declarative/visual/repeater/data-MAC/basic2.qml
@@ -0,0 +1,331 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 32
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 48
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 64
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 80
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 96
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 112
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 128
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 144
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 160
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 176
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 192
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 208
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 224
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 240
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 256
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 272
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 288
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 304
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 320
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 336
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 352
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 368
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 384
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 400
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 416
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 432
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 448
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 464
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 480
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 496
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 512
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 528
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 544
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 560
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 576
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 592
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 608
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 624
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 640
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 656
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 672
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 688
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 704
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 720
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 736
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 752
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 768
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 784
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 800
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 816
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 832
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 848
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 864
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 880
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 896
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 912
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 928
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 944
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 960
+ image: "basic2.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 992
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1008
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1024
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1040
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1056
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1072
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1088
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1104
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1120
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1136
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1152
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1168
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1184
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1200
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1216
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1232
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1248
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1264
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+}
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic3.0.png b/tests/auto/declarative/visual/repeater/data-MAC/basic3.0.png
new file mode 100644
index 0000000..2658b6b
--- /dev/null
+++ b/tests/auto/declarative/visual/repeater/data-MAC/basic3.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic3.qml b/tests/auto/declarative/visual/repeater/data-MAC/basic3.qml
new file mode 100644
index 0000000..41e174a
--- /dev/null
+++ b/tests/auto/declarative/visual/repeater/data-MAC/basic3.qml
@@ -0,0 +1,347 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 32
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 48
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 64
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 80
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 96
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 112
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 128
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 144
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 160
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 176
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 192
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 208
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 224
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 240
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 256
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 272
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 288
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 304
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 320
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 336
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 352
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 368
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 384
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 400
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 416
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 432
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 448
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 464
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 480
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 496
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 512
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 528
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 544
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 560
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 576
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 592
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 608
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 624
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 640
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 656
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 672
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 688
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 704
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 720
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 736
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 752
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 768
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 784
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 800
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 816
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 832
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 848
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 864
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 880
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 896
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 912
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 928
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 944
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 960
+ image: "basic3.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 992
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1008
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1024
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1040
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1056
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1072
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1088
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1104
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1120
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1136
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1152
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1168
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1184
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1200
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1216
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1232
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1248
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1264
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1280
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1296
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1312
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1328
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+}
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic4.0.png b/tests/auto/declarative/visual/repeater/data-MAC/basic4.0.png
new file mode 100644
index 0000000..2658b6b
--- /dev/null
+++ b/tests/auto/declarative/visual/repeater/data-MAC/basic4.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic4.qml b/tests/auto/declarative/visual/repeater/data-MAC/basic4.qml
new file mode 100644
index 0000000..fcf2504
--- /dev/null
+++ b/tests/auto/declarative/visual/repeater/data-MAC/basic4.qml
@@ -0,0 +1,419 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 32
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 48
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 64
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 80
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 96
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 112
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 128
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 144
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 160
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 176
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 192
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 208
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 224
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 240
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 256
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 272
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 288
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 304
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 320
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 336
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 352
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 368
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 384
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 400
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 416
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 432
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 448
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 464
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 480
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 496
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 512
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 528
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 544
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 560
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 576
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 592
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 608
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 624
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 640
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 656
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 672
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 688
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 704
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 720
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 736
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 752
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 768
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 784
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 800
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 816
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 832
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 848
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 864
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 880
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 896
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 912
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 928
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 944
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 960
+ image: "basic4.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 992
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1008
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1024
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1040
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1056
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1072
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1088
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1104
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1120
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1136
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1152
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1168
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1184
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1200
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1216
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1232
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1248
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1264
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1280
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1296
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1312
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1328
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1344
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1360
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1376
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1392
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1408
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1424
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1440
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1456
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1472
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1488
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1504
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1520
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1536
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1552
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1568
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1584
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1600
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+ Frame {
+ msec: 1616
+ hash: "2ab8ff9a9fb09111ac07d3966aac9d94"
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.0.png b/tests/auto/declarative/visual/webview/zooming/data/zooming.0.png
new file mode 100644
index 0000000..aaab35d
--- /dev/null
+++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.1.png b/tests/auto/declarative/visual/webview/zooming/data/zooming.1.png
new file mode 100644
index 0000000..aaab35d
--- /dev/null
+++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.2.png b/tests/auto/declarative/visual/webview/zooming/data/zooming.2.png
new file mode 100644
index 0000000..aaab35d
--- /dev/null
+++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.3.png b/tests/auto/declarative/visual/webview/zooming/data/zooming.3.png
new file mode 100644
index 0000000..aaab35d
--- /dev/null
+++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.qml b/tests/auto/declarative/visual/webview/zooming/data/zooming.qml
new file mode 100644
index 0000000..ad83800
--- /dev/null
+++ b/tests/auto/declarative/visual/webview/zooming/data/zooming.qml
@@ -0,0 +1,2115 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 32
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 48
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 64
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 80
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 96
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 112
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 128
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 144
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 160
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 176
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 192
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 208
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 224
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 240
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 256
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 272
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 288
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 304
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 320
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 336
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 352
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 197; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 185; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 368
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 169; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 384
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 161; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 400
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 155; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 147; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 416
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 141; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 138; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 432
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 130; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 127; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 448
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 125; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 123; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 464
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 480
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 121; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 496
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 512
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 117; y: 53
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 116; y: 53
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 528
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 115; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 544
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 113; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 560
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 111; y: 53
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 111; y: 52
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 576
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 110; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 592
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 109; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 608
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 108; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 624
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 108; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 107; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 640
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 106; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 656
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 42
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 672
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 41
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 688
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 704
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 720
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 736
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 752
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 768
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 784
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 800
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 816
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 106; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 832
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 848
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 864
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 880
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 896
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 106; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 912
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 928
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 944
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 960
+ image: "zooming.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 106; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 992
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1008
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1024
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1040
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1056
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 106; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1072
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1088
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1104
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1120
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 106; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1136
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1152
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1168
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1184
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 106; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 106; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1200
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1216
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 103; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1232
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 102; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1248
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 94; y: 56
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 90; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1264
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 88; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1280
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1296
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 86; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1312
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 88; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1328
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 94; y: 146
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 96; y: 156
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1344
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 96; y: 164
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 96; y: 172
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1360
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 96; y: 180
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 96; y: 188
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1376
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 96; y: 190
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 96; y: 193
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1392
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 95; y: 195
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 95; y: 197
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1408
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 95; y: 198
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 95; y: 200
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1424
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 94; y: 201
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 94; y: 202
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1440
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 94; y: 204
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1456
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 93; y: 205
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1472
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 206
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1488
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 208
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1504
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 210
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1520
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 91; y: 212
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1536
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1552
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1568
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1584
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1600
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1616
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1632
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 91; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1648
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1664
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1680
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1696
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1712
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 91; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 91; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1728
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1744
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1760
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1776
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 91; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1792
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1808
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1824
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1840
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 91; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1856
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1872
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1888
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1904
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1920
+ image: "zooming.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 91; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1952
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1968
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 1984
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2000
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2016
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2032
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2048
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2064
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2080
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2096
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2112
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2128
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 91; y: 212
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2144
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2160
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2176
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2192
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 89; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2208
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 88; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2224
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2240
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 86; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2256
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2272
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 80; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2288
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 77; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 75; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2304
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 69; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 66; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2320
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 64; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 62; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2336
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 60; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 58; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2352
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 56; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 55; y: 212
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2368
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2384
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2400
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2416
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2432
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2448
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2464
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2480
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 56; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2496
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 58; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 59; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2512
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 61; y: 215
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 62; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2528
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2544
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2560
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2576
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2592
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 64; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 64; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2608
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2624
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2640
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2656
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2672
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 63; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 63; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2688
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 62; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2704
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2720
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2736
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2752
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 62; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2768
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2784
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2800
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2816
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 62; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2832
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2848
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 2864
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 62; y: 215
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2880
+ image: "zooming.2.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 62; y: 214
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2896
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 62; y: 213
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2912
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 62; y: 212
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 211
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2928
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 209
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 64; y: 208
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2944
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 66; y: 202
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 70; y: 198
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2960
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 72; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 186
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2976
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 76; y: 180
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 80; y: 170
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2992
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 162
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 88; y: 152
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3008
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 94; y: 142
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 130
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3024
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 102; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 108; y: 108
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3040
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 112; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 114; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3056
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 120; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 122; y: 72
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3072
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 126; y: 66
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 128; y: 58
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3088
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 132; y: 52
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 134; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3104
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 136; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 140; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3120
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 144; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 150; y: 18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3136
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 154; y: 10
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 160; y: 4
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3152
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3168
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3184
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3200
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3216
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3232
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3248
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3264
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3280
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3296
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3312
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3328
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3344
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3360
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3376
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3392
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3408
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3424
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3440
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3456
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3472
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3488
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3504
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3520
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3536
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3552
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3568
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3584
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3600
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3616
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3632
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3648
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3664
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3680
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3696
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3712
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3728
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3744
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3760
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3776
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+ Frame {
+ msec: 3792
+ hash: "c98df558c41f1837398eead42392b780"
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/zooming/zooming.html b/tests/auto/declarative/visual/webview/zooming/zooming.html
new file mode 100644
index 0000000..4e91035
--- /dev/null
+++ b/tests/auto/declarative/visual/webview/zooming/zooming.html
@@ -0,0 +1,6 @@
+<html>
+<body>
+<h1>Zooming</h1>
+<p>
+This test shows how zooming can be to HTML elements.</p>
+<img src="qtlogo.png">
diff --git a/tests/auto/declarative/visual/webview/zooming/zooming.qml b/tests/auto/declarative/visual/webview/zooming/zooming.qml
new file mode 100644
index 0000000..3ac57f6
--- /dev/null
+++ b/tests/auto/declarative/visual/webview/zooming/zooming.qml
@@ -0,0 +1,17 @@
+import Qt 4.6
+
+// Note that zooming is better done using zoomFactor and careful
+// control of rendering to avoid excessive re-rendering during
+// zoom animations. This test is written for simplicity.
+WebView {
+ width: 200
+ height: 250
+ x: Behavior { NumberAnimation { } }
+ y: Behavior { NumberAnimation { } }
+ scale: Behavior { NumberAnimation { } }
+ url: "zooming.html"
+ preferredWidth: width
+ preferredHeight: height
+ onDoubleClick: {print(clickX,clickY);heuristicZoom(clickX,clickY,2)}
+ onZoomTo: {print(zoom);scale=zoom;x=width/2-centerX;y=height/2-centerY}
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/cdata.qml b/tests/auto/declarative/xmlhttprequest/data/cdata.qml
new file mode 100644
index 0000000..5faa359
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/cdata.qml
@@ -0,0 +1,135 @@
+import Qt 4.6
+
+Object {
+ property bool xmlTest: false
+ property bool dataOK: false
+
+ Script {
+ function checkCData(text, whitespacetext)
+ {
+ // This is essentially a copy of text.qml/checkText()
+
+ if (text == null)
+ return;
+
+ if (text.nodeName != "#cdata-section")
+ return;
+
+ if (text.nodeValue != "Hello world!")
+ return;
+
+ if (text.nodeType != 4)
+ return;
+
+ if (text.parentNode.nodeName != "item")
+ return;
+
+ if (text.childNodes.length != 0)
+ return;
+
+ if (text.firstChild != null)
+ return;
+
+ if (text.lastChild != null)
+ return;
+
+ if (text.previousSibling != null)
+ return;
+
+ if (text.nextSibling != null)
+ return;
+
+ if (text.attributes != null)
+ return;
+
+ if (text.wholeText != "Hello world!")
+ return;
+
+ if (text.data != "Hello world!")
+ return;
+
+ if (text.length != 12)
+ return;
+
+ if (text.isElementContentWhitespace != false)
+ return;
+
+ if (whitespacetext.nodeName != "#cdata-section")
+ return;
+
+ if (whitespacetext.nodeValue != " ")
+ return;
+
+ if (whitespacetext.nodeType != 4)
+ return;
+
+ if (whitespacetext.parentNode.nodeName != "item")
+ return;
+
+ if (whitespacetext.childNodes.length != 0)
+ return;
+
+ if (whitespacetext.firstChild != null)
+ return;
+
+ if (whitespacetext.lastChild != null)
+ return;
+
+ if (whitespacetext.previousSibling != null)
+ return;
+
+ if (whitespacetext.nextSibling != null)
+ return;
+
+ if (whitespacetext.attributes != null)
+ return;
+
+ if (whitespacetext.wholeText != " ")
+ return;
+
+ if (whitespacetext.data != " ")
+ return;
+
+ if (whitespacetext.length != 3)
+ return;
+
+ if (whitespacetext.isElementContentWhitespace != true)
+ return;
+
+
+ xmlTest = true;
+ }
+
+ function checkXML(document)
+ {
+ checkCData(document.documentElement.childNodes[0].childNodes[0],
+ document.documentElement.childNodes[1].childNodes[0]);
+
+ }
+ }
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ x.open("GET", "cdata.xml");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+
+ dataOK = true;
+
+ if (x.responseXML != null)
+ checkXML(x.responseXML);
+
+ }
+ }
+
+ x.send()
+ }
+}
+
+
+
+
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/cdata.xml b/tests/auto/declarative/xmlhttprequest/data/cdata.xml
new file mode 100644
index 0000000..061d37c
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/cdata.xml
@@ -0,0 +1,2 @@
+<root><item><![CDATA[Hello world!]]></item><item><![CDATA[ ]]></item></root>
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/document.qml b/tests/auto/declarative/xmlhttprequest/data/document.qml
index fe78e31..7601a10 100644
--- a/tests/auto/declarative/xmlhttprequest/data/document.qml
+++ b/tests/auto/declarative/xmlhttprequest/data/document.qml
@@ -10,12 +10,18 @@ Object {
if (document.xmlVersion != "1.0")
return;
+ if (document.xmlEncoding != "UTF-8")
+ return;
+
if (document.xmlStandalone != true)
return;
if (document.documentElement == null)
return;
+ if (document.nodeName != "#document")
+ return;
+
if (document.nodeValue != null)
return;
diff --git a/tests/auto/declarative/xmlhttprequest/data/document.xml b/tests/auto/declarative/xmlhttprequest/data/document.xml
index b5fbe31..fb693ea 100644
--- a/tests/auto/declarative/xmlhttprequest/data/document.xml
+++ b/tests/auto/declarative/xmlhttprequest/data/document.xml
@@ -1,3 +1,3 @@
-<?xml version="1.0" standalone='yes' ?>
+<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<root>
</root>
diff --git a/tests/auto/declarative/xmlhttprequest/data/element.qml b/tests/auto/declarative/xmlhttprequest/data/element.qml
index a1ae2ab..79620bf 100644
--- a/tests/auto/declarative/xmlhttprequest/data/element.qml
+++ b/tests/auto/declarative/xmlhttprequest/data/element.qml
@@ -5,7 +5,7 @@ Object {
property bool dataOK: false
Script {
- function checkElement(e)
+ function checkElement(e, person, fruit)
{
if (e.tagName != "root")
return;
@@ -47,6 +47,9 @@ Object {
if (e.attributes == null)
return;
+ if (e.attributes.length != 2)
+ return;
+
var attr1 = e.attributes["attr"];
if (attr1.nodeValue != "value")
return;
@@ -67,12 +70,33 @@ Object {
if (attrIdx2 != null)
return;
+ // Check person and fruit sub elements
+ if (person.parentNode.nodeName != "root")
+ return;
+
+ if (person.previousSibling != null)
+ return;
+
+ if (person.nextSibling.nodeName != "fruit")
+ return;
+
+ if (fruit.parentNode.nodeName != "root")
+ return;
+
+ if (fruit.previousSibling.nodeName != "person")
+ return;
+
+ if (fruit.nextSibling != null)
+ return;
+
xmlTest = true;
}
function checkXML(document)
{
- checkElement(document.documentElement);
+ checkElement(document.documentElement,
+ document.documentElement.childNodes[0],
+ document.documentElement.childNodes[1]);
}
}
diff --git a/tests/auto/declarative/xmlhttprequest/data/text.qml b/tests/auto/declarative/xmlhttprequest/data/text.qml
new file mode 100644
index 0000000..8c97504
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/text.qml
@@ -0,0 +1,131 @@
+import Qt 4.6
+
+Object {
+ property bool xmlTest: false
+ property bool dataOK: false
+
+ Script {
+ function checkText(text, whitespacetext)
+ {
+ if (text == null)
+ return;
+
+ if (text.nodeName != "#text")
+ return;
+
+ if (text.nodeValue != "Hello world!")
+ return;
+
+ if (text.nodeType != 3)
+ return;
+
+ if (text.parentNode.nodeName != "item")
+ return;
+
+ if (text.childNodes.length != 0)
+ return;
+
+ if (text.firstChild != null)
+ return;
+
+ if (text.lastChild != null)
+ return;
+
+ if (text.previousSibling != null)
+ return;
+
+ if (text.nextSibling != null)
+ return;
+
+ if (text.attributes != null)
+ return;
+
+ if (text.wholeText != "Hello world!")
+ return;
+
+ if (text.data != "Hello world!")
+ return;
+
+ if (text.length != 12)
+ return;
+
+ if (text.isElementContentWhitespace != false)
+ return;
+
+ if (whitespacetext.nodeName != "#text")
+ return;
+
+ if (whitespacetext.nodeValue != " ")
+ return;
+
+ if (whitespacetext.nodeType != 3)
+ return;
+
+ if (whitespacetext.parentNode.nodeName != "item")
+ return;
+
+ if (whitespacetext.childNodes.length != 0)
+ return;
+
+ if (whitespacetext.firstChild != null)
+ return;
+
+ if (whitespacetext.lastChild != null)
+ return;
+
+ if (whitespacetext.previousSibling != null)
+ return;
+
+ if (whitespacetext.nextSibling != null)
+ return;
+
+ if (whitespacetext.attributes != null)
+ return;
+
+ if (whitespacetext.wholeText != " ")
+ return;
+
+ if (whitespacetext.data != " ")
+ return;
+
+ if (whitespacetext.length != 3)
+ return;
+
+ if (whitespacetext.isElementContentWhitespace != true)
+ return;
+
+ xmlTest = true;
+ }
+
+ function checkXML(document)
+ {
+ checkText(document.documentElement.childNodes[0].childNodes[0],
+ document.documentElement.childNodes[1].childNodes[0]);
+
+ }
+ }
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ x.open("GET", "text.xml");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+
+ dataOK = true;
+
+ if (x.responseXML != null)
+ checkXML(x.responseXML);
+
+ }
+ }
+
+ x.send()
+ }
+}
+
+
+
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/text.xml b/tests/auto/declarative/xmlhttprequest/data/text.xml
new file mode 100644
index 0000000..e741688
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/text.xml
@@ -0,0 +1 @@
+<root><item>Hello world!</item><item> </item></root>
diff --git a/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp b/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp
index 0af7b18..100a11b 100644
--- a/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp
+++ b/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp
@@ -84,10 +84,14 @@ private slots:
void statusText();
void responseText();
void responseXML_invalid();
+ void invalidMethodUsage();
+ // Attributes
void document();
void element();
void attr();
+ void text();
+ void cdata();
// Crashes
// void outstanding_request_at_shutdown();
@@ -962,6 +966,10 @@ void tst_xmlhttprequest::responseText()
}
}
+void tst_xmlhttprequest::invalidMethodUsage()
+{
+}
+
void tst_xmlhttprequest::responseXML_invalid()
{
QmlComponent component(&engine, TEST_FILE("responseXML_invalid.qml"));
@@ -1017,6 +1025,34 @@ void tst_xmlhttprequest::attr()
delete object;
}
+// Test the Text DOM element
+void tst_xmlhttprequest::text()
+{
+ QmlComponent component(&engine, TEST_FILE("text.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ QCOMPARE(object->property("xmlTest").toBool(), true);
+
+ delete object;
+}
+
+// Test the CDataSection DOM element
+void tst_xmlhttprequest::cdata()
+{
+ QmlComponent component(&engine, TEST_FILE("cdata.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ QCOMPARE(object->property("xmlTest").toBool(), true);
+
+ delete object;
+}
+
QTEST_MAIN(tst_xmlhttprequest)
#include "tst_xmlhttprequest.moc"
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp
index 53eba32..5bd7a0a 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/finddialog.cpp
@@ -63,5 +63,20 @@ void FindDialog::reset()
{
tr("%n item(s)", "merge from singular to plural form", 4);
tr("%n item(s)", "merge from a finished singular form to an unfinished plural form", 4);
-}
+
+
+ //% "Hello"
+ qtTrId("xx_hello");
+
+ //% "New world"
+ qtTrId("xx_world");
+
+
+ //= new_id
+ tr("this is just some text");
+
+
+ //: A message without source string
+ qtTrId("qtn_virtual");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before
index d06252c..379cce4 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.before
@@ -1,6 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1" language="zh_CN">
<context>
+ <name></name>
+ <message id="xx_hello">
+ <location filename="finddialog.cpp" line="70"/>
+ <source>Hello</source>
+ <translation>Hallo</translation>
+ </message>
+ <message id="xx_world">
+ <location filename="finddialog.cpp" line="73"/>
+ <source>World</source>
+ <translation>Welt</translation>
+ </message>
+ <message id="qtn_virtual">
+ <location filename="finddialog.cpp" line="79"/>
+ <extracomment>A message without source string</extracomment>
+ </message>
+</context>
+<context>
<name>FindDialog</name>
<message>
<source></source>
@@ -44,5 +61,10 @@
<numerusform></numerusform>
</translation>
</message>
+ <message>
+ <location filename="finddialog.cpp" line="59"/>
+ <source>this is just some text</source>
+ <translation type="unfinished">Unfertige Uebersetzung</translation>
+ </message>
</context>
</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result
index be4e02e..de43266 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp/project.ts.result
@@ -2,6 +2,26 @@
<!DOCTYPE TS>
<TS version="2.0" language="zh_CN">
<context>
+ <name></name>
+ <message id="xx_hello">
+ <location filename="finddialog.cpp" line="70"/>
+ <source>Hello</source>
+ <translation>Hallo</translation>
+ </message>
+ <message id="xx_world">
+ <location filename="finddialog.cpp" line="73"/>
+ <source>New world</source>
+ <oldsource>World</oldsource>
+ <translation type="unfinished">Welt</translation>
+ </message>
+ <message id="qtn_virtual">
+ <location filename="finddialog.cpp" line="81"/>
+ <source></source>
+ <extracomment>A message without source string</extracomment>
+ <translation></translation>
+ </message>
+</context>
+<context>
<name>FindDialog</name>
<message>
<source></source>
@@ -45,5 +65,10 @@
<numerusform></numerusform>
</translation>
</message>
+ <message id="new_id">
+ <location filename="finddialog.cpp" line="77"/>
+ <source>this is just some text</source>
+ <translation type="unfinished">Unfertige Uebersetzung</translation>
+ </message>
</context>
</TS>
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp
index e1464a2..9abb367 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/finddialog.cpp
@@ -148,4 +148,7 @@ void FindDialog::doFind(bool forward)
bool FindDialog::hasFindExpression() const
{
// statusMessage(tr( "Should be obsolete" ));
+
+ //% "This is some random text"
+ qtTrId("keep_id")
}
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before
index 834f512..feab169 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.before
@@ -1,6 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS><TS version="1.1">
<context>
+ <name></name>
+ <message id="keep_id">
+ <location filename="finddialog.cpp" line="153"/>
+ <source>This is some random text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="obsolete_id">
+ <location filename="finddialog.cpp" line="155"/>
+ <source>Should be obsolete, too</source>
+ <translation type="unfinished">SHOULD BE OBSOLETE AS WELL</translation>
+ </message>
+</context>
+<context>
<name>FindDialog</name>
<message>
<location filename="finddialog.cpp" line="85"/>
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result
index b328e90..ee3d0f6 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_noobsolete/project.ts.result
@@ -2,6 +2,14 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
+ <name></name>
+ <message id="keep_id">
+ <location filename="finddialog.cpp" line="153"/>
+ <source>This is some random text</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
<name>FindDialog</name>
<message>
<location filename="finddialog.cpp" line="85"/>
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp
index 7b28c75..cc3af48 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/finddialog.cpp
@@ -150,6 +150,9 @@ void FindDialog::doFind(bool forward)
bool FindDialog::hasFindExpression() const
{
+ //% "This is some random text"
+ qtTrId("keep_id")
+
return !findExpr.isEmpty();
}
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before
index 1fa0fd3..2bc6049 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.before
@@ -1,6 +1,19 @@
<?xml version="1.0"?>
<!DOCTYPE TS><TS version="1.1">
<context>
+ <name></name>
+ <message id="keep_id">
+ <location filename="finddialog.cpp" line="154"/>
+ <source>This is some random text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="obsolete_id">
+ <location filename="finddialog.cpp" line="155"/>
+ <source>Should be obsolete, too</source>
+ <translation type="unfinished">SHOULD BE OBSOLETE AS WELL</translation>
+ </message>
+</context>
+<context>
<name>FindDialog</name>
<message>
<location filename="finddialog.cpp" line="85"/>
diff --git a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result
index cfd11b1..f442cbc 100644
--- a/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/mergecpp_obsolete/project.ts.result
@@ -2,6 +2,18 @@
<!DOCTYPE TS>
<TS version="2.0">
<context>
+ <name></name>
+ <message id="keep_id">
+ <location filename="finddialog.cpp" line="154"/>
+ <source>This is some random text</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message id="obsolete_id">
+ <source>Should be obsolete, too</source>
+ <translation type="obsolete">SHOULD BE OBSOLETE AS WELL</translation>
+ </message>
+</context>
+<context>
<name>FindDialog</name>
<message>
<source>Enter the text you are looking for.</source>
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
index e243e66..386d9b7 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/main.cpp
@@ -247,3 +247,8 @@ class YetAnotherTest : QObject {
tr("nothing");
}
};
+
+
+
+//: This is a message without a source string
+QString test = qtTrId("yet_another_id");
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
index 26e5a65..6d50c21 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp/project.ts.result
@@ -18,6 +18,12 @@ backslashed \ stuff.</source>
</translation>
<extra-some>thing</extra-some>
</message>
+ <message id="yet_another_id">
+ <location filename="main.cpp" line="254"/>
+ <source></source>
+ <extracomment>This is a message without a source string</extracomment>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>Dialog2</name>
diff --git a/tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp b/tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp
index 7b9a422..715f219 100644
--- a/tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp
+++ b/tests/auto/qaudiodeviceinfo/tst_qaudiodeviceinfo.cpp
@@ -77,7 +77,7 @@ private:
void tst_QAudioDeviceInfo::initTestCase()
{
// Only perform tests if audio output device exists!
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::deviceList(QAudio::AudioOutput);
+ QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
if(devices.size() > 0)
available = true;
else {
@@ -90,7 +90,7 @@ void tst_QAudioDeviceInfo::checkAvailableDefaultInput()
{
// Only perform tests if audio input device exists!
bool storeAvailable = available;
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::deviceList(QAudio::AudioInput);
+ QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
if(devices.size() > 0)
available = true;
else {
@@ -111,7 +111,7 @@ void tst_QAudioDeviceInfo::checkAvailableDefaultOutput()
void tst_QAudioDeviceInfo::outputList()
{
if(available) {
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::deviceList(QAudio::AudioOutput);
+ QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
QVERIFY(devices.size() > 0);
device = new QAudioDeviceInfo(devices.at(0));
}
diff --git a/tests/auto/qaudioformat/tst_qaudioformat.cpp b/tests/auto/qaudioformat/tst_qaudioformat.cpp
index 286e63f..0778a8e 100644
--- a/tests/auto/qaudioformat/tst_qaudioformat.cpp
+++ b/tests/auto/qaudioformat/tst_qaudioformat.cpp
@@ -69,17 +69,20 @@ private slots:
void tst_QAudioFormat::checkNull()
{
- // Default constructed QAudioFormat is null.
+ // Default constructed QAudioFormat is invalid.
QAudioFormat audioFormat0;
- QVERIFY(audioFormat0.isNull());
+ QVERIFY(!audioFormat0.isValid());
- // Null is transferred
+ // validity is transferred
QAudioFormat audioFormat1(audioFormat0);
- QVERIFY(audioFormat1.isNull());
+ QVERIFY(!audioFormat1.isValid());
- // Null is voided on activity
audioFormat0.setFrequency(44100);
- QVERIFY(!audioFormat0.isNull());
+ audioFormat0.setChannels(2);
+ audioFormat0.setSampleSize(16);
+ audioFormat0.setCodec("audio/pcm");
+ audioFormat0.setSampleType(QAudioFormat::SignedInt);
+ QVERIFY(audioFormat0.isValid());
}
void tst_QAudioFormat::checkFrequency()
diff --git a/tests/auto/qaudioinput/tst_qaudioinput.cpp b/tests/auto/qaudioinput/tst_qaudioinput.cpp
index 3efc346..744ce38 100644
--- a/tests/auto/qaudioinput/tst_qaudioinput.cpp
+++ b/tests/auto/qaudioinput/tst_qaudioinput.cpp
@@ -76,7 +76,7 @@ void tst_QAudioInput::initTestCase()
format.setSampleType(QAudioFormat::UnSignedInt);
// Only perform tests if audio input device exists!
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::deviceList(QAudio::AudioInput);
+ QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioInput);
if(devices.size() > 0)
available = true;
else {
@@ -137,16 +137,16 @@ void tst_QAudioInput::pullFile()
QSignalSpy stateSignal(audio, SIGNAL(stateChanged(QAudio::State)));
// Always have default states, before start
- QVERIFY(audio->state() == QAudio::StopState);
+ QVERIFY(audio->state() == QAudio::StoppedState);
QVERIFY(audio->error() == QAudio::NoError);
- QVERIFY(audio->clock() == 0);
+ QVERIFY(audio->elapsedUSecs() == 0);
audio->start(&filename);
QTest::qWait(20);
// Check state and periodSize() are valid non-zero values.
QVERIFY(audio->state() == QAudio::ActiveState);
QVERIFY(audio->error() == QAudio::NoError);
- QVERIFY(audio->clock() > 10000 && audio->clock() < 800000);
+ QVERIFY(audio->elapsedUSecs() > 10000 && audio->elapsedUSecs() < 800000);
QVERIFY(audio->periodSize() > 0);
QVERIFY(stateSignal.count() == 1); // State changed to QAudio::ActiveState
@@ -154,12 +154,12 @@ void tst_QAudioInput::pullFile()
QTest::qWait(5000);
QVERIFY(readSignal.count() > 0);
- QVERIFY(audio->totalTime() > 0);
+ QVERIFY(audio->processedUSecs() > 0);
audio->stop();
QTest::qWait(20);
- QVERIFY(audio->state() == QAudio::StopState);
- QVERIFY(audio->clock() == 0);
+ QVERIFY(audio->state() == QAudio::StoppedState);
+ QVERIFY(audio->elapsedUSecs() == 0);
// Can only check to make sure we got at least 1 more signal, but can be more.
QVERIFY(stateSignal.count() > 1);
diff --git a/tests/auto/qaudiooutput/tst_qaudiooutput.cpp b/tests/auto/qaudiooutput/tst_qaudiooutput.cpp
index b001af1..26694cc 100644
--- a/tests/auto/qaudiooutput/tst_qaudiooutput.cpp
+++ b/tests/auto/qaudiooutput/tst_qaudiooutput.cpp
@@ -79,7 +79,7 @@ void tst_QAudioOutput::initTestCase()
format.setSampleType(QAudioFormat::UnSignedInt);
// Only perform tests if audio output device exists!
- QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::deviceList(QAudio::AudioOutput);
+ QList<QAudioDeviceInfo> devices = QAudioDeviceInfo::availableDevices(QAudio::AudioOutput);
if(devices.size() > 0)
available = true;
else {
@@ -140,9 +140,9 @@ void tst_QAudioOutput::pullFile()
audio->setNotifyInterval(100);
// Always have default states, before start
- QVERIFY(audio->state() == QAudio::StopState);
+ QVERIFY(audio->state() == QAudio::StoppedState);
QVERIFY(audio->error() == QAudio::NoError);
- QVERIFY(audio->clock() == 0);
+ QVERIFY(audio->elapsedUSecs() == 0);
audio->start(&file);
QTest::qWait(20); // wait 20ms
@@ -150,12 +150,12 @@ void tst_QAudioOutput::pullFile()
QVERIFY(audio->state() == QAudio::ActiveState);
QVERIFY(audio->error() == QAudio::NoError);
QVERIFY(audio->periodSize() > 0);
- QVERIFY(audio->clock() > 10000 && audio->clock() < 800000);
+ QVERIFY(audio->elapsedUSecs() > 10000 && audio->elapsedUSecs() < 800000);
QVERIFY(stateSignal.count() == 1); // State changed to QAudio::ActiveState
// Wait until finished...
QTestEventLoop::instance().enterLoop(1);
- QCOMPARE(audio->totalTime(), qint64(692250));
+ QCOMPARE(audio->processedUSecs(), qint64(692250));
#ifdef Q_OS_WINCE
// 4.wav is a little less than 700ms, so notify should fire 4 times on Wince!
@@ -166,8 +166,8 @@ void tst_QAudioOutput::pullFile()
#endif
audio->stop();
QTest::qWait(20); // wait 20ms
- QVERIFY(audio->state() == QAudio::StopState);
- QVERIFY(audio->clock() == 0);
+ QVERIFY(audio->state() == QAudio::StoppedState);
+ QVERIFY(audio->elapsedUSecs() == 0);
// Can only check to make sure we got at least 1 more signal, but can be more.
QVERIFY(stateSignal.count() > 1);
@@ -184,7 +184,7 @@ void tst_QAudioOutput::pushFile()
const qint64 fileSize = file.size();
- QIODevice* feed = audio->start(0);
+ QIODevice* feed = audio->start();
char* buffer = new char[fileSize];
file.read(buffer, fileSize);
@@ -199,7 +199,7 @@ void tst_QAudioOutput::pushFile()
QTestEventLoop::instance().enterLoop(1);
QVERIFY(written == fileSize);
- QVERIFY(audio->totalTime() == 692250);
+ QVERIFY(audio->processedUSecs() == 692250);
audio->stop();
file.close();
diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp
index 18ebddc..cc59b62 100644
--- a/tests/auto/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/qcombobox/tst_qcombobox.cpp
@@ -2517,8 +2517,8 @@ void tst_QComboBox::task_QTBUG_1071_changingFocusEmitsActivated()
cb.addItem("1");
cb.addItem("2");
QLineEdit edit;
- layout.add(&cb);
- layout.add(&edit);
+ layout.addWidget(&cb);
+ layout.addWidget(&edit);
w.show();
QTest::qWaitForWindowShown(&w);
diff --git a/tests/auto/qdatastream/qdatastream.pro b/tests/auto/qdatastream/qdatastream.pro
index 5b90357..c132073 100644
--- a/tests/auto/qdatastream/qdatastream.pro
+++ b/tests/auto/qdatastream/qdatastream.pro
@@ -12,7 +12,7 @@ QT += svg
wince*: {
- addFiles.sources = datastream.q42 gearflowers.svg
+ addFiles.sources = datastream.q42 tests2.svg
addFiles.path = .
DEPLOYMENT += addFiles
DEFINES += SRCDIR=\\\"\\\"
diff --git a/tests/auto/qdatastream/tst_qdatastream.cpp b/tests/auto/qdatastream/tst_qdatastream.cpp
index 56fc53a..24447ea 100644
--- a/tests/auto/qdatastream/tst_qdatastream.cpp
+++ b/tests/auto/qdatastream/tst_qdatastream.cpp
@@ -320,8 +320,7 @@ void tst_QDataStream::getSetCheck()
tst_QDataStream::tst_QDataStream()
{
- svgFile = QLatin1String(SRCDIR) + QLatin1String("/") +
- QLatin1String(SVGFILE);
+ svgFile = QLatin1String(SRCDIR SVGFILE);
}
tst_QDataStream::~tst_QDataStream()
@@ -1461,7 +1460,7 @@ void tst_QDataStream::readQImage(QDataStream *s)
QVERIFY(d12.width() == ref.width());
QVERIFY(d12.height() == ref.height());
QVERIFY(d12.depth() == ref.depth());
- QVERIFY(d12.numColors() == ref.numColors());
+ QVERIFY(d12.colorCount() == ref.colorCount());
#ifdef QT3_SUPPORT
QVERIFY(d12.hasAlphaBuffer() == ref.hasAlphaBuffer());
#else
diff --git a/tests/auto/qfile/largefile/largefile.pro b/tests/auto/qfile/largefile/largefile.pro
index 0f96865..d67cb46 100644
--- a/tests/auto/qfile/largefile/largefile.pro
+++ b/tests/auto/qfile/largefile/largefile.pro
@@ -2,3 +2,5 @@ load(qttest_p4)
QT = core
SOURCES += tst_largefile.cpp
+
+wince*: SOURCES += $$QT_SOURCE_TREE/src/corelib/kernel/qfunctions_wince.cpp
diff --git a/tests/auto/qfile/largefile/tst_largefile.cpp b/tests/auto/qfile/largefile/tst_largefile.cpp
index 9105063..980f4ba 100644
--- a/tests/auto/qfile/largefile/tst_largefile.cpp
+++ b/tests/auto/qfile/largefile/tst_largefile.cpp
@@ -54,7 +54,10 @@
#ifdef Q_OS_WIN
#include <windows.h>
+
+#ifndef Q_OS_WINCE
#include <io.h>
+#endif
#ifndef FSCTL_SET_SPARSE
// MinGW doesn't define this.
@@ -295,7 +298,7 @@ void tst_LargeFile::sparseFileData()
void tst_LargeFile::createSparseFile()
{
-#if defined(Q_OS_WIN)
+#if defined(Q_OS_WIN32)
// On Windows platforms, we must explicitly set the file to be sparse,
// so disk space is not allocated for the full file when writing to it.
HANDLE handle = ::CreateFileA("qt_largefile.tmp",
@@ -313,7 +316,7 @@ void tst_LargeFile::createSparseFile()
int fd = ::_open_osfhandle((intptr_t)handle, 0);
QVERIFY( -1 != fd );
QVERIFY( largeFile.open(fd, QIODevice::WriteOnly | QIODevice::Unbuffered) );
-#else // !Q_OS_WIN
+#else // !Q_OS_WIN32
largeFile.setFileName("qt_largefile.tmp");
QVERIFY( largeFile.open(QIODevice::WriteOnly | QIODevice::Unbuffered) );
#endif
@@ -321,13 +324,13 @@ void tst_LargeFile::createSparseFile()
void tst_LargeFile::closeSparseFile()
{
-#if defined(Q_OS_WIN)
+#if defined(Q_OS_WIN32)
int fd = largeFile.handle();
#endif
largeFile.close();
-#if defined(Q_OS_WIN)
+#if defined(Q_OS_WIN32)
if (-1 != fd)
::_close(fd);
#endif
diff --git a/tests/auto/qfile/test/test.pro b/tests/auto/qfile/test/test.pro
index 46f63b3..faaa927 100644
--- a/tests/auto/qfile/test/test.pro
+++ b/tests/auto/qfile/test/test.pro
@@ -14,6 +14,7 @@ wince*|symbian {
}
wince* {
+ SOURCES += $$QT_SOURCE_TREE/src/corelib/kernel/qfunctions_wince.cpp # needed for QT_OPEN
DEFINES += SRCDIR=\\\"\\\"
} else:symbian {
# do not define SRCDIR at all
diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp
index 55cc286..b3d6fd9 100644
--- a/tests/auto/qfile/tst_qfile.cpp
+++ b/tests/auto/qfile/tst_qfile.cpp
@@ -91,6 +91,10 @@
#define STDERR_FILENO 2
#endif
+#ifndef QT_OPEN_BINARY
+#define QT_OPEN_BINARY 0
+#endif
+
Q_DECLARE_METATYPE(QFile::FileError)
//TESTED_CLASS=
@@ -211,6 +215,81 @@ public:
// disabled this test for the moment... it hangs
void invalidFile_data();
void invalidFile();
+
+private:
+ enum FileType { OpenQFile, OpenFd, OpenStream };
+
+ bool openFd(QFile &file, QIODevice::OpenMode mode)
+ {
+ int fdMode = QT_OPEN_LARGEFILE | QT_OPEN_BINARY;
+
+ // File will be truncated if in Write mode.
+ if (mode & QIODevice::WriteOnly)
+ fdMode |= QT_OPEN_WRONLY | QT_OPEN_TRUNC;
+ if (mode & QIODevice::ReadOnly)
+ fdMode |= QT_OPEN_RDONLY;
+
+ fd_ = QT_OPEN(qPrintable(file.fileName()), fdMode);
+
+ return (-1 != fd_) && file.open(fd_, mode);
+ }
+
+ bool openStream(QFile &file, QIODevice::OpenMode mode)
+ {
+ char const *streamMode = "";
+
+ // File will be truncated if in Write mode.
+ if (mode & QIODevice::WriteOnly)
+ streamMode = "wb+";
+ else if (mode & QIODevice::ReadOnly)
+ streamMode = "rb";
+
+ stream_ = QT_FOPEN(qPrintable(file.fileName()), streamMode);
+
+ return stream_ && file.open(stream_, mode);
+ }
+
+ bool openFile(QFile &file, QIODevice::OpenMode mode, FileType type = OpenQFile)
+ {
+ if (mode & QIODevice::WriteOnly && !file.exists())
+ {
+ // Make sure the file exists
+ QFile createFile(file.fileName());
+ if (!createFile.open(QIODevice::ReadWrite))
+ return false;
+ }
+
+ // Note: openFd and openStream will truncate the file if write mode.
+ switch (type)
+ {
+ case OpenQFile:
+ return file.open(mode);
+
+ case OpenFd:
+ return openFd(file, mode);
+
+ case OpenStream:
+ return openStream(file, mode);
+ }
+
+ return false;
+ }
+
+ void closeFile(QFile &file)
+ {
+ file.close();
+
+ if (-1 != fd_)
+ QT_CLOSE(fd_);
+ if (stream_)
+ ::fclose(stream_);
+
+ fd_ = -1;
+ stream_ = 0;
+ }
+
+ int fd_;
+ FILE *stream_;
};
tst_QFile::tst_QFile()
@@ -226,6 +305,8 @@ void tst_QFile::init()
{
// TODO: Add initialization code here.
// This will be executed immediately before each test is run.
+ fd_ = -1;
+ stream_ = 0;
}
void tst_QFile::cleanup()
@@ -254,6 +335,11 @@ void tst_QFile::cleanup()
QFile::remove("existing-file.txt");
QFile::remove("file-renamed-once.txt");
QFile::remove("file-renamed-twice.txt");
+
+ if (-1 != fd_)
+ QT_CLOSE(fd_);
+ if (stream_)
+ ::fclose(stream_);
}
void tst_QFile::initTestCase()
@@ -1958,53 +2044,71 @@ void tst_QFile::fullDisk()
void tst_QFile::writeLargeDataBlock_data()
{
QTest::addColumn<QString>("fileName");
+ QTest::addColumn<int>("type");
+
+ QTest::newRow("localfile-QFile") << "./largeblockfile.txt" << (int)OpenQFile;
+ QTest::newRow("localfile-Fd") << "./largeblockfile.txt" << (int)OpenFd;
+ QTest::newRow("localfile-Stream") << "./largeblockfile.txt" << (int)OpenStream;
- QTest::newRow("localfile") << QString("./largeblockfile.txt");
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
// Some semi-randomness to avoid collisions.
QTest::newRow("unc file")
<< QString("//" + QtNetworkSettings::winServerName() + "/TESTSHAREWRITABLE/largefile-%1-%2.txt")
.arg(QHostInfo::localHostName())
- .arg(QTime::currentTime().msec());
+ .arg(QTime::currentTime().msec()) << (int)OpenQFile;
#endif
}
-void tst_QFile::writeLargeDataBlock()
+static QByteArray getLargeDataBlock()
{
- QFETCH(QString, fileName);
+ static QByteArray array;
- // Generate a 64MB array with well defined contents.
- QByteArray array;
+ if (array.isNull())
+ {
#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
- int resizeSize = 1024 * 1024; // WinCE and Symbian do not have much space
+ int resizeSize = 1024 * 1024; // WinCE and Symbian do not have much space
#else
- int resizeSize = 64 * 1024 * 1024;
+ int resizeSize = 64 * 1024 * 1024;
#endif
- array.resize(resizeSize);
- for (int i = 0; i < array.size(); ++i)
- array[i] = uchar(i);
+ array.resize(resizeSize);
+ for (int i = 0; i < array.size(); ++i)
+ array[i] = uchar(i);
+ }
- // Remove and open the target file
- QFile file(fileName);
- file.remove();
- if (file.open(QFile::WriteOnly)) {
- QCOMPARE(file.write(array), qint64(array.size()));
- file.close();
- QVERIFY(file.open(QFile::ReadOnly));
- array.clear();
- array = file.readAll();
- file.remove();
- } else {
- QFAIL(qPrintable(QString("Couldn't open file for writing: [%1]").arg(fileName)));
- }
- // Check that we got the right content
- QCOMPARE(array.size(), resizeSize);
- for (int i = 0; i < array.size(); ++i) {
- if (array[i] != char(i)) {
- QFAIL(qPrintable(QString("Wrong contents! Char at %1 = %2, expected %3")
- .arg(i).arg(int(uchar(array[i]))).arg(int(uchar(i)))));
- }
+ return array;
+}
+
+void tst_QFile::writeLargeDataBlock()
+{
+ QFETCH(QString, fileName);
+ QFETCH( int, type );
+
+ QByteArray const originalData = getLargeDataBlock();
+
+ {
+ QFile file(fileName);
+
+ QVERIFY2( openFile(file, QIODevice::WriteOnly, (FileType)type),
+ qPrintable(QString("Couldn't open file for writing: [%1]").arg(fileName)) );
+ QCOMPARE( file.write(originalData), (qint64)originalData.size() );
+ QVERIFY( file.flush() );
+
+ closeFile(file);
+ }
+
+ QByteArray readData;
+
+ {
+ QFile file(fileName);
+
+ QVERIFY2( openFile(file, QIODevice::ReadOnly, (FileType)type),
+ qPrintable(QString("Couldn't open file for reading: [%1]").arg(fileName)) );
+ readData = file.readAll();
+ closeFile(file);
}
+
+ QCOMPARE( readData, originalData );
+ QVERIFY( QFile::remove(fileName) );
}
void tst_QFile::readFromWriteOnlyFile()
diff --git a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
index b40cf43..d216924 100644
--- a/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
+++ b/tests/auto/qgraphicseffect/tst_qgraphicseffect.cpp
@@ -49,6 +49,7 @@
#include <QtGui/qstyleoption.h>
#include "../../shared/util.h"
+#include <private/qgraphicseffect_p.h>
//TESTED_CLASS=
//TESTED_FILES=
@@ -131,16 +132,16 @@ public:
int margin() const
{ return m_margin; }
- void draw(QPainter *painter, QGraphicsEffectSource *source)
+ void draw(QPainter *painter)
{
++numRepaints;
if (doNothingInDraw)
return;
- m_source = source;
+ m_source = source();
m_painter = painter;
- m_styleOption = source->styleOption();
+ m_styleOption = source()->styleOption();
m_opacity = painter->opacity();
- source->draw(painter);
+ drawSource(painter);
}
void sourceChanged(QGraphicsEffect::ChangeFlags flags)
diff --git a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
index 55294d5..9991ab4 100644
--- a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
+++ b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
@@ -46,6 +46,8 @@
#include <QtGui/qgraphicsitem.h>
#include <QtGui/qstyleoption.h>
+#include <private/qgraphicseffect_p.h>
+
//TESTED_CLASS=
//TESTED_FILES=
@@ -54,13 +56,12 @@ class CustomItem : public QGraphicsRectItem
public:
CustomItem(qreal x, qreal y, qreal width, qreal height)
: QGraphicsRectItem(x, y, width, height), numRepaints(0),
- m_painter(0), m_styleOption(0)
+ m_painter(0)
{}
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
m_painter = painter;
- m_styleOption = option;
++numRepaints;
QGraphicsRectItem::paint(painter, option, widget);
}
@@ -69,12 +70,10 @@ public:
{
numRepaints = 0;
m_painter = 0;
- m_styleOption = 0;
}
int numRepaints;
QPainter *m_painter;
- const QStyleOption *m_styleOption;
};
class CustomEffect : public QGraphicsEffect
@@ -84,7 +83,7 @@ public:
: QGraphicsEffect(), numRepaints(0), m_margin(10), m_sourceChanged(false),
m_sourceBoundingRectChanged(false), doNothingInDraw(false),
storeDeviceDependentStuff(false),
- m_painter(0), m_styleOption(0), m_source(0)
+ m_painter(0), m_source(0)
{}
QRectF boundingRectFor(const QRectF &rect) const
@@ -96,7 +95,6 @@ public:
m_sourceChanged = false;
m_sourceBoundingRectChanged = false;
m_painter = 0;
- m_styleOption = 0;
m_source = 0;
deviceCoordinatesPixmap = QPixmap();
deviceRect = QRect();
@@ -112,20 +110,19 @@ public:
int margin() const
{ return m_margin; }
- void draw(QPainter *painter, QGraphicsEffectSource *source)
+ void draw(QPainter *painter)
{
++numRepaints;
if (storeDeviceDependentStuff) {
- deviceCoordinatesPixmap = source->pixmap(Qt::DeviceCoordinates);
- deviceRect = source->deviceRect();
- sourceDeviceBoundingRect = source->boundingRect(Qt::DeviceCoordinates);
+ deviceCoordinatesPixmap = source()->pixmap(Qt::DeviceCoordinates);
+ deviceRect = QRect(0, 0, painter->device()->width(), painter->device()->height());
+ sourceDeviceBoundingRect = source()->boundingRect(Qt::DeviceCoordinates);
}
if (doNothingInDraw)
return;
- m_source = source;
+ m_source = source();
m_painter = painter;
- m_styleOption = source->styleOption();
- source->draw(painter);
+ source()->draw(painter);
}
void sourceChanged()
@@ -141,7 +138,6 @@ public:
bool doNothingInDraw;
bool storeDeviceDependentStuff;
QPainter *m_painter;
- const QStyleOption *m_styleOption;
QGraphicsEffectSource *m_source;
QPixmap deviceCoordinatesPixmap;
QRect deviceRect;
@@ -227,8 +223,6 @@ void tst_QGraphicsEffectSource::styleOption()
QTest::qWait(50);
QCOMPARE(item->numRepaints, 1);
QCOMPARE(effect->numRepaints, 1);
- QVERIFY(effect->m_styleOption);
- QCOMPARE(effect->m_styleOption, item->m_styleOption);
}
void tst_QGraphicsEffectSource::isPixmap()
@@ -291,10 +285,6 @@ void tst_QGraphicsEffectSource::boundingRect()
void tst_QGraphicsEffectSource::deviceRect()
{
- QTest::ignoreMessage(QtWarningMsg, "QGraphicsEffectSource::deviceRect: Not yet implemented, lacking device context");
- QCOMPARE(effect->source()->deviceRect(), QRect());
-
- // We can at least check that the rect was correct in QGraphicsEffect::draw.
effect->storeDeviceDependentStuff = true;
effect->source()->update();
QTest::qWait(50);
@@ -332,13 +322,13 @@ public:
return src.adjusted(-10, -10, 10, 10);
}
- void draw(QPainter *, QGraphicsEffectSource *source) {
- pix = source->pixmap(coordinateMode, &offset, padMode);
+ void draw(QPainter *) {
+ pix = source()->pixmap(coordinateMode, &offset, padMode);
}
QPixmap pix;
QPoint offset;
- QGraphicsEffectSource::PixmapPadMode padMode;
+ QGraphicsEffect::PixmapPadMode padMode;
Qt::CoordinateSystem coordinateMode;
};
@@ -351,32 +341,32 @@ void tst_QGraphicsEffectSource::pixmapPadding_data()
QTest::addColumn<uint>("ulPixel");
QTest::newRow("log,nopad") << int(Qt::LogicalCoordinates)
- << int(QGraphicsEffectSource::NoExpandPadMode)
+ << int(QGraphicsEffect::NoPad)
<< QSize(10, 10) << QPoint(0, 0)
<< 0xffff0000u;
QTest::newRow("log,transparent") << int(Qt::LogicalCoordinates)
- << int(QGraphicsEffectSource::ExpandToTransparentBorderPadMode)
+ << int(QGraphicsEffect::PadToTransparentBorder)
<< QSize(14, 14) << QPoint(-2, -2)
<< 0x00000000u;
QTest::newRow("log,effectrect") << int(Qt::LogicalCoordinates)
- << int(QGraphicsEffectSource::ExpandToEffectRectPadMode)
+ << int(QGraphicsEffect::PadToEffectiveBoundingRect)
<< QSize(30, 30) << QPoint(-10, -10)
<< 0x00000000u;
QTest::newRow("dev,nopad") << int(Qt::DeviceCoordinates)
- << int(QGraphicsEffectSource::NoExpandPadMode)
+ << int(QGraphicsEffect::NoPad)
<< QSize(20, 20) << QPoint(40, 40)
<< 0xffff0000u;
QTest::newRow("dev,transparent") << int(Qt::DeviceCoordinates)
- << int(QGraphicsEffectSource::ExpandToTransparentBorderPadMode)
+ << int(QGraphicsEffect::PadToTransparentBorder)
<< QSize(24, 24) << QPoint(38, 38)
<< 0x00000000u;
QTest::newRow("dev,effectrect") << int(Qt::DeviceCoordinates)
- << int(QGraphicsEffectSource::ExpandToEffectRectPadMode)
+ << int(QGraphicsEffect::PadToEffectiveBoundingRect)
<< QSize(40, 40) << QPoint(30, 30)
<< 0x00000000u;
@@ -404,7 +394,7 @@ void tst_QGraphicsEffectSource::pixmapPadding()
QFETCH(QSize, size);
QFETCH(uint, ulPixel);
- effect->padMode = (QGraphicsEffectSource::PixmapPadMode) padMode;
+ effect->padMode = (QGraphicsEffect::PixmapPadMode) padMode;
effect->coordinateMode = (Qt::CoordinateSystem) coordinateMode;
scene->render(&dummyPainter, scene->itemsBoundingRect(), scene->itemsBoundingRect());
diff --git a/tests/auto/qimage/tst_qimage.cpp b/tests/auto/qimage/tst_qimage.cpp
index e15ae8a..da4e85d 100644
--- a/tests/auto/qimage/tst_qimage.cpp
+++ b/tests/auto/qimage/tst_qimage.cpp
@@ -104,7 +104,7 @@ private slots:
void setPixel_data();
void setPixel();
- void setNumColors();
+ void setColorCount();
void setColor();
void rasterClipping();
@@ -155,7 +155,7 @@ void tst_QImage::create()
#endif
//QImage image(7000000, 7000000, 8, 256, QImage::IgnoreEndian);
QImage image(7000000, 7000000, QImage::Format_Indexed8);
- image.setNumColors(256);
+ image.setColorCount(256);
cr = !image.isNull();
#if !defined(Q_WS_QWS) && !defined(Q_OS_WINCE)
} catch (...) {
@@ -242,7 +242,7 @@ void tst_QImage::convertBitOrder()
QSKIP("Qt compiled without Qt3Support", SkipAll);
#else
QImage i(9,5,1,2,QImage::LittleEndian);
- qMemSet(i.bits(), 0, i.numBytes());
+ qMemSet(i.bits(), 0, i.byteCount());
i.setDotsPerMeterX(9);
i.setDotsPerMeterY(5);
@@ -258,7 +258,7 @@ void tst_QImage::convertBitOrder()
QVERIFY(i.dotsPerMeterY() == ni.dotsPerMeterY());
QVERIFY(i.depth() == ni.depth());
QVERIFY(i.size() == ni.size());
- QVERIFY(i.numColors() == ni.numColors());
+ QVERIFY(i.colorCount() == ni.colorCount());
#endif
}
@@ -365,7 +365,7 @@ void tst_QImage::setAlphaChannel()
QImage alphaChannel;
if (gray) {
alphaChannel = QImage(width, height, QImage::Format_Indexed8);
- alphaChannel.setNumColors(256);
+ alphaChannel.setColorCount(256);
for (int i=0; i<256; ++i)
alphaChannel.setColor(i, qRgb(i, i, i));
alphaChannel.fill(alpha);
@@ -927,7 +927,7 @@ void tst_QImage::rotate()
original.fill(qRgb(255,255,255));
if (format == QImage::Format_Indexed8) {
- original.setNumColors(256);
+ original.setColorCount(256);
for (int i = 0; i < 255; ++i)
original.setColor(i, qRgb(0, i, i));
}
@@ -1196,23 +1196,23 @@ void tst_QImage::convertToFormatPreserveText()
}
#endif // QT_NO_IMAGE_TEXT
-void tst_QImage::setNumColors()
+void tst_QImage::setColorCount()
{
QImage img(0, 0, QImage::Format_Indexed8);
- QTest::ignoreMessage(QtWarningMsg, "QImage::setNumColors: null image");
- img.setNumColors(256);
- QCOMPARE(img.numColors(), 0);
+ QTest::ignoreMessage(QtWarningMsg, "QImage::setColorCount: null image");
+ img.setColorCount(256);
+ QCOMPARE(img.colorCount(), 0);
}
void tst_QImage::setColor()
{
QImage img(0, 0, QImage::Format_Indexed8);
img.setColor(0, qRgba(18, 219, 108, 128));
- QCOMPARE(img.numColors(), 0);
+ QCOMPARE(img.colorCount(), 0);
QImage img2(1, 1, QImage::Format_Indexed8);
img2.setColor(0, qRgba(18, 219, 108, 128));
- QCOMPARE(img2.numColors(), 1);
+ QCOMPARE(img2.colorCount(), 1);
}
/* Just some sanity checking that we don't draw outside the buffer of
diff --git a/tests/auto/qimagewriter/tst_qimagewriter.cpp b/tests/auto/qimagewriter/tst_qimagewriter.cpp
index 584a060..ab5572d 100644
--- a/tests/auto/qimagewriter/tst_qimagewriter.cpp
+++ b/tests/auto/qimagewriter/tst_qimagewriter.cpp
@@ -546,7 +546,7 @@ void tst_QImageWriter::saveWithNoFormat()
QFETCH(QImageWriter::ImageWriterError, error);
QImage niceImage(64, 64, QImage::Format_ARGB32);
- qMemSet(niceImage.bits(), 0, niceImage.numBytes());
+ qMemSet(niceImage.bits(), 0, niceImage.byteCount());
QImageWriter writer(fileName /* , 0 - no format! */);
if (error != 0) {
diff --git a/tests/auto/qitemdelegate/tst_qitemdelegate.cpp b/tests/auto/qitemdelegate/tst_qitemdelegate.cpp
index 426887d..a2770d4 100644
--- a/tests/auto/qitemdelegate/tst_qitemdelegate.cpp
+++ b/tests/auto/qitemdelegate/tst_qitemdelegate.cpp
@@ -877,7 +877,7 @@ void tst_QItemDelegate::decoration()
}
case QVariant::Image: {
QImage img(size, QImage::Format_Mono);
- qMemSet(img.bits(), 0, img.numBytes());
+ qMemSet(img.bits(), 0, img.byteCount());
value = img;
break;
}
diff --git a/tests/auto/qlcdnumber/tst_qlcdnumber.cpp b/tests/auto/qlcdnumber/tst_qlcdnumber.cpp
index c18ce24..3f52c70 100644
--- a/tests/auto/qlcdnumber/tst_qlcdnumber.cpp
+++ b/tests/auto/qlcdnumber/tst_qlcdnumber.cpp
@@ -74,14 +74,14 @@ tst_QLCDNumber::~tst_QLCDNumber()
void tst_QLCDNumber::getSetCheck()
{
QLCDNumber obj1;
- // int QLCDNumber::numDigits()
- // void QLCDNumber::setNumDigits(int)
- obj1.setNumDigits(0);
- QCOMPARE(0, obj1.numDigits());
- obj1.setNumDigits(INT_MIN);
- QCOMPARE(0, obj1.numDigits()); // Range<0, 99>
- obj1.setNumDigits(INT_MAX);
- QCOMPARE(99, obj1.numDigits()); // Range<0, 99>
+ // int QLCDNumber::digitCount()
+ // void QLCDNumber::setDigitCount(int)
+ obj1.setDigitCount(0);
+ QCOMPARE(0, obj1.digitCount());
+ obj1.setDigitCount(INT_MIN);
+ QCOMPARE(0, obj1.digitCount()); // Range<0, 99>
+ obj1.setDigitCount(INT_MAX);
+ QCOMPARE(99, obj1.digitCount()); // Range<0, 99>
}
QTEST_MAIN(tst_QLCDNumber)
diff --git a/tests/auto/qlistwidget/tst_qlistwidget.cpp b/tests/auto/qlistwidget/tst_qlistwidget.cpp
index 5c6ed54..cb8f1e9 100644
--- a/tests/auto/qlistwidget/tst_qlistwidget.cpp
+++ b/tests/auto/qlistwidget/tst_qlistwidget.cpp
@@ -879,7 +879,7 @@ void tst_QListWidget::moveItemsPriv()
for (int r = 0; r < rowCount; ++r)
new QListWidgetItem(QString::number(r), testWidget);
- QListModel *model = dynamic_cast<QListModel *>(testWidget->model());
+ QListModel *model = qobject_cast<QListModel *>(testWidget->model());
QVERIFY(model);
QSignalSpy beginMoveSpy(model, SIGNAL(rowsAboutToBeMoved(QModelIndex,int,int,QModelIndex,int)));
QSignalSpy movedSpy(model, SIGNAL(rowsMoved(QModelIndex,int,int,QModelIndex,int)));
diff --git a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
index ab7b0ac..5ead049 100644
--- a/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
+++ b/tests/auto/qlocalsocket/tst_qlocalsocket.cpp
@@ -587,14 +587,16 @@ void tst_QLocalSocket::readBufferOverflow()
char buffer[dataBufferSize];
memset(buffer, 0, dataBufferSize);
serverSocket->write(buffer, dataBufferSize);
- serverSocket->flush();
+ serverSocket->waitForBytesWritten();
+ // wait until the first 128 bytes are ready to read
QVERIFY(client.waitForReadyRead());
QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize));
-#if defined(QT_LOCALSOCKET_TCP) || defined(Q_OS_SYMBIAN)
- QTest::qWait(250);
-#endif
+ // wait until the second 128 bytes are ready to read
+ QVERIFY(client.waitForReadyRead());
QCOMPARE(client.read(buffer, readBufferSize), qint64(readBufferSize));
+ // no more bytes available
+ QVERIFY(client.bytesAvailable() == 0);
}
// QLocalSocket/Server can take a name or path, check that it works as expected
diff --git a/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp b/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp
index 3c4ddd4..94857d7 100644
--- a/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp
+++ b/tests/auto/qnetworkcookie/tst_qnetworkcookie.cpp
@@ -234,7 +234,7 @@ void tst_QNetworkCookie::parseSingleCookie_data()
QTest::newRow("path-with-utf8-2") << "a=b;path=/R%C3%A9sum%C3%A9" << cookie;
cookie.setPath(QString());
- cookie.setDomain(".qt.nokia.com");
+ cookie.setDomain("qt.nokia.com");
QTest::newRow("plain-domain1") << "a=b;domain=qt.nokia.com" << cookie;
QTest::newRow("plain-domain2") << "a=b; domain=qt.nokia.com " << cookie;
QTest::newRow("plain-domain3") << "a=b;domain=QT.NOKIA.COM" << cookie;
@@ -247,32 +247,25 @@ void tst_QNetworkCookie::parseSingleCookie_data()
QTest::newRow("dot-domain4") << "a=b; Domain = .QT.NOKIA.COM" << cookie;
cookie.setDomain(QString::fromUtf8(".d\303\270gn\303\245pent.troll.no"));
- QTest::newRow("idn-domain1") << "a=b;domain=xn--dgnpent-gxa2o.troll.no" << cookie;
- QTest::newRow("idn-domain2") << "a=b;domain=d\303\270gn\303\245pent.troll.no" << cookie;
- QTest::newRow("idn-domain3") << "a=b;domain=XN--DGNPENT-GXA2O.TROLL.NO" << cookie;
- QTest::newRow("idn-domain4") << "a=b;domain=D\303\230GN\303\205PENT.troll.NO" << cookie;
- QTest::newRow("idn-domain5") << "a=b;domain = D\303\230GN\303\205PENT.troll.NO" << cookie;
-
- cookie.setDomain(QString::fromUtf8(".d\303\270gn\303\245pent.troll.no"));
- QTest::newRow("dot-idn-domain1") << "a=b;domain=.xn--dgnpent-gxa2o.troll.no" << cookie;
- QTest::newRow("dot-idn-domain2") << "a=b;domain=.d\303\270gn\303\245pent.troll.no" << cookie;
- QTest::newRow("dot-idn-domain3") << "a=b;domain=.XN--DGNPENT-GXA2O.TROLL.NO" << cookie;
- QTest::newRow("dot-idn-domain4") << "a=b;domain=.D\303\230GN\303\205PENT.troll.NO" << cookie;
+ QTest::newRow("idn-domain1") << "a=b;domain=.xn--dgnpent-gxa2o.troll.no" << cookie;
+ QTest::newRow("idn-domain2") << "a=b;domain=.d\303\270gn\303\245pent.troll.no" << cookie;
+ QTest::newRow("idn-domain3") << "a=b;domain=.XN--DGNPENT-GXA2O.TROLL.NO" << cookie;
+ QTest::newRow("idn-domain4") << "a=b;domain=.D\303\230GN\303\205PENT.troll.NO" << cookie;
cookie.setDomain(".qt.nokia.com");
cookie.setPath("/");
- QTest::newRow("two-fields") << "a=b;domain=qt.nokia.com;path=/" << cookie;
- QTest::newRow("two-fields2") << "a=b; domain=qt.nokia.com; path=/" << cookie;
- QTest::newRow("two-fields3") << "a=b; domain=qt.nokia.com ; path=/ " << cookie;
- QTest::newRow("two-fields4") << "a=b;path=/; domain=qt.nokia.com" << cookie;
- QTest::newRow("two-fields5") << "a=b; path=/ ; domain=qt.nokia.com" << cookie;
- QTest::newRow("two-fields6") << "a=b; path= / ; domain =qt.nokia.com" << cookie;
+ QTest::newRow("two-fields") << "a=b;domain=.qt.nokia.com;path=/" << cookie;
+ QTest::newRow("two-fields2") << "a=b; domain=.qt.nokia.com; path=/" << cookie;
+ QTest::newRow("two-fields3") << "a=b; domain=.qt.nokia.com ; path=/ " << cookie;
+ QTest::newRow("two-fields4") << "a=b;path=/; domain=.qt.nokia.com" << cookie;
+ QTest::newRow("two-fields5") << "a=b; path=/ ; domain=.qt.nokia.com" << cookie;
+ QTest::newRow("two-fields6") << "a=b; path= / ; domain =.qt.nokia.com" << cookie;
cookie.setSecure(true);
- QTest::newRow("three-fields") << "a=b;domain=qt.nokia.com;path=/;secure" << cookie;
- QTest::newRow("three-fields2") << "a=b;secure;path=/;domain=qt.nokia.com" << cookie;
- QTest::newRow("three-fields3") << "a=b;secure;domain=qt.nokia.com; path=/" << cookie;
- QTest::newRow("three-fields4") << "a = b;secure;domain=qt.nokia.com; path=/" << cookie;
+ QTest::newRow("three-fields") << "a=b;domain=.qt.nokia.com;path=/;secure" << cookie;
+ QTest::newRow("three-fields2") << "a=b;secure;path=/;domain=.qt.nokia.com" << cookie;
+ QTest::newRow("three-fields3") << "a=b;secure;domain=.qt.nokia.com; path=/" << cookie;
+ QTest::newRow("three-fields4") << "a = b;secure;domain=.qt.nokia.com; path=/" << cookie;
cookie = QNetworkCookie();
cookie.setName("a");
@@ -664,7 +657,7 @@ void tst_QNetworkCookie::parseMultipleCookies_data()
cookie.setName("baz");
cookie.setDomain(".qt.nokia.com");
list.prepend(cookie);
- QTest::newRow("complex-2") << "baz=bar; path=/; domain=qt.nokia.com, c=d,a=,foo=bar; path=/" << list;
+ QTest::newRow("complex-2") << "baz=bar; path=/; domain=.qt.nokia.com, c=d,a=,foo=bar; path=/" << list;
// cookies obtained from the network:
cookie = QNetworkCookie("id", "51706646077999719");
diff --git a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
index 9b9c56a..ff7e78e 100644
--- a/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
+++ b/tests/auto/qnetworkcookiejar/tst_qnetworkcookiejar.cpp
@@ -120,7 +120,7 @@ void tst_QNetworkCookieJar::setCookiesFromUrl_data()
cookie.setName("a");
cookie.setPath("/");
- cookie.setDomain("www.foo.tld");
+ cookie.setDomain(".foo.tld");
result += cookie;
QTest::newRow("just-add") << preset << cookie << "http://www.foo.tld" << result << true;
@@ -148,6 +148,20 @@ void tst_QNetworkCookieJar::setCookiesFromUrl_data()
cookie.setPath("/");
QTest::newRow("diff-path-order") << preset << cookie << "http://www.foo.tld" << result << true;
+ preset.clear();
+ result.clear();
+ QNetworkCookie finalCookie = cookie;
+ cookie.setDomain("foo.tld");
+ finalCookie.setDomain(".foo.tld");
+ result += finalCookie;
+ QTest::newRow("should-add-dot-prefix") << preset << cookie << "http://www.foo.tld" << result << true;
+
+ result.clear();
+ cookie.setDomain("");
+ finalCookie.setDomain("www.foo.tld");
+ result += finalCookie;
+ QTest::newRow("should-set-default-domain") << preset << cookie << "http://www.foo.tld" << result << true;
+
// security test:
result.clear();
preset.clear();
@@ -159,7 +173,7 @@ void tst_QNetworkCookieJar::setCookiesFromUrl_data()
QTest::newRow("security-path-1") << preset << cookie << "http://www.foo.tld" << result << false;
// setting the defaults:
- QNetworkCookie finalCookie = cookie;
+ finalCookie = cookie;
finalCookie.setPath("/something/");
cookie.setPath("");
cookie.setDomain("");
diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index 7adb67f..0b61dcd 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -227,12 +227,6 @@ private Q_SLOTS:
void rateControl_data();
void rateControl();
- void downloadPerformance();
- void uploadPerformance();
- void performanceControlRate();
- void httpUploadPerformance();
- void httpDownloadPerformance_data();
- void httpDownloadPerformance();
void downloadProgress_data();
void downloadProgress();
@@ -413,93 +407,6 @@ public slots:
}
};
-class FixedSizeDataGenerator : public QIODevice
-{
- Q_OBJECT
- enum { Idle, Started, Stopped } state;
-public:
- FixedSizeDataGenerator(qint64 size) : state(Idle)
- { open(ReadOnly | Unbuffered);
- toBeGeneratedTotalCount = toBeGeneratedCount = size;
- }
-
- virtual qint64 bytesAvailable() const
- {
- return state == Started ? toBeGeneratedCount + QIODevice::bytesAvailable() : 0;
- }
-
- virtual bool isSequential() const{
- return false;
- }
-
- virtual bool reset() const{
- return false;
- }
-
- qint64 size() const {
- return toBeGeneratedTotalCount;
- }
-
-public slots:
- void start() { state = Started; emit readyRead(); }
-
-protected:
- virtual qint64 readData(char *data, qint64 maxlen)
- {
- memset(data, '@', maxlen);
-
- if (toBeGeneratedCount <= 0) {
- return -1;
- }
-
- qint64 n = qMin(maxlen, toBeGeneratedCount);
- toBeGeneratedCount -= n;
-
- if (toBeGeneratedCount <= 0) {
- // make sure this is a queued connection!
- emit readChannelFinished();
- }
-
- return n;
- }
- virtual qint64 writeData(const char *, qint64)
- { return -1; }
-
- qint64 toBeGeneratedCount;
- qint64 toBeGeneratedTotalCount;
-};
-
-
-class DataGenerator: public QIODevice
-{
- Q_OBJECT
- enum { Idle, Started, Stopped } state;
-public:
- DataGenerator() : state(Idle)
- { open(ReadOnly); }
-
- virtual bool isSequential() const { return true; }
- virtual qint64 bytesAvailable() const { return state == Started ? 1024*1024 : 0; }
-
-public slots:
- void start() { state = Started; emit readyRead(); }
- void stop() { state = Stopped; emit readyRead(); }
-
-protected:
- virtual qint64 readData(char *data, qint64 maxlen)
- {
- if (state == Stopped)
- return -1; // EOF
-
- // return as many bytes as are wanted
- memset(data, '@', maxlen);
- return maxlen;
- }
- virtual qint64 writeData(const char *, qint64)
- { return -1; }
-};
-
-
class SocketPair: public QObject
{
@@ -692,255 +599,6 @@ protected:
}
};
-class TimedSender: public QThread
-{
- Q_OBJECT
- qint64 totalBytes;
- QSemaphore ready;
- QByteArray dataToSend;
- QTcpSocket *client;
- int timeout;
- int port;
-public:
- int transferRate;
- TimedSender(int ms)
- : totalBytes(0), timeout(ms), port(-1), transferRate(-1)
- {
- dataToSend = QByteArray(16*1024, '@');
- start();
- ready.acquire();
- }
-
- inline int serverPort() const { return port; }
-
-private slots:
- void writeMore()
- {
- while (client->bytesToWrite() < 128 * 1024) {
- writePacket(dataToSend);
- }
- }
-
-protected:
- void run()
- {
- QTcpServer server;
- server.listen();
- port = server.serverPort();
- ready.release();
-
- server.waitForNewConnection(-1);
- client = server.nextPendingConnection();
-
- writeMore();
- connect(client, SIGNAL(bytesWritten(qint64)), SLOT(writeMore()), Qt::DirectConnection);
-
- QEventLoop eventLoop;
- QTimer::singleShot(timeout, &eventLoop, SLOT(quit()));
-
- QTime timer;
- timer.start();
- eventLoop.exec();
- disconnect(client, SIGNAL(bytesWritten(qint64)), this, 0);
-
- // wait for the connection to shut down
- client->disconnectFromHost();
- if (!client->waitForDisconnected(10000))
- return;
-
- transferRate = totalBytes * 1000 / timer.elapsed();
- qDebug() << "TimedSender::run" << "receive rate:" << (transferRate / 1024) << "kB/s in"
- << timer.elapsed() << "ms";
- }
-
- void writePacket(const QByteArray &array)
- {
- client->write(array);
- totalBytes += array.size();
- }
-};
-
-class ThreadedDataReader: public QThread
-{
- Q_OBJECT
- // used to make the constructor only return after the tcp server started listening
- QSemaphore ready;
- QTcpSocket *client;
- int timeout;
- int port;
-public:
- qint64 transferRate;
- ThreadedDataReader()
- : port(-1), transferRate(-1)
- {
- start();
- ready.acquire();
- }
-
- inline int serverPort() const { return port; }
-
-protected:
- void run()
- {
- QTcpServer server;
- server.listen();
- port = server.serverPort();
- ready.release();
-
- server.waitForNewConnection(-1);
- client = server.nextPendingConnection();
-
- QEventLoop eventLoop;
- DataReader reader(client, false);
- QObject::connect(client, SIGNAL(disconnected()), &eventLoop, SLOT(quit()));
-
- QTime timer;
- timer.start();
- eventLoop.exec();
- qint64 elapsed = timer.elapsed();
-
- transferRate = reader.totalBytes * 1000 / elapsed;
- qDebug() << "ThreadedDataReader::run" << "send rate:" << (transferRate / 1024) << "kB/s in" << elapsed << "msec";
- }
-};
-
-class ThreadedDataReaderHttpServer: public QThread
-{
- Q_OBJECT
- // used to make the constructor only return after the tcp server started listening
- QSemaphore ready;
- QTcpSocket *client;
- int timeout;
- int port;
-public:
- qint64 transferRate;
- ThreadedDataReaderHttpServer()
- : port(-1), transferRate(-1)
- {
- start();
- ready.acquire();
- }
-
- inline int serverPort() const { return port; }
-
-protected:
- void run()
- {
- QTcpServer server;
- server.listen();
- port = server.serverPort();
- ready.release();
-
- server.waitForNewConnection(-1);
- client = server.nextPendingConnection();
- client->write("HTTP/1.0 200 OK\r\n");
- client->write("Content-length: 0\r\n");
- client->write("\r\n");
- client->flush();
-
- QCoreApplication::processEvents();
-
- QEventLoop eventLoop;
- DataReader reader(client, false);
- QObject::connect(client, SIGNAL(disconnected()), &eventLoop, SLOT(quit()));
-
- QTime timer;
- timer.start();
- eventLoop.exec();
- qint64 elapsed = timer.elapsed();
-
- transferRate = reader.totalBytes * 1000 / elapsed;
- qDebug() << "ThreadedDataReaderHttpServer::run" << "send rate:" << (transferRate / 1024) << "kB/s in" << elapsed << "msec";
- }
-};
-
-class HttpDownloadPerformanceClient : QObject {
- Q_OBJECT;
- QIODevice *device;
- public:
- HttpDownloadPerformanceClient (QIODevice *dev) : device(dev){
- connect(dev, SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
- }
-
- public slots:
- void readyReadSlot() {
- device->readAll();
- }
-
-};
-
-class HttpDownloadPerformanceServer : QObject {
- Q_OBJECT;
- qint64 dataSize;
- qint64 dataSent;
- QTcpServer server;
- QTcpSocket *client;
- bool serverSendsContentLength;
- bool chunkedEncoding;
-
-public:
- HttpDownloadPerformanceServer (qint64 ds, bool sscl, bool ce) : dataSize(ds), dataSent(0),
- client(0), serverSendsContentLength(sscl), chunkedEncoding(ce) {
- server.listen();
- connect(&server, SIGNAL(newConnection()), this, SLOT(newConnectionSlot()));
- }
-
- int serverPort() {
- return server.serverPort();
- }
-
-public slots:
-
- void newConnectionSlot() {
- client = server.nextPendingConnection();
- client->setParent(this);
- connect(client, SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
- connect(client, SIGNAL(bytesWritten(qint64)), this, SLOT(bytesWrittenSlot(qint64)));
- }
-
- void readyReadSlot() {
- client->readAll();
- client->write("HTTP/1.0 200 OK\n");
- if (serverSendsContentLength)
- client->write(QString("Content-Length: " + QString::number(dataSize) + "\n").toAscii());
- if (chunkedEncoding)
- client->write(QString("Transfer-Encoding: chunked\n").toAscii());
- client->write("Connection: close\n\n");
- }
-
- void bytesWrittenSlot(qint64 amount) {
- Q_UNUSED(amount);
- if (dataSent == dataSize && client) {
- // close eventually
-
- // chunked encoding: we have to send a last "empty" chunk
- if (chunkedEncoding)
- client->write(QString("0\r\n\r\n").toAscii());
-
- client->disconnectFromHost();
- server.close();
- client = 0;
- return;
- }
-
- // send data
- if (client && client->bytesToWrite() < 100*1024 && dataSent < dataSize) {
- qint64 amount = qMin(qint64(16*1024), dataSize - dataSent);
- QByteArray data(amount, '@');
-
- if (chunkedEncoding) {
- client->write(QString(QString("%1").arg(amount,0,16).toUpper() + "\r\n").toAscii());
- client->write(data.constData(), amount);
- client->write(QString("\r\n").toAscii());
- } else {
- client->write(data.constData(), amount);
- }
-
- dataSent += amount;
- }
- }
-};
-
tst_QNetworkReply::tst_QNetworkReply()
{
@@ -3311,7 +2969,6 @@ void tst_QNetworkReply::ioPostToHttpEmtpyUploadProgress()
server.close();
}
-
void tst_QNetworkReply::rateControl_data()
{
QTest::addColumn<int>("rate");
@@ -3365,142 +3022,6 @@ void tst_QNetworkReply::rateControl()
QVERIFY(sender.transferRate <= maxRate);
}
-void tst_QNetworkReply::downloadPerformance()
-{
- // unlike the above function, this one tries to send as fast as possible
- // and measures how fast it was.
- TimedSender sender(5000);
- QNetworkRequest request("debugpipe://127.0.0.1:" + QString::number(sender.serverPort()) + "/?bare=1");
- QNetworkReplyPtr reply = manager.get(request);
- DataReader reader(reply, false);
-
- QTime loopTime;
- connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
- loopTime.start();
- QTestEventLoop::instance().enterLoop(40);
- int elapsedTime = loopTime.elapsed();
- sender.wait();
-
- qint64 receivedBytes = reader.totalBytes;
- qDebug() << "tst_QNetworkReply::downloadPerformance" << "receive rate:" << (receivedBytes * 1000 / elapsedTime / 1024) << "kB/s and"
- << elapsedTime << "ms";
-}
-
-void tst_QNetworkReply::uploadPerformance()
-{
- ThreadedDataReader reader;
- DataGenerator generator;
-
-
- QNetworkRequest request("debugpipe://127.0.0.1:" + QString::number(reader.serverPort()) + "/?bare=1");
- QNetworkReplyPtr reply = manager.put(request, &generator);
- generator.start();
- connect(&reader, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
- QTimer::singleShot(5000, &generator, SLOT(stop()));
-
- QTestEventLoop::instance().enterLoop(30);
- QCOMPARE(reply->error(), QNetworkReply::NoError);
- QVERIFY(!QTestEventLoop::instance().timeout());
-}
-
-void tst_QNetworkReply::httpUploadPerformance()
-{
-#ifdef Q_OS_SYMBIAN
- // SHow some mercy for non-desktop platform/s
- enum {UploadSize = 4*1024*1024}; // 4 MB
-#else
- enum {UploadSize = 128*1024*1024}; // 128 MB
-#endif
- ThreadedDataReaderHttpServer reader;
- FixedSizeDataGenerator generator(UploadSize);
-
- QNetworkRequest request(QUrl("http://127.0.0.1:" + QString::number(reader.serverPort()) + "/?bare=1"));
- request.setHeader(QNetworkRequest::ContentLengthHeader,UploadSize);
-
- QNetworkReplyPtr reply = manager.put(request, &generator);
-
- connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
-
- QTime time;
- generator.start();
- time.start();
- QTestEventLoop::instance().enterLoop(40);
- QCOMPARE(reply->error(), QNetworkReply::NoError);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- qint64 elapsed = time.elapsed();
- qDebug() << "tst_QNetworkReply::httpUploadPerformance" << elapsed << "msec, "
- << ((UploadSize/1024.0)/(elapsed/1000.0)) << " kB/sec";
-
- reader.exit();
- reader.wait();
-}
-
-
-void tst_QNetworkReply::performanceControlRate()
-{
- // this is a control comparison for the other two above
- // it does the same thing, but instead bypasses the QNetworkAccess system
- qDebug() << "The following are the maximum transfer rates that we can get in this system"
- " (bypassing QNetworkAccess)";
-
- TimedSender sender(5000);
- QTcpSocket sink;
- sink.connectToHost("127.0.0.1", sender.serverPort());
- DataReader reader(&sink, false);
-
- QTime loopTime;
- connect(&sink, SIGNAL(disconnected()), &QTestEventLoop::instance(), SLOT(exitLoop()));
- loopTime.start();
- QTestEventLoop::instance().enterLoop(40);
- int elapsedTime = loopTime.elapsed();
- sender.wait();
-
- qint64 receivedBytes = reader.totalBytes;
- qDebug() << "tst_QNetworkReply::performanceControlRate" << "receive rate:" << (receivedBytes * 1000 / elapsedTime / 1024) << "kB/s and"
- << elapsedTime << "ms";
-}
-
-void tst_QNetworkReply::httpDownloadPerformance_data()
-{
- QTest::addColumn<bool>("serverSendsContentLength");
- QTest::addColumn<bool>("chunkedEncoding");
-
- QTest::newRow("Server sends no Content-Length") << false << false;
- QTest::newRow("Server sends Content-Length") << true << false;
- QTest::newRow("Server uses chunked encoding") << false << true;
-
-}
-
-void tst_QNetworkReply::httpDownloadPerformance()
-{
- QFETCH(bool, serverSendsContentLength);
- QFETCH(bool, chunkedEncoding);
-#ifdef Q_OS_SYMBIAN
- // Show some mercy to non-desktop platform/s
- enum {UploadSize = 4*1024*1024}; // 4 MB
-#else
- enum {UploadSize = 128*1024*1024}; // 128 MB
-#endif
- HttpDownloadPerformanceServer server(UploadSize, serverSendsContentLength, chunkedEncoding);
-
- QNetworkRequest request(QUrl("http://127.0.0.1:" + QString::number(server.serverPort()) + "/?bare=1"));
- QNetworkReplyPtr reply = manager.get(request);
-
- connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection);
- HttpDownloadPerformanceClient client(reply);
-
- QTime time;
- time.start();
- QTestEventLoop::instance().enterLoop(40);
- QCOMPARE(reply->error(), QNetworkReply::NoError);
- QVERIFY(!QTestEventLoop::instance().timeout());
-
- qint64 elapsed = time.elapsed();
- qDebug() << "tst_QNetworkReply::httpDownloadPerformance" << elapsed << "msec, "
- << ((UploadSize/1024.0)/(elapsed/1000.0)) << " kB/sec";
-}
-
void tst_QNetworkReply::downloadProgress_data()
{
QTest::addColumn<int>("loopCount");
diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp
index 4d2c626..8b71349 100644
--- a/tests/auto/qpainter/tst_qpainter.cpp
+++ b/tests/auto/qpainter/tst_qpainter.cpp
@@ -101,6 +101,8 @@ private slots:
void saveAndRestore_data();
void saveAndRestore();
+ void drawBorderPixmap();
+
void drawLine_data();
void drawLine();
void drawLine_clipped();
@@ -973,6 +975,18 @@ void tst_QPainter::initFrom()
delete widget;
}
+void tst_QPainter::drawBorderPixmap()
+{
+ QPixmap src(79,79);
+ src.fill(Qt::transparent);
+
+ QImage pm(200,200,QImage::Format_RGB32);
+ QPainter p(&pm);
+ p.setTransform(QTransform(-1,0,0,-1,173.5,153.5));
+ qDrawBorderPixmap(&p, QRect(0,0,75,105), QMargins(39,39,39,39), src, QRect(0,0,79,79), QMargins(39,39,39,39),
+ QTileRules(Qt::StretchTile,Qt::StretchTile), 0);
+}
+
void tst_QPainter::drawLine_data()
{
QTest::addColumn<QLine>("line");
@@ -2918,7 +2932,7 @@ void tst_QPainter::monoImages()
QImage img(2, 2, format);
- if (img.numColors() > 0) {
+ if (img.colorCount() > 0) {
img.setColor(0, QColor(colorPairs[j][0]).rgba());
img.setColor(1, QColor(colorPairs[j][1]).rgba());
}
@@ -2940,7 +2954,7 @@ void tst_QPainter::monoImages()
// should not change the image
QCOMPARE(original, img);
- if (img.numColors() == 0)
+ if (img.colorCount() == 0)
continue;
for (int k = 0; k < 2; ++k) {
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp
index 8e02c74..d7f042e 100644
--- a/tests/auto/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp
@@ -293,7 +293,7 @@ void tst_QPixmap::setAlphaChannel()
QRgb expected = alpha == 0 ? 0 : qRgba(red, green, blue, alpha);
for (int y = 0; y < height; ++y) {
for (int x = 0; x < width; ++x) {
- if (result.numColors() > 0) {
+ if (result.colorCount() > 0) {
ok &= result.pixelIndex(x, y) == expected;
} else {
ok &= result.pixel(x, y) == expected;
@@ -330,7 +330,7 @@ void tst_QPixmap::fromImage()
QImage image(37, 16, format);
- if (image.numColors() == 2) {
+ if (image.colorCount() == 2) {
image.setColor(0, QColor(Qt::color0).rgba());
image.setColor(1, QColor(Qt::color1).rgba());
}
@@ -731,7 +731,7 @@ void tst_QPixmap::testMetrics()
void tst_QPixmap::createMaskFromColor()
{
QImage image(3, 3, QImage::Format_Indexed8);
- image.setNumColors(10);
+ image.setColorCount(10);
image.setColor(0, 0xffffffff);
image.setColor(1, 0xff000000);
image.setColor(2, 0xffff0000);
diff --git a/tests/auto/qregexp/tst_qregexp.cpp b/tests/auto/qregexp/tst_qregexp.cpp
index 86d831e..e305386 100644
--- a/tests/auto/qregexp/tst_qregexp.cpp
+++ b/tests/auto/qregexp/tst_qregexp.cpp
@@ -628,7 +628,7 @@ void tst_QRegExp::capturedTexts()
QRegExp rx7("([A-Za-z_])([A-Za-z_0-9]*)");
rx7.setCaseSensitivity(Qt::CaseSensitive);
rx7.setPatternSyntax(QRegExp::RegExp);
- QCOMPARE(rx7.numCaptures(), 2);
+ QCOMPARE(rx7.captureCount(), 2);
int pos = rx7.indexIn("(10 + delta4) * 32");
QCOMPARE(pos, 6);
@@ -1177,36 +1177,36 @@ void tst_QRegExp::prepareEngineOptimization()
QCOMPARE(rx1.capturedTexts(), QStringList() << "" << "" << "" << "");
QCOMPARE(rx1.matchedLength(), -1);
QCOMPARE(rx1.matchedLength(), -1);
- QCOMPARE(rx1.numCaptures(), 3);
+ QCOMPARE(rx1.captureCount(), 3);
QCOMPARE(rx1.exactMatch("foo"), true);
QCOMPARE(rx1.matchedLength(), 3);
QCOMPARE(rx1.capturedTexts(), QStringList() << "foo" << "f" << "o" << "o");
- QCOMPARE(rx1.numCaptures(), 3);
+ QCOMPARE(rx1.captureCount(), 3);
QCOMPARE(rx1.matchedLength(), 3);
QCOMPARE(rx1.capturedTexts(), QStringList() << "foo" << "f" << "o" << "o");
QCOMPARE(rx1.pos(3), 2);
QCOMPARE(rx1.exactMatch("foo"), true);
- QCOMPARE(rx1.numCaptures(), 3);
+ QCOMPARE(rx1.captureCount(), 3);
QCOMPARE(rx1.matchedLength(), 3);
QCOMPARE(rx1.capturedTexts(), QStringList() << "foo" << "f" << "o" << "o");
QCOMPARE(rx1.pos(3), 2);
QRegExp rx2 = rx1;
- QCOMPARE(rx1.numCaptures(), 3);
+ QCOMPARE(rx1.captureCount(), 3);
QCOMPARE(rx1.matchedLength(), 3);
QCOMPARE(rx1.capturedTexts(), QStringList() << "foo" << "f" << "o" << "o");
QCOMPARE(rx1.pos(3), 2);
- QCOMPARE(rx2.numCaptures(), 3);
+ QCOMPARE(rx2.captureCount(), 3);
QCOMPARE(rx2.matchedLength(), 3);
QCOMPARE(rx2.capturedTexts(), QStringList() << "foo" << "f" << "o" << "o");
QCOMPARE(rx2.pos(3), 2);
QCOMPARE(rx1.exactMatch("fo"), true);
- QCOMPARE(rx1.numCaptures(), 3);
+ QCOMPARE(rx1.captureCount(), 3);
QCOMPARE(rx1.matchedLength(), 2);
QCOMPARE(rx1.capturedTexts(), QStringList() << "fo" << "f" << "o" << "");
QCOMPARE(rx1.pos(2), 1);
@@ -1245,25 +1245,25 @@ void tst_QRegExp::prepareEngineOptimization()
rx11.setPatternSyntax(QRegExp::Wildcard);
QVERIFY(!rx11.isValid());
- QCOMPARE(rx11.numCaptures(), 0);
+ QCOMPARE(rx11.captureCount(), 0);
QCOMPARE(rx11.matchedLength(), -1);
rx11.setPatternSyntax(QRegExp::RegExp);
QVERIFY(!rx11.isValid());
- QCOMPARE(rx11.numCaptures(), 0);
+ QCOMPARE(rx11.captureCount(), 0);
QCOMPARE(rx11.matchedLength(), -1);
rx11.setPattern("(foo)");
QVERIFY(rx11.isValid());
- QCOMPARE(rx11.numCaptures(), 1);
+ QCOMPARE(rx11.captureCount(), 1);
QCOMPARE(rx11.matchedLength(), -1);
QCOMPARE(rx11.indexIn("ofoo"), 1);
- QCOMPARE(rx11.numCaptures(), 1);
+ QCOMPARE(rx11.captureCount(), 1);
QCOMPARE(rx11.matchedLength(), 3);
rx11.setPatternSyntax(QRegExp::RegExp);
- QCOMPARE(rx11.numCaptures(), 1);
+ QCOMPARE(rx11.captureCount(), 1);
QCOMPARE(rx11.matchedLength(), 3);
/*
@@ -1278,11 +1278,11 @@ void tst_QRegExp::prepareEngineOptimization()
QCOMPARE(rx11.matchedLength(), 3);
rx11.setPatternSyntax(QRegExp::Wildcard);
- QCOMPARE(rx11.numCaptures(), 0);
+ QCOMPARE(rx11.captureCount(), 0);
QCOMPARE(rx11.matchedLength(), -1);
rx11.setPatternSyntax(QRegExp::RegExp);
- QCOMPARE(rx11.numCaptures(), 1);
+ QCOMPARE(rx11.captureCount(), 1);
QCOMPARE(rx11.matchedLength(), -1);
}
diff --git a/tests/auto/qregion/tst_qregion.cpp b/tests/auto/qregion/tst_qregion.cpp
index e5a3151..582b5e8 100644
--- a/tests/auto/qregion/tst_qregion.cpp
+++ b/tests/auto/qregion/tst_qregion.cpp
@@ -88,8 +88,8 @@ private slots:
void operator_xor_data();
void operator_xor();
- void numRects_data();
- void numRects();
+ void rectCount_data();
+ void rectCount();
void isEmpty_data();
void isEmpty();
@@ -554,7 +554,7 @@ void tst_QRegion::operator_plus()
qDebug() << "expected" << expected;
}
QCOMPARE(r1 + r2, expected);
- if (r2.numRects() == 1) {
+ if (r2.rectCount() == 1) {
if (r1 + r2.boundingRect() != expected) {
qDebug() << "r1 + QRect(r2)" << (r1 + r2.boundingRect());
qDebug() << "expected" << expected;
@@ -567,7 +567,7 @@ void tst_QRegion::operator_plus()
qDebug() << "expected" << expected;
}
QCOMPARE(r2 + r1, expected);
- if (r1.numRects() == 1) {
+ if (r1.rectCount() == 1) {
if (r1 + r2.boundingRect() != expected) {
qDebug() << "r2 + QRect(r1)" << (r2 + r1.boundingRect());
qDebug() << "expected" << expected;
@@ -582,7 +582,7 @@ void tst_QRegion::operator_plus()
qDebug() << "expected" << expected;
}
QCOMPARE(result1, expected);
- if (r2.numRects() == 1) {
+ if (r2.rectCount() == 1) {
result1 = r1;
result1 += r2.boundingRect();
if (result1 != expected) {
@@ -599,7 +599,7 @@ void tst_QRegion::operator_plus()
qDebug() << "expected" << expected;
}
QCOMPARE(result2, expected);
- if (r1.numRects() == 1) {
+ if (r1.rectCount() == 1) {
result2 = r2;
result2 += r1.boundingRect();
if (result2 != expected) {
@@ -802,7 +802,7 @@ void tst_QRegion::operator_xor()
QCOMPARE(dest, expected);
}
-void tst_QRegion::numRects_data()
+void tst_QRegion::rectCount_data()
{
QTest::addColumn<QRegion>("region");
QTest::addColumn<int>("expected");
@@ -818,12 +818,12 @@ void tst_QRegion::numRects_data()
QTest::newRow("2 rects") << dest << rects.size();
}
-void tst_QRegion::numRects()
+void tst_QRegion::rectCount()
{
QFETCH(QRegion, region);
QFETCH(int, expected);
- QCOMPARE(region.numRects(), expected);
+ QCOMPARE(region.rectCount(), expected);
}
void tst_QRegion::isEmpty_data()
@@ -850,7 +850,7 @@ void tst_QRegion::isEmpty()
QVERIFY(region.isEmpty());
QCOMPARE(region, QRegion());
- QCOMPARE(region.numRects(), 0);
+ QCOMPARE(region.rectCount(), 0);
QCOMPARE(region.boundingRect(), QRect());
QVERIFY(region.rects().isEmpty());
}
diff --git a/tests/auto/qscopedpointer/tst_qscopedpointer.cpp b/tests/auto/qscopedpointer/tst_qscopedpointer.cpp
index aeead15..b99760e 100644
--- a/tests/auto/qscopedpointer/tst_qscopedpointer.cpp
+++ b/tests/auto/qscopedpointer/tst_qscopedpointer.cpp
@@ -313,30 +313,128 @@ void tst_QScopedPointer::objectSize()
QCOMPARE(sizeof(QScopedPointer<int>), sizeof(void *));
}
-void tst_QScopedPointer::comparison()
+struct RefCounted
{
- int *a = new int(42);
- int *b = new int(43);
+ RefCounted()
+ : ref(0)
+ {
+ instanceCount.ref();
+ }
+
+ RefCounted(RefCounted const &)
+ : ref(0)
+ {
+ instanceCount.ref();
+ }
+
+ ~RefCounted()
+ {
+ QVERIFY( ref == 0 );
+ instanceCount.deref();
+ }
+
+ RefCounted &operator=(RefCounted const &)
+ {
+ return *this;
+ }
- QScopedPointer<int> pa(a);
- QScopedPointer<int> pa2(a);
- QScopedPointer<int> pb(b);
+ QAtomicInt ref;
+ static QAtomicInt instanceCount;
+};
+
+QAtomicInt RefCounted::instanceCount = 0;
+
+template <class A1, class A2, class B>
+void scopedPointerComparisonTest(const A1 &a1, const A2 &a2, const B &b)
+{
// test equality on equal pointers
- QVERIFY(pa == pa2);
- QVERIFY(pa2 == pa);
+ QVERIFY(a1 == a2);
+ QVERIFY(a2 == a1);
+
+ // test inequality on equal pointers
+ QVERIFY(!(a1 != a2));
+ QVERIFY(!(a2 != a1));
+
+ // test equality on unequal pointers
+ QVERIFY(!(a1 == b));
+ QVERIFY(!(a2 == b));
+ QVERIFY(!(b == a1));
+ QVERIFY(!(b == a2));
+
+ // test inequality on unequal pointers
+ QVERIFY(b != a1);
+ QVERIFY(b != a2);
+ QVERIFY(a1 != b);
+ QVERIFY(a2 != b);
+}
+
+void tst_QScopedPointer::comparison()
+{
+ QCOMPARE( int(RefCounted::instanceCount), 0 );
+
+ {
+ RefCounted *a = new RefCounted;
+ RefCounted *b = new RefCounted;
+
+ QCOMPARE( int(RefCounted::instanceCount), 2 );
- // test unequality on equal pointers
- QVERIFY(!(pa != pa2));
- QVERIFY(!(pa2 != pa));
+ QScopedPointer<RefCounted> pa1(a);
+ QScopedPointer<RefCounted> pa2(a);
+ QScopedPointer<RefCounted> pb(b);
- // test on unequal pointers
- QVERIFY(!(pa == pb));
- QVERIFY(!(pb == pa));
- QVERIFY(pb != pa);
- QVERIFY(pa != pb);
+ scopedPointerComparisonTest(pa1, pa1, pb);
+ scopedPointerComparisonTest(pa2, pa2, pb);
+ scopedPointerComparisonTest(pa1, pa2, pb);
+
+ pa2.take();
+
+ QCOMPARE( int(RefCounted::instanceCount), 2 );
+ }
+
+ QCOMPARE( int(RefCounted::instanceCount), 0 );
+
+ {
+ RefCounted *a = new RefCounted[42];
+ RefCounted *b = new RefCounted[43];
+
+ QCOMPARE( int(RefCounted::instanceCount), 85 );
+
+ QScopedArrayPointer<RefCounted> pa1(a);
+ QScopedArrayPointer<RefCounted> pa2(a);
+ QScopedArrayPointer<RefCounted> pb(b);
+
+ scopedPointerComparisonTest(pa1, pa2, pb);
+
+ pa2.take();
+
+ QCOMPARE( int(RefCounted::instanceCount), 85 );
+ }
+
+ QCOMPARE( int(RefCounted::instanceCount), 0 );
+
+ {
+ // QScopedSharedPointer is an internal helper class -- it is unsupported!
+
+ RefCounted *a = new RefCounted;
+ RefCounted *b = new RefCounted;
+
+ QCOMPARE( int(RefCounted::instanceCount), 2 );
+
+ QSharedDataPointer<RefCounted> pa1(a);
+ QSharedDataPointer<RefCounted> pa2(a);
+ QSharedDataPointer<RefCounted> pb(b);
+
+ QCOMPARE( int(a->ref), 2 );
+ QCOMPARE( int(b->ref), 1 );
+ QCOMPARE( int(RefCounted::instanceCount), 2 );
+
+ scopedPointerComparisonTest(pa1, pa2, pb);
+
+ QCOMPARE( int(RefCounted::instanceCount), 2 );
+ }
- pa2.take();
+ QCOMPARE( int(RefCounted::instanceCount), 0 );
}
QTEST_MAIN(tst_QScopedPointer)
diff --git a/tests/auto/qscriptengine/tst_qscriptengine.cpp b/tests/auto/qscriptengine/tst_qscriptengine.cpp
index 804534f..8eaad78 100644
--- a/tests/auto/qscriptengine/tst_qscriptengine.cpp
+++ b/tests/auto/qscriptengine/tst_qscriptengine.cpp
@@ -4485,7 +4485,7 @@ void tst_QScriptEngine::qRegExpInport()
QScriptValue result = func.call(QScriptValue(), QScriptValueList() << string << rexp);
rx.indexIn(string);
- for (int i = 0; i <= rx.numCaptures(); i++) {
+ for (int i = 0; i <= rx.captureCount(); i++) {
QCOMPARE(result.property(i).toString(), rx.cap(i));
}
}
diff --git a/tests/auto/qtextdocument/tst_qtextdocument.cpp b/tests/auto/qtextdocument/tst_qtextdocument.cpp
index 5237438..1d54409 100644
--- a/tests/auto/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/qtextdocument/tst_qtextdocument.cpp
@@ -1721,21 +1721,21 @@ void tst_QTextDocument::capitalizationHtmlInExport()
const QString smallcaps = doc->toHtml();
QVERIFY(re.exactMatch(doc->toHtml()));
- QCOMPARE(re.numCaptures(), 1);
+ QCOMPARE(re.captureCount(), 1);
QCOMPARE(re.cap(1).trimmed(), QString("font-variant:small-caps;"));
cf.setFontCapitalization(QFont::AllUppercase);
cursor.mergeCharFormat(cf);
const QString uppercase = doc->toHtml();
QVERIFY(re.exactMatch(doc->toHtml()));
- QCOMPARE(re.numCaptures(), 1);
+ QCOMPARE(re.captureCount(), 1);
QCOMPARE(re.cap(1).trimmed(), QString("text-transform:uppercase;"));
cf.setFontCapitalization(QFont::AllLowercase);
cursor.mergeCharFormat(cf);
const QString lowercase = doc->toHtml();
QVERIFY(re.exactMatch(doc->toHtml()));
- QCOMPARE(re.numCaptures(), 1);
+ QCOMPARE(re.captureCount(), 1);
QCOMPARE(re.cap(1).trimmed(), QString("text-transform:lowercase;"));
doc->setHtml(smallcaps);
@@ -1761,14 +1761,14 @@ void tst_QTextDocument::wordspacingHtmlExport()
cursor.mergeCharFormat(cf);
QVERIFY(re.exactMatch(doc->toHtml()));
- QCOMPARE(re.numCaptures(), 1);
+ QCOMPARE(re.captureCount(), 1);
QCOMPARE(re.cap(1).trimmed(), QString("word-spacing:4px;"));
cf.setFontWordSpacing(-8.5);
cursor.mergeCharFormat(cf);
QVERIFY(re.exactMatch(doc->toHtml()));
- QCOMPARE(re.numCaptures(), 1);
+ QCOMPARE(re.captureCount(), 1);
QCOMPARE(re.cap(1).trimmed(), QString("word-spacing:-8.5px;"));
}
diff --git a/tests/benchmarks/qnetworkreply/tst_qnetworkreply.cpp b/tests/benchmarks/qnetworkreply/tst_qnetworkreply.cpp
index 993db52..1d50013 100644
--- a/tests/benchmarks/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/benchmarks/qnetworkreply/tst_qnetworkreply.cpp
@@ -46,11 +46,397 @@
#include <QtNetwork/qnetworkreply.h>
#include <QtNetwork/qnetworkrequest.h>
#include <QtNetwork/qnetworkaccessmanager.h>
+#include <QtNetwork/qtcpsocket.h>
+#include <QtNetwork/qtcpserver.h>
#include "../../auto/network-settings.h"
+
+class TimedSender: public QThread
+{
+ Q_OBJECT
+ qint64 totalBytes;
+ QSemaphore ready;
+ QByteArray dataToSend;
+ QTcpSocket *client;
+ int timeout;
+ int port;
+public:
+ int transferRate;
+ TimedSender(int ms)
+ : totalBytes(0), timeout(ms), port(-1), transferRate(-1)
+ {
+ dataToSend = QByteArray(16*1024, '@');
+ start();
+ ready.acquire();
+ }
+
+ inline int serverPort() const { return port; }
+
+private slots:
+ void writeMore()
+ {
+ while (client->bytesToWrite() < 128 * 1024) {
+ writePacket(dataToSend);
+ }
+ }
+
+protected:
+ void run()
+ {
+ QTcpServer server;
+ server.listen();
+ port = server.serverPort();
+ ready.release();
+
+ server.waitForNewConnection(-1);
+ client = server.nextPendingConnection();
+
+ writeMore();
+ connect(client, SIGNAL(bytesWritten(qint64)), SLOT(writeMore()), Qt::DirectConnection);
+
+ QEventLoop eventLoop;
+ QTimer::singleShot(timeout, &eventLoop, SLOT(quit()));
+
+ QTime timer;
+ timer.start();
+ eventLoop.exec();
+ disconnect(client, SIGNAL(bytesWritten(qint64)), this, 0);
+
+ // wait for the connection to shut down
+ client->disconnectFromHost();
+ if (!client->waitForDisconnected(10000))
+ return;
+
+ transferRate = totalBytes * 1000 / timer.elapsed();
+ qDebug() << "TimedSender::run" << "receive rate:" << (transferRate / 1024) << "kB/s in"
+ << timer.elapsed() << "ms";
+ }
+
+ void writePacket(const QByteArray &array)
+ {
+ client->write(array);
+ totalBytes += array.size();
+ }
+};
+
+
+class QNetworkReplyPtr: public QSharedPointer<QNetworkReply>
+{
+public:
+ inline QNetworkReplyPtr(QNetworkReply *ptr = 0)
+ : QSharedPointer<QNetworkReply>(ptr)
+ { }
+
+ inline operator QNetworkReply *() const { return data(); }
+};
+
+
+class DataReader: public QObject
+{
+ Q_OBJECT
+public:
+ qint64 totalBytes;
+ QByteArray data;
+ QIODevice *device;
+ bool accumulate;
+ DataReader(QIODevice *dev, bool acc = true) : totalBytes(0), device(dev), accumulate(acc)
+ {
+ connect(device, SIGNAL(readyRead()), SLOT(doRead()));
+ }
+
+public slots:
+ void doRead()
+ {
+ QByteArray buffer;
+ buffer.resize(device->bytesAvailable());
+ qint64 bytesRead = device->read(buffer.data(), device->bytesAvailable());
+ if (bytesRead == -1) {
+ QTestEventLoop::instance().exitLoop();
+ return;
+ }
+ buffer.truncate(bytesRead);
+ totalBytes += bytesRead;
+
+ if (accumulate)
+ data += buffer;
+ }
+};
+
+class ThreadedDataReader: public QThread
+{
+ Q_OBJECT
+ // used to make the constructor only return after the tcp server started listening
+ QSemaphore ready;
+ QTcpSocket *client;
+ int timeout;
+ int port;
+public:
+ qint64 transferRate;
+ ThreadedDataReader()
+ : port(-1), transferRate(-1)
+ {
+ start();
+ ready.acquire();
+ }
+
+ inline int serverPort() const { return port; }
+
+protected:
+ void run()
+ {
+ QTcpServer server;
+ server.listen();
+ port = server.serverPort();
+ ready.release();
+
+ server.waitForNewConnection(-1);
+ client = server.nextPendingConnection();
+
+ QEventLoop eventLoop;
+ DataReader reader(client, false);
+ QObject::connect(client, SIGNAL(disconnected()), &eventLoop, SLOT(quit()));
+
+ QTime timer;
+ timer.start();
+ eventLoop.exec();
+ qint64 elapsed = timer.elapsed();
+
+ transferRate = reader.totalBytes * 1000 / elapsed;
+ qDebug() << "ThreadedDataReader::run" << "send rate:" << (transferRate / 1024) << "kB/s in" << elapsed << "msec";
+ }
+};
+
+class DataGenerator: public QIODevice
+{
+ Q_OBJECT
+ enum { Idle, Started, Stopped } state;
+public:
+ DataGenerator() : state(Idle)
+ { open(ReadOnly); }
+
+ virtual bool isSequential() const { return true; }
+ virtual qint64 bytesAvailable() const { return state == Started ? 1024*1024 : 0; }
+
+public slots:
+ void start() { state = Started; emit readyRead(); }
+ void stop() { state = Stopped; emit readyRead(); }
+
+protected:
+ virtual qint64 readData(char *data, qint64 maxlen)
+ {
+ if (state == Stopped)
+ return -1; // EOF
+
+ // return as many bytes as are wanted
+ memset(data, '@', maxlen);
+ return maxlen;
+ }
+ virtual qint64 writeData(const char *, qint64)
+ { return -1; }
+};
+
+class ThreadedDataReaderHttpServer: public QThread
+{
+ Q_OBJECT
+ // used to make the constructor only return after the tcp server started listening
+ QSemaphore ready;
+ QTcpSocket *client;
+ int timeout;
+ int port;
+public:
+ qint64 transferRate;
+ ThreadedDataReaderHttpServer()
+ : port(-1), transferRate(-1)
+ {
+ start();
+ ready.acquire();
+ }
+
+ inline int serverPort() const { return port; }
+
+protected:
+ void run()
+ {
+ QTcpServer server;
+ server.listen();
+ port = server.serverPort();
+ ready.release();
+
+ server.waitForNewConnection(-1);
+ client = server.nextPendingConnection();
+ client->write("HTTP/1.0 200 OK\r\n");
+ client->write("Content-length: 0\r\n");
+ client->write("\r\n");
+ client->flush();
+
+ QCoreApplication::processEvents();
+
+ QEventLoop eventLoop;
+ DataReader reader(client, false);
+ QObject::connect(client, SIGNAL(disconnected()), &eventLoop, SLOT(quit()));
+
+ QTime timer;
+ timer.start();
+ eventLoop.exec();
+ qint64 elapsed = timer.elapsed();
+
+ transferRate = reader.totalBytes * 1000 / elapsed;
+ qDebug() << "ThreadedDataReaderHttpServer::run" << "send rate:" << (transferRate / 1024) << "kB/s in" << elapsed << "msec";
+ }
+};
+
+
+class FixedSizeDataGenerator : public QIODevice
+{
+ Q_OBJECT
+ enum { Idle, Started, Stopped } state;
+public:
+ FixedSizeDataGenerator(qint64 size) : state(Idle)
+ { open(ReadOnly | Unbuffered);
+ toBeGeneratedTotalCount = toBeGeneratedCount = size;
+ }
+
+ virtual qint64 bytesAvailable() const
+ {
+ return state == Started ? toBeGeneratedCount + QIODevice::bytesAvailable() : 0;
+ }
+
+ virtual bool isSequential() const{
+ return false;
+ }
+
+ virtual bool reset() const{
+ return false;
+ }
+
+ qint64 size() const {
+ return toBeGeneratedTotalCount;
+ }
+
+public slots:
+ void start() { state = Started; emit readyRead(); }
+
+protected:
+ virtual qint64 readData(char *data, qint64 maxlen)
+ {
+ memset(data, '@', maxlen);
+
+ if (toBeGeneratedCount <= 0) {
+ return -1;
+ }
+
+ qint64 n = qMin(maxlen, toBeGeneratedCount);
+ toBeGeneratedCount -= n;
+
+ if (toBeGeneratedCount <= 0) {
+ // make sure this is a queued connection!
+ emit readChannelFinished();
+ }
+
+ return n;
+ }
+ virtual qint64 writeData(const char *, qint64)
+ { return -1; }
+
+ qint64 toBeGeneratedCount;
+ qint64 toBeGeneratedTotalCount;
+};
+
+class HttpDownloadPerformanceServer : QObject {
+ Q_OBJECT;
+ qint64 dataSize;
+ qint64 dataSent;
+ QTcpServer server;
+ QTcpSocket *client;
+ bool serverSendsContentLength;
+ bool chunkedEncoding;
+
+public:
+ HttpDownloadPerformanceServer (qint64 ds, bool sscl, bool ce) : dataSize(ds), dataSent(0),
+ client(0), serverSendsContentLength(sscl), chunkedEncoding(ce) {
+ server.listen();
+ connect(&server, SIGNAL(newConnection()), this, SLOT(newConnectionSlot()));
+ }
+
+ int serverPort() {
+ return server.serverPort();
+ }
+
+public slots:
+
+ void newConnectionSlot() {
+ client = server.nextPendingConnection();
+ client->setParent(this);
+ connect(client, SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
+ connect(client, SIGNAL(bytesWritten(qint64)), this, SLOT(bytesWrittenSlot(qint64)));
+ }
+
+ void readyReadSlot() {
+ client->readAll();
+ client->write("HTTP/1.0 200 OK\n");
+ if (serverSendsContentLength)
+ client->write(QString("Content-Length: " + QString::number(dataSize) + "\n").toAscii());
+ if (chunkedEncoding)
+ client->write(QString("Transfer-Encoding: chunked\n").toAscii());
+ client->write("Connection: close\n\n");
+ }
+
+ void bytesWrittenSlot(qint64 amount) {
+ Q_UNUSED(amount);
+ if (dataSent == dataSize && client) {
+ // close eventually
+
+ // chunked encoding: we have to send a last "empty" chunk
+ if (chunkedEncoding)
+ client->write(QString("0\r\n\r\n").toAscii());
+
+ client->disconnectFromHost();
+ server.close();
+ client = 0;
+ return;
+ }
+
+ // send data
+ if (client && client->bytesToWrite() < 100*1024 && dataSent < dataSize) {
+ qint64 amount = qMin(qint64(16*1024), dataSize - dataSent);
+ QByteArray data(amount, '@');
+
+ if (chunkedEncoding) {
+ client->write(QString(QString("%1").arg(amount,0,16).toUpper() + "\r\n").toAscii());
+ client->write(data.constData(), amount);
+ client->write(QString("\r\n").toAscii());
+ } else {
+ client->write(data.constData(), amount);
+ }
+
+ dataSent += amount;
+ }
+ }
+};
+
+class HttpDownloadPerformanceClient : QObject {
+ Q_OBJECT;
+ QIODevice *device;
+ public:
+ HttpDownloadPerformanceClient (QIODevice *dev) : device(dev){
+ connect(dev, SIGNAL(readyRead()), this, SLOT(readyReadSlot()));
+ }
+
+ public slots:
+ void readyReadSlot() {
+ device->readAll();
+ }
+
+};
+
+
+
+
class tst_qnetworkreply : public QObject
{
Q_OBJECT
+
+ QNetworkAccessManager manager;
private slots:
void httpLatency();
@@ -58,6 +444,14 @@ private slots:
void echoPerformance_data();
void echoPerformance();
#endif
+
+ void downloadPerformance();
+ void uploadPerformance();
+ void performanceControlRate();
+ void httpUploadPerformance();
+ void httpDownloadPerformance_data();
+ void httpDownloadPerformance();
+
};
void tst_qnetworkreply::httpLatency()
@@ -107,6 +501,142 @@ void tst_qnetworkreply::echoPerformance()
}
#endif
+void tst_qnetworkreply::downloadPerformance()
+{
+ // unlike the above function, this one tries to send as fast as possible
+ // and measures how fast it was.
+ TimedSender sender(5000);
+ QNetworkRequest request("debugpipe://127.0.0.1:" + QString::number(sender.serverPort()) + "/?bare=1");
+ QNetworkReplyPtr reply = manager.get(request);
+ DataReader reader(reply, false);
+
+ QTime loopTime;
+ connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ loopTime.start();
+ QTestEventLoop::instance().enterLoop(40);
+ int elapsedTime = loopTime.elapsed();
+ sender.wait();
+
+ qint64 receivedBytes = reader.totalBytes;
+ qDebug() << "tst_QNetworkReply::downloadPerformance" << "receive rate:" << (receivedBytes * 1000 / elapsedTime / 1024) << "kB/s and"
+ << elapsedTime << "ms";
+}
+
+void tst_qnetworkreply::uploadPerformance()
+{
+ ThreadedDataReader reader;
+ DataGenerator generator;
+
+
+ QNetworkRequest request("debugpipe://127.0.0.1:" + QString::number(reader.serverPort()) + "/?bare=1");
+ QNetworkReplyPtr reply = manager.put(request, &generator);
+ generator.start();
+ connect(&reader, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ QTimer::singleShot(5000, &generator, SLOT(stop()));
+
+ QTestEventLoop::instance().enterLoop(30);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+}
+
+void tst_qnetworkreply::httpUploadPerformance()
+{
+#ifdef Q_OS_SYMBIAN
+ // SHow some mercy for non-desktop platform/s
+ enum {UploadSize = 4*1024*1024}; // 4 MB
+#else
+ enum {UploadSize = 128*1024*1024}; // 128 MB
+#endif
+ ThreadedDataReaderHttpServer reader;
+ FixedSizeDataGenerator generator(UploadSize);
+
+ QNetworkRequest request(QUrl("http://127.0.0.1:" + QString::number(reader.serverPort()) + "/?bare=1"));
+ request.setHeader(QNetworkRequest::ContentLengthHeader,UploadSize);
+
+ QNetworkReplyPtr reply = manager.put(request, &generator);
+
+ connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+
+ QTime time;
+ generator.start();
+ time.start();
+ QTestEventLoop::instance().enterLoop(40);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ qint64 elapsed = time.elapsed();
+ qDebug() << "tst_QNetworkReply::httpUploadPerformance" << elapsed << "msec, "
+ << ((UploadSize/1024.0)/(elapsed/1000.0)) << " kB/sec";
+
+ reader.exit();
+ reader.wait();
+}
+
+
+void tst_qnetworkreply::performanceControlRate()
+{
+ // this is a control comparison for the other two above
+ // it does the same thing, but instead bypasses the QNetworkAccess system
+ qDebug() << "The following are the maximum transfer rates that we can get in this system"
+ " (bypassing QNetworkAccess)";
+
+ TimedSender sender(5000);
+ QTcpSocket sink;
+ sink.connectToHost("127.0.0.1", sender.serverPort());
+ DataReader reader(&sink, false);
+
+ QTime loopTime;
+ connect(&sink, SIGNAL(disconnected()), &QTestEventLoop::instance(), SLOT(exitLoop()));
+ loopTime.start();
+ QTestEventLoop::instance().enterLoop(40);
+ int elapsedTime = loopTime.elapsed();
+ sender.wait();
+
+ qint64 receivedBytes = reader.totalBytes;
+ qDebug() << "tst_QNetworkReply::performanceControlRate" << "receive rate:" << (receivedBytes * 1000 / elapsedTime / 1024) << "kB/s and"
+ << elapsedTime << "ms";
+}
+
+void tst_qnetworkreply::httpDownloadPerformance_data()
+{
+ QTest::addColumn<bool>("serverSendsContentLength");
+ QTest::addColumn<bool>("chunkedEncoding");
+
+ QTest::newRow("Server sends no Content-Length") << false << false;
+ QTest::newRow("Server sends Content-Length") << true << false;
+ QTest::newRow("Server uses chunked encoding") << false << true;
+
+}
+
+void tst_qnetworkreply::httpDownloadPerformance()
+{
+ QFETCH(bool, serverSendsContentLength);
+ QFETCH(bool, chunkedEncoding);
+#ifdef Q_OS_SYMBIAN
+ // Show some mercy to non-desktop platform/s
+ enum {UploadSize = 4*1024*1024}; // 4 MB
+#else
+ enum {UploadSize = 128*1024*1024}; // 128 MB
+#endif
+ HttpDownloadPerformanceServer server(UploadSize, serverSendsContentLength, chunkedEncoding);
+
+ QNetworkRequest request(QUrl("http://127.0.0.1:" + QString::number(server.serverPort()) + "/?bare=1"));
+ QNetworkReplyPtr reply = manager.get(request);
+
+ connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop()), Qt::QueuedConnection);
+ HttpDownloadPerformanceClient client(reply);
+
+ QTime time;
+ time.start();
+ QTestEventLoop::instance().enterLoop(40);
+ QCOMPARE(reply->error(), QNetworkReply::NoError);
+ QVERIFY(!QTestEventLoop::instance().timeout());
+
+ qint64 elapsed = time.elapsed();
+ qDebug() << "tst_QNetworkReply::httpDownloadPerformance" << elapsed << "msec, "
+ << ((UploadSize/1024.0)/(elapsed/1000.0)) << " kB/sec";
+}
+
QTEST_MAIN(tst_qnetworkreply)
#include "tst_qnetworkreply.moc"
diff --git a/tests/manual/windowflags/previewwindow.cpp b/tests/manual/windowflags/previewwindow.cpp
index 78f9fcb..31e8b3e 100644
--- a/tests/manual/windowflags/previewwindow.cpp
+++ b/tests/manual/windowflags/previewwindow.cpp
@@ -103,8 +103,18 @@ PreviewWindow::PreviewWindow(QWidget *parent)
closeButton = new QPushButton(tr("&Close"));
connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
+ showNormalButton = new QPushButton(tr("Show normal"));
+ connect(showNormalButton, SIGNAL(clicked()), this, SLOT(showNormal()));
+ showMaximizedButton = new QPushButton(tr("Show maximized"));
+ connect(showMaximizedButton, SIGNAL(clicked()), this, SLOT(showMaximized()));
+ showFullScreenButton = new QPushButton(tr("Show fullscreen"));
+ connect(showFullScreenButton, SIGNAL(clicked()), this, SLOT(showFullScreen()));
+
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(textEdit);
+ layout->addWidget(showNormalButton);
+ layout->addWidget(showMaximizedButton);
+ layout->addWidget(showFullScreenButton);
layout->addWidget(closeButton);
setLayout(layout);
@@ -129,8 +139,18 @@ PreviewDialog::PreviewDialog(QWidget *parent)
closeButton = new QPushButton(tr("&Close"));
connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
+ showNormalButton = new QPushButton(tr("Show normal"));
+ connect(showNormalButton, SIGNAL(clicked()), this, SLOT(showNormal()));
+ showMaximizedButton = new QPushButton(tr("Show maximized"));
+ connect(showMaximizedButton, SIGNAL(clicked()), this, SLOT(showMaximized()));
+ showFullScreenButton = new QPushButton(tr("Show fullscreen"));
+ connect(showFullScreenButton, SIGNAL(clicked()), this, SLOT(showFullScreen()));
+
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(textEdit);
+ layout->addWidget(showNormalButton);
+ layout->addWidget(showMaximizedButton);
+ layout->addWidget(showFullScreenButton);
layout->addWidget(closeButton);
setLayout(layout);
diff --git a/tests/manual/windowflags/previewwindow.h b/tests/manual/windowflags/previewwindow.h
index fdd21d7..fbf822b 100644
--- a/tests/manual/windowflags/previewwindow.h
+++ b/tests/manual/windowflags/previewwindow.h
@@ -62,6 +62,9 @@ public:
private:
QTextEdit *textEdit;
QPushButton *closeButton;
+ QPushButton *showNormalButton;
+ QPushButton *showMaximizedButton;
+ QPushButton *showFullScreenButton;
};
class PreviewDialog : public QDialog
@@ -76,6 +79,9 @@ public:
private:
QTextEdit *textEdit;
QPushButton *closeButton;
+ QPushButton *showNormalButton;
+ QPushButton *showMaximizedButton;
+ QPushButton *showFullScreenButton;
};
#endif