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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9C2E5C48260 for ; Thu, 8 Feb 2024 19:22:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:In-Reply-To:From:References:Cc:To: Subject:Date:Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=NkuoMrWY+GkrIYFbBbkiW8C01INqYRkpc/ktJCvS9ps=; b=4LSLSDvIP1xiKaYrnu0y7/bveq y9gWPvblehfuAKxBeF5S/zq2gX/G/bvV2W8DDSyYzkxlH44Vm1yrxM3vfezahcJqq0uvcIxHv2z6s rXBkp8SvxLTJMiBshugrdVmoz7LPg4Gzatkn1yqZ+1v2EGJj5zSKaoeCNyNp2Zeex0rvQxLdnIl88 QalYK7daiFoOj7/952ZAKLo4QzWCctgIpTlBMKL6Pu4SqpqfG824g4j67FYcuksjPXwj6DtbDWJ0+ KqYRHkjhOddF95rriej24D+RMr6OyGYCDGpgGcolHQw9mz8zR92+q2jUktQNs9yuAouZKxwWIzePE ZGj2Ntuw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rY9y9-0000000El2s-2MZn; Thu, 08 Feb 2024 19:21:57 +0000 Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rY9y7-0000000El2G-0gIk for linux-arm-kernel@lists.infradead.org; Thu, 08 Feb 2024 19:21:56 +0000 Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 418Ix8Uf025949; Thu, 8 Feb 2024 19:21:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : cc : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2023-11-20; bh=VE/foFVqB49BoPz7eAfsBg/xS1MWS8j9W/5WI9MQIGQ=; b=oF4UKT414B9SZDY7mJGOHbkTeKQsmS8vrISWzLyD2ZAs1yH9PJfEfde0d6LoAlaQDo6N FAYKuIqh+WZJ+bN2wruiGmj0nVl28U/xq634WFWMEQYwFAayCXPyPCM0ZVwelxazRnis UQiZZx/c4FmROPQAdNL1yWhFhma0FGnBP4c4zGH0QoNcsfXroAdopHp6vC3gZEv4zQdz rxDVHH5tDtMriLlNLcbvXY8WigjNMQZJl0TlwNIncPoaxmCBZXerdFy30YNnSSmKwAOk bWME2Cai966y35i8aaFL4gLzMi13HxTC86nfmAxwS7kk4j5XMXdhqPant+5GWO8N6kHg cw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3w1d3unmyp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 08 Feb 2024 19:21:31 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 418IHk0T038373; Thu, 8 Feb 2024 19:21:31 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2100.outbound.protection.outlook.com [104.47.55.100]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3w1bxb4ejr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 08 Feb 2024 19:21:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cY+rVy/eha1Becjv239pA8rs70on3OV6f+FGsX98wtYhn+352dbyGiYccdtcBr2gyAco2+rM4/Z/91T8NumPl2hqlkWCO3y/bMoc+DokLHNn8a69ihhQoD4yOedB3rDV3ABXAFLZ1FWVWQ6o3tWAzyMCpQNRXX4lc8OpZ8mL++zben5/mAYC/oY8I5SL0GHUsSufJ4a42ViOBtCZK3v8mopqR8E/Iwuq6/U+HUtytMdVy0aS+pLHCa8MV4hDZWt1tMbVwc7/C/MbCNlUTvI0F7DnLwK/HGnJM1swdy++pvuk/YOtpdafkvK2n96lWoTmfK3FacpGzFIIG00l1AzYfw== 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=VE/foFVqB49BoPz7eAfsBg/xS1MWS8j9W/5WI9MQIGQ=; b=BdKwvxOiBSrtyV169AVFth6v42yaAVFAnJJ4TSxXgUrypa0yOtltIlYxVcnNjdPotAqUQewAvQG+EB8IOpaiQ8yPEBxI57hR9B8T17yU0ZI0C2Crbnyd7/W8PY0+mtct0aR0vBAfPskNaYnCl7emtKyBELUWddj/tBWHHXIRqQBIfk556q26G2G1o9Qvfy+Hb2nTC2BMzScDbcGAEmWv3dHVvuvYW9AYuJv0qAWEl55kH5oG3IrI7JlSGF5z7mrwHnfllbKPnvTy/pi6oPQbo2eGqxMjghDYlh2GvdTd0mUhVD8x/1bR7EAPMIsrNF52CDme3MURmHvhA9mES+fVvA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VE/foFVqB49BoPz7eAfsBg/xS1MWS8j9W/5WI9MQIGQ=; b=w22Pa9h/TQX9E67/Q/4V8qP6fkZUH3ptynrhuCUHQy2SQAqp3GMnnhgEZR/axK3mQSRAi2prl/LvvAkrhZ6xClrRha/QTuNvwyNyo3TneDMrw9XSdms2k72P06c119OsLlQU4KscHAsI5J7ytXUv9Cr3OrAaJex0EJp6HOF0P4I= Received: from SJ0PR10MB4429.namprd10.prod.outlook.com (2603:10b6:a03:2d1::14) by SJ1PR10MB5953.namprd10.prod.outlook.com (2603:10b6:a03:48c::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7270.24; Thu, 8 Feb 2024 19:21:28 +0000 Received: from SJ0PR10MB4429.namprd10.prod.outlook.com ([fe80::210e:eea7:3142:6088]) by SJ0PR10MB4429.namprd10.prod.outlook.com ([fe80::210e:eea7:3142:6088%5]) with mapi id 15.20.7249.038; Thu, 8 Feb 2024 19:21:28 +0000 Message-ID: <78eee4ef-99ed-46a3-a776-a74bcd83ba44@oracle.com> Date: Thu, 8 Feb 2024 11:21:19 -0800 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 0/3] A Solution to Re-enable hugetlb vmemmap optimize Content-Language: en-US To: Matthew Wilcox Cc: Will Deacon , Nanyong Sun , Catalin Marinas , muchun.song@linux.dev, akpm@linux-foundation.org, anshuman.khandual@arm.com, wangkefeng.wang@huawei.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org References: <20240113094436.2506396-1-sunnanyong@huawei.com> <20240207111252.GA22167@willie-the-truck> <20240207121125.GA22234@willie-the-truck> <908066c7-b749-4f95-b006-ce9b5bd1a909@oracle.com> From: Jane Chu In-Reply-To: X-ClientProxiedBy: LO4P123CA0215.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:1a5::22) To SJ0PR10MB4429.namprd10.prod.outlook.com (2603:10b6:a03:2d1::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR10MB4429:EE_|SJ1PR10MB5953:EE_ X-MS-Office365-Filtering-Correlation-Id: 825f48ef-7d5e-4540-4a3a-08dc28db2638 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xyjJPF8X4yYUlEK/n327AXxSQJjL+F4dKxsHrXK0pUQW04exg5K+MBFC0Hi+yL1qWkajBgc/FPB8e3lOuqqebPQcdimN5p7m2hh51+8uu8yRjG0s9sbPiLnlX3/5DcECOPn5kc1xobNk1VS1VN9quoqy8VhIRhmUYA0VnUH8fI6ldQVdDIrn3ZiTK9CZWY3AxpmyJNZGrCcwiPsWUtWF7nf0AbJ1SZ/Z5R1Re9r6Iwkuxpob6ivmL9OIngWwZTHdVTyNZYOVZ9P29YQDeLx8dCn1bqcloWdflzBIAJk5AeBvQOhGuECRrAAUVYHaoLLPaavd6NT2s+Snlmn7GIzAgDt2x5Setx8wEqpt6APh38oW0jFLCmO2U5mptFdtrmW8xf4a+nZkUwFt3fBMxzN5OOkCk/DNAII9bwwB+QVX+L733MSdUw1ZTbodJIqE9vQkkHPte7IW7xpTfJWO5ZJIWdM7PIYfGA8GJB1SOEMQq7xQbKSavjRiuMxMNhSVzlN73YGepApSmKis5YCjTelee9GFTOlwXYprPoC2gwBYaa2pbtv1mDsy5kJUkV+S3kwC X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR10MB4429.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(136003)(376002)(39860400002)(346002)(396003)(366004)(230922051799003)(451199024)(1800799012)(186009)(64100799003)(31686004)(6666004)(316002)(5660300002)(2906002)(44832011)(7416002)(66476007)(8676002)(4326008)(66946007)(6916009)(66556008)(8936002)(38100700002)(83380400001)(54906003)(6512007)(6506007)(6486002)(53546011)(2616005)(36756003)(41300700001)(478600001)(26005)(86362001)(31696002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Nzc2Slg0MDFsRXRmYnB5NU54M1hiTk1YQUZtZSttb3g0cjA5VmxWb0pqaDhi?= =?utf-8?B?a2IzNlM3U2RMZmN2MjU2M2lYV2tPQndsMFpLSzBOU3hSL1R2dGU4dk5CT2xY?= =?utf-8?B?NlpxbVlhRTFvUU9EZEt4b2xCSmJmV054TkRxYU91Z0dWUkR1NTh3Tk4relhC?= =?utf-8?B?MzNpaWJ2ZVhvdnd1UkczZmpYQmIySkc3ZUgzVTZNVmFIaWw5ZGpXUUJSZ1VD?= =?utf-8?B?cUZMWWRMNzVHZWlaUEZ6L0ZVbTFCV0RqTjEwRU9WWGxpQ2w0bkZldUZnWFZz?= =?utf-8?B?MW00MzJWb1RMbXVUSThVYWc0cHBkaUhqTkVWQmliUUxrWHFTQzFacVJJQjJZ?= =?utf-8?B?b1lIWE5PMGh5SVRqRVFwR0NPcnJsWmUxczFwUldWSDNXVVYxV2tBYXJkaXhk?= =?utf-8?B?dDZzSEtJSStFK2xOcXdmeGtYSmZ5cWpGNEwwK1R6NzZDdjdVNzBwRnNVOGVv?= =?utf-8?B?MWxaa05xMkxvTFA1cUtrQzBMWDlNeE45bGVHdVBjS3JjaHpNLyt6QmlrL1dw?= =?utf-8?B?aklsVFVOWW1BenY3SWhwQjA2TkR1R3ltaE8vVTZsYmZ5TlUxOGJhalBCTy8y?= =?utf-8?B?TTRYemppOTk0MThscnVLOEFOckhIWDgrZUl1WVAyYlUvTC9sTlFNQktwYmty?= =?utf-8?B?SkRsa1NONE4yV1JSRk8xNWhrUythWnQ3SjVWYTZDRy9nOWo1eUIvc2ZIa0NU?= =?utf-8?B?Q1lDSThoQzN2dzhsbDR4alg1L1NvYnNqaFhNV1ZIS0ZoZ1E0TjhsN3hXZjNG?= =?utf-8?B?Q29qZGMrNlZ4T3Q3ckxoQlhnalh2K1dSQjZGVUJLQmVISFNTbjdSVWMwWldk?= =?utf-8?B?bndpSWRaUHF2SDJYeDZMR3p4ZzVCeVpLZlBLU1VudVpHbXJHUEcrdzlmeDNR?= =?utf-8?B?bVducTh2SlU3WENzaUFPZDduMWFwd053VmZMeXdNRXZxb3ppb2tiSXBxQUVs?= =?utf-8?B?QnpxRVArcktDNFJKK09GZGhrWUVGVXMvcmNkSWlMWThoOUp5c1FqbW02Z2hz?= =?utf-8?B?OUJ0b0UyZVQ5ZVhQamJLQm1aTzk3d1kzU2N6S2VzSXpkWldOdWZNeXZNVzdz?= =?utf-8?B?SkVDSzlhY2JxWUcrNXE0d2orWExZQXdSWC9rU3FUR05RYTBzZDdCdDByOW91?= =?utf-8?B?ZklNWnlIQjE1b0p4UWlyTURSUi9LZTZ4NzhIeXhua3REYzNTSVkxYkNHa0Vt?= =?utf-8?B?bHNzaVZUNUk4OFMzQjJPeUJQakVOK2VSK2p3cDgxdlJKUmlIZUxGaWxjRTBW?= =?utf-8?B?WHFLQmZleEcvRTdvSHV0Vm51OVdKRXdOMWZHcG8vV1I3cTlxMDdZRU0vQ3Ni?= =?utf-8?B?QmxTMDd3Z0k4aEQ4b0hTOFphOWNnRnlpUTIyYkovOTRTdGxxSURKaUM3UnB1?= =?utf-8?B?UElWREkyK1huWm9GVVFkU3Z3TEg1TG10MmllZGRqVUdqcG5ldHZXUnc2TzFm?= =?utf-8?B?S2FDc1ZpYUhtdnM1cnMxM094YVAwNzdxelA3TEN0RGpkUlE1aE5ZUWtBYkVx?= =?utf-8?B?b0srZDlhdDh4TmVsU0l3eit0UzhLNUpQaDg5Mjg4SkdtUVVEUTRhNFhDcDB4?= =?utf-8?B?Z3lFMjhiYTQ3T0RRRTQyMDNScEgwRjlyVEVjdDdGeXQ1dlQ1QVN2c1ora2pr?= =?utf-8?B?YjJCL1l3Q0xmSXhqZmJid2dKS3BVb01sVlZYZmVYVCtvWVRLbVdsQ1hFdVA3?= =?utf-8?B?ZzVPcHk1cjRLM0dTY200bmVTNEp1STh4VUYrQktyUk5nWDVLV0w2QXRiZkU0?= =?utf-8?B?QTJvU3RUVmVvT2xzYmhaOUxkeVRrZnIwOGlLUisxRWc1Q3RFbkYxRDY5dGNh?= =?utf-8?B?djhQU1hmLzRzUTBZWGl6dy9JMFlnUFk4QjdoMkN6Z0dIazVTbnNNSWgrRTdB?= =?utf-8?B?TWpkQTlMS0Q1dG5sWXBPamRXYVA3ZTkxc3c4MS9tUzIwYWtRZDhJakVab2J2?= =?utf-8?B?dXA4RVdFSmdoRlZuT2o4a3IwRVBTWGpqMXRqUFpZbkNoU0F3bGhTVlNzVVh4?= =?utf-8?B?UG1jeVRadWU3OXZmcWJYSjFHdzErRTBGa1dWanhaaDY3NlhYbVhKYlhDVGFt?= =?utf-8?B?bGl6U2hVT0V6alc4aDF5MlFWZGtQbStRaWVoaE0reTFzSGM0WXZYRTV4Vm9n?= =?utf-8?Q?Zd/Sm3joXg1jsDUlg+T3z80y+?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6T1mHzI+CbyFYjsviWBDE9lkRXKFmuAyysidszuGaqD0IIb5jCZN8hwjeE7BcmNevBYFF8Pe5y1BOpMY/vXIehiSSTP/OP1cshb6KCLox5v0SGmv2Ei1n520ZFqLRFXEMVWQs04CbbT9Uo6D/KnEydp661wbL1/mC/4yoZYJKP4qFjTWTf6WDF9g5jsKn19X7NMaq3ct8UVX1IVrJx+1GgL7T2EZ1JT3X4+rxYvVqEXdKf1qjY32ueRc4OJfCw2UBnuY9INrFqsQ6+KaM4gD7B0Wqjma/yeuSyYqJ5HtCmXITx+GxwUr0iaCwTIDLKEiNzQmyGpp1jJHziUqFhfCYYd8jRsmDoRqeYZ5/ecOgw3fw7n6h3gN7McfOUyp54r84mt1DN1tYJXUYJEv724vYpV9p2sNhqx6VLWwM45dhf3nvFshV2uXES9MlFGrr7EfrBUhxoRIOgGXM3lroJlBhGz4RsMQmylFWXafmbJ3/u3wJdAq8DWL7dopECazshfAJl2A0UId4VH14wrsm7n7dsANoQ+pQof9O2GwP5M3jnSeZdt6orhvW/hgvwR9HSVljdy9c3IYuaqEDnsZaBzkptEElBlhPpiARWMHtY7VMdg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 825f48ef-7d5e-4540-4a3a-08dc28db2638 X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB4429.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Feb 2024 19:21:28.6673 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4Yg0/btbWhZLCmqxtNoR6hI9z4PYMPbhvhAstJAMHwql1GcK/f+xpNVCbGhRWGjuvwtjyGaIOzGBs64xzK4bdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ1PR10MB5953 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-08_08,2024-02-08_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 mlxlogscore=999 phishscore=0 spamscore=0 mlxscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402080102 X-Proofpoint-ORIG-GUID: fJvtFzkIFhfLUv6BiaZ9eImNQ8d3Sy2V X-Proofpoint-GUID: fJvtFzkIFhfLUv6BiaZ9eImNQ8d3Sy2V X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240208_112155_330586_18D65013 X-CRM114-Status: GOOD ( 39.77 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gMi84LzIwMjQgNzo0OSBBTSwgTWF0dGhldyBXaWxjb3ggd3JvdGU6Cgo+IE9uIFdlZCwgRmVi IDA3LCAyMDI0IGF0IDA2OjI0OjUyUE0gLTA4MDAsIEphbmUgQ2h1IHdyb3RlOgo+PiBPbiAyLzcv MjAyNCA2OjE3IEFNLCBNYXR0aGV3IFdpbGNveCB3cm90ZToKPj4+IFdoaWxlIHRoaXMgYXJyYXkg b2YgfjUxMiBwYWdlcyBoYXZlIGJlZW4gYWxsb2NhdGVkIHRvIGh1Z2V0bGJmcywgYW5kIG9uZQo+ Pj4gd291bGQgdGhpbmsgdGhhdCB0aGVyZSB3b3VsZCBiZSBubyB3YXkgdGhhdCB0aGVyZSBjb3Vs ZCBzdGlsbCBiZQo+Pj4gcmVmZXJlbmNlcyB0byB0aGVtLCBhbm90aGVyIENQVSBjYW4gaGF2ZSBh IHBvaW50ZXIgdG8gdGhpcyBzdHJ1Y3QgcGFnZQo+Pj4gKGVnIGF0dGVtcHRpbmcgYSBzcGVjdWxh dGl2ZSBwYWdlIGNhY2hlIHJlZmVyZW5jZSBvcgo+Pj4gZ2V0X3VzZXJfcGFnZXNfZmFzdCgpKS4g IFRoYXQgbWVhbnMgaXQgd2lsbCB0cnkgdG8gY2FsbAo+Pj4gYXRvbWljX2FkZF91bmxlc3MoJnBh Z2UtPl9yZWZjb3VudCwgMSwgMCk7Cj4+Pgo+Pj4gQWN0dWFsbHksIEkgd29uZGVyIGlmIHRoaXMg aXNuJ3QgYSBwcm9ibGVtIG9uIHg4NiB0b28/ICBEbyB3ZSBuZWVkIHRvCj4+PiBleHBsaWNpdGx5 IGdvIHRocm91Z2ggYW4gUkNVIGdyYWNlIHBlcmlvZCBiZWZvcmUgZnJlZWluZyB0aGUgcGFnZXMK Pj4+IGZvciB1c2UgYnkgc29tZWJvZHkgZWxzZT8KPj4+Cj4+IFNvcnJ5LCBub3Qgc3VyZSB3aGF0 IEknbSBtaXNzaW5nLCBwbGVhc2UgaGVscC4KPiBIYXZpbmcgd3JpdHRlbiBvdXQgdGhlIGFuYWx5 c2lzLCBJIG5vdyB0aGluayBpdCBjYW4ndCBoYXBwZW4gb24geDg2LAo+IGJ1dCBsZXQncyB3YWxr IHRocm91Z2ggaXQgYmVjYXVzZSBpdCdzIG5vbi1vYnZpb3VzIChhbmQgSSB0aGluayBpdAo+IGls bHVzdHJhdGVzIHdoYXQgcGVvcGxlIGFyZSBhZnJhaWQgb2Ygb24gQXJtKS4KPgo+IENQVSBBIGNh bGxzIGVpdGhlciBnZXRfdXNlcl9wYWdlc19mYXN0KCkgb3IgX19maWxlbWFwX2dldF9mb2xpbygp Lgo+IExldCdzIGRvIHRoZSBsYXR0ZXIgdGhpcyB0aW1lLgo+Cj4gICAgICAgICAgZm9saW8gPSBm aWxlbWFwX2dldF9lbnRyeShtYXBwaW5nLCBpbmRleCk7Cj4gZmlsZW1hcF9nZXRfZW50cnk6Cj4g CXJjdV9yZWFkX2xvY2soKTsKPiAgICAgICAgICBmb2xpbyA9IHhhc19sb2FkKCZ4YXMpOwo+ICAg ICAgICAgIGlmICghZm9saW9fdHJ5X2dldF9yY3UoZm9saW8pKQo+ICAgICAgICAgICAgICAgICAg Z290byByZXBlYXQ7Cj4gICAgICAgICAgaWYgKHVubGlrZWx5KGZvbGlvICE9IHhhc19yZWxvYWQo JnhhcykpKSB7Cj4gICAgICAgICAgICAgICAgICBmb2xpb19wdXQoZm9saW8pOwo+ICAgICAgICAg ICAgICAgICAgZ290byByZXBlYXQ7Cj4gICAgICAgICAgfQo+IGZvbGlvX3RyeV9nZXRfcmN1Ogo+ IAlmb2xpb19yZWZfdHJ5X2FkZF9yY3UoZm9saW8sIDEpOwo+IGZvbGlvX3JlZl90cnlfYWRkX3Jj dToKPiAgICAgICAgICBpZiAodW5saWtlbHkoIWZvbGlvX3JlZl9hZGRfdW5sZXNzKGZvbGlvLCBj b3VudCwgMCkpKSB7Cj4gICAgICAgICAgICAgICAgICAvKiBFaXRoZXIgdGhlIGZvbGlvIGhhcyBi ZWVuIGZyZWVkLCBvciB3aWxsIGJlIGZyZWVkLiAqLwo+ICAgICAgICAgICAgICAgICAgcmV0dXJu IGZhbHNlOwo+IGZvbGlvX3JlZl9hZGRfdW5sZXNzOgo+ICAgICAgICAgIHJldHVybiBwYWdlX3Jl Zl9hZGRfdW5sZXNzKCZmb2xpby0+cGFnZSwgbnIsIHUpOwo+IHBhZ2VfcmVmX2FkZF91bmxlc3M6 Cj4gCWF0b21pY19hZGRfdW5sZXNzKCZwYWdlLT5fcmVmY291bnQsIG5yLCB1KTsKPgo+IEEgcmF0 aGVyIGRlZXAgY2FsbGNoYWluIHRoZXJlLCBidXQgZm9yIG91ciBwdXJwb3NlcyB0aGUgaW1wb3J0 YW50IHBhcnQKPiBpczogd2UgdGFrZSB0aGUgUkNVIHJlYWQgbG9jaywgd2UgbG9vayB1cCBhIGZv bGlvLCB3ZSBpbmNyZW1lbnQgaXRzCj4gcmVmY291bnQgaWYgaXQncyBub3QgemVybywgdGhlbiBj aGVjayB0aGF0IGxvb2tpbmcgdXAgdGhpcyBpbmRleCBnZXRzCj4gdGhlIHNhbWUgZm9saW87IGlm IGl0IGRvZXNuJ3QsIHdlIGRlY3JlbWVudCB0aGUgcmVmY291bnQgYWdhaW4gYW5kIHJldHJ5Cj4g dGhlIGxvb2t1cC4KPgo+IEZvciB0aGlzIGFuYWx5c2lzLCB3ZSBjYW4gYmUgcHJlZW1wdGVkIGF0 IGFueSBwb2ludCBhZnRlciB3ZSd2ZSBnb3QgdGhlCj4gZm9saW8gcG9pbnRlciBmcm9tIHhhX2xv YWQoKS4KPgo+PiAgRnJvbSBodWdldGxiIGFsbG9jYXRpb24gcGVyc3BlY3RpdmUswqAgb25lIG9m IHRoZSBzY2VuYXJpb3MgaXMgcnVuIHRpbWUKPj4gaHVnZXRsYiBwYWdlIGFsbG9jYXRpb24gKHNh eSAyTSBwYWdlcyksIHN0YXJ0aW5nIGZyb20gdGhlIGJ1ZGR5IGFsbG9jYXRvcgo+PiByZXR1cm5z IGNvbXBvdW5kIHBhZ2VzLCB0aGVuIHRoZSBoZWFkIHBhZ2UgaXMgc2V0IHRvIGZyb3plbiwgdGhl biB0aGUKPj4gZm9saW8oY29tcG91bmQgcGFnZXMpIGlzIHB1dCB0aHJ1IHRoZSBIVk8gcHJvY2Vz cywgb25lIG9mIHdoaWNoIGlzCj4+IHZtZW1tYXBfc3BsaXRfcG1kKCkgaW4gY2FzZSBhIHZtZW1t YXAgcGFnZSBpcyBhIFBNRCBwYWdlLgo+Pgo+PiBVbnRpbCB0aGUgSFZPIHByb2Nlc3MgY29tcGxl dGVzLCBub25lIG9mIHRoZSB2bWVtbWFwIHJlcHJlc2VudGVkIHBhZ2VzIGFyZQo+PiBhdmFpbGFi bGUgdG8gYW55IHRocmVhZHMsIHNvIHdoYXQgYXJlIHRoZSBjYXVzZXMgZm9yIElSUSB0aHJlYWRz IHRvIGFjY2Vzcwo+PiB0aGVpciB2bWVtbWFwIHBhZ2VzPwo+IFl1cCwgdGhpcyBzb3VuZHMgbGlr ZSBlbm91Z2gsIGJ1dCBpdCdzIG5vdC4gIFRoZSBwcm9ibGVtIGlzIHRoZSBwZXJzb24KPiB3aG8n cyBsb29raW5nIHVwIHRoZSBmb2xpbyBpbiB0aGUgcGFnZWNhY2hlIHVuZGVyIFJDVS4gIFRoZXkn dmUgZ290Cj4gdGhlIGZvbGlvIHBvaW50ZXIgYW5kIGhhdmUgYmVlbiBwcmVlbXB0ZWQuICBTbyBu b3cgd2hhdCBoYXBwZW5zIHRvIG91cgo+IHZpY3RpbSBmb2xpbz8KPgo+IFNvbWV0aGluZyBoYXBw ZW5zIHRvIHJlbW92ZSBpdCBmcm9tIHRoZSBwYWdlIGNhY2hlLiAgTWF5YmUgdGhlIGZpbGUgaXMK PiB0cnVuY2F0ZWQsIHBlcmhhcHMgdm1zY2FuIGNvbWVzIGFsb25nIGFuZCBraWNrcyBpdCBvdXQu ICBFaXRoZXIgd2F5LCBpdCdzCj4gcmVtb3ZlZCBmcm9tIHRoZSB4YXJyYXkgYW5kIGdldHMgaXRz IHJlZmNvdW50IHNldCB0byAwLiAgSWYgdGhlIGxvb2t1cAo+IHdlcmUgdG8gY29udGludWUgYXQg dGhpcyB0aW1lLCBldmVyeXRoaW5nIHdvdWxkIGJlIGZpbmUgYmVjYXVzZSBpdCB3b3VsZAo+IHNl ZSBhIHJlZmNvdW50IG9mIDAgYW5kIG5vdCBpbmNyZW1lbnQgaXQgKGluIHBhZ2VfcmVmX2FkZF91 bmxlc3MoKSkuCj4gQW5kIHRoaXMgaXMgd2hlcmUgbXkgYW5hbHlzaXMgb2YgUkNVIHRlbmRzIHRv IGdvIHdyb25nLCBiZWNhdXNlIEkgb25seQo+IHRoaW5rIG9mIGludGVybGVhdmluZyBldmVudCBB IGFuZCBCLiAgSSBkb24ndCB0aGluayBhYm91dCBCIGFuZCB0aGVuIEMKPiBoYXBwZW5pbmcgYmVm b3JlIEEgcmVzdW1lcy4gIEJ1dCBpdCBjYW4hICBMZXQncyBmb2xsb3cgdGhlIGpvdXJuZXkgb2YK PiB0aGlzIHN0cnVjdCBwYWdlLgo+Cj4gTm93IHRoYXQgaXQncyBiZWVuIHJlbW92ZWQgZnJvbSB0 aGUgcGFnZSBjYWNoZSwgaXQncyBhbGxvY2F0ZWQgYnkgaHVnZXRsYiwKPiBhcyB5b3UgZGVzY3Jp YmUuICBBbmQgaXQncyBvbmUgb2YgdGhlIHRhaWwgcGFnZXMgdG93YXJkcyB0aGUgZW5kIG9mCj4g dGhlIDUxMiBjb250aWd1b3VzIHN0cnVjdCBwYWdlcy4gIFRoYXQgbWVhbnMgdGhhdCB3ZSBhbHRl ciB2bWVtbWFwIHNvCj4gdGhhdCB0aGUgcG9pbnRlciB0byBzdHJ1Y3QgcGFnZSBub3cgcG9pbnRz IHRvIGEgZGlmZmVyZW50IHN0cnVjdCBwYWdlCj4gKG9uZSBvZiB0aGUgZWFybGllciBvbmVzKS4g IFRoZW4gdGhlIG9yaWdpbmFsIHBhZ2Ugb2Ygdm1lbW1hcCBjb250YWluaW5nCj4gb3VyIGx1Y2t5 IHN0cnVjdCBwYWdlIGlzIHJldHVybmVkIHRvIHRoZSBwYWdlIGFsbG9jYXRvci4gIEF0IHRoaXMg cG9pbnQsCj4gaXQgbm8gbG9uZ2VyIGNvbnRhaW5zIHN0cnVjdCBwYWdlczsgaXQgY2FuIGNvbnRh aW4gbGl0ZXJhbGx5IGFueXRoaW5nLgo+Cj4gV2hlcmUgbXkgYW5hbHlzaXMgd2VudCB3cm9uZyB3 YXMgdGhhdCBDUFUgQSBfbm8gbG9uZ2VyIGhhcyBhIHBvaW50ZXIKPiB0byBpdF8uICBDUFUgQSBo YXMgYSBwb2ludGVyIGludG8gdm1lbW1hcC4gIFNvIGl0IHdpbGwgYWNjZXNzIHRoZQo+IHJlcGxh Y2VtZW50IHN0cnVjdCBwYWdlICh3aGljaCBkZWZpbml0ZWx5IGhhcyBhIHJlZmNvdW50IDApIGlu c3RlYWQgb2YKPiB0aGUgb25lIHdoaWNoIGhhcyBiZWVuIGZyZWVkLiAgSSBoYWQgdGhvdWdodCB0 aGF0IENQVSBBIHdvdWxkIGFjY2VzcyB0aGUKPiBvcmlnaW5hbCBtZW1vcnkgd2hpY2ggaGFzIG5v dyBiZWVuIGFsbG9jYXRlZCB0byBzb21lb25lIGVsc2UuICBCdXQgbm8sCj4gaXQgY2FuJ3QgYmVj YXVzZSBpdHMgcG9pbnRlciBpcyB2aXJ0dWFsLCBub3QgcGh5c2ljYWwuCj4KPgo+IC0tLQo+Cj4g Tm93IEknbSB0aGlua2luZyBtb3JlIGFib3V0IHRoaXMgYW5kIHRoZXJlJ3MgYW5vdGhlciBzY2Vu YXJpbyB3aGljaCBJCj4gdGhvdWdodCBtaWdodCBnbyB3cm9uZywgYW5kIGRvZXNuJ3QuICBGb3Ig NyBvZiB0aGUgNTEyIHBhZ2VzIHdoaWNoIGFyZQo+IGZyZWVkLCB0aGUgc3RydWN0IHBhZ2UgcG9p bnRlciBnYXRoZXJlZCBieSBDUFUgQSB3aWxsIG5vdCBwb2ludCB0byBhCj4gcGFnZSB3aXRoIGEg cmVmY291bnQgb2YgMC4gIEluc3RlYWQgaXQgd2lsbCBwb2ludCB0byBhbiBhbGlhcyBvZiB0aGUK PiBoZWFkIHBhZ2Ugd2l0aCBhIHBvc2l0aXZlIHJlZmNvdW50LiAgRm9yIHRob3NlIHBhZ2VzLCBD UFUgQSB3aWxsIHNlZQo+IGZvbGlvX3RyeV9nZXRfcmN1KCkgc3VjY2VlZC4gIFRoZW4gaXQgd2ls bCBjYWxsIHhhc19yZWxvYWQoKSBhbmQgc2VlCj4gdGhlIGZvbGlvIGlzbid0IHRoZXJlIGFueSBt b3JlLCBzbyBpdCB3aWxsIGNhbGwgZm9saW9fcHV0KCkgb24gc29tZXRoaW5nCj4gd2hpY2ggdXNl ZCB0byBiZSBhIGZvbGlvLCBhbmQgaXNuJ3QgYW55IG1vcmUuCj4KPiBCdXQgZm9saW9fcHV0KCkg Y2FsbHMgZm9saW9fcHV0X3Rlc3R6ZXJvKCkgd2hpY2ggY2FsbHMgcHV0X3BhZ2VfdGVzdHplcm8o KQo+IHdpdGhvdXQgYXNzZXJ0aW5nIHRoYXQgdGhlIHBvaW50ZXIgaXMgYWN0dWFsbHkgdG8gYSBm b2xpby4KPiBTbyBldmVyeXRoaW5nJ3MgZmluZSwgYnV0IHJlYWxseSBvbmx5IGJ5IGNvaW5jaWRl bmNlOyBJIGRvbid0IHRoaW5rCj4gYW55Ym9keSdzIHRob3VnaHQgYWJvdXQgdGhpcyBzY2VuYXJp byBiZWZvcmUgKG1heWJlIE11Y2h1biBoYXMsIGJ1dCBJCj4gZG9uJ3QgcmVtZW1iZXIgaXQgYmVp bmcgZGlzY3Vzc2VkKS4KCldvdyHCoCBNYXJ2ZWxvdXMgYW5hbHlzaXMsIHRoYW5rIHlvdSEKClNv IGlzIHRoZSBzb2x1dGlvbiBzaW1wbGUgYXMgbWFraW5nIGZvbGlvX3B1dF90ZXN0emVybygpIHRv IGNoZWNrIAp3aGV0aGVyIHRoZSBmb2xpbyBwb2ludGVyIGFjdHVhbGx5IHBvaW50cyB0byBhIGZv bGlvPwoKb3IgdGhlcmUgaXMgbW9yZSB0byBjb25zaWRlcj8KClRoYW5rcyBhIGxvdCEKCi1qYW5l CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgt YXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQu b3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJt LWtlcm5lbAo=