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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7C75BC433EF for ; Mon, 27 Jun 2022 23:37:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6EFFA8E0002; Mon, 27 Jun 2022 19:37:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 69D018E0001; Mon, 27 Jun 2022 19:37:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 53E618E0002; Mon, 27 Jun 2022 19:37:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 437F28E0001 for ; Mon, 27 Jun 2022 19:37:37 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id ED97D34DB9 for ; Mon, 27 Jun 2022 23:37:36 +0000 (UTC) X-FDA: 79625630112.26.2A9D101 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2083.outbound.protection.outlook.com [40.107.93.83]) by imf03.hostedemail.com (Postfix) with ESMTP id 5B1002002A for ; Mon, 27 Jun 2022 23:37:36 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=C9DGF3v8ZRjtfsRzyihWdrQbzpO9H64WDton4tGfJa+86fepqytgv9eyylQ/Le+SybCz4e5aifC9b2s2Jpy8fIJxJQ1OsZq19oXv21q26x5QfIfDzw6l9lqPtmJGtE3f4JNvHQTU3Oc8DoyhCZVF+VG2m4kYB17NvX2tjFkVXliQaCVsfRprpvgKrn4leZcTwNH7UOY89PlK4tRClnG5enHxdPPUcN11xzsGSHx8bpeQVXvnHTiUs0eaVGvq0B62AUD2mtaX4FhvFSkN9lZWx7o4Cgh0vOrhAhrzvvbWM+kxmbwANobVXV8CZsb0VlymZR7Tq3njSdI5TUCZaCEYjw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=vLVd1163WTquAcN5TnZd55rnFvlpsXCI1Dc2mZ1GD9k=; b=nu1U6/LlHcjh7TGy4GH/ulRShAt+8xZuVGMKHwYWSykztSGuNzgWtlZJ58AgddQtyt9H0iSoQUlC9ZbFUKQeprz2sKSxvcAFxZloIOoPcxl3TX9m4+ydVkR+kNtR0IBuaCi+ERHIPtpROBEjqkcxvLunaUaCtaF5DTxUin0bDBlL2mm/WfnuFiSDEisqT+hINR0vpK/0Xb3nOrBuJQnQ3BlIVKZ/j5SKuU8DUb17x6WHb3MKkpEm2Jc9U4vLYgpLPwjKGUlbUGK/VUEivcTJJ5tjwBw30PDUIG8PP4WnmJ9QLtqnUC2aJr/WP8q/IpWqymUOR9spihavMIDPpDQjMg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vmware.com; dmarc=pass action=none header.from=vmware.com; dkim=pass header.d=vmware.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vmware.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=vLVd1163WTquAcN5TnZd55rnFvlpsXCI1Dc2mZ1GD9k=; b=bBcIzSNcNP8D/j/CSHCFSfUVjvRYejersNONNxFunHC/7tm03+2yrtDuqWtEPmog3Xql434atzLEck/usaurUrqJzZ+rxF7qVerOpGCAHAAxOkL3F6pN6TrLvFB8ZGIaM6UvoXhsutSPv7BtnWmQWKP/hD5T1zv4wPuOxU+i2S8= Received: from BY3PR05MB8531.namprd05.prod.outlook.com (2603:10b6:a03:3ce::6) by BN6PR05MB2897.namprd05.prod.outlook.com (2603:10b6:404:36::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.12; Mon, 27 Jun 2022 23:37:32 +0000 Received: from BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::a4f8:718a:b2a0:977f]) by BY3PR05MB8531.namprd05.prod.outlook.com ([fe80::a4f8:718a:b2a0:977f%5]) with mapi id 15.20.5395.012; Mon, 27 Jun 2022 23:37:32 +0000 From: Nadav Amit To: Peter Xu CC: Linux MM , Mike Kravetz , Hugh Dickins , Andrew Morton , Axel Rasmussen , David Hildenbrand , Mike Rapoport , Dave Hansen Subject: Re: [PATCH v1 2/5] userfaultfd: introduce access-likely mode for common operations Thread-Topic: [PATCH v1 2/5] userfaultfd: introduce access-likely mode for common operations Thread-Index: AQHYhqiRUk3vhOHs90CD+bXeUTpwQa1do3aAgAAC7YCAAAQpgIAAA9gAgAAh8ACAAApnAIABQviAgAAFQACAAKAMAIADfsaAgACupwA= Date: Mon, 27 Jun 2022 23:37:32 +0000 Message-ID: References: <20220622185038.71740-3-namit@vmware.com> <18BCC23E-B344-41A8-926D-A49D768485AF@vmware.com> <6EF7D3B4-CF17-407B-A50F-B14D595E99A5@vmware.com> <07B65135-CA6D-4839-BAC0-6D63A94F50C2@vmware.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.100.31) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: a9ac4011-4185-411e-8e3d-08da589601c4 x-ms-traffictypediagnostic: BN6PR05MB2897:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: IzZSmXQlZs5FxPi1TGbEzHSIiJe1glyx8+4JscTdCuQ9LMtZOrQmWPr3FqQbEN1WdnFGeFWOqmPf/E/CN0oFU9gRKsbS/kt3pkhVJi4Ti+syHHIZoglpu4RqbsMUj964NXjhl825FB/VIPmK8nUX4oUGUZKbIcjJOxh/YULpAHNDvzFV1oRatc36VbKDBwRUDMxl/TLtn/QUTDamfxQ3QHMECCtrpTOIC2w0iigQtiV62g28fmjLzkg1YJL/ttDmDRu2H3NFzct6Q4JrOvlJ+ap1hPAUbOXfKehyAUWqogD+jbn1tP5I3X/qLiuINZeqp7wq6AYVoUWM3nsVNM4qNaib9ma4mY9XamxWHxAxN217Uo4KYV52OcsQPeVFA1F3WnQ4sK9kvfZJYJPKhjQQprDoi7vdqTMby/2EAJ+JRrubrczPZ1i23HnjrUJRaxCsRmqQtYevsWYs/nPBdkTvz57e4WJaFe5gSMgucHekTq583u5EG6EiJtG85lEe9r/5T5REoPapu3wx3UbqqhX6SOa9mEFcF64W6jqFbLVdR/ybppS4RzXAce0d6DAkPIAKu4FOC0BRPXVCnPLjFTmnNYeFaQjWoyfM+InsVWXZMGXfNXVN/3dFu+8feftEQT7G7E1oFFRPKtOzm9PKCa+Jn9DGDYoNg7j3nGhqHWtAVkG6NkhW8ZaVvKmJ8S9w5oAAlBppDMvE0wDQhrIWK68pflt5jUQAhZFEGwUraCbctxvF7WoNnBoQd6QVy1RLaMLQdFOnbhpLvhx6SO/YPanmHJ+eowzBBr9gvKRJ4ol+W0NV2CMZwAlZuoGHx20W9FcEvD19NSvgeTXJEeZnLqe8teFb2R8Qos8GpRySBCu6vt5hHkxgE2vrP2S7Plyfw9sB x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BY3PR05MB8531.namprd05.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230016)(4636009)(366004)(136003)(39860400002)(376002)(346002)(396003)(186003)(83380400001)(36756003)(2906002)(33656002)(41300700001)(66946007)(4326008)(5660300002)(71200400001)(26005)(66476007)(66446008)(316002)(8676002)(76116006)(66556008)(53546011)(64756008)(122000001)(6486002)(478600001)(6506007)(2616005)(54906003)(6916009)(38100700002)(8936002)(6512007)(86362001)(38070700005)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Qk1PQnk0N2Nwa21YTUR2UmZDNXlWQ3NjZWZhRXVMcWxoVHZERkVweW5KSnpI?= =?utf-8?B?YXY2YVFFajJUc1hVNUtoNFVXS1VyYXJIYmc5cUROR1VjeFM1R09BTnpLcHJF?= =?utf-8?B?b1VGcEkyV0VMbENIL3hWMzA2U1BEN0VmV3Y5YjdLNnNMU1NhVlpaNUdmYWNO?= =?utf-8?B?K3pFTXVHcTU5UzVYNzFlSGMwV0xJdWdobENMTHNCTXVMOGI0YUdTU2ZJMjRo?= =?utf-8?B?UlBOVWFHdWRpMDltY0g1blZidmd5blMzbWwxRGg5UjFtMHIzRWdBMnNyczlq?= =?utf-8?B?MmZKOHlmeVhxYUZ2cUo5SGh0VnR3V0doaWNrOExDNlgzRmtkQnNieC92UXlK?= =?utf-8?B?ckI5UUcxcTNpS2V6ZGtaL1pRVzRSa2pkd0ZKbHk1cXB1NDZNc0d5QVA1cmZ0?= =?utf-8?B?UnVzdDhRT0xBNE1xWWNsWlVqUVMyazZZZUoxbllzRkdwenh2NzhDWUpEbTBh?= =?utf-8?B?enlneXp2aTFYVFBvNmdLZ3hDZWZFcFRSSnJFMUpnc3Mzc2ZJRXVCcUJTdDdp?= =?utf-8?B?R1BpQ2VYODlDVkR2dVQ2bE1uZS9FTjRWVzZOR09XQzZ0T2pTbUVXRkErcHUw?= =?utf-8?B?ZEdabDMyeTR0cVVnUWthbGtsejhOUUtlRXpVTjdqUG8wNzdpY25US0k0Rk9M?= =?utf-8?B?cDVPTEhjajdJV2FBdEphYnQrQnhYTW0wSC9taGhiYk4wdDFQTHVTc1lqSUVt?= =?utf-8?B?UUpMbnU2MmRIYzZnaCtndndOQ3JDY0c0clc2TjllZ1ppcloxdTRuMmgrTGxx?= =?utf-8?B?a0hDdnRRdUZMck1sOStQRHNQZDBuMmRjNnNtYUMrM09Gbjc0TSsrSmZxOHh1?= =?utf-8?B?VzNzaFFqNkJZalhxaGdyL1RoTmZUREkra1pqT0YvUEdRYzBGRzk4cjMxS2E0?= =?utf-8?B?V2ZwS1RnVm1oTlNUZ3EwQ2IySVB2Q1VSUUp0V21LNTQrTytyK0QvYnNiWUJU?= =?utf-8?B?QUVlQ1g3Z3lObjdyU2hkNUpUcURpdGk5cnJHY3U5OTZtYitQZW5iWW1iMW1M?= =?utf-8?B?TFEvZDM4TDVYRXIxdHp3YXJMUSs3QWVrN1VZWWZUQmFiT2dka2tSNWU3d3k4?= =?utf-8?B?OFNxM3hiZWdWcVpOdXV6YldGZ0srUFZZd1dTMW1sNGVHQTZ3WGcrd25mWkpE?= =?utf-8?B?dWFvaGtWNm05bUc0U0pvdXNmeGJLak9tdjNwVnhhRUFsdmR4czM2b3VTY201?= =?utf-8?B?TTY5VG9yVlpUYWlQUUtMa2hST01mQVBkUHBnZTVEMXBGV08wdUpYbGJQbGlB?= =?utf-8?B?TEZFL2FwTng2UXVSOEpIa1dVSTAreUswTUhYM2REYnFqRDR6MkUvYkV5VC9i?= =?utf-8?B?cmpHZWIyWUhneWwzMlczZTI3cHhDZ3pJT1pFOUdYRi8rTzBudTdHZzNRNnkz?= =?utf-8?B?QVZkMDQyTEtyZVFwWjRYMGNXS29XWk1NT2IzUnMrb056ajNkQnNOekpwcTlt?= =?utf-8?B?bTZvWlZrSjdBb2t1OEo5cEVORTRGYzlTRUppTHB0bVVTcFdoUkRuQXZjNE9i?= =?utf-8?B?dHNEczdneThlY2FBazRxVUFjS3RGV2lzS1JiT3RGakRYcC96dExUVzcvaDBn?= =?utf-8?B?YmdWdjFDMC96c1hTL0U3d3kwTyt5eVQ0Y0g2VEdhZlZKK3p6ZFhpNDVVR0Rx?= =?utf-8?B?Q1YxU3hCbVIrNmFTSXNBclFFMGE4VnZJcjJMV016bDd1Nis5blZDR2ZPTWdK?= =?utf-8?B?dVNRMjB5d1RmMDBoOXZtU0VQOTJDMVRpeHdoSDZtMzR6L0ZHbEF4U2lWRCtW?= =?utf-8?B?K3FNMWtIQkRKNWlQOXZ1RWhGRHAwOEtPbGx0a2ttZWh6WU1aTjJibWtNYnQx?= =?utf-8?B?MDhnNHhOYzlRcVo0WTdmd2NYeTg5eHBBSEw3UDc5aHBYb3hNU1RxcVY3SkFq?= =?utf-8?B?QWIwdDQ2VVVFd0NPVHVtUVNUdkt2cW9pUXU2SlZxWWJneUZhNGEzaElXSmRa?= =?utf-8?B?MTJHUGlrMXZ0cG1EakE5Yk93OUNTTU5iVnJaTklTTVBab29WUmptQmpPMml3?= =?utf-8?B?UEhNOFJGd0FyYmlueWhWSUxtb2FKaFU1Nkhac0s2N2xLSm9PL3BObzMyTzZo?= =?utf-8?B?Qk4rQkFSY1dLZDRkS2NQL1Z0VTRlVFhNZXkvMFlyWG0zRjl5eTRCWVNtUmpI?= =?utf-8?Q?jiGy198Fo4WcVi8RBlG+MGERK?= Content-Type: text/plain; charset="utf-8" Content-ID: <2D71538ACC163D498B45061D4ED580EA@namprd05.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: vmware.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY3PR05MB8531.namprd05.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a9ac4011-4185-411e-8e3d-08da589601c4 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Jun 2022 23:37:32.4188 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: b39138ca-3cee-4b4a-a4d6-cd83d9dd62f0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GNoxX/Kj3tEY2GpOBwRtQ2OdDI1FOPie+KJTpVxtS2eQgg4+72wL7PZKdCAeVcZxRpwI1shXG3ajSX0/e1EXmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR05MB2897 ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1656373056; a=rsa-sha256; cv=pass; b=xYHcXQmWLlZ/YiRnKC1ja+3z+dyP5Km0Szo3VsyF4jIxxZzsPkCvgUWUUGxagk9qtfwTtM wwTHN4id0baThVGhbyWH8rS+EDjUqGqVZdp5eb2qfQjPPqQoHDP0gFbB5wYWo6xdPAwnG3 yZv7s+4Mx0FdhM2XI1jmy/C4FA/VhuM= ARC-Authentication-Results: i=2; imf03.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=bBcIzSNc; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=none (imf03.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.93.83) smtp.mailfrom=namit@vmware.com; dmarc=pass (policy=quarantine) header.from=vmware.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656373056; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=vLVd1163WTquAcN5TnZd55rnFvlpsXCI1Dc2mZ1GD9k=; b=MLX2K05+WtiIU5M9T0oX8ad8YmPDtwFsULw+gNSVD/kds9HpSiIL0JskDOSsFIFYyOD/C/ ri7eIcpfEsb4B1pNix4ew5CIWUgkcQnNs7iMFjUcG1QLv2Sz5epA6DK8qtk2xuD88LmNc5 lx+REbBsI0wW7bxElsc1yPjSmXFXQ/c= X-Rspam-User: Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=bBcIzSNc; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=none (imf03.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.93.83) smtp.mailfrom=namit@vmware.com; dmarc=pass (policy=quarantine) header.from=vmware.com X-Rspamd-Server: rspam02 X-Stat-Signature: f6in4p4i1wpzjabayk94bquxearejxch X-Rspamd-Queue-Id: 5B1002002A X-HE-Tag: 1656373056-789221 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: WyArRGF2ZSBIYW5zZW4gdG8gc2F5IGhvdyB3cm9uZyBJIGFtIF0gDQoNCj4gT24gSnVuIDI3LCAy MDIyLCBhdCA2OjEyIEFNLCBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+IHdyb3RlOg0KPiAN Cj4g4pqgIEV4dGVybmFsIEVtYWlsDQo+IA0KPiBPbiBTYXQsIEp1biAyNSwgMjAyMiBhdCAwNzo0 OTo1NEFNICswMDAwLCBOYWRhdiBBbWl0IHdyb3RlOg0KPj4gDQo+PiANCj4+PiBPbiBKdW4gMjQs IDIwMjIsIGF0IDM6MTcgUE0sIFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0LmNvbT4gd3JvdGU6DQo+ Pj4gDQo+Pj4gT24gRnJpLCBKdW4gMjQsIDIwMjIgYXQgMDU6NTg6MTdQTSAtMDQwMCwgUGV0ZXIg WHUgd3JvdGU6DQo+Pj4+IFtTb3JyeSBmb3IgcmVwbHlpbmcgbGF0ZV0NCj4+Pj4gDQo+Pj4+IFNh aWQgdGhhdCwgSSB0aGluayBpdCBkb2Vzbid0IHJlYWxseSBuZWNlc3NhcnkgbmVlZCB0byBiZSB0 aGF0IGNvbXBsZXgsDQo+Pj4+IHNpbmNlIG1ha2VfaHVnZV9wdGUoKSBhbHJlYWR5IHNldHMgZGly dHkgYml0IHdoZW4gIndyaXRhYmxlPTEiLCBzbyBJSVVDDQo+Pj4+IHdoYXQgeW91IG5lZWQgdG8g ZG8gaXMgc2ltcGx5IG1ha2Ugc3VyZSBkaXJ0eSBiaXQgc2V0IHdoZW4gd3JpdGVfaGludD0xLg0K Pj4+PiANCj4+Pj4gRG9lcyBpdCBzb3VuZHMgY29ycmVjdCB0byB5b3U/DQo+Pj4gDQo+Pj4gSG1t LCBob2xkIG9uLi4uICBJIGZhaWxlZCB0byBmaWd1cmUgb3V0IGhvdyB0aGF0IHdyaXRlLWxpa2Vs eSBoaW50IGNvdWxkDQo+Pj4gaGVscCB1cyBmb3IgZWl0aGVyIGh1Z2Ugb3Igbm9uLWh1Z2UgcGFn ZXMsIHNpbmNlOg0KPj4+IA0KPj4+ICgxKSBPbGQgY29kZSBhbHdheXMgc2V0IGRpcnR5LCBzbyBu byBwZXJmIGRlZ3JhZGUgYW55d2F5IHdpdGgvd2l0aG91dCB0aGUNCj4+PiAgICAgaGludA0KPj4+ IA0KPj4+ICgyKSBJZiB3ZSB3YW50IHRvIHJld29yayBkaXJ0eSBiaXQgKHdoaWNoIEknbSB0b3Rh bGx5IGZpbmUgd2l0aC4uKSwgdGhlbg0KPj4+ICAgICB3ZSBkb24ndCBhcHBseSBpdCB3aGVuIHdl IHNob3VsZG4ndCwgYW5kIGFmYWljdCB3ZSBzaG91bGQgc2V0IEQgYml0DQo+Pj4gICAgIHdoZW5l dmVyIHdlIHNob3VsZC4uLiAgaWYgdGhlIHVzZXIgYXNzdW1lcyB0aGlzIHBhZ2UgaXMgbGlrZWx5 IHRvIGJlDQo+Pj4gICAgIHdyaXR0ZW4gYnV0IG1hZGUgaXQgcmVhZC1vbmx5LCBzYXksIHdpdGgg VUZGRElPX0NPUFkod3BfbW9kZT0xKSwNCj4+PiAgICAgc2V0dGluZyBEIGJpdCB3aWxsIG5vdCBo ZWxwLCBpbnN0ZWFkLCB0aGUgdXNlciBzaG91bGQgc2ltcGx5IHVzZSBhbg0KPj4+ICAgICBVRkZE SU9fQ09QWSh3cF9tb2RlPTApIHRoZW4gdGhlIGRpcnR5IHdpbGwgYmUgc2V0IHdpdGggd3JpdGU9 MS4uDQo+Pj4gDQo+Pj4gSXQnbGwgYmUgaGVscGZ1bCBidXQgb25seSBoZWxwZnVsIGZvciBVRkZE SU9fWkVST0NPUFkgYmVjYXVzZSBpdCBhdm9pZHMgb25lDQo+Pj4gQ09XLiAgQnV0IHRoYXQgc2Vl bXMgdG8gYmUgaXQuDQo+Pj4gDQo+Pj4gSW4gc2hvcnQ6IEknbSB3b25kZXJpbmcgd2hldGhlciB3 ZSBvbmx5IHJlYWxseSBuZWVkIHRoZSBBQ0NFU1NfTElLRUxZIGhpbnQNCj4+PiBhcyB5b3UgcHJv cG9zZWQgZWFybGllci4gIFdlIG1heSB3YW50IFVGRkRJT19aRVJPUEFHRV9NT0RFX0FMTE9DQVRF DQo+Pj4gc2VwYXJhdGVseSwgYnV0IGtlZXAgdGhhdCBvbmx5IGZvciB6ZXJvcGFnZSBvcCAoYW5k IGl0IHNob3VsZG4ndCByZWFsbHkgYmUNCj4+PiBjYWxsZWQgV1JJVEVfTElLRUxZKT8gIE9yIGRp ZCBJIG1pc3Mgc29tZXRoaW5nPw0KPj4gDQo+PiBMZXTigJlzIHNlZSBpZiBJIGdldCB5b3UgY29y cmVjdGx5LiBJIGFtIG5vdCBzdXJlIHdoZXRoZXIgd2UgaGFkIHRoaXMNCj4+IGRpc2N1c3Npb24g YmVmb3JlLg0KPj4gDQo+PiBXZSBhcmUgdGFsa2luZyBhYm91dCBhIHNjZW5hcmlvIGluIHdoaWNo IFdQPTAuIFlvdSBhcmd1ZSB0aGF0IGlmIHRoZSBwYWdlDQo+PiBpcyBhbHJlYWR5IHNldCBhcyBk aXJ0eSwgd2hhdCBpcyB0aGUgYmVuZWZpdCBvZiBub3Qgc2V0dGluZyB0aGUgZGlydHktYml0LA0K Pj4gcmlnaHQ/DQo+PiANCj4+IFNvIGZpcnN0LCBJSVVDLCB0aGVyZSBhcmUgY2FzZXMgaW4gd2hp Y2ggdGhlIHBhZ2Ugd291bGQgbm90IGJlIHNldCBhcw0KPj4gZGlydHksIGUuZy4sIFVGRkRJT19D T05USU5VRS4gWyBJIGFtIGFkbWl0dGVkbHkgbm90IHRvbyBmYW1pbGlhciB3aXRoIHRoaXMNCj4+ IHVzZS1jYXNlLCBzbyBJIHNheSBpdCBiYXNlZCBvbiB0aGUgY29tbWVudHMuIF0NCj4+IA0KPj4g U2Vjb25kLCBldmVuIGlmIHRoZSBwYWdlIGlzIGRpcnR5IChlLmcuLCBmb2xsb3dpbmcgVUZGRElP X0NPUFkpLCBidXQgaXQNCj4+IGlzIG5vdCB3cml0dGVuIGJ5IHRoZSB1c2VyIGFmdGVyIFVGRkRJ X0NPUFksIG1hcmtpbmcgdGhlIFBURSBhcyBkaXJ0eQ0KPj4gd2hlbiBpdCBpcyBtYXBwZWQgd291 bGQgaW5kdWNlIG92ZXJoZWFkLCBhcyB3ZSBkaXNjdXNzZWQgYmVmb3JlLCBzaW5jZQ0KPj4gaWYv d2hlbiB0aGUgUFRFIGlzIHVubWFwcGVkLCBUTEIgZmx1c2ggYmF0Y2hpbmcgbWlnaHQgbm90IGJl IHBvc3NpYmxlLg0KPiANCj4gSSdkIGhvcGUgd2UgZG9uJ3QgbWFrZSBhbiBpbnRlcmZhY2UgZGVz aWduIGp1c3QgdG8gc2VydmljZSB0aGF0IHB1cnBvc2Ugb2YNCj4gd2hlbiB3cml0ZT0wIGFuZCBk aXJ0eT0xIHVzZSBjYXNlIHRoYXQgaXMgaW50ZXJuYWwgdG8gdGhlIGtlcm5lbCBzbyBmYXIsDQo+ IGFuZCBJIHN0aWxsIHRoaW5rIGl0J3MgdGhlIHRsYiBmbHVzaCBjb2RlIHRvIGNoYW5nZS4uIG9y IGRvIHdlIGhhdmUgb3RoZXINCj4gdXNlIGNhc2UgZm9yIHRoaXMgV1JJVEVfTElLRUxZIGhpbnQ/ DQo+IA0KPiBGb3IgVUZGRElPX0NPTlRJTlVFLCBpZiB3ZSB3YW50IHRvIG1ha2UgdGhpbmdzIGNs ZWFyIG9uIGRpcnR5IGJpdCwgdGhlbg0KPiBJTUhPIGZvciBVRkZESU9fQ09OVElOVUUgdGhlIHJp Z2h0IHBsYWNlIGZvciB0aGUgZGlydHkgcHJvY2VzcyBpcyB3aGVyZSB0aGUNCj4gdXNlciB3cml0 ZXMgdG8gdGhlIHBhZ2UgaW4gdGhlIG90aGVyIG1hcHBpbmcsIHdoZXJlIFBhZ2VEaXJ0eSgpIHdp bGwgc3RhcnQNCj4gdG8gYmUgdHJ1ZSBhbHJlYWR5IGV2ZW4gaWYgdGhlIHB0ZSB0aGF0IHRvIGJl IENPTlRJTlVFZCB3aWxsIGhhdmUgZGlydHk9MA0KPiBpbiB0aGUgcHRlIGVudHJ5LiAgRnJvbSB0 aGF0IHBvdiBJIHN0aWxsIGRvbid0IHNlZSB3aHkgd2UgbmVlZCB0byBncmFudCB0aGUNCj4gdXNl ciBvbiB0aGUgZGlydHkgYml0IGNvbnRyb2wsIG5vIG1hdHRlciB3aXRoIGEgaGludCBvbmx5LCBv ciBleHBsaWNpdC4NCj4gDQo+PiANCj4+IFNvIEkgZG9u4oCZdCB0aGluayB0aGVyZSBpcyBhIHBy b2JsZW0gaW4gaGF2aW5nIFdSSVRFX0xJS0VMWSBoaW50LiBNb3Jlb3ZlciwNCj4+IEkgd291bGQg cmVpdGVyYXRlIG15IHBvc2l0aW9uICh3aGljaCB5b3UgZ3V5cyBjb252aW5jZWQgbWUgaW4hKQ0K PiANCj4gRGF2aWQgY29udmluY2VkIHlvdSBJIHRoaW5rIDopDQo+IA0KPj4gdGhhdCBoYXZpbmcg aGludHMgdGhhdCBpbmRpY2F0ZSB3aGF0IHRoZSB1c2VyIGRvZXMgKFdSSVRFX0xJS0VMWSkgaXMg YQ0KPj4gYmV0dGVyIEFQSSB0aGFuIHNvbWV0aGluZyB0aGF0IGluZGljYXRlcyBkaXJlY3RseSB3 aGF0IHRoZSBrZXJuZWwgc2hvdWxkDQo+PiBkbyAoZS5nLiwgVUZGRElPX1pFUk9QQUdFX01PREVf QUxMT0NBVEUpLg0KPiANCj4gVGhlIGhpbnQgaWRlYSBzb3VuZHMgZ29vZCB0byBtZSwgaXQncyBq dXN0IHRoYXQgd2UgYWN0dWFsbHkgaGF2ZSB0d28gc3RlcHMNCj4gaGVyZToNCj4gDQo+ICAoMSkg V2UgdGhpbmsgcHJvdmlkaW5nIHVzZXIgdGhlIGNvbnRyb2wgb2YgZGlydHkgYml0IG1ha2VzIHNl bnNlLCB0aGVuLA0KPiAgKDIpIFdlIHRoaW5rIHRoZSBmbGFnIHNob3VsZCBiZSBhIGhpbnQgbm90 IGV4cGxpY2l0ICJzZXQgZGlydHkgYml0Ig0KPiANCj4gSSBhZ3JlZSB3aXRoICgyKSBpbiB0aGlz IGNhc2UgaWYgKDEpIGlzIGFwcGxpY2FibGUuICBBbmQgbm93IEkgdGhpbmsgSSdtDQo+IHF1ZXN0 aW9uaW5nIG15c2VsZiBvbiAoMSkuDQo+IA0KPiBGdW5kYW1lbnRhbGx5LCBhY2Nlc3MgYml0IGhh cyBtb3JlIG1lYW5pbmdmdWwgY29udGV4dCAoMCBtZWFucyBjb2xkLCAxDQo+IG1lYW5zIGhvdCks IGZvciBkaXJ0eSBpdCdzIHJlYWxseSBtb3JlIGEgcGVyZiB0aGluZyB0byBtZSAod2hlbiBjbGVh ciwNCj4gaXQnbGwgdGFrZSBleHRyYSBjeWNsZXMgdG8gc2V0IGl0IHdoZW4gbWVtb3J5IHdyaXRl IGhhcHBlbnMgdG8gaXQ7IGJlaW5nDQo+IGNsZWFyIF9tYXlfIGhlbHAgb25seSBmb3IgdGhlIHRs YiBmbHVzaCBleGFtcGxlIHlvdSBtZW50aW9uZWQgYnV0IEknbSBub3QNCj4gZnVsbHkgY29udmlu Y2VkIHRoYXQncyBjb3JyZWN0KS4NCg0KSSBhbSBub3Qgc3VyZSB3ZSB1bmRlcnN0YW5kIGVhY2gg b3RoZXIuIEkgdGhpbmsgdGhlIGJlbmVmaXQgb2Ygbm90IHNldHRpbmcNCmEgZGlydHktYml0IHdo ZW4gYSBwYWdlIGlzIG5vdCBhY3R1YWxseSB3cml0dGVuIGlzIGZ1bmRhbWVudGFsLCBhbmQgaGFz DQppbmhlcml0IHBlcmZvcm1hbmNlIGJlbmVmaXQuDQoNCldoZW4gSSBkaWQgeDg24oCZcyBwdGVf ZmxhZ3NfbmVlZF9mbHVzaCgpLCBJIHdhcyBkZWZlbnNpdmUsIGJ1dCB0aGVyZSBpcyBhDQpiYXNp YyBvcHRpbWl6YXRpb24gdGhhdCBpcyBwb3NzaWJsZSB0byBhdm9pZCBhIFRMQiBmbHVzaCBvbiBu b24tZGlydHkNCndyaXRhYmxlIFBURXMuDQoNCkluIHg4NiwgY29uc2lkZXIgYSBzaXR1YXRpb24g aW4gd2hpY2ggeW91IHVzZSBwdGVwX21vZGlmeV9wcm90X3N0YXJ0KCkNCnRvIHJlbW92ZSBhIFBU RSBhbmQgbG9hZCBpdHMgb2xkIHZhbHVlIHVzaW5nIHhjaGcuIChBIHNpbWlsYXIgY2FzZSBoYXBw ZW5zDQpvbiByZWNsYWltKS4gQXNzdW1lIHlvdSB3YW50IHRvIHdyaXRlLXByb3RlY3QgdGhlIGVu dHJ5Lg0KDQpJZiB0aGUgUFRFIGlzIG5vbi1kaXJ0eSB0aGVuIHlvdSBzaG91bGQgYmUgYWJsZSB0 byBhdm9pZCBhIGZsdXNoLCBldmVuIGlmDQp0aGUgUFRFIGlzIHdyaXRhYmxlLiBJbiB4ODYsIGEg d3JpdGUgYW5kIHRoZSBjaGFuZ2Ugb2YgdGhlIGRpcnR5LWJpdCBhcmUNCnBlcmZvcm1lZCBib3Ro IGF0b21pY2FsbHkuIFRoZXJlZm9yZSwgaWYgdGhlIGRpcnR5LWJpdCBvbiB0aGUgb2xkIFBURSB3 YXMNCmNsZWFyLCB5b3UgY2FuIGF2b2lkIGEgVExCIGZsdXNoLg0KDQpCZXNpZGVzIHRoZSBiZW5l Zml0IG9mIGF2b2lkaW5nIGEgVExCIGZsdXNoLCB0aGVyZSBpcyBhbHNvIHRoZSBiZW5lZml0DQpv ZiBoYXZpbmcgbW9yZSBwcmVjaXNlIGRpcnR5IHRyYWNraW5nLiBZb3UgYXNzdW1lIFVGRkRJT19D T05USU5VRSB3aWxsIGJlDQpwcmVjZWRlZCBieSBtZW1vcnkgd3JpdGUgdG8gdGhlIHNoYXJlZCBt ZW1vcnksIGJ1dCB0aGF0IGRvZXMgbm90IGhhdmUgdG8NCmJlIHRoZSBjYXNlLiBTaW1pbGFybHks IGlmIGluIHRoZSBmdXR1cmUgdXNlcmZhdWx0ZmQgd291bGQgYWxzbyBzdXBwb3J0DQptZW1vcnkt YmFja2VkIHByaXZhdGUgbWFwcGluZ3MsIHRoYXQgZG9lcyBub3QgaGF2ZSB0byBiZSB0aGUgY2Fz ZSBlaXRoZXIuDQoNClB1dHRpbmcgYWxsIG9mIHRoZSBhYm92ZSBhc2lkZSwgdGhlcmUgaXMgYSBi dWcgaW4gbXkgY29kZSwgYnV0IHRoaXMNCmJ1ZyBhbHNvIHBvaW50cyB3aHkgZGlydHkgc2hvdWxk IG5vdCBiZSBzZXQgdW5jb25kaXRpb25hbGx5LiBJZiBzb21lb25lDQp1c2VzIFNPRlRfRElSVFkg d2l0aCB1c2VyZmF1bHRmZCwgdGhlbiBtYXJraW5nIHRoZSBQVEUgYXMgZGlydHkgKGFuZA0Kc29m dC1kaXJ0eSkgbWlnaHQgYmUgbWlzbGVhZGluZywgY2F1c2luZyB1bm5lY2Vzc2FyeSB1c2Vyc3Bh Y2Ugd3JpdGViYWNrDQpvZiBtZW1vcnkuDQoNClNvIEkgZG8gbmVlZCB0byBmaXggbXkgY29kZSBz byBpdCB3b3VsZCBub3Qgd3JpdGUtdW5wcm90ZWN0IG1lbW9yeSBpZg0Kc29mdC1kaXJ0eSBpcyBl bmFibGVkIGFuZCBVRkZEX0ZMQUdTX1dSSVRFX0xJS0VMWSBpcyBub3QgcHJvdmlkZWQuIEJ1dA0K SSB0aGluayBpdCBlbXBoYXNpemVzIHRoZSBiZW5lZml0IG9mIGhhdmluZyBVRkZEX0ZMQUdTX1dS SVRFX0xJS0VMWS4NCg0KPiANCj4gTWF5YmUgd2l0aCB0aGUgdG8gYmUgcHJvcG9zZWQgUkZDIHBh dGNoIGZvciB0bGIgZmx1c2ggd2UgY2FuIGtub3cgd2hldGhlcg0KPiB0aGF0IHNob3VsZCBiZSBz b21ldGhpbmcgd2UgY2FuIHJlbHkgb24uICBJdCdsbCBhZGQgbW9yZSBkZXBlbmRlbmN5IG9uIHRo aXMNCj4gd29yayB3aGljaCBJJ20gc29ycnkgdG8gc2F5LiAgSXQncyBqdXN0IHRoYXQgSU1ITyB3 ZSBzaG91bGQgdGhpbmsgY2FyZWZ1bGx5DQo+IGZvciB0aGUgd3JpdGUtaGludCBiZWNhdXNlIHRo aXMgaXMgYSBzb2xpZCBuZXcgdUFCSSB3ZSdyZSB0YWxraW5nIGFib3V0Lg0KPiANCj4gVGhlIG90 aGVyIG9wdGlvbiBpcyB3ZSBjYW4gaW50cm9kdWNlIHRoZSBhY2Nlc3MgaGludCBmaXJzdCBhbmQg dGhpbmsgbW9yZQ0KPiBvbiB0aGUgZGlydHkgb25lICh3ZSBjYW4gYWx3YXlzIGFkZCBpdCB3aGVu IHByb3BlcikuICBXaGF0IGRvIHlvdSB0aGluaz8NCj4gQWxzbywgRGF2aWQgcGxlYXNlIGNoaW0g aW4gYW55dGltZSBpZiBJIG1pc3NlZCB0aGUgd2hvbGUgcG9pbnQgd2hlbiB5b3UNCj4gcHJvcG9z ZWQgdGhlIGlkZWEuDQo+IA0KPj4gDQo+PiBCdXQgdGhpcyBkaXNjdXNzaW9uIG1hZGUgbWUgdGhp bmsgdGhhdCB0aGVyZSBhcmUgdHdvIHNvbWV3aGF0IHJlbGF0ZWQNCj4+IG1hdHRlcnMgdGhhdCB3 ZSBtYXkgd2FudCB0byBhZGRyZXNzOg0KPj4gDQo+PiAxLiBtd3JpdGVwcm90ZWN0X3JhbmdlKCkg c2hvdWxkIHVzZSBNTV9DUF9UUllfQ0hBTkdFX1dSSVRBQkxFIHdoZW4gIXdwDQo+PiB0byBwcm9h Y3RpdmVseSBtYWtlIGVudHJpZXMgd3JpdGFibGUgYW5kIHNhdmUgLg0KPiANCj4gSSdtIG5vdCBz dXJlIEknbSByaWdodCBoZXJlLCBidXQgSSB0aGluayBEYXZpZCdzIHBhdGNoIHNob3VsZCBoYXZl IGNvdmVyZWQNCj4gdGhhdCBjYXNlPyAgVGhlIG5ldyBoZWxwZXIgb25seSBjaGVja3MgcHRlX3Vm ZmRfd3AoKSBiYXNlZCBvbiBteSBtZW1vcnksDQo+IGFuZCB3aGVuIHJlc29sdmluZyBwYWdlIGZh dWx0cyB1ZmZkLXdwIGJpdCBzaG91bGQgaGF2ZSBiZWVuIGdvbmUsIHNvIGl0DQo+IHNob3VsZCBi ZSB0cmVhdGVkIHRoZSBzYW1lIGFzIG5vcm1hbCBwdGVzLg0KDQpMZXTigJlzIHNlZSB3ZSBnZXQg dG8gdGhlIHNhbWUgcGFnZToNCg0KbXdyaXRlcHJvdGVjdF9yYW5nZSgpIGRvZXM6DQoNCiAgICAg ICAgY2hhbmdlX3Byb3RlY3Rpb24oJnRsYiwgZHN0X3ZtYSwgc3RhcnQsIHN0YXJ0ICsgbGVuLCBu ZXdwcm90LA0KICAgICAgICAgICAgICAgICAgICAgICAgICBlbmFibGVfd3AgPyBNTV9DUF9VRkZE X1dQIDogTU1fQ1BfVUZGRF9XUF9SRVNPTFZFKQ0KDQpBcyB5b3Ugc2VlIG5vIHVzZSBvZiBNTV9D UF9UUllfQ0hBTkdFX1dSSVRBQkxFLg0KDQpBbmQgdGhlbiBjaGFuZ2VfcHRlX3JhbmdlKCkgZG9l czoNCg0KICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChjcF9mbGFncyAmIE1NX0NQX1RSWV9D SEFOR0VfV1JJVEFCTEUpICYmDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIXB0ZV93cml0 ZShwdGVudCkgJiYNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5fY2hhbmdlX3B0ZV93 cml0YWJsZSh2bWEsIGFkZHIsIHB0ZW50KSkNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcHRlbnQgPSBwdGVfbWt3cml0ZShwdGVudCk7DQoNCklmIHdlIGRvIG5vdCBwcm92aWRlIE1N X0NQX1RSWV9DSEFOR0VfV1JJVEFCTEUsIHRoZSBQVEUgd291bGQgbm90IGJlDQp3cml0YWJsZS4N Cg0KTm93IGZvciB0aGUgcmVjb3JkLCB3ZSBtYXkgd2FudCBhbiBhZGRpdGlvbmFsIG9wdGltaXph dGlvbiwgc28gaWYgYQ0KZmF1bHQgaGFuZGxlciBpcyB3b2tlbiBiZWNhdXNlIGEgUFRFIGJlY29t ZSB3cml0YWJsZSwgd2UgZG8gbm90IHJldHJ5DQp0aGUgcGFnZSBmYXVsdCAoc2luY2UgdGhlIFBU RSBpcyBhbHJlYWR5IHdyaXRhYmxlKS4gSXQgaXMgYSBzbWFsbCBjaGFuZ2UsDQpidXQgbGV04oCZ cyBzZWUgZmlyc3Qgd2UgYWdyZWUgb24gdGhlIHBhdGNoZXMgc28gZmFy4oCmDQoNCg==