Li4gU2VxdWVuY2VzL1ZpZXdzLy9qb2ludF92aWV3Cgpqb2ludF92aWV3Cj09PT09PT09PT0KClN5bm9wc2lzCi0tLS0tLS0tCgouLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAKICAgIHRlbXBsYXRlPAogICAgICAgICAgdHlwZW5hbWUgU2VxdWVuY2UxCiAgICAgICAgLCB0eXBlbmFtZSBTZXF1ZW5jZTIKICAgICAgICA+CiAgICBzdHJ1Y3Qgam9pbnRfdmlldwogICAgewogICAgICAgIC8vIHx1bnNwZWNpZmllZHwKICAgICAgICAvLyB8Li4ufAogICAgfTsKCgoKRGVzY3JpcHRpb24KLS0tLS0tLS0tLS0KCkEgdmlldyBpbnRvIHRoZSBzZXF1ZW5jZSBvZiBlbGVtZW50cyBmb3JtZWQgYnkgY29uY2F0ZW5hdGluZyBgYFNlcXVlbmNlMWBgIAphbmQgYGBTZXF1ZW5jZTJgYCBlbGVtZW50cy4gCgoKSGVhZGVyCi0tLS0tLQoKLi4gcGFyc2VkLWxpdGVyYWw6OgogICAgCiAgICAjaW5jbHVkZSA8Ym9vc3QvbXBsL2pvaW50X3ZpZXcuaHBwPgoKCk1vZGVsIG9mCi0tLS0tLS0tCgoqIHxGb3J3YXJkIFNlcXVlbmNlfAoKClBhcmFtZXRlcnMKLS0tLS0tLS0tLQoKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBQYXJhbWV0ZXIgICAgICAgICAgICAgfCBSZXF1aXJlbWVudCAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gICAgICAgICAgICAgICAgICAgICAgIHwKKz09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PSs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKfCBgYFNlcXVlbmNlMWBgLCAgICAgICAgfCB8Rm9yd2FyZCBTZXF1ZW5jZXwgICAgICAgIHwgU2VxdWVuY2VzIHRvIGNyZWF0ZSBhIHZpZXcgb24uICAgIHwKfCBgYFNlcXVlbmNlMmBgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKCkV4cHJlc3Npb24gc2VtYW50aWNzCi0tLS0tLS0tLS0tLS0tLS0tLS0tCgp8U2VtYW50aWNzIGRpc2NsYWltZXIuLi58IHxGb3J3YXJkIFNlcXVlbmNlfC4KCkluIHRoZSBmb2xsb3dpbmcgdGFibGUsIGBgdmBgIGlzIGFuIGluc3RhbmNlIG9mIGBgam9pbnRfdmlld2BgLCBgYHMxYGAgYW5kIGBgczJgYCBhcmUgYXJiaXRyYXJ5IAp8Rm9yd2FyZCBTZXF1ZW5jZXxcIHMuCgorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKfCBFeHByZXNzaW9uICAgICAgICAgICAgICAgICAgICB8IFNlbWFudGljcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cis9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Kwp8IC4uIHBhcnNlZC1saXRlcmFsOjogICAgICAgICAgIHwgQSBsYXp5IHxGb3J3YXJkIFNlcXVlbmNlfCBvZiBhbGwgdGhlIGVsZW1lbnRzIGluIHRoZSAgICAgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJhbmdlcyB8YmVnaW4vZW5kPHMxPnwsIHxiZWdpbi9lbmQ8czI+fC4gICAgICAgICAgICAgICAgICB8CnwgICAgam9pbnRfdmlldzxzMSxzMj4gICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgIGpvaW50X3ZpZXc8czEsczI+Ojp0eXBlICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCnwgYGBzaXplPHY+Ojp0eXBlYGAgICAgICAgICAgICAgfCBUaGUgc2l6ZSBvZiBgYHZgYDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAp8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgYGBzaXplPHY+Ojp2YWx1ZSA9PSBzaXplPHMxPjo6dmFsdWUgKyBzaXplPHMyPjo6dmFsdWVgYDsgIHwKfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGxpbmVhciBjb21wbGV4aXR5OyBzZWUgfEZvcndhcmQgU2VxdWVuY2V8LiAgICAgICAgICAgICAgICB8CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKwoKRXhhbXBsZQotLS0tLS0tCgouLiBwYXJzZWQtbGl0ZXJhbDo6CiAgICAKICAgIHR5cGVkZWYgam9pbnRfdmlldzwKICAgICAgICAgIHJhbmdlX2M8aW50LDAsMTA+CiAgICAgICAgLCByYW5nZV9jPGludCwxMCwxNT4KICAgICAgICA+IG51bWJlcnM7CiAgICAKICAgIEJPT1NUX01QTF9BU1NFUlQoKCBlcXVhbDwgbnVtYmVycywgcmFuZ2VfYzxpbnQsMCwxNT4gPiApKTsKCgpTZWUgYWxzbwotLS0tLS0tLQoKfFNlcXVlbmNlc3wsIHxWaWV3c3wsIHxmaWx0ZXJfdmlld3wsIHx0cmFuc2Zvcm1fdmlld3wsIHx6aXBfdmlld3wsIHxpdGVyYXRvcl9yYW5nZXwKCgouLiBjb3B5cmlnaHQ6OiBDb3B5cmlnaHQgqSAgMjAwMS0yMDA5IEFsZWtzZXkgR3VydG92b3kgYW5kIERhdmlkIEFicmFoYW1zCiAgIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSBCb29zdCBTb2Z0d2FyZSBMaWNlbnNlLCBWZXJzaW9uIDEuMC4gKFNlZSBhY2NvbXBhbnlpbmcKICAgZmlsZSBMSUNFTlNFXzFfMC50eHQgb3IgY29weSBhdCBodHRwOi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCg==