From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.9 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id BE065C433E0 for ; Tue, 2 Jun 2020 10:25:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 92FF4206C3 for ; Tue, 2 Jun 2020 10:25:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=amazon.com header.i=@amazon.com header.b="Aau4V9uV" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727032AbgFBKZ4 (ORCPT ); Tue, 2 Jun 2020 06:25:56 -0400 Received: from smtp-fw-2101.amazon.com ([72.21.196.25]:7138 "EHLO smtp-fw-2101.amazon.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726959AbgFBKZe (ORCPT ); Tue, 2 Jun 2020 06:25:34 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1591093533; x=1622629533; h=from:to:cc:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version:subject; bh=FaVXbiGiX3lTiJR/ljOHBtatAvQt9ejzaEpazLIsFmw=; b=Aau4V9uVEszEXMDlZPVH8DeRFgMwZUmZu01zxWkHxdRnEIvh+C6WlslW KByxgp4/FqW11oxotq5YYbX9DARhnvwBEV68vVDyj4WU4+YBxJD5ffsmV dvE200pxhQ9IbSFCqBnt6xnHnrVf80Q39ru2W9kzdh+zcVo652GOfwFYM Y=; IronPort-SDR: Rq5jKPVQpaXWimP7UMGlOzpW0+NqtrLTj6N3l12h0czcgOO5Oo0FDoHqPvUmd8nx/p9uv1+sr8 JODw8ZKsNnCg== X-IronPort-AV: E=Sophos;i="5.73,463,1583193600"; d="scan'208";a="33982691" Subject: Re: [GIT PULL] x86/mm changes for v5.8 Thread-Topic: [GIT PULL] x86/mm changes for v5.8 Received: from iad12-co-svc-p1-lb1-vlan2.amazon.com (HELO email-inbound-relay-2a-22cc717f.us-west-2.amazon.com) ([10.43.8.2]) by smtp-border-fw-out-2101.iad2.amazon.com with ESMTP; 02 Jun 2020 10:25:20 +0000 Received: from EX13MTAUWB001.ant.amazon.com (pdx4-ws-svc-p6-lb7-vlan3.pdx.amazon.com [10.170.41.166]) by email-inbound-relay-2a-22cc717f.us-west-2.amazon.com (Postfix) with ESMTPS id 7EFDDA22AB; Tue, 2 Jun 2020 10:25:18 +0000 (UTC) Received: from EX13D01UWB001.ant.amazon.com (10.43.161.75) by EX13MTAUWB001.ant.amazon.com (10.43.161.249) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 2 Jun 2020 10:25:18 +0000 Received: from EX13D01UWB002.ant.amazon.com (10.43.161.136) by EX13d01UWB001.ant.amazon.com (10.43.161.75) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Tue, 2 Jun 2020 10:25:17 +0000 Received: from EX13D01UWB002.ant.amazon.com ([10.43.161.136]) by EX13d01UWB002.ant.amazon.com ([10.43.161.136]) with mapi id 15.00.1497.006; Tue, 2 Jun 2020 10:25:17 +0000 From: "Singh, Balbir" To: "torvalds@linux-foundation.org" CC: "mingo@kernel.org" , "linux-kernel@vger.kernel.org" , "a.p.zijlstra@chello.nl" , "tglx@linutronix.de" , "akpm@linux-foundation.org" , "luto@kernel.org" , "bp@alien8.de" , "benh@kernel.crashing.org" Thread-Index: AQHWOIadEe1HenuP9E+jBqaASoyw66jFHyiA Date: Tue, 2 Jun 2020 10:25:17 +0000 Message-ID: <7e5f2a555a0d1198d7c5713f1d4810c3086e1602.camel@amazon.com> References: <20200601170102.GA1346815@gmail.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.43.160.100] Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gTW9uLCAyMDIwLTA2LTAxIGF0IDE5OjM1IC0wNzAwLCBMaW51cyBUb3J2YWxkcyB3cm90ZToN Cj4gDQo+IE9uIE1vbiwgSnVuIDEsIDIwMjAgYXQgNjowNiBQTSBCYWxiaXIgU2luZ2ggPHNibGJp ckBhbWF6b24uY29tPiB3cm90ZToNCj4gPiANCj4gPiBJIHRoaW5rIGFwcHMgY2FuIGRvIHRoaXMg aW5kZXBlbmRlbnRseSB0b2RheSBhcyBpbiBkbyB0aGUgZmx1c2gNCj4gPiB2aWEgc29mdHdhcmUg ZmFsbGJhY2sgaW4gdGhlIGFwcCB0aGVtc2VsdmVzLg0KPiANCj4gU3VyZSwgYnV0IHRoZXkgY2Fu J3QgZm9yY2UgdGhlIGtlcm5lbCB0byBkbyBjcmF6eSB0aGluZ3MgZm9yIGV2ZXJ5IHRhc2sgc3dp dGNoLg0KDQpPbiBldmVyeSBtbSBzd2l0Y2gsIHllcyA6KSANCg0KPiANCj4gPiBCdXQgSSBzZWUg eW91ciBjb25jZXJuIHdpdGgNCj4gPiByZXNwZWN0IHRvIGFuIG92ZXJhbGwgYWRtaW4gb3ZlcnJp ZGUsIEkgdGhvdWdodCBhYm91dCBpdCwgYnV0IEkgc3RvcHBlZA0KPiA+IGJlY2F1c2Ugb2YgdGhl IHJlYXNvbiBhYm92ZS4NCj4gDQo+IFNvIG15IHJlYWwgY29uY2VybiBpcyB0aGF0IEkgaGFkIGEg aGFyZCB0aW1lIGZvbGxvd2luZyBhbGwgdGhlIGxvZ2ljLA0KPiBidXQgaXQgX2xvb2tlZF8gdG8g bWUgbGlrZSBpdCBlbmRzIHVwIGRvaW5nIHRoZSBmbHVzaGVzIGV2ZW4gaWYgU01UIGlzDQo+IGVu YWJsZWQsIGZvciBleGFtcGxlLg0KPiANCj4gQW5kIHRoYXQncyBub3QgYW4gImFkbWluIG92ZXJy aWRlIi4gVGhhdCdzIGp1c3QgYSBmdWxsIG5vLW5vLiBJZiBTTVQNCj4gaXMgb24sIHRoZW4gd2Ug ZG9uJ3QgZG8gYW55IEwxRCQgZmx1c2hpbmcgaW4gdGhlIGtlcm5lbCwgYmVjYXVzZSBpdA0KPiB3 b3VsZCBuZSBlbnRpcmVseSBwb2ludGxlc3MuDQoNCkp1c3QgdG8gY2xhcmlmeSBTTVQgYXMgaW4g U01UIG9uIHRoZSBjdXJyZW50IGNvcmUsIG5vdCB0aGUgZW50aXJlIHN5c3RlbS4NCg0KPiANCj4g QnV0IHRoaXMgYWxsIHF1aXRlIHBvc3NpYmx5IGludGVyYWN0cyB3aXRoIGFsbCB0aGUgc3VidGxl IHN0YXRpYw0KPiBicmFuY2hlcyB3ZSBoYXZlIGluIHRoaXMgc2FtZSBhcmVhLCBzbyAuLi4NCj4g DQo+ID4gVGhlIHNvZnR3YXJlIGZhbGxiYWNrIHdhcyB0aGVyZSBhbmQgaXMgdGhlIHNhbWUgYWxn b3JpdGhtIHRoYXQgd2UgdXNlDQo+ID4gZm9yIEwxVEYuIFdlIGNvdWxkIHBvdGVudGlhbGx5IHJl bW92ZSB0aGUgc29mdHdhcmUgZmFsbGJhY2sgaWYgdGhlcmUNCj4gPiBpcyBhIGNvbmNlcm4sIGhh dmluZyB0aGUgc29mdHdhcmUgZmFsbGJhY2sgcHJvdmlkZXMgYSBtZWNoYW5pc20NCj4gPiBpbmRl cGVuZGVudCBvZiB0aGUgbWljcm9jb2RlIHZlcnNpb24gc2ltaWxhciB0byBMMVRGLg0KPiANCj4g U28gdGhlIFNXIGZhbGxiYWNrIHJhaXNlcyBteSBoYWNrbGVzLCBiZWNhdXNlIHdlIGhhZCB0aGUg ZXhhY3Qgc2FtZQ0KPiBraW5kIG9mIG5vbi1hcmNoaXRlY3RlZCBzb2Z0d2FyZSBmYWxsYmFjayBm b3IgY2xlYXJpbmcgdGhlIGRhdGENCj4gYnVmZmVycyBmb3IgTURTLg0KPiANCj4gQW5kIHRoYXQg b25lIHR1cm5lZCBvdXQgdG8gYmUgbm90IG9ubHkgaW5jcmVkaWJseSBleHBlbnNpdmUsIGJ1dCBp dA0KPiBkaWRuJ3Qgd29yayByZWxpYWJseSBhbnl3YXksIGFuZCB3YXMgcmVhbGx5IG9ubHkgd3Jp dHRlbiBmb3Igb25lDQo+IG1pY3JvYXJjaGl0ZWN0dXJlLg0KPiANCj4gSXQncyBub3QgY2xlYXIg dGhhdCBhIChnZW5lcmljKSBTVyByb3V0aW5lIF9jYW5fIHJlbGlhYmx5IGZsdXNoIHRoZQ0KPiBM MUQkIHNpbXBseSBiZWNhdXNlIG9mIHJlcGxhY2VtZW50IHBvbGljeSBpc3N1ZXMgYW5kIHBvc3Np Ymx5IEQkDQo+IGNhY2hlbGluZSBtYW5hZ2VtZW50IHNldHRpbmdzLg0KPiANCj4gQWdhaW4sIEkn bSBzdXJlIHRoYXQgZm9yIGFueSBwYXJ0aWN1bGFyIG1pY3JvYXJjaGl0ZWN0dXJlLCB3cml0aW5n IGENCj4gU1cgZmFsbGJhY2sgaXMgcG9zc2libGUuDQo+IA0KPiBBbmQgSSBzdXNwZWN0IHRoYXQg Zm9yIG1vc3Qgb2YgdGhlbSwgImZpbGwgZW5vdWdoIG9mIHRoZSBjYWNoZSIgZW5kcw0KPiB1cCBt YWtpbmcgdGhpbmdzIHZlcnkgaGFyZCB0byB0cmlnZ2VyIGluIHByYWN0aWNlLCBidXQgYXQgYSB2 ZXJ5IGhpZ2gNCj4gY29zdC4NCg0KWWVzLCBJIGFncmVlIHdpdGggdGhhdCwgd2UgY291bGQgdHVy biBvZmYgdGhlIGZhbGxiYWNrIGlmIHRoYXQgaGVscHMNCmFuZCB3ZSBjYW4gaGF2ZSB0aGlzIGZl YXR1cmUgZW5hYmxlZCBmb3Igd2hlbiB3ZSBoYXZlIHRoZSBNU1IgdG8gZG8gdGhlDQpMMUQgZmx1 c2guDQoNCj4gDQo+ID4gPiBJIGhhdmUgYSBoYXJkIHRpbWUgZm9sbG93aW5nIHdoZXRoZXIgdGhp cyBtaWdodCBhbGwgZW5kIHVwIGJlaW5nDQo+ID4gPiBwcmVkaWNhdGVkIG9uIHRoZSBTVElCUCBz dGF0aWMgYnJhbmNoIGNvbmRpdGlvbmFscyBhbmQgbWlnaHQgdGh1cyBhdA0KPiA+ID4gbGVhc3Qg YmUgbGltaXRlZCBvbmx5IHRvIENQVSdzIHRoYXQgaGF2ZSB0aGUgcHJvYmxlbSBpbiB0aGUgZmly c3QNCj4gPiA+IHBsYWNlLg0KPiA+IA0KPiA+IE5vLCB0aGlzIGlzIGF0IHRoZSBtb21lbnQgcmVz dHJpY3RlZCB0byBqdXN0IEludGVsIENQVXMgYW5kIGl0IGlzIGRlc2lnbmVkDQo+ID4gYXMgYSBn ZW5lcmljIGZhbGxiYWNrIG1lY2hhbmlzbSBmb3IgaXNzdWVzIGludm9sdmluZyBzcGVjdWxhdGlv biBhbmQgTDFEDQo+ID4gZmx1c2ggZm9yIGV4YW1wbGUgQ1ZFLTIwMjAtMDU1MFsxXS4gVGhpcyBt ZWNoYW5pc20gYWRkcmVzc2VzIGlzc3VlcyBiZXlvbmQNCj4gPiB3aGF0IFNUSUJQIGFkZHJlc3Nl cy4NCj4gDQo+IE9rLCBzbyB0aGF0IHdhcyBoYXJkIHRvIHNlZS4NCj4gDQo+IFdoYXQgaXMgaXQg dGhhdCBkaXNhYmxlcyBpdCBleGFjdGx5PyBJJ20gb2sgd2l0aCB0aGUgY29uY2VwdCwgYnV0IGl0 DQo+IG5lZWRzIHRvIGJlIGNsZWFybHkgdGFyZ2V0ZWQsIGFuZCB0aGUgdGFyZ2V0IHdhc24ndCBj bGVhciB0byBtZS4gSW4NCj4gZmFjdCwgZXZlcnl0aGluZyBpbiB0aGUgZG9jcyBhbmQgY2hhbmds b2cgaW1wbGllZCB0aGF0IHRoZSB0YXJnZXQgd2FzDQo+ICINCg0KSXQgYWRkcmVzc2VzIGlzc3Vl cyBhc3NvY2lhdGVkIHdpdGggIlNub29wLUFzc2lzdGVkIEwxRCBTYW1wbGluZyIuIElzIHRoYXQN CndoYXQgeW91IHJlZmVycmVkIHRvIGFzIHRhcmdldD8NCg0KPiANCj4gPiA+IEJlY2F1c2UgSSBk b24ndCB3YW50IGEgcmFuZG9tICJJIGNhbiBtYWtlIHRoZSBrZXJuZWwgZG8gc3R1cGlkIHRoaW5n cyINCj4gPiA+IGZsYWcgZm9yIHBlb3BsZSB0byBvcHQgaW50by4gSSB0aGluayBpdCBuZWVkcyBh IGRvdWJsZSBvcHQtaW4uDQo+ID4gPiANCj4gPiANCj4gPiBBcmUgeW91IGhhcHB5IGZvciB0aGlz IGNvbnRyb2xsZWQgYnkgQ0FQX1NZU19BRE1JTiBvciBhcmUgeW91IHN1Z2dlc3RpbmcNCj4gPiBh IHN5c2ZzIG92ZXJyaWRlIGJ5IHRoZSBhZG1pbmlzdHJhdG9yIHRvIGNvbXBsZXRlbHkgZGlzYWJs ZSB0aGlzPw0KPiANCj4gQXQgYSBfbWluaW11bV8sIEkgd2FudCB0byBtYWtlIHN1cmUgdGhpcyBj b2RlIG5ldmVyIHBvc3NpYmx5IGV2ZXINCj4gc3RhcnRzIGZsdXNoaW5nIGFueXRoaW5nIGlmIFNN VCBpcyBvbi4NCj4gDQo+IFRoYXQgbWF5IGJlIHRoZSBjYXNlIGFscmVhZHkuIFRoZSBuYXJyb3cg dHdpc3R5IG1hemVzIGhlcmUgZnJvbQ0KPiAiZW5hYmxlIHRoaXMiIHRvICJkbyB0aGUgZmx1c2gi IHdlcmUgdG9vIGhhcmQgdG8gZm9sbG93IGZvciBtZSwgd2hpY2gNCj4gaXMgd2h5IEknbSBhc2tp bmcgZm9yIG1vcmUgY2xhcmlmaWNhdGlvbi4NCj4gDQo+IEFuZCB5ZXMsIEkgZGlkIHJlYWQgdGhl IGRvY3VtZW50YXRpb24geW91IHBvaW50IHRvLiBUaGF0IGRpZCBub3QNCj4gY2xhcmlmeSBhbnl0 aGluZyBhdCBhbGwuDQo+IA0KPiBTbyB0byBwdXQgdGhpcyBpbiB2ZXJ5IGNsZWFyIHRlcm1zOg0K PiANCj4gIC0gd2hhdCBoYXBwZW5zIGlmIFNNVCBpcyBvbiwgYW5kIGEgcHJvY2VzcyBkb2VzDQo+ ICJwcmN0bChQUl9TRVRfU1BFQ1VMQVRJT05fQ1RSTCwgUFJfU1BFQ19MMURfRkxVU0hfT1VULCBQ Ul9TUEVDX0VOQUJMRSwNCj4gMCwgMCk7Ig0KPiANCj4gQmVjYXVzZSBpZiB0aGUgYW5zd2VyIGlz ICJ0aGUga2VybmVsIHN0YXJ0cyBmbHVzaGluZyB0aGUgTDFEIGF0DQo+IGNvbnRleHQgc3dpdGNo ZXMiIHRoZW4gSSByZWZ1c2UgdG8gcHVsbCB0aGlzLg0KPiANCj4gV2h5PyBCZWNhdXNlIGl0J3Mg anVzdCBhbiBpbmNyZWRpYmx5IHN0dXBpZCB3YXN0ZSBvZiB0aW1lIGFuZCBlZmZvcnQNCj4gdG8g ZG8gdGhhdCwgYW5kIEkgY2FuIHNlZSBzb21lIHBvb3IgaGFwbGVzcyBzc2ggZGV2ZWxvcGVyIHNh eWluZyAieWVzLA0KPiBJIHNob3VsZCBlbmFibGUgdGhpcyB0aGluZyBiZWNhdXNlIHNzaCBpcyB2 ZXJ5IHNwZWNpYWwiLCBhbmQgdGhlbiBzc2gNCj4ganVzdCBzdGFydHMgd2FzdGluZyB0aW1lIG9u IHNvbWV0aGluZyB0aGF0IGRvZXNuJ3QgYWN0dWFsbHkgaGVscC4NCj4gDQo+IFNlZSB3aGF0IEkn bSBzYXlpbmc/IEkgd2FudCB0byBrbm93IHRoaXMgZmVhdHVyZSBpc24ndCBkb2luZyBjcmF6eQ0K PiB0aGluZ3MuIEFuZCAiZmx1c2ggTDFEJCBvbiBTTVQiIGlzIGNyYXp5LCBzaW5jZSBhbiBhdHRh Y2tlciB3b3VsZCBqdXN0DQo+IHNpdCBvbiBhIHNpYmxpbmcgY29yZSBhbmQgYXR0YWNrIHRoZSBM MSBjb250ZW50cyAqYmVmb3JlKiB0aGUgdGFzaw0KPiBzd2l0Y2ggaGFwcGVucy4NCj4gDQo+IEkg aGF2ZSBzb21lIG90aGVyIHF1ZXN0aW9ucyBhYm91dCB0aGlzIGFwcHJvYWNoIGluIHRoZSBmaXJz dCBwbGFjZS4gSQ0KPiBkb24ndCBzZWUgd2h5IGNvbnRleHQgc3dpdGNoIGlzIGV2ZW4gcmVsZXZh bnQsIGFuZCB3aHkgaXQgc2hvdWxkIGJlDQo+IHRoZSBwbGFjZSB3ZSBmbHVzaC4gVGhlIGtlcm5l bCBpcyB0cnVzdHdvcnRoeSBpbiB0aGlzIHNpdHVhdGlvbiwgYm90aA0KPiBiZWZvcmUgYW5kIGFm dGVyIHRoZSBjb250ZXh0IHN3aXRjaC4gU28gY29udGV4dCBzd2l0Y2ggbWFrZXMgbm8NCj4gZGlm ZmVyZW5jZSB3aGF0LXNvLWV2ZXIgZnJvbSBhIHNlY3VyaXR5IGRvbWFpbiB0cmFuc2ZlciBhbmds ZS4NCj4gDQo+IEFsc28sIHNob3VsZG4ndCB3ZSBhdm9pZCBmbHVzaGluZyBpZiB5b3UganVzdCBy dW4gYXMgdGhlIHNhbWUgdXNlciBhbGwNCj4gdGhlIHRpbWU/IElPVywgY29udGV4dCBzd2l0Y2gg aW4gaXRzZWxmIGlzbid0IHJlYWxseSByZWxldmFudCBhcyBhDQo+IHNlY3VyaXR5IGRvbWFpbiB0 cmFuc2ZlciwgYnV0IGl0ICppcyogcmVsZXZhbnQgaW4gdGhlIHNlbnNlIHRoYXQNCj4gc3dpdGNo aW5nIGZyb20gb25lIHVzZXIgdG8gYW5vdGhlciBpcyBhIHNpZ24gb2YgInVoaHVoLCBub3cgbWF5 YmUgSQ0KPiBzaG91bGQgYmUgY2FyZWZ1bCB3aGVuIHJldHVybmluZyB0byB1c2VyIG1vZGUiLg0K Pg0KIA0KVGhlIGV4YW1wbGUgeW91IGxpc3QgYWJvdmUsIHdpbGwgY2F1c2UgZmx1c2hpbmcgaWYg bW0gY29udGV4dCBzd2l0Y2hlcw0Kb24gdGhlIGNvcmUuIEkndmUgdGVzdGVkIHRoZSBpbXBsZW1l bnRhdGlvbiB3aXRoIHN1Y2ggYSBwcm9ncmFtIGFuZCBzZWVuDQpjb250ZXh0IHN3aXRjaGVzIG9u bHkgd2hlbiBhbm90aGVyIHRhc2sgKGRpZmZlcmVudCBtbSkgaXMgb24gdGhlIHNhbWUNCkNQVSBh cyB0aGUgb25lIHdpdGggdGhlIHByb2dyYW0gdGhhdCBuZWVkcyB0byBmbHVzaC4gTm9ybWFsbHkg b24gYW4gaWRsZQ0Kc3lzdGVtIHdoZXJlIG5vdGhpbmcgZWxzZSB3aXRoIGEgZGlmZmVyZW50IG1t IGdldHMgc2NoZWR1bGVkIG9uIHRoZSBzYW1lDQpjb3JlIGFzIHRoZSBwcm9ncmFtIHdhbnRpbmcg dG8gZmx1c2ggTDFELCBJIHNlZSBubyBmbHVzaGVzLg0KDQpPbiB0aGUgdXNlciBmcm9udCwgSSBh bSBub3Qgc28gc3VyZS4gQSB1c2VyIGNhbiBob3N0IG11bHRpcGxlIHRhc2tzIGFuZA0KaWYgb25l IG9mIHRoZW0gd2FzIGNvbXByb21pc2VkLCBpdCB3b3VsZCBiZSBiYWQgdG8gbGV0IGl0IGFsbG93 IHRoZSBsZWFrDQp0byBoYXBwZW4uIEZvciBleGFtcGxlIGlmIHRoZSBwbHVnaW4gaW4gYSBicm93 c2VyIGNvdWxkIGxlYWsgYSBzZWN1cml0eQ0Ka2V5IG9mIGEgc2VjdXJlIHNlc3Npb24sIHRoYXQg d291bGQgYmUgYmFkLg0KDQo+IElPVywgdGhpbmsgb2YgYSAicGlwZSBwaW5nLXBvbmciIHRlc3Qg cHJvZ3JhbS4gU2V0IHRoZSBmbGFnIGZvciAiSQ0KPiB3YW50IEwxRCQgY2FjaGUgZmx1c2hpbmci LiBSdW4gdGhlIHByb2dyYW0gd2l0aCBub3RoaW5nIGVsc2UNCj4gaGFwcGVuaW5nLCBhbmQgYSBf Z29vZF8gaW1wbGVtZW50YXRpb24gc2hvdWxkIG5ldmVyIGV2ZXIgY2FjaGUtZmx1c2gsDQo+IGJl Y2F1c2UgYXQgbm8gcG9pbnQgZGlkIHdlIGV2ZXIgZW50ZXIgdW50cnVzdGVkIHNwYWNlOiB3ZSB3 ZXJlIGVpdGhlcg0KPiBpbiB0aGUga2VybmVsIChub3QganVzdCBmb3IgdGhlIHN5c3RlbSBjYWxs cywgYnV0IGZvciBpZGxlIHRocmVhZHMpLA0KPiBvciB3ZSB3ZXJlIGluIHVzZXIgY29udGV4dCB0 aGF0IGhhZCB0aGUgcmlnaHQgdG8gc2VlIHRoZSBkYXRhIGFueXdheS4NCj4gDQo+IFNvIGRlc3Bp dGUgYXNraW5nIGZvciBhIEwxRCQgZmx1c2ggb24gY29udGV4dCBjaGFuZ2VzLCBzdWNoIGENCj4g cGluZy1wb25nIHRlc3QgcHJvZ3JhbSB0aGF0IGRvZXMgbWlsbGlvbnMgb2YgY29udGV4dCBzd2l0 Y2hlcyBwZXINCj4gc2Vjb25kIHNob3VsZG4ndCBhY3R1YWxseSBldmVyIGNhdXNlIGEgY2FjaGUg Zmx1c2gsIGJlY2F1c2UgdGhlcmUgd2FzDQo+IG5ldmVyIGFueSBwb2ludC4NCj4gDQo+IElPVywg d2hhdCBtaXRpZ2F0aW9ucyBhcmUgaW4gcGxhY2UgZm9yIHRoaXMgbm90IGRvaW5nIHVubmVjZXNz YXJ5DQo+IGNhY2hlIGZsdXNoZXMsIGVpdGhlciBiZWNhdXNlIHRoZXkgYXJlIGZ1bmRhbWVudGFs bHkgcG9pbnRsZXNzICh0aGUNCj4gbWFjaGluZSBoYXMgU01UIGVuYWJsZWQpIG9yIGJlY2F1c2Ug dGhleSBqdXN0IGFyZW4ndCBuZWNlc3NhcnkgKG5vDQo+IHRyYW5zaXRpb24gdG8gYW4gdW50cnVz dGVkIHNlY3VyaXR5IGRvbWFpbiBoYXMgaGFwcGVuZWQpPw0KDQpXZSB0cmllZCB0byBicmluZyB0 aGVtIGRvd24gcXVpdGUgYSBiaXQgYnkgYXBwbHlpbmcgdGhlIGZsdXNoIG9uDQptbSBzd2l0Y2hl cywgd2UgY291bGQgYnJpbmcgaXQgZG93biBieSBhcHBseWluZyBhIFNNVCBmaWx0ZXIgZm9yIHRo ZSBjb3JlDQooY29yZSBpcyBydW5uaW5nIHNpbmdsZSB0aHJlYWRlZCkuDQoNCj4gDQo+IEFuZCBt YXliZSB0aG9zZSBtaXRpZ2F0aW9ucyBhcmUgYWN0dWFsbHkgdGhlcmUsIGFuZCBJIGp1c3QgY291 bGRuJ3QNCj4gZmlndXJlIGl0IG91dC4gU29tZSBvZiB0aGUgY29kZSBzY2FyZXMgbWUgKCJjb25k X2licGIoKSIgYW5kIGZyaWVuZHMsDQo+IGV2ZW4gaWYgeW91IGRpZCByZW5hbWUgaXQgdG8gImNv bmRfbWl0aWdhdGlvbigpIikuDQo+IA0KDQpJIHJldXNlZCBzb21lIG9mIHRob3NlIGJpdHMgZnJv bSBlYXJsaWVyIGNvZGUsIGxhcmdlbHkgYmVjYXVzZSBvZiB0aGUgb3ZlcmxhcA0Kd2l0aCB0aGUg dXNlIGNhc2Ugb2YgZmx1c2hpbmcgb24gbW0gY29udGV4dCBjaGFuZ2UuDQoNCkl0IHNvdW5kcyBs aWtlIGNoYW5naW5nIHRoZSBmbHVzaCB0byBkbyB0aGUgZm9sbG93aW5nOg0KDQpBdm9pZGluZyB0 aGUgTDFEIGZsdXNoIGlmIHRoZSBjdXJyZW50IGNvcmUgaXMgaW4gU01UIG1vZGUgd291bGQgYWRk cmVzcw0KeW91ciBjb25jZXJuPw0KDQpGb3IgdXNlciBzcGFjZSBjb25zaWRlcmF0aW9ucyBwcmlv ciB0byBmbHVzaGluZywgSSBwcm92aWRlZCBzb21lIGFyZ3VtZW50cw0KYWJvdmUuDQoNCkJhbGJp ciBTaW5naC4NCg0KDQo=