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 27A08EB64DA for ; Mon, 26 Jun 2023 07:45:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5319B8D0002; Mon, 26 Jun 2023 03:45:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4BC718D0001; Mon, 26 Jun 2023 03:45:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 30EB58D0002; Mon, 26 Jun 2023 03:45:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 195518D0001 for ; Mon, 26 Jun 2023 03:45:54 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 4ED1F1C7F4C for ; Mon, 26 Jun 2023 07:45:53 +0000 (UTC) X-FDA: 80944114986.05.DC69E99 Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by imf14.hostedemail.com (Postfix) with ESMTP id A013E100003 for ; Mon, 26 Jun 2023 07:45:48 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=hrZo6RE8; spf=pass (imf14.hostedemail.com: domain of vivek.kasireddy@intel.com designates 134.134.136.65 as permitted sender) smtp.mailfrom=vivek.kasireddy@intel.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1687765549; a=rsa-sha256; cv=pass; b=CPc0tOeK2L0GZKNwZkAsN9R2LnDLx8v4yb9eQb4SUINqrbEa33J7KFAwvLAQKTcmylEmYz POMFqEcb35KQb/E6015GV+Fxi1uf8JOli5CHBH+Lf6wcc6njcXyxs5bJ3n+/QTapDpTJMv VuL7cUia1S+O2+flR4zR9lCYJoUTf8g= ARC-Authentication-Results: i=2; imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=hrZo6RE8; spf=pass (imf14.hostedemail.com: domain of vivek.kasireddy@intel.com designates 134.134.136.65 as permitted sender) smtp.mailfrom=vivek.kasireddy@intel.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687765549; 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=XlKjpJnliwWWhzja5n/t2CaR5M+VXp4q2GwvnIzFCYU=; b=W1JkCfKEeQgXaDwwHKCGemdn4Ga04r3iBGQ0JJ3ECjptmZQEkc5ozMGpUizDzegvrFI2jc ex0bEnD/1bO/LTzP4ojGjpbw+c9VcnwU4jb9zDW0AZaudl119zpTsbnY0HhrzLHV4/CNHl kh3c8zKAv/vri0ErINm5OkGvLKAj8Rg= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1687765548; x=1719301548; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=XlKjpJnliwWWhzja5n/t2CaR5M+VXp4q2GwvnIzFCYU=; b=hrZo6RE8KOkXuOILJWDqmN+TcAJeccrGGxlrzABhGwtDUQxgtFI3VwPp RIo3Jnpn0npcSMjPmltwn1wAB5CSWKRCnFlD7XtqqigDFf4qg66jeF63C 7bLe66gLTpB5rT7/FSWeB2VHtpLKYqeiO67zPEtJ87LooTsEI0yfmB/Gz 0O1UDT86AgqPALa7PvT28KHZrH07HGWOTDrd9J1gR74/+fJnkapX+JAkG 0fcTYhsLGK77QXsMROrHTgUrqbunuhAY7SZvyNddkwiJ5kNyn21Fl3noc bC51mVH3/6zkRLGZc6M+HUP30wfQKPfcR8BHJwts5l//efWRgmhkoDkF0 A==; X-IronPort-AV: E=McAfee;i="6600,9927,10752"; a="364652674" X-IronPort-AV: E=Sophos;i="6.01,159,1684825200"; d="scan'208";a="364652674" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Jun 2023 00:45:45 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10752"; a="890198157" X-IronPort-AV: E=Sophos;i="6.01,159,1684825200"; d="scan'208";a="890198157" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga005.jf.intel.com with ESMTP; 26 Jun 2023 00:45:44 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 26 Jun 2023 00:45:44 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Mon, 26 Jun 2023 00:45:43 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27 via Frontend Transport; Mon, 26 Jun 2023 00:45:43 -0700 Received: from NAM04-BN8-obe.outbound.protection.outlook.com (104.47.74.48) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.23; Mon, 26 Jun 2023 00:45:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K6rsjaKRCbp3hFnNtS3/Da/VDlmKwgjFFQG+qUoLatLmBKOjBkWjeQM5ZCBr/eoaYhh040Qkdbs+8VxnYhLIyy4gdQVDaHVVoQaNaVfNRWboj5Sk8Nq/d4H47D5p9yoO5Ia+NfK6R1NAWU/+e7L8vsBMNtcaFRdYl+nCH79b/ZCgCahP8e1zpSykWEzE+CxJapDbmQj3qM3x5akGDcHuoo+Zl7R2+jq/0/FMhUc+Fynpgcs1MlydROZd2Bm+wqTcebn6P+mU5n3zFVTZtz6bEeYvOD9LxT+CgVxQ71TCmRuWqhvq09CpA0oQ4//2rmKTO2/6oHTHM+H4RROK8b8BDw== 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=XlKjpJnliwWWhzja5n/t2CaR5M+VXp4q2GwvnIzFCYU=; b=N8Rw3WNbplCJUihaKaN2g6nTWTYVFL4xWPOkCRl9QzbB3W09u88W3u15czxOChVFcJnpvbfuoB9WgjwqNxLrXY1cIMmHchrTYjjJN94hdfnSK56EhOwfSJWZtbGISUM0Ps4UstgwHEnAAUzWvCHq1fYvSr7D9xzBISVjoC2VCC/r8fPP1V8FQQ2qWUxgHXGErtMZM9hFtKG0JNZ2Ny283E/fe1TGOG6mg/D+I8Re+7+IGKNvGTFfP0PFRzGVcuUW/Y9qA/YtwxaCqtImPJcKjfGxQWJGo1WvfFFZc0D7fDdaejXraxNRg2VKcaAdpSpm6HMlm+NtX7F+y0e8DR7HBA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from IA0PR11MB7185.namprd11.prod.outlook.com (2603:10b6:208:432::20) by CO1PR11MB5011.namprd11.prod.outlook.com (2603:10b6:303:6d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Mon, 26 Jun 2023 07:45:38 +0000 Received: from IA0PR11MB7185.namprd11.prod.outlook.com ([fe80::f53b:825:ff13:190a]) by IA0PR11MB7185.namprd11.prod.outlook.com ([fe80::f53b:825:ff13:190a%5]) with mapi id 15.20.6521.024; Mon, 26 Jun 2023 07:45:37 +0000 From: "Kasireddy, Vivek" To: Peter Xu CC: David Hildenbrand , "dri-devel@lists.freedesktop.org" , "linux-mm@kvack.org" , Mike Kravetz , Gerd Hoffmann , "Kim, Dongwon" , Andrew Morton , James Houghton , "Jerome Marchand" , "Chang, Junxiao" , "Kirill A . Shutemov" , "Hocko, Michal" , Muchun Song , Jason Gunthorpe , John Hubbard Subject: RE: [PATCH v1 0/2] udmabuf: Add back support for mapping hugetlb pages Thread-Topic: [PATCH v1 0/2] udmabuf: Add back support for mapping hugetlb pages Thread-Index: AQHZpN59yPT6xb778USyK3pSaYthDa+WfGmAgAD+79CAARxvgIACdYfQ Date: Mon, 26 Jun 2023 07:45:37 +0000 Message-ID: References: <20230622072710.3707315-1-vivek.kasireddy@intel.com> <6e429fbc-e0e6-53c0-c545-2e2cbbe757de@redhat.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: IA0PR11MB7185:EE_|CO1PR11MB5011:EE_ x-ms-office365-filtering-correlation-id: 7336280e-7406-4958-bc62-08db76195539 x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 4h20vhJpXm0dlT1tXT/A2xivsduf/6wghPRzSctXlgn/DNsKETrzMHLZaXT7seKfIc4K/VEgtCoTjjqeGCmEzGY6WSxOTWqD//krt3TSmifju+T5vcE5FiD/M+olG4zG61AYlSRBmsP5P8v2Gls2ndAiVk+Er45s4pFwbIelEx96neHr0lAyNwRR0Ob5HpdIWA3HhsrolhPQc0k+VdicCfG+e136nQkFWThlaEYQorLj81/rlg2ASHLnB4Z6024/AGCO0kmvlWUkoKpMAk1HtWXOQHPjFxJNW3IOyryoQ1Qn29HfvgzokRz1APiR8C2ef+jgJlsNzt0yR0aaJJS7YNwKNVSDrBErSmfDeONDCVgo103Q1VwojzBlSKjG4SKXblDkgRkKMYHaM1kSGW2CECD1sKVGv1Vw0AoCHaFVQl4eubLmwrB1aWB+x1vyYyu5r1nMFFRr3Bz5VAXpz8QlKRgvEPetmQrG7kPt8buw1zPrAQAPKPuNQlsibcLNL8OEQ/KUy+xiM451np3DSCFLPoLBeRiLDQgoLdNw7CPA50AdRWflJLf743KQhIuFFUqJAP52lYL7wCK4zT44J6DpxkHdgoVqB9E/kbsh7gv0a9mAFgQcwoI0vlSWXUMd5ADzs4taXY67jDV1QP0o27PbxA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:IA0PR11MB7185.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(346002)(39860400002)(366004)(396003)(451199021)(966005)(71200400001)(478600001)(54906003)(7696005)(83380400001)(6506007)(186003)(26005)(9686003)(2906002)(5660300002)(52536014)(7416002)(33656002)(41300700001)(38100700002)(122000001)(82960400001)(66946007)(55016003)(8936002)(8676002)(66446008)(316002)(86362001)(66476007)(6916009)(4326008)(66556008)(76116006)(38070700005)(64756008)(66899021);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cUtuaEZDSVRENVBGcnUrclROdGJwd2UrODB3SnNsTXJiakJCRTRPTFArVGFr?= =?utf-8?B?bHk2N1RYSlNCUmVubFYwWTV1ZU9FVDIvRndSYTJUVndaalZaSWpZTHdlOUhP?= =?utf-8?B?M1ZBUGo4eThNWmZVZjhPUnVvZHFKRlNIVlEyWEdrMDlVRStrQ003V1pPS2lH?= =?utf-8?B?MDF4ME9uUTdlazlrbXdnc054RjNWVDgrZzFQMWFua1hveDV3NDdVRnM5Qlp0?= =?utf-8?B?THdkRjBrM0FQZ3NSYlNDSDNmRlhyd09tajE0OGh6c0laSEs0TnRRR1ZFTkFK?= =?utf-8?B?S3pvYW1nT2lPdzBzWGt4SGZkRUFneFZtNUx3Y2o0YVo2NnVxVjNQblVtV2hi?= =?utf-8?B?Q21iYWNoOG5tdGFFbzVJYjhabHpVazdibnA4R3RZbzI5YjdYV2ZLYWZhMG9H?= =?utf-8?B?dlBzNkhZQ1NFV0RaMms5eFBhTExrdERTODdPdE50UUZsRG94QlJ4NjJKN2tV?= =?utf-8?B?cnltZmI3WTZjR0lqdWRQdlhlVVdvTmFBR1MwMU53TklITno3ZzVNeU9VdHJk?= =?utf-8?B?eWR5cDZCWVlTR2lWQVNWTUkxOWxYd3NxdEJPZWpVb25DemFtZ05VT0FwU1ZP?= =?utf-8?B?ZWpUYlRmeDFBd3A0S3NiUC95N3RnU3o3QjZuYllOeGRFNk84NnJkdXVaVEhz?= =?utf-8?B?Wk5rSEkrR3RocmV2clR3UGsydmpkbDg4dEpYTmJ6c21za0dZbWxScXFPQjVw?= =?utf-8?B?MU1pWUNLY1MwTmw5QzlXWUFFamNXTmdBYTQ5RGVEYkZxSWlXdzdsWDFkK0lI?= =?utf-8?B?YVJPZHlDSmRicjd5RDBhay8xL3g5VHd6OTVjaG11SkhjRzNEQ0taamw0ajVk?= =?utf-8?B?dWFIbU1XTEhESWJUQjJZVGJQZnhxUFFOcEcwSzh4czFMT0xqMGdJenhyVzBE?= =?utf-8?B?akpQSCttU0VMcEdpWnMvbW5mWkg2emFzSnU5Q2M4ZVpUNm9ZWXFrYUNRTktT?= =?utf-8?B?bm1DYmNFYnZkWWc3SERDcjNlaEtYZVV4dVczM3hoTEczMnNGSzhQc3pJNThU?= =?utf-8?B?aFBId0VBaWlIeWNyZFNvV1E4Zklwdy9hZzdsR1VLakNGNHBEbWNOcEp3b29J?= =?utf-8?B?VzUrUzFrc2FIWVcrb2JkK29pd0FKRzYvb0ZXNkNTYmlSU3lhczNsdC9rOUxi?= =?utf-8?B?VVZsRzFLYkp4UjhjcmhkRlhub09PQ0NYOXRDcmd6OUcvYms4S3l1VmRpQ3Iv?= =?utf-8?B?b1dQczIyL0MwMzB1WmRyd1NVVU9iNnNWckRIQUg4TkhJQ2RaTXk2dTVoTkRT?= =?utf-8?B?VzZQR0VkVEtzaUgvR2Z6aktJTUZJanhNTCthd0ZTdlNIUUNRUzIyQ01ZNytE?= =?utf-8?B?bkxhajNuUUt5OTArWXo1NndTVlZ3S3I2ZVk1dGNsSEZzOVozWE5vV3N0WG5Y?= =?utf-8?B?VGpsUEltZW5tSlNtR0dac3l2dUxFLzVxQm9YNGNTMU9ZTFVaZnNaRTBJdnNS?= =?utf-8?B?TDAyNzh2TGJuNlpoQkY3MjQzcnpQWmEzNFFQdzY0THVPdjN0UkRjL1JtSzhF?= =?utf-8?B?TGFEbDZoZG00TTR3QjZWSUhYcTRaVS9PTk1ncEJBNGRORUk3Z1JLMjVveTYy?= =?utf-8?B?VkpPekFrUkpKN0RvSVAyNFUvNzNRcjJpWklBRGlHVElVT0FRTXdNdXB0WmxE?= =?utf-8?B?TVdZYjRyanhKVk9SekdPRTZjUXRJeE5IejF4NTVSaEdwMkR4MVJPckNIMnVt?= =?utf-8?B?WlVJaG1ULzhSQnRsV29uanduMEl4TERrWEFaZEZ1VFRsWFdway9UYmhMMjd2?= =?utf-8?B?YlM3eUIvVFZvcWpzcFJmR05DK2xWUkx0V2JkN29HdWp2QWo3SFExbzJKL2Vv?= =?utf-8?B?ckdoWW9DdmY5MDhjMFc4bnNIZ3lqenoxTmpWZjhjWG5lNkJCd3VORUwwWHNM?= =?utf-8?B?RVFTZ0VsM2FYdTFmdEJQc2oveU1LRTJkemJwY0x2ZXZTazVWeDhlMkxndllH?= =?utf-8?B?dEFNN1R5WmNXSEgrSU5pK0s0b3QyV0dkT0VDR2cyWEFCem83aVRCVERNTzBp?= =?utf-8?B?aUpENDhyTkZPeTZBTDlmYWFuYW42S1d2UlBtU0pmOTBGYVVHeUliL1pHQ1Rw?= =?utf-8?B?b01yVThmMUV5cmF1VzQ0UHkwNk90cER0RHRzOVN5eXFFZExncXB5ekRtaXFX?= =?utf-8?Q?+3s47exYZQgIkzPeZXgOXi6ht?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: IA0PR11MB7185.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7336280e-7406-4958-bc62-08db76195539 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jun 2023 07:45:37.8996 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cyP9pM/lazZ6NjSFO7weITiOICTiuEkbs/cKVvZp9Kjo2SHsnq+TPUQka/PFK/RF/Bp7k9G1sMSi718PL2J3wSSd561VZVxKAIRq7hWdhQ0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5011 X-OriginatorOrg: intel.com X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: A013E100003 X-Stat-Signature: bcyouojufqj7zj7xacopcouddwgtbqco X-Rspam-User: X-HE-Tag: 1687765548-320692 X-HE-Meta: U2FsdGVkX18Y0MUnHH278KIeT3RAlp0wZ/4fLm+xnlskuBOKOTDA7NEOrS6azeqR4vN7wjWhICEaZR+CfnuAtmvKdPzT0Gr1DxXJV9nK2GU9IDdiA5ijyHQtGKddnVniZE4GmoIYn/1dNULWtdKIl+MOgrORBDe8wV8lJgO1L2lIfh6JJSY5UjiNZcjTjFRKvHsgNPYE7FTuDNIQk9AJ06uISMRduNui2Sy/9Yd3cx9nNoAuEePnUWGHzzn71vF9idrYE9hbStSaLcYom43YqPvOKgK37sjOnr9OdHf8FALHpa6S/IZ3vPjjDEZUWoGkUQl3JC1uwmmMrw6RkcuN3TcFA7xN5Hd85b8FMvd5QKGb9ANpLI7QXqN90PLCTjsgf0ZRol0U6MeTQod3++8Lems9MtA1tpz6Kq0MbD3GuQUIrHScugQUPhJUSZ/i8wEcc3yRSvDSvy9MAn3pb/ECSmOObh+UEQGWz4PVUNKqBvaIFi+nLDgrT0R3aqNoAAARWc9nwWNWE/r/b4pTRkqw5F8Ry9YXKqsDRcpuZM/ioZrqRf7apj3uySQhg7j2BWN1vH15FYJoJeeTjioxLy9YGgX89GrgB1RrCK5VTBisEq+2evokTmDBvKx13KjW/WLcSutEMdnIbAcBZ1l873fhQixVaSgYBhsmXaWJHDgm26RtkxuoZw5RFYsSaGF0sjFuF/QXJ89u5IEHCv+acizfXuaL1Hcw70/u1Hcu3MkQ22nJRCMBI5lXdFZz+jY+BCd11eVhNQLvyKMT5GnghwakqiXJHsJe+568hcSBPRye3rnpK72zLd0sJ8rWiOOH3/9RRRY/RhCKvJax3yhzyCKLr7cLY33CzUm+QcR3z0ZzkLLwAhyLWdjqyVrpCbYPI+3K+UpOFWmp7PMiTtcvG9g+/eYbMA4VtqHwb0YjIHf1LXkeitxO2cDqDGNc9e8cQ923OsTxVH2XG3Y754vd6sr D0y1pzO8 N8PbS5MHO7nVCE33tiZaQCIh/yI7ytXF53B9mF24PUK5t0zD8VfPaoV+Qz/Plrzu+ZO7toAZa5SDjOYqnjpdh9tnhYwnK5NwNFFeA3drsbJEPP3AkuB9NP/epOiQlIgjbhm9UQUYD+aRb5+A14x7SRAtWVhn6P7ZvhkCAOyuHG7siEw2+mbzkfHJpIXXaPe7kUV8W27oCHXTVneUqI7EM2TfI540x6iXAU8LIL8HwfGfoM5wUsB7p3xkq+YH5HLuozNv4vuadl0L8g3C/mUlwLolIsukpGl9/HbP1fW00yPWKjEfXpXRJjby+MVxBWrAUnfRuDNpJjFFtEfMP33MtSBkW/digCEg4n7afFK6opTYHIRVRYI+7ztiS8rkkVeA7LATiBPjoG3/sm5tnm9JQ3X3k+nQ+4+qYOBPsCgKiJpvM9DFqdmKqkJbCBPkyAoBUwcOIog+KwrybkiJT8qKJ6+yVSO5G7n85JHO1 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: SGkgUGV0ZXIsDQoNCj4gDQo+IE9uIEZyaSwgSnVuIDIzLCAyMDIzIGF0IDA2OjEzOjAyQU0gKzAw MDAsIEthc2lyZWRkeSwgVml2ZWsgd3JvdGU6DQo+ID4gSGkgRGF2aWQsDQo+ID4NCj4gPiA+ID4g VGhlIGZpcnN0IHBhdGNoIGVuc3VyZXMgdGhhdCB0aGUgbWFwcGluZ3MgbmVlZGVkIGZvciBoYW5k bGluZyBtbWFwDQo+ID4gPiA+IG9wZXJhdGlvbiB3b3VsZCBiZSBtYW5hZ2VkIGJ5IHVzaW5nIHRo ZSBwZm4gaW5zdGVhZCBvZiBzdHJ1Y3QgcGFnZS4NCj4gPiA+ID4gVGhlIHNlY29uZCBwYXRjaCBy ZXN0b3JlcyBzdXBwb3J0IGZvciBtYXBwaW5nIGh1Z2V0bGIgcGFnZXMgd2hlcmUNCj4gPiA+ID4g c3VicGFnZXMgb2YgYSBodWdlcGFnZSBhcmUgbm90IGRpcmVjdGx5IHVzZWQgYW55bW9yZSAobWFp biByZWFzb24NCj4gPiA+ID4gZm9yIHJldmVydCkgYW5kIGluc3RlYWQgdGhlIGh1Z2V0bGIgcGFn ZXMgYW5kIHRoZSByZWxldmFudCBvZmZzZXRzDQo+ID4gPiA+IGFyZSB1c2VkIHRvIHBvcHVsYXRl IHRoZSBzY2F0dGVybGlzdCBmb3IgZG1hLWJ1ZiBleHBvcnQgYW5kIGZvcg0KPiA+ID4gPiBtbWFw IG9wZXJhdGlvbi4NCj4gPiA+ID4NCj4gPiA+ID4gVGVzdGNhc2U6IGRlZmF1bHRfaHVnZXBhZ2Vz ej0yTSBodWdlcGFnZXN6PTJNIGh1Z2VwYWdlcz0yNTAwDQo+ID4gPiBvcHRpb25zDQo+ID4gPiA+ IHdlcmUgcGFzc2VkIHRvIHRoZSBIb3N0IGtlcm5lbCBhbmQgUWVtdSB3YXMgbGF1bmNoZWQgd2l0 aCB0aGVzZQ0KPiA+ID4gPiByZWxldmFudCBvcHRpb25zOiBxZW11LXN5c3RlbS14ODZfNjQgLW0g NDA5Nm0uLi4uDQo+ID4gPiA+IC1kZXZpY2UgdmlydGlvLWdwdS1wY2ksbWF4X291dHB1dHM9MSxi bG9iPXRydWUseHJlcz0xOTIwLHlyZXM9MTA4MA0KPiA+ID4gPiAtZGlzcGxheSBndGssZ2w9b24N Cj4gPiA+ID4gLW9iamVjdCBtZW1vcnktYmFja2VuZC1tZW1mZCxodWdldGxiPW9uLGlkPW1lbTEs c2l6ZT00MDk2TQ0KPiA+ID4gPiAtbWFjaGluZSBtZW1vcnktYmFja2VuZD1tZW0xDQo+ID4gPiA+ DQo+ID4gPiA+IFJlcGxhY2luZyAtZGlzcGxheSBndGssZ2w9b24gd2l0aCAtZGlzcGxheSBndGss Z2w9b2ZmIGFib3ZlIHdvdWxkDQo+ID4gPiA+IGV4ZXJjaXNlIHRoZSBtbWFwIGhhbmRsZXIuDQo+ ID4gPiA+DQo+ID4gPg0KPiA+ID4gV2hpbGUgSSB0aGluayB0aGUgVk1fUEZOTUFQIGFwcHJvYWNo IGlzIG11Y2ggYmV0dGVyIGFuZCBzaG91bGQgZml4DQo+IHRoYXQNCj4gPiA+IGlzc3VlIGF0IGhh bmQsIEkgdGhvdWdodCBtb3JlIGFib3V0IG1pc3NpbmcgbWVtbG9jayBzdXBwb3J0IGFuZA0KPiBy ZWFsaXplZA0KPiA+ID4gdGhhdCB3ZSBtaWdodCBoYXZlIHRvIGZpeCBzb21ldGhpbmcgZWxzZS4g U08gSSdtIGdvaW5nIHRvIHJhaXNlIHRoZQ0KPiA+ID4gaXNzdWUgaGVyZS4NCj4gPiA+DQo+ID4g PiBJIHRoaW5rIHVkbWFidWYgY2hvc2UgdGhlIHdyb25nIGludGVyZmFjZSB0byBkbyB3aGF0IGl0 J3MgZG9pbmcsIHRoYXQNCj4gPiA+IG1ha2VzIGl0IGhhcmRlciB0byBmaXggaXQgZXZlbnR1YWxs eS4NCj4gPiA+DQo+ID4gPiBJbnN0ZWFkIG9mIGFjY2VwdGluZyBhIHJhbmdlIGluIGEgbWVtZmQs IGl0IHNob3VsZCBqdXN0IGhhdmUgYWNjZXB0ZWQgYQ0KPiA+ID4gdXNlciBzcGFjZSBhZGRyZXNz IHJhbmdlIGFuZCB0aGVuIHVzZWQNCj4gPiA+IHBpbl91c2VyX3BhZ2VzKEZPTExfV1JJVEV8Rk9M TF9MT05HVEVSTSkgdG8gbG9uZ3Rlcm0tcGluIHRoZQ0KPiBwYWdlcw0KPiA+ID4gIm9mZmljaWFs bHkiLg0KPiA+IFVkbWFidWYgaW5kZWVkIHN0YXJ0ZWQgb2ZmIGJ5IHVzaW5nIHVzZXIgc3BhY2Ug YWRkcmVzcyByYW5nZSBhbmQgR1VQDQo+IGJ1dA0KPiA+IHRoZSBkbWEtYnVmIHN1YnN5c3RlbSBt YWludGFpbmVyIGhhZCBjb25jZXJucyB3aXRoIHRoYXQgYXBwcm9hY2ggaW4gdjIuDQo+ID4gSXQg YWxzbyBoYWQgc3VwcG9ydCBmb3IgbWxvY2sgaW4gdGhhdCB2ZXJzaW9uLiBIZXJlIGlzIHYyIGFu ZCB0aGUgcmVsZXZhbnQNCj4gPiBjb252ZXJzYXRpb246DQo+ID4gaHR0cHM6Ly9wYXRjaHdvcmsu ZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzIxMDk5Mi8/c2VyaWVzPTM5ODc5JnJldj0yDQo+ID4NCj4g PiA+DQo+ID4gPiBTbyB3aGF0J3MgdGhlIGlzc3VlPyBVZG1hIGVmZmVjdGl2ZWx5IHBpbnMgcGFn ZXMgbG9uZ3Rlcm0gKCJwb3NzaWJseQ0KPiA+ID4gZm9yZXZlciIpIHNpbXBseSBieSBncmFiYmlu ZyBhIHJlZmVyZW5jZSBvbiB0aGVtLiBUaGVzZSBwYWdlcyBtaWdodA0KPiA+ID4gZWFzaWx5IHJl c2lkZSBpbiBaT05FX01PVkFCTEUgb3IgaW4gTUlHUkFURV9DTUEgcGFnZWJsb2Nrcy4NCj4gPiA+ DQo+ID4gPiBTbyB3aGF0IHVkbWFidWYgZG9lcyBpcyBicmVhayBtZW1vcnkgaG90dW5wbHVnIGFu ZCBDTUEsIGJlY2F1c2UgaXQNCj4gPiA+IHR1cm5zDQo+ID4gPiBwYWdlcyB0aGF0IGhhdmUgdG8g cmVtYWluIG1vdmFibGUgdW5tb3ZhYmxlLg0KPiA+ID4NCj4gPiA+IEluIHRoZSBwaW5fdXNlcl9w YWdlcyhGT0xMX0xPTkdURVJNKSBjYXNlIHdlIG1ha2Ugc3VyZSB0byBtaWdyYXRlDQo+ID4gPiB0 aGVzZQ0KPiA+ID4gcGFnZXMuIFNlZSBtbS9ndXAuYzpjaGVja19hbmRfbWlncmF0ZV9tb3ZhYmxl X3BhZ2VzKCkgYW5kDQo+IGVzcGVjaWFsbHkNCj4gPiA+IGZvbGlvX2lzX2xvbmd0ZXJtX3Bpbm5h YmxlKCkuIFdlJ2QgcHJvYmFibHkgaGF2ZSB0byBpbXBsZW1lbnQNCj4gc29tZXRoaW5nDQo+ID4g PiBzaW1pbGFyIGZvciB1ZG1hYnVmLCB3aGVyZSB3ZSBkZXRlY3Qgc3VjaCB1bnBpbm5hYmxlIHBh Z2VzIGFuZA0KPiBtaWdyYXRlDQo+ID4gPiB0aGVtLg0KPiA+IFRoZSBwYWdlcyB1ZG1hYnVmIHBp bnMgYXJlIG9ubHkgdGhvc2UgYXNzb2NpYXRlZCB3aXRoIEd1ZXN0IChHUFUNCj4gZHJpdmVyL3Zp cnRpby1ncHUpDQo+ID4gcmVzb3VyY2VzIChvciBidWZmZXJzIGFsbG9jYXRlZCBhbmQgcGlubmVk IGZyb20gc2htZW0gdmlhIGRybSBHRU0pLg0KPiBTb21lDQo+ID4gcmVzb3VyY2VzIGFyZSBzaG9y dC1saXZlZCwgYW5kIHNvbWUgYXJlIGxvbmctbGl2ZWQgYW5kIHdoZW5ldmVyIGENCj4gcmVzb3Vy Y2UNCj4gPiBnZXRzIGRlc3Ryb3llZCwgdGhlIHBhZ2VzIGFyZSB1bnBpbm5lZC4gQW5kLCBub3Qg YWxsIHJlc291cmNlcyBoYXZlIHRoZWlyDQo+IHBhZ2VzDQo+ID4gcGlubmVkLiBUaGUgcmVzb3Vy Y2UgdGhhdCBpcyBwaW5uZWQgZm9yIHRoZSBsb25nZXN0IGR1cmF0aW9uIGlzIHRoZSBGQiBhbmQN Cj4gdGhhdCdzDQo+ID4gYmVjYXVzZSBpdCBpcyB1cGRhdGVkIGV2ZXJ5IH4xNm1zIChhc3N1bWlu ZyAxOTIweDEwODBANjApIGJ5IHRoZSBHdWVzdA0KPiA+IEdQVSBkcml2ZXIuIFdlIGNhbiBjZXJ0 YWlubHkgcGluL3VucGluIHRoZSBGQiBhZnRlciBpdCBpcyBhY2Nlc3NlZCBvbiB0aGUNCj4gSG9z dA0KPiA+IGFzIGEgd29ya2Fyb3VuZCwgYnV0IEkgZ3Vlc3MgdGhhdCBtYXkgbm90IGJlIHZlcnkg ZWZmaWNpZW50IGdpdmVuIHRoZQ0KPiBhbW91bnQNCj4gPiBvZiBjaHVybiBpdCB3b3VsZCBjcmVh dGUuDQo+ID4NCj4gPiBBbHNvLCBhcyBmYXIgYXMgbWlncmF0aW9uIG9yIFMzL1M0IGlzIGNvbmNl cm5lZCwgbXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGFsbA0KPiA+IHRoZSBHdWVzdCByZXNvdXJj ZXMgYXJlIGRlc3Ryb3llZCBhbmQgcmVjcmVhdGVkIGFnYWluLiBTbywgd291bGRuJ3QNCj4gc29t ZXRoaW5nDQo+ID4gc2ltaWxhciBoYXBwZW4gZHVyaW5nIG1lbW9yeSBob3R1bnBsdWc/DQo+ID4N Cj4gPiA+DQo+ID4gPg0KPiA+ID4gRm9yIGV4YW1wbGUsIHBhaXJpbmcgdWRtYWJ1ZiB3aXRoIHZm aW8gKHdoaWNoIHBpbnMgcGFnZXMgdXNpbmcNCj4gPiA+IHBpbl91c2VyX3BhZ2VzKEZPTExfTE9O R1RFUk0pKSBpbiBRRU1VIHdpbGwgbW9zdCBwcm9iYWJseSBub3Qgd29yaw0KPiBpbg0KPiA+ID4g YWxsIGNhc2VzOiBpZiB1ZG1hYnVmIGxvbmd0ZXJtIHBpbm5lZCB0aGUgcGFnZXMgInRoZSB3cm9u ZyB3YXkiLCB2ZmlvDQo+ID4gPiB3aWxsIGZhaWwgdG8gbWlncmF0ZSB0aGVtIGR1cmluZyBGT0xM X0xPTkdURVJNIGFuZCBjb25zZXF1ZW50bHkgZmFpbA0KPiA+ID4gcGluX3VzZXJfcGFnZXMoKS4g QXMgbG9uZyBhcyB1ZG1hYnVmIGhvbGRzIGEgcmVmZXJlbmNlIG9uIHRoZXNlIHBhZ2VzLA0KPiA+ ID4gdGhhdCB3aWxsIG5ldmVyIHN1Y2NlZWQuDQo+ID4gRG1hLWJ1ZiBydWxlcyAoZm9yIGV4cG9y dGVycykgaW5kaWNhdGUgdGhhdCB0aGUgcGFnZXMgb25seSBuZWVkIHRvIGJlDQo+IHBpbm5lZA0K PiA+IGR1cmluZyB0aGUgbWFwX2F0dGFjaG1lbnQgcGhhc2UgKGFuZCB1bnRpbCB1bm1hcCBhdHRh Y2htZW50IGhhcHBlbnMpLg0KPiA+IEluIG90aGVyIHdvcmRzLCBvbmx5IHdoZW4gdGhlIHNnX3Rh YmxlIGlzIGNyZWF0ZWQgYnkgdWRtYWJ1Zi4gSSBndWVzcyBvbmUNCj4gPiBvcHRpb24gd291bGQg YmUgdG8gbm90IGhvbGQgYW55IHJlZmVyZW5jZXMgZHVyaW5nIFVETUFCVUZfQ1JFQVRFIGFuZA0K PiA+IG9ubHkgZ3JhYiByZWZlcmVuY2VzIHRvIHRoZSBwYWdlcyAoYXMgYW5kIHdoZW4gaXQgZ2V0 cyB1c2VkKSBkdXJpbmcgdGhpcw0KPiBzdGVwLg0KPiA+IFdvdWxkIHRoaXMgaGVscD8NCj4gDQo+ IElJVUMgdGhlIHJlZmNvdW50IGlzIG5lZWRlZCwgb3RoZXJ3aXNlIEkgZG9uJ3Qgc2VlIHdoYXQg dG8gcHJvdGVjdCB0aGUgcGFnZQ0KPiBmcm9tIGJlaW5nIGZyZWVkIGFuZCBldmVuIHJldXNlZCBl bHNld2hlcmUgYmVmb3JlIG1hcF9hdHRhY2htZW50KCkuDQo+IA0KPiBJdCBzZWVtcyB0aGUgcHJl dmlvdXMgY29uY2VybiBvbiB1c2luZyBndXAgd2FzIG1ham9ybHkgZm9yaygpLCBpZiB0aGlzIGlz IGl0Og0KPiANCj4gaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzIxMDk5 Mi8/c2VyaWVzPTM5ODc5JnJldj0yI2NvDQo+IG1tZW50XzQxNDIxMw0KPiANCj4gQ291bGQgaXQg YWxzbyBiZSBndWFyZGVkIGJ5IGp1c3QgbWFraW5nIHN1cmUgdGhlIHBhZ2VzIGFyZSBNQVBfU0hB UkVEDQo+IHdoZW4NCj4gY3JlYXRpbmcgdGhlIHVkbWFidWYsIGlmIGZvcmsoKSBpcyBhIHJlcXVp cmVtZW50IG9mIHRoZSBmZWF0dXJlPw0KPiANCj4gSSBoYWQgYSBmZWVsaW5nIHRoYXQgdGhlIHVz ZXJzcGFjZSBzdGlsbCBuZWVkcyB0byBhbHdheXMgZG8gdGhlIHJpZ2h0IHRoaW5nDQo+IHRvIG1h a2UgaXQgd29yaywgZXZlbiB1c2luZyBwdXJlIFBGTiBtYXBwaW5ncy4NCj4gDQo+IEZvciBpbnN0 YW5jZSwgd2hhdCBpZiB0aGUgdXNlcmFwcCBqdXN0IHB1bmNocyBhIGhvbGUgaW4gdGhlIHNobWVt L2h1Z2V0bGJmcw0KPiBmaWxlIGFmdGVyIGNyZWF0aW5nIHRoZSB1ZG1hYnVmIChJIHNlZSB0aGF0 IEZfU0VBTF9TSFJJTksgaXMgcmVxdWlyZWQsIGJ1dA0KPiBhdCBsZWFzdCBub3QgRl9TRUFMX1dS SVRFIHdpdGggY3VycmVudCBpbXBsKSwgYW5kIGZhdWx0IGEgbmV3IHBhZ2UgaW50byB0aGUNCj4g cGFnZSBjYWNoZT8NCklJVUMsIFFlbXUgY3JlYXRlcyBhbmQgb3ducyB0aGUgbWVtZmQgdGhhdCBp cyBhc3NvY2lhdGVkIHdpdGggR3Vlc3QgbWVtb3J5Lg0KQW5kIGlmIGl0IHB1bmNoZXMgYSBob2xl IGluIGl0cyBvd24gbWVtZmQgdGhhdCBnb2VzIHRocm91Z2ggR3Vlc3QgcGlubmVkIHBhZ2VzIA0K YXNzb2NpYXRlZCB3aXRoIGJ1ZmZlcnMvcmVzb3VyY2VzLCB0aGVuIEkgdGhpbmsgdGhlIHByb3Bl ciB3YXkgdG8gZml4IHRoaXMgaXMgdG8NCnNvbWVob3cgbm90aWZ5IHRoZSBHdWVzdCBkcml2ZXIg KHZpcnRpby1ncHUgaW4gdGhpcyBjYXNlKSB0aGF0IHRoZSBiYWNraW5nIHN0b3JlDQpvZiB0aGUg YWZmZWN0ZWQgcmVzb3VyY2VzIGlzIG5vIGxvbmdlciB2YWxpZCBhbmQgdGhhdCB0aGUgcmVzb3Vy Y2VzIG5lZWQgdG8gYmUNCmRlc3Ryb3llZCBhbmQgcmUtY3JlYXRlZCBhZ2Fpbi4NCg0KSGF2aW5n IHNhaWQgdGhhdCwgb25lIG9wdGlvbiBJIGNvdWxkIHRoaW5rIG9mIGlzIHRvIHByb2JhYmx5IGlu c3RhbGwgYSBtbXVfbm90aWZpZXINCmFzc29jaWF0ZWQgd2l0aCB0aGUgcmVsZXZhbnQgcGFnZXMg aW4gdWRtYWJ1ZiBhbmQgb25jZSB3ZSBnZXQgbm90aWZpZWQgYWJvdXQNCmFueSBpbnZhbGlkYXRp b24gZXZlbnQgY29uY2VybmluZyBhbnkgb2YgdGhlIHBhZ2VzLCB3ZSdkIGZhaWwgYW55IHN1YnNl cXVlbnQNCmF0dGVtcHQgdG8gYWNjZXNzIHRoZXNlIHBhZ2VzIGFuZCBwcm9wYWdhdGUgdGhlIGVy cm9yIGFjcm9zcyB0aGUgc3RhY2suIA0KDQpIb3dldmVyLCBpdCBmZWVscyBsaWtlIHVkbWFidWYg aXMgbm90IHRoZSByaWdodCBwbGFjZSB0byBoYW5kbGUgdGhpcyBpc3N1ZSBiZWNhdXNlDQp0aGVy ZSBhcmUgdmVyeSBsaW1pdGVkIG9wdGlvbnMgZm9yIHRha2luZyBwcm9wZXIgY29ycmVjdGl2ZSBh Y3Rpb24gaWYgUWVtdSBkZWNpZGVzDQp0byBwdW5jaCBhIGhvbGUgaW4gR3Vlc3QgbWVtb3J5IHRo YXQgdGFrZXMgb3V0IHBhZ2VzIHRoYXQgYXJlIHBpbm5lZC4NCg0KVGhhbmtzLA0KVml2ZWsNCg0K PiANCj4gVGhhbmtzLA0KPiANCj4gPg0KPiA+ID4NCj4gPiA+DQo+ID4gPiBUaGVyZSBhcmUgKnBy b2JhYmx5KiBtb3JlIGlzc3VlcyBvbiB0aGUgUUVNVSBzaWRlIHdoZW4gdWRtYWJ1ZiBpcw0KPiA+ ID4gcGFpcmVkDQo+ID4gPiB3aXRoIHRoaW5ncyBsaWtlIE1BRFZfRE9OVE5FRUQvRkFMTE9DX0ZM X1BVTkNIX0hPTEUgdXNlZCBmb3INCj4gPiA+IHZpcnRpby1iYWxsb29uLCB2aXJ0aW8tbWVtLCBw b3N0Y29weSBsaXZlIG1pZ3JhdGlvbiwgLi4uIGZvciBleGFtcGxlLCBpbg0KPiA+ID4gdGhlIHZm aW8vdmRwYSBjYXNlIHdlIG1ha2Ugc3VyZSB0aGF0IHdlIGRpc2FsbG93IG1vc3Qgb2YgdGhlc2Us IGJlY2F1c2UNCj4gPiA+IG90aGVyd2lzZSB0aGVyZSBjYW4gYmUgYW4gYWNjaWRlbnRhbCAiZGlz Y29ubmVjdCIgYmV0d2VlbiB0aGUgcGFnZXMNCj4gPiA+IG1hcHBlZCBpbnRvIHRoZSBWTSAoZ3Vl c3QgdmlldykgYW5kIHRoZSBwYWdlcyBtYXBwZWQgaW50byB0aGUgSU9NTVUNCj4gPiA+IChkZXZp Y2UgdmlldyksIGZvciBleGFtcGxlLCBhZnRlciBhIHJlYm9vdC4NCj4gPiBPazsgSSBhbSBub3Qg c3VyZSBpZiBJIGNhbiBmaWd1cmUgb3V0IGlmIHRoZXJlIGlzIGFueSBhY2NlcHRhYmxlIHdheSB0 bw0KPiBhZGRyZXNzDQo+ID4gdGhlc2UgaXNzdWVzIGJ1dCBnaXZlbiB0aGUgY3VycmVudCBjb25z dHJhaW50cyBhc3NvY2lhdGVkIHdpdGggdWRtYWJ1ZiwNCj4gd2hhdA0KPiA+IGRvIHlvdSBzdWdn ZXN0IGlzIHRoZSBtb3N0IHJlYXNvbmFibGUgd2F5IHRvIGRlYWwgd2l0aCB0aGVzZSBwcm9ibGVt cyB5b3UNCj4gPiBoYXZlIGlkZW50aWZpZWQ/DQo+ID4NCj4gPiBUaGFua3MsDQo+ID4gVml2ZWsN Cj4gPg0KPiA+ID4NCj4gPiA+IC0tDQo+ID4gPiBDaGVlcnMsDQo+ID4gPg0KPiA+ID4gRGF2aWQg LyBkaGlsZGVuYg0KPiA+DQo+IA0KPiAtLQ0KPiBQZXRlciBYdQ0KPiANCg0K