From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7872 invoked by alias); 31 May 2018 14:46:11 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 7857 invoked by uid 89); 31 May 2018 14:46:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.0 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=didn X-HELO: EUR01-DB5-obe.outbound.protection.outlook.com Received: from mail-db5eur01on0063.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (104.47.2.63) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 31 May 2018 14:46:06 +0000 Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com (10.172.226.148) by DB6PR0802MB2439.eurprd08.prod.outlook.com (10.172.251.11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.11; Thu, 31 May 2018 14:46:03 +0000 Received: from DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::d984:bdee:1856:c64]) by DB6PR0802MB2133.eurprd08.prod.outlook.com ([fe80::d984:bdee:1856:c64%7]) with mapi id 15.20.0820.010; Thu, 31 May 2018 14:46:03 +0000 From: Alan Hayward To: Simon Marchi CC: "gdb-patches@sourceware.org" , nd Subject: Re: [PATCH 8/8] Ptrace support for Aarch64 SVE Date: Thu, 31 May 2018 14:56:00 -0000 Message-ID: <22AC70D2-D24D-4DE9-939F-067BE65F02F3@arm.com> References: <20180511105256.27388-1-alan.hayward@arm.com> <20180511105256.27388-9-alan.hayward@arm.com> <752617dd-3221-7aa7-d626-b841fe13761c@ericsson.com> In-Reply-To: <752617dd-3221-7aa7-d626-b841fe13761c@ericsson.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;DB6PR0802MB2439;7:6Iwwu745kfVDcL/jvi5N9jwm7Sd2JdNfdUeF7XrmalEe2/4XKApz7zTX22v+AO85faV6E1LqrD01OD9QJvx3RFSuQwQkDi/uIbUUfLjj57mzY7Gwrn4EFG4maK+6tDb6RFP3wFLhjy0Dz8WX47Gsjo9Zd9FJF0rg/tcdoQrwyDGiXka8FSHiJtnhoJYsjVtx2bGAV2hkzezHBhTj/8eWdxKen2KO7qNYxIs5MnjJOcUN0WSXj3fl9SSLuZJty/gt x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(48565401081)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:DB6PR0802MB2439; x-ms-traffictypediagnostic: DB6PR0802MB2439: nodisclaimer: True x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(37575265505322); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3002001)(93006095)(93001095)(10201501046)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011)(7699016);SRVR:DB6PR0802MB2439;BCL:0;PCL:0;RULEID:;SRVR:DB6PR0802MB2439; x-forefront-prvs: 06891E23FB x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(366004)(39380400002)(396003)(39860400002)(376002)(346002)(189003)(199004)(51444003)(53546011)(3846002)(2906002)(76176011)(99286004)(6116002)(6436002)(316002)(229853002)(68736007)(54906003)(33656002)(82746002)(36756003)(3660700001)(3280700002)(6916009)(5660300001)(476003)(6486002)(50226002)(2616005)(486006)(105586002)(8936002)(446003)(11346002)(81156014)(8676002)(81166006)(106356001)(86362001)(97736004)(102836004)(6512007)(14454004)(59450400001)(6246003)(7736002)(2900100001)(966005)(53936002)(6306002)(305945005)(25786009)(83716003)(5250100002)(4326008)(186003)(72206003)(26005)(66066001)(57306001)(478600001)(6506007);DIR:OUT;SFP:1101;SCL:1;SRVR:DB6PR0802MB2439;H:DB6PR0802MB2133.eurprd08.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: kMHHII5cFoHXok0XtJUzFvHaYD75Dt64mgUq1QWxFq/oPVoRCp03yQDvvitdr3ieTN/qYfIDuSbHp6bFRdCk4qJ/ht7laHJdbqdT2IJa+usZyUBRaBK6/AN9bUqpVOECFodesgw1SZ1Kqu5JTtIPqwFmfcFshxNgv8iUcMOKK6sJTBG3flQ40DOS33sLWhw2 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <4B1BA4A3F236F64BBC1FD2DAFCC2297A@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 16d68353-04b5-4eb4-112e-08d5c7053ba3 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16d68353-04b5-4eb4-112e-08d5c7053ba3 X-MS-Exchange-CrossTenant-originalarrivaltime: 31 May 2018 14:46:03.0658 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0802MB2439 X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00853.txt.bz2 DQoNCj4gT24gMzEgTWF5IDIwMTgsIGF0IDE0OjIyLCBTaW1vbiBNYXJjaGkg PHNpbW9uLm1hcmNoaUBlcmljc3Nvbi5jb20+IHdyb3RlOg0KPiANCj4gSGkg QWxhbiwNCj4gDQo+IFNpbmNlIHRoZXJlIGlzIGEgZ29vZCBudW1iZXIgb2Yg bWFjcm9zIGNvcGllZCBmcm9tIHRoZSBMaW51eCBrZXJuZWwsIGl0IG1pZ2h0 IGJlDQo+IGEgZ29vZCBpZGVhIHRvIGlzb2xhdGUgaW4gdGhlaXIgb3duIGZp bGUuICBJdCB3b3VsZCBhbHNvIGJlIGdvb2QgdG8gaWRlbnRpZnkNCj4gcHJl Y2lzZWx5IHdoaWNoIGZpbGUgdGhleSBjb21lIGZyb20gKHRoZSBwYXRoIHJl bGF0aXZlIHRvIHRoZSByb290IG9mIHRoZSBsaW51eA0KPiByZXBvKSBhbmQg dGhlIGdpdCBjb21taXQgeW91IHVzZWQuDQo+IA0KPiBBbHNvLCBzaW5jZSB0 aGUgY29waWVkIGNvZGUgaXMgcmF0aGVyIGxhcmdlIGFuZCBub24tdHJpdmlh bCwgZG9lcyBpdCBwb3NlIGNvcHlyaWdodA0KPiBwcm9ibGVtcz8gIElmIHdl IHdhbnQgdG8gaW5jbHVkZSBpdCwgbWF5YmUgdGhhdCBzZXBhcmF0ZSBmaWxl IHNob3VsZCBub3Qgc3RhdGUgdGhhdA0KPiB0aGUgY29weXJpZ2h0IGlzIG93 bmVkIGJ5IHRoZSBGU0YsIHNpbmNlIGl0J3Mgbm90IHRoZSBjYXNlPyAgTWF5 YmUgb3RoZXJzIGhhdmUNCj4gZXhwZXJpZW5jZSB3aXRoIHRoaXMga2luZCBv ZiB0aGluZ3MsIG9yIG1heWJlIHdlIHNob3VsZCBnZXQgYW4gYWR2aWNlIGZy b20gdGhlIEZTRiBkaXJlY3RseS4NCg0KQSBuZXcgZmlsZSBtYWtlcyBzZW5z ZSAoZXNwZWNpYWxseSB3aXRoIHJlZ2FyZHMgdG8gY29weXJpZ2h0KS4gSG93 ZXZlciwgdGhlIHBsYW4gd2FzDQp0byBldmVudHVhbGx5IHJlbW92ZSB0aGUg bWFjcm9zIHdoZW4gImVub3VnaCIgdGltZSBoYXMgcGFzc2VkIC0ga2VlcGlu ZyBldmVyeXRoaW5nDQppbiBhYXJjaDY0LXN2ZS1saW51eC1wdHJhY2UuaCBt YWRlIGl0IHNpbXBsZXIgdGhhbiByZW1vdmluZyBmaWxlcy4NCg0KSXMgdGhl cmUgYSBtaW5pbXVtIGtlcm5lbCB2ZXJzaW9uIHRoYXQgZ2RiIHJlcXVpcmVz IHRvIGxpbmsgYWdhaW5zdCBpbiBvcmRlciB0byBidWlsZD8NClRoZSByZWxl dmFudCBkZWZpbmVzIGFyZSBpbiA0LjE1LiBUaGUga2VybmVsIGlzIG5vdyBv biA0LjE2LjkuDQoNCknigJltIGd1ZXNzaW5nIHRoaXMgbXVzdCBoYXZlIGNv bWUgdXAgYmVmb3JlIHdoZW4gb3RoZXIgdGFyZ2V0cyBhZGRlZCBuZXcga2Vy bmVsIGZlYXR1cmVzPw0KSSBkaWRu4oCZdCB3YW50IHRvIHN1ZGRlbmx5IGRl c3Ryb3kgZXZlcnlvbmXigJlzIGFhcmNoNjQvdGFyZ2V0YWxsIGJ1aWxkIHRy ZWVzIHdpdGhvdXQNCndhcm5pbmcuDQoNCg0KPj4gZGlmZiAtLWdpdCBhL2dk Yi9uYXQvYWFyY2g2NC1zdmUtbGludXgtcHRyYWNlLmMgYi9nZGIvbmF0L2Fh cmNoNjQtc3ZlLWxpbnV4LXB0cmFjZS5jDQo+PiBpbmRleCA5MzgxNzg2ZmRh Li44NGM3YTQxZjQwIDEwMDY0NA0KPj4gLS0tIGEvZ2RiL25hdC9hYXJjaDY0 LXN2ZS1saW51eC1wdHJhY2UuYw0KPj4gKysrIGIvZ2RiL25hdC9hYXJjaDY0 LXN2ZS1saW51eC1wdHJhY2UuYw0KPj4gQEAgLTI1LDYgKzI1LDEzIEBADQo+ PiAjaW5jbHVkZSAiYWFyY2g2NC1zdmUtbGludXgtcHRyYWNlLmgiDQo+PiAj aW5jbHVkZSAiYXJjaC9hYXJjaDY0LmgiDQo+PiANCj4+ICsjaWZuZGVmIEdE QlNFUlZFUg0KPj4gKyNpbmNsdWRlICJkZWZzLmgiDQo+PiArI2VuZGlmDQo+ PiArI2luY2x1ZGUgInJlZ2NhY2hlLmgiDQo+IA0KPiBIbW0gd2UgdHJ5IG5v dCBhZGQgYW55IG1vcmUgIiNpZmRlZiBHREJTRVJWRVIiIGluIHRoZSBjb21t b24gY29kZS4NCj4gDQo+IGh0dHBzOi8vc291cmNld2FyZS5vcmcvZ2RiL3dp a2kvQ29tbW9uI0hlYWRlcl9maWxlc19pbl9jb21tb25fY29kZV8uMjhkZWZz LmhfdnNfc2VydmVyLmguMkNfZXRjLi4yOQ0KPiANCj4gSW5zdGVhZCwgd2Ug c2hvdWxkIHRyeSBkZWZpbmluZyBhIGNvbW1vbiBpbnRlcmZhY2UgKHByb2Jh Ymx5IGluIGNvbW1vbi9jb21tb24tcmVnY2FjaGUuaD8pIHRoYXQgdGhlDQo+ IGNvbW1vbiBjb2RlIHdpbGwgdXNlLCBhbmQgdGhhdCByZWdjYWNoZXMgZnJv bSBHREIgYW5kIEdEQnNlcnZlciB3aWxsIGltcGxlbWVudC4NCg0KSSB0cmll ZCB1c2luZyBjb21tb24tZGVmcy5oLCBidXQgZ2RiL3JlZ2NhY2hlLmggcmVx dWlyZXMgZGVmaW5lcyBmcm9tDQpkZWZzLmggLSBSZXF1aXJlTG9uZ2VzdCBh bmQgbWF5YmUgb3RoZXJzLg0KUHV0dGluZyBkZWZzLmggYXQgdGhlIHRvcCBv ZiBnZGIvcmVnY2FjaGUuaCB0aGVuIGJyb2tlIGluIGEgd2VpcmQgd2F5Lg0K QSBsb3Qgb2YgZmlkZGxpbmcgbGF0ZXIsIGFuZCBJIGhhZG7igJl0IGZvdW5k IGEgd2F5IHRvIG1ha2UgaXQgd29yay4NCg0KQ3JlYXRpbmcgY29tbW9uL2Nv bW1vbi1yZWdjYWNoZS5oIGdldHMgYSBiaXQgb2RkIGJlY2F1c2UsIHRoZSBm dW5jdGlvbnMNCkkgbmVlZCBmb3IgZ2Ric2VydmVyIChyYXdfc3VwcGx5LCBy YXdfY29sbGVjdCBhbmQgZ2V0X3JlZ2lzdGVyX3N0YXR1cykNCm9uIGdkYiBj b21lIGZyb206DQoNCg0KY2xhc3MgcmVnX2J1ZmZlcg0KLi4uDQogIGVudW0g cmVnaXN0ZXJfc3RhdHVzIGdldF9yZWdpc3Rlcl9zdGF0dXMgKGludCByZWdu dW0pIGNvbnN0Ow0KLi4uDQoNCg0KY2xhc3MgcmVhZGFibGVfcmVnY2FjaGUg OiBwdWJsaWMgcmVnX2J1ZmZlcg0KLi4uDQoNCg0KY2xhc3MgZGV0YWNoZWRf cmVnY2FjaGUgOiBwdWJsaWMgcmVhZGFibGVfcmVnY2FjaGUNCi4uLg0KICB2 b2lkIHJhd19zdXBwbHkgKGludCByZWdudW0sIGNvbnN0IHZvaWQgKmJ1Zik7 DQouLi4NCg0KDQpjbGFzcyByZWdjYWNoZSA6IHB1YmxpYyBkZXRhY2hlZF9y ZWdjYWNoZQ0KLi4uDQogIHZvaWQgcmF3X2NvbGxlY3QgKGludCByZWdudW0s IHZvaWQgKmJ1ZikgY29uc3Q7DQouLi4NCg0KDQpJIGRvbuKAmXQgdGhpbmsg dGhhdCB0aGlzIHdvdWxkIHdvcms6DQpjbGFzcyByZWdjYWNoZSA6IHB1Ymxp YyBkZXRhY2hlZF9yZWdjYWNoZSwgY29tbW9uX3JlZ2NhY2hlDQoNCg0KPiAN Cj4+ICsNCj4+ICtzdGF0aWMgYm9vbCB2cV9jaGFuZ2Vfd2FybmVkID0gZmFs c2U7DQo+PiArDQo+PiAvKiBSZWFkIFZRIGZvciB0aGUgZ2l2ZW4gdGlkIHVz aW5nIHB0cmFjZS4gIElmIFNWRSBpcyBub3Qgc3VwcG9ydGVkIHRoZW4gemVy bw0KPj4gICAgaXMgcmV0dXJuZWQgKG9uIGEgc3lzdGVtIHRoYXQgc3VwcG9y dHMgU1ZFLCB0aGVuIFZRIGNhbm5vdCBiZSB6ZW8pLiAgKi8NCj4+IA0KPj4g QEAgLTUwLDMgKzU3LDI1OSBAQCBhYXJjaDY0X3N2ZV9nZXRfdnEgKGludCB0 aWQpDQo+PiANCj4+ICAgcmV0dXJuIHZxOw0KPj4gfQ0KPj4gKw0KPj4gKy8q IFJlYWQgdGhlIGN1cnJlbnQgU1ZFIHJlZ2lzdGVyIHNldCB1c2luZyBwdHJh Y2UsIGFsbG9jYXRpbmcgc3BhY2UgYXMNCj4+ICsgICByZXF1aXJlZC4gICov DQo+IA0KPiBQdXQgYSByZWZlcmVuY2UgdG8gdGhlIC5oIGhlcmUuDQo+IA0K PiBTaW5jZSB0aGlzIHJldHVybnMgYWxsb2NhdGVkIG1lbW9yeSwgY291bGQg d2UgcmV0dXJuIGFuIFJBSUkgb2JqZWN0PyAgRWl0aGVyDQo+IHN0ZDo6dmVj dG9yLCBzdGQ6OnVuaXF1ZV9wdHIgb3IgZ2RiOjp1bmlxdWVfeG1hbGxvY19w dHIuDQoNClllcywgSeKAmWxsIHVwZGF0ZSB3aXRoIG9uZSBvZiB0aG9zZS4g SXMgdGhlcmUgYW55IGRvY3VtZW50YXRpb24gZXhwbGFpbmluZw0Kd2hlbiB0 byB1c2Ugd2hpY2ggb2YgdGhlc2U/DQoNCj4gDQo+PiArDQo+PiArZ2RiX2J5 dGUgKg0KPj4gK2FhcmNoNjRfc3ZlX2dldF9zdmVyZWdzIChpbnQgdGlkKQ0K Pj4gK3sNCj4+ICsgIGludCByZXQ7DQo+PiArICBzdHJ1Y3QgaW92ZWMgaW92 ZWM7DQo+PiArICBzdHJ1Y3QgdXNlcl9zdmVfaGVhZGVyIGhlYWRlcjsNCj4+ ICsgIGxvbmcgdnEgPSBhYXJjaDY0X3N2ZV9nZXRfdnEgKHRpZCk7DQo+PiAr DQo+PiArICBpZiAodnEgPT0gMCkNCj4+ICsgICAgcGVycm9yX3dpdGhfbmFt ZSAoXygiVW5hYmxlIHRvIGZldGNoIHN2ZSByZWdpc3RlciBoZWFkZXIiKSk7 DQo+PiArDQo+PiArICAvKiBBIHB0cmFjZSBjYWxsIHdpdGggTlRfQVJNX1NW RSB3aWxsIHJldHVybiBhIGhlYWRlciBmb2xsb3dlZCBieSBlaXRoZXIgYQ0K Pj4gKyAgICAgZHVtcCBvZiBhbGwgdGhlIFNWRSBhbmQgRlAgcmVnaXN0ZXJz LCBvciBhbiBmcHNpbWQgc3RydWN0dXJlIChpZGVudGljYWwgdG8NCj4+ICsg ICAgIHRoZSBvbmUgcmV0dXJuZWQgYnkgTlRfRlBSRUdTRVQpIGlmIHRoZSBr ZXJuZWwgaGFzIG5vdCB5ZXQgZXhlY3V0ZWQgYW55DQo+PiArICAgICBTVkUg Y29kZS4gIE1ha2Ugc3VyZSB3ZSBhbGxvY2F0ZSBlbm91Z2ggc3BhY2UgZm9y IGEgZnVsbCBTVkUgZHVtcC4gICovDQo+PiArDQo+PiArICBpb3ZlYy5pb3Zf bGVuID0gU1ZFX1BUX1NJWkUgKHZxLCBTVkVfUFRfUkVHU19TVkUpOw0KPj4g KyAgaW92ZWMuaW92X2Jhc2UgPSB4bWFsbG9jIChpb3ZlYy5pb3ZfbGVuKTsN Cj4+ICsNCj4+ICsgIHJldCA9IHB0cmFjZSAoUFRSQUNFX0dFVFJFR1NFVCwg dGlkLCBOVF9BUk1fU1ZFLCAmaW92ZWMpOw0KPj4gKyAgaWYgKHJldCA8IDAp DQo+PiArICAgIHBlcnJvcl93aXRoX25hbWUgKF8oIlVuYWJsZSB0byBmZXRj aCBzdmUgcmVnaXN0ZXJzIikpOw0KPj4gKw0KPj4gKyAgcmV0dXJuIChnZGJf Ynl0ZSAqKSBpb3ZlYy5pb3ZfYmFzZTsNCj4+ICt9DQo+PiArDQo+PiArLyog UHV0IHRoZSByZWdpc3RlcnMgZnJvbSBsaW51eCBzdHJ1Y3R1cmUgYnVmIGlu dG8gcmVnY2FjaGUuICAqLw0KPj4gKw0KPj4gK3ZvaWQNCj4+ICthYXJjaDY0 X3N2ZV9yZWdzX2NvcHlfdG9fcmVnY2FjaGUgKHN0cnVjdCByZWdjYWNoZSAq cmVnY2FjaGUsIGNvbnN0IHZvaWQgKmJ1ZikNCj4+ICt7DQo+PiArICBjaGFy ICpiYXNlID0gKGNoYXIqKSBidWY7DQo+PiArICBpbnQgaTsNCj4+ICsgIHN0 cnVjdCB1c2VyX3N2ZV9oZWFkZXIgKmhlYWRlciA9IChzdHJ1Y3QgdXNlcl9z dmVfaGVhZGVyICopIGJ1ZjsNCj4+ICsgIGxvbmcgdnEsIHZnX3JlZ2NhY2hl Ow0KPj4gKw0KPj4gKyAgdnEgPSBzdmVfdnFfZnJvbV92bCAoaGVhZGVyLT52 bCk7DQo+PiArDQo+PiArICAvKiBTYW5pdHkgY2hlY2sgdGhlIGRhdGEgaW4g dGhlIGhlYWRlci4gICovDQo+PiArICBnZGJfYXNzZXJ0IChzdmVfdmxfdmFs aWQgKGhlYWRlci0+dmwpKTsNCj4+ICsgIGdkYl9hc3NlcnQgKFNWRV9QVF9T SVpFICh2cSwgaGVhZGVyLT5mbGFncykgPT0gaGVhZGVyLT5zaXplKTsNCj4g DQo+IEFnYWluLCB3ZSBzaG91bGRuJ3QgdXNlIGdkYl9hc3NlcnQgaGVyZSwg c2luY2UgdGhpcyB2YWxpZGF0ZXMgZXh0ZXJuYWwgaW5wdXQuDQoNCk9rLg0K DQo+IA0KPj4gKw0KPj4gKyAgcmVnY2FjaGUtPnJhd19jb2xsZWN0IChBQVJD SDY0X1NWRV9WR19SRUdOVU0sICZ2Z19yZWdjYWNoZSk7DQo+IA0KPiBXaGVu IGZldGNoaW5nIHJlZ2lzdGVycywgd29uJ3QgaXQgYmUgdXN1YWxseSB0byBm aWxsIGEgc2hpbnkgbmV3LCBlbXB0eSByZWdjYWNoZT8NCj4gSW4gdGhhdCBj YXNlLCB3b24ndCBpdCBhbHdheXMgZmFsbCBpbnRvIHRoZSAiaWYiIGJyYW5j aD8NCj4gDQo+IEluIGFueSBjYXNlLCBzaG91bGQgd2UgY2hlY2sgdGhlIHN0 YXR1cyBvZiB0aGUgVkcgcmVnaXN0ZXIgdG8gbWFrZSBzdXJlIGl0J3MgUkVH X1ZBTElEDQo+IGJlZm9yZSB3ZSB0cnkgdG8gY29sbGVjdCBpdD8NCg0KSSB0 aG91Z2h0IHRoZSBzYW1lIHJlZ2NhY2hlIHdhcyB1c2VkIGVhY2ggdGltZSBy ZWdpc3RlcnMgbmVlZGVkIHJlYWRpbmc/DQpJ4oCZbGwgZG91YmxlIGNoZWNr IHRoaXMuDQpFaXRoZXIgd2F5LCB5ZXMsIHNob3VsZCBwcm9iYWJseSBjaGVj ayBSRUdfVkFMSUQNCg0KPiANCj4+ICsgIGlmICh2Z19yZWdjYWNoZSA9PSAw KQ0KPj4gKyAgICB7DQo+PiArICAgICAgLyogVkcgaGFzIG5vdCBiZWVuIHNl dC4gICovDQo+PiArICAgICAgdmdfcmVnY2FjaGUgPSBzdmVfdmdfZnJvbV92 bCAoaGVhZGVyLT52bCk7DQo+PiArICAgICAgcmVnY2FjaGUtPnJhd19zdXBw bHkgKEFBUkNINjRfU1ZFX1ZHX1JFR05VTSwgJnZnX3JlZ2NhY2hlKTsNCj4+ ICsgICAgfQ0KPj4gKyAgZWxzZSBpZiAodmdfcmVnY2FjaGUgIT0gc3ZlX3Zn X2Zyb21fdmwgKGhlYWRlci0+dmwpICYmICF2cV9jaGFuZ2Vfd2FybmVkKQ0K Pj4gKyAgICB7DQo+PiArICAgICAgLyogVmVjdG9yIGxlbmd0aCBvbiB0aGUg cnVubmluZyBwcm9jZXNzIGhhcyBjaGFuZ2VkLiAgR0RCIGN1cnJlbnRseSBk b2VzDQo+PiArCSBub3Qgc3VwcG9ydCB0aGlzIGFuZCB3aWxsIHJlc3VsdCBp biBHREIgc2hvd2luZyBpbmNvcnJlY3QgcGFydGlhbGx5DQo+PiArCSBpbmNv cnJlY3QgZGF0YSBmb3IgdGhlIHZlY3RvciByZWdpc3RlcnMuICBXYXJuIG9u Y2UgYW5kIGNvbnRpbnVlLiAgV2UNCj4+ICsJIGRvIG5vdCBleHBlY3QgbWFu eSBwcm9ncmFtcyB0byBleGhpYml0IHRoaXMgYmVoYXZpb3VyLiAgVG8gZml4 IHRoaXMNCj4+ICsJIHdlIG5lZWQgdG8gc3BvdCB0aGUgY2hhbmdlIGVhcmxp ZXIgYW5kIGdlbmVyYXRlIGEgbmV3IHRhcmdldA0KPj4gKwkgZGVzY3JpcHRv ci4gICovDQo+PiArICAgICAgd2FybmluZyAoXygiVmVjdG9yIGxlbmd0aCBo YXMgY2hhbmdlZCAoJWxkIHRvICVkKS4gIg0KPj4gKwkJICJWZWN0b3IgcmVn aXN0ZXJzIG1heSBzaG93IGluY29ycmVjdCBkYXRhLiIpLA0KPiANCj4gUGVy aGFwcyBtZW50aW9uICJTVkUgdmVjdG9yIGxlbmd0aCBoYXMgY2hhbmdlZC4u LiI/ICBPdGhlcndpc2UgdGhlIHVzZXIgbWF5IHdvbmRlcg0KPiB3aGF0IHZl Y3RvcnMgd2UgYXJlIHRhbGtpbmcgYWJvdXQuDQoNCkFncmVlZC4NCg0KPiAN Cj4+ICsJCSB2Z19yZWdjYWNoZSwgc3ZlX3ZnX2Zyb21fdmwgKGhlYWRlci0+ dmwpKTsNCj4+ICsgICAgICB2cV9jaGFuZ2Vfd2FybmVkID0gdHJ1ZTsNCj4+ ICsgICAgfQ0KPj4gKw0KPj4gKyAgaWYgKEhBU19TVkVfU1RBVEUgKCpoZWFk ZXIpKQ0KPj4gKyAgICB7DQo+PiArICAgICAgLyogVGhlIHJlZ2lzdGVyIGR1 bXAgY29udGFpbnMgYSBzZXQgb2YgU1ZFIHJlZ2lzdGVycy4gICovDQo+PiAr DQo+PiArICAgICAgZm9yIChpID0gMDsgaSA8IEFBUkNINjRfU1ZFX1pfUkVH U19OVU07IGkrKykNCj4+ICsJcmVnY2FjaGUtPnJhd19zdXBwbHkgKEFBUkNI NjRfU1ZFX1owX1JFR05VTSArIGksDQo+PiArCQkgICAgYmFzZSArIFNWRV9Q VF9TVkVfWlJFR19PRkZTRVQgKHZxLCBpKSk7DQo+PiArDQo+PiArICAgICAg Zm9yIChpID0gMDsgaSA8IEFBUkNINjRfU1ZFX1BfUkVHU19OVU07IGkrKykN Cj4+ICsJcmVnY2FjaGUtPnJhd19zdXBwbHkgKEFBUkNINjRfU1ZFX1AwX1JF R05VTSArIGksDQo+PiArCQkgICAgYmFzZSArIFNWRV9QVF9TVkVfUFJFR19P RkZTRVQgKHZxLCBpKSk7DQo+PiArDQo+PiArICAgICAgcmVnY2FjaGUtPnJh d19zdXBwbHkgKEFBUkNINjRfU1ZFX0ZGUl9SRUdOVU0sDQo+PiArCQkgIGJh c2UgKyBTVkVfUFRfU1ZFX0ZGUl9PRkZTRVQgKHZxKSk7DQo+PiArICAgICAg cmVnY2FjaGUtPnJhd19zdXBwbHkgKEFBUkNINjRfRlBTUl9SRUdOVU0sDQo+ PiArCQkgIGJhc2UgKyBTVkVfUFRfU1ZFX0ZQU1JfT0ZGU0VUICh2cSkpOw0K Pj4gKyAgICAgIHJlZ2NhY2hlLT5yYXdfc3VwcGx5IChBQVJDSDY0X0ZQQ1Jf UkVHTlVNLA0KPj4gKwkJICBiYXNlICsgU1ZFX1BUX1NWRV9GUENSX09GRlNF VCAodnEpKTsNCj4gDQo+IEFsaWduIHRoZSBzZWNvbmQgbGluZSB3aXRoIHRo ZSBmaXJzdCBhcmd1bWVudC4gIEhlcmUncyBhbiBleGFtcGxlLCB0aG91Z2gN Cj4gdXNpbmcgc3BhY2VzIGluc3RlYWQgb2YgdGFicyB0byBtYWtlIHN1cmUg KGhvcGVmdWxseSkgdGhlIG1haWwgY2xpZW50cyBkaXNwbGF5IGl0DQo+IGNv cnJlY3RseS4NCj4gDQo+ICAgICAgICByZWdjYWNoZS0+cmF3X3N1cHBseSAo QUFSQ0g2NF9TVkVfWjBfUkVHTlVNICsgaSwNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBiYXNlICsgU1ZFX1BUX1NWRV9aUkVHX09GRlNFVCAo dnEsIGkpKTsNCj4gDQo+IFRoZXJlIGFyZSBtYW55IGluc3RhbmNlcyB0aHJv dWdob3V0IHRoaXMgZmlsZS4NCj4gDQoNCkkgdGhpbmsgdGhhdOKAmXMgbGVm dG92ZXIgZnJvbSB3aGVuIEkgY2hhbmdlZCBmcm9tICJyYXdfc3VwcGx5IChy ZWdjYWNoZSzigJ0NCnRvIOKAnHJlZ2NhY2hlLT5yYXdfc3VwcGx5ICjigJwu DQpJ4oCZbGwgZml4IGl0IHVwLg0KDQoNCkFsYW4uDQoNCg==