PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIGh0bWwKICBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBUcmFuc2l0aW9uYWwvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtdHJhbnNpdGlvbmFsLmR0ZCI+CjxodG1sPgo8aGVhZD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iLi4vLi4vY29tLmlibS5oZWxwLmRvYy9zd2dfaW5mb19jb21tb24uY3NzIiAvPgo8dGl0bGU+WE1MIGVkaXRvcjwvdGl0bGU+CjxzY3JpcHQgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiPgogICAgZnVuY3Rpb24gcG9wdXBfd2luZG93KCB1cmwsIGlkLCB3aWR0aCwgaGVpZ2h0ICkKICAgIHsKICAgICAgcG9wdXAgPSB3aW5kb3cub3BlbiggdXJsLCBpZCwgJ3Rvb2xiYXI9bm8sc2Nyb2xsYmFycz1ubyxsb2NhdGlvbj1ubyxzdGF0dXNiYXI9bm8sbWVudWJhcj1ubyxyZXNpemFibGU9bm8sd2lkdGg9JyArIHdpZHRoICsgJyxoZWlnaHQ9JyArIGhlaWdodCArICcsbGVmdD0sdG9wPScgKTsKICAgICAgcG9wdXAuZm9jdXMoKTsKICAgIH0KPC9zY3JpcHQ+PHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgc3JjPSJoZWxwL2xpdmVIZWxwLmpzIj48L3NjcmlwdD48L2hlYWQ+Cjxib2R5IGlkPSJjd3htbGVkdCI+PGEgbmFtZT0iY3d4bWxlZHQiPjwhLS0gLS0+PC9hPgoKPGgxIGNsYXNzPSJ0b3BpY3RpdGxlMSI+WE1MIGVkaXRvcjwvaDE+CjxkaXY+PHA+VGhlIFhNTCBlZGl0b3IgaXMgYSB0b29sIGZvciBjcmVhdGluZyBhbmQgdmlld2luZyBYTUwgZmlsZXM8L3A+PHA+WW91IGNhbiB1c2UgaXQgdG8gcGVyZm9ybSBhIHZhcmlldHkgb2YgdGFza3Mgc3VjaCBhcyB0aGUgZm9sbG93aW5nOjwvcD4KPHVsPjxsaT5DcmVhdGUgbmV3IFhNTCBmaWxlcywgZWl0aGVyIGZyb20gc2NyYXRjaCwgZXhpc3RpbmcgRFREcywgb3IgZXhpc3RpbmcKWE1MIHNjaGVtYXM8L2xpPgo8bGk+RWRpdCBhbmQgdmFsaWRhdGUgWE1MIGZpbGVzPC9saT4KPGxpPkltcG9ydCBleGlzdGluZyBYTUwgZmlsZXMgZm9yIHN0cnVjdHVyZWQgdmlld2luZzwvbGk+CjxsaT5Bc3NvY2lhdGUgWE1MIGZpbGVzIHdpdGggRFREcyBvciBYTUwgc2NoZW1hczwvbGk+CjwvdWw+CjxwPlRvIG1ha2UgdGhlIFhNTCBlZGl0b3IgdGhlIGRlZmF1bHQgZWRpdG9yIGZvciBYTUwgZmlsZXMsIHNlbGVjdCA8c3BhbiBjbGFzcz0idWljb250cm9sIj5XaW5kb3cKJmd0OyBQcmVmZXJlbmNlcyAmZ3Q7IFdvcmtiZW5jaCAmZ3Q7IEZpbGUgQXNzb2NpYXRpb25zPC9zcGFuPiwgdGhlbiBzZWxlY3QgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+Ki54bWw8L3NwYW4+IGFuZCA8c3BhbiBjbGFzcz0idWljb250cm9sIj5YTUwKRWRpdG9yPC9zcGFuPiBmcm9tIHRoZSBBc3NvY2lhdGVkIEVkaXRvcnMgbGlzdC4gQ2xpY2sgPHNwYW4gY2xhc3M9InVpY29udHJvbCI+T0s8L3NwYW4+LiA8L3A+CjxwPlRoZSBYTUwgZWRpdG9yIGhhcyB0d28gbWFpbiB2aWV3cyAtIHRoZSBTb3VyY2UgdmlldyBhbmQgdGhlCkRlc2lnbiB2aWV3LjwvcD4KPGRpdiBjbGFzcz0ic2tpcHNwYWNlIj48aDQgY2xhc3M9InNlY3Rpb250aXRsZSI+U291cmNlIHZpZXc8L2g0PjxwPlRoZSBTb3VyY2UgdmlldyBlbmFibGVzIHlvdSB0byB2aWV3CmFuZCB3b3JrIGRpcmVjdGx5IHdpdGggYSBmaWxlJ3Mgc291cmNlIGNvZGUgZGlyZWN0bHkuPC9wPgo8cD5UaGUgU291cmNlIHZpZXcgaGFzIG1hbnkgdGV4dCBlZGl0aW5nCmZlYXR1cmVzLCBzdWNoIGFzIHN5bnRheCBoaWdobGlnaHRpbmcsIHVubGltaXRlZCB1bmRvL3JlZG8sIGFuZCB1c2VyLWRlZmluZWQKbWFjcm9zLiBBbm90aGVyIGhlbHBmdWwgZmVhdHVyZSBpcyBjb250ZW50IGFzc2lzdCwgd2hpY2ggdXNlcyB0aGUgaW5mb3JtYXRpb24KaW4gYSBEVEQgb3Igc2NoZW1hIGNvbnRlbnQgbW9kZWwgdG8gcHJvdmlkZSBhIGxpc3Qgb2YgYWNjZXB0YWJsZSBjb250aW51YXRpb25zCmRlcGVuZGluZyBvbiB3aGVyZSB0aGUgY3Vyc29yIGlzIGxvY2F0ZWQgaW4gYW4gWE1MIGZpbGUsIG9yIHdoYXQgaGFzIGp1c3QKYmVlbiB0eXBlZC4gVGhlIFhNTCBlZGl0b3IgU291cmNlIHZpZXcgYWxzbyBpbmNsdWRlcyBhICJzbWFydCIgZG91YmxlLWNsaWNraW5nCmJlaGF2aW9yLiBJZiB5b3VyIGN1cnNvciBpcyBwbGFjZWQgaW4gYW4gYXR0cmlidXRlIHZhbHVlLCBvbmUgZG91YmxlLWNsaWNrCnNlbGVjdHMgdGhhdCB2YWx1ZSwgYW5vdGhlciBkb3VibGUgY2xpY2sgc2VsZWN0cyB0aGUgYXR0cmlidXRlLXZhbHVlIHBhaXIsCmFuZCBhIHRoaXJkIGRvdWJsZS1jbGljayBzZWxlY3RzIHRoZSBlbnRpcmUgdGFnLiBUaGlzIG1ha2VzIGl0IGVhc2llciB0byBjb3B5CmFuZCBwYXN0ZSBjb21tb25seSB1c2VkIHBpZWNlcyBvZiBYTUwuPC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0ic2tpcHNwYWNlIj48aDQgY2xhc3M9InNlY3Rpb250aXRsZSI+RGVzaWduIHZpZXc8L2g0PjxwPlRoZSBYTUwgZWRpdG9yIGFsc28gaGFzIGEgRGVzaWduIHZpZXcsCndoaWNoIHJlcHJlc2VudHMgdGhlIFhNTCBmaWxlIHNpbXVsdGFuZW91c2x5IGFzIGEgdGFibGUgYW5kIGEgdHJlZS4gVGhpcyBoZWxwcwptYWtlIG5hdmlnYXRpb24gYW5kIGVkaXRpbmcgZWFzaWVyLiBDb250ZW50IGFuZCBhdHRyaWJ1dGUgdmFsdWVzIGNhbiBiZSBlZGl0ZWQKZGlyZWN0bHkgaW4gdGhlIHRhYmxlIGNlbGxzLCB3aGlsZSBwb3AtdXAgbWVudXMgb24gdGhlIHRyZWUgbm9kZXMgZ2l2ZSBhbHRlcm5hdGl2ZXMKdGhhdCBhcmUgdmFsaWQgZm9yIHRoYXQgbG9jYXRpb24uIEZvciBleGFtcGxlLCB0aGUgIDxzcGFuIGNsYXNzPSJ1aWNvbnRyb2wiPkFkZCBjaGlsZDwvc3Bhbj4gbWVudQppdGVtIHdpbGwgbGlzdCBvbmx5IHRob3NlIGVsZW1lbnRzIGZyb20gYSBEVEQgb3IgWE1MIHNjaGVtYSB3aGljaCB3b3VsZCBiZQp2YWxpZCBjaGlsZHJlbiBhdCB0aGF0IHBvaW50IChhcyBsb25nIGFzIGdyYW1tYXIgY29uc3RyYWludHMgYXJlIG9uKS48L3A+CjxwPlRoZQpEZXNpZ24gdmlldyBpcyBlc3BlY2lhbGx5IGhlbHBmdWwgaWYgeW91IGFyZSBuZXcgdG8gWE1MLCBvciBuZWVkIHRvIGRvIGZvcm0tb3JpZW50ZWQKZWRpdGluZy4gRm9yIGV4YW1wbGUsIHlvdSBjb3VsZCB1c2UgdGhlIENyZWF0ZSBYTUwgRmlsZSB3aXphcmQgdG8gY3JlYXRlIGEKdGVtcGxhdGUgWE1MIGZpbGUgZm9yIGEgam9iIGRlc2NyaXB0aW9uIGZvcm0gZnJvbSBhIGpvYiBkZXNjcmlwdGlvbqAKRFRELiBBZnRlciB0aG9zZSBzdGVwcyBhcmUgY29tcGxldGVkLCB5b3Ugd291bGQgb25seSBoYXZlIHRvIGZpbGwgaW4gdGhlIGZvcm0KZGF0YSB1c2luZyB0aGUgRGVzaWduIHZpZXcuPC9wPgo8cD4gPGI+Tm90ZTwvYj46IFlvdSBjYW4gYWxzbyB1c2UgdGhlIDxiPk91dGxpbmU8L2I+IHZpZXcKdG8gaW5zZXJ0IGFuZCBkZWxldGUgZWxlbWVudHMuPC9wPgo8L2Rpdj4KPC9kaXY+Cgo8ZGl2Pgo8YmxvY2txdW90ZT4KPGRpdiBjbGFzcz0idWxjaGlsZGxpbmsiPjxiPjxhIGhyZWY9Ii4uL3RvcGljcy9jd3dlZHR2dy5odG1sIj5YTUwgZWRpdG9yIGludGVncmF0aW9uIHdpdGggdGhlIHdvcmtiZW5jaDwvYT48L2I+PGJyIC8+ClRvIGVkaXQgYSBmaWxlIHVzaW5nIHRoZSBYTUwgZWRpdG9yLCByaWdodC1jbGljayB0aGUgZmlsZSBpbiB0aGUKTmF2aWdhdG9yIHZpZXcsIGFuZCBjbGljayA8c3BhbiBjbGFzcz0idWljb250cm9sIj5PcGVuIFdpdGggJmd0OyBYTUwgRWRpdG9yPC9zcGFuPi4gQmVjYXVzZQp0aGUgZWRpdG9yIHRoYXQgaXMgbGFzdCB1c2VkIHRvIG9wZW4gYSBmaWxlIGJlY29tZXMgdGhlIGRlZmF1bHQgZWRpdG9yIGZvcgp0aGF0IHBhcnRpY3VsYXIgZmlsZSwgdGhlIFhNTCBlZGl0b3Igd2lsbCByZW1haW4gdGhlIGRlZmF1bHQKWE1MIGVkaXRvciBmb3IgdGhhdCBmaWxlIHVubGVzcyB5b3UgZXhwbGljaXRseSBjaGFuZ2UgaXQuPC9kaXY+CjxkaXYgY2xhc3M9InVsY2hpbGRsaW5rIj48Yj48YSBocmVmPSIuLi90b3BpY3MvdHhwcmVmcy5odG1sIj5EZWZpbmluZyBYTUwgZWRpdG9yIHByZWZlcmVuY2VzPC9hPjwvYj48YnIgLz4KWW91IGNhbiBzZXQgdmFyaW91cyBwcmVmZXJlbmNlcyBmb3IgdGhlIFNvdXJjZSB2aWV3IG9mIHRoZSBYTUwgZWRpdG9yIHN1Y2ggYXMgdGhlIGZvcm1hdHRlciBpbmRlbnRhdGlvbiBzdHlsZSwgbGluZSB3cmFwcGluZyBydWxlcywgYW5kIGNvbnRlbnQgYXNzaXN0IHJ1bGVzLjwvZGl2Pgo8L2Jsb2NrcXVvdGU+Cgo8cD4KPGIgY2xhc3M9InBhcmVudGxpbmsiPlBhcmVudCB0b3BpYzo8L2I+IDxhIGhyZWY9Ii4uL3RvcGljcy90eGVkdHRhZy5odG1sIiB0aXRsZT0iIj5FZGl0aW5nIFhNTCBmaWxlczwvYT48YnIgLz4KPC9wPgo8cD48YiBjbGFzcz0icmVsY29uY2VwdHNoZCI+UmVsYXRlZCBjb25jZXB0czwvYj48YnIgLz4KPGEgaHJlZj0iLi4vdG9waWNzL2N4bWxjYXQuaHRtbCIgdGl0bGU9IlRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHdheXMgdG8gYXNzb2NpYXRlIFhNTCBmaWxlcyB3aXRoIERURHMgb3IgWE1MIHNjaGVtYXMuIj5YTUwgZmlsZSBhc3NvY2lhdGlvbnMgd2l0aCBEVERzIGFuZCBYTUwgc2NoZW1hczwvYT48YnIgLz4KPC9wPgo8cD48YiBjbGFzcz0icmVsdGFza3NoZCI+UmVsYXRlZCB0YXNrczwvYj48YnIgLz4KPGEgaHJlZj0iLi4vdG9waWNzL3RjcmV0eG1sLmh0bWwiIHRpdGxlPSJZb3UgY2FuIGNyZWF0ZSBhIG5ldyBlbXB0eSBYTUwgZmlsZSwgd2hpY2ggeW91IGNhbiB0aGVuIGVkaXQgaW4gdGhlIFhNTCBlZGl0b3IuIj5DcmVhdGluZyBhbiBYTUwgZmlsZSBmcm9tIHNjcmF0Y2g8L2E+PGJyIC8+CjxhIGhyZWY9Ii4uL3RvcGljcy90eGVkdHRhZy5odG1sIiB0aXRsZT0iRWRpdGluZyBYTUwgZmlsZXMiPjwvYT48YnIgLz4KPGEgaHJlZj0iLi4vdG9waWNzL3R4ZWR0ZGVzLmh0bWwiIHRpdGxlPSJUaGUgWE1MIGVkaXRvciBoYXMgYSBEZXNpZ24gdmlldywgd2hpY2ggcmVwcmVzZW50cyB0aGUgWE1MIGZpbGUgc2ltdWx0YW5lb3VzbHkgYXMgYSB0YWJsZSBhbmQgYSB0cmVlLiBUaGlzIGhlbHBzIG1ha2UgbmF2aWdhdGlvbiBhbmQgZWRpdGluZyBlYXNpZXIuIENvbnRlbnQgYW5kIGF0dHJpYnV0ZSB2YWx1ZXMgY2FuIGJlIGVkaXRlZCBkaXJlY3RseSBpbiB0aGUgdGFibGUgY2VsbHMsIHdoaWxlIHBvcC11cCBtZW51cyBvbiB0aGUgdHJlZSBlbGVtZW50cyBnaXZlIGFsdGVybmF0aXZlcyB0aGF0IGFyZSB2YWxpZCBmb3IgdGhhdCBwYXJ0aWN1bGFyIGVsZW1lbnQuIj5FZGl0aW5nIGluIHRoZSBEZXNpZ24gdmlldzwvYT48YnIgLz4KPGEgaHJlZj0iLi4vdG9waWNzL3R4ZWR0c3JjLmh0bWwiIHRpdGxlPSJZb3UgY2FuIHVzZSB0aGUgU291cmNlIHZpZXcgdG8gdmlldyBhbmQgd29yayB3aXRoIGEgZmlsZSdzIHNvdXJjZSBjb2RlIGRpcmVjdGx5LiI+RWRpdGluZyBpbiB0aGUgU291cmNlIHZpZXc8L2E+PGJyIC8+CjxhIGhyZWY9Ii4uL3RvcGljcy90d3h2YWxpZC5odG1sIiB0aXRsZT0iVmFsaWRhdGluZyBYTUwgZmlsZXMiPjwvYT48YnIgLz4KPC9wPgo8L2Rpdj48cD4KCQkoQykgQ29weXJpZ2h0IElCTSBDb3Jwb3JhdGlvbiAyMDAwLCAyMDA0LiBBbGwgUmlnaHRzIFJlc2VydmVkLgo8L3A+CjwvYm9keT4KPC9odG1sPg==