X-Original-To: alpine-aports@mail.alpinelinux.org Delivered-To: alpine-aports@mail.alpinelinux.org Received: from mail.alpinelinux.org (dallas-a1.alpinelinux.org [127.0.0.1]) by mail.alpinelinux.org (Postfix) with ESMTP id 3D8ADDC05D0 for ; Mon, 30 Nov 2015 18:14:34 +0000 (UTC) Received: from lithium.8pit.net (lithium.8pit.net [81.4.121.103]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id 15E4CDC00C5; Mon, 30 Nov 2015 18:14:32 +0000 (UTC) Received: from localhost (ip5f5acac8.dynamic.kabel-deutschland.de [95.90.202.200]) by lithium.8pit.net (OpenSMTPD) with ESMTPSA id 2479eb28 TLS version=TLSv1/SSLv3 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO; Mon, 30 Nov 2015 19:14:27 +0100 (CET) From: =?UTF-8?q?S=C3=B6ren=20Tempel?= To: alpine-aports@lists.alpinelinux.org Subject: [alpine-aports] [PATCH] testing/nvi: new aport Date: Mon, 30 Nov 2015 19:14:21 +0100 Message-Id: <1448907262-10629-1-git-send-email-soeren+git@soeren-tempel.net> X-Mailer: git-send-email 2.6.3 X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Virus-Scanned: ClamAV using ClamSMTP SW5jbHVkaW5nIGEgc3Vic2V0IG9mIHRoZSBkZWJpYW4gcGF0Y2hzZXQuDQotLS0NCiB0ZXN0aW5n L252aS8wMWFkZGl0aW9uYWxfdXBzdHJlYW1fZGF0YS5wYXRjaCB8IDM0ODIgKysrKysrKysrKysr KysrKysrKysrKysrKysNCiB0ZXN0aW5nL252aS8wM2RiNC5wYXRjaCAgICAgICAgICAgICAgICAg ICAgICB8ICAgMjUgKw0KIHRlc3RpbmcvbnZpLzA0Y29uZmRlZnMucGF0Y2ggICAgICAgICAgICAg ICAgIHwgICAxMCArDQogdGVzdGluZy9udmkvMDZkZWZhdWx0X3ZhbHVlX2VzY2FwZXRpbWUucGF0 Y2ggfCAgIDE1ICsNCiB0ZXN0aW5nL252aS8wN2ZsdXNoX2NhY2hlLnBhdGNoICAgICAgICAgICAg ICB8ICAgNDYgKw0KIHRlc3RpbmcvbnZpLzA4bGZzLnBhdGNoICAgICAgICAgICAgICAgICAgICAg IHwgICAyNSArDQogdGVzdGluZy9udmkvMDhzYWZlX3ByaW50Zi5wYXRjaCAgICAgICAgICAgICAg fCAgIDE1ICsNCiB0ZXN0aW5nL252aS8wOHRlbXBmaWxlX3VtYXNrLnBhdGNoICAgICAgICAgICB8 ICAgMjggKw0KIHRlc3RpbmcvbnZpLzA5Y2FzdGluZy5wYXRjaCAgICAgICAgICAgICAgICAgIHwg ICAyNCArDQogdGVzdGluZy9udmkvMTBub19vbmVfbGluZV92aXN1YWwucGF0Y2ggICAgICAgfCAg IDIxICsNCiB0ZXN0aW5nL252aS8xMWJhY2t3YXJkX3NlbnRlbmNlX21vdmluZy5wYXRjaCB8ICAg MTUgKw0KIHRlc3RpbmcvbnZpLzEyaG9yaXpfc2Nyb2xsX2NvdW50LnBhdGNoICAgICAgIHwgICAx NSArDQogdGVzdGluZy9udmkvMTN3aWRlY2hhcl9ob3Jyb3JzLnBhdGNoICAgICAgICAgfCAgIDY0 ICsNCiB0ZXN0aW5nL252aS8xNHByaXZhdGVfcmVnZXhfZml4ZXMucGF0Y2ggICAgICB8ICAgMjgg Kw0KIHRlc3RpbmcvbnZpLzE1c2VhcmNoX3dvcmQucGF0Y2ggICAgICAgICAgICAgIHwgICAyNiAr DQogdGVzdGluZy9udmkvMTZtYW5wYWdlX2Vycm9ycy5wYXRjaCAgICAgICAgICAgfCAgNzY3ICsr KysrKw0KIHRlc3RpbmcvbnZpLzE3dHV0b3JpYWxfdHlwb3MucGF0Y2ggICAgICAgICAgIHwgICA2 MCArDQogdGVzdGluZy9udmkvMThkYnBhZ2VzaXplX2JpbnBvd2VyLnBhdGNoICAgICAgfCAgIDIy ICsNCiB0ZXN0aW5nL252aS8xOWluY2x1ZGVfdGVybV9oLnBhdGNoICAgICAgICAgICB8ICAgMjUg Kw0KIHRlc3RpbmcvbnZpLzIxZXhyY193cml0YWJpbGl0eV9jaGVjay5wYXRjaCAgIHwgICA1OCAr DQogdGVzdGluZy9udmkvMjRmYWxsYmFja190b19kdW1iX3Rlcm0ucGF0Y2ggICAgfCAgIDI2ICsN CiB0ZXN0aW5nL252aS8yNW1hbnBhZ2Vfbm90ZV9kcm9wcGVkX0YucGF0Y2ggICB8ICAgNTUgKw0K IHRlc3RpbmcvbnZpLzI2dHJhaWxpbmdfdGFiX3NlZ3YucGF0Y2ggICAgICAgIHwgICAxNSArDQog dGVzdGluZy9udmkvMjdzdXBwb3J0X0NfbG9jYWxlLnBhdGNoICAgICAgICAgfCAgIDI3ICsNCiB0 ZXN0aW5nL252aS8yOWZpbGVfYmFja3VwLnBhdGNoICAgICAgICAgICAgICB8ICAgMzIgKw0KIHRl c3RpbmcvbnZpL0FQS0JVSUxEICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE3MSArKw0KIDI2 IGZpbGVzIGNoYW5nZWQsIDUwOTcgaW5zZXJ0aW9ucygrKQ0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0aW5nL252aS8wMWFkZGl0aW9uYWxfdXBzdHJlYW1fZGF0YS5wYXRjaA0KIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0aW5nL252aS8wM2RiNC5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0 aW5nL252aS8wNGNvbmZkZWZzLnBhdGNoDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvbnZp LzA2ZGVmYXVsdF92YWx1ZV9lc2NhcGV0aW1lLnBhdGNoDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRl c3RpbmcvbnZpLzA3Zmx1c2hfY2FjaGUucGF0Y2gNCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdGlu Zy9udmkvMDhsZnMucGF0Y2gNCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdGluZy9udmkvMDhzYWZl X3ByaW50Zi5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL252aS8wOHRlbXBmaWxl X3VtYXNrLnBhdGNoDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvbnZpLzA5Y2FzdGluZy5w YXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL252aS8xMG5vX29uZV9saW5lX3Zpc3Vh bC5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL252aS8xMWJhY2t3YXJkX3NlbnRl bmNlX21vdmluZy5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL252aS8xMmhvcml6 X3Njcm9sbF9jb3VudC5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL252aS8xM3dp ZGVjaGFyX2hvcnJvcnMucGF0Y2gNCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdGluZy9udmkvMTRw cml2YXRlX3JlZ2V4X2ZpeGVzLnBhdGNoDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvbnZp LzE1c2VhcmNoX3dvcmQucGF0Y2gNCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGVzdGluZy9udmkvMTZt YW5wYWdlX2Vycm9ycy5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL252aS8xN3R1 dG9yaWFsX3R5cG9zLnBhdGNoDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvbnZpLzE4ZGJw YWdlc2l6ZV9iaW5wb3dlci5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5nL252aS8x OWluY2x1ZGVfdGVybV9oLnBhdGNoDQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3RpbmcvbnZpLzIx ZXhyY193cml0YWJpbGl0eV9jaGVjay5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0aW5n L252aS8yNGZhbGxiYWNrX3RvX2R1bWJfdGVybS5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0 ZXN0aW5nL252aS8yNW1hbnBhZ2Vfbm90ZV9kcm9wcGVkX0YucGF0Y2gNCiBjcmVhdGUgbW9kZSAx MDA2NDQgdGVzdGluZy9udmkvMjZ0cmFpbGluZ190YWJfc2Vndi5wYXRjaA0KIGNyZWF0ZSBtb2Rl IDEwMDY0NCB0ZXN0aW5nL252aS8yN3N1cHBvcnRfQ19sb2NhbGUucGF0Y2gNCiBjcmVhdGUgbW9k ZSAxMDA2NDQgdGVzdGluZy9udmkvMjlmaWxlX2JhY2t1cC5wYXRjaA0KIGNyZWF0ZSBtb2RlIDEw MDY0NCB0ZXN0aW5nL252aS9BUEtCVUlMRA0KDQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9udmkvMDFh ZGRpdGlvbmFsX3Vwc3RyZWFtX2RhdGEucGF0Y2ggYi90ZXN0aW5nL252aS8wMWFkZGl0aW9uYWxf dXBzdHJlYW1fZGF0YS5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAu LjI1MTdiYmINCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvbnZpLzAxYWRkaXRpb25hbF91 cHN0cmVhbV9kYXRhLnBhdGNoDQpAQCAtMCwwICsxLDM0ODIgQEANCitGcm9tOiA8aGVzc29AcG9v bC5tYXRoLnR1LWJlcmxpbi5kZT4NCitTdWJqZWN0OiBBIGZldyBkb2N1bWVudGF0aW9uIGZpbGVz IGNoZXJyeS1waWNrZWQgZnJvbSB0aGUgbGFzdCBzdGFibGUNCisgcmVsZWFzZSB0YXJiYWxsLCBi ZWNhdXNlIHRoZXkgYXJlIG1pc3NpbmcgaW4gbGF0ZXIgZGV2ZWxvcG1lbnQNCisgYnJhbmNoIHJl bGVhc2VzLg0KKw0KK2RpZmYgLU5hdXIgbnZpLTEuODEuNi5vcmlnL252aS0xLjc5L0ZBUSBudmkt MS44MS42L252aS0xLjc5L0ZBUQ0KKy0tLSBudmktMS44MS42Lm9yaWcvbnZpLTEuNzkvRkFRCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwDQorKysrIG52aS0xLjgxLjYvbnZpLTEu NzkvRkFRCTE5OTYtMTAtMTQgMTU6NTI6NDYuMDAwMDAwMDAwICswMjAwDQorQEAgLTAsMCArMSwx NjAgQEANCisrQCgjKUZBUQk4LjEzIChCZXJrZWxleSkgMTAvMTQvOTYNCisrDQorK1E6IEhvdyBj YW4gSSBnZXQgdmkgdG8gZGlzcGxheSBteSBjaGFyYWN0ZXIgc2V0Pw0KKytBOiBWaSB1c2VzIHRo ZSBDIGxpYnJhcnkgcm91dGluZSBpc3ByaW50KDMpIHRvIGRldGVybWluZSBpZiBhIGNoYXJhY3Rl cg0KKysgICBpcyBwcmludGFibGUsIG9yIHNob3VsZCBiZSBkaXNwbGF5ZWQgYXMgYW4gb2N0YWwg b3IgaGV4YWRlY2ltYWwgdmFsdWUNCisrICAgb24gdGhlIHNjcmVlbi4gIEdlbmVyYWxseSwgaWYg dmkgaXMgZGlzcGxheWluZyBwcmludGFibGUgY2hhcmFjdGVycw0KKysgICBpbiBvY3RhbC9oZXhh ZGVjaW1hbCBmb3JtcywgeW91ciBlbnZpcm9ubWVudCBpcyBub3QgY29uZmlndXJlZCBjb3JyZWN0 bHkuDQorKyAgIFRyeSBsb29raW5nIGF0IHRoZSBtYW4gcGFnZXMgdGhhdCBhbGxvdyB5b3UgdG8g Y29uZmlndXJlIHlvdXIgbG9jYWxlLg0KKysgICBGb3IgZXhhbXBsZSwgdG8gY29uZmlndXJlIGFu IElTTyA4ODU5LTEgbG9jYWxlIHVuZGVyIFNvbGFyaXMgdXNpbmcgY3NoLA0KKysgICB5b3Ugd291 bGQgZG86DQorKw0KKysJc2V0ZW52IExBTkcgQw0KKysJc2V0ZW52IExDX0NUWVBFIGlzb184ODU5 XzENCisrDQorKyAgIE90aGVyIExDX0NUWVBFIHN5c3RlbXMvdmFsdWVzIHRoYXQgSSdtIHRvbGQg d29yazoNCisrDQorKyAgIFN5c3RlbQlWYWx1ZQ0KKysgICA9PT09PT0JPT09PT0NCisrICAgRnJl ZUJTRAlsdF9MTi5JU09fODg1OS0xDQorKyAgIEhQLVVYICA5LlgJYW1lcmljYW4uaXNvODg1OTEN CisrICAgSFAtVVggMTAuWAllbl9VUy5pc284ODU5MQ0KKysgICBTdW5PUyAgNC5YCWlzb184ODU5 XzENCisrICAgU3VuT1MgIDUuWAlpc29fODg1OV8xDQorKw0KKysgICBJZiB0aGVyZSdzIG5vIG90 aGVyIHNvbHV0aW9uLCB5b3UgY2FuIHVzZSB0aGUgcHJpbnQgYW5kIG5vcHJpbnQgZWRpdA0KKysg ICBvcHRpb25zIG9mIHZpIHRvIHNwZWNpZnkgdGhhdCBhIHNwZWNpZmljIGNoYXJhY3RlciBpcyBw cmludGFibGUgb3Igbm90DQorKyAgIHByaW50YWJsZS4NCisrCQ0KKytROiBNeSBtYXAgd29uJ3Qg d29yayENCisrQTogT25lIHRoaW5nIHRoYXQgeW91IHNob3VsZCBpbW1lZGlhdGVseSBjaGVjayBp ZiBhIHZpIG1hcCBkb2Vzbid0IHdvcmsNCisrICAgaXMgaWYgZGVwZW5kcyBvbiB0aGUgZmluYWwg Y3Vyc29yIHBvc2l0aW9uIGFmdGVyIGEgUCBvciBwIGNvbW1hbmQuDQorKyAgIEhpc3RvcmljIHZp J3Mgd2VyZSBpbmNvbnNpc3RlbnQgYXMgdG8gdGhlIGZpbmFsIHBvc2l0aW9uIG9mIHRoZSBjdXJz b3IsDQorKyAgIGFuZCwgdG8gbWFrZSBtYXR0ZXIgd29yc2UsIHRoZSBmaW5hbCBjdXJzb3IgcG9z aXRpb24gYWxzbyBkZXBlbmRlZCBvbg0KKysgICB3aGV0aGVyIHRoZSBwdXQgdGV4dCBjYW1lIGZy b20gYSBuYW1lZCBvciB1bm5hbWVkIGJ1ZmZlciEgIFZpIGZvbGxvd3MNCisrICAgdGhlIFBPU0lY IDEwMDMuMiBzdGFuZGFyZCBvbiB0aGlzIG9uZSwgYW5kIG1ha2VzIHRoaXMgY29uc2lzdGVudCwg YWx3YXlzDQorKyAgIHBsYWNpbmcgdGhlIGN1cnNvciBvbiB0aGUgZmlyc3QgY2hhcmFjdGVyLg0K KysNCisrUTogSSdtIHVzaW5nIGtzaCBvciBjc2ggYXMgbXkgdmkgZWRpdCBvcHRpb24gc2hlbGwg dmFsdWUsIGFuZCBmaWxlDQorKyAgIGV4cGFuc2lvbnMgZG9uJ3Qgd29yayByaWdodCENCisrQTog VGhlIHByb2JsZW0gbWF5IGJlIGluIHlvdXIga3NoIG9yIGNzaCBzdGFydHVwIGZpbGVzLCBlLmcu LCAuY3NocmMuICBWaQ0KKysgICBleGVjdXRlcyB0aGUgc2hlbGwgdG8gZG8gbmFtZSBleHBhbnNp b24sIGFuZCB0aGUgc2hlbGwgZ2VuZXJhbGx5IHJlYWRzDQorKyAgIGl0cyBzdGFydHVwIGZpbGVz LiAgSWYgdGhlIHN0YXJ0dXAgZmlsZXMgYXJlIG5vdCBjb3JyZWN0bHkgY29uZmlndXJlZA0KKysg ICBmb3Igbm9uLWludGVyYWN0aXZlIHVzZSwgZS5nLiwgdGhleSBhbHdheXMgZWNobyBhIHByb21w dCB0byB0aGUgc2NyZWVuLA0KKysgICB2aSB3aWxsIGJlIHVuYWJsZSB0byBwYXJzZSB0aGUgb3V0 cHV0IGFuZCB0aGluZ3Mgd2lsbCBub3Qgd29yaw0KKysgICBjb3JyZWN0bHkuDQorKw0KKytROiBI b3cgZG9lcyB0aGUgaWNsb3dlciBlZGl0IG9wdGlvbiBkaWZmZXIgZnJvbSB0aGUgaWdub3JlY2Fz ZSAoaS5lLiBpYykNCisrICAgZWRpdCBvcHRpb24/DQorK0E6IFRoZSBkaWZmZXJlbmNlIGlzIHRo YXQgdGhlIGlnbm9yZWNhc2UgZWRpdCBvcHRpb24gYWx3YXlzIGlnbm9yZXMgdGhlDQorKyAgIGNh c2Ugb2YgbGV0dGVycyBpbiB0aGUgUmVndWxhciBFeHByZXNzaW9uIChSRSksIGFuZCB0aGUgaWNs b3dlciBlZGl0DQorKyAgIG9wdGlvbiBvbmx5IGlnbm9yZXMgdGhlIGNhc2UgaWYgdGhlcmUgYXJl IG5vIHVwcGVyLWNhc2UgbGV0dGVycyBpbiB0aGUNCisrICAgUkUuICBJZiBhbnkgdXBwZXItY2Fz ZSBsZXR0ZXJzIGFwcGVhciBpbiB0aGUgUmVndWxhciBFeHByZXNzaW9uLCB0aGVuDQorKyAgIGl0 IHdpbGwgYmUgdHJlYXRlZCBjYXNlLXNlbnNpdGl2ZWx5LCBhcyBpZiB0aGUgaWdub3JlY2FzZSBl ZGl0IG9wdGlvbg0KKysgICB3YXMgbm90IHNldC4NCisrDQorK1E6IFdoZW4gSSBlZGl0IGJpbmFy eSBmaWxlcywgdmkgYXBwZW5kcyBhIDxuZXdsaW5lPiB0byB0aGUgbGFzdCBsaW5lIQ0KKytBOiBU aGlzIGlzIGhpc3RvcmljIHByYWN0aWNlIGZvciB2aSwgYW5kIGZ1cnRoZXIsIGl0J3MgcmVxdWly ZWQgYnkgdGhlDQorKyAgIFBPU0lYIDEwMDMuMiBzdGFuZGFyZC4gIE15IGludGVudCBpcyB0byBw cm92aWRlIGEgY29tbWFuZCBsaW5lIGFuZC9vcg0KKysgICBlZGl0IG9wdGlvbiB0byB0dXJuIHRo aXMgYmVoYXZpb3Igb2ZmIHdoZW4gSSBzd2l0Y2ggdG8gdmVyc2lvbiAyLjAgb2YNCisrICAgdGhl IEJlcmtlbGV5IERCIHBhY2thZ2UuDQorKw0KKytROiBNeSBjdXJzb3Iga2V5cyBkb24ndCB3b3Jr IHdoZW4gSSdtIGluIHRleHQgaW5wdXQgbW9kZSENCisrQTogQSBjb21tb24gcHJvYmxlbSBvdmVy IHNsb3cgbGlua3MgaXMgdGhhdCB0aGUgc2V0IG9mIGNoYXJhY3RlcnMgc2VudCBieQ0KKysgICB0 aGUgY3Vyc29yIGtleXMgZG9uJ3QgYXJyaXZlIGNsb3NlIGVub3VnaCB0b2dldGhlciBmb3Igdmkg dG8gdW5kZXJzdGFuZA0KKysgICB0aGF0IHRoZXkgYXJlIGEgc2luZ2xlIGtleXN0cm9rZSwgYW5k IG5vdCBzZXBhcmF0ZSBrZXlzdHJva2VzLiAgVHJ5DQorKyAgIGluY3JlYXNpbmcgdGhlIHZhbHVl IG9mIHRoZSBlc2NhcGV0aW1lIGVkaXQgb3B0aW9uLCB3aGljaCB3aWxsIGNhdXNlDQorKyAgIHZp IHRvIHdhaXQgbG9uZ2VyIGJlZm9yZSBkZWNpZGluZyB0aGF0IHRoZSA8ZXNjYXBlPiBjaGFyYWN0 ZXIgdGhhdA0KKysgICBzdGFydHMgY3Vyc29yIGtleSBzZXF1ZW5jZXMgZG9lc24ndCBoYXZlIGFu eSBjaGFyYWN0ZXJzIGZvbGxvd2luZyBpdC4NCisrDQorK1E6IFdoZW4gSSBlZGl0IHNvbWUgZmls ZXMsIHZpIHNlZW1zIHRvIGhhbmcgZm9yZXZlciwgYW5kIEkgaGF2ZSB0byBraWxsIGl0Lg0KKytB OiBWaSB1c2VzIGZsb2NrKDIpIGFuZCBmY250bCgyKSB0byBkbyBmaWxlIGxvY2tpbmcuICBXaGVu IGl0IGF0dGVtcHRzIHRvDQorKyAgIGFjcXVpcmVkIGEgbG9jayBmb3IgYSBmaWxlIG9uIGFuIE5G UyBtb3VudGVkIGZpbGVzeXN0ZW0sIGl0IGNhbiBoYW5nDQorKyAgIGZvciBhIHZlcnkgbG9uZyAo cGVyaGFwcyBpbmZpbml0ZSkgcGVyaW9kIG9mIHRpbWUuICBUdXJuaW5nIG9mZiB0aGUNCisrICAg ImxvY2siIGVkaXQgb3B0aW9uIHdpbGwga2VlcCB2aSBmcm9tIGF0dGVtcHRpbmcgdG8gYWNxdWly ZSBhbnkgbG9ja3MNCisrICAgb24gdGhlIGZpbGVzIHlvdSBlZGl0Lg0KKysNCisrUTogV2hlbiBJ IGNvbXBpbGUgdmkgSSBnZXQgbG90cyBvZiB3YXJuaW5ncyBhYm91dCBwb2ludGVyIGFzc2lnbm1l bnRzDQorKyAgIGJlaW5nIGluY29tcGF0aWJsZSENCisrQTogVmkgaXMgcGFydGlhbGx5IHdyaXR0 ZW4gdG8gc3VwcG9ydCB3aWRlIGNoYXJhY3RlcnMuICBXaGVuIHRoaXMgY29kZQ0KKysgICBpbnRl cmZhY2VzIHdpdGggdGhlIGNvZGUgdGhhdCBkb2Vzbid0IHlldCBzdXBwb3J0IHdpZGUgY2hhcmFj dGVycywNCisrICAgdGhlIHBvaW50ZXIgdHlwZXMgY2xhc2guICBUaGlzIHdpbGwgaG9wZWZ1bGx5 IGJlIGZpeGVkIGluIHRoZSBuZWFyDQorKyAgIGZ1dHVyZSwgYnV0IEkndmUgYmVlbiBzYXlpbmcg dGhhdCBmb3IgYXdoaWxlLCBub3cuDQorKw0KKytROiBJIGdldCBqdW1weSBzY3JvbGxpbmcgYmVo YXZpb3IgaW4gdGhlIHNjcmVlbiENCisrQTogVGhpcyBpcyBhbG1vc3QgY2VydGFpbmx5IGEgcHJv YmxlbSB3aXRoIHRoZSBzeXN0ZW0ncyB0ZXJtaW5mbyBvcg0KKysgICB0ZXJtY2FwIGluZm9ybWF0 aW9uIGZvciB5b3VyIHRlcm1pbmFsLiAgSWYgdGhlIHRlcm1pbmZvL3Rlcm1jYXAgZW50cnkNCisr ICAgZG9lc24ndCBoYXZlIHRoZSBzZXR0YWJsZSBzY3JvbGxpbmcgcmVnaW9uIGNhcGFiaWxpdGll cywgb3IgdGhlIG1vcmUNCisrICAgcG93ZXJmdWwgc2Nyb2xsaW5nIGNvbW1hbmRzLCB0aGVzZSBi ZWhhdmlvcnMgY2FuIHJlc3VsdC4gIEhpc3RvcmljDQorKyAgIGltcGxlbWVudGF0aW9ucyBvZiB2 aSwgYW5kIHNvbWUgb2YgdGhlIHZpIGNsb25lcywgZG9uJ3Qgc3VmZmVyIGZyb20NCisrICAgdGhp cyBwcm9ibGVtIGJlY2F1c2UgdGhleSB3cm90ZSB0aGVpciBvd24gc2NyZWVuIHN1cHBvcnQgaW5z dGVhZCBvZg0KKysgICB1c2luZyB0aGUgY3Vyc2VzIGxpYnJhcnkuDQorKw0KKysgICBUaGUgc29s dXRpb24gaXMgdG8gZmluZCBhIGdvb2QgdGVybWluZm8gb3IgdGVybWNhcCBlbnRyeSBmb3IgeW91 cg0KKysgICB0ZXJtaW5hbCwgd2hpY2ggd2lsbCBmaXggdGhlIHByb2JsZW0gZm9yIGFsbCBvZiB0 aGUgYXBwbGljYXRpb25zIG9uDQorKyAgIHlvdXIgc3lzdGVtLCBub3QganVzdCB2aS4gIEVyaWMg UmF5bW9uZCBtYWludGFpbnMgdGhlIGZyZWVseQ0KKysgICByZWRpc3RyaWJ1dGFibGUgdGVybWNh cC90ZXJtaW5mbyBlbnRyaWVzLiAgVGhleSBjYW4gYmUgZG93bmxvYWRlZA0KKysgICBmcm9tIGh0 dHA6Ly93d3cuY2NpbC5vcmcvfmVzci9uY3Vyc2VzLmh0bWwsIG9yIHlvdSBjYW4gY29udGFjdCBo aW0NCisrICAgYXQgZXNyQHNuYXJrLnRoeXJzdXMuY29tLg0KKysNCisrUTogVGhlIGVudGlyZSBz Y3JlZW4gcmVwYWludHMgb24gZXZlcnkga2V5c3Ryb2tlIQ0KKytBOiBZb3VyIHN5c3RlbSdzIGN1 cnNlcyBpbXBsZW1lbnRhdGlvbiBpcyBicm9rZW4uICBZb3Ugc2hvdWxkIHVzZSB0aGUNCisrICAg Y3Vyc2VzIGltcGxlbWVudGF0aW9uIHByb3ZpZGVkIHdpdGggdmkgb3IgYSBjdXJzZXMgcmVwbGFj ZW1lbnQgc3VjaA0KKysgICBhcyBuY3Vyc2VzLiAgRXJpYyBSYXltb25kIGlzIG9uZSBvZiB0aGUg bWFpbnRhaW5lcnMgb2YgdGhlIGZyZWVseQ0KKysgICByZWRpc3RyaWJ1dGFibGUgbmN1cnNlcyBw YWNrYWdlLiAgWW91IGNhbiBkb3dubG9hZCBuY3Vyc2VzIGZyb20NCisrICAgaHR0cDovL3d3dy5j Y2lsLm9yZy9+ZXNyL25jdXJzZXMuaHRtbCwgb3IgeW91IGNhbiBjb250YWN0IGhpbSBhdA0KKysg ICBlc3JAc25hcmsudGh5cnN1cy5jb20uDQorKw0KKytROiBXaGVuIEkgdXNlIHZpIG9uIGEgU3Vu IGNvbnNvbGUgKHRlcm1pbmFsIHR5cGUgc3VuLTM0KSB0aGUgc2NyZWVuDQorKyAgIGlzIG9jY2Fz aW9uYWxseSB0cmFzaGVkLCB1c3VhbGx5IHdoZW4gZXhpdGluZyB2aSENCisrQTogVGhlIFN1biBj b25zb2xlIGNhbid0IGhhbmRsZSB0aGUgJ2FsJyBjYXBhYmlsaXR5IG9mIHRoZSB0ZXJtY2FwDQor KyAgIGVudHJ5ICh0aGUgaWwxIGNhcGFiaWxpdHkgb2YgdGVybWluZm8gZW50cmllcykuICBJZiB5 b3UgZGVsZXRlIHRoYXQNCisrICAgZW50cnkgZnJvbSB5b3VyIHRlcm1pbmZvL3Rlcm1jYXAgaW5m b3JtYXRpb24gZXZlcnl0aGluZyBzaG91bGQgd29yaw0KKysgICBjb3JyZWN0bHkuDQorKw0KKytR OiBJIGRvbid0IGhhdmUgYSB2ZXJzaW9uIG9mIGN0YWdzIChvciBJIGhhdmUgY3RhZ3MsIGJ1dCBp dCBkb2Vzbid0IHRhZw0KKysgICBuZWFybHkgZW5vdWdoIHRoaW5ncykhDQorK0E6IFRoZXJlJ3Mg YSB2ZXJzaW9uIG9mIGN0YWdzIGF2YWlsYWJsZSBvbiB0aGUgNC40QlNELUxpdGUgZGlzdHJpYnV0 aW9ucywNCisrICAgYXMgd2VsbCBhcyB0aGUgRnJlZUJTRCwgTmV0QlNELCBMaW51eCBhbmQgR05V IGRpc3RyaWJ1dGlvbnMuICBPciwgeW91DQorKyAgIG1pZ2h0IHdhbnQgdG8gdHJ5IEV4dWJlcmFu dCBDdGFnczoNCisrDQorKwlUaXRsZToJCUV4dWJlcmFudCBDdGFncw0KKysJVmVyc2lvbjoJMS4z DQorKwlFbnRlcmVkLWRhdGU6CTE2SlVOOTYNCisrCURlc2NyaXB0aW9uOg0KKysJICAgIEEgYmV0 dGVyIGN0YWdzIHdoaWNoIGdlbmVyYXRlcyB0YWdzIGZvciBhbGwgcG9zc2libGUgdGFnIHR5cGVz Og0KKysJICAgIG1hY3JvIGRlZmluaXRpb25zLCBlbnVtZXJhdGVkIHZhbHVlcyAodmFsdWVzIGlu c2lkZSBlbnVtey4uLn0pLA0KKysJICAgIGZ1bmN0aW9uIGFuZCBtZXRob2QgZGVmaW5pdGlvbnMs IGVudW0vc3RydWN0L3VuaW9uIHRhZ3MsIGV4dGVybmFsDQorKwkgICAgZnVuY3Rpb24gcHJvdG90 eXBlcyAob3B0aW9uYWwpLCB0eXBlZGVmcywgYW5kIHZhcmlhYmxlDQorKwkgICAgZGVjbGFyYXRp b25zLiBJdCBpcyBmYXIgbGVzcyBlYXNpbHkgZm9vbGVkIGJ5IGNvZGUgY29udGFpbmluZyAjaWYN CisrCSAgICBwcmVwcm9jZXNzb3IgY29uZGl0aW9uYWwgY29uc3RydWN0cywgdXNpbmcgYSBjb25k aXRpb25hbCBwYXRoDQorKwkgICAgc2VsZWN0aW9uIGFsZ29yaXRobSB0byByZXNvbHZlIGNvbXBs aWNhdGVkIGNob2ljZXMsIGFuZCBhDQorKwkgICAgZmFsbC1iYWNrIGFsZ29yaXRobSB3aGVuIHRo aXMgb25lIGZhaWxzLiBDYW4gYWxzbyBiZSB1c2VkIHRvIHByaW50DQorKwkgICAgb3V0IGEgbGlz dCBvZiBzZWxlY3RlZCBvYmplY3RzIGZvdW5kIGluIHNvdXJjZSBmaWxlcy4NCisrCUtleXdvcmRz OgljdGFncywgdGFncywgZXh1YmVyYW50DQorKwlBdXRob3I6CQlkYXJyZW5Ac2lyc2kuY29tIChE YXJyZW4gSGllYmVydCkNCisrCQkJZGFycmVuQGhpd2FheS5uZXQgKERhcnJlbiBIaWViZXJ0KQ0K KysJTWFpbnRhaW5lZC1ieToJZGFycmVuQHNpcnNpLmNvbSAoRGFycmVuIEhpZWJlcnQpDQorKwkJ CWRhcnJlbkBoaXdhYXkubmV0IChEYXJyZW4gSGllYmVydCkNCisrCVByaW1hcnktc2l0ZToJc3Vu c2l0ZS51bmMuZWR1IC9wdWIvTGludXgvZGV2ZWwvbGFuZy9jDQorKwkJCTI3a0IgY3RhZ3MtMS4z LnRhci5neg0KKysJQWx0ZXJuYXRlLXNpdGU6CWZ0cC5oYWxjeW9uLmNvbSAvbG9jYWwvZ3ZyDQor KwkJCTI3a0IgY3RhZ3MtMS4zLnRhci5neg0KKysJT3JpZ2luYWwtc2l0ZToNCisrCVBsYXRmb3Jt czoJVU5JWCwgTVNET1MsIFdpbmRvd3NOVCwgV2luZG93czk1LCBPUy8yLCBBbWlnYQ0KKysJQ29w eWluZy1wb2xpY3k6CVB1YmxpYyBkb21haW4NCisrDQorK1E6IFdoZW4gSSB1cGRhdGUgYSBmaWxl IEkgYWxyZWFkeSBoYXZlIG9wZW4sIGFuZCB1c2UgOmUgdG8gcmVyZWFkIGl0LCBJDQorKyAgIGdl dCBudWwncyBmb3IgdGhlIHJlc3Qgb2YgdGhlIGZpbGUhDQorK0E6IFlvdXIgc3lzdGVtJ3MgaW1w bGVtZW50YXRpb24gb2YgbW1hcCgyKSBoYXMgYSBidWc7IHlvdSB3aWxsIGhhdmUgdG8NCisrICAg ZXhpdCB2aSBhbmQgcmUtZXhlY3V0ZSBpdC4NCisrDQorK1E6IFdoZXJlIGNhbiBJIGdldCBjc2Nv cGU/DQorK0E6IENzY29wZSBpcyBhdmFpbGFibGUgb24gVU5JWFdhcmUgU3lzdGVtIFYgUmVsZWFz ZSA0LjAgdmFyaWFudHMgc3VjaCBhcw0KKysgICBTdW4gU29sYXJpcyAyLnggKC9vcHQvU1VOV3Nw cm8vYmluKSBhbmQgVU5JWFdhcmUgU3lzdGVtIFYgUmVsZWFzZSA0LjEuDQorKw0KKysgICBZb3Ug Y2FuIGJ1eSB2ZXJzaW9uIDEzLjMgc291cmNlIHdpdGggYW4gdW5yZXN0cmljdGVkIGxpY2Vuc2Ug Zm9yICQ0MDANCisrICAgZnJvbSBBVCZUIFNvZnR3YXJlIFNvbHV0aW9ucyBieSBjYWxsaW5nICsx LTgwMC00NjItODE0Ni4gIEJpbmFyeQ0KKysgICByZWRpc3RyaWJ1dGlvbiBvZiBjc2NvcGUgaXMg YW4gYWRkaXRpb25hbCAkMTUwMCwgb25lLXRpbWUgZmxhdCBmZWUuDQorKw0KKysgICBGb3IgbW9y ZSBpbmZvcm1hdGlvbiwgc2VlIGh0dHA6Ly93d3cudW5pcHJlc3MuY29tL2F0dC9uZXcvY3Njb3Bl Lmh0bWwuDQorZGlmZiAtTmF1ciBudmktMS44MS42Lm9yaWcvZG9jcy9jaGFuZ2Vsb2cgbnZpLTEu ODEuNi9kb2NzL2NoYW5nZWxvZw0KKy0tLSBudmktMS44MS42Lm9yaWcvbnZpLTEuNzkvZG9jcy9j aGFuZ2Vsb2cJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDANCisrKysgbnZpLTEu ODEuNi9udmktMS43OS9kb2NzL2NoYW5nZWxvZwkxOTk2LTEwLTIzIDE1OjM5OjA4LjAwMDAwMDAw MCArMDIwMA0KK0BAIC0wLDAgKzEsMTEwMiBAQA0KKysxLjc4IC0+IDEuNzkgKDEwLzIzLzk2KQ0K KysJKyBSZW5hbWUgZGVsZXRlKCkgdG8gZGVsKCksIGZvciBDKysuDQorKwkrIEFkZCBTcGFuaXNo IHRvIHRoZSBsaXN0IG9mIHRyYW5zbGF0aW9ucy4NCisrCSsgVXBkYXRlIHRvIFBlcmwgNS4wMDNf MDYsIGFuZCBvdGhlciBQZXJsIGludGVycHJldGVyIHVwZGF0ZXMuDQorKwkrIFVwZGF0ZSB0aGUg c2V0LWVkaXQtb3B0aW9uIGludGVyZmFjZSBmb3IgdGhlIHNjcmlwdGluZyBsYW5ndWFnZXMuDQor KwkrIFJld29yayBleCBjb21tYW5kIHBhcnNpbmcgdG8gbWF0Y2ggaGlzdG9yaWMgcHJhY3RpY2Ug Zm9yIGJhY2tzbGFzaA0KKysJICBlc2NhcGVkIDxuZXdsaW5lPiBjaGFyYWN0ZXJzIGluc2lkZSBv ZiBnbG9iYWwgY29tbWFuZHMuDQorKwkrIEVuaGFuY2UgdGhlIGNvbW1lbnQgZWRpdCBvcHRpb24g dG8gc2tpcCBDKysgY29tbWVudHMuDQorKwkrIENoYW5nZSBpbnN0YWxsYXRpb24gdG8gY29uZmln dXJlIHRoZSByZWNvdmVyeSBzaGVsbCBzY3JpcHQgdG8gbWF0Y2gNCisrCSAgdGhlIHN5c3RlbSBw YXRobmFtZXMgYW5kIHRvIGluc3RhbGwgaXQgaW50byB0aGUgdmkgZGF0YSBkaXJlY3RvcnkuDQor KwkgIE1vdmUgdGhlIHJlY292ZXIgc2NyaXB0IGludG8gdGhlIGJ1aWxkIGRpcmVjdG9yeSwgYW5k IGRlbGV0ZSB0aGUNCisrCSAgcmVjb3ZlciBkaXJlY3RvcnkuDQorKwkrIEVuaGFuY2UgTHlueE9T IHN1cHBvcnQuDQorKzEuNzYgLT4gMS43OCAoMTAvMDEvOTYpDQorKwkrIEZpeCBidWdzIHdoZW4g Ym90aCB0aGUgbGVmdHJpZ2h0IHNjcm9sbGluZyBhbmQgbnVtYmVyIGVkaXQgb3B0aW9ucw0KKysJ ICB3ZXJlIG9uLg0KKysJKyBGaXggYnVnIHdoZXJlIHNwbGl0dGluZyBpbiB0aGUgbWlkZGxlIG9m IHRoZSBzY3JlZW4gY291bGQgcmVwYWludA0KKysJICBpbmNvcnJlY3RseS4NCisrCSsgRml4IGZp cnN0LW51bCBpbiBpbnB1dCBidWcsIHdoZXJlIHJhbmRvbSBnYXJiYWdlIHdhcyBpbnNlcnRlZC4N CisrCSsgQ29ycmVjdCBzZWFyY2ggYW5kIG1hcmstYXMtbW90aW9uLWNvbW1hbmQgYnVnLCBpdCdz IGEgbGluZSBtb2RlDQorKwkgIGFjdGlvbiBpZiB0aGUgc2VhcmNoIHN0YXJ0cyBhdCBvciBiZWZv cmUgdGhlIGZpcnN0IG5vbjxibGFuaz4uDQorKwkrIEZpeCBidWcgYXV0b2luZGVudCBidWcsIHdo ZXJlIF5EIGNvdWxkIHNoaWZ0IHRvbyBmYXIgaW4gdGhlIGxpbmUuDQorKwkrIEZpeCBjb3JlIGR1 bXAgd2hlcmUgISBjb21tYW5kIGNhbGxlZCBmcm9tIHRoZSAuZXhyYyBmaWxlLg0KKysJKyBBZGQg dGhlIC1TIGNvbW1hbmQtbGluZSBvcHRpb24sIHdoaWNoIGluaXRpYWxpemVzIHZpIHRvIGhhdmUg dGhlDQorKwkgIHNlY3VyZSBlZGl0IG9wdGlvbiBwcmVzZXQuDQorKzEuNzUgLT4gMS43NiAoMDkv MTUvOTYpDQorKwkrIEZpeCBidWcgd2hlcmUgXlYgZGlkbid0IGtlZXAgaW5wdXQgbWFwcGluZyBm cm9tIGhhcHBlbmluZy4NCisrCSsgRml4IGEgY29yZSBkdW1wIGJ1ZyBpbiB0aGUgUiBjb21tYW5k Lg0KKysJKyBHaXZlIHVwIG9uIGxpY2Vuc2luZzogbm8gbW9yZSBzaGFyZXdhcmUsIGFkd2FyZSwg d2hhdGV2ZXIuDQorKwkrIEZpeCBjdXJzb3IgcG9zaXRpb25pbmcgYnVnIGZvciBDLCBTIGFuZCBj JCBpbiBhbiBlbXB0eSBmaWxlLg0KKysxLjc0IC0+IDEuNzUgKDA4LzIyLzk2KQ0KKysJKyBBZGQg RnJlbmNoIHRvIHRoZSBlcnJvciBtZXNzYWdlIHRyYW5zbGF0aW9ucy4NCisrCSsgTW92ZSB0aGUg VU5MSUNFTlNFRCBtZXNzYWdlIHRvIHRoZSBlbmQgb2YgdGhlIG1lc3NhZ2UgbGluZS4NCisrCSsg Rml4IGJ1ZyB3aGVyZSB3aWRlIGNoYXJhY3RlcnMgaW4gYSBmaWxlIG5hbWUgd2VyZW4ndCBjYWxj dWxhdGVkDQorKwkgIGNvcnJlY3RseSBpbiB0aGUgc3RhdHVzIG1lc3NhZ2UuDQorKwkrIEZpeCBi dWcgd2hlcmUgY2xfcmVuYW1lIHdhcyBjYWxsZWQgZGlyZWN0bHksIGJ5IHRoZSBleCBzaGVsbCBj b2RlLg0KKysJKyBGaXggYnVnIHdoZXJlIHNwbGl0dGluZyBhIHNjcmVlbiByZXN1bHRpbmcgaW4g YSBuZXcgc2NyZWVuIGF0IHRoZQ0KKysJICB0b3Agb2YgdGhlIGRpc3BsYXkgcmVzdWx0ZWQgaW4g YmFkbHkgZGlzcGxheWVkIHN0YXR1cyBtZXNzYWdlcy4NCisrMS43MyAtPiAxLjc0ICgwOC8xOC85 NikNCisrCSsgRml4IGJ1ZyB3aGVyZSB0aGUgc3RhdHVzIGxpbmUgd2Fzbid0IHJlZGlzcGxheWVk IGlmIHRoZSB1c2VyIHJhbg0KKysJICBhbiBleCBjb21tYW5kIHRoYXQgdHJhc2hlZCB0aGUgc2Ny ZWVuLg0KKysJKyBGaXggYnVnIHdoZXJlIHRoZSBsb25nIHZlcnNpb24gb2YgdGhlIHN0YXR1cyBs aW5lIHdhc24ndCBkaXNwbGF5ZWQNCisrCSAgd2hlbiBzd2l0Y2hpbmcgc2NyZWVucy4NCisrCSsg UmV3b3JrIGZhc3QtcGF0aCBmaWxlbmFtZSBjb21wbGV0aW9uIGNvZGUgdG8gc29ydCB0aGUgZW50 cmllcywgYW5kDQorKwkgIHN0cmlwIG91dCAuIGFuZCAuLiBieSBkZWZhdWx0Lg0KKysJKyBGaXgg YnVnIHdoZXJlIGV4IHdlbnQgdG8gdGhlIGZpcnN0IGxpbmUgaW5zdGVhZCBvZiB0aGUgbGFzdCBv bmUgd2hlbg0KKysJICByZWFkaW5nIGluIGEgZmlsZS4NCisrMS43MiAtPiAxLjczICgwOC8xMi85 NikNCisrCSsgRG8gZmlsZW5hbWUgY29tcGxldGlvbiBhbmQgc29tZSBmaWxlIGV4cGFuc2lvbiBp bnRlcm5hbGx5IGZvciBzcGVlZC4NCisrCSsgRml4IENTQ09QRV9ESVJTIGVudmlyb25tZW50YWwg dmFyaWFibGUgc3VwcG9ydC4NCisrCSsgRXggcGFyc2VyIGZpeCBmb3IgZ2xvYmFsIGNvbW1hbmRz IGluIHNjcmlwdCBmaWxlcy4NCisrCSsgQWRkIHRoZSBPX1BBVEggb3B0aW9uLCBzbyB5b3UgY2Fu IHNwZWNpZnkgYSBkaXJlY3Rvcnkgc2VhcmNoIHBhdGgNCisrCSAgZm9yIGZpbGVzLg0KKysJKyBN YWtlIGl0IHBvc3NpYmxlIHRvIHNwZWNpZnkgdGhlIGRhdGFiYXNlIGZpbGUgdG8gY3Njb3BlLCBh bGxvd2luZw0KKysJICBtdWx0aXBsZSBkYXRhYmFzZXMgaW4gYSBzaW5nbGUgZGlyZWN0b3J5Lg0K KysJKyBGaXggaW5jcmVtZW50YWwgc2VhcmNoIHRvIG92ZXJ3cml0ZSBlcmFzZWQgY2hhcmFjdGVy cyBzbyB0aGUgdXNlcg0KKysJICBjYW4gdGVsbCB3aGVyZSB0aGV5IGFyZSBvbiB0aGUgY29sb24t Y29tbWFuZCBsaW5lLg0KKysJKyBGaXggaW5jcmVtZW50YWwgc2VhcmNoIHRvIHJlc3RhcnQgdGhl IHNlYXJjaCBpZiB0aGUgdXNlciBlbnRlcnMgYW4NCisrCSAgdW5lc2NhcGVkIHNoZWxsIG1ldGEg Y2hhcmFjdGVyLg0KKysxLjcxIC0+IDEuNzIgKDA3LzEyLzk2KQ0KKysJKyBDc2NvcGUgZml4OiB0 ZXN0IGZvciBmaWxlcyBuZXdlciB0aGFuIHRoZSBkYXRhYmFzZSB3YXMgcmV2ZXJzZWQuDQorKwkr IERpc3BsYXkgImZpbGVzIHRvIGVkaXQiIG1lc3NhZ2UgZm9yIHJld2luZCwgbmV4dCBhbmQgaW5p dGlhbCBzY3JlZW4uDQorKwkrIEZpeCBhIGJ1ZyBpbiB0aGUgUiBjb21tYW5kIHdoZXJlIGl0IGNv dWxkIGZhaWwgaWYgdGhlIHVzZXIgZXh0ZW5kZWQNCisrCSAgdGhlIGZpbGUuDQorKwkrIEZpeCBh IGJ1ZyB3aGVyZSB0ZXh0IGFiYnJldmlhdGlvbnMgY291bGQgY29ycnVwdCB0aGUgbGluZS4NCisr CSsgRml4IGEgYnVnIHdoZXJlIHRoZSB3aW5kb3duYW1lIGVkaXQgb3B0aW9uIGNvdWxkbid0IGJl IHNldCBiZWZvcmUgYQ0KKysJICBmaWxlIHdhcyBsb2FkZWQgaW50byB0aGUgZWRpdCBidWZmZXIu DQorKwkrIEZpeCBhIGJ1ZyB3aGVyZSB0aGUgc3lzdGVtIC5leHJjIHZhbHVlcyB3ZXJlbid0IGJl aW5nIG92ZXJyaWRkZW4gYnkNCisrCSAgdGhlIHVzZXIncyAkSE9NRSAuZXhyYyB2YWx1ZXMuDQor KwkrIEZpeCBhIGJ1ZyBpbiB0aGUgZmlsZW5hbWUgY29tcGxldGlvbiBjb2RlLCB3aGVyZSBnYXJi YWdlIGNoYXJhY3RlcnMNCisrCSAgY291bGQgYmUgYWRkZWQgdG8gdGhlIGNvbG9uIGNvbW1hbmQg bGluZS4NCisrCSsgRml4IGJ1ZyB3aGVyZSBtdWx0aXBsZSBlZGl0IHNlc3Npb25zIG9uIGEgbm9u LWV4aXN0ZW50IGZpbGUgY291bGQNCisrCSAgYWxsIHdyaXRlIHRoZSBmaWxlIHdpdGhvdXQgd2Fy bmluZy4NCisrCSsgRml4IGJ1ZyB3aGVyZSBzY3JlZW4gdXBkYXRlIHdhcyBpbmNvcnJlY3QgaWYg YSBjaGFyYWN0ZXIgdHJpZ2dlcmVkDQorKwkgIGJvdGggYSB3cmFwbWFyZ2luIGFuZCBzaG93bWF0 Y2ggY29uZGl0aW9uLg0KKysJKyBGaXggYnVnIGluIGxlZnRyaWdodCBzY3JvbGxpbmcgd2hlcmUg PENSPiBkdXJpbmcgdGV4dCBpbnB1dCBkaWRuJ3QNCisrCSAgcmV0dXJuIHRoZSBjdXJzb3IgdG8g dGhlIGxlZnQgbWFyZ2luLg0KKysJKyBSZXYgdGhlIFBlcmwgaW50ZXJwcmV0ZXIgY29kZSwgbmV3 IHZlcnNpb24gZnJvbSBTdmVuIFZlcmRvb2xhZWdlLA0KKysJICBiYXNlZCBvbiBQZXJsIDUuMDAz LjAxLg0KKysJKyBGaXggYnVnIGluIHRhZ3MgZmlsZSBwYXR0ZXJuIHNlYXJjaCBpbnRyb2R1Y2Vk IGluIDEuNzEuDQorKzEuNzAgLT4gMS43MSAoMDcvMDEvOTYpDQorKwkrIERvbid0IGluY2x1ZGUg PHRlcm0uaD4gLS0gbmVpdGhlciBIUFVYIG9yIFNvbGFyaXMgY2FuIGNvcGUgd2l0aCBpdC4NCisr CSsgRml4IGJ1ZyB3aGVyZSBeTSdzIGluIHRoZSBvcmlnaW5hbCBwYXR0ZXJuIHdlcmUgY29udmVy dGVkIGludG8gbmV3DQorKwkgIGxpbmVzIGluIHRoZSBmaWxlIGR1cmluZyBzdWJzdGl0dXRpb24g Y29tbWFuZHMuDQorKwkrIE1ha2Ugd2luZG93IHJlc2l6ZSBldmVudHMgc2VwYXJhdGUgZnJvbSBp bnRlcnJ1cHRzIC0tIHRvbyBtYW55IHVzZXJzDQorKwkgIGNvbXBsYWluZWQuDQorKwkrIEZpeCBi dWcgaW4gZmlyc3QtY2hhcmFjdGVyLWlzLW51bGwgdGV4dCBpbnB1dCBzZW1hbnRpYy4NCisrCSsg UmV3b3JrIHNlYXJjaCByb3V0aW5lcyB0byB0YWtlIGEgbGVuZ3RoIGluc3RlYWQgb2YgYSBudWwt dGVybWluYXRlZA0KKysJICBzdHJpbmcgZm9yIGEgcGF0dGVybi4gIFRoaXMgZml4ZXMgYSBjb3Vw bGUgb2YgYnVncyBpbiBzZWFyY2hpbmcsIGJ1dA0KKysJICBwcm9iYWJseSBpbnRyb2R1Y2VzIG5l dyBvbmVzLg0KKysJKyBGaXggcHJvbXB0aW5nIHRoZSB1c2VyIGFmdGVyIGEgd3JpdGUgZmlsdGVy IGNvbW1hbmQsIHRoZSB3YXkgSSBkaWQNCisrCSAgaXQgaW4gMS43MCBicm9rZSB0aGUgZGlzcGxh eS4NCisrCSsgRG9uJ3Qgc3dpdGNoIHRvIHRoZSBhbHRlcm5hdGUgeHRlcm0gc2NyZWVuIHdoZW4g ZW50ZXJpbmcgdGhlIGV4DQorKwkgIHRleHQgaW5wdXQgY29tbWFuZHMgZnJvbSB2aSBtb2RlLg0K KysJKyBJbXBsZW1lbnQgdGhlIEZnIGNvbW1hbmQsIHNvIGNhbiBmb3JlZ3JvdW5kIGEgYmFja2dy b3VuZCBzY3JlZW4gaW50bw0KKysJICBhIHNwbGl0IHNjcmVlbi4NCisrCSsgQ2hhbmdlIHRoZSBm ZyBjb21tYW5kIHRvIG1hdGNoIHNjcmVlbiBuYW1lcyB1c2luZyB0aGUgbGFzdCBjb21wb25lbnQN CisrCSAgb2YgdGhlIGZpbGVuYW1lIHRoZSBmdWxsIGZpbGVuYW1lIGZhaWxzLg0KKysxLjY5IC0+ IDEuNzAgKDA2LzI4Lzk2KQ0KKysJKyBDaGFuZ2UgdGhlIGV4IHJlYWQgY29tbWFuZCB0byBzdXBw b3J0IG5hbWVkIHBpcGVzLg0KKysJKyBDb3B5IHRoZSBFWElOSVQvTkVYSU5JVCBzdHJpbmdzIGJl Zm9yZSBleGVjdXRpbmcgdGhlaXIgY29tbWFuZHMgc28NCisrCSAgd2UgZG9uJ3Qgc3RlcCBvbiB0 aGUgcHJvY2VzcyBlbnZpcm9ubWVudC4NCisrCSsgRG9uJ3QgZG8gImxpbmUgbW9kaWZpY2F0aW9u IiByZXBvcnRzIGZvciBpbnRlcm1lZGlhdGUgY29tbWFuZHMNCisrCSAgZXhlY3V0ZWQgZnJvbSB0 aGUgdmkgY29sb24gY29tbWFuZCBsaW5lLCBpdCBzY3Jld3MgdXAgZmlsdGVyDQorKwkgIHJlYWRz LCBjYXVzaW5nIG52aSB0byBwcm9tcHQgZm9yIHRoZSB1c2VyIHRvIGNvbnRpbnVlLg0KKysJKyBB ZGQgInNtZCIgYXMgYW4gYWJicmV2aWF0aW9uIGZvciBzaG93bW9kZTogSFAsIElDTCBhbmQgU0NP IGhhdmUgaXQuDQorKwkrIENoYW5nZSBudmkgdG8gYWx3YXlzIHByb21wdCB0aGUgdXNlciBhZnRl ciBhIHdyaXRlIGZpbHRlciBjb21tYW5kLg0KKysJICBUaGlzIG1hdGNoZXMgaGlzdG9yaWMgcHJh Y3RpY2UuDQorKwkrIEZpeCByZWNvdmVyeSBpbmZvcm1hdGlvbiBtYWlsZWQgdG8gdGhlIHVzZXIg dG8gcmVmbGVjdCB0aGUgcHJvZ3JhbSdzDQorKwkgIGluc3RhbGxlZCBuYW1lLg0KKysJKyBDaGFu Z2UgY29uZmlndXJhdGlvbiBzY3JpcHQgdG8gbm90IGNhY2hlIG9wdGlvbiBpbmZvcm1hdGlvbiwg ZS5nLiwNCisrCSAgLS1kaXNhYmxlLWN1cnNlcy4NCisrCSsgRml4IGEgYnVnIHdoZXJlIHRoZSBz ZWNvbmQgY2hhcmFjdGVyIG9mIHRoZSB2aSBbWywgXV0gYW5kIFpaDQorKwkgIGNvbW1hbmRzIGNv dWxkIHN0YXJ0IGEgY29tbWFuZCBtYXBwZWQgc2VxdWVuY2UuDQorKwkrIEZpeCAzIHdyaXRlIGJ1 Z3M6IHBhcnRpYWwgd3JpdGVzICgzLCR3cml0ZSksIHdlcmUgY2xlYXJpbmcgdGhlDQorKwkgIG1v ZGlmaWVkIGZsYWcsIGZ1bGwgd3JpdGVzIHVzaW5nIGxpbmUgbnVtYmVycyAoMSwkd3JpdGUpIHdl cmUNCisrCSAgbm90LCBhbmQgYXBwZW5kIGhpc3RvcmljYWxseSBuZXZlciBjbGVhcmVkIHRoZSBt b2RpZmllZCBmbGFnLCBhbmQNCisrCSAgd2UgZGlkbid0IGdldCB0aGF0IHJpZ2h0Lg0KKysJKyBT aG9ydGVuIHRoZSAibW9yZSBmaWxlcyB0byBlZGl0IiBtZXNzYWdlIHNvIGl0IGNhbiBnYW5nIG9u IGEgc2luZ2xlDQorKwkgIGxpbmUsIGxvdHMgb2YgcGVvcGxlIGhhdmUgY29tcGxhaW5lZC4gIEFk ZCB0aGUgbnVtYmVyIG9mIGZpbGVzIHRoYXQNCisrCSAgYXJlIGxlZnQgdG8gZWRpdCwgaXQncyBo aXN0b3JpYyBwcmFjdGljZS4NCisrCSsgRml4IGNvcmUgZHVtcCB3aGVyZSBtZXNzYWdlIGNhdGFs b2dzIGNvbGxpZGVkIHdpdGggdHJ1bmNhdGluZyB0aGUNCisrCSAgd3JpdGUgcGF0aC4gIEFkZCBh IG5ldyB3cml0ZSBtZXNzYWdlIHNvIHRoZSBzdHJpbmcgImFwcGVuZGVkIiBpcw0KKysJICB0YWtl biBmcm9tIGEgbWVzc2FnZSBjYXRhbG9nLg0KKysJKyBGaXggYnVnIHdoZXJlIGFuIHVuZG8gZm9s bG93ZWQgYnkgJy4nIHRvIHJlcGVhdCBpdCB3b3VsZG4ndCB3b3JrDQorKwkgIGlmIG5vIG90aGVy IHJlcGVhdGFibGUgY29tbWFuZHMgaGFkIGJlZW4gZW50ZXJlZC4NCisrCSsgRml4IGNvcmUgZHVt cCB3aGVuIHJlc29sdXRpb24gb2YgaW5wdXQgbGluZXMnIGF1dG9pbmRlbnQgY2hhcmFjdGVycw0K KysJICBpbnZhbGlkYXRlZCBjYWNoZWQgZGlzcGxheSBpbmZvcm1hdGlvbi4NCisrCSsgU2V0IHRo ZSBuYW1lIG9mIHRoZSBYMTEgeHRlcm0gaWNvbi93aW5kb3cgdG8gInh0ZXJtIiB3aGVuIGV4aXRp bmcsDQorKwkgIGlmIG1vZGlmaWVkIGJhc2VkIG9uIHRoZSB3aW5kb3duYW1lIG9wdGlvbi4NCisr CSsgSW5jbHVkZSA8dGVybS5oPiBpZiBpdCBleGlzdHMsIGZpeGVzIHBvcnRhYmlsaXR5IHByb2Js ZW1zIG9uIElSSVgNCisrCSAgc3lzdGVtcy4NCisrMS42OCAtPiAxLjY5ICgwNi8xNy85NikNCisr CSsgQWRkIHRoZSB3aW5kb3duYW1lIGVkaXQgb3B0aW9uIGFuZCBjb2RlIHRvIGNoYW5nZSB0aGUg aWNvbi93aW5kb3cNCisrCSAgbmFtZSBmb3IgeHRlcm0ncy4NCisrCSsgRW5oYW5jZSB0aGUgY29t bWVudCBlZGl0IG9wdGlvbiB0byBza2lwIHNoZWxsIGNvbW1lbnRzLg0KKysJKyBBZGQgY29uZGl0 aW9uYWwgcHJvdG90eXBlcyB0byByZXBsYWNlbWVudCBDIGxpYnJhcnkgZnVuY3Rpb25zLg0KKysJ KyBNaW5vciBlbmhhbmNlbWVudHMvcmV3b3JraW5nIHRvIE1ha2VmaWxlLmluLCBvdGhlciBidWls ZCBmaWxlcy4NCisrCSsgRml4IGJ1ZyBpbiB2aSB0ZXh0IGlucHV0IF5EIHByb2Nlc3NpbmcsIGNv dWxkIHJlc3VsdCBpbiBjdXJzb3INCisrCSAgd2FycCB0byB0aGUgYmVnaW5uaW5nIG9mIHRoZSBs aW5lLg0KKysJKyBGaXggbGVmdHJpZ2h0IHNjcmVlbiBidWcgd2hlcmUgdGhlIHNjcmVlbiB3YXNu J3QgcmVwYWludGVkIHdoZW4NCisrCSAgYmVpbmcgcmVwYWludGVkIGZyb20gc2NyYXRjaC4NCisr CSsgVXBkYXRlIHRoZSBTd2VkaXNoIGFuZCBEdXRjaCBjYXRhbG9ncy4NCisrCSsgVHJ1bmNhdGUg cGF0aHMgaW4gd3JpdGUgY29tbWFuZHMgaWYgdGhleSBkb24ndCBmaXQgb24gb25lIGxpbmUuDQor KwkrIEZpeCBhbHRlcm5hdGUgc2NyZWVuIGJ1ZyB3aGVyZSB0aGUgc2NyZWVuIGZsYXNoZWQgYW5k IG91dHB1dCBsb3N0DQorKwkgIHdoZW4gc3dpdGNoaW5nIHRvL2Zyb20gdGhlIFgxMSB4dGVybSBh bHRlcm5hdGUgc2NyZWVuLiAgRml4IGJ1Zw0KKysJICB3aGVyZSBudmkgc3dpdGNoZWQgaW50byB0 aGUgYWx0ZXJuYXRlIHNjcmVlbiBkdXJpbmcgZmlsdGVyLXJlYWQNCisrCSAgY29tbWFuZHMsIHdo aWNoIGRvZXNuJ3QgbWF0Y2ggaGlzdG9yaWMgcHJhY3RpY2UuDQorKwkrIE1pbm9yIHJlbGF0aXZl IGN1cnNvciBwb3NpdGlvbmluZyBjaGFuZ2UsIG1ha2UgY3Vyc29yIHBvc2l0aW9uDQorKwkgIGNo YW5nZXMgZnJvbSBleCByZWFsIGFuZCBwZXJtYW5lbnQuDQorKzEuNjcgLT4gMS42OCAoMDYvMDkv OTYpDQorKwkrIEZpeCBjb3JlIGR1bXAgd2hlbiB0YWdnaW5nIG91dCBvZiBhIG1vZGlmaWVkIGZp bGUuDQorKzEuNjYgLT4gMS42NyAoMDYvMDkvOTYpDQorKwkrIENvbnZlcnQgdGhlIGxpY2Vuc2Ug dG8gYWR3YXJlLg0KKysJKyBMZWZ0cmlnaHQgc2Nyb2xsaW5nIHR3ZWFrLCBkb24ndCByZXBhaW50 IHRoZSBzY3JlZW4gYXMgb2Z0ZW4uDQorKwkrIENoYW5nZSBzbyB0aGF0IHNlYXJjaCB3YXJuaW5n L2Vycm9yIG1lc3NhZ2VzIGRvbid0IGFwcGVhciBkdXJpbmcgYW4NCisrCSAgaW5jcmVtZW50YWwg c2VhcmNoLg0KKysJKyBDc2NvcGUgZml4OiB0ZXN0IGZvciBmaWxlcyBuZXdlciB0aGFuIHRoZSBk YXRhYmFzZSB3YXMgcmV2ZXJzZWQuDQorKwkrIERvbid0IGRpc3BsYXkgZXggYHdlbGNvbWUgbWVz c2FnZScgaWYgaW4gZXggYmF0Y2ggbW9kZS4NCisrCSsgVGVzdCBmb3IgdnNucHJpbnRmIGFuZCBz bnByaW50ZiBzZXBhcmF0ZWx5LCBIUCAxMC4xMCBoYXMgc25wcmludGYNCisrCSAgYnV0IG5vdCB2 c25wcmludGYuDQorKwkrIFJldmVyc2UgbG9va3VwIG9yZGVyIGJldHdlZW4gTENfTUVTU0FHRVMg YW5kIExBTkcuDQorKwkrIEZpeCBUY2wvUGVybCBjb3JlIGR1bXBzIGluIGNvbW1vbiBBUEkgY29k ZSB0byBnZXQvc2V0IG9wdGlvbnMuDQorKwkrIEZpeCBSIGNvbW1hbmQgLS0gaXQgdXNlZCBhIERC IHBpbm5lZCBwYWdlIGFmdGVyIGRpc2NhcmRpbmcgaXQuDQorKwkrIE1pbm9yIGZpeGVzIGluIG11 bHRpcGxlIGVkaXQgYnVmZmVyIG1lc3NhZ2UgaGFuZGxpbmcgY29kZS4NCisrCSsgRml4IHlrIGNv bW1hbmQgbW92aW5nIHRvIHNob3J0ZXIgbGluZSBjb3JlIGR1bXAuDQorKwkrIFJld29yayBtZXNz YWdlIGhhbmRsaW5nIHRvIHRyeSBhbmQgZ2FuZyBtb3JlIG1lc3NhZ2VzIG9udG8gYSBzaW5nbGUN CisrCSAgbGluZS4NCisrMS42NSAtPiAxLjY2ICgwNS8xOC85NikNCisrCSsgQ29udmVydCB2aSBt YW4gcGFnZSB0byBoaXN0b3JpYyAtbWFuIG1hY3JvIHBhY2thZ2UsIGFuZCBpbnN0YWxsIGl0Lg0K KysJKyBGaXggYnVnIHdlcmUgISEgb24gYW4gZW1wdHkgbGluZSB3aXRoIGEgbm9uZXhpc3RlbnQg Y29tbWFuZCBsZWZ0IHRoZQ0KKysJICBjdXJzb3Igb24gdGhlIHNlY29uZCBjaGFyYWN0ZXIsIG5v dCB0aGUgZmlyc3QuDQorKwkrIEZpeCBidWcgd2hlcmUgbGluZSByZWRpc3BsYXkgd2FzIHdyb25n IHdoZW4gYSA8dGFiPiByZXBsYWNlZCBhDQorKwkgIHByZXZpb3VzIDx0YWI+IGluIHRoZSBsaW5l Lg0KKysJKyBGaXggYnVnIHdoZXJlIEQgKGQkKSBkaWRuJ3QgcmVzZXQgdGhlIHJlbGF0aXZlIGN1 cnNvciBwb3NpdGlvbi4NCisrCSsgRml4IGJ1ZyB3aGVyZSB5RyBpbmNvcnJlY3RseSByZXNldCB0 aGUgcmVsYXRpdmUgY3Vyc29yIHBvc2l0aW9uLg0KKysJKyBGaXggYnVnIHdoZXJlIHRoZSB3aW5k b3cgc2l6ZSBjb3VsZG4ndCBiZSBncm93biBvbmNlIGl0IHdhcyBzaHJ1bmsuDQorKwkrIEZpeCBi dWcgd2hlcmUgdGhlIGV4dGVuZGVkIGVkaXQgb3B0aW9uIGNhdXNlZCB0YWcgc2VhcmNoZXMgdG8g ZmFpbC4NCisrCSsgSWYgbXVsdGlwbGUgbGluZXMgaW4gdGhlIHRhZ3MgZmlsZSB3aXRoIHRoZSBz YW1lIGxlYWRpbmcgdGFnLCBidWlsZA0KKysJICBhIHRhZ3Mgc3RhY2sgbGlrZSB0aGUgQ3Njb3Bl IHN0YWNrLiAgVGhpcyBpcyB0aGUgb2J2aW91cyBleHRlbnNpb24sDQorKwkgIGFuZCB0aGUgd2F5 IHRoYXQgTGFycnkgTWNWb3kncyBjdGFncyBwcm9ncmFtIHdvcmtzLg0KKysJKyBTZW5kIHRoZSBh cHByb3ByaWF0ZSBUSS9URSBzZXF1ZW5jZSBpbiB0aGUgY3Vyc2VzIHNjcmVlbiB3aGVuZXZlcg0K KysJICBlbnRlcmluZyBleC92aSBtb2RlLiAgVGhpcyBtZWFucyB0aGF0IDpzaGVsbCBub3cgc2hv d3MgdGhlIGNvcnJlY3QNCisrCSAgc2NyZWVuIHdoZW4gdXNpbmcgeHRlcm0gYWx0ZXJuYXRlIHNj cmVlbnMuDQorKwkrIFJld29yayB0aGUgb3B0aW9ucyBkaXNwbGF5IGNvZGUgdG8gZ2V0IGZpdmUg Y29sdW1ucyBpbiBhbiA4MCBjb2x1bW4NCisrCSAgc2NyZWVuLg0KKysJKyBJbnRlcmFjdGl2ZSBV bml4IFYzLjAgcG9ydCAtLSBtb3N0bHkgZmlsZSBuYW1lIHNob3J0ZW5pbmcsIG90aGVyDQorKwkg IG1pbm9yIGNoYW5nZXMuICBPbmx5IHByZWxpbWluYXJ5LCBtb3JlIHdvcmsgd2lsbCBiZSBuZWNl c3NhcnkuDQorKwkrIEFkZCBkZWJ1Z2dpbmcgb3B0aW9uIHRvIG5vdCByZWFkIEVYSU5JVC8uZXhy YyBpbmZvcm1hdGlvbi4NCisrCSsgRml4IGJ1ZyB3aGVyZSByZV9jb21waWxlIHByaW50ZWQgYW4g ZXJyb3IgbWVzc2FnZSB0byB0aGUgc2NyZWVuDQorKwkgIHdoZW4gdGhlIHVzZXIgZW50ZXJlZCBb IHRvIGFuIGluY3JlbWVudGFsIHNlYXJjaC4NCisrCSsgVHVybiBvZmYgc2NyZWVuIGJlZXBzIHdo ZW4gaW5jcmVtZW50YWwgc2VhcmNoIGlzIGZhaWxpbmcuDQorKwkrIEZpeCBidWcgd2hlcmUgdGhl IGljbG93ZXIgb3B0aW9uIGRpZG4ndCB0cmlnZ2VyIGFuIFJFIHJlY29tcGlsYXRpb24uDQorKwkr IEZpeCBidWcgd2hlcmUgLXQgaW50byBhbiBhbHJlYWR5IGxvY2tlZCBmaWxlIGZvcmNlZCB0aGUg dXNlciB0byB3YWl0DQorKwkgIGFzIGlmIGEgc3RhcnR1cCBjb21tYW5kIGhhZCBmYWlsZWQuDQor KwkrIEx5bnhPUyBwb3J0IC0tIG1vc3RseSBhZGRpbmcgPHN5cy90eXBlcy5oPiBldmVuIHRob3Vn aCA8c3lzL3BhcmFtLmg+DQorKwkgIHdhcyBhbHJlYWR5IGluY2x1ZGVkLg0KKysJKyBGaXggZXgg b3V0cHV0IGJ1Zywgd2hlcmUgaXQgYXBwZWFyZWQgYXMgaWYgYW4gZXggY29tbWFuZCB3YXMgc2tp cHBlZA0KKysJICBkdWUgdG8gZmxhZ3Mgbm90IGJlaW5nIGNsZWFyZWQgaW4gdGhlIHZzX21zZygp IHJvdXRpbmUuDQorKwkrIEZpeCBjb3JlIGR1bXAgd2hlbiBnbG9iYWwgY29tbWFuZCB0cmllZCB0 byBzd2l0Y2ggc2NyZWVucy4NCisrMS42NCAtPiAxLjY1ICgwNS8xMy85NikNCisrCSsgRml4IGNz Y29wZSA8Ymxhbms+LW1hdGNoaW5nIHBhdHRlcm4gdG8gdXNlIGV4dGVuZGVkIFJFJ3MsIGFuZCBi dWcNCisrCSAgdGhhdCBrZXB0IGNzY29wZSBmcm9tIGZpbmRpbmcgcGF0dGVybnMgY29udGFpbmlu ZyA8Ymxhbms+cy4NCisrCSsgRml4IGNvcmUgZHVtcHMgaW4gYm90aCBsZWZ0cmlnaHQgYW5kIGZv bGRlZCBzY3JlZW5zIHdoZW4gdGFic3RvcHMNCisrCSAgZWRpdCBvcHRpb24gdmFsdWUgd2FzIGxh cmdlLCBhbmQgdGFiIGNoYXJhY3RlcnMgb2NjdXJyZWQgYXMgdGhlIGxhc3QNCisrCSAgY2hhcmFj dGVyIGluIHRoZSBsb2dpY2FsIHNjcmVlbi4NCisrCSsgRml4IGNvcmUgZHVtcCB3aGVyZSB0aGUg c2Vjb25kIHNjcmVlbiBvZiBhIGZvbGRlZCBsaW5lIHdhc24ndA0KKysJICBkaXNwbGF5ZWQgY29y cmVjdGx5Lg0KKysJKyBGaXggaW5jcmVtZW50YWwgc2VhcmNoIHRvIG1hdGNoIHRoZSBjdXJyZW50 IGxvY2F0aW9uIGZvciBzdHJpbmdzDQorKwkgIHN0YXJ0aW5nIHdpdGggXDwgcGF0dGVybnMuDQor KwkrIEZpeCBidWcgd2hlcmUgbWFyZ2lucyB3ZXJlIGlnbm9yZWQgZHVyaW5nIHJlcGxheSBvZiB0 ZXh0IGlucHV0Lg0KKysJKyBGaXggYnVnIHdoZXJlIG1vdGlvbiBjb21wb25lbnRzIHRvIHNob3J0 ZXIgbGluZXMgY291bGQgbG9zZSBiZWNhdXNlDQorKwkgIHRoZSByZWxhdGl2ZSBtb3Rpb24gZmxh Z3Mgd2VyZW4ndCBldmVyIHNldC4gIFRoaXMgaGFzIGJlZW4gYnJva2VuDQorKwkgIGZvcmV2ZXIs IGJ1dCB0aGUgY2hhbmdlIGFsbW9zdCBjZXJ0YWlubHkgYnJlYWtzIHNvbWV0aGluZyBlbHNlIC0t IEkNCisrCSAgaGF2ZSBubyBpZGVhIHdoYXQuDQorKwkrIFRhZ3MgZGlzcGxheTogZG9uJ3QgcHJp bnQgdGhlIGN1cnJlbnQgZW50cnkgc2VwYXJhdGVseSwgZGlzcGxheQ0KKysJICB0aGVtIGFsbCBh bmQgYWRkIGEgdHJhaWxpbmcgYXN0ZXJpc2sgZm9yIHRoZSBjdXJyZW50IG9uZS4NCisrCSsgQ2hh bmdlIHRoZSBjc2NvcGUgYWRkIGNvbW1hbmQgdG8gcHV0IHRoZSBkaXJlY3RvcnkgbmFtZSB0aHJv dWdoDQorKwkgIHN0YW5kYXJkIGZpbGUgbmFtZSBleHBhbnNpb24uDQorKwkrIEZpeCBjc2NvcGUg dXNlIG9mIGJ1ZmZlcnMgLS0gc2VhcmNoIGNvbW1hbmRzIHdlcmVuJ3QgbnVsLXRlcm1pbmF0ZWQu DQorKzEuNjMgLT4gMS42NCAoMDUvMDgvOTYpDQorKwkrIEFkZCBpbnN0YWxsYXRpb24gdGFyZ2V0 IHRvIHRoZSBNYWtlZmlsZS4NCisrCSsgQWRkIGRvY3VtZW50YXRpb24gb24gdGhlIG5ldyB0YWdz IGNvbW1hbmRzIHRvIHRoZSBWaSBSZWZlcmVuY2UNCisrCSAgTWFudWFsLg0KKysJKyBNYWtlIHRo ZSBzaWRlc2Nyb2xsIGVkaXQgb3B0aW9uIHdvcmsgYWdhaW4uDQorKwkrIEZpeCBidWcgd2hlcmUg bWVzc2FnZXMgb3V0cHV0IGR1cmluZyBzdGFydHVwIGJ5IGV4IGNvdWxkIGJlIGxvc3QuDQorKwkr IENoYW5nZSBleC92aSBjb21tYW5kcyBlcnJvcnMgaW50byBiZWVwcywgdW5sZXNzIHRoZSB2ZXJi b3NlIGVkaXQNCisrCSAgb3B0aW9uIGlzIHNldCAtLSB0aGVyZSBhcmUgdG9vIG1hbnkgbWFjcm9z IHRoYXQgYXJlIGV4cGVjdGVkIHRvDQorKwkgIGV2ZW50dWFsbHkgZmFpbC4gIFRoaXMgbWF0Y2hl cyBoaXN0b3JpYyBwcmFjdGljZS4NCisrCSsgVHJ1bmNhdGUgcGF0aHMgaW4gaW5pdGlhbCB2aSBz Y3JlZW4gaWYgdGhleSB3b24ndCBmaXQgb24gb25lIGxpbmUuDQorKwkrIE1ha2UgY3Vyc29yIHBv c2l0aW9uIGFmdGVyIGZpbHRlciB3cml0ZSBtYXRjaCBoaXN0b3JpYyBwcmFjdGljZS4NCisrCSsg Rm9yY2UgdGhlIHVzZXIgdG8gd2FpdCBpZiB0aGVyZSBpcyBvdXRwdXQgYW5kIHRoZSB1c2VyIGlz IGxlYXZpbmcNCisrCSAgdGhlIHNjcmVlbiBmb3IgYW55IHJlYXNvbiAtLSBkb24ndCBwZXJtaXQg ZnVydGhlciBleCBjb21tYW5kcy4NCisrCSsgRG9uJ3QgdXNlIGEgPG5ld2xpbmU+IGNoYXJhY3Rl ciB0byBzY3JvbGwgdGhlIHNjcmVlbiB3aGVuIGV4aXRpbmcsDQorKwkgIHNjcm9sbCBpbiB0aGUg dmkgc2NyZWVuIGJlZm9yZSBlbmR3aW4oKSBpcyBjYWxsZWQuDQorKwkrIEZpeCBidWcgd2hlcmUg dGhlIGNvbHVtbiBudW1iZXIgY291bGQgYmUgaW5jb3JyZWN0IGJlY2F1c2UgdGhlIG9sZA0KKysJ ICBzY3JlZW4gd2Fzbid0IHVwZGF0ZWQgYWZ0ZXIgYSBzY3JlZW4gc3BsaXQuDQorKwkrIEZpeCBl eCBwcmludCByb3V0aW5lIHRvIGNvcnJlY3RseSBzcGVjaWZ5IHByaW50IGZsYWdzLg0KKysJKyBN YWtlIC1nLy1PIGEgc2VwYXJhdGUgbWFrZS9jb25maWd1cmF0aW9uIG9wdGlvbi4NCisrCSsgRml4 IGJ1ZyB3aGVyZSBleC92aSBtZXNzYWdlcyB3ZXJlbid0IGJlaW5nIGpvaW5lZC4NCisrCSsgRml4 IGJ1ZyB3aGVyZSB0ZXJtY2FwIHN0cmluZ3Mgd2VyZSBmcmVlJ2QgdHdpY2UuDQorKwkrIEZpeCBi dWcgd2hlcmUgVEkvVEUgc3RpbGwgd2VyZW4ndCB3b3JraW5nIC0tIEkgZGlkbid0IHB1dCBpbiB0 aGUNCisrCSAgdHJhbnNsYXRpb24gc3RyaW5ncyBmb3IgQlNEIHN0eWxlIGN1cnNlcy4NCisrCSsg Rml4IGJ1ZyB3aGVyZSBJIG1pc3NwZWxsZWQgdGhlIGljbG93ZXIgZWRpdCBvcHRpb24gYXMgaWNs b3Nlci4NCisrMS42MiAtPiAxLjYzICgwNC8yOS85NikNCisrCSsgUm9idXN0bmVzcyBhbmQgdHlw ZS9saW50IGZpeGVzIGZvciB0aGUgVGNsIGludGVyZmFjZSBjb2RlLg0KKysJKyBGaXggY29yZSBk dW1wIGlmIFRFUk0gd2Fzbid0IHNldCBvciB0ZXJtaW5hbCB0eXBlIHdhcyB1bmtub3duLg0KKysJ KyBGaXggYnVnIHdoZXJlIGNvbWJpbmluZyBleCBjb21tYW5kcyB0aGF0IGRpZC9kaWQgbm90IHJl cXVpcmUgYW4NCisrCSAgZXggc2NyZWVuIHdvdWxkIG92ZXJ3cml0ZSB0aGUgY29tbWFuZCB3aXRo IHRoZSB3YW50LXRvLWNvbnRpbnVlDQorKwkgIG1lc3NzYWdlLg0KKysJKyBGaXggYnVnIHdoZXJl IHRoZSBzY3JlZW4gd2FzIG5ldmVyIHJlc29sdmVkIGlmIHRoZSB1c2VyIGNvbnRpbnVlZA0KKysJ ICBlbnRlcmluZyBleCBjb21tYW5kcyB1c2luZyB0aGUgOiBjaGFyYWN0ZXIsIGJ1dCB0aGVuIGJh Y2tzcGFjZWQNCisrCSAgb3ZlciB0aGUgcHJvbXB0IHRvIHF1aXQgb3IgdHJpZWQgdG8gZWRpdCB0 aGVpciBjb2xvbiBjb21tYW5kLWxpbmUNCisrCSAgaGlzdG9yeS4NCisrCSsgRml4IGJ1ZyB3aGVy ZSBjdXJzb3Igd2Fzbid0IHBsYWNlZCBvdmVyIHRoZSBeIHBsYWNlaG9sZGVyIGNoYXJhY3Rlcg0K KysJICB3aGVuIHF1b3RpbmcgdXNpbmcgdGhlIGxpdGVyYWwtbmV4dCBjaGFyYWN0ZXIuDQorKwkr IEZpeCBidWcgd2hlcmUgbnZpIHVuZGVyIEJTRCBzdHlsZSBjdXJzZXMgd2Fzbid0IHNlbmRpbmcg VEkvVEUgdGVybWNhcA0KKysJICBzdHJpbmdzIHdoZW4gc3VzcGVuZGluZyB0aGUgcHJvY2Vzcy4N CisrCSsgUmVuYW1lIG1pYyBhZ2FpbiwgdG8gaWNsb3dlci4NCisrCSsgRml4IGJ1ZyB3aGVyZSAn eicgY29tbWFuZHMgdHJhaWxpbmcgLyBvciA/IGNvbW1hbmRzIHdlcmVuJ3QgYmVpbmcNCisrCSAg ZXhlY3V0ZWQuDQorKwkrIENoYW5nZSBpbmNyZW1lbnRhbCBzZWFyY2ggdG8gbGVhdmUgdGhlIGN1 cnNvciBhdCBpdHMgbGFzdCBwb3NpdGlvbg0KKysJICB3aGVuIHNlYXJjaGluZyBmb3Igc29tZXRo aW5nIHRoYXQgd2FzIG5ldmVyIGZvdW5kLg0KKysJKyBGaXggYnVnIHdoZXJlIHNlYXJjaC13aXRo LWNvbmZpcm1hdGlvbiBmcm9tIHZpIG1vZGUgZGlkbid0IHBvc2l0aW9uDQorKwkgIHRoZSBjdXJz b3IgY29ycmVjdGx5IGFmdGVyIGRpc3BsYXlpbmcgdGhlIGNvbmZpcm0gbWVzc2FnZS4NCisrCSsg Rml4IGJ1ZyB3aGVyZSB0aGUgInNlYXJjaCB3cmFwcGVkIiBtZXNzYWdlIHdhcyBkZXBlbmRlbnQg b24gdGhlDQorKwkgIHZlcmJvc2UgZWRpdCBvcHRpb24sIHdoaWNoIGRvZXNuJ3QgbWF0Y2ggaGlz dG9yaWMgcHJhY3RpY2UuICBDaGFuZ2UNCisrCSAgc2VhcmNoIG1lc3NhZ2VzIHRvIGJlIGluIGlu dmVyc2UgdmlkZW8uDQorKwkrIEZpeCBidWcgd2hlcmUgbWF0Y2hlZCBzaG93bWF0Y2ggY2hhcmFj dGVyIHdhc24ndCBiZWluZyBkaXNwbGF5ZWQNCisrCSAgYmVmb3JlIHRoZSBtYXRjaGluZyBjaGFy YWN0ZXIgd2FzIGRpc3BsYXllZC4NCisrCSsgQW5vdGhlciBjdXJzb3IgdXBkYXRlIGJ1ZyByZXF1 aXJlZCBhIGNoYW5nZSB0byB2c19wYWludCgpLg0KKysJKyBGaXggYnVnIHdlcmUgaW5pdGlhbCBs aW5lIG9mZnNldCB3YXMgd3JvbmcgZm9yIHRoZSBmaXJzdCBzcGxpdCBzY3JlZW4NCisrCSAgKHN5 bXB0b20gaXMgdmVyeSBzdHJhbmdlIGNvbHVtbiBudW1iZXJzIGFuZCBibGFuayBmaXJzdCBsaW5l KS4NCisrCSsgQ3JlYXRlIGZpbGVuYW1lICJhcmd1bWVudCIgbGlzdHMgd2hlbiBjcmVhdGluZyBu ZXcgc2NyZWVucy4NCisrCSsgRml4IGJ1ZyB3aGVyZSBnbG9iYWxzIHdpdGggYXNzb2NpYXRlZCBj b21tYW5kcyB0aGF0IGluY2x1ZGVkIGJvdGgNCisrCSAgYnVmZmVyIGV4ZWN1dGlvbiBhbmQgb3Ro ZXIgY29tbWFuZHMgY291bGQgZmFpbCB0byBleGVjdXRlIHRoZSBsYXR0ZXIuDQorKzEuNjEgLT4g MS42MiAoMDQvMjIvOTYpDQorKwkrIFJlbmFtZSB0aGUgInNlYXJjaGNpIiBlZGl0IG9wdGlvbiB0 byBiZSAibWljIi4NCisrCSsgRml4IG1lbW9yeSBjb3JydXB0aW9uIGluIGdsb2JhbCBjb21tYW5k cyBlbmRpbmcgaW4gc2VhcmNoZXMuDQorKwkrIEZpeCB0ZXh0IHJlc29sdXRpb24gYnVnLCBjb3Jy ZWN0ZWQgdGhlIGN1cnNvciBiYXNlZCBvbiB0aGUNCisrCSAgZmlyc3QgbGluZSBpbnB1dCwgbm90 IHRoZSBsYXN0Lg0KKysJKyBSZXdvcmsgdGhlIHJlYWRvbmx5IGVkaXQgb3B0aW9uIHRvIG1hdGNo IGhpc3RvcmljIHByYWN0aWNlLg0KKysJKyBGaXggc2V2ZXJhbCBtaW5vciBpbmNyZW1lbnRhbCBz ZWFyY2ggYnVnczsgbWFrZSBpbmNyZW1lbnRhbA0KKysJICBzZWFyY2hlcyB3b3JrIGluIG1hcHMu DQorKwkrIEZpeCBsb25nLWxpbmUgY29yZSBkdW1wLCB3aGVyZSBhbiBpbmNvcnJlY3Qgc2NyZWVu IG1hcCBjb3VsZCBiZQ0KKysJICB1c2VkLg0KKysxLjYwIC0+IDEuNjEgKDA0LzEyLzk2KQ0KKysJ KyBUaGUgY3Vyc29yIG5vdyBlbmRzIHVwIG9uIHRoZSBGSVJTVCBjaGFyYWN0ZXIgb2YgdGhlIHB1 dCB0ZXh0IGZvcg0KKysJICBhbGwgdmVyc2lvbnMgb2YgdGhlIHZpIHB1dCBjb21tYW5kcywgcmVn YXJkbGVzcyBvZiB0aGUgc291cmNlDQorKwkgIG9mIHRoZSB0ZXh0LiAgVGhpcyBtYXRjaGVzIFN5 c3RlbSBJSUkvViBiZWhhdmlvciBhbmQgUE9TSVggMTAwMy4yLg0KKysJKyBGaXhlZCBidWcgd2hl cmUgc2hvd21hdGNoIG1lc3NhZ2VzIHdlcmUgZ2V0dGluZyBkaXNjYXJkZWQuDQorKwkrIE1pbm9y IFBlcmwgaW50ZWdyYXRpb24gZml4ZXMuDQorKwkrIEludGVncmF0ZSBDc2NvcGUgaW50byB0aGUg dGFncyBzdGFjayBjb2RlIC0tIG1ham9yIGNoYW5nZS4NCisrCSsgRml4ZWQgYnVnIHdoZXJlIF5U IHdvdWxkIGRyb3AgY29yZSBpZiByZXR1cm5pbmcgdG8gYSB0ZW1wb3JhcnkgZmlsZS4NCisrCSsg Q2hhbmdlZCB2c18gcm91dGluZSB0byBkaXNwbGF5IGV4IG91dHB1dCB0byByZXBsYWNlIHRhYiBj aGFyYWN0ZXJzDQorKwkgIHdpdGggc3BhY2VzLg0KKysJKyBGaXggYXV0b2luZGVudCBjb2RlIHRv IG5vdCBiYWNrIHVwIHBhc3QgYmVnaW5uaW5nIG9mIGxpbmUgd2hlbiBeVA0KKysJICBpbnNlcnRl ZCBpbnRvIHRoZSBtaWRkbGUgb2YgYSBsaW5lLCBpLmUuIG9mZnNldCAhPSAwLg0KKysJKyBGaXgg Im5vdGltZW91dCIgb3B0aW9uLCB3YXMgYmVpbmcgaWdub3JlZCwgYnkgYSBjb2RpbmcgZXJyb3Iu DQorKwkrIEZpeCBzaG93bWF0Y2ggY29kZSB0byBuZXZlciBmbGFzaCBvbiBhIG1hdGNoIGlmIGtl eXMgYXJlIHdhaXRpbmcuDQorKwkrIENoYW5nZSB0aGUgdmkgJ0QnIGNvbW1hbmQgdG8gaWdub3Jl IGFueSBzdXBwbGllZCBjb3VudCwgbWF0Y2hpbmcNCisrCSAgaGlzdG9yaWMgcHJhY3RpY2UuDQor KwkrIEZpeCB2aXVzYWdlIGZvciBELCBTLCBDIGFuZCBZICh0aGUgYWxpYXNlZCB2aSBjb21tYW5k cykuDQorKwkrIEZpeCB0aGUgUGVybDUgY29uZmlndXJhdGlvbiBidWcgaW4gdGhlIGNvbmZpZ3Vy YXRpb24gc2NyaXB0Lg0KKysJKyBNYWtlIGZpbGUgY29tcGxldGlvbiBjb21tYW5kcyBpbiBlbXB0 eSBsaW5lcyB3b3JrLg0KKysJKyBGaXggd2hlcmUgdGhlIGNoYW5nZSB0byBsZXQgdmkgdXNlIHRo ZSBkZWZhdWx0IGV4IGNvbW1hbmQgc3RydWN0dXJlDQorKwkgIGJyb2tlIHRoZSBleCBzcGVjaWZp Y2F0aW9uIG9mIHRoZSBzY3JpcHQgb3Igc291cmNlIGZpbGUgbmFtZS4NCisrCSsgRml4IHRvIGZy ZWUgc2F2ZWQgUkUgc3RydWN0dXJlcyB3aGVuIHNjcmVlbnMgZXhpdC4gIFRoaXMgaXMgYSBtYWpv cg0KKysJICBSRSBjaGFuZ2UsIHdoaWNoIGZpeGVkIHNldmVyYWwgYnVncyBpbiB0aGUgaGFuZGxp bmcgb2Ygc2F2ZWQvc3Vic3QNCisrCSAgUkUncy4gIEl0J3MgbGlrZWx5IHRvIGhhdmUgYWRkZWQg bmV3IGJ1Z3MsIGhvd2V2ZXIuDQorKwkrIEFkZCBjYXNlLWluZGVwZW5kZW50IHNlYXJjaGluZyAo dGhlIHNlYXJjaGNpIGVkaXQgb3B0aW9uKS4NCisrCSsgQWRkIGluY3JlbWVudGFsIHNlYXJjaCAo dGhlIHNlYXJjaGluY3IgZWRpdCBvcHRpb24pLg0KKysJKyBIb21lIHRoZSBjdXJzb3Igd2hlbiBl eGVjdXRpbmcgZXggY29tbWFuZHMgZnJvbSB2aS4NCisrMS41OSAtPiAxLjYwICgwMy8yOS85NikN CisrCSsgRml4ICI6dyA+PiIgY29yZSBkdW1wLCBtYWtlIHRoYXQgY29tbWFuZCBtYXRjaCBoaXN0 b3JpYyBwcmFjdGljZS4NCisrCSsgRml4IGF1dG9pbmRlbnQgYnVnIHdoZXJlIHRoZSBsZW5ndGgg b2YgdGhlIGxpbmUgd2FzIGluY29ycmVjdGx5DQorKwkgIGNhbGN1bGF0ZWQuDQorKwkrIEZpeCBj dXJzb3IgYnVnIHdoZXJlIGN1cnNvciBjb3VsZCBlbmQgdXAgYXQgdGhlIHdyb25nIHBsYWNlIGlm IHRoZQ0KKysJICBtb3ZlbWVudCBrZXlzIHdlcmUgZW50ZXJlZCBxdWlja2x5IGVub3VnaC4NCisr CSsgQ2hhbmdlIHRoZSByZWFkL3dyaXRlIHdoaXJsaW5nIGluZGljYXRvciB0byBhcHBlYXIgb25s eSBldmVyeSAxLzQNCisrCSAgc2Vjb25kLCBjbGVhbiB1cCB0aGUgYXBwZWFyYW5jZS4NCisrCSsg RG9uJ3QgY2hhbmdlIHRoZSBvcHRpb25zIHJlYWwgdmFsdWVzIHVudGlsIHVuZGVybHlpbmcgZnVu Y3Rpb25zDQorKwkgIGhhdmUgcmV0dXJuZWQgT0sgLS0gZml4ICJzZXQgdGFic3RvcD0wIiBjb3Jl IGR1bXAuDQorKwkrIEZpeCByZXNpemluZyBvbiBTdW4nczogdXNlIFNBX0lOVEVSUlVQVCB0byBp bnRlcnJ1cHQgcmVhZCBjYWxscy4NCisrCSsgRml4IHR3byBmb3J3YXJkIG1hcmsgY29tbWFuZCBi dWdzOiBvbmUgd2hlcmUgaXQgd2Fzbid0IHNldHRpbmcgdGhlDQorKwkgICJmYXZvcml0ZSBjdXJz b3IiIHBvc2l0aW9uIGJlY2F1c2Ugb2YgdGhlIHJlZnJlc2ggb3B0aW1pemF0aW9uLA0KKysJICBh bmQgb25lIHdoZXJlIGl0IGRpZG4ndCBoYXZlIFZNX1JDTV9TRVQgc2V0IGluIHRoZSBjb21tYW5k IGZsYWdzDQorKwkgIGZvciBzb21lIHJlYXNvbi4NCisrCSsgRml4IGEgYnVnIHdlcmUgdGhlICdz JyBjb21tYW5kIG9uIHRvcCBvZiBhIDx0YWI+IGRpZG4ndCBjb3JyZWN0bHkNCisrCSAgY29weSB0 aGUgYnVmZmVyLg0KKysJKyBNYWtlIDpleHVzYWdlIGNvbW1hbmQgd29yayBmb3IgY29tbWFuZHMg aGF2aW5nIG9wdGlvbmFsIGxlYWRpbmcNCisrCSAgY2FwaXRhbCBsZXR0ZXJzLCBlLmcuIE5leHQu DQorKwkrIFByZXZpb3VzIGNoYW5nZXMgYnJva2UgdGhlIGluaXRhbC1tYXRjaGluZy1wcmVmaXgg Y29kZSBpbiB0aGUga2V5DQorKwkgIG1hcHBpbmcgcGFydCBvZiB2X2V2ZW50X2dldCAtLSBmaXgg aXQsIGFuZCBmaXggdGhlIGluZmluaXRlIG1hY3JvDQorKwkgIGludGVycnVwdCBjb2RlIGF0IHRo ZSBzYW1lIHRpbWUuDQorKwkrIEFkZCAiY2VkaXQiIGVkaXQgb3B0aW9uLCBzbyBjb2xvbiBjb21t YW5kLWxpbmUgZWRpdGluZyBpcyBvcHRpb25hbC4NCisrCSAgQ2hhbmdlIGZpbGVjL2NlZGl0IHNv IHRoYXQgeW91IGNhbiBzZXQgdGhlbSB0byB0aGUgc2FtZSBjaGFyYWN0ZXIsDQorKwkgIGFuZCB0 aGV5IGRvIGNlZGl0IGlmIGluIGNvbHVtbiAxLCBhbmQgZmlsZWMgb3RoZXJ3aXNlLg0KKysJKyBG aXggInNvdXJjZSBvZiBub24tZXhpc3RlbnQgZmlsZSIgY29yZSBkdW1wLg0KKysJKyBGaXggYnVn IHdoZXJlIGZ1bmN0aW9ucyBrZXlzIHNwZWNpZmllZCBpbiBzdGFydHVwIGluZm9ybWF0aW9uIHdl cmUNCisrCSAgbmV2ZXIgcmVzb2x2ZWQvYWN0aXZhdGVkLg0KKysJKyBGaXggdl90eHQgYnVnIHdo ZXJlIGNvdWxkIGluZmluaXRlbHkgbG9vcCBpZiA8ZXNjYXBlPiB0cmlnZ2VyZWQgYW4NCisrCSAg YWJicmV2aWF0aW9uIGV4cGFuc2lvbi4NCisrCSsgTW92ZSB2ZXJzaW9uIHN0cmluZyBpbnRvIFZF UlNJT04gZmlsZSwgb3V0IG9mIGV4X3ZlcnNpb24uYw0KKysxLjU4IC0+IDEuNTkNCisrCSsgQ29u ZmlndXJhdGlvbiBjaGFuZ2VzLCBzZXZlcmFsIG1pbm9yIGJ1ZyBmaXhlcywgaW5jbHVkaW5nIGEg ZmV3DQorKwkgIGNvcmUgZHVtcHMuICBObyBmdW5jdGlvbmFsIGNoYW5nZXMuDQorKzEuNTcgLT4g MS41OA0KKysJKyBGaXggdGhlIHByb2JsZW0gd2hlcmUgY29sb24gY29tbWFuZC1saW5lIHRlbXBv cmFyeSBmaWxlcyB3ZXJlDQorKwkgIGdldHRpbmcgbGVmdCBpbiAvdG1wLg0KKysJKyBGaXggdGhl IGNvbmZpZ3VyYXRpb24gc2NyaXB0cyB0byBxdWl0IGltbWVkaWF0ZWx5IGlmIHRoZSBQZXJsDQor KwkgIG9yIFRrL1RjbCBsaWJyYXJpZXMgYXJlIHNwZWNpZmllZCBidXQgbm90IGZvdW5kLg0KKysJ KyBTZXZlcmFsIHNjcmVlbiBmaXhlcyAtLSB0aGUgY2hhbmdlcyBpbiAxLjU3IHdlcmVuJ3QgYXMg c2FmZSBhcw0KKysJICBJIHRob3VnaHQuICBNb3JlIHNwZWNpZmljYWxseSwgdGhlIHJlZnJlc2gt b25seS1pZi13YWl0aW5nIGNoYW5nZQ0KKysJICBjYXVzZWQgYSBsb3Qgb2YgcHJvYmxlbXMuICBJ biBnZW5lcmFsLCBmaXhpbmcgdGhlbSBzaG91bGQgcHJvdmlkZQ0KKysJICBldmVuIG1vcmUgc3Bl ZWR1cCwgYnV0IEknbSBuZXJ2b3VzLg0KKysJKyBMb3RzIG9mIGNoYW5nZXMgaW4gdGhlIGNvbmZp Z3VyYXRpb24gc2NyaXB0cywgaG9wZWZ1bGx5IHRoaXMgaXMNCisrCSAganVzdCBhIGZpcnN0LXJv dW5kIG9yZGVhbC4NCisrCSsgU2V2ZXJhbCBvdGhlciBtaW5vciBidWcgZml4ZXMuDQorKzEuNTYg LT4gMS41Nw0KKysJKyBBZGQgPGVzYz4gaG9vayB0byBjb2xvbiBjb21tYW5kcywgc28geW91IGNh biBlZGl0IGNvbG9uIGNvbW1hbmRzLg0KKysJKyBBZGQgUGVybDUgaW50ZXJwcmV0ZXIuDQorKwkr IENoYW5nZSBzaGVsbCBleHBhbnNpb24gY29kZSB0byBmYWlsIGlmIGl0IGRvZXNuJ3QgcmVhZCBh dCBsZWFzdA0KKysJICBvbmUgbm9uLWJsYW5rIGNoYXJhY3RlciBmcm9tIHRoZSBzaGVsbC4gIElm IHRoZSBzaGVsbCBleHBhbnNpb24NCisrCSAgcHJvY2VzcyBmYWlscywgb3IgaWYgbm90IGF0IGxl YXN0IG9uZSBub24tYmxhbmsgY2hhcmFjdGVyLCBpdA0KKysJICBub3cgZGlzcGxheXMgYW4gZXJy b3IgbWVzc2FnZSB0byB0aGUgdXNlci4NCisrCSsgUmV3b3JrIHRoZSBzY3JlZW4gZGlzcGxheSBz byB0aGF0IGl0IG1hdGNoZXMgdGhlIGhpc3RvcmljIHZpIHNjcmVlbg0KKysJICByZWZyZXNoZXMu DQorKwkrIFJld29yayBvcHRpb25zIHByb2Nlc3Npbmc6IHByaW50L25vcHJpbnQgYXJlIG5vIGxv bmdlciBjdW11bGF0aXZlLA0KKysJICBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gdG8gdW5kZXJs eWluZyBlZGl0IG9wdGlvbnMgbW9kdWxlcywgbW92ZQ0KKysJICBPX01FU0cgaW5mb3JtYXRpb24g aW50byB0aGUgc2NyZWVuIHNwZWNpZmljIGNvZGUuDQorKwkrIE1ha2UgZmlsZSBjb21wbGV0aW9u IGNoYXJhY3RlciBzZXR0YWJsZS4NCisrCSsgUmV3b3JrIHRlcm1pbmFsIHJlc3RhcnQgLS0geW91 IGNhbiBub3cgdXNlICI6c2V0IHRlcm0iIHRvIHN3aXRjaA0KKysJICB0ZXJtaW5hbCB0eXBlcy4g IFRoaXMgY2xlYW5lZCB1cCBzY3JlZW4gcmVzaXppbmcgY29uc2lkZXJhYmx5Lg0KKysJKyBDaGFy YWN0ZXIgZGlzcGxheSBmaXgsIGRpc3BsYXkgXDE3NyBhcyBePywgbm90IGluIGhleC9vY3RhbC4N CisrCSsgVGFnIHNlYXJjaCBidWcgZml4LCBkb24ndCByZXBlYXQgc2VhcmNoIGlmIHN1Y2Nlc3Nm dWwuDQorKwkrIFJlcGxhY2Ugc3lzX3NpZ2xpc3RbXSB1c2Ugd2l0aCBwcml2YXRlIHNpZ21zZygp IHJvdXRpbmUuDQorKwkrIEZpeCBjb3JlIGR1bXAgaWYgaWxsZWdhbCBzY3JlZW5JZCBzcGVjaWZp ZWQgdG8gVGNsIHJvdXRpbmUuDQorKwkrIEFkZCBnZXQvc2V0IG1hcmsgaW50ZXJmYWNlIHRvIFRj bCBJbnRlcnByZXRlciBpbnRlcmZhY2UuDQorKwkrIEZpeCBjb3JlIGR1bXAgaWYgZmlsZSBleHBh bnNpb24gY29kZSBzdHJlc3NlZCAocmU6IGZpbGVjIGVkaXQgb3B0aW9uKQ0KKysJKyBGaXggYnVn IHdoZXJlIGZpbHRlciBjb21tYW5kcyBpbiBlbXB0eSBmaWxlcyBjb3VsZG4ndCBmaW5kIGxpbmUg MC4NCisrCSsgU3dpdGNoIHRvIEdOVSBhdXRvY29uZiAyLjcgZm9yIGNvbmZpZ3VyYXRpb24sIGRl bGV0ZSBudmkvUE9SVC4NCisrCSAgTWFueSByYW5kb20gcG9ydGFiaWxpdHkgZml4ZXMuDQorKzEu NTUgLT4gMS41NiAoMTEvMjYvOTUpDQorKwkrIEJ1ZyBmaXggcmVsZWFzZSAtLSBnZW5lcmFsbHkg YXZhaWxhYmxlIGJldGEgcmVsZWFzZS4NCisrMS41NCAtPiAxLjU1ICgxMS8xOC85NSkNCisrCSsg QnVnIGZpeCByZWxlYXNlLg0KKysJKyBJbnRlZ3JhdGUgVGNsIGludGVycHJldGVyLg0KKysxLjUz IC0+IDEuNTQgKDExLzExLzk1KQ0KKysJKyBCdWcgZml4IHJlbGVhc2UuICBBIG1ham9yIGNoYW5n ZSBpbiByZXdvcmtpbmcgdGhlIGV4IGNvbW1hbmRzLCB3aGVuDQorKwkgIGNhbGxlZCBmcm9tIHRo ZSBjb2xvbiBjb21tYW5kIGxpbmUsIHRvIG1hdGNoIGhpc3RvcmljIHByYWN0aWNlLCBhbmQNCisr CSAgcGVybWl0IHRoZW0gdG8gYmUgZW50ZXJlZCByZXBlYXRlZGx5IGFmdGVyIGV4IGhhcyB0cmFz aGVkIHRoZSBzY3JlZW4uDQorKwkrIFVzZSByZXN0YXJ0YWJsZSBlbmR3aW4oKSBmcm9tIFN5c3Rl bSBWIGN1cnNlcyB0byBpbXBsZW1lbnQgc2NyZWVuDQorKwkrIHN1c3BlbmQuDQorKzEuNTIgLT4g MS41MyAoMTAvMjkvOTUpDQorKwkrIFN3aXRjaCB0byB1c2luZyB2ZW5kb3IncyBjdXJzZXMgbGli cmFyeSBmb3IgYWxsIHBvcnRzLg0KKysJKyBCYWNrIG91dCB0aGUgZXZlbnQgZHJpdmVuIHZlcnNp b24sIGxlYXZpbmcgc2NyZWVuIHNlcGFyYXRpb24uDQorKwkrIFVzZXIgY29uZmlndXJhdGlvbiBv ZiA8ZXNjYXBlPiB0aW1lb3V0ICh0aGUgZXNjYXBldGltZSBlZGl0IG9wdGlvbikuDQorKwkrIEFk ZCBUY2wvVGsgc2NyZWVuIHN1cHBvcnQuDQorKwkrIEFkZCBmaWxlIG5hbWUgY29tcGxldGlvbiAo dGhlIGZpbGVjIGVkaXQgb3B0aW9uKS4NCisrCSsgRGlzYWxsb3cgYWNjZXNzIHRvIG91dHNpZGUg YXBwbGljYXRpb25zICh0aGUgc2VjdXJlIGVkaXQgb3B0aW9uKS4NCisrMS41MSAtPiAxLjUyICg3 LzI2Lzk1KQ0KKysJKyBNaW5vciBjbGVhbnVwcywgc25hcHNob3R0ZWQgZm9yIFNNSS4NCisrMS41 MCAtPiAxLjUxICg3LzA1Lzk1KQ0KKysJKyBMb3RzIGFuZCBsb3RzIG9mIGNoYW5nZXMgZm9yIGV2 ZW50IGRyaXZlbiBtb2RlbCwgbGFyZ2VseSBpbiBtb3ZpbmcNCisrCSAgdGhlIGJvdW5kYXJ5IGJl dHdlZW4gdGhlIHNjcmVlbiBjb2RlIGFuZCB0aGUgZWRpdG9yIHVwIGFuZCBkb3duLg0KKysJICBQ cml2YXRlIHJlbGVhc2UgZm9yIFJvYiBaaW1tZXJtYW5uIEAgVGFydGFuIGFuZCBCaWxsIFNoYW5u b24gQCBTTUkuDQorKzEuNDkgLT4gMS41MCBGcmkgSnVuICA5IDEzOjU2OjE3IDE5OTUNCisrCSsg TWlub3IgYnVnIGZpeGVzIGZvciBzdGFiaWxpdHkuDQorKwkrIENvbnZlcnQgdG8gYW4gZXZlbnQg ZHJpdmVuIG1vZGVsLCB3aXRoIHRoZSB1c3VhbCBOYWNob3MgU3VwcmVtZQ0KKysJICBsYXllcmlu ZyB0aGF0IHJlc3VsdHMuICBUaGlzIGlzIGEgY29tcGxldGVseSBuZXcgdmVyc2lvbiwgbm90aGlu Zw0KKysJICBkb25lIHByZXZpb3VzbHkgbWF0dGVycyBhbnkgbW9yZS4NCisrMS40OCAtPiAxLjQ5 IFdlZCBNYXIgIDggMTA6NDI6MTcgMTk5NQ0KKysJKyBDaGFuZ2VzIGluIDEuNDYgYnJva2UgXkEg cHJvY2Vzc2luZy4NCisrCSsgQWRkIDpwcmV2aW91cyB0byBzcGxpdCBzY3JlZW4gY29tbWFuZHMu DQorKwkrIExvdHMgbycgcmFuZG9tIGJ1ZyBmaXhlcyAtLSBwYXNzZXMgcHVyaWZ5IHRlc3Rpbmcg YWdhaW4uDQorKzEuNDcgLT4gMS40OCBUaHUgRmViICA5IDE4OjEzOjI5IDE5OTUNCisrCSsgUmFu ZG9tIGJ1ZyBmaXhlcyBmb3IgMS40Ny4NCisrCSsgTW92ZSB0aGUgRlJFRiAoZmlsZSBzdHJ1Y3R1 cmUpIGxpc3Qgb3V0IG9mIHRoZSBzY3JlZW4gYW5kIGludG8NCisrCSAgdGhlIGdsb2JhbCBhcmVh Lg0KKysJKyBDaGFuZ2Ugc2VtYW50aWNzIHRvIDpFIHRvIG1vcmUgY2xvc2VseSBtYXRjaCA6ZSAt LSAiOkUiIGpvaW5zDQorKwkgIHRoZSBjdXJyZW50IGZpbGUsIHNvICI6RSAvdG1wIiBpcyBub3cg dGhlIGNvbW1hbmQgdG8gbWF0Y2ggdGhlDQorKwkgIGhpc3RvcmljICI6c3BsaXQiLg0KKysxLjQ2 IC0+IDEuNDcgV2VkIEZlYiAgOCAxOTo0Mzo0MSAxOTk1DQorKwkrIEFsbCBleCBjb21tYW5kcyAo aW5jbHVkaW5nIHZpc3VhbCBhbmQgZXhjbHVkaW5nIGdsb2JhbCBhbmQgdikNCisrCSAgYXJlIG5v dyBzdXBwb3J0ZWQgaW5zaWRlIGV4IGdsb2JhbCBjb21tYW5kcy4NCisrCSsgUmV3b3JrIHRoZSBh cHBlbmQvY2hhbmdlL2luc2VydCBjb21tYW5kcyB0byBtYXRjaCBoaXN0b3JpYw0KKysJICBwcmFj dGljZSBmb3IgdGV4dCBhcHBlbmRlZCB0byB0aGUgZXggY29tbWFuZCBsaW5lLCBhbmQgaW5zaWRl DQorKwkgIG9mIGV4IGdsb2JhbCBjb21tYW5kcy4NCisrCSsgUmVzdHJ1Y3R1cmUgdG8gbWFrZSBz aW5nbGUtbGluZSBzY3JlZW5zIHdvcmsuDQorKwkrIFJlc3RydWN0dXJlIHRvIGNyZWF0ZSBjdXJz ZXMgaW5kZXBlbmRlbnQgc2NyZWVuIHJvdXRpbmVzLg0KKysJKyBSZXN0cnVjdHVyZSB0byBwZXJt aXQgRWRpdCwgTmV4dCwgYW5kIFRhZyByb3V0aW5lcyB0byBjcmVhdGUgbmV3DQorKwkgIHNjcmVl bnMgb24gdGhlIGZseS4NCisrCSsgQ2hhbmdlIGhleGFkZWNpbWFsIG91dHB1dCB0byBiZSBceCMj IGluc3RlYWQgb2YgMHgjIy4NCisrCSsgQ2hhbmdlIGV4IGNvbW1hbmRzIHJ1biBmcm9tIHZpIHRv IHN0YXkgaW4gdmkgbW9kZSBmb3IgYXMgbG9uZyBhcw0KKysJICBwb3NzaWJsZSwgaS5lLiB1bnRp bCBleCBtb2RpZmllcyB0aGUgc2NyZWVuIG91dHNpZGUgb2YgdGhlIGVkaXRvci4NCisrMS40NSAt PiAxLjQ2IFR1ZSBKYW4gMjQgMTA6MjI6MjcgMTk5NQ0KKysJKyBSZXN0cnVjdHVyZSB0byBidWls ZCBhcyBhIGxpYnJhcnkuDQorKzEuNDQgLT4gMS40NSBUaHUgSmFuIDEyIDIxOjMzOjA2IDE5OTUN CisrCSsgRml4IHJlbGF0aXZlIGN1cnNvciBtb3Rpb24gdG8gaGFuZGxlIGZvbGRlZCBsaW5lcy4N CisrCSsgUmVjb21waWxlIHRoZSBzZWFyY2ggcGF0dGVybiBpZiBhcHBsaWNhYmxlIGVkaXQgb3B0 aW9ucyBjaGFuZ2UuDQorKwkrIENoYW5nZSArLy1jIGNvbW1hbmQgb3JkZXJpbmcgdG8gbWF0Y2gg aGlzdG9yaWMgcHJhY3RpY2UuDQorKwkrIFJld29yayBhdXRvaW5kZW50IGNvZGUgdG8gYWx3YXlz IHJlc29sdmUgcHJlY2VlZGluZyA8Ymxhbms+DQorKwkgIGNoYXJhY3RlcnMgd2hlbiBhIF5UIG9y IF5EIGFyZSBlbnRlcmVkLg0KKysJKyBBZGQgdGhlIHByaW50L25vcHJpbnQgZWRpdCBvcHRpb25z LCBzbyBjYW4gbm93IHNwZWNpZnkgaWYNCisrCSAgYSBjaGFyYWN0ZXIgaXMgcHJpbnRhYmxlLg0K KysJKyBDaGFuZ2UgZXggdG8gcnVuIGluIGNhbm9uaWNhbCBtb2RlLg0KKysJKyBGaXggZXggdGV4 dCBpbnB1dCB0byBzdXBwb3J0IHRoZSBudW1iZXIgZWRpdCBvcHRpb24uDQorKwkrIFZpIHRleHQg aW5wdXQgZml4IGZvciB0aGUgUiBjb21tYW5kIHRvIGNvcnJlY3RseSByZXN0b3JlDQorKwkgIGNo YXJhY3RlcnMgZW50ZXJlZCBhbmQgdGhlbiBiYWNrc3BhY2VkIG92ZXIuDQorKwkrIFNldmVyYWwg dmkgaW5jcmVtZW50IGNvbW1hbmQgZml4ZXMuDQorKzEuNDMgLT4gMS40NA0KKysJKyBCdWcgZml4 LCB2aSB3YXMgcHJpbnRpbmcgdGhlIGxhc3QgbGluZSBudW1iZXIgb24gdGhlIHN0YXR1cyBsaW5l DQorKwkgIGF0IHN0YXJ0dXAuICBDaGFuZ2UgdG8gZXhlY3V0ZSBjb21tYW5kcyBhdCBmaXJzdCBs aW5lIHNldCwgaS5lLg0KKysJICAidmkgLXQgdGFnIC1jIGNtZCIgZXhlY3V0ZXMgY21kIGF0IHRo ZSB0YWcgbGluZSwgbm90IEVPRi4NCisrMS40MiAtPiAxLjQzIFNhdCBEZWMgIDMgMTM6MTE6MzIg MTk5NA0KKysJKyBNYXJrcywgU3VuT1Mgc2lnbmVkIGNvbXBhcmlzb24gZml4IGZvciAxLjQyLg0K KysxLjQxIC0+IDEuNDIgRnJpIERlYyAgMiAyMDowODoxNiAxOTk0DQorKwkrIE1ha2UgYXV0b3dy aXRlIHJlcXVpcmUgdGhlIGZpbGUgbm90IGJlIHJlYWQtb25seS4NCisrCSsgTWFrZSB0aGUgZXgg aW5zZXJ0IGNvbW1hbmQgd29yayBpbiBlbXB0eSBmaWxlcy4NCisrCSsgVGFiIGV4cGFuc2lvbiBp cyBubyBsb25nZXIgbGltaXRlZCB0byB2YWx1ZXMgPCAyMCAod2hpY2ggbWF0Y2hlcw0KKysJICBo aXN0b3JpY2FsIHByYWN0aWNlKS4NCisrCSsgU2ltcGxpZnkgKGFuZCBmaXggbGltaXQgZGV0ZWN0 aW9uIGZvcikgdGhlICMgY29tbWFuZC4gIEl0J3Mgbm8NCisrCSAgbG9uZ2VyIHBvc3NpYmxlIHRv IHVzZSB0aGUgIyBjb21tYW5kIGl0c2VsZiB0byByZXBlYXQgb3IgbW9kaWZ5DQorKwkgIGEgcHJl dmlvdXMgIyBjb21tYW5kLCAnLicgaXMgdGhlIG9ubHkgcG9zc2liaWxpdHkuDQorKwkrIExvdHMg bW9yZSByZXdvcmtpbmcgb2YgdGhlIGV4IGFkZHJlc3NlcywgcHV0dGluZyA/IGFuZCAvIGludG8N CisrCSAgdGhlIGV4IGFkZHJlc3NpbmcgY29kZSBicm9rZSB0aGUgd29ybGQuDQorKwkrIE1ha2Ug dGhlIFB1dCwgUHJlc2VydmUgYW5kIFByaW50IGNvbW1hbmRzIHdvcmsgKGRvbid0IGFzaykuDQor KwkrIFNwbGl0IHN0ZG91dC9zdGRlcnIgZnJvbSBzaGVsbCBleHBhbnNpb25zOyBzdGRvdXQgaXMg ZXhwYW5zaW9uDQorKwkgIHRleHQsIHN0ZGVyciBpcyBlbnRlcmVkIG9uIHRoZSBtZXNzYWdlIHF1 ZXVlLg0KKysxLjQwIC0+IDEuNDEgRnJpIE5vdiAxOCAxNjoxMzo1MiAxOTk0DQorKwkrIEFkZGl0 aW9uIG9mIGEgcG9ydCBmb3IgQVVYIDMuMQ0KKysJKyBBZGRpdGlvbiBvZiBhIG1lc3NhZ2UgY2F0 YWxvZyBmb3IgUnVzc2lhbi4NCisrCSsgTWFrZSB2aSA/IGFuZCAvIGNvbW1hbmRzIGJlIHRydWUg ZXggYWRkcmVzc2VzIChoaXN0b3JpYyBwcmFjdGljZSkuDQorKwkrIERpc3BsYXkgdGhlIGRhdGUg Zmlyc3QgaW4gdmkgLXIgcmVjb3ZlcnkgbGlzdC4NCisrMS4zOSAtPiAxLjQwIE1vbiBOb3YgMTQg MTA6NDY6NTYgMTk5NA0KKysJKyBUd28gYnVnIGZpeGVzIGZvciAxLjM5OyAtciBvcHRpb24gYW5k IHZfY2hhbmdlIGNvcmUgZHVtcC4NCisrMS4zOCAtPiAxLjM5IFN1biBOb3YgMTMgMTg6MDQ6MDgg MTk5NA0KKysJKyBFeCBzdWJzdGl0dXRpb24gd2l0aCBjb25maXJtYXRpb24gbm93IG1hdGNoZXMg aGlzdG9yaWMgcHJhY3RpY2UNCisrCSAgKGV4Y2VwdCB0aGF0IGl0IHN0aWxsIHJ1bnMgaW4gcmF3 IG1vZGUsIG5vdCBjb29rZWQpLg0KKysJKyBOdmkgbm93IGNsZWFycyB0aGUgc2NyZWVuIGJlZm9y ZSBwYWludGluZywgaWYgcmVwYWludGluZyB0aGUNCisrCSAgZW50aXJlIHNjcmVlbi4NCisrCSsg Rml4IGZpbmFsIGN1cnNvciBwb3NpdGlvbiBmb3IgcHV0IGNvbW1hbmQgZW50ZXJpbmcgdGV4dCBp biBhDQorKwkgIHNpbmdsZSBsaW5lLg0KKysJKyBDaGFuZ2UgdG8gYnJlYWsgZXJyb3IgbWVzc2Fn ZSBsaW5lcyBvbiB0aGUgbGFzdCA8Ymxhbms+IGluIHRoZQ0KKysJICBsaW5lLg0KKysJKyBBbHdh eXMgY2VudGVyIHRoZSBjdXJyZW50IGxpbmUgd2hlbiByZXR1cm5pbmcgdG8gYSBwcmV2aW91c2x5 DQorKwkgIGVkaXRlZCBmaWxlIG9yIG1vdmluZyB0byBhIHRhZyBsaW5lIHRoYXQncyBub3Qgdmlz aWJsZSBvbiB0aGUNCisrCSAgc2NyZWVuLg0KKysJKyBDaGFuZ2Ugd3JpdGUgb2YgdGhlIGN1cnJl bnQgZmlsZSB1c2luZyBhbiBleHBsaWNpdCBuYW1lIG9yICUgdG8NCisrCSAgbWF0Y2ggdGhlIHNl bWFudGljcyBvZiA6dzxDUj4sIG5vdCA6dyBmaWxlPENSPi4NCisrCSsgQWRkIGNvbW1hbmQgYWxp YXNlcyB0byB2aSwgYW5kIHJlbWFwIDYgaGlzdG9yaWMgY29tbWFuZHMgdG8gdGhlaXINCisrCSAg aGlzdG9yaWMgY291bnRlcnBhcnRzOiBELT5kJCwgWS0+eV8sIFMtPmNfLCBDLT5jJCwgQS0+JGEs IEktPl5pLg0KKysJKyBNYXRjaCBvcHRpb24gZGlzcGxheSB0byBoaXN0b3JpYyBwcmFjdGljZTsg aWYgYm9vbGVhbiBvciBudW1lcmljDQorKwkgIG9wdGlvbnMgY2hhbmdlZCB0byBkZWZhdWx0IHZh bHVlcywgbm90IGRpc3BsYXllZCBieSBkZWZhdWx0Lg0KKysJICBOdmkgdHJlYXRzIHN0cmluZyBv cHRpb25zIHRoZSBzYW1lIHdheSwgdmkgYWx3YXlzIGRpc3BsYXllZCBhbnkNCisrCSAgc3RyaW5n IG9wdGlvbiB0aGF0IHdhcyBjaGFuZ2VkLg0KKysJKyBBZGRlZCBsb2NrIGVkaXQgb3B0aW9uLCBp ZiBub3Qgc2V0LCBubyBmaWxlIGxvY2tpbmcgaXMgZG9uZS4NCisrCSsgUmV3b3JrIGV4IHRvIHBl cm1pdCBhbnkgZXggY29tbWFuZCBpbiB0aGUgRVhJTklUIHZhcmlhYmxlIG9yDQorKwkgIGV4cmMg c3RhcnR1cCBmaWxlcy4gIFRoaXMgZml4ZXMgdGhlIGJ1ZyB3ZXJlIGB2aSArMTAwIGZpbGUnDQor KwkgIHBhaW50ZWQgdGhlIHNjcmVlbiBhbmQgdGhlbiBtb3ZlZCB0byBsaW5lIDEwMCBhbmQgcmVw YWludGVkLg0KKysJICAoWWFua2VkIHRvIFNDQ1MgSUQgOS4xLikNCisrCSsgQnVnIGZpeDogY291 bGQgcmVwb3J0IGZpbGUgbW9kaWZpZWQgbW9yZSByZWNlbnRseSB0aGFuIGl0IHdhcw0KKysJICB3 cml0dGVuLCBpbmNvcnJlY3RseS4NCisrCSsgU2VhcmNoIGZpeDogaGlzdG9yaWNhbGx5LCBtb3Rp b25zIHdpdGggZGVsdGFzIHdlcmUgbm90IGNvcnJlY3RlZA0KKysJICB0byB0aGUgcHJldmlvdXMv bmV4dCBsaW5lIGJhc2VkIG9uIHRoZSBzdGFydGluZy9zdG9wcGluZyBjb2x1bW4uDQorKwkrIEFk ZHJlc3NpbmcgZml4ZXM6IG1ha2UgdHJhaWxpbmcgbm9uLWV4aXN0ZW50IGFkZHJlc3NlcyB3b3Jr LCBjaGFuZ2UNCisrCSAgJSB0byBiZSB0ZXh0IHN1YnN0aXR1dGlvbiwgbm90IGEgdW5pcXVlIGFk ZHJlc3MgKHRvIGZvbGxvdyBmdXR1cmUNCisrCSAgUE9TSVgpLg0KKysxLjM3IC0+IDEuMzggTW9u IE9jdCAyNCAxMjo1MTo1OCAxOTk0DQorKwkrIFNjcm9sbGluZyBmaXg7IF5CIGNhbiBtb3ZlIHRv IG5vbmV4aXN0ZW50IGxpbmVzLg0KKysJKyBGaXggdG8gdmkgbWFwcGVkIGNvbW1hbmRzOyA8ZXNj YXBlPiBjaGFyYWN0ZXJzIHdoaWxlIGFscmVhZHkgaW4NCisrCSAgY29tbWFuZCBtb2RlIGRpZCBu b3QgaGlzdG9yaWNhbGx5IGNhdXNlIHRoZSBtYXBwZWQgY2hhcmFjdGVycyB0bw0KKysJICBiZSBm bHVzaGVkLg0KKysJKyBBZGQgdGhlIGJhY2t1cCBlZGl0IG9wdGlvbiwgYXV0b21hdGljYWxseSB2 ZXJzaW9uIGVkaXQgZmlsZXMuDQorKwkrIE1ha2UgaXQgcG9zc2libGUgdG8gZWRpdCBmaWxlcyB0 aGF0IGRiIGNhbid0IHJlYWQsIGkuZS4gZWRpdCBhDQorKwkgIHRlbXBvcmFyeSBmaWxlLCB3aXRo IHRoZSBjb3JyZWN0IGZpbGUgbmFtZS4NCisrCSsgT25seSBhbmNob3IgdGhlIGxhc3QgbGluZSBv ZiB0aGUgZmlsZSB0byB0aGUgYm90dG9tIGxpbmUgb2YgdGhlDQorKwkgIHNjcmVlbiBpZiB0aGVy ZSdzIGhhbGYgb3IgbGVzcyBvZiBhIHNjcmVlbiBiZXR3ZWVuIHRoZSB0YXJnZXQNCisrCSAgbGlu ZSBhbmQgdGhlIGVuZCBvZiB0aGUgZmlsZS4NCisrCSsgRml4IHdyYXBtYXJnaW4gdGV4dCBhbGxv Y2F0aW9uIGJ1Zy4NCisrCSsgRml4IGV4IHB1dCBjb21tYW5kIHRvIHdvcmsgaW4gYW55IGVtcHR5 IGZpbGUuDQorKwkrIEZpeCBnbG9iYWwgY29tbWFuZCB0byBoYW5kbGUgbW92ZSdzIHRvIGxpbmUg MCBjb3JyZWN0bHkuDQorKwkrIFJlZ3VsYXJpemUgdGhlIHlhbmsgY3Vyc29yIG1vdGlvbnMsIHNl dmVyYWwgYnVnIGZpeGVzIGZvciBoaXN0b3JpYw0KKysJICBwcmFjdGljZS4NCisrCSsgRml4IE4g YW5kIG4sIHdoZW4gdXNlZCBhcyBhIG1vdGlvbiBjb21tYW5kIGZvciB0aGUgISBjb21tYW5kLA0K KysJICByZXBlYXQgdGhlIGxhc3QgYmFuZyBjb21tYW5kIGluc3RlYWQgb2YgcHJvbXB0aW5nIGZv ciBhIG5ldw0KKysJICBvbmUuDQorKwkrIFRpbWVvdXQgbWFwcyBiZWdpbm5pbmcgd2l0aCA8ZXNj YXBlPiBxdWlja2x5LCBpbnN0ZWFkIG9mIGJhc2VkDQorKwkgIG9uIHRoZSBrZXl0aW1lIG9wdGlv bi4NCisrCSsgQnVnIGZpeCBmb3Igd3JhcGxlbiBvcHRpb24sIHdhc24ndCB0cmlnZ2VyZWQgZm9y IGlucHV0IGNvbW1hbmRzLg0KKysxLjM2IC0+IDEuMzcgU3VuIE9jdCAgOSAxOTowMjo1MyAxOTk0 DQorKwkrIENoYW5nZSBQT1JUIGRpcmVjdG9yaWVzIHRvIGluc3RhbGwgcGF0Y2hlcyBiZWZvcmUg ZGlzdHJpYnV0aW9uLg0KKysJKyBGaXggXkEgdG8gc2V0IHNlYXJjaCBkaXJlY3Rpb24gYW5kIHBh dHRlcm4gZm9yIGNvbnNpc3RlbmN5Lg0KKysJKyBGb2xkIHRoZSBzaG93ZGlydHkgb3B0aW9uIGlu dG8gdGhlIHNob3dtb2RlIG9wdGlvbi4NCisrCSsgRXggYWRkcmVzc2luZyBmaXg6IGNoYW5nZSBz ZWFyY2ggb2Zmc2V0IGFuZCBsaW5lIGFyZ3VtZW50cyAoZS5nLg0KKysJICB0aGUgY29weSBjb21t YW5kKSB0byBiZSBleCBhZGRyZXNzaW5nIG9mZnNldHMsIG1hdGNoaW5nIGhpc3RvcmljDQorKwkg IHByYWN0aWNlLg0KKysJKyBFeCBhZGRyZXNzaW5nIGZpeDogc3VwcG9ydCBeIGFzIGFuIG9mZnNl dC9mbGFnIGVxdWl2YWxlbnQgdG8gLS4NCisrCSsgRXggYWRkcmVzc2luZyBmaXg6IGhpc3Rvcmlj YWxseSwgYW55IG1pc3NpbmcgYWRkcmVzcyBkZWZhdWx0ZWQgdG8NCisrCSAgZG90LCBlLmcuICI0 LCwsIiB3YXMgdGhlIHNhbWUgYXMgIi4sLiIuDQorKwkrIEV4IGFkZHJlc3NpbmcgZml4OiBoaXN0 b3JpY2FsbHksIDxibGFuaz4gc2VwYXJhdGVkIG51bWJlcnMgd2VyZQ0KKysJICBhZGRpdGl2ZSwg ZS5nLiAiMyA1cCIgZGlzcGxheWVkIGxpbmUgOC4NCisrCSsgRXggYWRkcmVzc2luZyBmaXg6IG1h a2UgJzsnIGFzIGEgcmFuZ2UgZGVsaW1pdGVyIG1hdGNoIGhpc3RvcmljDQorKwkgIHByYWN0aWNl Lg0KKysJKyBDaGFuZ2UgbnZpIHRvIGV4aXQgaW1tZWRpYXRlbHkgaWYgc3Rkb3V0IGlzbid0IGEg dGVybWluYWwuDQorKwkrIENoYW5nZSBhbHRlcm5hdGUgZmlsZSBuYW1lIGJlaGF2aW9yIHRvIG1h dGNoIGhpc3RvcmljIHByYWN0aWNlLA0KKysJICBtYWtlIHRoZSA6d3JpdGUgY29tbWFuZCBzZXQg dGhlIGN1cnJlbnQgZmlsZSBuYW1lLg0KKysJKyBUZXh0IGlucHV0IGZpeDsgaW5wdXQga2V5cyBm cm9tIGEgbWFwLCB3aXRoIGFuIGFzc29jaWF0ZWQgY291bnQsDQorKwkgIHdlcmVuJ3QgaGlzdG9y aWNhbGx5IGFmZmVjdGVkIGJ5IHRoZSB3cmFwbWFyZ2luIHZhbHVlLg0KKysJKyBBZGQgd3JhcGxl biBvcHRpb24sIHNhbWUgYXMgd3JhcG1hcmdpbiwgYnV0IGZyb20gdGhlIGxlZnQtaGFuZA0KKysJ ICBjb2x1bW4sIG5vdCB0aGUgcmlnaHQuDQorKwkrIE1ha2UgZXggYWRkcmVzcyAuPG51bWJlcj4g YmUgZXF1aXZhbGVudCB0byAuKzxudW1iZXI+LCBpLmUuIHRoZQ0KKysJICAnKycgaXMgdW5kZXJz dG9vZDsgbWF0Y2hlcyBoaXN0b3JpYyBwcmFjdGljZSwgYW5kIGl0J3Mgd2lkZWx5DQorKwkgIGRv Y3VtZW50ZWQgZm9yIGVkKDEpLg0KKysJKyBJbnB1dCBtb2RlIF5WXkogaGlzdG9yaWNhbGx5IG1h cHBlZCBpbnRvIGEgc2luZ2xlIF5KLg0KKysJKyBNaW5vciBjYXRhbG9nIGNoYW5nZXMsIGZpeGVz OyBkb24ndCB1c2UgJ3MnIHRvIHBsdXJhbGl6ZSB3b3Jkcy4NCisrMS4zNSAtPiAxLjM2IFRodSBT ZXAgIDggMDg6NDA6MjUgMTk5NA0KKysJKyBEb24ndCBvdmVyd3JpdGUgdXNlcidzIG1hcHMgd2l0 aCBzdGFuZGFyZCAodGVybWNhcCkgbWFwcGluZ3MuDQorKwkrIE1ha2UgXCBlc2NhcGUga2lsbCBh bmQgZXJhc2UgY2hhcmFjdGVycyBpbiB2aSB0ZXh0IGlucHV0IG1vZGUuDQorKwkrIEZpeCBeRCBh dXRvaW5kZW50IGJ1ZyBieSByZXNvbHZpbmcgbGVhZGluZyA8Ymxhbms+cyBhdCBeRC4NCisrCSsg UmV3b3JrIGFiYnJldmlhdGlvbiB0ZXN0cyAoYWdhaW4hKSB0byBtYXRjaCBoaXN0b3JpYyBwcmFj dGljZS4NCisrCSsgQ2hhbmdlIF5EL15VIGRlZmF1bHQgc2Nyb2xsaW5nIHZhbHVlIHRvIGJlIGJh c2VkIG9uIHdpbmRvdyBvcHRpb24NCisrCSAgdmFsdWUsIG5vdCBzY3JlZW4gbGluZXMsIGNvcnJl Y3Qgc2Nyb2xsaW5nIG9wdGlvbiB2YWx1ZSwgYm90aCB0bw0KKysJICBtYXRjaCBoaXN0b3JpYyBw cmFjdGljZS4gIE5PVEU6IFN5c3RlbSBWIGRvZXMgdGhpcyBkaWZmZXJlbnRseSENCisrMS4zNCAt PiAxLjM1IFdlZCBBdWcgMzEgMTk6MjA6MTUgMTk5NA0KKysJKyBBZGQgdGhlIGhpc3RvcmljIC1s IG9wdGlvbi4NCisrCSsgTWVzc2FnZSBjYXRhbG9ncy4NCisrCSsgRGlzcGxheSBnbG9iYWwgbWVz c2FnZXMgYXQgZWFjaCBmbHVzaCwganVzdCBpbiBjYXNlIHNvbWUgYXJlIHRoZXJlLg0KKysJKyBG aXggZ2xvYmFsIHN1YnN0aXR1dGUgY29kZSwgYFxcJyB3YXNuJ3QgaGFuZGxlZCBjb3JyZWN0bHku DQorKwkrIEZpeCBhYmJyZXZpYXRpb24gY29kZSB0byB1c2UgPGJsYW5rPnMgYXMgdGhlIHByZWNl ZGluZyBjaGFyYWN0ZXIuDQorKwkrIEZpeCBydWxlciB0byBkaXNwbGF5IGxvZ2ljYWwgY29sdW1u LCBub3QgcGh5c2ljYWwgY29sdW1uLg0KKysJKyBCbG9jayBzaWduYWxzIHdoZW4gdXNlciBpc3N1 ZXMgOnByZXNlcnZlIGNvbW1hbmQsIHNvIG5vIHJhY2UgY2F1c2VkDQorKwkgIGJ5IFNJR0hVUC9T SUdURVJNLg0KKysxLjMzIC0+IDEuMzQgV2VkIEF1ZyAxNyAxNDozNzozMiAxOTk0IChQVUJMSUNM WSBBVkFJTEFCTEUgVkVSU0lPTikNCisrCSsgQmFjayBvdXQgc2Njc2lkIHN0cmluZyBmaXgsIGl0 IHdvbid0IHdvcmsgb24gU3VuT1MgNC4xLg0KKysxLjMyIC0+IDEuMzMgV2VkIEF1ZyAxNyAwOToz MTo0MSAxOTk0IChQVUJMSUNMWSBBVkFJTEFCTEUgVkVSU0lPTikNCisrCSsgR2V0IGJhY2sgNUsg b2YgZGF0YSBzcGFjZSBmb3IgdGhlIHNjY3NpZCBzdHJpbmdzLg0KKysJKyBGaXggYnVnIHdoZXJl IGNHIGZpeCBpbiB2ZXJzaW9uIDEuMzEgYnJva2UgY3cgY3Vyc29yIHBvc2l0aW9uaW5nDQorKwkg IHdoZW4gdGhlIGNoYW5nZSBjb21tYW5kIGV4dGVuZGVkIHRoZSBsaW5lLg0KKysJKyBGaXggY29y ZSBkdW1wIGluIG1hcC9zZXEgY29kZSBpZiBjaGFyYWN0ZXIgbGFyZ2VyIHRoYW4gNyBiaXRzLg0K KysJKyBCbG9jayBzaWduYWxzIHdoZW4gbWFuaXB1bGF0aW5nIHRoZSBTQ1IgY2hhaW5zLg0KKysJ KyBGaXggbWVtb3J5IGFsbG9jYXRpb24gZm9yIG1hY2hpbmVzIHdpdGggbXVsdGlwbGUgcG9pbnRl ciBzaXplcy4NCisrMS4zMSAtPiAxLjMyIE1vbiBBdWcgMTUgMTQ6Mjc6NDkgMTk5NA0KKysJKyBU dXJuIG9mZiByZWNubyBtbWFwIGNhbGwgZm9yIFNvbGFyaXMgMi40L1N1bk9TIDUuNC4NCisrMS4z MCAtPiAxLjMxIFN1biBBdWcgMTQgMTM6MTM6MzUgMTk5NA0KKysJKyBGaXggYnVnIHdlcmUgY0cg b24gdGhlIGxhc3QgbGluZSBvZiBhIGZpbGUgd2Fzbid0IGRvbmUgaW4gbGluZSBtb2RlLA0KKysJ ICBhbmQgd2hlcmUgdGhlIGN1cnNvciB3YXNuJ3QgcG9zaXRpb25lZCBjb3JyZWN0bHkgYWZ0ZXIg ZXhpdGluZyB0ZXh0DQorKwkgIGluc2VydCBtb2RlLg0KKysJKyBBZGQgdGVybWNhcCB3b3JrYXJv dW5kIHRvIG1ha2UgZnVuY3Rpb24ga2V5cyBncmVhdGVyIHRoYW4gOSB3b3JrDQorKwkgIGNvcnJl Y3RseSAob3IgZmFpbCBpZiBvbGQtc3R5bGUgdGVybWNhcCBzdXBwb3J0KS4NCisrCSsgQ2hhbmdl IGV4L3ZpIHRvIG5vdCBmbHVzaCBtYXBwZWQga2V5cyBvbiBlcnJvciAtLSB0aGlzIGlzIGhpc3Rv cmljDQorKwkgIHByYWN0aWNlLCBhbmQgcGVvcGxlIGRlcGVuZGVkIG9uIGl0Lg0KKysJKyBSZXdv cmsgdmkgcGFyc2VyIHNvIHRoYXQgbm8gY29tbWFuZCBpbmNsdWRpbmcgYSBtYXBwZWQga2V5IGV2 ZXINCisrCSAgYmVjb21lcyB0aGUgJy4nIGNvbW1hbmQsIG1hdGNoaW5nIGhpc3RvcmljIHByYWN0 aWNlLg0KKysJKyBNYWtlIDxlc2NhcGU+IGNhbmNlbGxhdGlvbiBpbiB0aGUgdmkgcGFyc2VyIG1h dGNoIFBPU0lYIDEwMDMuMi4NCisrCSsgRml4IGN1cnNlcyBidWcgd2hlcmUgc3RhbmRvdXQgc3Ry aW5nIHdhcyB3cml0dGVuIGZvciBlYWNoIHN0YW5kb3V0DQorKwkgIGNoYXJhY3RlciwgYW5kIHdo ZXJlIHN0YW5kb3V0IG1vZGUgd2FzIG5ldmVyIGV4aXRlZCBleHBsaWNpdGx5Lg0KKysJICBGaXgg YnVncyBpbiBjdXJzZXMgU0Yvc2YgYW5kIFNSL3NyIHNjcm9sbGluZywgYXMgc2VlbiBvbiBTdW4g YW5kDQorKwkgIHg4NiBjb25zb2xlcy4NCisrCSsgVGhlIHYvZ2xvYmFsIGNvbW1hbmRzIGV4ZWN1 dGUgdGhlIHByaW50IGNvbW1hbmQgYnkgZGVmYXVsdC4NCisrCSsgVGhlIG51bWJlciBvcHRpb24g aGlzdG9yaWNhbGx5IGFwcGxpZXMgdG8gZXggYXMgd2VsbCBhcyB2aS4NCisrMS4yOSAtPiAxLjMw IE1vbiBBdWcgIDggMTA6MzA6NDIgMTk5NA0KKysJKyBNYWtlIGZpcnN0IHJlYWQgaW50byBhIHRl bXBvcmFyeSBzZXQgdGhlIGZpbGUncyBuYW1lLg0KKysJKyBQZXJtaXQgYW55IGtleSB0byBjb250 aW51ZSBzY3JvbGxpbmcgb3IgZXggY29tbWFuZHMgLS0gdGhpcw0KKysJICBhbGxvd3Mgc3RhY2tl ZCBjb2xvbiBjb21tYW5kcywgYW5kIG1hdGNoZXMgaGlzdG9yaWMgcHJhY3RpY2UuDQorKwkrIERv bid0IG91dHB1dCBub3JtYWwgISBjb21tYW5kIGNvbW1lbnRhcnkgaW4gZXggc2lsZW50IG1vZGUu DQorKwkrIEFsbG93ICsvLSBmbGFncyBhZnRlciBzdWJzdGl0dXRlIGNvbW1hbmRzLCBtYWtlIGxp bmUgKGZsYWcpDQorKwkgIG9mZnNldHMgZnJvbSB2aSBtb2RlIG1hdGNoIGhpc3RvcmljIHByYWN0 aWNlLg0KKysJKyBSZXR1cm4gPGVvZj4gdG8gZXggaW1tZWRpYXRlbHksIGV2ZW4gaWYgcHJlY2Vk ZWQgYnkgc3BhY2VzLiAgUmV3b3JrDQorKwkgIGV4IHBhcnNlciB0byBkbyBlcmFzZSB0aGUgcHJv bXB0IGluc3RlYWQgb2YgZGVwZW5kaW5nIG9uIHRoZSBwcmludA0KKysJICByb3V0aW5lcyB0byBk byBpdC4gIE1pbm9yIGZpeGVzIHRvIHRoZSBleCBwYXJzZXIgZm9yIGRpc3BsYXkgb2YNCisrCSAg ZGVmYXVsdCBhbmQgc2Nyb2xsaW5nIGNvbW1hbmRzLiAgTU9SRSBFWCBQQVJTRVIgQ0hBTkdFUy4N CisrMS4yOCAtPiAxLjI5IEZyaSBBdWcgIDUgMTA6MTg6MDcgMTk5NA0KKysJKyBNYWtlIHRoZSBh YmJyZXZpYXRlZCBleCBkZWxldGUgY29tbWFuZCB3b3JrICg6ZGVsZS0tLSMjI2xsbCBmb3INCisr CSAgZXhhbXBsZSwgaXMgaGlzdG9yaWNhbGx5IGxlZ2FsLg0KKysJKyBXaGVuIGF1dG9wcmludCBm aXJlcywgbXVsdGlwbGUgZmxhZ3MgbWF5IGJlIHNldCwgdXNlIGV4X3ByaW50DQorKwkgIGRpcmVj dGx5IGluc3RlYWQgb2YgdGhlIHN0dWIgcm91dGluZXMuDQorKwkrIENoYW5nZSB2L2dsb2JhbCBj b21tYW5kcyB0byB0dXJuIG9mZiBhdXRvcHJpbnQgd2hpbGUgcnVubmluZy4NCisrCSsgTWlub3Ig Y2hhbmdlcyB0byBtYWtlIHRoZSAhIGNvbW1hbmQgZGlzcGxheSBtYXRjaCBoaXN0b3JpYyBvdXRw dXQuDQorKwkrIFJld29yayB0aGUgZXggcGFyc2VyIHRvIHBlcm1pdCBtdWx0aXBsZSBjb21tYW5k IHNlcGFyYXRvcnMgd2l0aG91dA0KKysJICBjb21tYW5kcyAtLSBNQUpPUiBDSEFOR0UsIGxpa2Vs eSB0byBpbnRyb2R1Y2UgYWxsIHNvcnRzIG9mIG5ldyBidWdzLg0KKysJKyBGaXggY2QgY29tbWFu ZCB0byBleHBhbmQgYXJndW1lbnQgaW4gdGhlIGNvbnRleHQgb2YgZWFjaCBlbGVtZW50DQorKwkg IG9mIHRoZSBjZHBhdGggb3B0aW9uLCBtYWtlIHJlbGF0aXZlIHBhdGhzIGFsd2F5cyByZWxhdGl2 ZSB0byB0aGUNCisrCSAgY3VycmVudCBkaXJlY3RvcnkuDQorKwkrIFJld29yayB3cml0ZS9xdWl0 IGNhc2VzIGZvciB0ZW1wb3JhcnkgZmlsZXMsIHNvIHRoYXQgdXNlcidzIGRvbid0DQorKwkgIGRp c2NhcmQgdGhlbSBhY2NpZGVudGFsbHkuDQorKwkrIENoZWNrIGZvciB3aW5kb3cgc2l6ZSBjaGFu Z2VzIHdoZW4gY29udGludWluZyBhZnRlciBhIHN1c3BlbmQuDQorKwkrIEZpeCBtZW1vcnkgcHJv YmxlbSBpbiBzdmlfc2NyZWVuLCB1c2VkIGZyZWUnZCBtZW1vcnkuDQorKwkrIENoYW5nZSB0aGUg ZXggY2hhbmdlLCBpbnNlcnQsIGFwcGVuZCBjb21tYW5kcyB0byBtYXRjaCBoaXN0b3JpYw0KKysJ ICBjdXJzb3IgcG9zaXRpb25zIGlmIG5vIGRhdGEgZW50ZXJlZCBieSB0aGUgdXNlci4NCisrCSsg Q2hhbmdlIGV4IGZvcm1hdCBmbGFncyAoIywgbCwgcCkgdG8gYWZmZWN0IGZ1dHVyZSBjb21tYW5k cywgbm90DQorKwkgIGp1c3QgdGhlIGN1cnJlbnQgb25lLCB0byBtYXRjaCBoaXN0b3JpYyBwcmFj dGljZS4NCisrCSsgTWFrZSB0aGUgdXNlcidzIEVPRiBjaGFyYWN0ZXIgYW4gYWRkaXRpb25hbCBz Y3JvbGwgY2hhcmFjdGVyIGluIGV4Lg0KKysJKyBGaXggZXggXkQgc2Nyb2xsaW5nIHRvIGJlIHRo ZSB2YWx1ZSBvZiB0aGUgc2Nyb2xsIG9wdGlvbiwgbm90IGhhbGYNCisrCSAgdGhlIHNjcmVlbi4N CisrCSsgRml4IGJ1ZmZlciBleGVjdXRpb24gdG8gbWF0Y2ggaGlzdG9yaWMgcHJhY3RpY2UgLS0g YnVncyB3aGVyZSB0aGUNCisrCSAgJyonIGNvbW1hbmQgZGlkbid0IHdvcmssIGFuZCBAPGNhcnJp YWdlLXJldHVybj4gZGlkbid0IHdvcmsuDQorKwkrIEZpeCBkb3VibGVkIHJlcG9ydGluZyBvZiBk ZWxldGVkIGxpbmVzIGluIGZpbHRlcnMuDQorKwkrIFJld29yayB0aGUgJSBgIC8gPyAoICkgTiBu IHsgYW5kIF5BIGNvbW1hbmRzIHRvIGFsd2F5cyBjdXQgaW50bw0KKysJICBudW1lcmljIGJ1ZmZl cnMgcmVnYXJkbGVzcyBvZiB0aGUgbG9jYXRpb24gb3IgbGVuZ3RoIG9mIHRoZSBjdXQuDQorKwkg IFRoaXMgbWF0Y2hlcyBoaXN0b3JpYyBwcmFjdGljZS4NCisrCSsgRml4IHRoZSB7IGNvbW1hbmQg dG8gY2hlY2sgdGhlIGN1cnJlbnQgbGluZSBpZiB0aGUgY3Vyc29yIGRvZXNuJ3QNCisrCSAgc3Rh cnQgb24gdGhlIGZpcnN0IGNoYXJhY3RlciBvZiB0aGUgbGluZS4NCisrCSsgRG8gJyEnIGV4cGFu c2lvbiBpbiB0aGUgZXggcmVhZCBjb21tYW5kIGFyZ3VtZW50cywgaXQncyBoaXN0b3JpYw0KKysJ ICBwcmFjdGljZS4gIEluIGFkZGl0aW9uLCBpdCBzZXRzIHRoZSBsYXN0ICchJyBjb21tYW5kLg0K KysxLjI3IC0+IDEuMjggV2VkIEp1bCAyNyAyMToyOToxOCAxOTk0DQorKwkrIEFkZCBzdXBwb3J0 IGZvciBzY3JvbGxpbmcgdXNpbmcgdGhlIENTIGFuZCBTRi9zZi9TUi9zciB0ZXJtY2FwDQorKwkg IHN0cmluZ3MgdG8gdGhlIDRCU0QgY3Vyc2VzLg0KKysJKyBSZXdvcmsgb2YgZ2V0a2V5KCkgaW50 cm9kdWNlZCBhIGJ1ZyB3aGVyZSBjb21tYW5kIGludGVycnVwdCBwdXQNCisrCSAgbnZpIGludG8g YW4gaW5maW5pdGUgbG9vcC4NCisrCSsgUGlwaW5nIHRocm91Z2ggYSBmaWx0ZXIgaGlzdG9yaWNh bGx5IGN1dCB0aGUgcmVwbGFjZWQgbGluZXMgaW50bw0KKysJICB0aGUgZGVmYXVsdCBidWZmZXIs IGFsdGhvdWdoIG5vdCB0aGUgbnVtZXJpYyBvbmVzLg0KKysJKyBSZWFkIG9mIGEgZmlsdGVyIGFu ZCAhISBoaXN0b3JpY2FsbHkgbW92ZWQgdG8gdGhlIGZpcnN0IG5vbmJsYW5rDQorKwkgIG9mIHRo ZSByZXN1bHRpbmcgY3Vyc29yIGxpbmUgKG1vc3Qgb2YgdGhlIHRpbWUpLg0KKysJKyBSZXdvcmsg Y3Vyc29yIG1vdGlvbiBmbGFncywgdG8gc3VwcG9ydCAnIScgYXMgYSBtb3Rpb24gY29tbWFuZC4N CisrMS4yNiAtPiAxLjI3IFR1ZSBKdWwgMjYgMTA6Mjc6NTggMTk5NA0KKysJKyBBZGQgdGhlIG1l dGEgb3B0aW9uLCB0byBzcGVjaWZ5IGNoYXJhY3RlcnMgdGhlIHNoZWxsIHdpbGwgZXhwYW5kLg0K KysJKyBGaXggdGhlIHJlYWQgY29tbWFuZCB0byBtYXRjaCBoaXN0b3JpYyBwcmFjdGljZSwgdGhl IHdoaXRlIHNwYWNlDQorKwkgIGFuZCBiYW5nIGNoYXJhY3RlcnMgd2VyZW4ndCBnZXR0aW5nIHBh cnNlZCBjb3JyZWN0bHkuDQorKwkrIENoYW5nZSBTSUdBTFJNIGhhbmRsZXIgdG8gc2F2ZSBhbmQg cmVzdG9yZSBlcnJuby4NCisrCSsgQ2hhbmdlIFN1bk9TIGluY2x1ZGUvY29tcGF0LmggdG8gaW5j bHVkZSA8dmZvcmsuaD4gc28gdGhhdCB0aGUNCisrCSAgZXgvZmlsdGVyLmMgY29kZSB3b3JrcyBh Z2Fpbi4NCisrCSsgRG9uJ3QgcHV0IGxpbmVzIGRlbGV0ZWQgYnkgdGhlIGV4IGRlbGV0ZSBjb21t YW5kIGludG8gdGhlIG51bWVyaWMNCisrCSAgYnVmZmVycywgbWF0Y2hpbmcgaGlzdG9yaWMgcHJh Y3RpY2UuDQorKwkrIEZpeDsgaWYgYXBwZW5kaW5nIHRvIGEgYnVmZmVyLCBkZWZhdWx0IGJ1ZmZl ciBoaXN0b3JpY2FsbHkgb25seQ0KKysJICByZWZlcmVuY2VzIHRoZSBhcHBlbmRlZCB0ZXh0LCBu b3QgdGhlIHJlc3VsdGluZyB0ZXh0Lg0KKysJKyBTdXBwb3J0IG11bHRpcGxlLCBzZW1pLWNvbG9u IHNlcGFyYXRlZCBzZWFyY2ggc3RyaW5ncywgYW5kICd6Jw0KKysJICBjb21tYW5kcyBhZnRlciBz ZWFyY2ggc3RyaW5ncy4NCisrCSsgTWFrZSBwcmV2aW91cyBjb250ZXh0IG1hcmsgc2V0dGluZyBt YXRjaCBoaXN0b3JpYyBwcmFjdGljZSAoc2VlDQorKwkgIGRvY3MvaW50ZXJuYWxzL2NvbnRleHQp Lg0KKysJKyBGaXggdGhlIHNldCBjb21tYW5kIHRvIHBlcm1pdCB3aGl0ZXNwYWNlIGJldHdlZW4g dGhlIG9wdGlvbiBhbmQNCisrCSAgdGhlIHF1ZXN0aW9uIG1hcmssIGZpeCBxdWVzdGlvbiBtYXJr cyBpbiBnZW5lcmFsLg0KKysJKyBGaXggYnVnIHdoZXJlIGV4IGVycm9yIG1lc3NhZ2VzIGNvdWxk IGJlIGFjY2lkZW50YWxseSBwcmVjZWRlZA0KKysJICBieSBhIHNpbmdsZSBzcGFjZS4NCisrCSsg Rml4IGJ1ZyB3aGVyZSBjdXJzZXMgcmVvcmdhbml6YXRpb24gY291bGQgbG9zZSBzY3JlZW4gc3Bl Y2lmaWMNCisrCSAgbWFwcGluZ3MgYXMgc29vbiBhcyBhbnkgc2NyZWVuIGV4aXRlZC4NCisrCSsg Rml4IGJ1ZyBpbiBwYXJhZ3JhcGggY29kZSB3aGVyZSBpbnZhbGlkIG1hY3JvcyBjb3VsZCBiZSBt YXRjaGVkLg0KKysJICBNYWtlIHBhcmFncmFwaCBtb3Rpb25zIHN0b3AgYXQgZm9ybWZlZWQgKF5M KSBjaGFyYWN0ZXJzLg0KKysJKyBDaGFuZ2UgJ2MnIHRvIG1hdGNoIGhpc3RvcmljIHByYWN0aWNl LCBpdCBjdXQgdGV4dCBpbnRvIG51bWVyaWMNCisrCSAgYnVmZmVycy4NCisrMS4yNSAtPiAxLjI2 IFR1ZSBKdWwgMTkgMTc6NDY6MjQgMTk5NA0KKysJKyBJZ25vcmUgU0lHV0lOQ0ggaWYgdGhlIHNj cmVlbiBzaXplIGlzIHVuY2hhbmdlZDsgU3VuT1Mgc3lzdGVtcw0KKysJICBkZWxpdmVyIG9uZSB3 aGVuIGEgc2NyZWVuIGlzIHVuY292ZXJlZC4NCisrCSsgRml4OiBkb24ndCBwZXJtaXQgYSBjb21t YW5kIHdpdGggYSBtb3Rpb24gY29tcG9uZW50IHRvIHdyYXAgZHVlDQorKwkgIHRvIHdyYXBzY2Fu IGFuZCByZXR1cm4gdG8gdGhlIG9yaWdpbmFsIGN1cnNvciBwb3NpdGlvbi4NCisrCSsgRml4OiBe RSB3YXNuJ3QgYmVlcGluZyB3aGVuIHJlYWNoaW5nIHRoZSBib3R0b20gb2YgdGhlIGZpbGUuDQor KwkrIEZpeCBiZy9mZyBidWcgd2hlcmUgdG1wIGZpbGUgZXhpdGluZyBjYXVzZWQgYSBOVUxMIGRl cmVmZXJlbmNlLg0KKysJKyBSZXdvcmsgZmlsZSBsb2NraW5nIGNvZGUgdG8gdXNlIGZjbnRsKDIp IGV4cGxpY2l0bHkuDQorKwkrIEZpeCBidWcgaW4gc2VjdGlvbiBjb2RlIHdoZXJlIGludmFsaWQg bWFjcm9zIGNvdWxkIGJlIG1hdGNoZWQuDQorKwkrIEZpeCBidWcgd2hlcmUgbGluZSBudW1iZXIg cmVzZXQgYnkgdmkncyBRIGNvbW1hbmQuDQorKwkrIEFkZCBleHBsaWNpdCBjaGFyYWN0ZXIgbW9k ZSBkZXNpZ25hdGlvbiB0byBjaGFyYWN0ZXIgbW9kZSBidWZmZXJzLg0KKysJKyBBZGQgPHN5cy9p b2N0bC5oPiBpbmNsdWRlIHRvIHNleC9zZXhfd2luZG93LmMsIG5lZWRlZCBieSBORVQvMg0KKysJ ICB2aW50YWdlIHN5c3RlbXMuDQorKwkrIENoYW5nZSB0byBhbHdheXMgZmx1c2ggYSBjaGFyYWN0 ZXIgZHVyaW5nIHN1c3BlbmQsIDRCU0QgY3Vyc2VzDQorKwkgIGhhcyB0aGUgb3B0aW1pemF0aW9u IHdoZXJlIGl0IGRvZXNuJ3QgZmx1c2ggYWZ0ZXIgYSBzdGFuZGVuZCgpLg0KKysJKyBGaXggYnVn IG9uIE9TRjEgd2hlcmUgPGN1cnNlcy5oPiBjaGFuZ2VzIHRoZSB2YWx1ZXMgb2YgVkVSQVNFLA0K KysJICBWS0lMTCBhbmQgVldFUkFTRSB0byBpbmNvcnJlY3Qgb25lcy4NCisrCSsgRml4IGJ1ZyB3 aGVyZSBvcHRhcmcgdXNlZCBpbmNvcnJlY3RseSBpbiBtYWluLmMuDQorKwkrIEJsb2NrIGFsbCBz aWduYWxzIHdoZW4gYWN0aW5nIG9uIGEgc2lnbmFsIGRlbGl2ZXJ5Lg0KKysJKyBGaXggcmVjb3Zl cnkgYnVnIHdoZXJlIFJDVl9FTUFJTCBjb3VsZCBmaXJlIGV2ZW4gaWYgdGhlcmUgd2Fzbid0DQor KwkgIGEgYmFja2luZyBmaWxlOyBmb3JtYXQgcmVjb3ZlcnkgbWVzc2FnZS4NCisrMS4yNCAtPiAx LjI1IFN1biBKdWwgMTcgMTQ6MzM6MzggMTk5NA0KKysJKyBTdG9wIGFsbG93aW5nIGtleWJvYXJk IHN1c3BlbmRzICheWikgaW4gaW5zZXJ0IG1vZGUsIGl0J3MgaGFyZA0KKysJICB0byBnZXQgYXV0 b3dyaXRlIGNvcnJlY3QsIGFuZCBpdCdzIG5vdCBoaXN0b3JpYyBwcmFjdGljZS4NCisrCSsgRml4 IHpeLCB6KyB0byBtYXRjaCBoaXN0b3JpYyBwcmFjdGljZS4NCisrCSsgQnVnIGluIG1lc3NhZ2Ug aGFuZGxpbmcsICJ2aSArMzUgbm9uLWV4aXN0ZW50X2ZpbGUiIGxvc3QgdGhlDQorKwkgIHN0YXR1 cyBtZXNzYWdlIGJlY2F1c2UgdGhlICIrMzUiIHB1c2hlZCBvbnRvIHRoZSBzdGFjayBlcmFzZWQN CisrCSAgaXQuICBGb3Igbm93LCBjaGFuZ2Ugc28gdGhhdCBtZXNzYWdlcyBhcmVuJ3QgZGlzcGxh eWVkIGlmIHRoZXJlDQorKwkgIGFyZSBrZXlzIHdhaXRpbmcgLS0gbWF5IG5lZWQgdG8gYWRkIGEg ImRvbid0LWVyYXNlIiBiaXQgdG8gdGhlDQorKwkgIGNoYXJhY3RlciBpbiB0aGUgc3RhY2sgaW5z dGVhZC4NCisrCSsgQnVnIGluIHN2aV9tc2dmbHVzaCgpLCB3aGVyZSBlcnJvciBtZXNzYWdlcyBj b3VsZCBjb21lIG91dCBpbg0KKysJICBub3JtYWwgdmlkZW8uDQorKzEuMjMgLT4gMS4yNCBTYXQg SnVsIDE2IDE4OjMwOjE4IDE5OTQNCisrCSsgRml4IGNvcmUgZHVtcCBpbiBleGYuYywgd2hlcmUg ZWRpdGluZyBhIG5vbi1leGlzdGVudCBmaWxlIGFuZA0KKysJICBleGl0aW5nIGNvdWxkIGNhdXNl IGFscmVhZHkgZnJlZSdkIG1lbW9yeSB0byBiZSBmcmVlJ2QuDQorKwkrIENsZWFuIHVwIG51bWVy b3VzIG1lbW9yeSBlcnJvcnMsIGNvdXJ0ZXN5IG9mIFB1cmlmeS4NCisrCSsgQ2hhbmdlIHByb2Nl c3Mgd2FpdCBjb2RlIHRvIGZhaWwgaWYgd2FpdCBmYWlscywgYW5kIG5vdCBhdHRlbXB0DQorKwkg IHRvIGludGVycHJldCB0aGUgd2FpdCByZXR1cm4gaW5mb3JtYXRpb24uDQorKwkrIE9wZW4gcmVj b3ZlcnkgYW5kIERCIGZpbGVzIGZvciB3cml0aW5nIGFzIHdlbGwgYXMgcmVhZGluZywgU3lzdGVt DQorKwkgIFYgKGZjbnRsKSB3b24ndCBsZXQgeW91IGFjcXVpcmUgTE9DS19FWCBsb2NrcyBvdGhl cndpc2UuDQorKwkrIEZpeCBzdWJzdGl0dXRlIGJ1ZyB3aGVyZSBjb3VsZCBtYWxsb2MgMCBieXRl cyAoQUlYIGJyZWFrcykuDQorKwkrIFBlcm1pdCB0aGUgbWFwcGluZyBvZiA8Y2FycmlhZ2UtcmV0 dXJuPiwgaXQncyBoaXN0b3JpYyBwcmFjdGljZS4NCisrCSsgSGlzdG9yaWMgdmkgZGlkbid0IGVh dCA8Ymxhbms+IGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBmb3JjZQ0KKysJICBmbGFnLCBtYXRjaCBo aXN0b3JpYyBwcmFjdGljZS4NCisrCSsgQnVnIGluIGV4IGFyZ3VtZW50IHBhcnNpbmcsIGNvcnJl Y3RlZCBmb3IgbGl0ZXJhbCBjaGFyYWN0ZXJzDQorKwkgIHR3aWNlLg0KKysJKyBEZWxldGUgc2Ny ZWVuIHNwZWNpZmljIG1hcHMgd2hlbiB0aGUgc2NyZWVuIGNsb3Nlcy4NCisrCSsgTW92ZSB0byB0 aGUgZmlyc3Qgbm9uLTxibGFuaz4gaW4gdGhlIGxpbmUgb24gc3RhcnR1cDsgaGlzdG9yaWMNCisr CSAgcHJhY3RpY2UuDQorKwkrIENoYW5nZSB0aGUgZXggdmlzdWFsIGNvbW1hbmQgdG8gbW92ZSBk aXJlY3RseSB0byBhIGxpbmUgaWYgbm8NCisrCSAgdHJhaWxpbmcgJ3onIGNvbW1hbmQuDQorKwkr IEZpeCAiW1siIGFuZCAiXV0iIHRvIG1hdGNoIGhpc3RvcmljIHByYWN0aWNlICh5ZXQgYWdhaW4u Li4pLg0KKysJKyBGaXggInliIiBhbmQgInl7IiBjb21tYW5kcyB0byB1cGRhdGUgdGhlIGN1cnNv ciBjb3JyZWN0bHkuDQorKwkrIENoYW5nZSAifjxtb3Rpb24+IiB0byBtYXRjaCB0aGUgeWFuayBj dXJzb3IgbW92ZW1lbnQgc2VtYW50aWNzDQorKwkgIGV4YWN0bHkuDQorKwkrIE1vdmUgYWxsIG9m IHRoZSBjdXJzZXMgcmVsYXRlZCBjb2RlIGludG8gc2V4L3N2aSAtLSBtYWpvciByZXdvcmssDQor KwkgIGJ1dCBzaG91bGQgaGVscCBpbiBmdXR1cmUgcG9ydHMuDQorKwkrIEZpeCBidWcgaW4gc3Bs aXQgY29kZSBjYXVzZWQgYnkgbmV3IGZpbGUgbmFtaW5nIGNvZGUsIHdoZXJlIHdvdWxkDQorKwkg IGRyb3AgY29yZSB3aGVuIGEgc3BsaXQgc2NyZWVuIGV4aXRlZC4NCisrCSsgQ2hhbmdlIHN2aV9l eF93cml0ZSB0byBkbyBjaGFyYWN0ZXIgZGlzcGxheSB0cmFuc2xhdGlvbiwgc28gdGhhdA0KKysJ ICBtZXNzYWdlcyB3aXRoIGZpbGUgbmFtZXMgaW4gdGhlbSBhcmUgZGlzcGxheWVkIGNvcnJlY3Rs eS4NCisrCSsgRGlzcGxheSB0aGUgZmlsZSBuYW1lIG9uIHNwbGl0IHNjcmVlbnMgaW5zdGVhZCBv ZiBhIGRpdmlkZXIgbGluZS4NCisrCSsgRml4IG1vdmUgYnVnLCB3YXNuJ3QgY29weWluZyBsaW5l cyBiZWZvcmUgcHV0dGluZyB0aGVtLg0KKysJKyBGaXggYnVnIHdlcmUgOm4gZHJvcHBlZCBjb3Jl IGlmIG5vIGFyZ3VtZW50cyBzdXBwbGllZC4NCisrCSsgRG9uJ3QgcXVvdGUgY2hhcmFjdGVycyBp biBleGVjdXRlZCBidWZmZXI6ICJpZm9vPGVzYz4iIHNob3VsZCBsZWF2ZQ0KKysJICBpbnNlcnQg bW9kZSBhZnRlciB0aGUgYnVmZmVyIGlzIGV4ZWN1dGVkLg0KKysJKyBUYWdwb3AgYW5kIHRhZ3B1 c2ggc2hvdWxkIHNldCB0aGUgYWJzb2x1dGUgbWFyayBpbiBjYXNlIG9ubHkgbW92aW5nDQorKwkg IHdpdGhpbiBhIGZpbGUuDQorKwkrIFNraXAgbGVhZGluZyB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMg YmVmb3JlIHRhZ3MgYW5kIGN1cnNvciB3b3JkDQorKwkgIHNlYXJjaGVzLg0KKysJKyBGaXggYnVn IGluIGV4X2dsb2JhbCB3aGVyZSByZV9jb252KCkgd2FzIGFsbG9jYXRpbmcgdGhlIHRlbXBvcmFy eQ0KKysJICBidWZmZXIgYW5kIG5vdCBmcmVlaW5nIGl0Lg0KKysxLjIyIC0+IDEuMjM6IFdlZCBK dW4gMjkgMTk6MjI6MzMgMTk5NA0KKysJKyBOZXcgPHN5cy9jZGVmcy5oPiByZXF1aXJlZCAiaW5s aW5lIiB0byBjaGFuZ2UgdG8gIl9faW5saW5lIg0KKysJKyBGaXggU3lzdGVtIFYgY3Vyc2VzIGNv ZGUgZm9yIG5ldyBeWiBzdXBwb3J0Lg0KKysJKyBGaXggb2ZmLWJ5LW9uZSBpbiB0aGUgbW92ZSBj b2RlLCBhdm9pZCAiOjEsJG1vJCIgd2l0aCBvbmx5IG9uZQ0KKysJICBsaW5lIGluIHRoZSBidWZm ZXIuDQorKwkrIExpbmUgb3JpZW50YXRpb24gb2YgbW90aW9uIGNvbW1hbmRzIHdhcyByZW1lbWJl cmVkIHRvbyBsb25nLA0KKysJICBpLmUuICAnLicgY29tbWFuZCBjb3VsZCBiZSBpbmNvcnJlY3Rs eSBtYXJrZWQgYXMgbGluZSBvcmllbnRlZC4NCisrCSsgTW92ZSBmaWxlIG1vZGlmaWNhdGlvbiB0 aW1lIGludG8gRVhGLCBzbyBpdCdzIHNoYXJlZCBhY3Jvc3MNCisrCSAgc3BsaXQgc2NyZWVucy4N CisrCSsgUHV0IHRoZSBwcmV2W2lvdXNdIGNvbW1hbmQgYmFjayBpbiwgcGVvcGxlIGNvbXBsYWlu ZWQuDQorKwkrIFJhbmRvbSBmaXhlcyB0byBuZXh0L3ByZXYgc2VtYW50aWNzIGNoYW5nZWQgaW4g MS4yMi4NCisrCSsgSGlzdG9yaWNhbGx5IHZpIGRvZXNuJ3Qgb25seSBtb3ZlIHRvIHRoZSBsYXN0 IGFkZHJlc3MgaWYgdGhlcmUncw0KKysJICBBTllUSElORyBhZnRlciB0aGUgYWRkcmVzc2VzLCBl LmcuICI6MyIgbW92ZXMgdG8gbGluZSAzLCAiOjN8Ig0KKysJICBwcmludHMgbGluZSAzLg0KKysx LjIxIC0+IDEuMjI6IE1vbiBKdW4gMjcgMTE6MDE6NDEgMTk5NA0KKysJKyBNYWtlIHRoZSBsaW5l IGJldHdlZW4gc3BsaXQgc2NyZWVucyBpbnZlcnNlIHZpZGVvIGFnYWluLg0KKysJKyBEZWxldGUg dGhlIHByZXZbaW91c10gY29tbWFuZCwgaXQncyBub3QgdXNlZnVsIGVub3VnaCB0byBrZWVwLg0K KysJKyBSZXdvcmsgOmFyZ3MvZmlsZSBuYW1lIGhhbmRsaW5nIGZyb20gc2NyYXRjaCAtLSBNQUpP UiBDSEFOR0UsDQorKwkgIGxpa2VseSB0byBpbnRyb2R1Y2UgYWxsIHNvcnRzIG9mIG5ldyBidWdz Lg0KKysJKyBGaXggUkUgYnVnIHdoZXJlIG5vIHN1YmV4cHJlc3Npb25zIGluIHRoZSBwYXR0ZXJu IGJ1dCB0aGVyZSB3ZXJlDQorKwkgIHN1YmV4cHJlc3Npb25zIHJlZmVyZW5jZWQgaW4gdGhlIHJl cGxhY2VtZW50LCBlLmcuICJzL1hYWC9cMS9nIi4NCisrCSsgQ2hhbmdlIHJlY292ZXJ5IHRvIG5v dCBsZWF2ZSB1bm1vZGlmaWVkIGZpbGVzIGFyb3VuZCBhZnRlciBhDQorKwkgIGNyYXNoLCBieSB1 c2luZyB0aGUgb3duZXIgJ3gnIGJpdCBvbiB1bm1vZGlmaWVkIGJhY2t1cCBmaWxlcy4NCisrCSAg TUFKT1IgQ0hBTkdFLCB0aGUgc3lzdGVtIHJlY292ZXJ5IHNjcmlwdCBoYXMgdG8gY2hhbmdlIQ0K KysJKyBDaGFuZ2UgLXIgb3B0aW9uIHRvIGRlbGV0ZSByZWNvdmVyeS4qIGZpbGVzIHRoYXQgcmVm ZXJlbmNlIG5vbi0NCisrCSAgZXhpc3RlbnQgdmkuKiBmaWxlcy4NCisrCSsgUmV3b3JrIHJlY292 ZXJ5IGxvY2tpbmcgc28gdGhhdCBmY250bCgyKSBsb2NraW5nIHdpbGwgd29yay4NCisrCSsgRml4 IGFwcGVuZCAodXBwZXItY2FzZSkgYnVmZmVycywgYnJva2VuIGJ5IGN1dCBmaXhlcy4NCisrCSsg Rml4IHwgdG8gbm90IHNldCB0aGUgYWJzb2x1dGUgbW90aW9uIG1hcmsuDQorKwkrIFJlYWQgJEhP TUUvLmV4cmMgZmlsZSBvbiBzdGFydHVwIGlmIHRoZSBlZmZlY3RpdmUgdXNlciBJRCBpcw0KKysJ ICByb290LiAgVGhpcyBtYWtlcyBydW5uaW5nIHZpIHdoaWxlIHN1KDEpJ2Qgd29yayBjb3JyZWN0 bHkuDQorKwkrIFVzZSB0aGUgZnVsbCBwYXRobmFtZSBvZiB0aGUgZmlsZSBhcyB0aGUgcmVjb3Zl cnkgbmFtZSwgbm90DQorKwkgIGp1c3QgdGhlIGxhc3QgY29tcG9uZW50LiAgTWF0Y2hlcyBoaXN0 b3JpYyBwcmFjdGljZS4NCisrCSsgS2VlcCBtYXJrcyBpbiBlbXB0eSBmaWxlcyBmcm9tIGJlaW5n IGRlc3Ryb3llZC4NCisrCSsgQmxvY2sgYWxsIGNhdWdodCBzaWduYWxzIGJlZm9yZSBjYWxsaW5n IHRoZSBEQiByb3V0aW5lcy4NCisrCSsgTWFrZSB0aGUgbGluZSBjaGFuZ2UgcmVwb3J0IG1hdGNo IGhpc3RvcmljIHByYWN0aWNlICh5YW5rZWQNCisrCSAgbGluZXMgd2VyZSBkaWZmZXJlbnQgdGhh biBldmVyeXRoaW5nIGVsc2UpLg0KKysJKyBBZGQgc2VjdGlvbiBvbiBtdWx0aXBsZSBzY3JlZW5z IHRvIHRoZSByZWZlcmVuY2UgbWFudWFsLg0KKysJKyBEaXNwbGF5IGFsbCBtZXNzYWdlcyBhdCBv bmNlLCBjb21iaW5lIG9udG8gYSBzaW5nbGUgbGluZSBpZg0KKysJICBwb3NzaWJsZS4gIERlbGV0 ZSB0aGUgdHJhaWxpbmcgcGVyaW9kIGZyb20gYWxsIG1lc3NhZ2VzLg0KKysxLjIwIC0+IDEuMjE6 IFRodSBNYXkgMTkgMTI6MjE6NTggMTk5NA0KKysJKyBEZWxldGUgdGhlIC1sIGZsYWcgZnJvbSB0 aGUgcmVjb3ZlciBtYWlsLg0KKysJKyBTZW5kIHRoZSB1c2VyIGVtYWlsIGlmIGV4IGNvbW1hbmQg OnByZXNlcnZlIGV4ZWN1dGVkLCB0aGlzIG1hdGNoZXMNCisrCSAgaGlzdG9yaWMgcHJhY3RpY2Uu ICBMb3RzIG9mIGNoYW5nZXMgdG8gdGhlIHByZXNlcnZlIGFuZCByZWNvdmVyeQ0KKysJICBjb2Rl LCBjaGFuZ2UgcHJlc2VydmUgdG8gc25hcHNob3QgZmlsZXMgKGFnYWluLCBoaXN0b3JpYyBwcmFj dGljZSkuDQorKwkrIE1ha2UgYnVmZmVycyBtYXRjaCBoaXN0b3JpYyBwcmFjdGljZTogImFkZCBs b2dpY2FsbHkgc3RvcmVzIHRleHQNCisrCSAgaW50byBidWZmZXIgYSwgYnVmZmVyIDEsIGFuZCB0 aGUgdW5uYW1lZCBidWZmZXIuDQorKwkrIFByaW50IDx0YWI+IGNoYXJhY3RlcnMgYXMgXkkgb24g dGhlIGNvbG9uIGNvbW1hbmQgbGluZSBpZiB0aGUNCisrCSAgbGlzdCBvcHRpb24gc2V0Lg0KKysJ KyBBZGp1c3QgXkYgYW5kIF5CIHNjcm9sbCB2YWx1ZXMgaW4gdGhlIHByZXNlbmNlIG9mIHNwbGl0 IHNjcmVlbnMNCisrCSAgYW5kIHNtYWxsIHdpbmRvd3MuDQorKwkrIEJyZWFrIG1zZyogcm91dGlu ZXMgb3V0IGZyb20gdXRpbC5jIGludG8gbXNnLmMsIHN0YXJ0IHRoaW5raW5nDQorKwkgIGFib3V0 IG1lc3NhZ2UgY2F0YWxvZ3MuDQorKwkrIEFkZCB0aWxkZW9wIHNldCBvcHRpb24sIGJhc2VkIG9u IHN0ZXZpZSdzIG9wdGlvbiBvZiB0aGUgc2FtZSBuYW1lLg0KKysJICBDaGFuZ2VzICB0aGUgfiBj b21tYW5kIGludG8gIltjb3VudF0gfiBtb3Rpb24iLCBpLmUuIH4gdGFrZXMgYQ0KKysJICB0cmFp bGluZyBtb3Rpb24uDQorKwkrIENob3NlIE5PVCB0byBtYXRjaCBoaXN0b3JpYyBwcmFjdGljZSBv biBjdXJzb3IgcG9zaXRpb25pbmcgYWZ0ZXINCisrCSAgY29uc2VjdXRpdmUgdW5kbyBjb21tYW5k cyBvbiBhIHNpbmdsZSBsaW5lOyBzZWUgdmkvdl91bmRvLmMgZm9yDQorKwkgIHRoZSBjb21tZW50 Lg0KKysJKyBBZGQgYSBvbmUgbGluZSBjYWNoZSBzbyB0aGF0IG11bHRpcGxlIGNoYW5nZXMgdG8g dGhlIHNhbWUgbGluZQ0KKysJICBhcmUgb25seSBjb3VudGVkIG9uY2UgKGUuZy4gImRsMzVwIiBj aGFuZ2VzIG9uZSBsaW5lLCBub3QgMzUpLg0KKysJKyBSZXdvcmsgc2lnbmFscyBzb21lIG1vcmUu ICBCbG9jayBmaWxlIHN5bmMgc2lnbmFscyBpbiB2aSByb3V0aW5lcw0KKysJICB0aGF0IGludGVy ZmFjZSB0byBEQiwgc28gY2FuIHN5bmMgdGhlIGZpbGVzIGF0IGludGVycnVwdCB0aW1lLg0KKysJ ICBXcml0ZSB1cCBhbGwgb2YgdGhlIHNpZ25hbCBoYW5kbGluZyBhcmd1bWVudHMsIHNlZSBzaWdu YWwuYy4NCisrMS4xOSAtPiAxLjIwOiBUaHUgTWF5ICA1IDE5OjI0OjU3IDE5OTQNCisrCSsgUmV0 dXJuIF5aIHRvIHN5bmNocm9ub3VzIGhhbmRsaW5nLiAgU2VlIHRoZSBkaWN1c3Npb24gaW4gc2ln bmFsLmMNCisrCSAgYW5kIHN2aV9zY3JlZW4uYzpzdmlfY3Vyc2VzX2luaXQoKS4NCisrCSsgRml4 IGJ1ZyB3aGVyZSBsaW5lIGNoYW5nZSByZXBvcnQgd2FzIHdyb25nIGluIHV0aWwuYzptc2dfcnB0 KCkuDQorKzEuMTggLT4gMS4xOTogVGh1IE1heSAgNSAxMjo1OTo1MSAxOTk0DQorKwkrIEJsb2Nr IERTVVNQIHNvIHRoYXQgXlkgaXNuJ3QgZGVsaXZlcmVkIGF0IFNJR1RTVFAuDQorKwkrIEZpeCBi dWcgLS0gcHV0IGludG8gYW4gZW1wdHkgZmlsZSBsZWF2ZXMgdGhlIGN1cnNvciBhdCAxLDAsDQor KwkgIG5vdCB0aGUgZmlyc3Qgbm9uYmxhbmsuDQorKwkrIEZpeCBidWcgd2VyZSBudW1iZXIgb2Yg bGluZXMgcmVwb3J0ZWQgZm9yIHRoZSAnUCcgY29tbWFuZCB3YXMNCisrCSAgb2ZmLWJ5LW9uZS4N CisrCSsgRml4IGJ1ZyB3ZXJlIDBeRCB3YXNuJ3QgYmVpbmcgaGFuZGxlZCBjb3JyZWN0bHkuDQor KwkrIERlbGV0ZSByZW1uYW50cyBvZiBeWiBhcyBhIHJhdyBjaGFyYWN0ZXIuDQorKwkrIEZpeCBi dWcgd2hlcmUgaWYgYSBtYXAgd2FzIGFuIGVudGlyZSBjb2xvbiBjb21tYW5kLCBpdCBtYXkgbmV2 ZXINCisrCSAgaGF2ZSBiZWVuIGRpc3BsYXllZC4NCisrCSsgRmluYWwgY3Vyc29yIHBvc2l0aW9u IGZpeGVzIGZvciB0aGUgdmkgVCBhbmQgdCBjb21tYW5kcy4NCisrCSsgVGhlIGV4IDpuZXh0IGNv bW1hbmQgdG9vayBhbiBvcHRpb25hbCBleCBjb21tYW5kIGFzIGl0J3MgZmlyc3QNCisrCSAgYXJn dW1lbnQgc2ltaWxhciB0byB0aGUgOmVkaXQgY29tbWFuZHMuICBNYXRjaCBoaXN0b3JpYyBwcmFj dGljZS4NCisrMS4xNyAtPiAxLjE4OiBXZWQgTWF5ICA0IDEzOjU3OjEwIDE5OTQNCisrCSsgUmV3 b3JrIGN1cnNlcyBpbmZvcm1hdGlvbiBpbiB0aGUgUE9SVC9NYWtlZmlsZSdzLg0KKysJKyBNaW5v ciBmaXhlcyB0byBeWiBhc3luY2hyb25vdXMgY29kZS4NCisrMS4xNiAtPiAxLjE3OiBXZWQgTWF5 ICA0IDExOjE1OjU2IDE5OTQNCisrCSsgTWFrZSBleCBjb21tZW50IGhhbmRsaW5nIG1hdGNoIGhp c3RvcmljIHByYWN0aWNlLg0KKysJKyBNYWtlIF5aIHdvcmsgYXN5bmNocm9ub3VzbHksIHdlIGNh biBubyBsb25nZXIgdXNlIHRoZSBTSUdUU1RQDQorKwkgIGhhbmRsZXIgaW4gdGhlIGN1cnNlcyBs aWJyYXJ5Lg0KKysxLjE1IC0+IDEuMTY6IE1vbiBNYXkgIDIgMTk6NDI6MDcgMTk5NA0KKysJKyBN YWtlIHRoZSAncCcgYW5kICdQJyBjb21tYW5kcyBzdXBwb3J0IGNvdW50cywgaS5lLiAiWTEwcCIg d29ya3MuDQorKwkrIE1ha2UgY2hhcmFjdGVycyB0aGF0IG1hcCB0byB0aGVtc2VsdmVzIGFzIHRo ZSBmaXJzdCBwYXJ0IG9mIHRoZQ0KKysJICBtYXBwaW5nIHdvcmssIGl0J3MgaGlzdG9yaWMgcHJh Y3RpY2UuDQorKwkrIEZpeCBidWcgd2hlcmUgInMvLi9cJiAvIiBkaXNjYXJkZWQgdGhlIHNwYWNl IGluIHRoZSByZXBsYWNlbWVudA0KKysJICBzdHJpbmcuDQorKwkrIEFkZCBzdXBwb3J0IGZvciB1 cC9kb3duIGN1cnNvciBhcnJvd3MgaW4gdGV4dCBpbnB1dCBtb2RlLCByZXdvcmsNCisrCSAgbGVm dC9yaWdodCBzdXBwb3J0IHRvIG1hdGNoIGluZHVzdHJ5IHByYWN0aWNlLg0KKysJKyBGaXggYnVn IHdlcmUgZW5vdWdoIGNoYXJhY3RlciByZW1hcHBpbmcgY291bGQgY29ycnVwdCBtZW1vcnkuDQor KwkrIERlbGV0ZSBPX1JFTUFQTUFYIGluIGZhdm9yIG9mIHNldHRpbmcgaW50ZXJydXB0cyBhZnRl ciBOIG1hcHBlZA0KKysJICBjaGFyYWN0ZXJzIHdpdGhvdXQgYSByZWFkLCBkZWxldGUgdGhlIG1h cCBjb3VudGVyIHBlciBjaGFyYWN0ZXIuDQorKwkgIE1BSk9SIENIQU5HRS4gIEFsbCBvZiB0aGUg aW50ZXJydXB0IHNpZ25hbCBoYW5kbGluZyBoYXMgYmVlbg0KKysJICByZXdvcmtlZCBzbyB0aGF0 IGludGVycnVwdHMgYXJlIGFsd2F5cyB0dXJuZWQgb24gaW5zdGVhZCBvZg0KKysJICBiZWluZyB0 dXJuZWQgb24gcGVyaW9kaWNhbGx5LCB3aGVuIGFuIGludGVycnVwdGlibGUgb3BlcmF0aW9uIGlz DQorKwkgIHBlbmRpbmcuDQorKwkrIEZpeCBidWcgd2hlcmUgdmkgd2FpdCgpIHdhcyBpbnRlcnJ1 cHRlZCBieSB0aGUgcmVjb3ZlcnkgYWxhcm0uDQorKwkrIE1ha2UgK2NtZCdzIGFuZCBpbml0aWFs IGNvbW1hbmRzIGV4ZWN1dGUgd2l0aCB0aGUgY3VycmVudCBsaW5lDQorKwkgIHNldCB0byB0aGUg bGFzdCBsaW5lIG9mIHRoZSBmaWxlLiAgVGhpcyBpcyBoaXN0b3JpYyBwcmFjdGljZS4NCisrCSsg Q2hhbmdlICJsb2NrIGZhaWxlZCIgZXJyb3IgbWVzc2FnZSB0byBhIGZpbGUgc3RhdHVzIG1lc3Nh Z2UuDQorKwkgIEl0IGFsd2F5cyBmYWlscyBvdmVyIE5GUywgYW5kIG1ha2luZyBhbGwgTkZTIGZp bGVzIHJlYWRvbmx5DQorKwkgIGlzbid0IGdvaW5nIHRvIGZseS4NCisrCSsgVXNlIHRoZSBoaXN0 b3JpYyBsaW5lIG51bWJlciBmb3JtYXQsIGJ1dCBjaGVjayBmb3Igb3ZlcmZsb3cuDQorKwkrIEZp eCBidWcgd2hlcmUgdmkgY29tbWFuZCBwYXJzZXIgaWdub3JlZCBidWZmZXJzIHNwZWNpZmllZCBh cw0KKysJICBwYXJ0IG9mIHRoZSBtb3Rpb24gY29tbWFuZC4NCisrCSsgTWFrZSBbQCpdYnVmZmVy IGNvbW1hbmRzIG9uIGNoYXJhY3RlciBtb2RlIGJ1ZmZlcnMgbWF0Y2ggaGlzdG9yaWMNCisrCSAg cHJhY3RpY2UuDQorKwkrIEZpeCBidWcgd2hlcmUgdGhlIGNtYXAvY2hmIGVudHJpZXMgb2YgdGhl IHR0eSBzdHJ1Y3R1cmUgd2VyZW4ndA0KKysJICBiZWluZyBjbGVhcmVkIHdoZW4gbmV3IGNoYXJh Y3RlcnMgd2VyZSByZWFkLg0KKysJKyBGaXggYnVnIHdoZXJlIHRoZSBkZWZhdWx0IGNvbW1hbmQg bW90aW9uIGZsYWdzIHdlcmUgYmVpbmcgc2V0DQorKwkgIHdoZW4gdGhlIGNvbW1hbmQgd2FzIGEg bW90aW9uIGNvbXBvbmVudC4NCisrCSsgRml4IHdyYXBtYXJnaW4gYnVnOyBpZiBhcHBlbmRpbmcg Y2hhcmFjdGVycywgYW5kIHdyYXBtYXJnaW4gYnJlYWtzDQorKwkgIHRoZSBsaW5lLCBhbiBhZGRp dGlvbmFsIHNwYWNlIGlzIGVhdGVuLg0KKysxLjE0IC0+IDEuMTU6IEZyaSBBcHIgMjkgMDc6NDQ6 NTcgMTk5NA0KKysJKyBNYWtlIHRoZSBleCBkZWxldGUgY29tbWFuZCB3b3JrIGluIGFueSBlbXB0 eSBmaWxlLg0KKysJKyBGaXggYnVnIHdoZXJlICd0JyBjb21tYW5kIHBsYWNlZCB0aGUgY3Vyc29y IG9uIHRoZSBjaGFyYWN0ZXINCisrCSAgaW5zdGVhZCBvZiB0byBpdHMgbGVmdC4NCisrCSsgXkQg YW5kIF5VIGRpZG4ndCBzZXQgdGhlIHNjcm9sbCBvcHRpb24gdmFsdWUgaGlzdG9yaWNhbGx5Lg0K KysJICBOb3RlLCB0aGlzIGNoYW5nZSBtZWFucyB0aGF0IGFueSB1c2VyIHNldCB2YWx1ZSAoZS5n LiAxNV5EKQ0KKysJICB3aWxsIGJlIGxvc3Qgd2hlbiBzcGxpdHRpbmcgdGhlIHNjcmVlbiwgc2lu Y2UgdGhlIHNwbGl0IGNvZGUNCisrCSAgbm93IHJlc2V0cyB0aGUgc2Nyb2xsIHZhbHVlIHJlZ2Fy ZGxlc3MuDQorKwkrIEZpeCB0aGUgKCBjb21tYW5kIHRvIHNldCB0aGUgYWJzb2x1dGUgbW92ZW1l bnQgbWFyay4NCisrCSsgT25seSB1c2UgVElPQ0dXSU5TWiBmb3Igd2luZG93IGluZm9ybWF0aW9u IGlmIFNJR1dJTkNIIHNpZ25hbA0KKysJICBjYXVnaHQuDQorKwkrIERlbGV0ZSB0aGUgLWwgZmxh ZywgYW5kIG1ha2UgLXIgd29yayBmb3IgbXVsdGlwbGUgYXJndW1lbnRzLg0KKysJICBBZGQgdGhl IGV4ICJyZWNvdmVyWyFdIGZpbGUiIGNvbW1hbmQuDQorKwkrIFN3aXRjaCBpbnRvIGV4IHRlcm1p bmFsIG1vZGUgYW5kIHVzZSB0aGUgc2V4IHJvdXRpbmVzIHdoZW4NCisrCSAgYXBwZW5kL2NoYW5n ZS9pbnNlcnQgY2FsbGVkIGZyb20gdmkgbW9kZS4NCisrCSsgTWFrZSBeRiBhbmQgXkIgbWF0Y2gg aGlzdG9yaWMgcHJhY3RpY2UuICBUaGlzIHJlcXVpcmVkIGEgZmFpcmx5DQorKwkgIGV4dGVuc2l2 ZSByZXdvcmsgb2YgdGhlIHN2aSBzY3JvbGxpbmcgY29kZS4NCisrCSsgQ3Vyc29yIHBvc2l0aW9u aW5nIGluIEgsIE0sIEwsIEcgKGZpcnN0IG5vbi1ibGFuayBmb3IgMUcpIHdhc24ndA0KKysJICBi ZWluZyBkb25lIGNvcnJlY3RseS4gIERlbGV0ZSB0aGUgU0VUTEZOQiBmbGFnLiAgSCwgTSwgYW5k IEwgc3RheQ0KKysJICBsb2dpY2FsIG1vdmVtZW50cyAoU0VUTk5CKSBhbmQgRyBhbHdheXMgbW92 ZXMgdG8gdGhlIGZpcnN0IG5vbmJsYW5rLg0KKysJKyBTeXN0ZW0gViB1c2VzICJsaW5lcyIgYW5k ICJjb2xzIiwgbm90ICJsaSIgYW5kICJjbyIsIGNoYW5nZSBhcw0KKysJICBuZWNlc3NhcnkuICBD aGVjayB0ZXJtY2FwIGZ1bmN0aW9uIHJldHVybnMgZm9yIGVycm9ycy4NCisrCSsgRml4IGA8Y2hh cmFjdGVyPiBjb21tYW5kIHRvIGRvIHN0YXJ0L2VuZCBvZiBsaW5lIGNvcnJlY3Rpb24sDQorKwkg IGFuZCB0byBzZXQgbGluZSBtb2RlIGlmIHN0YXJ0aW5nIGFuZCBzdG9wcGluZyBhdCBjb2x1bW4g MC4NCisrCSsgRml4IGJ1ZyBpbiBkZWxldGUgY29kZSB3aGVyZSBkcm9wcGVkIGNvcmUgaWYgZGVs ZXRlZCBpbiBjaGFyYWN0ZXINCisrCSAgbW9kZSB0byBhbiBlbXB0eSBsaW5lLiAgKFJld29yayB0 aGUgZGVsZXRlIGNvZGUgZm9yIGVmZmljaWVuY3kuKQ0KKysJKyBHaXZlIHVwIG9uIFN1bk9TIDQu MS5YLCBhbmQgdXNlICJjYyIgaW5zdGVhZCBvZiAvdXNyLzViaW4vY2MuDQorKwkrIFByb3RlY3Qg ZXhfZ2V0bGluZSByb3V0aW5lIGZyb20gaW50ZXJydXB0ZWQgc3lzdGVtIGNhbGxzIChpZg0KKysJ ICBwb3NzaWJsZSwgc2V0IFNBX1JFU1RBUlQgb24gU0lHQUxSTSwgdG9vKS4NCisrCSsgRml4IGxl ZnRyaWdodCBzY3JvbGxpbmcgYnVnLCB3aGVuIG1vdmluZyB0byBhIHNob3J0ZXIgbGluZS4NCisr CSsgRG8gdmFsaWRpdHkgY2hlY2tpbmcgb24gdGhlIGNvcHksIG1vdmUsIHQgY29tbWFuZCB0YXJn ZXQgbGluZQ0KKysJICBudW1iZXJzLg0KKysJKyBDaGFuZ2UgZm9yIFN5c3RlbSBWICUgcGF0dGVy biBicm9rZSB0cmFpbGluZyBmbGFncyBmb3IgZW1wdHkNCisrCSAgcmVwbGFjZW1lbnQgc3RyaW5n cy4NCisrCSsgRml4IGJ1ZyB3aGVuIFJDTSBmbGFncyByZXRhaW5lZCBpbiB0aGUgc2F2ZWQgZG90 IHN0cnVjdHVyZS4NCisrCSsgTWFrZSB0aGUgZXggJz0nIGNvbW1hbmQgd29yayBmb3IgZW1wdHkg ZmlsZXMuDQorKwkrIEZpeCBidWcgd2hlcmUgc3BlY2lhbF9rZXkgYXJyYXkgd2FzIGJlaW5nIGZy ZWUnZCAoaXQncyBubyBsb25nZXINCisrCSAgYWxsb2NhdGVkKS4NCisrCSsgTWF0Y2hlcyBjdXQg aW4gbGluZSBtb2RlIG9ubHkgaWYgdGhlIHN0YXJ0aW5nIGN1cnNvciBpcyBhdCBvcg0KKysJICBi ZWZvcmUgdGhlIGZpcnN0IG5vbmJsYW5rIGluIGl0cyBsaW5lLCBhbmQgdGhlIGVuZGluZyBjdXJz b3IgaXMNCisrCSAgYXQgb3IgYWZ0ZXIgdGhlIGxhc3Qgbm9uYmxhbmsgaW4gaXRzIGxpbmUuDQor KwkrIEFkZCB0aGUgOnduIGNvbW1hbmQsIHNvIHlvdSBjYW4gd3JpdGUgYSBmaWxlIGFuZCBzd2l0 Y2ggdG8gYSBuZXcNCisrCSAgZmlsZSBpbiBvbmUgY29tbWFuZC4NCisrCSsgQWxsb3cgb25seSBh IHNpbmdsZSBrZXkgYXMgYW4gYXJndW1lbnQgdG8gOnZpdXNhZ2UuDQorKwkrIE5ldyBtb3ZlbWVu dCBjb2RlIGJyb2tlIGZpbHRlci9wYXJhZ3JhcGggb3BlcmF0aW9ucyBpbiBlbXB0eQ0KKysJICBm aWxlcyAoIiF9ZGF0ZSIgaW4gYW4gZW1wdHkgZmlsZSB3YXMgZHJvcHBpbmcgY29yZSkuDQorKzEu MTIgLT4gMS4xNDogTW9uIEFwciAxOCAxMTowNToxMCAxOTk0IChQVUJMSUNMWSBBVkFJTEFCTEUg VkVSU0lPTiwgNC40QlNEKQ0KKysJKyBGaXggRklMRSBzdHJ1Y3R1cmUgbGVha2FnZSBpbiB0aGUg ZXggZmlsdGVyIGNvZGUuDQorKwkrIFJld29yayBzdXNwZW5kIGNvZGUgZm9yIFN5c3RlbSBWIGN1 cnNlcy4gIE52aSBoYXMgdG8gZG8gdGhlDQorKwkgIHRoZSB3b3JrLCB0aGVyZSdzIG5vIHdheSB0 byBnZXQgY3Vyc2VzIHRvIGRvIGl0IHJpZ2h0Lg0KKysJKyBSZXZlcnQgU3VuT1MgNC4xLlggcG9y dHMgdG8gdGhlIGRpc3RyaWJ1dGVkIGN1cnNlcy4gIFRoZXJlJ3MNCisrCSAgYSBidWcgaW4gU3Vu J3MgaW1wbGVtZW50YXRpb24gdGhhdCB3ZSBjYW4ndCBsaXZlIHdpdGguDQorKwkrIFF1aXQgaW1t ZWRpYXRlbHkgaWYgcm93L2NvbHVtbiB2YWx1ZXMgYXJlIHVucmVhc29uYWJsZS4NCisrCSsgRml4 IHRoZSBmdW5jdGlvbiBrZXlzIHRvIG1hdGNoIHZpIGhpc3RvcmljIGJlaGF2aW9yLg0KKysJKyBS ZXBsYWNlIHRoZSBlY2hvL2F3ayBtYWdpYyBpbiB0aGUgTWFrZWZpbGUncyB3aXRoIGF3ayBzY3Jp cHRzLg0KKysxLjExIC0+IDEuMTI6IFRodSBBcHIgMTQgMTE6MTA6MTkgMTk5NA0KKysJKyBGaXgg YnVnIHdoZXJlIG9ubHkgdGhlIGZpcnN0IHZpIGtleSB3YXMgY2hlY2tlZCBmb3IgdmFsaWRpdHku DQorKwkrIE1ha2UgJ1InIGNvbnRpbnVlIHRvIG92ZXJ3cml0ZSBhZnRlciBhIDxjYXJyaWFnZS1y ZXR1cm4+Lg0KKysJKyBPbmx5IGRpc3BsYXkgdGhlICJubyByZWNvdmVyeSIgbWVzc2FnZSBvbmNl Lg0KKysJKyBSZXdvcmsgbGluZSBiYWNrdXAgY29kZSB0byByZXN0b3JlIHRoZSBsaW5lIHRvIGl0 cyBwcmV2aW91cw0KKysJICBjb25kaXRpb24uDQorKwkrIERvbid0IHBlcm1pdCA6cSBpbiBhIC5l eHJjIGZpbGUgb3IgRVhJTklUIHZhcmlhYmxlLg0KKysJKyBGaXggd3JhcHNjYW4gb3B0aW9uIGJ1 ZyB3aGVyZSBmb3J3YXJkIHNlYXJjaGVzIGJlY29tZSBiYWNrd2FyZA0KKysJICBzZWFyY2hlcyBh bmQgZG8gY3Vyc29yIGNvcnJlY3Rpb24gYWNjb3JkaW5nbHkuDQorKwkrIENoYW5nZSAiZGQiIHRv IG1vdmUgdGhlIGN1cnNvciB0byB0aGUgZmlyc3Qgbm9uLWJsYW5rIG9uIHRoZSBsaW5lLg0KKysJ KyBEZWxldGUgY3Vyc29yIGF0dHJhY3Rpb24gdG8gdGhlIGZpcnN0IG5vbi1ibGFuaywgY2hhbmdl IG5vbi1ibGFuaw0KKysJICBtb3Rpb25zIHRvIHNldCB0aGUgbW9zdCBhdHRyYWN0aXZlIGN1cnNv ciBwb3NpdGlvbiBpbnN0ZWFkLg0KKysJKyBGaXggJ3InIHN1YnN0aXR1dGUgb3B0aW9uIHRvIHNl dCB0aGUgUkUgdG8gdGhlIGxhc3QgUkUsIG5vdCB0aGUNCisrCSAgbGFzdCBzdWJzdGl0dXRlIFJF Lg0KKysJKyBGaXggJ2MnIGFuZCAnZycgc3Vic3RpdHV0ZSBvcHRpb25zIHRvIGFsd2F5cyB0b2dn bGUsIGFuZCBmaXgNCisrCSAgZWRjb21wYXRpYmxlIG9wdGlvbiB0byBub3QgcmVzZXQgdGhlbS4N CisrCSsgRGlzcGxheSBleCBlcnJvciBtZXNzYWdlcyBpbiBpbnZlcnNlIHZpZGVvLg0KKysJKyBG aXggZXJyb3JiZWxscyBvcHRpb24gdG8gbWF0Y2ggaGlzdG9yaWMgcHJhY3RpY2UuDQorKwkrIERl bGV0ZSBmaXhlZCBjaGFyYWN0ZXIgZGlzcGxheSB0YWJsZSBpbiBmYXZvciBvZiB0YWJsZSBidWls dCBiYXNlZA0KKysJICBvbiB0aGUgY3VycmVudCBsb2NhbGUuDQorKwkrIEFkZCAiOnNldCBvY3Rh bCIgb3B0aW9uLCB0aGF0IGRpc3BsYXlzIHVua25vd24gY2hhcmFjdGVycyBhcyBvY3RhbA0KKysJ ICB2YWx1ZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBoZXhhZGVjaW1hbC4NCisrCSsgTWFrZSBh bGwgY29tbWFuZCBhbmQgdGV4dCBpbnB1dCBtb2RlcyBpbnRlcnJ1cHRpYmxlLg0KKysJKyBGaXgg ZXggaW5wdXQgbW9kZSB0byBkaXNwbGF5IGVycm9yIG1lc3NhZ2VzIGltbWVkaWF0ZWx5LCBpbnN0 ZWFkDQorKwkgIG9mIHdhaXRpbmcgZm9yIHRoZSBsaW5lcyB0byBiZSByZXNvbHZlZC4NCisrCSsg Rml4IGJ1ZyB3aGVyZSB2aSBjYWxsaW5nIGFwcGVuZCBjb3VsZCBvdmVyd3JpdGUgdGhlIGNvbW1h bmQuDQorKwkrIEZpeCBvZmYtYnktb25lIGluIHRoZSBleCBwcmludCByb3V0aW5lIHRhYiBjb2Rl Lg0KKysJKyBGaXggaW5jb3JyZWN0IF5EIHRlc3QgaW4gdmkgdGV4dCBpbnB1dCByb3V0aW5lcy4N CisrCSsgQWRkIGF1dG9pbmRlbnQgc3VwcG9ydCBmb3IgZXggdGV4dCBpbnNlcnQgcm91dGluZXMu DQorKwkrIEFkZCBTeXN0ZW0gViBzdWJzdGl0dXRlIGNvbW1hbmQgcmVwbGFjZW1lbnQgcGF0dGVy biBzZW1hbnRpY3MsDQorKwkgIHdoZXJlICclJyBtZWFucyB0aGUgbGFzdCByZXBsYWNlbWVudCBw YXR0ZXJuLg0KKysJKyBGaXggYnVnIHRoYXQgXCBkaWRuJ3QgZXNjYXBlIG5ld2xpbmVzIGluIGV4 IGNvbW1hbmRzLg0KKysJKyBSZWd1bGFyaXplIHRoZSBuYW1lcyBvZiBzcGVjaWFsIGNoYXJhY3Rl cnMgdG8gQ0hfKi4NCisrCSsgQ2hhbmdlIGhleCBpbnNlcnQgY2hhcmFjdGVyIGZyb20gXlZ4PGhl eF9jaGFyPiB0byBeWDxoZXhfY2hhcj4NCisrCSsgSW50ZWdyYXRlIFN5c3RlbSBWIHN0eWxlIGN1 cnNlcywgc28gU3VuT1MgYW5kIFNvbGFyaXMgcG9ydHMgY2FuDQorKwkgIHVzZSB0aGUgbmF0aXZl IGN1cnNlcyBpbXBsZW1lbnRhdGlvbi4NCisrMS4xMCAtPiAxLjExOiBUaHUgTWFyIDI0IDE2OjA3 OjQ1IEVTVCAxOTk0IChQVUJMSUNMWSBBVkFJTEFCTEUgVkVSU0lPTikNCisrCSsgQ2hhbmdlIEgs IE0sIGFuZCBMIHRvIHNldCB0aGUgYWJzb2x1dGUgbWFyaywgaGlzdG9yaWNhbCBwcmFjdGljZS4N CisrCSsgRml4IGJ1ZyBpbiBzdGVwcGluZyB0aHJvdWdoIG11bHRpcGxlIHRhZ3MgZmlsZXMuDQor KwkrIEFkZCAicmVtYXBtYXgiIG9wdGlvbiB0aGF0IHR1cm5zIG9mZiBtYXAgY291bnRzIHNvIHlv dSBjYW4gcmVtYXANCisrCSAgaW5maW5pdGVseS4gIElmIGl0J3Mgb2ZmLCB0ZXJtX2tleSgpIGNh biBiZSBpbnRlcnJ1cHRlZCBmcm9tIHRoZQ0KKysJICBrZXlib2FyZCwgd2hpY2ggd2lsbCBjYXVz ZSB0aGUgYnVmZmVycyB0byBmbHVzaC4gIEkgYWxzbyBkcm9wcGVkDQorKwkgIHRoZSBkZWZhdWx0 IG1heCBudW1iZXIgb2YgcmVtYXBzIHRvIDUwLiAgKE9ubHkgRGF2ZSBIaXR6J3MgVE0NCisrCSAg bWFjcm9zIGFuZCBtYXplIGFwcGVhciB0byBnbyBvdmVyIHRoYXQgbGltaXQuKQ0KKysJKyBDaGFu Z2UgOm1rZXhyYyB0byBub3QgZHVtcCB3ezMwMCwxMjAwLDk2MDB9LCBsaXNwIG9wdGlvbnMuDQor KwkrIEZpeCBiYWNrd2FyZCBzZWFyY2ggd2l0aGluIGEgbGluZSBidWcuDQorKwkrIENoYW5nZSBh bGwgdGhlIGluY2x1ZGVzIG9mICJwYXRobmFtZXMuaCIgdG8gdXNlIDw+J3Mgc28gdGhhdCB0aGUN CisrCSAgUE9SVCB2ZXJzaW9ucyBjYW4gdXNlIC1JLiB0byByZXBsYWNlIGl0IHdpdGggdGhlaXIg b3duIHZlcnNpb25zLg0KKysJKyBNYWtlIHJlYWRzIGFuZCB3cml0ZXMgaW50ZXJydXB0aWJsZS4g IFJld29yayBjb2RlIHRoYXQgZW50ZXJzIGFuZA0KKysJICBsZWF2ZXMgZXggZm9yICchJyBhbmQg ZmlsdGVyIGNvbW1hbmRzLCByZXdvcmsgYWxsIGludGVycnVwdCBhbmQNCisrCSAgdGltZXIgY29k ZS4NCisrCSsgRml4IGNvcmUgZHVtcCB3aGVuIHVzZXIgZGlzcGxheWVkIG9wdGlvbiBpbiAuZXhy YyBmaWxlLg0KKysJKyBGaXggYnVnIHdoZXJlIHdyaXRpbmcgZW1wdHkgZmlsZXMgZGlkbid0IHVw ZGF0ZSB0aGUgc2F2ZWQNCisrCSAgbW9kaWZpY2F0aW9uIHRpbWUuDQorKwkrIEZpeCBidWcgd2hl cmUgL3BhdHRlcm4vIGFkZHJlc3Npbmcgd2FzIGFsd2F5cyBhIGJhY2t3YXJkIHNlYXJjaC4NCisr CSsgRml4IGJ1ZyB0cmlnZ2VyZWQgYnkgYXV0b2luZGVudCBvZiBtb3JlIHRoYW4gMzIgY2hhcmFj dGVycywgd2hlcmUNCisrCSAgbnZpIHdhc24ndCBjaGVja2luZyB0aGUgcmlnaHQgVEVYVCBsZW5n dGguDQorKwkrIEZpeCBidWcgd2hlcmUgam9pbmluZyBvbmx5IGVtcHR5IGxpbmVzIGNhdXNlZCBh IGNvcmUgZHVtcC4NCisrMS4wOSAtPiAxLjEwOiBTYXQgTWFyIDE5IDE1OjQwOjI5IEVTVCAxOTk0 DQorKwkrIEZpeCAic2V0IGFsbCIgY29yZSBkdW1wLg0KKysxLjA4IC0+IDEuMDk6IFNhdCBNYXIg MTkgMTA6MTE6MTQgRVNUIDE5OTQNCisrCSsgSWYgdGhlIHRhZydzIGZpbGUgcGF0aCBpcyByZWxh dGl2ZSwgYW5kIGl0IGRvZXNuJ3QgZXhpc3QsIGNoZWNrDQorKwkgIHJlbGF0aXZlIHRvIHRoZSB0 YWcgZmlsZSBsb2NhdGlvbi4NCisrCSsgRml4IH4gY29tbWFuZCB0byBmcmVlIHRlbXBvcmFyeSBi dWZmZXIgb24gZXJyb3IgcmV0dXJuLg0KKysJKyBDcmVhdGUgdmkucmVmLCBhIGZpcnN0IGN1dCBh dCBhIHJlZmVyZW5jZSBkb2N1bWVudCBmb3IgdmkuDQorKwkgIFRoZSBtYW51YWwgcGFnZSBhbmQg dGhlIHJlZmVyZW5jZSBkb2N1bWVudCBvbmx5IGRvY3VtZW50IHRoZQ0KKysJICBzZXQgb3B0aW9u cywgc28gZmFyLg0KKysJKyBGaXggMUcgYnVnIG5vdCBhbHdheXMgZ29pbmcgdG8gdGhlIGZpcnN0 IG5vbi1ibGFuay4NCisrCSsgVXBncmFkZSBQT1JUL3JlZ2V4IHRvIHJlbGVhc2UgYWxwaGEzLjQs IGZyb20gSGVucnkgU3BlbmNlci4NCisrCSsgQWRkIE1LUyB2aSdzICJjZHBhdGgiIG9wdGlvbiwg c3VwcG9ydGluZyBhIGNkIHNlYXJjaCBwYXRoLg0KKysJKyBIYW5kbGUgaWYgc2VhcmNoIGFzIGEg bW90aW9uIHdhcyBkaXNjYXJkZWQsIGkuZS4gImQvPGVyYXNlPiIuDQorKwkrIENoYW5nZSBudmkg dG8gbm90IGNyZWF0ZSBtdWx0aXBsZSByZWNvdmVyeSBmaWxlcyBpZiBtb2RpZnlpbmcNCisrCSAg YSByZWNvdmVyZWQgZmlsZS4NCisrCSsgRGVjaWRlIHRvIGlnbm9yZSB0aGF0IHRoZSBjdXJzb3Ig aXMgYmVmb3JlIHRoZSAnJCcgd2hlbiBpbnNlcnRpbmcNCisrCSAgaW4gbGlzdCBtb2RlLiAgSXQn cyB0b28gaGFyZCB0byBmaXguDQorKzEuMDcgLT4gMS4wODogV2VkIE1hciAxNiAwNzozNzozNiBF U1QgMTk5NA0KKysJKyBMZWZ0cmlnaHQgYW5kIGJpZyBsaW5lIHNjcm9sbGluZyBmaXhlcy4gIFRo aXMgbWVhbnQgbW9yZSBjaGFuZ2VzDQorKwkgIHRvIHRoZSBzY3JlZW4gZGlzcGxheSBjb2RlLCBz byB0aGVyZSBtYXkgYmUgbmV3IHByb2JsZW1zLg0KKysJKyBEb24ndCBwZXJtaXQgc2VhcmNoLXN0 eWxlIGFkZHJlc3NlcyB1bnRpbCBhIGZpbGUgaGFzIGJlZW4gcmVhZC4NCisrCSsgImNbV3ddIiBj b21tYW5kIGluY29ycmVjdGx5IGhhbmRsZWQgdGhlICJpbiB3aGl0ZXNwYWNlIiBjYXNlLg0KKysJ KyBGaXgga2V5IHNwYWNlIGFsbG9jYXRpb24gYnVnIHRyaWdnZXJlZCBieSBjdXQvcGFzdGUgdW5k ZXIgU3VuT1MuDQorKwkrIEV4IG1vdmUgY29tbWFuZCBnb3QgdGhlIGZpbmFsIGN1cnNvciBwb3Np dGlvbiB3cm9uZy4NCisrCSsgRGVsZXRlICJvcHRpbWl6ZSBvcHRpb24gbm90IGltcGxlbWVudGVk IiBtZXNzYWdlLg0KKysJKyBNYWtlIHRoZSBsaXRlcmFsLW5leHQgY2hhcmFjdGVyIHR1cm4gb2Zm IG1hcHBpbmcgZm9yIHRoZSBuZXh0DQorKwkgIGNoYXJhY3RlciBpbiB0ZXh0IGlucHV0IG1vZGUu DQorKzEuMDYgLT4gMS4wNzogTW9uIE1hciAxNCAxMToxMDozMyBFU1QgMTk5NA0KKysJKyBUaGUg IndpcmUgZG93biIgY2hhbmdlIGluIDEuMDUgYnJva2UgZXggY29tbWFuZCBwYXJzaW5nLCB0aGVy ZQ0KKysJICB3YXNuJ3QgYSBjb3JyZXNwb25kaW5nIGNoYW5nZSB0byBoYW5kbGUgbXVsdGlwbGUg S19WTE5FWFQgY2hhcnMuDQorKwkrIEZpeCBmaW5hbCBwb3NpdGlvbiBmb3IgdmkncyAndCcgY29t bWFuZC4NCisrMS4wNSAtPiAxLjA2OiBTdW4gTWFyIDEzIDE2OjEyOjUyIEVTVCAxOTk0DQorKwkr IFdpcmUgZG93biBeRCwgXkgsIF5XLCBhbmQgXlYsIHJlZ2FyZGxlc3Mgb2YgdGhlIHVzZXIncyB0 ZXJtaW9zDQorKwkgIHZhbHVlcy4NCisrCSsgQWRkIF5EIGFzIHRoZSBleCBzY3JvbGwgY29tbWFu ZC4NCisrCSsgU3VwcG9ydCBeUSBhcyBhIGxpdGVyYWwtbmV4dCBjaGFyYWN0ZXIuDQorKwkrIFJl d29yayBhYmJyZXZpYXRpb25zIHRvIGJlIGRlbGltaXRlZCBieSBhbnkgIWlud29yZCgpIGNoYXJh Y3Rlci4NCisrCSsgQWRkIG9wdGlvbnMgZGVzY3JpcHRpb24gdG8gdGhlIG1hbnVhbCBwYWdlLg0K KysJKyBNaW5vciBzY3JlZW4gY2FjaGUgZml4IGZvciBzdmlfZ2V0LmMuDQorKwkrIFJld29yayBi ZWF1dGlmeSBvcHRpb24gc3VwcG9ydCB0byBtYXRjaCBoaXN0b3JpY2FsIHByYWN0aWNlLg0KKysJ KyBFeGl0IGltbWVkaWF0ZWx5IGlmIG5vdCByZWFkaW5nIGZyb20gYSB0dHkgYW5kIGEgY29tbWFu ZCBmYWlscy4NCisrCSsgRGVmYXVsdCB0aGUgU3VuT1MgNC4qIHBvcnRzIHRvIHRoZSBkaXN0cmli dXRlZCBjdXJzZXMsIG5vdCBTTUkncy4NCisrMS4wNCAtPiAxLjA1OiBUaHUgTWFyIDI0IDE2OjA3 OjQ1IEVTVCAxOTk0DQorKwkrIE1ha2UgY3Vyc29yIGtleXMgd29yayBpbiBpbnB1dCBtb2RlLg0K KysJKyBSZXdvcmsgc2NyZWVuIGNvbHVtbiBjb2RlIGluIHZpIGN1cnNlcyBzY3JlZW4uICBNQUpP UiBDSEFOR0UgLS0NCisrCSAgYWZ0ZXIgdGhpcywgd2UnbGwgYmUgZGVidWdnaW5nIGN1cnNlcyBz Y3JlZW4gcHJlc2VudGF0aW9uIGZyb20NCisrCSAgc2NyYXRjaC4NCisrCSsgRXhwbG9kZSBpbmNs dWRlIGZpbGVzIGluIHZpLmggaW50byB0aGUgc291cmNlIGZpbGVzLg0KKysxLjAzIC0+IDEuMDQ6 IFN1biBNYXIgIDYgMTQ6MTQ6MTYgRVNUIDE5OTQNCisrCSsgTWFrZSB0aGUgZXggbW92ZSBjb21t YW5kIGtlZXAgdGhlIG1hcmtzIG9uIHRoZSBtb3ZlZCBsaW5lcy4NCisrCSsgQ2hhbmdlIHJlc2l6 ZSBzZW1hbnRpY3Mgc28geW91IGNhbiBzZXQgdGhlIHNjcmVlbiBzaXplIHRvIGENCisrCSAgc3Bl Y2lmaWMgdmFsdWUuICBBIGNvdXBsZSBvZiBzY3JlZW4gZml4ZXMgZm9yIHRoZSByZXNpemUgY29k ZS4NCisrCSsgRml4ZXMgZm9yIGZvcmVncm91bmQvYmFja2dyb3VuZCBkdWUgdG8gU0lHV0lOQ0gu DQorKwkrIENvbXBsZXRlIHJld29yayBvZiBhbGwgb2YgdmkncyBjdXJzb3IgbW92ZW1lbnRzLiAg VGhlIHVuZGVybHlpbmcNCisrCSAgYXNzdW1wdGlvbiBpbiB0aGUgb2xkIGNvZGUgd2FzIHRoYXQg dGhlIHN0YXJ0aW5nIGN1cnNvciBwb3NpdGlvbg0KKysJICB3YXMgcGFydCBvZiB0aGUgcmFuZ2Ug b2YgbGluZXMgY3V0IG9yIGRlbGV0ZWQuICBUaGUgY29tbWFuZA0KKysJICAiZFtbIiBpcyBhbiBl eGFtcGxlIHdoZXJlIHRoaXMgaXNuJ3QgdHJ1ZS4gIENoYW5nZSBpdCBzbyB0aGF0IGFsbA0KKysJ ICBtb3Rpb24gY29tcG9uZW50IGNvbW1hbmRzIHNldCB0aGUgZmluYWwgY3Vyc29yIHBvc2l0aW9u IHNlcGFyYXRlbHkNCisrCSAgZnJvbSB0aGUgcmFuZ2UsIGFzIGl0IGNhbid0IGJlIGRvbmUgY29y cmVjdGx5IGxhdGVyLiAgVGhpcyBpcyBhDQorKwkgIE1BSk9SIENIQU5HRSAtLSBhZnRlciB0aGlz IGNoYW5nZSwgd2UnbGwgYmUgZGVidWdnaW5nIHRoZSBjdXJzb3INCisrCSAgcG9zaXRpb25pbmcg ZnJvbSBzY3JhdGNoLg0KKysJKyBSZXdyaXRlIHRoZSBCLCBiLCBFLCBlIGNvbW1hbmRzIHRvIHVz ZSB2aSdzIGdldGMoKSBpbnRlcmZhY2UNCisrCSAgaW5zdGVhZCBvZiByb2xsaW5nIHRoZWlyIG93 bi4NCisrCSsgQWRkIGEgc2Vjb25kIE1BUksgc3RydWN0dXJlLCBMTUFSSywgd2hpY2ggaXMgdGhl IGxhcmdlciBtYXJrDQorKwkgIG5lZWRlZCBieSB0aGUgbG9nZ2luZyBhbmQgbWFyayBxdWV1ZSBj b2RlLiAgRXZlcnl0aGluZyBlbHNlIHVzZXMNCisrCSAgdGhlIHJld29ya2VkIE1BUksgc3RydWN0 dXJlLCB3aGljaCBpcyBzaW1wbHkgYSBsaW5lL2NvbHVtbiBwYWlyLg0KKysJKyBSZXdvcmsgY3V0 L2RlbGV0ZSB0byBub3QgZXhwZWN0IDEtcGFzdC10aGUtZW5kIGluIHRoZSByYW5nZSwgYnV0DQor KwkgIHRvIGFjdCBvbiB0ZXh0IHRvIHRoZSBlbmQgb2YgdGhlIHJhbmdlLCBpbmNsdXNpdmUuDQor KwkrIFN5bmMgb24gd3JpdGUncywgdG8gZm9yY2UgTkZTIHRvIGZsdXNoLg0KKysxLjAxIC0+IDEu MDM6IFN1biBKYW4gMjMgMTc6NTA6MzUgRVNUIDE5OTQgKFBVQkxJQ0xZIEFWQUlMQUJMRSBWRVJT SU9OKQ0KKysJKyBUYWcgc3RhY2sgZml4ZXMsIHdhcyByZXR1cm5pbmcgdG8gdGhlIHRhZywgbm90 IHRoZSBwb3NpdGlvbiBmcm9tDQorKwkgIHdoaWNoIHRoZSB1c2VyIHRhZ2dlZC4NCisrCSsgT25s eSB1c2UgZnJvbSB0aGUgY3Vyc29yIHRvIHRoZSBlbmQgb2YgdGhlIHdvcmQgaW4gY3Vyc29yIHdv cmQNCisrCSAgc2VhcmNoZXMgYW5kIHRhZ3MuICAoTWF0Y2hlcyBoaXN0b3JpY2FsIHZpIGJlaGF2 aW9yLikNCisrCSsgRml4IGRlbGV0ZS1sYXN0LWxpbmUgYnVnIHdoZW4gbGluZSBudW1iZXIgb3B0 aW9uIHNldC4NCisrCSsgRml4IHVzYWdlIGxpbmUgZm9yIDpzcGxpdCBjb21tYW5kLg0KKysJKyBJ ZiBPX05VTUJFUiBzZXQsIGxvbmcgaW5wdXQgbGluZXMgd291bGQgZXZlbnR1YWxseSBmYWlsLCB0 aGUgY29sdW1uDQorKwkgIGNvdW50IGZvciB0aGUgc2Vjb25kIHNjcmVlbiBvZiBsb25nIGxpbmVz IHdhc24ndCBzZXQgY29ycmVjdGx5Lg0KKysJKyBGaXggZm9yIFtbIHJlYWNoaW5nIFNPRiB3aXRo IGEgY29sdW1uIGxvbmdlciB0aGFuIHRoZSBmaXJzdCBsaW5lLg0KKysJKyBGaXggZm9yIG11bHRp cGxlIGVycm9yIG1lc3NhZ2VzIGlmIG5vIHNjcmVlbiBkaXNwbGF5ZWQuDQorKwkrIEZpeCA6cmVh ZCB0byBzZXQgYWx0ZXJuYXRlIGZpbGUgbmFtZSBhcyBpbiBoaXN0b3JpY2FsIHByYWN0aWNlLg0K KysJKyBGaXggY3V0IHRvIHJvdGF0ZSB0aGUgbnVtZXJpYyBidWZmZXJzIGlmIGxpbmUgbW9kZSBm bGFnIHNldC4NCisrMS4wMCAtPiAxLjAxOiBXZWQgSmFuIDEyIDEzOjM3OjE4IEVTVCAxOTk0DQor KwkrIERvbid0IHB1dCBjdXQgaXRlbXMgaW50byBudW1lcmljIGJ1ZmZlcnMgaWYgY3V0dGluZyBs ZXNzIHRoYW4NCisrCSAgcGFydHMgb2YgdHdvIGxpbmVzLg0KKyswLjk0IC0+IDEuMDA6IE1vbiBK YW4gMTAgMDI6Mjc6MjcgRVNUIDE5OTQNCisrCSsgUmVhZC1haGVhZCBub3QgdGhlcmU7IEJTRCB0 dHkgZHJpdmVyIHByb2JsZW0sIFN1bk9TIGN1cnNlcw0KKysJICBwcm9ibGVtLg0KKysJKyBHbG9i YWwgY29tbWFuZCBjb3VsZCBlcnJvciBpZiBpdCBkZWxldGVkIHRoZSBsYXN0IGxpbmUgb2YNCisr CSAgdGhlIGZpbGUuDQorKwkrIENoYW5nZSAnLicgdG8gb25seSBhcHBseSB0byB0aGUgJ3UnIGlm IGVudGVyZWQgaW1tZWRpYXRlbHkNCisrCSAgYWZ0ZXIgdGhlICd1JyBjb21tYW5kLiAgIjFwdS51 LnUuIGlzIHN0aWxsIGJyb2tlbiwgYnV0IEkNCisrCSAgZXhwZWN0IHRoYXQgaXQncyBnb2luZyB0 byBiZSBzYWNyaWZpY2VkIGZvciBtdWx0aXBsZSB1bmRvLg0KKysJKyBJZiBiYWNrd2FyZCBtb3Rp b24gb24gYSBjb21tYW5kLCBub3cgbW92ZSB0byB0aGUgcG9pbnQ7IGdldA0KKysJICB5YW5rIGN1 cnNvciBwb3NpdGlvbmluZyBjb3JyZWN0Lg0KKysJKyBSZXdvcmsgY3V0IGJ1ZmZlcnMgdG8gbWF0 Y2ggaGlzdG9yaWMgcHJhY3RpY2UgLS0geWFuay9kZWxldGUNCisrCSAgbnVtZXJpYyBidWZmZXJz IHJlZG9uZSBzZW5zaWJseSwgaWdub3JpbmcgaGlzdG9yaWMgcHJhY3RpY2UuDQorKzAuOTIgLT4g MC45MzogTW9uIERlYyAyMCAxOTo1MjoxNCBFU1QgMTk5Mw0KKysJKyBDaHJpc3RvcyBab3VsYXMg cmVpbXBsZW1lbnRlZCB0aGUgc2NyaXB0IHdpbmRvd3MgdXNpbmcgcHR5J3MsDQorKwkgIHdoaWNo IG1lYW5zIHRoYXQgdGhleSBub3cgd29yayByZWFzb25hYmx5LiAgVGhlIGRvd24gc2lkZSBvZg0K KysJICB0aGlzIGlzIHRoYXQgYWxtb3N0IGFsbCBwb3J0cyBvdGhlciB0aGFuIDQuNEJTRCBuZWVk IHRvIGluY2x1ZGUNCisrCSAgdHdvIG5ldyBmaWxlcywgbG9naW5fdHR5LmMgYW5kIHB0eS5jIGZy b20gdGhlIFBPUlQvY2xpYiBkaXJlY3RvcnkuDQorKwkgIEkndmUgYWRkZWQgdGhlbSB0byB0aGUg TWFrZWZpbGVzLg0KKysJKyBBbGwgY2FsbG9jL21hbGxvYy9yZWFsbG9jIGZ1bmN0aW9ucyBub3cg Y2FzdCB0aGVpciBwb2ludGVycywgZm9yDQorKwkgIFN1bk9TIC0tIHRoZXJlIHNob3VsZCBiZSBm YXIgZmV3ZXIgd2FybmluZyBtZXNzYWdlcywgZHVyaW5nIHRoZQ0KKysJICBidWlsZC4gIFRoZSBy ZW1haW5pbmcgbWVzc2FnZXMgYXJlIHdoZXJlIENIQVJfVCdzIG1lZXQgY2hhciAqJ3MsDQorKwkg IGkuZS4gd2hlcmUgOC1iaXQgY2xlYW4gbWVldHMgc3RyY21wLg0KKysJKyBUaGUgdXNlcidzIGFy Z3VtZW50IGxpc3QgaGFuZGxpbmcgaGFzIGJlZW4gcmV3b3JrZWQgc28gdGhhdCB0aGVyZQ0KKysJ ICBpcyBhbHdheXMgYSBzaW5nbGUgY29uc2lzdGVudCBwb3NpdGlvbiBmb3IgdXNlIGJ5IDpuZXh0 LCA6cHJldiBhbmQNCisrCSAgOnJld2luZC4NCisrCSsgQWxsIG9mIHRoZSBoaXN0b3JpY2FsIG9w dGlvbnMgYXJlIG5vdyBhdCBsZWFzdCBhY2NlcHRlZCwgYWx0aG91Z2gNCisrCSAgbm90IGFsbCBv ZiB0aGVtIGFyZSBpbXBsZW1lbnRlZC4gIChFZGNvbXBhdGlibGUsIGhhcmR0YWJzLCBsaXNwLA0K KysJICBvcHRpbWl6ZSwgcmVkcmF3LCBhbmQgc2xvd29wZW4gYXJlbid0IGltcGxlbWVudGVkLikN CisrCSsgVGhlIFJFJ3MgaGF2ZSBiZWVuIHJld29ya2VkIHNvIHRoYXQgbWF0Y2hlcyBvZiBsZW5n dGggMCBhcmUgaGFuZGxlZA0KKysJICBpbiB0aGUgc2FtZSB3YXkgYXMgdmkgdXNlZCB0byBoYW5k bGUgdGhlbS4NCisrCSsgU2V2ZXJhbCBtb3JlIG1hcHBpbmcgZml4ZXMgYW5kIGV4IHBhcnNlciBh ZGRyZXNzaW5nIGZpeGVzLg0KK2RpZmYgLU5hdXIgbnZpLTEuODEuNi5vcmlnL252aS0xLjc5L2Rv Y3MvdHV0b3JpYWwvdmkuYWR2YW5jZWQgbnZpLTEuODEuNi9udmktMS43OS9kb2NzL3R1dG9yaWFs L3ZpLmFkdmFuY2VkDQorLS0tIG52aS0xLjgxLjYub3JpZy9udmktMS43OS9kb2NzL3R1dG9yaWFs L3ZpLmFkdmFuY2VkCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwDQorKysrIG52 aS0xLjgxLjYvbnZpLTEuNzkvZG9jcy90dXRvcmlhbC92aS5hZHZhbmNlZAkyMDA4LTA2LTIyIDIw OjM1OjM1LjAwMDAwMDAwMCArMDIwMA0KK0BAIC0wLDAgKzEsMTQ1OCBAQA0KKytTZWN0aW9uIDI2 OiBJbmRleCB0byB0aGUgcmVzdCBvZiB0aGUgdHV0b3JpYWwNCisrDQorK1RoZSByZW1haW5kZXIg b2YgdGhlIHR1dG9yaWFsIGNhbiBiZSBwZXJ1c2VkIGF0IHlvdXIgbGVpc3VyZS4gIFNpbXBseSBm aW5kIHRoZQ0KKyt0b3BpYyBvZiBpbnRlcmVzdCBpbiB0aGUgZm9sbG93aW5nIGxpc3QsIGFuZCB7 L1NlY3Rpb24geHg6L15NfSB0byBnZXQgdG8gdGhlDQorK2FwcHJvcHJpYXRlIHNlY3Rpb24uICAo UmVtZW1iZXIgdGhhdCBeTSBtZWFucyB0aGUgcmV0dXJuIGtleSkgDQorKw0KKytUaGUgbWF0ZXJp YWwgaW4gdGhlIGZvbGxvd2luZyBzZWN0aW9ucyBpcyBub3QgbmVjZXNzYXJpbHkgaW4gYSBib3R0 b20gdXANCisrb3JkZXIuICBJdCBzaG91bGQgYmUgZmFpcmx5IG9idmlvdXMgdGhhdCBpZiBhIHNl Y3Rpb24gbWVudGlvbnMgc29tZXRoaW5nIHdpdGgNCisrd2hpY2ggeW91IGFyZSBub3QgZmFtaWxp YXIsIHNheSwgYnVmZmVycywgeW91IG1pZ2h0IHsvYnVmZmVyL15NfSBmb2xsb3dlZCBieQ0KKytz ZXZlcmFsIHtufSB0byBkbyBhIGtleXdvcmQgc2VhcmNoIG9mIHRoZSBmaWxlIGZvciBtb3JlIGRl dGFpbHMgb24gdGhhdCBpdGVtLg0KKytBbm90aGVyIHBvaW50IHRvIHJlbWVtYmVyIGlzIHRoYXQg Y29tbWFuZHMgYXJlIHN1cnJvdW5kZWQgYnkgY3VybHktYnJhY2VzIGFuZA0KKytjYW4gdGhlcmVm b3JlIGJlIGZvdW5kIHJhdGhlciBlYXNpbHkuICBUbyBzZWUgd2hlcmUsIHNheSwgdGhlIFggY29t bWFuZCBpcw0KKyt1c2VkIHRyeSB7L3tYfS9eTX0uICBTdWJzZXF1ZW50IHtufSB3aWxsIHNob3cg eW91IG90aGVyIHBsYWNlcyB0aGUgY29tbWFuZCB3YXMNCisrdXNlZC4gIFdlIGhhdmUgdHJpZWQg dG8gbWFpbnRhaW4gdGhlIGNvbnZlbnRpb24gb2YgcGxhY2luZyB0aGUgY29tbWFuZCBsZXR0ZXIN Cisrc3Vycm91bmRlZCBieSBjdXJseS1icmFjZXMgb24gdGhlIHNlY3Rpb24gbGluZSB3aGVyZSB0 aGF0IGNvbW1hbmQgaXMNCisrbWVudGlvbmVkLg0KKysNCisrRmluYWxseSwgeW91IHNob3VsZCBo YXZlIGVub3VnaCAnc2F2dnknIGF0IHRoaXMgcG9pbnQgdG8gYmUgYWJsZSB0byBkbyB5b3VyDQor K293biBleHBlcmltZW50YXRpb24gd2l0aCBjb21tYW5kcyB3aXRob3V0IHRvbyBtdWNoIGhhbmQt aG9sZGluZyBvbiB0aGUgcGFydCBvZg0KKyt0aGUgdHV0b3JpYWwuICBFeHBlcmltZW50YXRpb24g aXMgdGhlIGJlc3Qgd2F5IHRvIGxlYXJuIHRoZSBlZmZlY3RzIG9mIHRoZQ0KKytjb21tYW5kcy4N CisrDQorKyBTZWN0aW9uICAgICAgVG9waWMgLSBkZXNjcmlwdGlvbg0KKysgLS0tLS0tLSAgICAg IC0tLS0tLS0tLS0tLS0tLS0tLS0NCisrKFNlY3Rpb25zIDEgdGhyb3VnaCAyNSBhcmUgbG9jYXRl ZCBpbiB0aGUgZmlsZSB2aS5iZWdpbm5lci4pDQorKyAgICAxICAgICAgICAgaW50cm9kdWN0aW9u OiB7XkZ9IHtaWn0NCisrICAgIDIgICAgICAgICBpbnRyb2R1Y3Rpb24gKGNvbid0KSBhbmQgcG9z aXRpb25pbmc6IHteRn0ge15CfQ0KKysgICAgMyAgICAgICAgIGludHJvZHVjdGlvbiAoY29uJ3Qp IGFuZCBwb3NpdGlvbmluZzoge15GfSB7XkJ9DQorKyAgICA0ICAgICAgICAgcG9zaXRpb25pbmc6 IHteRn0ge15CfSBeTSAocmV0dXJuIGtleSkNCisrICAgIDUgICAgICAgICBxdWl0dGluZzogezpx IX0gXk0ga2V5DQorKyAgICA2ICAgICAgICAgbWFya2luZywgY3Vyc29yIGFuZCBzY3JlZW4gcG9z aXRpb25pbmc6IHttfSB7R30geyd9IHt6fQ0KKysgICAgNyAgICAgICAgIG1hcmtpbmcsIGN1cnNv ciBhbmQgc2NyZWVuIHBvc2l0aW9uaW5nOiB7bX0ge0d9IHsnfSB7en0NCisrICAgIDggICAgICAg ICBtYXJraW5nLCBjdXJzb3IgYW5kIHNjcmVlbiBwb3NpdGlvbmluZzoge3p9IHttfSB7J30NCisr ICAgIDkgICAgICAgICBtYXJraW5nIGFuZCBwb3NpdGlvbmluZzoge219IHsnJ30NCisrICAgMTAg ICAgICAgICBsaW5lIHBvc2l0aW9uaW5nOiB7Xk19IHstfQ0KKysgICAxMSAgICAgICAgIHNjcm9s bGluZyB3aXRoIHteTX0NCisrICAgMTIgICAgICAgICBzY3JvbGxpbmcgd2l0aCB7LX0gYW5kIHNj cmVlbiBhZGp1c3RtZW50IHt6fQ0KKysgICAxMyAgICAgICAgIG5vdGVzIG9uIHVzZSBvZiB0dXRv cmlhbA0KKysgICAxNCAgICAgICAgIG90aGVyIHNjcm9sbGluZyBhbmQgcG9zdGlvbmluZyBjb21t YW5kczoge15FfSB7Xll9IHteRH0ge15VfQ0KKysgICAxNSAgICAgICAgIHNlYXJjaGluZzogey8g Li4gL15NfQ0KKysgICAxNiAgICAgICAgIHNlYXJjaGluZzogez8gLi4gP15NfSB7bn0gKGluIHNl YXJjaCBzdHJpbmdzIF4gJCkNCisrICAgMTcgICAgICAgICBzZWFyY2hpbmc6IFwgYW5kIG1hZ2lj LWNoYXJhY3RlcnMgaW4gc2VhcmNoIHN0cmluZ3MNCisrICAgMTggICAgICAgICBjb2xvbiBjb21t YW5kcywgZXhpdGluZzogezp9IHtaWn0NCisrICAgMTkgICAgICAgICBzY3JlZW4gcG9zaXRpb25p bmc6IHtIfSB7TX0ge0x9DQorKyAgIDIwICAgICAgICAgY2hhcmFjdGVyIHBvc2l0aW9uaW5nOiB7 d30ge2J9IHswfSB7V30ge0J9IHtlfSB7RX0geyd9IHtgfQ0KKysgICAyMSAgICAgICAgIGN1cnNv ciBwb3NpdGlvbmluZzoge2x9IHtrfSB7an0ge2h9DQorKyAgIDIyICAgICAgICAgYWRkaW5nIHRl eHQ6IHtpfSB7YX0ge0l9IHtBfSB7b30ge099IF5bIChlc2NhcGUga2V5KQ0KKysgICAyMyAgICAg ICAgIGNoYXJhY3RlciBtYW5pcHVsYXRpb246IHtmfSB7eH0ge1h9IHt3fSB7bH0ge3J9IHtSfSB7 c30ge1N9IHtKfQ0KKysgICAyNCAgICAgICAgIHVuZG86IHt1fSB7VX0NCisrICAgMjUgICAgICAg ICByZXZpZXcNCisrKFRoZSBmb2xsb3dpbmcgc2VjdGlvbnMgYXJlIGluIHRoaXMgZmlsZS4pDQor KyAgIDI2ICAgICAgICAgSW5kZXggdG8gdGhlIHJlc3Qgb2YgdGhlIHR1dG9yaWFsICoqKioqKioq IFlPVSBBUkUgSEVSRSAqKioqKioqDQorKyAgIDI3ICAgICAgICAgZGlzY3Vzc2lvbiBvZiByZXBl YXQgY291bnRzIGFuZCB0aGUgcmVwZWF0IGNvbW1hbmQ6IHsufQ0KKysgICAyOCAgICAgICAgIG1v cmUgb24gbG93LWxldmVsIGNoYXJhY3RlciBtb3Rpb25zOiB7dH0ge1R9IHt8fQ0KKysgICAyOSAg ICAgICAgIGFkdmFuY2VkIGNvcnJlY3Rpb24gb3BlcmF0b3JzOiB7ZH0ge2N9DQorKyAgIDMwICAg ICAgICAgdXBkYXRpbmcgdGhlIHNjcmVlbjoge15SfQ0KKysgICAzMSAgICAgICAgIHRleHQgYnVm ZmVyczogeyJ9DQorKyAgIDMyICAgICAgICAgcmVhcnJhbmdpbmcgYW5kIGR1cGxpY2F0aW5nIHRl eHQ6IHtwfSB7UH0ge3l9IHtZfQ0KKysgICAzMyAgICAgICAgIHJlY292ZXJpbmcgbG9zdCBsaW5l cw0KKysgICAzNCAgICAgICAgIGFkdmFuY2VkIGZpbGUgbWFuaXB1bGF0aW9uIHdpdGggdmkNCisr ICAgMzQuMSAgICAgICAgICBtb3JlIHRoYW4gb25lIGZpbGUgYXQgYSB0aW1lOiB7Om59DQorKyAg IDM0LjIgICAgICAgICAgcmVhZGluZyBmaWxlcyBhbmQgY29tbWFuZCBvdXRwdXQ6IHs6cn0NCisr ICAgMzQuMyAgICAgICAgICBpbnZva2luZyB2aSBmcm9tIHdpdGhpbiB2aTogezplfSB7OnZpfQ0K KysgICAzNC40ICAgICAgICAgIGVzY2FwaW5nIHRvIGEgc2hlbGw6IHs6c2h9IHs6IX0NCisrICAg MzQuNSAgICAgICAgICB3cml0aW5nIHBhcnRzIG9mIGEgZmlsZTogezp3fQ0KKysgICAzNC42ICAg ICAgICAgIGZpbHRlcmluZyBwb3J0aW9ucyBvZiB0ZXh0OiB7IX0NCisrICAgMzUgICAgICAgICBh ZHZhbmNlZCBzZWFyY2hpbmc6IG1hZ2ljIHBhdHRlcm5zIA0KKysgICAzNiAgICAgICAgIGFkdmFu Y2VkIHN1YnN0aXR1dGlvbjogezpzfSANCisrICAgMzcgICAgICAgICBhZHZhbmNlZCBsaW5lIGFk ZHJlc3Npbmc6IHs6cH0gezpnfSB7OnZ9DQorKyAgIDM4ICAgICAgICAgaGlnaGVyIGxldmVsIHRl eHQgb2JqZWN0cyBhbmQgbnJvZmY6ICggKSB7IH0gW1sgXV0NCisrICAgMzkgICAgICAgICBtb3Jl IGFib3V0IGluc2VydGluZyB0ZXh0DQorKyAgIDQwICAgICAgICAgbW9yZSBvbiBvcGVyYXRvcnM6 IHtkfSB7Y30gezx9IHs+fSB7IX0gez19IHt5fQ0KKysgICA0MSAgICAgICAgIGFiYnJldmlhdGlv bnM6IHs6YWJ9DQorKyAgIDQyICAgICAgICAgdmkncyByZWxhdGlvbnNoaXAgd2l0aCB0aGUgZXgg ZWRpdG9yOiB7On0NCisrICAgNDMgICAgICAgICB2aSBvbiBoYXJkY29weSB0ZXJtaW5hbHMgYW5k IGR1bWIgdGVybWluYWxzOiBvcGVuIG1vZGUNCisrICAgNDQgICAgICAgICBvcHRpb25zOiB7OnNl dH0ge3NldGVudiBFWElOSVR9DQorKyAgIDQ0LjEgICAgICAgICAgYXV0b2luZGVudA0KKysgICA0 NC4yICAgICAgICAgIGF1dG9wcmludA0KKysgICA0NC4zICAgICAgICAgIGF1dG93cml0ZQ0KKysg ICA0NC40ICAgICAgICAgIGJlYXV0aWZ5DQorKyAgIDQ0LjUgICAgICAgICAgZGlyZWN0b3J5DQor KyAgIDQ0LjYgICAgICAgICAgZWRjb21wYXRpYmxlDQorKyAgIDQ0LjcgICAgICAgICAgZXJyb3Ji ZWxscw0KKysgICA0NC44ICAgICAgICAgIGhhcmR0YWJzDQorKyAgIDQ0LjkgICAgICAgICAgaWdu b3JlY2FzZQ0KKysgICA0NC4xMCAgICAgICAgIGxpc3ANCisrICAgNDQuMTEgICAgICAgICBsaXN0 DQorKyAgIDQ0LjEyICAgICAgICAgbWFnaWMNCisrICAgNDQuMTMgICAgICAgICBtZXNnICAgICAg ICAgICAgICAgICAgICANCisrICAgNDQuMTQgICAgICAgICBudW1iZXINCisrICAgNDQuMTUgICAg ICAgICBvcGVuDQorKyAgIDQ0LjE2ICAgICAgICAgb3B0aW1pemUNCisrICAgNDQuMTcgICAgICAg ICBwYXJhZ3JhcGhzDQorKyAgIDQ0LjE4ICAgICAgICAgcHJvbXB0DQorKyAgIDQ0LjE5ICAgICAg ICAgcmVhZG9ubHkNCisrICAgNDQuMjAgICAgICAgICByZWRyYXcNCisrICAgNDQuMjEgICAgICAg ICByZW1hcA0KKysgICA0NC4yMiAgICAgICAgIHJlcG9ydA0KKysgICA0NC4yMyAgICAgICAgIHNj cm9sbA0KKysgICA0NC4yNCAgICAgICAgIHNlY3Rpb25zDQorKyAgIDQ0LjI1ICAgICAgICAgc2hl bGwNCisrICAgNDQuMjYgICAgICAgICBzaGlmdHdpZHRoDQorKyAgIDQ0LjI3ICAgICAgICAgc2hv d21hdGNoDQorKyAgIDQ0LjI4ICAgICAgICAgc2xvd29wZW4NCisrICAgNDQuMjkgICAgICAgICB0 YWJzdG9wDQorKyAgIDQ0LjMwICAgICAgICAgdGFncw0KKysgICA0NC4zMSAgICAgICAgIHRhZ2xl bmd0aA0KKysgICA0NC4zMiAgICAgICAgIHRlcm0NCisrICAgNDQuMzMgICAgICAgICB0ZXJzZQ0K KysgICA0NC4zNCAgICAgICAgIHRpbWVvdXQNCisrICAgNDQuMzUgICAgICAgICB0dHl0eXBlDQor KyAgIDQ0LjM2ICAgICAgICAgd2Fybg0KKysgICA0NC4zNyAgICAgICAgIHdpbmRvdw0KKysgICA0 NC4zOCAgICAgICAgIHdyYXBzY2FuDQorKyAgIDQ0LjM5ICAgICAgICAgd3JhcG1hcmdpbg0KKysg ICA0NC40MCAgICAgICAgIHdyaXRlYW55DQorKyAgIDQ0LjQxICAgICAgICAgdzMwMCwgdzEyMDAs IHc5NjAwDQorKw0KKytTZWN0aW9uIDI3OiByZXBldGl0aW9uIGNvdW50cyBhbmQgdGhlIHJlcGVh dCBjb21tYW5kIHsufQ0KKysNCisrTW9zdCB2aSBjb21tYW5kcyB3aWxsIHVzZSBhIHByZWNlZGlu ZyBjb3VudCB0byBhZmZlY3QgdGhlaXIgYmVoYXZpb3IgaW4gc29tZQ0KKyt3YXkuICBXZSBoYXZl IGFscmVhZHkgc2VlbiBob3cgezN4fSBkZWxldGVzIHRocmVlIGNoYXJhY3RlcnMsIGFuZCB7MjJH fSBtb3Zlcw0KKyt1cyB0byBsaW5lIDIyIG9mIHRoZSBmaWxlLiAgRm9yIGFsbW9zdCBhbGwgb2Yg dGhlIGNvbW1hbmRzLCBvbmUgY2FuIHN1cnZpdmUgYnkNCisrdGhpbmtpbmcgb2YgdGhlc2UgbGVh ZGluZyBudW1iZXJzIGFzIGEgJ3JlcGVhdCBjb3VudCcgc3BlY2lmeWluZyB0aGF0IHRoZQ0KKytj b21tYW5kIGlzIHRvIGJlIHJlcGVhdGVkIHNvIG1hbnkgbnVtYmVyIG9mIHRpbWVzLg0KKysNCisr T3RoZXIgY29tbWFuZHMgdXNlIHRoZSByZXBlYXQgY291bnQgc2xpZ2h0bHkgZGlmZmVyZW50bHks IGxpa2UgdGhlIHtHfSBjb21tYW5kDQorK3doaWNoIHVzZSBpdCBhcyBhIGxpbmUgbnVtYmVyLg0K KysNCisrRm9yIGV4YW1wbGU6DQorKw0KKyt7M15EfSBtZWFucyBzY3JvbGwgZG93biBpbiB0aGUg ZmlsZSB0aHJlZSBsaW5lcy4gIFN1YnNlcXVlbnQge15EfSBPUiB7XlV9IHdpbGwNCisrc2Nyb2xs IG9ubHkgdGhyZWUgbGluZXMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBkaXJlY3Rpb25zIQ0KKysNCisr ezN6Xk19IHNheXMgcHV0IGxpbmUgdGhyZWUgb2YgdGhlIGZpbGUgYXQgdGhlIHRvcCBvZiB0aGUg c2NyZWVuLCB3aGlsZSB7M3oufQ0KKytzYXlzIHB1dCBsaW5lIHRocmVlIGFzIGNsb3NlIHRvIHRo ZSBtaWRkbGUgb2YgdGhlIHNjcmVlbiBhcyBwb3NzaWJsZS4NCisrDQorK3s1MHx9IG1vdmVzIHRo ZSBjdXJzb3IgdG8gY29sdW1uIGZpZnR5IGluIHRoZSBjdXJyZW50IGxpbmUuDQorKw0KKyt7M15G fSBzYXlzIG1vdmUgZm9yd2FyZCAzIHNjcmVlbmZ1bGxzLiAgVGhpcyBpcyBhIHJlcGV0aXRpb24g Y291bnQuICBUaGUNCisrZG9jdW1lbnRzIGFkdmVydGlzZSB0aGF0IHszXkJ9IHNob3VsZCBtb3Zl IEJBQ0sgdGhyZWUgc2NyZWVuZnVsbHMsIGJ1dCBJDQorK2Nhbid0IGdldCBpdCB0byB3b3JrLg0K KysNCisrUG9zaXRpb24gdGhlIGN1cnNvciBvbiBzb21lIHRleHQgYW5kIHRyeSB7M3IufS4gIFRo aXMgcmVwbGFjZXMgdGhyZWUgY2hhcmFjdGVycw0KKyt3aXRoICcuLi4nLiAgSG93ZXZlciwgezNz Li4uLi5eW30gaXMgdGhlIHNhbWUgYXMgezN4aS4uLi4uXlt9Lg0KKysNCisrVHJ5IHsxMGErLS0t LV5bfS4NCisrDQorK0EgdmVyeSB1c2VmdWwgaW5zdGFuY2Ugb2YgYSByZXBldGl0aW9uIGNvdW50 IGlzIG9uZSBnaXZlbiB0byB0aGUgJy4nIGNvbW1hbmQsDQorK3doaWNoIHJlcGVhdHMgdGhlIGxh c3QgJ2NoYW5nZScgY29tbWFuZC4gIElmIHlvdSB7ZHd9IGFuZCB0aGVuIHszLn0sIHlvdSB3aWxs DQorK2RlbGV0ZSBmaXJzdCBvbmUgYW5kIHRoZW4gdGhyZWUgd29yZHMuICBZb3UgY2FuIHRoZW4g ZGVsZXRlIHR3byBtb3JlIHdvcmRzIHdpdGgNCisrezIufS4gIElmIHlvdSB7M2R3fSwgeW91IHdp bGwgZGVsZXRlIHRocmVlIHdvcmRzLiAgQSBzdWJzZXF1ZW50IHsufSB3aWxsIGRlbGV0ZQ0KKyt0 aHJlZSBtb3JlIHdvcmRzLiAgQnV0IGEgc3Vic2VxdWVudCB7Mi59IHdpbGwgZGVsZXRlIG9ubHkg dHdvIHdvcmRzLCBub3QgdGhyZWUNCisrdGltZXMgdHdvIHdvcmRzLg0KKysNCisrQ2F2ZWF0OiBU aGUgYXV0aG9yIGhhcyBub3RpY2VkIHRoYXQgYW55IHJlcGV0aXRpb24gY291bnQgd2l0aCB7XkJ9 IHdpbGwgTk9UDQorK3dvcms6IGluZGVlZCwgaWYgeW91IGFyZSBhdCB0aGUgZW5kIG9mIHlvdXIg ZmlsZSBhbmQgdHJ5IHszXkJ9IHN1ZmZpY2llbnRseQ0KKytvZnRlbiwgdGhlIGVkaXRvciB3aWxs IGhhbmcgeW91IGluIGFuIGluZmluaXRlIGxvb3AuICBQbGVhc2UgZG9uJ3QgdHJ5IGl0Og0KKyt0 YWtlIG15IHdvcmQgZm9yIGl0Lg0KKysNCisrU2VjdGlvbiAyODoge3R9IHtUfSB7fH0NCisrDQor K1Bvc2l0aW9uIHRoZSBjdXJzb3Igb24gbGluZSAxMyBiZWxvdzoNCisrDQorK0xpbmUgMTM6IEZv dXIgc2NvcmUgYW5kIHNldmVuIHllYXJzIGFnbywgb3VyIGZvcmVmYXRoZXJzIGJyb3VnaHQgLi4u DQorKw0KKytOb3RlIHRoYXQge2Z2fSBtb3ZlcyB0aGUgY3Vyc29yIG9uL292ZXIgdGhlICd2JyBp biAnc2V2ZW4nLiAgRG8gYSB7MH0gdG8gcmV0dXJuDQorK3RvIHRoZSBiZWdpbm5pbmcgb2YgdGhl IGxpbmUgYW5kIHRyeSBhIHt0dn0uICBUaGUgY3Vyc29yIGlzIG5vdyBvbi9vdmVyIHRoZQ0KKytm aXJzdCAnZScgaW4gJ3NldmVuJy4gIFRoZSB7Zn0gY29tbWFuZCBmaW5kcyB0aGUgbmV4dCBvY2N1 cnJlbmNlIG9mIHRoZQ0KKytzcGVjaWZpZWQgbGV0dGVyIGFuZCBtb3ZlcyB0aGUgY3Vyc29yIHRv IGl0LiAgVGhlIHt0fSBjb21tYW5kIGZpbmRzIHRoZQ0KKytzcGVjaWZpZWQgbGV0dGVyIGFuZCBt b3ZlcyB0aGUgY3Vyc29yIHRvIHRoZSBjaGFyYWN0ZXIgaW1tZWRpYXRlbHkgcHJlY2VkaW5nDQor K2l0LiAge1R9IHNlYXJjaGVzIGJhY2t3YXJkcywgYXMgZG9lcyB7Rn0uDQorKw0KKytOb3cgdHJ5 IHs2MHx9OiB0aGUgY3Vyc29yIGlzIG5vdyBvbiB0aGUgJ28nIGluICdicm91Z2h0Jywgd2hpY2gg aXMgdGhlDQorK3NpeHRpZXRoIGNoYXJhY3RlciBvbiB0aGUgbGluZS4NCisrDQorK1NlY3Rpb24g Mjk6IHtkfSB7Y30NCisrDQorK0R1ZSB0byB0aGVpciBjb21wbGV4aXR5IHdlIGhhdmUgZGVsYXll ZCBkaXNjdXNzaW9uIG9mIHR3byBvZiB0aGUgbW9zdCBwb3dlcmZ1bA0KKytvcGVyYXRvcnMgaW4g dmkgdW50aWwgbm93LiAgRWZmZWN0aXZlIHVzZSBvZiB0aGVzZSBvcGVyYXRvcnMgcmVxdWlyZXMg bW9yZQ0KKytleHBsYW5hdGlvbiB0aGFuIHdhcyBkZWVtZWQgYXBwcm9wcmlhdGUgZm9yIHRoZSBm aXJzdCBoYWxmIG9mIHRoZSB0dXRvcmlhbC4NCisrDQorK3tkfSBhbmQge2N9IGFyZSBjYWxsZWQg b3BlcmF0b3JzIGluc3RlYWQgb2YgY29tbWFuZHMgYmVjYXVzZSB0aGV5IGNvbnNpc3Qgb2YNCisr dGhyZWUgcGFydHM6IGEgY291bnQgc3BlY2lmaWNhdGlvbiBvciBhIGJ1ZmZlciBzcGVjaWZpY2F0 aW9uIChzZWUgc2VjdGlvbg0KKysjQlVGRkVSUyksIHRoZSB7ZH0gb3Ige2N9LCBhbmQgdGhlIG9i amVjdCBvciByYW5nZSBkZXNjcmlwdGlvbi4gIFdlIHdpbGwgbm90DQorK2Rpc2N1c3MgYnVmZmVy cyBhdCB0aGlzIHN0YWdlLCBidXQgd2lsbCBsaW1pdCBvdXJzZWx2ZXMgdG8gY291bnQNCisrc3Bl Y2lmaWNhdGlvbnMuICBFeGFtcGxlcyBzcGVhayBsb3VkZXIgdGhhbiB3b3JkczogcG9zaXRpb24g dGhlIGN1cnNvciBhdCB0aGUNCisrYmVnaW5uaW5nIG9mIGxpbmUgMTQ6DQorKw0KKytMaW5lIDE0 OiBFdWNsaWQgYWxvbmUgaGFzIGxvb2tlZCBvbiBiZWF1dHkgYmVhci4NCisrDQorK09idmlvdXNs eSwgdGhlcmUgaXMgc29tZXRoaW5nIHdyb25nIHdpdGggdGhpcyBxdW90YXRpb24uICBUeXBlIHsy ZmJ9IHRvDQorK3Bvc2l0aW9uIHRoZSBjdXJzb3Igb24gdGhlICdiJyBvZiAnYmVhcicuICBOb3cs IHR5cGUge2N3YmFyZV5bfQ0KKythbmQgb2JzZXJ2ZSB0aGUgcmVzdWx0cy4gIFRoZSB7Y3d9IHNw ZWNpZmllcyB0aGF0IHRoZSBjaGFuZ2UgY29tbWFuZCB7Y30gaXMgdG8NCisrb3BlcmF0ZSBvbiBh IHdvcmQgb2JqZWN0LiAgTW9yZSBhY2N1cmF0ZWx5LCBpdCBzcGVjaWZpZXMgdGhhdCB0aGUgcmFu Z2Ugb2YgdGhlDQorK2NoYW5nZSBjb21tYW5kIGluY2x1ZGVzIHRoZSBuZXh0IHdvcmQuDQorKw0K KytQb3NpdGlvbiB0aGUgY3Vyc29yIG9uIHRoZSBwZXJpb2QgaW4gTGluZSAxNC4gKG9uZSB3YXkg aXMgdG8gdXNlIHtmLn0pDQorK05vdywgdHlwZSB7Y2JiZWFzdF5bfS4gIFRoaXMgc3BlY2lmaWVz IHRoZSByYW5nZSBvZiB0aGUgY2hhbmdlIGNvbW1hbmQgdG8gYmUgdGhlDQorK3ByZXZpb3VzIHdv cmQgKHRoZSAnYicgcmVtaW5pc2NlbnQgb2YgdGhlIHtifSBjb21tYW5kKS4gIElmIHdlIGhhZCB3 aXNoZWQgdG8NCisrZGVsZXRlIHRoZSB3b3JkIHJhdGhlciB0aGFuIGNoYW5nZSBpdCwgd2Ugd291 bGQgaGF2ZSB1c2VkIHRoZSB7ZH0gb3BlcmF0b3IsDQorK3JhdGhlciB0aGFuIHRoZSB7Y30gb3Bl cmF0b3IuDQorKw0KKytQb3NpdGlvbiB0aGUgY3Vyc29yIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhl IGxpbmUgd2l0aCB7MH0uICBUeXBlDQorK3tkL2xvb2svXk19LiAgVGhlIHNlYXJjaCBzdHJpbmcg c3BlY2lmaWVkIHRoZSByYW5nZSBvZiB0aGUgZGVsZXRlLg0KKytFdmVyeXRoaW5nIFVQIFRPIHRo ZSB3b3JkICdsb29raW5nJyB3YXMgZGVsZXRlZCBmcm9tIHRoZSBsaW5lLg0KKysNCisrSW4gZ2Vu ZXJhbCwgYWxtb3N0IGFueSBjb21tYW5kIHRoYXQgd291bGQgbW92ZSB0aGUgY3Vyc29yIHdpbGwg c3BlY2lmeSBhIHJhbmdlDQorK2ZvciB0aGVzZSBjb21tYW5kcy4gIFRoZSBtb3N0IGNvbmZ1c2lu ZyBleGNlcHRpb24gdG8gdGhpcyBydWxlIGlzIHdoZW4ge2RkfSBvcg0KKyt7Y2N9IGlzIGVudGVy ZWQ6IHRoZXkgcmVmZXIgdG8gdGhlIHdob2xlIGxpbmUuICBGb2xsb3dpbmcgaXMgYSBzdW1tYXJ5 IG9mIHRoZQ0KKytzdWZmaXhlcyAoc3VmZmljZXM/IHN1ZmZpY2k/KSBhbmQgdGhlIHJhbmdlcyB0 aGV5IHNwZWNpZnk6DQorKw0KKysgICAgc3VmZml4ICAgICAgICB3aWxsIGRlbGV0ZXtkfS9jaGFu Z2V7Y30NCisrICAgIC0tLS0tLSAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorKyAg ICAgIF5bICAgICAgICAgICAgY2FuY2VscyB0aGUgY29tbWFuZA0KKysgICAgICB3ICAgICAgICAg ICAgIHRoZSB3b3JkIHRvIHRoZSByaWdodCBvZiB0aGUgY3Vyc29yDQorKyAgICAgIFcgICAgICAg ICAgICAgZGl0dG8sIGJ1dCBpZ25vcmluZyBwdW5jdHVhdGlvbg0KKysgICAgICBiICAgICAgICAg ICAgIHRoZSB3b3JkIHRvIHRoZSBsZWZ0IG9mIHRoZSBjdXJzb3INCisrICAgICAgQiAgICAgICAg ICAgICBkaXR0bywgYnV0IGlnbm9yaW5nIHB1bmN0dWF0aW9uDQorKyAgICAgIGUgICAgICAgICAg ICAgc2VlIGJlbG93Lg0KKysgICAgICBFICAgICAgICAgICAgICAgZGl0dG8NCisrICAgICAgKHNw YWNlKSAgICAgICBhIGNoYXJhY3Rlcg0KKysgICAgICAkICAgICAgICAgICAgIHRvIHRoZSBlbmQg b2YgdGhlIGxpbmUNCisrICAgICAgXiAgICAgICAgICAgICB0byB0aGUgYmVnaW5uaW5nIG9mIHRo ZSBsaW5lDQorKyAgICAgIC8gLi4gLyAgICAgICAgdXAgdG8sIGJ1dCBub3QgaW5jbHVkaW5nLCB0 aGUgc3RyaW5nDQorKyAgICAgID8gLi4gPyAgICAgICAgYmFjayB0byBhbmQgaW5jbHVkaW5nIHRo ZSBzdHJpbmcNCisrICAgICAgZmMgICAgICAgICAgICB1cCB0byBhbmQgaW5jbHVkaW5nIHRoZSBv Y2N1cnJlbmNlIG9mIGMgDQorKyAgICAgIEZjICAgICAgICAgICAgYmFjayB0byBhbmQgaW5jbHVk aW5nIHRoZSBvY2N1cnJlbmNlIG9mIGMNCisrICAgICAgdGMgICAgICAgICAgICB1cCB0byBidXQg bm90IGluY2x1ZGluZyB0aGUgb2NjdXJyZW5jZSBvZiBjDQorKyAgICAgIFRjICAgICAgICAgICAg YmFjayB0byBidXQgbm90IGluY2x1ZGluZyB0aGUgb2NjdXJyZW5jZSBvZiBjDQorKyAgICAgIF5N ICAgICAgICAgICAgVFdPIGxpbmVzICh0aGF0J3MgcmlnaHQ6IHR3bykNCisrICAgICAgKG51bWJl cileTSAgICB0aGF0IG1hbnkgbGluZXMgcGx1cyBvbmUNCisrICAgICAgKG51bWJlcilHICAgICB1 cCB0byBhbmQgaW5jbHVkaW5nIGxpbmUgKG51bWJlcikNCisrICAgICAgKCAgICAgICAgICAgICB0 aGUgcHJldmlvdXMgc2VudGVuY2UgaWYgeW91IGFyZSBhdCB0aGUgYmVnaW5uaW5nIG9mDQorKyAg ICAgICAgICAgICAgICAgICAgdGhlIGN1cnJlbnQgc2VudGVuY2UsIG9yIHRoZSBjdXJyZW50IHNl bnRlbmNlIHVwIHRvIHdoZXJlIA0KKysgICAgICAgICAgICAgICAgICAgIHlvdSBhcmUgaWYgeW91 IGFyZSBub3QgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgY3VycmVudCANCisrICAgICAgICAgICAg ICAgICAgICBzZW50ZW5jZS4gIEhlcmUsICdzZW50ZW5jZScgcmVmZXJzIHRvIHRoZSBpbnR1aXRp dmUNCisrICAgICAgICAgICAgICAgICAgICBub3Rpb24gb2YgYW4gRW5nbGlzaCBzZW50ZW5jZSwg ZW5kaW5nIHdpdGggJyEnLCAnPycsDQorKyAgICAgICAgICAgICAgICAgICAgb3IgJy4nIGFuZCBm b2xsb3dlZCBieSBhbiBlbmQgb2YgbGluZSBvciB0d28gc3BhY2VzLg0KKysgICAgICApICAgICAg ICAgICAgIHRoZSByZXN0IG9mIHRoZSBjdXJyZW50IHNlbnRlbmNlDQorKyAgICAgIHsgICAgICAg ICAgICAgYW5hbG9nb3VzIHRvICcoJywgYnV0IGluIHJlZmVyZW5jZSB0byBwYXJhZ3JhcGhzOg0K KysgICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zIG9mIHRleHQgc3Vycm91bmRlZCBieSBibGFu ayBsaW5lcw0KKysgICAgICB9ICAgICAgICAgICAgIGFuYWxvZ291cyB0byAnKScsIGJ1dCBpbiBy ZWZlcmVuY2UgdG8gcGFyYWdyYXBocw0KKysgICAgICBbWyAgICAgICAgICAgIGFuYWxvZ291cyB0 byAnKCcsIGJ1dCBpbiByZWZlcmVuY2UgdG8gc2VjdGlvbnMNCisrICAgICAgXV0gICAgICAgICAg ICBhbmFsb2dvdXMgdG8gJyknLCBidXQgaW4gcmVmZXJlbmNlIHRvIHNlY3Rpb25zDQorKyAgICAg IEggICAgICAgICAgICAgdGhlIGZpcnN0IGxpbmUgb24gdGhlIHNjcmVlbg0KKysgICAgICBNICAg ICAgICAgICAgIHRoZSBtaWRkbGUgbGluZSBvbiB0aGUgc2NyZWVuDQorKyAgICAgIEwgICAgICAg ICAgICAgdGhlIGxhc3QgbGluZSBvbiB0aGUgc2NyZWVuDQorKyAgICAgIDNMICAgICAgICAgICAg dGhyb3VnaCB0aGUgdGhpcmQgbGluZSBmcm9tIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbg0KKysg ICAgICBeRiAgICAgICAgICAgIGZvcndhcmQgYSBzY3JlZW5mdWwNCisrICAgICAgXkIgICAgICAg ICAgICBiYWNrd2FyZCBhIHNjcmVlbmZ1bA0KKysgICAgICA6DQorKyAgICAgIDogIGV0Yy4gZXRj LiBldGMuDQorKw0KKytUaGlzIGxpc3QgaXMgbm90IGV4aGF1c3RpdmUsIGJ1dCBpdCBzaG91bGQg YmUgc3VmZmljaWVudCB0byBnZXQgdGhlIGlkZWENCisrYWNyb3NzOiBhZnRlciB0aGUge2N9IG9y IHtkfSBvcGVyYXRvciwgeW91IGNhbiBzcGVjaWZ5IGEgcmFuZ2Ugd2l0aCBhbm90aGVyDQorK21v dmUtdGhlLWN1cnNvciBjb21tYW5kLCBhbmQgdGhhdCBpcyB0aGUgcmVnaW9uIG9mIHRleHQgb3Zl ciB3aGljaCB0aGUgY29tbWFuZA0KKyt3aWxsIGJlIGVmZmVjdGl2ZS4NCisrDQorK1NlY3Rpb24g MzA6IHVwZGF0aW5nIHRoZSBzY3JlZW4ge15SfQ0KKysNCisrVmkgdHJpZXMgdG8gYmUgdmVyeSBp bnRlbGxpZ2VudCBhYm91dCB0aGUgdHlwZSBvZiB0ZXJtaW5hbCB5b3UgYXJlIHdvcmtpbmcgb24N CisrYW5kIHRyaWVzIHRvIHVzZSB0aGUgaW4tdGVybWluYWwgY29tcHV0aW5nIHBvd2VyIChpZiBh bnkpIG9mIHlvdXIgdGVybWluYWwuDQorK0Fsc28gaWYgdGhlIHRlcm1pbmFsIGlzIHJ1bm5pbmcg YXQgYSBsb3cgYmF1ZCByYXRlIChzYXkgMTIwMCBvciBiZWxvdyksIHZpIHNldHMNCisrdmFyaW91 cyBwYXJhbWV0ZXJzIHRvIG1ha2UgdGhpbmdzIGVhc2llciBmb3IgeW91LiAgRm9yIGV4YW1wbGUs IGlmIHlvdSB3ZXJlDQorK3J1bm5pbmcgb24gYSAzMDAgYmF1ZCB0ZXJtaW5hbCAodGhhdCdzIDMw IGNoYXJhY3RlcnMgcGVyIHNlY29uZCB0cmFuc21pc3Npb24NCisrcmF0ZSkgbm90IGFsbCAyNCBs aW5lcyBvZiB0aGUgc2NyZWVuIHdvdWxkIGJlIHVzZWQgYnkgdmkuICBJbiBhZGRpdGlvbiwgdGhl cmUNCisraXMgYSBsYXJnZSBwb3J0aW9uIG9mIHRoZSBlZGl0b3Iga2VlcGluZyB0cmFjayBvZiB3 aGF0IHlvdXIgc2NyZWVuIGN1cnJlbnRseQ0KKytsb29rcyBsaWtlLCBhbmQgd2hhdCBpdCB3b3Vs ZCBsb29rIGxpa2UgYWZ0ZXIgYSBjb21tYW5kIGhhcyBiZWVuIGV4ZWN1dGVkLiAgVmkNCisrdGhl biBjb21wYXJlcyB0aGUgdHdvLCBhbmQgdXBkYXRlcyBvbmx5IHRob3NlIHBvcnRpb25zIG9mIHRo ZSBzY3JlZW4gdGhhdCBoYXZlDQorK2NoYW5nZWQuDQorKw0KKytGdXJ0aGVybW9yZSwgc29tZSBv ZiB5b3UgbWF5IGhhdmUgbm90aWNlZCAoaXQgZGVwZW5kcyBvbiB5b3VyIHRlcm1pbmFsKSB0aGF0 IA0KKytkZWxldGluZyBsaW5lcyBvciBjaGFuZ2luZyBsYXJnZSBwb3J0aW9ucyBvZiB0ZXh0IG1h eSBsZWF2ZSBzb21lIGxpbmVzIG9uIHRoZSANCisrc2NyZWVuIGxvb2tpbmcgbGlrZTogDQorK0Ag DQorK21lYW5pbmcgdGhhdCB0aGlzIGxpbmUgb2YgdGhlIHNjcmVlbiBkb2VzIG5vdCBjb3JyZXNw b25kIHRvIGFueSBsaW5lIGluIHlvdXINCisrZmlsZS4gSXQgd291bGQgY29zdCBtb3JlIHRvIHVw ZGF0ZSB0aGUgbGluZSB0aGFuIHRvIGxlYXZlIGl0IGJsYW5rIGZvciB0aGUNCisrbW9tZW50LiAg SWYgeW91IHdvdWxkIGxpa2UgdG8gc2VlIHlvdXIgc2NyZWVuIGZ1bGx5IHVwLXRvLWRhdGUgd2l0 aCB0aGUNCisrY29udGVudHMgb2YgeW91ciBmaWxlLCB0eXBlIHteUn0uDQorKw0KKytUbyBzZWUg aXQgaW4gYWN0aW9uLCBkZWxldGUgc2V2ZXJhbCBsaW5lcyB3aXRoIHs1ZGR9LCB0eXBlIHteUn0s IGFuZCB0aGVuIHR5cGUNCisre3V9IHRvIGdldCB0aGUgbGluZXMgYmFjay4NCisrDQorK0hlcmUg aXMgYXMgZ29vZCBhIHBsYWNlIGFzIGFueSB0byBtZW50aW9uIHRoYXQgaWYgdGhlIGVkaXRvciBp cyBkaXNwbGF5aW5nIHRoZQ0KKytlbmQgb2YgeW91ciBmaWxlLCB0aGVyZSBtYXkgYmUgbGluZXMg b24gdGhlIHNjcmVlbiB0aGF0IGxvb2sgbGlrZTogDQorK34gDQorK2luZGljYXRpbmcgdGhhdCB0 aGF0IHNjcmVlbiBsaW5lIHdvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSB7XlJ9LiAgVGhlc2UgbGlu ZXMNCisrc2ltcGx5IGluZGljYXRlIHRoZSBlbmQgb2YgdGhlIGZpbGUuDQorKw0KKytTZWN0aW9u IDMxOiB0ZXh0IGJ1ZmZlcnMgeyJ9DQorKw0KKytWaSBnaXZlcyB5b3UgdGhlIGFiaWxpdHkgdG8g c3RvcmUgdGV4dCBhd2F5IGluICJidWZmZXJzIi4gIFRoaXMgZmVhdHVyZSBpcyB2ZXJ5DQorK2Nv bnZlbmllbnQgZm9yIG1vdmluZyB0ZXh0IGFyb3VuZCBpbiB5b3VyIGZpbGUuICBUaGVyZSBhcmUg YSB0b3RhbCBvZiB0aGlydHktDQorK2ZpdmUgYnVmZmVycyBhdmFpbGFibGUgaW4gdmkuICBUaGVy ZSBpcyB0aGUgInVubmFtZWQiIGJ1ZmZlciB0aGF0IGlzIHVzZWQgYnkgYWxsDQorK2NvbW1hbmRz IHRoYXQgZGVsZXRlIHRleHQsIGluY2x1ZGluZyB0aGUgY2hhbmdlIG9wZXJhdG9yIHtjfSwgdGhl IHN1YnN0aXR1dGUNCisrYW5kIHJlcGxhY2UgY29tbWFuZHMge3N9IGFuZCB7cn0sIGFzIHdlbGwg YXMgdGhlIGRlbGV0ZSBvcGVyYXRvciB7ZH0gYW5kIGRlbGV0ZQ0KKytjb21tYW5kcyB7eH0gYW5k IHtYfS4gIFRoaXMgYnVmZmVyIGlzIGZpbGxlZCBlYWNoIHRpbWUgYW55IG9mIHRoZXNlIGNvbW1h bmRzDQorK2FyZSB1c2VkLiBIb3dldmVyLCB0aGUgdW5kbyBjb21tYW5kIHt1fSBoYXMgbm8gZWZm ZWN0IG9uIHRoZSB1bm5hbWVkIGJ1ZmZlci4NCisrDQorK1RoZXJlIGFyZSB0d2VudHktc2l4IGJ1 ZmZlcnMgbmFtZWQgJ2EnIHRocm91Z2ggJ3onIHdoaWNoIGFyZSBhdmFpbGFibGUgZm9yIHRoZQ0K Kyt1c2VyLiAgSWYgdGhlIG5hbWUgb2YgdGhlIGJ1ZmZlciBpcyBjYXBpdGFsaXplZCwgdGhlbiB0 aGUgYnVmZmVyIGlzIG5vdA0KKytvdmVyd3JpdHRlbiBidXQgYXBwZW5kZWQgdG8uICBGb3IgZXhh bXBsZSwgdGhlIGNvbW1hbmQgeyJxZGR9IHdpbGwgZGVsZXRlIG9uZQ0KKytsaW5lIGFuZCBzdG9y ZSB0aGF0IGxpbmUgaW4gdGhlICdxJyBidWZmZXIsIGRlc3Ryb3lpbmcgdGhlIHByZXZpb3VzIGNv bnRlbnRzIG9mDQorK3RoZSBidWZmZXIuICBIb3dldmVyLCB7IlFkZH0gd2lsbCBkZWxldGUgb25l IGxpbmUgb2YgdGV4dCBhbmQgYXBwZW5kIHRoYXQgbGluZQ0KKyt0byB0aGUgY3VycmVudCBjb250 ZW50cyBvZiB0aGUgJ3EnIGJ1ZmZlci4NCisrDQorK0ZpbmFsbHksIHRoZXJlIGFyZSBuaW5lIGJ1 ZmZlcnMgbmFtZWQgJzEnIHRocm91Z2ggJzknIGluIHdoaWNoIHRoZSBsYXN0IG5pbmUNCisrZGVs ZXRlcyBhcmUgc3RvcmVkLiAgQnVmZmVyIDEgaXMgdGhlIGRlZmF1bHQgYnVmZmVyIGZvciB0aGUg bW9kaWZ5IGNvbW1hbmRzIGFuZA0KKytpcyBzb21ldGltZXMgY2FsbGVkIHRoZSB1bm5hbWVkIGJ1 ZmZlci4NCisrDQorK1RvIHJlZmVyZW5jZSBhIHNwZWNpZmljIGJ1ZmZlciwgdXNlIHRoZSBkb3Vi bGUtcXVvdGUgY29tbWFuZCB7In0gZm9sbG93ZWQgYnkNCisrdGhlIG5hbWUgb2YgdGhlIGJ1ZmZl ci4gIFRoZSBuZXh0IHR3byBzZWN0aW9ucyBzaG93IGhvdyBidWZmZXJzIGNhbiBiZSB1c2VkIHRv DQorK2FkdmFudGFnZS4NCisrDQorK1NlY3Rpb24gMzI6IHJlYXJyYW5naW5nIGFuZCBkdXBsaWNh dGluZyB0ZXh0OiB7eX0ge1l9IHtwfSB7UH0NCisrDQorK1Bvc2l0aW9uIHlvdXJzZWxmIG9uIGxp bmUgMTUgYmVsb3cgYW5kIHt6Xk19Og0KKysNCisrTGluZSAxNTogQSB0cmVlIGFzIGxvdmVseSBh cyBhIHBvZW0gLi4uDQorK0xpbmUgMTY6IEkgdGhpbmsgdGhhdCBJIHNoYWxsIG5ldmVyIHNlZQ0K KysNCisrVHlwZSB7ZGR9LiAgTGluZSAxNSBoYXMgZGlzYXBwZWFyZWQgYW5kIGJlZW4gcmVwbGFj ZWQgd2l0aCB0aGUgZW1wdHkgbGluZSAob25lDQorK3dpdGggdGhlIHNpbmdsZSBjaGFyYWN0ZXIg QCBvbiBpdCkgb3IgKGFnYWluIGRlcGVuZGluZyBvbiB5b3VyIHRlcm1pbmFsKSBMaW5lDQorKzE2 IGhhcyBtb3ZlZCB1cCBhbmQgdGFrZW4gaXRzIHBsYWNlLiAgV2UgY291bGQgcmVjb3ZlciBMaW5l IDE1IHdpdGggYW4gdW5kbw0KKyt7dX0gYnV0IHRoYXQgd291bGQgc2ltcGx5IHJldHVybiBpdCB0 byBpdHMgb3JpZ2luYWwgbG9jYXRpb24uICBPYnZpb3VzbHksIHRoZQ0KKyt0d28gbGluZXMgYXJl IHJldmVyc2VkLCBzbyB3ZSB3YW50IHRvIHB1dCBsaW5lIDE1IEFGVEVSIGxpbmUgMTYuICBUaGlz IGlzDQorK3NpbXBseSBkb25lIHdpdGggdGhlIHB1dCBjb21tYW5kIHtwfSwgd2hpY2ggeW91IHNo b3VsZCB0eXBlIG5vdy4gIFdoYXQgaGFzDQorK2hhcHBlbmVkIGlzIHRoYXQge2RkfSBwdXQgTGlu ZSAxNSBpbnRvIHRoZSB1bm5hbWVkIGJ1ZmZlciwgYW5kIHRoZSB7cH0gY29tbWFuZA0KKytyZXRy aWV2ZWQgdGhlIGxpbmUgZnJvbSB0aGUgdW5uYW1lZCBidWZmZXIuDQorKw0KKytOb3cgdHlwZSB7 dX0gYW5kIG9ic2VydmUgdGhhdCBMaW5lIDE1IGRpc2FwcGVhcnMgYWdhaW4gKHRoZSBwdXQgd2Fz IHVuZG9uZQ0KKyt3aXRob3V0IGFmZmVjdGluZyB0aGUgdW5uYW1lZCBidWZmZXIpLiAgVHlwZSB7 UH0gYW5kIHNlZSB0aGF0IHRoZSBjYXBpdGFsIHtQfQ0KKytwdXRzIHRoZSBsaW5lIEJFRk9SRSB0 aGUgY3Vyc29yLg0KKysNCisrVG8gZ2V0IExpbmUgMTUgd2hlcmUgaXQgYmVsb25ncyBhZ2FpbiB0 eXBlIHtkZH17cH0uDQorKw0KKytBbHNvIGluIExpbmUgMTUgbm90ZSB0aGF0IHRoZSB3b3JkcyAn dHJlZScgYW5kICdwb2VtJyBhcmUgcmV2ZXJzZWQuICBVc2luZyB0aGUNCisrdW5uYW1lZCBidWZm ZXIgYWdhaW46IHtmdH17ZHd9e21hfXtmcH17UH17d317ZHd9e2BhUH0gd2lsbCBzZXQgdGhpbmdz IGFyaWdodCANCisrKG5vdGUgdGhlIHVzZSBvZiB0aGUgcmV2ZXJzZSBxdW90ZSkuDQorKw0KKytU aGUgcHV0IGNvbW1hbmRzIHtwfSBhbmQge1B9IGRvIG5vdCBhZmZlY3QgdGhlIGNvbnRlbnRzIG9m IHRoZSBidWZmZXIuDQorK1RoZXJlZm9yZSwgbXVsdGlwbGUge3B9IG9yIHtQfSB3aWxsIHB1dCBt dWx0aXBsZSBjb3BpZXMgb2YgdGhlIHVubmFtZWQgYnVmZmVyDQorK2ludG8geW91ciBmaWxlLg0K KysNCisrRXhwZXJpbWVudCB3aXRoIHtkfSBhbmQge3B9IG9uIHdvcmRzLCBwYXJhZ3JhcGhzLCBl dGMuICBXaGF0ZXZlciB7ZH0NCisrZGVsZXRlcywge3B9IGNhbiBwdXQuDQorKw0KKytQb3NpdGlv biB0aGUgY3Vyc29yIG9uIExpbmUgMTcgYW5kIHt6Xk19Og0KKysNCisrTGluZSAxNzogaW50ZXJl c3QgYXBwbGUgY2F0IGVsZXBoYW50IGJveSBkb2cgZ2lybCBoYXkgZmFybWVyDQorKw0KKytPdXIg dGFzayBpcyB0byBhbHBoYWJldGl6ZSB0aGUgd29yZHMgb24gbGluZSAxNy4gIFdpdGggdGhlIG5h bWVkIGJ1ZmZlcnMgKGFuZCBhDQorK2NvbnRyaXZlZCBleGFtcGxlKSBpdCBpcyBxdWl0ZSBlYXN5 Og0KKysNCisreyJpZHd9eyJhZHd9eyJjZHd9eyJlZHd9eyJiZHd9eyJkZHd9eyJnZHd9eyJoZHd9 eyJmZHd9DQorKw0KKytzdG9yZXMgZWFjaCBvZiB0aGUgd29yZHMgaW4gdGhlIG5hbWVkIGJ1ZmZl ciBjb3JyZXNwb25kaW5nIHRvIHRoZSBmaXJzdCBsZXR0ZXINCisrb2YgZWFjaCBvZiB0aGUgd29y ZHMgKCdpbnRlcmVzdCcgZ29lcyBpbiBidWZmZXIgImksICdhcHBsZScgZ29lcyBpbiBidWZmZXIg ImEsDQorK2V0Yy4pLiAgTm93IHRvIHB1dCB0aGUgd29yZHMgaW4gb3JkZXIgdHlwZToNCisrDQor K3siYXAkfXsiYnAkfXsiY3AkfXsiZHAkfXsiZXAkfXsiZnAkfXsiZ3AkfXsiaHAkfXsiaXAkfQ0K KysNCisrTm90aWNlIHRoYXQsIGJlY2F1c2UgJ2Zhcm1lcicgd2FzIGF0IHRoZSBlbmQgb2YgdGhl IGxpbmUsIHtkd30gZGlkIG5vdCBpbmNsdWRlDQorK2Egc3BhY2UgYWZ0ZXIgaXQsIGFuZCB0aGF0 LCB0aGVyZWZvcmUsIHRoZXJlIGlzIG5vIHNwYWNlIGJldHdlZW4gJ2Zhcm1lcicgYW5kDQorKydn aXJsJy4gIFRoaXMgaXMgY29ycmVjdGVkIHdpdGgge0ZnfXtpIF5bfS4NCisrDQorK1RoaXMgZXhh bXBsZSBjb3VsZCBoYXZlIGJlZW4gZG9uZSBqdXN0IGFzIGVhc2lseSB3aXRoIGxpbmVzIGFzIHdp dGgNCisrd29yZHMuDQorKw0KKytZb3UgZG8gbm90IGhhdmUgdG8gZGVsZXRlIHRoZSB0ZXh0IGlu IG9yZGVyIHRvIHB1dCBpdCBpbnRvIGEgYnVmZmVyLiAgSWYgYWxsDQorK3lvdSB3aXNoIHRvIGRv IGlzIHRvIGNvcHkgdGhlIHRleHQgc29tZXdoZXJlIGVsc2UsIGRvbid0IHVzZSB7ZH0sIHJhdGhl ciB1c2UNCisrdGhlIHlhbmsgY29tbWFuZHMge3l9IG9yIHtZfS4gIHt5fSBpcyBsaWtlIHtkfSBh bmQge2N9IC0gYW4gb3BlcmF0b3IgcmF0aGVyDQorK3RoYW4gYSBjb21tYW5kLiAgSXQsIHRvbywg dGFrZXMgYSBidWZmZXIgc3BlY2lmaWNhdGlvbiBhbmQgYSByYW5nZQ0KKytzcGVjaWZpY2F0aW9u LiAgVGhlcmVmb3JlLCBpbnN0ZWFkIG9mIHtkd317UH0gdG8gbG9hZCB0aGUgdW5uYW1lZCBidWZm ZXIgd2l0aCBhDQorK3dvcmQgd2l0aG91dCBkZWxldGluZyB0aGUgd29yZCwgdXNlIHt5d30gKHlh bmsgYSB3b3JkKS4NCisrDQorK3tZfSBpcyBkZXNpZ25lZCB5YW5rIGxpbmVzLCBhbmQgbm90IGFy Yml0cmFyeSByYW5nZXMuICBUaGF0IGlzLCB7WX0gaXMNCisrZXF1aXZhbGVudCB0byB7eXl9IChy ZW1lbWJlciB0aGF0IG9wZXJhdG9ycyBkb3VibGVkIG1lYW5zIHRoZSBjdXJyZW50IGxpbmUpLA0K KythbmQgezNZfSBpcyBlcXVpdmFsZW50IHRvIHszeXl9Lg0KKysNCisrSWYgdGhlIHRleHQgeW91 IHlhbmsgb3IgbW9kaWZ5IGZvcm1zIGEgcGFydCBvZiBhIGxpbmUsIG9yIGlzIGFuIG9iamVjdCBz dWNoIGFzDQorK2Egc2VudGVuY2Ugd2hpY2ggcGFydGlhbGx5IHNwYW5zIG1vcmUgdGhhbiBvbmUg bGluZSwgdGhlbiB3aGVuIHlvdSBwdXQgdGhlIHRleHQNCisrYmFjaywgaXQgd2lsbCBiZSBwbGFj ZWQgYWZ0ZXIgdGhlIGN1cnNvciAob3IgYmVmb3JlIGlmIHlvdSB1c2Uge1B9KS4gIElmIHRoZQ0K Kyt5YW5rZWQgdGV4dCBmb3JtcyB3aG9sZSBsaW5lcywgdGhleSB3aWxsIGJlIHB1dCBiYWNrIGFz IHdob2xlIGxpbmVzLCB3aXRob3V0DQorK2NoYW5naW5nIHRoZSBjdXJyZW50IGxpbmUuICBJbiB0 aGlzIGNhc2UsIHRoZSBwdXQgYWN0cyBtdWNoIGxpa2UgdGhlIHtvfSBvciB7T30NCisrY29tbWFu ZC4NCisrDQorK1RoZSBuYW1lZCBidWZmZXJzICJhIHRocm91Z2ggInogYXJlIG5vdCBhZmZlY3Rl ZCBieSBjaGFuZ2luZyBlZGl0IGZpbGVzLg0KKytIb3dldmVyLCB0aGUgdW5uYW1lZCBidWZmZXIg aXMgbG9zdCB3aGVuIHlvdSBjaGFuZ2UgZmlsZXMsIHNvIHRvIG1vdmUgdGV4dCBmcm9tDQorK29u ZSBmaWxlIHRvIGFub3RoZXIgeW91IHNob3VsZCB1c2UgYSBuYW1lZCBidWZmZXIuDQorKw0KKytT ZWN0aW9uIDMzOiByZWNvdmVyaW5nIGxvc3QgbGluZXMNCisrDQorK1ZpIGFsc28ga2VlcHMgdHJh Y2sgb2YgdGhlIGxhc3QgbmluZSBkZWxldGVzLCB3aGV0aGVyIHlvdSBhc2sgZm9yIGl0IG9yIG5v dC4NCisrVGhpcyBpcyB2ZXJ5IGNvbnZlbmllbnQgaWYgeW91IHdvdWxkIGxpa2UgdG8gcmVjb3Zl ciBzb21lIHRleHQgdGhhdCB3YXMNCisrYWNjaWRlbnRhbGx5IGRlbGV0ZWQgb3IgbW9kaWZpZWQu ICBQb3NpdGlvbiB0aGUgY3Vyc29yIG9uIGxpbmUgMTggZm9sbG93aW5nLA0KKythbmQge3peTX0u DQorKw0KKysNCisrTGluZSAxODogbGluZSAxDQorK0xpbmUgMTk6IGxpbmUgMg0KKytMaW5lIDIw OiBsaW5lIDMNCisrTGluZSAyMTogbGluZSA0DQorK0xpbmUgMjI6IGxpbmUgNQ0KKytMaW5lIDIz OiBsaW5lIDYNCisrTGluZSAyNDogbGluZSA3DQorK0xpbmUgMjU6IGxpbmUgOA0KKytMaW5lIDI2 OiBsaW5lIDkNCisrVHlwZSB7ZGR9IG5pbmUgdGltZXM6IG5vdyBkb24ndCBjaGVhdCB3aXRoIHs5 ZGR9ISAgVGhhdCBpcyB0b3RhbGx5IGRpZmZlcmVudC4NCisrDQorK1RoZSBjb21tYW5kIHsiMXB9 IHdpbGwgcmV0cmlldmUgdGhlIGxhc3QgZGVsZXRlLiAgRnVydGhlcm1vcmUsIHdoZW4gdGhlDQor K251bWJlcmVkIGJ1ZmZlcnMgYXJlIHVzZWQsIHRoZSByZXBlYXQtY29tbWFuZCBjb21tYW5kIHsu fSB3aWxsIGluY3JlbWVudCB0aGUNCisrYnVmZmVyIG51bWJlcnMgYmVmb3JlIGV4ZWN1dGluZywg c28gdGhhdCBzdWJzZXF1ZW50IHsufSB3aWxsIHJlY292ZXIgYWxsIG5pbmUNCisrb2YgdGhlIGRl bGV0ZWQgbGluZXMsIGFsYmVpdCBpbiByZXZlcnNlIG9yZGVyLiAgSWYgeW91IHdvdWxkIGxpa2Ug dG8gcmV2aWV3IHRoZQ0KKytsYXN0IG5pbmUgZGVsZXRlcyB3aXRob3V0IGFmZmVjdGluZyB0aGUg YnVmZmVycyBvciB5b3VyIGZpbGUsIGRvIGFuIHVuZG8ge3V9DQorK2FmdGVyIGVhY2ggcHV0IHtw fSBhbmQgey59Og0KKysNCisreyIxcH17dX17Ln17dX17Ln17dX17Ln17dX17Ln17dX17Ln17dX17 Ln17dX17Ln17dX17Ln0NCisrDQorK3dpbGwgc2hvdyB5b3UgYWxsIHRoZSBidWZmZXJzIGFuZCBs ZWF2ZSB0aGVtIGFuZCB5b3VyIGZpbGUgaW50YWN0Lg0KKysNCisrSWYgeW91IGhhZCBjaGVhdGVk IGFib3ZlIGFuZCBkZWxldGVkIHRoZSBuaW5lIGxpbmVzIHdpdGggezlkZH0sIGFsbCBuaW5lIGxp bmVzDQorK3dvdWxkIGhhdmUgYmVlbiBzdG9yZWQgaW4gYm90aCB0aGUgdW5uYW1lZCBidWZmZXIg YW5kIGluIGJ1ZmZlciBudW1iZXIgMS4gDQorKyhPYnZpb3VzbHksIGJ1ZmZlciBudW1iZXIgMSBJ UyB0aGUgdW5uYW1lZCBidWZmZXIgYW5kIGlzIGp1c3QgdGhlIGRlZmF1bHQNCisrYnVmZmVyIGZv ciB0aGUgbW9kaWZ5IGNvbW1hbmRzLikNCisrDQorK1NlY3Rpb24gMzQ6IGFkdmFuY2VkIGZpbGUg bWFuaXB1bGF0aW9uOiB7OnJ9IHs6ZX0gezpufSB7Ond9IHshfSB7OiF9DQorKw0KKytXZSd2ZSBh bHJlYWR5IGxvb2tlZCBhdCB3cml0aW5nIG91dCB0aGUgZmlsZSB5b3UgYXJlIGVkaXRpbmcgd2l0 aCB0aGUNCisrezp3fSBjb21tYW5kLiAgTm93IGxldCdzIGxvb2sgYXQgc29tZSBvdGhlciB2aSBj b21tYW5kcyB0byBtYWtlIGVkaXRpbmcNCisrbW9yZSBlZmZpY2llbnQuDQorKw0KKytTZWN0aW9u IDM0LjE6IG1vcmUgdGhhbiBvbmUgZmlsZSBhdCBhIHRpbWUgezpufSB7OmFyZ3N9DQorKw0KKytN YW55IHRpbWVzIHlvdSB3aWxsIHdhbnQgdG8gZWRpdCBtb3JlIHRoYW4gb25lIGZpbGUgaW4gYW4g ZWRpdGluZyBzZXNzaW9uLg0KKytJbnN0ZWFkIG9mIGVudGVyaW5nIHZpIGFuZCBlZGl0aW5nIHRo ZSBmaXJzdCBmaWxlLCBleGl0aW5nLCBlbnRlcmluZyB2aSBhbmQNCisrZWRpdGluZyB0aGUgc2Vj b25kLCBldGMuLCB2aSB3aWxsIGFsbG93IHlvdSB0byBzcGVjaWZ5IEFMTCBmaWxlcyB0aGF0IHlv dSB3aXNoDQorK3RvIGVkaXQgb24gdGhlIGludm9jYXRpb24gbGluZS4gIFRoZXJlZm9yZSwgaWYg eW91IHdhbnRlZCB0byBlZGl0IGZpbGUxIGFuZA0KKytmaWxlMjoNCisrDQorKyUgdmkgZmlsZTEg ZmlsZTINCisrDQorK3dpbGwgc2V0IHVwIGZpbGUxIGZvciBlZGl0aW5nLiAgV2hlbiB5b3UgYXJl IGRvbmUgZWRpdGluZyBmaWxlIG9uZSwgd3JpdGUgaXQNCisrb3V0IHs6d15NfSBhbmQgdGhlbiB0 eXBlIHs6bl5NfSB0byBnZXQgdGhlIG5leHQgZmlsZSBvbiB0aGUgbGlzdC4gIE9uIGxhcmdlDQor K3Byb2dyYW1taW5nIHByb2plY3RzIHdpdGggbWFueSBzb3VyY2UgZmlsZXMsIGl0IGlzIG9mdGVu IGNvbnZlbmllbnQganVzdCB0bw0KKytzcGVjaWZ5IGFsbCBzb3VyY2UgZmlsZXMgd2l0aCwgc2F5 Og0KKysNCisrJSB2aSAqLmMNCisrDQorK0lmIHs6bl5NfSBicmluZ3MgaW4gYSBmaWxlIHRoYXQg ZG9lcyBub3QgbmVlZCBhbnkgZWRpdGluZywgYW5vdGhlciB7Om5eTX0NCisrd2lsbCBicmluZyBp biB0aGUgbmV4dCBmaWxlLg0KKysNCisrSWYgeW91IGhhdmUgbWFkZSBjaGFuZ2VzIHRvIHRoZSBm aXJzdCBmaWxlLCBidXQgZGVjaWRlIHRvIGRpc2NhcmQgdGhlc2UgY2hhbmdlcw0KKythbmQgcHJv Y2VlZCB0byB0aGUgbmV4dCBmaWxlLCB7Om4hXk19IGZvcmNlcyB0aGUgZWRpdG9yIHRvIGRpc2Nh cmQgdGhlIGN1cnJlbnQNCisrY29udGVudHMgb2YgdGhlIGVkaXRvci4NCisrDQorK1lvdSBjYW4g c3BlY2lmeSBhIG5ldyBsaXN0IG9mIGZpbGVzIGFmdGVyIHs6bn07IGUuZy4sIHs6biBmMSBmMiBm M15NfS4gIFRoaXMNCisrd2lsbCByZXBsYWNlIHRoZSBjdXJyZW50IGxpc3Qgb2YgZmlsZXMgKGlm IGFueSkuDQorKw0KKytZb3UgY2FuIHNlZSB0aGUgY3VycmVudCBsaXN0IG9mIGZpbGVzIGJlaW5n IGVkaXRlZCB3aXRoIHs6YXJnc15NfS4NCisrDQorK1NlY3Rpb24gMzQuMjogcmVhZGluZyBmaWxl cyBhbmQgY29tbWFuZCBvdXRwdXQ6IHs6cn0NCisrDQorK1R5cGluZyB7OnIgZm5hbWVeTX0gd2ls bCByZWFkIHRoZSBjb250ZW50cyBvZiBmaWxlIGZuYW1lIGludG8gdGhlIGVkaXRvciBhbmQNCisr cHV0IHRoZSBjb250ZW50cyBBRlRFUiB0aGUgY3Vyc29yIGxpbmUuDQorKw0KKytUeXBpbmcgezpy ICFjbWReTX0gd2lsbCByZWFkIHRoZSBvdXRwdXQgb2YgdGhlIGNvbW1hbmQgY21kIGFuZCBwbGFj ZSB0aGF0DQorK291dHB1dCBhZnRlciB0aGUgY3Vyc29yIGxpbmUuDQorKw0KKytTZWN0aW9uIDM0 LjM6IGludm9raW5nIHZpIGZyb20gd2l0aGluIHZpOiB7OmV9IHs6dml9DQorKw0KKytUbyBlZGl0 IGFub3RoZXIgZmlsZSBub3QgbWVudGlvbmVkIG9uIHRoZSBpbnZvY2F0aW9uIGxpbmUsIHR5cGUg ezplIGZpbGVuYW1lXk19DQorK29yIHs6dmkgZmlsZW5hbWVeTX0uICBJZiB5b3Ugd2lzaCB0byBk aXNjYXJkIHRoZSBjaGFuZ2VzIHRvIHRoZSBjdXJyZW50IGZpbGUsDQorK3VzZSB0aGUgZXhjbGFt YXRpb24gcG9pbnQgYWZ0ZXIgdGhlIGNvbW1hbmQsIGUuZy4gezplISBmaWxlbmFtZV5NfS4NCisr DQorK1NlY3Rpb24gMzQuNDogZXNjYXBpbmcgdG8gYSBzaGVsbDogezpzaH0gezohfSB7Xlp9DQor Kw0KKytPY2Nhc2lvbmFsbHksIGl0IGlzIHVzZWZ1bCB0byBpbnRlcnJ1cHQgdGhlIGN1cnJlbnQg ZWRpdGluZyBzZXNzaW9uIHRvIHBlcmZvcm0NCisrYSBVTklYIHRhc2suICBIb3dldmVyLCB0aGVy ZSBpcyBubyBuZWVkIHRvIHdyaXRlIHRoZSBjdXJyZW50IGZpbGUgb3V0LCBleGl0DQorK3RoZSBl ZGl0b3IsIHBlcmZvcm0gdGhlIHRhc2ssIGFuZCB0aGVuIHJlaW52b2tlIHRoZSBlZGl0b3Igb24g dGhlIHNhbWUgZmlsZS4NCisrT25lIHRoaW5nIHRvIGRvIGlzIHRvIHNwaW4gb2ZmIGFub3RoZXIg cHJvY2Vzcy4gIElmIHRoZXJlIGFyZSBzZXZlcmFsIFVOSVgNCisrY29tbWFuZHMgeW91IHdpbGwg bmVlZCB0byBleGVjdXRlLCBzaW1wbHkgY3JlYXRlIGFub3RoZXIgc2hlbGwgd2l0aCB7OnNoXk19 Lg0KKytBdCB0aGlzIHBvaW50LCB0aGUgZWRpdG9yIGlzIHB1dCB0byBzbGVlcCBhbmQgd2lsbCBi ZSByZWF3YWtlbmVkIHdoZW4geW91IGxvZw0KKytvdXQgb2YgdGhlIHNoZWxsLg0KKysNCisrSWYg aXQgaXMgYSBzaW5nbGUgY29tbWFuZCB0aGF0IHlvdSB3YW50IHRvIGV4ZWN1dGUsIHR5cGUgezoh Y21kXk19LCB3aGVyZSBjbWQNCisraXMgdGhlIGNvbW1hbmQgdGhhdCB5b3Ugd2lzaCB0byBydW4u ICBUaGUgb3V0cHV0IG9mIHRoZSBjb21tYW5kIHdpbGwgY29tZSB0bw0KKyt0aGUgdGVybWluYWwg YXMgbm9ybWFsLCBhbmQgd2lsbCBub3QgYmUgbWFkZSBwYXJ0IG9mIHlvdXIgZmlsZS4gIFRoZSBt ZXNzYWdlDQorKyJbSGl0IHJldHVybiB0byBjb250aW51ZV0iIHdpbGwgYmUgZGlzcGxheWVkIGJ5 IHZpIGFmdGVyIHRoZSBjb21tYW5kIGlzDQorK2ZpbmlzaGVkLiAgSGl0dGluZyByZXR1cm4gd2ls bCB0aGVuIHJlcGFpbnQgdGhlIHNjcmVlbi4gIFR5cGluZyBhbm90aGVyDQorK3s6IWNtZF5NfSBh dCB0aGlzIHBvaW50IGlzIGFsc28gYWNjZXB0YWJsZS4NCisrDQorK0hvd2V2ZXIsIHRoZXJlIGlz IGEgcXVpY2tlciwgZWFzaWVyIHdheTogdHlwZSB7Xlp9LiAgTm93IHRoaXMgaXMgYSBsaXR0bGUN CisrdHJpY2t5LCBidXQgaGFuZyBpbiB0aGVyZS4gIFdoZW4geW91IGxvZ2dlZCBpbnRvIFVOSVgs IHRoZSBmaXJzdCBwcm9ncmFtIHlvdQ0KKytiZWdhbiBjb21tdW5pY2F0aW5nIHdpdGggd2FzIGEg cHJvZ3JhbSB0aGF0IGlzIGNhbGxlZCBhICJzaGVsbCIgKGkuZS4gaXQgJ2xheXMNCisrb3Zlcicg dGhlIG9wZXJhdGluZyBzeXN0ZW0gcHJvdGVjdGluZyB5b3UgZnJvbSBpdCwgc29ydCBvZiBsaWtl IGEgY29uc2lkZXJhdGUNCisrcG9yY3VwaW5lKS4gIFdoZW4geW91IGdvdCB5b3VyIGZpcnN0IHBy b21wdCBvbiB0aGUgdGVybWluYWwgKHByb2JhYmx5IGEgJyUnDQorK2NoYXJhY3RlcikgdGhpcyB3 YXMgdGhlIHNoZWxsIHRlbGxpbmcgeW91IHRvIHR5cGUgeW91ciBmaXJzdCBjb21tYW5kLiAgV2hl bg0KKyt5b3UgdHlwZWQge3ZpIGZpbGVuYW1lfSBmb3Igc29tZSBmaWxlLCB0aGUgc2hlbGwgZGlk IG5vdCBnbyBhd2F5LCBpdCBqdXN0IHdlbnQNCisrdG8gc2xlZXAuICBUaGUgc2hlbGwgaXMgbm93 IHRoZSBwYXJlbnQgb2YgdmkuICBXaGVuIHlvdSB0eXBlIHteWn0gdGhlIGVkaXRvcg0KKytnb2Vz IHRvIHNsZWVwLCB0aGUgc2hlbGwgd2FrZXMgdXAgYW5kIHNheXMgInlvdSByYW5nPyIgaW4gdGhl IGZvcm0gb2YgYW5vdGhlcg0KKytwcm9tcHQgKHByb2JhYmx5ICclJykuICBBdCB0aGlzIHBvaW50 IHlvdSBhcmUgdGFsa2luZyB0byB0aGUgc2hlbGwgYWdhaW4gYW5kDQorK3lvdSBjYW4gZG8gYW55 dGhpbmcgdGhhdCB5b3UgY291bGQgYmVmb3JlIGluY2x1ZGluZyBlZGl0IGFub3RoZXIgZmlsZSEg IChUaGUNCisrb25seSB0aGluZyB5b3UgY2FuJ3QgZG8gaXMgbG9nIG91dDogeW91IHdpbGwgZ2V0 IHRoZSBtZXNzYWdlICJUaGVyZSBhcmUNCisrc3RvcHBlZCBqb2JzLiIpDQorKw0KKytXaGVuIHlv dXIgYnVzaW5lc3Mgd2l0aCB0aGUgc2hlbGwgaXMgZG9uZSwgdHlwZSB7Zmd9IGZvciAnZm9yZWdy b3VuZCcgYW5kIHRoZQ0KKytsYXN0IHByb2Nlc3Mgd2hpY2ggeW91IF5aJ2Qgb3V0IG9mIHdpbGwg YmUgcmVhd2FrZW5lZCBhbmQgdGhlIHNoZWxsIHdpbGwgZ28NCisrYmFjayB0byBzbGVlcC4gIEkg d2lsbCByZWZlciB5b3UgdG8gdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBCZXJrZWxleSBzaGVs bA0KKysnY3NoJyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIHVzZWZ1bCBjYXBhYmlsaXR5 Lg0KKysNCisrU2VjdGlvbiAzNC41OiB3cml0aW5nIHBhcnRzIG9mIGEgZmlsZTogezp3fQ0KKysN CisrVGhlIHs6d30gY29tbWFuZCB3aWxsIGFjY2VwdCBhIHJhbmdlIHNwZWNpZmllciB0aGF0IHdp bGwgdGhlbiB3cml0ZSBvbmx5IGENCisrc2VsZWN0ZWQgcmFuZ2Ugb2YgbGluZXMgdG8gYSBmaWxl LiAgVG8gd3JpdGUgdGhpcyBzZWN0aW9uIHRvIGEgZmlsZSwgcG9zaXRpb24NCisrdGhlIGN1cnNv ciBvbiB0aGUgc2VjdGlvbiBsaW5lIChlLmcuIHsvXlNlY3Rpb24gMzQuNTovXk19KSBhbmQge3pe TX0uICBOb3cgdHlwZQ0KKyt7Xkd9IHRvIGZpbmQgb3V0IHRoZSBsaW5lIG51bWJlciAoaXQgd2ls bCBiZSBzb21ldGhpbmcgbGlrZSAibGluZSA1MTMiKS4gIE5vdw0KKyt7L15TZWN0aW9uIDM0LjY6 Ly0xXk19IHRvIGZpbmQgdGhlIGxhc3QgbGluZSBvZiB0aGlzIHNlY3Rpb24sIGFuZCB7Xkd9IHRv IGZpbmQNCisraXRzIGxpbmUgbnVtYmVyIChpdCB3aWxsIGJlIHNvbWV0aGluZyBsaWtlIDU0Miku ICBUbyB3cml0ZSBvdXQgdGhpcyBzZWN0aW9uIG9mDQorK3RleHQgYnkgaXRzZWxmIHRvIGEgc2Vw YXJhdGUgZmlsZSB3aGljaCB3ZSB3aWxsIGNhbGwgInNlcGZpbGUiLCB0eXBlDQorK3s6NTEwLDU0 Mncgc2VwZmlsZV5NfS4gIElmIHNlcGZpbGUgYWxyZWFkeSBleGlzdHMsIHlvdSB3aWxsIGhhdmUg dG8gdXNlIHRoZQ0KKytleGNsYW1hdGlvbiBwb2ludDogezoxMTQ3LDExNjh3ISBzZXBmaWxlXk19 IG9yIHdyaXRlIHRvIGEgZGlmZmVyZW50LCBub24tDQorK2V4aXN0ZW50IGZpbGUuDQorKw0KKyt7 OiFjYXQgc2VwZmlsZV5NfSB3aWxsIGRpc3BsYXkgdGhlIGZpbGUganVzdCB3cml0dGVuLCBhbmQg aXQgc2hvdWxkIGJlIHRoZQ0KKytjb250ZW50cyBvZiB0aGlzIHNlY3Rpb24uDQorKw0KKytUaGVy ZSBpcyBhbiBhbHRlcm5hdGUgbWV0aG9kIG9mIGRldGVybWluaW5nIHRoZSBsaW5lIG51bWJlcnMg Zm9yIHRoZSB3cml0ZS4NCisrezpzZXQgbnVtYmVyXk19IHdpbGwgcmVwYWludCB0aGUgc2NyZWVu IHdpdGggZWFjaCBsaW5lIG51bWJlcmVkLiAgV2hlbiB0aGUgZmlsZQ0KKytpcyB3cml0dGVuIGFu ZCB0aGUgbnVtYmVycyBubyBsb25nZXIgbmVlZGVkLCB7OnNldCBub251bWJlcl5NfSB3aWxsIHJl bW92ZSB0aGUNCisrbnVtYmVycywgYW5kIHteUn0gd2lsbCBhZGp1c3QgdGhlIHNjcmVlbi4NCisr DQorK09yLCBpZiB5b3UgcmVtZW1iZXIgeW91ciBlYXJsaWVyIGxlc3NvbnMgYWJvdXQgbWFya2lu ZyBsaW5lcyBvZiB0ZXh0LA0KKyttYXJrIHRoZSBiZWdpbm5pbmcgYW5kIGVuZGluZyBsaW5lcy4g IFN1cHBvc2Ugd2UgaGFkIHVzZWQge21hfSB0byBtYXJrIHRoZQ0KKytmaXJzdCBsaW5lIG9mIHRo ZSBzZWN0aW9uIGFuZCB7bWJ9IHRvIG1hcmsgdGhlIGxhc3QuICBUaGVuIHRoZSBjb21tYW5kDQor K3s6J2EsJ2J3IHNlcGZpbGVeTX0gd2lsbCB3cml0ZSB0aGUgc2VjdGlvbiBpbnRvICJzZXBmaWxl Ii4gIEluIGdlbmVyYWwsDQorK3lvdSBjYW4gcmVwbGFjZSBhIGxpbmUgbnVtYmVyIHdpdGggdGhl ICduYW1lJyBvZiBhIG1hcmtlZCBsaW5lIChhIHNpbmdsZS1xdW90ZQ0KKytmb2xsb3dlZCBieSB0 aGUgbGV0dGVyIHVzZWQgdG8gbWFyayB0aGUgbGluZSkNCisrDQorKw0KKytTZWN0aW9uIDM0LjY6 IGZpbHRlcmluZyBwb3J0aW9ucyBvZiB0ZXh0OiB7IX0NCisrDQorK3shfSBpcyBhbiBvcGVyYXRv ciBsaWtlIHtjfSBhbmQge2R9LiAgVGhhdCBpcywgaXQgY29uc2lzdHMgb2YgYSByZXBldGl0aW9u DQorK2NvdW50LCB7IX0sIGFuZCBhIHJhbmdlIHNwZWNpZmllci4gIE9uY2UgdGhlIHshfSBvcGVy YXRvciBpcyBlbnRlcmVkIGluIGl0cw0KKytlbnRpcmV0eSwgYSBwcm9tcHQgd2lsbCBiZSBnaXZl biBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4gZm9yIGEgVU5JWA0KKytjb21tYW5kLiAgVGhl IHRleHQgc3BlY2lmaWVkIGJ5IHRoZSB7IX0gb3BlcmF0b3IgaXMgdGhlbiBkZWxldGVkIGFuZA0K KytwYXNzZWQvZmlsdGVyZWQvcGlwZWQgdG8gdGhlIFVOSVggY29tbWFuZCB5b3UgdHlwZS4gIFRo ZSBvdXRwdXQgb2YgdGhlIFVOSVgNCisrY29tbWFuZCBpcyB0aGVuIHBsYWNlZCBpbiB5b3VyIGZp bGUuICBGb3IgZXhhbXBsZSwgcGxhY2UgdGhlIGN1cnNvciBhdCB0aGUNCisrYmVnaW5uaW5nIG9m IHRoZSBmb2xsb3dpbmcgbGluZSBhbmQge3peTX06DQorKw0KKytscyAtbCB2aS50dXRvcmlhbA0K KysqKioqKioqKiogbWFya3MgdGhlIGJvdHRvbSBvZiB0aGUgb3V0cHV0IGZyb20gdGhlIGxzIGNv bW1hbmQgKioqKioqKioqKg0KKysNCisrTm93IHR5cGUgeyEhY3NoXk19LiAgVGhlIGxpbmUgd2ls bCBiZSByZXBsYWNlZCB3aXRoIHRoZSBvdXRwdXQgZnJvbSB0aGUgbHMNCisrY29tbWFuZC4gIFRo ZSB7dX0gY29tbWFuZCB3b3JrcyBvbiB7IX0sIGFsc28uDQorKw0KKytIZXJlIGlzIGFuIGV4dGVu ZGVkIGV4ZXJjaXNlIHRvIGRpc3BsYXkgc29tZSBvZiB0aGVzZSBjYXBhYmlsaXRpZXMuICBXaGVu IHRoaXMNCisrdHV0b3JpYWwgd2FzIHByZXBhcmVkLCBjZXJ0YWluIGF1eGlsaWFyeSBwcm9ncmFt cyB3ZXJlIGNyZWF0ZWQgdG8gYWlkIGluIGl0cw0KKytkZXZlbG9wbWVudC4gIE9mIG1ham9yIGNv bmNlcm4gd2FzIHRoZSBmb3JtYXR0aW5nIG9mIHNlY3Rpb25zIG9mIHRoZSB0dXRvcmlhbA0KKyt0 byBmaXQgb24gYSBzaW5nbGUgc2NyZWVuLCBwYXJ0aWN1bGFybHkgdGhlIGZpcnN0IGZldyBzZWN0 aW9ucy4gIFdoYXQgd2FzDQorK25lZWRlZCB3YXMgYSB2aSBjb21tYW5kIHRoYXQgd291bGQgJ2Zv cm1hdCcgYSBwYXJhZ3JhcGg7IHRoYXQgaXMsIGZpbGwgb3V0DQorK2xpbmVzIHdpdGggYXMgbWFu eSB3b3JkcyBhcyB3b3VsZCBmaXQgaW4gZWlnaHR5IGNvbHVtbnMuICBUaGVyZSBpcyBubyBzdWNo IHZpDQorK2NvbW1hbmQuICBUaGVyZWZvcmUsIGFub3RoZXIgbWV0aG9kIGhhZCB0byBiZSBmb3Vu ZC4NCisrDQorK09mIGNvdXJzZSwgbnJvZmYgd2FzIGRlc2lnbmVkIHRvIGRvIHRleHQgZm9ybWF0 dGluZy4gIEhvd2V2ZXIsIGl0IHByb2R1Y2VzIGENCisrJ3BhZ2UnOyBtZWFuaW5nIHRoYXQgdGhl cmUgbWF5IGJlIG1hbnkgYmxhbmsgbGluZXMgYXQgdGhlIGVuZCBvZiBhIGZvcm1hdHRlZA0KKytw YXJhZ3JhcGggZnJvbSBucm9mZi4gIFRoZSBhd2sgcHJvZ3JhbSB3YXMgdXNlZCB0byBzdHJpcCB0 aGVzZSBibGFuayBsaW5lcyBmcm9tDQorK3RoZSBvdXRwdXQgZnJvbSBucm9mZi4gIEJlbG93IGFy ZSB0aGUgdHdvIGZpbGVzIHVzZWQgZm9yIHRoaXMgcHVycG9zZTogSSByZWZlcg0KKyt5b3UgdG8g ZG9jdW1lbnRhdGlvbiBvbiBucm9mZiBhbmQgYXdrIGZvciBhIGZ1bGwgZXhwbGFuYXRpb24gb2Yg dGhlaXIgZnVuY3Rpb24uDQorK1Bvc2l0aW9uIHRoZSBjdXJzb3Igb24gdGhlIG5leHQgbGluZSBh bmQge3peTX0uDQorKw0KKysqKioqKioqKiBjb250ZW50cyBvZiBmaWxlIGYgKioqKioqKioqKg0K KysjDQorK25yb2ZmIC1pIGZvcm0ubWFjIHwgYXdrICJsZW5ndGggIT0gMCB7IHByaW50IH0iDQor KyoqKioqIGNvbnRlbnRzIG9mIGZpbGUgZm9ybS5tYWMgKioqKioqDQorKy5uYQ0KKysubmgNCisr LmxsIDc5DQorKy5lYyAHDQorKy5jMiAGDQorKy5jYyACDQorKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqDQorKw0KKytEZXRlcm1pbmUgdGhlIGxpbmUgbnVtYmVycyBvZiB0 aGUgdHdvIGxpbmVzIG9mIGZpbGUgZi4gIFRoZXkgc2hvdWxkIGJlDQorK3NvbWV0aGluZyBsaWtl IDU3NCBhbmQgNTc1LCBhbHRob3VnaCB5b3UgYmV0dGVyIGRvdWJsZSBjaGVjazogdGhpcyBmaWxl IGlzDQorK3VuZGVyIGNvbnN0YW50IHJldmlzaW9uIGFuZCB0aGUgbGluZSBudW1iZXJzIG1heSBj aGFuZ2UgaW5hZHZlcnRlbnRseS4gIFRoZW4NCisrezo1NzQsNTc1dyBmXk19LiAgRG8gdGhlIHNh bWUgZm9yIHRoZSBsaW5lcyBvZiBmaWxlIGZvcm0ubWFjLiAgVGhleSB3aWxsIGJlDQorK2FwcHJv eGltYXRlbHkgNTc3IGFuZCA1ODIuICBUaGVuIHs6NTc3LDU4MncgZm9ybS5tYWNeTX0uICBGaWxl IGYgbXVzdCBoYXZlDQorK2V4ZWN1dGUgcHJpdmlsZWdlcyBhcyBhIHNoZWxsIGZpbGU6IHs6IWNo bW9kIDc0NCBmXk19Lg0KKysNCisrT2JzZXJ2ZSB0aGF0IHRoaXMgcGFyYWdyYXBoIGlzDQorK3Jh dGhlciByYXR0eSBpbiBhcHBlYXJhbmNlLiAgV2l0aCBvdXIgbmV3bHkgY3JlYXRlZCBmaWxlcyB3 ZSBjYW4NCisrY2xlYW4gaXQgdXAgZHJhbWF0aWNhbGx5LiAgUG9zaXRpb24gdGhlIGN1cnNvciBh dCB0aGUgYmVnaW5uaW5nDQorK29mIHRoaXMgcGFyYWdyYXBoIGFuZCB0eXBlIHRoZSBmb2xsb3dp bmcgc2VxdWVuY2Ugb2YNCisrY2hhcmFjdGVycyANCisrKG5vdGUgdGhhdCB3ZSBtdXN0IGFiYW5k b24gdGVtcG9yYXJpbHkgb3VyIGNvbnZlbnRpb24NCisrb2YgY3VybHkgYnJhY2VzIHNpbmNlIHRo ZSBjb21tYW5kIGl0c2VsZiBjb250YWlucyBhIGN1cmx5IGJyYWNlIC0gd2UgDQorK3dpbGwgdXNl IHNxdWFyZSBicmFja2V0cyBmb3IgdGhlIG5vbmNlKTogWyF9Zl5NXS4NCisrDQorK0hlcmUgaXMg YSBicmllZiBleHBsYW5hdGlvbiBvZiB3aGF0IGhhcyBoYXBwZW5lZC4gIEJ5IHR5cGluZyBbIX1m Xk1dIHdlDQorK3NwZWNpZmllZCB0aGF0IHRoZSBwYXJhZ3JhcGggKGFsbCB0ZXh0IGJldHdlZW4g dGhlIGN1cnNvciBhbmQgdGhlIGZpcnN0IGJsYW5rDQorK2xpbmUpIHdpbGwgYmUgcmVtb3ZlZCBm cm9tIHRoZSBlZGl0IGZpbGUgYW5kIHBpcGVkIHRvIGEgVU5JWCBwcm9ncmFtIGNhbGxlZA0KKysi ZiIuICBUaGlzIGlzIGEgc2hlbGwgY29tbWFuZCBmaWxlIHRoYXQgd2UgaGF2ZSBjcmVhdGVkLiAg VGhpcyBzaGVsbCBmaWxlIHJ1bnMNCisrbnJvZmYsIHBpcGVzIGl0cyBvdXRwdXQgdG8gYXdrIHRv IHJlbW92ZSBibGFuayBsaW5lcywgYW5kIHRoZSBvdXRwdXQgZnJvbSBhd2sNCisraXMgdGhlbiBy ZWFkIGJhY2sgaW50byBvdXIgZmlsZSBpbiB0aGUgcGxhY2Ugb2YgdGhlIG9sZCwgcmF0dHkgcGFy YWdyYXBoLiAgVGhlDQorK2ZpbGUgZm9ybS5tYWMgaXMgYSBsaXN0IG9mIGNvbW1hbmRzIHRvIG5y b2ZmIHRvIGdldCBpdCB0byBwcm9kdWNlIHBhcmFncmFwaHMNCisrdG8gb3VyIHRhc3RlICh0aGUg cmlnaHQgbWFyZ2luIGlzIG5vdCBqdXN0aWZpZWQsIHRoZSBsaW5lIGlzIDc5IGNoYXJhY3RlcnMN CisrbG9uZywgd29yZHMgYXJlIG5vdCBoeXBoZW5hdGVkLCBhbmQgdGhyZWUgbnJvZmYgY2hhcmFj dGVycyBhcmUgcmVuYW1lZCB0bw0KKythdm9pZCBjb25mbGljdDogbm90ZSB0aGF0IGluIHRoaXMg ZmlsZSwgdGhlIHteR30geW91IHNlZSB0aGVyZSBpcyB2aSdzIGRpc3BsYXkNCisrb2YgdGhlIGNv bnRyb2wtRyBjaGFyYWN0ZXIsIGFuZCBub3QgdGhlIHR3byBzZXBhcmF0ZSBjaGFyYWN0ZXJzIF4g dXAtYXJyb3cgYW5kDQorK0cgdXBwZXItY2FzZSBnKS4NCisrDQorK1RoaXMgZXhhbXBsZSB3YXMg Y3JlYXRlZCBiZWZvcmUgdGhlIGV4aXN0ZW5jZSBvZiB0aGUgZm10IHByb2dyYW0uICBJIG5vdyB0 eXBlDQorK1shfWZtdF5NXSB0byBnZXQgdGhlIHNhbWUgZWZmZWN0IG11Y2ggZmFzdGVyLiAgQWN0 dWFsbHksIEkgZG9uJ3QgdHlwZSB0aG9zZQ0KKytzaXgga2V5cyBlYWNoIHRpbWU6IEkgaGF2ZSBh biBhYmJyZXZpYXRpb24gKHdoaWNoIHNlZSkuDQorKw0KKytTZWN0aW9uIDM1OiBzZWFyY2hpbmcg d2l0aCBtYWdpYyBwYXR0ZXJucw0KKysNCisrVGhlIGRvY3VtZW50YXRpb24gYXZhaWxhYmxlIGZv ciAibWFnaWMgcGF0dGVybnMiIChpLmUuIHJlZ3VsYXIgZXhwcmVzc2lvbnMpIGlzDQorK3Zlcnkg c2NhbnR5LiAgVGhlIGZvbGxvd2luZyBzaG91bGQgZXhwbGFpbiB0aGlzIHBvc3NpYmx5IHZlcnkg Y29uZnVzaW5nIGZlYXR1cmUNCisrb2YgdGhlIGVkaXRvci4gIFRoaXMgc2VjdGlvbiBhc3N1bWVz IHRoYXQgdGhlIG1hZ2ljIG9wdGlvbiBpcyBvbi4gIFRvIG1ha2UNCisrc3VyZSwgeW91IG1pZ2h0 IHdhbnQgdG8gdHlwZSB7OnNldCBtYWdpY15NfS4NCisrDQorK0J5ICJtYWdpYyBwYXR0ZXJuIiB3 ZSBtZWFuIGEgZ2VuZXJhbCBkZXNjcmlwdGlvbiBvZiBhIHBpZWNlIG9mIHRleHQgdGhhdCB0aGUN CisrZWRpdG9yIGF0dGVtcHRzIHRvIGZpbmQgZHVyaW5nIGEgc2VhcmNoLiAgTW9zdCBzZWFyY2gg cGF0dGVybnMgY29uc2lzdCBvZg0KKytzdHJpbmdzIG9mIGNoYXJhY3RlcnMgdGhhdCBtdXN0IGJl IG1hdGNoZWQgZXhhY3RseSwgZS5nLiAgey9jYXJkL15NfSBzZWFyY2hlcw0KKytmb3IgYSBzcGVj aWZpYyBzdHJpbmcgb2YgZm91ciBjaGFyYWN0ZXJzLiAgTGV0IHVzIHN1cHBvc2UgdGhhdCB5b3Ug aGF2ZQ0KKytkaXNjb3ZlcmVkIHRoYXQgeW91IGNvbnNpc3RlbnRseSBoYXZlIG1pc3R5cGVkIHRo aXMgc2ltcGxlIHdvcmQgYXMgZWl0aGVyIGNjcmQNCisrb3IgY3pyZCAodGhpcyBpcyBub3Qgc28g ZmFyLWZldGNoZWQgZm9yIHRvdWNoIHR5cGlzdHMpLiAgWW91IGNvdWxkIHsvY2NyZC9eTX0NCisr YW5kIHtufSB1bnRpbCB0aGVyZSBhcmUgbm8gbW9yZSBvZiB0aGlzIHNwZWxsaW5nLCBmb2xsb3dl ZCBieSB7L2N6cmQvXk19IGFuZA0KKyt7bn0gdW50aWwgdGhlcmUgYXJlIG5vIG1vcmUgb2YgdGhl c2UuICBPciB5b3UgY291bGQgey9jLnJkL15NfSBhbmQgY2F0Y2ggYWxsIG9mDQorK3RoZW0gb24g dGhlIGZpcnN0IHBhc3MuICBUcnkgdHlwaW5nIHsvYy5yZC9eTX0gZm9sbG93ZWQgYnkgc2V2ZXJh bCB7bn0gYW5kDQorK29ic2VydmUgdGhlIGVmZmVjdC4NCisrDQorK0xpbmUgMjc6IGNhcmQgY29y ZCBjdXJkIGNlYXJkDQorKw0KKytXaGVuICcuJyBpcyB1c2VkIGluIGEgc2VhcmNoIHN0cmluZywg aXQgaGFzIHRoZSBlZmZlY3Qgb2YgbWF0Y2hpbmcgYW55IHNpbmdsZQ0KKytjaGFyYWN0ZXIuDQor Kw0KKytUaGUgY2hhcmFjdGVyICdeJyAodXAtYXJyb3cpIHVzZWQgYXQgdGhlIGJlZ2lubmluZyBv ZiBhIHNlYXJjaCBzdHJpbmcgbWVhbnMNCisrdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4gIHsv XkxpbmUgMjcvXk19IHdpbGwgZmluZCB0aGUgZXhhbXBsZSBsaW5lIGFib3ZlLA0KKyt3aGlsZSB7 L0xpbmUgMjcvXk19IHdpbGwgZmluZCBhbiBvY2N1cnJlbmNlIG9mIHRoaXMgc3RyaW5nIGFueXdo ZXJlIGluIHRoZQ0KKytsaW5lLg0KKysNCisrU2ltaWxhcmx5LCB7LyB0aGUkL15NfSB3aWxsIGZp bmQgYWxsIG9jY3VycmVuY2VzIG9mIHRoZSB3b3JkICd0aGUnIG9jY3VycmluZw0KKythdCB0aGUg ZW5kIG9mIGEgbGluZS4gIFRoZXJlIGFyZSBzZXZlcmFsIG9mIHRoZW0gaW4gdGhpcyBmaWxlLg0K KysNCisrTm90ZSB0aGF0IHs6c2V0IG5vbWFnaWNeTX0gd2lsbCB0dXJuIG9mZiB0aGUgc3BlY2lh bCBtZWFuaW5nIG9mIHRoZXNlIG1hZ2ljDQorK2NoYXJhY3RlcnMgRVhDRVBUIGZvciAnXicgYW5k ICckJyB3aGljaCByZXRhaW4gdGhlaXIgc3BlY2lhbCBtZWFuaW5ncyBhdCB0aGUNCisrYmVnaW5u aW5nIGFuZCBlbmQgb2YgYSBzZWFyY2ggc3RyaW5nLiAgV2l0aGluIHRoZSBzZWFyY2ggc3RyaW5n IHRoZXkgaG9sZCBubw0KKytzcGVjaWFsIG1lYW5pbmcuICBUcnkgey9cLyB0aGUkXC8vXk19IGFu ZCBub3RlIHRoYXQgdGhlIGRvbGxhci1zaWduIGlzIG5vdCB0aGUNCisrbGFzdCBjaGFyYWN0ZXIg aW4gdGhlIHNlYXJjaCBzdHJpbmcuICBMZXQgdGhlIGRvbGxhci1zaWduIGJlIHRoZSBsYXN0DQor K2NoYXJhY3RlciBpbiB0aGUgc2VhcmNoIHN0cmluZywgYXMgaW4gey9cLyB0aGUkL15NfSBhbmQg b2JzZXJ2ZSB0aGUgcmVzdWx0Lg0KKysNCisrT2JzZXJ2ZSB0aGUgcmVzdWx0IG9mIHsvYmFjay4q ZmlsZS9eTX0uICBUaGlzIGNvbW1hbmQsIGZvbGxvd2VkIGJ5IHN1ZmZpY2llbnQNCisre259LCB3 aWxsIHNob3cgeW91IGFsbCBsaW5lcyBpbiB0aGUgZmlsZSB0aGF0IGNvbnRhaW4gYm90aCB0aGUg d29yZHMgJ2JhY2snDQorK2FuZCAnZmlsZScgb24gdGhlIHNhbWUgbGluZS4gIFRoZSAnKicgbWFn aWMgY2hhcmFjdGVyIHNwZWNpZmllcyB0aGF0IHRoZQ0KKytwcmV2aW91cyByZWd1bGFyIGV4cHJl c3Npb24gKHRoZSAnLicgaW4gb3VyIGV4YW1wbGUpIGlzIHRvIGJlIHJlcGVhdGVkbHkNCisrbWF0 Y2hlZCB6ZXJvIG9yIG1vcmUgdGltZXMuICBJbiBvdXIgZXhhbXBsZSB3ZSBzcGVjaWZpZWQgdGhh dCB0aGUgd29yZHMgJ2JhY2snDQorK2FuZCAnZmlsZScgbXVzdCBhcHBlYXIgb24gdGhlIHNhbWUg bGluZSAodGhleSBtYXkgYmUgcGFydHMgb2Ygd29yZHMgc3VjaCBhcw0KKysnYmFja3dhcmRzJyBv ciAnd29ya2ZpbGUnKSBzZXBhcmF0ZWQgYnkgYW55IG51bWJlciAoaW5jbHVkaW5nIHplcm8pIG9m DQorK2NoYXJhY3RlcnMuDQorKw0KKytXZSBjb3VsZCBoYXZlIHNwZWNpZmllZCB0aGF0ICdiYWNr JyBhbmQgJ2ZpbGUnIGFyZSB0byBiZSB3b3JkcyBieSB0aGVtc2VsdmVzIGJ5DQorK3VzaW5nIHRo ZSBtYWdpYyBzZXF1ZW5jZXMgJ1w8JyBvciAnXD4nLiAgRS5nLiAgey9cPGJhY2tcPi4qXDxmaWxl XD4vXk19LiAgVGhlDQorK3NlcXVlbmNlICdcPCcgc3BlY2lmaWVzIHRoYXQgdGhpcyBwb2ludCBv ZiB0aGUgc2VhcmNoIHN0cmluZyBtdXN0IG1hdGNoIHRoZQ0KKytiZWdpbm5pbmcgb2YgYSB3b3Jk LCB3aGlsZSAnXD4nIHNwZWNpZmllcyBhIG1hdGNoIGF0IHRoZSBlbmQgb2YgYSB3b3JkLiAgQnkN Cisrc3Vycm91bmRpbmcgYSBzdHJpbmcgd2l0aCB0aGVzZSBjaGFyYWN0ZXJzIHdlIGhhdmUgc3Bl Y2lmaWVkIHRoYXQgdGhleSBtdXN0IGJlDQorK3dvcmRzLg0KKysNCisrVG8gZmluZCBhbGwgd29y ZHMgdGhhdCBiZWdpbiB3aXRoIGFuICdsJyBvciBhICd3JywgZm9sbG93ZWQgYnkgYW4gJ2EnIG9y IGFuDQorKydlJywgYW5kIGVuZGluZyBpbiAnaW5nJywgdHJ5IHsvXDxbbHddW2VhXVthLXpdKmlu Z1w+L15NfS4gIFRoaXMgd2lsbCBtYXRjaA0KKyt3b3JkcyBsaWtlICdsZWFybmluZycsICd3YXJu aW5nJywgYW5kICdsZWFkaW5nJy4gIFRoZSAnWy4uXScgbm90YXRpb24gbWF0Y2hlcw0KKytleGFj dGx5IE9ORSBjaGFyYWN0ZXIuICBUaGUgY2hhcmFjdGVyIG1hdGNoZWQgd2lsbCBiZSBvbmUgb2Yg dGhlIGNoYXJhY3RlcnMNCisrZW5jbG9zZWQgaW4gdGhlIHNxdWFyZSBicmFja2V0cy4gIFRoZSBj aGFyYWN0ZXJzIG1heSBiZSBzcGVjaWZpZWQgaW5kaXZpZHVhbGx5DQorK2FzIGluIFthYmNkXSBv ciBhICctJyBtYXkgYmUgdXNlZCB0byBzcGVjaWZ5IGEgcmFuZ2Ugb2YgY2hhcmFjdGVycyBhcyBp biBbYS1kXS4NCisrVGhhdCBpcywgW2F6XSB3aWxsIG1hdGNoIHRoZSBsZXR0ZXIgJ2EnIE9SIHRo ZSBsZXR0ZXIgJ3onLCB3aGlsZSBbYS16XSB3aWxsDQorK21hdGNoIGFueSBvZiB0aGUgbG93ZXIg Y2FzZSBsZXR0ZXJzIGZyb20gJ2EnIHRocm91Z2ggJ3onLiAgSWYgeW91IHdvdWxkIGxpa2UgdG8N CisrbWF0Y2ggZWl0aGVyIGFuICdhJywgYSAnLScsIG9yIGEgJ3onLCB0aGVuIHRoZSAnLScgbXVz dCBiZSBlc2NhcGVkOiBbYVwtel0gd2lsbA0KKyttYXRjaCBPTkUgb2YgdGhlIHRocmVlIGNoYXJh Y3RlcnMgJ2EnLCAnLScsIG9yICd6Jy4NCisrDQorK0lmIHlvdSB3aXNoIHRvIGZpbmQgYWxsIENh cGl0YWxpemVkIHdvcmRzLCB0cnkgey9cPFtBLVpdW2Etel0qXD4vXk19LiAgVGhlDQorK2ZvbGxv d2luZyB3aWxsIGZpbmQgYWxsIGNoYXJhY3RlciBzZXF1ZW5jZXMgdGhhdCBkbyBOT1QgYmVnaW4g d2l0aCBhbg0KKyt1bmNhcGl0YWxpemVkIGxldHRlciBieSBhcHBseWluZyBhIHNwZWNpYWwgbWVh bmluZyB0byB0aGUgJ14nIGNoYXJhY3RlciBpbg0KKytzcXVhcmUgYnJhY2tldHM6IHsvXDxbXmEt el1bYS16XSpcPi9eTX0uICBXaGVuICdeJyBpcyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGENCisr c3F1YXJlLWJyYWNrZXQgZXhwcmVzc2lvbiwgaXQgc3BlY2lmaWVzICJhbGwgYnV0IHRoZXNlIGNo YXJhY3RlcnMiLiAgKE5vDQorK29uZSBjbGFpbWVkIHZpIHdhcyBjb25zaXN0ZW50LikNCisrDQor K1RvIGZpbmQgYWxsIHZhcmlhYmxlIG5hbWVzICh0aGUgZmlyc3QgY2hhcmFjdGVyIGlzIGFscGhh YmV0aWMsIHRoZSByZW1haW5pbmcNCisrY2hhcmFjdGVycyBhcmUgYWxwaGFudW1lcmljKTogIHRy eSB7L1w8W0EtWmEtel1bQS1aYS16MC05XSpcPi9eTX0uDQorKw0KKytJbiBzdW1tYXJ5LCBoZXJl IGFyZSB0aGUgcHJpbWl0aXZlcyBmb3IgYnVpbGRpbmcgcmVndWxhciBleHByZXNzaW9uczoNCisr DQorKyAgICAgXiAgICAgIGF0IGJlZ2lubmluZyBvZiBwYXR0ZXJuLCBtYXRjaGVzIGJlZ2lubmlu ZyBvZiBsaW5lDQorKyAgICAgJCAgICAgIGF0IGVuZCBvZiBwYXR0ZXJuLCBtYXRjaGVzIGVuZCBv ZiBsaW5lDQorKyAgICAgLiAgICAgIG1hdGNoZXMgYW55IHNpbmdsZSBjaGFyYWN0ZXINCisrICAg ICBcPCAgICAgbWF0Y2hlcyB0aGUgYmVnaW5uaW5nIG9mIGEgd29yZA0KKysgICAgIFw+ICAgICBt YXRjaGVzIHRoZSBlbmQgb2YgYSB3b3JkDQorKyAgICAgW3N0cl0gIG1hdGNoZXMgYW55IHNpbmds ZSBjaGFyYWN0ZXIgaW4gc3RyDQorKyAgICAgW15zdHJdIG1hdGNoZXMgYW55IHNpbmdsZSBjaGFy YWN0ZXIgTk9UIGluIHN0cg0KKysgICAgIFt4LXldICBtYXRjaGVzIGFueSBjaGFyYWN0ZXIgaW4g dGhlIEFTQ0lJIHJhbmdlIGJldHdlZW4geCBhbmQgeQ0KKysgICAgICogICAgICBtYXRjaGVzIGFu eSBudW1iZXIgKGluY2x1ZGluZyB6ZXJvKSBvZiB0aGUgcHJlY2VkaW5nIHBhdHRlcm4NCisrDQor K1NlY3Rpb24gMzY6IGFkdmFuY2VkIHN1YnN0aXR1dGlvbjogezpzfSANCisrDQorK1RoZSBzdHJh aWdodGZvcndhcmQgY29sb24tc3Vic3RpdHV0ZSBjb21tYW5kIGxvb2tzIGxpa2UgdGhlIHN1YnN0 aXR1dGUNCisrY29tbWFuZCBvZiBtb3N0IGxpbmUtb3JpZW50ZWQgZWRpdG9ycy4gIEluZGVlZCwg dmkgaXMgbm90aGluZyBtb3JlIHRoYW4gYQ0KKytzdXBlcnN0cnVjdHVyZSBvbiB0aGUgbGluZS1v cmllbnRlZCBlZGl0b3IgZXggYW5kIHRoZSBjb2xvbiBjb21tYW5kcyBhcmUNCisrc2ltcGx5IGEg d2F5IG9mIGFjY2Vzc2luZyBjb21tYW5kcyB3aXRoaW4gZXggKHNlZSBzZWN0aW9uICNFWCkuICBU aGlzIGdpdmVzIHVzDQorK2EgbG90IG9mIGdsb2JhbCBmaWxlIHByb2Nlc3Npbmcgbm90IHVzdWFs bHkgZm91bmQgaW4gdmlzdWFsIG9yaWVudGVkIGVkaXRvcnMuDQorKw0KKytUaGUgY29sb24tc3Vi c3RpdHV0ZSBjb21tYW5kIGxvb2tzIGxpa2U6IHs6cy8gLi4gLyAuLiAvXk19IGFuZCB3aWxsIGZp bmQgdGhlDQorK3BhdHRlcm4gc3BlY2lmaWVkIGFmdGVyIHRoZSBmaXJzdCBzbGFzaCAodGhpcyBp cyBjYWxsZWQgdGhlIHNlYXJjaCBwYXR0ZXJuKSwNCisrYW5kIHJlcGxhY2UgaXQgd2l0aCB0aGUg cGF0dGVybiBzcGVjaWZpZWQgYWZ0ZXIgdGhlIHNlY29uZCBzbGFzaCAoY2FsbGVkLA0KKytvYnZp b3VzbHkgZW5vdWdoLCB0aGUgcmVwbGFjZW1lbnQgcGF0dGVybikuICBFLmcuIHBvc2l0aW9uIHRo ZSBjdXJzb3Igb24gbGluZQ0KKysyOCBiZWxvdyBhbmQgezpzL2VzYW1wbGUvZXhhbXBsZS9eTX06 DQorKw0KKytMaW5lIDI4OiBUaGlzIGlzIGFuIGVzYW1wbGUuDQorKw0KKytUaGUge3V9IGFuZCB7 VX0gY29tbWFuZHMgd29yayBmb3IgezpzfS4gIFRoZSBmaXJzdCBwYXR0ZXJuICh0aGUgc2VhcmNo IHBhdHRlcm4pDQorK21heSBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBqdXN0IGFzIGZvciB0aGUg c2VhcmNoIGNvbW1hbmQgKGFmdGVyIGFsbCwgaXQgSVMgYQ0KKytzZWFyY2gsIGFsYmVpdCBsaW1p dGVkIHRvIHRoZSBjdXJyZW50IGxpbmUpLiAgRG8gYW4ge3V9IG9uIHRoZSBhYm92ZSBsaW5lLCBh bmQNCisrdHJ5IHRoZSBmb2xsb3dpbmcgc3Vic3RpdHV0ZSwgd2hpY2ggd2lsbCBkbyBhbG1vc3Qg dGhlIHNhbWUgdGhpbmc6IA0KKyt7OnMvc1teIF0veC9eTX0uICANCisrQmV0dGVyIHVuZG8gaXQg d2l0aCB7dX0uICBUaGUgZmlyc3QgcGF0dGVybiB7c1teIF19IG1hdGNoZXMgYW4gJ3MnDQorK05P VCBmb2xsb3dlZCBieSBhIGJsYW5rOiB0aGUgc2VhcmNoIHRoZXJlZm9yZSBpZ25vcmVzIHRoZSAn cydlcyBpbiAnVGhpcycgYW5kDQorKydpcycuICBIb3dldmVyLCB0aGUgY2hhcmFjdGVyIG1hdGNo ZWQgYnkge1teIF19IG11c3QgYXBwZWFyIGluIHRoZSByZXBsYWNlbWVudA0KKytwYXR0ZXJuLiAg QnV0LCBpbiBnZW5lcmFsLCB3ZSBkbyBub3Qga25vdyB3aGF0IHRoYXQgY2hhcmFjdGVyIGlzISAg KEluIHRoaXMNCisrcGFydGljdWxhciBleGFtcGxlIHdlIG9idmlvdXNseSBkbywgYnV0IG1vcmUg Y29tcGxpY2F0ZWQgZXhhbXBsZXMgd2lsbCBmb2xsb3cuKQ0KKytUaGVyZWZvcmUsIHZpIChyZWFs bHkgZXgpIGhhcyBhIGR1cGxpY2F0aW9uIG1lY2hhbmlzbSB0byBjb3B5IHBhdHRlcm5zIG1hdGNo ZWQNCisraW4gdGhlIHNlYXJjaCBzdHJpbmcgaW50byB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nLiAg TGluZSAyOSBiZWxvdyBpcyBhIGNvcHkgb2YNCisrbGluZSAyOCBhYm92ZSBzbyB5b3UgY2FuIGFk anVzdCB5b3VyIHNjcmVlbi4NCisrDQorK0xpbmUgMjk6IFRoaXMgaXMgYW4gZXNhbXBsZS4NCisr DQorK0luIGdlbmVyYWwsIHlvdSBjYW4gbmVzdCBwYXJ0cyBvZiB0aGUgc2VhcmNoIHBhdHRlcm4g aW4gXCggLi4gXCkgYW5kIHJlZmVyIHRvDQorK2l0IGluIHRoZSByZXBsYWNlbWVudCBwYXR0ZXJu IGFzIFxuLCB3aGVyZSBuIGlzIGEgZGlnaXQuICBUaGUgcHJvYmxlbSBvdXRsaW5lZA0KKytpbiB0 aGUgcHJldmlvdXMgcGFyYWdyYXBoIGlzIHNvbHZlZCB3aXRoIHs6cy9zXChbXiBdXCkveFwxL15N fTogdHJ5IGl0LiAgSGVyZQ0KKytcMSByZWZlcnMgdG8gdGhlIGZpcnN0IHBhdHRlcm4gZ3JvdXBp bmcgXCggLi4gXCkgaW4gdGhlIHNlYXJjaCBzdHJpbmcuDQorKw0KKytPYnZpb3VzbHksIGZvciBh IHNpbmdsZSBsaW5lLCB0aGlzIGlzIHJhdGhlciB0ZWRpb3VzLiAgV2hlcmUgaXQgYmVjb21lcw0K Kytwb3dlcmZ1bCwgaWYgbm90IG5lY2Vzc2FyeSwgaXMgaW4gY29sb24tc3Vic3RpdHV0ZXMgdGhh dCBjb3ZlciBhIHJhbmdlIG9mDQorK2xpbmVzLiAgKFNlZSB0aGUgbmV4dCBzZWN0aW9uIGZvciBh IHBhcnRpY3VsYXJseSBjb21wcmVoZW5zaXZlIGV4YW1wbGUuKQ0KKysNCisrSWYgdGhlIGVudGly ZSBjaGFyYWN0ZXIgc2VxdWVuY2UgbWF0Y2hlZCBieSB0aGUgc2VhcmNoIHBhdHRlcm4gaXMgbmVl ZGVkIGluDQorK3RoZSByZXBsYWNlbWVudCBwYXR0ZXJuLCB0aGVuIHRoZSB1bmVzY2FwZWQgY2hh cmFjdGVyICcmJyBjYW4gYmUgdXNlZC4gIE9uDQorK0xpbmUgMjkgYWJvdmUsIHRyeSB7OnMvYW4g ZS5hbXBsZS9ub3QgJi9eTX0uICBJZiBhbm90aGVyIGxpbmUgaXMgdG8gaGF2ZSB0aGUNCisrd29y ZCAnbm90JyBwcmVwZW5kZWQgdG8gYSBwYXR0ZXJuLCB0aGVuICd+JyBjYW4gc2F2ZSB5b3UgZnJv bSByZS10eXBpbmcgdGhlDQorK3JlcGxhY2VtZW50IHBhdHRlcm4uICBFLmcuIHs6cy9zb21lIHBh dHRlcm4vfi9eTX0gYWZ0ZXIgdGhlIHByZXZpb3VzIGV4YW1wbGUNCisrd291bGQgYmUgZXF1aXZh bGVudCB0byB7OnMvc29tZSBwYXR0ZXJuL25vdCAmL15NfS4NCisrDQorK09uZSBvdGhlciB1c2Vm dWwgcmVwbGFjZW1lbnQgcGF0dGVybiBhbGxvd3MgeW91IHRvIGNoYW5nZSB0aGUgY2FzZSBvZg0K KytpbmRpdmlkdWFsIGxldHRlcnMuICBUaGUgc2VxdWVuY2VzIHtcdX0gYW5kIHtcbH0gY2F1c2Ug dGhlIGltbWVkaWF0ZWx5DQorK2ZvbGxvd2luZyBjaGFyYWN0ZXIgaW4gdGhlIHJlcGxhY2VtZW50 IHRvIGJlIGNvbnZlcnRlZCB0byB1cHBlci0gb3IgbG93ZXItY2FzZSwNCisrcmVzcGVjdGl2ZWx5 LCBpZiB0aGlzIGNoYXJhY3RlciBpcyBhIGxldHRlci4gIFRoZSBzZXF1ZW5jZXMge1xVfSBhbmQg e1xMfSB0dXJuDQorK3N1Y2ggY29udmVyc2lvbiBvbiwgZWl0aGVyIHVudGlsIHtcRX0gb3Ige1xl fSBpcyBlbmNvdW50ZXJlZCwgb3IgdW50aWwgdGhlIGVuZA0KKytvZiB0aGUgcmVwbGFjZW1lbnQg cGF0dGVybi4NCisrDQorK0ZvciBleGFtcGxlLCBwb3NpdGlvbiB0aGUgY3Vyc29yIG9uIGEgbGlu ZTogcGljayBhIGxpbmUsIGFueSBsaW5lLiAgVHlwZQ0KKyt7OnMvLiovXFUmL15NfSBhbmQgb2Jz ZXJ2ZSB0aGUgcmVzdWx0LiAgWW91IGNhbiB1bmRvIGl0IHdpdGgge3V9Lg0KKysNCisrVGhlIHNl YXJjaCBwYXR0ZXJuIG1heSBhY3R1YWxseSBtYXRjaCBtb3JlIHRoYW4gb25jZSBvbiBhIHNpbmds ZSBsaW5lLg0KKytIb3dldmVyLCBvbmx5IHRoZSBmaXJzdCBwYXR0ZXJuIGlzIHN1YnN0aXR1dGVk LiAgSWYgeW91IHdvdWxkIGxpa2UgQUxMDQorK3BhdHRlcm5zIG1hdGNoZWQgb24gdGhlIGxpbmUg dG8gYmUgc3Vic3RpdHV0ZWQsIGFwcGVuZCBhICdnJyBhZnRlciB0aGUNCisrcmVwbGFjZW1lbnQg cGF0dGVybjogezpzLzEyMy80NTYvZ15NfSB3aWxsIHN1YnN0aXR1dGUgRVZFUlkgb2NjdXJyZW5j ZQ0KKytvbiB0aGUgbGluZSBvZiAxMjMgd2l0aCA0NTYuDQorKw0KKytTZWN0aW9uIDM3OiBhZHZh bmNlZCBsaW5lIGFkZHJlc3Npbmc6IHs6cH0gezpnfSB7OnZ9DQorKw0KKytFeCAoYXZhaWxhYmxl IHRocm91Z2ggdGhlIGNvbG9uIGNvbW1hbmQgaW4gdmkpIG9mZmVycyBzZXZlcmFsIG1ldGhvZHMg Zm9yDQorK3NwZWNpZnlpbmcgdGhlIGxpbmVzIG9uIHdoaWNoIGEgc2V0IG9mIGNvbW1hbmRzIHdp bGwgYWN0LiAgRm9yIGV4YW1wbGUsIGlmIHlvdQ0KKyt3b3VsZCBsaWtlIHRvIHNlZSBsaW5lcyA1 MCB0aHJvdWdoIDEwMCBvZiB5b3VyIGZpbGU6IHs6NTAsMTAwcF5NfSB3aWxsIGRpc3BsYXkNCisr dGhlbSwgd2FpdCBmb3IgeW91IHRvIFtIaXQgcmV0dXJuIHRvIGNvbnRpbnVlXSwgYW5kIGxlYXZl IHlvdSBvbiBsaW5lIDEwMC4NCisrT2J2aW91c2x5LCBpdCB3b3VsZCBiZSBlYXNpZXIganVzdCB0 byBkbyB7MTAwR30gZnJvbSB3aXRoaW4gdmkuICBCdXQNCisrd2hhdCBpZiB5b3Ugd291bGQgbGlr ZSB0byBtYWtlIGNoYW5nZXMgdG8ganVzdCB0aG9zZSBsaW5lcz8gIFRoZW4gdGhlDQorK2FkZHJl c3NpbmcgaXMgaW1wb3J0YW50IGFuZCBwb3dlcmZ1bC4NCisrDQorK0xpbmUgMzA6IFRoaXMgaXMg YSB0ZXh0Lg0KKytMaW5lIDMxOiBIZXJlIGlzIGFub3RoZXIgdGV4dC4NCisrTGluZSAzMjogT25l IG1vcmUgdGV4dCBsaW5lLg0KKysNCisrVGhlIGxpbmVzIGFib3ZlIGNvbnRhaW4gYSB0eXBpbmcg ZXJyb3IgdGhhdCB0aGUgYXV0aG9yIG9mIHRoaXMgdHV0b3JpYWwgdGVuZHMNCisrdG8gbWFrZSBl dmVyeSB0aW1lIGhlIGF0dGVtcHRzIHRvIHR5cGUgdGhlIHdvcmQgJ3Rlc3QnLiAgVG8gY2hhbmdl IGFsbCBvZiB0aGVzZQ0KKysndGV4dCdzIGludG8gJ3Rlc3QncywgdHJ5IHRoZSBmb2xsb3dpbmc6 DQorK3s6L15MaW5lIDMwLywvXkxpbmUgMzIvcy90ZXh0L3Rlc3QvXk19LiAgVGhpcyBmaW5kcyB0 aGUgYmVnaW5uaW5nIGFuZCBlbmQgb2YNCisrdGhlIHBvcnRpb24gb2YgdGV4dCB0byBiZSBjaGFu Z2VkLCBhbmQgbGltaXRzIHRoZSBzdWJzdGl0dXRpb24gdG8gZWFjaCBvZiB0aGUNCisrbGluZXMg aW4gdGhhdCByYW5nZS4gIFRoZSB7dX0gY29tbWFuZCBhcHBsaWVzIHRvIEFMTCBvZiB0aGUgc3Vi c3RpdHV0aW9ucyBhcyANCisrYSBncm91cC4NCisrDQorK1RoaXMgcHJvdmlkZXMgYSBtZWNoYW5p c20gZm9yIHBvd2VyZnVsIHRleHQgbWFuaXB1bGF0aW9ucy4NCisrQW5kIHZlcnkgY29tcGxpY2F0 ZWQgZXhhbXBsZXMuDQorKw0KKytMaW5lIDMzOiBUaGlzIHRlc3QgaXMgYS4NCisrTGluZSAzNDog SGVyZSB0ZXN0IGlzIGFub3RoZXIuDQorK0xpbmUgMzU6IE9uZSBsaW5lIG1vcmUgdGVzdC4NCisr DQorK1RoZSBhYm92ZSB0aHJlZSBsaW5lcyBoYXZlIHRoZSBzZWNvbmQgd29yZCBvdXQgb2Ygb3Jk ZXIuICBUaGUgZm9sbG93aW5nIGNvbW1hbmQNCisrc3RyaW5nIHdpbGwgcHV0IHRoaW5ncyByaWdo dC4gIEJlIHZlcnkgY2FyZWZ1bCB3aGVuIHR5cGluZyB0aGlzOiBpdCBpcyB2ZXJ5DQorK2xvbmcs IGZ1bGwgb2Ygc3BlY2lhbCBjaGFyYWN0ZXJzLCBhbmQgZWFzeSB0byBtZXNzIHVwLiAgWW91IG1h eSB3YW50IHRvDQorK2NvbnNpZGVyIHJlYWRpbmcgdGhlIGZvbGxvd2luZyBzZWN0aW9uIHRvIHVu ZGVyc3RhbmQgaXQgYmVmb3JlIHRyeWluZyB0aGUNCisrZXhwZXJpbWVudC4gIERvbid0IHdvcnJ5 IGFib3V0IG1lc3NpbmcgdXAgdGhlIHJlc3Qgb2YgdGhlIGZpbGUsIHRob3VnaDogdGhlDQorK2Fk ZHJlc3MgcmFuZ2UgaXMgc3BlY2lmaWVkLg0KKysNCisrezovXkxpbmUgMzMvLC9eTGluZSAzNS9z L1woW146XSpcKTogXChbXiBdKlwpIFwoW14gXSpcKSBcKFteLl0qXCkvXDE6IFwyIFw0IFwzL15N fQ0KKysNCisrVGhlcmUgYXJlIHNldmVyYWwgdGhpbmdzIHRvIG5vdGUgYWJvdXQgdGhpcyBjb21t YW5kIHN0cmluZy4gIEZpcnN0IG9mIGFsbCwgdGhlDQorK3JhbmdlIG9mIHRoZSBzdWJzdGl0dXRl IHdhcyBsaW1pdGVkIGJ5IHRoZSBhZGRyZXNzIHNwZWNpZmljYXRpb24gey9eTGluZQ0KKyszMy8s L15MaW5lIDM1L15NfS4gIEl0IG1pZ2h0IGhhdmUgYmVlbiBzaW1wbGVyIHRvIGRvIHs6c2V0IG51 bWJlcl5NfSB0byBzZWUgdGhlDQorK2xpbmUgbnVtYmVycyBkaXJlY3RseSwgYW5kIHRoZW4sIGlu IHBsYWNlIG9mIHRoZSB0d28gc2VhcmNoZXMsIHR5cGVkDQorK3RoZSBsaW5lIG51bWJlcnMsIGUu Zy4gezEzOTYsMTM5OH0uICBPciB0byBtYXJrIHRoZSBsaW5lcyB3aXRoIHttYX0gYW5kIHttYn0N CisrYW5kIHVzZSB7J2EsJ2J9Lg0KKysNCisrVGhlbiBmb2xsb3dzIHRoZSBzdWJzdGl0dXRlIHBh dHRlcm4gaXRzZWxmLiAgVG8gbWFrZSBpdCBlYXNpZXIgdG8gdW5kZXJzdGFuZA0KKyt3aGF0IHRo ZSBzdWJzdGl0dXRlIGlzIGRvaW5nLCB0aGUgY29tbWFuZCBpcyBkdXBsaWNhdGVkIGJlbG93IHdp dGggdGhlIHZhcmlvdXMNCisrcGF0dGVybnMgbmFtZWQgZm9yIGVhc2llciByZWZlcmVuY2U6DQor Kw0KKysgICAgIHMvXChbXjpdKlwpOiBcKFteIF0qXCkgXChbXiBdKlwpIFwoW14uXSpcKS9cMTog XDIgXDQgXDMvDQorKyAgICAgICB8LS1cMS0tLXwgIHwtLVwyLS0tfCB8LS1cMy0tLXwgfC0tXDQt LS18DQorKyAgICAgIHwtLS0tLS0tLXNlYXJjaCBwYXR0ZXJuLS0tLS0tLS0tLS0tLS0tLS0tfC1y ZXBsYWNlbWVudHwNCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8LS1wYXR0ZXJuLS0tfA0KKysNCisrSW4gb3ZlcnZpZXcsIHRoZSBzdWJzdGl0dXRlIGxv b2tzIGZvciBhIHBhcnRpY3VsYXIgcGF0dGVybiBtYWRlIHVwIG9mIA0KKytzdWItcGF0dGVybnMs IHdoaWNoIGFyZSBuYW1lZCBcMSwgXDIsIFwzLCBhbmQgXDQuICBUaGVzZSBwYXR0ZXJucyBhcmUg c3BlY2lmaWVkDQorK2J5IHN0YXRpbmcgd2hhdCB0aGV5IGFyZSBOT1QuICBQYXR0ZXJuIFwxIGlz IHRoZSBzZXF1ZW5jZSBvZiBjaGFyYWN0ZXJzIHRoYXQNCisrYXJlIE5PVCBjb2xvbnM6IGluIHRo ZSBzZWFyY2ggc3RyaW5nLCB7W146XX0gd2lsbCBtYXRjaCBleGFjdGx5IG9uZSBjaGFyYWN0ZXIN CisrdGhhdCBpcyBub3QgYSBjb2xvbiwgd2hpbGUgYXBwZW5kaW5nIHRoZSBhc3RlcmlzayB7W146 XSp9IHNwZWNpZmllcyB0aGF0IHRoZQ0KKysnbm90IGEgY29sb24nIHBhdHRlcm4gaXMgdG8gYmUg cmVwZWF0ZWQgdW50aWwgbm8gbG9uZ2VyIHNhdGlzZmllZCwgYW5kDQorK3tcKFteOl0qXCl9IHRo ZW4gZ2l2ZXMgdGhlIHBhdHRlcm4gaXRzIG5hbWUsIGluIHRoaXMgY2FzZSBcMS4gIE91dHNpZGUg b2YgdGhlDQorK3NwZWNpZmljYXRpb24gb2YgXDEgY29tZXMgezogfSwgc3BlY2lmeWluZyB0aGF0 IHRoZSBuZXh0IHR3byBjaGFyYWN0ZXJzIG11c3QgYmUNCisrYSBjb2xvbiBmb2xsb3dlZCBieSBh IGJsYW5rLg0KKysNCisrUGF0dGVybnMgXDIgYW5kIFwzIGFyZSBzaW1pbGFyLCBzcGVjaWZ5aW5n IGNoYXJhY3RlciBzZXF1ZW5jZXMgdGhhdCBhcmUNCisrbm90IGJsYW5rcy4gIFBhdHRlcm4gXDQg bWF0Y2hlcyB1cCB0byB0aGUgcGVyaW9kIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUuDQorKw0KKytU aGUgcmVwbGFjZW1lbnQgcGF0dGVybiB0aGVuIGNvbnNpc3RzIG9mIHNwZWNpZnlpbmcgdGhlIG5l dyBvcmRlciBvZiB0aGUNCisrcGF0dGVybnMuDQorKw0KKytUaGlzIGlzIGEgcGFydGljdWxhcmx5 IGNvbXBsaWNhdGVkIGV4YW1wbGUsIHBlcmhhcHMgdGhlIG1vc3QgY29tcGxpY2F0ZWQNCisraW4g dGhpcyB0dXRvcmlhbC9yZWZlcmVuY2UuICBGb3Igb3VyIHNtYWxsIGV4YW1wbGVzLCBpdCBpcyBv YnZpb3VzbHkNCisrdGVkaW91cyBhbmQgZXJyb3IgcHJvbmUuICBGb3IgbGFyZ2UgZmlsZXMsIGhv d2V2ZXIsIGl0IG1heSBiZSB0aGUgbW9zdA0KKytlZmZpY2llbnQgd2F5IHRvIG1ha2UgdGhlIGRl c2lyZWQgbW9kaWZpY2F0aW9ucy4NCisrDQorKyhUaGUgcmVhZGVyIGlzIGFkdmlzZWQgdG8gbG9v ayBhdCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgYXdrLiAgVGhpcyB0b29sIGlzIHZlcnkNCisrcG93 ZXJmdWwgYW5kIHNsaWdodGx5IHNpbXBsZXIgdG8gdXNlIHRoYW4gdmkgZm9yIHRoaXMga2luZCBv ZiBmaWxlDQorK21hbmlwdWxhdGlvbi4gIEJ1dCwgaXQgaXMgYW5vdGhlciBjb21tYW5kIGxhbmd1 YWdlIHRvIGxlYXJuLikNCisrDQorK01hbnkgdGltZXMsIHlvdSB3aWxsIG5vdCB3YW50IHRvIG9w ZXJhdGUgb24gZXZlcnkgbGluZSBpbiBhIGNlcnRhaW4NCisrcmFuZ2UuICBSYXRoZXIgeW91IHdp bGwgd2FudCB0byBtYWtlIGNoYW5nZXMgb24gbGluZXMgdGhhdCBzYXRpc2Z5DQorK2NlcnRhaW4g cGF0dGVybnM7IGUuZy4gZm9yIGV2ZXJ5IGxpbmUgdGhhdCBoYXMgdGhlIHN0cmluZyAnTlBTJyBv biBpdCwNCisrY2hhbmdlICdOUFMnIHRvICdOYXZhbCBQb3N0Z3JhZHVhdGUgU2Nob29sJy4gIFRo ZSB7Omd9IGFkZHJlc3NpbmcNCisrY29tbWFuZCB3YXMgZGVzaWduZWQgZm9yIHRoaXMgcHVycG9z ZS4gIFRoZSBleGFtcGxlIG9mIHRoaXMgcGFyYWdyYXBoDQorK2NvdWxkIGJlIHR5cGVkIGFzIHs6 Zy9OUFMvcy8vTmF2YWwgUG9zdGdyYWR1YXRlIFNjaG9vbC9eTX0uDQorKw0KKytUaGUgZ2VuZXJh bCBmb3JtYXQgb2YgdGhlIGNvbW1hbmQgaXMgezpnLyhwYXR0ZXJuKS9jbWRzXk19IGFuZCBpdA0K Kyt3b3JrcyBpbiB0aGUgZm9sbG93aW5nIHdheTogYWxsIGxpbmVzIHRoYXQgbWF0Y2ggdGhlIHBh dHRlcm4NCisrZm9sbG93aW5nIHRoZSB7Omd9IGFyZSAndGFnZ2VkJyBpbiBhIHNwZWNpYWwgd2F5 LiAgVGhlbiBlYWNoIG9mIHRoZXNlDQorK2xpbmVzIGhhdmUgdGhlIGNvbW1hbmRzIGZvbGxvd2lu ZyB0aGUgcGF0dGVybiBleGVjdXRlZCBvdmVyIHRoZW0uDQorKw0KKytMaW5lIDM2OiBBQkMgcmhp bm8gZ2VvcmdlIGZhcm1lciBEaWNrIGplc3RlciBsZXN0DQorK0xpbmUgMzc6IGdlb3JnZSBmYXJt ZXIgcmhpbm8gbGVzdCBqZXN0ZXIgQUJDDQorK0xpbmUgMzg6IHJoaW5vIGxlc3QgZ2VvcmdlIERp Y2sgZmFybWVyIEFCQyBqZXN0ZXIgDQorKw0KKytUeXBlOg0KKysNCisrezpnL15MaW5lLipBQkMv cy9EaWNrL0hhcnJ5IEJpbnN3YW5nZXIvfHMvZ2VvcmdlIGZhcm1lci9nZW50bGVtYW4gZ2Vvcmdl L3BeTX0NCisrDQorK1RoZXJlIGFyZSBzZXZlcmFsIHRoaW5ncyBvZiBub3RlIGhlcmUuICBGaXJz dCwgbGluZXMgMzYsIDM3LCBhbmQgMzggYWJvdmUgYXJlDQorK3RhZ2dlZCBieSB0aGUgezpnfS4g IFR5cGUgezpnL15MaW5lLipBQkMvcF5NfSB0byB2ZXJpZnkgdGhpcy4gIFNlY29uZCwgdGhlcmUN CisrYXJlIHR3byBzdWJzdGl0dXRlcyBvbiB0aGUgc2FtZSBsaW5lIHNlcGFyYXRlZCBieSAnfCcu ICBJbiBnZW5lcmFsLCBhbnkgY29sb24NCisrY29tbWFuZHMgY2FuIGJlIHN0cnVuZyB0b2dldGhl ciB3aXRoICd8Jy4gIFRoaXJkLCBib3RoIHN1YnN0aXR1dGVzIG9wZXJhdGUgb24NCisrYWxsIHRo cmVlIGxpbmVzLCBldmVuIHRob3VnaCB0aGUgZmlyc3Qgc3R1YnN0aXR1dGUgd29ya3Mgb24gb25s eSB0d28gb2YgdGhlDQorK2xpbmVzICgzNiBhbmQgMzgpLiAgRm91cnRoLCB0aGUgc2Vjb25kIHN1 YnN0aXR1dGUgd29ya3Mgb24gb25seSB0d28gbGluZXMgKDM2DQorK2FuZCAzNykgYW5kIHRob3Nl IGFyZSB0aGUgdHdvIGxpbmVzIHByaW50ZWQgYnkgdGhlIHRyYWlsaW5nICdwJy4NCisrDQorK1Ro ZSB7OnZ9IGNvbW1hbmQgd29ya3Mgc2ltaWxhcmx5IHRvIHRoZSB7Omd9IGNvbW1hbmQsIGV4Y2Vw dCB0aGF0IHRoZSBzZW5zZSBvZg0KKyt0aGUgdGVzdCBmb3IgJ3RhZ2dpbmcnIHRoZSBsaW5lcyBp cyByZXZlcnNlZDogYWxsIGxpbmVzIE5PVCBtYXRjaGluZyB0aGUgc2VhcmNoDQorK3BhdHRlcm4g YXJlIHRhZ2dlZCBhbmQgb3BlcmF0ZWQgb24gYnkgdGhlIGNvbW1hbmRzLg0KKysNCisrVXNpbmcg e15WfSB0byBxdW90ZSBjYXJyaWFnZSByZXR1cm4gKHNlZSBzZWN0aW9uIDM5KSBjYW4gYmUgdXNl ZCBpbiBnbG9iYWwNCisrc3Vic3RpdHV0aW9ucyB0byBzcGxpdCB0d28gbGluZXMuICBGb3IgZXhh bXBsZSwgdGhlIGNvbW1hbmQgDQorK3s6Zy9cLiAgL3MvLy5eVl5NL2deTX0gd2lsbCBjaGFuZ2Ug eW91ciBmaWxlIHNvIHRoYXQgZWFjaCBzZW50ZW5jZSBpcyBvbiBhIA0KKytzZXBhcmF0ZSBsaW5l LiAgKE5vdGUgdGhhdCB3ZSBoYXZlIHRvICdlc2NhcGUnIHRoZSAnLicsIGJlY2F1c2UgJy4nIGJ5 IGl0c2VsZg0KKyttYXRjaGVzIGFueSBjaGFyYWN0ZXIuICBPdXIgY29tbWFuZCBzYXlzIHRvIGZp bmQgYW55IGxpbmUgd2hpY2ggY29udGFpbnMgYSANCisrcGVyaW9kIGZvbGxvd2VkIGJ5IDIgc3Bh Y2VzLCBhbmQgaW5zZXJ0cyBhIGNhcnJpYWdlIHJldHVybiBhZnRlciB0aGUgcGVyaW9kLikNCisr DQorK0NhdmVhdDogIEluIHNvbWUgb2YgdGhlIGRvY3VtZW50YXRpb24gZm9yIGV4IGFuZCB2aSB5 b3UgbWF5IGZpbmQgdGhlDQorK2NvbW1lbnQgdG8gdGhlIGVmZmVjdCB0aGF0IHtcXk19IGNhbiBi ZSB1c2VkIGJldHdlZW4gY29tbWFuZHMgZm9sbG93aW5nDQorK3s6Z30uICBUaGUgYXV0aG9yIG9m IHRoaXMgdHV0b3JpYWwgaGFzIG5ldmVyIGdvdHRlbiB0aGlzIHRvIHdvcmsgYW5kIGhhcw0KKytj cmFzaGVkIHRoZSBlZGl0b3IgdHJ5aW5nLg0KKysNCisrU2VjdGlvbiAzODogaGlnaGVyIGxldmVs IHRleHQgb2JqZWN0cyBhbmQgbnJvZmY6IHsofSB7KX0gW3tdIFt9XSB7W1t9IHtdXX0NCisrDQor KyhOb3RlOiB0aGlzIHNlY3Rpb24gbWF5IGJlIGEgbGl0dGxlIGNvbmZ1c2luZyBiZWNhdXNlIG9m IG91ciBjb21tYW5kDQorK25vdGF0aW9uLiAgVXNpbmcgY3VybHkgYnJhY2VzIHRvIHN1cnJvdW5k IGNvbW1hbmQgc3RyaW5ncyB3b3JrcyBmaW5lIGFzDQorK2xvbmcgYXMgdGhlIGNvbW1hbmQgc3Ry aW5nIGRvZXMgbm90IGNvbnRhaW4gYW55IGN1cmx5IGJyYWNlcyBpdHNlbGYuDQorK0hvd2V2ZXIs IHRoZSBjdXJseSBicmFjZXMgYXJlIGxlZ2l0aW1hdGUgY29tbWFuZHMgaW4gdmkuICBUaGVyZWZv cmUsIGZvcg0KKythbnkgY29tbWFuZCBzZXF1ZW5jZSB0aGF0IGNvbnRhaW5zIGN1cmx5IGJyYWNl cywgd2Ugd2lsbCBzdXJyb3VuZCB0aGF0DQorK3NlcXVlbmNlIHdpdGggU1FVQVJFIGJyYWNlcywg YXMgb24gdGhlIHByZXZpb3VzIFNlY3Rpb24gbGluZS4pDQorKw0KKytJbiB3b3JraW5nIHdpdGgg YSBkb2N1bWVudCwgcGFydGljdWxhcmx5IGlmIHVzaW5nIHRoZSB0ZXh0IGZvcm1hdHRpbmcNCisr cHJvZ3JhbXMgbnJvZmYgb3IgdHJvZmYsIGl0IGlzIG9mdGVuIGFkdmFudGFnZW91cyB0byB3b3Jr IGluIHRlcm1zIG9mDQorK3NlbnRlbmNlcywgcGFyYWdyYXBocywgYW5kIHNlY3Rpb25zLiAgVGhl IG9wZXJhdGlvbnMgeyh9IGFuZCB7KX0gbW92ZSB0bw0KKyt0aGUgYmVnaW5uaW5nIG9mIHRoZSBw cmV2aW91cyBhbmQgbmV4dCBzZW50ZW5jZXMsIHJlc3BlY3RpdmVseS4gIFRodXMNCisrdGhlIGNv bW1hbmQge2QpfSB3aWxsIGRlbGV0ZSB0aGUgcmVzdCBvZiB0aGUgY3VycmVudCBzZW50ZW5jZTsg bGlrZXdpc2UNCisre2QofSB3aWxsIGRlbGV0ZSB0aGUgcHJldmlvdXMgc2VudGVuY2UgaWYgeW91 IGFyZSBhdCB0aGUgYmVnaW5uaW5nIG9mDQorK3RoZSBjdXJyZW50IHNlbnRlbmNlLCBvciwgaWYg eW91IGFyZSBub3QgYXQgdGhlIGJlZ2lubmluZyBvZiBhIHNlbnRlbmNlLA0KKytpdCB3aWxsIGRl bGV0ZSB0aGUgY3VycmVudCBzZW50ZW5jZSBmcm9tIHRoZSBiZWdpbm5pbmcgDQorK3VwIHRvIHdo ZXJlIHlvdSBhcmUuDQorKw0KKytBIHNlbnRlbmNlIGlzIGRlZmluZWQgdG8gZW5kIGF0IGEgJy4n LCAnIScsIG9yICc/JyB3aGljaCBpcyBmb2xsb3dlZA0KKytieSBlaXRoZXIgdGhlIGVuZCBvZiBh IGxpbmUsIG9yIGJ5IHR3byBzcGFjZXMuICBBbnkgbnVtYmVyIG9mIGNsb3NpbmcNCisrJyknLCAn XScsICciJywgYW5kICcnJyBjaGFyYWN0ZXJzIG1heSBhcHBlYXIgYWZ0ZXIgdGhlICcuJywgJyEn LCBvciAnPycNCisrYmVmb3JlIHRoZSBzcGFjZXMgb3IgZW5kIG9mIGxpbmUuICBUaGVyZWZvcmUs IHRoZSB7KH0gYW5kIHspfSBjb21tYW5kcw0KKyt3b3VsZCByZWNvZ25pemUgb25seSBvbmUgc2Vu dGVuY2UgaW4gdGhlIGZvbGxvd2luZyBsaW5lLCBidXQgdHdvDQorK3NlbnRlbmNlcyBvbiB0aGUg c2Vjb25kIGZvbGxvd2luZyBsaW5lLg0KKysNCisrTGluZSAzOTogVGhpcyBpcyBvbmUgc2VudGVu Y2UuIEV2ZW4gdGhvdWdoIGl0IGxvb2tzIGxpa2UgdHdvLg0KKytMaW5lIDQwOiBUaGlzIGlzIHR3 byBzZW50ZW5jZXMuICBCZWNhdXNlIGl0IGhhcyB0d28gc3BhY2VzIGFmdGVyIHRoZSAnLicuDQor Kw0KKytUaGUgb3BlcmF0aW9ucyBbe10gYW5kIFt9XSBtb3ZlIG92ZXIgcGFyYWdyYXBocyBhbmQg dGhlIG9wZXJhdGlvbnMge1tbfQ0KKythbmQge11dfSBtb3ZlIG92ZXIgc2VjdGlvbnMuDQorKw0K KytBIHBhcmFncmFwaCBiZWdpbnMgYWZ0ZXIgZWFjaCBlbXB0eSBsaW5lLCBhbmQgYWxzbyBhdCBl YWNoIG9mIGEgc2V0IG9mIG5yb2ZmDQorK3BhcmFncmFwaCBtYWNyb3MuICBBIHNlY3Rpb24gYmVn aW5zIGFmdGVyIGVhY2ggbGluZSB3aXRoIGEgZm9ybS1mZWVkIF5MIGluIHRoZQ0KKytmaXJzdCBj b2x1bW4sIGFuZCBhdCBlYWNoIG9mIGEgc2V0IG9mIG5yb2ZmIHNlY3Rpb24gbWFjcm9zLiAgV2hl biBwcmVwYXJpbmcgYQ0KKyt0ZXh0IGZpbGUgYXMgaW5wdXQgdG8gbnJvZmYsIHlvdSB3aWxsIHBy b2JhYmx5IGJlIHVzaW5nIGEgc2V0IG9mIG5yb2ZmIG1hY3Jvcw0KKyt0byBtYWtlIHRoZSBmb3Jt YXR0aW5nIHNwZWNpZmljYXRpb25zIGVhc2llciwgb3IgbW9yZSB0byB5b3VyIHRhc3RlLiAgVGhl c2UNCisrbWFjcm9zIGFyZSBpbnZva2VkIGJ5IGJlZ2lubmluZyBhIGxpbmUgd2l0aCBhIHBlcmlv ZCBmb2xsb3dlZCBieSB0aGUgb25lIG9yIHR3bw0KKytsZXR0ZXIgbWFjcm8gbmFtZS4gVmkgaGFz IGJlZW4gcHJvZ3JhbW1lZCB0byByZWNvZ25pemUgdGhlc2UgbnJvZmYgbWFjcm9zLCBhbmQNCisr aWYgaXQgZG9lc24ndCByZWNvZ25pemUgeW91ciBwYXJ0aWN1bGFyIG1hY3JvIHlvdSBjYW4gdXNl IHRoZSB7OnNldCBwYXJhZ3JhcGhzfQ0KKytvciB7OnNldCBzZWN0aW9uc30gY29tbWFuZHMgc28g dGhhdCBpdCB3aWxsLg0KKysNCisrU2VjdGlvbiAzOTogbW9yZSBhYm91dCBpbnNlcnRpbmcgdGV4 dA0KKysNCisrVGhlcmUgYXJlIGEgbnVtYmVyIG9mIGNoYXJhY3RlcnMgd2hpY2ggeW91IGNhbiB1 c2UgdG8gbWFrZSBjb3JyZW5jdGlvbnMNCisrZHVyaW5nIGlucHV0IG1vZGUuICBUaGVzZSBhcmUg c3VtbWFyaXplZCBpbiB0aGUgZm9sbG93aW5nIHRhYmxlLg0KKysNCisrICAgIF5IICAgICAgZGVs ZXRlcyB0aGUgbGFzdCBpbnB1dCBjaGFyYWN0ZXINCisrICAgIF5XICAgICAgZGVsZXRlcyB0aGUg bGFzdCBpbnB1dCB3b3JkDQorKyAgICAoZXJhc2UpIHNhbWUgYXMgXkg7IGVhY2ggdGVybWluYWwg Y2FuIGRlZmluZSBpdHMgb3duIGVyYXNlIGNoYXJhY3RlcjsgDQorKyAgICAgICAgICAgIGZvciBz b21lIGl0IGlzIF5ILCBmb3Igb3RoZXJzIGl0IGlzIHRoZSBERUxFVEUga2V5LCBhbmQgZm9yDQor KyAgICAgICAgICAgIG90aGVycyBpdCBpcyAnQCcuDQorKyAgICAoa2lsbCkgIGRlbGV0ZXMgdGhl IGlucHV0IG9uIHRoaXMgbGluZTsgZWFjaCB0ZXJtaW5hbCBjYW4gZGVmaW5lIGl0cw0KKysgICAg ICAgICAgICBvd24gbGluZS1raWxsIGNoYXJhY3RlcjsgZm9yIHNvbWUgaXQgaXMgXlUsIGZvciBv dGhlcnMgaXQgaXMNCisrICAgICAgICAgICAgJ0AnOyB5b3Ugd2lsbCBuZWVkIHRvIGV4cGVyaW1l bnQgb24geW91ciB0ZXJtaW5hbCB0byBmaW5kDQorKyAgICAgICAgICAgIG91dCB3aGF0IHlvdXIg bGluZS1raWxsIGFuZCBlcmFzZSBjaGFyYWN0ZXJzIGFyZS4NCisrICAgIFwgICAgICAgZXNjYXBl cyBhIGZvbGxvd2luZyBeSCwgKGtpbGwpLCBhbmQgKGVyYXNlKSBjaGFyYWN0ZXJzOiBpLmUuDQor KyAgICAgICAgICAgIHRoaXMgaXMgaG93IHRvIHB1dCB0aGVzZSBjaGFyYWN0ZXJzIGluIHlvdXIg ZmlsZS4NCisrICAgIF5bICAgICAgZXNjYXBlIGtleTsgZW5kcyBpbnNlcnRpb24gbW9kZQ0KKysg ICAgXj8gICAgICB0aGUgZGVsZXRlIGtleTsgaW50ZXJydXB0cyBhbiBpbnNlcnRpb24sIHRlcm1p bmF0aW5nIGl0DQorKyAgICAgICAgICAgIGFibm9ybWFsbHkuDQorKyAgICBeTSAgICAgIHRoZSBy ZXR1cm4ga2V5OyBzdGFydHMgYSBuZXcgbGluZS4NCisrICAgIF5EICAgICAgYmFja3RhYnMgb3Zl ciB0aGUgaW5kZW50YXRpb24gc2V0IGJ5IHRoZSBhdXRvaW5kZW50IG9wdGlvbg0KKysgICAgMF5E ICAgICBiYWNrdGFicyBvdmVyIGFsbCBpbmRlbnRhdGlvbiBiYWNrIHRvIHRoZSBiZWdpbm5pbmcg b2YgdGhlIGxpbmUNCisrICAgIF5eRCAgICAgKHVwLWFycm93IGZvbGxvd2VkIGJ5IGNvbnRyb2wt ZClzYW1lIGFzIDBeRCwgZXhjZXB0IHRoZSBpbmRlbnRhdGlvbiANCisrCSAgICB3aWxsIGJlIHJl c3RvcmVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgbGluZS4NCisrICAgIF5WICAgICAg cXVvdGVzIHRoZSBuZXh0IG5vbi1wcmludGluZyBjaGFyYWN0ZXIgaW50byB0aGUgZmlsZQ0KKysN CisrSWYgeW91IHdpc2ggdG8gdHlwZSBpbiB5b3VyIGVyYXNlIG9yIGtpbGwgY2hhcmFjdGVyIChz YXkgIyBvciBAIG9yIF5VKSB0aGVuIHlvdQ0KKyttdXN0IHByZWNlZGUgaXQgd2l0aCBhIFwsIGp1 c3QgYXMgeW91IHdvdWxkIGRvIGF0IHRoZSBub3JtYWwgc3lzdGVtIGNvbW1hbmQNCisrbGV2ZWwu ICBBIG1vcmUgZ2VuZXJhbCB3YXkgb2YgdHlwaW5nIG5vbi1wcmludGluZyBjaGFyYWN0ZXJzIGlu dG8gdGhlIGZpbGUgaXMNCisrdG8gcHJlY2VkZSB0aGVtIHdpdGggYSBeVi4gIFRoZSBeViBlY2hv ZXMgYXMgYSBeIGNoYXJhY3RlciBvbiB3aGljaCB0aGUgY3Vyc29yDQorK3Jlc3RzLiAgVGhpcyBp bmRpY2F0ZXMgdGhhdCB0aGUgZWRpdG9yIGV4cGVjdHMgeW91IHRvIHR5cGUgYSBjb250cm9sIGNo YXJhY3Rlcg0KKythbmQgaXQgd2lsbCBiZSBpbnNlcnRlZCBpbnRvIHRoZSBmaWxlIGF0IHRoYXQg cG9pbnQuICBUaGVyZSBhcmUgYSBmZXcNCisrZXhjZXB0aW9ucyB0byBub3RlLiAgVGhlIGltcGxl bWVudGF0aW9uIG9mIHRoZSBlZGl0b3IgZG9lcyBub3QgYWxsb3cgdGhlIG51bGwNCisrY2hhcmFj dGVyIF5AIHRvIGFwcGVhciBpbiBmaWxlcy4gIEFsc28gdGhlIGxpbmVmZWVkIGNoYXJhY3RlciBe SiBpcyB1c2VkIGJ5IHRoZQ0KKytlZGl0b3IgdG8gc2VwYXJhdGUgbGluZXMgaW4gdGhlIGZpbGUs IHNvIGl0IGNhbm5vdCBhcHBlYXIgaW4gdGhlIG1pZGRsZSBvZiBhDQorK2xpbmUuICAoVHJ5aW5n IHRvIGluc2VydCBhIF5NIGludG8gYSBmaWxlLCBvciBwdXR0aW5nIGl0IGluIHRoZSByZXBsYWNl bWVudCANCisrcGFydCBvZiBhIHN1YnN0aXR1dGlvbiBzdHJpbmcgd2lsbCByZXN1bHQgaW4gdGhl IG1hdGNoZWQgbGluZSBiZWluZyBzcGxpdCBpbiANCisrdHdvLiAgVGhpcywgaW4gZWZmZWN0LCBp cyBob3cgdG8gc3BsaXQgbGluZXMgYnkgdXNpbmcgYSBzdWJzdGl0dXRpb24uKSAgWW91IGNhbiAN CisraW5zZXJ0IGFueSBvdGhlciBjaGFyYWN0ZXIsIGhvd2V2ZXIsIGlmIHlvdSB3YWl0IGZvciB0 aGUgZWRpdG9yIHRvIGVjaG8gdGhlIF4gDQorK2JlZm9yZSB5b3UgdHlwZSB0aGUgY2hhcmFjdGVy LiAgSW4gZmFjdCwgdGhlIGVkaXRvciB3aWxsIHRyZWF0IGEgZm9sbG93aW5nIA0KKytsZXR0ZXIg YXMgYSByZXF1ZXN0IGZvciB0aGUgY29ycmVzcG9uZGluZyBjb250cm9sIGNoYXJhY3Rlci4gIFRo aXMgaXMgdGhlIG9ubHkgDQorK3dheSB0byB0eXBlIF5TIG9yIF5RLCBzaW5jZSB0aGUgc3lzdGVt IG5vcm1hbGx5IHVzZXMgdGhlbSB0byBzdXNwZW5kIGFuZCByZXN1bWUgDQorK291dHB1dCBhbmQg bmV2ZXIgZ2l2ZXMgdGhlbSB0byB0aGUgZWRpdG9yIHRvIHByb2Nlc3MuDQorKw0KKytJZiB5b3Ug YXJlIHVzaW5nIHRoZSBhdXRvaW5kZW50IG9wdGlvbiB5b3UgY2FuIGJhY2t0YWIgb3ZlciB0aGUg aW5kZW50IHdoaWNoIGl0DQorK3N1cHBsaWVzIGJ5IHR5cGluZyBhIF5ELiAgVGhpcyBiYWNrcyB1 cCB0byB0aGUgYm91bmRhcnkgc3BlY2lmaWVkIGJ5IHRoZQ0KKytzaGlmdHdpZHRoIG9wdGlvbi4g IFRoaXMgb25seSB3b3JrcyBpbW1lZGlhdGVseSBhZnRlciB0aGUgc3VwcGxpZWQgYXV0b2luZGVu dC4NCisrDQorK1doZW4geW91IGFyZSB1c2luZyB0aGUgYXV0b2luZGVudCBvcHRpb24geW91IG1h eSB3aXNoIHRvIHBsYWNlIGEgbGFiZWwgYXQgdGhlDQorK2xlZnQgbWFyZ2luIG9mIGEgbGluZS4g IFRoZSB3YXkgdG8gZG8gdGhpcyBlYXNpbHkgaXMgdG8gdHlwZSBeICh1cC1hcnJvdykgYW5kDQor K3RoZW4gXkQuICBUaGUgZWRpdG9yIHdpbGwgbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBsZWZ0IG1h cmdpbiBmb3Igb25lIGxpbmUsIGFuZA0KKytyZXN0b3JlIHRoZSBwcmV2aW91cyBpbmRlbnQgb24g dGhlIG5leHQuICBZb3UgY2FuIGFsc28gdHlwZSBhIDAgZm9sbG93ZWQNCisraW1tZWRpYXRlbHkg YnkgYSBeRCBpZiB5b3Ugd2lzaCB0byBraWxsIGFsbCBpbmRlbnRhdGlvbiBhbmQgbm90IGhhdmUg aXQgcmVzdW1lDQorK29uIHRoZSBuZXh0IGxpbmUuDQorKw0KKytTZWN0aW9uIDQwOiBtb3JlIG9u IG9wZXJhdG9yczoge2R9IHtjfSB7PH0gez59IHshfSB7PX0ge3l9DQorKw0KKytCZWxvdyBpcyBh IG5vbi1leGhhdXN0aXZlIGxpc3Qgb2YgY29tbWFuZHMgdGhhdCBjYW4gZm9sbG93IHRoZSBvcGVy YXRvcnMNCisrdG8gYWZmZWN0IHRoZSByYW5nZSBvdmVyIHdoaWNoIHRoZSBvcGVyYXRvcnMgd2ls bCB3b3JrLiAgSG93ZXZlciwgbm90ZQ0KKyt0aGF0IHRoZSBvcGVyYXRvcnMgezx9LCB7Pn0sIHsh fSwgYW5kIHs9fSBkbyBub3Qgb3BlcmF0ZSBvbiBhbnkgb2JqZWN0DQorK2xlc3MgdGhhbiBhIGxp bmUuICBUcnkgeyF3fSBhbmQgeW91IHdpbGwgZ2V0IGEgYmVlcC4gIFRvIGdldCB0aGUNCisrb3Bl cmF0b3IgdG8gd29yayBvbiBqdXN0IHRoZSBjdXJyZW50IGxpbmUsIGRvdWJsZSBpdC4gIEUuZy4g ezw8fS4NCisrDQorKyAgICBzdWZmaXggICAgICAgIHdpbGwgb3BlcmF0ZSBvbg0KKysgICAgLS0t LS0tICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisrICAgICAgXlsgICAgICAgICAg ICBjYW5jZWxzIHRoZSBjb21tYW5kDQorKyAgICAgIHcgICAgICAgICAgICAgdGhlIHdvcmQgdG8g dGhlIHJpZ2h0IG9mIHRoZSBjdXJzb3INCisrICAgICAgVyAgICAgICAgICAgICBkaXR0bywgYnV0 IGlnbm9yaW5nIHB1bmN0dWF0aW9uDQorKyAgICAgIGIgICAgICAgICAgICAgdGhlIHdvcmQgdG8g dGhlIGxlZnQgb2YgdGhlIGN1cnNvcg0KKysgICAgICBCICAgICAgICAgICAgIGRpdHRvLCBidXQg aWdub3JpbmcgcHVuY3R1YXRpb24NCisrICAgICAgZSAgICAgICAgICAgICBzZWUgYmVsb3cuDQor KyAgICAgIEUgICAgICAgICAgICAgICBkaXR0bw0KKysgICAgICAoc3BhY2UpICAgICAgIGEgY2hh cmFjdGVyDQorKyAgICAgICQgICAgICAgICAgICAgdG8gdGhlIGVuZCBvZiB0aGUgbGluZQ0KKysg ICAgICBeICAgICAgICAgICAgIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUNCisrICAgICAg LyAuLiAvICAgICAgICB1cCB0bywgYnV0IG5vdCBpbmNsdWRpbmcsIHRoZSBzdHJpbmcNCisrICAg ICAgPyAuLiA/ICAgICAgICBiYWNrIHRvIGFuZCBpbmNsdWRpbmcgdGhlIHN0cmluZw0KKysgICAg ICBmYyAgICAgICAgICAgIHVwIHRvIGFuZCBpbmNsdWRpbmcgdGhlIG9jY3VycmVuY2Ugb2YgYyAN CisrICAgICAgRmMgICAgICAgICAgICBiYWNrIHRvIGFuZCBpbmNsdWRpbmcgdGhlIG9jY3VycmVu Y2Ugb2YgYw0KKysgICAgICB0YyAgICAgICAgICAgIHVwIHRvIGJ1dCBub3QgaW5jbHVkaW5nIHRo ZSBvY2N1cnJlbmNlIG9mIGMNCisrICAgICAgVGMgICAgICAgICAgICBiYWNrIHRvIGJ1dCBub3Qg aW5jbHVkaW5nIHRoZSBvY2N1cnJlbmNlIG9mIGMNCisrICAgICAgXk0gICAgICAgICAgICBUV08g bGluZXMgKHRoYXQncyByaWdodDogdHdvKQ0KKysgICAgICAobnVtYmVyKV5NICAgIHRoYXQgbWFu eSBsaW5lcyBwbHVzIG9uZQ0KKysgICAgICAobnVtYmVyKUcgICAgIHVwIHRvIGFuZCBpbmNsdWRp bmcgbGluZSAobnVtYmVyKQ0KKysgICAgICAoICAgICAgICAgICAgIHRoZSBwcmV2aW91cyBzZW50 ZW5jZSBpZiB5b3UgYXJlIGF0IHRoZSBiZWdpbm5pbmcgb2YNCisrICAgICAgICAgICAgICAgICAg ICB0aGUgY3VycmVudCBzZW50ZW5jZSwgb3IgdGhlIGN1cnJlbnQgc2VudGVuY2UgdXAgdG8gd2hl cmUgDQorKyAgICAgICAgICAgICAgICAgICAgeW91IGFyZSBpZiB5b3UgYXJlIG5vdCBhdCB0aGUg YmVnaW5uaW5nIG9mIHRoZSBjdXJyZW50IA0KKysgICAgICAgICAgICAgICAgICAgIHNlbnRlbmNl LiAgSGVyZSwgJ3NlbnRlbmNlJyByZWZlcnMgdG8gdGhlIGludHVpdGl2ZQ0KKysgICAgICAgICAg ICAgICAgICAgIG5vdGlvbiBvZiBhbiBFbmdsaXNoIHNlbnRlbmNlLCBlbmRpbmcgd2l0aCAnIScs ICc/JywNCisrICAgICAgICAgICAgICAgICAgICBvciAnLicgYW5kIGZvbGxvd2VkIGJ5IGFuIGVu ZCBvZiBsaW5lIG9yIHR3byBzcGFjZXMuDQorKyAgICAgICkgICAgICAgICAgICAgdGhlIHJlc3Qg b2YgdGhlIGN1cnJlbnQgc2VudGVuY2UNCisrICAgICAgeyAgICAgICAgICAgICBhbmFsb2dvdXMg dG8gJygnLCBidXQgaW4gcmVmZXJlbmNlIHRvIHBhcmFncmFwaHM6DQorKyAgICAgICAgICAgICAg ICAgICAgc2VjdGlvbnMgb2YgdGV4dCBzdXJyb3VuZGVkIGJ5IGJsYW5rIGxpbmVzDQorKyAgICAg IH0gICAgICAgICAgICAgYW5hbG9nb3VzIHRvICcpJywgYnV0IGluIHJlZmVyZW5jZSB0byBwYXJh Z3JhcGhzDQorKyAgICAgIFtbICAgICAgICAgICAgYW5hbG9nb3VzIHRvICcoJywgYnV0IGluIHJl ZmVyZW5jZSB0byBzZWN0aW9ucw0KKysgICAgICBdXSAgICAgICAgICAgIGFuYWxvZ291cyB0byAn KScsIGJ1dCBpbiByZWZlcmVuY2UgdG8gc2VjdGlvbnMNCisrICAgICAgSCAgICAgICAgICAgICB0 aGUgZmlyc3QgbGluZSBvbiB0aGUgc2NyZWVuDQorKyAgICAgIE0gICAgICAgICAgICAgdGhlIG1p ZGRsZSBsaW5lIG9uIHRoZSBzY3JlZW4NCisrICAgICAgTCAgICAgICAgICAgICB0aGUgbGFzdCBs aW5lIG9uIHRoZSBzY3JlZW4NCisrICAgICAgM0wgICAgICAgICAgICB0aHJvdWdoIHRoZSB0aGly ZCBsaW5lIGZyb20gdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuDQorKyAgICAgIF5GICAgICAgICAg ICAgZm9yd2FyZCBhIHNjcmVlbmZ1bA0KKysgICAgICBeQiAgICAgICAgICAgIGJhY2t3YXJkIGEg c2NyZWVuZnVsDQorKyAgICAgIDoNCisrICAgICAgOiAgZXRjLiBldGMuIGV0Yy4NCisrDQorK1Ro aXMgbGlzdCBpcyBub3QgZXhoYXVzdGl2ZSwgYnV0IGl0IHNob3VsZCBiZSBzdWZmaWNpZW50IHRv IGdldCB0aGUgaWRlYQ0KKythY3Jvc3M6IGFmdGVyIHRoZSBvcGVyYXRvciwgeW91IGNhbiBzcGVj aWZ5IGEgcmFuZ2Ugd2l0aCBhIG1vdmUtdGhlLWN1cnNvcg0KKytjb21tYW5kLCBhbmQgdGhhdCBp cyB0aGUgcmVnaW9uIG9mIHRleHQgb3ZlciB3aGljaCB0aGUgb3BlcmF0b3Igd2lsbCBiZQ0KKytl ZmZlY3RpdmUuDQorKw0KKytTZWN0aW9uIDQxOiBhYmJyZXZpYXRpb25zOiB7OmFifQ0KKysNCisr V2hlbiB0eXBpbmcgbGFyZ2UgZG9jdW1lbnRzIHlvdSBtYXkgZmluZCB5b3Vyc2VsZiB0eXBpbmcg YSBsYXJnZSBwaHJhc2UNCisrb3ZlciBhbmQgb3Zlci4gIFZpIGdpdmVzIHlvdSB0aGUgYWJpbGl0 eSB0byBzcGVjaWZ5IGFuIGFiYnJldmlhdGlvbiBmb3INCisrYSBsb25nIHN0cmluZyBzdWNoIHRo YXQgdHlwaW5nIHRoZSBhYmJyZXZpYXRpb24gd2lsbCBhdXRvbWF0aWNhbGx5DQorK2V4cGFuZCBp bnRvIHRoZSBsb25nZXIgcGhyYXNlLg0KKysNCisrVHlwZSB7OmFiIG5wcyBOYXZhbCBQb3N0Z3Jh ZHVhdGUgU2Nob29sXk19LiAgTm93IHR5cGU6DQorKw0KKyt7aVRoaXMgaXMgdG8gc2hvdyBvZmYg dGhlIG5wcydzIFVOSVggZWRpdG9yLl5NXlt9DQorKw0KKytTZWN0aW9uIDQyOiB2aSdzIHJlbGF0 aW9uc2hpcCB3aXRoIHRoZSBleCBlZGl0b3I6IHs6fQ0KKysNCisrVmkgaXMgYWN0dWFsbHkgb25l IG1vZGUgb2YgZWRpdGluZyB3aXRoaW4gdGhlIGVkaXRvciBleC4gIFdoZW4geW91IGFyZQ0KKyty dW5uaW5nIHZpIHlvdSBjYW4gZXNjYXBlIHRvIHRoZSBsaW5lIG9yaWVudGVkIGVkaXRvciBvZiBl eCBieSBnaXZpbmcNCisrdGhlIGNvbW1hbmQge1F9LiAgQWxsIG9mIHRoZSBjb2xvbi1jb21tYW5k cyB3aGljaCB3ZXJlIGludHJvZHVjZWQgYWJvdmUNCisrYXJlIGF2YWlsYWJsZSBpbiBleC4gIExp a2V3aXNlLCBtb3N0IGV4IGNvbW1hbmRzIGNhbiBiZSBpbnZva2VkIGZyb20gdmkNCisrdXNpbmcg ezp9LiAgIA0KKysNCisrSW4gcmFyZSBpbnN0YW5jZXMsIGFuIGludGVybmFsIGVycm9yIG1heSBv Y2N1ciBpbiB2aS4gIEluIHRoaXMgY2FzZSB5b3UNCisrd2lsbCBnZXQgYSBkaWFnbm9zdGljIGFu ZCB3aWxsIGJlIGxlZnQgaW4gdGhlIGNvbW1hbmQgbW9kZSBvZiBleC4gIFlvdSBjYW4NCisrdGhl biBzYXZlIHlvdXIgd29yayBhbmQgcXVpdCBpZiB5b3Ugd2lzaCBieSBnaXZpbmcgdGhlIGNvbW1h bmQge3h9IGFmdGVyDQorK3RoZSBjb2xvbiBwcm9tcHQgb2YgZXguICBPciB5b3UgY2FuIHJlZW50 ZXIgdmkgKGlmIHlvdSBhcmUgYnJhdmUpIGJ5DQorK2dpdmluZyBleCB0aGUgY29tbWFuZCB7dml9 Lg0KKysNCisrU2VjdGlvbiA0Mzogdmkgb24gaGFyZGNvcHkgdGVybWluYWxzIGFuZCBkdW1iIHRl cm1pbmFsczogb3BlbiBtb2RlDQorKw0KKysoVGhlIGF1dGhvciBoYXMgbm90IGNoZWNrZWQgdGhl IGZvbGxvd2luZyBkb2N1bWVudGF0aW9uIGZvciBhY2N1cmFjeS4gIEl0IGlzDQorK2Fic3RyYWN0 ZWQgZnJvbSB0aGUgSW50cm9kdWN0aW9uIHRvIFZpIEVkaXRpbmcgZG9jdW1lbnQuKQ0KKysNCisr SWYgeW91IGFyZSBvbiBhIGhhcmRjb3B5IHRlcm1pbmFsIG9yIGEgdGVybWluYWwgd2hpY2ggZG9l cyBub3QgaGF2ZSBhIGN1cnNvcg0KKyt3aGljaCBjYW4gbW92ZSBvZmYgdGhlIGJvdHRvbSBsaW5l LCB5b3UgY2FuIHN0aWxsIHVzZSB0aGUgY29tbWFuZCBzZXQgb2YgdmksDQorK2J1dCBpbiBhIGRp ZmZlcmVudCBtb2RlLiAgV2hlbiB5b3UgZ2l2ZSB0aGUgdmkgY29tbWFuZCB0byBVTklYLCB0aGUg ZWRpdG9yIHdpbGwNCisrdGVsbCB5b3UgdGhhdCBpdCBpcyB1c2luZyBvcGVuIG1vZGUuICBUaGlz IG5hbWUgY29tZXMgZnJvbSB0aGUgb3BlbiBjb21tYW5kIGluDQorK2V4LCB3aGljaCBpcyB1c2Vk IHRvIGdldCBpbnRvIHRoZSBzYW1lIG1vZGUuDQorKw0KKytUaGUgb25seSBkaWZmZXJlbmNlIGJl dHdlZW4gdmlzdWFsIG1vZGUgKG5vcm1hbCB2aSkgYW5kIG9wZW4gbW9kZSBpcyB0aGUgd2F5IGlu DQorK3doaWNoIHRoZSB0ZXh0IGlzIGRpc3BsYXllZC4NCisrDQorK0luIG9wZW4gbW9kZSB0aGUg ZWRpdG9yIHVzZXMgYSBzaW5nbGUgbGluZSB3aW5kb3cgaW50byB0aGUgZmlsZSwgYW5kIG1vdmlu Zw0KKytiYWNrd2FyZCBhbmQgZm9yd2FyZCBpbiB0aGUgZmlsZSBjYXVzZXMgbmV3IGxpbmVzIHRv IGJlIGRpc3BsYXllZCwgYWx3YXlzIGJlbG93DQorK3RoZSBjdXJyZW50IGxpbmUuICBUd28gY29t bWFuZHMgb2Ygdmkgd29yayBkaWZmZXJlbnRseSBpbiBvcGVuOiB7en0gYW5kIHteUn0uDQorK1Ro ZSB7en0gY29tbWFuZCBkb2VzIG5vdCB0YWtlIHBhcmFtZXRlcnMsIGJ1dCByYXRoZXIgZHJhd3Mg YSB3aW5kb3cgb2YgY29udGV4dA0KKythcm91bmQgdGhlIGN1cnJlbnQgbGluZSBhbmQgdGhlbiBy ZXR1cm5zIHlvdSB0byB0aGUgY3VycmVudCBsaW5lLg0KKysNCisrSWYgeW91IGFyZSBvbiBhIGhh cmRjb3B5IHRlcm1pbmFsLCB0aGUge15SfSBjb21tYW5kIHdpbGwgcmV0eXBlIHRoZSBjdXJyZW50 DQorK2xpbmUuICBPbiBzdWNoIHRlcm1pbmFscywgdGhlIGVkaXRvciBub3JtYWxseSB1c2VzIHR3 byBsaW5lcyB0byByZXByZXNlbnQgdGhlDQorK2N1cnJlbnQgbGluZS4gIFRoZSBmaXJzdCBsaW5l IGlzIGEgY29weSBvZiB0aGUgbGluZSBhcyB5b3Ugc3RhcnRlZCB0byBlZGl0IGl0LA0KKythbmQg eW91IHdvcmsgb24gdGhlIGxpbmUgYmVsb3cgdGhpcyBsaW5lLiAgV2hlbiB5b3UgZGVsZXRlIGNo YXJhY3RlcnMsIHRoZQ0KKytlZGl0b3IgdHlwZXMgYSBudW1iZXIgb2YgXCdzIHRvIHNob3cgeW91 IHRoZSBjaGFyYWN0ZXJzIHdoaWNoIGFyZSBkZWxldGVkLiAgVGhlDQorK2VkaXRvciBhbHNvIHJl cHJpbnRzIHRoZSBjdXJyZW50IGxpbmUgc29vbiBhZnRlciBzdWNoIGNoYW5nZXMgc28gdGhhdCB5 b3UgY2FuDQorK3NlZSB3aGF0IHRoZSBsaW5lIGxvb2tzIGxpa2UgYWdhaW4uDQorKw0KKytJdCBp cyBzb21ldGltZXMgdXNlZnVsIHRvIHVzZSB0aGlzIG1vZGUgb24gdmVyeSBzbG93IHRlcm1pbmFs cyB3aGljaCBjYW4NCisrc3VwcG9ydCB2aSBpbiB0aGUgZnVsbCBzY3JlZW4gbW9kZS4gIFlvdSBj YW4gZG8gdGhpcyBieSBlbnRlcmluZyBleCBhbmQgdXNpbmcNCisrYW4ge29wZW59IGNvbW1hbmQu DQorKw0KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioNCisrU2VjdGlvbiA0NDogb3B0aW9uczogezpzZXR9IHtzZXRl bnYgRVhJTklUfQ0KKysNCisrWW91IHdpbGwgZGlzY292ZXIgb3B0aW9ucyBhcyB5b3UgbmVlZCB0 aGVtLiAgRG8gbm90IHdvcnJ5IGFib3V0IHRoZW0gdmVyeSBtdWNoDQorK29uIHRoZSBmaXJzdCBw YXNzIHRocm91Z2ggdGhpcyBkb2N1bWVudC4gIE15IGFkdmljZSBpcyB0byBnbGFuY2UgdGhyb3Vn aCB0aGVtLA0KKytub3RpbmcgdGhlIG9uZXMgdGhhdCBsb29rIGludGVyZXN0aW5nLCBpZ25vcmlu ZyB0aGUgb25lcyB5b3UgZG9uJ3QgdW5kZXJzdGFuZCwNCisrYW5kIHRyeSByZS1zY2FubmluZyB0 aGVtIGluIGEgY291cGxlIG9mIHdlZWtzLg0KKysNCisrSWYgeW91IGRlY2lkZSB0aGF0IHlvdSBo YXZlIGEgZmF2b3JpdGUgc2V0IG9mIG9wdGlvbnMgYW5kIHdvdWxkIGxpa2UgdG8gY2hhbmdlDQor K3RoZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIGVkaXRvciwgcGxhY2UgYSB7c2V0ZW52IEVYSU5J VH0gY29tbWFuZCBpbiB5b3VyDQorKy5sb2dpbiBmaWxlLiAgV2hlbiB5b3UgYXJlIGdpdmVuIGFu IGFjY291bnQgdW5kZXIgVU5JWCB5b3VyIGRpcmVjdG9yeSBoYXMNCisrcGxhY2VkIGluIGl0IGEg ZmlsZSB0aGF0IGlzIGV4ZWN1dGVkIGVhY2ggdGltZSB5b3UgbG9nIGluLiAgSWYgb25lIG9mIHRo ZQ0KKytjb21tYW5kcyBpbiB0aGlzIGZpbGUgc2V0cyB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUg RVhJTklUIHRvIGEgc3RyaW5nIG9mIHZpDQorK2NvbW1hbmRzLCB5b3UgY2FuIGhhdmUgbWFueSB0 aGluZ3MgZG9uZSBmb3IgeW91IGVhY2ggdGltZSB5b3UgaW52b2tlIHZpLiAgRm9yDQorK2V4YW1w bGUsIGlmIHlvdSBkZWNpZGUgdGhhdCB5b3UgZG9uJ3QgbGlrZSB0YWJzdG9wcyBwbGFjZWQgZXZl cnkgZWlnaHQgY29sdW1ucw0KKytidXQgcHJlZmVyIGV2ZXJ5IGZvdXIgY29sdW1ucywgYW5kIHRo YXQgeW91IHdpc2ggdGhlIGVkaXRvciB0byBpbnNlcnQgbGluZWZlZWRzDQorK2ZvciB5b3Ugd2hl biB5b3VyIHR5cGluZyBnZXRzIHlvdSBjbG9zZSB0byBjb2x1bW4gNzIsIGFuZCB5b3Ugd2FudA0K KythdXRvaW5kZW50YXRpb24sIHRoZW4gaW5jbHVkZSB0aGUgZm9sbG93aW5nIGxpbmUgaW4geW91 ciAubG9naW4gZmlsZToNCisrDQorK3NldGVudiBFWElOSVQ9J3NldCB0YWJzdG9wPTQgd3JhcG1h cmdpbj04IGF1dG9pbmRlbnQnDQorKw0KKytvciBlcXVpdmFsZW50bHkNCisrDQorK3NldGVudiBF WElOSVQ9J3NlIHRzPTQgd209OCBhaScNCisrDQorK0VhY2ggdGltZSB5b3UgYnJpbmcgdXAgdmks IHRoaXMgY29tbWFuZCB3aWxsIGJlIGV4ZWN1dGVkIGFuZCB0aGUgb3B0aW9ucyBzZXQuDQorKw0K KytUaGVyZSBhcmUgZm9ydHkgb3B0aW9ucyBpbiB0aGUgdmkvZXggZWRpdG9yIHRoYXQgdGhlIHVz ZXIgY2FuIHNldCBmb3IgaGlzL2hlcg0KKytvd24gY29udmVuaWVuY2UuICBUaGV5IGFyZSBkZXNj cmliZWQgaW4gbW9yZSBkZXRhaWwgaW4gaW5kaXZpZHVhbCBzZWN0aW9ucw0KKytiZWxvdy4gIFRo ZSBzZWN0aW9uIGxpbmUgd2lsbCBzaG93IHRoZSBmdWxsIHNwZWxsaW5nIG9mIHRoZSBvcHRpb24g bmFtZSwgdGhlDQorK2FiYnJldmlhdGlvbiwgYW5kIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBv cHRpb24uICBUaGUgdGV4dCBpdHNlbGYNCisrY29tZXMgZnJvbSB0aGUgZXggcmVmZXJlbmNlIG1h bnVhbCBhbmQgaXMgbm90IHRoZSBlcGl0b21lIG9mIGNsYXJpdHkuDQorKw0KKytTZWN0aW9uIDQ0 LjE6IHthdXRvaW5kZW50fSwge2FpfSBkZWZhdWx0OiBub2FpDQorKw0KKytDYW4gYmUgdXNlZCB0 byBlYXNlIHRoZSBwcmVwYXJhdGlvbiBvZiBzdHJ1Y3R1cmVkIHByb2dyYW0gdGV4dC4gIEF0IHRo ZQ0KKytiZWdpbm5pbmcgb2YgZWFjaCBhcHBlbmQsIGNoYW5nZSBvciBpbnNlcnQgY29tbWFuZCBv ciB3aGVuIGEgbmV3IGxpbmUgaXMgb3BlbmVkDQorK29yIGNyZWF0ZWQgYnkgYW4gYXBwZW5kLCBj aGFuZ2UsIGluc2VydCwgb3Igc3Vic3RpdHV0ZSBvcGVyYXRpb24gd2l0aGluIG9wZW4gb3INCisr dmlzdWFsIG1vZGUsIGV4IGxvb2tzIGF0IHRoZSBsaW5lIGJlaW5nIGFwcGVuZGVkIGFmdGVyLCB0 aGUgZmlyc3QgbGluZSBjaGFuZ2VkDQorK29yIHRoZSBsaW5lIGluc2VydGVkIGJlZm9yZSBhbmQg Y2FsY3VsYXRlcyB0aGUgYW1vdW50IG9mIHdoaXRlIHNwYWNlIGF0IHRoZQ0KKytzdGFydCBvZiB0 aGUgbGluZS4gIEl0IHRoZW4gYWxpZ25zIHRoZSBjdXJzb3IgYXQgdGhlIGxldmVsIG9mIGluZGVu dGF0aW9uIHNvDQorK2RldGVybWluZWQuDQorKw0KKytJZiB0aGUgdXNlciB0aGVuIHR5cGVzIGxp bmVzIG9mIHRleHQgaW4sIHRoZXkgd2lsbCBjb250aW51ZSB0byBiZSBqdXN0aWZpZWQgYXQNCisr dGhlIGRpc3BsYXllZCBpbmRlbnRpbmcgbGV2ZWwuICBJZiBtb3JlIHdoaXRlIHNwYWNlIGlzIHR5 cGVkIGF0IHRoZSBiZWdpbm5pbmcNCisrb2YgYSBsaW5lLCB0aGUgZm9sbG93aW5nIGxpbmUgd2ls bCBzdGFydCBhbGlnbmVkIHdpdGggdGhlIGZpcnN0IG5vbi13aGl0ZQ0KKytjaGFyYWN0ZXIgb2Yg dGhlIHByZXZpb3VzIGxpbmUuICBUbyBiYWNrIHRoZSBjdXJzb3IgdXAgdG8gdGhlIHByZWNlZGlu ZyB0YWINCisrc3RvcCBvbmUgY2FuIGhpdCB7XkR9LiAgVGhlIHRhYiBzdG9wcyBnb2luZyBiYWNr d2FyZHMgYXJlIGRlZmluZWQgYXQgbXVsdGlwbGVzDQorK29mIHRoZSBzaGlmdHdpZHRoIG9wdGlv bi4gIFlvdSBjYW5ub3QgYmFja3NwYWNlIG92ZXIgdGhlIGluZGVudCwgZXhjZXB0IGJ5DQorK3Nl bmRpbmcgYW4gZW5kLW9mLWZpbGUgd2l0aCBhIHteRH0uICBBIGxpbmUgd2l0aCBubyBjaGFyYWN0 ZXJzIGFkZGVkIHRvIGl0DQorK3R1cm5zIGludG8gYSBjb21wbGV0ZWx5IGJsYW5rIGxpbmUgKHRo ZSB3aGl0ZSBzcGFjZSBwcm92aWRlZCBmb3IgdGhlIGF1dG9pbmRlbnQNCisraXMgZGlzY2FyZGVk KS4gQWxzbyBzcGVjaWFsbHkgcHJvY2Vzc2VkIGluIHRoaXMgbW9kZSBhcmUgbGluZXMgYmVnaW5u aW5nIHdpdGgNCisrYW4gdXAtYXJyb3cgYF4nIGFuZCBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBh IHteRH0uICBUaGlzIGNhdXNlcyB0aGUgaW5wdXQgdG8NCisrYmUgcmVwb3NpdGlvbmVkIGF0IHRo ZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUsIGJ1dCByZXRhaW5pbmcgdGhlIHByZXZpb3VzIGluZGVu dA0KKytmb3IgdGhlIG5leHQgbGluZS4gIFNpbWlsYXJseSwgYSBgMCcgZm9sbG93ZWQgYnkgYSB7 XkR9IHJlcG9zaXRpb25zIGF0IHRoZQ0KKytiZWdpbm5pbmcgYnV0IHdpdGhvdXQgcmV0YWluaW5n IHRoZSBwcmV2aW91cyBpbmRlbnQuICBBdXRvaW5kZW50IGRvZXNuJ3QgaGFwcGVuDQorK2luIGds b2JhbCBjb21tYW5kcyBvciB3aGVuIHRoZSBpbnB1dCBpcyBub3QgYSB0ZXJtaW5hbC4NCisrDQor K1NlY3Rpb24gNDQuMjoge2F1dG9wcmludH0sIHthcH0gZGVmYXVsdDogYXANCisrDQorK0NhdXNl cyB0aGUgY3VycmVudCBsaW5lIHRvIGJlIHByaW50ZWQgYWZ0ZXIgZWFjaCBkZWxldGUsIGNvcHks IGpvaW4sIG1vdmUsDQorK3N1YnN0aXR1dGUsIHQsIHVuZG8gb3Igc2hpZnQgY29tbWFuZC4gIFRo aXMgaGFzIHRoZSBzYW1lIGVmZmVjdCBhcyBzdXBwbHlpbmcgYQ0KKyt0cmFpbGluZyBgcCcgdG8g ZWFjaCBzdWNoIGNvbW1hbmQuICBBdXRvcHJpbnQgaXMgc3VwcHJlc3NlZCBpbiBnbG9iYWxzLCBh bmQNCisrb25seSBhcHBsaWVzIHRvIHRoZSBsYXN0IG9mIG1hbnkgY29tbWFuZHMgb24gYSBsaW5l Lg0KKysNCisrU2VjdGlvbiA0NC4zOiB7YXV0b3dyaXRlfSwge2F3fSBkZWZhdWx0OiBub2F3DQor Kw0KKytDYXVzZXMgdGhlIGNvbnRlbnRzIG9mIHRoZSBidWZmZXIgdG8gYmUgd3JpdHRlbiB0byB0 aGUgY3VycmVudCBmaWxlIGlmIHlvdSBoYXZlDQorK21vZGlmaWVkIGl0IGFuZCBnaXZlIGEgbmV4 dCwgcmV3aW5kLCBzdG9wLCB0YWcsIG9yIHshfSBjb21tYW5kLCBvciBhIGNvbnRyb2wtDQorK3Vw LWFycm93IHteXn0gKHN3aXRjaCBmaWxlcykgb3Ige15dfSAodGFnIGdvdG8pIGNvbW1hbmQgaW4g dmlzdWFsLiAgTm90ZSwgdGhhdA0KKyt0aGUgZWRpdCBhbmQgZXggY29tbWFuZHMgZG8gbm90IGF1 dG93cml0ZS4gIEluIGVhY2ggY2FzZSwgdGhlcmUgaXMgYW4NCisrZXF1aXZhbGVudCB3YXkgb2Yg c3dpdGNoaW5nIHdoZW4gYXV0b3dyaXRlIGlzIHNldCB0byBhdm9pZCB0aGUgYXV0b3dyaXRlDQor Kyh7ZWRpdH0gZm9yIG5leHQsIHJld2luZCEgIGZvciByZXdpbmQsIHN0b3AhICBmb3Igc3RvcCwg dGFnISAgZm9yIHRhZywgc2hlbGwNCisrZm9yIHshfSwgYW5kIHs6ZSAjfSBhbmQgYSB7OnRhIX0g Y29tbWFuZCBmcm9tIHdpdGhpbiB2aXN1YWwpLg0KKysNCisrU2VjdGlvbiA0NC40OiB7YmVhdXRp Znl9LCB7YmZ9IGRlZmF1bHQ6IG5vYmVhdXRpZnkNCisrDQorK0NhdXNlcyBhbGwgY29udHJvbCBj aGFyYWN0ZXJzIGV4Y2VwdCB0YWIgXkksIG5ld2xpbmUgXk0gYW5kIGZvcm0tZmVlZCBeTCB0byBi ZQ0KKytkaXNjYXJkZWQgZnJvbSB0aGUgaW5wdXQuICBBIGNvbXBsYWludCBpcyByZWdpc3RlcmVk IHRoZSBmaXJzdCB0aW1lIGEgYmFja3NwYWNlDQorK2NoYXJhY3RlciBpcyBkaXNjYXJkZWQuICBC ZWF1dGlmeSBkb2VzIG5vdCBhcHBseSB0byBjb21tYW5kIGlucHV0Lg0KKysNCisrU2VjdGlvbiA0 NC41OiB7ZGlyZWN0b3J5fSwge2Rpcn0gZGVmYXVsdDogZGlyPS90bXAgDQorKw0KKytTcGVjaWZp ZXMgdGhlIGRpcmVjdG9yeSBpbiB3aGljaCBleCBwbGFjZXMgaXRzIGJ1ZmZlciBmaWxlLiAgSWYg dGhpcyBkaXJlY3RvcnkNCisraW4gbm90IHdyaXRhYmxlLCB0aGVuIHRoZSBlZGl0b3Igd2lsbCBl eGl0IGFicnVwdGx5IHdoZW4gaXQgZmFpbHMgdG8gYmUgYWJsZSB0bw0KKytjcmVhdGUgaXRzIGJ1 ZmZlciB0aGVyZS4NCisrDQorK1NlY3Rpb24gNDQuNjoge2VkY29tcGF0aWJsZX0gZGVmYXVsdDog bm9lZGNvbXBhdGlibGUNCisrDQorK0NhdXNlcyB0aGUgcHJlc2VuY2Ugb3IgYWJzZW5jZSBvZiBn IGFuZCBjIHN1ZmZpeGVzIG9uIHN1YnN0aXR1dGUgY29tbWFuZHMgdG8gYmUNCisrcmVtZW1iZXJl ZCwgYW5kIHRvIGJlIHRvZ2dsZWQgYnkgcmVwZWF0aW5nIHRoZSBzdWZmaWNlcy4gIFRoZSBzdWZm aXggciBtYWtlcw0KKyt0aGUgc3Vic3RpdHV0aW9uIGJlIGFzIGluIHRoZSB7fn0gY29tbWFuZCwg aW5zdGVhZCBvZiBsaWtlIHsmfS4NCisrDQorK1tBdXRob3IncyBub3RlOiB0aGlzIHNob3VsZCBu b3QgY29uY2VybiB1c2VycyBvZiB2aS5dDQorKw0KKytTZWN0aW9uIDQ0Ljc6IHtlcnJvcmJlbGxz fSwge2VifSBkZWZhdWx0OiBub2ViDQorKw0KKytFcnJvciBtZXNzYWdlcyBhcmUgcHJlY2VkZWQg YnkgYSBiZWxsLiAgSG93ZXZlciwgYmVsbCByaW5naW5nIGluIG9wZW4gYW5kDQorK3Zpc3VhbCBt b2RlcyBvbiBlcnJvcnMgaXMgbm90IHN1cHByZXNzZWQgYnkgc2V0dGluZyBub2ViLiAgSWYgcG9z c2libGUgdGhlDQorK2VkaXRvciBhbHdheXMgcGxhY2VzIHRoZSBlcnJvciBtZXNzYWdlIGluIGEg c3RhbmRvdXQgbW9kZSBvZiB0aGUgdGVybWluYWwgKHN1Y2gNCisrYXMgaW52ZXJzZSB2aWRlbykg aW5zdGVhZCBvZiByaW5naW5nIHRoZSBiZWxsLg0KKysNCisrU2VjdGlvbiA0NC44OiB7aGFyZHRh YnN9LCB7aHR9IGRlZmF1bHQ6IGh0PTgNCisrDQorK0dpdmVzIHRoZSBib3VuZGFyaWVzIG9uIHdo aWNoIHRlcm1pbmFsIGhhcmR3YXJlIHRhYnMgYXJlIHNldCAob3Igb24gd2hpY2ggdGhlDQorK3N5 c3RlbSBleHBhbmRzIHRhYnMpLg0KKysNCisrU2VjdGlvbiA0NC45OiB7aWdub3JlY2FzZX0sIHtp Y30gZGVmYXVsdDogbm9pYw0KKysNCisrQWxsIHVwcGVyIGNhc2UgY2hhcmFjdGVycyBpbiB0aGUg dGV4dCBhcmUgbWFwcGVkIHRvIGxvd2VyIGNhc2UgaW4gcmVndWxhcg0KKytleHByZXNzaW9uIG1h dGNoaW5nLiAgSW4gYWRkaXRpb24sIGFsbCB1cHBlciBjYXNlIGNoYXJhY3RlcnMgaW4gcmVndWxh cg0KKytleHByZXNzaW9ucyBhcmUgbWFwcGVkIHRvIGxvd2VyIGNhc2UgZXhjZXB0IGluIGNoYXJh Y3RlciBjbGFzcyBzcGVjaWZpY2F0aW9ucw0KKysodGhhdCBpcywgY2hhcmFjdGVyIGluIHNxdWFy ZSBicmFja2V0cykuDQorKw0KKytTZWN0aW9uIDQ0LjEwOiB7bGlzcH0gZGVmYXVsdDogbm9saXNw DQorKw0KKytBdXRvaW5kZW50IGluZGVudHMgYXBwcm9wcmlhdGVseSBmb3IgbGlzcCBjb2RlLCBh bmQgdGhlIHsofSwgeyl9LCBbe10sIFt9XSwNCisre1tbfSwgYW5kIHtdXX0gY29tbWFuZHMgaW4g b3BlbiBhbmQgdmlzdWFsIG1vZGVzIGFyZSBtb2RpZmllZCBpbiBhDQorK3N0cmlhZ2h0Zm9yd2Fy ZCwgaW50dWl0aXZlIGZhc2hpb24gdG8gaGF2ZSBtZWFuaW5nIGZvciBsaXNwLg0KKysNCisrW0F1 dGhvcidzIG5vdGU6IGJ1dCBkb24ndCBhc2sgbWUgdG8gZGVmaW5lIHRoZW0gcHJlY2lzZWx5Ll0N CisrDQorK1NlY3Rpb24gNDQuMTE6IHtsaXN0fSBkZWZhdWx0OiBub2xpc3QNCisrDQorK0FsbCBw cmludGVkIGxpbmVzIHdpbGwgYmUgZGlzcGxheWVkIChtb3JlKSB1bmFtYmlndW91c2x5LCBzaG93 aW5nIHRhYnMgYXMgXkkNCisrYW5kIGVuZC1vZi1saW5lcyB3aXRoIGAkJy4gIFRoaXMgaXMgdGhl IHNhbWUgYXMgaW4gdGhlIGV4IGNvbW1hbmQge2xpc3R9Lg0KKysNCisrU2VjdGlvbiA0NC4xMjog e21hZ2ljfSBkZWZhdWx0OiBtYWdpYyBmb3Ige2V4fSBhbmQge3ZpfSwgbm9tYWdpYyBmb3IgZWRp dC4NCisrDQorK0lmIG5vbWFnaWMgaXMgc2V0LCB0aGUgbnVtYmVyIG9mIHJlZ3VsYXIgZXhwcmVz c2lvbiBtZXRhY2hhcmFjdGVycyBpcyBncmVhdGx5DQorK3JlZHVjZWQsIHdpdGggb25seSB1cC1h cnJvdyBgXicgYW5kIGAkJyBoYXZpbmcgc3BlY2lhbCBlZmZlY3RzLiAgSW4gYWRkaXRpb24NCisr dGhlIG1ldGFjaGFyYWN0ZXJzIGB+JyBhbmQgYCYnIG9mIHRoZSByZXBsYWNlbWVudCBwYXR0ZXJu IGFyZSB0cmVhdGVkIGFzIG5vcm1hbA0KKytjaGFyYWN0ZXJzLiAgQWxsIHRoZSBub3JtYWwgbWV0 YWNoYXJhY3RlcnMgbWF5IGJlIG1hZGUgbWFnaWMgd2hlbiBub21hZ2ljIGlzDQorK3NldCBieSBw cmVjZWRpbmcgdGhlbSB3aXRoIGEgYFwnLg0KKysNCisrW0F1dGhvcidzIG5vdGU6IEluIG90aGVy IHdvcmRzLCBpZiBtYWdpYyBpcyBzZXQgYSBiYWNrLXNsYW50IHR1cm5zIHRoZSBtYWdpYw0KKytv ZmYgZm9yIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyLCBhbmQgaWYgbm9tYWdpYyBpcyBzZXQgYSBi YWNrLXNsYW50IHR1cm5zIHRoZQ0KKyttYWdpYyBPTiBmb3IgdGhlIGZvbGxvd2luZyBjaGFyYWN0 ZXIuICBBbmQsIG5vLCB3ZSBhcmUgbm90IHBsYXlpbmcgRHVuZ2VvbnMgYW5kDQorK0RyYWdvbnMs IGFsdGhvdWdoIEkgdGhpbmsgdGhlIHdyaXRlcnMgb2YgdGhlc2Ugb3B0aW9uIG5vdGVzIG11c3Qg aGF2ZSBwbGF5ZWQgaXQNCisrYWxsIHRoZSB0aW1lLl0NCisrDQorK1NlY3Rpb24gNDQuMTM6IHtt ZXNnfSBkZWZhdWx0OiBtZXNnDQorKw0KKytDYXVzZXMgd3JpdGUgcGVybWlzc2lvbiB0byBiZSB0 dXJuZWQgb2ZmIHRvIHRoZSB0ZXJtaW5hbCB3aGlsZSB5b3UgYXJlIGluDQorK3Zpc3VhbCBtb2Rl LCBpZiBub21lc2cgaXMgc2V0Lg0KKysNCisrW0F1dGhvcidzIG5vdGU6IEkgZG9uJ3Qga25vdyBp ZiBhbnlvbmUgY291bGQgaGF2ZSBtYWRlIGFueSBvbmUgc2VudGVuY2UNCisrcGFyYWdyYXBoIG1v cmUgY29uZnVzaW5nIHRoYW4gdGhpcyBvbmUuICBXaGF0IGl0IHNheXMgaXM6IG1lc2cgYWxsb3dz IHBlb3BsZSB0bw0KKyt3cml0ZSB0byB5b3UgZXZlbiBpZiB5b3UgYXJlIGluIHZpc3VhbCBvciBv cGVuIG1vZGU7IG5vbWVzZyBsb2NrcyB5b3VyIHRlcm1pbmFsDQorK3NvIHRoZXkgY2FuJ3Qgd3Jp dGUgdG8geW91IGFuZCBtZXNzIHVwIHlvdXIgc2NyZWVuLl0NCisrDQorK1NlY3Rpb24gNDQuMTQ6 IHtudW1iZXIsIG51fSBkZWZhdWx0OiBub251bWJlcg0KKysNCisrQ2F1c2VzIGFsbCBvdXRwdXQg bGluZXMgdG8gYmUgcHJpbnRlZCB3aXRoIHRoZWlyIGxpbmUgbnVtYmVycy4gIEluIGFkZGl0aW9u DQorK2VhY2ggaW5wdXQgbGluZSB3aWxsIGJlIHByb21wdGVkIHdpdGggaXRzIGxpbmUgbnVtYmVy Lg0KKysNCisrU2VjdGlvbiA0NC4xNToge29wZW59IGRlZmF1bHQ6IG9wZW4NCisrDQorK0lmIHtu b29wZW59LCB0aGUgY29tbWFuZHMgb3BlbiBhbmQgdmlzdWFsIGFyZSBub3QgcGVybWl0dGVkLiAg VGhpcyBpcyBzZXQgZm9yDQorK2VkaXQgdG8gcHJldmVudCBjb25mdXNpb24gcmVzdWx0aW5nIGZy b20gYWNjaWRlbnRhbCBlbnRyeSB0byBvcGVuIG9yIHZpc3VhbA0KKyttb2RlLg0KKysNCisrW0F1 dGhvcidzIG5vdGU6IEFzIHlvdSBtYXkgaGF2ZSBndWVzc2VkIGJ5IG5vdywgdGhlcmUgYXJlIGFj dHVhbGx5IHRocmVlDQorK2VkaXRvcnMgYXZhaWxhYmxlIHVuZGVyIEJlcmtlbGV5IFVOSVggdGhh dCBhcmUgaW4gcmVhbGl0eSB0aGUgc2FtZQ0KKytwcm9ncmFtLCBleCwgd2l0aCBkaWZmZXJlbnQg b3B0aW9ucyBzZXQ6IGV4IGl0c2VsZiwgdmksIGFuZCBlZGl0Ll0NCisrDQorK1NlY3Rpb24gNDQu MTY6IHtvcHRpbWl6ZSwgb3B0fSBkZWZhdWx0OiBvcHRpbWl6ZQ0KKysNCisrVGhyb3VnaHB1dCBv ZiB0ZXh0IGlzIGV4cGVkaXRlZCBieSBzZXR0aW5nIHRoZSB0ZXJtaW5hbCB0byBub3QgZG8gYXV0 b21hdGljDQorK2NhcnJpYWdlIHJldHVybnMgd2hlbiBwcmludGluZyBtb3JlIHRoYW4gb25lIChs b2dpY2FsKSBsaW5lIG9mIG91dHB1dCwgZ3JlYXRseQ0KKytzcGVlZGluZyBvdXRwdXQgb24gdGVy bWluYWxzIHdpdGhvdXQgYWRkcmVzc2FibGUgY3Vyc29ycyB3aGVuIHRleHQgd2l0aCBsZWFkaW5n DQorK3doaXRlIHNwYWNlIGlzIHByaW50ZWQuDQorKw0KKytbQXV0aG9yJ3Mgbm90ZTogSSBzdGls bCBkb24ndCBrbm93IHdoYXQgdGhpcyBvcHRpb24gZG9lcy5dDQorKw0KKytTZWN0aW9uIDQ0LjE3 OiB7cGFyYWdyYXBocywgcGFyYX0gZGVmYXVsdDogcGFyYT1JUExQUFBRUFAgTElicA0KKysNCisr U3BlY2lmaWVzIHRoZSBwYXJhZ3JhcGhzIGZvciB0aGUgW3tdIGFuZCBbfV0gb3BlcmF0aW9ucyBp biBvcGVuIGFuZCB2aXN1YWwuDQorK1RoZSBwYWlycyBvZiBjaGFyYWN0ZXJzIGluIHRoZSBvcHRp b24ncyB2YWx1ZSBhcmUgdGhlIG5hbWVzIG9mIHRoZSBucm9mZiBtYWNyb3MNCisrd2hpY2ggc3Rh cnQgcGFyYWdyYXBocy4NCisrDQorK1NlY3Rpb24gNDQuMTg6IHtwcm9tcHR9IGRlZmF1bHQ6IHBy b21wdA0KKysNCisrQ29tbWFuZCBtb2RlIGlucHV0IGlzIHByb21wdGVkIGZvciB3aXRoIGEgYDon Lg0KKysNCisrW0F1dGhvcidzIG5vdGU6IERvZXNuJ3Qgc2VlbSB0byBoYXZlIGFueSBlZmZlY3Qg b24gdmkuXQ0KKysNCisrU2VjdGlvbiA0NC4xOToge3JlYWRvbmx5fSwge3JvfSBkZWZhdWx0OiBu b3JvLCB1bmxlc3MgaW52b2tlZCB3aXRoIC1SIA0KKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9yIGluc3VmZmljaWVudCBwcml2aWxlZ2VzIG9uIGZpbGUNCisrDQor K1RoaXMgb3B0aW9uIGFsbG93cyB5b3UgdG8gZ3VhcmFudGVlIHRoYXQgeW91IHdvbid0IGNsb2Ji ZXIgeW91ciBmaWxlIGJ5DQorK2FjY2lkZW50LiAgWW91IGNhbiBzZXQgdGhlIG9wdGlvbiBhbmQg d3JpdGVzIHdpbGwgZmFpbCB1bmxlc3MgeW91IHVzZSBhbiBgIScNCisrYWZ0ZXIgdGhlIHdyaXRl LiAgQ29tbWFuZHMgc3VjaCBhcyB7eH0sIHtaWn0sIHRoZSBhdXRvd3JpdGUgb3B0aW9uLCBhbmQg aW4NCisrZ2VuZXJhbCBhbnl0aGluZyB0aGF0IHdyaXRlcyBpcyBhZmZlY3RlZC4gIFRoaXMgb3B0 aW9uIGlzIHR1cm5lZCBvbiBpZiB5b3UNCisraW52b2tlIHRoZSBlZGl0b3Igd2l0aCB0aGUgLVIg ZmxhZy4NCisrDQorK1NlY3Rpb24gNDQuMjA6IHtyZWRyYXd9IGRlZmF1bHQ6IG5vcmVkcmF3DQor Kw0KKytUaGUgZWRpdG9yIHNpbXVsYXRlcyAodXNpbmcgZ3JlYXQgYW1vdW50cyBvZiBvdXRwdXQp LCBhbiBpbnRlbGxpZ2VudCB0ZXJtaW5hbA0KKytvbiBhIGR1bWIgdGVybWluYWwgKGUuZy4gZHVy aW5nIGluc2VydGlvbnMgaW4gdmlzdWFsIHRoZSBjaGFyYWN0ZXJzIHRvIHRoZQ0KKytyaWdodCBv ZiB0aGUgY3Vyc29yIHBvc2l0aW9uIGFyZSByZWZyZXNoZWQgYXMgZWFjaCBpbnB1dCBjaGFyYWN0 ZXIgaXMgdHlwZWQpLg0KKytVc2VmdWwgb25seSBhdCB2ZXJ5IGhpZ2ggYmF1ZCByYXRlcywgYW5k IHNob3VsZCBiZSB1c2VkIG9ubHkgaWYgdGhlIHN5c3RlbSBpcw0KKytub3QgaGVhdmlseSBsb2Fk ZWQ6IHlvdSB3aWxsIG5vdGljZSB0aGUgcGVyZm9ybWFuY2UgZGVncmFkYXRpb24geW91cnNlbGYu DQorKw0KKytTZWN0aW9uIDQ0LjIxOiB7cmVtYXB9IGRlZmF1bHQ6IHJlbWFwDQorKw0KKytJZiBv biwgbWFjcm9zIGFyZSByZXBlYXRlZGx5IHRyaWVkIHVudGlsIHRoZXkgYXJlIHVuY2hhbmdlZC4g IEZvciBleGFtcGxlLCBpZiBvDQorK2lzIG1hcHBlZCB0byBPLCBhbmQgTyBpcyBtYXBwZWQgdG8g SSwgdGhlbiBpZiByZW1hcCBpcyBzZXQsIG8gd2lsbCBtYXAgdG8gSSwNCisrYnV0IGlmIG5vcmVt YXAgaXMgc2V0LCBpdCB3aWxsIG1hcCB0byBPIC4NCisrDQorK1NlY3Rpb24gNDQuMjI6IHtyZXBv cnR9IGRlZmF1bHQ6IHJlcG9ydD01IGZvciBleCBhbmQgdmksIDIgZm9yIGVkaXQNCisrDQorK1Nw ZWNpZmllcyBhIHRocmVzaG9sZCBmb3IgZmVlZGJhY2sgZnJvbSBjb21tYW5kcy4gIEFueSBjb21t YW5kIHdoaWNoIG1vZGlmaWVzDQorK21vcmUgdGhhbiB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBs aW5lcyB3aWxsIHByb3ZpZGUgZmVlZGJhY2sgYXMgdG8gdGhlIHNjb3BlDQorK29mIGl0cyBjaGFu Z2VzLiAgRm9yIGNvbW1hbmRzIHN1Y2ggYXMgZ2xvYmFsLCBvcGVuLCB1bmRvLCBhbmQgdmlzdWFs IHdoaWNoIGhhdmUNCisrcG90ZW50aWFsbHkgbW9yZSBmYXIgcmVhY2hpbmcgc2NvcGUsIHRoZSBu ZXQgY2hhbmdlIGluIHRoZSBudW1iZXIgb2YgbGluZXMgaW4NCisrdGhlIGJ1ZmZlciBpcyBwcmVz ZW50ZWQgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCwgc3ViamVjdCB0byB0aGlzIHNhbWUNCisr dGhyZXNob2xkLiAgVGh1cyBub3RpZmljYXRpb24gaXMgc3VwcHJlc3NlZCBkdXJpbmcgYSBnbG9i YWwgY29tbWFuZCBvbiB0aGUNCisraW5kaXZpZHVhbCBjb21tYW5kcyBwZXJmb3JtZWQuDQorKw0K KytTZWN0aW9uIDQ0LjIzOiB7c2Nyb2xsfSBkZWZhdWx0OiBzY3JvbGw9MS8yIHdpbmRvdw0KKysN CisrRGV0ZXJtaW5lcyB0aGUgbnVtYmVyIG9mIGxvZ2ljYWwgbGluZXMgc2Nyb2xsZWQgd2hlbiBh IHteRH0gaXMgcmVjZWl2ZWQgZnJvbSBhDQorK3Rlcm1pbmFsIGluIGNvbW1hbmQgbW9kZSwgYW5k IGRldGVybWluZXMgdGhlIG51bWJlciBvZiBsaW5lcyBwcmludGVkIGJ5IGENCisrY29tbWFuZCBt b2RlIHogY29tbWFuZCAoZG91YmxlIHRoZSB2YWx1ZSBvZiBzY3JvbGwpLg0KKysNCisrW0F1dGhv cidzIG5vdGU6IERvZXNuJ3Qgc2VlbSB0byBhZmZlY3Qge15EfSBhbmQge3p9IGluIHZpc3VhbCAo dmkpIG1vZGUuXQ0KKysNCisrU2VjdGlvbiA0NC4yNDogc2VjdGlvbnMge3NlY3Rpb25zfSBkZWZh dWx0OiBzZWN0aW9ucz1TSE5ISCBIVSANCisrDQorK1NwZWNpZmllcyB0aGUgc2VjdGlvbiBtYWNy b3MgZnJvbSBucm9mZiBmb3IgdGhlIHtbW30gYW5kIHtdXX0gb3BlcmF0aW9ucyBpbg0KKytvcGVu IGFuZCB2aXN1YWwuICBUaGUgcGFpcnMgb2YgY2hhcmFjdGVycyBpbiB0aGUgb3B0aW9ucydzIHZh bHVlIGFyZSB0aGUgbmFtZXMNCisrb2YgdGhlIG1hY3JvcyB3aGljaCBzdGFydCBwYXJhZ3JhcGhz Lg0KKysNCisrU2VjdGlvbiA0NC4yNToge3NoZWxsfSwge3NofSBkZWZhdWx0OiBzaD0vYmluL3No IA0KKysNCisrR2l2ZXMgdGhlIHBhdGggbmFtZSBvZiB0aGUgc2hlbGwgZm9ya2VkIGZvciB0aGUg c2hlbGwgZXNjYXBlIGNvbW1hbmQgYCEnLCBhbmQNCisrYnkgdGhlIHNoZWxsIGNvbW1hbmQuICBU aGUgZGVmYXVsdCBpcyB0YWtlbiBmcm9tIFNIRUxMIGluIHRoZSBlbnZpcm9ubWVudCwgaWYNCisr cHJlc2VudC4NCisrDQorK1tFZGl0b3IncyBub3RlOiBJIHdvdWxkIHN1Z2dlc3QgdGhhdCB5b3Ug cGxhY2UgdGhlIGZvbGxvd2luZyBsaW5lIGluDQorK3lvdXIgLmxvZ2luIGZpbGU6DQorK3NldGVu diBTSEVMTCAnL2Jpbi9jc2gnDQorK10NCisrDQorK1NlY3Rpb24gNDQuMjY6IHtzaGlmdHdpZHRo fSwge3N3fSBkZWZhdWx0OiBzdz04IA0KKysNCisrVXNlZCBpbiByZXZlcnNlIHRhYmJpbmcgd2l0 aCB7XkR9IHdoZW4gdXNpbmcgYXV0b2luZGVudCB0byBhcHBlbmQgdGV4dCwgYW5kDQorK3VzZWQg YnkgdGhlIHNoaWZ0IGNvbW1hbmRzLiAgU2hvdWxkIHByb2JhYmx5IGJlIHRoZSBzYW1lIHZhbHVl IGFzIHRoZSB0YWJzdG9wDQorK29wdGlvbi4NCisrDQorK1NlY3Rpb24gNDQuMjc6IHtzaG93bWF0 Y2h9LCB7c219IGRlZmF1bHQ6IG5vc20gDQorKw0KKytJbiBvcGVuIGFuZCB2aXN1YWwgbW9kZSwg d2hlbiBhIGApJyBvciBgfScgaXMgdHlwZWQsIGlmIHRoZSBtYXRjaGluZyBgKCcgb3IgYHsnDQor K2lzIG9uIHRoZSBzY3JlZW4sIG1vdmUgdGhlIGN1cnNvciB0byBpdCBmb3Igb25lIHNlY29uZC4g IEV4dHJlbWVseSB1c2VmdWwgd2l0aA0KKytjb21wbGljYXRlZCBuZXN0ZWQgZXhwcmVzc2lvbnMs IG9yIHdpdGggbGlzcC4NCisrDQorK1NlY3Rpb24gNDQuMjg6IHtzbG93b3Blbn0sIHtzbG93fSBk ZWZhdWx0OiB0ZXJtaW5hbCBkZXBlbmRlbnQNCisrDQorK0FmZmVjdHMgdGhlIGRpc3BsYXkgYWxn b3JpdGhtIHVzZWQgaW4gdmlzdWFsIG1vZGUsIGhvbGRpbmcgb2ZmIGRpc3BsYXkgdXBkYXRpbmcN CisrZHVyaW5nIGlucHV0IG9mIG5ldyB0ZXh0IHRvIGltcHJvdmUgdGhyb3VnaHB1dCB3aGVuIHRo ZSB0ZXJtaW5hbCBpbiB1c2UgaXMgYm90aA0KKytzbG93IGFuZCB1bmludGVsbGlnZW50LiAgU2Vl ICJBbiBJbnRyb2R1Y3Rpb24gdG8gRGlzcGxheSBFZGl0aW5nIHdpdGggVmkiIGZvcg0KKyttb3Jl IGRldGFpbHMuDQorKw0KKytTZWN0aW9uIDQ0LjI5OiB7dGFic3RvcH0sIHt0c30gZGVmYXVsdDog dHM9OA0KKysNCisrVGhlIGVkaXRvciBleHBhbmRzIHRhYnMgXkkgdG8gdGFic3RvcCBib3VuZGFy aWVzIGluIHRoZSBkaXNwbGF5Lg0KKysNCisrU2VjdGlvbiA0NC4zMDoge3RhZ2xlbmd0aH0sIHt0 bH0gZGVmYXVsdDogdGw9MA0KKysNCisrVGFncyBhcmUgbm90IHNpZ25pZmljYW50IGJleW9uZCB0 aGlzIG1hbnkgY2hhcmFjdGVycy4NCisrQSB2YWx1ZSBvZiB6ZXJvICh0aGUgZGVmYXVsdCkgbWVh bnMgdGhhdCBhbGwgY2hhcmFjdGVycyBhcmUgc2lnbmlmaWNhbnQuDQorKw0KKytTZWN0aW9uIDQ0 LjMxOiB7dGFnc30gZGVmYXVsdDogdGFncz10YWdzIC91c3IvbGliL3RhZ3MNCisrDQorK0EgcGF0 aCBvZiBmaWxlcyB0byBiZSB1c2VkIGFzIHRhZyBmaWxlcyBmb3IgdGhlIHRhZyBjb21tYW5kLiAg QSByZXF1ZXN0ZWQgdGFnDQorK2lzIHNlYXJjaGVkIGZvciBpbiB0aGUgc3BlY2lmaWVkIGZpbGVz LCBzZXF1ZW50aWFsbHkuICBCeSBkZWZhdWx0IGZpbGVzIGNhbGxlZA0KKyt0YWdzIGFyZSBzZWFy Y2hlZCBmb3IgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGFuZCBpbiAvdXNyL2xpYiAoYSBtYXN0 ZXIgZmlsZQ0KKytmb3IgdGhlIGVudGlyZSBzeXN0ZW0pLg0KKysNCisrW0F1dGhvcidzIG5vdGU6 IFRoZSBhdXRob3Igb2YgdGhpcyB0dXRvcmlhbCBoYXMgbmV2ZXIgdXNlZCB0aGlzIG9wdGlvbiwg bm9yDQorK3NlZW4gaXQgdXNlZC4gIEknbSBub3QgZXZlbiBzdXJlIEkga25vdyB3aGF0IHRoZXkg YXJlIHRhbGtpbmcgYWJvdXQuXQ0KKysNCisrU2VjdGlvbiA0NC4zMjoge3Rlcm19IGRlZmF1bHQ6 IGZyb20gZW52aXJvbm1lbnQgdmFyaWFibGUgVEVSTQ0KKysNCisrVGhlIHRlcm1pbmFsIHR5cGUg b2YgdGhlIG91dHB1dCBkZXZpY2UuDQorKw0KKytTZWN0aW9uIDQ0LjMzOiB7dGVyc2V9IGRlZmF1 bHQ6IG5vdGVyc2UNCisrDQorK1Nob3J0ZXIgZXJyb3IgZGlhZ25vc3RpY3MgYXJlIHByb2R1Y2Vk IGZvciB0aGUgZXhwZXJpZW5jZWQgdXNlci4NCisrDQorK1NlY3Rpb24gNDQuMzQ6IHt0aW1lb3V0 fSBkZWZhdWx0OiB0aW1lb3V0DQorKw0KKytDYXVzZXMgbWFjcm9zIHRvIHRpbWUgb3V0IGFmdGVy IG9uZSBzZWNvbmQuICBUdXJuIGl0IG9mZiBhbmQgdGhleSB3aWxsDQorK3dhaXQgZm9yZXZlci4g IFRoaXMgaXMgdXNlZnVsIGlmIHlvdSB3YW50IG11bHRpLWNoYXJhY3RlciBtYWNyb3MsIGJ1dCBp Zg0KKyt5b3VyIHRlcm1pbmFsIHNlbmRzIGVzY2FwZSBzZXF1ZW5jZXMgZm9yIGFycm93IGtleXMs IGl0IHdpbGwgYmUNCisrbmVjZXNzYXJ5IHRvIGhpdCBlc2NhcGUgdHdpY2UgdG8gZ2V0IGEgYmVl cC4NCisrDQorK1tFZGl0b3IncyBub3RlOiBBbm90aGVyIHBhcmFncmFwaCB3aGljaCByZXF1aXJl cyBhIGNyeXB0b2dyYXBoZXIuXQ0KKysNCisrU2VjdGlvbiA0NC4zNTogdHR5dHlwZQ0KKysNCisr W0VkaXRvcidzIG5vdGU6IEkgaGF2ZSBmb3VuZCBubyBkb2N1bWVudGF0aW9uIGZvciB0aGlzIG9w dGlvbiBhdCBhbGwuXQ0KKysNCisrU2VjdGlvbiA0NC4zNjoge3dhcm59IGRlZmF1bHQ6IHdhcm4N CisrDQorK1dhcm4gaWYgdGhlcmUgaGFzIGJlZW4gYFtObyB3cml0ZSBzaW5jZSBsYXN0IGNoYW5n ZV0nIGJlZm9yZSBhIGAhJyBjb21tYW5kDQorK2VzY2FwZS4NCisrDQorK1NlY3Rpb24gNDQuMzc6 IHt3aW5kb3d9IGRlZmF1bHQ6IHdpbmRvdz1zcGVlZCBkZXBlbmRlbnQNCisrDQorK1RoZSBudW1i ZXIgb2YgbGluZXMgaW4gYSB0ZXh0IHdpbmRvdyBpbiB0aGUgdmlzdWFsIGNvbW1hbmQuICBUaGUg ZGVmYXVsdCBpcyA4DQorK2F0IHNsb3cgc3BlZWRzICg2MDAgYmF1ZCBvciBsZXNzKSwgMTYgYXQg bWVkaXVtIHNwZWVkICgxMjAwIGJhdWQpLCBhbmQgdGhlIGZ1bGwNCisrc2NyZWVuIChtaW51cyBv bmUgbGluZSkgYXQgaGlnaGVyIHNwZWVkcy4NCisrDQorK1NlY3Rpb24gNDQuMzg6IHt3cmFwc2Nh bn0sIHt3c30gZGVmYXVsdDogd3MNCisrDQorK1NlYXJjaGVzIHVzaW5nIHRoZSByZWd1bGFyIGV4 cHJlc3Npb25zIGluIGFkZHJlc3Npbmcgd2lsbCB3cmFwIGFyb3VuZCBwYXN0IHRoZQ0KKytlbmQg b2YgdGhlIGZpbGUuDQorKw0KKytTZWN0aW9uIDQ0LjM5OiB7d3JhcG1hcmdpbn0sIHt3bX0gZGVm YXVsdDogd209MA0KKysNCisrRGVmaW5lcyBhIG1hcmdpbiBmb3IgYXV0b21hdGljIHdyYXBvdmVy IG9mIHRleHQgZHVyaW5nIGlucHV0IGluIG9wZW4gYW5kIHZpc3VhbA0KKyttb2Rlcy4gIFRoZSBu dW1lcmljIHZhbHVlIGlzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBmcm9tIHRoZSByaWdodCBlZGdl IG9mIHRoZQ0KKytzY3JlZW4gYXJvdW5kIHdoaWNoIHZpIGxvb2tzIGZvciBhIGNvbnZlbmllbnQg cGxhY2UgdG8gaW5zZXJ0IGEgbmV3LWxpbmUNCisrY2hhcmFjdGVyICh3bT0wIGlzIE9GRikuICBU aGlzIGlzIHZlcnkgY29udmVuaWVudCBmb3IgdG91Y2ggdHlwaXN0cy4NCisrV3JhcG1hcmdpbiBi ZWhhdmVzIG11Y2ggbGlrZSBmaWxsL25vanVzdGlmeSBtb2RlIGRvZXMgaW4gbnJvZmYuDQorKw0K KytTZWN0aW9uIDQ0LjQwOiB7d3JpdGVhbnl9LCB7d2F9IGRlZmF1bHQ6IG5vd2ENCisrDQorK0lu aGliaXQgdGhlIGNoZWNrcyBub3JtYWxseSBtYWRlIGJlZm9yZSB3cml0ZSBjb21tYW5kcywgYWxs b3dpbmcgYSB3cml0ZSB0byBhbnkNCisrZmlsZSB3aGljaCB0aGUgc3lzdGVtIHByb3RlY3Rpb24g bWVjaGFuaXNtIHdpbGwgYWxsb3cuDQorKw0KKytTZWN0aW9uIDQ0LjQxOiB7dzMwMH0sIHt3MTIw MH0sIHt3OTYwMH0gZGVmYXVsdHM6IHczMDA9OA0KKysgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdzEyMDA9MTYNCisrICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHc5NjAwPWZ1bGwgc2NyZWVuIG1pbnVzIG9uZQ0K KysNCisrVGhlc2UgYXJlIG5vdCB0cnVlIG9wdGlvbnMgYnV0IHNldCB0aGUgZGVmYXVsdCBzaXpl IG9mIHRoZSB3aW5kb3cgZm9yIHdoZW4gdGhlDQorK3NwZWVkIGlzIHNsb3cgKDMwMCksIG1lZGl1 bSAoMTIwMCksIG9yIGhpZ2ggKDk2MDApLCByZXNwZWN0aXZlbHkuICBUaGV5IGFyZQ0KKytzdWl0 YWJsZSBmb3IgYW4gRVhJTklUIGFuZCBtYWtlIGl0IGVhc3kgdG8gY2hhbmdlIHRoZSA4LzE2L2Z1 bGwgc2NyZWVuIHJ1bGUuDQorKw0KKytTZWN0aW9uIDQ1OiBMaW1pdGF0aW9ucw0KKysNCisrSGVy ZSBhcmUgc29tZSBlZGl0b3IgbGltaXRzIHRoYXQgdGhlIHVzZXIgaXMgbGlrZWx5IHRvIGVuY291 bnRlcjoNCisrICAgICAgIDEwMjQgICBjaGFyYWN0ZXJzIHBlciBsaW5lDQorKyAgICAgICAyNTYg ICAgY2hhcmFjdGVycyBwZXIgZ2xvYmFsIGNvbW1hbmQgbGlzdA0KKysgICAgICAgMTI4ICAgIGNo YXJhY3RlcnMgcGVyIGZpbGUgbmFtZQ0KKysgICAgICAgMTI4ICAgIGNoYXJhY3RlcnMgaW4gdGhl IHByZXZpb3VzIGluc2VydGVkIGFuZCBkZWxldGVkIHRleHQgaW4gb3BlbiBvciANCisrICAgICAg ICAgICAgICB2aXN1YWwNCisrICAgICAgIDEwMCAgICBjaGFyYWN0ZXJzIGluIGEgc2hlbGwgZXNj YXBlIGNvbW1hbmQNCisrICAgICAgIDYzICAgICBjaGFyYWN0ZXJzIGluIGEgc3RyaW5nIHZhbHVl ZCBvcHRpb24NCisrICAgICAgIDMwICAgICBjaGFyYWN0ZXJzIGluIGEgdGFnIG5hbWUNCisrICAg ICAgIDI1MDAwMCBsaW5lcyBpbiB0aGUgZmlsZSAodGhpcyBpcyBzaWxlbnRseSBlbmZvcmNlZCku DQorKw0KKytUaGUgdmlzdWFsIGltcGxlbWVudGF0aW9uIGxpbWl0cyB0aGUgbnVtYmVyIG9mIG1h Y3JvcyBkZWZpbmVkIHdpdGggbWFwIHRvIDMyLA0KKythbmQgdGhlIHRvdGFsIG51bWJlciBvZiBj aGFyYWN0ZXJzIGluIG1hY3JvcyB0byBiZSBsZXNzIHRoYW4gNTEyLg0KKysNCisrW0VkaXRvcidz IG5vdGU6IHRoZXNlIGxpbWl0cyBtYXkgbm90IGFwcGx5IHRvIHZlcnNpb25zIGFmdGVyIDQuMUJT RC5dDQorZGlmZiAtTmF1ciBudmktMS44MS5vcmlnL252aS0xLjc5L2RvY3MvdHV0b3JpYWwvdmku YmVnaW5uZXIgbnZpLTEuODEuNi9udmktMS43OS9kb2NzL3R1dG9yaWFsL3ZpLmJlZ2lubmVyDQor LS0tIG52aS0xLjgxLjYub3JpZy9udmktMS43OS9kb2NzL3R1dG9yaWFsL3ZpLmJlZ2lubmVyCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwDQorKysrIG52aS0xLjgxLjYvbnZpLTEu NzkvZG9jcy90dXRvcmlhbC92aS5iZWdpbm5lcgkyMDA4LTA2LTIyIDIwOjM1OjM1LjAwMDAwMDAw MCArMDIwMA0KK0BAIC0wLDAgKzEsNzQxIEBADQorK1NlY3Rpb24gMToge15GfSB7Wlp9DQorKw0K KytUbyBnZXQgb3V0IG9mIHRoaXMgdHV0b3JpYWwsIHR5cGU6IFpaICh0d28gY2FwaXRhbCBaJ3Mp Lg0KKysNCisrTGVhcm5pbmcgYSBuZXcgY29tcHV0ZXIgc3lzdGVtIGltcGxpZXMgbGVhcm5pbmcg YSBuZXcgdGV4dCBlZGl0b3IuICBUaGVzZQ0KKyt0dXRvcmlhbCBsZXNzb25zIHdlcmUgY3JlYXRl ZCBieSBEYWluIFNhbXBsZXMgdG8gaGVscCB5b3UgY29tZSB0byBncmlwcyB3aXRoDQorK1VDIEJl cmtlbGV5J3Mgc2NyZWVuIG9yaWVudGVkIGVkaXRvciBjYWxsZWQgdmkgKGZvciBWSXN1YWwpLiBU aGlzIHR1dG9yaWFsDQorK3VzZXMgdGhlIHZpIGVkaXRvciBpdHNlbGYgYXMgdGhlIG1lYW5zIG9m IHByZXNlbnRhdGlvbi4gDQorKw0KKytGb3IgYmVzdCB1c2Ugb2YgdGhpcyB0dXRvcmlhbCwgcmVh ZCBhbGwgb2YgYSBzY3JlZW4gYmVmb3JlIHBlcmZvcm1pbmcgYW55IG9mDQorK3RoZSBpbmRpY2F0 ZWQgYWN0aW9ucy4gIFRoaXMgdHV0b3JpYWwgKG9yLCBhdCBsZWFzdCwgdGhlIGZpcnN0IGhhbGYg b2YgaXQpIGhhcw0KKytiZWVuIGRlc2lnbmVkIHRvIHN5c3RlbWF0aWNhbGx5IHByZXNlbnQgdGhl IHZpIGNvbW1hbmRzIElGIFRIRSBJTlNUUlVDVElPTlMNCisrQVJFIEZPTExPV0VEISAgSWYgeW91 IGFyZSB0b28gYWR2ZW50dXJlc29tZSwgeW91IG1heSBmaW5kIHlvdXJzZWxmIGxvc3QuICBJZg0K Kyt5b3UgZXZlciBmaW5kIHlvdXJzZWxmIHN0dWNrLCByZW1lbWJlciB0aGUgZmlyc3QgbGluZSBv ZiB0aGlzIHNlY3Rpb24uDQorKw0KKytPSywgbm93IGZpbmQgdGhlIGNvbnRyb2wga2V5IG9uIHlv dXIga2V5Ym9hcmQ7IGl0IHVzdWFsbHkgaGFzIENUTCBvciBDVFJMDQorK3dyaXR0ZW4gb24gaXRz IHVwcGVyIHN1cmZhY2UuICBZb3VyIGZpcnN0IGFzc2lnbm1lbnQgaXMgdG8gaG9sZCB0aGUgY29u dHJvbA0KKytrZXkgZG93biB3aGlsZSB5b3UgcHJlc3MgdGhlICdGJyBrZXkgb24geW91ciBrZXli b2FyZC4gIFBsZWFzZSBkbyBzbyBub3cuDQorKw0KKysNCisrDQorK1NlY3Rpb24gMjoge15GfSB7 XkJ9DQorK01hbnkgb2YgdmkncyBjb21tYW5kcyB1c2UgdGhlIGNvbnRyb2wga2V5IGFuZCBzb21l IG90aGVyIGtleSBpbiBjb21iaW5hdGlvbiwNCisrYXMgd2l0aCB0aGUgY29udHJvbCBhbmQgdGhl ICdGJyBrZXkgYWJvdmUuICBUaGlzIGlzIGFiYnJldmlhdGVkIENUTC1GLCBvciBeRi4NCisrDQor K0FzIHlvdSBoYXZlIHByb2JhYmx5IGd1ZXNzZWQgYnkgbm93LCBeRiAoQ1RMLUYpIG1vdmVzIHlv dSBmb3J3YXJkIGEgZml4ZWQNCisrbnVtYmVyIG9mIGxpbmVzIGluIHRoZSBmaWxlLiAgVGhyb3Vn aG91dCB0aGUgcmVtYWluZGVyIG9mIHRoZSB0dXRvcmlhbCB3aGVuDQorK3lvdSBhcmUgcmVhZHkg dG8gYWR2YW5jZSB0byB0aGUgbmV4dCBzZWN0aW9uIG9mIHRleHQsIGhpdCBeRi4NCisrDQorK1Ro ZSBvcHBvc2l0ZSBjb21tYW5kIGlzIF5CLiAgSnVzdCBmb3IgZnVuLCB5b3UgbWlnaHQgd2FudCB0 byB0cnkgYSBeQiB0byBzZWUNCisrdGhlIHByZXZpb3VzIHNlY3Rpb24gYWdhaW4uICBCZSBzdXJl IHRvIGRvIGEgXkYgdG8gcmV0dXJuIHlvdSBoZXJlLg0KKysNCisrRGV0ZXJtaW5lIHdoYXQgdGhl IGN1cnNvciBsb29rcyBsaWtlIG9uIHlvdXIgc2NyZWVuLiAgV2hhdGV2ZXIgaXQgaXMgKGEgYm94 LA0KKythbiB1bmRlcnNjb3JlLCBibGlua2luZywgZmxhc2hpbmcsIGludmVyc2UsIGV0Yy4pIGl0 IHNob3VsZCBub3cgYmUgcG9zaXRpb25lZA0KKytpbiB0aGUgdXBwZXIgbGVmdC1oYW5kIGNvcm5l ciBvZiB5b3VyIHNjcmVlbiB1bmRlciBvciBvbiB0aGUgUyBvZiBTZWN0aW9uLg0KKytCZWNvbWUg ZmFtaWxpYXIgd2l0aCB5b3VyIGN1cnNvcjogdG8gdXNlIHZpIGNvcnJlY3RseSBpdCBpcyBpbXBv cnRhbnQgdG8NCisrYWx3YXlzIGtub3cgd2hlcmUgdGhlIGN1cnNvciBpcy4NCisrDQorK0RpZCB5 b3Ugbm90aWNlIHRoYXQgd2hlbiB5b3UgZG8gYSBeRiB0aGUgY3Vyc29yIGlzIGxlZnQgYXQgdGhl IHRvcCBvZiB0aGUNCisrc2NyZWVuLCBhbmQgYSBeQiBsZWF2ZXMgdGhlIGN1cnNvciBuZWFyIHRo ZSBib3R0b20gb2YgdGhlIHNjcmVlbj8gIFRyeSB0aGUgdHdvDQorK2NvbW1hbmRzIF5CXkYgYWdh aW4uICBBbmQgbm93IGRvIGFub3RoZXIgXkYgdG8gc2VlIHRoZSBuZXh0IHNlY3Rpb24uDQorKw0K KytTZWN0aW9uIDM6IHteRn0ge15CfQ0KKytZb3Ugbm93IGhhdmUgdHdvIGJhc2ljIGNvbW1hbmRz IGZvciBleGFtaW5pbmcgYSBmaWxlLCBib3RoIGZvcndhcmRzICheRikgYW5kDQorK2JhY2t3YXJk cyAoXkIpLg0KKysNCisrTm90ZSB0aGF0IHRoZXNlIGFyZSB2aSB0ZXh0IGVkaXRpbmcgY29tbWFu ZHM6IHRoZXkgYXJlIG5vdCBjb21tYW5kcyBmb3IgdGhlDQorK3R1dG9yaWFsLiAgSW5kZWVkLCB0 aGlzIHR1dG9yaWFsIGlzIG5vdGhpbmcgYnV0IGEgdGV4dCBmaWxlIHdoaWNoIHlvdSBhcmUgbm93 DQorK2VkaXRpbmcuICBFdmVyeXRoaW5nIHlvdSBkbyBhbmQgbGVhcm4gaW4gdGhpcyB0dXRvcmlh bCB3aWxsIGJlIGFwcGxpY2FibGUgdG8NCisrZWRpdGluZyB0ZXh0IGZpbGVzLg0KKysNCisrVGhl cmVmb3JlLCB3aGVuIHlvdSBhcmUgZWRpdGluZyBhIGZpbGUgYW5kIGFyZSByZWFkeSB0byBzZWUg bW9yZSBvZiB0aGUgdGV4dCwNCisrZW50ZXJpbmcgXkYgd2lsbCBnZXQgeW91IHRvIHRoZSBuZXh0 IHNlY3Rpb24gb2YgdGhlIGZpbGUuICBFbnRlcmluZyBeQiB3aWxsDQorK3Nob3cgeW91IHRoZSBw cmV2aW91cyBzZWN0aW9uLg0KKysNCisrVGltZSBmb3IgeW91IHRvIGRvIGFub3RoZXIgXkYuDQor Kw0KKysNCisrDQorKw0KKysNCisrDQorKw0KKytTZWN0aW9uIDQ6IHteRn0ge15CfSB7Xk19IChy ZXR1cm4ga2V5KQ0KKytXZSB3aWxsIGFkb3B0IHRoZSBub3RhdGlvbiBvZiBwdXR0aW5nIGNvbW1h bmRzIGluIGN1cmx5IGJyYWNlcyBzbyB3ZSBjYW4gd3JpdGUNCisrdGhlbSB1bmFtYmlndW91c2x5 LiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBhcmUgdG8gdHlwZSB0aGUgY29tbWFuZCBzZXF1ZW5jZQ0K KysiY29udHJvbCBCIGNvbnRyb2wgRiIgKGFzIHdlIGFza2VkIHlvdSB0byBkbyBhYm92ZSkgaXQg d291bGQgYXBwZWFyIGFzIHteQl5GfS4NCisrVGhpcyBhbGxvd3MgY2xlYXIgZGVsaW5lYXRpb24g b2YgdGhlIGNvbW1hbmQgc3RyaW5ncyBmcm9tIHRoZSB0ZXh0LiBSZW1lbWJlcg0KKyt0aGF0IHRo ZSBjdXJseSBicmFjZXMgYXJlIE5PVCBwYXJ0IG9mIHRoZSBjb21tYW5kIHN0cmluZyB5b3UgYXJl IHRvIHR5cGUuIERvDQorK05PVCB0eXBlIHRoZSBjdXJseSBicmFjZXMuICANCisrDQorK1NvbWV0 aW1lcywgdGhlIGNvbW1hbmQgc3RyaW5nIGluIHRoZSBjdXJseSBicmFjZXMgd2lsbCBiZSByYXRo ZXIgbG9uZywgYW5kIG1heQ0KKytiZSBzdWNoIHRoYXQgdGhlIGZpcnN0IGNvdXBsZSBvZiBjaGFy YWN0ZXJzIG9mIHRoZSBjb21tYW5kIHdpbGwgZXJhc2UgZnJvbQ0KKyt0aGUgc2NyZWVuIHRoZSBz dHJpbmcgeW91IGFyZSB0cnlpbmcgdG8gcmVhZCBhbmQgdHlwZS4gIEl0IGlzIHN1Z2dlc3RlZCB0 aGF0DQorK3lvdSB3cml0ZSBkb3duIHRoZSBsb25nZXIgY29tbWFuZHMgQkVGT1JFIHlvdSB0eXBl IHRoZW0gc28geW91IHdvbid0IGZvcmdldA0KKyt0aGVtIG9uY2UgdGhleSBkaXNhcHBlYXIuDQor Kw0KKytOb3cgbG9jYXRlIHRoZSByZXR1cm4ga2V5IG9uIHlvdXIga2V5Ym9hcmQ6IGl0IGlzIHVz dWFsbHkgbWFya2VkICdSRVRVUk4nLA0KKytpbmRpY2F0ZSBoaXR0aW5nIHRoZSByZXR1cm4ga2V5 LiAgSW4gZmFjdCwgdGhlIGNvbnRyb2wtTSBrZXkgc2VxdWVuY2UgaXMNCisrZXhhY3RseSB0aGUg c2FtZSBhcyBpZiB5b3UgaGl0IHRoZSByZXR1cm4ga2V5LCBhbmQgdmljZSB2ZXJzYS4NCisrDQor K05vdyB0eXBlIHteRn0uDQorKw0KKysNCisrU2VjdGlvbiA1OiB7OnEhfSB7Wlp9IHteTX0gKHJl dHVybiBrZXkpDQorK1JlY29nbml6ZSB0aGF0IHRoaXMgdHV0b3JpYWwgaXMgbm90aGluZyBtb3Jl IHRoYW4gYSB0ZXh0IGZpbGUgdGhhdCB5b3UNCisrYXJlIGVkaXRpbmcuICBUaGlzIG1lYW5zIHRo YXQgaWYgeW91IGRvIHNvbWV0aGluZyB3cm9uZywgaXQgaXMgcG9zc2libGUNCisrZm9yIHlvdSB0 byBkZXN0cm95IHRoZSBpbmZvcm1hdGlvbiBpbiB0aGlzIGZpbGUuICBEb24ndCB3b3JyeS4gIElm IHRoaXMNCisraGFwcGVucywgdHlwZSB7Wlp9ICh0d28gY2FwaXRhbCBaJ3MpIG9yIHs6cSFeTX0g dG8gbGVhdmUgdGhlIHR1dG9yaWFsLg0KKytSZXN0YXJ0IHRoZSB0dXRvcmlhbC4gIE9uY2UgaW4g dGhlIHR1dG9yaWFsLCB5b3UgY2FuIHRoZW4gcGFnZSBmb3J3YXJkDQorK3dpdGgge15GfSB1bnRp bCB5b3UgYXJlIGJhY2sgdG8gd2hlcmUgeW91IHdhbnQgdG8gYmUuICAoVGhlcmUgYXJlDQorK2Vh c2llciB3YXlzIHRvIGRvIHRoaXMsIHNvbWUgb2Ygd2hpY2ggd2lsbCBiZSBkaXNjdXNzZWQgbGF0 ZXIsIGJ1dCB0aGlzDQorK2lzIHRoZSBtb3N0IHN0cmFpZ2h0Zm9yd2FyZC4pDQorKw0KKytZb3Ug bWF5IHdhbnQgdG8gd3JpdGUgdGhlc2UgY29tbWFuZHMgZG93biBpbiBhIGNvbnZlbmllbnQgcGxh Y2UgZm9yIHF1aWNrDQorK3JlZmVyZW5jZTogezpxIV5NfSBhbmQge1pafQ0KKysNCisrV2Ugd2ls bCBhc3N1bWUgdGhhdCB5b3Ugbm93IGtub3cgdG8gZG8gYSB7XkZ9IHRvIGFkdmFuY2UgdGhlIGZp bGUNCisrDQorKw0KKysNCisrDQorKw0KKysNCisrDQorK1NlY3Rpb24gNjoge219IHtHfSB7J30g e3p9DQorK05vdyB0aGF0IHlvdSBrbm93IGhvdyB0byBnZXQgYXJvdW5kIGluIHRoZSBmaWxlIHZp YSBeRiBhbmQgXkIgbGV0J3MgbG9vayBhdA0KKytvdGhlciB3YXlzIG9mIGV4YW1pbmluZyBhIHRl eHQgZmlsZS4gIFNvbWV0aW1lcyBpdCBpcyBuZWNlc3NhcnksIGluIHRoZSBtaWRzdA0KKytvZiBl ZGl0aW5nIGEgZmlsZSwgdG8gZXhhbWluZSBhbm90aGVyIHBhcnQgb2YgdGhlIGZpbGUuICBZb3Ug YXJlIHRoZW4gZmFjZWQNCisrd2l0aCB0aGUgcHJvYmxlbSBvZiByZW1lbWJlcmluZyB5b3VyIHBs YWNlIGluIHRoZSBmaWxlLCBsb29raW5nIGF0IHRoZSBvdGhlcg0KKyt0ZXh0LCBhbmQgdGhlbiBn ZXR0aW5nIGJhY2sgdG8geW91ciBvcmlnaW5hbCBsb2NhdGlvbi4gIFZpIGhhcyBhICdtYXJrJw0K Kytjb21tYW5kLCBtLiBUeXBlIHttcH0uICBZb3UgaGF2ZSBqdXN0ICdtYXJrZWQnIHlvdXIgY3Vy cmVudCBsb2NhdGlvbiBpbiB0aGUNCisrZmlsZSBhbmQgZ2l2ZW4gaXQgdGhlIG5hbWUgJ3AnLiAg VGhlIGNvbW1hbmQgc3RyaW5nIGJlbG93IHdpbGwgZG8gdGhyZWUNCisrdGhpbmdzOiBwb3NpdGlv biB5b3UgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSAobGluZSAxKSwgdGhlbiByZXR1cm4g eW91IHRvDQorK3RoZSBsb2NhdGlvbiAncCcgdGhhdCB5b3UganVzdCBtYXJrZWQgd2l0aCB0aGUg J20nIGNvbW1hbmQsIGFuZCwgc2luY2UgdGhlDQorK3NjcmVlbiB3aWxsIG5vdCBsb29rIGV4YWN0 bHkgdGhlIHNhbWUgYXMgaXQgZG9lcyByaWdodCBub3csIHRoZSAneicgY29tbWFuZA0KKyt3aWxs IHJlcG9zaXRpb24gdGhlIHNjcmVlbi4gKFlvdSBtYXkgd2FudCB0byB3cml0ZSB0aGUgc3RyaW5n IGRvd24gYmVmb3JlDQorK3R5cGluZyBpdDogb25jZSB5b3UgdHlwZSB7MUd9IGl0IHdpbGwgbm8g bG9uZ2VyIGJlIG9uIHRoZSBzY3JlZW4uKQ0KKysNCisrU28gbm93IHR5cGUgezFHJ3B6Xk19IC0g YSBvbmUgZm9sbG93ZWQgYnkgYSBjYXBpdGFsIEcsIGZvbGxvd2VkIGJ5IHRoZSBxdW90ZQ0KKytt YXJrLCBmb2xsb3dlZCBieSBhIGxvd2VyIGNhc2UgJ3AnLCB0aGVuIGEgbG93ZXIgY2FzZSAneics IHRoZW4gYSByZXR1cm4NCisrKHdoaWNoIGlzIHRoZSBzYW1lIGFzIGEgXk0pLiAgVGhlIHsxR30g bW92ZXMgeW91IHRvIGxpbmUgMSwgaS5lLiB0aGUgYmVnaW5uaW5nDQorK29mIHRoZSBmaWxlLiAg VGhlIHsncH0gbW92ZXMgeW91IHRvIHRoZSBsb2NhdGlvbiB5b3UgbWFya2VkIHdpdGgge21wfS4g IFRoZQ0KKyt7el5NfSBjb21tYW5kIHdpbGwgcmVwYWludCB0aGUgc2NyZWVuIHB1dHRpbmcgdGhl IGN1cnNvciBhdCB0aGUgdG9wIG9mIHRoZQ0KKytzY3JlZW4uIChOb3cge15GfS4pDQorKw0KKytT ZWN0aW9uIDc6IHttfSB7R30geyd9IHt6fQ0KKytMZXQncyBsb29rIGF0IHNvbWUgdmFyaWF0aW9u cyBvbiB0aG9zZSBjb21tYW5kcy4gIElmIHlvdSB3YW50ZWQgdG8gbG9vayBhdA0KKytsaW5lIDIy IGluIHRoZSBmaWxlIGFuZCByZXR1cm4gdG8gdGhpcyBsb2NhdGlvbiB5b3UgY291bGQgdHlwZSB7 bXAyMkcncH0uICBEbw0KKytzbyBub3csIG9ic2VydmluZyB0aGF0IHsyMkd9IHB1dHMgeW91ciBj dXJzb3IgYXQgdGhlIGJlZ2lubmluZyBvZiBzZWN0aW9uIDIgaW4NCisrdGhlIG1pZGRsZSBvZiB0 aGUgc2NyZWVuLg0KKysNCisrQWxzbyBub3RlIHRoYXQsIHdpdGhvdXQgdGhlIHt6Xk19IGNvbW1h bmQsIHRoZSBsaW5lIHdpdGggJ1NlY3Rpb24gNycgb24gaXQgaXMNCisrbm93IGluIHRoZSBNSURE TEUgb2YgdGhlIHNjcmVlbiwgYW5kIG5vdCBhdCB0aGUgdG9wLiAgT3VyIGN1cnNvciBpcyBvbiB0 aGUNCisrY29ycmVjdCBsaW5lICh3aGVyZSB3ZSBkaWQgdGhlIHttcH0gY29tbWFuZCkgYnV0IHRo ZSBsaW5lIGlzIG5vdCB3aGVyZSB3ZQ0KKyttaWdodCBsaWtlIGl0IHRvIGJlIG9uIHRoZSBzY3Jl ZW4uICBUaGF0IGlzIHRoZSBmdW5jdGlvbiBvZiB0aGUge3peTX0gY29tbWFuZC4NCisrKFJlbWVt YmVyLCBeTSBpcyB0aGUgc2FtZSBhcyB0aGUgJ3JldHVybicga2V5IG9uIHlvdXIga2V5Ym9hcmQu KSAgVHlwZSB7el5NfQ0KKytub3cgYW5kIG9ic2VydmUgdGhlIGVmZmVjdC4NCisrDQorK0FzIHlv dSBjYW4gc2VlLCB0aGUgJ1NlY3Rpb24gNycgbGluZSBpcyBub3cgYXQgdGhlIHRvcCBvZiB0aGUg c2NyZWVuIHdpdGggdGhlDQorK2N1cnNvciBoYXBwaWx5IHVuZGVyIHRoZSBjYXBpdGFsIFMuICBJ ZiB5b3Ugd291bGQgbGlrZSB0aGUgY3Vyc29yIGxpbmUgKGkuZS4NCisrdGhlIGxpbmUgd2hpY2gg dGhlIGN1cnNvciBpcyBvbikgaW4gdGhlIG1pZGRsZSBvZiB0aGUgc2NyZWVuIGFnYWluLCB5b3Ug d291bGQNCisrdHlwZSB7ei59LiAgSWYgeW91IHdhbnRlZCB0aGUgY3Vyc29yIGxpbmUgdG8gYmUg YXQgdGhlIEJPVFRPTSBvZiB0aGUgc2NyZWVuLA0KKyt0eXBlIHt6LX0uICBUcnkgdHlwaW5nIHt6 LXouel5NfSBhbmQgd2F0Y2ggd2hhdCBoYXBwZW5zLg0KKysNCisre15GfQ0KKysNCisrU2VjdGlv biA4OiB7en0ge219IHsnfQ0KKysNCisrTm90ZSB0aGF0IHRoZSB6IGNvbW1hbmQgZG9lcyBub3Qg Y2hhbmdlIHRoZSBwb3NpdGlvbiBvZiBvdXIgY3Vyc29yIGluIHRoZSBmaWxlDQorK2l0c2VsZiwg aXQgc2ltcGx5IG1vdmVzIHRoZSBjdXJzb3IgYXJvdW5kIG9uIHRoZSBzY3JlZW4gYnkgbW92aW5n IHRoZSBjb250ZW50cw0KKytvZiB0aGUgZmlsZSBhcm91bmQgb24gdGhlIHNjcmVlbi4gIFRoZSBj dXJzb3Igc3RheXMgb24gdGhlIHNhbWUgbGluZSBvZiB0aGUNCisrZmlsZSB3aGVuIHVzaW5nIHRo ZSB6IGNvbW1hbmQuDQorKw0KKytUaGlzIGJyaW5ncyB1cCBhbiBpbXBvcnRhbnQgcG9pbnQuICBU aGVyZSBhcmUgdHdvIHF1ZXN0aW9ucyB0aGF0IHRoZSB1c2VycyBvZg0KKyt2aSBjb250aW51YWxs eSBuZWVkIHRvIGtub3cgdGhlIGFuc3dlciB0bzogIldoZXJlIGFtIEkgaW4gdGhlIGZpbGU/IiBh bmQNCisrIldoZXJlIGFtIEkgb24gdGhlIHNjcmVlbj8iICBUaGUgY3Vyc29yIG9uIHlvdXIgdGVy bWluYWwgc2hvd3MgdGhlIGFuc3dlciB0bw0KKytib3RoIHF1ZXN0aW9ucy4gIFNvbWUgY29tbWFu ZHMgd2lsbCBtb3ZlIHlvdSBhcm91bmQgaW4gdGhlIGZpbGUsIHVzdWFsbHkNCisrY2hhbmdpbmcg dGhlIGxvY2F0aW9uIG9mIHRoZSBjdXJzb3Igb24gdGhlIHNjcmVlbiBhcyB3ZWxsLiAgT3RoZXIg Y29tbWFuZHMNCisrbW92ZSB0aGUgY3Vyc29yIGFyb3VuZCBvbiB0aGUgc2NyZWVuIHdpdGhvdXQg Y2hhbmdpbmcgeW91ciBsb2NhdGlvbiBpbiB0aGUNCisrZmlsZS4NCisrDQorK05vdyB0eXBlIHtt YX0uICBZb3VyIGxvY2F0aW9uIGluIHRoZSBmaWxlIGhhcyBiZWVuIGdpdmVuIHRoZSBuYW1lICdh Jy4gSWYgeW91DQorK3R5cGUgeydwJ2F9IHlvdSB3aWxsIHNlZSB0aGUgcHJldmlvdXMgbG9jYXRp b24gd2UgbWFya2VkIGluIHNlY3Rpb24gNywgYW5kDQorK3RoZW4gd2lsbCBiZSByZXR1cm5lZCB0 byB0aGUgY3VycmVudCBsb2NhdGlvbi4gIChZb3Ugd2lsbCB3YW50IHRvIGRvIGEge3peTX0NCisr dG8gcmVwYWludCB0aGUgc2NyZWVuIGFmdGVyd2FyZHMuKSAgVHJ5IGl0LiAgDQorK3teRn0NCisr DQorK1NlY3Rpb24gOToge219IHsnJ30NCisrTm93IHdlIGNhbiBtb3ZlIGFib3V0IGluIG91ciBm aWxlIHByZXR0eSBmcmVlbHkuICBCeSB1c2luZyB0aGUge219IGNvbW1hbmQgd2UNCisrY2FuIGdp dmUgdGhlIGN1cnJlbnQgY3Vyc29yIHBvc2l0aW9uIGEgbG93ZXItY2FzZS1jaGFyYWN0ZXIgbmFt ZSwgbGlrZSAncCcsDQorKydhJywgJ2UnLCAnbScsIG9yICdiJy4gIFVzaW5nIHRoZSB7R30gY29t bWFuZCBwcmVjZWRlZCBieSBhIGxpbmUgbnVtYmVyIHdlIGNhbg0KKytsb29rIGF0IGFueSBsaW5l IGluIHRoZSBmaWxlIHdlIGxpa2UuICBVc2luZyB0aGUgc2luZ2xlIHF1b3RlIGNvbW1hbmQgeyd9 DQorK2ZvbGxvd2VkIGJ5IGEgY2hhcmFjdGVyIHVzZWQgaW4gYW4ge219IGNvbW1hbmQsIHdlIGNh biByZXR1cm4gdG8gYW55IGxvY2F0aW9uDQorK2luIHRoZSBmaWxlIHdlIGhhdmUgbWFya2VkLg0K KysNCisrSG93ZXZlciwgdHJ5IHttM30sIG9yIHttTX0uICBZb3Ugc2hvdWxkIGhlYXIgYSBiZWVw LCBvciBiZWxsLiAgT25seSBsb3dlci1jYXNlDQorK2xldHRlcnMgYXJlIGFjY2VwdGFibGUgdG8g dGhlIHttfSBhbmQgeyd9IGNvbW1hbmRzOiBudW1iZXJzLCB1cHBlci1jYXNlDQorK2xldHRlcnMs IGFuZCBzcGVjaWFsIGNoYXJhY3RlcnMgYXJlIG5vdCBhY2NlcHRhYmxlLg0KKysNCisrSWYgeW91 IHR5cGUgdGhlIHsnfSBjb21tYW5kIHdpdGggYSBjaGFyYWN0ZXIgdGhhdCBpcyBsb3dlci1jYXNl IGFscGhhYmV0aWMgYnV0DQorK3RoYXQgaGFzIG5vdCBiZWVuIHVzZWQgaW4gYW4ge219IGNvbW1h bmQsIG9yIGZvciB3aGljaCB0aGUgJ21hcmtlZCcgdGV4dCBoYXMNCisrYmVlbiBkZWxldGVkLCB5 b3Ugd2lsbCBhbHNvIGdldCBhIGJlZXAuICBUcnkgeydpfS4gIFlvdSBzaG91bGQgZ2V0IGEgYmVl cA0KKytiZWNhdXNlIHRoZSBjb21tYW5kIHttaX0gaGFzIG5ldmVyIGJlZW4gaXNzdWVkLiAgKFVu bGVzcyB5b3UndmUgYmVlbg0KKytleHBlcmltZW50aW5nLikNCisrDQorK1RoZSBjb21tYW5kIHsn J30gYXR0ZW1wdHMgdG8gcmV0dXJuIHlvdSB0byB0aGUgbG9jYXRpb24gYXQgd2hpY2ggeW91IGxh c3QNCisrbW9kaWZpZWQgc29tZSBwYXJ0IG9mIHlvdXIgZmlsZS4gIEhvd2V2ZXIsIG15IGV4cGVy aWVuY2UgaGFzIGJlZW4gdGhhdCBpdCBpcw0KKytkaWZmaWN1bHQgdG8gcHJlZGljdCBleGFjdGx5 IHdoZXJlIHlvdSB3aWxsIGVuZCB1cC4gIA0KKytTZWN0aW9uIDEwOiB7Xk19IHstfQ0KKytOb3cg ZG8ge21hfSwgbWFya2luZyB5b3VyIHBvc2l0aW9uIGF0IHRoZSB0b3Agb2YgdGhlIHNjcmVlbi4g IE5vdyBoaXQge15NfSAob3INCisrcmV0dXJuKSB1bnRpbCB0aGUgY3Vyc29yIGlzIHJpZ2h0IC4u LiANCisrKiA8LSBoZXJlLCBvdmVyL3VuZGVyIHRoZSBhc3Rlcmlzay4gIE5vdw0KKyt0eXBlIHtt YidhJ2J9IGFuZCB3YXRjaCB0aGUgY3Vyc29yIG1vdmUgZnJvbSB0aGUgYXN0ZXJpc2sgdG8gdGhl IHRvcCBvZiB0aGUNCisrc2NyZWVuIGFuZCBiYWNrIGFnYWluLg0KKysNCisrVGhlIHteTX0gY29t bWFuZCBtb3ZlcyB0aGUgY3Vyc29yIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhlIG5leHQgbGluZS4g IE5vdyB0eXBlDQorK3teTX0gdW50aWwgdGhlIGN1cnNvciBpcyByaWdodCAuLi4NCisrKiA8LSBo ZXJlLiAgVGhlIGNvbW1hbmQgdG8gbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBiZWdpbm5pbmcgb2Yg dGhlDQorK3ByZXZpb3VzIGxpbmUgaXMgey19LiAgUHJhY3RpY2UgbW92aW5nIHRoZSBjdXJzb3Ig YXJvdW5kIG9uIHRoZSBzY3JlZW4gYnkgdXNpbmcNCisre15NfSBhbmQgey19LiAgQkUgQ0FSRUZV TCB0byBub3QgbW92ZSB0aGUgY3Vyc29yIE9GRiB0aGUgc2NyZWVuIGp1c3QgeWV0LiAgSWYNCisr eW91IGRvLCB0eXBlIHsnYXpeTX0uDQorKw0KKytOb3cgd2UgY2FuIG1vdmUgdG8gYW55IGxpbmUg d2l0aGluIHRoZSBzY3JlZW4uICBQcmFjdGljZSBtb3ZpbmcgYXJvdW5kIGluIHRoZQ0KKytmaWxl IHVzaW5nIHRoZSB7XkZ9LCB7XkJ9LCB7LX0sIHteTX0sIHt6fSwgYW5kIHsnfSBjb21tYW5kcy4g IFdoZW4geW91IGFyZQ0KKytmYWlybHkgY29uZmlkZW50IHRoYXQgeW91IGNhbiBnZXQgdG8gd2hl cmUgeW91IG5lZWQgdG8gYmUgaW4gdGhlIGZpbGUsIGFuZA0KKytwb3NpdGlvbiB0aGUgY3Vyc29y IG9uIHRoZSBzY3JlZW4gd2hlcmUgeW91IHdhbnQgaXQgdHlwZSB7J2F6Xk1eRn0gKHdoaWNoLCBv Zg0KKytjb3Vyc2UsIG1vdmVzIHlvdSBiYWNrIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhpcyBzZWN0 aW9uLCByZXBvc2l0aW9ucyB0aGUNCisrY3Vyc29yIGF0IHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwg YW5kIGFkdmFuY2VzIHlvdSB0byB0aGUgbmV4dCBzZWN0aW9uKS4NCisrDQorK1NlY3Rpb24gMTE6 IHNjcm9sbGluZzoge15NfQ0KKytUaGUgY3Vyc29yIHNob3VsZCBub3cgYmUgb24gdGhlIFMgb2Yg J1NlY3Rpb24gMTEnLCBhbmQgdGhpcyBzaG91bGQgYmUgb24gdGhlDQorK2ZpcnN0IGxpbmUgb2Yg dGhlIHNjcmVlbi4gIElmIGl0IGlzIG5vdCwgZG8ge15NfSBvciB7LX0gYXMgYXBwcm9wcmlhdGUg dG8gcHV0DQorK3RoZSBjdXJzb3Igb24gdGhlIHNlY3Rpb24gbGluZSwgYW5kIHR5cGUge3peTX0u DQorKw0KKytUeXBlIHttY30gdG8gbWFyayB5b3VyIHBsYWNlLg0KKysNCisrTm93IHR5cGUge15N fSB1bnRpbCB0aGUgY3Vyc29yIGlzIG9uIHRoZSBsYXN0IGxpbmUgb2YgdGhpcyBzY3JlZW4uICBO b3cgZG8gb25lDQorK21vcmUge15NfSBhbmQgb2JzZXJ2ZSB0aGUgcmVzdWx0LiAgVGhpcyBpcyBj YWxsZWQgc2Nyb2xsaW5nLiAgV2hlbiB5b3UNCisrYXR0ZW1wdGVkIHRvIG1vdmUgdG8gYSBsaW5l IG5vdCBkaXNwbGF5ZWQgb24gdGhlIHNjcmVlbiwgdGhlIGxpbmUgYXQgdGhlIHRvcCBvZg0KKyt0 aGUgc2NyZWVuIHdhcyAnc2Nyb2xsZWQgb2ZmJywgYW5kIGEgbGluZSBhdCB0aGUgYm90dG9tIG9m IHRoZSBzY3JlZW4gd2FzDQorKydzY3JvbGxlZCBvbicuICBUaGUgdG9wIGxpbmUgd2l0aCAnU2Vj dGlvbiAxMScgc2hvdWxkIG5vIGxvbmdlciBiZSB2aXNpYmxlLg0KKysNCisrTm93IHR5cGUgeydj el5NfSB0byByZXNldCB0aGUgc2NyZWVuIGFuZCB0eXBlIHteRn0gZm9yIHRoZSBuZXh0IHNlY3Rp b24uDQorKw0KKysNCisrDQorKw0KKysNCisrDQorKw0KKytTZWN0aW9uIDEyOiB7LX0ge3p9DQor Kw0KKytUaGUgey19IGNvbW1hbmQgbW92ZXMgdGhlIGN1cnNvciB0byB0aGUgcHJldmlvdXMgbGlu ZSBpbiB0aGUgZmlsZS4gIE5vdyB0eXBlDQorK3stfSwgd2hpY2ggYXR0ZW1wdHMgdG8gbW92ZSB0 aGUgY3Vyc29yIHRvIHRoZSBwcmV2aW91cyBsaW5lIGluIHRoaXMgZmlsZS4NCisrSG93ZXZlciwg dGhhdCBsaW5lIGlzIG5vdCBvbiB0aGUgc2NyZWVuLiAgVGhlIHJlc3VsdGluZyBhY3Rpb24gd2ls bCBkZXBlbmQgb24NCisreW91ciB0ZXJtaW5hbC4gIChEbyBhIHteTXpeTX0gdG8gcmVwb3NpdGlv biB0aGUgZmlsZSkuICBPbiBpbnRlbGxpZ2VudA0KKyt0ZXJtaW5hbHMgKGUuZy4gVlQxMDBzLCBa MTlzLCBDb25jZXB0IDEwMHMpLCBhIHRvcCBsaW5lIGlzICdzY3JvbGxlZCBvbicgYW5kDQorK3Ro ZSBib3R0b20gbGluZSBpcyAnc2Nyb2xsZWQgb2ZmJy4gIE90aGVyIHRlcm1pbmFscywgaG93ZXZl ciwgbWF5IG5vdCBoYXZlDQorK3RoaXMgJ3JldmVyc2Ugc2Nyb2xsaW5nJyBmZWF0dXJlLiAgVGhl eSB3aWxsIHNpbXBseSByZXBhaW50IHRoZSBzY3JlZW4gd2l0aA0KKyt0aGUgY3Vyc29yIGxpbmUg aW4gdGhlIG1pZGRsZSBvZiB0aGUgc2NyZWVuLiAgT24gc3VjaCB0ZXJtaW5hbHMgaXQgaXMNCisr bmVjZXNzYXJ5IHRvIHR5cGUge3peTX0gdG8gZ2V0IHRoZSBjdXJzb3IgbGluZSBiYWNrIHRvIHRo ZSB0b3Agb2YgdGhlIHNjcmVlbi4NCisrDQorKw0KKysNCisrDQorKw0KKysNCisrDQorKw0KKysN CisrDQorK1NlY3Rpb24gMTM6DQorK1VwIHVudGlsIHRoaXMgcG9pbnQsIHRoZSB0dXRvcmlhbCBo YXMgYWx3YXlzIHRyaWVkIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZSBmaXJzdA0KKytsaW5lIG9mIGVh Y2ggc2NyZWVuIGhhcyBvbiBpdCB0aGUgc2VjdGlvbiBudW1iZXIgYW5kIGEgbGlzdCBvZiB0aGUg Y29tbWFuZHMNCisrY292ZXJlZCBpbiB0aGF0IHNlY3Rpb24uICBUaGlzIHdpbGwgbm8gbG9uZ2Vy IGJlIHN0cmljdGx5IG1haW50YWluZWQuICBJZiB5b3UNCisrd2FudCB0aGUgc2VjdGlvbiBsaW5l IGF0IHRoZSB0b3Agb2YgdGhlIHNjcmVlbiwgeW91IG5vdyBrbm93IGVub3VnaCBjb21tYW5kcyB0 bw0KKytkbyBpdCBlYXNpbHk6IGRvIHteTX0gb3Igey19IHVudGlsIHRoZSBjdXJzb3IgaXMgb24g dGhlIHNlY3Rpb24gbGluZSBhbmQNCisrdGhlbiB7el5NfS4gIEFsc28sIGZyb20gdGhpcyBwb2lu dCBvbiwgaXQgbWF5IG5vdCBiZSB0aGUgY2FzZSB0aGF0IGEge15GfSB3aWxsDQorK3B1dCB5b3Ug YXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbmV4dCBzZWN0aW9uLiAgVGhlcmVmb3JlLCBiZSBhd2Fy ZSBvZiB3aGVyZSB5b3UNCisrYXJlIGluIHRoZSBmaWxlIGFzIHdlIGxvb2sgYXQgb3RoZXIgY29t bWFuZHMuICBZb3UgbWF5IGhhdmUgdG8gZmluZCB5b3VyIHdheQ0KKytiYWNrIHRvIGEgcGFydGlj dWxhciBzZWN0aW9uIHdpdGhvdXQgYW55IGhlbHAgZnJvbSB0aGUgdHV0b3JpYWwuICBJZiB5b3Ug ZG8gbm90DQorK2ZlZWwgY29tZm9ydGFibGUgd2l0aCB0aGlzLCB0aGVuIGl0IGlzIHN1Z2dlc3Rl ZCB0aGF0IHlvdSBwcmFjdGljZSBtb3ZpbmcgZnJvbQ0KKytzZWN0aW9uIDEgdG8gc2VjdGlvbiAx MywgYmFjayBhbmQgZm9ydGgsIHVzaW5nIHteTX0sIHstfSwge15GfSwgYW5kIHteQn0NCisrY29t bWFuZHMgZm9yIGEgd2hpbGUuDQorKw0KKytBbHNvIG1ha2UgbGliZXJhbCB1c2Ugb2YgdGhlIG1h cmsgY29tbWFuZCB7bX06IGlmLCBmb3IgZXhhbXBsZSwgeW91IG1ha2UgYQ0KKytoYWJpdCBvZiB1 c2luZyB7bXp9IHRvIG1hcmsgeW91ciBjdXJyZW50IGxvY2F0aW9uIGluIHRoZSBmaWxlLCB0aGVu IHlvdSB3aWxsDQorK2Fsd2F5cyBiZSBhYmxlIHRvIHJldHVybiB0byB0aGF0IGxvY2F0aW9uIHdp dGggeyd6fSBpZiB0aGUgZWRpdG9yIGRvZXMNCisrc29tZXRoaW5nIHN0cmFuZ2UgYW5kIHlvdSBo YXZlIG5vIGlkZWEgd2hlcmUgeW91IGFyZSBvciB3aGF0IGhhcHBlbmVkLg0KKysNCisrQW5kIGZp bmFsbHksIHRoZSBwcm9zY3JpcHRpb24gYWdhaW5zdCBleHBlcmltZW50YXRpb24gaXMgaGVyZWJ5 IGxpZnRlZDogcGxheQ0KKyt3aXRoIHRoZSBlZGl0b3IuICBGZWVsIGZyZWUgdG8gdHJ5IG91dCB2 YXJpYXRpb25zIG9uIHRoZSBjb21tYW5kcyBhbmQgbW92ZQ0KKythcm91bmQgaW4gdGhlIGZpbGUu ICBCeSB0aGlzIHRpbWUgeW91IHNob3VsZCBiZSBhYmxlIHRvIHJlY292ZXIgZnJvbSBhbnkgZ3Jv c3MNCisrZXJyb3JzLg0KKysNCisrU2VjdGlvbiAxNDoge15FfSB7Xll9IHteRH0ge15VfQ0KKytM ZXQgdXMgbm93IGxvb2sgYXQgYSBmZXcgb3RoZXIgY29tbWFuZHMgZm9yIG1vdmluZyBhcm91bmQg aW4gdGhlIGZpbGUsIGFuZA0KKyttb3ZpbmcgdGhlIGZpbGUgYXJvdW5kIG9uIHRoZSBzY3JlZW4u ICBOb3RlIHRoYXQgdGhlIGNvbW1hbmRzIHdlIGhhdmUgYWxyZWFkeQ0KKytsb29rZWQgYXQgYXJl IHN1ZmZpY2llbnQ6IHlvdSByZWFsbHkgZG9uJ3QgbmVlZCBhbnkgbW9yZSBjb21tYW5kcyBmb3Ig bG9va2luZw0KKytpbiBhIGZpbGUuICBUaGUgZm9sbG93aW5nIGNvbW1hbmRzIGFyZSBub3QgYWJz b2x1dGVseSBuZWNlc3NhcnkuICBIb3dldmVyLA0KKyt0aGV5IGNhbiBtYWtlIGVkaXRpbmcgbW9y ZSBjb252ZW5pZW50LCBhbmQgeW91IHNob3VsZCB0YWtlIG5vdGUgb2YgdGhlaXINCisrZXhpc3Rl bmNlLiAgQnV0IGl0IHdvdWxkIGJlIHBlcmZlY3RseSB2YWxpZCB0byBkZWNpZGUgdG8gaWdub3Jl IHRoZW0gb24gdGhpcw0KKytmaXJzdCBwYXNzOiB5b3UgY2FuIGxlYXJuIHRoZW0gbGF0ZXIgd2hl biB5b3Ugc2VlIGEgbmVlZCBmb3IgdGhlbSwgaWYgeW91IGV2ZXINCisrZG8uDQorKw0KKytGaXJz dCwgbGV0J3MgY2xlYXIgdXAgc29tZSBwb3RlbnRpYWxseSBjb25mdXNpbmcgbGFuZ3VhZ2UuICBJ biBhdCBsZWFzdCBvbmUNCisrcGxhY2UgaW4gdGhlIG9mZmljaWFsIGRvY3VtZW50ICgnQW4gSW50 cm9kdWN0aW9uIHRvIERpc3BsYXkgRWRpdGluZyB3aXRoIFZpJw0KKytieSBXaWxsaWFtIEpveSwg YW5kIE1hcmsgSG9ydG9uLCBTZXB0ZW1iZXIgMTk4MCksIHRoZSBleHByZXNzaW9uICJ0byBzY3Jv bGwNCisrZG93biB0ZXh0IiBtZWFucyB0aGF0IHRoZSBjdXJzb3IgaXMgbW92ZWQgZG93biBpbiB5 b3VyIGZpbGUuICBIb3dldmVyLCBub3RlDQorK3RoYXQgdGhpcyBtYXkgcmVzdWx0IGluIHRoZSB0 ZXh0IG9uIHRoZSBzY3JlZW4gbW92aW5nIFVQLiAgVGhpcyB1c2Ugb2YgdGhlDQorK3dvcmQgJ3Nj cm9sbCcgcmVmZXJzIHRvIHRoZSBhY3Rpb24gb2YgdGhlIGN1cnNvciB3aXRoaW4gdGhlIGZpbGUu ICBIb3dldmVyLA0KKythbm90aGVyIGxlZ2l0aW1hdGUgdXNlIG9mIHRoZSB3b3JkIHJlZmVycyB0 byB0aGUgYWN0aW9uIG9mIHRoZSB0ZXh0IG9uIHRoZQ0KKytzY3JlZW4uICBUaGF0IGlzLCBpZiB0 aGUgbGluZXMgb24geW91ciBzY3JlZW4gbW92ZSB1cCB0b3dhcmQgdGhlIHRvcCBvZiB0aGUNCisr c2NyZWVuLCB0aGlzIHdvdWxkIGJlICdzY3JvbGxpbmcgdGhlIHNjcmVlbiB1cCcuICBJZiB0aGUg bGluZXMgbW92ZSBkb3duDQorK3Rvd2FyZCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4sIHRoaXMg d291bGQgYmUgcmVmZXJlZCB0byBhcyBzY3JvbGxpbmcgZG93bi4NCisrDQorK0kgaGF2ZSB0cmll ZCB0byBtYWludGFpbiB0aGUgZm9sbG93aW5nIGphcmdvbjogJ3Njcm9sbGluZycgcmVmZXJzIHRv IHdoYXQgdGhlDQorK3RleHQgZG9lcyBvbiB0aGUgc2NyZWVuLCBub3QgdG8gd2hhdCB0aGUgY3Vy c29yIGRvZXMgd2l0aGluIHRoZSBmaWxlLiAgRm9yIHRoZQ0KKytsYXR0ZXIgSSB3aWxsIHJlZmVy IHRvIHRoZSBjdXJzb3IgJ21vdmluZycsIG9yIHRvICdtb3ZpbmcgdGhlIGN1cnNvcicuICBJDQor K3JlYWxpemUgdGhhdCB0aGlzIGlzIG5vdCBuZWNlc3NhcmlseSBjb25zaXN0ZW50IHdpdGggSm95 IGFuZCBIb3J0b24sIGJ1dCB0aGV5DQorK3dlcmUgd3JvbmcuDQorKw0KKyt7XkV9IHNjcm9sbHMg dGhlIHdob2xlIHNjcmVlbiB1cCBvbmUgbGluZSwga2VlcGluZyB0aGUgY3Vyc29yIG9uIHRoZSBz YW1lIGxpbmUsDQorK2lmIHBvc3NpYmxlLiAgSG93ZXZlciwgaWYgdGhlIGN1cnNvciBsaW5lIGlz IHRoZSBmaXJzdCBsaW5lIG9uIHRoZSBzY3JlZW4sIHRoZW4NCisrdGhlIGN1cnNvciBpcyBtb3Zl ZCB0byB0aGUgbmV4dCBsaW5lIGluIHRoZSBmaWxlLiAgVHJ5IHR5cGluZyB7XkV9Lg0KKysNCisr e15ZfSBzY3JvbGxzIHRoZSBzY3JlZW4gZG93biBvbmUgbGluZSwga2VlcGluZyB0aGUgY3Vyc29y IG9uIHRoZSBzYW1lIGxpbmUsIGlmDQorK3Bvc3NpYmxlLiAgSG93ZXZlciwgaWYgdGhlIGN1cnNv ciBsaW5lIGlzIHRoZSBsYXN0IGxpbmUgb24gdGhlIHNjcmVlbiwgdGhlbiB0aGUNCisrY3Vyc29y IGlzIG1vdmVkIHRvIHRoZSBwcmV2aW91cyBsaW5lIGluIHRoZSBmaWxlLiAgVHJ5IGl0Lg0KKysN Cisre15EfSBtb3ZlcyB0aGUgY3Vyc29yIGRvd24gaW50byB0aGUgZmlsZSwgc2Nyb2xsaW5nIHRo ZSBzY3JlZW4gdXAuDQorKw0KKyt7XlV9IG1vdmVzIHRoZSBjdXJzb3IgdXAgaW50byB0aGUgZmls ZSwgYWxzbyBzY3JvbGxpbmcgdGhlIHNjcmVlbiBpZiB0aGUNCisrdGVybWluYWwgeW91IGFyZSBv biBoYXMgdGhlIHJldmVyc2Ugc2Nyb2xsIGNhcGFiaWxpdHkuICBPdGhlcndpc2UgdGhlDQorK3Nj cmVlbiBpcyByZXBhaW50ZWQuDQorKw0KKytOb3RlIHRoYXQge15FfSBhbmQge15ZfSBtb3ZlIHRo ZSBjdXJzb3Igb24gdGhlIHNjcmVlbiB3aGlsZSB0cnlpbmcgdG8ga2VlcCB0aGUNCisrY3Vyc29y IGF0IHRoZSBzYW1lIHBsYWNlIGluIHRoZSBmaWxlIChpZiBwb3NzaWJsZTogaG93ZXZlciwgdGhl IGN1cnNvciBjYW4NCisrbmV2ZXIgbW92ZSBvZmYgc2NyZWVuKSwgd2hpbGUge15EfSBhbmQge15V fSBrZWVwIHRoZSBjdXJzb3IgYXQgdGhlIHNhbWUgcGxhY2UNCisrb24gdGhlIHNjcmVlbiB3aGls ZSBtb3ZpbmcgdGhlIGN1cnNvciB3aXRoaW4gdGhlIGZpbGUuDQorKw0KKytTZWN0aW9uIDE1OiB7 LyAuLiAvXk19DQorKw0KKytBbm90aGVyIHdheSB0byBwb3NpdGlvbiB5b3Vyc2VsZiBpbiB0aGUg ZmlsZSBpcyBieSBnaXZpbmcgdGhlIGVkaXRvciBhIHN0cmluZw0KKyt0byBzZWFyY2ggZm9yLiAg VHlwZSB0aGUgZm9sbG93aW5nOiB7L0hlcmUgMS9eTX0gYW5kIHRoZSBjdXJzb3Igc2hvdWxkIGVu ZCB1cA0KKytyaWdodCAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5oZXJlIF4uICBOb3cgdHlw ZSB7L1NlY3Rpb24gMTU6L15NfSBhbmQgdGhlDQorK2N1cnNvciB3aWxsIGVuZCB1cCBvdmVyL29u IC4uLi4uLi4uLi4uLi4uLi4uLi4uLmhlcmUgXi4gIE5vdyB0eXBlIHsvL15NfSBhbmQNCisrb2Jz ZXJ2ZSB0aGF0IHRoZSBjdXJzb3IgaXMgbm93IG92ZXIgdGhlIGNhcGl0YWwgUyBmaXZlIGxpbmVz IGFib3ZlIHRoaXMgbGluZS4NCisrVHlwaW5nIHsvL15NfSBzZXZlcmFsIG1vcmUgdGltZXMgd2ls bCBib3VuY2UgdGhlIGN1cnNvciBiYWNrIGFuZCBmb3J0aCBiZXR3ZWVuDQorK3RoZSB0d28gb2Nj dXJyZW5jZXMgb2YgdGhlIHN0cmluZy4gIEluIG90aGVyIHdvcmRzLCB3aGVuIHlvdSB0eXBlIGEg c3RyaW5nDQorK2JldHdlZW4gdGhlIHR3byBzbGFzaGVzLCBpdCBpcyBzZWFyY2hlZCBmb3IuICBU eXBpbmcgdGhlIHNsYXNoZXMgd2l0aCBub3RoaW5nDQorK2JldHdlZW4gdGhlbSBhY3RzIGFzIGlm IHlvdSBoYWQgdHlwZWQgdGhlIHByZXZpb3VzIHN0cmluZyBhZ2Fpbi4NCisrDQorK09ic2VydmUg dGhhdCB0aGUgc3RyaW5nIHlvdSB0eXBlIGJldHdlZW4gdGhlIHR3byBzbGFzaGVzIGlzIGVudGVy ZWQgb24gdGhlDQorK2JvdHRvbSBsaW5lIG9mIHRoZSBzY3JlZW4uICBOb3cgdHlwZSB7L1NlYXJj aCBmb3IgeCAvXk19IGV4Y2VwdCByZXBsYWNlIHRoZSAneCcNCisraW4gdGhlIHN0cmluZyB3aXRo IHNvbWUgb3RoZXIgY2hhcmFjdGVyLCBzYXkgJ2InLiAgVGhlIG1lc3NhZ2UgIlBhdHRlcm4gbm90 DQorK2ZvdW5kIiBzaG91bGQgYXBwZWFyIG9uIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi4gIElm IHlvdSBoYWRuJ3QgcmVwbGFjZWQgdGhlDQorKyd4JywgdGhlbiB5b3Ugd291bGQgaGF2ZSBmb3Vu ZCB0aGUgc3RyaW5nLiAgVHJ5IGl0Lg0KKysNCisrU2VjdGlvbiAxNjogez8gLi4gP15NfSB7bn0g KHNlYXJjaCBzdHJpbmdzOiBeICQpDQorKw0KKytXaGVuIHlvdSBzdXJyb3VuZCB0aGUgc291Z2h0 LWZvciBzdHJpbmcgd2l0aCBzbGFzaGVzIGFzIGluIHsvU2VhcmNoL30sIHRoZQ0KKytmaWxlIGlz IHNlYXJjaGVkIGJlZ2lubmluZyBmcm9tIHlvdXIgY3VycmVudCBwb3NpdGlvbiBpbiB0aGUgZmls ZS4gIElmIHRoZQ0KKytzdHJpbmcgaXMgbm90IGZvdW5kIGJ5IHRoZSBlbmQgb2YgdGhlIGZpbGUs IHNlYXJjaGluZyBpcyByZXN0YXJ0ZWQgYXQgdGhlDQorK2JlZ2lubmluZyBvZiB0aGUgZmlsZS4g IEhvd2V2ZXIsIGlmIHlvdSBkbyB3YW50IHRoZSBzZWFyY2ggdG8gZmluZCB0aGUNCisrUFJFVklP VVMgcmF0aGVyIHRoYW4gdGhlIE5FWFQgb2NjdXJyZW5jZSBvZiB0aGUgc3RyaW5nLCBzdXJyb3Vu ZCB0aGUgc3RyaW5nDQorK3dpdGggcXVlc3Rpb24gbWFya3MgaW5zdGVhZCBvZiBzbGFzaCBtYXJr cy4NCisrDQorK0JlbG93IGFyZSBzZXZlcmFsIG9jY3VycmVuY2VzIG9mIHRoZSBzYW1lIHN0cmlu Zy4gIA0KKytIZXJlIDIgICAgICAgICAgICBIZXJlIDIgSGVyZSAyDQorKyBIZXJlIDIgICAgICAg ICAgICAgSGVyZSAyLg0KKytPYnNlcnZlIHRoZSBlZmZlY3Qgb2YgdGhlIGZvbGxvd2luZyBzZWFy Y2ggY29tbWFuZHMgKHRyeSB0aGVtIGluIHRoZQ0KKytzZXF1ZW5jZSBzaG93bik6DQorK3svSGVy ZSAyL15NfSAgey8vXk19ICB7Pz9eTX0NCisrey9eSGVyZSAyL15NfSAgey8vXk19ICB7Pz9eTX0N Cisrey9IZXJlIDIkL15NfSAgey8vXk19ICB7Pz9eTX0NCisrDQorK1RoZSBmaXJzdCBjb21tYW5k IGxvb2tzIGZvciB0aGUgbmV4dCBvY2N1cnJlbmNlIG9mIHRoZSBzdHJpbmcgJ0hlcmUgMicuDQor K0hvd2V2ZXIgdGhlIHNlY29uZCBsaW5lIG9mIGNvbW1hbmRzIGxvb2tzIGZvciBhbiBvY2N1cnJl bmNlIG9mICdIZXJlIDInIHRoYXQNCisraXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4g IFdoZW4gdGhlIHVwLWFycm93IGlzIHRoZSBmaXJzdCBjaGFyYWN0ZXIgb2YNCisrYSBzZWFyY2gg c3RyaW5nIGl0IHN0YW5kcyBmb3IgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZS4gIFdoZW4gdGhl IGRvbGxhci1zaWduDQorK2lzIHRoZSBsYXN0IGNoYXJhY3RlciBvZiB0aGUgc2VhcmNoIHN0cmlu ZyBpdCBzdGFuZHMgZm9yIHRoZSBlbmQgb2YgdGhlIGxpbmUuDQorK1RoZXJlZm9yZSwgdGhlIHRo aXJkIGxpbmUgb2YgY29tbWFuZHMgc2VhcmNoZXMgZm9yIHRoZSBzdHJpbmcgb25seSB3aGVuIGl0 IGlzDQorK2F0IHRoZSBlbmQgb2YgdGhlIGxpbmUuICBTaW5jZSB0aGVyZSBpcyBvbmx5IG9uZSBw bGFjZSB0aGUgc3RyaW5nIGJlZ2lucyBhDQorK2xpbmUsIGFuZCBvbmx5IG9uZSBwbGFjZSB0aGUg c3RyaW5nIGVuZHMgdGhlIGxpbmUsIHN1YnNlcXVlbnQgey8vXk19IGFuZA0KKyt7Pz9eTX0gd2ls bCBmaW5kIHRob3NlIHNhbWUgc3RyaW5ncyBvdmVyIGFuZCBvdmVyLg0KKysNCisrVGhlIHtufSBj b21tYW5kIHdpbGwgZmluZCB0aGUgbmV4dCBvY2N1cnJlbmNlIG9mIHRoZSAvIG9yID8gc2VhcmNo DQorK3N0cmluZy4gIFRyeSB7L0hlcmUgMi9eTX0gZm9sbG93ZWQgYnkgc2V2ZXJhbCB7bn0gYW5k IG9ic2VydmUgdGhlDQorK2VmZmVjdC4gIFRoZW4gdHJ5IHs/P15NfSBmb2xsb3dlZCBieSBzZXZl cmFsIHtufS4gIFRoZSB7bn0gY29tbWFuZA0KKytyZW1lbWJlcnMgdGhlIGRpcmVjdGlvbiBvZiB0 aGUgbGFzdCBzZWFyY2guICBJdCBpcyBqdXN0IGEgd2F5IHRvIHNhdmUgYQ0KKytmZXcga2V5c3Ry b2tlcy4NCisrDQorK1NlY3Rpb24gMTc6IFwgYW5kIG1hZ2ljLWNoYXJhY3RlcnMgaW4gc2VhcmNo IHN0cmluZ3MNCisrDQorK05vdyB0eXBlIHsvSGVyZSAzJC9eTX0uICBZb3UgbWlnaHQgZXhwZWN0 IHRoZSBjdXJzb3IgdG8gZW5kIHVwDQorK3JpZ2h0Li4uLi4uXiBoZXJlLiAgSG93ZXZlciwgeW91 IHdpbGwgZ2V0ICJQYXR0ZXJuIG5vdCBmb3VuZCIgYXQgdGhlIGJvdHRvbSBvZg0KKyt0aGUgc2Ny ZWVuLiAgUmVtZW1iZXIgdGhhdCB0aGUgZG9sbGFyLXNpZ24gc3RhbmRzIGZvciB0aGUgZW5kIG9m IHRoZSBsaW5lLg0KKytTb21laG93LCB5b3UgbXVzdCB0ZWxsIHZpIHRoYXQgeW91IGRvIG5vdCB3 YW50IHRoZSBlbmQgb2YgdGhlIGxpbmUsIGJ1dCBhDQorK2RvbGxhci1zaWduLiAgSW4gb3RoZXIg d29yZHMsIHlvdSBtdXN0IHRha2UgYXdheSB0aGUgc3BlY2lhbCBtZWFuaW5nIHRoYXQgdGhlDQor K2RvbGxhci1zaWduIGhhcyBmb3IgdGhlIHNlYXJjaCBtZWNoYW5pc20uICBZb3UgZG8gdGhpcyAo Zm9yIGFueSBzcGVjaWFsDQorK2NoYXJhY3RlciwgaW5jbHVkaW5nIHRoZSB1cC1hcnJvdyBeKSBi eSBwdXR0aW5nIGEgYmFjay1zbGFzaCAoJ1wnLCBub3QgJy8nKSBpbg0KKytmcm9udCBvZiB0aGUg Y2hhcmFjdGVyLg0KKysNCisrTm93IHRyeSB7L0hlcmUgM1wkL15NfSBhbmQgeW91IHNob3VsZCBl bmQgdXAgbmluZSBsaW5lcyBhYm92ZSB0aGlzIG9uZS4gIFRyeQ0KKyt7Ly9eTX0gYW5kIG5vdGUg dGhhdCBpdCByZXR1cm5zIHlvdSB0byB0aGUgc2FtZSBwbGFjZSwgYW5kIG5vdCB0byB0aGUgZmly c3QNCisrbGluZSBvZiB0aGlzIHBhcmFncmFwaDogdGhlIGJhY2stc2xhc2ggY2hhcmFjdGVyIGlz IG5vdCBwYXJ0IG9mIHRoZSBzZWFyY2gNCisrc3RyaW5nIGFuZCB3aWxsIG5vdCBiZSBmb3VuZC4g IFRvIGZpbmQgdGhlIHN0cmluZyBpbiB0aGUgZmlyc3QgbGluZSBvZiB0aGlzDQorK3BhcmFncmFw aCwgdHlwZSB7L0hlcmUgM1xcXCQvXk19LiAgVGhlcmUgYXJlIHRocmVlIGJhY2stc2xhc2hlczog dGhlIGZpcnN0IHRha2VzDQorK2F3YXkgdGhlIHNwZWNpYWwgbWVhbmluZyBmcm9tIHRoZSBzZWNv bmQsIGFuZCB0aGUgdGhpcmQgdGFrZXMgYXdheSB0aGUgc3BlY2lhbA0KKyttZWFuaW5nIGZyb20g dGhlIGRvbGxhci1zaWduLg0KKysNCisrRm9sbG93aW5nIGlzIGEgbGlzdCBvZiB0aGUgY2hhcmFj dGVycyB0aGF0IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBpbiBzZWFyY2gNCisrc3RyaW5ncy4gIElm IHlvdSB3aXNoIHRvIGZpbmQgYSBzdHJpbmcgY29udGFpbmluZyBvbmUgb2YgdGhlc2UgY2hhcmFj dGVycywgeW91DQorK3dpbGwgaGF2ZSB0byBiZSBwcmVjZWRlIHRoZSBjaGFyYWN0ZXIgd2l0aCBh IGJhY2tzbGFzaC4gIFRoZXNlIGNoYXJhY3RlcnMgYXJlDQorK2NhbGxlZCBtYWdpYyBjaGFyYWN0 ZXJzIGJlY2F1c2Ugb2YgdGhlIGZ1biBhbmQgZ2FtZXMgeW91IGNhbiBoYXZlIHdpdGggdGhlbQ0K KythbmQgdGhleSBjYW4gaGF2ZSB3aXRoIHlvdSwgaWYgeW91IGFyZW4ndCBhd2FyZSBvZiB3aGF0 IHRoZXkgZG8uICANCisrDQorKyAgXiAtICh1cC1hcnJvdykgICAgICAgYmVnaW5uaW5nIG9mIGEg bGluZQ0KKysgICQgLSAoZG9sbGFyLXNpZ24pICAgIGVuZCBvZiBhIGxpbmUNCisrICAuIC0gKHBl cmlvZCkgICAgICAgICBtYXRjaGVzIGFueSBjaGFyYWN0ZXINCisrICBcIC0gKGJhY2tzbGFudCkg ICAgICB0aGUgZXNjYXBlIGNoYXJhY3RlciBpdHNlbGYNCisrICBbIC0gKHNxdWFyZSBicmFja2V0 KSBmb3IgZmluZGluZyBwYXR0ZXJucyAoc2VlIHNlY3Rpb24gI1NFQVJDSCkNCisrICBdIC0gKHNx dWFyZSBicmFja2V0KSBkaXR0bw0KKysgICogLSAoYXN0ZXJpc2spICAgICAgIGRpdHRvDQorKw0K KytXaXRob3V0IHRyeWluZyB0byBleHBsYWluIGl0IGhlcmUsIG5vdGUgdGhhdCB7OnNldCBub21h Z2ljXk19IHR1cm5zIG9mZiB0aGUNCisrc3BlY2lhbCBtZWFuaW5ncyBvZiBhbGwgYnV0IHRoZSBe IHVwLWFycm93LCAkIGRvbGxhci1zaWduLCBhbmQgYmFja3NsYXNoDQorK2NoYXJhY3RlcnMuDQor Kw0KKytTZWN0aW9uIDE4OiB7OiAoY29sb24gY29tbWFuZHMpfSB7Wlp9DQorKw0KKytJbiB0aGlz IHNlY3Rpb24gd2Ugd2lsbCBkaXNjdXNzIGdldHRpbmcgaW50byBhbmQgb3V0IG9mIHRoZSBlZGl0 b3IgaW4gbW9yZQ0KKytkZXRhaWwuICBJZiB5b3UgYXJlIGVkaXRpbmcgYSBmaWxlIGFuZCB3aXNo IHRvIHNhdmUgdGhlIHJlc3VsdHMgdGhlIGNvbW1hbmQNCisrc2VxdWVuY2Ugezp3Xk19IHdyaXRl cyB0aGUgY3VycmVudCBjb250ZW50cyBvZiB0aGUgZmlsZSBvdXQgdG8gZGlzaywgdXNpbmcgdGhl DQorK2ZpbGUgbmFtZSB5b3UgdXNlZCB3aGVuIHlvdSBpbnZva2VkIHRoZSBlZGl0b3IuICBUaGF0 IGlzLCBpZiB5b3UgYXJlIGF0IHRoZQ0KKytjb21tYW5kIGxldmVsIGluIFVuaXgsIGFuZCB5b3Ug aW52b2tlIHZpIHdpdGgge3ZpIGZvb30gd2hlcmUgZm9vIGlzIHRoZSBuYW1lDQorK29mIHRoZSBm aWxlIHlvdSB3aXNoIHRvIGVkaXQsIHRoZW4gZm9vIGlzIHRoZSBuYW1lIG9mIHRoZSBmaWxlIHVz ZWQgYnkgdGhlDQorK3s6d15NfSBjb21tYW5kLg0KKysNCisrSWYgeW91IGFyZSBkb25lLCB0aGUg d3JpdGUgYW5kIHF1aXQgY29tbWFuZHMgY2FuIGJlIGNvbWJpbmVkIGludG8gYSBzaW5nbGUNCisr Y29tbWFuZCB7OndxXk19LiAgQW4gZXZlbiBzaW1wbGVyIHdheSBpcyB0aGUgY29tbWFuZCB7Wlp9 ICh0d28gY2FwaXRhbCBaJ3MpLg0KKysNCisrSWYsIGZvciBzb21lIHJlYXNvbiwgeW91IHdpc2gg dG8gZXhpdCB3aXRob3V0IHNhdmluZyBhbnkgY2hhbmdlcyB5b3UgaGF2ZSBtYWRlLA0KKyt7OnEh Xk19IGRvZXMgdGhlIHRyaWNrLiAgSWYgeW91IGhhdmUgbm90IG1hZGUgYW55IGNoYW5nZXMsIHRo ZSBleGNsYW1hdGlvbg0KKytwb2ludCBpcyBub3QgbmVjZXNzYXJ5OiB7OnFeTX0uICBWaSBpcyBw cmV0dHkgZ29vZCBhYm91dCBub3QgbGV0dGluZyB5b3UNCisrZ2V0IG91dCB3aXRob3V0IHdhcm5p bmcgeW91IHRoYXQgeW91IGhhdmVuJ3Qgc2F2ZWQgeW91ciBmaWxlLg0KKysNCisrV2UgaGF2ZSBt ZW50aW9uZWQgYmVmb3JlIHRoYXQgeW91IGFyZSBjdXJyZW50bHkgaW4gdGhlIHZpIGVkaXRvciwg ZWRpdGluZyBhDQorK2ZpbGUuICBJZiB5b3Ugd2lzaCB0byBzdGFydCB0aGUgdHV0b3JpYWwgb3Zl ciBmcm9tIHRoZSB2ZXJ5IGJlZ2lubmluZywgeW91DQorK2NvdWxkIHtaWn0sIGFuZCB0aGVuIHR5 cGUge3ZpLnR1dCBiZWdpbm5lcn0gaW4gcmVzcG9uc2UgdG8gdGhlIFVuaXggcHJvbXB0Lg0KKytU aGlzIHdpbGwgY3JlYXRlIGEgZnJlc2ggY29weSBvZiB0aGlzIGZpbGUgZm9yIHlvdSwgd2hpY2gg bWlnaHQgYmUgbmVjZXNzYXJ5IA0KKytpZiB5b3UgYWNjaWRlbnRhbGx5IGRlc3Ryb3llZCB0aGUg Y29weSB5b3Ugd2VyZSB3b3JraW5nIHdpdGguICBKdXN0IGRvIGEgDQorK3NlYXJjaCBmb3IgdGhl IGxhc3Qgc2VjdGlvbiB5b3Ugd2VyZSBpbjogZS5nLiAgey9TZWN0aW9uIDE4Oi9eTXpeTX0uDQor Kw0KKytTZWN0aW9uIDE5OiB7SH0ge019IHtMfQ0KKysNCisrSGVyZSBhcmUgYSBmZXcgbW9yZSBj b21tYW5kcyB0aGF0IHdpbGwgbW92ZSB5b3UgYXJvdW5kIG9uIHRoZSBzY3JlZW4uICBBZ2FpbiwN CisrdGhleSBhcmUgbm90IGFic29sdXRlbHkgbmVjZXNzYXJ5LCBidXQgdGhleSBjYW4gbWFrZSBz Y3JlZW4gcG9zaXRpb25pbmcgZWFzaWVyOg0KKysNCisre0h9IC0gcHV0cyB0aGUgY3Vyc29yIGF0 IHRoZSB0b3Agb2YgdGhlIHNjcmVlbiAodGhlICdob21lJyBwb3NpdGlvbikNCisrDQorK3tNfSAt IHB1dHMgdGhlIGN1cnNvciBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzY3JlZW4NCisrDQorK3tMfSAt IHB1dHMgdGhlIGN1cnNvciBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uDQorKw0KKytUcnkg dHlwaW5nIHtITUx9IGFuZCB3YXRjaCB0aGUgY3Vyc29yLg0KKysNCisrVHJ5IHR5cGluZyB7NUhN NUx9IGFuZCBub3RlIHRoYXQgNUggcHV0cyB5b3UgZml2ZSBsaW5lcyBmcm9tIHRoZSB0b3Agb2Yg dGhlDQorK3NjcmVlbiwgYW5kIDVMIHB1dHMgeW91IGZpdmUgbGluZXMgZnJvbSB0aGUgYm90dG9t IG9mIHRoZSBzY3JlZW4uDQorKw0KKytTZWN0aW9uIDIwOiB7d30ge2J9IHswfSB7V30ge0J9IHtl fSB7RX0geyd9IHtgfQ0KKysNCisrVXAgdG8gdGhpcyBwb2ludCB3ZSBoYXZlIGNvbmNlbnRyYXRl ZCBvbiBwb3NpdGlvbmluZyBpbiB0aGUgZmlsZSwgYW5kDQorK3Bvc2l0aW9uaW5nIG9uIHRoZSBz Y3JlZW4uICBOb3cgbGV0J3MgbG9vayBhdCBwb3NpdGlvbmluZyBpbiBhIGxpbmUuICBQdXQgdGhl DQorK2N1cnNvciBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmb2xsb3dpbmcgbGluZSBhbmQgdHlw ZSB7el5NfToNCisrDQorK1RoaXMgaXMgYSB0ZXN0IGxpbmU6IHlvdXIgY3Vyc29yIHNob3VsZCBp bml0aWFsbHkgYmUgYXQgaXRzIGJlZ2lubmluZy4NCisrDQorK1RoZSB0ZXN0IGxpbmUgc2hvdWxk IG5vdyBiZSBhdCB0aGUgdG9wIG9mIHlvdXIgc2NyZWVuLiBUeXBlIHt3fSBzZXZlcmFsIHRpbWVz Lg0KKytOb3RlIHRoYXQgaXQgbW92ZXMgeW91IGZvcndhcmQgdG8gdGhlIGJlZ2lubmluZyBvZiB0 aGUgbmV4dCB3b3JkLiAgTm93IHR5cGUNCisre2J9IChiYWNrIHRvIHRoZSBiZWdpbm5pbmcgb2Yg dGhlIHdvcmQpIHNldmVyYWwgdGltZXMgdGlsbCB5b3UgYXJlIGF0IHRoZQ0KKytiZWdpbm5pbmcg b2YgdGhlIGxpbmUuICAoSWYgeW91IGFjY2lkZW50YWxseSB0eXBlIHRvbyBtYW55IHtifSwgdHlw ZSB7d30gdW50aWwNCisreW91IGFyZSBvbiB0aGUgYmVnaW5uaW5nIG9mIHRoZSBsaW5lIGFnYWlu LikgVHlwZSB7d3d3d3d9IChmaXZlIHcncykgYW5kIG5vdGUNCisrdGhhdCB0aGUgY3Vyc29yIGlz IG5vdyBvbiB0aGUgY29sb24gaW4gdGhlIHNlbnRlbmNlLiAgVGhlIGxvd2VyLWNhc2UgdyBjb21t YW5kDQorK21vdmVzIHlvdSBmb3J3YXJkIG9uZSB3b3JkLCBwYXlpbmcgYXR0ZW50aW9uIHRvIGNl cnRhaW4gY2hhcmFjdGVycyBzdWNoIGFzDQorK2NvbG9uIGFuZCBwZXJpb2QgYXMgZGVsaW1pdGVy cyBhbmQgY291bnRpbmcgdGhlbSBhcyB3b3JkcyB0aGVtc2VsdmVzLiAgTm93DQorK3R5cGUgezB9 ICh6ZXJvLCBub3QgbyAnb2gnKTogdGhpcyBtb3ZlcyB5b3UgdG8gdGhlIGJlZ2lubmluZyBvZiB0 aGUgY3VycmVudA0KKytsaW5lLiAgTm93IHR5cGUgezV3fSBhbmQgbm90aWNlIHRoYXQgdGhpcyBo YXMgdGhlIGVmZmVjdCBvZiByZXBlYXRpbmcge3d9IGZpdmUNCisrdGltZXMgYW5kIHRoYXQgeW91 IGFyZSBub3cgYmFjayBvbiB0aGUgY29sb24uICBUeXBlIHswfSAoemVybykgYWdhaW4uICBUbw0K KytpZ25vcmUgdGhlIGRlbGltaXRlcnMgYW5kIHRvIG1vdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0 aGUgbmV4dCB3b3JkIHVzaW5nIG9ubHkNCisrYmxhbmtzLCB0YWJzIGFuZCBjYXJyaWFnZS1yZXR1 cm5zICh0aGVzZSBhcmUgY2FsbGVkIHdoaXRlLXNwYWNlIGNoYXJhY3RlcnMpIHRvDQorK2RlbGlt aXQgdGhlIHdvcmRzLCB1c2UgdGhlIHtXfSBjb21tYW5kOiB1cHBlci1jYXNlIFcuICB7Qn0gdGFr ZXMgeW91IGJhY2sgYQ0KKyt3b3JkIHVzaW5nIHdoaXRlLXNwYWNlIGNoYXJhY3RlcnMgYXMgd29y ZCBkZWxpbWl0ZXJzLg0KKysNCisrTm90ZSB0aGF0IHRoZSBjb21tYW5kcyB7d2JXQn0gZG8gbm90 IHN0b3AgYXQgdGhlIGJlZ2lubmluZyBvciBlbmQgb2YgYSBsaW5lOg0KKyt0aGV5IHdpbGwgY29u dGludWUgdG8gdGhlIG5leHQgd29yZCBvbiB0aGUgbmV4dCBsaW5lIGluIHRoZSBkaXJlY3Rpb24g c3BlY2lmaWVkDQorKyhhIGJsYW5rIGxpbmUgY291bnRzIGFzIGEgd29yZCkuDQorKw0KKytJZiB5 b3UgYXJlIGludGVyZXN0ZWQgaW4gdGhlIEVORCBvZiB0aGUgd29yZCwgYW5kIG5vdCB0aGUgQkVH SU5OSU5HLCB0aGVuIHVzZQ0KKyt0aGUge2V9IGFuZCB7RX0gY29tbWFuZHMuICBUaGVzZSBjb21t YW5kcyBvbmx5IG1vdmUgZm9yd2FyZCBhbmQgdGhlcmUgYXJlIG5vDQorK2NvcnJlc3BvbmRpbmcg J3JldmVyc2Ugc2VhcmNoJyBjb21tYW5kcyBmb3IgdGhlIGVuZCBvZiBhIHdvcmQuDQorKw0KKytB bHNvLCB3ZSBoYXZlIGJlZW4gdXNpbmcgdGhlIHsnfSBjb21tYW5kIHRvIG1vdmUgdGhlIGN1cnNv ciB0byBhIHBvc2l0aW9uIHRoYXQNCisrd2UgaGF2ZSBwcmV2aW91c2x5IG1hcmtlZCB3aXRoIHRo ZSB7bX0gY29tbWFuZC4gIEhvd2V2ZXIsIHBvc2l0aW9uIHRoZSBjdXJzb3INCisraW4gdGhlIG1p ZGRsZSBvZiBhIGxpbmUgKGFueSBsaW5lLCBqdXN0IHBpY2sgb25lKSBhbmQgdHlwZSB7bWt9LCBt YXJraW5nIHRoYXQNCisrcG9zaXRpb24gd2l0aCB0aGUgbGV0dGVyIGsuICBOb3cgdHlwZSBhIGZl dyByZXR1cm5zIHteTX0gYW5kIHR5cGUgeydrfS4NCisrT2JzZXJ2ZSB0aGF0IHRoZSBjdXJzb3Ig aXMgbm93IGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgdGhhdCB5b3UgbWFya2VkLg0KKytO b3cgdHJ5IHtga306IG5vdGUgdGhhdCB0aGlzIGlzIHRoZSByZXZlcnNlIGFwb3N0cm9waGUsIG9y IGJhY2stcXVvdGUsIG9yIGdyYXZlDQorK2FjY2VudCwgb3Igd2hhdGV2ZXIgeW91IHdhbnQgdG8g Y2FsbCBpdC4gIEFsc28gbm90ZSB0aGF0IGl0IG1vdmVzIHlvdSB0byB0aGUNCisrY2hhcmFjdGVy IHRoYXQgd2FzIG1hcmtlZCwgbm90IGp1c3QgdG8gdGhlIGxpbmUgdGhhdCB3YXMgbWFya2VkLg0K KysNCisrSW4gYWRkaXRpb24sIHRoZSB7YGB9IGNvbW1hbmQgd29ya3MganVzdCBsaWtlIHRoZSB7 Jyd9IGNvbW1hbmQgZXhjZXB0IHRoYXQgeW91DQorK2FyZSB0YWtlbiB0byB0aGUgZXhhY3QgY2hh cmFjdGVyLCBub3QganVzdCB0byB0aGUgbGluZS4gIChJJ20gc3RpbGwgbm90DQorK3N1cmUgd2hp Y2ggZXhhY3QgY2hhcmFjdGVyLCBqdXN0IGFzIEknbSBzdGlsbCBub3Qgc3VyZSB3aGljaCBsaW5l LikNCisrDQorK1NlY3Rpb24gMjE6IHtsfSB7a30ge2p9IHtofQ0KKysNCisrVGhlcmUgYXJlIHNl dmVyYWwgY29tbWFuZHMgdG8gbW92ZSBhcm91bmQgb24gdGhlIHNjcmVlbiBvbiBhIGNoYXJhY3Rl ciBieQ0KKytjaGFyYWN0ZXIgYmFzaXM6DQorKw0KKytsIC0gbW92ZXMgdGhlIGN1cnNvciBvbmUg Y2hhcmFjdGVyIHRvIHRoZSBSSUdIVA0KKytrIC0gbW92ZXMgdGhlIGN1cnNvciBVUCBvbmUgbGlu ZQ0KKytqIC0gbW92ZXMgdGhlIGN1cnNvciBET1dOIG9uZSBsaW5lDQorK2ggLSBtb3ZlcyB0aGUg Y3Vyc29yIG9uZSBjaGFyYWN0ZXIgdG8gdGhlIExFRlQNCisrDQorK1NlY3Rpb24gMjI6IHtpfSB7 YX0ge0l9IHtBfSB7b30ge099IF5bIChlc2NhcGUga2V5KQ0KKysNCisrRm9yIHRoaXMgYW5kIGZv bGxvd2luZyBzZWN0aW9ucyB5b3Ugd2lsbCBuZWVkIHRvIHVzZSB0aGUgRVNDQVBFIGtleSBvbiB5 b3VyDQorK3Rlcm1pbmFsLiAgSXQgaXMgdXN1YWxseSBtYXJrZWQgRVNDLiAgU2luY2UgdGhlIGVz Y2FwZSBrZXkgaXMgdGhlIHNhbWUgYXMNCisrdHlwaW5nIHteW30gd2Ugd2lsbCB1c2UgXlsgZm9y IHRoZSBlc2NhcGUga2V5Lg0KKysNCisrUHJvYmFibHkgdGhlIG1vc3Qgb2Z0ZW4gdXNlZCBjb21t YW5kIGluIGFuIGVkaXRvciBpcyB0aGUgaW5zZXJ0IGNvbW1hbmQuICBCZWxvdw0KKythcmUgdHdv IGxpbmVzIG9mIHRleHQsIHRoZSBmaXJzdCBjb3JyZWN0LCB0aGUgc2Vjb25kIGluY29ycmVjdC4g IFBvc2l0aW9uIHlvdXINCisrY3Vyc29yIGF0IHRoZSBiZWdpbm5pbmcgb2YgTGluZSAxIGFuZCB0 eXBlIHt6Xk19Lg0KKysNCisrTGluZSAxOiBUaGlzIGlzIGFuIGV4YW1wbGUgb2YgdGhlIGluc2Vy dCBjb21tYW5kLg0KKytMaW5lIDI6IFRoaXMgaXMgYW4gb2YgdGhlIGluc2VydCBjb21tYW5kLg0K KysNCisrVG8gbWFrZSBsaW5lIDIgbG9vayBsaWtlIGxpbmUgMSwgd2UgYXJlIGdvaW5nIHRvIGlu c2VydCB0aGUgY2hhcmFjdGVycw0KKysnZXhhbXBsZSAnIGJlZm9yZSB0aGUgd29yZCAnb2YnLiAg U28sIG5vdyBtb3ZlIHRoZSBjdXJzb3Igc28gdGhhdCBpdCBpcw0KKytwb3NpdGlvbmVkIG9uIHRo ZSAnbycgb2YgJ29mJy4gIChZb3UgY2FuIGRvIHRoaXMgYnkgdHlwaW5nIHteTX0gdG8gbW92ZQ0K Kyt0byB0aGUgYmVnaW5uaW5nIG9mIGxpbmUgMiwgZm9sbG93ZWQgYnkgezZ3fSBvciB7d3d3d3d3 fSB0byBwb3NpdGlvbiB0aGUgY3Vyc29yDQorK29uIHRoZSB3b3JkICdvZicuKQ0KKysNCisrTm93 IGNhcmVmdWxseSB0eXBlIHRoZSBmb2xsb3dpbmcgc3RyaW5nIGFuZCBvYnNlcnZlIHRoZSBlZmZl Y3RzOg0KKysgIHtpZXhhbXBsZSBeW30gIChyZW1lbWJlcjogXlsgaXMgdGhlIGVzY2FwZSBrZXkp fQ0KKytUaGUge2l9IGJlZ2lucyB0aGUgaW5zZXJ0IG1vZGUsIGFuZCAnZXhhbXBsZSAnIGlzIGlu c2VydGVkIGludG8gdGhlIGxpbmU6IA0KKytiZSBzdXJlIHRvIG5vdGljZSB0aGUgYmxhbmsgaW4g J2V4YW1wbGUgJy4gIFRoZSBeWyBlbmRzIGluc2VydGlvbiBtb2RlLCANCisrYW5kIHRoZSBsaW5l IGlzIHVwZGF0ZWQgdG8gaW5jbHVkZSB0aGUgbmV3IHN0cmluZy4gIExpbmUgMSBzaG91bGQgbG9v ayBleGFjdGx5IA0KKytsaWtlIExpbmUgMi4NCisrDQorK01vdmUgdGhlIGN1cnNvciB0byB0aGUg YmVnaW5uaW5nIG9mIExpbmUgMyBiZWxvdyBhbmQgdHlwZSB7el5NfToNCisrDQorK0xpbmUgMzog VGhlc2UgbGluZXMgYXJlIGV4YW1wbGVzIGZvciB0aGUgJ2EnIGNvbW1hbmQuDQorK0xpbmUgNDog VGhlc2UgbGluZSBhcmUgZXhhbXBsZXMgZm9yIHRoZSAnDQorKw0KKytXZSB3aWxsIGNoYW5nZSBs aW5lIGZvdXIgdG8gbG9vayBsaWtlIGxpbmUgdGhyZWUgYnkgdXNpbmcgdGhlIGFwcGVuZCBjb21t YW5kLg0KKytXZSBuZWVkIHRvIGFwcGVuZCBhbiAncycgdG8gdGhlIHdvcmQgJ2xpbmUnLiAgUG9z aXRpb24gdGhlIGN1cnNvciBvbiB0aGUgJ2UnDQorK29mICdsaW5lJy4gIFlvdSBjYW4gZG8gdGhp cyBpbiBzZXZlcmFsIHdheXMsIG9uZSB3YXkgaXMgdGhlIGZvbGxvd2luZzoNCisrRmlyc3QsIHR5 cGUgey9saW5lIC9eTX0uICBUaGlzIHB1dHMgdXMgb24gdGhlIHdvcmQgJ2xpbmUnIGluIExpbmUg NA0KKysodGhlIGJsYW5rIGluIHRoZSBzZWFyY2ggc3RyaW5nIGlzIGltcG9ydGFudCEpLiAgTmV4 dCwgdHlwZSB7ZX0uICBUaGUgJ2UnIHB1dHMNCisrdXMgYXQgdGhlIGVuZCBvZiB0aGUgd29yZC4g IE5vdywgdHlwZSB7YXNeWyAgKF5bIGlzIHRoZSBlc2NhcGUgY2hhcmFjdGVyKX0uICANCisrVGhl ICdhJyBwdXRzIHVzIGluIGluc2VydCBtb2RlLCBBRlRFUiB0aGUgY3VycmVudCBjaGFyYWN0ZXIu ICBXZSBhcHBlbmRlZCB0aGUgDQorKydzJywgYW5kIHRoZSBlc2NhcGUgXlsgZW5kZWQgdGhlIGlu c2VydCBtb2RlLg0KKysNCisrVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB7aX0gKGluc2VydCkgYW5k IHthfSAoYXBwZW5kKSBpcyB0aGF0IHtpfSBiZWdpbnMNCisraW5zZXJ0aW5nIHRleHQgQkVGT1JF IHRoZSBjdXJzb3IsIGFuZCB7YX0gYmVnaW5zIGluc2VydGluZyBBRlRFUiB0aGUgY3Vyc29yLg0K KysNCisrTm93IHR5cGUge0FhJyBjb21tYW5kLl5bfS4gIFRoZSBjdXJzb3IgaXMgbW92ZWQgdG8g dGhlIGVuZCBvZiB0aGUgbGluZSBhbmQgdGhlDQorK3N0cmluZyBmb2xsb3dpbmcge0F9IGlzIGlu c2VydGVkIGludG8gdGhlIHRleHQuICBMaW5lIDQgc2hvdWxkIG5vdyBsb29rIGxpa2UNCisrbGlu ZSAzLg0KKysNCisrSnVzdCBhcyB7QX0gbW92ZXMgeW91IHRvIHRoZSBlbmQgb2YgdGhlIGxpbmUg dG8gYmVnaW4gaW5zZXJ0aW5nLCB7SX0gd291bGQNCisrYmVnaW4gaW5zZXJ0aW5nIGF0IHRoZSBG Uk9OVCBvZiB0aGUgbGluZS4NCisrDQorK1RvIGJlZ2luIHRoZSBpbnNlcnRpb24gb2YgYSBsaW5l IGFmdGVyIHRoZSBjdXJzb3IgbGluZSwgdHlwZSB7b30uICBUbyBpbnNlcnQgYQ0KKytsaW5lIGJl Zm9yZSB0aGUgY3Vyc29yIGxpbmUsIHR5cGUge099LiAgSW4gb3RoZXIgd29yZHMge28xMjNeW30g aXMgZXF1aXZhbGVudA0KKyt0byB7QV5NMTIzXlt9LCBhbmQge08xMjNeW30gaXMgZXF1aXZhbGVu dCB0byB7STEyM15NXlt9LiAgVGhlIHRleHQgYWZ0ZXIgdGhlDQorK3tvfSBvciB7T30gaXMgZW5k ZWQgd2l0aCBhbiBlc2NhcGUgXlsuDQorKw0KKytUaGlzIHBhcmFncmFwaCBjb250YWlucyBpbmZv cm1hdGlvbiB0aGF0IGlzIHRlcm1pbmFsIGRlcGVuZGVudDogeW91IHdpbGwganVzdA0KKytoYXZl IHRvIGV4cGVyaW1lbnQgdG8gZGlzY292ZXIgd2hhdCB5b3VyIHRlcm1pbmFsIGRvZXMuICBPbmNl IGluIHRoZSBpbnNlcnQNCisrbW9kZSwgaWYgeW91IG1ha2UgYSBtaXN0YWtlIGluIHRoZSB0eXBp bmcsIF5IIHdpbGwgZGVsZXRlIHRoZSBwcmV2aW91cw0KKytjaGFyYWN0ZXIgdXAgdG8gdGhlIGJl Z2lubmluZyBvZiB0aGUgY3VycmVudCBpbnNlcnRpb24uICBeVyB3aWxsIGRlbGV0ZSB0aGUNCisr cHJldmlvdXMgd29yZCwgYW5kIG9uZSBvZiBeVSwgQCwgb3IgXlggd2lsbCBkZWxldGUgdGhlIGN1 cnJlbnQgbGluZSAodXAgdG8gdGhlDQorK2JlZ2lubmluZyBvZiB0aGUgY3VycmVudCBpbnNlcnRp b24pLiAgWW91IHdpbGwgbmVlZCB0byBleHBlcmltZW50IHdpdGggXlUsIEAsDQorK2FuZCBeWCB0 byBkZXRlcm1pbmUgd2hpY2ggd29ya3MgZm9yIHlvdXIgdGVybWluYWwuDQorKw0KKytTZWN0aW9u IDIzOiB7Zn0ge3h9IHtYfSB7d30ge2x9IHtyfSB7Un0ge3N9IHtTfSB7Sn0NCisrDQorK1Bvc2l0 aW9uIHRoZSBjdXJzb3IgYXQgdGhlIGJlZ2lubmluZyBvZiBsaW5lIDUgYW5kIHt6Xk19Og0KKysN CisrTGluZSA1OiBUaGUgbGluZSBhcyBpdCBzaG91bGQgYmUuDQorK0xpbmUgNjogVGhlIGxpbmUg YXMgaXQgc2hvdWxkbid0IGJlLg0KKysNCisrVG8gbWFrZSBMaW5lIDYgbGlrZSBMaW5lIDUsIHdl IGhhdmUgdG8gZGVsZXRlIHRoZSAnbicsIHRoZSBhcG9zdHJvcGhlLCBhbmQgdGhlDQorKyd0Jy4g IFRoZXJlIGFyZSBzZXZlcmFsIHdheXMgdG8gcG9zaXRpb24gb3Vyc2VsdmVzIGF0IHRoZSAnbicu ICBDaG9vc2UNCisrd2hpY2hldmVyIG9uZSBzdWl0cyB5b3VyIGZhbmN5Og0KKysNCisrey9uJ3Qv Xk19DQorK3teTTd3Nmx9ICBvciAge15NN3c2IH0gKG5vdGUgdGhlIHNwYWNlKQ0KKyt7Xk0zZm59 ICAoZmluZHMgdGhlIDNyZCAnbicgb24gdGhlIGxpbmUpDQorKw0KKytOb3cge3h4eH0gd2lsbCBk ZWxldGUgdGhlIHRocmVlIGNoYXJhY3RlcnMsIGFzIHdpbGwgezN4fS4NCisrDQorK05vdGUgdGhh dCB7WH0gZGVsZXRlcyB0aGUgY2hhcmFjdGVyIGp1c3QgQkVGT1JFIHRoZSBjdXJzb3IsIGFzIG9w cG9zZWQNCisrdG8gdGhlIGNoYXJhY3RlciBBVCB0aGUgY3Vyc29yLg0KKysNCisrUG9zaXRpb24g dGhlIGN1cnNvciBhdCBsaW5lIDcgYW5kIHt6Xk19Og0KKysNCisrTGluZSA3OiBUaGUgbGluZSBh cyBpdCB3b3VsZCBiZS4NCisrTGluZSA4OiBUaGUgbGluZSBhcyBpdCBjb3VsZCBiZS4NCisrDQor K1RvIGNoYW5nZSBsaW5lIDggaW50byBsaW5lIDcgd2UgbmVlZCB0byBjaGFuZ2UgdGhlICdjJyBp biAnY291bGQnIGludG8gYSAndycuDQorK1RoZSAncicgKHJlcGxhY2UpIGNvbW1hbmQgd2FzIGRl c2lnbmVkIGZvciB0aGlzLiAgVHlwaW5nIHtyY30gaXMgdGhlIHNhbWUgYXMNCisrdHlwaW5nIHt4 aWNeW30gKGkuZS4gIGRlbGV0ZSB0aGUgJ2JhZCcgY2hhcmFjdGVyIGFuZCBpbnNlcnQgdGhlIGNv cnJlY3QNCisrbmV3IGNoYXJhY3RlcikuICBUaGVyZWZvcmUsIGFzc3VtaW5nIHRoYXQgeW91IGhh dmUgcG9zaXRpb25lZCB0aGUgY3Vyc29yIG9uIHRoZQ0KKysnYycgb2YgJ2NvdWxkJywgdGhlIGVh c2llc3Qgd2F5IHRvIGNoYW5nZSAnY291bGQnIGludG8gJ3dvdWxkJyBpcyB7cnd9Lg0KKysNCisr SWYgeW91IHdvdWxkIGxpa2UgdG8gbm93IGNoYW5nZSB0aGUgJ3dvdWxkJyBpbnRvICdzaG91bGQn LCB1c2UgdGhlIHN1YnN0aXR1dGUNCisrY29tbWFuZCwgJ3MnOiB7c3NoXlt9LiAgVGhlIGRpZmZl cmVuY2UgYmV0d2VlbiAncicgYW5kICdzJyBpcyB0aGF0ICdyJw0KKysocmVwbGFjZSkgcmVwbGFj ZXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIHdpdGggYW5vdGhlciBjaGFyYWN0ZXIsIHdoaWxlICdz Jw0KKysoc3Vic3RpdHV0ZSkgc3Vic3RpdHV0ZXMgdGhlIGN1cnJlbnQgY2hhcmFjdGVyIHdpdGgg YSBzdHJpbmcsIGVuZGVkIHdpdGggYW4NCisrZXNjYXBlLg0KKysNCisrVGhlIGNhcGl0YWwgbGV0 dGVyIHZlcnNpb24gb2YgcmVwbGFjZSB7Un0gcmVwbGFjZXMgZWFjaCBjaGFyYWN0ZXIgYnkgYQ0K KytjaGFyYWN0ZXIgb25lIGF0IGEgdGltZSB1bnRpbCB5b3UgdHlwZSBhbiBlc2NhcGUsIF5bLiAg VGhlICdTJyBjb21tYW5kDQorK3N1YnN0aXR1dGVzIHRoZSB3aG9sZSBsaW5lLg0KKysNCisrUG9z aXRpb24geW91ciBjdXJzb3IgYXQgdGhlIGJlZ2lubmluZyBvZiBsaW5lIDkgYW5kIHt6Xk19Lg0K KysNCisrTGluZSAgOTogTG92ZSBpcyBhIG1hbnkgc3BsZW5kb3JlZCB0aGluZy4NCisrTGluZSAx MDogTG92ZSBpcyBhIG1vc3Qgc3BsZW5kb3JlZCB0aGluZy4NCisrDQorK1RvIGNoYW5nZSBsaW5l IDEwIGludG8gbGluZSA5LCBwb3NpdGlvbiB0aGUgY3Vyc29yIGF0IHRoZSBiZWdpbm5pbmcgb2Yg J21vc3QnLA0KKythbmQgdHlwZSB7Um1hbnleW30uDQorKw0KKytZb3UgbWF5IGhhdmUgbm90aWNl ZCB0aGF0LCB3aGVuIGluc2VydGluZyB0ZXh0LCBhIG5ldyBsaW5lIGlzIGZvcm1lZCBieSB0eXBp bmcNCisre15NfS4gIFdoZW4gY2hhbmdpbmcsIHJlcGxhY2luZywgb3Igc3Vic3RpdHV0aW5nIHRl eHQgeW91IGNhbiBtYWtlIGEgbmV3IGxpbmUNCisrYnkgdHlwaW5nIHteTX0uICBIb3dldmVyLCBu ZWl0aGVyIHt4fSBub3Ige1h9IHdpbGwgcmVtb3ZlIF5NIHRvIG1ha2UgdHdvIGxpbmVzIA0KKytp bnRvIG9uZSBsaW5lLiAgVG8gZG8gdGhpcywgcG9zaXRpb24gdGhlIGN1cnNvciBvbiB0aGUgZmly c3Qgb2YgdGhlIHR3byBsaW5lcyANCisreW91IHdpc2ggdG8gbWFrZSBpbnRvIGEgc2luZ2xlIGxp bmUgYW5kIHR5cGUge0p9ICh1cHBlcmNhc2UgSiBmb3IgJ0pvaW4nKS4NCisrDQorK1NlY3Rpb24g MjQ6IHt1fSB7VX0NCisrDQorK0ZpbmFsbHksIGJlZm9yZSB3ZSByZXZpZXcsIGxldCdzIGxvb2sg YXQgdGhlIHVuZG8gY29tbWFuZC4gIFBvc2l0aW9uDQorK3lvdXIgY3Vyc29yIG9uIGxpbmUgMTEg YmVsb3cgYW5kIHt6Xk19Lg0KKysNCisrTGluZSAxMTogVGhlIHF1aWNrIGJyb3duIGZveCBqdW1w ZWQgb3ZlciB0aGUgbGF6eSBob3VuZCBkb2cuDQorK0xpbmUgMTI6IHRoZSBxd2ljayBibGFjayBk b2cgZHVtcGVkIG92ZXIgdGhlIGxheHkgcG91bmUgZm94Lg0KKysNCisrVHlwZSB0aGUgZm9sbG93 aW5nIHNldCBvZiBjb21tYW5kcywgYW5kIG9ic2VydmUgY2FyZWZ1bGx5IHRoZSBlZmZlY3Qgb2Yg ZWFjaCANCisrb2YgdGhlIGNvbW1hbmRzOg0KKysNCisrey9eTGluZSAxMjovXk19IHtmdH0ge3JU fSB7Znd9IHtydX0ge3d9IHtSYnJvd24gZm94Xlt9IHt3fSB7cmp9IA0KKyt7Znh9IHtyen0ge3d9 IHtSaG91bmQgZG9nXlt9DQorKw0KKytMaW5lIDEyIG5vdyBtYXRjaGVzIGxpbmUgMTEuICBOb3cg dHlwZSB7VX0gLSBjYXBpdGFsICdVJy4gIEFuZCBsaW5lIDEyIG5vdw0KKytsb29rcyBsaWtlIGl0 IGRpZCBiZWZvcmUgeW91IHR5cGVkIGluIHRoZSBjb21tYW5kIHN0cmluZ3MuICBOb3cgdHlwZToN CisrDQorK3tmdH0ge3JUfSB7Znd9IHtydX0ge15NfSB7Xk19DQorKw0KKythbmQgdGhlbiB0eXBl IHt1fTogIHRoZSBjdXJzb3IganVtcHMgYmFjayB0byB0aGUgbGluZSBjb250YWluaW5nIHRoZSBz ZWNvbmQNCisrY2hhbmdlIHlvdSBtYWRlIGFuZCAndW5kb2VzJyBpdC4gIFRoYXQgaXMsIHtVfSAn dW5kb2VzJyBhbGwgdGhlIGNoYW5nZXMgb24gdGhlDQorK2xpbmUsIGFuZCB7dX0gJ3VuZG9lcycg b25seSB0aGUgbGFzdCBjaGFuZ2UuICBUeXBlIHt1fSBzZXZlcmFsIHRpbWVzIGFuZA0KKytvYnNl cnZlIHdoYXQgaGFwcGVuczoge3V9IGNhbiB1bmRvIGEgcHJldmlvdXMge3V9IQ0KKysNCisrQ2F2 ZWF0OiB7VX0gb25seSB3b3JrcyBhcyBsb25nIGFzIHRoZSBjdXJzb3IgaXMgc3RpbGwgb24gdGhl IGxpbmUuICBNb3ZlIHRoZQ0KKytjdXJzb3Igb2ZmIHRoZSBsaW5lIGFuZCB7VX0gd2lsbCBoYXZl IG5vIGVmZmVjdCwgZXhjZXB0IHRvIHBvc3NpYmx5IGJlZXAgYXQNCisreW91LiAgSG93ZXZlciwg e3V9IHdpbGwgdW5kbyB0aGUgbGFzdCBjaGFuZ2UsIG5vIG1hdHRlciB3aGVyZSBpdCBvY2N1cnJl ZC4NCisrDQorK1NlY3Rpb24gMjU6IHJldmlldw0KKysNCisrQXQgdGhpcyBwb2ludCwgeW91IGhh dmUgYWxsIHRoZSBjb21tYW5kcyB5b3UgbmVlZCBpbiBvcmRlciB0byBtYWtlIHVzZSBvZiB2aS4N CisrVGhlIHJlbWFpbmRlciBvZiB0aGlzIHR1dG9yaWFsIHdpbGwgZGlzY3VzcyB2YXJpYXRpb25z IG9uIHRoZXNlIGNvbW1hbmRzIGFzDQorK3dlbGwgYXMgaW50cm9kdWNlIG5ldyBjb21tYW5kcyB0 aGF0IG1ha2UgdGhlIGpvYiBvZiBlZGl0aW5nIG1vcmUgZWZmaWNpZW50Lg0KKytIZXJlIGlzIGEg YnJpZWYgcmV2aWV3IG9mIHRoZSBiYXNpYyBjb21tYW5kcyB3ZSBoYXZlIGNvdmVyZWQuICBUaGV5 IGFyZSBsaXN0ZWQNCisraW4gdGhlIG9yZGVyIG9mIGluY3JlYXNpbmcgY29tcGxleGl0eSBhbmQv b3IgZGVjcmVhc2luZyBuZWNlc3NpdHkgKHRvIHNheSB0aGF0DQorK2EgY29tbWFuZCBpcyBsZXNz IG5lY2Vzc2FyeSBpcyBub3QgdG8gc2F5IHRoYXQgaXQgaXMgbGVzcyB1c2VmdWwhKS4gIFRoZXNl DQorK2NvbW1hbmRzIGFsbG93IHlvdSB0byBjb21mb3J0YWJseSBlZGl0IGFueSB0ZXh0IGZpbGUu ICBUaGVyZSBhcmUgb3RoZXINCisrY29tbWFuZHMgdGhhdCB3aWxsIG1ha2UgbGlmZSBlYXNpZXIg YnV0IHdpbGwgcmVxdWlyZSBleHRyYSB0aW1lIHRvIGxlYXJuLA0KKytvYnZpb3VzbHkuICBZb3Ug bWF5IHdhbnQgdG8gY29uc2lkZXIgc2V0dGluZyB0aGlzIHR1dG9yaWFsIGFzaWRlIGZvciBzZXZl cmFsDQorK3dlZWtzIGFuZCByZXR1cm5pbmcgdG8gaXQgbGF0ZXIgYWZ0ZXIgZ2FpbmluZyBleHBl cmllbmNlIHdpdGggdmkgYW5kIGdldHRpbmcNCisrY29tZm9ydGFibGUgd2l0aCBpdC4gIFRoZSBj b252ZW5pZW5jZSBvZiBzb21lIG9mIHRoZSBtb3JlIGV4b3RpYyBjb21tYW5kcyBtYXkNCisrdGhl biBiZSBhcHBhcmVudCBhbmQgd29ydGggdGhlIGV4dHJhIGludmVzdG1lbnQgb2YgdGltZSBhbmQg ZWZmb3J0DQorK3JlcXVpcmVkIHRvIG1hc3RlciB0aGVtLg0KKysNCisrdG8gZ2V0IGludG8gdGhl IGVkaXRvciBmcm9tIFVuaXg6ICAgICAgICAgICB7dmkgZmlsZW5hbWV9DQorK3RvIGV4aXQgdGhl IGVkaXRvcg0KKysgICAgICBzYXZpbmcgYWxsIGNoYW5nZXMgICAgICAgICAgICAgICAgICAgIHta Wn0gb3Igezp3cV5NfQ0KKysgICAgICB0aHJvd2luZyBhd2F5IGFsbCBjaGFuZ2VzICAgICAgICAg ICAgIHs6cSFeTX0NCisrICAgICAgd2hlbiBubyBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlICAgICAg ICB7OnFeTX0NCisrc2F2ZSBhIGZpbGUgd2l0aG91dCBleGl0aW5nIHRoZSBlZGl0b3IgICAgICB7 OndeTX0NCisrd3JpdGUgdGhlIGZpbGUgaW50byBhbm90aGVyIGZpbGUgICAgICAgICAgICB7Oncg ZmlsZW5hbWVeTX0NCisraW5zZXJ0IHRleHQgDQorKyAgICAgIGJlZm9yZSB0aGUgY3Vyc29yICAg ICAgICAgICAgICAgICAgICAge2kgLi4udGV4dC4uLiBeW30NCisrICAgICAgYXQgdGhlIGJlZ2lu bmluZyBvZiB0aGUgbGluZSAgICAgICAgICB7SSAuLi50ZXh0Li4uIF5bfQ0KKysgICAgICBhZnRl ciB0aGUgY3Vyc29yIChhcHBlbmQpICAgICAgICAgICAgIHthIC4uLnRleHQuLi4gXlt9DQorKyAg ICAgIGF0IHRoZSBlbmQgb2YgdGhlIGxpbmUgICAgICAgICAgICAgICAge0EgLi4udGV4dC4uLiBe W30NCisrICAgICAgYWZ0ZXIgdGhlIGN1cnJlbnQgbGluZSAgICAgICAgICAgICAgICB7byAuLi50 ZXh0Li4uIF5bfQ0KKysgICAgICBiZWZvcmUgdGhlIGN1cnJlbnQgbGluZSAgICAgICAgICAgICAg IHtPIC4uLnRleHQuLi4gXlt9DQorK2RlbGV0ZSB0aGUgY2hhcmFjdGVyICAuLi4NCisrICAgICAg dW5kZXIgdGhlIGN1cnNvciAgICAgICAgICAgICAgICAgICAgICB7eH0NCisrICAgICAgdG8gdGhl IGxlZnQgb2YgdGhlIGN1cnNvciAgICAgICAgICAgICB7WH0NCisrZGVsZXRlIG4gY2hhcmFjdGVy cyAgICAgICAgICAgICAgICAgICAgICAgICB7bnh9IG9yIHtuWH0gIChmb3IgbiBhIG51bWJlcikN CisrbWFrZSB0d28gbGluZXMgaW50byBvbmUgbGluZSAoSm9pbikgICAgICAgICB7Sn0NCisrZmlu ZCBhIHN0cmluZyBpbiB0aGUgZmlsZSAuLi4NCisrICAgICAgc2VhcmNoaW5nIGZvcndhcmQgICAg ICAgICAgICAgICAgICAgICB7LyAuLi5zdHJpbmcuLi4gL15NfQ0KKysgICAgICBzZWFyY2hpbmcg YmFja3dhcmRzICAgICAgICAgICAgICAgICAgIHs/IC4uLnN0cmluZy4uLiA/Xk19DQorK3JlcGVh dCB0aGUgbGFzdCBzZWFyY2ggY29tbWFuZCAgICAgICAgICAgICAge259DQorK3JlcGVhdCB0aGUg bGFzdCBzZWFyY2ggY29tbWFuZCBpbiB0aGUNCisrICBvcHBvc2l0ZSBkaXJlY3Rpb24gICAgICAg ICAgICAgICAgICAgICAgICB7Tn0NCisrZmluZCB0aGUgY2hhcmFjdGVyIGMgb24gdGhpcyBsaW5l IC4uLg0KKysgICAgICBzZWFyY2hpbmcgZm9yd2FyZCAgICAgICAgICAgICAgICAgICAgIHtmY30N CisrICAgICAgc2VhcmNoaW5nIGJhY2t3YXJkICAgICAgICAgICAgICAgICAgICB7RmN9DQorK3Jl cGVhdCB0aGUgbGFzdCAnZmluZCBjaGFyYWN0ZXInIGNvbW1hbmQgICAgezt9DQorK3JlcGxhY2Ug YSBjaGFyYWN0ZXIgd2l0aCBjaGFyYWN0ZXIgeCAgICAgICAge3J4fQ0KKytzdWJzdGl0dXRlIGEg c2luZ2xlIGNoYXJhY3RlciB3aXRoIHRleHQgICAgIHtzIC4uLnRleHQuLi4gXlt9DQorK3N1YnN0 aXR1dGUgbiBjaGFyYWN0ZXJzIHdpdGggdGV4dCAgICAgICAgICAge25zIC4uLnRleHQuLi4gXlt9 DQorK3JlcGxhY2UgY2hhcmFjdGVycyBvbmUtYnktb25lIHdpdGggdGV4dCAgICAge1IgLi4udGV4 dC4uLiBeW30NCisrdW5kbyBhbGwgY2hhbmdlcyB0byB0aGUgY3VycmVudCBsaW5lICAgICAgICB7 VX0NCisrdW5kbyB0aGUgbGFzdCBzaW5nbGUgY2hhbmdlICAgICAgICAgICAgICAgICB7dX0NCisr bW92ZSBmb3J3YXJkIGluIHRoZSBmaWxlIGEgInNjcmVlbmZ1bCIgICAgICB7XkZ9DQorK21vdmUg YmFjayBpbiB0aGUgZmlsZSBhICJzY3JlZW5mdWwiICAgICAgICAge15CfQ0KKyttb3ZlIGZvcndh cmQgaW4gdGhlIGZpbGUgb25lIGxpbmUgICAgICAgICAgIHteTX0gb3Igeyt9DQorK21vdmUgYmFj a3dhcmQgaW4gdGhlIGZpbGUgb25lIGxpbmUgICAgICAgICAgey19DQorK21vdmUgdG8gdGhlIGJl Z2lubmluZyBvZiB0aGUgbGluZSAgICAgICAgICAgezB9DQorK21vdmUgdG8gdGhlIGVuZCBvZiB0 aGUgbGluZSAgICAgICAgICAgICAgICAgeyR9DQorK21vdmUgZm9yd2FyZCBvbmUgd29yZCAgICAg ICAgICAgICAgICAgICAgICAge3d9DQorK21vdmUgZm9yd2FyZCBvbmUgd29yZCwgaWdub3Jpbmcg cHVuY3R1YXRpb24ge1d9DQorK21vdmUgZm9yd2FyZCB0byB0aGUgZW5kIG9mIHRoZSBuZXh0IHdv cmQgICAge2V9DQorK3RvIHRoZSBlbmQgb2YgdGhlIHdvcmQsIGlnbm9yaW5nIHB1bmN0dWF0aW9u e0V9DQorK21vdmUgYmFja3dhcmQgb25lIHdvcmQgICAgICAgICAgICAgICAgICAgICAge2J9DQor K21vdmUgYmFjayBvbmUgd29yZCwgaWdub3JpbmcgcHVuY3R1YXRpb24gICAge0J9DQorK3JldHVy biB0byB0aGUgbGFzdCBsaW5lIG1vZGlmaWVkICAgICAgICAgICAgeycnfQ0KKytzY3JvbGwgYSBs aW5lIG9udG8gdGhlIHRvcCBvZiB0aGUgc2NyZWVuICAgIHteWX0NCisrc2Nyb2xsIGEgbGluZSBv bnRvIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbiB7XkV9DQorK21vdmUgInVwIiBpbiB0aGUgZmls ZSBhIGhhbGYtc2NyZWVuICAgICAgICAge15VfQ0KKyttb3ZlICJkb3duIiBpbiB0aGUgZmlsZSBh IGhhbGYtc2NyZWVuICAgICAgIHteRH0NCisrbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSB0b3Agc2Ny ZWVuIGxpbmUgICAgICB7SH0NCisrbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBib3R0b20gc2NyZWVu IGxpbmUgICB7TH0NCisrbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBtaWRkbGUgbGluZSAgICAgICAg ICB7TX0NCisrbW92ZSBMRUZUIG9uZSBjaGFyYWN0ZXIgcG9zaXRpb24gICAgICAgICAgICB7aH0g b3Ige15IfQ0KKyttb3ZlIFJJR0hUIG9uZSBjaGFyYWN0ZXIgcG9zaXRpb24gICAgICAgICAgIHts fSBvciB7IH0NCisrbW92ZSBVUCBpbiB0aGUgc2FtZSBjb2x1bW4gICAgICAgICAgICAgICAgICB7 a30gb3Ige15QfQ0KKyttb3ZlIERPV04gaW4gdGhlIHNhbWUgY29sdW1uICAgICAgICAgICAgICAg IHtqfSBvciB7Xk59DQorK21hcmsgdGhlIGN1cnJlbnQgcG9zaXRpb24sIG5hbWUgaXQgeCAgICAg ICAge214fQ0KKyttb3ZlIHRvIHRoZSBsaW5lIG1hcmtlZC9uYW1lZCB4ICAgICAgICAgICAgIHsn eH0NCisrbW92ZSB0byB0aGUgY2hhcmFjdGVyIHBvc2l0aW9uIG5hbWVkIHggICAgICB7YHh9DQor K21vdmUgdG8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZmlsZSAgICAgICAgICAgezFHfQ0KKyttb3Zl IHRvIHRoZSBlbmQgb2YgdGhlIGZpbGUgICAgICAgICAgICAgICAgIHtHfQ0KKyttb3ZlIHRvIGxp bmUgMjMgaW4gdGhlIGZpbGUgICAgICAgICAgICAgICAgIHsyM0d9DQorK3JlcGFpbnQgdGhlIHNj cmVlbiB3aXRoIHRoZSBjdXJzb3IgbGluZQ0KKysgICAgICAgYXQgdGhlIHRvcCBvZiB0aGUgc2Ny ZWVuICAgICAgICAgICAgIHt6Xk19DQorKyAgICAgICBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzY3Jl ZW4gICAgICAgICAge3oufQ0KKysgICAgICAgYXQgdGhlIGJvdHRvbSBvZiB0aGUgc2NyZWVuICAg ICAgICAgIHt6LX0NCisrDQorK01vcmUgaW5mb3JtYXRpb24gb24gdmkgY2FuIGJlIGZvdW5kIGlu IHRoZSBmaWxlIHZpLmFkdmFuY2VkLCB3aGljaCB5b3UgY2FuDQorK3BlcnVzZSBhdCB5b3VyIGxl aXN1cmUuICBGcm9tIFVOSVgsIHR5cGUge3ZpLnR1dCBhZHZhbmNlZF5NfS4gIA0KZGlmZiAtLWdp dCBhL3Rlc3RpbmcvbnZpLzAzZGI0LnBhdGNoIGIvdGVzdGluZy9udmkvMDNkYjQucGF0Y2gNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi40NzQwMTFiDQotLS0gL2Rldi9udWxs DQorKysgYi90ZXN0aW5nL252aS8wM2RiNC5wYXRjaA0KQEAgLTAsMCArMSwyNSBAQA0KK0Zyb206 IDxoZXNzb0Bwb29sLm1hdGgudHUtYmVybGluLmRlPg0KK1N1YmplY3Q6IGxpYmRiNCBjb21wYXRp YmlsaXR5IGFkanVzdG1lbnRzLg0KKw0KKy0tLSBudmktMS44MS42Lm9yaWcvY29tbW9uL21zZy5j CTIwMDktMDItMjYgMTQ6MjY6NTguMzUwMzM2MTI4ICswMTAwDQorKysrIG52aS0xLjgxLjYvY29t bW9uL21zZy5jCTIwMDktMDItMjYgMTQ6Mjk6MDUuMjM1MzM1ODI5ICswMTAwDQorQEAgLTcyNCw5 ICs3MjQsMTggQEANCisgCQlwID0gYnVmOw0KKyAJfSBlbHNlDQorIAkJcCA9IGZpbGU7DQorKwlp ZiAoYWNjZXNzKHAsIEZfT0spICE9IDApIHsNCisrCQlpZiAoZmlyc3QpIHsNCisrCQkJZmlyc3Qg PSAwOw0KKysJCQlyZXR1cm4gKDEpOw0KKysJCX0NCisrCQlzcC0+ZGJfZXJyb3IgPSBFTk9FTlQ7 DQorKwkJbXNncV9zdHIoc3AsIE1fREJFUlIsIHAsICIlcyIpOw0KKysJCXJldHVybiAoMSk7DQor Kwl9DQorIAlpZiAoKHNwLT5kYl9lcnJvciA9IGRiX2NyZWF0ZSgmZGIsIDAsIDApKSAhPSAwIHx8 DQorIAkgICAgKHNwLT5kYl9lcnJvciA9IGRiLT5zZXRfcmVfc291cmNlKGRiLCBwKSkgIT0gMCB8 fA0KKy0JICAgIChzcC0+ZGJfZXJyb3IgPSBkYl9vcGVuKGRiLCBOVUxMLCBEQl9SRUNOTywgMCwg MCkpICE9IDApIHsNCisrCSAgICAoc3AtPmRiX2Vycm9yID0gZGJfb3BlbihkYiwgTlVMTCwgREJf UkVDTk8sIERCX0NSRUFURSwgMCkpICE9IDApIHsNCisgCQlpZiAoZmlyc3QpIHsNCisgCQkJZmly c3QgPSAwOw0KKyAJCQlyZXR1cm4gKDEpOw0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbnZpLzA0Y29u ZmRlZnMucGF0Y2ggYi90ZXN0aW5nL252aS8wNGNvbmZkZWZzLnBhdGNoDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZDVkZDIxYg0KLS0tIC9kZXYvbnVsbA0KKysrIGIvdGVz dGluZy9udmkvMDRjb25mZGVmcy5wYXRjaA0KQEAgLTAsMCArMSwxMCBAQA0KK0Zyb206IDxoZXNz b0Bwb29sLm1hdGgudHUtYmVybGluLmRlPg0KK1N1YmplY3Q6IEhlbHAgY29uZmlndXJlIGJ5IGRl Y3JlZWluZyB0aGF0IHNvbWUgaGVhZGVycyBhcmUgcHJlc2VudC4NCisNCitkaWZmIC1OYXVyIG52 aS0xLjgxLjYub3JpZy9idWlsZC9jb25mZGVmcy5oIG52aS0xLjgxLjYvYnVpbGQvY29uZmRlZnMu aA0KKy0tLSBudmktMS44MS42Lm9yaWcvYnVpbGQvY29uZmRlZnMuaAkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMA0KKysrKyBudmktMS44MS42L2J1aWxkL2NvbmZkZWZzLmgJMjAw OC0wNS0wMSAxODowNTowMC4wMDAwMDAwMDAgKzAyMDANCitAQCAtMCwwICsxLDMgQEANCisrDQor KyNkZWZpbmUgSEFWRV9TWVNfTU1BTl9IIDENCisrI2RlZmluZSBIQVZFX1NZU19TRUxFQ1RfSCAx DQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9udmkvMDZkZWZhdWx0X3ZhbHVlX2VzY2FwZXRpbWUucGF0 Y2ggYi90ZXN0aW5nL252aS8wNmRlZmF1bHRfdmFsdWVfZXNjYXBldGltZS5wYXRjaA0KbmV3IGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmE1NTFkNDINCi0tLSAvZGV2L251bGwNCisr KyBiL3Rlc3RpbmcvbnZpLzA2ZGVmYXVsdF92YWx1ZV9lc2NhcGV0aW1lLnBhdGNoDQpAQCAtMCww ICsxLDE1IEBADQorRnJvbTogPGhlc3NvQHBvb2wubWF0aC50dS1iZXJsaW4uZGU+DQorU3ViamVj dDogSW5jcmVhc2UgdGhlIGRlZmF1bHQgJ2VzY2FwZXRpbWUnIHNldHRpbmcgdG8gYWNjb21tb2Rh dGUgc2xvdyBsaW5lcy4NCisNCitkaWZmIC1OYXVyIG52aS0xLjgxLjYub3JpZy9jb21tb24vb3B0 aW9ucy5jIG52aS0xLjgxLjYvY29tbW9uL29wdGlvbnMuYw0KKy0tLSBudmktMS44MS42Lm9yaWcv Y29tbW9uL29wdGlvbnMuYwkyMDA3LTExLTE4IDE3OjQxOjQyLjAwMDAwMDAwMCArMDEwMA0KKysr KyBudmktMS44MS42L2NvbW1vbi9vcHRpb25zLmMJMjAwOC0wNS0wMSAxODowNjoxOC4wMDAwMDAw MDAgKzAyMDANCitAQCAtMzU2LDcgKzM1Niw3IEBADQorIAkodm9pZClTUFJJTlRGKGIyLCBTSVpF KGIyKSwNCisgCSAgICBMKCJkaXJlY3Rvcnk9JXMiKSwgKHMgPSBnZXRlbnYoIlRNUERJUiIpKSA9 PSBOVUxMID8gX1BBVEhfVE1QIDogcyk7DQorIAlPSShPX1RNUF9ESVJFQ1RPUlksIGIyKTsNCist CU9JKE9fRVNDQVBFVElNRSwgTCgiZXNjYXBldGltZT0xIikpOw0KKysJT0koT19FU0NBUEVUSU1F LCBMKCJlc2NhcGV0aW1lPTMiKSk7DQorIAlPSShPX0tFWVRJTUUsIEwoImtleXRpbWU9NiIpKTsN CisgCU9JKE9fTUFUQ0hUSU1FLCBMKCJtYXRjaHRpbWU9NyIpKTsNCisgCSh2b2lkKVNQUklOVEYo YjIsIFNJWkUoYjIpLCBMKCJtc2djYXQ9JXMiKSwgX1BBVEhfTVNHQ0FUKTsNCmRpZmYgLS1naXQg YS90ZXN0aW5nL252aS8wN2ZsdXNoX2NhY2hlLnBhdGNoIGIvdGVzdGluZy9udmkvMDdmbHVzaF9j YWNoZS5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjc0NzkxNzcN Ci0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvbnZpLzA3Zmx1c2hfY2FjaGUucGF0Y2gNCkBA IC0wLDAgKzEsNDYgQEANCitGcm9tOiA8aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5kZT4NCitT dWJqZWN0OiBObyBkZXNjcmlwdGlvbi4NCisNCitkaWZmIC1OYXVyIG52aS0xLjgxLjYub3JpZy9j b21tb24vZGIxLmMgbnZpLTEuODEuNi9jb21tb24vZGIxLmMNCistLS0gbnZpLTEuODEuNi5vcmln L2NvbW1vbi9kYjEuYwkyMDA3LTExLTE4IDE3OjQxOjQyLjAwMDAwMDAwMCArMDEwMA0KKysrKyBu dmktMS44MS42L2NvbW1vbi9kYjEuYwkyMDA4LTA1LTAxIDE4OjA3OjU4LjAwMDAwMDAwMCArMDIw MA0KK0BAIC0yNjIsOCArMjYyLDcgQEANCisgCX0NCisgDQorIAkvKiBGbHVzaCB0aGUgY2FjaGUs IHVwZGF0ZSBsaW5lIGNvdW50LCBiZWZvcmUgc2NyZWVuIHVwZGF0ZS4gKi8NCistCWlmIChsbm8g PD0gZXAtPmNfbG5vKQ0KKy0JCWVwLT5jX2xubyA9IE9PQkxOTzsNCisrCWVwLT5jX2xubyA9IE9P QkxOTzsNCisgCWlmIChlcC0+Y19ubGluZXMgIT0gT09CTE5PKQ0KKyAJCS0tZXAtPmNfbmxpbmVz Ow0KKyANCitAQCAtMzE0LDggKzMxMyw3IEBADQorIAl9DQorIA0KKyAJLyogRmx1c2ggdGhlIGNh Y2hlLCB1cGRhdGUgbGluZSBjb3VudCwgYmVmb3JlIHNjcmVlbiB1cGRhdGUuICovDQorLQlpZiAo bG5vIDwgZXAtPmNfbG5vKQ0KKy0JCWVwLT5jX2xubyA9IE9PQkxOTzsNCisrCWVwLT5jX2xubyA9 IE9PQkxOTzsNCisgCWlmIChlcC0+Y19ubGluZXMgIT0gT09CTE5PKQ0KKyAJCSsrZXAtPmNfbmxp bmVzOw0KKyANCitAQCAtMzg2LDggKzM4NCw3IEBADQorIAl9DQorIA0KKyAJLyogRmx1c2ggdGhl IGNhY2hlLCB1cGRhdGUgbGluZSBjb3VudCwgYmVmb3JlIHNjcmVlbiB1cGRhdGUuICovDQorLQlp ZiAobG5vID49IGVwLT5jX2xubykNCistCQllcC0+Y19sbm8gPSBPT0JMTk87DQorKwllcC0+Y19s bm8gPSBPT0JMTk87DQorIAlpZiAoZXAtPmNfbmxpbmVzICE9IE9PQkxOTykNCisgCQkrK2VwLT5j X25saW5lczsNCisgDQorQEAgLTQ1OSw4ICs0NTYsNyBAQA0KKyAJfQ0KKyANCisgCS8qIEZsdXNo IHRoZSBjYWNoZSwgYmVmb3JlIGxvZ2dpbmcgb3Igc2NyZWVuIHVwZGF0ZS4gKi8NCistCWlmIChs bm8gPT0gZXAtPmNfbG5vKQ0KKy0JCWVwLT5jX2xubyA9IE9PQkxOTzsNCisrCWVwLT5jX2xubyA9 IE9PQkxOTzsNCisgDQorIAkvKiBGaWxlIG5vdyBkaXJ0eS4gKi8NCisgCWlmIChGX0lTU0VUKGVw LCBGX0ZJUlNUTU9ESUZZKSkNCmRpZmYgLS1naXQgYS90ZXN0aW5nL252aS8wOGxmcy5wYXRjaCBi L3Rlc3RpbmcvbnZpLzA4bGZzLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAw MDAwMC4uZTVkOTM5OQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvdGVzdGluZy9udmkvMDhsZnMucGF0 Y2gNCkBAIC0wLDAgKzEsMjUgQEANCitGcm9tOiA8aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5k ZT4NCitTdWJqZWN0OiBJbnNlcnQgYSBzYWZldHkgY2hlY2sgdG8gc2F2ZSBsYXJnZSBmaWxlcyBm cm9tIGJlaW5nIG92ZXJ3cml0dGVuLg0KKw0KK2RpZmYgLU5hdXIgbnZpLTEuODEuNi5vcmlnL2Nv bW1vbi9leGYuYyBudmktMS44MS42L2NvbW1vbi9leGYuYw0KKy0tLSBudmktMS44MS42Lm9yaWcv Y29tbW9uL2V4Zi5jCTIwMDctMTEtMTggMTc6NDE6NDIuMDAwMDAwMDAwICswMTAwDQorKysrIG52 aS0xLjgxLjYvY29tbW9uL2V4Zi5jCTIwMDgtMDUtMDEgMTg6MDk6NTUuMDAwMDAwMDAwICswMjAw DQorQEAgLTE1Nyw2ICsxNTcsMTggQEANCisgCSAqLw0KKyAJaWYgKGZpbGVfc3BhdGgoc3AsIGZy cCwgJnNiLCAmZXhpc3RzKSkNCisgCQlyZXR1cm4gKDEpOw0KKysgICAgICAgIC8qDQorKyAgICAg ICAgICogT24gTEZTIHN5c3RlbXMsIGl0J3MgcG9zc2libGUgdGhhdCBzdGF0IHJldHVybmVkIGFu IGVycm9yIGJlY2F1c2UNCisrICAgICAgICAgKiB0aGUgZmlsZSBpcyA+MkdCLCB3aGljaCBudmkg d291bGQgbm9ybWFsbHkgdHJlYXQgYXMgImRvZXNuJ3QgZXhpc3QiDQorKyAgICAgICAgICogYW5k IGV2ZW50dWFsbHkgb3ZlcndyaXRlLiBUaGF0J3Mgbm8gZ29vZC4gUmF0aGVyIHRoYW4gbWVzcyB3 aXRoDQorKyAgICAgICAgICogZXZlcnkgc3RhdCgpIGNhbGwgaW4gZmlsZV9zcGF0aCwgd2UnbGwg anVzdCBjaGVjayBhZ2FpbiBoZXJlLg0KKysgICAgICAgICAqLw0KKysgICAgICAgIGlmICghZXhp c3RzICYmIHN0YXQoZnJwLT5uYW1lLCAmc2IpKSB7DQorKyAgICAgICAgICAgIGlmIChlcnJubyA9 PSBFT1ZFUkZMT1cpIHsNCisrICAgICAgICAgICAgICAgIG1zZ3Eoc3AsIE1fRVJSLCAgIkZpbGUg dG9vIGxhcmdlICg+MkdCLCBwcm9iYWJseSkiKTsNCisrICAgICAgICAgICAgICAgIGdvdG8gZXJy Ow0KKysgICAgICAgICAgICB9DQorKyAgICAgICAgfQ0KKyANCisgCS8qDQorIAkgKiBDaGVjayB3 aGV0aGVyIHdlIGFscmVhZHkgaGF2ZSB0aGlzIGZpbGUgb3BlbmVkIGluIHNvbWUNCmRpZmYgLS1n aXQgYS90ZXN0aW5nL252aS8wOHNhZmVfcHJpbnRmLnBhdGNoIGIvdGVzdGluZy9udmkvMDhzYWZl X3ByaW50Zi5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjEzZWYz ZTENCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvbnZpLzA4c2FmZV9wcmludGYucGF0Y2gN CkBAIC0wLDAgKzEsMTUgQEANCitGcm9tOiA8aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5kZT4N CitTdWJqZWN0OiBObyBkZXNjcmlwdGlvbi4NCisNCitkaWZmIC1OYXVyIG52aS0xLjgxLjYub3Jp Zy9jb21tb24vZXhmLmMgbnZpLTEuODEuNi9jb21tb24vZXhmLmMNCistLS0gbnZpLTEuODEuNi5v cmlnL2NvbW1vbi9leGYuYwkyMDA4LTA1LTAxIDE4OjEwOjIwLjAwMDAwMDAwMCArMDIwMA0KKysr KyBudmktMS44MS42L2NvbW1vbi9leGYuYwkyMDA4LTA1LTAxIDE4OjEwOjMwLjAwMDAwMDAwMCAr MDIwMA0KK0BAIC0xMDc1LDcgKzEwNzUsNyBAQA0KKyAJCQkqLS1zID0gJy4nOw0KKyAJCX0NCisg CX0NCistCW1zZ3Eoc3AsIE1fSU5GTywgcyk7DQorKwltc2dxKHNwLCBNX0lORk8sICIlcyIsIHMp Ow0KKyAJaWYgKG5mKQ0KKyAJCUZSRUVfU1BBQ0Uoc3AsIHAsIDApOw0KKyAJcmV0dXJuICgwKTsN CmRpZmYgLS1naXQgYS90ZXN0aW5nL252aS8wOHRlbXBmaWxlX3VtYXNrLnBhdGNoIGIvdGVzdGlu Zy9udmkvMDh0ZW1wZmlsZV91bWFzay5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IDAwMDAwMDAuLjNkZWJjYjcNCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvbnZpLzA4dGVt cGZpbGVfdW1hc2sucGF0Y2gNCkBAIC0wLDAgKzEsMjggQEANCitGcm9tOiA8aGVzc29AcG9vbC5t YXRoLnR1LWJlcmxpbi5kZT4NCitTdWJqZWN0OiBObyBkZXNjcmlwdGlvbi4NCisNCitkaWZmIC1O YXVyIG52aS0xLjgxLjYub3JpZy9jb21tb24vZXhmLmMgbnZpLTEuODEuNi9jb21tb24vZXhmLmMN CistLS0gbnZpLTEuODEuNi5vcmlnL2NvbW1vbi9leGYuYwkyMDA4LTA1LTAxIDE4OjEwOjQ1LjAw MDAwMDAwMCArMDIwMA0KKysrKyBudmktMS44MS42L2NvbW1vbi9leGYuYwkyMDA4LTA1LTAxIDE4 OjEzOjIzLjAwMDAwMDAwMCArMDIwMA0KK0BAIC0yMDcsMTYgKzIwNywyMSBAQA0KKyAJICovDQor IAlvbmFtZSA9IGZycC0+bmFtZTsNCisgCWlmIChMRl9JU1NFVChGU19PUEVORVJSKSB8fCBvbmFt ZSA9PSBOVUxMIHx8ICFleGlzdHMpIHsNCisrCQltb2RlX3Qgb3JpZ191bWFzazsNCisgCQlpZiAo b3B0c19lbXB0eShzcCwgT19UTVBfRElSRUNUT1JZLCAwKSkNCisgCQkJZ290byBlcnI7DQorKwkJ b3JpZ191bWFzayA9IHVtYXNrKDApOw0KKysJCXVtYXNrKG9yaWdfdW1hc2sgJiAwMTc3KTsNCisg CQkodm9pZClzbnByaW50Zih0bmFtZSwgc2l6ZW9mKHRuYW1lKSwNCisgCQkgICAgIiVzL3ZpLlhY WFhYWCIsIE9fU1RSKHNwLCBPX1RNUF9ESVJFQ1RPUlkpKTsNCisgCQlpZiAoKGZkID0gbWtzdGVt cCh0bmFtZSkpID09IC0xKSB7DQorKwkJCXVtYXNrKG9yaWdfdW1hc2spOw0KKyAJCQltc2dxKHNw LCBNX1NZU0VSUiwNCisgCQkJICAgICIyMzd8VW5hYmxlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmls ZSIpOw0KKyAJCQlnb3RvIGVycjsNCisgCQl9DQorIAkJKHZvaWQpY2xvc2UoZmQpOw0KKysJCXVt YXNrKG9yaWdfdW1hc2spOw0KKyANCisgCQlpZiAoZnJwLT5uYW1lID09IE5VTEwpDQorIAkJCUZf U0VUKGZycCwgRlJfVE1QRklMRSk7DQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9udmkvMDljYXN0aW5n LnBhdGNoIGIvdGVzdGluZy9udmkvMDljYXN0aW5nLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggMDAwMDAwMC4uOWYwYjIxNw0KLS0tIC9kZXYvbnVsbA0KKysrIGIvdGVzdGluZy9u dmkvMDljYXN0aW5nLnBhdGNoDQpAQCAtMCwwICsxLDI0IEBADQorRnJvbTogPGhlc3NvQHBvb2wu bWF0aC50dS1iZXJsaW4uZGU+DQorU3ViamVjdDogTm8gZGVzY3JpcHRpb24uDQorDQorZGlmZiAt TmF1ciBudmktMS44MS42Lm9yaWcvdmkvdl9jaC5jIG52aS0xLjgxLjYvdmkvdl9jaC5jDQorLS0t IG52aS0xLjgxLjYub3JpZy92aS92X2NoLmMJMjAwNy0xMS0xOCAxNzo0MTo0Mi4wMDAwMDAwMDAg KzAxMDANCisrKysgbnZpLTEuODEuNi92aS92X2NoLmMJMjAwOC0wNS0wMSAxODoxNDowMy4wMDAw MDAwMDAgKzAyMDANCitAQCAtMTY1LDcgKzE2NSw3IEBADQorIAllbmRwID0gKHN0YXJ0cCA9IHAp ICsgbGVuOw0KKyAJcCArPSB2cC0+bV9zdGFydC5jbm87DQorIAlmb3IgKGNudCA9IEZfSVNTRVQo dnAsIFZDX0MxU0VUKSA/IHZwLT5jb3VudCA6IDE7IGNudC0tOykgew0KKy0JCXdoaWxlICgrK3Ag PCBlbmRwICYmICpwICE9IGtleSk7DQorKwkJd2hpbGUgKCsrcCA8IGVuZHAgJiYgKnAgIT0gKGNo YXIpIGtleSk7DQorIAkJaWYgKHAgPT0gZW5kcCkgew0KKyAJCQlub3Rmb3VuZChzcCwga2V5KTsN CisgCQkJcmV0dXJuICgxKTsNCitAQCAtMjQ3LDcgKzI0Nyw3IEBADQorIAllbmRwID0gcCAtIDE7 DQorIAlwICs9IHZwLT5tX3N0YXJ0LmNubzsNCisgCWZvciAoY250ID0gRl9JU1NFVCh2cCwgVkNf QzFTRVQpID8gdnAtPmNvdW50IDogMTsgY250LS07KSB7DQorLQkJd2hpbGUgKC0tcCA+IGVuZHAg JiYgKnAgIT0ga2V5KTsNCisrCQl3aGlsZSAoLS1wID4gZW5kcCAmJiAqcCAhPSAoY2hhcikga2V5 KTsNCisgCQlpZiAocCA9PSBlbmRwKSB7DQorIAkJCW5vdGZvdW5kKHNwLCBrZXkpOw0KKyAJCQly ZXR1cm4gKDEpOw0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbnZpLzEwbm9fb25lX2xpbmVfdmlzdWFs LnBhdGNoIGIvdGVzdGluZy9udmkvMTBub19vbmVfbGluZV92aXN1YWwucGF0Y2gNCm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi40MWE2MzhkDQotLS0gL2Rldi9udWxsDQorKysg Yi90ZXN0aW5nL252aS8xMG5vX29uZV9saW5lX3Zpc3VhbC5wYXRjaA0KQEAgLTAsMCArMSwyMSBA QA0KK0Zyb206IDxoZXNzb0Bwb29sLm1hdGgudHUtYmVybGluLmRlPg0KK1N1YmplY3Q6IENhdGNo IHNlZ2ZhdWx0cyB3aGVuIHRoZSBzY3JlZW4gaXMgb25seSBvbmUgbGluZSBoaWdoLg0KKw0KK2Rp ZmYgLU5hdXIgbnZpLTEuODEuNi5vcmlnL3ZpL3ZpLmMgbnZpLTEuODEuNi92aS92aS5jDQorLS0t IG52aS0xLjgxLjYub3JpZy92aS92aS5jCTIwMDctMTEtMTggMTc6NDE6NDIuMDAwMDAwMDAwICsw MTAwDQorKysrIG52aS0xLjgxLjYvdmkvdmkuYwkyMDA4LTA1LTAxIDE4OjE1OjE0LjAwMDAwMDAw MCArMDIwMA0KK0BAIC05NzQsNiArOTc0LDE0IEBADQorIAlzcC0+cm93cyA9IHZpcC0+c3Jvd3Mg PSBPX1ZBTChzcCwgT19MSU5FUyk7DQorIAlzcC0+Y29scyA9IE9fVkFMKHNwLCBPX0NPTFVNTlMp Ow0KKyAJc3AtPnRfcm93cyA9IHNwLT50X21pbnJvd3MgPSBPX1ZBTChzcCwgT19XSU5ET1cpOw0K KysJLyoNCisrCSAqIFRvIGF2b2lkIHNlZ2ZhdWx0cyBvbiB0ZXJtaW5hbHMgd2l0aCBvbmx5IG9u ZSBsaW5lLA0KKysJICogY2F0Y2ggdGhpcyBjb3JuZXIgY2FzZSBub3cgYW5kIGRpZSBleHBsaWNp dGx5Lg0KKysJICovDQorKwlpZiAoc3AtPnRfcm93cyA9PSAwKSB7DQorKwkJKHZvaWQpZnByaW50 ZihzdGRlcnIsICJFcnJvcjogU2NyZWVuIHRvbyBzbWFsbCBmb3IgdmlzdWFsIG1vZGUuXG4iKTsN CisrCQlyZXR1cm4gMTsNCisrCX0NCisgCWlmIChzcC0+cm93cyAhPSAxKSB7DQorIAkJaWYgKHNw LT50X3Jvd3MgPiBzcC0+cm93cyAtIDEpIHsNCisgCQkJc3AtPnRfbWlucm93cyA9IHNwLT50X3Jv d3MgPSBzcC0+cm93cyAtIDE7DQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9udmkvMTFiYWNrd2FyZF9z ZW50ZW5jZV9tb3ZpbmcucGF0Y2ggYi90ZXN0aW5nL252aS8xMWJhY2t3YXJkX3NlbnRlbmNlX21v dmluZy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmQzYjU2M2IN Ci0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvbnZpLzExYmFja3dhcmRfc2VudGVuY2VfbW92 aW5nLnBhdGNoDQpAQCAtMCwwICsxLDE1IEBADQorRnJvbTogPGhlc3NvQHBvb2wubWF0aC50dS1i ZXJsaW4uZGU+DQorU3ViamVjdDogTm8gZGVzY3JpcHRpb24uDQorDQorZGlmZiAtTmF1ciBudmkt MS44MS42Lm9yaWcvdmkvdl9zZW50ZW5jZS5jIG52aS0xLjgxLjYvdmkvdl9zZW50ZW5jZS5jDQor LS0tIG52aS0xLjgxLjYub3JpZy92aS92X3NlbnRlbmNlLmMJMjAwNy0xMS0xOCAxNzo0MTo0Mi4w MDAwMDAwMDAgKzAxMDANCisrKysgbnZpLTEuODEuNi92aS92X3NlbnRlbmNlLmMJMjAwOC0wNS0w MSAxODoxNTozNy4wMDAwMDAwMDAgKzAyMDANCitAQCAtMjkxLDcgKzI5MSw3IEBADQorIAkJCSAq IHdlIGNhbiBlbmQgdXAgd2hlcmUgd2Ugc3RhcnRlZC4gIEZpeCBpdC4NCisgCQkJICovDQorIAkJ CWlmICh2cC0+bV9zdGFydC5sbm8gIT0gY3MuY3NfbG5vIHx8DQorLQkJCSAgICB2cC0+bV9zdGFy dC5jbm8gIT0gY3MuY3NfY25vKQ0KKysJCQkgICAgdnAtPm1fc3RhcnQuY25vID4gY3MuY3NfY25v KQ0KKyAJCQkJZ290byBva3JldDsNCisgDQorIAkJCS8qDQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9u dmkvMTJob3Jpel9zY3JvbGxfY291bnQucGF0Y2ggYi90ZXN0aW5nL252aS8xMmhvcml6X3Njcm9s bF9jb3VudC5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmNhZDQ5 NTgNCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvbnZpLzEyaG9yaXpfc2Nyb2xsX2NvdW50 LnBhdGNoDQpAQCAtMCwwICsxLDE1IEBADQorRnJvbTogPGhlc3NvQHBvb2wubWF0aC50dS1iZXJs aW4uZGU+DQorU3ViamVjdDogTm8gZGVzY3JpcHRpb24uDQorDQorZGlmZiAtTmF1ciBudmktMS44 MS42Lm9yaWcvdmkvdnNfcmVmcmVzaC5jIG52aS0xLjgxLjYvdmkvdnNfcmVmcmVzaC5jDQorLS0t IG52aS0xLjgxLjYub3JpZy92aS92c19yZWZyZXNoLmMJMjAwNy0xMS0xOCAxNzo0MTo0Mi4wMDAw MDAwMDAgKzAxMDANCisrKysgbnZpLTEuODEuNi92aS92c19yZWZyZXNoLmMJMjAwOC0wNS0wMSAx ODoxNjowMS4wMDAwMDAwMDAgKzAyMDANCitAQCAtNTY5LDcgKzU2OSw3IEBADQorIAkJICogZm9y IHRoZSBudW1iZXIgb3B0aW9uIG9mZnNldC4NCisgCQkgKi8NCisgCQljbnQgPSB2c19jb2x1bW5z KHNwLCBOVUxMLCBMTk8sICZDTk8sIE5VTEwpOw0KKy0JCWlmIChPX0lTU0VUKHNwLCBPX05VTUJF UikpDQorKwkJaWYgKE9fSVNTRVQoc3AsIE9fTlVNQkVSKSAmJiBjbnQpDQorIAkJCWNudCAtPSBP X05VTUJFUl9MRU5HVEg7DQorIA0KKyAJCS8qIEFkanVzdCB0aGUgd2luZG93IHRvd2FyZHMgdGhl IGJlZ2lubmluZyBvZiB0aGUgbGluZS4gKi8NCmRpZmYgLS1naXQgYS90ZXN0aW5nL252aS8xM3dp ZGVjaGFyX2hvcnJvcnMucGF0Y2ggYi90ZXN0aW5nL252aS8xM3dpZGVjaGFyX2hvcnJvcnMucGF0 Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5kNmI1ZjMzDQotLS0gL2Rl di9udWxsDQorKysgYi90ZXN0aW5nL252aS8xM3dpZGVjaGFyX2hvcnJvcnMucGF0Y2gNCkBAIC0w LDAgKzEsNjQgQEANCitGcm9tOiA8aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5kZT4NCitTdWJq ZWN0OiBUaGlzIHBhdGNoIHRyaWVzIHRvIGNvcGUgd2l0aCB0aGUgZmFjdCB0aGF0IHdpZGVjaGFy IHN1cHBvcnQNCitpbiBudmkgaXMgYXQgYmVzdCBydWRpbWVudGFyeS4NCitIdW5rIDEpDQorKiBE dWUgdG8gImNoID0gKnQiLCB0aGlzIGNvZGUgaXMgbm90IHdpZGUtY2hhciBhd2FyZSwgc28NCitj YXN0IHRoZSB2YWx1ZSB0byBhIHByb3BlciB0eXBlIHNvIHRoZSBLRVlfIG1hY3JvcyBtYWtlDQor dGhlIHJpZ2h0IGNob2ljZS4NCitIdW5rIDIpDQorKiBQcmludGluZyBvZiB0aGUgaW4tL2RlY3Jl YXNlZCBudW1iZXIgYmFjayBpbnRvIHRoZSBzY3JlZW4NCitidWZmZXIgaXMgbm90IHdpZGVjaGFy LWF3YXJlLCBlaXRoZXIuIEFkZCBhIGRpcnR5IGZpeC4NCitDZi4gIzQ5NzM0OS4NCisNCistLS0g bnZpLTEuODEuNi5vcmlnL3ZpL3ZzX21zZy5jCTIwMDctMTEtMTggMTc6NDE6NDIuMDAwMDAwMDAw ICswMTAwDQorKysrIG52aS0xLjgxLjYvdmkvdnNfbXNnLmMJMjAwOS0wMy0wMSAxNDo1MTowOC4y MTE0MTQxMzIgKzAxMDANCitAQCAtNDcyLDEwICs0NzIsMTAgQEANCisgCQkJICovDQorIAkJCWlm IChjaCA9PSAnXHQnKQ0KKyAJCQkJY2ggPSAnICc7DQorLQkJCWNobGVuID0gS0VZX0xFTihzcCwg Y2gpOw0KKysJCQljaGxlbiA9IEtFWV9MRU4oc3AsICh1bnNpZ25lZCBjaGFyKWNoKTsNCisgCQkJ aWYgKGNicCArIGNobGVuID49IGVjYnApDQorIAkJCQlGTFVTSDsNCistCQkJZm9yIChrcCA9IEtF WV9OQU1FKHNwLCBjaCk7IGNobGVuLS07KQ0KKysJCQlmb3IgKGtwID0gS0VZX05BTUUoc3AsICh1 bnNpZ25lZCBjaGFyKWNoKTsgY2hsZW4tLTspDQorIAkJCQkqY2JwKysgPSAqa3ArKzsNCisgCQl9 DQorIAkJaWYgKGNicCA+IGNidWYpDQorLS0tIG52aS0xLjgxLjYub3JpZy92aS92X2luY3JlbWVu dC5jCTIwMDctMTEtMTggMTc6NDE6NDIuMDAwMDAwMDAwICswMTAwDQorKysrIG52aS0xLjgxLjYv dmkvdl9pbmNyZW1lbnQuYwkyMDA5LTAzLTAxIDE1OjEyOjUwLjk1MDQxNTg3NCArMDEwMA0KK0BA IC01Nyw3ICs1Nyw3IEBADQorIAlsb25nIGNoYW5nZSwgbHRtcCwgbHZhbDsNCisgCXNpemVfdCBi ZWcsIGJsZW4sIGVuZCwgbGVuLCBubGVuLCB3bGVuOw0KKyAJaW50IGJhc2UsIGlzZW1wdHksIHJ2 YWw7DQorLQljaGFyICpudHlwZSwgbmJ1ZlsxMDBdOw0KKysJY2hhciAqbnR5cGUsIG5idWZbMTAw ICogc2l6ZW9mKENIQVJfVCldOw0KKyAJQ0hBUl9UICpicCwgKnAsICp0Ow0KKyANCisgCS8qIFZh bGlkYXRlIHRoZSBvcGVyYXRvci4gKi8NCitAQCAtMjAyLDcgKzIwMiw3IEBADQorIAkJLyogSWYg d2UgY3Jvc3MgMCwgc2lnbmVkIG51bWJlcnMgbG9zZSB0aGVpciBzaWduLiAqLw0KKyAJCWlmIChs dmFsID09IDAgJiYgbnR5cGUgPT0gZm10W1NERUNdKQ0KKyAJCQludHlwZSA9IGZtdFtERUNdOw0K Ky0JCW5sZW4gPSBzbnByaW50ZihuYnVmLCBzaXplb2YobmJ1ZiksIG50eXBlLCBsdmFsKTsNCisr CQlubGVuID0gc25wcmludGYobmJ1Ziwgc2l6ZW9mKG5idWYpL3NpemVvZihDSEFSX1QpLCBudHlw ZSwgbHZhbCk7DQorIAl9IGVsc2Ugew0KKyAJCWlmICgobnJldCA9IG5nZXRfdXNsb25nKHNwLCAm dWx2YWwsIHQsIE5VTEwsIGJhc2UpKSAhPSBOVU1fT0spDQorIAkJCWdvdG8gZXJyOw0KK0BAIC0y MjQsNyArMjI0LDE1IEBADQorIAkJaWYgKGJhc2UgPT0gMTYpDQorIAkJCXdsZW4gLT0gMjsNCisg DQorLQkJbmxlbiA9IHNucHJpbnRmKG5idWYsIHNpemVvZihuYnVmKSwgbnR5cGUsIHdsZW4sIHVs dmFsKTsNCisrCQlubGVuID0gc25wcmludGYobmJ1Ziwgc2l6ZW9mKG5idWYpL3NpemVvZihDSEFS X1QpLCBudHlwZSwgd2xlbiwgdWx2YWwpOw0KKysJfQ0KKysNCisrCS8qIEluZmxhdGUgdGhlIHBy aW50ZWQgY2hhciBidWZmZXIgdG8gQ0hBUl9UIGVsZW1lbnRzIGlmIG5lY2Vzc2FyeSAqLw0KKysJ aWYgKHNpemVvZihDSEFSX1QpID4gc2l6ZW9mKGNoYXIpKSB7DQorKwkJaW50IG5sZW5faW5mbGF0 ZTsNCisrCQlmb3IgKG5sZW5faW5mbGF0ZSA9IG5sZW47IG5sZW5faW5mbGF0ZSA+PSAwOyBubGVu X2luZmxhdGUtLSkgew0KKysJCQkoKENIQVJfVCAqKW5idWYpW25sZW5faW5mbGF0ZV0gPSBuYnVm W25sZW5faW5mbGF0ZV07DQorKwkJfQ0KKyAJfQ0KKyANCisgCS8qIEJ1aWxkIHRoZSBuZXcgbGlu ZS4gKi8NCmRpZmYgLS1naXQgYS90ZXN0aW5nL252aS8xNHByaXZhdGVfcmVnZXhfZml4ZXMucGF0 Y2ggYi90ZXN0aW5nL252aS8xNHByaXZhdGVfcmVnZXhfZml4ZXMucGF0Y2gNCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5iOThmNTUzDQotLS0gL2Rldi9udWxsDQorKysgYi90 ZXN0aW5nL252aS8xNHByaXZhdGVfcmVnZXhfZml4ZXMucGF0Y2gNCkBAIC0wLDAgKzEsMjggQEAN CitGcm9tOiA8aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5kZT4NCitTdWJqZWN0OiBGaXhlcyB0 byB0aGUgcHJpdmF0ZSByZWdleCBsaWJyYXJ5OyBpbmNsdWRlcyBmaXggZm9yICM1MjM5MzQuDQor DQorZGlmZiAtTmF1ciByZWdleC5vcmlnL3JlZ2NvbXAuYyByZWdleC9yZWdjb21wLmMNCistLS0g bnZpLTEuODEuNi5vcmlnL3JlZ2V4L3JlZ2NvbXAuYwkyMDA3LTExLTE4IDE3OjQxOjQyLjAwMDAw MDAwMCArMDEwMA0KKysrKyBudmktMS44MS42L3JlZ2V4L3JlZ2NvbXAuYwkyMDA4LTA1LTAxIDE4 OjM3OjU3LjAwMDAwMDAwMCArMDIwMA0KK0BAIC02MDYsNyArNjA2LDggQEANCisgCQlSRVFVSVJF KHN0YXJvcmRpbmFyeSwgUkVHX0JBRFJQVCk7DQorIAkJLyogRkFMTFRIUk9VR0ggKi8NCisgCWRl ZmF1bHQ6DQorLQkJb3JkaW5hcnkocCwgYyAmfiBCQUNLU0wpOw0KKysJICAvKiBvcmRpbmFyeShw LCBjICZ+IEJBQ0tTTCk7IC0tIEZpeCBwb3RlbnRpYWwgb3ZlcmZsb3cgKi8NCisrCSAgICAgICAg b3JkaW5hcnkocCwgYyAmIDB4ZmYpOw0KKyAJCWJyZWFrOw0KKyAJfQ0KKyANCitkaWZmIC1OYXVy IHJlZ2V4Lm9yaWcvcmVnZXhlYy5jIHJlZ2V4L3JlZ2V4ZWMuYw0KKy0tLSBudmktMS44MS42Lm9y aWcvcmVnZXgvcmVnZXhlYy5jCTIwMDctMTEtMTggMTc6NDE6NDIuMDAwMDAwMDAwICswMTAwDQor KysrIG52aS0xLjgxLjYvcmVnZXgvcmVnZXhlYy5jCTIwMDgtMDUtMDEgMTg6Mzg6MDAuMDAwMDAw MDAwICswMjAwDQorQEAgLTYzLDcgKzYzLDcgQEANCisgDQorIC8qIG1hY3JvcyBmb3IgbWFuaXB1 bGF0aW5nIHN0YXRlcywgc21hbGwgdmVyc2lvbiAqLw0KKyAjZGVmaW5lCXN0YXRlcwlpbnQNCist I2RlZmluZQlzdGF0ZXMxCXN0YXRlcwkJLyogZm9yIGxhdGVyIHVzZSBpbiByZWdleGVjKCkgZGVj aXNpb24gKi8NCisrdHlwZWRlZiBzdGF0ZXMgc3RhdGVzMTsJCS8qIGZvciBsYXRlciB1c2UgaW4g cmVnZXhlYygpIGRlY2lzaW9uICovDQorICNkZWZpbmUJQ0xFQVIodikJKCh2KSA9IDApDQorICNk ZWZpbmUJU0VUMCh2LCBuKQkoKHYpICY9IH4oMSA8PCAobikpKQ0KKyAjZGVmaW5lCVNFVDEodiwg bikJKCh2KSB8PSAxIDw8IChuKSkNCmRpZmYgLS1naXQgYS90ZXN0aW5nL252aS8xNXNlYXJjaF93 b3JkLnBhdGNoIGIvdGVzdGluZy9udmkvMTVzZWFyY2hfd29yZC5wYXRjaA0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLmY3ODI5NzgNCi0tLSAvZGV2L251bGwNCisrKyBiL3Rl c3RpbmcvbnZpLzE1c2VhcmNoX3dvcmQucGF0Y2gNCkBAIC0wLDAgKzEsMjYgQEANCitGcm9tOiBB bCBWaXJvIDx2aXJvQFplbklWLmxpbnV4Lm9yZy51az4NCitTdWJqZWN0OiBGaXgge15BfSBjb21t YW5kLiAoRW5kLW9mLXdvcmQgd2FzIG5vdCBpbmNsdWRlZCBpbiBzZWFyY2gNCityZWdleHAgbGVh ZGluZyB0byBmYWxzZSBwb3NpdGl2ZXMuKQ0KKw0KKy0tLSBudmktMS44MS42Lm9yaWcvdmkvdl9z ZWFyY2guYwkyMDA3LTExLTE4IDExOjQxOjQyLjAwMDAwMDAwMCAtMDUwMA0KKysrKyBudmktMS44 MS42L3ZpL3Zfc2VhcmNoLmMJMjAwOS0wMy0wNSAxNTozNzozNy4wMDAwMDAwMDAgLTA1MDANCitA QCAtMzIyLDE1ICszMjIsMTYgQEANCisgdl9zZWFyY2h3KFNDUiAqc3AsIFZJQ01EICp2cCkNCisg ew0KKyAJc2l6ZV90IGJsZW4sIGxlbjsNCisrCXNpemVfdCBvbGVuID0gU1RSTEVOKFZJUChzcCkt PmtleXcpOw0KKyAJaW50IHJ2YWw7DQorIAlDSEFSX1QgKmJwLCAqcDsNCisgDQorLQlsZW4gPSBW SVAoc3ApLT5rbGVuICsgUkVfV1NUQVJUX0xFTiArIFJFX1dTVE9QX0xFTjsNCisrCWxlbiA9IG9s ZW4gKyBSRV9XU1RBUlRfTEVOICsgUkVfV1NUT1BfTEVOOw0KKyAJR0VUX1NQQUNFX1JFVFcoc3As IGJwLCBibGVuLCBsZW4pOw0KKyAJTUVNQ1BZKGJwLCBSRV9XU1RBUlQsIFJFX1dTVEFSVF9MRU4p OyANCisgCXAgPSBicCArIFJFX1dTVEFSVF9MRU47DQorLQlNRU1DUFkocCwgVklQKHNwKS0+a2V5 dywgVklQKHNwKS0+a2xlbik7DQorLQlwICs9IFZJUChzcCktPmtsZW47DQorKwlNRU1DUFkocCwg VklQKHNwKS0+a2V5dywgb2xlbik7DQorKwlwICs9IG9sZW47DQorIAlNRU1DUFkocCwgUkVfV1NU T1AsIFJFX1dTVE9QX0xFTik7IA0KKyANCisgCXJ2YWwgPSB2X3NlYXJjaChzcCwgdnAsIGJwLCBs ZW4sIFNFQVJDSF9TRVQsIEZPUldBUkQpOw0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbnZpLzE2bWFu cGFnZV9lcnJvcnMucGF0Y2ggYi90ZXN0aW5nL252aS8xNm1hbnBhZ2VfZXJyb3JzLnBhdGNoDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZTE2N2M1Zg0KLS0tIC9kZXYvbnVs bA0KKysrIGIvdGVzdGluZy9udmkvMTZtYW5wYWdlX2Vycm9ycy5wYXRjaA0KQEAgLTAsMCArMSw3 NjcgQEANCitGcm9tOiA8aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5kZT4NCitTdWJqZWN0OiBG aXggYSB0cnVja2xvYWQgb2Ygcm9mZiBtYXJrdXAgZ2xpdGNoZXMuDQorDQorZGlmZiAtTmF1ciBu dmktMS44MS42Lm9yaWcvZG9jcy92aS5tYW4vdmkuMSBudmktMS44MS42L2RvY3MvdmkubWFuL3Zp LjENCistLS0gbnZpLTEuODEuNi5vcmlnL2RvY3MvdmkubWFuL3ZpLjEJMjAwNy0xMS0xOCAxNzo0 MTo0Mi4wMDAwMDAwMDAgKzAxMDANCisrKysgbnZpLTEuODEuNi9kb2NzL3ZpLm1hbi92aS4xCTIw MDgtMDUtMDEgMTg6MTc6NTkuMDAwMDAwMDAwICswMjAwDQorQEAgLTE3LDM1ICsxNywzNSBAQA0K KyAuU0ggU1lOT1BTSVMNCisgLkIgZXgNCisgW1xjDQorLS5CIC1lRlJyU3N2XGMNCisrLkIgXC1l RlJyU3N2XGMNCisgXSBbXGMNCistLkJJIC1jICIgY21kIlxjDQorKy5CSSBcLWMgIiBjbWQiXGMN CisgXSBbXGMNCistLkJJIC10ICIgdGFnIlxjDQorKy5CSSBcLXQgIiB0YWciXGMNCisgXSBbXGMN CistLkJJIC13ICIgc2l6ZSJcYw0KKysuQkkgXC13ICIgc2l6ZSJcYw0KKyBdIFtmaWxlIC4uLl0N CisgLmJyDQorIC5CIHZpDQorIFtcYw0KKy0uQiAtZUZsUnJTdlxjDQorKy5CIFwtZUZsUnJTdlxj DQorIF0gW1xjDQorLS5CSSAtYyAiIGNtZCJcYw0KKysuQkkgXC1jICIgY21kIlxjDQorIF0gW1xj DQorLS5CSSAtdCAiIHRhZyJcYw0KKysuQkkgXC10ICIgdGFnIlxjDQorIF0gW1xjDQorLS5CSSAt dyAiIHNpemUiXGMNCisrLkJJIFwtdyAiIHNpemUiXGMNCisgXSBbZmlsZSAuLi5dDQorIC5icg0K KyAuQiB2aWV3DQorIFtcYw0KKy0uQiAtZUZSclN2XGMNCisrLkIgXC1lRlJyU3ZcYw0KKyBdIFtc Yw0KKy0uQkkgLWMgIiBjbWQiXGMNCisrLkJJIFwtYyAiIGNtZCJcYw0KKyBdIFtcYw0KKy0uQkkg LXQgIiB0YWciXGMNCisrLkJJIFwtdCAiIHRhZyJcYw0KKyBdIFtcYw0KKy0uQkkgLXcgIiBzaXpl IlxjDQorKy5CSSBcLXcgIiBzaXplIlxjDQorIF0gW2ZpbGUgLi4uXQ0KKyAuU0ggTElDRU5TRQ0K KyBUaGUgdmkgcHJvZ3JhbSBpcyBmcmVlbHkgcmVkaXN0cmlidXRhYmxlLiAgWW91IGFyZSB3ZWxj b21lIHRvIGNvcHksDQorQEAgLTU3LDcgKzU3LDcgQEANCisgLkkgXCZWaQ0KKyBpcyBhIHNjcmVl biBvcmllbnRlZCB0ZXh0IGVkaXRvci4NCisgLkkgXCZFeA0KKy1pcyBhIGxpbmUtb3JpZW50ZWQg dGV4dCBlZGl0b3IuDQorK2lzIGEgbGluZVwoaHlvcmllbnRlZCB0ZXh0IGVkaXRvci4NCisgLkkg XCZFeA0KKyBhbmQNCisgLkkgXCZ2aQ0KK0BAIC02Niw3ICs2Niw3IEBADQorIC5JIFZpZXcNCisg aXMgdGhlIGVxdWl2YWxlbnQgb2YgdXNpbmcgdGhlDQorIC5CIFwtUg0KKy0ocmVhZC1vbmx5KSBv cHRpb24gb2YNCisrKHJlYWRcKGh5b25seSkgb3B0aW9uIG9mDQorIC5JUiBcJnZpIC4NCisgLlBQ DQorIFRoaXMgbWFudWFsIHBhZ2UgaXMgdGhlIG9uZSBwcm92aWRlZCB3aXRoIHRoZQ0KK0BAIC03 NSw3ICs3NSw3IEBADQorIC5JIGV4L3ZpDQorIHRleHQgZWRpdG9ycy4NCisgLkkgTmV4L252aQ0K Ky1hcmUgaW50ZW5kZWQgYXMgYnVnLWZvci1idWcgY29tcGF0aWJsZSByZXBsYWNlbWVudHMgZm9y IHRoZSBvcmlnaW5hbA0KKythcmUgaW50ZW5kZWQgYXMgYnVnXChoeWZvclwoaHlidWcgY29tcGF0 aWJsZSByZXBsYWNlbWVudHMgZm9yIHRoZSBvcmlnaW5hbA0KKyBGb3VydGggQmVya2VsZXkgU29m dHdhcmUgRGlzdHJpYnV0aW9uICg0QlNEKQ0KKyAuSSBcJmV4DQorIGFuZA0KK0BAIC05Myw3ICs5 Myw3IEBADQorIGVkaXRvciBiZWZvcmUgdGhpcyBtYW51YWwgcGFnZS4NCisgSWYgeW91J3JlIGlu IGFuIHVuZmFtaWxpYXIgZW52aXJvbm1lbnQsIGFuZCB5b3UgYWJzb2x1dGVseSBoYXZlIHRvDQor IGdldCB3b3JrIGRvbmUgaW1tZWRpYXRlbHksIHJlYWQgdGhlIHNlY3Rpb24gYWZ0ZXIgdGhlIG9w dGlvbnMNCistZGVzY3JpcHRpb24sIGVudGl0bGVkIGBgRmFzdCBTdGFydHVwJycuDQorK2Rlc2Ny aXB0aW9uLCBlbnRpdGxlZCBcKGxxRmFzdCBTdGFydHVwXChycS4NCisgSXQncyBwcm9iYWJseSBl bm91Z2ggdG8gZ2V0IHlvdSBnb2luZy4NCisgLlBQDQorIFRoZSBmb2xsb3dpbmcgb3B0aW9ucyBh cmUgYXZhaWxhYmxlOg0KK0BAIC0xMDUsNyArMTA1LDcgQEANCisgUGFydGljdWxhcmx5IHVzZWZ1 bCBmb3IgaW5pdGlhbCBwb3NpdGlvbmluZyBpbiB0aGUgZmlsZSwgaG93ZXZlcg0KKyAuQiBjbWQN CisgaXMgbm90IGxpbWl0ZWQgdG8gcG9zaXRpb25pbmcgY29tbWFuZHMuDQorLVRoaXMgaXMgdGhl IFBPU0lYIDEwMDMuMiBpbnRlcmZhY2UgZm9yIHRoZSBoaXN0b3JpYyBgYCtjbWQnJyBzeW50YXgu DQorK1RoaXMgaXMgdGhlIFBPU0lYIDEwMDMuMiBpbnRlcmZhY2UgZm9yIHRoZSBoaXN0b3JpYyBc KGxxK2NtZFwocnEgc3ludGF4Lg0KKyAuSSBOZXgvbnZpDQorIHN1cHBvcnRzIGJvdGggdGhlIG9s ZCBhbmQgbmV3IHN5bnRheC4NCisgLlRQDQorQEAgLTEyMiw3ICsxMjIsNyBAQA0KKyBTdGFydCBl ZGl0aW5nIHdpdGggdGhlIGxpc3AgYW5kIHNob3dtYXRjaCBvcHRpb25zIHNldC4NCisgLlRQDQor IC5CIFwtUg0KKy1TdGFydCBlZGl0aW5nIGluIHJlYWQtb25seSBtb2RlLCBhcyBpZiB0aGUgY29t bWFuZCBuYW1lIHdhcw0KKytTdGFydCBlZGl0aW5nIGluIHJlYWRcKGh5b25seSBtb2RlLCBhcyBp ZiB0aGUgY29tbWFuZCBuYW1lIHdhcw0KKyAuSVIgdmlldyAsDQorIG9yIHRoZQ0KKyAuQiByZWFk b25seQ0KK0BAIC0xNTEsNyArMTUxLDcgQEANCisgUHJvbXB0cywgaW5mb3JtYXRpdmUgbWVzc2Fn ZXMgYW5kIG90aGVyIHVzZXIgb3JpZW50ZWQgbWVzc2FnZQ0KKyBhcmUgdHVybmVkIG9mZiwNCisg YW5kIG5vIHN0YXJ0dXAgZmlsZXMgb3IgZW52aXJvbm1lbnRhbCB2YXJpYWJsZXMgYXJlIHJlYWQu DQorLVRoaXMgaXMgdGhlIFBPU0lYIDEwMDMuMiBpbnRlcmZhY2UgZm9yIHRoZSBoaXN0b3JpYyBg YFwtJycgYXJndW1lbnQuDQorK1RoaXMgaXMgdGhlIFBPU0lYIDEwMDMuMiBpbnRlcmZhY2UgZm9y IHRoZSBoaXN0b3JpYyBcKGxxXC1cKHJxIGFyZ3VtZW50Lg0KKyAuSSBcJk5leC9udmkNCisgc3Vw cG9ydHMgYm90aCB0aGUgb2xkIGFuZCBuZXcgc3ludGF4Lg0KKyAuVFANCitAQCAtMjE1LDggKzIx NSw4IEBADQorIFRoZXJlIGFyZSBjb21tYW5kcyB0aGF0IHN3aXRjaCB5b3UgaW50byBpbnB1dCBt b2RlLg0KKyBUaGVyZSBpcyBvbmx5IG9uZSBrZXkgdGhhdCB0YWtlcyB5b3Ugb3V0IG9mIGlucHV0 IG1vZGUsDQorIGFuZCB0aGF0IGlzIHRoZSA8ZXNjYXBlPiBrZXkuDQorLShLZXkgbmFtZXMgYXJl IHdyaXR0ZW4gdXNpbmcgbGVzcy10aGFuIGFuZCBncmVhdGVyLXRoYW4gc2lnbnMsIGUuZy4NCist PGVzY2FwZT4gbWVhbnMgdGhlIGBgZXNjYXBlJycga2V5LCB1c3VhbGx5IGxhYmVsZWQgYGBlc2Mn JyBvbiB5b3VyDQorKyhLZXkgbmFtZXMgYXJlIHdyaXR0ZW4gdXNpbmcgbGVzc1woaHl0aGFuIGFu ZCBncmVhdGVyXChoeXRoYW4gc2lnbnMsIGUuZy4NCisrPGVzY2FwZT4gbWVhbnMgdGhlIFwobHFl c2NhcGVcKHJxIGtleSwgdXN1YWxseSBsYWJlbGVkIFwobHFlc2NcKHJxIG9uIHlvdXINCisgdGVy bWluYWwncyBrZXlib2FyZC4pDQorIElmIHlvdSdyZSBldmVyIGNvbmZ1c2VkIGFzIHRvIHdoaWNo IG1vZGUgeW91J3JlIGluLA0KKyBrZWVwIGVudGVyaW5nIHRoZSA8ZXNjYXBlPiBrZXkgdW50aWwN CitAQCAtMjI3LDkgKzIyNyw5IEBADQorIHdpbGwgYmVlcCBhdCB5b3UgaWYgeW91IHRyeSBhbmQg ZG8gc29tZXRoaW5nIHRoYXQncyBub3QgYWxsb3dlZC4NCisgSXQgd2lsbCBhbHNvIGRpc3BsYXkg ZXJyb3IgbWVzc2FnZXMuKQ0KKyAuUFANCistVG8gc3RhcnQgZWRpdGluZyBhIGZpbGUsIGVudGVy IHRoZSBjb21tYW5kIGBgdmkgZmlsZV9uYW1lPGNhcnJpYWdlLXJldHVybj4nJy4NCisrVG8gc3Rh cnQgZWRpdGluZyBhIGZpbGUsIGVudGVyIHRoZSBjb21tYW5kIFwobHF2aSBmaWxlX25hbWU8Y2Fy cmlhZ2VcKGh5cmV0dXJuPlwocnEuDQorIFRoZSBjb21tYW5kIHlvdSBzaG91bGQgZW50ZXIgYXMg c29vbiBhcyB5b3Ugc3RhcnQgZWRpdGluZyBpcw0KKy1gYDpzZXQgdmVyYm9zZSBzaG93bW9kZTxj YXJyaWFnZS1yZXR1cm4+JycuDQorK1wobHE6c2V0IHZlcmJvc2Ugc2hvd21vZGU8Y2FycmlhZ2Vc KGh5cmV0dXJuPlwocnEuDQorIFRoaXMgd2lsbCBtYWtlIHRoZSBlZGl0b3IgZ2l2ZSB5b3UgdmVy Ym9zZSBlcnJvciBtZXNzYWdlcyBhbmQgZGlzcGxheQ0KKyB0aGUgY3VycmVudCBtb2RlIGF0IHRo ZSBib3R0b20gb2YgdGhlIHNjcmVlbi4NCisgLlBQDQorQEAgLTI0NywxMSArMjQ3LDExIEBADQor IC5CIGwNCisgTW92ZSB0aGUgY3Vyc29yIHJpZ2h0IG9uZSBjaGFyYWN0ZXIuDQorIC5UUA0KKy0u QiA8Y3Vyc29yLWFycm93cz4NCisrLkIgPGN1cnNvclwoaHlhcnJvd3M+DQorIFRoZSBjdXJzb3Ig YXJyb3cga2V5cyBzaG91bGQgd29yaywgdG9vLg0KKyAuVFANCistLkIgL3RleHQ8Y2FycmlhZ2Ut cmV0dXJuPg0KKy1TZWFyY2ggZm9yIHRoZSBzdHJpbmcgYGB0ZXh0JycgaW4gdGhlIGZpbGUsDQor Ky5CIC90ZXh0PGNhcnJpYWdlXChoeXJldHVybj4NCisrU2VhcmNoIGZvciB0aGUgc3RyaW5nIFwo bHF0ZXh0XChycSBpbiB0aGUgZmlsZSwNCisgYW5kIG1vdmUgdGhlIGN1cnNvciB0byBpdHMgZmly c3QgY2hhcmFjdGVyLg0KKyAuUFANCisgVGhlIGNvbW1hbmRzIHRvIGVudGVyIG5ldyB0ZXh0IGFy ZToNCitAQCAtMzAzLDMwICszMDMsMzAgQEANCisgLlBQDQorIFRoZSBjb21tYW5kcyB0byB3cml0 ZSB0aGUgZmlsZSBhcmU6DQorIC5UUA0KKy0uQiA6dzxjYXJyaWFnZS1yZXR1cm4+DQorKy5CIDp3 PGNhcnJpYWdlXChoeXJldHVybj4NCisgV3JpdGUgdGhlIGZpbGUgYmFjayB0byB0aGUgZmlsZSB3 aXRoIHRoZSBuYW1lIHRoYXQgeW91IG9yaWdpbmFsbHkgdXNlZA0KKyBhcyBhbiBhcmd1bWVudCBv biB0aGUNCisgLkkgXCZ2aQ0KKyBjb21tYW5kIGxpbmUuDQorIC5UUA0KKy0uQiAiOncgZmlsZV9u YW1lPGNhcnJpYWdlLXJldHVybj4iDQorLVdyaXRlIHRoZSBmaWxlIGJhY2sgdG8gdGhlIGZpbGUg d2l0aCB0aGUgbmFtZSBgYGZpbGVfbmFtZScnLg0KKysuQiAiOncgZmlsZV9uYW1lPGNhcnJpYWdl XChoeXJldHVybj4iDQorK1dyaXRlIHRoZSBmaWxlIGJhY2sgdG8gdGhlIGZpbGUgd2l0aCB0aGUg bmFtZSBcKGxxZmlsZV9uYW1lXChycS4NCisgLlBQDQorIFRoZSBjb21tYW5kcyB0byBxdWl0IGVk aXRpbmcgYW5kIGV4aXQgdGhlIGVkaXRvciBhcmU6DQorIC5UUA0KKy0uQiA6cTxjYXJyaWFnZS1y ZXR1cm4+DQorKy5CIDpxPGNhcnJpYWdlXChoeXJldHVybj4NCisgUXVpdCBlZGl0aW5nIGFuZCBs ZWF2ZSB2aSAoaWYgeW91J3ZlIG1vZGlmaWVkIHRoZSBmaWxlLCBidXQgbm90DQorIHNhdmVkIHlv dXIgY2hhbmdlcywNCisgLkkgXCZ2aQ0KKyB3aWxsIHJlZnVzZSB0byBxdWl0KS4NCisgLlRQDQor LS5CIDpxITxjYXJyaWFnZS1yZXR1cm4+DQorKy5CIDpxITxjYXJyaWFnZVwoaHlyZXR1cm4+DQor IFF1aXQsIGRpc2NhcmRpbmcgYW55IG1vZGlmaWNhdGlvbnMgdGhhdCB5b3UgbWF5IGhhdmUgbWFk ZS4NCisgLlBQDQorIE9uZSBmaW5hbCBjYXV0aW9uLg0KKyBVbnVzdWFsIGNoYXJhY3RlcnMgY2Fu IHRha2UgdXAgbW9yZSB0aGFuIG9uZSBjb2x1bW4gb24gdGhlIHNjcmVlbiwNCisgYW5kIGxvbmcg bGluZXMgY2FuIHRha2UgdXAgbW9yZSB0aGFuIGEgc2luZ2xlIHNjcmVlbiBsaW5lLg0KKy1UaGUg YWJvdmUgY29tbWFuZHMgd29yayBvbiBgYHBoeXNpY2FsJycgY2hhcmFjdGVycyBhbmQgbGluZXMs DQorK1RoZSBhYm92ZSBjb21tYW5kcyB3b3JrIG9uIFwobHFwaHlzaWNhbFwocnEgY2hhcmFjdGVy cyBhbmQgbGluZXMsDQorIGkuZS4gdGhleSBhZmZlY3QgdGhlIGVudGlyZSBsaW5lIG5vIG1hdHRl ciBob3cgbWFueSBzY3JlZW4gbGluZXMgaXQNCisgdGFrZXMgdXAgYW5kIHRoZSBlbnRpcmUgY2hh cmFjdGVyIG5vIG1hdHRlciBob3cgbWFueSBzY3JlZW4gY29sdW1ucw0KKyBpdCB0YWtlcyB1cC4N CitAQCAtMzM5LDg3ICszMzksODcgQEANCisgY2hhcmFjdGVyLg0KKyAuUFANCisgLlRQDQorLS5C ICJbY291bnRdIDxjb250cm9sLUE+Ig0KKysuQiAiW2NvdW50XSA8Y29udHJvbFwoaHlBPiINCisg U2VhcmNoIGZvcndhcmQNCisgLkkgY291bnQNCisgdGltZXMgZm9yIHRoZSBjdXJyZW50IHdvcmQu DQorIC5UUA0KKy0uQiAiW2NvdW50XSA8Y29udHJvbC1CPiINCisrLkIgIltjb3VudF0gPGNvbnRy b2xcKGh5Qj4iDQorIFBhZ2UgYmFja3dhcmRzDQorIC5JIGNvdW50DQorIHNjcmVlbnMuDQorIC5U UA0KKy0uQiAiW2NvdW50XSA8Y29udHJvbC1EPiINCisrLkIgIltjb3VudF0gPGNvbnRyb2xcKGh5 RD4iDQorIFNjcm9sbCBmb3J3YXJkDQorIC5JIGNvdW50DQorIGxpbmVzLg0KKyAuVFANCistLkIg Iltjb3VudF0gPGNvbnRyb2wtRT4iDQorKy5CICJbY291bnRdIDxjb250cm9sXChoeUU+Ig0KKyBT Y3JvbGwgZm9yd2FyZA0KKyAuSSBjb3VudA0KKyBsaW5lcywgbGVhdmluZyB0aGUgY3VycmVudCBs aW5lIGFuZCBjb2x1bW4gYXMgaXMsIGlmIHBvc3NpYmxlLg0KKyAuVFANCistLkIgIltjb3VudF0g PGNvbnRyb2wtRj4iDQorKy5CICJbY291bnRdIDxjb250cm9sXChoeUY+Ig0KKyBQYWdlIGZvcndh cmQNCisgLkkgY291bnQNCisgc2NyZWVucy4NCisgLlRQDQorLS5CICI8Y29udHJvbC1HPiINCisr LkIgIjxjb250cm9sXChoeUc+Ig0KKyBEaXNwbGF5IHRoZSBmaWxlIGluZm9ybWF0aW9uLg0KKyAu VFANCistLkIgIjxjb250cm9sLUg+Ig0KKysuQiAiPGNvbnRyb2xcKGh5SD4iDQorIC5UUA0KKyAu QiAiW2NvdW50XSBoIg0KKyBNb3ZlIHRoZSBjdXJzb3IgYmFjaw0KKyAuSSBjb3VudA0KKyBjaGFy YWN0ZXJzIGluIHRoZSBjdXJyZW50IGxpbmUuDQorIC5UUA0KKy0uQiAiW2NvdW50XSA8Y29udHJv bC1KPiINCisrLkIgIltjb3VudF0gPGNvbnRyb2xcKGh5Sj4iDQorIC5UUA0KKy0uQiAiW2NvdW50 XSA8Y29udHJvbC1OPiINCisrLkIgIltjb3VudF0gPGNvbnRyb2xcKGh5Tj4iDQorIC5UUA0KKyAu QiAiW2NvdW50XSBqIg0KKyBNb3ZlIHRoZSBjdXJzb3IgZG93bg0KKyAuSSBjb3VudA0KKyBsaW5l cyB3aXRob3V0IGNoYW5naW5nIHRoZSBjdXJyZW50IGNvbHVtbi4NCisgLlRQDQorLS5CICI8Y29u dHJvbC1MPiINCisrLkIgIjxjb250cm9sXChoeUw+Ig0KKyAuVFANCistLkIgIjxjb250cm9sLVI+ Ig0KKysuQiAiPGNvbnRyb2xcKGh5Uj4iDQorIFJlcGFpbnQgdGhlIHNjcmVlbi4NCisgLlRQDQor LS5CICJbY291bnRdIDxjb250cm9sLU0+Ig0KKysuQiAiW2NvdW50XSA8Y29udHJvbFwoaHlNPiIN CisgLlRQDQorIC5CICJbY291bnRdICsiDQorIE1vdmUgdGhlIGN1cnNvciBkb3duDQorIC5JIGNv dW50DQorIGxpbmVzIHRvIHRoZSBmaXJzdCBub25ibGFuayBjaGFyYWN0ZXIgb2YgdGhhdCBsaW5l Lg0KKyAuVFANCistLkIgIltjb3VudF0gPGNvbnRyb2wtUD4iDQorKy5CICJbY291bnRdIDxjb250 cm9sXChoeVA+Ig0KKyAuVFANCisgLkIgIltjb3VudF0gayINCisgTW92ZSB0aGUgY3Vyc29yIHVw DQorIC5JIGNvdW50DQorIGxpbmVzLCB3aXRob3V0IGNoYW5naW5nIHRoZSBjdXJyZW50IGNvbHVt bi4NCisgLlRQDQorLS5CICI8Y29udHJvbC1UPiINCisrLkIgIjxjb250cm9sXChoeVQ+Ig0KKyBS ZXR1cm4gdG8gdGhlIG1vc3QgcmVjZW50IHRhZyBjb250ZXh0Lg0KKyAuVFANCistLkIgIjxjb250 cm9sLVU+Ig0KKysuQiAiPGNvbnRyb2xcKGh5VT4iDQorIFNjcm9sbCBiYWNrd2FyZHMNCisgLkkg Y291bnQNCisgbGluZXMuDQorIC5UUA0KKy0uQiAiPGNvbnRyb2wtVz4iDQorKy5CICI8Y29udHJv bFwoaHlXPiINCisgU3dpdGNoIHRvIHRoZSBuZXh0IGxvd2VyIHNjcmVlbiBpbiB0aGUgd2luZG93 LCBvciwgdG8gdGhlIGZpcnN0DQorIHNjcmVlbiBpZiB0aGVyZSBhcmUgbm8gbG93ZXIgc2NyZWVu cyBpbiB0aGUgd2luZG93Lg0KKyAuVFANCistLkIgIjxjb250cm9sLVk+Ig0KKysuQiAiPGNvbnRy b2xcKGh5WT4iDQorIFNjcm9sbCBiYWNrd2FyZHMNCisgLkkgY291bnQNCisgbGluZXMsIGxlYXZp bmcgdGhlIGN1cnJlbnQgbGluZSBhbmQgY29sdW1uIGFzIGlzLCBpZiBwb3NzaWJsZS4NCisgLlRQ DQorLS5CICI8Y29udHJvbC1aPiINCisrLkIgIjxjb250cm9sXChoeVo+Ig0KKyBTdXNwZW5kIHRo ZSBjdXJyZW50IGVkaXRvciBzZXNzaW9uLg0KKyAuVFANCisgLkIgIjxlc2NhcGU+Ig0KK0BAIC00 MjcsMTAgKzQyNywxMCBAQA0KKyAuSSBcJmV4DQorIGNvbW1hbmRzIG9yIGNhbmNlbCBwYXJ0aWFs IGNvbW1hbmRzLg0KKyAuVFANCistLkIgIjxjb250cm9sLV0+Ig0KKysuQiAiPGNvbnRyb2xcKGh5 XT4iDQorIFB1c2ggYSB0YWcgcmVmZXJlbmNlIG9udG8gdGhlIHRhZyBzdGFjay4NCisgLlRQDQor LS5CICI8Y29udHJvbC1ePiINCisrLkIgIjxjb250cm9sXChoeV4+Ig0KKyBTd2l0Y2ggdG8gdGhl IG1vc3QgcmVjZW50bHkgZWRpdGVkIGZpbGUuDQorIC5UUA0KKyAuQiAiW2NvdW50XSA8c3BhY2U+ Ig0KK0BAIC00NDAsMTAgKzQ0MCwxMCBAQA0KKyAuSSBjb3VudA0KKyBjaGFyYWN0ZXJzIHdpdGhv dXQgY2hhbmdpbmcgdGhlIGN1cnJlbnQgbGluZS4NCisgLlRQDQorLS5CICJbY291bnRdICEgbW90 aW9uIHNoZWxsLWFyZ3VtZW50KHMpIg0KKysuQiAiW2NvdW50XSAhIG1vdGlvbiBzaGVsbFwoaHlh cmd1bWVudChzKSINCisgUmVwbGFjZSB0ZXh0IHdpdGggcmVzdWx0cyBmcm9tIGEgc2hlbGwgY29t bWFuZC4NCisgLlRQDQorLS5CICJbY291bnRdICMgI3wrfC0iDQorKy5CICJbY291bnRdICMgI3wr fFwtIg0KKyBJbmNyZW1lbnQgb3IgZGVjcmVtZW50IHRoZSBjdXJzb3IgbnVtYmVyLg0KKyAuVFAN CisgLkIgIltjb3VudF0gJCINCitAQCAtNDU3LDcgKzQ1Nyw3IEBADQorIC5UUA0KKyAuQiAiJzxj aGFyYWN0ZXI+Ig0KKyAuVFANCistLkIgImA8Y2hhcmFjdGVyPiINCisrLkIgIlxgPGNoYXJhY3Rl cj4iDQorIFJldHVybiB0byBhIGNvbnRleHQgbWFya2VkIGJ5IHRoZSBjaGFyYWN0ZXINCisgLklS IDxjaGFyYWN0ZXI+IC4NCisgLlRQDQorQEAgLTQ3Niw3ICs0NzYsNyBAQA0KKyAuSSBjb3VudA0K KyB0aW1lcy4NCisgLlRQDQorLS5CICJbY291bnRdIC0iDQorKy5CICJbY291bnRdIFwtIg0KKyBN b3ZlIHRvIGZpcnN0IG5vbmJsYW5rIG9mIHRoZSBwcmV2aW91cyBsaW5lLA0KKyAuSSBjb3VudA0K KyB0aW1lcy4NCitAQCAtNDg2LDEzICs0ODYsMTMgQEANCisgLkkgXCZ2aQ0KKyBjb21tYW5kIHRo YXQgbW9kaWZpZWQgdGV4dC4NCisgLlRQDQorLS5CICIvUkU8Y2FycmlhZ2UtcmV0dXJuPiINCisr LkIgIi9SRTxjYXJyaWFnZVwoaHlyZXR1cm4+Ig0KKyAuVFANCistLkIgIi9SRS8gW29mZnNldF08 Y2FycmlhZ2UtcmV0dXJuPiINCisrLkIgIi9SRS8gW29mZnNldF08Y2FycmlhZ2VcKGh5cmV0dXJu PiINCisgLlRQDQorLS5CICI/UkU8Y2FycmlhZ2UtcmV0dXJuPiINCisrLkIgIj9SRTxjYXJyaWFn ZVwoaHlyZXR1cm4+Ig0KKyAuVFANCistLkIgIj9SRT8gW29mZnNldF08Y2FycmlhZ2UtcmV0dXJu PiINCisrLkIgIj9SRT8gW29mZnNldF08Y2FycmlhZ2VcKGh5cmV0dXJuPiINCisgLlRQDQorIC5C ICJOIg0KKyAuVFANCitAQCAtNTI3LDE1ICs1MjcsMTUgQEANCisgYmlnd29yZHMuDQorIC5UUA0K KyAuQiAiW2J1ZmZlcl0gW2NvdW50XSBDIg0KKy1DaGFuZ2UgdGV4dCBmcm9tIHRoZSBjdXJyZW50 IHBvc2l0aW9uIHRvIHRoZSBlbmQtb2YtbGluZS4NCisrQ2hhbmdlIHRleHQgZnJvbSB0aGUgY3Vy cmVudCBwb3NpdGlvbiB0byB0aGUgZW5kXChoeW9mXChoeWxpbmUuDQorIC5UUA0KKyAuQiAiW2J1 ZmZlcl0gRCINCistRGVsZXRlIHRleHQgZnJvbSB0aGUgY3VycmVudCBwb3NpdGlvbiB0byB0aGUg ZW5kLW9mLWxpbmUuDQorK0RlbGV0ZSB0ZXh0IGZyb20gdGhlIGN1cnJlbnQgcG9zaXRpb24gdG8g dGhlIGVuZFwoaHlvZlwoaHlsaW5lLg0KKyAuVFANCisgLkIgIltjb3VudF0gRSINCisgTW92ZSBm b3J3YXJkDQorIC5JIGNvdW50DQorLWVuZC1vZi1iaWd3b3Jkcy4NCisrZW5kXChoeW9mXChoeWJp Z3dvcmRzLg0KKyAuVFANCisgLkIgIltjb3VudF0gRiA8Y2hhcmFjdGVyPiINCisgU2VhcmNoDQor QEAgLTU1Miw3ICs1NTIsNyBAQA0KKyAuVFANCisgLkIgIltjb3VudF0gSCINCisgTW92ZSB0byB0 aGUgc2NyZWVuIGxpbmUNCistLkkgImNvdW50IC0gMSINCisrLkkgImNvdW50IFwtIDEiDQorIGxp bmVzIGJlbG93IHRoZSB0b3Agb2YgdGhlIHNjcmVlbi4NCisgLlRQDQorIC5CICJbY291bnRdIEki DQorQEAgLTU2Myw3ICs1NjMsNyBAQA0KKyAuVFANCisgLkIgIltjb3VudF0gTCINCisgTW92ZSB0 byB0aGUgc2NyZWVuIGxpbmUNCistLkkgImNvdW50IC0gMSINCisrLkkgImNvdW50IFwtIDEiDQor IGxpbmVzIGFib3ZlIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi4NCisgLlRQDQorIC5CICIgTSIN CitAQCAtNjE0LDcgKzYxNCw3IEBADQorIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBjdXJzb3IuDQor IC5UUA0KKyAuQiAiW2J1ZmZlcl0gW2NvdW50XSBZIg0KKy1Db3B5IChvciBgYHlhbmsnJykNCisr Q29weSAob3IgXChscXlhbmtcKHJxKQ0KKyAuSSBjb3VudA0KKyBsaW5lcyBpbnRvIHRoZSBzcGVj aWZpZWQgYnVmZmVyLg0KKyAuVFANCitAQCAtNjM3LDcgKzYzNyw3IEBADQorIC5UUA0KKyAuQiAi W2NvdW50XSBfIg0KKyBNb3ZlIGRvd24NCistLkkgImNvdW50IC0gMSINCisrLkkgImNvdW50IFwt IDEiDQorIGxpbmVzLCB0byB0aGUgZmlyc3Qgbm9uYmxhbmsgY2hhcmFjdGVyLg0KKyAuVFANCisg LkIgIltjb3VudF0gYSINCitAQCAtNjU3LDcgKzY1Nyw3IEBADQorIC5CICJbY291bnRdIGUiDQor IE1vdmUgZm9yd2FyZA0KKyAuSSBjb3VudA0KKy1lbmQtb2Ytd29yZHMuDQorK2VuZFwoaHlvZlwo aHl3b3Jkcy4NCisgLlRQDQorIC5CICJbY291bnRdIGY8Y2hhcmFjdGVyPiINCisgU2VhcmNoIGZv cndhcmQsDQorQEAgLTcwOSwxMiArNzA5LDEyIEBADQorIGNoYXJhY3RlcnMuDQorIC5UUA0KKyAu QiAiW2J1ZmZlcl0gW2NvdW50XSB5IG1vdGlvbiINCistQ29weSAob3IgYGB5YW5rJycpDQorK0Nv cHkgKG9yIFwobHF5YW5rXChycSkNCisgYSB0ZXh0IHJlZ2lvbiBzcGVjaWZpZWQgYnkgdGhlDQor IC5JIGNvdW50DQorIGFuZCBtb3Rpb24gaW50byBhIGJ1ZmZlci4NCisgLlRQDQorLS5CICJbY291 bnQxXSB6IFtjb3VudDJdIC18LnwrfF58PGNhcnJpYWdlLXJldHVybj4iDQorKy5CICJbY291bnQx XSB6IFtjb3VudDJdIFwtfC58K3xefDxjYXJyaWFnZVwoaHlyZXR1cm4+Ig0KKyBSZWRyYXcsIG9w dGlvbmFsbHkgcmVwb3NpdGlvbmluZyBhbmQgcmVzaXppbmcgdGhlIHNjcmVlbi4NCisgLlRQDQor IC5CICJbY291bnRdIHsiDQorQEAgLTczNSwxMyArNzM1LDIwIEBADQorIC5CICJbY291bnRdIH4i DQorIFJldmVyc2UgdGhlIGNhc2Ugb2YgdGhlIG5leHQNCisgLkkgY291bnQNCistY2hhcmFjdGVy KHMpLg0KKytjaGFyYWN0ZXIocyksIGlmIHRoZSANCisrLkIgdGlsZGVvcA0KKytvcHRpb24gaXMN CisrLklSIHVuc2V0IC4NCisgLlRQDQorIC5CICJbY291bnRdIH4gbW90aW9uIg0KKyBSZXZlcnNl IHRoZSBjYXNlIG9mIHRoZSBjaGFyYWN0ZXJzIGluIGEgdGV4dCByZWdpb24gc3BlY2lmaWVkIGJ5 IHRoZQ0KKyAuSSBjb3VudA0KKyBhbmQNCistLklSIG1vdGlvbiAuDQorKy5JUiBtb3Rpb24gLA0K KytpZiB0aGUgDQorKy5CIHRpbGRlb3ANCisrb3B0aW9uIGlzDQorKy5JUiBzZXQgLg0KKyAuVFAN CisgLkIgIjxpbnRlcnJ1cHQ+Ig0KKyBJbnRlcnJ1cHQgdGhlIGN1cnJlbnQgb3BlcmF0aW9uLg0K K0BAIC03NTUsMTggKzc2MiwxOCBAQA0KKyAuQiAiPG51bD4iDQorIFJlcGxheSB0aGUgcHJldmlv dXMgaW5wdXQuDQorIC5UUA0KKy0uQiAiPGNvbnRyb2wtRD4iDQorKy5CICI8Y29udHJvbFwoaHlE PiINCisgRXJhc2UgdG8gdGhlIHByZXZpb3VzDQorIC5CIHNoaWZ0d2lkdGgNCisgY29sdW1uIGJv dW5kYXJ5Lg0KKyAuVFANCistLkIgIl48Y29udHJvbC1EPiINCisrLkIgIl48Y29udHJvbFwoaHlE PiINCisgRXJhc2UgYWxsIG9mIHRoZSBhdXRvaW5kZW50IGNoYXJhY3RlcnMsIGFuZCByZXNldCB0 aGUgYXV0b2luZGVudCBsZXZlbC4NCisgLlRQDQorLS5CICIwPGNvbnRyb2wtRD4iDQorKy5CICIw PGNvbnRyb2xcKGh5RD4iDQorIEVyYXNlIGFsbCBvZiB0aGUgYXV0b2luZGVudCBjaGFyYWN0ZXJz Lg0KKyAuVFANCistLkIgIjxjb250cm9sLVQ+Ig0KKysuQiAiPGNvbnRyb2xcKGh5VD4iDQorIElu c2VydCBzdWZmaWNpZW50DQorIC5JIDx0YWI+DQorIGFuZA0KK0BAIC03NzcsNyArNzg0LDcgQEAN CisgLlRQDQorIC5CICI8ZXJhc2U+DQorIC5UUA0KKy0uQiAiPGNvbnRyb2wtSD4iDQorKy5CICI8 Y29udHJvbFwoaHlIPiINCisgRXJhc2UgdGhlIGxhc3QgY2hhcmFjdGVyLg0KKyAuVFANCisgLkIg IjxsaXRlcmFsIG5leHQ+Ig0KK0BAIC03ODksNyArNzk2LDcgQEANCisgLkIgIjxsaW5lIGVyYXNl PiINCisgRXJhc2UgdGhlIGN1cnJlbnQgbGluZS4NCisgLlRQDQorLS5CICI8Y29udHJvbC1XPiIN CisrLkIgIjxjb250cm9sXChoeVc+Ig0KKyAuVFANCisgLkIgIjx3b3JkIGVyYXNlPiINCisgRXJh c2UgdGhlIGxhc3Qgd29yZC4NCitAQCAtNzk5LDcgKzgwNiw3IEBADQorIC5CIHR0eXdlcmFzZQ0K KyBvcHRpb25zLg0KKyAuVFANCistLkIgIjxjb250cm9sLVg+WzAtOUEtRmEtZl0rIg0KKysuQiAi PGNvbnRyb2xcKGh5WD5bMFwtOUFcLUZhXC1mXSsiDQorIEluc2VydCBhIGNoYXJhY3RlciB3aXRo IHRoZSBzcGVjaWZpZWQgaGV4YWRlY2ltYWwgdmFsdWUgaW50byB0aGUgdGV4dC4NCisgLlRQDQor IC5CICI8aW50ZXJydXB0PiINCitAQCAtODExLDcgKzgxOCw3IEBADQorIEluIGVhY2ggZW50cnkg YmVsb3csIHRoZSB0YWcgbGluZSBpcyBhIHVzYWdlIHN5bm9wc2lzIGZvciB0aGUgY29tbWFuZC4N CisgLlBQDQorIC5UUA0KKy0uQiAiPGVuZC1vZi1maWxlPiINCisrLkIgIjxlbmRcKGh5b2ZcKGh5 ZmlsZT4iDQorIFNjcm9sbCB0aGUgc2NyZWVuLg0KKyAuVFANCisgLkIgIiEgYXJndW1lbnQocyki DQorQEAgLTkzMiw3ICs5MzksNyBAQA0KKyAuSSBmaWxlDQorIGlmIGl0IHdhcyBwcmV2aW91c2x5 IHNhdmVkLg0KKyAuVFANCistLkIgInJlc1tpemVdIFsrfC1dc2l6ZSINCisrLkIgInJlc1tpemVd IFsrfFwtXXNpemUiDQorIC5JIFwmVmkNCisgbW9kZSBvbmx5Lg0KKyBHcm93IG9yIHNocmluayB0 aGUgY3VycmVudCBzY3JlZW4uDQorQEAgLTEwMzQsNyArMTA0MSwxMCBAQA0KKyAuSSBcJmV4DQor IGFuZA0KKyAuSSBcJnZpDQorLW1vZGVzLCB1bmxlc3Mgb3RoZXJ3aXNlIHNwZWNpZmllZC4NCisr bW9kZXMsIHVubGVzcyBvdGhlcndpc2Ugc3BlY2lmaWVkLiBNdWx0aXBsZSBvcHRpb25zIGNhbiBi ZSBnaXZlbiBpbg0KKytvbmUgc2V0IG9yIHVuc2V0LCBzZXBhcmF0ZWQgYnkgc3BhY2VzIG9yIHRh YnMuICBTcGFjZXMgYW5kIHRhYnMgY2FuIGJlDQorK2luY2x1ZGVkIGluIHN0cmluZyBvcHRpb25z IChlZy4gdGFncyBvciBmaWxlYykgYnkgcHJlY2VkaW5nIGVhY2ggd2l0aA0KKythIGJhY2tzbGFz aC4gIFRoZXJlJ3Mgbm8gd2F5IHRvIGdldCBiYWNrc2xhc2ggaXRzZWxmIGludG8gYW4gb3B0aW9u Lg0KKyAuUFANCisgLlRQDQorIC5CICJhbHR3ZXJhc2UgW29mZl0iDQorQEAgLTEwNzEsNyArMTA4 MSw3IEBADQorIGNvbW1hbmQuDQorIC5UUA0KKyAuQiAiY2VkaXQgW25vIGRlZmF1bHRdIg0KKy1T ZXQgdGhlIGNoYXJhY3RlciB0byBlZGl0IHRoZSBjb2xvbiBjb21tYW5kLWxpbmUgaGlzdG9yeS4N CisrU2V0IHRoZSBjaGFyYWN0ZXIgdG8gZWRpdCB0aGUgY29sb24gY29tbWFuZFwoaHlsaW5lIGhp c3RvcnkuDQorIC5UUA0KKyAuQiAiY29sdW1ucywgY28gWzgwXSINCisgU2V0IHRoZSBudW1iZXIg b2YgY29sdW1ucyBpbiB0aGUgc2NyZWVuLg0KK0BAIC0xMDg1LDcgKzEwOTUsNyBAQA0KKyBUaGUg ZGlyZWN0b3J5IHdoZXJlIHRlbXBvcmFyeSBmaWxlcyBhcmUgY3JlYXRlZC4NCisgLlRQDQorIC5C ICJlZGNvbXBhdGlibGUsIGVkIFtvZmZdIg0KKy1SZW1lbWJlciB0aGUgdmFsdWVzIG9mIHRoZSBg YGMnJyBhbmQgYGBnJycgc3VmZmljZXMgdG8gdGhlDQorK1JlbWVtYmVyIHRoZSB2YWx1ZXMgb2Yg dGhlIFwobHFjXChycSBhbmQgXChscWdcKHJxIHN1ZmZpY2VzIHRvIHRoZQ0KKyAuQiBzdWJzdGl0 dXRlDQorIGNvbW1hbmRzLCBpbnN0ZWFkIG9mIGluaXRpYWxpemluZyB0aGVtIGFzIHVuc2V0IGZv ciBlYWNoIG5ldw0KKyBjb21tYW5kLg0KK0BAIC0xMTE0LDggKzExMjQsOCBAQA0KKyBTZXQgdGhl IHNwYWNpbmcgYmV0d2VlbiBoYXJkd2FyZSB0YWIgc2V0dGluZ3MuDQorIC5UUA0KKyAuQiAiaWNs b3dlciBbb2ZmXSINCistTWFrZXMgYWxsIFJlZ3VsYXIgRXhwcmVzc2lvbnMgY2FzZS1pbnNlbnNp dGl2ZSwNCistYXMgbG9uZyBhcyBhbiB1cHBlci1jYXNlIGxldHRlciBkb2VzIG5vdCBhcHBlYXIg aW4gdGhlIHNlYXJjaCBzdHJpbmcuDQorK01ha2VzIGFsbCBSZWd1bGFyIEV4cHJlc3Npb25zIGNh c2VcKGh5aW5zZW5zaXRpdmUsDQorK2FzIGxvbmcgYXMgYW4gdXBwZXJcKGh5Y2FzZSBsZXR0ZXIg ZG9lcyBub3QgYXBwZWFyIGluIHRoZSBzZWFyY2ggc3RyaW5nLg0KKyAuVFANCisgLkIgImlnbm9y ZWNhc2UsIGljIFtvZmZdIg0KKyBJZ25vcmUgY2FzZSBkaWZmZXJlbmNlcyBpbiByZWd1bGFyIGV4 cHJlc3Npb25zLg0KK0BAIC0xMTI4LDcgKzExMzgsNyBAQA0KKyAuQiAibGVmdHJpZ2h0IFtvZmZd Ig0KKyAuSSBcJlZpDQorIG9ubHkuDQorLURvIGxlZnQtcmlnaHQgc2Nyb2xsaW5nLg0KKytEbyBs ZWZ0XChoeXJpZ2h0IHNjcm9sbGluZy4NCisgLlRQDQorIC5CICJsaW5lcywgbGkgWzI0XSINCisg LkkgXCZWaQ0KK0BAIC0xMjI3LDcgKzEyMzcsNyBAQA0KKyBEaXNwbGF5IGEgY29tbWFuZCBwcm9t cHQuDQorIC5UUA0KKyAuQiAicmVhZG9ubHksIHJvIFtvZmZdIg0KKy1NYXJrIHRoZSBmaWxlIGFu ZCBzZXNzaW9uIGFzIHJlYWQtb25seS4NCisrTWFyayB0aGUgZmlsZSBhbmQgc2Vzc2lvbiBhcyBy ZWFkXChoeW9ubHkuDQorIC5UUA0KKyAuQiAicmVjZGlyIFsvdmFyL3RtcC92aS5yZWNvdmVyXSIN CisgVGhlIGRpcmVjdG9yeSB3aGVyZSByZWNvdmVyeSBmaWxlcyBhcmUgc3RvcmVkLg0KK0BAIC0x Mjc4LDcgKzEyODgsNyBAQA0KKyAuXCIgdG8gc2F2ZSBteSBsaWZlLiAgVGhlIE9OTFkgd2F5IEkn dmUgYmVlbiBhYmxlIHRvIGdldCB0aGlzIHRvIHdvcmsNCisgLlwiIGlzIHdpdGggdGhlIC50ciBj b21tYW5kLg0KKyAudHIgUSINCistLmRzIG1zIHNoZWxsbWV0YSBbfntbKj8kYCdRXGVdDQorKy5k cyBtcyBzaGVsbG1ldGEgW357Wyo/JFxgJ1FcZV0NCisgLlRQDQorIC5CICJcKihtcyINCisgLnRy IFFRDQorQEAgLTEyOTEsMTcgKzEzMDEsMTcgQEANCisgLkIgInNob3dtYXRjaCwgc20gW29mZl0i DQorIC5JIFwmVmkNCisgb25seS4NCistTm90ZSBtYXRjaGluZyBgYHsnJyBhbmQgYGAoJycgZm9y IGBgfScnIGFuZCBgYCknJyBjaGFyYWN0ZXJzLg0KKytOb3RlIG1hdGNoaW5nIFwobHF7XChycSBh bmQgXChscShcKHJxIGZvciBcKGxxfVwocnEgYW5kIFwobHEpXChycSBjaGFyYWN0ZXJzLg0KKyAu VFANCisgLkIgInNob3dtb2RlLCBzbWQgW29mZl0iDQorIC5JIFwmVmkNCisgb25seS4NCistRGlz cGxheSB0aGUgY3VycmVudCBlZGl0b3IgbW9kZSBhbmQgYSBgYG1vZGlmaWVkJycgZmxhZy4NCisr RGlzcGxheSB0aGUgY3VycmVudCBlZGl0b3IgbW9kZSBhbmQgYSBcKGxxbW9kaWZpZWRcKHJxIGZs YWcuDQorIC5UUA0KKyAuQiAic2lkZXNjcm9sbCBbMTZdIg0KKyAuSSBcJlZpDQorIG9ubHkuDQor LVNldCB0aGUgYW1vdW50IGEgbGVmdC1yaWdodCBzY3JvbGwgd2lsbCBzaGlmdC4NCisrU2V0IHRo ZSBhbW91bnQgYSBsZWZ0XChoeXJpZ2h0IHNjcm9sbCB3aWxsIHNoaWZ0Lg0KKyAuVFANCisgLkIg InNsb3dvcGVuLCBzbG93IFtvZmZdIg0KKyBEZWxheSBkaXNwbGF5IHVwZGF0aW5nIGR1cmluZyB0 ZXh0IGlucHV0Lg0KK0BAIC0xMzc5LDcgKzEzODksNyBAQA0KKyAuSSBcJlZpDQorIG9ubHkuDQor IEJyZWFrIGxpbmVzIGF1dG9tYXRpY2FsbHksIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGNvbHVt bnMgZnJvbSB0aGUNCistbGVmdC1oYW5kIG1hcmdpbi4NCisrbGVmdFwoaHloYW5kIG1hcmdpbi4N CisgSWYgYm90aCB0aGUNCisgLkIgd3JhcGxlbg0KKyBhbmQNCitAQCAtMTM5Miw3ICsxNDAyLDcg QEANCisgLkkgXCZWaQ0KKyBvbmx5Lg0KKyBCcmVhayBsaW5lcyBhdXRvbWF0aWNhbGx5LCB0aGUg c3BlY2lmaWVkIG51bWJlciBvZiBjb2x1bW5zIGZyb20gdGhlDQorLXJpZ2h0LWhhbmQgbWFyZ2lu Lg0KKytyaWdodFwoaHloYW5kIG1hcmdpbi4NCisgSWYgYm90aCB0aGUNCisgLkIgd3JhcGxlbg0K KyBhbmQNCitAQCAtMTQwNSw3ICsxNDE1LDcgQEANCisgU2V0IHNlYXJjaGVzIHRvIHdyYXAgYXJv dW5kIHRoZSBlbmQgb3IgYmVnaW5uaW5nIG9mIHRoZSBmaWxlLg0KKyAuVFANCisgLkIgIndyaXRl YW55LCB3YSBbb2ZmXSINCistVHVybiBvZmYgZmlsZS1vdmVyd3JpdGluZyBjaGVja3MuDQorK1R1 cm4gb2ZmIGZpbGVcKGh5b3ZlcndyaXRpbmcgY2hlY2tzLg0KKyAuU0ggIkVOVklST05NRU5UIFZB UklBQkxFUw0KKyAuVFANCisgLkkgQ09MVU1OUw0KK0BAIC0xNDMwLDcgKzE0NDAsNyBAQA0KKyAu VFANCisgLkkgSE9NRQ0KKyBUaGUgdXNlcidzIGhvbWUgZGlyZWN0b3J5LCB1c2VkIGFzIHRoZSBp bml0aWFsIGRpcmVjdG9yeSBwYXRoDQorLWZvciB0aGUgc3RhcnR1cCBgYCRcZklIT01FXGZQLy5u ZXhyYycnIGFuZCBgYCRcZklIT01FXGZQLy5leHJjJycNCisrZm9yIHRoZSBzdGFydHVwIFwobHEk XGZJSE9NRVxmUC8ubmV4cmNcKHJxIGFuZCBcKGxxJFxmSUhPTUVcZlAvLmV4cmNcKHJxDQorIGZp bGVzLg0KKyBUaGlzIHZhbHVlIGlzIGFsc28gdXNlZCBhcyB0aGUgZGVmYXVsdCBkaXJlY3Rvcnkg Zm9yIHRoZQ0KKyAuSSBcJnZpDQorQEAgLTE0NjIsNyArMTQ3Miw3IEBADQorIC5UUA0KKyAuSSBU RVJNDQorIFRoZSB1c2VyJ3MgdGVybWluYWwgdHlwZS4NCistVGhlIGRlZmF1bHQgaXMgdGhlIHR5 cGUgYGB1bmtub3duJycuDQorK1RoZSBkZWZhdWx0IGlzIHRoZSB0eXBlIFwobHF1bmtub3duXChy cS4NCisgSWYgdGhlDQorIC5JIFRFUk0NCisgZW52aXJvbm1lbnRhbCB2YXJpYWJsZSBpcyBub3Qg c2V0IHdoZW4NCitAQCAtMTQ4Miw3ICsxNDkyLDcgQEANCisgU0lHQUxSTQ0KKyAuSSBcJlZpL2V4 DQorIHVzZXMgdGhpcyBzaWduYWwgZm9yIHBlcmlvZGljIGJhY2t1cHMgb2YgZmlsZSBtb2RpZmlj YXRpb25zIGFuZCB0bw0KKy1kaXNwbGF5IGBgYnVzeScnIG1lc3NhZ2VzIHdoZW4gb3BlcmF0aW9u cyBhcmUgbGlrZWx5IHRvIHRha2UgYSBsb25nIHRpbWUuDQorK2Rpc3BsYXkgXChscWJ1c3lcKHJx IG1lc3NhZ2VzIHdoZW4gb3BlcmF0aW9ucyBhcmUgbGlrZWx5IHRvIHRha2UgYSBsb25nIHRpbWUu DQorIC5UUA0KKyBTSUdIVVANCisgLlRQDQorQEAgLTE0OTIsNyArMTUwMiw3IEBADQorIGJlIGxh dGVyIHJlY292ZXJlZC4NCisgU2VlIHRoZQ0KKyAuSSBcJnZpL2V4DQorLVJlZmVyZW5jZSBtYW51 YWwgc2VjdGlvbiBlbnRpdGxlZCBgYFJlY292ZXJ5JycgZm9yIG1vcmUgaW5mb3JtYXRpb24uDQor K1JlZmVyZW5jZSBtYW51YWwgc2VjdGlvbiBlbnRpdGxlZCBcKGxxUmVjb3ZlcnlcKHJxIGZvciBt b3JlIGluZm9ybWF0aW9uLg0KKyAuVFANCisgU0lHSU5UDQorIFdoZW4gYW4gaW50ZXJydXB0IG9j Y3VycywNCitAQCAtMTUwNiw3ICsxNTE2LDcgQEANCisgVGhlIHNjcmVlbiBpcyByZXNpemVkLg0K KyBTZWUgdGhlDQorIC5JIFwmdmkvZXgNCistUmVmZXJlbmNlIG1hbnVhbCBzZWN0aW9uIGVudGl0 bGVkIGBgU2l6aW5nIHRoZSBTY3JlZW4nJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4NCisrUmVmZXJl bmNlIG1hbnVhbCBzZWN0aW9uIGVudGl0bGVkIFwobHFTaXppbmcgdGhlIFNjcmVlblwocnEgZm9y IG1vcmUgaW5mb3JtYXRpb24uDQorIC5UUA0KKyBTSUdDT05UDQorIC5UUA0KK0BAIC0xNTIxLDcg KzE1MzEsNyBAQA0KKyBUaGUgZGVmYXVsdCB1c2VyIHNoZWxsLg0KKyAuVFANCisgL2V0Yy92aS5l eHJjDQorLVN5c3RlbS13aWRlIHZpIHN0YXJ0dXAgZmlsZS4NCisrU3lzdGVtXChoeXdpZGUgdmkg c3RhcnR1cCBmaWxlLg0KKyAuVFANCisgL3RtcA0KKyBUZW1wb3JhcnkgZmlsZSBkaXJlY3Rvcnku DQorQEAgLTE1NDYsMzggKzE1NTYsMzggQEANCisgLklSIGN1cnNlcyAoMyksDQorIC5JUiBkYm9w ZW4gKDMpDQorIC5zcA0KKy1UaGUgYGBWaSBRdWljayBSZWZlcmVuY2UnJyBjYXJkLg0KKytUaGUg XChscVZpIFF1aWNrIFJlZmVyZW5jZVwocnEgY2FyZC4NCisgLnNwDQorLWBgQW4gSW50cm9kdWN0 aW9uIHRvIERpc3BsYXkgRWRpdGluZyB3aXRoIFZpJycsIGZvdW5kIGluIHRoZQ0KKy1gYFVOSVgg VXNlcidzIE1hbnVhbCBTdXBwbGVtZW50YXJ5IERvY3VtZW50cycnDQorK1wobHFBbiBJbnRyb2R1 Y3Rpb24gdG8gRGlzcGxheSBFZGl0aW5nIHdpdGggVmlcKHJxLCBmb3VuZCBpbiB0aGUNCisrXChs cVVOSVggVXNlcidzIE1hbnVhbCBTdXBwbGVtZW50YXJ5IERvY3VtZW50c1wocnENCisgc2VjdGlv biBvZiBib3RoIHRoZSA0LjNCU0QgYW5kIDQuNEJTRCBtYW51YWwgc2V0cy4NCisgVGhpcyBkb2N1 bWVudCBpcyB0aGUgY2xvc2VzdCB0aGluZyBhdmFpbGFibGUgdG8gYW4gaW50cm9kdWN0aW9uIHRv IHRoZQ0KKyAuSSBcJnZpDQorIHNjcmVlbiBlZGl0b3IuDQorIC5zcA0KKy1gYEV4IFJlZmVyZW5j ZSBNYW51YWwgKFZlcnNpb24gMy43KScnLA0KKytcKGxxRXggUmVmZXJlbmNlIE1hbnVhbCAoVmVy c2lvbiAzLjcpXChycSwNCisgZm91bmQgaW4gdGhlDQorLWBgVU5JWCBVc2VyJ3MgTWFudWFsIFN1 cHBsZW1lbnRhcnkgRG9jdW1lbnRzJycNCisrXChscVVOSVggVXNlcidzIE1hbnVhbCBTdXBwbGVt ZW50YXJ5IERvY3VtZW50c1wocnENCisgc2VjdGlvbiBvZiBib3RoIHRoZSA0LjNCU0QgYW5kIDQu NEJTRCBtYW51YWwgc2V0cy4NCisgVGhpcyBkb2N1bWVudCBpcyB0aGUgZmluYWwgcmVmZXJlbmNl IGZvciB0aGUNCisgLkkgXCZleA0KKyBlZGl0b3IsIGFzIGRpc3RyaWJ1dGVkIGluIG1vc3QgaGlz dG9yaWMgNEJTRCBhbmQgU3lzdGVtIFYgc3lzdGVtcy4NCisgLnNwDQorLWBgRWRpdDogQSB0dXRv cmlhbCcnLA0KKytcKGxxRWRpdDogQSB0dXRvcmlhbFwocnEsDQorIGZvdW5kIGluIHRoZQ0KKy1g YFVOSVggVXNlcidzIE1hbnVhbCBTdXBwbGVtZW50YXJ5IERvY3VtZW50cycnDQorK1wobHFVTklY IFVzZXIncyBNYW51YWwgU3VwcGxlbWVudGFyeSBEb2N1bWVudHNcKHJxDQorIHNlY3Rpb24gb2Yg dGhlIDQuM0JTRCBtYW51YWwgc2V0Lg0KKyBUaGlzIGRvY3VtZW50IGlzIGFuIGludHJvZHVjdGlv biB0byBhIHNpbXBsZSB2ZXJzaW9uIG9mIHRoZQ0KKyAuSSBcJmV4DQorIHNjcmVlbiBlZGl0b3Iu DQorIC5zcA0KKy1gYEV4L1ZpIFJlZmVyZW5jZSBNYW51YWwnJywNCisrXChscUV4L1ZpIFJlZmVy ZW5jZSBNYW51YWxcKHJxLA0KKyBmb3VuZCBpbiB0aGUNCistYGBVTklYIFVzZXIncyBNYW51YWwg U3VwcGxlbWVudGFyeSBEb2N1bWVudHMnJw0KKytcKGxxVU5JWCBVc2VyJ3MgTWFudWFsIFN1cHBs ZW1lbnRhcnkgRG9jdW1lbnRzXChycQ0KKyBzZWN0aW9uIG9mIHRoZSA0LjRCU0QgbWFudWFsIHNl dC4NCisgVGhpcyBkb2N1bWVudCBpcyB0aGUgZmluYWwgcmVmZXJlbmNlIGZvciB0aGUNCisgLkkg XCZuZXgvbnZpDQorLXRleHQgZWRpdG9ycywgYXMgZGlzdHJpYnV0ZWQgaW4gNC40QlNEIGFuZCA0 LjRCU0QtTGl0ZS4NCisrdGV4dCBlZGl0b3JzLCBhcyBkaXN0cmlidXRlZCBpbiA0LjRCU0QgYW5k IDQuNEJTRFwoaHlMaXRlLg0KKyAuUFANCisgLkkgUm9mZg0KKyBzb3VyY2UgZm9yIGFsbCBvZiB0 aGVzZSBkb2N1bWVudHMgaXMgZGlzdHJpYnV0ZWQgd2l0aA0KK0BAIC0xNTg4LDcgKzE1OTgsNyBA QA0KKyAuSSBuZXgvbnZpDQorIHNvdXJjZSBjb2RlLg0KKyAuc3ANCistVGhlIGZpbGVzIGBgYXV0 b3dyaXRlJycsIGBgaW5wdXQnJywgYGBxdW90aW5nJycgYW5kIGBgc3RydWN0dXJlcycnDQorK1Ro ZSBmaWxlcyBcKGxxYXV0b3dyaXRlXChycSwgXChscWlucHV0XChycSwgXChscXF1b3RpbmdcKHJx IGFuZCBcKGxxc3RydWN0dXJlc1wocnENCisgZm91bmQgaW4gdGhlDQorIC5JIG52aS9kb2NzL2lu dGVybmFscw0KKyBkaXJlY3Rvcnkgb2YgdGhlDQorQEAgLTE2MDIsNyArMTYxMiw3IEBADQorIGVk aXRvciBmaXJzdCBhcHBlYXJlZCBpbiA0LjRCU0QuDQorIC5TSCBTVEFOREFSRFMNCisgLkkgXCZO ZXgvbnZpDQorLWlzIGNsb3NlIHRvIElFRUUgU3RkMTAwMy4yIChgYFBPU0lYJycpLg0KKytpcyBj bG9zZSB0byBJRUVFIFN0ZDEwMDMuMiAoXChscVBPU0lYXChycSkuDQorIFRoYXQgZG9jdW1lbnQg ZGlmZmVycyBmcm9tIGhpc3RvcmljYWwNCisgLkkgZXgvdmkNCisgcHJhY3RpY2UgaW4gc2V2ZXJh bCBwbGFjZXM7IHRoZXJlIGFyZSBjaGFuZ2VzIHRvIGJlIG1hZGUgb24gYm90aCBzaWRlcy4NCmRp ZmYgLS1naXQgYS90ZXN0aW5nL252aS8xN3R1dG9yaWFsX3R5cG9zLnBhdGNoIGIvdGVzdGluZy9u dmkvMTd0dXRvcmlhbF90eXBvcy5wYXRjaA0KbmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAw MDAwMDAuLmE3YjAwMmQNCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3RpbmcvbnZpLzE3dHV0b3Jp YWxfdHlwb3MucGF0Y2gNCkBAIC0wLDAgKzEsNjAgQEANCitGcm9tOiBVbmtub3duDQorU3ViamVj dDogRml4IHR5cG9zIGluIHRoZSBudmkgdHV0b3JpYWwuDQorDQorLS0tIG52aS0xLjgxLjYub3Jp Zy9udmktMS43OS9kb2NzL3R1dG9yaWFsL3ZpLmJlZ2lubmVyDQorKysrIG52aS0xLjgxLjYvbnZp LTEuNzkvZG9jcy90dXRvcmlhbC92aS5iZWdpbm5lcg0KK0BAIC01MDUsNyArNTA1LDcgQEANCisg aiAtIG1vdmVzIHRoZSBjdXJzb3IgRE9XTiBvbmUgbGluZQ0KKyBoIC0gbW92ZXMgdGhlIGN1cnNv ciBvbmUgY2hhcmFjdGVyIHRvIHRoZSBMRUZUDQorIA0KKy1TZWN0aW9uIDIyOiB7aX0ge2F9IHtJ fSB7QX0ge299IHtPfSBeWyAoZXNjYXBlIGtleSkNCisrU2VjdGlvbiAyMjoge2l9IHthfSB7SX0g e0F9IHtvfSB7T30ge15bfSAoZXNjYXBlIGtleSkNCisgDQorIEZvciB0aGlzIGFuZCBmb2xsb3dp bmcgc2VjdGlvbnMgeW91IHdpbGwgbmVlZCB0byB1c2UgdGhlIEVTQ0FQRSBrZXkgb24geW91cg0K KyB0ZXJtaW5hbC4gIEl0IGlzIHVzdWFsbHkgbWFya2VkIEVTQy4gIFNpbmNlIHRoZSBlc2NhcGUg a2V5IGlzIHRoZSBzYW1lIGFzDQorQEAgLTUyNSw5ICs1MjUsOSBAQA0KKyBvbiB0aGUgd29yZCAn b2YnLikNCisgDQorIE5vdyBjYXJlZnVsbHkgdHlwZSB0aGUgZm9sbG93aW5nIHN0cmluZyBhbmQg b2JzZXJ2ZSB0aGUgZWZmZWN0czoNCistICB7aWV4YW1wbGUgXlt9ICAocmVtZW1iZXI6IF5bIGlz IHRoZSBlc2NhcGUga2V5KX0NCisrICB7aWV4YW1wbGUgXlt9ICAocmVtZW1iZXI6IF5bIGlzIHRo ZSBlc2NhcGUga2V5KQ0KKyBUaGUge2l9IGJlZ2lucyB0aGUgaW5zZXJ0IG1vZGUsIGFuZCAnZXhh bXBsZSAnIGlzIGluc2VydGVkIGludG8gdGhlIGxpbmU6IA0KKy1iZSBzdXJlIHRvIG5vdGljZSB0 aGUgYmxhbmsgaW4gJ2V4YW1wbGUgJy4gIFRoZSBeWyBlbmRzIGluc2VydGlvbiBtb2RlLCANCisr YmUgc3VyZSB0byBub3RpY2UgdGhlIGJsYW5rIGluICdleGFtcGxlICcuICBUaGUge15bfSBlbmRz IGluc2VydGlvbiBtb2RlLCANCisgYW5kIHRoZSBsaW5lIGlzIHVwZGF0ZWQgdG8gaW5jbHVkZSB0 aGUgbmV3IHN0cmluZy4gIExpbmUgMSBzaG91bGQgbG9vayBleGFjdGx5IA0KKyBsaWtlIExpbmUg Mi4NCisgDQorQEAgLTU0MSw5ICs1NDEsOSBAQA0KKyBvZiAnbGluZScuICBZb3UgY2FuIGRvIHRo aXMgaW4gc2V2ZXJhbCB3YXlzLCBvbmUgd2F5IGlzIHRoZSBmb2xsb3dpbmc6DQorIEZpcnN0LCB0 eXBlIHsvbGluZSAvXk19LiAgVGhpcyBwdXRzIHVzIG9uIHRoZSB3b3JkICdsaW5lJyBpbiBMaW5l IDQNCisgKHRoZSBibGFuayBpbiB0aGUgc2VhcmNoIHN0cmluZyBpcyBpbXBvcnRhbnQhKS4gIE5l eHQsIHR5cGUge2V9LiAgVGhlICdlJyBwdXRzDQorLXVzIGF0IHRoZSBlbmQgb2YgdGhlIHdvcmQu ICBOb3csIHR5cGUge2FzXlsgICheWyBpcyB0aGUgZXNjYXBlIGNoYXJhY3Rlcil9LiAgDQorK3Vz IGF0IHRoZSBlbmQgb2YgdGhlIHdvcmQuICBOb3csIHR5cGUge2FzXlt9ICheWyBpcyB0aGUgZXNj YXBlIGNoYXJhY3RlcikuICANCisgVGhlICdhJyBwdXRzIHVzIGluIGluc2VydCBtb2RlLCBBRlRF UiB0aGUgY3VycmVudCBjaGFyYWN0ZXIuICBXZSBhcHBlbmRlZCB0aGUgDQorLSdzJywgYW5kIHRo ZSBlc2NhcGUgXlsgZW5kZWQgdGhlIGluc2VydCBtb2RlLg0KKysncycsIGFuZCB0aGUgZXNjYXBl ICdeWycgZW5kZWQgdGhlIGluc2VydCBtb2RlLg0KKyANCisgVGhlIGRpZmZlcmVuY2UgYmV0d2Vl biB7aX0gKGluc2VydCkgYW5kIHthfSAoYXBwZW5kKSBpcyB0aGF0IHtpfSBiZWdpbnMNCisgaW5z ZXJ0aW5nIHRleHQgQkVGT1JFIHRoZSBjdXJzb3IsIGFuZCB7YX0gYmVnaW5zIGluc2VydGluZyBB RlRFUiB0aGUgY3Vyc29yLg0KKy0tLSBudmktMS44MS42Lm9yaWcvbnZpLTEuNzkvZG9jcy90dXRv cmlhbC92aS5hZHZhbmNlZA0KKysrKyBudmktMS44MS42L252aS0xLjc5L2RvY3MvdHV0b3JpYWwv dmkuYWR2YW5jZWQNCitAQCAtMjYsOCArMjYsOCBAQA0KKyAgICAgMSAgICAgICAgIGludHJvZHVj dGlvbjoge15GfSB7Wlp9DQorICAgICAyICAgICAgICAgaW50cm9kdWN0aW9uIChjb24ndCkgYW5k IHBvc2l0aW9uaW5nOiB7XkZ9IHteQn0NCisgICAgIDMgICAgICAgICBpbnRyb2R1Y3Rpb24gKGNv bid0KSBhbmQgcG9zaXRpb25pbmc6IHteRn0ge15CfQ0KKy0gICAgNCAgICAgICAgIHBvc2l0aW9u aW5nOiB7XkZ9IHteQn0gXk0gKHJldHVybiBrZXkpDQorLSAgICA1ICAgICAgICAgcXVpdHRpbmc6 IHs6cSF9IF5NIGtleQ0KKysgICAgNCAgICAgICAgIHBvc2l0aW9uaW5nOiB7XkZ9IHteQn0ge15N fSAocmV0dXJuIGtleSkNCisrICAgIDUgICAgICAgICBxdWl0dGluZzogezpxIX0ge15NfSAocmV0 dXJuIGtleSkNCisgICAgIDYgICAgICAgICBtYXJraW5nLCBjdXJzb3IgYW5kIHNjcmVlbiBwb3Np dGlvbmluZzoge219IHtHfSB7J30ge3p9DQorICAgICA3ICAgICAgICAgbWFya2luZywgY3Vyc29y IGFuZCBzY3JlZW4gcG9zaXRpb25pbmc6IHttfSB7R30geyd9IHt6fQ0KKyAgICAgOCAgICAgICAg IG1hcmtpbmcsIGN1cnNvciBhbmQgc2NyZWVuIHBvc2l0aW9uaW5nOiB7en0ge219IHsnfQ0KK0BA IC00NCw3ICs0NCw3IEBADQorICAgIDE5ICAgICAgICAgc2NyZWVuIHBvc2l0aW9uaW5nOiB7SH0g e019IHtMfQ0KKyAgICAyMCAgICAgICAgIGNoYXJhY3RlciBwb3NpdGlvbmluZzoge3d9IHtifSB7 MH0ge1d9IHtCfSB7ZX0ge0V9IHsnfSB7YH0NCisgICAgMjEgICAgICAgICBjdXJzb3IgcG9zaXRp b25pbmc6IHtsfSB7a30ge2p9IHtofQ0KKy0gICAyMiAgICAgICAgIGFkZGluZyB0ZXh0OiB7aX0g e2F9IHtJfSB7QX0ge299IHtPfSBeWyAoZXNjYXBlIGtleSkNCisrICAgMjIgICAgICAgICBhZGRp bmcgdGV4dDoge2l9IHthfSB7SX0ge0F9IHtvfSB7T30ge15bfSAoZXNjYXBlIGtleSkNCisgICAg MjMgICAgICAgICBjaGFyYWN0ZXIgbWFuaXB1bGF0aW9uOiB7Zn0ge3h9IHtYfSB7d30ge2x9IHty fSB7Un0ge3N9IHtTfSB7Sn0NCisgICAgMjQgICAgICAgICB1bmRvOiB7dX0ge1V9DQorICAgIDI1 ICAgICAgICAgcmV2aWV3DQpkaWZmIC0tZ2l0IGEvdGVzdGluZy9udmkvMThkYnBhZ2VzaXplX2Jp bnBvd2VyLnBhdGNoIGIvdGVzdGluZy9udmkvMThkYnBhZ2VzaXplX2JpbnBvd2VyLnBhdGNoDQpu ZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uZWMwNDUwNA0KLS0tIC9kZXYvbnVs bA0KKysrIGIvdGVzdGluZy9udmkvMThkYnBhZ2VzaXplX2JpbnBvd2VyLnBhdGNoDQpAQCAtMCww ICsxLDIyIEBADQorRnJvbTogPGhlc3NvQHBvb2wubWF0aC50dS1iZXJsaW4uZGU+DQorU3ViamVj dDogTWFrZSBzdXJlIHRoYXQgdGhlIHBhZ2VzaXplIHBhc3NlZCB0byBkYl9fc2V0X3BhZ2VzaXpl KCkgaXMNCithIHBvd2VyIG9mIHR3by4NCisNCistLS0gbnZpLTEuODEuNi5vcmlnL2NvbW1vbi9l eGYuYwkyMDA5LTAzLTA5IDAxOjQ4OjAxLjY5NTg2Mjg4OSArMDEwMA0KKysrKyBudmktMS44MS42 L2NvbW1vbi9leGYuYwkyMDA5LTAzLTA5IDEwOjQyOjQxLjE0Nzg2NjI3MiArMDEwMA0KK0BAIC0y NDksMTEgKzI0OSwxMCBAQA0KKyAJCSAqICh2aSBzaG91bGQgaGF2ZSBnb29kIGxvY2FsaXR5KSBv ciBzbWFsbGVyIHRoYW4gMUsuDQorIAkJICovDQorIAkJcHNpemUgPSAoKHNiLnN0X3NpemUgLyAx NSkgKyAxMDIzKSAvIDEwMjQ7DQorLQkJaWYgKHBzaXplID4gMTApDQorLQkJCXBzaXplID0gMTA7 DQorLQkJaWYgKHBzaXplID09IDApDQorLQkJCXBzaXplID0gMTsNCistCQlwc2l6ZSAqPSAxMDI0 Ow0KKysJCWlmIChwc2l6ZSA+PSA4KSBwc2l6ZT04PDwxMDsNCisrCQllbHNlIGlmIChwc2l6ZSA+ PSA0KSBwc2l6ZT00PDwxMDsNCisrCQllbHNlIGlmIChwc2l6ZSA+PSAyKSBwc2l6ZT0yPDwxMDsN CisrCQllbHNlIHBzaXplPTE8PDEwOw0KKyANCisgCQlGX1NFVChlcCwgRl9ERVZTRVQpOw0KKyAJ CWVwLT5tZGV2ID0gc2Iuc3RfZGV2Ow0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbnZpLzE5aW5jbHVk ZV90ZXJtX2gucGF0Y2ggYi90ZXN0aW5nL252aS8xOWluY2x1ZGVfdGVybV9oLnBhdGNoDQpuZXcg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uYmI3NzRlMA0KLS0tIC9kZXYvbnVsbA0K KysrIGIvdGVzdGluZy9udmkvMTlpbmNsdWRlX3Rlcm1faC5wYXRjaA0KQEAgLTAsMCArMSwyNSBA QA0KK0Zyb206IDxoZXNzb0Bwb29sLm1hdGgudHUtYmVybGluLmRlPg0KK1N1YmplY3Q6IEFkZCA8 dGVybS5oPiB0byB0aGUgaW5jbHVkZSBsaXN0IHRvIHN1cHByZXNzIGEgZmV3IHdhcm5pbmdzLg0K Kw0KK2RpZmYgLU5hdXIgbnZpLTEuODEuNi5vcmlnL2NsL2NsX2Z1bmNzLmMgbnZpLTEuODEuNi9j bC9jbF9mdW5jcy5jDQorLS0tIG52aS0xLjgxLjYub3JpZy9jbC9jbF9mdW5jcy5jCTIwMDctMTEt MTggMTc6NDE6NDIuMDAwMDAwMDAwICswMTAwDQorKysrIG52aS0xLjgxLjYvY2wvY2xfZnVuY3Mu YwkyMDA4LTA1LTAxIDE4OjIzOjA4LjAwMDAwMDAwMCArMDIwMA0KK0BAIC0xOCw2ICsxOCw3IEBA DQorICNpbmNsdWRlIDxzeXMvdGltZS5oPg0KKyANCisgI2luY2x1ZGUgPGJpdHN0cmluZy5oPg0K KysjaW5jbHVkZSA8dGVybS5oPg0KKyAjaW5jbHVkZSA8Y3R5cGUuaD4NCisgI2luY2x1ZGUgPHNp Z25hbC5oPg0KKyAjaW5jbHVkZSA8c3RkaW8uaD4NCitkaWZmIC1OYXVyIG52aS0xLjgxLjYub3Jp Zy9jbC9jbF9zY3JlZW4uYyBudmktMS44MS42L2NsL2NsX3NjcmVlbi5jDQorLS0tIG52aS0xLjgx LjYub3JpZy9jbC9jbF9zY3JlZW4uYwkyMDA3LTExLTE4IDE3OjQxOjQyLjAwMDAwMDAwMCArMDEw MA0KKysrKyBudmktMS44MS42L2NsL2NsX3NjcmVlbi5jCTIwMDgtMDUtMDEgMTg6MjM6MDIuMDAw MDAwMDAwICswMjAwDQorQEAgLTE3LDYgKzE3LDcgQEANCisgI2luY2x1ZGUgPHN5cy9xdWV1ZS5o Pg0KKyANCisgI2luY2x1ZGUgPGJpdHN0cmluZy5oPg0KKysjaW5jbHVkZSA8dGVybS5oPg0KKyAj aW5jbHVkZSA8ZXJybm8uaD4NCisgI2luY2x1ZGUgPHNpZ25hbC5oPg0KKyAjaW5jbHVkZSA8c3Rk aW8uaD4NCmRpZmYgLS1naXQgYS90ZXN0aW5nL252aS8yMWV4cmNfd3JpdGFiaWxpdHlfY2hlY2su cGF0Y2ggYi90ZXN0aW5nL252aS8yMWV4cmNfd3JpdGFiaWxpdHlfY2hlY2sucGF0Y2gNCm5ldyBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi5lMzEwOTMxDQotLS0gL2Rldi9udWxsDQor KysgYi90ZXN0aW5nL252aS8yMWV4cmNfd3JpdGFiaWxpdHlfY2hlY2sucGF0Y2gNCkBAIC0wLDAg KzEsNTggQEANCitGcm9tOiA8aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5kZT4NCitTdWJqZWN0 OiBObyBkZXNjcmlwdGlvbi4NCisNCitkaWZmIC1OYXVyIG52aS0xLjgxLjYub3JpZy9leC9leF9p bml0LmMgbnZpLTEuODEuNi9leC9leF9pbml0LmMNCistLS0gbnZpLTEuODEuNi5vcmlnL2V4L2V4 X2luaXQuYwkyMDA3LTExLTE4IDE3OjQxOjQyLjAwMDAwMDAwMCArMDEwMA0KKysrKyBudmktMS44 MS42L2V4L2V4X2luaXQuYwkyMDA4LTA1LTAxIDE4OjI0OjQ1LjAwMDAwMDAwMCArMDIwMA0KK0BA IC0yNiw2ICsyNiw5IEBADQorICNpbmNsdWRlIDxzdHJpbmcuaD4NCisgI2luY2x1ZGUgPHVuaXN0 ZC5oPg0KKyANCisrI2luY2x1ZGUgPHB3ZC5oPg0KKysjaW5jbHVkZSA8Z3JwLmg+DQorKw0KKyAj aW5jbHVkZSAiLi4vY29tbW9uL2NvbW1vbi5oIg0KKyAjaW5jbHVkZSAidGFnLmgiDQorICNpbmNs dWRlICJwYXRobmFtZXMuaCINCitAQCAtMzQ2LDYgKzM0OSw5IEBADQorIAlpbnQgbmYxLCBuZjI7 DQorIAljaGFyICphLCAqYiwgYnVmW01BWFBBVEhMRU5dOw0KKyANCisrCXN0cnVjdCBncm91cCAq Z3JwX3A7DQorKwlzdHJ1Y3QgcGFzc3dkICpwd2RfcDsNCisrDQorIAkvKiBDaGVjayBmb3IgdGhl IGZpbGUncyBleGlzdGVuY2UuICovDQorIAlpZiAoc3RhdChwYXRoLCBzYnApKQ0KKyAJCXJldHVy biAoTk9FWElTVCk7DQorQEAgLTM1OSwxMCArMzY1LDMwIEBADQorIAl9DQorIA0KKyAJLyogQ2hl Y2sgd3JpdGVhYmlsaXR5LiAqLw0KKy0JaWYgKHNicC0+c3RfbW9kZSAmIChTX0lXR1JQIHwgU19J V09USCkpIHsNCisrCWlmIChzYnAtPnN0X21vZGUgJiBTX0lXT1RIKSB7DQorIAkJZXR5cGUgPSBX UklURVI7DQorIAkJZ290byBkZW5pZWQ7DQorIAl9DQorKwlpZiAoc2JwLT5zdF9tb2RlICYgU19J V0dSUCkgew0KKysJCS8qIG9uIHN5c3RlbSBlcnJvciAoZ2V0Z3JnaWQgb3IgZ2V0cHduYW0gcmV0 dXJuIE5VTEwpIHNldCBldHlwZSB0byBXUklURVINCisrCQkgKiBhbmQgY29udGludWUgZXhlY3V0 aW9uICovDQorKwkJaWYoIChncnBfcCA9IGdldGdyZ2lkKHNicC0+c3RfZ2lkKSkgPT0gTlVMTCkg ew0KKysJCQlldHlwZSA9IFdSSVRFUjsNCisrCQkJZ290byBkZW5pZWQ7DQorKwkJfQ0KKysNCisr CQkvKiBsb29rdXAgdGhlIGdyb3VwIG1lbWJlcnMnIHVpZHMgZm9yIGFuIHVpZCBkaWZmZXJlbnQg ZnJvbSBldWlkICovDQorKwkJd2hpbGUoICggKihncnBfcC0+Z3JfbWVtKSApICE9IE5VTEwpIHsg LyogZ3JfbWVtIGlzIGEgbnVsbC10ZXJtaW5hdGVkIGFycmF5ICovDQorKwkJCWlmKCAocHdkX3Ag PSBnZXRwd25hbSgqKGdycF9wLT5ncl9tZW0pKyspKSA9PSBOVUxMKSB7DQorKwkJCQlldHlwZSA9 IFdSSVRFUjsNCisrCQkJCWdvdG8gZGVuaWVkOw0KKysJCQl9DQorKwkJCWlmKHB3ZF9wLT5wd191 aWQgIT0gZXVpZCkgew0KKysJCQkJZXR5cGUgPSBXUklURVI7DQorKwkJCQlnb3RvIGRlbmllZDsN CisrCQkJfQ0KKysJCX0NCisrCX0NCisgCXJldHVybiAoUkNPSyk7DQorIA0KKyBkZW5pZWQ6CWEg PSBtc2dfcHJpbnQoc3AsIHBhdGgsICZuZjEpOw0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbnZpLzI0 ZmFsbGJhY2tfdG9fZHVtYl90ZXJtLnBhdGNoIGIvdGVzdGluZy9udmkvMjRmYWxsYmFja190b19k dW1iX3Rlcm0ucGF0Y2gNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi42MGFh NGNjDQotLS0gL2Rldi9udWxsDQorKysgYi90ZXN0aW5nL252aS8yNGZhbGxiYWNrX3RvX2R1bWJf dGVybS5wYXRjaA0KQEAgLTAsMCArMSwyNiBAQA0KK0Zyb206IDxoZXNzb0Bwb29sLm1hdGgudHUt YmVybGluLmRlPg0KK1N1YmplY3Q6IElmIHRoZXJlJ3Mgbm8gJFRFUk0gYXJvdW5kLCBqdXN0IGZh bGwgYmFjayB0byAiZHVtYiIuDQorDQorZGlmZiAtTmF1ciBudmktMS44MS42Lm9yaWcvY2wvY2xf bWFpbi5jIG52aS0xLjgxLjYvY2wvY2xfbWFpbi5jDQorLS0tIG52aS0xLjgxLjYub3JpZy9jbC9j bF9tYWluLmMJMjAwNy0xMS0xOCAxNzo0MTo0Mi4wMDAwMDAwMDAgKzAxMDANCisrKysgbnZpLTEu ODEuNi9jbC9jbF9tYWluLmMJMjAwOC0wNS0wMSAxODoyOToxMy4wMDAwMDAwMDAgKzAyMDANCitA QCAtOTYsNiArOTYsNyBAQA0KKyAJaWYgKCh0dHlwZSA9IGdldGVudigiVEVSTSIpKSA9PSBOVUxM KQ0KKyAJCXR0eXBlID0gInVua25vd24iOw0KKyAJdGVybV9pbml0KGdwLT5wcm9nbmFtZSwgdHR5 cGUpOw0KKysJdHR5cGUgPSBnZXRlbnYoIlRFUk0iKTsNCisgDQorIAkvKiBBZGQgdGhlIHRlcm1p bmFsIHR5cGUgdG8gdGhlIGdsb2JhbCBzdHJ1Y3R1cmUuICovDQorIAlpZiAoKE9HX0RfU1RSKGdw LCBHT19URVJNKSA9DQorQEAgLTIzMyw2ICsyMzQsMTEgQEANCisgDQorIAkvKiBTZXQgdXAgdGhl IHRlcm1pbmFsIGRhdGFiYXNlIGluZm9ybWF0aW9uLiAqLw0KKyAJc2V0dXB0ZXJtKHR0eXBlLCBT VERPVVRfRklMRU5PLCAmZXJyKTsNCisrCWlmIChlcnIgPT0gMCkgew0KKysJCSh2b2lkKWZwcmlu dGYoc3RkZXJyLCAiJXM6ICVzOiB1bmtub3duIHRlcm1pbmFsIHR5cGUsIGZhbGxpbmcgYmFjayB0 byAnZHVtYidcbiIsIG5hbWUsIHR0eXBlKTsNCisrCQlzZXRlbnYoIlRFUk0iLCAiZHVtYiIsIDEp Ow0KKysJCXNldHVwdGVybSgiZHVtYiIsIFNURE9VVF9GSUxFTk8sICZlcnIpOw0KKysJfQ0KKyAJ c3dpdGNoIChlcnIpIHsNCisgCWNhc2UgLTE6DQorIAkJKHZvaWQpZnByaW50ZihzdGRlcnIsDQpk aWZmIC0tZ2l0IGEvdGVzdGluZy9udmkvMjVtYW5wYWdlX25vdGVfZHJvcHBlZF9GLnBhdGNoIGIv dGVzdGluZy9udmkvMjVtYW5wYWdlX25vdGVfZHJvcHBlZF9GLnBhdGNoDQpuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uOWViNjhjMQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvdGVz dGluZy9udmkvMjVtYW5wYWdlX25vdGVfZHJvcHBlZF9GLnBhdGNoDQpAQCAtMCwwICsxLDU1IEBA DQorRnJvbTogPGhlc3NvQHBvb2wubWF0aC50dS1iZXJsaW4uZGU+DQorU3ViamVjdDogUmVwbGFj ZSB0aGUgbWFucGFnZSBwYXJhZ3JhcGggYWJvdXQgdGhlICctRicgY29tbWFuZGxpbmUgb3B0aW9u DQorIHdpdGggYSBub3RpY2UgdGhhdCBpcyBoYXMgYmVlbiBkcm9wcGVkLg0KKw0KKy0tLSBudmkt MS44MS42K2RlYmlhbi0xLm9yaWcvZG9jcy92aS5tYW4vdmkuMQkyMDA4LTA2LTEzIDAwOjUyOjQ1 LjAwMDAwMDAwMCArMDIwMA0KKysrKyBudmktMS44MS42K2RlYmlhbi0xL2RvY3MvdmkubWFuL3Zp LjEJMjAwOC0wNi0xMyAwMDo1NTo0MC4wMDAwMDAwMDAgKzAyMDANCitAQCAtMTcsNyArMTcsNyBA QA0KKyAuU0ggU1lOT1BTSVMNCisgLkIgZXgNCisgW1xjDQorLS5CIFwtZUZSclNzdlxjDQorKy5C IFwtZVJyU3N2XGMNCisgXSBbXGMNCisgLkJJIFwtYyAiIGNtZCJcYw0KKyBdIFtcYw0KK0BAIC0y OCw3ICsyOCw3IEBADQorIC5icg0KKyAuQiB2aQ0KKyBbXGMNCistLkIgXC1lRmxSclN2XGMNCisr LkIgXC1lbFJyU3ZcYw0KKyBdIFtcYw0KKyAuQkkgXC1jICIgY21kIlxjDQorIF0gW1xjDQorQEAg LTM5LDcgKzM5LDcgQEANCisgLmJyDQorIC5CIHZpZXcNCisgW1xjDQorLS5CIFwtZUZSclN2XGMN CisrLkIgXC1lUnJTdlxjDQorIF0gW1xjDQorIC5CSSBcLWMgIiBjbWQiXGMNCisgXSBbXGMNCitA QCAtMTEzLDExICsxMTMsNiBAQA0KKyBTdGFydCBlZGl0aW5nIGluIGV4IG1vZGUsIGFzIGlmIHRo ZSBjb21tYW5kIG5hbWUgd2VyZQ0KKyAuSVIgXCZleCAuDQorIC5UUA0KKy0uQiBcLUYNCistRG9u J3QgY29weSB0aGUgZW50aXJlIGZpbGUgd2hlbiBmaXJzdCBzdGFydGluZyB0byBlZGl0Lg0KKy0o VGhlIGRlZmF1bHQgaXMgdG8gbWFrZSBhIGNvcHkgaW4gY2FzZSBzb21lb25lIGVsc2UgbW9kaWZp ZXMNCistdGhlIGZpbGUgZHVyaW5nIHlvdXIgZWRpdCBzZXNzaW9uLikNCistLlRQDQorIC5CIFwt bA0KKyBTdGFydCBlZGl0aW5nIHdpdGggdGhlIGxpc3AgYW5kIHNob3dtYXRjaCBvcHRpb25zIHNl dC4NCisgLlRQDQorQEAgLTE2OSw2ICsxNjQsOSBAQA0KKyBvcg0KKyAuSVIgdmlldyAuDQorIC5Q UA0KKytOb3RlIHRoYXQgdGhlIFxmQi1GXGZQIG9wdGlvbiAod2hpY2ggcHJldmVudGVkIFxmSWV4 L3ZpXGZQIGZyb20gbWFraW5nDQorK2EgZnVsbCBiYWNrdXAgb2YgdGhlIHRhcmdldCBmaWxlKSBo YXMgYmVlbiByZW1vdmVkIGFuZCBpcyBubyBsb25nZXIgYXZhaWxhYmxlLg0KKysuUFANCisgQ29t bWFuZCBpbnB1dCBmb3INCisgLkkgZXgvdmkNCisgaXMgcmVhZCBmcm9tIHRoZSBzdGFuZGFyZCBp bnB1dC4NCmRpZmYgLS1naXQgYS90ZXN0aW5nL252aS8yNnRyYWlsaW5nX3RhYl9zZWd2LnBhdGNo IGIvdGVzdGluZy9udmkvMjZ0cmFpbGluZ190YWJfc2Vndi5wYXRjaA0KbmV3IGZpbGUgbW9kZSAx MDA2NDQNCmluZGV4IDAwMDAwMDAuLmQ2YzVhOTANCi0tLSAvZGV2L251bGwNCisrKyBiL3Rlc3Rp bmcvbnZpLzI2dHJhaWxpbmdfdGFiX3NlZ3YucGF0Y2gNCkBAIC0wLDAgKzEsMTUgQEANCitGcm9t OiA8aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5kZT4NCitTdWJqZWN0OiBQcmV2ZW50IGEgc2Vn ZmF1bHQgaWYgYSB0cmFpbGluZyB0YWIgaXMgcHVzaGVkIHRvIGEgbmV3IGxpbmUgYnkgaW5zZXJ0 aW5nDQorY2hhcmFjdGVycyBiZWZvcmUgaXQgaWYgJ3NldCBudW1iZXInIGlzIGluIGVmZmVjdC4N CisNCistLS0gbnZpLTEuODEuNitkZWJpYW4ub3JpZy92aS92c19yZWxhdGl2ZS5jCTIwMDctMTEt MTggMTc6NDE6NDIuMDAwMDAwMDAwICswMTAwDQorKysrIG52aS0xLjgxLjYrZGViaWFuL3ZpL3Zz X3JlbGF0aXZlLmMJMjAwOC0wNi0xMyAwMzoyMjo1NS4wMDAwMDAwMDAgKzAyMDANCitAQCAtMTMz LDcgKzEzMyw3IEBADQorIAkgKiBJbml0aWFsaXplIHRoZSBwb2ludGVyIGludG8gdGhlIGJ1ZmZl ciBhbmQgY3VycmVudCBvZmZzZXQuDQorIAkgKi8NCisgCXAgPSBscDsNCistCWN1cm9mZiA9IDA7 DQorKwljdXJvZmYgPSBzY25vOw0KKyANCisgCS8qIE1hY3JvIHRvIHJldHVybiB0aGUgZGlzcGxh eSBsZW5ndGggb2YgYW55IHNpZ25hbCBjaGFyYWN0ZXIuICovDQorICNkZWZpbmUJQ0hMRU4odmFs KSAoY2ggPSAqKFVDSEFSX1QgKilwKyspID09ICdcdCcgJiYJCQlcDQpkaWZmIC0tZ2l0IGEvdGVz dGluZy9udmkvMjdzdXBwb3J0X0NfbG9jYWxlLnBhdGNoIGIvdGVzdGluZy9udmkvMjdzdXBwb3J0 X0NfbG9jYWxlLnBhdGNoDQpuZXcgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMDAwMDAwMC4uOTdk MjE0MQ0KLS0tIC9kZXYvbnVsbA0KKysrIGIvdGVzdGluZy9udmkvMjdzdXBwb3J0X0NfbG9jYWxl LnBhdGNoDQpAQCAtMCwwICsxLDI3IEBADQorRnJvbTogPGhlc3NvQHBvb2wubWF0aC50dS1iZXJs aW4uZGU+DQorU3ViamVjdDogQWxsb3cgdXNlcnMgdG8gZWRpdCA4LWJpdCBmaWxlcyBldmVuIHVu ZGVyIExDX0NUWVBFPUMuDQorDQorLS0tIG52aS0xLjgxLjYub3JpZy9jb21tb24vY29udi5jCTIw MDctMTEtMTggMTc6NDE6NDIuMDAwMDAwMDAwICswMTAwDQorKysrIG52aS0xLjgxLjYvY29tbW9u L2NvbnYuYwkyMDA5LTAzLTA5IDE2OjQ1OjM3LjgxMjAyMjU4MiArMDEwMA0KK0BAIC0zMjIsMTEg KzMyMiwxNiBAQA0KKyAgICAgZWxzZSB7DQorIAlzZXRsb2NhbGUoTENfQUxMLCAiIik7DQorICNp ZmRlZiBVU0VfV0lERUNIQVINCistCXNwLT5jb252LnN5czJpbnQgPSBjc19jaGFyMmludDsNCist CXNwLT5jb252LmludDJzeXMgPSBjc19pbnQyY2hhcjsNCistCXNwLT5jb252LmZpbGUyaW50ID0g ZmVfY2hhcjJpbnQ7DQorLQlzcC0+Y29udi5pbnQyZmlsZSA9IGZlX2ludDJjaGFyOw0KKy0Jc3At PmNvbnYuaW5wdXQyaW50ID0gaWVfY2hhcjJpbnQ7DQorKwlpZiAoIXN0cmNtcChMQU5HQ09ERVNF VCwgIkFOU0lfWDMuNC0xOTY4IikpIHsNCisrCSAgICBzcC0+Y29udi5maWxlMmludCA9IHNwLT5j b252LmlucHV0MmludCA9IHNwLT5jb252LnN5czJpbnQgPSByYXcyaW50Ow0KKysJICAgIHNwLT5j b252LmludDJzeXMgPSBzcC0+Y29udi5pbnQyZmlsZSA9IGludDJyYXc7DQorKwl9IGVsc2Ugew0K KysJICAgIHNwLT5jb252LnN5czJpbnQgPSBjc19jaGFyMmludDsNCisrCSAgICBzcC0+Y29udi5p bnQyc3lzID0gY3NfaW50MmNoYXI7DQorKwkgICAgc3AtPmNvbnYuZmlsZTJpbnQgPSBmZV9jaGFy MmludDsNCisrCSAgICBzcC0+Y29udi5pbnQyZmlsZSA9IGZlX2ludDJjaGFyOw0KKysJICAgIHNw LT5jb252LmlucHV0MmludCA9IGllX2NoYXIyaW50Ow0KKysJfQ0KKyAjZW5kaWYNCisgI2lmZGVm IFVTRV9JQ09OVg0KKyAJb19zZXQoc3AsIE9fRklMRUVOQ09ESU5HLCBPU19TVFJEVVAsIG5sX2xh bmdpbmZvKENPREVTRVQpLCAwKTsNCmRpZmYgLS1naXQgYS90ZXN0aW5nL252aS8yOWZpbGVfYmFj a3VwLnBhdGNoIGIvdGVzdGluZy9udmkvMjlmaWxlX2JhY2t1cC5wYXRjaA0KbmV3IGZpbGUgbW9k ZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAuLjUyYjFlOTINCi0tLSAvZGV2L251bGwNCisrKyBiL3Rl c3RpbmcvbnZpLzI5ZmlsZV9iYWNrdXAucGF0Y2gNCkBAIC0wLDAgKzEsMzIgQEANCitGcm9tOiA8 aGVzc29AcG9vbC5tYXRoLnR1LWJlcmxpbi5kZT4NCitTdWJqZWN0OiBTYXZlIHRoZSBpbnRlcm1l ZGlhdGUgQ0hBUjJJTlQgY29udmVyc2lvbiBwb2ludGVyIGJlY2F1c2UNCisgdGhhdCBwb2ludGVy IGlzIHJldXNlZCBieSBsYXRlciBjb252ZXJzaW9ucyBpbiBjYWxscyBiZWxvdy4NCisNCistLS0g bnZpLTEuODEuNi5vcmlnL2NvbW1vbi9leGYuYwkyMDA5LTA3LTI0IDExOjMwOjA1Ljk2MjA2MDc1 NSArMDIwMA0KKysrKyBudmktMS44MS42L2NvbW1vbi9leGYuYwkyMDA5LTA3LTI0IDEyOjA5OjU3 LjUxMTMxMTE3NyArMDIwMA0KK0BAIC0xMDkyLDggKzEwOTIsOCBAQA0KKyAJc2l6ZV90IGJsZW47 DQorIAlpbnQgZmxhZ3MsIG1heG51bSwgbnIsIG51bSwgbncsIHJmZCwgd2ZkLCB2ZXJzaW9uOw0K KyAJY2hhciAqYnAsICplc3RyLCAqcCwgKnBjdCwgKnNsYXNoLCAqdCwgKndmbmFtZSwgYnVmWzgx OTJdOw0KKy0JQ0hBUl9UICp3cDsNCistCXNpemVfdCB3bGVuOw0KKysJQ0hBUl9UICp3cCwgKndw MjsNCisrCXNpemVfdCB3bGVuLCB3bGVuMjsNCisgCXNpemVfdCBubGVuOw0KKyAJY2hhciAqZCA9 IE5VTEw7DQorIA0KK0BAIC0xMTQ4LDggKzExNDgsMTMgQEANCisgCX0gZWxzZQ0KKyAJCXZlcnNp b24gPSAwOw0KKyAJQ0hBUjJJTlQoc3AsIGJuYW1lLCBzdHJsZW4oYm5hbWUpICsgMSwgd3AsIHds ZW4pOw0KKy0JaWYgKGFyZ3ZfZXhwMihzcCwgJmNtZCwgd3AsIHdsZW4gLSAxKSkNCisrCUdFVF9T UEFDRV9SRVRXKHNwLCB3cDIsIHdsZW4yLCB3bGVuKTsNCisrCU1FTUNQWSh3cDIsIHdwLCB3bGVu KTsNCisrCWlmIChhcmd2X2V4cDIoc3AsICZjbWQsIHdwMiwgd2xlbjIgLSAxKSkgew0KKysJCUZS RUVfU1BBQ0VXKHNwLCB3cDIsIHdsZW4yKTsNCisgCQlyZXR1cm4gKDEpOw0KKysJfQ0KKysJRlJF RV9TUEFDRVcoc3AsIHdwMiwgd2xlbjIpOw0KKyANCisgCS8qDQorIAkgKiAgMCBhcmdzOiBpbXBv c3NpYmxlLg0KZGlmZiAtLWdpdCBhL3Rlc3RpbmcvbnZpL0FQS0JVSUxEIGIvdGVzdGluZy9udmkv QVBLQlVJTEQNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwMDAwMDAwLi41ZTE5NzNmDQot LS0gL2Rldi9udWxsDQorKysgYi90ZXN0aW5nL252aS9BUEtCVUlMRA0KQEAgLTAsMCArMSwxNzEg QEANCisjIENvbnRyaWJ1dG9yOiBTw7ZyZW4gVGVtcGVsIDxzb2VyZW4rYWxwaW5lQHNvZXJlbi10 ZW1wZWwubmV0Pg0KKyMgTWFpbnRhaW5lcjogU8O2cmVuIFRlbXBlbCA8c29lcmVuK2FscGluZUBz b2VyZW4tdGVtcGVsLm5ldD4NCitwa2duYW1lPW52aQ0KK3BrZ3Zlcj0xLjgxLjYNCitwa2dyZWw9 MA0KK3BrZ2Rlc2M9IlJlLWltcGxlbWVudGF0aW9uIG9mIHRoZSB2aSBlZGl0b3IiDQordXJsPSJo dHRwOi8vd3d3LmJvc3RpYy5jb20vdmkiDQorYXJjaD0iYWxsIg0KK2xpY2Vuc2U9IkJTRCINCitk ZXBlbmRzPSIiDQorZGVwZW5kc19kZXY9IiINCittYWtlZGVwZW5kcz0iZGItZGV2IG5jdXJzZXMt ZGV2Ig0KK2luc3RhbGw9IiINCitzdWJwYWNrYWdlcz0iJHBrZ25hbWUtZG9jICRwa2duYW1lLWNh dGFsb2ciDQorc291cmNlPSJodHRwOi8vZnRwLmRlYmlhbi5vcmcvZGViaWFuL3Bvb2wvbWFpbi9u LyRwa2duYW1lLyR7cGtnbmFtZX1fJHtwa2d2ZXJ9Lm9yaWcudGFyLmd6DQorCTAxYWRkaXRpb25h bF91cHN0cmVhbV9kYXRhLnBhdGNoDQorCTAzZGI0LnBhdGNoDQorCTA0Y29uZmRlZnMucGF0Y2gN CisJMDZkZWZhdWx0X3ZhbHVlX2VzY2FwZXRpbWUucGF0Y2gNCisJMDdmbHVzaF9jYWNoZS5wYXRj aA0KKwkwOGxmcy5wYXRjaA0KKwkwOHNhZmVfcHJpbnRmLnBhdGNoDQorCTA4dGVtcGZpbGVfdW1h c2sucGF0Y2gNCisJMDljYXN0aW5nLnBhdGNoDQorCTEwbm9fb25lX2xpbmVfdmlzdWFsLnBhdGNo DQorCTExYmFja3dhcmRfc2VudGVuY2VfbW92aW5nLnBhdGNoDQorCTEyaG9yaXpfc2Nyb2xsX2Nv dW50LnBhdGNoDQorCTEzd2lkZWNoYXJfaG9ycm9ycy5wYXRjaA0KKwkxNHByaXZhdGVfcmVnZXhf Zml4ZXMucGF0Y2gNCisJMTVzZWFyY2hfd29yZC5wYXRjaA0KKwkxNm1hbnBhZ2VfZXJyb3JzLnBh dGNoDQorCTE3dHV0b3JpYWxfdHlwb3MucGF0Y2gNCisJMThkYnBhZ2VzaXplX2JpbnBvd2VyLnBh dGNoDQorCTE5aW5jbHVkZV90ZXJtX2gucGF0Y2gNCisJMjFleHJjX3dyaXRhYmlsaXR5X2NoZWNr LnBhdGNoDQorCTI0ZmFsbGJhY2tfdG9fZHVtYl90ZXJtLnBhdGNoDQorCTI1bWFucGFnZV9ub3Rl X2Ryb3BwZWRfRi5wYXRjaA0KKwkyNnRyYWlsaW5nX3RhYl9zZWd2LnBhdGNoDQorCTI3c3VwcG9y dF9DX2xvY2FsZS5wYXRjaA0KKwkyOWZpbGVfYmFja3VwLnBhdGNoIg0KKw0KK19idWlsZGRpcj0i JHNyY2RpciIvJHBrZ25hbWUtJHBrZ3Zlcg0KK3ByZXBhcmUoKSB7DQorCWNkICIkX2J1aWxkZGly Ig0KKwl1cGRhdGVfY29uZmlnX3N1YiB8fCByZXR1cm4gMQ0KKw0KKwlmb3IgaSBpbiAkc291cmNl OyBkbw0KKwkJY2FzZSAkaSBpbg0KKwkJKi5wYXRjaCkgbXNnICRpOyBwYXRjaCAtcDEgLWkgIiRz cmNkaXIiLyRpIHx8IHJldHVybiAxOzsNCisJCWVzYWMNCisJZG9uZQ0KK30NCisNCitidWlsZCgp IHsNCisJY2QgIiRfYnVpbGRkaXIiL2Rpc3QNCisJLi9jb25maWd1cmUgXA0KKwkJLS1idWlsZD0k Q0JVSUxEIFwNCisJCS0taG9zdD0kQ0hPU1QgXA0KKwkJLS1wcmVmaXg9L3VzciBcDQorCQktLXN5 c2NvbmZkaXI9L2V0YyBcDQorCQktLW1hbmRpcj0vdXNyL3NoYXJlL21hbiBcDQorCQktLWxvY2Fs c3RhdGVkaXI9L3ZhciBcDQorCQktLXByb2dyYW0tcHJlZml4PW4gXA0KKwkJLS1lbmFibGUtd2lk ZWNoYXIgXA0KKwkJLS1lbmFibGUtdGhyZWFkcyBcDQorCQktLWRpc2FibGUtc3RhdGljIFwNCisJ CXx8IHJldHVybiAxDQorCW1ha2UgfHwgcmV0dXJuIDENCit9DQorDQorcGFja2FnZSgpIHsNCisJ bWtkaXIgLXAgIiRwa2dkaXIiL3Vzci9iaW4gfHwgcmV0dXJuIDENCisJbWFrZSAtajEgUFJFRklY PS91c3IgREVTVERJUj0iJHBrZ2RpciIgXA0KKwkJaW5zdGFsbCAtQyAiJF9idWlsZGRpciIvZGlz dCB8fCByZXR1cm4gMQ0KKw0KKwkjIFJlbW92ZSB0Y2wgYW5kIHBlcmwgc2NyaXB0cy4NCisJcm0g LXJmICIkcGtnZGlyIi91c3Ivc2hhcmUvdmkvdGNsDQorCXJtIC1yZiAiJHBrZ2RpciIvdXNyL3No YXJlL3ZpL3BlcmwNCisNCisJIyBSZW1vdmUgY2F0IG1hbiBwYWdlcy4NCisJcm0gLXJmICIkcGtn ZGlyIi91c3Ivc2hhcmUvbWFuL2NhdDENCit9DQorDQorY2F0YWxvZygpIHsNCisJcGtnZGVzYz0i JHBrZ2Rlc2MgKGNhdGFsb2cgZmlsZXMpIg0KKwlkZXBlbmRzPSIiDQorCWFyY2g9Im5vYXJjaCIN CisNCisJbWtkaXIgLXAgIiRzdWJwa2dkaXIiL3Vzci9zaGFyZS92aS8NCisJbXYgIiRwa2dkaXIi L3Vzci9zaGFyZS92aS9jYXRhbG9nLyBcDQorCQkiJHN1YnBrZ2RpciIvdXNyL3NoYXJlL3ZpLyB8 fCByZXR1cm4gMQ0KK30NCisNCittZDVzdW1zPSJmN2U2NWE5NjkwNDVkYWZkNTNhZWE3ZTNlODBi OGNmMiAgbnZpXzEuODEuNi5vcmlnLnRhci5neg0KKzdiNTRkY2MzNDA3Njg1NzEyN2U0YTU1NWRi Nzk4N2Y1ICAwMWFkZGl0aW9uYWxfdXBzdHJlYW1fZGF0YS5wYXRjaA0KK2I0YTI5NDcwNTBjZjNj M2JiYTkwN2RjZTFmZTkyYjk0ICAwM2RiNC5wYXRjaA0KKzkzNmY5OWQ1MDNiMWI5Y2NkMTJiZDkw YWIyY2Y5YmY0ICAwNGNvbmZkZWZzLnBhdGNoDQorMTVjOGViNjAwNmEwYWU1NTRjNzlhOTVlYWI2 OGU2ZDMgIDA2ZGVmYXVsdF92YWx1ZV9lc2NhcGV0aW1lLnBhdGNoDQorYTI2Yzg5MDA4ZDZhNzM5 ZTEzMjVhYmYyNzA2NzM1M2IgIDA3Zmx1c2hfY2FjaGUucGF0Y2gNCis5MGQ3ZTQwMDQzMjc0NzNj YjljYWVjOTk4ZTQ1YjFmNyAgMDhsZnMucGF0Y2gNCis0OGIxYzdiNWM3ZTkyMzg5YjVkZWY2YzQx YWY5ZmFhNSAgMDhzYWZlX3ByaW50Zi5wYXRjaA0KK2Y2OWQwMDI0ZTczZTkyNDE4NDE1N2RiODNj ZjIxMTUxICAwOHRlbXBmaWxlX3VtYXNrLnBhdGNoDQorZjFlMzU3NGI5MjQ5ZDY1NTliOGIwNzAx NGM3MTMzODggIDA5Y2FzdGluZy5wYXRjaA0KKzI5OTVhNWRhZGI4ZGVhNzIwMWJmN2E3MzIwMzdh ZTgxICAxMG5vX29uZV9saW5lX3Zpc3VhbC5wYXRjaA0KKzFhZGRlMDllY2MwMGU1YWVkYmUxYmJh OWU4OTg2N2M3ICAxMWJhY2t3YXJkX3NlbnRlbmNlX21vdmluZy5wYXRjaA0KKzliY2FhNGRjYzZi NjYwNWUxYjgxODA0YWE1OWExNzE0ICAxMmhvcml6X3Njcm9sbF9jb3VudC5wYXRjaA0KK2Q4OTg1 Yjc1ZGRjMWU2YmJkYjk1YjE1ZThhZjc1ODg1ICAxM3dpZGVjaGFyX2hvcnJvcnMucGF0Y2gNCitk ZTRhM2QyMzlmYjBiY2U2MGM0MDQ3M2QzNDIzOThhNCAgMTRwcml2YXRlX3JlZ2V4X2ZpeGVzLnBh dGNoDQorNDQxZmJlMjY5MDA3NDc4OTJjZmQwNjgwYjAyNjVlNTggIDE1c2VhcmNoX3dvcmQucGF0 Y2gNCitjZTQzZjU5YTI2ZmM0NDU1ODZiMDBiZDUzYjhiODFjOCAgMTZtYW5wYWdlX2Vycm9ycy5w YXRjaA0KKzhiYTEwNzI2NGNjOWRiZmU4M2QxZWM3MmZmMmMzZWMwICAxN3R1dG9yaWFsX3R5cG9z LnBhdGNoDQorNzY0Njk1OWU0OGZkZjNhOTFmMGYwNmQ0MzA1ZGU2ZmEgIDE4ZGJwYWdlc2l6ZV9i aW5wb3dlci5wYXRjaA0KK2IwMDY2ZDNjZjdmOTY4OWNlY2M0ODdiZmJkYzk3NmQ1ICAxOWluY2x1 ZGVfdGVybV9oLnBhdGNoDQorMzNhNWQ3ZjFlYzEwYTY4OGM0MjliNzhjY2Q4MmQwNDQgIDIxZXhy Y193cml0YWJpbGl0eV9jaGVjay5wYXRjaA0KK2JmOWI1ZDg5MDg2OTA2OTk2M2UwMjMzMTI5ZGVi Zjc5ICAyNGZhbGxiYWNrX3RvX2R1bWJfdGVybS5wYXRjaA0KKzI1YzY2YWRjZmU3NzlhNWRlYWE3 NjM2ZjkwNzZmMmUzICAyNW1hbnBhZ2Vfbm90ZV9kcm9wcGVkX0YucGF0Y2gNCis3MjRkMjM2OTk5 M2FhZGQxMzg4ZjllZGU1NGQwZTI4ZiAgMjZ0cmFpbGluZ190YWJfc2Vndi5wYXRjaA0KK2FkNWNk MDg2OWExOGU4ZjAyNzQzNWI5YzA2NDNhMDM5ICAyN3N1cHBvcnRfQ19sb2NhbGUucGF0Y2gNCis3 N2Q4NjEwZjBhMzdlNTU3NWQ1YWU3MzE3M2U3YjQ0OSAgMjlmaWxlX2JhY2t1cC5wYXRjaCINCitz aGEyNTZzdW1zPSI4YmMzNDg4ODkxNTlhMzRjZjI2OGY4MDcyMGIyNmY0NTlkYmQ3MjNiNTYxNjEw N2QzNjczOWQwMDdlNGM5NzhkICBudmlfMS44MS42Lm9yaWcudGFyLmd6DQorYTdhM2ZiMzk5MzU5 ZjQ5Mjk0M2Q2ZTcyZTVjMTIzMzAyMzE4NGYwYWU5NmFiMWJlYmVjNjRjMGQwODY0MWY0ZiAgMDFh ZGRpdGlvbmFsX3Vwc3RyZWFtX2RhdGEucGF0Y2gNCiswYWZmYzhlMTU2YWIxNjY2ZWRlYzEyMjU0 ZDg3ZDQyN2ZkNDVkYmViYjUxZGExODRiNDdhYjgyYmM5MzM0ZWExICAwM2RiNC5wYXRjaA0KK2Ji M2UyOWE4NDYwMmY4NDc3ZTZiZjZlMjc1NjA1N2NmMDE2NGZkZGY3ZGM4MDg2M2UxNTg1OGRiZGJl OGRiZjQgIDA0Y29uZmRlZnMucGF0Y2gNCiszYjE1MzQwZTliYjUxZGE0NjdiY2JlYTFhZDk3NTg5 ZmEwODRiZWQ2OGEyZWU0Y2U3ZmQ5Nzk3YTQyNzllMmNmICAwNmRlZmF1bHRfdmFsdWVfZXNjYXBl dGltZS5wYXRjaA0KK2MyNmEzNjE1MWVlNGY4Mzk3MjRhNzBlMjJkOWI1ZmRhYzllZDM2ODZhMTA4 NDJlY2M4MDdjNWE5ZDhkNjNjMTAgIDA3Zmx1c2hfY2FjaGUucGF0Y2gNCisyNmYzOTY4N2YyNWRl MzJhNWM0NDhiNzFjODIwYTcyY2ZjOTMxMDY4Njg0MmQyOTExNjBjZDgzMGU0NGM2NzNiICAwOGxm cy5wYXRjaA0KK2M1ZWE4MWE5ZThkYTg1MmM4NDZkMDA0NjAzZGY0OTgyOTM0MjA0OGU4YjM5NTlj N2UxZjA3NGM5MTk1ZWM4NjYgIDA4c2FmZV9wcmludGYucGF0Y2gNCis1NmU4MjcxMmU4ZGY3M2Ix YzY0ZGQyOGRhNmVhNTAzNTU1ZWM2YjY1Mjg2ZTQyNTE5ZmUwMjNmMjgzODIwNjRjICAwOHRlbXBm aWxlX3VtYXNrLnBhdGNoDQorYzA2MzczYWJmZDQwNTRmYjg2ZWRjYjhiMzg0NGJmYzc3M2I0YmFk ZDMxM2Q0NTJkNzc1MDI5YmViMmNlMjVkYSAgMDljYXN0aW5nLnBhdGNoDQorOGVkMjVhNTYyNTVj NWNmNjg0NjRkOGI2OTU4YmU3ZjQ4YWVmZDE5YTc3YTZlZWMxMzU1NjUwNWNiOGY0OTg0MyAgMTBu b19vbmVfbGluZV92aXN1YWwucGF0Y2gNCis3NjQ5YjVlMTU0Mzc3YTFlZWE3ZTQ4ODJlYjMzM2M1 MWQyMzk1YjQwNDJiYzdlNjdjNTliNThkMGRmNDk2OTk1ICAxMWJhY2t3YXJkX3NlbnRlbmNlX21v dmluZy5wYXRjaA0KK2M3MjY2YTcxMzkxMWE3YjhkN2QxNzgzMTFmMDg5ZTU4N2E4ZTVkZmQ4OWUz ZTkyNmM2OGIxMDE1OGJiODA5ZWEgIDEyaG9yaXpfc2Nyb2xsX2NvdW50LnBhdGNoDQorZWJmNzVk NzhhNzJiZjEyZjgxMmI3MzRiY2VhOTg5M2M4NDk5ZGZjM2U3MDgwYjE1NTJjYTlmMGQ3NDhjYTMz NyAgMTN3aWRlY2hhcl9ob3Jyb3JzLnBhdGNoDQorYjBjODIwOWNiNGY5NmUyODQzYmE1OGEyNjZh ZDZhNTIzMzliMmQ2Y2Y5YjlmZDg3NzY5MmQ3OGM1ZTI2MDhjZCAgMTRwcml2YXRlX3JlZ2V4X2Zp eGVzLnBhdGNoDQorMDVkMTM5OGUzYzY2MTFhMmE2MmFmNzNmNTU1OTBkOWEyZTQzZWYxN2FjNzU1 MjJlZmY0NmYxNTZhODEzNTE2MSAgMTVzZWFyY2hfd29yZC5wYXRjaA0KKzEzMDI4NWNmY2U0ZTRh NGM3MjY1NzBkYTYxZWMyNzBjYmE5YTI3ZWRkYWM2ZWZmZmEzZmQ0NTA3MGI2ZDg2ZDAgIDE2bWFu cGFnZV9lcnJvcnMucGF0Y2gNCisxNWYyZjQ2NjUyZTQ4NTEzZTI3MmNkMDdjYjYyMDhjZGU4MzY0 M2RiNTU0YTc2ZWRhNzdkODRjNjZlYTVhZTM1ICAxN3R1dG9yaWFsX3R5cG9zLnBhdGNoDQorMGE5 ZTMyMWI1NzFiZGRhYmQ1MDJiN2Y1OGZhMzY1ZGQyMDk1ZjJlMzQ0Y2RiM2NiODc4ODhmNDAyN2I3 OGUyOCAgMThkYnBhZ2VzaXplX2JpbnBvd2VyLnBhdGNoDQorMzFkNTEwNzUwMTQ2MzVmZDNjYWQ3 N2Y0ZTZiZWJmYTE5MmVlMmMyZWUwYmJhMmI2YzMzMWEyMGVhY2EzYjA0YyAgMTlpbmNsdWRlX3Rl cm1faC5wYXRjaA0KK2JhNDdjZjNlNDUzZDIwY2I1ODRjNjhiNWRhODk4YTc5ZDMyNjNlZmIzYjk1 YjUwNTk4ZjBkMjY5ZmY0ZWNjMGYgIDIxZXhyY193cml0YWJpbGl0eV9jaGVjay5wYXRjaA0KK2U3 N2Y4NzljMjA4ZDQ1ZTc3YzFkODY1NThhZWY0MmJkZmE0YWE1MzRmOGY0NmMwZTNkZmU1ZGU1ODI3 MmIwMDMgIDI0ZmFsbGJhY2tfdG9fZHVtYl90ZXJtLnBhdGNoDQorN2JjZWNkOGE3MjI1ODJkMjg4 OGQ5MmE2ZDk5ODQ5MzMyZWYyNzUzOWNjMDlkY2UyNThlYTk3YzFjYTM4NjdjMCAgMjVtYW5wYWdl X25vdGVfZHJvcHBlZF9GLnBhdGNoDQorOGM1OWM5NzM1MGVhODY0MWViODZjMzMwYmY5NWRjMmRh M2M2ZDdkNjFjMjA1YThkYmIzZGMxZjFhY2U2M2FjNiAgMjZ0cmFpbGluZ190YWJfc2Vndi5wYXRj aA0KKzliZDJhNTA3MDg1ODE0M2RkNGNkZTVhMjkyODkwYjUwZDIwOWRhOTcyNjg4M2UxZmIxODA5 NDM5YzVhNTY4ZmQgIDI3c3VwcG9ydF9DX2xvY2FsZS5wYXRjaA0KKzJlZjhiYTI1YTQ1ZjI2NGY4 YzYzZjExNWU3ZTkyMmJjNGI4MzhmOGM1ZDMyNDY0MDA4N2JlNjM4N2U0NjEwZGMgIDI5ZmlsZV9i YWNrdXAucGF0Y2giDQorc2hhNTEyc3Vtcz0iMWJlNzk4ZGFmMGNkMDUwMTBkZGFmMGFhMDUxMGRj Nzk5NzA4ZmQ3OWQ0YjI0M2UyNzAwYWRmZjE4ZTkzMWRkZDlkMTE2MjE3OTZmYTgwODYwODhjM2U5 M2JhMjBmMTVhYjg2NzgzNzMyNjY1MTY5YzUyYjczZWFmNTg3ZmYwYjMgIG52aV8xLjgxLjYub3Jp Zy50YXIuZ3oNCitlYzk5OGJhYmEyM2QxNWM5NTdkYmRiMTIxYTRiYTdlZGRmMGFhYzE1NTAzZTM4 MWExMzE4YTdlNzEyN2IwYzA2ZjNiZDA1ZWJkNDc0MTc1ZjM5YTZmYjA1MGVkNmZkM2ExZjRiZDM0 OGQ5Mjc3MDM1NWU4YmMzZDhkMzcyNzdjOSAgMDFhZGRpdGlvbmFsX3Vwc3RyZWFtX2RhdGEucGF0 Y2gNCitkNjM1Yzg2YzUyY2YxNmNjYzk0N2VlOGE0NTkzMTYwYWRmMTgzYjIzNmFlN2MyZWIwM2Zm MmVhNjI4ZjQ5M2U0ODRmOTA2Yjc2MmViMWQ5MGVjMWZlYmM0ODExOWNhYzk1NTM4MmFmM2ViYzIy M2UyOTYyMjEyMzUwMGE0NWY5NyAgMDNkYjQucGF0Y2gNCis5YjQ1ZTA2MzlhMzBiODEyMDRlMWM5 YjQzODc3YTZhODNkZjJhNWJiYTNiODVhNDEwNDI3ZWFkMWU2MzljYzk4ODJmMGNhMTYyNzIxMDc0 NzgyODcwNzQyYWY0NDljNWEzZjAwYjUwNTFkNDU5NDkxYmY5YWZiN2NkNzE4NDUwZCAgMDRjb25m ZGVmcy5wYXRjaA0KKzQ4MjBiNTg0NjE0ZDMyMWI2NTI4Yjk0MDA0Mjk0NDBiMTI2YzVjOGNjYzUw MmY5ZTYxZWM3ZmY5Y2Q3NzY5ZTdjNTNlMDRmODNmZmNkNDgwNGM2YmFlZDVhYzU1OTUzODM0NjQ0 NDQ0YzExZTljZjQyODQxZThmYjM3MTE5NmNhICAwNmRlZmF1bHRfdmFsdWVfZXNjYXBldGltZS5w YXRjaA0KK2RmNzRiMDk3N2U3ZDg2NGU3ZWE5ODMzNDA0ZjgxOGNmYjY0NGM5ZmExODgwMjRiNjE3 NGM3YTIzNjAzNTBjYzYzZjhjZDhjZDdmYzE5ZTU0ZGJjNWRiOGUyYjYzMTBiZTk4MDdiYjdiZDEw OGFiNTZkYmMyZDNkOWNmOGJmZjE0ICAwN2ZsdXNoX2NhY2hlLnBhdGNoDQorMGE0MzJhMDgyM2Qw ZDBiMmJiYTJkYmE2ZWUyNGYxYjE3M2I0NTUyMjQ1YzFiYmExNzI3ODA0ZGZhOGVmZjA5ZGZkODgx MjlmYjYxNWVhZTU4NDZhYTZlZjkyOWMwOGEwYTIzYTUwNWIwMDBkYzc3ZWNjNmRlNTc4ZDNkYzgw MjYgIDA4bGZzLnBhdGNoDQorMmMxYWZiMjcxZjYwMDMxYTE1ZDRlMjA5M2I0ZTA0YzAyNDYyY2Mx ZDE4MTVjZTU1NzA0OTM2NGJjZGM4MWY4M2QzYzZlMjU3NjZhN2E3ZWZhOGQwNGNjMWM4Mjg0ZTk2 ODRkZjEyYWIxNjFhYmExNmJiNDc5YzllZTQ2NjAwMTIgIDA4c2FmZV9wcmludGYucGF0Y2gNCith ZjcyMzEyNGNlZjM2OTY2YzU3Nzg1ZjkwNjZjYzkyNGQxNTVhMGQ0OTUzNzU4NDlkYjM2YTFiZjFl ZjFiMTY2YWZkOGYwNTdkMjU4YWRhOTM2N2ZiZjgyY2QzMDY5NGVmZWVlYjI0NmQwZmIxNGZmMDdm Y2RiODA3MjMwZTEwOSAgMDh0ZW1wZmlsZV91bWFzay5wYXRjaA0KK2U3MGVlNzYzYTVjNTQ0MjRm NzUxNDNjZTg5MmI5M2Q4MDQ2NjE4OTM1YmRjNTBiYzNlNjQ2ODQ4YjliMGYzZDRiYWNmMGEzNjJi NDIwMzk4NDUyN2RiZDk4ZWEzMjFhMTJiODFiNjllZWU3YWEzNDBlNzQ1YjVkNzc0OTJhY2EwICAw OWNhc3RpbmcucGF0Y2gNCis2NTc3NmI4N2Q4NmNkZTIxZWY4MDM0YTFjMWZlODhkYWFhYzAzYTk2 MDIyM2EwNWZkYjJlMTAwNWI3ZTQ0MzQ4ZGM0NTcxYWJlMGFkZGVlZjY1ZjA4ZmJlZWY3MmZiMzc2 NDg2YjNkY2NhYWZmNGNjN2Q0YzM5YmRjMjA2MDI2ZCAgMTBub19vbmVfbGluZV92aXN1YWwucGF0 Y2gNCitmOTlhZmM4ZjgzZWE4NGNlMDU5ZGJkNWRjN2IxYmY3MjZkYmIyYzY0ZGU4YjEyYTdkZTIx Y2E0MmE3NmUwYTNiOWYxOWQwYzhjNzNiZDA0NmQ3ZTBhZDVhZTgxYWZlZDdmOGU0NzIyMzJiY2M1 NWViMjIxYjQ3OWFiNDY3MWY0OCAgMTFiYWNrd2FyZF9zZW50ZW5jZV9tb3ZpbmcucGF0Y2gNCisz Zjc3YzY5ZDA4ZDhjODA3ZWI2MjMzMmVjYTg0YWY4OTg4NDkyMTQ2NjBlMjM4OTE1Y2FkZjYwZTQ2 MDE0Mjk1ODg5YmI0YzY2ZmMxMTY4NDZkMWQ5Y2RjMmNkNGQzYjg5YjRjOWM0YzZhNWU5MDhlYmQ1 MzBmNmI5ZmVlMDBmMCAgMTJob3Jpel9zY3JvbGxfY291bnQucGF0Y2gNCis5N2U0MDM3MjM5MzRi ZjYzNDEyMGU1M2I3ZDYyOWNhODdkYmFlNzNlZDBhNzM2Y2YyYzE1ZDRkM2Y3NDMyNzkyNTM1YTEw NmZiZjVlYjk1OWQzYjE3MDZhODY4ZDc5YmYyNGY0NTBlMjRjOWIyZmUyOTVkZjk0NDNlZjAxNzUw NCAgMTN3aWRlY2hhcl9ob3Jyb3JzLnBhdGNoDQorZTViMWMwZDdkN2Y5NmEyMDY2ZjYzN2Y4NDg1 NjQ4Nzc5MjBmMTYzYzcxNWExYjJjNDI0ODI5OGVkMGI2YTQyMGZkM2ZlNGU2MWMzOTI1YzQ4YmQ5 NjE2ODM1MmNiMzkzNWI3MTNhYmZmOGNiMzNkMDY5MzYyMTkyZjk5MDQ3ZDcgIDE0cHJpdmF0ZV9y ZWdleF9maXhlcy5wYXRjaA0KK2VhZGM4OWU2NGI5MzA0M2RmY2Y4NDkzZmY4YTM2YmM3YzJmMTQ3 YzMxM2E5NThhNjhlZGJlYTU3N2NlZjkyZDEwZjlmMjI2MmRiYjQ2NDAxNmU0MDA4ZTIzMmE2ZWZk YjgzY2MwYjM0NjljZGM3NWI0OWVhYjc0MTlhOWVmMDFlICAxNXNlYXJjaF93b3JkLnBhdGNoDQor MjFhYjg0NjU0ODEwMWQ1OGQxZDlkMmE5M2M2ZjMwOTcyOWRmZGMzZGYzM2EwZGQ3M2JmNTVkMzBm YzQyMzE0ZTRkYWJkZWI2MDUxNzhhNmJkMjU2ZWNkYWI0ZjQzMzFlM2MxNTZiMTA3MWMwYmJmODIw NDZhY2I0MDQzNGI3Y2UgIDE2bWFucGFnZV9lcnJvcnMucGF0Y2gNCisyZGZjMjk0Zjk4MzAyYWZh ZDY3MDk1YzgzNzZkZTRkZTNiZDU4MmY4OTAxNTFiYTQ5NWQxYzQyMTI5NjRjMzYwYTlmYzJhZmM3 ZDk4OGJlMDcxNWI0ZTVkNDk4Yzk5ZjIyOGYwMWQ1MTZhZDU3NDM1YmFmMDc5OTNjMjFjMTNhMSAg MTd0dXRvcmlhbF90eXBvcy5wYXRjaA0KKzRkODk5OWIyMzU2MzRmYzA0MGQ0NTAzNjYyNGQ4ODBl ZDNjNmJlNjE0Y2Q1MmM3ZjY0MmY4MTQ0ZDI0NzI2YWQ3NjRhNzFlMzg1NDQ1YzYzNDZmMTAxZjY1 ZmViZTNlNjA5ZTljOTQ1Mjc0NGVlNGNlZjU3NzRmOTA0OGYwMDI5ICAxOGRicGFnZXNpemVfYmlu cG93ZXIucGF0Y2gNCisyN2JlNDczZGMxNjI4YzQwNzk2M2ViNGM4MjhjYWE4YzQxYWQ1N2FiYjc1 ZGRmOWFkZWZlN2EwNjVjZTlmOGNmZTE2NTM2YWFiZWIxZjA3OGY4NTlmYTdhODgxN2VhOGQ1ZDJj YTFjYjM2YzQ3YmUyNzQzNmE5Nzg5ZmFlYjUwNCAgMTlpbmNsdWRlX3Rlcm1faC5wYXRjaA0KKzQw NjViODE0NjQ5Y2JiYzU3NTM1OTQxYjRmMjBjZWFjYzkyNWIwZWY2ZGVjZmJhYTVhNjBjNmM0Yjk0 M2YyYTViNmM2ODM3MWZhODdmOGRjZTViNmMyMTk3NDBhMTAzMzk5NDhmZmRjZTIyNmM4ODUwOWE4 MDc1ODBlMTk4NjRkICAyMWV4cmNfd3JpdGFiaWxpdHlfY2hlY2sucGF0Y2gNCitiMGE0YzliYTcx M2Q4ZmI4ZmE4NTU5YjYwMzhiY2I3MGQwZmI2ZTQxMWEzYTczY2Y2NzdjMzhkODI4OGYyOGEyZmVi ZmE5MmYzODdhZWY4OTlhYzM5NTlmYjdiZGY1MjIwMzM0ZTAyNWI3MTI2MDE1N2Y5MzViMGY3OWYw MWU2NiAgMjRmYWxsYmFja190b19kdW1iX3Rlcm0ucGF0Y2gNCis5YTZhNzE1NzRjM2ZiNjA3M2Qz ZmRkMGFiZjc4M2YwMDUzZmJmYjFlZTg0MDhlMjA4YzkzNjhhNzJjM2IyNWE1ZjU2MTU2ZGE1MGJk ZDA2ZWJmMzgxMjEwMjc4YzkxMDM2Y2NhMjkzMzNiNDhhMGQ1ZjQzMmJiYWExZDgyYmJkNSAgMjVt YW5wYWdlX25vdGVfZHJvcHBlZF9GLnBhdGNoDQorODlhZTcwYThhMmRkNGZiYjUxZTFmNmU1NzBm OTU4ZTdkYzYzZTRmNjAwNzY0NDZmNWYwY2UwNjNmNGRhYzE5ZDJkMWM4ZGEyNDFiNGE3MDllZjAy ODQ1OWU0YjQzYzY4MmYxYTMwMjFlZjRmMDRhNzJiZTk4YjdlMmM3YjlmZDEgIDI2dHJhaWxpbmdf dGFiX3NlZ3YucGF0Y2gNCitjMDkxYTg3MGVmYzcxODFiMzQ4MDk5OGI4Yjg0MjdjZGVjNGIzN2Vm NjYzNThhZThiZmQyYzc5ZDYwMzdjOWI2NGZkNmUwMDRlMzk0MDA2ODBkMWQ2N2Y2MDhjMzVkNTZl N2UzNmQ5MTgxMGRlZDA0Zjk4NGZlODlhMDUyOTI1YSAgMjdzdXBwb3J0X0NfbG9jYWxlLnBhdGNo DQorNGMwNTBjNWQ4ZWUyOThmODhiYzU5ZmQ3MjgyNzM5ZGZlOTIwMjYxMDI4NWNhNjRjNTliNTc5 Njk4NjY3YWM2Yzg5NDBlY2Y5MWIyYjNkZjM0ZDMxYThlZTgxOGI5YzE4YjFhNGY5YTBiNDc4OTRk ZDRjNmY4YmQyMGM5ZjFjNzUgIDI5ZmlsZV9iYWNrdXAucGF0Y2giDQotLSANCjIuNi4zDQoNCg0K DQotLS0NClVuc3Vic2NyaWJlOiAgYWxwaW5lLWFwb3J0cyt1bnN1YnNjcmliZUBsaXN0cy5hbHBp bmVsaW51eC5vcmcNCkhlbHA6ICAgICAgICAgYWxwaW5lLWFwb3J0cytoZWxwQGxpc3RzLmFscGlu ZWxpbnV4Lm9yZw0KLS0tDQo=