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 B5A1CC433EF for ; Fri, 24 Jun 2022 00:03:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 49CF18E01AF; Thu, 23 Jun 2022 20:03:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 44D2C8E01A1; Thu, 23 Jun 2022 20:03:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2C71B8E01AF; Thu, 23 Jun 2022 20:03:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 1E5E78E01A1 for ; Thu, 23 Jun 2022 20:03:42 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id EF03460E77 for ; Fri, 24 Jun 2022 00:03:41 +0000 (UTC) X-FDA: 79611180642.02.976BEA6 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2049.outbound.protection.outlook.com [40.107.244.49]) by imf11.hostedemail.com (Postfix) with ESMTP id 65EF340026 for ; Fri, 24 Jun 2022 00:03:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jM7JlNbJocfD71LPxeV007jVWMWdUSQR0BOhVdqxN6kSX2F6mBfF3GWUXD/juTc/kPuBxbwObxqr8SMxzq0Rk21Q7JmgILJYod+7fpc4d6Li9UFN5q74jBQ06I5WkeTJEtF1zY2k68ExSMFMOUNH2JFZkla/yyqmSjv0AuRJsa9xnnwe6ywAuY04I6kcD1M83bPW+qqoY5MSnUMSrlj55HmXl9TKo48M/I236Suy9VWqcLeCzJfRHd3UNDos/NnZUVx6JO9SCjckGkUTYEQTEa7hhvmzA5mRTJMGUlVM5DOJPZC3eils4kcKoD0a3CkhW/CnAr2QRCQwybydVGRivA== 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=wFsItjbhmotk0tDl682zpqg+tNC6BKWfRHoFXQcYHQ8=; b=WDeXUrL8IGPXwCIj8r03jB5/+UFeUiHqQ0DUmjyvh0cJ7Ytn4D8xEFc5JFO2OdQzuRmtfmWvzUwG0UgsMt25l6WY+vDyoTxWFf8E1DSfKHk5Oqy8Ehd3uksPA9dJzEQ3OTWenor3XVopi2IkGysUMdND38VL+INInod9oFQ6vkQLKnTWkLoXYMIwT20xZ8iKna8sSsLRUxA85okywwTkJAfRYgqAq7fYN5/lkvqEZFOoOEj1h8sDH7+BoERu2jKYOzlaLvNHyJD7BnTIn1HjN5vmBgQHRZopcIgHc1qyc6eLnEPguW39mKurNcvFcfNK9kHUCFbgoAO5KCEUmEwfew== 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=wFsItjbhmotk0tDl682zpqg+tNC6BKWfRHoFXQcYHQ8=; b=BTPQiRldR9PG6Py128kmYOP/TfKQrhkQOiEy9ZQ/7yqNjcMwAMxL7HV2aCNBP/wIK6kpfu3Q5LHHWz+5PW6beLZEB+KbjMEOtpwzFYi3YfJEQpyw2WSfP4As+KQIhXesCh8KM+vGHpkH539cYm0Kx5dN6N5nna4Itjq3CHZ3Lf0= Received: from BY3PR05MB8531.namprd05.prod.outlook.com (2603:10b6:a03:3ce::6) by SN6PR05MB5901.namprd05.prod.outlook.com (2603:10b6:805:f3::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5373.15; Fri, 24 Jun 2022 00:03:38 +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.5373.016; Fri, 24 Jun 2022 00:03:38 +0000 From: Nadav Amit To: Peter Xu CC: Linux MM , Mike Kravetz , Hugh Dickins , Andrew Morton , Axel Rasmussen , David Hildenbrand , Mike Rapoport 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+bXeUTpwQa1do3aAgAAC7YCAAAQpgIAAA9gA Date: Fri, 24 Jun 2022 00:03:38 +0000 Message-ID: <18BCC23E-B344-41A8-926D-A49D768485AF@vmware.com> References: <20220622185038.71740-1-namit@vmware.com> <20220622185038.71740-3-namit@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: c71b5f7e-a000-4028-fa42-08da5574fd99 x-ms-traffictypediagnostic: SN6PR05MB5901:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: adfbai0eCgCi3y/BtxP5HjtwdkYwOiSCncBmzqiPQC0P7e3MwzYkWQyx3Y0rt+i7wT31CfNPp5fV+B8hc3g0DQamYXKpFpbRIhVAxsWFE6ITOZwHm/T9mK3hivpW00gNX3qyVl/krrTWhxI7ZTAiIGogSk4vgO6KZvyiB7rR885YBnSVqWrP3CvzPtaTDLSDm5T4clS/qYKCgEf7yH22ZOdnmz/cJ3g7pov0/J8G67VqC3FKAhRvifdD3f9mTgQ7leBBfCVVWdyuSLpCpW54ExJmle35h93GZcwR4UUtVA8z5rDgoKOqjONIsYdNKPtLnZThBJEMzh0y/JlEolASLjdLwIAbhLQr5J0GG+vOP6lSyZCG3/fzGUH3fonHiJDqWf61grQzgagPSIBSU8MLuzAOwpCm4MCPD3gEDqa8ARJT67zccpGgkq33yLI8ww4PKMMy//ENQpFxY2cMld//7w1oO0dJs4bqP2XMbJxVFhNQtklX494xGfU/vmoZU6txrcJ7ywAC56I69Wuel4nqC2WxGrh++8GXULziwhW2LXW2fRafONkAP8sqY/ZglKHP/rJHFmYmHiMDs8L4bGDn/xToyf2vOtbTKCiMLK7fNUQrv0od9t+nzynMz9Rql2x7cAntZfa/ufSnLNxmFK747385SroodulZkYs+EDMbD5zmFAYOC2YuyLELF23lydmYCQ7qpYzHgBhUEhIqYlVGRXKL6uD3zw6NjjMGgigBC5tifVMUGVQV4YaSEy9mjQBo90jLMlLmsP8tC1qX0bxp+JD8oH8tlpYFtdSUIJFlipRrNRLLGbhhwmUDUtj3bIksUR2gIJiK9TrJ0l7Kzw/M5g== 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)(136003)(346002)(366004)(396003)(376002)(39860400002)(83380400001)(38070700005)(186003)(71200400001)(38100700002)(2616005)(36756003)(122000001)(33656002)(2906002)(4326008)(5660300002)(26005)(66556008)(53546011)(6512007)(8936002)(6486002)(66446008)(76116006)(41300700001)(64756008)(8676002)(6506007)(316002)(66946007)(86362001)(66476007)(478600001)(54906003)(6916009)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?M1ZpQk1pUDFnZGtPOWdzc1RBTllNUEU0MWN1OXhLTjU2cVFIbVhVazdXSjlH?= =?utf-8?B?L1A1TVN5VFNPSmUySjZKYlV5OXhoNFI4WDc3akVLeU9aYVh5RFJodWhGN0pZ?= =?utf-8?B?a0dNZURabEFKTG55QmZRcThlbytMb2c3NmloQ09wMU5qSGdWb05RVWFkWXZz?= =?utf-8?B?MExzbGdHTEUxZ00za2g5MnhEemh0Q2crT0lGaUtKNTM1cmo4WlRmUHM3V0I5?= =?utf-8?B?VFpmVDZnQ1V6c3I2U3J5NS9kNmNuNkRwd3lCZnVRMlcvcVZoSGJlOVJZaXFO?= =?utf-8?B?azN1SFN4Q1k2d2NEUndGKzBEVGM1RUxsOXorOE9BSG5ITXlQKzY2OGg0RWY4?= =?utf-8?B?RWgvM2YxSkpDWlBWckkxVGQwbWhDY3ovWko1QllHNWZjZWtqdzhMTnRZT2Rs?= =?utf-8?B?U1Y1WTI4RlY4RmM3WWxjSi83VG1iUWtHNnU4eXlpcVJ3TVoreUxKM3JYMU9D?= =?utf-8?B?KzhIOGRqRnRkU2VWSlRCeFlCTjh3dExlMFQzUTBFRzNsVE42bjlsUjZROHZB?= =?utf-8?B?M1JiSllPSVBLbE1nOEVxTm5IMUcxbU81SEZjSHBKU3d2ZjNDWVR6bkRxV3dQ?= =?utf-8?B?bTk5d0ltT2pMa2d5TTVHZWZXenF1V0cyckFsN3F0Y3c0MGc0QlNsV3NZanhq?= =?utf-8?B?bzdsamhrN3BFRjR0QUxHbzBHTy9FVEpjMWZWWDByS1cvZ1AyR21NNk8wVXg1?= =?utf-8?B?RHpjMkpJRzgvaFhwb09obVJjRlBPVnFBeUMvbm1GRkdKQ0VGaGtKSXpzRitl?= =?utf-8?B?N21lNkswZmdtaEJoMElkcWprTHIzY0dVRGk0c0xwOTI4K0Y2dmw3bHVBYjFr?= =?utf-8?B?UFBLMU0xSHBjN282Nk5mcDNENTRQeXhTZ3RCYWhEcERFWXlPSFdnKzlxTEdK?= =?utf-8?B?OFk3VW51NjBEZkp0aXlZdzQ1R1ZQS3M5ZExaQ3UzZ0x1dmt5cm1WZVV3OStw?= =?utf-8?B?YjJ4dGR5YVlKQXVSc2tDUTY0MzU3RDBCa2g4OTZnTWNlTmsyRGtIU1FwSDNR?= =?utf-8?B?VlNUWmhURktHWGJMSTBSTkZXdjlobmxxM2hiVWFFOVNDbU9VaW1PQnl3eXBa?= =?utf-8?B?S3VJZmJFREg2dVRPZHNmalJqT054SWhVcVFHWk44ZmFJT2NyK3pJeGFDYjBU?= =?utf-8?B?ZjN4VWNxblBIdUYzYlg4bU5uQjFVRFpMcWRjeU1nTDVpUmFtb0lTdUtZWkl2?= =?utf-8?B?OTdmVEtpcjBTSWtiN0VxQmRIQ2QxcWwzTGVjNWU2NUp3QVBoR2t1endzUlB3?= =?utf-8?B?MWxFcXN6THg1SnliZGxkVEd5Vms5SHhjL1RyV01WeWdHVldBNGFGUVA3L3Bw?= =?utf-8?B?YWtKVFJlQlppR29jUGtzV2cyVml2WGJXa2dDTzZtS1RycFJmdmRTK2w4czhv?= =?utf-8?B?dlpIZE5JdlFOU1hGSEUyU1dhb2ROZVcyVXNGVG8vZzR5UC9mK0MxZHgwVjBC?= =?utf-8?B?dyswOC85UVE5SGdmbFFaK2JIOFRBdWZYcXBxd3UxYnUyeGpKWVJEc1ZXc25q?= =?utf-8?B?NFZtV0FYZ0pzQWtNT05PL3JJNmJDQlltZ1BoOUcvT1JPM3Z0M0hWeGVEdkhW?= =?utf-8?B?Vlp4elZLeWxWUzZhdDhUK1NlbjQ0RkhqTUZ5QzRjTC9XM3ppRjJvaWg2WVJt?= =?utf-8?B?ZSs1c2dHazRhTm5PMjlYeCtQWGt0bWZTdm5pdjRMbXpSU3ZmdmEvNC9JRURM?= =?utf-8?B?eFJKUFVXNk1HNFdSb05TM0RMSzRzdjA1cmhBdmF6emVpMGhPV25DdTkrcVYv?= =?utf-8?B?SHpPTnlPcHExV1BlR3RjdmlJUmh4aXAwZlJlZWVrVTRNTzVYUGhkVUdHRVRB?= =?utf-8?B?ZWR4UkdHY3o1TGJ1TE5ySGFFL3NjZjA5UHBoWkVGK1IrQ1NrV25pTTQvdEE4?= =?utf-8?B?NTNRTTR1eHYrblllMXFBNHpmaWlQVWxGUXpTZjJ2RStZTUt2UmNvbmtQVWFn?= =?utf-8?B?UnovSjBUUkRSYjJNS2tpbEtXaUJHajB3dHJPMDA3Rk5YL09EUzBoUGN1RHhm?= =?utf-8?B?cjlIcnJuS0tiaXZhSjQrcG1uTjg0dFNWTXljVmthQnVNeDBoQXM4djhrMG9T?= =?utf-8?B?UmZ0RnVNYU1IZFJYQk5FZ3hVdWthNi94ekZNRWxlNWNoajVqN1IrTWdUVVM5?= =?utf-8?B?UlpwSFp1dENRalQyUDZzdmJDOHhhOEJqU3YxTC83bDJIa0hMQ0xmNXE2NW00?= =?utf-8?B?OXhJeUh5ODBzbWRSa1Qza1JGVkhSbU41R2tMNGlUVUY2TTREYVdVbW1LTXRI?= =?utf-8?B?VXNDTkJ4S2dwNEtubDQxK0gvRHQyNUVBRUV4dlVqTkVBZ0JlQTkzZU5PYTU2?= =?utf-8?B?Mjgwa1B1dDJUWis4azVhV2V1OXFoU3M2Mkxhd0hyUTkrdHA5MlhjUT09?= Content-Type: text/plain; charset="utf-8" Content-ID: <10855F9AF1BE1C4AA0D69EACE485AFC4@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: c71b5f7e-a000-4028-fa42-08da5574fd99 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2022 00:03:38.5171 (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: Rgi6ZGl7s6DWNmpjpghKhVlKojPAZij2wOG8YASmD3XR93QbK7rnObMUbcKlmrbz2jzNoQTAuNb1XqHeBHjl9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR05MB5901 ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1656029021; a=rsa-sha256; cv=pass; b=11Db4qGiyAOB/Ld/BUlCWE0rdBwtQnaiaIUdv6t8lXzJ5g/jORYH4m66NKEhRl8wDBB5Dd Mc5DDcgtNuryZYANnF+kkHUdl06fQ5apBtYIz3FcYyFBjPkwCyEePJNgw9vo5w2t/RTEPp J1C1RuU91iwbVY00uBDkvLvLilWxLXc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1656029021; 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=wFsItjbhmotk0tDl682zpqg+tNC6BKWfRHoFXQcYHQ8=; b=55aVdkNsCZa6TiTfVAbCHfW8fQvy4FeQOuijWcJXBjoixYRVZ7PxvykuzPCXFtkP7ZfjIj CusGqYmcvHKjL0fl3icNK0wFj7oJVBt7M1O7KQT8HtTusIDJ9uY5fggIzb1jR7jwM4A1G0 eTTFk+UIN5TOEFyuzRXVi1ZInXYb8ps= ARC-Authentication-Results: i=2; imf11.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=BTPQiRld; dmarc=pass (policy=quarantine) header.from=vmware.com; spf=none (imf11.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.244.49) smtp.mailfrom=namit@vmware.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") X-Stat-Signature: zr1q6qcfcgc4j9ji5gt7cem5snib6gts X-Rspamd-Queue-Id: 65EF340026 Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=vmware.com header.s=selector2 header.b=BTPQiRld; dmarc=pass (policy=quarantine) header.from=vmware.com; spf=none (imf11.hostedemail.com: domain of namit@vmware.com has no SPF policy when checking 40.107.244.49) smtp.mailfrom=namit@vmware.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1656029021-30003 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: T24gSnVuIDIzLCAyMDIyLCBhdCA0OjQ5IFBNLCBQZXRlciBYdSA8cGV0ZXJ4QHJlZGhhdC5jb20+ IHdyb3RlOg0KDQo+IE9uIFRodSwgSnVuIDIzLCAyMDIyIGF0IDExOjM1OjAwUE0gKzAwMDAsIE5h ZGF2IEFtaXQgd3JvdGU6DQo+PiBPbiBKdW4gMjMsIDIwMjIsIGF0IDQ6MjQgUE0sIFBldGVyIFh1 IDxwZXRlcnhAcmVkaGF0LmNvbT4gd3JvdGU6DQo+PiANCj4+PiDimqAgRXh0ZXJuYWwgRW1haWwN Cj4+PiANCj4+PiBPbiBXZWQsIEp1biAyMiwgMjAyMiBhdCAxMTo1MDozNUFNIC0wNzAwLCBOYWRh diBBbWl0IHdyb3RlOg0KPj4+PiBGcm9tOiBOYWRhdiBBbWl0IDxuYW1pdEB2bXdhcmUuY29tPg0K Pj4+PiANCj4+Pj4gVXNpbmcgYSBQVEUgb24geDg2IHdpdGggY2xlYXJlZCBhY2Nlc3MtYml0IChh a2EgeW91bmctYml0KQ0KPj4+PiB0YWtlcyB+NjAwIGN5Y2xlcyBtb3JlIHRoYW4gd2hlbiB0aGUg YWNjZXNzIGJpdCBpcyBzZXQuIEF0IHRoZSBzYW1lDQo+Pj4+IHRpbWUsIHNldHRpbmcgdGhlIGFj Y2Vzcy1iaXQgZm9yIG1lbW9yeSB0aGF0IGlzIG5vdCB1c2VkIChlLmcuLA0KPj4+PiBwcmVmZXRj aGVkKSBjYW4gaW50cm9kdWNlIGdyZWF0ZXIgb3ZlcmhlYWRzLCBhcyB0aGUgcHJlZmV0Y2hlZCBt ZW1vcnkgaXMNCj4+Pj4gcmVjbGFpbWVkIGxhdGVyIHRoYW4gaXQgc2hvdWxkIGJlLg0KPj4+PiAN Cj4+Pj4gVXNlcmZhdWx0ZmQgY3VycmVudGx5IGRvZXMgbm90IHNldCB0aGUgYWNjZXNzLWJpdCAo ZXhjbHVkaW5nIHRoZQ0KPj4+PiBodWdlLXBhZ2VzIGNhc2UpLiBBcmd1YWJseSwgaXQgaXMgYmVz dCB0byBsZXQgdGhlIHVzZXIgY29udHJvbCB3aGV0aGVyDQo+Pj4+IHRoZSBhY2Nlc3MgYml0IHNo b3VsZCBiZSBzZXQgb3Igbm90LiBUaGUgZXhwZWN0ZWQgdXNlIGlzIHRvIHJlcXVlc3QNCj4+Pj4g dXNlcmZhdWx0ZmQgdG8gc2V0IHRoZSBhY2Nlc3MtYml0IHdoZW4gdGhlIGNvcHkvd3Agb3BlcmF0 aW9uIGlzIGRvbmUgdG8NCj4+Pj4gcmVzb2x2ZSBhIHBhZ2UtZmF1bHQsIGFuZCBub3QgdG8gc2V0 IHRoZSBhY2Nlc3MtYml0IHdoZW4gdGhlIG1lbW9yeSBpcw0KPj4+PiBwcmVmZXRjaGVkLg0KPj4+ PiANCj4+Pj4gSW50cm9kdWNlIFVGRkRJT19bb3BdX0FDQ0VTU19MSUtFTFkgdG8gZW5hYmxlIHVz ZXJzcGFjZSB0byByZXF1ZXN0IHRoZQ0KPj4+PiB5b3VuZyBiaXQgdG8gYmUgc2V0Lg0KPj4+PiAN Cj4+Pj4gQ2M6IE1pa2UgS3JhdmV0eiA8bWlrZS5rcmF2ZXR6QG9yYWNsZS5jb20+DQo+Pj4+IENj OiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+DQo+Pj4+IENjOiBBbmRyZXcgTW9ydG9u IDxha3BtQGxpbnV4LWZvdW5kYXRpb24ub3JnPg0KPj4+PiBDYzogQXhlbCBSYXNtdXNzZW4gPGF4 ZWxyYXNtdXNzZW5AZ29vZ2xlLmNvbT4NCj4+Pj4gQ2M6IFBldGVyIFh1IDxwZXRlcnhAcmVkaGF0 LmNvbT4NCj4+Pj4gQ2M6IERhdmlkIEhpbGRlbmJyYW5kIDxkYXZpZEByZWRoYXQuY29tPg0KPj4+ PiBDYzogTWlrZSBSYXBvcG9ydCA8cnBwdEBsaW51eC5pYm0uY29tPg0KPj4+PiBTaWduZWQtb2Zm LWJ5OiBOYWRhdiBBbWl0IDxuYW1pdEB2bXdhcmUuY29tPg0KPj4+IA0KPj4+IEhtbS4uIGlzIHRo ZSBodWdldGxiIGNvZGUgb3Zlcmxvb2tlZCAoZm9yIGJvdGggb2YgdGhlIGhpbnRzKSwgb3IgbWF5 YmUgSQ0KPj4+IG1pc3NlZCBpdD8gRG8gd2UgbmVlZCB0byBjb3ZlciB0aGVtIHRvbz8gVGhhbmtz LA0KPj4gDQo+PiBJIGRvIG5vdCBrbm93IHdoYXQgdGhlIHZhbHVlIG9mIG5vdCBzZXR0aW5nIHRo ZSBQVEXigJlzIGFjY2Vzcy9kaXJ0eSB3aGVuIGl0DQo+PiBjb21lcyB0byBwZXJmb3JtYW5jZS4g VGhlIHBhZ2VzIHdvbuKAmXQgYmUgc3dhcHBlZCBvdXQsIGp1c3QgYXMgeW91IHdyb3RlIGluDQo+ PiB5b3VyIGNvbW1lbnQgaW4gaHVnZXRsYl9tY29weV9hdG9taWNfcHRlKCk6DQo+PiANCj4+ICAg ICAgICAvKg0KPj4gICAgICAgICAqIEFsd2F5cyBtYXJrIFVGRkRJT19DT1BZIHBhZ2UgZGlydHk7 IG5vdGUgdGhhdCB0aGlzIG1heSBub3QgYmUNCj4+ICAgICAgICAgKiBleHRyZW1lbHkgaW1wb3J0 YW50IGZvciBodWdldGxiZnMgZm9yIG5vdyBzaW5jZSBzd2FwcGluZyBpcyBub3QNCj4+ICAgICAg ICAgKiBzdXBwb3J0ZWQsIGJ1dCB3ZSBzaG91bGQgc3RpbGwgYmUgY2xlYXIgaW4gdGhhdCB0aGlz IHBhZ2UgY2Fubm90IGJlDQo+PiAgICAgICAgICogdGhyb3duIGF3YXkgYXQgd2lsbCwgZXZlbiBp ZiB3cml0ZSBiaXQgbm90IHNldC4NCj4+ICAgICAgICAgKi8NCj4+ICAgICAgICBfZHN0X3B0ZSA9 IGh1Z2VfcHRlX21rZGlydHkoX2RzdF9wdGUpOw0KPj4gICAgICAgIF9kc3RfcHRlID0gcHRlX21r eW91bmcoX2RzdF9wdGUpOw0KPj4gDQo+PiBJZiB5b3Ugd2FudCBmb3IgY29uc2lzdGVuY3kvcm9i dXN0bmVzcyBub3QgdG8gc2V0IGRpcnR5IG9uIHJlYWQtb25seQ0KPj4gZW50cmllcywgdGhhdOKA mXMgc29tZXRoaW5nIHRoYXQgSSBjYW4gZG8uDQo+IA0KPiBXZSBoYXZlIG1vcmUgdGhhbiBvbmUg b3B0aW9ucyBoZXJlIEkgZ3Vlc3MuDQo+IA0KPiBXZSBjb3VsZCBoYXZlIHRoZSBoaW50cyBub3Qg YXZhaWxhYmxlIGZvciBodWdldGxiZnMsIGJ1dCB0aGVuIHdlJ2xsIGJvdGgNCj4gbmVlZCB0byBh ZGQgc3BlY2lhbCBkb2N1bWVudCBmb3IgaHVnZXRsYmZzICh3aGVuIHlvdSB3cml0ZSB0aGUgbWFu LXBhZ2UsDQo+IGxldCdzIHNheSkgYW5kIGFsc28gaXQnbGwgYmUgcHJvYmFibHkgYmV0dGVyIHRv IGZhaWwgdGhlIGlvY3RscyB3aXRoIGhpbnRzDQo+IHdoZW4gYXBwbHlpbmcgdG8gaHVnZXRsYiB2 bWFzLg0KPiANCj4gTGVhdmluZyB0aGVtIHNpbGVudCB0byBodWdldGxiZnMgaXMgYW5vdGhlciBv cHRpb24sIGl0IGp1c3Qgc291bmRzIHdlaXJkIHRvDQo+IG1lIHdpdGhvdXQgYW55IGtpbmQgb2Yg ZG9jdW1lbnRhdGlvbiBzbyBJIGxpa2UgdGhpcyBvbmUgbGVhc3QuDQo+IA0KPiBPciB3ZSBjb3Vs ZCBtYWtlIHRoZW0gd29yayBmb3IgaHVnZXRsYmZzIHRvby4gIE5vdCBzYXlpbmcgdGhhdCBzd2Fw IHdpbGwNCj4gd29yayBzb21lIGRheSAoYnV0IGl0IHN0aWxsIGNvdWxkPyEpIGl0IGp1c3Qgc2Vl bXMgYWxsIGNvbnNpc3RlbnQgYXMgeW91DQo+IHNhaWQuDQo+IA0KPiBTbyBJJ2QgcHJlZmVyIHRo ZSBsYXN0IG9uZSwgYnV0IG9ubHkgaWYgeW91IGFncmVlLg0KDQpNeSB0YWtlIGlzIHRoYXQgaGlu dHMgYXJlIGhpbnRzLiBGb2xsb3dpbmcgRGF2aWTigJlzIChvciB3YXMgaXQgeW91cnM/KQ0KZmVl ZGJhY2ssIEkgZml4ZWQgdGhlIGRlc2NyaXB0aW9uIHRvIGluZGljYXRlIHRoYXQgdGhpcyBpcyBt ZXJlbHkgYSBoaW50IGFuZA0KcmVtb3ZlZCBhbGwgcmVmZXJlbmNlcyB0byBkaXJ0eS9hY2Nlc3Mg Yml0cy4gVGhlIGtlcm5lbCB0aGVyZWZvcmUgY2FuIGlnbm9yZQ0KdGhlIGhpbnQgd2hlbiBpdCB3 YW50cyB0byBvciB1c2UgaXQgaW4gYW55IG90aGVyIHdheS4gSSBmdWxseSBhZ3JlZSB0aGF0DQp0 aGlzIGdpdmVzIHRoZSBrZXJuZWwgdGhlIGFiaWxpdHkgdG8gY2hhbmdlIHRoZSBiZWhhdmlvciBh cyBuZWVkZWQuDQoNCk5vdGUgdGhhdCBmb3Igd3JpdGUtcHJvdGVjdGVkIDRLQiB6ZXJvLXBhZ2Ug KHdoZXJlIHdlIHNoYXJlIHRoZSB6ZXJvLXBhZ2UpDQp3ZSBhbHdheXMgc2V0IHRoZSBhY2Nlc3Mt Yml0LCByZWdhcmRsZXNzIG9mIHRoZSBoaW50LCBiZWNhdXNlIGl0IG1ha2VzDQpzZW5zZTogdGhl IHplcm8tcGFnZSBpcyBub3Qgc3dhcHBhYmxlIGFuZCB0aGVyZWZvcmUgdGhlIGFjY2Vzcy1iaXQg aXMgc2V0Lg0KDQpJIHRoaW5rIHRoYXQgdGhlIGxlc3NlciB1c2VyLWZhY2luZyBkb2N1bWVudGF0 aW9uIHRoZXJlIGlzIG9uIGhvdyB0aGUNCmZlYXR1cmUgaXMgKmV4YWN0bHkqIHVzZWQgYnkgdGhl IGtlcm5lbCAtIGlzIGJldHRlciBmcm9tIGFuIEFQSSBwb2ludCBvZg0Kdmlldy4NCg0KU28gSSBz ZWUgbm8gcmVhc29uIHRvIGZhaWwgb3IgYmUgZm9yY2VkIG5vdCB0byBzZXQgYSBwYWdlIGFzIHlv dW5nLCBqdXN0DQpiZWNhdXNlIGEgaGludCB3YXMgKm5vdCogcHJvdmlkZWQuIFRoaXMgd291bGQg ZXZlbiBiZSBhIHJlZ3Jlc3Npb24gaW4gdGhlDQpiZWhhdmlvci4gVGhlIGhpbnQgaXMgYWN0dWFs bHkgYWx3YXlzIHJlc3BlY3RlZCByaWdodCBub3csIGl0IGlzIGp1c3QgdGhhdA0KZXZlbiBpZiB5 b3UgZG8gbm90IHByb3ZpZGUgdGhlIGhpbnQsIHRoZSBhY2Nlc3MvZGlydHkgaXMgc2V0Lg0KDQpU aGUgb25seSBjb25zaXN0ZW5jeSBJIHRoaW5rIHdvcnRoIHRoaW5raW5nIGFib3V0IGlzIHdpdGgg dGhlIGRpcnR5LWJpdCwgYW5kDQpJIGNhbiBhZGQgaXQgaWYgeW91IHdhbnQuIE5vdGUgdGhhdCB0 aGUgYWNjZXNzLWJpdCAoaW4geDg2KSBtaWdodCBiZSBzZXQNCnNwZWN1bGF0aXZlbHkgaW4gY29u dHJhc3QgdG8gdGhlIGRpcnR5LWJpdCBpcyBvbmx5IHNldCBhdG9taWNhbGx5IHdpdGggYQ0KcmVh bCBhY2Nlc3MuIFRoYXTigJlzIHRoZSByZWFzb24gSSB0aGluayBpdCBtYXkgbWFrZSBzZW5zZSBu b3QgdG8gc2V0IHRoZQ0KZGlydHkgd2l0aG91dCBhIGhpbnQuDQoNCklzIHRoYXQgYWNjZXB0YWJs ZT8gQWNjZXNzLWJpdCBhbHdheXMgc2V0LCBkaXJ0eS1iaXQgYWNjb3JkaW5nIHRvIGhpbnQ/DQoN Cg==