summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2009-11-06 06:15:54 (GMT)
committerMartin Jones <martin.jones@nokia.com>2009-11-06 06:15:54 (GMT)
commite3d14648ebf04ef2ed8bf2a72e8cff186bcd4871 (patch)
tree4582d3f9c4d223532804c50e5016c506b553fd72
parentdc7acac9552ce556d0388a11f6c5584ea8e10ae3 (diff)
parentdc255e892d6435759921d36f59bb32050d343b70 (diff)
downloadQt-e3d14648ebf04ef2ed8bf2a72e8cff186bcd4871.zip
Qt-e3d14648ebf04ef2ed8bf2a72e8cff186bcd4871.tar.gz
Qt-e3d14648ebf04ef2ed8bf2a72e8cff186bcd4871.tar.bz2
Merge branch 'kinetic-declarativeui' of git@scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
-rw-r--r--examples/declarative/tvtennis/click.wav (renamed from examples/declarative/follow/click.wav)bin3056 -> 3056 bytes
-rw-r--r--examples/declarative/tvtennis/paddle.wav (renamed from examples/declarative/follow/paddle.wav)bin5320 -> 5320 bytes
-rw-r--r--examples/declarative/tvtennis/tvtennis.qml (renamed from examples/declarative/follow/tvtennis.qml)0
-rw-r--r--src/declarative/graphicsitems/qmlgraphicsanchors.cpp47
-rw-r--r--src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h4
-rw-r--r--tests/auto/declarative/anchors/data/crash1.qml11
-rw-r--r--tests/auto/declarative/anchors/tst_anchors.cpp15
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.0.pngbin0 -> 2778 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.1.pngbin0 -> 2778 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.2.pngbin0 -> 2767 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.3.pngbin0 -> 2784 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.4.pngbin0 -> 2786 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.5.pngbin0 -> 2785 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.qml1691
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data/follow.0.pngbin0 -> 2776 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data/follow.1.pngbin0 -> 2788 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data/follow.2.pngbin0 -> 2767 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data/follow.3.pngbin0 -> 2784 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data/follow.4.pngbin0 -> 2786 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data/follow.5.pngbin0 -> 2785 bytes
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/data/follow.qml1691
-rw-r--r--tests/auto/declarative/visual/qmlspringfollow/follow.qml (renamed from examples/declarative/follow/follow.qml)0
22 files changed, 3444 insertions, 15 deletions
diff --git a/examples/declarative/follow/click.wav b/examples/declarative/tvtennis/click.wav
index 26c46f8..26c46f8 100644
--- a/examples/declarative/follow/click.wav
+++ b/examples/declarative/tvtennis/click.wav
Binary files differ
diff --git a/examples/declarative/follow/paddle.wav b/examples/declarative/tvtennis/paddle.wav
index 604e0e5..604e0e5 100644
--- a/examples/declarative/follow/paddle.wav
+++ b/examples/declarative/tvtennis/paddle.wav
Binary files differ
diff --git a/examples/declarative/follow/tvtennis.qml b/examples/declarative/tvtennis/tvtennis.qml
index d39e913..d39e913 100644
--- a/examples/declarative/follow/tvtennis.qml
+++ b/examples/declarative/tvtennis/tvtennis.qml
diff --git a/src/declarative/graphicsitems/qmlgraphicsanchors.cpp b/src/declarative/graphicsitems/qmlgraphicsanchors.cpp
index 404daad..f6dc5fd 100644
--- a/src/declarative/graphicsitems/qmlgraphicsanchors.cpp
+++ b/src/declarative/graphicsitems/qmlgraphicsanchors.cpp
@@ -152,13 +152,23 @@ void QmlGraphicsAnchorsPrivate::fillChanged()
if (!fill || !isItemComplete())
return;
- if (fill == item->parentItem()) { //child-parent
- setItemPos(QPointF(leftMargin, topMargin));
- } else if (fill->parentItem() == item->parentItem()) { //siblings
- setItemPos(QPointF(fill->x()+leftMargin, fill->y()+topMargin));
+ if (updatingFill < 2) {
+ ++updatingFill;
+
+ if (fill == item->parentItem()) { //child-parent
+ setItemPos(QPointF(leftMargin, topMargin));
+ } else if (fill->parentItem() == item->parentItem()) { //siblings
+ setItemPos(QPointF(fill->x()+leftMargin, fill->y()+topMargin));
+ }
+ setItemWidth(fill->width()-leftMargin-rightMargin);
+ setItemHeight(fill->height()-topMargin-bottomMargin);
+
+ --updatingFill;
+ } else {
+ // ### Make this certain :)
+ qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on fill."), item);
}
- setItemWidth(fill->width()-leftMargin-rightMargin);
- setItemHeight(fill->height()-topMargin-bottomMargin);
+
}
void QmlGraphicsAnchorsPrivate::centerInChanged()
@@ -166,16 +176,25 @@ void QmlGraphicsAnchorsPrivate::centerInChanged()
if (!centerIn || fill || !isItemComplete())
return;
- if (centerIn == item->parentItem()) {
- QPointF p((item->parentItem()->width() - item->width()) / 2.,
- (item->parentItem()->height() - item->height()) / 2.);
- setItemPos(p);
+ if (updatingCenterIn < 2) {
+ ++updatingCenterIn;
- } else if (centerIn->parentItem() == item->parentItem()) {
+ if (centerIn == item->parentItem()) {
+ QPointF p((item->parentItem()->width() - item->width()) / 2.,
+ (item->parentItem()->height() - item->height()) / 2.);
+ setItemPos(p);
- QPointF p(centerIn->x() + (centerIn->width() - item->width()) / 2.,
- centerIn->y() + (centerIn->height() - item->height()) / 2.);
- setItemPos(p);
+ } else if (centerIn->parentItem() == item->parentItem()) {
+
+ QPointF p(centerIn->x() + (centerIn->width() - item->width()) / 2.,
+ centerIn->y() + (centerIn->height() - item->height()) / 2.);
+ setItemPos(p);
+ }
+
+ --updatingCenterIn;
+ } else {
+ // ### Make this certain :)
+ qmlInfo(QmlGraphicsAnchors::tr("Possible anchor loop detected on centerIn."), item);
}
}
diff --git a/src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h b/src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h
index 5f8b2c1..d21d9c5 100644
--- a/src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h
+++ b/src/declarative/graphicsitems/qmlgraphicsanchors_p_p.h
@@ -89,7 +89,7 @@ class QmlGraphicsAnchorsPrivate : public QObjectPrivate
public:
QmlGraphicsAnchorsPrivate()
: updatingMe(false), updatingHorizontalAnchor(0),
- updatingVerticalAnchor(0), item(0), usedAnchors(0), fill(0),
+ updatingVerticalAnchor(0), updatingFill(0), updatingCenterIn(0), item(0), usedAnchors(0), fill(0),
centerIn(0), leftMargin(0), rightMargin(0), topMargin(0),
bottomMargin(0), vCenterOffset(0), hCenterOffset(0), baselineOffset(0),
componentComplete(true)
@@ -109,6 +109,8 @@ public:
bool updatingMe;
int updatingHorizontalAnchor;
int updatingVerticalAnchor;
+ int updatingFill;
+ int updatingCenterIn;
void setItemHeight(qreal);
void setItemWidth(qreal);
diff --git a/tests/auto/declarative/anchors/data/crash1.qml b/tests/auto/declarative/anchors/data/crash1.qml
new file mode 100644
index 0000000..fd9dc55
--- /dev/null
+++ b/tests/auto/declarative/anchors/data/crash1.qml
@@ -0,0 +1,11 @@
+import Qt 4.6
+
+Column {
+ Text {
+ text: "foo"
+ anchors.fill: parent
+ }
+ Text {
+ text: "bar"
+ }
+}
diff --git a/tests/auto/declarative/anchors/tst_anchors.cpp b/tests/auto/declarative/anchors/tst_anchors.cpp
index c3a857c..4c85d2d 100644
--- a/tests/auto/declarative/anchors/tst_anchors.cpp
+++ b/tests/auto/declarative/anchors/tst_anchors.cpp
@@ -62,6 +62,7 @@ private slots:
void illegalSets();
void reset();
void nullItem();
+ void crash1();
};
/*
@@ -248,6 +249,20 @@ void tst_anchors::nullItem()
item->anchors()->setBottom(anchor);
}
+void tst_anchors::crash1()
+{
+ QmlView *view = new QmlView;
+
+ view->setUrl(QUrl("file://" SRCDIR "/data/crash1.qml"));
+
+ QString expect = "QML QmlGraphicsText (" + view->url().toString() + ":4:5" + ") Possible anchor loop detected on fill.";
+ QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
+ view->execute();
+ qApp->processEvents();
+
+ delete view;
+}
+
QTEST_MAIN(tst_anchors)
#include "tst_anchors.moc"
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.0.png b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.0.png
new file mode 100644
index 0000000..d753c97
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.1.png b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.1.png
new file mode 100644
index 0000000..98fc111
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.2.png b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.2.png
new file mode 100644
index 0000000..b1d109e
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.3.png b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.3.png
new file mode 100644
index 0000000..595d92e
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.4.png b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.4.png
new file mode 100644
index 0000000..93e1536
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.5.png b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.5.png
new file mode 100644
index 0000000..b27cc9f
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.qml b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.qml
new file mode 100644
index 0000000..3c0dad8
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data-MAC/follow.qml
@@ -0,0 +1,1691 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "ea677d128f47343d81a081c438aa2f6c"
+ }
+ Frame {
+ msec: 32
+ hash: "ea677d128f47343d81a081c438aa2f6c"
+ }
+ Frame {
+ msec: 48
+ hash: "403e130b7cf0a41d8348a227293d98d1"
+ }
+ Frame {
+ msec: 64
+ hash: "d2250ca93235b6a087b5e582f7e941d6"
+ }
+ Frame {
+ msec: 80
+ hash: "3e95bdb5546de8ed7bb33de704d2890e"
+ }
+ Frame {
+ msec: 96
+ hash: "438612a44780d6587f99a44c943eb60f"
+ }
+ Frame {
+ msec: 112
+ hash: "057d47c73edcd149c0b1e6274f98deae"
+ }
+ Frame {
+ msec: 128
+ hash: "c15ca80f3efb55d067e38bd92f360b14"
+ }
+ Frame {
+ msec: 144
+ hash: "9f1b15db2eb172d97eef4f7c78d11e4f"
+ }
+ Frame {
+ msec: 160
+ hash: "a81514d058846ae1c60575534ad47b21"
+ }
+ Frame {
+ msec: 176
+ hash: "48d0f3971ed369d6a82b06ca9febc435"
+ }
+ Frame {
+ msec: 192
+ hash: "8277eb954d0ca9293f3d05b979db3fe3"
+ }
+ Frame {
+ msec: 208
+ hash: "edb64bdcb13f67813fcd3cbedb608cf3"
+ }
+ Frame {
+ msec: 224
+ hash: "3a51a89e15b0709fcf6591ce4096c52d"
+ }
+ Frame {
+ msec: 240
+ hash: "ffe486e038988cea3ff2ec6b2fcc516f"
+ }
+ Frame {
+ msec: 256
+ hash: "1267aa3970ac861827e84c5da93523c7"
+ }
+ Frame {
+ msec: 272
+ hash: "c5c0d501f102876a0b06f6d100f19a77"
+ }
+ Frame {
+ msec: 288
+ hash: "b78207cb082771fc608a084c69c38399"
+ }
+ Frame {
+ msec: 304
+ hash: "86cc014a4601ddf84478c8a0f44de7ed"
+ }
+ Frame {
+ msec: 320
+ hash: "fbe34a8c894aa1c1ddb26171069c92f6"
+ }
+ Frame {
+ msec: 336
+ hash: "c916a45687baa73e1023cdb03be42669"
+ }
+ Frame {
+ msec: 352
+ hash: "1157f5c96e49fdc0afeb126453e19260"
+ }
+ Frame {
+ msec: 368
+ hash: "c7528a6f57f4241dc2f5867436c44fd9"
+ }
+ Frame {
+ msec: 384
+ hash: "054ac7e1cd4448fdd12f0175b3bdff90"
+ }
+ Frame {
+ msec: 400
+ hash: "4ccf29d6ce92332683f6b49b89357579"
+ }
+ Frame {
+ msec: 416
+ hash: "c46e42accdeba8b32bd4d6d43894c61c"
+ }
+ Frame {
+ msec: 432
+ hash: "2ab2e8d8a3d58ac1c17932b9485cbc67"
+ }
+ Frame {
+ msec: 448
+ hash: "347092c3876535e41e8368be2cd19aed"
+ }
+ Frame {
+ msec: 464
+ hash: "311b1c44074b0e55a990e971f877c898"
+ }
+ Frame {
+ msec: 480
+ hash: "198908af8468b4500fac85262eb82596"
+ }
+ Frame {
+ msec: 496
+ hash: "202c33e301ad850a888223d3abdd06e6"
+ }
+ Frame {
+ msec: 512
+ hash: "f3e0ce1386571c9e6be2656d402b4960"
+ }
+ Frame {
+ msec: 528
+ hash: "b9c900bfedc7159ee2c0b0af6e66fc92"
+ }
+ Frame {
+ msec: 544
+ hash: "f978850a8977c3c32e4ae9a43b7a3a8b"
+ }
+ Frame {
+ msec: 560
+ hash: "637e5d9580d783864134b403e49cb47b"
+ }
+ Frame {
+ msec: 576
+ hash: "8082c1e1eccb8588ebdbb739e31bda49"
+ }
+ Frame {
+ msec: 592
+ hash: "c513f544df3d94223bb4fbf06befa2d7"
+ }
+ Frame {
+ msec: 608
+ hash: "e7f589e64d3cd054349161971d4ef42e"
+ }
+ Frame {
+ msec: 624
+ hash: "bb375339d4155f13c353bc90eb9b9cbf"
+ }
+ Frame {
+ msec: 640
+ hash: "924368c60be4be048a19af942a8e402c"
+ }
+ Frame {
+ msec: 656
+ hash: "c0142a6872bf5a445302952aaa6daa0d"
+ }
+ Frame {
+ msec: 672
+ hash: "fab2a7e79b235f6432cd4c48740e3020"
+ }
+ Frame {
+ msec: 688
+ hash: "fda751a9b20100007c33669bdb6f7f23"
+ }
+ Frame {
+ msec: 704
+ hash: "d97d2d108dba9aefd36b0f6b2f160f23"
+ }
+ Frame {
+ msec: 720
+ hash: "bf3683eb4308904de61fb3fb59802e37"
+ }
+ Frame {
+ msec: 736
+ hash: "908f34ec52d59027f65c673c17077ca6"
+ }
+ Frame {
+ msec: 752
+ hash: "19ae0ec52c077eff92451c9924be2c23"
+ }
+ Frame {
+ msec: 768
+ hash: "898277481841e4c4f8992fd755784e5a"
+ }
+ Frame {
+ msec: 784
+ hash: "9613da2dcdf470561d20a982777f50f6"
+ }
+ Frame {
+ msec: 800
+ hash: "fdfc54fa3657be02c2ee65d787e8c7a5"
+ }
+ Frame {
+ msec: 816
+ hash: "1d3b6cff6e62890db90213ebab88dca3"
+ }
+ Frame {
+ msec: 832
+ hash: "713e9c0f768f6cc8cc6c78c72b41b47c"
+ }
+ Frame {
+ msec: 848
+ hash: "9068d912a8d3e6e0b5b458c12ddad126"
+ }
+ Frame {
+ msec: 864
+ hash: "e85192393e4911dbaf9c734d2e386bbf"
+ }
+ Frame {
+ msec: 880
+ hash: "4f2374e6c8763e1e5b3b7cebdf5b8ebc"
+ }
+ Frame {
+ msec: 896
+ hash: "986a32decb18065294356fb85953891e"
+ }
+ Frame {
+ msec: 912
+ hash: "faa36d337589c59761814e3065874aa3"
+ }
+ Frame {
+ msec: 928
+ hash: "9c823d92cd71932f0ad1d247fdd8c66e"
+ }
+ Frame {
+ msec: 944
+ hash: "3ebcf592e427bcbc8a92dc1bee903845"
+ }
+ Frame {
+ msec: 960
+ image: "follow.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "b1a205f75f5ab7b69f4d9bd0582d7896"
+ }
+ Frame {
+ msec: 992
+ hash: "0cf4ce09fd895a174271e3cb37c72de6"
+ }
+ Frame {
+ msec: 1008
+ hash: "e6487b45fc20afc4c1a24c8669919611"
+ }
+ Frame {
+ msec: 1024
+ hash: "fe2a4eb899611495fa5ad88b7c5f4c7e"
+ }
+ Frame {
+ msec: 1040
+ hash: "07b880170d1ba41e4d1a1277e8184089"
+ }
+ Frame {
+ msec: 1056
+ hash: "27afbfb4b961570f8844e05595b11d4f"
+ }
+ Frame {
+ msec: 1072
+ hash: "1b6cfd4c2c2c007837cfb9746f44ec20"
+ }
+ Frame {
+ msec: 1088
+ hash: "8f82c7f1cb2ded469a7cb3a0827e919e"
+ }
+ Frame {
+ msec: 1104
+ hash: "d8581781550c21bc0fa6b75fc6de3f57"
+ }
+ Frame {
+ msec: 1120
+ hash: "104a6c18b4a16732de9dba9bfb92eb5a"
+ }
+ Frame {
+ msec: 1136
+ hash: "ebbdeb2de19644aeb41c03f852d1fc15"
+ }
+ Frame {
+ msec: 1152
+ hash: "a8cc1328eb65fed5ca75d79c6e628ec1"
+ }
+ Frame {
+ msec: 1168
+ hash: "a1192d371ffd3e9f8a23abca6a8b4d98"
+ }
+ Frame {
+ msec: 1184
+ hash: "06b7749eace5d149bd35f668c4df9811"
+ }
+ Frame {
+ msec: 1200
+ hash: "de1f7eb2c3224754a75d0a953ee24a76"
+ }
+ Frame {
+ msec: 1216
+ hash: "1bc3c2cf2058ab5f8d491ad35605c6d7"
+ }
+ Frame {
+ msec: 1232
+ hash: "4c2b7e3f7cad28a424f3fdb574d732b6"
+ }
+ Frame {
+ msec: 1248
+ hash: "ebb9c07b34f4acd9ee2652324c81e5d1"
+ }
+ Frame {
+ msec: 1264
+ hash: "fef63629bdae6f1d744633916c6b0852"
+ }
+ Frame {
+ msec: 1280
+ hash: "aacb966d803ed6986db40e51d2a63dff"
+ }
+ Frame {
+ msec: 1296
+ hash: "796bb7137a909d524b1cec022c1be6ea"
+ }
+ Frame {
+ msec: 1312
+ hash: "d88526b472d9ba58b93f868a150154f3"
+ }
+ Frame {
+ msec: 1328
+ hash: "d6a24e9f446565c0d0d0bf25db80e88e"
+ }
+ Frame {
+ msec: 1344
+ hash: "08902af1f5ba7566f2fef79200ac0362"
+ }
+ Frame {
+ msec: 1360
+ hash: "b655edf8bd25f5e05fcb1cce64aaad89"
+ }
+ Frame {
+ msec: 1376
+ hash: "5f526a0e92c1846ca7099c5640208dd0"
+ }
+ Frame {
+ msec: 1392
+ hash: "c354f31e4e75d6ccf4c284113c54377b"
+ }
+ Frame {
+ msec: 1408
+ hash: "2f8143ead16b7c65c8f43469754c09dd"
+ }
+ Frame {
+ msec: 1424
+ hash: "b486f4056d300e22860fa995b6f09f92"
+ }
+ Frame {
+ msec: 1440
+ hash: "4a24f651b8ad911b04426a07b4663a3d"
+ }
+ Frame {
+ msec: 1456
+ hash: "aad02861a66647d27ea3746d9b455e91"
+ }
+ Frame {
+ msec: 1472
+ hash: "ce4225df7a187919c91cc2dd950e11f0"
+ }
+ Frame {
+ msec: 1488
+ hash: "5479a97041b64406883100567df4b9b7"
+ }
+ Frame {
+ msec: 1504
+ hash: "76e67f9c5b552f1ff47c3c7b23eb1b76"
+ }
+ Frame {
+ msec: 1520
+ hash: "8c3e1d2fd58eaf2a8da16bb0349b1e5e"
+ }
+ Frame {
+ msec: 1536
+ hash: "4642a396f4a4bb3b97845782e1d1ce93"
+ }
+ Frame {
+ msec: 1552
+ hash: "4d3e8c9ea7c8c1407db564a3a6e430ff"
+ }
+ Frame {
+ msec: 1568
+ hash: "e041300f1d2956f35baebed6c7c9c750"
+ }
+ Frame {
+ msec: 1584
+ hash: "b20e241906a2b9e38b03c0991d21160e"
+ }
+ Frame {
+ msec: 1600
+ hash: "cb5c32ad57d1931a69c20328f8f2d060"
+ }
+ Frame {
+ msec: 1616
+ hash: "021ba4fc38e1652afeab73047e126a17"
+ }
+ Frame {
+ msec: 1632
+ hash: "d27728f36491ba432e3655850402ee6b"
+ }
+ Frame {
+ msec: 1648
+ hash: "20a87f4d9afd2039e44c2b5b539d0298"
+ }
+ Frame {
+ msec: 1664
+ hash: "46c4016acfe390495307d3d64b93902d"
+ }
+ Frame {
+ msec: 1680
+ hash: "a356b011266d901d7148e662393e5f72"
+ }
+ Frame {
+ msec: 1696
+ hash: "43b4a8e0d73ab2c6be5db2b48c3e7013"
+ }
+ Frame {
+ msec: 1712
+ hash: "b7a5bfbecabbf0f20b0e2c0959051b66"
+ }
+ Frame {
+ msec: 1728
+ hash: "8eff269aeb6f3bc540dd8cf6491d53b8"
+ }
+ Frame {
+ msec: 1744
+ hash: "9c524c30ef7cd6dbfb911ec1c75d0e32"
+ }
+ Frame {
+ msec: 1760
+ hash: "a064e420983d68f2f2baca9ea9119236"
+ }
+ Frame {
+ msec: 1776
+ hash: "99739628a95e72704e503ed6d1dea712"
+ }
+ Frame {
+ msec: 1792
+ hash: "1f0f916ed7382f10c23eb63052377fe1"
+ }
+ Frame {
+ msec: 1808
+ hash: "d99f731943018a50e8738bf638ca3b31"
+ }
+ Frame {
+ msec: 1824
+ hash: "10182c1206e73d5a59b377f5d6061bef"
+ }
+ Frame {
+ msec: 1840
+ hash: "a272abb9905b17e4bdd717db87514c11"
+ }
+ Frame {
+ msec: 1856
+ hash: "81ffae766d85d829d7e16071ac44fcc1"
+ }
+ Frame {
+ msec: 1872
+ hash: "4e2402d3eafa149d0b8ad9238c3b985d"
+ }
+ Frame {
+ msec: 1888
+ hash: "70ad42fd0824ce00181514bac4b6b0f4"
+ }
+ Frame {
+ msec: 1904
+ hash: "6d1ff46bd1606662fec47f14152bfd4a"
+ }
+ Frame {
+ msec: 1920
+ image: "follow.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "9a37d437b9476375b3a34ac293a0789a"
+ }
+ Frame {
+ msec: 1952
+ hash: "0a5fa0cd8bc22d274b00d32383ffc486"
+ }
+ Frame {
+ msec: 1968
+ hash: "1a284b36906f0adcef2ed66c0cfb5a9d"
+ }
+ Frame {
+ msec: 1984
+ hash: "049ca635405f3f88f85629f559919569"
+ }
+ Frame {
+ msec: 2000
+ hash: "d8d3d7b55f2a04dbf187d2296e8da84a"
+ }
+ Frame {
+ msec: 2016
+ hash: "57a04352e211d888d8182449b8f970e0"
+ }
+ Frame {
+ msec: 2032
+ hash: "48229fc62e5ea19c54f961d3b0bb5b26"
+ }
+ Frame {
+ msec: 2048
+ hash: "8c5d645cdbbb343789fc6ac27482b76e"
+ }
+ Frame {
+ msec: 2064
+ hash: "3c4d50a07778ae5105f2e7514bff37ca"
+ }
+ Frame {
+ msec: 2080
+ hash: "ce97d094ede43b3e74e81fa63e04dad7"
+ }
+ Frame {
+ msec: 2096
+ hash: "2b2e4e9681bbc672b51148c10b183ec8"
+ }
+ Frame {
+ msec: 2112
+ hash: "0421ac4f53c050bfffb2c8de16aafd46"
+ }
+ Frame {
+ msec: 2128
+ hash: "953bdaacefe42a841bf1cdd7da3b442a"
+ }
+ Frame {
+ msec: 2144
+ hash: "7209f7d812af5bdbca4b15f303cb5ff7"
+ }
+ Frame {
+ msec: 2160
+ hash: "3f64635e9c43b8b6a402c5d6fe26e648"
+ }
+ Frame {
+ msec: 2176
+ hash: "92926b4cf66b15cd0ddb468f2bd8bd62"
+ }
+ Frame {
+ msec: 2192
+ hash: "ee0810fe7509d2d61d9306908816bba4"
+ }
+ Frame {
+ msec: 2208
+ hash: "55249aae2bb6db6c363ecb4b89f56270"
+ }
+ Frame {
+ msec: 2224
+ hash: "73ea66c3c61e8105ac61d26c8cfdbba3"
+ }
+ Frame {
+ msec: 2240
+ hash: "f75b56ced71167a1bc1800b0d2f0f249"
+ }
+ Frame {
+ msec: 2256
+ hash: "e0d09e7a8007bfbc1efd4bd89f49847a"
+ }
+ Frame {
+ msec: 2272
+ hash: "159e98e8340375c6700015288660cbf8"
+ }
+ Frame {
+ msec: 2288
+ hash: "b7aa76fced5c78eb8e55ce9f36d081e2"
+ }
+ Frame {
+ msec: 2304
+ hash: "ac87e65a58914c1984b2dc95cf6de76d"
+ }
+ Frame {
+ msec: 2320
+ hash: "7a0131b0a9ec395a2286438625881bee"
+ }
+ Frame {
+ msec: 2336
+ hash: "84da8fd2b435b3ac9bad3350cd3a9ec0"
+ }
+ Frame {
+ msec: 2352
+ hash: "1ed376000e60129b4bcf06ea73cb5819"
+ }
+ Frame {
+ msec: 2368
+ hash: "8c713e210143ab5f19bdddd918f86ef3"
+ }
+ Frame {
+ msec: 2384
+ hash: "269b595c5691747b56be58d5b92ae497"
+ }
+ Frame {
+ msec: 2400
+ hash: "486d80316c88da4adc736df72fc86f45"
+ }
+ Frame {
+ msec: 2416
+ hash: "b67cc78a3bfcd026264cfb9b7146c4d5"
+ }
+ Frame {
+ msec: 2432
+ hash: "9d2cdecf3e9f067e68b81b202c8f62b2"
+ }
+ Frame {
+ msec: 2448
+ hash: "02748271316f8382f4788322fda807c1"
+ }
+ Frame {
+ msec: 2464
+ hash: "669986c581c162b8d3160336b92b2479"
+ }
+ Frame {
+ msec: 2480
+ hash: "5dc604aaa95f45eba0dfc7aa3a73bca4"
+ }
+ Frame {
+ msec: 2496
+ hash: "2199d6e809fc1e1879861fbbd63974e8"
+ }
+ Frame {
+ msec: 2512
+ hash: "335a5561620f779a4fd0c1f33da2fc05"
+ }
+ Frame {
+ msec: 2528
+ hash: "3e312b8de56c902ca20aba259c8559b2"
+ }
+ Frame {
+ msec: 2544
+ hash: "37634addfe0cb2efdd9d6a1a134fae1e"
+ }
+ Frame {
+ msec: 2560
+ hash: "a3cdb1d331845e268e393dd493a71613"
+ }
+ Frame {
+ msec: 2576
+ hash: "ccfb90a921e74f4e172ea1fba8c38eb5"
+ }
+ Frame {
+ msec: 2592
+ hash: "370f60a35849b7a8221f9474cbdaa201"
+ }
+ Frame {
+ msec: 2608
+ hash: "e1b8d1d7298a3d3ade82493fb6f99909"
+ }
+ Frame {
+ msec: 2624
+ hash: "e1b8d1d7298a3d3ade82493fb6f99909"
+ }
+ Frame {
+ msec: 2640
+ hash: "74ecfaced66f630d1863c04000fa7f01"
+ }
+ Frame {
+ msec: 2656
+ hash: "74ecfaced66f630d1863c04000fa7f01"
+ }
+ Frame {
+ msec: 2672
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 2688
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 2704
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 2720
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 2736
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 2752
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 2768
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 2784
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 2800
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2816
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2832
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2848
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2864
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2880
+ image: "follow.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 2912
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 2928
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 2944
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 2960
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 2976
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 2992
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3008
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3024
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3040
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3056
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3072
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3088
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3104
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3120
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3136
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3152
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3168
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3184
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3200
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3216
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3232
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3248
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3264
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3280
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3296
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3312
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3328
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 3344
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3360
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3376
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3392
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3408
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3424
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3440
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3456
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3472
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3488
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3504
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3520
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 3536
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 3552
+ hash: "60b86cce6d76291148c7c49a5eabcf55"
+ }
+ Frame {
+ msec: 3568
+ hash: "b0dadf051b5b328f56fab390a2c33052"
+ }
+ Frame {
+ msec: 3584
+ hash: "b6b75a9723b46aa072bf7c779dc84e64"
+ }
+ Frame {
+ msec: 3600
+ hash: "ef4e8b36b5afc762e1f8f714eee61240"
+ }
+ Frame {
+ msec: 3616
+ hash: "a322a2446fd3506c243766233ec9303e"
+ }
+ Frame {
+ msec: 3632
+ hash: "5723527da987b29f74502e5abd25a5f7"
+ }
+ Frame {
+ msec: 3648
+ hash: "d9f98fa248099936c6307457c935326f"
+ }
+ Frame {
+ msec: 3664
+ hash: "54224ce16b717d0accb9cca7dc5e94d3"
+ }
+ Frame {
+ msec: 3680
+ hash: "cb036f8c7e3c464d0210fca8b21b2d5f"
+ }
+ Frame {
+ msec: 3696
+ hash: "729ff15f4b129e1bd7a522007c96d49b"
+ }
+ Frame {
+ msec: 3712
+ hash: "6c3791f76fbed468ce6e23938d321874"
+ }
+ Frame {
+ msec: 3728
+ hash: "970eebc8fa4fd8d92db49450ed3474a7"
+ }
+ Frame {
+ msec: 3744
+ hash: "4c97641854bb6997fc5106d7981e4ac9"
+ }
+ Frame {
+ msec: 3760
+ hash: "adb4c29247d0bf785be36ccdf74f4293"
+ }
+ Frame {
+ msec: 3776
+ hash: "5133846ed6886846426495aba011ab6f"
+ }
+ Frame {
+ msec: 3792
+ hash: "010771e4dea5c93de852bead35fc6a1e"
+ }
+ Frame {
+ msec: 3808
+ hash: "6115a50835cbc196ae322ad2727d1b68"
+ }
+ Frame {
+ msec: 3824
+ hash: "4e37fde35f4f577c3b62881fa526e369"
+ }
+ Frame {
+ msec: 3840
+ image: "follow.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "1ea7000fd392a0799775b6783ffe332c"
+ }
+ Frame {
+ msec: 3872
+ hash: "40e69b98954b40ce8dc78d60eac882d7"
+ }
+ Frame {
+ msec: 3888
+ hash: "690b93596e7fb7c1f7de4ca81b96ce48"
+ }
+ Frame {
+ msec: 3904
+ hash: "6e8910061829e1111227a9854e18e742"
+ }
+ Frame {
+ msec: 3920
+ hash: "f6f60ef03e3f2829510c325effde9f39"
+ }
+ Frame {
+ msec: 3936
+ hash: "6c3d2d3903cd20969f8f2994f6a22592"
+ }
+ Frame {
+ msec: 3952
+ hash: "10febc71c9120a591510e123955424c1"
+ }
+ Frame {
+ msec: 3968
+ hash: "c06b52a3814791a56fc2cefa1544a693"
+ }
+ Frame {
+ msec: 3984
+ hash: "ca3a6e577490b5e88cf0c3d63bd69b76"
+ }
+ Frame {
+ msec: 4000
+ hash: "a4ebd4f687d38bd803aa61fc247e88e9"
+ }
+ Frame {
+ msec: 4016
+ hash: "099b8d7fea937bba6092a5c8ad1cc395"
+ }
+ Frame {
+ msec: 4032
+ hash: "c04384eb7d5c172a529d682ae7e916bf"
+ }
+ Frame {
+ msec: 4048
+ hash: "d0131c92bd3a2a7fa8cd83e3818370ed"
+ }
+ Frame {
+ msec: 4064
+ hash: "62e721f0344142fb7742675f644748f8"
+ }
+ Frame {
+ msec: 4080
+ hash: "5bddfcb4cb01efa0dc8603f3c4f4f553"
+ }
+ Frame {
+ msec: 4096
+ hash: "d31e44ad6cdfbd4076c66d41bb1d957e"
+ }
+ Frame {
+ msec: 4112
+ hash: "35126d01091d50a41dd073d2a5ae974a"
+ }
+ Frame {
+ msec: 4128
+ hash: "2c876aaf36e4d2a8d94bf3c3f4b934eb"
+ }
+ Frame {
+ msec: 4144
+ hash: "f75683d97c9d1f33a918c68f4651f31b"
+ }
+ Frame {
+ msec: 4160
+ hash: "f372de89a29d19b5c234f39a8ce85ed2"
+ }
+ Frame {
+ msec: 4176
+ hash: "fe2cd973de16bf92c552829d89332048"
+ }
+ Frame {
+ msec: 4192
+ hash: "bbcb60bd8b845e8fd2c885d3f42d9a91"
+ }
+ Frame {
+ msec: 4208
+ hash: "28addd32d7c28198425d41f42f1f7f38"
+ }
+ Frame {
+ msec: 4224
+ hash: "82cee6bac4d343adb86d02836728ccd7"
+ }
+ Frame {
+ msec: 4240
+ hash: "b0eeb40c5f7e7e5bb17566772686c8df"
+ }
+ Frame {
+ msec: 4256
+ hash: "e5372f9fe3dbe6b111da81de6e2088b8"
+ }
+ Frame {
+ msec: 4272
+ hash: "d6e476458ad03a13c7f14bdb2b530394"
+ }
+ Frame {
+ msec: 4288
+ hash: "4a5185a2cf033ca6f9250ab9e995dc7a"
+ }
+ Frame {
+ msec: 4304
+ hash: "6fd086e35b33ca714f31c1a50f64ccba"
+ }
+ Frame {
+ msec: 4320
+ hash: "ae8cae69a702811a897e7d5790c806cc"
+ }
+ Frame {
+ msec: 4336
+ hash: "073e2e1af434447c3000b03e3a89925a"
+ }
+ Frame {
+ msec: 4352
+ hash: "3c75c7586c1dca2fd21266395ccc8ac4"
+ }
+ Frame {
+ msec: 4368
+ hash: "aa36ac379ac9953bd165b5164cd047da"
+ }
+ Frame {
+ msec: 4384
+ hash: "09d6ab311429cfe29a68c428669b5d5a"
+ }
+ Frame {
+ msec: 4400
+ hash: "11ebcb0a744bc3faa746560d9c1a824d"
+ }
+ Frame {
+ msec: 4416
+ hash: "aa01ba99122f89bff8fc45ef88326f6a"
+ }
+ Frame {
+ msec: 4432
+ hash: "6980292ba8a4bf8ead3581e5899f5d78"
+ }
+ Frame {
+ msec: 4448
+ hash: "65fa1a0fe53b9a0580c14e96d42fe993"
+ }
+ Frame {
+ msec: 4464
+ hash: "7837c0a533839f94629be4e64294b89f"
+ }
+ Frame {
+ msec: 4480
+ hash: "5edbf632047ae4130f580e4a0ece8e57"
+ }
+ Frame {
+ msec: 4496
+ hash: "0a5fdc57898cb56f00a76ecaa3a6b9e0"
+ }
+ Frame {
+ msec: 4512
+ hash: "58d1b36e738042af44dab04a8c842259"
+ }
+ Frame {
+ msec: 4528
+ hash: "2efb1f742d7f823d13b9724c1c10ce1a"
+ }
+ Frame {
+ msec: 4544
+ hash: "e0286eb0b3fbb17e422554a8ef25489c"
+ }
+ Frame {
+ msec: 4560
+ hash: "8252caa2841f07d29802a7b822388253"
+ }
+ Frame {
+ msec: 4576
+ hash: "eaabd4b3610c0bcbbdc113f86bc52e6c"
+ }
+ Frame {
+ msec: 4592
+ hash: "55b17d049e1c791d33094f64717bca06"
+ }
+ Frame {
+ msec: 4608
+ hash: "1bd607f6d0658f46b1f0df51e8a9a9fe"
+ }
+ Frame {
+ msec: 4624
+ hash: "4a52ea4de14098978931155f11168f68"
+ }
+ Frame {
+ msec: 4640
+ hash: "343df8fb45e1e70183bb61a1111909a5"
+ }
+ Frame {
+ msec: 4656
+ hash: "bcf1363d9912a3d626ef933387b4e01b"
+ }
+ Frame {
+ msec: 4672
+ hash: "67709ea579481537e532120de35619b2"
+ }
+ Frame {
+ msec: 4688
+ hash: "a7542255a10a120812880b1243bd573d"
+ }
+ Frame {
+ msec: 4704
+ hash: "b4f3e597e489d32a473bb2ad6bb92fc4"
+ }
+ Frame {
+ msec: 4720
+ hash: "f0df46d1b819edda5a616e858ed9171c"
+ }
+ Frame {
+ msec: 4736
+ hash: "2416564198b4b853d9c4f5ad55ee5db5"
+ }
+ Frame {
+ msec: 4752
+ hash: "342e5adcd2fca99c88c33cd8b56b8650"
+ }
+ Frame {
+ msec: 4768
+ hash: "01806799adce1d0069cfdd739f383a7f"
+ }
+ Frame {
+ msec: 4784
+ hash: "c045fdefdd4606d2c68c8cde2a7a40f4"
+ }
+ Frame {
+ msec: 4800
+ image: "follow.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "c7371c0594fb9f4de0a7f8a3cdce061a"
+ }
+ Frame {
+ msec: 4832
+ hash: "6df0c2a27c672e36a3d7eb5b4e0c46bf"
+ }
+ Frame {
+ msec: 4848
+ hash: "97fa050a5790b1f722d25dbee9efba95"
+ }
+ Frame {
+ msec: 4864
+ hash: "85c26ed45e79793fc5b7521a8157d3a2"
+ }
+ Frame {
+ msec: 4880
+ hash: "9ff5d272ec8deed3e70164b78bc425c6"
+ }
+ Frame {
+ msec: 4896
+ hash: "d1e3f6d51d6b8e96261b902e6f88576d"
+ }
+ Frame {
+ msec: 4912
+ hash: "02c12e50ed6b7111f301e142a2fbc5db"
+ }
+ Frame {
+ msec: 4928
+ hash: "5177873aa73342ada32d7ebfe3f26e0e"
+ }
+ Frame {
+ msec: 4944
+ hash: "05d0364f67f317ee617f1a64d9543fe2"
+ }
+ Frame {
+ msec: 4960
+ hash: "20e50922d7763c7572776fc98d0e007b"
+ }
+ Frame {
+ msec: 4976
+ hash: "f449eb14e0c0e08a79a220cb13551c4f"
+ }
+ Frame {
+ msec: 4992
+ hash: "defe5fa356688a25ed2b8174d9baf2ce"
+ }
+ Frame {
+ msec: 5008
+ hash: "f1697f95d67a0a15088c3f934dfc466f"
+ }
+ Frame {
+ msec: 5024
+ hash: "7a962dad8227d367b4af7dee6ea09c20"
+ }
+ Frame {
+ msec: 5040
+ hash: "49a806b0bee9e3145395fb68cb85dbaf"
+ }
+ Frame {
+ msec: 5056
+ hash: "d0e4ffd3e12dd4b8e5553e613119ef86"
+ }
+ Frame {
+ msec: 5072
+ hash: "41270d843d00eaabf2f95f051541013e"
+ }
+ Frame {
+ msec: 5088
+ hash: "e8fd158c923d389a2d87db0023522934"
+ }
+ Frame {
+ msec: 5104
+ hash: "9cfa7783d37010c10271d680d205ebc4"
+ }
+ Frame {
+ msec: 5120
+ hash: "5e81c936f9627cf537f96a1674c920be"
+ }
+ Frame {
+ msec: 5136
+ hash: "28679a61a44bf0d81d6a93d8ea301b97"
+ }
+ Frame {
+ msec: 5152
+ hash: "ef41d71b99f078abe8a2a8326ed236c9"
+ }
+ Frame {
+ msec: 5168
+ hash: "b0c77c16e9d13360992d3781d389a773"
+ }
+ Frame {
+ msec: 5184
+ hash: "fe053081bc92e2a16322e6839749c49c"
+ }
+ Frame {
+ msec: 5200
+ hash: "fdde556b8d7b31510b9b07686e3bf81f"
+ }
+ Frame {
+ msec: 5216
+ hash: "f3f9c7ad55f4cabdcc9ff4a515163523"
+ }
+ Frame {
+ msec: 5232
+ hash: "8ae1b429bcb1d7698efaca4abbe91d3f"
+ }
+ Frame {
+ msec: 5248
+ hash: "c741a05290271260b8b916faa480e3aa"
+ }
+ Frame {
+ msec: 5264
+ hash: "eebc4a70e557084577fb93f4b71da41c"
+ }
+ Frame {
+ msec: 5280
+ hash: "4926f2fa2728d80f0799e67f06ae8be3"
+ }
+ Frame {
+ msec: 5296
+ hash: "cf8ea67beade2f31d6ddd257578ef191"
+ }
+ Frame {
+ msec: 5312
+ hash: "d041cad9a659449da739470ce03d6152"
+ }
+ Frame {
+ msec: 5328
+ hash: "eae75c3364a13697c79aec42c221181d"
+ }
+ Frame {
+ msec: 5344
+ hash: "2db70310d6a3b4900e749975e52d5f78"
+ }
+ Frame {
+ msec: 5360
+ hash: "609838796118ab89566fe2fe664dfcb4"
+ }
+ Frame {
+ msec: 5376
+ hash: "ae66ff91af5924e99231a811d0d00549"
+ }
+ Frame {
+ msec: 5392
+ hash: "2b5ba8d8c340a92d4d6ef76dbd88c4b8"
+ }
+ Frame {
+ msec: 5408
+ hash: "6b4ce7512194d65b7c8679822cb58274"
+ }
+ Frame {
+ msec: 5424
+ hash: "36a58e3b3a057969c8a6b1ba4e704ec7"
+ }
+ Frame {
+ msec: 5440
+ hash: "a2164ae8f60b27534392077358e057e2"
+ }
+ Frame {
+ msec: 5456
+ hash: "9ceb838f32b76cc267283ef829a64f95"
+ }
+ Frame {
+ msec: 5472
+ hash: "a372e42839d42e9f7dac83ae3b845be4"
+ }
+ Frame {
+ msec: 5488
+ hash: "9e1226a6cb6585694a0b44b356f0b6d2"
+ }
+ Frame {
+ msec: 5504
+ hash: "7bdfe1d332fdd3b8b241a3fb9dafa584"
+ }
+ Frame {
+ msec: 5520
+ hash: "e7f3ef39c35f7bca75ae049a25790509"
+ }
+ Frame {
+ msec: 5536
+ hash: "5bfcd4c96095d66825df5d94f8936659"
+ }
+ Frame {
+ msec: 5552
+ hash: "d47fc61cedde2748d1c35d65c4278ce9"
+ }
+ Frame {
+ msec: 5568
+ hash: "ee86ff1ea3a447ebf749a5b31ff147c9"
+ }
+ Frame {
+ msec: 5584
+ hash: "05a3b141e33596e88ff3a6a3e09b13b9"
+ }
+ Frame {
+ msec: 5600
+ hash: "2294c4c9f84c4398918524c41fe08317"
+ }
+ Frame {
+ msec: 5616
+ hash: "2e19dc61944aa7671ac18303949e1c9e"
+ }
+ Frame {
+ msec: 5632
+ hash: "37b4864ed528a3be221d7abb4106ec3a"
+ }
+ Frame {
+ msec: 5648
+ hash: "c2bf99e089bc984abea63b8b43270859"
+ }
+ Frame {
+ msec: 5664
+ hash: "c2bf99e089bc984abea63b8b43270859"
+ }
+ Frame {
+ msec: 5680
+ hash: "d8de63e15f1f6e9c0cf0dd43afa03c42"
+ }
+ Frame {
+ msec: 5696
+ hash: "3643a50c30b6d6f9b724155e49db7276"
+ }
+ Frame {
+ msec: 5712
+ hash: "582e871460fe3056f7f3df97d5939d69"
+ }
+ Frame {
+ msec: 5728
+ hash: "e46da1072974efc1c4df89d9c6243609"
+ }
+ Frame {
+ msec: 5744
+ hash: "705ac82bb7a03eb5843aae7292739851"
+ }
+ Frame {
+ msec: 5760
+ image: "follow.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "b2949af515524933f740057cae6d8c40"
+ }
+ Frame {
+ msec: 5792
+ hash: "72a3526dbfeb42935a737f7876c86499"
+ }
+ Frame {
+ msec: 5808
+ hash: "43907b91dec1412d0e6c8b53cec8e06f"
+ }
+ Frame {
+ msec: 5824
+ hash: "66db45ca42d42e8a6eb279b892493af9"
+ }
+ Frame {
+ msec: 5840
+ hash: "1f2d69898b90d344f337ac37a000e797"
+ }
+ Frame {
+ msec: 5856
+ hash: "9c09edc9541d69e7565ef05fbe58fadf"
+ }
+ Frame {
+ msec: 5872
+ hash: "0d68b6d05150981eff443cd7437b3d95"
+ }
+ Frame {
+ msec: 5888
+ hash: "85558e393a1e0483ba27844cf409af47"
+ }
+ Frame {
+ msec: 5904
+ hash: "83a73b6b3eb1052a9b1a12fb78326b26"
+ }
+ Frame {
+ msec: 5920
+ hash: "4839882ecc497916b4ac964a5cc71d1b"
+ }
+ Frame {
+ msec: 5936
+ hash: "28d6f5066f186a0d9ab7f4781374d3eb"
+ }
+ Frame {
+ msec: 5952
+ hash: "d89148926c6dd636de953a55082e50f1"
+ }
+ Frame {
+ msec: 5968
+ hash: "dbab902e252561849dba5551fc8f07d3"
+ }
+ Frame {
+ msec: 5984
+ hash: "84a3a891fbbb1a0fca24324a3ea10c6a"
+ }
+ Frame {
+ msec: 6000
+ hash: "64563bb68129f527b1c33c0d9a543f09"
+ }
+ Frame {
+ msec: 6016
+ hash: "64563bb68129f527b1c33c0d9a543f09"
+ }
+ Frame {
+ msec: 6032
+ hash: "7f3ae8ac99bf202414b03e9b33473044"
+ }
+ Frame {
+ msec: 6048
+ hash: "7f3ae8ac99bf202414b03e9b33473044"
+ }
+ Frame {
+ msec: 6064
+ hash: "7fbdf6396050da5b8945f1111c2ca973"
+ }
+ Frame {
+ msec: 6080
+ hash: "5bf4fa18f24fc221685234a92c4cafb6"
+ }
+ Frame {
+ msec: 6096
+ hash: "5bf4fa18f24fc221685234a92c4cafb6"
+ }
+ Frame {
+ msec: 6112
+ hash: "e1b8d1d7298a3d3ade82493fb6f99909"
+ }
+ Frame {
+ msec: 6128
+ hash: "6320b7b0bd1926c625f914d30f1f1fd9"
+ }
+ Frame {
+ msec: 6144
+ hash: "74ecfaced66f630d1863c04000fa7f01"
+ }
+ Frame {
+ msec: 6160
+ hash: "74ecfaced66f630d1863c04000fa7f01"
+ }
+ Frame {
+ msec: 6176
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 6192
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 6208
+ hash: "8d359f95ee869714bb3972986637642d"
+ }
+ Frame {
+ msec: 6224
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 6240
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 6256
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 6272
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 6288
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 6304
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6320
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6336
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6352
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6368
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6384
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6400
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6416
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6432
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6448
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6464
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6480
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6496
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6512
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6528
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6544
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6560
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6576
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6592
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6608
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6624
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6640
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6656
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6672
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6688
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6704
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data/follow.0.png b/tests/auto/declarative/visual/qmlspringfollow/data/follow.0.png
new file mode 100644
index 0000000..d173ee9
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data/follow.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data/follow.1.png b/tests/auto/declarative/visual/qmlspringfollow/data/follow.1.png
new file mode 100644
index 0000000..09b7bda
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data/follow.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data/follow.2.png b/tests/auto/declarative/visual/qmlspringfollow/data/follow.2.png
new file mode 100644
index 0000000..b1d109e
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data/follow.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data/follow.3.png b/tests/auto/declarative/visual/qmlspringfollow/data/follow.3.png
new file mode 100644
index 0000000..5cdcafb
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data/follow.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data/follow.4.png b/tests/auto/declarative/visual/qmlspringfollow/data/follow.4.png
new file mode 100644
index 0000000..93e1536
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data/follow.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data/follow.5.png b/tests/auto/declarative/visual/qmlspringfollow/data/follow.5.png
new file mode 100644
index 0000000..b27cc9f
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data/follow.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlspringfollow/data/follow.qml b/tests/auto/declarative/visual/qmlspringfollow/data/follow.qml
new file mode 100644
index 0000000..f87372a
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlspringfollow/data/follow.qml
@@ -0,0 +1,1691 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "ea677d128f47343d81a081c438aa2f6c"
+ }
+ Frame {
+ msec: 32
+ hash: "ea677d128f47343d81a081c438aa2f6c"
+ }
+ Frame {
+ msec: 48
+ hash: "403e130b7cf0a41d8348a227293d98d1"
+ }
+ Frame {
+ msec: 64
+ hash: "d2250ca93235b6a087b5e582f7e941d6"
+ }
+ Frame {
+ msec: 80
+ hash: "3e95bdb5546de8ed7bb33de704d2890e"
+ }
+ Frame {
+ msec: 96
+ hash: "438612a44780d6587f99a44c943eb60f"
+ }
+ Frame {
+ msec: 112
+ hash: "6e840f3afd93a11034e128d70f76e642"
+ }
+ Frame {
+ msec: 128
+ hash: "abbb1839aa7989e89d72368c501c5a12"
+ }
+ Frame {
+ msec: 144
+ hash: "eefe846a36bf21929d83241b117d98b5"
+ }
+ Frame {
+ msec: 160
+ hash: "ab39c7386555dc0a0edbd1e021fa3d93"
+ }
+ Frame {
+ msec: 176
+ hash: "8cd9ac8226579bfd1d653ad5b9ff3302"
+ }
+ Frame {
+ msec: 192
+ hash: "976c950140ce9f793884daa8d032c8fb"
+ }
+ Frame {
+ msec: 208
+ hash: "c49ea9cb59a4ced0572a251c1ed53011"
+ }
+ Frame {
+ msec: 224
+ hash: "d84a156021c5f61cb49f60cba5c0b7b7"
+ }
+ Frame {
+ msec: 240
+ hash: "d47f16922533e186844448ad4540cc9d"
+ }
+ Frame {
+ msec: 256
+ hash: "be16f676e94426dedc747de959f41658"
+ }
+ Frame {
+ msec: 272
+ hash: "abe13e483ca63c485f8c66f6edbbc368"
+ }
+ Frame {
+ msec: 288
+ hash: "71294e92418a4a586328a510916942e2"
+ }
+ Frame {
+ msec: 304
+ hash: "2f201846d62d8885c8d4659c9622e711"
+ }
+ Frame {
+ msec: 320
+ hash: "bfeb1da5c3ab5bda2def25682ae7f113"
+ }
+ Frame {
+ msec: 336
+ hash: "00767a8b29a0de270f2485e430332c0b"
+ }
+ Frame {
+ msec: 352
+ hash: "df1bac2a1f24ab2669c156f86ff3949a"
+ }
+ Frame {
+ msec: 368
+ hash: "755a39579c403923c93a4a962e135374"
+ }
+ Frame {
+ msec: 384
+ hash: "e176ba5703d6bd80f0de1a88f02ac678"
+ }
+ Frame {
+ msec: 400
+ hash: "51d44c2913947f44708615b5e38b2bd3"
+ }
+ Frame {
+ msec: 416
+ hash: "72a6d96e70ffd20c12139306103b4f4e"
+ }
+ Frame {
+ msec: 432
+ hash: "96f82039287cbf4b403298436421c778"
+ }
+ Frame {
+ msec: 448
+ hash: "0e86e386afdf7649dfdcd489137ad4ea"
+ }
+ Frame {
+ msec: 464
+ hash: "8e78f10e410638680810c65e5bddd665"
+ }
+ Frame {
+ msec: 480
+ hash: "765d52574fa75873e97f2e9b2a44e7a0"
+ }
+ Frame {
+ msec: 496
+ hash: "a72e4be872da024c8af9b914d8baabc2"
+ }
+ Frame {
+ msec: 512
+ hash: "3689c9af15bb91d4ae5b570ecffecfdd"
+ }
+ Frame {
+ msec: 528
+ hash: "8147683fb527fdb2f71356e85abae6e9"
+ }
+ Frame {
+ msec: 544
+ hash: "853f9220075a3782cf7fcc0bb8715263"
+ }
+ Frame {
+ msec: 560
+ hash: "61b08b1ac4a0f8edcaa9984db4c2ba26"
+ }
+ Frame {
+ msec: 576
+ hash: "9656cb5164be56f449f1f82b1555e6de"
+ }
+ Frame {
+ msec: 592
+ hash: "17290bf0cb6f35ee421286e01bd47e98"
+ }
+ Frame {
+ msec: 608
+ hash: "6f0d0cec511f59ff1e96cdbd9444eaf6"
+ }
+ Frame {
+ msec: 624
+ hash: "d4bcf568361214c0eb8fa3998bbf1480"
+ }
+ Frame {
+ msec: 640
+ hash: "41adf355d26d44b157f59d9fcb2e1c69"
+ }
+ Frame {
+ msec: 656
+ hash: "e5e19a9529a4e7fc1f680fec3505e78f"
+ }
+ Frame {
+ msec: 672
+ hash: "c5340333b27b030404dfb7f84c885f5a"
+ }
+ Frame {
+ msec: 688
+ hash: "0d78d4df108698cbf01f85b543240a23"
+ }
+ Frame {
+ msec: 704
+ hash: "3100a83fa0217e229bfe5b1014c85bd0"
+ }
+ Frame {
+ msec: 720
+ hash: "d48a5e885a7ffe2164561a5e8db49af2"
+ }
+ Frame {
+ msec: 736
+ hash: "f53ff65dde7676e467569cb4046c6151"
+ }
+ Frame {
+ msec: 752
+ hash: "dfe16b338d9afba04ba20fe27e2f3871"
+ }
+ Frame {
+ msec: 768
+ hash: "da60124324209ccb2bd0e025d0484ca5"
+ }
+ Frame {
+ msec: 784
+ hash: "bb7c9e645bead664dfbb3b0b2d6350a5"
+ }
+ Frame {
+ msec: 800
+ hash: "b4229201bd33515da83605b3e8c61f3e"
+ }
+ Frame {
+ msec: 816
+ hash: "65d73e930b2117714e6020f3580b9c5f"
+ }
+ Frame {
+ msec: 832
+ hash: "7635a572c1cedd66c27da128de4596aa"
+ }
+ Frame {
+ msec: 848
+ hash: "9068d912a8d3e6e0b5b458c12ddad126"
+ }
+ Frame {
+ msec: 864
+ hash: "e935bc3503eefd745f0086417322ccd0"
+ }
+ Frame {
+ msec: 880
+ hash: "fad1a3e6f64818638e6d866af9554f72"
+ }
+ Frame {
+ msec: 896
+ hash: "c80cd40121ad2b365a58b919db910fdb"
+ }
+ Frame {
+ msec: 912
+ hash: "e9c7e153a429fc2b7a7afcbe69f48291"
+ }
+ Frame {
+ msec: 928
+ hash: "f848e529d7ed9170c107556ffff2c7da"
+ }
+ Frame {
+ msec: 944
+ hash: "5176b37586cd38607f7324ea5fe4a84e"
+ }
+ Frame {
+ msec: 960
+ image: "follow.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "13db39c0f6b2d2633fc6e9e25363649c"
+ }
+ Frame {
+ msec: 992
+ hash: "709b27d74b5d63173dcc47315b6a98ad"
+ }
+ Frame {
+ msec: 1008
+ hash: "3f1a3ec8c35f18109b00f596dddb2dee"
+ }
+ Frame {
+ msec: 1024
+ hash: "7b5a87922adf288a3479c5772b87dc05"
+ }
+ Frame {
+ msec: 1040
+ hash: "389a4ceae2a2c2b65d8b8f4a14e302fe"
+ }
+ Frame {
+ msec: 1056
+ hash: "5e734ba84842d9ebacedea131c2cea43"
+ }
+ Frame {
+ msec: 1072
+ hash: "2ca1665bc6e8fcc79fa3ed27d063ef2d"
+ }
+ Frame {
+ msec: 1088
+ hash: "a133bcf3571762dac5ed8093835d0f32"
+ }
+ Frame {
+ msec: 1104
+ hash: "100e33528137240152983158c89831c2"
+ }
+ Frame {
+ msec: 1120
+ hash: "1b327165fcce6d61577e2c1715a77efe"
+ }
+ Frame {
+ msec: 1136
+ hash: "724352ffdfa1a7e8aa0ffaa138706b14"
+ }
+ Frame {
+ msec: 1152
+ hash: "c13dbf3fdd202d6fdb007622e2f3c9ee"
+ }
+ Frame {
+ msec: 1168
+ hash: "50517cf68a3f6f8c84fc6520500ccf00"
+ }
+ Frame {
+ msec: 1184
+ hash: "8fd426597afbc940a3778870118e2541"
+ }
+ Frame {
+ msec: 1200
+ hash: "67434d0c791fc4c2761c1869a6cee081"
+ }
+ Frame {
+ msec: 1216
+ hash: "3397a81fa89f46f55b7716325a722c82"
+ }
+ Frame {
+ msec: 1232
+ hash: "7207230d6be72411aadc3064af25dcc6"
+ }
+ Frame {
+ msec: 1248
+ hash: "709bc2b0d2ca7fa5e8b33e4a17a130bd"
+ }
+ Frame {
+ msec: 1264
+ hash: "0b721aaffded67b507e896c2c2d9c6f2"
+ }
+ Frame {
+ msec: 1280
+ hash: "a473144a3d3af4dfd27dd17eed95e050"
+ }
+ Frame {
+ msec: 1296
+ hash: "264760a5a9ce988ce880084161dbc983"
+ }
+ Frame {
+ msec: 1312
+ hash: "ea1ebaa56e24e0ca23723539ad8a18cf"
+ }
+ Frame {
+ msec: 1328
+ hash: "d85e695424a7883354b9e807d0dca75a"
+ }
+ Frame {
+ msec: 1344
+ hash: "2a5beec661122970528b4589c6a30184"
+ }
+ Frame {
+ msec: 1360
+ hash: "c6b398270707e794cb41ac6dfc413559"
+ }
+ Frame {
+ msec: 1376
+ hash: "5f0496a3db352ac7d68d37d0b40821de"
+ }
+ Frame {
+ msec: 1392
+ hash: "60b6cf54208fe05cad90a5475ba44b6f"
+ }
+ Frame {
+ msec: 1408
+ hash: "b375733a02dba8d856e6a54962701728"
+ }
+ Frame {
+ msec: 1424
+ hash: "dca9a423a2b43c9edf294f707ffeb3e9"
+ }
+ Frame {
+ msec: 1440
+ hash: "43d04fee9d2fbe1807f4d6b599a227fd"
+ }
+ Frame {
+ msec: 1456
+ hash: "169446930a064cabd9dfc8cce5669967"
+ }
+ Frame {
+ msec: 1472
+ hash: "3dc4b0e80ae663022ae9acda781cdb10"
+ }
+ Frame {
+ msec: 1488
+ hash: "fc7b862abfc6f1694cbbe00ede57d883"
+ }
+ Frame {
+ msec: 1504
+ hash: "76e67f9c5b552f1ff47c3c7b23eb1b76"
+ }
+ Frame {
+ msec: 1520
+ hash: "8c3e1d2fd58eaf2a8da16bb0349b1e5e"
+ }
+ Frame {
+ msec: 1536
+ hash: "4642a396f4a4bb3b97845782e1d1ce93"
+ }
+ Frame {
+ msec: 1552
+ hash: "4d3e8c9ea7c8c1407db564a3a6e430ff"
+ }
+ Frame {
+ msec: 1568
+ hash: "e041300f1d2956f35baebed6c7c9c750"
+ }
+ Frame {
+ msec: 1584
+ hash: "a900c3551c5d3bbaf1ce6e0372e69a70"
+ }
+ Frame {
+ msec: 1600
+ hash: "cb5c32ad57d1931a69c20328f8f2d060"
+ }
+ Frame {
+ msec: 1616
+ hash: "021ba4fc38e1652afeab73047e126a17"
+ }
+ Frame {
+ msec: 1632
+ hash: "d27728f36491ba432e3655850402ee6b"
+ }
+ Frame {
+ msec: 1648
+ hash: "20a87f4d9afd2039e44c2b5b539d0298"
+ }
+ Frame {
+ msec: 1664
+ hash: "e03dfc3f89c5e4f6a31bc4b624b249f4"
+ }
+ Frame {
+ msec: 1680
+ hash: "e52c42cbc1c362bd77f72b71dedc34da"
+ }
+ Frame {
+ msec: 1696
+ hash: "b3e15bd0354fa84d13f1f9163be12b73"
+ }
+ Frame {
+ msec: 1712
+ hash: "eb6517d72b7943654215ad46e8b165a9"
+ }
+ Frame {
+ msec: 1728
+ hash: "1be17ea113f704b1a3a1fda63d10c23a"
+ }
+ Frame {
+ msec: 1744
+ hash: "f288d004dd459b90acf9e70045de51bc"
+ }
+ Frame {
+ msec: 1760
+ hash: "750d6c78b8e3e3311935faacfe37c44f"
+ }
+ Frame {
+ msec: 1776
+ hash: "08a12d133eab365b639204e6b327143b"
+ }
+ Frame {
+ msec: 1792
+ hash: "4641237f37091b2aebfb17255999f8e1"
+ }
+ Frame {
+ msec: 1808
+ hash: "389c3a75932dc695f3aa323569cf0ebe"
+ }
+ Frame {
+ msec: 1824
+ hash: "4f03b3b47db131f4604b1f2487303012"
+ }
+ Frame {
+ msec: 1840
+ hash: "b29afbba738730b089f257a133874540"
+ }
+ Frame {
+ msec: 1856
+ hash: "04b3014bf60cc25920724d0c18424830"
+ }
+ Frame {
+ msec: 1872
+ hash: "1f09172690083f6051d4807c287d64a4"
+ }
+ Frame {
+ msec: 1888
+ hash: "fb32eec375d5f1abd7f651f022df8d20"
+ }
+ Frame {
+ msec: 1904
+ hash: "251e61f514db494cb47ae18234abd9a4"
+ }
+ Frame {
+ msec: 1920
+ image: "follow.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "8acec26bf4ab5f93ccc5d77d4866826a"
+ }
+ Frame {
+ msec: 1952
+ hash: "2490ddc2c74c525ecc51ffc83357611e"
+ }
+ Frame {
+ msec: 1968
+ hash: "f7f67dc93d3ff7aad6df8917f7f6f285"
+ }
+ Frame {
+ msec: 1984
+ hash: "d034044a9e2f2712aa1f0c10a5e4355f"
+ }
+ Frame {
+ msec: 2000
+ hash: "7760794170cfbb7ca93aebf12874a603"
+ }
+ Frame {
+ msec: 2016
+ hash: "a680699dda95e5a59dcf310cf5671d6e"
+ }
+ Frame {
+ msec: 2032
+ hash: "df3a0ffa7089defb0f3db08f4f34cba6"
+ }
+ Frame {
+ msec: 2048
+ hash: "4e0ce20d81cd4acad3270bfe5a650d18"
+ }
+ Frame {
+ msec: 2064
+ hash: "1f46926406a5f0bb33159bba6ef740f3"
+ }
+ Frame {
+ msec: 2080
+ hash: "321e4cbbb7f4fbe748a2fe45db13d184"
+ }
+ Frame {
+ msec: 2096
+ hash: "185c0357a585aafabe5dbc3573ea135d"
+ }
+ Frame {
+ msec: 2112
+ hash: "0421ac4f53c050bfffb2c8de16aafd46"
+ }
+ Frame {
+ msec: 2128
+ hash: "953bdaacefe42a841bf1cdd7da3b442a"
+ }
+ Frame {
+ msec: 2144
+ hash: "3f64635e9c43b8b6a402c5d6fe26e648"
+ }
+ Frame {
+ msec: 2160
+ hash: "3f64635e9c43b8b6a402c5d6fe26e648"
+ }
+ Frame {
+ msec: 2176
+ hash: "92926b4cf66b15cd0ddb468f2bd8bd62"
+ }
+ Frame {
+ msec: 2192
+ hash: "fe78f7f7ecd3242aa75f3590884e0f44"
+ }
+ Frame {
+ msec: 2208
+ hash: "55249aae2bb6db6c363ecb4b89f56270"
+ }
+ Frame {
+ msec: 2224
+ hash: "73ea66c3c61e8105ac61d26c8cfdbba3"
+ }
+ Frame {
+ msec: 2240
+ hash: "ac77e83366b34b7375ad7c150ccebd01"
+ }
+ Frame {
+ msec: 2256
+ hash: "b0a94b3ab562b469c622c4c7438f2c04"
+ }
+ Frame {
+ msec: 2272
+ hash: "73ab6f0a829f92533bbabef8b8097d5d"
+ }
+ Frame {
+ msec: 2288
+ hash: "0c2301bd28a080f113bd786b6875bf53"
+ }
+ Frame {
+ msec: 2304
+ hash: "026811ab3517257daf6a597d96bf2b20"
+ }
+ Frame {
+ msec: 2320
+ hash: "5740c6aacc1d1a5a402974bb977d9b13"
+ }
+ Frame {
+ msec: 2336
+ hash: "41f0a093fc87c4d519a9b72bac518514"
+ }
+ Frame {
+ msec: 2352
+ hash: "1ed376000e60129b4bcf06ea73cb5819"
+ }
+ Frame {
+ msec: 2368
+ hash: "8c713e210143ab5f19bdddd918f86ef3"
+ }
+ Frame {
+ msec: 2384
+ hash: "269b595c5691747b56be58d5b92ae497"
+ }
+ Frame {
+ msec: 2400
+ hash: "486d80316c88da4adc736df72fc86f45"
+ }
+ Frame {
+ msec: 2416
+ hash: "f76e6c0a9e7957730ac646b73d1373d1"
+ }
+ Frame {
+ msec: 2432
+ hash: "e0a6765306f92e32b7a778f882ba5c15"
+ }
+ Frame {
+ msec: 2448
+ hash: "b01834ca90ee836643083593a558d2ef"
+ }
+ Frame {
+ msec: 2464
+ hash: "02748271316f8382f4788322fda807c1"
+ }
+ Frame {
+ msec: 2480
+ hash: "ce5adbd1a713777476d2468f67e531f3"
+ }
+ Frame {
+ msec: 2496
+ hash: "840be99d6372f9ebf3c580765b71be74"
+ }
+ Frame {
+ msec: 2512
+ hash: "dd1cfa3fcec2fba91b0120a8aab3c137"
+ }
+ Frame {
+ msec: 2528
+ hash: "023843739f78eb77767aa1cacae824e9"
+ }
+ Frame {
+ msec: 2544
+ hash: "3e312b8de56c902ca20aba259c8559b2"
+ }
+ Frame {
+ msec: 2560
+ hash: "23fe7c60751c2e3a57a418ad57d290f1"
+ }
+ Frame {
+ msec: 2576
+ hash: "0cec0db315715c41c4086bdeb72af721"
+ }
+ Frame {
+ msec: 2592
+ hash: "1b633a8efad433e7dbf159d49ebd00e8"
+ }
+ Frame {
+ msec: 2608
+ hash: "35e46ea3f3a46297c403aa177ee66ede"
+ }
+ Frame {
+ msec: 2624
+ hash: "e1b8d1d7298a3d3ade82493fb6f99909"
+ }
+ Frame {
+ msec: 2640
+ hash: "74ecfaced66f630d1863c04000fa7f01"
+ }
+ Frame {
+ msec: 2656
+ hash: "74ecfaced66f630d1863c04000fa7f01"
+ }
+ Frame {
+ msec: 2672
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 2688
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 2704
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 2720
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 2736
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 2752
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 2768
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 2784
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 2800
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2816
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2832
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2848
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2864
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 2880
+ image: "follow.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 2912
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 2928
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 2944
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 2960
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 2976
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 2992
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3008
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3024
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3040
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3056
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3072
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3088
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3104
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3120
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3136
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3152
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3168
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3184
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 3200
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3216
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3232
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3248
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3264
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3280
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3296
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3312
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+ Frame {
+ msec: 3328
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 3344
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3360
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3376
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3392
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3408
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3424
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3440
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3456
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3472
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3488
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3504
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 3520
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 3536
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 3552
+ hash: "080910b835e134dfd06b83f1e92c92e8"
+ }
+ Frame {
+ msec: 3568
+ hash: "317c01c691f0b46d5d809c3ccc1e78e6"
+ }
+ Frame {
+ msec: 3584
+ hash: "475f4da1be823b57b58aecbb5a853892"
+ }
+ Frame {
+ msec: 3600
+ hash: "b60a6387e955cd8e5e907a6b22a2aecc"
+ }
+ Frame {
+ msec: 3616
+ hash: "4674eae7d8db1bf7eb35c7798948f7c4"
+ }
+ Frame {
+ msec: 3632
+ hash: "7b4a143d0bf44ddf87d3bfd03c143025"
+ }
+ Frame {
+ msec: 3648
+ hash: "e794d7ee32bcec9e0790ee95d89c9e06"
+ }
+ Frame {
+ msec: 3664
+ hash: "0581724e928d25f276dd4ad19a9ffd4e"
+ }
+ Frame {
+ msec: 3680
+ hash: "d8ef5e95454db4fd40fe51bcd9cf57b2"
+ }
+ Frame {
+ msec: 3696
+ hash: "22ca96df911b74025fc771e945850adf"
+ }
+ Frame {
+ msec: 3712
+ hash: "e0a88fb75e9193322fd5f925e89d7828"
+ }
+ Frame {
+ msec: 3728
+ hash: "ee82a5192ea9af94d1a6ab169b438c34"
+ }
+ Frame {
+ msec: 3744
+ hash: "c9d0d8514a783f3a9d0da651439990e2"
+ }
+ Frame {
+ msec: 3760
+ hash: "9378795141098714f3ab5b2f28d219af"
+ }
+ Frame {
+ msec: 3776
+ hash: "d61c4a67039e5a56ccd59df8afa24d38"
+ }
+ Frame {
+ msec: 3792
+ hash: "62be79759a2a15ac73355457fa515b0a"
+ }
+ Frame {
+ msec: 3808
+ hash: "d8f09c05c188fe3d09b8409a62bee29c"
+ }
+ Frame {
+ msec: 3824
+ hash: "0285dead7580a8064116cf32bd31b40d"
+ }
+ Frame {
+ msec: 3840
+ image: "follow.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "1921975bdfbe8a9817808919c97d2bac"
+ }
+ Frame {
+ msec: 3872
+ hash: "9c58d55cc025dd022451971ba6735a79"
+ }
+ Frame {
+ msec: 3888
+ hash: "c2163f3ab875bdb5728b16abcb65dfa4"
+ }
+ Frame {
+ msec: 3904
+ hash: "48bd0e85564e411c4ae6d042487cb0d5"
+ }
+ Frame {
+ msec: 3920
+ hash: "2e2c9f62acdc703fff7c28e7b7a59d47"
+ }
+ Frame {
+ msec: 3936
+ hash: "d749acc91c1b271aac00c00a6088e9ac"
+ }
+ Frame {
+ msec: 3952
+ hash: "cfa2c65f6f1a9bf242e073166a6e7b97"
+ }
+ Frame {
+ msec: 3968
+ hash: "bb6f98350cbb89cf96c2f159659b944e"
+ }
+ Frame {
+ msec: 3984
+ hash: "b7f087705eb7e2c7c4bd197aa08c1509"
+ }
+ Frame {
+ msec: 4000
+ hash: "57f217985d1850bfa3d21c2cdd164d99"
+ }
+ Frame {
+ msec: 4016
+ hash: "ded1e29fb83d6ec1d888fbd610c8a875"
+ }
+ Frame {
+ msec: 4032
+ hash: "c2a9f250bca3e1f7906a577c0ae6b724"
+ }
+ Frame {
+ msec: 4048
+ hash: "9cb2ca74308f519da85389ae959980ce"
+ }
+ Frame {
+ msec: 4064
+ hash: "5b0d50ee5f7d077deec51159cebfd767"
+ }
+ Frame {
+ msec: 4080
+ hash: "c41d847a89ece0dc9cfa1d0a0a8a16b1"
+ }
+ Frame {
+ msec: 4096
+ hash: "d372cb387ad3f01614aaaf720f133d6e"
+ }
+ Frame {
+ msec: 4112
+ hash: "9458ad068c95ff80e1dc4b1efd52683e"
+ }
+ Frame {
+ msec: 4128
+ hash: "2e976c4a780503c6a71c4e9f8bd14178"
+ }
+ Frame {
+ msec: 4144
+ hash: "b2f36762c85fcdbb0e1be545a3c49936"
+ }
+ Frame {
+ msec: 4160
+ hash: "c29fdeb241221a29d0ad928f6401a2d4"
+ }
+ Frame {
+ msec: 4176
+ hash: "bdbaaa347e20d21cc02b4c98953255ea"
+ }
+ Frame {
+ msec: 4192
+ hash: "34e9b69f851e1d719467d08962d8a657"
+ }
+ Frame {
+ msec: 4208
+ hash: "140a90804138dadb42e08b75fc1eed67"
+ }
+ Frame {
+ msec: 4224
+ hash: "67418a2069d491022c28232b392b1631"
+ }
+ Frame {
+ msec: 4240
+ hash: "df39748a385186ee0bdffa87485c2746"
+ }
+ Frame {
+ msec: 4256
+ hash: "c3276e48ede008a43baf350a79b3443b"
+ }
+ Frame {
+ msec: 4272
+ hash: "85473441e2560d8000640deecedef3bf"
+ }
+ Frame {
+ msec: 4288
+ hash: "4d3d07ed1acec99052ebf530cb2c20da"
+ }
+ Frame {
+ msec: 4304
+ hash: "3fb8ec07500be6d951f30121bcbcba13"
+ }
+ Frame {
+ msec: 4320
+ hash: "ae8cae69a702811a897e7d5790c806cc"
+ }
+ Frame {
+ msec: 4336
+ hash: "073e2e1af434447c3000b03e3a89925a"
+ }
+ Frame {
+ msec: 4352
+ hash: "3c75c7586c1dca2fd21266395ccc8ac4"
+ }
+ Frame {
+ msec: 4368
+ hash: "aa36ac379ac9953bd165b5164cd047da"
+ }
+ Frame {
+ msec: 4384
+ hash: "09d6ab311429cfe29a68c428669b5d5a"
+ }
+ Frame {
+ msec: 4400
+ hash: "11ebcb0a744bc3faa746560d9c1a824d"
+ }
+ Frame {
+ msec: 4416
+ hash: "aa01ba99122f89bff8fc45ef88326f6a"
+ }
+ Frame {
+ msec: 4432
+ hash: "6980292ba8a4bf8ead3581e5899f5d78"
+ }
+ Frame {
+ msec: 4448
+ hash: "65fa1a0fe53b9a0580c14e96d42fe993"
+ }
+ Frame {
+ msec: 4464
+ hash: "7837c0a533839f94629be4e64294b89f"
+ }
+ Frame {
+ msec: 4480
+ hash: "5edbf632047ae4130f580e4a0ece8e57"
+ }
+ Frame {
+ msec: 4496
+ hash: "0a5fdc57898cb56f00a76ecaa3a6b9e0"
+ }
+ Frame {
+ msec: 4512
+ hash: "58d1b36e738042af44dab04a8c842259"
+ }
+ Frame {
+ msec: 4528
+ hash: "2efb1f742d7f823d13b9724c1c10ce1a"
+ }
+ Frame {
+ msec: 4544
+ hash: "e0286eb0b3fbb17e422554a8ef25489c"
+ }
+ Frame {
+ msec: 4560
+ hash: "8252caa2841f07d29802a7b822388253"
+ }
+ Frame {
+ msec: 4576
+ hash: "eaabd4b3610c0bcbbdc113f86bc52e6c"
+ }
+ Frame {
+ msec: 4592
+ hash: "55b17d049e1c791d33094f64717bca06"
+ }
+ Frame {
+ msec: 4608
+ hash: "1bd607f6d0658f46b1f0df51e8a9a9fe"
+ }
+ Frame {
+ msec: 4624
+ hash: "4a52ea4de14098978931155f11168f68"
+ }
+ Frame {
+ msec: 4640
+ hash: "343df8fb45e1e70183bb61a1111909a5"
+ }
+ Frame {
+ msec: 4656
+ hash: "bcf1363d9912a3d626ef933387b4e01b"
+ }
+ Frame {
+ msec: 4672
+ hash: "67709ea579481537e532120de35619b2"
+ }
+ Frame {
+ msec: 4688
+ hash: "a7542255a10a120812880b1243bd573d"
+ }
+ Frame {
+ msec: 4704
+ hash: "b4f3e597e489d32a473bb2ad6bb92fc4"
+ }
+ Frame {
+ msec: 4720
+ hash: "f0df46d1b819edda5a616e858ed9171c"
+ }
+ Frame {
+ msec: 4736
+ hash: "2416564198b4b853d9c4f5ad55ee5db5"
+ }
+ Frame {
+ msec: 4752
+ hash: "342e5adcd2fca99c88c33cd8b56b8650"
+ }
+ Frame {
+ msec: 4768
+ hash: "01806799adce1d0069cfdd739f383a7f"
+ }
+ Frame {
+ msec: 4784
+ hash: "c045fdefdd4606d2c68c8cde2a7a40f4"
+ }
+ Frame {
+ msec: 4800
+ image: "follow.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "c7371c0594fb9f4de0a7f8a3cdce061a"
+ }
+ Frame {
+ msec: 4832
+ hash: "6df0c2a27c672e36a3d7eb5b4e0c46bf"
+ }
+ Frame {
+ msec: 4848
+ hash: "97fa050a5790b1f722d25dbee9efba95"
+ }
+ Frame {
+ msec: 4864
+ hash: "85c26ed45e79793fc5b7521a8157d3a2"
+ }
+ Frame {
+ msec: 4880
+ hash: "9ff5d272ec8deed3e70164b78bc425c6"
+ }
+ Frame {
+ msec: 4896
+ hash: "d1e3f6d51d6b8e96261b902e6f88576d"
+ }
+ Frame {
+ msec: 4912
+ hash: "02c12e50ed6b7111f301e142a2fbc5db"
+ }
+ Frame {
+ msec: 4928
+ hash: "5177873aa73342ada32d7ebfe3f26e0e"
+ }
+ Frame {
+ msec: 4944
+ hash: "05d0364f67f317ee617f1a64d9543fe2"
+ }
+ Frame {
+ msec: 4960
+ hash: "0b93625274bf1e3585664e56aff0197c"
+ }
+ Frame {
+ msec: 4976
+ hash: "988083e19b15662ec09247c381bfaef5"
+ }
+ Frame {
+ msec: 4992
+ hash: "6caa6b74ba935c2c9a6bf75ef94afedf"
+ }
+ Frame {
+ msec: 5008
+ hash: "541ecf2b40931f8009a15c9c981e09aa"
+ }
+ Frame {
+ msec: 5024
+ hash: "7a962dad8227d367b4af7dee6ea09c20"
+ }
+ Frame {
+ msec: 5040
+ hash: "0c175618366090b8f21334e94a865464"
+ }
+ Frame {
+ msec: 5056
+ hash: "f8e32badd5a839892ee4982ca37933db"
+ }
+ Frame {
+ msec: 5072
+ hash: "3a91f3a25b245e79ddeb72778075ba8f"
+ }
+ Frame {
+ msec: 5088
+ hash: "e8fd158c923d389a2d87db0023522934"
+ }
+ Frame {
+ msec: 5104
+ hash: "9cfa7783d37010c10271d680d205ebc4"
+ }
+ Frame {
+ msec: 5120
+ hash: "5e81c936f9627cf537f96a1674c920be"
+ }
+ Frame {
+ msec: 5136
+ hash: "28679a61a44bf0d81d6a93d8ea301b97"
+ }
+ Frame {
+ msec: 5152
+ hash: "ef41d71b99f078abe8a2a8326ed236c9"
+ }
+ Frame {
+ msec: 5168
+ hash: "753da9af5dd15cbb6c9df83460f32631"
+ }
+ Frame {
+ msec: 5184
+ hash: "49bbb9f30cf72a64b64ab19f0c2d5b9e"
+ }
+ Frame {
+ msec: 5200
+ hash: "03d829cdb7da915da606dc1475debae8"
+ }
+ Frame {
+ msec: 5216
+ hash: "1ee5d8c3c868e2f7d7f034f9bdc91c8f"
+ }
+ Frame {
+ msec: 5232
+ hash: "0f497c52a8b4a7bbd9246c466182644c"
+ }
+ Frame {
+ msec: 5248
+ hash: "1574e08a7db9c9a164147ca329d48dbd"
+ }
+ Frame {
+ msec: 5264
+ hash: "bff3837578fd069d2b9000ad60123be3"
+ }
+ Frame {
+ msec: 5280
+ hash: "99ce71c69566b92715a27014548d7346"
+ }
+ Frame {
+ msec: 5296
+ hash: "78a78f00e598405d4e906a930ace9cb5"
+ }
+ Frame {
+ msec: 5312
+ hash: "a0f44f1a8772d4dd8d70795811fdd4ab"
+ }
+ Frame {
+ msec: 5328
+ hash: "3d5fd500d5c771b437a999659ea57dd7"
+ }
+ Frame {
+ msec: 5344
+ hash: "53fbb22689627f55af20b3cb15a7a8cf"
+ }
+ Frame {
+ msec: 5360
+ hash: "609838796118ab89566fe2fe664dfcb4"
+ }
+ Frame {
+ msec: 5376
+ hash: "c2d7d5cb7cf470ed4d84f705c187f768"
+ }
+ Frame {
+ msec: 5392
+ hash: "63c6de2754a0b9c23e5b652aa331716f"
+ }
+ Frame {
+ msec: 5408
+ hash: "8cacae37981ebd8c0a6772f97d8e9342"
+ }
+ Frame {
+ msec: 5424
+ hash: "b8ab40dbd1bb086eae5b80f2e751efe4"
+ }
+ Frame {
+ msec: 5440
+ hash: "fb4211ee009b224b64092d106369f6a0"
+ }
+ Frame {
+ msec: 5456
+ hash: "b59dd1dcbb128b6f7df51bd30ac0af31"
+ }
+ Frame {
+ msec: 5472
+ hash: "075ff90195b6a0d37944aaf32eb560e7"
+ }
+ Frame {
+ msec: 5488
+ hash: "26cb5dda92cfec934e4068322eb0c792"
+ }
+ Frame {
+ msec: 5504
+ hash: "0938c360b6c8911074cda8fd58de5650"
+ }
+ Frame {
+ msec: 5520
+ hash: "6491ba15d6566ab6f17ee6eb9c5472ab"
+ }
+ Frame {
+ msec: 5536
+ hash: "83518cf990f5050d68bf1f09c774ae74"
+ }
+ Frame {
+ msec: 5552
+ hash: "4ce84b0d70bc3ebf970e9161ffb7dc21"
+ }
+ Frame {
+ msec: 5568
+ hash: "57270cebd25e5c6dd7fb204232e18eb3"
+ }
+ Frame {
+ msec: 5584
+ hash: "d93f26948e6deb4bf074139468d12c27"
+ }
+ Frame {
+ msec: 5600
+ hash: "581fe059cd632e242dd308b11ef8288a"
+ }
+ Frame {
+ msec: 5616
+ hash: "2e19dc61944aa7671ac18303949e1c9e"
+ }
+ Frame {
+ msec: 5632
+ hash: "37b4864ed528a3be221d7abb4106ec3a"
+ }
+ Frame {
+ msec: 5648
+ hash: "4261fe6049e5dff81b33e503a4d1825d"
+ }
+ Frame {
+ msec: 5664
+ hash: "c2bf99e089bc984abea63b8b43270859"
+ }
+ Frame {
+ msec: 5680
+ hash: "d8de63e15f1f6e9c0cf0dd43afa03c42"
+ }
+ Frame {
+ msec: 5696
+ hash: "3643a50c30b6d6f9b724155e49db7276"
+ }
+ Frame {
+ msec: 5712
+ hash: "582e871460fe3056f7f3df97d5939d69"
+ }
+ Frame {
+ msec: 5728
+ hash: "e46da1072974efc1c4df89d9c6243609"
+ }
+ Frame {
+ msec: 5744
+ hash: "705ac82bb7a03eb5843aae7292739851"
+ }
+ Frame {
+ msec: 5760
+ image: "follow.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "b2949af515524933f740057cae6d8c40"
+ }
+ Frame {
+ msec: 5792
+ hash: "72a3526dbfeb42935a737f7876c86499"
+ }
+ Frame {
+ msec: 5808
+ hash: "43907b91dec1412d0e6c8b53cec8e06f"
+ }
+ Frame {
+ msec: 5824
+ hash: "66db45ca42d42e8a6eb279b892493af9"
+ }
+ Frame {
+ msec: 5840
+ hash: "1f2d69898b90d344f337ac37a000e797"
+ }
+ Frame {
+ msec: 5856
+ hash: "9c09edc9541d69e7565ef05fbe58fadf"
+ }
+ Frame {
+ msec: 5872
+ hash: "0d68b6d05150981eff443cd7437b3d95"
+ }
+ Frame {
+ msec: 5888
+ hash: "85558e393a1e0483ba27844cf409af47"
+ }
+ Frame {
+ msec: 5904
+ hash: "83a73b6b3eb1052a9b1a12fb78326b26"
+ }
+ Frame {
+ msec: 5920
+ hash: "4839882ecc497916b4ac964a5cc71d1b"
+ }
+ Frame {
+ msec: 5936
+ hash: "28d6f5066f186a0d9ab7f4781374d3eb"
+ }
+ Frame {
+ msec: 5952
+ hash: "d89148926c6dd636de953a55082e50f1"
+ }
+ Frame {
+ msec: 5968
+ hash: "dbab902e252561849dba5551fc8f07d3"
+ }
+ Frame {
+ msec: 5984
+ hash: "84a3a891fbbb1a0fca24324a3ea10c6a"
+ }
+ Frame {
+ msec: 6000
+ hash: "64563bb68129f527b1c33c0d9a543f09"
+ }
+ Frame {
+ msec: 6016
+ hash: "64563bb68129f527b1c33c0d9a543f09"
+ }
+ Frame {
+ msec: 6032
+ hash: "7f3ae8ac99bf202414b03e9b33473044"
+ }
+ Frame {
+ msec: 6048
+ hash: "7f3ae8ac99bf202414b03e9b33473044"
+ }
+ Frame {
+ msec: 6064
+ hash: "7fbdf6396050da5b8945f1111c2ca973"
+ }
+ Frame {
+ msec: 6080
+ hash: "5bf4fa18f24fc221685234a92c4cafb6"
+ }
+ Frame {
+ msec: 6096
+ hash: "5bf4fa18f24fc221685234a92c4cafb6"
+ }
+ Frame {
+ msec: 6112
+ hash: "e1b8d1d7298a3d3ade82493fb6f99909"
+ }
+ Frame {
+ msec: 6128
+ hash: "6320b7b0bd1926c625f914d30f1f1fd9"
+ }
+ Frame {
+ msec: 6144
+ hash: "74ecfaced66f630d1863c04000fa7f01"
+ }
+ Frame {
+ msec: 6160
+ hash: "74ecfaced66f630d1863c04000fa7f01"
+ }
+ Frame {
+ msec: 6176
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 6192
+ hash: "c803b3258d0e1d8e6c1292ea2a00f76b"
+ }
+ Frame {
+ msec: 6208
+ hash: "8d359f95ee869714bb3972986637642d"
+ }
+ Frame {
+ msec: 6224
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 6240
+ hash: "9f3f4fe1be7bd4511a0408fd5ab1b11f"
+ }
+ Frame {
+ msec: 6256
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 6272
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 6288
+ hash: "cd2c4e1a288d09f46dd557973c22e1be"
+ }
+ Frame {
+ msec: 6304
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6320
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6336
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6352
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6368
+ hash: "8109005d7e21d16b77f88efce2b530e4"
+ }
+ Frame {
+ msec: 6384
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6400
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6416
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6432
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6448
+ hash: "e009f65ae035fb8a9c27a1d57f10c35f"
+ }
+ Frame {
+ msec: 6464
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6480
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6496
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6512
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6528
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6544
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6560
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6576
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6592
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6608
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6624
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6640
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6656
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6672
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6688
+ hash: "31a446fab3c9a92f20fbb065b62d4357"
+ }
+ Frame {
+ msec: 6704
+ hash: "20dd4407adca55737dd4231405c38cff"
+ }
+}
diff --git a/examples/declarative/follow/follow.qml b/tests/auto/declarative/visual/qmlspringfollow/follow.qml
index 3e164f9..3e164f9 100644
--- a/examples/declarative/follow/follow.qml
+++ b/tests/auto/declarative/visual/qmlspringfollow/follow.qml