From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek_=3Czbyszek=40in=2Ewaw=2Epl=3E?= To: git-commits@fedoraproject.org Subject: [rpms/fedora-packager] epel10: Restore original GPLv2+ license text Date: Thu, 25 Jun 2026 13:19:37 GMT Message-ID: <178239357717.1.17788774470489950796.rpms-fedora-packager-2bb511d3d908@fedoraproject.org> List-ID: X-Git-Repo: rpms/fedora-packager X-Git-Branch: epel10 X-Git-Rev: 2bb511d3d90846e02ad3dc406d81a6a86ae3929f ICAgICAgICAgICAgQSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KCiAgICAgICAgICAgIFJl cG8gICA6IHJwbXMvZmVkb3JhLXBhY2thZ2VyCiAgICAgICAgICAgIEJyYW5jaCA6IGVwZWwxMAog ICAgICAgICAgICBDb21taXQgOiAyYmI1MTFkM2Q5MDg0NmUwMmFkM2RjNDA2ZDgxYTZhODZhZTM5 MjlmCiAgICAgICAgICAgIEF1dGhvciA6IFpiaWduaWV3IErEmWRyemVqZXdza2ktU3ptZWsgPHpi eXN6ZWtAaW4ud2F3LnBsPgogICAgICAgICAgICBEYXRlICAgOiAyMDI0LTA4LTA5VDExOjI1OjQ0 LTA0OjAwCiAgICAgICAgICAgIFN0YXRzICA6ICsyODkvLTYyNSBpbiAyIGZpbGUocykKICAgICAg ICAgICAgVVJMICAgIDogaHR0cHM6Ly9zcmMuZmVkb3JhcHJvamVjdC5vcmcvcnBtcy9mZWRvcmEt cGFja2FnZXIvYy8yYmI1MTFkM2Q5MDg0NmUwMmFkM2RjNDA2ZDgxYTZhODZhZTM5MjlmP2JyYW5j aD1lcGVsMTAKCiAgICAgICAgICAgIExvZzoKICAgICAgICAgICAgUmVzdG9yZSBvcmlnaW5hbCBH UEx2MisgbGljZW5zZSB0ZXh0CgpUaGUgcHJvamVjdCB3YXMgYWx3YXlzIGxpY2Vuc2VkIGFzIEdQ THYyKywgYnV0IHRoZSBsaWNlbnNlIGZpbGUgd2FzCmNoYW5nZWQgZnJvbSBHUEx2MiB0byBHUEx2 MyBkdXJpbmcgYSBjbGVhbnVwLiAoR1BMIHdhcyB0aGUgZmlsZSBmb3IKdGhlIHByb2plY3QsIGFu ZCBDT1BZSU5HIHdhcyBhIHN5bWxpbmsgdG8gYXV0b21ha2UncyBDT1BZSU5HIGZpbGUuKQoKY29t bWl0IDEzOWY5OWZjMzhlY2E1MjljYzc0YzI3NjNkNWRiZTg0NDY1ODI5YmIKQXV0aG9yOiBUb2Rk IFp1bGxpbmdlciA8dG16QHBvYm94LmNvbT4KRGF0ZTogICBUaHUgSmFuIDI5IDE1OjQ2OjE4IDIw MDkgLTA2MDAKCiAgICBSZW1vdmUgZ2VuZXJhdGVkIGZpbGVzIGFuZCBvdGhlciBhdXRvdG9vbHMg Y3J1ZnQKICAgIC0tLQogICAgIENPUFlJTkcgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAt CiAgICAgR1BMICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzM5IC0tLS0KICAgIC4uLgoK Y29tbWl0IGUyMzc2NmFjYjJlMDg0ZmU4NDVlMjMzOTIxOTJkZWI1YjFhYWVjMWUKQXV0aG9yOiBU b2RkIFp1bGxpbmdlciA8dG16QHBvYm94LmNvbT4KRGF0ZTogICBUaHUgSmFuIDI5IDE1OjQ2OjE4 IDIwMDkgLTA2MDAKCiAgICBSZXN0b3JlIENPUFlJTkcgYXMgYSByZWd1bGFyIGZpbGUKICAgIC0t LQogICAgIENPUFlJTkcgfCAgNjc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKwogICAgIDEgZmlsZXMgY2hhbmdlZCwgNjc0IGlu c2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCiAgICAgY3JlYXRlIG1vZGUgMTAwNjQ0IENPUFlJ TkcKClJlc3RvcmUgdGhlIG9yaWdpbmFsIEdQTHYyIHRleHQgc28gdGhhdCB0aGUgZGVjbGFyZWQg bGljZW5zZSBtYXRjaGVzCnRoZSBsaWNlbnNlIHRleHQuCgotLS0KZGlmZiAtLWdpdCBhL0NPUFlJ TkcgYi9DT1BZSU5HCmluZGV4IDk0YTllZDAuLmE0M2VhMjEgMTAwNjQ0Ci0tLSBhL0NPUFlJTkcK KysrIGIvQ09QWUlORwpAQCAtMSw2MjYgKzEsMjg1IEBACi0gICAgICAgICAgICAgICAgICAgIEdO VSBHRU5FUkFMIFBVQkxJQyBMSUNFTlNFCi0gICAgICAgICAgICAgICAgICAgICAgIFZlcnNpb24g MywgMjkgSnVuZSAyMDA3CisJCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorCQkgICAg ICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKIAotIENvcHlyaWdodCAoQykgMjAwNyBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4gPGh0dHA6Ly9mc2Yub3JnLz4KKyBDb3B5cmlnaHQgKEMpIDE5 ODksIDE5OTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisgICAgICAgICAgICAgICAg ICAgICAgICAgIDY3NSBNYXNzIEF2ZSwgQ2FtYnJpZGdlLCBNQSAwMjEzOSwgVVNBCiAgRXZlcnlv bmUgaXMgcGVybWl0dGVkIHRvIGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0gY29waWVzCiAg b2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQu CiAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVhbWJsZQorCQkJICAgIFByZWFtYmxl CiAKLSAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGEgZnJlZSwgY29weWxlZnQg bGljZW5zZSBmb3IKLXNvZnR3YXJlIGFuZCBvdGhlciBraW5kcyBvZiB3b3Jrcy4KLQotICBUaGUg bGljZW5zZXMgZm9yIG1vc3Qgc29mdHdhcmUgYW5kIG90aGVyIHByYWN0aWNhbCB3b3JrcyBhcmUg ZGVzaWduZWQKLXRvIHRha2UgYXdheSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSB0 aGUgd29ya3MuICBCeSBjb250cmFzdCwKLXRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBp cyBpbnRlbmRlZCB0byBndWFyYW50ZWUgeW91ciBmcmVlZG9tIHRvCi1zaGFyZSBhbmQgY2hhbmdl IGFsbCB2ZXJzaW9ucyBvZiBhIHByb2dyYW0tLXRvIG1ha2Ugc3VyZSBpdCByZW1haW5zIGZyZWUK LXNvZnR3YXJlIGZvciBhbGwgaXRzIHVzZXJzLiAgV2UsIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIHVzZSB0aGUKLUdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3N0IG9mIG91 ciBzb2Z0d2FyZTsgaXQgYXBwbGllcyBhbHNvIHRvCi1hbnkgb3RoZXIgd29yayByZWxlYXNlZCB0 aGlzIHdheSBieSBpdHMgYXV0aG9ycy4gIFlvdSBjYW4gYXBwbHkgaXQgdG8KKyAgVGhlIGxpY2Vu c2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgorZnJl ZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGl0LiAgQnkgY29udHJhc3QsIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMKK0xpY2Vuc2UgaXMgaW50ZW5kZWQgdG8gZ3VhcmFudGVlIHlvdXIgZnJlZWRvbSB0 byBzaGFyZSBhbmQgY2hhbmdlIGZyZWUKK3NvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3 YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCitHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGFwcGxpZXMgdG8gbW9zdCBvZiB0aGUgRnJlZSBTb2Z0d2FyZQorRm91bmRhdGlvbidzIHNv ZnR3YXJlIGFuZCB0byBhbnkgb3RoZXIgcHJvZ3JhbSB3aG9zZSBhdXRob3JzIGNvbW1pdCB0bwor dXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUg aXMgY292ZXJlZCBieQordGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW5z dGVhZC4pICBZb3UgY2FuIGFwcGx5IGl0IHRvCiB5b3VyIHByb2dyYW1zLCB0b28uCiAKICAgV2hl biB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20s IG5vdAogcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRv IG1ha2Ugc3VyZSB0aGF0IHlvdQogaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNvcGll cyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgotdGhlbSBpZiB5b3Ugd2lzaCksIHRo YXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdCBpZiB5b3UKLXdhbnQgaXQs IHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQgaW4g bmV3Ci1mcmVlIHByb2dyYW1zLCBhbmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRo aW5ncy4KK3RoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNl IGNvZGUgb3IgY2FuIGdldCBpdAoraWYgeW91IHdhbnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2Ug dGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQKK2luIG5ldyBmcmVlIHByb2dyYW1zOyBh bmQgdGhhdCB5b3Uga25vdyB5b3UgY2FuIGRvIHRoZXNlIHRoaW5ncy4KIAotICBUbyBwcm90ZWN0 IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIHByZXZlbnQgb3RoZXJzIGZyb20gZGVueWluZyB5b3UK LXRoZXNlIHJpZ2h0cyBvciBhc2tpbmcgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLiAgVGhl cmVmb3JlLCB5b3UgaGF2ZQotY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIGlmIHlvdSBkaXN0cmli dXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmCi15b3UgbW9kaWZ5IGl0OiByZXNwb25z aWJpbGl0aWVzIHRvIHJlc3BlY3QgdGhlIGZyZWVkb20gb2Ygb3RoZXJzLgorICBUbyBwcm90ZWN0 IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25zIHRoYXQgZm9yYmlkCith bnlvbmUgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRzIG9yIHRvIGFzayB5b3UgdG8gc3VycmVuZGVy IHRoZSByaWdodHMuCitUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVz cG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQorZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNv ZnR3YXJlLCBvciBpZiB5b3UgbW9kaWZ5IGl0LgogCiAgIEZvciBleGFtcGxlLCBpZiB5b3UgZGlz dHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKLWdyYXRpcyBvciBmb3Ig YSBmZWUsIHlvdSBtdXN0IHBhc3Mgb24gdG8gdGhlIHJlY2lwaWVudHMgdGhlIHNhbWUKLWZyZWVk b21zIHRoYXQgeW91IHJlY2VpdmVkLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9v LCByZWNlaXZlCi1vciBjYW4gZ2V0IHRoZSBzb3VyY2UgY29kZS4gIEFuZCB5b3UgbXVzdCBzaG93 IHRoZW0gdGhlc2UgdGVybXMgc28gdGhleQota25vdyB0aGVpciByaWdodHMuCi0KLSAgRGV2ZWxv cGVycyB0aGF0IHVzZSB0aGUgR05VIEdQTCBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0 ZXBzOgotKDEpIGFzc2VydCBjb3B5cmlnaHQgb24gdGhlIHNvZnR3YXJlLCBhbmQgKDIpIG9mZmVy IHlvdSB0aGlzIExpY2Vuc2UKLWdpdmluZyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LCBk aXN0cmlidXRlIGFuZC9vciBtb2RpZnkgaXQuCi0KLSAgRm9yIHRoZSBkZXZlbG9wZXJzJyBhbmQg YXV0aG9ycycgcHJvdGVjdGlvbiwgdGhlIEdQTCBjbGVhcmx5IGV4cGxhaW5zCi10aGF0IHRoZXJl IGlzIG5vIHdhcnJhbnR5IGZvciB0aGlzIGZyZWUgc29mdHdhcmUuICBGb3IgYm90aCB1c2Vycycg YW5kCi1hdXRob3JzJyBzYWtlLCB0aGUgR1BMIHJlcXVpcmVzIHRoYXQgbW9kaWZpZWQgdmVyc2lv bnMgYmUgbWFya2VkIGFzCi1jaGFuZ2VkLCBzbyB0aGF0IHRoZWlyIHByb2JsZW1zIHdpbGwgbm90 IGJlIGF0dHJpYnV0ZWQgZXJyb25lb3VzbHkgdG8KLWF1dGhvcnMgb2YgcHJldmlvdXMgdmVyc2lv bnMuCi0KLSAgU29tZSBkZXZpY2VzIGFyZSBkZXNpZ25lZCB0byBkZW55IHVzZXJzIGFjY2VzcyB0 byBpbnN0YWxsIG9yIHJ1bgotbW9kaWZpZWQgdmVyc2lvbnMgb2YgdGhlIHNvZnR3YXJlIGluc2lk ZSB0aGVtLCBhbHRob3VnaCB0aGUgbWFudWZhY3R1cmVyCi1jYW4gZG8gc28uICBUaGlzIGlzIGZ1 bmRhbWVudGFsbHkgaW5jb21wYXRpYmxlIHdpdGggdGhlIGFpbSBvZgotcHJvdGVjdGluZyB1c2Vy cycgZnJlZWRvbSB0byBjaGFuZ2UgdGhlIHNvZnR3YXJlLiAgVGhlIHN5c3RlbWF0aWMKLXBhdHRl cm4gb2Ygc3VjaCBhYnVzZSBvY2N1cnMgaW4gdGhlIGFyZWEgb2YgcHJvZHVjdHMgZm9yIGluZGl2 aWR1YWxzIHRvCi11c2UsIHdoaWNoIGlzIHByZWNpc2VseSB3aGVyZSBpdCBpcyBtb3N0IHVuYWNj ZXB0YWJsZS4gIFRoZXJlZm9yZSwgd2UKLWhhdmUgZGVzaWduZWQgdGhpcyB2ZXJzaW9uIG9mIHRo ZSBHUEwgdG8gcHJvaGliaXQgdGhlIHByYWN0aWNlIGZvciB0aG9zZQotcHJvZHVjdHMuICBJZiBz dWNoIHByb2JsZW1zIGFyaXNlIHN1YnN0YW50aWFsbHkgaW4gb3RoZXIgZG9tYWlucywgd2UKLXN0 YW5kIHJlYWR5IHRvIGV4dGVuZCB0aGlzIHByb3Zpc2lvbiB0byB0aG9zZSBkb21haW5zIGluIGZ1 dHVyZSB2ZXJzaW9ucwotb2YgdGhlIEdQTCwgYXMgbmVlZGVkIHRvIHByb3RlY3QgdGhlIGZyZWVk b20gb2YgdXNlcnMuCi0KLSAgRmluYWxseSwgZXZlcnkgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNv bnN0YW50bHkgYnkgc29mdHdhcmUgcGF0ZW50cy4KLVN0YXRlcyBzaG91bGQgbm90IGFsbG93IHBh dGVudHMgdG8gcmVzdHJpY3QgZGV2ZWxvcG1lbnQgYW5kIHVzZSBvZgotc29mdHdhcmUgb24gZ2Vu ZXJhbC1wdXJwb3NlIGNvbXB1dGVycywgYnV0IGluIHRob3NlIHRoYXQgZG8sIHdlIHdpc2ggdG8K LWF2b2lkIHRoZSBzcGVjaWFsIGRhbmdlciB0aGF0IHBhdGVudHMgYXBwbGllZCB0byBhIGZyZWUg cHJvZ3JhbSBjb3VsZAotbWFrZSBpdCBlZmZlY3RpdmVseSBwcm9wcmlldGFyeS4gIFRvIHByZXZl bnQgdGhpcywgdGhlIEdQTCBhc3N1cmVzIHRoYXQKLXBhdGVudHMgY2Fubm90IGJlIHVzZWQgdG8g cmVuZGVyIHRoZSBwcm9ncmFtIG5vbi1mcmVlLgorZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11 c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0Cit5b3UgaGF2ZS4gIFlv dSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZQor c291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkg a25vdyB0aGVpcgorcmlnaHRzLgorCisgIFdlIHByb3RlY3QgeW91ciByaWdodHMgd2l0aCB0d28g c3RlcHM6ICgxKSBjb3B5cmlnaHQgdGhlIHNvZnR3YXJlLCBhbmQKKygyKSBvZmZlciB5b3UgdGhp cyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCitkaXN0 cmlidXRlIGFuZC9vciBtb2RpZnkgdGhlIHNvZnR3YXJlLgorCisgIEFsc28sIGZvciBlYWNoIGF1 dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCit0aGF0 IGV2ZXJ5b25lIHVuZGVyc3RhbmRzIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMg ZnJlZQorc29mdHdhcmUuICBJZiB0aGUgc29mdHdhcmUgaXMgbW9kaWZpZWQgYnkgc29tZW9uZSBl bHNlIGFuZCBwYXNzZWQgb24sIHdlCit3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3 aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwordGhhdCBhbnkgcHJvYmxlbXMg aW50cm9kdWNlZCBieSBvdGhlcnMgd2lsbCBub3QgcmVmbGVjdCBvbiB0aGUgb3JpZ2luYWwKK2F1 dGhvcnMnIHJlcHV0YXRpb25zLgorCisgIEZpbmFsbHksIGFueSBmcmVlIHByb2dyYW0gaXMgdGhy ZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlCitwYXRlbnRzLiAgV2Ugd2lzaCB0byBhdm9p ZCB0aGUgZGFuZ2VyIHRoYXQgcmVkaXN0cmlidXRvcnMgb2YgYSBmcmVlCitwcm9ncmFtIHdpbGwg aW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhl Citwcm9ncmFtIHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB3ZSBoYXZlIG1hZGUgaXQg Y2xlYXIgdGhhdCBhbnkKK3BhdGVudCBtdXN0IGJlIGxpY2Vuc2VkIGZvciBldmVyeW9uZSdzIGZy ZWUgdXNlIG9yIG5vdCBsaWNlbnNlZCBhdCBhbGwuCiAKICAgVGhlIHByZWNpc2UgdGVybXMgYW5k IGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKIG1vZGlmaWNhdGlvbiBm b2xsb3cuCi0KLSAgICAgICAgICAgICAgICAgICAgICAgVEVSTVMgQU5EIENPTkRJVElPTlMKLQot ICAwLiBEZWZpbml0aW9ucy4KLQotICAiVGhpcyBMaWNlbnNlIiByZWZlcnMgdG8gdmVyc2lvbiAz IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KLQotICAiQ29weXJpZ2h0IiBhbHNv IG1lYW5zIGNvcHlyaWdodC1saWtlIGxhd3MgdGhhdCBhcHBseSB0byBvdGhlciBraW5kcyBvZgot d29ya3MsIHN1Y2ggYXMgc2VtaWNvbmR1Y3RvciBtYXNrcy4KLQotICAiVGhlIFByb2dyYW0iIHJl ZmVycyB0byBhbnkgY29weXJpZ2h0YWJsZSB3b3JrIGxpY2Vuc2VkIHVuZGVyIHRoaXMKLUxpY2Vu c2UuICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4gICJMaWNlbnNlZXMiIGFu ZAotInJlY2lwaWVudHMiIG1heSBiZSBpbmRpdmlkdWFscyBvciBvcmdhbml6YXRpb25zLgotCi0g IFRvICJtb2RpZnkiIGEgd29yayBtZWFucyB0byBjb3B5IGZyb20gb3IgYWRhcHQgYWxsIG9yIHBh cnQgb2YgdGhlIHdvcmsKLWluIGEgZmFzaGlvbiByZXF1aXJpbmcgY29weXJpZ2h0IHBlcm1pc3Np b24sIG90aGVyIHRoYW4gdGhlIG1ha2luZyBvZiBhbgotZXhhY3QgY29weS4gIFRoZSByZXN1bHRp bmcgd29yayBpcyBjYWxsZWQgYSAibW9kaWZpZWQgdmVyc2lvbiIgb2YgdGhlCi1lYXJsaWVyIHdv cmsgb3IgYSB3b3JrICJiYXNlZCBvbiIgdGhlIGVhcmxpZXIgd29yay4KLQotICBBICJjb3ZlcmVk IHdvcmsiIG1lYW5zIGVpdGhlciB0aGUgdW5tb2RpZmllZCBQcm9ncmFtIG9yIGEgd29yayBiYXNl ZAotb24gdGhlIFByb2dyYW0uCi0KLSAgVG8gInByb3BhZ2F0ZSIgYSB3b3JrIG1lYW5zIHRvIGRv IGFueXRoaW5nIHdpdGggaXQgdGhhdCwgd2l0aG91dAotcGVybWlzc2lvbiwgd291bGQgbWFrZSB5 b3UgZGlyZWN0bHkgb3Igc2Vjb25kYXJpbHkgbGlhYmxlIGZvcgotaW5mcmluZ2VtZW50IHVuZGVy IGFwcGxpY2FibGUgY29weXJpZ2h0IGxhdywgZXhjZXB0IGV4ZWN1dGluZyBpdCBvbiBhCi1jb21w dXRlciBvciBtb2RpZnlpbmcgYSBwcml2YXRlIGNvcHkuICBQcm9wYWdhdGlvbiBpbmNsdWRlcyBj b3B5aW5nLAotZGlzdHJpYnV0aW9uICh3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9uKSwgbWFr aW5nIGF2YWlsYWJsZSB0byB0aGUKLXB1YmxpYywgYW5kIGluIHNvbWUgY291bnRyaWVzIG90aGVy IGFjdGl2aXRpZXMgYXMgd2VsbC4KLQotICBUbyAiY29udmV5IiBhIHdvcmsgbWVhbnMgYW55IGtp bmQgb2YgcHJvcGFnYXRpb24gdGhhdCBlbmFibGVzIG90aGVyCi1wYXJ0aWVzIHRvIG1ha2Ugb3Ig cmVjZWl2ZSBjb3BpZXMuICBNZXJlIGludGVyYWN0aW9uIHdpdGggYSB1c2VyIHRocm91Z2gKLWEg Y29tcHV0ZXIgbmV0d29yaywgd2l0aCBubyB0cmFuc2ZlciBvZiBhIGNvcHksIGlzIG5vdCBjb252 ZXlpbmcuCi0KLSAgQW4gaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2UgZGlzcGxheXMgIkFwcHJv cHJpYXRlIExlZ2FsIE5vdGljZXMiCi10byB0aGUgZXh0ZW50IHRoYXQgaXQgaW5jbHVkZXMgYSBj b252ZW5pZW50IGFuZCBwcm9taW5lbnRseSB2aXNpYmxlCi1mZWF0dXJlIHRoYXQgKDEpIGRpc3Bs YXlzIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UsIGFuZCAoMikKLXRlbGxzIHRoZSB1 c2VyIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoZSB3b3JrIChleGNlcHQgdG8gdGhl Ci1leHRlbnQgdGhhdCB3YXJyYW50aWVzIGFyZSBwcm92aWRlZCksIHRoYXQgbGljZW5zZWVzIG1h eSBjb252ZXkgdGhlCi13b3JrIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIGhvdyB0byB2aWV3IGEg Y29weSBvZiB0aGlzIExpY2Vuc2UuICBJZgotdGhlIGludGVyZmFjZSBwcmVzZW50cyBhIGxpc3Qg b2YgdXNlciBjb21tYW5kcyBvciBvcHRpb25zLCBzdWNoIGFzIGEKLW1lbnUsIGEgcHJvbWluZW50 IGl0ZW0gaW4gdGhlIGxpc3QgbWVldHMgdGhpcyBjcml0ZXJpb24uCi0KLSAgMS4gU291cmNlIENv ZGUuCi0KLSAgVGhlICJzb3VyY2UgY29kZSIgZm9yIGEgd29yayBtZWFucyB0aGUgcHJlZmVycmVk IGZvcm0gb2YgdGhlIHdvcmsKLWZvciBtYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gICJPYmpl Y3QgY29kZSIgbWVhbnMgYW55IG5vbi1zb3VyY2UKLWZvcm0gb2YgYSB3b3JrLgotCi0gIEEgIlN0 YW5kYXJkIEludGVyZmFjZSIgbWVhbnMgYW4gaW50ZXJmYWNlIHRoYXQgZWl0aGVyIGlzIGFuIG9m ZmljaWFsCi1zdGFuZGFyZCBkZWZpbmVkIGJ5IGEgcmVjb2duaXplZCBzdGFuZGFyZHMgYm9keSwg b3IsIGluIHRoZSBjYXNlIG9mCi1pbnRlcmZhY2VzIHNwZWNpZmllZCBmb3IgYSBwYXJ0aWN1bGFy IHByb2dyYW1taW5nIGxhbmd1YWdlLCBvbmUgdGhhdAotaXMgd2lkZWx5IHVzZWQgYW1vbmcgZGV2 ZWxvcGVycyB3b3JraW5nIGluIHRoYXQgbGFuZ3VhZ2UuCi0KLSAgVGhlICJTeXN0ZW0gTGlicmFy aWVzIiBvZiBhbiBleGVjdXRhYmxlIHdvcmsgaW5jbHVkZSBhbnl0aGluZywgb3RoZXIKLXRoYW4g dGhlIHdvcmsgYXMgYSB3aG9sZSwgdGhhdCAoYSkgaXMgaW5jbHVkZWQgaW4gdGhlIG5vcm1hbCBm b3JtIG9mCi1wYWNrYWdpbmcgYSBNYWpvciBDb21wb25lbnQsIGJ1dCB3aGljaCBpcyBub3QgcGFy dCBvZiB0aGF0IE1ham9yCi1Db21wb25lbnQsIGFuZCAoYikgc2VydmVzIG9ubHkgdG8gZW5hYmxl IHVzZSBvZiB0aGUgd29yayB3aXRoIHRoYXQKLU1ham9yIENvbXBvbmVudCwgb3IgdG8gaW1wbGVt ZW50IGEgU3RhbmRhcmQgSW50ZXJmYWNlIGZvciB3aGljaCBhbgotaW1wbGVtZW50YXRpb24gaXMg YXZhaWxhYmxlIHRvIHRoZSBwdWJsaWMgaW4gc291cmNlIGNvZGUgZm9ybS4gIEEKLSJNYWpvciBD b21wb25lbnQiLCBpbiB0aGlzIGNvbnRleHQsIG1lYW5zIGEgbWFqb3IgZXNzZW50aWFsIGNvbXBv bmVudAotKGtlcm5lbCwgd2luZG93IHN5c3RlbSwgYW5kIHNvIG9uKSBvZiB0aGUgc3BlY2lmaWMg b3BlcmF0aW5nIHN5c3RlbQotKGlmIGFueSkgb24gd2hpY2ggdGhlIGV4ZWN1dGFibGUgd29yayBy dW5zLCBvciBhIGNvbXBpbGVyIHVzZWQgdG8KLXByb2R1Y2UgdGhlIHdvcmssIG9yIGFuIG9iamVj dCBjb2RlIGludGVycHJldGVyIHVzZWQgdG8gcnVuIGl0LgotCi0gIFRoZSAiQ29ycmVzcG9uZGlu ZyBTb3VyY2UiIGZvciBhIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSBtZWFucyBhbGwKLXRoZSBz b3VyY2UgY29kZSBuZWVkZWQgdG8gZ2VuZXJhdGUsIGluc3RhbGwsIGFuZCAoZm9yIGFuIGV4ZWN1 dGFibGUKLXdvcmspIHJ1biB0aGUgb2JqZWN0IGNvZGUgYW5kIHRvIG1vZGlmeSB0aGUgd29yaywg aW5jbHVkaW5nIHNjcmlwdHMgdG8KLWNvbnRyb2wgdGhvc2UgYWN0aXZpdGllcy4gIEhvd2V2ZXIs IGl0IGRvZXMgbm90IGluY2x1ZGUgdGhlIHdvcmsncwotU3lzdGVtIExpYnJhcmllcywgb3IgZ2Vu ZXJhbC1wdXJwb3NlIHRvb2xzIG9yIGdlbmVyYWxseSBhdmFpbGFibGUgZnJlZQotcHJvZ3JhbXMg d2hpY2ggYXJlIHVzZWQgdW5tb2RpZmllZCBpbiBwZXJmb3JtaW5nIHRob3NlIGFjdGl2aXRpZXMg YnV0Ci13aGljaCBhcmUgbm90IHBhcnQgb2YgdGhlIHdvcmsuICBGb3IgZXhhbXBsZSwgQ29ycmVz cG9uZGluZyBTb3VyY2UKLWluY2x1ZGVzIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzIGFzc29j aWF0ZWQgd2l0aCBzb3VyY2UgZmlsZXMgZm9yCi10aGUgd29yaywgYW5kIHRoZSBzb3VyY2UgY29k ZSBmb3Igc2hhcmVkIGxpYnJhcmllcyBhbmQgZHluYW1pY2FsbHkKLWxpbmtlZCBzdWJwcm9ncmFt cyB0aGF0IHRoZSB3b3JrIGlzIHNwZWNpZmljYWxseSBkZXNpZ25lZCB0byByZXF1aXJlLAotc3Vj aCBhcyBieSBpbnRpbWF0ZSBkYXRhIGNvbW11bmljYXRpb24gb3IgY29udHJvbCBmbG93IGJldHdl ZW4gdGhvc2UKLXN1YnByb2dyYW1zIGFuZCBvdGhlciBwYXJ0cyBvZiB0aGUgd29yay4KLQotICBU aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IHVz ZXJzCi1jYW4gcmVnZW5lcmF0ZSBhdXRvbWF0aWNhbGx5IGZyb20gb3RoZXIgcGFydHMgb2YgdGhl IENvcnJlc3BvbmRpbmcKLVNvdXJjZS4KLQotICBUaGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9y IGEgd29yayBpbiBzb3VyY2UgY29kZSBmb3JtIGlzIHRoYXQKLXNhbWUgd29yay4KLQotICAyLiBC YXNpYyBQZXJtaXNzaW9ucy4KLQotICBBbGwgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNl bnNlIGFyZSBncmFudGVkIGZvciB0aGUgdGVybSBvZgotY29weXJpZ2h0IG9uIHRoZSBQcm9ncmFt LCBhbmQgYXJlIGlycmV2b2NhYmxlIHByb3ZpZGVkIHRoZSBzdGF0ZWQKLWNvbmRpdGlvbnMgYXJl IG1ldC4gIFRoaXMgTGljZW5zZSBleHBsaWNpdGx5IGFmZmlybXMgeW91ciB1bmxpbWl0ZWQKLXBl cm1pc3Npb24gdG8gcnVuIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0uICBUaGUgb3V0cHV0IGZyb20g cnVubmluZyBhCi1jb3ZlcmVkIHdvcmsgaXMgY292ZXJlZCBieSB0aGlzIExpY2Vuc2Ugb25seSBp ZiB0aGUgb3V0cHV0LCBnaXZlbiBpdHMKLWNvbnRlbnQsIGNvbnN0aXR1dGVzIGEgY292ZXJlZCB3 b3JrLiAgVGhpcyBMaWNlbnNlIGFja25vd2xlZGdlcyB5b3VyCi1yaWdodHMgb2YgZmFpciB1c2Ug b3Igb3RoZXIgZXF1aXZhbGVudCwgYXMgcHJvdmlkZWQgYnkgY29weXJpZ2h0IGxhdy4KLQotICBZ b3UgbWF5IG1ha2UsIHJ1biBhbmQgcHJvcGFnYXRlIGNvdmVyZWQgd29ya3MgdGhhdCB5b3UgZG8g bm90Ci1jb252ZXksIHdpdGhvdXQgY29uZGl0aW9ucyBzbyBsb25nIGFzIHlvdXIgbGljZW5zZSBv dGhlcndpc2UgcmVtYWlucwotaW4gZm9yY2UuICBZb3UgbWF5IGNvbnZleSBjb3ZlcmVkIHdvcmtz IHRvIG90aGVycyBmb3IgdGhlIHNvbGUgcHVycG9zZQotb2YgaGF2aW5nIHRoZW0gbWFrZSBtb2Rp ZmljYXRpb25zIGV4Y2x1c2l2ZWx5IGZvciB5b3UsIG9yIHByb3ZpZGUgeW91Ci13aXRoIGZhY2ls aXRpZXMgZm9yIHJ1bm5pbmcgdGhvc2Ugd29ya3MsIHByb3ZpZGVkIHRoYXQgeW91IGNvbXBseSB3 aXRoCi10aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIGluIGNvbnZleWluZyBhbGwgbWF0ZXJpYWwg Zm9yIHdoaWNoIHlvdSBkbwotbm90IGNvbnRyb2wgY29weXJpZ2h0LiAgVGhvc2UgdGh1cyBtYWtp bmcgb3IgcnVubmluZyB0aGUgY292ZXJlZCB3b3JrcwotZm9yIHlvdSBtdXN0IGRvIHNvIGV4Y2x1 c2l2ZWx5IG9uIHlvdXIgYmVoYWxmLCB1bmRlciB5b3VyIGRpcmVjdGlvbgotYW5kIGNvbnRyb2ws IG9uIHRlcm1zIHRoYXQgcHJvaGliaXQgdGhlbSBmcm9tIG1ha2luZyBhbnkgY29waWVzIG9mCi15 b3VyIGNvcHlyaWdodGVkIG1hdGVyaWFsIG91dHNpZGUgdGhlaXIgcmVsYXRpb25zaGlwIHdpdGgg eW91LgotCi0gIENvbnZleWluZyB1bmRlciBhbnkgb3RoZXIgY2lyY3Vtc3RhbmNlcyBpcyBwZXJt aXR0ZWQgc29sZWx5IHVuZGVyCi10aGUgY29uZGl0aW9ucyBzdGF0ZWQgYmVsb3cuICBTdWJsaWNl bnNpbmcgaXMgbm90IGFsbG93ZWQ7IHNlY3Rpb24gMTAKLW1ha2VzIGl0IHVubmVjZXNzYXJ5Lgot Ci0gIDMuIFByb3RlY3RpbmcgVXNlcnMnIExlZ2FsIFJpZ2h0cyBGcm9tIEFudGktQ2lyY3VtdmVu dGlvbiBMYXcuCi0KLSAgTm8gY292ZXJlZCB3b3JrIHNoYWxsIGJlIGRlZW1lZCBwYXJ0IG9mIGFu IGVmZmVjdGl2ZSB0ZWNobm9sb2dpY2FsCi1tZWFzdXJlIHVuZGVyIGFueSBhcHBsaWNhYmxlIGxh dyBmdWxmaWxsaW5nIG9ibGlnYXRpb25zIHVuZGVyIGFydGljbGUKLTExIG9mIHRoZSBXSVBPIGNv cHlyaWdodCB0cmVhdHkgYWRvcHRlZCBvbiAyMCBEZWNlbWJlciAxOTk2LCBvcgotc2ltaWxhciBs YXdzIHByb2hpYml0aW5nIG9yIHJlc3RyaWN0aW5nIGNpcmN1bXZlbnRpb24gb2Ygc3VjaAotbWVh c3VyZXMuCi0KLSAgV2hlbiB5b3UgY29udmV5IGEgY292ZXJlZCB3b3JrLCB5b3Ugd2FpdmUgYW55 IGxlZ2FsIHBvd2VyIHRvIGZvcmJpZAotY2lyY3VtdmVudGlvbiBvZiB0ZWNobm9sb2dpY2FsIG1l YXN1cmVzIHRvIHRoZSBleHRlbnQgc3VjaCBjaXJjdW12ZW50aW9uCi1pcyBlZmZlY3RlZCBieSBl eGVyY2lzaW5nIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2Ugd2l0aCByZXNwZWN0IHRvCi10aGUg Y292ZXJlZCB3b3JrLCBhbmQgeW91IGRpc2NsYWltIGFueSBpbnRlbnRpb24gdG8gbGltaXQgb3Bl cmF0aW9uIG9yCi1tb2RpZmljYXRpb24gb2YgdGhlIHdvcmsgYXMgYSBtZWFucyBvZiBlbmZvcmNp bmcsIGFnYWluc3QgdGhlIHdvcmsncwotdXNlcnMsIHlvdXIgb3IgdGhpcmQgcGFydGllcycgbGVn YWwgcmlnaHRzIHRvIGZvcmJpZCBjaXJjdW12ZW50aW9uIG9mCi10ZWNobm9sb2dpY2FsIG1lYXN1 cmVzLgotCi0gIDQuIENvbnZleWluZyBWZXJiYXRpbSBDb3BpZXMuCi0KLSAgWW91IG1heSBjb252 ZXkgdmVyYmF0aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3Mgc291cmNlIGNvZGUgYXMgeW91Ci1y ZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdSBjb25zcGljdW91c2x5 IGFuZAotYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbiBhcHByb3ByaWF0ZSBj b3B5cmlnaHQgbm90aWNlOwota2VlcCBpbnRhY3QgYWxsIG5vdGljZXMgc3RhdGluZyB0aGF0IHRo aXMgTGljZW5zZSBhbmQgYW55Ci1ub24tcGVybWlzc2l2ZSB0ZXJtcyBhZGRlZCBpbiBhY2NvcmQg d2l0aCBzZWN0aW9uIDcgYXBwbHkgdG8gdGhlIGNvZGU7Ci1rZWVwIGludGFjdCBhbGwgbm90aWNl cyBvZiB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7IGFuZCBnaXZlIGFsbAotcmVjaXBpZW50 cyBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlIGFsb25nIHdpdGggdGhlIFByb2dyYW0uCi0KLSAgWW91 IG1heSBjaGFyZ2UgYW55IHByaWNlIG9yIG5vIHByaWNlIGZvciBlYWNoIGNvcHkgdGhhdCB5b3Ug Y29udmV5LAotYW5kIHlvdSBtYXkgb2ZmZXIgc3VwcG9ydCBvciB3YXJyYW50eSBwcm90ZWN0aW9u IGZvciBhIGZlZS4KLQotICA1LiBDb252ZXlpbmcgTW9kaWZpZWQgU291cmNlIFZlcnNpb25zLgot Ci0gIFlvdSBtYXkgY29udmV5IGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgb3IgdGhlIG1v ZGlmaWNhdGlvbnMgdG8KLXByb2R1Y2UgaXQgZnJvbSB0aGUgUHJvZ3JhbSwgaW4gdGhlIGZvcm0g b2Ygc291cmNlIGNvZGUgdW5kZXIgdGhlCi10ZXJtcyBvZiBzZWN0aW9uIDQsIHByb3ZpZGVkIHRo YXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKLQotICAgIGEpIFRoZSB3 b3JrIG11c3QgY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0IHlvdSBtb2RpZmll ZAotICAgIGl0LCBhbmQgZ2l2aW5nIGEgcmVsZXZhbnQgZGF0ZS4KLQotICAgIGIpIFRoZSB3b3Jr IG11c3QgY2FycnkgcHJvbWluZW50IG5vdGljZXMgc3RhdGluZyB0aGF0IGl0IGlzCi0gICAgcmVs ZWFzZWQgdW5kZXIgdGhpcyBMaWNlbnNlIGFuZCBhbnkgY29uZGl0aW9ucyBhZGRlZCB1bmRlciBz ZWN0aW9uCi0gICAgNy4gIFRoaXMgcmVxdWlyZW1lbnQgbW9kaWZpZXMgdGhlIHJlcXVpcmVtZW50 IGluIHNlY3Rpb24gNCB0bwotICAgICJrZWVwIGludGFjdCBhbGwgbm90aWNlcyIuCi0KLSAgICBj KSBZb3UgbXVzdCBsaWNlbnNlIHRoZSBlbnRpcmUgd29yaywgYXMgYSB3aG9sZSwgdW5kZXIgdGhp cwotICAgIExpY2Vuc2UgdG8gYW55b25lIHdobyBjb21lcyBpbnRvIHBvc3Nlc3Npb24gb2YgYSBj b3B5LiAgVGhpcwotICAgIExpY2Vuc2Ugd2lsbCB0aGVyZWZvcmUgYXBwbHksIGFsb25nIHdpdGgg YW55IGFwcGxpY2FibGUgc2VjdGlvbiA3Ci0gICAgYWRkaXRpb25hbCB0ZXJtcywgdG8gdGhlIHdo b2xlIG9mIHRoZSB3b3JrLCBhbmQgYWxsIGl0cyBwYXJ0cywKLSAgICByZWdhcmRsZXNzIG9mIGhv dyB0aGV5IGFyZSBwYWNrYWdlZC4gIFRoaXMgTGljZW5zZSBnaXZlcyBubwotICAgIHBlcm1pc3Np b24gdG8gbGljZW5zZSB0aGUgd29yayBpbiBhbnkgb3RoZXIgd2F5LCBidXQgaXQgZG9lcyBub3QK LSAgICBpbnZhbGlkYXRlIHN1Y2ggcGVybWlzc2lvbiBpZiB5b3UgaGF2ZSBzZXBhcmF0ZWx5IHJl Y2VpdmVkIGl0LgotCi0gICAgZCkgSWYgdGhlIHdvcmsgaGFzIGludGVyYWN0aXZlIHVzZXIgaW50 ZXJmYWNlcywgZWFjaCBtdXN0IGRpc3BsYXkKLSAgICBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2Vz OyBob3dldmVyLCBpZiB0aGUgUHJvZ3JhbSBoYXMgaW50ZXJhY3RpdmUKLSAgICBpbnRlcmZhY2Vz IHRoYXQgZG8gbm90IGRpc3BsYXkgQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcywgeW91cgotICAg IHdvcmsgbmVlZCBub3QgbWFrZSB0aGVtIGRvIHNvLgotCi0gIEEgY29tcGlsYXRpb24gb2YgYSBj b3ZlcmVkIHdvcmsgd2l0aCBvdGhlciBzZXBhcmF0ZSBhbmQgaW5kZXBlbmRlbnQKLXdvcmtzLCB3 aGljaCBhcmUgbm90IGJ5IHRoZWlyIG5hdHVyZSBleHRlbnNpb25zIG9mIHRoZSBjb3ZlcmVkIHdv cmssCi1hbmQgd2hpY2ggYXJlIG5vdCBjb21iaW5lZCB3aXRoIGl0IHN1Y2ggYXMgdG8gZm9ybSBh IGxhcmdlciBwcm9ncmFtLAotaW4gb3Igb24gYSB2b2x1bWUgb2YgYSBzdG9yYWdlIG9yIGRpc3Ry aWJ1dGlvbiBtZWRpdW0sIGlzIGNhbGxlZCBhbgotImFnZ3JlZ2F0ZSIgaWYgdGhlIGNvbXBpbGF0 aW9uIGFuZCBpdHMgcmVzdWx0aW5nIGNvcHlyaWdodCBhcmUgbm90Ci11c2VkIHRvIGxpbWl0IHRo ZSBhY2Nlc3Mgb3IgbGVnYWwgcmlnaHRzIG9mIHRoZSBjb21waWxhdGlvbidzIHVzZXJzCi1iZXlv bmQgd2hhdCB0aGUgaW5kaXZpZHVhbCB3b3JrcyBwZXJtaXQuICBJbmNsdXNpb24gb2YgYSBjb3Zl cmVkIHdvcmsKLWluIGFuIGFnZ3JlZ2F0ZSBkb2VzIG5vdCBjYXVzZSB0aGlzIExpY2Vuc2UgdG8g YXBwbHkgdG8gdGhlIG90aGVyCi1wYXJ0cyBvZiB0aGUgYWdncmVnYXRlLgotCi0gIDYuIENvbnZl eWluZyBOb24tU291cmNlIEZvcm1zLgotCi0gIFlvdSBtYXkgY29udmV5IGEgY292ZXJlZCB3b3Jr IGluIG9iamVjdCBjb2RlIGZvcm0gdW5kZXIgdGhlIHRlcm1zCi1vZiBzZWN0aW9ucyA0IGFuZCA1 LCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIGNvbnZleSB0aGUKLW1hY2hpbmUtcmVhZGFibGUgQ29y cmVzcG9uZGluZyBTb3VyY2UgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwKLWluIG9u ZSBvZiB0aGVzZSB3YXlzOgotCi0gICAgYSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSBpbiwgb3Ig ZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAotICAgIChpbmNsdWRpbmcgYSBwaHlzaWNh bCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQgYnkgdGhlCi0gICAgQ29ycmVzcG9u ZGluZyBTb3VyY2UgZml4ZWQgb24gYSBkdXJhYmxlIHBoeXNpY2FsIG1lZGl1bQotICAgIGN1c3Rv bWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlLgotCi0gICAgYikgQ29udmV5IHRo ZSBvYmplY3QgY29kZSBpbiwgb3IgZW1ib2RpZWQgaW4sIGEgcGh5c2ljYWwgcHJvZHVjdAotICAg IChpbmNsdWRpbmcgYSBwaHlzaWNhbCBkaXN0cmlidXRpb24gbWVkaXVtKSwgYWNjb21wYW5pZWQg YnkgYQotICAgIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZvciBhdCBsZWFzdCB0aHJlZSB5ZWFycyBh bmQgdmFsaWQgZm9yIGFzCi0gICAgbG9uZyBhcyB5b3Ugb2ZmZXIgc3BhcmUgcGFydHMgb3IgY3Vz dG9tZXIgc3VwcG9ydCBmb3IgdGhhdCBwcm9kdWN0Ci0gICAgbW9kZWwsIHRvIGdpdmUgYW55b25l IHdobyBwb3NzZXNzZXMgdGhlIG9iamVjdCBjb2RlIGVpdGhlciAoMSkgYQotICAgIGNvcHkgb2Yg dGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGZvciBhbGwgdGhlIHNvZnR3YXJlIGluIHRoZQotICAg IHByb2R1Y3QgdGhhdCBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSwgb24gYSBkdXJhYmxlIHBo eXNpY2FsCi0gICAgbWVkaXVtIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hh bmdlLCBmb3IgYSBwcmljZSBubwotICAgIG1vcmUgdGhhbiB5b3VyIHJlYXNvbmFibGUgY29zdCBv ZiBwaHlzaWNhbGx5IHBlcmZvcm1pbmcgdGhpcwotICAgIGNvbnZleWluZyBvZiBzb3VyY2UsIG9y ICgyKSBhY2Nlc3MgdG8gY29weSB0aGUKLSAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmcm9tIGEg bmV0d29yayBzZXJ2ZXIgYXQgbm8gY2hhcmdlLgotCi0gICAgYykgQ29udmV5IGluZGl2aWR1YWwg Y29waWVzIG9mIHRoZSBvYmplY3QgY29kZSB3aXRoIGEgY29weSBvZiB0aGUKLSAgICB3cml0dGVu IG9mZmVyIHRvIHByb3ZpZGUgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhpcwotICAgIGFs dGVybmF0aXZlIGlzIGFsbG93ZWQgb25seSBvY2Nhc2lvbmFsbHkgYW5kIG5vbmNvbW1lcmNpYWxs eSwgYW5kCi0gICAgb25seSBpZiB5b3UgcmVjZWl2ZWQgdGhlIG9iamVjdCBjb2RlIHdpdGggc3Vj aCBhbiBvZmZlciwgaW4gYWNjb3JkCi0gICAgd2l0aCBzdWJzZWN0aW9uIDZiLgotCi0gICAgZCkg Q29udmV5IHRoZSBvYmplY3QgY29kZSBieSBvZmZlcmluZyBhY2Nlc3MgZnJvbSBhIGRlc2lnbmF0 ZWQKLSAgICBwbGFjZSAoZ3JhdGlzIG9yIGZvciBhIGNoYXJnZSksIGFuZCBvZmZlciBlcXVpdmFs ZW50IGFjY2VzcyB0byB0aGUKLSAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBpbiB0aGUgc2FtZSB3 YXkgdGhyb3VnaCB0aGUgc2FtZSBwbGFjZSBhdCBubwotICAgIGZ1cnRoZXIgY2hhcmdlLiAgWW91 IG5lZWQgbm90IHJlcXVpcmUgcmVjaXBpZW50cyB0byBjb3B5IHRoZQotICAgIENvcnJlc3BvbmRp bmcgU291cmNlIGFsb25nIHdpdGggdGhlIG9iamVjdCBjb2RlLiAgSWYgdGhlIHBsYWNlIHRvCi0g ICAgY29weSB0aGUgb2JqZWN0IGNvZGUgaXMgYSBuZXR3b3JrIHNlcnZlciwgdGhlIENvcnJlc3Bv bmRpbmcgU291cmNlCi0gICAgbWF5IGJlIG9uIGEgZGlmZmVyZW50IHNlcnZlciAob3BlcmF0ZWQg YnkgeW91IG9yIGEgdGhpcmQgcGFydHkpCi0gICAgdGhhdCBzdXBwb3J0cyBlcXVpdmFsZW50IGNv cHlpbmcgZmFjaWxpdGllcywgcHJvdmlkZWQgeW91IG1haW50YWluCi0gICAgY2xlYXIgZGlyZWN0 aW9ucyBuZXh0IHRvIHRoZSBvYmplY3QgY29kZSBzYXlpbmcgd2hlcmUgdG8gZmluZCB0aGUKLSAg ICBDb3JyZXNwb25kaW5nIFNvdXJjZS4gIFJlZ2FyZGxlc3Mgb2Ygd2hhdCBzZXJ2ZXIgaG9zdHMg dGhlCi0gICAgQ29ycmVzcG9uZGluZyBTb3VyY2UsIHlvdSByZW1haW4gb2JsaWdhdGVkIHRvIGVu c3VyZSB0aGF0IGl0IGlzCi0gICAgYXZhaWxhYmxlIGZvciBhcyBsb25nIGFzIG5lZWRlZCB0byBz YXRpc2Z5IHRoZXNlIHJlcXVpcmVtZW50cy4KLQotICAgIGUpIENvbnZleSB0aGUgb2JqZWN0IGNv ZGUgdXNpbmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbiwgcHJvdmlkZWQKLSAgICB5b3UgaW5m b3JtIG90aGVyIHBlZXJzIHdoZXJlIHRoZSBvYmplY3QgY29kZSBhbmQgQ29ycmVzcG9uZGluZwot ICAgIFNvdXJjZSBvZiB0aGUgd29yayBhcmUgYmVpbmcgb2ZmZXJlZCB0byB0aGUgZ2VuZXJhbCBw dWJsaWMgYXQgbm8KLSAgICBjaGFyZ2UgdW5kZXIgc3Vic2VjdGlvbiA2ZC4KLQotICBBIHNlcGFy YWJsZSBwb3J0aW9uIG9mIHRoZSBvYmplY3QgY29kZSwgd2hvc2Ugc291cmNlIGNvZGUgaXMgZXhj bHVkZWQKLWZyb20gdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIGFzIGEgU3lzdGVtIExpYnJhcnks IG5lZWQgbm90IGJlCi1pbmNsdWRlZCBpbiBjb252ZXlpbmcgdGhlIG9iamVjdCBjb2RlIHdvcmsu Ci0KLSAgQSAiVXNlciBQcm9kdWN0IiBpcyBlaXRoZXIgKDEpIGEgImNvbnN1bWVyIHByb2R1Y3Qi LCB3aGljaCBtZWFucyBhbnkKLXRhbmdpYmxlIHBlcnNvbmFsIHByb3BlcnR5IHdoaWNoIGlzIG5v cm1hbGx5IHVzZWQgZm9yIHBlcnNvbmFsLCBmYW1pbHksCi1vciBob3VzZWhvbGQgcHVycG9zZXMs IG9yICgyKSBhbnl0aGluZyBkZXNpZ25lZCBvciBzb2xkIGZvciBpbmNvcnBvcmF0aW9uCi1pbnRv IGEgZHdlbGxpbmcuICBJbiBkZXRlcm1pbmluZyB3aGV0aGVyIGEgcHJvZHVjdCBpcyBhIGNvbnN1 bWVyIHByb2R1Y3QsCi1kb3VidGZ1bCBjYXNlcyBzaGFsbCBiZSByZXNvbHZlZCBpbiBmYXZvciBv ZiBjb3ZlcmFnZS4gIEZvciBhIHBhcnRpY3VsYXIKLXByb2R1Y3QgcmVjZWl2ZWQgYnkgYSBwYXJ0 aWN1bGFyIHVzZXIsICJub3JtYWxseSB1c2VkIiByZWZlcnMgdG8gYQotdHlwaWNhbCBvciBjb21t b24gdXNlIG9mIHRoYXQgY2xhc3Mgb2YgcHJvZHVjdCwgcmVnYXJkbGVzcyBvZiB0aGUgc3RhdHVz Ci1vZiB0aGUgcGFydGljdWxhciB1c2VyIG9yIG9mIHRoZSB3YXkgaW4gd2hpY2ggdGhlIHBhcnRp Y3VsYXIgdXNlcgotYWN0dWFsbHkgdXNlcywgb3IgZXhwZWN0cyBvciBpcyBleHBlY3RlZCB0byB1 c2UsIHRoZSBwcm9kdWN0LiAgQSBwcm9kdWN0Ci1pcyBhIGNvbnN1bWVyIHByb2R1Y3QgcmVnYXJk bGVzcyBvZiB3aGV0aGVyIHRoZSBwcm9kdWN0IGhhcyBzdWJzdGFudGlhbAotY29tbWVyY2lhbCwg aW5kdXN0cmlhbCBvciBub24tY29uc3VtZXIgdXNlcywgdW5sZXNzIHN1Y2ggdXNlcyByZXByZXNl bnQKLXRoZSBvbmx5IHNpZ25pZmljYW50IG1vZGUgb2YgdXNlIG9mIHRoZSBwcm9kdWN0LgotCi0g ICJJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24iIGZvciBhIFVzZXIgUHJvZHVjdCBtZWFucyBhbnkg bWV0aG9kcywKLXByb2NlZHVyZXMsIGF1dGhvcml6YXRpb24ga2V5cywgb3Igb3RoZXIgaW5mb3Jt YXRpb24gcmVxdWlyZWQgdG8gaW5zdGFsbAotYW5kIGV4ZWN1dGUgbW9kaWZpZWQgdmVyc2lvbnMg b2YgYSBjb3ZlcmVkIHdvcmsgaW4gdGhhdCBVc2VyIFByb2R1Y3QgZnJvbQotYSBtb2RpZmllZCB2 ZXJzaW9uIG9mIGl0cyBDb3JyZXNwb25kaW5nIFNvdXJjZS4gIFRoZSBpbmZvcm1hdGlvbiBtdXN0 Ci1zdWZmaWNlIHRvIGVuc3VyZSB0aGF0IHRoZSBjb250aW51ZWQgZnVuY3Rpb25pbmcgb2YgdGhl IG1vZGlmaWVkIG9iamVjdAotY29kZSBpcyBpbiBubyBjYXNlIHByZXZlbnRlZCBvciBpbnRlcmZl cmVkIHdpdGggc29sZWx5IGJlY2F1c2UKLW1vZGlmaWNhdGlvbiBoYXMgYmVlbiBtYWRlLgotCi0g IElmIHlvdSBjb252ZXkgYW4gb2JqZWN0IGNvZGUgd29yayB1bmRlciB0aGlzIHNlY3Rpb24gaW4s IG9yIHdpdGgsIG9yCi1zcGVjaWZpY2FsbHkgZm9yIHVzZSBpbiwgYSBVc2VyIFByb2R1Y3QsIGFu ZCB0aGUgY29udmV5aW5nIG9jY3VycyBhcwotcGFydCBvZiBhIHRyYW5zYWN0aW9uIGluIHdoaWNo IHRoZSByaWdodCBvZiBwb3NzZXNzaW9uIGFuZCB1c2Ugb2YgdGhlCi1Vc2VyIFByb2R1Y3QgaXMg dHJhbnNmZXJyZWQgdG8gdGhlIHJlY2lwaWVudCBpbiBwZXJwZXR1aXR5IG9yIGZvciBhCi1maXhl ZCB0ZXJtIChyZWdhcmRsZXNzIG9mIGhvdyB0aGUgdHJhbnNhY3Rpb24gaXMgY2hhcmFjdGVyaXpl ZCksIHRoZQotQ29ycmVzcG9uZGluZyBTb3VyY2UgY29udmV5ZWQgdW5kZXIgdGhpcyBzZWN0aW9u IG11c3QgYmUgYWNjb21wYW5pZWQKLWJ5IHRoZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24uICBC dXQgdGhpcyByZXF1aXJlbWVudCBkb2VzIG5vdCBhcHBseQotaWYgbmVpdGhlciB5b3Ugbm9yIGFu eSB0aGlyZCBwYXJ0eSByZXRhaW5zIHRoZSBhYmlsaXR5IHRvIGluc3RhbGwKLW1vZGlmaWVkIG9i amVjdCBjb2RlIG9uIHRoZSBVc2VyIFByb2R1Y3QgKGZvciBleGFtcGxlLCB0aGUgd29yayBoYXMK LWJlZW4gaW5zdGFsbGVkIGluIFJPTSkuCi0KLSAgVGhlIHJlcXVpcmVtZW50IHRvIHByb3ZpZGUg SW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIGRvZXMgbm90IGluY2x1ZGUgYQotcmVxdWlyZW1lbnQg dG8gY29udGludWUgdG8gcHJvdmlkZSBzdXBwb3J0IHNlcnZpY2UsIHdhcnJhbnR5LCBvciB1cGRh dGVzCi1mb3IgYSB3b3JrIHRoYXQgaGFzIGJlZW4gbW9kaWZpZWQgb3IgaW5zdGFsbGVkIGJ5IHRo ZSByZWNpcGllbnQsIG9yIGZvcgotdGhlIFVzZXIgUHJvZHVjdCBpbiB3aGljaCBpdCBoYXMgYmVl biBtb2RpZmllZCBvciBpbnN0YWxsZWQuICBBY2Nlc3MgdG8gYQotbmV0d29yayBtYXkgYmUgZGVu aWVkIHdoZW4gdGhlIG1vZGlmaWNhdGlvbiBpdHNlbGYgbWF0ZXJpYWxseSBhbmQKLWFkdmVyc2Vs eSBhZmZlY3RzIHRoZSBvcGVyYXRpb24gb2YgdGhlIG5ldHdvcmsgb3IgdmlvbGF0ZXMgdGhlIHJ1 bGVzIGFuZAotcHJvdG9jb2xzIGZvciBjb21tdW5pY2F0aW9uIGFjcm9zcyB0aGUgbmV0d29yay4K LQotICBDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCwgYW5kIEluc3RhbGxhdGlvbiBJbmZv cm1hdGlvbiBwcm92aWRlZCwKLWluIGFjY29yZCB3aXRoIHRoaXMgc2VjdGlvbiBtdXN0IGJlIGlu IGEgZm9ybWF0IHRoYXQgaXMgcHVibGljbHkKLWRvY3VtZW50ZWQgKGFuZCB3aXRoIGFuIGltcGxl bWVudGF0aW9uIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluCi1zb3VyY2UgY29kZSBmb3JtKSwg YW5kIG11c3QgcmVxdWlyZSBubyBzcGVjaWFsIHBhc3N3b3JkIG9yIGtleSBmb3IKLXVucGFja2lu ZywgcmVhZGluZyBvciBjb3B5aW5nLgotCi0gIDcuIEFkZGl0aW9uYWwgVGVybXMuCi0KLSAgIkFk ZGl0aW9uYWwgcGVybWlzc2lvbnMiIGFyZSB0ZXJtcyB0aGF0IHN1cHBsZW1lbnQgdGhlIHRlcm1z IG9mIHRoaXMKLUxpY2Vuc2UgYnkgbWFraW5nIGV4Y2VwdGlvbnMgZnJvbSBvbmUgb3IgbW9yZSBv ZiBpdHMgY29uZGl0aW9ucy4KLUFkZGl0aW9uYWwgcGVybWlzc2lvbnMgdGhhdCBhcmUgYXBwbGlj YWJsZSB0byB0aGUgZW50aXJlIFByb2dyYW0gc2hhbGwKLWJlIHRyZWF0ZWQgYXMgdGhvdWdoIHRo ZXkgd2VyZSBpbmNsdWRlZCBpbiB0aGlzIExpY2Vuc2UsIHRvIHRoZSBleHRlbnQKLXRoYXQgdGhl eSBhcmUgdmFsaWQgdW5kZXIgYXBwbGljYWJsZSBsYXcuICBJZiBhZGRpdGlvbmFsIHBlcm1pc3Np b25zCi1hcHBseSBvbmx5IHRvIHBhcnQgb2YgdGhlIFByb2dyYW0sIHRoYXQgcGFydCBtYXkgYmUg dXNlZCBzZXBhcmF0ZWx5Ci11bmRlciB0aG9zZSBwZXJtaXNzaW9ucywgYnV0IHRoZSBlbnRpcmUg UHJvZ3JhbSByZW1haW5zIGdvdmVybmVkIGJ5Ci10aGlzIExpY2Vuc2Ugd2l0aG91dCByZWdhcmQg dG8gdGhlIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMuCi0KLSAgV2hlbiB5b3UgY29udmV5IGEgY29w eSBvZiBhIGNvdmVyZWQgd29yaywgeW91IG1heSBhdCB5b3VyIG9wdGlvbgotcmVtb3ZlIGFueSBh ZGRpdGlvbmFsIHBlcm1pc3Npb25zIGZyb20gdGhhdCBjb3B5LCBvciBmcm9tIGFueSBwYXJ0IG9m Ci1pdC4gIChBZGRpdGlvbmFsIHBlcm1pc3Npb25zIG1heSBiZSB3cml0dGVuIHRvIHJlcXVpcmUg dGhlaXIgb3duCi1yZW1vdmFsIGluIGNlcnRhaW4gY2FzZXMgd2hlbiB5b3UgbW9kaWZ5IHRoZSB3 b3JrLikgIFlvdSBtYXkgcGxhY2UKLWFkZGl0aW9uYWwgcGVybWlzc2lvbnMgb24gbWF0ZXJpYWws IGFkZGVkIGJ5IHlvdSB0byBhIGNvdmVyZWQgd29yaywKLWZvciB3aGljaCB5b3UgaGF2ZSBvciBj YW4gZ2l2ZSBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgcGVybWlzc2lvbi4KLQotICBOb3R3aXRoc3Rh bmRpbmcgYW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIGZvciBtYXRlcmlhbCB5 b3UKLWFkZCB0byBhIGNvdmVyZWQgd29yaywgeW91IG1heSAoaWYgYXV0aG9yaXplZCBieSB0aGUg Y29weXJpZ2h0IGhvbGRlcnMgb2YKLXRoYXQgbWF0ZXJpYWwpIHN1cHBsZW1lbnQgdGhlIHRlcm1z IG9mIHRoaXMgTGljZW5zZSB3aXRoIHRlcm1zOgotCi0gICAgYSkgRGlzY2xhaW1pbmcgd2FycmFu dHkgb3IgbGltaXRpbmcgbGlhYmlsaXR5IGRpZmZlcmVudGx5IGZyb20gdGhlCi0gICAgdGVybXMg b2Ygc2VjdGlvbnMgMTUgYW5kIDE2IG9mIHRoaXMgTGljZW5zZTsgb3IKLQotICAgIGIpIFJlcXVp cmluZyBwcmVzZXJ2YXRpb24gb2Ygc3BlY2lmaWVkIHJlYXNvbmFibGUgbGVnYWwgbm90aWNlcyBv cgotICAgIGF1dGhvciBhdHRyaWJ1dGlvbnMgaW4gdGhhdCBtYXRlcmlhbCBvciBpbiB0aGUgQXBw cm9wcmlhdGUgTGVnYWwKLSAgICBOb3RpY2VzIGRpc3BsYXllZCBieSB3b3JrcyBjb250YWluaW5n IGl0OyBvcgotCi0gICAgYykgUHJvaGliaXRpbmcgbWlzcmVwcmVzZW50YXRpb24gb2YgdGhlIG9y aWdpbiBvZiB0aGF0IG1hdGVyaWFsLCBvcgotICAgIHJlcXVpcmluZyB0aGF0IG1vZGlmaWVkIHZl cnNpb25zIG9mIHN1Y2ggbWF0ZXJpYWwgYmUgbWFya2VkIGluCi0gICAgcmVhc29uYWJsZSB3YXlz IGFzIGRpZmZlcmVudCBmcm9tIHRoZSBvcmlnaW5hbCB2ZXJzaW9uOyBvcgotCi0gICAgZCkgTGlt aXRpbmcgdGhlIHVzZSBmb3IgcHVibGljaXR5IHB1cnBvc2VzIG9mIG5hbWVzIG9mIGxpY2Vuc29y cyBvcgotICAgIGF1dGhvcnMgb2YgdGhlIG1hdGVyaWFsOyBvcgotCi0gICAgZSkgRGVjbGluaW5n IHRvIGdyYW50IHJpZ2h0cyB1bmRlciB0cmFkZW1hcmsgbGF3IGZvciB1c2Ugb2Ygc29tZQotICAg IHRyYWRlIG5hbWVzLCB0cmFkZW1hcmtzLCBvciBzZXJ2aWNlIG1hcmtzOyBvcgotCi0gICAgZikg UmVxdWlyaW5nIGluZGVtbmlmaWNhdGlvbiBvZiBsaWNlbnNvcnMgYW5kIGF1dGhvcnMgb2YgdGhh dAotICAgIG1hdGVyaWFsIGJ5IGFueW9uZSB3aG8gY29udmV5cyB0aGUgbWF0ZXJpYWwgKG9yIG1v ZGlmaWVkIHZlcnNpb25zIG9mCi0gICAgaXQpIHdpdGggY29udHJhY3R1YWwgYXNzdW1wdGlvbnMg b2YgbGlhYmlsaXR5IHRvIHRoZSByZWNpcGllbnQsIGZvcgotICAgIGFueSBsaWFiaWxpdHkgdGhh dCB0aGVzZSBjb250cmFjdHVhbCBhc3N1bXB0aW9ucyBkaXJlY3RseSBpbXBvc2Ugb24KLSAgICB0 aG9zZSBsaWNlbnNvcnMgYW5kIGF1dGhvcnMuCi0KLSAgQWxsIG90aGVyIG5vbi1wZXJtaXNzaXZl IGFkZGl0aW9uYWwgdGVybXMgYXJlIGNvbnNpZGVyZWQgImZ1cnRoZXIKLXJlc3RyaWN0aW9ucyIg d2l0aGluIHRoZSBtZWFuaW5nIG9mIHNlY3Rpb24gMTAuICBJZiB0aGUgUHJvZ3JhbSBhcyB5b3UK LXJlY2VpdmVkIGl0LCBvciBhbnkgcGFydCBvZiBpdCwgY29udGFpbnMgYSBub3RpY2Ugc3RhdGlu ZyB0aGF0IGl0IGlzCi1nb3Zlcm5lZCBieSB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCBhIHRlcm0g dGhhdCBpcyBhIGZ1cnRoZXIKLXJlc3RyaWN0aW9uLCB5b3UgbWF5IHJlbW92ZSB0aGF0IHRlcm0u ICBJZiBhIGxpY2Vuc2UgZG9jdW1lbnQgY29udGFpbnMKLWEgZnVydGhlciByZXN0cmljdGlvbiBi dXQgcGVybWl0cyByZWxpY2Vuc2luZyBvciBjb252ZXlpbmcgdW5kZXIgdGhpcwotTGljZW5zZSwg eW91IG1heSBhZGQgdG8gYSBjb3ZlcmVkIHdvcmsgbWF0ZXJpYWwgZ292ZXJuZWQgYnkgdGhlIHRl cm1zCi1vZiB0aGF0IGxpY2Vuc2UgZG9jdW1lbnQsIHByb3ZpZGVkIHRoYXQgdGhlIGZ1cnRoZXIg cmVzdHJpY3Rpb24gZG9lcwotbm90IHN1cnZpdmUgc3VjaCByZWxpY2Vuc2luZyBvciBjb252ZXlp bmcuCi0KLSAgSWYgeW91IGFkZCB0ZXJtcyB0byBhIGNvdmVyZWQgd29yayBpbiBhY2NvcmQgd2l0 aCB0aGlzIHNlY3Rpb24sIHlvdQotbXVzdCBwbGFjZSwgaW4gdGhlIHJlbGV2YW50IHNvdXJjZSBm aWxlcywgYSBzdGF0ZW1lbnQgb2YgdGhlCi1hZGRpdGlvbmFsIHRlcm1zIHRoYXQgYXBwbHkgdG8g dGhvc2UgZmlsZXMsIG9yIGEgbm90aWNlIGluZGljYXRpbmcKLXdoZXJlIHRvIGZpbmQgdGhlIGFw cGxpY2FibGUgdGVybXMuCi0KLSAgQWRkaXRpb25hbCB0ZXJtcywgcGVybWlzc2l2ZSBvciBub24t cGVybWlzc2l2ZSwgbWF5IGJlIHN0YXRlZCBpbiB0aGUKLWZvcm0gb2YgYSBzZXBhcmF0ZWx5IHdy aXR0ZW4gbGljZW5zZSwgb3Igc3RhdGVkIGFzIGV4Y2VwdGlvbnM7Ci10aGUgYWJvdmUgcmVxdWly ZW1lbnRzIGFwcGx5IGVpdGhlciB3YXkuCi0KLSAgOC4gVGVybWluYXRpb24uCi0KLSAgWW91IG1h eSBub3QgcHJvcGFnYXRlIG9yIG1vZGlmeSBhIGNvdmVyZWQgd29yayBleGNlcHQgYXMgZXhwcmVz c2x5Ci1wcm92aWRlZCB1bmRlciB0aGlzIExpY2Vuc2UuICBBbnkgYXR0ZW1wdCBvdGhlcndpc2Ug dG8gcHJvcGFnYXRlIG9yCi1tb2RpZnkgaXQgaXMgdm9pZCwgYW5kIHdpbGwgYXV0b21hdGljYWxs eSB0ZXJtaW5hdGUgeW91ciByaWdodHMgdW5kZXIKLXRoaXMgTGljZW5zZSAoaW5jbHVkaW5nIGFu eSBwYXRlbnQgbGljZW5zZXMgZ3JhbnRlZCB1bmRlciB0aGUgdGhpcmQKLXBhcmFncmFwaCBvZiBz ZWN0aW9uIDExKS4KLQotICBIb3dldmVyLCBpZiB5b3UgY2Vhc2UgYWxsIHZpb2xhdGlvbiBvZiB0 aGlzIExpY2Vuc2UsIHRoZW4geW91cgotbGljZW5zZSBmcm9tIGEgcGFydGljdWxhciBjb3B5cmln aHQgaG9sZGVyIGlzIHJlaW5zdGF0ZWQgKGEpCi1wcm92aXNpb25hbGx5LCB1bmxlc3MgYW5kIHVu dGlsIHRoZSBjb3B5cmlnaHQgaG9sZGVyIGV4cGxpY2l0bHkgYW5kCi1maW5hbGx5IHRlcm1pbmF0 ZXMgeW91ciBsaWNlbnNlLCBhbmQgKGIpIHBlcm1hbmVudGx5LCBpZiB0aGUgY29weXJpZ2h0Ci1o b2xkZXIgZmFpbHMgdG8gbm90aWZ5IHlvdSBvZiB0aGUgdmlvbGF0aW9uIGJ5IHNvbWUgcmVhc29u YWJsZSBtZWFucwotcHJpb3IgdG8gNjAgZGF5cyBhZnRlciB0aGUgY2Vzc2F0aW9uLgotCi0gIE1v cmVvdmVyLCB5b3VyIGxpY2Vuc2UgZnJvbSBhIHBhcnRpY3VsYXIgY29weXJpZ2h0IGhvbGRlciBp cwotcmVpbnN0YXRlZCBwZXJtYW5lbnRseSBpZiB0aGUgY29weXJpZ2h0IGhvbGRlciBub3RpZmll cyB5b3Ugb2YgdGhlCi12aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zLCB0aGlzIGlz IHRoZSBmaXJzdCB0aW1lIHlvdSBoYXZlCi1yZWNlaXZlZCBub3RpY2Ugb2YgdmlvbGF0aW9uIG9m IHRoaXMgTGljZW5zZSAoZm9yIGFueSB3b3JrKSBmcm9tIHRoYXQKLWNvcHlyaWdodCBob2xkZXIs IGFuZCB5b3UgY3VyZSB0aGUgdmlvbGF0aW9uIHByaW9yIHRvIDMwIGRheXMgYWZ0ZXIKLXlvdXIg cmVjZWlwdCBvZiB0aGUgbm90aWNlLgotCi0gIFRlcm1pbmF0aW9uIG9mIHlvdXIgcmlnaHRzIHVu ZGVyIHRoaXMgc2VjdGlvbiBkb2VzIG5vdCB0ZXJtaW5hdGUgdGhlCi1saWNlbnNlcyBvZiBwYXJ0 aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcyBvciByaWdodHMgZnJvbSB5b3UgdW5kZXIKLXRo aXMgTGljZW5zZS4gIElmIHlvdXIgcmlnaHRzIGhhdmUgYmVlbiB0ZXJtaW5hdGVkIGFuZCBub3Qg cGVybWFuZW50bHkKLXJlaW5zdGF0ZWQsIHlvdSBkbyBub3QgcXVhbGlmeSB0byByZWNlaXZlIG5l dyBsaWNlbnNlcyBmb3IgdGhlIHNhbWUKLW1hdGVyaWFsIHVuZGVyIHNlY3Rpb24gMTAuCi0KLSAg OS4gQWNjZXB0YW5jZSBOb3QgUmVxdWlyZWQgZm9yIEhhdmluZyBDb3BpZXMuCi0KLSAgWW91IGFy ZSBub3QgcmVxdWlyZWQgdG8gYWNjZXB0IHRoaXMgTGljZW5zZSBpbiBvcmRlciB0byByZWNlaXZl IG9yCi1ydW4gYSBjb3B5IG9mIHRoZSBQcm9ncmFtLiAgQW5jaWxsYXJ5IHByb3BhZ2F0aW9uIG9m IGEgY292ZXJlZCB3b3JrCi1vY2N1cnJpbmcgc29sZWx5IGFzIGEgY29uc2VxdWVuY2Ugb2YgdXNp bmcgcGVlci10by1wZWVyIHRyYW5zbWlzc2lvbgotdG8gcmVjZWl2ZSBhIGNvcHkgbGlrZXdpc2Ug ZG9lcyBub3QgcmVxdWlyZSBhY2NlcHRhbmNlLiAgSG93ZXZlciwKLW5vdGhpbmcgb3RoZXIgdGhh biB0aGlzIExpY2Vuc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIHByb3BhZ2F0ZSBvcgotbW9k aWZ5IGFueSBjb3ZlcmVkIHdvcmsuICBUaGVzZSBhY3Rpb25zIGluZnJpbmdlIGNvcHlyaWdodCBp ZiB5b3UgZG8KLW5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieSBtb2RpZnlp bmcgb3IgcHJvcGFnYXRpbmcgYQotY292ZXJlZCB3b3JrLCB5b3UgaW5kaWNhdGUgeW91ciBhY2Nl cHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzby4KLQotICAxMC4gQXV0b21hdGljIExpY2Vu c2luZyBvZiBEb3duc3RyZWFtIFJlY2lwaWVudHMuCi0KLSAgRWFjaCB0aW1lIHlvdSBjb252ZXkg YSBjb3ZlcmVkIHdvcmssIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseQotcmVjZWl2ZXMgYSBs aWNlbnNlIGZyb20gdGhlIG9yaWdpbmFsIGxpY2Vuc29ycywgdG8gcnVuLCBtb2RpZnkgYW5kCi1w cm9wYWdhdGUgdGhhdCB3b3JrLCBzdWJqZWN0IHRvIHRoaXMgTGljZW5zZS4gIFlvdSBhcmUgbm90 IHJlc3BvbnNpYmxlCi1mb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB3 aXRoIHRoaXMgTGljZW5zZS4KLQotICBBbiAiZW50aXR5IHRyYW5zYWN0aW9uIiBpcyBhIHRyYW5z YWN0aW9uIHRyYW5zZmVycmluZyBjb250cm9sIG9mIGFuCi1vcmdhbml6YXRpb24sIG9yIHN1YnN0 YW50aWFsbHkgYWxsIGFzc2V0cyBvZiBvbmUsIG9yIHN1YmRpdmlkaW5nIGFuCi1vcmdhbml6YXRp b24sIG9yIG1lcmdpbmcgb3JnYW5pemF0aW9ucy4gIElmIHByb3BhZ2F0aW9uIG9mIGEgY292ZXJl ZAotd29yayByZXN1bHRzIGZyb20gYW4gZW50aXR5IHRyYW5zYWN0aW9uLCBlYWNoIHBhcnR5IHRv IHRoYXQKLXRyYW5zYWN0aW9uIHdobyByZWNlaXZlcyBhIGNvcHkgb2YgdGhlIHdvcmsgYWxzbyBy ZWNlaXZlcyB3aGF0ZXZlcgotbGljZW5zZXMgdG8gdGhlIHdvcmsgdGhlIHBhcnR5J3MgcHJlZGVj ZXNzb3IgaW4gaW50ZXJlc3QgaGFkIG9yIGNvdWxkCi1naXZlIHVuZGVyIHRoZSBwcmV2aW91cyBw YXJhZ3JhcGgsIHBsdXMgYSByaWdodCB0byBwb3NzZXNzaW9uIG9mIHRoZQotQ29ycmVzcG9uZGlu ZyBTb3VyY2Ugb2YgdGhlIHdvcmsgZnJvbSB0aGUgcHJlZGVjZXNzb3IgaW4gaW50ZXJlc3QsIGlm Ci10aGUgcHJlZGVjZXNzb3IgaGFzIGl0IG9yIGNhbiBnZXQgaXQgd2l0aCByZWFzb25hYmxlIGVm Zm9ydHMuCi0KLSAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyIHJlc3RyaWN0aW9ucyBv biB0aGUgZXhlcmNpc2Ugb2YgdGhlCi1yaWdodHMgZ3JhbnRlZCBvciBhZmZpcm1lZCB1bmRlciB0 aGlzIExpY2Vuc2UuICBGb3IgZXhhbXBsZSwgeW91IG1heQotbm90IGltcG9zZSBhIGxpY2Vuc2Ug ZmVlLCByb3lhbHR5LCBvciBvdGhlciBjaGFyZ2UgZm9yIGV4ZXJjaXNlIG9mCi1yaWdodHMgZ3Jh bnRlZCB1bmRlciB0aGlzIExpY2Vuc2UsIGFuZCB5b3UgbWF5IG5vdCBpbml0aWF0ZSBsaXRpZ2F0 aW9uCi0oaW5jbHVkaW5nIGEgY3Jvc3MtY2xhaW0gb3IgY291bnRlcmNsYWltIGluIGEgbGF3c3Vp dCkgYWxsZWdpbmcgdGhhdAotYW55IHBhdGVudCBjbGFpbSBpcyBpbmZyaW5nZWQgYnkgbWFraW5n LCB1c2luZywgc2VsbGluZywgb2ZmZXJpbmcgZm9yCi1zYWxlLCBvciBpbXBvcnRpbmcgdGhlIFBy b2dyYW0gb3IgYW55IHBvcnRpb24gb2YgaXQuCi0KLSAgMTEuIFBhdGVudHMuCi0KLSAgQSAiY29u dHJpYnV0b3IiIGlzIGEgY29weXJpZ2h0IGhvbGRlciB3aG8gYXV0aG9yaXplcyB1c2UgdW5kZXIg dGhpcwotTGljZW5zZSBvZiB0aGUgUHJvZ3JhbSBvciBhIHdvcmsgb24gd2hpY2ggdGhlIFByb2dy YW0gaXMgYmFzZWQuICBUaGUKLXdvcmsgdGh1cyBsaWNlbnNlZCBpcyBjYWxsZWQgdGhlIGNvbnRy aWJ1dG9yJ3MgImNvbnRyaWJ1dG9yIHZlcnNpb24iLgotCi0gIEEgY29udHJpYnV0b3IncyAiZXNz ZW50aWFsIHBhdGVudCBjbGFpbXMiIGFyZSBhbGwgcGF0ZW50IGNsYWltcwotb3duZWQgb3IgY29u dHJvbGxlZCBieSB0aGUgY29udHJpYnV0b3IsIHdoZXRoZXIgYWxyZWFkeSBhY3F1aXJlZCBvcgot aGVyZWFmdGVyIGFjcXVpcmVkLCB0aGF0IHdvdWxkIGJlIGluZnJpbmdlZCBieSBzb21lIG1hbm5l ciwgcGVybWl0dGVkCi1ieSB0aGlzIExpY2Vuc2UsIG9mIG1ha2luZywgdXNpbmcsIG9yIHNlbGxp bmcgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24sCi1idXQgZG8gbm90IGluY2x1ZGUgY2xhaW1zIHRo YXQgd291bGQgYmUgaW5mcmluZ2VkIG9ubHkgYXMgYQotY29uc2VxdWVuY2Ugb2YgZnVydGhlciBt b2RpZmljYXRpb24gb2YgdGhlIGNvbnRyaWJ1dG9yIHZlcnNpb24uICBGb3IKLXB1cnBvc2VzIG9m IHRoaXMgZGVmaW5pdGlvbiwgImNvbnRyb2wiIGluY2x1ZGVzIHRoZSByaWdodCB0byBncmFudAot cGF0ZW50IHN1YmxpY2Vuc2VzIGluIGEgbWFubmVyIGNvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWly ZW1lbnRzIG9mCisMCisJCSAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgVEVSTVMg QU5EIENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9O CisKKyAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55IHByb2dyYW0gb3Igb3RoZXIgd29y ayB3aGljaCBjb250YWlucworYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVy IHNheWluZyBpdCBtYXkgYmUgZGlzdHJpYnV0ZWQKK3VuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIEdl bmVyYWwgUHVibGljIExpY2Vuc2UuICBUaGUgIlByb2dyYW0iLCBiZWxvdywKK3JlZmVycyB0byBh bnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFt IgorbWVhbnMgZWl0aGVyIHRoZSBQcm9ncmFtIG9yIGFueSBkZXJpdmF0aXZlIHdvcmsgdW5kZXIg Y29weXJpZ2h0IGxhdzoKK3RoYXQgaXMgdG8gc2F5LCBhIHdvcmsgY29udGFpbmluZyB0aGUgUHJv Z3JhbSBvciBhIHBvcnRpb24gb2YgaXQsCitlaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmlj YXRpb25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgorbGFuZ3VhZ2UuICAoSGVyZWlu YWZ0ZXIsIHRyYW5zbGF0aW9uIGlzIGluY2x1ZGVkIHdpdGhvdXQgbGltaXRhdGlvbiBpbgordGhl IHRlcm0gIm1vZGlmaWNhdGlvbiIuKSAgRWFjaCBsaWNlbnNlZSBpcyBhZGRyZXNzZWQgYXMgInlv dSIuCisKK0FjdGl2aXRpZXMgb3RoZXIgdGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1v ZGlmaWNhdGlvbiBhcmUgbm90Citjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZTsgdGhleSBhcmUgb3V0 c2lkZSBpdHMgc2NvcGUuICBUaGUgYWN0IG9mCitydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCBy ZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9tIHRoZSBQcm9ncmFtCitpcyBjb3ZlcmVkIG9u bHkgaWYgaXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUgYSB3b3JrIGJhc2VkIG9uIHRoZQorUHJvZ3Jh bSAoaW5kZXBlbmRlbnQgb2YgaGF2aW5nIGJlZW4gbWFkZSBieSBydW5uaW5nIHRoZSBQcm9ncmFt KS4KK1doZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgUHJvZ3JhbSBkb2Vz LgorCisgIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2Yg dGhlIFByb2dyYW0ncworc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFueSBtZWRp dW0sIHByb3ZpZGVkIHRoYXQgeW91Citjb25zcGljdW91c2x5IGFuZCBhcHByb3ByaWF0ZWx5IHB1 Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlCitjb3B5cmlnaHQgbm90aWNlIGFuZCBk aXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdCBhbGwgdGhlCitub3RpY2VzIHRoYXQg cmVmZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7 CithbmQgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgUHJvZ3JhbSBhIGNvcHkgb2Yg dGhpcyBMaWNlbnNlCithbG9uZyB3aXRoIHRoZSBQcm9ncmFtLgorCitZb3UgbWF5IGNoYXJnZSBh IGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LCBhbmQKK3lv dSBtYXkgYXQgeW91ciBvcHRpb24gb2ZmZXIgd2FycmFudHkgcHJvdGVjdGlvbiBpbiBleGNoYW5n ZSBmb3IgYSBmZWUuCisKKyAgMi4gWW91IG1heSBtb2RpZnkgeW91ciBjb3B5IG9yIGNvcGllcyBv ZiB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbgorb2YgaXQsIHRodXMgZm9ybWluZyBhIHdvcmsg YmFzZWQgb24gdGhlIFByb2dyYW0sIGFuZCBjb3B5IGFuZAorZGlzdHJpYnV0ZSBzdWNoIG1vZGlm aWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbiAxCithYm92ZSwgcHJv dmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgorCisgICAg YSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBu b3RpY2VzCisgICAgc3RhdGluZyB0aGF0IHlvdSBjaGFuZ2VkIHRoZSBmaWxlcyBhbmQgdGhlIGRh dGUgb2YgYW55IGNoYW5nZS4KKworICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQg eW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgorICAgIHdob2xlIG9yIGluIHBhcnQg Y29udGFpbnMgb3IgaXMgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtIG9yIGFueQorICAgIHBhcnQg dGhlcmVvZiwgdG8gYmUgbGljZW5zZWQgYXMgYSB3aG9sZSBhdCBubyBjaGFyZ2UgdG8gYWxsIHRo aXJkCisgICAgcGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgorCisgICAg YykgSWYgdGhlIG1vZGlmaWVkIHByb2dyYW0gbm9ybWFsbHkgcmVhZHMgY29tbWFuZHMgaW50ZXJh Y3RpdmVseQorICAgIHdoZW4gcnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1 bm5pbmcgZm9yIHN1Y2gKKyAgICBpbnRlcmFjdGl2ZSB1c2UgaW4gdGhlIG1vc3Qgb3JkaW5hcnkg d2F5LCB0byBwcmludCBvciBkaXNwbGF5IGFuCisgICAgYW5ub3VuY2VtZW50IGluY2x1ZGluZyBh biBhcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBhCisgICAgbm90aWNlIHRoYXQgdGhl cmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0aGF0IHlvdSBwcm92aWRlCisgICAg YSB3YXJyYW50eSkgYW5kIHRoYXQgdXNlcnMgbWF5IHJlZGlzdHJpYnV0ZSB0aGUgcHJvZ3JhbSB1 bmRlcgorICAgIHRoZXNlIGNvbmRpdGlvbnMsIGFuZCB0ZWxsaW5nIHRoZSB1c2VyIGhvdyB0byB2 aWV3IGEgY29weSBvZiB0aGlzCisgICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlmIHRoZSBQcm9n cmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKKyAgICBkb2VzIG5vdCBub3JtYWxseSBwcmlu dCBzdWNoIGFuIGFubm91bmNlbWVudCwgeW91ciB3b3JrIGJhc2VkIG9uCisgICAgdGhlIFByb2dy YW0gaXMgbm90IHJlcXVpcmVkIHRvIHByaW50IGFuIGFubm91bmNlbWVudC4pCisMCitUaGVzZSBy ZXF1aXJlbWVudHMgYXBwbHkgdG8gdGhlIG1vZGlmaWVkIHdvcmsgYXMgYSB3aG9sZS4gIElmCitp ZGVudGlmaWFibGUgc2VjdGlvbnMgb2YgdGhhdCB3b3JrIGFyZSBub3QgZGVyaXZlZCBmcm9tIHRo ZSBQcm9ncmFtLAorYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQg YW5kIHNlcGFyYXRlIHdvcmtzIGluCit0aGVtc2VsdmVzLCB0aGVuIHRoaXMgTGljZW5zZSwgYW5k IGl0cyB0ZXJtcywgZG8gbm90IGFwcGx5IHRvIHRob3NlCitzZWN0aW9ucyB3aGVuIHlvdSBkaXN0 cmlidXRlIHRoZW0gYXMgc2VwYXJhdGUgd29ya3MuICBCdXQgd2hlbiB5b3UKK2Rpc3RyaWJ1dGUg dGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNl ZAorb24gdGhlIFByb2dyYW0sIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIHdob2xlIG11c3QgYmUg b24gdGhlIHRlcm1zIG9mCit0aGlzIExpY2Vuc2UsIHdob3NlIHBlcm1pc3Npb25zIGZvciBvdGhl ciBsaWNlbnNlZXMgZXh0ZW5kIHRvIHRoZQorZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNo IGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlIGl0LgorCitUaHVzLCBpdCBp cyBub3QgdGhlIGludGVudCBvZiB0aGlzIHNlY3Rpb24gdG8gY2xhaW0gcmlnaHRzIG9yIGNvbnRl c3QKK3lvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJhdGhlciwg dGhlIGludGVudCBpcyB0bworZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIGNvbnRyb2wgdGhlIGRpc3Ry aWJ1dGlvbiBvZiBkZXJpdmF0aXZlIG9yCitjb2xsZWN0aXZlIHdvcmtzIGJhc2VkIG9uIHRoZSBQ cm9ncmFtLgorCitJbiBhZGRpdGlvbiwgbWVyZSBhZ2dyZWdhdGlvbiBvZiBhbm90aGVyIHdvcmsg bm90IGJhc2VkIG9uIHRoZSBQcm9ncmFtCit3aXRoIHRoZSBQcm9ncmFtIChvciB3aXRoIGEgd29y ayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSkgb24gYSB2b2x1bWUgb2YKK2Egc3RvcmFnZSBvciBkaXN0 cmlidXRpb24gbWVkaXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCit0aGUg c2NvcGUgb2YgdGhpcyBMaWNlbnNlLgorCisgIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0 ZSB0aGUgUHJvZ3JhbSAob3IgYSB3b3JrIGJhc2VkIG9uIGl0LAordW5kZXIgU2VjdGlvbiAyKSBp biBvYmplY3QgY29kZSBvciBleGVjdXRhYmxlIGZvcm0gdW5kZXIgdGhlIHRlcm1zIG9mCitTZWN0 aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gZG8gb25lIG9mIHRoZSBm b2xsb3dpbmc6CisKKyAgICBhKSBBY2NvbXBhbnkgaXQgd2l0aCB0aGUgY29tcGxldGUgY29ycmVz cG9uZGluZyBtYWNoaW5lLXJlYWRhYmxlCisgICAgc291cmNlIGNvZGUsIHdoaWNoIG11c3QgYmUg ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zCisgICAgMSBhbmQgMiBhYm92 ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsg b3IsCisKKyAgICBiKSBBY2NvbXBhbnkgaXQgd2l0aCBhIHdyaXR0ZW4gb2ZmZXIsIHZhbGlkIGZv ciBhdCBsZWFzdCB0aHJlZQorICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwgZm9y IGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCisgICAgY29zdCBvZiBwaHlzaWNhbGx5IHBlcmZv cm1pbmcgc291cmNlIGRpc3RyaWJ1dGlvbiwgYSBjb21wbGV0ZQorICAgIG1hY2hpbmUtcmVhZGFi bGUgY29weSBvZiB0aGUgY29ycmVzcG9uZGluZyBzb3VyY2UgY29kZSwgdG8gYmUKKyAgICBkaXN0 cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1l ZGl1bQorICAgIGN1c3RvbWFyaWx5IHVzZWQgZm9yIHNvZnR3YXJlIGludGVyY2hhbmdlOyBvciwK KworICAgIGMpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQg YXMgdG8gdGhlIG9mZmVyCisgICAgdG8gZGlzdHJpYnV0ZSBjb3JyZXNwb25kaW5nIHNvdXJjZSBj b2RlLiAgKFRoaXMgYWx0ZXJuYXRpdmUgaXMKKyAgICBhbGxvd2VkIG9ubHkgZm9yIG5vbmNvbW1l cmNpYWwgZGlzdHJpYnV0aW9uIGFuZCBvbmx5IGlmIHlvdQorICAgIHJlY2VpdmVkIHRoZSBwcm9n cmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB3aXRoIHN1Y2gKKyAgICBhbiBv ZmZlciwgaW4gYWNjb3JkIHdpdGggU3Vic2VjdGlvbiBiIGFib3ZlLikKKworVGhlIHNvdXJjZSBj b2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgor bWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQuICBGb3IgYW4gZXhlY3V0YWJsZSB3b3JrLCBjb21w bGV0ZSBzb3VyY2UKK2NvZGUgbWVhbnMgYWxsIHRoZSBzb3VyY2UgY29kZSBmb3IgYWxsIG1vZHVs ZXMgaXQgY29udGFpbnMsIHBsdXMgYW55Cithc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9u IGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KK2NvbnRyb2wgY29tcGlsYXRpb24gYW5k IGluc3RhbGxhdGlvbiBvZiB0aGUgZXhlY3V0YWJsZS4gIEhvd2V2ZXIsIGFzIGEKK3NwZWNpYWwg ZXhjZXB0aW9uLCB0aGUgc291cmNlIGNvZGUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZQor YW55dGhpbmcgdGhhdCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBv ciBiaW5hcnkKK2Zvcm0pIHdpdGggdGhlIG1ham9yIGNvbXBvbmVudHMgKGNvbXBpbGVyLCBrZXJu ZWwsIGFuZCBzbyBvbikgb2YgdGhlCitvcGVyYXRpbmcgc3lzdGVtIG9uIHdoaWNoIHRoZSBleGVj dXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudAoraXRzZWxmIGFjY29tcGFuaWVzIHRo ZSBleGVjdXRhYmxlLgorCitJZiBkaXN0cmlidXRpb24gb2YgZXhlY3V0YWJsZSBvciBvYmplY3Qg Y29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nCithY2Nlc3MgdG8gY29weSBmcm9tIGEgZGVzaWduYXRl ZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50CithY2Nlc3MgdG8gY29weSB0aGUgc291 cmNlIGNvZGUgZnJvbSB0aGUgc2FtZSBwbGFjZSBjb3VudHMgYXMKK2Rpc3RyaWJ1dGlvbiBvZiB0 aGUgc291cmNlIGNvZGUsIGV2ZW4gdGhvdWdoIHRoaXJkIHBhcnRpZXMgYXJlIG5vdAorY29tcGVs bGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KKwwKKyAg NC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRo ZSBQcm9ncmFtCitleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5z ZS4gIEFueSBhdHRlbXB0CitvdGhlcndpc2UgdG8gY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlIG9y IGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gaXMKK3ZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkg dGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4KK0hvd2V2ZXIsIHBhcnRp ZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVyCit0 aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcyB0ZXJtaW5hdGVkIHNvIGxv bmcgYXMgc3VjaAorcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgorCisgIDUuIFlv dSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZl IG5vdAorc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlz c2lvbiB0byBtb2RpZnkgb3IKK2Rpc3RyaWJ1dGUgdGhlIFByb2dyYW0gb3IgaXRzIGRlcml2YXRp dmUgd29ya3MuICBUaGVzZSBhY3Rpb25zIGFyZQorcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRv IG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQorbW9kaWZ5aW5nIG9yIGRp c3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlCitQcm9ncmFt KSwgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2UgdG8gZG8gc28s IGFuZAorYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0 aW5nIG9yIG1vZGlmeWluZwordGhlIFByb2dyYW0gb3Igd29ya3MgYmFzZWQgb24gaXQuCisKKyAg Ni4gRWFjaCB0aW1lIHlvdSByZWRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJh c2VkIG9uIHRoZQorUHJvZ3JhbSksIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZl cyBhIGxpY2Vuc2UgZnJvbSB0aGUKK29yaWdpbmFsIGxpY2Vuc29yIHRvIGNvcHksIGRpc3RyaWJ1 dGUgb3IgbW9kaWZ5IHRoZSBQcm9ncmFtIHN1YmplY3QgdG8KK3RoZXNlIHRlcm1zIGFuZCBjb25k aXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCityZXN0cmljdGlvbnMgb24g dGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCitZ b3UgYXJlIG5vdCByZXNwb25zaWJsZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQg cGFydGllcyB0bwogdGhpcyBMaWNlbnNlLgogCi0gIEVhY2ggY29udHJpYnV0b3IgZ3JhbnRzIHlv dSBhIG5vbi1leGNsdXNpdmUsIHdvcmxkd2lkZSwgcm95YWx0eS1mcmVlCi1wYXRlbnQgbGljZW5z ZSB1bmRlciB0aGUgY29udHJpYnV0b3IncyBlc3NlbnRpYWwgcGF0ZW50IGNsYWltcywgdG8KLW1h a2UsIHVzZSwgc2VsbCwgb2ZmZXIgZm9yIHNhbGUsIGltcG9ydCBhbmQgb3RoZXJ3aXNlIHJ1biwg bW9kaWZ5IGFuZAotcHJvcGFnYXRlIHRoZSBjb250ZW50cyBvZiBpdHMgY29udHJpYnV0b3IgdmVy c2lvbi4KLQotICBJbiB0aGUgZm9sbG93aW5nIHRocmVlIHBhcmFncmFwaHMsIGEgInBhdGVudCBs aWNlbnNlIiBpcyBhbnkgZXhwcmVzcwotYWdyZWVtZW50IG9yIGNvbW1pdG1lbnQsIGhvd2V2ZXIg ZGVub21pbmF0ZWQsIG5vdCB0byBlbmZvcmNlIGEgcGF0ZW50Ci0oc3VjaCBhcyBhbiBleHByZXNz IHBlcm1pc3Npb24gdG8gcHJhY3RpY2UgYSBwYXRlbnQgb3IgY292ZW5hbnQgbm90IHRvCi1zdWUg Zm9yIHBhdGVudCBpbmZyaW5nZW1lbnQpLiAgVG8gImdyYW50IiBzdWNoIGEgcGF0ZW50IGxpY2Vu c2UgdG8gYQotcGFydHkgbWVhbnMgdG8gbWFrZSBzdWNoIGFuIGFncmVlbWVudCBvciBjb21taXRt ZW50IG5vdCB0byBlbmZvcmNlIGEKLXBhdGVudCBhZ2FpbnN0IHRoZSBwYXJ0eS4KLQotICBJZiB5 b3UgY29udmV5IGEgY292ZXJlZCB3b3JrLCBrbm93aW5nbHkgcmVseWluZyBvbiBhIHBhdGVudCBs aWNlbnNlLAotYW5kIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBpcyBub3Qg YXZhaWxhYmxlIGZvciBhbnlvbmUKLXRvIGNvcHksIGZyZWUgb2YgY2hhcmdlIGFuZCB1bmRlciB0 aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLCB0aHJvdWdoIGEKLXB1YmxpY2x5IGF2YWlsYWJsZSBu ZXR3b3JrIHNlcnZlciBvciBvdGhlciByZWFkaWx5IGFjY2Vzc2libGUgbWVhbnMsCi10aGVuIHlv dSBtdXN0IGVpdGhlciAoMSkgY2F1c2UgdGhlIENvcnJlc3BvbmRpbmcgU291cmNlIHRvIGJlIHNv Ci1hdmFpbGFibGUsIG9yICgyKSBhcnJhbmdlIHRvIGRlcHJpdmUgeW91cnNlbGYgb2YgdGhlIGJl bmVmaXQgb2YgdGhlCi1wYXRlbnQgbGljZW5zZSBmb3IgdGhpcyBwYXJ0aWN1bGFyIHdvcmssIG9y ICgzKSBhcnJhbmdlLCBpbiBhIG1hbm5lcgotY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVu dHMgb2YgdGhpcyBMaWNlbnNlLCB0byBleHRlbmQgdGhlIHBhdGVudAotbGljZW5zZSB0byBkb3du c3RyZWFtIHJlY2lwaWVudHMuICAiS25vd2luZ2x5IHJlbHlpbmciIG1lYW5zIHlvdSBoYXZlCi1h Y3R1YWwga25vd2xlZGdlIHRoYXQsIGJ1dCBmb3IgdGhlIHBhdGVudCBsaWNlbnNlLCB5b3VyIGNv bnZleWluZyB0aGUKLWNvdmVyZWQgd29yayBpbiBhIGNvdW50cnksIG9yIHlvdXIgcmVjaXBpZW50 J3MgdXNlIG9mIHRoZSBjb3ZlcmVkIHdvcmsKLWluIGEgY291bnRyeSwgd291bGQgaW5mcmluZ2Ug b25lIG9yIG1vcmUgaWRlbnRpZmlhYmxlIHBhdGVudHMgaW4gdGhhdAotY291bnRyeSB0aGF0IHlv dSBoYXZlIHJlYXNvbiB0byBiZWxpZXZlIGFyZSB2YWxpZC4KLQotICBJZiwgcHVyc3VhbnQgdG8g b3IgaW4gY29ubmVjdGlvbiB3aXRoIGEgc2luZ2xlIHRyYW5zYWN0aW9uIG9yCi1hcnJhbmdlbWVu dCwgeW91IGNvbnZleSwgb3IgcHJvcGFnYXRlIGJ5IHByb2N1cmluZyBjb252ZXlhbmNlIG9mLCBh Ci1jb3ZlcmVkIHdvcmssIGFuZCBncmFudCBhIHBhdGVudCBsaWNlbnNlIHRvIHNvbWUgb2YgdGhl IHBhcnRpZXMKLXJlY2VpdmluZyB0aGUgY292ZXJlZCB3b3JrIGF1dGhvcml6aW5nIHRoZW0gdG8g dXNlLCBwcm9wYWdhdGUsIG1vZGlmeQotb3IgY29udmV5IGEgc3BlY2lmaWMgY29weSBvZiB0aGUg Y292ZXJlZCB3b3JrLCB0aGVuIHRoZSBwYXRlbnQgbGljZW5zZQoteW91IGdyYW50IGlzIGF1dG9t YXRpY2FsbHkgZXh0ZW5kZWQgdG8gYWxsIHJlY2lwaWVudHMgb2YgdGhlIGNvdmVyZWQKLXdvcmsg YW5kIHdvcmtzIGJhc2VkIG9uIGl0LgotCi0gIEEgcGF0ZW50IGxpY2Vuc2UgaXMgImRpc2NyaW1p bmF0b3J5IiBpZiBpdCBkb2VzIG5vdCBpbmNsdWRlIHdpdGhpbgotdGhlIHNjb3BlIG9mIGl0cyBj b3ZlcmFnZSwgcHJvaGliaXRzIHRoZSBleGVyY2lzZSBvZiwgb3IgaXMKLWNvbmRpdGlvbmVkIG9u IHRoZSBub24tZXhlcmNpc2Ugb2Ygb25lIG9yIG1vcmUgb2YgdGhlIHJpZ2h0cyB0aGF0IGFyZQot c3BlY2lmaWNhbGx5IGdyYW50ZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgWW91IG1heSBub3QgY29u dmV5IGEgY292ZXJlZAotd29yayBpZiB5b3UgYXJlIGEgcGFydHkgdG8gYW4gYXJyYW5nZW1lbnQg d2l0aCBhIHRoaXJkIHBhcnR5IHRoYXQgaXMKLWluIHRoZSBidXNpbmVzcyBvZiBkaXN0cmlidXRp bmcgc29mdHdhcmUsIHVuZGVyIHdoaWNoIHlvdSBtYWtlIHBheW1lbnQKLXRvIHRoZSB0aGlyZCBw YXJ0eSBiYXNlZCBvbiB0aGUgZXh0ZW50IG9mIHlvdXIgYWN0aXZpdHkgb2YgY29udmV5aW5nCi10 aGUgd29yaywgYW5kIHVuZGVyIHdoaWNoIHRoZSB0aGlyZCBwYXJ0eSBncmFudHMsIHRvIGFueSBv ZiB0aGUKLXBhcnRpZXMgd2hvIHdvdWxkIHJlY2VpdmUgdGhlIGNvdmVyZWQgd29yayBmcm9tIHlv dSwgYSBkaXNjcmltaW5hdG9yeQotcGF0ZW50IGxpY2Vuc2UgKGEpIGluIGNvbm5lY3Rpb24gd2l0 aCBjb3BpZXMgb2YgdGhlIGNvdmVyZWQgd29yawotY29udmV5ZWQgYnkgeW91IChvciBjb3BpZXMg bWFkZSBmcm9tIHRob3NlIGNvcGllcyksIG9yIChiKSBwcmltYXJpbHkKLWZvciBhbmQgaW4gY29u bmVjdGlvbiB3aXRoIHNwZWNpZmljIHByb2R1Y3RzIG9yIGNvbXBpbGF0aW9ucyB0aGF0Ci1jb250 YWluIHRoZSBjb3ZlcmVkIHdvcmssIHVubGVzcyB5b3UgZW50ZXJlZCBpbnRvIHRoYXQgYXJyYW5n ZW1lbnQsCi1vciB0aGF0IHBhdGVudCBsaWNlbnNlIHdhcyBncmFudGVkLCBwcmlvciB0byAyOCBN YXJjaCAyMDA3LgotCi0gIE5vdGhpbmcgaW4gdGhpcyBMaWNlbnNlIHNoYWxsIGJlIGNvbnN0cnVl ZCBhcyBleGNsdWRpbmcgb3IgbGltaXRpbmcKLWFueSBpbXBsaWVkIGxpY2Vuc2Ugb3Igb3RoZXIg ZGVmZW5zZXMgdG8gaW5mcmluZ2VtZW50IHRoYXQgbWF5Ci1vdGhlcndpc2UgYmUgYXZhaWxhYmxl IHRvIHlvdSB1bmRlciBhcHBsaWNhYmxlIHBhdGVudCBsYXcuCi0KLSAgMTIuIE5vIFN1cnJlbmRl ciBvZiBPdGhlcnMnIEZyZWVkb20uCi0KLSAgSWYgY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5 b3UgKHdoZXRoZXIgYnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgorICA3LiBJZiwgYXMgYSBj b25zZXF1ZW5jZSBvZiBhIGNvdXJ0IGp1ZGdtZW50IG9yIGFsbGVnYXRpb24gb2YgcGF0ZW50Citp bmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVu dCBpc3N1ZXMpLAorY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkgY291 cnQgb3JkZXIsIGFncmVlbWVudCBvcgogb3RoZXJ3aXNlKSB0aGF0IGNvbnRyYWRpY3QgdGhlIGNv bmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLCB0aGV5IGRvIG5vdAotZXhjdXNlIHlvdSBmcm9tIHRo ZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QgY29udmV5IGEKLWNv dmVyZWQgd29yayBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlv bnMgdW5kZXIgdGhpcwotTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9u cywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdSBtYXkKLW5vdCBjb252ZXkgaXQgYXQgYWxsLiAg Rm9yIGV4YW1wbGUsIGlmIHlvdSBhZ3JlZSB0byB0ZXJtcyB0aGF0IG9ibGlnYXRlIHlvdQotdG8g Y29sbGVjdCBhIHJveWFsdHkgZm9yIGZ1cnRoZXIgY29udmV5aW5nIGZyb20gdGhvc2UgdG8gd2hv bSB5b3UgY29udmV5Ci10aGUgUHJvZ3JhbSwgdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5 IGJvdGggdGhvc2UgdGVybXMgYW5kIHRoaXMKLUxpY2Vuc2Ugd291bGQgYmUgdG8gcmVmcmFpbiBl bnRpcmVseSBmcm9tIGNvbnZleWluZyB0aGUgUHJvZ3JhbS4KLQotICAxMy4gVXNlIHdpdGggdGhl IEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4KLQotICBOb3R3aXRoc3RhbmRpbmcg YW55IG90aGVyIHByb3Zpc2lvbiBvZiB0aGlzIExpY2Vuc2UsIHlvdSBoYXZlCi1wZXJtaXNzaW9u IHRvIGxpbmsgb3IgY29tYmluZSBhbnkgY292ZXJlZCB3b3JrIHdpdGggYSB3b3JrIGxpY2Vuc2Vk Ci11bmRlciB2ZXJzaW9uIDMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBpbnRvIGEgc2luZ2xlCi1jb21iaW5lZCB3b3JrLCBhbmQgdG8gY29udmV5IHRoZSByZXN1bHRp bmcgd29yay4gIFRoZSB0ZXJtcyBvZiB0aGlzCi1MaWNlbnNlIHdpbGwgY29udGludWUgdG8gYXBw bHkgdG8gdGhlIHBhcnQgd2hpY2ggaXMgdGhlIGNvdmVyZWQgd29yaywKLWJ1dCB0aGUgc3BlY2lh bCByZXF1aXJlbWVudHMgb2YgdGhlIEdOVSBBZmZlcm8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwK LXNlY3Rpb24gMTMsIGNvbmNlcm5pbmcgaW50ZXJhY3Rpb24gdGhyb3VnaCBhIG5ldHdvcmsgd2ls bCBhcHBseSB0byB0aGUKLWNvbWJpbmF0aW9uIGFzIHN1Y2guCi0KLSAgMTQuIFJldmlzZWQgVmVy c2lvbnMgb2YgdGhpcyBMaWNlbnNlLgotCi0gIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24g bWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zIG9mCi10aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3 aWxsCitleGN1c2UgeW91IGZyb20gdGhlIGNvbmRpdGlvbnMgb2YgdGhpcyBMaWNlbnNlLiAgSWYg eW91IGNhbm5vdAorZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlv dXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcworTGljZW5zZSBhbmQgYW55IG90aGVyIHBlcnRpbmVu dCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlvdQorbWF5IG5vdCBkaXN0cmli dXRlIHRoZSBQcm9ncmFtIGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiBhIHBhdGVudAorbGljZW5z ZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJv Z3JhbSBieQorYWxsIHRob3NlIHdobyByZWNlaXZlIGNvcGllcyBkaXJlY3RseSBvciBpbmRpcmVj dGx5IHRocm91Z2ggeW91LCB0aGVuCit0aGUgb25seSB3YXkgeW91IGNvdWxkIHNhdGlzZnkgYm90 aCBpdCBhbmQgdGhpcyBMaWNlbnNlIHdvdWxkIGJlIHRvCityZWZyYWluIGVudGlyZWx5IGZyb20g ZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtLgorCitJZiBhbnkgcG9ydGlvbiBvZiB0aGlzIHNl Y3Rpb24gaXMgaGVsZCBpbnZhbGlkIG9yIHVuZW5mb3JjZWFibGUgdW5kZXIKK2FueSBwYXJ0aWN1 bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQg dG8KK2FwcGx5IGFuZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5 IGluIG90aGVyCitjaXJjdW1zdGFuY2VzLgorCitJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhp cyBzZWN0aW9uIHRvIGluZHVjZSB5b3UgdG8gaW5mcmluZ2UgYW55CitwYXRlbnRzIG9yIG90aGVy IHByb3BlcnR5IHJpZ2h0IGNsYWltcyBvciB0byBjb250ZXN0IHZhbGlkaXR5IG9mIGFueQorc3Vj aCBjbGFpbXM7IHRoaXMgc2VjdGlvbiBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5n IHRoZQoraW50ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3YXJlIGRpc3RyaWJ1dGlvbiBzeXN0ZW0s IHdoaWNoIGlzCitpbXBsZW1lbnRlZCBieSBwdWJsaWMgbGljZW5zZSBwcmFjdGljZXMuICBNYW55 IHBlb3BsZSBoYXZlIG1hZGUKK2dlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFu Z2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKK3Rocm91Z2ggdGhhdCBzeXN0ZW0gaW4gcmVsaWFu Y2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0CitzeXN0ZW07IGl0IGlzIHVwIHRv IHRoZSBhdXRob3IvZG9ub3IgdG8gZGVjaWRlIGlmIGhlIG9yIHNoZSBpcyB3aWxsaW5nCit0byBk aXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNl ZSBjYW5ub3QKK2ltcG9zZSB0aGF0IGNob2ljZS4KKworVGhpcyBzZWN0aW9uIGlzIGludGVuZGVk IHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCitiZSBhIGNvbnNl cXVlbmNlIG9mIHRoZSByZXN0IG9mIHRoaXMgTGljZW5zZS4KKwwKKyAgOC4gSWYgdGhlIGRpc3Ry aWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBQcm9ncmFtIGlzIHJlc3RyaWN0ZWQgaW4KK2NlcnRh aW4gY291bnRyaWVzIGVpdGhlciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFj ZXMsIHRoZQorb3JpZ2luYWwgY29weXJpZ2h0IGhvbGRlciB3aG8gcGxhY2VzIHRoZSBQcm9ncmFt IHVuZGVyIHRoaXMgTGljZW5zZQorbWF5IGFkZCBhbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlz dHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nCit0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQg ZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9yIGFtb25nCitjb3VudHJpZXMgbm90 IHRodXMgZXhjbHVkZWQuICBJbiBzdWNoIGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMK K3RoZSBsaW1pdGF0aW9uIGFzIGlmIHdyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNl LgorCisgIDkuIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNl ZCBhbmQvb3IgbmV3IHZlcnNpb25zCitvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmcm9t IHRpbWUgdG8gdGltZS4gIFN1Y2ggbmV3IHZlcnNpb25zIHdpbGwKIGJlIHNpbWlsYXIgaW4gc3Bp cml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwog YWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCiAKLSAgRWFjaCB2ZXJzaW9uIGlzIGdp dmVuIGEgZGlzdGluZ3Vpc2hpbmcgdmVyc2lvbiBudW1iZXIuICBJZiB0aGUKLVByb2dyYW0gc3Bl Y2lmaWVzIHRoYXQgYSBjZXJ0YWluIG51bWJlcmVkIHZlcnNpb24gb2YgdGhlIEdOVSBHZW5lcmFs Ci1QdWJsaWMgTGljZW5zZSAib3IgYW55IGxhdGVyIHZlcnNpb24iIGFwcGxpZXMgdG8gaXQsIHlv dSBoYXZlIHRoZQotb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMg ZWl0aGVyIG9mIHRoYXQgbnVtYmVyZWQKLXZlcnNpb24gb3Igb2YgYW55IGxhdGVyIHZlcnNpb24g cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCi1Gb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dy YW0gZG9lcyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mIHRoZQotR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVk Ci1ieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgotCi0gIElmIHRoZSBQcm9ncmFtIHNw ZWNpZmllcyB0aGF0IGEgcHJveHkgY2FuIGRlY2lkZSB3aGljaCBmdXR1cmUKLXZlcnNpb25zIG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBjYW4gYmUgdXNlZCwgdGhhdCBwcm94eSdz Ci1wdWJsaWMgc3RhdGVtZW50IG9mIGFjY2VwdGFuY2Ugb2YgYSB2ZXJzaW9uIHBlcm1hbmVudGx5 IGF1dGhvcml6ZXMgeW91Ci10byBjaG9vc2UgdGhhdCB2ZXJzaW9uIGZvciB0aGUgUHJvZ3JhbS4K LQotICBMYXRlciBsaWNlbnNlIHZlcnNpb25zIG1heSBnaXZlIHlvdSBhZGRpdGlvbmFsIG9yIGRp ZmZlcmVudAotcGVybWlzc2lvbnMuICBIb3dldmVyLCBubyBhZGRpdGlvbmFsIG9ibGlnYXRpb25z IGFyZSBpbXBvc2VkIG9uIGFueQotYXV0aG9yIG9yIGNvcHlyaWdodCBob2xkZXIgYXMgYSByZXN1 bHQgb2YgeW91ciBjaG9vc2luZyB0byBmb2xsb3cgYQotbGF0ZXIgdmVyc2lvbi4KLQotICAxNS4g RGlzY2xhaW1lciBvZiBXYXJyYW50eS4KLQotICBUSEVSRSBJUyBOTyBXQVJSQU5UWSBGT1IgVEhF IFBST0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZCi1BUFBMSUNBQkxFIExBVy4gIEVY Q0VQVCBXSEVOIE9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUCi1IT0xE RVJTIEFORC9PUiBPVEhFUiBQQVJUSUVTIFBST1ZJREUgVEhFIFBST0dSQU0gIkFTIElTIiBXSVRI T1VUIFdBUlJBTlRZCi1PRiBBTlkgS0lORCwgRUlUSEVSIEVYUFJFU1NFRCBPUiBJTVBMSUVELCBJ TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLVRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLVBVUlBPU0UuICBU SEUgRU5USVJFIFJJU0sgQVMgVE8gVEhFIFFVQUxJVFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBQ Uk9HUkFNCi1JUyBXSVRIIFlPVS4gIFNIT1VMRCBUSEUgUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUs IFlPVSBBU1NVTUUgVEhFIENPU1QgT0YKLUFMTCBORUNFU1NBUlkgU0VSVklDSU5HLCBSRVBBSVIg T1IgQ09SUkVDVElPTi4KLQotICAxNi4gTGltaXRhdGlvbiBvZiBMaWFiaWxpdHkuCi0KLSAgSU4g Tk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJQ0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJ TiBXUklUSU5HCi1XSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkg V0hPIE1PRElGSUVTIEFORC9PUiBDT05WRVlTCi1USEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJP VkUsIEJFIExJQUJMRSBUTyBZT1UgRk9SIERBTUFHRVMsIElOQ0xVRElORyBBTlkKLUdFTkVSQUws IFNQRUNJQUwsIElOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcgT1VU IE9GIFRIRQotVVNFIE9SIElOQUJJTElUWSBUTyBVU0UgVEhFIFBST0dSQU0gKElOQ0xVRElORyBC VVQgTk9UIExJTUlURUQgVE8gTE9TUyBPRgotREFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElO QUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWSBZT1UgT1IgVEhJUkQKLVBBUlRJRVMgT1Ig QSBGQUlMVVJFIE9GIFRIRSBQUk9HUkFNIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIgUFJPR1JB TVMpLAotRVZFTiBJRiBTVUNIIEhPTERFUiBPUiBPVEhFUiBQQVJUWSBIQVMgQkVFTiBBRFZJU0VE IE9GIFRIRSBQT1NTSUJJTElUWSBPRgotU1VDSCBEQU1BR0VTLgotCi0gIDE3LiBJbnRlcnByZXRh dGlvbiBvZiBTZWN0aW9ucyAxNSBhbmQgMTYuCi0KLSAgSWYgdGhlIGRpc2NsYWltZXIgb2Ygd2Fy cmFudHkgYW5kIGxpbWl0YXRpb24gb2YgbGlhYmlsaXR5IHByb3ZpZGVkCi1hYm92ZSBjYW5ub3Qg YmUgZ2l2ZW4gbG9jYWwgbGVnYWwgZWZmZWN0IGFjY29yZGluZyB0byB0aGVpciB0ZXJtcywKLXJl dmlld2luZyBjb3VydHMgc2hhbGwgYXBwbHkgbG9jYWwgbGF3IHRoYXQgbW9zdCBjbG9zZWx5IGFw cHJveGltYXRlcwotYW4gYWJzb2x1dGUgd2FpdmVyIG9mIGFsbCBjaXZpbCBsaWFiaWxpdHkgaW4g Y29ubmVjdGlvbiB3aXRoIHRoZQotUHJvZ3JhbSwgdW5sZXNzIGEgd2FycmFudHkgb3IgYXNzdW1w dGlvbiBvZiBsaWFiaWxpdHkgYWNjb21wYW5pZXMgYQotY29weSBvZiB0aGUgUHJvZ3JhbSBpbiBy ZXR1cm4gZm9yIGEgZmVlLgotCi0gICAgICAgICAgICAgICAgICAgICBFTkQgT0YgVEVSTVMgQU5E IENPTkRJVElPTlMKLQotICAgICAgICAgICAgSG93IHRvIEFwcGx5IFRoZXNlIFRlcm1zIHRvIFlv dXIgTmV3IFByb2dyYW1zCitFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2 ZXJzaW9uIG51bWJlci4gIElmIHRoZSBQcm9ncmFtCitzcGVjaWZpZXMgYSB2ZXJzaW9uIG51bWJl ciBvZiB0aGlzIExpY2Vuc2Ugd2hpY2ggYXBwbGllcyB0byBpdCBhbmQgImFueQorbGF0ZXIgdmVy c2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29u ZGl0aW9ucworZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBw dWJsaXNoZWQgYnkgdGhlIEZyZWUKK1NvZnR3YXJlIEZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3Jh bSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YKK3RoaXMgTGljZW5zZSwgeW91 IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUKK0ZvdW5kYXRpb24uCisKKyAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRz IG9mIHRoZSBQcm9ncmFtIGludG8gb3RoZXIgZnJlZQorcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0 aW9uIGNvbmRpdGlvbnMgYXJlIGRpZmZlcmVudCwgd3JpdGUgdG8gdGhlIGF1dGhvcgordG8gYXNr IGZvciBwZXJtaXNzaW9uLiAgRm9yIHNvZnR3YXJlIHdoaWNoIGlzIGNvcHlyaWdodGVkIGJ5IHRo ZSBGcmVlCitTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKK21ha2UgZXhjZXB0aW9ucyBmb3IgdGhpcy4gIE91ciBk ZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzCitvZiBwcmVzZXJ2aW5nIHRo ZSBmcmVlIHN0YXR1cyBvZiBhbGwgZGVyaXZhdGl2ZXMgb2Ygb3VyIGZyZWUgc29mdHdhcmUgYW5k CitvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJlIGdlbmVyYWxs eS4KKworCQkJICAgIE5PIFdBUlJBTlRZCisKKyAgMTEuIEJFQ0FVU0UgVEhFIFBST0dSQU0gSVMg TElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5PIFdBUlJBTlRZCitGT1IgVEhFIFBS T0dSQU0sIFRPIFRIRSBFWFRFTlQgUEVSTUlUVEVEIEJZIEFQUExJQ0FCTEUgTEFXLiAgRVhDRVBU IFdIRU4KK09USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMg QU5EL09SIE9USEVSIFBBUlRJRVMKK1BST1ZJREUgVEhFIFBST0dSQU0gIkFTIElTIiBXSVRIT1VU IFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VECitPUiBJTVBMSUVELCBJTkNM VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRgorTUVS Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBF TlRJUkUgUklTSyBBUworVE8gVEhFIFFVQUxJVFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBQUk9H UkFNIElTIFdJVEggWU9VLiAgU0hPVUxEIFRIRQorUFJPR1JBTSBQUk9WRSBERUZFQ1RJVkUsIFlP VSBBU1NVTUUgVEhFIENPU1QgT0YgQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsCitSRVBBSVIgT1Ig Q09SUkVDVElPTi4KKworICAxMi4gSU4gTk8gRVZFTlQgVU5MRVNTIFJFUVVJUkVEIEJZIEFQUExJ Q0FCTEUgTEFXIE9SIEFHUkVFRCBUTyBJTiBXUklUSU5HCitXSUxMIEFOWSBDT1BZUklHSFQgSE9M REVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09SCitSRURJU1RSSUJV VEUgVEhFIFBST0dSQU0gQVMgUEVSTUlUVEVEIEFCT1ZFLCBCRSBMSUFCTEUgVE8gWU9VIEZPUiBE QU1BR0VTLAorSU5DTFVESU5HIEFOWSBHRU5FUkFMLCBTUEVDSUFMLCBJTkNJREVOVEFMIE9SIENP TlNFUVVFTlRJQUwgREFNQUdFUyBBUklTSU5HCitPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkg VE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVECitUTyBMT1NTIE9G IERBVEEgT1IgREFUQSBCRUlORyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNUQUlO RUQgQlkKK1lPVSBPUiBUSElSRCBQQVJUSUVTIE9SIEEgRkFJTFVSRSBPRiBUSEUgUFJPR1JBTSBU TyBPUEVSQVRFIFdJVEggQU5ZIE9USEVSCitQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIg T1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKK1BPU1NJQklMSVRZIE9GIFNV Q0ggREFNQUdFUy4KKworCQkgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworDAorCUFw cGVuZGl4OiBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKIAog ICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2Yg dGhlIGdyZWF0ZXN0CiBwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRv IGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CkBAIC02MjgsMTUgKzI4NywxNSBAQCBmcmVlIHNv ZnR3YXJlIHdoaWNoIGV2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZSB1bmRlciB0 aGVzZSB0ZXJtcy4KIAogICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0 byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAogdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0 IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQotc3RhdGUgdGhlIGV4Y2x1 c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAorY29u dmV5IHRoZSBleGNsdXNpb24gb2Ygd2FycmFudHk7IGFuZCBlYWNoIGZpbGUgc2hvdWxkIGhhdmUg YXQgbGVhc3QKIHRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhl IGZ1bGwgbm90aWNlIGlzIGZvdW5kLgogCiAgICAgPG9uZSBsaW5lIHRvIGdpdmUgdGhlIHByb2dy YW0ncyBuYW1lIGFuZCBhIGJyaWVmIGlkZWEgb2Ygd2hhdCBpdCBkb2VzLj4KLSAgICBDb3B5cmln aHQgKEMpIDx5ZWFyPiAgPG5hbWUgb2YgYXV0aG9yPgorICAgIENvcHlyaWdodCAoQykgMTl5eSAg PG5hbWUgb2YgYXV0aG9yPgogCi0gICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAgICBUaGlzIHByb2dyYW0gaXMg ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAg IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZl cnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgogICAgIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAKICAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0 ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKQEAgLTY0NSwzMCArMzA0LDM2 IEBAIHRoZSAiY29weXJpZ2h0IiBsaW5lIGFuZCBhIHBvaW50ZXIgdG8gd2hlcmUgdGhlIGZ1bGwg bm90aWNlIGlzIGZvdW5kLgogICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCiAKICAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAg SWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICAgIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgICAg Rm91bmRhdGlvbiwgSW5jLiwgNjc1IE1hc3MgQXZlLCBDYW1icmlkZ2UsIE1BIDAyMTM5LCBVU0Eu CiAKIEFsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJv bmljIGFuZCBwYXBlciBtYWlsLgogCi0gIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50 ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKLW5vdGljZSBsaWtlIHRoaXMgd2hlbiBp dCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKK0lmIHRoZSBwcm9ncmFtIGlzIGludGVy YWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKK3doZW4gaXQg c3RhcnRzIGluIGFuIGludGVyYWN0aXZlIG1vZGU6CiAKLSAgICA8cHJvZ3JhbT4gIENvcHlyaWdo dCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+Ci0gICAgVGhpcyBwcm9ncmFtIGNvbWVzIHdp dGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KKyAg ICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIDE5eXkgbmFtZSBvZiBhdXRo b3IKKyAgICBHbm9tb3Zpc2lvbiBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFk7IGZv ciBkZXRhaWxzIHR5cGUgYHNob3cgdycuCiAgICAgVGhpcyBpcyBmcmVlIHNvZnR3YXJlLCBhbmQg eW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdAogICAgIHVuZGVyIGNlcnRhaW4gY29u ZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KIAogVGhlIGh5cG90aGV0aWNhbCBj b21tYW5kcyBgc2hvdyB3JyBhbmQgYHNob3cgYycgc2hvdWxkIHNob3cgdGhlIGFwcHJvcHJpYXRl Ci1wYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgeW91ciBw cm9ncmFtJ3MgY29tbWFuZHMKLW1pZ2h0IGJlIGRpZmZlcmVudDsgZm9yIGEgR1VJIGludGVyZmFj ZSwgeW91IHdvdWxkIHVzZSBhbiAiYWJvdXQgYm94Ii4KLQotICBZb3Ugc2hvdWxkIGFsc28gZ2V0 IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3Igc2Nob29sLAot aWYgYW55LCB0byBzaWduIGEgImNvcHlyaWdodCBkaXNjbGFpbWVyIiBmb3IgdGhlIHByb2dyYW0s IGlmIG5lY2Vzc2FyeS4KLUZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMsIGFuZCBob3cgdG8g YXBwbHkgYW5kIGZvbGxvdyB0aGUgR05VIEdQTCwgc2VlCi08aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCi0KLSAgVGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGRvZXMgbm90IHBl cm1pdCBpbmNvcnBvcmF0aW5nIHlvdXIgcHJvZ3JhbQotaW50byBwcm9wcmlldGFyeSBwcm9ncmFt cy4gIElmIHlvdXIgcHJvZ3JhbSBpcyBhIHN1YnJvdXRpbmUgbGlicmFyeSwgeW91Ci1tYXkgY29u c2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGlj YXRpb25zIHdpdGgKLXRoZSBsaWJyYXJ5LiAgSWYgdGhpcyBpcyB3aGF0IHlvdSB3YW50IHRvIGRv LCB1c2UgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbAotUHVibGljIExpY2Vuc2UgaW5zdGVhZCBvZiB0 aGlzIExpY2Vuc2UuICBCdXQgZmlyc3QsIHBsZWFzZSByZWFkCi08aHR0cDovL3d3dy5nbnUub3Jn L3BoaWxvc29waHkvd2h5LW5vdC1sZ3BsLmh0bWw+LgorcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHRoZSBjb21tYW5kcyB5b3UgdXNlIG1heQorYmUgY2Fs bGVkIHNvbWV0aGluZyBvdGhlciB0aGFuIGBzaG93IHcnIGFuZCBgc2hvdyBjJzsgdGhleSBjb3Vs ZCBldmVuIGJlCittb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91 ciBwcm9ncmFtLgorCitZb3Ugc2hvdWxkIGFsc28gZ2V0IHlvdXIgZW1wbG95ZXIgKGlmIHlvdSB3 b3JrIGFzIGEgcHJvZ3JhbW1lcikgb3IgeW91cgorc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAi Y29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKK25lY2Vzc2FyeS4gIEhl cmUgaXMgYSBzYW1wbGU7IGFsdGVyIHRoZSBuYW1lczoKKworICBZb3lvZHluZSwgSW5jLiwgaGVy ZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCisgIGBH bm9tb3Zpc2lvbicgKHdoaWNoIG1ha2VzIHBhc3NlcyBhdCBjb21waWxlcnMpIHdyaXR0ZW4gYnkg SmFtZXMgSGFja2VyLgorCisgIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQor ICBUeSBDb29uLCBQcmVzaWRlbnQgb2YgVmljZQorCitUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KK3Byb3By aWV0YXJ5IHByb2dyYW1zLiAgSWYgeW91ciBwcm9ncmFtIGlzIGEgc3Vicm91dGluZSBsaWJyYXJ5 LCB5b3UgbWF5Citjb25zaWRlciBpdCBtb3JlIHVzZWZ1bCB0byBwZXJtaXQgbGlua2luZyBwcm9w cmlldGFyeSBhcHBsaWNhdGlvbnMgd2l0aCB0aGUKK2xpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQg eW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExpYnJhcnkgR2VuZXJhbAorUHVibGljIExpY2Vu c2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UuCgpkaWZmIC0tZ2l0IGEvZmVkb3JhLXBhY2thZ2Vy LnNwZWMgYi9mZWRvcmEtcGFja2FnZXIuc3BlYwppbmRleCBhOTdmMTYxLi5jMmI5MjhkIDEwMDY0 NAotLS0gYS9mZWRvcmEtcGFja2FnZXIuc3BlYworKysgYi9mZWRvcmEtcGFja2FnZXIuc3BlYwpA QCAtMyw3ICszLDYgQEAgVmVyc2lvbjogICAgICAgIDAuNi4wLjcKIFJlbGVhc2U6ICAgICAgICAl YXV0b3JlbGVhc2UKIFN1bW1hcnk6ICAgICAgICBUb29scyBmb3Igc2V0dGluZyB1cCBhIGZlZG9y YSBtYWludGFpbmVyIGVudmlyb25tZW50CiAKLSMgQXV0b21hdGljYWxseSBjb252ZXJ0ZWQgZnJv bSBvbGQgZm9ybWF0OiBHUEx2MisgLSByZXZpZXcgaXMgaGlnaGx5IHJlY29tbWVuZGVkLgogTGlj ZW5zZTogICAgICAgIEdQTC0yLjAtb3ItbGF0ZXIKIFVSTDogICAgICAgICAgICBodHRwczovL3Bh Z3VyZS5pby9mZWRvcmEtcGFja2FnZXIKIAo=