Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp198873imu; Thu, 8 Nov 2018 07:06:52 -0800 (PST) X-Google-Smtp-Source: AJdET5cbrJeqtkvBz1Jk1SBeSfAI9D7/oSoSP7eeOr4Suxo8Plmm10slZXOOGJa5afdMnx4tZ2dT X-Received: by 2002:a62:6e47:: with SMTP id j68-v6mr4847126pfc.197.1541689611987; Thu, 08 Nov 2018 07:06:51 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541689611; cv=none; d=google.com; s=arc-20160816; b=uaQNc41jbUWXGkRrHnGNWpRrwlZ1QitGV4LacrViWyhkmsvEjHjvc5sCPE6QXQ7U9H WklitUpYRE9sEDnhiEDKv0hegw5I/fMtZ0zlHMghZI3q6q+K+Dv5XoeGfh8pcK8Lb8Hi 2eqwrKzoXDKyZRPFPQoMDZ/8w4DBTuzq20uonOSROGce7Lit/d1hxQE+ywuHneDzXsKB Kzdf7mCBVuMdCMEE+JCCn+5gyCxgKnt7gYX2bF04LIiKY3n5E4d+5rdLpLMZgKdBD2xq uGA/wbTVXH8ngsRIpomwFVo7RmwQbnfSMsq3Xt4uvmJcR8GJuszMNbfk/IrsJGoNZRu6 /asw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=LX3lHQGHD6jMMQzUZEtXP/D6w2D6m6jUrmKPoX+5N1Q=; b=uF7sUIK53qm2iMzqhhkNKofyvBQ66Hlgb/JJyrkEJnKk9x+izwXNKAaeMyNMOsJYCA ZJAtlUjB/jXGxJ5rf741JS/LZUL/MoxFfOckeB9ZZK9bzD4WBK8480ciK0mhTHmR7jQi iP+SmssiLMXjXLAPvg1Nl9f3GwgShjXPk58WMfXVbsOk++GahXoFsQ3N/GZVAvzqzkZE /+Q6iWZ3SWVNnbCTd2Fl2wC8UMLVS+wvMgnyqTHmKuHJJvQtcpk1dBnOfnYPaiXk9MbW Nq+8djY0WRlt+KYFg2t0wlMkg2PCURGFpjLR6vMKAahQvlKCcewg4ePeuxSp3Cn1bz39 SYIA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com header.s=selector1-cavium-com header.b=H2E+3HeS; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v184-v6si4422826pfv.249.2018.11.08.07.06.29; Thu, 08 Nov 2018 07:06:51 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@CAVIUMNETWORKS.onmicrosoft.com header.s=selector1-cavium-com header.b=H2E+3HeS; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727028AbeKIAlQ (ORCPT + 99 others); Thu, 8 Nov 2018 19:41:16 -0500 Received: from mail-cys01nam02on0045.outbound.protection.outlook.com ([104.47.37.45]:2232 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726509AbeKIAlQ (ORCPT ); Thu, 8 Nov 2018 19:41:16 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LX3lHQGHD6jMMQzUZEtXP/D6w2D6m6jUrmKPoX+5N1Q=; b=H2E+3HeSrNH6a2VTOblf9dgfrFnWqNh+Os8VvbsIh7a2j1jqc/EIXSc9dHU8WFvS7oeAPPVhLDC8XXtKU31VfEqlmZtfbv9l5CqnofLea8ONXvPbu1VoYB8s+gUyGjVqOJnY3+kgANRmvZLmNW0G03y05QQLnvfc6Sb8fcUfs30= Received: from SN6PR07MB5326.namprd07.prod.outlook.com (52.135.105.33) by SN6PR07MB5263.namprd07.prod.outlook.com (52.135.123.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1294.26; Thu, 8 Nov 2018 15:05:16 +0000 Received: from SN6PR07MB5326.namprd07.prod.outlook.com ([fe80::f0b9:acf9:7513:c149]) by SN6PR07MB5326.namprd07.prod.outlook.com ([fe80::f0b9:acf9:7513:c149%5]) with mapi id 15.20.1294.034; Thu, 8 Nov 2018 15:05:16 +0000 From: "Richter, Robert" To: Julien Thierry CC: Marc Zyngier , Thomas Gleixner , Jason Cooper , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , Stuart Yoder , Laurentiu Tudor , Matthias Brugger , Will Deacon , Lorenzo Pieralisi Subject: Re: [PATCH 01/10] irqdomain: Add interface to request an irq domain Thread-Topic: [PATCH 01/10] irqdomain: Add interface to request an irq domain Thread-Index: AQHUduWsV81u7L9sPUy5ady0TaCFAqVFq2AAgABPXYA= Date: Thu, 8 Nov 2018 15:05:16 +0000 Message-ID: <20181108150355.GA4064@rric.localdomain> References: <20181107220254.6116-1-rrichter@cavium.com> <20181107220254.6116-2-rrichter@cavium.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: AM6PR0502CA0005.eurprd05.prod.outlook.com (2603:10a6:209:1::18) To SN6PR07MB5326.namprd07.prod.outlook.com (2603:10b6:805:73::33) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Robert.Richter@cavium.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [77.180.122.228] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;SN6PR07MB5263;6:GcOjdqtYkV6srMgtYvWADdClx1HPhFHIMuHcEbRborahpt2upTi21gLJsAr8fFof+zmaK3XCEQkCK1VQB8nSivP9i4dYcAVpkwLD6a2NK3osPeBBkMJRpcSufuwPrDxxc2kblYpw7YtYoIpilfYkIp/mYCnhd3vbYBYcRz971Kc5NaBzW++x7I2uvGjYPwytE9vcHAmB2Htt9vXxHv77lcyR9RQPkd5jNnCJy0C4uFmnVy9Xq+AImF1RZudVnq0yNSD6xrTvKCPlGriuYjbZlaanVUW8UhzV5utcP6HgEt1jS/sBDA6D0kcVUAqrPHw3zv9xluCueBLqgYS3gtDqsYsO5O2I5OCty2ydHDGOUg9EH5MRqqPQ6skAHqs9LEySsNryO5WkIT8HynfMwZWQN2B3OytBlG0sprGX0tN0Z+j6JxbFjaTiffN9GPU64uEaRosDkIklNgb9+sZLWhBQJg==;5:pPeRw3cWQ3ZwWY5ywlCjb8Ssp5Kkx5PQxp51WbJBW4tvbKsrUryFC+vf02c0s/ehPzN+MObcgWDk/hnybnwQ8o1ipsKvb4HAJINdcHhXunPZi5nepI52dbuD4bDRrA7DxKw7Pc0j5X6geCDigUqwY9dvIizSW9YzktGvOkAVVw8=;7:Zb9mbyd3AkYJLlars29amN9tAIc+C4UsIjSUqxTn43/M4r7v5gtD9OtpQ+a1HB7DM7iCn4q7ZpaooDykdN5KzhZmU2iKUJT+LefQtghDYkDm68qqT3REX2NyDazH1wyBFpmIDqb0lV+v1EILYpXT/A== x-ms-office365-filtering-correlation-id: 15a2c790-4760-47cf-6fae-08d6458b96f8 x-microsoft-antispam: BCL:0;PCL:0;RULEID:(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(2017052603328)(7153060)(7193020);SRVR:SN6PR07MB5263; x-ms-traffictypediagnostic: SN6PR07MB5263: x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(269456686620040)(131327999870524)(17755550239193); x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231382)(944501410)(52105095)(93006095)(93001095)(3002001)(10201501046)(148016)(149066)(150057)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095);SRVR:SN6PR07MB5263;BCL:0;PCL:0;RULEID:;SRVR:SN6PR07MB5263; x-forefront-prvs: 0850800A29 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(366004)(346002)(376002)(39860400002)(136003)(189003)(199004)(229853002)(53946003)(9686003)(6512007)(4326008)(39060400002)(2906002)(6486002)(25786009)(8676002)(33656002)(71200400001)(4744004)(81156014)(81166006)(71190400001)(8936002)(6436002)(105586002)(106356001)(7736002)(102836004)(6916009)(33896004)(575784001)(76176011)(86362001)(53546011)(305945005)(97736004)(26005)(14454004)(316002)(54906003)(72206003)(186003)(5660300001)(478600001)(486006)(68736007)(14444005)(256004)(476003)(1076002)(66066001)(53936002)(2900100001)(6246003)(7416002)(99286004)(52116002)(3846002)(446003)(11346002)(6116002)(6506007)(386003);DIR:OUT;SFP:1101;SCL:1;SRVR:SN6PR07MB5263;H:SN6PR07MB5326.namprd07.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: TMaj2X0/xml5/IMflNlOrcKu+JG4HuRPYBlKP8QdNg9X35/+UGKzZPJRLX+XK/brR+5WHmT+0kDPefLk7hCMASkcdEssQMEEfc/ar0wmMKiEFcjZt6NLMoxl+svkD/oTxsTBtfU7Mt1TZllykSI1+kDoycXi24CyaRztQOrEoKiAZu2K7kkeaTMa6u7fC4K/HJ9Nx5+Fgyg6jjOW92nw2ht7Rr6F+yPFh2Z/IsGmxxwjjm1D8KJeqCm7WnZyKGoLr3v2+E8Q8Y4ADQv/8e3wvlkgj4Qhe1g17GhpMZMFfCP7+nrmEfPSdHG13yUKjl5UioSDYro3+89WGVRNdHLMMYXOmBVyfT+f8CD15sCXaa4= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <1052B17BFF7E9648AB86E0D25A0F2540@namprd07.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-Network-Message-Id: 15a2c790-4760-47cf-6fae-08d6458b96f8 X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Nov 2018 15:05:16.2223 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR07MB5263 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org SnVsaWVuLA0KDQp0aGFua3MgZm9yIHlvdXIgcmV2aWV3LiBTZWUgbXkgY29tbWVudHMgYmVsb3cu DQoNCk9uIDA4LjExLjE4IDEwOjE5OjUyLCBKdWxpZW4gVGhpZXJyeSB3cm90ZToNCj4gT24gMDcv MTEvMTggMjI6MDMsIFJvYmVydCBSaWNodGVyIHdyb3RlOg0KPiA+VGhpcyBwYXRjaCBpbnRyb2R1 Y2VzIGEgbmV3IGludGVyZmFjZSB0byBhbGxvdyBpcnEgZG9tYWluDQo+ID5pbml0aWFsaXphdGlv biByZWdhcmRsZXNzIG9mIG9yZGVyIGRlcGVuZGVuY2llcy4gVGhpcyBpcyBkb25lIGJ5DQo+ID5y ZXF1ZXN0aW5nIGEgZG9tYWluIGFuZCByZWdpc3RlcmluZyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRo YXQgaXMgY2FsbGVkDQo+ID5hcyBzb29uIGFzIGEgZG9tYWluIGJlY29tZXMgYXZhaWxhYmxlLg0K PiA+DQo+ID5BIHR5cGljYWwgaXJxIGRvbWFpbiBpbml0aWFsaXphdGlvbiBjb2RlIGlzIHRoZSBm b2xsb3dpbmc6DQo+ID4NCj4gPlBhcmVudCBpbml0aWFsaXphdGlvbjoNCj4gPg0KPiA+ICAgICAg Li4uDQo+ID4gICAgICBkb21haW4gPSBtc2lfY3JlYXRlX2lycV9kb21haW4oZndub2RlLCBpbmZv LCBwYXJlbnQpOw0KPiA+ICAgICAgaWYgKGRvbWFpbikNCj4gPiAgICAgICAgICAgICAgaXJxX2Rv bWFpbl91cGRhdGVfYnVzX3Rva2VuKGRvbWFpbiwgYnVzX3Rva2VuKTsNCj4gPiAgICAgIC4uLg0K PiA+DQo+ID5DaGlsZCBpbml0aWFsaXphdGlvbjoNCj4gPg0KPiA+ICAgICAgLi4uDQo+ID4gICAg ICBwYXJlbnQgPSBpcnFfZmluZF9tYXRjaGluZ19md25vZGUoZndub2RlLCBidXNfdG9rZW4pOw0K PiA+ICAgICAgaWYgKCFwYXJlbnQpDQo+ID4gICAgICAgICAgICAgIC4uLg0KPiA+ICAgICAgY3Jl YXRlX2lycV9kb21haW4ocGFyZW50LCAuLi4pOw0KPiANCj4gV2hhdCBpcyB0aGF0IGZ1bmN0aW9u Pw0KDQpUaGlzIGZ1bmN0aW9ucyBpcyBqdXN0IGFuIGV4YW1wbGUsIGFsbCBvdGhlcnMgYXJlIHBh cnQgb2YgdGhlIGFwaS4gIEkNCndpbGwgcmVuYW1lIGl0IGZvciBtb3JlIGNsYXJpdHksIGUuZy4g ZG9fc29tZV9pcnFfZG9tYWluX3NldHVwKCkuDQoNCj4gDQo+ID4gICAgICAuLi4NCj4gPg0KPiA+ SW4gY2FzZSB0aGUgcGFyZW50IGlzIG5vdCB5ZXQgYXZhaWxhYmxlLCB0aGUgY2hpbGQgaW5pdGlh bGl6YXRpb24NCj4gPmZhaWxzLiBUaHVzLCB0aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiByZXF1 aXJlcyB0aGUgcGFyZW50IGRvbWFpbg0KPiA+YmVpbmcgaW5pdGlhbGl6ZWQgYmVmb3JlIHRoZSBj aGlsZCBkb21haW4uIFdpdGggYSBjb21wbGV4IGlycSBkb21haW4NCj4gPmhpZXJhcmNoeSBpdCBi ZWNvbWVzIG1vcmUgYW5kIG1vcmUgZGlmZmljdWx0IHRvIGdyYW50IHRoYXQgb3JkZXIgYXMNCj4g PmlycSBkb21haW5zIGFyZSBlbmFibGVkIGluIHNlcGFyYXRlIHN1YnN5c3RlbXMuIENhcmUgbXVz dCBiZSB0YWtlbg0KPiA+d2hlbiBpbml0aWFsaXppbmcgcGFyZW50IGFuZCBjaGlsZCBkb21haW5z IGluIHRoZSBzYW1lIGluaXRjYWxsDQo+ID5sZXZlbC4gRS5nLiBBcm0ncyBnaWMtdjMtaXRzIGlt cGxlbWVudGF0aW9uIG1pZ2h0IGhhdmUgdGhlIGZvbGxvd2luZw0KPiA+dHJlZSBhbmQgZGVwZW5k ZW5jaWVzOg0KPiA+DQo+ID4gICAgICBnaWMtdjMNCj4gPiAgICAgIOKUnOKUgOKUgCBpdHMtbm9k ZS0wDQo+ID4gICAgICDilIIgICDilJzilIDilIAgcGNpLWhvc3QtMA0KPiA+ICAgICAg4pSCICAg 4pSc4pSA4pSAIHBsYXRmb3JtLWJ1cw0KPiA+ICAgICAg4pSCICAgLi4uDQo+ID4gICAgICDilJzi lIDilIAgaXRzLW5vZGUtMQ0KPiA+ICAgICAg4pSCICAg4pSc4pSA4pSAIHBjaS1ob3N0LTENCj4g PiAgICAgIC4uLg0KPiA+DQo+ID5BbGwgZG9tYWlucyBtdXN0IGJlIGluaXRpYWxpemVkIGluIHRv cC1kb3duIG9yZGVyIG9mIHRoZSB0cmVlLg0KPiA+DQo+ID5UaGlzIHBhdGNoIGludHJvZHVjZXMg YW4gaW50ZXJmYWNlIHRoYXQgYWxsb3dzIGRvbWFpbiBpbml0aWFsaXphdGlvbg0KPiA+d2l0aG91 dCBhbnkgb3JkZXIgcmVxdWlyZW1lbnRzLCBlLmcuIHRvIGJlIGFibGUgdG8gaW5pdGlhbGl6ZSB0 aGUgaXJxDQo+ID5kb21haW5zIGluIHRoZSBzYW1lIGluaXRjYWxsIGxldmVsLiBUaGUgZm9sbG93 aW5nIGZ1bmN0aW9ucyBoYXZlIGJlZW4NCj4gPmludHJvZHVjZWQgdG8gYWxsb3cgdGhlIHJlZ2lz dHJhdGlvbiBvZiBhIGNhbGxiYWNrIGhhbmRsZXI6DQo+ID4NCj4gPiAgICAgIGlycV9kb21haW5f cmVxdWVzdF9md25vZGUoKQ0KPiA+ICAgICAgaXJxX2RvbWFpbl9yZXF1ZXN0X2hvc3QoKQ0KPiA+ DQo+ID5JbnN0ZWFkIG9mIHVzaW5nIHRoZSBpcnFfZmluZF9tYXRjaGluZ19md25vZGUoKSBmdW5j dGlvbiBhbmQgaXQncw0KPiA+dmFyaWFudHMgdGhlIGNoaWxkIGNvZGUgcmVwbGFjZXMgdGhlbSB3 aXRoIHRoZSBuZXcgZnVuY3Rpb25zIGFuZA0KPiA+bG9va3MgZS5nLiBsaWtlIHRoZSBmb2xsb3dp bmc6DQo+ID4NCj4gPiAgICAgIC4uLg0KPiA+ICAgICAgaXJxX2RvbWFpbl9yZXF1ZXN0X2Z3bm9k ZShmd25vZGUsIGJ1c190b2tlbiwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNy ZWF0ZV9pcnFfZG9tYWluLCBuYW1lLCBwcml2KTsNCj4gPiAgICAgIC4uLg0KPiA+DQo+ID5IZXJl LCB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gY3JlYXRlX2lycV9kb21haW4oKSBpcyBjYWxsZWQgYXMg c29vbiBhcw0KPiA+dGhlIHBhcmVudCBiZWNvbWVzIGF2YWlsYWJsZS4gQWxsIHJlZ2lzdGVyZWQg aGFuZGxlcnMgYXJlIHN0b3JlZCBpbiBhDQo+ID5saXN0LiBXaXRoIGVhY2ggdXBkYXRlIG9mIHRo ZSBidXMgdG9rZW4gdXNpbmcgaXJxX2RvbWFpbl91cGRhdGVfYnVzXw0KPiA+dG9rZW4oKSwgdGhl IGxpc3QgaXMgY2hlY2tlZCBpZiB0aGF0IGRvbWFpbiBpcyByZXF1ZXN0ZWQgYnkgYSBoYW5kbGVy DQo+ID5hbmQgaWYgdGhhdCBpcyB0aGUgY2FzZSBpdCdzIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIGNh bGxlZCBhbmQgdGhlDQo+ID5yZXF1ZXN0IHJlbW92ZWQgZnJvbSB0aGUgbGlzdC4NCj4gPg0KPiA+ V2l0aCBhIGxhdGVfaW5pdGNhbGwgYWxsIHJlcXVlc3RzIGZyb20gdGhlIGxpc3Qgc2hvdWxkIGFs cmVhZHkgaGF2ZQ0KPiA+YmVlbiBoYW5kbGVkLCBvdGhlcndpc2UgYWxsIHJlbWFpbmluZyByZXF1 ZXN0cyBhcmUgcmVtb3ZlZCB3aXRoIGFuDQo+ID5lcnJvciByZXBvcnRlZC4NCj4gPg0KPiA+U2ln bmVkLW9mZi1ieTogUm9iZXJ0IFJpY2h0ZXIgPHJyaWNodGVyQGNhdml1bS5jb20+DQo+ID4tLS0N Cj4gPiAgaW5jbHVkZS9saW51eC9pcnFkb21haW4uaCB8ICAxNSArKysrKw0KPiA+ICBrZXJuZWwv aXJxL2lycWRvbWFpbi5jICAgIHwgMTU4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysNCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAxNzMgaW5zZXJ0aW9ucygrKQ0K PiA+DQo+ID5kaWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pcnFkb21haW4uaCBiL2luY2x1ZGUv bGludXgvaXJxZG9tYWluLmgNCj4gPmluZGV4IDA2OGFhNDZmMGQ1NS4uMjdlODM4MDM2MjdkIDEw MDY0NA0KPiA+LS0tIGEvaW5jbHVkZS9saW51eC9pcnFkb21haW4uaA0KPiA+KysrIGIvaW5jbHVk ZS9saW51eC9pcnFkb21haW4uaA0KPiA+QEAgLTMxMSw2ICszMTEsMjEgQEAgc3RhdGljIGlubGlu ZSBzdHJ1Y3QgaXJxX2RvbWFpbiAqaXJxX2ZpbmRfaG9zdChzdHJ1Y3QgZGV2aWNlX25vZGUgKm5v ZGUpDQo+ID4gICAgICByZXR1cm4gZDsNCj4gPiAgfQ0KPiA+DQo+ID4rdHlwZWRlZiBpbnQgKCpp cnFfZG9tYWluX2NhbGxiYWNrX3QpKHN0cnVjdCBpcnFfZG9tYWluICosIHZvaWQgKik7DQo+ID4r aW50IGlycV9kb21haW5fcmVxdWVzdF9md25vZGUoc3RydWN0IGZ3bm9kZV9oYW5kbGUgKmZ3bm9k ZSwNCj4gPisgICAgICAgICAgICAgICAgICAgICBlbnVtIGlycV9kb21haW5fYnVzX3Rva2VuIGJ1 c190b2tlbiwNCj4gPisgICAgICAgICAgICAgICAgICAgICBpcnFfZG9tYWluX2NhbGxiYWNrX3Qg Y2FsbGJhY2ssDQo+ID4rICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqbmFtZSwgdm9p ZCAqcHJpdik7DQo+ID4rDQo+ID4rc3RhdGljIGlubGluZSBpbnQgaXJxX2RvbWFpbl9yZXF1ZXN0 X2hvc3Qoc3RydWN0IGRldmljZV9ub2RlICpub2RlLA0KPiA+KyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbnVtIGlycV9kb21haW5fYnVzX3Rva2VuIGJ1c190b2tlbiwNCj4g PisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXJxX2RvbWFpbl9jYWxsYmFj a190IGNhbGxiYWNrLA0KPiA+KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 b2lkICpwcml2KQ0KPiA+K3sNCj4gPisgICAgIHJldHVybiBpcnFfZG9tYWluX3JlcXVlc3RfZndu b2RlKG9mX25vZGVfdG9fZndub2RlKG5vZGUpLCBidXNfdG9rZW4sDQo+ID4rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrLCBub2RlLT5mdWxsX25hbWUsIHByaXYp Ow0KPiA+K30NCj4gPisNCj4gDQo+IEEgbGl0dGxlIGRvY3VtZW50YXRpb24gaGVyZT8gV2h5IGRv IHdlIG5lZWQgYm90aCBpcnFfZG9tYWluX3JlcXVlc3RfaG9zdA0KPiBhbmQgaXJxX2RvbWFpbl9y ZXF1ZXN0X2Z3bm9kZT8NCg0KaXJxX2RvbWFpbl9yZXF1ZXN0X2Z3bm9kZSgpIGlzIGRvY3VtZW50 ZWQgaW4ga2VybmVsL2lycS9pcnFkb21haW4uYy4NCkZ1bmN0aW9ucyBhcmUgZXF1aXZhbGVudCB0 byBpdCdzIGlycV9maW5kX21hdGNoaW5nXyooKSBjb3VudGVycGFydHMuDQoqX2hvc3QoKSBpcyBm b3IgZGV2aWNldHJlZSBvbmx5IG5vZGVzLg0KDQo+IA0KPiBBbHNvLCB5b3UgaW50cm9kdWNlZCB0 aGlzIGZvciBkb21haW4gY3JlYXRpb24sIGJ1dCB0aGUgY2FsbGJhY2sgaGVyZSBpcw0KPiB2ZXJ5 IGdlbmVyaWMuIElzIGl0IGludGVuZGVkIHRvIGFsbG93IGFueSBraW5kIG9mIGFjdGlvbiBvbmNl IGEgZndub2RlDQo+IGlzIGF2YWlsYWJsZT8NCg0KWWVzLCBpdCBpcyBnZW5lcmljLCBzZWUgcGF0 Y2ggIzUgd2hlcmUgaXQgaXMgdXNlZCBmb3IgbGF0ZSBkZXZpY2UNCnByb2JpbmcuIERvbWFpbiBj cmVhdGlvbiBpcyB0aGUgbWFpbiB1c2UgY2FzZSB0byBzZXR1cCB0aGUgaXJxIGRvbWFpbg0KaGll cmFyY2h5LiBJdCBjYW4gYmUgdXNlZCBhcyBhIHJlcGxhY2VtZW50IGZvciBpcnFfZmluZF9tYXRj aGluZ18qKCkuDQpBbnkgdXNlcnMgb2YgdGhhdCBmdW5jdGlvbnMgYXJlIHN1aXRhYmxlIGZvciBi ZWluZyB1c2VkIHdpdGggdGhlIG5ldw0KaW50ZXJmYWNlLg0KDQo+IA0KPiA+ICAvKioNCj4gPiAg ICogaXJxX2RvbWFpbl9hZGRfbGluZWFyKCkgLSBBbGxvY2F0ZSBhbmQgcmVnaXN0ZXIgYSBsaW5l YXIgcmV2bWFwIGlycV9kb21haW4uDQo+ID4gICAqIEBvZl9ub2RlOiBwb2ludGVyIHRvIGludGVy cnVwdCBjb250cm9sbGVyJ3MgZGV2aWNlIHRyZWUgbm9kZS4NCj4gPmRpZmYgLS1naXQgYS9rZXJu ZWwvaXJxL2lycWRvbWFpbi5jIGIva2VybmVsL2lycS9pcnFkb21haW4uYw0KPiA+aW5kZXggMzM2 NmQxMWMzZTAyLi45ZTMzZDg3M2Q4ZjYgMTAwNjQ0DQo+ID4tLS0gYS9rZXJuZWwvaXJxL2lycWRv bWFpbi5jDQo+ID4rKysgYi9rZXJuZWwvaXJxL2lycWRvbWFpbi5jDQo+ID5AQCAtMjEsNiArMjEs NyBAQA0KPiA+ICAjaW5jbHVkZSA8bGludXgvZnMuaD4NCj4gPg0KPiA+ICBzdGF0aWMgTElTVF9I RUFEKGlycV9kb21haW5fbGlzdCk7DQo+ID4rc3RhdGljIExJU1RfSEVBRChpcnFfZG9tYWluX3Jl cXVlc3RzKTsNCj4gPiAgc3RhdGljIERFRklORV9NVVRFWChpcnFfZG9tYWluX211dGV4KTsNCj4g Pg0KPiA+ICBzdGF0aWMgc3RydWN0IGlycV9kb21haW4gKmlycV9kZWZhdWx0X2RvbWFpbjsNCj4g PkBAIC00NSw2ICs0NiwxMDYgQEAgc3RhdGljIGlubGluZSB2b2lkIGRlYnVnZnNfcmVtb3ZlX2Rv bWFpbl9kaXIoc3RydWN0IGlycV9kb21haW4gKmQpIHsgfQ0KPiA+ICBjb25zdCBzdHJ1Y3QgZndu b2RlX29wZXJhdGlvbnMgaXJxY2hpcF9md25vZGVfb3BzOw0KPiA+ICBFWFBPUlRfU1lNQk9MX0dQ TChpcnFjaGlwX2Z3bm9kZV9vcHMpOw0KPiA+DQo+ID4rc3RydWN0IGlycV9kb21haW5fcmVxdWVz dCB7DQo+ID4rICAgICBzdHJ1Y3QgbGlzdF9oZWFkICAgICAgICAgICAgICAgIGxpc3Q7DQo+ID4r ICAgICBzdHJ1Y3QgZndub2RlX2hhbmRsZSAgICAgICAgICAgICpmd25vZGU7DQo+ID4rICAgICBl bnVtIGlycV9kb21haW5fYnVzX3Rva2VuICAgICAgIGJ1c190b2tlbjsNCj4gPisgICAgIGlycV9k b21haW5fY2FsbGJhY2tfdCAgICAgICAgICAgY2FsbGJhY2s7DQo+ID4rICAgICBjaGFyICAgICAg ICAgICAgICAgICAgICAgICAgICAgICpuYW1lOw0KPiA+KyAgICAgdm9pZCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqcHJpdjsNCj4gPit9Ow0KPiA+Kw0KPiA+K3N0YXRpYyB2b2lkIGlycV9k b21haW5fY2FsbF9oYW5kbGVyKHN0cnVjdCBpcnFfZG9tYWluICpkb21haW4sDQo+ID4rICAgICAg ICAgICAgIGlycV9kb21haW5fY2FsbGJhY2tfdCBjYWxsYmFjaywgY29uc3QgY2hhciAqbmFtZSwg dm9pZCAqcHJpdikNCj4gPit7DQo+ID4rICAgICBpbnQgcmV0Ow0KPiA+Kw0KPiA+KyAgICAgcmV0 ID0gY2FsbGJhY2soZG9tYWluLCBwcml2KTsNCj4gPisgICAgIGlmIChyZXQpDQo+ID4rICAgICAg ICAgICAgIHByX2VycigiJXM6IERvbWFpbiByZXF1ZXN0IGhhbmRsZXIgZmFpbGVkOiAlZFxuIiwN Cj4gPisgICAgICAgICAgICAgICAgICAgICBuYW1lLCByZXQpOw0KPiA+Kw0KPiA+KyAgICAgb2Zf bm9kZV9wdXQoaXJxX2RvbWFpbl9nZXRfb2Zfbm9kZShkb21haW4pKTsNCj4gPit9DQo+ID4rDQo+ ID4rc3RhdGljIHZvaWQgaXJxX2RvbWFpbl9mcmVlX3JlcXVlc3Qoc3RydWN0IGlycV9kb21haW5f cmVxdWVzdCAqcmVxdWVzdCkNCj4gPit7DQo+ID4rICAgICBrZnJlZShyZXF1ZXN0LT5uYW1lKTsN Cj4gPisgICAgIGtmcmVlKHJlcXVlc3QpOw0KPiA+K30NCj4gPisNCj4gPitzdGF0aWMgdm9pZCBp cnFfZG9tYWluX2hhbmRsZV9yZXF1ZXN0cyhzdHJ1Y3QgZndub2RlX2hhbmRsZSAqZndub2RlLA0K PiA+KyAgICAgICAgICAgICAgICAgICAgICAgIGVudW0gaXJxX2RvbWFpbl9idXNfdG9rZW4gYnVz X3Rva2VuKQ0KPiA+K3sNCj4gPisgICAgIHN0cnVjdCBpcnFfZG9tYWluICpkb21haW47DQo+ID4r ICAgICBzdHJ1Y3QgaXJxX2RvbWFpbl9yZXF1ZXN0ICpyZXF1ZXN0Ow0KPiA+Kw0KPiA+KyAgICAg aWYgKCFmd25vZGUpDQo+ID4rICAgICAgICAgICAgIHJldHVybjsNCj4gPityZWRvOg0KPiA+KyAg ICAgZG9tYWluID0gaXJxX2ZpbmRfbWF0Y2hpbmdfZndub2RlKGZ3bm9kZSwgYnVzX3Rva2VuKTsN Cj4gPisgICAgIGlmICghZG9tYWluKQ0KPiA+KyAgICAgICAgICAgICByZXR1cm47DQo+ID4rDQo+ ID4rICAgICBtdXRleF9sb2NrKCZpcnFfZG9tYWluX211dGV4KTsNCj4gPisNCj4gDQo+IFdoeSBk byB3ZSBuZWVkIHRvIHRha2UgdGhlIG11dGV4IGJlZm9yZSBjaGVja2luZyB0aGUgZG9tYWluIGZp ZWxkcz8NCj4gQ2FuJ3Qgd2UgZGVsYXkgaXQ/DQoNClRoZSBsaXN0IGlzIHByb3RlY3RlZCBieSB0 aGUgbXV0ZXguIGlycV9maW5kX21hdGNoaW5nX2Z3bm9kZSgpIGFsc28NCmFjY2Vzc2VzIHRoZSBs aXN0IGFuZCBtdXN0IHVzZSB0aGUgc2FtZSBtdXRleC4NCg0KPiANCj4gPisgICAgIGlmICgoZG9t YWluLT5md25vZGUgIT0gZndub2RlKSAmJiAoZG9tYWluLT5idXNfdG9rZW4gIT0gYnVzX3Rva2Vu KSkgew0KPiANCj4gV2h5IGRvIHdlIGV2ZW4gbmVlZCB0aGF0IGNoZWNrPw0KDQpUaGUgZG9tYWlu IHRva2VuIG1pZ2h0IGhhdmUgY2hhbmdlZCBhZnRlciBpcnFfZmluZF9tYXRjaGluZ19md25vZGUo KQ0KYW5kIGJlZm9yZSBtdXRleF9sb2NrKCksIHdlIGRvIGEgcmVjaGVjayBoZXJlLiBTb21lIHNv cnQgb2YgdHJ5LWxvY2suDQoNCk5vdGU6IEkgZm91bmQgdGhlIGNoZWNrIGJlaW5nIHdyb25nIGhl cmUsIGl0IG5lZWRzIHRvIGJlIGNvcnJlY3RlZCB0bzoNCg0KCWlmICgoZG9tYWluLT5md25vZGUg IT0gZndub2RlKSB8fCAoZG9tYWluLT5idXNfdG9rZW4gIT0gYnVzX3Rva2VuKSkgew0KDQo+IA0K PiBJc24ndCB0aGUgcG9pbnQgb2YgcGFzc2luZyBmd25vZGUgYW5kIGJ1c190b2tlbiB0bw0KPiBp cnFfZmluZF9tYXRjaGluZ19md25vZGUgdG8gZmluZCBhIGRvbWFpbiB3aXRoIHRob3NlIHByb3Bl cnRpZXM/DQoNClllcywgYnV0IHByb3BlcnRpZXMgbWF5IGNoYW5nZSBhbmQgYWxzbyB0aGUgbGlz dCBpdHNlbGYuDQoNCj4gDQo+ID4rICAgICAgICAgICAgIG11dGV4X3VubG9jaygmaXJxX2RvbWFp bl9tdXRleCk7DQo+ID4rICAgICAgICAgICAgIGdvdG8gcmVkbzsNCj4gPisgICAgIH0NCj4gPisN Cj4gPisgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwgJmlycV9kb21haW5fcmVxdWVz dHMsIGxpc3QpIHsNCj4gDQo+IFNob3VsZG4ndCB5b3UgdXNlIGxpc3RfZm9yX2VhY2hfc2FmZSBp ZiB5b3Ugd2FudCB0byByZW1vdmUgZWxlbWVudHMgb2YNCj4gdGhlIGxpc3QgaW5zaWRlIHRoZSBs b29wPw0KDQpObywgd2UgZG8gYSBjb21wbGV0ZSByZWRvIGFnYWluIHdpdGhvdXQgZnVydGhlciBp dGVyYXRpbmcgdGhlIGxpc3QuIFdlDQpuZWVkIHRvIGRvIHRoaXMgc2luY2UgdGhlIGhhbmRsZXIg bXVzdCBiZSBjYWxsZWQgd2l0aCB0aGUgbXV0ZXgNCnVubG9ja2VkICh0byBiZSBhYmxlIHRvIG1h bmlwdWxhdGUgdGhlIGlycSBkb21haW4gbGlzdCBpbiB0aGUgY2FsbGJhY2sNCmFuZCB0byBiZSBp biBub24tYXRvbWljIGNvbnRleHQpLiBBZnRlciB3ZSB1bmxvY2tlZCB0aGUgbXV0ZXgsIHdlIG11 c3QNCnJlc3RhcnQgYWdhaW4gYXMgdGhlIGxpc3QgbWF5IGhhdmUgY2hhbmdlZC4NCg0KPiANCj4g PisgICAgICAgICAgICAgaWYgKHJlcXVlc3QtPmZ3bm9kZSAhPSBmd25vZGUgfHwNCj4gPisgICAg ICAgICAgICAgICAgIHJlcXVlc3QtPmJ1c190b2tlbiAhPSBidXNfdG9rZW4pDQo+ID4rICAgICAg ICAgICAgICAgICAgICAgY29udGludWU7DQo+ID4rDQo+ID4rICAgICAgICAgICAgIGxpc3RfZGVs KCZyZXF1ZXN0LT5saXN0KTsNCj4gPisgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpcnFfZG9t YWluX211dGV4KTsNCj4gPisNCj4gPisgICAgICAgICAgICAgaXJxX2RvbWFpbl9jYWxsX2hhbmRs ZXIoZG9tYWluLCByZXF1ZXN0LT5jYWxsYmFjaywNCj4gPisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmVxdWVzdC0+bmFtZSwgcmVxdWVzdC0+cHJpdik7DQo+ID4rICAgICAg ICAgICAgIGlycV9kb21haW5fZnJlZV9yZXF1ZXN0KHJlcXVlc3QpOw0KPiA+Kw0KPiA+KyAgICAg ICAgICAgICBnb3RvIHJlZG87DQo+ID4rICAgICB9DQo+ID4rDQo+ID4rICAgICBtdXRleF91bmxv Y2soJmlycV9kb21haW5fbXV0ZXgpOw0KPiA+K30NCj4gPisNCj4gPitzdGF0aWMgaW50IF9faW5p dCBpcnFfZG9tYWluX2RyYWluX3JlcXVlc3RzKHZvaWQpDQo+ID4rew0KPiA+KyAgICAgc3RydWN0 IGlycV9kb21haW5fcmVxdWVzdCAqcmVxdWVzdDsNCj4gPisgICAgIHN0cnVjdCBpcnFfZG9tYWlu ICpkb21haW47DQo+ID4rICAgICBpbnQgcmV0ID0gMDsNCj4gPityZWRvOg0KPiA+KyAgICAgbXV0 ZXhfbG9jaygmaXJxX2RvbWFpbl9tdXRleCk7DQo+ID4rDQo+ID4rICAgICBsaXN0X2Zvcl9lYWNo X2VudHJ5KHJlcXVlc3QsICZpcnFfZG9tYWluX3JlcXVlc3RzLCBsaXN0KSB7DQo+IA0KPiBTYW1l IHJlbWFyay4NCg0KU2FtZSBoZXJlLCB0aGUgZGlmZmVyZW5jZSBpcyB0aGF0IHdlIGNhbiBkaXJl Y3RseSBvcGVyYXRlIHdpdGggdGhlDQpyZXF1ZXN0LCBubyBuZWVkIHRvIGNoZWNrIHRoZSBkb21h aW4uDQoNCj4gDQo+ID4rICAgICAgICAgICAgIGxpc3RfZGVsKCZyZXF1ZXN0LT5saXN0KTsNCj4g PisgICAgICAgICAgICAgbXV0ZXhfdW5sb2NrKCZpcnFfZG9tYWluX211dGV4KTsNCj4gPisNCj4g PisgICAgICAgICAgICAgZG9tYWluID0gaXJxX2ZpbmRfbWF0Y2hpbmdfZndub2RlKHJlcXVlc3Qt PmZ3bm9kZSwNCj4gPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICByZXF1ZXN0LT5idXNfdG9rZW4pOw0KPiA+KyAgICAgICAgICAgICBpZiAoZG9tYWluKSB7DQo+ ID4rICAgICAgICAgICAgICAgICAgICAgaXJxX2RvbWFpbl9jYWxsX2hhbmRsZXIoZG9tYWluLCBy ZXF1ZXN0LT5jYWxsYmFjaywNCj4gPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXF1ZXN0LT5uYW1lLCByZXF1ZXN0LT5wcml2KTsNCj4gPisgICAgICAgICAg ICAgfSBlbHNlIHsNCj4gPisgICAgICAgICAgICAgICAgICAgICByZXQgPSAtRU5PREVWOw0KPiA+ KyAgICAgICAgICAgICAgICAgICAgIHByX2VycigiJXMtJWQ6IFVuaGFuZGxlZCBkb21haW4gcmVx dWVzdFxuIiwNCj4gPisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3QtPm5hbWUs IHJlcXVlc3QtPmJ1c190b2tlbik7DQo+ID4rICAgICAgICAgICAgIH0NCj4gPisNCj4gPisgICAg ICAgICAgICAgaXJxX2RvbWFpbl9mcmVlX3JlcXVlc3QocmVxdWVzdCk7DQo+ID4rDQo+ID4rICAg ICAgICAgICAgIGdvdG8gcmVkbzsNCj4gDQo+IEhtbW0sIGFyZSB5b3Ugc3RhcnRpbmcgYSBsb29w IHRvIGJyZWFrIG91dCBvZiBpdCBhdCBlYWNoIGl0ZXJhdGlvbj8NCg0KV2UgaGF2ZSB0byBhcyB0 aGUgbGlzdCBsb2NrIHdhcyByZWxlYXNlZCB3aGljaCBpcyBuZWVkZWQgZm9yDQppcnFfZmluZF9t YXRjaGluZ19md25vZGUoKSBhbmQgdGhlIGNhbGxiYWNrIGhhbmRsZXIuDQoNCj4gDQo+IFdvdWxk bid0IGl0IGJlIG11Y2ggc2ltcGxlciB0byBoYXZlIHNvbWV0aGluZyBsaWtlIHRoZSBmb2xsb3dp bmc/DQo+IA0KPiAgICAgICAgd2hpbGUgKCFsaXN0X2VtcHR5KCZpcnFfZG9tYWluX3JlcXVlc3Rz KSB7DQo+ICAgICAgICAgICAgICAgIG11dGV4X2xvY2soJmlycV9kb21haW5fbXV0ZXgpOw0KPiAg ICAgICAgICAgICAgICByZXF1ZXN0ID0gbGlzdF9maXJzdF9lbnRyeV9vcl9udWxsKCZpcnFfZG9t YWluX3JlcXVlc3RzLA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgaXJxX2RvbWFpbl9yZXF1ZXN0LA0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBsaXN0KTsNCj4gICAgICAgICAgICAgICAgaWYgKHJlcXVlc3QpDQo+ICAgICAg ICAgICAgICAgICAgICAgICAgbGlzdF9kZWwoJnJlcXVlc3QtPmxpc3QpOw0KPiAgICAgICAgICAg ICAgICBtdXRleF91bmxvY2soJmlycV9kb21haW5fbXV0ZXgpOw0KDQpBdCB0aGlzIHBvaW50IG15 IGltcGxtZW50YXRpb24gaGFzIG9ubHkgNSBsaW5lcyBvZiBjb2RlIGFuZCB1c2VzIG9uZQ0KbGlz dCBjb21tYW5kIGxlc3MgdGhhbiB5b3VyJ3MuIEkgYW0gYWxzbyBub3QgaGFwcHkgdXNpbmcgbGlz dF9lbXB0eSgpDQp3aXRob3V0IHRoZSBsb2NrIGhvbGQgKHRob3VnaCBpdCBzZWVtcyB0byBiZSB1 c2VkIHRoYXQgd2F5IGVsc2V3aGVyZSkuDQoNCj4gDQo+ICAgICAgICAgICAgICAgIDwuLi4+DQo+ ICAgICAgICB9DQo+IA0KPiBJZiB5b3UgcmVhbGx5IG5lZWQgdG8gY29uc2lkZXIgcG9zc2libGUg YWRkaXRpb25zIHRvIHRoZSBsaXN0IHdoaWxlDQo+IGRyYWluaW5nIGl0Lg0KPiANCj4gT3RoZXJ3 aXNlLCBqdXN0IGNvbnNpZGVyIGRvaW5nOg0KDQpJIGxldCB0aGUgY2FsbGJhY2sgaGFuZGxlciBy dW4gYWdhaW4gd2hpY2ggbWlnaHQgY2hhbmdlIHRoZSBsaXN0IGFnYWluDQooZS5nLiBieSBhZGRp bmcgbmV3IGhhbmRsZXJzKS4gSnVzdCB1c2luZyBsaXN0X2Zvcl9lYWNoX2VudHJ5KCkgbG9va3MN CnN0cmFpZ2h0IGZvcndhcmQgdG8gbWUuDQoNCj4gDQo+ICAgICAgICBtdXRleF9sb2NrKCZpcnFf ZG9tYWluX211dGV4KTsNCj4gICAgICAgIHdoaWxlICghbGlzdF9lbXB0eSgmaXJxX2RvbWFpbl9y ZXF1ZXN0cykpIHsNCj4gICAgICAgICAgICAgICAgcmVxdWVzdCA9IGxpc3RfZmlyc3RfZW50cnko JmlycV9kb21haW5fcmVxdWVzdHMsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBpcnFfZG9tYWluX3JlcXVlc3QsDQo+ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxpc3QpOw0KPiAgICAgICAgICAgICAgICBsaXN0X2RlbCgmcmVx dWVzdC0+bGlzdCk7DQo+ICAgICAgICB9DQo+ICAgICAgICBtdXRleF91bmxvY2soJmlycV9kb21h aW5fbXV0ZXgpOw0KPiANCj4gPisgICAgIH0NCj4gPisNCj4gPisgICAgIG11dGV4X3VubG9jaygm aXJxX2RvbWFpbl9tdXRleCk7DQo+ID4rDQo+ID4rICAgICByZXR1cm4gcmV0Ow0KPiA+K30NCj4g PitsYXRlX2luaXRjYWxsKGlycV9kb21haW5fZHJhaW5fcmVxdWVzdHMpOw0KPiANCj4gT3ZlcmFs bCB0aGUgY29kZSBmb3IgaXJxX2RvbWFpbl9kcmFpbl9yZXF1ZXN0cyBhbmQNCj4gaXJxX2RvbWFp bl9oYW5kbGVfcmVxdWVzdHMgZmVlbHMgdmVyeSBzaW1pbGFyLg0KPiANCj4gVGhlIG9ubHkgZGlm ZmVyZW5jZSBpcyB0aGF0IG9uZSBmaWx0ZXJzIHRoZSBlbGVtZW50cyBpdCBwcm9jZXNzZXMgYmFz ZWQNCj4gb24gYW4gaXJxX2RvbWFpbiB3aGlsZSB0aGUgb3RoZXIganVzdCBnb2VzIHRocm91Z2gg YWxsIG9mIHRoZW0uDQo+IA0KPiBZb3UgY2FuIHByb2JhYmx5IGZhY3RvciB0aGF0IGNvZGUuDQoN CkJvdGggZnVuY3Rpb25zIHNlcnZlIGRpZmZlcmVudCBwdXJwb3NlcyBhbmQgZmFjdG9yaW5nIHRo ZSBzbWFsbCBzZXQgb2YNCnNpbWlsYXJpdHkgb3V0IGp1c3QgYWRkcyBtb3JlIGNvbXBsZXhpdHku DQoNClRoYW5rcywNCg0KLVJvYmVydA0KDQo+IA0KPiBDaGVlcnMsDQo+IA0KPiA+Kw0KPiA+ICAv KioNCj4gPiAgICogaXJxX2RvbWFpbl9hbGxvY19md25vZGUgLSBBbGxvY2F0ZSBhIGZ3bm9kZV9o YW5kbGUgc3VpdGFibGUgZm9yDQo+ID4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaWRl bnRpZnlpbmcgYW4gaXJxIGRvbWFpbg0KPiA+QEAgLTI5Myw2ICszOTQsOCBAQCB2b2lkIGlycV9k b21haW5fdXBkYXRlX2J1c190b2tlbihzdHJ1Y3QgaXJxX2RvbWFpbiAqZG9tYWluLA0KPiA+ICAg ICAgZGVidWdmc19hZGRfZG9tYWluX2Rpcihkb21haW4pOw0KPiA+DQo+ID4gICAgICBtdXRleF91 bmxvY2soJmlycV9kb21haW5fbXV0ZXgpOw0KPiA+Kw0KPiA+KyAgICAgaXJxX2RvbWFpbl9oYW5k bGVfcmVxdWVzdHMoZG9tYWluLT5md25vZGUsIGJ1c190b2tlbik7DQo+ID4gIH0NCj4gPg0KPiA+ ICAvKioNCj4gPkBAIC00MTcsNiArNTIwLDYxIEBAIHN0cnVjdCBpcnFfZG9tYWluICppcnFfZmlu ZF9tYXRjaGluZ19md3NwZWMoc3RydWN0IGlycV9md3NwZWMgKmZ3c3BlYywNCj4gPiAgRVhQT1JU X1NZTUJPTF9HUEwoaXJxX2ZpbmRfbWF0Y2hpbmdfZndzcGVjKTsNCj4gPg0KPiA+ICAvKioNCj4g PisgKiBpcnFfZG9tYWluX3JlcXVlc3RfZndub2RlKCkgLSBSZXF1ZXN0cyBhIGRvbWFpbiBmb3Ig YSBnaXZlbiBmd3NwZWMNCj4gPisgKiBAZndzcGVjOiBGVyBzcGVjaWZpZXIgZm9yIGFuIGludGVy cnVwdA0KPiA+KyAqIEBidXNfdG9rZW46IGRvbWFpbi1zcGVjaWZpYyBkYXRhDQo+ID4rICogQGNh bGxiYWNrOiBmdW5jdGlvbiB0byBiZSBjYWxsZWQgb25jZSBkb21haW4gYmVjb21lcyBhdmFpbGFi bGUNCj4gPisgKiBAbmFtZTogbmFtZSB0byBiZSB1c2VkIGZvciBmd25vZGUNCj4gPisgKiBAcHJp djogcHJpdmF0ZSBkYXRhIHRvIGJlIHBhc3NlZCB0byBjYWxsYmFjaw0KPiA+KyAqDQo+ID4rICog VGhlIGNhbGxiYWNrIGZ1bmN0aW9uIGlzIGNhbGxlZCBhcyBzb29uIGFzIHRoZSBkb21haW4gaXMg YXZhaWxhYmxlLg0KPiA+KyAqLw0KPiA+K2ludCBpcnFfZG9tYWluX3JlcXVlc3RfZndub2RlKHN0 cnVjdCBmd25vZGVfaGFuZGxlICpmd25vZGUsDQo+ID4rICAgICAgICAgICAgICAgICAgICAgZW51 bSBpcnFfZG9tYWluX2J1c190b2tlbiBidXNfdG9rZW4sDQo+ID4rICAgICAgICAgICAgICAgICAg ICAgaXJxX2RvbWFpbl9jYWxsYmFja190IGNhbGxiYWNrLA0KPiA+KyAgICAgICAgICAgICAgICAg ICAgIGNvbnN0IGNoYXIgKm5hbWUsIHZvaWQgKnByaXYpDQo+ID4rew0KPiA+KyAgICAgc3RydWN0 IGlycV9kb21haW4gKnBhcmVudDsNCj4gPisgICAgIHN0cnVjdCBpcnFfZG9tYWluX3JlcXVlc3Qg KnJlcXVlc3Q7DQo+ID4rDQo+ID4rICAgICBpZiAoIWZ3bm9kZSB8fCBidXNfdG9rZW4gPT0gRE9N QUlOX0JVU19BTlkgfHwgIWNhbGxiYWNrIHx8ICFuYW1lKQ0KPiA+KyAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsNCj4gPisNCj4gPisgICAgIHBhcmVudCA9IGlycV9maW5kX21hdGNoaW5nX2Z3 bm9kZShmd25vZGUsIGJ1c190b2tlbik7DQo+ID4rICAgICBpZiAocGFyZW50KSB7DQo+ID4rICAg ICAgICAgICAgIGlycV9kb21haW5fY2FsbF9oYW5kbGVyKHBhcmVudCwgY2FsbGJhY2ssIG5hbWUs IHByaXYpOw0KPiA+KyAgICAgICAgICAgICByZXR1cm4gMDsNCj4gPisgICAgIH0NCj4gPisNCj4g PisgICAgIHJlcXVlc3QgPSBremFsbG9jKHNpemVvZigqcmVxdWVzdCksIEdGUF9LRVJORUwpOw0K PiA+KyAgICAgaWYgKCFyZXF1ZXN0KQ0KPiA+KyAgICAgICAgICAgICByZXR1cm4gLUVOT01FTTsN Cj4gPisNCj4gPisgICAgIHJlcXVlc3QtPmZ3bm9kZSA9IGZ3bm9kZTsNCj4gPisgICAgIHJlcXVl c3QtPmJ1c190b2tlbiA9IGJ1c190b2tlbjsNCj4gPisgICAgIHJlcXVlc3QtPmNhbGxiYWNrID0g Y2FsbGJhY2s7DQo+ID4rICAgICByZXF1ZXN0LT5uYW1lID0ga3N0cmR1cChuYW1lLCBHRlBfS0VS TkVMKTsNCj4gPisgICAgIHJlcXVlc3QtPnByaXYgPSBwcml2Ow0KPiA+KyAgICAgSU5JVF9MSVNU X0hFQUQoJnJlcXVlc3QtPmxpc3QpOw0KPiA+Kw0KPiA+KyAgICAgaWYgKCFyZXF1ZXN0LT5uYW1l KSB7DQo+ID4rICAgICAgICAgICAgIGtmcmVlKHJlcXVlc3QpOw0KPiA+KyAgICAgICAgICAgICBy ZXR1cm4gLUVOT01FTTsNCj4gPisgICAgIH0NCj4gPisNCj4gPisgICAgIG9mX25vZGVfZ2V0KHRv X29mX25vZGUoZndub2RlKSk7DQo+ID4rDQo+ID4rICAgICBtdXRleF9sb2NrKCZpcnFfZG9tYWlu X211dGV4KTsNCj4gPisgICAgIGxpc3RfYWRkX3RhaWwoJnJlcXVlc3QtPmxpc3QsICZpcnFfZG9t YWluX3JlcXVlc3RzKTsNCj4gPisgICAgIG11dGV4X3VubG9jaygmaXJxX2RvbWFpbl9tdXRleCk7 DQo+ID4rDQo+ID4rICAgICAvKiByZWNoZWNrIGluIGNhc2UgbGlzdCBjaGFuZ2VkICovDQo+ID4r ICAgICBpcnFfZG9tYWluX2hhbmRsZV9yZXF1ZXN0cyhmd25vZGUsIGJ1c190b2tlbik7DQo+ID4r DQo+ID4rICAgICByZXR1cm4gMDsNCj4gPit9DQo+ID4rDQo+ID4rLyoqDQo+ID4gICAqIGlycV9k b21haW5fY2hlY2tfbXNpX3JlbWFwIC0gQ2hlY2sgd2hldGhlciBhbGwgTVNJIGlycSBkb21haW5z IGltcGxlbWVudA0KPiA+ICAgKiBJUlEgcmVtYXBwaW5nDQo+ID4gICAqDQo+ID4NCj4gDQo+IC0t DQo+IEp1bGllbiBUaGllcnJ5DQo=