T24gNSBTZXB0ZW1iZXIgMjAxNSBhdCAxMDozNiwgSmFtZXMgQ2FtZXJvbiA8cXVvemxAbGFwdG9w Lm9yZz4gd3JvdGU6Cgo+IFRoYXQncyBzbyBmdW5ueSwgSSB3YXMgcGxhbm5pbmcgdG8gd3JpdGUg dG8geW91IGhlcmUgdG9kYXkgdG8gYXNrIHlvdQo+IGFib3V0IHRoZSBzYW1lIHRlY2hub2xvZ3ks IGFuZCB5b3UgYmVhdCBtZSB0byBpdC4KPgo+IE15IGludGVuZGVkIGFwcGxpY2F0aW9uIGlzIGRv bWVzdGljIHNvbGFyIGh5YnJpZCwgYWJvdXQgMjkga1doIG9mCj4gc3RvcmFnZS4KPgo+IFRoZSBj eWNsZSBsaWZlLCBwYXJ0aWFsIHN0YXRlIG9mIGNoYXJnZSwgb3BlcmF0aW5nIHRlbXBlcmF0dXJl cywgYW5kCj4gZGVwdGggb2YgZGlzY2hhcmdlIGFyZSB0aGUgbW9zdCBpbnRlcmVzdGluZyBwZXJm b3JtYW5jZSBmZWF0dXJlcy4KPgo+IGh0dHA6Ly9lY291bHQuY29tLwo+IGh0dHA6Ly91bHRyYWJh dHRlcnkuY29tL2ZhcS8KPgo+IFRoZXJlIGFyZSBwbGVudHkgb2YgcmVmZXJlbmNlcywgYnV0IEkn dmUgbm90IGZvbGxvd2VkIHRoZW0gYWxsIHVwLCBhcwo+IEkgbmVlZCBpbiBwcmluY2lwbGUgYXBw cm92YWwgZnJvbSBteSBhY2NvdW50YW50LiAgOy0pCj4KPiBJJ20gdG9sZCB0aGUgcHJvZHVjdCBz aG91bGQgYmUgcHJvZHVjdGlvbiByZWFkeSBpbiBhIGZldyB3ZWVrcy4KPgrigItfX19fX19fX19f X19fX19fX19fX19fX19fCgpBdCAyOSBrV2ggKCEhISEpIG9mIGNhcGFjaXR5IEknZCB3YW50IHRv IGRvIHNvbWUgY29tcGFyYXRpdmUgdGVzdHMgMXN0IS4KClRoZXJlIHNlZW1zIG1vcmUgJiBsZXNz IHRvIGxlYWQtY2FyYm9uIHRoYW4gbWVldHMgdGhlIGV5ZS4KQ29tbWVudCBmcm9tIEtlbiBNYXJk bGUgYmVsb3cuCgpUcm9qYW4gYmF0dGVyaWVzIGxpbmtzIHVzZWZ1bC4KVGhlIHZpZGVvIGlzIGEg Yml0IGNsdW5reSBCVVQgdmVyeSB3b3J0aCBsaXN0ZW5pbmcgdG8uIFRyb2phbiBhcmUgcmVwdXRh YmxlCmNvbXBldGVudCBhbmQgd2VsbCBlc3RhYmxpc2hlZCAoZm91bmRlZCAxOTI1LCBVUyBiYXNl ZCAmIG1hbnVmYWN0dXJlZCkgLgoKVGhleSBhcmUgTk9UIHRhbGtpbmcgYWJvdXQgZnVsbCBjYXJi b24gcGxhdGVzIGJ1dCBhYm91dCBhZGRlZCBjYXJib24uIEhvdwptdWNoIHJlbGF0aW9uc2hpb3Ag YmV0d2VlbiB0aGVtIGFuZCBvdGhlciAic29sdXRpb25zIiBUQkQuClNvbWUgb2YgdGhlIGNsYWlt cyB0aGV5IERPTidUIG1ha2UgYXJlIGludGVyZXN0aW5nCgpJbiBwYXJ0aWN1bGFyIHRoZXkgc2F5 OgoKICAgIFBTT0MgKHBhcnRpYWwgc3RhdGUgb2YgY2hhcmdlKSBpcyB0aGUgb25seSBhcmVhIG9m IGFwcGxpY2F0aW9uIC0KZW1waGFzaXNlZCAmIHJlcGVhdGVkIHNldmVyYWwgdGltZXMuCgogICAg RnVsbCBjeWNsZSBsaWZlIG5vdCBpbXByb3ZlZC4KCiAgICBTdXBlcmNhcCBub3QgbWVudGlvbmVk IGluIHRoZWlyIGNvbW1lbnRzLgoKICAgIE9ubHkgYmVpbmcgaW5jbHVkZWQgaW4gdGhlaXIgZmxv b2RlZCBiYXR0ZXJpZXMsIGJ1dAoKICAgIEFsbCBiYXR0ZXJpZXMgb2YgdGhpcyB0eXBlIHdpbGwg aGF2ZXRoaXMgdGVjaG5vbG9neSBpbiBmdXR1cmUgYW5kCgogICAgWW91IHNob3VsZCBub3QgbWl4 IG5ldyBhbmQgb2xkICh3aGVyZSBoYXZlIEkgaGVhcmQgdGhhdCBiZWZvcmUgLi4uPykKCkFub3Ro ZXIgMWhyIHZpZGVvIGZvbGxvd3MgdGhlIGZpcnN0IC0gSSBoYXZlIG5vdCB2aWV3ZWQgaXQuCgog ICAgICBodHRwczovL3d3dy55b3V0dWJlLmNvbS93YXRjaD92PTZWREs0YXduLTlZCgoKICBSdXNz ZWxsCgpfX19fX19fX19fX19fX19fX19fCgoKLS0tLS0tLS0tLSBGb3J3YXJkZWQgbWVzc2FnZSAt LS0tLS0tLS0tCkZyb206IEtlbiBNYXJkbGUKRGF0ZTogNiBTZXB0ZW1iZXIgMjAxNSBhdCAxMzo0 MApTdWJqZWN0OiBSRTogW0VFXTo6ICh0b28pIE1hamVzdGljIGJhdHRlcnkgcGVyZm9ybWFuY2Ug Y2xhaW1zICg/KQoKClJ1c3NlbGwsCgpBcyBiZXN0IGFzIEkgY2FuIHRlbGwsIHRoZSBsZWFkLWNh cmJvbiBiYXR0ZXJ5IHRoYXQgS2lhIGRlc2lnbmVkIGludG8gdGhlaXIKaHlicmlkIHdhcyBkZXZl bG9wZWQgYnkgRWFzdCBQZW5uIE1hbnVmYWN0dXJpbmcuICAgVGhleSBjbGFpbSB0byBoYXZlIHRo ZQoibGFyZ2VzdCBzaW5nbGUtc2l0ZSBsZWFkLWFjaWQgYmF0dGVyeSBtYW51ZmFjdHVyaW5nIGZh Y2lsaXR5IGluIHRoZQp3b3JsZCIuCgpBbm90aGVyIG1ham9yIHBsYXllciBzZWVtcyB0byBiZSBB eGlvbiBQb3dlciBJbnRlcm5hdGlvbmFsLgoKTmVpdGhlciBjb21wYW55IGFwcGVhciB0byBvZmZl ciBwcm9kdWN0IHRoYXQgeW91IGNhbiBhY3R1YWxseSBidXkuICBUaGlzCm1heSBiZSBiZWNhdXNl IHRoZXkgYXJlIG9ubHkgaW50ZXJlc3RlZCBpbiBzdXBwbHlpbmcgaGlnaCB2b2x1bWUgdXNlcnMg b3IKYmVjYXVzZSB0aGV5IGRvbid0IGFjdHVhbGx5IGhhdmUgYSBwcm9kdWN0IHJlYWR5IHlldC4K CkhlcmUncyB3aGF0IHRoZSBVUyBET0UgaGFkIHRvIHNheSBvbiB0aGUgc3ViamVjdCBpbiBPY3Rv YmVyIDIwMTI6CgpodHRwOi8vZW5lcmd5Lmdvdi9zaXRlcy9wcm9kL2ZpbGVzL0NFTEEucGRmCuKA i+KAiwpZb3Ugd291bGQgdGhpbmsgdGhhdCBzaWduaWZpY2FudCBmdXJ0aGVyIHByb2dyZXNzIHdv dWxkIGhhdmUgYmVlbiBtYWRlIGJ5Cm5vdy4KClRoZSBiYXR0ZXJ5K3N1cGVyY2FwaWNpdG9yIHRl Y2hub2xvZ3kgc2VlbXMgdG8gaGF2ZSBvcmlnaW5hdGVkIGZyb20gd29yawpkb25lIGluIE96IGJ5 IHRoZSBDU0lSTyBhbmQgdGhlaXIgbGljZW5jZWVzIChpbmNsdWRpbmcgRWFzdCBQZW5uCk1hbnVm YWN0dXJpbmcpIGFwcGVhciB0byB1c2UgdGhlIFVsdHJhQmF0dGVyeSBtb25pa2VyLgoKQSBxdWlj ayBzZWFyY2ggZm9yICJsZWFkIGNhcmJvbiBiYXR0ZXJ5IiBvbiBlYmF5IHJldHVybnMgbm8gaGl0 cyAgLSB3aGljaApzdWdnZXN0cyB0byBtZSB0aGF0IGFueSBtYW51ZmFjdHVyZXIgaXMgbGlrZWx5 IHRvIGJlIG91dHNpZGUgdGhlIFVTIGFuZApoZW5jZSBtb3N0IGxpa2VseSBpbiBBc2lhLgoKQSBz aW1pbGFyIHNlYXJjaCBvbiBBbGlCYWJhIHJldHVybnMgbXVsdGlwbGUgaGl0cyAob25jZSB5b3Ug ZXhjbHVkZSB0aGUKc3B1cmlvdXMgb25lcykgbnV0IG5vbmUgdGhhdCBJIGNhbiBzZWUgaGF2ZSB0 aGUgc2FtZSBwaHlzaWNhbCBhcHBlYXJhbmNlIGFzCnRoZSBvbmUgYmVpbmcgb2ZmZXJlZCBvbiBU cmFkZW1lLgoKVGhlIHNhbWUgc2VhcmNoIG9uIEFsaUV4cHJlc3MgcmV0dXJucyBubyByZWxldmFu dCBoaXRzLgoKSXQgd291bGQgYmUgaW50ZXJlc3RpbmcgdG8ga25vdyB3aG8gdGhlIG1hbnVmYWN0 dXJlciBpcyBvZiB0aGUgb25lcyBmb3IKc2FsZSBvbiBUcmFkZW1lLgoKSGVyZSBpcyBvbmUgYmVp bmcgb2ZmZXJlZCBmb3IgbWFyaW5lIGFwcGxpY2F0aW9ucyBpbiB0aGUgVVM6CgpodHRwOi8vd3d3 LmJydWNlc2Nod2FiLmNvbS91cGxvYWRzLzIwMTQtZmlyZWZseS1oYW5kb3V0Mi5wZGYKClRoZSBz cGVjcyBkb24ndCBzb3VuZCB0b28gb3V0bGFuZGlzaCwgYW5kIG90aGVyIG1hdGVyaWFsIG9uIHRo ZSB3ZWJzaXRlCnN1Z2dlc3RzIHRoYXQgcmVwdXRhYmxlIHVzZXJzIGhhdmUgZm91bmQgdGhlbSB0 byBwZXJmb3JtIGFzIGNsYWltZWQuCkludGVyZXN0aW5nIHRoYXQgb25lIHRlc3RpbW9uYWwgaXMg YmFzZWQgb24gc2l4IHllYXJzIG9mIHVzZSAgLSBzbyB0aGlzCmJhdHRlcnkgaGFzIGJlZW4gYXJv dW5kIGZvciBzb21lIHRpbWUuCgpUcm9qYW4gQmF0dGVyeSAoYSB2ZXJ5IHdlbGwgcmVzcGVjdGVk IFVTIG1hbnVmYWN0dXJlcikgaGFzIHRoaXMgdG8gc2F5OgoKaHR0cDovL3d3dy50cm9qYW5iYXR0 ZXJ5LmNvbS93cC1jb250ZW50L3VwbG9hZHMvMjAxNC8wMS9TbWFydENhcmJvbl9PdmVydmlldy5w ZGYKCmFuZCBwcm92aWRlIHRoaXMgc29tZXdoYXQgYW1hdGVyaXNoIGFuZCBsb25nLXdpbmRlZCAi d2ViaW5hciIgKGRhdGVkIE1hcmNoCjIwMTQpOgoKaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0 Y2g/dj1Qbk9jRmRZc2hrdwoKVGhlaXIgY2xhaW1zIGFyZSBtdWNoIG1vcmUgbW9kZXN0LiAgSW50 ZXJlc3RpbmcgdGhhdCB0aGV5IG9ubHkgb2ZmZXIgdGhlaXIKY2FyYm9uIGVuaGFuY2VtZW50IGlu IGZsb29kZWQgY2VsbCAicHJvZmVzc2lvbmFsIiBiYXR0ZXJpZXMgIC0gYW5kIHRoZXkKc3BlY2lm aWNhbGx5IHN0YXRlIHRoYXQgaXQgb25seSBoZWxwcyBpbiBQU09DIHNpdHVhdGlvbnMuCgpSZWdh cmRzLAoKS2VuIE1hcmRsZQoKRWxlY3N5biBMaW1pdGVkICAgICAgICAgICAgICAgIFRlbCAgICA6 ICs2NCA5IDQxNS0yNTE0ClAuTy4gQm94IDY0ODAgICAgICAgICAgICAgICAgICBGYXggICAgOiAr NjQgOSA0MTUtMjUxNApXZWxsZXNsZXkgU3QgICAgICAgICAgICAgICAgICAgTW9iaWxlIDogKzY0 IDIxIDg3OS02NDgKTkVXIFpFQUxBTkQgICAgICAgICAgICAgICAgICAgIFdXVyAgICA6IGh0dHA6 Ly93d3cuZWxlY3N5bi5jb20KLS0gCmh0dHA6Ly93d3cucGljbGlzdC5jb20vdGVjaHJlZi9waWNs aXN0IFBJQy9TWCBGQVEgJiBsaXN0IGFyY2hpdmUKVmlldy9jaGFuZ2UgeW91ciBtZW1iZXJzaGlw IG9wdGlvbnMgYXQKaHR0cDovL21haWxtYW4ubWl0LmVkdS9tYWlsbWFuL2xpc3RpbmZvL3BpY2xp c3QK .