From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2268 invoked by alias); 22 May 2010 09:40:22 -0000 Received: (qmail 2260 invoked by uid 22791); 22 May 2010 09:40:22 -0000 X-SWARE-Spam-Status: No, hits=0.1 required=5.0 tests=AWL,BAYES_50,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mail.stmi.com (HELO mail.stmi.com) (70.169.254.5) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sat, 22 May 2010 09:40:18 +0000 X-Ninja-PIM: Scanned by Ninja X-Ninja-AttachmentFiltering: (no action) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----_=_NextPart_001_01CAF993.052F9885" x-cr-hashedpuzzle: ALVy BtVk By9q CMh/ EMw0 Ecr5 FfTk GPqm HN9D HlIh IAyX IlpJ IrOd Ix4k JStU J+E6;1;ZQBjAG8AcwAtAHAAYQB0AGMAaABlAHMAQABlAGMAbwBzAC4AcwBvAHUAcgBjAGUAdwBhAHIAZQAuAG8AcgBnAA==;Sosha1_v1;7;{CAFE6D13-6DC9-440E-86F3-857F8ECFF49F};YwBjAG8AdQB0AGEAbgBkAEAAcwB0AG0AaQAuAGMAbwBtAA==;Sat, 22 May 2010 09:37:21 GMT;QQBUADkAMQAgAEEARABDACAAcwB1AHAAcABvAHIAdAA= x-cr-puzzleid: {CAFE6D13-6DC9-440E-86F3-857F8ECFF49F} Content-class: urn:content-classes:message Subject: AT91 ADC support Date: Sat, 22 May 2010 09:40:00 -0000 Message-ID: From: "Christophe Coutand" To: X-IsSubscribed: yes Mailing-List: contact ecos-patches-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-patches-owner@ecos.sourceware.org X-SW-Source: 2010-05/txt/msg00035.txt.bz2 This is a multi-part message in MIME format. ------_=_NextPart_001_01CAF993.052F9885 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Content-length: 68 Includes a possible ADC driver for the AT91 processors. Christophe ------_=_NextPart_001_01CAF993.052F9885 Content-Type: application/octet-stream; name="at91 ADC driver" Content-Transfer-Encoding: base64 Content-Description: at91 ADC driver Content-Disposition: attachment; filename="at91 ADC driver" Content-length: 58516 IyBIRyBjaGFuZ2VzZXQgcGF0Y2gNCiMgUGFyZW50IDg4ZGNkMmU4N2JiM2Q0 MDI5OTdhODUxZDJiNTQ1NDQxOGRjNWQzMzENCiMgVXNlciBjY291dGFuZA0K IyBEYXRlIDEyNzQ1MjA2NjUgLTcyMDANCg0KZGlmZiAtLWdpdCBhL3BhY2th Z2VzL2RldnMvYWRjL2FybS9hdDkxL2N1cnJlbnQvQ2hhbmdlTG9nIGIvcGFj a2FnZXMvZGV2cy9hZGMvYXJtL2F0OTEvY3VycmVudC9DaGFuZ2VMb2cNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNr YWdlcy9kZXZzL2FkYy9hcm0vYXQ5MS9jdXJyZW50L0NoYW5nZUxvZw0KQEAg LTAsMCArMSwzMCBAQA0KKzIwMTAtMDUtMTggIGNjb3V0YW5kICA8Y2NvdXRh bmRAc3RtaS5jb20+DQorDQorCSogQVQ5MSBBREMgZHJpdmVyIHBhY2thZ2Ug Y3JlYXRlZA0KKwkqIGNkbC9hZGNfYXQ5MS5jZGwNCisJKiBzcmMvYWRjX2F0 OTEuYw0KKwkqIHRlc3RzL2F0OTFfYWRjX3Rlc3QuYw0KKw0KKy8vPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQorLy8gIyMjI0dQTENPUFlSSUdI VEJFR0lOIyMjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIA0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICANCisvLyBUaGlzIGZpbGUgaXMgcGFydCBvZiBlQ29zLCB0aGUgRW1iZWRk ZWQgQ29uZmlndXJhYmxlIE9wZXJhdGluZyBTeXN0ZW0uICAgDQorLy8gQ29w eXJpZ2h0IChDKSAyMDEwIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j LiAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8vDQorLy8gVGhpcyBwcm9n cmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0 IGFuZC9vciBtb2RpZnkgICAgIA0KKy8vIGl0IHVuZGVyIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5ICAgICANCisvLyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9yIChhdCB5b3VyIG9wdGlvbikgYW55ICAgDQor Ly8gbGF0ZXIgdmVyc2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8vDQorLy8gVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsIGJ1dCAgICAgIA0KKy8vIFdJVEhPVVQgQU5ZIFdB UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg ICAgICAgICAgICAgICANCisvLyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSAgICAg ICAgDQorLy8gR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKy8vDQor Ly8gWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgICAgICAgIA0KKy8vIGFsb25nIHdp dGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSAgICAgICAg ICAgICAgICAgICAgICAgICAgICANCisvLyBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgICAgICAgICAgICAg ICAgICAgICAgDQorLy8gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw LTEzMDEsIFVTQS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0K Ky8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisvLyAjIyMjR1BM Q09QWVJJR0hURU5EIyMjIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgDQorLy89PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCmRpZmYgLS1naXQgYS9wYWNrYWdlcy9kZXZzL2FkYy9h cm0vYXQ5MS9jdXJyZW50L2NkbC9hZGNfYXQ5MS5jZGwgYi9wYWNrYWdlcy9k ZXZzL2FkYy9hcm0vYXQ5MS9jdXJyZW50L2NkbC9hZGNfYXQ5MS5jZGwNCm5l dyBmaWxlIG1vZGUgMTAwNjQ0DQotLS0gL2Rldi9udWxsDQorKysgYi9wYWNr YWdlcy9kZXZzL2FkYy9hcm0vYXQ5MS9jdXJyZW50L2NkbC9hZGNfYXQ5MS5j ZGwNCkBAIC0wLDAgKzEsMTk4IEBADQorIyA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQ0KKyMNCisjICAgICAgYWRjX2F0OTEuY2RsDQorIw0KKyMgICAgICBl Q29zIEFUOTEgQURDIGNvbmZpZ3VyYXRpb24gZGF0YQ0KKyMNCisjID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQorIyMgIyMjI0VDT1NHUExDT1BZUklHSFRC RUdJTiMjIyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIA0KKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisj IyBUaGlzIGZpbGUgaXMgcGFydCBvZiBlQ29zLCB0aGUgRW1iZWRkZWQgQ29u ZmlndXJhYmxlIE9wZXJhdGluZyBTeXN0ZW0uICAgDQorIyMgQ29weXJpZ2h0 IChDKSAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiAgICAg ICAgICAgICAgICAgICAgICAgIA0KKyMjDQorIyMgZUNvcyBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5 IGl0IHVuZGVyICAgIA0KKyMjIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlICAg ICANCisjIyBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAy IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyICAgICAgDQorIyMgdmVy c2lvbi4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyMjDQorIyMgZUNvcyBpcyBk aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs LCBidXQgV0lUSE9VVCAgICAgIA0KKyMjIEFOWSBXQVJSQU5UWTsgd2l0aG91 dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciAgICANCisjIyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgICAgDQor IyMgZm9yIG1vcmUgZGV0YWlscy4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KKyMjDQorIyMgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgICAgICAgIA0KKyMjIGFsb25nIHdpdGggZUNv czsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuLCAgICANCisjIyA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo IEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuICAgICAgICAg ICAgDQorIyMNCisjIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uLCBpZiBvdGhl ciBmaWxlcyBpbnN0YW50aWF0ZSB0ZW1wbGF0ZXMgb3IgdXNlICAgICAgDQor IyMgbWFjcm9zIG9yIGlubGluZSBmdW5jdGlvbnMgZnJvbSB0aGlzIGZpbGUs IG9yIHlvdSBjb21waWxlIHRoaXMgZmlsZSAgICAgIA0KKyMjIGFuZCBsaW5r IGl0IHdpdGggb3RoZXIgd29ya3MgdG8gcHJvZHVjZSBhIHdvcmsgYmFzZWQg b24gdGhpcyBmaWxlLCAgICAgICANCisjIyB0aGlzIGZpbGUgZG9lcyBub3Qg YnkgaXRzZWxmIGNhdXNlIHRoZSByZXN1bHRpbmcgd29yayB0byBiZSBjb3Zl cmVkIGJ5ICAgDQorIyMgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl LiBIb3dldmVyIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhpcyBmaWxlICAgIA0K KyMjIG11c3Qgc3RpbGwgYmUgbWFkZSBhdmFpbGFibGUgaW4gYWNjb3JkYW5j ZSB3aXRoIHNlY3Rpb24gKDMpIG9mIHRoZSBHTlUgICANCisjIyBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlIHYyLiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgDQorIyMNCisjIyBUaGlzIGV4Y2VwdGlv biBkb2VzIG5vdCBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSBh IHdvcmsgYmFzZWQgICAgDQorIyMgb24gdGhpcyBmaWxlIG1pZ2h0IGJlIGNv dmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgICAg ICAgIA0KKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCisjIyAj IyMjRUNPU0dQTENPUFlSSUdIVEVORCMjIyMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgDQorIyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KKyMjIyMjI0RFU0NSSVBUSU9OQkVHSU4jIyMjDQorIw0K KyMgQXV0aG9yKHMpOiAgICAgIGNjb3V0YW5kQHN0bWkuY29tDQorIyBDb250 cmlidXRvcnM6ICAgDQorIyBEYXRlOiAgICAgICAgICAgMjAxMC0wMi0xMg0K KyMNCisjIyMjI0RFU0NSSVBUSU9ORU5EIyMjIw0KKyMNCisjID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09DQorDQorDQorY2RsX3BhY2thZ2UgQ1lHUEtHX0RF VlNfQURDX0FSTV9BVDkxIHsNCisgICAgZGlzcGxheSAgICAgIkFEQyBoYXJk d2FyZSBkZXZpY2UgZHJpdmVyIGZvciBBVDkxIGZhbWlseSBvZiBBUk0gY29u dHJvbGxlcnMiDQorICAgIA0KKyAgICBwYXJlbnQgICAgICBDWUdQS0dfSU9f QURDX0RFVklDRVMNCisgICAgYWN0aXZlX2lmICAgQ1lHUEtHX0lPX0FEQ19E RVZJQ0VTDQorICAgIGFjdGl2ZV9pZiAgIENZR1BLR19IQUxfQVJNX0FUOTEN CisgICAgcmVxdWlyZXMgICAge0NZR05VTV9JT19BRENfU0FNUExFX1NJWkUg PD0gMTJ9DQorICAgIHJlcXVpcmVzICAgIHtDWUdOVU1fSU9fQURDX1NBTVBM RV9TSVpFID49IDEwfQ0KKyAgICBkZXNjcmlwdGlvbiAiIA0KKyAgICAgICAg ICAgVGhpcyBwYWNrYWdlIHByb3ZpZGVzIGEgZ2VuZXJpYyBBREMgZGV2aWNl IGRyaXZlciBmb3IgdGhlIG9uLWNoaXANCisgICAgICAgICAgIEFEQyBwZXJp cGhlcmFscyBpbiBBVDkxIHByb2Nlc3NvcnMuIg0KKyAgICAgICAgICAgDQor ICAgIGluY2x1ZGVfZGlyIGN5Zy9pbw0KKyAgICBjb21waWxlICAgICAtbGli cmFyeT1saWJleHRyYXMuYSBhZGNfYXQ5MS5jDQorICAgIA0KKyAgICBjZGxf aW50ZXJmYWNlIENZR0lOVF9ERVZTX0FEQ19BUk1fQVQ5MV9DSEFOTkVMUyB7 DQorICAgICAgICBkaXNwbGF5ICJOdW1iZXIgb2YgQURDIGNoYW5uZWxzIg0K KyAgICB9ICANCisgICANCisgICAgY2RsX29wdGlvbiBDWUdQS0dfREVWU19B RENfQVJNX0FUOTFfREVCVUdfTEVWRUwgew0KKyAgICAgICAgIGRpc3BsYXkg IkRyaXZlciBkZWJ1ZyBvdXRwdXQgbGV2ZWwiDQorICAgICAgICAgZmxhdm9y ICBkYXRhDQorICAgICAgICAgbGVnYWxfdmFsdWVzIHswIDEgMn0NCisgICAg ICAgICBkZWZhdWx0X3ZhbHVlIDANCisgICAgICAgICBkZXNjcmlwdGlvbiAg ICINCisgICAgICAgICAgICAgVGhpcyBvcHRpb24gc3BlY2lmaWVzIHRoZSBs ZXZlbCBvZiBkZWJ1ZyBkYXRhIG91dHB1dCBieQ0KKyAgICAgICAgICAgICB0 aGUgQVQ5MSBBREMgZGV2aWNlIGRyaXZlci4gQSB2YWx1ZSBvZiAwIHNpZ25p Zmllcw0KKyAgICAgICAgICAgICBubyBkZWJ1ZyBkYXRhIG91dHB1dDsgMSBz aWduaWZpZXMgbm9ybWFsIGRlYnVnIGRhdGENCisgICAgICAgICAgICAgb3V0 cHV0LiBJZiBhbiBvdmVycnVuIG9jY3VycmVkIHRoZW4gdGhpcyBjYW4gb25s eSBiZQ0KKyAgICAgICAgICAgICBkZXRlY3RlZCBieSBkZWJ1ZyBvdXRwdXQg bWVzc2FnZXMuIiAgICAgICAgIA0KKyAgICB9DQorICAgIA0KKyAgICBjZGxf b3B0aW9uIENZR05VTV9ERVZTX0FEQ19BUk1fQVQ5MV9TRUxFQ1RfVElNRVIg ew0KKyAgICAgICAgZGlzcGxheSAgICAgICAiSW50ZXJydXB0IHByaW9yaXR5 Ig0KKyAgICAgICAgZmxhdm9yICAgICAgICBkYXRhDQorICAgICAgICBsZWdh bF92YWx1ZXMgezAgMSAyfQ0KKyAgICAgICAgZGVmYXVsdF92YWx1ZSAxDQor ICAgICAgICBkZXNjcmlwdGlvbiAgICINCisgICAgICAgICAgICBUaGlzIG9w dGlvbiBzZWxlY3RzIHRoZSB0aW1lciBjaGFubmVsIHRvIGJlIHVzZWQgZm9y IGdlbmVyYXRpbmcgdGhlIA0KKyAgICAgICAgICAgIHNhbXBsaW5nIGludGVy dmFsLiBUaW1lciBjaGFubmVsIDAgY2FuIGJlIGFzc2lnbmVkIGFzIFJlYWwg VGltZSBLZXJuZWwgY2xvY2sgDQorICAgICAgICAgICAgc28gdGltZXIgY2hh bm5lbCAxIGlzIHNldCB0byBiZSB0aGUgZGVmYXVsdCB2YWx1ZS4iDQorICAg IH0NCisNCisgICAgY2RsX29wdGlvbiBDWUdOVU1fREVWU19BRENfQVJNX0FU OTFfUFJFU0NBTCB7DQorICAgICAgICBkaXNwbGF5ICAgICAgICJBREMgY2xv Y2sgc2V0dGluZyINCisgICAgICAgIGZsYXZvciAgICAgICAgZGF0YQ0KKyAg ICAgICAgbGVnYWxfdmFsdWVzICAwIHRvIDI1NQ0KKyAgICAgICAgZGVmYXVs dF92YWx1ZSAxMjgNCisgICAgICAgIGRlc2NyaXB0aW9uICAgIg0KKyAgICAg ICAgICAgIFRoaXMgb3B0aW9uIHNldHMgdGhlIEFUOTEgQURDIFBSRVNDQUwg dmFsdWUuIEFEQ0Nsb2NrID0gTUNLIC8gKChQUkVTQ0FMICsgMSkgKiAyKSIN CisgICAgfQ0KKw0KKyAgICBjZGxfb3B0aW9uIENZR05VTV9ERVZTX0FEQ19B Uk1fQVQ5MV9TVEFSVFVQX1RJTUUgew0KKyAgICAgICAgZGlzcGxheSAgICAg ICAiQURDIHN0YXJ0IHVwIHRpbWUiDQorICAgICAgICBmbGF2b3IgICAgICAg IGRhdGENCisgICAgICAgIGxlZ2FsX3ZhbHVlcyAgMCB0byAyNTUNCisgICAg ICAgIGRlZmF1bHRfdmFsdWUgMTI4DQorICAgICAgICBkZXNjcmlwdGlvbiAg ICINCisgICAgICAgICAgICBUaGlzIG9wdGlvbiBzZXRzIHRoZSBBVDkxIEFE QyBTdGFydHVwIHZhbHVlLiBBREMgU3RhcnQgVXAgVGltZSA9IChTVEFSVFVQ KzEpICogOCAvIEFEQ0Nsb2NrIg0KKyAgICB9DQorDQorICAgIGNkbF9vcHRp b24gQ1lHTlVNX0RFVlNfQURDX0FSTV9BVDkxX1NIVElNIHsNCisgICAgICAg IGRpc3BsYXkgICAgICAgIkFEQyBzdGFydCB1cCB0aW1lIg0KKyAgICAgICAg Zmxhdm9yICAgICAgICBkYXRhDQorICAgICAgICBsZWdhbF92YWx1ZXMgIDAg dG8gMTUNCisgICAgICAgIGRlZmF1bHRfdmFsdWUgNw0KKyAgICAgICAgZGVz Y3JpcHRpb24gICAiDQorICAgICAgICAgICAgVGhpcyBvcHRpb24gc2V0cyB0 aGUgQVQ5MSBBREMgU2FtcGxlIGFuZCBIb2xkIFRpbWUuIFNhbXBsZSBhbmQg SG9sZCBUaW1lID0gU0hUSU0gLyBBRENDbG9jayINCisgICAgfQ0KKw0KKyAg ICBjZGxfb3B0aW9uIENZR05VTV9ERVZTX0FEQ19BUk1fQVQ5MV9JTlRQUklP IHsNCisgICAgICAgIGRpc3BsYXkgICAgICAgIkludGVycnVwdCBwcmlvcml0 eSINCisgICAgICAgIGZsYXZvciAgICAgICAgZGF0YQ0KKyAgICAgICAgbGVn YWxfdmFsdWVzICAwIHRvIDE1DQorICAgICAgICBkZWZhdWx0X3ZhbHVlIDE1 DQorICAgICAgICBkZXNjcmlwdGlvbiAgICINCisgICAgICAgICAgICBUaGlz IG9wdGlvbiBzZWxlY3RzIHRoZSBpbnRlcnJ1cHQgcHJpb3JpdHkgZm9yIHRo ZSBBREMNCisgICAgICAgICAgICBpbnRlcnJ1cHRzLiAgVGltZXIgeCBpcyB1 c2VkIGZvciBnZW5lcmF0aW5nIHRoZSBzYW1wbGUNCisgICAgICAgICAgICBj bG9jay4gU28gdGhpcyBvcHRpb24gY29uZmlndXJlcyB0aGUgaW50ZXJydXB0 IHByaW9yaXR5DQorICAgICAgICAgICAgZm9yIHRpbWVyIHguIFRoZXJlIGFy ZSAxNiBwcmlvcml0eSBsZXZlbHMgY29ycmVzcG9uZGluZyB0bw0KKyAgICAg ICAgICAgIHRoZSB2YWx1ZXMgMCB0aHJvdWdoIDE1IGRlY2ltYWwsIG9mIHdo aWNoIDE1IGlzIHRoZSBsb3dlc3QNCisgICAgICAgICAgICBwcmlvcml0eS4g VGhlIHJlc2V0IHZhbHVlIG9mIHRoZXNlIHJlZ2lzdGVycyBkZWZhdWx0cyBh bGwNCisgICAgICAgICAgICBpbnRlcnJ1cHRzIHRvIHRoZSBsb3dlc3QgcHJp b3JpdHksIGFsbG93aW5nIGEgc2luZ2xlIHdyaXRlDQorICAgICAgICAgICAg dG8gZWxldmF0ZSB0aGUgcHJpb3JpdHkgb2YgYW4gaW5kaXZpZHVhbCBpbnRl cnJ1cHQuIg0KKyAgICB9DQorDQorICAgICAgDQorICAgIGNkbF9vcHRpb24g Q1lHTlVNX0RFVlNfQURDX0FSTV9BVDkxX0RFRkFVTFRfUkFURSB7DQorICAg ICAgICBkaXNwbGF5ICJEZWZhdWx0IHNhbXBsZSByYXRlIg0KKyAgICAgICAg Zmxhdm9yICAgZGF0YQ0KKyAgICAgICAgbGVnYWxfdmFsdWVzIDEgdG8gMTAw MDANCisgICAgICAgIGRlZmF1bHRfdmFsdWUgMTAwDQorICAgICAgICBkZXNj cmlwdGlvbiAiDQorICAgICAgICAgICAgVGhlIGRyaXZlciB3aWxsIGJlIGlu aXRpYWxpemVkIHdpdGggdGhlIGRlZmF1bHQgc2FtcGxlIHJhdGUuDQorICAg ICAgICAgICAgSWYgeW91IHJhaXNlIHRoZSBkZWZhdWx0IHNhbXBsZSByYXRl IHlvdSBtaWdodCBuZWVkIHRvIGluY3JlYXNlDQorICAgICAgICAgICAgdGhl IGJ1ZmZlciBzaXplIGZvciBlYWNoIGNoYW5uZWwuIg0KKyAgICB9DQorICAg ICAgICAgICAgICAgIA0KKyAgICAjIFN1cHBvcnQgdXAgdG8gOCBBREMgY2hh bm5lbHMNCisgICAgZm9yIHsgc2V0IDo6Y2hhbm5lbCAwIH0geyAkOjpjaGFu bmVsIDwgOCB9IHsgaW5jciA6OmNoYW5uZWwgfSB7ICANCisgICAgDQorICAg ICAgICBjZGxfY29tcG9uZW50IENZR1BLR19ERVZTX0FEQ19BUk1fQVQ5MV9D SEFOTkVMW3NldCA6OmNoYW5uZWxdIHsNCisgICAgICAgICAgICBkaXNwbGF5 ICAgICAgICAiQWNjZXNzIEFEQyBjaGFubmVsIFtzZXQgOjpjaGFubmVsXSIN CisgICAgICAgICAgICBmbGF2b3IgICAgICAgICAgYm9vbA0KKyAgICAgICAg ICAgIGRlZmF1bHRfdmFsdWUgICBbc2V0IDo6Y2hhbm5lbF0gPT0gMA0KKyAg ICAgICAgICAgIGltcGxlbWVudHMgICAgICBDWUdJTlRfREVWU19BRENfQVJN X0FUOTFfQ0hBTk5FTFMNCisgICAgICAgICAgICBkZXNjcmlwdGlvbiAiDQor ICAgICAgICAgICAgICAgIElmIHRoZSBhcHBsaWNhdGlvbiBuZWVkcyB0byBh Y2Nlc3MgdGhlIG9uLWNoaXAgQURDDQorICAgICAgICAgICAgICAgIGNoYW5u ZWwgW3NldCA6OmNoYW5uZWxdIHZpYSBhbiBlQ29zIEFEQyBkcml2ZXIgdGhl bg0KKyAgICAgICAgICAgICAgICB0aGlzIG9wdGlvbiBzaG91bGQgYmUgZW5h YmxlZC4iDQorICAgICANCisgICAgICAgICAgICBjZGxfb3B0aW9uIENZR0RB VF9ERVZTX0FEQ19BUk1fQVQ5MV9DSEFOTkVMW3NldCA6OmNoYW5uZWxdX05B TUUgew0KKyAgICAgICAgICAgICAgICBkaXNwbGF5ICJEZXZpY2UgbmFtZSIN CisgICAgICAgICAgICAgICAgZmxhdm9yICAgICAgZGF0YQ0KKyAgICAgICAg ICAgICAgICBkZWZhdWx0X3ZhbHVlICAgW2Zvcm1hdCB7IlwiL2Rldi9hZGMw JWRcIiJ9ICQ6OmNoYW5uZWxdDQorICAgICAgICAgICAgICAgIGRlc2NyaXB0 aW9uICINCisgICAgICAgICAgICAgICAgICAgIFRoaXMgb3B0aW9uIGNvbnRy b2xzIHRoZSBuYW1lIHRoYXQgYW4gZUNvcyBhcHBsaWNhdGlvbg0KKyAgICAg ICAgICAgICAgICAgICAgc2hvdWxkIHVzZSB0byBhY2Nlc3MgdGhpcyBkZXZp Y2UgdmlhIGN5Z19pb19sb29rdXAoKSwNCisgICAgICAgICAgICAgICAgICAg IG9wZW4oKSwgb3Igc2ltaWxhciBjYWxscy4iDQorICAgICAgICAgICAgfQ0K KyAgICAgICAgDQorICAgICAgICAgICAgY2RsX29wdGlvbiBDWUdEQVRfREVW U19BRENfQVJNX0FUOTFfQ0hBTk5FTFtzZXQgOjpjaGFubmVsXV9CVUZTSVpF IHsNCisgICAgICAgICAgICAgICAgZGlzcGxheSAiU2l6ZSBvZiBkYXRhIGJ1 ZmZlciINCisgICAgICAgICAgICAgICAgZmxhdm9yICBkYXRhDQorICAgICAg ICAgICAgICAgIGxlZ2FsX3ZhbHVlcyAgMHgwMSB0byAweDIwMDAwMDANCisg ICAgICAgICAgICAgICAgZGVmYXVsdF92YWx1ZSA1MTINCisgICAgICAgICAg ICAgICAgZGVzY3JpcHRpb24gIg0KKyAgICAgICAgICAgICAgICAgICAgVGhp cyBvcHRpb24gY29udHJvbHMgdGhlIG51bWJlciBvZiBzYW1wbGVzIHRoZQ0K KyAgICAgICAgICAgICAgICAgICAgYnVmZmVyIGNhbiBzdG9yZS4gVGhlIHJl cXVpcmVkIFJBTSBkZXBlbmRzIG9uIHRoZQ0KKyAgICAgICAgICAgICAgICAg ICAgc2FtcGxlIHNpemUgYW5kIG9uIHRoZSBudW1iZXIgb2Ygc2FtcGxlcy4g SWYgdGhlDQorICAgICAgICAgICAgICAgICAgICBzYW1wbGUgc2l6ZSBpcyA8 PSA4IGJpdCB0aGUgdGhlIHJlcXVpcmVkIFJBTSA9DQorICAgICAgICAgICAg ICAgICAgICBzaXplIG9mIGRhdGEgYnVmZmVyLiBJZiB0aGUgc2FtcGxlIHNp emUgaXMgOSBvciAxMA0KKyAgICAgICAgICAgICAgICAgICAgYml0IHRoZW4g cmVxdWlyZWQgUkFNID0gc2l6ZSBvZiBkYXRhIGJ1ZmZlciAqIDIuIg0KKyAg ICAgICAgICAgIH0gDQorICAgICAgICB9IA0KKyAgICB9DQorICAgIA0KKyAg ICBjZGxfb3B0aW9uIENZR1BLR19ERVZTX0FEQ19BUk1fQVQ5MV9URVNUUyB7 DQorICAgICAgICBkaXNwbGF5ICJUZXN0cyBmb3IgQVQ5MSBBREMgZHJpdmVy Ig0KKyAgICAgICAgZmxhdm9yICBkYXRhDQorICAgICAgICBub19kZWZpbmUN CisgICAgICAgIGNhbGN1bGF0ZWQgeyAidGVzdHMvYXQ5MV9hZGNfdGVzdCIg fQ0KKyAgICAgICAgZGVzY3JpcHRpb24gICAiDQorICAgICAgICAgICAgVGhp cyBvcHRpb24gc3BlY2lmaWVzIHRoZSBzZXQgb2YgdGVzdHMgZm9yIHRoZSBB VDkxDQorICAgICAgICAgICAgQURDIGRldmljZSBkcml2ZXIuIg0KKyAgICB9 DQorDQorfQ0KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL2RldnMvYWRjL2FybS9h dDkxL2N1cnJlbnQvc3JjL2FkY19hdDkxLmMgYi9wYWNrYWdlcy9kZXZzL2Fk Yy9hcm0vYXQ5MS9jdXJyZW50L3NyYy9hZGNfYXQ5MS5jDQpuZXcgZmlsZSBt b2RlIDEwMDY0NA0KLS0tIC9kZXYvbnVsbA0KKysrIGIvcGFja2FnZXMvZGV2 cy9hZGMvYXJtL2F0OTEvY3VycmVudC9zcmMvYWRjX2F0OTEuYw0KQEAgLTAs MCArMSw1MjQgQEANCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 DQorLy8NCisvLyAgICAgIGFkY19hdDkxLmMNCisvLw0KKy8vICAgICAgQURD IGRyaXZlciBmb3IgQVQ5MSBvbiBjaGlwIEFEQw0KKy8vDQorLy89PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KKy8vICMjIyNFQ09TR1BMQ09QWVJJ R0hUQkVHSU4jIyMjDQorLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KKy8vIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIGVD b3MsIHRoZSBFbWJlZGRlZCBDb25maWd1cmFibGUgT3BlcmF0aW5nIFN5c3Rl bS4NCisvLyBDb3B5cmlnaHQgKEMpIDIwMDggRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuDQorLy8NCisvLyBlQ29zIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQgdW5k ZXINCisvLyB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZQ0KKy8vIFNvZnR3YXJl IEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXINCisvLyB2ZXJzaW9uLg0KKy8vDQorLy8gZUNvcyBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLCBidXQgV0lUSE9VVA0KKy8vIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBv cg0KKy8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KKy8vIGZvciBtb3Jl IGRldGFpbHMuDQorLy8NCisvLyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KKy8v IGFsb25nIHdpdGggZUNvczsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLA0KKy8vIDUxIEZyYW5rbGluIFN0 cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVT QS4NCisvLw0KKy8vIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIGlmIG90aGVy IGZpbGVzIGluc3RhbnRpYXRlIHRlbXBsYXRlcyBvciB1c2UNCisvLyBtYWNy b3Mgb3IgaW5saW5lIGZ1bmN0aW9ucyBmcm9tIHRoaXMgZmlsZSwgb3IgeW91 IGNvbXBpbGUgdGhpcyBmaWxlDQorLy8gYW5kIGxpbmsgaXQgd2l0aCBvdGhl ciB3b3JrcyB0byBwcm9kdWNlIGEgd29yayBiYXNlZCBvbiB0aGlzIGZpbGUs DQorLy8gdGhpcyBmaWxlIGRvZXMgbm90IGJ5IGl0c2VsZiBjYXVzZSB0aGUg cmVzdWx0aW5nIHdvcmsgdG8gYmUgY292ZXJlZCBieQ0KKy8vIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gSG93ZXZlciB0aGUgc291cmNlIGNv ZGUgZm9yIHRoaXMgZmlsZQ0KKy8vIG11c3Qgc3RpbGwgYmUgbWFkZSBhdmFp bGFibGUgaW4gYWNjb3JkYW5jZSB3aXRoIHNlY3Rpb24gKDMpIG9mIHRoZSBH TlUNCisvLyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHYyLg0KKy8vDQorLy8g VGhpcyBleGNlcHRpb24gZG9lcyBub3QgaW52YWxpZGF0ZSBhbnkgb3RoZXIg cmVhc29ucyB3aHkgYSB3b3JrIGJhc2VkDQorLy8gb24gdGhpcyBmaWxlIG1p Z2h0IGJlIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlLg0KKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0NCisvLyAjIyMjRUNPU0dQTENPUFlSSUdIVEVORCMjIyMNCisv Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLy8jIyMjI0RFU0NS SVBUSU9OQkVHSU4jIyMjDQorLy8NCisvLyBBdXRob3Iocyk6ICAgT3JpZ2lu YWwgbHBjMjR4eCBkcml2ZXIgZnJvbSBVd2UgS2luZGxlcg0KKy8vICAgICAg ICAgICAgICBVcGRhdGVkIGZvciBBdG1lbCBBVDkxIGRldmljZSwgY2NvdXRh bmQgPGNjb3V0YW5kQHN0bWkuY29tPg0KKy8vIENvbnRyaWJ1dG9yczoNCisv LyBEYXRlOiAgICAgICAgIDIwMTAtMDItMTUNCisvLyBQdXJwb3NlOg0KKy8v IERlc2NyaXB0aW9uOg0KKy8vDQorLy8jIyMjREVTQ1JJUFRJT05FTkQjIyMj DQorLy8NCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorDQor DQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy8vICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5DTFVERVMNCisvLz09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09DQorI2luY2x1ZGUgPHBrZ2NvbmYv c3lzdGVtLmg+DQorI2luY2x1ZGUgPHBrZ2NvbmYvZGV2c19hZGNfYXJtX2F0 OTEuaD4NCisNCisjaW5jbHVkZSA8Y3lnL2luZnJhL2N5Z190eXBlLmg+DQor I2luY2x1ZGUgPGN5Zy9pbmZyYS9jeWdfYXNzLmg+DQorI2luY2x1ZGUgPGN5 Zy9pbmZyYS9kaWFnLmg+DQorI2luY2x1ZGUgPGN5Zy9pby9hZGMuaD4NCisj aW5jbHVkZSA8Y3lnL2hhbC9oYWxfYXJjaC5oPg0KKyNpbmNsdWRlIDxjeWcv aGFsL2hhbF9pby5oPg0KKyNpbmNsdWRlIDxjeWcvaGFsL2hhbF9pbnRyLmg+ DQorI2luY2x1ZGUgPGN5Zy9oYWwvZHJ2X2FwaS5oPg0KKw0KKyNpZiBDWUdQ S0dfREVWU19BRENfQVJNX0FUOTFfREVCVUdfTEVWRUwgPiAwDQorICAgI2Rl ZmluZSBhdDkxX2FkY19wcmludGYoYXJncy4uLikgZGlhZ19wcmludGYoYXJn cykNCisjZWxzZQ0KKyAgICNkZWZpbmUgYXQ5MV9hZGNfcHJpbnRmKGFyZ3Mu Li4pDQorI2VuZGlmDQorDQorI2RlZmluZSBBVDkxX01BWF9BRENfQ0hBTiA4 IC8vIG1heGltdW0gbnVtYmVyIG9mIGNoYW5uZWxzIGZvciBBVDkxIGRldmlj ZQ0KKw0KKyNkZWZpbmUgQVQ5MV9BRENfQ0hFUl9DSHgoX2NoXykgICgweDEg PDwgX2NoXykNCisjZGVmaW5lIEFUOTFfQURDX0NIRVJfQ0RSeChfY2hfKSAo X2NoXyA8PCAyKQ0KKw0KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0NCisvLyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQVRB IFRZUEVTDQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KK3R5 cGVkZWYgc3RydWN0IGF0OTFfYWRjX2luZm8NCit7DQorICAgIGN5Z191aW50 MzIgICAgICAgICAgICAgIGFkY19iYXNlOyAgICAgICAgICAvLyBiYXNlIGFk ZHJlc3Mgb2YgQURDIHBlcmlwaGVyYWwNCisgICAgY3lnX3ZlY3Rvcl90ICAg ICAgICAgICAgYWRjX3ZlY3RvcjsgICAgICAgIC8vIGludGVycnVwdCB2ZWN0 b3IgbnVtYmVyDQorICAgIGN5Z191aW50MzIgICAgICAgICAgICAgIHRpbWVy X2Jhc2U7ICAgICAgICAvLyBiYXNlIGFkZHJlc3Mgb2YgVGltZXIgcGVyaXBo ZXJhbA0KKyAgICBjeWdfdWludDMyICAgICAgICAgICAgICB0Y19iYXNlOyAg ICAgICAgICAgLy8gYmFzZSBhZGRyZXNzIG9mIFRpbWVyIGNoYW5uZWwNCisg ICAgY3lnX3ZlY3Rvcl90ICAgICAgICAgICAgdGltZXJfdmVjdG9yOyAgICAg IC8vIGludGVycnVwdCB2ZWN0b3IgbnVtYmVyDQorICAgIGludCAgICAgICAg ICAgICAgICAgICAgIHRpbWVyX2ludHByaW87ICAgICAvLyBpbnRlcnJ1cHQg cHJpb3JpdHkgb2YgQURDIGludGVycnVwdA0KKyAgICBjeWdfdWludDggICAg ICAgICAgICAgICBwcmVzY2FsOyAgICAgICAgICAgLy8gQURDIHByZXNjYWwg dmFsdWUNCisgICAgY3lnX3VpbnQzMiAgICAgICAgICAgICAgdGltZXJfY250 OyAgICAgICAgIC8vIFRpbWVyIHZhbHVlDQorICAgIGN5Z191aW50OCAgICAg ICAgICAgICAgIHRpbWVyX2NsazsJICAgICAgIC8vIFRpbWVyIGNsb2NrIHNl dHRpbmcNCisgICAgY3lnX3VpbnQzMiAgICAgICAgICAgICAgcmVzb2x1dGlv bjsNCisgICAgY3lnX2hhbmRsZV90ICAgICAgICAgICAgaW50X2hhbmRsZTsg ICAgICAgIC8vIEZvciBpbml0aWFsaXppbmcgdGhlIGludGVycnVwdA0KKyAg ICBjeWdfaW50ZXJydXB0ICAgICAgICAgICBpbnRfZGF0YTsNCisgICAgc3Ry dWN0IGN5Z19hZGNfY2hhbm5lbCogY2hhbm5lbFtBVDkxX01BWF9BRENfQ0hB Tl07IC8vIHN0b3JlcyByZWZlcmVuY2VzIHRvIGNoYW5uZWwgb2JqZWN0cw0K KyAgICBjeWdfdWludDggICAgICAgICAgICAgICBjaGFuX21hc2s7ICAgICAg ICAgLy8gbWFzayB0aGF0IGluZGljYXRlcyBjaGFubmVscyB1c2VkDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv LyBieSBBREMgZHJpdmVyDQorfSBhdDkxX2FkY19pbmZvOw0KKw0KKw0KKy8v PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCisvLyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBERUNMQVJBVElPTlMNCisvLz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQorc3RhdGljIGJvb2wgYXQ5MV9hZGNf aW5pdChzdHJ1Y3QgY3lnX2RldnRhYl9lbnRyeSAqdGFiKTsNCitzdGF0aWMg Q3lnX0Vyck5vIGF0OTFfYWRjX2xvb2t1cChzdHJ1Y3QgY3lnX2RldnRhYl9l bnRyeSAqKnRhYiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgY3lnX2RldnRhYl9lbnRyeSAgKnN1Yl90YWIsDQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAg ICAgICAgICAgICAgICpuYW1lKTsNCitzdGF0aWMgdm9pZCBhdDkxX2FkY19l bmFibGUoIGN5Z19hZGNfY2hhbm5lbCAqY2hhbiApOw0KK3N0YXRpYyB2b2lk IGF0OTFfYWRjX2Rpc2FibGUoIGN5Z19hZGNfY2hhbm5lbCAqY2hhbiApOw0K K3N0YXRpYyB2b2lkIGF0OTFfYWRjX3NldF9yYXRlKCBjeWdfYWRjX2NoYW5u ZWwgKmNoYW4sIGN5Z191aW50MzIgcmF0ZSApOw0KK3N0YXRpYyBjeWdfdWlu dDMyIGF0OTFfYWRjX2lzcihjeWdfdmVjdG9yX3QgdmVjdG9yLCBjeWdfYWRk cndvcmRfdCBkYXRhKTsNCitzdGF0aWMgdm9pZCBhdDkxX2FkY19kc3IoY3ln X3ZlY3Rvcl90IHZlY3RvciwNCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY3lnX3Vjb3VudDMyIGNvdW50LA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjeWdfYWRkcndvcmRfdCBkYXRhKTsNCisNCisvLyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8gRHJpdmVyIGZ1bmN0aW9uczoN CitDWUdfQURDX0ZVTkNUSU9OUyggYXQ5MV9hZGNfZnVucywNCisgICAgICAg ICAgICAgICAgICAgYXQ5MV9hZGNfZW5hYmxlLA0KKyAgICAgICAgICAgICAg ICAgICBhdDkxX2FkY19kaXNhYmxlLA0KKyAgICAgICAgICAgICAgICAgICBh dDkxX2FkY19zZXRfcmF0ZSApOw0KKw0KKy8vIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCisvLyBEZXZpY2UgaW5zdGFuY2U6DQorc3RhdGljIGF0 OTFfYWRjX2luZm8gYXQ5MV9hZGNfaW5mbzAgPQ0KK3sNCisgICAgLmFkY19i YXNlICAgICAgID0gQVQ5MV9BREMsDQorICAgIC5hZGNfdmVjdG9yICAgICA9 IENZR05VTV9IQUxfSU5URVJSVVBUX0FEQywNCisgICAgLnRpbWVyX2Jhc2Ug ICAgID0gQVQ5MV9UQywNCisgICAgLnRjX2Jhc2UgICAgICAgID0gQVQ5MV9U QyArIChBVDkxX1RDX1RDX1NJWkUgKiBDWUdOVU1fREVWU19BRENfQVJNX0FU OTFfU0VMRUNUX1RJTUVSKSwNCisgICAgLnRpbWVyX3ZlY3RvciAgID0gQ1lH TlVNX0hBTF9JTlRFUlJVUFRfVEMwICsgQ1lHTlVNX0RFVlNfQURDX0FSTV9B VDkxX1NFTEVDVF9USU1FUiwNCisgICAgLnRpbWVyX2ludHByaW8gID0gQ1lH TlVNX0RFVlNfQURDX0FSTV9BVDkxX0lOVFBSSU8sDQorICAgIC5pbnRfaGFu ZGxlICAgICA9IDAsDQorI2lmIENZR05VTV9JT19BRENfU0FNUExFX1NJWkUg PiA4DQorICAgICAucmVzb2x1dGlvbiAgICA9IEFUOTFfQURDX01SX0xPV1JF Q18xMEJJVFMsDQorI2Vsc2UNCisgICAgIC5yZXNvbHV0aW9uICAgID0gQVQ5 MV9BRENfTVJfTE9XUkVDXzhCSVRTLA0KKyNlbmRpZg0KKyAgICAuY2hhbl9t YXNrICAgICAgPSAwDQorfTsNCisNCitDWUdfQURDX0RFVklDRSggYXQ5MV9h ZGNfZGV2aWNlLA0KKyAgICAgICAgICAgICAgICAmYXQ5MV9hZGNfZnVucywN CisgICAgICAgICAgICAgICAgJmF0OTFfYWRjX2luZm8wLA0KKyAgICAgICAg ICAgICAgICBDWUdOVU1fREVWU19BRENfQVJNX0FUOTFfREVGQVVMVF9SQVRF KTsNCisNCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQorLy8g Q2hhbm5lbCBpbnN0YW5jZXM6DQorDQorI2RlZmluZSBBVDkxX0FEQ19DSEFO TkVMKCBfX2NoYW4gKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCitDWUdfQURDX0NIQU5ORUwoIGF0OTFfYWRjX2NoYW5uZWwjI19f Y2hhbiwgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAg ICAgICAgICAgX19jaGFuLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAgICBDWUdE QVRfREVWU19BRENfQVJNX0FUOTFfQ0hBTk5FTCMjX19jaGFuIyNfQlVGU0la RSwgIFwNCisgICAgICAgICAgICAgICAgICZhdDkxX2FkY19kZXZpY2UgKTsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorREVWVEFCX0VOVFJZKCBhdDkxX2Fk Y19jaGFubmVsIyNfX2NoYW4jI19kZXZpY2UsICAgICAgICAgICAgICAgICAg ICAgIFwNCisgICAgICAgICAgICAgIENZR0RBVF9ERVZTX0FEQ19BUk1fQVQ5 MV9DSEFOTkVMIyNfX2NoYW4jI19OQU1FLCAgICAgICAgXA0KKyAgICAgICAg ICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAmY3lnX2lv X2FkY19kZXZpbywgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCisgICAgICAgICAgICAgIGF0OTFfYWRjX2luaXQsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KKyAgICAg ICAgICAgICAgYXQ5MV9hZGNfbG9va3VwLCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBcDQorICAgICAgICAgICAgICAmYXQ5MV9h ZGNfY2hhbm5lbCMjX19jaGFuICk7DQorDQorI2lmZGVmIENZR1BLR19ERVZT X0FEQ19BUk1fQVQ5MV9DSEFOTkVMMA0KK0FUOTFfQURDX0NIQU5ORUwoMCk7 DQorI2VuZGlmDQorI2lmZGVmIENZR1BLR19ERVZTX0FEQ19BUk1fQVQ5MV9D SEFOTkVMMQ0KK0FUOTFfQURDX0NIQU5ORUwoMSk7DQorI2VuZGlmDQorI2lm ZGVmIENZR1BLR19ERVZTX0FEQ19BUk1fQVQ5MV9DSEFOTkVMMg0KK0FUOTFf QURDX0NIQU5ORUwoMik7DQorI2VuZGlmDQorI2lmZGVmIENZR1BLR19ERVZT X0FEQ19BUk1fQVQ5MV9DSEFOTkVMMw0KK0FUOTFfQURDX0NIQU5ORUwoMyk7 DQorI2VuZGlmDQorI2lmZGVmIENZR1BLR19ERVZTX0FEQ19BUk1fQVQ5MV9D SEFOTkVMNA0KK0FUOTFfQURDX0NIQU5ORUwoNCk7DQorI2VuZGlmDQorI2lm ZGVmIENZR1BLR19ERVZTX0FEQ19BUk1fQVQ5MV9DSEFOTkVMNQ0KK0FUOTFf QURDX0NIQU5ORUwoNSk7DQorI2VuZGlmDQorI2lmZGVmIENZR1BLR19ERVZT X0FEQ19BUk1fQVQ5MV9DSEFOTkVMNg0KK0FUOTFfQURDX0NIQU5ORUwoNik7 DQorI2VuZGlmDQorI2lmZGVmIENZR1BLR19ERVZTX0FEQ19BUk1fQVQ5MV9D SEFOTkVMNw0KK0FUOTFfQURDX0NIQU5ORUwoNyk7DQorI2VuZGlmDQorDQor DQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy8vIFRoaXMg ZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gdGhlIGRldmljZSBJTyBpbmZyYXN0 cnVjdHVyZSB0byBpbml0aWFsaXplDQorLy8gdGhlIGRldmljZS4gSXQgc2hv dWxkIHBlcmZvcm0gYW55IHdvcmsgbmVlZGVkIHRvIHN0YXJ0IHVwIHRoZSBk ZXZpY2UsDQorLy8gc2hvcnQgb2YgYWN0dWFsbHkgc3RhcnRpbmcgdGhlIGdl bmVyYXRpb24gb2Ygc2FtcGxlcy4gVGhpcyBmdW5jdGlvbiB3aWxsDQorLy8g YmUgY2FsbGVkIGZvciBlYWNoIGNoYW5uZWwsIHNvIGlmIHRoZXJlIGlzIGlu aXRpYWxpemF0aW9uIHRoYXQgb25seSBuZWVkcw0KKy8vIHRvIGJlIGRvbmUg b25jZSwgc3VjaCBhcyBjcmVhdGluZyBhbmQgaW50ZXJydXB0IG9iamVjdCwg dGhlbiBjYXJlIHNob3VsZA0KKy8vIGJlIHRha2VuIHRvIGRvIHRoaXMuIFRo aXMgZnVuY3Rpb24gc2hvdWxkIGFsc28gY2FsbCBjeWdfYWRjX2RldmljZV9p bml0KCkNCisvLyB0byBpbml0aWFsaXplIHRoZSBnZW5lcmljIHBhcnRzIG9m IHRoZSBkcml2ZXIuDQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQ0KK3N0YXRpYyBib29sIGF0OTFfYWRjX2luaXQoc3RydWN0IGN5Z19kZXZ0 YWJfZW50cnkgKnRhYikNCit7DQorICAgIGN5Z19hZGNfY2hhbm5lbCAqY2hh biAgID0gKGN5Z19hZGNfY2hhbm5lbCAqKXRhYi0+cHJpdjsNCisgICAgY3ln X2FkY19kZXZpY2UgKmRldmljZSAgPSBjaGFuLT5kZXZpY2U7DQorICAgIGF0 OTFfYWRjX2luZm8gKmluZm8gICAgID0gZGV2aWNlLT5kZXZfcHJpdjsNCisg ICAgY3lnX3VpbnQzMiByZWd2YWw7DQorDQorICAgIGlmICghaW5mby0+aW50 X2hhbmRsZSkNCisgICAgew0KKyAgICAgICBjeWdfZHJ2X2ludGVycnVwdF9j cmVhdGUoaW5mby0+dGltZXJfdmVjdG9yLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGluZm8tPnRpbWVyX2ludHByaW8sDQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoY3lnX2FkZHJ3b3JkX3QpZGV2 aWNlLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmF0OTFf YWRjX2lzciwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZh dDkxX2FkY19kc3IsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAmKGluZm8tPmludF9oYW5kbGUpLA0KKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJihpbmZvLT5pbnRfZGF0YSkpOw0KKyAgICAgICBjeWdf ZHJ2X2ludGVycnVwdF9hdHRhY2goaW5mby0+aW50X2hhbmRsZSk7DQorICAg ICAgIGN5Z19kcnZfaW50ZXJydXB0X21hc2soaW5mby0+dGltZXJfdmVjdG9y KTsNCisNCisgICAgICAgLy8gUmVzZXQgQURDDQorICAgICAgIEhBTF9XUklU RV9VSU5UMzIoKGluZm8tPmFkY19iYXNlICsgQVQ5MV9BRENfQ1IpLCBBVDkx X0FEQ19DUl9TV1JTVCk7DQorDQorICAgICAgIC8vIERpc2FibGUgY291bnRl ciBpbnRlcnJ1cHRzDQorICAgICAgIEhBTF9XUklURV9VSU5UMzIoaW5mby0+ dGNfYmFzZStBVDkxX1RDX0NDUiwgQVQ5MV9UQ19DQ1JfQ0xLRElTKTsNCisg ICAgICAgSEFMX1dSSVRFX1VJTlQzMihpbmZvLT50Y19iYXNlK0FUOTFfVENf SURSLCAweGZmZmZmZmZmKTsNCisNCisgICAgICAgLy8gQ2xlYXIgc3RhdHVz IGJpdA0KKyAgICAgICBIQUxfUkVBRF9VSU5UMzIoaW5mby0+dGNfYmFzZSAr IEFUOTFfVENfU1IsIHJlZ3ZhbCk7DQorDQorICAgICAgIC8vIEVuYWJsZSBw ZXJpcGhlcmFsIGNsb2NrcyBmb3IgVEMNCisgICAgICAgSEFMX1dSSVRFX1VJ TlQzMihBVDkxX1BNQytBVDkxX1BNQ19QQ0VSLCAgXA0KKyAgICAJCSAgKChB VDkxX1BNQ19QQ0VSX1RDMCkgPDwgQ1lHTlVNX0RFVlNfQURDX0FSTV9BVDkx X1NFTEVDVF9USU1FUikpOw0KKw0KKyAgICAgICAvLw0KKyAgICAgICAvLyBE aXNhYmxlIGFsbCBpbnRlcnJ1cHRzLCBhbGwgY2hhbm5lbHMNCisgICAgICAg Ly8NCisgICAgICAgSEFMX1dSSVRFX1VJTlQzMigoaW5mby0+YWRjX2Jhc2Ug KyBBVDkxX0FEQ19DSERSKSwgXA0KKyAgICAgICAgICAgICAgICAgICAgIEFU OTFfQURDX0NIRVJfQ0gwICB8XA0KKyAgICAgICAgICAgICAgICAgICAgIEFU OTFfQURDX0NIRVJfQ0gxICB8XA0KKyAgICAgICAgICAgICAgICAgICAgIEFU OTFfQURDX0NIRVJfQ0gyICB8XA0KKyAgICAgICAgICAgICAgICAgICAgIEFU OTFfQURDX0NIRVJfQ0gzICB8XA0KKyAgICAgICAgICAgICAgICAgICAgIEFU OTFfQURDX0NIRVJfQ0g0ICB8XA0KKyAgICAgICAgICAgICAgICAgICAgIEFU OTFfQURDX0NIRVJfQ0g1ICB8XA0KKyAgICAgICAgICAgICAgICAgICAgIEFU OTFfQURDX0NIRVJfQ0g2ICB8XA0KKyAgICAgICAgICAgICAgICAgICAgIEFU OTFfQURDX0NIRVJfQ0g3KTsNCisgICAgICAgSEFMX1dSSVRFX1VJTlQzMigo aW5mby0+YWRjX2Jhc2UgKyBBVDkxX0FEQ19JRFIpLCBcDQorICAgICAgICAg ICAgICAgICAgICAgQVQ5MV9BRENfQ0hFUl9DSDAgIHxcDQorICAgICAgICAg ICAgICAgICAgICAgQVQ5MV9BRENfQ0hFUl9DSDEgIHxcDQorICAgICAgICAg ICAgICAgICAgICAgQVQ5MV9BRENfQ0hFUl9DSDIgIHxcDQorICAgICAgICAg ICAgICAgICAgICAgQVQ5MV9BRENfQ0hFUl9DSDMgIHxcDQorICAgICAgICAg ICAgICAgICAgICAgQVQ5MV9BRENfQ0hFUl9DSDQgIHxcDQorICAgICAgICAg ICAgICAgICAgICAgQVQ5MV9BRENfQ0hFUl9DSDUgIHxcDQorICAgICAgICAg ICAgICAgICAgICAgQVQ5MV9BRENfQ0hFUl9DSDYgIHxcDQorICAgICAgICAg ICAgICAgICAgICAgQVQ5MV9BRENfQ0hFUl9DSDcpOw0KKw0KKyAgICAgICAv Lw0KKyAgICAgICAvLyBzZXR1cCB0aGUgZGVmYXVsdCBzYW1wbGUgcmF0ZQ0K KyAgICAgICAvLw0KKyAgICAgICBhdDkxX2FkY19zZXRfcmF0ZShjaGFuLCBj aGFuLT5kZXZpY2UtPmNvbmZpZy5yYXRlKTsNCisNCisgICAgICAgLy8gc2V0 dXAgQURDIG1vZGUNCisgICAgICAgSEFMX1dSSVRFX1VJTlQzMigoaW5mby0+ YWRjX2Jhc2UgKyBBVDkxX0FEQ19NUiksIFwNCisJICAgCSAgICAoICggQ1lH TlVNX0RFVlNfQURDX0FSTV9BVDkxX1BSRVNDQUwgPDwgQVQ5MV9BRENfTVJf UFJFU0NBTF9TSElGVCApICYgXA0KKwkgICAJICAgIAkJQVQ5MV9BRENfTVJf UFJFU0NBTF9NQVNLICkgfCBcDQorCSAgIAkgICAgKCAoIENZR05VTV9ERVZT X0FEQ19BUk1fQVQ5MV9TVEFSVFVQX1RJTUUgIDw8IEFUOTFfQURDX01SX1NU QVJUVVBfU0hJRlQgKSAmIFwNCisJICAgCQkgICAJICAgIEFUOTFfQURDX01S X1NUQVJUVVBfTUFTSyApIHwgXA0KKwkgICAJICAgICggKCBDWUdOVU1fREVW U19BRENfQVJNX0FUOTFfU0hUSU0gPDwgQVQ5MV9BRENfTVJfU0hUSU1fU0hJ RlQgKSAmIFwNCisJICAgCQkgICAJCUFUOTFfQURDX01SX1NIVElNX01BU0sg KSB8IFwNCisJICAgCSAgICBBVDkxX0FEQ19NUl9UUkdTRUxfVElPQTAgIHwg XA0KKwkgICAJICAgIGluZm8tPnJlc29sdXRpb24pOw0KKw0KKw0KKyAgICB9 IC8vIGlmICghaW5mby0+aW50X2hhbmRsZSkNCisNCisgICAgY3lnX2FkY19k ZXZpY2VfaW5pdChkZXZpY2UpOyAvLyBpbml0aWFsaXplIGdlbmVyaWMgcGFy dHMgb2YgZHJpdmVyDQorDQorICAgIHJldHVybiB0cnVlOw0KK30NCisNCisN CisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLy8gVGhpcyBm dW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBhIGNsaWVudCBsb29rcyB1cCBvciBv cGVucyBhIGNoYW5uZWwuIEl0DQorLy8gc2hvdWxkIGNhbGwgY3lnX2FkY19j aGFubmVsX2luaXQoKSB0byBpbml0aWFsaXplIHRoZSBnZW5lcmljIHBhcnQg b2YNCisvLyB0aGUgY2hhbm5lbC4gSXQgc2hvdWxkIGFsc28gcGVyZm9ybSBh bnkgb3BlcmF0aW9ucyBuZWVkZWQgdG8gc3RhcnQgdGhlDQorLy8gY2hhbm5l bCBnZW5lcmF0aW5nIHNhbXBsZXMuDQorLy89PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PQ0KK3N0YXRpYyBDeWdfRXJyTm8gYXQ5MV9hZGNfbG9va3Vw KHN0cnVjdCBjeWdfZGV2dGFiX2VudHJ5ICoqdGFiLA0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBjeWdfZGV2dGFiX2Vu dHJ5ICAqc3ViX3RhYiwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyICAgICAgICAgICAgICAgKm5hbWUpDQorew0K KyAgICBjeWdfYWRjX2NoYW5uZWwgICpjaGFuICAgICA9IChjeWdfYWRjX2No YW5uZWwgKikoKnRhYiktPnByaXY7DQorICAgIGF0OTFfYWRjX2luZm8gKmlu Zm8gICAgID0gY2hhbi0+ZGV2aWNlLT5kZXZfcHJpdjsNCisNCisgICAgaW5m by0+Y2hhbm5lbFtjaGFuLT5jaGFubmVsXSA9IGNoYW47DQorICAgIGN5Z19h ZGNfY2hhbm5lbF9pbml0KGNoYW4pOyAvLyBpbml0aWFsaXplIGdlbmVyaWMg cGFydHMgb2YgY2hhbm5lbA0KKw0KKyAgICAvLw0KKyAgICAvLyBUaGUgZ2Vu ZXJpYyBBREMgbWFudWFsIHNheXM6IFdoZW4gYSBjaGFubmVsIGlzIGZpcnN0 IGxvb2tlZCB1cCBvcg0KKyAgICAvLyBvcGVuZWQsIHRoZW4gaXQgaXMgYXV0 b21hdGljYWxseSBlbmFibGVkIGFuZCBzYW1wbGVzIHN0YXJ0IHRvDQorICAg IC8vIGFjY3VtdWxhdGUgLSBzbyB3ZSBzdGFydCB0aGUgY2hhbm5lbCBub3cN CisgICAgLy8NCisgICAgY2hhbi0+ZW5hYmxlZCA9IHRydWU7DQorICAgIGF0 OTFfYWRjX2VuYWJsZShjaGFuKTsNCisNCisgICAgcmV0dXJuIEVOT0VSUjsN Cit9DQorDQorDQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K Ky8vIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gdGhlIGdlbmVyaWMg QURDIHBhY2thZ2UgdG8gZW5hYmxlIHRoZQ0KKy8vIGNoYW5uZWwgaW4gcmVz cG9uc2UgdG8gYSBDWUdfSU9fU0VUX0NPTkZJR19BRENfRU5BQkxFIGNvbmZp ZyBvcGVyYXRpb24uDQorLy8gSXQgc2hvdWxkIHRha2UgYW55IHN0ZXBzIG5l ZWRlZCB0byBzdGFydCB0aGUgY2hhbm5lbCBnZW5lcmF0aW5nIHNhbXBsZXMN CisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorc3RhdGljIHZv aWQgYXQ5MV9hZGNfZW5hYmxlKGN5Z19hZGNfY2hhbm5lbCAqY2hhbikNCit7 DQorICAgIGF0OTFfYWRjX2luZm8gKmluZm8gICAgICA9IGNoYW4tPmRldmlj ZS0+ZGV2X3ByaXY7DQorDQorICAgIC8vIEVuYWJsZSB0aGUgY2hhbm5lbA0K KyAgICBIQUxfV1JJVEVfVUlOVDMyKChpbmZvLT5hZGNfYmFzZSArIEFUOTFf QURDX0NIRVIpLCBcDQorICAgICAgICAgICAgICAgICAgICAgIEFUOTFfQURD X0NIRVJfQ0h4KGNoYW4tPmNoYW5uZWwpKTsNCisNCisgICAgLy8NCisgICAg Ly8gVW5tYXNrIGludGVycnVwdCBhcyBzb29uIGFzIDEgY2hhbm5lbCBpcyBl bmFibGUNCisgICAgLy8NCisgICAgaWYgKCFpbmZvLT5jaGFuX21hc2spDQor ICAgIHsNCisgICAgICAgY3lnX2Rydl9pbnRlcnJ1cHRfdW5tYXNrKGluZm8t PnRpbWVyX3ZlY3Rvcik7DQorDQorICAgICAgIC8vIEVuYWJsZSB0aW1lciBp bnRlcnJ1cHQNCisgICAgICAgSEFMX1dSSVRFX1VJTlQzMihpbmZvLT50Y19i YXNlK0FUOTFfVENfSUVSLCBBVDkxX1RDX0lFUl9DUEMpOw0KKw0KKyAgICAg ICAvLyBFbmFibGUgdGhlIGNsb2NrDQorICAgICAgIEhBTF9XUklURV9VSU5U MzIoaW5mby0+dGNfYmFzZStBVDkxX1RDX0NDUiwgQVQ5MV9UQ19DQ1JfVFJJ RyB8IEFUOTFfVENfQ0NSX0NMS0VOKTsNCisNCisgICAgICAgLy8gU3RhcnQg dGltZXINCisgICAgICAgSEFMX1dSSVRFX1VJTlQzMihpbmZvLT50Y19iYXNl K0FUOTFfVENfQ0NSLCAgQVQ5MV9UQ19DQ1JfVFJJRyk7DQorDQorICAgICAg IC8vIFN0YXJ0IEFEQyBzYW1wbGluZw0KKyAgICAgICBIQUxfV1JJVEVfVUlO VDMyKChpbmZvLT5hZGNfYmFzZSArIEFUOTFfQURDX0NSKSwgQVQ5MV9BRENf Q1JfU1RBUlQpOw0KKw0KKyNpZiBDWUdQS0dfREVWU19BRENfQVJNX0FUOTFf REVCVUdfTEVWRUwgPiAwDQorICAgICAgICBpbmZvLT56ZXJvX3RpbWUgPSBj eWdfY3VycmVudF90aW1lKCkgKiAxMDsNCisjZW5kaWYNCisgICAgfQ0KKw0K KyAgICBpbmZvLT5jaGFuX21hc2sgfD0gQVQ5MV9BRENfQ0hFUl9DSHgoY2hh bi0+Y2hhbm5lbCk7DQorDQorfQ0KKw0KKw0KKy8vPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0NCisvLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBm cm9tIHRoZSBnZW5lcmljIEFEQyBwYWNrYWdlIHRvIGVuYWJsZSB0aGUNCisv LyBjaGFubmVsIGluIHJlc3BvbnNlIHRvIGEgQ1lHX0lPX1NFVF9DT05GSUdf QURDX0RJU0FCTEUgY29uZmlnIG9wZXJhdGlvbi4NCisvLyBJdCBzaG91bGQg dGFrZSBhbnkgc3RlcHMgbmVlZGVkIHRvIHN0b3AgdGhlIGNoYW5uZWwgZ2Vu ZXJhdGluZyBzYW1wbGVzLg0KKy8vPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0NCitzdGF0aWMgdm9pZCBhdDkxX2FkY19kaXNhYmxlKGN5Z19hZGNf Y2hhbm5lbCAqY2hhbikNCit7DQorICAgIGF0OTFfYWRjX2luZm8gKmluZm8g ID0gY2hhbi0+ZGV2aWNlLT5kZXZfcHJpdjsNCisgICAgY3lnX3VpbnQzMiBz cjsNCisNCisgICAgaW5mby0+Y2hhbl9tYXNrICY9IH4gQVQ5MV9BRENfQ0hF Ul9DSHgoY2hhbi0+Y2hhbm5lbCk7DQorDQorICAgIC8vIERpc2FibGUgdGhl IGNoYW5uZWwNCisgICAgSEFMX1dSSVRFX1VJTlQzMigoaW5mby0+YWRjX2Jh c2UgKyBBVDkxX0FEQ19DSERSKSwgXA0KKyAgICAgICAgICAgICAgICAgICAg ICBBVDkxX0FEQ19DSEVSX0NIeChjaGFuLT5jaGFubmVsKSk7DQorDQorICAg IC8vDQorICAgIC8vIElmIG5vIGNoYW5uZWwgaXMgZW5hYmxlZCB0aGUgd2Ug ZGlzYWJsZSBpbnRlcnJ1cHRzIG5vdw0KKyAgICAvLw0KKyAgICBpZiAoIWlu Zm8tPmNoYW5fbWFzaykNCisgICAgew0KKyAgICAgICBjeWdfZHJ2X2ludGVy cnVwdF9tYXNrKGluZm8tPnRpbWVyX3ZlY3Rvcik7DQorDQorICAgICAgIC8v IENsZWFyIGludGVycnVwdA0KKyAgICAgICBIQUxfUkVBRF9VSU5UMzIoaW5m by0+dGNfYmFzZStBVDkxX1RDX1NSLCBzcik7DQorDQorICAgICAgIC8vIERp c2FibGUgIHRpbWVyIGludGVycnVwdA0KKyAgICAgICBIQUxfV1JJVEVfVUlO VDMyKGluZm8tPnRjX2Jhc2UrQVQ5MV9UQ19JRFIsIEFUOTFfVENfSUVSX0NQ Qyk7DQorDQorICAgICAgIC8vIERpc2FibGUgdGhlIGNsb2NrDQorICAgICAg IEhBTF9XUklURV9VSU5UMzIoaW5mby0+dGNfYmFzZStBVDkxX1RDX0NDUiwg QVQ5MV9UQ19DQ1JfQ0xLRElTKTsNCisNCisgICAgfQ0KK30NCisNCisNCisv Lz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorLy8gVGhpcyBmdW5j dGlvbiBpcyBjYWxsZWQgZnJvbSB0aGUgZ2VuZXJpYyBBREMgcGFja2FnZSB0 byBlbmFibGUgdGhlDQorLy8gY2hhbm5lbCBpbiByZXNwb25zZSB0byBhIENZ R19JT19TRVRfQ09ORklHX0FEQ19SQVRFIGNvbmZpZyBvcGVyYXRpb24uDQor Ly8gSXQgc2hvdWxkIHRha2UgYW55IHN0ZXBzIG5lZWRlZCB0byBjaGFuZ2Ug dGhlIHNhbXBsZSByYXRlIG9mIHRoZSBjaGFubmVsLA0KKy8vIG9yIG9mIHRo ZSBlbnRpcmUgZGV2aWNlLg0KKy8vIFdlIHVzZSBhIHRpbWVyIGNoYW5uZWwg dG8gZ2VuZXJhdGUgdGhlIGludGVycnVwdHMgZm9yIHNhbXBsaW5nIHRoZQ0K Ky8vIGFuYWxvZyBjaGFubmVscw0KKy8vPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0NCitzdGF0aWMgdm9pZCBhdDkxX2FkY19zZXRfcmF0ZSggY3ln X2FkY19jaGFubmVsICpjaGFuLCBjeWdfdWludDMyIHJhdGUpDQorew0KKyAg ICBjeWdfYWRjX2RldmljZSAgICpkZXZpY2UgPSBjaGFuLT5kZXZpY2U7DQor ICAgIGF0OTFfYWRjX2luZm8gKmluZm8gICA9IChhdDkxX2FkY19pbmZvICop ZGV2aWNlLT5kZXZfcHJpdjsNCisgICAgY3lnX3VpbnQ4IHRpbWVyX2NsayAg ID0gQVQ5MV9UQ19DTVJfQ0xLU19NQ0syOw0KKyAgICBjeWdfdWludDMyIHRt cl9wZXJpb2QgPSBDWUdOVU1fSEFMX0FSTV9BVDkxX0NMT0NLX1NQRUVEIC8g KCByYXRlIDw8IDEpOw0KKw0KKyAgICBpZiggdG1yX3BlcmlvZCA+IDB4ZmZm ZiApDQorICAgIHsNCisgICAgCXRtcl9wZXJpb2QgPSBDWUdOVU1fSEFMX0FS TV9BVDkxX0NMT0NLX1NQRUVEIC8gKCByYXRlIDw8IDUpOw0KKyAgICAgICAg dGltZXJfY2xrICA9IEFUOTFfVENfQ01SX0NMS1NfTUNLMzI7DQorICAgIH0N CisNCisgICAgaWYoIHRtcl9wZXJpb2QgPiAweGZmZmYgKQ0KKyAgICB7DQor ICAgIAl0bXJfcGVyaW9kID0gQ1lHTlVNX0hBTF9BUk1fQVQ5MV9DTE9DS19T UEVFRCAvICggcmF0ZSA8PCA3KTsNCisgICAgCXRpbWVyX2NsayAgPSBBVDkx X1RDX0NNUl9DTEtTX01DSzEyODsNCisgICAgfQ0KKw0KKyAgICBpZiggdG1y X3BlcmlvZCA+IDB4ZmZmZiApDQorICAgIHsNCisgICAgCXRtcl9wZXJpb2Qg PSBDWUdOVU1fSEFMX0FSTV9BVDkxX0NMT0NLX1NQRUVEIC8gKCByYXRlIDw8 IDEwKTsNCisgICAgCXRpbWVyX2NsayAgPSBBVDkxX1RDX0NNUl9DTEtTX01D SzEwMjQ7DQorICAgIH0NCisNCisgICAgaWYoIHRtcl9wZXJpb2QgPiAweGZm ZmYgKQ0KKyAgICB7DQorICAgIAl0bXJfcGVyaW9kID0gMHhmZmZmOw0KKyAg ICAJdGltZXJfY2xrICA9IEFUOTFfVENfQ01SX0NMS1NfTUNLMTAyNDsNCisg ICAgCWF0OTFfYWRjX3ByaW50ZigiQVQ5MSBBREMgdGltZXIsIHJhdGUgdG9v IGhpZ2ghIik7DQorICAgIH0NCisNCisgICAgZGV2aWNlLT5jb25maWcucmF0 ZSA9IHJhdGU7DQorICAgIGluZm8tPnRpbWVyX2NsayA9IHRpbWVyX2NsazsN CisgICAgaW5mby0+dGltZXJfY250ID0gdG1yX3BlcmlvZDsNCisNCisgICAg Ly8gU2V0IHRpbWVyIHZhbHVlcw0KKyAgICBIQUxfV1JJVEVfVUlOVDMyKGlu Zm8tPnRjX2Jhc2UrQVQ5MV9UQ19DTVIsICBBVDkxX1RDX0NNUl9DUENUUkcg fCBpbmZvLT50aW1lcl9jbGspOw0KKyAgICBIQUxfV1JJVEVfVUlOVDMyKGlu Zm8tPnRjX2Jhc2UrQVQ5MV9UQ19SQywgIGluZm8tPnRpbWVyX2NudCk7DQor DQorICAgIGF0OTFfYWRjX3ByaW50ZigiQVQ5MSBBREMgVGltZXIgc2V0dGlu Z3MgJWQsICVkIiwgaW5mby0+dGltZXJfY2xrLCBpbmZvLT50aW1lcl9jbnQp Ow0KKw0KKyAgICByZXR1cm47DQorfQ0KKw0KKw0KKy8vPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0NCisvLyBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBJ U1IgYXR0YWNoZWQgdG8gdGhlIEFEQyBkZXZpY2UncyBpbnRlcnJ1cHQgdmVj dG9yLg0KKy8vIEl0IGlzIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIHNhbXBs ZXMgZnJvbSB0aGUgY2hhbm5lbHMgYW5kIHBhc3NpbmcgdGhlbQ0KKy8vIG9u IHRvIHRoZSBnZW5lcmljIGxheWVyLiBJdCBuZWVkcyB0byBjaGVjayBlYWNo IGNoYW5uZWwgZm9yIGRhdGEsIGFuZCBjYWxsDQorLy8gY3lnX2FkY19yZWNl aXZlX3NhbXBsZSgpIGZvciBlYWNoIG5ldyBzYW1wbGUgYXZhaWxhYmxlLCBh bmQgdGhlbiByZWFkeSB0aGUNCisvLyBkZXZpY2UgZm9yIHRoZSBuZXh0IGlu dGVycnVwdC4NCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQor c3RhdGljIGN5Z191aW50MzIgYXQ5MV9hZGNfaXNyKGN5Z192ZWN0b3JfdCB2 ZWN0b3IsIGN5Z19hZGRyd29yZF90IGRhdGEpDQorew0KKyAgICBjeWdfYWRj X2RldmljZSAgICpkZXZpY2UgPSAoY3lnX2FkY19kZXZpY2UgKikgZGF0YTsN CisgICAgYXQ5MV9hZGNfaW5mbyAqaW5mbyAgID0gKGF0OTFfYWRjX2luZm8g KilkZXZpY2UtPmRldl9wcml2Ow0KKyAgICBjeWdfdWludDMyICAgICAgICBy ZWd2YWwsICBhZGNfc3RhdHVzOw0KKyAgICBjeWdfdWludDMyICAgICAgICBy ZXMgPSAwOw0KKyAgICBjeWdfYWRjX3NhbXBsZV90ICBhZGNkYXRhOw0KKyAg ICBjeWdfdWludDMyIHNyOw0KKw0KKyAgICBjeWdfdWludDggYWN0aXZlX2No YW5uZWxzID0gaW5mby0+Y2hhbl9tYXNrOw0KKyAgICBjeWdfdWludDggY2hh bm5lbF9ubyA9IDA7DQorDQorICAgIC8vIENsZWFyIHRpbWVyIGludGVycnVw dA0KKyAgICBIQUxfUkVBRF9VSU5UMzIoaW5mby0+dGNfYmFzZStBVDkxX1RD X1NSLCBzcik7DQorDQorICAgIC8vIENoZWNrIG9uIGNoYW5uZWwgY29udmVy c2lvbiBkb25lDQorICAgIEhBTF9SRUFEX1VJTlQzMihpbmZvLT5hZGNfYmFz ZSArIEFUOTFfQURDX1NSLCBhZGNfc3RhdHVzKTsNCisNCisgICAgd2hpbGUg KGFjdGl2ZV9jaGFubmVscykNCisgICAgew0KKyAgICAgICAgaWYgKGFjdGl2 ZV9jaGFubmVscyAmIDB4MDEpDQorICAgICAgICB7DQorICAgICAgICAgICAg Ly8gSWYgQURDIGNvbnZlcnNpb24gZG9uZSwgc2F2ZSBzYW1wbGUNCisgICAg ICAgICAgICBpZihhZGNfc3RhdHVzICYgQVQ5MV9BRENfQ0hFUl9DSHgoY2hh bm5lbF9ubykpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgSEFM X1JFQURfVUlOVDMyKChpbmZvLT5hZGNfYmFzZSArIEFUOTFfQURDX0NEUjAg KyBBVDkxX0FEQ19DSEVSX0NEUngoY2hhbm5lbF9ubykpLCByZWd2YWwpOw0K KyAgICAgICAgICAgICAgYWRjZGF0YSA9IHJlZ3ZhbCAmIDB4M0ZGOw0KKyAg ICAgICAgICAgICAgcmVzIHw9IENZR19JU1JfSEFORExFRA0KKyAgICAgICAg ICAgICAgICB8ICBjeWdfYWRjX3JlY2VpdmVfc2FtcGxlKGluZm8tPmNoYW5u ZWxbY2hhbm5lbF9ub10sDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgYWRjZGF0YSk7DQorICAgICAgICAgICAgfQ0KKyAg ICAgICAgfSAvLyBpZiAoYWN0aXZlX2NoYW5uZWxzICYgMHgwMSkNCisgICAg ICAgIGFjdGl2ZV9jaGFubmVscyA+Pj0gMTsNCisgICAgICAgIGNoYW5uZWxf bm8rKzsNCisgICAgfSAvLyB3aGlsZSAoYWN0aXZlX2NoYW5uZWxzKQ0KKw0K KyAgICAvLyBSZXN0YXJ0IHNhbXBsaW5nDQorICAgIEhBTF9XUklURV9VSU5U MzIoKGluZm8tPmFkY19iYXNlICsgQVQ5MV9BRENfQ1IpLCBBVDkxX0FEQ19D Ul9TVEFSVCk7DQorDQorICAgIGN5Z19kcnZfaW50ZXJydXB0X2Fja25vd2xl ZGdlKGluZm8tPnRpbWVyX3ZlY3Rvcik7DQorDQorICAgIHJldHVybiByZXM7 DQorfQ0KKw0KKw0KKy8vPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0N CisvLyBUaGlzIGZ1bmN0aW9uIGlzIHRoZSBEU1IgYXR0YWNoZWQgdG8gdGhl IEFEQyBkZXZpY2UncyBpbnRlcnJ1cHQgdmVjdG9yLg0KKy8vIEl0IGlzIGNh bGxlZCBieSB0aGUga2VybmVsIGlmIHRoZSBJU1IgcmV0dXJuIHZhbHVlIGNv bnRhaW5zIHRoZQ0KKy8vIENZR19JU1JfSEFORExFRCBiaXQuIEl0IG5lZWRz IHRvIGNhbGwgY3lnX2FkY193YWtldXAoKSBmb3IgZWFjaCBjaGFubmVsDQor Ly8gdGhhdCBoYXMgaXRzIHdha2V1cCBmaWVsZCBzZXQuDQorLy89PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQ0KK3N0YXRpYyB2b2lkIGF0OTFfYWRj X2RzcihjeWdfdmVjdG9yX3QgdmVjdG9yLA0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjeWdfdWNvdW50MzIgY291bnQsDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGN5Z19hZGRyd29yZF90IGRhdGEpDQorew0KKyAg ICBjeWdfYWRjX2RldmljZSAgICpkZXZpY2UgICAgICAgICAgPSAoY3lnX2Fk Y19kZXZpY2UgKikgZGF0YTsNCisgICAgYXQ5MV9hZGNfaW5mbyAqaW5mbyAg ICAgICAgICAgID0gZGV2aWNlLT5kZXZfcHJpdjsNCisgICAgY3lnX3VpbnQ4 ICAgICAgICAgYWN0aXZlX2NoYW5uZWxzID0gaW5mby0+Y2hhbl9tYXNrOw0K KyAgICBjeWdfdWludDggICAgICAgICBjaGFuX25vICAgICAgICAgPSAwOw0K Kw0KKyAgICB3aGlsZSAoYWN0aXZlX2NoYW5uZWxzKQ0KKyAgICB7DQorICAg ICAgICBpZiAoYWN0aXZlX2NoYW5uZWxzICYgMHgwMSkNCisgICAgICAgIHsN CisgICAgICAgICAgICBpZihpbmZvLT5jaGFubmVsW2NoYW5fbm9dLT53YWtl dXApDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBjeWdfYWRj X3dha2V1cChpbmZvLT5jaGFubmVsW2NoYW5fbm9dKTsNCisgICAgICAgICAg ICB9DQorICAgICAgICB9DQorICAgICAgICBjaGFuX25vKys7DQorICAgICAg ICBhY3RpdmVfY2hhbm5lbHMgPj49IDE7DQorICAgIH0NCit9DQorDQorDQor Ly8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBlb2YgYWRj X2F0OTEuYw0KZGlmZiAtLWdpdCBhL3BhY2thZ2VzL2RldnMvYWRjL2FybS9h dDkxL2N1cnJlbnQvdGVzdHMvYXQ5MV9hZGNfdGVzdC5jIGIvcGFja2FnZXMv ZGV2cy9hZGMvYXJtL2F0OTEvY3VycmVudC90ZXN0cy9hdDkxX2FkY190ZXN0 LmMNCm5ldyBmaWxlIG1vZGUgMTAwNjQ0DQotLS0gL2Rldi9udWxsDQorKysg Yi9wYWNrYWdlcy9kZXZzL2FkYy9hcm0vYXQ5MS9jdXJyZW50L3Rlc3RzL2F0 OTFfYWRjX3Rlc3QuYw0KQEAgLTAsMCArMSwyOTAgQEANCisvLz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09DQorLy8NCisvLyAgICAgIGF0OTFfYWRj X3Rlc3QuYw0KKy8vDQorLy8gICAgICBBREMgZHJpdmVyIGZvciBBVDkxIG9u IGNoaXAgQURDDQorLy8NCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09DQorLy8gIyMjI0VDT1NHUExDT1BZUklHSFRCRUdJTiMjIyMNCisvLyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQor Ly8gVGhpcyBmaWxlIGlzIHBhcnQgb2YgZUNvcywgdGhlIEVtYmVkZGVkIENv bmZpZ3VyYWJsZSBPcGVyYXRpbmcgU3lzdGVtLg0KKy8vIENvcHlyaWdodCAo QykgMjAwOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCisvLw0K Ky8vIGVDb3MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1 dGUgaXQgYW5kL29yIG1vZGlmeSBpdCB1bmRlcg0KKy8vIHRoZSB0ZXJtcyBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5IHRoZSBGcmVlDQorLy8gU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMiBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlcg0KKy8v IHZlcnNpb24uDQorLy8NCisvLyBlQ29zIGlzIGRpc3RyaWJ1dGVkIGluIHRo ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dCBXSVRIT1VUDQor Ly8gQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yDQorLy8gRklUTkVTUyBGT1Ig QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlDQorLy8gZm9yIG1vcmUgZGV0YWlscy4NCisvLw0KKy8v IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlDQorLy8gYWxvbmcgd2l0aCBlQ29zOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4sDQorLy8gNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSwgVVNBLg0KKy8vDQorLy8gQXMgYSBz cGVjaWFsIGV4Y2VwdGlvbiwgaWYgb3RoZXIgZmlsZXMgaW5zdGFudGlhdGUg dGVtcGxhdGVzIG9yIHVzZQ0KKy8vIG1hY3JvcyBvciBpbmxpbmUgZnVuY3Rp b25zIGZyb20gdGhpcyBmaWxlLCBvciB5b3UgY29tcGlsZSB0aGlzIGZpbGUN CisvLyBhbmQgbGluayBpdCB3aXRoIG90aGVyIHdvcmtzIHRvIHByb2R1Y2Ug YSB3b3JrIGJhc2VkIG9uIHRoaXMgZmlsZSwNCisvLyB0aGlzIGZpbGUgZG9l cyBub3QgYnkgaXRzZWxmIGNhdXNlIHRoZSByZXN1bHRpbmcgd29yayB0byBi ZSBjb3ZlcmVkIGJ5DQorLy8gdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlLiBIb3dldmVyIHRoZSBzb3VyY2UgY29kZSBmb3IgdGhpcyBmaWxlDQor Ly8gbXVzdCBzdGlsbCBiZSBtYWRlIGF2YWlsYWJsZSBpbiBhY2NvcmRhbmNl IHdpdGggc2VjdGlvbiAoMykgb2YgdGhlIEdOVQ0KKy8vIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgdjIuDQorLy8NCisvLyBUaGlzIGV4Y2VwdGlvbiBkb2Vz IG5vdCBpbnZhbGlkYXRlIGFueSBvdGhlciByZWFzb25zIHdoeSBhIHdvcmsg YmFzZWQNCisvLyBvbiB0aGlzIGZpbGUgbWlnaHQgYmUgY292ZXJlZCBieSB0 aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuDQorLy8gLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KKy8vICMjIyNF Q09TR1BMQ09QWVJJR0hURU5EIyMjIw0KKy8vPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0NCisvLyMjIyMjREVTQ1JJUFRJT05CRUdJTiMjIyMNCisv Lw0KKy8vIEF1dGhvcihzKTogIE9yaWdpbmFsIGxwYzI0eHggZHJpdmVyIGZy b20gVXdlIEtpbmRsZXINCisvLyAgICAgICAgICAgICBVcGRhdGVkIGZvciBB dG1lbCBBVDkxIGRldmljZSwgY2NvdXRhbmQgPGNjb3V0YW5kQHN0bWkuY29t Pg0KKy8vIENvbnRyaWJ1dG9yczoNCisvLyBEYXRlOiAgICAgICAgIDIwMTAt MDItMTUNCisvLyBQdXJwb3NlOg0KKy8vIERlc2NyaXB0aW9uOg0KKy8vDQor Ly8jIyMjREVTQ1JJUFRJT05FTkQjIyMjDQorLy8NCisvLz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09DQorDQorI2luY2x1ZGUgPHBrZ2NvbmYvc3lz dGVtLmg+DQorDQorI2luY2x1ZGUgPGN5Zy9pbmZyYS90ZXN0Y2FzZS5oPiAg ICAgICAgIC8vIHRlc3QgbWFjcm9zDQorI2luY2x1ZGUgPGN5Zy9pbmZyYS9j eWdfYXNzLmg+ICAgICAgICAgIC8vIGFzc2VydGlvbiBtYWNyb3MNCisjaW5j bHVkZSA8Y3lnL2luZnJhL2RpYWcuaD4NCisjaW5jbHVkZSA8Y3lnL2hhbC9o YWxfZGlhZy5oPg0KKyNpbmNsdWRlIDxjeWcvaGFsL2hhbF9hcmNoLmg+ICAg ICAgICAgICAvLyBDWUdOVU1fSEFMX1NUQUNLX1NJWkVfVFlQSUNBTA0KKw0K Ky8vIFBhY2thZ2UgcmVxdWlyZW1lbnRzDQorI2lmIGRlZmluZWQoQ1lHUEtH X0lPX0FEQykgJiYgZGVmaW5lZChDWUdQS0dfS0VSTkVMKQ0KKw0KKyNpbmNs dWRlIDxwa2djb25mL2tlcm5lbC5oPg0KKyNpbmNsdWRlIDxjeWcvaW8vaW8u aD4NCisjaW5jbHVkZSA8Y3lnL2lvL2FkYy5oPg0KKyNpbmNsdWRlIDxwa2dj b25mL2RldnNfYWRjX2FybV9hdDkxLmg+DQorDQorLy8gUGFja2FnZSBvcHRp b24gcmVxdWlyZW1lbnRzDQorI2lmIGRlZmluZWQoQ1lHRlVOX0tFUk5FTF9B UElfQykNCisNCisjaW5jbHVkZSA8Y3lnL2tlcm5lbC9rYXBpLmg+DQorDQor I2lmIENZR0lOVF9ERVZTX0FEQ19BUk1fQVQ5MV9DSEFOTkVMUyA+IDANCisN CisjZGVmaW5lIE1BWF9BRENfQ0hBTk5FTF9UT19URVNUIDQNCisNCisvLz09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy8vICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIERBVEEgVFlQRVMNCisvLz09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQ0KK3R5cGVkZWYgc3RydWN0IHN0X3RocmVh ZF9kYXRhDQorew0KKyAgICBjeWdfdGhyZWFkICAgb2JqOw0KKyAgICBsb25n ICAgICAgICAgc3RhY2tbQ1lHTlVNX0hBTF9TVEFDS19TSVpFX1RZUElDQUxd Ow0KKyAgICBjeWdfaGFuZGxlX3QgaGRsOw0KK30gdGhyZWFkX2RhdGFfdDsN CisNCisNCisvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KKy8v ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTE9DQUwgREFUQQ0KKy8v PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQorY3lnX3RocmVhZF9l bnRyeV90IGFkY190aHJlYWQ7DQordGhyZWFkX2RhdGFfdCAgICAgIGFkY190 aHJlYWRfZGF0YTsNCisNCisNCisvLz09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBREMg VEhSRUFEDQorLy89PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCit2 b2lkIGFkY190aHJlYWQoY3lnX2FkZHJ3b3JkX3QgZGF0YSkNCit7DQorICAg IGludCAgICAgICAgICAgICByZXM7DQorICAgIGN5Z19pb19oYW5kbGVfdCBo YW5kbGVbOF0gICAgID0gezAsIDAsIDAsIDAsIDAsIDAsIDAsIDB9Ow0KKyAg ICBjeWdfdWludDMyICAgICAgc2FtcGxlX2NudFs4XSA9IHswLCAwLCAwLCAw LCAwLCAwLCAwLCAwfTsNCisgICAgY3lnX3VpbnQzMiAgICAgIGNmZ19kYXRh Ow0KKyAgICBjeWdfdWludDMyICAgICAgbGVuOw0KKyAgICBjeWdfdWludDMy ICAgICAgc3RhcnRfdGltZTsNCisgICAgY3lnX3VpbnQzMiAgICAgIGVuZF90 aW1lOw0KKyAgICBpbnQgICAgICAgICAgICAgaTsNCisgICAgY3lnX3VpbnQ4 ICAgICAgIHNlY29uZHMgPSAwOw0KKyAgICBmbG9hdCAgICAgICAgICAgZmlu YWxfc2Vjb25kczsNCisgICAgY3lnX3VpbnQzMiAgICAgIHNhbXBsZXNfZXhw ZWN0ZWQ7DQorDQorDQorICAgIGRpYWdfcHJpbnRmKCJUaGlzIHRlc3QgcmVh ZHMgc2FtcGxlcyBmcm9tIGFsbCBlbmFibGVkIEFEQyBjaGFubmVscy5cbiIN CisgICAgICAgICAgICAgICAgIkVhY2ggc2Vjb25kIHRoZSBudW1iZXIgb2Yg YWxyZWFkeSBhY3F1aXJlZCBzYW1wbGVzXG4iDQorICAgICAgICAgICAgICAg ICJ3aWxsIGJlIHByaW50ZWQuIEFmdGVyIDEwIHNlY29uZHMgYWxsIEFEQyBj aGFubmVsc1xuIg0KKyAgICAgICAgICAgICAgICAid2lsbCBiZSBzdG9wcGVk IGFuZCBlYWNoIEFEQyBidWZmZXIgd2lsbCBiZSByZWFkIHVudGlsXG4iDQor ICAgICAgICAgICAgICAgICJpdCBpcyBlbXB0eS4gSWYgdGhlIG51bWJlciBv ZiBhY3F1aXJlZCBzYW1wbGVzIGlzIG11Y2hcbiINCisgICAgICAgICAgICAg ICAgInNtYWxsZXIgdGhhbiB0aGUgbnVtYmVyIG9mIGV4cGVjdGVkIHNhbXBs ZXMsIHRoZW4geW91XG4iDQorICAgICAgICAgICAgICAgICJzaG91bGQgbG93 ZXIgdGhlIHNhbXBsZSByYXRlLlxuXG4iKTsNCisNCisgICAgLy8gR2V0IGEg aGFuZGxlIGZvciBBREMgZGV2aWNlIDAgY2hhbm5lbCAwIC0gMyAobG9va3Vw IGFsc28gdHJpZ2dlciBhIGNoYW5uZWwgZW5hYmxlKQ0KKyAgICByZXMgPSBj eWdfaW9fbG9va3VwKCAiL2Rldi9hZGMwMCIsICZoYW5kbGVbMF0pOw0KKyAg ICByZXMgPSBjeWdfaW9fbG9va3VwKCAiL2Rldi9hZGMwMSIsICZoYW5kbGVb MV0pOw0KKyAgICByZXMgPSBjeWdfaW9fbG9va3VwKCAiL2Rldi9hZGMwMiIs ICZoYW5kbGVbMl0pOw0KKyAgICByZXMgPSBjeWdfaW9fbG9va3VwKCAiL2Rl di9hZGMwMyIsICZoYW5kbGVbM10pOw0KKw0KKyAgICAvLw0KKyAgICAvLyBz d2l0Y2ggYWxsIGNoYW5uZWxzIHRvIG5vbiBibG9ja2luZw0KKyAgICAvLw0K KyAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX0FEQ19DSEFOTkVMX1RPX1RFU1Q7 ICsraSkNCisgICAgew0KKyAgICAgICAgaWYgKGhhbmRsZVtpXSkNCisgICAg ICAgIHsNCisgICAgICAgICAgICBjZmdfZGF0YSA9IDA7DQorICAgICAgICAg ICAgbGVuID0gc2l6ZW9mKGNmZ19kYXRhKTsNCisgICAgICAgICAgICByZXMg PSBjeWdfaW9fc2V0X2NvbmZpZyhoYW5kbGVbaV0sDQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgQ1lHX0lPX1NFVF9DT05GSUdfUkVB RF9CTE9DS0lORywNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmY2ZnX2RhdGEsDQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJmxlbik7DQorICAgICAgICAgICAgaWYgKEVOT0VSUiAhPSBy ZXMpDQorICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICBDWUdfVEVT VF9GQUlMX0ZJTklTSCgiRXJyb3Igc3dpdGNoaW5nIEFEQyBjaGFubmVsIHRv IG5vbiBibG9ja2luZyIpOw0KKyAgICAgICAgICAgIH0NCisgICAgICAgICAg ICBzYW1wbGVfY250W2ldID0gMDsNCisgICAgICAgIH0NCisgICAgfQ0KKw0K KyAgICBzdGFydF90aW1lID0gY3lnX2N1cnJlbnRfdGltZSgpOw0KKyAgICBk bw0KKyAgICB7DQorICAgICAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX0FEQ19D SEFOTkVMX1RPX1RFU1Q7ICsraSkNCisgICAgICAgIHsNCisgICAgICAgICAg ICBpZiAoaGFuZGxlW2ldKQ0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAg ICAgICAgY3lnX2FkY19zYW1wbGVfdCBzYW1wbGU7DQorDQorICAgICAgICAg ICAgICAgIC8vIHJlYWQgYSBzYW1wbGUgZnJvbSB0aGUgY2hhbm5lbA0KKyAg ICAgICAgICAgICAgICBkbw0KKyAgICAgICAgICAgICAgICB7DQorICAgICAg ICAgICAgICAgICAgICBjeWdfdWludDMyIGxlbiA9IHNpemVvZihzYW1wbGUp Ow0KKyAgICAgICAgICAgICAgICAgICAgcmVzID0gY3lnX2lvX3JlYWQoIGhh bmRsZVtpXSwgJnNhbXBsZSwgJmxlbiApOw0KKyAgICAgICAgICAgICAgICB9 DQorICAgICAgICAgICAgICAgIHdoaWxlICgtRUFHQUlOID09IHJlcyk7DQor ICAgICAgICAgICAgICAgIGlmIChFTk9FUlIgPT0gcmVzKQ0KKyAgICAgICAg ICAgICAgICB7DQorICAgICAgICAgICAgICAgICAgICBzYW1wbGVfY250W2ld Kys7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAgICB9IC8vIGlm IChoYW5kbGVbaV0pDQorICAgICAgICB9DQorICAgICAgICAvLw0KKyAgICAg ICAgLy8gcHJpbnQgbnVtYmVyIG9mIGFjcXVpcmVkIHNhbXBsZXMgLSBpZiBv bmUgc2Vjb25kIGlzIGV4cGlyZWQuDQorICAgICAgICAvLyB3ZSBleHBlY3Qg dGhhdCB0aGUgbnVtYmVyIG9mIGFjcXVpcmVkIHNhbXBsZXMgaXMgbmVhcmx5 IHRoZQ0KKyAgICAgICAgLy8gc2FtcGxlIHJhdGUNCisgICAgICAgIC8vDQor ICAgICAgICBlbmRfdGltZSA9IGN5Z19jdXJyZW50X3RpbWUoKTsNCisgICAg ICAgIGlmICgoZW5kX3RpbWUgLSBzdGFydF90aW1lKSA+PSAxMDApDQorICAg ICAgICB7DQorICAgICAgICAgICAgc3RhcnRfdGltZSA9IGVuZF90aW1lOw0K KyAgICAgICAgICAgIGRpYWdfcHJpbnRmKCIlZFx0ICVkXHQgJWRcdCAlZFxu IiwNCisgICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVfY250WzBdLA0K KyAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZV9jbnRbMV0sDQorICAg ICAgICAgICAgICAgICAgICAgICAgc2FtcGxlX2NudFsyXSwNCisgICAgICAg ICAgICAgICAgICAgICAgICBzYW1wbGVfY250WzNdKTsNCisgICAgICAgICAg ICBzZWNvbmRzKys7DQorICAgICAgICB9IC8vIGlmICgoZW5kX3RpbWUgLSBz dGFydF90aW1lKSA+PSAxMDApDQorICAgIH0gd2hpbGUgKHNlY29uZHMgPCAx MCk7DQorDQorICAgIC8vDQorICAgIC8vIE5vdyBzdG9wIGFsbCBjaGFubmVs cw0KKyAgICAvLw0KKyAgICBmb3IgKGkgPSAwOyBpIDwgTUFYX0FEQ19DSEFO TkVMX1RPX1RFU1Q7ICsraSkNCisgICAgew0KKyAgICAgICAgaWYgKGhhbmRs ZVtpXSkNCisgICAgICAgIHsNCisgICAgICAgICAgICByZXMgPSBjeWdfaW9f c2V0X2NvbmZpZyhoYW5kbGVbaV0sDQorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgQ1lHX0lPX1NFVF9DT05GSUdfQURDX0RJU0FCTEUs DQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwNCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKTsNCisgICAg ICAgICAgICBpZiAoRU5PRVJSICE9IHJlcykNCisgICAgICAgICAgICB7DQor ICAgICAgICAgICAgICAgIENZR19URVNUX0ZBSUxfRklOSVNIKCJFcnJvciBk aXNhYmxpbmcgQURDIGNoYW5uZWwiKTsNCisgICAgICAgICAgICB9DQorICAg ICAgICB9IC8vIGlmIChoYW5kbGVbaV0pDQorICAgIH0NCisgICAgZW5kX3Rp bWUgPSBjeWdfY3VycmVudF90aW1lKCk7DQorICAgIGVuZF90aW1lID0gc2Vj b25kcyAqIDEwMDAgKyAoZW5kX3RpbWUgLSBzdGFydF90aW1lKSAqIDEwOw0K KyAgICBmaW5hbF9zZWNvbmRzID0gZW5kX3RpbWUgLyAxMDAwLjA7DQorDQor ICAgIC8vDQorICAgIC8vIE5vdyByZWFkIGFsbCByZW1haW5pbmcgc2FtcGxl cyBmcm9tIGJ1ZmZlcg0KKyAgICAvLw0KKyAgICBmb3IgKGkgPSAwOyBpIDwg TUFYX0FEQ19DSEFOTkVMX1RPX1RFU1Q7ICsraSkNCisgICAgew0KKyAgICAg ICAgaWYgKGhhbmRsZVtpXSkNCisgICAgICAgIHsNCisgICAgICAgICAgICBk bw0KKyAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgY3lnX2FkY19z YW1wbGVfdCBzYW1wbGU7DQorICAgICAgICAgICAgICAgIGN5Z191aW50MzIg bGVuID0gc2l6ZW9mKHNhbXBsZSk7DQorICAgICAgICAgICAgICAgIHJlcyA9 IGN5Z19pb19yZWFkKCBoYW5kbGVbaV0sICZzYW1wbGUsICZsZW4gKTsNCisg ICAgICAgICAgICAgICAgaWYgKEVOT0VSUiA9PSByZXMpDQorICAgICAgICAg ICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAgIHNhbXBsZV9jbnRbaV0r KzsNCisgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAgICAgIH0gd2hpbGUg KEVOT0VSUiA9PSByZXMpOw0KKyAgICAgICAgfSAvLyBpZiAoaGFuZGxlW2ld KQ0KKyAgICB9DQorDQorICAgIGRpYWdfcHJpbnRmKCJcblxuLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIik7DQorICAgIHNh bXBsZXNfZXhwZWN0ZWQgPSBmaW5hbF9zZWNvbmRzICogQ1lHTlVNX0RFVlNf QURDX0FSTV9BVDkxX0RFRkFVTFRfUkFURTsNCisgICAgZGlhZ19wcmludGYo IlNhbXBsZXMgZXhwZWN0ZWQgYWZ0ZXIgJWQgbWlsbGlzZWNvbmRzOiAlZFxu IiwNCisgICAgICAgICAgICAgICAgZW5kX3RpbWUsIHNhbXBsZXNfZXhwZWN0 ZWQpOw0KKyAgICBkaWFnX3ByaW50ZigiU2FtcGxlcyByZWFkIChwZXIgY2hh bm5lbCk6XG4iKTsNCisgICAgZGlhZ19wcmludGYoIiVkXHQgJWRcdCAlZFx0 ICVkXG4iLA0KKyAgICAgICAgICAgICAgICBzYW1wbGVfY250WzBdLA0KKyAg ICAgICAgICAgICAgICBzYW1wbGVfY250WzFdLA0KKyAgICAgICAgICAgICAg ICBzYW1wbGVfY250WzJdLA0KKyAgICAgICAgICAgICAgICBzYW1wbGVfY250 WzNdKTsNCisNCisgICAgQ1lHX1RFU1RfUEFTU19GSU5JU0goIkFEQyB0ZXN0 IE9LIik7DQorfQ0KKw0KKw0KK3ZvaWQNCitjeWdfc3RhcnQodm9pZCkNCit7 DQorICAgIENZR19URVNUX0lOSVQoKTsNCisNCisgICAgLy8NCisgICAgLy8g Y3JlYXRlIHRoZSBtYWluIEFEQyB0ZXN0IHRocmVhZA0KKyAgICAvLw0KKyAg ICBjeWdfdGhyZWFkX2NyZWF0ZSg0LCBhZGNfdGhyZWFkLA0KKyAgICAgICAg ICAgICAgICAgICAgICAoY3lnX2FkZHJ3b3JkX3QpIDAsDQorICAgICAgICAg ICAgICAgICAgICAgICJhdDkxX2FkY190aHJlYWQiLA0KKyAgICAgICAgICAg ICAgICAgICAgICAodm9pZCAqKSBhZGNfdGhyZWFkX2RhdGEuc3RhY2ssDQor ICAgICAgICAgICAgICAgICAgICAgIDEwMjQgKiBzaXplb2YobG9uZyksDQor ICAgICAgICAgICAgICAgICAgICAgICZhZGNfdGhyZWFkX2RhdGEuaGRsLA0K KyAgICAgICAgICAgICAgICAgICAgICAmYWRjX3RocmVhZF9kYXRhLm9iaik7 DQorDQorICAgIGN5Z190aHJlYWRfcmVzdW1lKGFkY190aHJlYWRfZGF0YS5o ZGwpOw0KKw0KKyAgICBjeWdfc2NoZWR1bGVyX3N0YXJ0KCk7DQorfQ0KKyNl bHNlIC8vIENZR0lOVF9ERVZTX0FEQ19BUk1fQVQ5MV9DSEFOTkVMUyA+IDAN CisjZGVmaW5lIE5fQV9NU0cgIk5lZWRzIGF0IGxlYXN0IG9uZSBlbmFibGVk IEFEQyBjaGFubmVsIg0KKyNlbmRpZg0KKw0KKyNlbHNlIC8vIENZR0ZVTl9L RVJORUxfQVBJX0MNCisjZGVmaW5lIE5fQV9NU0cgIk5lZWRzIGtlcm5lbCBD IEFQSSINCisjZW5kaWYNCisNCisjZWxzZSAvLyBDWUdQS0dfSU9fQURDICYm IENZR1BLR19LRVJORUwNCisjZGVmaW5lIE5fQV9NU0cgIk5lZWRzIEtlcm5l bCBhbmQgQURDIHN1cHBvcnQiDQorI2VuZGlmDQorDQorI2lmZGVmIE5fQV9N U0cNCit2b2lkDQorY3lnX3N0YXJ0KCB2b2lkICkNCit7DQorICAgIENZR19U RVNUX0lOSVQoKTsNCisgICAgQ1lHX1RFU1RfTkEoTl9BX01TRyk7DQorfQ0K KyNlbmRpZiAvLyBOX0FfTVNHDQorDQorDQorLy8gRU9GIGNhbl90eC5jDQor DQorLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCisvLyBlb2Yg YXQ5MV9hZGNfdGVzdC5jDQpkaWZmIC0tZ2l0IGEvcGFja2FnZXMvZWNvcy5k YiBiL3BhY2thZ2VzL2Vjb3MuZGINCi0tLSBhL3BhY2thZ2VzL2Vjb3MuZGIN CisrKyBiL3BhY2thZ2VzL2Vjb3MuZGINCkBAIC0yNDIxLDYgKzI0MjEsMTUg QEANCiAgICAgICAgICAgICBBREMgcHJvdmlkZWQgYnkgdGhlIExQQzI0eHgg cHJvY2Vzc29yIGZhbWlseS4iDQogfQ0KIA0KK3BhY2thZ2UgQ1lHUEtHX0RF VlNfQURDX0FSTV9BVDkxIHsNCisgICAgYWxpYXMgICAgICAgICAgIHsgIkFU OTEgQURDIGRyaXZlciIgfQ0KKyAgICBoYXJkd2FyZQ0KKyAgICBkaXJlY3Rv cnkgICAgICAgZGV2cy9hZGMvYXJtL2F0OTENCisgICAgc2NyaXB0ICAgICAg ICAgIGFkY19hdDkxLmNkbA0KKyAgICBkZXNjcmlwdGlvbiAiDQorICAgICAg ICAgICAgVGhpcyBwYWNrYWdlcyBwcm92aWRlcyBhbiBBREMgZHJpdmVyIGZv ciB0aGUgb24tY2hpcA0KKyAgICAgICAgICAgIEFEQyBwcm92aWRlZCBieSB0 aGUgQXRtZWwgQVQ5MSBwcm9jZXNzb3IgZmFtaWx5LiINCit9DQogcGFja2Fn ZSBDWUdQS0dfREVWU19BRENfU1lOVEggew0KICAgICBhbGlhcyAgICAgICAg IHsgIlN5bnRoZXRoaWMgQURDIGRyaXZlciIgYWRjX3N5bnRoIH0NCiAgICAg aGFyZHdhcmUNCg== ------_=_NextPart_001_01CAF993.052F9885--