From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephan Seitz Subject: [PATCH] add areca raid controller support to x86_32 and x86_64 kernel builds Date: Fri, 16 Nov 2007 15:59:07 +0100 Message-ID: <473DB03B.1090404@netz-haut.de> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1309616694==" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Mime-version: 1.0 Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: XEN Devel - listmembers List-Id: xen-devel@lists.xenproject.org This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --===============1309616694== Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enigEAED961AEDC8A1DE70A64FE3" This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enigEAED961AEDC8A1DE70A64FE3 Content-Type: multipart/mixed; boundary="------------020409060208040300020006" This is a multi-part message in MIME format. --------------020409060208040300020006 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: quoted-printable Hi! This patch contains a patch for the ref-linux-2.6.18 tree to add support = for areca raid controllers (ARCMSR). The arcmsr code has been taken unaltered= from www.areca.com.tw (arcmsr.1.20.0x.14). Additionally the buildconfigs has been changed: - xen0_x86_32 and xen0_x86_64 are changed to build arcmsr into the kernel= s - xen_x86_32 and xen_x86_64 are changed to build arcmsr as a module I don't know if this patch really belongs to xen, but it saves us a lot o= f time since we're using nearly every host with areca controllers. Signed-off-by: Stephan Seitz --=20 Stephan Seitz Senior System Administrator *netz-haut* e.K. multimediale kommunikation zweierweg 22 97074 w=FCrzburg fon: +49 931 2876247 fax: +49 931 2876248 web: www.netz-haut.de registriergericht: amtsgericht w=FCrzburg, hra 5054 --------------020409060208040300020006 Content-Type: text/x-patch; name="add_drivers-scsi-arcmsr-patch.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="add_drivers-scsi-arcmsr-patch.patch" ZGlmZiAtcHJ1TiAuL29yaWctcGF0Y2hlcy9saW51eC0yLjYuMTgvYWRkX2RyaXZlcnMtc2Nz aS1hcmNtc3IucGF0Y2ggLi9wYXRjaGVzL2xpbnV4LTIuNi4xOC9hZGRfZHJpdmVycy1zY3Np LWFyY21zci5wYXRjaAotLS0gLi9vcmlnLXBhdGNoZXMvbGludXgtMi42LjE4L2FkZF9kcml2 ZXJzLXNjc2ktYXJjbXNyLnBhdGNoCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCisrKyAuL3BhdGNoZXMvbGludXgtMi42LjE4L2FkZF9kcml2ZXJzLXNjc2ktYXJjbXNy LnBhdGNoCTIwMDctMTEtMTYgMTM6Mzk6MzYuNjc1NjM5MDAwICswMTAwCkBAIC0wLDAgKzEs NzkzMyBAQAorZGlmZiAtcHJ1TiAuLi9vcmlnLWxpbnV4LTIuNi4xOC9kcml2ZXJzL3Njc2kv YXJjbXNyL2FyY21zci5jIC4vZHJpdmVycy9zY3NpL2FyY21zci9hcmNtc3IuYworLS0tIC4u L29yaWctbGludXgtMi42LjE4L2RyaXZlcnMvc2NzaS9hcmNtc3IvYXJjbXNyLmMJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2RyaXZlcnMvc2NzaS9hcmNt c3IvYXJjbXNyLmMJMjAwNy0wNi0yNSAxMDo1NjowMC4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsMjgyNiBAQAorKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisrKioJICBPLlMJOiBMaW51eAorKyoqICAgRklMRSBOQU1FCTogYXJjbXNyLmMKKysq KgkgIEJZCTogRXJpY2gJQ2hlbiAgIAorKyoqICAgRGVzY3JpcHRpb246IFNDU0kgUkFJRCBE ZXZpY2UgRHJpdmVyIGZvciAKKysqKgkJICBBUkNNU1IgUkFJRCBIb3N0IGFkYXB0ZXIgCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisrKiogQ29weXJpZ2h0IChDKSAyMDAyIC0JMjAwNSwgQXJl Y2EgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKyoqCisr KiogICAgIFdlYiBzaXRlOiB3d3cuYXJlY2EuY29tLnR3CisrKioJIEUtbWFpbDogZXJpY2hA YXJlY2EuY29tLnR3CisrKioKKysqKiBUaGlzCXByb2dyYW0JaXMgZnJlZQlzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorKyoqIGl0IHVuZGVyIHRo ZQl0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljCUxpY2Vuc2UJdmVyc2lvbgkyIGFz CisrKiogcHVibGlzaGVkIGJ5CXRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisrKiog VGhpcwlwcm9ncmFtCWlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQJaXQgd2lsbAli ZSB1c2VmdWwsCisrKiogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g dGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysqKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuCSBTZWUgdGhlCisrKiogR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KysqKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQJYmluYXJ5IGZvcm1z LHdpdGggb3Igd2l0aG91dAorKyoqIG1vZGlmaWNhdGlvbixhcmUgcGVybWl0dGVkIHByb3Zp ZGVkIHRoYXQgdGhlCWZvbGxvd2luZyBjb25kaXRpb25zCisrKiogYXJlIG1ldDoKKysqKiAx LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlCWNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl IGNvcHlyaWdodAorKyoqICAgIG5vdGljZSx0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKyoqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi aW5hcnkJZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUJYWJvdmUgY29weXJpZ2h0CisrKiogICAg bm90aWNlLHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns YWltZXIgaW4gdGhlCisrKiogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKysqKiAzLiBUaGUgbmFtZSBv ZiB0aGUgYXV0aG9yIG1heSBub3QgYmUJdXNlZCB0bwllbmRvcnNlCW9yIHByb21vdGUgcHJv ZHVjdHMKKysqKiAgICBkZXJpdmVkIGZyb20gdGhpcwlzb2Z0d2FyZSB3aXRob3V0IHNwZWNp ZmljIHByaW9yCXdyaXR0ZW4JcGVybWlzc2lvbi4KKysqKgorKyoqIFRISVMJU09GVFdBUkUg SVMgUFJPVklERUQgQlkJVEhFIEFVVEhPUiBgYEFTCUlTJycgQU5EIEFOWSBFWFBSRVNTIE9S CisrKiogSU1QTElFRCBXQVJSQU5USUVTLElOQ0xVRElORyxCVVQgTk9UCUxJTUlURUQJVE8s VEhFIElNUExJRUQgV0FSUkFOVElFUworKyoqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU TkVTUyBGT1IgQQlQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisrKiogSU4g Tk8gRVZFTlQgU0hBTEwgVEhFIEFVVEhPUglCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsSU5E SVJFQ1QsCisrKiogSU5DSURFTlRBTCxTUEVDSUFMLEVYRU1QTEFSWSxPUiBDT05TRVFVRU5U SUFMIERBTUFHRVMoSU5DTFVESU5HLEJVVAorKyoqIE5PVCBMSU1JVEVEIFRPLFBST0NVUkVN RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorKyoq IERBVEEsT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MJSU5URVJSVVBUSU9OKUhPV0VWRVIgQ0FV U0VEIEFORAlPTiBBTlkKKysqKiBUSEVPUlkgT0YgTElBQklMSVRZLFdIRVRIRVIgSU4gQ09O VFJBQ1QsU1RSSUNUIExJQUJJTElUWSxPUiBUT1JUCisrKiooSU5DTFVESU5HIE5FR0xJR0VO Q0UJT1IgT1RIRVJXSVNFKUFSSVNJTkcgSU4JQU5ZIFdBWQlPVVQgT0YgVEhFIFVTRSBPRgor KyoqIFRISVMJU09GVFdBUkUsRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQlQT1NTSUJJTElUWSBP RiBTVUNIIERBTUFHRS4KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqIEhpc3RvcnkKKysq KgorKyoqCSAgUkVWIwkgICAgREFURShNTS9ERC9ZWVlZKQkJTkFNRQkJICAgICAgIERFU0NS SVBUSU9OCisrKiogICAgIDEuMDAuMDAuMDAgICAgICAgMy8zMS8yMDA0CSAgICAgICAgRXJp Y2ggQ2hlbgkgICAgICAgICAgICAgIEZpcnN0IHJlbGVhc2UKKysqKiAgICAgMS4xMC4wMC4w NCAgICAgICA3LzI4LzIwMDQJICAgICAgICBFcmljaCBDaGVuCSAgICAgICAgICAgICAgbW9k aWZ5CWZvciBpb2N0bAorKyoqICAgICAxLjEwLjAwLjA2ICAgICAgIDgvMjgvMjAwNAkgICAg ICAgIEVyaWNoIENoZW4JICAgICAgICAgICAgICBtb2RpZnkJZm9yIDIuNi54CisrKiogICAg IDEuMTAuMDAuMDggICAgICAgOS8yOC8yMDA0CSAgICAgICAgRXJpY2ggQ2hlbgkgICAgICAg ICAgICAgIG1vZGlmeQlmb3IgeDg2XzY0IAorKyoqICAgICAxLjEwLjAwLjEwICAgICAgMTAv MTAvMjAwNAkgICAgICAgIEVyaWNoIENoZW4JICAgICAgICAgICAgICBidWcgZml4CWZvciBT TVAJJiBpb2N0bAorKyoqICAgICAxLjIwLjAwLjAwICAgICAgMTEvMjkvMjAwNAkgICAgICAg IEVyaWNoIENoZW4JICAgICAgICAgICAgICBidWcgZml4CXdpdGggYXJjbXNyX2J1c19yZXNl dCB3aGVuIFBIWSBlcnJvcgorKyoqICAgICAxLjIwLjAwLjAyICAgICAgMTIvMDkvMjAwNAkg ICAgICAgIEVyaWNoIENoZW4JICAgICAgICAgICAgICBidWcgZml4CXdpdGggb3ZlciAyVCBi eXRlcyBSQUlECVZvbHVtZQorKyoqICAgICAxLjIwLjAwLjA0ICAgICAgIDEvMDkvMjAwNQkJ RXJpY2ggQ2hlbgkgICAgICAgICAgICAgIGZpdHMgZm9yIERlYmlhbiBsaW51eCBrZXJuZWwg dmVyc2lvbiAyLjIueHggCisrKiogICAgIDEuMjAuMFguMDcgICAgICAgMy8yOC8yMDA1CQlF cmljaCBDaGVuCSAgICAgICAgICAgICAgc3luYyBmb3IgMS4yMC4wMC4wNyAobGludXgub3Jn IHZlcnNpb24pCisrKioJCQkJCQkJICAgICAgICAgICAgICAgICAgIAkJCSAgICAgICByZW1v dmUgc29tZSB1bnVzZWQgZnVuY3Rpb24KKysqKgkJCQkJCQkgICAgICAgICAgICAgICAgICAg CQkJICAgICAgIC0tLi0tLjBYLi0tIGlzICBmb3Igb2xkIHN0eWxlIGtlcm5lbCBjb21wYXRp YmlsaXR5CisrKiogICAgIDEuMjAuMFguMDggICAgICAgNi8yMy8yMDA1CSAgICAgICAgRXJp Y2ggQ2hlbgkgICAgICAgICAgICAgIGJ1ZyBmaXggd2l0aCBhYm9ydCBjb21tYW5kLGluIGNh c2Ugb2YgaGVhdnkgbG9hZGluZyB3aGVuIHNhdGEgY2FibGUKKysqKgkJCQkJCQkgICAgICAg ICAgICAgICAgICAgCQkJICAgICAgIHdvcmtpbmcgb24gbG93IHF1YWxpdHkgY29ubmVjdGlv bgorKyoqICAgICAxLjIwLjBYLjA5ICAgICAgIDkvMTIvMjAwNQkgICAgICAgIEVyaWNoIENo ZW4JICAgICAgICAgICAgICBidWcgZml4IHdpdGggYWJvcnQgY29tbWFuZCBoYW5kbGluZyxh bmQgZmlybXdhcmUgdmVyc2lvbiBjaGVjawkKKysqKgkJCQkJCQkgICAgICAgICAgICAgICAg ICAgCQkJICAgICAgICBhbmQgZmlybXdhcmUgdXBkYXRlIG5vdGlmeSBmb3IgaGFyZHdhcmUg YnVnIGZpeAorKyoqICAgICAxLjIwLjBYLjEwICAgICAgIDkvMjMvMjAwNQkgICAgICAgIEVy aWNoIENoZW4JICAgICAgICAgICAgICAgZW5oYW5jZSBzeXNmcyBmdW5jdGlvbiBmb3IgY2hh bmdlIGRyaXZlcidzIG1heCB0YWcgUSBudW1iZXIuCisrKioJCQkJCQkJICAgICAgICAgICAg ICAgICAgIAkJCSAgICAgICAgYWRkIERNQV82NEJJVF9NQVNLIGZvciBiYWNrd2FyZCBjb21w YXRpYmxlIHdpdGggYWxsIDIuNi54CisrKioJCQkJCQkJICAgICAgICAgICAgICAgICAgIAkJ CSAgICAgICAgYWRkIHNvbWUgdXNlZnVsIG1lc3NhZ2UgZm9yIGFib3J0IGNvbW1hbmQKKysq KgkJCQkJCQkgICAgICAgICAgICAgICAgICAgCQkJICAgICAgICBhZGQgaW9jdGwgY29kZSAn QVJDTVNSX01FU1NBR0VfRkxVU0hfQURBUFRFUl9DQUNIRScKKysqKgkJCQkJCQkgICAgICAg ICAgICAgICAgICAgCQkJICAgICAgICBjdXN0b21lciBjYW4gc2VuZCB0aGlzIGNvbW1hbmQg Zm9yIHN5bmMgcmFpZCB2b2x1bWUgZGF0YQorKyoqICAgICAxLjIwLjBYLjExICAgICAgIDkv MjkvMjAwNQkgICAgICAgIEVyaWNoIENoZW4JICAgICAgICAgICAgICAgYnkgY29tbWVudCBv ZiBBcmphbiB2YW4gZGUgVmVuIGZpeCBpbmNvcnJlY3QgbXNsZWVwIHJlZGVmaW5lCisrKioJ CQkJCQkJICAgICAgICAgICAgICAgICAgIAkJCSAgICAgICAgY2FzdCBvZmYgc2l6ZW9mKGRt YV9hZGRyX3QpIGNvbmRpdGlvbiBmb3IgNjRiaXQgcGNpX3NldF9kbWFfbWFzaworKyoqICAg ICAxLjIwLjBYLjEyICAgICAgIDkvMzAvMjAwNQkgICAgICAgIEVyaWNoIENoZW4JICAgICAg ICAgICAgICAgYnVnIGZpeCB3aXRoIDY0Yml0IHBsYXRmb3JtJ3MgY2NicyB1c2luZyBpZiBv dmVyIDRHIHN5c3RlbSBtZW1vcnkKKysqKgkJCQkJCQkgICAgICAgICAgICAgICAgICAgCQkJ ICAgICAgICBjaGFuZ2UgNjRiaXQgcGNpX3NldF9jb25zaXN0ZW50X2RtYV9tYXNrIGludG8g MzJiaXQKKysqKgkJCQkJCQkgICAgICAgICAgICAgICAgICAJCQkgICAgICAgIGluY3JlY2N0 IGFkYXB0ZXIgY291bnQgaWYgYWRhcHRlciBpbml0aWFsaXplIGZhaWwuCisrKioJCQkJCQkJ ICAgICAgICAgICAgICAgICAgCQkgICAgICAgICAgICAgICAgbWlzcyBlZGl0IGF0IGFyY21z cl9idWlsZF9jY2IuLi4uCisrKioJCQkJCQkJICAgICAgICAgICAgICAgICAgIAkJCSAgICAg ICAgIHBzZ2UgKz0gc2l6ZW9mKHN0cnVjdCBTRzY0RU5UUlkgKikgPT4gcHNnZSArPSBzaXpl b2Yoc3RydWN0IFNHNjRFTlRSWSkKKysqKgkJCQkJCQkgICAgICAgICAgICAgICAgICAgCQkJ ICAgICAgICAgNjQgYml0cyBzZyBlbnRyeSB3b3VsZCBiZSBpbmNvcnJlY3RseSBjYWxjdWxh dGVkCisrKioJCQkJCQkJICAgICAgICAgICAgICAgICAgIAkJCSAgICAgICAgIHRoYW5rcyBL b3JuZWwgV2llbGljemVrIGdpdmUgbWUga2luZGx5IG5vdGlmeSBhbmQgZGV0YWlsIGRlc2Ny aXB0aW9uCisrKiogICAgIDEuMjAuMFguMTMgICAgICAxMS8xNS8yMDA1CSAgICAgICAgRXJp Y2ggQ2hlbgkgICAgICAgICAgICAgICAgIHNjaGVkdWxpbmcgcGVuZGluZyBjY2Igd2l0aCAn Zmlyc3QgaW4gZmlyc3Qgb3V0JworKyoqCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5ldyBmaXJtd2FyZSB1cGRhdGUgbm90aWZ5CisrKioJ CSAgICAgICAgICAgICAgICAxMS8wNy8yMDA2CSAgICAgICAgRXJpY2ggQ2hlbgkgICAgICAg ICAgICAgICAgIDEucmVtb3ZlICNpbmNsdWRlIGNvbmZpZy5oIGFuZCBkZXZmc19mc19rZXJu ZWwuaAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuZW5sYXJn ZSB0aGUgdGltZW91dCBkdXJhdGlvbiBvZiBlYWNoIHNjc2kgY29tbWFuZCBpdCBjb3VsZCBh dmlvZCB0aGUgdmlicmF0aW9uIGZhY3RvciAKKysqKiAgICAgCQkJCQkJICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aCBzYXRhIGRpc2sgb24gc29t ZSBiYWQgbWFjaGluZQorKyoqCQkJCQkJCSAgIAorKyoqICAgICAxLjIwLjBYLjE0ICAgICAg MDUvMDIvMjAwNwkgICAgICAgIEVyaWNoIENoZW4vTmljayBDaGVuZwkgICAgMS5hZGQgUENJ LUV4cHJlc3MgZXJyb3IgcmVjb3ZlcnkgZnVuY3Rpb24gYW5kIEFFUiBjYXBhYmlsaXR5CQor KyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAkJCSAgICAyLmFkZCB0aGUgc2VsZWN0aW9uIG9mIEFS Q01TUl9NQVhfWEZFUl9TRUNUT1JTX0I9NDA5NiBpZiBmaXJtd2FyZSB2ZXJzaW9uIGlzIG5l d2VyIHRoYW4gMS40MQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDMubW9kaWZ5IGFyY21zcl9pb3BfcmVzZXQgdG8gaW1wcm92ZSB0aGUgc3RhYmlsaXR5Cisr KioJCQkJCQkJCQkJCSAgICAgICAgICAgICAgICAgIDQuZGVsZWN0IGFyY21zcl9tb2RpZnlf dGltZW91dCByb3V0aW5lIGJlY2F1c2UgaXQgd291bGQgbWFsZnVuY3Rpb24gYXMgcmVtb3Zh bCBhbmQgcmVjb3ZlcnkgdGhlIGx1bgorKyoqCQkJCQkJCQkJCQkgICAgICAgICAgICAgICAg ICBpZiBzb21lYm9keSBuZWVkcyB0byBhZGp1c3QgdGhlIHNjc2kgY29tbWFuZCB0aW1lb3V0 IHZhbHVlLCB0aGUgc2NyaXB0IGNvdWxkIGJlIGF2YWlsYWJsZSBvbiBBcmVjYSBGVFAgc2l0 ZSBvciBjb250YWN0IEFyZWNhIHN1cHBvcnQgdGVhbSAKKysqKgkJCQkJCQkJCQkJICAgICAg ICAgICAgICAgICAgNS5tb2RpZnkgdGhlIElTUiwgYXJjbXNyX2ludGVycnVwdCByb3V0aW5l LCB0byBwcmV2ZW50IHRoZSBpbmNvbnNpc3RlbnQgd2l0aCBzZ19tb2QgZHJpdmVyIGlmIGFw cGxpY2F0aW9uIGRpcmVjdGx5IGNhbGxzIHRoZSBhcmNtc3IgZHJpdmVyIAorKyoqCQkJCQkJ CQkJCQkgICAgICAgICAgICAgICAgICB3L28gcGFzc2luZyB0aHJvdWdoICBzY3NpIG1pZCBs YXllcgkJCisrKioJCQkJCQkJCQkJCQkgICAgICAgNi5kZWxlY3QgdGhlIGNhbGxiYWNrIGZ1 bmN0aW9uLCBhcmNtc3JfaW9jdGwKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqLworKyNkZWZpbmUJQVJDTVNSX0RFQlVHCTAJCQkgIAorKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisrI2lmIGRlZmluZWQgX19LRVJORUxfXwor KwkjaW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgorKwkjaWYgZGVmaW5lZChDT05GSUdfTU9E VkVSU0lPTlMpICYmICFkZWZpbmVkKE1PRFZFUlNJT05TKQorKwkJI2RlZmluZSBNT0RWRVJT SU9OUworKwkjZW5kaWYKKysJLyogbW9kdmVyc2lvbnMuaCBzaG91bGQJYmUgYmVmb3JlIHNo b3VsZCBiZSBiZWZvcmUgbW9kdWxlLmggKi8KKysgICAgCSNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPCBLRVJORUxfVkVSU0lPTigyLDYsMCkKKysJCSNpZiBkZWZpbmVkKCBNT0RWRVJTSU9O UyApCisrCQkJI2luY2x1ZGUgPGNvbmZpZy9tb2R2ZXJzaW9ucy5oPgorKwkJI2VuZGlmCisr ICAgIAkjZW5kaWYKKysJI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorKwkvKiBOb3cgeW91 ciBtb2R1bGUgaW5jbHVkZSBmaWxlcyAmIHNvdXJjZSBjb2RlIGZvbGxvd3MgKi8KKysJI2lu Y2x1ZGUgPGFzbS9kbWEuaD4KKysJI2luY2x1ZGUgPGFzbS9pby5oPgorKwkjaW5jbHVkZSA8 YXNtL3N5c3RlbS5oPgorKwkjaW5jbHVkZSA8YXNtL3VhY2Nlc3MuaD4KKysJI2luY2x1ZGUg PGxpbnV4L2RlbGF5Lmg+CisrCSNpbmNsdWRlIDxsaW51eC9zaWduYWwuaD4KKysJI2luY2x1 ZGUgPGxpbnV4L2Vycm5vLmg+CisrCSNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKysJI2lu Y2x1ZGUgPGxpbnV4L2lvcG9ydC5oPgorKwkjaW5jbHVkZSA8bGludXgvcGNpLmg+CisrCSNp bmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CisrCSNpbmNsdWRlIDxsaW51eC9zdHJpbmcuaD4K KysJI2luY2x1ZGUgPGxpbnV4L2N0eXBlLmg+CisrCSNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1 cHQuaD4KKysJI2luY2x1ZGUgPGxpbnV4L3NtcF9sb2NrLmg+CisrCSNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj1LRVJORUxfVkVSU0lPTigyLDUsMCkKKysJCSNpbmNsdWRlIDxsaW51eC9w Y2lfaWRzLmg+CisrCQkjaW5jbHVkZSA8bGludXgvbW9kdWxlcGFyYW0uaD4KKysJCSNpbmNs dWRlIDxsaW51eC9ibGtkZXYuaD4KKysJI2Vsc2UKKysJCSNpbmNsdWRlIDxsaW51eC9ibGsu aD4KKysJI2VuZGlmCisrCSNpbmNsdWRlIDxsaW51eC90aW1lci5oPgorKyAgICAgICAgI2lu Y2x1ZGUgPGxpbnV4L3JlYm9vdC5oPgorKwkjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KKysJ I2luY2x1ZGUgPGxpbnV4L2luaXQuaD4KKysKKysJI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ PUtFUk5FTF9WRVJTSU9OKDIsMywzMCkKKysJCSMgaW5jbHVkZSA8bGludXgvc3BpbmxvY2su aD4KKysJI2Vsc2UKKysJCSMgaW5jbHVkZSA8YXNtL3NwaW5sb2NrLmg+CisrCSNlbmRpZgkv KiAyLDMsMzAgKi8KKysgICAgICAKKysgICAgICAgICNpZiBMSU5VWF9WRVJTSU9OX0NPREUg Pj1LRVJORUxfVkVSU0lPTigyLDYsMTkpCisrICAgICAgICAgICAgICAgICMgaW5jbHVkZSA8 bGludXgvYWVyLmg+CisrICAgICAgICAgICAgICAgICMgaW5jbHVkZSA8bGludXgvcGNpX3Jl Z3MuaD4KKysgICAgICAgICNlbmRpZiAgCisrCisrCSNpZiBMSU5VWF9WRVJTSU9OX0NPREUg Pj1LRVJORUxfVkVSU0lPTigyLDUsMCkKKysJCSNpbmNsdWRlIDxzY3NpL3Njc2kuaD4KKysJ CSNpbmNsdWRlIDxzY3NpL3Njc2lfaG9zdC5oPgorKwkJI2luY2x1ZGUgPHNjc2kvc2NzaV9j bW5kLmg+CisrCQkjaW5jbHVkZSA8c2NzaS9zY3NpX3RjcS5oPgorKwkJI2luY2x1ZGUgPHNj c2kvc2NzaV9kZXZpY2UuaD4KKysJCSNpbmNsdWRlIDxzY3NpL3Njc2ljYW0uaD4KKysJI2Vs c2UKKysJCSNpbmNsdWRlICIvdXNyL3NyYy9saW51eC9kcml2ZXJzL3Njc2kvc2NzaS5oIgor KwkJI2luY2x1ZGUgIi91c3Ivc3JjL2xpbnV4L2RyaXZlcnMvc2NzaS9ob3N0cy5oIgorKwkJ I2luY2x1ZGUgIi91c3Ivc3JjL2xpbnV4L2RyaXZlcnMvc2NzaS9jb25zdGFudHMuaCIKKysJ CSNpbmNsdWRlICIvdXNyL3NyYy9saW51eC9kcml2ZXJzL3Njc2kvc2QuaCIKKysJI2VuZGlm CisrCQorKwkjaW5jbHVkZSAiYXJjbXNyLmgiCisrI2VuZGlmCisrCisrTU9EVUxFX0FVVEhP UigiRXJpY2ggQ2hlbiA8ZXJpY2hAYXJlY2EuY29tLnR3PiIpOworK01PRFVMRV9ERVNDUklQ VElPTigiQVJFQ0EgKEFSQzExeHgvMTJ4eC8xM3h4LzE2eHgpIFNBVEEgUkFJRCBIT1NUIEFk YXB0ZXIiKTsKKysKKysjaWZkZWYgTU9EVUxFX0xJQ0VOU0UKKytNT0RVTEVfTElDRU5TRSgi RHVhbCBCU0QvR1BMIik7CisrI2VuZGlmCisrCisrLyoKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrc3RhdGlj IHVfaW50OF90CWFyY21zcl9hZGFwdGVyQ250PTA7Cisrc3RhdGljIHN0cnVjdCBIQ0JBUkMg YXJjbXNyX2hvc3RfY29udHJvbF9ibG9jazsKKytzdGF0aWMgaW50IGFyY21zcl9pbml0aWFs aXplKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrCSphY2Isc3RydWN0IHBjaV9kZXYgKnBk ZXYpOworK3N0YXRpYyB2b2lkIGFyY21zcl9mcmVlX2NjYl9wb29sKHN0cnVjdAlBZGFwdGVy Q29udHJvbEJsb2NrICphY2IpOworK3N0YXRpYyB2b2lkIGFyY21zcl9wY2lkZXZfZGlzYXR0 YWNoKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2IpOworK3N0YXRpYyB2b2lkIGFy Y21zcl9pb3BfaW5pdChzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiKTsKKytzdGF0 aWMgdm9pZCBhcmNtc3JfcG9sbGluZ19jY2Jkb25lKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJs b2NrICphY2IpOworK3N0YXRpYyB2b2lkIGFyY21zcl9zdG9wX2FkYXB0ZXJfYmdyYihzdHJ1 Y3QgQWRhcHRlckNvbnRyb2xCbG9jawkqYWNiKTsKKytzdGF0aWMgdm9pZCBhcmNtc3JfZmx1 c2hfYWRhcHRlcl9jYWNoZShzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiKTsKKytz dGF0aWMgdm9pZCBhcmNtc3JfZ2V0X2Zpcm13YXJlX3NwZWMoc3RydWN0IEFkYXB0ZXJDb250 cm9sQmxvY2sJKmFjYik7Cisrc3RhdGljIHVfaW50OF90CWFyY21zcl93YWl0X21zZ2ludF9y ZWFkeShzdHJ1Y3QJQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiKTsKKytzdGF0aWMgdm9pZCBh cmNtc3JfZG9uZTRfYWJvcnRfcG9zdHF1ZXVlKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2Nr ICphY2IpOworKworKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04o Miw1LDApCisrCSNkZWZpbmUJYXJjbXNyX2RldGVjdCBOVUxMCisrICAgIAlzdGF0aWMgaXJx cmV0dXJuX3QgYXJjbXNyX2ludGVycnVwdChzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAq YWNiKTsKKysgICAgCXN0YXRpYyBpbnQgYXJjbXNyX3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpw ZGV2LGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCk7CisrCXN0YXRpYyB2b2lkIGFy Y21zcl9yZW1vdmUoc3RydWN0IHBjaV9kZXYgKnBkZXYpOworKwkjaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxMykKKysJCXN0YXRpYyB2b2lkIGFyY21z cl9zaHV0ZG93bihzdHJ1Y3QgcGNpX2RldiAqcGRldik7CisrCSNlbmRpZgorKyNlbHNlCisr ICAgIAlzdGF0aWMgdm9pZCBhcmNtc3JfaW50ZXJydXB0KHN0cnVjdCBBZGFwdGVyQ29udHJv bEJsb2NrICphY2IpOworKyAgICAJaW50IGFyY21zcl9zY2hlZHVsZV9jb21tYW5kKHN0cnVj dCBzY3NpX2NtbmQgKnBjbWQpOworKyAgICAJaW50IGFyY21zcl9kZXRlY3QoU2NzaV9Ib3N0 X1RlbXBsYXRlICopOworKyNlbmRpZgorKworKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBL RVJORUxfVkVSU0lPTigyLDYsMTMpCisrICAgIAlzdGF0aWMgaW50IGFyY21zcl9oYWx0X25v dGlmeShzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLHVuc2lnbmVkIGxvbmcgZXZlbnQsdm9p ZCAqYnVmKTsKKysJc3RhdGljIHN0cnVjdCBub3RpZmllcl9ibG9jayBhcmNtc3JfZXZlbnRf bm90aWZpZXI9e2FyY21zcl9oYWx0X25vdGlmeSxOVUxMLDB9OworKyNlbmRpZgorKworKyNp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQorKwlzdGF0 aWMgcGNpX2Vyc19yZXN1bHRfdCBhcmNtc3JfcGNpX2Vycm9yX2RldGVjdGVkKHN0cnVjdCBw Y2lfZGV2ICpwZGV2LCBwY2lfY2hhbm5lbF9zdGF0ZV90IHN0YXRlKTsKKysgICAgICAgc3Rh dGljIHBjaV9lcnNfcmVzdWx0X3QgYXJjbXNyX3BjaV9zbG90X3Jlc2V0KHN0cnVjdCBwY2lf ZGV2ICpwZGV2KTsKKysjZW5kaWYKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkKKysJc3RhdGljCXN0cnVjdCBw Y2lfZXJyb3JfaGFuZGxlcnMgYXJjbXNyX3BjaV9lcnJvcl9oYW5kbGVycz0KKysJeyAKKysJ CS5lcnJvcl9kZXRlY3RlZAkgICAgICAgID0gYXJjbXNyX3BjaV9lcnJvcl9kZXRlY3RlZCwK KysgCQkuc2xvdF9yZXNldCAJCT0gYXJjbXNyX3BjaV9zbG90X3Jlc2V0LAorKwl9OworKyNl bmRpZgorKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKysqLworKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJO RUxfVkVSU0lPTigyLDMsMzApCisrICBzdHJ1Y3QgcHJvY19kaXJfZW50cnkJYXJjbXNyX3By b2Nfc2NzaT0KKysJeworKwkJUFJPQ19TQ1NJX0FSQ01TUiwKKysJCTgsCisrCQkiYXJjbXNy IiwKKysJCVNfSUZESVIJfCBTX0lSVUdPIHwgU19JWFVHTywKKysJCTIKKysJfTsKKysjZW5k aWYKKysKKysjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNSww KQorKwkvKiBXZSBkbyBvdXIgb3duIElEIGZpbHRlcmluZy4JU28sIGdyYWIgYWxsIFNDU0kg c3RvcmFnZSBjbGFzcwlkZXZpY2VzLiAqLworKwlzdGF0aWMgc3RydWN0IHBjaV9kZXZpY2Vf aWQgYXJjbXNyX2RldmljZV9pZF90YWJsZVtdID0gCisrCXsKKysJCXtQQ0lfREVWSUNFKFBD SV9WRU5ET1JfSURfQVJFQ0EsIFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTExMCl9LAorKwkJe1BD SV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9BUkVDQSwgUENJX0RFVklDRV9JRF9BUkVDQV8xMTIw KX0sCisrCQl7UENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0FSRUNBLCBQQ0lfREVWSUNFX0lE X0FSRUNBXzExMzApfSwKKysJCXtQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQVJFQ0EsIFBD SV9ERVZJQ0VfSURfQVJFQ0FfMTE2MCl9LAorKwkJe1BDSV9ERVZJQ0UoUENJX1ZFTkRPUl9J RF9BUkVDQSwgUENJX0RFVklDRV9JRF9BUkVDQV8xMTcwKX0sCisrCQl7UENJX0RFVklDRShQ Q0lfVkVORE9SX0lEX0FSRUNBLCBQQ0lfREVWSUNFX0lEX0FSRUNBXzEyMTApfSwKKysJCXtQ Q0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQVJFQ0EsIFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTIy MCl9LAorKwkJe1BDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9BUkVDQSwgUENJX0RFVklDRV9J RF9BUkVDQV8xMjMwKX0sCisrCQl7UENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0FSRUNBLCBQ Q0lfREVWSUNFX0lEX0FSRUNBXzEyNjApfSwKKysJCXtQQ0lfREVWSUNFKFBDSV9WRU5ET1Jf SURfQVJFQ0EsIFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTI3MCl9LAorKwkJe1BDSV9ERVZJQ0Uo UENJX1ZFTkRPUl9JRF9BUkVDQSwgUENJX0RFVklDRV9JRF9BUkVDQV8xMjgwKX0sCisrCQl7 UENJX0RFVklDRShQQ0lfVkVORE9SX0lEX0FSRUNBLCBQQ0lfREVWSUNFX0lEX0FSRUNBXzEz ODApfSwKKysJCXtQQ0lfREVWSUNFKFBDSV9WRU5ET1JfSURfQVJFQ0EsIFBDSV9ERVZJQ0Vf SURfQVJFQ0FfMTM4MSl9LAorKwkJe1BDSV9ERVZJQ0UoUENJX1ZFTkRPUl9JRF9BUkVDQSwg UENJX0RFVklDRV9JRF9BUkVDQV8xNjgwKX0sCisrCQl7UENJX0RFVklDRShQQ0lfVkVORE9S X0lEX0FSRUNBLCBQQ0lfREVWSUNFX0lEX0FSRUNBXzE2ODEpfSwKKysJCXswLCAwfSwJLyog VGVybWluYXRpbmcgZW50cnkgKi8KKysJfTsKKysJTU9EVUxFX0RFVklDRV9UQUJMRShwY2ks IGFyY21zcl9kZXZpY2VfaWRfdGFibGUpOworKwlzdHJ1Y3QgcGNpX2RyaXZlciBhcmNtc3Jf cGNpX2RyaXZlciA9IAorKwl7CisrCQkubmFtZQkJICAgICAgCQk9ICJhcmNtc3IiLAorKwkJ LmlkX3RhYmxlCSAgICAgIAkJPSBhcmNtc3JfZGV2aWNlX2lkX3RhYmxlLAorKwkJLnByb2Jl CQkgICAgICAJCT0gYXJjbXNyX3Byb2JlLAorKwkJLnJlbW92ZQkgICAgIAkgICAgICAJPSBh cmNtc3JfcmVtb3ZlLAorKyAgICAgICAgI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJO RUxfVkVSU0lPTigyLDYsMTMpCisrCSAgICAuc2h1dGRvd24JCQkJPSBhcmNtc3Jfc2h1dGRv d24sCisrCSAgICAjZW5kaWYgICAgICAgICAgICAgICAJCisrCQkjaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkKKysJCS5lcnJfaGFuZGxlciAgICAg IAkJPSAmYXJjbXNyX3BjaV9lcnJvcl9oYW5kbGVycywKKysgICAgICAgICNlbmRpZgorKwl9 OworKwkvKgorKwkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysJKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSovCisr ICAgIHN0YXRpYyBpcnFyZXR1cm5fdCBhcmNtc3JfZG9faW50ZXJydXB0KGludCBpcnEsdm9p ZCAqZGV2X2lkLCBzdHJ1Y3QgcHRfcmVncyAqcmVncykKKysJeworKwkJaXJxcmV0dXJuX3Qg aGFuZGxlX3N0YXRlOworKyAgICAgICAgc3RydWN0IEhDQkFSQyAqcEhDQkFSQz0gJmFyY21z cl9ob3N0X2NvbnRyb2xfYmxvY2s7CisrCSAgICBzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9j ayAqYWNiOworKwkgICAgc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sgKmFjYnRtcDsKKysJ CXVuc2lnbmVkIGxvbmcgZmxhZ3M7CisrCQlpbnQgaT0wOworKworKwkJI2lmIEFSQ01TUl9E RUJVRworKwkJcHJpbnRrKCJhcmNtc3JfZG9faW50ZXJydXB0Li4uLi4uLi4uLi4uLi4uLi4u IFxuIik7CisrCQkjZW5kaWYKKysKKysJCWFjYj0oc3RydWN0IEFkYXB0ZXJDb250cm9sQmxv Y2sJKilkZXZfaWQ7CisrCQlhY2J0bXA9cEhDQkFSQy0+YWNiW2ldOworKwkJd2hpbGUoKGFj YiAhPSBhY2J0bXApICYmIGFjYnRtcAkmJiAoaSA8QVJDTVNSX01BWF9BREFQVEVSKSApCisr CQl7CisrCQkJaSsrOworKwkJCWFjYnRtcD1wSENCQVJDLT5hY2JbaV07CisrCQl9CisrCQlp ZighYWNidG1wKQorKwkJeworKwkJICAgICNpZglBUkNNU1JfREVCVUcKKysJCQlwcmludGso ImFyY21zcl9kb19pbnRlcnJ1cHQ6IEludmFsaWQgYWNiPTB4JXAgXG4iLGFjYik7CisrCSAg ICAJICAgICNlbmRpZgorKwkJCXJldHVybiBJUlFfTk9ORTsKKysJCX0KKysJCXNwaW5fbG9j a19pcnFzYXZlKGFjYi0+aG9zdC0+aG9zdF9sb2NrLAlmbGFncyk7CisrCQloYW5kbGVfc3Rh dGU9YXJjbXNyX2ludGVycnVwdChhY2IpOworKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShh Y2ItPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOworKwkJcmV0dXJuKGhhbmRsZV9zdGF0ZSk7 CisrCX0KKysJLyoKKysJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKwkq LworKyAgICBpbnQJYXJjbXNyX2Jpb3NfcGFyYW0oc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2 LCBzdHJ1Y3QgYmxvY2tfZGV2aWNlCSpiZGV2LHNlY3Rvcl90IGNhcGFjaXR5LCBpbnQgKmdl b20pCisrCXsKKysJCWludCByZXQsaGVhZHMsc2VjdG9ycyxjeWxpbmRlcnM7CisrCQl1bnNp Z25lZCBjaGFyICpidWZmZXI7LyogcmV0dXJuCWNvcHkgb2YJYmxvY2sgZGV2aWNlJ3MgcGFy dGl0aW9uIHRhYmxlICovCisrCisrCQkjaWYgQVJDTVNSX0RFQlVHCisrCQlwcmludGsoImFy Y21zcl9iaW9zX3BhcmFtLi4uLi4uLi4uLi4uLi4uLi4uIFxuIik7CisrCQkjZW5kaWYKKysK KysJCWJ1ZmZlciA9IHNjc2lfYmlvc19wdGFibGUoYmRldik7CisrCQlpZihidWZmZXIpIAor KwkJeworKwkJCXJldCA9IHNjc2lfcGFydHNpemUoYnVmZmVyLCBjYXBhY2l0eSwgJmdlb21b Ml0sCSZnZW9tWzBdLCAmZ2VvbVsxXSk7CisrCQkJa2ZyZWUoYnVmZmVyKTsKKysJCQlpZiAo cmV0CSE9IC0xKQorKwkJCXsKKysJCQkJcmV0dXJuKHJldCk7CisrCQkJfQorKwkJfQorKwkJ aGVhZHM9NjQ7CisrCQlzZWN0b3JzPTMyOworKwkJY3lsaW5kZXJzPXNlY3Rvcl9kaXYoY2Fw YWNpdHksIGhlYWRzICogc2VjdG9ycyk7CisrCQlpZihjeWxpbmRlcnMgPj0JMTAyNCkKKysJ CXsKKysJCQloZWFkcz0yNTU7CisrCQkJc2VjdG9ycz02MzsKKysJCQljeWxpbmRlcnM9c2Vj dG9yX2RpdihjYXBhY2l0eSwgaGVhZHMgKiBzZWN0b3JzKTsKKysJCX0KKysJCWdlb21bMF09 aGVhZHM7CisrCQlnZW9tWzFdPXNlY3RvcnM7CisrCQlnZW9tWzJdPWN5bGluZGVyczsKKysJ CXJldHVybiAoMCk7CisrCX0KKysJLyoKKysJKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorKwkqLworKwlzdGF0aWMgaW50IGFyY21zcl9wcm9iZShzdHJ1Y3Qg cGNpX2RldiAqcGRldixjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqaWQpCisrCXsKKysJ CXN0cnVjdCBTY3NpX0hvc3QgKmhvc3Q7CisrCQlzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9j ayAqYWNiOworKwkJc3RydWN0IEhDQkFSQyAqcEhDQkFSQz0gJmFyY21zcl9ob3N0X2NvbnRy b2xfYmxvY2s7CisrCQl1aW50OF90IGJ1cyxkZXZfZnVuOworKwkJI2lmIEFSQ01TUl9ERUJV RworKwkJcHJpbnRrKCJhcmNtc3JfcHJvYmUuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u XG4iKTsKKysJCSNlbmRpZgorKwkJaWYocGNpX2VuYWJsZV9kZXZpY2UocGRldikpCisrCQl7 CisrCQkJcHJpbnRrKCJhcmNtc3IlZDogYWRhcHRlciBwcm9iZTogcGNpX2VuYWJsZV9kZXZp Y2UgZXJyb3IgXG4iLGFyY21zcl9hZGFwdGVyQ250KTsKKysJCQlyZXR1cm4gLUVOT0RFVjsK KysJCX0KKysJCWlmKChob3N0PXNjc2lfaG9zdF9hbGxvYygmYXJjbXNyX3Njc2lfaG9zdF90 ZW1wbGF0ZSxzaXplb2Yoc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2spKSk9PTApCisrCQl7 CisrCQkJcHJpbnRrKCJhcmNtc3IlZDogYWRhcHRlciBwcm9iZTogc2NzaV9ob3N0X2FsbG9j IGVycm9yIFxuIixhcmNtc3JfYWRhcHRlckNudCk7CisrCSAgICAJcmV0dXJuIC1FTk9ERVY7 CisrCQl9CisrCQlpZighcGNpX3NldF9kbWFfbWFzayhwZGV2LCBETUFfNjRCSVRfTUFTSykp IAorKwkJeworKwkJCXByaW50aygiQVJFQ0EgUkFJRCBBREFQVEVSJWQ6IDY0QklUUyBQQ0kg QlVTIERNQSBBRERSRVNTSU5HIFNVUFBPUlRFRFxuIixhcmNtc3JfYWRhcHRlckNudCk7Cisr CQl9IAorKwkJZWxzZSBpZighcGNpX3NldF9kbWFfbWFzayhwZGV2LAlETUFfMzJCSVRfTUFT SykpIAorKwkJeworKwkJCXByaW50aygiQVJFQ0EgUkFJRCBBREFQVEVSJWQ6IDMyQklUUyBQ Q0kgQlVTIERNQSBBRERSRVNTSU5HIFNVUFBPUlRFRFxuIixhcmNtc3JfYWRhcHRlckNudCk7 CisrCQl9IAorKwkJZWxzZSAKKysJCXsKKysJCQlwcmludGsoIkFSRUNBIFJBSUQgQURBUFRF UiVkOiBObyBzdWl0YWJsZSBETUEgYXZhaWxhYmxlLlxuIixhcmNtc3JfYWRhcHRlckNudCk7 CisrCQkJcmV0dXJuIC1FTk9NRU07CisrCQl9CisrCQlpZiAocGNpX3NldF9jb25zaXN0ZW50 X2RtYV9tYXNrKHBkZXYsIERNQV8zMkJJVF9NQVNLKSkgCisrCQl7CisrCQkJcHJpbnRrKCJB UkVDQSBSQUlEIEFEQVBURVIlZDogTm8gMzJCSVQgY29oZXJlbnQJRE1BIGFkcmVzc2luZyBh dmFpbGFibGUuXG4iLGFyY21zcl9hZGFwdGVyQ250KTsKKysJCQlyZXR1cm4gLUVOT01FTTsK KysJCX0KKysgICAgICAgICAgICAKKysJCWJ1cyA9IHBkZXYtPmJ1cy0+bnVtYmVyOworKwkg ICAgICAgIGRldl9mdW4gPSBwZGV2LT5kZXZmbjsKKysJCWFjYj0oc3RydWN0IEFkYXB0ZXJD b250cm9sQmxvY2sJKikgaG9zdC0+aG9zdGRhdGE7CisrCQltZW1zZXQoYWNiLDAsc2l6ZW9m KHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrKSk7CisrCQlhY2ItPnBkZXY9cGRldjsKKysJ CWFjYi0+aG9zdD1ob3N0OworKwkJaG9zdC0+bWF4X3NlY3RvcnM9QVJDTVNSX01BWF9YRkVS X1NFQ1RPUlM7CisrCQlob3N0LT5tYXhfbHVuPUFSQ01TUl9NQVhfVEFSR0VUTFVOOworKwkJ aG9zdC0+bWF4X2lkPUFSQ01TUl9NQVhfVEFSR0VUSUQ7LyoxNjo4Ki8KKysJCWhvc3QtPm1h eF9jbWRfbGVuPTE2OwkgLyp0aGlzCWlzIGlzc3VlIG9mIDY0Yml0IExCQSAsb3ZlciAyVCBi eXRlKi8KKysJCWhvc3QtPnNnX3RhYmxlc2l6ZT1BUkNNU1JfTUFYX1NHX0VOVFJJRVM7Cisr CQlob3N0LT5jYW5fcXVldWU9QVJDTVNSX01BWF9GUkVFQ0NCX05VTTsJLyogbWF4IHNpbXVs dGFuZW91cyBjbWRzICovCQkKKysJCWhvc3QtPmNtZF9wZXJfbHVuPUFSQ01TUl9NQVhfQ01E X1BFUkxVTjsJICAgIAorKwkJaG9zdC0+dGhpc19pZD1BUkNNU1JfU0NTSV9JTklUSUFUT1Jf SUQ7CQorKwkJaG9zdC0+dW5pcXVlX2lkPShidXMgPDwJOCkgfCBkZXZfZnVuOworKwkJaG9z dC0+aW9fcG9ydD0wOworKwkJaG9zdC0+bl9pb19wb3J0PTA7CisrCQlob3N0LT5pcnE9cGRl di0+aXJxOworKwkJcGNpX3NldF9tYXN0ZXIocGRldik7CisrCQlpZihhcmNtc3JfaW5pdGlh bGl6ZShhY2IscGRldikpCisrCQl7CisrCQkJcHJpbnRrKCJhcmNtc3IlZDogaW5pdGlhbGl6 ZSBnb3QgZXJyb3IgXG4iLGFyY21zcl9hZGFwdGVyQ250KTsKKysJCQlwSENCQVJDLT5hZGFw dGVyQ250PWFyY21zcl9hZGFwdGVyQ250OworKwkJCXBIQ0JBUkMtPmFjYlthcmNtc3JfYWRh cHRlckNudF09TlVMTDsKKysJICAgICAgICAgICAgICAgIHNjc2lfcmVtb3ZlX2hvc3QoaG9z dCk7CisrCQkJc2NzaV9ob3N0X3B1dChob3N0KTsKKysJCQlyZXR1cm4gLUVOT0RFVjsKKysJ CX0KKysJICAgICAgICBpZiAocGNpX3JlcXVlc3RfcmVnaW9ucyhwZGV2LCAiYXJjbXNyIikp CisrCQl7CisrCQkJcHJpbnRrKCJhcmNtc3IlZDogYWRhcHRlciBwcm9iZTogcGNpX3JlcXVl c3RfcmVnaW9ucyBmYWlsZWQgXG4iLGFyY21zcl9hZGFwdGVyQ250LS0pOworKwkJCXBIQ0JB UkMtPmFkYXB0ZXJDbnQ9YXJjbXNyX2FkYXB0ZXJDbnQ7CisrCQkJYXJjbXNyX3BjaWRldl9k aXNhdHRhY2goYWNiKTsKKysJCQlyZXR1cm4gLUVOT0RFVjsKKysJCX0KKysJCSNpZmRlZiBD T05GSUdfU0NTSV9BUkNNU1JfTVNJIAorKwkJaWYocGNpX2VuYWJsZV9tc2kocGRldikJPT0g MCkKKysJCXsKKysJCQlhY2ItPmFjYl9mbGFncyB8PSBBQ0JfRl9IQVZFX01TSTsKKysJCX0K KysJCSNlbmRpZgorKwkJaWYocmVxdWVzdF9pcnEocGRldi0+aXJxLGFyY21zcl9kb19pbnRl cnJ1cHQsU0FfSU5URVJSVVBUIHwgU0FfU0hJUlEsImFyY21zciIsYWNiKSkKKysJCXsKKysJ CQlwcmludGsoImFyY21zciVkOiByZXF1ZXN0IElSUT0lZCBmYWlsZWQJIVxuIixhcmNtc3Jf YWRhcHRlckNudC0tLHBkZXYtPmlycSk7CisrCQkJcEhDQkFSQy0+YWRhcHRlckNudD1hcmNt c3JfYWRhcHRlckNudDsKKysJCQlhcmNtc3JfcGNpZGV2X2Rpc2F0dGFjaChhY2IpOworKwkJ CXJldHVybiAtRU5PREVWOworKwkJfQorKwkJYXJjbXNyX2lvcF9pbml0KGFjYik7CisrICAg ICAgICAgICAgCWlmKHN0cm5jbXAoYWNiLT5maXJtX3ZlcnNpb24sIlYxLjQyIiw1KSA+PSAw KQorKyAgICAgICAgICAgIAlob3N0LT5tYXhfc2VjdG9ycz1BUkNNU1JfTUFYX1hGRVJfU0VD VE9SU19COworKwkJaWYoc2NzaV9hZGRfaG9zdChob3N0LCAmcGRldi0+ZGV2KSkKKysJCXsK KysJCQlwcmludGsoImFyY21zciVkOiBzY3NpX2FkZF9ob3N0IGdvdCBlcnJvciBcbiIsYXJj bXNyX2FkYXB0ZXJDbnQtLSk7CisrCQkJcEhDQkFSQy0+YWRhcHRlckNudD1hcmNtc3JfYWRh cHRlckNudDsKKysJCQlhcmNtc3JfcGNpZGV2X2Rpc2F0dGFjaChhY2IpOworKwkJCXJldHVy biAtRU5PREVWOworKwkJfQorKwkgICAgCXBIQ0JBUkMtPmFkYXB0ZXJDbnQ9YXJjbXNyX2Fk YXB0ZXJDbnQ7CisrCSAgIAlwY2lfc2V0X2RydmRhdGEocGRldiwgaG9zdCk7CisrCSAgICAJ c2NzaV9zY2FuX2hvc3QoaG9zdCk7CisrCQkKKysJCSNpZiBMSU5VWF9WRVJTSU9OX0NPREUg Pj0gS0VSTkVMX1ZFUlNJT04oMiw2LDE5KQorKwkJCXJlc3VsdHM9cGNpX2VuYWJsZV9wY2ll X2Vycm9yX3JlcG9ydGluZyhwZGV2KTsKKysJICAgIAkjZW5kaWYKKysJCXJldHVybiAwOwor Kwl9CisrCS8qCisrCSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKwkqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KysJKi8KKysJc3RhdGljIHZvaWQgYXJjbXNyX3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRl dikKKysJeworKwkgICAgCXN0cnVjdCBTY3NpX0hvc3QgKmhvc3Q9cGNpX2dldF9kcnZkYXRh KHBkZXYpOworKwkJc3RydWN0IEhDQkFSQyAqcEhDQkFSQz0JJmFyY21zcl9ob3N0X2NvbnRy b2xfYmxvY2s7CisrCSAgICAJc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sgKmFjYj0oc3Ry dWN0IEFkYXB0ZXJDb250cm9sQmxvY2sJKikgaG9zdC0+aG9zdGRhdGE7CisrCQlpbnQgaTsK KysKKysJCSNpZiBBUkNNU1JfREVCVUcKKysJCXByaW50aygiYXJjbXNyX3JlbW92ZS4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi5cbiIpOworKwkJI2VuZGlmCisrCQlhcmNtc3JfcGNp ZGV2X2Rpc2F0dGFjaChhY2IpOworKwkJLyppZiB0aGlzIGlzIGxhc3QgYWNiICovCisrCQlm b3IoaT0wO2k8QVJDTVNSX01BWF9BREFQVEVSO2krKykKKysJCXsKKysJCQlpZihwSENCQVJD LT5hY2JbaV0pCisrCQkJeyAKKysJCQkJcmV0dXJuOy8qIHRoaXMgaXMgbm90IGxhc3QgYWRh cHRlcidzIHJlbGVhc2UgKi8KKysJCQl9CisrCQl9CisrCQl1bnJlZ2lzdGVyX2NocmRldihw SENCQVJDLT5hcmNtc3JfbWFqb3JfbnVtYmVyLAkiYXJjbXNyIik7CisrCSNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDYsMTMpCisrCQl1bnJlZ2lzdGVyX3Jl Ym9vdF9ub3RpZmllcigmYXJjbXNyX2V2ZW50X25vdGlmaWVyKTsKKysJI2VuZGlmCisrCQly ZXR1cm47CisrCX0KKysJLyoKKysJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKwkqLworKwlzdGF0aWMgaW50IGFyY21zcl9zY3NpX2hvc3RfdGVtcGxhdGVf aW5pdChzdHJ1Y3Qgc2NzaV9ob3N0X3RlbXBsYXRlICogaG9zdF90ZW1wbGF0ZSkKKysJewor KwkJaW50CWVycm9yOworKwkJc3RydWN0IEhDQkFSQyAqcEhDQkFSQz0JJmFyY21zcl9ob3N0 X2NvbnRyb2xfYmxvY2s7CisrCisrCQkjaWYgQVJDTVNSX0RFQlVHCisrCQlwcmludGsoImFy Y21zcl9zY3NpX2hvc3RfdGVtcGxhdGVfaW5pdC4uLi4uLi4uLi4uLi4uXG4iKTsKKysJCSNl bmRpZgorKwkJLyogCisrCQkqKiByZWdpc3RlciBhcyBhIFBDSSBob3QtcGx1ZyBkcml2ZXIg bW9kdWxlIAorKwkJKi8KKysJCW1lbXNldChwSENCQVJDLDAsc2l6ZW9mKHN0cnVjdCBIQ0JB UkMpKTsKKysJCWVycm9yPXBjaV9tb2R1bGVfaW5pdCgmYXJjbXNyX3BjaV9kcml2ZXIpOwor KwkJaWYocEhDQkFSQy0+YWNiWzBdKQorKwkJeworKwkJCWhvc3RfdGVtcGxhdGUtPnByb2Nf bmFtZT0iYXJjbXNyIjsKKysJCSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVS U0lPTigyLDYsMTMpCisrCQkJcmVnaXN0ZXJfcmVib290X25vdGlmaWVyKCZhcmNtc3JfZXZl bnRfbm90aWZpZXIpOworKwkJI2VuZGlmCisrCQl9CisrCQlyZXR1cm4oZXJyb3IpOworKwl9 CisrCS8qCisrCSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKwkqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysJ Ki8KKysJI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTMp CisrCQlzdGF0aWMgdm9pZCBhcmNtc3Jfc2h1dGRvd24oc3RydWN0IHBjaV9kZXYgKnBkZXYp CisrCQl7CisrCQkJc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9IHBjaV9nZXRfZHJ2ZGF0YShw ZGV2KTsKKysJCQlzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiCT0KKysJCQkJKHN0 cnVjdAlBZGFwdGVyQ29udHJvbEJsb2NrICopaG9zdC0+aG9zdGRhdGE7CisrCQkJCisrCQkJ YXJjbXNyX3N0b3BfYWRhcHRlcl9iZ3JiKGFjYik7CisrCQkJYXJjbXNyX2ZsdXNoX2FkYXB0 ZXJfY2FjaGUoYWNiKTsKKysJCX0KKysgICAgCSNlbmRpZgorKwkvKgorKwkqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKysJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSovCisrCXN0YXRpYyBpbnQgYXJj bXNyX21vZHVsZV9pbml0KHZvaWQpCisrCXsKKysJCXJldHVybiAoYXJjbXNyX3Njc2lfaG9z dF90ZW1wbGF0ZV9pbml0KCZhcmNtc3Jfc2NzaV9ob3N0X3RlbXBsYXRlKSk7CisrCX0KKysJ LyoKKysJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisrCSoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKwkqLwor KwlzdGF0aWMgdm9pZCBhcmNtc3JfbW9kdWxlX2V4aXQodm9pZCkKKysJeworKwkJcGNpX3Vu cmVnaXN0ZXJfZHJpdmVyKCZhcmNtc3JfcGNpX2RyaXZlcik7CisrCQlyZXR1cm47CisrCX0K KysgICAgbW9kdWxlX2luaXQoYXJjbXNyX21vZHVsZV9pbml0KTsKKysgICAgbW9kdWxlX2V4 aXQoYXJjbXNyX21vZHVsZV9leGl0KTsKKysjZWxzZQorKwkvKgorKwkqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrCSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysJKi8KKysJc3RhdGljIHZvaWQgYXJj bXNyX2ludGVybmFsX2RvbmUoc3RydWN0CXNjc2lfY21uZCAqcGNtZCkKKysJeworKwkJcGNt ZC0+U0NwLlN0YXR1cysrOworKwkJcmV0dXJuOworKwl9CisrCS8qCisrCSoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KwkqCQkgICAgIGFyY21zcl9zY2hlZHVsZV9jb21tYW5kCisrCSoJRGVzY3JpcHRpb246CVBy b2Nlc3MJYSBjb21tYW5kIGZyb20gdGhlIFNDU0kJbWFuYWdlcihBLlApCisrCSoJUGFyYW1l dGVyczoJCWNtZCAtIFBvaW50ZXIgdG8gU0NTSSBjb21tYW5kIHN0cnVjdHVyZS4KKysJKglS ZXR1cm5zOgkJU3RhdHVzIGNvZGUuCisrCSoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKwkqLworKwlpbnQgYXJjbXNy X3NjaGVkdWxlX2NvbW1hbmQoc3RydWN0IHNjc2lfY21uZCAqcGNtZCkKKysJeworKwkJdW5z aWduZWQgbG9uZyB0aW1lb3V0OworKwkJI2lmIEFSQ01TUl9ERUJVRworKwkJcHJpbnRrKCIg YXJjbXNyX3NjaGVkdWxlX2NvbW1hbmQuLi4uLi4uLi4uLi4uLi4uIFxuIik7CisrCQkjZW5k aWYKKysJCXBjbWQtPlNDcC5TdGF0dXM9MDsKKysJCWFyY21zcl9xdWV1ZV9jb21tYW5kKHBj bWQsYXJjbXNyX2ludGVybmFsX2RvbmUpOworKwkJdGltZW91dD1qaWZmaWVzCSsgNjAgKiBI WjsgCisrCQl3aGlsZSh0aW1lX2JlZm9yZShqaWZmaWVzLHRpbWVvdXQpICYmICFwY21kLT5T Q3AuU3RhdHVzKSAKKysJCXsKKysJCQlzY2hlZHVsZSgpOworKwkJfQorKwkJaWYoIXBjbWQt PlNDcC5TdGF0dXMpIAorKwkJeworKwkJCXBjbWQtPnJlc3VsdD0oRElEX0VSUk9SPDwxNik7 CisrCQl9CisrCQlyZXR1cm4gcGNtZC0+cmVzdWx0OworKwl9CisrCS8qCisrCSoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKwkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysJKi8KKysgICAgdm9pZCBhcmNtc3JfZG9f aW50ZXJydXB0KGludCBpcnEsdm9pZCAqZGV2X2lkKQorKwl7CisrCQlzdHJ1Y3QgSENCQVJD ICpwSENCQVJDPQkmYXJjbXNyX2hvc3RfY29udHJvbF9ibG9jazsKKysJCXN0cnVjdCBBZGFw dGVyQ29udHJvbEJsb2NrICphY2I7CisrCQlzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAq YWNidG1wOworKwkJaW50IGk9MDsKKysKKysJCSNpZiBBUkNNU1JfREVCVUcKKysJCXByaW50 aygiYXJjbXNyX2RvX2ludGVycnVwdC4uLi4uLi4uLi4uLi4uLi4uLiBcbiIpOworKwkJI2Vu ZGlmCisrCQlhY2I9KHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrCSopZGV2X2lkOworKwkJ YWNidG1wPXBIQ0JBUkMtPmFjYltpXTsKKysJCXdoaWxlKChhY2IgIT0gYWNidG1wKSAmJiBh Y2J0bXAJJiYgKGkgPEFSQ01TUl9NQVhfQURBUFRFUikgKQorKwkJeworKwkJCWkrKzsKKysJ CQlhY2J0bXA9cEhDQkFSQy0+YWNiW2ldOworKwkJfQorKwkJaWYoIWFjYnRtcCkKKysJCXsK KysJCSAgICAjaWYJQVJDTVNSX0RFQlVHCisrCQkJcHJpbnRrKCJhcmNtc3JfZG9faW50ZXJy dXB0OiBJbnZhbGlkIGFjYj0weCVwIFxuIixhY2IpOworKwkgICAgI2VuZGlmCisrCQkJcmV0 dXJuOworKwkJfQorKwkJc3Bpbl9sb2NrX2lycSgmYWNiLT5pc3JfbG9jayk7CisrCWFyY21z cl9pbnRlcnJ1cHQoYWNiKTsKKysJCXNwaW5fdW5sb2NrX2lycSgmYWNiLT5pc3JfbG9jayk7 CisrCQlyZXR1cm47CisrCX0KKysJLyoKKysJKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKwkqLworKyAgICBpbnQJYXJjbXNyX2Jpb3NfcGFyYW0oRGlzayAqZGlzayxr ZGV2X3QgZGV2LGludCBnZW9tW10pCisrCXsKKysJCWludCBoZWFkcyxzZWN0b3JzLGN5bGlu ZGVycyx0b3RhbF9jYXBhY2l0eTsKKysKKysJCSNpZiBBUkNNU1JfREVCVUcKKysJCXByaW50 aygiYXJjbXNyX2Jpb3NfcGFyYW0uLi4uLi4uLi4uLi4uLi4uLi4gXG4iKTsKKysJCSNlbmRp ZgorKwkJdG90YWxfY2FwYWNpdHk9ZGlzay0+Y2FwYWNpdHk7CisrCQloZWFkcz02NDsKKysJ CXNlY3RvcnM9MzI7CisrCQljeWxpbmRlcnM9dG90YWxfY2FwYWNpdHkgLyAoaGVhZHMgKiBz ZWN0b3JzKTsKKysJCWlmKGN5bGluZGVycyA+PQkxMDI0KQorKwkJeworKwkJCWhlYWRzPTI1 NTsKKysJCQlzZWN0b3JzPTYzOworKwkJCWN5bGluZGVycz10b3RhbF9jYXBhY2l0eSAvICho ZWFkcyAqIHNlY3RvcnMpOworKwkJfQorKwkJZ2VvbVswXT1oZWFkczsKKysJCWdlb21bMV09 c2VjdG9yczsKKysJCWdlb21bMl09Y3lsaW5kZXJzOworKwkJcmV0dXJuICgwKTsKKysJfQor KwkvKgorKwkqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysJKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSov CisrCWludCBhcmNtc3JfZGV0ZWN0KFNjc2lfSG9zdF9UZW1wbGF0ZSAqIGhvc3RfdGVtcGxh dGUpCisrCXsKKysJCXN0cnVjdAorKwkJeworKwkJCXVuc2lnbmVkIGludCAgIHZlbmRvcl9p ZDsKKysJCQl1bnNpZ25lZCBpbnQgICBkZXZpY2VfaWQ7CisrCQl9IGNvbnN0CWFyY21zcl9k ZXZpY2VzW109eworKwkJCXsgUENJX1ZFTkRPUl9JRF9BUkVDQSxQQ0lfREVWSUNFX0lEX0FS RUNBXzExMTAgfQorKwkJCSx7IFBDSV9WRU5ET1JfSURfQVJFQ0EsUENJX0RFVklDRV9JRF9B UkVDQV8xMTIwCX0KKysJCQkseyBQQ0lfVkVORE9SX0lEX0FSRUNBLFBDSV9ERVZJQ0VfSURf QVJFQ0FfMTEzMAl9CisrCQkJLHsgUENJX1ZFTkRPUl9JRF9BUkVDQSxQQ0lfREVWSUNFX0lE X0FSRUNBXzExNjAJfQorKwkJCSx7IFBDSV9WRU5ET1JfSURfQVJFQ0EsUENJX0RFVklDRV9J RF9BUkVDQV8xMTcwCX0KKysJCQkseyBQQ0lfVkVORE9SX0lEX0FSRUNBLFBDSV9ERVZJQ0Vf SURfQVJFQ0FfMTIxMAl9CisrCQkJLHsgUENJX1ZFTkRPUl9JRF9BUkVDQSxQQ0lfREVWSUNF X0lEX0FSRUNBXzEyMjAJfQorKwkJCSx7IFBDSV9WRU5ET1JfSURfQVJFQ0EsUENJX0RFVklD RV9JRF9BUkVDQV8xMjMwCX0KKysJCQkseyBQQ0lfVkVORE9SX0lEX0FSRUNBLFBDSV9ERVZJ Q0VfSURfQVJFQ0FfMTI2MAl9CisrCQkJLHsgUENJX1ZFTkRPUl9JRF9BUkVDQSxQQ0lfREVW SUNFX0lEX0FSRUNBXzEyNzAJfQorKwkJCSx7IFBDSV9WRU5ET1JfSURfQVJFQ0EsUENJX0RF VklDRV9JRF9BUkVDQV8xMjgwCX0KKysJCX07CisrCQlzdHJ1Y3QgcGNpX2RldiAqcGRldj1O VUxMOworKwkJc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sgKmFjYjsKKysJCXN0cnVjdCBI Q0JBUkMgKnBIQ0JBUkM9CSZhcmNtc3JfaG9zdF9jb250cm9sX2Jsb2NrOworKwkJc3RydWN0 IFNjc2lfSG9zdCAqaG9zdDsKKysJCXN0YXRpYyB1X2ludDhfdAlpOworKwkJI2lmIEFSQ01T Ul9ERUJVRworKwkJcHJpbnRrKCJhcmNtc3JfZGV0ZWN0Li4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLlxuIik7CisrCQkjZW5kaWYKKysJCW1lbXNldChwSENCQVJDLDAsc2l6ZW9mKHN0 cnVjdCBIQ0JBUkMpKTsKKysJCWZvcihpPTA7IGkgPCAoc2l6ZW9mKGFyY21zcl9kZXZpY2Vz KS9zaXplb2YoYXJjbXNyX2RldmljZXNbMF0pKQk7ICsraSkJIAorKwkJeworKwkJCXBkZXY9 TlVMTDsKKysJCQl3aGlsZSgocGRldj1wY2lfZmluZF9kZXZpY2UoYXJjbXNyX2RldmljZXNb aV0udmVuZG9yX2lkLGFyY21zcl9kZXZpY2VzW2ldLmRldmljZV9pZCxwZGV2KSkpCisrCQkJ eworKwkJCQlpZigoaG9zdD1zY3NpX3JlZ2lzdGVyKGhvc3RfdGVtcGxhdGUsc2l6ZW9mKHN0 cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrKSkpPT0wKQorKwkJCQl7CisrCQkJCQlwcmludGso ImFyY21zcl9kZXRlY3Q6IHNjc2lfcmVnaXN0ZXIgZXJyb3IgLiAuIC4gLiAuIC4gLiAuIC4g LiAuXG4iKTsKKysJCQkJCWNvbnRpbnVlOworKwkJCQl9CisrCQkJI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDMsMzApCisrCQkJCXsKKysJCQkJCWlmKHBj aV9lbmFibGVfZGV2aWNlKHBkZXYpKQorKwkJCQkJeworKwkJCQkJCXByaW50aygiYXJjbXNy X2RldGVjdDogcGNpX2VuYWJsZV9kZXZpY2UgRVJST1IuLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uXG4iKTsKKysJCQkJCQlzY3NpX3VucmVnaXN0ZXIoaG9zdCk7CisrCQkJ CQljb250aW51ZTsKKysJCQkJCX0KKysJCQkJCWlmKCFwY2lfc2V0X2RtYV9tYXNrKHBkZXYs KGRtYV9hZGRyX3QpMHhmZmZmZmZmZmZmZmZmZmZmVUxMKSkvKjY0Yml0Ki8KKysJCQkJCXsK KysJCQkJCQlwcmludGsoIkFSRUNBIFJBSUQ6IDY0QklUUyBQQ0kgQlVTIERNQSBBRERSRVNT SU5HIFNVUFBPUlRFRFxuIik7CisrCQkJCQl9CisrCQkJCQllbHNlIGlmKHBjaV9zZXRfZG1h X21hc2socGRldiwoZG1hX2FkZHJfdCkweDAwMDAwMDAwZmZmZmZmZmZVTEwpKS8qMzJiaXQq LworKwkJCQkJeworKwkJCQkJCXByaW50aygiQVJFQ0EgUkFJRDogMzJCSVRTIFBDSSBCVVMg RE1BIEFERFJFU1NJTkcgTk9UIFNVUFBPUlRFRAkoRVJST1IpXG4iKTsKKysJCQkJCQlzY3Np X3VucmVnaXN0ZXIoaG9zdCk7CisrCQkJCQljb250aW51ZTsKKysJCQkJCX0KKysJCQkJfQor KwkJCSNlbmRpZgorKwkJCQlhY2I9KHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrCSopIGhv c3QtPmhvc3RkYXRhOworKwkJCQltZW1zZXQoYWNiLDAsc2l6ZW9mKHN0cnVjdCBBZGFwdGVy Q29udHJvbEJsb2NrKSk7CisrCQkJCXNwaW5fbG9ja19pbml0KCZhY2ItPmlzcl9sb2NrKTsK KysJCQkJYWNiLT5wZGV2PXBkZXY7CisrCQkJCWFjYi0+aG9zdD1ob3N0OworKwkJCSNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw0LDcpCisrCQkJCWlmKHN0 cm5jbXAoYWNiLT5maXJtX3ZlcnNpb24sIlYxLjQyIiw1KSA+PSAwKQorKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaG9zdC0+bWF4X3NlY3RvcnM9QVJDTVNSX01BWF9YRkVS X1NFQ1RPUlNfQjsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QtPm1h eF9zZWN0b3JzPUFSQ01TUl9NQVhfWEZFUl9TRUNUT1JTOworKwkJCSNlbmRpZgorKwkJCQlo b3N0LT5tYXhfbHVuPUFSQ01TUl9NQVhfVEFSR0VUTFVOOworKwkJCQlob3N0LT5tYXhfaWQ9 QVJDTVNSX01BWF9UQVJHRVRJRDsvKjE2OjgqLworKwkJCSNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMiwzLDMwKQorKwkJaG9zdC0+bWF4X2NtZF9sZW49MTY7 CQkgLyp0aGlzCWlzIGlzc3VlIG9mIDY0Yml0IExCQSAsb3ZlciAyVCBieXRlKi8KKysJICAg ICNlbmRpZgorKwkJCQlob3N0LT5zZ190YWJsZXNpemU9QVJDTVNSX01BWF9TR19FTlRSSUVT OworKwkJCQlob3N0LT5jYW5fcXVldWU9QVJDTVNSX01BWF9GUkVFQ0NCX05VTTsJLyogbWF4 IHNpbXVsdGFuZW91cyBjbWRzICovCQkKKysJCQkJaG9zdC0+Y21kX3Blcl9sdW49QVJDTVNS X01BWF9DTURfUEVSTFVOOwkgICAgCisrCQkJCWhvc3QtPnRoaXNfaWQ9QVJDTVNSX1NDU0lf SU5JVElBVE9SX0lEOwkKKysJCQkJaG9zdC0+aW9fcG9ydD0wOworKwkJCQlob3N0LT5uX2lv X3BvcnQ9MDsKKysJCQkJaG9zdC0+aXJxPXBkZXYtPmlycTsKKysJCQkjaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNCw0KQorKwkJCQlzY3NpX3NldF9wY2lf ZGV2aWNlKGhvc3QscGRldik7CisrCQkJI2VuZGlmCisrCQkJCWlmKCFhcmNtc3JfaW5pdGlh bGl6ZShhY2IscGRldikpCisrCQkJCXsKKysJCQkJI2lmIExJTlVYX1ZFUlNJT05fQ09ERSA+ PSBLRVJORUxfVkVSU0lPTigyLDMsMzApCisrCQkJCQlwY2lfc2V0X2RydmRhdGEocGRldixh Y2IpOyAvKnNldCBkcml2ZXJfZGF0YSovCisrCQkJCSNlbmRpZgorKwkJCQkJcGNpX3NldF9t YXN0ZXIocGRldik7CisrCQkJCQlpZihyZXF1ZXN0X2lycShwZGV2LT5pcnEsYXJjbXNyX2Rv X2ludGVycnVwdCxTQV9JTlRFUlJVUFQgfCBTQV9TSElSUSwiYXJjbXNyIixhY2IpKQorKwkJ CQkJeworKwkJCXByaW50aygiYXJjbXNyX2RldGVjdDoJcmVxdWVzdF9pcnEgZ290CUVSUk9S Li4uLi4uLi4uLi4uLi4uLi4uLlxuIik7CisrCQkJCQkJYXJjbXNyX2FkYXB0ZXJDbnQtLTsK KysJCQkJCQlwSENCQVJDLT5hY2JbYWNiLT5hZGFwdGVyX2luZGV4XT1OVUxMOworKwkJCQkJ CWlvdW5tYXAoYWNiLT5wbXUpOworKwkJCQkJYXJjbXNyX2ZyZWVfY2NiX3Bvb2woYWNiKTsK KysJCQkJCSAgICBzY3NpX3VucmVnaXN0ZXIoaG9zdCk7CisrCQkJCQkJZ290byBuZXh0X2Fy ZWNhOworKwkJCQkJfQorKwkJCQkjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDIsMywzMCkKKysJCQkJCWlmIChwY2lfcmVxdWVzdF9yZWdpb25zKHBkZXYsICJh cmNtc3IiKSkKKysJCQkJCXsKKysJCQlwcmludGsoImFyY21zcl9kZXRlY3Q6CXBjaV9yZXF1 ZXN0X3JlZ2lvbnMgZ290CUVSUk9SLi4uLi4uLi4uLi4uLi4uLi4uLlxuIik7CisrCQkJCQkJ YXJjbXNyX2FkYXB0ZXJDbnQtLTsKKysJCQkJCQlwSENCQVJDLT5hY2JbYWNiLT5hZGFwdGVy X2luZGV4XT1OVUxMOworKwkJCQkJCWlvdW5tYXAoYWNiLT5wbXUpOworKwkJCQkJYXJjbXNy X2ZyZWVfY2NiX3Bvb2woYWNiKTsKKysJCQkJCSAgICBzY3NpX3VucmVnaXN0ZXIoaG9zdCk7 CisrCQkJCQkJZ290byBuZXh0X2FyZWNhOworKwkJCQkJfQorKwkJICAgICAgICAgICAgI2Vu ZGlmCisrCQkJCQlhcmNtc3JfaW9wX2luaXQoYWNiKTsvKglvbiBrZXJuZWwgMi40LjIxIGRy aXZlcidzIGlvcCByZWFkL3dyaXRlIG11c3QgYWZ0ZXIgcmVxdWVzdF9pcnEJKi8KKysJCQkJ fQorKwkJCQllbHNlCisrCQkJCXsKKysJCQkJCXByaW50aygiYXJjbXNyOglhcmNtc3JfaW5p dGlhbGl6ZSBnb3QgRVJST1IuLi4uLi4uLi4uLi4uLi4uLi4uXG4iKTsKKysJCQkJCXNjc2lf dW5yZWdpc3Rlcihob3N0KTsKKysJCQkJfQorKwluZXh0X2FyZWNhOiA7CisrCQkJfQorKwkJ fQorKwkJaWYoYXJjbXNyX2FkYXB0ZXJDbnQpCisrCQl7CisrCQkJI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PUtFUk5FTF9WRVJTSU9OKDIsMywzMCkKKysJCQlob3N0X3RlbXBsYXRlLT5w cm9jX25hbWU9ImFyY21zciI7CisrCQkJI2Vsc2UJCSAgCisrCQkJaG9zdF90ZW1wbGF0ZS0+ cHJvY19kaXI9ICZhcmNtc3JfcHJvY19zY3NpOworKwkJCSNlbmRpZgorKwkJCXJlZ2lzdGVy X3JlYm9vdF9ub3RpZmllcigmYXJjbXNyX2V2ZW50X25vdGlmaWVyKTsKKysJCX0KKysJCWVs c2UKKysJCXsKKysJCQlwcmludGsoImFyY21zcl9kZXRlY3Q6Li4uLi4uLi4uLi4uLi4uTk8J QVJFQ0EgUkFJRCBBREFQVEVSIEZPVU5ELi4uLi4uLi4uLi5cbiIpOworKwkJCXJldHVybihh cmNtc3JfYWRhcHRlckNudCk7CisrCQl9CisrCQlwSENCQVJDLT5hZGFwdGVyQ250PWFyY21z cl9hZGFwdGVyQ250OworKwkJcmV0dXJuKGFyY21zcl9hZGFwdGVyQ250KTsKKysJfQorKwor KyNlbmRpZiAKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisr Ki8KKysjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsMywzMCkK KysJdm9pZCBhcmNtc3JfcGNpX3VubWFwX2RtYShzdHJ1Y3QgQ29tbWFuZENvbnRyb2xCbG9j ayAqY2NiKQorKwl7CisrCQlzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiPWNjYi0+ YWNiOworKwkJc3RydWN0IHNjc2lfY21uZCAqcGNtZD1jY2ItPnBjbWQ7CisrCisrCQlpZihw Y21kLT51c2Vfc2cJIT0gMCkgCisrCQl7CisrCQkJc3RydWN0IHNjYXR0ZXJsaXN0ICpzbDsK KysKKysJCQlzbCA9IChzdHJ1Y3Qgc2NhdHRlcmxpc3QgKilwY21kLT5yZXF1ZXN0X2J1ZmZl cjsKKysJCQlwY2lfdW5tYXBfc2coYWNiLT5wZGV2LAlzbCwgcGNtZC0+dXNlX3NnLCBwY21k LT5zY19kYXRhX2RpcmVjdGlvbik7CisrCQl9IAorKwkJZWxzZSBpZihwY21kLT5yZXF1ZXN0 X2J1ZmZsZW4gIT0gMCkKKysJCXsKKysJCQlwY2lfdW5tYXBfc2luZ2xlKGFjYi0+cGRldiwo ZG1hX2FkZHJfdCkodW5zaWduZWQgbG9uZylwY21kLT5TQ3AucHRyLHBjbWQtPnJlcXVlc3Rf YnVmZmxlbiwgcGNtZC0+c2NfZGF0YV9kaXJlY3Rpb24pOworKwkJfQorKwkJcmV0dXJuOwor Kwl9CisrI2VuZGlmCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrc3RhdGljIHUzMiBhcmNtc3JfZGlz YWJsZV9hbGxpbnRyKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2IpCisreworKwlz dHJ1Y3QgTWVzc2FnZVVuaXQgX19pb21lbSAqcmVnCT0gYWNiLT5wbXU7CisrCXUzMiBvcmln X21hc2sgPQlyZWFkbCgmcmVnLT5vdXRib3VuZF9pbnRtYXNrKTsKKysJCisrCXdyaXRlbChv cmlnX21hc2sgfCBBUkNNU1JfTVVfT1VUQk9VTkRfQUxMX0lOVE1BU0tFTkFCTEUsCisrCQkJ JnJlZy0+b3V0Ym91bmRfaW50bWFzayk7CisrCXJldHVybiBvcmlnX21hc2s7CisrfQorKy8q CisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKysqLworK3N0YXRpYyB2b2lkIGFyY21zcl9lbmFibGVfYWxsaW50cihzdHJ1 Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiLAorKwkJdTMyIG9yaWdfbWFzaykKKyt7Cisr CXN0cnVjdCBNZXNzYWdlVW5pdCBfX2lvbWVtICpyZWcJPSBhY2ItPnBtdTsKKysJdTMyIG1h c2s7CisrCQorKwltYXNrID0gb3JpZ19tYXNrICYgfihBUkNNU1JfTVVfT1VUQk9VTkRfUE9T VFFVRVVFX0lOVE1BU0tFTkFCTEUJfAorKwkJCSAgICAgQVJDTVNSX01VX09VVEJPVU5EX0RP T1JCRUxMX0lOVE1BU0tFTkFCTEUpOworKwl3cml0ZWwobWFzaywgJnJlZy0+b3V0Ym91bmRf aW50bWFzayk7CisrCWFjYi0+b3V0Ym91bmRfaW50X2VuYWJsZSA9IH4ob3JpZ19tYXNrICYg bWFzaykgJiAweDAwMDAwMGZmOworK30KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKytzdGF0aWMgdm9p ZCBhcmNtc3JfZmx1c2hfYWRhcHRlcl9jYWNoZShzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9j ayAqYWNiKQorK3sKKysgICAgc3RydWN0IE1lc3NhZ2VVbml0IF9faW9tZW0gKnJlZz1hY2It PnBtdTsKKysKKysgICAgI2lmCUFSQ01TUl9ERUJVRworKyAgICBwcmludGsoImFyY21zcl9m bHVzaF9hZGFwdGVyX2NhY2hlLi4uLi4uLi4uLi4uLi5cbiIpOworKyAgICAjZW5kaWYKKysJ d3JpdGVsKEFSQ01TUl9JTkJPVU5EX01FU0cwX0ZMVVNIX0NBQ0hFLCZyZWctPmluYm91bmRf bXNnYWRkcjApOworKwlpZihhcmNtc3Jfd2FpdF9tc2dpbnRfcmVhZHkoYWNiKSkKKysJewor KwkJcHJpbnRrKCJhcmNtc3IlZDogd2FpdCAnZmx1c2ggYWRhcHRlciBjYWNoZScgdGltZW91 dCBcbiIsYWNiLT5hZGFwdGVyX2luZGV4KTsKKysJfQorKwlyZXR1cm47CisrfQorKy8qCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3ZvaWQgYXJjbXNy X2NjYl9jb21wbGV0ZShzdHJ1Y3QJQ29tbWFuZENvbnRyb2xCbG9jayAqY2NiLGludCBzdGFu ZF9mbGFnKQorK3sKKysJc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sgKmFjYj1jY2ItPmFj YjsKKysgICAgc3RydWN0IHNjc2lfY21uZCAqcGNtZD1jY2ItPnBjbWQ7CisrCisrCSNpZiBB UkNNU1JfREVCVUcKKysJcHJpbnRrKCJhcmNtc3JfY2NiX2NvbXBsZXRlOmNjYj0weCVwIFxu IixjY2IpOworKwkjZW5kaWYKKysjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDIsMywzMCkKKysgICAgYXJjbXNyX3BjaV91bm1hcF9kbWEoY2NiKTsKKysjZW5k aWYKKysJaWYoc3RhbmRfZmxhZz09MSkKKysJeworKwkgICAgYXRvbWljX2RlYygmYWNiLT5j Y2JvdXRzdGFuZGluZ2NvdW50KTsKKysJfQorKwljY2ItPnN0YXJ0ZG9uZT1BUkNNU1JfQ0NC X0RPTkU7CisrCWNjYi0+Y2NiX2ZsYWdzPTA7CisrCWxpc3RfYWRkX3RhaWwoJmNjYi0+bGlz dCwgJmFjYi0+Y2NiX2ZyZWVfbGlzdCk7CisrCSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0g S0VSTkVMX1ZFUlNJT04oMiw1LDApCisrCXsKKysJcGNtZC0+c2NzaV9kb25lKHBjbWQpOwor Kwl9CisrICAgICNlbHNlCisrCXsKKysJICAgIHVuc2lnbmVkIGxvbmcgZmxhZ3M7CisrCQlz cGluX2xvY2tfaXJxc2F2ZSgmaW9fcmVxdWVzdF9sb2NrLCBmbGFncyk7CisrCQlwY21kLT5z Y3NpX2RvbmUocGNtZCk7CisrCQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZpb19yZXF1ZXN0 X2xvY2ssIGZsYWdzKTsKKysJfQorKwkjZW5kaWYKKysJcmV0dXJuOworK30KKysvKgorKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKysqKgkgaWYgc2NzaSBlcnJvciBkbyBhdXRvIHJlcXVlc3Qgc2Vu c2UKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisrKi8KKyt2b2lkIGFyY21zcl9yZXBvcnRfc2Vuc2Vf aW5mbyhzdHJ1Y3QgQ29tbWFuZENvbnRyb2xCbG9jayAqY2NiKQorK3sKKysJc3RydWN0IHNj c2lfY21uZCAqcGNtZD1jY2ItPnBjbWQ7CisrCSNpZiBBUkNNU1JfREVCVUcKKysgICAgcHJp bnRrKCJhcmNtc3JfcmVwb3J0X3NlbnNlX2luZm8uLi4uLi4uLi4uLlxuIik7CisrCSNlbmRp ZgorKyAgICBwY21kLT5yZXN1bHQ9RElEX09LCTw8IDE2OworKyAgICBpZihwY21kLT5zZW5z ZV9idWZmZXIpIAorKwl7CisrCQltZW1zZXQocGNtZC0+c2Vuc2VfYnVmZmVyLCAwLCBTQ1NJ X1NFTlNFX0JVRkZFUlNJWkUpOworKwkJbWVtY3B5KHBjbWQtPnNlbnNlX2J1ZmZlcixjY2It PmFyY21zcl9jZGIuU2Vuc2VEYXRhLFNDU0lfU0VOU0VfQlVGRkVSU0laRSk7CisrCSAgICBw Y21kLT5zZW5zZV9idWZmZXJbMF0gPSAoMHgxIDw8IDcgfAkweDcwKTsgLyogVmFsaWQsRXJy b3JDb2RlICovCisrICAgIH0KKysgICAgcmV0dXJuOworK30KKysvKgorKyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorKyovCisrdm9pZCBhcmNtc3JfYWJvcnRfYWxsY21k KHN0cnVjdAlBZGFwdGVyQ29udHJvbEJsb2NrICphY2IpCisreworKyAgICBzdHJ1Y3QgTWVz c2FnZVVuaXQgX19pb21lbSAqcmVnPWFjYi0+cG11OworKworKwl3cml0ZWwoQVJDTVNSX0lO Qk9VTkRfTUVTRzBfQUJPUlRfQ01ELCZyZWctPmluYm91bmRfbXNnYWRkcjApOworKwlpZihh cmNtc3Jfd2FpdF9tc2dpbnRfcmVhZHkoYWNiKSkKKysJeworKwlwcmludGsoImFyY21zciVk OiB3YWl0ICdhYm9ydCBhbGwgb3V0c3RhbmRpbmcgY29tbWFuZCcgdGltZW91dCBcbiIsYWNi LT5hZGFwdGVyX2luZGV4KTsKKysJfQorKwlyZXR1cm47CisrfQorKy8qCisrKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0YXRpYyB1X2ludDhfdAlhcmNt c3Jfd2FpdF9tc2dpbnRfcmVhZHkoc3RydWN0CUFkYXB0ZXJDb250cm9sQmxvY2sgKmFjYikK Kyt7CisrICAgIHN0cnVjdCBNZXNzYWdlVW5pdCBfX2lvbWVtICpyZWc9YWNiLT5wbXU7Cisr CXVpbnQzMl90IEluZGV4OworKwl1aW50OF90CVJldHJpZXM9MHgwMDsKKysKKysJI2lmIEFS Q01TUl9ERUJVRworKwlwcmludGsoImFyY21zcl93YWl0X21zZ2ludF9yZWFkeTogLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLlxuIik7CisrCSNlbmRpZgorKwlpZihhY2ItPmFj Yl9mbGFncyAmCUFDQl9GX0ZJUk1XQVJFX1RSQVApCisrCXsKKysJCXdyaXRlbChBUkNNU1Jf TVVfT1VUQk9VTkRfTUVTU0FHRTBfSU5ULCZyZWctPm91dGJvdW5kX2ludHN0YXR1cyk7Lypj bGVhciBpbnRlcnJ1cHQqLworKwkJcmV0dXJuIDB4MDA7CisrCX0KKysJZG8KKysJeworKwkJ Zm9yKEluZGV4PTA7IEluZGV4IDwgMTAwOyBJbmRleCsrKQorKwkJeworKwkJCWlmKHJlYWRs KCZyZWctPm91dGJvdW5kX2ludHN0YXR1cykgJiBBUkNNU1JfTVVfT1VUQk9VTkRfTUVTU0FH RTBfSU5UKQorKwkJCXsKKysJCQkJd3JpdGVsKEFSQ01TUl9NVV9PVVRCT1VORF9NRVNTQUdF MF9JTlQsJnJlZy0+b3V0Ym91bmRfaW50c3RhdHVzKTsvKmNsZWFyIGludGVycnVwdCovCisr CQkJCXJldHVybiAweDAwOworKwkJCX0KKysJCQlhcmNfbWRlbGF5X2ludCgxMCk7CisrCQl9 LyptYXggMSBzZWNvbmRzKi8KKysJfXdoaWxlKFJldHJpZXMrKyA8IDUpOy8qbWF4IDUgc2Vj Ki8KKysJcmV0dXJuIDB4ZmY7CisrfQorKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0YXRpYyB2b2lkIGFyY21zcl9pb3Bf cmVzZXQoc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sgKmFjYikKKyt7CisrCXN0cnVjdCBD b21tYW5kQ29udHJvbEJsb2NrICpjY2I7CisrCXVpbnQzMl90IGludG1hc2tfb3JnOworKwlp bnQgaSA9IDA7CisrCisrCSNpZiBBUkNNU1JfREVCVUcKKysJcHJpbnRrKCJhcmNtc3JfaW9w X3Jlc2V0OiByZXNldCBpb3AgY29udHJvbGxlci4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uXG4iKTsKKysJI2VuZGlmCisrCWlmIChhdG9taWNfcmVhZCgmYWNiLT5j Y2JvdXRzdGFuZGluZ2NvdW50KSAhPSAwKSB7CisrCQkjaWYgQVJDTVNSX0RFQlVHCisrCQlw cmludGsoImFyY21zcl9pb3BfcmVzZXQ6IGNjYm91dHN0YW5kaW5nY291bnQ9JWQgLi4uXG4i LGF0b21pY19yZWFkKCZhY2ItPmNjYm91dHN0YW5kaW5nY291bnQpKTsKKysJCSNlbmRpZgor KwkJLyogZGlzYWJsZSBhbGwgb3V0Ym91bmQgaW50ZXJydXB0ICovCisrCQlpbnRtYXNrX29y ZyA9IGFyY21zcl9kaXNhYmxlX2FsbGludHIoYWNiKTsKKysJCS8qIHRhbGsgdG8gaW9wIDMz MSBvdXRzdGFuZGluZyBjb21tYW5kIGFib3J0ZWQgKi8KKysJCWFyY21zcl9hYm9ydF9hbGxj bWQoYWNiKTsKKysJCS8qIGNsZWFyIGFsbCBvdXRib3VuZCBwb3N0ZWQgUSAqLworKwkJYXJj bXNyX2RvbmU0X2Fib3J0X3Bvc3RxdWV1ZShhY2IpOwkJCisrCQlmb3IgKGkgPSAwOyBpIDwg QVJDTVNSX01BWF9GUkVFQ0NCX05VTTsgaSsrKSB7CQkJCisrCQkJY2NiID0gYWNiLT5wY2Ni X3Bvb2xbaV07CQkJCisrCQkJaWYgKGNjYi0+c3RhcnRkb25lID09IEFSQ01TUl9DQ0JfU1RB UlQpIHsJCQkJCisrCQkJCWNjYi0+c3RhcnRkb25lID0gQVJDTVNSX0NDQl9BQk9SVEVEOwkJ CQorKwkJCX0JCQorKwkJfQkJCisrCQkvKiBlbmFibGUgYWxsIG91dGJvdW5kIGludGVycnVw dCAqLwkJCisrCQlhcmNtc3JfZW5hYmxlX2FsbGludHIoYWNiLCBpbnRtYXNrX29yZyk7CQor KwkJfQorKwl9CisrCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorKyovCisrc3RhdGljIGludCBhcmNtc3JfYnVpbGRfY2NiKHN0cnVjdCBBZGFwdGVyQ29u dHJvbEJsb2NrICphY2Isc3RydWN0IENvbW1hbmRDb250cm9sQmxvY2sgKmNjYixzdHJ1Y3Qg c2NzaV9jbW5kICpwY21kKQorK3sKKysgICAgc3RydWN0IEFSQ01TUl9DREIgKmFyY21zcl9j ZGI9ICZjY2ItPmFyY21zcl9jZGI7CisrCXVpbnQ4X3QJKnBzZ2U9KHVpbnQ4X3QgKiApJmFy Y21zcl9jZGItPnU7CisrCXVpbnQzMl90IGFkZHJlc3NfbG8sYWRkcmVzc19oaTsKKysJaW50 IGFyY2NkYnNpemU9MHgzMCxzZ2NvdW50PTA7CisrCQorKwkjaWYgQVJDTVNSX0RFQlVHCisr CXByaW50aygiYXJjbXNyX2J1aWxkX2NjYi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiBc biIpOworKwkjZW5kaWYKKysgICAgY2NiLT5wY21kPXBjbWQ7CisrCW1lbXNldChhcmNtc3Jf Y2RiLDAsc2l6ZW9mKHN0cnVjdCBBUkNNU1JfQ0RCKSk7CisrICAgIGFyY21zcl9jZGItPkJ1 cz0wOworKyAgICBhcmNtc3JfY2RiLT5UYXJnZXRJRD1wY21kLT5kZXZpY2UtPmlkOworKyAg ICBhcmNtc3JfY2RiLT5MVU49cGNtZC0+ZGV2aWNlLT5sdW47CisrICAgIGFyY21zcl9jZGIt PkZ1bmN0aW9uPTE7CisrCWFyY21zcl9jZGItPkNkYkxlbmd0aD0odWludDhfdClwY21kLT5j bWRfbGVuOworKyAgICBhcmNtc3JfY2RiLT5Db250ZXh0PSh1bnNpZ25lZCBsb25nKWFyY21z cl9jZGI7CisrICAgIG1lbWNweShhcmNtc3JfY2RiLT5DZGIsIHBjbWQtPmNtbmQsCXBjbWQt PmNtZF9sZW4pOworKwlpZihwY21kLT51c2Vfc2cpIAorKwl7CisrCQlpbnQgbGVuZ3RoLGks Y2RiX3NnY291bnQ9MDsKKysJCXN0cnVjdCBzY2F0dGVybGlzdCAqc2w7CisrCisrCQkvKiBH ZXQgU2NhdHRlciBHYXRoZXIgTGlzdCBmcm9tCXNjc2lwb3J0LiAqLworKwkJc2w9KHN0cnVj dCBzY2F0dGVybGlzdCAqKSBwY21kLT5yZXF1ZXN0X2J1ZmZlcjsKKysJI2lmIExJTlVYX1ZF UlNJT05fQ09ERSA+PUtFUk5FTF9WRVJTSU9OKDIsMywzMCkKKysJCXNnY291bnQ9cGNpX21h cF9zZyhhY2ItPnBkZXYsIHNsLCBwY21kLT51c2Vfc2csCXBjbWQtPnNjX2RhdGFfZGlyZWN0 aW9uKTsKKysgICAgI2Vsc2UKKysJc2djb3VudD1wY21kLT51c2Vfc2c7CisrICAgICNlbmRp ZgorKwkJaWYoc2djb3VudCA+IEFSQ01TUl9NQVhfU0dfRU5UUklFUykKKysJCXsKKysJCQly ZXR1cm4gRkFJTEVEOworKwkJfQorKwkJLyogbWFwIHN0b3IgcG9ydCBTRyBsaXN0IHRvIG91 cglpb3AgU0cgTGlzdC4qLworKwkJZm9yKGk9MDtpPHNnY291bnQ7aSsrKSAKKysJCXsKKysJ CQkvKiBHZXQgdGhlIHBoeXNpY2FsIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgZGF0YQlwb2lu dGVyCSovCisrCSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj1LRVJORUxfVkVSU0lPTigyLDMs MzApCisrCQkJbGVuZ3RoPWNwdV90b19sZTMyKHNnX2RtYV9sZW4oc2wpKTsKKysJICAgIGFk ZHJlc3NfbG89Y3B1X3RvX2xlMzIoZG1hX2FkZHJfbG8zMihzZ19kbWFfYWRkcmVzcyhzbCkp KTsKKysJCQlhZGRyZXNzX2hpPWNwdV90b19sZTMyKGRtYV9hZGRyX2hpMzIoc2dfZG1hX2Fk ZHJlc3Moc2wpKSk7CisrCSNlbHNlCisrCSAgICBsZW5ndGg9Y3B1X3RvX2xlMzIoc2wtPmxl bmd0aCk7CisrCQkJYWRkcmVzc19sbz1jcHVfdG9fbGUzMih2aXJ0X3RvX2J1cyhzbC0+YWRk cmVzcykpOworKwkgICAgYWRkcmVzc19oaT0wOworKwkjZW5kaWYKKysJCQlpZihhZGRyZXNz X2hpPT0wKQorKwkJCXsKKysJCQkJc3RydWN0IFNHMzJFTlRSWSogcGRtYV9zZz0oc3RydWN0 IFNHMzJFTlRSWSopcHNnZTsKKysKKysJCQkJcGRtYV9zZy0+YWRkcmVzcz1hZGRyZXNzX2xv OworKwkJCQlwZG1hX3NnLT5sZW5ndGg9bGVuZ3RoOworKwkJCQlwc2dlICs9CXNpemVvZihz dHJ1Y3QgU0czMkVOVFJZKTsKKysJCQkJYXJjY2Ric2l6ZSArPSBzaXplb2Yoc3RydWN0IFNH MzJFTlRSWSk7CisrCQkJfQorKwkJCWVsc2UKKysJCQl7CisrCQlzdHJ1Y3QgU0c2NEVOVFJZ ICpwZG1hX3NnPShzdHJ1Y3QgU0c2NEVOVFJZICopcHNnZTsKKysJCQkjaWYgQVJDTVNSX0RF QlVHCisrCQkJCXByaW50aygiYXJjbXNyX2J1aWxkX2NjYjogLi4uLi4uLi4uLmFkZHJlc3Nf aGk9MHgleC4uLi4JXG4iLGFkZHJlc3NfaGkpOworKwkJCQkjZW5kaWYKKysKKysJCQkJcGRt YV9zZy0+YWRkcmVzc2hpZ2g9YWRkcmVzc19oaTsKKysJCQkJcGRtYV9zZy0+YWRkcmVzcz1h ZGRyZXNzX2xvOworKwkJCQlwZG1hX3NnLT5sZW5ndGg9bGVuZ3RofElTX1NHNjRfQUREUjsK KysJCXBzZ2UgKz1zaXplb2Yoc3RydWN0IFNHNjRFTlRSWSk7CisrCQkJCWFyY2NkYnNpemUg Kz1zaXplb2Yoc3RydWN0IFNHNjRFTlRSWSk7CisrCQkJfQorKwkJCXNsKys7CisrCQkJY2Ri X3NnY291bnQrKzsKKysJCX0KKysJCWFyY21zcl9jZGItPnNnY291bnQ9KHVpbnQ4X3QpY2Ri X3NnY291bnQ7CisrCQlhcmNtc3JfY2RiLT5EYXRhTGVuZ3RoPXBjbWQtPnJlcXVlc3RfYnVm ZmxlbjsKKysJCWlmKCBhcmNjZGJzaXplID4gMjU2KQorKwkJeworKwkJCWFyY21zcl9jZGIt PkZsYWdzfD1BUkNNU1JfQ0RCX0ZMQUdfU0dMX0JTSVpFOworKwkJfQorKwl9CisrCWVsc2Ug aWYocGNtZC0+cmVxdWVzdF9idWZmbGVuKSAKKysJeworKyAgICAjaWYJTElOVVhfVkVSU0lP Tl9DT0RFID49S0VSTkVMX1ZFUlNJT04oMiwzLDMwKQorKwlkbWFfYWRkcl90IGRtYV9hZGRy OworKwkJZG1hX2FkZHI9cGNpX21hcF9zaW5nbGUoYWNiLT5wZGV2LCBwY21kLT5yZXF1ZXN0 X2J1ZmZlciwgcGNtZC0+cmVxdWVzdF9idWZmbGVuLAlwY21kLT5zY19kYXRhX2RpcmVjdGlv bik7CisrCQlwY21kLT5TQ3AucHRyID0JKGNoYXIgKikodW5zaWduZWQgbG9uZykJZG1hX2Fk ZHI7CisrCWFkZHJlc3NfbG89Y3B1X3RvX2xlMzIoZG1hX2FkZHJfbG8zMihkbWFfYWRkcikp OworKwkgICAgYWRkcmVzc19oaT1jcHVfdG9fbGUzMihkbWFfYWRkcl9oaTMyKGRtYV9hZGRy KSk7CisrICAgICNlbHNlCisrCWFkZHJlc3NfbG89Y3B1X3RvX2xlMzIodmlydF90b19idXMo cGNtZC0+cmVxdWVzdF9idWZmZXIpKTsvKiBBY3R1YWwgcmVxdWVzdGVkIGJ1ZmZlciAqLwor KwkgICAgYWRkcmVzc19oaT0wOworKyAgICAjZW5kaWYKKysJCWlmKGFkZHJlc3NfaGk9PTAp CisrCQl7CisrCQkJc3RydWN0IFNHMzJFTlRSWSogcGRtYV9zZz0oc3RydWN0IFNHMzJFTlRS WSopcHNnZTsKKysJCQlwZG1hX3NnLT5hZGRyZXNzPWFkZHJlc3NfbG87CisrCSAgICBwZG1h X3NnLT5sZW5ndGg9cGNtZC0+cmVxdWVzdF9idWZmbGVuOworKwkJfQorKwkJZWxzZQorKwkJ eworKwkJCXN0cnVjdCBTRzY0RU5UUlkqIHBkbWFfc2c9KHN0cnVjdCBTRzY0RU5UUlkqKXBz Z2U7CisrCQkJcGRtYV9zZy0+YWRkcmVzc2hpZ2g9YWRkcmVzc19oaTsKKysJCQlwZG1hX3Nn LT5hZGRyZXNzPWFkZHJlc3NfbG87CisrCSAgICBwZG1hX3NnLT5sZW5ndGg9cGNtZC0+cmVx dWVzdF9idWZmbGVufElTX1NHNjRfQUREUjsKKysJCX0KKysJCWFyY21zcl9jZGItPnNnY291 bnQ9MTsKKysJCWFyY21zcl9jZGItPkRhdGFMZW5ndGg9cGNtZC0+cmVxdWVzdF9idWZmbGVu OworKwl9CisrCWlmIChwY21kLT5jbW5kWzBdfFdSSVRFXzYgfHwgcGNtZC0+Y21uZFswXXxX UklURV8xMCB8fCBwY21kLT5jbW5kWzBdfFdSSVRFXzEyICkJCisrCXsKKysJCWFyY21zcl9j ZGItPkZsYWdzIHw9IEFSQ01TUl9DREJfRkxBR19XUklURTsKKysJCWNjYi0+Y2NiX2ZsYWdz IHw9IENDQl9GTEFHX1dSSVRFOworKwl9CisrCSNpZiBBUkNNU1JfREVCVUcKKysJcHJpbnRr KCJhcmNtc3JfYnVpbGRfY2NiOiBjY2I9MHglcCBjbWQ9MHgleCB4ZmVybGVuZ3RoPSVkIGFy Y2NkYnNpemU9JWQJc2djb3VudD0lZFxuIixjY2IscGNtZC0+Y21uZFswXSxhcmNtc3JfY2Ri LT5EYXRhTGVuZ3RoLGFyY2NkYnNpemUsYXJjbXNyX2NkYi0+c2djb3VudCk7CisrCSNlbmRp ZgorKyAgICByZXR1cm4gU1VDQ0VTUzsKKyt9CisrLyoKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorKyoqCWFyY21zcl9wb3N0X2NjYgktIFNlbmQgYSBwcm90b2NvbCBzcGVjaWZpYyBBUkMg c2VuZCBwb3N0Y2FyZCB0bwlhIEFJT0MgLgorKyoqCWhhbmRsZToJSGFuZGxlIG9mIHJlZ2lz dGVyZWQgQVJDIHByb3RvY29sIGRyaXZlcgorKyoqCWFkYXB0ZXJfaWQ6IEFJT0MgdW5pcXVl CWlkZW50aWZpZXIoaW50ZWdlcikKKysqKglwUE9TVENBUkRfU0VORDoJUG9pbnRlcgl0byBB UkMgc2VuZCBwb3N0Y2FyZAorKyoqCisrKioJVGhpcyByb3V0aW5lIHBvc3RzIGEgQVJDIHNl bmQgcG9zdGNhcmQgdG8gdGhlIHJlcXVlc3QgcG9zdCBGSUZPCW9mIGEKKysqKglzcGVjaWZp YyBBUkMgYWRhcHRlci4KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovIAorK3N0YXRpYyB2 b2lkIGFyY21zcl9wb3N0X2NjYihzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiLHN0 cnVjdCBDb21tYW5kQ29udHJvbEJsb2NrICpjY2IpCisreworKyAgICBzdHJ1Y3QgTWVzc2Fn ZVVuaXQgX19pb21lbSAqcmVnPWFjYi0+cG11OworKwl1aW50MzJfdCBjZGJfc2hpZnRlZF9w aHlhZGRyPWNjYi0+Y2RiX3NoaWZ0ZWRfcGh5YWRkcjsKKysJc3RydWN0IEFSQ01TUl9DREIg KmFyY21zcl9jZGI9KHN0cnVjdCBBUkNNU1JfQ0RCICopJmNjYi0+YXJjbXNyX2NkYjsKKysK KysJI2lmIEFSQ01TUl9ERUJVRworKwlwcmludGsoImFyY21zcl9wb3N0X2NjYjogY2NiPTB4 JXAgY2RiX3NoaWZ0ZWRfcGh5YWRkcj0weCV4IGNjYi0+YWNiPTB4JXAgXG4iLGNjYixjZGJf c2hpZnRlZF9waHlhZGRyLGNjYi0+YWNiKTsKKysJI2VuZGlmCisrICAgIGF0b21pY19pbmMo JmFjYi0+Y2Nib3V0c3RhbmRpbmdjb3VudCk7CisrCWNjYi0+c3RhcnRkb25lPUFSQ01TUl9D Q0JfU1RBUlQ7CisrCWlmKGFyY21zcl9jZGItPkZsYWdzICYgQVJDTVNSX0NEQl9GTEFHX1NH TF9CU0laRSkKKysJeworKwkgICAgd3JpdGVsKGNkYl9zaGlmdGVkX3BoeWFkZHJ8QVJDTVNS X0NDQlBPU1RfRkxBR19TR0xfQlNJWkUsJnJlZy0+aW5ib3VuZF9xdWV1ZXBvcnQpOworKwl9 CisrCWVsc2UKKysJeworKwkgICAgd3JpdGVsKGNkYl9zaGlmdGVkX3BoeWFkZHIsJnJlZy0+ aW5ib3VuZF9xdWV1ZXBvcnQpOworKwl9CisrCXJldHVybjsKKyt9CisrLyoKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisrKiogICBGdW5jdGlvbjogYXJjbXNyX3Bvc3RfUWJ1ZmZlcgorKyoqICAg ICBPdXRwdXQ6IAorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0YXRpYyB2b2lkIGFyY21z cl9wb3N0X1FidWZmZXIoc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sgKmFjYikKKyt7Cisr ICAgIHN0cnVjdCBNZXNzYWdlVW5pdCBfX2lvbWVtICpyZWc9YWNiLT5wbXU7CisrCXN0cnVj dCBRQlVGRkVSIF9faW9tZW0gKnB3YnVmZmVyPShzdHJ1Y3QgUUJVRkZFUiBfX2lvbWVtICop JnJlZy0+bWVzc2FnZV93YnVmZmVyOworKyAgICB1aW50OF90IF9faW9tZW0gKmlvcF9kYXRh PSh1aW50OF90IF9faW9tZW0gKilwd2J1ZmZlci0+ZGF0YTsKKysJaW50MzJfdAlhbGx4ZmVy X2xlbj0wOworKworKyAgICBpZihhY2ItPmFjYl9mbGFncyAmCUFDQl9GX01FU1NBR0VfV1FC VUZGRVJfUkVBREVEKQorKwl7CisrCQlhY2ItPmFjYl9mbGFncyAmPSAofkFDQl9GX01FU1NB R0VfV1FCVUZGRVJfUkVBREVEKTsKKysJCXdoaWxlKChhY2ItPndxYnVmX2ZpcnN0aW5kZXgh PWFjYi0+d3FidWZfbGFzdGluZGV4KSAmJiAoYWxseGZlcl9sZW48MTI0KSkKKysJCXsKKysJ CQl3cml0ZWIoYWNiLT53cWJ1ZmZlclthY2ItPndxYnVmX2ZpcnN0aW5kZXhdLCBpb3BfZGF0 YSk7CisrCQkJYWNiLT53cWJ1Zl9maXJzdGluZGV4Kys7CisrCQkJYWNiLT53cWJ1Zl9maXJz dGluZGV4ICU9IEFSQ01TUl9NQVhfUUJVRkZFUjsgLyppZiBsYXN0IGluZGV4IG51bWJlciBz ZXQJaXQgdG8gMAkqLworKwkJCWlvcF9kYXRhKys7CisrCQkJYWxseGZlcl9sZW4rKzsKKysJ CX0KKysJd3JpdGVsKGFsbHhmZXJfbGVuLCAmcHdidWZmZXItPmRhdGFfbGVuKTsKKysJCS8q CisrCQkqKiBwdXNoCWluYm91bmQJZG9vcmJlbGwgYW5kIHdhaXQgcmVwbHkJYXQgaHdpbnRl cnJ1cHQgcm91dGluZSBmb3IgbmV4dAlRYnVmZmVyCXBvc3QKKysJCSovCisrCQl3cml0ZWwo QVJDTVNSX0lOQk9VTkRfRFJJVkVSX0RBVEFfV1JJVEVfT0ssJnJlZy0+aW5ib3VuZF9kb29y YmVsbCk7CisrCX0KKysJcmV0dXJuOworK30KKysvKgorKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKyovCisrc3RhdGljIHZvaWQgYXJjbXNyX3N0b3BfYWRh cHRlcl9iZ3JiKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrCSphY2IpCisreworKyAgICBz dHJ1Y3QgTWVzc2FnZVVuaXQgX19pb21lbSAqcmVnPWFjYi0+cG11OworKyAgICAjaWYJQVJD TVNSX0RFQlVHCisrICAgIHByaW50aygiYXJjbXNyX3N0b3BfYWRhcHRlcl9iZ3JiLi4uLi4u Li4uLi4uLi5cbiIpOworKyAgICAjZW5kaWYKKysKKysJYWNiLT5hY2JfZmxhZ3MgJj0gfkFD Ql9GX01TR19TVEFSVF9CR1JCOworKwl3cml0ZWwoQVJDTVNSX0lOQk9VTkRfTUVTRzBfU1RP UF9CR1JCLCZyZWctPmluYm91bmRfbXNnYWRkcjApOworKwlpZihhcmNtc3Jfd2FpdF9tc2dp bnRfcmVhZHkoYWNiKSkKKysJeworKwkJcHJpbnRrKCJhcmNtc3IlZDogd2FpdCAnc3RvcCBh ZGFwdGVyIGJhY2tncm91bmQJcmVidWxpZCcgdGltZW91dCBcbiIsYWNiLT5hZGFwdGVyX2lu ZGV4KTsKKysJfQorKwlyZXR1cm47CisrfQorKy8qCisrKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisrKi8KKytzdGF0aWMgdm9pZCBhcmNtc3JfZnJlZV9jY2Jf cG9vbChzdHJ1Y3QJQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiKQorK3sKKysjaWYgTElOVVhf VkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNSwwKQorKwl7CisrCWRtYV9mcmVl X2NvaGVyZW50KCZhY2ItPnBkZXYtPmRldiwoKHNpemVvZihzdHJ1Y3QgQ29tbWFuZENvbnRy b2xCbG9jaykgKiBBUkNNU1JfTUFYX0ZSRUVDQ0JfTlVNKSsweDIwKSxhY2ItPmRtYV9jb2hl cmVudCxhY2ItPmRtYV9jb2hlcmVudF9oYW5kbGUpOworKwl9CisrI2VsaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsMywzMCkKKysJeworKwkgICAgcGNpX2Zy ZWVfY29uc2lzdGVudChhY2ItPnBkZXYsICgoc2l6ZW9mKHN0cnVjdCBDb21tYW5kQ29udHJv bEJsb2NrKQkqIEFSQ01TUl9NQVhfRlJFRUNDQl9OVU0pKzB4MjApLCBhY2ItPmRtYV9jb2hl cmVudCwgYWNiLT5kbWFfY29oZXJlbnRfaGFuZGxlKTsKKysJfQorKyNlbHNlCisrCXsKKysJ a2ZyZWUoYWNiLT5kbWFfY29oZXJlbnQpOworKwl9CisrI2VuZGlmCisrCXJldHVybjsKKyt9 CisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisrKiogICBGdW5jdGlvbjoJYXJjbXNyX2ludGVy cnVwdAorKyoqICAgICBPdXRwdXQ6CXZvaWQKKysqKiBESURfT0sJICAgMHgwMAkvLyBOTyBl cnJvcgkJCQkgICAKKysqKiBESURfTk9fQ09OTkVDVCAgMHgwMQkvLyBDb3VsZG4ndCBjb25u ZWN0IGJlZm9yZSB0aW1lb3V0IHBlcmlvZCAgCisrKiogRElEX0JVU19CVVNZCSAgIDB4MDIJ Ly8gQlVTIHN0YXllZCBidXN5IHRocm91Z2ggdGltZQlvdXQgcGVyaW9kIAorKyoqIERJRF9U SU1FX09VVAkgICAweDAzCS8vIFRJTUVEIE9VVCBmb3Igb3RoZXIgcmVhc29uCQkgICAKKysq KiBESURfQkFEX1RBUkdFVCAgMHgwNAkvLyBCQUQgdGFyZ2V0LgkJCQkgICAKKysqKiBESURf QUJPUlQJICAgMHgwNQkvLyBUb2xkCXRvIGFib3J0IGZvciBzb21lIG90aGVyCXJlYXNvbgkg ICAKKysqKiBESURfUEFSSVRZCSAgIDB4MDYJLy8gUGFyaXR5IGVycm9yCQkJCSAgIAorKyoq IERJRF9FUlJPUgkgICAweDA3CS8vIEludGVybmFsIGVycm9yCQkJICAgCisrKiogRElEX1JF U0VUCSAgIDB4MDgJLy8gUmVzZXQgYnkgc29tZWJvZHkuCQkJICAgCisrKiogRElEX0JBRF9J TlRSCSAgIDB4MDkJLy8gR290IGFuIGludGVycnVwdCB3ZSB3ZXJlbid0IGV4cGVjdGluZy4g IAorKyoqIERJRF9QQVNTVEhST1VHSCAweDBhCS8vIEZvcmNlIGNvbW1hbmQgcGFzdCBtaWQt bGF5ZXIJCSAgIAorKyoqIERJRF9TT0ZUX0VSUk9SICAweDBiCS8vIFRoZSBsb3cgbGV2ZWwg ZHJpdmVyCWp1c3Qgd2lzaCBhIHJldHJ5ICAKKysqKiBEUklWRVJfT0sJICAgMHgwMAkvLyBE cml2ZXIgc3RhdHVzCQorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNpZiBMSU5VWF9WRVJT SU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw1LDApCisrICAgIHN0YXRpYyBpcnFyZXR1 cm5fdCBhcmNtc3JfaW50ZXJydXB0KHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2Ip CisrI2Vsc2UKKysgICAgc3RhdGljIHZvaWQJYXJjbXNyX2ludGVycnVwdChzdHJ1Y3QJQWRh cHRlckNvbnRyb2xCbG9jayAqYWNiKQorKyNlbmRpZgorK3sKKysgICAgc3RydWN0IE1lc3Nh Z2VVbml0IF9faW9tZW0gKnJlZz1hY2ItPnBtdTsKKysJc3RydWN0IENvbW1hbmRDb250cm9s QmxvY2sgKmNjYjsKKysJdWludDMyX3QgZmxhZ19jY2Isb3V0Ym91bmRfaW50c3RhdHVzLG91 dGJvdW5kX2Rvb3JiZWxsOworKyAgICAjaWYJQVJDTVNSX0RFQlVHCisrICAgIHByaW50aygi YXJjbXNyX2ludGVycnVwdC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXG4i KTsKKysgICAgI2VuZGlmCisrCisrCW91dGJvdW5kX2ludHN0YXR1cz1yZWFkbCgmcmVnLT5v dXRib3VuZF9pbnRzdGF0dXMpICYgYWNiLT5vdXRib3VuZF9pbnRfZW5hYmxlOworKwl3cml0 ZWwob3V0Ym91bmRfaW50c3RhdHVzLCZyZWctPm91dGJvdW5kX2ludHN0YXR1cyk7LypjbGVh ciBpbnRlcnJ1cHQqLworKwlpZihvdXRib3VuZF9pbnRzdGF0dXMgJglBUkNNU1JfTVVfT1VU Qk9VTkRfRE9PUkJFTExfSU5UKQorKwl7CisrCQkjaWYgQVJDTVNSX0RFQlVHCisrCQlwcmlu dGsoImFyY21zcl9pbnRlcnJ1cHQ6Li4uLi4uLi4uLkFSQ01TUl9NVV9PVVRCT1VORF9ET09S QkVMTF9JTlQgXG4iKTsKKysJCSNlbmRpZgorKworKwkJb3V0Ym91bmRfZG9vcmJlbGw9cmVh ZGwoJnJlZy0+b3V0Ym91bmRfZG9vcmJlbGwpOworKwkJd3JpdGVsKG91dGJvdW5kX2Rvb3Ji ZWxsLCZyZWctPm91dGJvdW5kX2Rvb3JiZWxsKTsvKmNsZWFyIGludGVycnVwdCAqLworKwkJ aWYob3V0Ym91bmRfZG9vcmJlbGwgJiBBUkNNU1JfT1VUQk9VTkRfSU9QMzMxX0RBVEFfV1JJ VEVfT0spCisrCQl7CisrCQkJc3RydWN0IFFCVUZGRVIgX19pb21lbSAqcHJidWZmZXI9KHN0 cnVjdCBRQlVGRkVSIF9faW9tZW0gKikmcmVnLT5tZXNzYWdlX3JidWZmZXI7CisrCQkJdWlu dDhfdAlfX2lvbWVtCSppb3BfZGF0YT0odWludDhfdCBfX2lvbWVtICopcHJidWZmZXItPmRh dGE7CisrCQkJaW50MzJfdAlteV9lbXB0eV9sZW4saW9wX2xlbixycWJ1Zl9maXJzdGluZGV4 LHJxYnVmX2xhc3RpbmRleDsKKysJCisrCQkvKmNoZWNrCXRoaXMgaW9wIGRhdGEgaWYgb3Zl cmZsb3cgbXkgcnFidWZmZXIqLworKwkJCXJxYnVmX2xhc3RpbmRleD1hY2ItPnJxYnVmX2xh c3RpbmRleDsKKysJCQlycWJ1Zl9maXJzdGluZGV4PWFjYi0+cnFidWZfZmlyc3RpbmRleDsK KysJCQlpb3BfbGVuPXByYnVmZmVyLT5kYXRhX2xlbjsKKysJICAgIG15X2VtcHR5X2xlbj0o cnFidWZfZmlyc3RpbmRleC1ycWJ1Zl9sYXN0aW5kZXgtMSkmKEFSQ01TUl9NQVhfUUJVRkZF Ui0xKTsKKysJCQlpZihteV9lbXB0eV9sZW4+PWlvcF9sZW4pCisrCQkJeworKwkJCQl3aGls ZShpb3BfbGVuID4JMCkKKysJCQkJeworKwkJCQkJYWNiLT5ycWJ1ZmZlclthY2ItPnJxYnVm X2xhc3RpbmRleF0gPSByZWFkYihpb3BfZGF0YSk7CisrCQkJCQlhY2ItPnJxYnVmX2xhc3Rp bmRleCsrOworKwkJCQkJYWNiLT5ycWJ1Zl9sYXN0aW5kZXggJT0JQVJDTVNSX01BWF9RQlVG RkVSOy8qaWYJbGFzdCBpbmRleCBudW1iZXIgc2V0IGl0IHRvIDAgKi8KKysJCQkJCWlvcF9k YXRhKys7CisrCQkJCQlpb3BfbGVuLS07CisrCQkJCX0KKysJCQkJd3JpdGVsKEFSQ01TUl9J TkJPVU5EX0RSSVZFUl9EQVRBX1JFQURfT0ssJnJlZy0+aW5ib3VuZF9kb29yYmVsbCk7Lypz aWduYXR1cmUsIGxldCBJT1AzMzEga25vdyBkYXRhIGhhcwliZWVuIHJlYWRlZCAqLworKwkJ CX0KKysJCQllbHNlCisrCQkJeworKwkJCQlhY2ItPmFjYl9mbGFnc3w9QUNCX0ZfSU9QREFU QV9PVkVSRkxPVzsKKysJCQl9CisrCQl9CisrCQlpZihvdXRib3VuZF9kb29yYmVsbCAmIEFS Q01TUl9PVVRCT1VORF9JT1AzMzFfREFUQV9SRUFEX09LKQorKwkJeworKwkJCWFjYi0+YWNi X2ZsYWdzIHw9IEFDQl9GX01FU1NBR0VfV1FCVUZGRVJfUkVBREVEOworKworKwkJaWYoYWNi LT53cWJ1Zl9maXJzdGluZGV4IT1hY2ItPndxYnVmX2xhc3RpbmRleCkKKysJCQl7CisrCQkJ CXN0cnVjdCBRQlVGRkVSIF9faW9tZW0gKnB3YnVmZmVyPShzdHJ1Y3QgUUJVRkZFUiBfX2lv bWVtICopJnJlZy0+bWVzc2FnZV93YnVmZmVyOworKwkJCQl1aW50OF90CV9faW9tZW0JKiAg aW9wX2RhdGE9KHVpbnQ4X3QgX19pb21lbSAqKXB3YnVmZmVyLT5kYXRhOworKwkJCQlpbnQz Ml90CWFsbHhmZXJfbGVuPTA7CisrCisrCQlhY2ItPmFjYl9mbGFncyAmPSAofkFDQl9GX01F U1NBR0VfV1FCVUZGRVJfUkVBREVEKTsKKysJCQkJd2hpbGUoKGFjYi0+d3FidWZfZmlyc3Rp bmRleCE9YWNiLT53cWJ1Zl9sYXN0aW5kZXgpICYmIChhbGx4ZmVyX2xlbjwxMjQpKQorKwkJ CQl7CisrCQkgICAgd3JpdGViKGFjYi0+d3FidWZmZXJbYWNiLT53cWJ1Zl9maXJzdGluZGV4 XSwgaW9wX2RhdGEpOworKwkJCQkJYWNiLT53cWJ1Zl9maXJzdGluZGV4Kys7CisrCQkJCQlh Y2ItPndxYnVmX2ZpcnN0aW5kZXggJT0gQVJDTVNSX01BWF9RQlVGRkVSOyAvKmlmIGxhc3Qg aW5kZXggbnVtYmVyIHNldAlpdCB0byAwCSovCisrCQkJCQlpb3BfZGF0YSsrOworKwkJCQkJ YWxseGZlcl9sZW4rKzsKKysJCQkJfQorKwkJCQl3cml0ZWwoYWxseGZlcl9sZW4sICZwd2J1 ZmZlci0+ZGF0YV9sZW4pOworKwkJCQkvKgorKwkJCQkqKiBwdXNoCWluYm91bmQJZG9vcmJl bGwgdGVsbCBpb3AgZHJpdmVyIGRhdGEgd3JpdGUgb2sgYW5kIHdhaXQJcmVwbHkgb24gbmV4 dCBod2ludGVycnVwdCBmb3IgbmV4dCBRYnVmZmVyIHBvc3QKKysJCQkJKi8KKysJCQkJd3Jp dGVsKEFSQ01TUl9JTkJPVU5EX0RSSVZFUl9EQVRBX1dSSVRFX09LLCZyZWctPmluYm91bmRf ZG9vcmJlbGwpOworKwkJCX0KKysJCQlpZihhY2ItPndxYnVmX2ZpcnN0aW5kZXg9PWFjYi0+ d3FidWZfbGFzdGluZGV4KQorKwkJCXsKKysJCQkJYWNiLT5hY2JfZmxhZ3MgfD0gQUNCX0Zf TUVTU0FHRV9XUUJVRkZFUl9DTEVBUkVEOworKwkJCX0KKysJCX0KKysJfQorKwlpZihvdXRi b3VuZF9pbnRzdGF0dXMgJglBUkNNU1JfTVVfT1VUQk9VTkRfUE9TVFFVRVVFX0lOVCkKKysJ eworKwkJaW50IGlkLGx1bjsKKysJCS8qCisrCQkqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KwkJKioJCSBhcmVjYSBjZGIgY29tbWFuZCBkb25lCisrCQkqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorKwkJKi8KKysJCXdoaWxlKDEpCisrCQl7CisrCQkJaWYoKGZsYWdfY2NiPXJlYWRs KCZyZWctPm91dGJvdW5kX3F1ZXVlcG9ydCkpID09IDB4RkZGRkZGRkYpCisrCQkJeworKwkJ CQlicmVhazsvKmNoaXAgRklGTyBubyBjY2IgZm9yIGNvbXBsZXRpb24JYWxyZWFkeSovCisr CQkJfQorKwkJCS8qIGNoZWNrIGlmIGNvbW1hbmQgZG9uZSB3aXRoIG5vIGVycm9yKi8KKysJ CQljY2I9KHN0cnVjdCBDb21tYW5kQ29udHJvbEJsb2NrCSopKGFjYi0+dmlyMnBoeV9vZmZz ZXQrKGZsYWdfY2NiIDw8IDUpKTsvKmZyYW1lCW11c3QgYmUJMzIgYnl0ZXMgYWxpZ25lZCov CisrCQkJaWYoKGNjYi0+YWNiIT1hY2IpIHx8IChjY2ItPnN0YXJ0ZG9uZSE9QVJDTVNSX0ND Ql9TVEFSVCkpCisrCQkJeworKwkJCQlpZihjY2ItPnN0YXJ0ZG9uZT09QVJDTVNSX0NDQl9B Qk9SVEVEKQorKwkJCQl7CisrCQkJCQlzdHJ1Y3Qgc2NzaV9jbW5kICphYm9ydGNtZD1jY2It PnBjbWQ7CisrCQkJCQlwcmludGsoImFyY21zciVkOiBjY2I9JzB4JXAnIGlzciBjb21tYW5k IGFib3J0IHN1Y2Nlc3NmdWxseSBcbiIsYWNiLT5hZGFwdGVyX2luZGV4LGNjYik7CisrCQkJ CQlpZihhYm9ydGNtZCkKKysJCQkJCXsKKysJCQkJCQlpZD1hYm9ydGNtZC0+ZGV2aWNlLT5p ZDsKKysJCQkJCQlsdW49YWJvcnRjbWQtPmRldmljZS0+bHVuOworKwkJCQkJCWlmKGFjYi0+ ZGV2X2Fib3J0c1tpZF1bbHVuXSA+PSA0KQorKwkJCQkJCXsKKysJCQkJCQkJYWNiLT5kZXZz dGF0ZVtpZF1bbHVuXT1BUkVDQV9SQUlEX0dPTkU7CisrCQkJCQkJCWFib3J0Y21kLT5yZXN1 bHQgPSBESURfTk9fQ09OTkVDVCA8PCAxNjsKKysJCQkJCQl9CisrCQkJCQkJYWJvcnRjbWQt PnJlc3VsdCB8PSBESURfQUJPUlQgPDwgMTY7CisrCQkJCQkJYXJjbXNyX2NjYl9jb21wbGV0 ZShjY2IsMSk7CisrCQkJCQl9CisrCQkJCQljb250aW51ZTsKKysJCQkJfQorKwkJCQlwcmlu dGsoImFyY21zciVkOiBpc3IgZ2V0IGFuIGlsbGVnYWwgY2NiIGNvbW1hbmQgZG9uZSBhY2I9 JzB4JXAnIGNjYj0nMHglcCcgY2NiYWNiPScweCVwJyBzdGFydGRvbmU9MHgleCBjY2JvdXRz dGFuZGluZ2NvdW50PSVkCVxuIixhY2ItPmFkYXB0ZXJfaW5kZXgsYWNiLGNjYixjY2ItPmFj YixjY2ItPnN0YXJ0ZG9uZSxhdG9taWNfcmVhZCgmYWNiLT5jY2JvdXRzdGFuZGluZ2NvdW50 KSk7CisrCQkJCWNvbnRpbnVlOworKwkJCX0KKysJCQlpZD1jY2ItPnBjbWQtPmRldmljZS0+ aWQ7CisrCQkJbHVuPWNjYi0+cGNtZC0+ZGV2aWNlLT5sdW47CisrCQkJaWYoKGZsYWdfY2Ni ICYgQVJDTVNSX0NDQlJFUExZX0ZMQUdfRVJST1IpPT0wKQorKwkJCXsKKysJCQkJI2lmIEFS Q01TUl9ERUJVRworKwkJCQlwcmludGsoImNjYj0weCVwICAgc2NzaQljbWQ9MHgleC4uLi4u Li4uLi4uLi4uLi4uLi4gR09PRCAuLi4uLi4uLi4uLi4uLmRvbmVcbiIsY2NiLGNjYi0+cGNt ZC0+Y21uZFswXSk7CisrCQkJCSNlbmRpZgorKworKwkJCQlpZihhY2ItPmRldnN0YXRlW2lk XVtsdW5dPT1BUkVDQV9SQUlEX0dPTkUpCisrCQkJCXsKKysJCSAgICAJCQlhY2ItPmRldnN0 YXRlW2lkXVtsdW5dPUFSRUNBX1JBSURfR09PRDsKKysJCQkJCWFjYi0+ZGV2X2Fib3J0c1tp ZF1bbHVuXT0wOworKwkJCQl9CisrCQkJCWNjYi0+cGNtZC0+cmVzdWx0PURJRF9PSyA8PCAx NjsKKysJCQkJYXJjbXNyX2NjYl9jb21wbGV0ZShjY2IsMSk7CisrCQkJfSAKKysJCQllbHNl IAorKwkJCXsgICAKKysJCQkJc3dpdGNoKGNjYi0+YXJjbXNyX2NkYi5EZXZpY2VTdGF0dXMp CisrCQkJCXsKKysJCQkJY2FzZSBBUkNNU1JfREVWX1NFTEVDVF9USU1FT1VUOgorKwkJCQkJ eworKwkJCQkjaWYgQVJDTVNSX0RFQlVHCisrCQkJCXByaW50aygiY2NiPTB4JXAgLi4uLi4u QVJDTVNSX0RFVl9TRUxFQ1RfVElNRU9VVFxuIixjY2IpOworKwkJCQkjZW5kaWYKKysJCQkJ CQlhY2ItPmRldnN0YXRlW2lkXVtsdW5dPUFSRUNBX1JBSURfR09ORTsKKysJCQkJCQljY2It PnBjbWQtPnJlc3VsdD1ESURfTk9fQ09OTkVDVCA8PCAxNjsKKysJCQkJCQlhcmNtc3JfY2Ni X2NvbXBsZXRlKGNjYiwxKTsKKysJCQkJCX0KKysJCQkJCWJyZWFrOworKwkJCQljYXNlIEFS Q01TUl9ERVZfQUJPUlRFRDoKKysJCQkJY2FzZSBBUkNNU1JfREVWX0lOSVRfRkFJTDoKKysJ CQkJCXsKKysJCQkJI2lmIEFSQ01TUl9ERUJVRworKwkJCQlwcmludGsoImNjYj0weCVwIC4u Li4uQVJDTVNSX0RFVl9JTklUX0ZBSUxcbiIsY2NiKTsKKysJCQkJI2VuZGlmCisrCQkJCQlh Y2ItPmRldnN0YXRlW2lkXVtsdW5dPUFSRUNBX1JBSURfR09ORTsKKysJCQkJCQljY2ItPnBj bWQtPnJlc3VsdD1ESURfQkFEX1RBUkdFVCA8PCAxNjsKKysJCQkJCQlhcmNtc3JfY2NiX2Nv bXBsZXRlKGNjYiwxKTsKKysJCQkJCX0KKysJCQkJCWJyZWFrOworKwkJCQljYXNlIFNDU0lT VEFUX0NIRUNLX0NPTkRJVElPTjoKKysJCQkJCXsKKysJCQkJI2lmIEFSQ01TUl9ERUJVRwor KwkJCQlwcmludGsoImNjYj0weCVwIC4uLi4uU0NTSVNUQVRfQ0hFQ0tfQ09ORElUSU9OXG4i LGNjYik7CisrCQkJCSNlbmRpZgorKwkJCQlhY2ItPmRldnN0YXRlW2lkXVtsdW5dPUFSRUNB X1JBSURfR09PRDsKKysJCQkJYXJjbXNyX3JlcG9ydF9zZW5zZV9pbmZvKGNjYik7CisrCQkJ CWFyY21zcl9jY2JfY29tcGxldGUoY2NiLDEpOworKwkJCQkJfQorKwkJCQkJYnJlYWs7Cisr CQkJCWRlZmF1bHQ6CisrCQkJCQkvKiBlcnJvciBvY2N1ciBRIGFsbCBlcnJvciBjY2IgdG8g ZXJyb3JjY2JwZW5kaW5nIFEqLworKwkJCQlwcmludGsoImFyY21zciVkOiBzY3NpIGlkPSVk IGx1bj0lZCBpc3IJZ2V0IGNvbW1hbmQgZXJyb3IgZG9uZSwJYnV0IGdvdAl1bmtub3cgRGV2 aWNlU3RhdHVzPTB4JXggXG4iLGFjYi0+YWRhcHRlcl9pbmRleCxpZCxsdW4sY2NiLT5hcmNt c3JfY2RiLkRldmljZVN0YXR1cyk7CisrCQkJCWFjYi0+ZGV2c3RhdGVbaWRdW2x1bl09QVJF Q0FfUkFJRF9HT05FOworKwkJCQljY2ItPnBjbWQtPnJlc3VsdD1ESURfQkFEX1RBUkdFVCA8 PCAxNjsvKnVua25vdwllcnJvciBvciBjcmMgZXJyb3IganVzdAlmb3IgcmV0cnkqLworKwkJ CQlhcmNtc3JfY2NiX2NvbXBsZXRlKGNjYiwxKTsKKysJCQkJYnJlYWs7CisrCQkJCX0KKysJ CQl9CisrCQl9CS8qZHJhaW4JcmVwbHkgRklGTyovCisrCX0KKysJaWYoIShvdXRib3VuZF9p bnRzdGF0dXMJJiBBUkNNU1JfTVVfT1VUQk9VTkRfSEFORExFX0lOVCkpCisrCXsKKysJCS8q aXQgbXVzdCBiZSBzaGFyZSBpcnEqLworKwkJI2lmIEFSQ01TUl9ERUJVRworKwkJcHJpbnRr KCJhcmNtc3JfaW50ZXJydXB0Li4uLi4uLi4uLkZBTFNFLi4uLi4uLi4uLi4uLi4uLi4uLi5z aGFyZSBpcnEuLi4uLlxuIik7CisrCQkjZW5kaWYKKysJCSNpZiBMSU5VWF9WRVJTSU9OX0NP REUgPj0gS0VSTkVMX1ZFUlNJT04oMiw1LDApCisrCSAgICByZXR1cm4gSVJRX05PTkU7Cisr CQkjZWxzZQorKwkgICAgcmV0dXJuOworKwkJI2VuZGlmCisrCX0KKysjaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNSwwKQorKwlyZXR1cm4gSVJRX0hBTkRM RUQ7CisrI2Vsc2UKKysJcmV0dXJuOworKyNlbmRpZgorK30KKysvKgorKyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKytzdGF0 aWMgdm9pZCBhcmNtc3JfaW9wX3Bhcmtpbmcoc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sg KmFjYikKKyt7CisrCWlmKGFjYikKKysJeworKwkJLyogc3RvcAlhZGFwdGVyCWJhY2tncm91 bmQgcmVidWlsZCAqLworKwkJaWYoYWNiLT5hY2JfZmxhZ3MgJiBBQ0JfRl9NU0dfU1RBUlRf QkdSQikKKysJCXsKKysJCQlhY2ItPmFjYl9mbGFncyAmPSB+QUNCX0ZfTVNHX1NUQVJUX0JH UkI7CisrCQkJYXJjbXNyX3N0b3BfYWRhcHRlcl9iZ3JiKGFjYik7CisrCQkJYXJjbXNyX2Zs dXNoX2FkYXB0ZXJfY2FjaGUoYWNiKTsKKysJCX0KKysJfQorK30KKysvKgorKyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrc3RhdGljIGludCBhcmNt c3JfaW9wX21lc3NhZ2VfeGZlcihzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiLCBz dHJ1Y3Qgc2NzaV9jbW5kICpjbWQpCisreworKwlzdHJ1Y3QgTWVzc2FnZVVuaXQgX19pb21l bSAqcmVnCT0gYWNiLT5wbXU7CisrCXN0cnVjdCBDTURfTUVTU0FHRV9GSUVMRCAqcGNtZG1l c3NhZ2VmbGQ7CisrCWludCByZXR2YWx1ZSA9IDAsIHRyYW5zZmVyX2xlbiA9IDA7CisrCWNo YXIgKmJ1ZmZlcjsKKysJdWludDMyX3QgY29udHJvbGNvZGUgPSAodWludDMyX3QgKSBjbWQt PmNtbmRbNV0JPDwgMjQgfAkKKysJCQkJCQkodWludDMyX3QgKSBjbWQtPmNtbmRbNl0gPDwg MTYgfCAKKysJCQkJCQkodWludDMyX3QgKSBjbWQtPmNtbmRbN10gPDwgOCAgfAorKwkJCQkJ CSh1aW50MzJfdCApIGNtZC0+Y21uZFs4XTsgCisrCQkJCQkvKiA0IGJ5dGVzOiBBcmVjYSBp byBjb250cm9sIGNvZGUgKi8KKysJaWYgKGNtZC0+dXNlX3NnKSB7CisrCQlzdHJ1Y3Qgc2Nh dHRlcmxpc3QgKnNnID0gKHN0cnVjdCBzY2F0dGVybGlzdCAqKWNtZC0+cmVxdWVzdF9idWZm ZXI7CisrCisrCQkjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIs NSwwKQorKwkJYnVmZmVyID0ga21hcF9hdG9taWMoc2ctPnBhZ2UsIEtNX0lSUTApCSsgc2ct Pm9mZnNldDsKKysJCSNlbHNlCisrCQlidWZmZXIgPSBzZy0+YWRkcmVzczsKKysJCSNlbmRp ZgorKwkJaWYgKGNtZC0+dXNlX3NnCT4gMSkgeworKwkJCXJldHZhbHVlID0gQVJDTVNSX01F U1NBR0VfRkFJTDsKKysJCQlnb3RvIG1lc3NhZ2Vfb3V0OworKwkJfQorKwkJdHJhbnNmZXJf bGVuICs9CXNnLT5sZW5ndGg7CisrCX0gZWxzZSB7CisrCQlidWZmZXIgPSBjbWQtPnJlcXVl c3RfYnVmZmVyOworKwkJdHJhbnNmZXJfbGVuID0gY21kLT5yZXF1ZXN0X2J1ZmZsZW47Cisr CX0KKysJaWYgKHRyYW5zZmVyX2xlbiA+IHNpemVvZihzdHJ1Y3QgQ01EX01FU1NBR0VfRklF TEQpKSB7CisrCQlyZXR2YWx1ZSA9IEFSQ01TUl9NRVNTQUdFX0ZBSUw7CisrCQlnb3RvIG1l c3NhZ2Vfb3V0OworKwl9CisrCXBjbWRtZXNzYWdlZmxkID0gKHN0cnVjdCBDTURfTUVTU0FH RV9GSUVMRCAqKSBidWZmZXI7CisrCXN3aXRjaChjb250cm9sY29kZSkgeworKwljYXNlIEFS Q01TUl9NRVNTQUdFX1JFQURfUlFCVUZGRVI6IHsKKysJCQl1bnNpZ25lZCBsb25nICp2ZXJf YWRkcjsKKysJCQlkbWFfYWRkcl90IGJ1Zl9oYW5kbGU7CisrCQkJdWludDhfdAkqcFFidWZm ZXIsICpwdG1wUWJ1ZmZlcjsKKysJCQlpbnQzMl90CWFsbHhmZXJfbGVuID0gMDsKKysJCisr CQkJdmVyX2FkZHIgPSBwY2lfYWxsb2NfY29uc2lzdGVudChhY2ItPnBkZXYsIDEwMzIsICZi dWZfaGFuZGxlKTsKKysJCQlpZiAoIXZlcl9hZGRyKSB7CisrCQkJCXJldHZhbHVlID0gQVJD TVNSX01FU1NBR0VfRkFJTDsKKysJCQkJZ290byBtZXNzYWdlX291dDsKKysJCQl9CisrCQkJ cHRtcFFidWZmZXIgPSAodWludDhfdCAqKSB2ZXJfYWRkcjsKKysJCQl3aGlsZSAoKGFjYi0+ cnFidWZfZmlyc3RpbmRleCAhPSBhY2ItPnJxYnVmX2xhc3RpbmRleCkKKysJCQkJJiYgKGFs bHhmZXJfbGVuCTwgMTAzMSkpIHsKKysJCQkJcFFidWZmZXIgPSAmYWNiLT5ycWJ1ZmZlclth Y2ItPnJxYnVmX2ZpcnN0aW5kZXhdOworKwkJCQltZW1jcHkocHRtcFFidWZmZXIsIHBRYnVm ZmVyLCAxKTsKKysJCQkJYWNiLT5ycWJ1Zl9maXJzdGluZGV4Kys7CisrCQkJCWFjYi0+cnFi dWZfZmlyc3RpbmRleCAlPSBBUkNNU1JfTUFYX1FCVUZGRVI7CisrCQkJCXB0bXBRYnVmZmVy Kys7CisrCQkJCWFsbHhmZXJfbGVuKys7CisrCQkJfQorKwkJCWlmIChhY2ItPmFjYl9mbGFn cyAmIEFDQl9GX0lPUERBVEFfT1ZFUkZMT1cpIHsKKysJCQkJc3RydWN0IFFCVUZGRVIgX19p b21lbSAqIHByYnVmZmVyID0gKHN0cnVjdCBRQlVGRkVSIF9faW9tZW0gKikKKysJCQkJCQkJ JnJlZy0+bWVzc2FnZV9yYnVmZmVyOworKwkJCQl1aW50OF90CV9faW9tZW0JKiBpb3BfZGF0 YSA9ICh1aW50OF90IF9faW9tZW0gKilwcmJ1ZmZlci0+ZGF0YTsKKysJCQkJaW50MzJfdAlp b3BfbGVuOworKwkKKysJCQkJYWNiLT5hY2JfZmxhZ3MgJj0gfkFDQl9GX0lPUERBVEFfT1ZF UkZMT1c7CisrCQkJCWlvcF9sZW4JPSByZWFkbCgmcHJidWZmZXItPmRhdGFfbGVuKTsKKysJ CQkJd2hpbGUgKGlvcF9sZW4gPiAwKSB7CisrCQkJCQlhY2ItPnJxYnVmZmVyW2FjYi0+cnFi dWZfbGFzdGluZGV4XSA9IHJlYWRiKGlvcF9kYXRhKTsKKysJCQkJCWFjYi0+cnFidWZfbGFz dGluZGV4Kys7CisrCQkJCQlhY2ItPnJxYnVmX2xhc3RpbmRleCAlPQlBUkNNU1JfTUFYX1FC VUZGRVI7CisrCQkJCQlpb3BfZGF0YSsrOworKwkJCQkJaW9wX2xlbi0tOworKwkJCQl9Cisr CQkJCXdyaXRlbChBUkNNU1JfSU5CT1VORF9EUklWRVJfREFUQV9SRUFEX09LLAorKwkJCQkJ CSZyZWctPmluYm91bmRfZG9vcmJlbGwpOworKwkJCX0KKysJCQltZW1jcHkocGNtZG1lc3Nh Z2VmbGQtPm1lc3NhZ2VkYXRhYnVmZmVyLAorKwkJCQkodWludDhfdCAqKXZlcl9hZGRyLCBh bGx4ZmVyX2xlbik7CisrCQkJcGNtZG1lc3NhZ2VmbGQtPmNtZG1lc3NhZ2UuTGVuZ3RoID0g YWxseGZlcl9sZW47CisrCQkJcGNtZG1lc3NhZ2VmbGQtPmNtZG1lc3NhZ2UuUmV0dXJuQ29k ZSA9CUFSQ01TUl9NRVNTQUdFX1JFVFVSTkNPREVfT0s7CisrCQkJcGNpX2ZyZWVfY29uc2lz dGVudChhY2ItPnBkZXYsIDEwMzIsIHZlcl9hZGRyLCBidWZfaGFuZGxlKTsKKysJCX0KKysJ CWJyZWFrOworKwljYXNlIEFSQ01TUl9NRVNTQUdFX1dSSVRFX1dRQlVGRkVSOiB7CisrCQkJ dW5zaWduZWQgbG9uZyAqdmVyX2FkZHI7CisrCQkJZG1hX2FkZHJfdCBidWZfaGFuZGxlOwor KwkJCWludDMyX3QJbXlfZW1wdHlfbGVuLCB1c2VyX2xlbiwJd3FidWZfZmlyc3RpbmRleCwg d3FidWZfbGFzdGluZGV4OworKwkJCXVpbnQ4X3QJKnBRYnVmZmVyLCAqcHRtcHVzZXJidWZm ZXI7CisrCQorKwkJCXZlcl9hZGRyID0gcGNpX2FsbG9jX2NvbnNpc3RlbnQoYWNiLT5wZGV2 LCAxMDMyLCAmYnVmX2hhbmRsZSk7CisrCQkJaWYgKCF2ZXJfYWRkcikgeworKwkJCQlyZXR2 YWx1ZSA9IEFSQ01TUl9NRVNTQUdFX0ZBSUw7CisrCQkJCWdvdG8gbWVzc2FnZV9vdXQ7Cisr CQkJfQorKwkJCXB0bXB1c2VyYnVmZmVyID0gKHVpbnQ4X3QgKil2ZXJfYWRkcjsKKysJCQl1 c2VyX2xlbiA9IHBjbWRtZXNzYWdlZmxkLT5jbWRtZXNzYWdlLkxlbmd0aDsKKysJCQltZW1j cHkocHRtcHVzZXJidWZmZXIsIHBjbWRtZXNzYWdlZmxkLT5tZXNzYWdlZGF0YWJ1ZmZlciwg dXNlcl9sZW4pOworKwkJCXdxYnVmX2xhc3RpbmRleAk9IGFjYi0+d3FidWZfbGFzdGluZGV4 OworKwkJCXdxYnVmX2ZpcnN0aW5kZXggPSBhY2ItPndxYnVmX2ZpcnN0aW5kZXg7CisrCQkJ aWYgKHdxYnVmX2xhc3RpbmRleCAhPSB3cWJ1Zl9maXJzdGluZGV4KSB7CisrCQkJCWFyY21z cl9wb3N0X1FidWZmZXIoYWNiKTsKKysJCQkJLyogaGFzIGVycm9yIHJlcG9ydCBzZW5zZWRh dGEgKi8KKysJCQkJY21kLT5zZW5zZV9idWZmZXJbMF0gPSAoMHgxIDw8IDcgfCAweDcwKTsg LyogVmFsaWQsRXJyb3JDb2RlICovCisrCQkJCWNtZC0+c2Vuc2VfYnVmZmVyWzJdID0gSUxM RUdBTF9SRVFVRVNUOwkvKiBGaWxlTWFyayxFbmRPZk1lZGlhLEluY29ycmVjdExlbmd0aCxS ZXNlcnZlZCxTZW5zZUtleSAqLworKwkJCQljbWQtPnNlbnNlX2J1ZmZlcls3XSA9IDB4MEE7 IC8qCUFkZGl0aW9uYWxTZW5zZUxlbmd0aCAqLworKwkJCQljbWQtPnNlbnNlX2J1ZmZlclsx Ml0gPQkweDIwOyAvKiBBZGRpdGlvbmFsU2Vuc2VDb2RlICovCisrCQkJCXJldHZhbHVlID0g QVJDTVNSX01FU1NBR0VfRkFJTDsKKysJCQl9IGVsc2UgeworKwkJCQlteV9lbXB0eV9sZW4g PSAod3FidWZfZmlyc3RpbmRleC13cWJ1Zl9sYXN0aW5kZXggLSAxKQorKwkJCQkJCSYoQVJD TVNSX01BWF9RQlVGRkVSIC0gMSk7CisrCQkJCWlmIChteV9lbXB0eV9sZW4gPj0gdXNlcl9s ZW4pIHsKKysJCQkJCXdoaWxlICh1c2VyX2xlbgk+IDApIHsKKysJCQkJCQlwUWJ1ZmZlciA9 CisrCQkJCQkJJmFjYi0+d3FidWZmZXJbYWNiLT53cWJ1Zl9sYXN0aW5kZXhdOworKwkJCQkJ CW1lbWNweShwUWJ1ZmZlciwgcHRtcHVzZXJidWZmZXIsIDEpOworKwkJCQkJCWFjYi0+d3Fi dWZfbGFzdGluZGV4Kys7CisrCQkJCQkJYWNiLT53cWJ1Zl9sYXN0aW5kZXggJT0JQVJDTVNS X01BWF9RQlVGRkVSOworKwkJCQkJCXB0bXB1c2VyYnVmZmVyKys7CisrCQkJCQkJdXNlcl9s ZW4tLTsKKysJCQkJCX0KKysJCQkJCWlmIChhY2ItPmFjYl9mbGFncyAmIEFDQl9GX01FU1NB R0VfV1FCVUZGRVJfQ0xFQVJFRCkgeworKwkJCQkJCWFjYi0+YWNiX2ZsYWdzICY9CisrCQkJ CQkJCX5BQ0JfRl9NRVNTQUdFX1dRQlVGRkVSX0NMRUFSRUQ7CisrCQkJCQkJYXJjbXNyX3Bv c3RfUWJ1ZmZlcihhY2IpOworKwkJCQkJfQorKwkJCQl9IGVsc2UgeworKwkJCQkJLyogaGFz IGVycm9yIHJlcG9ydCBzZW5zZWRhdGEgKi8KKysJCQkJCWNtZC0+c2Vuc2VfYnVmZmVyWzBd ID0gKDB4MSA8PCA3IHwgMHg3MCk7IC8qIFZhbGlkLEVycm9yQ29kZSAqLworKwkJCQkJY21k LT5zZW5zZV9idWZmZXJbMl0gPSBJTExFR0FMX1JFUVVFU1Q7CS8qIEZpbGVNYXJrLEVuZE9m TWVkaWEsSW5jb3JyZWN0TGVuZ3RoLFJlc2VydmVkLFNlbnNlS2V5ICovCisrCQkJCQljbWQt PnNlbnNlX2J1ZmZlcls3XSA9IDB4MEE7IC8qCUFkZGl0aW9uYWxTZW5zZUxlbmd0aCAqLwor KwkJCQkJY21kLT5zZW5zZV9idWZmZXJbMTJdID0JMHgyMDsgLyogQWRkaXRpb25hbFNlbnNl Q29kZSAqLworKwkJCQkJcmV0dmFsdWUgPSBBUkNNU1JfTUVTU0FHRV9GQUlMOworKwkJCQl9 CisrCQkJfQorKwkJCXBjaV9mcmVlX2NvbnNpc3RlbnQoYWNiLT5wZGV2LCAxMDMyLCB2ZXJf YWRkciwgYnVmX2hhbmRsZSk7CisrCQl9CisrCQlicmVhazsKKysJY2FzZSBBUkNNU1JfTUVT U0FHRV9DTEVBUl9SUUJVRkZFUjogeworKwkJCXVpbnQ4X3QJKnBRYnVmZmVyID0gYWNiLT5y cWJ1ZmZlcjsKKysJCisrCQkJaWYgKGFjYi0+YWNiX2ZsYWdzICYgQUNCX0ZfSU9QREFUQV9P VkVSRkxPVykgeworKwkJCQlhY2ItPmFjYl9mbGFncyAmPSB+QUNCX0ZfSU9QREFUQV9PVkVS RkxPVzsKKysJCQkJd3JpdGVsKEFSQ01TUl9JTkJPVU5EX0RSSVZFUl9EQVRBX1JFQURfT0ss CisrCQkJCQkmcmVnLT5pbmJvdW5kX2Rvb3JiZWxsKTsKKysJCQl9CisrCQkJYWNiLT5hY2Jf ZmxhZ3MgfD0gQUNCX0ZfTUVTU0FHRV9SUUJVRkZFUl9DTEVBUkVEOworKwkJCWFjYi0+cnFi dWZfZmlyc3RpbmRleCA9CTA7CisrCQkJYWNiLT5ycWJ1Zl9sYXN0aW5kZXggPSAwOworKwkJ CW1lbXNldChwUWJ1ZmZlciwgMCwgQVJDTVNSX01BWF9RQlVGRkVSKTsKKysJCQlwY21kbWVz c2FnZWZsZC0+Y21kbWVzc2FnZS5SZXR1cm5Db2RlID0JQVJDTVNSX01FU1NBR0VfUkVUVVJO Q09ERV9PSzsKKysJCX0KKysJCWJyZWFrOworKwljYXNlIEFSQ01TUl9NRVNTQUdFX0NMRUFS X1dRQlVGRkVSOiB7CisrCQkJdWludDhfdAkqcFFidWZmZXIgPSBhY2ItPndxYnVmZmVyOwor KyAKKysJCQlpZiAoYWNiLT5hY2JfZmxhZ3MgJiBBQ0JfRl9JT1BEQVRBX09WRVJGTE9XKSB7 CisrCQkJCWFjYi0+YWNiX2ZsYWdzICY9IH5BQ0JfRl9JT1BEQVRBX09WRVJGTE9XOworKwkJ CQl3cml0ZWwoQVJDTVNSX0lOQk9VTkRfRFJJVkVSX0RBVEFfUkVBRF9PSworKwkJCQkJCSwg JnJlZy0+aW5ib3VuZF9kb29yYmVsbCk7CisrCQkJfQorKwkJCWFjYi0+YWNiX2ZsYWdzIHw9 CisrCQkJCShBQ0JfRl9NRVNTQUdFX1dRQlVGRkVSX0NMRUFSRUQJfCBBQ0JfRl9NRVNTQUdF X1dRQlVGRkVSX1JFQURFRCk7CisrCQkJYWNiLT53cWJ1Zl9maXJzdGluZGV4ID0JMDsKKysJ CQlhY2ItPndxYnVmX2xhc3RpbmRleCA9IDA7CisrCQkJbWVtc2V0KHBRYnVmZmVyLCAwLCBB UkNNU1JfTUFYX1FCVUZGRVIpOworKwkJCXBjbWRtZXNzYWdlZmxkLT5jbWRtZXNzYWdlLlJl dHVybkNvZGUgPQlBUkNNU1JfTUVTU0FHRV9SRVRVUk5DT0RFX09LOworKwkJfQorKwkJYnJl YWs7CisrCWNhc2UgQVJDTVNSX01FU1NBR0VfQ0xFQVJfQUxMUUJVRkZFUjogeworKwkJCXVp bnQ4X3QJKnBRYnVmZmVyOworKyAKKysJCQlpZiAoYWNiLT5hY2JfZmxhZ3MgJiBBQ0JfRl9J T1BEQVRBX09WRVJGTE9XKSB7CisrCQkJCWFjYi0+YWNiX2ZsYWdzICY9IH5BQ0JfRl9JT1BE QVRBX09WRVJGTE9XOworKwkJCQl3cml0ZWwoQVJDTVNSX0lOQk9VTkRfRFJJVkVSX0RBVEFf UkVBRF9PSworKwkJCQkJCSwgJnJlZy0+aW5ib3VuZF9kb29yYmVsbCk7CisrCQkJfQorKwkJ CWFjYi0+YWNiX2ZsYWdzIHw9CisrCQkJCShBQ0JfRl9NRVNTQUdFX1dRQlVGRkVSX0NMRUFS RUQKKysJCQkJfCBBQ0JfRl9NRVNTQUdFX1JRQlVGRkVSX0NMRUFSRUQKKysJCQkJfCBBQ0Jf Rl9NRVNTQUdFX1dRQlVGRkVSX1JFQURFRCk7CisrCQkJYWNiLT5ycWJ1Zl9maXJzdGluZGV4 ID0JMDsKKysJCQlhY2ItPnJxYnVmX2xhc3RpbmRleCA9IDA7CisrCQkJYWNiLT53cWJ1Zl9m aXJzdGluZGV4ID0JMDsKKysJCQlhY2ItPndxYnVmX2xhc3RpbmRleCA9IDA7CisrCQkJcFFi dWZmZXIgPSBhY2ItPnJxYnVmZmVyOworKwkJCW1lbXNldChwUWJ1ZmZlciwgMCwgc2l6ZW9m IChzdHJ1Y3QgUUJVRkZFUikpOworKwkJCXBRYnVmZmVyID0gYWNiLT53cWJ1ZmZlcjsKKysJ CQltZW1zZXQocFFidWZmZXIsIDAsIHNpemVvZiAoc3RydWN0IFFCVUZGRVIpKTsKKysJCQlw Y21kbWVzc2FnZWZsZC0+Y21kbWVzc2FnZS5SZXR1cm5Db2RlID0JQVJDTVNSX01FU1NBR0Vf UkVUVVJOQ09ERV9PSzsKKysJCX0KKysJCWJyZWFrOworKwljYXNlIEFSQ01TUl9NRVNTQUdF X1JFVFVSTl9DT0RFXzNGOiB7CisrCQkJcGNtZG1lc3NhZ2VmbGQtPmNtZG1lc3NhZ2UuUmV0 dXJuQ29kZSA9CUFSQ01TUl9NRVNTQUdFX1JFVFVSTkNPREVfM0Y7CisrCQl9CisrCQlicmVh azsKKysJY2FzZSBBUkNNU1JfTUVTU0FHRV9TQVlfSEVMTE86IHsKKysJCQlpbnQ4X3QgKiBo ZWxsb19zdHJpbmcgPQkiSGVsbG8hCUkgYW0gQVJDTVNSIjsKKysJCisrCQkJbWVtY3B5KHBj bWRtZXNzYWdlZmxkLT5tZXNzYWdlZGF0YWJ1ZmZlciwgaGVsbG9fc3RyaW5nCisrCQkJCSwg KGludDE2X3Qpc3RybGVuKGhlbGxvX3N0cmluZykpOworKwkJCXBjbWRtZXNzYWdlZmxkLT5j bWRtZXNzYWdlLlJldHVybkNvZGUgPQlBUkNNU1JfTUVTU0FHRV9SRVRVUk5DT0RFX09LOwor KwkJfQorKwkJYnJlYWs7CisrCWNhc2UgQVJDTVNSX01FU1NBR0VfU0FZX0dPT0RCWUU6Cisr CQlhcmNtc3JfaW9wX3BhcmtpbmcoYWNiKTsKKysJCWJyZWFrOworKwljYXNlIEFSQ01TUl9N RVNTQUdFX0ZMVVNIX0FEQVBURVJfQ0FDSEU6CisrCQlhcmNtc3JfZmx1c2hfYWRhcHRlcl9j YWNoZShhY2IpOworKwkJYnJlYWs7CisrCWRlZmF1bHQ6CisrCQlyZXR2YWx1ZSA9IEFSQ01T Ul9NRVNTQUdFX0ZBSUw7CisrCX0KKyttZXNzYWdlX291dDoKKysJI2lmIExJTlVYX1ZFUlNJ T05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDUsMCkKKysJaWYgKGNtZC0+dXNlX3NnKSB7 CisrCQlzdHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworKworKwkJc2cgPSAoc3RydWN0IHNjYXR0 ZXJsaXN0ICopIGNtZC0+cmVxdWVzdF9idWZmZXI7CisrCQlrdW5tYXBfYXRvbWljKGJ1ZmZl ciAtIHNnLT5vZmZzZXQsIEtNX0lSUTApOworKwl9CisrCSNlbmRpZgorKwlyZXR1cm4gcmV0 dmFsdWU7CisrfQorKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKyovCisrc3RhdGljIHN0cnVjdCBDb21tYW5kQ29udHJvbEJsb2NrICogYXJj bXNyX2dldF9mcmVlY2NiKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2IpCisrewor KwlzdHJ1Y3QgbGlzdF9oZWFkICpoZWFkID0gJmFjYi0+Y2NiX2ZyZWVfbGlzdDsKKysgICAg c3RydWN0IENvbW1hbmRDb250cm9sQmxvY2sgKmNjYj1OVUxMOworKworKwlpZiAoIWxpc3Rf ZW1wdHkoaGVhZCkpIAorKwl7CisrCQljY2IgPSBsaXN0X2VudHJ5KGhlYWQtPm5leHQsIHN0 cnVjdCBDb21tYW5kQ29udHJvbEJsb2NrLCBsaXN0KTsKKysJCWxpc3RfZGVsKGhlYWQtPm5l eHQpOworKwl9CisrCXJldHVybihjY2IpOworK30KKysvKgorKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKysqLworK2ludCBhcmNtc3JfcXVldWVfY29tbWFuZChz dHJ1Y3QJc2NzaV9jbW5kICpjbWQsdm9pZCAoKiBkb25lKShzdHJ1Y3Qgc2NzaV9jbW5kICop KQorK3sKKysgICAgc3RydWN0IFNjc2lfSG9zdCAqaG9zdCA9IGNtZC0+ZGV2aWNlLT5ob3N0 OworKwlzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiPShzdHJ1Y3QJQWRhcHRlckNv bnRyb2xCbG9jayAqKSBob3N0LT5ob3N0ZGF0YTsKKysgICAgc3RydWN0IENvbW1hbmRDb250 cm9sQmxvY2sgKmNjYjsKKysJaW50IHRhcmdldD1jbWQtPmRldmljZS0+aWQ7CisrCWludCBs dW49Y21kLT5kZXZpY2UtPmx1bjsKKysJdWludDhfdAlzY3NpY21kCT0gY21kLT5jbW5kWzBd OworKworKyAgICAjaWYJQVJDTVNSX0RFQlVHCisrICAgIHByaW50aygiYXJjbXNyX3F1ZXVl X2NvbW1hbmQ6Q21kPSUyeCxUYXJnZXRJZD0lZCxMdW49JWQgXG4iLHNjc2ljbWQsdGFyZ2V0 LGx1bik7CisrICAgICNlbmRpZgorKwljbWQtPnNjc2lfZG9uZT1kb25lOworKwljbWQtPmhv c3Rfc2NyaWJibGU9TlVMTDsKKysJY21kLT5yZXN1bHQ9MDsKKysgICAgLyogCisrCSoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysJKiogZW5s YXJnZSB0aGUgdGltZW91dCBkdXJhdGlvbglvZiBlYWNoCXNjc2kgY29tbWFuZCAKKysJKiog aXQgY291bGQgYXZpb2QgdGhlIHZpYnJhdGlvbglmYWN0b3IgCisrCSoqIHdpdGgJc2F0YSBk aXNrIG9uIHNvbWUgYmFkIG1hY2hpbmUgCisrCSoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKysJKi8KKysJaWYoc2NzaWNtZD09U1lOQ0hST05J WkVfQ0FDSEUpIAorKwl7CisrCQlpZihhY2ItPmRldnN0YXRlW3RhcmdldF1bbHVuXT09QVJF Q0FfUkFJRF9HT05FKQorKwkJeworKwkgICAgY21kLT5yZXN1bHQ9KERJRF9OT19DT05ORUNU CTw8IDE2KTsKKysJCX0KKysJCWNtZC0+c2NzaV9kb25lKGNtZCk7CisrCXJldHVybigwKTsK KysJfQorKwlpZiAoYWNiLT5hY2JfZmxhZ3MgJiBBQ0JfRl9CVVNfUkVTRVQpIHsKKysJCXBy aW50ayhLRVJOX05PVElDRSAiYXJjbXNyJWQ6IGJ1cyByZXNldCIKKysJCQkiIGFuZCByZXR1 cm4gYnVzeSBcbiIKKysJCQksIGFjYi0+aG9zdC0+aG9zdF9ubyk7CisrCQlyZXR1cm4gU0NT SV9NTFFVRVVFX0hPU1RfQlVTWTsKKysJfQorKwlpZih0YXJnZXQgPT0gMTYpIHsKKysJCS8q IHZpcnR1YWwgZGV2aWNlIGZvciBpb3AgbWVzc2FnZSB0cmFuc2ZlciAqLworKwkJc3dpdGNo KHNjc2ljbWQpCXsKKysJCWNhc2UgSU5RVUlSWTogeworKwkJCQl1bnNpZ25lZCBjaGFyIGlu cWRhdGFbMzZdOworKwkJCQljaGFyICpidWZmZXI7CisrCisrCQkJCWlmKGx1biAhPSAwKSB7 CisrCQkJCQljbWQtPnJlc3VsdCA9IChESURfVElNRV9PVVQgPDwgMTYpOworKwkJCQkJY21k LT5zY3NpX2RvbmUoY21kKTsKKysJCQkJCXJldHVybiAwOworKwkJCQl9CisrCQkJCWlucWRh dGFbMF0gPSBUWVBFX1BST0NFU1NPUjsgCisrCQkJCS8qIFBlcmlwaCBRdWFsaWZpZXIgJiBQ ZXJpcGggRGV2IFR5cGUgKi8KKysJCQkJaW5xZGF0YVsxXSA9IDA7CQorKwkJCQkvKiByZW0g bWVkaWEgYml0ICYgRGV2IFR5cGUgTW9kaWZpZXIgKi8KKysJCQkJaW5xZGF0YVsyXSA9IDA7 CQorKwkJCQkvKiBJU08sRUNNQSwmIEFOU0kgdmVyc2lvbnMgKi8KKysJCQkJaW5xZGF0YVs0 XSA9IDMxOyAKKysJCQkJLyogbGVuZ3RoIG9mIGFkZGl0aW9uYWwJZGF0YSAqLworKwkJCQlz dHJuY3B5KCZpbnFkYXRhWzhdLCAiQXJlY2EgICAiLCA4KTsgCisrCQkJCS8qIFZlbmRvciBJ ZGVudGlmaWNhdGlvbiAqLworKwkJCQlzdHJuY3B5KCZpbnFkYXRhWzE2XSwgIlJBSUQgY29u dHJvbGxlciAiLCAxNik7CisrCQkJCS8qIFByb2R1Y3QgSWRlbnRpZmljYXRpb24gKi8KKysJ CQkJc3RybmNweSgmaW5xZGF0YVszMl0sICJSMDAxIiwgNCk7IC8qIFByb2R1Y3QgUmV2aXNp b24gKi8KKysJCQkJaWYgKGNtZC0+dXNlX3NnKSB7CisrCQkJCQlzdHJ1Y3Qgc2NhdHRlcmxp c3QgKnNnOworKworKwkJCQkJc2cgPSAoc3RydWN0IHNjYXR0ZXJsaXN0ICopIGNtZC0+cmVx dWVzdF9idWZmZXI7CisrCQkJCQkjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9W RVJTSU9OKDIsNSwwKQorKwkJCQkJYnVmZmVyID0ga21hcF9hdG9taWMoc2ctPnBhZ2UsIEtN X0lSUTApCSsgc2ctPm9mZnNldDsKKysJCQkJCSNlbHNlCisrCQkJCQlidWZmZXIgPSBzZy0+ YWRkcmVzczsKKysJCQkJCSNlbmRpZgorKwkJCQl9IGVsc2UgeworKwkJCQkJYnVmZmVyID0g Y21kLT5yZXF1ZXN0X2J1ZmZlcjsKKysJCQkJfQorKwkJCQltZW1jcHkoYnVmZmVyLCBpbnFk YXRhLAlzaXplb2YoaW5xZGF0YSkpOworKwkJCQkjaWYgTElOVVhfVkVSU0lPTl9DT0RFID49 IEtFUk5FTF9WRVJTSU9OKDIsNSwwKQorKwkJCQlpZiAoY21kLT51c2Vfc2cpIHsKKysJCQkJ CXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CisrCisrCQkJCQlzZyA9IChzdHJ1Y3Qgc2NhdHRl cmxpc3QgKikgY21kLT5yZXF1ZXN0X2J1ZmZlcjsKKysJCQkJCWt1bm1hcF9hdG9taWMoYnVm ZmVyIC0gc2ctPm9mZnNldCwgS01fSVJRMCk7CisrCQkJCX0KKysJCQkJI2VuZGlmCisrCQkJ CWNtZC0+c2NzaV9kb25lKGNtZCk7CisrCQkJCXJldHVybiAwOworKwkJCX0KKysJCWNhc2Ug V1JJVEVfQlVGRkVSOgorKwkJY2FzZSBSRUFEX0JVRkZFUjogeworKwkJCQlpZiAoYXJjbXNy X2lvcF9tZXNzYWdlX3hmZXIoYWNiLCBjbWQpKSB7CisrCQkJCQljbWQtPnJlc3VsdCA9IChE SURfRVJST1IgPDwgMTYpOworKwkJCQl9CisrCQkJCWNtZC0+c2NzaV9kb25lKGNtZCk7Cisr CQkJCXJldHVybiAwOworKwkJCX0KKysJCWRlZmF1bHQ6CisrCQkJY21kLT5zY3NpX2RvbmUo Y21kKTsKKysJCQlyZXR1cm4gMDsKKysJCX0KKysJfQorKwlpZihhY2ItPmRldnN0YXRlW3Rh cmdldF1bbHVuXT09QVJFQ0FfUkFJRF9HT05FKQorKwl7CisrCQl1aW50OF90CWJsb2NrX2Nt ZDsKKysKKysJYmxvY2tfY21kPXNjc2ljbWQgJiAweDBmOworKwkJaWYoYmxvY2tfY21kPT0w eDA4IHx8IGJsb2NrX2NtZD09MHgwYSkKKysJCXsKKysJCQlwcmludGsoImFyY21zciVkOiBi bG9jawkncmVhZC93cml0ZScgY29tbWFuZCB3aXRoIGdvbmUgcmFpZCB2b2x1bWUgQ21kPSUy eCxUYXJnZXRJZD0lZCxMdW49JWQgXG4iLGFjYi0+YWRhcHRlcl9pbmRleCxzY3NpY21kLHRh cmdldCxsdW4pOworKwkJCWNtZC0+cmVzdWx0PShESURfTk9fQ09OTkVDVCA8PCAxNik7Cisr CQkJY21kLT5zY3NpX2RvbmUoY21kKTsKKysJCQlyZXR1cm4oMCk7CisrCQl9CisrCX0KKysJ aWYgKGF0b21pY19yZWFkKCZhY2ItPmNjYm91dHN0YW5kaW5nY291bnQpID49CisrCQkJQVJD TVNSX01BWF9PVVRTVEFORElOR19DTUQpCisrCQlyZXR1cm4gU0NTSV9NTFFVRVVFX0hPU1Rf QlVTWTsKKysKKysgICAgY2NiPWFyY21zcl9nZXRfZnJlZWNjYihhY2IpOworKwlpZiAoIWNj YikKKysJeworKwkJcmV0dXJuIFNDU0lfTUxRVUVVRV9IT1NUX0JVU1k7CisrCX0KKysJaWYo YXJjbXNyX2J1aWxkX2NjYihhY2IsIGNjYiwgY21kKT09RkFJTEVEKQorKwl7CisrCQljbWQt PnJlc3VsdD0oRElEX0VSUk9SIDw8IDE2KSB8CShSRVNFUlZBVElPTl9DT05GTElDVCA8PCAx KTsKKysJCWNtZC0+c2NzaV9kb25lKGNtZCk7CisrCQlyZXR1cm4oMCk7CisrCX0KKysJYXJj bXNyX3Bvc3RfY2NiKGFjYiwgY2NiKTsKKysJcmV0dXJuIDA7CisrfQorKy8qCisrKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqICBnZXQJZmlybXdhcmUgbWlzY2VsbGFuZW91cyBkYXRhCisrKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorKyovCisrc3RhdGljIHZvaWQgYXJjbXNyX2dldF9maXJtd2FyZV9z cGVjKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrCSphY2IpCisreworKyAgICBzdHJ1Y3Qg TWVzc2FnZVVuaXQgX19pb21lbSAqcmVnPWFjYi0+cG11OworKyAgICBjaGFyICphY2JfZmly bV9tb2RlbD1hY2ItPmZpcm1fbW9kZWw7CisrICAgIGNoYXIgKmFjYl9maXJtX3ZlcnNpb249 YWNiLT5maXJtX3ZlcnNpb247CisrICAgIGNoYXIgKmlvcF9maXJtX21vZGVsPShjaGFyICop ICgmcmVnLT5tZXNzYWdlX3J3YnVmZmVyWzE1XSk7CSAgLypmaXJtX21vZGVsLDE1LDYwLTY3 Ki8KKysgICAgY2hhciAqaW9wX2Zpcm1fdmVyc2lvbj0oY2hhciAqKSAoJnJlZy0+bWVzc2Fn ZV9yd2J1ZmZlclsxN10pOyAvKmZpcm1fdmVyc2lvbiwxNyw2OC04MyovCisrCWludCBjb3Vu dDsKKysKKysgICAgd3JpdGVsKEFSQ01TUl9JTkJPVU5EX01FU0cwX0dFVF9DT05GSUcsJnJl Zy0+aW5ib3VuZF9tc2dhZGRyMCk7CisrCWlmKGFyY21zcl93YWl0X21zZ2ludF9yZWFkeShh Y2IpKQorKwl7CisrCQlwcmludGsoImFyY21zciVkOiB3YWl0ICdnZXQgYWRhcHRlciBmaXJt d2FyZSBtaXNjZWxsYW5lb3VzIGRhdGEnIHRpbWVvdXQgXG4iLGFjYi0+YWRhcHRlcl9pbmRl eCk7CisrCX0KKysJY291bnQ9ODsKKysJd2hpbGUoY291bnQpCisrCXsKKysJKmFjYl9maXJt X21vZGVsPXJlYWRiKGlvcF9maXJtX21vZGVsKTsKKysJYWNiX2Zpcm1fbW9kZWwrKzsKKysJ CWlvcF9maXJtX21vZGVsKys7CisrCQljb3VudC0tOworKwl9CisrCWNvdW50PTE2OworKwl3 aGlsZShjb3VudCkKKysJeworKwkqYWNiX2Zpcm1fdmVyc2lvbj1yZWFkYihpb3BfZmlybV92 ZXJzaW9uKTsKKysJYWNiX2Zpcm1fdmVyc2lvbisrOworKwkJaW9wX2Zpcm1fdmVyc2lvbisr OworKwkJY291bnQtLTsKKysJfQorKwlwcmludGsoIkFSRUNBIFJBSUQgQURBUFRFUiVkOiBG SVJNV0FSRSBWRVJTSU9OICVzIFxuIixhY2ItPmFkYXB0ZXJfaW5kZXgsYWNiLT5maXJtX3Zl cnNpb24pOworKyAgICBhY2ItPmZpcm1fcmVxdWVzdF9sZW49cmVhZGwoJnJlZy0+bWVzc2Fn ZV9yd2J1ZmZlclsxXSk7ICAgLypmaXJtX3JlcXVlc3RfbGVuLDEsMDQtMDcqLworKwlhY2It PmZpcm1fbnVtYmVyc19xdWV1ZT1yZWFkbCgmcmVnLT5tZXNzYWdlX3J3YnVmZmVyWzJdKTsg LypmaXJtX251bWJlcnNfcXVldWUsMiwwOC0xMSovCisrCWFjYi0+ZmlybV9zZHJhbV9zaXpl PXJlYWRsKCZyZWctPm1lc3NhZ2VfcndidWZmZXJbM10pOwkgIC8qZmlybV9zZHJhbV9zaXpl LDMsMTItMTUqLworKyAgICBhY2ItPmZpcm1faWRlX2NoYW5uZWxzPXJlYWRsKCZyZWctPm1l c3NhZ2VfcndidWZmZXJbNF0pOyAgLypmaXJtX2lkZV9jaGFubmVscyw0LDE2LTE5Ki8KKysJ cmV0dXJuOworK30KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgc3RhcnQgYmFja2dy b3VuZCByZWJ1bGlkCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrc3RhdGljIHZvaWQgYXJj bXNyX3N0YXJ0X2FkYXB0ZXJfYmdyYihzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNi KQorK3sKKysgICAgc3RydWN0IE1lc3NhZ2VVbml0IF9faW9tZW0gKnJlZz1hY2ItPnBtdTsK KysJI2lmIEFSQ01TUl9ERUJVRworKwlwcmludGsoImFyY21zcl9zdGFydF9hZGFwdGVyX2Jn cmIuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIFxuIik7CisrCSNlbmRpZgor KworKwlhY2ItPmFjYl9mbGFncyB8PSBBQ0JfRl9NU0dfU1RBUlRfQkdSQjsKKysgICAgd3Jp dGVsKEFSQ01TUl9JTkJPVU5EX01FU0cwX1NUQVJUX0JHUkIsJnJlZy0+aW5ib3VuZF9tc2dh ZGRyMCk7CisrCWlmKGFyY21zcl93YWl0X21zZ2ludF9yZWFkeShhY2IpKQorKwl7CisrCQlw cmludGsoImFyY21zciVkOiB3YWl0ICdzdGFydCBhZGFwdGVyIGJhY2tncm91bmQgcmVidWxp ZCcgdGltZW91dCBcbiIsYWNiLT5hZGFwdGVyX2luZGV4KTsKKysJfQorKwlyZXR1cm47Cisr fQorKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0 YXRpYyB2b2lkIGFyY21zcl9wb2xsaW5nX2NjYmRvbmUoc3RydWN0IEFkYXB0ZXJDb250cm9s QmxvY2sgKmFjYikKKyt7CisrICAgIHN0cnVjdCBNZXNzYWdlVW5pdCBfX2lvbWVtICpyZWc9 YWNiLT5wbXU7CisrCXN0cnVjdCBDb21tYW5kQ29udHJvbEJsb2NrICpjY2I7CisrCXVpbnQz Ml90IGZsYWdfY2NiLG91dGJvdW5kX2ludHN0YXR1cyxwb2xsX2NjYl9kb25lPTAscG9sbF9j b3VudD0wOworKwlpbnQgaWQsbHVuOworKworKwkjaWYgQVJDTVNSX0RFQlVHCisrCXByaW50 aygiYXJjbXNyX3BvbGxpbmdfY2NiZG9uZS4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u Li4uLi4gXG4iKTsKKysJI2VuZGlmCisrICAgICAgIHBvbGxpbmdfY2NiX3JldHJ5OgorKwlw b2xsX2NvdW50Kys7CisrCW91dGJvdW5kX2ludHN0YXR1cz1yZWFkbCgmcmVnLT5vdXRib3Vu ZF9pbnRzdGF0dXMpICYgYWNiLT5vdXRib3VuZF9pbnRfZW5hYmxlOworKwl3cml0ZWwob3V0 Ym91bmRfaW50c3RhdHVzLCZyZWctPm91dGJvdW5kX2ludHN0YXR1cyk7LypjbGVhciBpbnRl cnJ1cHQqLworKwl3aGlsZSgxKQorKwl7CisrCQlpZigoZmxhZ19jY2I9cmVhZGwoJnJlZy0+ b3V0Ym91bmRfcXVldWVwb3J0KSk9PTB4RkZGRkZGRkYpCisrCQl7CisrCQkJaWYocG9sbF9j Y2JfZG9uZSkKKysJCQl7CisrCQkJCWJyZWFrOy8qY2hpcCBGSUZPIG5vIGNjYiBmb3IgY29t cGxldGlvbiBhbHJlYWR5Ki8KKysJCQl9CisrCQkJZWxzZQorKwkJCXsKKysJCQkJYXJjX21k ZWxheSgyNSk7CisrCQkJCWlmKHBvbGxfY291bnQgPjEwMCkKKysJCQkJeworKwkJICAgIAkJ CSBicmVhazsKKysJCQkJfQorKwkJCQlnb3RvIHBvbGxpbmdfY2NiX3JldHJ5OworKwkJCX0K KysJCX0KKysJCS8qIGNoZWNrIGlmIGNvbW1hbmQgZG9uZSB3aXRoIG5vIGVycm9yKi8KKysJ CWNjYj0oc3RydWN0IENvbW1hbmRDb250cm9sQmxvY2sgKikoYWNiLT52aXIycGh5X29mZnNl dCsoZmxhZ19jY2IgPDwgNSkpOy8qZnJhbWUgbXVzdCBiZQkzMiBieXRlcyBhbGlnbmVkKi8K KysJCWlmKChjY2ItPmFjYiE9YWNiKSB8fCAoY2NiLT5zdGFydGRvbmUhPUFSQ01TUl9DQ0Jf U1RBUlQpKQorKwkJeworKwkJCWlmKGNjYi0+c3RhcnRkb25lPT1BUkNNU1JfQ0NCX0FCT1JU RUQpCisrCQkJeworKwkJCQlpZD1jY2ItPnBjbWQtPmRldmljZS0+aWQ7CisrCQkJCWx1bj1j Y2ItPnBjbWQtPmRldmljZS0+bHVuOworKwkJCXByaW50aygiYXJjbXNyJWQ6IHNjc2kgaWQ9 JWQgbHVuPSVkIGNjYj0nMHglcCcgcG9sbCBjb21tYW5kIGFib3J0IHN1Y2Nlc3NmdWxseSBc biIsYWNiLT5hZGFwdGVyX2luZGV4LGlkLGx1bixjY2IpOworKwkJCQlpZihhY2ItPmRldl9h Ym9ydHNbaWRdW2x1bl0gPj0gNCkKKysJCQkJeworKwkJCQkJYWNiLT5kZXZzdGF0ZVtpZF1b bHVuXT1BUkVDQV9SQUlEX0dPTkU7CisrCQkJCQljY2ItPnBjbWQtPnJlc3VsdCA9IERJRF9O T19DT05ORUNUIDw8IDE2OworKwkJCQl9CisrCQkJCWNjYi0+cGNtZC0+cmVzdWx0IHw9IERJ RF9BQk9SVCA8PCAxNjsKKysJCQkJYXJjbXNyX2NjYl9jb21wbGV0ZShjY2IsMSk7CisrCQkJ CXBvbGxfY2NiX2RvbmU9MTsKKysJCQkJY29udGludWU7CisrCQkJfQorKwkJICAgIHByaW50 aygiYXJjbXNyJWQ6IHBvbGxpbmcgZ2V0IGFuIGlsbGVnYWwgY2NiIGNvbW1hbmQgZG9uZSBj Y2I9JzB4JXAnIGNjYm91dHN0YW5kaW5nY291bnQ9JWQJXG4iLGFjYi0+YWRhcHRlcl9pbmRl eCxjY2IsYXRvbWljX3JlYWQoJmFjYi0+Y2Nib3V0c3RhbmRpbmdjb3VudCkpOworKwkJCWNv bnRpbnVlOworKwkJfQorKwkJaWQ9Y2NiLT5wY21kLT5kZXZpY2UtPmlkOworKwkJbHVuPWNj Yi0+cGNtZC0+ZGV2aWNlLT5sdW47CisrCQlpZigoZmxhZ19jY2IgJiBBUkNNU1JfQ0NCUkVQ TFlfRkxBR19FUlJPUik9PTApCisrCQl7CisrCQkJaWYoYWNiLT5kZXZzdGF0ZVtpZF1bbHVu XT09QVJFQ0FfUkFJRF9HT05FKQorKwkJCXsKKysJCWFjYi0+ZGV2c3RhdGVbaWRdW2x1bl09 QVJFQ0FfUkFJRF9HT09EOworKwkJCX0KKysJCQljY2ItPnBjbWQtPnJlc3VsdD1ESURfT0sg PDwgMTY7CisrCQkJYXJjbXNyX2NjYl9jb21wbGV0ZShjY2IsMSk7CisrCQl9IAorKwkJZWxz ZSAKKysJCXsgICAKKysJCQlzd2l0Y2goY2NiLT5hcmNtc3JfY2RiLkRldmljZVN0YXR1cykK KysJCQl7CisrCQkJY2FzZSBBUkNNU1JfREVWX1NFTEVDVF9USU1FT1VUOgorKwkJCQl7Cisr CQkJCQlhY2ItPmRldnN0YXRlW2lkXVtsdW5dPUFSRUNBX1JBSURfR09ORTsKKysJCQkJCWNj Yi0+cGNtZC0+cmVzdWx0PURJRF9OT19DT05ORUNUPDwgMTY7CisrCQkJCQlhcmNtc3JfY2Ni X2NvbXBsZXRlKGNjYiwxKTsKKysJCQkJfQorKwkJCQlicmVhazsKKysJCQljYXNlIEFSQ01T Ul9ERVZfQUJPUlRFRDoKKysJCQljYXNlIEFSQ01TUl9ERVZfSU5JVF9GQUlMOgorKwkJCQl7 CisrCQkJCSAgICBhY2ItPmRldnN0YXRlW2lkXVtsdW5dPUFSRUNBX1JBSURfR09ORTsKKysJ CQkJCWNjYi0+cGNtZC0+cmVzdWx0PURJRF9CQURfVEFSR0VUIDw8IDE2OworKwkJCQkJYXJj bXNyX2NjYl9jb21wbGV0ZShjY2IsMSk7CisrCQkJCX0KKysJCQkJYnJlYWs7CisrCQkJY2Fz ZSBTQ1NJU1RBVF9DSEVDS19DT05ESVRJT046CisrCQkJCXsKKysJCQkJICAgIGFjYi0+ZGV2 c3RhdGVbaWRdW2x1bl09QVJFQ0FfUkFJRF9HT09EOworKwkJCQlhcmNtc3JfcmVwb3J0X3Nl bnNlX2luZm8oY2NiKTsKKysJCQkJCWFyY21zcl9jY2JfY29tcGxldGUoY2NiLDEpOworKwkJ CQl9CisrCQkJCWJyZWFrOworKwkJCWRlZmF1bHQ6CisrCQkJCS8qIGVycm9yIG9jY3VyIFEg YWxsIGVycm9yIGNjYiB0byBlcnJvcmNjYnBlbmRpbmcgUSovCisrCQkJCXByaW50aygiYXJj bXNyJWQ6IHNjc2kgaWQ9JWQgbHVuPSVkIHBvbGxpbmcgYW5kCWdldHRpbmcJY29tbWFuZAll cnJvciBkb25lLCBidXQJZ290IHVua25vdyBEZXZpY2VTdGF0dXM9MHgleCBcbiIsYWNiLT5h ZGFwdGVyX2luZGV4LGlkLGx1bixjY2ItPmFyY21zcl9jZGIuRGV2aWNlU3RhdHVzKTsKKysJ CQkJYWNiLT5kZXZzdGF0ZVtpZF1bbHVuXT1BUkVDQV9SQUlEX0dPTkU7CisrCQkJCWNjYi0+ cGNtZC0+cmVzdWx0PURJRF9CQURfVEFSR0VUIDw8IDE2Oy8qdW5rbm93CWVycm9yIG9yIGNy YyBlcnJvciBqdXN0CWZvciByZXRyeSovCisrCQkJCWFyY21zcl9jY2JfY29tcGxldGUoY2Ni LDEpOworKwkJCQlicmVhazsKKysJCQl9CisrCQl9CisrCX0JLypkcmFpbglyZXBseSBGSUZP Ki8KKysJcmV0dXJuOworK30KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrKi8KKytzdGF0aWMgdm9pZCBhcmNtc3JfZG9uZTRfYWJvcnRfcG9zdHF1ZXVl KHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2IpCisreworKwlpbnQgaT0wLGZvdW5k PTA7CQorKwlpbnQgaWQsIGx1bjsJCisrCXVpbnQzMl90IGZsYWdfY2NiLG91dGJvdW5kX2lu dHN0YXR1czsJCisrCXN0cnVjdCBNZXNzYWdlVW5pdCBfX2lvbWVtICpyZWcgPSBhY2ItPnBt dTsJCisrCXN0cnVjdCBDb21tYW5kQ29udHJvbEJsb2NrICpjY2I7CS8qY2xlYXIgYW5kIGFi b3J0IGFsbCBvdXRib3VuZCBwb3N0ZWQgUSovCisrCQorKwl3aGlsZSgoKGZsYWdfY2NiPXJl YWRsKCZyZWctPm91dGJvdW5kX3F1ZXVlcG9ydCkpICE9IDB4RkZGRkZGRkYpICYmIChpKysg PCAyNTYpKXsJCQkKKysJCWNjYiA9IChzdHJ1Y3QgQ29tbWFuZENvbnRyb2xCbG9jayAqKShh Y2ItPnZpcjJwaHlfb2Zmc2V0ICsgKGZsYWdfY2NiIDw8IDUpKTsKKysJCWlmKGNjYil7Cisr CQkJaWYgKChjY2ItPmFjYiAhPSBhY2IpfHwoY2NiLT5zdGFydGRvbmUgIT0gQVJDTVNSX0ND Ql9TVEFSVCkpeworKwkJCQlwcmludGsoS0VSTl9OT1RJQ0UgCisrCQkJCQkiYXJjbXNyJWQ6 IHBvbGxpbmcgZ2V0IGFuIGlsbGVnYWwgY2NiIgorKwkJCQkJIiBjb21tYW5kIGRvbmUgY2Ni PScweCVwJyIJCQorKwkJCQkJImNjYm91dHN0YW5kaW5nY291bnQ9JWQgXG4iLCAJCQkKKysJ CQkJCWFjYi0+aG9zdC0+aG9zdF9ubywgCisrCQkJCQljY2IsIAorKwkJCQkJYXRvbWljX3Jl YWQoJmFjYi0+Y2Nib3V0c3RhbmRpbmdjb3VudCkpOwkKKysJCQkJY29udGludWU7CisrCQkJ fQorKworKwkJCWlkID0gY2NiLT5wY21kLT5kZXZpY2UtPmlkOworKwkJCWx1biA9IGNjYi0+ cGNtZC0+ZGV2aWNlLT5sdW47CQorKwkJCWlmICghKGZsYWdfY2NiICYgQVJDTVNSX0NDQlJF UExZX0ZMQUdfRVJST1IpKQl7CisrCQkJCWlmIChhY2ItPmRldnN0YXRlW2lkXVtsdW5dID09 IEFSRUNBX1JBSURfR09ORSkKKysJCQkJCWFjYi0+ZGV2c3RhdGVbaWRdW2x1bl0gPSBBUkVD QV9SQUlEX0dPT0Q7CisrCQkJCWNjYi0+cGNtZC0+cmVzdWx0ID0gRElEX09LIDw8IDE2Owor KwkJCQlhcmNtc3JfY2NiX2NvbXBsZXRlKGNjYiwgMSk7CisrCQkJfSAKKysJCQllbHNlIHsK KysJCQkJc3dpdGNoKGNjYi0+YXJjbXNyX2NkYi5EZXZpY2VTdGF0dXMpIHsKKysJCQkJY2Fz ZSBBUkNNU1JfREVWX1NFTEVDVF9USU1FT1VUOiB7CisrCQkJCQkJYWNiLT5kZXZzdGF0ZVtp ZF1bbHVuXSA9IEFSRUNBX1JBSURfR09ORTsKKysJCQkJCQljY2ItPnBjbWQtPnJlc3VsdCA9 IERJRF9OT19DT05ORUNUIDw8IDE2OworKwkJCQkJCWFyY21zcl9jY2JfY29tcGxldGUoY2Ni LCAxKTsKKysJCQkJfQorKwkJCQlicmVhazsJCQkJCQkKKysKKysJCQkJY2FzZSBBUkNNU1Jf REVWX0FCT1JURUQ6CQkJCQkJCisrCisrCQkJCWNhc2UgQVJDTVNSX0RFVl9JTklUX0ZBSUw6 IHsKKysJCQkJCQlhY2ItPmRldnN0YXRlW2lkXVtsdW5dID0gQVJFQ0FfUkFJRF9HT05FOwor KwkJCQkJCWNjYi0+cGNtZC0+cmVzdWx0ID0gRElEX0JBRF9UQVJHRVQgPDwgMTY7CisrCQkJ CQkJYXJjbXNyX2NjYl9jb21wbGV0ZShjY2IsIDEpOwkKKysJCQkJfQorKwkJCQlicmVhazsK KysKKysJCQkJY2FzZSBBUkNNU1JfREVWX0NIRUNLX0NPTkRJVElPTjogeworKwkJCQkJCWFj Yi0+ZGV2c3RhdGVbaWRdW2x1bl0gPSBBUkVDQV9SQUlEX0dPT0Q7CQorKwkJCQkJCWFyY21z cl9yZXBvcnRfc2Vuc2VfaW5mbyhjY2IpOworKwkJCQkJCWFyY21zcl9jY2JfY29tcGxldGUo Y2NiLCAxKTsKKysJCQkJfQorKwkJCQlicmVhazsKKysKKysJCQkJZGVmYXVsdDoKKysJCQkJ CQlwcmludGsoS0VSTl9OT1RJQ0UKKysJCQkJCQkJImFyY21zciVkOiBzY3NpIGlkPSVkIGx1 bj0lZCIKKysJCQkJCQkJIiBwb2xsaW5nIGFuZCBnZXR0aW5nIGNvbW1hbmQgZXJyb3IgZG9u ZSIKKysJCQkJCQkJImJ1dCBnb3QgdW5rbm93biBEZXZpY2VTdGF0dXMgPSAweCV4IFxuIgkK KysJCQkJCQkJLCBhY2ItPmhvc3QtPmhvc3Rfbm8KKysJCQkJCQkJLCBpZAorKwkJCQkJCQks IGx1bgorKwkJCQkJCQksIGNjYi0+YXJjbXNyX2NkYi5EZXZpY2VTdGF0dXMpOworKwkJCQkJ CWFjYi0+ZGV2c3RhdGVbaWRdW2x1bl0gPSBBUkVDQV9SQUlEX0dPTkU7CisrCQkJCQkJY2Ni LT5wY21kLT5yZXN1bHQgPSBESURfQkFEX1RBUkdFVCA8PCAxNjsKKysJCQkJCQlhcmNtc3Jf Y2NiX2NvbXBsZXRlKGNjYiwgMSk7CQorKwkJCQlicmVhazsKKysJCQkJfQorKwkJCX0KKysJ CQlmb3VuZD0xOworKwkJfQorKwl9CisrCWlmKGZvdW5kKXsKKysJCW91dGJvdW5kX2ludHN0 YXR1cyA9IHJlYWRsKCZyZWctPm91dGJvdW5kX2ludHN0YXR1cykgJiBhY2ItPm91dGJvdW5k X2ludF9lbmFibGU7CisrCQl3cml0ZWwob3V0Ym91bmRfaW50c3RhdHVzLCAmcmVnLT5vdXRi b3VuZF9pbnRzdGF0dXMpOy8qY2xlYXIgaW50ZXJydXB0Ki8KKysJfQorKwlyZXR1cm47Cisr fQorKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBzdGFydCBiYWNrZ3JvdW5kIHJlYnVs aWQKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisrKi8KKytzdGF0aWMgdm9pZCBhcmNtc3JfaW9wX2lu aXQoc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sgKmFjYikKKyt7CisrICAgIHN0cnVjdCBN ZXNzYWdlVW5pdCBfX2lvbWVtICpyZWc9YWNiLT5wbXU7CisrICAgIHVpbnQzMl90IGludG1h c2tfb3JnLG91dGJvdW5kX2Rvb3JiZWxsLGZpcm13YXJlX3N0YXRlPTA7CisrCisrCSNpZiBB UkNNU1JfREVCVUcKKysJcHJpbnRrKCJhcmNtc3JfaW9wX2luaXQuLi4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uIFxuIik7CisrCSNlbmRpZgorKwlkbworKwl7CisrCWZpcm13 YXJlX3N0YXRlPXJlYWRsKCZyZWctPm91dGJvdW5kX21zZ2FkZHIxKTsKKysJfXdoaWxlKChm aXJtd2FyZV9zdGF0ZSAmIEFSQ01TUl9PVVRCT1VORF9NRVNHMV9GSVJNV0FSRV9PSyk9PTAp OworKyAgICAvKiBkaXNhYmxlIGFsbCBvdXRib3VuZCBpbnRlcnJ1cHQgKi8NCisrICAgIGlu dG1hc2tfb3JnPWFyY21zcl9kaXNhYmxlX2FsbGludHIoYWNiKTsKKysgCWFyY21zcl9nZXRf ZmlybXdhcmVfc3BlYyhhY2IpOworKwkvKnN0YXJ0CWJhY2tncm91bmQgcmVidWlsZCovCisr CWFyY21zcl9zdGFydF9hZGFwdGVyX2JncmIoYWNiKTsKKysJLyogY2xlYXIgUWJ1ZmZlciBp ZiBkb29yIGJlbGwgcmluZ2VkICovCisrCW91dGJvdW5kX2Rvb3JiZWxsPXJlYWRsKCZyZWct Pm91dGJvdW5kX2Rvb3JiZWxsKTsKKysJd3JpdGVsKG91dGJvdW5kX2Rvb3JiZWxsLCZyZWct Pm91dGJvdW5kX2Rvb3JiZWxsKTsvKmNsZWFyIGludGVycnVwdCAqLworKyAgICAJd3JpdGVs KEFSQ01TUl9JTkJPVU5EX0RSSVZFUl9EQVRBX1JFQURfT0ssJnJlZy0+aW5ib3VuZF9kb29y YmVsbCk7CisrCS8qIGVuYWJsZSBvdXRib3VuZCBQb3N0IFF1ZXVlLG91dGJvdW5kIGRvb3Ji ZWxsIEludGVycnVwdCAqLw0KKysJYXJjbXNyX2VuYWJsZV9hbGxpbnRyKGFjYixpbnRtYXNr X29yZyk7CisrCWFjYi0+YWNiX2ZsYWdzIHw9QUNCX0ZfSU9QX0lOSVRFRDsKKysJcmV0dXJu OworK30KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrKi8KKytpbnQgYXJjbXNyX2J1c19yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpj bWQpCisreworKwlzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiOworKyAgICBpbnQJ cmV0cnk9MDsKKysKKysJYWNiPShzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jawkqKSBjbWQt PmRldmljZS0+aG9zdC0+aG9zdGRhdGE7CisrCXByaW50aygiYXJjbXNyJWQ6IGJ1cyByZXNl dCAuLi4uLiBcbiIsYWNiLT5hZGFwdGVyX2luZGV4KTsKKysJYWNiLT5udW1fcmVzZXRzKys7 CisrCWlmKChhY2ItPm51bV9yZXNldHMgPiAxKSAmJiAoYWNiLT5udW1fYWJvcnRzID4gMTAp KQorKwl7CisrCQlhY2ItPmFjYl9mbGFncyB8PSBBQ0JfRl9GSVJNV0FSRV9UUkFQOworKwkJ cmV0dXJuIFNVQ0NFU1M7CisrCX0KKysJYWNiLT5hY2JfZmxhZ3MgfD0gQUNCX0ZfQlVTX1JF U0VUOworKwl3aGlsZShhdG9taWNfcmVhZCgmYWNiLT5jY2JvdXRzdGFuZGluZ2NvdW50KSE9 MAkmJiByZXRyeSA8IDQpCisrCXsKKysJYXJjbXNyX2ludGVycnVwdChhY2IpOworKwkJcmV0 cnkrKzsKKysJfQorKwlhcmNtc3JfaW9wX3Jlc2V0KGFjYik7CisrICAgIGFjYi0+YWNiX2Zs YWdzICY9IH5BQ0JfRl9CVVNfUkVTRVQ7CisrCXJldHVybiBTVUNDRVNTOworK30gCisrCisr LyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKytzdGF0aWMgdm9pZCBhcmNtc3JfYWJv cnRfb25lX2NtZChzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiLAlzdHJ1Y3QgQ29t bWFuZENvbnRyb2xCbG9jayAqY2NiKQorK3sKKysJdTMyIGludG1hc2s7CisrCQorKwljY2It PnN0YXJ0ZG9uZSA9IEFSQ01TUl9DQ0JfQUJPUlRFRDsKKysJaW50bWFzawk9IGFyY21zcl9k aXNhYmxlX2FsbGludHIoYWNiKTsKKysJYXJjbXNyX3BvbGxpbmdfY2NiZG9uZShhY2IpOwor KwlhcmNtc3JfZW5hYmxlX2FsbGludHIoYWNiLCBpbnRtYXNrKTsKKyt9CisrLyoKKysqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisrKi8KKytpbnQgYXJjbXNyX2Fib3J0KHN0cnVjdAlzY3NpX2Nt bmQgKmNtZCkKKyt7CisrCXN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2IJPShzdHJ1 Y3QJQWRhcHRlckNvbnRyb2xCbG9jayAqKWNtZC0+ZGV2aWNlLT5ob3N0LT5ob3N0ZGF0YTsK KysJaW50IGkgPQkwLGlkLGx1bjsKKysJCisrCWlkPWNtZC0+ZGV2aWNlLT5pZDsKKysJbHVu PWNtZC0+ZGV2aWNlLT5sdW47CisrCXByaW50ayhLRVJOX05PVElDRQorKwkJImFyY21zciVk OiBhYm9ydCBkZXZpY2UgY29tbWFuZCBvZiBzY3NpCWlkPSVkIGx1bj0lZCBcbiIsIAorKwkJ YWNiLT5ob3N0LT5ob3N0X25vLCBpZCwgbHVuKTsKKysJYWNiLT5udW1fYWJvcnRzKys7Cisr CWFjYi0+ZGV2X2Fib3J0c1tpZF1bbHVuXSsrOworKwlpZihhY2ItPmRldl9hYm9ydHNbaWRd W2x1bl0+MSkKKysJeworKwkJYWNiLT5kZXZzdGF0ZVtpZF1bbHVuXSA9IEFSRUNBX1JBSURf R09ORTsKKysJCXJldHVybiBGQUlMRUQ7CisrCX0KKysJLyoKKysJKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSoqIHRoZSBhbGwgaW50ZXJy dXB0IHNlcnZpY2Ugcm91dGluZSBpcyBsb2NrZWQKKysJKiogd2UgbmVlZCB0byBoYW5kbGUg aXQJYXMgc29vbiBhcyBwb3NzaWJsZSBhbmQJZXhpdAorKwkqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysJKi8KKysJaWYgKCFhdG9taWNfcmVh ZCgmYWNiLT5jY2JvdXRzdGFuZGluZ2NvdW50KSkKKysJCXJldHVybiBTVUNDRVNTOworKwkK KysJZm9yIChpID0gMDsgaSA8CUFSQ01TUl9NQVhfRlJFRUNDQl9OVU07CWkrKykgeworKwkJ c3RydWN0IENvbW1hbmRDb250cm9sQmxvY2sgKmNjYgk9IGFjYi0+cGNjYl9wb29sW2ldOwor KwkJaWYgKGNjYi0+c3RhcnRkb25lID09IEFSQ01TUl9DQ0JfU1RBUlQgJiYgY2NiLT5wY21k ID09IGNtZCkgeworKwkJCWFyY21zcl9hYm9ydF9vbmVfY21kKGFjYiwgY2NiKTsKKysJCQli cmVhazsKKysJCX0KKysJfQorKwlyZXR1cm4gU1VDQ0VTUzsKKyt9CisrLyoKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK2NvbnN0IGNoYXIgKmFyY21zcl9p bmZvKHN0cnVjdCBTY3NpX0hvc3QgKmhvc3QpCisreworKwlzdHJ1Y3QgQWRhcHRlckNvbnRy b2xCbG9jayAqYWNiCT0KKysJCShzdHJ1Y3QJQWRhcHRlckNvbnRyb2xCbG9jayAqKSBob3N0 LT5ob3N0ZGF0YTsKKysJc3RhdGljIGNoYXIgYnVmWzI1Nl07CisrCWNoYXIgKnR5cGU7Cisr CWludCByYWlkNiA9IDE7CisrCQorKwlzd2l0Y2ggKGFjYi0+cGRldi0+ZGV2aWNlKSB7Cisr CWNhc2UgUENJX0RFVklDRV9JRF9BUkVDQV8xMTEwOgorKwljYXNlIFBDSV9ERVZJQ0VfSURf QVJFQ0FfMTIxMDoKKysJCXJhaWQ2ID0JMDsKKysJCS8qRkFMTFRIUlUqLworKwljYXNlIFBD SV9ERVZJQ0VfSURfQVJFQ0FfMTEyMDoKKysJY2FzZSBQQ0lfREVWSUNFX0lEX0FSRUNBXzEx MzA6CisrCWNhc2UgUENJX0RFVklDRV9JRF9BUkVDQV8xMTYwOgorKwljYXNlIFBDSV9ERVZJ Q0VfSURfQVJFQ0FfMTE3MDoKKysJY2FzZSBQQ0lfREVWSUNFX0lEX0FSRUNBXzEyMjA6Cisr CWNhc2UgUENJX0RFVklDRV9JRF9BUkVDQV8xMjMwOgorKwljYXNlIFBDSV9ERVZJQ0VfSURf QVJFQ0FfMTI2MDoKKysJY2FzZSBQQ0lfREVWSUNFX0lEX0FSRUNBXzEyNzA6CisrCWNhc2Ug UENJX0RFVklDRV9JRF9BUkVDQV8xMjgwOgorKwkJdHlwZSA9ICJTQVRBIjsKKysJCWJyZWFr OworKwljYXNlIFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTM4MDoKKysJY2FzZSBQQ0lfREVWSUNF X0lEX0FSRUNBXzEzODE6CisrCWNhc2UgUENJX0RFVklDRV9JRF9BUkVDQV8xNjgwOgorKwlj YXNlIFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTY4MToKKysJCXR5cGUgPSAiU0FTIjsKKysJCWJy ZWFrOworKwlkZWZhdWx0OgorKwkJdHlwZSA9ICJYLVRZUEUiOworKwkJYnJlYWs7CisrCX0K KysJc3ByaW50ZihidWYsICJBcmVjYSAlcyBIb3N0IEFkYXB0ZXIgUkFJRCBDb250cm9sbGVy JXNcbgkgICAgICAgJXMiLAorKwkJCXR5cGUsIHJhaWQ2ID8gIiggUkFJRDYgY2FwYWJsZSki IDogIiIsCisrCQkJQVJDTVNSX0RSSVZFUl9WRVJTSU9OKTsKKysJcmV0dXJuIGJ1ZjsKKyt9 CisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLwor K3N0YXRpYyBpbnQgYXJjbXNyX2luaXRpYWxpemUoc3RydWN0IEFkYXB0ZXJDb250cm9sQmxv Y2sgKmFjYixzdHJ1Y3QgcGNpX2RldiAqcGRldikKKyt7CisrCXN0cnVjdCBNZXNzYWdlVW5p dCBfX2lvbWVtICpyZWc7CisrCXVpbnQzMl90IHBhZ2VfYmFzZSxwYWdlX29mZnNldCxtZW1f YmFzZV9zdGFydCxjY2JfcGh5YWRkcl9oaTMyOworKwlkbWFfYWRkcl90IGRtYV9jb2hlcmVu dF9oYW5kbGUsZG1hX2FkZHI7CisrCXN0cnVjdCBIQ0JBUkMgKnBIQ0JBUkM9JmFyY21zcl9o b3N0X2NvbnRyb2xfYmxvY2s7CisrCXVpbnQ4X3QJcGNpY21kOworKyAgICAJdm9pZCAqZG1h X2NvaGVyZW50OworKwl2b2lkIF9faW9tZW0gKnBhZ2VfcmVtYXBwZWQ7CisrCWludCBpLGo7 CisrICAgIAlzdHJ1Y3QgQ29tbWFuZENvbnRyb2xCbG9jayAqcGNjYl90bXA7CisrCisrCSNp ZiBBUkNNU1JfREVCVUcKKysJcHJpbnRrKCJhcmNtc3JfaW5pdGlhbGl6ZS4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLlxuIik7CisrCSNlbmRpZgorKwkvKiBFbmFibGUg QnVzbWFzdGVyL01lbQkqLworKwlwY2lfcmVhZF9jb25maWdfYnl0ZShwZGV2LFBDSV9DT01N QU5ELCZwY2ljbWQpOworKwlwY2lfd3JpdGVfY29uZmlnX2J5dGUocGRldixQQ0lfQ09NTUFO RCxwY2ljbWR8UENJX0NPTU1BTkRfSU5WQUxJREFURXxQQ0lfQ09NTUFORF9NQVNURVJ8UENJ X0NPTU1BTkRfTUVNT1JZKTsgCisrCW1lbV9iYXNlX3N0YXJ0PSh1aW50MzJfdClhcmNnZXRf cGNpY2ZnX2Jhc2UocGRldiwwKTsKKysJcGFnZV9iYXNlPW1lbV9iYXNlX3N0YXJ0ICYgUEFH RV9NQVNLOworKwlwYWdlX29mZnNldD1tZW1fYmFzZV9zdGFydCAtIHBhZ2VfYmFzZTsKKysJ cGFnZV9yZW1hcHBlZD1pb3JlbWFwKHBhZ2VfYmFzZSxwYWdlX29mZnNldCArIDB4MUZGRik7 CisrCWlmKCFwYWdlX3JlbWFwcGVkKQorKwl7CisrCQlwcmludGsoImFyY21zciVkOiBtZW1v cnkgbWFwcGluZyByZWdpb24JZmFpbCBcbiIsYXJjbXNyX2FkYXB0ZXJDbnQpOworKwkJcmV0 dXJuIC1FTlhJTzsKKysJfQorKwlhY2ItPnBtdT0oc3RydWN0IE1lc3NhZ2VVbml0IF9faW9t ZW0gKikocGFnZV9yZW1hcHBlZCtwYWdlX29mZnNldCk7CisrICAgIAlhY2ItPmFjYl9mbGFn cyB8PSAoQUNCX0ZfTUVTU0FHRV9XUUJVRkZFUl9DTEVBUkVEfEFDQl9GX01FU1NBR0VfUlFC VUZGRVJfQ0xFQVJFRHxBQ0JfRl9NRVNTQUdFX1dRQlVGRkVSX1JFQURFRCk7CisrCWFjYi0+ YWNiX2ZsYWdzICY9IH5BQ0JfRl9TQ1NJU1RPUEFEQVBURVI7CisrCWFjYi0+aXJxPXBkZXYt PmlycTsKKysgICAgCUlOSVRfTElTVF9IRUFEKCZhY2ItPmNjYl9mcmVlX2xpc3QpOworKwkj aWYgTElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNSwwKQorKwlkbWFf Y29oZXJlbnQgPSBkbWFfYWxsb2NfY29oZXJlbnQoJnBkZXYtPmRldiwgQVJDTVNSX01BWF9G UkVFQ0NCX05VTSAqIHNpemVvZihzdHJ1Y3QgQ29tbWFuZENvbnRyb2xCbG9jaykgKyAweDIw LCAmZG1hX2NvaGVyZW50X2hhbmRsZSwJR0ZQX0tFUk5FTCk7CisrCSNlbHNlCisrCWRtYV9j b2hlcmVudCA9IHBjaV9hbGxvY19jb25zaXN0ZW50KHBkZXYsIEFSQ01TUl9NQVhfRlJFRUND Ql9OVU0gKiBzaXplb2Yoc3RydWN0IENvbW1hbmRDb250cm9sQmxvY2spICsJMHgyMCwgJmRt YV9jb2hlcmVudF9oYW5kbGUpOworKwkjZW5kaWYKKysJaWYgKCFkbWFfY29oZXJlbnQpCisr CXsKKysJCXByaW50aygiYXJjbXNyJWQ6IGRtYV9hbGxvY19jb2hlcmVudCBnb3QgZXJyb3Ig XG4iLGFyY21zcl9hZGFwdGVyQ250KTsKKysJcmV0dXJuIC1FTk9NRU07CisrCX0KKysJYWNi LT5kbWFfY29oZXJlbnQ9ZG1hX2NvaGVyZW50OworKwlhY2ItPmRtYV9jb2hlcmVudF9oYW5k bGU9ZG1hX2NvaGVyZW50X2hhbmRsZTsKKysJbWVtc2V0KGRtYV9jb2hlcmVudCwgMCwJQVJD TVNSX01BWF9GUkVFQ0NCX05VTSAqIHNpemVvZihzdHJ1Y3QgQ29tbWFuZENvbnRyb2xCbG9j aykrMHgyMCk7CisrCWlmKCgodW5zaWduZWQgbG9uZylkbWFfY29oZXJlbnQJJiAweDFGKSE9 MCkgLypjY2IgYWRkcmVzcyBtdXN0IDMyICgweDIwKSBib3VuZGFyeSovCisrCXsKKysJCWRt YV9jb2hlcmVudD1kbWFfY29oZXJlbnQrKDB4MjAtKCh1bnNpZ25lZCBsb25nKWRtYV9jb2hl cmVudCAmIDB4MUYpKTsKKysJCWRtYV9jb2hlcmVudF9oYW5kbGU9ZG1hX2NvaGVyZW50X2hh bmRsZSsoMHgyMC0oKHVuc2lnbmVkIGxvbmcpZG1hX2NvaGVyZW50X2hhbmRsZSAmIDB4MUYp KTsKKysJfQorKwlkbWFfYWRkcj1kbWFfY29oZXJlbnRfaGFuZGxlOworKwlwY2NiX3RtcD0o c3RydWN0IENvbW1hbmRDb250cm9sQmxvY2sgKilkbWFfY29oZXJlbnQ7CisrCWZvcihpID0J MDsgaSA8IEFSQ01TUl9NQVhfRlJFRUNDQl9OVU07IGkrKykgCisrCXsKKysJCXBjY2JfdG1w LT5jZGJfc2hpZnRlZF9waHlhZGRyPWRtYV9hZGRyID4+IDU7CisrCQlwY2NiX3RtcC0+YWNi PWFjYjsKKysJCWFjYi0+cGNjYl9wb29sW2ldPXBjY2JfdG1wOworKwkJbGlzdF9hZGRfdGFp bCgmcGNjYl90bXAtPmxpc3QsICZhY2ItPmNjYl9mcmVlX2xpc3QpOworKwkJZG1hX2FkZHI9 ZG1hX2FkZHIrc2l6ZW9mKHN0cnVjdAlDb21tYW5kQ29udHJvbEJsb2NrKTsKKysJCXBjY2Jf dG1wKys7CisrCX0KKysJYWNiLT52aXIycGh5X29mZnNldD0odW5zaWduZWQgbG9uZylwY2Ni X3RtcC0odW5zaWduZWQgbG9uZylkbWFfYWRkcjsKKysJZm9yKGk9MDtpPEFSQ01TUl9NQVhf VEFSR0VUSUQ7aSsrKQorKwl7CisrCQlmb3Ioaj0wO2o8QVJDTVNSX01BWF9UQVJHRVRMVU47 aisrKQorKwkJeworKwkJCWFjYi0+ZGV2c3RhdGVbaV1bal09QVJFQ0FfUkFJRF9HT09EOwor KwkJfQorKwl9CisrCXJlZyA9IGFjYi0+cG11OworKyAgICAvKiBkaXNhYmxlIGlvcCBhbGwg b3V0Ym91bmQJaW50ZXJydXB0ICovCisrICAgIGFyY21zcl9kaXNhYmxlX2FsbGludHIoYWNi KTsKKysJLyoKKysJKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysJKiogaGVyZQl3ZSBuZWVkCXRvIHRlbGwJ aW9wIDMzMQlvdXIgcGNjYl90bXAuSGlnaFBhcnQgCisrCSoqIGlmIHBjY2JfdG1wLkhpZ2hQ YXJ0CWlzIG5vdCB6ZXJvCisrCSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrCSovCisrCWNjYl9waHlhZGRy X2hpMzI9KHVpbnQzMl90KSAoKGRtYV9jb2hlcmVudF9oYW5kbGU+PjE2KT4+MTYpOworKwlp ZihjY2JfcGh5YWRkcl9oaTMyIT0wKQorKwl7CisrCXdyaXRlbChBUkNNU1JfU0lHTkFUVVJF X1NFVF9DT05GSUcsJnJlZy0+bWVzc2FnZV9yd2J1ZmZlclswXSk7CisrCXdyaXRlbChjY2Jf cGh5YWRkcl9oaTMyLCZyZWctPm1lc3NhZ2VfcndidWZmZXJbMV0pOworKwkJd3JpdGVsKEFS Q01TUl9JTkJPVU5EX01FU0cwX1NFVF9DT05GSUcsJnJlZy0+aW5ib3VuZF9tc2dhZGRyMCk7 CisrCQlpZihhcmNtc3Jfd2FpdF9tc2dpbnRfcmVhZHkoYWNiKSkKKysJCXsKKysJCQlwcmlu dGsoImFyY21zciVkOiAnc2V0IGNjYiBoaWdoCXBhcnQgcGh5c2ljYWwgYWRkcmVzcycgdGlt ZW91dCBcbiIsYXJjbXNyX2FkYXB0ZXJDbnQpOworKwkJfQorKwl9CisrCWFjYi0+YWRhcHRl cl9pbmRleD1hcmNtc3JfYWRhcHRlckNudDsKKysJcEhDQkFSQy0+YWNiW2FyY21zcl9hZGFw dGVyQ250XT1hY2I7CisrCWFyY21zcl9hZGFwdGVyQ250Kys7CisrICAgIHJldHVybigwKTsK Kyt9CisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0 YXRpYyBpbnQgYXJjbXNyX3NldF9pbmZvKGNoYXIJKmJ1ZmZlcixpbnQgbGVuZ3RoKQorK3sK KysJI2lmIEFSQ01TUl9ERUJVRworKwlwcmludGsoImFyY21zcl9zZXRfaW5mby4uLi4uLi4u Li4uLi5cbiIpOworKwkjZW5kaWYKKysJcmV0dXJuICgwKTsKKyt9CisrLyoKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0YXRpYyB2b2lkIGFyY21zcl9w Y2lkZXZfZGlzYXR0YWNoKHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2IpCisrewor KyAgICBzdHJ1Y3QgcGNpX2RldiAqcGRldjsKKysJc3RydWN0IENvbW1hbmRDb250cm9sQmxv Y2sgKmNjYjsKKysJc3RydWN0IEhDQkFSQyAqcEhDQkFSQz0JJmFyY21zcl9ob3N0X2NvbnRy b2xfYmxvY2s7CisrCXN0cnVjdCBTY3NpX0hvc3QgKmhvc3Q7CisrCWludCBpPTAscG9sbF9j b3VudD0wLGhhdmVfbXNpPTA7CisrICAgICNpZglBUkNNU1JfREVCVUcKKysgICAgcHJpbnRr KCJhcmNtc3JfcGNpZGV2X2Rpc2F0dGFjaC4uLi4uLi4uLi4uLi4uLi4uLiBcbiIpOworKyAg ICAjZW5kaWYKKysJLyogZGlzYWJsZSBpb3AgYWxsIG91dGJvdW5kCWludGVycnVwdCAqLwor KyAgICBhcmNtc3JfZGlzYWJsZV9hbGxpbnRyKGFjYik7CisrCWFyY21zcl9zdG9wX2FkYXB0 ZXJfYmdyYihhY2IpOworKwlhcmNtc3JfZmx1c2hfYWRhcHRlcl9jYWNoZShhY2IpOworKwlh Y2ItPmFjYl9mbGFncyB8PSBBQ0JfRl9TQ1NJU1RPUEFEQVBURVI7CisrCWFjYi0+YWNiX2Zs YWdzICY9IH5BQ0JfRl9JT1BfSU5JVEVEOworKwlpZihhdG9taWNfcmVhZCgmYWNiLT5jY2Jv dXRzdGFuZGluZ2NvdW50KSE9MCkKKysJeyAgCisrCXdoaWxlKGF0b21pY19yZWFkKCZhY2It PmNjYm91dHN0YW5kaW5nY291bnQpIT0wCSYmIChwb2xsX2NvdW50IDwgNikpCisrCQl7Cisr CSAgICBhcmNtc3JfaW50ZXJydXB0KGFjYik7CisrCSAgICBwb2xsX2NvdW50Kys7CisrCQl9 CisrCQlpZihhdG9taWNfcmVhZCgmYWNiLT5jY2JvdXRzdGFuZGluZ2NvdW50KSE9MCkKKysJ ICAgIHsgIAorKwkJCWFyY21zcl9hYm9ydF9hbGxjbWQoYWNiKTsKKysJCQlhcmNtc3JfZG9u ZTRfYWJvcnRfcG9zdHF1ZXVlKGFjYik7CisrCQkJZm9yKGk9MDtpPEFSQ01TUl9NQVhfRlJF RUNDQl9OVU07aSsrKQorKwkJCXsKKysJCQkJY2NiPWFjYi0+cGNjYl9wb29sW2ldOworKwkJ CQlpZihjY2ItPnN0YXJ0ZG9uZT09QVJDTVNSX0NDQl9TVEFSVCkKKysJCQkJeworKwkJCQkJ Y2NiLT5zdGFydGRvbmU9QVJDTVNSX0NDQl9BQk9SVEVEOworKwkJCQl9CisrCQkJfQorKwkJ fQorKwl9CisrCWlmKChhY2ItPmFjYl9mbGFncyAmIEFDQl9GX0hBVkVfTVNJKSAhPQkwKQor Kwl7CisrCQloYXZlX21zaT0xOworKwl9CisrCWhvc3Q9YWNiLT5ob3N0OworKyAgICBwZGV2 PWFjYi0+cGRldjsKKysJaW91bm1hcChhY2ItPnBtdSk7CisrICAgIGFyY21zcl9mcmVlX2Nj Yl9wb29sKGFjYik7CisrICAgIHBIQ0JBUkMtPmFjYlthY2ItPmFkYXB0ZXJfaW5kZXhdPU5V TEw7IC8qIGNsZWFyIHJlY29yZCAqLworKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VS TkVMX1ZFUlNJT04oMiw1LDApCisrICAgIHNjc2lfcmVtb3ZlX2hvc3QoaG9zdCk7CisrCXNj c2lfaG9zdF9wdXQoaG9zdCk7CisrI2Vsc2UKKysJc2NzaV91bnJlZ2lzdGVyKGhvc3QpOwor KyNlbmRpZgorKwlmcmVlX2lycShwZGV2LT5pcnEsYWNiKTsKKysjaWYgTElOVVhfVkVSU0lP Tl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsMywzMCkKKysJI2lmZGVmIENPTkZJR19QQ0lf TVNJCisrCQlpZihoYXZlX21zaT09MSkKKysJCXsKKysJCQlwY2lfZGlzYWJsZV9tc2kocGRl dik7CisrCQl9CisrCSNlbmRpZgorKwlwY2lfcmVsZWFzZV9yZWdpb25zKHBkZXYpOworKyAg ICAJcGNpX2Rpc2FibGVfZGV2aWNlKHBkZXYpOworKwlwY2lfc2V0X2RydmRhdGEocGRldiwg TlVMTCk7CisrI2VuZGlmCisrCXJldHVybjsKKyt9CisrLyoKKysqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqLworKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigy LDYsMTMpCisrCXN0YXRpYyBpbnQgYXJjbXNyX2hhbHRfbm90aWZ5KHN0cnVjdCBub3RpZmll cl9ibG9jayAqbmIsdW5zaWduZWQgbG9uZyBldmVudCx2b2lkICpidWYpCisrCXsKKysJCXN0 cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2I7CisrCQlzdHJ1Y3QgSENCQVJDICpwSENC QVJDPQkmYXJjbXNyX2hvc3RfY29udHJvbF9ibG9jazsKKysJCXN0cnVjdCBTY3NpX0hvc3Qg Kmhvc3Q7CisrCQlpbnQgaTsKKysKKysJCSNpZiBBUkNNU1JfREVCVUcKKysJCXByaW50aygi YXJjbXNyX2hhbHRfbm90aWZ5Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjEJXG4iKTsK KysJCSNlbmRpZgorKwkJaWYoKGV2ZW50ICE9U1lTX1JFU1RBUlQpICYmIChldmVudCAhPVNZ U19IQUxUKSAmJiAoZXZlbnQgIT1TWVNfUE9XRVJfT0ZGKSkKKysJCXsKKysJCQlyZXR1cm4g Tk9USUZZX0RPTkU7CisrCQl9CisrCQlmb3IoaT0wO2k8QVJDTVNSX01BWF9BREFQVEVSO2kr KykKKysJCXsKKysJCQlhY2I9cEhDQkFSQy0+YWNiW2ldOworKwkJCWlmKGFjYj09TlVMTCkg CisrCQkJeworKwkJCQljb250aW51ZTsKKysJCQl9CisrCQkJLyogRmx1c2ggY2FjaGUgdG8g ZGlzayAqLworKwkJCS8qIEZyZWUJaXJxLG90aGVyd2lzZSBleHRyYSBpbnRlcnJ1cHQgaXMg Z2VuZXJhdGVkCSAqLworKwkJCS8qIElzc3VlIGEgYmxvY2tpbmcoaW50ZXJydXB0cyBkaXNh YmxlZCkgY29tbWFuZCB0byB0aGUJY2FyZCAqLworKwkJCWhvc3Q9YWNiLT5ob3N0OworKwkJ CWFyY21zcl9wY2lkZXZfZGlzYXR0YWNoKGFjYik7CisrCQl9CisrCQl1bnJlZ2lzdGVyX3Jl Ym9vdF9ub3RpZmllcigmYXJjbXNyX2V2ZW50X25vdGlmaWVyKTsKKysJCXJldHVybiBOT1RJ RllfT0s7CisrCX0KKysjZW5kaWYKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKyovCisrI3VuZGVmIFNQUklOVEYKKysjZGVmaW5lCVNQUklOVEYoYXJncy4u LikgcG9zICs9c3ByaW50Zihwb3MsIyMgYXJncykKKysjZGVmaW5lCVlFU05PKFlOKVwKKytp ZihZTikgU1BSSU5URigiIFllcyAiKTtcCisrZWxzZSBTUFJJTlRGKCIgTm8gIikKKysjaWYg TElOVVhfVkVSU0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNSwwKQorKyAgICBpbnQJ YXJjbXNyX3Byb2NfaW5mbyhzdHJ1Y3QJU2NzaV9Ib3N0ICpob3N0LCBjaGFyICpidWZmZXIs IGNoYXIgKipzdGFydCwgb2ZmX3Qgb2Zmc2V0LCBpbnQgbGVuZ3RoLCBpbnQgaW5vdXQpCisr I2Vsc2UKKysgICAgaW50CWFyY21zcl9wcm9jX2luZm8oY2hhciAqCWJ1ZmZlcixjaGFyICoq IHN0YXJ0LG9mZl90IG9mZnNldCxpbnQgbGVuZ3RoLGludCBob3N0bm8saW50IGlub3V0KQor KyNlbmRpZgorK3sKKysJdWludDhfdAkgaTsKKysgICAgY2hhciAqIHBvcz1idWZmZXI7Cisr ICAgIHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2I7CisrCXN0cnVjdCBIQ0JBUkMg KnBIQ0JBUkM9CSZhcmNtc3JfaG9zdF9jb250cm9sX2Jsb2NrOworKworKwkjaWYgQVJDTVNS X0RFQlVHCisrCXByaW50aygiYXJjbXNyX3Byb2NfaW5mby4uLi4uLi4uLi4uLi5cbiIpOwor KwkjZW5kaWYKKysgICAgaWYoaW5vdXQpIAorKwl7CisrCSAgICByZXR1cm4oYXJjbXNyX3Nl dF9pbmZvKGJ1ZmZlcixsZW5ndGgpKTsKKysJfQorKwlmb3IoaT0wO2k8QVJDTVNSX01BWF9B REFQVEVSO2krKykKKysJeworKwkJYWNiPXBIQ0JBUkMtPmFjYltpXTsKKysJICAgIGlmKCFh Y2IpIAorKwkJCWNvbnRpbnVlOworKwkJU1BSSU5URigiQVJFQ0EgU0FUQSBSQUlEIE1hc3Mg U3RvcmFnZSBIb3N0IEFkYWRwdGVyIFxuIik7CisrCQlTUFJJTlRGKCJEcml2ZXIJVmVyc2lv bgklcyAiLEFSQ01TUl9EUklWRVJfVkVSU0lPTik7CisrCQlTUFJJTlRGKCJJUlElZCBcbiIs YWNiLT5wZGV2LT5pcnEpOworKwkJU1BSSU5URigiPT09PT09PT09PT09PT09PT09PT09PT09 PT09XG4iKTsgCisrCX0KKysJKnN0YXJ0PWJ1ZmZlciArCW9mZnNldDsKKysJaWYocG9zIC0g YnVmZmVyCTwgb2Zmc2V0KQorKwl7CisrCSAgICByZXR1cm4gMDsKKysJfQorKyAgICBlbHNl IGlmKHBvcwktIGJ1ZmZlciAtIG9mZnNldCA8IGxlbmd0aCkKKysJeworKwkgICAgcmV0dXJu IChwb3MJLSBidWZmZXIgLSBvZmZzZXQpOworKwl9CisrICAgIGVsc2UKKysJeworKwkgICAg cmV0dXJuIGxlbmd0aDsKKysJfQorK30KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorKyovCisraW50IGFyY21zcl9yZWxlYXNlKHN0cnVjdCBTY3Np X0hvc3QgKmhvc3QpCisreworKwlzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqYWNiOwor KwlzdHJ1Y3QgSENCQVJDICpwSENCQVJDPQkmYXJjbXNyX2hvc3RfY29udHJvbF9ibG9jazsK KysgICAgCXVpbnQ4X3QgbWF0Y2g9MHhmZixpOworKworKwkjaWYgQVJDTVNSX0RFQlVHCisr CXByaW50aygiYXJjbXNyX3JlbGVhc2UuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi5cbiIp OworKwkjZW5kaWYKKysJaWYoIWhvc3QpCisrCXsKKysJcmV0dXJuIC1FTlhJTzsKKysJfQor KwlhY2I9KHN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICopaG9zdC0+aG9zdGRhdGE7Cisr CWlmKCFhY2IpCisrCXsKKysJcmV0dXJuIC1FTlhJTzsKKysJfQorKwlmb3IoaT0wO2k8QVJD TVNSX01BWF9BREFQVEVSO2krKykKKysJeworKwkJaWYocEhDQkFSQy0+YWNiW2ldPT1hY2Ip IAorKwkJeyAgCisrCQkJbWF0Y2g9aTsKKysJCX0KKysJfQorKwlpZihtYXRjaD09MHhmZikK KysJeworKwkJcmV0dXJuIC1FTk9ERVY7CisrCX0KKysgICAgYXJjbXNyX3BjaWRldl9kaXNh dHRhY2goYWNiKTsKKysJZm9yKGk9MDtpPEFSQ01TUl9NQVhfQURBUFRFUjtpKyspCisrCXsK KysJCWlmKHBIQ0JBUkMtPmFjYltpXSkKKysJCXsgCisrCQkJcmV0dXJuKDApOworKwkJfQor Kwl9CisrCXVucmVnaXN0ZXJfY2hyZGV2KHBIQ0JBUkMtPmFyY21zcl9tYWpvcl9udW1iZXIs CSJhcmNtc3IiKTsKKysJcmV0dXJuKDApOworK30KKysKKysjaWYgTElOVVhfVkVSU0lPTl9D T0RFID49IEtFUk5FTF9WRVJTSU9OKDIsNiwxOSkKKysKKysgICAgICAJc3RhdGljIHBjaV9l cnNfcmVzdWx0X3QgYXJjbXNyX3BjaV9zbG90X3Jlc2V0KHN0cnVjdCBwY2lfZGV2ICpwZGV2 KQorKyAgICAgIAl7CisrICAgICAgICAJc3RydWN0IFNjc2lfSG9zdCAqaG9zdDsKKysJCXN0 cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2I7CisrCQlzdHJ1Y3QgSENCQVJDICpwSENC QVJDPSAmYXJjbXNyX2hvc3RfY29udHJvbF9ibG9jazsKKysgICAgICAgIAl1aW50OF90IGJ1 cyxkZXZfZnVuOworKwkJI2lmIEFSQ01TUl9ERUJVRworKwkJcHJpbnRrKCJhcmNtc3JfcHJv YmUuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uXG4iKTsKKysJCSNlbmRpZgorKwkJaWYo cGNpX2VuYWJsZV9kZXZpY2UocGRldikpCisrCQl7CisrCQkJcHJpbnRrKCJhcmNtc3IlZDog YWRhcHRlciBwcm9iZTogcGNpX2VuYWJsZV9kZXZpY2UgZXJyb3IgXG4iLGFyY21zcl9hZGFw dGVyQ250KTsKKysJCQlyZXR1cm4gUENJX0VSU19SRVNVTFRfRElTQ09OTkVDVDsKKysJCX0K KysJCWlmKChob3N0PXNjc2lfaG9zdF9hbGxvYygmYXJjbXNyX3Njc2lfaG9zdF90ZW1wbGF0 ZSxzaXplb2Yoc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2spKSk9PTApCisrCQl7CisrCQkJ cHJpbnRrKCJhcmNtc3IlZDogYWRhcHRlciBwcm9iZTogc2NzaV9ob3N0X2FsbG9jIGVycm9y IFxuIixhcmNtc3JfYWRhcHRlckNudCk7CisrICAgICAgICAgICAgCQlyZXR1cm4gUENJX0VS U19SRVNVTFRfRElTQ09OTkVDVDsKKysJCX0KKysJCWlmKCFwY2lfc2V0X2RtYV9tYXNrKHBk ZXYsIERNQV82NEJJVF9NQVNLKSkgCisrCQl7CisrCQkJcHJpbnRrKCJBUkVDQSBSQUlEIEFE QVBURVIlZDogNjRCSVRTIFBDSSBCVVMgRE1BIEFERFJFU1NJTkcgU1VQUE9SVEVEXG4iLGFy Y21zcl9hZGFwdGVyQ250KTsKKysJCX0gCisrCQllbHNlIGlmKCFwY2lfc2V0X2RtYV9tYXNr KHBkZXYsIERNQV8zMkJJVF9NQVNLKSkgCisrCQl7CisrCQkJcHJpbnRrKCJBUkVDQSBSQUlE IEFEQVBURVIlZDogMzJCSVRTIFBDSSBCVVMgRE1BIEFERFJFU1NJTkcgU1VQUE9SVEVEXG4i LGFyY21zcl9hZGFwdGVyQ250KTsKKysJCX0gCisrCQllbHNlIAorKwkJeworKwkJCXByaW50 aygiQVJFQ0EgUkFJRCBBREFQVEVSJWQ6IE5vIHN1aXRhYmxlIERNQSBhdmFpbGFibGUuXG4i LGFyY21zcl9hZGFwdGVyQ250KTsKKysJCQlyZXR1cm4gUENJX0VSU19SRVNVTFRfRElTQ09O TkVDVDsKKysJCX0KKysJCWlmIChwY2lfc2V0X2NvbnNpc3RlbnRfZG1hX21hc2socGRldiwg RE1BXzMyQklUX01BU0spKSAKKysJCXsKKysJCQlwcmludGsoIkFSRUNBIFJBSUQgQURBUFRF UiVkOiBObyAzMkJJVCBjb2hlcmVudCBETUEgYWRyZXNzaW5nIGF2YWlsYWJsZS5cbiIsYXJj bXNyX2FkYXB0ZXJDbnQpOworKwkJCXJldHVybiBQQ0lfRVJTX1JFU1VMVF9ESVNDT05ORUNU OworKwkJfQorKwkJYnVzID0gcGRldi0+YnVzLT5udW1iZXI7CisrCSAgICAJZGV2X2Z1biA9 IHBkZXYtPmRldmZuOworKwkJYWNiPShzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqKSBo b3N0LT5ob3N0ZGF0YTsKKysJCW1lbXNldChhY2IsMCxzaXplb2Yoc3RydWN0IEFkYXB0ZXJD b250cm9sQmxvY2spKTsKKysJCWFjYi0+cGRldj1wZGV2OworKwkJYWNiLT5ob3N0PWhvc3Q7 CisrCQlob3N0LT5tYXhfc2VjdG9ycz1BUkNNU1JfTUFYX1hGRVJfU0VDVE9SUzsKKysJCWhv c3QtPm1heF9sdW49QVJDTVNSX01BWF9UQVJHRVRMVU47CisrCQlob3N0LT5tYXhfaWQ9QVJD TVNSX01BWF9UQVJHRVRJRDsvKjE2OjgqLworKwkJaG9zdC0+bWF4X2NtZF9sZW49MTY7ICAg IC8qdGhpcyBpcyBpc3N1ZSBvZiA2NGJpdCBMQkEgLG92ZXIgMlQgYnl0ZSovCisrCQlob3N0 LT5zZ190YWJsZXNpemU9QVJDTVNSX01BWF9TR19FTlRSSUVTOworKwkJaG9zdC0+Y2FuX3F1 ZXVlPUFSQ01TUl9NQVhfRlJFRUNDQl9OVU07IC8qIG1heCBzaW11bHRhbmVvdXMgY21kcyAq LyAgICAgICAgICAgICAKKysJCWhvc3QtPmNtZF9wZXJfbHVuPUFSQ01TUl9NQVhfQ01EX1BF UkxVTjsgICAgICAgICAgICAKKysJCWhvc3QtPnRoaXNfaWQ9QVJDTVNSX1NDU0lfSU5JVElB VE9SX0lEOyAKKysJCWhvc3QtPnVuaXF1ZV9pZD0oYnVzIDw8IDgpIHwgZGV2X2Z1bjsKKysJ CWhvc3QtPmlvX3BvcnQ9MDsKKysJCWhvc3QtPm5faW9fcG9ydD0wOworKwkJaG9zdC0+aXJx PXBkZXYtPmlycTsKKysJCXBjaV9zZXRfbWFzdGVyKHBkZXYpOworKyAJCWlmKGFyY21zcl9p bml0aWFsaXplKGFjYixwZGV2KSkKKysJCXsKKysJCQlwcmludGsoImFyY21zciVkOiBpbml0 aWFsaXplIGdvdCBlcnJvciBcbiIsYXJjbXNyX2FkYXB0ZXJDbnQpOworKwkJCXBIQ0JBUkMt PmFkYXB0ZXJDbnQ9YXJjbXNyX2FkYXB0ZXJDbnQ7CisrCQkJcEhDQkFSQy0+YWNiW2FyY21z cl9hZGFwdGVyQ250XT1OVUxMOworKyAgICAgICAgICAgIAkJc2NzaV9yZW1vdmVfaG9zdCho b3N0KTsKKysJCQlzY3NpX2hvc3RfcHV0KGhvc3QpOworKwkJCXJldHVybiBQQ0lfRVJTX1JF U1VMVF9ESVNDT05ORUNUOworKwkJfQorKwkgICAgaWYgKHBjaV9yZXF1ZXN0X3JlZ2lvbnMo cGRldiwgImFyY21zciIpKQorKwkJeworKyAgICAgIAkJcHJpbnRrKCJhcmNtc3IlZDogYWRh cHRlciBwcm9iZTogcGNpX3JlcXVlc3RfcmVnaW9ucyBmYWlsZWQgXG4iLGFyY21zcl9hZGFw dGVyQ250LS0pOworKwkJCXBIQ0JBUkMtPmFkYXB0ZXJDbnQ9YXJjbXNyX2FkYXB0ZXJDbnQ7 CisrCQkJYXJjbXNyX3BjaWRldl9kaXNhdHRhY2goYWNiKTsKKysgIAkJCXJldHVybiBQQ0lf RVJTX1JFU1VMVF9ESVNDT05ORUNUOworKwkJfQorKwkJI2lmZGVmIENPTkZJR19TQ1NJX0FS Q01TUl9NU0kgCisrCQkJaWYocGNpX2VuYWJsZV9tc2kocGRldikgPT0gMCkKKysJCQl7Cisr CQkJCWFjYi0+YWNiX2ZsYWdzIHw9IEFDQl9GX0hBVkVfTVNJOworKwkJCX0KKysJCSNlbmRp ZgorKwkJaWYocmVxdWVzdF9pcnEocGRldi0+aXJxLGFyY21zcl9kb19pbnRlcnJ1cHQsU0Ff SU5URVJSVVBUIHwgU0FfU0hJUlEsImFyY21zciIsYWNiKSkKKysJCXsKKysgIAkJCXByaW50 aygiYXJjbXNyJWQ6IHJlcXVlc3QgSVJRPSVkIGZhaWxlZCAhXG4iLGFyY21zcl9hZGFwdGVy Q250LS0scGRldi0+aXJxKTsKKysJCQlwSENCQVJDLT5hZGFwdGVyQ250PWFyY21zcl9hZGFw dGVyQ250OworKwkJCWFyY21zcl9wY2lkZXZfZGlzYXR0YWNoKGFjYik7CisrICAJCQlyZXR1 cm4gUENJX0VSU19SRVNVTFRfRElTQ09OTkVDVDsKKysJCX0KKysJCWFyY21zcl9pb3BfaW5p dChhY2IpOworKwkJaWYoc3RybmNtcChhY2ItPmZpcm1fdmVyc2lvbiwiVjEuNDIiLDUpID49 IDApCisrICAgICAgICAgICAgICAJaG9zdC0+bWF4X3NlY3RvcnM9IEFSQ01TUl9NQVhfWEZF Ul9TRUNUT1JTX0I7CisrCQlpZihzY3NpX2FkZF9ob3N0KGhvc3QsICZwZGV2LT5kZXYpKQor KwkJeworKyAgICAgICAgICAgIAkJcHJpbnRrKCJhcmNtc3IlZDogc2NzaV9hZGRfaG9zdCBn b3QgZXJyb3IgXG4iLGFyY21zcl9hZGFwdGVyQ250LS0pOworKwkJCXBIQ0JBUkMtPmFkYXB0 ZXJDbnQ9YXJjbXNyX2FkYXB0ZXJDbnQ7CisrCQkJYXJjbXNyX3BjaWRldl9kaXNhdHRhY2go YWNiKTsKKysJCQlyZXR1cm4gUENJX0VSU19SRVNVTFRfRElTQ09OTkVDVDsKKysJCX0KKysg CQlwSENCQVJDLT5hZGFwdGVyQ250PWFyY21zcl9hZGFwdGVyQ250OworKwkJcGNpX3NldF9k cnZkYXRhKHBkZXYsIGhvc3QpOworKwkJc2NzaV9zY2FuX2hvc3QoaG9zdCk7CisrIAkJcmV0 dXJuIFBDSV9FUlNfUkVTVUxUX1JFQ09WRVJFRDsKKysKKysJfQorKyAgICAgIAorKyAgICAg IAlzdGF0aWMgdm9pZCBhcmNtc3JfcGNpX2Vyc19uZWVkX3Jlc2V0X2ZvcmVwYXJ0KHN0cnVj dCBwY2lfZGV2ICpwZGV2KQorKyAgICAgCXsKKysgICAgIAkJc3RydWN0IFNjc2lfSG9zdCAq aG9zdD1wY2lfZ2V0X2RydmRhdGEocGRldik7CisrCSAgICAJc3RydWN0IEFkYXB0ZXJDb250 cm9sQmxvY2sgKmFjYj0oc3RydWN0IEFkYXB0ZXJDb250cm9sQmxvY2sgKikgaG9zdC0+aG9z dGRhdGE7CisrCQlzdHJ1Y3QgTWVzc2FnZVVuaXQgX19pb21lbSAqcmVnID0gYWNiLT5wbXU7 CQorKwkJc3RydWN0IENvbW1hbmRDb250cm9sQmxvY2sgKmNjYjsJLypjbGVhciBhbmQgYWJv cnQgYWxsIG91dGJvdW5kIHBvc3RlZCBRKi8KKysJCWludCBpPTAsZm91bmQ9MDsJCisrCQlp bnQgaWQsIGx1bjsJCisrCQl1aW50MzJfdCBmbGFnX2NjYixvdXRib3VuZF9pbnRzdGF0dXM7 CQkKKysJCQorKwkJd2hpbGUoKChmbGFnX2NjYj1yZWFkbCgmcmVnLT5vdXRib3VuZF9xdWV1 ZXBvcnQpKSAhPSAweEZGRkZGRkZGKSAmJiAoaSsrIDwgMjU2KSl7CQkJCisrCQkJY2NiID0g KHN0cnVjdCBDb21tYW5kQ29udHJvbEJsb2NrICopKGFjYi0+dmlyMnBoeV9vZmZzZXQgKyAo ZmxhZ19jY2IgPDwgNSkpOworKwkJCWlmKGNjYil7CisrCQkJCWlmICgoY2NiLT5hY2IgIT0g YWNiKXx8KGNjYi0+c3RhcnRkb25lICE9IEFSQ01TUl9DQ0JfU1RBUlQpKXsKKysJCQkJCXBy aW50ayhLRVJOX05PVElDRSAKKysJCQkJCQkiYXJjbXNyJWQ6IHBvbGxpbmcgZ2V0IGFuIGls bGVnYWwgY2NiIgorKwkJCQkJCSIgY29tbWFuZCBkb25lIGNjYj0nMHglcCciCQkKKysJCQkJ CQkiY2Nib3V0c3RhbmRpbmdjb3VudD0lZCBcbiIsIAkJCQorKwkJCQkJCWFjYi0+aG9zdC0+ aG9zdF9ubywgCisrCQkJCQkJY2NiLCAKKysJCQkJCQlhdG9taWNfcmVhZCgmYWNiLT5jY2Jv dXRzdGFuZGluZ2NvdW50KSk7CQorKwkJCQkJY29udGludWU7CisrCQkJCX0KKysKKysJCQkJ aWQgPSBjY2ItPnBjbWQtPmRldmljZS0+aWQ7CisrCQkJCWx1biA9IGNjYi0+cGNtZC0+ZGV2 aWNlLT5sdW47CQorKwkJCQlpZiAoIShmbGFnX2NjYiAmIEFSQ01TUl9DQ0JSRVBMWV9GTEFH X0VSUk9SKSkJeworKwkJCQkJaWYgKGFjYi0+ZGV2c3RhdGVbaWRdW2x1bl0gPT0gQVJFQ0Ff UkFJRF9HT05FKQorKwkJCQkJCWFjYi0+ZGV2c3RhdGVbaWRdW2x1bl0gPSBBUkVDQV9SQUlE X0dPT0Q7CisrCQkJCQljY2ItPnBjbWQtPnJlc3VsdCA9IERJRF9PSyA8PCAxNjsKKysJCQkJ CWFyY21zcl9jY2JfY29tcGxldGUoY2NiLCAxKTsKKysJCQkJfSAKKysJCQkJZWxzZSB7Cisr CQkJCQlzd2l0Y2goY2NiLT5hcmNtc3JfY2RiLkRldmljZVN0YXR1cykgeworKwkJCQkJY2Fz ZSBBUkNNU1JfREVWX1NFTEVDVF9USU1FT1VUOiB7CisrCQkJCQkJCWFjYi0+ZGV2c3RhdGVb aWRdW2x1bl0gPSBBUkVDQV9SQUlEX0dPTkU7CisrCQkJCQkJCWNjYi0+cGNtZC0+cmVzdWx0 ID0gRElEX05PX0NPTk5FQ1QgPDwgMTY7CisrCQkJCQkJCWFyY21zcl9jY2JfY29tcGxldGUo Y2NiLCAxKTsKKysJCQkJCX0KKysJCQkJCWJyZWFrOwkJCQkJCQorKwkJCisrCQkJCQljYXNl IEFSQ01TUl9ERVZfQUJPUlRFRDoJCQkJCQkKKysKKysJCQkJCWNhc2UgQVJDTVNSX0RFVl9J TklUX0ZBSUw6IHsKKysJCQkJCQkJYWNiLT5kZXZzdGF0ZVtpZF1bbHVuXSA9IEFSRUNBX1JB SURfR09ORTsKKysJCQkJCQkJY2NiLT5wY21kLT5yZXN1bHQgPSBESURfQkFEX1RBUkdFVCA8 PCAxNjsKKysJCQkJCQkJYXJjbXNyX2NjYl9jb21wbGV0ZShjY2IsIDEpOwkKKysJCQkJCX0K KysJCQkJCWJyZWFrOworKworKwkJCQkJY2FzZSBBUkNNU1JfREVWX0NIRUNLX0NPTkRJVElP TjogeworKwkJCQkJCQlhY2ItPmRldnN0YXRlW2lkXVtsdW5dID0gQVJFQ0FfUkFJRF9HT09E OwkKKysJCQkJCQkJYXJjbXNyX3JlcG9ydF9zZW5zZV9pbmZvKGNjYik7CisrCQkJCQkJCWFy Y21zcl9jY2JfY29tcGxldGUoY2NiLCAxKTsKKysJCQkJCX0KKysJCQkJCWJyZWFrOworKwkK KysJCQkJCWRlZmF1bHQ6CisrCQkJCQkJCXByaW50ayhLRVJOX05PVElDRQorKwkJCQkJCQkJ ImFyY21zciVkOiBzY3NpIGlkPSVkIGx1bj0lZCIKKysJCQkJCQkJCSIgcG9sbGluZyBhbmQg Z2V0dGluZyBjb21tYW5kIGVycm9yIGRvbmUiCisrCQkJCQkJCQkiYnV0IGdvdCB1bmtub3du IERldmljZVN0YXR1cyA9IDB4JXggXG4iCQorKwkJCQkJCQkJLCBhY2ItPmhvc3QtPmhvc3Rf bm8KKysJCQkJCQkJCSwgaWQKKysJCQkJCQkJCSwgbHVuCisrCQkJCQkJCQksIGNjYi0+YXJj bXNyX2NkYi5EZXZpY2VTdGF0dXMpOworKwkJCQkJCQlhY2ItPmRldnN0YXRlW2lkXVtsdW5d ID0gQVJFQ0FfUkFJRF9HT05FOworKwkJCQkJCQljY2ItPnBjbWQtPnJlc3VsdCA9IERJRF9C QURfVEFSR0VUIDw8IDE2OworKwkJCQkJCQlhcmNtc3JfY2NiX2NvbXBsZXRlKGNjYiwgMSk7 CQorKwkJCQkJYnJlYWs7CisrCQkJCQl9CisrCQkJCX0KKysJCQkJZm91bmQ9MTsKKysJCQl9 CisrCQl9CisrCQlpZihmb3VuZCl7CisrCQkJb3V0Ym91bmRfaW50c3RhdHVzID0gcmVhZGwo JnJlZy0+b3V0Ym91bmRfaW50c3RhdHVzKSAmIGFjYi0+b3V0Ym91bmRfaW50X2VuYWJsZTsK KysJCQl3cml0ZWwob3V0Ym91bmRfaW50c3RhdHVzLCAmcmVnLT5vdXRib3VuZF9pbnRzdGF0 dXMpOy8qY2xlYXIgaW50ZXJydXB0Ki8KKysJCX0KKysJCXJldHVybjsKKysgICAgICAJfSAg IAorKworKyAgICAgIAorKwlzdGF0aWMgdm9pZCBhcmNtc3JfcGNpX2Vyc19kaXNjb25uZWN0 X2ZvcmVwYXJ0KHN0cnVjdCBwY2lfZGV2ICpwZGV2KQorKyAgICAgIAl7CisrICAgICAJCXN0 cnVjdCBTY3NpX0hvc3QgKmhvc3Q9cGNpX2dldF9kcnZkYXRhKHBkZXYpOworKwkgICAgCXN0 cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2I9KHN0cnVjdCBBZGFwdGVyQ29udHJvbEJs b2NrICopIGhvc3QtPmhvc3RkYXRhOworKwkJc3RydWN0IE1lc3NhZ2VVbml0IF9faW9tZW0g KnJlZyA9IGFjYi0+cG11OwkKKysJCXN0cnVjdCBDb21tYW5kQ29udHJvbEJsb2NrICpjY2I7 CS8qY2xlYXIgYW5kIGFib3J0IGFsbCBvdXRib3VuZCBwb3N0ZWQgUSovCisrCQlpbnQgaT0w LGZvdW5kPTA7CQorKwkJaW50IGlkLCBsdW47CQorKwkJdWludDMyX3QgZmxhZ19jY2Isb3V0 Ym91bmRfaW50c3RhdHVzOwkJCisrCQkKKysJCXdoaWxlKCgoZmxhZ19jY2I9cmVhZGwoJnJl Zy0+b3V0Ym91bmRfcXVldWVwb3J0KSkgIT0gMHhGRkZGRkZGRikgJiYgKGkrKyA8IDI1Nikp ewkJCQorKwkJCWNjYiA9IChzdHJ1Y3QgQ29tbWFuZENvbnRyb2xCbG9jayAqKShhY2ItPnZp cjJwaHlfb2Zmc2V0ICsgKGZsYWdfY2NiIDw8IDUpKTsKKysJCQlpZihjY2IpeworKwkJCQlp ZiAoKGNjYi0+YWNiICE9IGFjYil8fChjY2ItPnN0YXJ0ZG9uZSAhPSBBUkNNU1JfQ0NCX1NU QVJUKSl7CisrCQkJCQlwcmludGsoS0VSTl9OT1RJQ0UgCisrCQkJCQkJImFyY21zciVkOiBw b2xsaW5nIGdldCBhbiBpbGxlZ2FsIGNjYiIKKysJCQkJCQkiIGNvbW1hbmQgZG9uZSBjY2I9 JzB4JXAnIgkJCisrCQkJCQkJImNjYm91dHN0YW5kaW5nY291bnQ9JWQgXG4iLCAJCQkKKysJ CQkJCQlhY2ItPmhvc3QtPmhvc3Rfbm8sIAorKwkJCQkJCWNjYiwgCisrCQkJCQkJYXRvbWlj X3JlYWQoJmFjYi0+Y2Nib3V0c3RhbmRpbmdjb3VudCkpOwkKKysJCQkJCWNvbnRpbnVlOwor KwkJCQl9CisrCisrCQkJCWlkID0gY2NiLT5wY21kLT5kZXZpY2UtPmlkOworKwkJCQlsdW4g PSBjY2ItPnBjbWQtPmRldmljZS0+bHVuOwkKKysJCQkJaWYgKCEoZmxhZ19jY2IgJiBBUkNN U1JfQ0NCUkVQTFlfRkxBR19FUlJPUikpCXsKKysJCQkJCWlmIChhY2ItPmRldnN0YXRlW2lk XVtsdW5dID09IEFSRUNBX1JBSURfR09ORSkKKysJCQkJCQlhY2ItPmRldnN0YXRlW2lkXVts dW5dID0gQVJFQ0FfUkFJRF9HT09EOworKwkJCQkJY2NiLT5wY21kLT5yZXN1bHQgPSBESURf T0sgPDwgMTY7CisrCQkJCQlhcmNtc3JfY2NiX2NvbXBsZXRlKGNjYiwgMSk7CisrCQkJCX0g CisrCQkJCWVsc2UgeworKwkJCQkJc3dpdGNoKGNjYi0+YXJjbXNyX2NkYi5EZXZpY2VTdGF0 dXMpIHsKKysJCQkJCWNhc2UgQVJDTVNSX0RFVl9TRUxFQ1RfVElNRU9VVDogeworKwkJCQkJ CQlhY2ItPmRldnN0YXRlW2lkXVtsdW5dID0gQVJFQ0FfUkFJRF9HT05FOworKwkJCQkJCQlj Y2ItPnBjbWQtPnJlc3VsdCA9IERJRF9OT19DT05ORUNUIDw8IDE2OworKwkJCQkJCQlhcmNt c3JfY2NiX2NvbXBsZXRlKGNjYiwgMSk7CisrCQkJCQl9CisrCQkJCQlicmVhazsJCQkJCQkK KysJCQorKwkJCQkJY2FzZSBBUkNNU1JfREVWX0FCT1JURUQ6CQkJCQkJCisrCisrCQkJCQlj YXNlIEFSQ01TUl9ERVZfSU5JVF9GQUlMOiB7CisrCQkJCQkJCWFjYi0+ZGV2c3RhdGVbaWRd W2x1bl0gPSBBUkVDQV9SQUlEX0dPTkU7CisrCQkJCQkJCWNjYi0+cGNtZC0+cmVzdWx0ID0g RElEX0JBRF9UQVJHRVQgPDwgMTY7CisrCQkJCQkJCWFyY21zcl9jY2JfY29tcGxldGUoY2Ni LCAxKTsJCisrCQkJCQl9CisrCQkJCQlicmVhazsKKysKKysJCQkJCWNhc2UgQVJDTVNSX0RF Vl9DSEVDS19DT05ESVRJT046IHsKKysJCQkJCQkJYWNiLT5kZXZzdGF0ZVtpZF1bbHVuXSA9 IEFSRUNBX1JBSURfR09PRDsJCisrCQkJCQkJCWFyY21zcl9yZXBvcnRfc2Vuc2VfaW5mbyhj Y2IpOworKwkJCQkJCQlhcmNtc3JfY2NiX2NvbXBsZXRlKGNjYiwgMSk7CisrCQkJCQl9Cisr CQkJCQlicmVhazsKKysJCisrCQkJCQlkZWZhdWx0OgorKwkJCQkJCQlwcmludGsoS0VSTl9O T1RJQ0UKKysJCQkJCQkJCSJhcmNtc3IlZDogc2NzaSBpZD0lZCBsdW49JWQiCisrCQkJCQkJ CQkiIHBvbGxpbmcgYW5kIGdldHRpbmcgY29tbWFuZCBlcnJvciBkb25lIgorKwkJCQkJCQkJ ImJ1dCBnb3QgdW5rbm93biBEZXZpY2VTdGF0dXMgPSAweCV4IFxuIgkKKysJCQkJCQkJCSwg YWNiLT5ob3N0LT5ob3N0X25vCisrCQkJCQkJCQksIGlkCisrCQkJCQkJCQksIGx1bgorKwkJ CQkJCQkJLCBjY2ItPmFyY21zcl9jZGIuRGV2aWNlU3RhdHVzKTsKKysJCQkJCQkJYWNiLT5k ZXZzdGF0ZVtpZF1bbHVuXSA9IEFSRUNBX1JBSURfR09ORTsKKysJCQkJCQkJY2NiLT5wY21k LT5yZXN1bHQgPSBESURfQkFEX1RBUkdFVCA8PCAxNjsKKysJCQkJCQkJYXJjbXNyX2NjYl9j b21wbGV0ZShjY2IsIDEpOwkKKysJCQkJCWJyZWFrOworKwkJCQkJfQorKwkJCQl9CisrCQkJ CWZvdW5kPTE7CisrCQkJfQorKwkJfQorKwkJaWYoZm91bmQpeworKwkJCW91dGJvdW5kX2lu dHN0YXR1cyA9IHJlYWRsKCZyZWctPm91dGJvdW5kX2ludHN0YXR1cykgJiBhY2ItPm91dGJv dW5kX2ludF9lbmFibGU7CisrCQkJd3JpdGVsKG91dGJvdW5kX2ludHN0YXR1cywgJnJlZy0+ b3V0Ym91bmRfaW50c3RhdHVzKTsvKmNsZWFyIGludGVycnVwdCovCisrCQl9CisrCQlyZXR1 cm47CisrfQorKyAgICAgIAorKyAgICAgIAlzdGF0aWMgcGNpX2Vyc19yZXN1bHRfdCBhcmNt c3JfcGNpX2Vycm9yX2RldGVjdGVkKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBwY2lfY2hhbm5l bF9zdGF0ZV90IHN0YXRlKQorKyAgICAgIAl7CisrICAgICAgICAgCXN3aXRjaCAoc3RhdGUp eworKyAgICAgICAgICAgICAgIAkJY2FzZSBwY2lfY2hhbm5lbF9pb19mcm96ZW46CisrCSAg ICAgICAgICAgICAgICAgICAgICAgCSBhcmNtc3JfcGNpX2Vyc19uZWVkX3Jlc2V0X2ZvcmVw YXJ0KHBkZXYpOworKyAgICAgICAgCSAgICAgICAgICAgICAgIAkgcmV0dXJuIFBDSV9FUlNf UkVTVUxUX05FRURfUkVTRVQ7CisrICAgICAgICAgICAgICAgCQljYXNlIHBjaV9jaGFubmVs X2lvX3Blcm1fZmFpbHVyZToKKysgICAgICAgICAgICAgICAgCSAgICAgICAJIGFyY21zcl9w Y2lfZXJzX2Rpc2Nvbm5lY3RfZm9yZXBhcnQocGRldik7CisrICAgICAgICAgICAgICAgICAg ICAgICAJCSByZXR1cm4gUENJX0VSU19SRVNVTFRfRElTQ09OTkVDVDsKKysgICAgICAgICAg ICAgICAgICAgICAgIAkJIGJyZWFrOworKyAgICAgICAgICAgICAgIAkJZGVmYXVsdDoKKysg ICAgICAgICAgICAgICAgICAgICAgIAkJIHJldHVybiBQQ0lfRVJTX1JFU1VMVF9ORUVEX1JF U0VUOworKyAgICAgICAgICAgIH0KKysJfQorKworKyNlbmRpZgorZGlmZiAtcHJ1TiAuLi9v cmlnLWxpbnV4LTIuNi4xOC9kcml2ZXJzL3Njc2kvYXJjbXNyL2FyY21zci5oIC4vZHJpdmVy cy9zY3NpL2FyY21zci9hcmNtc3IuaAorLS0tIC4uL29yaWctbGludXgtMi42LjE4L2RyaXZl cnMvc2NzaS9hcmNtc3IvYXJjbXNyLmgJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKKysrKyAuL2RyaXZlcnMvc2NzaS9hcmNtc3IvYXJjbXNyLmgJMjAwNy0wNi0xNCAx NjoyMjoxNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0wLDAgKzEsNTAzNSBAQAorKy8qCisrKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgICAgICAgTy5T ICAgOiBMaW51eAorKyoqICAgRklMRSBOQU1FICA6IGFyY21zci5oCisrKiogICAgICAgIEJZ ICAgIDogRXJpY2ggQ2hlbiAgIAorKyoqICAgRGVzY3JpcHRpb246IFNDU0kgUkFJRCBEZXZp Y2UgRHJpdmVyIGZvciAKKysqKiAgICAgICAgICAgICAgICBBUkNNU1IgUkFJRCBIb3N0IGFk YXB0ZXIKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoq IENvcHlyaWdodCAoQykgMjAwMiAtIDIwMDUsIEFyZWNhIFRlY2hub2xvZ3kgQ29ycG9yYXRp b24gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysqKgorKyoqICAgICBXZWIgc2l0ZTogd3d3LmFy ZWNhLmNvbS50dworKyoqICAgICAgIEUtbWFpbDogZXJpY2hAYXJlY2EuY29tLnR3CisrKioK KysqKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeQorKyoqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdmVyc2lvbiAyIGFzCisrKiogcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisrKiogVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrKiogYnV0 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysqKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS IFBVUlBPU0UuICBTZWUgdGhlCisrKiogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiBSZWRpc3RyaWJ1dGlv biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLHdpdGggb3Igd2l0aG91dAor KyoqIG1vZGlmaWNhdGlvbixhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv d2luZyBjb25kaXRpb25zCisrKiogYXJlIG1ldDoKKysqKiAxLiBSZWRpc3RyaWJ1dGlvbnMg b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKyoqICAg IG5vdGljZSx0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj bGFpbWVyLgorKyoqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisrKiogICAgbm90aWNlLHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisrKiog ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg dGhlIGRpc3RyaWJ1dGlvbi4KKysqKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1heSBu b3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKysqKiAgICBkZXJp dmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g cGVybWlzc2lvbi4KKysqKgorKyoqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF IEFVVEhPUiBgYEFTIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SCisrKiogSU1QTElFRCBXQVJS QU5USUVTLElOQ0xVRElORyxCVVQgTk9UIExJTUlURUQgVE8sVEhFIElNUExJRUQgV0FSUkFO VElFUworKyoqIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuCisrKiogSU4gTk8gRVZFTlQgU0hBTEwgVEhF IEFVVEhPUiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsSU5ESVJFQ1QsCisrKiogSU5DSURF TlRBTCxTUEVDSUFMLEVYRU1QTEFSWSxPUiBDT05TRVFVRU5USUFMIERBTUFHRVMoSU5DTFVE SU5HLEJVVAorKyoqIE5PVCBMSU1JVEVEIFRPLFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorKyoqIERBVEEsT1IgUFJPRklUUzsg T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKUhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKysq KiBUSEVPUlkgT0YgTElBQklMSVRZLFdIRVRIRVIgSU4gQ09OVFJBQ1QsU1RSSUNUIExJQUJJ TElUWSxPUiBUT1JUCisrKiooSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKUFS SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorKyoqIFRISVMgU09GVFdBUkUs RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKysq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKyovCisrI2luY2x1ZGUgPGxpbnV4L3ZlcnNpb24uaD4K KysjaWZuZGVmIEtFUk5FTF9WRVJTSU9OCisrICAgICNkZWZpbmUgS0VSTkVMX1ZFUlNJT04o ViwgUCwgUykJKCgoVikgPDwgMTYpICsgKChQKSA8PCA4KSArIChTKSkKKysjZW5kaWYKKysj aWYgZGVmaW5lZChfX1NNUF9fKSAmJiAhZGVmaW5lZChDT05GSUdfU01QKQorKyAgICAjZGVm aW5lIENPTkZJR19TTVAKKysjZW5kaWYKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNpZiBM SU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiwzLDMwKQorKwkjZGVmaW5l IEFSQ01TUl9NQVhfT1VUU1RBTkRJTkdfQ01EICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAyNTYKKysJI2RlZmluZSBBUkNNU1JfTUFYX0ZSRUVDQ0JfTlVN ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjg4IAor KyNlbHNlCisrCSNkZWZpbmUgQVJDTVNSX01BWF9PVVRTVEFORElOR19DTUQgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIzMAorKyAJI2RlZmluZSBBUkNN U1JfTUFYX0ZSRUVDQ0JfTlVNICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMjQwIAorKyNlbmRpZgorKyNpZm5kZWYgX191c2VyCisrICAgI2RlZmlu ZSBfX3VzZXIKKysjZW5kaWYKKysjaWZuZGVmIF9faW9tZW0KKysgICAjZGVmaW5lIF9faW9t ZW0gICAgICAgICAgCisrI2VuZGlmCisrI2RlZmluZSBBUkNNU1JfRFJJVkVSX1ZFUlNJT04g ICAgICAgICAgICAgICAgICAgICAgICAgIkRyaXZlciBWZXJzaW9uIDEuMjAuMFguMTQiCisr I2RlZmluZSBBUkNNU1JfU0NTSV9JTklUSUFUT1JfSUQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMjU1CisrI2RlZmluZSBBUkNNU1JfTUFYX1hGRVJf U0VDVE9SUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg NTEyIC8qICg1MTIqNTEyKSAvIDEwMjQgPSAweDAwNDAwMDAgKDI1NkspICovCisrI2RlZmlu ZSBBUkNNU1JfTUFYX1hGRVJfU0VDVE9SU19CICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICA0MDk2IC8qICg0MDk2KjUxMikgLyAxMDI0ID0gMHgwMTAwMDAw ICgxTSkgKi8KKysjZGVmaW5lIEFSQ01TUl9NQVhfVEFSR0VUSUQgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMTcgLyoxNyBtYXggdGFyZ2V0 IGlkICsgMSovCisrI2RlZmluZSBBUkNNU1JfTUFYX1RBUkdFVExVTiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA4IC8qOCovCisrI2RlZmlu ZSBBUkNNU1JfTUFYX0NNRF9QRVJMVU4gICAgICAgICAgICAgICAgICAgICAgICAgIEFSQ01T Ul9NQVhfT1VUU1RBTkRJTkdfQ01EIC8qIEFSQ01TUl9NQVhfRlJFRUNDQl9OVU0gIGlmIGVx LiAyNTYgd2lsbCBrZXJuZWwgcGFuaWMgYXQgMi4yLnggKi8KKysjZGVmaW5lIEFSQ01TUl9N QVhfUUJVRkZFUiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDQwOTYgLyogaW9jdGwgUUJVRkZFUiAqLworKyNkZWZpbmUgQVJDTVNSX01BWF9T R19FTlRSSUVTICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAzOCAvKiBtYXggMzgqLworKyNkZWZpbmUgQVJDTVNSX01BWF9BREFQVEVSICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNAorKyNk ZWZpbmUgQVJDTVNSX1NEX1RJTUVPVVQJCQkJCQkJCQk5MCooSFopCisrLyoKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisrKioKKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisrKi8KKysjaWZuZGVmIFBDSV9WRU5ET1JfSURfQVJFQ0EKKysJI2RlZmluZSBQQ0lf VkVORE9SX0lEX0FSRUNBICAgICAgMHgxN2QzIC8qIFZlbmRvciBJRAkqLworKwkjZGVmaW5l IFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTExMCAweDExMTAgLyogRGV2aWNlIElECSovCisrCSNk ZWZpbmUgUENJX0RFVklDRV9JRF9BUkVDQV8xMTIwIDB4MTEyMCAvKiBEZXZpY2UgSUQJKi8K KysJI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FSRUNBXzExMzAgMHgxMTMwIC8qIERldmljZSBJ RAkqLworKwkjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTE2MCAweDExNjAgLyogRGV2 aWNlIElECSovCisrCSNkZWZpbmUgUENJX0RFVklDRV9JRF9BUkVDQV8xMTcwIDB4MTE3MCAv KiBEZXZpY2UgSUQJKi8KKysJI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FSRUNBXzEyMTAgMHgx MjEwIC8qIERldmljZSBJRAkqLworKwkjZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTIy MCAweDEyMjAgLyogRGV2aWNlIElECSovCisrCSNkZWZpbmUgUENJX0RFVklDRV9JRF9BUkVD QV8xMjMwIDB4MTIzMCAvKiBEZXZpY2UgSUQJKi8KKysJI2RlZmluZSBQQ0lfREVWSUNFX0lE X0FSRUNBXzEyNjAgMHgxMjYwIC8qIERldmljZSBJRAkqLworKwkjZGVmaW5lIFBDSV9ERVZJ Q0VfSURfQVJFQ0FfMTI3MCAweDEyNzAgLyogRGV2aWNlIElECSovCisrCSNkZWZpbmUgUENJ X0RFVklDRV9JRF9BUkVDQV8xMjgwIDB4MTI4MCAvKiBEZXZpY2UgSUQJKi8KKysJI2RlZmlu ZSBQQ0lfREVWSUNFX0lEX0FSRUNBXzEzODAgMHgxMzgwIC8qIERldmljZSBJRAkqLworKwkj ZGVmaW5lIFBDSV9ERVZJQ0VfSURfQVJFQ0FfMTM4MSAweDEzODEgLyogRGV2aWNlIElECSov CisrCSNkZWZpbmUgUENJX0RFVklDRV9JRF9BUkVDQV8xNjgwIDB4MTY4MCAvKiBEZXZpY2Ug SUQJKi8KKysJI2RlZmluZSBQQ0lfREVWSUNFX0lEX0FSRUNBXzE2ODEgMHgxNjgxIC8qIERl dmljZSBJRAkqLworKyNlbmRpZgorKworKyNpZm5kZWYgUENJX0FOWV9JRAorKyAgICAjZGVm aW5lIFBDSV9BTllfSUQgKH4wKQorKyNlbmRpZgorKy8qCisrKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisr I2RlZmluZSBkbWFfYWRkcl9oaTMyKGFkZHIpICAgICAgICAgICAgICAgKHVpbnQzMl90KSAo KGFkZHI+PjE2KT4+MTYpCisrI2RlZmluZSBkbWFfYWRkcl9sbzMyKGFkZHIpICAgICAgICAg ICAgICAgKHVpbnQzMl90KSAoYWRkciAmIDB4ZmZmZmZmZmYpCisrCisrI2lmbmRlZiBETUFf NjRCSVRfTUFTSworKwkjZGVmaW5lIERNQV82NEJJVF9NQVNLCSAgICAgICAgICAgICAgMHhm ZmZmZmZmZmZmZmZmZmZmVUxMCisrCSNkZWZpbmUgRE1BXzMyQklUX01BU0sJICAgICAgICAg ICAgICAweDAwMDAwMDAwZmZmZmZmZmZVTEwKKysjZW5kaWYKKysKKysjaWYgTElOVVhfVkVS U0lPTl9DT0RFID49IEtFUk5FTF9WRVJTSU9OKDIsMywxMCkKKysgICAgI2RlZmluZSBhcmNn ZXRfcGNpY2ZnX2Jhc2UocGRldixuKSAgICAgICBwY2lfcmVzb3VyY2Vfc3RhcnQocGRldixu KQorKyNlbHNlCisrCSNkZWZpbmUgYXJjZ2V0X3BjaWNmZ19iYXNlKHBkZXYsbikgICAgICAg cGRldi0+YmFzZV9hZGRyZXNzW25dICYgUENJX0JBU0VfQUREUkVTU19NRU1fTUFTSworKyNl bmRpZgorKyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPCBLRVJORUxfVkVSU0lPTigyLDMsMzAp CisrCisrICAgICNpZiAoQklUU19QRVJfTE9ORyA9PSA2NCkKKysgICAgICAgdHlwZWRlZiB1 NjQgZG1hX2FkZHJfdDsKKysgICAgI2Vsc2UKKysgICAgICAgdHlwZWRlZiB1MzIgZG1hX2Fk ZHJfdDsKKysgICAgI2VuZGlmCisrCisrCXN0YXRpYyBpbmxpbmUgdm9pZCAqcGNpX2FsbG9j X2NvbnNpc3RlbnQoc3RydWN0IHBjaV9kZXYgKmh3ZGV2LCBzaXplX3Qgc2l6ZSwgZG1hX2Fk ZHJfdCAqZG1hX2hhbmRsZSkKKysJeworKwkJdm9pZCAqdmlydF9wdHI7CisrCisrCQl2aXJ0 X3B0ciA9IGttYWxsb2Moc2l6ZSwgR0ZQX0tFUk5FTCk7CisrCQkqZG1hX2hhbmRsZSA9IHZp cnRfdG9fYnVzKHZpcnRfcHRyKTsKKysJCXJldHVybiB2aXJ0X3B0cjsKKysJfQorKwkjZGVm aW5lIHBjaV9mcmVlX2NvbnNpc3RlbnQoY29va2llLCBzaXplLCBwdHIsIGRtYV9wdHIpCWtm cmVlKHB0cikKKysJI2RlZmluZSBwY2lfbWFwX3NpbmdsZShjb29raWUsIGFkZHJlc3MsIHNp emUsIGRpcikJdmlydF90b19idXMoYWRkcmVzcykKKysJI2RlZmluZSBwY2lfdW5tYXBfc2lu Z2xlKGNvb2tpZSwgYWRkcmVzcywgc2l6ZSwgZGlyKQorKyNlbmRpZgorKyNpZiBMSU5VWF9W RVJTSU9OX0NPREUgPj1LRVJORUxfVkVSU0lPTigyLDYsOSkKKysgICAgI2RlZmluZSBhcmNf bWRlbGF5KG1zZWMpICAgICAgICAgbXNsZWVwKG1zZWMpCisrICAgICNkZWZpbmUgYXJjX21k ZWxheV9pbnQobXNlYykgICAgIG1zbGVlcF9pbnRlcnJ1cHRpYmxlKG1zZWMpCisrI2Vsc2UK KysgICAgI2RlZmluZSBhcmNfbWRlbGF5KG1zZWMpICAgICAgICAgbWRlbGF5KG1zZWMpCisr ICAgICNkZWZpbmUgYXJjX21kZWxheV9pbnQobXNlYykgICAgIG1kZWxheShtc2VjKQorKyNl bmRpZgorKyNpZm5kZWYgc3Bpbl90cnlsb2NrX2lycXNhdmUKKysJCSNkZWZpbmUgc3Bpbl90 cnlsb2NrX2lycXNhdmUobG9jaywgZmxhZ3MpIFwKKysJCSh7IFwKKysJCQlsb2NhbF9pcnFf c2F2ZShmbGFncyk7IFwKKysJCQlzcGluX3RyeWxvY2sobG9jaykgPyBcCisrCQkJMSA6ICh7 bG9jYWxfaXJxX3Jlc3RvcmUoZmxhZ3MpOyAwO30pOyBcCisrCQl9KQorKyNlbmRpZiAvKiBp ZiBub3Qgc3Bpbl90cnlsb2NrX2lycXNhdmUgKi8KKysvKgorKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorKyoqICAgICAgICBNRVNTQUdFIENPTlRST0wgQ09ERQorKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorKyovCisrc3RydWN0IENNRF9NRVNTQUdFCisreworKyAgICAgIHVpbnQzMl90IEhlYWRl ckxlbmd0aDsKKysgICAgICB1aW50OF90ICBTaWduYXR1cmVbOF07CisrICAgICAgdWludDMy X3QgVGltZW91dDsKKysgICAgICB1aW50MzJfdCBDb250cm9sQ29kZTsKKysgICAgICB1aW50 MzJfdCBSZXR1cm5Db2RlOworKyAgICAgIHVpbnQzMl90IExlbmd0aDsKKyt9OworKy8qCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisrKiogICAgICAgICBJT1AgTWVzc2FnZSBUcmFuc2ZlciBEYXRhIGZvciB1c2VyIHNwYWNl CisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisrKi8KKytzdHJ1Y3QgQ01EX01FU1NBR0VfRklFTEQgCisreworKyAgICBzdHJ1Y3Qg Q01EX01FU1NBR0UgCQkJY21kbWVzc2FnZTsgLyppb2N0bCBoZWFkZXIqLworKyAgICB1aW50 OF90ICAgICAgICAgIAkJCW1lc3NhZ2VkYXRhYnVmZmVyWzEwMzJdOy8qYXJlY2EgZ3VpIHBy b2dyYW0gZG9lcyBub3QgYWNjZXB0IG1vcmUgdGhhbiAxMDMxIGJ5dGUqLworK307CisrLyog SU9QIG1lc3NhZ2UgdHJhbnNmZXIgKi8KKysjZGVmaW5lIEFSQ01TUl9NRVNTQUdFX0ZBSUwJ CQkJCQkweDAwMDEKKysvKmVycm9yIGNvZGUgZm9yIFN0b3JQb3J0TG9nRXJyb3IsU2NzaVBv cnRMb2dFcnJvciovCisrI2RlZmluZSBBUkNNU1JfSU9QX0VSUk9SX0lMTEVHQUxQQ0kgICAg ICAgICAgICAJMHgwMDAxCisrI2RlZmluZSBBUkNNU1JfSU9QX0VSUk9SX1ZFTkRPUklEICAg ICAgICAgICAgICAJMHgwMDAyCisrI2RlZmluZSBBUkNNU1JfSU9QX0VSUk9SX0RFVklDRUlE ICAgICAgICAgICAgICAJMHgwMDAyCisrI2RlZmluZSBBUkNNU1JfSU9QX0VSUk9SX0lMTEVH QUxDREIgICAgICAgICAgIAkweDAwMDMKKysjZGVmaW5lIEFSQ01TUl9JT1BfRVJST1JfVU5L Tk9XX0NEQkVSUiAgICAgICAgCTB4MDAwNAorKyNkZWZpbmUgQVJDTVNSX1NZU19FUlJPUl9N RU1PUllfQUxMT0NBVEUgICAgCTB4MDAwNQorKyNkZWZpbmUgQVJDTVNSX1NZU19FUlJPUl9N RU1PUllfQ1JPU1M0RyAgICAgCTB4MDAwNgorKyNkZWZpbmUgQVJDTVNSX1NZU19FUlJPUl9N RU1PUllfTEFDSyAgICAgICAgCTB4MDAwNworKyNkZWZpbmUgQVJDTVNSX1NZU19FUlJPUl9N RU1PUllfUkFOR0UgICAgICAgICAgIDB4MDAwOAorKyNkZWZpbmUgQVJDTVNSX1NZU19FUlJP Ul9ERVZJQ0VfQkFTRSAgICAgICAgICAgIDB4MDAwOQorKyNkZWZpbmUgQVJDTVNSX1NZU19F UlJPUl9QT1JUX1ZBTElEQVRFICAgICAgICAgIDB4MDAwQQorKy8qRGV2aWNlVHlwZSovCisr I2RlZmluZSBBUkVDQV9TQVRBX1JBSUQgICAgICAgICAgICAgICAgICAgICAgCTB4OTAwMDAw MDAKKysvKkZ1bmN0aW9uQ29kZSovCisrI2RlZmluZSBGVU5DVElPTl9SRUFEX1JRQlVGRkVS ICAgICAgICAgICAgICAgCTB4MDgwMQorKyNkZWZpbmUgRlVOQ1RJT05fV1JJVEVfV1FCVUZG RVIgICAgICAgICAgICAgIAkweDA4MDIKKysjZGVmaW5lIEZVTkNUSU9OX0NMRUFSX1JRQlVG RkVSICAgICAgICAgICAgICAJMHgwODAzCisrI2RlZmluZSBGVU5DVElPTl9DTEVBUl9XUUJV RkZFUiAgICAgICAgICAgICAgCTB4MDgwNAorKyNkZWZpbmUgRlVOQ1RJT05fQ0xFQVJfQUxM UUJVRkZFUiAgICAgICAgICAgIAkweDA4MDUKKysjZGVmaW5lIEZVTkNUSU9OX1JFVFVSTl9D T0RFXzNGICAgICAgICAgICAgICAJMHgwODA2CisrI2RlZmluZSBGVU5DVElPTl9TQVlfSEVM TE8gICAgICAgICAgICAgICAgICAgCTB4MDgwNworKyNkZWZpbmUgRlVOQ1RJT05fU0FZX0dP T0RCWUUgICAgICAgICAgICAgICAgICAgIDB4MDgwOAorKyNkZWZpbmUgRlVOQ1RJT05fRkxV U0hfQURBUFRFUl9DQUNIRSAgICAgICAgICAgCTB4MDgwOQorKy8qIEFSRUNBIElPIENPTlRS T0wgQ09ERSovCisrI2RlZmluZSBBUkNNU1JfTUVTU0FHRV9SRUFEX1JRQlVGRkVSICAgICAg ICAgICAJQVJFQ0FfU0FUQV9SQUlEIHwgRlVOQ1RJT05fUkVBRF9SUUJVRkZFUgorKyNkZWZp bmUgQVJDTVNSX01FU1NBR0VfV1JJVEVfV1FCVUZGRVIgICAgICAgICAgCUFSRUNBX1NBVEFf UkFJRCB8IEZVTkNUSU9OX1dSSVRFX1dRQlVGRkVSCisrI2RlZmluZSBBUkNNU1JfTUVTU0FH RV9DTEVBUl9SUUJVRkZFUiAgICAgICAgICAJQVJFQ0FfU0FUQV9SQUlEIHwgRlVOQ1RJT05f Q0xFQVJfUlFCVUZGRVIKKysjZGVmaW5lIEFSQ01TUl9NRVNTQUdFX0NMRUFSX1dRQlVGRkVS ICAgICAgICAgIAlBUkVDQV9TQVRBX1JBSUQgfCBGVU5DVElPTl9DTEVBUl9XUUJVRkZFUgor KyNkZWZpbmUgQVJDTVNSX01FU1NBR0VfQ0xFQVJfQUxMUUJVRkZFUiAgICAgICAgCUFSRUNB X1NBVEFfUkFJRCB8IEZVTkNUSU9OX0NMRUFSX0FMTFFCVUZGRVIKKysjZGVmaW5lIEFSQ01T Ul9NRVNTQUdFX1JFVFVSTl9DT0RFXzNGICAgICAgICAgIAlBUkVDQV9TQVRBX1JBSUQgfCBG VU5DVElPTl9SRVRVUk5fQ09ERV8zRgorKyNkZWZpbmUgQVJDTVNSX01FU1NBR0VfU0FZX0hF TExPICAgICAgICAgICAgICAgCUFSRUNBX1NBVEFfUkFJRCB8IEZVTkNUSU9OX1NBWV9IRUxM TworKyNkZWZpbmUgQVJDTVNSX01FU1NBR0VfU0FZX0dPT0RCWUUgICAgICAgICAgICAgICAg QVJFQ0FfU0FUQV9SQUlEIHwgRlVOQ1RJT05fU0FZX0dPT0RCWUUKKysjZGVmaW5lIEFSQ01T Ul9NRVNTQUdFX0ZMVVNIX0FEQVBURVJfQ0FDSEUgICAgICAgIEFSRUNBX1NBVEFfUkFJRCB8 IEZVTkNUSU9OX0ZMVVNIX0FEQVBURVJfQ0FDSEUKKysvKiBBUkVDQSBJT0NUTCBSZXR1cm5D b2RlICovCisrI2RlZmluZSBBUkNNU1JfTUVTU0FHRV9SRVRVUk5DT0RFX09LICAgICAgICAg ICAgICAweDAwMDAwMDAxCisrI2RlZmluZSBBUkNNU1JfTUVTU0FHRV9SRVRVUk5DT0RFX0VS Uk9SICAgICAgICAgICAweDAwMDAwMDA2CisrI2RlZmluZSBBUkNNU1JfTUVTU0FHRV9SRVRV Uk5DT0RFXzNGICAgICAgICAgICAgICAweDAwMDAwMDNGCisrLyogCisrKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoq ICAgc3RydWN0dXJlIGZvciBob2xkaW5nIERNQSBhZGRyZXNzIGRhdGEgCisrKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KyovCisrI2RlZmluZSBJU19TRzY0X0FERFIgICAgICAgICAgICAgICAgMHgwMTAwMDAwMCAv KiBiaXQyNCAqLworK3N0cnVjdCAgU0czMkVOVFJZICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogc2l6ZSA4IGJ5dGVzICovCisreyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAvKiBsZW5ndGggYml0IDI0ID09IDAgICAgICAgICAgICAg ICAgICAgICAgKi8KKysgICAgdWludDMyX3QJCQkJCQlsZW5ndGg7ICAgIC8qIGhpZ2ggOCBi aXQgPT0gZmxhZyxsb3cgMjQgYml0ID09IGxlbmd0aCAqLworKyAgICB1aW50MzJfdAkJCQkJ CWFkZHJlc3M7CisrfTsKKytzdHJ1Y3QgIFNHNjRFTlRSWSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIHNpemUgMTIgYnl0ZXMgKi8KKyt7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGxlbmd0aCBiaXQgMjQgPT0gMSAgICAgICAg ICAgICAgICAgICAgICAqLworKyAgCXVpbnQzMl90ICAgICAgIAkJCQkJbGVuZ3RoOyAgICAv KiBoaWdoIDggYml0ID09IGZsYWcsbG93IDI0IGJpdCA9PSBsZW5ndGggKi8KKysgICAJdWlu dDMyX3QgICAgICAgCQkJCQlhZGRyZXNzOworKyAgIAl1aW50MzJfdCAgICAgICAJCQkJCWFk ZHJlc3NoaWdoOworK307Cisrc3RydWN0IFNHRU5UUllfVU5JT04KKyt7CisrCXVuaW9uCisr CXsKKysgIAkJc3RydWN0IFNHMzJFTlRSWSAgICAgICAgICAgIHNnMzJlbnRyeTsgICAvKiAz MGggICBTY2F0dGVyIGdhdGhlciBhZGRyZXNzICAqLworKyAgCQlzdHJ1Y3QgU0c2NEVOVFJZ ICAgICAgICAgICAgc2c2NGVudHJ5OyAgIC8qIDMwaCAgICAgICAgICAgICAgICAgICAgICAg ICAgICovCisrCX11OworK307CisrLyogCisrKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqCisrKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyov Cisrc3RydWN0IEFSQ01TUl9QQ0lJTkZPCisreworKwl1aW50MTZfdCAJCQkJCQkJdmVuZG9y X2lkOworKwl1aW50MTZfdCAJCQkJCQkJZGV2aWNlX2lkOworKyAgICB1aW50MTZfdCAJCQkJ CQkJaXJxOworKyAgICB1aW50MTZfdCAgCQkJCQkJICAgIHJlc2VydmVkOworK307IAorKy8q CisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBJbnF1aXJ5IERh dGEgZm9ybWF0CisrKiogdHlwZWRlZiBzdHJ1Y3QgX0lOUVVJUllEQVRBCisrKiogeworKyoq ICAgIHVpbnQ4X3QgRGV2aWNlVHlwZSA6IDU7CisrKiogICAgdWludDhfdCBEZXZpY2VUeXBl UXVhbGlmaWVyIDogMzsKKysqKiAgICB1aW50OF90IERldmljZVR5cGVNb2RpZmllciA6IDc7 CisrKiogICAgdWludDhfdCBSZW1vdmFibGVNZWRpYSA6IDE7CisrKiogICAgdWludDhfdCBW ZXJzaW9uczsKKysqKiAgICB1aW50OF90IFJlc3BvbnNlRGF0YUZvcm1hdCA6IDQ7CisrKiog ICAgdWludDhfdCBIaVN1cHBvcnQgOiAxOworKyoqICAgIHVpbnQ4X3QgTm9ybUFDQSA6IDE7 CisrKiogICAgdWludDhfdCBSZXNlcnZlZEJpdCA6IDE7CisrKiogICAgdWludDhfdCBBRVJD IDogMTsKKysqKiAgICB1aW50OF90IEFkZGl0aW9uYWxMZW5ndGg7CisrKiogICAgdWludDhf dCBSZXNlcnZlZFsyXTsKKysqKiAgICB1aW50OF90IFNvZnRSZXNldCA6IDE7CisrKiogICAg dWludDhfdCBDb21tYW5kUXVldWUgOiAxOworKyoqICAgIHVpbnQ4X3QgUmVzZXJ2ZWQyIDog MTsKKysqKiAgICB1aW50OF90IExpbmtlZENvbW1hbmRzIDogMTsKKysqKiAgICB1aW50OF90 IFN5bmNocm9ub3VzIDogMTsKKysqKiAgICB1aW50OF90IFdpZGUxNkJpdCA6IDE7CisrKiog ICAgdWludDhfdCBXaWRlMzJCaXQgOiAxOworKyoqICAgIHVpbnQ4X3QgUmVsYXRpdmVBZGRy ZXNzaW5nIDogMTsKKysqKiAgICB1aW50OF90IFZlbmRvcklkWzhdOworKyoqICAgIHVpbnQ4 X3QgUHJvZHVjdElkWzE2XTsKKysqKiAgICB1aW50OF90IFByb2R1Y3RSZXZpc2lvbkxldmVs WzRdOworKyoqICAgIHVpbnQ4X3QgVmVuZG9yU3BlY2lmaWNbMjBdOworKyoqICAgIHVpbnQ4 X3QgUmVzZXJ2ZWQzWzQwXTsKKysqKiB9IElOUVVJUllEQVRBLCAqUElOUVVJUllEQVRBOwor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0cnVjdCBRQlVG RkVSCisreworKwl1aW50MzJfdCAgICAgZGF0YV9sZW47CisrICAgIHVpbnQ4X3QgICAgICBk YXRhWzEyNF07CisrfTsKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqICAgICAgRklSTVdBUkUgSU5GTworKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrc3RydWN0IEZJUk1XQVJFX0lORk8K Kyt7CisrCXVpbnQzMl90ICAgICAgc2lnbmF0dXJlOyAgICAgICAgICAgICAgICAvKjAsMDAt MDMqLworKwl1aW50MzJfdCAgICAgIHJlcXVlc3RfbGVuOyAgICAgICAgICAgICAgLyoxLDA0 LTA3Ki8KKysJdWludDMyX3QgICAgICBudW1iZXJzX3F1ZXVlOyAgICAgICAgICAgIC8qMiww OC0xMSovCisrCXVpbnQzMl90ICAgICAgc2RyYW1fc2l6ZTsgICAgICAgICAgICAgICAvKjMs MTItMTUqLworKwl1aW50MzJfdCAgICAgIGlkZV9jaGFubmVsczsgICAgICAgICAgICAgLyo0 LDE2LTE5Ki8KKysJY2hhciAgICAgICAgICB2ZW5kb3JbNDBdOyAgICAgICAgICAgICAgIC8q NSwyMC01OSovCisrCWNoYXIgICAgICAgICAgbW9kZWxbOF07ICAgICAgICAgICAgICAgICAv KjE1LDYwLTY3Ki8KKysJY2hhciAgICAgICAgICBmaXJtd2FyZV92ZXJbMTZdOyAgICAgICAg IC8qMTcsNjgtODMqLworKwljaGFyICAgICAgICAgIGRldmljZV9tYXBbMTZdOyAgICAgICAg ICAgLyoyMSw4NC05OSovCisrfTsKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFSRUNB IEZJUk1XQVJFIFNQRUMKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqKgkJVXNhZ2Ugb2YgSU9QMzMxIGFkYXB0ZXIKKysqKgkJKEFsbCBJbi9PdXQg aXMgaW4gSU9QMzMxJ3MgdmlldykKKysqKgkJMS4gTWVzc2FnZSAwIC0tPiBJbml0VGhyZWFk IG1lc3NhZ2UgYW5kIHJldHJ1biBjb2RlCisrKioJCTIuIERvb3JiZWxsIGlzIHVzZWQgZm9y IFJTLTIzMiBlbXVsYXRpb24KKysqKgkJCQlpbkRvb3JCZWxsIDogICAgYml0MCAtLSBkYXRh IGluIHJlYWR5ICAgICAgICAgICAgKERSSVZFUiBEQVRBIFdSSVRFIE9LKQorKyoqCQkJCQkJ CQliaXQxIC0tIGRhdGEgb3V0IGhhcyBiZWVuIHJlYWQgICAoRFJJVkVSIERBVEEgUkVBRCBP SykKKysqKgkJCQlvdXREb29lQmVsbDogICAgYml0MCAtLSBkYXRhIG91dCByZWFkeSAgICAg ICAgICAgKElPUDMzMSBEQVRBIFdSSVRFIE9LKQorKyoqCQkJCQkJCQliaXQxIC0tIGRhdGEg aW4gaGFzIGJlZW4gcmVhZCAgICAoSU9QMzMxIERBVEEgUkVBRCBPSykKKysqKgkJMy4gSW5k ZXggTWVtb3J5IFVzYWdlCisrKioJCQlvZmZzZXQgMHhmMDAgOiBmb3IgUlMyMzIgb3V0IChy ZXF1ZXN0IGJ1ZmZlcikKKysqKgkJCW9mZnNldCAweGUwMCA6IGZvciBSUzIzMiBpbiAgKHNj cmF0Y2ggYnVmZmVyKQorKyoqCQkJb2Zmc2V0IDB4YTAwIDogZm9yIGluYm91bmQgbWVzc2Fn ZSBjb2RlIG1lc3NhZ2VfcndidWZmZXIgKGRyaXZlciB0byBJT1AzMzEpCisrKioJCQlvZmZz ZXQgMHhhMDAgOiBmb3Igb3V0Ym91bmQgbWVzc2FnZSBjb2RlICBtZXNzYWdlX3J3YnVmZmVy IChJT1AzMzEgdG8gZHJpdmVyKQorKyoqCQk0LiBSUy0yMzIgZW11bGF0aW9uCisrKioJCQlD dXJyZW50bHkgMTI4IGJ5dGUgYnVmZmVyIGlzIHVzZWQKKysqKgkJCSAgICAgICAgICAxc3Qg dWludDMyX3QgOiBEYXRhIGxlbmd0aCAoMS0tMTI0KQorKyoqCQkJICAgICAgICBCeXRlIDQt LTEyNyA6IE1heCAxMjQgYnl0ZXMgb2YgZGF0YQorKyoqCQk1LiBQb3N0UQorKyoqCQlBbGwg U0NTSSBDb21tYW5kIG11c3QgYmUgc2VudCB0aHJvdWdoIHBvc3RROgorKyoqCQkoaW5ib3Vu ZCBxdWV1ZSBwb3J0KQlSZXF1ZXN0IGZyYW1lIG11c3QgYmUgMzIgYnl0ZXMgYWxpZ25lZCAK KysqKiAgICAgICAgICAgICMgICBiaXQyNy0tYml0MzEgPT4gZmxhZyBmb3IgcG9zdCBjY2Ig CisrKioJICAgICAgICAjICAgICBiaXQwLS1iaXQyNiA9PiByZWFsIGFkZHJlc3MgCisrKiog ICAgICAgICAgICAgICAgICAgKGJpdDI3LS1iaXQzMSkgb2YgcG9zdCBhcmNtc3JfY2RiICAK KysqKgkJCQkJCQkJCQkJCQliaXQzMSA6IDAgOiAyNTYgYnl0ZXMgZnJhbWUKKysqKgkJCQkJ CQkJCQkJCQkJCTEgOiA1MTIgYnl0ZXMgZnJhbWUKKysqKgkJCQkJCQkJCQkJCQliaXQzMCA6 IDAgOiBub3JtYWwgcmVxdWVzdAorKyoqCQkJCQkJCQkJCQkJCQkJMSA6IEJJT1MgcmVxdWVz dAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiaXQyOSA6IHJlc2VydmVkCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGJpdDI4IDogcmVzZXJ2ZWQKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0MjcgOiByZXNlcnZlZAor KyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKioJCShvdXRib3VudCBxdWV1ZSBw b3J0KQlSZXF1ZXN0IHJlcGx5ICAgICAgICAgICAgICAgICAgICAgICAgICAKKysqKiAgICAg ICAgICAgICMgICBiaXQyNy0tYml0MzEgPT4gZmxhZyBmb3IgcmVwbHkKKysqKgkJCSAgIyAg IGJpdDAtLWJpdDI2ID0+IHJlYWwgYWRkcmVzcyAoYml0MjctLWJpdDMxKSBvZiByZXBseSBh cmNtc3JfY2RiIAorKyoqCQkJCQkJCQkJCQkJCWJpdDMxIDogbXVzdCBiZSAwIChmb3IgdGhp cyB0eXBlIG9mIHJlcGx5KQorKyoqCQkJCQkJCQkJCQkJCWJpdDMwIDogcmVzZXJ2ZWQgZm9y IEJJT1MgaGFuZHNoYWtlCisrKioJCQkJCQkJCQkJCQkJYml0MjkgOiByZXNlcnZlZAorKyoq CQkJCQkJCQkJCQkJCWJpdDI4IDogMCA6IG5vIGVycm9yLCBpZ25vcmUgQWRhcFN0YXR1cy9E ZXZTdGF0dXMvU2Vuc2VEYXRhCisrKioJCQkJCQkJCQkJCQkJCQkxIDogRXJyb3IsIGVycm9y IGNvZGUgaW4gQWRhcFN0YXR1cy9EZXZTdGF0dXMvU2Vuc2VEYXRhCisrKioJCQkJCQkJCQkJ CQkJYml0MjcgOiByZXNlcnZlZAorKyoqCQk2LiBCSU9TIHJlcXVlc3QKKysqKgkJCUFsbCBC SU9TIHJlcXVlc3QgaXMgdGhlIHNhbWUgd2l0aCByZXF1ZXN0IGZyb20gUG9zdFEKKysqKgkJ CUV4Y2VwdCA6CisrKioJCQkJUmVxdWVzdCBmcmFtZSBpcyBzZW50IGZyb20gY29uZmlndXJh dGlvbiBzcGFjZQorKyoqCQkJCQkJCQlvZmZzZXQ6IDB4NzggOiBSZXF1ZXN0IEZyYW1lIChi aXQzMCA9PSAxKQorKyoqCQkJCQkJCQlvZmZzZXQ6IDB4MTggOiB3cml0ZW9ubHkgdG8gZ2Vu ZXJhdGUgSVJRIHRvIElPUDMzMQorKyoqCQkJCUNvbXBsZXRpb24gb2YgcmVxdWVzdDoKKysq KgkJCQkgICAgICAgICAgICAgICAgICAgICAgKGJpdDMwID09IDAsIGJpdDI4PT1lcnIgZmxh ZykKKysqKgkJNy4gRGVmaW5pdGlvbiBvZiBTR0wgZW50cnkgKHN0cnVjdHVyZSkKKysqKgkJ OC4gTWVzc2FnZTEgT3V0IC0gRGlhZyBTdGF0dXMgQ29kZSAoPz8/PykKKysqKgkJOS4gTWVz c2FnZTAgbWVzc2FnZSBjb2RlIDoKKysqKgkJCTB4MDAgOiBOT1AKKysqKgkJCTB4MDEgOiBH ZXQgQ29uZmlnIC0+b2Zmc2V0IDB4YTAwIDpmb3Igb3V0Ym91bmQgbWVzc2FnZSBjb2RlICBt ZXNzYWdlX3J3YnVmZmVyIChJT1AzMzEgdG8gZHJpdmVyKQorKyoqCQkJCQkJCQkJCQkJU2ln bmF0dXJlICAgICAgIDB4ODc5NzQwNjAoNCkKKysqKgkJCQkJCQkJCQkJCVJlcXVlc3QgbGVu ICAgICAweDAwMDAwMjAwKDQpCisrKioJCQkJCQkJCQkJCQkjIG9mIHF1ZXVlICAgICAgMHgw MDAwMDEwMCg0KQorKyoqCQkJCQkJCQkJCQkJU0RSQU0gU2l6ZSAgICAgIDB4MDAwMDAxMDAo NCktLT4yNTYgTUIKKysqKgkJCQkJCQkJCQkJCUlERSBDaGFubmVscyAgICAweDAwMDAwMDA4 KDQpCisrKioJCQkJCQkJCQkJCQl2ZW5kb3IgICAgICAgICAgNDAgYnl0ZXMgY2hhcgorKyoq CQkJCQkJCQkJCQkJbW9kZWwgICAgICAgICAgICA4IGJ5dGVzIGNoYXIKKysqKgkJCQkJCQkJ CQkJCUZpcm1WZXIgICAgICAgICAxNiBieXRlcyBjaGFyCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgIAkJCQkJRGV2aWNlIE1hcCAgICAgIDE2IEJ5dGVzCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgIAkJCQkJRmlybXdhcmVWZXJzaW9uIERXT1JEIDw9PSBBZGRlZCBm b3IgY2hlY2tpbmcgb2YgbmV3IGZpcm13YXJlIGNhcGFiaWxpdHkKKysqKgkJCTB4MDIgOiBT ZXQgQ29uZmlnIC0+b2Zmc2V0IDB4YTAwIDogZm9yIGluYm91bmQgbWVzc2FnZSBjb2RlIG1l c3NhZ2VfcndidWZmZXIgKGRyaXZlciB0byBJT1AzMzEpCisrKioJCQkJCQkJCQkJCQlTaWdu YXR1cmUgICAgICAgMHg4Nzk3NDA2Myg0KQorKyoqCQkJCQkJCQkJCQkJVVBQRVIzMiBvZiBS ZXF1ZXN0IEZyYW1lICAoNCktLT5Ecml2ZXIgT25seQorKyoqCQkJMHgwMyA6IFJlc2V0IChB Ym9ydCBhbGwgcXVldWVkIENvbW1hbmQpCisrKioJCQkweDA0IDogU3RvcCBCYWNrZ3JvdW5k IEFjdGl2aXR5CisrKioJCQkweDA1IDogRmx1c2ggQ2FjaGUKKysqKgkJCTB4MDYgOiBTdGFy dCBCYWNrZ3JvdW5kIEFjdGl2aXR5IChyZS1zdGFydCBpZiBiYWNrZ3JvdW5kIGlzIGhhbHRl ZCkKKysqKgkJCTB4MDcgOiBDaGVjayBJZiBIb3N0IENvbW1hbmQgUGVuZGluZyAoTm92ZWxs IE1heSBOZWVkIFRoaXMgRnVuY3Rpb24pCisrKioJCQkweDA4IDogU2V0IGNvbnRyb2xsZXIg dGltZSAtPm9mZnNldCAweGEwMCA6IGZvciBpbmJvdW5kIG1lc3NhZ2UgY29kZSBtZXNzYWdl X3J3YnVmZmVyIChkcml2ZXIgdG8gSU9QMzMxKQorKyoqCQkJICAgICAgICAJCQkJCQkJYnl0 ZSAwIDogMHhhYSA8LS0gc2lnbmF0dXJlCisrKiogICAgICAgICAgICAgICAgICAgICAgICAg IAkJCQkJYnl0ZSAxIDogMHg1NSA8LS0gc2lnbmF0dXJlCisrKioJCQkgICAgICAgIAkJCQkJ CQlieXRlIDIgOiB5ZWFyICgwNCkKKysqKgkJCSAgICAgICAgCQkJCQkJCWJ5dGUgMyA6IG1v bnRoICgxLi4xMikKKysqKgkJCSAgICAgICAgCQkJCQkJCWJ5dGUgNCA6IGRhdGUgKDEuLjMx KQorKyoqCQkJICAgICAgICAJCQkJCQkJYnl0ZSA1IDogaG91ciAoMC4uMjMpCisrKioJCQkg ICAgICAgIAkJCQkJCQlieXRlIDYgOiBtaW51dGUgKDAuLjU5KQorKyoqCQkJICAgICAgICAJ CQkJCQkJYnl0ZSA3IDogc2Vjb25kICgwLi41OSkKKysqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKysqLworKy8qIHNpZ25hdHVyZSBvZiBzZXQgYW5kIGdl dCBmaXJtd2FyZSBjb25maWcgKi8KKysjZGVmaW5lIEFSQ01TUl9TSUdOQVRVUkVfR0VUX0NP TkZJRyAgICAgICAgICAgICAgICAgICAweDg3OTc0MDYwCisrI2RlZmluZSBBUkNNU1JfU0lH TkFUVVJFX1NFVF9DT05GSUcgICAgICAgICAgICAgICAgICAgMHg4Nzk3NDA2MworKy8qIG1l c3NhZ2UgY29kZSBvZiBpbmJvdW5kIG1lc3NhZ2UgcmVnaXN0ZXIgKi8KKysjZGVmaW5lIEFS Q01TUl9JTkJPVU5EX01FU0cwX05PUCAgICAgICAgICAgICAgICAgICAgICAweDAwMDAwMDAw CisrI2RlZmluZSBBUkNNU1JfSU5CT1VORF9NRVNHMF9HRVRfQ09ORklHICAgICAgICAgICAg ICAgMHgwMDAwMDAwMQorKyNkZWZpbmUgQVJDTVNSX0lOQk9VTkRfTUVTRzBfU0VUX0NPTkZJ RyAgICAgICAgICAgICAgIDB4MDAwMDAwMDIKKysjZGVmaW5lIEFSQ01TUl9JTkJPVU5EX01F U0cwX0FCT1JUX0NNRCAgICAgICAgICAgICAgICAweDAwMDAwMDAzCisrI2RlZmluZSBBUkNN U1JfSU5CT1VORF9NRVNHMF9TVE9QX0JHUkIgICAgICAgICAgICAgICAgMHgwMDAwMDAwNAor KyNkZWZpbmUgQVJDTVNSX0lOQk9VTkRfTUVTRzBfRkxVU0hfQ0FDSEUgICAgICAgICAgICAg IDB4MDAwMDAwMDUKKysjZGVmaW5lIEFSQ01TUl9JTkJPVU5EX01FU0cwX1NUQVJUX0JHUkIg ICAgICAgICAgICAgICAweDAwMDAwMDA2CisrI2RlZmluZSBBUkNNU1JfSU5CT1VORF9NRVNH MF9DSEszMzFQRU5ESU5HICAgICAgICAgICAgMHgwMDAwMDAwNworKyNkZWZpbmUgQVJDTVNS X0lOQk9VTkRfTUVTRzBfU1lOQ19USU1FUiAgICAgICAgICAgICAgIDB4MDAwMDAwMDgKKysv KiBkb29yYmVsbCBpbnRlcnJ1cHQgZ2VuZXJhdG9yICovCisrI2RlZmluZSBBUkNNU1JfSU5C T1VORF9EUklWRVJfREFUQV9XUklURV9PSyAgICAgICAgICAgMHgwMDAwMDAwMQorKyNkZWZp bmUgQVJDTVNSX0lOQk9VTkRfRFJJVkVSX0RBVEFfUkVBRF9PSyAgICAgICAgICAgIDB4MDAw MDAwMDIKKysjZGVmaW5lIEFSQ01TUl9PVVRCT1VORF9JT1AzMzFfREFUQV9XUklURV9PSyAg ICAgICAgICAweDAwMDAwMDAxCisrI2RlZmluZSBBUkNNU1JfT1VUQk9VTkRfSU9QMzMxX0RB VEFfUkVBRF9PSyAgICAgICAgICAgMHgwMDAwMDAwMgorKy8qIGNjYiBhcmVjYSBjZGIgZmxh ZyAqLworKyNkZWZpbmUgQVJDTVNSX0NDQlBPU1RfRkxBR19TR0xfQlNJWkUgICAgICAgICAg ICAgICAgIDB4ODAwMDAwMDAKKysjZGVmaW5lIEFSQ01TUl9DQ0JQT1NUX0ZMQUdfSUFNX0JJ T1MgICAgICAgICAgICAgICAgICAweDQwMDAwMDAwCisrI2RlZmluZSBBUkNNU1JfQ0NCUkVQ TFlfRkxBR19JQU1fQklPUyAgICAgICAgICAgICAgICAgMHg0MDAwMDAwMAorKyNkZWZpbmUg QVJDTVNSX0NDQlJFUExZX0ZMQUdfRVJST1IgICAgICAgICAgICAgICAgICAgIDB4MTAwMDAw MDAKKysvKiBvdXRib3VuZCBmaXJtd2FyZSBvayAqLworKyNkZWZpbmUgQVJDTVNSX09VVEJP VU5EX01FU0cxX0ZJUk1XQVJFX09LICAgICAgICAgICAgIDB4ODAwMDAwMDAKKysvKgorKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICAg ICAgICAgICAgICAgICBNZXNzYWdpbmcgVW5pdCAoTVUpIG9mIHRoZSBJbnRlbCBSIDgwMzMx IEkvTyBwcm9jZXNzb3IgKDgwMzMxKQorKyoqICA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorKyoqCVRoZSBNZXNzYWdpbmcgVW5pdCAoTVUpIHRyYW5z ZmVycyBkYXRhIGJldHdlZW4gdGhlIFBDSSBzeXN0ZW0gYW5kIHRoZSA4MDMzMSAKKysqKiAg bm90aWZpZXMgdGhlIHJlc3BlY3RpdmUgc3lzdGVtIHdoZW4gbmV3IGRhdGEgYXJyaXZlcy4K KysqKglUaGUgUENJIHdpbmRvdyBmb3IgbWVzc2FnaW5nIHRyYW5zYWN0aW9ucyBpcyBhbHdh eXMgdGhlIGZpcnN0IDQgS2J5dGVzIG9mIHRoZSBpbmJvdW5kIHRyYW5zbGF0aW9uLgorKyoq CXdpbmRvdyBkZWZpbmVkIGJ5OiAKKysqKiAgICAgICAgICAgICAgICAgICAgMS5JbmJvdW5k IEFUVSBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgMCAoSUFCQVIwKSAKKysqKiAgICAgICAgICAg ICAgICAgICAgMi5JbmJvdW5kIEFUVSBMaW1pdCBSZWdpc3RlciAwIChJQUxSMCkKKysqKglB bGwgb2YgdGhlIE1lc3NhZ2luZyBVbml0IGVycm9ycyBhcmUgcmVwb3J0ZWQgaW4gdGhlIHNh bWUgbWFubmVyIGFzIEFUVSBlcnJvcnMuIAorKyoqICBFcnJvciBjb25kaXRpb25zIGFuZCBz dGF0dXMgY2FuIGJlIGZvdW5kIGluIDoKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMS5BVFVTUiAKKysqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMi5BVFVJU1IKKysqKj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgICAgTWVjaGFuaXNtICAg ICAgICBRdWFudGl0eSAgICAgICAgICAgICAgIEFzc2VydCBQQ0kgSW50ZXJydXB0IFNpZ25h bHMgICAgICBHZW5lcmF0ZSBJL08gUHJvY2Vzc29yIEludGVycnVwdAorKyoqLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBNZXNzYWdlIFJl Z2lzdGVycyAgICAgIDIgSW5ib3VuZCAgICAgICAgICAgICAgICAgICBPcHRpb25hbCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9wdGlvbmFsCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgMiBPdXRib3VuZCAgICAgICAgICAgICAgICAKKysqKi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgRG9vcmJlbGwgUmVnaXN0 ZXJzICAgICAxIEluYm91bmQgICAgICAgICAgICAgICAgICAgT3B0aW9uYWwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBPcHRpb25hbAorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgIDEgT3V0Ym91bmQgIAorKyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyoqICBDaXJjdWxhciBRdWV1ZXMgICAgICAgIDQgQ2lyY3VsYXIg UXVldWVzICAgICAgICAgICBVbmRlciBjZXJ0YWluIGNvbmRpdGlvbnMgICAgICAgICAgICAg IFVuZGVyIGNlcnRhaW4gY29uZGl0aW9ucworKyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBJbmRleCBSZWdpc3RlcnMgICAgIDEwMDQg MzItYml0IE1lbW9yeSBMb2NhdGlvbnMgICBObyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIE9wdGlvbmFsCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrKiogICAgIFBDSSBNZW1vcnkgTWFwOiBGaXJzdCA0IEtieXRl cyBvZiB0aGUgQVRVIEluYm91bmQgUENJIEFkZHJlc3MgU3BhY2UKKysqKj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMDAwMEggICAgICAg ICAgIFJlc2VydmVkCisrKiogIDAwMDRIICAgICAgICAgICBSZXNlcnZlZAorKyoqICAwMDA4 SCAgICAgICAgICAgUmVzZXJ2ZWQKKysqKiAgMDAwQ0ggICAgICAgICAgIFJlc2VydmVkCisr KiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgMDAxMEggCQkJSW5ib3VuZCBNZXNzYWdlIFJl Z2lzdGVyIDAgICAgICAgICAgICAgIF0KKysqKiAgMDAxNEggCQkJSW5ib3VuZCBNZXNzYWdl IFJlZ2lzdGVyIDEgICAgICAgICAgICAgIF0KKysqKiAgMDAxOEggCQkJT3V0Ym91bmQgTWVz c2FnZSBSZWdpc3RlciAwICAgICAgICAgICAgIF0KKysqKiAgMDAxQ0ggCQkJT3V0Ym91bmQg TWVzc2FnZSBSZWdpc3RlciAxICAgICAgICAgICAgIF0gICA0IE1lc3NhZ2UgUmVnaXN0ZXJz CisrKiotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgMDAyMEggCQkJSW5ib3VuZCBEb29yYmVs bCBSZWdpc3RlciAgICAgICAgICAgICAgIF0KKysqKiAgMDAyNEggCQkJSW5ib3VuZCBJbnRl cnJ1cHQgU3RhdHVzIFJlZ2lzdGVyICAgICAgIF0KKysqKiAgMDAyOEggCQkJSW5ib3VuZCBJ bnRlcnJ1cHQgTWFzayBSZWdpc3RlciAgICAgICAgIF0KKysqKiAgMDAyQ0ggCQkJT3V0Ym91 bmQgRG9vcmJlbGwgUmVnaXN0ZXIgICAgICAgICAgICAgIF0KKysqKiAgMDAzMEggCQkJT3V0 Ym91bmQgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3RlciAgICAgIF0KKysqKiAgMDAzNEggCQkJ T3V0Ym91bmQgSW50ZXJydXB0IE1hc2sgUmVnaXN0ZXIgICAgICAgIF0gICAyIERvb3JiZWxs IFJlZ2lzdGVycyBhbmQgNCBJbnRlcnJ1cHQgUmVnaXN0ZXJzCisrKiotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysqKiAgMDAzOEggCQkJUmVzZXJ2ZWQKKysqKiAgMDAzQ0ggCQkJUmVzZXJ2ZWQK KysqKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICAwMDQwSCAJCQlJbmJvdW5kIFF1ZXVlIFBv cnQgICAgICAgICAgICAgICAgICAgICAgXQorKyoqICAwMDQ0SCAJCQlPdXRib3VuZCBRdWV1 ZSBQb3J0ICAgICAgICAgICAgICAgICAgICAgXSAgIDIgUXVldWUgUG9ydHMKKysqKi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyoqICAwMDQ4SCAJCQlSZXNlcnZlZAorKyoqICAwMDRDSCAJCQlS ZXNlcnZlZAorKyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIDAwNTBIICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorKyoqICAgIDogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKysq KiAgICA6ICAgICAgSW50ZWwgWHNjYWxlIE1pY3JvYXJjaGl0ZWN0dXJlIExvY2FsIE1lbW9y eSAgICBdCisrKiogICAgOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXQorKyoqICAwRkZDSCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF0gICAxMDA0IEluZGV4IFJlZ2lzdGVycworKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0cnVjdCBNZXNzYWdlVW5pdAorK3sK KysJdWludDMyX3QJCQkJCQkJCXJlc3J2ZWQwWzRdOwkgICAgICAgICAgICAvKjAwMDAgMDAw RiovCisrCXVpbnQzMl90CQkJCQkJCQlpbmJvdW5kX21zZ2FkZHIwOwkgICAgICAgIC8qMDAx MCAwMDEzKi8KKysJdWludDMyX3QJCQkJCQkJCWluYm91bmRfbXNnYWRkcjE7CSAgICAgICAg LyowMDE0IDAwMTcqLworKwl1aW50MzJfdAkJCQkJCQkJb3V0Ym91bmRfbXNnYWRkcjA7CSAg ICAgICAgLyowMDE4IDAwMUIqLworKwl1aW50MzJfdAkJCQkJCQkJb3V0Ym91bmRfbXNnYWRk cjE7CSAgICAgICAgLyowMDFDIDAwMUYqLworKwl1aW50MzJfdAkJCQkJCQkJaW5ib3VuZF9k b29yYmVsbDsJICAgICAgICAvKjAwMjAgMDAyMyovCisrCXVpbnQzMl90CQkJCQkJCQlpbmJv dW5kX2ludHN0YXR1czsJICAgICAgICAvKjAwMjQgMDAyNyovCisrCXVpbnQzMl90CQkJCQkJ CQlpbmJvdW5kX2ludG1hc2s7CSAgICAgICAgLyowMDI4IDAwMkIqLworKwl1aW50MzJfdAkJ CQkJCQkJb3V0Ym91bmRfZG9vcmJlbGw7CSAgICAgICAgLyowMDJDIDAwMkYqLworKwl1aW50 MzJfdAkJCQkJCQkJb3V0Ym91bmRfaW50c3RhdHVzOwkgICAgICAgIC8qMDAzMCAwMDMzKi8K KysJdWludDMyX3QJCQkJCQkJCW91dGJvdW5kX2ludG1hc2s7CSAgICAgICAgLyowMDM0IDAw MzcqLworKwl1aW50MzJfdAkJCQkJCQkJcmVzZXJ2ZWQxWzJdOwkgICAgICAgICAgICAvKjAw MzggMDAzRiovCisrCXVpbnQzMl90CQkJCQkJCQlpbmJvdW5kX3F1ZXVlcG9ydDsJICAgICAg ICAvKjAwNDAgMDA0MyovCisrCXVpbnQzMl90CQkJCQkJCQlvdXRib3VuZF9xdWV1ZXBvcnQ7 ICAgICAJLyowMDQ0IDAwNDcqLworKwl1aW50MzJfdAkJCQkJCQkJcmVzZXJ2ZWQyWzJdOwkg ICAgICAgICAgICAvKjAwNDggMDA0RiovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXNlcnZlZDNbNDkyXTsgICAgICAgICAgICAgLyowMDUwIDA3RkYg Li4uLi4ubG9jYWxfYnVmZmVyIDQ5MiovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXNlcnZlZDRbMTI4XTsgICAgICAgICAgICAgLyowODAwIDA5RkYg ICAgICAgICAgICAgICAgICAgIDEyOCovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZXNzYWdlX3J3YnVmZmVyWzI1Nl07ICAgICAgLyowYTAwIDBERkYg ICAgICAgICAgICAgICAgICAgIDI1NiovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBtZXNzYWdlX3didWZmZXJbMzJdOyAgICAgICAgLyowRTAwIDBFN0Yg ICAgICAgICAgICAgICAgICAgICAzMiovCisrICAgIHVpbnQzMl90ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZDVbMzJdOyAgICAgICAgICAgICAgLyowRTgwIDBF RkYgICAgICAgICAgICAgICAgICAgICAzMiovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBtZXNzYWdlX3JidWZmZXJbMzJdOyAgICAgICAgLyowRjAwIDBG N0YgICAgICAgICAgICAgICAgICAgICAzMiovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXNlcnZlZDZbMzJdOyAgICAgICAgICAgICAgLyowRjgwIDBG RkYgICAgICAgICAgICAgICAgICAgICAzMiovCisrfTsKKysvKgorKyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICAgIHNpemUgMHgxRjggKDUwNCkK KysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0 cnVjdCBBUkNNU1JfQ0RCICAgICAgICAgICAgICAgICAgICAgICAgICAKKyt7CisrCXVpbnQ4 X3QgICAgIAkJCQkJCUJ1czsgICAgICAgICAgICAgIC8qIDAwaCAgIHNob3VsZCBiZSAwICAg ICAgICAgICAgKi8KKysJdWludDhfdCAgICAgCQkJCQkJVGFyZ2V0SUQ7ICAgICAgICAgLyog MDFoICAgc2hvdWxkIGJlIDAtLTE1ICAgICAgICAqLworKwl1aW50OF90ICAgICAJCQkJCQlM VU47ICAgICAgICAgICAgICAvKiAwMmggICBzaG91bGQgYmUgMC0tNyAgICAgICAgICovCisr CXVpbnQ4X3QgICAgIAkJCQkJCUZ1bmN0aW9uOyAgICAgICAgIC8qIDAzaCAgIHNob3VsZCBi ZSAxICAgICAgICAgICAgKi8KKysKKysJdWludDhfdCAgICAgCQkJCQkJQ2RiTGVuZ3RoOyAg ICAgICAgLyogMDRoICAgbm90IHVzZWQgbm93ICAgICAgICAgICAqLworKwl1aW50OF90ICAg ICAJCQkJCQlzZ2NvdW50OyAgICAgICAgICAvKiAwNWggICAgICAgICAgICAgICAgICAgICAg ICAgICovCisrCXVpbnQ4X3QgICAgIAkJCQkJCUZsYWdzOyAgICAgICAgICAgIC8qIDA2aCAg ICAgICAgICAgICAgICAgICAgICAgICAgKi8KKysjZGVmaW5lIEFSQ01TUl9DREJfRkxBR19T R0xfQlNJWkUgICAgICAgICAgMHgwMSAgIC8qIGJpdCAwOiAwKDI1NikgLyAxKDUxMikgYnl0 ZXMgICAgICAgICAqLworKyNkZWZpbmUgQVJDTVNSX0NEQl9GTEFHX0JJT1MgICAgICAgICAg ICAgICAweDAyICAgLyogYml0IDE6IDAoZnJvbSBkcml2ZXIpIC8gMShmcm9tIEJJT1MpICov CisrI2RlZmluZSBBUkNNU1JfQ0RCX0ZMQUdfV1JJVEUgICAgICAgICAgICAgIDB4MDQJICAv KiBiaXQgMjogMChEYXRhIGluKSAvIDEoRGF0YSBvdXQpICAgICAgKi8KKysjZGVmaW5lIEFS Q01TUl9DREJfRkxBR19TSU1QTEVRICAgICAgICAgICAgMHgwMAkgIC8qIGJpdCA0LzMgLDAw IDogc2ltcGxlIFEsMDEgOiBoZWFkIG9mIFEsMTAgOiBvcmRlcmVkIFEgKi8KKysjZGVmaW5l IEFSQ01TUl9DREJfRkxBR19IRUFEUSAgICAgICAgICAgICAgMHgwOAorKyNkZWZpbmUgQVJD TVNSX0NEQl9GTEFHX09SREVSRURRICAgICAgICAgICAweDEwCisrCXVpbnQ4X3QgICAgIAkJ CQkJCVJlc2VydmVkMTsgICAgICAgIC8qIDA3aCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KKysKKysJdWludDMyX3QgICAgIAkJCQkJCUNvbnRleHQ7ICAgICAgICAgIC8qIDA4 aCAgIEFkZHJlc3Mgb2YgdGhpcyByZXF1ZXN0ICovCisrCXVpbnQzMl90ICAgICAJCQkJCQlE YXRhTGVuZ3RoOyAgICAgICAvKiAwY2ggICBub3QgdXNlZCBub3cgICAgICAgICAgICAqLwor KworKwl1aW50OF90ICAgICAJCQkJCQlDZGJbMTZdOyAgICAgICAgICAvKiAxMGggICBTQ1NJ IENEQiAgICAgICAgICAgICAgICAqLworKwkvKgorKwkqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKwkqKkRldmljZSBTdGF0dXMg OiB0aGUgc2FtZSBmcm9tIFNDU0kgYnVzIGlmIGVycm9yIG9jY3VyIAorKwkqKiBTQ1NJIGJ1 cyBzdGF0dXMgY29kZXMuCisrCSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisrCSovCisrCXVpbnQ4X3QgICAgIAkJCQkJCURldmlj ZVN0YXR1czsgICAgIC8qIDIwaCAgIGlmIGVycm9yICAgICAgICAgICAgICAgICovCisrI2Rl ZmluZSBTQ1NJU1RBVF9HT09EICAgICAgICAgICAgICAgICAgCQkweDAwCisrI2RlZmluZSBT Q1NJU1RBVF9DSEVDS19DT05ESVRJT04gICAgICAgCQkweDAyCisrI2RlZmluZSBTQ1NJU1RB VF9DT05ESVRJT05fTUVUICAgICAgICAgCQkweDA0CisrI2RlZmluZSBTQ1NJU1RBVF9CVVNZ ICAgICAgICAgICAgICAgICAgCQkweDA4CisrI2RlZmluZSBTQ1NJU1RBVF9JTlRFUk1FRElB VEUgICAgICAgICAgCQkweDEwCisrI2RlZmluZSBTQ1NJU1RBVF9JTlRFUk1FRElBVEVfQ09O RF9NRVQgCQkweDE0CisrI2RlZmluZSBTQ1NJU1RBVF9SRVNFUlZBVElPTl9DT05GTElDVCAg CQkweDE4CisrI2RlZmluZSBTQ1NJU1RBVF9DT01NQU5EX1RFUk1JTkFURUQgICAgCQkweDIy CisrI2RlZmluZSBTQ1NJU1RBVF9RVUVVRV9GVUxMICAgICAgICAgICAgCQkweDI4CisrI2Rl ZmluZSBBUkNNU1JfREVWX1NFTEVDVF9USU1FT1VUICAgICAgICAgICAgICAgMHhGMAorKyNk ZWZpbmUgQVJDTVNSX0RFVl9BQk9SVEVEICAgICAgICAgICAgICAgICAgICAgIDB4RjEKKysj ZGVmaW5lIEFSQ01TUl9ERVZfSU5JVF9GQUlMICAgICAgICAgICAgICAgICAgICAweEYyCisr I2RlZmluZSBBUkNNU1JfREVWX0NIRUNLX0NPTkRJVElPTgkgICAgICAgIDB4MDIJCisrCXVp bnQ4X3QgICAgIAkJCQkJCVNlbnNlRGF0YVsxNV07ICAgIC8qIDIxaCAgIG91dHB1dCAgICAg ICAgICAgICAgICAgICovICAgICAgICAKKysKKysJdW5pb24KKysJeworKyAgCQlzdHJ1Y3Qg U0czMkVOVFJZICAgICAgICAgICAgICAgIHNnMzJlbnRyeVtBUkNNU1JfTUFYX1NHX0VOVFJJ RVNdOyAgICAgICAgLyogMzBoICAgU2NhdHRlciBnYXRoZXIgYWRkcmVzcyAgKi8KKysgIAkJ c3RydWN0IFNHNjRFTlRSWSAgICAgICAgICAgICAgICBzZzY0ZW50cnlbQVJDTVNSX01BWF9T R19FTlRSSUVTXTsgICAgICAgIC8qIDMwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisrCX0gdTsKKyt9OworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogICAgICAgICAgICAg ICAgICAgQ29tbWFuZCBDb250cm9sIEJsb2NrIChTcmJFeHRlbnNpb24pCisrKiogQ0NCIG11 c3QgYmUgbm90IGNyb3NzIHBhZ2UgYm91bmRhcnksYW5kIHRoZSBvcmRlciBmcm9tIG9mZnNl dCAwCisrKiogICAgICAgICBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBhbiBBVEEgZGlzayByZXF1 ZXN0CisrKiogICAgICAgICAgICAgdGhpcyBDQ0IgbGVuZ3RoIG11c3QgYmUgMzIgYnl0ZXMg Ym91bmRhcnkKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0cnVjdCBDb21tYW5kQ29udHJv bEJsb2NrIAorK3sKKysJc3RydWN0IEFSQ01TUl9DREIgICAgICAgCSAgICAgICAgYXJjbXNy X2NkYjsgICAgICAgICAgICAgIC8qIDAtNTAzIChzaXplIG9mIENEQj01MDQpOiBhcmNtc3Ig bWVzc2VuZ2VyIHNjc2kgY29tbWFuZCBkZXNjcmlwdG9yIHNpemUgNTA0IGJ5dGVzICovCisr CXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNkYl9zaGlmdGVkX3BoeWFk ZHI7ICAgICAvKiA1MDQtNTA3ICovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlc2VydmVkMTsgICAgICAgICAgICAgICAvKiA1MDgtNTExICovCisrI2lmIEJJ VFNfUEVSX0xPTkcgPT0gNjQKKysgICAgLyogID09PT09PT09PT09PT09PT09PT09PT01MTIr NjQgYnl0ZXM9PT09PT09PT09PT09PT09PT09PT09PT0gICovCisrCSAgICBzdHJ1Y3QgbGlz dF9oZWFkICAgICAgICAgICAgICAgIGxpc3Q7CQkgICAgICAgICAgICAgLyogNTEyLTUyNyAx NiBieXRlcyBuZXh0L3ByZXYgcHRycyBmb3IgY2NiIGxpc3RzICovCisrCQlzdHJ1Y3Qgc2Nz aV9jbW5kICogICAgICAgICAgICAgIHBjbWQ7ICAgICAgICAgICAgICAgICAgICAvKiA1Mjgt NTM1IDggYnl0ZXMgcG9pbnRlciBvZiBsaW51eCBzY3NpIGNvbW1hbmQgKi8KKysJCXN0cnVj dCBBZGFwdGVyQ29udHJvbEJsb2NrICogICAgYWNiOyAgICAgICAgICAgICAgICAgICAgLyog NTM2LTU0MyA4IGJ5dGVzIHBvaW50ZXIgb2YgYWNiICovCisrCSAgCisrCQl1aW50MTZfdCAg IAkJICAgICAgICAJCWNjYl9mbGFnczsgICAgICAgICAgICAgICAvKiA1NDQtNTQ1ICovCisr CSNkZWZpbmUJCUNDQl9GTEFHX1JFQUQJCSAgICAgICAgMHgwMDAwCisrCSNkZWZpbmUJCUND Ql9GTEFHX1dSSVRFCQkgICAgICAgIDB4MDAwMQorKwkjZGVmaW5lCQlDQ0JfRkxBR19FUlJP UgkJICAgICAgICAweDAwMDIKKysJI2RlZmluZQkJQ0NCX0ZMQUdfRkxVU0hDQUNIRQkgICAg ICAgIDB4MDAwNAorKwkjZGVmaW5lCQlDQ0JfRkxBR19NQVNURVJfQUJPUlRFRCAgICAgMHgw MDA4CisrCQl1aW50MTZfdCAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ZG9uZTsgICAg ICAgICAgICAgICAvKiA1NDYtNTQ3ICovCisrCSNkZWZpbmUJCUFSQ01TUl9DQ0JfRE9ORSAg IAkgICAgICAgIDB4MDAwMAorKwkjZGVmaW5lCQlBUkNNU1JfQ0NCX1NUQVJUICAgCSAgICAg ICAgMHg1NUFBCisrCSNkZWZpbmUJCUFSQ01TUl9DQ0JfQUJPUlRFRAkgICAgICAgIDB4QUE1 NQorKwkjZGVmaW5lCQlBUkNNU1JfQ0NCX0lMTEVHQUwJICAgICAgICAweEZGRkYKKysJCXVp bnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXJ2ZWQyWzddOyAgICAgICAgICAg IC8qIDU0OC01NTEgNTUyLTU1NSA1NTYtNTU5IDU2MC01NjMgNTY0LTU2NyA1NjgtNTcxIDU3 Mi01NzUgKi8KKysjZWxzZQorKwkvKiAgPT09PT09PT09PT09PT09PT09PT09PTUxMiszMiBi eXRlcz09PT09PT09PT09PT09PT09PT09PT09PSAgKi8KKysJICAgIHN0cnVjdCBsaXN0X2hl YWQgICAgICAgICAgICAgICAgbGlzdDsJCSAgICAgICAgICAgICAvKiA1MTItNTE5IDggYnl0 ZXMgbmV4dC9wcmV2IHB0cnMgZm9yIGNjYiBsaXN0cyAqLworKwkJc3RydWN0IHNjc2lfY21u ZCAqICAgICAgICAgICAgICBwY21kOyAgICAgICAgICAgICAgICAgICAgLyogNTIwLTUyMyA0 IGJ5dGVzIHBvaW50ZXIgb2YgbGludXggc2NzaSBjb21tYW5kICovCisrCQlzdHJ1Y3QgQWRh cHRlckNvbnRyb2xCbG9jayAqICAgIGFjYjsgICAgICAgICAgICAgICAgICAgIC8qIDUyNC01 MjcgNCBieXRlcyBwb2ludGVyIG9mIGFjYiAqLworKwkgIAorKwkJdWludDE2X3QgICAJCSAg ICAgICAgCQljY2JfZmxhZ3M7ICAgICAgICAgICAgICAgLyogNTI4LTUyOSAqLworKwkjZGVm aW5lCQlDQ0JfRkxBR19SRUFECQkgICAgICAgIDB4MDAwMAorKwkjZGVmaW5lCQlDQ0JfRkxB R19XUklURQkJICAgICAgICAweDAwMDEKKysJI2RlZmluZQkJQ0NCX0ZMQUdfRVJST1IJCSAg ICAgICAgMHgwMDAyCisrCSNkZWZpbmUJCUNDQl9GTEFHX0ZMVVNIQ0FDSEUJICAgICAgICAw eDAwMDQKKysJI2RlZmluZQkJQ0NCX0ZMQUdfTUFTVEVSX0FCT1JURUQgICAgIDB4MDAwOAor KwkJdWludDE2X3QgICAgICAgICAgICAgICAgICAgICAgICBzdGFydGRvbmU7ICAgICAgICAg ICAgICAgLyogNTMwLTUzMSAqLworKwkjZGVmaW5lCQlBUkNNU1JfQ0NCX0RPTkUgICAJICAg ICAgICAweDAwMDAKKysJI2RlZmluZQkJQVJDTVNSX0NDQl9TVEFSVCAgIAkgICAgICAgIDB4 NTVBQQorKwkjZGVmaW5lCQlBUkNNU1JfQ0NCX0FCT1JURUQJICAgICAgICAweEFBNTUKKysJ I2RlZmluZQkJQVJDTVNSX0NDQl9JTExFR0FMCSAgICAgICAgMHhGRkZGCisrCQl1aW50MzJf dCAgICAgICAgICAgICAgICAgICAgICAgIHJlc2VydmVkMlszXTsgICAgICAgICAgICAvKiA1 MzItNTM1IDUzNi01MzkgNTQwLTU0MyAqLworKyNlbmRpZgorKyAgICAvKiAgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAgKi8K Kyt9OworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogICAgICAgICAgICAgICAgIEFkYXB0 ZXIgQ29udHJvbCBCbG9jaworKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrc3RydWN0IEFkYXB0 ZXJDb250cm9sQmxvY2sKKyt7CisrICAgIHN0cnVjdCBwY2lfZGV2ICogICAgICAgICAgICAg ICAgcGRldjsKKysgICAgc3RydWN0IFNjc2lfSG9zdCAqCQkgICAgICAgIGhvc3Q7CisrCXVu c2lnbmVkIGxvbmcgICAgICAgICAgICAgICAgICAgdmlyMnBoeV9vZmZzZXQ7ICAgICAgICAg ICAgIAkvKiBPZmZzZXQgaXMgdXNlZCBpbiBtYWtpbmcgYXJjIGNkYiBwaHlzaWNhbCB0byB2 aXJ0dWFsIGNhbGN1bGF0aW9ucyAqLworKyAgICB1aW50MzJfdCAgICAgICAgICAgICAgICAg ICAgICAgIG91dGJvdW5kX2ludF9lbmFibGU7CisrCisrCXN0cnVjdCBNZXNzYWdlVW5pdCBf X2lvbWVtICogICAgcG11OyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCS8qIG1lc3Nh Z2UgdW5pdCBBVFUgaW5ib3VuZCBiYXNlIGFkZHJlc3MwICovCisrCisrCXVpbnQ4X3QgICAg ICAgICAgICAgICAgICAgCQlhZGFwdGVyX2luZGV4OyAgICAgICAgICAgICAgICAgICAJLyog ICovCisrCXVpbnQ4X3QgICAgICAgICAgIAkJCQlpcnE7ICAgICAgICAgICAgCisrCXVpbnQx Nl90ICAgICAgICAgICAJCQkJYWNiX2ZsYWdzOyAgICAgICAgICAgICAgICAgICAgICAgCS8q ICAqLworKyNkZWZpbmUgQUNCX0ZfU0NTSVNUT1BBREFQVEVSICAgICAgICAgMHgwMDAxCisr I2RlZmluZSBBQ0JfRl9NU0dfU1RPUF9CR1JCICAgICAgICAgICAweDAwMDIgICAgICAgICAg ICAgICAgICAgIAkJLyogc3RvcCBSQUlEIGJhY2tncm91bmQgcmVidWlsZCAqLworKyNkZWZp bmUgQUNCX0ZfTVNHX1NUQVJUX0JHUkIgICAgICAgICAgMHgwMDA0ICAgICAgICAgICAgICAg ICAgICAJCS8qIHN0b3AgUkFJRCBiYWNrZ3JvdW5kIHJlYnVpbGQgKi8KKysjZGVmaW5lIEFD Ql9GX0lPUERBVEFfT1ZFUkZMT1cgICAgICAgIDB4MDAwOCAgICAgICAgICAgICAgICAgICAg CQkvKiBpb3AgaW9jdGwgZGF0YSBycWJ1ZmZlciBvdmVyZmxvdyAqLworKyNkZWZpbmUgQUNC X0ZfTUVTU0FHRV9XUUJVRkZFUl9DTEVBUkVEICAweDAwMTAgICAgICAgICAgICAgICAgICAg IAkJLyogaW9jdGwgY2xlYXIgd3FidWZmZXIgKi8KKysjZGVmaW5lIEFDQl9GX01FU1NBR0Vf UlFCVUZGRVJfQ0xFQVJFRCAgMHgwMDIwICAgICAgICAgICAgICAgICAgICAJCS8qIGlvY3Rs IGNsZWFyIHJxYnVmZmVyICovCisrI2RlZmluZSBBQ0JfRl9NRVNTQUdFX1dRQlVGRkVSX1JF QURFRCAgIDB4MDA0MAorKyNkZWZpbmUgQUNCX0ZfQlVTX1JFU0VUICAgICAgICAgICAgICAg MHgwMDgwCisrI2RlZmluZSBBQ0JfRl9JT1BfSU5JVEVEICAgICAgICAgICAgICAweDAxMDAg ICAgICAgICAgICAgICAgICAgIAkJLyogaW9wIGluaXQgKi8KKysjZGVmaW5lIEFDQl9GX0hB VkVfTVNJICAgICAgICAgICAgICAgIDB4MDIwMCAgIAorKyNkZWZpbmUgQUNCX0ZfRklSTVdB UkVfVFJBUCAgICAgICAgICAgMHgwNDAwICAgCisrCisrICAgIHN0cnVjdCBDb21tYW5kQ29u dHJvbEJsb2NrICogICAgcGNjYl9wb29sW0FSQ01TUl9NQVhfRlJFRUNDQl9OVU1dOyAgICAg IC8qIHVzZWQgZm9yIG1lbW9yeSBmcmVlICovCisrCXN0cnVjdCBsaXN0X2hlYWQgICAgICAg ICAgICAgICAgY2NiX2ZyZWVfbGlzdDsJCSAgICAgICAgICAgICAgICAgICAgLyogaGVhZCBv ZiBmcmVlIGNjYiBsaXN0ICovCisrICAgIGF0b21pY190ICAgICAgICAgICAgICAgICAgICAg ICAgY2Nib3V0c3RhbmRpbmdjb3VudDsKKysKKysgICAgdm9pZCAqICAgICAgICAgICAgICAg ICAgICAgICAgICBkbWFfY29oZXJlbnQ7ICAgICAgICAgICAgICAgICAgICAgICAvKiBkbWFf Y29oZXJlbnQgdXNlZCBmb3IgbWVtb3J5IGZyZWUgKi8KKysgICAgZG1hX2FkZHJfdCAgICAg ICAgICAgICAgICAgICAgICBkbWFfY29oZXJlbnRfaGFuZGxlOyAgICAgICAgICAgICAgICAv KiBkbWFfY29oZXJlbnRfaGFuZGxlIHVzZWQgZm9yIG1lbW9yeSBmcmVlICovCisrCisrICAJ dWludDhfdCAgICAgICAgICAgICAgICAgICAgICAgICBycWJ1ZmZlcltBUkNNU1JfTUFYX1FC VUZGRVJdOyAgICAgIAkvKiBkYXRhIGNvbGxlY3Rpb24gYnVmZmVyIGZvciByZWFkIGZyb20g ODAzMzEgKi8KKysJaW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgICBycWJ1Zl9maXJz dGluZGV4OyAgICAgICAgICAgICAgICAgIAkvKiBmaXJzdCBvZiByZWFkIGJ1ZmZlciAgKi8K KysgICAgaW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgICBycWJ1Zl9sYXN0aW5kZXg7 ICAgICAgICAgICAgICAgICAgIAkvKiBsYXN0IG9mIHJlYWQgYnVmZmVyICAgKi8KKysKKysg ICAgdWludDhfdCAgICAgICAgICAgICAgICAgICAgICAgICB3cWJ1ZmZlcltBUkNNU1JfTUFY X1FCVUZGRVJdOyAgICAgIAkvKiBkYXRhIGNvbGxlY3Rpb24gYnVmZmVyIGZvciB3cml0ZSB0 byA4MDMzMSAgKi8KKysJaW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgICB3cWJ1Zl9m aXJzdGluZGV4OyAgICAgICAgICAgICAgICAgIAkvKiBmaXJzdCBvZiB3cml0ZSBidWZmZXIg Ki8KKysgICAgaW50MzJfdCAgICAgICAgICAgICAgICAgICAgICAgICB3cWJ1Zl9sYXN0aW5k ZXg7ICAgICAgICAgICAgICAgICAgIAkvKiBsYXN0IG9mIHdyaXRlIGJ1ZmZlciAgKi8KKysK KysjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oMiw1LDApCisrICAg IHNwaW5sb2NrX3QgICAgICAgICAgICAgICAgICAgICAgaXNyX2xvY2s7CisrI2VuZGlmCisr CisrCXVpbnQ4X3QgICAgICAgICAgICAgICAgICAgICAgICAgZGV2c3RhdGVbQVJDTVNSX01B WF9UQVJHRVRJRF1bQVJDTVNSX01BWF9UQVJHRVRMVU5dOyAvKiBpZDAgLi4uLi4gaWQxNSxs dW4wLi4ubHVuNyAqLworKyNkZWZpbmUgQVJFQ0FfUkFJRF9HT05FICAgICAgICAgICAgICAg MHg1NQorKyNkZWZpbmUgQVJFQ0FfUkFJRF9HT09EICAgICAgICAgICAgICAgMHhhYQorKwl1 aW50OF90CSAgICAgICAgICAgIAkJCWRldl9hYm9ydHNbQVJDTVNSX01BWF9UQVJHRVRJRF1b QVJDTVNSX01BWF9UQVJHRVRMVU5dOyAvKiBpZDAgLi4uLi4gaWQxNSxsdW4wLi4ubHVuNyAq LzsKKysgICAgdWludDMyX3QJCSAgICAgICAgICAgICAgICBudW1fYWJvcnRzOworKwl1aW50 MzJfdAkJICAgICAgICAgICAgICAgIG51bV9yZXNldHM7CisrCXVpbnQzMl90ICAgICAgICAg ICAgICAgICAgICAgICAgZmlybV9yZXF1ZXN0X2xlbjsgICAgICAgICAgICAgICAgICAgICAg IC8qMSwwNC0wNyovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAgICAgICAgICAgZmlybV9u dW1iZXJzX3F1ZXVlOyAgICAgICAgICAgICAgICAgICAgIC8qMiwwOC0xMSovCisrCXVpbnQz Ml90ICAgICAgICAgICAgICAgICAgICAgICAgZmlybV9zZHJhbV9zaXplOyAgICAgICAgICAg ICAgICAgICAgICAgIC8qMywxMi0xNSovCisrCXVpbnQzMl90ICAgICAgICAgICAgICAgICAg ICAgICAgZmlybV9pZGVfY2hhbm5lbHM7ICAgICAgICAgICAgICAgICAgICAgIC8qNCwxNi0x OSovCisrCWNoYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlybV9tb2RlbFsxMl07 CSAgICAgICAgICAgICAgICAgICAgICAgIC8qMTUsNjAtNjcqLworKwljaGFyICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZpcm1fdmVyc2lvblsyMF07ICAgICAgICAgIAorK307Cisr LyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKysqKiAKKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworK3N0 cnVjdCBIQ0JBUkMKKyt7CisrCXN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICogIAlhY2Jb QVJDTVNSX01BWF9BREFQVEVSXTsgCisrCisrICAgICAgICBpbnQzMl90ICAgICAgICAgICAg ICAgICAgICAgICAgIGFyY21zcl9tYWpvcl9udW1iZXI7CisrCXVpbnQ4X3QgICAgICAgICAg ICAgICAgICAgICAJYWRhcHRlckNudDsKKysJdWludDhfdCAgICAgICAgICAgICAgICAgICAg IAlyZXNlcnZlZFszXTsgICAgCisrfTsKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8K KysjZGVmaW5lIFNDU0lfU0VOU0VfQ1VSUkVOVF9FUlJPUlMJMHg3MAorKyNkZWZpbmUgU0NT SV9TRU5TRV9ERUZFUlJFRF9FUlJPUlMJMHg3MQorK3N0cnVjdCBTRU5TRV9EQVRBIAorK3sK KysgICAgdWludDhfdCBFcnJvckNvZGU6NzsKKysgICAgdWludDhfdCBWYWxpZDoxOy8qIDAg Ki8KKysgICAgdWludDhfdCBTZWdtZW50TnVtYmVyOy8qIDEgKi8KKysgICAgdWludDhfdCBT ZW5zZUtleTo0OworKyAgICB1aW50OF90IFJlc2VydmVkOjE7CisrICAgIHVpbnQ4X3QgSW5j b3JyZWN0TGVuZ3RoOjE7CisrICAgIHVpbnQ4X3QgRW5kT2ZNZWRpYToxOworKyAgICB1aW50 OF90IEZpbGVNYXJrOjE7LyogMiAqLworKyAgICB1aW50OF90IEluZm9ybWF0aW9uWzRdOy8q IDMgNCA1IDYgKi8KKysgICAgdWludDhfdCBBZGRpdGlvbmFsU2Vuc2VMZW5ndGg7LyogNyAq LworKyAgICB1aW50OF90IENvbW1hbmRTcGVjaWZpY0luZm9ybWF0aW9uWzRdOy8qIDggOSAx MCAxMSAqLworKyAgICB1aW50OF90IEFkZGl0aW9uYWxTZW5zZUNvZGU7LyogMTIgKi8KKysg ICAgdWludDhfdCBBZGRpdGlvbmFsU2Vuc2VDb2RlUXVhbGlmaWVyOy8qIDEzICovCisrICAg IHVpbnQ4X3QgRmllbGRSZXBsYWNlYWJsZVVuaXRDb2RlOy8qIDE0ICovCisrICAgIHVpbnQ4 X3QgU2Vuc2VLZXlTcGVjaWZpY1szXTsgLyogMTUgMTYgMTcgKi8KKyt9OworKy8qIAorKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgUGVyaXBoZXJhbCBEZXZp Y2UgVHlwZSBkZWZpbml0aW9ucyAKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisrKi8KKysjZGVmaW5lIFNDU0lfREFTRAkJICAgICAgMHgwMAkgICAvKiBEaXJlY3Qt YWNjZXNzIERldmljZQkgICAqLworKyNkZWZpbmUgU0NTSV9TRVFBQ0VTUwkJICAweDAxCSAg IC8qIFNlcXVlbnRpYWwtYWNjZXNzIGRldmljZSAqLworKyNkZWZpbmUgU0NTSV9QUklOVEVS CQkgIDB4MDIJICAgLyogUHJpbnRlciBkZXZpY2UJCSAgICovCisrI2RlZmluZSBTQ1NJX1BS T0NFU1NPUgkJICAweDAzCSAgIC8qIFByb2Nlc3NvciBkZXZpY2UJCSAgICovCisrI2RlZmlu ZSBTQ1NJX1dSSVRFT05DRQkJICAweDA0CSAgIC8qIFdyaXRlLW9uY2UgZGV2aWNlIAkgICAq LworKyNkZWZpbmUgU0NTSV9DRFJPTQkJICAgICAgMHgwNQkgICAvKiBDRC1ST00gZGV2aWNl CQkgICAgICAgKi8KKysjZGVmaW5lIFNDU0lfU0NBTk5FUgkJICAweDA2CSAgIC8qIFNjYW5u ZXIgZGV2aWNlCQkgICAqLworKyNkZWZpbmUgU0NTSV9PUFRJQ0FMCQkgIDB4MDcJICAgLyog T3B0aWNhbCBtZW1vcnkgZGV2aWNlCSAgICovCisrI2RlZmluZSBTQ1NJX01FRENIR1IJCSAg MHgwOAkgICAvKiBNZWRpdW0gY2hhbmdlciBkZXZpY2UJICAgKi8KKysjZGVmaW5lIFNDU0lf Q09NTQkJICAgICAgMHgwOQkgICAvKiBDb21tdW5pY2F0aW9ucyBkZXZpY2UJICAgKi8KKysj ZGVmaW5lIFNDU0lfTk9ERVYJCSAgICAgIDB4MUYJICAgLyogVW5rbm93biBvciBubyBkZXZp Y2UgdHlwZSovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKysqKgkJCQkgICAgICAgICBAQEBAQEBAQEBAQEBAQEBAQEBA QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBACisrKioJCQkJICAg ICAgICAgICAgICAgICAgICAgICAgICA4MDMzMSBQQ0ktdG8tUENJIEJyaWRnZQorKyoqCQkJ CSAgICAgICAgICAgICAgICAgICAgICAgICAgUENJIENvbmZpZ3VyYXRpb24gU3BhY2UgCisr KioJCQkJCisrKioJCQkJICAgICAgICAgQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBA QEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQAorKyoqCQkJCSAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQcm9ncmFtbWluZyBJbnRlcmZhY2UKKysqKgkJCQkgICAgICAgICAg ICAgICAgICAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PQorKyoqCQkJCSAgICAg ICAgICAgIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgQWRkcmVzcyBTcGFjZSBHcm91cGluZ3Mg YW5kIFJhbmdlcworKyoqCQkJCSAgICAgICAgID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKgkJCQkgICAgICAgICAg ICAgICAgIFJlZ2lzdGVyIEdyb3VwICAgICAgICAgICAgICAgICAgICAgIENvbmZpZ3VyYXRp b24gIE9mZnNldAorKyoqCQkJCSAgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKgkJCQkgICAgICAgICAg ICBTdGFuZGFyZCBQQ0kgQ29uZmlndXJhdGlvbiAgICAgICAgICAgICAgICAgICAgICAwMC0z RmgKKysqKgkJCQkgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKioJCQkJICAgICAgICAgICAgIERldmlj ZSBTcGVjaWZpYyBSZWdpc3RlcnMgICAgICAgICAgICAgICAgICAgICAgNDAtQTdoCisrKioJ CQkJICAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqCQkJCSAgICAgICAgICAgICAgICAgICBSZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEE4LUNCaAorKyoqCQkJCSAgICAg ICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysqKgkJCQkgICAgICAgICAgICAgIEVuaGFuY2VkIENhcGFiaWxpdHkg TGlzdCAgICAgICAgICAgICAgICAgICAgICBDQy1GRmgKKysqKiA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgU3RhbmRhcmQgUENJIFtUeXBlIDFdIENvbmZpZ3VyYXRpb24gU3BhY2Ug QWRkcmVzcyBNYXAKKysqKiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisrKiogfCAgICBCeXRlIDMgICAgICAgICAgICAgIHwgICAgICAg ICBCeXRlIDIgICAgICAgICB8ICAgICAgICBCeXRlIDEgICAgICAgICAgfCAgICAgICBCeXRl IDAgICAgICAgICAgICAgIHwgICBDb25maWd1LXJhdGlvbiBCeXRlIE9mZnNldAorKyoqIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysq KiB8ICAgICAgICAgICAgICAgICAgICBEZXZpY2UgSUQgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICBWZW5kb3IgSUQgICAgICAgICAgICAgICAgICAgICAgfCAw MGgKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrKiogfCAgICAgICAgICAgICAgICAgUHJpbWFyeSBTdGF0dXMgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgUHJpbWFyeSBDb21tYW5kICAgICAgICAgICAg ICAgICAgIHwgMDRoCisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgICAgICAgICAgICAgICAgQ2xhc3MgQ29kZSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgIFJl dklEICAgICAgICAgICAgICB8IDA4aAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICByZXNlcnZlZCAgICAg ICAgfCAgICAgIEhlYWRlciBUeXBlICAgICAgIHwgICAgICBQcmltYXJ5IE1MVCAgICAgICB8 ICAgICAgUHJpbWFyeSBDTFMgICAgICAgICAgfCAwQ2gKKysqKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogfCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTBoCisrKiogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0aAor KyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysqKiB8ICAgICBTZWNvbmRhcnkgTUxUICAgICAgfCBTdWJvcmRpbmF0ZSBCdXMgTnVt YmVyIHwgIFNlY29uZGFyeSBCdXMgTnVtYmVyICB8ICAgICBQcmltYXJ5IEJ1cyBOdW1iZXIg ICAgfCAxOGgKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrKiogfCAgICAgICAgICAgICAgICAgU2Vjb25kYXJ5IFN0YXR1cyAg ICAgICAgICAgICAgICB8ICAgICAgIEkvTyBMaW1pdCAgICAgICAgfCAgICAgICAgSS9PIEJh c2UgICAgICAgICAgIHwgMUNoCisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgICBOb24tcHJlZmV0Y2hhYmxlIE1l bW9yeSBMaW1pdCBBZGRyZXNzICAgICAgfCAgICAgICBOb24tcHJlZmV0Y2hhYmxlIE1lbW9y eSBCYXNlIEFkZHJlc3MgICAgICAgICB8IDIwaAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICBQcmVmZXRj aGFibGUgTWVtb3J5IExpbWl0IEFkZHJlc3MgICAgICAgIHwgICAgICAgICAgIFByZWZldGNo YWJsZSBNZW1vcnkgQmFzZSBBZGRyZXNzICAgICAgICAgfCAyNGgKKysqKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogfCAgICAg ICAgICAgICAgICAgICAgICAgICAgUHJlZmV0Y2hhYmxlIE1lbW9yeSBCYXNlIEFkZHJlc3Mg VXBwZXIgMzIgQml0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMjhoCisrKiog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyoqIHwgICAgICAgICAgICAgICAgICAgICAgICAgIFByZWZldGNoYWJsZSBNZW1vcnkgTGlt aXQgQWRkcmVzcyBVcHBlciAzMiBCaXRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IDJDaAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysqKiB8ICAgICAgICAgICAgIEkvTyBMaW1pdCBVcHBlciAxNiBCaXRzICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgIEkvTyBCYXNlIFVwcGVyIDE2ICAgICAgICAg ICAgICAgICAgfCAzMGgKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrKiogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIENhcGFi aWxpdGllcyBQb2ludGVyICAgIHwgMzRoCisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM4aAorKyoqIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICAg ICAgICAgICAgIEJyaWRnZSBDb250cm9sICAgICAgICAgICAgICAgIHwgIFByaW1hcnkgSW50 ZXJydXB0IFBpbiB8IFByaW1hcnkgSW50ZXJydXB0IExpbmUgICAgfCAzQ2gKKysqKj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysq LworKy8qCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrKiogIDB4MDMtMHgwMCA6IAorKyoqIEJpdCAgICAgICBEZWZhdWx0 ICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiozMToxNiAgICAgICAwMzM1aCAgICAgICAg ICAgIERldmljZSBJRCAoRElEKTogSW5kaWNhdGVzIHRoZSB1bmlxdWUgZGV2aWNlIElEIHRo YXQgaXMgYXNzaWduZWQgdG8gYnJpZGdlIGJ5IHRoZSBQQ0kgU0lHLgorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBJRCBpcyB1bmlxdWUgcGVyIHByb2R1Y3Qgc3BlZWQgYXMg aW5kaWNhdGVkLgorKyoqMTU6MDAgICAgICAgODA4NmggICAgICAgICAgICBWZW5kb3IgSUQg KFZJRCk6IDE2LWJpdCBmaWVsZCB3aGljaCBpbmRpY2F0ZXMgdGhhdCBJbnRlbCBpcyB0aGUg dmVuZG9yLgorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX1BDSTJQQ0lfVkVORE9S SURfUkVHCQkgICAgICAgICAweDAwICAgIC8qd29yZCovCisrI2RlZmluZSAgICAgQVJDTVNS X1BDSTJQQ0lfREVWSUNFSURfUkVHCQkgICAgICAgICAweDAyICAgIC8qd29yZCovCisrLyoK KysqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAweDA1LTB4MDQgOiBjb21tYW5k IHJlZ2lzdGVyIAorKyoqIEJpdCAgICAgICBEZWZhdWx0IAkJICAgICAgICAgICAgICAgRGVz Y3JpcHRpb24KKysqKjE1OjExICAgICAgICAwMGgJCSAgIAkJICAgICAgICAgICAgIFJlc2Vy dmVkCisrKiogMTAgICAgICAgICAgMAkJICAgCQkgICAgICAgICAgIEludGVycnVwdCBEaXNh YmxlOiBEaXNhYmxlcy9FbmFibGVzIHRoZSBnZW5lcmF0aW9uIG9mIEludGVycnVwdHMgb24g dGhlIHByaW1hcnkgYnVzLiAKKysqKiAgICAgICAgICAgICAgICAJCSAgIAkJICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVGhlIGJyaWRnZSBkb2VzIG5vdCBzdXBwb3J0IGludGVy cnVwdHMuCisrKiogMDkgICAgICAgICAgMAkJICAgCQkgICAgICAgICAgICAgICAgIEZCMkIg RW5hYmxlOiBFbmFibGVzL0Rpc2FibGVzIHRoZSBnZW5lcmF0aW9uIG9mIGZhc3QgYmFjayB0 byBiYWNrIHRyYW5zYWN0aW9ucyBvbiB0aGUgcHJpbWFyeSBidXMuIAorKyoqICAgICAgICAg ICAgICAgIAkJICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgYnJpZGdl IGRvZXMgbm90IGdlbmVyYXRlIGZhc3QgYmFjayB0byBiYWNrIHRyYW5zYWN0aW9ucyBvbiB0 aGUgcHJpbWFyeSBidXMuCisrKiogMDggICAgICAgICAgMAkJICAgCQkgICAgICAgICAgU0VS UiMgRW5hYmxlIChTRUUpOiBFbmFibGVzIHByaW1hcnkgYnVzIFNFUlIjIGFzc2VydGlvbnMu CisrKiogICAgICAgICAgICAgICAgCQkgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDA9VGhlIGJyaWRnZSBkb2VzIG5vdCBhc3NlcnQgUF9TRVJSIy4KKysqKiAgICAgICAg ICAgICAgICAJCSAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMT1UaGUgYnJp ZGdlIG1heSBhc3NlcnQgUF9TRVJSIywgc3ViamVjdCB0byBvdGhlciBwcm9ncmFtbWFibGUg Y3JpdGVyaWEuCisrKiogMDcgICAgICAgICAgMAkJICAgCQkgICAgV2FpdCBDeWNsZSBDb250 cm9sIChXQ0MpOiBBbHdheXMgcmV0dXJucyAwYnplcm8gaW5kaWNhdGluZyB0aGF0IGJyaWRn ZSBkb2VzIG5vdCBwZXJmb3JtIGFkZHJlc3Mgb3IgZGF0YSBzdGVwcGluZywKKysqKiAwNiAg ICAgICAgICAwCQkgICAJCSBQYXJpdHkgRXJyb3IgUmVzcG9uc2UgKFBFUik6IENvbnRyb2xz IGJyaWRnZSByZXNwb25zZSB0byBhIGRldGVjdGVkIHByaW1hcnkgYnVzIHBhcml0eSBlcnJv ci4KKysqKiAgICAgICAgICAgICAgICAJCSAgIAkJICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMD1XaGVuIGEgZGF0YSBwYXJpdHkgZXJyb3IgaXMgZGV0ZWN0ZWQgYnJpZGdlIGRv ZXMgbm90IGFzc2VydCBTX1BFUlIjLiAKKysqKiAgICAgICAgICAgICAgICAJCSAgIAkJICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFsc28gYnJpZGdlIGRvZXMgbm90IGFz c2VydCBQX1NFUlIjIGluIHJlc3BvbnNlIHRvIGEgZGV0ZWN0ZWQgYWRkcmVzcyBvciBhdHRy aWJ1dGUgcGFyaXR5IGVycm9yLgorKyoqICAgICAgICAgICAgICAgIAkJICAgCQkgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAxPVdoZW4gYSBkYXRhIHBhcml0eSBlcnJvciBpcyBk ZXRlY3RlZCBicmlkZ2UgYXNzZXJ0cyBTX1BFUlIjLiAKKysqKiAgICAgICAgICAgICAgICAJ CSAgIAkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBicmlkZ2UgYWxz byBhc3NlcnRzIFBfU0VSUiMgKHdoZW4gZW5hYmxlZCBnbG9iYWxseSB2aWEgYml0KDgpIG9m IHRoaXMgcmVnaXN0ZXIpIGluIHJlc3BvbnNlIHRvIGEgZGV0ZWN0ZWQgYWRkcmVzcyBvciBh dHRyaWJ1dGUgcGFyaXR5IGVycm9yLgorKyoqIDA1ICAgICAgICAgIDAJCSAgVkdBIFBhbGV0 dGUgU25vb3AgRW5hYmxlIChWR0FfUFNFKTogQ29udHJvbHMgYnJpZGdlIHJlc3BvbnNlIHRv IFZHQS1jb21wYXRpYmxlIHBhbGV0dGUgd3JpdGUgdHJhbnNhY3Rpb25zLiAKKysqKiAgICAg ICAgICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVkdB IHBhbGV0dGUgd3JpdGUgdHJhbnNhY3Rpb25zIGFyZSBJL08gdHJhbnNhY3Rpb25zIHdob3Nl IGFkZHJlc3MgYml0cyBhcmU6IFBfQURbOTowXSBlcXVhbCB0byAzQzZoLCAzQzhoIG9yIDND OWgKKysqKiAgICAgICAgICAgICAgICAJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgUF9BRFsxNToxMF0gYXJlIG5vdCBkZWNvZGVkIChpLmUuIGFsaWFzZXMgYXJl IGNsYWltZWQpLCBvciBhcmUgZnVsbHkgZGVjb2RpbmcgKGkuZS4sIG11c3QgYmUgYWxsIDAn cyBkZXBlbmRpbmcgdXBvbiB0aGUgVkdBIGFsaWFzaW5nIGJpdCBpbiB0aGUgQnJpZGdlIENv bnRyb2wgUmVnaXN0ZXIsIG9mZnNldCAzRWguCisrKiogICAgICAgICAgICAgICAgCQkgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBfQURbMzE6MTZdIGVxdWFsIHRv IDAwMDBoCisrKiogICAgICAgICAgICAgICAgCQkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDA9VGhlIGJyaWRnZSBpZ25vcmVzIFZHQSBwYWxldHRlIHdyaXRlIHRy YW5zYWN0aW9ucywgdW5sZXNzIGRlY29kZWQgYnkgdGhlIHN0YW5kYXJkIEkvTyBhZGRyZXNz IHJhbmdlIHdpbmRvdy4KKysqKiAgICAgICAgICAgICAgICAJCSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMT1UaGUgYnJpZGdlIHJlc3BvbmRzIHRvIFZHQSBwYWxl dHRlIHdyaXRlIHRyYW5zYWN0aW9ucyB3aXRoIG1lZGl1bSBERVZTRUwjIHRpbWluZyBhbmQg Zm9yd2FyZHMgdGhlbSB0byB0aGUgc2Vjb25kYXJ5IGJ1cy4KKysqKiAwNCAgICAgICAgICAw ICAgTWVtb3J5IFdyaXRlIGFuZCBJbnZhbGlkYXRlIEVuYWJsZSAoTVdJRSk6IFRoZSBicmlk Z2UgZG9lcyBub3QgcHJvbW90ZSBNVyB0cmFuc2FjdGlvbnMgdG8gTVdJIHRyYW5zYWN0aW9u cy4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBNV0kgdHJhbnNhY3Rpb25zIHRhcmdldGluZyByZXNvdXJjZXMgb24g dGhlIG9wcG9zaXRlIHNpZGUgb2YgdGhlIGJyaWRnZSwgaG93ZXZlciwgYXJlIGZvcndhcmRl ZCBhcyBNV0kgdHJhbnNhY3Rpb25zLgorKyoqIDAzICAgICAgICAgIDAgICAgICAgICAgICAg ICAgICBTcGVjaWFsIEN5Y2xlIEVuYWJsZSAoU0NFKTogVGhlIGJyaWRnZSBpZ25vcmVzIHNw ZWNpYWwgY3ljbGUgdHJhbnNhY3Rpb25zLiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgYml0IGlzIHJlYWQg b25seSBhbmQgYWx3YXlzIHJldHVybnMgMCB3aGVuIHJlYWQKKysqKiAwMiAgICAgICAgICAw ICAgICAgICAgICAgICAgICAgICAgQnVzIE1hc3RlciBFbmFibGUgKEJNRSk6IEVuYWJsZXMg YnJpZGdlIHRvIGluaXRpYXRlIG1lbW9yeSBhbmQgSS9PIHRyYW5zYWN0aW9ucyBvbiB0aGUg cHJpbWFyeSBpbnRlcmZhY2UuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbml0aWF0aW9uIG9mIGNvbmZpZ3VyYXRp b24gdHJhbnNhY3Rpb25zIGlzIG5vdCBhZmZlY3RlZCBieSB0aGUgc3RhdGUgb2YgdGhpcyBi aXQuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAwPVRoZSBicmlkZ2UgZG9lcyBub3QgaW5pdGlhdGUgbWVtb3J5IG9y IEkvTyB0cmFuc2FjdGlvbnMgb24gdGhlIHByaW1hcnkgaW50ZXJmYWNlLgorKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MT1UaGUgYnJpZGdlIGlzIGVuYWJsZWQgdG8gZnVuY3Rpb24gYXMgYW4gaW5pdGlhdG9yIG9u IHRoZSBwcmltYXJ5IGludGVyZmFjZS4KKysqKiAwMSAgICAgICAgICAwICAgICAgICAgICAg ICAgICAgIE1lbW9yeSBTcGFjZSBFbmFibGUgKE1TRSk6IENvbnRyb2xzIHRhcmdldCByZXNw b25zZSB0byBtZW1vcnkgdHJhbnNhY3Rpb25zIG9uIHRoZSBwcmltYXJ5IGludGVyZmFjZS4K KysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDA9VGhlIGJyaWRnZSB0YXJnZXQgcmVzcG9uc2UgdG8gbWVtb3J5IHRyYW5z YWN0aW9ucyBvbiB0aGUgcHJpbWFyeSBpbnRlcmZhY2UgaXMgZGlzYWJsZWQuCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxPVRoZSBicmlkZ2UgdGFyZ2V0IHJlc3BvbnNlIHRvIG1lbW9yeSB0cmFuc2FjdGlvbnMg b24gdGhlIHByaW1hcnkgaW50ZXJmYWNlIGlzIGVuYWJsZWQuCisrKiogMDAgICAgICAgICAg MCAgICAgICAgICAgICAgICAgICAgIEkvTyBTcGFjZSBFbmFibGUgKElPU0UpOiBDb250cm9s cyB0YXJnZXQgcmVzcG9uc2UgdG8gSS9PIHRyYW5zYWN0aW9ucyBvbiB0aGUgcHJpbWFyeSBp bnRlcmZhY2UuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAwPVRoZSBicmlkZ2UgdGFyZ2V0IHJlc3BvbnNlIHRvIEkv TyB0cmFuc2FjdGlvbnMgb24gdGhlIHByaW1hcnkgaW50ZXJmYWNlIGlzIGRpc2FibGVkLgor KyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMT1UaGUgYnJpZGdlIHRhcmdldCByZXNwb25zZSB0byBJL08gdHJhbnNhY3Rp b25zIG9uIHRoZSBwcmltYXJ5IGludGVyZmFjZSBpcyBlbmFibGVkLgorKyoqPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9QUklN QVJZX0NPTU1BTkRfUkVHCQkgMHgwNCAgICAvKndvcmQqLworKyNkZWZpbmUgICAgIFBDSV9E SVNBQkxFX0lOVEVSUlVQVCAgICAgICAgICAweDA0MDAKKysvKgorKyoqPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrKiogIDB4MDctMHgwNiA6IHN0YXR1cyByZWdpc3RlciAKKysqKiBC aXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysq KiAxNSAgICAgICAgICAwICAgICAgICAgICAgICAgICAgICAgICBEZXRlY3RlZCBQYXJpdHkg RXJyb3I6IFRoZSBicmlkZ2Ugc2V0cyB0aGlzIGJpdCB0byBhIDFiIHdoZW5ldmVyIGl0IGRl dGVjdHMgYW4gYWRkcmVzcywgYXR0cmlidXRlIG9yIGRhdGEgcGFyaXR5IGVycm9yLiAKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRoaXMgYml0IGlzIHNldCByZWdhcmRsZXNzIG9mIHRoZSBzdGF0ZSBvZiB0aGUg UEVSIGJpdCBpbiB0aGUgY29tbWFuZCByZWdpc3Rlci4KKysqKiAxNCAgICAgICAgICAwICAg ICAgICAgICAgICAgICAgICAgICBTaWduYWxlZCBTeXN0ZW0gRXJyb3I6IFRoZSBicmlkZ2Ug c2V0cyB0aGlzIGJpdCB0byBhIDFiIHdoZW5ldmVyIGl0IGFzc2VydHMgU0VSUiMgb24gdGhl IHByaW1hcnkgYnVzLgorKyoqIDEzICAgICAgICAgIDAgICAgICAgICAgICAgICAgICAgICAg IFJlY2VpdmVkIE1hc3RlciBBYm9ydDogVGhlIGJyaWRnZSBzZXRzIHRoaXMgYml0IHRvIGEg MWIgd2hlbiwgYWN0aW5nIGFzIHRoZSBpbml0aWF0b3Igb24gdGhlIHByaW1hcnkgYnVzLCBp dHMgdHJhbnNhY3Rpb24gKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzcGVjaWFsIGN5Y2xlcykg aGFzIGJlZW4gdGVybWluYXRlZCB3aXRoIGEgTWFzdGVyIEFib3J0LgorKyoqIDEyICAgICAg ICAgIDAgICAgICAgICAgICAgICAgICAgICAgIFJlY2VpdmVkIFRhcmdldCBBYm9ydDogVGhl IGJyaWRnZSBzZXRzIHRoaXMgYml0IHRvIGEgMWIgd2hlbiwgYWN0aW5nIGFzIHRoZSBpbml0 aWF0b3Igb24gdGhlIHByaW1hcnkgYnVzLCBpdHMgdHJhbnNhY3Rpb24gaGFzIGJlZW4gdGVy bWluYXRlZCB3aXRoIGEgVGFyZ2V0IEFib3J0LgorKyoqIDExICAgICAgICAgIDAgICAgICAg ICAgICAgICAgICAgICAgIFNpZ25hbGVkIFRhcmdldCBBYm9ydDogVGhlIGJyaWRnZSBzZXRz IHRoaXMgYml0IHRvIGEgMWIgd2hlbiBpdCwgYXMgdGhlIHRhcmdldCBvZiBhIHRyYW5zYWN0 aW9uLCB0ZXJtaW5hdGVzIGl0IHdpdGggYSBUYXJnZXQgQWJvcnQuIAorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW4g UENJLVggbW9kZSB0aGlzIGJpdCBpcyBhbHNvIHNldCB3aGVuIGl0IGZvcndhcmRzIGEgU0NN IHdpdGggYSB0YXJnZXQgYWJvcnQgZXJyb3IgY29kZS4KKysqKiAxMDowOSAgICAgICAwMSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWU0VMIyBUaW1pbmc6IEluZGljYXRlcyBz bG93ZXN0IHJlc3BvbnNlIHRvIGEgbm9uLWNvbmZpZ3VyYXRpb24gY29tbWFuZCBvbiB0aGUg cHJpbWFyeSBpbnRlcmZhY2UuIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmV0dXJucyChpzAxYqGoIHdoZW4gcmVh ZCwgaW5kaWNhdGluZyB0aGF0IGJyaWRnZSByZXNwb25kcyBubyBzbG93ZXIgdGhhbiB3aXRo IG1lZGl1bSB0aW1pbmcuCisrKiogMDggICAgICAgICAgMCAgICAgICAgICAgICAgICAgICAg TWFzdGVyIERhdGEgUGFyaXR5IEVycm9yOiBUaGUgYnJpZGdlIHNldHMgdGhpcyBiaXQgdG8g YSAxYiB3aGVuIGFsbCBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHRydWU6IFRo ZSBicmlkZ2UgaXMgdGhlIGN1cnJlbnQgbWFzdGVyIG9uIHRoZSBwcmltYXJ5IGJ1cworKyoq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgU19QRVJSIyBpcyBkZXRlY3RlZCBhc3NlcnRlZCBvciBpcyBhc3NlcnRlZCBieSBi cmlkZ2UKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFRoZSBQYXJpdHkgRXJyb3IgUmVzcG9uc2UgYml0IGlzIHNldCBp biB0aGUgQ29tbWFuZCByZWdpc3RlcgorKyoqIDA3ICAgICAgICAgIDEgICAgICAgICAgICAg ICAgICAgRmFzdCBCYWNrIHRvIEJhY2sgQ2FwYWJsZTogUmV0dXJucyBhIDFiIHdoZW4gcmVh ZCBpbmRpY2F0aW5nIHRoYXQgYnJpZGdlIGlzIGFibGUgdG8gcmVzcG9uZCB0byBmYXN0IGJh Y2sgdG8gYmFjayB0cmFuc2FjdGlvbnMgb24gaXRzIHByaW1hcnkgaW50ZXJmYWNlLgorKyoq IDA2ICAgICAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisr KiogMDUgICAgICAgICAgMSAgICAgICAgICAgICAgICAgICA2NiBNSHogQ2FwYWJsZSBJbmRp Y2F0aW9uOiBSZXR1cm5zIGEgMWIgd2hlbiByZWFkIGluZGljYXRpbmcgdGhhdCBicmlkZ2Ug cHJpbWFyeSBpbnRlcmZhY2UgaXMgNjYgTUh6IGNhcGFibGUuCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxID0KKysq KiAwNCAgICAgICAgICAxICAgICAgICAgICAgICAgICAgICBDYXBhYmlsaXRpZXMgTGlzdCBF bmFibGU6IFJldHVybnMgMWIgd2hlbiByZWFkIGluZGljYXRpbmcgdGhhdCBicmlkZ2Ugc3Vw cG9ydHMgUENJIHN0YW5kYXJkIGVuaGFuY2VkIGNhcGFiaWxpdGllcy4gCisrKiogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBP ZmZzZXQgMzRoIChDYXBhYmlsaXR5IFBvaW50ZXIgcmVnaXN0ZXIpIHByb3ZpZGVzIHRoZSBv ZmZzZXQgZm9yIHRoZSBmaXJzdCBlbnRyeSBpbiB0aGUgbGlua2VkIGxpc3Qgb2YgZW5oYW5j ZWQgY2FwYWJpbGl0aWVzLgorKyoqIDAzICAgICAgICAgIDAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgSW50ZXJydXB0IFN0YXR1czogUmVmbGVjdHMgdGhlIHN0YXRlIG9mIHRoZSBp bnRlcnJ1cHQgaW4gdGhlIGRldmljZS9mdW5jdGlvbi4KKysqKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBicmlkZ2Ug ZG9lcyBub3Qgc3VwcG9ydCBpbnRlcnJ1cHRzLgorKyoqIDAyOjAwICAgICAgIDAwMCAgICAg ICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisrKio9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9QQ0kyUENJX1BSSU1BUllfU1RBVFVT X1JFRwkgICAgIDB4MDYgICAgLyp3b3JkOiAwNiwwNyAqLworKyNkZWZpbmUgICAgICAgICAg QVJDTVNSX0FEQVBfNjZNSFogICAgICAgICAweDIwCisrLyoKKysqKj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorKyoqICAweDA4IDogcmV2aXNpb24gSUQgCisrKiogQml0ICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogMDc6MDAgICAg ICAgMDAwMDAwMDAgICAgICAgICAgICAgICAgICBSZXZpc2lvbiBJRCAoUklEKTogJzAwaCcg aW5kaWNhdGluZyBicmlkZ2UgQS0wIHN0ZXBwaW5nLgorKyoqPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9SRVZJU0lPTklEX1JF RwkJICAgICAweDA4ICAgIC8qYnl0ZSovCisrLyoKKysqKj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorKyoqICAweDBiLTB4MDkgOiAwMTgwXzAwIChjbGFzcyBjb2RlIDEsbmF0aXZlIHBj aSBtb2RlICkgCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAg IERlc2NyaXB0aW9uCisrKiogMjM6MTYgICAgICAgMDZoICAgICAgICAgICAgICAgICAgICAg QmFzZSBDbGFzcyBDb2RlIChCQ0MpOiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIGEgYnJpZGdl IGRldmljZS4KKysqKiAxNTowOCAgICAgICAwNGggICAgICAgICAgICAgICAgICAgICAgU3Vi IENsYXNzIENvZGUgKFNDQyk6IEluZGljYXRlcyB0aGlzIGlzIG9mIHR5cGUgUENJLXRvLVBD SSBicmlkZ2UuCisrKiogMDc6MDAgICAgICAgMDBoICAgICAgICAgICAgICAgUHJvZ3JhbW1p bmcgSW50ZXJmYWNlIChQSUYpOiBJbmRpY2F0ZXMgdGhhdCB0aGlzIGlzIHN0YW5kYXJkIChu b24tc3VidHJhY3RpdmUpIFBDSS1QQ0kgYnJpZGdlLgorKyoqPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9DTEFTU0NPREVfUkVH CSAgICAgICAgIDB4MDkgICAgLyozYnl0ZXMqLworKy8qCisrKio9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKysqKiAgMHgwYyA6IGNhY2hlIGxpbmUgc2l6ZSAKKysqKiBCaXQgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAwNzowMCAg ICAgICAwMGggICAgICAgICAgICAgICAgICAgICBDYWNoZSBMaW5lIFNpemUgKENMUyk6IERl c2lnbmF0ZXMgdGhlIGNhY2hlIGxpbmUgc2l6ZSBpbiAzMi1iaXQgZHdvcmQgdW5pdHMuCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUaGUgY29udGVudHMgb2YgdGhpcyByZWdpc3RlciBhcmUgZmFjdG9yZWQgaW50 byBpbnRlcm5hbCBwb2xpY3kgZGVjaXNpb25zIGFzc29jaWF0ZWQgd2l0aCBtZW1vcnkgcmVh ZCBwcmVmZXRjaGluZywgYW5kIHRoZSBwcm9tb3Rpb24gb2YgTWVtb3J5IFdyaXRlIHRyYW5z YWN0aW9ucyB0byBNV0kgdHJhbnNhY3Rpb25zLgorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVmFsaWQgY2FjaGUgbGlu ZSBzaXplcyBhcmUgOCBhbmQgMTYgZHdvcmRzLiAKKysqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gdGhlIGNhY2hl IGxpbmUgc2l6ZSBpcyBzZXQgdG8gYW4gaW52YWxpZCB2YWx1ZSwgYnJpZGdlIGJlaGF2ZXMg YXMgdGhvdWdoIHRoZSBjYWNoZSBsaW5lIHNpemUgd2FzIHNldCB0byAwMGguCisrKio9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9QQ0kyUENJ X1BSSU1BUllfQ0FDSEVMSU5FU0laRV9SRUcgMHgwQyAgICAvKmJ5dGUqLworKy8qCisrKio9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHgwZCA6IGxhdGVuY3kgdGltZXIgKG51 bWJlciBvZiBwY2kgY2xvY2sgMDAtZmYgKSAKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAg ICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUHJpbWFyeSBMYXRlbmN5IFRpbWVyIChQVFYpOgorKyoqIDA3OjAw ICAgICAgMDBoIChDb252ZW50aW9uYWwgUENJKSAgIENvbnZlbnRpb25hbCBQQ0kgTW9kZTog UHJpbWFyeSBidXMgTWFzdGVyIGxhdGVuY3kgdGltZXIuIEluZGljYXRlcyB0aGUgbnVtYmVy IG9mIFBDSSBjbG9jayBjeWNsZXMsCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZlcmVuY2VkIGZyb20gdGhlIGFz c2VydGlvbiBvZiBGUkFNRSMgdG8gdGhlIGV4cGlyYXRpb24gb2YgdGhlIHRpbWVyLCAKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHdoZW4gYnJpZGdlIG1heSBjb250aW51ZSBhcyBtYXN0ZXIgb2YgdGhlIGN1cnJl bnQgdHJhbnNhY3Rpb24uIEFsbCBiaXRzIGFyZSB3cml0YWJsZSwgCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1 bHRpbmcgaW4gYSBncmFudWxhcml0eSBvZiAxIFBDSSBjbG9jayBjeWNsZS4gCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBXaGVuIHRoZSB0aW1lciBleHBpcmVzIChpLmUuLCBlcXVhbHMgMDBoKSBicmlkZ2UgcmVs aW5xdWlzaGVzIHRoZSBidXMgYWZ0ZXIgdGhlIGZpcnN0IGRhdGEgdHJhbnNmZXIgd2hlbiBp dHMgUENJIGJ1cyBncmFudCBoYXMgYmVlbiBkZWFzc2VydGVkLgorKyoqICAgICAgICAgb3Ig NDBoIChQQ0ktWCkgICAgICAgICAgICAgICAgICAgICAgICAgUENJLVggTW9kZTogUHJpbWFy eSBidXMgTWFzdGVyIGxhdGVuY3kgdGltZXIuIAorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5kaWNhdGVzIHRoZSBu dW1iZXIgb2YgUENJIGNsb2NrIGN5Y2xlcywKKysqKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZmVyZW5jZWQgZnJvbSB0 aGUgYXNzZXJ0aW9uIG9mIEZSQU1FIyB0byB0aGUgZXhwaXJhdGlvbiBvZiB0aGUgdGltZXIs IAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgd2hlbiBicmlkZ2UgbWF5IGNvbnRpbnVlIGFzIG1hc3RlciBvZiB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbi4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGwgYml0cyBhcmUgd3JpdGFibGUs IHJlc3VsdGluZyBpbiBhIGdyYW51bGFyaXR5IG9mIDEgUENJIGNsb2NrIGN5Y2xlLiAKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFdoZW4gdGhlIHRpbWVyIGV4cGlyZXMgKGkuZS4sIGVxdWFscyAwMGgpIGJyaWRn ZSByZWxpbnF1aXNoZXMgdGhlIGJ1cyBhdCB0aGUgbmV4dCBBREIuIAorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKEV4 Y2VwdCBpbiB0aGUgY2FzZSB3aGVyZSBNTFQgZXhwaXJlcyB3aXRoaW4gMyBkYXRhIHBoYXNl cyBvZiBhbiBBREIuSW4gdGhpcyBjYXNlIGJyaWRnZSBjb250aW51ZXMgb24gdW50aWwgaXQg cmVhY2hlcyB0aGUgbmV4dCBBREIgYmVmb3JlIHJlbGlucXVpc2hpbmcgdGhlIGJ1cy4pCisr Kio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9Q Q0kyUENJX1BSSU1BUllfTEFURU5DWVRJTUVSX1JFRwkgMHgwRCAgICAvKmJ5dGUqLworKy8q CisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHgwZSA6IChoZWFkZXIgdHlw ZSxzaW5nbGUgZnVuY3Rpb24gKSAKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAwNyAgICAgICAgICAgMCAgICAgICAgICAg ICAgICBNdWx0aS1mdW5jdGlvbiBkZXZpY2UgKE1WRCk6IDgwMzMxIGlzIGEgc2luZ2xlLWZ1 bmN0aW9uIGRldmljZS4KKysqKiAwNjowMCAgICAgICAwMWggICAgICAgICAgICAgICAgICAg ICAgIEhlYWRlciBUeXBlIChIVFlQRSk6IERlZmluZXMgdGhlIGxheW91dCBvZiBhZGRyZXNz ZXMgMTBoIHRocm91Z2ggM0ZoIGluIGNvbmZpZ3VyYXRpb24gc3BhY2UuIAorKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmV0dXJucyChpzAxaKGoIHdoZW4gcmVhZCBpbmRpY2F0aW5nIHRoYXQgdGhlIHJlZ2lzdGVy IGxheW91dCBjb25mb3JtcyB0byB0aGUgc3RhbmRhcmQgUENJLXRvLVBDSSBicmlkZ2UgbGF5 b3V0LgorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKi8KKysjZGVmaW5lICAgICBB UkNNU1JfUENJMlBDSV9IRUFERVJUWVBFX1JFRwkgICAgICAgICAweDBFICAgIC8qYnl0ZSov CisrLyoKKysqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAgICAweDBmICAgOiAK KysqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyovCisrLyoKKysqKj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKyoqICAweDEzLTB4MTAgOiAKKysqKiAgUENJIENGRyBCYXNlIEFk ZHJlc3MgIzAgKDB4MTApIAorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKi8KKysv KgorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIDB4MTctMHgxNCA6IAorKyoq ICBQQ0kgQ0ZHIEJhc2UgQWRkcmVzcyAjMSAoMHgxNCkgCisrKio9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKysqLworKy8qCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAg MHgxYi0weDE4IDogCisrKiogIFBDSSBDRkcgQmFzZSBBZGRyZXNzICMyICgweDE4KSAKKysq Ki0tLS0tLS0tLS0tLS0tLS0tMHgxQSwweDE5LDB4MTgtLUJ1cyBOdW1iZXIgUmVnaXN0ZXIg LSBCTlIKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVz Y3JpcHRpb24KKysqKiAyMzoxNiAgICAgICAwMGggICAgICAgICAgICAgU3Vib3JkaW5hdGUg QnVzIE51bWJlciAoU0JCTik6IEluZGljYXRlcyB0aGUgaGlnaGVzdCBQQ0kgYnVzIG51bWJl ciBiZWxvdyB0aGlzIGJyaWRnZS4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbnkgVHlwZSAxIGNvbmZpZ3VyYXRp b24gY3ljbGUgb24gdGhlIHByaW1hcnkgYnVzIHdob3NlIGJ1cyBudW1iZXIgaXMgZ3JlYXRl ciB0aGFuIHRoZSBzZWNvbmRhcnkgYnVzIG51bWJlciwKKysqKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsZXNzIHRo YW4gb3IgZXF1YWwgdG8gdGhlIHN1Ym9yZGluYXRlIGJ1cyBudW1iZXIgaXMgZm9yd2FyZGVk IHVuYWx0ZXJlZCBhcyBhIFR5cGUgMSBjb25maWd1cmF0aW9uIGN5Y2xlIG9uIHRoZSBzZWNv bmRhcnkgUENJIGJ1cy4KKysqKiAxNTowOCAgICAgICAwMGggICAgICAgICAgICAgICBTZWNv bmRhcnkgQnVzIE51bWJlciAoU0NCTik6IEluZGljYXRlcyB0aGUgYnVzIG51bWJlciBvZiBQ Q0kgdG8gd2hpY2ggdGhlIHNlY29uZGFyeSBpbnRlcmZhY2UgaXMgY29ubmVjdGVkLiAKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFueSBUeXBlIDEgY29uZmlndXJhdGlvbiBjeWNsZSBtYXRjaGluZyB0aGlzIGJ1 cyBudW1iZXIgaXMgdHJhbnNsYXRlZCB0byBhIFR5cGUgMCBjb25maWd1cmF0aW9uIGN5Y2xl IChvciBhIFNwZWNpYWwgQ3ljbGUpIGJlZm9yZSBiZWluZyBleGVjdXRlZCBvbiBicmlkZ2Un cyBzZWNvbmRhcnkgUENJIGJ1cy4KKysqKiAwNzowMCAgICAgICAwMGggICAgICAgICAgICAg ICAgICBQcmltYXJ5IEJ1cyBOdW1iZXIgKFBCTik6IEluZGljYXRlcyBicmlkZ2UgcHJpbWFy eSBidXMgbnVtYmVyLiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEFueSBUeXBlIDEgY29uZmlndXJhdGlvbiBjeWNs ZSBvbiB0aGUgcHJpbWFyeSBpbnRlcmZhY2Ugd2l0aCBhIGJ1cyBudW1iZXIgdGhhdCBpcyBs ZXNzIHRoYW4gdGhlIGNvbnRlbnRzIG9mIHRoaXMgcmVnaXN0ZXIgZmllbGQgZG9lcyBub3Qg YmUgY2xhaW1lZCBieSBicmlkZ2UuCisrKiotLS0tLS0tLS0tLS0tLS0tLTB4MUItLVNlY29u ZGFyeSBMYXRlbmN5IFRpbWVyIFJlZ2lzdGVyIC0gU0xUUgorKyoqIEJpdCAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBTZWNvbmRhcnkgTGF0ZW5jeSBUaW1lciAoU1RWKToKKysqKiAw NzowMCAgICAgICAwMGggKENvbnZlbnRpb25hbCBQQ0kpICBDb252ZW50aW9uYWwgUENJIE1v ZGU6IFNlY29uZGFyeSBidXMgTWFzdGVyIGxhdGVuY3kgdGltZXIuIAorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5k aWNhdGVzIHRoZSBudW1iZXIgb2YgUENJIGNsb2NrIGN5Y2xlcyxyZWZlcmVuY2VkIGZyb20g dGhlIGFzc2VydGlvbiBvZiBGUkFNRSMgdG8gdGhlIGV4cGlyYXRpb24gb2YgdGhlIHRpbWVy LCAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHdoZW4gYnJpZGdlIG1heSBjb250aW51ZSBhcyBtYXN0ZXIgb2YgdGhl IGN1cnJlbnQgdHJhbnNhY3Rpb24uIEFsbCBiaXRzIGFyZSB3cml0YWJsZSwgCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXN1bHRpbmcgaW4gYSBncmFudWxhcml0eSBvZiAxIFBDSSBjbG9jayBjeWNsZS4KKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFdoZW4gdGhlIHRpbWVyIGV4cGlyZXMgKGkuZS4sIGVxdWFscyAwMGgpIGJyaWRn ZSByZWxpbnF1aXNoZXMgdGhlIGJ1cyBhZnRlciB0aGUgZmlyc3QgZGF0YSB0cmFuc2ZlciB3 aGVuIGl0cyBQQ0kgYnVzIGdyYW50IGhhcyBiZWVuIGRlYXNzZXJ0ZWQuCisrKiogICAgICAg ICAgb3IgNDBoIChQQ0ktWCkgICAgICAgICAgICAgICAgICAgICAgICBQQ0ktWCBNb2RlOiBT ZWNvbmRhcnkgYnVzIE1hc3RlciBsYXRlbmN5IHRpbWVyLiAKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluZGljYXRl cyB0aGUgbnVtYmVyIG9mIFBDSSBjbG9jayBjeWNsZXMscmVmZXJlbmNlZCBmcm9tIHRoZSBh c3NlcnRpb24gb2YgRlJBTUUjIHRvIHRoZSBleHBpcmF0aW9uIG9mIHRoZSB0aW1lciwgCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB3aGVuIGJyaWRnZSBtYXkgY29udGludWUgYXMgbWFzdGVyIG9mIHRoZSBjdXJy ZW50IHRyYW5zYWN0aW9uLiBBbGwgYml0cyBhcmUgd3JpdGFibGUsIAorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVz dWx0aW5nIGluIGEgZ3JhbnVsYXJpdHkgb2YgMSBQQ0kgY2xvY2sgY3ljbGUuCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBXaGVuIHRoZSB0aW1lciBleHBpcmVzIChpLmUuLCBlcXVhbHMgMDBoKSBicmlkZ2UgcmVs aW5xdWlzaGVzIHRoZSBidXMgYXQgdGhlIG5leHQgQURCLiAKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChFeGNlcHQg aW4gdGhlIGNhc2Ugd2hlcmUgTUxUIGV4cGlyZXMgd2l0aGluIDMgZGF0YSBwaGFzZXMgb2Yg YW4gQURCLiBJbiB0aGlzIGNhc2UgYnJpZGdlIGNvbnRpbnVlcyBvbiB1bnRpbCBpdCByZWFj aGVzIHRoZSBuZXh0IEFEQiBiZWZvcmUgcmVsaW5xdWlzaGluZyB0aGUgYnVzKQorKyoqPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBD SV9QUklNQVJZX0JVU05VTUJFUl9SRUcJICAgICAgICAgMHgxOCAgICAvKjNieXRlIDB4MUEs MHgxOSwweDE4Ki8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9TRUNPTkRBUllfQlVT TlVNQkVSX1JFRwkgICAgICAgICAweDE5ICAgIC8qYnl0ZSovCisrI2RlZmluZSAgICAgQVJD TVNSX1BDSTJQQ0lfU1VCT1JESU5BVEVfQlVTTlVNQkVSX1JFRyAgICAgICAgIDB4MUEgICAg LypieXRlKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9TRUNPTkRBUllfTEFURU5D WVRJTUVSX1JFRwkgICAgIDB4MUIgICAgLypieXRlKi8KKysvKgorKyoqPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrKiogIDB4MWYtMHgxYyA6IAorKyoqICBQQ0kgQ0ZHIEJhc2UgQWRk cmVzcyAjMyAoMHgxQykgCisrKiotLS0tLS0tLS0tLS0tLS0tLTB4MUQsMHgxQy0tSS9PIEJh c2UgYW5kIExpbWl0IFJlZ2lzdGVyIC0gSU9CTAorKyoqIEJpdCAgICAgICBEZWZhdWx0ICAg ICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqIDE1OjEyICAgICAgICAwaCAg ICAgICAgICAgIEkvTyBMaW1pdCBBZGRyZXNzIEJpdHMgWzE1OjEyXTogRGVmaW5lcyB0aGUg dG9wIGFkZHJlc3Mgb2YgYW4gYWRkcmVzcyByYW5nZSB0byBkZXRlcm1pbmUgd2hlbiB0byBm b3J3YXJkIEkvTyB0cmFuc2FjdGlvbnMgZnJvbSBvbmUgaW50ZXJmYWNlIHRvIHRoZSBvdGhl ci4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBUaGVzZSBiaXRzIGNvcnJlc3BvbmQgdG8gYWRkcmVzcyBsaW5lcyAx NToxMiBmb3IgNEtCIGFsaWdubWVudC4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaXRzIDExOjAgYXJlIGFzc3Vt ZWQgdG8gYmUgRkZGaC4KKysqKiAxMTowOCAgICAgICAgMWggICAgICAgICAgIEkvTyBMaW1p dCBBZGRyZXNzaW5nIENhcGFiaWxpdHk6IFRoaXMgZmllbGQgaXMgaGFyZC13aXJlZCB0byAx aCwgaW5kaWNhdGluZyBzdXBwb3J0IDMyLWJpdCBJL08gYWRkcmVzc2luZy4KKysqKiAwNzow NCAgICAgICAgMGggICAgICAgICAgICAgSS9PIEJhc2UgQWRkcmVzcyBCaXRzIFsxNToxMl06 IERlZmluZXMgdGhlIGJvdHRvbSBhZGRyZXNzIG9mIGFuIGFkZHJlc3MgcmFuZ2UgdG8gZGV0 ZXJtaW5lIHdoZW4gdG8gZm9yd2FyZCBJL08gdHJhbnNhY3Rpb25zIGZyb20gb25lIGludGVy ZmFjZSB0byB0aGUgb3RoZXIuIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlc2UgYml0cyBjb3JyZXNwb25kIHRv IGFkZHJlc3MgbGluZXMgMTU6MTIgZm9yIDRLQiBhbGlnbm1lbnQuIEJpdHMgMTE6MCBhcmUg YXNzdW1lZCB0byBiZSAwMDBoLgorKyoqIDAzOjAwICAgICAgICAxaCAgICAgICAgICAgIEkv TyBCYXNlIEFkZHJlc3NpbmcgQ2FwYWJpbGl0eTogVGhpcyBpcyBoYXJkLXdpcmVkIHRvIDFo LCBpbmRpY2F0aW5nIHN1cHBvcnQgZm9yIDMyLWJpdCBJL08gYWRkcmVzc2luZy4KKysqKi0t LS0tLS0tLS0tLS0tLS0tMHgxRiwweDFFLS1TZWNvbmRhcnkgU3RhdHVzIFJlZ2lzdGVyIC0g U1NSCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2Ny aXB0aW9uCisrKiogMTUgICAgICAgICAgIDBiICAgICAgICAgICAgICAgICAgICAgRGV0ZWN0 ZWQgUGFyaXR5IEVycm9yOiBUaGUgYnJpZGdlIHNldHMgdGhpcyBiaXQgdG8gYSAxYiB3aGVu ZXZlciBpdCBkZXRlY3RzIGFuIGFkZHJlc3MsIGF0dHJpYnV0ZSBvciBkYXRhIHBhcml0eSBl cnJvciBvbiBpdHMgc2Vjb25kYXJ5IGludGVyZmFjZS4KKysqKiAxNCAgICAgICAgICAgMGIg ICAgICAgICAgICAgICAgICAgICBSZWNlaXZlZCBTeXN0ZW0gRXJyb3I6IFRoZSBicmlkZ2Ug c2V0cyB0aGlzIGJpdCB3aGVuIGl0IHNhbXBsZXMgU0VSUiMgYXNzZXJ0ZWQgb24gaXRzIHNl Y29uZGFyeSBidXMgaW50ZXJmYWNlLgorKyoqIDEzICAgICAgICAgICAwYiAgICAgICAgICAg ICAgICAgICAgIFJlY2VpdmVkIE1hc3RlciBBYm9ydDogVGhlIGJyaWRnZSBzZXRzIHRoaXMg Yml0IHRvIGEgMWIgd2hlbiwgYWN0aW5nIGFzIHRoZSBpbml0aWF0b3Igb24gdGhlIHNlY29u ZGFyeSBidXMsIGl0J3MgdHJhbnNhY3Rpb24gKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBzcGVj aWFsIGN5Y2xlcykgaGFzIGJlZW4gdGVybWluYXRlZCB3aXRoIGEgTWFzdGVyIEFib3J0Lgor KyoqIDEyICAgICAgICAgICAwYiAgICAgICAgICAgICAgICAgICAgIFJlY2VpdmVkIFRhcmdl dCBBYm9ydDogVGhlIGJyaWRnZSBzZXRzIHRoaXMgYml0IHRvIGEgMWIgd2hlbiwgYWN0aW5n IGFzIHRoZSBpbml0aWF0b3Igb24gdGhlIHNlY29uZGFyeSBidXMsIGl0J3MgdHJhbnNhY3Rp b24gaGFzIGJlZW4gdGVybWluYXRlZCB3aXRoIGEgVGFyZ2V0IEFib3J0LgorKyoqIDExICAg ICAgICAgICAwYiAgICAgICAgICAgICAgICAgICAgIFNpZ25hbGVkIFRhcmdldCBBYm9ydDog VGhlIGJyaWRnZSBzZXRzIHRoaXMgYml0IHRvIGEgMWIgd2hlbiBpdCwgYXMgdGhlIHRhcmdl dCBvZiBhIHRyYW5zYWN0aW9uLCB0ZXJtaW5hdGVzIGl0IHdpdGggYSBUYXJnZXQgQWJvcnQu IAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgSW4gUENJLVggbW9kZSB0aGlzIGJpdCBpcyBhbHNvIHNldCB3aGVuIGl0 IGZvcndhcmRzIGEgU0NNIHdpdGggYSB0YXJnZXQgYWJvcnQgZXJyb3IgY29kZS4KKysqKiAx MDowOSAgICAgICAwMWIgICAgICAgICAgICAgICAgICAgICAgICAgICAgREVWU0VMIyBUaW1p bmc6IEluZGljYXRlcyBzbG93ZXN0IHJlc3BvbnNlIHRvIGEgbm9uLWNvbmZpZ3VyYXRpb24g Y29tbWFuZCBvbiB0aGUgc2Vjb25kYXJ5IGludGVyZmFjZS4gCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXR1cm5z IKGnMDFioaggd2hlbiByZWFkLCBpbmRpY2F0aW5nIHRoYXQgYnJpZGdlIHJlc3BvbmRzIG5v IHNsb3dlciB0aGFuIHdpdGggbWVkaXVtIHRpbWluZy4KKysqKiAwOCAgICAgICAgICAgMGIg ICAgICAgICAgICAgICAgICBNYXN0ZXIgRGF0YSBQYXJpdHkgRXJyb3I6IFRoZSBicmlkZ2Ug c2V0cyB0aGlzIGJpdCB0byBhIDFiIHdoZW4gYWxsIG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0 aW9ucyBhcmUgdHJ1ZToKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBicmlkZ2UgaXMgdGhlIGN1cnJlbnQgbWFz dGVyIG9uIHRoZSBzZWNvbmRhcnkgYnVzCisrKiogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTX1BFUlIjIGlzIGRldGVjdGVk IGFzc2VydGVkIG9yIGlzIGFzc2VydGVkIGJ5IGJyaWRnZQorKyoqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIFBhcml0 eSBFcnJvciBSZXNwb25zZSBiaXQgaXMgc2V0IGluIHRoZSBDb21tYW5kIHJlZ2lzdGVyIAor KyoqIDA3ICAgICAgICAgICAxYiAgICAgICAgICAgRmFzdCBCYWNrLXRvLUJhY2sgQ2FwYWJs ZSAoRkJDKTogSW5kaWNhdGVzIHRoYXQgdGhlIHNlY29uZGFyeSBpbnRlcmZhY2Ugb2YgYnJp ZGdlIGNhbiByZWNlaXZlIGZhc3QgYmFjay10by1iYWNrIGN5Y2xlcy4KKysqKiAwNiAgICAg ICAgICAgMGIgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqIDA1ICAg ICAgICAgICAxYiAgICAgICAgICAgICAgICAgICAgICA2NiBNSHogQ2FwYWJsZSAoQzY2KTog SW5kaWNhdGVzIHRoZSBzZWNvbmRhcnkgaW50ZXJmYWNlIG9mIHRoZSBicmlkZ2UgaXMgNjYg TUh6IGNhcGFibGUuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAxID0KKysqKiAwNDowMCAgICAgICAwMGggICAgICAg ICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9JT19CQVNFX1JFRwkgICAg ICAgICAgICAgICAgICAgICAweDFDICAgIC8qYnl0ZSovCisrI2RlZmluZSAgICAgQVJDTVNS X1BDSTJQQ0lfSU9fTElNSVRfUkVHCSAgICAgICAgICAgICAgICAgICAgIDB4MUQgICAgLypi eXRlKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9TRUNPTkRBUllfU1RBVFVTX1JF RwkgICAgICAgICAgICAgMHgxRSAgICAvKndvcmQ6IDB4MUYsMHgxRSAqLworKy8qCisrKio9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHgyMy0weDIwIDogCisrKiogIFBDSSBD RkcgQmFzZSBBZGRyZXNzICM0ICgweDIwKQorKyoqLS0tLS0tLS0tLS0tLS0tLS0weDIzLDB4 MjIsMHgyMSwweDIwLS1NZW1vcnkgQmFzZSBhbmQgTGltaXQgUmVnaXN0ZXIgLSBNQkwKKysq KiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24K KysqKiAzMToyMCAgICAgIDAwMGggICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNZW1v cnkgTGltaXQ6IFRoZXNlIDEyIGJpdHMgYXJlIGNvbXBhcmVkIHdpdGggUF9BRFszMToyMF0g b2YgdGhlIGluY29taW5nIGFkZHJlc3MgdG8gZGV0ZXJtaW5lCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdXBw ZXIgMU1CIGFsaWduZWQgdmFsdWUgKGV4Y2x1c2l2ZSkgb2YgdGhlIHJhbmdlLiAKKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRoZSBpbmNvbWluZyBhZGRyZXNzIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRv IHRoaXMgdmFsdWUuIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRm9yIHRoZSBwdXJwb3NlcyBvZiBhZGRyZXNzIGRl Y29kaW5nIHRoZSBsb3dlciAyMCBhZGRyZXNzIGJpdHMgKFBfQURbMTk6MF0gYXJlIGFzc3Vt ZWQgdG8gYmUgRiBGRkZGaC4KKysqKiAxOToxNiAgICAgICAgMGggICAgICAgICAgICAgICAg ICAgICAgICAgICAgUmVzZXJ2ZWQuCisrKiogMTU6MDQgICAgICAwMDBoICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1lbW9yeSBCYXNlOiBUaGVzZSAxMiBiaXRzIGFyZSBjb21w YXJlZCB3aXRoIGJpdHMgUF9BRFszMToyMF0gb2YgdGhlIGluY29taW5nIGFkZHJlc3MgdG8g ZGV0ZXJtaW5lIHRoZSBsb3dlciAxTUIgYWxpZ25lZCB2YWx1ZSAoaW5jbHVzaXZlKSBvZiB0 aGUgcmFuZ2UuIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVGhlIGluY29taW5nIGFkZHJlc3MgbXVzdCBiZSBncmVh dGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhpcyB2YWx1ZS4KKysqKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZvciB0aGUgcHVy cG9zZXMgb2YgYWRkcmVzcyBkZWNvZGluZyB0aGUgbG93ZXIgMjAgYWRkcmVzcyBiaXRzIChQ X0FEWzE5OjBdKSBhcmUgYXNzdW1lZCB0byBiZSAwIDAwMDBoLgorKyoqIDAzOjAwICAgICAg ICAwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZC4KKysqKj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX1BDSTJQQ0lfTk9O UFJFRkVUQ0hBQkxFX01FTU9SWV9CQVNFX1JFRyAgIDB4MjAgICAgLyp3b3JkOiAweDIxLDB4 MjAgKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9OT05QUkVGRVRDSEFCTEVfTUVN T1JZX0xJTUlUX1JFRyAgMHgyMiAgICAvKndvcmQ6IDB4MjMsMHgyMiAqLworKy8qCisrKio9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHgyNy0weDI0IDogCisrKiogIFBDSSBD RkcgQmFzZSBBZGRyZXNzICM1ICgweDI0KSAKKysqKi0tLS0tLS0tLS0tLS0tLS0tMHgyNyww eDI2LDB4MjUsMHgyNC0tUHJlZmV0Y2hhYmxlIE1lbW9yeSBCYXNlIGFuZCBMaW1pdCBSZWdp c3RlciAtIFBNQkwKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAg ICAgRGVzY3JpcHRpb24KKysqKiAzMToyMCAgICAgIDAwMGggICAgICAgICAgICAgICAgIFBy ZWZldGNoYWJsZSBNZW1vcnkgTGltaXQ6IFRoZXNlIDEyIGJpdHMgYXJlIGNvbXBhcmVkIHdp dGggUF9BRFszMToyMF0gb2YgdGhlIGluY29taW5nIGFkZHJlc3MgdG8gZGV0ZXJtaW5lCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0aGUgdXBwZXIgMU1CIGFsaWduZWQgdmFsdWUgKGV4Y2x1c2l2ZSkgb2YgdGhl IHJhbmdlLiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFRoZSBpbmNvbWluZyBhZGRyZXNzIG11c3QgYmUgbGVzcyB0 aGFuIG9yIGVxdWFsIHRvIHRoaXMgdmFsdWUuIAorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRm9yIHRoZSBwdXJwb3Nl cyBvZiBhZGRyZXNzIGRlY29kaW5nIHRoZSBsb3dlciAyMCBhZGRyZXNzIGJpdHMgKFBfQURb MTk6MF0gYXJlIGFzc3VtZWQgdG8gYmUgRiBGRkZGaC4KKysqKiAxOToxNiAgICAgICAgMWgg ICAgICAgICAgICAgICAgICAgICAgICAgIDY0LWJpdCBJbmRpY2F0b3I6IEluZGljYXRlcyB0 aGF0IDY0LWJpdCBhZGRyZXNzaW5nIGlzIHN1cHBvcnRlZC4KKysqKiAxNTowNCAgICAgIDAw MGggICAgICAgICAgICAgICAgICBQcmVmZXRjaGFibGUgTWVtb3J5IEJhc2U6IFRoZXNlIDEy IGJpdHMgYXJlIGNvbXBhcmVkIHdpdGggYml0cyBQX0FEWzMxOjIwXSBvZiB0aGUgaW5jb21p bmcgYWRkcmVzcyB0byBkZXRlcm1pbmUgdGhlIGxvd2VyIDFNQiBhbGlnbmVkIHZhbHVlIChp bmNsdXNpdmUpIG9mIHRoZSByYW5nZS4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgaW5jb21pbmcgYWRkcmVz cyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGlzIHZhbHVlLiAKKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZvciB0aGUgcHVycG9zZXMgb2YgYWRkcmVzcyBkZWNvZGluZyB0aGUgbG93ZXIgMjAg YWRkcmVzcyBiaXRzIChQX0FEWzE5OjBdKSBhcmUgYXNzdW1lZCB0byBiZSAwIDAwMDBoLgor KyoqIDAzOjAwICAgICAgICAxaCAgICAgICAgICAgICAgICAgICAgICAgICAgNjQtYml0IElu ZGljYXRvcjogSW5kaWNhdGVzIHRoYXQgNjQtYml0IGFkZHJlc3NpbmcgaXMgc3VwcG9ydGVk LgorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKi8KKysjZGVmaW5lICAgICBBUkNN U1JfUENJMlBDSV9QUkVGRVRDSEFCTEVfTUVNT1JZX0JBU0VfUkVHICAgICAgMHgyNCAgICAv KndvcmQ6IDB4MjUsMHgyNCAqLworKyNkZWZpbmUgICAgIEFSQ01TUl9QQ0kyUENJX1BSRUZF VENIQUJMRV9NRU1PUllfTElNSVRfUkVHICAgICAweDI2ICAgIC8qd29yZDogMHgyNywweDI2 ICovCisrLyoKKysqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAweDJiLTB4Mjgg OiAKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3Jp cHRpb24KKysqKiAzMTowMCAgICAwMDAwMDAwMGggUHJlZmV0Y2hhYmxlIE1lbW9yeSBCYXNl IFVwcGVyIFBvcnRpb246IEFsbCBiaXRzIGFyZSByZWFkL3dyaXRhYmxlICAKKysqKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGJyaWRnZSBzdXBwb3J0cyBmdWxsIDY0LWJpdCBhZGRyZXNzaW5nLgorKyoqPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9QUkVG RVRDSEFCTEVfTUVNT1JZX0JBU0VfVVBQRVIzMl9SRUcgICAgIDB4MjggICAgLypkd29yZDog MHgyYiwweDJhLDB4MjksMHgyOCAqLworKy8qCisrKio9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKysqKiAgMHgyZi0weDJjIDogCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogMzE6MDAgICAgMDAwMDAwMDBoIFByZWZl dGNoYWJsZSBNZW1vcnkgTGltaXQgVXBwZXIgUG9ydGlvbjogQWxsIGJpdHMgYXJlIHJlYWQv d3JpdGFibGUgCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYnJpZGdlIHN1cHBvcnRzIGZ1bGwgNjQtYml0IGFkZHJl c3NpbmcuCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqLworKyNkZWZpbmUgICAg IEFSQ01TUl9QQ0kyUENJX1BSRUZFVENIQUJMRV9NRU1PUllfTElNSVRfVVBQRVIzMl9SRUcg ICAgMHgyQyAgICAvKmR3b3JkOiAweDJmLDB4MmUsMHgyZCwweDJjICovCisrLyoKKysqKj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAweDMzLTB4MzAgOiAKKysqKiBCaXQgICAg ICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAwNzow MCAgICAgICBEQ2ggICAgICAgICAgICAgICAgICAgICAgQ2FwYWJpbGl0aWVzIFBvaW50ZXI6 IFBvaW50ZXIgdG8gdGhlIGZpcnN0IENBUCBJRCBlbnRyeSBpbiB0aGUgY2FwYWJpbGl0aWVz IGxpc3QgaXMgYXQgRENoIGluIFBDSSBjb25maWd1cmF0aW9uCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGFjZS4g KFBvd2VyIE1hbmFnZW1lbnQgQ2FwYWJpbGl0eSBSZWdpc3RlcnMpCisrKio9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9QQ0kyUENJX0NBUEFC SUxJVElFU19QT0lOVEVSX1JFRwkgICAgICAgICAgICAgICAgIDB4MzQgICAgLypieXRlKi8g CisrLyoKKysqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAweDNiLTB4MzUgOiBy ZXNlcnZlZAorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKi8KKysvKiAgICAgICAg ICAgICAgCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHgzZC0weDNjIDog CisrKioKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVz Y3JpcHRpb24KKysqKiAxNTowOCAgICAgICAwMGggICAgICAgICAgICAgICAgICAgICAgIElu dGVycnVwdCBQaW4gKFBJTik6IEJyaWRnZXMgZG8gbm90IHN1cHBvcnQgdGhlIGdlbmVyYXRp b24gb2YgaW50ZXJydXB0cy4KKysqKiAwNzowMCAgICAgICAwMGggICAgICAgICAgICAgICAg ICAgICBJbnRlcnJ1cHQgTGluZSAoTElORSk6IFRoZSBicmlkZ2UgZG9lcyBub3QgZ2VuZXJh dGUgaW50ZXJydXB0cywgc28gdGhpcyBpcyByZXNlcnZlZCBhcyAnMDBoJy4KKysqKj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX1BDSTJQQ0lf UFJJTUFSWV9JTlRFUlJVUFRfTElORV9SRUcgICAgICAgICAgICAgICAgMHgzQyAgICAvKmJ5 dGUqLyAKKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9QUklNQVJZX0lOVEVSUlVQVF9Q SU5fUkVHICAgICAgICAgICAgICAgICAweDNEICAgIC8qYnl0ZSovIAorKy8qCisrKio9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHgzZi0weDNlIDogCisrKiogQml0ICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogMTU6MTIg ICAgICAgIDBoICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqIDExICAg ICAgICAgICAwYiAgICAgICAgICAgICAgICBEaXNjYXJkIFRpbWVyIFNFUlIjIEVuYWJsZTog Q29udHJvbHMgdGhlIGdlbmVyYXRpb24gb2YgU0VSUiMgb24gdGhlIHByaW1hcnkgaW50ZXJm YWNlIChQX1NFUlIjKSBpbiByZXNwb25zZQorKyoqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG8gYSB0aW1lciBkaXNjYXJk IG9uIGVpdGhlciB0aGUgcHJpbWFyeSBvciBzZWNvbmRhcnkgaW50ZXJmYWNlLgorKyoqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMGI9U0VSUiMgaXMgbm90IGFzc2VydGVkLgorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMWI9U0VSUiMgaXMgYXNz ZXJ0ZWQuCisrKiogMTAgICAgICAgICAgIDBiICAgICAgICAgICAgICAgIERpc2NhcmQgVGlt ZXIgU3RhdHVzIChEVFMpOiBUaGlzIGJpdCBpcyBzZXQgdG8gYSAnMWInIHdoZW4gZWl0aGVy IHRoZSBwcmltYXJ5IG9yIHNlY29uZGFyeSBkaXNjYXJkIHRpbWVyIGV4cGlyZXMuCisrKiog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUaGUgZGVsYXllZCBjb21wbGV0aW9uIGlzIHRoZW4gZGlzY2FyZGVkLgorKyoqIDA5 ICAgICAgICAgICAwYiAgICAgICAgICAgICBTZWNvbmRhcnkgRGlzY2FyZCBUaW1lciAoU0RU KTogU2V0cyB0aGUgbWF4aW11bSBudW1iZXIgb2YgUENJIGNsb2NrIGN5Y2xlcyB0aGF0IGJy aWRnZSB3YWl0cyBmb3IgYW4gaW5pdGlhdG9yIG9uIHRoZSBzZWNvbmRhcnkgYnVzIHRvIHJl cGVhdCBhIGRlbGF5ZWQgdHJhbnNhY3Rpb24gcmVxdWVzdC4gCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgY291 bnRlciBzdGFydHMgd2hlbiB0aGUgZGVsYXllZCB0cmFuc2FjdGlvbiBjb21wbGV0aW9uIGlz IHJlYWR5IHRvIGJlIHJldHVybmVkIHRvIHRoZSBpbml0aWF0b3IuIAorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hl biB0aGUgaW5pdGlhdG9yIGhhcyBub3QgcmVwZWF0ZWQgdGhlIHRyYW5zYWN0aW9uIGF0IGxl YXN0IG9uY2UgYmVmb3JlIHRoZSBjb3VudGVyIGV4cGlyZXMsYnJpZGdlIGRpc2NhcmRzIHRo ZSBkZWxheWVkIHRyYW5zYWN0aW9uIGZyb20gaXRzIHF1ZXVlcy4KKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBiPVRo ZSBzZWNvbmRhcnkgbWFzdGVyIHRpbWUtb3V0IGNvdW50ZXIgaXMgMiAxNSBQQ0kgY2xvY2sg Y3ljbGVzLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMWI9VGhlIHNlY29uZGFyeSBtYXN0ZXIgdGltZS1vdXQgY291 bnRlciBpcyAyIDEwIFBDSSBjbG9jayBjeWNsZXMuCisrKiogMDggICAgICAgICAgIDBiICAg ICAgICAgICAgICAgUHJpbWFyeSBEaXNjYXJkIFRpbWVyIChQRFQpOiBTZXRzIHRoZSBtYXhp bXVtIG51bWJlciBvZiBQQ0kgY2xvY2sgY3ljbGVzIHRoYXQgYnJpZGdlIHdhaXRzIGZvciBh biBpbml0aWF0b3Igb24gdGhlIHByaW1hcnkgYnVzIHRvIHJlcGVhdCBhIGRlbGF5ZWQgdHJh bnNhY3Rpb24gcmVxdWVzdC4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgY291bnRlciBzdGFydHMgd2hlbiB0 aGUgZGVsYXllZCB0cmFuc2FjdGlvbiBjb21wbGV0aW9uIGlzIHJlYWR5IHRvIGJlIHJldHVy bmVkIHRvIHRoZSBpbml0aWF0b3IuIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiB0aGUgaW5pdGlhdG9yIGhh cyBub3QgcmVwZWF0ZWQgdGhlIHRyYW5zYWN0aW9uIGF0IGxlYXN0IG9uY2UgYmVmb3JlIHRo ZSBjb3VudGVyIGV4cGlyZXMsIGJyaWRnZSBkaXNjYXJkcyB0aGUgZGVsYXllZCB0cmFuc2Fj dGlvbiBmcm9tIGl0cyBxdWV1ZXMuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwYj1UaGUgcHJpbWFyeSBtYXN0ZXIg dGltZS1vdXQgY291bnRlciBpcyAyIDE1IFBDSSBjbG9jayBjeWNsZXMuCisrKiogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx Yj1UaGUgcHJpbWFyeSBtYXN0ZXIgdGltZS1vdXQgY291bnRlciBpcyAyIDEwIFBDSSBjbG9j ayBjeWNsZXMuCisrKiogMDcgICAgICAgICAgIDBiICAgICAgICAgICAgRmFzdCBCYWNrLXRv LUJhY2sgRW5hYmxlIChGQkUpOiBUaGUgYnJpZGdlIGRvZXMgbm90IGluaXRpYXRlIGJhY2sg dG8gYmFjayB0cmFuc2FjdGlvbnMuCisrKiogMDYgICAgICAgICAgIDBiICAgICAgICAgICAg ICAgICBTZWNvbmRhcnkgQnVzIFJlc2V0IChTQlIpOiAKKysqKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gY2xlYXJl ZCB0byAwYjogVGhlIGJyaWRnZSBkZWFzc2VydHMgU19SU1QjLCB3aGVuIGl0IGhhZCBiZWVu IGFzc2VydGVkIGJ5IHdyaXRpbmcgdGhpcyBiaXQgdG8gYSAxYi4KKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBX aGVuIHNldCB0byAxYjogVGhlIGJyaWRnZSBhc3NlcnRzIFNfUlNUIy4KKysqKiAwNSAgICAg ICAgICAgMGIgICAgICAgICAgICAgICAgICAgTWFzdGVyIEFib3J0IE1vZGUgKE1BTSk6IERp Y3RhdGVzIGJyaWRnZSBiZWhhdmlvciBvbiB0aGUgaW5pdGlhdG9yIGJ1cyB3aGVuIGEgbWFz dGVyIGFib3J0IHRlcm1pbmF0aW9uIG9jY3VycyBpbiByZXNwb25zZSB0byBhIGRlbGF5ZWQg dHJhbnNhY3Rpb24gaW5pdGlhdGVkIGJ5IGJyaWRnZSBvbiB0aGUgdGFyZ2V0IGJ1cy4KKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDBiPVRoZSBicmlkZ2UgYXNzZXJ0cyBUUkRZIyBpbiByZXNwb25zZSB0byBhIG5v bi1sb2NrZWQgZGVsYXllZCB0cmFuc2FjdGlvbixhbmQgcmV0dXJucyBGRkZGIEZGRkZoIHdo ZW4gYSByZWFkLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMWI9V2hlbiB0aGUgdHJhbnNhY3Rpb24gaGFkIG5vdCB5 ZXQgYmVlbiBjb21wbGV0ZWQgb24gdGhlIGluaXRpYXRvciBidXMgKGUuZy4sZGVsYXllZCBy ZWFkcywgb3Igbm9uLXBvc3RlZCB3cml0ZXMpLCAKKysqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBicmlk Z2UgcmV0dXJucyBhIFRhcmdldCBBYm9ydCBpbiByZXNwb25zZSB0byB0aGUgb3JpZ2luYWwg cmVxdWVzdGVyIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuIGl0IHJldHVybnMgbG9va2luZyBmb3Ig aXRzIGRlbGF5ZWQgY29tcGxldGlvbiBvbiB0aGUgaW5pdGlhdG9yIGJ1cy4gCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFdoZW4gdGhlIHRyYW5zYWN0aW9uIGhhZCBjb21wbGV0ZWQgb24gdGhlIGluaXRp YXRvciBidXMgKGUuZy4sIGEgUE1XKSwgdGhlbiBicmlkZ2UgYXNzZXJ0cyBQX1NFUlIjICh3 aGVuIGVuYWJsZWQpLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG b3IgUENJLVggdHJhbnNhY3Rpb25zIHRoaXMgYml0IGlzIGFuIGVuYWJsZSBmb3IgdGhlIGFz c2VydGlvbiBvZiBQX1NFUlIjIGR1ZSB0byBhIG1hc3RlciBhYm9ydCB3aGlsZSBhdHRlbXB0 aW5nIHRvIGRlbGl2ZXIgYSBwb3N0ZWQgbWVtb3J5IHdyaXRlIG9uIHRoZSBkZXN0aW5hdGlv biBidXMuCisrKiogMDQgICAgICAgICAgIDBiICAgICAgICAgICAgICAgICAgIFZHQSBBbGlh cyBGaWx0ZXIgRW5hYmxlOiBUaGlzIGJpdCBkaWN0YXRlcyBicmlkZ2UgYmVoYXZpb3IgaW4g Y29uanVuY3Rpb24gd2l0aCB0aGUgVkdBIGVuYWJsZSBiaXQgKGFsc28gb2YgdGhpcyByZWdp c3RlciksIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYW5kIHRoZSBWR0EgUGFsZXR0ZSBTbm9vcCBFbmFibGUgYml0 IChDb21tYW5kIFJlZ2lzdGVyKS4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGVuIHRoZSBWR0EgZW5hYmxlLCBv ciBWR0EgUGFsZXR0ZSBTbm9vcCBlbmFibGUgYml0cyBhcmUgb24gKGkuZS4sIDFiKSB0aGUg VkdBIEFsaWFzaW5nIGJpdCBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgZW5hYmxlZCBmdW5jdGlv bmFsaXR5LDoKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDBiPUlnbm9yZXMgYWRkcmVzcyBiaXRzIEFEWzE1OjEwXSB3 aGVuIGRlY29kaW5nIFZHQSBJL08gYWRkcmVzc2VzLgorKyoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMWI9RW5zdXJlcyB0 aGF0IGFkZHJlc3MgYml0cyBBRFsxNToxMF0gZXF1YWwgMDAwMDAwYiB3aGVuIGRlY29kaW5n IFZHQSBJL08gYWRkcmVzc2VzLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGVuIGFsbCBWR0EgY3ljbGUgZm9yd2FyZGluZyBpcyBkaXNhYmxlZCwgKGkuZS4s IFZHQSBFbmFibGUgYml0ID0wYiBhbmQgVkdBIFBhbGV0dGUgU25vb3AgYml0ID0wYiksIHRo ZW4gdGhpcyBiaXQgaGFzIG5vIGltcGFjdCBvbiBicmlkZ2UgYmVoYXZpb3IuCisrKiogMDMg ICAgICAgICAgIDBiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWR0EgRW5hYmxl OiBTZXR0aW5nIHRoaXMgYml0IGVuYWJsZXMgYWRkcmVzcyBkZWNvZGluZyBhbmQgdHJhbnNh Y3Rpb24gZm9yd2FyZGluZyBvZiB0aGUgZm9sbG93aW5nIFZHQSB0cmFuc2FjdGlvbnMgZnJv bSB0aGUgcHJpbWFyeSBidXMgdG8gdGhlIHNlY29uZGFyeSBidXM6CisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcmFt ZSBidWZmZXIgbWVtb3J5IGFkZHJlc3NlcyAwMDBBMDAwMGg6MDAwQkZGRkZoLCBWR0EgSS9P IGFkZHJlc3NlcyAzQjA6M0JCaCBhbmQgM0MwaDozREZoLCB3aGVyZSBBRFszMToxNl09oacw MDAwaKGoIGFuZCBBRFsxNToxMF0gYXJlIGVpdGhlciBub3QgZGVjb2RlZCAoaS5lLiwgZG9u J3QgY2FyZXMpLCBvciBtdXN0IGJlIKGnMDAwMDAwYqGoCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXBlbmRpbmcg dXBvbiB0aGUgc3RhdGUgb2YgdGhlIFZHQSBBbGlhcyBGaWx0ZXIgRW5hYmxlIGJpdC4gKGJp dCg0KSBvZiB0aGlzIHJlZ2lzdGVyKQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSS9PIGFuZCBNZW1vcnkgRW5hYmxl IGJpdHMgbXVzdCBiZSBzZXQgaW4gdGhlIENvbW1hbmQgcmVnaXN0ZXIgdG8gZW5hYmxlIGZv cndhcmRpbmcgb2YgVkdBIGN5Y2xlcy4KKysqKiAwMiAgICAgICAgICAgMGIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIElTQSBFbmFibGU6IFNldHRpbmcgdGhpcyBiaXQgZW5h YmxlcyBzcGVjaWFsIGhhbmRsaW5nIGZvciB0aGUgZm9yd2FyZGluZyBvZiBJU0EgSS9PIHRy YW5zYWN0aW9ucyB0aGF0IGZhbGwgd2l0aGluIHRoZSBhZGRyZXNzIHJhbmdlIHNwZWNpZmll ZCBieSB0aGUgSS9PIEJhc2UgYW5kIExpbWl0IHJlZ2lzdGVycywgYW5kIGFyZSB3aXRoaW4g dGhlIGxvd2VzdCA2NEtieXRlIG9mIHRoZSBJL08gYWRkcmVzcyBtYXAgKGkuZS4sIDAwMDAg MDAwMGggLSAwMDAwIEZGRkZoKS4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBiPUFsbCBJL08gdHJhbnNhY3Rpb25z IHRoYXQgZmFsbCB3aXRoaW4gdGhlIEkvTyBCYXNlIGFuZCBMaW1pdCByZWdpc3RlcnMnIHNw ZWNpZmllZCByYW5nZSBhcmUgZm9yd2FyZGVkIGZyb20gcHJpbWFyeSB0byBzZWNvbmRhcnkg dW5maWx0ZXJlZC4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDFiPUJsb2NrcyB0aGUgZm9yd2FyZGluZyBmcm9tIHBy aW1hcnkgdG8gc2Vjb25kYXJ5IG9mIHRoZSB0b3AgNzY4IGJ5dGVzIG9mIGVhY2ggMUtieXRl IGFsaWFzLiBPbiB0aGUgc2Vjb25kYXJ5IHRoZSB0b3AgNzY4IGJ5dGVzIG9mIGVhY2ggMUsg YWxpYXMgYXJlIGludmVyc2VseSBkZWNvZGVkIGFuZCBmb3J3YXJkZWQgZnJvbSBzZWNvbmRh cnkgdG8gcHJpbWFyeS4KKysqKiAwMSAgICAgICAgICAgMGIgICAgICAgICAgICAgICAgICAg ICAgU0VSUiMgRm9yd2FyZCBFbmFibGU6IDBiPVRoZSBicmlkZ2UgZG9lcyBub3QgYXNzZXJ0 IFBfU0VSUiMgYXMgYSByZXN1bHQgb2YgYW4gU19TRVJSIyBhc3NlcnRpb24uCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxYj1UaGUgYnJpZGdlIGFzc2VydHMgUF9TRVJSIyB3aGVuZXZlciBTX1NFUlIjIGlzIGRl dGVjdGVkIGFzc2VydGVkIHByb3ZpZGVkIHRoZSBTRVJSIyBFbmFibGUgYml0IGlzIHNldCAo UENJIENvbW1hbmQgUmVnaXN0ZXIgYml0KDgpPTFiKS4KKysqKiAwMCAgICAgICAgICAgMGIg ICAgICAgICAgICAgICAgICAgICBQYXJpdHkgRXJyb3IgUmVzcG9uc2U6IFRoaXMgYml0IGNv bnRyb2xzIGJyaWRnZSByZXNwb25zZSB0byBhIHBhcml0eSBlcnJvciB0aGF0IGlzIGRldGVj dGVkIG9uIGl0cyBzZWNvbmRhcnkgaW50ZXJmYWNlLgorKyoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMGI9V2hlbiBhIGRh dGEgcGFyaXR5IGVycm9yIGlzIGRldGVjdGVkIGJyaWRnZSBkb2VzIG5vdCBhc3NlcnQgU19Q RVJSIy4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBbHNvIGJyaWRnZSBkb2VzIG5vdCBhc3NlcnQgUF9TRVJSIyBp biByZXNwb25zZSB0byBhIGRldGVjdGVkIGFkZHJlc3Mgb3IgYXR0cmlidXRlIHBhcml0eSBl cnJvci4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDFiPVdoZW4gYSBkYXRhIHBhcml0eSBlcnJvciBpcyBkZXRlY3Rl ZCBicmlkZ2UgYXNzZXJ0cyBTX1BFUlIjLiBUaGUgYnJpZGdlIGFsc28gYXNzZXJ0cyBQX1NF UlIjICh3aGVuIGVuYWJsZWQgZ2xvYmFsbHkgdmlhIGJpdCg4KSBvZiB0aGUgQ29tbWFuZCBy ZWdpc3RlcikKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGluIHJlc3BvbnNlIHRvIGEgZGV0ZWN0ZWQgYWRkcmVzcyBv ciBhdHRyaWJ1dGUgcGFyaXR5IGVycm9yLgorKyoqPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJMlBDSV9CUklER0VfQ09OVFJPTF9SRUcJ ICAgICAgICAgICAgICAgICAgICAgMHgzRSAgICAvKndvcmQqLyAKKysvKgorKyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisrKiogICAgICAgICAgICAgICAgICBEZXZpY2UgU3BlY2lmaWMgUmVn aXN0ZXJzIDQwLUE3aAorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgQnl0 ZSAzICAgICAgICAgICAgICB8ICAgICAgICAgQnl0ZSAyICAgICAgICAgfCAgICAgICAgQnl0 ZSAxICAgICAgICAgIHwgICAgICAgQnl0ZSAwICAgICAgICAgICAgICB8IENvbmZpZ3UtcmF0 aW9uIEJ5dGUgT2Zmc2V0CisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgQnJpZGdlIENvbnRyb2wgMCAgICB8ICAg ICAgICAgICAgIEFyYml0ZXIgQ29udHJvbC9TdGF0dXMgICAgICAgICAgICAgIHwgICAgICBS ZXNlcnZlZCAgICAgICAgICAgICB8IDQwaAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICAgICAgICAgICBC cmlkZ2UgQ29udHJvbCAyICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgIEJyaWRn ZSBDb250cm9sIDEgICAgICAgICAgICAgICAgICAgfCA0NGgKKysqKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogfCAgICAgICAg ICAgICAgICAgICAgUmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICBCcmlkZ2UgU3RhdHVzICAgICAgICAgICAgICAgICAgICAgIHwgNDhoCisrKiogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoq IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZl ZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDRD aAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysqKiB8ICAgICAgICAgICAgICAgICBQcmVmZXRjaCBQb2xpY3kgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICBNdWx0aS1UcmFuc2FjdGlvbiBUaW1lciAgICAgICAg ICAgICAgfCA1MGgKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrKiogfCAgICAgICBSZXNlcnZlZCAgICAgICAgIHwgICAgICBQ cmUtYm9vdCBTdGF0dXMgICB8ICAgICAgICAgICAgIFBfU0VSUiMgQXNzZXJ0aW9uIENvbnRy b2wgICAgICAgICAgICAgIHwgNTRoCisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgICAgUmVzZXJ2ZWQgICAgICAg ICB8ICAgICAgICBSZXNlcnZlZCAgICAgICAgfCAgICAgICAgICAgICBTZWNvbmRhcnkgRGVj b2RlIEVuYWJsZSAgICAgICAgICAgICAgICB8IDU4aAorKyoqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICAgICAg ICAgICAgICBSZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg IFNlY29uZGFyeSBJRFNFTCAgICAgICAgICAgICAgICAgICAgfCA1Q2gKKysqKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgNUNoCisr KiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyoqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDY4aDpDQmgKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKyoqICAweDQyLTB4NDE6IFNlY29uZGFyeSBBcmJpdGVyIENvbnRy b2wvU3RhdHVzIFJlZ2lzdGVyIC0gU0FDU1IKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAg ICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAxNToxMiAgICAgIDExMTFiICAg ICAgICAgICAgICAgICAgR3JhbnQgVGltZS1vdXQgVmlvbGF0b3I6IFRoaXMgZmllbGQgaW5k aWNhdGVzIHRoZSBhZ2VudCB0aGF0IHZpb2xhdGVkIHRoZSBHcmFudCBUaW1lLW91dCBydWxl IChQQ0k9MTYgY2xvY2tzLFBDSS1YPTYgY2xvY2tzKS4gCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIGZpZWxkIGlzIG9ubHkgbWVhbmlu Z2Z1bCB3aGVuOgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjIEJpdFsxMV0gb2YgdGhpcyByZWdpc3RlciBpcyBz ZXQgdG8gMWIsIGluZGljYXRpbmcgdGhhdCBhIEdyYW50IFRpbWUtb3V0IHZpb2xhdGlvbiBo YWQgb2NjdXJyZWQuIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAjIGJyaWRnZSBpbnRlcm5hbCBhcmJpdGVyIGlz IGVuYWJsZWQuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQml0c1sxNToxMl0gVmlvbGF0aW5nIEFnZW50IChSRVEjL0dOVCMgcGFpciBudW1iZXIp CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MDAwMGIgUkVRIy9HTlQjWzBdCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMDAwMWIgUkVRIy9HTlQjWzFdCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAxMGIgUkVRIy9HTlQjWzJd CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg MDAxMWIgUkVRIy9HTlQjWzNdCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMTExMWIgRGVmYXVsdCBWYWx1ZSAobm8gdmlvbGF0aW9uIGRl dGVjdGVkKQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGVuIGJp dFsxMV0gaXMgY2xlYXJlZCBieSBzb2Z0d2FyZSwgdGhpcyBmaWVsZCByZXZlcnRzIGJhY2sg dG8gaXRzIGRlZmF1bHQgdmFsdWUuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFsbCBvdGhlciB2YWx1ZXMgYXJlIFJlc2VydmVkCisrKiogMTEgICAgICAgICAg ICAwYiAgICAgICAgICAgICAgICAgIEdyYW50IFRpbWUtb3V0IE9jY3VycmVkOiBXaGVuIHNl dCB0byAxYiwgCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMg aW5kaWNhdGVzIHRoYXQgYSBHcmFudCBUaW1lLW91dCBlcnJvciBoYWQgb2NjdXJyZWQgaW52 b2x2aW5nIG9uZSBvZiB0aGUgc2Vjb25kYXJ5IGJ1cyBhZ2VudHMuCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFNvZnR3YXJlIGNsZWFycyB0aGlzIGJpdCBieSB3 cml0aW5nIGEgMWIgdG8gaXQuCisrKiogMTAgICAgICAgICAgICAwYiAgICAgICAgICAgICAg ICAgICAgICBCdXMgUGFya2luZyBDb250cm9sOiAwPUR1cmluZyBidXMgaWRsZSwgYnJpZGdl IHBhcmtzIHRoZSBidXMgb24gdGhlIGxhc3QgbWFzdGVyIHRvIHVzZSB0aGUgYnVzLgorKyoq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMT1EdXJpbmcgYnVzIGlkbGUsIGJyaWRnZSBwYXJrcyB0aGUgYnVzIG9uIGl0c2Vs Zi4gVGhlIGJ1cyBncmFudCBpcyByZW1vdmVkIGZyb20gdGhlIGxhc3QgbWFzdGVyIGFuZCBp bnRlcm5hbGx5IGFzc2VydGVkIHRvIGJyaWRnZS4KKysqKiAwOTowOCAgICAgICAgMDBiICAg ICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqIDA3OjAwICAgICAgMDAwMCAw MDAwYiAgU2Vjb25kYXJ5IEJ1cyBBcmJpdGVyIFByaW9yaXR5IENvbmZpZ3VyYXRpb246IFRo ZSBicmlkZ2Ugc2Vjb25kYXJ5IGFyYml0ZXIgcHJvdmlkZXMgdHdvIHJpbmdzIG9mIGFyYml0 cmF0aW9uIHByaW9yaXR5LiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFYWNoIGJpdCBvZiB0aGlz IGZpZWxkIGFzc2lnbnMgaXRzIGNvcnJlc3BvbmRpbmcgc2Vjb25kYXJ5IGJ1cyBtYXN0ZXIg dG8gZWl0aGVyIHRoZSBoaWdoIHByaW9yaXR5IGFyYml0ZXIgcmluZyAoMWIpIG9yIHRvIHRo ZSBsb3cgcHJpb3JpdHkgYXJiaXRlciByaW5nICgwYikuIAorKyoqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IEJpdHMgWzM6MF0gY29ycmVzcG9uZCB0byByZXF1ZXN0IGlucHV0cyBTX1JFUSNbMzowXSwg cmVzcGVjdGl2ZWx5LiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCaXQgWzZdIGNvcnJlc3BvbmRz IHRvIHRoZSBicmlkZ2UgaW50ZXJuYWwgc2Vjb25kYXJ5IGJ1cyByZXF1ZXN0IHdoaWxlIEJp dCBbN10gY29ycmVzcG9uZHMgdG8gdGhlIFNBVFUgc2Vjb25kYXJ5IGJ1cyByZXF1ZXN0LiAK KysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCaXRzIFs1OjRdIGFyZSB1bnVzZWQuCisrKiogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMGI9SW5kaWNhdGVzIHRoYXQgdGhlIG1hc3RlciBiZWxvbmdzIHRvIHRoZSBs b3cgcHJpb3JpdHkgZ3JvdXAuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMWI9SW5kaWNhdGVzIHRo YXQgdGhlIG1hc3RlciBiZWxvbmdzIHRvIHRoZSBoaWdoIHByaW9yaXR5IGdyb3VwCisrKio9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHg0MzogQnJpZGdlIENvbnRyb2wg UmVnaXN0ZXIgMCAtIEJDUjAKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAg ICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAwNyAgICAgICAgICAgMGIgICAgICAgICAgICAg ICAgICBGdWxseSBEeW5hbWljIFF1ZXVlIE1vZGU6IDA9VGhlIG51bWJlciBvZiBQb3N0ZWQg d3JpdGUgdHJhbnNhY3Rpb25zIGlzIGxpbWl0ZWQgdG8gZWlnaHQgYW5kIHRoZSBQb3N0ZWQg V3JpdGUgZGF0YSBpcyBsaW1pdGVkIHRvIDRLQi4KKysqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE9T3BlcmF0aW9uIGlu IGZ1bGx5IGR5bmFtaWMgcXVldWUgbW9kZS4gVGhlIGJyaWRnZSBlbnF1ZXVlcyB1cCB0byAx NCBQb3N0ZWQgTWVtb3J5IFdyaXRlIHRyYW5zYWN0aW9ucyBhbmQgOEtCIG9mIHBvc3RlZCB3 cml0ZSBkYXRhLgorKyoqIDA2OjAzICAgICAgICAwSCAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVzZXJ2ZWQuCisrKiogMDIgICAgICAgICAgIDBiICAgICAgICAgICAgICAgICBVcHN0 cmVhbSBQcmVmZXRjaCBEaXNhYmxlOiBUaGlzIGJpdCBkaXNhYmxlcyBicmlkZ2UgYWJpbGl0 eSB0byBwZXJmb3JtIHVwc3RyZWFtIHByZWZldGNoIG9wZXJhdGlvbnMgZm9yIE1lbW9yeSBS ZWFkIHJlcXVlc3RzIHJlY2VpdmVkIG9uIGl0cyBzZWNvbmRhcnkgaW50ZXJmYWNlLiAKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgYml0IGFsc28gY29udHJv bHMgdGhlIGJyaWRnZSdzIGFiaWxpdHkgdG8gZ2VuZXJhdGUgYWR2YW5jZWQgcmVhZCBjb21t YW5kcyB3aGVuIGZvcndhcmRpbmcgYSBNZW1vcnkgUmVhZCBCbG9jayB0cmFuc2FjdGlvbiBy ZXF1ZXN0IHVwc3RyZWFtIGZyb20gYSBQQ0ktWCBidXMgdG8gYSBDb252ZW50aW9uYWwgUENJ IGJ1cy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBiPWJyaWRnZSB0 cmVhdHMgYWxsIHVwc3RyZWFtIE1lbW9yeSBSZWFkIHJlcXVlc3RzIGFzIHRob3VnaCB0aGV5 IHRhcmdldCBwcmVmZXRjaGFibGUgbWVtb3J5LiBUaGUgdXNlIG9mIE1lbW9yeSBSZWFkIExp bmUgYW5kIE1lbW9yeSBSZWFkCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE11bHRpcGxlIGlzIGVuYWJsZWQgd2hlbiBmb3J3YXJkaW5nIGEgUENJLVggTWVt b3J5IFJlYWQgQmxvY2sgcmVxdWVzdCB0byBhbiB1cHN0cmVhbSBidXMgb3BlcmF0aW5nIGlu IENvbnZlbnRpb25hbCBQQ0kgbW9kZS4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIDFiPWJyaWRnZSB0cmVhdHMgdXBzdHJlYW0gUENJIE1lbW9yeSBSZWFkIHJlcXVl c3RzIGFzIHRob3VnaCB0aGV5IHRhcmdldCBub24tcHJlZmV0Y2hhYmxlIG1lbW9yeSBhbmQg Zm9yd2FyZHMgdXBzdHJlYW0gUENJLVggTWVtb3J5IFJlYWQgQmxvY2sgY29tbWFuZHMgYXMg TWVtb3J5IFJlYWQgd2hlbiB0aGUgcHJpbWFyeSBidXMgaXMgb3BlcmF0aW5nIGluIENvbnZl bnRpb25hbCBQQ0kgbW9kZS4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE5PVEU6IFRoaXMgYml0IGRvZXMgbm90IGFmZmVjdCBicmlkZ2UgYWJpbGl0eSB0byBwZXJm b3JtIHJlYWQgcHJlZmV0Y2hpbmcgd2hlbiB0aGUgcmVjZWl2ZWQgY29tbWFuZCBpcyBNZW1v cnkgUmVhZCBMaW5lIG9yIE1lbW9yeSBSZWFkIE11bHRpcGxlLgorKyoqPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrKiogIDB4NDUtMHg0NDogQnJpZGdlIENvbnRyb2wgUmVnaXN0 ZXIgMSAtIEJDUjEgKFNoZWV0IDIgb2YgMikKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAg ICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAxNTowOCAgICAwMDAwMDAwYiAg ICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqIDA3OjA2ICAgICAgICAgMDBi ICAgICAgICAgICAgICAgICAgIEFsaWFzIENvbW1hbmQgTWFwcGluZzogVGhpcyB0d28gYml0 IGZpZWxkIGRldGVybWluZXMgaG93IGJyaWRnZSBoYW5kbGVzIFBDSS1YIKGnQWxpYXOhqCBj b21tYW5kcywgc3BlY2lmaWNhbGx5IHRoZSBBbGlhcyB0byBNZW1vcnkgUmVhZCBCbG9jayBh bmQgQWxpYXMgdG8gTWVtb3J5IFdyaXRlIEJsb2NrIGNvbW1hbmRzLiAKKysqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRo ZSB0aHJlZSBvcHRpb25zIGZvciBoYW5kbGluZyB0aGVzZSBhbGlhcyBjb21tYW5kcyBhcmUg dG8gZWl0aGVyIHBhc3MgaXQgYXMgaXMsIHJlLW1hcCB0byB0aGUgYWN0dWFsIGJsb2NrIG1l bW9yeSByZWFkL3dyaXRlIGNvbW1hbmQgZW5jb2RpbmcsIG9yIGlnbm9yZQorKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhlIHRyYW5zYWN0aW9uIGZvcmNpbmcgYSBNYXN0ZXIgQWJvcnQgdG8gb2NjdXIgb24gdGhl IE9yaWdpbmF0aW9uIEJ1cy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEJpdCAoNzo2KSBIYW5kbGluZyBvZiBjb21tYW5kCisrKiog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDAgMCBSZS1tYXAgdG8gTWVtb3J5IFJlYWQvV3JpdGUgQmxvY2sgYmVmb3JlIGZvcndhcmRp bmcKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMCAxIEVucXVldWUgYW5kIGZvcndhcmQgdGhlIGFsaWFzIGNvbW1hbmQgY29k ZSB1bmFsdGVyZWQKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgMSAwIElnbm9yZSB0aGUgdHJhbnNhY3Rpb24sIGZvcmNpbmcg TWFzdGVyIEFib3J0CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIDEgMSBSZXNlcnZlZAorKyoqIDA1ICAgICAgICAgICAgMWIg ICAgICAgICAgICAgICAgICBXYXRjaGRvZyBUaW1lcnMgRGlzYWJsZTogRGlzYWJsZXMgb3Ig ZW5hYmxlcyBhbGwgMiAyNCBXYXRjaGRvZyBUaW1lcnMgaW4gYm90aCBkaXJlY3Rpb25zLiAK KysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRoZSB3YXRjaGRvZyB0aW1lcnMgYXJlIHVzZWQgdG8gZGV0ZWN0IHByb2hp Yml0aXZlbHkgbG9uZyBsYXRlbmNpZXMgaW4gdGhlIHN5c3RlbS4gCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUg d2F0Y2hkb2cgdGltZXIgZXhwaXJlcyB3aGVuIGFueSBQb3N0ZWQgTWVtb3J5IFdyaXRlIChQ TVcpLCBEZWxheWVkIFJlcXVlc3QsIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgU3BsaXQgUmVxdWVzdHMgKFBD SS1YIG1vZGUpIGlzIG5vdCBjb21wbGV0ZWQgd2l0aGluIDIgMjQgZXZlbnRzIAorKyoqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKKGnZXZlbnRzoaggYXJlIGRlZmluZWQgYXMgUENJIENsb2NrcyB3aGVuIG9wZXJhdGlu ZyBpbiBQQ0ktWCBtb2RlLCBhbmQgYXMgdGhlIG51bWJlciBvZiB0aW1lcyBiZWluZyByZXRy aWVkIHdoZW4gb3BlcmF0aW5nIGluIENvbnZlbnRpb25hbCBQQ0kgbW9kZSkKKysqKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDBiPUFsbCAyIDI0IHdhdGNoZG9nIHRpbWVycyBhcmUgZW5hYmxlZC4KKysqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFi PUFsbCAyIDI0IHdhdGNoZG9nIHRpbWVycyBhcmUgZGlzYWJsZWQgYW5kIHRoZXJlIGlzIG5v IGxpbWl0cyB0byB0aGUgbnVtYmVyIG9mIGF0dGVtcHRzIGJyaWRnZSBtYWtlcyB3aGVuIGlu aXRpYXRpbmcgYSBQTVcsIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2FjdGluZyBhIERlbGF5ZWQg VHJhbnNhY3Rpb24sIG9yIGhvdyBsb25nIGl0IHdhaXRzIGZvciBhIHNwbGl0IGNvbXBsZXRp b24gY29ycmVzcG9uZGluZyB0byBvbmUgb2YgaXRzIHJlcXVlc3RzLgorKyoqIDA0ICAgICAg ICAgICAgMGIgICAgICAgICAgICAgICAgICBHUkFOVCMgdGltZS1vdXQgZGlzYWJsZTogVGhp cyBiaXQgZW5hYmxlcy9kaXNhYmxlcyB0aGUgR05UIyB0aW1lLW91dCBtZWNoYW5pc20uIAor KyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgR3JhbnQgdGltZS1vdXQgaXMgMTYgY2xvY2tzIGZvciBjb252ZW50aW9uYWwg UENJLCBhbmQgNiBjbG9ja3MgZm9yIFBDSS1YLgorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMGI9VGhlIFNlY29uZGFy eSBidXMgYXJiaXRlciB0aW1lcyBvdXQgYW4gYWdlbnQgdGhhdCBkb2VzIG5vdCBhc3NlcnQg RlJBTUUjIHdpdGhpbiAxNi82IGNsb2NrcyBvZiByZWNlaXZpbmcgaXRzIGdyYW50LCBvbmNl IHRoZSBidXMgaGFzIGdvbmUgaWRsZS4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSB0aW1lLW91dCBj b3VudGVyIGJlZ2lucyBhcyBzb29uIGFzIHRoZSBidXMgZ29lcyBpZGxlIHdpdGggdGhlIG5l dyBHTlQjIGFzc2VydGVkLiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW4gaW5mcmluZ2luZyBhZ2VudCBk b2VzIG5vdCByZWNlaXZlIGEgc3Vic2VxdWVudCBHTlQjIHVudGlsIGl0IGRlLWFzc2VydHMg aXRzIFJFUSMgZm9yIGF0IGxlYXN0IG9uZSBjbG9jayBjeWNsZS4KKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFiPUdO VCMgdGltZS1vdXQgbWVjaGFuaXNtIGlzIGRpc2FibGVkLgorKyoqIDAzICAgICAgICAgICAw MGIgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZC4KKysqKiAwMiAgICAgICAg ICAgIDBiICAgICAgICAgIFNlY29uZGFyeSBEaXNjYXJkIFRpbWVyIERpc2FibGU6IFRoaXMg Yml0IGVuYWJsZXMvZGlzYWJsZXMgYnJpZGdlIHNlY29uZGFyeSBkZWxheWVkIHRyYW5zYWN0 aW9uIGRpc2NhcmQgbWVjaGFuaXNtLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHRpbWUgb3V0IG1lY2hhbmlz bSBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IGluaXRpYXRvcnMgb2YgZGVsYXllZCB0cmFuc2Fj dGlvbnMgcmV0dXJuIGZvciB0aGVpciBkZWxheWVkIGNvbXBsZXRpb24gZGF0YS9zdGF0dXMg d2l0aGluIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgdGltZSBhZnRlciBpdCBpcyBhdmFpbGFi bGUgZnJvbSBicmlkZ2UuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAwYj1UaGUgc2Vjb25kYXJ5IG1hc3RlciB0aW1l LW91dCBjb3VudGVyIGlzIGVuYWJsZWQgYW5kIHVzZXMgdGhlIHZhbHVlIHNwZWNpZmllZCBi eSB0aGUgU2Vjb25kYXJ5IERpc2NhcmQgVGltZXIgYml0IChzZWUgQnJpZGdlIENvbnRyb2wg UmVnaXN0ZXIpLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMWI9VGhlIHNlY29uZGFyeSBtYXN0ZXIgdGltZS1vdXQg Y291bnRlciBpcyBkaXNhYmxlZC4gVGhlIGJyaWRnZSB3YWl0cyBpbmRlZmluaXRlbHkgZm9y IGEgc2Vjb25kYXJ5IGJ1cyBtYXN0ZXIgdG8gcmVwZWF0IGEgZGVsYXllZCB0cmFuc2FjdGlv bi4KKysqKiAwMSAgICAgICAgICAgIDBiICAgICAgICAgICAgUHJpbWFyeSBEaXNjYXJkIFRp bWVyIERpc2FibGU6IFRoaXMgYml0IGVuYWJsZXMvZGlzYWJsZXMgYnJpZGdlIHByaW1hcnkg ZGVsYXllZCB0cmFuc2FjdGlvbiBkaXNjYXJkIG1lY2hhbmlzbS4gVGhlIHRpbWUgb3V0IG1l Y2hhbmlzbSBpcyB1c2VkIHRvIGVuc3VyZSB0aGF0IGluaXRpYXRvcnMgb2YgZGVsYXllZCB0 cmFuc2FjdGlvbnMgcmV0dXJuIGZvciB0aGVpciBkZWxheWVkIGNvbXBsZXRpb24gZGF0YS9z dGF0dXMgd2l0aGluIGEgcmVhc29uYWJsZSBhbW91bnQgb2YgdGltZSBhZnRlciBpdCBpcyBh dmFpbGFibGUgZnJvbSBicmlkZ2UuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwYj1UaGUgcHJpbWFyeSBtYXN0ZXIg dGltZS1vdXQgY291bnRlciBpcyBlbmFibGVkIGFuZCB1c2VzIHRoZSB2YWx1ZSBzcGVjaWZp ZWQgYnkgdGhlIFByaW1hcnkgRGlzY2FyZCBUaW1lciBiaXQgKHNlZSBCcmlkZ2UgQ29udHJv bCBSZWdpc3RlcikuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAxYj1UaGUgc2Vjb25kYXJ5IG1hc3RlciB0aW1lLW91 dCBjb3VudGVyIGlzIGRpc2FibGVkLiBUaGUgYnJpZGdlIHdhaXRzIGluZGVmaW5pdGVseSBm b3IgYSBzZWNvbmRhcnkgYnVzIG1hc3RlciB0byByZXBlYXQgYSBkZWxheWVkIHRyYW5zYWN0 aW9uLgorKyoqIDAwICAgICAgICAgICAgMGIgICAgICAgICAgICAgICAgICAgICAgICAgICBS ZXNlcnZlZAorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIDB4NDctMHg0 NjogQnJpZGdlIENvbnRyb2wgUmVnaXN0ZXIgMiAtIEJDUjIKKysqKiBCaXQgICAgICAgRGVm YXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAxNTowNyAgICAg IDAwMDBiICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZC4KKysqKiAwNiAgICAg ICAgICAgIDBiIEdsb2JhbCBDbG9jayBPdXQgRGlzYWJsZSAoRXh0ZXJuYWwgU2Vjb25kYXJ5 IEJ1cyBDbG9jayBTb3VyY2UgRW5hYmxlKTogVGhpcyBiaXQgZGlzYWJsZXMgYWxsIG9mIHRo ZSBzZWNvbmRhcnkgUENJIGNsb2NrIG91dHB1dHMgaW5jbHVkaW5nIHRoZSBmZWVkYmFjayBj bG9jayBTX0NMS09VVC4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1lYW5zIHRoYXQgdGhlIHVzZXIgaXMg cmVxdWlyZWQgdG8gcHJvdmlkZSBhbiBTX0NMS0lOIGlucHV0IHNvdXJjZS4KKysqKiAwNTow NCAgICAgICAgMTEgKDY2IE1IeikgICAgICAgICAgICAgICAgICBQcmVzZXJ2ZWQuCisrKiog ICAgICAgICAgICAgIDAxICgxMDAgTUh6KQorKyoqICAgICAgICAgICAgICAwMCAoMTMzIE1I eikKKysqKiAwMzowMCAgICAgICAgRmggKDEwMCBNSHogJiA2NiBNSHopCisrKiogICAgICAg ICAgICAgIDdoICgxMzMgTUh6KQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRoaXMgNCBiaXQgZmllbGQgcHJvdmlkZXMgaW5kaXZpZHVhbCBlbmFibGUv ZGlzYWJsZSBtYXNrIGJpdHMgZm9yIGVhY2ggb2YgYnJpZGdlCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Vjb25kYXJ5IFBDSSBjbG9jayBvdXRwdXRz LiBTb21lLCBvciBhbGwgc2Vjb25kYXJ5IGNsb2NrIG91dHB1dHMgKFNfQ0xLT1szOjBdKQor KyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQgdG8g YmVpbmcgZW5hYmxlZCBmb2xsb3dpbmcgdGhlIHJpc2luZyBlZGdlIG9mIFBfUlNUIywgZGVw ZW5kaW5nIG9uIHRoZQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGZyZXF1ZW5jeSBvZiB0aGUgc2Vjb25kYXJ5IGJ1cyBjbG9jazoKKysqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgoUUgRGVzaWducyB3aXRo IDEwMCBNSHogKG9yIGxvd2VyKSBTZWNvbmRhcnkgUENJIGNsb2NrIHBvd2VyIHVwIHdpdGgg YWxsIGZvdXIgU19DTEtPcyBlbmFibGVkIGJ5IGRlZmF1bHQuIChTQ0xLT1szOjBdKaFQCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIKFFIERl c2lnbnMgd2l0aCAxMzMgTUh6IFNlY29uZGFyeSBQQ0kgY2xvY2sgcG93ZXIgdXAgd2l0aCB0 aGUgbG93ZXIgb3JkZXIgMyBTX0NMS09zIGVuYWJsZWQgYnkgZGVmYXVsdC4gKFNfQ0xLT1sy OjBdKSBPbmx5IHRob3NlIFNDTEtzIHRoYXQgcG93ZXIgdXAgZW5hYmxlZCBieSBjYW4gYmUg Y29ubmVjdGVkIHRvIGRvd25zdHJlYW0gZGV2aWNlIGNsb2NrIGlucHV0cy4KKysqKj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAweDQ5LTB4NDg6IEJyaWRnZSBTdGF0dXMg UmVnaXN0ZXIgLSBCU1IKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAg ICAgICAgRGVzY3JpcHRpb24KKysqKiAxNSAgICAgICAgICAgMGIgIFVwc3RyZWFtIERlbGF5 ZWQgVHJhbnNhY3Rpb24gRGlzY2FyZCBUaW1lciBFeHBpcmVkOiBUaGlzIGJpdCBpcyBzZXQg dG8gYSAxYiBhbmQgUF9TRVJSIyBpcyBjb25kaXRpb25hbGx5IGFzc2VydGVkIHdoZW4gdGhl IHNlY29uZGFyeSBkaXNjYXJkIHRpbWVyIGV4cGlyZXMuCisrKiogMTQgICAgICAgICAgIDBi ICBVcHN0cmVhbSBEZWxheWVkL1NwbGl0IFJlYWQgV2F0Y2hkb2cgVGltZXIgRXhwaXJlZDog CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIENvbnZlbnRpb25hbCBQQ0kgTW9kZTogVGhpcyBiaXQgaXMgc2V0IHRvIGEgMWIgYW5k IFBfU0VSUiMgaXMgY29uZGl0aW9uYWxseSBhc3NlcnRlZCB3aGVuIGJyaWRnZSBkaXNjYXJk cyBhbiB1cHN0cmVhbSBkZWxheWVkIHJlYWQgdHJhbnNhY3Rpb24gcmVxdWVzdCBhZnRlciAy IDI0IHJldHJpZXMgZm9sbG93aW5nIHRoZSBpbml0aWFsIHJldHJ5LgorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFBDSS1YIE1vZGU6IFRoaXMgYml0IGlzIHNldCB0byBhIDFiIGFuZCBQX1NFUlIjIGlzIGNv bmRpdGlvbmFsbHkgYXNzZXJ0ZWQgd2hlbiBicmlkZ2UgZGlzY2FyZHMgYW4gdXBzdHJlYW0g c3BsaXQgcmVhZCByZXF1ZXN0IGFmdGVyIHdhaXRpbmcgaW4gZXhjZXNzIG9mIDIgMjQgY2xv Y2tzIGZvciB0aGUgY29ycmVzcG9uZGluZyBTcGxpdCBDb21wbGV0aW9uIHRvIGFycml2ZS4K KysqKiAxMyAgICAgICAgICAgMGIgVXBzdHJlYW0gRGVsYXllZC9TcGxpdCBXcml0ZSBXYXRj aGRvZyBUaW1lciBFeHBpcmVkOiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ29udmVudGlvbmFsIFBDSSBNb2RlOiBUaGlzIGJp dCBpcyBzZXQgdG8gYSAxYiBhbmQgUF9TRVJSIyBpcyBjb25kaXRpb25hbGx5IGFzc2VydGVk IHdoZW4gYnJpZGdlIGRpc2NhcmRzIGFuIHVwc3RyZWFtIGRlbGF5ZWQgd3JpdGUgdHJhbnNh Y3Rpb24gcmVxdWVzdCBhZnRlciAyIDI0IHJldHJpZXMgZm9sbG93aW5nIHRoZSBpbml0aWFs IHJldHJ5LgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFBDSS1YIE1vZGU6IFRoaXMgYml0IGlzIHNldCB0byBh IDFiIGFuZCBQX1NFUlIjIGlzIGNvbmRpdGlvbmFsbHkgYXNzZXJ0ZWQgd2hlbiBicmlkZ2Ug ZGlzY2FyZHMgYW4gdXBzdHJlYW0gc3BsaXQgd3JpdGUgcmVxdWVzdCBhZnRlciB3YWl0aW5n IGluIGV4Y2VzcyBvZiAyIDI0IGNsb2NrcyBmb3IgdGhlIGNvcnJlc3BvbmRpbmcgU3BsaXQg Q29tcGxldGlvbiB0byBhcnJpdmUuCisrKiogMTIgICAgICAgICAgIDBiICAgICAgICAgICBN YXN0ZXIgQWJvcnQgZHVyaW5nIFVwc3RyZWFtIFBvc3RlZCBXcml0ZTogVGhpcyBiaXQgaXMg c2V0IHRvIGEgMWIgYW5kIFBfU0VSUiMgaXMgY29uZGl0aW9uYWxseSBhc3NlcnRlZCB3aGVu IGEgTWFzdGVyIEFib3J0IG9jY3VycyBhcyBhIHJlc3VsdCBvZiBhbiBhdHRlbXB0LCBieSBi cmlkZ2UsIHRvIHJldGlyZSBhIFBNVyB1cHN0cmVhbS4KKysqKiAxMSAgICAgICAgICAgMGIg ICAgICAgICAgIFRhcmdldCBBYm9ydCBkdXJpbmcgVXBzdHJlYW0gUG9zdGVkIFdyaXRlOiBU aGlzIGJpdCBpcyBzZXQgdG8gYSAxYiBhbmQgUF9TRVJSIyBpcyBjb25kaXRpb25hbGx5IGFz c2VydGVkIHdoZW4gYSBUYXJnZXQgQWJvcnQgb2NjdXJzIGFzIGEgcmVzdWx0IG9mIGFuIGF0 dGVtcHQsIGJ5IGJyaWRnZSwgdG8gcmV0aXJlIGEgUE1XIHVwc3RyZWFtLgorKyoqIDEwICAg ICAgICAgICAwYiAgICAgICAgICAgICAgICBVcHN0cmVhbSBQb3N0ZWQgV3JpdGUgRGF0YSBE aXNjYXJkZWQ6IFRoaXMgYml0IGlzIHNldCB0byBhIDFiIGFuZCBQX1NFUlIjIGlzIGNvbmRp dGlvbmFsbHkgYXNzZXJ0ZWQgd2hlbiBicmlkZ2UgZGlzY2FyZHMgYW4gdXBzdHJlYW0gUE1X IHRyYW5zYWN0aW9uIGFmdGVyIHJlY2VpdmluZyAyIDI0IHRhcmdldCByZXRyaWVzIGZyb20g dGhlIHByaW1hcnkgYnVzIHRhcmdldAorKyoqIDA5ICAgICAgICAgICAwYiAgICAgICAgICAg ICBVcHN0cmVhbSBQb3N0ZWQgV3JpdGUgRGF0YSBQYXJpdHkgRXJyb3I6IFRoaXMgYml0IGlz IHNldCB0byBhIDFiIGFuZCBQX1NFUlIjIGlzIGNvbmRpdGlvbmFsbHkgYXNzZXJ0ZWQgd2hl biBhIGRhdGEgcGFyaXR5IGVycm9yIGlzIGRldGVjdGVkIGJ5IGJyaWRnZSB3aGlsZSBhdHRl bXB0aW5nIHRvIHJldGlyZSBhIFBNVyB1cHN0cmVhbQorKyoqIDA4ICAgICAgICAgICAwYiAg ICAgICAgICAgICAgICAgIFNlY29uZGFyeSBCdXMgQWRkcmVzcyBQYXJpdHkgRXJyb3I6IFRo aXMgYml0IGlzIHNldCB0byBhIDFiIGFuZCBQX1NFUlIjIGlzIGNvbmRpdGlvbmFsbHkgYXNz ZXJ0ZWQgd2hlbiBicmlkZ2UgZGV0ZWN0cyBhbiBhZGRyZXNzIHBhcml0eSBlcnJvciBvbiB0 aGUgc2Vjb25kYXJ5IGJ1cy4KKysqKiAwNyAgICAgICAgICAgMGIgRG93bnN0cmVhbSBEZWxh eWVkIFRyYW5zYWN0aW9uIERpc2NhcmQgVGltZXIgRXhwaXJlZDogVGhpcyBiaXQgaXMgc2V0 IHRvIGEgMWIgYW5kIFBfU0VSUiMgaXMgY29uZGl0aW9uYWxseSBhc3NlcnRlZCB3aGVuIHRo ZSBwcmltYXJ5IGJ1cyBkaXNjYXJkIHRpbWVyIGV4cGlyZXMuCisrKiogMDYgICAgICAgICAg IDBiIERvd25zdHJlYW0gRGVsYXllZC9TcGxpdCBSZWFkIFdhdGNoZG9nIFRpbWVyIEV4cGly ZWQ6CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIENvbnZlbnRpb25hbCBQQ0kgTW9kZTogVGhpcyBiaXQgaXMgc2V0IHRvIGEgMWIg YW5kIFBfU0VSUiMgaXMgY29uZGl0aW9uYWxseSBhc3NlcnRlZCB3aGVuIGJyaWRnZSBkaXNj YXJkcyBhIGRvd25zdHJlYW0gZGVsYXllZCByZWFkIHRyYW5zYWN0aW9uIHJlcXVlc3QgYWZ0 ZXIgcmVjZWl2aW5nIDIgMjQgdGFyZ2V0IHJldHJpZXMgZnJvbSB0aGUgc2Vjb25kYXJ5IGJ1 cyB0YXJnZXQuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgUENJLVggTW9kZTogVGhpcyBiaXQgaXMgc2V0IHRv IGEgMWIgYW5kIFBfU0VSUiMgaXMgY29uZGl0aW9uYWxseSBhc3NlcnRlZCB3aGVuIGJyaWRn ZSBkaXNjYXJkcyBhIGRvd25zdHJlYW0gc3BsaXQgcmVhZCByZXF1ZXN0IGFmdGVyIHdhaXRp bmcgaW4gZXhjZXNzIG9mIDIgMjQgY2xvY2tzIGZvciB0aGUgY29ycmVzcG9uZGluZyBTcGxp dCBDb21wbGV0aW9uIHRvIGFycml2ZS4KKysqKiAwNSAgICAgICAgICAgMGIgRG93bnN0cmVh bSBEZWxheWVkIFdyaXRlL1NwbGl0IFdhdGNoZG9nIFRpbWVyIEV4cGlyZWQ6CisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbnZl bnRpb25hbCBQQ0kgTW9kZTogVGhpcyBiaXQgaXMgc2V0IHRvIGEgMWIgYW5kIFBfU0VSUiMg aXMgY29uZGl0aW9uYWxseSBhc3NlcnRlZCB3aGVuIGJyaWRnZSBkaXNjYXJkcyBhIGRvd25z dHJlYW0gZGVsYXllZCB3cml0ZSB0cmFuc2FjdGlvbiByZXF1ZXN0IGFmdGVyIHJlY2Vpdmlu ZyAyIDI0IHRhcmdldCByZXRyaWVzIGZyb20gdGhlIHNlY29uZGFyeSBidXMgdGFyZ2V0Lgor KyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFBDSS1YIE1vZGU6IFRoaXMgYml0IGlzIHNldCB0byBhIDFiIGFuZCBQ X1NFUlIjIGlzIGNvbmRpdGlvbmFsbHkgYXNzZXJ0ZWQgd2hlbiBicmlkZ2UgZGlzY2FyZHMg YSBkb3duc3RyZWFtIHNwbGl0IHdyaXRlIHJlcXVlc3QgYWZ0ZXIgd2FpdGluZyBpbiBleGNl c3Mgb2YgMiAyNCBjbG9ja3MgZm9yIHRoZSBjb3JyZXNwb25kaW5nIFNwbGl0IENvbXBsZXRp b24gdG8gYXJyaXZlLgorKyoqIDA0ICAgICAgICAgICAwYiAgICAgICAgICBNYXN0ZXIgQWJv cnQgZHVyaW5nIERvd25zdHJlYW0gUG9zdGVkIFdyaXRlOiBUaGlzIGJpdCBpcyBzZXQgdG8g YSAxYiBhbmQgUF9TRVJSIyBpcyBjb25kaXRpb25hbGx5IGFzc2VydGVkIHdoZW4gYSBNYXN0 ZXIgQWJvcnQgb2NjdXJzIGFzIGEgcmVzdWx0IG9mIGFuIGF0dGVtcHQsIGJ5IGJyaWRnZSwg dG8gcmV0aXJlIGEgUE1XIGRvd25zdHJlYW0uCisrKiogMDMgICAgICAgICAgIDBiICAgICAg ICAgIFRhcmdldCBBYm9ydCBkdXJpbmcgRG93bnN0cmVhbSBQb3N0ZWQgV3JpdGU6IFRoaXMg Yml0IGlzIHNldCB0byBhIDFiIGFuZCBQX1NFUlIjIGlzIGNvbmRpdGlvbmFsbHkgYXNzZXJ0 ZWQgd2hlbiBhIFRhcmdldCBBYm9ydCBvY2N1cnMgYXMgYSByZXN1bHQgb2YgYW4gYXR0ZW1w dCwgYnkgYnJpZGdlLCB0byByZXRpcmUgYSBQTVcgZG93bnN0cmVhbS4KKysqKiAwMiAgICAg ICAgICAgMGIgICAgICAgICAgICAgICBEb3duc3RyZWFtIFBvc3RlZCBXcml0ZSBEYXRhIERp c2NhcmRlZDogVGhpcyBiaXQgaXMgc2V0IHRvIGEgMWIgYW5kIFBfU0VSUiMgaXMgY29uZGl0 aW9uYWxseSBhc3NlcnRlZCB3aGVuIGJyaWRnZSBkaXNjYXJkcyBhIGRvd25zdHJlYW0gUE1X IHRyYW5zYWN0aW9uIGFmdGVyIHJlY2VpdmluZyAyIDI0IHRhcmdldCByZXRyaWVzIGZyb20g dGhlIHNlY29uZGFyeSBidXMgdGFyZ2V0CisrKiogMDEgICAgICAgICAgIDBiICAgICAgICAg ICAgRG93bnN0cmVhbSBQb3N0ZWQgV3JpdGUgRGF0YSBQYXJpdHkgRXJyb3I6IFRoaXMgYml0 IGlzIHNldCB0byBhIDFiIGFuZCBQX1NFUlIjIGlzIGNvbmRpdGlvbmFsbHkgYXNzZXJ0ZWQg d2hlbiBhIGRhdGEgcGFyaXR5IGVycm9yIGlzIGRldGVjdGVkIGJ5IGJyaWRnZSB3aGlsZSBh dHRlbXB0aW5nIHRvIHJldGlyZSBhIFBNVyBkb3duc3RyZWFtLgorKyoqIDAwICAgICAgICAg ICAwYiAgICAgICAgICAgICAgICAgICAgIFByaW1hcnkgQnVzIEFkZHJlc3MgUGFyaXR5IEVy cm9yOiBUaGlzIGJpdCBpcyBzZXQgdG8gYSAxYiBhbmQgUF9TRVJSIyBpcyBjb25kaXRpb25h bGx5IGFzc2VydGVkIHdoZW4gYnJpZGdlIGRldGVjdHMgYW4gYWRkcmVzcyBwYXJpdHkgZXJy b3Igb24gdGhlIHByaW1hcnkgYnVzLgorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorKyoqICAweDUxLTB4NTA6IEJyaWRnZSBNdWx0aS1UcmFuc2FjdGlvbiBUaW1lciBSZWdp c3RlciAtIEJNVFRSCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAg ICAgIERlc2NyaXB0aW9uCisrKiogMTU6MTMgICAgICAgMDAwYiAgICAgICAgICAgICAgICAg ICAgICAgICAgUmVzZXJ2ZWQKKysqKiAxMjoxMCAgICAgICAwMDBiICAgICAgICAgICAgICAg ICAgICAgICAgICBHUkFOVCMgRHVyYXRpb246IFRoaXMgZmllbGQgc3BlY2lmaWVzIHRoZSBj b3VudCAoUENJIGNsb2NrcykgdGhhdCBhIHNlY29uZGFyeSBidXMgbWFzdGVyIGhhcyBpdHMg Z3JhbnQgbWFpbnRhaW5lZCBpbiBvcmRlciB0byBlbmFibGUgbXVsdGlwbGUgdHJhbnNhY3Rp b25zIHRvIGV4ZWN1dGUgd2l0aGluIHRoZSBzYW1lIGFyYml0cmF0aW9uIGN5Y2xlLgorKyoq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJp dFswMjowMF0gR05UIyBFeHRlbmRlZCBEdXJhdGlvbgorKyoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMDAwIE1UVCBE aXNhYmxlZCAoRGVmYXVsdD1ubyBHTlQjIGV4dGVuc2lvbikKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAwMSAx NiBjbG9ja3MKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDAxMCAzMiBjbG9ja3MKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAxMSA2 NCBjbG9ja3MKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDEwMCAxMjggY2xvY2tzCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMDEg MjU2IGNsb2NrcworKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMTEwIEludmFsaWQgKHRyZWF0ZWQgYXMgMDAwKQor KyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMTExIEludmFsaWQgKHRyZWF0ZWQgYXMgMDAwKQorKyoqIDA5OjA4ICAg ICAgICAwMGIgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisrKiogMDc6MDAg ICAgICAgIEZGaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1UVCBNYXNrOiBU aGlzIGZpZWxkIGVuYWJsZXMvZGlzYWJsZXMgTVRUIHVzYWdlIGZvciBlYWNoIFJFUSMvR05U IyBwYWlyIHN1cHBvcnRlZCBieSBicmlkZ2Ugc2Vjb25kYXJ5IGFyYml0ZXIuIAorKyoqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgQml0KDcpIGNvcnJlc3BvbmRzIHRvIFNBVFUgaW50ZXJuYWwgUkVRIy9HTlQjIHBhaXIs CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBiaXQoNikgY29ycmVzcG9uZHMgdG8gYnJpZGdlIGludGVybmFsIFJFUSMv R05UIyBwYWlyLCAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJpdCg1KSBjb3JyZXNwb25kcyB0byBSRVEjL0dOVCMo NSkgcGFpciwgZXRjLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBXaGVuIGEgZ2l2ZW4gYml0IGlzIHNldCB0byAxYiwgaXRzIGNvcnJl c3BvbmRpbmcgUkVRIy9HTlQjIHBhaXIgaXMgZW5hYmxlZCBmb3IgTVRUIGZ1bmN0aW9uYWxp dHkgYXMgZGV0ZXJtaW5lZCBieSBiaXRzKDEyOjEwKSBvZiB0aGlzIHJlZ2lzdGVyLgorKyoq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGVu IGEgZ2l2ZW4gYml0IGlzIGNsZWFyZWQgdG8gMGIsIGl0cyBjb3JyZXNwb25kaW5nIFJFUSMv R05UIyBwYWlyIGlzIGRpc2FibGVkIGZyb20gdXNpbmcgdGhlIE1UVC4KKysqKj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHg1My0weDUyOiBSZWFkIFByZWZldGNoIFBv bGljeSBSZWdpc3RlciAtIFJQUFIKKysqKiBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAxNToxMyAgICAgICAwMDBiICAgICAgICAg ICAgICAgICAgICBSZVJlYWRfUHJpbWFyeSBCdXM6IDMtYml0IGZpZWxkIGluZGljYXRpbmcg dGhlIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byBiZSB1c2VkIGluIGNhbGN1bGF0aW5nIHRo ZSBudW1iZXIgb2YgYnl0ZXMgdG8gcHJlZmV0Y2ggZnJvbSB0aGUgc2Vjb25kYXJ5IGJ1cyBp bnRlcmZhY2Ugb24gc3Vic2VxdWVudCBQcmVGZXRjaCBvcGVyYXRpb25zIGdpdmVuIHRoYXQg dGhlIHJlYWQgZGVtYW5kcyB3ZXJlIG5vdCBzYXRpc2ZpZWQgdXNpbmcgdGhlIEZpcnN0UmVh ZCBwYXJhbWV0ZXIuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgb2YgMDAwYiBjb3JyZWxhdGVzIHRvOiBDb21tYW5k IFR5cGUgSGFyZHdpcmVkIHByZS1mZXRjaCBhbW91bnQgTWVtb3J5IFJlYWQgNCBEV09SRHMg TWVtb3J5IFJlYWQgTGluZSAxIGNhY2hlIGxpbmVzIE1lbW9yeSBSZWFkIE11bHRpcGxlIDIg Y2FjaGUgbGluZXMKKysqKiAxMjoxMCAgICAgICAwMDBiICAgICAgICAgICAgICAgICBGaXJz dFJlYWRfUHJpbWFyeSBCdXM6IDMtYml0IGZpZWxkIGluZGljYXRpbmcgdGhlIG11bHRpcGxp Y2F0aW9uIGZhY3RvciB0byBiZSB1c2VkIGluIGNhbGN1bGF0aW5nIHRoZSBudW1iZXIgb2Yg Ynl0ZXMgdG8gcHJlZmV0Y2ggZnJvbSB0aGUgc2Vjb25kYXJ5IGJ1cyBpbnRlcmZhY2Ugb24g dGhlIGluaXRpYWwgUHJlRmV0Y2ggb3BlcmF0aW9uLgorKyoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIDAwMGIgY29y cmVsYXRlcyB0bzogQ29tbWFuZCBUeXBlIEhhcmR3aXJlZCBwcmUtZmV0Y2ggYW1vdW50IE1l bW9yeSBSZWFkIDQgRFdPUkRzIE1lbW9yeSBSZWFkIExpbmUgMSBjYWNoZSBsaW5lIE1lbW9y eSBSZWFkIE11bHRpcGxlIDIgY2FjaGUgbGluZXMKKysqKiAwOTowNyAgICAgICAwMTBiICAg ICAgICAgICAgICAgICAgUmVSZWFkX1NlY29uZGFyeSBCdXM6IDMtYml0IGZpZWxkIGluZGlj YXRpbmcgdGhlIG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byBiZSB1c2VkIGluIGNhbGN1bGF0 aW5nIHRoZSBudW1iZXIgb2YgYnl0ZXMgdG8gcHJlZmV0Y2ggZnJvbSB0aGUgcHJpbWFyeSBi dXMgaW50ZXJmYWNlIG9uIHN1YnNlcXVlbnQgUHJlRmV0Y2ggb3BlcmF0aW9ucyBnaXZlbiB0 aGF0IHRoZSByZWFkIGRlbWFuZHMgd2VyZSBub3Qgc2F0aXNmaWVkIHVzaW5nIHRoZSBGaXJz dFJlYWQgcGFyYW1ldGVyLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIDAxMGIgY29ycmVsYXRlcyB0bzogQ29t bWFuZCBUeXBlIEhhcmR3aXJlZCBwcmUtZmV0Y2ggYW1vdW50IE1lbW9yeSBSZWFkIDMgY2Fj aGUgbGluZXMgTWVtb3J5IFJlYWQgTGluZSAzIGNhY2hlIGxpbmVzIE1lbW9yeSBSZWFkIE11 bHRpcGxlIDYgY2FjaGUgbGluZXMKKysqKiAwNjowNCAgICAgICAwMDBiICAgICAgICAgICAg ICAgRmlyc3RSZWFkX1NlY29uZGFyeSBCdXM6IDMtYml0IGZpZWxkIGluZGljYXRpbmcgdGhl IG11bHRpcGxpY2F0aW9uIGZhY3RvciB0byBiZSB1c2VkIGluIGNhbGN1bGF0aW5nIHRoZSBu dW1iZXIgb2YgYnl0ZXMgdG8gcHJlZmV0Y2ggZnJvbSB0aGUgcHJpbWFyeSBidXMgaW50ZXJm YWNlIG9uIHRoZSBpbml0aWFsIFByZUZldGNoIG9wZXJhdGlvbi4KKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiAw MDBiIGNvcnJlbGF0ZXMgdG86IENvbW1hbmQgVHlwZSBIYXJkd2lyZWQgcHJlLWZldGNoIGFt b3VudCBNZW1vcnkgUmVhZCA0IERXT1JEcyBNZW1vcnkgUmVhZCBMaW5lIDEgY2FjaGUgbGlu ZSBNZW1vcnkgUmVhZCBNdWx0aXBsZSAyIGNhY2hlIGxpbmVzCisrKiogMDM6MDAgICAgICAx MTExYiAgICAgICAgICAgICAgICBTdGFnZWQgUHJlZmV0Y2ggRW5hYmxlOiBUaGlzIGZpZWxk IGVuYWJsZXMvZGlzYWJsZXMgdGhlIEZpcnN0UmVhZC9SZVJlYWQgcHJlLWZldGNoIGFsZ29y aXRobSBmb3IgdGhlIHNlY29uZGFyeSBhbmQgdGhlIHByaW1hcnkgYnVzIGludGVyZmFjZXMu CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBCaXQoMykgaXMgYSBnYW5nZWQgZW5hYmxlIGJpdCBmb3IgUkVRIy9HTlQjWzc6 M10sIGFuZCBiaXRzKDI6MCkgcHJvdmlkZSBpbmRpdmlkdWFsCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZW5hYmxlIGJpdHMgZm9yIFJFUSMvR05UI1syOjBdLiAoYml0KDIpIGlzIHRo ZSBlbmFibGUgYml0IGZvciBSRVEjL0dOVCNbMl0sIGV0Yy4uLikKKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAxYjogZW5hYmxlcyB0aGUgc3RhZ2VkIHByZS1mZXRjaCBmZWF0dXJlCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMGI6IGRpc2FibGVzIHN0YWdlZCBwcmUtZmV0Y2gs CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhbmQgaGFyZHdpcmVzIHJlYWQgcHJlLWZldGNoIHBvbGljeSB0byB0aGUgZm9s bG93aW5nIGZvciAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIE1lbW9yeSBSZWFkLCAKKysqKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lbW9yeSBSZWFkIExp bmUsIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBhbmQgTWVtb3J5IFJlYWQgTXVsdGlwbGUgY29tbWFuZHM6IAorKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5k IFR5cGUgSGFyZHdpcmVkIFByZS1GZXRjaCBBbW91bnQuLi4KKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTWVtb3J5IFJlYWQgNCBEV09SRHMKKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTWVtb3J5IFJlYWQgTGluZSAxIGNhY2hlIGxpbmUKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVtb3J5IFJlYWQgTXVsdGlwbGUg MiBjYWNoZSBsaW5lcworKyoqIE5PVEU6IFdoZW4gdGhlIHN0YXJ0aW5nIGFkZHJlc3MgaXMg bm90IGNhY2hlIGxpbmUgYWxpZ25lZCwgYnJpZGdlIHByZS1mZXRjaGVzIE1lbW9yeSBSZWFk IGxpbmUgY29tbWFuZHMgb25seSB0byB0aGUgbmV4dCBoaWdoZXIgY2FjaGUgbGluZSBib3Vu ZGFyeS5Gb3Igbm9uLWNhY2hlIGxpbmUgYWxpZ25lZCBNZW1vcnkgUmVhZCBNdWx0aXBsZSBj b21tYW5kcyBicmlkZ2UgcHJlLWZldGNoZXMgb25seSB0byB0aGUgc2Vjb25kIGNhY2hlIGxp bmUgYm91bmRhcnkgZW5jb3VudGVyZWQuCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrKiogIDB4NTUtMHg1NDogUF9TRVJSIyBBc3NlcnRpb24gQ29udHJvbCAtIFNFUlJf Q1RMCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2Ny aXB0aW9uCisrKiogIDE1ICAgICAgICAgIDBiICAgVXBzdHJlYW0gRGVsYXllZCBUcmFuc2Fj dGlvbiBEaXNjYXJkIFRpbWVyIEV4cGlyZWQ6IERpY3RhdGVzIHRoZSBicmlkZ2UgYmVoYXZp b3IgaW4gcmVzcG9uc2UgdG8gaXRzIGRpc2NhcmRpbmcgb2YgYSBkZWxheWVkIHRyYW5zYWN0 aW9uIHRoYXQgd2FzIGluaXRpYXRlZCBmcm9tIHRoZSBwcmltYXJ5IGJ1cy4KKysqKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMGI9YnJpZGdlIGFzc2VydHMgUF9TRVJSIy4KKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMWI9YnJpZGdlIGRvZXMgbm90IGFzc2VydCBQX1NFUlIjCisrKiogIDE0ICAgICAg ICAgIDBiICAgVXBzdHJlYW0gRGVsYXllZC9TcGxpdCBSZWFkIFdhdGNoZG9nIFRpbWVyIEV4 cGlyZWQ6IERpY3RhdGVzIGJyaWRnZSBiZWhhdmlvciBmb2xsb3dpbmcgZXhwaXJhdGlvbiBv ZiB0aGUgc3ViamVjdCB3YXRjaGRvZyB0aW1lci4KKysqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMGI9 YnJpZGdlIGFzc2VydHMgUF9TRVJSIy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMWI9YnJpZGdl IGRvZXMgbm90IGFzc2VydCBQX1NFUlIjCisrKiogIDEzICAgICAgICAgIDBiICAgVXBzdHJl YW0gRGVsYXllZC9TcGxpdCBXcml0ZSBXYXRjaGRvZyBUaW1lciBFeHBpcmVkOiBEaWN0YXRl cyBicmlkZ2UgYmVoYXZpb3IgZm9sbG93aW5nIGV4cGlyYXRpb24gb2YgdGhlIHN1YmplY3Qg d2F0Y2hkb2cgdGltZXIuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBiPWJyaWRnZSBhc3NlcnRz IFBfU0VSUiMuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFiPWJyaWRnZSBkb2VzIG5vdCBhc3Nl cnQgUF9TRVJSIworKyoqICAxMiAgICAgICAgICAwYiAgICAgICAgICAgICBNYXN0ZXIgQWJv cnQgZHVyaW5nIFVwc3RyZWFtIFBvc3RlZCBXcml0ZTogRGljdGF0ZXMgYnJpZGdlIGJlaGF2 aW9yIGZvbGxvd2luZyBpdHMgaGF2aW5nIGRldGVjdGVkIGEgTWFzdGVyIEFib3J0IHdoaWxl IGF0dGVtcHRpbmcgdG8gcmV0aXJlIG9uZSBvZiBpdHMgUE1XcyB1cHN0cmVhbS4KKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMGI9YnJpZGdlIGFzc2VydHMgUF9TRVJSIy4KKysqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMWI9YnJpZGdlIGRvZXMgbm90IGFzc2VydCBQX1NFUlIjCisrKiogIDExICAg ICAgICAgIDBiICAgICAgICAgICAgIFRhcmdldCBBYm9ydCBkdXJpbmcgVXBzdHJlYW0gUG9z dGVkIFdyaXRlOiBEaWN0YXRlcyBicmlkZ2UgYmVoYXZpb3IgZm9sbG93aW5nIGl0cyBoYXZp bmcgYmVlbiB0ZXJtaW5hdGVkIHdpdGggVGFyZ2V0IEFib3J0IHdoaWxlIGF0dGVtcHRpbmcg dG8gcmV0aXJlIG9uZSBvZiBpdHMgUE1XcyB1cHN0cmVhbS4KKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMGI9YnJpZGdlIGFzc2VydHMgUF9TRVJSIy4KKysqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMWI9 YnJpZGdlIGRvZXMgbm90IGFzc2VydCBQX1NFUlIjCisrKiogIDEwICAgICAgICAgIDBiICAg ICAgICAgICAgICAgICAgVXBzdHJlYW0gUG9zdGVkIFdyaXRlIERhdGEgRGlzY2FyZGVkOiBE aWN0YXRlcyBicmlkZ2UgYmVoYXZpb3IgaW4gdGhlIGV2ZW50IHRoYXQgaXQgZGlzY2FyZHMg YW4gdXBzdHJlYW0gcG9zdGVkIHdyaXRlIHRyYW5zYWN0aW9uLgorKyoqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwYj1icmlkZ2UgYXNzZXJ0cyBQX1NFUlIjLgorKyoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx Yj1icmlkZ2UgZG9lcyBub3QgYXNzZXJ0IFBfU0VSUiMKKysqKiAgMDkgICAgICAgICAgMGIg ICAgICAgICAgICAgICBVcHN0cmVhbSBQb3N0ZWQgV3JpdGUgRGF0YSBQYXJpdHkgRXJyb3I6 IERpY3RhdGVzIGJyaWRnZSBiZWhhdmlvciB3aGVuIGEgZGF0YSBwYXJpdHkgZXJyb3IgaXMg ZGV0ZWN0ZWQgd2hpbGUgYXR0ZW1wdGluZyB0byByZXRpcmUgb24gb2YgaXRzIFBNV3MgdXBz dHJlYW0uCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBiPWJyaWRnZSBhc3NlcnRzIFBfU0VSUiMu CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDFiPWJyaWRnZSBkb2VzIG5vdCBhc3NlcnQgUF9TRVJS IworKyoqICAwOCAgICAgICAgICAwYiAgICAgICAgICAgICAgICAgICAgU2Vjb25kYXJ5IEJ1 cyBBZGRyZXNzIFBhcml0eSBFcnJvcjogVGhpcyBiaXQgZGljdGF0ZXMgYnJpZGdlIGJlaGF2 aW9yIHdoZW4gaXQgZGV0ZWN0cyBhbiBhZGRyZXNzIHBhcml0eSBlcnJvciBvbiB0aGUgc2Vj b25kYXJ5IGJ1cy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMGI9YnJpZGdlIGFzc2VydHMgUF9T RVJSIy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMWI9YnJpZGdlIGRvZXMgbm90IGFzc2VydCBQ X1NFUlIjCisrKiogIDA3ICAgICAgICAgIDBiICBEb3duc3RyZWFtIERlbGF5ZWQgVHJhbnNh Y3Rpb24gRGlzY2FyZCBUaW1lciBFeHBpcmVkOiBEaWN0YXRlcyBicmlkZ2UgYmVoYXZpb3Ig aW4gcmVzcG9uc2UgdG8gaXRzIGRpc2NhcmRpbmcgb2YgYSBkZWxheWVkIHRyYW5zYWN0aW9u IHRoYXQgd2FzIGluaXRpYXRlZCBvbiB0aGUgc2Vjb25kYXJ5IGJ1cy4KKysqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMGI9YnJpZGdlIGFzc2VydHMgUF9TRVJSIy4KKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMWI9YnJpZGdlIGRvZXMgbm90IGFzc2VydCBQX1NFUlIjCisrKiogIDA2ICAgICAgICAg IDBiICBEb3duc3RyZWFtIERlbGF5ZWQvU3BsaXQgUmVhZCBXYXRjaGRvZyBUaW1lciBFeHBp cmVkOiBEaWN0YXRlcyBicmlkZ2UgYmVoYXZpb3IgZm9sbG93aW5nIGV4cGlyYXRpb24gb2Yg dGhlIHN1YmplY3Qgd2F0Y2hkb2cgdGltZXIuCisrKiogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDBiPWJy aWRnZSBhc3NlcnRzIFBfU0VSUiMuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDFiPWJyaWRnZSBk b2VzIG5vdCBhc3NlcnQgUF9TRVJSIworKyoqICAwNSAgICAgICAgICAwYiBEb3duc3RyZWFt IERlbGF5ZWQvU3BsaXQgV3JpdGUgV2F0Y2hkb2cgVGltZXIgRXhwaXJlZDogRGljdGF0ZXMg YnJpZGdlIGJlaGF2aW9yIGZvbGxvd2luZyBleHBpcmF0aW9uIG9mIHRoZSBzdWJqZWN0IHdh dGNoZG9nIHRpbWVyLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwYj1icmlkZ2UgYXNzZXJ0cyBQ X1NFUlIjLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxYj1icmlkZ2UgZG9lcyBub3QgYXNzZXJ0 IFBfU0VSUiMKKysqKiAgMDQgICAgICAgICAgMGIgICAgICAgICAgIE1hc3RlciBBYm9ydCBk dXJpbmcgRG93bnN0cmVhbSBQb3N0ZWQgV3JpdGU6IERpY3RhdGVzIGJyaWRnZSBiZWhhdmlv ciBmb2xsb3dpbmcgaXRzIGhhdmluZyBkZXRlY3RlZCBhIE1hc3RlciBBYm9ydCB3aGlsZSBh dHRlbXB0aW5nIHRvIHJldGlyZSBvbmUgb2YgaXRzIFBNV3MgZG93bnN0cmVhbS4KKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMGI9YnJpZGdlIGFzc2VydHMgUF9TRVJSIy4KKysqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMWI9YnJpZGdlIGRvZXMgbm90IGFzc2VydCBQX1NFUlIjCisrKiogIDAzICAg ICAgICAgIDBiICAgICAgICAgICBUYXJnZXQgQWJvcnQgZHVyaW5nIERvd25zdHJlYW0gUG9z dGVkIFdyaXRlOiBEaWN0YXRlcyBicmlkZ2UgYmVoYXZpb3IgZm9sbG93aW5nIGl0cyBoYXZp bmcgYmVlbiB0ZXJtaW5hdGVkIHdpdGggVGFyZ2V0IEFib3J0IHdoaWxlIGF0dGVtcHRpbmcg dG8gcmV0aXJlIG9uZSBvZiBpdHMgUE1XcyBkb3duc3RyZWFtLgorKyoqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAwYj1icmlkZ2UgYXNzZXJ0cyBQX1NFUlIjLgorKyoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAx Yj1icmlkZ2UgZG9lcyBub3QgYXNzZXJ0IFBfU0VSUiMKKysqKiAgMDIgICAgICAgICAgMGIg ICAgICAgICAgICAgICAgRG93bnN0cmVhbSBQb3N0ZWQgV3JpdGUgRGF0YSBEaXNjYXJkZWQ6 IERpY3RhdGVzIGJyaWRnZSBiZWhhdmlvciBpbiB0aGUgZXZlbnQgdGhhdCBpdCBkaXNjYXJk cyBhIGRvd25zdHJlYW0gcG9zdGVkIHdyaXRlIHRyYW5zYWN0aW9uLgorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAwYj1icmlkZ2UgYXNzZXJ0cyBQX1NFUlIjLgorKyoqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAxYj1icmlkZ2UgZG9lcyBub3QgYXNzZXJ0IFBfU0VSUiMKKysqKiAgMDEgICAgICAgICAg MGIgICAgICAgICAgICAgRG93bnN0cmVhbSBQb3N0ZWQgV3JpdGUgRGF0YSBQYXJpdHkgRXJy b3I6IERpY3RhdGVzIGJyaWRnZSBiZWhhdmlvciB3aGVuIGEgZGF0YSBwYXJpdHkgZXJyb3Ig aXMgZGV0ZWN0ZWQgd2hpbGUgYXR0ZW1wdGluZyB0byByZXRpcmUgb24gb2YgaXRzIFBNV3Mg ZG93bnN0cmVhbS4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMGI9YnJpZGdlIGFzc2VydHMgUF9T RVJSIy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgMWI9YnJpZGdlIGRvZXMgbm90IGFzc2VydCBQ X1NFUlIjCisrKiogIDAwICAgICAgICAgIDBiICAgICAgICAgICAgICAgICAgICAgIFByaW1h cnkgQnVzIEFkZHJlc3MgUGFyaXR5IEVycm9yOiBUaGlzIGJpdCBkaWN0YXRlcyBicmlkZ2Ug YmVoYXZpb3Igd2hlbiBpdCBkZXRlY3RzIGFuIGFkZHJlc3MgcGFyaXR5IGVycm9yIG9uIHRo ZSBwcmltYXJ5IGJ1cy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMGI9YnJpZGdlIGFzc2VydHMg UF9TRVJSIy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMWI9YnJpZGdlIGRvZXMgbm90IGFzc2Vy dCBQX1NFUlIjCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIDB4NTY6IFBy ZS1Cb290IFN0YXR1cyBSZWdpc3RlciAtIFBCU1IKKysqKiBCaXQgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgICAgICAgICAgCQkJCQkJCURlc2NyaXB0aW9uCisrKiogMDcgICAgICAg ICAgIDEgICAgICAgICAgICAgICAgICAgICAgICAgIAkJCQkJCQkgUmVzZXJ2ZWQKKysqKiAw NiAgICAgICAgICAgLSAgICAgICAgICAgICAgICAgICAgICAgICAgCQkJCQkJCSBSZXNlcnZl ZCAtIHZhbHVlIGluZGV0ZXJtaW5hdGUKKysqKiAwNTowMiAgICAgICAgMCAgICAgICAgICAg ICAgICAgICAgICAgICAgCQkJCQkJCSBSZXNlcnZlZAorKyoqIDAxICAgICAgVmFyaWVzIHdp dGggRXh0ZXJuYWwgU3RhdGUgb2YgU18xMzNFTiBhdCBQQ0kgQnVzIFJlc2V0ICAgIFNlY29u ZGFyeSBCdXMgTWF4IEZyZXF1ZW5jeSBTZXR0aW5nOiBUaGlzIGJpdCByZWZsZWN0IGNhcHR1 cmVkIFNfMTMzRU4gc3RyYXAsIGluZGljYXRpbmcgdGhlIG1heGltdW0gc2Vjb25kYXJ5IGJ1 cyBjbG9jayBmcmVxdWVuY3kgd2hlbiBpbiBQQ0ktWCBtb2RlLgorKyoqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IE1heCBBbGxvd2FibGUgU2Vjb25kYXJ5IEJ1cyBGcmVxdWVuY3kKKysqKgkJCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCQlTXzEzM0VOIFBDSS1YIE1vZGUKKysqKgkJCQkJCQkJCQkJCQkJCQkJ CQkJCQkJCQkwIDEwMCBNSHoKKysqKgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkxIDEzMyBN SAorKyoqIDAwICAgICAgICAgIDBiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisrKio9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrKiogIDB4NTktMHg1ODogU2Vjb25kYXJ5IERlY29kZSBFbmFibGUgUmVnaXN0ZXIg LSBTREVSCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIAkJ CQkJCQlEZXNjcmlwdGlvbgorKyoqIDE1OjAzICAgICAgRkZGMWggICAgICAgICAgICAgICAg ICAgICAgICAJCQkJCQkJIFByZXNlcnZlZC4KKysqKiAwMiAgICAgVmFyaWVzIHdpdGggRXh0 ZXJuYWwgU3RhdGUgb2YgUFJJVk1FTSBhdCBQQ0kgQnVzIFJlc2V0ICAgUHJpdmF0ZSBNZW1v cnkgU3BhY2UgRW5hYmxlIC0gd2hlbiBzZXQsIGJyaWRnZSBvdmVycmlkZXMgaXRzIHNlY29u ZGFyeSBpbnZlcnNlIGRlY29kZSBsb2dpYyBhbmQgbm90CisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcndh cmQgdXBzdHJlYW0gYW55IHNlY29uZGFyeSBidXMgaW5pdGlhdGVkIERBQyBNZW1vcnkgdHJh bnNhY3Rpb25zIHdpdGggQUQoNjMpPTFiLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGNyZWF0ZXMg YSBwcml2YXRlIG1lbW9yeSBzcGFjZSBvbiB0aGUgU2Vjb25kYXJ5IFBDSSBidXMgdGhhdCBh bGxvd3MgcGVlci10by1wZWVyIHRyYW5zYWN0aW9ucy4KKysqKiAwMTowMCAgICAgIDEwIDIg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQcmVz ZXJ2ZWQuCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIDB4NUQtMHg1Qzog U2Vjb25kYXJ5IElEU0VMIFNlbGVjdCBSZWdpc3RlciAtIFNJU1IKKysqKiBCaXQgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgCQkJCQkJCURlc2NyaXB0aW9uCisrKiog MTU6MTAgICAgIDAwMDAwMCAyICAgICAgICAgICAgICAgICAgICAgIAkJCQkJCQkgUmVzZXJ2 ZWQuCisrKiogMDkgICAgVmFyaWVzIHdpdGggRXh0ZXJuYWwgU3RhdGUgb2YgUFJJVkRFViBh dCBQQ0kgQnVzIFJlc2V0ICAgICBBRDI1LSBJRFNFTCBEaXNhYmxlIC0gV2hlbiB0aGlzIGJp dCBpcyBzZXQsIEFEMjUgaXMgZGVhc3NlcnRlZCBmb3IgYW55IHBvc3NpYmxlIFR5cGUgMSB0 byBUeXBlIDAgY29udmVyc2lvbi4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBXaGVuIHRoaXMgYml0IGlzIGNsZWFyLCBBRDI1IGlzIGFzc2VydGVkIHdoZW4gUHJp bWFyeSBhZGRyZXNzZXMgQURbMTU6MTFdPTAxMDAxIDIgZHVyaW5nIGEgVHlwZSAxIHRvIFR5 cGUgMCBjb252ZXJzaW9uLgorKyoqIDA4ICAgIFZhcmllcyB3aXRoIEV4dGVybmFsIFN0YXRl IG9mIFBSSVZERVYgYXQgUENJIEJ1cyBSZXNldCAgICAgQUQyNC0gSURTRUwgRGlzYWJsZSAt IFdoZW4gdGhpcyBiaXQgaXMgc2V0LCBBRDI0IGlzIGRlYXNzZXJ0ZWQgZm9yIGFueSBwb3Nz aWJsZSBUeXBlIDEgdG8gVHlwZSAwIGNvbnZlcnNpb24uCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgV2hlbiB0aGlzIGJpdCBpcyBjbGVhciwgQUQyNCBpcyBhc3Nl cnRlZCB3aGVuIFByaW1hcnkgYWRkcmVzc2VzIEFEWzE1OjExXT0wMTAwMCAyIGR1cmluZyBh IFR5cGUgMSB0byBUeXBlIDAgY29udmVyc2lvbi4KKysqKiAwNyAgICBWYXJpZXMgd2l0aCBF eHRlcm5hbCBTdGF0ZSBvZiBQUklWREVWIGF0IFBDSSBCdXMgUmVzZXQgICAgIEFEMjMtIElE U0VMIERpc2FibGUgLSBXaGVuIHRoaXMgYml0IGlzIHNldCwgQUQyMyBpcyBkZWFzc2VydGVk IGZvciBhbnkgcG9zc2libGUgVHlwZSAxIHRvIFR5cGUgMCBjb252ZXJzaW9uLiAKKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGVuIHRoaXMgYml0IGlzIGNsZWFy LCBBRDIzIGlzIGFzc2VydGVkIHdoZW4gUHJpbWFyeSBhZGRyZXNzZXMgQURbMTU6MTFdPTAw MTExIDIgZHVyaW5nIGEgVHlwZSAxIHRvIFR5cGUgMCBjb252ZXJzaW9uLgorKyoqIDA2ICAg IFZhcmllcyB3aXRoIEV4dGVybmFsIFN0YXRlIG9mIFBSSVZERVYgYXQgUENJIEJ1cyBSZXNl dCAgICAgQUQyMi0gSURTRUwgRGlzYWJsZSAtIFdoZW4gdGhpcyBiaXQgaXMgc2V0LCBBRDIy IGlzIGRlYXNzZXJ0ZWQgZm9yIGFueSBwb3NzaWJsZSBUeXBlIDEgdG8gVHlwZSAwIGNvbnZl cnNpb24uCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiB0aGlz IGJpdCBpcyBjbGVhciwgQUQyMiBpcyBhc3NlcnRlZCB3aGVuIFByaW1hcnkgYWRkcmVzc2Vz IEFEWzE1OjExXT0wMDExMCAyIGR1cmluZyBhIFR5cGUgMSB0byBUeXBlIDAgY29udmVyc2lv bi4KKysqKiAwNSAgICBWYXJpZXMgd2l0aCBFeHRlcm5hbCBTdGF0ZSBvZiBQUklWREVWIGF0 IFBDSSBCdXMgUmVzZXQgICAgIEFEMjEtIElEU0VMIERpc2FibGUgLSBXaGVuIHRoaXMgYml0 IGlzIHNldCwgQUQyMSBpcyBkZWFzc2VydGVkIGZvciBhbnkgcG9zc2libGUgVHlwZSAxIHRv IFR5cGUgMCBjb252ZXJzaW9uLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFdoZW4gdGhpcyBiaXQgaXMgY2xlYXIsIEFEMjEgaXMgYXNzZXJ0ZWQgd2hlbiBQcmlt YXJ5IGFkZHJlc3NlcyBBRFsxNToxMV09MDAxMDEgMiBkdXJpbmcgYSBUeXBlIDEgdG8gVHlw ZSAwIGNvbnZlcnNpb24uCisrKiogMDQgICAgVmFyaWVzIHdpdGggRXh0ZXJuYWwgU3RhdGUg b2YgUFJJVkRFViBhdCBQQ0kgQnVzIFJlc2V0ICAgICBBRDIwLSBJRFNFTCBEaXNhYmxlIC0g V2hlbiB0aGlzIGJpdCBpcyBzZXQsIEFEMjAgaXMgZGVhc3NlcnRlZCBmb3IgYW55IHBvc3Np YmxlIFR5cGUgMSB0byBUeXBlIDAgY29udmVyc2lvbi4KKysqKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBXaGVuIHRoaXMgYml0IGlzIGNsZWFyLCBBRDIwIGlzIGFzc2Vy dGVkIHdoZW4gUHJpbWFyeSBhZGRyZXNzZXMgQURbMTU6MTFdPTAwMTAwIDIgZHVyaW5nIGEg VHlwZSAxIHRvIFR5cGUgMCBjb252ZXJzaW9uLgorKyoqIDAzICAgIFZhcmllcyB3aXRoIEV4 dGVybmFsIFN0YXRlIG9mIFBSSVZERVYgYXQgUENJIEJ1cyBSZXNldCAgICAgQUQxOS0gSURT RUwgRGlzYWJsZSAtIFdoZW4gdGhpcyBiaXQgaXMgc2V0LCBBRDE5IGlzIGRlYXNzZXJ0ZWQg Zm9yIGFueSBwb3NzaWJsZSBUeXBlIDEgdG8gVHlwZSAwIGNvbnZlcnNpb24uCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hlbiB0aGlzIGJpdCBpcyBjbGVhciwg QUQxOSBpcyBhc3NlcnRlZCB3aGVuIFByaW1hcnkgYWRkcmVzc2VzIEFEWzE1OjExXT0wMDAx MSAyIGR1cmluZyBhIFR5cGUgMSB0byBUeXBlIDAgY29udmVyc2lvbi4KKysqKiAwMiAgICBW YXJpZXMgd2l0aCBFeHRlcm5hbCBTdGF0ZSBvZiBQUklWREVWIGF0IFBDSSBCdXMgUmVzZXQg ICAgIEFEMTgtIElEU0VMIERpc2FibGUgLSBXaGVuIHRoaXMgYml0IGlzIHNldCwgQUQxOCBp cyBkZWFzc2VydGVkIGZvciBhbnkgcG9zc2libGUgVHlwZSAxIHRvIFR5cGUgMCBjb252ZXJz aW9uLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gdGhpcyBi aXQgaXMgY2xlYXIsIEFEMTggaXMgYXNzZXJ0ZWQgd2hlbiBQcmltYXJ5IGFkZHJlc3NlcyBB RFsxNToxMV09MDAwMTAgMiBkdXJpbmcgYSBUeXBlIDEgdG8gVHlwZSAwIGNvbnZlcnNpb24u CisrKiogMDEgICAgVmFyaWVzIHdpdGggRXh0ZXJuYWwgU3RhdGUgb2YgUFJJVkRFViBhdCBQ Q0kgQnVzIFJlc2V0ICAgICBBRDE3LSBJRFNFTCBEaXNhYmxlIC0gV2hlbiB0aGlzIGJpdCBp cyBzZXQsIEFEMTcgaXMgZGVhc3NlcnRlZCBmb3IgYW55IHBvc3NpYmxlIFR5cGUgMSB0byBU eXBlIDAgY29udmVyc2lvbi4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBXaGVuIHRoaXMgYml0IGlzIGNsZWFyLCBBRDE3IGlzIGFzc2VydGVkIHdoZW4gUHJpbWFy eSBhZGRyZXNzZXMgQURbMTU6MTFdPTAwMDAxIDIgZHVyaW5nIGEgVHlwZSAxIHRvIFR5cGUg MCBjb252ZXJzaW9uLgorKyoqIDAwICAgIFZhcmllcyB3aXRoIEV4dGVybmFsIFN0YXRlIG9m IFBSSVZERVYgYXQgUENJIEJ1cyBSZXNldCAgICAgQUQxNi0gSURTRUwgRGlzYWJsZSAtIFdo ZW4gdGhpcyBiaXQgaXMgc2V0LCBBRDE2IGlzIGRlYXNzZXJ0ZWQgZm9yIGFueSBwb3NzaWJs ZSBUeXBlIDEgdG8gVHlwZSAwIGNvbnZlcnNpb24uCisrKiogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgV2hlbiB0aGlzIGJpdCBpcyBjbGVhciwgQUQxNiBpcyBhc3NlcnRl ZCB3aGVuIFByaW1hcnkgYWRkcmVzc2VzIEFEWzE1OjExXT0wMDAwMCAyIGR1cmluZyBhIFR5 cGUgMSB0byBUeXBlIDAgY29udmVyc2lvbi4KKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyov CisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICAgICAgICAgICAgICAgICBSZXNl cnZlZCAgICAgIEE4LUNCaCAgICAgICAgICAgCisrKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysq LworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgICAgICAgICAgICAgICAgIFBD SSBFeHRlbmRlZCBFbmhhbmNlZCBDYXBhYmlsaXRpZXMgTGlzdCBDQy1GRmgKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgIEJ5dGUgMyAgICAgICAgICAgICAgfCAgICAg ICAgIEJ5dGUgMiAgICAgICAgIHwgICAgICAgIEJ5dGUgMSAgICAgICAgICB8ICAgICAgIEJ5 dGUgMCAgICAgICAgICAgICAgfCBDb25maWd1LXJhdGlvbiBCeXRlIE9mZnNldAorKyoqIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysq KiB8ICAgICAgICAgICBQb3dlciBNYW5hZ2VtZW50IENhcGFiaWxpdGllcyAgICAgICAgIHwg ICAgICAgIE5leHQgSXRlbSBQdHIgICB8ICAgICBDYXBhYmlsaXR5IElEICAgICAgICAgfCBE Q2gKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisrKiogfCAgICAgICAgUE0gRGF0YSAgICAgICAgIHwgICAgICAgUFBCIFN1cHBv cnQgICAgICB8ICAgICAgICAgICAgRXh0ZW5zaW9ucyBQb3dlciBNYW5hZ2VtZW50IENTUiAg ICAgICAgIHwgRTBoCisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkICAg ICAgICAgICAgICAgICAgICAgfCAgICAgICAgUmVzZXJ2ZWQgICAgICAgIHwgICAgICAgIFJl c2VydmVkICAgICAgICAgICB8IEU0aAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBFOGgKKysqKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogfCAgICAgICBSZXNl cnZlZCAgICAgICAgIHwgICAgICAgIFJlc2VydmVkICAgICAgICB8ICAgICAgICBSZXNlcnZl ZCAgICAgICAgfCAgICAgICAgIFJlc2VydmVkICAgICAgICAgIHwgRUNoCisrKiogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwg ICAgICAgICAgICAgIFBDSS1YIFNlY29uZGFyeSBTdGF0dXMgICAgICAgICAgICAgfCAgICAg ICBOZXh0IEl0ZW0gUHRyICAgIHwgICAgICAgQ2FwYWJpbGl0eSBJRCAgICAgICB8IEYwaAor KyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysqKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQQ0kt WCBCcmlkZ2UgU3RhdHVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBGNGgKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrKiogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJ LVggVXBzdHJlYW0gU3BsaXQgVHJhbnNhY3Rpb24gQ29udHJvbCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgRjhoCisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgUENJLVggRG93bnN0cmVhbSBTcGxpdCBUcmFuc2FjdGlvbiBDb250cm9sICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8IEZDaAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKysqKiAgMHhEQzogUG93ZXIgTWFuYWdlbWVudCBDYXBhYmlsaXRpZXMgSWRl bnRpZmllciAtIFBNX0NBUElECisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAg ICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogMDc6MDAgICAgICAgMDFoICAgICAgICAgICAg ICAgICAgICAgICAgSWRlbnRpZmllciAoSUQpOiBQQ0kgU0lHIGFzc2lnbmVkIElEIGZvciBQ Q0ktUE0gcmVnaXN0ZXIgYmxvY2sKKysqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysq KiAgMHhERDogTmV4dCBJdGVtIFBvaW50ZXIgLSBQTV9OWFRQCisrKiogQml0ICAgICAgIERl ZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogMDc6MDAgICAg ICAgRjBIICAgICAgICAgICAgICAgIE5leHQgQ2FwYWJpbGl0aWVzIFBvaW50ZXIgKFBUUik6 IFRoZSByZWdpc3RlciBkZWZhdWx0cyB0byBGMEggcG9pbnRpbmcgdG8gdGhlIFBDSS1YIEV4 dGVuZGVkIENhcGFiaWxpdHkgSGVhZGVyLgorKyoqPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQorKyoqICAweERGLTB4REU6IFBvd2VyIE1hbmFnZW1lbnQgQ2FwYWJpbGl0aWVzIFJlZ2lz dGVyIC0gUE1DUgorKyoqIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAg ICBEZXNjcmlwdGlvbgorKyoqIDE1OjExICAgICAgIDAwaCAgICAgICAgICAgICAgICAgICAg IFBNRSBTdXBwb3J0ZWQgKFBNRSk6IFBNRSMgY2Fubm90IGJlIGFzc2VydGVkIGJ5IGJyaWRn ZS4KKysqKiAxMCAgICAgICAgICAgMGggICAgICAgICAgICAgICAgIFN0YXRlIEQyIFN1cHBv cnRlZCAoRDIpOiBJbmRpY2F0ZXMgbm8gc3VwcG9ydCBmb3Igc3RhdGUgRDIuIE5vIHBvd2Vy IG1hbmFnZW1lbnQgYWN0aW9uIGluIHRoaXMgc3RhdGUuCisrKiogMDkgICAgICAgICAgIDFo ICAgICAgICAgICAgICAgICBTdGF0ZSBEMSBTdXBwb3J0ZWQgKEQxKTogSW5kaWNhdGVzIHN1 cHBvcnQgZm9yIHN0YXRlIEQxLiBObyBwb3dlciBtYW5hZ2VtZW50IGFjdGlvbiBpbiB0aGlz IHN0YXRlLgorKyoqIDA4OjA2ICAgICAgICAwaCAgICAgICAgICAgICAgICBBdXhpbGlhcnkg Q3VycmVudCAoQVVYQyk6IFRoaXMgMyBiaXQgZmllbGQgcmVwb3J0cyB0aGUgMy4zVmF1eCBh dXhpbGlhcnkgY3VycmVudCByZXF1aXJlbWVudHMgZm9yIHRoZSBQQ0kgZnVuY3Rpb24uIAor KyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRoaXMgcmV0dXJucyAwMDBiIGFzIFBNRSMgd2FrZS11cCBmb3IgYnJpZGdlIGlz IG5vdCBpbXBsZW1lbnRlZC4KKysqKiAwNSAgICAgICAgICAgMCAgIFNwZWNpYWwgSW5pdGlh bGl6YXRpb24gUmVxdWlyZWQgKFNJTlQpOiBTcGVjaWFsIGluaXRpYWxpemF0aW9uIGlzIG5v dCByZXF1aXJlZCBmb3IgYnJpZGdlLgorKyoqIDA0OjAzICAgICAgIDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFJlc2VydmVkCisrKiogMDI6MDAgICAgICAgMDEwICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFZlcnNpb24gKFZTKTogSW5kaWNhdGVzIHRoYXQgdGhpcyBz dXBwb3J0cyBQQ0kgQnVzIFBvd2VyIE1hbmFnZW1lbnQgSW50ZXJmYWNlIFNwZWNpZmljYXRp b24sIFJldmlzaW9uIDEuMS4KKysqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAg MHhFMS0weEUwOiBQb3dlciBNYW5hZ2VtZW50IENvbnRyb2wgLyBTdGF0dXMgLSBSZWdpc3Rl ciAtIFBNQ1NSCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAg IERlc2NyaXB0aW9uCisrKiogMTU6MDkgICAgICAgMDBoICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXNlcnZlZAorKyoqIDA4ICAgICAgICAgIDBiICAgICAgICAgICAgICAgICAgICAg ICAgICBQTUVfRW5hYmxlOiBUaGlzIGJpdCwgd2hlbiBzZXQgdG8gMWIgZW5hYmxlcyBicmlk Z2UgdG8gYXNzZXJ0IFBNRSMuIE5vdGUgdGhhdCBicmlkZ2UgbmV2ZXIgaGFzIG9jY2FzaW9u IHRvIGFzc2VydCBQTUUjIGFuZCBpbXBsZW1lbnRzIHRoaXMgZHVtbXkgUi9XIGJpdCBvbmx5 IGZvciB0aGUgcHVycG9zZSBvZiB3b3JraW5nIGFyb3VuZCBhbiBPUyBQQ0ktUE0gYnVnLgor KyoqIDA3OjAyICAgICAgIDAwaCAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQK KysqKiAwMTowMCAgICAgICAwMCAgICAgICAgICAgICAgICBQb3dlciBTdGF0ZSAoUFNUQVRF KTogVGhpcyAyLWJpdCBmaWVsZCBpcyB1c2VkIGJvdGggdG8gZGV0ZXJtaW5lIHRoZSBjdXJy ZW50IHBvd2VyIHN0YXRlIG9mIGEgZnVuY3Rpb24gYW5kIHRvIHNldCB0aGUgRnVuY3Rpb24g aW50byBhIG5ldyBwb3dlciBzdGF0ZS4KKysqKiAgCQkJCQkJCQkJCQkJCTAwIC0gRDAgc3Rh dGUKKysqKiAgCQkJCQkJCQkJCQkJCTAxIC0gRDEgc3RhdGUKKysqKiAgCQkJCQkJCQkJCQkJ CTEwIC0gRDIgc3RhdGUKKysqKiAgCQkJCQkJCQkJCQkJCTExIC0gRDMgaG90IHN0YXRlCisr Kio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIDB4RTI6IFBvd2VyIE1hbmFnZW1l bnQgQ29udHJvbCAvIFN0YXR1cyBQQ0kgdG8gUENJIEJyaWRnZSBTdXBwb3J0IC0gUE1DU1Jf QlNFCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2Ny aXB0aW9uCisrKiogMDcgICAgICAgICAgMCAgICAgICAgIEJ1cyBQb3dlci9DbG9jayBDb250 cm9sIEVuYWJsZSAoQlBDQ19Fbik6IEluZGljYXRlcyB0aGF0IHRoZSBidXMgcG93ZXIvY2xv Y2sgY29udHJvbCBwb2xpY2llcyBoYXZlIGJlZW4gZGlzYWJsZWQuCisrKiogMDYgICAgICAg ICAgMCAgICAgICAgICAgICAgICBCMi9CMyBzdXBwb3J0IGZvciBEMyBIb3QgKEIyX0IzIyk6 IFRoZSBzdGF0ZSBvZiB0aGlzIGJpdCBkZXRlcm1pbmVzIHRoZSBhY3Rpb24gdGhhdCBpcyB0 byBvY2N1ciBhcyBhIGRpcmVjdCByZXN1bHQgb2YgcHJvZ3JhbW1pbmcgdGhlIGZ1bmN0aW9u IHRvIEQzIGhvdC4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBiaXQgaXMgb25seSBtZWFuaW5nZnVs IHdoZW4gYml0IDcgKEJQQ0NfRW4pIGlzIGEgoacxoaguCisrKiogMDU6MDAgICAgIDAwaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQorKyoqICAweEUzOiBQb3dlciBNYW5hZ2VtZW50IERhdGEgUmVnaXN0ZXIg LSBQTURSCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERl c2NyaXB0aW9uCisrKiogMDc6MDAgICAgICAgMDBoICAgICAgICAgICAgICAgICAgICAgICAg ICBSZXNlcnZlZAorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAweEYwOiBQ Q0ktWCBDYXBhYmlsaXRpZXMgSWRlbnRpZmllciAtIFBYX0NBUElECisrKiogQml0ICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogMDc6MDAg ICAgICAgMDdoICAgICAgICAgICAgICAgICAgICAgICBJZGVudGlmaWVyIChJRCk6IEluZGlj YXRlcyB0aGlzIGlzIGEgUENJLVggY2FwYWJpbGl0aWVzIGxpc3QuCisrKio9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CisrKiogIDB4RjE6IE5leHQgSXRlbSBQb2ludGVyIC0gUFhfTlhU UAorKyoqIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlw dGlvbgorKyoqIDA3OjAwICAgICAgIDAwaCAgICAgICAgICAgICAgICAgICAgIE5leHQgSXRl bSBQb2ludGVyOiBQb2ludHMgdG8gdGhlIG5leHQgY2FwYWJpbGl0eSBpbiB0aGUgbGlua2Vk IGxpc3QgVGhlIHBvd2VyIG9uIGRlZmF1bHQgdmFsdWUgb2YgdGhpcworKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3Rl ciBpcyAwMGggaW5kaWNhdGluZyB0aGF0IHRoaXMgaXMgdGhlIGxhc3QgZW50cnkgaW4gdGhl IGxpbmtlZCBsaXN0IG9mIGNhcGFiaWxpdGllcy4KKysqKj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKysqKiAgMHhGMy0weEYyOiBQQ0ktWCBTZWNvbmRhcnkgU3RhdHVzIC0gUFhfU1NU UworKyoqIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlw dGlvbgorKyoqIDE1OjA5ICAgICAgIDAwaCAgICAgICAgICAgICAgICAgICAgICAgICAgUmVz ZXJ2ZWQKKysqKiAwODowNiAgICAgICBYeHggICAgICAgICAgICAgICAgU2Vjb25kYXJ5IENs b2NrIEZyZXF1ZW5jeSAoU0NGKTogVGhpcyBmaWVsZCBpcyBzZXQgd2l0aCB0aGUgZnJlcXVl bmN5IG9mIHRoZSBzZWNvbmRhcnkgYnVzLiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhlIHZhbHVlcyBh cmU6CisrKiogCQkJCQkJCQkJCQkJCQkJCQkJCQkJQml0c01heCBGcmVxdWVuY3lDbG9jayBQ ZXJpb2QKKysqKiAJCQkJCQkJCQkJCQkJCQkJCQkJCQkwMDBQQ0kgTW9kZU4vQQorKyoqIAkJ CQkJCQkJCQkJCQkJCQkJCQkJCTAwMTY2IDE1CisrKiogCQkJCQkJCQkJCQkJCQkJCQkJCQkJ MDEwMTAwMTAKKysqKiAJCQkJCQkJCQkJCQkJCQkJCQkJCQkwMTExMzM3LjUKKysqKiAJCQkJ CQkJCQkJCQkJCQkJCQkJCQkxeHhyZXNlcnZlZHJlc2VydmVkCisrKiogCQkJCQkJCQkJCQkJ CQkJCQkJCQkJVGhlIGRlZmF1bHQgdmFsdWUgZm9yIHRoaXMgcmVnaXN0ZXIgaXMgdGhlIG9w ZXJhdGluZyBmcmVxdWVuY3kgb2YgdGhlIHNlY29uZGFyeSBidXMKKysqKiAwNSAgICAgICAg ICAgMGIgICAgICAgICAgICAgICAgICAgU3BsaXQgUmVxdWVzdCBEZWxheWVkLiAoU1JEKTog IFRoaXMgYml0IGlzIHN1cHBvc2VkIHRvIGJlIHNldCBieSBhIGJyaWRnZSB3aGVuIGl0IGNh bm5vdCBmb3J3YXJkIGEgdHJhbnNhY3Rpb24gb24gdGhlCisrKiogCQkJCQkJCQkJCQkJCQkJ CQlzZWNvbmRhcnkgYnVzIHRvIHRoZSBwcmltYXJ5IGJ1cyBiZWNhdXNlIHRoZXJlIGlzIG5v dCBlbm91Z2ggcm9vbSB3aXRoaW4gdGhlIGxpbWl0CisrKiogCQkJCQkJCQkJCQkJCQkJCQlz cGVjaWZpZWQgaW4gdGhlIFNwbGl0IFRyYW5zYWN0aW9uIENvbW1pdG1lbnQgTGltaXQgZmll bGQgaW4gdGhlIERvd25zdHJlYW0gU3BsaXQKKysqKiAJCQkJCQkJCQkJCQkJCQkJCVRyYW5z YWN0aW9uIENvbnRyb2wgcmVnaXN0ZXIuIFRoZSBicmlkZ2UgZG9lcyBub3Qgc2V0IHRoaXMg Yml0LgorKyoqIDA0ICAgICAgICAgICAwYiAgICAgICAgICAgICAgICAgU3BsaXQgQ29tcGxl dGlvbiBPdmVycnVuIChTQ08pOiBUaGlzIGJpdCBpcyBzdXBwb3NlZCB0byBiZSBzZXQgd2hl biBhIGJyaWRnZSB0ZXJtaW5hdGVzIGEgU3BsaXQgQ29tcGxldGlvbiBvbiB0aGUgc2Vjb25k YXJ5IGJ1cyB3aXRoIHJldHJ5IG9yIERpc2Nvbm5lY3QgYXQgbmV4dCBBREIgYmVjYXVzZSBp dHMgYnVmZmVycyBhcmUgZnVsbC4gVGhlIGJyaWRnZSBkb2VzIG5vdCBzZXQgdGhpcyBiaXQu CisrKiogMDMgICAgICAgICAgIDBiICAgICAgICAgICAgICBVbmV4cGVjdGVkIFNwbGl0IENv bXBsZXRpb24gKFVTQyk6IFRoaXMgYml0IGlzIHNldCB3aGVuIGFuIHVuZXhwZWN0ZWQgc3Bs aXQgY29tcGxldGlvbiB3aXRoIGEgcmVxdWVzdGVyIElEIGVxdWFsIHRvIGJyaWRnZSBzZWNv bmRhcnkgYnVzIG51bWJlciwgZGV2aWNlIG51bWJlciAwMGgsIGFuZCBmdW5jdGlvbiBudW1i ZXIgMCBpcyByZWNlaXZlZCBvbiB0aGUgc2Vjb25kYXJ5IGludGVyZmFjZS4gVGhpcyBiaXQg aXMgY2xlYXJlZCBieSBzb2Z0d2FyZSB3cml0aW5nIGEgJzEnLgorKyoqIDAyICAgICAgICAg ICAwYiAgICAgICAgICAgICAgIFNwbGl0IENvbXBsZXRpb24gRGlzY2FyZGVkIChTQ0QpOiBU aGlzIGJpdCBpcyBzZXQgd2hlbiBicmlkZ2UgZGlzY2FyZHMgYSBzcGxpdCBjb21wbGV0aW9u IG1vdmluZyB0b3dhcmQgdGhlIHNlY29uZGFyeSBidXMgYmVjYXVzZSB0aGUgcmVxdWVzdGVy IHdvdWxkIG5vdCBhY2NlcHQgaXQuIFRoaXMgYml0IGNsZWFyZWQgYnkgc29mdHdhcmUgd3Jp dGluZyBhICcxJy4KKysqKiAwMSAgICAgICAgICAgMWIgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDEzMyBNSHogQ2FwYWJsZTogSW5kaWNhdGVzIHRoYXQgYnJpZGdlIGlzIGNh cGFibGUgb2YgcnVubmluZyBpdHMgc2Vjb25kYXJ5IGJ1cyBhdCAxMzMgTUh6CisrKiogMDAg ICAgICAgICAgIDFiICAgICAgICAgICAgICAgICAgICAgICAgICAgIDY0LWJpdCBEZXZpY2Ug KEQ2NCk6IEluZGljYXRlcyB0aGUgd2lkdGggb2YgdGhlIHNlY29uZGFyeSBidXMgYXMgNjQt Yml0cy4KKysqKj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgMHhGNy0weEY2LTB4 ZjUtMHhGNDogUENJLVggQnJpZGdlIFN0YXR1cyAtIFBYX0JTVFMKKysqKiBCaXQgICAgICAg RGVmYXVsdCAgICAgIAkJCQkJCQkJICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoq IDMxOjIyICAgICAgICAwICAgICAgICAgCQkJCQkJCQkgICAgICAgICAgICAgICAgICBSZXNl cnZlZAorKyoqIDIxICAgICAgICAgICAwICAgICAgICAgCQkJCQkJCQkgICAgICAgIFNwbGl0 IFJlcXVlc3QgRGVsYXllZCAoU1JEKTogVGhpcyBiaXQgZG9lcyBub3QgYmUgc2V0IGJ5IGJy aWRnZS4KKysqKiAyMCAgICAgICAgICAgMCAgICAgICAgIAkJCQkJCQkJICAgICBTcGxpdCBD b21wbGV0aW9uIE92ZXJydW4gKFNDTyk6IFRoaXMgYml0IGRvZXMgbm90IGJlIHNldCBieSBi cmlkZ2UgYmVjYXVzZSBicmlkZ2UgdGhyb3R0bGVzIHRyYWZmaWMgb24gdGhlIGNvbXBsZXRp b24gc2lkZS4KKysqKiAxOSAgICAgICAgICAgMCAgICAgICAgIAkJCQkJCQkJICBVbmV4cGVj dGVkIFNwbGl0IENvbXBsZXRpb24gKFVTQyk6IFRoZSBicmlkZ2Ugc2V0cyB0aGlzIGJpdCB0 byAxYiB3aGVuIGl0IGVuY291bnRlcnMgYSBjb3JydXB0ZWQgU3BsaXQgQ29tcGxldGlvbiwg cG9zc2libHkgd2l0aCBhbiBpbmNvbnNpc3RlbnQgcmVtYWluaW5nIGJ5dGUgY291bnQuU29m dHdhcmUgY2xlYXJzIHRoaXMgYml0IGJ5IHdyaXRpbmcgYSAxYiB0byBpdC4KKysqKiAxOCAg ICAgICAgICAgMCAgICAgICAgIAkJCQkJCQkJICAgU3BsaXQgQ29tcGxldGlvbiBEaXNjYXJk ZWQgKFNDRCk6IFRoZSBicmlkZ2Ugc2V0cyB0aGlzIGJpdCB0byAxYiB3aGVuIGl0IGhhcyBk aXNjYXJkZWQgYSBTcGxpdCBDb21wbGV0aW9uLlNvZnR3YXJlIGNsZWFycyB0aGlzIGJpdCBi eSB3cml0aW5nIGEgMWIgdG8gaXQuCisrKiogMTcgICAgICAgICAgIDEgICAgICAgICAJCQkJ CQkJCSAgICAgICAgICAgICAgICAgICAgMTMzIE1IeiBDYXBhYmxlOiBUaGlzIGJpdCBpbmRp Y2F0ZXMgdGhhdCB0aGUgYnJpZGdlIHByaW1hcnkgaW50ZXJmYWNlIGlzIGNhcGFibGUgb2Yg MTMzIE1IeiBvcGVyYXRpb24gaW4gUENJLVggbW9kZS4KKysqKiAgICAgICAgICAgICAgICAg ICAgICAgIAkJCQkJCQkJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDA9 VGhlIG1heGltdW0gb3BlcmF0aW5nIGZyZXF1ZW5jeSBpcyA2NiBNSHouCisrKiogICAgICAg ICAgICAgICAgICAgICAgICAJCQkJCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAxPVRoZSBtYXhpbXVtIG9wZXJhdGluZyBmcmVxdWVuY3kgaXMgMTMzIE1Iei4K KysqKiAxNiBWYXJpZXMgd2l0aCB0aGUgZXh0ZXJuYWwgc3RhdGUgb2YgUF8zMkJJVFBDSSMg YXQgUENJIEJ1cyBSZXNldCAgICA2NC1iaXQgRGV2aWNlIChENjQpOiBJbmRpY2F0ZXMgYnVz IHdpZHRoIG9mIHRoZSBQcmltYXJ5IFBDSSBidXMgaW50ZXJmYWNlLgorKyoqCQkJCQkJCQkJ CQkJCQkJCQkJCQkJCQkgMD1QcmltYXJ5IEludGVyZmFjZSBpcyBjb25uZWN0ZWQgYXMgYSAz Mi1iaXQgUENJIGJ1cy4KKysqKgkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJIDE9UHJpbWFyeSBJ bnRlcmZhY2UgaXMgY29ubmVjdGVkIGFzIGEgNjQtYml0IFBDSSBidXMuCisrKiogMTU6MDgg ICAgICAgMDBoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBCdXMgTnVtYmVyIChCTlVNKTogVGhpcyBmaWVsZCBpcyBzaW1wbHkgYW4g YWxpYXMgdG8gdGhlIFBCTiBmaWVsZCBvZiB0aGUgQk5VTSByZWdpc3RlciBhdCBvZmZzZXQg MThoLgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFwcGFyZW50 bHkgaXQgd2FzIGRlZW1lZCBuZWNlc3NhcnkgcmVmbGVjdCBpdCBoZXJlIGZvciBkaWFnbm9z dGljIHB1cnBvc2VzLgorKyoqIDA3OjAzICAgICAgIDFmaCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIE51bWJlciAoRE5VTSk6 IEluZGljYXRlcyB3aGljaCBJRFNFTCBicmlkZ2UgY29uc3VtZXMuIE1heSBiZSB1cGRhdGVk IHdoZW5ldmVyIGEgUENJLVgKKysqKiAJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCSBjb25maWd1 cmF0aW9uIHdyaXRlIGN5Y2xlIHRoYXQgdGFyZ2V0cyBicmlkZ2Ugc2NvcmVzIGEgaGl0Lgor KyoqIDAyOjAwICAgICAgICAwaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEZ1bmN0aW9uIE51bWJlciAoRk5VTSk6IFRoZSBicmlkZ2UgRnVu Y3Rpb24gIworKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAweEZCLTB4RkEt MHhGOS0weEY4OiBQQ0ktWCBVcHN0cmVhbSBTcGxpdCBUcmFuc2FjdGlvbiBDb250cm9sIC0g UFhfVVNUQworKyoqIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBE ZXNjcmlwdGlvbgorKyoqIDMxOjE2ICAgICAgMDAzRWggICAgICAgICAgICAgICAgIFNwbGl0 IFRyYW5zYWN0aW9uIExpbWl0IChTVEwpOiBUaGlzIHJlZ2lzdGVyIGluZGljYXRlcyB0aGUg c2l6ZSBvZiB0aGUgY29tbWl0bWVudCBsaW1pdCBpbiB1bml0cyBvZiBBRFFzLgorKyoqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTb2Z0d2FyZSBpcyBwZXJtaXR0ZWQgdG8gcHJvZ3JhbSB0aGlzIHJlZ2lzdGVy IHRvIGFueSB2YWx1ZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8KKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGhlIGNvbnRlbnRzIG9mIHRoZSBTcGxpdCBUcmFuc2FjdGlvbiBDYXBhY2l0eSByZWdpc3Rl ci4gQSB2YWx1ZSBsZXNzIHRoYW4gdGhlIGNvbnRlbnRzCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIHRo ZSBTcGxpdCBUcmFuc2FjdGlvbiBDYXBhY2l0eSByZWdpc3RlciBjYXVzZXMgdW5zcGVjaWZp ZWQgcmVzdWx0cy4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQSB2YWx1ZSBvZiAwMDNFaCBvciBncmVhdGVy IGVuYWJsZXMgdGhlIGJyaWRnZSB0byBmb3J3YXJkIGFsbCBTcGxpdCBSZXF1ZXN0cyBvZiBh bnkKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2l6ZSByZWdhcmRsZXNzIG9mIHRoZSBhbW91bnQgb2YgYnVm ZmVyIHNwYWNlIGF2YWlsYWJsZS4KKysqKiAxNTowMCAgICAgIDAwM0VoICAgICAgICAgICAg ICBTcGxpdCBUcmFuc2FjdGlvbiBDYXBhY2l0eSAoU1RDKTogVGhpcyByZWFkLW9ubHkgZmll bGQgaW5kaWNhdGVzIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBBRFFzKSBm b3Igc3RvcmluZworKyoqIAkJCQkJCQkJCQkJCQkJCQkgICBzcGxpdCBjb21wbGV0aW9ucy4g VGhpcyByZWdpc3RlciBjb250cm9scyBiZWhhdmlvciBvZiB0aGUgYnJpZGdlIGJ1ZmZlcnMg Zm9yIGZvcndhcmRpbmcKKysqKiAJCQkJCQkJCQkJCQkJCQkJICAgU3BsaXQgVHJhbnNhY3Rp b25zIGZyb20gYSBwcmltYXJ5IGJ1cyByZXF1ZXN0ZXIgdG8gYSBzZWNvbmRhcnkgYnVzIGNv bXBsZXRlci4KKysqKiAJCQkJCQkJCQkJCQkJCQkJICAgVGhlIGRlZmF1bHQgdmFsdWUgb2Yg MDAzRWggaW5kaWNhdGVzIHRoZXJlIGlzIGF2YWlsYWJsZSBidWZmZXIgc3BhY2UgZm9yIDYy IEFEUXMgKDc5MzYgYnl0ZXMpLgorKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoq ICAweEZGLTB4RkUtMHhGRC0weEZDOiBQQ0ktWCBEb3duc3RyZWFtIFNwbGl0IFRyYW5zYWN0 aW9uIENvbnRyb2wgLSBQWF9EU1RDCisrKiogQml0ICAgICAgIERlZmF1bHQgICAgICAgICAg ICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogMzE6MTYgICAgICAwMDNFaCAgICAgICAg ICAgICAgICAgU3BsaXQgVHJhbnNhY3Rpb24gTGltaXQgKFNUTCk6ICBUaGlzIHJlZ2lzdGVy IGluZGljYXRlcyB0aGUgc2l6ZSBvZiB0aGUgY29tbWl0bWVudCBsaW1pdCBpbiB1bml0cyBv ZiBBRFFzLgorKyoqCQkJCQkJCQkJCQkJCQkJCQlTb2Z0d2FyZSBpcyBwZXJtaXR0ZWQgdG8g cHJvZ3JhbSB0aGlzIHJlZ2lzdGVyIHRvIGFueSB2YWx1ZSBncmVhdGVyIHRoYW4gb3IgZXF1 YWwgdG8KKysqKgkJCQkJCQkJCQkJCQkJCQkJdGhlIGNvbnRlbnRzIG9mIHRoZSBTcGxpdCBU cmFuc2FjdGlvbiBDYXBhY2l0eSByZWdpc3Rlci4gQSB2YWx1ZSBsZXNzIHRoYW4gdGhlIGNv bnRlbnRzCisrKioJCQkJCQkJCQkJCQkJCQkJCW9mIHRoZSBTcGxpdCBUcmFuc2FjdGlvbiBD YXBhY2l0eSByZWdpc3RlciBjYXVzZXMgdW5zcGVjaWZpZWQgcmVzdWx0cy4KKysqKgkJCQkJ CQkJCQkJCQkJCQkJQSB2YWx1ZSBvZiAwMDNFaCBvciBncmVhdGVyIGVuYWJsZXMgdGhlIGJy aWRnZSB0byBmb3J3YXJkIGFsbCBTcGxpdCBSZXF1ZXN0cyBvZiBhbnkKKysqKgkJCQkJCQkJ CQkJCQkJCQkJc2l6ZSByZWdhcmRsZXNzIG9mIHRoZSBhbW91bnQgb2YgYnVmZmVyIHNwYWNl IGF2YWlsYWJsZS4KKysqKiAxNTowMCAgICAgIDAwM0VoICAgICAgICAgICAgICBTcGxpdCBU cmFuc2FjdGlvbiBDYXBhY2l0eSAoU1RDKTogVGhpcyByZWFkLW9ubHkgZmllbGQgaW5kaWNh dGVzIHRoZSBzaXplIG9mIHRoZSBidWZmZXIgKG51bWJlciBvZiBBRFFzKSBmb3Igc3Rvcmlu ZworKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcGxpdCBjb21wbGV0aW9ucy4gVGhpcyByZWdpc3RlciBjb250 cm9scyBiZWhhdmlvciBvZiB0aGUgYnJpZGdlIGJ1ZmZlcnMgZm9yIGZvcndhcmRpbmcKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgU3BsaXQgVHJhbnNhY3Rpb25zIGZyb20gYSBwcmltYXJ5IGJ1cyByZXF1 ZXN0ZXIgdG8gYSBzZWNvbmRhcnkgYnVzIGNvbXBsZXRlci4KKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhl IGRlZmF1bHQgdmFsdWUgb2YgMDAzRWggaW5kaWNhdGVzIHRoZXJlIGlzIGF2YWlsYWJsZSBi dWZmZXIgc3BhY2UgZm9yIDYyIEFEUXMgKDc5MzYgYnl0ZXMpLgorKyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrKi8KKysKKysKKysKKysKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKysqKiAgICAgICAgICAgICAgICAgICAgICAgODAzMzEgQWRkcmVzcyBUcmFuc2xhdGlv biBVbml0IFJlZ2lzdGVyIERlZmluaXRpb25zCisrKiogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQVRVIEludGVyZmFjZSBDb25maWd1cmF0aW9uIEhlYWRlciBGb3JtYXQKKysq KiAgICAgICAgICAgICAgIFRoZSBBVFUgaXMgcHJvZ3JhbW1lZCB2aWEgYSBbVHlwZSAwXSBj b25maWd1cmF0aW9uIGNvbW1hbmQgb24gdGhlIFBDSSBpbnRlcmZhY2UuCisrKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorKyoqIHwgICAgQnl0ZSAzICAgICAgICAgICAgICB8ICAgICAg ICAgQnl0ZSAyICAgICAgICAgfCAgICAgICAgQnl0ZSAxICAgICAgICAgIHwgICAgICAgQnl0 ZSAwICAgICAgICAgICAgICB8IENvbmZpZ3VyYXRpb24gQnl0ZSBPZmZzZXQKKysqKj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisrKiogfCAgICAgICAgICAgICAgICBBVFUgRGV2aWNlIElE ICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgVmVuZG9yIElEICAg ICAgICAgICAgICAgICAgICAgIHwgMDBoCisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgICAgICAgICAgICAgICAg ICBTdGF0dXMgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgIENv bW1hbmQgICAgICAgICAgICAgICAgICAgICAgICB8IDA0SAorKyoqIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgQVRVIENsYXNzIENvZGUgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgICAgIFJldmlzaW9uIElEICAgICAgICAgfCAwOEgKKysqKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiog fCAgICAgICAgIEFUVUJJU1RSICAgICAgIHwgICAgIEhlYWRlciBUeXBlICAgICAgICB8ICAg ICAgTGF0ZW5jeSBUaW1lciAgICAgfCAgICAgIENhY2hlbGluZSBTaXplICAgICAgIHwgMENI CisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyoqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5ib3Vu ZCBBVFUgQmFzZSBBZGRyZXNzIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB8IDEwSAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElu Ym91bmQgQVRVIFVwcGVyIEJhc2UgQWRkcmVzcyAwICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAxNEgKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJbmJvdW5kIEFUVSBCYXNlIEFkZHJlc3MgMSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgMThICisrKiogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSW5ib3VuZCBBVFUgVXBwZXIgQmFzZSBBZGRyZXNzIDEgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDFDSAorKyoqIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEluYm91bmQgQVRVIEJhc2UgQWRk cmVzcyAyICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMEgKKysq KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrKiogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJbmJvdW5kIEFUVSBVcHBl ciBCYXNlIEFkZHJlc3MgMiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgMjRICisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKyoqIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IDI4SCAgIAorKyoqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiB8ICAgICAgICAgICAgICAgIEFUVSBTdWJz eXN0ZW0gSUQgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgQVRVIFN1YnN5c3Rl bSBWZW5kb3IgSUQgICAgICAgICAgICAgfCAyQ0gKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogfCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEV4cGFuc2lvbiBST00gQmFzZSBBZGRyZXNzICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgMzBICisrKiogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZCBDYXBhYmlsaXRpZXMg UG9pbnRlciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM0SAorKyoq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysqKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVz ZXJ2ZWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAzOEgKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrKiogfCAgICAgTWF4aW11bSBMYXRlbmN5ICAgIHwgICAgIE1pbmltdW0g R3JhbnQgICAgICB8ICAgICAgIEludGVycnVwdCBQaW4gICAgfCAgICAgIEludGVycnVwdCBM aW5lICAgICAgIHwgM0NICisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrLyoKKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKyoqICBBVFUgVmVuZG9yIElEIFJlZ2lzdGVyIC0gQVRV VklECisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAxNTowMCAgICAgIDgwODZIICgweDE3 RDMpICAgICAgICAgICAgICAgQVRVIFZlbmRvciBJRCAtIFRoaXMgaXMgYSAxNi1iaXQgdmFs dWUgYXNzaWduZWQgdG8gSW50ZWwuIFRoaXMgcmVnaXN0ZXIsIGNvbWJpbmVkIHdpdGggdGhl IERJRCwgdW5pcXVlbHkgaWRlbnRpZnkgdGhlIFBDSSBkZXZpY2UuIAorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFjY2Vz cyB0eXBlIGlzIFJlYWQvV3JpdGUgdG8gYWxsb3cgdGhlIDgwMzMxIHRvIGNvbmZpZ3VyZSB0 aGUgcmVnaXN0ZXIgYXMgYSBkaWZmZXJlbnQgdmVuZG9yIElEIHRvIHNpbXVsYXRlIHRoZSBp bnRlcmZhY2Ugb2YgYSBzdGFuZGFyZCBtZWNoYW5pc20gY3VycmVudGx5IHVzZWQgYnkgZXhp c3RpbmcgYXBwbGljYXRpb24gc29mdHdhcmUuCisrKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9BVFVfVkVORE9SX0lEX1JFRwkJICAg ICAgICAgMHgwMCAgICAvKndvcmQqLworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqKiAgQVRVIERldmljZSBJRCBSZWdpc3RlciAtIEFUVURJRAorKyoqICAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAg RGVzY3JpcHRpb24KKysqKiAgMTU6MDAgICAgICAwMzM2SCAoMHgxMTEwKSAgICAgICAgICAg ICAgIEFUVSBEZXZpY2UgSUQgLSBUaGlzIGlzIGEgMTYtYml0IHZhbHVlIGFzc2lnbmVkIHRv IHRoZSBBVFUuIFRoaXMgSUQsIGNvbWJpbmVkIHdpdGggdGhlIFZJRCwgdW5pcXVlbHkgaWRl bnRpZnkgYW55IFBDSSBkZXZpY2UuCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9BVFVfREVWSUNFX0lEX1JFRwkJICAgICAgICAg MHgwMiAgICAvKndvcmQqLworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KysqKiAgQVRVIENvbW1hbmQgUmVnaXN0ZXIgLSBBVFVDTUQKKysqKiAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0 aW9uCisrKiogIDE1OjExICAgICAgMDAwMDAwIDIgICAgICAgICAgICAgICAgICAgICBSZXNl cnZlZAorKyoqICAxMCAgICAgICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgSW50 ZXJydXB0IERpc2FibGUgLSBUaGlzIGJpdCBkaXNhYmxlcyA4MDMzMSBmcm9tIGFzc2VydGlu ZyB0aGUgQVRVIGludGVycnVwdCBzaWduYWwuCisrKiogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDA9ZW5hYmxlcyB0aGUg YXNzZXJ0aW9uIG9mIGludGVycnVwdCBzaWduYWwuCisrKiogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDE9ZGlzYWJsZXMg dGhlIGFzc2VydGlvbiBvZiBpdHMgaW50ZXJydXB0IHNpZ25hbC4KKysqKiAgMDkgICAgICAg ICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIEZhc3QgQmFjayB0byBCYWNrIEVuYWJs ZSAtIFdoZW4gY2xlYXJlZCwgdGhlIEFUVSBpbnRlcmZhY2UgaXMgbm90IGFsbG93ZWQgdG8g Z2VuZXJhdGUgZmFzdCBiYWNrLXRvLWJhY2sgY3ljbGVzIG9uIGl0cyBidXMuIElnbm9yZWQg d2hlbiBvcGVyYXRpbmcgaW4gdGhlIFBDSS1YIG1vZGUuCisrKiogIDA4ICAgICAgICAgIDAg MiAgICAgICAgICAgICAgICAgICAgICAgICBTRVJSIyBFbmFibGUgLSBXaGVuIGNsZWFyZWQs IHRoZSBBVFUgaW50ZXJmYWNlIGlzIG5vdCBhbGxvd2VkIHRvIGFzc2VydCBTRVJSIyBvbiB0 aGUgUENJIGludGVyZmFjZS4KKysqKiAgMDcgICAgICAgICAgMSAyICAgICAgICAgICAgICAg ICAgICAgICAgIEFkZHJlc3MvRGF0YSBTdGVwcGluZyBDb250cm9sIC0gQWRkcmVzcyBzdGVw cGluZyBpcyBpbXBsZW1lbnRlZCBmb3IgY29uZmlndXJhdGlvbiB0cmFuc2FjdGlvbnMuIFRo ZQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRVIGlu c2VydHMgMiBjbG9jayBjeWNsZXMgb2YgYWRkcmVzcyBzdGVwcGluZyBmb3IgQ29udmVudGlv bmFsIE1vZGUgYW5kIDQgY2xvY2sgY3ljbGVzIG9mIGFkZHJlc3Mgc3RlcHBpbmcgZm9yIFBD SS1YIG1vZGUuCisrKiogIDA2ICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAg ICBQYXJpdHkgRXJyb3IgUmVzcG9uc2UgLSBXaGVuIHNldCwgdGhlIEFUVSB0YWtlcyBub3Jt YWwgYWN0aW9uIHdoZW4gYSBwYXJpdHkgZXJyb3IgaXMgZGV0ZWN0ZWQuIFdoZW4gY2xlYXJl ZCwgcGFyaXR5IGNoZWNraW5nIGlzIGRpc2FibGVkLgorKyoqICAwNSAgICAgICAgICAwIDIg ICAgICAgICAgICAgICAgICAgICAgICAgVkdBIFBhbGV0dGUgU25vb3AgRW5hYmxlIC0gVGhl IEFUVSBpbnRlcmZhY2UgZG9lcyBub3Qgc3VwcG9ydCBJL08gd3JpdGVzIGFuZCB0aGVyZWZv cmUsIGRvZXMgbm90IHBlcmZvcm0gVkdBIHBhbGV0dGUgc25vb3BpbmcuCisrKiogIDA0ICAg ICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkgV3JpdGUgYW5kIElu dmFsaWRhdGUgRW5hYmxlIC0gV2hlbiBzZXQsIEFUVSBtYXkgZ2VuZXJhdGUgTVdJIGNvbW1h bmRzLiBXaGVuIGNsZWFyLCBBVFUgdXNlIE1lbW9yeSBXcml0ZSBjb21tYW5kcyBpbnN0ZWFk IG9mIE1XSS4gSWdub3JlZCB3aGVuIG9wZXJhdGluZyBpbiB0aGUgUENJLVggbW9kZS4KKysq KiAgMDMgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIFNwZWNpYWwgQ3lj bGUgRW5hYmxlIC0gVGhlIEFUVSBpbnRlcmZhY2UgZG9lcyBub3QgcmVzcG9uZCB0byBzcGVj aWFsIGN5Y2xlIGNvbW1hbmRzIGluIGFueSB3YXkuIE5vdCBpbXBsZW1lbnRlZCBhbmQgYSBy ZXNlcnZlZCBiaXQgZmllbGQuCisrKiogIDAyICAgICAgICAgIDAgMiAgICAgICAgICAgICAg ICAgICAgICAgICBCdXMgTWFzdGVyIEVuYWJsZSAtIFRoZSBBVFUgaW50ZXJmYWNlIGNhbiBh Y3QgYXMgYSBtYXN0ZXIgb24gdGhlIFBDSSBidXMuIFdoZW4gY2xlYXJlZCwgZGlzYWJsZXMg dGhlIGRldmljZSBmcm9tIGdlbmVyYXRpbmcgUENJIGFjY2Vzc2VzLiBXaGVuIHNldCwgYWxs b3dzIHRoZSBkZXZpY2UgdG8gYmVoYXZlIGFzIGEgUENJIGJ1cyBtYXN0ZXIuCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGVuIG9wZXJhdGluZyBp biB0aGUgUENJLVggbW9kZSwgQVRVIGluaXRpYXRlcyBhIHNwbGl0IGNvbXBsZXRpb24gdHJh bnNhY3Rpb24gcmVnYXJkbGVzcyBvZiB0aGUgc3RhdGUgb2YgdGhpcyBiaXQuCisrKiogIDAx ICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBNZW1vcnkgRW5hYmxlIC0g Q29udHJvbHMgdGhlIEFUVSBpbnRlcmZhY2WhpnMgcmVzcG9uc2UgdG8gUENJIG1lbW9yeSBh ZGRyZXNzZXMuIFdoZW4gY2xlYXJlZCwgdGhlIEFUVSBpbnRlcmZhY2UgZG9lcyBub3QgcmVz cG9uZCB0byBhbnkgbWVtb3J5IGFjY2VzcyBvbiB0aGUgUENJIGJ1cy4KKysqKiAgMDAgICAg ICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIEkvTyBTcGFjZSBFbmFibGUgLSBD b250cm9scyB0aGUgQVRVIGludGVyZmFjZSByZXNwb25zZSB0byBJL08gdHJhbnNhY3Rpb25z LiBOb3QgaW1wbGVtZW50ZWQgYW5kIGEgcmVzZXJ2ZWQgYml0IGZpZWxkLgorKyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfQVRVX0NP TU1BTkRfUkVHCQkgICAgICAgICAweDA0ICAgIC8qd29yZCovCisrLyoKKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKyoqICBBVFUgU3RhdHVzIFJlZ2lzdGVyIC0gQVRVU1Ig KFNoZWV0IDEgb2YgMikKKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1 bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDE1ICAgICAgICAg IDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBEZXRlY3RlZCBQYXJpdHkgRXJyb3IgLSBz ZXQgd2hlbiBhIHBhcml0eSBlcnJvciBpcyBkZXRlY3RlZCBpbiBkYXRhIHJlY2VpdmVkIGJ5 IHRoZSBBVFUgb24gdGhlIFBDSSBidXMgZXZlbgorKyoqICAJCQkJCQkJCQkJd2hlbiB0aGUg QVRVQ01EIHJlZ2lzdGVyoaZzIFBhcml0eSBFcnJvciBSZXNwb25zZSBiaXQgaXMgY2xlYXJl ZC4gU2V0IHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysqKiAgCQkJCQkJCQkJ CaFFIFdyaXRlIERhdGEgUGFyaXR5IEVycm9yIHdoZW4gdGhlIEFUVSBpcyBhIHRhcmdldCAo aW5ib3VuZCB3cml0ZSkuCisrKiogIAkJCQkJCQkJCQmhRSBSZWFkIERhdGEgUGFyaXR5IEVy cm9yIHdoZW4gdGhlIEFUVSBpcyBhIHJlcXVlc3RlciAob3V0Ym91bmQgcmVhZCkuCisrKiog IAkJCQkJCQkJCQmhRSBBbnkgQWRkcmVzcyBvciBBdHRyaWJ1dGUgKFBDSS1YIE9ubHkpIFBh cml0eSBFcnJvciBvbiB0aGUgQnVzIChpbmNsdWRpbmcgb25lIGdlbmVyYXRlZCBieSB0aGUg QVRVKS4KKysqKiAgMTQgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIFNF UlIjIEFzc2VydGVkIC0gc2V0IHdoZW4gU0VSUiMgaXMgYXNzZXJ0ZWQgb24gdGhlIFBDSSBi dXMgYnkgdGhlIEFUVS4KKysqKiAgMTMgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAg ICAgICAgIE1hc3RlciBBYm9ydCAtIHNldCB3aGVuIGEgdHJhbnNhY3Rpb24gaW5pdGlhdGVk IGJ5IHRoZSBBVFUgUENJIG1hc3RlciBpbnRlcmZhY2UsIGVuZHMgaW4gYSBNYXN0ZXItQWJv cnQKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHdo ZW4gdGhlIEFUVSByZWNlaXZlcyBhIE1hc3RlciBBYm9ydCBTcGxpdCBDb21wbGV0aW9uIEVy cm9yIE1lc3NhZ2UgaW4gUENJLVggbW9kZS4KKysqKiAgMTIgICAgICAgICAgMCAyICAgICAg ICAgICAgICAgICAgICAgICAgIFRhcmdldCBBYm9ydCAobWFzdGVyKSAtIHNldCB3aGVuIGEg dHJhbnNhY3Rpb24gaW5pdGlhdGVkIGJ5IHRoZSBBVFUgUENJIG1hc3RlciBpbnRlcmZhY2Us IGVuZHMgaW4gYSB0YXJnZXQKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGFib3J0IG9yIHdoZW4gdGhlIEFUVSByZWNlaXZlcyBhIFRhcmdldCBBYm9y dCBTcGxpdCBDb21wbGV0aW9uIEVycm9yIE1lc3NhZ2UgaW4gUENJLVggbW9kZS4KKysqKiAg MTEgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldCBBYm9ydCAo dGFyZ2V0KSAtIHNldCB3aGVuIHRoZSBBVFUgaW50ZXJmYWNlLCBhY3RpbmcgYXMgYSB0YXJn ZXQsIHRlcm1pbmF0ZXMgdGhlIHRyYW5zYWN0aW9uIG9uIHRoZSBQQ0kgYnVzIHdpdGggYSB0 YXJnZXQgYWJvcnQuCisrKiogIDEwOjA5ICAgICAgIDAxIDIgICAgICAgICAgICAgICAgICAg ICAgICBERVZTRUwjIFRpbWluZyAtIFRoZXNlIGJpdHMgYXJlIHJlYWQtb25seSBhbmQgZGVm aW5lIHRoZSBzbG93ZXN0IERFVlNFTCMgdGltaW5nIGZvciBhIHRhcmdldCBkZXZpY2UgaW4g Q29udmVudGlvbmFsIFBDSSBNb2RlIHJlZ2FyZGxlc3Mgb2YgdGhlIG9wZXJhdGluZyBtb2Rl IChleGNlcHQgY29uZmlndXJhdGlvbiBhY2Nlc3NlcykuCisrKiogIAkJCQkJCQkJCQkwMCAy PUZhc3QKKysqKiAgCQkJCQkJCQkJCTAxIDI9TWVkaXVtCisrKiogIAkJCQkJCQkJCQkxMCAy PVNsb3cKKysqKiAgCQkJCQkJCQkJCTExIDI9UmVzZXJ2ZWQKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoZSBBVFUgaW50ZXJmYWNlIHVzZXMgTWVk aXVtIHRpbWluZy4KKysqKiAgMDggICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAg ICAgIE1hc3RlciBQYXJpdHkgRXJyb3IgLSBUaGUgQVRVIGludGVyZmFjZSBzZXRzIHRoaXMg Yml0IHVuZGVyIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKysqKiAgCQkJCQkJCQkJCaFF IFRoZSBBVFUgYXNzZXJ0ZWQgUEVSUiMgaXRzZWxmIG9yIHRoZSBBVFUgb2JzZXJ2ZWQgUEVS UiMgYXNzZXJ0ZWQuCisrKiogIAkJCQkJCQkJCQmhRSBBbmQgdGhlIEFUVSBhY3RlZCBhcyB0 aGUgcmVxdWVzdGVyIGZvciB0aGUgb3BlcmF0aW9uIGluIHdoaWNoIHRoZSBlcnJvciBvY2N1 cnJlZC4KKysqKiAgCQkJCQkJCQkJCaFFIEFuZCB0aGUgQVRVQ01EIHJlZ2lzdGVyoaZzIFBh cml0eSBFcnJvciBSZXNwb25zZSBiaXQgaXMgc2V0CisrKiogIAkJCQkJCQkJCQmhRSBPciAo UENJLVggTW9kZSBPbmx5KSB0aGUgQVRVIHJlY2VpdmVkIGEgV3JpdGUgRGF0YSBQYXJpdHkg RXJyb3IgTWVzc2FnZQorKyoqICAJCQkJCQkJCQkJoUUgQW5kIHRoZSBBVFVDTUQgcmVnaXN0 ZXKhpnMgUGFyaXR5IEVycm9yIFJlc3BvbnNlIGJpdCBpcyBzZXQKKysqKiAgMDcgICAgICAg ICAgIDEgMiAgKENvbnZlbnRpb25hbCBtb2RlKQorKyoqICAgICAgICAgICAgICAgMCAyICAo UENJLVggbW9kZSkKKysqKiAgCQkJCQkJCQkJCUZhc3QgQmFjay10by1CYWNrIC0gVGhlIEFU VS9NZXNzYWdpbmcgVW5pdCBpbnRlcmZhY2UgaXMgY2FwYWJsZSBvZiBhY2NlcHRpbmcgZmFz dCBiYWNrLXRvLWJhY2sKKysqKiAgCQkJCQkJCQkJCXRyYW5zYWN0aW9ucyBpbiBDb252ZW50 aW9uYWwgUENJIG1vZGUgd2hlbiB0aGUgdHJhbnNhY3Rpb25zIGFyZSBub3QgdG8gdGhlIHNh bWUgdGFyZ2V0LiBTaW5jZSBmYXN0CisrKiogIAkJCQkJCQkJCQliYWNrLXRvLWJhY2sgdHJh bnNhY3Rpb25zIGRvIG5vdCBleGlzdCBpbiBQQ0ktWCBtb2RlLCB0aGlzIGJpdCBpcyBmb3Jj ZWQgdG8gMCBpbiB0aGUgUENJLVggbW9kZS4KKysqKiAgMDYgICAgICAgICAgIDAgMiAgICAg ICAgICAgICAgICAgICAgICAgIFVERiBTdXBwb3J0ZWQgLSBVc2VyIERlZmluYWJsZSBGZWF0 dXJlcyBhcmUgbm90IHN1cHBvcnRlZAorKyoqICAwNSAgICAgICAgICAgMSAyICAgICAgICAg ICAgICAgICAgICAgICAgNjYgTUh6LiBDYXBhYmxlIC0gNjYgTUh6IG9wZXJhdGlvbiBpcyBz dXBwb3J0ZWQuCisrKiogIDA0ICAgICAgICAgICAxIDIgICAgICAgICAgICAgICAgICAgICAg ICBDYXBhYmlsaXRpZXMgLSBXaGVuIHNldCwgdGhpcyBmdW5jdGlvbiBpbXBsZW1lbnRzIGV4 dGVuZGVkIGNhcGFiaWxpdGllcy4KKysqKiAgMDMgICAgICAgICAgICAgMCAgICAgICAgICAg ICAgICAgICAgICAgIEludGVycnVwdCBTdGF0dXMgLSByZWZsZWN0cyB0aGUgc3RhdGUgb2Yg dGhlIEFUVSBpbnRlcnJ1cHQgd2hlbiB0aGUgSW50ZXJydXB0IERpc2FibGUgYml0IGluIHRo ZSBjb21tYW5kIHJlZ2lzdGVyIGlzIGEgMC4KKysqKiAgCQkJCQkJCQkJCTA9QVRVIGludGVy cnVwdCBzaWduYWwgZGVhc3NlcnRlZC4KKysqKiAgCQkJCQkJCQkJCTE9QVRVIGludGVycnVw dCBzaWduYWwgYXNzZXJ0ZWQuCisrKiogIAkJCQkJCQkJCQlOT1RFOiBTZXR0aW5nIHRoZSBJ bnRlcnJ1cHQgRGlzYWJsZSBiaXQgdG8gYSAxIGhhcyBubyBlZmZlY3Qgb24gdGhlIHN0YXRl IG9mIHRoaXMgYml0LiBSZWZlciB0bworKyoqICAJCQkJCQkJCQkJU2VjdGlvbiAzLjEwLjIz LCChp0FUVSBJbnRlcnJ1cHQgUGluIFJlZ2lzdGVyIC0gQVRVSVBSoaggb24gcGFnZSAyMzYg Zm9yIGRldGFpbHMgb24gdGhlIEFUVQorKyoqICAJCQkJCQkJCQkJaW50ZXJydXB0IHNpZ25h bC4KKysqKiAgMDI6MDAgICAgICAwMDAwMCAyICAgICAgICAgICAgICAgICAgICAgIFJlc2Vy dmVkLgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAg ICBBUkNNU1JfQVRVX1NUQVRVU19SRUcJCSAgICAgICAgIDB4MDYgICAgLyp3b3JkKi8KKysv KgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIEFUVSBSZXZpc2lvbiBJ RCBSZWdpc3RlciAtIEFUVVJJRAorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAgICAg RGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMDc6MDAg ICAgICAgIDAwSCAgICAgICAgICAgICAgICAgICAgICAgIEFUVSBSZXZpc2lvbiAtIGlkZW50 aWZpZXMgdGhlIDgwMzMxIHJldmlzaW9uIG51bWJlci4KKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX0FUVV9SRVZJU0lPTl9SRUcJ CSAgICAgICAgIDB4MDggICAgLypieXRlKi8KKysvKgorKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisrKiogIEFUVSBDbGFzcyBDb2RlIFJlZ2lzdGVyIC0gQVRVQ0NSCisrKiog IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAg ICAgICBEZXNjcmlwdGlvbgorKyoqICAyMzoxNiAgICAgICAgMDVIICAgICAgICAgICAgICAg ICAgICAgICAgQmFzZSBDbGFzcyAtIE1lbW9yeSBDb250cm9sbGVyCisrKiogIDE1OjA4ICAg ICAgICA4MEggICAgICAgICAgICAgICAgICAgICAgICBTdWIgQ2xhc3MgLSBPdGhlciBNZW1v cnkgQ29udHJvbGxlcgorKyoqICAwNzowMCAgICAgICAgMDBIICAgICAgICAgICAgICAgICAg ICAgICAgUHJvZ3JhbW1pbmcgSW50ZXJmYWNlIC0gTm9uZSBkZWZpbmVkCisrKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9BVFVfQ0xB U1NfQ09ERV9SRUcJCSAgICAgICAgIDB4MDkgICAgLyozYnl0ZXMgMHgwQiwweDBBLDB4MDkq LworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgQVRVIENhY2hl bGluZSBTaXplIFJlZ2lzdGVyIC0gQVRVQ0xTUgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBC aXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysq KiAgMDc6MDAgICAgICAgIDAwSCAgICAgICAgICAgICAgICAgICAgICAgIEFUVSBDYWNoZWxp bmUgU2l6ZSAtIHNwZWNpZmllcyB0aGUgc3lzdGVtIGNhY2hlbGluZSBzaXplIGluIERXT1JE cy4gQ2FjaGVsaW5lIHNpemUgaXMgcmVzdHJpY3RlZCB0byBlaXRoZXIgMCwgOCBvciAxNiBE V09SRHMuCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUg ICAgIEFSQ01TUl9BVFVfQ0FDSEVMSU5FX1NJWkVfUkVHCQkgICAgICAgICAweDBDICAgIC8q Ynl0ZSovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBBVFUg TGF0ZW5jeSBUaW1lciBSZWdpc3RlciAtIEFUVUxUCisrKiogIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiog IEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgor KyoqICAwNzowMyAgICAgMDAwMDAgMiAoZm9yIENvbnZlbnRpb25hbCBtb2RlKQorKyoqICAg ICAgICAgICAgMDEwMDAgMiAoZm9yIFBDSS1YIG1vZGUpCisrKiogIAkJCQkJCQkJCQlQcm9n cmFtbWFibGUgTGF0ZW5jeSBUaW1lciAtIFRoaXMgZmllbGQgdmFyaWVzIHRoZSBsYXRlbmN5 IHRpbWVyIGZvciB0aGUgaW50ZXJmYWNlIGZyb20gMCB0byAyNDggY2xvY2tzLgorKyoqICAJ CQkJCQkJCQkJVGhlIGRlZmF1bHQgdmFsdWUgaXMgMCBjbG9ja3MgZm9yIENvbnZlbnRpb25h bCBQQ0kgbW9kZSwgYW5kIDY0IGNsb2NrcyBmb3IgUENJLVggbW9kZS4KKysqKiAgMDI6MDAg ICAgICAgMDAwIDIgICAgICAgICAgICAgICAgICAgICAgIExhdGVuY3kgVGltZXIgR3JhbnVs YXJpdHkgLSBUaGVzZSBCaXRzIGFyZSByZWFkIG9ubHkgZ2l2aW5nIGEgcHJvZ3JhbW1hYmxl IGdyYW51bGFyaXR5IG9mIDggY2xvY2tzIGZvciB0aGUgbGF0ZW5jeSB0aW1lci4KKysqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX0FU VV9MQVRFTkNZX1RJTUVSX1JFRwkJICAgICAgICAgMHgwRCAgICAvKmJ5dGUqLworKy8qCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgQVRVIEhlYWRlciBUeXBlIFJl Z2lzdGVyIC0gQVRVSFRSCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAwNyAgICAgICAg ICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgU2luZ2xlIEZ1bmN0aW9uL011bHRpLUZ1 bmN0aW9uIERldmljZSAtIElkZW50aWZpZXMgdGhlIDgwMzMxIGFzIGEgc2luZ2xlLWZ1bmN0 aW9uIFBDSSBkZXZpY2UuCisrKiogIDA2OjAwICAgMDAwMDAwIDIgICAgICAgICAgICAgICAg ICAgICAgICBQQ0kgSGVhZGVyIFR5cGUgLSBUaGlzIGJpdCBmaWVsZCBpbmRpY2F0ZXMgdGhl IHR5cGUgb2YgUENJIGhlYWRlciBpbXBsZW1lbnRlZC4gVGhlIEFUVSBpbnRlcmZhY2UKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlciBjb25m b3JtcyB0byBQQ0kgTG9jYWwgQnVzIFNwZWNpZmljYXRpb24sIFJldmlzaW9uIDIuMy4KKysq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNS X0FUVV9IRUFERVJfVFlQRV9SRUcJCSAgICAgICAgIDB4MEUgICAgLypieXRlKi8KKysvKgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIEFUVSBCSVNUIFJlZ2lzdGVy IC0gQVRVQklTVFIKKysqKgorKyoqICBUaGUgQVRVIEJJU1QgUmVnaXN0ZXIgY29udHJvbHMg dGhlIGZ1bmN0aW9ucyB0aGUgSW50ZWwgWFNjYWxlIGNvcmUgcGVyZm9ybXMgd2hlbiBCSVNU IGlzCisrKiogIGluaXRpYXRlZC4gVGhpcyByZWdpc3RlciBpcyB0aGUgaW50ZXJmYWNlIGJl dHdlZW4gdGhlIGhvc3QgcHJvY2Vzc29yIHJlcXVlc3RpbmcgQklTVCBmdW5jdGlvbnMgYW5k CisrKiogIHRoZSA4MDMzMSByZXBseWluZyB3aXRoIHRoZSByZXN1bHRzIGZyb20gdGhlIHNv ZnR3YXJlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBCSVNUIGZ1bmN0aW9uYWxpdHkuCisrKiog IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAg ICAgICBEZXNjcmlwdGlvbgorKyoqICAwNyAgICAgICAgICAgMCAyICAgICAgICAgICAgICAg ICAgICAgICAgQklTVCBDYXBhYmxlIC0gVGhpcyBiaXQgdmFsdWUgaXMgYWx3YXlzIGVxdWFs IHRvIHRoZSBBVFVDUiBBVFUgQklTVCBJbnRlcnJ1cHQgRW5hYmxlIGJpdC4gCisrKiogIDA2 ICAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICBTdGFydCBCSVNUIC0gV2hl biB0aGUgQVRVQ1IgQklTVCBJbnRlcnJ1cHQgRW5hYmxlIGJpdCBpcyBzZXQ6CisrKiogIAkJ CQkJCQkJCQkJCQkgU2V0dGluZyB0aGlzIGJpdCBnZW5lcmF0ZXMgYW4gaW50ZXJydXB0IHRv IHRoZSBJbnRlbCBYU2NhbGUgY29yZSB0byBwZXJmb3JtIGEgc29mdHdhcmUgQklTVCBmdW5j dGlvbi4KKysqKiAgCQkJCQkJCQkJCQkJCSBUaGUgSW50ZWwgWFNjYWxlIGNvcmUgY2xlYXJz IHRoaXMgYml0IHdoZW4gdGhlIEJJU1Qgc29mdHdhcmUgaGFzIGNvbXBsZXRlZCB3aXRoIHRo ZSBCSVNUIHJlc3VsdHMKKysqKiAgCQkJCQkJCQkJCQkJCSBmb3VuZCBpbiBBVFVCSVNUUiBy ZWdpc3RlciBiaXRzIFszOjBdLgorKyoqICAJCQkJCQkJCQkJCQkJIFdoZW4gdGhlIEFUVUNS IEJJU1QgSW50ZXJydXB0IEVuYWJsZSBiaXQgaXMgY2xlYXI6CisrKiogIAkJCQkJCQkJCQkJ CQkgU2V0dGluZyB0aGlzIGJpdCBkb2VzIG5vdCBnZW5lcmF0ZSBhbiBpbnRlcnJ1cHQgdG8g dGhlIEludGVsIFhTY2FsZSBjb3JlIGFuZCBubyBCSVNUIGZ1bmN0aW9ucyBpcyBwZXJmb3Jt ZWQuIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFRoZSBJbnRlbCBYU2NhbGUgY29yZSBkb2VzIG5vdCBjbGVhciB0aGlzIGJp dC4KKysqKiAgMDU6MDQgICAgICAgMDAgMiAgICAgICAgICAgICAgICAgICAgICAgIFJlc2Vy dmVkCisrKiogIDAzOjAwICAgICAwMDAwIDIgICAgICAgICAgICAgICAgICAgICAgICBCSVNU IENvbXBsZXRpb24gQ29kZSAtIHdoZW4gdGhlIEFUVUNSIEJJU1QgSW50ZXJydXB0IEVuYWJs ZSBiaXQgaXMgc2V0IGFuZCB0aGUgQVRVQklTVFIgU3RhcnQgQklTVCBiaXQgaXMgc2V0IChi aXQgNik6CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBU aGUgSW50ZWwgWFNjYWxlICBjb3JlIHBsYWNlcyB0aGUgcmVzdWx0cyBvZiB0aGUgc29mdHdh cmUgQklTVCBpbiB0aGVzZSBiaXRzLiBBIG5vbnplcm8gdmFsdWUgaW5kaWNhdGVzIGEgZGV2 aWNlLXNwZWNpZmljIGVycm9yLgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisr Ki8KKysjZGVmaW5lICAgICBBUkNNU1JfQVRVX0JJU1RfUkVHCQkgICAgICAgICAweDBGICAg IC8qYnl0ZSovCisrCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiog IAorKyoqICAgICAgICAgICAgQVRVIEJhc2UgUmVnaXN0ZXJzIGFuZCBBc3NvY2lhdGVkIExp bWl0IFJlZ2lzdGVycworKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoq ICAgICAgICAgICBCYXNlIEFkZHJlc3MgICAgICAgICAgICAgICAgICAgICAgICAgUmVnaXN0 ZXIgTGltaXQgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZ2lzdGVyIERlc2NyaXB0aW9u CisrKiogIEluYm91bmQgQVRVIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAwICAgICAgICAgICBJ bmJvdW5kIEFUVSBMaW1pdCBSZWdpc3RlciAwICAgICAgICAgICAgRGVmaW5lcyB0aGUgaW5i b3VuZCB0cmFuc2xhdGlvbiB3aW5kb3cgMCBmcm9tIHRoZSBQQ0kgYnVzLgorKyoqICBJbmJv dW5kIEFUVSBVcHBlciBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgMCAgICAgTi9BICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRvZ2V0aGVyIHdpdGggQVRVIEJhc2UgQWRk cmVzcyBSZWdpc3RlciAwIGRlZmluZXMgdGhlIGluYm91bmQgdHJhbnNsYXRpb24gd2luZG93 IDAgZnJvbSB0aGUgUENJIGJ1cyBmb3IgREFDcy4KKysqKiAgSW5ib3VuZCBBVFUgQmFzZSBB ZGRyZXNzIFJlZ2lzdGVyIDEgICAgICAgICAgIEluYm91bmQgQVRVIExpbWl0IFJlZ2lzdGVy IDEgICAgICAgICAgICBEZWZpbmVzIGluYm91bmQgd2luZG93IDEgZnJvbSB0aGUgUENJIGJ1 cy4KKysqKiAgSW5ib3VuZCBBVFUgVXBwZXIgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyIDEgICAg IE4vQSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2dldGhlciB3aXRo IEFUVSBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgMSBkZWZpbmVzIGluYm91bmQgd2luZG93IDEg ZnJvbSB0aGUgUENJIGJ1cyBmb3IgREFDcy4KKysqKiAgSW5ib3VuZCBBVFUgQmFzZSBBZGRy ZXNzIFJlZ2lzdGVyIDIgICAgICAgICAgIEluYm91bmQgQVRVIExpbWl0IFJlZ2lzdGVyIDIg ICAgICAgICAgICBEZWZpbmVzIHRoZSBpbmJvdW5kIHRyYW5zbGF0aW9uIHdpbmRvdyAyIGZy b20gdGhlIFBDSSBidXMuCisrKiogIEluYm91bmQgQVRVIFVwcGVyIEJhc2UgQWRkcmVzcyBS ZWdpc3RlciAyICAgICBOL0EgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg VG9nZXRoZXIgd2l0aCBBVFUgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyIDIgZGVmaW5lcyB0aGUg aW5ib3VuZCB0cmFuc2xhdGlvbiB3aW5kb3cgMiBmcm9tIHRoZSBQQ0kgYnVzIGZvciBEQUNz LgorKyoqICBJbmJvdW5kIEFUVSBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgMyAgICAgICAgICAg SW5ib3VuZCBBVFUgTGltaXQgUmVnaXN0ZXIgMyAgICAgICAgICAgIERlZmluZXMgdGhlIGlu Ym91bmQgdHJhbnNsYXRpb24gd2luZG93IDMgZnJvbSB0aGUgUENJIGJ1cy4KKysqKiAgSW5i b3VuZCBBVFUgVXBwZXIgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyIDMgICAgIE4vQSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb2dldGhlciB3aXRoIEFUVSBCYXNlIEFk ZHJlc3MgUmVnaXN0ZXIgMyBkZWZpbmVzIHRoZSBpbmJvdW5kIHRyYW5zbGF0aW9uIHdpbmRv dyAzIGZyb20gdGhlIFBDSSBidXMgZm9yIERBQ3MuCisrKiogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTk9URTogVGhpcyBpcyBhIHByaXZhdGUgQkFSIHRoYXQgcmVzaWRl cyBvdXRzaWRlIG9mIHRoZSBzdGFuZGFyZCBQQ0kgY29uZmlndXJhdGlvbiBoZWFkZXIgc3Bh Y2UgKG9mZnNldHMgMDBILTNGSCkuCisrKiogIEV4cGFuc2lvbiBST00gQmFzZSBBZGRyZXNz IFJlZ2lzdGVyICAgICAgICAgICBFeHBhbnNpb24gUk9NIExpbWl0IFJlZ2lzdGVyICAgICAg ICAgICAgRGVmaW5lcyB0aGUgd2luZG93IG9mIGFkZHJlc3NlcyB1c2VkIGJ5IGEgYnVzIG1h c3RlciBmb3IgcmVhZGluZyBmcm9tIGFuIEV4cGFuc2lvbiBST00uCisrKiotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBBVFUgSW5ib3VuZCBXaW5kb3cgMSBpcyBu b3QgYSB0cmFuc2xhdGUgd2luZG93LiAKKysqKiAgVGhlIEFUVSBkb2VzIG5vdCBjbGFpbSBh bnkgUENJIGFjY2Vzc2VzIHRoYXQgZmFsbCB3aXRoaW4gdGhpcyByYW5nZS4gCisrKiogIFRo aXMgd2luZG93IGlzIHVzZWQgdG8gYWxsb2NhdGUgaG9zdCBtZW1vcnkgZm9yIHVzZSBieSBQ cml2YXRlIERldmljZXMuIAorKyoqICBXaGVuIGVuYWJsZWQsIHRoZSBBVFUgaW50ZXJydXB0 cyB0aGUgSW50ZWwgIFhTY2FsZSBjb3JlIHdoZW4gZWl0aGVyIHRoZSBJQUJBUjEgcmVnaXN0 ZXIgb3IgdGhlIElBVUJBUjEgcmVnaXN0ZXIgaXMgd3JpdHRlbiBmcm9tIHRoZSBQQ0kgYnVz LiAKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrCisrLyoKKysqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBJbmJvdW5kIEFUVSBCYXNlIEFkZHJl c3MgUmVnaXN0ZXIgMCAtIElBQkFSMAorKyoqCisrKiogIC4gVGhlIEluYm91bmQgQVRVIEJh c2UgQWRkcmVzcyBSZWdpc3RlciAwIChJQUJBUjApIHRvZ2V0aGVyIHdpdGggdGhlIEluYm91 bmQgQVRVIFVwcGVyIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAwIChJQVVCQVIwKSBkZWZpbmVz IHRoZSBibG9jayBvZiBtZW1vcnkgYWRkcmVzc2VzIHdoZXJlIHRoZSBpbmJvdW5kIHRyYW5z bGF0aW9uIHdpbmRvdyAwIGJlZ2lucy4gCisrKiogIC4gVGhlIGluYm91bmQgQVRVIGRlY29k ZXMgYW5kIGZvcndhcmRzIHRoZSBidXMgcmVxdWVzdCB0byB0aGUgODAzMzEgaW50ZXJuYWwg YnVzIHdpdGggYSB0cmFuc2xhdGVkIGFkZHJlc3MgdG8gbWFwIGludG8gODAzMzEgbG9jYWwg bWVtb3J5LiAKKysqKiAgLiBUaGUgSUFCQVIwIGFuZCBJQVVCQVIwIGRlZmluZSB0aGUgYmFz ZSBhZGRyZXNzIGFuZCBkZXNjcmliZXMgdGhlIHJlcXVpcmVkIG1lbW9yeSBibG9jayBzaXpl LgorKyoqICAuIEJpdHMgMzEgdGhyb3VnaCAxMiBvZiB0aGUgSUFCQVIwIGlzIGVpdGhlciBy ZWFkL3dyaXRlIGJpdHMgb3IgcmVhZCBvbmx5IHdpdGggYSB2YWx1ZSBvZiAwIAorKyoqICAg IGRlcGVuZGluZyBvbiB0aGUgdmFsdWUgbG9jYXRlZCB3aXRoaW4gdGhlIElBTFIwLiAKKysq KiAgICBUaGlzIGNvbmZpZ3VyYXRpb24gYWxsb3dzIHRoZSBJQUJBUjAgdG8gYmUgcHJvZ3Jh bW1lZCBwZXIgUENJIExvY2FsIEJ1cyBTcGVjaWZpY2F0aW9uLgorKyoqICAgIFRoZSBmaXJz dCA0IEtieXRlcyBvZiBtZW1vcnkgZGVmaW5lZCBieSB0aGUgSUFCQVIwLCBJQVVCQVIwIGFu ZCB0aGUgSUFMUjAgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBNZXNzYWdpbmcgVW5pdC4KKysqKiAg ICBUaGUgcHJvZ3JhbW1lZCB2YWx1ZSB3aXRoaW4gdGhlIGJhc2UgYWRkcmVzcyByZWdpc3Rl ciBtdXN0IGNvbXBseSB3aXRoIHRoZSBQQ0kgcHJvZ3JhbW1pbmcgcmVxdWlyZW1lbnRzIGZv ciBhZGRyZXNzIGFsaWdubWVudC4gCisrKiogIFdhcm5pbmc6IAorKyoqICAgIFdoZW4gSUFM UjAgaXMgY2xlYXJlZCBwcmlvciB0byBob3N0IGNvbmZpZ3VyYXRpb246CisrKiogICAgICAg ICAgICAgICAgICAgICAgICAgIHRoZSB1c2VyIHNob3VsZCBhbHNvIGNsZWFyIHRoZSBQcmVm ZXRjaGFibGUgSW5kaWNhdG9yIGFuZCB0aGUgVHlwZSBJbmRpY2F0b3IuIAorKyoqICAgIEFz c3VtaW5nIElBTFIwIGlzIG5vdCBjbGVhcmVkOgorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgICBhLiBTaW5jZSBub24gcHJlZmV0Y2hhYmxlIG1lbW9yeSB3aW5kb3dzIGNhbiBuZXZl ciBiZSBwbGFjZWQgYWJvdmUgdGhlIDQgR2J5dGUgYWRkcmVzcyBib3VuZGFyeSwKKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2hlbiB0aGUgUHJlZmV0Y2hhYmxlIEluZGlj YXRvciBpcyBjbGVhcmVkIHByaW9yIHRvIGhvc3QgY29uZmlndXJhdGlvbiwgCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB1c2VyIHNob3VsZCBhbHNvIHNldCB0aGUg VHlwZSBJbmRpY2F0b3IgZm9yIDMyIGJpdCBhZGRyZXNzYWJpbGl0eS4KKysqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgYi4gRm9yIGNvbXBsaWFuY2UgdG8gdGhlIFBDSS1YIEFkZGVu ZHVtIHRvIHRoZSBQQ0kgTG9jYWwgQnVzIFNwZWNpZmljYXRpb24sCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHdoZW4gdGhlIFByZWZldGNoYWJsZSBJbmRpY2F0b3IgaXMg c2V0IHByaW9yIHRvIGhvc3QgY29uZmlndXJhdGlvbiwgdGhlIHVzZXIKKysqKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2hvdWxkIGFsc28gc2V0IHRoZSBUeXBlIEluZGljYXRv ciBmb3IgNjQgYml0IGFkZHJlc3NhYmlsaXR5LiAKKysqKiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgSUFCQVIwLgorKyoqICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVz Y3JpcHRpb24KKysqKiAgMzE6MTIgICAgIDAwMDAwSCAgICAgICAgICAgICAgICAgICAgICAg IFRyYW5zbGF0aW9uIEJhc2UgQWRkcmVzcyAwIC0gVGhlc2UgYml0cyBkZWZpbmUgdGhlIGFj dHVhbCBsb2NhdGlvbiB0aGUgdHJhbnNsYXRpb24gZnVuY3Rpb24gaXMgdG8gcmVzcG9uZCB0 byB3aGVuIGFkZHJlc3NlZCBmcm9tIHRoZSBQQ0kgYnVzLgorKyoqICAxMTowNCAgICAgICAg MDBIICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQuCisrKiogIDAzICAgICAgICAg ICAxIDIgICAgICAgICAgICAgICAgICAgICAgICBQcmVmZXRjaGFibGUgSW5kaWNhdG9yIC0g V2hlbiBzZXQsIGRlZmluZXMgdGhlIG1lbW9yeSBzcGFjZSBhcyBwcmVmZXRjaGFibGUuCisr KiogIDAyOjAxICAgICAgIDEwIDIgICAgICAgICAgICAgICAgICAgICAgICBUeXBlIEluZGlj YXRvciAtIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBhZGRyZXNzYWJpbGl0eSBmb3IgdGhp cyBtZW1vcnkgd2luZG93OgorKyoqICAJCQkJCQkJCQkJCQkwMCAtIE1lbW9yeSBXaW5kb3cg aXMgbG9jYXRhYmxlIGFueXdoZXJlIGluIDMyIGJpdCBhZGRyZXNzIHNwYWNlCisrKiogIAkJ CQkJCQkJCQkJCTEwIC0gTWVtb3J5IFdpbmRvdyBpcyBsb2NhdGFibGUgYW55d2hlcmUgaW4g NjQgYml0IGFkZHJlc3Mgc3BhY2UKKysqKiAgMDAgICAgICAgICAgIDAgMiAgICAgICAgICAg ICAgICAgICAgICAgIE1lbW9yeSBTcGFjZSBJbmRpY2F0b3IgLSBUaGlzIGJpdCBmaWVsZCBk ZXNjcmliZXMgbWVtb3J5IG9yIEkvTyBzcGFjZSBiYXNlIGFkZHJlc3MuIAorKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRoZSBBVFUgZG9lcyBub3Qgb2NjdXB5IEkvTyBzcGFjZSwgCisrKiogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdGh1cyB0aGlzIGJpdCBtdXN0IGJlIHplcm8uCisrKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9JTkJPVU5EX0FUVV9CQVNF X0FERFJFU1MwX1JFRwkJICAgICAgICAgMHgxMCAgICAvKmR3b3JkIDB4MTMsMHgxMiwweDEx LDB4MTAqLworKyNkZWZpbmUgICAgIEFSQ01TUl9JTkJPVU5EX0FUVV9NRU1PUllfUFJFRkVU Q0hBQkxFCSAgICAgICAgICAgICAgICAgMHgwOAorKyNkZWZpbmUgICAgIEFSQ01TUl9JTkJP VU5EX0FUVV9NRU1PUllfV0lORE9XNjQJCSAgICAgICAgICAgICAgICAgMHgwNAorKy8qCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgSW5ib3VuZCBBVFUgVXBwZXIg QmFzZSBBZGRyZXNzIFJlZ2lzdGVyIDAgLSBJQVVCQVIwCisrKioKKysqKiAgVGhpcyByZWdp c3RlciBjb250YWlucyB0aGUgdXBwZXIgYmFzZSBhZGRyZXNzIHdoZW4gZGVjb2RpbmcgUENJ IGFkZHJlc3NlcyBiZXlvbmQgNCBHQnl0ZXMuCisrKiogIFRvZ2V0aGVyIHdpdGggdGhlIFRy YW5zbGF0aW9uIEJhc2UgQWRkcmVzcyB0aGlzIHJlZ2lzdGVyIGRlZmluZXMgdGhlIGFjdHVh bCBsb2NhdGlvbiB0aGUgdHJhbnNsYXRpb24KKysqKiAgZnVuY3Rpb24gaXMgdG8gcmVzcG9u ZCB0byB3aGVuIGFkZHJlc3NlZCBmcm9tIHRoZSBQQ0kgYnVzIGZvciBhZGRyZXNzZXMgPiA0 R0J5dGVzIChmb3IgREFDcykuCisrKiogIFRoZSBwcm9ncmFtbWVkIHZhbHVlIHdpdGhpbiB0 aGUgYmFzZSBhZGRyZXNzIHJlZ2lzdGVyIG11c3QgY29tcGx5IHdpdGggdGhlIFBDSSBwcm9n cmFtbWluZyByZXF1aXJlbWVudHMgZm9yIGFkZHJlc3MgYWxpZ25tZW50LiAKKysqKiAgTm90 ZTogCisrKiogICAgICBXaGVuIHRoZSBUeXBlIGluZGljYXRvciBvZiBJQUJBUjAgaXMgc2V0 IHRvIGluZGljYXRlIDMyIGJpdCBhZGRyZXNzYWJpbGl0eSwgCisrKiogICAgICB0aGUgSUFV QkFSMCByZWdpc3RlciBhdHRyaWJ1dGVzIGFyZSByZWFkLW9ubHkuCisrKiogIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNj cmlwdGlvbgorKyoqICAzMTowICAgICAgMDAwMDBIICAgICAgICAgICAgICAgICAgICAgICAg VHJhbnNsYXRpb24gVXBwZXIgQmFzZSBBZGRyZXNzIDAgLSBUb2dldGhlciB3aXRoIHRoZSBU cmFuc2xhdGlvbiBCYXNlIEFkZHJlc3MgMCB0aGVzZSBiaXRzIGRlZmluZSB0aGUKKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYWN0dWFsIGxvY2F0aW9uIHRoZSB0cmFuc2xhdGlvbiBm dW5jdGlvbiBpcyB0byByZXNwb25kIHRvIHdoZW4gYWRkcmVzc2VkIGZyb20gdGhlIFBDSSBi dXMgZm9yIGFkZHJlc3NlcyA+IDRHQnl0ZXMuCisrKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9JTkJPVU5EX0FUVV9VUFBFUl9CQVNF X0FERFJFU1MwX1JFRwkJICAgICAweDE0ICAgIC8qZHdvcmQgMHgxNywweDE2LDB4MTUsMHgx NCovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBJbmJvdW5k IEFUVSBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgMSAtIElBQkFSMQorKyoqCisrKiogIC4gVGhl IEluYm91bmQgQVRVIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAoSUFCQVIxKSB0b2dldGhlciB3 aXRoIHRoZSBJbmJvdW5kIEFUVSBVcHBlciBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgMSAoSUFV QkFSMSkgZGVmaW5lcyB0aGUgYmxvY2sgb2YgbWVtb3J5IGFkZHJlc3NlcyB3aGVyZSB0aGUg aW5ib3VuZCB0cmFuc2xhdGlvbiB3aW5kb3cgMSBiZWdpbnMuIAorKyoqICAuIFRoaXMgd2lu ZG93IGlzIHVzZWQgbWVyZWx5IHRvIGFsbG9jYXRlIG1lbW9yeSBvbiB0aGUgUENJIGJ1cyBh bmQsIHRoZSBBVFUgZG9lcyBub3QgcHJvY2VzcyBhbnkgUENJIGJ1cyB0cmFuc2FjdGlvbnMg dG8gdGhpcyBtZW1vcnkgcmFuZ2UuCisrKiogIC4gVGhlIHByb2dyYW1tZWQgdmFsdWUgd2l0 aGluIHRoZSBiYXNlIGFkZHJlc3MgcmVnaXN0ZXIgbXVzdCBjb21wbHkgd2l0aCB0aGUgUENJ IHByb2dyYW1taW5nIHJlcXVpcmVtZW50cyBmb3IgYWRkcmVzcyBhbGlnbm1lbnQuIAorKyoq ICAuIFdoZW4gZW5hYmxlZCwgdGhlIEFUVSBpbnRlcnJ1cHRzIHRoZSBJbnRlbCBYU2NhbGUg Y29yZSB3aGVuIHRoZSBJQUJBUjEgcmVnaXN0ZXIgaXMgd3JpdHRlbiBmcm9tIHRoZSBQQ0kg YnVzLiAKKysqKiAgV2FybmluZzogCisrKiogICAgV2hlbiBhIG5vbi16ZXJvIHZhbHVlIGlz IG5vdCB3cml0dGVuIHRvIElBTFIxIHByaW9yIHRvIGhvc3QgY29uZmlndXJhdGlvbiwgCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB1c2VyIHNob3VsZCBub3Qgc2V0IGVp dGhlciB0aGUgUHJlZmV0Y2hhYmxlIEluZGljYXRvciBvciB0aGUgVHlwZSBJbmRpY2F0b3Ig Zm9yIDY0IGJpdCBhZGRyZXNzYWJpbGl0eS4gCisrKiogICAgICAgICAgICAgICAgICAgICAg ICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIElBQkFSMS4KKysqKiAgICBBc3N1bWluZyBh IG5vbi16ZXJvIHZhbHVlIGlzIHdyaXR0ZW4gdG8gSUFMUjEsIAorKyoqICAgICAgICAgICAg ICAgCQkJdGhlIHVzZXIgbWF5IHNldCB0aGUgUHJlZmV0Y2hhYmxlIEluZGljYXRvciAKKysq KiAgICAgICAgICAgICAgIAkJCSAgICAgICAgICAgICAgb3IgdGhlIFR5cGUgICAgICAgICBJ bmRpY2F0b3I6CisrKiogIAkJCQkJCWEuIFNpbmNlIG5vbiBwcmVmZXRjaGFibGUgbWVtb3J5 IHdpbmRvd3MgY2FuIG5ldmVyIGJlIHBsYWNlZCBhYm92ZSB0aGUgNCBHYnl0ZSBhZGRyZXNz CisrKiogIAkJCQkJCSAgIGJvdW5kYXJ5LCB3aGVuIHRoZSBQcmVmZXRjaGFibGUgSW5kaWNh dG9yIGlzIG5vdCBzZXQgcHJpb3IgdG8gaG9zdCBjb25maWd1cmF0aW9uLCAKKysqKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHVzZXIgc2hvdWxkIGFsc28gbGVhdmUgdGhl IFR5cGUgSW5kaWNhdG9yIHNldCBmb3IgMzIgYml0IGFkZHJlc3NhYmlsaXR5LiAKKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgSUFC QVIxLgorKyoqICAJCQkJCQliLiB3aGVuIHRoZSBQcmVmZXRjaGFibGUgSW5kaWNhdG9yIGlz IHNldCBwcmlvciB0byBob3N0IGNvbmZpZ3VyYXRpb24sIAorKyoqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aGUgdXNlciBzaG91bGQgYWxzbyBzZXQgdGhlIFR5cGUgSW5kaWNh dG9yIGZvciA2NCBiaXQgYWRkcmVzc2FiaWxpdHkuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiog IEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgor KyoqICAzMToxMiAgICAgMDAwMDBIICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNsYXRp b24gQmFzZSBBZGRyZXNzIDEgLSBUaGVzZSBiaXRzIGRlZmluZSB0aGUgYWN0dWFsIGxvY2F0 aW9uIG9mIHdpbmRvdyAxIG9uIHRoZSBQQ0kgYnVzLgorKyoqICAxMTowNCAgICAgICAgMDBI ICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQuCisrKiogIDAzICAgICAgICAgICAw IDIgICAgICAgICAgICAgICAgICAgICAgICBQcmVmZXRjaGFibGUgSW5kaWNhdG9yIC0gV2hl biBzZXQsIGRlZmluZXMgdGhlIG1lbW9yeSBzcGFjZSBhcyBwcmVmZXRjaGFibGUuCisrKiog IDAyOjAxICAgICAgIDAwIDIgICAgICAgICAgICAgICAgICAgICAgICBUeXBlIEluZGljYXRv ciAtIERlZmluZXMgdGhlIHdpZHRoIG9mIHRoZSBhZGRyZXNzYWJpbGl0eSBmb3IgdGhpcyBt ZW1vcnkgd2luZG93OgorKyoqICAJCQkJCQkJCQkJCQkwMCAtIE1lbW9yeSBXaW5kb3cgaXMg bG9jYXRhYmxlIGFueXdoZXJlIGluIDMyIGJpdCBhZGRyZXNzIHNwYWNlCisrKiogIAkJCQkJ CQkJCQkJCTEwIC0gTWVtb3J5IFdpbmRvdyBpcyBsb2NhdGFibGUgYW55d2hlcmUgaW4gNjQg Yml0IGFkZHJlc3Mgc3BhY2UKKysqKiAgMDAgICAgICAgICAgIDAgMiAgICAgICAgICAgICAg ICAgICAgICAgIE1lbW9yeSBTcGFjZSBJbmRpY2F0b3IgLSBUaGlzIGJpdCBmaWVsZCBkZXNj cmliZXMgbWVtb3J5IG9yIEkvTyBzcGFjZSBiYXNlIGFkZHJlc3MuIAorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRoZSBBVFUgZG9lcyBub3Qgb2NjdXB5IEkvTyBzcGFjZSwgCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdGh1cyB0aGlzIGJpdCBtdXN0IGJlIHplcm8uCisrKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9JTkJPVU5EX0FUVV9CQVNFX0FE RFJFU1MxX1JFRwkJICAgICAgICAgMHgxOCAgICAvKmR3b3JkIDB4MUIsMHgxQSwweDE5LDB4 MTgqLworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgSW5ib3Vu ZCBBVFUgVXBwZXIgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyIDEgLSBJQVVCQVIxCisrKioKKysq KiAgVGhpcyByZWdpc3RlciBjb250YWlucyB0aGUgdXBwZXIgYmFzZSBhZGRyZXNzIHdoZW4g bG9jYXRpbmcgdGhpcyB3aW5kb3cgZm9yIFBDSSBhZGRyZXNzZXMgYmV5b25kIDQgR0J5dGVz LiAKKysqKiAgVG9nZXRoZXIgd2l0aCB0aGUgSUFCQVIxIHRoaXMgcmVnaXN0ZXIgZGVmaW5l cyB0aGUgYWN0dWFsIGxvY2F0aW9uIGZvciB0aGlzIG1lbW9yeSB3aW5kb3cgZm9yIGFkZHJl c3NlcyA+IDRHQnl0ZXMgKGZvciBEQUNzKS4gCisrKiogIFRoaXMgd2luZG93IGlzIHVzZWQg bWVyZWx5IHRvIGFsbG9jYXRlIG1lbW9yeSBvbiB0aGUgUENJIGJ1cyBhbmQsIHRoZSBBVFUg ZG9lcyBub3QgcHJvY2VzcyBhbnkgUENJIGJ1cyB0cmFuc2FjdGlvbnMgdG8gdGhpcyBtZW1v cnkgcmFuZ2UuCisrKiogIFRoZSBwcm9ncmFtbWVkIHZhbHVlIHdpdGhpbiB0aGUgYmFzZSBh ZGRyZXNzIHJlZ2lzdGVyIG11c3QgY29tcGx5IHdpdGggdGhlIFBDSSBwcm9ncmFtbWluZwor KyoqICByZXF1aXJlbWVudHMgZm9yIGFkZHJlc3MgYWxpZ25tZW50LiAKKysqKiAgV2hlbiBl bmFibGVkLCB0aGUgQVRVIGludGVycnVwdHMgdGhlIEludGVsIFhTY2FsZSBjb3JlIHdoZW4g dGhlIElBVUJBUjEgcmVnaXN0ZXIgaXMgd3JpdHRlbgorKyoqICBmcm9tIHRoZSBQQ0kgYnVz LiAKKysqKiAgTm90ZTogCisrKiogICAgICBXaGVuIHRoZSBUeXBlIGluZGljYXRvciBvZiBJ QUJBUjEgaXMgc2V0IHRvIGluZGljYXRlIDMyIGJpdCBhZGRyZXNzYWJpbGl0eSwgCisrKiog ICAgICB0aGUgSUFVQkFSMSByZWdpc3RlciBhdHRyaWJ1dGVzIGFyZSByZWFkLW9ubHkuIAor KyoqICAgICAgVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgSUFCQVIxLgorKyoqICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVz Y3JpcHRpb24KKysqKiAgMzE6MCAgICAgIDAwMDAwSCAgICAgICAgICAgICAgICAgICAgICAg IFRyYW5zbGF0aW9uIFVwcGVyIEJhc2UgQWRkcmVzcyAxIC0gVG9nZXRoZXIgd2l0aCB0aGUg VHJhbnNsYXRpb24gQmFzZSBBZGRyZXNzIDEgdGhlc2UgYml0cyBkZWZpbmUgdGhlIGFjdHVh bCBsb2NhdGlvbiBmb3IgdGhpcyBtZW1vcnkgd2luZG93IG9uIHRoZSBQQ0kgYnVzIGZvciBh ZGRyZXNzZXMgPiA0R0J5dGVzLgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisr Ki8KKysjZGVmaW5lICAgICBBUkNNU1JfSU5CT1VORF9BVFVfVVBQRVJfQkFTRV9BRERSRVNT MV9SRUcJCSAgICAgICAgIDB4MUMgICAgLypkd29yZCAweDFGLDB4MUUsMHgxRCwweDFDKi8K KysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIEluYm91bmQgQVRV IEJhc2UgQWRkcmVzcyBSZWdpc3RlciAyIC0gSUFCQVIyCisrKioKKysqKiAgLiBUaGUgSW5i b3VuZCBBVFUgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyIDIgKElBQkFSMikgdG9nZXRoZXIgd2l0 aCB0aGUgSW5ib3VuZCBBVFUgVXBwZXIgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyIDIgKElBVUJB UjIpIGRlZmluZXMgdGhlIGJsb2NrIG9mIG1lbW9yeSBhZGRyZXNzZXMgd2hlcmUgdGhlIGlu Ym91bmQgdHJhbnNsYXRpb24gd2luZG93IDIgYmVnaW5zLiAKKysqKiAgLiBUaGUgaW5ib3Vu ZCBBVFUgZGVjb2RlcyBhbmQgZm9yd2FyZHMgdGhlIGJ1cyByZXF1ZXN0IHRvIHRoZSA4MDMz MSBpbnRlcm5hbCBidXMgd2l0aCBhIHRyYW5zbGF0ZWQgYWRkcmVzcyB0byBtYXAgaW50byA4 MDMzMSBsb2NhbCBtZW1vcnkuIAorKyoqICAuIFRoZSBJQUJBUjIgYW5kIElBVUJBUjIgZGVm aW5lIHRoZSBiYXNlIGFkZHJlc3MgYW5kIGRlc2NyaWJlcyB0aGUgcmVxdWlyZWQgbWVtb3J5 IGJsb2NrIHNpemUKKysqKiAgLiBCaXRzIDMxIHRocm91Z2ggMTIgb2YgdGhlIElBQkFSMiBp cyBlaXRoZXIgcmVhZC93cml0ZSBiaXRzIG9yIHJlYWQgb25seSB3aXRoIGEgdmFsdWUgb2Yg MCBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIGxvY2F0ZWQgd2l0aGluIHRoZSBJQUxSMi4KKysq KiAgICBUaGUgcHJvZ3JhbW1lZCB2YWx1ZSB3aXRoaW4gdGhlIGJhc2UgYWRkcmVzcyByZWdp c3RlciBtdXN0IGNvbXBseSB3aXRoIHRoZSBQQ0kgcHJvZ3JhbW1pbmcgcmVxdWlyZW1lbnRz IGZvciBhZGRyZXNzIGFsaWdubWVudC4gCisrKiogIFdhcm5pbmc6IAorKyoqICAgIFdoZW4g YSBub24temVybyB2YWx1ZSBpcyBub3Qgd3JpdHRlbiB0byBJQUxSMiBwcmlvciB0byBob3N0 IGNvbmZpZ3VyYXRpb24sIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdXNl ciBzaG91bGQgbm90IHNldCBlaXRoZXIgdGhlIFByZWZldGNoYWJsZSBJbmRpY2F0b3IgCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvciB0aGUgVHlwZSAgICAgICAgIEluZGljYXRvciBmb3IgNjQgYml0IGFkZHJlc3NhYmls aXR5LiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyB0aGUgZGVmYXVs dCBmb3IgSUFCQVIyLgorKyoqICBBc3N1bWluZyBhIG5vbi16ZXJvIHZhbHVlIGlzIHdyaXR0 ZW4gdG8gSUFMUjIsIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdXNlciBt YXkgc2V0IHRoZSBQcmVmZXRjaGFibGUgSW5kaWNhdG9yIAorKyoqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9yIHRoZSBUeXBlICAgICAgICAgSW5kaWNhdG9y OgorKyoqICAJCQkJCQlhLiBTaW5jZSBub24gcHJlZmV0Y2hhYmxlIG1lbW9yeSB3aW5kb3dz IGNhbiBuZXZlciBiZSBwbGFjZWQgYWJvdmUgdGhlIDQgR2J5dGUgYWRkcmVzcyBib3VuZGFy eSwgCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gdGhlIFByZWZldGNo YWJsZSBJbmRpY2F0b3IgaXMgbm90IHNldCBwcmlvciB0byBob3N0IGNvbmZpZ3VyYXRpb24s IAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdXNlciBzaG91bGQgYWxz byBsZWF2ZSB0aGUgVHlwZSBJbmRpY2F0b3Igc2V0IGZvciAzMiBiaXQgYWRkcmVzc2FiaWxp dHkuIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBkZWZh dWx0IGZvciBJQUJBUjIuCisrKiogIAkJCQkJCWIuIHdoZW4gdGhlIFByZWZldGNoYWJsZSBJ bmRpY2F0b3IgaXMgc2V0IHByaW9yIHRvIGhvc3QgY29uZmlndXJhdGlvbiwgCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB1c2VyIHNob3VsZCBhbHNvIHNldCB0aGUg VHlwZSBJbmRpY2F0b3IgZm9yIDY0IGJpdCBhZGRyZXNzYWJpbGl0eS4KKysqKiAgLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERl c2NyaXB0aW9uCisrKiogIDMxOjEyICAgICAwMDAwMEggICAgICAgICAgICAgICAgICAgICAg ICBUcmFuc2xhdGlvbiBCYXNlIEFkZHJlc3MgMiAtIFRoZXNlIGJpdHMgZGVmaW5lIHRoZSBh Y3R1YWwgbG9jYXRpb24gdGhlIHRyYW5zbGF0aW9uIGZ1bmN0aW9uIGlzIHRvIHJlc3BvbmQg dG8gd2hlbiBhZGRyZXNzZWQgZnJvbSB0aGUgUENJIGJ1cy4KKysqKiAgMTE6MDQgICAgICAg IDAwSCAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkLgorKyoqICAwMyAgICAgICAg ICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgUHJlZmV0Y2hhYmxlIEluZGljYXRvciAt IFdoZW4gc2V0LCBkZWZpbmVzIHRoZSBtZW1vcnkgc3BhY2UgYXMgcHJlZmV0Y2hhYmxlLgor KyoqICAwMjowMSAgICAgICAwMCAyICAgICAgICAgICAgICAgICAgICAgICAgVHlwZSBJbmRp Y2F0b3IgLSBEZWZpbmVzIHRoZSB3aWR0aCBvZiB0aGUgYWRkcmVzc2FiaWxpdHkgZm9yIHRo aXMgbWVtb3J5IHdpbmRvdzoKKysqKiAgCQkJCQkJCQkJCQkJMDAgLSBNZW1vcnkgV2luZG93 IGlzIGxvY2F0YWJsZSBhbnl3aGVyZSBpbiAzMiBiaXQgYWRkcmVzcyBzcGFjZQorKyoqICAJ CQkJCQkJCQkJCQkxMCAtIE1lbW9yeSBXaW5kb3cgaXMgbG9jYXRhYmxlIGFueXdoZXJlIGlu IDY0IGJpdCBhZGRyZXNzIHNwYWNlCisrKiogIDAwICAgICAgICAgICAwIDIgICAgICAgICAg ICAgICAgICAgICAgICBNZW1vcnkgU3BhY2UgSW5kaWNhdG9yIC0gVGhpcyBiaXQgZmllbGQg ZGVzY3JpYmVzIG1lbW9yeSBvciBJL08gc3BhY2UgYmFzZSBhZGRyZXNzLiAKKysqKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUaGUgQVRVIGRvZXMgbm90IG9jY3VweSBJL08gc3BhY2UsIAorKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHRodXMgdGhpcyBiaXQgbXVzdCBiZSB6ZXJvLgorKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfSU5CT1VORF9BVFVfQkFT RV9BRERSRVNTMl9SRUcJCSAgICAgICAgIDB4MjAgICAgLypkd29yZCAweDIzLDB4MjIsMHgy MSwweDIwKi8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIElu Ym91bmQgQVRVIFVwcGVyIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAyIC0gSUFVQkFSMgorKyoq ICAKKysqKiAgVGhpcyByZWdpc3RlciBjb250YWlucyB0aGUgdXBwZXIgYmFzZSBhZGRyZXNz IHdoZW4gZGVjb2RpbmcgUENJIGFkZHJlc3NlcyBiZXlvbmQgNCBHQnl0ZXMuCisrKiogIFRv Z2V0aGVyIHdpdGggdGhlIFRyYW5zbGF0aW9uIEJhc2UgQWRkcmVzcyB0aGlzIHJlZ2lzdGVy IGRlZmluZXMgdGhlIGFjdHVhbCBsb2NhdGlvbiB0aGUgdHJhbnNsYXRpb24gZnVuY3Rpb24g aXMgdG8gcmVzcG9uZCB0byB3aGVuIGFkZHJlc3NlZCBmcm9tIHRoZSBQQ0kgYnVzIGZvciBh ZGRyZXNzZXMgPiA0R0J5dGVzIChmb3IgREFDcykuCisrKiogIFRoZSBwcm9ncmFtbWVkIHZh bHVlIHdpdGhpbiB0aGUgYmFzZSBhZGRyZXNzIHJlZ2lzdGVyIG11c3QgY29tcGx5IHdpdGgg dGhlIFBDSSBwcm9ncmFtbWluZworKyoqICByZXF1aXJlbWVudHMgZm9yIGFkZHJlc3MgYWxp Z25tZW50LgorKyoqICBOb3RlOiAKKysqKiAgICAgIFdoZW4gdGhlIFR5cGUgaW5kaWNhdG9y IG9mIElBQkFSMiBpcyBzZXQgdG8gaW5kaWNhdGUgMzIgYml0IGFkZHJlc3NhYmlsaXR5LAor KyoqICAgICAgdGhlIElBVUJBUjIgcmVnaXN0ZXIgYXR0cmlidXRlcyBhcmUgcmVhZC1vbmx5 LiAKKysqKiAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIElBQkFSMi4KKysqKiAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAg IERlc2NyaXB0aW9uCisrKiogIDMxOjAgICAgICAwMDAwMEggICAgICAgICAgICAgICAgICAg ICAgICBUcmFuc2xhdGlvbiBVcHBlciBCYXNlIEFkZHJlc3MgMiAtIFRvZ2V0aGVyIHdpdGgg dGhlIFRyYW5zbGF0aW9uIEJhc2UgQWRkcmVzcyAyIHRoZXNlIGJpdHMgZGVmaW5lIHRoZSBh Y3R1YWwgbG9jYXRpb24gdGhlIHRyYW5zbGF0aW9uIGZ1bmN0aW9uIGlzIHRvIHJlc3BvbmQg dG8gd2hlbiBhZGRyZXNzZWQgZnJvbSB0aGUgUENJIGJ1cyBmb3IgYWRkcmVzc2VzID4gNEdC eXRlcy4KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAg ICAgQVJDTVNSX0lOQk9VTkRfQVRVX1VQUEVSX0JBU0VfQUREUkVTUzJfUkVHCQkgICAgICAg ICAweDI0ICAgIC8qZHdvcmQgMHgyNywweDI2LDB4MjUsMHgyNCovCisrLyoKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorKyoqICBBVFUgU3Vic3lzdGVtIFZlbmRvciBJRCBS ZWdpc3RlciAtIEFTVklSCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZh dWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAxNTowICAgICAg MDAwMEggICAgICAgICAgICAgICAgICAgICAgICAgU3Vic3lzdGVtIFZlbmRvciBJRCAtIFRo aXMgcmVnaXN0ZXIgdW5pcXVlbHkgaWRlbnRpZmllcyB0aGUgYWRkLWluIGJvYXJkIG9yIHN1 YnN5c3RlbSB2ZW5kb3IuCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLwor KyNkZWZpbmUgICAgIEFSQ01TUl9BVFVfU1VCU1lTVEVNX1ZFTkRPUl9JRF9SRUcJCSAgICAg ICAgIDB4MkMgICAgLyp3b3JkIDB4MkQsMHgyQyovCisrLyoKKysqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorKyoqICBBVFUgU3Vic3lzdGVtIElEIFJlZ2lzdGVyIC0gQVNJUgor KyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAg ICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMTU6MCAgICAgIDAwMDBIICAgICAgICAgICAg ICAgICAgICAgICAgIFN1YnN5c3RlbSBJRCAtIHVuaXF1ZWx5IGlkZW50aWZpZXMgdGhlIGFk ZC1pbiBib2FyZCBvciBzdWJzeXN0ZW0uCisrKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9BVFVfU1VCU1lTVEVNX0lEX1JFRwkJICAg ICAgICAgMHgyRSAgICAvKndvcmQgMHgyRiwweDJFKi8KKysvKgorKyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisrKiogIEV4cGFuc2lvbiBST00gQmFzZSBBZGRyZXNzIFJlZ2lz dGVyIC1FUkJBUgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMzE6MTIgICAgIDAwMDAw SCAgICAgICAgICAgICAgICAgICAgICAgIEV4cGFuc2lvbiBST00gQmFzZSBBZGRyZXNzIC0g VGhlc2UgYml0cyBkZWZpbmUgdGhlIGFjdHVhbCBsb2NhdGlvbiB3aGVyZSB0aGUgRXhwYW5z aW9uIFJPTSBhZGRyZXNzIHdpbmRvdyByZXNpZGVzIHdoZW4gYWRkcmVzc2VkIGZyb20gdGhl IFBDSSBidXMgb24gYW55IDQgS2J5dGUgYm91bmRhcnkuCisrKiogIDExOjAxICAgICAwMDBI ICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqICAwMCAgICAgICAgMCAy ICAgICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyBEZWNvZGUgRW5hYmxlIC0gVGhp cyBiaXQgZmllbGQgc2hvd3MgdGhlIFJPTSBhZGRyZXNzIGRlY29kZXIgaXMgZW5hYmxlZCBv ciBkaXNhYmxlZC4gV2hlbiBjbGVhcmVkLCBpbmRpY2F0ZXMgdGhlIGFkZHJlc3MgZGVjb2Rl ciBpcyBkaXNhYmxlZC4KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisr I2RlZmluZSAgICAgQVJDTVNSX0VYUEFOU0lPTl9ST01fQkFTRV9BRERSRVNTX1JFRwkJICAg ICAgICAgMHgzMCAgICAvKmR3b3JkIDB4MzMsMHgzMiwwdjMxLDB4MzAqLworKyNkZWZpbmUg ICAgIEFSQ01TUl9FWFBBTlNJT05fUk9NX0FERFJFU1NfREVDT0RFX0VOQUJMRSAgIAkJICAg ICAweDAxICAgIAorKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAg QVRVIENhcGFiaWxpdGllcyBQb2ludGVyIFJlZ2lzdGVyIC0gQVRVX0NBUF9QVFIKKysqKiAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysqKiAgQml0IERlZmF1bHQgRGVzY3JpcHRpb24KKysqKiAgMDc6MDAg ICAgIEMwSCAgICAgICAgICAgICAgICAgICAgICAgICAgIENhcGFiaWxpdHkgTGlzdCBQb2lu dGVyIC0gVGhpcyBwcm92aWRlcyBhbiBvZmZzZXQgaW4gdGhpcyBmdW5jdGlvbqGmcyBjb25m aWd1cmF0aW9uIHNwYWNlIHRoYXQgcG9pbnRzIHRvIHRoZSA4MDMzMSBQQ2wgQnVzIFBvd2Vy IE1hbmFnZW1lbnQgZXh0ZW5kZWQgY2FwYWJpbGl0eS4KKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX0FUVV9DQVBBQklMSVRZX1BU Ul9SRUcJCSAgICAgMHgzNCAgICAvKmJ5dGUqLworKy8qCisrKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiogIAorKyoqICBEZXRlcm1pbmluZyBCbG9jayBTaXplcyBmb3IgQmFzZSBB ZGRyZXNzIFJlZ2lzdGVycworKyoqICBUaGUgcmVxdWlyZWQgYWRkcmVzcyBzaXplIGFuZCB0 eXBlIGNhbiBiZSBkZXRlcm1pbmVkIGJ5IHdyaXRpbmcgb25lcyB0byBhIGJhc2UgYWRkcmVz cyByZWdpc3RlciBhbmQKKysqKiAgcmVhZGluZyBmcm9tIHRoZSByZWdpc3RlcnMuIEJ5IHNj YW5uaW5nIHRoZSByZXR1cm5lZCB2YWx1ZSBmcm9tIHRoZSBsZWFzdC1zaWduaWZpY2FudCBi aXQgb2YgdGhlIGJhc2UKKysqKiAgYWRkcmVzcyByZWdpc3RlcnMgdXB3YXJkcywgdGhlIHBy b2dyYW1tZXIgY2FuIGRldGVybWluZSB0aGUgcmVxdWlyZWQgYWRkcmVzcyBzcGFjZSBzaXpl LiBUaGUKKysqKiAgYmluYXJ5LXdlaWdodGVkIHZhbHVlIG9mIHRoZSBmaXJzdCBub24temVy byBiaXQgZm91bmQgaW5kaWNhdGVzIHRoZSByZXF1aXJlZCBhbW91bnQgb2Ygc3BhY2UuCisr KiogIFRhYmxlIDEwNSBkZXNjcmliZXMgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIHRoZSB2 YWx1ZXMgcmVhZCBiYWNrIGFuZCB0aGUgYnl0ZSBzaXplcyB0aGUgYmFzZQorKyoqICBhZGRy ZXNzIHJlZ2lzdGVyIHJlcXVpcmVzLgorKyoqICBBcyBhbiBleGFtcGxlLCBhc3N1bWUgdGhh dCBGRkZGLkZGRkZIIGlzIHdyaXR0ZW4gdG8gdGhlIEFUVSBJbmJvdW5kIEJhc2UgQWRkcmVz cyBSZWdpc3RlciAwCisrKiogIChJQUJBUjApIGFuZCB0aGUgdmFsdWUgcmVhZCBiYWNrIGlz IEZGRjAuMDAwOEguIEJpdCB6ZXJvIGlzIGEgemVybywgc28gdGhlIGRldmljZSByZXF1aXJl cworKyoqICBtZW1vcnkgYWRkcmVzcyBzcGFjZS4gQml0IHRocmVlIGlzIG9uZSwgc28gdGhl IG1lbW9yeSBkb2VzIHN1cHBvcnRzIHByZWZldGNoaW5nLiBTY2FubmluZworKyoqICB1cHdh cmRzIHN0YXJ0aW5nIGF0IGJpdCBmb3VyLCBiaXQgdHdlbnR5IGlzIHRoZSBmaXJzdCBvbmUg Yml0IGZvdW5kLiBUaGUgYmluYXJ5LXdlaWdodGVkIHZhbHVlIG9mIHRoaXMKKysqKiAgYml0 IGlzIDEsMDQ4LDU3NiwgaW5kaWNhdGVkIHRoYXQgdGhlIGRldmljZSByZXF1aXJlcyAxIE1i eXRlIG9mIG1lbW9yeSBzcGFjZS4KKysqKiAgVGhlIEFUVSBCYXNlIEFkZHJlc3MgUmVnaXN0 ZXJzIGFuZCB0aGUgRXhwYW5zaW9uIFJPTSBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgdXNlIHRo ZWlyCisrKiogIGFzc29jaWF0ZWQgbGltaXQgcmVnaXN0ZXJzIHRvIGVuYWJsZSB3aGljaCBi aXRzIHdpdGhpbiB0aGUgYmFzZSBhZGRyZXNzIHJlZ2lzdGVyIGFyZSByZWFkL3dyaXRlIGFu ZAorKyoqICB3aGljaCBiaXRzIGFyZSByZWFkIG9ubHkgKDApLiBUaGlzIGFsbG93cyB0aGUg cHJvZ3JhbW1pbmcgb2YgdGhlc2UgcmVnaXN0ZXJzIGluIGEgbWFubmVyIHNpbWlsYXIgdG8K KysqKiAgb3RoZXIgUENJIGRldmljZXMgZXZlbiB0aG91Z2ggdGhlIGxpbWl0IGlzIHZhcmlh YmxlLgorKyoqICBUYWJsZSAxMDUuIE1lbW9yeSBCbG9jayBTaXplIFJlYWQgUmVzcG9uc2UK KysqKiAgUmVzcG9uc2UgQWZ0ZXIgV3JpdGluZyBhbGwgMXMKKysqKiAgdG8gdGhlIEJhc2Ug QWRkcmVzcyBSZWdpc3RlcgorKyoqICBTaXplCisrKiogIChCeXRlcykKKysqKiAgUmVzcG9u c2UgQWZ0ZXIgV3JpdGluZyBhbGwgMXMKKysqKiAgdG8gdGhlIEJhc2UgQWRkcmVzcyBSZWdp c3RlcgorKyoqICBTaXplCisrKiogIChCeXRlcykKKysqKiAgRkZGRkZGRjBIIDE2IEZGRjAw MDAwSCAxIE0KKysqKiAgRkZGRkZGRTBIIDMyIEZGRTAwMDAwSCAyIE0KKysqKiAgRkZGRkZG QzBIIDY0IEZGQzAwMDAwSCA0IE0KKysqKiAgRkZGRkZGODBIIDEyOCBGRjgwMDAwMEggOCBN CisrKiogIEZGRkZGRjAwSCAyNTYgRkYwMDAwMDBIIDE2IE0KKysqKiAgRkZGRkZFMDBIIDUx MiBGRTAwMDAwMEggMzIgTQorKyoqICBGRkZGRkMwMEggMUsgRkMwMDAwMDBIIDY0IE0KKysq KiAgRkZGRkY4MDBIIDJLIEY4MDAwMDAwSCAxMjggTQorKyoqICBGRkZGRjAwMEggNEsgRjAw MDAwMDBIIDI1NiBNCisrKiogIEZGRkZFMDAwSCA4SyBFMDAwMDAwMEggNTEyIE0KKysqKiAg RkZGRkMwMDBIIDE2SyBDMDAwMDAwMEggMSBHCisrKiogIEZGRkY4MDAwSCAzMksgODAwMDAw MDBIIDIgRworKyoqICBGRkZGMDAwMEggNjRLCisrKiogIDAwMDAwMDAwSAorKyoqICBSZWdp c3RlciBub3QKKysqKiAgaW1wbGUtbWVudGVkLAorKyoqICBubworKyoqICBhZGRyZXNzCisr KiogIHNwYWNlCisrKiogIHJlcXVpcmVkLgorKyoqICBGRkZFMDAwMEggMTI4SworKyoqICBG RkZDMDAwMEggMjU2SworKyoqICBGRkY4MDAwMEggNTEySworKyoqICAKKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiogIAorKyovCisrCisrCisrCisrLyoKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorKyoqICBBVFUgSW50ZXJydXB0IExpbmUgUmVnaXN0 ZXIgLSBBVFVJTFIKKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDA3OjAwICAgICAgIEZG SCAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgQXNzaWduZWQgLSBzeXN0ZW0t YXNzaWduZWQgdmFsdWUgaWRlbnRpZmllcyB3aGljaCBzeXN0ZW0gaW50ZXJydXB0IGNvbnRy b2xsZXKhpnMgaW50ZXJydXB0CisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0IGxpbmUgY29ubmVjdHMg dG8gdGhlIGRldmljZSdzIFBDSSBpbnRlcnJ1cHQgcmVxdWVzdCBsaW5lcyAoYXMgc3BlY2lm aWVkIGluIHRoZSBpbnRlcnJ1cHQgcGluIHJlZ2lzdGVyKS4KKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEEgdmFs dWUgb2YgRkZIIHNpZ25pZmllcyChp25vIGNvbm5lY3Rpb26hqCBvciChp3Vua25vd26hqC4K KysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJD TVNSX0FUVV9JTlRFUlJVUFRfTElORV9SRUcJCSAgICAgMHgzQyAgICAvKmJ5dGUqLworKy8q CisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgQVRVIEludGVycnVwdCBQ aW4gUmVnaXN0ZXIgLSBBVFVJUFIKKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDA3OjAw ICAgICAgIDAxSCAgICAgICAgICAgICAgICAgICAgICAgICBJbnRlcnJ1cHQgVXNlZCAtIEEg dmFsdWUgb2YgMDFIIHNpZ25pZmllcyB0aGF0IHRoZSBBVFUgaW50ZXJmYWNlIHVuaXQgdXNl cyBJTlRBIyBhcyB0aGUgaW50ZXJydXB0IHBpbi4KKysqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX0FUVV9JTlRFUlJVUFRfUElOX1JF RwkJICAgICAweDNEICAgIC8qYnl0ZSovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKyoqICBBVFUgTWluaW11bSBHcmFudCBSZWdpc3RlciAtIEFUVU1HTlQKKysq KiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAg ICAgICAgIERlc2NyaXB0aW9uCisrKiogIDA3OjAwICAgICAgIDgwSCAgICAgICAgICAgICAg ICAgICAgICAgICBUaGlzIHJlZ2lzdGVyIHNwZWNpZmllcyBob3cgbG9uZyBhIGJ1cnN0IHBl cmlvZCB0aGUgZGV2aWNlIG5lZWRzIGluIGluY3JlbWVudHMgb2YgOCBQQ0kgY2xvY2tzLgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNN U1JfQVRVX01JTklNVU1fR1JBTlRfUkVHCQkgICAgIDB4M0UgICAgLypieXRlKi8KKysvKgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIEFUVSBNYXhpbXVtIExhdGVu Y3kgUmVnaXN0ZXIgLSBBVFVNTEFUCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAg ICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAwNzow MCAgICAgICAwMEggICAgICAgICAgICAgICAgICAgICAgICAgU3BlY2lmaWVzIGZyZXF1ZW5j eSAoaG93IG9mdGVuKSB0aGUgZGV2aWNlIG5lZWRzIHRvIGFjY2VzcyB0aGUgUENJIGJ1cyBp biBpbmNyZW1lbnRzIG9mIDggUENJIGNsb2Nrcy4gQSB6ZXJvIHZhbHVlIGluZGljYXRlcyB0 aGUgZGV2aWNlIGhhcyBubyBzdHJpbmdlbnQgcmVxdWlyZW1lbnQuCisrKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9BVFVfTUFYSU1V TV9MQVRFTkNZX1JFRwkJICAgICAweDNGICAgIC8qYnl0ZSovCisrLyoKKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKyoqICBJbmJvdW5kIEFkZHJlc3MgVHJhbnNsYXRpb24K KysqKiAgCisrKiogIFRoZSBBVFUgYWxsb3dzIGV4dGVybmFsIFBDSSBidXMgaW5pdGlhdG9y cyB0byBkaXJlY3RseSBhY2Nlc3MgdGhlIGludGVybmFsIGJ1cy4gCisrKiogIFRoZXNlIFBD SSBidXMgaW5pdGlhdG9ycyBjYW4gcmVhZCBvciB3cml0ZSA4MDMzMSBtZW1vcnktbWFwcGVk IHJlZ2lzdGVycyBvciA4MDMzMSBsb2NhbCBtZW1vcnkgc3BhY2UuIAorKyoqICBUaGUgcHJv Y2VzcyBvZiBpbmJvdW5kIGFkZHJlc3MgdHJhbnNsYXRpb24gaW52b2x2ZXMgdHdvIHN0ZXBz OgorKyoqICAxLiBBZGRyZXNzIERldGVjdGlvbi4KKysqKiAgICAgICAgICAgICChRSBEZXRl cm1pbmUgd2hlbiB0aGUgMzItYml0IFBDSSBhZGRyZXNzICg2NC1iaXQgUENJIGFkZHJlc3Mg ZHVyaW5nIERBQ3MpIGlzCisrKiogICAgICAgICAgICAgICAgd2l0aGluIHRoZSBhZGRyZXNz IHdpbmRvd3MgZGVmaW5lZCBmb3IgdGhlIGluYm91bmQgQVRVLgorKyoqICAgICAgICAgICAg IKFFIENsYWltIHRoZSBQQ0kgdHJhbnNhY3Rpb24gd2l0aCBtZWRpdW0gREVWU0VMIyB0aW1p bmcgaW4gdGhlIGNvbnZlbnRpb25hbCBQQ0kKKysqKiAgICAgICAgICAgICAgICBtb2RlIGFu ZCB3aXRoIERlY29kZSBBIERFVlNFTCMgdGltaW5nIGluIHRoZSBQQ0ktWCBtb2RlLgorKyoq ICAyLiBBZGRyZXNzIFRyYW5zbGF0aW9uLgorKyoqICAgICAgICAgICAgIKFFIFRyYW5zbGF0 ZSB0aGUgMzItYml0IFBDSSBhZGRyZXNzIChsb3dlciAzMi1iaXQgUENJIGFkZHJlc3MgZHVy aW5nIERBQ3MpIHRvIGEgMzItYml0IDgwMzMxIGludGVybmFsIGJ1cyBhZGRyZXNzLgorKyoq ICAJCQkJVGhlIEFUVSB1c2VzIHRoZSBmb2xsb3dpbmcgcmVnaXN0ZXJzIGluIGluYm91bmQg YWRkcmVzcyB3aW5kb3cgMCB0cmFuc2xhdGlvbjoKKysqKiAgCQkJCaFFIEluYm91bmQgQVRV IEJhc2UgQWRkcmVzcyBSZWdpc3RlciAwCisrKiogIAkJCQmhRSBJbmJvdW5kIEFUVSBMaW1p dCBSZWdpc3RlciAwCisrKiogIAkJCQmhRSBJbmJvdW5kIEFUVSBUcmFuc2xhdGUgVmFsdWUg UmVnaXN0ZXIgMAorKyoqICAJCQkJVGhlIEFUVSB1c2VzIHRoZSBmb2xsb3dpbmcgcmVnaXN0 ZXJzIGluIGluYm91bmQgYWRkcmVzcyB3aW5kb3cgMiB0cmFuc2xhdGlvbjoKKysqKiAgCQkJ CaFFIEluYm91bmQgQVRVIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAyCisrKiogIAkJCQmhRSBJ bmJvdW5kIEFUVSBMaW1pdCBSZWdpc3RlciAyCisrKiogIAkJCQmhRSBJbmJvdW5kIEFUVSBU cmFuc2xhdGUgVmFsdWUgUmVnaXN0ZXIgMgorKyoqICAJCQkJVGhlIEFUVSB1c2VzIHRoZSBm b2xsb3dpbmcgcmVnaXN0ZXJzIGluIGluYm91bmQgYWRkcmVzcyB3aW5kb3cgMyB0cmFuc2xh dGlvbjoKKysqKiAgCQkJCaFFIEluYm91bmQgQVRVIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAz CisrKiogIAkJCQmhRSBJbmJvdW5kIEFUVSBMaW1pdCBSZWdpc3RlciAzCisrKiogIAkJCQmh RSBJbmJvdW5kIEFUVSBUcmFuc2xhdGUgVmFsdWUgUmVnaXN0ZXIgMworKyoqICAgIE5vdGU6 IEluYm91bmQgQWRkcmVzcyB3aW5kb3cgMSBpcyBub3QgYSB0cmFuc2xhdGUgd2luZG93LiAK KysqKiAgICAgICAgICBJbnN0ZWFkLCB3aW5kb3cgMSBtYXkgYmUgdXNlZCB0byBhbGxvY2F0 ZSBob3N0IG1lbW9yeSBmb3IgUHJpdmF0ZSBEZXZpY2VzLgorKyoqICAgICAgICAgIEluYm91 bmQgQWRkcmVzcyB3aW5kb3cgMyBkb2VzIG5vdCByZXNpZGUgaW4gdGhlIHN0YW5kYXJkIHNl Y3Rpb24gb2YgdGhlIGNvbmZpZ3VyYXRpb24gaGVhZGVyIChvZmZzZXRzIDAwSCAtIDNDSCks IAorKyoqICAgICAgICAgIHRodXMgdGhlIGhvc3QgQklPUyBkb2VzIG5vdCBjb25maWd1cmUg d2luZG93IDMuCisrKiogICAgICAgICAgV2luZG93IDMgaXMgaW50ZW5kZWQgdG8gYmUgdXNl ZCBhcyBhIHNwZWNpYWwgd2luZG93IGludG8gbG9jYWwgbWVtb3J5IGZvciBwcml2YXRlIFBD SQorKyoqICAgICAgICAgIGFnZW50cyBjb250cm9sbGVkIGJ5IHRoZSA4MDMzMSBpbiBjb25q dW5jdGlvbiB3aXRoIHRoZSBQcml2YXRlIE1lbW9yeSBTcGFjZSBvZiB0aGUgYnJpZGdlLgor KyoqICAgICAgICAgIFBDSS10by1QQ0kgQnJpZGdlIGluIDgwMzMxIG9yCisrKiogICAgICAg ICAgSW5ib3VuZCBhZGRyZXNzIGRldGVjdGlvbiBpcyBkZXRlcm1pbmVkIGZyb20gdGhlIDMy LWJpdCBQQ0kgYWRkcmVzcywgCisrKiogICAgICAgICAgKDY0LWJpdCBQQ0kgYWRkcmVzcyBk dXJpbmcgREFDcykgdGhlIGJhc2UgYWRkcmVzcyByZWdpc3RlciBhbmQgdGhlIGxpbWl0IHJl Z2lzdGVyLiAKKysqKiAgICAgICAgICBJbiB0aGUgY2FzZSBvZiBEQUNzIG5vbmUgb2YgdGhl IHVwcGVyIDMyLWJpdHMgb2YgdGhlIGFkZHJlc3MgaXMgbWFza2VkIGR1cmluZyBhZGRyZXNz IGNvbXBhcmlzb24uIAorKyoqICAKKysqKiAgVGhlIGFsZ29yaXRobSBmb3IgZGV0ZWN0aW9u IGlzOgorKyoqICAKKysqKiAgRXF1YXRpb24gMS4gSW5ib3VuZCBBZGRyZXNzIERldGVjdGlv bgorKyoqICAgICAgICAgICAgICBXaGVuIChQQ0lfQWRkcmVzcyBbMzE6MF0gJiBMaW1pdF9S ZWdpc3RlclszMTowXSkgPT0gKEJhc2VfUmVnaXN0ZXJbMzE6MF0gJiBQQ0lfQWRkcmVzcyBb NjM6MzJdKSA9PSBCYXNlX1JlZ2lzdGVyWzYzOjMyXSAoZm9yIERBQ3Mgb25seSkgCisrKiog ICAgICAgICAgICAgIHRoZSBQQ0kgQWRkcmVzcyBpcyBjbGFpbWVkIGJ5IHRoZSBJbmJvdW5k IEFUVS4KKysqKiAgCisrKiogIAkJCVRoZSBpbmNvbWluZyAzMi1iaXQgUENJIGFkZHJlc3Mg KGxvd2VyIDMyLWJpdHMgb2YgdGhlIGFkZHJlc3MgaW4gY2FzZSBvZiBEQUNzKSBpcyBiaXR3 aXNlIEFORGVkCisrKiogIAkJCXdpdGggdGhlIGFzc29jaWF0ZWQgaW5ib3VuZCBsaW1pdCBy ZWdpc3Rlci4gCisrKiogICAgICAgICAgICAgIFdoZW4gdGhlIHJlc3VsdCBtYXRjaGVzIHRo ZSBiYXNlIHJlZ2lzdGVyIChhbmQgdXBwZXIgYmFzZSBhZGRyZXNzIG1hdGNoZXMgdXBwZXIg UENJIGFkZHJlc3MgaW4gY2FzZSBvZiBEQUNzKSwgCisrKiogICAgICAgICAgICAgIHRoZSBp bmJvdW5kIFBDSSBhZGRyZXNzIGlzIGRldGVjdGVkIGFzIGJlaW5nIHdpdGhpbiB0aGUgaW5i b3VuZCB0cmFuc2xhdGlvbiB3aW5kb3cgYW5kIGlzIGNsYWltZWQgYnkgdGhlIEFUVS4KKysq KgorKyoqICAJCQlOb3RlOiAgIFRoZSBmaXJzdCA0IEtieXRlcyBvZiB0aGUgQVRVIGluYm91 bmQgYWRkcmVzcyB0cmFuc2xhdGlvbiB3aW5kb3cgMCBhcmUgcmVzZXJ2ZWQgZm9yIHRoZSBN ZXNzYWdpbmcgVW5pdC4gCisrKiogIAkJCQkJT25jZSB0aGUgdHJhbnNhY3Rpb24gaXMgY2xh aW1lZCwgdGhlIGFkZHJlc3MgbXVzdCBiZSB0cmFuc2xhdGVkIGZyb20gYSBQQ0kgYWRkcmVz cyB0byBhIDMyLWJpdAorKyoqICAJCQkJCWludGVybmFsIGJ1cyBhZGRyZXNzLiBJbiBjYXNl IG9mIERBQ3MgdXBwZXIgMzItYml0cyBvZiB0aGUgYWRkcmVzcyBpcyBzaW1wbHkgZGlzY2Fy ZGVkIGFuZCBvbmx5IHRoZQorKyoqICAJCQkJCWxvd2VyIDMyLWJpdHMgYXJlIHVzZWQgZHVy aW5nIGFkZHJlc3MgdHJhbnNsYXRpb24uIAorKyoqICAgICAgICAgICAgICAJCVRoZSBhbGdv cml0aG0gaXM6CisrKiogIAorKyoqICAKKysqKiAgRXF1YXRpb24gMi4gSW5ib3VuZCBUcmFu c2xhdGlvbgorKyoqICAgICAgICAgICAgICBJbnRlbCBJL08gcHJvY2Vzc29yIEludGVybmFs IEJ1cyBBZGRyZXNzPShQQ0lfQWRkcmVzc1szMTowXSAmIH5MaW1pdF9SZWdpc3RlclszMTow XSkgfCBBVFVfVHJhbnNsYXRlX1ZhbHVlX1JlZ2lzdGVyWzMxOjBdLgorKyoqICAKKysqKiAg CQkJVGhlIGluY29taW5nIDMyLWJpdCBQQ0kgYWRkcmVzcyAobG93ZXIgMzItYml0cyBpbiBj YXNlIG9mIERBQ3MpIGlzIGZpcnN0IGJpdHdpc2UgQU5EZWQgd2l0aCB0aGUKKysqKiAgCQkJ Yml0d2lzZSBpbnZlcnNlIG9mIHRoZSBsaW1pdCByZWdpc3Rlci4gVGhpcyByZXN1bHQgaXMg Yml0d2lzZSBPUmVkIHdpdGggdGhlIEFUVSBUcmFuc2xhdGUgVmFsdWUgYW5kCisrKiogIAkJ CXRoZSByZXN1bHQgaXMgdGhlIGludGVybmFsIGJ1cyBhZGRyZXNzLiBUaGlzIHRyYW5zbGF0 aW9uIG1lY2hhbmlzbSBpcyB1c2VkIGZvciBhbGwgaW5ib3VuZCBtZW1vcnkKKysqKiAgCQkJ cmVhZCBhbmQgd3JpdGUgY29tbWFuZHMgZXhjbHVkaW5nIGluYm91bmQgY29uZmlndXJhdGlv biByZWFkIGFuZCB3cml0ZXMuIAorKyoqICAJCQlJbiB0aGUgUENJIG1vZGUgZm9yIGluYm91 bmQgbWVtb3J5IHRyYW5zYWN0aW9ucywgdGhlIG9ubHkgYnVyc3Qgb3JkZXIgc3VwcG9ydGVk IGlzIExpbmVhcgorKyoqICAJCQlJbmNyZW1lbnRpbmcuIEZvciBhbnkgb3RoZXIgYnVyc3Qg b3JkZXIsIHRoZSBBVFUgc2lnbmFscyBhIERpc2Nvbm5lY3QgYWZ0ZXIgdGhlIGZpcnN0IGRh dGEgcGhhc2UuCisrKiogIAkJCVRoZSBQQ0ktWCBzdXBwb3J0cyBsaW5lYXIgaW5jcmVtZW50 aW5nIG9ubHksIGFuZCBoZW5jZSBhYm92ZSBzaXR1YXRpb24gaXMgbm90IGVuY291bnRlcmVk IGluIHRoZSBQQ0ktWCBtb2RlLgorKyoqICBleGFtcGxlOgorKyoqICAJICAgIFJlZ2lzdGVy IFZhbHVlcworKyoqICAJCSAgICAgICAgIEJhc2VfUmVnaXN0ZXI9M0EwMCAwMDAwSAorKyoq ICAJCSAgICAgICAgTGltaXRfUmVnaXN0ZXI9RkY4MCAwMDAwSCAoOCBNYnl0ZSBsaW1pdCB2 YWx1ZSkKKysqKiAgCQkgICAgICAgIFZhbHVlX1JlZ2lzdGVyPUIxMDAgMDAwMEgKKysqKiAg CQkgICAgICAgIEluYm91bmQgVHJhbnNsYXRpb24gV2luZG93IHJhbmdlcyBmcm9tIDNBMDAg MDAwMEggdG8gM0E3RiBGRkZGSCAoOCBNYnl0ZXMpCisrKiogIAkJCisrKiogIAkJQWRkcmVz cyBEZXRlY3Rpb24gKDMyLWJpdCBhZGRyZXNzKQorKyoqCisrKiogIAkJCQkJCVBDSV9BZGRy ZXNzICYgTGltaXRfUmVnaXN0ZXIgPT0gQmFzZV9SZWdpc3RlcgorKyoqICAJCQkJCQkzQTQ1 IDAxMkNIICAmICAgRkY4MCAwMDAwSCAgID09ICAzQTAwIDAwMDBICisrKioKKysqKiAgCQkJ CQlBTlM6IFBDSV9BZGRyZXNzIGlzIGluIHRoZSBJbmJvdW5kIFRyYW5zbGF0aW9uIFdpbmRv dworKyoqICAJCUFkZHJlc3MgVHJhbnNsYXRpb24gKHRvIGdldCBpbnRlcm5hbCBidXMgYWRk cmVzcykKKysqKgorKyoqICAJCQkJCQlJQl9BZGRyZXNzPShQQ0lfQWRkcmVzcyAmIH5MaW1p dF9SZWdpc3RlcikgfCBWYWx1ZV9SZWcKKysqKiAgCQkJCQkJSUJfQWRkcmVzcz0oM0E0NSAw MTJDSCAmIDAwN0YgRkZGRkgpIHwgQjEwMCAwMDAwSAorKyoqCisrKiogIAkJCQkJQU5TOklC X0FkZHJlc3M9QjE0NSAwMTJDSAorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisr Ki8KKysKKysKKysKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiog IEluYm91bmQgQVRVIExpbWl0IFJlZ2lzdGVyIDAgLSBJQUxSMAorKyoqICAKKysqKiAgSW5i b3VuZCBhZGRyZXNzIHRyYW5zbGF0aW9uIGZvciBtZW1vcnkgd2luZG93IDAgb2NjdXJzIGZv ciBkYXRhIHRyYW5zZmVycyBvY2N1cnJpbmcgZnJvbSB0aGUgUENJCisrKiogIGJ1cyAob3Jp Z2luYXRlZCBmcm9tIHRoZSBQQ0kgYnVzKSB0byB0aGUgODAzMzEgaW50ZXJuYWwgYnVzLiBU aGUgYWRkcmVzcyB0cmFuc2xhdGlvbiBibG9jayBjb252ZXJ0cworKyoqICBQQ0kgYWRkcmVz c2VzIHRvIGludGVybmFsIGJ1cyBhZGRyZXNzZXMuCisrKiogIFRoZSA4MDMzMSB0cmFuc2xh dGUgdmFsdWUgcmVnaXN0ZXKhpnMgcHJvZ3JhbW1lZCB2YWx1ZSBtdXN0IGJlIG5hdHVyYWxs eSBhbGlnbmVkIHdpdGggdGhlIGJhc2UKKysqKiAgYWRkcmVzcyByZWdpc3RlcqGmcyBwcm9n cmFtbWVkIHZhbHVlLiBUaGUgbGltaXQgcmVnaXN0ZXIgaXMgdXNlZCBhcyBhIG1hc2s7IHRo dXMsIHRoZSBsb3dlciBhZGRyZXNzCisrKiogIGJpdHMgcHJvZ3JhbW1lZCBpbnRvIHRoZSA4 MDMzMSB0cmFuc2xhdGUgdmFsdWUgcmVnaXN0ZXIgYXJlIGludmFsaWQuIFJlZmVyIHRvIHRo ZSBQQ0kgTG9jYWwgQnVzCisrKiogIFNwZWNpZmljYXRpb24sIFJldmlzaW9uIDIuMyBmb3Ig YWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiBwcm9ncmFtbWluZyBiYXNlIGFkZHJlc3MgcmVn aXN0ZXJzLgorKyoqICBCaXRzIDMxIHRvIDEyIHdpdGhpbiB0aGUgSUFMUjAgaGF2ZSBhIGRp cmVjdCBlZmZlY3Qgb24gdGhlIElBQkFSMCByZWdpc3RlciwgYml0cyAzMSB0byAxMiwgd2l0 aCBhCisrKiogIG9uZSB0byBvbmUgY29ycmVzcG9uZGVuY2UuIEEgdmFsdWUgb2YgMCBpbiBh IGJpdCB3aXRoaW4gdGhlIElBTFIwIG1ha2VzIHRoZSBjb3JyZXNwb25kaW5nIGJpdAorKyoq ICB3aXRoaW4gdGhlIElBQkFSMCBhIHJlYWQgb25seSBiaXQgd2hpY2ggYWx3YXlzIHJldHVy bnMgMC4gQSB2YWx1ZSBvZiAxIGluIGEgYml0IHdpdGhpbiB0aGUgSUFMUjAKKysqKiAgbWFr ZXMgdGhlIGNvcnJlc3BvbmRpbmcgYml0IHdpdGhpbiB0aGUgSUFCQVIwIHJlYWQvd3JpdGUg ZnJvbSBQQ0kuIE5vdGUgdGhhdCBhIGNvbnNlcXVlbmNlIG9mCisrKiogIHRoaXMgcHJvZ3Jh bW1pbmcgc2NoZW1lIGlzIHRoYXQgdW5sZXNzIGEgdmFsaWQgdmFsdWUgZXhpc3RzIHdpdGhp biB0aGUgSUFMUjAsIGFsbCB3cml0ZXMgdG8gdGhlCisrKiogIElBQkFSMCBoYXMgbm8gZWZm ZWN0IHNpbmNlIGEgdmFsdWUgb2YgYWxsIHplcm9zIHdpdGhpbiB0aGUgSUFMUjAgbWFrZXMg dGhlIElBQkFSMCBhIHJlYWQgb25seSAgcmVnaXN0ZXIuCisrKiogIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisr KiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlv bgorKyoqICAzMToxMiAgICAgRkYwMDBIICAgICAgICAgICAgICAgICAgICAgICAgSW5ib3Vu ZCBUcmFuc2xhdGlvbiBMaW1pdCAwIC0gVGhpcyByZWFkYmFjayB2YWx1ZSBkZXRlcm1pbmVz IHRoZSBtZW1vcnkgYmxvY2sgc2l6ZSByZXF1aXJlZCBmb3IKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGluYm91bmQgbWVtb3J5IHdpbmRvdyAwIG9mIHRoZSBhZGRyZXNzIHRyYW5zbGF0aW9u IHVuaXQuIFRoaXMgZGVmYXVsdHMgdG8gYW4gaW5ib3VuZCB3aW5kb3cgb2YgMTZNQi4KKysq KiAgMTE6MDAgICAgICAgMDAwSCAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01T Ul9JTkJPVU5EX0FUVV9MSU1JVDBfUkVHCQkgICAgIDB4NDAgICAgLypkd29yZCAweDQzLDB4 NDIsMHg0MSwweDQwKi8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisr KiogIEluYm91bmQgQVRVIFRyYW5zbGF0ZSBWYWx1ZSBSZWdpc3RlciAwIC0gSUFUVlIwCisr KiogIAorKyoqICBUaGUgSW5ib3VuZCBBVFUgVHJhbnNsYXRlIFZhbHVlIFJlZ2lzdGVyIDAg KElBVFZSMCkgY29udGFpbnMgdGhlIGludGVybmFsIGJ1cyBhZGRyZXNzIHVzZWQgdG8KKysq KiAgY29udmVydCBQQ0kgYnVzIGFkZHJlc3Nlcy4gVGhlIGNvbnZlcnRlZCBhZGRyZXNzIGlz IGRyaXZlbiBvbiB0aGUgaW50ZXJuYWwgYnVzIGFzIGEgcmVzdWx0IG9mIHRoZQorKyoqICBp bmJvdW5kIEFUVSBhZGRyZXNzIHRyYW5zbGF0aW9uLgorKyoqICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoq ICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24K KysqKiAgMzE6MTIgICAgIEZGMDAwSCAgICAgICAgICAgICAgICAgICAgICAgIEluYm91bmQg QVRVIFRyYW5zbGF0aW9uIFZhbHVlIDAgLSBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gY29udmVy dCB0aGUgUENJIGFkZHJlc3MgdG8gaW50ZXJuYWwgYnVzIGFkZHJlc3Nlcy4gCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIHZhbHVlIG11c3Qg YmUgNjQtYml0IGFsaWduZWQgb24gdGhlIGludGVybmFsIGJ1cy4gVGhlIGRlZmF1bHQgYWRk cmVzcyBhbGxvd3MgdGhlIEFUVSB0byBhY2Nlc3MgdGhlIGludGVybmFsIDgwMzMxIG1lbW9y eS1tYXBwZWQgcmVnaXN0ZXJzLgorKyoqICAxMTowMCAgICAgICAwMDBIICAgICAgICAgICAg ICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KyovCisrI2RlZmluZSAgICAgQVJDTVNSX0lOQk9VTkRfQVRVX1RSQU5TTEFURV9WQUxVRTBf UkVHCQkgICAgIDB4NDQgICAgLypkd29yZCAweDQ3LDB4NDYsMHg0NSwweDQ0Ki8KKysvKgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIEV4cGFuc2lvbiBST00gTGlt aXQgUmVnaXN0ZXIgLSBFUkxSCisrKiogIAorKyoqICBUaGUgRXhwYW5zaW9uIFJPTSBMaW1p dCBSZWdpc3RlciAoRVJMUikgZGVmaW5lcyB0aGUgYmxvY2sgc2l6ZSBvZiBhZGRyZXNzZXMg dGhlIEFUVSBkZWZpbmVzCisrKiogIGFzIEV4cGFuc2lvbiBST00gYWRkcmVzcyBzcGFjZS4g VGhlIGJsb2NrIHNpemUgaXMgcHJvZ3JhbW1lZCBieSB3cml0aW5nIGEgdmFsdWUgaW50byB0 aGUgRVJMUi4KKysqKiAgQml0cyAzMSB0byAxMiB3aXRoaW4gdGhlIEVSTFIgaGF2ZSBhIGRp cmVjdCBlZmZlY3Qgb24gdGhlIEVSQkFSIHJlZ2lzdGVyLCBiaXRzIDMxIHRvIDEyLCB3aXRo IGEgb25lCisrKiogIHRvIG9uZSBjb3JyZXNwb25kZW5jZS4gQSB2YWx1ZSBvZiAwIGluIGEg Yml0IHdpdGhpbiB0aGUgRVJMUiBtYWtlcyB0aGUgY29ycmVzcG9uZGluZyBiaXQgd2l0aGlu CisrKiogIHRoZSBFUkJBUiBhIHJlYWQgb25seSBiaXQgd2hpY2ggYWx3YXlzIHJldHVybnMg MC4gQSB2YWx1ZSBvZiAxIGluIGEgYml0IHdpdGhpbiB0aGUgRVJMUiBtYWtlcworKyoqICB0 aGUgY29ycmVzcG9uZGluZyBiaXQgd2l0aGluIHRoZSBFUkJBUiByZWFkL3dyaXRlIGZyb20g UENJLgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAg ICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMzE6MTIgICAgIDAwMDAwMEggICAg ICAgICAgICAgICAgICAgICAgIEV4cGFuc2lvbiBST00gTGltaXQgLSBCbG9jayBzaXplIG9m IG1lbW9yeSByZXF1aXJlZCBmb3IgdGhlIEV4cGFuc2lvbiBST00gdHJhbnNsYXRpb24gdW5p dC4gRGVmYXVsdAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlIGlzIDAsIHdoaWNoIGluZGljYXRlcyBu byBFeHBhbnNpb24gUk9NIGFkZHJlc3Mgc3BhY2UgYW5kIGFsbCBiaXRzIHdpdGhpbiB0aGUg RVJCQVIgYXJlIHJlYWQgb25seSB3aXRoIGEgdmFsdWUgb2YgMC4KKysqKiAgMTE6MDAgICAg ICAgIDAwMEggICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkLgorKyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfRVhQQU5TSU9O X1JPTV9MSU1JVF9SRUcJCSAgICAgICAgICAweDQ4ICAgIC8qZHdvcmQgMHg0QiwweDRBLDB4 NDksMHg0OCovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBF eHBhbnNpb24gUk9NIFRyYW5zbGF0ZSBWYWx1ZSBSZWdpc3RlciAtIEVSVFZSCisrKiogIAor KyoqICBUaGUgRXhwYW5zaW9uIFJPTSBUcmFuc2xhdGUgVmFsdWUgUmVnaXN0ZXIgY29udGFp bnMgdGhlIDgwMzMxIGludGVybmFsIGJ1cyBhZGRyZXNzIHdoaWNoIHRoZQorKyoqICBBVFUg Y29udmVydHMgdGhlIFBDSSBidXMgYWNjZXNzLiBUaGlzIGFkZHJlc3MgaXMgZHJpdmVuIG9u IHRoZSBpbnRlcm5hbCBidXMgYXMgYSByZXN1bHQgb2YgdGhlCisrKiogIEV4cGFuc2lvbiBS T00gYWRkcmVzcyB0cmFuc2xhdGlvbi4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAg ICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDMx OjEyICAgICAwMDAwMEggICAgICAgICAgICAgICAgICAgICAgICBFeHBhbnNpb24gUk9NIFRy YW5zbGF0aW9uIFZhbHVlIC0gVXNlZCB0byBjb252ZXJ0IFBDSSBhZGRyZXNzZXMgdG8gODAz MzEgaW50ZXJuYWwgYnVzIGFkZHJlc3NlcworKyoqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv ciBFeHBhbnNpb24gUk9NIGFjY2Vzc2VzLiBUaGUgRXhwYW5zaW9uIFJPTSBhZGRyZXNzIHRy YW5zbGF0aW9uIHZhbHVlIG11c3QgYmUgd29yZCBhbGlnbmVkIG9uIHRoZSBpbnRlcm5hbCBi dXMuCisrKiogIDExOjAwICAgICAgIDAwMEggICAgICAgICAgICAgICAgICAgICAgICBSZXNl cnZlZAorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAg ICBBUkNNU1JfRVhQQU5TSU9OX1JPTV9UUkFOU0xBVEVfVkFMVUVfUkVHCQkgICAgICAgICAg MHg0QyAgICAvKmR3b3JkIDB4NEYsMHg0RSwweDRELDB4NEMqLworKy8qCisrKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKysqKiAgSW5ib3VuZCBBVFUgTGltaXQgUmVnaXN0ZXIg MSAtIElBTFIxCisrKiogIAorKyoqICBCaXRzIDMxIHRvIDEyIHdpdGhpbiB0aGUgSUFMUjEg aGF2ZSBhIGRpcmVjdCBlZmZlY3Qgb24gdGhlIElBQkFSMSByZWdpc3RlciwgYml0cyAzMSB0 byAxMiwgd2l0aCBhCisrKiogIG9uZSB0byBvbmUgY29ycmVzcG9uZGVuY2UuIEEgdmFsdWUg b2YgMCBpbiBhIGJpdCB3aXRoaW4gdGhlIElBTFIxIG1ha2VzIHRoZSBjb3JyZXNwb25kaW5n IGJpdAorKyoqICB3aXRoaW4gdGhlIElBQkFSMSBhIHJlYWQgb25seSBiaXQgd2hpY2ggYWx3 YXlzIHJldHVybnMgMC4gQSB2YWx1ZSBvZiAxIGluIGEgYml0IHdpdGhpbiB0aGUgSUFMUjEK KysqKiAgbWFrZXMgdGhlIGNvcnJlc3BvbmRpbmcgYml0IHdpdGhpbiB0aGUgSUFCQVIxIHJl YWQvd3JpdGUgZnJvbSBQQ0kuIE5vdGUgdGhhdCBhIGNvbnNlcXVlbmNlIG9mCisrKiogIHRo aXMgcHJvZ3JhbW1pbmcgc2NoZW1lIGlzIHRoYXQgdW5sZXNzIGEgdmFsaWQgdmFsdWUgZXhp c3RzIHdpdGhpbiB0aGUgSUFMUjEsIGFsbCB3cml0ZXMgdG8gdGhlCisrKiogIElBQkFSMSBo YXMgbm8gZWZmZWN0IHNpbmNlIGEgdmFsdWUgb2YgYWxsIHplcm9zIHdpdGhpbiB0aGUgSUFM UjEgbWFrZXMgdGhlIElBQkFSMSBhIHJlYWQgb25seQorKyoqICByZWdpc3Rlci4KKysqKiAg VGhlIGluYm91bmQgbWVtb3J5IHdpbmRvdyAxIGlzIHVzZWQgbWVyZWx5IHRvIGFsbG9jYXRl IG1lbW9yeSBvbiB0aGUgUENJIGJ1cy4gVGhlIEFUVSBkb2VzCisrKiogIG5vdCBwcm9jZXNz IGFueSBQQ0kgYnVzIHRyYW5zYWN0aW9ucyB0byB0aGlzIG1lbW9yeSByYW5nZS4KKysqKiAg V2FybmluZzogVGhlIEFUVSBkb2VzIG5vdCBjbGFpbSBhbnkgUENJIGFjY2Vzc2VzIHRoYXQg ZmFsbCB3aXRoaW4gdGhlIHJhbmdlIGRlZmluZWQgYnkgSUFCQVIxLAorKyoqICBJQVVCQVIx LCBhbmQgSUFMUjEuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0 ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAzMToxMiAgICAgMDAw MDBIICAgICAgICAgICAgICAgICAgICAgICAgSW5ib3VuZCBUcmFuc2xhdGlvbiBMaW1pdCAx IC0gVGhpcyByZWFkYmFjayB2YWx1ZSBkZXRlcm1pbmVzIHRoZSBtZW1vcnkgYmxvY2sgc2l6 ZSByZXF1aXJlZCBmb3IgdGhlIEFUVXMgbWVtb3J5IHdpbmRvdyAxLgorKyoqICAxMTowMCAw MDBIIFJlc2VydmVkCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNk ZWZpbmUgICAgIEFSQ01TUl9JTkJPVU5EX0FUVV9MSU1JVDFfUkVHCQkgICAgICAgICAgMHg1 MCAgICAvKmR3b3JkIDB4NTMsMHg1MiwweDUxLDB4NTAqLworKy8qCisrKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKysqKiAgSW5ib3VuZCBBVFUgTGltaXQgUmVnaXN0ZXIgMiAt IElBTFIyCisrKiogIAorKyoqICBJbmJvdW5kIGFkZHJlc3MgdHJhbnNsYXRpb24gZm9yIG1l bW9yeSB3aW5kb3cgMiBvY2N1cnMgZm9yIGRhdGEgdHJhbnNmZXJzIG9jY3VycmluZyBmcm9t IHRoZSBQQ0kKKysqKiAgYnVzIChvcmlnaW5hdGVkIGZyb20gdGhlIFBDSSBidXMpIHRvIHRo ZSA4MDMzMSBpbnRlcm5hbCBidXMuIFRoZSBhZGRyZXNzIHRyYW5zbGF0aW9uIGJsb2NrIGNv bnZlcnRzCisrKiogIFBDSSBhZGRyZXNzZXMgdG8gaW50ZXJuYWwgYnVzIGFkZHJlc3Nlcy4K KysqKiAgVGhlIGluYm91bmQgdHJhbnNsYXRpb24gYmFzZSBhZGRyZXNzIGZvciBpbmJvdW5k IHdpbmRvdyAyIGlzIHNwZWNpZmllZCBpbiBTZWN0aW9uIDMuMTAuMTUuIFdoZW4KKysqKiAg ZGV0ZXJtaW5pbmcgYmxvY2sgc2l6ZSByZXF1aXJlbWVudHMgoVggYXMgZGVzY3JpYmVkIGlu IFNlY3Rpb24gMy4xMC4yMSChWCB0aGUgdHJhbnNsYXRpb24gbGltaXQKKysqKiAgcmVnaXN0 ZXIgcHJvdmlkZXMgdGhlIGJsb2NrIHNpemUgcmVxdWlyZW1lbnRzIGZvciB0aGUgYmFzZSBh ZGRyZXNzIHJlZ2lzdGVyLiBUaGUgcmVtYWluaW5nIHJlZ2lzdGVycworKyoqICB1c2VkIGZv ciBwZXJmb3JtaW5nIGFkZHJlc3MgdHJhbnNsYXRpb24gYXJlIGRpc2N1c3NlZCBpbiBTZWN0 aW9uIDMuMi4xLjEuCisrKiogIFRoZSA4MDMzMSB0cmFuc2xhdGUgdmFsdWUgcmVnaXN0ZXKh pnMgcHJvZ3JhbW1lZCB2YWx1ZSBtdXN0IGJlIG5hdHVyYWxseSBhbGlnbmVkIHdpdGggdGhl IGJhc2UKKysqKiAgYWRkcmVzcyByZWdpc3RlcqGmcyBwcm9ncmFtbWVkIHZhbHVlLiBUaGUg bGltaXQgcmVnaXN0ZXIgaXMgdXNlZCBhcyBhIG1hc2s7IHRodXMsIHRoZSBsb3dlciBhZGRy ZXNzCisrKiogIGJpdHMgcHJvZ3JhbW1lZCBpbnRvIHRoZSA4MDMzMSB0cmFuc2xhdGUgdmFs dWUgcmVnaXN0ZXIgYXJlIGludmFsaWQuIFJlZmVyIHRvIHRoZSBQQ0kgTG9jYWwgQnVzCisr KiogIFNwZWNpZmljYXRpb24sIFJldmlzaW9uIDIuMyBmb3IgYWRkaXRpb25hbCBpbmZvcm1h dGlvbiBvbiBwcm9ncmFtbWluZyBiYXNlIGFkZHJlc3MgcmVnaXN0ZXJzLgorKyoqICBCaXRz IDMxIHRvIDEyIHdpdGhpbiB0aGUgSUFMUjIgaGF2ZSBhIGRpcmVjdCBlZmZlY3Qgb24gdGhl IElBQkFSMiByZWdpc3RlciwgYml0cyAzMSB0byAxMiwgd2l0aCBhCisrKiogIG9uZSB0byBv bmUgY29ycmVzcG9uZGVuY2UuIEEgdmFsdWUgb2YgMCBpbiBhIGJpdCB3aXRoaW4gdGhlIElB TFIyIG1ha2VzIHRoZSBjb3JyZXNwb25kaW5nIGJpdAorKyoqICB3aXRoaW4gdGhlIElBQkFS MiBhIHJlYWQgb25seSBiaXQgd2hpY2ggYWx3YXlzIHJldHVybnMgMC4gQSB2YWx1ZSBvZiAx IGluIGEgYml0IHdpdGhpbiB0aGUgSUFMUjIKKysqKiAgbWFrZXMgdGhlIGNvcnJlc3BvbmRp bmcgYml0IHdpdGhpbiB0aGUgSUFCQVIyIHJlYWQvd3JpdGUgZnJvbSBQQ0kuIE5vdGUgdGhh dCBhIGNvbnNlcXVlbmNlIG9mCisrKiogIHRoaXMgcHJvZ3JhbW1pbmcgc2NoZW1lIGlzIHRo YXQgdW5sZXNzIGEgdmFsaWQgdmFsdWUgZXhpc3RzIHdpdGhpbiB0aGUgSUFMUjIsIGFsbCB3 cml0ZXMgdG8gdGhlCisrKiogIElBQkFSMiBoYXMgbm8gZWZmZWN0IHNpbmNlIGEgdmFsdWUg b2YgYWxsIHplcm9zIHdpdGhpbiB0aGUgSUFMUjIgbWFrZXMgdGhlIElBQkFSMiBhIHJlYWQg b25seQorKyoqICByZWdpc3Rlci4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAg IERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDMxOjEy ICAgICAwMDAwMEggICAgICAgICAgICAgICAgICAgICAgICBJbmJvdW5kIFRyYW5zbGF0aW9u IExpbWl0IDIgLSBUaGlzIHJlYWRiYWNrIHZhbHVlIGRldGVybWluZXMgdGhlIG1lbW9yeSBi bG9jayBzaXplIHJlcXVpcmVkIGZvciB0aGUgQVRVcyBtZW1vcnkgd2luZG93IDIuCisrKiog IDExOjAwICAgICAgIDAwMEggICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1Jf SU5CT1VORF9BVFVfTElNSVQyX1JFRwkJICAgICAgICAgIDB4NTQgICAgLypkd29yZCAweDU3 LDB4NTYsMHg1NSwweDU0Ki8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisrKiogIEluYm91bmQgQVRVIFRyYW5zbGF0ZSBWYWx1ZSBSZWdpc3RlciAyIC0gSUFUVlIy CisrKiogIAorKyoqICBUaGUgSW5ib3VuZCBBVFUgVHJhbnNsYXRlIFZhbHVlIFJlZ2lzdGVy IDIgKElBVFZSMikgY29udGFpbnMgdGhlIGludGVybmFsIGJ1cyBhZGRyZXNzIHVzZWQgdG8K KysqKiAgY29udmVydCBQQ0kgYnVzIGFkZHJlc3Nlcy4gVGhlIGNvbnZlcnRlZCBhZGRyZXNz IGlzIGRyaXZlbiBvbiB0aGUgaW50ZXJuYWwgYnVzIGFzIGEgcmVzdWx0IG9mIHRoZQorKyoq ICBpbmJvdW5kIEFUVSBhZGRyZXNzIHRyYW5zbGF0aW9uLgorKyoqICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRp b24KKysqKiAgMzE6MTIgICAgIDAwMDAwSCAgICAgICAgICAgICAgICAgICAgICAgIEluYm91 bmQgQVRVIFRyYW5zbGF0aW9uIFZhbHVlIDIgLSBUaGlzIHZhbHVlIGlzIHVzZWQgdG8gY29u dmVydCB0aGUgUENJIGFkZHJlc3MgdG8gaW50ZXJuYWwgYnVzIGFkZHJlc3Nlcy4gCisrKiog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgVGhpcyB2YWx1ZSBtdXN0IGJlIDY0LWJpdCBhbGlnbmVk IG9uIHRoZSBpbnRlcm5hbCBidXMuIFRoZSBkZWZhdWx0IGFkZHJlc3MgYWxsb3dzIHRoZSBB VFUgdG8gYWNjZXNzIHRoZSBpbnRlcm5hbCA4MDMzMSBtZW1vcnktbWFwcGVkIHJlZ2lzdGVy cy4KKysqKiAgMTE6MDAgICAgICAgMDAwSCAgICAgICAgICAgICAgICAgICAgICAgIFJlc2Vy dmVkCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAg IEFSQ01TUl9JTkJPVU5EX0FUVV9UUkFOU0xBVEVfVkFMVUUyX1JFRwkJICAgICAgICAgIDB4 NTggICAgLypkd29yZCAweDVCLDB4NUEsMHg1OSwweDU4Ki8KKysvKgorKyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisrKiogIE91dGJvdW5kIEkvTyBXaW5kb3cgVHJhbnNsYXRl IFZhbHVlIFJlZ2lzdGVyIC0gT0lPV1RWUgorKyoqICAKKysqKiAgVGhlIE91dGJvdW5kIEkv TyBXaW5kb3cgVHJhbnNsYXRlIFZhbHVlIFJlZ2lzdGVyIChPSU9XVFZSKSBjb250YWlucyB0 aGUgUENJIEkvTyBhZGRyZXNzCisrKiogIHVzZWQgdG8gY29udmVydCB0aGUgaW50ZXJuYWwg YnVzIGFjY2VzcyB0byBhIFBDSSBhZGRyZXNzLiBUaGlzIGFkZHJlc3MgaXMgZHJpdmVuIG9u IHRoZSBQQ0kgYnVzIGFzIGEKKysqKiAgcmVzdWx0IG9mIHRoZSBvdXRib3VuZCBBVFUgYWRk cmVzcyB0cmFuc2xhdGlvbi4gCisrKiogIFRoZSBJL08gd2luZG93IGlzIGZyb20gODAzMzEg aW50ZXJuYWwgYnVzIGFkZHJlc3MgOTAwMCAwMDBIIHRvIDkwMDAgRkZGRkggd2l0aCB0aGUg Zml4ZWQKKysqKiAgbGVuZ3RoIG9mIDY0IEtieXRlcy4KKysqKiAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysq KiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9u CisrKiogIDMxOjE2ICAgICAwMDAwSCAgICAgICAgICAgICAgICAgICAgICAgICBPdXRib3Vu ZCBJL08gV2luZG93IFRyYW5zbGF0ZSBWYWx1ZSAtIFVzZWQgdG8gY29udmVydCBpbnRlcm5h bCBidXMgYWRkcmVzc2VzIHRvIFBDSSBhZGRyZXNzZXMuCisrKiogIDE1OjAwICAgICAwMDAw SCAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfT1VUQk9VTkRfSU9fV0lO RE9XX1RSQU5TTEFURV9WQUxVRV9SRUcJCSAgICAgICAgICAweDVDICAgIC8qZHdvcmQgMHg1 RiwweDVFLDB4NUQsMHg1QyovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorKyoqICBPdXRib3VuZCBNZW1vcnkgV2luZG93IFRyYW5zbGF0ZSBWYWx1ZSBSZWdpc3Rl ciAwIC1PTVdUVlIwCisrKiogIAorKyoqICBUaGUgT3V0Ym91bmQgTWVtb3J5IFdpbmRvdyBU cmFuc2xhdGUgVmFsdWUgUmVnaXN0ZXIgMCAoT01XVFZSMCkgY29udGFpbnMgdGhlIFBDSQor KyoqICBhZGRyZXNzIHVzZWQgdG8gY29udmVydCA4MDMzMSBpbnRlcm5hbCBidXMgYWRkcmVz c2VzIGZvciBvdXRib3VuZCB0cmFuc2FjdGlvbnMuIFRoaXMgYWRkcmVzcyBpcworKyoqICBk cml2ZW4gb24gdGhlIFBDSSBidXMgYXMgYSByZXN1bHQgb2YgdGhlIG91dGJvdW5kIEFUVSBh ZGRyZXNzIHRyYW5zbGF0aW9uLiAKKysqKiAgVGhlIG1lbW9yeSB3aW5kb3cgaXMgZnJvbSBp bnRlcm5hbCBidXMgYWRkcmVzcyA4MDAwIDAwMEggdG8gODNGRiBGRkZGSCB3aXRoIHRoZSBm aXhlZCBsZW5ndGgKKysqKiAgb2YgNjQgTWJ5dGVzLgorKyoqICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoq ICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24K KysqKiAgMzE6MjYgICAgICAgMDBIICAgICAgICAgICAgICAgICAgICAgICAgIE91dGJvdW5k IE1XIFRyYW5zbGF0ZSBWYWx1ZSAtIFVzZWQgdG8gY29udmVydCA4MDMzMSBpbnRlcm5hbCBi dXMgYWRkcmVzc2VzIHRvIFBDSSBhZGRyZXNzZXMuCisrKiogIDI1OjAyICAgICAwMCAwMDAw SCAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqICAwMTowMCAgICAgIDAwIDIg ICAgICAgICAgICAgICAgICAgICAgICAgQnVyc3QgT3JkZXIgLSBUaGlzIGJpdCBmaWVsZCBz aG93cyB0aGUgYWRkcmVzcyBzZXF1ZW5jZSBkdXJpbmcgYSBtZW1vcnkgYnVyc3QuIE9ubHkg bGluZWFyIGluY3JlbWVudGluZyBtb2RlIGlzIHN1cHBvcnRlZC4KKysqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX09VVEJPVU5EX01F TU9SWV9XSU5ET1dfVFJBTlNMQVRFX1ZBTFVFMF9SRUcJCSAgICAgICAgICAweDYwICAgIC8q ZHdvcmQgMHg2MywweDYyLDB4NjEsMHg2MCovCisrLyoKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqICBPdXRib3VuZCBVcHBlciAzMi1iaXQgTWVtb3J5IFdpbmRvdyBU cmFuc2xhdGUgVmFsdWUgUmVnaXN0ZXIgMCAtIE9VTVdUVlIwCisrKiogIAorKyoqICBUaGUg T3V0Ym91bmQgVXBwZXIgMzItYml0IE1lbW9yeSBXaW5kb3cgVHJhbnNsYXRlIFZhbHVlIFJl Z2lzdGVyIDAgKE9VTVdUVlIwKSBkZWZpbmVzCisrKiogIHRoZSB1cHBlciAzMi1iaXRzIG9m IGFkZHJlc3MgdXNlZCBkdXJpbmcgYSBkdWFsIGFkZHJlc3MgY3ljbGUuIFRoaXMgZW5hYmxl cyB0aGUgb3V0Ym91bmQgQVRVIHRvCisrKiogIGRpcmVjdGx5IGFkZHJlc3MgYW55d2hlcmUg d2l0aGluIHRoZSA2NC1iaXQgaG9zdCBhZGRyZXNzIHNwYWNlLiBXaGVuIHRoaXMgcmVnaXN0 ZXIgaXMgYWxsLXplcm8sIHRoZW4KKysqKiAgYSBTQUMgaXMgZ2VuZXJhdGVkIG9uIHRoZSBQ Q0kgYnVzLgorKyoqICBUaGUgbWVtb3J5IHdpbmRvdyBpcyBmcm9tIGludGVybmFsIGJ1cyBh ZGRyZXNzIDgwMDAgMDAwSCB0byA4M0ZGIEZGRkZIIHdpdGggdGhlIGZpeGVkCisrKiogIGxl bmd0aCBvZiA2NCBNYnl0ZXMuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBE ZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAzMTowMCAg ICAgMDAwMCAwMDAwSCAgICAgICAgICAgICAgICAgICAgVGhlc2UgYml0cyBkZWZpbmUgdGhl IHVwcGVyIDMyLWJpdHMgb2YgYWRkcmVzcyBkcml2ZW4gZHVyaW5nIHRoZSBkdWFsIGFkZHJl c3MgY3ljbGUgKERBQykuCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLwor KyNkZWZpbmUgICAgIEFSQ01TUl9PVVRCT1VORF9VUFBFUjMyX01FTU9SWV9XSU5ET1dfVFJB TlNMQVRFX1ZBTFVFMF9SRUcJCSAgICAgICAgICAweDY0ICAgIC8qZHdvcmQgMHg2NywweDY2 LDB4NjUsMHg2NCovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoq ICBPdXRib3VuZCBNZW1vcnkgV2luZG93IFRyYW5zbGF0ZSBWYWx1ZSBSZWdpc3RlciAxIC1P TVdUVlIxCisrKiogIAorKyoqICBUaGUgT3V0Ym91bmQgTWVtb3J5IFdpbmRvdyBUcmFuc2xh dGUgVmFsdWUgUmVnaXN0ZXIgMSAoT01XVFZSMSkgY29udGFpbnMgdGhlIFBDSQorKyoqICBh ZGRyZXNzIHVzZWQgdG8gY29udmVydCA4MDMzMSBpbnRlcm5hbCBidXMgYWRkcmVzc2VzIGZv ciBvdXRib3VuZCB0cmFuc2FjdGlvbnMuIFRoaXMgYWRkcmVzcyBpcworKyoqICBkcml2ZW4g b24gdGhlIFBDSSBidXMgYXMgYSByZXN1bHQgb2YgdGhlIG91dGJvdW5kIEFUVSBhZGRyZXNz IHRyYW5zbGF0aW9uLiAKKysqKiAgVGhlIG1lbW9yeSB3aW5kb3cgaXMgZnJvbSBpbnRlcm5h bCBidXMgYWRkcmVzcyA4NDAwIDAwMEggdG8gODdGRiBGRkZGSCB3aXRoIHRoZSBmaXhlZCBs ZW5ndGgKKysqKiAgb2YgNjQgTWJ5dGVzLgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAg MzE6MjYgICAgICAgMDBIICAgICAgICAgICAgICAgICAgICAgICAgIE91dGJvdW5kIE1XIFRy YW5zbGF0ZSBWYWx1ZSAtIFVzZWQgdG8gY29udmVydCA4MDMzMSBpbnRlcm5hbCBidXMgYWRk cmVzc2VzIHRvIFBDSSBhZGRyZXNzZXMuCisrKiogIDI1OjAyICAgICAwMCAwMDAwSCAgICAg ICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqICAwMTowMCAgICAgICAwMCAyICAgICAg ICAgICAgICAgICAgICAgICAgQnVyc3QgT3JkZXIgLSBUaGlzIGJpdCBmaWVsZCBzaG93cyB0 aGUgYWRkcmVzcyBzZXF1ZW5jZSBkdXJpbmcgYSBtZW1vcnkgYnVyc3QuIE9ubHkgbGluZWFy IGluY3JlbWVudGluZyBtb2RlIGlzIHN1cHBvcnRlZC4KKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX09VVEJPVU5EX01FTU9SWV9X SU5ET1dfVFJBTlNMQVRFX1ZBTFVFMV9SRUcJCSAgICAgICAgICAweDY4ICAgIC8qZHdvcmQg MHg2QiwweDZBLDB4NjksMHg2OCovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorKyoqICBPdXRib3VuZCBVcHBlciAzMi1iaXQgTWVtb3J5IFdpbmRvdyBUcmFuc2xh dGUgVmFsdWUgUmVnaXN0ZXIgMSAtIE9VTVdUVlIxCisrKiogIAorKyoqICBUaGUgT3V0Ym91 bmQgVXBwZXIgMzItYml0IE1lbW9yeSBXaW5kb3cgVHJhbnNsYXRlIFZhbHVlIFJlZ2lzdGVy IDEgKE9VTVdUVlIxKSBkZWZpbmVzCisrKiogIHRoZSB1cHBlciAzMi1iaXRzIG9mIGFkZHJl c3MgdXNlZCBkdXJpbmcgYSBkdWFsIGFkZHJlc3MgY3ljbGUuIFRoaXMgZW5hYmxlcyB0aGUg b3V0Ym91bmQgQVRVIHRvCisrKiogIGRpcmVjdGx5IGFkZHJlc3MgYW55d2hlcmUgd2l0aGlu IHRoZSA2NC1iaXQgaG9zdCBhZGRyZXNzIHNwYWNlLiBXaGVuIHRoaXMgcmVnaXN0ZXIgaXMg YWxsLXplcm8sIHRoZW4KKysqKiAgYSBTQUMgaXMgZ2VuZXJhdGVkIG9uIHRoZSBQQ0kgYnVz LgorKyoqICBUaGUgbWVtb3J5IHdpbmRvdyBpcyBmcm9tIGludGVybmFsIGJ1cyBhZGRyZXNz IDg0MDAgMDAwSCB0byA4N0ZGIEZGRkZIIHdpdGggdGhlIGZpeGVkIGxlbmd0aAorKyoqICBv ZiA2NCBNYnl0ZXMuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0 ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAzMTowMCAgICAwMDAw IDAwMDBIICAgICAgICAgICAgICAgICAgICAgVGhlc2UgYml0cyBkZWZpbmUgdGhlIHVwcGVy IDMyLWJpdHMgb2YgYWRkcmVzcyBkcml2ZW4gZHVyaW5nIHRoZSBkdWFsIGFkZHJlc3MgY3lj bGUgKERBQykuCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZp bmUgICAgIEFSQ01TUl9PVVRCT1VORF9VUFBFUjMyX01FTU9SWV9XSU5ET1dfVFJBTlNMQVRF X1ZBTFVFMV9SRUcJCSAgICAgICAgICAweDZDICAgIC8qZHdvcmQgMHg2RiwweDZFLDB4NkQs MHg2QyovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBPdXRi b3VuZCBVcHBlciAzMi1iaXQgRGlyZWN0IFdpbmRvdyBUcmFuc2xhdGUgVmFsdWUgUmVnaXN0 ZXIgLSBPVURXVFZSCisrKiogIAorKyoqICBUaGUgT3V0Ym91bmQgVXBwZXIgMzItYml0IERp cmVjdCBXaW5kb3cgVHJhbnNsYXRlIFZhbHVlIFJlZ2lzdGVyIChPVURXVFZSKSBkZWZpbmVz IHRoZQorKyoqICB1cHBlciAzMi1iaXRzIG9mIGFkZHJlc3MgdXNlZCBkdXJpbmcgYSBkdWFs IGFkZHJlc3MgY3ljbGUgZm9yIHRoZSB0cmFuc2FjdGlvbnMgdmlhIERpcmVjdCBBZGRyZXNz aW5nCisrKiogIFdpbmRvdy4gVGhpcyBlbmFibGVzIHRoZSBvdXRib3VuZCBBVFUgdG8gZGly ZWN0bHkgYWRkcmVzcyBhbnl3aGVyZSB3aXRoaW4gdGhlIDY0LWJpdCBob3N0CisrKiogIGFk ZHJlc3Mgc3BhY2UuIFdoZW4gdGhpcyByZWdpc3RlciBpcyBhbGwtemVybywgdGhlbiBhIFNB QyBpcyBnZW5lcmF0ZWQgb24gdGhlIFBDSSBidXMuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiog IEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgor KyoqICAzMTowMCAgICAwMDAwIDAwMDBIICAgICAgICAgICAgICAgICAgICAgVGhlc2UgYml0 cyBkZWZpbmUgdGhlIHVwcGVyIDMyLWJpdHMgb2YgYWRkcmVzcyBkcml2ZW4gZHVyaW5nIHRo ZSBkdWFsIGFkZHJlc3MgY3ljbGUgKERBQykuCisrKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9PVVRCT1VORF9VUFBFUjMyX0RJUkVD VF9XSU5ET1dfVFJBTlNMQVRFX1ZBTFVFX1JFRwkJICAgICAgICAgIDB4NzggICAgLypkd29y ZCAweDdCLDB4N0EsMHg3OSwweDc4Ki8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrKiogIEFUVSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIC0gQVRVQ1IKKysqKiAg CisrKiogIFRoZSBBVFUgQ29uZmlndXJhdGlvbiBSZWdpc3RlciBjb250cm9scyB0aGUgb3V0 Ym91bmQgYWRkcmVzcyB0cmFuc2xhdGlvbiBmb3IgYWRkcmVzcyB0cmFuc2xhdGlvbgorKyoq ICB1bml0LiBJdCBhbHNvIGNvbnRhaW5zIGJpdHMgZm9yIENvbnZlbnRpb25hbCBQQ0kgRGVs YXllZCBSZWFkIENvbW1hbmQgKERSQykgYWxpYXNpbmcsIGRpc2NhcmQKKysqKiAgdGltZXIg c3RhdHVzLCBTRVJSIyBtYW51YWwgYXNzZXJ0aW9uLCBTRVJSIyBkZXRlY3Rpb24gaW50ZXJy dXB0IG1hc2tpbmcsIGFuZCBBVFUgQklTVAorKyoqICBpbnRlcnJ1cHQgZW5hYmxpbmcuCisr KiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAg ICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAzMToyMCAgICAgICAwMEggICAgICAgICAgICAg ICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKiAgMTkgICAgICAgICAgMCAyICAgICAgICAgICAg ICAgICAgICAgICAgIEFUVSBEUkMgQWxpYXMgLSB3aGVuIHNldCwgdGhlIEFUVSBkb2VzIG5v dCBkaXN0aW5ndWlzaCByZWFkIGNvbW1hbmRzIHdoZW4gYXR0ZW1wdGluZyB0byBtYXRjaCBh CisrKiogIAkJCQkJCQkJCQkJCQkJY3VycmVudCBQQ0kgcmVhZCB0cmFuc2FjdGlvbiB3aXRo IHJlYWQgZGF0YSBlbnF1ZXVlZCB3aXRoaW4gdGhlIERSQyBidWZmZXIuIFdoZW4gY2xlYXIs IGEgY3VycmVudCByZWFkCisrKiogIAkJCQkJCQkJCQkJCQkJdHJhbnNhY3Rpb24gbXVzdCBo YXZlIHRoZSBleGFjdCBzYW1lIHJlYWQgY29tbWFuZCBhcyB0aGUgRFJSIGZvciB0aGUgQVRV IHRvIGRlbGl2ZXIgRFJDIGRhdGEuIE5vdAorKyoqICAJCQkJCQkJCQkJCQkJCWFwcGxpY2Fi bGUgaW4gdGhlIFBDSS1YIG1vZGUuCisrKiogIDE4ICAgICAgICAgIDAgMiAgICAgICAgICAg ICAgICAgICAgICAgICBEaXJlY3QgQWRkcmVzc2luZyBVcHBlciAyR2J5dGVzIFRyYW5zbGF0 aW9uIEVuYWJsZSAtIFdoZW4gc2V0LCB3aXRoIERpcmVjdCBBZGRyZXNzaW5nIGVuYWJsZWQg KGJpdCA3IG9mIHRoZSBBVFVDUiBzZXQpLCB0aGUgQVRVIGZvcndhcmRzIGludGVybmFsIGJ1 cyBjeWNsZXMgd2l0aCBhbiBhZGRyZXNzIGJldHdlZW4gMDAwMC4wMDQwSCBhbmQKKysqKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICA3RkZGLkZGRkZIIHRvIHRoZSBQQ0kgYnVzIHdpdGggYml0IDMxIG9mIHRoZSBhZGRyZXNz IHNldCAoODAwMC4wMDAwSCAtIEZGRkYuRkZGRkgpLiBXaGVuIGNsZWFyLCBubyB0cmFuc2xh dGlvbiBvY2N1cnMuCisrKiogIDE3ICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAg ICAgICBSZXNlcnZlZAorKyoqICAxNiAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAg ICAgICAgU0VSUiMgTWFudWFsIEFzc2VydGlvbiAtIHdoZW4gc2V0LCB0aGUgQVRVIGFzc2Vy dHMgU0VSUiMgZm9yIG9uZSBjbG9jayBvbiB0aGUgUENJIGludGVyZmFjZS4gVW50aWwKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjbGVhcmVkLCBTRVJSIyBtYXkgbm90IGJlIG1hbnVhbGx5IGFzc2VydGVkIGFnYWlu LiBPbmNlIGNsZWFyZWQsIG9wZXJhdGlvbiBwcm9jZWVkcyBhcyBzcGVjaWZpZWQuCisrKiog IDE1ICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBBVFUgRGlzY2FyZCBU aW1lciBTdGF0dXMgLSB3aGVuIHNldCwgb25lIG9mIHRoZSA0IGRpc2NhcmQgdGltZXJzIHdp dGhpbiB0aGUgQVRVIGhhcyBleHBpcmVkIGFuZAorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2NhcmRlZCB0aGUgZGVs YXllZCBjb21wbGV0aW9uIHRyYW5zYWN0aW9uIHdpdGhpbiB0aGUgcXVldWUuIFdoZW4gY2xl YXIsIG5vIHRpbWVyIGhhcyBleHBpcmVkLgorKyoqICAxNDoxMCAgICAwMDAwMCAyICAgICAg ICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKiAgMDkgICAgICAgICAgMCAyICAgICAg ICAgICAgICAgICAgICAgICAgIFNFUlIjIERldGVjdGVkIEludGVycnVwdCBFbmFibGUgLSBX aGVuIHNldCwgdGhlIEludGVsIFhTY2FsZSBjb3JlIGlzIHNpZ25hbGxlZCBhbiBIUEkjIGlu dGVycnVwdAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHdoZW4gdGhlIEFUVSBkZXRlY3RzIHRoYXQgU0VSUiMgd2FzIGFz c2VydGVkLiBXaGVuIGNsZWFyLCB0aGUgSW50ZWwgWFNjYWxlIGNvcmUgaXMgbm90IGludGVy cnVwdGVkIHdoZW4gU0VSUiMgaXMgZGV0ZWN0ZWQuCisrKiogIDA4ICAgICAgICAgIDAgMiAg ICAgICAgICAgICAgICAgICAgICAgICBEaXJlY3QgQWRkcmVzc2luZyBFbmFibGUgLSBTZXR0 aW5nIHRoaXMgYml0IGVuYWJsZXMgZGlyZWN0IG91dGJvdW5kIGFkZHJlc3NpbmcgdGhyb3Vn aCB0aGUgQVRVLgorKyoqICAJCQkJCQkJCQkJCQkJCUludGVybmFsIGJ1cyBjeWNsZXMgd2l0 aCBhbiBhZGRyZXNzIGJldHdlZW4gMDAwMC4wMDQwSCBhbmQgN0ZGRi5GRkZGSCBhdXRvbWF0 aWNhbGx5IGZvcndhcmRzIHRvCisrKiogIAkJCQkJCQkJCQkJCQkJdGhlIFBDSSBidXMgd2l0 aCBvciB3aXRob3V0IHRyYW5zbGF0aW9uIG9mIGFkZHJlc3MgYml0IDMxIGJhc2VkIG9uIHRo ZSBzZXR0aW5nIG9mIGJpdCAxOCBvZiB0aGUgQVRVQ1IuCisrKiogIDA3OjA0ICAgIDAwMDAg MiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqICAwMyAgICAgICAgICAw IDIgICAgICAgICAgICAgICAgICAgICAgICAgQVRVIEJJU1QgSW50ZXJydXB0IEVuYWJsZSAt IFdoZW4gc2V0LCBlbmFibGVzIGFuIGludGVycnVwdCB0byB0aGUgSW50ZWwgWFNjYWxlIGNv cmUgd2hlbiB0aGUgc3RhcnQKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBCSVNUIGJpdCBpcyBzZXQgaW4gdGhlIEFUVUJJ U1RSIHJlZ2lzdGVyLiBUaGlzIGJpdCBpcyBhbHNvIHJlZmxlY3RlZCBhcyB0aGUgQklTVCBD YXBhYmxlIGJpdCA3IGluIHRoZSBBVFVCSVNUUiByZWdpc3Rlci4KKysqKiAgMDIgICAgICAg ICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisrKiogIDAxICAgICAg ICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBPdXRib3VuZCBBVFUgRW5hYmxlIC0g V2hlbiBzZXQsIGVuYWJsZXMgdGhlIG91dGJvdW5kIGFkZHJlc3MgdHJhbnNsYXRpb24gdW5p dC4gV2hlbiBjbGVhcmVkLCBkaXNhYmxlcyB0aGUgb3V0Ym91bmQgQVRVLgorKyoqICAwMCAg ICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX0FUVV9D T05GSUdVUkFUSU9OX1JFRwkJICAgICAgICAgIDB4ODAgICAgLypkd29yZCAweDgzLDB4ODIs MHg4MSwweDgwKi8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiog IFBDSSBDb25maWd1cmF0aW9uIGFuZCBTdGF0dXMgUmVnaXN0ZXIgLSBQQ1NSCisrKiogIAor KyoqICBUaGUgUENJIENvbmZpZ3VyYXRpb24gYW5kIFN0YXR1cyBSZWdpc3RlciBoYXMgYWRk aXRpb25hbCBiaXRzIGZvciBjb250cm9sbGluZyBhbmQgbW9uaXRvcmluZworKyoqICB2YXJp b3VzIGZlYXR1cmVzIG9mIHRoZSBQQ0kgYnVzIGludGVyZmFjZS4KKysqKiAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2Ny aXB0aW9uCisrKiogIDMxOjE5ICAgICAgMDAwMEggICAgICAgICAgICAgICAgICAgICAgICBS ZXNlcnZlZAorKyoqICAxOCAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAg RGV0ZWN0ZWQgQWRkcmVzcyBvciBBdHRyaWJ1dGUgUGFyaXR5IEVycm9yIC0gc2V0IHdoZW4g YSBwYXJpdHkgZXJyb3IgaXMgZGV0ZWN0ZWQgZHVyaW5nIGVpdGhlciB0aGUgYWRkcmVzcwor KyoqICAJCQkJCQkJCQkJCQkJCW9yIGF0dHJpYnV0ZSBwaGFzZSBvZiBhIHRyYW5zYWN0aW9u IG9uIHRoZSBQQ0kgYnVzIGV2ZW4gd2hlbiB0aGUgQVRVQ01EIHJlZ2lzdGVyIFBhcml0eSBF cnJvcgorKyoqICAJCQkJCQkJCQkJCQkJCVJlc3BvbnNlIGJpdCBpcyBjbGVhcmVkLiBTZXQg dW5kZXIgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorKyoqICAJCQkJCQkJCQkJCQkJCaFF IEFueSBBZGRyZXNzIG9yIEF0dHJpYnV0ZSAoUENJLVggT25seSkgUGFyaXR5IEVycm9yIG9u IHRoZSBCdXMgKGluY2x1ZGluZyBvbmUgZ2VuZXJhdGVkIGJ5IHRoZSBBVFUpLgorKyoqICAx NzoxNiAgVmFyaWVzIHdpdGgKKysqKiAgCQkJCQkJCQkJCWV4dGVybmFsIHN0YXRlCisrKiog IAkJCQkJCQkJCQlvZiBERVZTRUwjLAorKyoqICAJCQkJCQkJCQkJU1RPUCMsIGFuZAorKyoq ICAJCQkJCQkJCQkJVFJEWSMsCisrKiogIAkJCQkJCQkJCQlkdXJpbmcKKysqKiAgCQkJCQkJ CQkJCVBfUlNUIworKyoqICAJCQkJCQkJCQkJUENJLVggY2FwYWJpbGl0eSAtIFRoZXNlIHR3 byBiaXRzIGRlZmluZSB0aGUgbW9kZSBvZiB0aGUgUENJIGJ1cyAoY29udmVudGlvbmFsIG9y IFBDSS1YKSBhcyB3ZWxsIGFzIHRoZQorKyoqICAJCQkJCQkJCQkJb3BlcmF0aW5nIGZyZXF1 ZW5jeSBpbiB0aGUgY2FzZSBvZiBQQ0ktWCBtb2RlLgorKyoqICAJCQkJCQkJCQkJMDAgLSBD b252ZW50aW9uYWwgUENJIG1vZGUKKysqKiAgCQkJCQkJCQkJCTAxIC0gUENJLVggNjYKKysq KiAgCQkJCQkJCQkJCTEwIC0gUENJLVggMTAwCisrKiogIAkJCQkJCQkJCQkxMSAtIFBDSS1Y IDEzMworKyoqICAJCQkJCQkJCQkJQXMgZGVmaW5lZCBieSB0aGUgUENJLVggQWRkZW5kdW0g dG8gdGhlIFBDSSBMb2NhbCBCdXMgU3BlY2lmaWNhdGlvbiwgUmV2aXNpb24gMS4wYSwgdGhl IG9wZXJhdGluZworKyoqICAJCQkJCQkJCQkJbW9kZSBpcyBkZXRlcm1pbmVkIGJ5IGFuIGlu aXRpYWxpemF0aW9uIHBhdHRlcm4gb24gdGhlIFBDSSBidXMgZHVyaW5nIFBfUlNUIyBhc3Nl cnRpb246CisrKiogIAkJCQkJCQkJCQlERVZTRUwjIFNUT1AjIFRSRFkjIE1vZGUKKysqKiAg CQkJCQkJCQkJCURlYXNzZXJ0ZWQgRGVhc3NlcnRlZCBEZWFzc2VydGVkIENvbnZlbnRpb25h bAorKyoqICAJCQkJCQkJCQkJRGVhc3NlcnRlZCBEZWFzc2VydGVkIEFzc2VydGVkIFBDSS1Y IDY2CisrKiogIAkJCQkJCQkJCQlEZWFzc2VydGVkIEFzc2VydGVkIERlYXNzZXJ0ZWQgUENJ LVggMTAwCisrKiogIAkJCQkJCQkJCQlEZWFzc2VydGVkIEFzc2VydGVkIEFzc2VydGVkIFBD SS1YIDEzMworKyoqICAJCQkJCQkJCQkJQWxsIG90aGVyIHBhdHRlcm5zIGFyZSByZXNlcnZl ZC4KKysqKiAgMTUgICAgICAgICAgMCAyCisrKiogIAkJCQkJCQkJCQlPdXRib3VuZCBUcmFu c2FjdGlvbiBRdWV1ZSBCdXN5OgorKyoqICAJCQkJCQkJCQkJICAgIDA9T3V0Ym91bmQgVHJh bnNhY3Rpb24gUXVldWUgRW1wdHkKKysqKiAgCQkJCQkJCQkJCSAgICAxPU91dGJvdW5kIFRy YW5zYWN0aW9uIFF1ZXVlIEJ1c3kKKysqKiAgMTQgICAgICAgICAgMCAyCisrKiogIAkJCQkJ CQkJCQlJbmJvdW5kIFRyYW5zYWN0aW9uIFF1ZXVlIEJ1c3k6CisrKiogIAkJCQkJCQkJCQkg ICAgMD1JbmJvdW5kIFRyYW5zYWN0aW9uIFF1ZXVlIEVtcHR5CisrKiogIAkJCQkJCQkJCQkg ICAgMT1JbmJvdW5kIFRyYW5zYWN0aW9uIFF1ZXVlIEJ1c3kKKysqKiAgMTMgICAgICAgICAg MCAyICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkLgorKyoqICAxMiAgICAgICAg ICAwIDIKKysqKiAgCQkJCQkJCQkJCURpc2NhcmQgVGltZXIgVmFsdWUgLSBUaGlzIGJpdCBj b250cm9scyB0aGUgdGltZS1vdXQgdmFsdWUgZm9yIHRoZSBmb3VyIGRpc2NhcmQgdGltZXJz IGF0dGFjaGVkIHRvIHRoZSBxdWV1ZXMgaG9sZGluZyByZWFkIGRhdGEuIAorKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQSB2 YWx1ZSBvZiAwIGluZGljYXRlcyB0aGUgdGltZS1vdXQgdmFsdWUgaXMgMiAxNSBjbG9ja3Mu IAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQSB2YWx1ZSBvZiAxIGluZGljYXRlcyB0aGUgdGltZS1vdXQgdmFsdWUgaXMg MiAxMCBjbG9ja3MuCisrKiogIDExICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAg ICAgICBSZXNlcnZlZC4KKysqKiAgMTAgICAgICBWYXJpZXMgd2l0aAorKyoqICAJCQkJCQkJ CQkJZXh0ZXJuYWwgc3RhdGUKKysqKiAgCQkJCQkJCQkJCW9mIE02NkVOCisrKiogIAkJCQkJ CQkJCQlkdXJpbmcKKysqKiAgCQkJCQkJCQkJCVBfUlNUIworKyoqICAJCQkJCQkJCQkJQnVz IE9wZXJhdGluZyBhdCA2NiBNSHogLSBXaGVuIHNldCwgdGhlIGludGVyZmFjZSBoYXMgYmVl biBpbml0aWFsaXplZCB0byBmdW5jdGlvbiBhdCA2NiBNSHogaW4KKysqKiAgCQkJCQkJCQkJ CUNvbnZlbnRpb25hbCBQQ0kgbW9kZSBieSB0aGUgYXNzZXJ0aW9uIG9mIE02NkVOIGR1cmlu ZyBidXMgaW5pdGlhbGl6YXRpb24uIFdoZW4gY2xlYXIsIHRoZSBpbnRlcmZhY2UKKysqKiAg CQkJCQkJCQkJCWhhcyBiZWVuIGluaXRpYWxpemVkIGFzIGEgMzMgTUh6IGJ1cy4KKysqKiAg CQkJCQkJCQkJCU5PVEU6IFdoZW4gUENTUiBiaXRzIDE3OjE2IGFyZSBub3QgZXF1YWwgdG8g emVybywgdGhlbiB0aGlzIGJpdCBpcyBtZWFuaW5nbGVzcyBzaW5jZSB0aGUgODAzMzEgaXMK KysqKiAgCQkJCQkJCQkJCW9wZXJhdGluZyBpbiBQQ0ktWCBtb2RlLgorKyoqICAwOSAgICAg ICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKiAgMDggICAg ICBWYXJpZXMgd2l0aAorKyoqICAJCQkJCQkJCQkJZXh0ZXJuYWwgc3RhdGUKKysqKiAgCQkJ CQkJCQkJCW9mIFJFUTY0IworKyoqICAJCQkJCQkJCQkJZHVyaW5nCisrKiogIAkJCQkJCQkJ CQlQX1JTVCMKKysqKiAgCQkJCQkJCQkJCVBDSSBCdXMgNjQtQml0IENhcGFibGUgLSBXaGVu IGNsZWFyLCB0aGUgUENJIGJ1cyBpbnRlcmZhY2UgaGFzIGJlZW4gY29uZmlndXJlZCBhcyA2 NC1iaXQgY2FwYWJsZSBieQorKyoqICAJCQkJCQkJCQkJdGhlIGFzc2VydGlvbiBvZiBSRVE2 NCMgb24gdGhlIHJpc2luZyBlZGdlIG9mIFBfUlNUIy4gV2hlbiBzZXQsIHRoZSBQQ0kgaW50 ZXJmYWNlIGlzIGNvbmZpZ3VyZWQgYXMKKysqKiAgCQkJCQkJCQkJCTMyLWJpdCBvbmx5Lgor KyoqICAwNzowNiAgICAgIDAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQu CisrKiogIDA1ICAgICAgICAgMCAyICAgCQkJCQkJUmVzZXQgSW50ZXJuYWwgQnVzIC0gVGhp cyBiaXQgY29udHJvbHMgdGhlIHJlc2V0IG9mIHRoZSBJbnRlbCBYU2NhbGUgY29yZSBhbmQg YWxsIHVuaXRzIG9uIHRoZSBpbnRlcm5hbAorKyoqICAJCQkJCQkJCQkJCQkJYnVzLiBJbiBh ZGRpdGlvbiB0byB0aGUgaW50ZXJuYWwgYnVzIGluaXRpYWxpemF0aW9uLCB0aGlzIGJpdCB0 cmlnZ2VycyB0aGUgYXNzZXJ0aW9uIG9mIHRoZSBNX1JTVCMgcGluIGZvcgorKyoqICAJCQkJ CQkJCQkJCQkJaW5pdGlhbGl6YXRpb24gb2YgcmVnaXN0ZXJlZCBESU1Ncy4gV2hlbiBzZXQ6 CisrKiogIAkJCQkJCQkJCQkJCQlXaGVuIG9wZXJhdGluZyBpbiB0aGUgY29udmVudGlvbmFs IFBDSSBtb2RlOgorKyoqICAJCQkJCQkJCQkJCQkJoUUgQWxsIGN1cnJlbnQgUENJIHRyYW5z YWN0aW9ucyBiZWluZyBtYXN0ZXJlZCBieSB0aGUgQVRVIGNvbXBsZXRlcywgYW5kIHRoZSBB VFUgbWFzdGVyIGludGVyZmFjZXMKKysqKiAgCQkJCQkJCQkJCQkJCXByb2NlZWRzIHRvIGFu IGlkbGUgc3RhdGUuIE5vIGFkZGl0aW9uYWwgdHJhbnNhY3Rpb25zIGlzIG1hc3RlcmVkIGJ5 IHRoZXNlIHVuaXRzIHVudGlsIHRoZSBpbnRlcm5hbCBidXMKKysqKiAgCQkJCQkJCQkJCQkJ CXJlc2V0IGlzIGNvbXBsZXRlLgorKyoqICAJCQkJCQkJCQkJCQkJoUUgQWxsIGN1cnJlbnQg dHJhbnNhY3Rpb25zIGJlaW5nIHNsYXZlZCBieSB0aGUgQVRVIG9uIGVpdGhlciB0aGUgUENJ IGJ1cyBvciB0aGUgaW50ZXJuYWwgYnVzCisrKiogIAkJCQkJCQkJCQkJCQljb21wbGV0ZXMs IGFuZCB0aGUgQVRVIHRhcmdldCBpbnRlcmZhY2VzIHByb2NlZWRzIHRvIGFuIGlkbGUgc3Rh dGUuIEFsbCBmdXR1cmUgc2xhdmUgdHJhbnNhY3Rpb25zCisrKiogIAkJCQkJCQkJCQkJCQlt YXN0ZXIgYWJvcnRzLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhlIGNvbXBsZXRpb24gY3lj bGUgZm9yIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHNldCB0aGUgUmVzZXQKKysqKiAgCQkJCQkJ CQkJCQkJCUludGVybmFsIEJ1cyBiaXQgaW4gdGhlIFBDU1IuCisrKiogIAkJCQkJCQkJCQkJ CQmhRSBXaGVuIHRoZSB2YWx1ZSBvZiB0aGUgQ29yZSBQcm9jZXNzb3IgUmVzZXQgYml0IGlu IHRoZSBQQ1NSICh1cG9uIFBfUlNUIyBhc3NlcnRpb24pIGlzIHNldCwgdGhlCisrKiogIAkJ CQkJCQkJCQkJCQlJbnRlbCBYU2NhbGUgY29yZSBpcyBoZWxkIGluIHJlc2V0IHdoZW4gdGhl IGludGVybmFsIGJ1cyByZXNldCBpcyBjb21wbGV0ZS4KKysqKiAgCQkJCQkJCQkJCQkJCaFF IFRoZSBBVFUgaWdub3JlcyBjb25maWd1cmF0aW9uIGN5Y2xlcywgYW5kIHRoZXkgYXBwZWFy cyBhcyBtYXN0ZXIgYWJvcnRzIGZvcjogMzIgSW50ZXJuYWwgQnVzIGNsb2Nrcy4KKysqKiAg CQkJCQkJCQkJCQkJCaFFIFRoZSA4MDMzMSBoYXJkd2FyZSBjbGVhcnMgdGhpcyBiaXQgYWZ0 ZXIgdGhlIHJlc2V0IG9wZXJhdGlvbiBjb21wbGV0ZXMuCisrKiogIAkJCQkJCQkJCQkJCQlX aGVuIG9wZXJhdGluZyBpbiB0aGUgUENJLVggbW9kZToKKysqKiAgCQkJCQkJCQkJCQkJCVRo ZSBBVFUgaGFyZHdhcmUgcmVzcG9uZHMgdGhlIHNhbWUgYXMgaW4gQ29udmVudGlvbmFsIFBD SS1YIG1vZGUuIEhvd2V2ZXIsIHRoaXMgbWF5IGNyZWF0ZSBhCisrKiogIAkJCQkJCQkJCQkJ CQlwcm9ibGVtIGluIFBDSS1YIG1vZGUgZm9yIHNwbGl0IHJlcXVlc3RzIGluIHRoYXQgdGhl cmUgbWF5IHN0aWxsIGJlIGFuIG91dHN0YW5kaW5nIHNwbGl0IGNvbXBsZXRpb24gdGhhdCB0 aGUKKysqKiAgCQkJCQkJCQkJCQkJCUFUVSBpcyBlaXRoZXIgd2FpdGluZyB0byByZWNlaXZl IChPdXRib3VuZCBSZXF1ZXN0KSBvciBpbml0aWF0ZSAoSW5ib3VuZCBSZWFkIFJlcXVlc3Qp LiBGb3IgYSBjbGVhbmVyCisrKiogIAkJCQkJCQkJCQkJCQlpbnRlcm5hbCBidXMgcmVzZXQs IGhvc3Qgc29mdHdhcmUgY2FuIHRha2UgdGhlIGZvbGxvd2luZyBzdGVwcyBwcmlvciB0byBh c3NlcnRpbmcgUmVzZXQgSW50ZXJuYWwgYnVzOgorKyoqICAJCQkJCQkJCQkJCQkJMS4gQ2xl YXIgdGhlIEJ1cyBNYXN0ZXIgKGJpdCAyIG9mIHRoZSBBVFVDTUQpIGFuZCB0aGUgTWVtb3J5 IEVuYWJsZSAoYml0IDEgb2YgdGhlIEFUVUNNRCkgYml0cyBpbgorKyoqICAJCQkJCQkJCQkJ CQkJdGhlIEFUVUNNRC4gVGhpcyBlbnN1cmVzIHRoYXQgbm8gbmV3IHRyYW5zYWN0aW9ucywg ZWl0aGVyIG91dGJvdW5kIG9yIGluYm91bmQgYXJlIGVucXVldWVkLgorKyoqICAJCQkJCQkJ CQkJCQkJMi4gV2FpdCBmb3IgYm90aCB0aGUgT3V0Ym91bmQgKGJpdCAxNSBvZiB0aGUgUENT UikgYW5kIEluYm91bmQgUmVhZCAoYml0IDE0IG9mIHRoZSBQQ1NSKSBUcmFuc2FjdGlvbgor KyoqICAJCQkJCQkJCQkJCQkJcXVldWUgYnVzeSBiaXRzIHRvIGJlIGNsZWFyLgorKyoqICAJ CQkJCQkJCQkJCQkJMy4gU2V0IHRoZSBSZXNldCBJbnRlcm5hbCBCdXMgYml0CisrKiogIAkJ CQkJCQkJCQkJCQlBcyBhIHJlc3VsdCwgdGhlIEFUVSBoYXJkd2FyZSByZXNldHMgdGhlIGlu dGVybmFsIGJ1cyB1c2luZyB0aGUgc2FtZSBsb2dpYyBhcyBpbiBjb252ZW50aW9uYWwgbW9k ZSwKKysqKiAgCQkJCQkJCQkJCQkJCWhvd2V2ZXIgdGhlIHVzZXIgaXMgbm93IGFzc3VyZWQg dGhhdCB0aGUgQVRVIG5vIGxvbmdlciBoYXMgYW55IHBlbmRpbmcgaW5ib3VuZCBvciBvdXRi b3VuZCBzcGxpdAorKyoqICAJCQkJCQkJCQkJCQkJY29tcGxldGlvbiB0cmFuc2FjdGlvbnMu CisrKiogIAkJCQkJCQkJCQkJCQlOT1RFOiBTaW5jZSB0aGUgUmVzZXQgSW50ZXJuYWwgQnVz IGJpdCBpcyBzZXQgdXNpbmcgYW4gaW5ib3VuZCBjb25maWd1cmF0aW9uIGN5Y2xlLCB0aGUg dXNlciBpcworKyoqICAJCQkJCQkJCQkJCQkJZ3VhcmFudGVlZCB0aGF0IGFueSBwcmlvciBj b25maWd1cmF0aW9uIGN5Y2xlcyBoYXZlIHByb3Blcmx5IGNvbXBsZXRlZCBzaW5jZSB0aGVy ZSBpcyBvbmx5IGEgb25lCisrKiogIAkJCQkJCQkJCQkJCQlkZWVwIHRyYW5zYWN0aW9uIHF1 ZXVlIGZvciBjb25maWd1cmF0aW9uIHRyYW5zYWN0aW9uIHJlcXVlc3RzLiBUaGUgQVRVIHNl bmRzIHRoZSBhcHByb3ByaWF0ZQorKyoqICAgIAkJCQkJCQkJCQkJCSAgICBTcGxpdCBXcml0 ZSBDb21wbGV0aW9uIE1lc3NhZ2UgdG8gdGhlIFJlcXVlc3RlciBwcmlvciB0byB0aGUgb25z ZXQgb2YgSW50ZXJuYWwgQnVzIFJlc2V0LgorKyoqICAwNCAgICAgIDAgMgkJCQkJCSAgICAg ICAgQnVzIE1hc3RlciBJbmRpY2F0b3IgRW5hYmxlOiBQcm92aWRlcyBzb2Z0d2FyZSBjb250 cm9sIGZvciB0aGUgQnVzIE1hc3RlciBJbmRpY2F0b3Igc2lnbmFsIFBfQk1JIHVzZWQKKysq KiAgCQkJCQkJCQkJCQkJCWZvciBleHRlcm5hbCBSQUlESU9TIGxvZ2ljIGNvbnRyb2wgb2Yg cHJpdmF0ZSBkZXZpY2VzLiBPbmx5IHZhbGlkIHdoZW4gb3BlcmF0aW5nIHdpdGggdGhlIGJy aWRnZSBhbmQKKysqKiAgCQkJCQkJCQkJCQkJCWNlbnRyYWwgcmVzb3VyY2UvYXJiaXRlciBk aXNhYmxlZCAoQlJHX0VOID1sb3csIEFSQl9FTj1sb3cpLgorKyoqICAwMwkJVmFyaWVzIHdp dGgKKysqKiAgCQkJCQkJCQkJCQkJCWV4dGVybmFsIHN0YXRlCisrKiogIAkJCQkJCQkJCQkJ CQlvZiBQUklWREVWCisrKiogIAkJCQkJCQkJCQkJCQlkdXJpbmcKKysqKiAgCQkJCQkJCQkJ CQkJCVBfUlNUIworKyoqICAJCQkJCQkJCQkJCQkJUHJpdmF0ZSBEZXZpY2UgRW5hYmxlIC0g VGhpcyBiaXQgaW5kaWNhdGVzIHRoZSBzdGF0ZSBvZiB0aGUgcmVzZXQgc3RyYXAgd2hpY2gg ZW5hYmxlcyB0aGUgcHJpdmF0ZSBkZXZpY2UKKysqKiAgCQkJCQkJCQkJCQkJCWNvbnRyb2wg bWVjaGFuaXNtIHdpdGhpbiB0aGUgUENJLXRvLVBDSSBCcmlkZ2UgU0lTUiBjb25maWd1cmF0 aW9uIHJlZ2lzdGVyLgorKyoqICAJCQkJCQkJCQkJCQkJMD1Qcml2YXRlIERldmljZSBjb250 cm9sIERpc2FibGVkIC0gU0lTUiByZWdpc3RlciBiaXRzIGRlZmF1bHQgdG8gemVybworKyoq ICAJCQkJCQkJCQkJCQkJMT1Qcml2YXRlIERldmljZSBjb250cm9sIEVuYWJsZWQgLSBTSVNS IHJlZ2lzdGVyIGJpdHMgZGVmYXVsdCB0byBvbmUKKysqKgkwMgkJVmFyaWVzIHdpdGgKKysq KiAgCQkJCQkJCQkJCQkJCWV4dGVybmFsIHN0YXRlCisrKiogIAkJCQkJCQkJCQkJCQlvZiBS RVRSWQorKyoqICAJCQkJCQkJCQkJCQkJZHVyaW5nCisrKiogIAkJCQkJCQkJCQkJCQlQX1JT VCMKKysqKiAgCQkJCQkJCQkJCQkJCUNvbmZpZ3VyYXRpb24gQ3ljbGUgUmV0cnkgLSBXaGVu IHRoaXMgYml0IGlzIHNldCwgdGhlIFBDSSBpbnRlcmZhY2Ugb2YgdGhlIDgwMzMxIHJlc3Bv bmRzIHRvIGFsbAorKyoqICAJCQkJCQkJCQkJCQkJY29uZmlndXJhdGlvbiBjeWNsZXMgd2l0 aCBhIFJldHJ5IGNvbmRpdGlvbi4gV2hlbiBjbGVhciwgdGhlIDgwMzMxIHJlc3BvbmRzIHRv IHRoZSBhcHByb3ByaWF0ZQorKyoqICAJCQkJCQkJCQkJCQkJY29uZmlndXJhdGlvbiBjeWNs ZXMuCisrKiogIAkJCQkJCQkJCQkJCQlUaGUgZGVmYXVsdCBjb25kaXRpb24gZm9yIHRoaXMg Yml0IGlzIGJhc2VkIG9uIHRoZSBleHRlcm5hbCBzdGF0ZSBvZiB0aGUgUkVUUlkgcGluIGF0 IHRoZSByaXNpbmcgZWRnZSBvZgorKyoqICAJCQkJCQkJCQkJCQkJUF9SU1QjLiBXaGVuIHRo ZSBleHRlcm5hbCBzdGF0ZSBvZiB0aGUgcGluIGlzIGhpZ2gsIHRoZSBiaXQgaXMgc2V0LiBX aGVuIHRoZSBleHRlcm5hbCBzdGF0ZSBvZiB0aGUgcGluIGlzCisrKiogIAkJCQkJCQkJCQkJ CQlsb3csIHRoZSBiaXQgaXMgY2xlYXJlZC4KKysqKiAgMDEJCVZhcmllcyB3aXRoCisrKiog IAkJCQkJCQkJCQkJCQlleHRlcm5hbCBzdGF0ZQorKyoqICAJCQkJCQkJCQkJCQkJb2YKKysq KiAgCQkJCQkJCQkJCQkJCUNPUkVfUlNUIworKyoqICAJCQkJCQkJCQkJCQkJZHVyaW5nCisr KiogIAkJCQkJCQkJCQkJCQlQX1JTVCMKKysqKiAgCQkJCQkJCQkJCQkJCUNvcmUgUHJvY2Vz c29yIFJlc2V0IC0gVGhpcyBiaXQgaXMgc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlIGJ5IHRo ZSBoYXJkd2FyZSB3aGVuIGVpdGhlciBQX1JTVCMgaXMKKysqKiAgCQkJCQkJCQkJCQkJCWFz c2VydGVkIG9yIHRoZSBSZXNldCBJbnRlcm5hbCBCdXMgYml0IGluIFBDU1IgaXMgc2V0LiBX aGVuIHRoaXMgYml0IGlzIHNldCwgdGhlIEludGVsIFhTY2FsZSBjb3JlIGlzCisrKiogIAkJ CQkJCQkJCQkJCQliZWluZyBoZWxkIGluIHJlc2V0LiBTb2Z0d2FyZSBjYW5ub3Qgc2V0IHRo aXMgYml0LiBTb2Z0d2FyZSBpcyByZXF1aXJlZCB0byBjbGVhciB0aGlzIGJpdCB0byBkZWFz c2VydCBJbnRlbCAKKysqKiAgCQkJCQkJCQkJCQkJCVhTY2FsZSAgY29yZSByZXNldC4KKysq KiAgCQkJCQkJCQkJCQkJCVRoZSBkZWZhdWx0IGNvbmRpdGlvbiBmb3IgdGhpcyBiaXQgaXMg YmFzZWQgb24gdGhlIGV4dGVybmFsIHN0YXRlIG9mIHRoZSBDT1JFX1JTVCMgcGluIGF0IHRo ZSByaXNpbmcgZWRnZQorKyoqICAJCQkJCQkJCQkJCQkJb2YgUF9SU1QjLiBXaGVuIHRoZSBl eHRlcm5hbCBzdGF0ZSBvZiB0aGUgcGluIGlzIGxvdywgdGhlIGJpdCBpcyBzZXQuIFdoZW4g dGhlIGV4dGVybmFsIHN0YXRlIG9mIHRoZSBwaW4gaXMKKysqKiAgCQkJCQkJCQkJCQkJCWhp Z2gsIHRoZSBiaXQgaXMgY2xlYXIuCisrKiogIDAwCQlWYXJpZXMgd2l0aAorKyoqICAJCQkJ CQkJCQkJCQkJZXh0ZXJuYWwgc3RhdGUKKysqKiAgCQkJCQkJCQkJCQkJCW9mIFBSSVZNRU0K KysqKiAgCQkJCQkJCQkJCQkJCWR1cmluZworKyoqICAJCQkJCQkJCQkJCQkJUF9SU1QjCisr KiogIAkJCQkJCQkJCQkJCQlQcml2YXRlIE1lbW9yeSBFbmFibGUgLSBUaGlzIGJpdCBpbmRp Y2F0ZXMgdGhlIHN0YXRlIG9mIHRoZSByZXNldCBzdHJhcCB3aGljaCBlbmFibGVzIHRoZSBw cml2YXRlIGRldmljZQorKyoqICAJCQkJCQkJCQkJCQkJY29udHJvbCBtZWNoYW5pc20gd2l0 aGluIHRoZSBQQ0ktdG8tUENJIEJyaWRnZSBTREVSIGNvbmZpZ3VyYXRpb24gcmVnaXN0ZXIu CisrKiogIAkJCQkJCQkJCQkJCQkwPVByaXZhdGUgTWVtb3J5IGNvbnRyb2wgRGlzYWJsZWQg LSBTREVSIHJlZ2lzdGVyIGJpdCAyIGRlZmF1bHQgdG8gemVybworKyoqICAJCQkJCQkJCQkJ CQkJMT1Qcml2YXRlIE1lbW9yeSBjb250cm9sIEVuYWJsZWQgLSBTREVSIHJlZ2lzdGVyIGJp dHMgMiBkZWZhdWx0IHRvIG9uZQorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisr Ki8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJX0NPTkZJR1VSQVRJT05fU1RBVFVTX1JFRwkJ ICAgICAgICAgIDB4ODQgICAgLypkd29yZCAweDg3LDB4ODYsMHg4NSwweDg0Ki8KKysvKgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIEFUVSBJbnRlcnJ1cHQgU3Rh dHVzIFJlZ2lzdGVyIC0gQVRVSVNSCisrKiogIAorKyoqICBUaGUgQVRVIEludGVycnVwdCBT dGF0dXMgUmVnaXN0ZXIgaXMgdXNlZCB0byBub3RpZnkgdGhlIGNvcmUgcHJvY2Vzc29yIG9m IHRoZSBzb3VyY2Ugb2YgYW4gQVRVCisrKiogIGludGVycnVwdC4gSW4gYWRkaXRpb24sIHRo aXMgcmVnaXN0ZXIgaXMgd3JpdHRlbiB0byBjbGVhciB0aGUgc291cmNlIG9mIHRoZSBpbnRl cnJ1cHQgdG8gdGhlIGludGVycnVwdCB1bml0CisrKiogIG9mIHRoZSA4MDMzMS4gQWxsIGJp dHMgaW4gdGhpcyByZWdpc3RlciBhcmUgUmVhZC9DbGVhci4KKysqKiAgQml0cyA0OjAgYXJl IGEgZGlyZWN0IHJlZmxlY3Rpb24gb2YgYml0cyAxNDoxMSBhbmQgYml0IDggKHJlc3BlY3Rp dmVseSkgb2YgdGhlIEFUVSBTdGF0dXMgUmVnaXN0ZXIKKysqKiAgKHRoZXNlIGJpdHMgYXJl IHNldCBhdCB0aGUgc2FtZSB0aW1lIGJ5IGhhcmR3YXJlIGJ1dCBuZWVkIHRvIGJlIGNsZWFy ZWQgaW5kZXBlbmRlbnRseSkuIEJpdCA3IGlzIHNldAorKyoqICBieSBhbiBlcnJvciBhc3Nv Y2lhdGVkIHdpdGggdGhlIGludGVybmFsIGJ1cyBvZiB0aGUgODAzMzEuIEJpdCA4IGlzIGZv ciBzb2Z0d2FyZSBCSVNULiBUaGUKKysqKiAgY29uZGl0aW9ucyB0aGF0IHJlc3VsdCBpbiBh biBBVFUgaW50ZXJydXB0IGFyZSBjbGVhcmVkIGJ5IHdyaXRpbmcgYSAxIHRvIHRoZSBhcHBy b3ByaWF0ZSBiaXRzIGluIHRoaXMKKysqKiAgcmVnaXN0ZXIuCisrKiogIE5vdGU6IEJpdHMg NDowLCBhbmQgYml0cyAxNSBhbmQgMTM6NyBjYW4gcmVzdWx0IGluIGFuIGludGVycnVwdCBi ZWluZyBkcml2ZW4gdG8gdGhlIEludGVsIFhTY2FsZSBjb3JlLgorKyoqICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3Jp cHRpb24KKysqKiAgMzE6MTggICAgICAwMDAwSCAgICAgICAgICAgICAgICAgICAgICAgIFJl c2VydmVkCisrKiogIDE3ICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBW UEQgQWRkcmVzcyBSZWdpc3RlciBVcGRhdGVkIC0gVGhpcyBiaXQgaXMgc2V0IHdoZW4gYSBQ Q0kgYnVzIGNvbmZpZ3VyYXRpb24gd3JpdGUgb2NjdXJzIHRvIHRoZSBWUERBUgorKyoqICAJ CQkJCQkJCQkJCQkJCXJlZ2lzdGVyLiBDb25maWd1cmF0aW9uIHJlZ2lzdGVyIHdyaXRlcyB0 byB0aGUgVlBEQVIgZG9lcyBOT1QgcmVzdWx0IGluIGJpdCAxNSBhbHNvIGJlaW5nIHNldC4g V2hlbiBzZXQsCisrKiogIAkJCQkJCQkJCQkJCQkJdGhpcyBiaXQgcmVzdWx0cyBpbiB0aGUg YXNzZXJ0aW9uIG9mIHRoZSBBVFUgQ29uZmlndXJlIFJlZ2lzdGVyIFdyaXRlIEludGVycnVw dC4KKysqKiAgMTYgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2Vy dmVkCisrKiogIDE1ICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBBVFUg Q29uZmlndXJhdGlvbiBXcml0ZSAtIFRoaXMgYml0IGlzIHNldCB3aGVuIGEgUENJIGJ1cyBj b25maWd1cmF0aW9uIHdyaXRlIG9jY3VycyB0byBhbnkgQVRVIHJlZ2lzdGVyLgorKyoqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdoZW4gc2V0LCB0aGlzIGJpdCByZXN1bHRzIGluIHRoZSBhc3NlcnRpb24gb2YgdGhlIEFU VSBDb25maWd1cmUgUmVnaXN0ZXIgV3JpdGUgSW50ZXJydXB0LgorKyoqICAxNCAgICAgICAg ICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgQVRVIEluYm91bmQgTWVtb3J5IFdpbmRv dyAxIEJhc2UgVXBkYXRlZCAtIFRoaXMgYml0IGlzIHNldCB3aGVuIGEgUENJIGJ1cyBjb25m aWd1cmF0aW9uIHdyaXRlCisrKiogIAkJCQkJCQkJCQkJCQkJb2NjdXJzIHRvIGVpdGhlciB0 aGUgSUFCQVIxIHJlZ2lzdGVyIG9yIHRoZSBJQVVCQVIxIHJlZ2lzdGVyLiBDb25maWd1cmF0 aW9uIHJlZ2lzdGVyIHdyaXRlcyB0byB0aGVzZQorKyoqICAJCQkJCQkJCQkJCQkJCXJlZ2lz dGVycyBkZW9zIE5PVCByZXN1bHQgaW4gYml0IDE1IGFsc28gYmVpbmcgc2V0LiBXaGVuIHNl dCwgdGhpcyBiaXQgcmVzdWx0cyBpbiB0aGUgYXNzZXJ0aW9uIG9mIHRoZSBBVFUKKysqKiAg CQkJCQkJCQkJCQkJCQlDb25maWd1cmUgUmVnaXN0ZXIgV3JpdGUgSW50ZXJydXB0LgorKyoq ICAxMyAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgSW5pdGlhdGVkIFNw bGl0IENvbXBsZXRpb24gRXJyb3IgTWVzc2FnZSAtIFRoaXMgYml0IGlzIHNldCB3aGVuIHRo ZSBkZXZpY2UgaW5pdGlhdGVzIGEgU3BsaXQgQ29tcGxldGlvbgorKyoqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1lc3NhZ2Ug b24gdGhlIFBDSSBCdXMgd2l0aCB0aGUgU3BsaXQgQ29tcGxldGlvbiBFcnJvciBhdHRyaWJ1 dGUgYml0IHNldC4KKysqKiAgMTIgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAg ICAgIFJlY2VpdmVkIFNwbGl0IENvbXBsZXRpb24gRXJyb3IgTWVzc2FnZSAtIFRoaXMgYml0 IGlzIHNldCB3aGVuIHRoZSBkZXZpY2UgcmVjZWl2ZXMgYSBTcGxpdCBDb21wbGV0aW9uCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTWVzc2FnZSBmcm9tIHRoZSBQQ0kgQnVzIHdpdGggdGhlIFNwbGl0IENvbXBsZXRp b24gRXJyb3IgYXR0cmlidXRlIGJpdCBzZXQuCisrKiogIDExICAgICAgICAgIDAgMiAgICAg ICAgICAgICAgICAgICAgICAgICBQb3dlciBTdGF0ZSBUcmFuc2l0aW9uIC0gV2hlbiB0aGUg UG93ZXIgU3RhdGUgRmllbGQgb2YgdGhlIEFUVSBQb3dlciBNYW5hZ2VtZW50IENvbnRyb2wv U3RhdHVzCisrKiogIAkJCQkJCQkJCQkJCQkJUmVnaXN0ZXIgaXMgd3JpdHRlbiB0byB0cmFu c2l0aW9uIHRoZSBBVFUgZnVuY3Rpb24gUG93ZXIgU3RhdGUgZnJvbSBEMCB0byBEMywgRDAg dG8gRDEsIG9yIEQzIHRvIEQwIGFuZAorKyoqICAJCQkJCQkJCQkJCQkJCXRoZSBBVFUgUG93 ZXIgU3RhdGUgVHJhbnNpdGlvbiBJbnRlcnJ1cHQgbWFzayBiaXQgaXMgY2xlYXJlZCwgdGhp cyBiaXQgaXMgc2V0LgorKyoqICAxMCAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAg ICAgICAgUF9TRVJSIyBBc3NlcnRlZCAtIHNldCB3aGVuIFBfU0VSUiMgaXMgYXNzZXJ0ZWQg b24gdGhlIFBDSSBidXMgYnkgdGhlIEFUVS4KKysqKiAgMDkgICAgICAgICAgMCAyICAgICAg ICAgICAgICAgICAgICAgICAgIERldGVjdGVkIFBhcml0eSBFcnJvciAtIHNldCB3aGVuIGEg cGFyaXR5IGVycm9yIGlzIGRldGVjdGVkIG9uIHRoZSBQQ0kgYnVzIGV2ZW4gd2hlbiB0aGUg QVRVQ01ECisrKiogIAkJCQkJCQkJCQkJCQkJcmVnaXN0ZXKhpnMgUGFyaXR5IEVycm9yIFJl c3BvbnNlIGJpdCBpcyBjbGVhcmVkLiBTZXQgdW5kZXIgdGhlIGZvbGxvd2luZyBjb25kaXRp b25zOgorKyoqICAJCQkJCQkJCQkJCQkJCaFFIFdyaXRlIERhdGEgUGFyaXR5IEVycm9yIHdo ZW4gdGhlIEFUVSBpcyBhIHRhcmdldCAoaW5ib3VuZCB3cml0ZSkuCisrKiogIAkJCQkJCQkJ CQkJCQkJoUUgUmVhZCBEYXRhIFBhcml0eSBFcnJvciB3aGVuIHRoZSBBVFUgaXMgYW4gaW5p dGlhdG9yIChvdXRib3VuZCByZWFkKS4KKysqKiAgCQkJCQkJCQkJCQkJCQmhRSBBbnkgQWRk cmVzcyBvciBBdHRyaWJ1dGUgKFBDSS1YIE9ubHkpIFBhcml0eSBFcnJvciBvbiB0aGUgQnVz LgorKyoqICAwOCAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgQVRVIEJJ U1QgSW50ZXJydXB0IC0gV2hlbiBzZXQsIGdlbmVyYXRlcyB0aGUgQVRVIEJJU1QgU3RhcnQg SW50ZXJydXB0IGFuZCBpbmRpY2F0ZXMgdGhlIGhvc3QgcHJvY2Vzc29yCisrKiogIAkJCQkJ CQkJCQkJCQkJaGFzIHNldCB0aGUgU3RhcnQgQklTVCBiaXQgKEFUVUJJU1RSIHJlZ2lzdGVy IGJpdCA2KSwgd2hlbiB0aGUgQVRVIEJJU1QgaW50ZXJydXB0IGlzIGVuYWJsZWQgKEFUVUNS CisrKiogIAkJCQkJCQkJCQkJCQkJcmVnaXN0ZXIgYml0IDMpLiBUaGUgSW50ZWwgWFNjYWxl IGNvcmUgY2FuIGluaXRpYXRlIHRoZSBzb2Z0d2FyZSBCSVNUIGFuZCBzdG9yZSB0aGUgcmVz dWx0IGluIEFUVUJJU1RSCisrKiogIAkJCQkJCQkJCQkJCQkJcmVnaXN0ZXIgYml0cyAzOjAu CisrKiogIAkJCQkJCQkJCQkJCQkJQ29uZmlndXJhdGlvbiByZWdpc3RlciB3cml0ZXMgdG8g dGhlIEFUVUJJU1RSIGRvZXMgTk9UIHJlc3VsdCBpbiBiaXQgMTUgYWxzbyBiZWluZyBzZXQg b3IgdGhlIGFzc2VydGlvbgorKyoqICAJCQkJCQkJCQkJCQkJCW9mIHRoZSBBVFUgQ29uZmln dXJlIFJlZ2lzdGVyIFdyaXRlIEludGVycnVwdC4KKysqKiAgMDcgICAgICAgICAgMCAyICAg ICAgICAgICAgICAgICAgICAgICAgIEludGVybmFsIEJ1cyBNYXN0ZXIgQWJvcnQgLSBzZXQg d2hlbiBhIHRyYW5zYWN0aW9uIGluaXRpYXRlZCBieSB0aGUgQVRVIGludGVybmFsIGJ1cyBp bml0aWF0b3IgaW50ZXJmYWNlIGVuZHMgaW4gYSBNYXN0ZXItYWJvcnQuCisrKiogIDA2OjA1 ICAgICAgMDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZC4KKysqKiAgMDQg ICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIFBfU0VSUiMgRGV0ZWN0ZWQg LSBzZXQgd2hlbiBQX1NFUlIjIGlzIGRldGVjdGVkIG9uIHRoZSBQQ0kgYnVzIGJ5IHRoZSBB VFUuCisrKiogIDAzICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBQQ0kg TWFzdGVyIEFib3J0IC0gc2V0IHdoZW4gYSB0cmFuc2FjdGlvbiBpbml0aWF0ZWQgYnkgdGhl IEFUVSBQQ0kgaW5pdGlhdG9yIGludGVyZmFjZSBlbmRzIGluIGEgTWFzdGVyLWFib3J0Lgor KyoqICAwMiAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgUENJIFRhcmdl dCBBYm9ydCAobWFzdGVyKSAtIHNldCB3aGVuIGEgdHJhbnNhY3Rpb24gaW5pdGlhdGVkIGJ5 IHRoZSBBVFUgUENJIG1hc3RlciBpbnRlcmZhY2UgZW5kcyBpbiBhIFRhcmdldC1hYm9ydC4K KysqKiAgMDEgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIFBDSSBUYXJn ZXQgQWJvcnQgKHRhcmdldCkgLSBzZXQgd2hlbiB0aGUgQVRVIGludGVyZmFjZSwgYWN0aW5n IGFzIGEgdGFyZ2V0LCB0ZXJtaW5hdGVzIHRoZSB0cmFuc2FjdGlvbiBvbiB0aGUgUENJIGJ1 cyB3aXRoIGEgdGFyZ2V0IGFib3J0LgorKyoqICAwMCAgICAgICAgICAwIDIgICAgICAgICAg ICAgICAgICAgICAgICAgUENJIE1hc3RlciBQYXJpdHkgRXJyb3IgLSBNYXN0ZXIgUGFyaXR5 IEVycm9yIC0gVGhlIEFUVSBpbnRlcmZhY2Ugc2V0cyB0aGlzIGJpdCB1bmRlciB0aGUgZm9s bG93aW5nCisrKiogIAkJCQkJCQkJCQkJCQkJY29uZGl0aW9uczoKKysqKiAgCQkJCQkJCQkJ CQkJCQmhRSBUaGUgQVRVIGFzc2VydGVkIFBFUlIjIGl0c2VsZiBvciB0aGUgQVRVIG9ic2Vy dmVkIFBFUlIjIGFzc2VydGVkLgorKyoqICAJCQkJCQkJCQkJCQkJCaFFIEFuZCB0aGUgQVRV IGFjdGVkIGFzIHRoZSByZXF1ZXN0ZXIgZm9yIHRoZSBvcGVyYXRpb24gaW4gd2hpY2ggdGhl IGVycm9yIG9jY3VycmVkLgorKyoqICAJCQkJCQkJCQkJCQkJCaFFIEFuZCB0aGUgQVRVQ01E IHJlZ2lzdGVyoaZzIFBhcml0eSBFcnJvciBSZXNwb25zZSBiaXQgaXMgc2V0CisrKiogIAkJ CQkJCQkJCQkJCQkJoUUgT3IgKFBDSS1YIE1vZGUgT25seSkgdGhlIEFUVSByZWNlaXZlZCBh IFdyaXRlIERhdGEgUGFyaXR5IEVycm9yIE1lc3NhZ2UKKysqKiAgCQkJCQkJCQkJCQkJCQmh RSBBbmQgdGhlIEFUVUNNRCByZWdpc3RlcqGmcyBQYXJpdHkgRXJyb3IgUmVzcG9uc2UgYml0 IGlzIHNldAorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5l ICAgICBBUkNNU1JfQVRVX0lOVEVSUlVQVF9TVEFUVVNfUkVHCQkgICAgICAgICAgMHg4OCAg ICAvKmR3b3JkIDB4OEIsMHg4QSwweDg5LDB4ODgqLworKy8qCisrKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKysqKiAgQVRVIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyIC0gQVRV SU1SCisrKiogIAorKyoqICBUaGUgQVRVIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyIGNvbnRh aW5zIHRoZSBjb250cm9sIGJpdCB0byBlbmFibGUgYW5kIGRpc2FibGUgaW50ZXJydXB0cwor KyoqICBnZW5lcmF0ZWQgYnkgdGhlIEFUVS4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0 ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiog IDMxOjE1ICAgICAwIDAwMDBIICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoq ICAxNCAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgICAgVlBEIEFkZHJlc3Mg UmVnaXN0ZXIgVXBkYXRlZCBNYXNrIC0gQ29udHJvbHMgdGhlIHNldHRpbmcgb2YgYml0IDE3 IG9mIHRoZSBBVFVJU1IgYW5kIGdlbmVyYXRpb24gb2YgdGhlCisrKiogIAkJCQkJCQkJCQlB VFUgQ29uZmlndXJhdGlvbiBSZWdpc3RlciBXcml0ZSBpbnRlcnJ1cHQgd2hlbiBhIFBDSSBi dXMgd3JpdGUgb2NjdXJzIHRvIHRoZSBWUERBUiByZWdpc3Rlci4KKysqKiAgCQkJCQkJCQkJ CTA9Tm90IE1hc2tlZAorKyoqICAJCQkJCQkJCQkJMT1NYXNrZWQKKysqKiAgMTMgICAgICAg IDAgMiAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisrKiogIDEyICAgICAg ICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIFJlZ2lzdGVy IFdyaXRlIE1hc2sgLSBDb250cm9scyB0aGUgc2V0dGluZyBvZiBiaXQgMTUgb2YgdGhlIEFU VUlTUiBhbmQgZ2VuZXJhdGlvbiBvZiB0aGUKKysqKiAgCQkJCQkJCQkJCUFUVSBDb25maWd1 cmF0aW9uIFJlZ2lzdGVyIFdyaXRlIGludGVycnVwdCB3aGVuIGEgUENJIGJ1cyB3cml0ZSBv Y2N1cnMgdG8gYW55IEFUVSBjb25maWd1cmF0aW9uIHJlZ2lzdGVyCisrKiogIAkJCQkJCQkJ CQlleGNlcHQgdGhvc2UgY292ZXJlZCBieSBtYXNrIGJpdCAxMSBhbmQgYml0IDE0IG9mIHRo aXMgcmVnaXN0ZXIsIGFuZCBBVFUgQklTVCBlbmFibGUgYml0IDMgb2YgdGhlIEFUVUNSLgor KyoqICAJCQkJCQkJCQkJMD1Ob3QgTWFza2VkCisrKiogIAkJCQkJCQkJCQkxPU1hc2tlZAor KyoqICAxMSAgICAgICAgMSAyICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRVIEluYm91 bmQgTWVtb3J5IFdpbmRvdyAxIEJhc2UgVXBkYXRlZCBNYXNrIC0gQ29udHJvbHMgdGhlIHNl dHRpbmcgb2YgYml0IDE0IG9mIHRoZSBBVFVJU1IgYW5kCisrKiogIAkJCQkJCQkJCQkJCQkJ Z2VuZXJhdGlvbiBvZiB0aGUgQVRVIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgV3JpdGUgaW50 ZXJydXB0IHdoZW4gYSBQQ0kgYnVzIHdyaXRlIG9jY3VycyB0byBlaXRoZXIgdGhlCisrKiog IAkJCQkJCQkJCQkJCQkJSUFCQVIxIHJlZ2lzdGVyIG9yIHRoZSBJQVVCQVIxIHJlZ2lzdGVy LgorKyoqICAJCQkJCQkJCQkJCQkJCTA9Tm90IE1hc2tlZAorKyoqICAJCQkJCQkJCQkJCQkJ CTE9TWFza2VkCisrKiogIDEwICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAg ICBJbml0aWF0ZWQgU3BsaXQgQ29tcGxldGlvbiBFcnJvciBNZXNzYWdlIEludGVycnVwdCBN YXNrIC0gQ29udHJvbHMgdGhlIHNldHRpbmcgb2YgYml0IDEzIG9mIHRoZSBBVFVJU1IgYW5k CisrKiogIAkJCQkJCQkJCQkJCQkJZ2VuZXJhdGlvbiBvZiB0aGUgQVRVIEVycm9yIGludGVy cnVwdCB3aGVuIHRoZSBBVFUgaW5pdGlhdGVzIGEgU3BsaXQgQ29tcGxldGlvbiBFcnJvciBN ZXNzYWdlLgorKyoqICAJCQkJCQkJCQkJCQkJCTA9Tm90IE1hc2tlZAorKyoqICAJCQkJCQkJ CQkJCQkJCTE9TWFza2VkCisrKiogIDA5ICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAg ICAgICAgICBSZWNlaXZlZCBTcGxpdCBDb21wbGV0aW9uIEVycm9yIE1lc3NhZ2UgSW50ZXJy dXB0IE1hc2stIENvbnRyb2xzIHRoZSBzZXR0aW5nIG9mIGJpdCAxMiBvZiB0aGUgQVRVSVNS CisrKiogIAkJCQkJCQkJCQkJCQkJYW5kIGdlbmVyYXRpb24gb2YgdGhlIEFUVSBFcnJvciBp bnRlcnJ1cHQgd2hlbiBhIFNwbGl0IENvbXBsZXRpb24gRXJyb3IgTWVzc2FnZSByZXN1bHRz IGluIGJpdCAyOSBvZiB0aGUKKysqKiAgCQkJCQkJCQkJCQkJCQlQQ0lYU1IgYmVpbmcgc2V0 LgorKyoqICAJCQkJCQkJCQkJCQkJCTA9Tm90IE1hc2tlZAorKyoqICAJCQkJCQkJCQkJCQkJ CTE9TWFza2VkCisrKiogIDA4ICAgICAgICAxIDIgICAgICAgICAgICAgICAgICAgICAgICAg ICBQb3dlciBTdGF0ZSBUcmFuc2l0aW9uIEludGVycnVwdCBNYXNrIC0gQ29udHJvbHMgdGhl IHNldHRpbmcgb2YgYml0IDEyIG9mIHRoZSBBVFVJU1IgYW5kIGdlbmVyYXRpb24gb2YgdGhl CisrKiogIAkJCQkJCQkJCQkJCQkJQVRVIEVycm9yIGludGVycnVwdCB3aGVuIEFUVSBQb3dl ciBNYW5hZ2VtZW50IENvbnRyb2wvU3RhdHVzIFJlZ2lzdGVyIGlzIHdyaXR0ZW4gdG8gdHJh bnNpdGlvbiB0aGUKKysqKiAgCQkJCQkJCQkJCQkJCQlBVFUgRnVuY3Rpb24gUG93ZXIgU3Rh dGUgZnJvbSBEMCB0byBEMywgRDAgdG8gRDEsIEQxIHRvIEQzIG9yIEQzIHRvIEQwLgorKyoq ICAJCQkJCQkJCQkJCQkJCTA9Tm90IE1hc2tlZAorKyoqICAJCQkJCQkJCQkJCQkJCTE9TWFz a2VkCisrKiogIDA3ICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgICBBVFUg RGV0ZWN0ZWQgUGFyaXR5IEVycm9yIEludGVycnVwdCBNYXNrIC0gQ29udHJvbHMgdGhlIHNl dHRpbmcgb2YgYml0IDkgb2YgdGhlIEFUVUlTUiBhbmQgZ2VuZXJhdGlvbiBvZgorKyoqICAJ CQkJCQkJCQkJCQkJCXRoZSBBVFUgRXJyb3IgaW50ZXJydXB0IHdoZW4gYSBwYXJpdHkgZXJy b3IgZGV0ZWN0ZWQgb24gdGhlIFBDSSBidXMgdGhhdCBzZXRzIGJpdCAxNSBvZiB0aGUgQVRV U1IuCisrKiogIAkJCQkJCQkJCQkJCQkJMD1Ob3QgTWFza2VkCisrKiogIAkJCQkJCQkJCQkJ CQkJMT1NYXNrZWQKKysqKiAgMDYgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFUVSBTRVJSIyBBc3NlcnRlZCBJbnRlcnJ1cHQgTWFzayAtIENvbnRyb2xzIHRoZSBz ZXR0aW5nIG9mIGJpdCAxMCBvZiB0aGUgQVRVSVNSIGFuZCBnZW5lcmF0aW9uIG9mIHRoZQor KyoqICAJCQkJCQkJCQkJCQkJCUFUVSBFcnJvciBpbnRlcnJ1cHQgd2hlbiBTRVJSIyBpcyBh c3NlcnRlZCBvbiB0aGUgUENJIGludGVyZmFjZSByZXN1bHRpbmcgaW4gYml0IDE0IG9mIHRo ZSBBVFVTUiBiZWluZyBzZXQuCisrKiogIAkJCQkJCQkJCQkJCQkJMD1Ob3QgTWFza2VkCisr KiogIAkJCQkJCQkJCQkJCQkJMT1NYXNrZWQKKysqKiAgCQkJCQkJCQkJCQkJCQlOT1RFOiBU aGlzIGJpdCBpcyBzcGVjaWZpYyB0byB0aGUgQVRVIGFzc2VydGluZyBTRVJSIyBhbmQgbm90 IGRldGVjdGluZyBTRVJSIyBmcm9tIGFub3RoZXIgbWFzdGVyLgorKyoqICAwNSAgICAgICAg MCAyICAgICAgICAgICAgICAgICAgICAgICAgICAgQVRVIFBDSSBNYXN0ZXIgQWJvcnQgSW50 ZXJydXB0IE1hc2sgLSBDb250cm9scyB0aGUgc2V0dGluZyBvZiBiaXQgMyBvZiB0aGUgQVRV SVNSIGFuZCBnZW5lcmF0aW9uIG9mIHRoZQorKyoqICAJCQkJCQkJCQkJCQkJCUFUVSBFcnJv ciBpbnRlcnJ1cHQgd2hlbiBhIG1hc3RlciBhYm9ydCBlcnJvciByZXN1bHRpbmcgaW4gYml0 IDEzIG9mIHRoZSBBVFVTUiBiZWluZyBzZXQuCisrKiogIAkJCQkJCQkJCQkJCQkJMD1Ob3Qg TWFza2VkCisrKiogIAkJCQkJCQkJCQkJCQkJMT1NYXNrZWQKKysqKiAgMDQgICAgICAgIDAg MiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUVSBQQ0kgVGFyZ2V0IEFib3J0IChNYXN0 ZXIpIEludGVycnVwdCBNYXNrLSBDb250cm9scyB0aGUgc2V0dGluZyBvZiBiaXQgMTIgb2Yg dGhlIEFUVUlTUiBhbmQgQVRVIEVycm9yCisrKiogIAkJCQkJCQkJCQkJCQkJZ2VuZXJhdGlv biBvZiB0aGUgaW50ZXJydXB0IHdoZW4gYSB0YXJnZXQgYWJvcnQgZXJyb3IgcmVzdWx0aW5n IGluIGJpdCAxMiBvZiB0aGUgQVRVU1IgYmVpbmcgc2V0CisrKiogIAkJCQkJCQkJCQkJCQkJ MD1Ob3QgTWFza2VkCisrKiogIAkJCQkJCQkJCQkJCQkJMT1NYXNrZWQKKysqKiAgMDMgICAg ICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUVSBQQ0kgVGFyZ2V0IEFib3J0 IChUYXJnZXQpIEludGVycnVwdCBNYXNrLSBDb250cm9scyB0aGUgc2V0dGluZyBvZiBiaXQg MSBvZiB0aGUgQVRVSVNSIGFuZCBnZW5lcmF0aW9uCisrKiogIAkJCQkJCQkJCQkJCQkJb2Yg dGhlIEFUVSBFcnJvciBpbnRlcnJ1cHQgd2hlbiBhIHRhcmdldCBhYm9ydCBlcnJvciByZXN1 bHRpbmcgaW4gYml0IDExIG9mIHRoZSBBVFVTUiBiZWluZyBzZXQuCisrKiogIAkJCQkJCQkJ CQkJCQkJMD1Ob3QgTWFza2VkCisrKiogIAkJCQkJCQkJCQkJCQkJMT1NYXNrZWQKKysqKiAg MDIgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICAgIEFUVSBQQ0kgTWFzdGVy IFBhcml0eSBFcnJvciBJbnRlcnJ1cHQgTWFzayAtIENvbnRyb2xzIHRoZSBzZXR0aW5nIG9m IGJpdCAwIG9mIHRoZSBBVFVJU1IgYW5kIGdlbmVyYXRpb24KKysqKiAgCQkJCQkJCQkJCQkJ CQlvZiB0aGUgQVRVIEVycm9yIGludGVycnVwdCB3aGVuIGEgcGFyaXR5IGVycm9yIHJlc3Vs dGluZyBpbiBiaXQgOCBvZiB0aGUgQVRVU1IgYmVpbmcgc2V0LgorKyoqICAJCQkJCQkJCQkJ CQkJCTA9Tm90IE1hc2tlZAorKyoqICAJCQkJCQkJCQkJCQkJCTE9TWFza2VkCisrKiogIDAx ICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgICBBVFUgSW5ib3VuZCBFcnJv ciBTRVJSIyBFbmFibGUgLSBDb250cm9scyB3aGVuIHRoZSBBVFUgYXNzZXJ0cyAod2hlbiBl bmFibGVkIHRocm91Z2ggdGhlCisrKiogIAkJCQkJCQkJCQkJCQkJQVRVQ01EKSBTRVJSIyBv biB0aGUgUENJIGludGVyZmFjZSBpbiByZXNwb25zZSB0byBhIG1hc3RlciBhYm9ydCBvbiB0 aGUgaW50ZXJuYWwgYnVzIGR1cmluZyBhbgorKyoqICAJCQkJCQkJCQkJCQkJCWluYm91bmQg d3JpdGUgdHJhbnNhY3Rpb24uCisrKiogIAkJCQkJCQkJCQkJCQkJMD1TRVJSIyBOb3QgQXNz ZXJ0ZWQgZHVlIHRvIGVycm9yCisrKiogIAkJCQkJCQkJCQkJCQkJMT1TRVJSIyBBc3NlcnRl ZCBkdWUgdG8gZXJyb3IKKysqKiAgMDAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAg ICAgICAgIEFUVSBFQ0MgVGFyZ2V0IEFib3J0IEVuYWJsZSAtIENvbnRyb2xzIHRoZSBBVFUg cmVzcG9uc2Ugb24gdGhlIFBDSSBpbnRlcmZhY2UgdG8gYSB0YXJnZXQgYWJvcnQgKEVDQwor KyoqICAJCQkJCQkJCQkJCQkJCWVycm9yKSBmcm9tIHRoZSBtZW1vcnkgY29udHJvbGxlciBv biB0aGUgaW50ZXJuYWwgYnVzLiBJbiBjb252ZW50aW9uYWwgbW9kZSwgdGhpcyBhY3Rpb24g b25seSBvY2N1cnMKKysqKiAgCQkJCQkJCQkJCQkJCQlkdXJpbmcgYW4gaW5ib3VuZCByZWFk IHRyYW5zYWN0aW9uIHdoZXJlIHRoZSBkYXRhIHBoYXNlIHRoYXQgd2FzIHRhcmdldCBhYm9y dGVkIG9uIHRoZSBpbnRlcm5hbCBidXMgaXMKKysqKiAgCQkJCQkJCQkJCQkJCQlhY3R1YWxs eSByZXF1ZXN0ZWQgZnJvbSB0aGUgaW5ib3VuZCByZWFkIHF1ZXVlLgorKyoqICAJCQkJCQkJ CQkJCQkJCTA9RGlzY29ubmVjdCB3aXRoIGRhdGEgKHRoZSBkYXRhIGJlaW5nIHVwIHRvIDY0 IGJpdHMgb2YgMaGmcykKKysqKiAgCQkJCQkJCQkJCQkJCQkxPVRhcmdldCBBYm9ydAorKyoq ICAJCQkJCQkJCQkJCQkJCU5PVEU6IEluIFBDSS1YIE1vZGUsIFRoZSBBVFUgaW5pdGlhdGVz IGEgU3BsaXQgQ29tcGxldGlvbiBFcnJvciBNZXNzYWdlICh3aXRoIG1lc3NhZ2UgY2xhc3M9 MmggLQorKyoqICAJCQkJCQkJCQkJCQkJCWNvbXBsZXRlciBlcnJvciBhbmQgbWVzc2FnZSBp bmRleD04MWggLSA4MDMzMSBpbnRlcm5hbCBidXMgdGFyZ2V0IGFib3J0KSBvbiB0aGUgUENJ IGJ1cywKKysqKiAgCQkJCQkJCQkJCQkJCQlpbmRlcGVuZGVudCBvZiB0aGUgc2V0dGluZyBv ZiB0aGlzIGJpdC4KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiAKKysqLworKyNk ZWZpbmUgICAgIEFSQ01TUl9BVFVfSU5URVJSVVBUX01BU0tfUkVHCQkgICAgICAgICAgMHg4 QyAgICAvKmR3b3JkIDB4OEYsMHg4RSwweDhELDB4OEMqLworKy8qCisrKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKysqKiAgSW5ib3VuZCBBVFUgQmFzZSBBZGRyZXNzIFJlZ2lz dGVyIDMgLSBJQUJBUjMKKysqKiAgCisrKiogIC4gVGhlIEluYm91bmQgQVRVIEJhc2UgQWRk cmVzcyBSZWdpc3RlciAzIChJQUJBUjMpIHRvZ2V0aGVyIHdpdGggdGhlIEluYm91bmQgQVRV IFVwcGVyIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAzIChJQVVCQVIzKSBkZWZpbmVzIHRoZSBi bG9jayBvZiBtZW1vcnkgYWRkcmVzc2VzIHdoZXJlIHRoZSBpbmJvdW5kIHRyYW5zbGF0aW9u IHdpbmRvdyAzIGJlZ2lucy4gCisrKiogIC4gVGhlIGluYm91bmQgQVRVIGRlY29kZXMgYW5k IGZvcndhcmRzIHRoZSBidXMgcmVxdWVzdCB0byB0aGUgODAzMzEgaW50ZXJuYWwgYnVzIHdp dGggYSB0cmFuc2xhdGVkIGFkZHJlc3MgdG8gbWFwIGludG8gODAzMzEgbG9jYWwgbWVtb3J5 LiAKKysqKiAgLiBUaGUgSUFCQVIzIGFuZCBJQVVCQVIzIGRlZmluZSB0aGUgYmFzZSBhZGRy ZXNzIGFuZCBkZXNjcmliZXMgdGhlIHJlcXVpcmVkIG1lbW9yeSBibG9jayBzaXplLgorKyoq ICAuIEJpdHMgMzEgdGhyb3VnaCAxMiBvZiB0aGUgSUFCQVIzIGlzIGVpdGhlciByZWFkL3dy aXRlIGJpdHMgb3IgcmVhZCBvbmx5IHdpdGggYSB2YWx1ZSBvZiAwIGRlcGVuZGluZyBvbiB0 aGUgdmFsdWUgbG9jYXRlZCB3aXRoaW4gdGhlIElBTFIzLiAKKysqKiAgICBUaGUgcHJvZ3Jh bW1lZCB2YWx1ZSB3aXRoaW4gdGhlIGJhc2UgYWRkcmVzcyByZWdpc3RlciBtdXN0IGNvbXBs eSB3aXRoIHRoZSBQQ0kgcHJvZ3JhbW1pbmcgcmVxdWlyZW1lbnRzIGZvciBhZGRyZXNzIGFs aWdubWVudC4gCisrKiogIE5vdGU6IAorKyoqICAgICAgU2luY2UgSUFCQVIzIGRvZXMgbm90 IGFwcGVhciBpbiB0aGUgc3RhbmRhcmQgUENJIGNvbmZpZ3VyYXRpb24gaGVhZGVyIHNwYWNl IChvZmZzZXRzIDAwSCAtIDNDSCksIAorKyoqICAgICAgSUFCQVIzIGlzIG5vdCBjb25maWd1 cmVkIGJ5IHRoZSBob3N0IGR1cmluZyBub3JtYWwgc3lzdGVtIGluaXRpYWxpemF0aW9uLgor KyoqICBXYXJuaW5nOiAKKysqKiAgICBXaGVuIGEgbm9uLXplcm8gdmFsdWUgaXMgbm90IHdy aXR0ZW4gdG8gSUFMUjMsIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgdXNl ciBzaG91bGQgbm90IHNldCBlaXRoZXIgdGhlIFByZWZldGNoYWJsZSBJbmRpY2F0b3IgCisr KiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBvciB0aGUgVHlwZSAgICAgICAgIEluZGljYXRvciBmb3IgNjQgYml0IGFkZHJlc3NhYmls aXR5LgorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIHRoZSBkZWZhdWx0 IGZvciBJQUJBUjMuIAorKyoqICBBc3N1bWluZyBhIG5vbi16ZXJvIHZhbHVlIGlzIHdyaXR0 ZW4gdG8gSUFMUjMsCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSB1c2VyIG1h eSBzZXQgdGhlIFByZWZldGNoYWJsZSBJbmRpY2F0b3IgCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgb3IgdGhlIFR5cGUgICAgICAgICBJbmRpY2F0b3I6 CisrKiogIAkJCQkJCWEuIFNpbmNlIG5vbiBwcmVmZXRjaGFibGUgbWVtb3J5IHdpbmRvd3Mg Y2FuIG5ldmVyIGJlIHBsYWNlZCBhYm92ZSB0aGUgNCBHYnl0ZSBhZGRyZXNzIGJvdW5kYXJ5 LAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGVuIHRoZSBQcmVmZXRjaGFi bGUgSW5kaWNhdG9yIGlzIG5vdCBzZXQsIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGUgdXNlciBzaG91bGQgYWxzbyBsZWF2ZSB0aGUgVHlwZSBJbmRpY2F0b3Igc2V0 IGZvciAzMiBiaXQgYWRkcmVzc2FiaWxpdHkuCisrKiogICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFRoaXMgaXMgdGhlIGRlZmF1bHQgZm9yIElBQkFSMy4KKysqKiAgCQkJCQkJYi4g d2hlbiB0aGUgUHJlZmV0Y2hhYmxlIEluZGljYXRvciBpcyBzZXQsIAorKyoqICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aGUgdXNlciBzaG91bGQgYWxzbyBzZXQgdGhlIFR5cGUg SW5kaWNhdG9yIGZvciA2NCBiaXQgYWRkcmVzc2FiaWxpdHkuCisrKiogIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlw dGlvbgorKyoqICAzMToxMiAgICAgMDAwMDBIICAgICAgICAgICAgICAgICAgICAgICAgVHJh bnNsYXRpb24gQmFzZSBBZGRyZXNzIDMgLSBUaGVzZSBiaXRzIGRlZmluZSB0aGUgYWN0dWFs IGxvY2F0aW9uIHRoZSB0cmFuc2xhdGlvbiBmdW5jdGlvbiBpcyB0byByZXNwb25kIHRvIHdo ZW4gYWRkcmVzc2VkIGZyb20gdGhlIFBDSSBidXMuCisrKiogIDExOjA0ICAgICAgICAwMEgg ICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZC4KKysqKiAgMDMgICAgICAgICAgIDAg MiAgICAgICAgICAgICAgICAgICAgICAgIFByZWZldGNoYWJsZSBJbmRpY2F0b3IgLSBXaGVu IHNldCwgZGVmaW5lcyB0aGUgbWVtb3J5IHNwYWNlIGFzIHByZWZldGNoYWJsZS4KKysqKiAg MDI6MDEgICAgICAgMDAgMiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgSW5kaWNhdG9y IC0gRGVmaW5lcyB0aGUgd2lkdGggb2YgdGhlIGFkZHJlc3NhYmlsaXR5IGZvciB0aGlzIG1l bW9yeSB3aW5kb3c6CisrKiogIAkJCQkJCQkJCQkJCTAwIC0gTWVtb3J5IFdpbmRvdyBpcyBs b2NhdGFibGUgYW55d2hlcmUgaW4gMzIgYml0IGFkZHJlc3Mgc3BhY2UKKysqKiAgCQkJCQkJ CQkJCQkJMTAgLSBNZW1vcnkgV2luZG93IGlzIGxvY2F0YWJsZSBhbnl3aGVyZSBpbiA2NCBi aXQgYWRkcmVzcyBzcGFjZQorKyoqICAwMCAgICAgICAgICAgMCAyICAgICAgICAgICAgICAg ICAgICAgICAgTWVtb3J5IFNwYWNlIEluZGljYXRvciAtIFRoaXMgYml0IGZpZWxkIGRlc2Ny aWJlcyBtZW1vcnkgb3IgSS9PIHNwYWNlIGJhc2UgYWRkcmVzcy4KKysqKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBUaGUgQVRVIGRvZXMgbm90IG9jY3VweSBJL08gc3BhY2UsIAorKyoqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHRodXMgdGhpcyBiaXQgbXVzdCBiZSB6ZXJvLgorKyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfSU5CT1VORF9BVFVfQkFTRV9BRERS RVNTM19SRUcJCSAgICAgICAgICAweDkwICAgIC8qZHdvcmQgMHg5MywweDkyLDB4OTEsMHg5 MCovCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBJbmJvdW5k IEFUVSBVcHBlciBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgMyAtIElBVUJBUjMKKysqKiAgCisr KiogIFRoaXMgcmVnaXN0ZXIgY29udGFpbnMgdGhlIHVwcGVyIGJhc2UgYWRkcmVzcyB3aGVu IGRlY29kaW5nIFBDSSBhZGRyZXNzZXMgYmV5b25kIDQgR0J5dGVzLgorKyoqICBUb2dldGhl ciB3aXRoIHRoZSBUcmFuc2xhdGlvbiBCYXNlIEFkZHJlc3MgdGhpcyByZWdpc3RlciBkZWZp bmVzIHRoZSBhY3R1YWwgbG9jYXRpb24gdGhlIHRyYW5zbGF0aW9uIGZ1bmN0aW9uIGlzIHRv IHJlc3BvbmQgdG8gd2hlbiBhZGRyZXNzZWQgZnJvbSB0aGUgUENJIGJ1cyBmb3IgYWRkcmVz c2VzID4gNEdCeXRlcyAoZm9yIERBQ3MpLgorKyoqICBUaGUgcHJvZ3JhbW1lZCB2YWx1ZSB3 aXRoaW4gdGhlIGJhc2UgYWRkcmVzcyByZWdpc3RlciBtdXN0IGNvbXBseSB3aXRoIHRoZSBQ Q0kgcHJvZ3JhbW1pbmcKKysqKiAgcmVxdWlyZW1lbnRzIGZvciBhZGRyZXNzIGFsaWdubWVu dC4KKysqKiAgTm90ZTogCisrKiogICAgICBXaGVuIHRoZSBUeXBlIGluZGljYXRvciBvZiBJ QUJBUjMgaXMgc2V0IHRvIGluZGljYXRlIDMyIGJpdCBhZGRyZXNzYWJpbGl0eSwgCisrKiog ICAgICB0aGUgSUFVQkFSMyByZWdpc3RlciBhdHRyaWJ1dGVzIGFyZSByZWFkLW9ubHkuIAor KyoqICAgICAgVGhpcyBpcyB0aGUgZGVmYXVsdCBmb3IgSUFCQVIzLgorKyoqICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVz Y3JpcHRpb24KKysqKiAgMzE6MCAgICAgIDAwMDAwSCAgICAgICAgICAgICAgICAgICAgICAg IFRyYW5zbGF0aW9uIFVwcGVyIEJhc2UgQWRkcmVzcyAzIC0gVG9nZXRoZXIgd2l0aCB0aGUg VHJhbnNsYXRpb24gQmFzZSBBZGRyZXNzIDMgdGhlc2UgYml0cyBkZWZpbmUgdGhlIGFjdHVh bCBsb2NhdGlvbiB0aGUgdHJhbnNsYXRpb24gZnVuY3Rpb24gaXMgdG8gcmVzcG9uZCB0byB3 aGVuIGFkZHJlc3NlZCBmcm9tIHRoZSBQQ0kgYnVzIGZvciBhZGRyZXNzZXMgPiA0R0J5dGVz LgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBB UkNNU1JfSU5CT1VORF9BVFVfVVBQRVJfQkFTRV9BRERSRVNTM19SRUcJCSAgICAgICAgICAw eDk0ICAgIC8qZHdvcmQgMHg5NywweDk2LDB4OTUsMHg5NCovCisrLyoKKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKyoqICBJbmJvdW5kIEFUVSBMaW1pdCBSZWdpc3RlciAz IC0gSUFMUjMKKysqKiAgCisrKiogIEluYm91bmQgYWRkcmVzcyB0cmFuc2xhdGlvbiBmb3Ig bWVtb3J5IHdpbmRvdyAzIG9jY3VycyBmb3IgZGF0YSB0cmFuc2ZlcnMgb2NjdXJyaW5nIGZy b20gdGhlIFBDSQorKyoqICBidXMgKG9yaWdpbmF0ZWQgZnJvbSB0aGUgUENJIGJ1cykgdG8g dGhlIDgwMzMxIGludGVybmFsIGJ1cy4gVGhlIGFkZHJlc3MgdHJhbnNsYXRpb24gYmxvY2sg Y29udmVydHMKKysqKiAgUENJIGFkZHJlc3NlcyB0byBpbnRlcm5hbCBidXMgYWRkcmVzc2Vz LgorKyoqICBUaGUgaW5ib3VuZCB0cmFuc2xhdGlvbiBiYXNlIGFkZHJlc3MgZm9yIGluYm91 bmQgd2luZG93IDMgaXMgc3BlY2lmaWVkIGluIFNlY3Rpb24gMy4xMC4xNS4gV2hlbgorKyoq ICBkZXRlcm1pbmluZyBibG9jayBzaXplIHJlcXVpcmVtZW50cyChWCBhcyBkZXNjcmliZWQg aW4gU2VjdGlvbiAzLjEwLjIxIKFYIHRoZSB0cmFuc2xhdGlvbiBsaW1pdAorKyoqICByZWdp c3RlciBwcm92aWRlcyB0aGUgYmxvY2sgc2l6ZSByZXF1aXJlbWVudHMgZm9yIHRoZSBiYXNl IGFkZHJlc3MgcmVnaXN0ZXIuIFRoZSByZW1haW5pbmcgcmVnaXN0ZXJzCisrKiogIHVzZWQg Zm9yIHBlcmZvcm1pbmcgYWRkcmVzcyB0cmFuc2xhdGlvbiBhcmUgZGlzY3Vzc2VkIGluIFNl Y3Rpb24gMy4yLjEuMS4KKysqKiAgVGhlIDgwMzMxIHRyYW5zbGF0ZSB2YWx1ZSByZWdpc3Rl cqGmcyBwcm9ncmFtbWVkIHZhbHVlIG11c3QgYmUgbmF0dXJhbGx5IGFsaWduZWQgd2l0aCB0 aGUgYmFzZQorKyoqICBhZGRyZXNzIHJlZ2lzdGVyoaZzIHByb2dyYW1tZWQgdmFsdWUuIFRo ZSBsaW1pdCByZWdpc3RlciBpcyB1c2VkIGFzIGEgbWFzazsgdGh1cywgdGhlIGxvd2VyIGFk ZHJlc3MKKysqKiAgYml0cyBwcm9ncmFtbWVkIGludG8gdGhlIDgwMzMxIHRyYW5zbGF0ZSB2 YWx1ZSByZWdpc3RlciBhcmUgaW52YWxpZC4gUmVmZXIgdG8gdGhlIFBDSSBMb2NhbCBCdXMK KysqKiAgU3BlY2lmaWNhdGlvbiwgUmV2aXNpb24gMi4zIGZvciBhZGRpdGlvbmFsIGluZm9y bWF0aW9uIG9uIHByb2dyYW1taW5nIGJhc2UgYWRkcmVzcyByZWdpc3RlcnMuCisrKiogIEJp dHMgMzEgdG8gMTIgd2l0aGluIHRoZSBJQUxSMyBoYXZlIGEgZGlyZWN0IGVmZmVjdCBvbiB0 aGUgSUFCQVIzIHJlZ2lzdGVyLCBiaXRzIDMxIHRvIDEyLCB3aXRoIGEKKysqKiAgb25lIHRv IG9uZSBjb3JyZXNwb25kZW5jZS4gQSB2YWx1ZSBvZiAwIGluIGEgYml0IHdpdGhpbiB0aGUg SUFMUjMgbWFrZXMgdGhlIGNvcnJlc3BvbmRpbmcgYml0CisrKiogIHdpdGhpbiB0aGUgSUFC QVIzIGEgcmVhZCBvbmx5IGJpdCB3aGljaCBhbHdheXMgcmV0dXJucyAwLiBBIHZhbHVlIG9m IDEgaW4gYSBiaXQgd2l0aGluIHRoZSBJQUxSMworKyoqICBtYWtlcyB0aGUgY29ycmVzcG9u ZGluZyBiaXQgd2l0aGluIHRoZSBJQUJBUjMgcmVhZC93cml0ZSBmcm9tIFBDSS4gTm90ZSB0 aGF0IGEgY29uc2VxdWVuY2Ugb2YKKysqKiAgdGhpcyBwcm9ncmFtbWluZyBzY2hlbWUgaXMg dGhhdCB1bmxlc3MgYSB2YWxpZCB2YWx1ZSBleGlzdHMgd2l0aGluIHRoZSBJQUxSMywgYWxs IHdyaXRlcyB0byB0aGUKKysqKiAgSUFCQVIzIGhhcyBubyBlZmZlY3Qgc2luY2UgYSB2YWx1 ZSBvZiBhbGwgemVyb3Mgd2l0aGluIHRoZSBJQUxSMyBtYWtlcyB0aGUgSUFCQVIzIGEgcmVh ZCBvbmx5CisrKiogIHJlZ2lzdGVyLgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAg ICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMzE6 MTIgICAgIDAwMDAwSCAgICAgICAgICAgICAgICAgICAgICAgIEluYm91bmQgVHJhbnNsYXRp b24gTGltaXQgMyAtIFRoaXMgcmVhZGJhY2sgdmFsdWUgZGV0ZXJtaW5lcyB0aGUgbWVtb3J5 IGJsb2NrIHNpemUgcmVxdWlyZWQgZm9yIHRoZSBBVFVzIG1lbW9yeSB3aW5kb3cgMy4KKysq KiAgMTE6MDAgICAgICAgMDAwSCAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01T Ul9JTkJPVU5EX0FUVV9MSU1JVDNfUkVHCQkgICAgICAgICAgMHg5OCAgICAvKmR3b3JkIDB4 OUIsMHg5QSwweDk5LDB4OTgqLworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKysqKiAgSW5ib3VuZCBBVFUgVHJhbnNsYXRlIFZhbHVlIFJlZ2lzdGVyIDMgLSBJQVRW UjMKKysqKiAgCisrKiogIFRoZSBJbmJvdW5kIEFUVSBUcmFuc2xhdGUgVmFsdWUgUmVnaXN0 ZXIgMyAoSUFUVlIzKSBjb250YWlucyB0aGUgaW50ZXJuYWwgYnVzIGFkZHJlc3MgdXNlZCB0 bworKyoqICBjb252ZXJ0IFBDSSBidXMgYWRkcmVzc2VzLiBUaGUgY29udmVydGVkIGFkZHJl c3MgaXMgZHJpdmVuIG9uIHRoZSBpbnRlcm5hbCBidXMgYXMgYSByZXN1bHQgb2YgdGhlCisr KiogIGluYm91bmQgQVRVIGFkZHJlc3MgdHJhbnNsYXRpb24uCisrKiogIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlw dGlvbgorKyoqICAzMToxMiAgICAgMDAwMDBIICAgICAgICAgICAgICAgICAgICAgICAgSW5i b3VuZCBBVFUgVHJhbnNsYXRpb24gVmFsdWUgMyAtIFRoaXMgdmFsdWUgaXMgdXNlZCB0byBj b252ZXJ0IHRoZSBQQ0kgYWRkcmVzcyB0byBpbnRlcm5hbCBidXMgYWRkcmVzc2VzLiAKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUaGlzIHZhbHVlIG11c3QgYmUgNjQtYml0IGFsaWduZWQgb24gdGhlIGludGVybmFs IGJ1cy4gVGhlIGRlZmF1bHQgYWRkcmVzcyBhbGxvd3MgdGhlIEFUVSB0bworKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFj Y2VzcyB0aGUgaW50ZXJuYWwgODAzMzEgbWVtb3J5LW1hcHBlZCByZWdpc3RlcnMuCisrKiog IDExOjAwICAgICAgIDAwMEggICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1Jf SU5CT1VORF9BVFVfVFJBTlNMQVRFX1ZBTFVFM19SRUcJCSAgICAgICAgICAweDlDICAgIC8q ZHdvcmQgMHg5RiwweDlFLDB4OUQsMHg5QyovCisrLyoKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqICBPdXRib3VuZCBDb25maWd1cmF0aW9uIEN5Y2xlIEFkZHJlc3Mg UmVnaXN0ZXIgLSBPQ0NBUgorKyoqICAKKysqKiAgVGhlIE91dGJvdW5kIENvbmZpZ3VyYXRp b24gQ3ljbGUgQWRkcmVzcyBSZWdpc3RlciBpcyB1c2VkIHRvIGhvbGQgdGhlIDMyLWJpdCBQ Q0kgY29uZmlndXJhdGlvbgorKyoqICBjeWNsZSBhZGRyZXNzLiBUaGUgSW50ZWwgWFNjYWxl IGNvcmUgd3JpdGVzIHRoZSBQQ0kgY29uZmlndXJhdGlvbiBjeWNsZXMgYWRkcmVzcyB3aGlj aCB0aGVuCisrKiogIGVuYWJsZXMgdGhlIG91dGJvdW5kIGNvbmZpZ3VyYXRpb24gcmVhZCBv ciB3cml0ZS4gVGhlIEludGVsIFhTY2FsZSBjb3JlIHRoZW4gcGVyZm9ybXMgYSByZWFkIG9y CisrKiogIHdyaXRlIHRvIHRoZSBPdXRib3VuZCBDb25maWd1cmF0aW9uIEN5Y2xlIERhdGEg UmVnaXN0ZXIgdG8gaW5pdGlhdGUgdGhlIGNvbmZpZ3VyYXRpb24gY3ljbGUgb24gdGhlCisr KiogIFBDSSBidXMuCisrKiogIE5vdGU6IEJpdHMgMTU6MTEgb2YgdGhlIGNvbmZpZ3VyYXRp b24gY3ljbGUgYWRkcmVzcyBmb3IgVHlwZSAwIGNvbmZpZ3VyYXRpb24gY3ljbGVzIGFyZSBk ZWZpbmVkIGRpZmZlcmVudGx5CisrKiogIGZvciBDb252ZW50aW9uYWwgdmVyc3VzIFBDSS1Y IG1vZGVzLiBXaGVuIDgwMzMxIHNvZnR3YXJlIHByb2dyYW1zIHRoZSBPQ0NBUiB0byBpbml0 aWF0ZSBhCisrKiogIFR5cGUgMCBjb25maWd1cmF0aW9uIGN5Y2xlLCB0aGUgT0NDQVIgc2hv dWxkIGFsd2F5cyBiZSBsb2FkZWQgYmFzZWQgb24gdGhlIFBDSS1YIGRlZmluaXRpb24gZm9y CisrKiogIHRoZSBUeXBlIDAgY29uZmlndXJhdGlvbiBjeWNsZSBhZGRyZXNzLiBXaGVuIG9w ZXJhdGluZyBpbiBDb252ZW50aW9uYWwgbW9kZSwgdGhlIDgwMzMxIGNsZWFycworKyoqICBi aXRzIDE1OjExIG9mIHRoZSBPQ0NBUiBwcmlvciB0byBpbml0aWF0aW5nIGFuIG91dGJvdW5k IFR5cGUgMCBjb25maWd1cmF0aW9uIGN5Y2xlLiBTZWUgdGhlIFBDSS1YCisrKiogIEFkZGVu ZHVtIHRvIHRoZSBQQ0kgTG9jYWwgQnVzIFNwZWNpZmljYXRpb24sIFJldmlzaW9uIDEuMGEg Zm9yIGRldGFpbHMgb24gdGhlIHR3byBmb3JtYXRzLgorKyoqICAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoq ICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24K KysqKiAgMzE6MDAgICAgMDAwMCAwMDAwSCAgICAgICAgICAgICAgICAgICAgIENvbmZpZ3Vy YXRpb24gQ3ljbGUgQWRkcmVzcyAtIFRoZXNlIGJpdHMgZGVmaW5lIHRoZSAzMi1iaXQgUENJ IGFkZHJlc3MgdXNlZCBkdXJpbmcgYW4gb3V0Ym91bmQgY29uZmlndXJhdGlvbiByZWFkIG9y IHdyaXRlIGN5Y2xlLgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysj ZGVmaW5lICAgICBBUkNNU1JfT1VUQk9VTkRfQ09ORklHVVJBVElPTl9DWUNMRV9BRERSRVNT X1JFRwkJICAgICAgICAgIDB4QTQgICAgLypkd29yZCAweEE3LDB4QTYsMHhBNSwweEE0Ki8K KysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIE91dGJvdW5kIENv bmZpZ3VyYXRpb24gQ3ljbGUgRGF0YSBSZWdpc3RlciAtIE9DQ0RSCisrKiogIAorKyoqICBU aGUgT3V0Ym91bmQgQ29uZmlndXJhdGlvbiBDeWNsZSBEYXRhIFJlZ2lzdGVyIGlzIHVzZWQg dG8gaW5pdGlhdGUgYSBjb25maWd1cmF0aW9uIHJlYWQgb3Igd3JpdGUKKysqKiAgb24gdGhl IFBDSSBidXMuIFRoZSByZWdpc3RlciBpcyBsb2dpY2FsIHJhdGhlciB0aGFuIHBoeXNpY2Fs IG1lYW5pbmcgdGhhdCBpdCBpcyBhbiBhZGRyZXNzIG5vdCBhCisrKiogIHJlZ2lzdGVyLiBU aGUgSW50ZWwgWFNjYWxlIGNvcmUgcmVhZHMgb3Igd3JpdGVzIHRoZSBkYXRhIHJlZ2lzdGVy cyBtZW1vcnktbWFwcGVkIGFkZHJlc3MgdG8KKysqKiAgaW5pdGlhdGUgdGhlIGNvbmZpZ3Vy YXRpb24gY3ljbGUgb24gdGhlIFBDSSBidXMgd2l0aCB0aGUgYWRkcmVzcyBmb3VuZCBpbiB0 aGUgT0NDQVIuIEZvciBhCisrKiogIGNvbmZpZ3VyYXRpb24gd3JpdGUsIHRoZSBkYXRhIGlz IGxhdGNoZWQgZnJvbSB0aGUgaW50ZXJuYWwgYnVzIGFuZCBmb3J3YXJkZWQgZGlyZWN0bHkg dG8gdGhlIE9XUS4KKysqKiAgRm9yIGEgcmVhZCwgdGhlIGRhdGEgaXMgcmV0dXJuZWQgZGly ZWN0bHkgZnJvbSB0aGUgT1JRIHRvIHRoZSBJbnRlbCBYU2NhbGUgY29yZSBhbmQgaXMgbmV2 ZXIKKysqKiAgYWN0dWFsbHkgZW50ZXJlZCBpbnRvIHRoZSBkYXRhIHJlZ2lzdGVyICh3aGlj aCBkb2VzIG5vdCBwaHlzaWNhbGx5IGV4aXN0KS4KKysqKiAgVGhlIE9DQ0RSIGlzIG9ubHkg dmlzaWJsZSBmcm9tIDgwMzMxIGludGVybmFsIGJ1cyBhZGRyZXNzIHNwYWNlIGFuZCBhcHBl YXJzIGFzIGEgcmVzZXJ2ZWQgdmFsdWUKKysqKiAgd2l0aGluIHRoZSBBVFUgY29uZmlndXJh dGlvbiBzcGFjZS4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQg ICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDMxOjAwICAgIDAwMDAg MDAwMEggICAgICAgICAgICAgICAgICAgICBDb25maWd1cmF0aW9uIEN5Y2xlIERhdGEgLSBU aGVzZSBiaXRzIGRlZmluZSB0aGUgZGF0YSB1c2VkIGR1cmluZyBhbiBvdXRib3VuZCBjb25m aWd1cmF0aW9uIHJlYWQgb3Igd3JpdGUgY3ljbGUuCisrKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9PVVRCT1VORF9DT05GSUdVUkFU SU9OX0NZQ0xFX0RBVEFfUkVHCQkgICAgICAgICAgMHhBQyAgICAvKmR3b3JkIDB4QUYsMHhB RSwweEFELDB4QUMqLworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysq KiAgVlBEIENhcGFiaWxpdHkgSWRlbnRpZmllciBSZWdpc3RlciAtIFZQRF9DQVBJRAorKyoq ICAKKysqKiAgVGhlIENhcGFiaWxpdHkgSWRlbnRpZmllciBSZWdpc3RlciBiaXRzIGFkaGVy ZSB0byB0aGUgZGVmaW5pdGlvbnMgaW4gdGhlIFBDSSBMb2NhbCBCdXMgU3BlY2lmaWNhdGlv biwKKysqKiAgUmV2aXNpb24gMi4zLiBUaGlzIHJlZ2lzdGVyIGluIHRoZSBQQ0kgRXh0ZW5k ZWQgQ2FwYWJpbGl0eSBoZWFkZXIgaWRlbnRpZmllcyB0aGUgdHlwZSBvZiBFeHRlbmRlZAor KyoqICBDYXBhYmlsaXR5IGNvbnRhaW5lZCBpbiB0aGF0IGhlYWRlci4gSW4gdGhlIGNhc2Ug b2YgdGhlIDgwMzMxLCB0aGlzIGlzIHRoZSBWUEQgZXh0ZW5kZWQgY2FwYWJpbGl0eQorKyoq ICB3aXRoIGFuIElEIG9mIDAzSCBhcyBkZWZpbmVkIGJ5IHRoZSBQQ0kgTG9jYWwgQnVzIFNw ZWNpZmljYXRpb24sIFJldmlzaW9uIDIuMy4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0 ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiog IDA3OjAwICAgICAgIDAzSCAgICAgICAgICAgICAgICAgICAgICAgICBDYXBfSWQgLSBUaGlz IGZpZWxkIHdpdGggaXRzoaYgMDNIIHZhbHVlIGlkZW50aWZpZXMgdGhpcyBpdGVtIGluIHRo ZSBsaW5rZWQgbGlzdCBvZiBFeHRlbmRlZCBDYXBhYmlsaXR5IEhlYWRlcnMgYXMgYmVpbmcg dGhlIFZQRCBjYXBhYmlsaXR5IHJlZ2lzdGVycy4KKysqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX1ZQRF9DQVBBQklMSVRZX0lERU5U SUZJRVJfUkVHCQkgICAgICAweEI4ICAgIC8qYnl0ZSovCisrLyoKKysqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorKyoqICBWUEQgTmV4dCBJdGVtIFBvaW50ZXIgUmVnaXN0ZXIg LSBWUERfTlhUUAorKyoqICAKKysqKiAgVGhlIE5leHQgSXRlbSBQb2ludGVyIFJlZ2lzdGVy IGJpdHMgYWRoZXJlIHRvIHRoZSBkZWZpbml0aW9ucyBpbiB0aGUgUENJIExvY2FsIEJ1cyBT cGVjaWZpY2F0aW9uLAorKyoqICBSZXZpc2lvbiAyLjMuIFRoaXMgcmVnaXN0ZXIgZGVzY3Jp YmVzIHRoZSBsb2NhdGlvbiBvZiB0aGUgbmV4dCBpdGVtIGluIHRoZSBmdW5jdGlvbqGmcyBj YXBhYmlsaXR5IGxpc3QuCisrKiogIEZvciB0aGUgODAzMzEsIHRoaXMgdGhlIGZpbmFsIGNh cGFiaWxpdHkgbGlzdCwgYW5kIGhlbmNlLCB0aGlzIHJlZ2lzdGVyIGlzIHNldCB0byAwMEgu CisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAwNzowMCAgICAgICAwMEggICAgICAgICAg ICAgICAgICAgICAgICAgTmV4dF8gSXRlbV8gUG9pbnRlciAtIFRoaXMgZmllbGQgcHJvdmlk ZXMgYW4gb2Zmc2V0IGludG8gdGhlIGZ1bmN0aW9uoaZzIGNvbmZpZ3VyYXRpb24gc3BhY2Ug cG9pbnRpbmcgdG8gdGhlCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbmV4dCBpdGVtIGluIHRoZSBmdW5jdGlvbqGmcyBj YXBhYmlsaXR5IGxpc3QuIFNpbmNlIHRoZSBWUEQgY2FwYWJpbGl0aWVzIGFyZSB0aGUgbGFz dCBpbiB0aGUgbGlua2VkIGxpc3Qgb2YKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRlbmRlZCBjYXBhYmlsaXRpZXMg aW4gdGhlIDgwMzMxLCB0aGUgcmVnaXN0ZXIgaXMgc2V0IHRvIDAwSC4KKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX1ZQRF9ORVhU X0lURU1fUFRSX1JFRwkJICAgICAgICAgIDB4QjkgICAgLypieXRlKi8KKysvKgorKyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIFZQRCBBZGRyZXNzIFJlZ2lzdGVyIC0g VlBEX0FSCisrKiogIAorKyoqICBUaGUgVlBEIEFkZHJlc3MgcmVnaXN0ZXIgKFZQREFSKSBj b250YWlucyB0aGUgRFdPUkQtYWxpZ25lZCBieXRlIGFkZHJlc3Mgb2YgdGhlIFZQRCB0byBi ZQorKyoqICBhY2Nlc3NlZC4gVGhlIHJlZ2lzdGVyIGlzIHJlYWQvd3JpdGUgYW5kIHRoZSBp bml0aWFsIHZhbHVlIGF0IHBvd2VyLXVwIGlzIGluZGV0ZXJtaW5hdGUuCisrKiogIEEgUENJ IENvbmZpZ3VyYXRpb24gV3JpdGUgdG8gdGhlIFZQREFSIGludGVycnVwdHMgdGhlIEludGVs IFhTY2FsZSBjb3JlLiBTb2Z0d2FyZSBjYW4gdXNlCisrKiogIHRoZSBGbGFnIHNldHRpbmcg dG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlIGNvbmZpZ3VyYXRpb24gd3JpdGUgd2FzIGludGVu ZGVkIHRvIGluaXRpYXRlIGEgcmVhZCBvcgorKyoqICB3cml0ZSBvZiB0aGUgVlBEIHRocm91 Z2ggdGhlIFZQRCBEYXRhIFJlZ2lzdGVyLgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQg ICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAg MTUgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIEZsYWcgLSBBIGZsYWcg aXMgdXNlZCB0byBpbmRpY2F0ZSB3aGVuIGEgdHJhbnNmZXIgb2YgZGF0YSBiZXR3ZWVuIHRo ZSBWUEQgRGF0YSBSZWdpc3RlciBhbmQgdGhlIHN0b3JhZ2UKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQg aGFzIGNvbXBsZXRlZC4gUGxlYXNlIHNlZSBTZWN0aW9uIDMuOSwgoadWaXRhbCBQcm9kdWN0 IERhdGGhqCBvbiBwYWdlIDIwMSBmb3IgbW9yZSBkZXRhaWxzIG9uCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG93IHRo ZSA4MDMzMSBoYW5kbGVzIHRoZSBkYXRhIHRyYW5zZmVyLgorKyoqICAxNDowICAgICAgIDAw MDBIICAgICAgICAgICAgICAgICAgICAgICAgVlBEIEFkZHJlc3MgLSBUaGlzIHJlZ2lzdGVy IGlzIHdyaXR0ZW4gdG8gc2V0IHRoZSBEV09SRC1hbGlnbmVkIGJ5dGUgYWRkcmVzcyB1c2Vk IHRvIHJlYWQgb3Igd3JpdGUKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBWaXRhbCBQcm9kdWN0IERhdGEgZnJvbSB0aGUg VlBEIHN0b3JhZ2UgY29tcG9uZW50LgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfVlBEX0FERFJFU1NfUkVHCQkgICAgICAgICAg MHhCQSAgICAvKndvcmQgMHhCQiwweEJBKi8KKysvKgorKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqCisrKiogIFZQRCBEYXRhIFJlZ2lzdGVyIC0gVlBEX0RSCisrKiogIAorKyoq ICBUaGlzIHJlZ2lzdGVyIGlzIHVzZWQgdG8gdHJhbnNmZXIgZGF0YSBiZXR3ZWVuIHRoZSA4 MDMzMSBhbmQgdGhlIFZQRCBzdG9yYWdlIGNvbXBvbmVudC4KKysqKiAgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0 aW9uCisrKiogIDMxOjAwICAgICAgMDAwMEggICAgICAgICAgICAgICAgICAgICAgICBWUEQg RGF0YSAtIEZvdXIgYnl0ZXMgYXJlIGFsd2F5cyByZWFkIG9yIHdyaXR0ZW4gdGhyb3VnaCB0 aGlzIHJlZ2lzdGVyIHRvL2Zyb20gdGhlIFZQRCBzdG9yYWdlIGNvbXBvbmVudC4KKysqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX1ZQ RF9EQVRBX1JFRwkJICAgICAgICAgIDB4QkMgICAgLypkd29yZCAweEJGLDB4QkUsMHhCRCww eEJDKi8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIFBvd2Vy IE1hbmFnZW1lbnQgQ2FwYWJpbGl0eSBJZGVudGlmaWVyIFJlZ2lzdGVyIC1QTV9DQVBJRAor KyoqICAKKysqKiAgVGhlIENhcGFiaWxpdHkgSWRlbnRpZmllciBSZWdpc3RlciBiaXRzIGFk aGVyZSB0byB0aGUgZGVmaW5pdGlvbnMgaW4gdGhlIFBDSSBMb2NhbCBCdXMgU3BlY2lmaWNh dGlvbiwKKysqKiAgUmV2aXNpb24gMi4zLiBUaGlzIHJlZ2lzdGVyIGluIHRoZSBQQ0kgRXh0 ZW5kZWQgQ2FwYWJpbGl0eSBoZWFkZXIgaWRlbnRpZmllcyB0aGUgdHlwZSBvZiBFeHRlbmRl ZAorKyoqICBDYXBhYmlsaXR5IGNvbnRhaW5lZCBpbiB0aGF0IGhlYWRlci4gSW4gdGhlIGNh c2Ugb2YgdGhlIDgwMzMxLCB0aGlzIGlzIHRoZSBQQ0kgQnVzIFBvd2VyCisrKiogIE1hbmFn ZW1lbnQgZXh0ZW5kZWQgY2FwYWJpbGl0eSB3aXRoIGFuIElEIG9mIDAxSCBhcyBkZWZpbmVk IGJ5IHRoZSBQQ0kgQnVzIFBvd2VyIE1hbmFnZW1lbnQKKysqKiAgSW50ZXJmYWNlIFNwZWNp ZmljYXRpb24sIFJldmlzaW9uIDEuMS4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAg ICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDA3 OjAwICAgICAgIDAxSCAgICAgICAgICAgICAgICAgICAgICAgICBDYXBfSWQgLSBUaGlzIGZp ZWxkIHdpdGggaXRzoaYgMDFIIHZhbHVlIGlkZW50aWZpZXMgdGhpcyBpdGVtIGluIHRoZSBs aW5rZWQgbGlzdCBvZiBFeHRlbmRlZCBDYXBhYmlsaXR5IEhlYWRlcnMgYXMgYmVpbmcgdGhl IFBDSSBQb3dlciBNYW5hZ2VtZW50IFJlZ2lzdGVycy4KKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX1BPV0VSX01BTkFHRU1FTlRf Q0FQQUJJTElUWV9JREVOVElGSUVSX1JFRwkJICAgICAgICAgIDB4QzAgICAgLypieXRlKi8K KysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIFBvd2VyIE1hbmFn ZW1lbnQgTmV4dCBJdGVtIFBvaW50ZXIgUmVnaXN0ZXIgLSBQTV9OWFRQCisrKiogIAorKyoq ICBUaGUgTmV4dCBJdGVtIFBvaW50ZXIgUmVnaXN0ZXIgYml0cyBhZGhlcmUgdG8gdGhlIGRl ZmluaXRpb25zIGluIHRoZSBQQ0kgTG9jYWwgQnVzIFNwZWNpZmljYXRpb24sCisrKiogIFJl dmlzaW9uIDIuMy4gVGhpcyByZWdpc3RlciBkZXNjcmliZXMgdGhlIGxvY2F0aW9uIG9mIHRo ZSBuZXh0IGl0ZW0gaW4gdGhlIGZ1bmN0aW9uoaZzIGNhcGFiaWxpdHkgbGlzdC4KKysqKiAg Rm9yIHRoZSA4MDMzMSwgdGhlIG5leHQgY2FwYWJpbGl0eSAoTVNJIGNhcGFiaWxpdHkgbGlz dCkgaXMgbG9jYXRlZCBhdCBvZmYtc2V0IEQwSC4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAg Qml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisr KiogIDA3OjAwICAgICAgIEQwSCAgICAgICAgICAgICAgICAgICAgICAgICBOZXh0XyBJdGVt XyBQb2ludGVyIC0gVGhpcyBmaWVsZCBwcm92aWRlcyBhbiBvZmZzZXQgaW50byB0aGUgZnVu Y3Rpb26hpnMgY29uZmlndXJhdGlvbiBzcGFjZSBwb2ludGluZyB0byB0aGUKKysqKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBu ZXh0IGl0ZW0gaW4gdGhlIGZ1bmN0aW9uoaZzIGNhcGFiaWxpdHkgbGlzdCB3aGljaCBpbiB0 aGUgODAzMzEgaXMgdGhlIE1TSSBleHRlbmRlZCBjYXBhYmlsaXRpZXMgaGVhZGVyLgorKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1Jf UE9XRVJfTkVYVF9JVEVNX1BUUl9SRUcJCSAgICAgICAgICAweEMxICAgIC8qYnl0ZSovCisr LyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBQb3dlciBNYW5hZ2Vt ZW50IENhcGFiaWxpdGllcyBSZWdpc3RlciAtIFBNX0NBUAorKyoqICAKKysqKiAgUG93ZXIg TWFuYWdlbWVudCBDYXBhYmlsaXRpZXMgYml0cyBhZGhlcmUgdG8gdGhlIGRlZmluaXRpb25z IGluIHRoZSBQQ0kgQnVzIFBvd2VyIE1hbmFnZW1lbnQKKysqKiAgSW50ZXJmYWNlIFNwZWNp ZmljYXRpb24sIFJldmlzaW9uIDEuMS4gVGhpcyByZWdpc3RlciBpcyBhIDE2LWJpdCByZWFk LW9ubHkgcmVnaXN0ZXIgd2hpY2ggcHJvdmlkZXMKKysqKiAgaW5mb3JtYXRpb24gb24gdGhl IGNhcGFiaWxpdGllcyBvZiB0aGUgQVRVIGZ1bmN0aW9uIHJlbGF0ZWQgdG8gcG93ZXIgbWFu YWdlbWVudC4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAg ICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDE1OjExICAgMDAwMDAgMiAg ICAgICAgICAgICAgICAgICAgICAgICBQTUVfU3VwcG9ydCAtIFRoaXMgZnVuY3Rpb24gaXMg bm90IGNhcGFibGUgb2YgYXNzZXJ0aW5nIHRoZSBQTUUjIHNpZ25hbCBpbiBhbnkgc3RhdGUs IHNpbmNlIFBNRSMgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgODAzMzEuCisrKiogIDEwICAg ICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBEMl9TdXBwb3J0IC0gVGhpcyBi aXQgaXMgc2V0IHRvIDAgMiBpbmRpY2F0aW5nIHRoYXQgdGhlIDgwMzMxIGRvZXMgbm90IHN1 cHBvcnQgdGhlIEQyIFBvd2VyIE1hbmFnZW1lbnQgU3RhdGUKKysqKiAgOSAgICAgICAgICAg MSAyICAgICAgICAgICAgICAgICAgICAgICAgIEQxX1N1cHBvcnQgLSBUaGlzIGJpdCBpcyBz ZXQgdG8gMSAyIGluZGljYXRpbmcgdGhhdCB0aGUgODAzMzEgc3VwcG9ydHMgdGhlIEQxIFBv d2VyIE1hbmFnZW1lbnQgU3RhdGUKKysqKiAgODo2ICAgICAgIDAwMCAyICAgICAgICAgICAg ICAgICAgICAgICAgIEF1eF9DdXJyZW50IC0gVGhpcyBmaWVsZCBpcyBzZXQgdG8gMDAwIDIg aW5kaWNhdGluZyB0aGF0IHRoZSA4MDMzMSBoYXMgbm8gY3VycmVudCByZXF1aXJlbWVudHMg Zm9yIHRoZQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIDMuM1ZhdXggc2lnbmFsIGFzIGRlZmluZWQgaW4gdGhlIFBDSSBC dXMgUG93ZXIgTWFuYWdlbWVudCBJbnRlcmZhY2UgU3BlY2lmaWNhdGlvbiwgUmV2aXNpb24g MS4xCisrKiogIDUgICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBEU0kg LSBUaGlzIGZpZWxkIGlzIHNldCB0byAwIDIgbWVhbmluZyB0aGF0IHRoaXMgZnVuY3Rpb24g cmVxdWlyZXMgYSBkZXZpY2Ugc3BlY2lmaWMgaW5pdGlhbGl6YXRpb24gc2VxdWVuY2UKKysq KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmb2xsb3dpbmcgdGhlIHRyYW5zaXRpb24gdG8gdGhlIEQwIHVuaW5pdGlhbGl6ZWQg c3RhdGUuCisrKiogIDQgICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBS ZXNlcnZlZC4KKysqKiAgMyAgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAg IFBNRSBDbG9jayAtIFNpbmNlIHRoZSA4MDMzMSBkb2VzIG5vdCBzdXBwb3J0IFBNRSMgc2ln bmFsIGdlbmVyYXRpb24gdGhpcyBiaXQgaXMgY2xlYXJlZCB0byAwIDIgLgorKyoqICAyOjAg ICAgICAgMDEwIDIgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAtIFNldHRpbmcg dGhlc2UgYml0cyB0byAwMTAgMiBtZWFucyB0aGF0IHRoaXMgZnVuY3Rpb24gY29tcGxpZXMg d2l0aCBQQ0kgQnVzIFBvd2VyIE1hbmFnZW1lbnQgSW50ZXJmYWNlIFNwZWNpZmljYXRpb24s IFJldmlzaW9uIDEuMQorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysj ZGVmaW5lICAgICBBUkNNU1JfUE9XRVJfTUFOQUdFTUVOVF9DQVBBQklMSVRZX1JFRwkJICAg ICAgICAgIDB4QzIgICAgLyp3b3JkIDB4QzMsMHhDMiovCisrLyoKKysqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorKyoqICBQb3dlciBNYW5hZ2VtZW50IENvbnRyb2wvU3RhdHVz IFJlZ2lzdGVyIC0gUE1fQ1NSCisrKiogIAorKyoqICBQb3dlciBNYW5hZ2VtZW50IENvbnRy b2wvU3RhdHVzIGJpdHMgYWRoZXJlIHRvIHRoZSBkZWZpbml0aW9ucyBpbiB0aGUgUENJIEJ1 cyBQb3dlcgorKyoqICBNYW5hZ2VtZW50IEludGVyZmFjZSBTcGVjaWZpY2F0aW9uLCBSZXZp c2lvbiAxLjEuIFRoaXMgMTYtYml0IHJlZ2lzdGVyIGlzIHRoZSBjb250cm9sIGFuZCBzdGF0 dXMKKysqKiAgaW50ZXJmYWNlIGZvciB0aGUgcG93ZXIgbWFuYWdlbWVudCBleHRlbmRlZCBj YXBhYmlsaXR5LgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMTUgICAgICAgICAgMCAy ICAgICAgICAgICAgICAgICAgICAgICAgIFBNRV9TdGF0dXMgLSBUaGlzIGZ1bmN0aW9uIGlz IG5vdCBjYXBhYmxlIG9mIGFzc2VydGluZyB0aGUgUE1FIyBzaWduYWwgaW4gYW55IHN0YXRl LCBzaW5jZSBQTUUjIyBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSA4MDMzMS4KKysqKiAgMTQ6 OSAgICAgICAgMDBIICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisrKiogIDgg ICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBQTUVfRW4gLSBUaGlzIGJp dCBpcyBoYXJkd2lyZWQgdG8gcmVhZC1vbmx5IDAgMiBzaW5jZSB0aGlzIGZ1bmN0aW9uIGRv ZXMgbm90IHN1cHBvcnQgUE1FIyBnZW5lcmF0aW9uIGZyb20gYW55IHBvd2VyIHN0YXRlLgor KyoqICA3OjIgICAgMDAwMDAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQK KysqKiAgMTowICAgICAgICAwMCAyICAgICAgICAgICAgICAgICAgICAgICAgIFBvd2VyIFN0 YXRlIC0gVGhpcyAyLWJpdCBmaWVsZCBpcyB1c2VkIGJvdGggdG8gZGV0ZXJtaW5lIHRoZSBj dXJyZW50IHBvd2VyIHN0YXRlIG9mIGEgZnVuY3Rpb24gYW5kIHRvIHNldCB0aGUgZnVuY3Rp b24gaW50byBhIG5ldyBwb3dlciBzdGF0ZS4gVGhlIGRlZmluaXRpb24gb2YgdGhlIHZhbHVl cyBpczoKKysqKiAgCQkJCQkJCQkJCQkJCQkwMCAyIC0gRDAKKysqKiAgCQkJCQkJCQkJCQkJ CQkwMSAyIC0gRDEKKysqKiAgCQkJCQkJCQkJCQkJCQkxMCAyIC0gRDIgKFVuc3VwcG9ydGVk KQorKyoqICAJCQkJCQkJCQkJCQkJCTExIDIgLSBEMyBob3QKKysqKiAgCQkJCQkJCQkJCQkJ CQlUaGUgODAzMzEgc3VwcG9ydHMgb25seSB0aGUgRDAgYW5kIEQzIGhvdCBzdGF0ZXMuCisr KiogIAorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAg ICBBUkNNU1JfUE9XRVJfTUFOQUdFTUVOVF9DT05UUk9MX1NUQVRVU19SRUcJCSAgICAgICAg ICAweEM0ICAgIC8qd29yZCAweEM1LDB4QzQqLworKy8qCisrKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKKysqKiAgUENJLVggQ2FwYWJpbGl0eSBJZGVudGlmaWVyIFJlZ2lzdGVy IC0gUFhfQ0FQSUQKKysqKiAgCisrKiogIFRoZSBDYXBhYmlsaXR5IElkZW50aWZpZXIgUmVn aXN0ZXIgYml0cyBhZGhlcmUgdG8gdGhlIGRlZmluaXRpb25zIGluIHRoZSBQQ0kgTG9jYWwg QnVzIFNwZWNpZmljYXRpb24sCisrKiogIFJldmlzaW9uIDIuMy4gVGhpcyByZWdpc3RlciBp biB0aGUgUENJIEV4dGVuZGVkIENhcGFiaWxpdHkgaGVhZGVyIGlkZW50aWZpZXMgdGhlIHR5 cGUgb2YgRXh0ZW5kZWQKKysqKiAgQ2FwYWJpbGl0eSBjb250YWluZWQgaW4gdGhhdCBoZWFk ZXIuIEluIHRoZSBjYXNlIG9mIHRoZSA4MDMzMSwgdGhpcyBpcyB0aGUgUENJLVggZXh0ZW5k ZWQgY2FwYWJpbGl0eSB3aXRoCisrKiogIGFuIElEIG9mIDA3SCBhcyBkZWZpbmVkIGJ5IHRo ZSBQQ0ktWCBBZGRlbmR1bSB0byB0aGUgUENJIExvY2FsIEJ1cyBTcGVjaWZpY2F0aW9uLCBS ZXZpc2lvbiAxLjBhLgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMDc6MDAgICAgICAg MDdIICAgICAgICAgICAgICAgICAgICAgICAgIENhcF9JZCAtIFRoaXMgZmllbGQgd2l0aCBp dHOhpiAwN0ggdmFsdWUgaWRlbnRpZmllcyB0aGlzIGl0ZW0gaW4gdGhlIGxpbmtlZCBsaXN0 IG9mIEV4dGVuZGVkIENhcGFiaWxpdHkgSGVhZGVycyBhcyBiZWluZyB0aGUgUENJLVggY2Fw YWJpbGl0eSByZWdpc3RlcnMuCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysq LworKyNkZWZpbmUgICAgIEFSQ01TUl9QQ0lYX0NBUEFCSUxJVFlfSURFTlRJRklFUl9SRUcJ CSAgICAgICAgICAweEUwICAgIC8qYnl0ZSovCisrLyoKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqICBQQ0ktWCBOZXh0IEl0ZW0gUG9pbnRlciBSZWdpc3RlciAtIFBY X05YVFAKKysqKiAgCisrKiogIFRoZSBOZXh0IEl0ZW0gUG9pbnRlciBSZWdpc3RlciBiaXRz IGFkaGVyZSB0byB0aGUgZGVmaW5pdGlvbnMgaW4gdGhlIFBDSSBMb2NhbCBCdXMgU3BlY2lm aWNhdGlvbiwKKysqKiAgUmV2aXNpb24gMi4zLiBUaGlzIHJlZ2lzdGVyIGRlc2NyaWJlcyB0 aGUgbG9jYXRpb24gb2YgdGhlIG5leHQgaXRlbSBpbiB0aGUgZnVuY3Rpb26hpnMgY2FwYWJp bGl0eSBsaXN0LgorKyoqICBCeSBkZWZhdWx0LCB0aGUgUENJLVggY2FwYWJpbGl0eSBpcyB0 aGUgbGFzdCBjYXBhYmlsaXRpZXMgbGlzdCBmb3IgdGhlIDgwMzMxLCB0aHVzIHRoaXMgcmVn aXN0ZXIgZGVmYXVsdHMKKysqKiAgdG8gMDBILgorKyoqICBIb3dldmVyLCB0aGlzIHJlZ2lz dGVyIG1heSBiZSB3cml0dGVuIHRvIEI4SCBwcmlvciB0byBob3N0IGNvbmZpZ3VyYXRpb24g dG8gaW5jbHVkZSB0aGUgVlBECisrKiogIGNhcGFiaWxpdHkgbG9jYXRlZCBhdCBvZmYtc2V0 IEI4SC4KKysqKiAgV2FybmluZzogV3JpdGluZyB0aGlzIHJlZ2lzdGVyIHRvIGFueSB2YWx1 ZSBvdGhlciB0aGFuIDAwSCAoZGVmYXVsdCkgb3IgQjhIIGlzIG5vdCBzdXBwb3J0ZWQgYW5k IG1heQorKyoqICBwcm9kdWNlIHVucHJlZGljdGFibGUgc3lzdGVtIGJlaGF2aW9yLgorKyoq ICBJbiBvcmRlciB0byBndWFyYW50ZWUgdGhhdCB0aGlzIHJlZ2lzdGVyIGlzIHdyaXR0ZW4g cHJpb3IgdG8gaG9zdCBjb25maWd1cmF0aW9uLCB0aGUgODAzMzEgbXVzdCBiZQorKyoqICBp bml0aWFsaXplZCBhdCBQX1JTVCMgYXNzZXJ0aW9uIHRvIFJldHJ5IFR5cGUgMCBjb25maWd1 cmF0aW9uIGN5Y2xlcyAoYml0IDIgb2YgUENTUikuIFR5cGljYWxseSwKKysqKiAgdGhlIElu dGVsIFhTY2FsZSBjb3JlIHdvdWxkIGJlIGVuYWJsZWQgdG8gYm9vdCBpbW1lZGlhdGVseSBm b2xsb3dpbmcgUF9SU1QjIGFzc2VydGlvbiBpbgorKyoqICB0aGlzIGNhc2UgKGJpdCAxIG9m IFBDU1IpLCBhcyB3ZWxsLiBQbGVhc2Ugc2VlIFRhYmxlIDEyNSwgoadQQ0kgQ29uZmlndXJh dGlvbiBhbmQgU3RhdHVzIFJlZ2lzdGVyIC0KKysqKiAgUENTUqGoIG9uIHBhZ2UgMjUzIGZv ciBtb3JlIGRldGFpbHMgb24gdGhlIDgwMzMxIGluaXRpYWxpemF0aW9uIG1vZGVzLgorKyoq ICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAg ICAgICAgRGVzY3JpcHRpb24KKysqKiAgMDc6MDAgICAgICAgMDBIICAgICAgICAgICAgICAg ICAgICAgICAgIE5leHRfIEl0ZW1fIFBvaW50ZXIgLSBUaGlzIGZpZWxkIHByb3ZpZGVzIGFu IG9mZnNldCBpbnRvIHRoZSBmdW5jdGlvbqGmcyBjb25maWd1cmF0aW9uIHNwYWNlIHBvaW50 aW5nIHRvIHRoZQorKyoqICAJCQkJCQkJCQkJCQkJCW5leHQgaXRlbSBpbiB0aGUgZnVuY3Rp b26hpnMgY2FwYWJpbGl0eSBsaXN0LiBTaW5jZSB0aGUgUENJLVggY2FwYWJpbGl0aWVzIGFy ZSB0aGUgbGFzdCBpbiB0aGUgbGlua2VkIGxpc3Qgb2YKKysqKiAgCQkJCQkJCQkJCQkJCQll eHRlbmRlZCBjYXBhYmlsaXRpZXMgaW4gdGhlIDgwMzMxLCB0aGUgcmVnaXN0ZXIgaXMgc2V0 IHRvIDAwSC4KKysqKiAgCQkJCQkJCQkJCQkJCQlIb3dldmVyLCB0aGlzIGZpZWxkIG1heSBi ZSB3cml0dGVuIHByaW9yIHRvIGhvc3QgY29uZmlndXJhdGlvbiB3aXRoIEI4SCB0byBleHRl bmQgdGhlIGxpc3QgdG8gaW5jbHVkZSB0aGUKKysqKiAgCQkJCQkJCQkJCQkJCQlWUEQgZXh0 ZW5kZWQgY2FwYWJpbGl0aWVzIGhlYWRlci4KKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX1BDSVhfTkVYVF9JVEVNX1BUUl9SRUcJ CSAgICAgICAgICAweEUxICAgIC8qYnl0ZSovCisrLyoKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqICBQQ0ktWCBDb21tYW5kIFJlZ2lzdGVyIC0gUFhfQ01ECisrKiog IAorKyoqICBUaGlzIHJlZ2lzdGVyIGNvbnRyb2xzIHZhcmlvdXMgbW9kZXMgYW5kIGZlYXR1 cmVzIG9mIEFUVSBhbmQgTWVzc2FnZSBVbml0IHdoZW4gb3BlcmF0aW5nIGluIHRoZQorKyoq ICBQQ0ktWCBtb2RlLgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAgICAgRGVmYXVs dCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMTU6NyAgICAgMDAw MDAwMDAwIDIgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkLgorKyoqICA2OjQgICAgICAg IDAxMSAyICAgICAgICAgICAgICAgICAgICAgICAgTWF4aW11bSBPdXRzdGFuZGluZyBTcGxp dCBUcmFuc2FjdGlvbnMgLSBUaGlzIHJlZ2lzdGVyIHNldHMgdGhlIG1heGltdW0gbnVtYmVy IG9mIFNwbGl0IFRyYW5zYWN0aW9ucworKyoqICAJCQkJCQkJCQkJCQkJCXRoZSBkZXZpY2Ug aXMgcGVybWl0dGVkIHRvIGhhdmUgb3V0c3RhbmRpbmcgYXQgb25lIHRpbWUuCisrKiogIAkJ CQkJCQkJCQkJCQkJUmVnaXN0ZXIgTWF4aW11bSBPdXRzdGFuZGluZworKyoqICAJCQkJCQkJ CQkJCQkJCTAgMQorKyoqICAJCQkJCQkJCQkJCQkJCTEgMgorKyoqICAJCQkJCQkJCQkJCQkJ CTIgMworKyoqICAJCQkJCQkJCQkJCQkJCTMgNAorKyoqICAJCQkJCQkJCQkJCQkJCTQgOAor KyoqICAJCQkJCQkJCQkJCQkJCTUgMTIKKysqKiAgCQkJCQkJCQkJCQkJCQk2IDE2CisrKiog IAkJCQkJCQkJCQkJCQkJNyAzMgorKyoqICAzOjIgICAgICAgIDAwIDIgICAgICAgICAgICAg ICAgICAgICAgICAgTWF4aW11bSBNZW1vcnkgUmVhZCBCeXRlIENvdW50IC0gVGhpcyByZWdp c3RlciBzZXRzIHRoZSBtYXhpbXVtIGJ5dGUgY291bnQgdGhlIGRldmljZSB1c2VzIHdoZW4K KysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpbml0aWF0aW5nIGEgU2VxdWVuY2Ugd2l0aCBvbmUgb2YgdGhlIGJ1cnN0IG1l bW9yeSByZWFkIGNvbW1hbmRzLgorKyoqICAJCQkJCQkJCQkJCQkJCVJlZ2lzdGVyIE1heGlt dW0gQnl0ZSBDb3VudAorKyoqICAJCQkJCQkJCQkJCQkJCTAgNTEyCisrKiogIAkJCQkJCQkJ CQkJCQkJMSAxMDI0CisrKiogIAkJCQkJCQkJCQkJCQkJMiAyMDQ4CisrKiogIAkJCQkJCQkJ CQkJCQkJMyA0MDk2CisrKiogIAkJCQkJCQkJCQkJCQkJMSAwIDIKKysqKiAgCQkJCQkJCQkJ CQkJCQlFbmFibGUgUmVsYXhlZCBPcmRlcmluZyAtIFRoZSA4MDMzMSBkb2VzIG5vdCBzZXQg dGhlIHJlbGF4ZWQgb3JkZXJpbmcgYml0IGluIHRoZSBSZXF1ZXN0ZXIgQXR0cmlidXRlcwor KyoqICAJCQkJCQkJCQkJCQkJCW9mIFRyYW5zYWN0aW9ucy4KKysqKiAgMCAgICAgICAgICAw IDIgICAgICAgICAgICAgICAgICAgICAgICAgIERhdGEgUGFyaXR5IEVycm9yIFJlY292ZXJ5 IEVuYWJsZSAtIFRoZSBkZXZpY2UgZHJpdmVyIHNldHMgdGhpcyBiaXQgdG8gZW5hYmxlIHRo ZSBkZXZpY2UgdG8gYXR0ZW1wdCB0bworKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY292ZXIgZnJvbSBkYXRhIHBhcml0 eSBlcnJvcnMuIFdoZW4gdGhpcyBiaXQgaXMgMCBhbmQgdGhlIGRldmljZSBpcyBpbiBQQ0kt WCBtb2RlLCB0aGUgZGV2aWNlIGFzc2VydHMKKysqKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTRVJSIyAod2hlbiBlbmFibGVk KSB3aGVuZXZlciB0aGUgTWFzdGVyIERhdGEgUGFyaXR5IEVycm9yIGJpdCAoU3RhdHVzIHJl Z2lzdGVyLCBiaXQgOCkgaXMgc2V0LgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq CisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJWF9DT01NQU5EX1JFRwkJICAgICAgICAg IDB4RTIgICAgLyp3b3JkIDB4RTMsMHhFMiovCisrLyoKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqICBQQ0ktWCBTdGF0dXMgUmVnaXN0ZXIgLSBQWF9TUgorKyoqICAK KysqKiAgVGhpcyByZWdpc3RlciBpZGVudGlmaWVzIHRoZSBjYXBhYmlsaXRpZXMgYW5kIGN1 cnJlbnQgb3BlcmF0aW5nIG1vZGUgb2YgQVRVLCBETUFzIGFuZCBNZXNzYWdlCisrKiogIFVu aXQgd2hlbiBvcGVyYXRpbmcgaW4gdGhlIFBDSS1YIG1vZGUuCisrKiogIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlw dGlvbgorKyoqICAzMTozMCAgICAgICAwMCAyICAgICAgICAgICAgICAgICAgICAgICAgUmVz ZXJ2ZWQKKysqKiAgMjkgICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgIFJl Y2VpdmVkIFNwbGl0IENvbXBsZXRpb24gRXJyb3IgTWVzc2FnZSAtIFRoaXMgYml0IGlzIHNl dCB3aGVuIHRoZSBkZXZpY2UgcmVjZWl2ZXMgYSBTcGxpdCBDb21wbGV0aW9uCisrKiogIAkJ CQkJCQkJCQkJCQkJTWVzc2FnZSB3aXRoIHRoZSBTcGxpdCBDb21wbGV0aW9uIEVycm9yIGF0 dHJpYnV0ZSBiaXQgc2V0LiBPbmNlIHNldCwgdGhpcyBiaXQgcmVtYWlucyBzZXQgdW50aWwg c29mdHdhcmUKKysqKiAgCQkJCQkJCQkJCQkJCQl3cml0ZXMgYSAxIHRvIHRoaXMgbG9jYXRp b24uCisrKiogIAkJCQkJCQkJCQkJCQkJMD1ubyBTcGxpdCBDb21wbGV0aW9uIGVycm9yIG1l c3NhZ2UgcmVjZWl2ZWQuCisrKiogIAkJCQkJCQkJCQkJCQkJMT1hIFNwbGl0IENvbXBsZXRp b24gZXJyb3IgbWVzc2FnZSBoYXMgYmVlbiByZWNlaXZlZC4KKysqKiAgMjg6MjYgICAgICAw MDEgMiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVkIE1heGltdW0gQ3VtdWxhdGl2 ZSBSZWFkIFNpemUgKERNQ1JTKSAtIFRoZSB2YWx1ZSBvZiB0aGlzIHJlZ2lzdGVyIGRlcGVu ZHMgb24gdGhlIHNldHRpbmcKKysqKiAgCQkJCQkJCQkJCQkJCQlvZiB0aGUgTWF4aW11bSBN ZW1vcnkgUmVhZCBCeXRlIENvdW50IGZpZWxkIG9mIHRoZSBQQ0lYQ01EIHJlZ2lzdGVyOgor KyoqICAJCQkJCQkJCQkJCQkJCURNQ1JTIE1heCBBRFFzIE1heGltdW0gTWVtb3J5IFJlYWQg Qnl0ZSBDb3VudCBSZWdpc3RlciBTZXR0aW5nCisrKiogIAkJCQkJCQkJCQkJCQkJMSAxNiA1 MTIgKERlZmF1bHQpCisrKiogIAkJCQkJCQkJCQkJCQkJMiAzMiAxMDI0CisrKiogIAkJCQkJ CQkJCQkJCQkJMiAzMiAyMDQ4CisrKiogIAkJCQkJCQkJCQkJCQkJMiAzMiA0MDk2CisrKiog IDI1OjIzICAgICAgMDExIDIgICAgICAgICAgICAgICAgICAgICAgICBEZXNpZ25lZCBNYXhp bXVtIE91dHN0YW5kaW5nIFNwbGl0IFRyYW5zYWN0aW9ucyAtIFRoZSA4MDMzMSBjYW4gaGF2 ZSB1cCB0byBmb3VyIG91dHN0YW5kaW5nIHNwbGl0IHRyYW5zYWN0aW9ucy4KKysqKiAgMjI6 MjEgICAgICAgMDEgMiAgICAgICAgICAgICAgICAgICAgICAgIERlc2lnbmVkIE1heGltdW0g TWVtb3J5IFJlYWQgQnl0ZSBDb3VudCAtIFRoZSA4MDMzMSBjYW4gZ2VuZXJhdGUgbWVtb3J5 IHJlYWRzIHdpdGggYnl0ZSBjb3VudHMgdXAgdG8gMTAyNCBieXRlcy4KKysqKiAgMjAgICAg ICAgICAgIDEgMiAgICAgICAgICAgICAgICAgICAgICAgIDgwMzMxIGlzIGEgY29tcGxleCBk ZXZpY2UuCisrKiogIDE5ICAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICBV bmV4cGVjdGVkIFNwbGl0IENvbXBsZXRpb24gLSBUaGlzIGJpdCBpcyBzZXQgd2hlbiBhbiB1 bmV4cGVjdGVkIFNwbGl0IENvbXBsZXRpb24gd2l0aCB0aGlzIGRldmljZaGmcworKyoqICAJ CQkJCQkJCQkJCQkJCVJlcXVlc3RlciBJRCBpcyByZWNlaXZlZC4gT25jZSBzZXQsIHRoaXMg Yml0IHJlbWFpbnMgc2V0IHVudGlsIHNvZnR3YXJlIHdyaXRlcyBhIDEgdG8gdGhpcyBsb2Nh dGlvbi4KKysqKiAgCQkJCQkJCQkJCQkJCQkwPW5vIHVuZXhwZWN0ZWQgU3BsaXQgQ29tcGxl dGlvbiBoYXMgYmVlbiByZWNlaXZlZC4KKysqKiAgCQkJCQkJCQkJCQkJCQkxPWFuIHVuZXhw ZWN0ZWQgU3BsaXQgQ29tcGxldGlvbiBoYXMgYmVlbiByZWNlaXZlZC4KKysqKiAgMTggICAg ICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgIFNwbGl0IENvbXBsZXRpb24gRGlz Y2FyZGVkIC0gVGhpcyBiaXQgaXMgc2V0IHdoZW4gdGhlIGRldmljZSBkaXNjYXJkcyBhIFNw bGl0IENvbXBsZXRpb24gYmVjYXVzZSB0aGUKKysqKiAgCQkJCQkJCQkJCQkJCQlyZXF1ZXN0 ZXIgd291bGQgbm90IGFjY2VwdCBpdC4gU2VlIFNlY3Rpb24gNS40LjQgb2YgdGhlIFBDSS1Y IEFkZGVuZHVtIHRvIHRoZSBQQ0kgTG9jYWwgQnVzCisrKiogIAkJCQkJCQkJCQkJCQkJU3Bl Y2lmaWNhdGlvbiwgUmV2aXNpb24gMS4wYSBmb3IgZGV0YWlscy4gT25jZSBzZXQsIHRoaXMg Yml0IHJlbWFpbnMgc2V0IHVudGlsIHNvZnR3YXJlIHdyaXRlcyBhIDEgdG8gdGhpcworKyoq ICAJCQkJCQkJCQkJCQkJCWxvY2F0aW9uLgorKyoqICAJCQkJCQkJCQkJCQkJCTA9bm8gU3Bs aXQgQ29tcGxldGlvbiBoYXMgYmVlbiBkaXNjYXJkZWQuCisrKiogIAkJCQkJCQkJCQkJCQkJ MT1hIFNwbGl0IENvbXBsZXRpb24gaGFzIGJlZW4gZGlzY2FyZGVkLgorKyoqICAJCQkJCQkJ CQkJCQkJCU5PVEU6IFRoZSA4MDMzMSBkb2VzIG5vdCBzZXQgdGhpcyBiaXQgc2luY2UgdGhl cmUgaXMgbm8gSW5ib3VuZCBhZGRyZXNzIHJlc3BvbmRpbmcgdG8gSW5ib3VuZCBSZWFkCisr KiogIAkJCQkJCQkJCQkJCQkJUmVxdWVzdHMgd2l0aCBTcGxpdCBSZXNwb25zZXMgKE1lbW9y eSBvciBSZWdpc3RlcikgdGhhdCBoYXMgoadyZWFkIHNpZGUgZWZmZWN0cy6hqAorKyoqICAx NyAgICAgICAgICAgMSAyICAgICAgICAgICAgICAgICAgICAgICAgODAzMzEgaXMgYSAxMzMg TUh6IGNhcGFibGUgZGV2aWNlLgorKyoqICAxNiAgICAgICAgICAgMSAyIG9yIFBfMzJCSVRQ Q0kjCQkJODAzMzEgd2l0aCBicmlkZ2UgZW5hYmxlZCAoQlJHX0VOPTEpIGltcGxlbWVudHMg dGhlIEFUVSB3aXRoIGEgNjQtYml0IGludGVyZmFjZSBvbiB0aGUgc2Vjb25kYXJ5IFBDSSBi dXMsIHRoZXJlZm9yZSB0aGlzIGJpdCBpcyBhbHdheXMgc2V0LgorKyoqICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCQkJODAzMzEgd2l0aCBubyBicmlkZ2UgYW5kIGNlbnRyYWwg cmVzb3VyY2UgZGlzYWJsZWQgKEJSR19FTj0wLCBBUkJfRU49MCksIHVzZSB0aGlzIGJpdCB0 byBpZGVudGlmeSB0aGUgYWRkLWluIGNhcmQgdG8gdGhlIHN5c3RlbSBhcyA2NC1iaXQgb3Ig MzItYml0IHdpZGUgdmlhIGEgdXNlci1jb25maWd1cmFibGUgc3RyYXAgKFBfMzJCSVRQQ0kj KS4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAJCQlUaGlzIHN0cmFwLCBi eSBkZWZhdWx0LCBpZGVudGlmaWVzIHRoZSBhZGQgaW4gY2FyZCBiYXNlZCBvbiA4MDMzMSB3 aXRoIGJyaWRnZSBkaXNhYmxlZCBhcyA2NC1iaXQgdW5sZXNzIHRoZSB1c2VyIGF0dGFjaGVz IHRoZSBhcHByb3ByaWF0ZSBwdWxsLWRvd24gcmVzaXN0b3IgdG8gdGhlIHN0cmFwLgorKyoq ICAJCQkJCQkJCQkJCQkJCTA9VGhlIGJ1cyBpcyAzMiBiaXRzIHdpZGUuCisrKiogIAkJCQkJ CQkJCQkJCQkJMT1UaGUgYnVzIGlzIDY0IGJpdHMgd2lkZS4KKysqKiAgMTU6OCAgICAgICAg IEZGSCAgICAgICAgICAgICAgICAgICAgICAgIEJ1cyBOdW1iZXIgLSBUaGlzIHJlZ2lzdGVy IGlzIHJlYWQgZm9yIGRpYWdub3N0aWMgcHVycG9zZXMgb25seS4gSXQgaW5kaWNhdGVzIHRo ZSBudW1iZXIgb2YgdGhlIGJ1cworKyoqICAJCQkJCQkJCQkJCQkJCXNlZ21lbnQgZm9yIHRo ZSBkZXZpY2UgY29udGFpbmluZyB0aGlzIGZ1bmN0aW9uLiBUaGUgZnVuY3Rpb24gdXNlcyB0 aGlzIG51bWJlciBhcyBwYXJ0IG9mIGl0cyBSZXF1ZXN0ZXIKKysqKiAgCQkJCQkJCQkJCQkJ CQlJRCBhbmQgQ29tcGxldGVyIElELiBGb3IgYWxsIGRldmljZXMgb3RoZXIgdGhhbiB0aGUg c291cmNlIGJyaWRnZSwgZWFjaCB0aW1lIHRoZSBmdW5jdGlvbiBpcyBhZGRyZXNzZWQKKysq KiAgCQkJCQkJCQkJCQkJCQlieSBhIENvbmZpZ3VyYXRpb24gV3JpdGUgdHJhbnNhY3Rpb24s IHRoZSBmdW5jdGlvbiBtdXN0IHVwZGF0ZSB0aGlzIHJlZ2lzdGVyIHdpdGggdGhlIGNvbnRl bnRzIG9mIEFEWzc6OjBdCisrKiogIAkJCQkJCQkJCQkJCQkJb2YgdGhlIGF0dHJpYnV0ZSBw aGFzZSBvZiB0aGUgQ29uZmlndXJhdGlvbiBXcml0ZSwgcmVnYXJkbGVzcyBvZiB3aGljaCBy ZWdpc3RlciBpbiB0aGUgZnVuY3Rpb24gaXMKKysqKiAgCQkJCQkJCQkJCQkJCQlhZGRyZXNz ZWQgYnkgdGhlIHRyYW5zYWN0aW9uLiBUaGUgZnVuY3Rpb24gaXMgYWRkcmVzc2VkIGJ5IGEg Q29uZmlndXJhdGlvbiBXcml0ZSB0cmFuc2FjdGlvbiB3aGVuIGFsbCBvZgorKyoqICAJCQkJ CQkJCQkJCQkJCXRoZSBmb2xsb3dpbmcgYXJlIHRydWU6CisrKiogIAkJCQkJCQkJCQkJCQkJ MS4gVGhlIHRyYW5zYWN0aW9uIHVzZXMgYSBDb25maWd1cmF0aW9uIFdyaXRlIGNvbW1hbmQu CisrKiogIAkJCQkJCQkJCQkJCQkJMi4gSURTRUwgaXMgYXNzZXJ0ZWQgZHVyaW5nIHRoZSBh ZGRyZXNzIHBoYXNlLgorKyoqICAJCQkJCQkJCQkJCQkJCTMuIEFEWzE6OjBdIGFyZSAwMGIg KFR5cGUgMCBjb25maWd1cmF0aW9uIHRyYW5zYWN0aW9uKS4KKysqKiAgCQkJCQkJCQkJCQkJ CQk0LiBBRFsxMDo6MDhdIG9mIHRoZSBjb25maWd1cmF0aW9uIGFkZHJlc3MgY29udGFpbiB0 aGUgYXBwcm9wcmlhdGUgZnVuY3Rpb24gbnVtYmVyLgorKyoqICA3OjMgICAgICAgICAgMUZI ICAgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlIE51bWJlciAtIFRoaXMgcmVnaXN0ZXIg aXMgcmVhZCBmb3IgZGlhZ25vc3RpYyBwdXJwb3NlcyBvbmx5LiBJdCBpbmRpY2F0ZXMgdGhl IG51bWJlciBvZiB0aGUgZGV2aWNlCisrKiogIAkJCQkJCQkJCQkJCQkJY29udGFpbmluZyB0 aGlzIGZ1bmN0aW9uLCBpLmUuLCB0aGUgbnVtYmVyIGluIHRoZSBEZXZpY2UgTnVtYmVyIGZp ZWxkIChBRFsxNTo6MTFdKSBvZiB0aGUgYWRkcmVzcyBvZiBhCisrKiogIAkJCQkJCQkJCQkJ CQkJVHlwZSAwIGNvbmZpZ3VyYXRpb24gdHJhbnNhY3Rpb24gdGhhdCBpcyBhc3NpZ25lZCB0 byB0aGUgZGV2aWNlIGNvbnRhaW5pbmcgdGhpcyBmdW5jdGlvbiBieSB0aGUgY29ubmVjdGlv bgorKyoqICAJCQkJCQkJCQkJCQkJCW9mIHRoZSBzeXN0ZW0gaGFyZHdhcmUuIFRoZSBzeXN0 ZW0gbXVzdCBhc3NpZ24gYSBkZXZpY2UgbnVtYmVyIG90aGVyIHRoYW4gMDBoICgwMGggaXMg cmVzZXJ2ZWQgZm9yCisrKiogIAkJCQkJCQkJCQkJCQkJdGhlIHNvdXJjZSBicmlkZ2UpLiBU aGUgZnVuY3Rpb24gdXNlcyB0aGlzIG51bWJlciBhcyBwYXJ0IG9mIGl0cyBSZXF1ZXN0ZXIg SUQgYW5kIENvbXBsZXRlciBJRC4gRWFjaAorKyoqICAJCQkJCQkJCQkJCQkJCXRpbWUgdGhl IGZ1bmN0aW9uIGlzIGFkZHJlc3NlZCBieSBhIENvbmZpZ3VyYXRpb24gV3JpdGUgdHJhbnNh Y3Rpb24sIHRoZSBkZXZpY2UgbXVzdCB1cGRhdGUgdGhpcyByZWdpc3RlcgorKyoqICAJCQkJ CQkJCQkJCQkJCXdpdGggdGhlIGNvbnRlbnRzIG9mIEFEWzE1OjoxMV0gb2YgdGhlIGFkZHJl c3MgcGhhc2Ugb2YgdGhlIENvbmZpZ3VyYXRpb24gV3JpdGUsIHJlZ2FyZGxlc3Mgb2Ygd2hp Y2gKKysqKiAgCQkJCQkJCQkJCQkJCQlyZWdpc3RlciBpbiB0aGUgZnVuY3Rpb24gaXMgYWRk cmVzc2VkIGJ5IHRoZSB0cmFuc2FjdGlvbi4gVGhlIGZ1bmN0aW9uIGlzIGFkZHJlc3NlZCBi eSBhIENvbmZpZ3VyYXRpb24KKysqKiAgCQkJCQkJCQkJCQkJCQlXcml0ZSB0cmFuc2FjdGlv biB3aGVuIGFsbCBvZiB0aGUgZm9sbG93aW5nIGFyZSB0cnVlOgorKyoqICAJCQkJCQkJCQkJ CQkJCTEuIFRoZSB0cmFuc2FjdGlvbiB1c2VzIGEgQ29uZmlndXJhdGlvbiBXcml0ZSBjb21t YW5kLgorKyoqICAJCQkJCQkJCQkJCQkJCTIuIElEU0VMIGlzIGFzc2VydGVkIGR1cmluZyB0 aGUgYWRkcmVzcyBwaGFzZS4KKysqKiAgCQkJCQkJCQkJCQkJCQkzLiBBRFsxOjowXSBhcmUg MDBiIChUeXBlIDAgY29uZmlndXJhdGlvbiB0cmFuc2FjdGlvbikuCisrKiogIAkJCQkJCQkJ CQkJCQkJNC4gQURbMTA6OjA4XSBvZiB0aGUgY29uZmlndXJhdGlvbiBhZGRyZXNzIGNvbnRh aW4gdGhlIGFwcHJvcHJpYXRlIGZ1bmN0aW9uIG51bWJlci4KKysqKiAgMjowICAgICAgICAw MDAgMiAgICAgICAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uIE51bWJlciAtIFRoaXMgcmVn aXN0ZXIgaXMgcmVhZCBmb3IgZGlhZ25vc3RpYyBwdXJwb3NlcyBvbmx5LiBJdCBpbmRpY2F0 ZXMgdGhlIG51bWJlciBvZiB0aGlzCisrKiogIAkJCQkJCQkJCQkJCQkJZnVuY3Rpb247IGku ZS4sIHRoZSBudW1iZXIgaW4gdGhlIEZ1bmN0aW9uIE51bWJlciBmaWVsZCAoQURbMTA6OjA4 XSkgb2YgdGhlIGFkZHJlc3Mgb2YgYSBUeXBlIDAKKysqKiAgCQkJCQkJCQkJCQkJCQljb25m aWd1cmF0aW9uIHRyYW5zYWN0aW9uIHRvIHdoaWNoIHRoaXMgZnVuY3Rpb24gcmVzcG9uZHMu IFRoZSBmdW5jdGlvbiB1c2VzIHRoaXMgbnVtYmVyIGFzIHBhcnQgb2YgaXRzCisrKiogIAkJ CQkJCQkJCQkJCQkJUmVxdWVzdGVyIElEIGFuZCBDb21wbGV0ZXIgSUQuCisrKiogIAorKyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfUENJWF9TVEFU VVNfUkVHCQkgICAgICAgICAgMHhFNCAgICAvKmR3b3JkIDB4RTcsMHhFNiwweEU1LDB4RTQq LworKworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgICAgICAgICAgICAgICAg SW5ib3VuZCBSZWFkIFRyYW5zYWN0aW9uCisrKiogID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoq CUFuIGluYm91bmQgcmVhZCB0cmFuc2FjdGlvbiBpcyBpbml0aWF0ZWQgYnkgYSBQQ0kgaW5p dGlhdG9yIGFuZCBpcyB0YXJnZXRlZCBhdCBlaXRoZXIgODAzMzEgbG9jYWwKKysqKgltZW1v cnkgb3IgYSA4MDMzMSBtZW1vcnktbWFwcGVkIHJlZ2lzdGVyIHNwYWNlLiBUaGUgcmVhZCB0 cmFuc2FjdGlvbiBpcyBwcm9wYWdhdGVkIHRocm91Z2gKKysqKgl0aGUgaW5ib3VuZCB0cmFu c2FjdGlvbiBxdWV1ZSAoSVRRKSBhbmQgcmVhZCBkYXRhIGlzIHJldHVybmVkIHRocm91Z2gg dGhlIGluYm91bmQgcmVhZCBxdWV1ZQorKyoqCShJUlEpLgorKyoqCVdoZW4gb3BlcmF0aW5n IGluIHRoZSBjb252ZW50aW9uYWwgUENJIG1vZGUsIGFsbCBpbmJvdW5kIHJlYWQgdHJhbnNh Y3Rpb25zIGFyZSBwcm9jZXNzZWQgYXMKKysqKglkZWxheWVkIHJlYWQgdHJhbnNhY3Rpb25z LiBXaGVuIG9wZXJhdGluZyBpbiB0aGUgUENJLVggbW9kZSwgYWxsIGluYm91bmQgcmVhZCB0 cmFuc2FjdGlvbnMgYXJlCisrKioJcHJvY2Vzc2VkIGFzIHNwbGl0IHRyYW5zYWN0aW9ucy4g VGhlIEFUVXMgUENJIGludGVyZmFjZSBjbGFpbXMgdGhlIHJlYWQgdHJhbnNhY3Rpb24gYW5k IGZvcndhcmRzCisrKioJdGhlIHJlYWQgcmVxdWVzdCB0aHJvdWdoIHRvIHRoZSBpbnRlcm5h bCBidXMgYW5kIHJldHVybnMgdGhlIHJlYWQgZGF0YSB0byB0aGUgUENJIGJ1cy4gRGF0YSBm bG93IGZvcgorKyoqCWFuIGluYm91bmQgcmVhZCB0cmFuc2FjdGlvbiBvbiB0aGUgUENJIGJ1 cyBpcyBzdW1tYXJpemVkIGluIHRoZSBmb2xsb3dpbmcgc3RhdGVtZW50czoKKysqKgmhRSBU aGUgQVRVIGNsYWltcyB0aGUgUENJIHJlYWQgdHJhbnNhY3Rpb24gd2hlbiB0aGUgUENJIGFk ZHJlc3MgaXMgd2l0aGluIHRoZSBpbmJvdW5kCisrKioJdHJhbnNsYXRpb24gd2luZG93IGRl ZmluZWQgYnkgQVRVIEluYm91bmQgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyIChhbmQgSW5ib3Vu ZCBVcHBlciBCYXNlCisrKioJQWRkcmVzcyBSZWdpc3RlciBkdXJpbmcgREFDcykgYW5kIElu Ym91bmQgTGltaXQgUmVnaXN0ZXIuCisrKioJoUUgV2hlbiBvcGVyYXRpbmcgaW4gdGhlIGNv bnZlbnRpb25hbCBQQ0kgbW9kZSwgd2hlbiB0aGUgSVRRIGlzIGN1cnJlbnRseSBob2xkaW5n IHRyYW5zYWN0aW9uCisrKioJaW5mb3JtYXRpb24gZnJvbSBhIHByZXZpb3VzIGRlbGF5ZWQg cmVhZCwgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gaW5mb3JtYXRpb24gaXMgY29tcGFyZWQg dG8KKysqKgl0aGUgcHJldmlvdXMgdHJhbnNhY3Rpb24gaW5mb3JtYXRpb24gKGJhc2VkIG9u IHRoZSBzZXR0aW5nIG9mIHRoZSBEUkMgQWxpYXMgYml0IGluCisrKioJU2VjdGlvbiAzLjEw LjM5LCChp0FUVSBDb25maWd1cmF0aW9uIFJlZ2lzdGVyIC0gQVRVQ1KhqCBvbiBwYWdlIDI1 MikuIFdoZW4gdGhlcmUgaXMgYQorKyoqCW1hdGNoIGFuZCB0aGUgZGF0YSBpcyBpbiB0aGUg SVJRLCByZXR1cm4gdGhlIGRhdGEgdG8gdGhlIG1hc3RlciBvbiB0aGUgUENJIGJ1cy4gV2hl biB0aGVyZSBpcyBhCisrKioJbWF0Y2ggYW5kIHRoZSBkYXRhIGlzIG5vdCBhdmFpbGFibGUs IGEgUmV0cnkgaXMgc2lnbmFsZWQgd2l0aCBubyBvdGhlciBhY3Rpb24gdGFrZW4uIFdoZW4g dGhlcmUKKysqKglpcyBub3QgYSBtYXRjaCBhbmQgd2hlbiB0aGUgSVRRIGhhcyBsZXNzIHRo YW4gZWlnaHQgZW50cmllcywgY2FwdHVyZSB0aGUgdHJhbnNhY3Rpb24KKysqKglpbmZvcm1h dGlvbiwgc2lnbmFsIGEgUmV0cnkgYW5kIGluaXRpYXRlIGEgZGVsYXllZCB0cmFuc2FjdGlv bi4gV2hlbiB0aGVyZSBpcyBub3QgYSBtYXRjaCBhbmQKKysqKgl3aGVuIHRoZSBJVFEgaXMg ZnVsbCwgdGhlbiBzaWduYWwgYSBSZXRyeSB3aXRoIG5vIG90aGVyIGFjdGlvbiB0YWtlbi4K KysqKgmhWCBXaGVuIGFuIGFkZHJlc3MgcGFyaXR5IGVycm9yIGlzIGRldGVjdGVkLCB0aGUg YWRkcmVzcyBwYXJpdHkgcmVzcG9uc2UgZGVmaW5lZCBpbgorKyoqCVNlY3Rpb24gMy43IGlz IHVzZWQuCisrKioJoUUgV2hlbiBvcGVyYXRpbmcgaW4gdGhlIGNvbnZlbnRpb25hbCBQQ0kg bW9kZSwgb25jZSByZWFkIGRhdGEgaXMgZHJpdmVuIG9udG8gdGhlIFBDSSBidXMgZnJvbQor KyoqCXRoZSBJUlEsIGl0IGNvbnRpbnVlcyB1bnRpbCBvbmUgb2YgdGhlIGZvbGxvd2luZyBp cyB0cnVlOgorKyoqCaFYIFRoZSBpbml0aWF0b3IgY29tcGxldGVzIHRoZSBQQ0kgdHJhbnNh Y3Rpb24uIFdoZW4gdGhlcmUgaXMgZGF0YSBsZWZ0IHVucmVhZCBpbiB0aGUgSVJRLCB0aGUK KysqKglkYXRhIGlzIGZsdXNoZWQuCisrKioJoVggQW4gaW50ZXJuYWwgYnVzIFRhcmdldCBB Ym9ydCB3YXMgZGV0ZWN0ZWQuIEluIHRoaXMgY2FzZSwgdGhlIFFXT1JEIGFzc29jaWF0ZWQg d2l0aCB0aGUKKysqKglUYXJnZXQgQWJvcnQgaXMgbmV2ZXIgZW50ZXJlZCBpbnRvIHRoZSBJ UlEsIGFuZCB0aGVyZWZvcmUgaXMgbmV2ZXIgcmV0dXJuZWQuCisrKioJoVggVGFyZ2V0IEFi b3J0IG9yIGEgRGlzY29ubmVjdCB3aXRoIERhdGEgaXMgcmV0dXJuZWQgaW4gcmVzcG9uc2Ug dG8gdGhlIEludGVybmFsIEJ1cyBFcnJvci4KKysqKgmhWCBUaGUgSVJRIGJlY29tZXMgZW1w dHkuIEluIHRoaXMgY2FzZSwgdGhlIFBDSSBpbnRlcmZhY2Ugc2lnbmFscyBhIERpc2Nvbm5l Y3Qgd2l0aCBkYXRhIHRvCisrKioJdGhlIGluaXRpYXRvciBvbiB0aGUgbGFzdCBkYXRhIHdv cmQgYXZhaWxhYmxlLgorKyoqCaFFIFdoZW4gb3BlcmF0aW5nIGluIHRoZSBQQ0ktWCBtb2Rl LCB3aGVuIElUUSBpcyBub3QgZnVsbCwgdGhlIFBDSSBhZGRyZXNzLCBhdHRyaWJ1dGUgYW5k CisrKioJY29tbWFuZCBhcmUgbGF0Y2hlZCBpbnRvIHRoZSBhdmFpbGFibGUgSVRRIGFuZCBh IFNwbGl0IFJlc3BvbnNlIFRlcm1pbmF0aW9uIGlzIHNpZ25hbGxlZCB0bworKyoqCXRoZSBp bml0aWF0b3IuCisrKioJoUUgV2hlbiBvcGVyYXRpbmcgaW4gdGhlIFBDSS1YIG1vZGUsIHdo ZW4gdGhlIHRyYW5zYWN0aW9uIGRvZXMgbm90IGNyb3NzIGEgMTAyNCBieXRlIGFsaWduZWQK KysqKglib3VuZGFyeSwgdGhlbiB0aGUgQVRVIHdhaXRzIHVudGlsIGl0IHJlY2VpdmVzIHRo ZSBmdWxsIGJ5dGUgY291bnQgZnJvbSB0aGUgaW50ZXJuYWwgYnVzIHRhcmdldAorKyoqCWJl Zm9yZSByZXR1cm5pbmcgcmVhZCBkYXRhIGJ5IGdlbmVyYXRpbmcgdGhlIHNwbGl0IGNvbXBs ZXRpb24gdHJhbnNhY3Rpb24gb24gdGhlIFBDSS1YIGJ1cy4KKysqKglXaGVuIHRoZSByZWFk IHJlcXVlc3RlZCBjcm9zc2VzIGF0IGxlYXN0IG9uZSAxMDI0IGJ5dGUgYm91bmRhcnksIHRo ZW4gQVRVIGNvbXBsZXRlcyB0aGUKKysqKgl0cmFuc2ZlciBieSByZXR1cm5pbmcgZGF0YSBp biAxMDI0IGJ5dGUgYWxpZ25lZCBjaHVua3MuCisrKioJoUUgV2hlbiBvcGVyYXRpbmcgaW4g dGhlIFBDSS1YIG1vZGUsIG9uY2UgYSBzcGxpdCBjb21wbGV0aW9uIHRyYW5zYWN0aW9uIGhh cyBzdGFydGVkLCBpdAorKyoqCWNvbnRpbnVlcyB1bnRpbCBvbmUgb2YgdGhlIGZvbGxvd2lu ZyBpcyB0cnVlOgorKyoqCaFYIFRoZSByZXF1ZXN0ZXIgKG5vdyB0aGUgdGFyZ2V0KSBnZW5l cmF0ZXMgYSBSZXRyeSBUZXJtaW5hdGlvbiwgb3IgYSBEaXNjb25uZWN0aW9uIGF0IE5leHQK KysqKglBREIgKHdoZW4gdGhlIHJlcXVlc3RlciBpcyBhIGJyaWRnZSkKKysqKgmhWCBUaGUg Ynl0ZSBjb3VudCBpcyBzYXRpc2ZpZWQuCisrKioJoVggQW4gaW50ZXJuYWwgYnVzIFRhcmdl dCBBYm9ydCB3YXMgZGV0ZWN0ZWQuIFRoZSBBVFUgZ2VuZXJhdGVzIGEgU3BsaXQgQ29tcGxl dGlvbgorKyoqCU1lc3NhZ2UgKG1lc3NhZ2UgY2xhc3M9MmggLSBjb21wbGV0ZXIgZXJyb3Is IGFuZCBtZXNzYWdlIGluZGV4PTgxaCAtIHRhcmdldCBhYm9ydCkgdG8KKysqKglpbmZvcm0g dGhlIHJlcXVlc3RlciBhYm91dCB0aGUgYWJub3JtYWwgY29uZGl0aW9uLiBUaGUgSVRRIGZv ciB0aGlzIHRyYW5zYWN0aW9uIGlzIGZsdXNoZWQuCisrKioJUmVmZXIgdG8gU2VjdGlvbiAz LjcuMS4KKysqKgmhWCBBbiBpbnRlcm5hbCBidXMgTWFzdGVyIEFib3J0IHdhcyBkZXRlY3Rl ZC4gVGhlIEFUVSBnZW5lcmF0ZXMgYSBTcGxpdCBDb21wbGV0aW9uCisrKioJTWVzc2FnZSAo bWVzc2FnZSBjbGFzcz0yaCAtIGNvbXBsZXRlciBlcnJvciwgYW5kIG1lc3NhZ2UgaW5kZXg9 ODBoIC0gTWFzdGVyIGFib3J0KSB0bworKyoqCWluZm9ybSB0aGUgcmVxdWVzdGVyIGFib3V0 IHRoZSBhYm5vcm1hbCBjb25kaXRpb24uIFRoZSBJVFEgZm9yIHRoaXMgdHJhbnNhY3Rpb24g aXMgZmx1c2hlZC4KKysqKglSZWZlciB0byBTZWN0aW9uIDMuNy4xCisrKioJoUUgV2hlbiBv cGVyYXRpbmcgaW4gdGhlIGNvbnZlbnRpb25hbCBQQ0kgbW9kZSwgd2hlbiB0aGUgbWFzdGVy IGluc2VydHMgd2FpdCBzdGF0ZXMgb24gdGhlIFBDSQorKyoqCWJ1cywgdGhlIEFUVSBQQ0kg c2xhdmUgaW50ZXJmYWNlIHdhaXRzIHdpdGggbm8gcHJlbWF0dXJlIGRpc2Nvbm5lY3RzLgor KyoqCaFFIFdoZW4gYSBkYXRhIHBhcml0eSBlcnJvciBvY2N1cnMgc2lnbmlmaWVkIGJ5IFBF UlIjIGFzc2VydGVkIGZyb20gdGhlIGluaXRpYXRvciwgbm8gYWN0aW9uIGlzCisrKioJdGFr ZW4gYnkgdGhlIHRhcmdldCBpbnRlcmZhY2UuIFJlZmVyIHRvIFNlY3Rpb24gMy43LjIuNS4K KysqKgmhRSBXaGVuIG9wZXJhdGluZyBpbiB0aGUgY29udmVudGlvbmFsIFBDSSBtb2RlLCB3 aGVuIHRoZSByZWFkIG9uIHRoZSBpbnRlcm5hbCBidXMgaXMKKysqKgl0YXJnZXQtYWJvcnRl ZCwgZWl0aGVyIGEgdGFyZ2V0LWFib3J0IG9yIGEgZGlzY29ubmVjdCB3aXRoIGRhdGEgaXMg c2lnbmFsZWQgdG8gdGhlIGluaXRpYXRvci4gVGhpcyBpcworKyoqCWJhc2VkIG9uIHRoZSBB VFUgRUNDIFRhcmdldCBBYm9ydCBFbmFibGUgYml0IChiaXQgMCBvZiB0aGUgQVRVSU1SIGZv ciBBVFUpLiBXaGVuIHNldCwgYQorKyoqCXRhcmdldCBhYm9ydCBpcyB1c2VkLCB3aGVuIGNs ZWFyLCBhIGRpc2Nvbm5lY3QgaXMgdXNlZC4KKysqKgmhRSBXaGVuIG9wZXJhdGluZyBpbiB0 aGUgUENJLVggbW9kZSAod2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRoZSBNVSBxdWV1ZSBwb3J0 cyBhdCBvZmZzZXRzIDQwaAorKyoqCWFuZCA0NGgpLCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBv biB0aGUgaW50ZXJuYWwgYnVzIHJlc3VsdGVkIGluIGEgdGFyZ2V0IGFib3J0LCB0aGUgQVRV IGdlbmVyYXRlcworKyoqCWEgU3BsaXQgQ29tcGxldGlvbiBNZXNzYWdlIChtZXNzYWdlIGNs YXNzPTJoIC0gY29tcGxldGVyIGVycm9yLCBhbmQgbWVzc2FnZSBpbmRleD04MWggLQorKyoq CWludGVybmFsIGJ1cyB0YXJnZXQgYWJvcnQpIHRvIGluZm9ybSB0aGUgcmVxdWVzdGVyIGFi b3V0IHRoZSBhYm5vcm1hbCBjb25kaXRpb24uIEZvciB0aGUgTVUKKysqKglxdWV1ZSBwb3J0 cywgdGhlIEFUVSByZXR1cm5zIGVpdGhlciBhIHRhcmdldCBhYm9ydCBvciBhIHNpbmdsZSBk YXRhIHBoYXNlIGRpc2Nvbm5lY3QgZGVwZW5kaW5nCisrKioJb24gdGhlIEFUVSBFQ0MgVGFy Z2V0IEFib3J0IEVuYWJsZSBiaXQgKGJpdCAwIG9mIHRoZSBBVFVJTVIgZm9yIEFUVSkuIFRo ZSBJVFEgZm9yIHRoaXMKKysqKgl0cmFuc2FjdGlvbiBpcyBmbHVzaGVkLiBSZWZlciB0byBT ZWN0aW9uIDMuNy4xLgorKyoqCaFFIFdoZW4gb3BlcmF0aW5nIGluIHRoZSBjb252ZW50aW9u YWwgUENJIG1vZGUsIHdoZW4gdGhlIHRyYW5zYWN0aW9uIG9uIHRoZSBpbnRlcm5hbCBidXMK KysqKglyZXN1bHRlZCBpbiBhIG1hc3RlciBhYm9ydCwgdGhlIEFUVSByZXR1cm5zIGEgdGFy Z2V0IGFib3J0IHRvIGluZm9ybSB0aGUgcmVxdWVzdGVyIGFib3V0IHRoZQorKyoqCWFibm9y bWFsIGNvbmRpdGlvbi4gVGhlIElUUSBmb3IgdGhpcyB0cmFuc2FjdGlvbiBpcyBmbHVzaGVk LiBSZWZlciB0byBTZWN0aW9uIDMuNy4xCisrKioJoUUgV2hlbiBvcGVyYXRpbmcgaW4gdGhl IFBDSS1YIG1vZGUsIHdoZW4gdGhlIHRyYW5zYWN0aW9uIG9uIHRoZSBpbnRlcm5hbCBidXMg cmVzdWx0ZWQgaW4gYQorKyoqCW1hc3RlciBhYm9ydCwgdGhlIEFUVSBnZW5lcmF0ZXMgYSBT cGxpdCBDb21wbGV0aW9uIE1lc3NhZ2UgKG1lc3NhZ2UgY2xhc3M9MmggLSBjb21wbGV0ZXIK KysqKgllcnJvciwgYW5kIG1lc3NhZ2UgaW5kZXg9ODBoIC0gaW50ZXJuYWwgYnVzIG1hc3Rl ciBhYm9ydCkgdG8gaW5mb3JtIHRoZSByZXF1ZXN0ZXIgYWJvdXQgdGhlCisrKioJYWJub3Jt YWwgY29uZGl0aW9uLiBUaGUgSVRRIGZvciB0aGlzIHRyYW5zYWN0aW9uIGlzIGZsdXNoZWQu IFJlZmVyIHRvIFNlY3Rpb24gMy43LjEuCisrKioJoUUgV2hlbiBvcGVyYXRpbmcgaW4gdGhl IFBDSS1YIG1vZGUsIHdoZW4gdGhlIFNwbGl0IENvbXBsZXRpb24gdHJhbnNhY3Rpb24gY29t cGxldGVzIHdpdGgKKysqKgllaXRoZXIgTWFzdGVyLUFib3J0IG9yIFRhcmdldC1BYm9ydCwg dGhlIHJlcXVlc3RlciBpcyBpbmRpY2F0aW5nIGEgZmFpbHVyZSBjb25kaXRpb24gdGhhdAor KyoqCXByZXZlbnRzIGl0IGZyb20gYWNjZXB0aW5nIHRoZSBjb21wbGV0aW9uIGl0IHJlcXVl c3RlZC4gSW4gdGhpcyBjYXNlLCBzaW5jZSB0aGUgU3BsaXQgUmVxdWVzdAorKyoqCWFkZHJl c3NlcyBhIGxvY2F0aW9uIHRoYXQgaGFzIG5vIHJlYWQgc2lkZSBlZmZlY3RzLCB0aGUgY29t cGxldGVyIG11c3QgZGlzY2FyZCB0aGUgU3BsaXQKKysqKglDb21wbGV0aW9uIGFuZCB0YWtl IG5vIGZ1cnRoZXIgYWN0aW9uLgorKyoqCVRoZSBkYXRhIGZsb3cgZm9yIGFuIGluYm91bmQg cmVhZCB0cmFuc2FjdGlvbiBvbiB0aGUgaW50ZXJuYWwgYnVzIGlzIHN1bW1hcml6ZWQgaW4g dGhlIGZvbGxvd2luZworKyoqCXN0YXRlbWVudHM6CisrKioJoUUgVGhlIEFUVSBpbnRlcm5h bCBidXMgbWFzdGVyIGludGVyZmFjZSByZXF1ZXN0cyB0aGUgaW50ZXJuYWwgYnVzIHdoZW4g YSBQQ0kgYWRkcmVzcyBhcHBlYXJzIGluCisrKioJCWFuIElUUSBhbmQgdHJhbnNhY3Rpb24g b3JkZXJpbmcgaGFzIGJlZW4gc2F0aXNmaWVkLiBXaGVuIG9wZXJhdGluZyBpbiB0aGUgUENJ LVggbW9kZSB0aGUKKysqKgkJQVRVIGRvZXMgbm90IHVzZSB0aGUgaW5mb3JtYXRpb24gcHJv dmlkZWQgYnkgdGhlIFJlbGF4IE9yZGVyaW5nIEF0dHJpYnV0ZSBiaXQuIFRoYXQgaXMsIEFU VQorKyoqCQlhbHdheXMgdXNlcyBjb252ZW50aW9uYWwgUENJIG9yZGVyaW5nIHJ1bGVzLgor KyoqCaFFIE9uY2UgdGhlIGludGVybmFsIGJ1cyBpcyBncmFudGVkLCB0aGUgaW50ZXJuYWwg YnVzIG1hc3RlciBpbnRlcmZhY2UgZHJpdmVzIHRoZSB0cmFuc2xhdGVkIGFkZHJlc3MKKysq KgkJb250byB0aGUgYnVzIGFuZCB3YWl0IGZvciBJQl9ERVZTRUwjLiBXaGVuIGEgUmV0cnkg aXMgc2lnbmFsZWQsIHRoZSByZXF1ZXN0IGlzIHJlcGVhdGVkLgorKyoqCQlXaGVuIGEgbWFz dGVyIGFib3J0IG9jY3VycywgdGhlIHRyYW5zYWN0aW9uIGlzIGNvbnNpZGVyZWQgY29tcGxl dGUgYW5kIGEgdGFyZ2V0IGFib3J0IGlzIGxvYWRlZAorKyoqCQlpbnRvIHRoZSBhc3NvY2lh dGVkIElSUSBmb3IgcmV0dXJuIHRvIHRoZSBQQ0kgaW5pdGlhdG9yICh0cmFuc2FjdGlvbiBp cyBmbHVzaGVkIG9uY2UgdGhlIFBDSQorKyoqCQltYXN0ZXIgaGFzIGJlZW4gZGVsaXZlcmVk IHRoZSB0YXJnZXQgYWJvcnQpLgorKyoqCaFFIE9uY2UgdGhlIHRyYW5zbGF0ZWQgYWRkcmVz cyBpcyBvbiB0aGUgYnVzIGFuZCB0aGUgdHJhbnNhY3Rpb24gaGFzIGJlZW4gYWNjZXB0ZWQs IHRoZSBpbnRlcm5hbAorKyoqCQlidXMgdGFyZ2V0IHN0YXJ0cyByZXR1cm5pbmcgZGF0YSB3 aXRoIHRoZSBhc3NlcnRpb24gb2YgSUJfVFJEWSMuIFJlYWQgZGF0YSBpcyBjb250aW51b3Vz bHkKKysqKgkJcmVjZWl2ZWQgYnkgdGhlIElSUSB1bnRpbCBvbmUgb2YgdGhlIGZvbGxvd2lu ZyBpcyB0cnVlOgorKyoqCaFYIFRoZSBmdWxsIGJ5dGUgY291bnQgcmVxdWVzdGVkIGJ5IHRo ZSBBVFUgcmVhZCByZXF1ZXN0IGlzIHJlY2VpdmVkLiBUaGUgQVRVIGludGVybmFsIGJ1cwor KyoqCSAgICBpbml0aWF0b3IgaW50ZXJmYWNlIHBlcmZvcm1zIGEgaW5pdGlhdG9yIGNvbXBs ZXRpb24gaW4gdGhpcyBjYXNlLgorKyoqCaFYIFdoZW4gb3BlcmF0aW5nIGluIHRoZSBjb252 ZW50aW9uYWwgUENJIG1vZGUsIGEgVGFyZ2V0IEFib3J0IGlzIHJlY2VpdmVkIG9uIHRoZSBp bnRlcm5hbAorKyoqCQlidXMgZnJvbSB0aGUgaW50ZXJuYWwgYnVzIHRhcmdldC4gSW4gdGhp cyBjYXNlLCB0aGUgdHJhbnNhY3Rpb24gaXMgYWJvcnRlZCBhbmQgdGhlIFBDSSBzaWRlIGlz CisrKioJCWluZm9ybWVkLgorKyoqCaFYIFdoZW4gb3BlcmF0aW5nIGluIHRoZSBQQ0ktWCBt b2RlLCBhIFRhcmdldCBBYm9ydCBpcyByZWNlaXZlZCBvbiB0aGUgaW50ZXJuYWwgYnVzIGZy b20KKysqKgkJdGhlIGludGVybmFsIGJ1cyB0YXJnZXQuIEluIHRoaXMgY2FzZSwgdGhlIHRy YW5zYWN0aW9uIGlzIGFib3J0ZWQuIFRoZSBBVFUgZ2VuZXJhdGVzIGEgU3BsaXQKKysqKgkJ Q29tcGxldGlvbiBNZXNzYWdlIChtZXNzYWdlIGNsYXNzPTJoIC0gY29tcGxldGVyIGVycm9y LCBhbmQgbWVzc2FnZSBpbmRleD04MWggLQorKyoqCQl0YXJnZXQgYWJvcnQpIG9uIHRoZSBQ Q0kgYnVzIHRvIGluZm9ybSB0aGUgcmVxdWVzdGVyIGFib3V0IHRoZSBhYm5vcm1hbCBjb25k aXRpb24uIFRoZQorKyoqCQlJVFEgZm9yIHRoaXMgdHJhbnNhY3Rpb24gaXMgZmx1c2hlZC4K KysqKgmhWCBXaGVuIG9wZXJhdGluZyBpbiB0aGUgY29udmVudGlvbmFsIFBDSSBtb2RlLCBh IHNpbmdsZSBkYXRhIHBoYXNlIGRpc2Nvbm5lY3Rpb24gaXMKKysqKgkJcmVjZWl2ZWQgZnJv bSB0aGUgaW50ZXJuYWwgYnVzIHRhcmdldC4gV2hlbiB0aGUgZGF0YSBoYXMgbm90IGJlZW4g cmVjZWl2ZWQgdXAgdG8gdGhlIG5leHQKKysqKgkJUVdPUkQgYm91bmRhcnksIHRoZSBBVFUg aW50ZXJuYWwgYnVzIG1hc3RlciBpbnRlcmZhY2UgYXR0ZW1wdHMgdG8gcmVhY3F1aXJlIHRo ZSBidXMuCisrKioJCVdoZW4gbm90LCB0aGUgYnVzIHJldHVybnMgdG8gaWRsZS4KKysqKgmh WCBXaGVuIG9wZXJhdGluZyBpbiB0aGUgUENJLVggbW9kZSwgYSBzaW5nbGUgZGF0YSBwaGFz ZSBkaXNjb25uZWN0aW9uIGlzIHJlY2VpdmVkIGZyb20KKysqKgkJdGhlIGludGVybmFsIGJ1 cyB0YXJnZXQuIFRoZSBBVFUgSUIgaW5pdGlhdG9yIGludGVyZmFjZSBhdHRlbXB0cyB0byBy ZWFjcXVpcmUgdGhlIGJ1cyB0bworKyoqCQlvYnRhaW4gcmVtYWluaW5nIGRhdGEuCisrKioJ oVggV2hlbiBvcGVyYXRpbmcgaW4gdGhlIGNvbnZlbnRpb25hbCBQQ0kgbW9kZSwgYSBkaXNj b25uZWN0aW9uIGF0IE5leHQgQURCIGlzIHJlY2VpdmVkCisrKioJICAgIGZyb20gdGhlIGlu dGVybmFsIGJ1cyB0YXJnZXQuIFRoZSBidXMgcmV0dXJucyB0byBpZGxlLgorKyoqCaFYIFdo ZW4gb3BlcmF0aW5nIGluIHRoZSBQQ0ktWCBtb2RlLCBhIGRpc2Nvbm5lY3Rpb24gYXQgTmV4 dCBBREIgaXMgcmVjZWl2ZWQgZnJvbSB0aGUKKysqKgkJaW50ZXJuYWwgYnVzIHRhcmdldC4g VGhlIEFUVSBJQiBpbml0aWF0b3IgaW50ZXJmYWNlIGF0dGVtcHRzIHRvIHJlYWNxdWlyZSB0 aGUgYnVzIHRvIG9idGFpbgorKyoqCQlyZW1haW5pbmcgZGF0YS4KKysqKgkJVG8gc3VwcG9y dCBQQ0kgTG9jYWwgQnVzIFNwZWNpZmljYXRpb24sIFJldmlzaW9uIDIuMCBkZXZpY2VzLCB0 aGUgQVRVIGNhbiBiZSBwcm9ncmFtbWVkIHRvCisrKioJCWlnbm9yZSB0aGUgbWVtb3J5IHJl YWQgY29tbWFuZCAoTWVtb3J5IFJlYWQsIE1lbW9yeSBSZWFkIExpbmUsIGFuZCBNZW1vcnkg UmVhZAorKyoqCQlNdWx0aXBsZSkgd2hlbiB0cnlpbmcgdG8gbWF0Y2ggdGhlIGN1cnJlbnQg aW5ib3VuZCByZWFkIHRyYW5zYWN0aW9uIHdpdGggZGF0YSBpbiBhIERSQyBxdWV1ZQorKyoq CQl3aGljaCB3YXMgcmVhZCBwcmV2aW91c2x5IChEUkMgb24gdGFyZ2V0IGJ1cykuIFdoZW4g dGhlIFJlYWQgQ29tbWFuZCBBbGlhcyBCaXQgaW4gdGhlCisrKioJCUFUVUNSIHJlZ2lzdGVy IGlzIHNldCwgdGhlIEFUVSBkb2VzIG5vdCBkaXN0aW5ndWlzaCB0aGUgcmVhZCBjb21tYW5k cyBvbiB0cmFuc2FjdGlvbnMuIEZvcgorKyoqCQlleGFtcGxlLCB0aGUgQVRVIGVucXVldWVz IGEgRFJSIHdpdGggYSBNZW1vcnkgUmVhZCBNdWx0aXBsZSBjb21tYW5kIGFuZCBwZXJmb3Jt cyB0aGUgcmVhZAorKyoqCQlvbiB0aGUgaW50ZXJuYWwgYnVzLiBTb21lIHRpbWUgbGF0ZXIs IGEgUENJIG1hc3RlciBhdHRlbXB0cyBhIE1lbW9yeSBSZWFkIHdpdGggdGhlIHNhbWUgYWRk cmVzcworKyoqCQlhcyB0aGUgcHJldmlvdXMgTWVtb3J5IFJlYWQgTXVsdGlwbGUuIFdoZW4g dGhlIFJlYWQgQ29tbWFuZCBCaXQgaXMgc2V0LCB0aGUgQVRVIHdvdWxkIHJldHVybgorKyoq CQl0aGUgcmVhZCBkYXRhIGZyb20gdGhlIERSQyBxdWV1ZSBhbmQgY29uc2lkZXIgdGhlIERl bGF5ZWQgUmVhZCB0cmFuc2FjdGlvbiBjb21wbGV0ZS4gV2hlbiB0aGUKKysqKgkJUmVhZCBD b21tYW5kIGJpdCBpbiB0aGUgQVRVQ1Igd2FzIGNsZWFyLCB0aGUgQVRVIHdvdWxkIG5vdCBy ZXR1cm4gZGF0YSBzaW5jZSB0aGUgUENJIHJlYWQKKysqKgkJY29tbWFuZHMgZGlkIG5vdCBt YXRjaCwgb25seSB0aGUgYWRkcmVzcy4KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisr LyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICAgICAgICAgICAgICAgICAgICBJbmJv dW5kIFdyaXRlIFRyYW5zYWN0aW9uCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKgkgIEFu IGluYm91bmQgd3JpdGUgdHJhbnNhY3Rpb24gaXMgaW5pdGlhdGVkIGJ5IGEgUENJIG1hc3Rl ciBhbmQgaXMgdGFyZ2V0ZWQgYXQgZWl0aGVyIDgwMzMxIGxvY2FsCisrKioJICBtZW1vcnkg b3IgYSA4MDMzMSBtZW1vcnktbWFwcGVkIHJlZ2lzdGVyLgorKyoqCURhdGEgZmxvdyBmb3Ig YW4gaW5ib3VuZCB3cml0ZSB0cmFuc2FjdGlvbiBvbiB0aGUgUENJIGJ1cyBpcyBzdW1tYXJp emVkIGFzOgorKyoqCaFFIFRoZSBBVFUgY2xhaW1zIHRoZSBQQ0kgd3JpdGUgdHJhbnNhY3Rp b24gd2hlbiB0aGUgUENJIGFkZHJlc3MgaXMgd2l0aGluIHRoZSBpbmJvdW5kCisrKioJICB0 cmFuc2xhdGlvbiB3aW5kb3cgZGVmaW5lZCBieSB0aGUgQVRVIEluYm91bmQgQmFzZSBBZGRy ZXNzIFJlZ2lzdGVyIChhbmQgSW5ib3VuZCBVcHBlcgorKyoqCSAgQmFzZSBBZGRyZXNzIFJl Z2lzdGVyIGR1cmluZyBEQUNzKSBhbmQgSW5ib3VuZCBMaW1pdCBSZWdpc3Rlci4KKysqKgmh RSBXaGVuIHRoZSBJV0FEUSBoYXMgYXQgbGVhc3Qgb25lIGFkZHJlc3MgZW50cnkgYXZhaWxh YmxlIGFuZCB0aGUgSVdRIGhhcyBhdCBsZWFzdCBvbmUgYnVmZmVyCisrKioJICBhdmFpbGFi bGUsIHRoZSBhZGRyZXNzIGlzIGNhcHR1cmVkIGFuZCB0aGUgZmlyc3QgZGF0YSBwaGFzZSBp cyBhY2NlcHRlZC4KKysqKgmhRSBUaGUgUENJIGludGVyZmFjZSBjb250aW51ZXMgdG8gYWNj ZXB0IHdyaXRlIGRhdGEgdW50aWwgb25lIG9mIHRoZSBmb2xsb3dpbmcgaXMgdHJ1ZToKKysq KgkgIKFYIFRoZSBpbml0aWF0b3IgcGVyZm9ybXMgYSBkaXNjb25uZWN0LgorKyoqCSAgoVgg VGhlIHRyYW5zYWN0aW9uIGNyb3NzZXMgYSBidWZmZXIgYm91bmRhcnkuCisrKioJoUUgV2hl biBhbiBhZGRyZXNzIHBhcml0eSBlcnJvciBpcyBkZXRlY3RlZCBkdXJpbmcgdGhlIGFkZHJl c3MgcGhhc2Ugb2YgdGhlIHRyYW5zYWN0aW9uLCB0aGUKKysqKgkgIGFkZHJlc3MgcGFyaXR5 IGVycm9yIG1lY2hhbmlzbXMgYXJlIHVzZWQuIFJlZmVyIHRvIFNlY3Rpb24gMy43LjEgZm9y IGRldGFpbHMgb2YgdGhlIGFkZHJlc3MKKysqKgkgIHBhcml0eSBlcnJvciByZXNwb25zZS4K KysqKgmhRSBXaGVuIG9wZXJhdGluZyBpbiB0aGUgUENJLVggbW9kZSB3aGVuIGFuIGF0dHJp YnV0ZSBwYXJpdHkgZXJyb3IgaXMgZGV0ZWN0ZWQsIHRoZSBhdHRyaWJ1dGUKKysqKgkgIHBh cml0eSBlcnJvciBtZWNoYW5pc20gZGVzY3JpYmVkIGluIFNlY3Rpb24gMy43LjEgaXMgdXNl ZC4KKysqKgmhRSBXaGVuIGEgZGF0YSBwYXJpdHkgZXJyb3IgaXMgZGV0ZWN0ZWQgd2hpbGUg YWNjZXB0aW5nIGRhdGEsIHRoZSBzbGF2ZSBpbnRlcmZhY2Ugc2V0cyB0aGUKKysqKgkgIGFw cHJvcHJpYXRlIGJpdHMgYmFzZWQgb24gUENJIHNwZWNpZmljYXRpb25zLiBObyBvdGhlciBh Y3Rpb24gaXMgdGFrZW4uIFJlZmVyIHRvIFNlY3Rpb24gMy43LjIuNgorKyoqCSAgZm9yIGRl dGFpbHMgb2YgdGhlIGluYm91bmQgd3JpdGUgZGF0YSBwYXJpdHkgZXJyb3IgcmVzcG9uc2Uu CisrKioJICBPbmNlIHRoZSBQQ0kgaW50ZXJmYWNlIHBsYWNlcyBhIFBDSSBhZGRyZXNzIGlu IHRoZSBJV0FEUSwgd2hlbiBJV1EgaGFzIHJlY2VpdmVkIGRhdGEgc3VmZmljaWVudAorKyoq CSAgdG8gY3Jvc3MgYSBidWZmZXIgYm91bmRhcnkgb3IgdGhlIG1hc3RlciBkaXNjb25uZWN0 cyBvbiB0aGUgUENJIGJ1cywgdGhlIEFUVXMgaW50ZXJuYWwgYnVzCisrKioJICBpbnRlcmZh Y2UgYmVjb21lcyBhd2FyZSBvZiB0aGUgaW5ib3VuZCB3cml0ZS4gV2hlbiB0aGVyZSBhcmUg YWRkaXRpb25hbCB3cml0ZSB0cmFuc2FjdGlvbnMgYWhlYWQKKysqKgkgIGluIHRoZSBJV1Ev SVdBRFEsIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIHJlbWFpbnMgcG9zdGVkIHVudGlsIG9y ZGVyaW5nIGFuZCBwcmlvcml0eSBoYXZlIGJlZW4KKysqKgkgIHNhdGlzZmllZCAoUmVmZXIg dG8gU2VjdGlvbiAzLjUuMykgYW5kIHRoZSB0cmFuc2FjdGlvbiBpcyBhdHRlbXB0ZWQgb24g dGhlIGludGVybmFsIGJ1cyBieSB0aGUgQVRVCisrKioJICBpbnRlcm5hbCBtYXN0ZXIgaW50 ZXJmYWNlLiBUaGUgQVRVIGRvZXMgbm90IGluc2VydCB0YXJnZXQgd2FpdCBzdGF0ZXMgbm9y IGRvIGRhdGEgbWVyZ2luZyBvbiB0aGUgUENJCisrKioJICBpbnRlcmZhY2UsIHdoZW4gb3Bl cmF0aW5nIGluIHRoZSBQQ0kgbW9kZS4KKysqKgkgIEluIHRoZSBQQ0ktWCBtb2RlIG1lbW9y eSB3cml0ZXMgYXJlIGFsd2F5cyBleGVjdXRlZCBhcyBpbW1lZGlhdGUgdHJhbnNhY3Rpb25z LCB3aGlsZQorKyoqCSAgY29uZmlndXJhdGlvbiB3cml0ZSB0cmFuc2FjdGlvbnMgYXJlIHBy b2Nlc3NlZCBhcyBzcGxpdCB0cmFuc2FjdGlvbnMuIFRoZSBBVFUgZ2VuZXJhdGVzIGEgU3Bs aXQKKysqKgkgIENvbXBsZXRpb24gTWVzc2FnZSwgKHdpdGggTWVzc2FnZSBjbGFzcz0waCAt IFdyaXRlIENvbXBsZXRpb24gQ2xhc3MgYW5kIE1lc3NhZ2UgaW5kZXggPQorKyoqCSAgMDBo IC0gV3JpdGUgQ29tcGxldGlvbiBNZXNzYWdlKSBvbmNlIGEgY29uZmlndXJhdGlvbiB3cml0 ZSBpcyBzdWNjZXNzZnVsbHkgZXhlY3V0ZWQuCisrKioJICBBbHNvLCB3aGVuIG9wZXJhdGlu ZyBpbiB0aGUgUENJLVggbW9kZSBhIHdyaXRlIHNlcXVlbmNlIG1heSBjb250YWluIG11bHRp cGxlIHdyaXRlIHRyYW5zYWN0aW9ucy4KKysqKgkgIFRoZSBBVFUgaGFuZGxlcyBzdWNoIHRy YW5zYWN0aW9ucyBhcyBpbmRlcGVuZGVudCB0cmFuc2FjdGlvbnMuCisrKioJICBEYXRhIGZs b3cgZm9yIHRoZSBpbmJvdW5kIHdyaXRlIHRyYW5zYWN0aW9uIG9uIHRoZSBpbnRlcm5hbCBi dXMgaXMgc3VtbWFyaXplZCBhczoKKysqKgmhRSBUaGUgQVRVIGludGVybmFsIGJ1cyBtYXN0 ZXIgcmVxdWVzdHMgdGhlIGludGVybmFsIGJ1cyB3aGVuIElXQURRIGhhcyBhdCBsZWFzdCBv bmUgZW50cnkKKysqKgkgIHdpdGggYXNzb2NpYXRlZCBkYXRhIGluIHRoZSBJV1EuCisrKioJ oUUgV2hlbiB0aGUgaW50ZXJuYWwgYnVzIGlzIGdyYW50ZWQsIHRoZSBpbnRlcm5hbCBidXMg bWFzdGVyIGludGVyZmFjZSBpbml0aWF0ZXMgdGhlIHdyaXRlCisrKioJICB0cmFuc2FjdGlv biBieSBkcml2aW5nIHRoZSB0cmFuc2xhdGVkIGFkZHJlc3Mgb250byB0aGUgaW50ZXJuYWwg YnVzLiBGb3IgZGV0YWlscyBvbiBpbmJvdW5kCisrKioJICBhZGRyZXNzIHRyYW5zbGF0aW9u LgorKyoqCaFFIFdoZW4gSUJfREVWU0VMIyBpcyBub3QgcmV0dXJuZWQsIGEgbWFzdGVyIGFi b3J0IGNvbmRpdGlvbiBpcyBzaWduYWxlZCBvbiB0aGUgaW50ZXJuYWwgYnVzLgorKyoqCSAg VGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gaXMgZmx1c2hlZCBmcm9tIHRoZSBxdWV1ZSBhbmQg U0VSUiMgbWF5IGJlIGFzc2VydGVkIG9uIHRoZSBQQ0kKKysqKgkgIGludGVyZmFjZS4KKysq KgmhRSBUaGUgQVRVIGluaXRpYXRvciBpbnRlcmZhY2UgYXNzZXJ0cyBJQl9SRVE2NCMgdG8g YXR0ZW1wdCBhIDY0LWJpdCB0cmFuc2Zlci4gV2hlbgorKyoqCSAgSUJfQUNLNjQjIGlzIG5v dCByZXR1cm5lZCwgYSAzMi1iaXQgdHJhbnNmZXIgaXMgdXNlZC4gVHJhbnNmZXJzIG9mIGxl c3MgdGhhbiA2NC1iaXRzIHVzZSB0aGUKKysqKgkgIElCX0MvQkVbNzowXSMgdG8gbWFzayB0 aGUgYnl0ZXMgbm90IHdyaXR0ZW4gaW4gdGhlIDY0LWJpdCBkYXRhIHBoYXNlLiBXcml0ZSBk YXRhIGlzIHRyYW5zZmVycmVkCisrKioJICBmcm9tIHRoZSBJV1EgdG8gdGhlIGludGVybmFs IGJ1cyB3aGVuIGRhdGEgaXMgYXZhaWxhYmxlIGFuZCB0aGUgaW50ZXJuYWwgYnVzIGludGVy ZmFjZSByZXRhaW5zCisrKioJICBpbnRlcm5hbCBidXMgb3duZXJzaGlwLgorKyoqCaFFIFRo ZSBpbnRlcm5hbCBidXMgaW50ZXJmYWNlIHN0b3BzIHRyYW5zZmVycmluZyBkYXRhIGZyb20g dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24gdG8gdGhlIGludGVybmFsCisrKioJICBidXMgd2hl biBvbmUgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGJlY29tZXMgdHJ1ZToKKysqKgmh WCBUaGUgaW50ZXJuYWwgYnVzIGluaXRpYXRvciBpbnRlcmZhY2UgbG9zZXMgYnVzIG93bmVy c2hpcC4gVGhlIEFUVSBpbnRlcm5hbCBpbml0aWF0b3IKKysqKgkgIHRlcm1pbmF0ZXMgdGhl IHRyYW5zZmVyIChpbml0aWF0b3IgZGlzY29ubmVjdGlvbikgYXQgdGhlIG5leHQgQURCIChm b3IgdGhlIGludGVybmFsIGJ1cyBBREIKKysqKgkgIGlzIGRlZmluZWQgYXMgYSBuYXR1cmFs bHkgYWxpZ25lZCAxMjgtYnl0ZSBib3VuZGFyeSkgYW5kIGF0dGVtcHQgdG8gcmVhY3F1aXJl IHRoZSBidXMgdG8KKysqKgkgIGNvbXBsZXRlIHRoZSBkZWxpdmVyeSBvZiByZW1haW5pbmcg ZGF0YSB1c2luZyB0aGUgc2FtZSBzZXF1ZW5jZSBJRCBidXQgd2l0aCB0aGUKKysqKgkgIG1v ZGlmaWVkIHN0YXJ0aW5nIGFkZHJlc3MgYW5kIGJ5dGUgY291bnQuCisrKioJoVggQSBEaXNj b25uZWN0IGF0IE5leHQgQURCIGlzIHNpZ25hbGVkIG9uIHRoZSBpbnRlcm5hbCBidXMgZnJv bSB0aGUgaW50ZXJuYWwgdGFyZ2V0LiBXaGVuCisrKioJICB0aGUgdHJhbnNhY3Rpb24gaW4g dGhlIElXUSBjb21wbGV0ZXMgYXQgdGhhdCBBREIsIHRoZSBpbml0aWF0b3IgcmV0dXJucyB0 byBpZGxlLiBXaGVuIHRoZQorKyoqCSAgdHJhbnNhY3Rpb24gaW4gdGhlIElXUSBpcyBub3Qg Y29tcGxldGUsIHRoZSBpbml0aWF0b3IgYXR0ZW1wdHMgdG8gcmVhY3F1aXJlIHRoZSBidXMg dG8KKysqKgkgIGNvbXBsZXRlIHRoZSBkZWxpdmVyeSBvZiByZW1haW5pbmcgZGF0YSB1c2lu ZyB0aGUgc2FtZSBzZXF1ZW5jZSBJRCBidXQgd2l0aCB0aGUKKysqKgkgIG1vZGlmaWVkIHN0 YXJ0aW5nIGFkZHJlc3MgYW5kIGJ5dGUgY291bnQuCisrKioJoVggQSBTaW5nbGUgRGF0YSBQ aGFzZSBEaXNjb25uZWN0IGlzIHNpZ25hbGVkIG9uIHRoZSBpbnRlcm5hbCBidXMgZnJvbSB0 aGUgaW50ZXJuYWwgdGFyZ2V0LgorKyoqCSAgV2hlbiB0aGUgdHJhbnNhY3Rpb24gaW4gdGhl IElXUSBuZWVkcyBvbmx5IGEgc2luZ2xlIGRhdGEgcGhhc2UsIHRoZSBtYXN0ZXIgcmV0dXJu cyB0byBpZGxlLgorKyoqCSAgV2hlbiB0aGUgdHJhbnNhY3Rpb24gaW4gdGhlIElXUSBpcyBu b3QgY29tcGxldGUsIHRoZSBpbml0aWF0b3IgYXR0ZW1wdHMgdG8gcmVhY3F1aXJlIHRoZQor KyoqCSAgYnVzIHRvIGNvbXBsZXRlIHRoZSBkZWxpdmVyeSBvZiByZW1haW5pbmcgZGF0YSB1 c2luZyB0aGUgc2FtZSBzZXF1ZW5jZSBJRCBidXQgd2l0aCB0aGUKKysqKgkgIG1vZGlmaWVk IHN0YXJ0aW5nIGFkZHJlc3MgYW5kIGJ5dGUgY291bnQuCisrKioJoVggVGhlIGRhdGEgZnJv bSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiBoYXMgY29tcGxldGVkIChzYXRpc2ZhY3Rpb24g b2YgYnl0ZSBjb3VudCkuIEFuCisrKioJICBpbml0aWF0b3IgdGVybWluYXRpb24gaXMgcGVy Zm9ybWVkIGFuZCB0aGUgYnVzIHJldHVybnMgdG8gaWRsZS4KKysqKgmhWCBBIE1hc3RlciBB Ym9ydCBpcyBzaWduYWxlZCBvbiB0aGUgaW50ZXJuYWwgYnVzLiBTRVJSIyBtYXkgYmUgYXNz ZXJ0ZWQgb24gdGhlIFBDSSBidXMuCisrKioJICBEYXRhIGlzIGZsdXNoZWQgZnJvbSB0aGUg SVdRLgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqCisrKi8KKysKKysKKysKKysvKgorKyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrKiogICAgICAgICAgICAgICBJbmJvdW5kIFJlYWQgQ29tcGxldGlvbnMgRGF0 YSBQYXJpdHkgRXJyb3JzCisrKio9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKglBcyBhbiBpbml0 aWF0b3IsIHRoZSBBVFUgbWF5IGVuY291bnRlciB0aGlzIGVycm9yIGNvbmRpdGlvbiB3aGVu IG9wZXJhdGluZyBpbiB0aGUgUENJLVggbW9kZS4KKysqKglXaGVuIGFzIHRoZSBjb21wbGV0 ZXIgb2YgYSBTcGxpdCBSZWFkIFJlcXVlc3QgdGhlIEFUVSBvYnNlcnZlcyBQRVJSIyBhc3Nl cnRpb24gZHVyaW5nIHRoZSBzcGxpdAorKyoqCWNvbXBsZXRpb24gdHJhbnNhY3Rpb24sIHRo ZSBBVFUgYXR0ZW1wdHMgdG8gY29tcGxldGUgdGhlIHRyYW5zYWN0aW9uIG5vcm1hbGx5IGFu ZCBubyBmdXJ0aGVyCisrKioJYWN0aW9uIGlzIHRha2VuLgorKyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisrKi8KKysKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogICAgICAgICAg ICAgICBJbmJvdW5kIENvbmZpZ3VyYXRpb24gV3JpdGUgQ29tcGxldGlvbiBNZXNzYWdlIERh dGEgUGFyaXR5IEVycm9ycworKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIEFzIGFuIGlu aXRpYXRvciwgdGhlIEFUVSBtYXkgZW5jb3VudGVyIHRoaXMgZXJyb3IgY29uZGl0aW9uIHdo ZW4gb3BlcmF0aW5nIGluIHRoZSBQQ0ktWCBtb2RlLgorKyoqICBXaGVuIGFzIHRoZSBjb21w bGV0ZXIgb2YgYSBDb25maWd1cmF0aW9uIChTcGxpdCkgV3JpdGUgUmVxdWVzdCB0aGUgQVRV IG9ic2VydmVzIFBFUlIjCisrKiogIGFzc2VydGlvbiBkdXJpbmcgdGhlIHNwbGl0IGNvbXBs ZXRpb24gdHJhbnNhY3Rpb24sIHRoZSBBVFUgYXR0ZW1wdHMgdG8gY29tcGxldGUgdGhlIHRy YW5zYWN0aW9uCisrKiogIG5vcm1hbGx5IGFuZCBubyBmdXJ0aGVyIGFjdGlvbiBpcyB0YWtl bi4KKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrCisrLyoKKysqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKyoqICAgICAgICAgICAgICBJbmJvdW5kIFJlYWQgUmVxdWVzdCBEYXRhIFBh cml0eSBFcnJvcnMKKysqKj09PT09PT09PT09PT09PT09PT09PSBJbW1lZGlhdGUgRGF0YSBU cmFuc2ZlciA9PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICBBcyBhIHRhcmdldCwg dGhlIEFUVSBtYXkgZW5jb3VudGVyIHRoaXMgZXJyb3Igd2hlbiBvcGVyYXRpbmcgaW4gdGhl IENvbnZlbnRpb25hbCBQQ0kgb3IgUENJLVggbW9kZXMuCisrKiogIEluYm91bmQgcmVhZCBk YXRhIHBhcml0eSBlcnJvcnMgb2NjdXIgd2hlbiByZWFkIGRhdGEgZGVsaXZlcmVkIGZyb20g dGhlIElSUSBpcyBkZXRlY3RlZCBhcyBoYXZpbmcKKysqKiAgYmFkIHBhcml0eSBieSB0aGUg aW5pdGlhdG9yIG9mIHRoZSB0cmFuc2FjdGlvbiB3aG8gaXMgcmVjZWl2aW5nIHRoZSBkYXRh LiBUaGUgaW5pdGlhdG9yIG1heSBvcHRpb25hbGx5CisrKiogIHJlcG9ydCB0aGUgZXJyb3Ig dG8gdGhlIHN5c3RlbSBieSBhc3NlcnRpbmcgUEVSUiMuIEFzIGEgdGFyZ2V0IGRldmljZSBp biB0aGlzIHNjZW5hcmlvLCBubyBhY3Rpb24gaXMKKysqKiAgcmVxdWlyZWQgYW5kIG5vIGVy cm9yIGJpdHMgYXJlIHNldC4KKysqKj09PT09PT09PT09PT09PT09PT09PVNwbGl0IFJlc3Bv bnNlIFRlcm1pbmF0aW9uPT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICBBcyBhIHRh cmdldCwgdGhlIEFUVSBtYXkgZW5jb3VudGVyIHRoaXMgZXJyb3Igd2hlbiBvcGVyYXRpbmcg aW4gdGhlIFBDSS1YIG1vZGUuCisrKiogIEluYm91bmQgcmVhZCBkYXRhIHBhcml0eSBlcnJv cnMgb2NjdXIgZHVyaW5nIHRoZSBTcGxpdCBSZXNwb25zZSBUZXJtaW5hdGlvbi4gVGhlIGlu aXRpYXRvciBtYXkKKysqKiAgb3B0aW9uYWxseSByZXBvcnQgdGhlIGVycm9yIHRvIHRoZSBz eXN0ZW0gYnkgYXNzZXJ0aW5nIFBFUlIjLiBBcyBhIHRhcmdldCBkZXZpY2UgaW4gdGhpcyBz Y2VuYXJpbywgbm8KKysqKiAgYWN0aW9uIGlzIHJlcXVpcmVkIGFuZCBubyBlcnJvciBiaXRz IGFyZSBzZXQuCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKworKy8qCisrKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKysqKiAgICAgICAgICAgICAgSW5ib3VuZCBXcml0ZSBSZXF1ZXN0 IERhdGEgUGFyaXR5IEVycm9ycworKyoqPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKioJQXMgYSB0 YXJnZXQsIHRoZSBBVFUgbWF5IGVuY291bnRlciB0aGlzIGVycm9yIHdoZW4gb3BlcmF0aW5n IGluIHRoZSBDb252ZW50aW9uYWwgb3IgUENJLVggbW9kZXMuCisrKioJRGF0YSBwYXJpdHkg ZXJyb3JzIG9jY3VycmluZyBkdXJpbmcgd3JpdGUgb3BlcmF0aW9ucyByZWNlaXZlZCBieSB0 aGUgQVRVIG1heSBhc3NlcnQgUEVSUiMgb24KKysqKgl0aGUgUENJIEJ1cy4gV2hlbiBhbiBl cnJvciBvY2N1cnMsIHRoZSBBVFUgY29udGludWVzIGFjY2VwdGluZyBkYXRhIHVudGlsIHRo ZSBpbml0aWF0b3Igb2YgdGhlIHdyaXRlCisrKioJdHJhbnNhY3Rpb24gY29tcGxldGVzIG9y IGEgcXVldWUgZmlsbCBjb25kaXRpb24gaXMgcmVhY2hlZC4gU3BlY2lmaWNhbGx5LCB0aGUg Zm9sbG93aW5nIGFjdGlvbnMgd2l0aAorKyoqCXRoZSBnaXZlbiBjb25zdHJhaW50cyBhcmUg dGFrZW4gYnkgdGhlIEFUVToKKysqKgmhRSBQRVJSIyBpcyBhc3NlcnRlZCB0d28gY2xvY2tz IGN5Y2xlcyAodGhyZWUgY2xvY2sgY3ljbGVzIHdoZW4gb3BlcmF0aW5nIGluIHRoZSBQQ0kt WCBtb2RlKQorKyoqCWZvbGxvd2luZyB0aGUgZGF0YSBwaGFzZSBpbiB3aGljaCB0aGUgZGF0 YSBwYXJpdHkgZXJyb3IgaXMgZGV0ZWN0ZWQgb24gdGhlIGJ1cy4gVGhpcyBpcyBvbmx5Cisr KioJZG9uZSB3aGVuIHRoZSBQYXJpdHkgRXJyb3IgUmVzcG9uc2UgYml0IGluIHRoZSBBVFVD TUQgaXMgc2V0LgorKyoqCaFFIFRoZSBEZXRlY3RlZCBQYXJpdHkgRXJyb3IgYml0IGluIHRo ZSBBVFVTUiBpcyBzZXQuIFdoZW4gdGhlIEFUVSBzZXRzIHRoaXMgYml0LCBhZGRpdGlvbmFs CisrKioJYWN0aW9ucyBpcyB0YWtlbjoKKysqKgmhWCBXaGVuIHRoZSBBVFUgRGV0ZWN0ZWQg UGFyaXR5IEVycm9yIEludGVycnVwdCBNYXNrIGJpdCBpbiB0aGUgQVRVSU1SIGlzIGNsZWFy LCBzZXQgdGhlCisrKioJRGV0ZWN0ZWQgUGFyaXR5IEVycm9yIGJpdCBpbiB0aGUgQVRVSVNS LiBXaGVuIHNldCwgbm8gYWN0aW9uLgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisr CisrCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgICAgICAgICAgICAgICAg SW5ib3VuZCBDb25maWd1cmF0aW9uIFdyaXRlIFJlcXVlc3QKKysqKiAgPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrKiogIEFzIGEgdGFyZ2V0LCB0aGUgQVRVIG1heSBlbmNvdW50ZXIgdGhpcyBlcnJv ciB3aGVuIG9wZXJhdGluZyBpbiB0aGUgQ29udmVudGlvbmFsIG9yIFBDSS1YIG1vZGVzLgor KyoqICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor KyoqICAgICAgICAgICAgICBDb252ZW50aW9uYWwgUENJIE1vZGUKKysqKiAgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgVG8gYWxsb3cg Zm9yIGNvcnJlY3QgZGF0YSBwYXJpdHkgY2FsY3VsYXRpb25zIGZvciBkZWxheWVkIHdyaXRl IHRyYW5zYWN0aW9ucywgdGhlIEFUVSBkZWxheXMgdGhlCisrKiogIGFzc2VydGlvbiBvZiBT VE9QIyAoc2lnbmFsbGluZyBhIFJldHJ5KSB1bnRpbCBQQVIgaXMgZHJpdmVuIGJ5IHRoZSBt YXN0ZXIuIEEgcGFyaXR5IGVycm9yIGR1cmluZyBhCisrKiogIGRlbGF5ZWQgd3JpdGUgdHJh bnNhY3Rpb24gKGluYm91bmQgY29uZmlndXJhdGlvbiB3cml0ZSBjeWNsZSkgY2FuIG9jY3Vy IGluIGFueSBvZiB0aGUgZm9sbG93aW5nCisrKiogIHBhcnRzIG9mIHRoZSB0cmFuc2FjdGlv bnM6CisrKiogIKFFIER1cmluZyB0aGUgaW5pdGlhbCBEZWxheWVkIFdyaXRlIFJlcXVlc3Qg Y3ljbGUgb24gdGhlIFBDSSBidXMgd2hlbiB0aGUgQVRVIGxhdGNoZXMgdGhlCisrKiogIGFk ZHJlc3MvY29tbWFuZCBhbmQgZGF0YSBmb3IgZGVsYXllZCBkZWxpdmVyeSB0byB0aGUgaW50 ZXJuYWwgY29uZmlndXJhdGlvbiByZWdpc3Rlci4KKysqKiAgoUUgRHVyaW5nIHRoZSBEZWxh eWVkIFdyaXRlIENvbXBsZXRpb24gY3ljbGUgb24gdGhlIFBDSSBidXMgd2hlbiB0aGUgQVRV IGRlbGl2ZXJzIHRoZSBzdGF0dXMKKysqKiAgb2YgdGhlIG9wZXJhdGlvbiBiYWNrIHRvIHRo ZSBvcmlnaW5hbCBtYXN0ZXIuCisrKiogIFRoZSA4MDMzMSBBVFUgUENJIGludGVyZmFjZSBo YXMgdGhlIGZvbGxvd2luZyByZXNwb25zZXMgdG8gYSBkZWxheWVkIHdyaXRlIHBhcml0eSBl cnJvciBmb3IKKysqKiAgaW5ib3VuZCB0cmFuc2FjdGlvbnMgZHVyaW5nIERlbGF5ZWQgV3Jp dGUgUmVxdWVzdCBjeWNsZXMgd2l0aCB0aGUgZ2l2ZW4gY29uc3RyYWludHM6CisrKiogIKFF IFdoZW4gdGhlIFBhcml0eSBFcnJvciBSZXNwb25zZSBiaXQgaW4gdGhlIEFUVUNNRCBpcyBz ZXQsIHRoZSBBVFUgYXNzZXJ0cyBUUkRZIworKyoqICAoZGlzY29ubmVjdHMgd2l0aCBkYXRh KSBhbmQgdHdvIGNsb2NrIGN5Y2xlcyBsYXRlciBhc3NlcnRzIFBFUlIjIG5vdGlmeWluZyB0 aGUgaW5pdGlhdG9yIG9mIHRoZQorKyoqICBwYXJpdHkgZXJyb3IuIFRoZSBkZWxheWVkIHdy aXRlIGN5Y2xlIGlzIG5vdCBlbnF1ZXVlZCBhbmQgZm9yd2FyZGVkIHRvIHRoZSBpbnRlcm5h bCBidXMuCisrKiogIFdoZW4gdGhlIFBhcml0eSBFcnJvciBSZXNwb25zZSBiaXQgaW4gdGhl IEFUVUNNRCBpcyBjbGVhcmVkLCB0aGUgQVRVIHJldHJpZXMgdGhlCisrKiogIHRyYW5zYWN0 aW9uIGJ5IGFzc2VydGluZyBTVE9QIyBhbmQgZW5xdWV1ZXMgdGhlIERlbGF5ZWQgV3JpdGUg UmVxdWVzdCBjeWNsZSB0byBiZQorKyoqICBmb3J3YXJkZWQgdG8gdGhlIGludGVybmFsIGJ1 cy4gUEVSUiMgaXMgbm90IGFzc2VydGVkLgorKyoqICChRSBUaGUgRGV0ZWN0ZWQgUGFyaXR5 IEVycm9yIGJpdCBpbiB0aGUgQVRVU1IgaXMgc2V0LiBXaGVuIHRoZSBBVFUgc2V0cyB0aGlz IGJpdCwgYWRkaXRpb25hbAorKyoqICBhY3Rpb25zIGlzIHRha2VuOgorKyoqICChWCBXaGVu IHRoZSBBVFUgRGV0ZWN0ZWQgUGFyaXR5IEVycm9yIEludGVycnVwdCBNYXNrIGJpdCBpbiB0 aGUgQVRVSU1SIGlzIGNsZWFyLCBzZXQgdGhlCisrKiogIERldGVjdGVkIFBhcml0eSBFcnJv ciBiaXQgaW4gdGhlIEFUVUlTUi4gV2hlbiBzZXQsIG5vIGFjdGlvbi4KKysqKiAgRm9yIHRo ZSBvcmlnaW5hbCB3cml0ZSB0cmFuc2FjdGlvbiB0byBiZSBjb21wbGV0ZWQsIHRoZSBpbml0 aWF0b3IgcmV0cmllcyB0aGUgdHJhbnNhY3Rpb24gb24gdGhlIFBDSQorKyoqICBidXMgYW5k IHRoZSBBVFUgcmV0dXJucyB0aGUgc3RhdHVzIGZyb20gdGhlIGludGVybmFsIGJ1cywgY29t cGxldGluZyB0aGUgdHJhbnNhY3Rpb24uCisrKiogIEZvciB0aGUgRGVsYXllZCBXcml0ZSBD b21wbGV0aW9uIHRyYW5zYWN0aW9uIG9uIHRoZSBQQ0kgYnVzIHdoZXJlIGEgZGF0YSBwYXJp dHkgZXJyb3Igb2NjdXJzIGFuZAorKyoqICB0aGVyZWZvcmUgZG9lcyBub3QgYWdyZWUgd2l0 aCB0aGUgc3RhdHVzIGJlaW5nIHJldHVybmVkIGZyb20gdGhlIGludGVybmFsIGJ1cyAoaS5l LiBzdGF0dXMgYmVpbmcKKysqKiAgcmV0dXJuZWQgaXMgbm9ybWFsIGNvbXBsZXRpb24pIHRo ZSBBVFUgcGVyZm9ybXMgdGhlIGZvbGxvd2luZyBhY3Rpb25zIHdpdGggdGhlIGdpdmVuIGNv bnN0cmFpbnRzOgorKyoqICChRSBXaGVuIHRoZSBQYXJpdHkgRXJyb3IgUmVzcG9uc2UgQml0 IGlzIHNldCBpbiB0aGUgQVRVQ01ELCB0aGUgQVRVIGFzc2VydHMgVFJEWSMKKysqKiAgKGRp c2Nvbm5lY3RzIHdpdGggZGF0YSkgYW5kIHR3byBjbG9ja3MgbGF0ZXIgYXNzZXJ0cyBQRVJS Iy4gVGhlIERlbGF5ZWQgQ29tcGxldGlvbiBjeWNsZSBpbgorKyoqICB0aGUgSURXUSByZW1h aW5zIHNpbmNlIHRoZSBkYXRhIG9mIHJldHJpZWQgY29tbWFuZCBkaWQgbm90IG1hdGNoIHRo ZSBkYXRhIHdpdGhpbiB0aGUgcXVldWUuCisrKiogIKFFIFRoZSBEZXRlY3RlZCBQYXJpdHkg RXJyb3IgYml0IGluIHRoZSBBVFVTUiBpcyBzZXQuIFdoZW4gdGhlIEFUVSBzZXRzIHRoaXMg Yml0LCBhZGRpdGlvbmFsCisrKiogIGFjdGlvbnMgaXMgdGFrZW46CisrKiogIKFYIFdoZW4g dGhlIEFUVSBEZXRlY3RlZCBQYXJpdHkgRXJyb3IgSW50ZXJydXB0IE1hc2sgYml0IGluIHRo ZSBBVFVJTVIgaXMgY2xlYXIsIHNldCB0aGUKKysqKiAgRGV0ZWN0ZWQgUGFyaXR5IEVycm9y IGJpdCBpbiB0aGUgQVRVSVNSLiBXaGVuIHNldCwgbm8gYWN0aW9uLgorKyoqICA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gCisrKiogICAg ICAgICAgICAgICAgICAgICAgIFBDSS1YIE1vZGUKKysqKiAgPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIERhdGEgcGFyaXR5IGVy cm9ycyBvY2N1cnJpbmcgZHVyaW5nIGNvbmZpZ3VyYXRpb24gd3JpdGUgb3BlcmF0aW9ucyBy ZWNlaXZlZCBieSB0aGUgQVRVIG1heSBjYXVzZQorKyoqICBQRVJSIyBhc3NlcnRpb24gYW5k IGRlbGl2ZXJ5IG9mIGEgU3BsaXQgQ29tcGxldGlvbiBFcnJvciBNZXNzYWdlIG9uIHRoZSBQ Q0kgQnVzLiBXaGVuIGFuIGVycm9yCisrKiogIG9jY3VycywgdGhlIEFUVSBhY2NlcHRzIHRo ZSB3cml0ZSBkYXRhIGFuZCBjb21wbGV0ZSB3aXRoIGEgU3BsaXQgUmVzcG9uc2UgVGVybWlu YXRpb24uCisrKiogIFNwZWNpZmljYWxseSwgdGhlIGZvbGxvd2luZyBhY3Rpb25zIHdpdGgg dGhlIGdpdmVuIGNvbnN0cmFpbnRzIGFyZSB0aGVuIHRha2VuIGJ5IHRoZSBBVFU6CisrKiog IKFFIFdoZW4gdGhlIFBhcml0eSBFcnJvciBSZXNwb25zZSBiaXQgaW4gdGhlIEFUVUNNRCBp cyBzZXQsIFBFUlIjIGlzIGFzc2VydGVkIHRocmVlIGNsb2NrcworKyoqICBjeWNsZXMgZm9s bG93aW5nIHRoZSBTcGxpdCBSZXNwb25zZSBUZXJtaW5hdGlvbiBpbiB3aGljaCB0aGUgZGF0 YSBwYXJpdHkgZXJyb3IgaXMgZGV0ZWN0ZWQgb24KKysqKiAgdGhlIGJ1cy4gV2hlbiB0aGUg QVRVIGFzc2VydHMgUEVSUiMsIGFkZGl0aW9uYWwgYWN0aW9ucyBpcyB0YWtlbjoKKysqKiAg oVggQSBTcGxpdCBXcml0ZSBEYXRhIFBhcml0eSBFcnJvciBtZXNzYWdlICh3aXRoIG1lc3Nh Z2UgY2xhc3M9MmggLSBjb21wbGV0ZXIgZXJyb3IgYW5kCisrKiogIG1lc3NhZ2UgaW5kZXg9 MDFoIC0gU3BsaXQgV3JpdGUgRGF0YSBQYXJpdHkgRXJyb3IpIGlzIGluaXRpYXRlZCBieSB0 aGUgQVRVIG9uIHRoZSBQQ0kgYnVzCisrKiogIHRoYXQgYWRkcmVzc2VzIHRoZSByZXF1ZXN0 ZXIgb2YgdGhlIGNvbmZpZ3VyYXRpb24gd3JpdGUuCisrKiogIKFYIFdoZW4gdGhlIEluaXRp YXRlZCBTcGxpdCBDb21wbGV0aW9uIEVycm9yIE1lc3NhZ2UgSW50ZXJydXB0IE1hc2sgaW4g dGhlIEFUVUlNUiBpcworKyoqICBjbGVhciwgc2V0IHRoZSBJbml0aWF0ZWQgU3BsaXQgQ29t cGxldGlvbiBFcnJvciBNZXNzYWdlIGJpdCBpbiB0aGUgQVRVSVNSLiBXaGVuIHNldCwgbm8K KysqKiAgYWN0aW9uLgorKyoqICChWCBUaGUgU3BsaXQgV3JpdGUgUmVxdWVzdCBpcyBub3Qg ZW5xdWV1ZWQgYW5kIGZvcndhcmRlZCB0byB0aGUgaW50ZXJuYWwgYnVzLgorKyoqICChRSBU aGUgRGV0ZWN0ZWQgUGFyaXR5IEVycm9yIGJpdCBpbiB0aGUgQVRVU1IgaXMgc2V0LiBXaGVu IHRoZSBBVFUgc2V0cyB0aGlzIGJpdCwgYWRkaXRpb25hbAorKyoqICBhY3Rpb25zIGlzIHRh a2VuOgorKyoqICChWCBXaGVuIHRoZSBBVFUgRGV0ZWN0ZWQgUGFyaXR5IEVycm9yIEludGVy cnVwdCBNYXNrIGJpdCBpbiB0aGUgQVRVSU1SIGlzIGNsZWFyLCBzZXQgdGhlCisrKiogIERl dGVjdGVkIFBhcml0eSBFcnJvciBiaXQgaW4gdGhlIEFUVUlTUi4gV2hlbiBzZXQsIG5vIGFj dGlvbi4KKysqKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyovCisrCisrLyoKKysqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioKKysqKiAgICAgICAgICAgICAgICAgICAgICAgU3BsaXQgQ29t cGxldGlvbiBNZXNzYWdlcworKyoqICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICBBcyBhIHRh cmdldCwgdGhlIEFUVSBtYXkgZW5jb3VudGVyIHRoaXMgZXJyb3Igd2hlbiBvcGVyYXRpbmcg aW4gdGhlIFBDSS1YIG1vZGUuCisrKiogIERhdGEgcGFyaXR5IGVycm9ycyBvY2N1cnJpbmcg ZHVyaW5nIFNwbGl0IENvbXBsZXRpb24gTWVzc2FnZXMgY2xhaW1lZCBieSB0aGUgQVRVIG1h eSBhc3NlcnQKKysqKiAgUEVSUiMgKHdoZW4gZW5hYmxlZCkgb3IgU0VSUiMgKHdoZW4gZW5h YmxlZCkgb24gdGhlIFBDSSBCdXMuIFdoZW4gYW4gZXJyb3Igb2NjdXJzLCB0aGUKKysqKiAg QVRVIGFjY2VwdHMgdGhlIGRhdGEgYW5kIGNvbXBsZXRlIG5vcm1hbGx5LiBTcGVjaWZpY2Fs bHksIHRoZSBmb2xsb3dpbmcgYWN0aW9ucyB3aXRoIHRoZSBnaXZlbgorKyoqICBjb25zdHJh aW50cyBhcmUgdGFrZW4gYnkgdGhlIEFUVToKKysqKiAgoUUgUEVSUiMgaXMgYXNzZXJ0ZWQg dGhyZWUgY2xvY2tzIGN5Y2xlcyBmb2xsb3dpbmcgdGhlIGRhdGEgcGhhc2UgaW4gd2hpY2gg dGhlIGRhdGEgcGFyaXR5IGVycm9yCisrKiogIGlzIGRldGVjdGVkIG9uIHRoZSBidXMuIFRo aXMgaXMgb25seSBkb25lIHdoZW4gdGhlIFBhcml0eSBFcnJvciBSZXNwb25zZSBiaXQgaW4g dGhlIEFUVUNNRAorKyoqICBpcyBzZXQuIFdoZW4gdGhlIEFUVSBhc3NlcnRzIFBFUlIjLCBh ZGRpdGlvbmFsIGFjdGlvbnMgaXMgdGFrZW46CisrKiogIKFYIFRoZSBNYXN0ZXIgUGFyaXR5 IEVycm9yIGJpdCBpbiB0aGUgQVRVU1IgaXMgc2V0LgorKyoqICChWCBXaGVuIHRoZSBBVFUg UENJIE1hc3RlciBQYXJpdHkgRXJyb3IgSW50ZXJydXB0IE1hc2sgQml0IGluIHRoZSBBVFVJ TVIgaXMgY2xlYXIsIHNldCB0aGUKKysqKiAgUENJIE1hc3RlciBQYXJpdHkgRXJyb3IgYml0 IGluIHRoZSBBVFVJU1IuIFdoZW4gc2V0LCBubyBhY3Rpb24uCisrKiogIKFYIFdoZW4gdGhl IFNFUlIjIEVuYWJsZSBiaXQgaW4gdGhlIEFUVUNNRCBpcyBzZXQsIGFuZCB0aGUgRGF0YSBQ YXJpdHkgRXJyb3IgUmVjb3ZlcgorKyoqICBFbmFibGUgYml0IGluIHRoZSBQQ0lYQ01EIHJl Z2lzdGVyIGlzIGNsZWFyLCBhc3NlcnQgU0VSUiM7IG90aGVyd2lzZSBubyBhY3Rpb24gaXMg dGFrZW4uCisrKiogIFdoZW4gdGhlIEFUVSBhc3NlcnRzIFNFUlIjLCBhZGRpdGlvbmFsIGFj dGlvbnMgaXMgdGFrZW46CisrKiogIFNldCB0aGUgU0VSUiMgQXNzZXJ0ZWQgYml0IGluIHRo ZSBBVFVTUi4KKysqKiAgV2hlbiB0aGUgQVRVIFNFUlIjIEFzc2VydGVkIEludGVycnVwdCBN YXNrIEJpdCBpbiB0aGUgQVRVSU1SIGlzIGNsZWFyLCBzZXQgdGhlCisrKiogIFNFUlIjIEFz c2VydGVkIGJpdCBpbiB0aGUgQVRVSVNSLiBXaGVuIHNldCwgbm8gYWN0aW9uLgorKyoqICBX aGVuIHRoZSBBVFUgU0VSUiMgRGV0ZWN0ZWQgSW50ZXJydXB0IEVuYWJsZSBCaXQgaW4gdGhl IEFUVUNSIGlzIHNldCwgc2V0IHRoZQorKyoqICBTRVJSIyBEZXRlY3RlZCBiaXQgaW4gdGhl IEFUVUlTUi4gV2hlbiBjbGVhciwgbm8gYWN0aW9uLgorKyoqICChRSBXaGVuIHRoZSBTQ0Ug Yml0IChTcGxpdCBDb21wbGV0aW9uIEVycm9yIC0tIGJpdCAzMCBvZiB0aGUgQ29tcGxldGVy IEF0dHJpYnV0ZXMpIGlzIHNldCBkdXJpbmcKKysqKiAgdGhlIEF0dHJpYnV0ZSBwaGFzZSwg dGhlIFJlY2VpdmVkIFNwbGl0IENvbXBsZXRpb24gRXJyb3IgTWVzc2FnZSBiaXQgaW4gdGhl IFBDSVhTUiBpcyBzZXQuCisrKiogIFdoZW4gdGhlIEFUVSBzZXRzIHRoaXMgYml0LCBhZGRp dGlvbmFsIGFjdGlvbnMgaXMgdGFrZW46CisrKiogIKFYIFdoZW4gdGhlIEFUVSBSZWNlaXZl ZCBTcGxpdCBDb21wbGV0aW9uIEVycm9yIE1lc3NhZ2UgSW50ZXJydXB0IE1hc2sgYml0IGlu IHRoZQorKyoqICBBVFVJTVIgaXMgY2xlYXIsIHNldCB0aGUgUmVjZWl2ZWQgU3BsaXQgQ29t cGxldGlvbiBFcnJvciBNZXNzYWdlIGJpdCBpbiB0aGUgQVRVSVNSLgorKyoqICBXaGVuIHNl dCwgbm8gYWN0aW9uLgorKyoqICChRSBUaGUgRGV0ZWN0ZWQgUGFyaXR5IEVycm9yIGJpdCBp biB0aGUgQVRVU1IgaXMgc2V0LiBXaGVuIHRoZSBBVFUgc2V0cyB0aGlzIGJpdCwgYWRkaXRp b25hbAorKyoqICBhY3Rpb25zIGlzIHRha2VuOgorKyoqICChWCBXaGVuIHRoZSBBVFUgRGV0 ZWN0ZWQgUGFyaXR5IEVycm9yIEludGVycnVwdCBNYXNrIGJpdCBpbiB0aGUgQVRVSU1SIGlz IGNsZWFyLCBzZXQgdGhlCisrKiogIERldGVjdGVkIFBhcml0eSBFcnJvciBiaXQgaW4gdGhl IEFUVUlTUi4gV2hlbiBzZXQsIG5vIGFjdGlvbi4KKysqKiAgoUUgVGhlIHRyYW5zYWN0aW9u IGFzc29jaWF0ZWQgd2l0aCB0aGUgU3BsaXQgQ29tcGxldGlvbiBNZXNzYWdlIGlzIGRpc2Nh cmRlZC4KKysqKiAgoUUgV2hlbiB0aGUgZGlzY2FyZGVkIHRyYW5zYWN0aW9uIHdhcyBhIHJl YWQsIGEgY29tcGxldGlvbiBlcnJvciBtZXNzYWdlICh3aXRoIG1lc3NhZ2UKKysqKiAgY2xh c3M9MmggLSBjb21wbGV0ZXIgZXJyb3IgYW5kIG1lc3NhZ2UgaW5kZXg9ODJoIC0gUENJIGJ1 cyByZWFkIHBhcml0eSBlcnJvcikgaXMgZ2VuZXJhdGVkIG9uCisrKiogIHRoZSBpbnRlcm5h bCBidXMgb2YgdGhlIDgwMzMxLgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysK KysKKysKKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogICAgICAgICAgICAg ICAgICAgICAgVGhlb3J5IG9mIE1VIE9wZXJhdGlvbgorKyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCisrKiotLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICAgaW5ib3VuZF9tc2dhZGRyMDoK KysqKiAgIGluYm91bmRfbXNnYWRkcjE6CisrKiogIG91dGJvdW5kX21zZ2FkZHIwOgorKyoq ICBvdXRib3VuZF9tc2dhZGRyMToKKysqKiAgLiAgVGhlIE1VIGhhcyBmb3VyIGluZGVwZW5k ZW50IG1lc3NhZ2luZyBtZWNoYW5pc21zLgorKyoqICAgICBUaGVyZSBhcmUgZm91ciBNZXNz YWdlIFJlZ2lzdGVycyB0aGF0IGFyZSBzaW1pbGFyIHRvIGEgY29tYmluYXRpb24gb2YgbWFp bGJveCBhbmQgZG9vcmJlbGwgcmVnaXN0ZXJzLiAKKysqKiAgICAgRWFjaCBob2xkcyBhIDMy LWJpdCB2YWx1ZSBhbmQgZ2VuZXJhdGVzIGFuIGludGVycnVwdCB3aGVuIHdyaXR0ZW4uCisr KiotLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICAgaW5ib3VuZF9kb29yYmVsbDoKKysqKiAg b3V0Ym91bmRfZG9vcmJlbGw6CisrKiogIC4gIFRoZSB0d28gRG9vcmJlbGwgUmVnaXN0ZXJz IHN1cHBvcnQgc29mdHdhcmUgaW50ZXJydXB0cy4gCisrKiogICAgIFdoZW4gYSBiaXQgaXMg c2V0IGluIGEgRG9vcmJlbGwgUmVnaXN0ZXIsIGFuIGludGVycnVwdCBpcyBnZW5lcmF0ZWQu CisrKiotLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBpbmJvdW5kX3F1ZXVlcG9ydDoKKysq KiBvdXRib3VuZF9xdWV1ZXBvcnQ6CisrKioKKysqKgorKyoqICAuICBUaGUgQ2lyY3VsYXIg UXVldWVzIHN1cHBvcnQgYSBtZXNzYWdlIHBhc3Npbmcgc2NoZW1lIHRoYXQgdXNlcyA0IGNp cmN1bGFyIHF1ZXVlcy4gCisrKiogICAgIFRoZSA0IGNpcmN1bGFyIHF1ZXVlcyBhcmUgaW1w bGVtZW50ZWQgaW4gODAzMzEgbG9jYWwgbWVtb3J5LiAKKysqKiAgICAgVHdvIHF1ZXVlcyBh cmUgdXNlZCBmb3IgaW5ib3VuZCBtZXNzYWdlcyBhbmQgdHdvIGFyZSB1c2VkIGZvciBvdXRi b3VuZCBtZXNzYWdlcy4gCisrKiogICAgIEludGVycnVwdHMgbWF5IGJlIGdlbmVyYXRlZCB3 aGVuIHRoZSBxdWV1ZSBpcyB3cml0dGVuLgorKyoqLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysq KiBsb2NhbF9idWZmZXIgMHgwMDUwIC4uLi4weDBGRkYKKysqKiAgLiAgVGhlIEluZGV4IFJl Z2lzdGVycyB1c2UgYSBwb3J0aW9uIG9mIHRoZSA4MDMzMSBsb2NhbCBtZW1vcnkgdG8gaW1w bGVtZW50IGEgbGFyZ2Ugc2V0IG9mIG1lc3NhZ2UgcmVnaXN0ZXJzLiAKKysqKiAgICAgV2hl biBvbmUgb2YgdGhlIEluZGV4IFJlZ2lzdGVycyBpcyB3cml0dGVuLCBhbiBpbnRlcnJ1cHQg aXMgZ2VuZXJhdGVkIGFuZCB0aGUgYWRkcmVzcyBvZiB0aGUgcmVnaXN0ZXIgd3JpdHRlbiBp cyBjYXB0dXJlZC4KKysqKiAgICAgSW50ZXJydXB0IHN0YXR1cyBmb3IgYWxsIGludGVycnVw dHMgaXMgcmVjb3JkZWQgaW4gdGhlIEluYm91bmQgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3Rl ciBhbmQgdGhlIE91dGJvdW5kIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIuIAorKyoqICAg ICBFYWNoIGludGVycnVwdCBnZW5lcmF0ZWQgYnkgdGhlIE1lc3NhZ2luZyBVbml0IGNhbiBi ZSBtYXNrZWQuCisrKiotLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICAuICBNdWx0aS1EV09S RCBQQ0kgYnVyc3QgYWNjZXNzZXMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIE1lc3NhZ2lu ZyBVbml0LCAKKysqKiAgICAgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIE11bHRpLURXT1JEIHJl YWRzIHRvIHRoZSBpbmRleCByZWdpc3RlcnMuIAorKyoqICAgICBJbiBDb252ZW50aW9uYWwg bW9kZTogdGhlIE1VIHRlcm1pbmF0ZXMgICBNdWx0aS1EV09SRCBQQ0kgdHJhbnNhY3Rpb25z IChvdGhlciB0aGFuIGluZGV4IHJlZ2lzdGVyIHJlYWRzKSB3aXRoIGEgZGlzY29ubmVjdCBh dCB0aGUgbmV4dCBRd29yZCBib3VuZGFyeSwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHF1ZXVl IHBvcnRzLiAKKysqKiAgICAgSW4gUENJLVggbW9kZSAgICAgICA6IHRoZSBNVSB0ZXJtaW5h dGVzIGEgTXVsdGktRFdPUkQgUENJIHJlYWQgdHJhbnNhY3Rpb24gd2l0aCBhIFNwbGl0IFJl c3BvbnNlIGFuZCB0aGUgZGF0YSBpcyByZXR1cm5lZCB0aHJvdWdoIHNwbGl0IGNvbXBsZXRp b24gdHJhbnNhY3Rpb24ocykuCisrKiogICAgIGhvd2V2ZXIsIHdoZW4gdGhlIGJ1cnN0IHJl cXVlc3QgY3Jvc3NlcyBpbnRvIG9yIHRocm91Z2ggdGhlIHJhbmdlIG9mICBvZmZzZXRzIDQw aCB0byA0Q2ggKGUuZy4sIHRoaXMgaW5jbHVkZXMgdGhlIHF1ZXVlIHBvcnRzKSB0aGUgdHJh bnNhY3Rpb24gaXMgc2lnbmFsZWQgdGFyZ2V0LWFib3J0IGltbWVkaWF0ZWx5IG9uIHRoZSBQ Q0kgYnVzLiAKKysqKgkgICBJbiBQQ0ktWCBtb2RlLCBNdWx0aS1EV09SRCBQQ0kgd3JpdGVz IGlzIHNpZ25hbGVkIGEgU2luZ2xlLURhdGEtUGhhc2UgRGlzY29ubmVjdCB3aGljaCBtZWFu cyB0aGF0IG5vIGRhdGEgYmV5b25kIHRoZSBmaXJzdCBRd29yZCAoRHdvcmQgd2hlbiB0aGUg TVUgZG9lcyBub3QgYXNzZXJ0IFBfQUNLNjQjKSBpcyB3cml0dGVuLgorKyoqLS0tLS0tLS0t LS0tLS0tLS0tLS0KKysqKiAgLiAgQWxsIHJlZ2lzdGVycyBuZWVkZWQgdG8gY29uZmlndXJl IGFuZCBjb250cm9sIHRoZSBNZXNzYWdpbmcgVW5pdCBhcmUgbWVtb3J5LW1hcHBlZCByZWdp c3RlcnMuCisrKiogICAgIFRoZSBNVSB1c2VzIHRoZSBmaXJzdCA0IEtieXRlcyBvZiB0aGUg aW5ib3VuZCB0cmFuc2xhdGlvbiB3aW5kb3cgaW4gdGhlIEFkZHJlc3MgVHJhbnNsYXRpb24g VW5pdCAoQVRVKS4KKysqKiAgICAgVGhpcyBQQ0kgYWRkcmVzcyB3aW5kb3cgaXMgdXNlZCBm b3IgUENJIHRyYW5zYWN0aW9ucyB0aGF0IGFjY2VzcyB0aGUgODAzMzEgbG9jYWwgbWVtb3J5 LgorKyoqICAgICBUaGUgIFBDSSBhZGRyZXNzIG9mIHRoZSBpbmJvdW5kIHRyYW5zbGF0aW9u IHdpbmRvdyBpcyBjb250YWluZWQgaW4gdGhlIEluYm91bmQgQVRVIEJhc2UgQWRkcmVzcyBS ZWdpc3Rlci4KKysqKi0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIC4gIEZyb20gdGhlIFBD SSBwZXJzcGVjdGl2ZSwgdGhlIE1lc3NhZ2luZyBVbml0IGlzIHBhcnQgb2YgdGhlIEFkZHJl c3MgVHJhbnNsYXRpb24gVW5pdC4KKysqKiAgICAgVGhlIE1lc3NhZ2luZyBVbml0IHVzZXMg dGhlIFBDSSBjb25maWd1cmF0aW9uIHJlZ2lzdGVycyBvZiB0aGUgQVRVIGZvciBjb250cm9s IGFuZCBzdGF0dXMgaW5mb3JtYXRpb24uCisrKiogICAgIFRoZSBNZXNzYWdpbmcgVW5pdCBt dXN0IG9ic2VydmUgYWxsIFBDSSBjb250cm9sIGJpdHMgaW4gdGhlIEFUVSBDb21tYW5kIFJl Z2lzdGVyIGFuZCBBVFUgQ29uZmlndXJhdGlvbiBSZWdpc3Rlci4KKysqKiAgICAgVGhlIE1l c3NhZ2luZyBVbml0IHJlcG9ydHMgYWxsIFBDSSBlcnJvcnMgaW4gdGhlIEFUVSBTdGF0dXMg UmVnaXN0ZXIuCisrKiotLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICAuICBQYXJ0cyBvZiB0 aGUgTWVzc2FnaW5nIFVuaXQgY2FuIGJlIGFjY2Vzc2VkIGFzIGEgNjQtYml0IFBDSSBkZXZp Y2UuIAorKyoqICAgICBUaGUgcmVnaXN0ZXIgaW50ZXJmYWNlLCBtZXNzYWdlIHJlZ2lzdGVy cywgZG9vcmJlbGwgcmVnaXN0ZXJzLCBhbmQgaW5kZXggcmVnaXN0ZXJzIHJldHVybnMgYSBQ X0FDSzY0IyBpbiByZXNwb25zZSB0byBhIFBfUkVRNjQjIG9uIHRoZSBQQ0kgaW50ZXJmYWNl LiAKKysqKiAgICAgVXAgdG8gMSBRd29yZCBvZiBkYXRhIGNhbiBiZSByZWFkIG9yIHdyaXR0 ZW4gcGVyIHRyYW5zYWN0aW9uIChleGNlcHQgSW5kZXggUmVnaXN0ZXIgcmVhZHMpLiAKKysq KiAgICAgVGhlIEluYm91bmQgYW5kIE91dGJvdW5kIFF1ZXVlIFBvcnRzIGFyZSBhbHdheXMg MzItYml0IGFkZHJlc3NlcyBhbmQgdGhlIE1VIGRvZXMgbm90IGFzc2VydCBQX0FDSzY0IyB0 byBvZmZzZXRzIDQwSCBhbmQgNDRILgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysv KgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIE1lc3NhZ2UgUmVnaXN0ZXJzCisrKiog ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICAuIE1lc3NhZ2VzIGNhbiBi ZSBzZW50IGFuZCByZWNlaXZlZCBieSB0aGUgODAzMzEgdGhyb3VnaCB0aGUgdXNlIG9mIHRo ZSBNZXNzYWdlIFJlZ2lzdGVycy4gCisrKiogIC4gV2hlbiB3cml0dGVuLCB0aGUgbWVzc2Fn ZSByZWdpc3RlcnMgbWF5IGNhdXNlIGFuIGludGVycnVwdCB0byBiZSBnZW5lcmF0ZWQgdG8g ZWl0aGVyIHRoZSBJbnRlbCBYU2NhbGUgY29yZSBvciB0aGUgaG9zdCBwcm9jZXNzb3IuCisr KiogIC4gSW5ib3VuZCBtZXNzYWdlcyBhcmUgc2VudCBieSB0aGUgaG9zdCBwcm9jZXNzb3Ig YW5kIHJlY2VpdmVkIGJ5IHRoZSA4MDMzMS4KKysqKiAgICBPdXRib3VuZCBtZXNzYWdlcyBh cmUgc2VudCBieSB0aGUgODAzMzEgYW5kIHJlY2VpdmVkIGJ5IHRoZSBob3N0IHByb2Nlc3Nv ci4KKysqKiAgLiBUaGUgaW50ZXJydXB0IHN0YXR1cyBmb3Igb3V0Ym91bmQgbWVzc2FnZXMg aXMgcmVjb3JkZWQgaW4gdGhlIE91dGJvdW5kIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIu CisrKiogICAgSW50ZXJydXB0IHN0YXR1cyBmb3IgaW5ib3VuZCBtZXNzYWdlcyBpcyByZWNv cmRlZCBpbiB0aGUgSW5ib3VuZCBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyLgorKyoqICAK KysqKiAgSW5ib3VuZCBNZXNzYWdlczoKKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAg LiBXaGVuIGFuIGluYm91bmQgbWVzc2FnZSByZWdpc3RlciBpcyB3cml0dGVuIGJ5IGFuIGV4 dGVybmFsIFBDSSBhZ2VudCwgYW4gaW50ZXJydXB0IG1heSBiZSBnZW5lcmF0ZWQgdG8gdGhl IEludGVsIFhTY2FsZSBjb3JlLiAKKysqKiAgLiBUaGUgaW50ZXJydXB0IG1heSBiZSBtYXNr ZWQgYnkgdGhlIG1hc2sgYml0cyBpbiB0aGUgSW5ib3VuZCBJbnRlcnJ1cHQgTWFzayBSZWdp c3Rlci4KKysqKiAgLiBUaGUgSW50ZWwgWFNjYWxlIGNvcmUgaW50ZXJydXB0IGlzIHJlY29y ZGVkIGluIHRoZSBJbmJvdW5kIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIuIAorKyoqICAg IFRoZSBpbnRlcnJ1cHQgY2F1c2VzIHRoZSBJbmJvdW5kIE1lc3NhZ2UgSW50ZXJydXB0IGJp dCB0byBiZSBzZXQgaW4gdGhlIEluYm91bmQgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3Rlci4g CisrKiogICAgVGhpcyBpcyBhIFJlYWQvQ2xlYXIgYml0IHRoYXQgaXMgc2V0IGJ5IHRoZSBN VSBoYXJkd2FyZSBhbmQgY2xlYXJlZCBieSBzb2Z0d2FyZS4KKysqKiAgICBUaGUgaW50ZXJy dXB0IGlzIGNsZWFyZWQgd2hlbiB0aGUgSW50ZWwgWFNjYWxlIGNvcmUgd3JpdGVzIGEgdmFs dWUgb2YgMSB0byB0aGUgSW5ib3VuZCBNZXNzYWdlIEludGVycnVwdCBiaXQgaW4gdGhlIElu Ym91bmQgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3Rlci4KKysqKiAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrKiogIEluYm91bmQgTWVzc2FnZSBSZWdpc3RlciAtIElNUngKKysqKgorKyoqICAu IFRoZXJlIGFyZSB0d28gSW5ib3VuZCBNZXNzYWdlIFJlZ2lzdGVyczogSU1SMCBhbmQgSU1S MS4gCisrKiogIC4gV2hlbiB0aGUgSU1SIHJlZ2lzdGVyIGlzIHdyaXR0ZW4sIGFuIGludGVy cnVwdCB0byB0aGUgSW50ZWwgWFNjYWxlIGNvcmUgbWF5IGJlIGdlbmVyYXRlZC4KKysqKiAg ICBUaGUgaW50ZXJydXB0IGlzIHJlY29yZGVkIGluIHRoZSBJbmJvdW5kIEludGVycnVwdCBT dGF0dXMgUmVnaXN0ZXIgYW5kIG1heSBiZSBtYXNrZWQgYnkgdGhlIEluYm91bmQgTWVzc2Fn ZSBJbnRlcnJ1cHQgTWFzayBiaXQgaW4gdGhlIEluYm91bmQgSW50ZXJydXB0IE1hc2sgUmVn aXN0ZXIuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAg ICAgICAgICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAzMTowMCAgICAwMDAwIDAwMDBI ICAgICAgICAgICAgICAgICAgICAgSW5ib3VuZCBNZXNzYWdlIC0gVGhpcyBpcyBhIDMyLWJp dCBtZXNzYWdlIHdyaXR0ZW4gYnkgYW4gZXh0ZXJuYWwgUENJIGFnZW50LiAKKysqKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFdoZW4gd3JpdHRlbiwgYW4gaW50ZXJydXB0IHRvIHRoZSBJbnRlbCBYU2NhbGUgY29yZSBt YXkgYmUgZ2VuZXJhdGVkLgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5l ICAgICBBUkNNU1JfTVVfSU5CT1VORF9NRVNTQUdFX1JFRzAJCSAgICAgICAgICAweDEwICAg IC8qZHdvcmQgMHgxMywweDEyLDB4MTEsMHgxMCovCisrI2RlZmluZSAgICAgQVJDTVNSX01V X0lOQk9VTkRfTUVTU0FHRV9SRUcxCQkgICAgICAgICAgMHgxNCAgICAvKmR3b3JkIDB4MTcs MHgxNiwweDE1LDB4MTQqLworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgT3V0 Ym91bmQgTWVzc2FnZSBSZWdpc3RlciAtIE9NUngKKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKysqKiAgVGhlcmUgYXJlIHR3byBPdXRib3VuZCBNZXNzYWdlIFJl Z2lzdGVyczogT01SMCBhbmQgT01SMS4gV2hlbiB0aGUgT01SIHJlZ2lzdGVyIGlzCisrKiog IHdyaXR0ZW4sIGEgUENJIGludGVycnVwdCBtYXkgYmUgZ2VuZXJhdGVkLiBUaGUgaW50ZXJy dXB0IGlzIHJlY29yZGVkIGluIHRoZSBPdXRib3VuZCBJbnRlcnJ1cHQKKysqKiAgU3RhdHVz IFJlZ2lzdGVyIGFuZCBtYXkgYmUgbWFza2VkIGJ5IHRoZSBPdXRib3VuZCBNZXNzYWdlIElu dGVycnVwdCBNYXNrIGJpdCBpbiB0aGUgT3V0Ym91bmQKKysqKiAgSW50ZXJydXB0IE1hc2sg UmVnaXN0ZXIuCisrKiogIAorKyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAg ICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMzE6MDAgICAgMDAwMDAwMDBIICAgICAgICAg ICAgICAgICAgICAgIE91dGJvdW5kIE1lc3NhZ2UgLSBUaGlzIGlzIDMyLWJpdCBtZXNzYWdl IHdyaXR0ZW4gYnkgdGhlIEludGVsICBYU2NhbGUgIGNvcmUuIFdoZW4gd3JpdHRlbiwgYW4K KysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBpbnRlcnJ1cHQgbWF5IGJlIGdlbmVyYXRlZCBvbiB0aGUgUENJIEludGVy cnVwdCBwaW4gZGV0ZXJtaW5lZCBieSB0aGUgQVRVIEludGVycnVwdCBQaW4gUmVnaXN0ZXIu CisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9NVV9P VVRCT1VORF9NRVNTQUdFX1JFRzAJCSAgICAgICAgICAweDE4ICAgIC8qZHdvcmQgMHgxQiww eDFBLDB4MTksMHgxOCovCisrI2RlZmluZSAgICAgQVJDTVNSX01VX09VVEJPVU5EX01FU1NB R0VfUkVHMQkJICAgICAgICAgIDB4MUMgICAgLypkd29yZCAweDFGLDB4MUUsMHgxRCwweDFD Ki8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogICAgICAgIERvb3JiZWxsIFJl Z2lzdGVycworKyoqICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgVGhl cmUgYXJlIHR3byBEb29yYmVsbCBSZWdpc3RlcnM6IAorKyoqICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluYm91bmQgRG9vcmJlbGwgUmVnaXN0ZXIgCisrKiogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0Ym91bmQgRG9vcmJlbGwgUmVnaXN0ZXIK KysqKiAgVGhlIEluYm91bmQgRG9vcmJlbGwgUmVnaXN0ZXIgYWxsb3dzIGV4dGVybmFsIFBD SSBhZ2VudHMgdG8gZ2VuZXJhdGUgaW50ZXJydXB0cyB0byB0aGUgSW50ZWwgUiBYU2NhbGUg Y29yZS4gCisrKiogIFRoZSBPdXRib3VuZCBEb29yYmVsbCBSZWdpc3RlciBhbGxvd3MgdGhl IEludGVsIFIgWFNjYWxlIGNvcmUgdG8gZ2VuZXJhdGUgYSBQQ0kgaW50ZXJydXB0LiAKKysq KiAgQm90aCBEb29yYmVsbCBSZWdpc3RlcnMgbWF5IGdlbmVyYXRlIGludGVycnVwdHMgd2hl bmV2ZXIgYSBiaXQgaW4gdGhlIHJlZ2lzdGVyIGlzIHNldC4KKysqKiAgCisrKiogIEluYm91 bmQgRG9vcmJlbGxzOgorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgLiBXaGVuIHRo ZSBJbmJvdW5kIERvb3JiZWxsIFJlZ2lzdGVyIGlzIHdyaXR0ZW4gYnkgYW4gZXh0ZXJuYWwg UENJIGFnZW50LCBhbiBpbnRlcnJ1cHQgbWF5IGJlIGdlbmVyYXRlZCB0byB0aGUgSW50ZWwg UiBYU2NhbGUgIGNvcmUuCisrKiogICAgQW4gaW50ZXJydXB0IGlzIGdlbmVyYXRlZCB3aGVu IGFueSBvZiB0aGUgYml0cyBpbiB0aGUgZG9vcmJlbGwgcmVnaXN0ZXIgaXMgd3JpdHRlbiB0 byBhIHZhbHVlIG9mIDEuCisrKiogICAgV3JpdGluZyBhIHZhbHVlIG9mIDAgdG8gYW55IGJp dCBkb2VzIG5vdCBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoYXQgYml0IGFuZCBkb2VzIG5vdCBj YXVzZSBhbiBpbnRlcnJ1cHQgdG8gYmUgZ2VuZXJhdGVkLiAKKysqKiAgLiBPbmNlIGEgYml0 IGlzIHNldCBpbiB0aGUgSW5ib3VuZCBEb29yYmVsbCBSZWdpc3RlciwgaXQgY2Fubm90IGJl IGNsZWFyZWQgYnkgYW55IGV4dGVybmFsIFBDSSBhZ2VudC4gCisrKiogICAgVGhlIGludGVy cnVwdCBpcyByZWNvcmRlZCBpbiB0aGUgSW5ib3VuZCBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lz dGVyLgorKyoqICAuIFRoZSBpbnRlcnJ1cHQgbWF5IGJlIG1hc2tlZCBieSB0aGUgSW5ib3Vu ZCBEb29yYmVsbCBJbnRlcnJ1cHQgbWFzayBiaXQgaW4gdGhlIEluYm91bmQgSW50ZXJydXB0 IE1hc2sgUmVnaXN0ZXIuCisrKiogICAgV2hlbiB0aGUgbWFzayBiaXQgaXMgc2V0IGZvciBh IHBhcnRpY3VsYXIgYml0LCBubyBpbnRlcnJ1cHQgaXMgZ2VuZXJhdGVkIGZvciB0aGF0IGJp dC4KKysqKiAgICBUaGUgSW5ib3VuZCBJbnRlcnJ1cHQgTWFzayBSZWdpc3RlciBhZmZlY3Rz IG9ubHkgdGhlIGdlbmVyYXRpb24gb2YgdGhlIG5vcm1hbCBtZXNzYWdpbmcgdW5pdCBpbnRl cnJ1cHQgYW5kIG5vdCB0aGUgdmFsdWVzIHdyaXR0ZW4gdG8gdGhlIEluYm91bmQgRG9vcmJl bGwgUmVnaXN0ZXIuIAorKyoqICAgIE9uZSBiaXQgaW4gdGhlIEluYm91bmQgRG9vcmJlbGwg UmVnaXN0ZXIgaXMgcmVzZXJ2ZWQgZm9yIGFuIEVycm9yIERvb3JiZWxsIGludGVycnVwdC4K KysqKiAgLiBUaGUgaW50ZXJydXB0IGlzIGNsZWFyZWQgd2hlbiB0aGUgSW50ZWwgUiBYU2Nh bGUgY29yZSB3cml0ZXMgYSB2YWx1ZSBvZiAxIHRvIHRoZSBiaXRzIGluIHRoZSBJbmJvdW5k IERvb3JiZWxsIFJlZ2lzdGVyIHRoYXQgYXJlIHNldC4gCisrKiogICAgV3JpdGluZyBhIHZh bHVlIG9mIDAgdG8gYW55IGJpdCBkb2VzIG5vdCBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoYXQg Yml0IGFuZCBkb2VzIG5vdCBjbGVhciB0aGUgaW50ZXJydXB0LgorKyoqICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysqKiAgSW5ib3VuZCBEb29yYmVsbCBSZWdpc3RlciAtIElEUgorKyoqCisr KiogIC4gVGhlIEluYm91bmQgRG9vcmJlbGwgUmVnaXN0ZXIgKElEUikgaXMgdXNlZCB0byBn ZW5lcmF0ZSBpbnRlcnJ1cHRzIHRvIHRoZSBJbnRlbCBYU2NhbGUgY29yZS4gCisrKiogIC4g Qml0IDMxIGlzIHJlc2VydmVkIGZvciBnZW5lcmF0aW5nIGFuIEVycm9yIERvb3JiZWxsIGlu dGVycnVwdC4gCisrKiogICAgV2hlbiBiaXQgMzEgaXMgc2V0LCBhbiBFcnJvciBpbnRlcnJ1 cHQgbWF5IGJlIGdlbmVyYXRlZCB0byB0aGUgSW50ZWwgWFNjYWxlIGNvcmUuIAorKyoqICAg IEFsbCBvdGhlciBiaXRzLCB3aGVuIHNldCwgY2F1c2UgdGhlIE5vcm1hbCBNZXNzYWdpbmcg VW5pdCBpbnRlcnJ1cHQgbGluZSBvZiB0aGUgSW50ZWwgWFNjYWxlIGNvcmUgdG8gYmUgYXNz ZXJ0ZWQsIAorKyoqICAgIHdoZW4gdGhlIGludGVycnVwdCBpcyBub3QgbWFza2VkIGJ5IHRo ZSBJbmJvdW5kIERvb3JiZWxsIEludGVycnVwdCBNYXNrIGJpdCBpbiB0aGUgSW5ib3VuZCBJ bnRlcnJ1cHQgTWFzayBSZWdpc3Rlci4KKysqKiAgICBUaGUgYml0cyBpbiB0aGUgSURSIHJl Z2lzdGVyIGNhbiBvbmx5IGJlIHNldCBieSBhbiBleHRlcm5hbCBQQ0kgYWdlbnQgYW5kIGNh biBvbmx5IGJlIGNsZWFyZWQgYnkgdGhlIEludGVsIFhTY2FsZSAgY29yZS4KKysqKiAgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAg ICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAzMSAgICAgICAgICAwIDIgICAgICAgICAgICAg ICAgICAgICAgICAgRXJyb3IgSW50ZXJydXB0IC0gR2VuZXJhdGUgYW4gRXJyb3IgSW50ZXJy dXB0IHRvIHRoZSBJbnRlbCBYU2NhbGUgY29yZS4KKysqKiAgMzA6MDAgICAgMDAwMDAwMDBI ICAgICAgICAgICAgICAgICAgICAgIE5vcm1hbCBJbnRlcnJ1cHQgLSBXaGVuIGFueSBiaXQg aXMgc2V0LCBnZW5lcmF0ZSBhIE5vcm1hbCBpbnRlcnJ1cHQgdG8gdGhlIEludGVsIFhTY2Fs ZSBjb3JlLiAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBXaGVuIGFsbCBiaXRzIGFyZSBjbGVhciwgZG8gbm90IGdl bmVyYXRlIGEgTm9ybWFsIEludGVycnVwdC4KKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyov CisrI2RlZmluZSAgICAgQVJDTVNSX01VX0lOQk9VTkRfRE9PUkJFTExfUkVHCQkgICAgICAg ICAgMHgyMCAgICAvKmR3b3JkIDB4MjMsMHgyMiwweDIxLDB4MjAqLworKy8qCisrKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKysqKiAgSW5ib3VuZCBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVy IC0gSUlTUgorKyoqCisrKiogIC4gVGhlIEluYm91bmQgSW50ZXJydXB0IFN0YXR1cyBSZWdp c3RlciAoSUlTUikgY29udGFpbnMgaGFyZHdhcmUgaW50ZXJydXB0IHN0YXR1cy4gCisrKiog ICAgSXQgcmVjb3JkcyB0aGUgc3RhdHVzIG9mIEludGVsIFhTY2FsZSBjb3JlIGludGVycnVw dHMgZ2VuZXJhdGVkIGJ5IHRoZSBNZXNzYWdlIFJlZ2lzdGVycywgRG9vcmJlbGwgUmVnaXN0 ZXJzLCBhbmQgdGhlIENpcmN1bGFyIFF1ZXVlcy4gCisrKiogICAgQWxsIGludGVycnVwdHMg YXJlIHJvdXRlZCB0byB0aGUgTm9ybWFsIE1lc3NhZ2luZyBVbml0IGludGVycnVwdCBpbnB1 dCBvZiB0aGUgSW50ZWwgWFNjYWxlIGNvcmUsIAorKyoqICAgIGV4Y2VwdCBmb3IgdGhlIEVy cm9yIERvb3JiZWxsIEludGVycnVwdCBhbmQgdGhlIE91dGJvdW5kIEZyZWUgUXVldWUgRnVs bCBpbnRlcnJ1cHQ7IAorKyoqICAgIHRoZXNlIHR3byBhcmUgcm91dGVkIHRvIHRoZSBNZXNz YWdpbmcgVW5pdCBFcnJvciBpbnRlcnJ1cHQgaW5wdXQuIAorKyoqICAgIFRoZSBnZW5lcmF0 aW9uIG9mIGludGVycnVwdHMgcmVjb3JkZWQgaW4gdGhlIEluYm91bmQgSW50ZXJydXB0IFN0 YXR1cyBSZWdpc3RlciBtYXkgYmUgbWFza2VkIGJ5IHNldHRpbmcgdGhlIGNvcnJlc3BvbmRp bmcgYml0IGluIHRoZSBJbmJvdW5kIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyLiAKKysqKiAg ICBTb21lIG9mIHRoZSBiaXRzIGluIHRoaXMgcmVnaXN0ZXIgYXJlIFJlYWQgT25seS4gCisr KiogICAgRm9yIHRob3NlIGJpdHMsIHRoZSBpbnRlcnJ1cHQgbXVzdCBiZSBjbGVhcmVkIHRo cm91Z2ggYW5vdGhlciByZWdpc3Rlci4KKysqKgorKyoqICBCaXQgICAgICAgRGVmYXVsdCAg ICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMzE6MDcgICAgMDAwMDAw MEggMCAyICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisrKiogIDA2ICAgICAgICAgIDAg MiAgICAgICAgICAgICAgICAgICAgICAgICBJbmRleCBSZWdpc3RlciBJbnRlcnJ1cHQgLSBU aGlzIGJpdCBpcyBzZXQgYnkgdGhlIE1VIGhhcmR3YXJlIHdoZW4gYW4gSW5kZXggUmVnaXN0 ZXIgaGFzIGJlZW4gd3JpdHRlbiBhZnRlciBhIFBDSSB0cmFuc2FjdGlvbi4KKysqKiAgMDUg ICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIE91dGJvdW5kIEZyZWUgUXVl dWUgRnVsbCBJbnRlcnJ1cHQgLSBUaGlzIGJpdCBpcyBzZXQgd2hlbiB0aGUgT3V0Ym91bmQg RnJlZSBIZWFkIFBvaW50ZXIgYmVjb21lcyBlcXVhbCB0byB0aGUgVGFpbCBQb2ludGVyIGFu ZCB0aGUgcXVldWUgaXMgZnVsbC4gCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQW4g RXJyb3IgaW50ZXJydXB0IGlzIGdlbmVyYXRlZCBmb3IgdGhpcyBjb25kaXRpb24uCisrKiog IDA0ICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICBJbmJvdW5kIFBvc3Qg UXVldWUgSW50ZXJydXB0IC0gVGhpcyBiaXQgaXMgc2V0IGJ5IHRoZSBNVSBoYXJkd2FyZSB3 aGVuIHRoZSBJbmJvdW5kIFBvc3QgUXVldWUgaGFzIGJlZW4gd3JpdHRlbi4gCisrKiogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgT25jZSBjbGVhcmVkLCBhbiBpbnRlcnJ1cHQgZG9lcyBOT1QgYmUg Z2VuZXJhdGVkIHdoZW4gdGhlIGhlYWQgYW5kIHRhaWwgcG9pbnRlcnMgcmVtYWluIHVuZXF1 YWwgKGkuZS4gcXVldWUgc3RhdHVzIGlzIE5vdCBFbXB0eSkuCisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgVGhlcmVmb3JlLCB3aGVuIHNvZnR3YXJlIGxlYXZlcyBhbnkgdW5wcm9jZXNzZWQg bWVzc2FnZXMgaW4gdGhlIHBvc3QgcXVldWUgd2hlbiB0aGUgaW50ZXJydXB0IGlzIGNsZWFy ZWQsIAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvZnR3YXJlIG11c3QgcmV0YWluIHRoZSBp bmZvcm1hdGlvbiB0aGF0IHRoZSBJbmJvdW5kIFBvc3QgcXVldWUgc3RhdHVzIGlzIG5vdCBl bXB0eS4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOT1RFOiAKKysqKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUaGlzIGludGVycnVwdCBpcyBwcm92aWRlZCB3aXRoIGRlZGljYXRlZCBzdXBwb3J0 IGluIHRoZSA4MDMzMSBJbnRlcnJ1cHQgQ29udHJvbGxlci4KKysqKiAgMDMgICAgICAgICAg MCAyICAgICAgICAgICAgICAgICAgICAgICAgIEVycm9yIERvb3JiZWxsIEludGVycnVwdCAt IFRoaXMgYml0IGlzIHNldCB3aGVuIHRoZSBFcnJvciBJbnRlcnJ1cHQgb2YgdGhlIEluYm91 bmQgRG9vcmJlbGwgUmVnaXN0ZXIgaXMgc2V0LgorKyoqICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gY2xl YXIgdGhpcyBiaXQgKGFuZCB0aGUgaW50ZXJydXB0KSwgdGhlIEVycm9yIEludGVycnVwdCBi aXQgb2YgdGhlIEluYm91bmQgRG9vcmJlbGwgUmVnaXN0ZXIgbXVzdCBiZSBjbGVhci4KKysq KiAgMDIgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIEluYm91bmQgRG9v cmJlbGwgSW50ZXJydXB0IC0gVGhpcyBiaXQgaXMgc2V0IHdoZW4gYXQgbGVhc3Qgb25lIE5v cm1hbCBJbnRlcnJ1cHQgYml0IGluIHRoZSBJbmJvdW5kIERvb3JiZWxsIFJlZ2lzdGVyIGlz IHNldC4KKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgVG8gY2xlYXIgdGhpcyBiaXQgKGFuZCB0aGUg aW50ZXJydXB0KSwgdGhlIE5vcm1hbCBJbnRlcnJ1cHQgYml0cyBpbiB0aGUgSW5ib3VuZCBE b29yYmVsbCBSZWdpc3RlciBtdXN0IGFsbCBiZSBjbGVhci4KKysqKiAgMDEgICAgICAgICAg MCAyICAgICAgICAgICAgICAgICAgICAgICAgIEluYm91bmQgTWVzc2FnZSAxIEludGVycnVw dCAtIFRoaXMgYml0IGlzIHNldCBieSB0aGUgTVUgaGFyZHdhcmUgd2hlbiB0aGUgSW5ib3Vu ZCBNZXNzYWdlIDEgUmVnaXN0ZXIgaGFzIGJlZW4gd3JpdHRlbi4KKysqKiAgMDAgICAgICAg ICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIEluYm91bmQgTWVzc2FnZSAwIEludGVy cnVwdCAtIFRoaXMgYml0IGlzIHNldCBieSB0aGUgTVUgaGFyZHdhcmUgd2hlbiB0aGUgSW5i b3VuZCBNZXNzYWdlIDAgUmVnaXN0ZXIgaGFzIGJlZW4gd3JpdHRlbi4KKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX01VX0lOQk9VTkRfSU5URVJS VVBUX1NUQVRVU19SRUcJICAgICAgMHgyNCAgICAvKmR3b3JkIDB4MjcsMHgyNiwweDI1LDB4 MjQqLworKyNkZWZpbmUgICAgIEFSQ01TUl9NVV9JTkJPVU5EX0lOREVYX0lOVCAgICAgICAg ICAgICAgICAgICAgICAweDQwCisrI2RlZmluZSAgICAgQVJDTVNSX01VX0lOQk9VTkRfUVVF VUVGVUxMX0lOVCAgICAgICAgICAgICAgICAgIDB4MjAKKysjZGVmaW5lICAgICBBUkNNU1Jf TVVfSU5CT1VORF9QT1NUUVVFVUVfSU5UICAgICAgICAgICAgICAgICAgMHgxMCAgICAgICAg IAorKyNkZWZpbmUgICAgIEFSQ01TUl9NVV9JTkJPVU5EX0VSUk9SX0RPT1JCRUxMX0lOVCAg ICAgICAgICAgICAweDA4CisrI2RlZmluZSAgICAgQVJDTVNSX01VX0lOQk9VTkRfRE9PUkJF TExfSU5UICAgICAgICAgICAgICAgICAgIDB4MDQKKysjZGVmaW5lICAgICBBUkNNU1JfTVVf SU5CT1VORF9NRVNTQUdFMV9JTlQgICAgICAgICAgICAgICAgICAgMHgwMgorKyNkZWZpbmUg ICAgIEFSQ01TUl9NVV9JTkJPVU5EX01FU1NBR0UwX0lOVCAgICAgICAgICAgICAgICAgICAw eDAxCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBJbmJvdW5kIEludGVycnVw dCBNYXNrIFJlZ2lzdGVyIC0gSUlNUgorKyoqCisrKiogIC4gVGhlIEluYm91bmQgSW50ZXJy dXB0IE1hc2sgUmVnaXN0ZXIgKElJTVIpIHByb3ZpZGVzIHRoZSBhYmlsaXR5IHRvIG1hc2sg SW50ZWwgWFNjYWxlIGNvcmUgaW50ZXJydXB0cyBnZW5lcmF0ZWQgYnkgdGhlIE1lc3NhZ2lu ZyBVbml0LiAKKysqKiAgICBFYWNoIGJpdCBpbiB0aGUgTWFzayByZWdpc3RlciBjb3JyZXNw b25kcyB0byBhbiBpbnRlcnJ1cHQgYml0IGluIHRoZSBJbmJvdW5kIEludGVycnVwdCBTdGF0 dXMgUmVnaXN0ZXIuCisrKiogICAgU2V0dGluZyBvciBjbGVhcmluZyBiaXRzIGluIHRoaXMg cmVnaXN0ZXIgZG9lcyBub3QgYWZmZWN0IHRoZSBJbmJvdW5kIEludGVycnVwdCBTdGF0dXMg UmVnaXN0ZXIuIAorKyoqICAgIFRoZXkgb25seSBhZmZlY3QgdGhlIGdlbmVyYXRpb24gb2Yg dGhlIEludGVsIFhTY2FsZSBjb3JlIGludGVycnVwdC4KKysqKiAgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNj cmlwdGlvbgorKyoqICAzMTowNyAgICAgMDAwMDAwSCAwIDIgICAgICAgICAgICAgICAgICAg UmVzZXJ2ZWQKKysqKiAgMDYgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICAg IEluZGV4IFJlZ2lzdGVyIEludGVycnVwdCBNYXNrIC0gV2hlbiBzZXQsIHRoaXMgYml0IG1h c2tzIHRoZSBpbnRlcnJ1cHQgZ2VuZXJhdGVkIGJ5IHRoZSBNVSBoYXJkd2FyZSB3aGVuIGFu IEluZGV4IFJlZ2lzdGVyIGhhcyBiZWVuIHdyaXR0ZW4gYWZ0ZXIgYSBQQ0kgdHJhbnNhY3Rp b24uCisrKiogIDA1ICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgICBPdXRi b3VuZCBGcmVlIFF1ZXVlIEZ1bGwgSW50ZXJydXB0IE1hc2sgLSBXaGVuIHNldCwgdGhpcyBi aXQgbWFza3MgdGhlIEVycm9yIGludGVycnVwdCBnZW5lcmF0ZWQgd2hlbiB0aGUgT3V0Ym91 bmQgRnJlZSBIZWFkIFBvaW50ZXIgYmVjb21lcyBlcXVhbCB0byB0aGUgVGFpbCBQb2ludGVy IGFuZCB0aGUgcXVldWUgaXMgZnVsbC4KKysqKiAgMDQgICAgICAgIDAgMiAgICAgICAgICAg ICAgICAgICAgICAgICAgIEluYm91bmQgUG9zdCBRdWV1ZSBJbnRlcnJ1cHQgTWFzayAtIFdo ZW4gc2V0LCB0aGlzIGJpdCBtYXNrcyB0aGUgaW50ZXJydXB0IGdlbmVyYXRlZCBieSB0aGUg TVUgaGFyZHdhcmUgd2hlbiB0aGUgSW5ib3VuZCBQb3N0IFF1ZXVlIGhhcyBiZWVuIHdyaXR0 ZW4uCisrKiogIDAzICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgICBFcnJv ciBEb29yYmVsbCBJbnRlcnJ1cHQgTWFzayAtIFdoZW4gc2V0LCB0aGlzIGJpdCBtYXNrcyB0 aGUgRXJyb3IgSW50ZXJydXB0IHdoZW4gdGhlIEVycm9yIEludGVycnVwdCBiaXQgb2YgdGhl IEluYm91bmQgRG9vcmJlbGwgUmVnaXN0ZXIgaXMgc2V0LgorKyoqICAwMiAgICAgICAgMCAy ICAgICAgICAgICAgICAgICAgICAgICAgICAgSW5ib3VuZCBEb29yYmVsbCBJbnRlcnJ1cHQg TWFzayAtIFdoZW4gc2V0LCB0aGlzIGJpdCBtYXNrcyB0aGUgaW50ZXJydXB0IGdlbmVyYXRl ZCB3aGVuIGF0IGxlYXN0IG9uZSBOb3JtYWwgSW50ZXJydXB0IGJpdCBpbiB0aGUgSW5ib3Vu ZCBEb29yYmVsbCBSZWdpc3RlciBpcyBzZXQuCisrKiogIDAxICAgICAgICAwIDIgICAgICAg ICAgICAgICAgICAgICAgICAgICBJbmJvdW5kIE1lc3NhZ2UgMSBJbnRlcnJ1cHQgTWFzayAt IFdoZW4gc2V0LCB0aGlzIGJpdCBtYXNrcyB0aGUgSW5ib3VuZCBNZXNzYWdlIDEgSW50ZXJy dXB0IGdlbmVyYXRlZCBieSBhIHdyaXRlIHRvIHRoZSBJbmJvdW5kIE1lc3NhZ2UgMSBSZWdp c3Rlci4KKysqKiAgMDAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICAgIElu Ym91bmQgTWVzc2FnZSAwIEludGVycnVwdCBNYXNrIC0gV2hlbiBzZXQsIHRoaXMgYml0IG1h c2tzIHRoZSBJbmJvdW5kIE1lc3NhZ2UgMCBJbnRlcnJ1cHQgZ2VuZXJhdGVkIGJ5IGEgd3Jp dGUgdG8gdGhlIEluYm91bmQgTWVzc2FnZSAwIFJlZ2lzdGVyLgorKyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfTVVfSU5CT1VORF9JTlRFUlJVUFRf TUFTS19SRUcJICAgICAgMHgyOCAgICAvKmR3b3JkIDB4MkIsMHgyQSwweDI5LDB4MjgqLwor KyNkZWZpbmUgICAgIEFSQ01TUl9NVV9JTkJPVU5EX0lOREVYX0lOVE1BU0tFTkFCTEUgICAg ICAgICAgICAgICAweDQwCisrI2RlZmluZSAgICAgQVJDTVNSX01VX0lOQk9VTkRfUVVFVUVG VUxMX0lOVE1BU0tFTkFCTEUgICAgICAgICAgIDB4MjAKKysjZGVmaW5lICAgICBBUkNNU1Jf TVVfSU5CT1VORF9QT1NUUVVFVUVfSU5UTUFTS0VOQUJMRSAgICAgICAgICAgMHgxMCAgICAg ICAgIAorKyNkZWZpbmUgICAgIEFSQ01TUl9NVV9JTkJPVU5EX0RPT1JCRUxMX0VSUk9SX0lO VE1BU0tFTkFCTEUgICAgICAweDA4CisrI2RlZmluZSAgICAgQVJDTVNSX01VX0lOQk9VTkRf RE9PUkJFTExfSU5UTUFTS0VOQUJMRSAgICAgICAgICAgIDB4MDQKKysjZGVmaW5lICAgICBB UkNNU1JfTVVfSU5CT1VORF9NRVNTQUdFMV9JTlRNQVNLRU5BQkxFICAgICAgICAgICAgMHgw MgorKyNkZWZpbmUgICAgIEFSQ01TUl9NVV9JTkJPVU5EX01FU1NBR0UwX0lOVE1BU0tFTkFC TEUgICAgICAgICAgICAweDAxCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICBP dXRib3VuZCBEb29yYmVsbCBSZWdpc3RlciAtIE9EUgorKyoqCisrKiogIFRoZSBPdXRib3Vu ZCBEb29yYmVsbCBSZWdpc3RlciAoT0RSKSBhbGxvd3Mgc29mdHdhcmUgaW50ZXJydXB0IGdl bmVyYXRpb24uIEl0IGFsbG93cyB0aGUgSW50ZWwgCisrKiogIFhTY2FsZSAgY29yZSB0byBn ZW5lcmF0ZSBQQ0kgaW50ZXJydXB0cyB0byB0aGUgaG9zdCBwcm9jZXNzb3IgYnkgd3JpdGlu ZyB0byB0aGlzIHJlZ2lzdGVyLiBUaGUKKysqKiAgZ2VuZXJhdGlvbiBvZiBQQ0kgaW50ZXJy dXB0cyB0aHJvdWdoIHRoZSBPdXRib3VuZCBEb29yYmVsbCBSZWdpc3RlciBtYXkgYmUgbWFz a2VkIGJ5IHNldHRpbmcgdGhlCisrKiogIE91dGJvdW5kIERvb3JiZWxsIEludGVycnVwdCBN YXNrIGJpdCBpbiB0aGUgT3V0Ym91bmQgSW50ZXJydXB0IE1hc2sgUmVnaXN0ZXIuCisrKiog IFRoZSBTb2Z0d2FyZSBJbnRlcnJ1cHQgYml0cyBpbiB0aGlzIHJlZ2lzdGVyIGNhbiBvbmx5 IGJlIHNldCBieSB0aGUgSW50ZWwgIFhTY2FsZSAgY29yZSBhbmQgY2FuIG9ubHkKKysqKiAg YmUgY2xlYXJlZCBieSBhbiBleHRlcm5hbCBQQ0kgYWdlbnQuCisrKiogIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERl c2NyaXB0aW9uCisrKiogIDMxICAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAg ICAgUmVzZXJ2ZWQKKysqKiAgMzAgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAg ICAgICBSZXNlcnZlZC4KKysqKiAgMjkgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAg ICAgICAgICBSZXNlcnZlZAorKyoqICAyOCAgICAgICAwMDAwIDAwMDBIICAgICAgICAgICAg ICAgICAgICAgIFBDSSBJbnRlcnJ1cHQgLSBXaGVuIHNldCwgdGhpcyBiaXQgY2F1c2VzIHRo ZSBQX0lOVEMjIGludGVycnVwdCBvdXRwdXQgKFBfSU5UQSMgd2l0aCBCUkdfRU4gYW5kIEFS Ql9FTiBzdHJhcHMgbG93KQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWwgdG8gYmUgYXNzZXJ0ZWQgb3IgYSBN ZXNzYWdlLXNpZ25hbGVkIEludGVycnVwdCBpcyBnZW5lcmF0ZWQgKHdoZW4gZW5hYmxlZCku IAorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBXaGVuIHRoaXMgYml0IGlzIGNsZWFyZWQsIHRoZSBQX0lOVEMjIGludGVy cnVwdCBvdXRwdXQgKFBfSU5UQSMgd2l0aCBCUkdfRU4gYW5kIEFSQl9FTiBzdHJhcHMgbG93 KSAKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgc2lnbmFsIGlzIGRlYXNzZXJ0ZWQuCisrKiogIDI3OjAwICAgICAwMDAg MDAwMEggICAgICAgICAgICAgICAgICAgICAgU29mdHdhcmUgSW50ZXJydXB0cyAtIFdoZW4g YW55IGJpdCBpcyBzZXQgdGhlIFBfSU5UQyMgaW50ZXJydXB0IG91dHB1dCAoUF9JTlRBIyB3 aXRoIEJSR19FTiBhbmQgQVJCX0VOIHN0cmFwcyBsb3cpIAorKyoqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWwgaXMg YXNzZXJ0ZWQgb3IgYSBNZXNzYWdlLXNpZ25hbGVkIEludGVycnVwdCBpcyBnZW5lcmF0ZWQg KHdoZW4gZW5hYmxlZCkuCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFdoZW4gYWxsIGJpdHMgYXJlIGNsZWFyZWQsIHRo ZSBQX0lOVEMjIGludGVycnVwdCBvdXRwdXQgKFBfSU5UQSMgd2l0aCBCUkdfRU4gYW5kIEFS Ql9FTiBzdHJhcHMgbG93KQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzaWduYWwgaXMgZGVhc3NlcnRlZC4KKysqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX01VX09VVEJPVU5E X0RPT1JCRUxMX1JFRwkJICAgICAgICAgIDB4MkMgICAgLy9kd29yZCAweDJGLDB4MkUsMHgy RCwweDJDLy8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIE91dGJvdW5kIElu dGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgLSBPSVNSCisrKioKKysqKiAgVGhlIE91dGJvdW5k IEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgKE9JU1IpIGNvbnRhaW5zIGhhcmR3YXJlIGlu dGVycnVwdCBzdGF0dXMuIEl0IHJlY29yZHMgdGhlCisrKiogIHN0YXR1cyBvZiBQQ0kgaW50 ZXJydXB0cyBnZW5lcmF0ZWQgYnkgdGhlIE1lc3NhZ2UgUmVnaXN0ZXJzLCBEb29yYmVsbCBS ZWdpc3RlcnMsIGFuZCB0aGUgQ2lyY3VsYXIKKysqKiAgUXVldWVzLiBUaGUgZ2VuZXJhdGlv biBvZiBQQ0kgaW50ZXJydXB0cyByZWNvcmRlZCBpbiB0aGUgT3V0Ym91bmQgSW50ZXJydXB0 IFN0YXR1cyBSZWdpc3RlciBtYXkKKysqKiAgYmUgbWFza2VkIGJ5IHNldHRpbmcgdGhlIGNv cnJlc3BvbmRpbmcgYml0IGluIHRoZSBPdXRib3VuZCBJbnRlcnJ1cHQgTWFzayBSZWdpc3Rl ci4gU29tZSBvZiB0aGUKKysqKiAgYml0cyBpbiB0aGlzIHJlZ2lzdGVyIGFyZSBSZWFkIE9u bHkuIEZvciB0aG9zZSBiaXRzLCB0aGUgaW50ZXJydXB0IG11c3QgYmUgY2xlYXJlZCB0aHJv dWdoIGFub3RoZXIKKysqKiAgcmVnaXN0ZXIuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysq KiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9u CisrKiogIDMxOjA1ICAgICAwMDAwMDBIIDAwMCAyICAgICAgICAgICAgICAgICBSZXNlcnZl ZAorKyoqICAwNCAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgICAgUENJIElu dGVycnVwdCAtIFRoaXMgYml0IGlzIHNldCB3aGVuIHRoZSBQQ0kgSW50ZXJydXB0IGJpdCAo Yml0IDI4KSBpcyBzZXQgaW4gdGhlIE91dGJvdW5kIERvb3JiZWxsIFJlZ2lzdGVyLgorKyoq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFRvIGNsZWFyIHRoaXMgYml0IChhbmQgdGhlIGludGVycnVwdCksIHRoZSBQQ0kgSW50 ZXJydXB0IGJpdCBtdXN0IGJlIGNsZWFyZWQuCisrKiogIDAzICAgICAgICAwIDIgICAgICAg ICAgICAgICAgICAgICAgICAgICBPdXRib3VuZCBQb3N0IFF1ZXVlIEludGVycnVwdCAtIFRo aXMgYml0IGlzIHNldCB3aGVuIGRhdGEgaW4gdGhlIHByZWZldGNoIGJ1ZmZlciBpcyB2YWxp ZC4gVGhpcyBiaXQgaXMKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjbGVhcmVkIHdoZW4gYW55IHByZWZldGNoIGRhdGEg aGFzIGJlZW4gcmVhZCBmcm9tIHRoZSBPdXRib3VuZCBRdWV1ZSBQb3J0LgorKyoqICAwMiAg ICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgICAgT3V0Ym91bmQgRG9vcmJlbGwg SW50ZXJydXB0IC0gVGhpcyBiaXQgaXMgc2V0IHdoZW4gYXQgbGVhc3Qgb25lIFNvZnR3YXJl IEludGVycnVwdCBiaXQgaW4gdGhlIE91dGJvdW5kCisrKiogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9vcmJlbGwgUmVnaXN0 ZXIgaXMgc2V0LiBUbyBjbGVhciB0aGlzIGJpdCAoYW5kIHRoZSBpbnRlcnJ1cHQpLCB0aGUg U29mdHdhcmUgSW50ZXJydXB0IGJpdHMgaW4gdGhlIE91dGJvdW5kCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG9vcmJl bGwgUmVnaXN0ZXIgbXVzdCBhbGwgYmUgY2xlYXIuCisrKiogIDAxICAgICAgICAwIDIgICAg ICAgICAgICAgICAgICAgICAgICAgICBPdXRib3VuZCBNZXNzYWdlIDEgSW50ZXJydXB0IC0g VGhpcyBiaXQgaXMgc2V0IGJ5IHRoZSBNVSB3aGVuIHRoZSBPdXRib3VuZCBNZXNzYWdlIDEg UmVnaXN0ZXIgaXMKKysqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB3cml0dGVuLiBDbGVhcmluZyB0aGlzIGJpdCBjbGVhcnMg dGhlIGludGVycnVwdC4KKysqKiAgMDAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAg ICAgICAgIE91dGJvdW5kIE1lc3NhZ2UgMCBJbnRlcnJ1cHQgLSBUaGlzIGJpdCBpcyBzZXQg YnkgdGhlIE1VIHdoZW4gdGhlIE91dGJvdW5kIE1lc3NhZ2UgMCBSZWdpc3RlciBpcworKyoq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHdyaXR0ZW4uIENsZWFyaW5nIHRoaXMgYml0IGNsZWFycyB0aGUgaW50ZXJydXB0Lgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfTVVfT1VU Qk9VTkRfSU5URVJSVVBUX1NUQVRVU19SRUcJICAgICAgMHgzMCAgICAvL2R3b3JkIDB4MzMs MHgzMiwweDMxLDB4MzAvLworKyNkZWZpbmUgICAgIEFSQ01TUl9NVV9PVVRCT1VORF9QQ0lf SU5UICAgICAgIAkgICAgICAgICAgICAgIDB4MTAKKysjZGVmaW5lICAgICBBUkNNU1JfTVVf T1VUQk9VTkRfUE9TVFFVRVVFX0lOVCAgICAJICAgICAgICAgIDB4MDggCisrI2RlZmluZSAg ICAgQVJDTVNSX01VX09VVEJPVU5EX0RPT1JCRUxMX0lOVCAJCSAgICAgICAgICAweDA0IAor KyNkZWZpbmUgICAgIEFSQ01TUl9NVV9PVVRCT1VORF9NRVNTQUdFMV9JTlQgCQkgICAgICAg ICAgMHgwMiAKKysjZGVmaW5lICAgICBBUkNNU1JfTVVfT1VUQk9VTkRfTUVTU0FHRTBfSU5U IAkJICAgICAgICAgIDB4MDEgCisrI2RlZmluZSAgICAgQVJDTVNSX01VX09VVEJPVU5EX0hB TkRMRV9JTlQgICAgICAgICAgICAgICAgICAgICAoQVJDTVNSX01VX09VVEJPVU5EX01FU1NB R0UwX0lOVHxBUkNNU1JfTVVfT1VUQk9VTkRfTUVTU0FHRTFfSU5UfEFSQ01TUl9NVV9PVVRC T1VORF9ET09SQkVMTF9JTlR8QVJDTVNSX01VX09VVEJPVU5EX1BPU1RRVUVVRV9JTlR8QVJD TVNSX01VX09VVEJPVU5EX1BDSV9JTlQpCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KyoqICBPdXRib3VuZCBJbnRlcnJ1cHQgTWFzayBSZWdpc3RlciAtIE9JTVIKKysqKiAgVGhl IE91dGJvdW5kIEludGVycnVwdCBNYXNrIFJlZ2lzdGVyIChPSU1SKSBwcm92aWRlcyB0aGUg YWJpbGl0eSB0byBtYXNrIG91dGJvdW5kIFBDSQorKyoqICBpbnRlcnJ1cHRzIGdlbmVyYXRl ZCBieSB0aGUgTWVzc2FnaW5nIFVuaXQuIEVhY2ggYml0IGluIHRoZSBtYXNrIHJlZ2lzdGVy IGNvcnJlc3BvbmRzIHRvIGEKKysqKiAgaGFyZHdhcmUgaW50ZXJydXB0IGJpdCBpbiB0aGUg T3V0Ym91bmQgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3Rlci4gV2hlbiB0aGUgYml0IGlzIHNl dCwgdGhlIFBDSQorKyoqICBpbnRlcnJ1cHQgaXMgbm90IGdlbmVyYXRlZC4gV2hlbiB0aGUg Yml0IGlzIGNsZWFyLCB0aGUgaW50ZXJydXB0IGlzIGFsbG93ZWQgdG8gYmUgZ2VuZXJhdGVk LgorKyoqICBTZXR0aW5nIG9yIGNsZWFyaW5nIGJpdHMgaW4gdGhpcyByZWdpc3RlciBkb2Vz IG5vdCBhZmZlY3QgdGhlIE91dGJvdW5kIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIuIFRo ZXkKKysqKiAgb25seSBhZmZlY3QgdGhlIGdlbmVyYXRpb24gb2YgdGhlIFBDSSBpbnRlcnJ1 cHQuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAg ICAgICAgICAgICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDMxOjA1ICAgICAwMDAwMDBI ICAgICAgICAgICAgICAgICAgICAgICBSZXNlcnZlZAorKyoqICAwNCAgICAgICAgICAwIDIg ICAgICAgICAgICAgICAgICAgICAgICAgUENJIEludGVycnVwdCBNYXNrIC0gV2hlbiBzZXQs IHRoaXMgYml0IG1hc2tzIHRoZSBpbnRlcnJ1cHQgZ2VuZXJhdGlvbiB3aGVuIHRoZSBQQ0kg SW50ZXJydXB0IGJpdCAoYml0IDI4KQorKyoqICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdGhlIE91dGJvdW5kIERv b3JiZWxsIFJlZ2lzdGVyIGlzIHNldC4KKysqKiAgMDMgICAgICAgICAgMCAyICAgICAgICAg ICAgICAgICAgICAgICAgIE91dGJvdW5kIFBvc3QgUXVldWUgSW50ZXJydXB0IE1hc2sgLSBX aGVuIHNldCwgdGhpcyBiaXQgbWFza3MgdGhlIGludGVycnVwdCBnZW5lcmF0ZWQgd2hlbiBk YXRhIGluCisrKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aGUgcHJlZmV0Y2ggYnVmZmVyIGlzIHZhbGlkLgorKyoq ICAwMiAgICAgICAgICAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgT3V0Ym91bmQgRG9v cmJlbGwgSW50ZXJydXB0IE1hc2sgLSBXaGVuIHNldCwgdGhpcyBiaXQgbWFza3MgdGhlIGlu dGVycnVwdCBnZW5lcmF0ZWQgYnkgdGhlIE91dGJvdW5kCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb29yYmVs bCBSZWdpc3Rlci4KKysqKiAgMDEgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAg ICAgIE91dGJvdW5kIE1lc3NhZ2UgMSBJbnRlcnJ1cHQgTWFzayAtIFdoZW4gc2V0LCB0aGlz IGJpdCBtYXNrcyB0aGUgT3V0Ym91bmQgTWVzc2FnZSAxIEludGVycnVwdAorKyoqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2VuZXJhdGVkIGJ5IGEgd3JpdGUgdG8gdGhlIE91dGJvdW5kIE1lc3NhZ2UgMSBSZWdp c3Rlci4KKysqKiAgMDAgICAgICAgICAgMCAyICAgICAgICAgICAgICAgICAgICAgICAgIE91 dGJvdW5kIE1lc3NhZ2UgMCBJbnRlcnJ1cHQgTWFzay0gV2hlbiBzZXQsIHRoaXMgYml0IG1h c2tzIHRoZSBPdXRib3VuZCBNZXNzYWdlIDAgSW50ZXJydXB0CisrKiogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5l cmF0ZWQgYnkgYSB3cml0ZSB0byB0aGUgT3V0Ym91bmQgTWVzc2FnZSAwIFJlZ2lzdGVyLgor KyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisrKi8KKysjZGVmaW5lICAgICBBUkNNU1JfTVVfT1VU Qk9VTkRfSU5URVJSVVBUX01BU0tfUkVHCQkgIDB4MzQgICAgLy9kd29yZCAweDM3LDB4MzYs MHgzNSwweDM0Ly8KKysjZGVmaW5lICAgICBBUkNNU1JfTVVfT1VUQk9VTkRfUENJX0lOVE1B U0tFTkFCTEUgICAJICAgICAgICAgIDB4MTAKKysjZGVmaW5lICAgICBBUkNNU1JfTVVfT1VU Qk9VTkRfUE9TVFFVRVVFX0lOVE1BU0tFTkFCTEUJICAgICAgMHgwOCAKKysjZGVmaW5lICAg ICBBUkNNU1JfTVVfT1VUQk9VTkRfRE9PUkJFTExfSU5UTUFTS0VOQUJMRQkJICAweDA0IAor KyNkZWZpbmUgICAgIEFSQ01TUl9NVV9PVVRCT1VORF9NRVNTQUdFMV9JTlRNQVNLRU5BQkxF CQkgIDB4MDIgCisrI2RlZmluZSAgICAgQVJDTVNSX01VX09VVEJPVU5EX01FU1NBR0UwX0lO VE1BU0tFTkFCTEUJCSAgMHgwMSAKKysjZGVmaW5lICAgICBBUkNNU1JfTVVfT1VUQk9VTkRf QUxMX0lOVE1BU0tFTkFCTEUJCSAgICAgIDB4MUYgCisrLyoKKysqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgorKyoqCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFS Q01TUl9NVV9JTkJPVU5EX1FVRVVFX1BPUlRfUkVHICAgICAgICAJICAweDQwICAgIC8vZHdv cmQgMHg0MywweDQyLDB4NDEsMHg0MC8vCisrI2RlZmluZSAgICAgQVJDTVNSX01VX09VVEJP VU5EX1FVRVVFX1BPUlRfUkVHICAJICAgICAgICAgIDB4NDQgICAgLy9kd29yZCAweDQ3LDB4 NDYsMHg0NSwweDQ0Ly8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogICAgICAg ICAgICAgICAgICAgICAgICAgIENpcmN1bGFyIFF1ZXVlcworKyoqICA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrKiogIFRoZSBNVSBpbXBsZW1lbnRzIGZvdXIgY2lyY3VsYXIgcXVldWVzLiBUaGVy ZSBhcmUgMiBpbmJvdW5kIHF1ZXVlcyBhbmQgMiBvdXRib3VuZCBxdWV1ZXMuIEluCisrKiog IHRoaXMgY2FzZSwgaW5ib3VuZCBhbmQgb3V0Ym91bmQgcmVmZXIgdG8gdGhlIGRpcmVjdGlv biBvZiB0aGUgZmxvdyBvZiBwb3N0ZWQgbWVzc2FnZXMuCisrKiogIEluYm91bmQgbWVzc2Fn ZXMgYXJlIGVpdGhlcjoKKysqKiAgCQkJCQkJoUUgcG9zdGVkIG1lc3NhZ2VzIGJ5IG90aGVy IHByb2Nlc3NvcnMgZm9yIHRoZSBJbnRlbCBYU2NhbGUgY29yZSB0byBwcm9jZXNzIG9yCisr KiogIAkJCQkJCaFFIGZyZWUgKG9yIGVtcHR5KSBtZXNzYWdlcyB0aGF0IGNhbiBiZSByZXVz ZWQgYnkgb3RoZXIgcHJvY2Vzc29ycy4KKysqKiAgT3V0Ym91bmQgbWVzc2FnZXMgYXJlIGVp dGhlcjoKKysqKiAJCQkJCQkJoUUgcG9zdGVkIG1lc3NhZ2VzIGJ5IHRoZSBJbnRlbCBYU2Nh bGUgY29yZSBmb3Igb3RoZXIgcHJvY2Vzc29ycyB0byBwcm9jZXNzIG9yCisrKiogCQkJCQkJ CaFFIGZyZWUgKG9yIGVtcHR5KSBtZXNzYWdlcyB0aGF0IGNhbiBiZSByZXVzZWQgYnkgdGhl IEludGVsIFhTY2FsZSBjb3JlLgorKyoqICBUaGVyZWZvcmUsIGZyZWUgaW5ib3VuZCBtZXNz YWdlcyBmbG93IGF3YXkgZnJvbSB0aGUgODAzMzEgYW5kIGZyZWUgb3V0Ym91bmQgbWVzc2Fn ZXMgZmxvdyB0b3dhcmQgdGhlIDgwMzMxLgorKyoqICBUaGUgZm91ciBDaXJjdWxhciBRdWV1 ZXMgYXJlIHVzZWQgdG8gcGFzcyBtZXNzYWdlcyBpbiB0aGUgZm9sbG93aW5nIG1hbm5lci4g CisrKiogIAkuIFRoZSB0d28gaW5ib3VuZCBxdWV1ZXMgYXJlIHVzZWQgdG8gaGFuZGxlIGlu Ym91bmQgbWVzc2FnZXMgCisrKiogIAkgIGFuZCB0aGUgdHdvIG91dGJvdW5kIHF1ZXVlcyBh cmUgdXNlZCB0byBoYW5kbGUgIG91dGJvdW5kIG1lc3NhZ2VzLiAKKysqKiAgCS4gT25lIG9m IHRoZSBpbmJvdW5kIHF1ZXVlcyBpcyBkZXNpZ25hdGVkIHRoZSBGcmVlIHF1ZXVlIGFuZCBp dCBjb250YWlucyBpbmJvdW5kIGZyZWUgbWVzc2FnZXMuIAorKyoqICAJICBUaGUgb3RoZXIg aW5ib3VuZCBxdWV1ZSBpcyBkZXNpZ25hdGVkIHRoZSBQb3N0IHF1ZXVlIGFuZCBpdCBjb250 YWlucyBpbmJvdW5kIHBvc3RlZCBtZXNzYWdlcy4KKysqKiAgCSAgU2ltaWxhcmx5LCBvbmUg b2YgdGhlIG91dGJvdW5kIHF1ZXVlcyBpcyBkZXNpZ25hdGVkIHRoZSBGcmVlIHF1ZXVlIGFu ZCB0aGUgb3RoZXIgb3V0Ym91bmQgcXVldWUgaXMgZGVzaWduYXRlZCB0aGUgUG9zdCBxdWV1 ZS4gCisrKiogIAorKyoqICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisrKiogIENpcmN1bGFyIFF1ZXVlIFN1bW1hcnkKKysqKiAg IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KKysqKiAgfCAgICBRdWV1ZSBOYW1lICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAg UHVycG9zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgQWN0aW9uIG9uIFBD SSBJbnRlcmZhY2V8CisrKiogIHxfX19fX19fX19fX19fX19fX19fX19ffF9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3xfX19f X19fX19fX19fX19fX19fX19fX19ffAorKyoqICB8SW5ib3VuZCBQb3N0ICBRdWV1ZSAgIHwg ICAgUXVldWUgZm9yIGluYm91bmQgbWVzc2FnZXMgZnJvbSBvdGhlciBwcm9jZXNzb3JzICAg ICAgICB8ICAgICAgICAgIFdyaXR0ZW4gICAgICAgIHwKKysqKiAgfCAgICAgICAgICAgICAg ICAgICAgICB8ICAgICB3YWl0aW5nIHRvIGJlIHByb2Nlc3NlZCBieSB0aGUgODAzMzEgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8CisrKiogIHxJbmJv dW5kIEZyZWUgIFF1ZXVlICAgfCAgICBRdWV1ZSBmb3IgZW1wdHkgaW5ib3VuZCBtZXNzYWdl cyBmcm9tIHRoZSA4MDMzMSAgICAgICAgIHwgICAgICAgICAgUmVhZCAgICAgICAgICAgfAor KyoqICB8ICAgICAgICAgICAgICAgICAgICAgIHwgICAgYXZhaWxhYmxlIGZvciB1c2UgYnkg b3RoZXIgcHJvY2Vzc29ycyAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgIHwKKysqKiAgfE91dGJvdW5kIFBvc3QgUXVldWUgICB8ICAgIFF1ZXVlIGZvciBv dXRib3VuZCBtZXNzYWdlcyBmcm9tIHRoZSA4MDMzMSAgICAgICAgICAgICAgfCAgICAgICAg ICBSZWFkICAgICAgICAgICB8CisrKiogIHwgICAgICAgICAgICAgICAgICAgICAgfCAgICB0 aGF0IGFyZSBiZWluZyBwb3N0ZWQgdG8gdGhlIG90aGVyIHByb2Nlc3NvcnMgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgfAorKyoqICB8T3V0Ym91bmQgRnJlZSBRdWV1 ZSAgIHwgICAgUXVldWUgZm9yIGVtcHR5IG91dGJvdW5kIG1lc3NhZ2VzIGZyb20gb3RoZXIg cHJvY2Vzc29ycyB8ICAgICAgICAgIFdyaXR0ZW4gICAgICAgIHwKKysqKiAgfCAgICAgICAg ICAgICAgICAgICAgICB8ICAgIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IHRoZSA4MDMzMSAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICB8CisrKiog IHxfX19fX19fX19fX19fX19fX19fX19ffF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX19f X19ffAorKyoqCisrKiogIC4gVGhlIHR3byBpbmJvdW5kIHF1ZXVlcyBhbGxvdyB0aGUgaG9z dCBwcm9jZXNzb3IgdG8gcG9zdCBpbmJvdW5kIG1lc3NhZ2VzIGZvciB0aGUgODAzMzEgaW4g b25lCisrKiogICAgcXVldWUgYW5kIHRvIHJlY2VpdmUgZnJlZSBtZXNzYWdlcyByZXR1cm5p bmcgZnJvbSB0aGUgODAzMzEuIAorKyoqICAgIFRoZSBob3N0IHByb2Nlc3NvciBwb3N0cyBp bmJvdW5kIG1lc3NhZ2VzLCAKKysqKiAgICB0aGUgSW50ZWwgWFNjYWxlIGNvcmUgcmVjZWl2 ZXMgdGhlIHBvc3RlZCBtZXNzYWdlIGFuZCB3aGVuIGl0IGlzIGZpbmlzaGVkIHdpdGggdGhl IG1lc3NhZ2UsCisrKiogICAgcGxhY2VzIGl0IGJhY2sgb24gdGhlIGluYm91bmQgZnJlZSBx dWV1ZSBmb3IgcmV1c2UgYnkgdGhlIGhvc3QgcHJvY2Vzc29yLgorKyoqICAKKysqKiAgVGhl IGNpcmN1bGFyIHF1ZXVlcyBhcmUgYWNjZXNzZWQgYnkgZXh0ZXJuYWwgUENJIGFnZW50cyB0 aHJvdWdoIHR3byBwb3J0IGxvY2F0aW9ucyBpbiB0aGUgUENJCisrKiogIGFkZHJlc3Mgc3Bh Y2U6IAorKyoqICAgICAgICAgICAgICBJbmJvdW5kIFF1ZXVlIFBvcnQgCisrKiogICAgICAg ICAgYW5kIE91dGJvdW5kIFF1ZXVlIFBvcnQuIAorKyoqICBUaGUgSW5ib3VuZCBRdWV1ZSBQ b3J0IGlzIHVzZWQgYnkgZXh0ZXJuYWwgUENJIGFnZW50cyB0byByZWFkIHRoZSBJbmJvdW5k IEZyZWUgUXVldWUgYW5kIHdyaXRlIHRoZSBJbmJvdW5kIFBvc3QgUXVldWUuIAorKyoqICBU aGUgT3V0Ym91bmQgUXVldWUgUG9ydCBpcyB1c2VkIGJ5IGV4dGVybmFsIFBDSSBhZ2VudHMg dG8gcmVhZCB0aGUgT3V0Ym91bmQgUG9zdCBRdWV1ZSBhbmQgd3JpdGUgdGhlIE91dGJvdW5k IEZyZWUgUXVldWUuCisrKiogIE5vdGUgdGhhdCBhIFBDSSB0cmFuc2FjdGlvbiB0byB0aGUg aW5ib3VuZCBvciBvdXRib3VuZCBxdWV1ZSBwb3J0cyB3aXRoIG51bGwgYnl0ZSBlbmFibGVz IChQX0MvQkVbMzowXSM9MTExMSAyICkgCisrKiogIGRvZXMgbm90IGNhdXNlIHRoZSBNVSBo YXJkd2FyZSB0byBpbmNyZW1lbnQgdGhlIHF1ZXVlIHBvaW50ZXJzLiAKKysqKiAgVGhpcyBp cyB0cmVhdGVkIGFzIHdoZW4gdGhlIFBDSSB0cmFuc2FjdGlvbiBkaWQgbm90IG9jY3VyLiAK KysqKiAgVGhlIEluYm91bmQgYW5kIE91dGJvdW5kIFF1ZXVlIFBvcnRzIG5ldmVyIHJlc3Bv bmQgd2l0aCBQX0FDSzY0IyBvbiB0aGUgUENJIGludGVyZmFjZS4KKysqKiAgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysqKiAgT3ZlcnZpZXcgb2YgQ2lyY3VsYXIgUXVl dWUgT3BlcmF0aW9uCisrKiogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisr KiogIC4gVGhlIGRhdGEgc3RvcmFnZSBmb3IgdGhlIGNpcmN1bGFyIHF1ZXVlcyBtdXN0IGJl IHByb3ZpZGVkIGJ5IHRoZSA4MDMzMSBsb2NhbCBtZW1vcnkuCisrKiogIC4gVGhlIGJhc2Ug YWRkcmVzcyBvZiB0aGUgY2lyY3VsYXIgcXVldWVzIGlzIGNvbnRhaW5lZCBpbiB0aGUgUXVl dWUgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyLgorKyoqICAgIEVhY2ggZW50cnkgaW4gdGhlIHF1 ZXVlIGlzIGEgMzItYml0IGRhdGEgdmFsdWUuIAorKyoqICAuIEVhY2ggcmVhZCBmcm9tIG9y IHdyaXRlIHRvIHRoZSBxdWV1ZSBtYXkgYWNjZXNzIG9ubHkgb25lIHF1ZXVlIGVudHJ5LiAK KysqKiAgLiBNdWx0aS1EV09SRCBhY2Nlc3NlcyB0byB0aGUgY2lyY3VsYXIgcXVldWVzIGFy ZSBub3QgYWxsb3dlZC4gCisrKiogICAgU3ViLURXT1JEIGFjY2Vzc2VzIGFyZSBwcm9tb3Rl ZCB0byBEV09SRCBhY2Nlc3Nlcy4KKysqKiAgLiBFYWNoIGNpcmN1bGFyIHF1ZXVlIGhhcyBh IGhlYWQgcG9pbnRlciBhbmQgYSB0YWlsIHBvaW50ZXIuIAorKyoqICAgIFRoZSBwb2ludGVy cyBhcmUgb2Zmc2V0cyBmcm9tIHRoZSBRdWV1ZSBCYXNlIEFkZHJlc3MuCisrKiogIC4gV3Jp dGVzIHRvIGEgcXVldWUgb2NjdXIgYXQgdGhlIGhlYWQgb2YgdGhlIHF1ZXVlIGFuZCByZWFk cyBvY2N1ciBmcm9tIHRoZSB0YWlsLiAKKysqKiAgICBUaGUgaGVhZCBhbmQgdGFpbCBwb2lu dGVycyBhcmUgaW5jcmVtZW50ZWQgYnkgZWl0aGVyIHRoZSBJbnRlbCBYU2NhbGUgY29yZSBv ciB0aGUgTWVzc2FnaW5nIFVuaXQgaGFyZHdhcmUuCisrKiogICAgV2hpY2ggdW5pdCBtYWlu dGFpbnMgdGhlIHBvaW50ZXIgaXMgZGV0ZXJtaW5lZCBieSB0aGUgd3JpdGVyIG9mIHRoZSBx dWV1ZS4gCisrKiogICAgTW9yZSBkZXRhaWxzIGFib3V0IHRoZSBwb2ludGVycyBhcmUgZ2l2 ZW4gaW4gdGhlIHF1ZXVlIGRlc2NyaXB0aW9ucyBiZWxvdy4gCisrKiogICAgVGhlIHBvaW50 ZXJzIGFyZSBpbmNyZW1lbnRlZCBhZnRlciB0aGUgcXVldWUgYWNjZXNzLgorKyoqICAgIEJv dGggcG9pbnRlcnMgd3JhcCBhcm91bmQgdG8gdGhlIGZpcnN0IGFkZHJlc3Mgb2YgdGhlIGNp cmN1bGFyIHF1ZXVlIHdoZW4gdGhleSByZWFjaCB0aGUgY2lyY3VsYXIgcXVldWUgc2l6ZS4K KysqKiAgCisrKiogIE1lc3NhZ2luZyBVbml0Li4uCisrKioKKysqKiAgVGhlIE1lc3NhZ2lu ZyBVbml0IGdlbmVyYXRlcyBhbiBpbnRlcnJ1cHQgdG8gdGhlIEludGVsIFhTY2FsZSBjb3Jl IG9yIGdlbmVyYXRlIGEgUENJIGludGVycnVwdCB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnMu CisrKiogIC4gSW4gZ2VuZXJhbCwgd2hlbiBhIFBvc3QgcXVldWUgaXMgd3JpdHRlbiwgYW4g aW50ZXJydXB0IGlzIGdlbmVyYXRlZCB0byBub3RpZnkgdGhlIHJlY2VpdmVyIHRoYXQgYSBt ZXNzYWdlIHdhcyBwb3N0ZWQuCisrKiogICAgVGhlIHNpemUgb2YgZWFjaCBjaXJjdWxhciBx dWV1ZSBjYW4gcmFuZ2UgZnJvbSA0SyBlbnRyaWVzICgxNiBLYnl0ZXMpIHRvIDY0SyBlbnRy aWVzICgyNTYgS2J5dGVzKS4KKysqKiAgLiBBbGwgZm91ciBxdWV1ZXMgbXVzdCBiZSB0aGUg c2FtZSBzaXplIGFuZCBtYXkgYmUgY29udGlndW91cy4gCisrKiogICAgVGhlcmVmb3JlLCB0 aGUgdG90YWwgYW1vdW50IG9mIGxvY2FsIG1lbW9yeSBuZWVkZWQgYnkgdGhlIGNpcmN1bGFy IHF1ZXVlcyByYW5nZXMgZnJvbSA2NCBLYnl0ZXMgdG8gMSBNYnl0ZXMuIAorKyoqICAgIFRo ZSBRdWV1ZSBzaXplIGlzIGRldGVybWluZWQgYnkgdGhlIFF1ZXVlIFNpemUgZmllbGQgaW4g dGhlIE1VIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIuCisrKiogIC4gVGhlcmUgaXMgb25lIGJh c2UgYWRkcmVzcyBmb3IgYWxsIGZvdXIgcXVldWVzLiAKKysqKiAgICBJdCBpcyBzdG9yZWQg aW4gdGhlIFF1ZXVlIEJhc2UgQWRkcmVzcyBSZWdpc3RlciAoUUJBUikuCisrKiogICAgVGhl IHN0YXJ0aW5nIGFkZHJlc3NlcyBvZiBlYWNoIHF1ZXVlIGlzIGJhc2VkIG9uIHRoZSBRdWV1 ZSBCYXNlIEFkZHJlc3MgYW5kIHRoZSBRdWV1ZSBTaXplIGZpZWxkLiAKKysqKiAgICBoZXJl IHNob3dzIGFuIGV4YW1wbGUgb2YgaG93IHRoZSBjaXJjdWxhciBxdWV1ZXMgc2hvdWxkIGJl IHNldCB1cCBiYXNlZCBvbiB0aGUKKysqKiAgICBJbnRlbGxpZ2VudCBJL08gKEkgMiBPKSBB cmNoaXRlY3R1cmUgU3BlY2lmaWNhdGlvbi4gCisrKiogICAgT3RoZXIgb3JkZXJpbmcgb2Yg dGhlIGNpcmN1bGFyIHF1ZXVlcyBpcyBwb3NzaWJsZS4KKysqKiAgCisrKiogIAkJCQlRdWV1 ZSAgICAgICAgICAgICAgICAgICAgICAgICAgIFN0YXJ0aW5nIEFkZHJlc3MKKysqKiAgCQkJ CUluYm91bmQgRnJlZSBRdWV1ZSAgICAgICAgICAgICAgUUJBUgorKyoqICAJCQkJSW5ib3Vu ZCBQb3N0IFF1ZXVlICAgICAgICAgICAgICBRQkFSICsgUXVldWUgU2l6ZQorKyoqICAJCQkJ T3V0Ym91bmQgUG9zdCBRdWV1ZSAgICAgICAgICAgICBRQkFSICsgMiAqIFF1ZXVlIFNpemUK KysqKiAgCQkJCU91dGJvdW5kIEZyZWUgUXVldWUgICAgICAgICAgICAgUUJBUiArIDMgKiBR dWV1ZSBTaXplCisrKiogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIElu Ym91bmQgUG9zdCBRdWV1ZQorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgVGhlIElu Ym91bmQgUG9zdCBRdWV1ZSBob2xkcyBwb3N0ZWQgbWVzc2FnZXMgcGxhY2VkIHRoZXJlIGJ5 IG90aGVyIHByb2Nlc3NvcnMgZm9yIHRoZSBJbnRlbCBYU2NhbGUgY29yZSB0byBwcm9jZXNz LgorKyoqICBUaGlzIHF1ZXVlIGlzIHJlYWQgZnJvbSB0aGUgcXVldWUgdGFpbCBieSB0aGUg SW50ZWwgWFNjYWxlIGNvcmUuIEl0IGlzIHdyaXR0ZW4gdG8gdGhlIHF1ZXVlIGhlYWQgYnkg ZXh0ZXJuYWwgUENJIGFnZW50cy4gCisrKiogIFRoZSB0YWlsIHBvaW50ZXIgaXMgbWFpbnRh aW5lZCBieSB0aGUgSW50ZWwgWFNjYWxlIGNvcmUuIFRoZSBoZWFkIHBvaW50ZXIgaXMgbWFp bnRhaW5lZCBieSB0aGUgTVUgaGFyZHdhcmUuCisrKiogIEZvciBhIFBDSSB3cml0ZSB0cmFu c2FjdGlvbiB0aGF0IGFjY2Vzc2VzIHRoZSBJbmJvdW5kIFF1ZXVlIFBvcnQsIHRoZSBNVSB3 cml0ZXMgdGhlIGRhdGEgdG8gdGhlIGxvY2FsIG1lbW9yeSBsb2NhdGlvbiBhZGRyZXNzIGlu IHRoZSBJbmJvdW5kIFBvc3QgSGVhZCBQb2ludGVyIFJlZ2lzdGVyLgorKyoqICBXaGVuIHRo ZSBkYXRhIHdyaXR0ZW4gdG8gdGhlIEluYm91bmQgUXVldWUgUG9ydCBpcyB3cml0dGVuIHRv IGxvY2FsIG1lbW9yeSwgdGhlIE1VIGhhcmR3YXJlIGluY3JlbWVudHMgdGhlIEluYm91bmQg UG9zdCBIZWFkIFBvaW50ZXIgUmVnaXN0ZXIuCisrKiogIEFuIEludGVsIFhTY2FsZSBjb3Jl IGludGVycnVwdCBtYXkgYmUgZ2VuZXJhdGVkIHdoZW4gdGhlIEluYm91bmQgUG9zdCBRdWV1 ZSBpcyB3cml0dGVuLiAKKysqKiAgVGhlIEluYm91bmQgUG9zdCBRdWV1ZSBJbnRlcnJ1cHQg Yml0IGluIHRoZSBJbmJvdW5kIEludGVycnVwdCBTdGF0dXMgUmVnaXN0ZXIgaW5kaWNhdGVz IHRoZSBpbnRlcnJ1cHQgc3RhdHVzLgorKyoqICBUaGUgaW50ZXJydXB0IGlzIGNsZWFyZWQg d2hlbiB0aGUgSW5ib3VuZCBQb3N0IFF1ZXVlIEludGVycnVwdCBiaXQgaXMgY2xlYXJlZC4g CisrKiogIFRoZSBpbnRlcnJ1cHQgY2FuIGJlIG1hc2tlZCBieSB0aGUgSW5ib3VuZCBJbnRl cnJ1cHQgTWFzayBSZWdpc3Rlci4gCisrKiogIFNvZnR3YXJlIG11c3QgYmUgYXdhcmUgb2Yg dGhlIHN0YXRlIG9mIHRoZSBJbmJvdW5kIFBvc3QgUXVldWUgSW50ZXJydXB0IE1hc2sgYml0 IHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBmdWxsIGNvbmRpdGlvbiBpcyByZWNvZ25pemVkIGJ5 IHRoZSBjb3JlIHByb2Nlc3Nvci4KKysqKiAgSW4gYWRkaXRpb24sIHRvIGd1YXJhbnRlZSB0 aGF0IHRoZSBxdWV1ZSBkb2VzIG5vdCBnZXQgb3ZlcndyaXR0ZW4sIHNvZnR3YXJlIG11c3Qg cHJvY2VzcyBtZXNzYWdlcyBmcm9tIHRoZSB0YWlsIG9mIHRoZSBxdWV1ZSBiZWZvcmUgaW5j cmVtZW50aW5nIHRoZSB0YWlsIHBvaW50ZXIgYW5kIGNsZWFyaW5nIHRoaXMgaW50ZXJydXB0 LgorKyoqICBPbmNlIGNsZWFyZWQsIGFuIGludGVycnVwdCBpcyBOT1QgZ2VuZXJhdGVkIHdo ZW4gdGhlIGhlYWQgYW5kIHRhaWwgcG9pbnRlcnMgcmVtYWluIHVuZXF1YWwgKGkuZS4gcXVl dWUgc3RhdHVzIGlzIE5vdCBFbXB0eSkuIAorKyoqICBPbmx5IGEgbmV3IG1lc3NhZ2UgcG9z dGluZyB0aGUgaW4gdGhlIGluYm91bmQgcXVldWUgZ2VuZXJhdGVzIGEgbmV3IGludGVycnVw dC4gCisrKiogIFRoZXJlZm9yZSwgd2hlbiBzb2Z0d2FyZSBsZWF2ZXMgYW55IHVucHJvY2Vz c2VkIG1lc3NhZ2VzIGluIHRoZSBwb3N0IHF1ZXVlIHdoZW4gdGhlIGludGVycnVwdCBpcyBj bGVhcmVkLCBzb2Z0d2FyZSBtdXN0IHJldGFpbiB0aGUgaW5mb3JtYXRpb24gdGhhdCB0aGUg SW5ib3VuZCBQb3N0IHF1ZXVlIHN0YXR1cy4KKysqKiAgRnJvbSB0aGUgdGltZSB0aGF0IHRo ZSBQQ0kgd3JpdGUgdHJhbnNhY3Rpb24gaXMgcmVjZWl2ZWQgdW50aWwgdGhlIGRhdGEgaXMg d3JpdHRlbiBpbiBsb2NhbCBtZW1vcnkgYW5kIHRoZSBJbmJvdW5kIFBvc3QgSGVhZCBQb2lu dGVyIFJlZ2lzdGVyIGlzIGluY3JlbWVudGVkLCBhbnkgUENJIHRyYW5zYWN0aW9uIHRoYXQg YXR0ZW1wdHMgdG8gYWNjZXNzIHRoZSBJbmJvdW5kIFBvc3QgUXVldWUgUG9ydCBpcyBzaWdu YWxsZWQgYSBSZXRyeS4KKysqKiAgVGhlIEludGVsIFhTY2FsZSBjb3JlIG1heSByZWFkIG1l c3NhZ2VzIGZyb20gdGhlIEluYm91bmQgUG9zdCBRdWV1ZSBieSByZWFkaW5nIHRoZSBkYXRh IGZyb20gdGhlIGxvY2FsIG1lbW9yeSBsb2NhdGlvbiBwb2ludGVkIHRvIGJ5IHRoZSBJbmJv dW5kIFBvc3QgVGFpbCBQb2ludGVyIFJlZ2lzdGVyLiAKKysqKiAgVGhlIEludGVsIFhTY2Fs ZSBjb3JlIG11c3QgdGhlbiBpbmNyZW1lbnQgdGhlIEluYm91bmQgUG9zdCBUYWlsIFBvaW50 ZXIgUmVnaXN0ZXIuIAorKyoqICBXaGVuIHRoZSBJbmJvdW5kIFBvc3QgUXVldWUgaXMgZnVs bCAoaGVhZCBhbmQgdGFpbCBwb2ludGVycyBhcmUgZXF1YWwgYW5kIHRoZSBoZWFkIHBvaW50 ZXIgd2FzIGxhc3QgdXBkYXRlZCBieSBoYXJkd2FyZSksIHRoZSBoYXJkd2FyZSByZXRyaWVz IGFueSBQQ0kgd3JpdGVzIHVudGlsIGEgc2xvdCBpbiB0aGUgcXVldWUgYmVjb21lcyBhdmFp bGFibGUuIAorKyoqICBBIHNsb3QgaW4gdGhlIHBvc3QgcXVldWUgYmVjb21lcyBhdmFpbGFi bGUgYnkgdGhlIEludGVsIFhTY2FsZSBjb3JlIGluY3JlbWVudGluZyB0aGUgdGFpbCBwb2lu dGVyLgorKyoqICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICBJbmJvdW5k IEZyZWUgUXVldWUKKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIFRoZSBJbmJvdW5k IEZyZWUgUXVldWUgaG9sZHMgZnJlZSBpbmJvdW5kIG1lc3NhZ2VzIHBsYWNlZCB0aGVyZSBi eSB0aGUgSW50ZWwgWFNjYWxlIGNvcmUgZm9yIG90aGVyIHByb2Nlc3NvcnMgdG8gdXNlLgor KyoqICBUaGlzIHF1ZXVlIGlzIHJlYWQgZnJvbSB0aGUgcXVldWUgdGFpbCBieSBleHRlcm5h bCBQQ0kgYWdlbnRzLiAKKysqKiAgSXQgaXMgd3JpdHRlbiB0byB0aGUgcXVldWUgaGVhZCBi eSB0aGUgSW50ZWwgWFNjYWxlIGNvcmUuIAorKyoqICBUaGUgdGFpbCBwb2ludGVyIGlzIG1h aW50YWluZWQgYnkgdGhlIE1VIGhhcmR3YXJlLgorKyoqICBUaGUgaGVhZCBwb2ludGVyIGlz IG1haW50YWluZWQgYnkgdGhlIEludGVsIFhTY2FsZSBjb3JlLgorKyoqICBGb3IgYSBQQ0kg cmVhZCB0cmFuc2FjdGlvbiB0aGF0IGFjY2Vzc2VzIHRoZSBJbmJvdW5kIFF1ZXVlIFBvcnQs CisrKiogIHRoZSBNVSBhdHRlbXB0cyB0byByZWFkIHRoZSBkYXRhIGF0IHRoZSBsb2NhbCBt ZW1vcnkgYWRkcmVzcyBpbiB0aGUgSW5ib3VuZCBGcmVlIFRhaWwgUG9pbnRlci4gCisrKiog IFdoZW4gdGhlIHF1ZXVlIGlzIG5vdCBlbXB0eSAoaGVhZCBhbmQgdGFpbCBwb2ludGVycyBh cmUgbm90IGVxdWFsKSBvciBmdWxsIChoZWFkIGFuZCB0YWlsIHBvaW50ZXJzIGFyZSBlcXVh bCBidXQgdGhlIGhlYWQgcG9pbnRlciB3YXMgbGFzdCB3cml0dGVuIGJ5IHNvZnR3YXJlKSwg dGhlIGRhdGEgaXMgcmV0dXJuZWQuCisrKiogIFdoZW4gdGhlIHF1ZXVlIGlzIGVtcHR5ICho ZWFkIGFuZCB0YWlsIHBvaW50ZXJzIGFyZSBlcXVhbCBhbmQgdGhlIGhlYWQgcG9pbnRlciB3 YXMgbGFzdCB1cGRhdGVkIGJ5IGhhcmR3YXJlKSwgdGhlIHZhbHVlIG9mIC0xIChGRkZGLkZG RkZIKSBpcyAgcmV0dXJuZWQuCisrKiogIFdoZW4gdGhlIHF1ZXVlIHdhcyBub3QgZW1wdHkg YW5kIHRoZSBNVSBzdWNjZWVkZWQgaW4gcmV0dXJuaW5nIHRoZSBkYXRhIGF0IHRoZSB0YWls LCAKKysqKiAgdGhlIE1VIGhhcmR3YXJlIG11c3QgaW5jcmVtZW50IHRoZSB2YWx1ZSBpbiB0 aGUgSW5ib3VuZCBGcmVlIFRhaWwgUG9pbnRlciBSZWdpc3Rlci4KKysqKiAgVG8gcmVkdWNl IGxhdGVuY3kgZm9yIHRoZSBQQ0kgcmVhZCBhY2Nlc3MsIHRoZSBNVSBpbXBsZW1lbnRzIGEg cHJlZmV0Y2ggbWVjaGFuaXNtIHRvIGFudGljaXBhdGUgYWNjZXNzZXMgdG8gdGhlIEluYm91 bmQgRnJlZSBRdWV1ZS4gCisrKiogIFRoZSBNVSBoYXJkd2FyZSBwcmVmZXRjaGVzIHRoZSBk YXRhIGF0IHRoZSB0YWlsIG9mIHRoZSBJbmJvdW5kIEZyZWUgUXVldWUgYW5kIGxvYWQgaXQg aW50byBhbiBpbnRlcm5hbCBwcmVmZXRjaCByZWdpc3Rlci4gCisrKiogIFdoZW4gdGhlIFBD SSByZWFkIGFjY2VzcyBvY2N1cnMsIHRoZSBkYXRhIGlzIHJlYWQgZGlyZWN0bHkgZnJvbSB0 aGUgcHJlZmV0Y2ggcmVnaXN0ZXIuCisrKiogIFRoZSBwcmVmZXRjaCBtZWNoYW5pc20gbG9h ZHMgYSB2YWx1ZSBvZiAtMSAoRkZGRi5GRkZGSCkgaW50byB0aGUgcHJlZmV0Y2ggcmVnaXN0 ZXIgCisrKiogIHdoZW4gdGhlIGhlYWQgYW5kIHRhaWwgcG9pbnRlcnMgYXJlIGVxdWFsIGFu ZCB0aGUgcXVldWUgaXMgZW1wdHkuIAorKyoqICBJbiBvcmRlciB0byB1cGRhdGUgdGhlIHBy ZWZldGNoIHJlZ2lzdGVyIHdoZW4gbWVzc2FnZXMgYXJlIGFkZGVkIHRvIHRoZSBxdWV1ZSBh bmQgaXQgYmVjb21lcyBub24tZW1wdHksIAorKyoqICB0aGUgcHJlZmV0Y2ggbWVjaGFuaXNt IGF1dG9tYXRpY2FsbHkgc3RhcnRzIGEgcHJlZmV0Y2ggd2hlbiB0aGUgcHJlZmV0Y2ggcmVn aXN0ZXIgY29udGFpbnMgRkZGRi5GRkZGSCBhbmQgdGhlIEluYm91bmQgRnJlZSBIZWFkIFBv aW50ZXIgUmVnaXN0ZXIgaXMgd3JpdHRlbi4KKysqKiAgVGhlIEludGVsIFhTY2FsZSBjb3Jl IG5lZWRzIHRvIHVwZGF0ZSB0aGUgSW5ib3VuZCBGcmVlIEhlYWQgUG9pbnRlciBSZWdpc3Rl ciB3aGVuIGl0IGFkZHMgbWVzc2FnZXMgdG8gdGhlIHF1ZXVlLgorKyoqICBBIHByZWZldGNo IG11c3QgYXBwZWFyIGF0b21pYyBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiB0aGUgZXh0ZXJu YWwgUENJIGFnZW50LgorKyoqICBXaGVuIGEgcHJlZmV0Y2ggaXMgc3RhcnRlZCwgYW55IFBD SSB0cmFuc2FjdGlvbiB0aGF0IGF0dGVtcHRzIHRvIGFjY2VzcyB0aGUgSW5ib3VuZCBGcmVl IFF1ZXVlIGlzIHNpZ25hbGxlZCBhIFJldHJ5IHVudGlsIHRoZSBwcmVmZXRjaCBpcyBjb21w bGV0ZWQuCisrKiogIFRoZSBJbnRlbCBYU2NhbGUgY29yZSBtYXkgcGxhY2UgbWVzc2FnZXMg aW4gdGhlIEluYm91bmQgRnJlZSBRdWV1ZSBieSB3cml0aW5nIHRoZSBkYXRhIHRvIHRoZQor KyoqICBsb2NhbCBtZW1vcnkgbG9jYXRpb24gcG9pbnRlZCB0byBieSB0aGUgSW5ib3VuZCBG cmVlIEhlYWQgUG9pbnRlciBSZWdpc3Rlci4gCisrKiogIFRoZSBwcm9jZXNzb3IgbXVzdCB0 aGVuIGluY3JlbWVudCB0aGUgSW5ib3VuZCBGcmVlIEhlYWQgUG9pbnRlciBSZWdpc3Rlci4K KysqKiAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICBPdXRib3VuZCBQb3N0 IFF1ZXVlCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgVGhlIE91dGJvdW5kIFBv c3QgUXVldWUgaG9sZHMgb3V0Ym91bmQgcG9zdGVkIG1lc3NhZ2VzIHBsYWNlZCB0aGVyZSBi eSB0aGUgSW50ZWwgWFNjYWxlIAorKyoqICBjb3JlIGZvciBvdGhlciBwcm9jZXNzb3JzIHRv IHByb2Nlc3MuIFRoaXMgcXVldWUgaXMgcmVhZCBmcm9tIHRoZSBxdWV1ZSB0YWlsIGJ5IGV4 dGVybmFsIFBDSSBhZ2VudHMuCisrKiogIEl0IGlzIHdyaXR0ZW4gdG8gdGhlIHF1ZXVlIGhl YWQgYnkgdGhlIEludGVsIFhTY2FsZSAgY29yZS4gVGhlIHRhaWwgcG9pbnRlciBpcyBtYWlu dGFpbmVkIGJ5IHRoZQorKyoqICBNVSBoYXJkd2FyZS4gVGhlIGhlYWQgcG9pbnRlciBpcyBt YWludGFpbmVkIGJ5IHRoZSBJbnRlbCBYU2NhbGUgIGNvcmUuCisrKiogIEZvciBhIFBDSSBy ZWFkIHRyYW5zYWN0aW9uIHRoYXQgYWNjZXNzZXMgdGhlIE91dGJvdW5kIFF1ZXVlIFBvcnQs IHRoZSBNVSBhdHRlbXB0cyB0byByZWFkIHRoZQorKyoqICBkYXRhIGF0IHRoZSBsb2NhbCBt ZW1vcnkgYWRkcmVzcyBpbiB0aGUgT3V0Ym91bmQgUG9zdCBUYWlsIFBvaW50ZXIgUmVnaXN0 ZXIuIFdoZW4gdGhlIHF1ZXVlIGlzIG5vdAorKyoqICBlbXB0eSAoaGVhZCBhbmQgdGFpbCBw b2ludGVycyBhcmUgbm90IGVxdWFsKSBvciBmdWxsIChoZWFkIGFuZCB0YWlsIHBvaW50ZXJz IGFyZSBlcXVhbCBidXQgdGhlIGhlYWQKKysqKiAgcG9pbnRlciB3YXMgbGFzdCB3cml0dGVu IGJ5IHNvZnR3YXJlKSwgdGhlIGRhdGEgaXMgcmV0dXJuZWQuIFdoZW4gdGhlIHF1ZXVlIGlz IGVtcHR5IChoZWFkIGFuZCB0YWlsCisrKiogIHBvaW50ZXJzIGFyZSBlcXVhbCBhbmQgdGhl IGhlYWQgcG9pbnRlciB3YXMgbGFzdCB1cGRhdGVkIGJ5IGhhcmR3YXJlKSwgdGhlIHZhbHVl IG9mIC0xCisrKiogIChGRkZGLkZGRkZIKSBpcyByZXR1cm5lZC4gV2hlbiB0aGUgcXVldWUg d2FzIG5vdCBlbXB0eSBhbmQgdGhlIE1VIHN1Y2NlZWRlZCBpbiByZXR1cm5pbmcgdGhlCisr KiogIGRhdGEgYXQgdGhlIHRhaWwsIHRoZSBNVSBoYXJkd2FyZSBtdXN0IGluY3JlbWVudCB0 aGUgdmFsdWUgaW4gdGhlIE91dGJvdW5kIFBvc3QgVGFpbCBQb2ludGVyCisrKiogIFJlZ2lz dGVyLgorKyoqICBUbyByZWR1Y2UgbGF0ZW5jeSBmb3IgdGhlIFBDSSByZWFkIGFjY2Vzcywg dGhlIE1VIGltcGxlbWVudHMgYSBwcmVmZXRjaCBtZWNoYW5pc20gdG8gYW50aWNpcGF0ZQor KyoqICBhY2Nlc3NlcyB0byB0aGUgT3V0Ym91bmQgUG9zdCBRdWV1ZS4gVGhlIE1VIGhhcmR3 YXJlIHByZWZldGNoZXMgdGhlIGRhdGEgYXQgdGhlIHRhaWwgb2YgdGhlCisrKiogIE91dGJv dW5kIFBvc3QgUXVldWUgYW5kIGxvYWQgaXQgaW50byBhbiBpbnRlcm5hbCBwcmVmZXRjaCBy ZWdpc3Rlci4gV2hlbiB0aGUgUENJIHJlYWQgYWNjZXNzCisrKiogIG9jY3VycywgdGhlIGRh dGEgaXMgcmVhZCBkaXJlY3RseSBmcm9tIHRoZSBwcmVmZXRjaCByZWdpc3Rlci4KKysqKiAg VGhlIHByZWZldGNoIG1lY2hhbmlzbSBsb2FkcyBhIHZhbHVlIG9mIC0xIChGRkZGLkZGRkZI KSBpbnRvIHRoZSBwcmVmZXRjaCByZWdpc3RlciB3aGVuIHRoZSBoZWFkCisrKiogIGFuZCB0 YWlsIHBvaW50ZXJzIGFyZSBlcXVhbCBhbmQgdGhlIHF1ZXVlIGlzIGVtcHR5LiBJbiBvcmRl ciB0byB1cGRhdGUgdGhlIHByZWZldGNoIHJlZ2lzdGVyIHdoZW4KKysqKiAgbWVzc2FnZXMg YXJlIGFkZGVkIHRvIHRoZSBxdWV1ZSBhbmQgaXQgYmVjb21lcyBub24tZW1wdHksIHRoZSBw cmVmZXRjaCBtZWNoYW5pc20gYXV0b21hdGljYWxseQorKyoqICBzdGFydHMgYSBwcmVmZXRj aCB3aGVuIHRoZSBwcmVmZXRjaCByZWdpc3RlciBjb250YWlucyBGRkZGLkZGRkZIIGFuZCB0 aGUgT3V0Ym91bmQgUG9zdCBIZWFkCisrKiogIFBvaW50ZXIgUmVnaXN0ZXIgaXMgd3JpdHRl bi4gVGhlIEludGVsIFhTY2FsZSAgY29yZSBuZWVkcyB0byB1cGRhdGUgdGhlIE91dGJvdW5k IFBvc3QgSGVhZAorKyoqICBQb2ludGVyIFJlZ2lzdGVyIHdoZW4gaXQgYWRkcyBtZXNzYWdl cyB0byB0aGUgcXVldWUuCisrKiogIEEgcHJlZmV0Y2ggbXVzdCBhcHBlYXIgYXRvbWljIGZy b20gdGhlIHBlcnNwZWN0aXZlIG9mIHRoZSBleHRlcm5hbCBQQ0kgYWdlbnQuIFdoZW4gYSBw cmVmZXRjaCBpcworKyoqICBzdGFydGVkLCBhbnkgUENJIHRyYW5zYWN0aW9uIHRoYXQgYXR0 ZW1wdHMgdG8gYWNjZXNzIHRoZSBPdXRib3VuZCBQb3N0IFF1ZXVlIGlzIHNpZ25hbGxlZCBh IFJldHJ5CisrKiogIHVudGlsIHRoZSBwcmVmZXRjaCBpcyBjb21wbGV0ZWQuCisrKiogIEEg UENJIGludGVycnVwdCBtYXkgYmUgZ2VuZXJhdGVkIHdoZW4gZGF0YSBpbiB0aGUgcHJlZmV0 Y2ggYnVmZmVyIGlzIHZhbGlkLiBXaGVuIHRoZSBwcmVmZXRjaAorKyoqICBxdWV1ZSBpcyBj bGVhciwgbm8gaW50ZXJydXB0IGlzIGdlbmVyYXRlZC4gVGhlIE91dGJvdW5kIFBvc3QgUXVl dWUgSW50ZXJydXB0IGJpdCBpbiB0aGUgT3V0Ym91bmQKKysqKiAgSW50ZXJydXB0IFN0YXR1 cyBSZWdpc3RlciBzaGFsbCBpbmRpY2F0ZSB0aGUgc3RhdHVzIG9mIHRoZSBwcmVmZXRjaCBi dWZmZXIgZGF0YSBhbmQgdGhlcmVmb3JlIHRoZQorKyoqICBpbnRlcnJ1cHQgc3RhdHVzLiBU aGUgaW50ZXJydXB0IGlzIGNsZWFyZWQgd2hlbiBhbnkgcHJlZmV0Y2hlZCBkYXRhIGhhcyBi ZWVuIHJlYWQgZnJvbSB0aGUgT3V0Ym91bmQKKysqKiAgUXVldWUgUG9ydC4gVGhlIGludGVy cnVwdCBjYW4gYmUgbWFza2VkIGJ5IHRoZSBPdXRib3VuZCBJbnRlcnJ1cHQgTWFzayBSZWdp c3Rlci4KKysqKiAgVGhlIEludGVsIFhTY2FsZSAgY29yZSBtYXkgcGxhY2UgbWVzc2FnZXMg aW4gdGhlIE91dGJvdW5kIFBvc3QgUXVldWUgYnkgd3JpdGluZyB0aGUgZGF0YSB0bworKyoq ICB0aGUgbG9jYWwgbWVtb3J5IGFkZHJlc3MgaW4gdGhlIE91dGJvdW5kIFBvc3QgSGVhZCBQ b2ludGVyIFJlZ2lzdGVyLiBUaGUgcHJvY2Vzc29yIG11c3QgdGhlbgorKyoqICBpbmNyZW1l bnQgdGhlIE91dGJvdW5kIFBvc3QgSGVhZCBQb2ludGVyIFJlZ2lzdGVyLgorKyoqICA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICBP dXRib3VuZCBGcmVlIFF1ZXVlCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiog IFRoZSBPdXRib3VuZCBGcmVlIFF1ZXVlIGhvbGRzIGZyZWUgbWVzc2FnZXMgcGxhY2VkIHRo ZXJlIGJ5IG90aGVyIHByb2Nlc3NvcnMgZm9yIHRoZSBJbnRlbAorKyoqICBYU2NhbGUgIGNv cmUgdG8gdXNlLiBUaGlzIHF1ZXVlIGlzIHJlYWQgZnJvbSB0aGUgcXVldWUgdGFpbCBieSB0 aGUgSW50ZWwgWFNjYWxlICBjb3JlLiBJdCBpcworKyoqICB3cml0dGVuIHRvIHRoZSBxdWV1 ZSBoZWFkIGJ5IGV4dGVybmFsIFBDSSBhZ2VudHMuIFRoZSB0YWlsIHBvaW50ZXIgaXMgbWFp bnRhaW5lZCBieSB0aGUgSW50ZWwKKysqKiAgWFNjYWxlICBjb3JlLiBUaGUgaGVhZCBwb2lu dGVyIGlzIG1haW50YWluZWQgYnkgdGhlIE1VIGhhcmR3YXJlLgorKyoqICBGb3IgYSBQQ0kg d3JpdGUgdHJhbnNhY3Rpb24gdGhhdCBhY2Nlc3NlcyB0aGUgT3V0Ym91bmQgUXVldWUgUG9y dCwgdGhlIE1VIHdyaXRlcyB0aGUgZGF0YSB0byB0aGUKKysqKiAgbG9jYWwgbWVtb3J5IGFk ZHJlc3MgaW4gdGhlIE91dGJvdW5kIEZyZWUgSGVhZCBQb2ludGVyIFJlZ2lzdGVyLiBXaGVu IHRoZSBkYXRhIHdyaXR0ZW4gdG8gdGhlCisrKiogIE91dGJvdW5kIFF1ZXVlIFBvcnQgaXMg d3JpdHRlbiB0byBsb2NhbCBtZW1vcnksIHRoZSBNVSBoYXJkd2FyZSBpbmNyZW1lbnRzIHRo ZSBPdXRib3VuZCBGcmVlCisrKiogIEhlYWQgUG9pbnRlciBSZWdpc3Rlci4KKysqKiAgV2hl biB0aGUgaGVhZCBwb2ludGVyIGFuZCB0aGUgdGFpbCBwb2ludGVyIGJlY29tZSBlcXVhbCBh bmQgdGhlIHF1ZXVlIGlzIGZ1bGwsIHRoZSBNVSBtYXkgc2lnbmFsCisrKiogIGFuIGludGVy cnVwdCB0byB0aGUgSW50ZWwgWFNjYWxlICBjb3JlIHRvIHJlZ2lzdGVyIHRoZSBxdWV1ZSBm dWxsIGNvbmRpdGlvbi4gVGhpcyBpbnRlcnJ1cHQgaXMKKysqKiAgcmVjb3JkZWQgaW4gdGhl IEluYm91bmQgSW50ZXJydXB0IFN0YXR1cyBSZWdpc3Rlci4gVGhlIGludGVycnVwdCBpcyBj bGVhcmVkIHdoZW4gdGhlIE91dGJvdW5kIEZyZWUKKysqKiAgUXVldWUgRnVsbCBJbnRlcnJ1 cHQgYml0IGlzIGNsZWFyZWQgYW5kIG5vdCBieSB3cml0aW5nIHRvIHRoZSBoZWFkIG9yIHRh aWwgcG9pbnRlcnMuIFRoZSBpbnRlcnJ1cHQgY2FuCisrKiogIGJlIG1hc2tlZCBieSB0aGUg SW5ib3VuZCBJbnRlcnJ1cHQgTWFzayBSZWdpc3Rlci4gU29mdHdhcmUgbXVzdCBiZSBhd2Fy ZSBvZiB0aGUgc3RhdGUgb2YgdGhlCisrKiogIE91dGJvdW5kIEZyZWUgUXVldWUgSW50ZXJy dXB0IE1hc2sgYml0IHRvIGd1YXJhbnRlZSB0aGF0IHRoZSBmdWxsIGNvbmRpdGlvbiBpcyBy ZWNvZ25pemVkIGJ5IHRoZQorKyoqICBjb3JlIHByb2Nlc3Nvci4KKysqKiAgRnJvbSB0aGUg dGltZSB0aGF0IGEgUENJIHdyaXRlIHRyYW5zYWN0aW9uIGlzIHJlY2VpdmVkIHVudGlsIHRo ZSBkYXRhIGlzIHdyaXR0ZW4gaW4gbG9jYWwgbWVtb3J5IGFuZAorKyoqICB0aGUgT3V0Ym91 bmQgRnJlZSBIZWFkIFBvaW50ZXIgUmVnaXN0ZXIgaXMgaW5jcmVtZW50ZWQsIGFueSBQQ0kg dHJhbnNhY3Rpb24gdGhhdCBhdHRlbXB0cyB0bworKyoqICBhY2Nlc3MgdGhlIE91dGJvdW5k IEZyZWUgUXVldWUgUG9ydCBpcyBzaWduYWxsZWQgYSByZXRyeS4KKysqKiAgVGhlIEludGVs IFhTY2FsZSAgY29yZSBtYXkgcmVhZCBtZXNzYWdlcyBmcm9tIHRoZSBPdXRib3VuZCBGcmVl IFF1ZXVlIGJ5IHJlYWRpbmcgdGhlIGRhdGEKKysqKiAgZnJvbSB0aGUgbG9jYWwgbWVtb3J5 IGFkZHJlc3MgaW4gdGhlIE91dGJvdW5kIEZyZWUgVGFpbCBQb2ludGVyIFJlZ2lzdGVyLiBU aGUgcHJvY2Vzc29yIG11c3QKKysqKiAgdGhlbiBpbmNyZW1lbnQgdGhlIE91dGJvdW5kIEZy ZWUgVGFpbCBQb2ludGVyIFJlZ2lzdGVyLiBXaGVuIHRoZSBPdXRib3VuZCBGcmVlIFF1ZXVl IGlzIGZ1bGwsCisrKiogIHRoZSBoYXJkd2FyZSBtdXN0IHJldHJ5IGFueSBQQ0kgd3JpdGVz IHVudGlsIGEgc2xvdCBpbiB0aGUgcXVldWUgYmVjb21lcyBhdmFpbGFibGUuCisrKiogIAor KyoqICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIENpcmN1bGFyIFF1ZXVl IFN1bW1hcnkKKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KKysqKiB8IFF1ZXVlIE5hbWUgIHwgIFBDSSBQ b3J0ICAgICB8R2VuZXJhdGUgUENJIEludGVycnVwdCB8R2VuZXJhdGUgSW50ZWwgWHNjYWxl IENvcmUgSW50ZXJydXB0fEhlYWQgUG9pbnRlciBtYWludGFpbmVkIGJ5fFRhaWwgUG9pbnRl ciBtYWludGFpbmVkIGJ5fAorKyoqIHxfX19fX19fX19fX19ffF9fX19fX19fX19fX19fX3xf X19fX19fX19fX19fX19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX198X19fX19fX19fX19fX19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19fX19f X19fX198CisrKiogfEluYm91bmQgUG9zdCB8IEluYm91bmQgUXVldWUgfCAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKysq KiB8ICAgIFF1ZXVlICAgIHwgICAgIFBvcnQgICAgICB8ICAgICAgICAgIE5PICAgICAgICAg ICB8ICAgICAgWWVzLCB3aGVuIHF1ZXVlIGlzIHdyaXR0ZW4gICAgfCAgICAgICAgIE1VIGhh cmR3YXJlICAgICAgfCAgICAgSW50ZWwgWFNjYWxlICAgICAgICAgfAorKyoqIHxfX19fX19f X19fX19ffF9fX19fX19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX19fX3xfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19fX19fX19f X198X19fX19fX19fX19fX19fX19fX19fX19fX198CisrKiogfEluYm91bmQgRnJlZSB8IElu Ym91bmQgUXVldWUgfCAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwKKysqKiB8ICAgIFF1ZXVlICAgIHwgICAgIFBvcnQgICAg ICB8ICAgICAgICAgIE5PICAgICAgICAgICB8ICAgICAgTk8gICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgSW50ZWwgWFNjYWxlICAgICAgfCAgICAgIE1VIGhhcmR3YXJl ICAgICAgICAgfAorKyoqIHxfX19fX19fX19fX19ffF9fX19fX19fX19fX19fX3xfX19fX19f X19fX19fX19fX19fX19fX3xfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX198 X19fX19fX19fX19fX19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19fX19fX19fX198 CisrKiogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyoqICBDaXJjdWxhciBRdWV1 ZSBTdGF0dXMgU3VtbWFyeQorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KKysqKiB8ICAg ICBRdWV1ZSBOYW1lICAgICAgfCAgUXVldWUgU3RhdHVzICB8IEhlYWQgJiBUYWlsIFBvaW50 ZXIgfCAgICAgICAgIExhc3QgUG9pbnRlciBVcGRhdGUgICAgICAgICAgIHwKKysqKiB8X19f X19fX19fX19fX19fX19fX19ffF9fX19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19f X19ffF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3wKKysqKiB8IElu Ym91bmQgUG9zdCBRdWV1ZSAgfCAgICAgIEVtcHR5ICAgICB8ICAgICAgIEVxdWFsICAgICAg ICAgfCBUYWlsIHBvaW50ZXIgbGFzdCB1cGRhdGVkIGJ5IHNvZnR3YXJlIHwKKysqKiB8X19f X19fX19fX19fX19fX19fX19ffF9fX19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19f X19ffF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3wKKysqKiB8IElu Ym91bmQgRnJlZSBRdWV1ZSAgfCAgICAgIEVtcHR5ICAgICB8ICAgICAgIEVxdWFsICAgICAg ICAgfCBIZWFkIHBvaW50ZXIgbGFzdCB1cGRhdGVkIGJ5IGhhcmR3YXJlIHwKKysqKiB8X19f X19fX19fX19fX19fX19fX19ffF9fX19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19f X19ffF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3wKKysqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgorKyovCisrCisrLyoKKysqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoq ICAgICAgIEluZGV4IFJlZ2lzdGVycworKyoqICA9PT09PT09PT09PT09PT09PT09PT09PT0K KysqKiAgLiBUaGUgSW5kZXggUmVnaXN0ZXJzIGFyZSBhIHNldCBvZiAxMDA0IHJlZ2lzdGVy cyB0aGF0IHdoZW4gd3JpdHRlbiBieSBhbiBleHRlcm5hbCBQQ0kgYWdlbnQgY2FuIGdlbmVy YXRlIGFuIGludGVycnVwdCB0byB0aGUgSW50ZWwgWFNjYWxlIGNvcmUuIAorKyoqICAgIFRo ZXNlIHJlZ2lzdGVycyBhcmUgZm9yIGluYm91bmQgbWVzc2FnZXMgb25seS4KKysqKiAgICBU aGUgaW50ZXJydXB0IGlzIHJlY29yZGVkIGluIHRoZSBJbmJvdW5kIEludGVycnVwdCBTdGF0 dXMgUmVnaXN0ZXIuCisrKiogICAgVGhlIHN0b3JhZ2UgZm9yIHRoZSBJbmRleCBSZWdpc3Rl cnMgaXMgYWxsb2NhdGVkIGZyb20gdGhlIDgwMzMxIGxvY2FsIG1lbW9yeS4gCisrKiogICAg UENJIHdyaXRlIGFjY2Vzc2VzIHRvIHRoZSBJbmRleCBSZWdpc3RlcnMgd3JpdGUgdGhlIGRh dGEgdG8gbG9jYWwgbWVtb3J5LiAKKysqKiAgICBQQ0kgcmVhZCBhY2Nlc3NlcyB0byB0aGUg SW5kZXggUmVnaXN0ZXJzIHJlYWQgdGhlIGRhdGEgZnJvbSBsb2NhbCBtZW1vcnkuIAorKyoq ICAuIFRoZSBsb2NhbCBtZW1vcnkgdXNlZCBmb3IgdGhlIEluZGV4IFJlZ2lzdGVycyByYW5n ZXMgZnJvbSBJbmJvdW5kIEFUVSBUcmFuc2xhdGUgVmFsdWUgUmVnaXN0ZXIgKyAwNTBIIAor KyoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB0byBJbmJvdW5kIEFUVSBUcmFuc2xhdGUgVmFsdWUgUmVnaXN0ZXIgKyBGRkZI LgorKyoqICAuIFRoZSBhZGRyZXNzIG9mIHRoZSBmaXJzdCB3cml0ZSBhY2Nlc3MgaXMgc3Rv cmVkIGluIHRoZSBJbmRleCBBZGRyZXNzIFJlZ2lzdGVyLiAKKysqKiAgICBUaGlzIHJlZ2lz dGVyIGlzIHdyaXR0ZW4gZHVyaW5nIHRoZSBlYXJsaWVzdCB3cml0ZSBhY2Nlc3MgYW5kIHBy b3ZpZGVzIGEgbWVhbnMgdG8gZGV0ZXJtaW5lIHdoaWNoIEluZGV4IFJlZ2lzdGVyIHdhcyB3 cml0dGVuLiAKKysqKiAgICBPbmNlIHVwZGF0ZWQgYnkgdGhlIE1VLCB0aGUgSW5kZXggQWRk cmVzcyBSZWdpc3RlciBpcyBub3QgdXBkYXRlZCB1bnRpbCB0aGUgSW5kZXggUmVnaXN0ZXIg SW50ZXJydXB0IGJpdCBpbiB0aGUgSW5ib3VuZCBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVy IGlzIGNsZWFyZWQuIAorKyoqICAuIFdoZW4gdGhlIGludGVycnVwdCBpcyBjbGVhcmVkLCB0 aGUgSW5kZXggQWRkcmVzcyBSZWdpc3RlciBpcyByZS1lbmFibGVkIGFuZCBzdG9yZXMgdGhl IGFkZHJlc3Mgb2YgdGhlIG5leHQgSW5kZXggUmVnaXN0ZXIgd3JpdGUgYWNjZXNzLgorKyoq ICAgIFdyaXRlcyBieSB0aGUgSW50ZWwgWFNjYWxlIGNvcmUgdG8gdGhlIGxvY2FsIG1lbW9y eSB1c2VkIGJ5IHRoZSBJbmRleCBSZWdpc3RlcnMgZG9lcyBub3QgY2F1c2UgYW4gaW50ZXJy dXB0IGFuZCBkb2VzIG5vdCB1cGRhdGUgdGhlIEluZGV4IEFkZHJlc3MgUmVnaXN0ZXIuCisr KiogIC4gVGhlIGluZGV4IHJlZ2lzdGVycyBjYW4gYmUgYWNjZXNzZWQgd2l0aCBNdWx0aS1E V09SRCByZWFkcyBhbmQgc2luZ2xlIFFXT1JEIGFsaWduZWQgd3JpdGVzLgorKyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqCisrKi8KKysvKgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisrKiogICAg TWVzc2FnaW5nIFVuaXQgSW50ZXJuYWwgQnVzIE1lbW9yeSBNYXAKKysqKiAgPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrKiogIEludGVybmFsIEJ1cyBBZGRy ZXNzX19fUmVnaXN0ZXIgRGVzY3JpcHRpb24gKE5hbWUpX19fX19fX19fX19fX19fX19fX198 X1BDSSBDb25maWd1cmF0aW9uIFNwYWNlIFJlZ2lzdGVyIE51bWJlcl8KKysqKiAgRkZGRiBF MzAwSCAgICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwKKysqKiAgICAuLiAgICAgICAgICAgICAgICAgICAgIC4uICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwKKysqKiAgRkZGRiBFMzBDSCAg ICAgICAgICAgICByZXNlcnZlZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgCisrKiogIEZGRkYgRTMxMEggICAgICAgICAgICAgSW5ib3VuZCBNZXNzYWdlIFJl Z2lzdGVyIDAgICAgICAgICAgICAgICAgICAgICB8IEF2YWlsYWJsZSB0aHJvdWdoCisrKiog IEZGRkYgRTMxNEggICAgICAgICAgICAgSW5ib3VuZCBNZXNzYWdlIFJlZ2lzdGVyIDEgICAg ICAgICAgICAgICAgICAgICB8IEFUVSBJbmJvdW5kIFRyYW5zbGF0aW9uIFdpbmRvdworKyoq ICBGRkZGIEUzMThIICAgICAgICAgICAgIE91dGJvdW5kIE1lc3NhZ2UgUmVnaXN0ZXIgMCAg ICAgICAgICAgICAgICAgICAgfCAKKysqKiAgRkZGRiBFMzFDSCAgICAgICAgICAgICBPdXRi b3VuZCBNZXNzYWdlIFJlZ2lzdGVyIDEgICAgICAgICAgICAgICAgICAgIHwgb3IgIAorKyoq ICBGRkZGIEUzMjBIICAgICAgICAgICAgIEluYm91bmQgRG9vcmJlbGwgUmVnaXN0ZXIgICAg ICAgICAgICAgICAgICAgICAgfCAgCisrKiogIEZGRkYgRTMyNEggICAgICAgICAgICAgSW5i b3VuZCBJbnRlcnJ1cHQgU3RhdHVzIFJlZ2lzdGVyICAgICAgICAgICAgICB8IG11c3QgdHJh bnNsYXRlIFBDSSBhZGRyZXNzIHRvIAorKyoqICBGRkZGIEUzMjhIICAgICAgICAgICAgIElu Ym91bmQgSW50ZXJydXB0IE1hc2sgUmVnaXN0ZXIgICAgICAgICAgICAgICAgfCB0aGUgSW50 ZWwgWHNjYWxlIENvcmUKKysqKiAgRkZGRiBFMzJDSCAgICAgICAgICAgICBPdXRib3VuZCBE b29yYmVsbCBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgIHwgTWVtb3J5LU1hcHBlZCBB ZGRyZXNzCisrKiogIEZGRkYgRTMzMEggICAgICAgICAgICAgT3V0Ym91bmQgSW50ZXJydXB0 IFN0YXR1cyBSZWdpc3RlciAgICAgICAgICAgICB8CisrKiogIEZGRkYgRTMzNEggICAgICAg ICAgICAgT3V0Ym91bmQgSW50ZXJydXB0IE1hc2sgUmVnaXN0ZXIgICAgICAgICAgICAgICB8 CisrKiogIF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX198X19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXworKyoqICBGRkZGIEUzMzhIICAgICAgICAgICAgIHJlc2VydmVkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKyoqICBGRkZGIEUzM0NIICAg ICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfAorKyoqICBGRkZGIEUzNDBIICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKyoqICBGRkZGIEUzNDRIICAgICAgICAg ICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAor KyoqICBGRkZGIEUzNDhIICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfAorKyoqICBGRkZGIEUzNENIICAgICAgICAgICAgIHJl c2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfAorKyoqICBG RkZGIEUzNTBIICAgICAgICAgICAgIE1VIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgICAgICAg ICAgICAgICAgICAgICAgfAorKyoqICBGRkZGIEUzNTRIICAgICAgICAgICAgIFF1ZXVlIEJh c2UgQWRkcmVzcyBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgfAorKyoqICBGRkZGIEUz NThIICAgICAgICAgICAgIHJlc2VydmVkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfAorKyoqICBGRkZGIEUzNUNIICAgICAgICAgICAgIHJlc2VydmVkICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBtdXN0IHRyYW5zbGF0ZSBQQ0kg YWRkcmVzcyB0byAKKysqKiAgRkZGRiBFMzYwSCAgICAgICAgICAgICBJbmJvdW5kIEZyZWUg SGVhZCBQb2ludGVyIFJlZ2lzdGVyICAgICAgICAgICAgIHwgdGhlIEludGVsIFhzY2FsZSBD b3JlIAorKyoqICBGRkZGIEUzNjRIICAgICAgICAgICAgIEluYm91bmQgRnJlZSBUYWlsIFBv aW50ZXIgUmVnaXN0ZXIgICAgICAgICAgICAgfCBNZW1vcnktTWFwcGVkIEFkZHJlc3MKKysq KiAgRkZGRiBFMzY4SCAgICAgICAgICAgICBJbmJvdW5kIFBvc3QgSGVhZCBwb2ludGVyIFJl Z2lzdGVyICAgICAgICAgICAgIHwKKysqKiAgRkZGRiBFMzZDSCAgICAgICAgICAgICBJbmJv dW5kIFBvc3QgVGFpbCBQb2ludGVyIFJlZ2lzdGVyICAgICAgICAgICAgIHwKKysqKiAgRkZG RiBFMzcwSCAgICAgICAgICAgICBPdXRib3VuZCBGcmVlIEhlYWQgUG9pbnRlciBSZWdpc3Rl ciAgICAgICAgICAgIHwgCisrKiogIEZGRkYgRTM3NEggICAgICAgICAgICAgT3V0Ym91bmQg RnJlZSBUYWlsIFBvaW50ZXIgUmVnaXN0ZXIgICAgICAgICAgICB8CisrKiogIEZGRkYgRTM3 OEggICAgICAgICAgICAgT3V0Ym91bmQgUG9zdCBIZWFkIHBvaW50ZXIgUmVnaXN0ZXIgICAg ICAgICAgICB8CisrKiogIEZGRkYgRTM3Q0ggICAgICAgICAgICAgT3V0Ym91bmQgUG9zdCBU YWlsIFBvaW50ZXIgUmVnaXN0ZXIgICAgICAgICAgICB8CisrKiogIEZGRkYgRTM4MEggICAg ICAgICAgICAgSW5kZXggQWRkcmVzcyBSZWdpc3RlciAgICAgICAgICAgICAgICAgICAgICAg ICB8CisrKiogIEZGRkYgRTM4NEggICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8CisrKiogICAuLiAgICAgICAgICAgICAgICAg ICAgICAgLi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Cisr KiogIEZGRkYgRTNGQ0ggICAgICAgICAgICAgcmVzZXJ2ZWQgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8CisrKiogIF9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX198X19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCisrKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK KysqLworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgTVUgQ29uZmlndXJhdGlv biBSZWdpc3RlciAtIE1VQ1IgIEZGRkYuRTM1MEgKKysqKgorKyoqICAuIFRoZSBNVSBDb25m aWd1cmF0aW9uIFJlZ2lzdGVyIChNVUNSKSBjb250YWlucyB0aGUgQ2lyY3VsYXIgUXVldWUg RW5hYmxlIGJpdCBhbmQgdGhlIHNpemUgb2Ygb25lIENpcmN1bGFyIFF1ZXVlLgorKyoqICAu IFRoZSBDaXJjdWxhciBRdWV1ZSBFbmFibGUgYml0IGVuYWJsZXMgb3IgZGlzYWJsZXMgdGhl IENpcmN1bGFyIFF1ZXVlcy4gCisrKiogICAgVGhlIENpcmN1bGFyIFF1ZXVlcyBhcmUgZGlz YWJsZWQgYXQgcmVzZXQgdG8gYWxsb3cgdGhlIHNvZnR3YXJlIHRvIGluaXRpYWxpemUgdGhl IGhlYWQgYW5kIHRhaWwgcG9pbnRlciByZWdpc3RlcnMgYmVmb3JlIGFueSBQQ0kgYWNjZXNz ZXMgdG8gdGhlIFF1ZXVlIFBvcnRzLiAKKysqKiAgLiBFYWNoIENpcmN1bGFyIFF1ZXVlIG1h eSByYW5nZSBmcm9tIDQgSyBlbnRyaWVzICgxNiBLYnl0ZXMpIHRvIDY0IEsgZW50cmllcyAo MjU2IEtieXRlcykgYW5kIHRoZXJlIGFyZSBmb3VyIENpcmN1bGFyIFF1ZXVlcy4KKysqKiAg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgICAgICAgICBEZXNjcmlwdGlvbgorKyoqICAzMTowNiAgICAgMDAwMDAwSCAwMCAyICAg ICAgICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKiAgMDU6MDEgICAgIDAwMDAxIDIgICAgICAg ICAgICAgICAgICAgICAgIENpcmN1bGFyIFF1ZXVlIFNpemUgLSBUaGlzIGZpZWxkIGRldGVy bWluZXMgdGhlIHNpemUgb2YgZWFjaCBDaXJjdWxhciBRdWV1ZS4gCisrKiogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QWxsIGZvdXIgcXVldWVzIGFyZSB0aGUgc2FtZSBzaXplLgorKyoqICAJCQkJCQkJCQkJCQkJ CQkJoUUgMDAwMDEgMiAtIDRLIEVudHJpZXMgKDE2IEtieXRlcykKKysqKiAgCQkJCQkJCQkJ CQkJCQkJCaFFIDAwMDEwIDIgLSA4SyBFbnRyaWVzICgzMiBLYnl0ZXMpCisrKiogIAkJCQkJ CQkJCQkJCQkJCQmhRSAwMDEwMCAyIC0gMTZLIEVudHJpZXMgKDY0IEtieXRlcykKKysqKiAg CQkJCQkJCQkJCQkJCQkJCaFFIDAxMDAwIDIgLSAzMksgRW50cmllcyAoMTI4IEtieXRlcykK KysqKiAgCQkJCQkJCQkJCQkJCQkJCaFFIDEwMDAwIDIgLSA2NEsgRW50cmllcyAoMjU2IEti eXRlcykKKysqKiAgMDAgICAgICAgIDAgMiAgICAgICAgICAgICAgICAgICAgICAgICAgIENp cmN1bGFyIFF1ZXVlIEVuYWJsZSAtIFRoaXMgYml0IGVuYWJsZXMgb3IgZGlzYWJsZXMgdGhl IENpcmN1bGFyIFF1ZXVlcy4gV2hlbiBjbGVhciB0aGUgQ2lyY3VsYXIKKysqKiAgCQkJCQkJ CQkJCQkJCQkJCVF1ZXVlcyBhcmUgZGlzYWJsZWQsIGhvd2V2ZXIgdGhlIE1VIGFjY2VwdHMg UENJIGFjY2Vzc2VzIHRvIHRoZSBDaXJjdWxhciBRdWV1ZSBQb3J0cyBidXQgaWdub3Jlcwor KyoqICAJCQkJCQkJCQkJCQkJCQkJdGhlIGRhdGEgZm9yIFdyaXRlcyBhbmQgcmV0dXJuIEZG RkYuRkZGRkggZm9yIFJlYWRzLiBJbnRlcnJ1cHRzIGFyZSBub3QgZ2VuZXJhdGVkIHRvIHRo ZSBjb3JlIHdoZW4KKysqKiAgCQkJCQkJCQkJCQkJCQkJCWRpc2FibGVkLiBXaGVuIHNldCwg dGhlIENpcmN1bGFyIFF1ZXVlcyBhcmUgZnVsbHkgZW5hYmxlZC4KKysqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX01VX0NPTkZJR1VSQVRJT05fUkVH ICAJICAgICAgICAgIDB4RkZGRkUzNTAgICAgICAgIAorKyNkZWZpbmUgICAgIEFSQ01TUl9N VV9DSVJDVUxBUl9RVUVVRV9TSVpFNjRLICAJICAgICAgICAgIDB4MDAyMCAgICAKKysjZGVm aW5lICAgICBBUkNNU1JfTVVfQ0lSQ1VMQVJfUVVFVUVfU0laRTMySyAgCSAgICAgICAgICAw eDAwMTAKKysjZGVmaW5lICAgICBBUkNNU1JfTVVfQ0lSQ1VMQVJfUVVFVUVfU0laRTE2SyAg CSAgICAgICAgICAweDAwMDggICAKKysjZGVmaW5lICAgICBBUkNNU1JfTVVfQ0lSQ1VMQVJf UVVFVUVfU0laRThLICAJICAgICAgICAgIDB4MDAwNCAgIAorKyNkZWZpbmUgICAgIEFSQ01T Ul9NVV9DSVJDVUxBUl9RVUVVRV9TSVpFNEsgIAkgICAgICAgICAgMHgwMDAyICAgIAorKyNk ZWZpbmUgICAgIEFSQ01TUl9NVV9DSVJDVUxBUl9RVUVVRV9FTkFCTEUgIAkgICAgICAgICAg MHgwMDAxICAgICAgICAvKjA6ZGlzYWJsZSAxOmVuYWJsZSovCisrLyoKKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyoqICBRdWV1ZSBCYXNlIEFkZHJlc3MgUmVnaXN0ZXIgLSBRQkFSCisr KioKKysqKiAgLiBUaGUgUXVldWUgQmFzZSBBZGRyZXNzIFJlZ2lzdGVyIChRQkFSKSBjb250 YWlucyB0aGUgbG9jYWwgbWVtb3J5IGFkZHJlc3Mgb2YgdGhlIENpcmN1bGFyIFF1ZXVlcy4K KysqKiAgICBUaGUgYmFzZSBhZGRyZXNzIGlzIHJlcXVpcmVkIHRvIGJlIGxvY2F0ZWQgb24g YSAxIE1ieXRlIGFkZHJlc3MgYm91bmRhcnkuCisrKiogIC4gQWxsIENpcmN1bGFyIFF1ZXVl IGhlYWQgYW5kIHRhaWwgcG9pbnRlcnMgYXJlIGJhc2VkIG9uIHRoZSBRQkFSLiAKKysqKiAg ICBXaGVuIHRoZSBoZWFkIGFuZCB0YWlsIHBvaW50ZXIgcmVnaXN0ZXJzIGFyZSByZWFkLCB0 aGUgUXVldWUgQmFzZSBBZGRyZXNzIGlzIHJldHVybmVkIGluIHRoZSB1cHBlciAxMiBiaXRz LiAKKysqKiAgICBXcml0aW5nIHRvIHRoZSB1cHBlciAxMiBiaXRzIG9mIHRoZSBoZWFkIGFu ZCB0YWlsIHBvaW50ZXIgcmVnaXN0ZXJzIGRvZXMgbm90IGFmZmVjdCB0aGUgUXVldWUgQmFz ZSBBZGRyZXNzIG9yIFF1ZXVlIEJhc2UgQWRkcmVzcyBSZWdpc3Rlci4KKysqKiAgV2Fybmlu ZzogCisrKiogICAgICAgICBUaGUgUUJBUiBtdXN0IGRlc2lnbmF0ZSBhIHJhbmdlIGFsbG9j YXRlZCB0byB0aGUgODAzMzEgRERSIFNEUkFNIGludGVyZmFjZSAKKysqKiAgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAg ICBEZXNjcmlwdGlvbgorKyoqICAzMToyMCAgICAgMDAwSCAgICAgICAgICAgICAgICAgICAg ICAgICAgUXVldWUgQmFzZSBBZGRyZXNzIC0gTG9jYWwgbWVtb3J5IGFkZHJlc3Mgb2YgdGhl IGNpcmN1bGFyIHF1ZXVlcy4KKysqKiAgMTk6MDAgICAgIDAwMDAwSCAgICAgICAgICAgICAg ICAgICAgICAgIFJlc2VydmVkCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZp bmUgICAgIEFSQ01TUl9NVV9RVUVVRV9CQVNFX0FERFJFU1NfUkVHICAJICAgICAgMHhGRkZG RTM1NCAgIAorKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgSW5ib3VuZCBGcmVl IEhlYWQgUG9pbnRlciBSZWdpc3RlciAtIElGSFBSCisrKioKKysqKiAgLiBUaGUgSW5ib3Vu ZCBGcmVlIEhlYWQgUG9pbnRlciBSZWdpc3RlciAoSUZIUFIpIGNvbnRhaW5zIHRoZSBsb2Nh bCBtZW1vcnkgb2Zmc2V0IGZyb20gdGhlIFF1ZXVlIEJhc2UgQWRkcmVzcyBvZiB0aGUgaGVh ZCBwb2ludGVyIGZvciB0aGUgSW5ib3VuZCBGcmVlIFF1ZXVlLiAKKysqKiAgICBUaGUgSGVh ZCBQb2ludGVyIG11c3QgYmUgYWxpZ25lZCBvbiBhIERXT1JEIGFkZHJlc3MgYm91bmRhcnku CisrKiogICAgV2hlbiByZWFkLCB0aGUgUXVldWUgQmFzZSBBZGRyZXNzIGlzIHByb3ZpZGVk IGluIHRoZSB1cHBlciAxMiBiaXRzIG9mIHRoZSByZWdpc3Rlci4gCisrKiogICAgV3JpdGVz IHRvIHRoZSB1cHBlciAxMiBiaXRzIG9mIHRoZSByZWdpc3RlciBhcmUgaWdub3JlZC4gCisr KiogICAgVGhpcyByZWdpc3RlciBpcyBtYWludGFpbmVkIGJ5IHNvZnR3YXJlLgorKyoqICAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAg ICAgICAgICAgIERlc2NyaXB0aW9uCisrKiogIDMxOjIwICAgICAwMDBIICAgICAgICAgICAg ICAgICAgICAgICAgICBRdWV1ZSBCYXNlIEFkZHJlc3MgLSBMb2NhbCBtZW1vcnkgYWRkcmVz cyBvZiB0aGUgY2lyY3VsYXIgcXVldWVzLgorKyoqICAxOTowMiAgICAgMDAwMEggMDAgMiAg ICAgICAgICAgICAgICAgICAgSW5ib3VuZCBGcmVlIEhlYWQgUG9pbnRlciAtIExvY2FsIG1l bW9yeSBvZmZzZXQgb2YgdGhlIGhlYWQgcG9pbnRlciBmb3IgdGhlIEluYm91bmQgRnJlZSBR dWV1ZS4KKysqKiAgMDE6MDAgICAgIDAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgIFJl c2VydmVkCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01T Ul9NVV9JTkJPVU5EX0ZSRUVfSEVBRF9QVFJfUkVHICAgICAgIDB4RkZGRkUzNjAgICAKKysv KgorKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqCisrKiogIEluYm91bmQgRnJlZSBUYWlsIFBvaW50 ZXIgUmVnaXN0ZXIgLSBJRlRQUgorKyoqCisrKiogIC4gVGhlIEluYm91bmQgRnJlZSBUYWls IFBvaW50ZXIgUmVnaXN0ZXIgKElGVFBSKSBjb250YWlucyB0aGUgbG9jYWwgbWVtb3J5IG9m ZnNldCBmcm9tIHRoZSBRdWV1ZQorKyoqICAgIEJhc2UgQWRkcmVzcyBvZiB0aGUgdGFpbCBw b2ludGVyIGZvciB0aGUgSW5ib3VuZCBGcmVlIFF1ZXVlLiBUaGUgVGFpbCBQb2ludGVyIG11 c3QgYmUgYWxpZ25lZCBvbiBhCisrKiogICAgRFdPUkQgYWRkcmVzcyBib3VuZGFyeS4gV2hl biByZWFkLCB0aGUgUXVldWUgQmFzZSBBZGRyZXNzIGlzIHByb3ZpZGVkIGluIHRoZSB1cHBl ciAxMiBiaXRzCisrKiogICAgb2YgdGhlIHJlZ2lzdGVyLiBXcml0ZXMgdG8gdGhlIHVwcGVy IDEyIGJpdHMgb2YgdGhlIHJlZ2lzdGVyIGFyZSBpZ25vcmVkLgorKyoqICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKysqKiAgQml0ICAgICAgIERlZmF1bHQgICAgICAgICAgICAgICAgICAgICAg IERlc2NyaXB0aW9uCisrKiogIDMxOjIwICAgICAwMDBIICAgICAgICAgICAgICAgICAgICAg ICAgICBRdWV1ZSBCYXNlIEFkZHJlc3MgLSBMb2NhbCBtZW1vcnkgYWRkcmVzcyBvZiB0aGUg Y2lyY3VsYXIgcXVldWVzLgorKyoqICAxOTowMiAgICAgMDAwMEggMDAgMiAgICAgICAgICAg ICAgICAgICAgSW5ib3VuZCBGcmVlIFRhaWwgUG9pbnRlciAtIExvY2FsIG1lbW9yeSBvZmZz ZXQgb2YgdGhlIHRhaWwgcG9pbnRlciBmb3IgdGhlIEluYm91bmQgRnJlZSBRdWV1ZS4KKysq KiAgMDE6MDAgICAgIDAwIDIgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc2VydmVkCisr KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioKKysqLworKyNkZWZpbmUgICAgIEFSQ01TUl9NVV9JTkJP VU5EX0ZSRUVfVEFJTF9QVFJfUkVHICAgICAgIDB4RkZGRkUzNjQgIAorKy8qCisrKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKysqKiAgSW5ib3VuZCBQb3N0IEhlYWQgUG9pbnRlciBSZWdpc3Rl ciAtIElQSFBSCisrKioKKysqKiAgLiBUaGUgSW5ib3VuZCBQb3N0IEhlYWQgUG9pbnRlciBS ZWdpc3RlciAoSVBIUFIpIGNvbnRhaW5zIHRoZSBsb2NhbCBtZW1vcnkgb2Zmc2V0IGZyb20g dGhlIFF1ZXVlCisrKiogICAgQmFzZSBBZGRyZXNzIG9mIHRoZSBoZWFkIHBvaW50ZXIgZm9y IHRoZSBJbmJvdW5kIFBvc3QgUXVldWUuIFRoZSBIZWFkIFBvaW50ZXIgbXVzdCBiZSBhbGln bmVkIG9uCisrKiogICAgYSBEV09SRCBhZGRyZXNzIGJvdW5kYXJ5LiBXaGVuIHJlYWQsIHRo ZSBRdWV1ZSBCYXNlIEFkZHJlc3MgaXMgcHJvdmlkZWQgaW4gdGhlIHVwcGVyIDEyIGJpdHMK KysqKiAgICBvZiB0aGUgcmVnaXN0ZXIuIFdyaXRlcyB0byB0aGUgdXBwZXIgMTIgYml0cyBv ZiB0aGUgcmVnaXN0ZXIgYXJlIGlnbm9yZWQuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor KyoqICBCaXQgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRp b24KKysqKiAgMzE6MjAgICAgIDAwMEggICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVl IEJhc2UgQWRkcmVzcyAtIExvY2FsIG1lbW9yeSBhZGRyZXNzIG9mIHRoZSBjaXJjdWxhciBx dWV1ZXMuCisrKiogIDE5OjAyICAgICAwMDAwSCAwMCAyICAgICAgICAgICAgICAgICAgICBJ bmJvdW5kIFBvc3QgSGVhZCBQb2ludGVyIC0gTG9jYWwgbWVtb3J5IG9mZnNldCBvZiB0aGUg aGVhZCBwb2ludGVyIGZvciB0aGUgSW5ib3VuZCBQb3N0IFF1ZXVlLgorKyoqICAwMTowMCAg ICAgMDAgMiAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX01VX0lOQk9VTkRfUE9TVF9I RUFEX1BUUl9SRUcgICAgICAgMHhGRkZGRTM2OAorKy8qCisrKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKKysqKiAgSW5ib3VuZCBQb3N0IFRhaWwgUG9pbnRlciBSZWdpc3RlciAtIElQVFBSCisr KioKKysqKiAgLiBUaGUgSW5ib3VuZCBQb3N0IFRhaWwgUG9pbnRlciBSZWdpc3RlciAoSVBU UFIpIGNvbnRhaW5zIHRoZSBsb2NhbCBtZW1vcnkgb2Zmc2V0IGZyb20gdGhlIFF1ZXVlCisr KiogICAgQmFzZSBBZGRyZXNzIG9mIHRoZSB0YWlsIHBvaW50ZXIgZm9yIHRoZSBJbmJvdW5k IFBvc3QgUXVldWUuIFRoZSBUYWlsIFBvaW50ZXIgbXVzdCBiZSBhbGlnbmVkIG9uIGEKKysq KiAgICBEV09SRCBhZGRyZXNzIGJvdW5kYXJ5LiBXaGVuIHJlYWQsIHRoZSBRdWV1ZSBCYXNl IEFkZHJlc3MgaXMgcHJvdmlkZWQgaW4gdGhlIHVwcGVyIDEyIGJpdHMKKysqKiAgICBvZiB0 aGUgcmVnaXN0ZXIuIFdyaXRlcyB0byB0aGUgdXBwZXIgMTIgYml0cyBvZiB0aGUgcmVnaXN0 ZXIgYXJlIGlnbm9yZWQuCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICBCaXQgICAg ICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24KKysqKiAgMzE6 MjAgICAgIDAwMEggICAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlIEJhc2UgQWRkcmVz cyAtIExvY2FsIG1lbW9yeSBhZGRyZXNzIG9mIHRoZSBjaXJjdWxhciBxdWV1ZXMuCisrKiog IDE5OjAyICAgICAwMDAwSCAwMCAyICAgICAgICAgICAgICAgICAgICBJbmJvdW5kIFBvc3Qg VGFpbCBQb2ludGVyIC0gTG9jYWwgbWVtb3J5IG9mZnNldCBvZiB0aGUgdGFpbCBwb2ludGVy IGZvciB0aGUgSW5ib3VuZCBQb3N0IFF1ZXVlLgorKyoqICAwMTowMCAgICAgMDAgMiAgICAg ICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgor KyovCisrI2RlZmluZSAgICAgQVJDTVNSX01VX0lOQk9VTkRfUE9TVF9UQUlMX1BUUl9SRUcg ICAgICAgMHhGRkZGRTM2QworKy8qCisrKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKysqKiAgSW5k ZXggQWRkcmVzcyBSZWdpc3RlciAtIElBUgorKyoqCisrKiogIC4gVGhlIEluZGV4IEFkZHJl c3MgUmVnaXN0ZXIgKElBUikgY29udGFpbnMgdGhlIG9mZnNldCBvZiB0aGUgbGVhc3QgcmVj ZW50bHkgYWNjZXNzZWQgSW5kZXggUmVnaXN0ZXIuCisrKiogICAgSXQgaXMgd3JpdHRlbiBi eSB0aGUgTVUgd2hlbiB0aGUgSW5kZXggUmVnaXN0ZXJzIGFyZSB3cml0dGVuIGJ5IGEgUENJ IGFnZW50LgorKyoqICAgIFRoZSByZWdpc3RlciBpcyBub3QgdXBkYXRlZCB1bnRpbCB0aGUg SW5kZXggSW50ZXJydXB0IGJpdCBpbiB0aGUgSW5ib3VuZCBJbnRlcnJ1cHQgU3RhdHVzIFJl Z2lzdGVyIGlzIGNsZWFyZWQuCisrKiogIC4gVGhlIGxvY2FsIG1lbW9yeSBhZGRyZXNzIG9m IHRoZSBJbmRleCBSZWdpc3RlciBsZWFzdCByZWNlbnRseSBhY2Nlc3NlZCBpcyBjb21wdXRl ZCBieSBhZGRpbmcgdGhlIEluZGV4IEFkZHJlc3MgUmVnaXN0ZXIgdG8gdGhlIEluYm91bmQg QVRVIFRyYW5zbGF0ZSBWYWx1ZSBSZWdpc3Rlci4KKysqKiAgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisrKiogIEJpdCAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgICBEZXNjcmlw dGlvbgorKyoqICAzMToxMiAgICAgMDAwMDAwSCAgICAgICAgICAgICAgICAgICAgICAgUmVz ZXJ2ZWQKKysqKiAgMTE6MDIgICAgIDAwSCAwMCAyICAgICAgICAgICAgICAgICAgICAgIElu ZGV4IEFkZHJlc3MgLSBpcyB0aGUgbG9jYWwgbWVtb3J5IG9mZnNldCBvZiB0aGUgSW5kZXgg UmVnaXN0ZXIgd3JpdHRlbiAoMDUwSCB0byBGRkNIKQorKyoqICAwMTowMCAgICAgMDAgMiAg ICAgICAgICAgICAgICAgICAgICAgICAgUmVzZXJ2ZWQKKysqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgorKyovCisrI2RlZmluZSAgICAgQVJDTVNSX01VX0xPQ0FMX01FTU9SWV9JTkRFWF9SRUcg IAkgICAgICAweEZGRkZFMzgwICAgIC8qMTAwNCBkd29yZHMgMHgwMDUwLi4uLjB4MEZGQywg NDAxNiBieXRlcyAweDAwNTAuLi4weDBGRkYqLworKy8qCisrKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKyoqICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBSUy0yMzIgSW50ZXJmYWNlIGZvciBBcmVjYSBSYWlkIENvbnRy b2xsZXIKKysqKiAgICAgICAgICAgICAgICAgICAgVGhlIGxvdyBsZXZlbCBjb21tYW5kIGlu dGVyZmFjZSBpcyBleGNsdXNpdmUgd2l0aCBWVDEwMCB0ZXJtaW5hbAorKyoqICAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorKyoqICAgIDEuIFNlcXVlbmNlIG9mIGNvbW1hbmQgZXhlY3V0aW9uCisrKiog IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisrKiogICAgCShBKSBIZWFkZXIgOiAzIGJ5dGVzIHNlcXVlbmNl ICgweDVFLCAweDAxLCAweDYxKQorKyoqICAgIAkoQikgQ29tbWFuZCBibG9jayA6IHZhcmlh YmxlIGxlbmd0aCBvZiBkYXRhIGluY2x1ZGluZyBsZW5ndGgsIGNvbW1hbmQgY29kZSwgZGF0 YSBhbmQgY2hlY2tzdW0gYnl0ZQorKyoqICAgIAkoQykgUmV0dXJuIGRhdGEgOiB2YXJpYWJs ZSBsZW5ndGggb2YgZGF0YQorKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAgCisrKiogICAgMi4gQ29t bWFuZCBibG9jaworKyoqICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKyoqICAgIAkoQSkgMXN0IGJ5dGUg OiBjb21tYW5kIGJsb2NrIGxlbmd0aCAobG93IGJ5dGUpCisrKiogICAgCShCKSAybmQgYnl0 ZSA6IGNvbW1hbmQgYmxvY2sgbGVuZ3RoIChoaWdoIGJ5dGUpCisrKiogICAgICAgICAgICAg ICAgbm90ZSAuLmNvbW1hbmQgYmxvY2sgbGVuZ3RoIHNob3VsZG4ndCA+IDIwNDAgYnl0ZXMs IGxlbmd0aCBleGNsdWRlcyB0aGVzZSB0d28gYnl0ZXMKKysqKiAgICAJKEMpIDNyZCBieXRl IDogY29tbWFuZCBjb2RlCisrKiogICAgCShEKSA0dGggYW5kIGZvbGxvd2luZyBieXRlcyA6 IHZhcmlhYmxlIGxlbmd0aCBkYXRhIGJ5dGVzIGRlcGVuZHMgb24gY29tbWFuZCBjb2RlCisr KiogICAgCShFKSBsYXN0IGJ5dGUgOiBjaGVja3N1bSBieXRlIChzdW0gb2YgMXN0IGJ5dGUg dW50aWwgbGFzdCBkYXRhIGJ5dGUpCisrKiogIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAKKysqKiAgICAz LiBDb21tYW5kIGNvZGUgYW5kIGFzc29jaWF0ZWQgZGF0YQorKyoqICAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorKyoqICAgIAlUaGUgZm9sbG93aW5nIGFyZSBjb21tYW5kIGNvZGUgZGVmaW5lZCBpbiBy YWlkIGNvbnRyb2xsZXIgQ29tbWFuZCBjb2RlIDB4MTAtLTB4MT8gYXJlIHVzZWQgZm9yIHN5 c3RlbSBsZXZlbCBtYW5hZ2VtZW50LCBubyBwYXNzd29yZCBjaGVja2luZyBpcyBuZWVkZWQg YW5kIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiBzZXBhcmF0ZSB3ZWxsIGNvbnRyb2xsZWQg dXRpbGl0eSBhbmQgbm90IGZvciBlbmQgdXNlciBhY2Nlc3MuCisrKiogICAgCUNvbW1hbmQg Y29kZSAweDIwLS0weD8/IGFsd2F5cyBjaGVjayB0aGUgcGFzc3dvcmQsIHBhc3N3b3JkIG11 c3QgYmUgZW50ZXJlZCB0byBlbmFibGUgdGhlc2UgY29tbWFuZC4KKysqKiAgICAJZW51bQor KyoqICAgIAl7CisrKiogICAgCQlHVUlfU0VUX1NFUklBTD0weDEwLAorKyoqICAgIAkJR1VJ X1NFVF9WRU5ET1IsCisrKiogICAgCQlHVUlfU0VUX01PREVMLAorKyoqICAgIAkJR1VJX0lE RU5USUZZLAorKyoqICAgIAkJR1VJX0NIRUNLX1BBU1NXT1JELAorKyoqICAgIAkJR1VJX0xP R09VVCwKKysqKiAgICAJCUdVSV9IVFRQLAorKyoqICAgIAkJR1VJX1NFVF9FVEhFUk5FVF9B RERSLAorKyoqICAgIAkJR1VJX1NFVF9MT0dPLAorKyoqICAgIAkJR1VJX1BPTExfRVZFTlQs CisrKiogICAgCQlHVUlfR0VUX0VWRU5ULAorKyoqICAgIAkJR1VJX0dFVF9IV19NT05JVE9S LAorKyoqICAgIAorKyoqICAgIAkJLy8gICAgR1VJX1FVSUNLX0NSRUFURT0weDIwLCAoZnVu Y3Rpb24gcmVtb3ZlZCkKKysqKiAgICAJCUdVSV9HRVRfSU5GT19SPTB4MjAsCisrKiogICAg CQlHVUlfR0VUX0lORk9fViwKKysqKiAgICAJCUdVSV9HRVRfSU5GT19QLAorKyoqICAgIAkJ R1VJX0dFVF9JTkZPX1MsCisrKiogICAgCQlHVUlfQ0xFQVJfRVZFTlQsCisrKiogICAgCisr KiogICAgCQlHVUlfTVVURV9CRUVQRVI9MHgzMCwKKysqKiAgICAJCUdVSV9CRUVQRVJfU0VU VElORywKKysqKiAgICAJCUdVSV9TRVRfUEFTU1dPUkQsCisrKiogICAgCQlHVUlfSE9TVF9J TlRFUkZBQ0VfTU9ERSwKKysqKiAgICAJCUdVSV9SRUJVSUxEX1BSSU9SSVRZLAorKyoqICAg IAkJR1VJX01BWF9BVEFfTU9ERSwKKysqKiAgICAJCUdVSV9SRVNFVF9DT05UUk9MTEVSLAor KyoqICAgIAkJR1VJX0NPTV9QT1JUX1NFVFRJTkcsCisrKiogICAgCQlHVUlfTk9fT1BFUkFU SU9OLAorKyoqICAgIAkJR1VJX0RIQ1BfSVAsCisrKiogICAgCisrKiogICAgCQlHVUlfQ1JF QVRFX1BBU1NfVEhST1VHSD0weDQwLAorKyoqICAgIAkJR1VJX01PRElGWV9QQVNTX1RIUk9V R0gsCisrKiogICAgCQlHVUlfREVMRVRFX1BBU1NfVEhST1VHSCwKKysqKiAgICAJCUdVSV9J REVOVElGWV9ERVZJQ0UsCisrKiogICAgCisrKiogICAgCQlHVUlfQ1JFQVRFX1JBSURTRVQ9 MHg1MCwKKysqKiAgICAJCUdVSV9ERUxFVEVfUkFJRFNFVCwKKysqKiAgICAJCUdVSV9FWFBB TkRfUkFJRFNFVCwKKysqKiAgICAJCUdVSV9BQ1RJVkFURV9SQUlEU0VULAorKyoqICAgIAkJ R1VJX0NSRUFURV9IT1RfU1BBUkUsCisrKiogICAgCQlHVUlfREVMRVRFX0hPVF9TUEFSRSwK KysqKiAgICAKKysqKiAgICAJCUdVSV9DUkVBVEVfVk9MVU1FPTB4NjAsCisrKiogICAgCQlH VUlfTU9ESUZZX1ZPTFVNRSwKKysqKiAgICAJCUdVSV9ERUxFVEVfVk9MVU1FLAorKyoqICAg IAkJR1VJX1NUQVJUX0NIRUNLX1ZPTFVNRSwKKysqKiAgICAJCUdVSV9TVE9QX0NIRUNLX1ZP TFVNRQorKyoqICAgIAl9OworKyoqICAgIAorKyoqICAgIENvbW1hbmQgZGVzY3JpcHRpb24g OgorKyoqICAgIAorKyoqICAgIAlHVUlfU0VUX1NFUklBTCA6IFNldCB0aGUgY29udHJvbGxl ciBzZXJpYWwjCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysqKiAgICAJ CWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDEwCisrKiogICAgCQlieXRlIDMg ICAgICAgICAgOiBwYXNzd29yZCBsZW5ndGggKHNob3VsZCBiZSAweDBmKQorKyoqICAgIAkJ Ynl0ZSA0LTB4MTMgICAgIDogc2hvdWxkIGJlICJBckVjQVRlY0hub0xvZ1kiCisrKiogICAg CQlieXRlIDB4MTQtLTB4MjMgOiBTZXJpYWwgbnVtYmVyIHN0cmluZyAobXVzdCBiZSAxNiBi eXRlcykKKysqKiAgICAgIEdVSV9TRVRfVkVORE9SIDogU2V0IHZlbmRvciBzdHJpbmcgZm9y IHRoZSBjb250cm9sbGVyCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysq KiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDExCisrKiogICAgCQli eXRlIDMgICAgICAgICAgOiBwYXNzd29yZCBsZW5ndGggKHNob3VsZCBiZSAweDA4KQorKyoq ICAgIAkJYnl0ZSA0LTB4MTMgICAgIDogc2hvdWxkIGJlICJBckVjQXZBciIKKysqKiAgICAJ CWJ5dGUgMHgxNC0tMHgzQiA6IHZlbmRvciBzdHJpbmcgKG11c3QgYmUgNDAgYnl0ZXMpCisr KiogICAgICBHVUlfU0VUX01PREVMIDogU2V0IHRoZSBtb2RlbCBuYW1lIG9mIHRoZSBjb250 cm9sbGVyCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5 dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDEyCisrKiogICAgCQlieXRlIDMgICAg ICAgICAgOiBwYXNzd29yZCBsZW5ndGggKHNob3VsZCBiZSAweDA4KQorKyoqICAgIAkJYnl0 ZSA0LTB4MTMgICAgIDogc2hvdWxkIGJlICJBckVjQXZBciIKKysqKiAgICAJCWJ5dGUgMHgx NC0tMHgxQiA6IG1vZGVsIHN0cmluZyAobXVzdCBiZSA4IGJ5dGVzKQorKyoqICAgICAgR1VJ X0lERU5USUZZIDogSWRlbnRpZnkgZGV2aWNlCisrKiogICAgCQlieXRlIDAsMSAgICAgICAg OiBsZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDEz CisrKiogICAgCQkgICAgICAgICAgICAgICAgICByZXR1cm4gIkFyZWNhIFJBSUQgU3Vic3lz dGVtICIKKysqKiAgICAgIEdVSV9DSEVDS19QQVNTV09SRCA6IFZlcmlmeSBwYXNzd29yZAor KyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDogbGVuZ3RoCisrKiogICAgCQlieXRlIDIgICAg ICAgICAgOiBjb21tYW5kIGNvZGUgMHgxNAorKyoqICAgIAkJYnl0ZSAzICAgICAgICAgIDog cGFzc3dvcmQgbGVuZ3RoCisrKiogICAgCQlieXRlIDQtMHg/PyAgICAgOiB1c2VyIHBhc3N3 b3JkIHRvIGJlIGNoZWNrZWQKKysqKiAgICAgIEdVSV9MT0dPVVQgOiBMb2dvdXQgR1VJIChm b3JjZSBwYXNzd29yZCBjaGVja2luZyBvbiBuZXh0IGNvbW1hbmQpCisrKiogICAgCQlieXRl IDAsMSAgICAgICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1h bmQgY29kZSAweDE1CisrKiogICAgICBHVUlfSFRUUCA6IEhUVFAgaW50ZXJmYWNlIChyZXNl cnZlZCBmb3IgSHR0cCBwcm94eSBzZXJ2aWNlKSgweDE2KQorKyoqCisrKiogICAgICBHVUlf U0VUX0VUSEVSTkVUX0FERFIgOiBTZXQgdGhlIGV0aGVybmV0IE1BQyBhZGRyZXNzCisrKiog ICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAg ICA6IGNvbW1hbmQgY29kZSAweDE3CisrKiogICAgCQlieXRlIDMgICAgICAgICAgOiBwYXNz d29yZCBsZW5ndGggKHNob3VsZCBiZSAweDA4KQorKyoqICAgIAkJYnl0ZSA0LTB4MTMgICAg IDogc2hvdWxkIGJlICJBckVjQXZBciIKKysqKiAgICAJCWJ5dGUgMHgxNC0tMHgxOSA6IEV0 aGVybmV0IE1BQyBhZGRyZXNzIChtdXN0IGJlIDYgYnl0ZXMpCisrKiogICAgICBHVUlfU0VU X0xPR08gOiBTZXQgbG9nbyBpbiBIVFRQCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBs ZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDE4Cisr KiogICAgCQlieXRlIDMgICAgICAgICAgOiBQYWdlIyAoMC8xLzIvMykgKDB4ZmYgLS0+IGNs ZWFyIE9FTSBsb2dvKQorKyoqICAgIAkJYnl0ZSA0LzUvNi83ICAgIDogMHg1NS8weGFhLzB4 YTUvMHg1YQorKyoqICAgIAkJYnl0ZSA4ICAgICAgICAgIDogVElUTEUuSlBHIGRhdGEgKGVh Y2ggcGFnZSBtdXN0IGJlIDIwMDAgYnl0ZXMpCisrKiogICAgCQkgICAgICAgICAgICAgICAg ICBub3RlIC4uLi4gcGFnZTAgMXN0IDIgYnl0ZSBtdXN0IGJlIGFjdHVhbCBsZW5ndGggb2Yg dGhlIEpQRyBmaWxlCisrKiogICAgICBHVUlfUE9MTF9FVkVOVCA6IFBvbGwgSWYgRXZlbnQg TG9nIENoYW5nZWQKKysqKiAgICAJCWJ5dGUgMCwxICAgICAgICA6IGxlbmd0aAorKyoqICAg IAkJYnl0ZSAyICAgICAgICAgIDogY29tbWFuZCBjb2RlIDB4MTkKKysqKiAgICAgIEdVSV9H RVRfRVZFTlQgOiBSZWFkIEV2ZW50CisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5n dGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDFhCisrKiog ICAgCQlieXRlIDMgICAgICAgICAgOiBFdmVudCBQYWdlICgwOjFzdCBwYWdlLzEvMi8zOmxh c3QgcGFnZSkKKysqKiAgICAgIEdVSV9HRVRfSFdfTU9OSVRPUiA6IEdldCBIVyBtb25pdG9y IGRhdGEKKysqKiAgICAJCWJ5dGUgMCwxICAgICAgICA6IGxlbmd0aAorKyoqICAgIAkJYnl0 ZSAyIAkJCTogY29tbWFuZCBjb2RlIDB4MWIKKysqKiAgICAJCWJ5dGUgMyAJCQk6ICMgb2Yg RkFOcyhleGFtcGxlIDIpCisrKiogICAgCQlieXRlIDQgCQkJOiAjIG9mIFZvbHRhZ2Ugc2Vu c29yKGV4YW1wbGUgMykKKysqKiAgICAJCWJ5dGUgNSAJCQk6ICMgb2YgdGVtcGVyYXR1cmUg c2Vuc29yKGV4YW1wbGUgMikKKysqKiAgICAJCWJ5dGUgNiAJCQk6ICMgb2YgcG93ZXIKKysq KiAgICAJCWJ5dGUgNy84ICAgICAgICA6IEZhbiMwIChSUE0pCisrKiogICAgCQlieXRlIDkv MTAgICAgICAgOiBGYW4jMQorKyoqICAgIAkJYnl0ZSAxMS8xMiAJCTogVm9sdGFnZSMwIG9y aWdpbmFsIHZhbHVlIGluICoxMDAwCisrKiogICAgCQlieXRlIDEzLzE0IAkJOiBWb2x0YWdl IzAgdmFsdWUKKysqKiAgICAJCWJ5dGUgMTUvMTYgCQk6IFZvbHRhZ2UjMSBvcmcKKysqKiAg ICAJCWJ5dGUgMTcvMTggCQk6IFZvbHRhZ2UjMQorKyoqICAgIAkJYnl0ZSAxOS8yMCAJCTog Vm9sdGFnZSMyIG9yZworKyoqICAgIAkJYnl0ZSAyMS8yMiAJCTogVm9sdGFnZSMyCisrKiog ICAgCQlieXRlIDIzIAkJOiBUZW1wIzAKKysqKiAgICAJCWJ5dGUgMjQgCQk6IFRlbXAjMQor KyoqICAgIAkJYnl0ZSAyNSAJCTogUG93ZXIgaW5kaWNhdG9yIChiaXQwIDogcG93ZXIjMCwg Yml0MSA6IHBvd2VyIzEpCisrKiogICAgCQlieXRlIDI2IAkJOiBVUFMgaW5kaWNhdG9yCisr KiogICAgICBHVUlfUVVJQ0tfQ1JFQVRFIDogUXVpY2sgY3JlYXRlIHJhaWQvdm9sdW1lIHNl dAorKyoqICAgIAkgICAgYnl0ZSAwLDEgICAgICAgIDogbGVuZ3RoCisrKiogICAgCSAgICBi eXRlIDIgICAgICAgICAgOiBjb21tYW5kIGNvZGUgMHgyMAorKyoqICAgIAkgICAgYnl0ZSAz LzQvNS82ICAgIDogcmF3IGNhcGFjaXR5CisrKiogICAgCSAgICBieXRlIDcgCQkJOiByYWlk IGxldmVsCisrKiogICAgCSAgICBieXRlIDggCQkJOiBzdHJpcGUgc2l6ZQorKyoqICAgIAkg ICAgYnl0ZSA5IAkJCTogc3BhcmUKKysqKiAgICAJICAgIGJ5dGUgMTAvMTEvMTIvMTM6IGRl dmljZSBtYXNrICh0aGUgZGV2aWNlcyB0byBjcmVhdGUgcmFpZC92b2x1bWUpIAorKyoqICAg IAkJICAgICAgICAgICAgICAgICAgVGhpcyBmdW5jdGlvbiBpcyByZW1vdmVkLCBhcHBsaWNh dGlvbiBsaWtlIHRvIGltcGxlbWVudCBxdWljayBjcmVhdGUgZnVuY3Rpb24gCisrKiogICAg CQkgICAgICAgICAgICAgICAgICBuZWVkIHRvIHVzZSBHVUlfQ1JFQVRFX1JBSURTRVQgYW5k IEdVSV9DUkVBVEVfVk9MVU1FU0VUIGZ1bmN0aW9uLgorKyoqICAgICAgR1VJX0dFVF9JTkZP X1IgOiBHZXQgUmFpZCBTZXQgSW5mb3JtYXRpb24KKysqKiAgICAJCWJ5dGUgMCwxICAgICAg ICA6IGxlbmd0aAorKyoqICAgIAkJYnl0ZSAyICAgICAgICAgIDogY29tbWFuZCBjb2RlIDB4 MjAKKysqKiAgICAJCWJ5dGUgMyAgICAgICAgICA6IHJhaWRzZXQjCisrKiogICAgCisrKiog ICAgCXR5cGVkZWYgc3RydWN0IHNHVUlfUkFJRFNFVAorKyoqICAgIAl7CisrKiogICAgCQlC WVRFIGdyc1JhaWRTZXROYW1lWzE2XTsKKysqKiAgICAJCURXT1JEIGdyc0NhcGFjaXR5Owor KyoqICAgIAkJRFdPUkQgZ3JzQ2FwYWNpdHlYOworKyoqICAgIAkJRFdPUkQgZ3JzRmFpbE1h c2s7CisrKiogICAgCQlCWVRFIGdyc0RldkFycmF5WzMyXTsKKysqKiAgICAJCUJZVEUgZ3Jz TWVtYmVyRGV2aWNlczsKKysqKiAgICAJCUJZVEUgZ3JzTmV3TWVtYmVyRGV2aWNlczsKKysq KiAgICAJCUJZVEUgZ3JzUmFpZFN0YXRlOworKyoqICAgIAkJQllURSBncnNWb2x1bWVzOwor KyoqICAgIAkJQllURSBncnNWb2x1bWVMaXN0WzE2XTsKKysqKiAgICAJCUJZVEUgZ3JzUmVz MTsKKysqKiAgICAJCUJZVEUgZ3JzUmVzMjsKKysqKiAgICAJCUJZVEUgZ3JzUmVzMzsKKysq KiAgICAJCUJZVEUgZ3JzRnJlZVNlZ21lbnRzOworKyoqICAgIAkJRFdPUkQgZ3JzUmF3U3Ry aXBlc1s4XTsKKysqKiAgICAJCURXT1JEIGdyc1JlczQ7CisrKiogICAgCQlEV09SRCBncnNS ZXM1OyAvLyAgICAgVG90YWwgdG8gMTI4IGJ5dGVzCisrKiogICAgCQlEV09SRCBncnNSZXM2 OyAvLyAgICAgVG90YWwgdG8gMTI4IGJ5dGVzCisrKiogICAgCX0gc0dVSV9SQUlEU0VULCAq cEdVSV9SQUlEU0VUOworKyoqICAgICAgR1VJX0dFVF9JTkZPX1YgOiBHZXQgVm9sdW1lIFNl dCBJbmZvcm1hdGlvbgorKyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDogbGVuZ3RoCisrKiog ICAgCQlieXRlIDIgICAgICAgICAgOiBjb21tYW5kIGNvZGUgMHgyMQorKyoqICAgIAkJYnl0 ZSAzICAgICAgICAgIDogdm9sdW1lc2V0IworKyoqICAgIAorKyoqICAgIAl0eXBlZGVmIHN0 cnVjdCBzR1VJX1ZPTFVNRVNFVAorKyoqICAgIAl7CisrKiogICAgCQlCWVRFIGd2c1ZvbHVt ZU5hbWVbMTZdOyAvLyAgICAgMTYKKysqKiAgICAJCURXT1JEIGd2c0NhcGFjaXR5OworKyoq ICAgIAkJRFdPUkQgZ3ZzQ2FwYWNpdHlYOworKyoqICAgIAkJRFdPUkQgZ3ZzRmFpbE1hc2s7 CisrKiogICAgCQlEV09SRCBndnNTdHJpcGVTaXplOworKyoqICAgIAkJRFdPUkQgZ3ZzTmV3 RmFpbE1hc2s7CisrKiogICAgCQlEV09SRCBndnNOZXdTdHJpcGVTaXplOworKyoqICAgIAkJ RFdPUkQgZ3ZzVm9sdW1lU3RhdHVzOworKyoqICAgIAkJRFdPUkQgZ3ZzUHJvZ3Jlc3M7IC8v ICAgICAzMgorKyoqICAgIAkJc1NDU0lfQVRUUiBndnNTY3NpOyAKKysqKiAgICAJCUJZVEUg Z3ZzTWVtYmVyRGlza3M7CisrKiogICAgCQlCWVRFIGd2c1JhaWRMZXZlbDsgLy8gICAgIDgK KysqKiAgICAKKysqKiAgICAJCUJZVEUgZ3ZzTmV3TWVtYmVyRGlza3M7CisrKiogICAgCQlC WVRFIGd2c05ld1JhaWRMZXZlbDsKKysqKiAgICAJCUJZVEUgZ3ZzUmFpZFNldE51bWJlcjsK KysqKiAgICAJCUJZVEUgZ3ZzUmVzMDsgLy8gICAgIDQKKysqKiAgICAJCUJZVEUgZ3ZzUmVz MVs0XTsgLy8gICAgIDY0IGJ5dGVzCisrKiogICAgCX0gc0dVSV9WT0xVTUVTRVQsICpwR1VJ X1ZPTFVNRVNFVDsKKysqKiAgICAKKysqKiAgICAgIEdVSV9HRVRfSU5GT19QIDogR2V0IFBo eXNpY2FsIERyaXZlIEluZm9ybWF0aW9uCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBs ZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDIyCisr KiogICAgCQlieXRlIDMgICAgICAgICAgOiBkcml2ZSAjIChmcm9tIDAgdG8gbWF4LWNoYW5u ZWxzIC0gMSkKKysqKiAgICAKKysqKiAgICAJdHlwZWRlZiBzdHJ1Y3Qgc0dVSV9QSFlfRFJW CisrKiogICAgCXsKKysqKiAgICAJCUJZVEUgZ3BkTW9kZWxOYW1lWzQwXTsKKysqKiAgICAJ CUJZVEUgZ3BkU2VyaWFsTnVtYmVyWzIwXTsKKysqKiAgICAJCUJZVEUgZ3BkRmlybVJldls4 XTsKKysqKiAgICAJCURXT1JEIGdwZENhcGFjaXR5OworKyoqICAgIAkJRFdPUkQgZ3BkQ2Fw YWNpdHlYOyAvLyAgICAgUmVzZXJ2ZWQgZm9yIGV4cGFuc2lvbgorKyoqICAgIAkJQllURSBn cGREZXZpY2VTdGF0ZTsKKysqKiAgICAJCUJZVEUgZ3BkUGlvTW9kZTsKKysqKiAgICAJCUJZ VEUgZ3BkQ3VycmVudFVkbWFNb2RlOworKyoqICAgIAkJQllURSBncGRVZG1hTW9kZTsKKysq KiAgICAJCUJZVEUgZ3BkRHJpdmVTZWxlY3Q7CisrKiogICAgCQlCWVRFIGdwZFJhaWROdW1i ZXI7IC8vICAgICAweGZmIGlmIG5vdCBiZWxvbmdzIHRvIGEgcmFpZCBzZXQKKysqKiAgICAJ CXNTQ1NJX0FUVFIgZ3BkU2NzaTsKKysqKiAgICAJCUJZVEUgZ3BkUmVzZXJ2ZWRbNDBdOyAv LyAgICAgVG90YWwgdG8gMTI4IGJ5dGVzCisrKiogICAgCX0gc0dVSV9QSFlfRFJWLCAqcEdV SV9QSFlfRFJWOworKyoqICAgIAorKyoqICAgIAlHVUlfR0VUX0lORk9fUyA6IEdldCBTeXN0 ZW0gSW5mb3JtYXRpb24KKysqKiAgICAgIAlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysq KiAgICAgIAlieXRlIDIgICAgICAgICAgOiBjb21tYW5kIGNvZGUgMHgyMworKyoqICAgIAor KyoqICAgIAl0eXBlZGVmIHN0cnVjdCBzQ09NX0FUVFIKKysqKiAgICAJeworKyoqICAgIAkJ QllURSBjb21CYXVkUmF0ZTsKKysqKiAgICAJCUJZVEUgY29tRGF0YUJpdHM7CisrKiogICAg CQlCWVRFIGNvbVN0b3BCaXRzOworKyoqICAgIAkJQllURSBjb21QYXJpdHk7CisrKiogICAg CQlCWVRFIGNvbUZsb3dDb250cm9sOworKyoqICAgIAl9IHNDT01fQVRUUiwgKnBDT01fQVRU UjsKKysqKiAgICAKKysqKiAgICAJdHlwZWRlZiBzdHJ1Y3Qgc1NZU1RFTV9JTkZPCisrKiog ICAgCXsKKysqKiAgICAJCUJZVEUgZ3NpVmVuZG9yTmFtZVs0MF07CisrKiogICAgCQlCWVRF IGdzaVNlcmlhbE51bWJlclsxNl07CisrKiogICAgCQlCWVRFIGdzaUZpcm1WZXJzaW9uWzE2 XTsKKysqKiAgICAJCUJZVEUgZ3NpQm9vdFZlcnNpb25bMTZdOworKyoqICAgIAkJQllURSBn c2lNYlZlcnNpb25bMTZdOworKyoqICAgIAkJQllURSBnc2lNb2RlbE5hbWVbOF07CisrKiog ICAgCQlCWVRFIGdzaUxvY2FsSXBbNF07CisrKiogICAgCQlCWVRFIGdzaUN1cnJlbnRJcFs0 XTsKKysqKiAgICAJCURXT1JEIGdzaVRpbWVUaWNrOworKyoqICAgIAkJRFdPUkQgZ3NpQ3B1 U3BlZWQ7CisrKiogICAgCQlEV09SRCBnc2lJQ2FjaGU7CisrKiogICAgCQlEV09SRCBnc2lE Q2FjaGU7CisrKiogICAgCQlEV09SRCBnc2lTY2FjaGU7CisrKiogICAgCQlEV09SRCBnc2lN ZW1vcnlTaXplOworKyoqICAgIAkJRFdPUkQgZ3NpTWVtb3J5U3BlZWQ7CisrKiogICAgCQlE V09SRCBnc2lFdmVudHM7CisrKiogICAgCQlCWVRFIGdzaU1hY0FkZHJlc3NbNl07CisrKiog ICAgCQlCWVRFIGdzaURoY3A7CisrKiogICAgCQlCWVRFIGdzaUJlZXBlcjsKKysqKiAgICAJ CUJZVEUgZ3NpQ2hhbm5lbFVzYWdlOworKyoqICAgIAkJQllURSBnc2lNYXhBdGFNb2RlOwor KyoqICAgIAkJQllURSBnc2lTZHJhbUVjYzsgLy8gICAgIDE6aWYgRUNDIGVuYWJsZWQKKysq KiAgICAJCUJZVEUgZ3NpUmVidWlsZFByaW9yaXR5OworKyoqICAgIAkJc0NPTV9BVFRSIGdz aUNvbUE7IC8vICAgICA1IGJ5dGVzCisrKiogICAgCQlzQ09NX0FUVFIgZ3NpQ29tQjsgLy8g ICAgIDUgYnl0ZXMKKysqKiAgICAJCUJZVEUgZ3NpSWRlQ2hhbm5lbHM7CisrKiogICAgCQlC WVRFIGdzaVNjc2lIb3N0Q2hhbm5lbHM7CisrKiogICAgCQlCWVRFIGdzaUlkZUhvc3RDaGFu bmVsczsKKysqKiAgICAJCUJZVEUgZ3NpTWF4Vm9sdW1lU2V0OworKyoqICAgIAkJQllURSBn c2lNYXhSYWlkU2V0OworKyoqICAgIAkJQllURSBnc2lFdGhlclBvcnQ7IC8vICAgICAxOmlm IGV0aGVyIG5ldCBwb3J0IHN1cHBvcnRlZAorKyoqICAgIAkJQllURSBnc2lSYWlkNkVuZ2lu ZTsgLy8gICAgIDE6UmFpZDYgZW5naW5lIHN1cHBvcnRlZAorKyoqICAgIAkJQllURSBnc2lS ZXNbNzVdOworKyoqICAgIAl9IHNTWVNURU1fSU5GTywgKnBTWVNURU1fSU5GTzsKKysqKiAg ICAKKysqKiAgICAJR1VJX0NMRUFSX0VWRU5UIDogQ2xlYXIgU3lzdGVtIEV2ZW50CisrKiog ICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAg ICA6IGNvbW1hbmQgY29kZSAweDI0CisrKiogICAgCisrKiogICAgICBHVUlfTVVURV9CRUVQ RVIgOiBNdXRlIGN1cnJlbnQgYmVlcGVyCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBs ZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDMwCisr KiogICAgCisrKiogICAgICBHVUlfQkVFUEVSX1NFVFRJTkcgOiBEaXNhYmxlIGJlZXBlcgor KyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDogbGVuZ3RoCisrKiogICAgCQlieXRlIDIgICAg ICAgICAgOiBjb21tYW5kIGNvZGUgMHgzMQorKyoqICAgIAkJYnl0ZSAzICAgICAgICAgIDog MC0+ZGlzYWJsZSwgMS0+ZW5hYmxlCisrKiogICAgCisrKiogICAgICBHVUlfU0VUX1BBU1NX T1JEIDogQ2hhbmdlIHBhc3N3b3JkCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5n dGgKKysqKiAgICAJCWJ5dGUgMiAJCQk6IGNvbW1hbmQgY29kZSAweDMyCisrKiogICAgCQli eXRlIDMgCQkJOiBwYXNzIHdvcmQgbGVuZ3RoICggbXVzdCA8PSAxNSApCisrKiogICAgCQli eXRlIDQgCQkJOiBwYXNzd29yZCAobXVzdCBiZSBhbHBoYS1udW1lcmljYWwpCisrKiogICAg CisrKiogICAgCUdVSV9IT1NUX0lOVEVSRkFDRV9NT0RFIDogU2V0IGhvc3QgaW50ZXJmYWNl IG1vZGUKKysqKiAgICAJCWJ5dGUgMCwxICAgICAgICA6IGxlbmd0aAorKyoqICAgIAkJYnl0 ZSAyIAkJCTogY29tbWFuZCBjb2RlIDB4MzMKKysqKiAgICAJCWJ5dGUgMyAJCQk6IDAtPklu ZGVwZW5kZW50LCAxLT5jbHVzdGVyCisrKiogICAgCisrKiogICAgICBHVUlfUkVCVUlMRF9Q UklPUklUWSA6IFNldCByZWJ1aWxkIHByaW9yaXR5CisrKiogICAgCQlieXRlIDAsMSAgICAg ICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAJCQk6IGNvbW1hbmQgY29kZSAweDM0Cisr KiogICAgCQlieXRlIDMgCQkJOiAwLzEvMi8zIChsb3ctPmhpZ2gpCisrKiogICAgCisrKiog ICAgICBHVUlfTUFYX0FUQV9NT0RFIDogU2V0IG1heGltdW0gQVRBIG1vZGUgdG8gYmUgdXNl ZAorKyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDogbGVuZ3RoCisrKiogICAgCQlieXRlIDIg CQkJOiBjb21tYW5kIGNvZGUgMHgzNQorKyoqICAgIAkJYnl0ZSAzIAkJCTogMC8xLzIvMyAo MTMzLzEwMC82Ni8zMykKKysqKiAgICAKKysqKiAgICAgIEdVSV9SRVNFVF9DT05UUk9MTEVS IDogUmVzZXQgQ29udHJvbGxlcgorKyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDogbGVuZ3Ro CisrKiogICAgCQlieXRlIDIgICAgICAgICAgOiBjb21tYW5kIGNvZGUgMHgzNgorKyoqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICpSZXNwb25zZSB3aXRoIFZUMTAwIHNjcmVlbiAo ZGlzY2FyZCBpdCkKKysqKiAgICAKKysqKiAgICAgIEdVSV9DT01fUE9SVF9TRVRUSU5HIDog Q09NIHBvcnQgc2V0dGluZworKyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDogbGVuZ3RoCisr KiogICAgCQlieXRlIDIgCQkJOiBjb21tYW5kIGNvZGUgMHgzNworKyoqICAgIAkJYnl0ZSAz IAkJCTogMC0+Q09NQSAodGVybSBwb3J0KSwgMS0+Q09NQiAoZGVidWcgcG9ydCkKKysqKiAg ICAJCWJ5dGUgNCAJCQk6IDAvMS8yLzMvNC81LzYvNyAoMTIwMC8yNDAwLzQ4MDAvOTYwMC8x OTIwMC8zODQwMC81NzYwMC8xMTUyMDApCisrKiogICAgCQlieXRlIDUgCQkJOiBkYXRhIGJp dCAoMDo3IGJpdCwgMTo4IGJpdCA6IG11c3QgYmUgOCBiaXQpCisrKiogICAgCQlieXRlIDYg CQkJOiBzdG9wIGJpdCAoMDoxLCAxOjIgc3RvcCBiaXRzKQorKyoqICAgIAkJYnl0ZSA3IAkJ CTogcGFyaXR5ICgwOm5vbmUsIDE6b2ZmLCAyOmV2ZW4pCisrKiogICAgCQlieXRlIDggCQkJ OiBmbG93IGNvbnRyb2wgKDA6bm9uZSwgMTp4b24veG9mZiwgMjpoYXJkd2FyZSA9PiBtdXN0 IHVzZSBub25lKQorKyoqICAgIAorKyoqICAgICAgR1VJX05PX09QRVJBVElPTiA6IE5vIG9w ZXJhdGlvbgorKyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDogbGVuZ3RoCisrKiogICAgCQli eXRlIDIgICAgICAgICAgOiBjb21tYW5kIGNvZGUgMHgzOAorKyoqICAgIAorKyoqICAgICAg R1VJX0RIQ1BfSVAgOiBTZXQgREhDUCBvcHRpb24gYW5kIGxvY2FsIElQIGFkZHJlc3MKKysq KiAgICAJCWJ5dGUgMCwxICAgICAgICA6IGxlbmd0aAorKyoqICAgIAkJYnl0ZSAyICAgICAg ICAgIDogY29tbWFuZCBjb2RlIDB4MzkKKysqKiAgICAJCWJ5dGUgMyAgICAgICAgICA6IDA6 ZGhjcCBkaXNhYmxlZCwgMTpkaGNwIGVuYWJsZWQKKysqKiAgICAJCWJ5dGUgNC81LzYvNyAg ICA6IElQIGFkZHJlc3MKKysqKiAgICAKKysqKiAgICAgIEdVSV9DUkVBVEVfUEFTU19USFJP VUdIIDogQ3JlYXRlIHBhc3MgdGhyb3VnaCBkaXNrCisrKiogICAgCQlieXRlIDAsMSAgICAg ICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAJCQk6IGNvbW1hbmQgY29kZSAweDQwCisr KiogICAgCQlieXRlIDMgCQkJOiBkZXZpY2UgIworKyoqICAgIAkJYnl0ZSA0IAkJCTogc2Nz aSBjaGFubmVsICgwLzEpCisrKiogICAgCQlieXRlIDUgCQkJOiBzY3NpIGlkICgwLS0+MTUp CisrKiogICAgCQlieXRlIDYgCQkJOiBzY3NpIGx1biAoMC0tPjcpCisrKiogICAgCQlieXRl IDcgCQkJOiB0YWdnZWQgcXVldWUgKDEgOiBlbmFibGVkKQorKyoqICAgIAkJYnl0ZSA4IAkJ CTogY2FjaGUgbW9kZSAoMSA6IGVuYWJsZWQpCisrKiogICAgCQlieXRlIDkgCQkJOiBtYXgg c3BlZWQgKDAvMS8yLzMvNCwgYXN5bmMvMjAvNDAvODAvMTYwIGZvciBzY3NpKQorKyoqICAg IAkJCQkJCQkJICAgICgwLzEvMi8zLzQsIDMzLzY2LzEwMC8xMzMvMTUwIGZvciBpZGUgICkK KysqKiAgICAKKysqKiAgICAgIEdVSV9NT0RJRllfUEFTU19USFJPVUdIIDogTW9kaWZ5IHBh c3MgdGhyb3VnaCBkaXNrCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysq KiAgICAJCWJ5dGUgMiAJCQk6IGNvbW1hbmQgY29kZSAweDQxCisrKiogICAgCQlieXRlIDMg CQkJOiBkZXZpY2UgIworKyoqICAgIAkJYnl0ZSA0IAkJCTogc2NzaSBjaGFubmVsICgwLzEp CisrKiogICAgCQlieXRlIDUgCQkJOiBzY3NpIGlkICgwLS0+MTUpCisrKiogICAgCQlieXRl IDYgCQkJOiBzY3NpIGx1biAoMC0tPjcpCisrKiogICAgCQlieXRlIDcgCQkJOiB0YWdnZWQg cXVldWUgKDEgOiBlbmFibGVkKQorKyoqICAgIAkJYnl0ZSA4IAkJCTogY2FjaGUgbW9kZSAo MSA6IGVuYWJsZWQpCisrKiogICAgCQlieXRlIDkgCQkJOiBtYXggc3BlZWQgKDAvMS8yLzMv NCwgYXN5bmMvMjAvNDAvODAvMTYwIGZvciBzY3NpKQorKyoqICAgIAkJCQkJCQkgICAgICAg ICgwLzEvMi8zLzQsIDMzLzY2LzEwMC8xMzMvMTUwIGZvciBpZGUgICkKKysqKiAgICAKKysq KiAgICAgIEdVSV9ERUxFVEVfUEFTU19USFJPVUdIIDogRGVsZXRlIHBhc3MgdGhyb3VnaCBk aXNrCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUg MiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDQyCisrKiogICAgCQlieXRlIDMgICAgICAg ICAgOiBkZXZpY2UjIHRvIGJlIGRlbGV0ZWQKKysqKiAgICAKKysqKiAgICAgIEdVSV9JREVO VElGWV9ERVZJQ0UgOiBJZGVudGlmeSBEZXZpY2UKKysqKiAgICAJCWJ5dGUgMCwxICAgICAg ICA6IGxlbmd0aAorKyoqICAgIAkJYnl0ZSAyICAgICAgICAgIDogY29tbWFuZCBjb2RlIDB4 NDMKKysqKiAgICAJCWJ5dGUgMyAgICAgICAgICA6IEZsYXNoIE1ldGhvZCgwOmZsYXNoIHNl bGVjdGVkLCAxOmZsYXNoIG5vdCBzZWxlY3RlZCkKKysqKiAgICAJCWJ5dGUgNC81LzYvNyAg ICA6IElERSBkZXZpY2UgbWFzayB0byBiZSBmbGFzaGVkCisrKiogICAgICAgICAgICAgICAg ICAgICAgICAgICBub3RlIC4uLi4gbm8gcmVzcG9uc2UgZGF0YSBhdmFpbGFibGUKKysqKiAg ICAKKysqKiAgICAJR1VJX0NSRUFURV9SQUlEU0VUIDogQ3JlYXRlIFJhaWQgU2V0CisrKiog ICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAg ICA6IGNvbW1hbmQgY29kZSAweDUwCisrKiogICAgCQlieXRlIDMvNC81LzYgICAgOiBkZXZp Y2UgbWFzaworKyoqICAgIAkJYnl0ZSA3LTIyICAgICAgIDogcmFpZHNldCBuYW1lIChpZiBi eXRlIDcgPT0gMDp1c2UgZGVmYXVsdCkKKysqKiAgICAKKysqKiAgICAgIEdVSV9ERUxFVEVf UkFJRFNFVCA6IERlbGV0ZSBSYWlkIFNldAorKyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDog bGVuZ3RoCisrKiogICAgCQlieXRlIDIgICAgICAgICAgOiBjb21tYW5kIGNvZGUgMHg1MQor KyoqICAgIAkJYnl0ZSAzICAgICAgICAgIDogcmFpZHNldCMKKysqKiAgICAKKysqKiAgICAJ R1VJX0VYUEFORF9SQUlEU0VUIDogRXhwYW5kIFJhaWQgU2V0IAorKyoqICAgIAkJYnl0ZSAw LDEgICAgICAgIDogbGVuZ3RoCisrKiogICAgCQlieXRlIDIgICAgICAgICAgOiBjb21tYW5k IGNvZGUgMHg1MgorKyoqICAgIAkJYnl0ZSAzICAgICAgICAgIDogcmFpZHNldCMKKysqKiAg ICAJCWJ5dGUgNC81LzYvNyAgICA6IGRldmljZSBtYXNrIGZvciBleHBhbnNpb24KKysqKiAg ICAJCWJ5dGUgOC85LzEwICAgICA6ICg4OjAgbm8gY2hhbmdlLCAxIGNoYW5nZSwgMHhmZjp0 ZXJtaW5hdGUsIDk6bmV3IHJhaWQgbGV2ZWwsMTA6bmV3IHN0cmlwZSBzaXplIDAvMS8yLzMv NC81LT40LzgvMTYvMzIvNjQvMTI4SyApCisrKiogICAgCQlieXRlIDExLzEyLzEzICAgOiBy ZXBlYXQgZm9yIGVhY2ggdm9sdW1lIGluIHRoZSByYWlkc2V0IC4uLi4KKysqKiAgICAKKysq KiAgICAgIEdVSV9BQ1RJVkFURV9SQUlEU0VUIDogQWN0aXZhdGUgaW5jb21wbGV0ZSByYWlk IHNldCAKKysqKiAgICAJCWJ5dGUgMCwxICAgICAgICA6IGxlbmd0aAorKyoqICAgIAkJYnl0 ZSAyICAgICAgICAgIDogY29tbWFuZCBjb2RlIDB4NTMKKysqKiAgICAJCWJ5dGUgMyAgICAg ICAgICA6IHJhaWRzZXQjCisrKiogICAgCisrKiogICAgICBHVUlfQ1JFQVRFX0hPVF9TUEFS RSA6IENyZWF0ZSBob3Qgc3BhcmUgZGlzayAKKysqKiAgICAJCWJ5dGUgMCwxICAgICAgICA6 IGxlbmd0aAorKyoqICAgIAkJYnl0ZSAyICAgICAgICAgIDogY29tbWFuZCBjb2RlIDB4NTQK KysqKiAgICAJCWJ5dGUgMy80LzUvNiAgICA6IGRldmljZSBtYXNrIGZvciBob3Qgc3BhcmUg Y3JlYXRpb24KKysqKiAgICAKKysqKiAgICAJR1VJX0RFTEVURV9IT1RfU1BBUkUgOiBEZWxl dGUgaG90IHNwYXJlIGRpc2sgCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgK KysqKiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDU1CisrKiogICAg CQlieXRlIDMvNC81LzYgICAgOiBkZXZpY2UgbWFzayBmb3IgaG90IHNwYXJlIGRlbGV0aW9u CisrKiogICAgCisrKiogICAgCUdVSV9DUkVBVEVfVk9MVU1FIDogQ3JlYXRlIHZvbHVtZSBz ZXQgCisrKiogICAgCQlieXRlIDAsMSAgICAgICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUg MiAgICAgICAgICA6IGNvbW1hbmQgY29kZSAweDYwCisrKiogICAgCQlieXRlIDMgICAgICAg ICAgOiByYWlkc2V0IworKyoqICAgIAkJYnl0ZSA0LTE5ICAgICAgIDogdm9sdW1lIHNldCBu YW1lIChpZiBieXRlNCA9PSAwLCB1c2UgZGVmYXVsdCkKKysqKiAgICAJCWJ5dGUgMjAtMjcg ICAgICA6IHZvbHVtZSBjYXBhY2l0eSAoYmxvY2tzKQorKyoqICAgIAkJYnl0ZSAyOCAJCTog cmFpZCBsZXZlbAorKyoqICAgIAkJYnl0ZSAyOSAJCTogc3RyaXBlIHNpemUgKDAvMS8yLzMv NC81LT40LzgvMTYvMzIvNjQvMTI4SykKKysqKiAgICAJCWJ5dGUgMzAgCQk6IGNoYW5uZWwK KysqKiAgICAJCWJ5dGUgMzEgCQk6IElECisrKiogICAgCQlieXRlIDMyIAkJOiBMVU4KKysq KiAgICAJCWJ5dGUgMzMgCQk6IDEgZW5hYmxlIHRhZworKyoqICAgIAkJYnl0ZSAzNCAJCTog MSBlbmFibGUgY2FjaGUKKysqKiAgICAJCWJ5dGUgMzUgCQk6IHNwZWVkICgwLzEvMi8zLzQt PmFzeW5jLzIwLzQwLzgwLzE2MCBmb3Igc2NzaSkKKysqKiAgICAJCQkJCQkJCSgwLzEvMi8z LzQtPjMzLzY2LzEwMC8xMzMvMTUwIGZvciBJREUgICkKKysqKiAgICAJCWJ5dGUgMzYgCQk6 IDEgdG8gc2VsZWN0IHF1aWNrIGluaXQKKysqKiAgICAKKysqKiAgICAJR1VJX01PRElGWV9W T0xVTUUgOiBNb2RpZnkgdm9sdW1lIFNldAorKyoqICAgIAkJYnl0ZSAwLDEgICAgICAgIDog bGVuZ3RoCisrKiogICAgCQlieXRlIDIgICAgICAgICAgOiBjb21tYW5kIGNvZGUgMHg2MQor KyoqICAgIAkJYnl0ZSAzICAgICAgICAgIDogdm9sdW1lc2V0IworKyoqICAgIAkJYnl0ZSA0 LTE5ICAgICAgIDogbmV3IHZvbHVtZSBzZXQgbmFtZSAoaWYgYnl0ZTQgPT0gMCwgbm90IGNo YW5nZSkKKysqKiAgICAJCWJ5dGUgMjAtMjcgICAgICA6IG5ldyB2b2x1bWUgY2FwYWNpdHkg KHJlc2VydmVkKQorKyoqICAgIAkJYnl0ZSAyOCAJCTogbmV3IHJhaWQgbGV2ZWwKKysqKiAg ICAJCWJ5dGUgMjkgCQk6IG5ldyBzdHJpcGUgc2l6ZSAoMC8xLzIvMy80LzUtPjQvOC8xNi8z Mi82NC8xMjhLKQorKyoqICAgIAkJYnl0ZSAzMCAJCTogbmV3IGNoYW5uZWwKKysqKiAgICAJ CWJ5dGUgMzEgCQk6IG5ldyBJRAorKyoqICAgIAkJYnl0ZSAzMiAJCTogbmV3IExVTgorKyoq ICAgIAkJYnl0ZSAzMyAJCTogMSBlbmFibGUgdGFnCisrKiogICAgCQlieXRlIDM0IAkJOiAx IGVuYWJsZSBjYWNoZQorKyoqICAgIAkJYnl0ZSAzNSAJCTogc3BlZWQgKDAvMS8yLzMvNC0+ YXN5bmMvMjAvNDAvODAvMTYwIGZvciBzY3NpKQorKyoqICAgIAkJCQkJCQkJKDAvMS8yLzMv NC0+MzMvNjYvMTAwLzEzMy8xNTAgZm9yIElERSAgKQorKyoqICAgIAorKyoqICAgIAlHVUlf REVMRVRFX1ZPTFVNRSA6IERlbGV0ZSB2b2x1bWUgc2V0CisrKiogICAgCQlieXRlIDAsMSAg ICAgICAgOiBsZW5ndGgKKysqKiAgICAJCWJ5dGUgMiAgICAgICAgICA6IGNvbW1hbmQgY29k ZSAweDYyCisrKiogICAgCQlieXRlIDMgICAgICAgICAgOiB2b2x1bWVzZXQjCisrKiogICAg CisrKiogICAgCUdVSV9TVEFSVF9DSEVDS19WT0xVTUUgOiBTdGFydCB2b2x1bWUgY29uc2lz dGVuY3kgY2hlY2sKKysqKiAgICAJCWJ5dGUgMCwxICAgICAgICA6IGxlbmd0aAorKyoqICAg IAkJYnl0ZSAyICAgICAgICAgIDogY29tbWFuZCBjb2RlIDB4NjMKKysqKiAgICAJCWJ5dGUg MyAgICAgICAgICA6IHZvbHVtZXNldCMKKysqKiAgICAKKysqKiAgICAJR1VJX1NUT1BfQ0hF Q0tfVk9MVU1FIDogU3RvcCB2b2x1bWUgY29uc2lzdGVuY3kgY2hlY2sKKysqKiAgICAJCWJ5 dGUgMCwxICAgICAgICA6IGxlbmd0aAorKyoqICAgIAkJYnl0ZSAyICAgICAgICAgIDogY29t bWFuZCBjb2RlIDB4NjQKKysqKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAKKysqKiAgICA0LiBSZXR1 cm5lZCBkYXRhCisrKiogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgCisrKiogICAgCShBKSBIZWFkZXIg ICAgICAgICAgOiAzIGJ5dGVzIHNlcXVlbmNlICgweDVFLCAweDAxLCAweDYxKQorKyoqICAg IAkoQikgTGVuZ3RoICAgICAgICAgIDogMiBieXRlcyAobG93IGJ5dGUgMXN0LCBleGNsdWRl cyBsZW5ndGggYW5kIGNoZWNrc3VtIGJ5dGUpCisrKiogICAgCShDKSBzdGF0dXMgb3IgZGF0 YSAgOgorKyoqICAgICAgICAgICA8MT4gSWYgbGVuZ3RoID09IDEgPT0+IDEgYnl0ZSBzdGF0 dXMgY29kZQorKyoqICAgIAkJCQkJCQkJI2RlZmluZSBHVUlfT0sgICAgICAgICAgICAgICAg ICAgIDB4NDEKKysqKiAgICAJCQkJCQkJCSNkZWZpbmUgR1VJX1JBSURTRVRfTk9UX05PUk1B TCAgICAweDQyCisrKiogICAgCQkJCQkJCQkjZGVmaW5lIEdVSV9WT0xVTUVTRVRfTk9UX05P Uk1BTCAgMHg0MworKyoqICAgIAkJCQkJCQkJI2RlZmluZSBHVUlfTk9fUkFJRFNFVCAgICAg ICAgICAgIDB4NDQKKysqKiAgICAJCQkJCQkJCSNkZWZpbmUgR1VJX05PX1ZPTFVNRVNFVCAg ICAgICAgICAweDQ1CisrKiogICAgCQkJCQkJCQkjZGVmaW5lIEdVSV9OT19QSFlTSUNBTF9E UklWRSAgICAgMHg0NgorKyoqICAgIAkJCQkJCQkJI2RlZmluZSBHVUlfUEFSQU1FVEVSX0VS Uk9SICAgICAgIDB4NDcKKysqKiAgICAJCQkJCQkJCSNkZWZpbmUgR1VJX1VOU1VQUE9SVEVE X0NPTU1BTkQgICAweDQ4CisrKiogICAgCQkJCQkJCQkjZGVmaW5lIEdVSV9ESVNLX0NPTkZJ R19DSEFOR0VEICAgMHg0OQorKyoqICAgIAkJCQkJCQkJI2RlZmluZSBHVUlfSU5WQUxJRF9Q QVNTV09SRCAgICAgIDB4NGEKKysqKiAgICAJCQkJCQkJCSNkZWZpbmUgR1VJX05PX0RJU0tf U1BBQ0UgICAgICAgICAweDRiCisrKiogICAgCQkJCQkJCQkjZGVmaW5lIEdVSV9DSEVDS1NV TV9FUlJPUiAgICAgICAgMHg0YworKyoqICAgIAkJCQkJCQkJI2RlZmluZSBHVUlfUEFTU1dP UkRfUkVRVUlSRUQgICAgIDB4NGQKKysqKiAgICAgICAgICAgPDI+IElmIGxlbmd0aCA+IDEg PT0+IGRhdGEgYmxvY2sgcmV0dXJuZWQgZnJvbSBjb250cm9sbGVyIGFuZCB0aGUgY29udGVu dHMgZGVwZW5kcyBvbiB0aGUgY29tbWFuZCBjb2RlCisrKiogICAgICAgIChFKSBDaGVja3N1 bSA6IGNoZWNrc3VtIG9mIGxlbmd0aCBhbmQgc3RhdHVzIG9yIGRhdGEgYnl0ZQorKyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCisrKi8KKytleHRlcm4gaW50IGFyY21zcl9yZWxlYXNlKHN0cnVj dCBTY3NpX0hvc3QgKik7CisrZXh0ZXJuIGludCBhcmNtc3JfcXVldWVfY29tbWFuZChzdHJ1 Y3Qgc2NzaV9jbW5kICpjbWQsdm9pZCAoKiBkb25lKShzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQp KTsKKytleHRlcm4gaW50IGFyY21zcl9hYm9ydChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpOwor K2V4dGVybiBpbnQgYXJjbXNyX2J1c19yZXNldChzdHJ1Y3Qgc2NzaV9jbW5kICpjbWQpOwor K2V4dGVybiBjb25zdCBjaGFyICphcmNtc3JfaW5mbyhzdHJ1Y3QgU2NzaV9Ib3N0ICopOwor KyNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw1LDApCisrCSNk ZWZpbmUgICBhcmNtc3JfZGV0ZWN0IE5VTEwKKysgICAgZXh0ZXJuIGludCBhcmNtc3JfcHJv Y19pbmZvKHN0cnVjdCBTY3NpX0hvc3QgKmhvc3QsIGNoYXIgKmJ1ZmZlciwgY2hhciAqKnN0 YXJ0LCBvZmZfdCBvZmZzZXQsIGludCBsZW5ndGgsIGludCBpbm91dCk7CisrICAgIGV4dGVy biBpbnQgYXJjbXNyX2Jpb3NfcGFyYW0oc3RydWN0IHNjc2lfZGV2aWNlICpzZGV2LCBzdHJ1 Y3QgYmxvY2tfZGV2aWNlICpiZGV2LCBzZWN0b3JfdCBjYXBhY2l0eSwgaW50ICppbmZvKTsK KysgICAgIAorKwlzdGF0aWMgc3NpemVfdCBhcmNtc3Jfc2hvd19maXJtd2FyZV9pbmZvKHN0 cnVjdCBjbGFzc19kZXZpY2UgKmRldiwgY2hhciAqYnVmKQorKwl7CisrCQlzdHJ1Y3QgU2Nz aV9Ib3N0ICpob3N0PWNsYXNzX3RvX3Nob3N0KGRldik7CisrCQlzdHJ1Y3QgQWRhcHRlckNv bnRyb2xCbG9jayAqYWNiPShzdHJ1Y3QgQWRhcHRlckNvbnRyb2xCbG9jayAqKSBob3N0LT5o b3N0ZGF0YTsKKysJCXVuc2lnbmVkIGxvbmcgZmxhZ3M9MDsKKysJCXNzaXplX3QgbGVuOwor KworKwkJc3Bpbl9sb2NrX2lycXNhdmUoYWNiLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsK KysJCWxlbj1zbnByaW50ZihidWYsIFBBR0VfU0laRSwKKysJCQkJCSI9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT1cbiIKKysJCQkJCSJGaXJtd2FyZSBWZXJzaW9uOiAgJXNc biIKKysJCQkJCSJBZGFwdGVyIE1vZGVsOiAgICAgICAgICAgJXNcbiIKKysJCQkJCSJSZWd1 ZXN0IExlbnRoOiAgICAgICAgICAgICAgICU0ZFxuIgorKwkJCQkJIk51bWJlcnMgb2YgUXVl dWU6ICAgICAgICAgICAgJTRkXG4iCisrCQkJCQkiU0RSQU0gU2l6ZTogICAgICAgICAgICAg ICAgICAlNGRcbiIKKysJCQkJCSJJREUgQ2hhbm5lbHM6ICAgICAgICAgICAgICAgICU0ZFxu IgorKwkJCQkJIj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIiwKKysJCQkJ CWFjYi0+ZmlybV92ZXJzaW9uLAorKwkJCQkJYWNiLT5maXJtX21vZGVsLAorKwkJCQkJYWNi LT5maXJtX3JlcXVlc3RfbGVuLAorKwkJCQkJYWNiLT5maXJtX251bWJlcnNfcXVldWUsCisr CQkJCQlhY2ItPmZpcm1fc2RyYW1fc2l6ZSwKKysJCQkJCWFjYi0+ZmlybV9pZGVfY2hhbm5l bHMpOworKwkJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZShhY2ItPmhvc3QtPmhvc3RfbG9jaywg ZmxhZ3MpOworKwkJcmV0dXJuIGxlbjsKKysJfQorKwlzdGF0aWMgc3NpemVfdCBhcmNtc3Jf c2hvd19kcml2ZXJfc3RhdGUoc3RydWN0IGNsYXNzX2RldmljZSAqZGV2LCBjaGFyICpidWYp CisrCXsKKysJCXN0cnVjdCBTY3NpX0hvc3QgKmhvc3Q9Y2xhc3NfdG9fc2hvc3QoZGV2KTsK KysJCXN0cnVjdCBBZGFwdGVyQ29udHJvbEJsb2NrICphY2I9KHN0cnVjdCBBZGFwdGVyQ29u dHJvbEJsb2NrICopaG9zdC0+aG9zdGRhdGE7CisrCQlzdHJ1Y3QgTWVzc2FnZVVuaXQgX19p b21lbSAqcmVnPWFjYi0+cG11OworKwkJY2hhciAqaW9wX2Zpcm1fdmVyc2lvbj0oY2hhciAq KSgmcmVnLT5tZXNzYWdlX3J3YnVmZmVyWzE3XSk7IC8qZmlybV92ZXJzaW9uLDE3LDY4LTgz Ki8KKysJCXVuc2lnbmVkIGxvbmcgZmxhZ3M9MDsKKysJCXNzaXplX3QgbGVuOworKworKwkJ c3Bpbl9sb2NrX2lycXNhdmUoYWNiLT5ob3N0LT5ob3N0X2xvY2ssIGZsYWdzKTsKKysJCWlm KHN0cm5jbXAoaW9wX2Zpcm1fdmVyc2lvbiwiVjEuNDIiLDUpID49IDApeworKwkJCWxlbj1z bnByaW50ZihidWYsIFBBR0VfU0laRSwgCisrCQkJCQkiPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09XG4iCisrCQkJCQkiQVJDTVNSOiAlc1xuIgorKwkJCQkJIkN1cnJlbnQg Y29tbWFuZHMgcG9zdGVkOiAgICAgCSU0ZFxuIgorKwkJCQkJIk1heCBjb21tYW5kcyBwb3N0 ZWQ6ICAgICAgICAgCSU0ZFxuIgorKwkJCQkJIk1heCBzZ2wgbGVuZ3RoOiAgICAgICAgICAg ICAgCSU0ZFxuIgorKwkJCQkJIk1heCBzZWN0b3IgY291bnQ6ICAgICAgICAgICAgCSU0ZFxu IgorKwkJCQkJIlNDU0kgSG9zdCBSZXNldHM6ICAgICAgICAgICAgCSU0ZFxuIgorKwkJCQkJ IlNDU0kgQWJvcnRzL1RpbWVvdXRzOiAgICAgICAgCSU0ZFxuIgorKwkJCQkJIj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PVxuIiwKKysJCQkJCUFSQ01TUl9EUklWRVJfVkVS U0lPTiwKKysJCQkJCWF0b21pY19yZWFkKCZhY2ItPmNjYm91dHN0YW5kaW5nY291bnQpLAor KwkJCQkJQVJDTVNSX01BWF9PVVRTVEFORElOR19DTUQsCisrCQkJCQlBUkNNU1JfTUFYX1NH X0VOVFJJRVMsCisrCQkJCQlBUkNNU1JfTUFYX1hGRVJfU0VDVE9SU19CLAorKwkJCQkJYWNi LT5udW1fcmVzZXRzLAorKwkJCQkJYWNiLT5udW1fYWJvcnRzKTsKKysJCX0gZWxzZSB7Cisr CQlsZW49c25wcmludGYoYnVmLCBQQUdFX1NJWkUsIAorKwkJCQkJIj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PVxuIgorKwkJCQkJIkFSQ01TUjogJXNcbiIKKysJCQkJCSJD dXJyZW50IGNvbW1hbmRzIHBvc3RlZDogICAgICU0ZFxuIgorKwkJCQkJIk1heCBjb21tYW5k cyBwb3N0ZWQ6ICAgICAgICAgJTRkXG4iCisrCQkJCQkiTWF4IHNnbCBsZW5ndGg6ICAgICAg ICAgICAgICAlNGRcbiIKKysJCQkJCSJNYXggc2VjdG9yIGNvdW50OiAgICAgICAgICAgICU0 ZFxuIgorKwkJCQkJIlNDU0kgSG9zdCBSZXNldHM6ICAgICAgICAgICAgJTRkXG4iCisrCQkJ CQkiU0NTSSBBYm9ydHMvVGltZW91dHM6ICAgICAgICAlNGRcbiIKKysJCQkJCSI9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiIsCisrCQkJCQlBUkNNU1JfRFJJVkVSX1ZF UlNJT04sCisrCQkJCQlhdG9taWNfcmVhZCgmYWNiLT5jY2JvdXRzdGFuZGluZ2NvdW50KSwK KysJCQkJCUFSQ01TUl9NQVhfT1VUU1RBTkRJTkdfQ01ELAorKwkJCQkJQVJDTVNSX01BWF9T R19FTlRSSUVTLAorKwkJCQkJQVJDTVNSX01BWF9YRkVSX1NFQ1RPUlMsCisrCQkJCQlhY2It Pm51bV9yZXNldHMsCisrCQkJCQlhY2ItPm51bV9hYm9ydHMpOworKwkJfQorKwkJc3Bpbl91 bmxvY2tfaXJxcmVzdG9yZShhY2ItPmhvc3QtPmhvc3RfbG9jaywgZmxhZ3MpOworKwkJcmV0 dXJuIGxlbjsKKysJfSAKKysJc3RhdGljIHN0cnVjdCBjbGFzc19kZXZpY2VfYXR0cmlidXRl IGFyY21zcl9maXJtd2FyZV9pbmZvX2F0dHI9CisrCXsKKysJCS5hdHRyPXsKKysJCQkubmFt ZT0iZmlybXdhcmVfaW5mbyIsCisrCQkJLm1vZGU9U19JUlVHTywgCisrCQl9LAorKwkJLnNo b3cJPWFyY21zcl9zaG93X2Zpcm13YXJlX2luZm8sCisrCX07CisrCXN0YXRpYyBzdHJ1Y3Qg Y2xhc3NfZGV2aWNlX2F0dHJpYnV0ZSBhcmNtc3JfZHJpdmVyX3N0YXRlX2F0dHI9CisrCXsK KysJCS5hdHRyPXsKKysJCQkubmFtZT0iZHJpdmVyX3N0YXRlIiwKKysJCQkubW9kZT1TX0lS VUdPLAorKwkJfSwKKysJCS5zaG93PWFyY21zcl9zaG93X2RyaXZlcl9zdGF0ZQorKwl9OyAg CisrCXN0YXRpYyBzdHJ1Y3QgY2xhc3NfZGV2aWNlX2F0dHJpYnV0ZSAqYXJjbXNyX3Njc2lf aG9zdF9hdHRyW109CisrCXsKKysJCSZhcmNtc3JfZmlybXdhcmVfaW5mb19hdHRyLAorKwkJ JmFyY21zcl9kcml2ZXJfc3RhdGVfYXR0ciwKKysJCU5VTEwKKysJfTsKKysJI2lmIExJTlVY X1ZFUlNJT05fQ09ERSA+PSBLRVJORUxfVkVSU0lPTigyLDYsMTEpCisrCQlzdGF0aWMgaW50 IGFyY21zcl9hZGp1c3RfZGlza19xdWV1ZV9kZXB0aChzdHJ1Y3Qgc2NzaV9kZXZpY2UgKnNk ZXYsaW50IHF1ZXVlX2RlcHRoKQorKwkJeworKwkJCWlmKHF1ZXVlX2RlcHRoID4gQVJDTVNS X01BWF9DTURfUEVSTFVOKQorKwkJCXsKKysJCQkJcXVldWVfZGVwdGg9QVJDTVNSX01BWF9D TURfUEVSTFVOOworKwkJCX0KKysJCQlzY3NpX2FkanVzdF9xdWV1ZV9kZXB0aChzZGV2LCBN U0dfT1JERVJFRF9UQUcsIHF1ZXVlX2RlcHRoKTsKKysJCQlyZXR1cm4gcXVldWVfZGVwdGg7 CisrCQl9CisrICAgICNlbHNlCisrCQlzdGF0aWMgc3NpemVfdCBhcmNtc3JfYWRqdXN0X2Rp c2tfcXVldWVfZGVwdGgoc3RydWN0IGRldmljZSAqZGV2LCBjb25zdCBjaGFyICpidWYsIHNp emVfdCBjb3VudCkKKysJCXsKKysJCQlpbnQgcXVldWVfZGVwdGg7CisrCQkJc3RydWN0IHNj c2lfZGV2aWNlICpzZGV2ID0gdG9fc2NzaV9kZXZpY2UoZGV2KTsKKysKKysJCQlxdWV1ZV9k ZXB0aCA9IHNpbXBsZV9zdHJ0b3VsKGJ1ZiwgTlVMTCwgMCk7CisrCQkJaWYocXVldWVfZGVw dGggPiBBUkNNU1JfTUFYX0NNRF9QRVJMVU4pCisrCQkJCXJldHVybiAtRUlOVkFMOworKwkJ CXNjc2lfYWRqdXN0X3F1ZXVlX2RlcHRoKHNkZXYsIE1TR19PUkRFUkVEX1RBRywgcXVldWVf ZGVwdGgpOworKwkJCXJldHVybiBjb3VudDsKKysJCX0KKysJCXN0YXRpYyBzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZSBhcmNtc3JfcXVldWVfZGVwdGhfYXR0ciA9IAorKwkJeworKwkJCS5h dHRyID0geworKwkJCQkubmFtZSA9CSJxdWV1ZV9kZXB0aCIsCisrCQkJCS5tb2RlID0JU19J UlVTUiB8IFNfSVdVU1IsCisrCQkJfSwKKysJCQkuc3RvcmUgPSBhcmNtc3JfYWRqdXN0X2Rp c2tfcXVldWVfZGVwdGgKKysJCX07CisrCQlzdGF0aWMgc3RydWN0IGRldmljZV9hdHRyaWJ1 dGUgKmFyY21zcl9zY3NpX2RldmljZV9hdHRyW10gPSAKKysJCXsKKysJCQkmYXJjbXNyX3F1 ZXVlX2RlcHRoX2F0dHIsCisrCQkJTlVMTCwKKysJCX07CisrICAgICNlbmRpZgorKwlzdGF0 aWMgc3RydWN0IHNjc2lfaG9zdF90ZW1wbGF0ZSBhcmNtc3Jfc2NzaV9ob3N0X3RlbXBsYXRl ID0geworKwkJICAgIC5tb2R1bGUgICAgICAgICAgICAgICAgID0gVEhJU19NT0RVTEUsCisr CQkJLnByb2NfbmFtZQkgICAgICAgICAgICA9ICJhcmNtc3IiLAorKyAgICAJCS5wcm9jX2lu Zm8JICAgICAgICAgICAgPSBhcmNtc3JfcHJvY19pbmZvLAorKyAgICAJCS5uYW1lCQkgICAg ICAgICAgICA9ICJBUkNNU1IgQVJFQ0EgU0FUQSBSQUlEIEhPU1QgQWRhcHRlciIgQVJDTVNS X0RSSVZFUl9WRVJTSU9OLCAgLyogKm5hbWUgKi8KKysgICAgCQkucmVsZWFzZQkgICAgICAg ICAgICA9IGFyY21zcl9yZWxlYXNlLAorKwkJLmluZm8gICAgICAgICAgICAgICAgICAgPSBh cmNtc3JfaW5mbywKKysgICAgCQkucXVldWVjb21tYW5kCSAgICAgICAgPSBhcmNtc3JfcXVl dWVfY29tbWFuZCwKKysJCS5laF9hYm9ydF9oYW5kbGVyICAgICAgID0gYXJjbXNyX2Fib3J0 LAorKwkJLmVoX2RldmljZV9yZXNldF9oYW5kbGVyPSBOVUxMLAkKKysJCS5laF9idXNfcmVz ZXRfaGFuZGxlciAgID0gYXJjbXNyX2J1c19yZXNldCwKKysJCS5laF9ob3N0X3Jlc2V0X2hh bmRsZXIgID0gTlVMTCwJCisrICAgICAJCS5iaW9zX3BhcmFtCSAgICAgICAgICAgID0gYXJj bXNyX2Jpb3NfcGFyYW0sCQorKyAgICAJCS5jYW5fcXVldWUJICAgICAgICAgICAgPSBBUkNN U1JfTUFYX09VVFNUQU5ESU5HX0NNRCwKKysgICAgCQkudGhpc19pZAkgICAgICAgICAgICA9 IEFSQ01TUl9TQ1NJX0lOSVRJQVRPUl9JRCwKKysgICAgCQkuc2dfdGFibGVzaXplCSAgICAg ICAgPSBBUkNNU1JfTUFYX1NHX0VOVFJJRVMsIAorKwkJLm1heF9zZWN0b3JzICAgIAkgICAg PSBBUkNNU1JfTUFYX1hGRVJfU0VDVE9SUywgCisrICAgIAkJLmNtZF9wZXJfbHVuCSAgICAg ICAgPSBBUkNNU1JfTUFYX0NNRF9QRVJMVU4sCQorKyAgICAgCQkudW5jaGVja2VkX2lzYV9k bWEgICAgICA9IDAsCisrCQkJLnVzZV9jbHVzdGVyaW5nCSAgICAgICAgPSBFTkFCTEVfQ0xV U1RFUklORywKKysJCQkuc2hvc3RfYXR0cnMJCSAgICA9IGFyY21zcl9zY3NpX2hvc3RfYXR0 ciwKKysJCSNpZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiw2LDEx KQorKwkJCS5jaGFuZ2VfcXVldWVfZGVwdGgJICAgID1hcmNtc3JfYWRqdXN0X2Rpc2tfcXVl dWVfZGVwdGgsCisrICAgICAgICAjZWxzZQorKwkJCS5zZGV2X2F0dHJzCQkgICAgICAgID0g YXJjbXNyX3Njc2lfZGV2aWNlX2F0dHIsCisrICAgICAgICAjZW5kaWYKKysJfTsKKysjZWxp ZiBMSU5VWF9WRVJTSU9OX0NPREUgPj0gS0VSTkVMX1ZFUlNJT04oMiwzLDMwKQorKwlleHRl cm4gaW50IGFyY21zcl9kZXRlY3QoU2NzaV9Ib3N0X1RlbXBsYXRlICopOworKwlleHRlcm4g aW50IGFyY21zcl9zY2hlZHVsZV9jb21tYW5kKHN0cnVjdCBzY3NpX2NtbmQgKiAgcGNtZCk7 CisrICAgIGV4dGVybiBpbnQgYXJjbXNyX3Byb2NfaW5mbyhjaGFyICogYnVmZmVyLGNoYXIg Kiogc3RhcnQsb2ZmX3Qgb2Zmc2V0LGludCBsZW5ndGgsaW50IGhvc3RubyxpbnQgaW5vdXQp OworKwlleHRlcm4gaW50IGFyY21zcl9iaW9zX3BhcmFtKERpc2sgKiwga2Rldl90ICwgaW50 IFtdKTsKKysKKysJc3RhdGljIFNjc2lfSG9zdF9UZW1wbGF0ZSBkcml2ZXJfdGVtcGxhdGUg PSB7CisrCQkJLnByb2NfbmFtZQkgICAgICAgICAgICA9ICJhcmNtc3IiLAorKyAgICAJCS5w cm9jX2luZm8JICAgICAgICAgICAgPSBhcmNtc3JfcHJvY19pbmZvLAorKyAgICAJCS5uYW1l CQkgICAgICAgICAgICA9ICJBUkNNU1IgQVJFQ0EgU0FUQSBSQUlEIEhPU1QgQWRhcHRlciIg QVJDTVNSX0RSSVZFUl9WRVJTSU9OLCAgLyogKm5hbWUgKi8KKysgICAgCQkuZGV0ZWN0CQkg ICAgICAgICAgICA9IGFyY21zcl9kZXRlY3QsCisrICAgIAkJLnJlbGVhc2UJICAgICAgICAg ICAgPSBhcmNtc3JfcmVsZWFzZSwKKysJCS5pbmZvICAgICAgICAgICAgICAgICAgID0gYXJj bXNyX2luZm8sCisrCQkuY29tbWFuZCAgICAgICAgICAgICAgICA9IGFyY21zcl9zY2hlZHVs ZV9jb21tYW5kLAorKyAgICAJCS5xdWV1ZWNvbW1hbmQJICAgICAgICA9IGFyY21zcl9xdWV1 ZV9jb21tYW5kLAorKwkJLmVoX2Fib3J0X2hhbmRsZXIgICAgICAgPSBhcmNtc3JfYWJvcnQs CisrCQkuZWhfZGV2aWNlX3Jlc2V0X2hhbmRsZXI9IE5VTEwsCQorKwkJLmVoX2J1c19yZXNl dF9oYW5kbGVyICAgPSBhcmNtc3JfYnVzX3Jlc2V0LAorKwkJLmVoX2hvc3RfcmVzZXRfaGFu ZGxlciAgPSBOVUxMLAkKKysgICAgIAkJLmJpb3NfcGFyYW0JICAgICAgICAgICAgPSBhcmNt c3JfYmlvc19wYXJhbSwJCisrICAgIAkJLmNhbl9xdWV1ZQkgICAgICAgICAgICA9IEFSQ01T Ul9NQVhfT1VUU1RBTkRJTkdfQ01ELAorKyAgICAJCS50aGlzX2lkCSAgICAgICAgICAgID0g QVJDTVNSX1NDU0lfSU5JVElBVE9SX0lELAorKyAgICAJCS5zZ190YWJsZXNpemUJICAgICAg ICA9IEFSQ01TUl9NQVhfU0dfRU5UUklFUywgCisrCQkubWF4X3NlY3RvcnMgICAgCSAgICA9 IEFSQ01TUl9NQVhfWEZFUl9TRUNUT1JTLCAKKysgICAgCQkuY21kX3Blcl9sdW4JICAgICAg ICA9IEFSQ01TUl9NQVhfQ01EX1BFUkxVTiwJCisrICAgICAJCS51bmNoZWNrZWRfaXNhX2Rt YSAgICAgID0gMCwKKysgICAgCQkudXNlX2NsdXN0ZXJpbmcJICAgICAgICA9IERJU0FCTEVf Q0xVU1RFUklORywKKysJCX07CisrCQkjaW5jbHVkZSAiL3Vzci9zcmMvbGludXgvZHJpdmVy cy9zY3NpL3Njc2lfbW9kdWxlLmMiCisrI2Vsc2UgLyogS0VSTkVMX1ZFUlNJT04oMiwyLHh4 KSAqLworKyAgICBleHRlcm4gaW50IGFyY21zcl9kZXRlY3QoU2NzaV9Ib3N0X1RlbXBsYXRl ICopOworKyAgICBleHRlcm4gaW50IGFyY21zcl9zY2hlZHVsZV9jb21tYW5kKHN0cnVjdCBz Y3NpX2NtbmQgKiAgcGNtZCk7CisrICAgIGV4dGVybiBpbnQgYXJjbXNyX3Byb2NfaW5mbyhj aGFyICogYnVmZmVyLGNoYXIgKiogc3RhcnQsb2ZmX3Qgb2Zmc2V0LGludCBsZW5ndGgsaW50 IGhvc3RubyxpbnQgaW5vdXQpOworKwlleHRlcm4gaW50IGFyY21zcl9iaW9zX3BhcmFtKERp c2sgKiwga2Rldl90ICwgaW50IFtdKTsKKysKKysJI2RlZmluZSBBUkNNU1IJewkJCQkJCSAg ICAgICAgXAorKwkJcHJvY19kaXI6ICAgICAgICAgICAgICAgICAgICAgTlVMTCwJCQlcCisr CQlwcm9jX2luZm86ICAgICAgICAgICAgICAgICAgICBhcmNtc3JfcHJvY19pbmZvLAkJCVwK KysJCW5hbWU6ICAgICAgICAgICAgICAgICAgICAgICAgICJBUkNNU1IgQVJFQ0EgU0FUQSBS QUlEIEhPU1QgQWRhcHRlciIgQVJDTVNSX0RSSVZFUl9WRVJTSU9OLCAgLyogKm5hbWUgKi8g XAorKwkJZGV0ZWN0OiAgICAgICAgICAgICAgICAgICAgICAgYXJjbXNyX2RldGVjdCwJCQkJ CVwKKysJCXJlbGVhc2U6ICAgICAgICAgICAgICAgICAgICAgIGFyY21zcl9yZWxlYXNlLAkJ CQlcCisrCQlpbmZvOiAgICAgICAgICAgICAgICAgICAgICAgICBhcmNtc3JfaW5mbywJCQkJ CVwKKysJCWNvbW1hbmQ6ICAgICAgICAgICAgICAgICAgICAgIGFyY21zcl9zY2hlZHVsZV9j b21tYW5kLAkJCQkJCVwKKysJCXF1ZXVlY29tbWFuZDogICAgICAgICAgICAgICAgIGFyY21z cl9xdWV1ZV9jb21tYW5kLAkJCQlcCisrCQllaF9hYm9ydF9oYW5kbGVyOiAgICAgICAgICAg ICBhcmNtc3JfYWJvcnQsCQkJCQlcCisrCQllaF9kZXZpY2VfcmVzZXRfaGFuZGxlcjogICAg ICBOVUxMLAkJCQlcCisrCQllaF9idXNfcmVzZXRfaGFuZGxlcjogICAgICAgICBhcmNtc3Jf YnVzX3Jlc2V0LAkJCQlcCisrCQllaF9ob3N0X3Jlc2V0X2hhbmRsZXI6ICAgICAgICBOVUxM LAkJCQlcCisrCQlhYm9ydDogICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAkJCQkJXAor KwkJcmVzZXQ6ICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwJCQkJCVwKKysJCXNsYXZl X2F0dGFjaDogICAgICAgICAgICAgICAgIE5VTEwsCQkJCQlcCisrCQliaW9zX3BhcmFtOiAg ICAgICAgICAgICAgICAgICBhcmNtc3JfYmlvc19wYXJhbSwJCQkJXAorKwkJY2FuX3F1ZXVl OiAgICAgICAgICAgICAgICAgICAgQVJDTVNSX01BWF9PVVRTVEFORElOR19DTUQsXAorKwkJ dGhpc19pZDogICAgICAgICAgICAgICAgICAgICAgQVJDTVNSX1NDU0lfSU5JVElBVE9SX0lE LAkJXAorKwkJc2dfdGFibGVzaXplOiAgICAgICAgICAgICAgICAgQVJDTVNSX01BWF9TR19F TlRSSUVTLAlcCisrCQljbWRfcGVyX2x1bjogICAgICAgICAgICAgICAgICBBUkNNU1JfTUFY X0NNRF9QRVJMVU4sCQlcCisrCQl1c2VfbmV3X2VoX2NvZGU6ICAgICAgICAgICAgICAxLAkJ CQlcCisrCQl1bmNoZWNrZWRfaXNhX2RtYTogICAgICAgICAgICAwLAlcCisrCQl1c2VfY2x1 c3RlcmluZzogICAgICAgICAgICAgICBESVNBQkxFX0NMVVNURVJJTkcJXAorKwl9CisrCSNp ZmRlZiBNT0RVTEUKKysJCS8qIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGdvIGludG8gYW4gaW5j bHVkZSBmaWxlLCBidXQgdGhpcyB3aWxsIGJlIGxhdGVyICovCisrCQlTY3NpX0hvc3RfVGVt cGxhdGUgZHJpdmVyX3RlbXBsYXRlID0gQVJDTVNSOworKwkJI2luY2x1ZGUgInNjc2lfbW9k dWxlLmMiCisrCSNlbmRpZgorKyNlbmRpZgorZGlmZiAtcHJ1TiAuLi9vcmlnLWxpbnV4LTIu Ni4xOC9kcml2ZXJzL3Njc2kvYXJjbXNyL0tjb25maWcuYXJjbXNyIC4vZHJpdmVycy9zY3Np L2FyY21zci9LY29uZmlnLmFyY21zcgorLS0tIC4uL29yaWctbGludXgtMi42LjE4L2RyaXZl cnMvc2NzaS9hcmNtc3IvS2NvbmZpZy5hcmNtc3IJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKKysrKyAuL2RyaXZlcnMvc2NzaS9hcmNtc3IvS2NvbmZpZy5hcmNtc3IJ MjAwNy0xMS0xNiAxMzoxNzozNS44NzcxMzYxMTIgKzAxMDAKK0BAIC0wLDAgKzEsMjUgQEAK Kytjb25maWcgU0NTSV9BUkNNU1IKKysJdHJpc3RhdGUgIkFSRUNBIEFSQzExWDBbUENJLVhd L0FSQzEyWDBbUENJLUVYUFJFU1NdIFNBVEEtUkFJRCBzdXBwb3J0IgorKwlkZXBlbmRzIG9u ICBQQ0kgJiYgU0NTSQorKwlkZWZhdWx0IG0KKysJaGVscAorKwkgIFRoaXMgZHJpdmVyIHN1 cHBvcnRzIGFsbCBvZiBBUkVDQSdzIFNBVEEgUkFJRCBjb250cm9sbGVycyBjYXJkcy4KKysJ ICBUaGlzIGlzIGFuIEFSRUNBIG1haW50YWluZWQgZHJpdmVyIGJ5IEVyaWNoIENoZW4uIElm IHlvdSBoYXZlIGFueQorKwkgIHByb2JsZW1zLCBwbGVhc2UgbWFpbCB0byA8ZXJpY2hAYXJl Y2EuY29tLnR3Pi4KKysJICBBcmVjYSBzdXBvcnRzIGl0cyBMaW51eCBSQUlEIE1hbmFnZW1l bnQgVG9vbHMKKysJICBQbGVhc2UgY29udGFjdCA8IGh0dHA6Ly93d3cuYXJlY2EuY29tLnR3 ID4KKysJCQkgPCAgZnRwOi8vZnRwLmFyZWNhLmNvbS50dyA+CisrCSAgVG8gY29tcGlsZSB0 aGlzIGRyaXZlciBhcyBhIG1vZHVsZSwgY2hvb3NlIE0gaGVyZTogdGhlCisrCSAgbW9kdWxl IHdpbGwgYmUgY2FsbGVkIGFyY21zci4KKysJICBEcml2ZXIgVmVyc2lvbjogYXJjbXNyIDEu MjAuMFguMTQgMjAwNy8wNy8xNworKworK2NvbmZpZyBTQ1NJX0FSQ01TUl9NU0kKKysJYm9v bCAiVXNlIFBDSSBtZXNzYWdlIHNpZ25hbCBpbnRlcnJ1cHQiCisrCWRlcGVuZHMgb24gUENJ X01TSSAmJiBTQ1NJX0FSQ01TUgorKwlkZWZhdWx0IG4KKysJaGVscAorKwkgIElmIHlvdSBz YXkgWSBoZXJlLiAgWW91IHdpbGwgZW5hYmxlIFBDSSBNZXNzYWdlIHNpZ25hbGVkIEludGVy cnVwdHMKKysJICBmdW5jdGlvbiwgYnV0IHNvbWUgbWFjaGluZXMgbWF5IGhhdmUgcHJvYmxl bXMuICBJZiB5b3UgZ2V0CisrCSAgYWJvcnQgY29tbWFuZCBvbiBkcml2ZXIgaW5pdGlhbGl6 ZSwgeW91IGhhdmUgdG8gYW5zd2VyIFkgaGVyZS4KKysJICBJZiB0aGUgSVJRIHByb2JsZW0g ZXZlbiB3b3JzZSwKKysJICBwbGVhc2UgcmVwb3J0IHRoZSBwcm9ibGVtIHRvIHRoZSBtYWlu dGFpbmVyLgorZGlmZiAtcHJ1TiAuLi9vcmlnLWxpbnV4LTIuNi4xOC9kcml2ZXJzL3Njc2kv YXJjbXNyL01ha2VmaWxlIC4vZHJpdmVycy9zY3NpL2FyY21zci9NYWtlZmlsZQorLS0tIC4u L29yaWctbGludXgtMi42LjE4L2RyaXZlcnMvc2NzaS9hcmNtc3IvTWFrZWZpbGUJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyAuL2RyaXZlcnMvc2NzaS9hcmNt c3IvTWFrZWZpbGUJMjAwNC0wOC0zMSAxNDozMDozNi4wMDAwMDAwMDAgKzAyMDAKK0BAIC0w LDAgKzEsOCBAQAorKyMgRmlsZTogZHJpdmVycy9hcmNtc3IvTWFrZWZpbGUKKysjIE1ha2Vm aWxlIGZvciB0aGUgQVJFQ0EgUENJLVggUENJLUVYUFJFU1MgU0FUQSBSQUlEIGNvbnRyb2xs ZXJzIFNDU0kgZHJpdmVyLgorKworK29iai0kKENPTkZJR19TQ1NJX0FSQ01TUikgOj0gYXJj bXNyLm8KKysKKytFWFRSQV9DRkxBR1MgKz0gLUkuCisrCisrCitkaWZmIC1wcnVOIC4uL29y aWctbGludXgtMi42LjE4L2RyaXZlcnMvc2NzaS9LY29uZmlnIC4vZHJpdmVycy9zY3NpL0tj b25maWcKKy0tLSAuLi9vcmlnLWxpbnV4LTIuNi4xOC9kcml2ZXJzL3Njc2kvS2NvbmZpZwky MDA2LTA5LTIwIDA1OjQyOjA2LjAwMDAwMDAwMCArMDIwMAorKysrIC4vZHJpdmVycy9zY3Np L0tjb25maWcJMjAwNy0xMS0xNiAxMzoxMjozNC40MjMxMjQ3OTMgKzAxMDAKK0BAIC00MzIs NiArNDMyLDggQEAgY29uZmlnIFNDU0lfQUlDN1hYWF9PTEQKKyAKKyBzb3VyY2UgImRyaXZl cnMvc2NzaS9haWM3eHh4L0tjb25maWcuYWljNzl4eCIKKyAKKytzb3VyY2UgImRyaXZlcnMv c2NzaS9hcmNtc3IvS2NvbmZpZy5hcmNtc3IiCisrCisgIyBBbGwgdGhlIEkyTyBjb2RlIGFu ZCBkcml2ZXJzIGRvIG5vdCBzZWVtIHRvIGJlIDY0Yml0IHNhZmUuCisgY29uZmlnIFNDU0lf RFBUX0kyTworIAl0cmlzdGF0ZSAiQWRhcHRlYyBJMk8gUkFJRCBzdXBwb3J0ICIKK2RpZmYg LXBydU4gLi4vb3JpZy1saW51eC0yLjYuMTgvZHJpdmVycy9zY3NpL01ha2VmaWxlIC4vZHJp dmVycy9zY3NpL01ha2VmaWxlCistLS0gLi4vb3JpZy1saW51eC0yLjYuMTgvZHJpdmVycy9z Y3NpL01ha2VmaWxlCTIwMDYtMDktMjAgMDU6NDI6MDYuMDAwMDAwMDAwICswMjAwCisrKysg Li9kcml2ZXJzL3Njc2kvTWFrZWZpbGUJMjAwNy0xMS0xNiAxMzoxMTowNi45MzY0NzE1NDAg KzAxMDAKK0BAIC02Nyw2ICs2Nyw3IEBAIG9iai0kKENPTkZJR19TQ1NJX0FJQzdYWFgpCSs9 IGFpYzd4eHgvCisgb2JqLSQoQ09ORklHX1NDU0lfQUlDNzlYWCkJKz0gYWljN3h4eC8KKyBv YmotJChDT05GSUdfU0NTSV9BQUNSQUlEKQkrPSBhYWNyYWlkLworIG9iai0kKENPTkZJR19T Q1NJX0FJQzdYWFhfT0xEKQkrPSBhaWM3eHh4X29sZC5vCisrb2JqLSQoQ09ORklHX1NDU0lf QVJDTVNSKQkrPSBhcmNtc3IvCisgb2JqLSQoQ09ORklHX1NDU0lfSVBTKQkJKz0gaXBzLm8K KyBvYmotJChDT05GSUdfU0NTSV9GRF9NQ1MpCSs9IGZkX21jcy5vCisgb2JqLSQoQ09ORklH X1NDU0lfRlVUVVJFX0RPTUFJTikrPSBmZG9tYWluLm8KZGlmZiAtcHJ1TiAuL29yaWctcGF0 Y2hlcy9saW51eC0yLjYuMTgvc2VyaWVzIC4vcGF0Y2hlcy9saW51eC0yLjYuMTgvc2VyaWVz Ci0tLSAuL29yaWctcGF0Y2hlcy9saW51eC0yLjYuMTgvc2VyaWVzCTIwMDctMTEtMTYgMTQ6 MDU6MDUuOTQyMzQwNzg0ICswMTAwCisrKyAuL3BhdGNoZXMvbGludXgtMi42LjE4L3Nlcmll cwkyMDA3LTExLTE2IDE0OjAzOjUyLjk1MzQ3NTAwMCArMDEwMApAQCAtMjIsMyArMjIsNCBA QCBzb2Z0bG9ja3VwLW5vLWlkbGUtaHoucGF0Y2gKIGFsbG93LWkzODYtY3Jhc2gta2VybmVs cy10by1oYW5kbGUteDg2XzY0LWR1bXBzLnBhdGNoCiBhbGxvdy1pMzg2LWNyYXNoLWtlcm5l bHMtdG8taGFuZGxlLXg4Nl82NC1kdW1wcy1maXgucGF0Y2gKIGdpdC01ZWU3NzM3Mzc5YjFk N2YwYzk3N2MwZjE2NjFmYmFmMDFhOGQ0NzIxLnBhdGNoCithZGRfZHJpdmVycy1zY3NpLWFy Y21zci5wYXRjaApkaWZmIC1wcnVOIC4vYnVpbGRjb25maWdzLm9yaWcvbGludXgtZGVmY29u ZmlnX3hlbjBfeDg2XzMyIC4vYnVpbGRjb25maWdzL2xpbnV4LWRlZmNvbmZpZ194ZW4wX3g4 Nl8zMgotLS0gLi9idWlsZGNvbmZpZ3Mub3JpZy9saW51eC1kZWZjb25maWdfeGVuMF94ODZf MzIJMjAwNy0xMS0xNiAxMDoyOToxOS40MTc0MTQwMDAgKzAxMDAKKysrIC4vYnVpbGRjb25m aWdzL2xpbnV4LWRlZmNvbmZpZ194ZW4wX3g4Nl8zMgkyMDA3LTExLTE2IDE1OjE4OjQzLjc2 ODM3Mzc5OCArMDEwMApAQCAtNTY0LDYgKzU2NCw3IEBAIENPTkZJR19BSUM3OVhYX0RFQlVH X01BU0s9MAogQ09ORklHX0FJQzc5WFhfUkVHX1BSRVRUWV9QUklOVD15CiAjIENPTkZJR19T Q1NJX0RQVF9JMk8gaXMgbm90IHNldAogQ09ORklHX1NDU0lfQURWQU5TWVM9eQorQ09ORklH X1NDU0lfQVJDTVNSPXkKIENPTkZJR19NRUdBUkFJRF9ORVdHRU49eQogIyBDT05GSUdfTUVH QVJBSURfTU0gaXMgbm90IHNldAogIyBDT05GSUdfTUVHQVJBSURfTEVHQUNZIGlzIG5vdCBz ZXQKZGlmZiAtcHJ1TiAuL2J1aWxkY29uZmlncy5vcmlnL2xpbnV4LWRlZmNvbmZpZ194ZW4w X3g4Nl82NCAuL2J1aWxkY29uZmlncy9saW51eC1kZWZjb25maWdfeGVuMF94ODZfNjQKLS0t IC4vYnVpbGRjb25maWdzLm9yaWcvbGludXgtZGVmY29uZmlnX3hlbjBfeDg2XzY0CTIwMDct MTEtMTYgMTA6Mjk6MTkuNDE3NDE0MDAwICswMTAwCisrKyAuL2J1aWxkY29uZmlncy9saW51 eC1kZWZjb25maWdfeGVuMF94ODZfNjQJMjAwNy0xMS0xNiAxNToyMDozOS43NTA2Nzk5MjAg KzAxMDAKQEAgLTUxMiw2ICs1MTIsNyBAQCBDT05GSUdfQUlDNzlYWF9SRVNFVF9ERUxBWV9N Uz0xNTAwMAogQ09ORklHX0FJQzc5WFhfREVCVUdfRU5BQkxFPXkKIENPTkZJR19BSUM3OVhY X0RFQlVHX01BU0s9MAogQ09ORklHX0FJQzc5WFhfUkVHX1BSRVRUWV9QUklOVD15CitDT05G SUdfU0NTSV9BUkNNU1I9eQogQ09ORklHX01FR0FSQUlEX05FV0dFTj15CiAjIENPTkZJR19N RUdBUkFJRF9NTSBpcyBub3Qgc2V0CiAjIENPTkZJR19NRUdBUkFJRF9MRUdBQ1kgaXMgbm90 IHNldApkaWZmIC1wcnVOIC4vYnVpbGRjb25maWdzLm9yaWcvbGludXgtZGVmY29uZmlnX3hl bl94ODZfMzIgLi9idWlsZGNvbmZpZ3MvbGludXgtZGVmY29uZmlnX3hlbl94ODZfMzIKLS0t IC4vYnVpbGRjb25maWdzLm9yaWcvbGludXgtZGVmY29uZmlnX3hlbl94ODZfMzIJMjAwNy0x MS0xNiAxMDoyOToxOS40MTc0MTQwMDAgKzAxMDAKKysrIC4vYnVpbGRjb25maWdzL2xpbnV4 LWRlZmNvbmZpZ194ZW5feDg2XzMyCTIwMDctMTEtMTYgMTU6MTk6MDMuMjY1Mzk5NDA1ICsw MTAwCkBAIC0xMTM2LDYgKzExMzYsNyBAQCBDT05GSUdfQUlDNzlYWF9ERUJVR19NQVNLPTAK IENPTkZJR19BSUM3OVhYX1JFR19QUkVUVFlfUFJJTlQ9eQogQ09ORklHX1NDU0lfRFBUX0ky Tz1tCiBDT05GSUdfU0NTSV9BRFZBTlNZUz1tCitDT05GSUdfU0NTSV9BUkNNU1I9bQogQ09O RklHX01FR0FSQUlEX05FV0dFTj15CiBDT05GSUdfTUVHQVJBSURfTU09bQogQ09ORklHX01F R0FSQUlEX01BSUxCT1g9bQpkaWZmIC1wcnVOIC4vYnVpbGRjb25maWdzLm9yaWcvbGludXgt ZGVmY29uZmlnX3hlbl94ODZfNjQgLi9idWlsZGNvbmZpZ3MvbGludXgtZGVmY29uZmlnX3hl bl94ODZfNjQKLS0tIC4vYnVpbGRjb25maWdzLm9yaWcvbGludXgtZGVmY29uZmlnX3hlbl94 ODZfNjQJMjAwNy0xMS0xNiAxMDoyOToxOS40MTc0MTQwMDAgKzAxMDAKKysrIC4vYnVpbGRj b25maWdzL2xpbnV4LWRlZmNvbmZpZ194ZW5feDg2XzY0CTIwMDctMTEtMTYgMTU6MjA6MTEu MjU1MDI3MDc5ICswMTAwCkBAIC0xMDg2LDYgKzEwODYsNyBAQCBDT05GSUdfQUlDNzlYWF9S RVNFVF9ERUxBWV9NUz0xNTAwMAogIyBDT05GSUdfQUlDNzlYWF9ERUJVR19FTkFCTEUgaXMg bm90IHNldAogQ09ORklHX0FJQzc5WFhfREVCVUdfTUFTSz0wCiAjIENPTkZJR19BSUM3OVhY X1JFR19QUkVUVFlfUFJJTlQgaXMgbm90IHNldAorQ09ORklHX1NDU0lfQVJDTVNSPW0KIENP TkZJR19NRUdBUkFJRF9ORVdHRU49eQogQ09ORklHX01FR0FSQUlEX01NPW0KIENPTkZJR19N RUdBUkFJRF9NQUlMQk9YPW0K --------------020409060208040300020006 Content-Type: text/x-vcard; charset=utf-8; name="s_seitz.vcf" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="s_seitz.vcf" begin:vcard fn:Stephan Seitz n:Seitz;Stephan org:netz-haut e.K. adr:;;Zweierweg 22;Wuerzburg;Bayern;97074;Deutschland email;internet:s.seitz@netz-haut.de title:Senior System Administrator tel;work:+49-931-287-6247 tel;fax:+49-931-287-6248 x-mozilla-html:FALSE url:http://www.schwarz-mode.de/files/ version:2.1 end:vcard --------------020409060208040300020006-- --------------enigEAED961AEDC8A1DE70A64FE3 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHPbA+sU1z66G/Ui4RAqnzAJ9avNEp10w9G/NIdKDhvnUbpvi4QACeK99x NlQoYJ+Fx9YeoXK1Jrp0vdk= =YOfp -----END PGP SIGNATURE----- --------------enigEAED961AEDC8A1DE70A64FE3-- --===============1309616694== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --===============1309616694==--