From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C91D4A0547; Tue, 20 Apr 2021 09:54:04 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 49EC6415D7; Tue, 20 Apr 2021 09:54:04 +0200 (CEST) Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2076.outbound.protection.outlook.com [40.107.243.76]) by mails.dpdk.org (Postfix) with ESMTP id C658B415D0; Tue, 20 Apr 2021 09:54:02 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DDjmNyS+/HlAi4WHmYPnbBMeXS9/FD39Vw46vW9dyfgqFe6fb1oMBMfmA9rbRTdyXdvLo9Zo+jh+mMO0E3oPbsthndrFBvFF81W7vJsuwH/5MnsfKbs1olLj6OFFHCaC83e59uV26AHBfHskPS0jvqA6FWoKiDjwZfgVgFpcyUeye9fTUNPUE/PQiW+4058kYZkOuUGYnVlQyN1I1r/Asplwp9q6jTuzYTcMusltn11dcCRtx7S5017AkixVDiHO22mtPkJ8aZ2OHxsaNmiMLVAWBCiH7nMxP4NzZ+t0LknFvkDJKRBnCd+A/31f2wNg8rdwTSJ0q4iCMlJvd92pkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mko2Yby/4RSykoRsyamfdZBaBu7vmgEHIHdwH6EmYW0=; b=EVkxRl1dFkZls9IntUnaCe9nvEmEo5zyaFadJLe3ztfPykLUjoZ5jJ+dNf16YS/F/0z1Hrj8qbzBKmTlylblKXsmlpVQ267Wz86ykWYeEBS3YnZrpQhCSSv4o35P1nQKsQTd+K3tOsmb5Q1gyUGNdJY4Pq/hApydVlELAMINXt77wlgQAWgXtmt2ojRUaxTtsv/9G5BUNitBVovki49/eN311RW3HUtMwtIdeU3T0bQB4Y+/7EfUiaW8+8wuHVhR2w3jPQ6d9GgbLpNk69OOdbYCliDj1wAk606elXOaSJ+WOIBz8COmyUSnotiXgxdz16o1xHtfX3BKJHA5yPjfgg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Mko2Yby/4RSykoRsyamfdZBaBu7vmgEHIHdwH6EmYW0=; b=rsehMV+nI6OkoLJjLBd8HCCnGVQeDi2BnCj3ofQNPW3bdHRq+xmW8vJGB5LzBZeLKezm8UuJEszAYuOJIhNEVaFZjoRh0EMzLNafijLDlmZ4730phS7zPTozYBELBcnXb5ROcmQwXwtQrmR62asPTypmzxbyNAofG0kNq9AVqC4G8IsCmmhDVY3Rqr2debBpO+DrHJnOd7lT+y+p+rYV3CNU6H1HVi/C+5NXC8FnJ4CTTVDZy+BYSpjgHq0xbRiCUEHgicuKNOlKWwyr1Gz7UJPfaGyFUOOIDEHAP9xTIyCkfP7TXjAU0a79924KwLmR4op2qzyExBzMA68YsFOXfQ== Received: from DM6PR12MB3753.namprd12.prod.outlook.com (2603:10b6:5:1c7::18) by DM6PR12MB4580.namprd12.prod.outlook.com (2603:10b6:5:2a8::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4042.16; Tue, 20 Apr 2021 07:53:58 +0000 Received: from DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::20f7:11fc:9d46:9258]) by DM6PR12MB3753.namprd12.prod.outlook.com ([fe80::20f7:11fc:9d46:9258%6]) with mapi id 15.20.4042.024; Tue, 20 Apr 2021 07:53:58 +0000 From: Slava Ovsiienko To: Feifei Wang , Matan Azrad , Shahaf Shuler CC: "dev@dpdk.org" , nd , "stable@dpdk.org" , Ruifeng Wang , nd , nd , nd Thread-Topic: [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache Thread-Index: AQHXG8cWFxZYWyFpJUm7yYF997hX4qqwqlRAgAFnd4CACkdrsIAAwjqAgAAa6QCAAAXPQA== Date: Tue, 20 Apr 2021 07:53:58 +0000 Message-ID: References: <20210318071840.359957-1-feifei.wang2@arm.com> <20210318071840.359957-4-feifei.wang2@arm.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=nvidia.com; x-originating-ip: [95.164.10.10] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 9e79fc45-3218-4a1c-d281-08d903d17468 x-ms-traffictypediagnostic: DM6PR12MB4580: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cDMf//KUA8nCPEInMF0k8Jro59BT6S0n7joPaCf+xzKX39cnguyl+kt9tAl60iOnYXeW00ONeKrLVJVJLYDqzF3lGhmSRPCBhU9IbZ+k3TxWCfeg+plCFcS6/9bnpinjroKNEXhuJco/C5tyrDaww2fjU0bmngJuGwKwAA+qJAQMeivI6itvfCRuChRPW3O9Zb7omv8iZG/jHXaZMyMJVVApgYzpjVpev+frszZMPd7EwTEPMCEcxvtv+aydy1NhkYmNOaqTZPR/9ifU2T86oK/XlaEV3ptp05mi0hk7TZJh6IVIstn6pjLX8RjC4WRgZREUp61lY1dukH1/wMqmAQ69Rss0lC5mwoOchIhMubtE21HKaOP/DvIwOQuOxCVwtqqwPMy/5RAa/qXnatEdD3gUZV1BhXOIGsxQhsZUfZADXw4N+57W6NvsakMiustf+rP/lp/2faapSEFFyxBE8muE3fu0O95TrC8J0Df23SFdO9v8e1Yu6OIoiYyvukxskNlRxI34Jncc+0tJuMGUc4uBFnSsRZmp/MiL+UW4YG6W9tgOFT9+VABf1Yg36BJJEAMvWThruvZLiXCWCWUdPks9Bc9NJs/Uy0+rV/XGJVI= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR12MB3753.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(39860400002)(366004)(396003)(376002)(346002)(136003)(316002)(4326008)(83380400001)(38100700002)(54906003)(110136005)(8936002)(5660300002)(71200400001)(9686003)(76116006)(30864003)(8676002)(33656002)(66556008)(86362001)(26005)(66946007)(66476007)(478600001)(7696005)(64756008)(2906002)(52536014)(66446008)(6636002)(53546011)(6506007)(186003)(55016002)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: =?utf-8?B?MzdwMkR3Z25QQ3JOQ3FSc0o2RkJOQTJ5aE1Mb21lTUZ3bEZIQlFYd0Y4UzN3?= =?utf-8?B?c0duSXdQSUFkUkc0ME93RzRQQkFKWG9vVUt1QzhaeGUzNE85MitUbi9KeGhy?= =?utf-8?B?UmlMMWdSczZFWmtJaG9Sd1QyaldsU1NpaUhKUFBIaUIxbjdZOGpsWDBTT3hV?= =?utf-8?B?MkZsS0xZZndGNEwwMmlqaitocW5kcHhGMC9HRUh3Q3lDb1ozUllRY0l6UDRp?= =?utf-8?B?cGo5dmczSmRjdjdFNU1yRGd3L0tGT2ttbUdZcitHR0VNUk5neS8xYUhVSTZJ?= =?utf-8?B?R0diUGJEL0lTVXU2aE92clF1T29JaTFRR2QvbHNzZHJ0TVErWGdnL0ZGSzlO?= =?utf-8?B?TGxSLzJndUZyQllaR2ljalpGNUFNNVhncEIzcU96ZFhFendCb0RKQkU0NlBl?= =?utf-8?B?bUJJRE5Id3Z3dGt5aDNtVzhvbVFvK0ZDd1dQeURmMFNVbHVyYUZ4bzdRandu?= =?utf-8?B?UXQ1OE1XWFczcmN2WXFHbzFOdXBydXh1NDJ2WlpsOHVZSEcxOFhhR0d3dk05?= =?utf-8?B?NjQxQS90alN0UXJVemthclFqK05uRm5MOUNqRnRybWF0ZTRGeVJFSHYreVc5?= =?utf-8?B?Q3lXR3puRnY0WmEvYzFQKzNadlkwZHd3UkZMdnJzNE5kbHFzVHRaTkFic3pW?= =?utf-8?B?WGhWWmNVU0dLc3JEazlRRTc4WUswUHhLcjNkK2gyaUpSSFdxNHAxN2JudHpz?= =?utf-8?B?UDJ0YlNFYWdjelpHTFNycUNMcW1xdE1oVHorbWFnSVl1dCtHZ3pJUVRuTkpW?= =?utf-8?B?T216RzduUWo2UExNSzgvSWZBV2JFZjdyL2MxUlZHNzJvWXhHSUtmUEtqRHYz?= =?utf-8?B?SlJJZ0o0aFRPWjZtWE9mSDVxdWs2TFI4WjYxMGFXekhqYyt3dEF1VTFTV1Uy?= =?utf-8?B?U3crM0dnK0djOWJ1L3RXYmVKWmdxeUNOcDVSNm5lZVZDbnZRZHFxQzE0TnZ5?= =?utf-8?B?UEsrczNYWkNvY2VEMTlWTFNlclNacTRuR2xtUktKR211VG5ubkFLSm9ITVFP?= =?utf-8?B?UTMrUzFSSVJwdjR4MkxRYVVyekQ1T2l3QmQ4WGpCUnhvcUVTS1ZqOUlGTmY4?= =?utf-8?B?Vk1YVE1iZXJKMThvdzNoTm1PU29jZDNIbWxHdTdBYWJpLzVHZ1p5eW01QjNX?= =?utf-8?B?WmdTcW9sZHAwZUtDa2t4QTUrUWFGUFQzV1o4WXozTUVBV0pXVjc2a2tSaXpR?= =?utf-8?B?WlBYZ0lhNXZwallxNStQWTRwY09VU3VXQnN5cEI5OHJ3Vy9wMCs1ZVAxS2E2?= =?utf-8?B?Qkg0cWlpUXdSbStjMVVDZDJ2THNaWkVtM2NoOVluWjZPRWpiUGhyTFI2aDZO?= =?utf-8?B?cnlnZThQeHEyMTFueXNhdmJFNllxMVh5VkYrWSs1ekVoeDZtUndpRUZQYjNQ?= =?utf-8?B?YkhtQjNBRzducDJESmNuL25oWUlucHgxVHFOeUR4ZzJEcFFoLzg0N1lxVzRn?= =?utf-8?B?NEVvRzVrTkFockFtZUE2QmRzWlp1WWU4Mkw0TDdnajN5RjJLNERrT0hrdHRJ?= =?utf-8?B?czhZWmhyaWx2eEJPZW9Ldk1pbllxTm9BQnFJdXBQQkVvVStGWDYxUVRucW9Z?= =?utf-8?B?eDRQWU5rNS94azArZnZVeURPS0hQcEd2TXpTa29SSU5LOGhkVFFlR2xnSmlv?= =?utf-8?B?c1FaY29VVHh3cUFOdy9Ud0NxeXNPYUxSRjI0b2RkTFVLaTlGeElFVjBFMUUr?= =?utf-8?B?MzdoR3lxQ0Q0RmwyM2NqM1ZIcHZqQTQwRnFhNk9DOXVNeUNzRm5ZN2cvTGVK?= =?utf-8?Q?8wDgOnZ06o4YEs8ofmqlxaeJh8ZXLZz2uaWRqWG?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR12MB3753.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9e79fc45-3218-4a1c-d281-08d903d17468 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2021 07:53:58.3801 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: P1kWBO5bI6XojstsEEsSyy1iWWXTrOWsUntbun/WrBnoQVEYsD9Sq2gHgaxcBF0Ac+C2K751Nax981QC8u8fRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4580 Subject: Re: [dpdk-dev] [PATCH v1 3/4] net/mlx5: fix rebuild bug for Memory Region cache X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGksIEZlaWZlaQ0KDQpJbiBteSBvcGluaW9uLCB0aGVyZSBzaG91bGQgYmUgMiBiYXJyaWVyczoN CiAtIGFmdGVyIGdsb2JhbCBjYWNoZSB1cGRhdGUvYmVmb3JlIGFsdGVyaW5nIGRldl9nZW4sIHRv IGVuc3VyZSB0aGUgY29ycmVjdCBvcmRlcg0KIC0gYWZ0ZXIgYWx0ZXJpbmcgZGV2X2dlbiB0byBt YWtlIHRoaXMgY2hhbmdlIHZpc2libGUgZm9yIG90aGVyIGFnZW50cyBhbmQgdG8gdHJpZ2dlciBs b2NhbCBjYWNoZSB1cGRhdGUNCg0KV2l0aCBiZXN0IHJlZ2FyZHMsDQpTbGF2YQ0KDQo+IC0tLS0t T3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IEZlaWZlaSBXYW5nIDxGZWlmZWkuV2FuZzJA YXJtLmNvbT4NCj4gU2VudDogVHVlc2RheSwgQXByaWwgMjAsIDIwMjEgMTA6MzANCj4gVG86IFNs YXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9AbnZpZGlhLmNvbT47IE1hdGFuIEF6cmFkDQo+IDxt YXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29tPg0KPiBD YzogZGV2QGRwZGsub3JnOyBuZCA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVu ZyBXYW5nDQo+IDxSdWlmZW5nLldhbmdAYXJtLmNvbT47IG5kIDxuZEBhcm0uY29tPjsgbmQgPG5k QGFybS5jb20+OyBuZA0KPiA8bmRAYXJtLmNvbT4NCj4gU3ViamVjdDog5Zue5aSNOiBbUEFUQ0gg djEgMy80XSBuZXQvbWx4NTogZml4IHJlYnVpbGQgYnVnIGZvciBNZW1vcnkgUmVnaW9uDQo+IGNh Y2hlDQo+IA0KPiBIaSwgU2xhdmENCj4gDQo+IEFub3RoZXIgcXVlc3Rpb24gc3VkZGVubHkgb2Nj dXJyZWQgdG8gbWUsIGluIG9yZGVyIHRvIGtlZXAgdGhlIG9yZGVyIHRoYXQNCj4gcmVidWlsZGlu ZyBnbG9iYWwgY2FjaGUgYmVmb3JlIHVwZGF0aW5nIOKAnWRldl9nZW7igJwsIHRoZSB3bWIgc2hv dWxkIGJlDQo+IGJlZm9yZSB1cGRhdGluZyAiZGV2X2dlbiIgcmF0aGVyIHRoYW4gYWZ0ZXIgaXQu DQo+IE90aGVyd2lzZSwgaW4gdGhlIG91dC1vZi1vcmRlciBwbGF0Zm9ybXMsIGN1cnJlbnQgb3Jk ZXIgY2Fubm90IGJlIGtlcHQuDQo+IA0KPiBUaHVzLCB3ZSBzaG91bGQgY2hhbmdlIHRoZSBjb2Rl IGFzOg0KPiBhKSByZWJ1aWxkIGdsb2JhbCBjYWNoZTsNCj4gYikgcnRlX3NtcF93bWIoKTsNCj4g YykgdXBkYXRpbmcgZGV2X2dlbg0KPiANCj4gQmVzdCBSZWdhcmRzDQo+IEZlaWZlaQ0KPiA+IC0t LS0t6YKu5Lu25Y6f5Lu2LS0tLS0NCj4gPiDlj5Hku7bkuro6IEZlaWZlaSBXYW5nDQo+ID4g5Y+R 6YCB5pe26Ze0OiAyMDIx5bm0NOaciDIw5pelIDEzOjU0DQo+ID4g5pS25Lu25Lq6OiBTbGF2YSBP dnNpaWVua28gPHZpYWNoZXNsYXZvQG52aWRpYS5jb20+OyBNYXRhbiBBenJhZA0KPiA+IDxtYXRh bkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlciA8c2hhaGFmc0BudmlkaWEuY29tPg0KPiA+IOaK hOmAgTogZGV2QGRwZGsub3JnOyBuZCA8bmRAYXJtLmNvbT47IHN0YWJsZUBkcGRrLm9yZzsgUnVp ZmVuZyBXYW5nDQo+ID4gPFJ1aWZlbmcuV2FuZ0Bhcm0uY29tPjsgbmQgPG5kQGFybS5jb20+OyBu ZCA8bmRAYXJtLmNvbT4NCj4gPiDkuLvpopg6IOWbnuWkjTogW1BBVENIIHYxIDMvNF0gbmV0L21s eDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5IFJlZ2lvbg0KPiA+IGNhY2hlDQo+ID4NCj4g PiBIaSwgU2xhdmENCj4gPg0KPiA+IFRoYW5rcyB2ZXJ5IG11Y2ggZm9yIHlvdXIgZXhwbGFuYXRp b24uDQo+ID4NCj4gPiBJIGNhbiB1bmRlcnN0YW5kIHRoZSBhcHAgY2FuIHdhaXQgYWxsIG1idWZz IGFyZSByZXR1cm5lZCB0byB0aGUgbWVtb3J5DQo+ID4gcG9vbCwgYW5kIHRoZW4gaXQgY2FuIGZy ZWUgdGhpcyBtYnVmcywgSSBhZ3JlZSB3aXRoIHRoaXMuDQo+ID4NCj4gPiBBcyBhIHJlc3VsdCwg SSB3aWxsIHJlbW92ZSB0aGUgYnVnIGZpeCBwYXRjaCBmcm9tIHRoaXMgc2VyaWVzIGFuZCBqdXN0 DQo+ID4gcmVwbGFjZSB0aGUgc21wIGJhcnJpZXIgd2l0aCBDMTEgdGhyZWFkIGZlbmNlLiBUaGFu a3MgdmVyeSBtdWNoIGZvcg0KPiA+IHlvdXIgcGF0aWVudCBleHBsYW5hdGlvbiBhZ2Fpbi4NCj4g Pg0KPiA+IEJlc3QgUmVnYXJkcw0KPiA+IEZlaWZlaQ0KPiA+DQo+ID4gPiAtLS0tLemCruS7tuWO n+S7ti0tLS0tDQo+ID4gPiDlj5Hku7bkuro6IFNsYXZhIE92c2lpZW5rbyA8dmlhY2hlc2xhdm9A bnZpZGlhLmNvbT4NCj4gPiA+IOWPkemAgeaXtumXtDogMjAyMeW5tDTmnIgyMOaXpSAyOjUxDQo+ ID4gPiDmlLbku7bkuro6IEZlaWZlaSBXYW5nIDxGZWlmZWkuV2FuZzJAYXJtLmNvbT47IE1hdGFu IEF6cmFkDQo+ID4gPiA8bWF0YW5AbnZpZGlhLmNvbT47IFNoYWhhZiBTaHVsZXIgPHNoYWhhZnNA bnZpZGlhLmNvbT4NCj4gPiA+IOaKhOmAgTogZGV2QGRwZGsub3JnOyBuZCA8bmRAYXJtLmNvbT47 IHN0YWJsZUBkcGRrLm9yZzsgUnVpZmVuZw0KPiBXYW5nDQo+ID4gPiA8UnVpZmVuZy5XYW5nQGFy bS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4gPiA+IOS4u+mimDogUkU6IFtQQVRDSCB2MSAzLzRd IG5ldC9tbHg1OiBmaXggcmVidWlsZCBidWcgZm9yIE1lbW9yeSBSZWdpb24NCj4gPiA+IGNhY2hl DQo+ID4gPg0KPiA+ID4gSGksIEZlaWZlaQ0KPiA+ID4NCj4gPiA+IFBsZWFzZSwgc2VlIGJlbG93 DQo+ID4gPg0KPiA+ID4gLi4uLg0KPiA+ID4NCj4gPiA+ID4gPiBIaSwgRmVpZmVpDQo+ID4gPiA+ ID4NCj4gPiA+ID4gPiBTb3JyeSwgSSBkbyBub3QgZm9sbG93IHdoYXQgdGhpcyBwYXRjaCBmaXhl cy4gRG8gd2UgaGF2ZSBzb21lDQo+ID4gPiA+ID4gaXNzdWUvYnVnIHdpdGggTVIgY2FjaGUgaW4g cHJhY3RpY2U/DQo+ID4gPiA+DQo+ID4gPiA+IFRoaXMgcGF0Y2ggZml4ZXMgdGhlIGJ1ZyB3aGlj aCBpcyBiYXNlZCBvbiBsb2dpY2FsIGRlZHVjdGlvbiwgYW5kDQo+ID4gPiA+IGl0IGRvZXNuJ3Qg YWN0dWFsbHkgaGFwcGVuLg0KPiA+ID4gPg0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gRWFjaCBUeCBx dWV1ZSBoYXMgaXRzIG93biBkZWRpY2F0ZWQgImxvY2FsIiBjYWNoZSBmb3IgTVJzIHRvDQo+ID4g PiA+ID4gY29udmVydCBidWZmZXIgYWRkcmVzcyBpbiBtYnVmcyBiZWluZyB0cmFuc21pdHRlZCB0 byBMS2V5cw0KPiA+ID4gPiA+IChIVy1yZWxhdGVkIGVudGl0eQ0KPiA+ID4gPiA+IGhhbmRsZSkg YW5kIHRoZSAiZ2xvYmFsIiBjYWNoZSBmb3IgYWxsIE1SIHJlZ2lzdGVyZWQgb24gdGhlIGRldmlj ZS4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IEFGQUlLLCBob3cgY29udmVyc2lvbiBoYXBwZW5zIGlu IGRhdGFwYXRoOg0KPiA+ID4gPiA+IC0gY2hlY2sgdGhlIGxvY2FsIHF1ZXVlIGNhY2hlIGZsdXNo IHJlcXVlc3QNCj4gPiA+ID4gPiAtIGxvb2t1cCBpbiBsb2NhbCBjYWNoZQ0KPiA+ID4gPiA+IC0g aWYgbm90IGZvdW5kOg0KPiA+ID4gPiA+IC0gYWNxdWlyZSBsb2NrIGZvciBnbG9iYWwgY2FjaGUg cmVhZCBhY2Nlc3MNCj4gPiA+ID4gPiAtIGxvb2t1cCBpbiBnbG9iYWwgY2FjaGUNCj4gPiA+ID4g PiAtIHJlbGVhc2UgbG9jayBmb3IgZ2xvYmFsIGNhY2hlDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBI b3cgY2FjaGUgdXBkYXRlIG9uIG1lbW9yeSBmcmVlaW5nL3VucmVnaXN0ZXJpbmcgaGFwcGVuczoN Cj4gPiA+ID4gPiAtIGFjcXVpcmUgbG9jayBmb3IgZ2xvYmFsIGNhY2hlIHdyaXRlIGFjY2Vzcw0K PiA+ID4gPiA+IC0gW2FdIHJlbW92ZSByZWxldmFudCBNUnMgZnJvbSB0aGUgZ2xvYmFsIGNhY2hl DQo+ID4gPiA+ID4gLSBbYl0gc2V0IGxvY2FsIGNhY2hlcyBmbHVzaCByZXF1ZXN0DQo+ID4gPiA+ ID4gLSBmcmVlIGdsb2JhbCBjYWNoZSBsb2NrDQo+ID4gPiA+ID4NCj4gPiA+ID4gPiBJZiBJIHVu ZGVyc3RhbmQgY29ycmVjdGx5LCB5b3VyIHBhdGNoIHN3YXBzIFthXSBhbmQgW2JdLCBhbmQNCj4g PiA+ID4gPiBsb2NhbCBjYWNoZXMgZmx1c2ggaXMgcmVxdWVzdGVkIGVhcmxpZXIuIFdoYXQgcHJv YmxlbSBkb2VzIGl0IHNvbHZlPw0KPiA+ID4gPiA+IEl0IGlzIG5vdCBzdXBwb3NlZCB0aGVyZSBh cmUgaW4gZGF0YXBhdGggc29tZSBtYnVmcyByZWZlcmVuY2luZw0KPiA+ID4gPiA+IHRvIHRoZSBt ZW1vcnkgYmVpbmcgZnJlZWQuIEFwcGxpY2F0aW9uIG11c3QgZW5zdXJlIHRoaXMgYW5kIG11c3QN Cj4gPiA+ID4gPiBub3QgYWxsb2NhdGUgbmV3IG1idWZzIGZyb20gdGhpcyBtZW1vcnkgcmVnaW9u cyBiZWluZyBmcmVlZC4NCj4gPiA+ID4gPiBIZW5jZSwgdGhlIGxvb2t1cHMgZm9yIHRoZXNlIE1S cyBpbiBjYWNoZXMgc2hvdWxkIG5vdCBvY2N1ci4NCj4gPiA+ID4NCj4gPiA+ID4gRm9yIHlvdXIg Zmlyc3QgcG9pbnQgdGhhdCwgYXBwbGljYXRpb24gY2FuIHRha2UgY2hhcmdlIG9mDQo+ID4gPiA+ IHByZXZlbnRpbmcgTVIgZnJlZWQgbWVtb3J5IGJlaW5nIGFsbG9jYXRlZCB0byBkYXRhIHBhdGgu DQo+ID4gPiA+DQo+ID4gPiA+IERvZXMgaXQgbWVhbnMgdGhhdCBJZiB0aGVyZSBpcyBhbiBlbWVy Z2VuY3kgb2YgTVIgZnJhZ21lbnQsIHN1Y2gNCj4gPiA+ID4gYXMgaG90cGx1ZywgdGhlIGFwcGxp Y2F0aW9uIG11c3QgaW5mb3JtIHRoZWRhdGEgcGF0aCBpbiBhZHZhbmNlLA0KPiA+ID4gPiBhbmQg dGhpcyBtZW1vcnkgd2lsbCBub3QgYmUgYWxsb2NhdGVkLCBhbmQgdGhlbiB0aGUgY29udHJvbCBw YXRoDQo+ID4gPiA+IHdpbGwgZnJlZSB0aGlzIG1lbW9yeT8gSWYgYXBwbGljYXRpb24gIGNhbiBk byBsaWtlIHRoaXMsIEkgYWdyZWUNCj4gPiA+ID4gdGhhdCB0aGlzIGJ1Zw0KPiA+IGNhbm5vdCBo YXBwZW4uDQo+ID4gPg0KPiA+ID4gQWN0dWFsbHksICB0aGlzIGlzIHRoZSBvbmx5IGNvcnJlY3Qg d2F5IGZvciBhcHBsaWNhdGlvbiB0byBvcGVyYXRlLg0KPiA+ID4gTGV0J3Mgc3VwcG9zZSB3ZSBo YXZlIHNvbWUgbWVtb3J5IGFyZWEgdGhhdCBhcHBsaWNhdGlvbiB3YW50cyB0byBmcmVlLg0KPiA+ ID4gQUxMIHJlZmVyZW5jZXMgdG8gdGhpcyBhcmVhIG11c3QgYmUgcmVtb3ZlZC4gSWYgd2UgaGF2 ZSBzb21lIG1idWZzDQo+ID4gPiBhbGxvY2F0ZWQgZnJvbSB0aGlzIGFyZWEsIGl0IG1lYW5zIHRo YXQgd2UgaGF2ZSBtZW1vcnkgcG9vbCBjcmVhdGVkDQo+IHRoZXJlLg0KPiA+ID4NCj4gPiA+IFdo YXQgYXBwbGljYXRpb24gc2hvdWxkIGRvOg0KPiA+ID4gLSBub3RpZnkgYWxsIGl0cyBjb21wb25l bnRzL2FnZW50cyB0aGUgbWVtb3J5IGFyZWEgaXMgZ29pbmcgdG8gYmUNCj4gPiA+IGZyZWVkDQo+ ID4gPiAtIGFsbCBjb21wb25lbnRzL2FnZW50cyBmcmVlIHRoZSBtYnVmcyB0aGV5IG1pZ2h0IG93 bg0KPiA+ID4gLSBQTUQgbWlnaHQgbm90IHN1cHBvcnQgZnJlZWluZyBmb3Igc29tZSBtYnVmcyAo Zm9yIGV4YW1wbGUgYmVpbmcNCj4gPiA+IHNlbnQgYW5kIGF3YWl0aW5nIGZvciBjb21wbGV0aW9u KSwgc28gYXBwIHNob3VsZCBqdXN0IHdhaXQNCj4gPiA+IC0gd2FpdCB0aWxsIGFsbCBtYnVmcyBh cmUgcmV0dXJuZWQgdG8gdGhlIG1lbW9yeSBwb29sIChieSBtb25pdG9yaW5nDQo+ID4gPiBhdmFp bGFibGUgb2JqID09IHBvb2wgc2l6ZSkNCj4gPiA+DQo+ID4gPiBPdGhlcndpc2UgLSBpdCBpcyBk YW5nZXJvdXMgdG8gZnJlZSB0aGUgbWVtb3J5LiBUaGVyZSBhcmUganVzdCBzb21lDQo+ID4gPiBt YnVmcyBzdGlsbCBhbGxvY2F0ZWQsIGl0IGlzIHJlZ2FyZGxlc3MgdG8gYnVmIGFkZHJlc3MgdG8g TVINCj4gPiA+IHRyYW5zbGF0aW9uLiBXZSBqdXN0IGNhbid0IGZyZWUgdGhlIG1lbW9yeSAtIHRo ZSBtYXBwaW5nIHdpbGwgYmUNCj4gPiA+IGRlc3Ryb3llZCBhbmQgbWlnaHQgY2F1c2UgdGhlIHNl Z21lbnRhdGlvbiBmYXVsdCBieSBTVyBvciBzb21lIEhXDQo+ID4gPiBpc3N1ZXMgb24gRE1BIGFj Y2VzcyB0byB1bm1hcHBlZCBtZW1vcnkuICBJdCBpcyB2ZXJ5IGdlbmVyaWMgc2FmZXR5DQo+ID4g PiBhcHByb2FjaCAtIGRvIG5vdCBmcmVlIHRoZSBtZW1vcnkgdGhhdCBpcyBzdGlsbCBpbiB1c2Uu IEhlbmNlLCBhdA0KPiA+ID4gdGhlIG1vbWVudCBvZiBmcmVlaW5nIGFuZCB1bnJlZ2lzdGVyaW5n IHRoZSBNUiwgdGhlcmUgTVVTVCBCRSBOTyBhbnkNCj4gPiBtYnVmcyBpbiBmbGlnaHQgcmVmZXJl bmNpbmcgdG8gdGhlIGFkZHJlc3NlcyBiZWluZyBmcmVlZC4NCj4gPiA+IE5vIHRyYW5zbGF0aW9u IHRvIE1SIGJlaW5nIGludmFsaWRhdGVkIGNhbiBoYXBwZW4uDQo+ID4gPg0KPiA+ID4gPg0KPiA+ ID4gPiA+IEZvciBvdGhlciBzaWRlLCB0aGUgY2FjaGUgZmx1c2ggaGFzIG5lZ2F0aXZlIGVmZmVj dCAtIHRoZSBsb2NhbA0KPiA+ID4gPiA+IGNhY2hlIGlzIGdldHRpbmcgZW1wdHkgYW5kIGNhbid0 IHByb3ZpZGUgdHJhbnNsYXRpb24gZm9yIG90aGVyDQo+ID4gPiA+ID4gdmFsaWQgKG5vdCBiZWlu ZyByZW1vdmVkKSBNUnMsIGFuZCB0aGUgdHJhbnNsYXRpb24gaGFzIHRvIGxvb2sNCj4gPiA+ID4g PiB1cCBpbiB0aGUgZ2xvYmFsIGNhY2hlLCB0aGF0IGlzIGxvY2tlZCBub3cgZm9yIHJlYnVpbGRp bmcsIHRoaXMNCj4gPiA+ID4gPiBjYXVzZXMgdGhlIGRlbGF5cyBpbiBkYXRhcGF0Y2gNCj4gPiA+ ID4gb24gYWNxdWlyaW5nIGdsb2JhbCBjYWNoZSBsb2NrLg0KPiA+ID4gPiA+IFNvLCBJIHNlZSBz b21lIHBvdGVudGlhbCBwZXJmb3JtYW5jZSBpbXBhY3QuDQo+ID4gPiA+DQo+ID4gPiA+IElmIGFi b3ZlIGFzc3VtcHRpb24gaXMgdHJ1ZSwgd2UgY2FuIGdvIHRvIHlvdXIgc2Vjb25kIHBvaW50LiBJ DQo+ID4gPiA+IHRoaW5rIHRoaXMgaXMgYSBwcm9ibGVtIG9mIHRoZSB0cmFkZW9mZiBiZXR3ZWVu IGNhY2hlIGNvaGVyZW5jZQ0KPiA+ID4gPiBhbmQNCj4gPiA+IHBlcmZvcm1hbmNlLg0KPiA+ID4g Pg0KPiA+ID4gPiBJIGNhbiB1bmRlcnN0YW5kIHlvdXIgbWVhbmluZyB0aGF0IHRob3VnaCBnbG9i YWwgY2FjaGUgaGFzIGJlZW4NCj4gPiA+ID4gY2hhbmdlZCwgd2Ugc2hvdWxkIGtlZXAgdGhlIHZh bGlkIE1SIGluIGxvY2FsIGNhY2hlIGFzIGxvbmcgYXMNCj4gPiA+ID4gcG9zc2libGUgdG8gZW5z dXJlIHRoZSBmYXN0IHNlYXJjaGluZyBzcGVlZC4NCj4gPiA+ID4gSW4gdGhlIG1lYW53aGlsZSwg dGhlIGxvY2FsIGNhY2hlIGNhbiBiZSByZWJ1aWx0IGxhdGVyIHRvIHJlZHVjZQ0KPiA+ID4gPiBp dHMgd2FpdGluZyB0aW1lIGZvciBhY3F1aXJpbmcgdGhlIGdsb2JhbCBjYWNoZSBsb2NrLg0KPiA+ ID4gPg0KPiA+ID4gPiBIb3dldmVyLCAgdGhpcyBtZWNoYW5pc20ganVzdCBlbnN1cmVzIHRoZSBw ZXJmb3JtYW5jZSB1bmNoYW5nZWQNCj4gPiA+ID4gZm9yIHRoZSBmaXJzdCBmZXcgbWJ1ZnMuDQo+ ID4gPiA+IER1cmluZyB0aGUgbmV4dCBtYnVmcyBsa2V5IHNlYXJjaGluZyBhZnRlciAnZGV2X2dl bicgdXBkYXRlZCwgaXQNCj4gPiA+ID4gaXMgc3RpbGwgbmVjZXNzYXJ5IHRvIHVwZGF0ZSB0aGUg bG9jYWwgY2FjaGUuIEFuZCB0aGUgcGVyZm9ybWFuY2UNCj4gPiA+ID4gY2FuIGZpcnN0bHkgcmVk dWNlIGFuZCB0aGVuIHJldHVybnMuIFRodXMsIG5vIG1hdHRlciB3aGV0aGVyIHRoZXJlDQo+ID4g PiA+IGlzIHRoaXMgcGF0Y2ggb3Igbm90LCAgdGhlIHBlcmZvcm1hbmNlIHdpbGwgaml0dGVyIGlu IGEgY2VydGFpbiBwZXJpb2Qgb2YNCj4gdGltZS4NCj4gPiA+DQo+ID4gPiBMb2NhbCBjYWNoZSBz aG91bGQgYmUgdXBkYXRlZCB0byByZW1vdmUgTVJzIG5vIGxvbmdlciB2YWxpZC4gQnV0IHdlDQo+ ID4gPiBqdXN0IGZsdXNoIHRoZSBlbnRpcmUgY2FjaGUuDQo+ID4gPiBMZXQncyBzdXBwb3NlIHdl IGhhdmUgdmFsaWQgTVIwLCBNUjEsIGFuZCBub3QgdmFsaWQgTVJYIGluIGxvY2FsIGNhY2hlLg0K PiA+ID4gQW5kIHRoZXJlIGFyZSB0cmFmZmljIGluIHRoZSBkYXRhcGF0aCBmb3IgTVIwIGFuZCBN UjEsIGFuZCBubw0KPiA+ID4gdHJhZmZpYyBmb3IgTVJYIGFueW1vcmUuDQo+ID4gPg0KPiA+ID4g MSkgSWYgd2UgZG8gYXMgeW91IHByb3Bvc2U6DQo+ID4gPiBhKSB0YWtlIGEgbG9jaw0KPiA+ID4g YikgcmVxdWVzdCBmbHVzaCBsb2NhbCBjYWNoZSBmaXJzdCAtIGFsbCBNUjAsIE1SMSwgTVJYIHdp bGwgYmUNCj4gPiA+IHJlbW92ZWQgb24gdHJhbnNsYXRpb24gaW4gZGF0YXBhdGgNCj4gPiA+IGMp IHVwZGF0ZSBnbG9iYWwgY2FjaGUsDQo+ID4gPiBkKSBmcmVlIGxvY2sNCj4gPiA+IEFsbCB0aGUg dHJhZmZpYyBmb3IgdmFsaWQgTVIwLCBNUjEgQUxXQVlTIHdpbGwgYmUgYmxvY2tlZCBvbiBsb2Nr DQo+ID4gPiB0YWtlbiBmb3IgY2FjaGUgdXBkYXRlIHNpbmNlIHBvaW50IGIpIHRpbGwgcG9pbnQg ZCkuDQo+ID4gPg0KPiA+ID4gMikgSWYgd2UgZG8gYXMgaXQgaXMgaW1wbGVtZW50ZWQgbm93Og0K PiA+ID4gYSkgdGFrZSBhIGxvY2sNCj4gPiA+IGIpIHVwZGF0ZSBnbG9iYWwgY2FjaGUNCj4gPiA+ IGMpIHJlcXVlc3QgZmx1c2ggbG9jYWwgY2FjaGUNCj4gPiA+IGQpIGZyZWUgbG9jaw0KPiA+ID4g VGhlIHRyYWZmaWMgTUlHSFQgYmUgbG9ja2VkIE9OTFkgZm9yIE1ScyBub24tZXhpc3RpbmcgaW4g bG9jYWwgY2FjaGUNCj4gPiA+IChub3QgaGFwcGVucyBmb3IgTVIwIGFuZCBNUjEsIG11c3Qgbm90 IGhhcHBlbiBmb3IgTVJYKSwgIGFuZA0KPiA+ID4gcHJvYmFiaWxpdHkgc2hvdWxkIGJlIG1pbm9y LiBBbmQgbG9jayBtaWdodCBoYXBwZW4gc2luY2UgYykgdGlsbCBkKQ0KPiA+ID4gLSBxdWl0ZSBz aG9ydCBwZXJpb2Qgb2YgdGltZQ0KPiA+ID4NCj4gPiA+IFN1bW1hcnksIHRoZSBkaWZmZXJlbmNl IGJldHdlZW4gMSkgYW5kIDIpDQo+ID4gPg0KPiA+ID4gTG9jayBwcm9iYWJpbGl0eToNCj4gPiA+ IC0gMSkgbG9jayBBTFdBWVMgaGFwcGVuIGZvciBBTlkgTVIgdHJhbnNsYXRpb24gYWZ0ZXIgYiks DQo+ID4gPiAgIDIpIGxvY2sgTUlHSFQgaGFwcGVuLCBmb3IgY2FjaGUgbWlzcyBPTkxZLCBhZnRl ciBjKQ0KPiA+ID4NCj4gPiA+IExvY2sgZHVyYXRpb246DQo+ID4gPiAtIDEpIGxvY2sgc2luY2Ug YikgdGlsbCBkKSwNCj4gPiA+ICAgMikgbG9jayBzaW5jZSBjKSB0aWxsIGQpLCB0aGF0IHNlZW1z IHRvIGJlICBtdWNoIHNob3J0ZXIuDQo+ID4gPg0KPiA+ID4gPg0KPiA+ID4gPiBGaW5hbGx5LCBp biBjb25jbHVzaW9uLCBJIHRlbmQgdG8gdGhpbmsgdGhhdCB0aGUgYm90dG9tIGxheWVyIGNhbg0K PiA+ID4gPiBkbyBtb3JlIHRoaW5ncyB0byBlbnN1cmUgdGhlIGNvcnJlY3QgZXhlY3V0aW9uIG9m IHRoZSBwcm9ncmFtLA0KPiA+ID4gPiB3aGljaCBtYXkgaGF2ZSBhIG5lZ2F0aXZlIGltcGFjdCBv biB0aGUgcGVyZm9ybWFuY2UgaW4gYSBzaG9ydA0KPiA+ID4gPiB0aW1lLCBidXQgaW4gdGhlIGxv bmcgcnVuLCB0aGUgcGVyZm9ybWFuY2Ugd2lsbCBldmVudHVhbGx5IGNvbWUgYmFjay4NCj4gPiA+ ID4gRnVydGhlcm1vcmUsIG1heWJlIHdlIHNob3VsZCBwYXkgYXR0ZW50aW9uIHRvIHRoZSBwZXJm b3JtYW5jZSBpbg0KPiA+ID4gPiB0aGUgc3RhYmxlIHBlcmlvZCwgYW5kIHRyeSBvdXIgYmVzdCB0 byBlbnN1cmUgdGhlIGNvcnJlY3RuZXNzIG9mDQo+ID4gPiA+IHRoZSBwcm9ncmFtIGluIGNhc2Ug b2YNCj4gPiA+IGVtZXJnZW5jaWVzLg0KPiA+ID4NCj4gPiA+IElmIHdlIGhhdmUgc29tZSBtYnVm cyBzdGlsbCBhbGxvY2F0ZWQgaW4gbWVtb3J5IGJlaW5nIGZyZWVkIC0gdGhlcmUNCj4gPiA+IGlz IG5vdGhpbmcgdG8gc2F5IGFib3V0IGNvcnJlY3RuZXNzLCBpdCBpcyB0b3RhbGx5IGluY29ycmVj dC4gSW4gbXkNCj4gPiA+IG9waW5pb24sIHdlIHNob3VsZCBub3QgdGhpbmsgaG93IHRvIG1pdGln YXRlIHRoaXMgaW5jb3JyZWN0DQo+ID4gPiBiZWhhdmlvciwgd2Ugc2hvdWxkIG5vdCBlbmNvdXJh Z2UgYXBwbGljYXRpb24gZGV2ZWxvcGVycyB0byBmb2xsb3cNCj4gPiA+IHRoZSB3cm9uZw0KPiA+ IGFwcHJvYWNoZXMuDQo+ID4gPg0KPiA+ID4gV2l0aCBiZXN0IHJlZ2FyZHMsDQo+ID4gPiBTbGF2 YQ0KPiA+ID4NCj4gPiA+ID4NCj4gPiA+ID4gQmVzdCBSZWdhcmRzDQo+ID4gPiA+IEZlaWZlaQ0K PiA+ID4gPg0KPiA+ID4gPiA+IFdpdGggYmVzdCByZWdhcmRzLA0KPiA+ID4gPiA+IFNsYXZhDQo+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiA+ ID4gPiBGcm9tOiBGZWlmZWkgV2FuZyA8ZmVpZmVpLndhbmcyQGFybS5jb20+DQo+ID4gPiA+ID4g PiBTZW50OiBUaHVyc2RheSwgTWFyY2ggMTgsIDIwMjEgOToxOQ0KPiA+ID4gPiA+ID4gVG86IE1h dGFuIEF6cmFkIDxtYXRhbkBudmlkaWEuY29tPjsgU2hhaGFmIFNodWxlcg0KPiA+ID4gPiA+ID4g PHNoYWhhZnNAbnZpZGlhLmNvbT47IFNsYXZhIE92c2lpZW5rbw0KPiA+ID4gPiA+ID4gPHZpYWNo ZXNsYXZvQG52aWRpYS5jb20+OyBZb25nc2VvayBLb2ggPHlza29oQG1lbGxhbm94LmNvbT4NCj4g PiA+ID4gPiA+IENjOiBkZXZAZHBkay5vcmc7IG5kQGFybS5jb207IEZlaWZlaSBXYW5nDQo+ID4g PiA8ZmVpZmVpLndhbmcyQGFybS5jb20+Ow0KPiA+ID4gPiA+ID4gc3RhYmxlQGRwZGsub3JnOyBS dWlmZW5nIFdhbmcgPHJ1aWZlbmcud2FuZ0Bhcm0uY29tPg0KPiA+ID4gPiA+ID4gU3ViamVjdDog W1BBVENIIHYxIDMvNF0gbmV0L21seDU6IGZpeCByZWJ1aWxkIGJ1ZyBmb3IgTWVtb3J5DQo+ID4g PiA+ID4gPiBSZWdpb24gY2FjaGUNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiAnZGV2X2dlbicg aXMgYSB2YXJpYWJsZSB0byBpbmZvcm0gb3RoZXIgY29yZXMgdG8gZmx1c2ggdGhlaXINCj4gPiA+ ID4gPiA+IGxvY2FsIGNhY2hlIHdoZW4gZ2xvYmFsIGNhY2hlIGlzIHJlYnVpbHQuDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gSG93ZXZlciwgaWYgJ2Rldl9nZW4nIGlzIHVwZGF0ZWQgYWZ0ZXIg Z2xvYmFsIGNhY2hlIGlzDQo+ID4gPiA+ID4gPiByZWJ1aWx0LCBvdGhlciBjb3JlcyBtYXkgbG9h ZCBhIHdyb25nIG1lbW9yeSByZWdpb24gbGtleSB2YWx1ZQ0KPiA+ID4gPiA+ID4gZnJvbSBvbGQg bG9jYWwNCj4gPiA+ID4gY2FjaGUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVGltZXNsb3Qg ICAgICAgIG1haW4gY29yZSAgICAgICAgICAgICAgIHdvcmtlciBjb3JlDQo+ID4gPiA+ID4gPiAg IDEgICAgICAgICByZWJ1aWxkIGdsb2JhbCBjYWNoZQ0KPiA+ID4gPiA+ID4gICAyICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWQgdW5jaGFuZ2VkIGRldl9nZW4NCj4gPiA+ID4g PiA+ICAgMyAgICAgICAgICAgIHVwZGF0ZSBkZXZfZ2VuDQo+ID4gPiA+ID4gPiAgIDQgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9vayB1cCBvbGQgbG9jYWwgY2FjaGUNCj4gPiA+ ID4gPiA+DQo+ID4gPiA+ID4gPiBGcm9tIHRoZSBleGFtcGxlIGFib3ZlLCB3ZSBjYW4gc2VlIHRo YXQgdGhvdWdoIGdsb2JhbCBjYWNoZSBpcw0KPiA+ID4gPiA+ID4gcmVidWlsdCwgZHVlIHRvIHRo YXQgZGV2X2dlbiBpcyBub3QgdXBkYXRlZCwgdGhlIHdvcmtlciBjb3JlDQo+ID4gPiA+ID4gPiBt YXkgbG9vayB1cCBvbGQgY2FjaGUgdGFibGUgYW5kIHJlY2VpdmUgYSB3cm9uZyBtZW1vcnkgcmVn aW9uDQo+IGxrZXkgdmFsdWUuDQo+ID4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gVG8gZml4IHRoaXMs IHVwZGF0aW5nICdkZXZfZ2VuJyBzaG91bGQgYmUgbW92ZWQgYmVmb3JlDQo+ID4gPiA+ID4gPiBy ZWJ1aWxkaW5nIGdsb2JhbCBjYWNoZSB0byBpbmZvcm0gd29ya2VyIGNvcmVzIHRvIGZsdXNoIHRo ZWlyDQo+ID4gPiA+ID4gPiBsb2NhbCBjYWNoZSB3aGVuIGdsb2JhbCBjYWNoZSBzdGFydCByZWJ1 aWxkaW5nLiBBbmQgd21iIGNhbg0KPiA+ID4gPiA+ID4gZW5zdXJlIHRoZSBzZXF1ZW5jZSBvZiB0 aGlzDQo+ID4gPiA+ID4gcHJvY2Vzcy4NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBGaXhlczog OTc0ZjFlN2VmMTQ2ICgibmV0L21seDU6IGFkZCBuZXcgbWVtb3J5IHJlZ2lvbg0KPiA+ID4gPiA+ ID4gc3VwcG9ydCIpDQo+ID4gPiA+ID4gPiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4gPiA+ID4g Pg0KPiA+ID4gPiA+ID4gU3VnZ2VzdGVkLWJ5OiBSdWlmZW5nIFdhbmcgPHJ1aWZlbmcud2FuZ0Bh cm0uY29tPg0KPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogRmVpZmVpIFdhbmcgPGZlaWZlaS53 YW5nMkBhcm0uY29tPg0KPiA+ID4gPiA+ID4gUmV2aWV3ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8cnVp ZmVuZy53YW5nQGFybS5jb20+DQo+ID4gPiA+ID4gPiAtLS0NCj4gPiA+ID4gPiA+ICBkcml2ZXJz L25ldC9tbHg1L21seDVfbXIuYyB8IDM3DQo+ID4gPiA+ID4gPiArKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDE3IGluc2Vy dGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IGRpZmYg LS1naXQgYS9kcml2ZXJzL25ldC9tbHg1L21seDVfbXIuYw0KPiA+ID4gPiA+ID4gYi9kcml2ZXJz L25ldC9tbHg1L21seDVfbXIuYyBpbmRleA0KPiA+ID4gPiA+ID4gZGE0ZTkxZmMyLi43Y2UxZDNl NjQgMTAwNjQ0DQo+ID4gPiA+ID4gPiAtLS0gYS9kcml2ZXJzL25ldC9tbHg1L21seDVfbXIuYw0K PiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X21yLmMNCj4gPiA+ID4gPiA+ IEBAIC0xMDMsMjAgKzEwMywxOCBAQCBtbHg1X21yX21lbV9ldmVudF9mcmVlX2NiKHN0cnVjdA0K PiA+ID4gPiA+ID4gbWx4NV9kZXZfY3R4X3NoYXJlZCAqc2gsDQo+ID4gPiA+ID4gPiAgCQlyZWJ1 aWxkID0gMTsNCj4gPiA+ID4gPiA+ICAJfQ0KPiA+ID4gPiA+ID4gIAlpZiAocmVidWlsZCkgew0K PiA+ID4gPiA+ID4gLQkJbWx4NV9tcl9yZWJ1aWxkX2NhY2hlKCZzaC0+c2hhcmVfY2FjaGUpOw0K PiA+ID4gPiA+ID4gKwkJKytzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbjsNCj4gPiA+ID4gPiA+ICsJ CURFQlVHKCJicm9hZGNhc3RpbmcgbG9jYWwgY2FjaGUgZmx1c2gsIGdlbj0lZCIsDQo+ID4gPiA+ ID4gPiArCQkJc2gtPnNoYXJlX2NhY2hlLmRldl9nZW4pOw0KPiA+ID4gPiA+ID4gKw0KPiA+ID4g PiA+ID4gIAkJLyoNCj4gPiA+ID4gPiA+ICAJCSAqIEZsdXNoIGxvY2FsIGNhY2hlcyBieSBwcm9w YWdhdGluZyBpbnZhbGlkYXRpb24NCj4gPiBhY3Jvc3MgY29yZXMuDQo+ID4gPiA+ID4gPiAtCQkg KiBydGVfc21wX3dtYigpIGlzIGVub3VnaCB0byBzeW5jaHJvbml6ZSB0aGlzDQo+ID4gZXZlbnQu IElmDQo+ID4gPiA+ID4gPiBvbmUgb2YNCj4gPiA+ID4gPiA+IC0JCSAqIGZyZWVkIG1lbXNlZ3Mg aXMgc2VlbiBieSBvdGhlciBjb3JlLCB0aGF0IG1lYW5zDQo+ID4gdGhlDQo+ID4gPiA+ID4gPiBt ZW1zZWcNCj4gPiA+ID4gPiA+IC0JCSAqIGhhcyBiZWVuIGFsbG9jYXRlZCBieSBhbGxvY2F0b3Is IHdoaWNoIHdpbGwgY29tZQ0KPiA+IGFmdGVyIHRoaXMNCj4gPiA+ID4gPiA+IC0JCSAqIGZyZWUg Y2FsbC4gVGhlcmVmb3JlLCB0aGlzIHN0b3JlIGluc3RydWN0aW9uDQo+ID4gKGluY3JlbWVudGlu Zw0KPiA+ID4gPiA+ID4gLQkJICogZ2VuZXJhdGlvbiBiZWxvdykgd2lsbCBiZSBndWFyYW50ZWVk IHRvIGJlIHNlZW4NCj4gPiBieSBvdGhlcg0KPiA+ID4gPiA+ID4gY29yZQ0KPiA+ID4gPiA+ID4g LQkJICogYmVmb3JlIHRoZSBjb3JlIHNlZXMgdGhlIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkuDQo+ ID4gPiA+ID4gPiArCQkgKiBydGVfc21wX3dtYigpIGlzIHRvIGtlZXAgdGhlIG9yZGVyIHRoYXQg ZGV2X2dlbg0KPiA+ID4gPiA+ID4gdXBkYXRlZCBiZWZvcmUNCj4gPiA+ID4gPiA+ICsJCSAqIHJl YnVpbGRpbmcgZ2xvYmFsIGNhY2hlLiBUaGVyZWZvcmUsIG90aGVyIGNvcmUgY2FuDQo+ID4gZmx1 c2gNCj4gPiA+ID4gPiA+IHRoZWlyDQo+ID4gPiA+ID4gPiArCQkgKiBsb2NhbCBjYWNoZSBvbiB0 aW1lLg0KPiA+ID4gPiA+ID4gIAkJICovDQo+ID4gPiA+ID4gPiAtCQkrK3NoLT5zaGFyZV9jYWNo ZS5kZXZfZ2VuOw0KPiA+ID4gPiA+ID4gLQkJREVCVUcoImJyb2FkY2FzdGluZyBsb2NhbCBjYWNo ZSBmbHVzaCwgZ2VuPSVkIiwNCj4gPiA+ID4gPiA+IC0JCSAgICAgIHNoLT5zaGFyZV9jYWNoZS5k ZXZfZ2VuKTsNCj4gPiA+ID4gPiA+ICAJCXJ0ZV9zbXBfd21iKCk7DQo+ID4gPiA+ID4gPiArCQlt bHg1X21yX3JlYnVpbGRfY2FjaGUoJnNoLT5zaGFyZV9jYWNoZSk7DQo+ID4gPiA+ID4gPiAgCX0N Cj4gPiA+ID4gPiA+ICAJcnRlX3J3bG9ja193cml0ZV91bmxvY2soJnNoLT5zaGFyZV9jYWNoZS5y d2xvY2spOw0KPiA+ID4gPiA+ID4gIH0NCj4gPiA+ID4gPiA+IEBAIC00MDcsMjAgKzQwNSwxOSBA QCBtbHg1X2RtYV91bm1hcChzdHJ1Y3QgcnRlX3BjaV9kZXZpY2UNCj4gPiA+ID4gKnBkZXYsDQo+ ID4gPiA+ID4gdm9pZA0KPiA+ID4gPiA+ID4gKmFkZHIsDQo+ID4gPiA+ID4gPiAgCW1seDVfbXJf ZnJlZShtciwgc2gtPnNoYXJlX2NhY2hlLmRlcmVnX21yX2NiKTsNCj4gPiA+ID4gPiA+ICAJREVC VUcoInBvcnQgJXUgcmVtb3ZlIE1SKCVwKSBmcm9tIGxpc3QiLCBkZXYtPmRhdGEtDQo+ID4gPnBv cnRfaWQsDQo+ID4gPiA+ID4gPiAgCSAgICAgICh2b2lkICopbXIpOw0KPiA+ID4gPiA+ID4gLQlt bHg1X21yX3JlYnVpbGRfY2FjaGUoJnNoLT5zaGFyZV9jYWNoZSk7DQo+ID4gPiA+ID4gPiArDQo+ ID4gPiA+ID4gPiArCSsrc2gtPnNoYXJlX2NhY2hlLmRldl9nZW47DQo+ID4gPiA+ID4gPiArCURF QlVHKCJicm9hZGNhc3RpbmcgbG9jYWwgY2FjaGUgZmx1c2gsIGdlbj0lZCIsDQo+ID4gPiA+ID4g PiArCQlzaC0+c2hhcmVfY2FjaGUuZGV2X2dlbik7DQo+ID4gPiA+ID4gPiArDQo+ID4gPiA+ID4g PiAgCS8qDQo+ID4gPiA+ID4gPiAgCSAqIEZsdXNoIGxvY2FsIGNhY2hlcyBieSBwcm9wYWdhdGlu ZyBpbnZhbGlkYXRpb24gYWNyb3NzIGNvcmVzLg0KPiA+ID4gPiA+ID4gLQkgKiBydGVfc21wX3dt YigpIGlzIGVub3VnaCB0byBzeW5jaHJvbml6ZSB0aGlzIGV2ZW50LiBJZg0KPiA+IG9uZSBvZg0K PiA+ID4gPiA+ID4gLQkgKiBmcmVlZCBtZW1zZWdzIGlzIHNlZW4gYnkgb3RoZXIgY29yZSwgdGhh dCBtZWFucyB0aGUNCj4gPiBtZW1zZWcNCj4gPiA+ID4gPiA+IC0JICogaGFzIGJlZW4gYWxsb2Nh dGVkIGJ5IGFsbG9jYXRvciwgd2hpY2ggd2lsbCBjb21lIGFmdGVyIHRoaXMNCj4gPiA+ID4gPiA+ IC0JICogZnJlZSBjYWxsLiBUaGVyZWZvcmUsIHRoaXMgc3RvcmUgaW5zdHJ1Y3Rpb24gKGluY3Jl bWVudGluZw0KPiA+ID4gPiA+ID4gLQkgKiBnZW5lcmF0aW9uIGJlbG93KSB3aWxsIGJlIGd1YXJh bnRlZWQgdG8gYmUgc2VlbiBieSBvdGhlcg0KPiA+IGNvcmUNCj4gPiA+ID4gPiA+IC0JICogYmVm b3JlIHRoZSBjb3JlIHNlZXMgdGhlIG5ld2x5IGFsbG9jYXRlZCBtZW1vcnkuDQo+ID4gPiA+ID4g PiArCSAqIHJ0ZV9zbXBfd21iKCkgaXMgdG8ga2VlcCB0aGUgb3JkZXIgdGhhdCBkZXZfZ2VuDQo+ ID4gdXBkYXRlZA0KPiA+ID4gPiA+ID4gYmVmb3JlDQo+ID4gPiA+ID4gPiArCSAqIHJlYnVpbGRp bmcgZ2xvYmFsIGNhY2hlLiBUaGVyZWZvcmUsIG90aGVyIGNvcmUgY2FuIGZsdXNoDQo+ID4gdGhl aXINCj4gPiA+ID4gPiA+ICsJICogbG9jYWwgY2FjaGUgb24gdGltZS4NCj4gPiA+ID4gPiA+ICAJ ICovDQo+ID4gPiA+ID4gPiAtCSsrc2gtPnNoYXJlX2NhY2hlLmRldl9nZW47DQo+ID4gPiA+ID4g PiAtCURFQlVHKCJicm9hZGNhc3RpbmcgbG9jYWwgY2FjaGUgZmx1c2gsIGdlbj0lZCIsDQo+ID4g PiA+ID4gPiAtCSAgICAgIHNoLT5zaGFyZV9jYWNoZS5kZXZfZ2VuKTsNCj4gPiA+ID4gPiA+ICAJ cnRlX3NtcF93bWIoKTsNCj4gPiA+ID4gPiA+ICsJbWx4NV9tcl9yZWJ1aWxkX2NhY2hlKCZzaC0+ c2hhcmVfY2FjaGUpOw0KPiA+ID4gPiA+ID4gIAlydGVfcndsb2NrX3JlYWRfdW5sb2NrKCZzaC0+ c2hhcmVfY2FjaGUucndsb2NrKTsNCj4gPiA+ID4gPiA+ICAJcmV0dXJuIDA7DQo+ID4gPiA+ID4g PiAgfQ0KPiA+ID4gPiA+ID4gLS0NCj4gPiA+ID4gPiA+IDIuMjUuMQ0KDQo=