Received: by 2002:a05:7412:419a:b0:f3:1519:9f41 with SMTP id i26csp529695rdh; Thu, 23 Nov 2023 10:25:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IG1viliWFCSXu3W54aAmtqIA/UOHK1Ge1WiXhrITGEeHz+irp0mIPMXg4HQGay7zbd0tfBe X-Received: by 2002:a05:6e02:1be7:b0:359:cc15:b0b3 with SMTP id y7-20020a056e021be700b00359cc15b0b3mr515406ilv.25.1700763919368; Thu, 23 Nov 2023 10:25:19 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1700763919; cv=pass; d=google.com; s=arc-20160816; b=X0lH5XtZqBkvyBOvcJ3J5NCXIyhi3N5uatCemCR2l+QKBmnSj6y1IoeQpfKlol9b9V Z5mPfsVoSZ07Gzax40TwuY33kLst761h+AF27EBHr2SBalcdUFUBqSBtUvEF7P3Lhst1 BfIFe8+KlL4M011tFbwLlU0RFQjVxcuRT5WIHEEZ04DBPBEvKsulSla8bR88KX/vE/EB 1fSZiSkMDqiHhoOV+uUSogamJ3uwyz8DqitQCfUZkY3dlfHQJ4mmoHQd6AL/ayxgas8X xorDu7u8JOMPZ4fMndghJcNUtdWtGHiI9NAWg1kh1wxEKvzAQqHSirdilZyidiufbdon //WQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-id:user-agent:content-language:accept-language:in-reply-to :references:message-id:date:thread-index:thread-topic:subject:cc:to :from:dkim-signature; bh=nhsDcEHNp5JO/S7l29qCQNJ+pARtzKs29q2SaZQKKgY=; fh=A8t/PTdpnedQXbd2DY4wCxc3yCV32tToOFad2WimTXk=; b=aOMskMBmxl5MJNuFe9VA9ARoSW5JChlMxwUsOzN+exsY7j38WFZJtIpPhOwCOzTm9v 1lDV7UxqO4Y6THcpxsm38FXGbLCOG/67a7Mk8TVRCOIzWjBZ+jqp3qETNcdGg54mn4AT T6CZYviIgdzb5a5XZF0C4ll8ToZ0gknzw10ABrdoiwq/beH00aMlNmO5VsQvJy32V+d3 s4LMSVONmMqA+sOoyEArKP8C1I+ia7qk+Wy83C4EX7Y6maO0UJGzAB5a1F56kUJM6gsU hZ02Ec0HrzbLgSgzFh43FNxmtgSW8/P3Qjho51DZa7rmacQp3zL+FAM2RJgOoq5Dk7zW lujQ== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@csgroup.eu header.s=selector2 header.b=WdM1U2nQ; arc=pass (i=1 spf=pass spfdomain=csgroup.eu dkim=pass dkdomain=csgroup.eu dmarc=pass fromdomain=csgroup.eu); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=csgroup.eu Return-Path: Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id w2-20020a631602000000b005b999968b85si1649555pgl.666.2023.11.23.10.25.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 23 Nov 2023 10:25:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; dkim=pass header.i=@csgroup.eu header.s=selector2 header.b=WdM1U2nQ; arc=pass (i=1 spf=pass spfdomain=csgroup.eu dkim=pass dkdomain=csgroup.eu dmarc=pass fromdomain=csgroup.eu); spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=csgroup.eu Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id F07EC80B2312; Thu, 23 Nov 2023 10:22:44 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.11 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230015AbjKWSWd (ORCPT + 99 others); Thu, 23 Nov 2023 13:22:33 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58222 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230306AbjKWSWb (ORCPT ); Thu, 23 Nov 2023 13:22:31 -0500 Received: from FRA01-PR2-obe.outbound.protection.outlook.com (mail-pr2fra01on2088.outbound.protection.outlook.com [40.107.12.88]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6FD5B93 for ; Thu, 23 Nov 2023 10:22:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LF6LNNCv81abGDn6Wd+pB1gVSL+F2f3emNfDe6GOjzjDzMSNSd2F1kXkpaKocYHkybnLc7x1HtEAGs5rqEufhAG30j7h5YN9Up7mYfVbtqM+oLOmx8bmz3lXE/EWLNKwk5QNDfX6+2IDsXZImDdQnLYSrz8lJdvHfjVkvyVmwW5idw8EFwukhMovCoywgHiIZnekLUkGx7hdoPqA9xuRvfGHuszbe/zCK9il2NQEpHW8yJ2Op9vSgUEw0S5YM4uUDRh366S/qws1FjhTUjcGz/QvpsHvulfont+kfcmrswjNW2Ib8xG5bCKTzbOWuqfYcqi0p4+Z2pZ8hKdnQK1szQ== 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=nhsDcEHNp5JO/S7l29qCQNJ+pARtzKs29q2SaZQKKgY=; b=Wro+nfxLilInOf2FnYR819MJLHyqswJMvFM3UzvDV657sdwqW8b6wnMKz3hsOT0Rvd82Ll+PCWCd94IV+B6l9lhIVvdW1G1mqIFvgu8DbUECqv6CyN7tGYasGMD56upzDFW/LJ61VKUFoXiBL65A/++aBDmrbP7mGaDHeiXyEJseDNjvBUCtZ2/tCR7Uf5qkO3YaMjiTSRABVsp7PmyxQVh97Iwp9V1KvEQj1QmrL5eZjHg4LPdPpG/RgbjjDaPXdSlG6gLz/zS9yfY2YY2Ume6rdXt1lLzXcBoqFnnzyC00wBcg89jciSCYdNgv01rub8sq2z8Bai+q0JO2LkYYaQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=csgroup.eu; dmarc=pass action=none header.from=csgroup.eu; dkim=pass header.d=csgroup.eu; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=csgroup.eu; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nhsDcEHNp5JO/S7l29qCQNJ+pARtzKs29q2SaZQKKgY=; b=WdM1U2nQ5Ksk2SxqFoBsvbkSGGoxKCYdJHf2MwfGQANizyxdbCiEDT2DkrHylUFottOVN6LYEdt631htHlTUyindIGZMTyfS7iSm3CKen8vzZ8UEJLPvwlqjRUB5Z+tWEBv6jMrWaaJMWFknAc35ykIRMvbqN2xd7ip8R2h/SHL9n0240fOYfFATaciMX6iKpwQ+2x7SaPfLPmV+MlRYTLopvvwKrVOAmA/iq8Xongsb9sNi4QMETAzaXI4/auukscqnL5+FzaV97Nd6DMXSQzx27aBMAFP5nu/QXDBSCahrZaW31xYcILVwMuTM23z7Izb4I1Pvd/FJmxucJ8mr3A== Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:31::15) by PR1P264MB2192.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:193::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.13; Thu, 23 Nov 2023 18:22:33 +0000 Received: from MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::5bfe:e2f2:6d89:8d97]) by MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM ([fe80::5bfe:e2f2:6d89:8d97%3]) with mapi id 15.20.7046.012; Thu, 23 Nov 2023 18:22:33 +0000 From: Christophe Leroy To: Peter Xu , Christoph Hellwig CC: "linux-kernel@vger.kernel.org" , "linux-mm@kvack.org" , Andrea Arcangeli , James Houghton , Lorenzo Stoakes , David Hildenbrand , Vlastimil Babka , John Hubbard , Yang Shi , Rik van Riel , Hugh Dickins , Matthew Wilcox , Jason Gunthorpe , Axel Rasmussen , "Kirill A . Shutemov" , Andrew Morton , "linuxppc-dev@lists.ozlabs.org" , Mike Rapoport , Mike Kravetz Subject: Re: [PATCH RFC 06/12] mm/gup: Drop folio_fast_pin_allowed() in hugepd processing Thread-Topic: [PATCH RFC 06/12] mm/gup: Drop folio_fast_pin_allowed() in hugepd processing Thread-Index: AQHaGCxakejDChMrKU+uwfinjAsKCLCC5iYAgAIQ84CAAQxzAIAAe2+AgAHEuYA= Date: Thu, 23 Nov 2023 18:22:33 +0000 Message-ID: <57be0ed0-f1d7-4583-9a5f-3ed7deb0ea97@csgroup.eu> References: <20231116012908.392077-1-peterx@redhat.com> <20231116012908.392077-7-peterx@redhat.com> In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: fr-FR X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla Thunderbird authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: MRZP264MB2988:EE_|PR1P264MB2192:EE_ x-ms-office365-filtering-correlation-id: a8fcf598-f333-445a-1b09-08dbec5129ab x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gZyes1l3hi2GNJJnOdtD588lF6F4sCX+VuSLgtgqtC8Q5MNhbRNqQbbBAaK/ztUDBjI+u4zNAV60sdYqENUZk3ItfIYCzQyjb6DKSYmnhTsUqAfu78P6hpHwspsXWga9zUEXoB3vAjM3m1zO5wzAy9fAj5m9F4aV8sWtTt2v6GwIeLqpjrxQh1Ec1tnvrNNzNnEytw03huXrm5OYqV72ibAG9eug8+7eZjupEiRZ1bTm9dWKZnuz4/JS+Db+RaibxMtuucA/bZEidNZTlzwybbcpSeHH9um2h2W/+hpVYJ6bRoYJJA2ewwltga17289XnG/54S2dZR7oPHCkJlqAo4Bg4P30gUQvnQBvBflMVCszIAKe5wC+CTlhqQC81YqUv44fox99esKBMOrempwRmqL3f19U1WgoFll77wfFauqihQVAs6Pua3xoNSl1f4Nqt2lbOQwncUw4bhjlgUgVgI01hlI3HStiqp8aFjWvwjeRmC4D1eIbz5ZW8e0WUnhagGOXBYf4hP20WaVEOhhG5U479/FWRVMaMXlkdd7gfxI/uTbapRrZ9u7qB+SgMJOM4PShOLv9kVfd/h4O2eALNk4eYJNwSxSs4RiedgNE/vTv2osOq7QuFPPhcOQyd1LAqDESPlwxtqEqNmPiZgURQBgorL78xURI/7LGBnhLrSkOSZDuSw0k3ImD7OdJODbK x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(376002)(396003)(39860400002)(346002)(366004)(136003)(230922051799003)(64100799003)(186009)(1800799012)(451199024)(6512007)(2616005)(71200400001)(66574015)(6506007)(83380400001)(478600001)(7416002)(5660300002)(2906002)(44832011)(110136005)(41300700001)(76116006)(91956017)(6486002)(8936002)(8676002)(64756008)(54906003)(66946007)(4326008)(66446008)(66476007)(66556008)(316002)(31696002)(122000001)(38100700002)(38070700009)(36756003)(86362001)(31686004)(45980500001)(43740500002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?L3VDRFhjamRHRXpmN3VnZFlGYmZSdGxrMWZvWjJXZi9mSUE5RkxFZ1pUY3lX?= =?utf-8?B?NnFwNDErTnVVWUxoU0VjNEFlbnp5VER3ejF0NUJTVTlvTlQreTEwU3loUmNo?= =?utf-8?B?MG14SHJqZ3BlVHlKR0hpK0RNTGRCbUJuMWg1alo0Q2trMmZSbUZwNzhjRURv?= =?utf-8?B?WEIxL2VvM1kzMVZ5bjBneGdOd0haaHc3UlJRcFg2S3V2S29nVExJZHB3SXBK?= =?utf-8?B?NlhSY3pjOUdkVEZXcnZWajgvandRTkZ6VldMbHVqY01NVUttVkUvQ1lYZjln?= =?utf-8?B?TmZOY1I4Y0tSalJDUTVVOCtaZnNxc1IvdjkrRmd4TjczaTlQTkExUzVQRW5s?= =?utf-8?B?WkhGZGUwUVBwbWJUdTNjUG9MZGh6SDVkZzZvS0ltQUJzMlQvU2c0Wi93UUwx?= =?utf-8?B?YlYxMHI0UUlSVXpPeVFBeG9mcnp2NUpyalF1ei9ZL1BLMlpCcVU3NUhueTFi?= =?utf-8?B?TEpMR1drM3Z5aWQ4eWk3NWJNQzMza0lZUk5EOE5tWnBqRWZ2RUJ1cnBPTHZN?= =?utf-8?B?OHVJeUFHU0czdUJ2ZzMvUVVuMW8rd2VVa1FuOUtlS1p3Q2k5WmgrWnZqN2Y1?= =?utf-8?B?b3ZmcnhwSWdsQVJSZGljdjNORndKdnFaYXphaU9Gb1VJSlVoK0RsOGZrcVk4?= =?utf-8?B?MGI1ZytQWHp3TzdTU2JmdCtsQ3pzZlRNQXhzTkhJOEhtL0ZIUkI4bHNqODMz?= =?utf-8?B?dlN1NE9jVGFiSUUyNkoybGJWTUlWcUg5S1lJdnRlUXFPQ3BmZ0pxekhBV2gx?= =?utf-8?B?Qnp0dldWeFBORVpnVGltTnltMEU5WFpHZFVlK3RLV1JHM0tFcjRDRkRERXE2?= =?utf-8?B?WVJSbGtMaCs3OGtUenR6MC9aZmd5Q2t2RTh2bndTSlZsNEFNMVpmSDFkQVVR?= =?utf-8?B?Um5ZZnlNYW94dXRQcktzb1dnNzdtS2V6a3N1T0ZCaUxER09UckdIZk5EL3ZU?= =?utf-8?B?MnA2VmJOUFJoUkhxSm9pVG50Qll2NTc3a3VJWExSaERhWmc4U1FTMFdTUHA0?= =?utf-8?B?YTdzZ041RGRpRm1kRTdRWWN1SkNVMGRvbVk3dGxrWjZoekxyblZRbG1WSjhB?= =?utf-8?B?SzA4ZzZBNUN3Ui9CZThubXZId3RFUW9pVTJBRS9LQ2l1MXNsc3ZSb1hPZTlG?= =?utf-8?B?TTZmYnc1ZGVTaEFoMllrNU1JbWRXYzgvRkJqaGZuZlFoWWRmYWkrOU4yYUdh?= =?utf-8?B?VHlHa2NhSGxtYXp0cEZ2RTdFWGxGbHZSRk5uUjRJemY5WlpvZDNHTVhpWncw?= =?utf-8?B?cWVRdktuQmNtcUk2bStUNnVnWnA2Ni84WkNnWERkaVJmN0xkSUFzU3VPUUx5?= =?utf-8?B?UTY4cjY0MWx1YjFZdm5BM2tsQlBzTGs5dkhDTnY2TXpiRElrWmtWUU54Vm5D?= =?utf-8?B?bSthYVVyQW5jSjkydDBHTytKT2Q0T29OemF1eEJoVVoySTZPWTRuclpOSCsr?= =?utf-8?B?K0pMZkhJVjRyd0RpZVZ2MXJmeGF6eVFadERZV3Z3ckI4NWY2WUVaQ3V4cU5N?= =?utf-8?B?UTFOUHBpc0wxMXVFWG03bjRkdnRKOWpBcVA5MWtEZWpSSHRCZGJVL2JKYWVv?= =?utf-8?B?N0laTlczSUV2akZ5d1ZoV2RRMVZTdGRoSUNCaGdLamlTVm8vZEpoSTdsYjZJ?= =?utf-8?B?Ui9FSm0yRU9ybnNFZENadmFXc2xjRUFEN3prRlNacStuZnBRTUR2V0JEZ1FB?= =?utf-8?B?UTk4Z0t3dUNZMklYWVo4YnhDRnJFVHVqdndsZjl6Yzd4ekJQK1hIV1IwZ2Ny?= =?utf-8?B?WGNDRFRTR2p3bXVGNDJ0RkFKVjFhdWMrNWxSSzVQbXNUODlPMHBOYngwZWt5?= =?utf-8?B?YnBOOU0xNVRDdWd4RzYraUZVb2cycUxOZHZJdFpYTjFIUWUvZGo5NXUxQmtT?= =?utf-8?B?dWhzNnYyVXAxNDJqTkVrc0hMV0FBTUtIQy9OTEFpSHI5TnlUU0hzMXA1VjNX?= =?utf-8?B?U1UrNW5mZnIxQnJudUVuU3pUNXJpazdTQXVRbFJaSm0wMitIUk05SWIySDJS?= =?utf-8?B?RGJtTW1ibjVmQjBaNlltdGdrRGZMVy9qOEpEYWNBS0JRS2RHMENBVnBPVFR4?= =?utf-8?B?eHhDaUU5TGZUc0paRUhPbkdjUDB6RU5FNXlzMTF4WlBCUU5WUit3R2hxRUdI?= =?utf-8?B?a1NHU1BYS0QwcGpNZWIwMDZVRnlmMTc5c2JMV0RDYWFncFVLYlljbUszeStM?= =?utf-8?B?am9ETlRqV2R5azdUdENlL0ozSzR6SGFoSm9FWU54eXhiMTZJdjdCRzhxUEo1?= =?utf-8?B?ZVdxRGI3VFNuelQyUFRNTWVBUE5nPT0=?= Content-Type: text/plain; charset="utf-8" Content-ID: <1FB45C6A7D146242955841A8E73218D8@FRAP264.PROD.OUTLOOK.COM> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MRZP264MB2988.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: a8fcf598-f333-445a-1b09-08dbec5129ab X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Nov 2023 18:22:33.8619 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 7BnEB2XfPLWQRj0B8/7MmDe4aEeLyXXgWcn38gn94frp8TmC0pStd0MDdfqIkvN2ZbW2lkt4hEKlOM+YtRtnJFhccuNRwcJJ09Zo7ig94wI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR1P264MB2192 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Thu, 23 Nov 2023 10:22:45 -0800 (PST) DQoNCkxlIDIyLzExLzIwMjMgw6AgMTY6MjIsIFBldGVyIFh1IGEgw6ljcml0wqA6DQo+IE9uIFdl ZCwgTm92IDIyLCAyMDIzIGF0IDEyOjAwOjI0QU0gLTA4MDAsIENocmlzdG9waCBIZWxsd2lnIHdy b3RlOg0KPj4gT24gVHVlLCBOb3YgMjEsIDIwMjMgYXQgMTA6NTk6MzVBTSAtMDUwMCwgUGV0ZXIg WHUgd3JvdGU6DQo+Pj4+IFdoYXQgcHJldmVudHMgdXMgZnJvbSBldmVyIHVzaW5nIGh1Z2VwZCB3 aXRoIGZpbGUgbWFwcGluZ3M/ICBJIHRoaW5rDQo+Pj4+IGl0IHdvdWxkIG5hdHVyYWxseSBmaXQg aW4gd2l0aCBob3cgbGFyZ2UgZm9saW9zIGZvciB0aGUgcGFnZWNhY2hlIHdvcmsuDQo+Pj4+DQo+ Pj4+IFNvIGtlZXBpbmcgdGhpcyBjaGVjayBhbmQgZ2VuZXJhbGl6aW5nIGl0IHNlZW1zIGxpa2Ug dGhlIGJldHRlciBpZGVhIHRvDQo+Pj4+IG1lLg0KPj4+DQo+Pj4gQnV0IHRoZW4gaXQgbWVhbnMg d2UncmUgc3RpbGwga2VlcGluZyB0aGF0IGRlYWQgY29kZSBmb3IgZmFzdC1ndXAgZXZlbiBpZg0K Pj4+IHdlIGtub3cgdGhhdCBmYWN0Li4gIE9yIGRvIHdlIGhhdmUgYSBwbGFuIHRvIGFkZCB0aGF0 IHN1cHBvcnQgdmVyeSBzb29uLCBzbw0KPj4+IHRoaXMgY29kZSB3aWxsIGJlIGRlc3RpbmVkIHRv IGFkZCBiYWNrPw0KPj4NCj4+IFRoZSBxdWVzdGlvbiB3YXNuJ3QgbWVhbiByZXRvcmljYWwgLSB3 ZSBzdXBwb3J0IGFyYml0cmFyeSBwb3dlciBvZiB0d28NCj4+IHNpemVkIGZvbGlvcyBmb3IgdGhl IHBhZ2VwYWdlLCB3aGF0IHByZXZlbnRzIHVzIGZyb20gdXNpbmcgaHVnZXBkIHdpdGgNCj4+IHRo ZW0gcmlnaHQgbm93Pw0KPiANCj4gQWgsIGRpZG4ndCBjYXRjaCB0aGF0IHBvaW50IHByZXZpb3Vz bHkuICBIdWdlcGQgaXMganVzdCBub3QgdXNlZCBvdXRzaWRlDQo+IGh1Z2V0bGIgcmlnaHQgbm93 LCBhZmFpdS4NCj4gDQo+IEZvciBleGFtcGxlLCBfX2h1Z2VwdGVfYWxsb2MoKSAoYW5kIHRoYXQn cyB0aGUgb25seSBvbmUgY2FsbHMNCj4gaHVnZXBkX3BvcHVsYXRlKCkpIHNob3VsZCBiZSB0aGUg ZnVuY3Rpb24gdG8gYWxsb2NhdGUgYSBodWdlcGQgKHBwYyBvbmx5KSwNCj4gYW5kIGl0J3Mgb25s eSBjYWxsZWQgaW4gaHVnZV9wdGVfYWxsb2MoKSwgd2hpY2ggaXMgcGFydCBvZiB0aGUgY3VycmVu dA0KPiBhcmNoLXNwZWNpZmljIGh1Z2V0bGIgYXBpLg0KPiANCj4gQW5kIGdlbmVyaWMgbW0gcGF0 aHMgZG9uJ3Qgbm9ybWFsbHkgaGF2ZSBodWdlcGQgaGFuZGxpbmcsIGFmYWljcy4gIEZvcg0KPiBl eGFtcGxlLCBwYWdlX3ZtYV9tYXBwZWRfd2FsaygpIGRvZXNuJ3QgaGFuZGxlIGh1Z2VwZCBhdCBh bGwgdW5sZXNzIGluDQo+IGh1Z2V0bGIgc3BlY2lmaWMgcGF0aC4NCj4gDQo+IFRoZXJlJ3JlIGFj dHVhbGx5IChvbmx5KSB0d28gZ2VuZXJpYyBtbSBwYXRocyB0aGF0IGNhbiBoYW5kbGUgaHVnZXBk LA0KPiBuYW1lbHk6DQo+IA0KPiAgICAtIGZhc3QtZ3VwDQo+ICAgIC0gd2Fsa19wYWdlXyooKSBh cGlzIChha2EsIF9fd2Fsa19wYWdlX3JhbmdlKCkpDQo+IA0KPiBGb3IgZmFzdC1ndXAgSSB0aGlu ayB0aGUgaHVnZXBkIGNvZGUgaXMgaW4gdXNlLCBob3dldmVyIGZvciB3YWxrX3BhZ2VfKg0KPiBh cGlzIGh1Z2VwZCBjb2RlIHNob3VsZG4ndCBiZSByZWFjaGVkIGlpdWMgYXMgd2UgaGF2ZSB0aGUg aHVnZXRsYiBzcGVjaWZpYw0KPiBoYW5kbGluZyAod2Fsa19odWdldGxiX3JhbmdlKCkpLCBzbyBh bnl0aGluZyB3aXRoaW4gd2Fsa19wZ2RfcmFuZ2UoKSB0byBoaXQNCj4gYSBodWdlcGQgY2FuIGJl IGRlYWQgY29kZSB0byBtZSAoYnV0IG5vdGUgdGhhdCB0aGlzICJkZWFkIGNvZGUiIGlzIGdvb2QN Cj4gc3R1ZmYgdG8gbWUsIGlmIG9uZSB3b3VsZCBsaWtlIHRvIG1lcmdlIGh1Z2V0bGIgaW5zdGVh ZCBpbnRvIGdlbmVyaWMgbW0pLg0KDQpOb3Qgc3VyZSB3aGF0IHlvdSBtZWFuIGhlcmUuIFdoYXQg ZG8geW91IG1lYW4gYnkgImRlYWQgY29kZSIgPw0KQSBodWdlcGFnZSBkaXJlY3RvcnkgY2FuIGJl IHBsdWdnZWQgYXQgYW55IHBhZ2UgbGV2ZWwsIGZyb20gUEdEIHRvIFBNRC4NClNvIHRoZSBmb2xs b3dpbmcgYml0IGluIHdhbGtfcGdkX3JhbmdlKCkgaXMgdmFsaWQgYW5kIG5vdCBkZWFkOg0KDQoJ CWlmIChpc19odWdlcGQoX19odWdlcGQocGdkX3ZhbCgqcGdkKSkpKQ0KCQkJZXJyID0gd2Fsa19o dWdlcGRfcmFuZ2UoKGh1Z2VwZF90ICopcGdkLCBhZGRyLCBuZXh0LCB3YWxrLCBQR0RJUl9TSElG VCk7DQoNCg0KPiANCj4gVGhpcyBzZXJpZXMgdHJpZXMgdG8gYWRkIHNsb3cgZ3VwIGludG8gdGhh dCBsaXN0IHRvbywgc28gdGhlIDNyZCBvbmUgdG8NCj4gc3VwcG9ydCBpdC4gIEkgcGxhbiB0byBs b29rIG1vcmUgaW50byB0aGlzIGFyZWEgKGUuZy4sIF9fd2Fsa19wYWdlX3JhbmdlKCkNCj4gY2Fu IGJlIGFub3RoZXIgZ29vZCBjYW5kaWRhdGUgc29vbikuICBJJ20gbm90IHN1cmUgd2hldGhlciB3 ZSBzaG91bGQgdGVhY2gNCj4gdGhlIHdob2xlIG1tIHRvIHVuZGVyc3RhbmQgaHVnZXBkIHlldCwg YnV0IHNsb3cgZ3VwIGFuZCBfX3dhbGtfcGFnZV9yYW5nZSgpDQo+IGRvZXMgbG9vayBsaWtlIGdv b2QgY2FuZGlkYXRlcyB0byBhbHJlYWR5IHJlbW92ZSB0aGUgaHVnZXRsYiBzcGVjaWZpYyBjb2Rl DQo+IHBhdGhzIC0gc2xvdy1ndXAgaGFzIGF2ZXJhZ2UgfmFkZC9+ZGVsIExPQ3MgKHdoaWNoIHRo aXMgc2VyaWVzIGRvZXMpLCBhbmQNCj4gX193YWxrX3BhZ2VfcmFuZ2UoKSBjYW4gcmVtb3ZlIHNv bWUgY29kZSBsb2dpY2FsbHksIG5vIGhhcm0gSSB5ZXQgc2VlLg0KPiANCj4gSW5kZWVkIGFib3Zl IGFyZSBiYXNlZCBvbiBvbmx5IG15IGNvZGUgb2JzZXJ2YXRpb25zLCBzbyBJJ2xsIGJlIG1vcmUg dGhhbg0KPiBoYXBweSB0byBiZSBjb3JyZWN0ZWQgb3RoZXJ3aXNlLCBhcyBlYXJseSBhcyBwb3Nz aWJsZS4NCj4gDQo+Pg0KPj4+IFRoZSBvdGhlciBvcHRpb24gaXMgSSBjYW4gYWx3YXlzIGFkZCBh IGNvbW1lbnQgYWJvdmUgZ3VwX2h1Z2VfcGQoKQ0KPj4+IGV4cGxhaW5pbmcgdGhpcyBzcGVjaWFs IGJpdCwgc28gdGhhdCB3aGVuIHNvbWVvbmUgaXMgYWRkaW5nIGh1Z2VwZCBzdXBwb3J0DQo+Pj4g dG8gZmlsZSBsYXJnZSBmb2xpb3Mgd2UnbGwgaG9wZWZ1bGx5IG5vdCBmb3JnZXQgaXQ/ICBCdXQg dGhlbiB0aGF0DQo+Pj4gZ2VuZXJhbGl6YXRpb24gd29yayB3aWxsIG9ubHkgaGFwcGVuIHdoZW4g dGhlIGNvZGUgd2lsbCBiZSBuZWVkZWQuDQo+Pg0KPj4gSWYgZHJvcHBpbmcgdGhlIGNoZWNrIGlz IHRoZSByaWdodCB0aGluZyBmb3Igbm93IChhbmQgSSB0aGluayB0aGUgcHBjDQo+PiBtYWludGFp bmVycyBhbmQgd2lsbHkgYXMgdGhlIGxhcmdlIGZvbGlvIGd1eSBtaWdodCBoYXZlIGEgbW9yZSB1 c2VmdWwNCj4+IG9waW5pb25zIHRoYW4gSSBkbyksIGxlYXZpbmcgYSBjb21tZW50IGluIHdvdWxk IGJlIHZlcnkgdXNlZnVsLg0KPiANCj4gV2lsbHkgaXMgaW4gdGhlIGxvb3AsIGFuZCBJIGp1c3Qg bm90aWNlIEkgZGlkbid0IHJlYWxseSBjb3B5IHBwYyBsaXN0LCBldmVuDQo+IEkgcGxhbm5lZCB0 by4uICBJIGFtIGFkZGluZyB0aGUgbGlzdCAobGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5vcmcp IGludG8NCj4gdGhpcyByZXBseS4gIEknbGwgcmVtZW1iZXIgdG8gZG8gc28gYXMgbG9uZyBhcyB0 aGVyZSdzIGEgbmV3IHZlcnNpb24uDQo+IA0KPiBUaGUgb3RoZXIgcmVhc29uIEkgZmVlbCBsaWtl IGh1Z2VwZCBtYXkgb3IgbWF5IG5vdCBiZSBmdXJ0aGVyIGRldmVsb3BlZCBmb3INCj4gbmV3IGZl YXR1cmVzIGxpa2UgbGFyZ2UgZm9saW8gaXMgdGhhdCBJIHNhdyBQb3dlcjkgc3RhcnRlZCB0byBz aGlmdCB0bw0KPiByYWRpeCBwZ3RhYmxlcywgYW5kIGFmYWljcyBodWdlcGQgaXMgb25seSBzdXBw b3J0ZWQgaW4gaGFzaCB0YWJsZXMNCj4gKGh1Z2VwZF9vaygpKS4gIEJ1dCBhZ2FpbiwgSSBjb25m ZXNzIEkga25vdyBub3RoaW5nIGFib3V0IFBvd2VyIGF0IGFsbC4NCj4gDQo+IFRoYW5rcywNCj4g DQo=