From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-40134.protonmail.ch (mail-40134.protonmail.ch [185.70.40.134]) by mx.groups.io with SMTP id smtpd.web11.8139.1576657668463370979 for ; Wed, 18 Dec 2019 00:27:52 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@protonmail.com header.s=default header.b=lAPv7gWe; spf=pass (domain: protonmail.com, ip: 185.70.40.134, mailfrom: vit9696@protonmail.com) Date: Wed, 18 Dec 2019 08:27:40 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=default; t=1576657664; bh=AmiasqzFk6FLDhJvyH5VRAgrx2Ulm8jVtr2HY/jKNh8=; h=Date:To:From:Cc:Reply-To:Subject:In-Reply-To:References: Feedback-ID:From; b=lAPv7gWeY48WGBNR1ceWOlBdStuNg6uqgtWqeKtBTKr2OyIGFVO5OiDG89CpXkGLF jxCDrDlKg1sw1Xb/SEMhox6IZpCwWZNVoGe1Y9gxkM4oU+6a3VEn3O3huJTvV2TYLe MfjNpubKJ70cyt87+OzFE6ZLh+woa2n8pQsKrtM4= To: Zhichao Gao , devel@edk2.groups.io From: "Vitaly Cheptsov" Cc: Michael D Kinney , Liming Gao Reply-To: vit9696 Subject: Re: [PATCH V3 1/2] MdePkg/UefiDevicePathLib: Separate the device path lib Message-ID: In-Reply-To: <20191218021036.23072-2-zhichao.gao@intel.com> References: <20191218021036.23072-1-zhichao.gao@intel.com> <20191218021036.23072-2-zhichao.gao@intel.com> Feedback-ID: p9QuX-L1wMgUm6nrSvNrf8juLupNs0VSnzXGVXuYDxlEahFdWtaedWDMB9zpwGDklGt7kzs1-RBc0cqz327Gcg==:Ext:ProtonMail MIME-Version: 1.0 X-Spam-Status: No, score=-0.7 required=7.0 tests=ALL_TRUSTED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,FREEMAIL_REPLYTO_END_DIGIT,HTML_MESSAGE shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mail.protonmail.ch Content-Type: multipart/alternative; boundary="b1_95e3a1c22645a2279e2e708ddbdad07f" --b1_95e3a1c22645a2279e2e708ddbdad07f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFZpdGFseSBDaGVwdHNvdiA8dml0OTY5NkBwcm90b25tYWlsLmNvbT4KCk9u IFdlZCwgRGVjIDE4LCAyMDE5IGF0IDA1OjEwLCBaaGljaGFvIEdhbyA8emhpY2hhby5nYW9AaW50 ZWwuY29tPiB3cm90ZToKCj4gUkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hv d19idWcuY2dpP2lkPTIyOTgKPgo+IFVlZmlEZXZpY2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQYXRo UHJvdG9jb2wncyBpbXBsZW1lbnRhdGlvbiBpc24ndAo+IGZpdCBpdHMgZGVzY3JpcHRpb24uIEl0 IHNob3VsZCBiZSBpbXBsZW1lbnQgYXMgYmxvdzoKPiBUcnkgdG8gZmluZCB0aGUgRGV2aWNlUGF0 aFByb3RvY29sLCBpZiBmb3VuZCB0aGVuIHVzZSBpdCB0byBpbXBsZW1lbnQKPiB0aGUgaW50ZXJm YWNlLiBFbHNlLCB1c2UgdGhlIGxvY2FsIGludGVyZmFjZS4gSXQgc2hvdWxkIG5vdCBoYXZlIHRo ZQo+IGRlcGV4IGFuZCBBU1NFUlQgb2YgZ0VmaURldmljZVBhdGhVdGlsaXRpZXNQcm90b2NvbEd1 aWQgd2hlbiBub3QgZmluZAo+IHRoZSBEZXZpY2VQYXRoUHJvdG9jb2wuCj4KPiBBZGQgYSBtYW5k YXRvcnkgb25lIHRvIGZvcmNlIHVzaW5nIHRoZSBEZXZpY2VQYXRoVXRpbGl0aWVzLAo+IERldmlj ZVBhdGhUb1RleHQgYW5kIERldmljZVBhdGhGcm9tVGV4dCBwcm90b2NvbC4KPgo+IENjOiBNaWNo YWVsIEQgS2lubmV5IDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNvbT4KPiBDYzogTGltaW5nIEdh byA8bGltaW5nLmdhb0BpbnRlbC5jb20+Cj4gQ2M6IFZpdGFseSBDaGVwdHNvdiA8dml0OTY5NkBw cm90b25tYWlsLmNvbT4KPiBUZXN0ZWQtYnk6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRl bC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogWmhpY2hhbyBHYW8gPHpoaWNoYW8uZ2FvQGludGVsLmNv bT4KPiAtLS0KPgo+IFYyOgo+IE9wdGlvbmFsIG9uZSBzaG91bGQgYWx3YXlzIHJldHVybiBFRklf U1VDQ0VTUyBpbiBpdHMgY29uc3RydWN0b3IuCj4gQ2hhbmdlIHRoZSBkZXNjcmlwdGlvbiBvZiBv cHRpb25hbCBvbmUncyB1bmkgZmlsZS4KPiBGaXggdGhlIGNvcHlyaWdodCBkYXRlIG9mIG1hbmRh dG9yeSBvbmUncyB1bmkgZmlsZS4KPgo+IFYzOgo+IFJlbW92ZSB0aGUgU3RhdHVzIHZhcmlhYmxl IGluCj4gVWVmaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbENvbnN0cnVj dG9yLgo+IFRoZSBTdGF0dXMgd291bGQgY2F1c2UgR0NDIGJ1aWxkIGZhaWwgYmVjYXVzZSB0aGUg dmFyaWFibGUgaXMKPiBpbml0aWFsaXplZCBidXQgbm90IHVzZWQuIFNpbmNlIGl0IGlzIHVzZWxl c3MgZm9yIHRoZSBjb25zdHJ1Y3RvciwKPiBkaXJlY3RseSByZW1vdmUgaXQuCj4KPiAuLi5EZXZp Y2VQYXRoTGliTWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLmMgfCA0NjkgKysrKysrKysrKysr KysrKysrCj4gLi4udmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2wuaW5mIHwg ODYgKysrKwo+IC4uLnZpY2VQYXRoTGliTWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLnVuaSB8 IDE4ICsKPiAuLi5pRGV2aWNlUGF0aExpYk9wdGlvbmFsRGV2aWNlUGF0aFByb3RvY29sLmMgfCAy MSArLQo+IC4uLmV2aWNlUGF0aExpYk9wdGlvbmFsRGV2aWNlUGF0aFByb3RvY29sLmluZiB8IDUg Ky0KPiAuLi5ldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbC51bmkgfCA2ICst Cj4gNiBmaWxlcyBjaGFuZ2VkLCA1ODUgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCj4g Y3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlE ZXZpY2VQYXRoTGliTWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLmMKPiBjcmVhdGUgbW9kZSAx MDA2NDQgTWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJN YW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2wuaW5mCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBr Zy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGliTWFuZGF0b3J5RGV2 aWNlUGF0aFByb3RvY29sLnVuaQo+Cj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1VlZmlE ZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGliTWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29s LmMgYi9NZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0aExpYi9VZWZpRGV2aWNlUGF0aExpYk1h bmRhdG9yeURldmljZVBhdGhQcm90b2NvbC5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRl eCAwMDAwMDAwMDAwLi5mYTI3MTEwZmQ0Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL01kZVBrZy9M aWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGliTWFuZGF0b3J5RGV2aWNl UGF0aFByb3RvY29sLmMKPiBAQCAtMCwwICsxLDQ2OSBAQAo+ICsvKiogQGZpbGUKPiArIERldmlj ZSBQYXRoIHNlcnZpY2VzLiBUaGUgdGhpbmcgdG8gcmVtZW1iZXIgaXMgZGV2aWNlIHBhdGhzIGFy ZSBidWlsdCBvdXQgb2YKPiArIG5vZGVzLiBUaGUgZGV2aWNlIHBhdGggaXMgdGVybWluYXRlZCBi eSBhbiBlbmQgbm9kZSB0aGF0IGlzIGxlbmd0aAo+ICsgc2l6ZW9mKEVGSV9ERVZJQ0VfUEFUSF9Q Uk9UT0NPTCkuIFRoYXQgd291bGQgYmUgd2h5IHRoZXJlIGlzIHNpemVvZihFRklfREVWSUNFX1BB VEhfUFJPVE9DT0wpCj4gKyBhbGwgb3ZlciB0aGlzIGZpbGUuCj4gKwo+ICsgVGhlIG9ubHkgcGxh Y2Ugd2hlcmUgbXVsdGktaW5zdGFuY2UgZGV2aWNlIHBhdGhzIGFyZSBzdXBwb3J0ZWQgaXMgaW4K PiArIGVudmlyb25tZW50IHZhcmlibGVzLiBNdWx0aS1pbnN0YW5jZSBkZXZpY2UgcGF0aHMgc2hv dWxkIG5ldmVyIGJlIHBsYWNlZAo+ICsgb24gYSBIYW5kbGUuCj4gKwo+ICsgQ29weXJpZ2h0IChj KSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+Cj4gKyBT UERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudAo+ICsKPiArKiovCj4g Kwo+ICsKPiArI2luY2x1ZGUgIlVlZmlEZXZpY2VQYXRoTGliLmgiCj4gKwo+ICtHTE9CQUxfUkVN T1ZFX0lGX1VOUkVGRVJFTkNFRCBFRklfREVWSUNFX1BBVEhfVVRJTElUSUVTX1BST1RPQ09MICpt RGV2aWNlUGF0aExpYkRldmljZVBhdGhVdGlsaXRpZXMgPSBOVUxMOwo+ICtHTE9CQUxfUkVNT1ZF X0lGX1VOUkVGRVJFTkNFRCBFRklfREVWSUNFX1BBVEhfVE9fVEVYVF9QUk9UT0NPTCAqbURldmlj ZVBhdGhMaWJEZXZpY2VQYXRoVG9UZXh0ID0gTlVMTDsKPiArR0xPQkFMX1JFTU9WRV9JRl9VTlJF RkVSRU5DRUQgRUZJX0RFVklDRV9QQVRIX0ZST01fVEVYVF9QUk9UT0NPTCAqbURldmljZVBhdGhM aWJEZXZpY2VQYXRoRnJvbVRleHQgPSBOVUxMOwo+ICsKPiArLyoqCj4gKyBUaGUgY29uc3RydWN0 b3IgZnVuY3Rpb24gY2FjaGVzIHRoZSBwb2ludGVyIHRvIERldmljZVBhdGhVdGlsaXRlcyBwcm90 b2NvbCwKPiArIERldmljZVBhdGhUb1RleHQgcHJvdG9jb2wgYW5kIERldmljZVBhdGhGcm9tVGV4 dCBwcm90b2NvbC4KPiArCj4gKyBUaGUgY29uc3RydWN0b3IgZnVuY3Rpb24gbG9jYXRlcyB0aGVz ZSB0aHJlZSBwcm90b2NvbHMgZnJvbSBwcm90b2NvbCBkYXRhYmFzZS4KPiArIEl0IHdpbGwgY2Fj aGVzIHRoZSBwb2ludGVyIHRvIGxvY2FsIHByb3RvY29sIGluc3RhbmNlIGlmIHRoYXQgb3BlcmF0 aW9uIGZhaWxzCj4gKyBhbmQgaXQgd2lsbCBhbHdheXMgcmV0dXJuIEVGSV9TVUNDRVNTLgo+ICsK PiArIEBwYXJhbSBJbWFnZUhhbmRsZSBUaGUgZmlybXdhcmUgYWxsb2NhdGVkIGhhbmRsZSBmb3Ig dGhlIEVGSSBpbWFnZS4KPiArIEBwYXJhbSBTeXN0ZW1UYWJsZSBBIHBvaW50ZXIgdG8gdGhlIEVG SSBTeXN0ZW0gVGFibGUuCj4gKwo+ICsgQHJldHZhbCBFRklfU1VDQ0VTUyBUaGUgY29uc3RydWN0 b3IgYWx3YXlzIHJldHVybnMgRUZJX1NVQ0NFU1MuCj4gKwo+ICsqKi8KPiArRUZJX1NUQVRVUwo+ ICtFRklBUEkKPiArVWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2xD b25zdHJ1Y3RvciAoCj4gKyBJTiBFRklfSEFORExFIEltYWdlSGFuZGxlLAo+ICsgSU4gRUZJX1NZ U1RFTV9UQUJMRSAqU3lzdGVtVGFibGUKPiArICkKPiArewo+ICsgRUZJX1NUQVRVUyBTdGF0dXM7 Cj4gKwo+ICsgU3RhdHVzID0gZ0JTLT5Mb2NhdGVQcm90b2NvbCAoCj4gKyAmZ0VmaURldmljZVBh dGhVdGlsaXRpZXNQcm90b2NvbEd1aWQsCj4gKyBOVUxMLAo+ICsgKFZPSUQqKikgJm1EZXZpY2VQ YXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcwo+ICsgKTsKPiArIEFTU0VSVF9FRklfRVJST1IgKFN0 YXR1cyk7Cj4gKyBBU1NFUlQgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcyAhPSBO VUxMKTsKPiArCj4gKyBTdGF0dXMgPSBnQlMtPkxvY2F0ZVByb3RvY29sICgKPiArICZnRWZpRGV2 aWNlUGF0aFRvVGV4dFByb3RvY29sR3VpZCwKPiArIE5VTEwsCj4gKyAoVk9JRCoqKSAmbURldmlj ZVBhdGhMaWJEZXZpY2VQYXRoVG9UZXh0Cj4gKyApOwo+ICsgQVNTRVJUX0VGSV9FUlJPUiAoU3Rh dHVzKTsKPiArIEFTU0VSVCAobURldmljZVBhdGhMaWJEZXZpY2VQYXRoVG9UZXh0ICE9IE5VTEwp Owo+ICsKPiArIFN0YXR1cyA9IGdCUy0+TG9jYXRlUHJvdG9jb2wgKAo+ICsgJmdFZmlEZXZpY2VQ YXRoRnJvbVRleHRQcm90b2NvbEd1aWQsCj4gKyBOVUxMLAo+ICsgKFZPSUQqKikgJm1EZXZpY2VQ YXRoTGliRGV2aWNlUGF0aEZyb21UZXh0Cj4gKyApOwo+ICsgQVNTRVJUX0VGSV9FUlJPUiAoU3Rh dHVzKTsKPiArIEFTU0VSVCAobURldmljZVBhdGhMaWJEZXZpY2VQYXRoRnJvbVRleHQgIT0gTlVM TCk7Cj4gKwo+ICsgcmV0dXJuIFN0YXR1czsKPiArfQo+ICsKPiArLyoqCj4gKyBSZXR1cm5zIHRo ZSBzaXplIG9mIGEgZGV2aWNlIHBhdGggaW4gYnl0ZXMuCj4gKwo+ICsgVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIHRoZSBzaXplLCBpbiBieXRlcywgb2YgdGhlIGRldmljZSBwYXRoIGRhdGEgc3RydWN0 dXJlCj4gKyBzcGVjaWZpZWQgYnkgRGV2aWNlUGF0aCBpbmNsdWRpbmcgdGhlIGVuZCBvZiBkZXZp Y2UgcGF0aCBub2RlLgo+ICsgSWYgRGV2aWNlUGF0aCBpcyBOVUxMIG9yIGludmFsaWQsIHRoZW4g MCBpcyByZXR1cm5lZC4KPiArCj4gKyBAcGFyYW0gRGV2aWNlUGF0aCBBIHBvaW50ZXIgdG8gYSBk ZXZpY2UgcGF0aCBkYXRhIHN0cnVjdHVyZS4KPiArCj4gKyBAcmV0dmFsIDAgSWYgRGV2aWNlUGF0 aCBpcyBOVUxMIG9yIGludmFsaWQuCj4gKyBAcmV0dmFsIE90aGVycyBUaGUgc2l6ZSBvZiBhIGRl dmljZSBwYXRoIGluIGJ5dGVzLgo+ICsKPiArKiovCj4gK1VJTlROCj4gK0VGSUFQSQo+ICtHZXRE ZXZpY2VQYXRoU2l6ZSAoCj4gKyBJTiBDT05TVCBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKkRl dmljZVBhdGgKPiArICkKPiArewo+ICsgaWYgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxp dGllcyAhPSBOVUxMKSB7Cj4gKyByZXR1cm4gbURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0 aWVzLT5HZXREZXZpY2VQYXRoU2l6ZSAoRGV2aWNlUGF0aCk7Cj4gKyB9Cj4gKwo+ICsgQVNTRVJU IChGQUxTRSk7Cj4gKyByZXR1cm4gMDsKPiArfQo+ICsKPiArLyoqCj4gKyBDcmVhdGVzIGEgbmV3 IGNvcHkgb2YgYW4gZXhpc3RpbmcgZGV2aWNlIHBhdGguCj4gKwo+ICsgVGhpcyBmdW5jdGlvbiBh bGxvY2F0ZXMgc3BhY2UgZm9yIGEgbmV3IGNvcHkgb2YgdGhlIGRldmljZSBwYXRoIHNwZWNpZmll ZCBieSBEZXZpY2VQYXRoLgo+ICsgSWYgRGV2aWNlUGF0aCBpcyBOVUxMLCB0aGVuIE5VTEwgaXMg cmV0dXJuZWQuIElmIHRoZSBtZW1vcnkgaXMgc3VjY2Vzc2Z1bGx5Cj4gKyBhbGxvY2F0ZWQsIHRo ZW4gdGhlIGNvbnRlbnRzIG9mIERldmljZVBhdGggYXJlIGNvcGllZCB0byB0aGUgbmV3bHkgYWxs b2NhdGVkCj4gKyBidWZmZXIsIGFuZCBhIHBvaW50ZXIgdG8gdGhhdCBidWZmZXIgaXMgcmV0dXJu ZWQuIE90aGVyd2lzZSwgTlVMTCBpcyByZXR1cm5lZC4KPiArIFRoZSBtZW1vcnkgZm9yIHRoZSBu ZXcgZGV2aWNlIHBhdGggaXMgYWxsb2NhdGVkIGZyb20gRUZJIGJvb3Qgc2VydmljZXMgbWVtb3J5 Lgo+ICsgSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsZXIgdG8gZnJlZSB0aGUg bWVtb3J5IGFsbG9jYXRlZC4KPiArCj4gKyBAcGFyYW0gRGV2aWNlUGF0aCBBIHBvaW50ZXIgdG8g YSBkZXZpY2UgcGF0aCBkYXRhIHN0cnVjdHVyZS4KPiArCj4gKyBAcmV0dmFsIE5VTEwgRGV2aWNl UGF0aCBpcyBOVUxMIG9yIGludmFsaWQuCj4gKyBAcmV0dmFsIE90aGVycyBBIHBvaW50ZXIgdG8g dGhlIGR1cGxpY2F0ZWQgZGV2aWNlIHBhdGguCj4gKwo+ICsqKi8KPiArRUZJX0RFVklDRV9QQVRI X1BST1RPQ09MICoKPiArRUZJQVBJCj4gK0R1cGxpY2F0ZURldmljZVBhdGggKAo+ICsgSU4gQ09O U1QgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICpEZXZpY2VQYXRoCj4gKyApCj4gK3sKPiArIGlm IChtRGV2aWNlUGF0aExpYkRldmljZVBhdGhVdGlsaXRpZXMgIT0gTlVMTCkgewo+ICsgcmV0dXJu IG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcy0+RHVwbGljYXRlRGV2aWNlUGF0aCAo RGV2aWNlUGF0aCk7Cj4gKyB9Cj4gKwo+ICsgQVNTRVJUIChGQUxTRSk7Cj4gKyByZXR1cm4gTlVM TDsKPiArfQo+ICsKPiArLyoqCj4gKyBDcmVhdGVzIGEgbmV3IGRldmljZSBwYXRoIGJ5IGFwcGVu ZGluZyBhIHNlY29uZCBkZXZpY2UgcGF0aCB0byBhIGZpcnN0IGRldmljZSBwYXRoLgo+ICsKPiAr IFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyBkZXZpY2UgcGF0aCBieSBhcHBlbmRpbmcgYSBj b3B5IG9mIFNlY29uZERldmljZVBhdGgKPiArIHRvIGEgY29weSBvZiBGaXJzdERldmljZVBhdGgg aW4gYSBuZXdseSBhbGxvY2F0ZWQgYnVmZmVyLiBPbmx5IHRoZSBlbmQtb2YtZGV2aWNlLXBhdGgK PiArIGRldmljZSBub2RlIGZyb20gU2Vjb25kRGV2aWNlUGF0aCBpcyByZXRhaW5lZC4gVGhlIG5l d2x5IGNyZWF0ZWQgZGV2aWNlIHBhdGggaXMKPiArIHJldHVybmVkLiBJZiBGaXJzdERldmljZVBh dGggaXMgTlVMTCwgdGhlbiBpdCBpcyBpZ25vcmVkLCBhbmQgYSBkdXBsaWNhdGUgb2YKPiArIFNl Y29uZERldmljZVBhdGggaXMgcmV0dXJuZWQuIElmIFNlY29uZERldmljZVBhdGggaXMgTlVMTCwg dGhlbiBpdCBpcyBpZ25vcmVkLAo+ICsgYW5kIGEgZHVwbGljYXRlIG9mIEZpcnN0RGV2aWNlUGF0 aCBpcyByZXR1cm5lZC4gSWYgYm90aCBGaXJzdERldmljZVBhdGggYW5kCj4gKyBTZWNvbmREZXZp Y2VQYXRoIGFyZSBOVUxMLCB0aGVuIGEgY29weSBvZiBhbiBlbmQtb2YtZGV2aWNlLXBhdGggaXMg cmV0dXJuZWQuCj4gKwo+ICsgSWYgdGhlcmUgaXMgbm90IGVub3VnaCBtZW1vcnkgZm9yIHRoZSBu ZXdseSBhbGxvY2F0ZWQgYnVmZmVyLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCj4gKyBUaGUgbWVt b3J5IGZvciB0aGUgbmV3IGRldmljZSBwYXRoIGlzIGFsbG9jYXRlZCBmcm9tIEVGSSBib290IHNl cnZpY2VzIG1lbW9yeS4KPiArIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVy IHRvIGZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQuCj4gKwo+ICsgQHBhcmFtIEZpcnN0RGV2aWNl UGF0aCBBIHBvaW50ZXIgdG8gYSBkZXZpY2UgcGF0aCBkYXRhIHN0cnVjdHVyZS4KPiArIEBwYXJh bSBTZWNvbmREZXZpY2VQYXRoIEEgcG9pbnRlciB0byBhIGRldmljZSBwYXRoIGRhdGEgc3RydWN0 dXJlLgo+ICsKPiArIEByZXR2YWwgTlVMTCBJZiB0aGVyZSBpcyBub3QgZW5vdWdoIG1lbW9yeSBm b3IgdGhlIG5ld2x5IGFsbG9jYXRlZCBidWZmZXIuCj4gKyBAcmV0dmFsIE5VTEwgSWYgRmlyc3RE ZXZpY2VQYXRoIG9yIFNlY29uZERldmljZVBhdGggaXMgaW52YWxpZC4KPiArIEByZXR2YWwgT3Ro ZXJzIEEgcG9pbnRlciB0byB0aGUgbmV3IGRldmljZSBwYXRoIGlmIHN1Y2Nlc3MuCj4gKyBPciBh IGNvcHkgYW4gZW5kLW9mLWRldmljZS1wYXRoIGlmIGJvdGggRmlyc3REZXZpY2VQYXRoIGFuZCBT ZWNvbmREZXZpY2VQYXRoIGFyZSBOVUxMLgo+ICsKPiArKiovCj4gK0VGSV9ERVZJQ0VfUEFUSF9Q Uk9UT0NPTCAqCj4gK0VGSUFQSQo+ICtBcHBlbmREZXZpY2VQYXRoICgKPiArIElOIENPTlNUIEVG SV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAqRmlyc3REZXZpY2VQYXRoLCBPUFRJT05BTAo+ICsgSU4g Q09OU1QgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICpTZWNvbmREZXZpY2VQYXRoIE9QVElPTkFM Cj4gKyApCj4gK3sKPiArIGlmIChtRGV2aWNlUGF0aExpYkRldmljZVBhdGhVdGlsaXRpZXMgIT0g TlVMTCkgewo+ICsgcmV0dXJuIG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcy0+QXBw ZW5kRGV2aWNlUGF0aCAoRmlyc3REZXZpY2VQYXRoLCBTZWNvbmREZXZpY2VQYXRoKTsKPiArIH0K PiArCj4gKyBBU1NFUlQgKEZBTFNFKTsKPiArIHJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICsvKioK PiArIENyZWF0ZXMgYSBuZXcgcGF0aCBieSBhcHBlbmRpbmcgdGhlIGRldmljZSBub2RlIHRvIHRo ZSBkZXZpY2UgcGF0aC4KPiArCj4gKyBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBuZXcgZGV2aWNl IHBhdGggYnkgYXBwZW5kaW5nIGEgY29weSBvZiB0aGUgZGV2aWNlIG5vZGUKPiArIHNwZWNpZmll ZCBieSBEZXZpY2VQYXRoTm9kZSB0byBhIGNvcHkgb2YgdGhlIGRldmljZSBwYXRoIHNwZWNpZmll ZCBieSBEZXZpY2VQYXRoCj4gKyBpbiBhbiBhbGxvY2F0ZWQgYnVmZmVyLiBUaGUgZW5kLW9mLWRl dmljZS1wYXRoIGRldmljZSBub2RlIGlzIG1vdmVkIGFmdGVyIHRoZQo+ICsgZW5kIG9mIHRoZSBh cHBlbmRlZCBkZXZpY2Ugbm9kZS4KPiArIElmIERldmljZVBhdGhOb2RlIGlzIE5VTEwgdGhlbiBh IGNvcHkgb2YgRGV2aWNlUGF0aCBpcyByZXR1cm5lZC4KPiArIElmIERldmljZVBhdGggaXMgTlVM TCB0aGVuIGEgY29weSBvZiBEZXZpY2VQYXRoTm9kZSwgZm9sbG93ZWQgYnkgYW4gZW5kLW9mLWRl dmljZQo+ICsgcGF0aCBkZXZpY2Ugbm9kZSBpcyByZXR1cm5lZC4KPiArIElmIGJvdGggRGV2aWNl UGF0aE5vZGUgYW5kIERldmljZVBhdGggYXJlIE5VTEwgdGhlbiBhIGNvcHkgb2YgYW4gZW5kLW9m LWRldmljZS1wYXRoCj4gKyBkZXZpY2Ugbm9kZSBpcyByZXR1cm5lZC4KPiArIElmIHRoZXJlIGlz IG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgbmV3IGRldmljZSBw YXRoLCB0aGVuCj4gKyBOVUxMIGlzIHJldHVybmVkLgo+ICsgVGhlIG1lbW9yeSBpcyBhbGxvY2F0 ZWQgZnJvbSBFRkkgYm9vdCBzZXJ2aWNlcyBtZW1vcnkuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0 eQo+ICsgb2YgdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgYWxsb2NhdGVkLgo+ICsKPiAr IEBwYXJhbSBEZXZpY2VQYXRoIEEgcG9pbnRlciB0byBhIGRldmljZSBwYXRoIGRhdGEgc3RydWN0 dXJlLgo+ICsgQHBhcmFtIERldmljZVBhdGhOb2RlIEEgcG9pbnRlciB0byBhIHNpbmdsZSBkZXZp Y2UgcGF0aCBub2RlLgo+ICsKPiArIEByZXR2YWwgTlVMTCBJZiB0aGVyZSBpcyBub3QgZW5vdWdo IG1lbW9yeSBmb3IgdGhlIG5ldyBkZXZpY2UgcGF0aC4KPiArIEByZXR2YWwgT3RoZXJzIEEgcG9p bnRlciB0byB0aGUgbmV3IGRldmljZSBwYXRoIGlmIHN1Y2Nlc3MuCj4gKyBBIGNvcHkgb2YgRGV2 aWNlUGF0aE5vZGUgZm9sbG93ZWQgYnkgYW4gZW5kLW9mLWRldmljZS1wYXRoIG5vZGUKPiArIGlm IGJvdGggRmlyc3REZXZpY2VQYXRoIGFuZCBTZWNvbmREZXZpY2VQYXRoIGFyZSBOVUxMLgo+ICsg QSBjb3B5IG9mIGFuIGVuZC1vZi1kZXZpY2UtcGF0aCBub2RlIGlmIGJvdGggRmlyc3REZXZpY2VQ YXRoCj4gKyBhbmQgU2Vjb25kRGV2aWNlUGF0aCBhcmUgTlVMTC4KPiArCj4gKyoqLwo+ICtFRklf REVWSUNFX1BBVEhfUFJPVE9DT0wgKgo+ICtFRklBUEkKPiArQXBwZW5kRGV2aWNlUGF0aE5vZGUg KAo+ICsgSU4gQ09OU1QgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICpEZXZpY2VQYXRoLCBPUFRJ T05BTAo+ICsgSU4gQ09OU1QgRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICpEZXZpY2VQYXRoTm9k ZSBPUFRJT05BTAo+ICsgKQo+ICt7Cj4gKyBpZiAobURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRp bGl0aWVzICE9IE5VTEwpIHsKPiArIHJldHVybiBtRGV2aWNlUGF0aExpYkRldmljZVBhdGhVdGls aXRpZXMtPkFwcGVuZERldmljZU5vZGUgKERldmljZVBhdGgsIERldmljZVBhdGhOb2RlKTsKPiAr IH0KPiArCj4gKyBBU1NFUlQgKEZBTFNFKTsKPiArIHJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICsv KioKPiArIENyZWF0ZXMgYSBuZXcgZGV2aWNlIHBhdGggYnkgYXBwZW5kaW5nIHRoZSBzcGVjaWZp ZWQgZGV2aWNlIHBhdGggaW5zdGFuY2UgdG8gdGhlIHNwZWNpZmllZCBkZXZpY2UKPiArIHBhdGgu Cj4gKwo+ICsgVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgbmV3IGRldmljZSBwYXRoIGJ5IGFwcGVu ZGluZyBhIGNvcHkgb2YgdGhlIGRldmljZSBwYXRoCj4gKyBpbnN0YW5jZSBzcGVjaWZpZWQgYnkg RGV2aWNlUGF0aEluc3RhbmNlIHRvIGEgY29weSBvZiB0aGUgZGV2aWNlIHBhdGggc3BlY2lmaWVk Cj4gKyBieSBEZXZpY2VQYXRoIGluIGEgYWxsb2NhdGVkIGJ1ZmZlci4KPiArIFRoZSBlbmQtb2Yt ZGV2aWNlLXBhdGggZGV2aWNlIG5vZGUgaXMgbW92ZWQgYWZ0ZXIgdGhlIGVuZCBvZiB0aGUgYXBw ZW5kZWQgZGV2aWNlCj4gKyBwYXRoIGluc3RhbmNlIGFuZCBhIG5ldyBlbmQtb2YtZGV2aWNlLXBh dGgtaW5zdGFuY2Ugbm9kZSBpcyBpbnNlcnRlZCBiZXR3ZWVuLgo+ICsgSWYgRGV2aWNlUGF0aCBp cyBOVUxMLCB0aGVuIGEgY29weSBpZiBEZXZpY2VQYXRoSW5zdGFuY2UgaXMgcmV0dXJuZWQuCj4g KyBJZiBEZXZpY2VQYXRoSW5zdGFuY2UgaXMgTlVMTCwgdGhlbiBOVUxMIGlzIHJldHVybmVkLgo+ ICsgSWYgRGV2aWNlUGF0aCBvciBEZXZpY2VQYXRoSW5zdGFuY2UgaXMgaW52YWxpZCwgdGhlbiBO VUxMIGlzIHJldHVybmVkLgo+ICsgSWYgdGhlcmUgaXMgbm90IGVub3VnaCBtZW1vcnkgdG8gYWxs b2NhdGUgc3BhY2UgZm9yIHRoZSBuZXcgZGV2aWNlIHBhdGgsIHRoZW4KPiArIE5VTEwgaXMgcmV0 dXJuZWQuCj4gKyBUaGUgbWVtb3J5IGlzIGFsbG9jYXRlZCBmcm9tIEVGSSBib290IHNlcnZpY2Vz IG1lbW9yeS4gSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5Cj4gKyBvZiB0aGUgY2FsbGVyIHRvIGZy ZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQuCj4gKwo+ICsgQHBhcmFtIERldmljZVBhdGggQSBwb2lu dGVyIHRvIGEgZGV2aWNlIHBhdGggZGF0YSBzdHJ1Y3R1cmUuCj4gKyBAcGFyYW0gRGV2aWNlUGF0 aEluc3RhbmNlIEEgcG9pbnRlciB0byBhIGRldmljZSBwYXRoIGluc3RhbmNlLgo+ICsKPiArIEBy ZXR1cm4gQSBwb2ludGVyIHRvIHRoZSBuZXcgZGV2aWNlIHBhdGguCj4gKwo+ICsqKi8KPiArRUZJ X0RFVklDRV9QQVRIX1BST1RPQ09MICoKPiArRUZJQVBJCj4gK0FwcGVuZERldmljZVBhdGhJbnN0 YW5jZSAoCj4gKyBJTiBDT05TVCBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKkRldmljZVBhdGgs IE9QVElPTkFMCj4gKyBJTiBDT05TVCBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKkRldmljZVBh dGhJbnN0YW5jZSBPUFRJT05BTAo+ICsgKQo+ICt7Cj4gKyBpZiAobURldmljZVBhdGhMaWJEZXZp Y2VQYXRoVXRpbGl0aWVzICE9IE5VTEwpIHsKPiArIHJldHVybiBtRGV2aWNlUGF0aExpYkRldmlj ZVBhdGhVdGlsaXRpZXMtPkFwcGVuZERldmljZVBhdGhJbnN0YW5jZSAoRGV2aWNlUGF0aCwgRGV2 aWNlUGF0aEluc3RhbmNlKTsKPiArIH0KPiArCj4gKyBBU1NFUlQgKEZBTFNFKTsKPiArIHJldHVy biBOVUxMOwo+ICt9Cj4gKwo+ICsvKioKPiArIENyZWF0ZXMgYSBjb3B5IG9mIHRoZSBjdXJyZW50 IGRldmljZSBwYXRoIGluc3RhbmNlIGFuZCByZXR1cm5zIGEgcG9pbnRlciB0byB0aGUgbmV4dCBk ZXZpY2UgcGF0aAo+ICsgaW5zdGFuY2UuCj4gKwo+ICsgVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEg Y29weSBvZiB0aGUgY3VycmVudCBkZXZpY2UgcGF0aCBpbnN0YW5jZS4gSXQgYWxzbyB1cGRhdGVz Cj4gKyBEZXZpY2VQYXRoIHRvIHBvaW50IHRvIHRoZSBuZXh0IGRldmljZSBwYXRoIGluc3RhbmNl IGluIHRoZSBkZXZpY2UgcGF0aCAob3IgTlVMTAo+ICsgaWYgbm8gbW9yZSkgYW5kIHVwZGF0ZXMg U2l6ZSB0byBob2xkIHRoZSBzaXplIG9mIHRoZSBkZXZpY2UgcGF0aCBpbnN0YW5jZSBjb3B5Lgo+ ICsgSWYgRGV2aWNlUGF0aCBpcyBOVUxMLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCj4gKyBJZiBE ZXZpY2VQYXRoIHBvaW50cyB0byBhIGludmFsaWQgZGV2aWNlIHBhdGgsIHRoZW4gTlVMTCBpcyBy ZXR1cm5lZC4KPiArIElmIHRoZXJlIGlzIG5vdCBlbm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIHNw YWNlIGZvciB0aGUgbmV3IGRldmljZSBwYXRoLCB0aGVuCj4gKyBOVUxMIGlzIHJldHVybmVkLgo+ ICsgVGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZnJvbSBFRkkgYm9vdCBzZXJ2aWNlcyBtZW1vcnku IEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eQo+ICsgb2YgdGhlIGNhbGxlciB0byBmcmVlIHRoZSBt ZW1vcnkgYWxsb2NhdGVkLgo+ICsgSWYgU2l6ZSBpcyBOVUxMLCB0aGVuIEFTU0VSVCgpLgo+ICsK PiArIEBwYXJhbSBEZXZpY2VQYXRoIE9uIGlucHV0LCB0aGlzIGhvbGRzIHRoZSBwb2ludGVyIHRv IHRoZSBjdXJyZW50Cj4gKyBkZXZpY2UgcGF0aCBpbnN0YW5jZS4gT24gb3V0cHV0LCB0aGlzIGhv bGRzCj4gKyB0aGUgcG9pbnRlciB0byB0aGUgbmV4dCBkZXZpY2UgcGF0aCBpbnN0YW5jZQo+ICsg b3IgTlVMTCBpZiB0aGVyZSBhcmUgbm8gbW9yZSBkZXZpY2UgcGF0aAo+ICsgaW5zdGFuY2VzIGlu IHRoZSBkZXZpY2UgcGF0aCBwb2ludGVyIHRvIGEKPiArIGRldmljZSBwYXRoIGRhdGEgc3RydWN0 dXJlLgo+ICsgQHBhcmFtIFNpemUgT24gb3V0cHV0LCB0aGlzIGhvbGRzIHRoZSBzaXplIG9mIHRo ZSBkZXZpY2UKPiArIHBhdGggaW5zdGFuY2UsIGluIGJ5dGVzIG9yIHplcm8sIGlmIERldmljZVBh dGgKPiArIGlzIE5VTEwuCj4gKwo+ICsgQHJldHVybiBBIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQg ZGV2aWNlIHBhdGggaW5zdGFuY2UuCj4gKwo+ICsqKi8KPiArRUZJX0RFVklDRV9QQVRIX1BST1RP Q09MICoKPiArRUZJQVBJCj4gK0dldE5leHREZXZpY2VQYXRoSW5zdGFuY2UgKAo+ICsgSU4gT1VU IEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAqKkRldmljZVBhdGgsCj4gKyBPVVQgVUlOVE4gKlNp emUKPiArICkKPiArewo+ICsgaWYgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcyAh PSBOVUxMKSB7Cj4gKyByZXR1cm4gbURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzLT5H ZXROZXh0RGV2aWNlUGF0aEluc3RhbmNlIChEZXZpY2VQYXRoLCBTaXplKTsKPiArIH0KPiArCj4g KyBBU1NFUlQgKEZBTFNFKTsKPiArIHJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICsvKioKPiArIENy ZWF0ZXMgYSBkZXZpY2Ugbm9kZS4KPiArCj4gKyBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBuZXcg ZGV2aWNlIG5vZGUgaW4gYSBuZXdseSBhbGxvY2F0ZWQgYnVmZmVyIG9mIHNpemUKPiArIE5vZGVM ZW5ndGggYW5kIGluaXRpYWxpemVzIHRoZSBkZXZpY2UgcGF0aCBub2RlIGhlYWRlciB3aXRoIE5v ZGVUeXBlIGFuZCBOb2RlU3ViVHlwZS4KPiArIFRoZSBuZXcgZGV2aWNlIHBhdGggbm9kZSBpcyBy ZXR1cm5lZC4KPiArIElmIE5vZGVMZW5ndGggaXMgc21hbGxlciB0aGFuIGEgZGV2aWNlIHBhdGgg aGVhZGVyLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuCj4gKyBJZiB0aGVyZSBpcyBub3QgZW5vdWdo IG1lbW9yeSB0byBhbGxvY2F0ZSBzcGFjZSBmb3IgdGhlIG5ldyBkZXZpY2UgcGF0aCwgdGhlbgo+ ICsgTlVMTCBpcyByZXR1cm5lZC4KPiArIFRoZSBtZW1vcnkgaXMgYWxsb2NhdGVkIGZyb20gRUZJ IGJvb3Qgc2VydmljZXMgbWVtb3J5LiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHkKPiArIG9mIHRo ZSBjYWxsZXIgdG8gZnJlZSB0aGUgbWVtb3J5IGFsbG9jYXRlZC4KPiArCj4gKyBAcGFyYW0gTm9k ZVR5cGUgVGhlIGRldmljZSBub2RlIHR5cGUgZm9yIHRoZSBuZXcgZGV2aWNlIG5vZGUuCj4gKyBA cGFyYW0gTm9kZVN1YlR5cGUgVGhlIGRldmljZSBub2RlIHN1Yi10eXBlIGZvciB0aGUgbmV3IGRl dmljZSBub2RlLgo+ICsgQHBhcmFtIE5vZGVMZW5ndGggVGhlIGxlbmd0aCBvZiB0aGUgbmV3IGRl dmljZSBub2RlLgo+ICsKPiArIEByZXR1cm4gVGhlIG5ldyBkZXZpY2UgcGF0aC4KPiArCj4gKyoq Lwo+ICtFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKgo+ICtFRklBUEkKPiArQ3JlYXRlRGV2aWNl Tm9kZSAoCj4gKyBJTiBVSU5UOCBOb2RlVHlwZSwKPiArIElOIFVJTlQ4IE5vZGVTdWJUeXBlLAo+ ICsgSU4gVUlOVDE2IE5vZGVMZW5ndGgKPiArICkKPiArewo+ICsgaWYgKG1EZXZpY2VQYXRoTGli RGV2aWNlUGF0aFV0aWxpdGllcyAhPSBOVUxMKSB7Cj4gKyByZXR1cm4gbURldmljZVBhdGhMaWJE ZXZpY2VQYXRoVXRpbGl0aWVzLT5DcmVhdGVEZXZpY2VOb2RlIChOb2RlVHlwZSwgTm9kZVN1YlR5 cGUsIE5vZGVMZW5ndGgpOwo+ICsgfQo+ICsKPiArIEFTU0VSVCAoRkFMU0UpOwo+ICsgcmV0dXJu IE5VTEw7Cj4gK30KPiArCj4gKy8qKgo+ICsgRGV0ZXJtaW5lcyBpZiBhIGRldmljZSBwYXRoIGlz IHNpbmdsZSBvciBtdWx0aS1pbnN0YW5jZS4KPiArCj4gKyBUaGlzIGZ1bmN0aW9uIHJldHVybnMg VFJVRSBpZiB0aGUgZGV2aWNlIHBhdGggc3BlY2lmaWVkIGJ5IERldmljZVBhdGggaXMKPiArIG11 bHRpLWluc3RhbmNlLgo+ICsgT3RoZXJ3aXNlLCBGQUxTRSBpcyByZXR1cm5lZC4KPiArIElmIERl dmljZVBhdGggaXMgTlVMTCBvciBpbnZhbGlkLCB0aGVuIEZBTFNFIGlzIHJldHVybmVkLgo+ICsK PiArIEBwYXJhbSBEZXZpY2VQYXRoIEEgcG9pbnRlciB0byBhIGRldmljZSBwYXRoIGRhdGEgc3Ry dWN0dXJlLgo+ICsKPiArIEByZXR2YWwgVFJVRSBEZXZpY2VQYXRoIGlzIG11bHRpLWluc3RhbmNl Lgo+ICsgQHJldHZhbCBGQUxTRSBEZXZpY2VQYXRoIGlzIG5vdCBtdWx0aS1pbnN0YW5jZSwgb3Ig RGV2aWNlUGF0aAo+ICsgaXMgTlVMTCBvciBpbnZhbGlkLgo+ICsKPiArKiovCj4gK0JPT0xFQU4K PiArRUZJQVBJCj4gK0lzRGV2aWNlUGF0aE11bHRpSW5zdGFuY2UgKAo+ICsgSU4gQ09OU1QgRUZJ X0RFVklDRV9QQVRIX1BST1RPQ09MICpEZXZpY2VQYXRoCj4gKyApCj4gK3sKPiArIGlmIChtRGV2 aWNlUGF0aExpYkRldmljZVBhdGhVdGlsaXRpZXMgIT0gTlVMTCkgewo+ICsgcmV0dXJuIG1EZXZp Y2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcy0+SXNEZXZpY2VQYXRoTXVsdGlJbnN0YW5jZSAo RGV2aWNlUGF0aCk7Cj4gKyB9Cj4gKwo+ICsgQVNTRVJUIChGQUxTRSk7Cj4gKyByZXR1cm4gRkFM U0U7Cj4gK30KPiArCj4gKy8qKgo+ICsgQ29udmVydHMgYSBkZXZpY2Ugbm9kZSB0byBpdHMgc3Ry aW5nIHJlcHJlc2VudGF0aW9uLgo+ICsKPiArIEBwYXJhbSBEZXZpY2VOb2RlIEEgUG9pbnRlciB0 byB0aGUgZGV2aWNlIG5vZGUgdG8gYmUgY29udmVydGVkLgo+ICsgQHBhcmFtIERpc3BsYXlPbmx5 IElmIERpc3BsYXlPbmx5IGlzIFRSVUUsIHRoZW4gdGhlIHNob3J0ZXIgdGV4dCByZXByZXNlbnRh dGlvbgo+ICsgb2YgdGhlIGRpc3BsYXkgbm9kZSBpcyB1c2VkLCB3aGVyZSBhcHBsaWNhYmxlLiBJ ZiBEaXNwbGF5T25seQo+ICsgaXMgRkFMU0UsIHRoZW4gdGhlIGxvbmdlciB0ZXh0IHJlcHJlc2Vu dGF0aW9uIG9mIHRoZSBkaXNwbGF5IG5vZGUKPiArIGlzIHVzZWQuCj4gKyBAcGFyYW0gQWxsb3dT aG9ydGN1dHMgSWYgQWxsb3dTaG9ydGN1dHMgaXMgVFJVRSwgdGhlbiB0aGUgc2hvcnRjdXQgZm9y bXMgb2YgdGV4dAo+ICsgcmVwcmVzZW50YXRpb24gZm9yIGEgZGV2aWNlIG5vZGUgY2FuIGJlIHVz ZWQsIHdoZXJlIGFwcGxpY2FibGUuCj4gKwo+ICsgQHJldHVybiBBIHBvaW50ZXIgdG8gdGhlIGFs bG9jYXRlZCB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXZpY2Ugbm9kZSBvciBOVUxMIGlm IERldmljZU5vZGUKPiArIGlzIE5VTEwgb3IgdGhlcmUgd2FzIGluc3VmZmljaWVudCBtZW1vcnku Cj4gKwo+ICsqKi8KPiArQ0hBUjE2ICoKPiArRUZJQVBJCj4gK0NvbnZlcnREZXZpY2VOb2RlVG9U ZXh0ICgKPiArIElOIENPTlNUIEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAqRGV2aWNlTm9kZSwK PiArIElOIEJPT0xFQU4gRGlzcGxheU9ubHksCj4gKyBJTiBCT09MRUFOIEFsbG93U2hvcnRjdXRz Cj4gKyApCj4gK3sKPiArIGlmIChtRGV2aWNlUGF0aExpYkRldmljZVBhdGhUb1RleHQgIT0gTlVM TCkgewo+ICsgcmV0dXJuIG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFRvVGV4dC0+Q29udmVydERl dmljZU5vZGVUb1RleHQgKERldmljZU5vZGUsIERpc3BsYXlPbmx5LCBBbGxvd1Nob3J0Y3V0cyk7 Cj4gKyB9Cj4gKwo+ICsgQVNTRVJUIChGQUxTRSk7Cj4gKyByZXR1cm4gTlVMTDsKPiArfQo+ICsK PiArLyoqCj4gKyBDb252ZXJ0cyBhIGRldmljZSBwYXRoIHRvIGl0cyB0ZXh0IHJlcHJlc2VudGF0 aW9uLgo+ICsKPiArIEBwYXJhbSBEZXZpY2VQYXRoIEEgUG9pbnRlciB0byB0aGUgZGV2aWNlIHRv IGJlIGNvbnZlcnRlZC4KPiArIEBwYXJhbSBEaXNwbGF5T25seSBJZiBEaXNwbGF5T25seSBpcyBU UlVFLCB0aGVuIHRoZSBzaG9ydGVyIHRleHQgcmVwcmVzZW50YXRpb24KPiArIG9mIHRoZSBkaXNw bGF5IG5vZGUgaXMgdXNlZCwgd2hlcmUgYXBwbGljYWJsZS4gSWYgRGlzcGxheU9ubHkKPiArIGlz IEZBTFNFLCB0aGVuIHRoZSBsb25nZXIgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGlzcGxh eSBub2RlCj4gKyBpcyB1c2VkLgo+ICsgQHBhcmFtIEFsbG93U2hvcnRjdXRzIElmIEFsbG93U2hv cnRjdXRzIGlzIFRSVUUsIHRoZW4gdGhlIHNob3J0Y3V0IGZvcm1zIG9mIHRleHQKPiArIHJlcHJl c2VudGF0aW9uIGZvciBhIGRldmljZSBub2RlIGNhbiBiZSB1c2VkLCB3aGVyZSBhcHBsaWNhYmxl Lgo+ICsKPiArIEByZXR1cm4gQSBwb2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgdGV4dCByZXByZXNl bnRhdGlvbiBvZiB0aGUgZGV2aWNlIHBhdGggb3IKPiArIE5VTEwgaWYgRGV2aWNlTm9kZSBpcyBO VUxMIG9yIHRoZXJlIHdhcyBpbnN1ZmZpY2llbnQgbWVtb3J5Lgo+ICsKPiArKiovCj4gK0NIQVIx NiAqCj4gK0VGSUFQSQo+ICtDb252ZXJ0RGV2aWNlUGF0aFRvVGV4dCAoCj4gKyBJTiBDT05TVCBF RklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKkRldmljZVBhdGgsCj4gKyBJTiBCT09MRUFOIERpc3Bs YXlPbmx5LAo+ICsgSU4gQk9PTEVBTiBBbGxvd1Nob3J0Y3V0cwo+ICsgKQo+ICt7Cj4gKyBpZiAo bURldmljZVBhdGhMaWJEZXZpY2VQYXRoVG9UZXh0ICE9IE5VTEwpIHsKPiArIHJldHVybiBtRGV2 aWNlUGF0aExpYkRldmljZVBhdGhUb1RleHQtPkNvbnZlcnREZXZpY2VQYXRoVG9UZXh0IChEZXZp Y2VQYXRoLCBEaXNwbGF5T25seSwgQWxsb3dTaG9ydGN1dHMpOwo+ICsgfQo+ICsKPiArIEFTU0VS VCAoRkFMU0UpOwo+ICsgcmV0dXJuIE5VTEw7Cj4gK30KPiArCj4gKy8qKgo+ICsgQ29udmVydCB0 ZXh0IHRvIHRoZSBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgYSBkZXZpY2Ugbm9kZS4KPiArCj4g KyBAcGFyYW0gVGV4dERldmljZU5vZGUgVGV4dERldmljZU5vZGUgcG9pbnRzIHRvIHRoZSB0ZXh0 IHJlcHJlc2VudGF0aW9uIG9mIGEgZGV2aWNlCj4gKyBub2RlLiBDb252ZXJzaW9uIHN0YXJ0cyB3 aXRoIHRoZSBmaXJzdCBjaGFyYWN0ZXIgYW5kIGNvbnRpbnVlcwo+ICsgdW50aWwgdGhlIGZpcnN0 IG5vbi1kZXZpY2Ugbm9kZSBjaGFyYWN0ZXIuCj4gKwo+ICsgQHJldHVybiBBIHBvaW50ZXIgdG8g dGhlIEVGSSBkZXZpY2Ugbm9kZSBvciBOVUxMIGlmIFRleHREZXZpY2VOb2RlIGlzIE5VTEwgb3Ig dGhlcmUgd2FzCj4gKyBpbnN1ZmZpY2llbnQgbWVtb3J5IG9yIHRleHQgdW5zdXBwb3J0ZWQuCj4g Kwo+ICsqKi8KPiArRUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICoKPiArRUZJQVBJCj4gK0NvbnZl cnRUZXh0VG9EZXZpY2VOb2RlICgKPiArIElOIENPTlNUIENIQVIxNiAqVGV4dERldmljZU5vZGUK PiArICkKPiArewo+ICsgaWYgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aEZyb21UZXh0ICE9IE5V TEwpIHsKPiArIHJldHVybiBtRGV2aWNlUGF0aExpYkRldmljZVBhdGhGcm9tVGV4dC0+Q29udmVy dFRleHRUb0RldmljZU5vZGUgKFRleHREZXZpY2VOb2RlKTsKPiArIH0KPiArCj4gKyBBU1NFUlQg KEZBTFNFKTsKPiArIHJldHVybiBOVUxMOwo+ICt9Cj4gKwo+ICsvKioKPiArIENvbnZlcnQgdGV4 dCB0byB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGEgZGV2aWNlIHBhdGguCj4gKwo+ICsK PiArIEBwYXJhbSBUZXh0RGV2aWNlUGF0aCBUZXh0RGV2aWNlUGF0aCBwb2ludHMgdG8gdGhlIHRl eHQgcmVwcmVzZW50YXRpb24gb2YgYSBkZXZpY2UKPiArIHBhdGguIENvbnZlcnNpb24gc3RhcnRz IHdpdGggdGhlIGZpcnN0IGNoYXJhY3RlciBhbmQgY29udGludWVzCj4gKyB1bnRpbCB0aGUgZmly c3Qgbm9uLWRldmljZSBub2RlIGNoYXJhY3Rlci4KPiArCj4gKyBAcmV0dXJuIEEgcG9pbnRlciB0 byB0aGUgYWxsb2NhdGVkIGRldmljZSBwYXRoIG9yIE5VTEwgaWYgVGV4dERldmljZU5vZGUgaXMg TlVMTCBvcgo+ICsgdGhlcmUgd2FzIGluc3VmZmljaWVudCBtZW1vcnkuCj4gKwo+ICsqKi8KPiAr RUZJX0RFVklDRV9QQVRIX1BST1RPQ09MICoKPiArRUZJQVBJCj4gK0NvbnZlcnRUZXh0VG9EZXZp Y2VQYXRoICgKPiArIElOIENPTlNUIENIQVIxNiAqVGV4dERldmljZVBhdGgKPiArICkKPiArewo+ ICsgaWYgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aEZyb21UZXh0ICE9IE5VTEwpIHsKPiArIHJl dHVybiBtRGV2aWNlUGF0aExpYkRldmljZVBhdGhGcm9tVGV4dC0+Q29udmVydFRleHRUb0Rldmlj ZVBhdGggKFRleHREZXZpY2VQYXRoKTsKPiArIH0KPiArCj4gKyBBU1NFUlQgKEZBTFNFKTsKPiAr IHJldHVybiBOVUxMOwo+ICt9Cj4gKwo+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9VZWZp RGV2aWNlUGF0aExpYi9VZWZpRGV2aWNlUGF0aExpYk1hbmRhdG9yeURldmljZVBhdGhQcm90b2Nv bC5pbmYgYi9NZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0aExpYi9VZWZpRGV2aWNlUGF0aExp Yk1hbmRhdG9yeURldmljZVBhdGhQcm90b2NvbC5pbmYKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAwMDAuLmViNTQ1ZDQ2MDEKPiAtLS0gL2Rldi9udWxsCj4gKysrIGIvTWRl UGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlE ZXZpY2VQYXRoUHJvdG9jb2wuaW5mCj4gQEAgLTAsMCArMSw4NiBAQAo+ICsjIyBAZmlsZQo+ICsj IEluc3RhbmNlIG9mIERldmljZSBQYXRoIExpYnJhcnkgYmFzZWQgb24gRGV2aWNlIFBhdGggUHJv dG9jb2wuCj4gKyMKPiArIyBEZXZpY2UgUGF0aCBMaWJyYXJ5IHRoYXQgbGF5ZXJzIG9uIHRvcCBv ZiB0aGUgVUVGSSAyLjAgRGV2aWNlIFBhdGggUHJvdG9jb2wuCj4gKyMgSWYgdGhlIERldmljZVBh dGhGcm9tVGV4dC9EZXZpY2VQYXRoVG9UZXh0IHByb3RvY29sIGRvZXNuJ3QgZXhpc3QsIHRoZSBs aWJyYXJ5Cj4gKyMgdXNlcyBpdHMgaW50ZXJuYWwgY29udmVyc2lvbiBsb2dpYy4KPiArIwo+ICsj IENvcHlyaWdodCAoYykgMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2 ZWQuPEJSPgo+ICsjCj4gKyMgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1Q YXRlbnQKPiArIwo+ICsjCj4gKyMjCj4gKwo+ICtbRGVmaW5lc10KPiArIElORl9WRVJTSU9OID0g MHgwMDAxMDAwNQo+ICsgQkFTRV9OQU1FID0gVWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZp Y2VQYXRoUHJvdG9jb2wKPiArIE1PRFVMRV9VTklfRklMRSA9IFVlZmlEZXZpY2VQYXRoTGliTWFu ZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLnVuaQo+ICsgRklMRV9HVUlEID0gNUE4Mzg5QUYtREFF NC00MDdFLThGRDUtRDAyNjk0OEJDNTc5Cj4gKyBNT0RVTEVfVFlQRSA9IFVFRklfRFJJVkVSCj4g KyBWRVJTSU9OX1NUUklORyA9IDEuMAo+ICsgTElCUkFSWV9DTEFTUyA9IERldmljZVBhdGhMaWJ8 RFhFX0RSSVZFUiBEWEVfUlVOVElNRV9EUklWRVIgRFhFX1NNTV9EUklWRVIgVUVGSV9BUFBMSUNB VElPTiBVRUZJX0RSSVZFUiBTTU1fQ09SRQo+ICsKPiArIENPTlNUUlVDVE9SID0gVWVmaURldmlj ZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2xDb25zdHJ1Y3Rvcgo+ICsKPiArIwo+ ICsjIFZBTElEX0FSQ0hJVEVDVFVSRVMgPSBJQTMyIFg2NCBFQkMKPiArIwo+ICsKPiArW1NvdXJj ZXNdCj4gKyBEZXZpY2VQYXRoVXRpbGl0aWVzLmMKPiArIERldmljZVBhdGhUb1RleHQuYwo+ICsg RGV2aWNlUGF0aEZyb21UZXh0LmMKPiArIFVlZmlEZXZpY2VQYXRoTGliTWFuZGF0b3J5RGV2aWNl UGF0aFByb3RvY29sLmMKPiArIFVlZmlEZXZpY2VQYXRoTGliLmgKPiArCj4gK1tQYWNrYWdlc10K PiArIE1kZVBrZy9NZGVQa2cuZGVjCj4gKwo+ICsKPiArW0xpYnJhcnlDbGFzc2VzXQo+ICsgQmFz ZUxpYgo+ICsgVWVmaUJvb3RTZXJ2aWNlc1RhYmxlTGliCj4gKyBNZW1vcnlBbGxvY2F0aW9uTGli Cj4gKyBEZWJ1Z0xpYgo+ICsgQmFzZU1lbW9yeUxpYgo+ICsgUGNkTGliCj4gKyBQcmludExpYgo+ ICsKPiArW0d1aWRzXQo+ICsgIyMgU09NRVRJTUVTX0NPTlNVTUVTICMjIEdVSUQKPiArIGdFZmlW VFVURjhHdWlkCj4gKyAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMgR1VJRAo+ICsgZ0VmaVZUMTAw R3VpZAo+ICsgIyMgU09NRVRJTUVTX0NPTlNVTUVTICMjIEdVSUQKPiArIGdFZmlWVDEwMFBsdXNH dWlkCj4gKyAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMgR1VJRAo+ICsgZ0VmaVBjQW5zaUd1aWQK PiArICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBHVUlECj4gKyBnRWZpVWFydERldmljZVBhdGhH dWlkCj4gKyAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMgR1VJRAo+ICsgZ0VmaVNhc0RldmljZVBh dGhHdWlkCj4gKyAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMgR1VJRAo+ICsgZ0VmaVZpcnR1YWxE aXNrR3VpZAo+ICsgIyMgU09NRVRJTUVTX0NPTlNVTUVTICMjIEdVSUQKPiArIGdFZmlWaXJ0dWFs Q2RHdWlkCj4gKyAjIyBTT01FVElNRVNfQ09OU1VNRVMgIyMgR1VJRAo+ICsgZ0VmaVBlcnNpc3Rl bnRWaXJ0dWFsRGlza0d1aWQKPiArICMjIFNPTUVUSU1FU19DT05TVU1FUyAjIyBHVUlECj4gKyBn RWZpUGVyc2lzdGVudFZpcnR1YWxDZEd1aWQKPiArCj4gK1tQcm90b2NvbHNdCj4gKyBnRWZpRGV2 aWNlUGF0aFByb3RvY29sR3VpZCAjIyBTT01FVElNRVNfQ09OU1VNRVMKPiArIGdFZmlEZXZpY2VQ YXRoVXRpbGl0aWVzUHJvdG9jb2xHdWlkICMjIENPTlNVTUVTCj4gKyBnRWZpRGV2aWNlUGF0aFRv VGV4dFByb3RvY29sR3VpZCAjIyBTT01FVElNRVNfQ09OU1VNRVMKPiArIGdFZmlEZXZpY2VQYXRo RnJvbVRleHRQcm90b2NvbEd1aWQgIyMgU09NRVRJTUVTX0NPTlNVTUVTCj4gKyBnRWZpRGVidWdQ b3J0UHJvdG9jb2xHdWlkICMjIFVOREVGSU5FRAo+ICsKPiArW1BjZF0KPiArIGdFZmlNZGVQa2dU b2tlblNwYWNlR3VpZC5QY2RNYXhpbXVtRGV2aWNlUGF0aE5vZGVDb3VudCAjIyBTT01FVElNRVNf Q09OU1VNRVMKPiArCj4gK1tEZXBleC5jb21tb24uRFhFX0RSSVZFUiwgRGVwZXguY29tbW9uLkRY RV9SVU5USU1FX0RSSVZFUiwgRGVwZXguY29tbW9uLkRYRV9TQUxfRFJJVkVSLCBEZXBleC5jb21t b24uRFhFX1NNTV9EUklWRVJdCj4gKyBnRWZpRGV2aWNlUGF0aFV0aWxpdGllc1Byb3RvY29sR3Vp ZCBBTkQKPiArIGdFZmlEZXZpY2VQYXRoVG9UZXh0UHJvdG9jb2xHdWlkIEFORAo+ICsgZ0VmaURl dmljZVBhdGhGcm9tVGV4dFByb3RvY29sR3VpZAo+ICsKPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xp YnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQ YXRoUHJvdG9jb2wudW5pIGIvTWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURl dmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2wudW5pCj4gbmV3IGZpbGUgbW9k ZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwMDAwLi4xYjhhNTU2Njk4Cj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL01kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGli TWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLnVuaQo+IEBAIC0wLDAgKzEsMTggQEAKPiArLy8g LyoqIEBmaWxlCj4gKy8vIEluc3RhbmNlIG9mIERldmljZSBQYXRoIExpYnJhcnkgYmFzZWQgb24g RGV2aWNlIFBhdGggUHJvdG9jb2wuCj4gKy8vCj4gKy8vIERldmljZSBQYXRoIExpYnJhcnkgdGhh dCBsYXllcnMgb24gdG9wIG9mIHRoZSBVRUZJIDIuMCBEZXZpY2UgUGF0aCBQcm90b2NvbC4KPiAr Ly8gSWYgdGhlIERldmljZVBhdGhGcm9tVGV4dC9EZXZpY2VQYXRoVG9UZXh0IHByb3RvY29sIGRv ZXNuJ3QgZXhpc3QsIHRoZSBsaWJyYXJ5Cj4gKy8vIHVzZXMgaXRzIGludGVybmFsIGNvbnZlcnNp b24gbG9naWMuCj4gKy8vCj4gKy8vIENvcHlyaWdodCAoYykgMjAxOSwgSW50ZWwgQ29ycG9yYXRp b24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPgo+ICsvLwo+ICsvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudAo+ICsvLwo+ICsvLyAqKi8KPiArCj4gKwo+ICsj c3RyaW5nIFNUUl9NT0RVTEVfQUJTVFJBQ1QgI2xhbmd1YWdlIGVuLVVTICJJbnN0YW5jZSBvZiBE ZXZpY2UgUGF0aCBMaWJyYXJ5IGJhc2VkIG9uIERldmljZSBQYXRoIFByb3RvY29sLiIKPiArCj4g KyNzdHJpbmcgU1RSX01PRFVMRV9ERVNDUklQVElPTiAjbGFuZ3VhZ2UgZW4tVVMgIkluc3RhbmNl IG9mIERldmljZSBQYXRoIExpYnJhcnkgYmFzZWQgb24gRGV2aWNlIFBhdGggUHJvdG9jb2wuIgo+ ICsKPiBkaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURl dmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbC5jIGIvTWRlUGtnL0xpYnJhcnkv VWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90 b2NvbC5jCj4gaW5kZXggMTA2ZmYyNDVjYy4uZGRlZjc1ZGExOCAxMDA2NDQKPiAtLS0gYS9NZGVQ a2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0aExpYi9VZWZpRGV2aWNlUGF0aExpYk9wdGlvbmFsRGV2 aWNlUGF0aFByb3RvY29sLmMKPiArKysgYi9NZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0aExp Yi9VZWZpRGV2aWNlUGF0aExpYk9wdGlvbmFsRGV2aWNlUGF0aFByb3RvY29sLmMKPiBAQCAtOCw3 ICs4LDcgQEAKPiBlbnZpcm9ubWVudCB2YXJpYmxlcy4gTXVsdGktaW5zdGFuY2UgZGV2aWNlIHBh dGhzIHNob3VsZCBuZXZlciBiZSBwbGFjZWQKPiBvbiBhIEhhbmRsZS4KPgo+IC0gQ29weXJpZ2h0 IChjKSAyMDEzIC0gMjAxOCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu PEJSPgo+ICsgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFs bCByaWdodHMgcmVzZXJ2ZWQuPEJSPgo+IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1D bGF1c2UtUGF0ZW50Cj4KPiAqKi8KPiBAQCAtMjEsOCArMjEsNyBAQCBHTE9CQUxfUkVNT1ZFX0lG X1VOUkVGRVJFTkNFRCBFRklfREVWSUNFX1BBVEhfVE9fVEVYVF9QUk9UT0NPTCAqbURldmljZVBh dGhMaWIKPiBHTE9CQUxfUkVNT1ZFX0lGX1VOUkVGRVJFTkNFRCBFRklfREVWSUNFX1BBVEhfRlJP TV9URVhUX1BST1RPQ09MICptRGV2aWNlUGF0aExpYkRldmljZVBhdGhGcm9tVGV4dCA9IE5VTEw7 Cj4KPiAvKioKPiAtIFRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBjYWNoZXMgdGhlIHBvaW50ZXIg dG8gRGV2aWNlUGF0aFV0aWxpdGVzIHByb3RvY29sLAo+IC0gRGV2aWNlUGF0aFRvVGV4dCBwcm90 b2NvbCBhbmQgRGV2aWNlUGF0aEZyb21UZXh0IHByb3RvY29sLgo+ICsgVGhlIGNvbnN0cnVjdG9y IGZ1bmN0aW9uIGNhY2hlcyB0aGUgcG9pbnRlciB0byBEZXZpY2VQYXRoVXRpbGl0ZXMgcHJvdG9j b2wuCj4KPiBUaGUgY29uc3RydWN0b3IgZnVuY3Rpb24gbG9jYXRlcyB0aGVzZSB0aHJlZSBwcm90 b2NvbHMgZnJvbSBwcm90b2NvbCBkYXRhYmFzZS4KPiBJdCB3aWxsIGNhY2hlcyB0aGUgcG9pbnRl ciB0byBsb2NhbCBwcm90b2NvbCBpbnN0YW5jZSBpZiB0aGF0IG9wZXJhdGlvbiBmYWlscwo+IEBA IC00MSwxNiArNDAsMTIgQEAgVWVmaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90 b2NvbENvbnN0cnVjdG9yICgKPiBJTiBFRklfU1lTVEVNX1RBQkxFICpTeXN0ZW1UYWJsZQo+ICkK PiB7Cj4gLSBFRklfU1RBVFVTIFN0YXR1czsKPiAtCj4gLSBTdGF0dXMgPSBnQlMtPkxvY2F0ZVBy b3RvY29sICgKPiAtICZnRWZpRGV2aWNlUGF0aFV0aWxpdGllc1Byb3RvY29sR3VpZCwKPiAtIE5V TEwsCj4gLSAoVk9JRCoqKSAmbURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzCj4gLSAp Owo+IC0gQVNTRVJUX0VGSV9FUlJPUiAoU3RhdHVzKTsKPiAtIEFTU0VSVCAobURldmljZVBhdGhM aWJEZXZpY2VQYXRoVXRpbGl0aWVzICE9IE5VTEwpOwo+IC0gcmV0dXJuIFN0YXR1czsKPiArIGdC Uy0+TG9jYXRlUHJvdG9jb2wgKAo+ICsgJmdFZmlEZXZpY2VQYXRoVXRpbGl0aWVzUHJvdG9jb2xH dWlkLAo+ICsgTlVMTCwKPiArIChWT0lEKiopICZtRGV2aWNlUGF0aExpYkRldmljZVBhdGhVdGls aXRpZXMKPiArICk7Cj4gKyByZXR1cm4gRUZJX1NVQ0NFU1M7Cj4gfQo+Cj4gLyoqCj4gZGlmZiAt LWdpdCBhL01kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGli T3B0aW9uYWxEZXZpY2VQYXRoUHJvdG9jb2wuaW5mIGIvTWRlUGtnL0xpYnJhcnkvVWVmaURldmlj ZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbC5pbmYK PiBpbmRleCBlODEyZTNlMWQ0Li5kMTk0MzAwYmRlIDEwMDY0NAo+IC0tLSBhL01kZVBrZy9MaWJy YXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQYXRo UHJvdG9jb2wuaW5mCj4gKysrIGIvTWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVm aURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbC5pbmYKPiBAQCAtNSw3ICs1 LDcgQEAKPiAjIElmIHRoZSBEZXZpY2VQYXRoRnJvbVRleHQvRGV2aWNlUGF0aFRvVGV4dCBwcm90 b2NvbCBkb2Vzbid0IGV4aXN0LCB0aGUgbGlicmFyeQo+ICMgdXNlcyBpdHMgaW50ZXJuYWwgY29u dmVyc2lvbiBsb2dpYy4KPiAjCj4gLSMgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxOCwgSW50ZWwg Q29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuPEJSPgo+ICsjIENvcHlyaWdodCAoYykg MjAxMyAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxCUj4K PiAjCj4gIyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNELTItQ2xhdXNlLVBhdGVudAo+ICMK PiBAQCAtNzksNiArNzksMyBAQAo+IFtQY2RdCj4gZ0VmaU1kZVBrZ1Rva2VuU3BhY2VHdWlkLlBj ZE1heGltdW1EZXZpY2VQYXRoTm9kZUNvdW50ICMjIFNPTUVUSU1FU19DT05TVU1FUwo+Cj4gLVtE ZXBleC5jb21tb24uRFhFX0RSSVZFUiwgRGVwZXguY29tbW9uLkRYRV9SVU5USU1FX0RSSVZFUiwg RGVwZXguY29tbW9uLkRYRV9TQUxfRFJJVkVSLCBEZXBleC5jb21tb24uRFhFX1NNTV9EUklWRVJd Cj4gLSBnRWZpRGV2aWNlUGF0aFV0aWxpdGllc1Byb3RvY29sR3VpZAo+IC0KPiBkaWZmIC0tZ2l0 IGEvTWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJPcHRp b25hbERldmljZVBhdGhQcm90b2NvbC51bmkgYi9NZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0 aExpYi9VZWZpRGV2aWNlUGF0aExpYk9wdGlvbmFsRGV2aWNlUGF0aFByb3RvY29sLnVuaQo+IGlu ZGV4IDA3MGYwYWRkOWYuLjdhN2ViYWFmMWUgMTAwNjQ0Cj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkv VWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90 b2NvbC51bmkKPiArKysgYi9NZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0aExpYi9VZWZpRGV2 aWNlUGF0aExpYk9wdGlvbmFsRGV2aWNlUGF0aFByb3RvY29sLnVuaQo+IEBAIC01LDE0ICs1LDE0 IEBACj4gLy8gSWYgdGhlIERldmljZVBhdGhGcm9tVGV4dC9EZXZpY2VQYXRoVG9UZXh0IHByb3Rv Y29sIGRvZXNuJ3QgZXhpc3QsIHRoZSBsaWJyYXJ5Cj4gLy8gdXNlcyBpdHMgaW50ZXJuYWwgY29u dmVyc2lvbiBsb2dpYy4KPiAvLwo+IC0vLyBDb3B5cmlnaHQgKGMpIDIwMTMgLSAyMDE0LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC48QlI+Cj4gKy8vIENvcHlyaWdodCAo YykgMjAxMyAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLjxC Uj4KPiAvLwo+IC8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50 Cj4gLy8KPiAvLyAqKi8KPgo+IC0jc3RyaW5nIFNUUl9NT0RVTEVfQUJTVFJBQ1QgI2xhbmd1YWdl IGVuLVVTICJJbnN0YW5jZSBvZiBEZXZpY2UgUGF0aCBMaWJyYXJ5IGJhc2VkIG9uIERldmljZSBQ YXRoIFByb3RvY29sLiIKPiArI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICNsYW5ndWFnZSBl bi1VUyAiSW5zdGFuY2Ugb2YgRGV2aWNlIFBhdGggTGlicmFyeSBiYXNlZCBvbiBEZXZpY2UgUGF0 aCBQcm90b2NvbCBvciBNZW1vcnkgQWxsb2NhdGlvbiBMaWJyYXJ5LiIKPgo+IC0jc3RyaW5nIFNU Ul9NT0RVTEVfREVTQ1JJUFRJT04gI2xhbmd1YWdlIGVuLVVTICJJbnN0YW5jZSBvZiBEZXZpY2Ug UGF0aCBMaWJyYXJ5IGJhc2VkIG9uIERldmljZSBQYXRoIFByb3RvY29sLiIKPiArI3N0cmluZyBT VFJfTU9EVUxFX0RFU0NSSVBUSU9OICNsYW5ndWFnZSBlbi1VUyAiSW5zdGFuY2Ugb2YgRGV2aWNl IFBhdGggTGlicmFyeSBiYXNlZCBvbiBEZXZpY2UgUGF0aCBQcm90b2NvbCBvciBNZW1vcnkgQWxs b2NhdGlvbiBMaWJyYXJ5LiIKPgo+IC0tCj4gMi4yMS4wLndpbmRvd3MuMQ== --b1_95e3a1c22645a2279e2e708ddbdad07f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 ICAgIDxkaXY+PHNwYW4gc3R5bGU9Ii13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsgY2Fy ZXQtY29sb3I6IHJnYigyNTUsIDAsIDApOyBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgSGVs dmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsiPlJldmlld2VkLWJ5OiZuYnNwOzxjYXJldD48L2Nh cmV0PlZpdGFseSBDaGVwdHNvdiAmbHQ7PC9zcGFuPjxhIGhyZWY9Im1haWx0bzp2aXQ5Njk2QHBy b3Rvbm1haWwuY29tIiBkaXI9Imx0ciIgeC1hcHBsZS1kYXRhLWRldGVjdG9ycz0idHJ1ZSIgeC1h cHBsZS1kYXRhLWRldGVjdG9ycy10eXBlPSJsaW5rIiB4LWFwcGxlLWRhdGEtZGV0ZWN0b3JzLXJl c3VsdD0iNCIgc3R5bGU9Ii13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsgY2FyZXQtY29s b3I6IHJnYigyNTUsIDAsIDApOyBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgSGVsdmV0aWNh LCBBcmlhbCwgc2Fucy1zZXJpZjsiPnZpdDk2OTZAcHJvdG9ubWFpbC5jb208L2E+PHNwYW4gc3R5 bGU9Ii13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogYXV0bzsgY2FyZXQtY29sb3I6IHJnYigyNTUs IDAsIDApOyBmb250LWZhbWlseTogLWFwcGxlLXN5c3RlbSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fu cy1zZXJpZjsiPiZndDs8L3NwYW4+PGJyPjwvZGl2PjxkaXY+PGJyPjwvZGl2Pk9uIFdlZCwgRGVj IDE4LCAyMDE5IGF0IDA1OjEwLCBaaGljaGFvIEdhbyAmbHQ7PGEgaHJlZj0ibWFpbHRvOnpoaWNo YW8uZ2FvQGludGVsLmNvbSIgY2xhc3M9IiI+emhpY2hhby5nYW9AaW50ZWwuY29tPC9hPiZndDsg d3JvdGU6PGJsb2NrcXVvdGUgY2xhc3M9InByb3Rvbm1haWxfcXVvdGUiIHR5cGU9ImNpdGUiPiAg UkVGOiBodHRwczovL2J1Z3ppbGxhLnRpYW5vY29yZS5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTg8 YnI+PGJyPlVlZmlEZXZpY2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQYXRoUHJvdG9jb2wncyBpbXBs ZW1lbnRhdGlvbiBpc24ndDxicj5maXQgaXRzIGRlc2NyaXB0aW9uLiBJdCBzaG91bGQgYmUgaW1w bGVtZW50IGFzIGJsb3c6PGJyPlRyeSB0byBmaW5kIHRoZSBEZXZpY2VQYXRoUHJvdG9jb2wsIGlm IGZvdW5kIHRoZW4gdXNlIGl0IHRvIGltcGxlbWVudDxicj50aGUgaW50ZXJmYWNlLiBFbHNlLCB1 c2UgdGhlIGxvY2FsIGludGVyZmFjZS4gSXQgc2hvdWxkIG5vdCBoYXZlIHRoZTxicj5kZXBleCBh bmQgQVNTRVJUIG9mIGdFZmlEZXZpY2VQYXRoVXRpbGl0aWVzUHJvdG9jb2xHdWlkIHdoZW4gbm90 IGZpbmQ8YnI+dGhlIERldmljZVBhdGhQcm90b2NvbC48YnI+PGJyPkFkZCBhIG1hbmRhdG9yeSBv bmUgdG8gZm9yY2UgdXNpbmcgdGhlIERldmljZVBhdGhVdGlsaXRpZXMsPGJyPkRldmljZVBhdGhU b1RleHQgYW5kIERldmljZVBhdGhGcm9tVGV4dCBwcm90b2NvbC48YnI+PGJyPkNjOiBNaWNoYWVs IEQgS2lubmV5ICZsdDttaWNoYWVsLmQua2lubmV5QGludGVsLmNvbSZndDs8YnI+Q2M6IExpbWlu ZyBHYW8gJmx0O2xpbWluZy5nYW9AaW50ZWwuY29tJmd0Ozxicj5DYzogVml0YWx5IENoZXB0c292 ICZsdDt2aXQ5Njk2QHByb3Rvbm1haWwuY29tJmd0Ozxicj5UZXN0ZWQtYnk6IFpoaWNoYW8gR2Fv ICZsdDt6aGljaGFvLmdhb0BpbnRlbC5jb20mZ3Q7PGJyPlNpZ25lZC1vZmYtYnk6IFpoaWNoYW8g R2FvICZsdDt6aGljaGFvLmdhb0BpbnRlbC5jb20mZ3Q7PGJyPi0tLTxicj48YnI+VjI6PGJyPk9w dGlvbmFsIG9uZSBzaG91bGQgYWx3YXlzIHJldHVybiBFRklfU1VDQ0VTUyBpbiBpdHMgY29uc3Ry dWN0b3IuPGJyPkNoYW5nZSB0aGUgZGVzY3JpcHRpb24gb2Ygb3B0aW9uYWwgb25lJ3MgdW5pIGZp bGUuPGJyPkZpeCB0aGUgY29weXJpZ2h0IGRhdGUgb2YgbWFuZGF0b3J5IG9uZSdzIHVuaSBmaWxl Ljxicj48YnI+VjM6PGJyPlJlbW92ZSB0aGUgU3RhdHVzIHZhcmlhYmxlIGluPGJyPlVlZmlEZXZp Y2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQYXRoUHJvdG9jb2xDb25zdHJ1Y3Rvci48YnI+VGhlIFN0 YXR1cyB3b3VsZCBjYXVzZSBHQ0MgYnVpbGQgZmFpbCBiZWNhdXNlIHRoZSB2YXJpYWJsZSBpczxi cj5pbml0aWFsaXplZCBidXQgbm90IHVzZWQuIFNpbmNlIGl0IGlzIHVzZWxlc3MgZm9yIHRoZSBj b25zdHJ1Y3Rvciw8YnI+ZGlyZWN0bHkgcmVtb3ZlIGl0Ljxicj48YnI+IC4uLkRldmljZVBhdGhM aWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2wuYyB8IDQ2OSArKysrKysrKysrKysrKysrKys8 YnI+IC4uLnZpY2VQYXRoTGliTWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLmluZiB8ICA4NiAr KysrPGJyPiAuLi52aWNlUGF0aExpYk1hbmRhdG9yeURldmljZVBhdGhQcm90b2NvbC51bmkgfCAg MTggKzxicj4gLi4uaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbC5jIHwg IDIxICstPGJyPiAuLi5ldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbC5pbmYg fCAgIDUgKy08YnI+IC4uLmV2aWNlUGF0aExpYk9wdGlvbmFsRGV2aWNlUGF0aFByb3RvY29sLnVu aSB8ICAgNiArLTxicj4gNiBmaWxlcyBjaGFuZ2VkLCA1ODUgaW5zZXJ0aW9ucygrKSwgMjAgZGVs ZXRpb25zKC0pPGJyPiBjcmVhdGUgbW9kZSAxMDA2NDQgTWRlUGtnL0xpYnJhcnkvVWVmaURldmlj ZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2wuYzxi cj4gY3JlYXRlIG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1Vl ZmlEZXZpY2VQYXRoTGliTWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLmluZjxicj4gY3JlYXRl IG1vZGUgMTAwNjQ0IE1kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQ YXRoTGliTWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLnVuaTxicj48YnI+ZGlmZiAtLWdpdCBh L01kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGliTWFuZGF0 b3J5RGV2aWNlUGF0aFByb3RvY29sLmMgYi9NZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0aExp Yi9VZWZpRGV2aWNlUGF0aExpYk1hbmRhdG9yeURldmljZVBhdGhQcm90b2NvbC5jPGJyPm5ldyBm aWxlIG1vZGUgMTAwNjQ0PGJyPmluZGV4IDAwMDAwMDAwMDAuLmZhMjcxMTBmZDQ8YnI+LS0tIC9k ZXYvbnVsbDxicj4rKysgYi9NZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0aExpYi9VZWZpRGV2 aWNlUGF0aExpYk1hbmRhdG9yeURldmljZVBhdGhQcm90b2NvbC5jPGJyPkBAIC0wLDAgKzEsNDY5 IEBAPGJyPisvKiogQGZpbGU8YnI+KyAgRGV2aWNlIFBhdGggc2VydmljZXMuIFRoZSB0aGluZyB0 byByZW1lbWJlciBpcyBkZXZpY2UgcGF0aHMgYXJlIGJ1aWx0IG91dCBvZjxicj4rICBub2Rlcy4g VGhlIGRldmljZSBwYXRoIGlzIHRlcm1pbmF0ZWQgYnkgYW4gZW5kIG5vZGUgdGhhdCBpcyBsZW5n dGg8YnI+KyAgc2l6ZW9mKEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCkuIFRoYXQgd291bGQgYmUg d2h5IHRoZXJlIGlzIHNpemVvZihFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wpPGJyPisgIGFsbCBv dmVyIHRoaXMgZmlsZS48YnI+Kzxicj4rICBUaGUgb25seSBwbGFjZSB3aGVyZSBtdWx0aS1pbnN0 YW5jZSBkZXZpY2UgcGF0aHMgYXJlIHN1cHBvcnRlZCBpcyBpbjxicj4rICBlbnZpcm9ubWVudCB2 YXJpYmxlcy4gTXVsdGktaW5zdGFuY2UgZGV2aWNlIHBhdGhzIHNob3VsZCBuZXZlciBiZSBwbGFj ZWQ8YnI+KyAgb24gYSBIYW5kbGUuPGJyPis8YnI+KyAgQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRl bCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4mbHQ7QlImZ3Q7PGJyPisgIFNQRFgt TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50PGJyPis8YnI+KyoqLzxicj4r PGJyPis8YnI+KyNpbmNsdWRlICJVZWZpRGV2aWNlUGF0aExpYi5oIjxicj4rPGJyPitHTE9CQUxf UkVNT1ZFX0lGX1VOUkVGRVJFTkNFRCBFRklfREVWSUNFX1BBVEhfVVRJTElUSUVTX1BST1RPQ09M ICptRGV2aWNlUGF0aExpYkRldmljZVBhdGhVdGlsaXRpZXMgPSBOVUxMOzxicj4rR0xPQkFMX1JF TU9WRV9JRl9VTlJFRkVSRU5DRUQgRUZJX0RFVklDRV9QQVRIX1RPX1RFWFRfUFJPVE9DT0wgICAq bURldmljZVBhdGhMaWJEZXZpY2VQYXRoVG9UZXh0ICAgID0gTlVMTDs8YnI+K0dMT0JBTF9SRU1P VkVfSUZfVU5SRUZFUkVOQ0VEIEVGSV9ERVZJQ0VfUEFUSF9GUk9NX1RFWFRfUFJPVE9DT0wgKm1E ZXZpY2VQYXRoTGliRGV2aWNlUGF0aEZyb21UZXh0ICA9IE5VTEw7PGJyPis8YnI+Ky8qKjxicj4r ICBUaGUgY29uc3RydWN0b3IgZnVuY3Rpb24gY2FjaGVzIHRoZSBwb2ludGVyIHRvIERldmljZVBh dGhVdGlsaXRlcyBwcm90b2NvbCw8YnI+KyAgRGV2aWNlUGF0aFRvVGV4dCBwcm90b2NvbCBhbmQg RGV2aWNlUGF0aEZyb21UZXh0IHByb3RvY29sLjxicj4rPGJyPisgIFRoZSBjb25zdHJ1Y3RvciBm dW5jdGlvbiBsb2NhdGVzIHRoZXNlIHRocmVlIHByb3RvY29scyBmcm9tIHByb3RvY29sIGRhdGFi YXNlLjxicj4rICBJdCB3aWxsIGNhY2hlcyB0aGUgcG9pbnRlciB0byBsb2NhbCBwcm90b2NvbCBp bnN0YW5jZSBpZiB0aGF0IG9wZXJhdGlvbiBmYWlsczxicj4rICBhbmQgaXQgd2lsbCBhbHdheXMg cmV0dXJuIEVGSV9TVUNDRVNTLjxicj4rPGJyPisgIEBwYXJhbSAgSW1hZ2VIYW5kbGUgICBUaGUg ZmlybXdhcmUgYWxsb2NhdGVkIGhhbmRsZSBmb3IgdGhlIEVGSSBpbWFnZS48YnI+KyAgQHBhcmFt ICBTeXN0ZW1UYWJsZSAgIEEgcG9pbnRlciB0byB0aGUgRUZJIFN5c3RlbSBUYWJsZS48YnI+Kzxi cj4rICBAcmV0dmFsIEVGSV9TVUNDRVNTICAgVGhlIGNvbnN0cnVjdG9yIGFsd2F5cyByZXR1cm5z IEVGSV9TVUNDRVNTLjxicj4rPGJyPisqKi88YnI+K0VGSV9TVEFUVVM8YnI+K0VGSUFQSTxicj4r VWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2xDb25zdHJ1Y3RvciAo PGJyPisgIElOICAgICAgRUZJX0hBTkRMRSAgICAgICAgICAgICAgICBJbWFnZUhhbmRsZSw8YnI+ KyAgSU4gICAgICBFRklfU1lTVEVNX1RBQkxFICAgICAgICAgICpTeXN0ZW1UYWJsZTxicj4rICAp PGJyPit7PGJyPisgIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7PGJy Pis8YnI+KyAgU3RhdHVzID0gZ0JTLSZndDtMb2NhdGVQcm90b2NvbCAoPGJyPisgICAgICAgICAg ICAgICAgICAmYW1wO2dFZmlEZXZpY2VQYXRoVXRpbGl0aWVzUHJvdG9jb2xHdWlkLDxicj4rICAg ICAgICAgICAgICAgICAgTlVMTCw8YnI+KyAgICAgICAgICAgICAgICAgIChWT0lEKiopICZhbXA7 bURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzPGJyPisgICAgICAgICAgICAgICAgICAp Ozxicj4rICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOzxicj4rICBBU1NFUlQgKG1EZXZpY2VQ YXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcyAhPSBOVUxMKTs8YnI+Kzxicj4rICBTdGF0dXMgPSBn QlMtJmd0O0xvY2F0ZVByb3RvY29sICg8YnI+KyAgICAgICAgICAgICAgICAgICZhbXA7Z0VmaURl dmljZVBhdGhUb1RleHRQcm90b2NvbEd1aWQsPGJyPisgICAgICAgICAgICAgICAgICBOVUxMLDxi cj4rICAgICAgICAgICAgICAgICAgKFZPSUQqKikgJmFtcDttRGV2aWNlUGF0aExpYkRldmljZVBh dGhUb1RleHQ8YnI+KyAgICAgICAgICAgICAgICAgICk7PGJyPisgIEFTU0VSVF9FRklfRVJST1Ig KFN0YXR1cyk7PGJyPisgIEFTU0VSVCAobURldmljZVBhdGhMaWJEZXZpY2VQYXRoVG9UZXh0ICE9 IE5VTEwpOzxicj4rPGJyPisgIFN0YXR1cyA9IGdCUy0mZ3Q7TG9jYXRlUHJvdG9jb2wgKDxicj4r ICAgICAgICAgICAgICAgICAgJmFtcDtnRWZpRGV2aWNlUGF0aEZyb21UZXh0UHJvdG9jb2xHdWlk LDxicj4rICAgICAgICAgICAgICAgICAgTlVMTCw8YnI+KyAgICAgICAgICAgICAgICAgIChWT0lE KiopICZhbXA7bURldmljZVBhdGhMaWJEZXZpY2VQYXRoRnJvbVRleHQ8YnI+KyAgICAgICAgICAg ICAgICAgICk7PGJyPisgIEFTU0VSVF9FRklfRVJST1IgKFN0YXR1cyk7PGJyPisgIEFTU0VSVCAo bURldmljZVBhdGhMaWJEZXZpY2VQYXRoRnJvbVRleHQgIT0gTlVMTCk7PGJyPis8YnI+KyAgcmV0 dXJuIFN0YXR1czs8YnI+K308YnI+Kzxicj4rLyoqPGJyPisgIFJldHVybnMgdGhlIHNpemUgb2Yg YSBkZXZpY2UgcGF0aCBpbiBieXRlcy48YnI+Kzxicj4rICBUaGlzIGZ1bmN0aW9uIHJldHVybnMg dGhlIHNpemUsIGluIGJ5dGVzLCBvZiB0aGUgZGV2aWNlIHBhdGggZGF0YSBzdHJ1Y3R1cmU8YnI+ KyAgc3BlY2lmaWVkIGJ5IERldmljZVBhdGggaW5jbHVkaW5nIHRoZSBlbmQgb2YgZGV2aWNlIHBh dGggbm9kZS48YnI+KyAgSWYgRGV2aWNlUGF0aCBpcyBOVUxMIG9yIGludmFsaWQsIHRoZW4gMCBp cyByZXR1cm5lZC48YnI+Kzxicj4rICBAcGFyYW0gIERldmljZVBhdGggIEEgcG9pbnRlciB0byBh IGRldmljZSBwYXRoIGRhdGEgc3RydWN0dXJlLjxicj4rPGJyPisgIEByZXR2YWwgMCAgICAgICAg ICAgSWYgRGV2aWNlUGF0aCBpcyBOVUxMIG9yIGludmFsaWQuPGJyPisgIEByZXR2YWwgT3RoZXJz ICAgICAgVGhlIHNpemUgb2YgYSBkZXZpY2UgcGF0aCBpbiBieXRlcy48YnI+Kzxicj4rKiovPGJy PitVSU5UTjxicj4rRUZJQVBJPGJyPitHZXREZXZpY2VQYXRoU2l6ZSAoPGJyPisgIElOIENPTlNU IEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgKkRldmljZVBhdGg8YnI+KyAgKTxicj4rezxicj4r ICBpZiAobURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzICE9IE5VTEwpIHs8YnI+KyAg ICByZXR1cm4gbURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzLSZndDtHZXREZXZpY2VQ YXRoU2l6ZSAoRGV2aWNlUGF0aCk7PGJyPisgIH08YnI+Kzxicj4rICBBU1NFUlQgKEZBTFNFKTs8 YnI+KyAgcmV0dXJuIDA7PGJyPit9PGJyPis8YnI+Ky8qKjxicj4rICBDcmVhdGVzIGEgbmV3IGNv cHkgb2YgYW4gZXhpc3RpbmcgZGV2aWNlIHBhdGguPGJyPis8YnI+KyAgVGhpcyBmdW5jdGlvbiBh bGxvY2F0ZXMgc3BhY2UgZm9yIGEgbmV3IGNvcHkgb2YgdGhlIGRldmljZSBwYXRoIHNwZWNpZmll ZCBieSBEZXZpY2VQYXRoLjxicj4rICBJZiBEZXZpY2VQYXRoIGlzIE5VTEwsIHRoZW4gTlVMTCBp cyByZXR1cm5lZC4gIElmIHRoZSBtZW1vcnkgaXMgc3VjY2Vzc2Z1bGx5PGJyPisgIGFsbG9jYXRl ZCwgdGhlbiB0aGUgY29udGVudHMgb2YgRGV2aWNlUGF0aCBhcmUgY29waWVkIHRvIHRoZSBuZXds eSBhbGxvY2F0ZWQ8YnI+KyAgYnVmZmVyLCBhbmQgYSBwb2ludGVyIHRvIHRoYXQgYnVmZmVyIGlz IHJldHVybmVkLiAgT3RoZXJ3aXNlLCBOVUxMIGlzIHJldHVybmVkLjxicj4rICBUaGUgbWVtb3J5 IGZvciB0aGUgbmV3IGRldmljZSBwYXRoIGlzIGFsbG9jYXRlZCBmcm9tIEVGSSBib290IHNlcnZp Y2VzIG1lbW9yeS48YnI+KyAgSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxsZXIg dG8gZnJlZSB0aGUgbWVtb3J5IGFsbG9jYXRlZC48YnI+Kzxicj4rICBAcGFyYW0gIERldmljZVBh dGggICAgQSBwb2ludGVyIHRvIGEgZGV2aWNlIHBhdGggZGF0YSBzdHJ1Y3R1cmUuPGJyPis8YnI+ KyAgQHJldHZhbCBOVUxMICAgICAgICAgIERldmljZVBhdGggaXMgTlVMTCBvciBpbnZhbGlkLjxi cj4rICBAcmV0dmFsIE90aGVycyAgICAgICAgQSBwb2ludGVyIHRvIHRoZSBkdXBsaWNhdGVkIGRl dmljZSBwYXRoLjxicj4rPGJyPisqKi88YnI+K0VGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAqPGJy PitFRklBUEk8YnI+K0R1cGxpY2F0ZURldmljZVBhdGggKDxicj4rICBJTiBDT05TVCBFRklfREVW SUNFX1BBVEhfUFJPVE9DT0wgICpEZXZpY2VQYXRoPGJyPisgICk8YnI+K3s8YnI+KyAgaWYgKG1E ZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcyAhPSBOVUxMKSB7PGJyPisgICAgcmV0dXJu IG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcy0mZ3Q7RHVwbGljYXRlRGV2aWNlUGF0 aCAoRGV2aWNlUGF0aCk7PGJyPisgIH08YnI+Kzxicj4rICBBU1NFUlQgKEZBTFNFKTs8YnI+KyAg cmV0dXJuIE5VTEw7PGJyPit9PGJyPis8YnI+Ky8qKjxicj4rICBDcmVhdGVzIGEgbmV3IGRldmlj ZSBwYXRoIGJ5IGFwcGVuZGluZyBhIHNlY29uZCBkZXZpY2UgcGF0aCB0byBhIGZpcnN0IGRldmlj ZSBwYXRoLjxicj4rPGJyPisgIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyBkZXZpY2UgcGF0 aCBieSBhcHBlbmRpbmcgYSBjb3B5IG9mIFNlY29uZERldmljZVBhdGg8YnI+KyAgdG8gYSBjb3B5 IG9mIEZpcnN0RGV2aWNlUGF0aCBpbiBhIG5ld2x5IGFsbG9jYXRlZCBidWZmZXIuICBPbmx5IHRo ZSBlbmQtb2YtZGV2aWNlLXBhdGg8YnI+KyAgZGV2aWNlIG5vZGUgZnJvbSBTZWNvbmREZXZpY2VQ YXRoIGlzIHJldGFpbmVkLiBUaGUgbmV3bHkgY3JlYXRlZCBkZXZpY2UgcGF0aCBpczxicj4rICBy ZXR1cm5lZC4gSWYgRmlyc3REZXZpY2VQYXRoIGlzIE5VTEwsIHRoZW4gaXQgaXMgaWdub3JlZCwg YW5kIGEgZHVwbGljYXRlIG9mPGJyPisgIFNlY29uZERldmljZVBhdGggaXMgcmV0dXJuZWQuICBJ ZiBTZWNvbmREZXZpY2VQYXRoIGlzIE5VTEwsIHRoZW4gaXQgaXMgaWdub3JlZCw8YnI+KyAgYW5k IGEgZHVwbGljYXRlIG9mIEZpcnN0RGV2aWNlUGF0aCBpcyByZXR1cm5lZC4gSWYgYm90aCBGaXJz dERldmljZVBhdGggYW5kPGJyPisgIFNlY29uZERldmljZVBhdGggYXJlIE5VTEwsIHRoZW4gYSBj b3B5IG9mIGFuIGVuZC1vZi1kZXZpY2UtcGF0aCBpcyByZXR1cm5lZC48YnI+Kzxicj4rICBJZiB0 aGVyZSBpcyBub3QgZW5vdWdoIG1lbW9yeSBmb3IgdGhlIG5ld2x5IGFsbG9jYXRlZCBidWZmZXIs IHRoZW4gTlVMTCBpcyByZXR1cm5lZC48YnI+KyAgVGhlIG1lbW9yeSBmb3IgdGhlIG5ldyBkZXZp Y2UgcGF0aCBpcyBhbGxvY2F0ZWQgZnJvbSBFRkkgYm9vdCBzZXJ2aWNlcyBtZW1vcnkuPGJyPisg IEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9y eSBhbGxvY2F0ZWQuPGJyPis8YnI+KyAgQHBhcmFtICBGaXJzdERldmljZVBhdGggICAgICAgICAg ICBBIHBvaW50ZXIgdG8gYSBkZXZpY2UgcGF0aCBkYXRhIHN0cnVjdHVyZS48YnI+KyAgQHBhcmFt ICBTZWNvbmREZXZpY2VQYXRoICAgICAgICAgICBBIHBvaW50ZXIgdG8gYSBkZXZpY2UgcGF0aCBk YXRhIHN0cnVjdHVyZS48YnI+Kzxicj4rICBAcmV0dmFsIE5VTEwgICAgICBJZiB0aGVyZSBpcyBu b3QgZW5vdWdoIG1lbW9yeSBmb3IgdGhlIG5ld2x5IGFsbG9jYXRlZCBidWZmZXIuPGJyPisgIEBy ZXR2YWwgTlVMTCAgICAgIElmIEZpcnN0RGV2aWNlUGF0aCBvciBTZWNvbmREZXZpY2VQYXRoIGlz IGludmFsaWQuPGJyPisgIEByZXR2YWwgT3RoZXJzICAgIEEgcG9pbnRlciB0byB0aGUgbmV3IGRl dmljZSBwYXRoIGlmIHN1Y2Nlc3MuPGJyPisgICAgICAgICAgICAgICAgICAgIE9yIGEgY29weSBh biBlbmQtb2YtZGV2aWNlLXBhdGggaWYgYm90aCBGaXJzdERldmljZVBhdGggYW5kIFNlY29uZERl dmljZVBhdGggYXJlIE5VTEwuPGJyPis8YnI+KyoqLzxicj4rRUZJX0RFVklDRV9QQVRIX1BST1RP Q09MICo8YnI+K0VGSUFQSTxicj4rQXBwZW5kRGV2aWNlUGF0aCAoPGJyPisgIElOIENPTlNUIEVG SV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgKkZpcnN0RGV2aWNlUGF0aCwgIE9QVElPTkFMPGJyPisg IElOIENPTlNUIEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgKlNlY29uZERldmljZVBhdGggIE9Q VElPTkFMPGJyPisgICk8YnI+K3s8YnI+KyAgaWYgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0 aWxpdGllcyAhPSBOVUxMKSB7PGJyPisgICAgcmV0dXJuIG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0 aFV0aWxpdGllcy0mZ3Q7QXBwZW5kRGV2aWNlUGF0aCAoRmlyc3REZXZpY2VQYXRoLCBTZWNvbmRE ZXZpY2VQYXRoKTs8YnI+KyAgfTxicj4rPGJyPisgIEFTU0VSVCAoRkFMU0UpOzxicj4rICByZXR1 cm4gTlVMTDs8YnI+K308YnI+Kzxicj4rLyoqPGJyPisgIENyZWF0ZXMgYSBuZXcgcGF0aCBieSBh cHBlbmRpbmcgdGhlIGRldmljZSBub2RlIHRvIHRoZSBkZXZpY2UgcGF0aC48YnI+Kzxicj4rICBU aGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBuZXcgZGV2aWNlIHBhdGggYnkgYXBwZW5kaW5nIGEgY29w eSBvZiB0aGUgZGV2aWNlIG5vZGU8YnI+KyAgc3BlY2lmaWVkIGJ5IERldmljZVBhdGhOb2RlIHRv IGEgY29weSBvZiB0aGUgZGV2aWNlIHBhdGggc3BlY2lmaWVkIGJ5IERldmljZVBhdGg8YnI+KyAg aW4gYW4gYWxsb2NhdGVkIGJ1ZmZlci4gVGhlIGVuZC1vZi1kZXZpY2UtcGF0aCBkZXZpY2Ugbm9k ZSBpcyBtb3ZlZCBhZnRlciB0aGU8YnI+KyAgZW5kIG9mIHRoZSBhcHBlbmRlZCBkZXZpY2Ugbm9k ZS48YnI+KyAgSWYgRGV2aWNlUGF0aE5vZGUgaXMgTlVMTCB0aGVuIGEgY29weSBvZiBEZXZpY2VQ YXRoIGlzIHJldHVybmVkLjxicj4rICBJZiBEZXZpY2VQYXRoIGlzIE5VTEwgdGhlbiBhIGNvcHkg b2YgRGV2aWNlUGF0aE5vZGUsIGZvbGxvd2VkIGJ5IGFuIGVuZC1vZi1kZXZpY2U8YnI+KyAgcGF0 aCBkZXZpY2Ugbm9kZSBpcyByZXR1cm5lZC48YnI+KyAgSWYgYm90aCBEZXZpY2VQYXRoTm9kZSBh bmQgRGV2aWNlUGF0aCBhcmUgTlVMTCB0aGVuIGEgY29weSBvZiBhbiBlbmQtb2YtZGV2aWNlLXBh dGg8YnI+KyAgZGV2aWNlIG5vZGUgaXMgcmV0dXJuZWQuPGJyPisgIElmIHRoZXJlIGlzIG5vdCBl bm91Z2ggbWVtb3J5IHRvIGFsbG9jYXRlIHNwYWNlIGZvciB0aGUgbmV3IGRldmljZSBwYXRoLCB0 aGVuPGJyPisgIE5VTEwgaXMgcmV0dXJuZWQuPGJyPisgIFRoZSBtZW1vcnkgaXMgYWxsb2NhdGVk IGZyb20gRUZJIGJvb3Qgc2VydmljZXMgbWVtb3J5LiBJdCBpcyB0aGUgcmVzcG9uc2liaWxpdHk8 YnI+KyAgb2YgdGhlIGNhbGxlciB0byBmcmVlIHRoZSBtZW1vcnkgYWxsb2NhdGVkLjxicj4rPGJy PisgIEBwYXJhbSAgRGV2aWNlUGF0aCAgICAgICAgICAgICAgICAgQSBwb2ludGVyIHRvIGEgZGV2 aWNlIHBhdGggZGF0YSBzdHJ1Y3R1cmUuPGJyPisgIEBwYXJhbSAgRGV2aWNlUGF0aE5vZGUgICAg ICAgICAgICAgQSBwb2ludGVyIHRvIGEgc2luZ2xlIGRldmljZSBwYXRoIG5vZGUuPGJyPis8YnI+ KyAgQHJldHZhbCBOVUxMICAgICAgSWYgdGhlcmUgaXMgbm90IGVub3VnaCBtZW1vcnkgZm9yIHRo ZSBuZXcgZGV2aWNlIHBhdGguPGJyPisgIEByZXR2YWwgT3RoZXJzICAgIEEgcG9pbnRlciB0byB0 aGUgbmV3IGRldmljZSBwYXRoIGlmIHN1Y2Nlc3MuPGJyPisgICAgICAgICAgICAgICAgICAgIEEg Y29weSBvZiBEZXZpY2VQYXRoTm9kZSBmb2xsb3dlZCBieSBhbiBlbmQtb2YtZGV2aWNlLXBhdGgg bm9kZTxicj4rICAgICAgICAgICAgICAgICAgICBpZiBib3RoIEZpcnN0RGV2aWNlUGF0aCBhbmQg U2Vjb25kRGV2aWNlUGF0aCBhcmUgTlVMTC48YnI+KyAgICAgICAgICAgICAgICAgICAgQSBjb3B5 IG9mIGFuIGVuZC1vZi1kZXZpY2UtcGF0aCBub2RlIGlmIGJvdGggRmlyc3REZXZpY2VQYXRoPGJy PisgICAgICAgICAgICAgICAgICAgIGFuZCBTZWNvbmREZXZpY2VQYXRoIGFyZSBOVUxMLjxicj4r PGJyPisqKi88YnI+K0VGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAqPGJyPitFRklBUEk8YnI+K0Fw cGVuZERldmljZVBhdGhOb2RlICg8YnI+KyAgSU4gQ09OU1QgRUZJX0RFVklDRV9QQVRIX1BST1RP Q09MICAqRGV2aWNlUGF0aCwgICAgIE9QVElPTkFMPGJyPisgIElOIENPTlNUIEVGSV9ERVZJQ0Vf UEFUSF9QUk9UT0NPTCAgKkRldmljZVBhdGhOb2RlICBPUFRJT05BTDxicj4rICApPGJyPit7PGJy PisgIGlmIChtRGV2aWNlUGF0aExpYkRldmljZVBhdGhVdGlsaXRpZXMgIT0gTlVMTCkgezxicj4r ICAgIHJldHVybiBtRGV2aWNlUGF0aExpYkRldmljZVBhdGhVdGlsaXRpZXMtJmd0O0FwcGVuZERl dmljZU5vZGUgKERldmljZVBhdGgsIERldmljZVBhdGhOb2RlKTs8YnI+KyAgfTxicj4rPGJyPisg IEFTU0VSVCAoRkFMU0UpOzxicj4rICByZXR1cm4gTlVMTDs8YnI+K308YnI+Kzxicj4rLyoqPGJy PisgIENyZWF0ZXMgYSBuZXcgZGV2aWNlIHBhdGggYnkgYXBwZW5kaW5nIHRoZSBzcGVjaWZpZWQg ZGV2aWNlIHBhdGggaW5zdGFuY2UgdG8gdGhlIHNwZWNpZmllZCBkZXZpY2U8YnI+KyAgcGF0aC48 YnI+Kzxicj4rICBUaGlzIGZ1bmN0aW9uIGNyZWF0ZXMgYSBuZXcgZGV2aWNlIHBhdGggYnkgYXBw ZW5kaW5nIGEgY29weSBvZiB0aGUgZGV2aWNlIHBhdGg8YnI+KyAgaW5zdGFuY2Ugc3BlY2lmaWVk IGJ5IERldmljZVBhdGhJbnN0YW5jZSB0byBhIGNvcHkgb2YgdGhlIGRldmljZSBwYXRoIHNwZWNp ZmllZDxicj4rICBieSBEZXZpY2VQYXRoIGluIGEgYWxsb2NhdGVkIGJ1ZmZlci48YnI+KyAgVGhl IGVuZC1vZi1kZXZpY2UtcGF0aCBkZXZpY2Ugbm9kZSBpcyBtb3ZlZCBhZnRlciB0aGUgZW5kIG9m IHRoZSBhcHBlbmRlZCBkZXZpY2U8YnI+KyAgcGF0aCBpbnN0YW5jZSBhbmQgYSBuZXcgZW5kLW9m LWRldmljZS1wYXRoLWluc3RhbmNlIG5vZGUgaXMgaW5zZXJ0ZWQgYmV0d2Vlbi48YnI+KyAgSWYg RGV2aWNlUGF0aCBpcyBOVUxMLCB0aGVuIGEgY29weSBpZiBEZXZpY2VQYXRoSW5zdGFuY2UgaXMg cmV0dXJuZWQuPGJyPisgIElmIERldmljZVBhdGhJbnN0YW5jZSBpcyBOVUxMLCB0aGVuIE5VTEwg aXMgcmV0dXJuZWQuPGJyPisgIElmIERldmljZVBhdGggb3IgRGV2aWNlUGF0aEluc3RhbmNlIGlz IGludmFsaWQsIHRoZW4gTlVMTCBpcyByZXR1cm5lZC48YnI+KyAgSWYgdGhlcmUgaXMgbm90IGVu b3VnaCBtZW1vcnkgdG8gYWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBuZXcgZGV2aWNlIHBhdGgsIHRo ZW48YnI+KyAgTlVMTCBpcyByZXR1cm5lZC48YnI+KyAgVGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQg ZnJvbSBFRkkgYm9vdCBzZXJ2aWNlcyBtZW1vcnkuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eTxi cj4rICBvZiB0aGUgY2FsbGVyIHRvIGZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQuPGJyPis8YnI+ KyAgQHBhcmFtICBEZXZpY2VQYXRoICAgICAgICAgICAgICAgICBBIHBvaW50ZXIgdG8gYSBkZXZp Y2UgcGF0aCBkYXRhIHN0cnVjdHVyZS48YnI+KyAgQHBhcmFtICBEZXZpY2VQYXRoSW5zdGFuY2Ug ICAgICAgICBBIHBvaW50ZXIgdG8gYSBkZXZpY2UgcGF0aCBpbnN0YW5jZS48YnI+Kzxicj4rICBA cmV0dXJuIEEgcG9pbnRlciB0byB0aGUgbmV3IGRldmljZSBwYXRoLjxicj4rPGJyPisqKi88YnI+ K0VGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAqPGJyPitFRklBUEk8YnI+K0FwcGVuZERldmljZVBh dGhJbnN0YW5jZSAoPGJyPisgIElOIENPTlNUIEVGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAgKkRl dmljZVBhdGgsICAgICAgICBPUFRJT05BTDxicj4rICBJTiBDT05TVCBFRklfREVWSUNFX1BBVEhf UFJPVE9DT0wgICpEZXZpY2VQYXRoSW5zdGFuY2UgT1BUSU9OQUw8YnI+KyAgKTxicj4rezxicj4r ICBpZiAobURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzICE9IE5VTEwpIHs8YnI+KyAg ICByZXR1cm4gbURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzLSZndDtBcHBlbmREZXZp Y2VQYXRoSW5zdGFuY2UgKERldmljZVBhdGgsIERldmljZVBhdGhJbnN0YW5jZSk7PGJyPisgIH08 YnI+Kzxicj4rICBBU1NFUlQgKEZBTFNFKTs8YnI+KyAgcmV0dXJuIE5VTEw7PGJyPit9PGJyPis8 YnI+Ky8qKjxicj4rICBDcmVhdGVzIGEgY29weSBvZiB0aGUgY3VycmVudCBkZXZpY2UgcGF0aCBp bnN0YW5jZSBhbmQgcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIG5leHQgZGV2aWNlIHBhdGg8YnI+ KyAgaW5zdGFuY2UuPGJyPis8YnI+KyAgVGhpcyBmdW5jdGlvbiBjcmVhdGVzIGEgY29weSBvZiB0 aGUgY3VycmVudCBkZXZpY2UgcGF0aCBpbnN0YW5jZS4gSXQgYWxzbyB1cGRhdGVzPGJyPisgIERl dmljZVBhdGggdG8gcG9pbnQgdG8gdGhlIG5leHQgZGV2aWNlIHBhdGggaW5zdGFuY2UgaW4gdGhl IGRldmljZSBwYXRoIChvciBOVUxMPGJyPisgIGlmIG5vIG1vcmUpIGFuZCB1cGRhdGVzIFNpemUg dG8gaG9sZCB0aGUgc2l6ZSBvZiB0aGUgZGV2aWNlIHBhdGggaW5zdGFuY2UgY29weS48YnI+KyAg SWYgRGV2aWNlUGF0aCBpcyBOVUxMLCB0aGVuIE5VTEwgaXMgcmV0dXJuZWQuPGJyPisgIElmIERl dmljZVBhdGggcG9pbnRzIHRvIGEgaW52YWxpZCBkZXZpY2UgcGF0aCwgdGhlbiBOVUxMIGlzIHJl dHVybmVkLjxicj4rICBJZiB0aGVyZSBpcyBub3QgZW5vdWdoIG1lbW9yeSB0byBhbGxvY2F0ZSBz cGFjZSBmb3IgdGhlIG5ldyBkZXZpY2UgcGF0aCwgdGhlbjxicj4rICBOVUxMIGlzIHJldHVybmVk Ljxicj4rICBUaGUgbWVtb3J5IGlzIGFsbG9jYXRlZCBmcm9tIEVGSSBib290IHNlcnZpY2VzIG1l bW9yeS4gSXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5PGJyPisgIG9mIHRoZSBjYWxsZXIgdG8gZnJl ZSB0aGUgbWVtb3J5IGFsbG9jYXRlZC48YnI+KyAgSWYgU2l6ZSBpcyBOVUxMLCB0aGVuIEFTU0VS VCgpLjxicj4rPGJyPisgIEBwYXJhbSAgRGV2aWNlUGF0aCAgICAgICAgICAgICAgICAgT24gaW5w dXQsIHRoaXMgaG9sZHMgdGhlIHBvaW50ZXIgdG8gdGhlIGN1cnJlbnQ8YnI+KyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2UgcGF0aCBpbnN0YW5jZS4gT24gb3V0cHV0 LCB0aGlzIGhvbGRzPGJyPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl IHBvaW50ZXIgdG8gdGhlIG5leHQgZGV2aWNlIHBhdGggaW5zdGFuY2U8YnI+KyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvciBOVUxMIGlmIHRoZXJlIGFyZSBubyBtb3JlIGRl dmljZSBwYXRoPGJyPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFu Y2VzIGluIHRoZSBkZXZpY2UgcGF0aCBwb2ludGVyIHRvIGE8YnI+KyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkZXZpY2UgcGF0aCBkYXRhIHN0cnVjdHVyZS48YnI+KyAgQHBh cmFtICBTaXplICAgICAgICAgICAgICAgICAgICAgICBPbiBvdXRwdXQsIHRoaXMgaG9sZHMgdGhl IHNpemUgb2YgdGhlIGRldmljZTxicj4rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHBhdGggaW5zdGFuY2UsIGluIGJ5dGVzIG9yIHplcm8sIGlmIERldmljZVBhdGg8YnI+KyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBOVUxMLjxicj4rPGJyPisgIEBy ZXR1cm4gQSBwb2ludGVyIHRvIHRoZSBjdXJyZW50IGRldmljZSBwYXRoIGluc3RhbmNlLjxicj4r PGJyPisqKi88YnI+K0VGSV9ERVZJQ0VfUEFUSF9QUk9UT0NPTCAqPGJyPitFRklBUEk8YnI+K0dl dE5leHREZXZpY2VQYXRoSW5zdGFuY2UgKDxicj4rICBJTiBPVVQgRUZJX0RFVklDRV9QQVRIX1BS T1RPQ09MICAgICoqRGV2aWNlUGF0aCw8YnI+KyAgT1VUIFVJTlROICAgICAgICAgICAgICAgICAg ICAgICAgICAqU2l6ZTxicj4rICApPGJyPit7PGJyPisgIGlmIChtRGV2aWNlUGF0aExpYkRldmlj ZVBhdGhVdGlsaXRpZXMgIT0gTlVMTCkgezxicj4rICAgIHJldHVybiBtRGV2aWNlUGF0aExpYkRl dmljZVBhdGhVdGlsaXRpZXMtJmd0O0dldE5leHREZXZpY2VQYXRoSW5zdGFuY2UgKERldmljZVBh dGgsIFNpemUpOzxicj4rICB9PGJyPis8YnI+KyAgQVNTRVJUIChGQUxTRSk7PGJyPisgIHJldHVy biBOVUxMOzxicj4rfTxicj4rPGJyPisvKio8YnI+KyAgQ3JlYXRlcyBhIGRldmljZSBub2RlLjxi cj4rPGJyPisgIFRoaXMgZnVuY3Rpb24gY3JlYXRlcyBhIG5ldyBkZXZpY2Ugbm9kZSBpbiBhIG5l d2x5IGFsbG9jYXRlZCBidWZmZXIgb2Ygc2l6ZTxicj4rICBOb2RlTGVuZ3RoIGFuZCBpbml0aWFs aXplcyB0aGUgZGV2aWNlIHBhdGggbm9kZSBoZWFkZXIgd2l0aCBOb2RlVHlwZSBhbmQgTm9kZVN1 YlR5cGUuPGJyPisgIFRoZSBuZXcgZGV2aWNlIHBhdGggbm9kZSBpcyByZXR1cm5lZC48YnI+KyAg SWYgTm9kZUxlbmd0aCBpcyBzbWFsbGVyIHRoYW4gYSBkZXZpY2UgcGF0aCBoZWFkZXIsIHRoZW4g TlVMTCBpcyByZXR1cm5lZC48YnI+KyAgSWYgdGhlcmUgaXMgbm90IGVub3VnaCBtZW1vcnkgdG8g YWxsb2NhdGUgc3BhY2UgZm9yIHRoZSBuZXcgZGV2aWNlIHBhdGgsIHRoZW48YnI+KyAgTlVMTCBp cyByZXR1cm5lZC48YnI+KyAgVGhlIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZnJvbSBFRkkgYm9vdCBz ZXJ2aWNlcyBtZW1vcnkuIEl0IGlzIHRoZSByZXNwb25zaWJpbGl0eTxicj4rICBvZiB0aGUgY2Fs bGVyIHRvIGZyZWUgdGhlIG1lbW9yeSBhbGxvY2F0ZWQuPGJyPis8YnI+KyAgQHBhcmFtICBOb2Rl VHlwZSAgICAgICAgICAgICAgICAgICBUaGUgZGV2aWNlIG5vZGUgdHlwZSBmb3IgdGhlIG5ldyBk ZXZpY2Ugbm9kZS48YnI+KyAgQHBhcmFtICBOb2RlU3ViVHlwZSAgICAgICAgICAgICAgICBUaGUg ZGV2aWNlIG5vZGUgc3ViLXR5cGUgZm9yIHRoZSBuZXcgZGV2aWNlIG5vZGUuPGJyPisgIEBwYXJh bSAgTm9kZUxlbmd0aCAgICAgICAgICAgICAgICAgVGhlIGxlbmd0aCBvZiB0aGUgbmV3IGRldmlj ZSBub2RlLjxicj4rPGJyPisgIEByZXR1cm4gVGhlIG5ldyBkZXZpY2UgcGF0aC48YnI+Kzxicj4r KiovPGJyPitFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKjxicj4rRUZJQVBJPGJyPitDcmVhdGVE ZXZpY2VOb2RlICg8YnI+KyAgSU4gVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgICBOb2Rl VHlwZSw8YnI+KyAgSU4gVUlOVDggICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlU3ViVHlw ZSw8YnI+KyAgSU4gVUlOVDE2ICAgICAgICAgICAgICAgICAgICAgICAgICBOb2RlTGVuZ3RoPGJy PisgICk8YnI+K3s8YnI+KyAgaWYgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcyAh PSBOVUxMKSB7PGJyPisgICAgcmV0dXJuIG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGll cy0mZ3Q7Q3JlYXRlRGV2aWNlTm9kZSAoTm9kZVR5cGUsIE5vZGVTdWJUeXBlLCBOb2RlTGVuZ3Ro KTs8YnI+KyAgfTxicj4rPGJyPisgIEFTU0VSVCAoRkFMU0UpOzxicj4rICByZXR1cm4gTlVMTDs8 YnI+K308YnI+Kzxicj4rLyoqPGJyPisgIERldGVybWluZXMgaWYgYSBkZXZpY2UgcGF0aCBpcyBz aW5nbGUgb3IgbXVsdGktaW5zdGFuY2UuPGJyPis8YnI+KyAgVGhpcyBmdW5jdGlvbiByZXR1cm5z IFRSVUUgaWYgdGhlIGRldmljZSBwYXRoIHNwZWNpZmllZCBieSBEZXZpY2VQYXRoIGlzPGJyPisg IG11bHRpLWluc3RhbmNlLjxicj4rICBPdGhlcndpc2UsIEZBTFNFIGlzIHJldHVybmVkLjxicj4r ICBJZiBEZXZpY2VQYXRoIGlzIE5VTEwgb3IgaW52YWxpZCwgdGhlbiBGQUxTRSBpcyByZXR1cm5l ZC48YnI+Kzxicj4rICBAcGFyYW0gIERldmljZVBhdGggICAgICAgICAgICAgICAgIEEgcG9pbnRl ciB0byBhIGRldmljZSBwYXRoIGRhdGEgc3RydWN0dXJlLjxicj4rPGJyPisgIEByZXR2YWwgIFRS VUUgICAgICAgICAgICAgICAgICAgICAgRGV2aWNlUGF0aCBpcyBtdWx0aS1pbnN0YW5jZS48YnI+ KyAgQHJldHZhbCAgRkFMU0UgICAgICAgICAgICAgICAgICAgICBEZXZpY2VQYXRoIGlzIG5vdCBt dWx0aS1pbnN0YW5jZSwgb3IgRGV2aWNlUGF0aDxicj4rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlzIE5VTEwgb3IgaW52YWxpZC48YnI+Kzxicj4rKiovPGJyPitCT09MRUFO PGJyPitFRklBUEk8YnI+K0lzRGV2aWNlUGF0aE11bHRpSW5zdGFuY2UgKDxicj4rICBJTiBDT05T VCBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgICpEZXZpY2VQYXRoPGJyPisgICk8YnI+K3s8YnI+ KyAgaWYgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcyAhPSBOVUxMKSB7PGJyPisg ICAgcmV0dXJuIG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcy0mZ3Q7SXNEZXZpY2VQ YXRoTXVsdGlJbnN0YW5jZSAoRGV2aWNlUGF0aCk7PGJyPisgIH08YnI+Kzxicj4rICBBU1NFUlQg KEZBTFNFKTs8YnI+KyAgcmV0dXJuIEZBTFNFOzxicj4rfTxicj4rPGJyPisvKio8YnI+KyAgQ29u dmVydHMgYSBkZXZpY2Ugbm9kZSB0byBpdHMgc3RyaW5nIHJlcHJlc2VudGF0aW9uLjxicj4rPGJy PisgIEBwYXJhbSBEZXZpY2VOb2RlICAgICAgICBBIFBvaW50ZXIgdG8gdGhlIGRldmljZSBub2Rl IHRvIGJlIGNvbnZlcnRlZC48YnI+KyAgQHBhcmFtIERpc3BsYXlPbmx5ICAgICAgIElmIERpc3Bs YXlPbmx5IGlzIFRSVUUsIHRoZW4gdGhlIHNob3J0ZXIgdGV4dCByZXByZXNlbnRhdGlvbjxicj4r ICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgdGhlIGRpc3BsYXkgbm9kZSBpcyB1c2VkLCB3 aGVyZSBhcHBsaWNhYmxlLiBJZiBEaXNwbGF5T25seTxicj4rICAgICAgICAgICAgICAgICAgICAg ICAgICAgaXMgRkFMU0UsIHRoZW4gdGhlIGxvbmdlciB0ZXh0IHJlcHJlc2VudGF0aW9uIG9mIHRo ZSBkaXNwbGF5IG5vZGU8YnI+KyAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzIHVzZWQuPGJy PisgIEBwYXJhbSBBbGxvd1Nob3J0Y3V0cyAgICBJZiBBbGxvd1Nob3J0Y3V0cyBpcyBUUlVFLCB0 aGVuIHRoZSBzaG9ydGN1dCBmb3JtcyBvZiB0ZXh0PGJyPisgICAgICAgICAgICAgICAgICAgICAg ICAgICByZXByZXNlbnRhdGlvbiBmb3IgYSBkZXZpY2Ugbm9kZSBjYW4gYmUgdXNlZCwgd2hlcmUg YXBwbGljYWJsZS48YnI+Kzxicj4rICBAcmV0dXJuIEEgcG9pbnRlciB0byB0aGUgYWxsb2NhdGVk IHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRldmljZSBub2RlIG9yIE5VTEwgaWYgRGV2aWNl Tm9kZTxicj4rICAgICAgICAgIGlzIE5VTEwgb3IgdGhlcmUgd2FzIGluc3VmZmljaWVudCBtZW1v cnkuPGJyPis8YnI+KyoqLzxicj4rQ0hBUjE2ICo8YnI+K0VGSUFQSTxicj4rQ29udmVydERldmlj ZU5vZGVUb1RleHQgKDxicj4rICBJTiBDT05TVCBFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgICpE ZXZpY2VOb2RlLDxicj4rICBJTiBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgIERpc3Bs YXlPbmx5LDxicj4rICBJTiBCT09MRUFOICAgICAgICAgICAgICAgICAgICAgICAgIEFsbG93U2hv cnRjdXRzPGJyPisgICk8YnI+K3s8YnI+KyAgaWYgKG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFRv VGV4dCAhPSBOVUxMKSB7PGJyPisgICAgcmV0dXJuIG1EZXZpY2VQYXRoTGliRGV2aWNlUGF0aFRv VGV4dC0mZ3Q7Q29udmVydERldmljZU5vZGVUb1RleHQgKERldmljZU5vZGUsIERpc3BsYXlPbmx5 LCBBbGxvd1Nob3J0Y3V0cyk7PGJyPisgIH08YnI+Kzxicj4rICBBU1NFUlQgKEZBTFNFKTs8YnI+ KyAgcmV0dXJuIE5VTEw7PGJyPit9PGJyPis8YnI+Ky8qKjxicj4rICBDb252ZXJ0cyBhIGRldmlj ZSBwYXRoIHRvIGl0cyB0ZXh0IHJlcHJlc2VudGF0aW9uLjxicj4rPGJyPisgIEBwYXJhbSBEZXZp Y2VQYXRoICAgICAgQSBQb2ludGVyIHRvIHRoZSBkZXZpY2UgdG8gYmUgY29udmVydGVkLjxicj4r ICBAcGFyYW0gRGlzcGxheU9ubHkgICAgIElmIERpc3BsYXlPbmx5IGlzIFRSVUUsIHRoZW4gdGhl IHNob3J0ZXIgdGV4dCByZXByZXNlbnRhdGlvbjxicj4rICAgICAgICAgICAgICAgICAgICAgICAg IG9mIHRoZSBkaXNwbGF5IG5vZGUgaXMgdXNlZCwgd2hlcmUgYXBwbGljYWJsZS4gSWYgRGlzcGxh eU9ubHk8YnI+KyAgICAgICAgICAgICAgICAgICAgICAgICBpcyBGQUxTRSwgdGhlbiB0aGUgbG9u Z2VyIHRleHQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGRpc3BsYXkgbm9kZTxicj4rICAgICAgICAg ICAgICAgICAgICAgICAgIGlzIHVzZWQuPGJyPisgIEBwYXJhbSBBbGxvd1Nob3J0Y3V0cyAgSWYg QWxsb3dTaG9ydGN1dHMgaXMgVFJVRSwgdGhlbiB0aGUgc2hvcnRjdXQgZm9ybXMgb2YgdGV4dDxi cj4rICAgICAgICAgICAgICAgICAgICAgICAgIHJlcHJlc2VudGF0aW9uIGZvciBhIGRldmljZSBu b2RlIGNhbiBiZSB1c2VkLCB3aGVyZSBhcHBsaWNhYmxlLjxicj4rPGJyPisgIEByZXR1cm4gQSBw b2ludGVyIHRvIHRoZSBhbGxvY2F0ZWQgdGV4dCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZGV2aWNl IHBhdGggb3I8YnI+KyAgICAgICAgICBOVUxMIGlmIERldmljZU5vZGUgaXMgTlVMTCBvciB0aGVy ZSB3YXMgaW5zdWZmaWNpZW50IG1lbW9yeS48YnI+Kzxicj4rKiovPGJyPitDSEFSMTYgKjxicj4r RUZJQVBJPGJyPitDb252ZXJ0RGV2aWNlUGF0aFRvVGV4dCAoPGJyPisgIElOIENPTlNUIEVGSV9E RVZJQ0VfUEFUSF9QUk9UT0NPTCAgICpEZXZpY2VQYXRoLDxicj4rICBJTiBCT09MRUFOICAgICAg ICAgICAgICAgICAgICAgICAgICBEaXNwbGF5T25seSw8YnI+KyAgSU4gQk9PTEVBTiAgICAgICAg ICAgICAgICAgICAgICAgICAgQWxsb3dTaG9ydGN1dHM8YnI+KyAgKTxicj4rezxicj4rICBpZiAo bURldmljZVBhdGhMaWJEZXZpY2VQYXRoVG9UZXh0ICE9IE5VTEwpIHs8YnI+KyAgICByZXR1cm4g bURldmljZVBhdGhMaWJEZXZpY2VQYXRoVG9UZXh0LSZndDtDb252ZXJ0RGV2aWNlUGF0aFRvVGV4 dCAoRGV2aWNlUGF0aCwgRGlzcGxheU9ubHksIEFsbG93U2hvcnRjdXRzKTs8YnI+KyAgfTxicj4r PGJyPisgIEFTU0VSVCAoRkFMU0UpOzxicj4rICByZXR1cm4gTlVMTDs8YnI+K308YnI+Kzxicj4r LyoqPGJyPisgIENvbnZlcnQgdGV4dCB0byB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGEg ZGV2aWNlIG5vZGUuPGJyPis8YnI+KyAgQHBhcmFtIFRleHREZXZpY2VOb2RlICBUZXh0RGV2aWNl Tm9kZSBwb2ludHMgdG8gdGhlIHRleHQgcmVwcmVzZW50YXRpb24gb2YgYSBkZXZpY2U8YnI+KyAg ICAgICAgICAgICAgICAgICAgICAgICBub2RlLiBDb252ZXJzaW9uIHN0YXJ0cyB3aXRoIHRoZSBm aXJzdCBjaGFyYWN0ZXIgYW5kIGNvbnRpbnVlczxicj4rICAgICAgICAgICAgICAgICAgICAgICAg IHVudGlsIHRoZSBmaXJzdCBub24tZGV2aWNlIG5vZGUgY2hhcmFjdGVyLjxicj4rPGJyPisgIEBy ZXR1cm4gQSBwb2ludGVyIHRvIHRoZSBFRkkgZGV2aWNlIG5vZGUgb3IgTlVMTCBpZiBUZXh0RGV2 aWNlTm9kZSBpcyBOVUxMIG9yIHRoZXJlIHdhczxicj4rICAgICAgICAgIGluc3VmZmljaWVudCBt ZW1vcnkgb3IgdGV4dCB1bnN1cHBvcnRlZC48YnI+Kzxicj4rKiovPGJyPitFRklfREVWSUNFX1BB VEhfUFJPVE9DT0wgKjxicj4rRUZJQVBJPGJyPitDb252ZXJ0VGV4dFRvRGV2aWNlTm9kZSAoPGJy PisgIElOIENPTlNUIENIQVIxNiAqVGV4dERldmljZU5vZGU8YnI+KyAgKTxicj4rezxicj4rICBp ZiAobURldmljZVBhdGhMaWJEZXZpY2VQYXRoRnJvbVRleHQgIT0gTlVMTCkgezxicj4rICAgIHJl dHVybiBtRGV2aWNlUGF0aExpYkRldmljZVBhdGhGcm9tVGV4dC0mZ3Q7Q29udmVydFRleHRUb0Rl dmljZU5vZGUgKFRleHREZXZpY2VOb2RlKTs8YnI+KyAgfTxicj4rPGJyPisgIEFTU0VSVCAoRkFM U0UpOzxicj4rICByZXR1cm4gTlVMTDs8YnI+K308YnI+Kzxicj4rLyoqPGJyPisgIENvbnZlcnQg dGV4dCB0byB0aGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIGEgZGV2aWNlIHBhdGguPGJyPis8 YnI+Kzxicj4rICBAcGFyYW0gVGV4dERldmljZVBhdGggIFRleHREZXZpY2VQYXRoIHBvaW50cyB0 byB0aGUgdGV4dCByZXByZXNlbnRhdGlvbiBvZiBhIGRldmljZTxicj4rICAgICAgICAgICAgICAg ICAgICAgICAgIHBhdGguIENvbnZlcnNpb24gc3RhcnRzIHdpdGggdGhlIGZpcnN0IGNoYXJhY3Rl ciBhbmQgY29udGludWVzPGJyPisgICAgICAgICAgICAgICAgICAgICAgICAgdW50aWwgdGhlIGZp cnN0IG5vbi1kZXZpY2Ugbm9kZSBjaGFyYWN0ZXIuPGJyPis8YnI+KyAgQHJldHVybiBBIHBvaW50 ZXIgdG8gdGhlIGFsbG9jYXRlZCBkZXZpY2UgcGF0aCBvciBOVUxMIGlmIFRleHREZXZpY2VOb2Rl IGlzIE5VTEwgb3I8YnI+KyAgICAgICAgICB0aGVyZSB3YXMgaW5zdWZmaWNpZW50IG1lbW9yeS48 YnI+Kzxicj4rKiovPGJyPitFRklfREVWSUNFX1BBVEhfUFJPVE9DT0wgKjxicj4rRUZJQVBJPGJy PitDb252ZXJ0VGV4dFRvRGV2aWNlUGF0aCAoPGJyPisgIElOIENPTlNUIENIQVIxNiAqVGV4dERl dmljZVBhdGg8YnI+KyAgKTxicj4rezxicj4rICBpZiAobURldmljZVBhdGhMaWJEZXZpY2VQYXRo RnJvbVRleHQgIT0gTlVMTCkgezxicj4rICAgIHJldHVybiBtRGV2aWNlUGF0aExpYkRldmljZVBh dGhGcm9tVGV4dC0mZ3Q7Q29udmVydFRleHRUb0RldmljZVBhdGggKFRleHREZXZpY2VQYXRoKTs8 YnI+KyAgfTxicj4rPGJyPisgIEFTU0VSVCAoRkFMU0UpOzxicj4rICByZXR1cm4gTlVMTDs8YnI+ K308YnI+Kzxicj5kaWZmIC0tZ2l0IGEvTWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIv VWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2wuaW5mIGIvTWRlUGtn L0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZp Y2VQYXRoUHJvdG9jb2wuaW5mPGJyPm5ldyBmaWxlIG1vZGUgMTAwNjQ0PGJyPmluZGV4IDAwMDAw MDAwMDAuLmViNTQ1ZDQ2MDE8YnI+LS0tIC9kZXYvbnVsbDxicj4rKysgYi9NZGVQa2cvTGlicmFy eS9VZWZpRGV2aWNlUGF0aExpYi9VZWZpRGV2aWNlUGF0aExpYk1hbmRhdG9yeURldmljZVBhdGhQ cm90b2NvbC5pbmY8YnI+QEAgLTAsMCArMSw4NiBAQDxicj4rIyMgQGZpbGU8YnI+KyMgSW5zdGFu Y2Ugb2YgRGV2aWNlIFBhdGggTGlicmFyeSBiYXNlZCBvbiBEZXZpY2UgUGF0aCBQcm90b2NvbC48 YnI+KyM8YnI+KyMgIERldmljZSBQYXRoIExpYnJhcnkgdGhhdCBsYXllcnMgb24gdG9wIG9mIHRo ZSBVRUZJIDIuMCBEZXZpY2UgUGF0aCBQcm90b2NvbC48YnI+KyMgIElmIHRoZSBEZXZpY2VQYXRo RnJvbVRleHQvRGV2aWNlUGF0aFRvVGV4dCBwcm90b2NvbCBkb2Vzbid0IGV4aXN0LCB0aGUgbGli cmFyeTxicj4rIyAgdXNlcyBpdHMgaW50ZXJuYWwgY29udmVyc2lvbiBsb2dpYy48YnI+KyM8YnI+ KyMgQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNl cnZlZC4mbHQ7QlImZ3Q7PGJyPisjPGJyPisjICBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQlNE LTItQ2xhdXNlLVBhdGVudDxicj4rIzxicj4rIzxicj4rIyM8YnI+Kzxicj4rW0RlZmluZXNdPGJy PisgIElORl9WRVJTSU9OICAgICAgICAgICAgICAgICAgICA9IDB4MDAwMTAwMDU8YnI+KyAgQkFT RV9OQU1FICAgICAgICAgICAgICAgICAgICAgID0gVWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlE ZXZpY2VQYXRoUHJvdG9jb2w8YnI+KyAgTU9EVUxFX1VOSV9GSUxFICAgICAgICAgICAgICAgID0g VWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2wudW5pPGJyPisgIEZJ TEVfR1VJRCAgICAgICAgICAgICAgICAgICAgICA9IDVBODM4OUFGLURBRTQtNDA3RS04RkQ1LUQw MjY5NDhCQzU3OTxicj4rICBNT0RVTEVfVFlQRSAgICAgICAgICAgICAgICAgICAgPSBVRUZJX0RS SVZFUjxicj4rICBWRVJTSU9OX1NUUklORyAgICAgICAgICAgICAgICAgPSAxLjA8YnI+KyAgTElC UkFSWV9DTEFTUyAgICAgICAgICAgICAgICAgID0gRGV2aWNlUGF0aExpYnxEWEVfRFJJVkVSIERY RV9SVU5USU1FX0RSSVZFUiBEWEVfU01NX0RSSVZFUiBVRUZJX0FQUExJQ0FUSU9OIFVFRklfRFJJ VkVSIFNNTV9DT1JFPGJyPis8YnI+KyAgQ09OU1RSVUNUT1IgICAgICAgICAgICAgICAgICAgID0g VWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQYXRoUHJvdG9jb2xDb25zdHJ1Y3Rvcjxi cj4rPGJyPisjPGJyPisjICBWQUxJRF9BUkNISVRFQ1RVUkVTICAgICAgICAgICA9IElBMzIgWDY0 IEVCQzxicj4rIzxicj4rPGJyPitbU291cmNlc108YnI+KyAgRGV2aWNlUGF0aFV0aWxpdGllcy5j PGJyPisgIERldmljZVBhdGhUb1RleHQuYzxicj4rICBEZXZpY2VQYXRoRnJvbVRleHQuYzxicj4r ICBVZWZpRGV2aWNlUGF0aExpYk1hbmRhdG9yeURldmljZVBhdGhQcm90b2NvbC5jPGJyPisgIFVl ZmlEZXZpY2VQYXRoTGliLmg8YnI+Kzxicj4rW1BhY2thZ2VzXTxicj4rICBNZGVQa2cvTWRlUGtn LmRlYzxicj4rPGJyPis8YnI+K1tMaWJyYXJ5Q2xhc3Nlc108YnI+KyAgQmFzZUxpYjxicj4rICBV ZWZpQm9vdFNlcnZpY2VzVGFibGVMaWI8YnI+KyAgTWVtb3J5QWxsb2NhdGlvbkxpYjxicj4rICBE ZWJ1Z0xpYjxicj4rICBCYXNlTWVtb3J5TGliPGJyPisgIFBjZExpYjxicj4rICBQcmludExpYjxi cj4rPGJyPitbR3VpZHNdPGJyPisgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgIyMgR1VJRDxicj4r ICBnRWZpVlRVVEY4R3VpZDxicj4rICAjIyBTT01FVElNRVNfQ09OU1VNRVMgICMjIEdVSUQ8YnI+ KyAgZ0VmaVZUMTAwR3VpZDxicj4rICAjIyBTT01FVElNRVNfQ09OU1VNRVMgICMjIEdVSUQ8YnI+ KyAgZ0VmaVZUMTAwUGx1c0d1aWQ8YnI+KyAgIyMgU09NRVRJTUVTX0NPTlNVTUVTICAjIyBHVUlE PGJyPisgIGdFZmlQY0Fuc2lHdWlkPGJyPisgICMjIFNPTUVUSU1FU19DT05TVU1FUyAgIyMgR1VJ RDxicj4rICBnRWZpVWFydERldmljZVBhdGhHdWlkPGJyPisgICMjIFNPTUVUSU1FU19DT05TVU1F UyAgIyMgR1VJRDxicj4rICBnRWZpU2FzRGV2aWNlUGF0aEd1aWQ8YnI+KyAgIyMgU09NRVRJTUVT X0NPTlNVTUVTICAjIyBHVUlEPGJyPisgIGdFZmlWaXJ0dWFsRGlza0d1aWQ8YnI+KyAgIyMgU09N RVRJTUVTX0NPTlNVTUVTICAjIyBHVUlEPGJyPisgIGdFZmlWaXJ0dWFsQ2RHdWlkPGJyPisgICMj IFNPTUVUSU1FU19DT05TVU1FUyAgIyMgR1VJRDxicj4rICBnRWZpUGVyc2lzdGVudFZpcnR1YWxE aXNrR3VpZDxicj4rICAjIyBTT01FVElNRVNfQ09OU1VNRVMgICMjIEdVSUQ8YnI+KyAgZ0VmaVBl cnNpc3RlbnRWaXJ0dWFsQ2RHdWlkPGJyPis8YnI+K1tQcm90b2NvbHNdPGJyPisgIGdFZmlEZXZp Y2VQYXRoUHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAgICAjIyBTT01FVElNRVNfQ09OU1VN RVM8YnI+KyAgZ0VmaURldmljZVBhdGhVdGlsaXRpZXNQcm90b2NvbEd1aWQgICAgICAgICAgICMj IENPTlNVTUVTPGJyPisgIGdFZmlEZXZpY2VQYXRoVG9UZXh0UHJvdG9jb2xHdWlkICAgICAgICAg ICAgICAjIyBTT01FVElNRVNfQ09OU1VNRVM8YnI+KyAgZ0VmaURldmljZVBhdGhGcm9tVGV4dFBy b3RvY29sR3VpZCAgICAgICAgICAgICMjIFNPTUVUSU1FU19DT05TVU1FUzxicj4rICBnRWZpRGVi dWdQb3J0UHJvdG9jb2xHdWlkICAgICAgICAgICAgICAgICAgICAgIyMgVU5ERUZJTkVEPGJyPis8 YnI+K1tQY2RdPGJyPisgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhpbXVtRGV2aWNl UGF0aE5vZGVDb3VudCAjIyBTT01FVElNRVNfQ09OU1VNRVM8YnI+Kzxicj4rW0RlcGV4LmNvbW1v bi5EWEVfRFJJVkVSLCBEZXBleC5jb21tb24uRFhFX1JVTlRJTUVfRFJJVkVSLCBEZXBleC5jb21t b24uRFhFX1NBTF9EUklWRVIsIERlcGV4LmNvbW1vbi5EWEVfU01NX0RSSVZFUl08YnI+KyAgZ0Vm aURldmljZVBhdGhVdGlsaXRpZXNQcm90b2NvbEd1aWQgQU5EPGJyPisgIGdFZmlEZXZpY2VQYXRo VG9UZXh0UHJvdG9jb2xHdWlkIEFORDxicj4rICBnRWZpRGV2aWNlUGF0aEZyb21UZXh0UHJvdG9j b2xHdWlkPGJyPis8YnI+ZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRo TGliL1VlZmlEZXZpY2VQYXRoTGliTWFuZGF0b3J5RGV2aWNlUGF0aFByb3RvY29sLnVuaSBiL01k ZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGliTWFuZGF0b3J5 RGV2aWNlUGF0aFByb3RvY29sLnVuaTxicj5uZXcgZmlsZSBtb2RlIDEwMDY0NDxicj5pbmRleCAw MDAwMDAwMDAwLi4xYjhhNTU2Njk4PGJyPi0tLSAvZGV2L251bGw8YnI+KysrIGIvTWRlUGtnL0xp YnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJNYW5kYXRvcnlEZXZpY2VQ YXRoUHJvdG9jb2wudW5pPGJyPkBAIC0wLDAgKzEsMTggQEA8YnI+Ky8vIC8qKiBAZmlsZTxicj4r Ly8gSW5zdGFuY2Ugb2YgRGV2aWNlIFBhdGggTGlicmFyeSBiYXNlZCBvbiBEZXZpY2UgUGF0aCBQ cm90b2NvbC48YnI+Ky8vPGJyPisvLyBEZXZpY2UgUGF0aCBMaWJyYXJ5IHRoYXQgbGF5ZXJzIG9u IHRvcCBvZiB0aGUgVUVGSSAyLjAgRGV2aWNlIFBhdGggUHJvdG9jb2wuPGJyPisvLyBJZiB0aGUg RGV2aWNlUGF0aEZyb21UZXh0L0RldmljZVBhdGhUb1RleHQgcHJvdG9jb2wgZG9lc24ndCBleGlz dCwgdGhlIGxpYnJhcnk8YnI+Ky8vIHVzZXMgaXRzIGludGVybmFsIGNvbnZlcnNpb24gbG9naWMu PGJyPisvLzxicj4rLy8gQ29weXJpZ2h0IChjKSAyMDE5LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxs IHJpZ2h0cyByZXNlcnZlZC4mbHQ7QlImZ3Q7PGJyPisvLzxicj4rLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQ8YnI+Ky8vPGJyPisvLyAqKi88YnI+Kzxicj4r PGJyPisjc3RyaW5nIFNUUl9NT0RVTEVfQUJTVFJBQ1QgICAgICAgICAgICAgI2xhbmd1YWdlIGVu LVVTICJJbnN0YW5jZSBvZiBEZXZpY2UgUGF0aCBMaWJyYXJ5IGJhc2VkIG9uIERldmljZSBQYXRo IFByb3RvY29sLiI8YnI+Kzxicj4rI3N0cmluZyBTVFJfTU9EVUxFX0RFU0NSSVBUSU9OICAgICAg ICAgICNsYW5ndWFnZSBlbi1VUyAiSW5zdGFuY2Ugb2YgRGV2aWNlIFBhdGggTGlicmFyeSBiYXNl ZCBvbiBEZXZpY2UgUGF0aCBQcm90b2NvbC4iPGJyPis8YnI+ZGlmZiAtLWdpdCBhL01kZVBrZy9M aWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQ YXRoUHJvdG9jb2wuYyBiL01kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZp Y2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQYXRoUHJvdG9jb2wuYzxicj5pbmRleCAxMDZmZjI0NWNj Li5kZGVmNzVkYTE4IDEwMDY0NDxicj4tLS0gYS9NZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0 aExpYi9VZWZpRGV2aWNlUGF0aExpYk9wdGlvbmFsRGV2aWNlUGF0aFByb3RvY29sLmM8YnI+Kysr IGIvTWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJPcHRp b25hbERldmljZVBhdGhQcm90b2NvbC5jPGJyPkBAIC04LDcgKzgsNyBAQDxicj4gICBlbnZpcm9u bWVudCB2YXJpYmxlcy4gTXVsdGktaW5zdGFuY2UgZGV2aWNlIHBhdGhzIHNob3VsZCBuZXZlciBi ZSBwbGFjZWQ8YnI+ICAgb24gYSBIYW5kbGUuPGJyPjxicj4tICBDb3B5cmlnaHQgKGMpIDIwMTMg LSAyMDE4LCBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4mbHQ7QlImZ3Q7 PGJyPisgIENvcHlyaWdodCAoYykgMjAxMyAtIDIwMTksIEludGVsIENvcnBvcmF0aW9uLiBBbGwg cmlnaHRzIHJlc2VydmVkLiZsdDtCUiZndDs8YnI+ICAgU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IEJTRC0yLUNsYXVzZS1QYXRlbnQ8YnI+PGJyPiAqKi88YnI+QEAgLTIxLDggKzIxLDcgQEAgR0xP QkFMX1JFTU9WRV9JRl9VTlJFRkVSRU5DRUQgRUZJX0RFVklDRV9QQVRIX1RPX1RFWFRfUFJPVE9D T0wgICAqbURldmljZVBhdGhMaWI8YnI+IEdMT0JBTF9SRU1PVkVfSUZfVU5SRUZFUkVOQ0VEIEVG SV9ERVZJQ0VfUEFUSF9GUk9NX1RFWFRfUFJPVE9DT0wgKm1EZXZpY2VQYXRoTGliRGV2aWNlUGF0 aEZyb21UZXh0ICA9IE5VTEw7PGJyPjxicj4gLyoqPGJyPi0gIFRoZSBjb25zdHJ1Y3RvciBmdW5j dGlvbiBjYWNoZXMgdGhlIHBvaW50ZXIgdG8gRGV2aWNlUGF0aFV0aWxpdGVzIHByb3RvY29sLDxi cj4tICBEZXZpY2VQYXRoVG9UZXh0IHByb3RvY29sIGFuZCBEZXZpY2VQYXRoRnJvbVRleHQgcHJv dG9jb2wuPGJyPisgIFRoZSBjb25zdHJ1Y3RvciBmdW5jdGlvbiBjYWNoZXMgdGhlIHBvaW50ZXIg dG8gRGV2aWNlUGF0aFV0aWxpdGVzIHByb3RvY29sLjxicj48YnI+ICAgVGhlIGNvbnN0cnVjdG9y IGZ1bmN0aW9uIGxvY2F0ZXMgdGhlc2UgdGhyZWUgcHJvdG9jb2xzIGZyb20gcHJvdG9jb2wgZGF0 YWJhc2UuPGJyPiAgIEl0IHdpbGwgY2FjaGVzIHRoZSBwb2ludGVyIHRvIGxvY2FsIHByb3RvY29s IGluc3RhbmNlIGlmIHRoYXQgb3BlcmF0aW9uIGZhaWxzPGJyPkBAIC00MSwxNiArNDAsMTIgQEAg VWVmaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbENvbnN0cnVjdG9yICg8 YnI+ICAgSU4gICAgICBFRklfU1lTVEVNX1RBQkxFICAgICAgICAgICpTeXN0ZW1UYWJsZTxicj4g ICApPGJyPiB7PGJyPi0gIEVGSV9TVEFUVVMgICAgICAgICAgICAgICAgICAgICAgICBTdGF0dXM7 PGJyPi08YnI+LSAgU3RhdHVzID0gZ0JTLSZndDtMb2NhdGVQcm90b2NvbCAoPGJyPi0gICAgICAg ICAgICAgICAgICAmYW1wO2dFZmlEZXZpY2VQYXRoVXRpbGl0aWVzUHJvdG9jb2xHdWlkLDxicj4t ICAgICAgICAgICAgICAgICAgTlVMTCw8YnI+LSAgICAgICAgICAgICAgICAgIChWT0lEKiopICZh bXA7bURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzPGJyPi0gICAgICAgICAgICAgICAg ICApOzxicj4tICBBU1NFUlRfRUZJX0VSUk9SIChTdGF0dXMpOzxicj4tICBBU1NFUlQgKG1EZXZp Y2VQYXRoTGliRGV2aWNlUGF0aFV0aWxpdGllcyAhPSBOVUxMKTs8YnI+LSAgcmV0dXJuIFN0YXR1 czs8YnI+KyAgZ0JTLSZndDtMb2NhdGVQcm90b2NvbCAoPGJyPisgICAgICAgICZhbXA7Z0VmaURl dmljZVBhdGhVdGlsaXRpZXNQcm90b2NvbEd1aWQsPGJyPisgICAgICAgIE5VTEwsPGJyPisgICAg ICAgIChWT0lEKiopICZhbXA7bURldmljZVBhdGhMaWJEZXZpY2VQYXRoVXRpbGl0aWVzPGJyPisg ICAgICAgICk7PGJyPisgIHJldHVybiBFRklfU1VDQ0VTUzs8YnI+IH08YnI+PGJyPiAvKio8YnI+ ZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQ YXRoTGliT3B0aW9uYWxEZXZpY2VQYXRoUHJvdG9jb2wuaW5mIGIvTWRlUGtnL0xpYnJhcnkvVWVm aURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2Nv bC5pbmY8YnI+aW5kZXggZTgxMmUzZTFkNC4uZDE5NDMwMGJkZSAxMDA2NDQ8YnI+LS0tIGEvTWRl UGtnL0xpYnJhcnkvVWVmaURldmljZVBhdGhMaWIvVWVmaURldmljZVBhdGhMaWJPcHRpb25hbERl dmljZVBhdGhQcm90b2NvbC5pbmY8YnI+KysrIGIvTWRlUGtnL0xpYnJhcnkvVWVmaURldmljZVBh dGhMaWIvVWVmaURldmljZVBhdGhMaWJPcHRpb25hbERldmljZVBhdGhQcm90b2NvbC5pbmY8YnI+ QEAgLTUsNyArNSw3IEBAPGJyPiAjICBJZiB0aGUgRGV2aWNlUGF0aEZyb21UZXh0L0RldmljZVBh dGhUb1RleHQgcHJvdG9jb2wgZG9lc24ndCBleGlzdCwgdGhlIGxpYnJhcnk8YnI+ICMgIHVzZXMg aXRzIGludGVybmFsIGNvbnZlcnNpb24gbG9naWMuPGJyPiAjPGJyPi0jIENvcHlyaWdodCAoYykg MjAxMyAtIDIwMTgsIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLiZsdDtC UiZndDs8YnI+KyMgQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24u IEFsbCByaWdodHMgcmVzZXJ2ZWQuJmx0O0JSJmd0Ozxicj4gIzxicj4gIyAgU1BEWC1MaWNlbnNl LUlkZW50aWZpZXI6IEJTRC0yLUNsYXVzZS1QYXRlbnQ8YnI+ICM8YnI+QEAgLTc5LDYgKzc5LDMg QEA8YnI+IFtQY2RdPGJyPiAgIGdFZmlNZGVQa2dUb2tlblNwYWNlR3VpZC5QY2RNYXhpbXVtRGV2 aWNlUGF0aE5vZGVDb3VudCAjIyBTT01FVElNRVNfQ09OU1VNRVM8YnI+PGJyPi1bRGVwZXguY29t bW9uLkRYRV9EUklWRVIsIERlcGV4LmNvbW1vbi5EWEVfUlVOVElNRV9EUklWRVIsIERlcGV4LmNv bW1vbi5EWEVfU0FMX0RSSVZFUiwgRGVwZXguY29tbW9uLkRYRV9TTU1fRFJJVkVSXTxicj4tICBn RWZpRGV2aWNlUGF0aFV0aWxpdGllc1Byb3RvY29sR3VpZDxicj4tPGJyPmRpZmYgLS1naXQgYS9N ZGVQa2cvTGlicmFyeS9VZWZpRGV2aWNlUGF0aExpYi9VZWZpRGV2aWNlUGF0aExpYk9wdGlvbmFs RGV2aWNlUGF0aFByb3RvY29sLnVuaSBiL01kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGli L1VlZmlEZXZpY2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQYXRoUHJvdG9jb2wudW5pPGJyPmluZGV4 IDA3MGYwYWRkOWYuLjdhN2ViYWFmMWUgMTAwNjQ0PGJyPi0tLSBhL01kZVBrZy9MaWJyYXJ5L1Vl ZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZpY2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQYXRoUHJvdG9j b2wudW5pPGJyPisrKyBiL01kZVBrZy9MaWJyYXJ5L1VlZmlEZXZpY2VQYXRoTGliL1VlZmlEZXZp Y2VQYXRoTGliT3B0aW9uYWxEZXZpY2VQYXRoUHJvdG9jb2wudW5pPGJyPkBAIC01LDE0ICs1LDE0 IEBAPGJyPiAvLyBJZiB0aGUgRGV2aWNlUGF0aEZyb21UZXh0L0RldmljZVBhdGhUb1RleHQgcHJv dG9jb2wgZG9lc24ndCBleGlzdCwgdGhlIGxpYnJhcnk8YnI+IC8vIHVzZXMgaXRzIGludGVybmFs IGNvbnZlcnNpb24gbG9naWMuPGJyPiAvLzxicj4tLy8gQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAx NCwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuJmx0O0JSJmd0Ozxicj4r Ly8gQ29weXJpZ2h0IChjKSAyMDEzIC0gMjAxOSwgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo dHMgcmVzZXJ2ZWQuJmx0O0JSJmd0Ozxicj4gLy88YnI+IC8vIFNQRFgtTGljZW5zZS1JZGVudGlm aWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50PGJyPiAvLzxicj4gLy8gKiovPGJyPjxicj48YnI+LSNz dHJpbmcgU1RSX01PRFVMRV9BQlNUUkFDVCAgICAgICAgICAgICAjbGFuZ3VhZ2UgZW4tVVMgIklu c3RhbmNlIG9mIERldmljZSBQYXRoIExpYnJhcnkgYmFzZWQgb24gRGV2aWNlIFBhdGggUHJvdG9j b2wuIjxicj4rI3N0cmluZyBTVFJfTU9EVUxFX0FCU1RSQUNUICAgICAgICAgICAgICNsYW5ndWFn ZSBlbi1VUyAiSW5zdGFuY2Ugb2YgRGV2aWNlIFBhdGggTGlicmFyeSBiYXNlZCBvbiBEZXZpY2Ug UGF0aCBQcm90b2NvbCBvciBNZW1vcnkgQWxsb2NhdGlvbiBMaWJyYXJ5LiI8YnI+PGJyPi0jc3Ry aW5nIFNUUl9NT0RVTEVfREVTQ1JJUFRJT04gICAgICAgICAgI2xhbmd1YWdlIGVuLVVTICJJbnN0 YW5jZSBvZiBEZXZpY2UgUGF0aCBMaWJyYXJ5IGJhc2VkIG9uIERldmljZSBQYXRoIFByb3RvY29s LiI8YnI+KyNzdHJpbmcgU1RSX01PRFVMRV9ERVNDUklQVElPTiAgICAgICAgICAjbGFuZ3VhZ2Ug ZW4tVVMgIkluc3RhbmNlIG9mIERldmljZSBQYXRoIExpYnJhcnkgYmFzZWQgb24gRGV2aWNlIFBh dGggUHJvdG9jb2wgb3IgTWVtb3J5IEFsbG9jYXRpb24gTGlicmFyeS4iPGJyPjxicj4tLTxicj4y LjIxLjAud2luZG93cy4xPGJyPjxicj48L2Jsb2NrcXVvdGU+PGRpdj48YnI+PC9kaXY+PGRpdj48 YnI+PC9kaXY+ --b1_95e3a1c22645a2279e2e708ddbdad07f--