From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id BAF303858284 for ; Thu, 25 Jan 2024 20:11:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BAF303858284 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org BAF303858284 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706213489; cv=pass; b=m7eaUDn+bYYDSdKT/RmcNEqBHg7UYP5nBLr2dALcfsH/O7Yhi96d0dym9Nwexen3dZsic1rF1aLOfvm8h/6GWstuBzF+lmCjPgVFb2toUWAt2FMx994THFF7u5CQFrjZranHZStnDWeNITI9Xr8ZZxcQ1gkjoPVktFGU6w19DSg= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706213489; c=relaxed/simple; bh=mf0CmwYBzm92SUyk5SQZWuDmYQGCglN7dM9IWpYD6yE=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=RLZmIWl/4Wc04cENPYTaYBWTE7f/rVuGMI5jDEPWGYyBR4tckBaXjO/E1MU4s7da6Ezgn0MugBtHieFNMh85gDs0a92wCfvqCyzXShYuygCOXZdAutZfgD5vI3tWvuPJHOwzWzfHDJjNO8P4p7mKY21trHYoKmYs9gasKK5wwGU= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 40PK4LOe009440; Thu, 25 Jan 2024 20:11:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=corp-2023-11-20; bh=mf0CmwYBzm92SUyk5SQZWuDmYQGCglN7dM9IWpYD6yE=; b=eorYaCnySAXrJ+fZ48gMxrlQTHGcXqsEWFRgg9DkwSemWJ5EWIBMXawQWDlRh1kYrjvH Gx9JLKPLcwthqKREAL9t//oSwjeKlH0ZIOt+u7K1+Jnj5sljZ2XgVgDv3l79GtRdW8en B00w3cBH01iloUkU6CXsc//sqqMfQqHks8qR9DSR/phK+l4h7e1mcZatidiHt1eyvtOC 4KGoLxXkz9AfpntXEDe469Hgg8gkAjjN5cqyij+m8k/y2WOV4Y7qVKamGaSMKZgfl+87 QaLi/8fDxZQfPuHySU4JmehiVgFSS4kGURXcM6pQoc8fQuMI4ZAOesJCj++W2NKF3NGv ww== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3vr79nraxy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 25 Jan 2024 20:11:24 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 40PJIGiR029780; Thu, 25 Jan 2024 20:11:24 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3vs33x8uju-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 25 Jan 2024 20:11:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HF5t2B9Gxqq10Lo0HhWYRHJxXvu2XcYNM+9mTU31NiOte9/7kH++3x2hQbA9nZ/5qU75JlLp+x90sKm14ncR3jTUsOaMnDE3pob5anciBFN5YdVAcjKUeVJigtv8jiyyFykZwvILhHg46IzgtQ2ZHLUVpGMOKxnP5lx0fZr3Gxz+6E2u6+1BsD9cOIDd2+zR0xpYjVbHovrnF5r54zOPMyS003qmyl88EvRMI3dKQRFXnkbnmaz+FwJQqYF58x/rshoLP28W8gYNL+g2F1qNhKZgWJ7aq/UTPsvqHX6gTdlsI//8sL4f4esvs4T1Xk8nr/fxxzw7IXZbvZRQc2Nxpg== 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=mf0CmwYBzm92SUyk5SQZWuDmYQGCglN7dM9IWpYD6yE=; b=QhZW+h1x3VDkxSxVAtIXuHcuoUZJghu++sOFF8qDgdC7xR5QcgOE4vPEAD2gL8IxyU4cuP1Os1miv9uWhOYaaTR0xGePuu62uGs5wCTaR6wIXyFWV27V2/GlcGVEO28C+7iLmJO1imW5cWxXnTi/fD7wXwdrWZsrphPIr/HaHTygTFfqa9X2DJG+3GhVl4f0eaPt4+SmO+ugFCsRVP2hHG73PNB+L2buWPN76rlIeZwYq/TbvBCyUYv6SSeZAt6dG0Zptbh5VDDCrmcYGlbDHisWGZokrMopbsX85U7bUpLEaDX51bdBRARxC/MtWOWU9KVNOpDaqcS9x7Mi1ovxAw== 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=mf0CmwYBzm92SUyk5SQZWuDmYQGCglN7dM9IWpYD6yE=; b=vIC5Oybl2IRE9CRGbDpblW2TkoumOOrtJgPBTBHI/pW0Y0JX78dtaImPtWX+8U8Ts9HGcj9zsdq7w0xuGSqQApH2izl60+Vmf9mIng7YhJEGt38uuk2vLaJGweuWhpEdGWm5h9LnF+2MFS0NjKc20WXDtgEDy3y4Cj1GmaEg6W0= Received: from CH3PR10MB7957.namprd10.prod.outlook.com (2603:10b6:610:1bf::19) by SA1PR10MB7753.namprd10.prod.outlook.com (2603:10b6:806:3a9::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.22; Thu, 25 Jan 2024 20:11:21 +0000 Received: from CH3PR10MB7957.namprd10.prod.outlook.com ([fe80::6234:e7a1:b517:c44]) by CH3PR10MB7957.namprd10.prod.outlook.com ([fe80::6234:e7a1:b517:c44%6]) with mapi id 15.20.7202.035; Thu, 25 Jan 2024 20:11:21 +0000 From: Qing Zhao To: Kees Cook CC: "joseph@codesourcery.com" , "richard.guenther@gmail.com" , "jakub@redhat.com" , "siddhesh@gotplt.org" , "uecker@tugraz.at" , "isanbard@gmail.com" , "gcc-patches@gcc.gnu.org" Subject: Re: [PATCH v4 0/4]New attribute "counted_by" to annotate bounds for C99 FAM(PR108896) Thread-Topic: [PATCH v4 0/4]New attribute "counted_by" to annotate bounds for C99 FAM(PR108896) Thread-Index: AQHaTlx75DG1HCeLGUCpchPuevMS7bDptGoAgAFEIwA= Date: Thu, 25 Jan 2024 20:11:21 +0000 Message-ID: References: <20240124002955.3387096-1-qing.zhao@oracle.com> <202401241624.4DC3D829@keescook> In-Reply-To: <202401241624.4DC3D829@keescook> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3731.700.6) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH3PR10MB7957:EE_|SA1PR10MB7753:EE_ x-ms-office365-filtering-correlation-id: 3d9ee40d-3f8d-44c3-0639-08dc1de1cc41 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8xP0eJpnRLfOMEIW5aNSnDitfVxGzDCqR947K+HHPBHDvNo5NsMSWn1pRUp9Jp9vIpKNaqpNiqRYSkPY4vX9srhVovrXP1voBOvU1xeGXFnanQ8zqCR7xwnC6LdgtWc/mbVublCKiUMYepIg83Z6+Ij1wVpFrFRl0yyeW+OYj6JPNl96/br+ppGDUAKb6SAKVJrP0Fs33rHCo8ky66fyxUn3EMXljwDKaqZK/5IQHBhG76oVSYnAJE8fsjpi6cGPAj8CKTuxZiuu22CtMJVfrPcYCLvAOluFuwxF21zmnMSVdTlAyxh7Ou6hFswFAo8Qxu+xVZrdK0tSkVJBK63NrHfZHnhPhDrHgh1Na4pXJB0HoWnnnFQsS5xKtbluaOLcz85VZnStBv2A6tR0KQwfdMA/rcR/mSuyFW0N+bc+SryUgJPPBR4PdM9pKZ1/lK4iqdPQK9ifa+AQ4iKaoA1l199YwBpZTTk55eRrbZVVzqsU14lnVmKwMUsD2oTlCNx7qA/iaIQijoo6OYSzPhL9hV0iUQzHklihadOltg4cjgr4L7MW+kgm9HohfJjyK9XBZE2YkaUO9GcD26brY1e3Ijc+6dw+SaFZ5k7e0X2HIs1KvffKPBq3ACAqC3dQh8IJNYAKoIq3NlFnKHdHOPYOEA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR10MB7957.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(346002)(136003)(396003)(376002)(366004)(230922051799003)(451199024)(64100799003)(186009)(1800799012)(66899024)(83380400001)(41300700001)(86362001)(91956017)(33656002)(36756003)(38070700009)(122000001)(26005)(2616005)(6486002)(6512007)(66446008)(38100700002)(71200400001)(64756008)(478600001)(6506007)(316002)(76116006)(6916009)(66476007)(66946007)(53546011)(66556008)(2906002)(8936002)(44832011)(54906003)(5660300002)(8676002)(4326008)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NFdab2ZDRHNzejJ3bGlid2YwTjVsMEpJUGUxOVk4bU0yaCtpMWNtSStsY21K?= =?utf-8?B?NnVMSTM1RTNjbDc0eHUvODA0VlFrdnl2R3Z6eHNuQ3ZpNHFlM1FBeDZsdERX?= =?utf-8?B?QUVDN2doa1g1dml4RUNoRzNJMFpoRVJETDJtNFYxdjY1clVsdkY4Wm1OQnZh?= =?utf-8?B?anlaNXhtMThPQzdNL1REK0pvSS9RZlRuWFBLU2QzVUFGazdWOGJVdEtCV2sr?= =?utf-8?B?aURTUm5QSVNWbzRRc0puZkU4dklCcnJBVWRqYXZzVTAxUy9ZTVBSTUwyYzNR?= =?utf-8?B?S1gvVFlWNnhCaXIyTzdST3hJa2lwL3RTclZXb2pRMEtrVlVIdGozTVBXUkVS?= =?utf-8?B?SGtMbGRpdXlCTFErZVNSTk9pazM0QUtGVE1xc2F3bUgrb0IzcU9taWRMMytG?= =?utf-8?B?UXdmRTYrb0hKRWhaVUV3eFR6QXJQOFZhbWxzbzBTSk1ZRVp1NnVUTFkzOXF6?= =?utf-8?B?bnQzc3dobURUQWJsald1QnlwTHVoN1lpYTdRSGF0RVVsL0hQa2VET2ViUGFm?= =?utf-8?B?RzByWU5ZY0tnN1crdFFIMzVlWUdGaldTbUdmbzFVSEpHNGNGelM0bDcxaGhl?= =?utf-8?B?V0dMeFZjSDVuTzB5eGYrVHVzUkx3dVVLTU5nVjBvWm9hNnNCazRGNy9jQlNL?= =?utf-8?B?OGpkbzk2U3dzQkNiOEV4eFlyNGp0WkdwK3lnM2tINE5qcEE2MFFoZ05LYXJB?= =?utf-8?B?SjFGYURkNU9DYlA2eHlSQ1U2V25JMjJ2cU5aSGxNYlZoNUw3TGtqWkdxdlhK?= =?utf-8?B?NHoremNubVZnREluN1krcUJGVjJEdm9JSHVONHkvdEZvemdzd01yV0FFRm50?= =?utf-8?B?aWdpZEF0elBHS3NSRHJRNlBlbFVXdGdlbWN6UTNjUnFDSzE0ZFFVa0w4cHBB?= =?utf-8?B?bVl4dEp6cG80UkNEOUpkbEEremI1RW56bjE4ZlJuVCs4dndidEcrdWVwL3c1?= =?utf-8?B?L0hXN1JSU1BPWTFNWkVNVmo5aVNRQmVBZGVCSG54RWIxems4Q1hUT0RwMmZa?= =?utf-8?B?Wmx5aVNaV2x2d0NkOXlSODJpUE4vTTBPRGZic2Q1ZjFlOHJwTER2ajROck94?= =?utf-8?B?MzIrME5KWWpKRHd6d1NtSWt4ME43TXQ2Q05ZeGswUXRpZk5QWnhwdzlBTDIw?= =?utf-8?B?VFFMazdBdmZUdFR5Vi81K3c2cllOcWdzcERZTzdqaCs3WFpMeXFETldIZGpz?= =?utf-8?B?RFBPQlBKM2tLWDFCbTlsYzRHNlZFNnQ5aDBrbmJHS043dktjVTd5K1ZxTUtk?= =?utf-8?B?VlRQMnRCR0U0VCt5K1orZUVobTU5NVVuQVMzTkt4SDAxR2lxNWdJWGhtUTBE?= =?utf-8?B?Q20wMlY5anIydzN6WmM4bklQNnhhR1RWNFNZREFkalFMck1TVjV5blFRQ1BS?= =?utf-8?B?SXVnS1BxQ1hiUHFjWmdTaEtRQ3RaU2FCaFVPQ3dBWkVETC9OYm5hcDdraEJX?= =?utf-8?B?bmR0Z2M3MzZlL090bVFoUGdBRWVmT201VmhrWU9QU2FLcktWN1h6Z1J5UVNH?= =?utf-8?B?dWhoSk11cG4zQWlDeUlqREFTZ2d0SGd5SUZaaU9nRk9OWGhGcHJCbTBYTjNC?= =?utf-8?B?clRNY2FFK1pSM1FWZWtwZkkzV2RIM1ZZMXlCZzNkZmQ2L1NLeTRRQm1LcjVu?= =?utf-8?B?MVBZVVduQlJ5cW10OUp5UUhkcEZJRCthbENMRTdaOFExMDVtcU05M1NjK2R4?= =?utf-8?B?QXRkbUJpY2FCcmo0REZjVjJ6T3ZaM1RsRGU5SnBERjd6NE5NaTBTOG9TUFhY?= =?utf-8?B?dlEvemRyQmNnOGlnRHhnSDZMZ0pEcFRSQ0lwVkE1OVRVZkFoTlRobXRKVjhh?= =?utf-8?B?b2Rja3BSUytmdHNYaGZ6OTdyd3VMdHdPTmMySHRJcjFab3d4emlnTU15T3g0?= =?utf-8?B?ODNlb1QwVlF2OFg4WTBqWFNtdHZxblo4bENFMzdnWFVUZGExeWl2S0w1a1dH?= =?utf-8?B?bTY3VFM1VWNzUWhUVTJLeGdKTG5KV2FJVkw2Uk1sU2s3OHhiK2FsaTJuWmtI?= =?utf-8?B?d2lIdVF4M28vb2QrNWorOGNmMkx0Zi9pcTg4Z25MeDdudmZtTXV4YWUzSXpu?= =?utf-8?B?eHhHRzM2eG52allvWEFFbHhORis4MXZrWndBOWVES1BkN0N5WEplY2kzWU8x?= =?utf-8?Q?kbSqlRxxHuQ0/b7C/nmDz8SLw?= Content-Type: text/plain; charset="utf-8" Content-ID: <49CDF16DA0DCD64EA99A0CD20C10EB48@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ztBbSTZcb639XzpSg6g9OP5Ye8NaC8eDREoo9XQBYsKxD8asaTYTeypSf7nlsv+SUgzdDzRLOUVh9X8Y5n1L4m9xDW4ioEezmwTsDwxm6lGmK4bauPeR/tHKsxW1ZlmmQow2D6SgmJF7XB+wiH6D6DT5lbD2TuyjNxEAQ9uQfOBQemeOf5Se2rwvFH9n6e9YcN4FsAixq6COuMi+x1RWv+xkff84ayi6HBxekvCS0CCh9zuWA7tiwatnNuP/AfTytoiFWfMbXfrnC5lkU+RgiUQsmy1P2obI9bZhIEEyqBpEH86qkMFkN8bvcrvYKp9lRyLMPUBipqc+WIBjw8rWnJvcjs3zfdkSbXdJJ0HCNPLQMn0Ea2Aw7PBLnqQjTP2FEomoRGVY30d519lDlZlpEzEIVVt8Jb82rvz9S/fbMGU8IoTa+23NQQ24uneQRLEUQAOtEDFP1ef8BhQkQOQpyjkIeKq0N0iuKppDksUxdhH2LY/Q2LNLwKx2Z80Q9JW3WqhXaFww/DCWdPueDnwsRvFKSeoNXaooYrmJQMWzvGa3IXQH1BsPzzgP05sVLbaiUqtd1w4Crixsh44GndxPZSuHEGXtTERTVMy5BqHPlug= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH3PR10MB7957.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d9ee40d-3f8d-44c3-0639-08dc1de1cc41 X-MS-Exchange-CrossTenant-originalarrivaltime: 25 Jan 2024 20:11:21.1163 (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: +stlr9LMwDKiSDjfus9U+ZAvD68NiYRUq/NviHM3YYA4qbi6ht04ushZDpdu+QaQt0hz+FQY8AmKdf+F4hXgsA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7753 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-01-25_12,2024-01-25_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 bulkscore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2401250144 X-Proofpoint-GUID: qBXqjOfpJ0oh6yyQMYXHW2VHVldLRd7C X-Proofpoint-ORIG-GUID: qBXqjOfpJ0oh6yyQMYXHW2VHVldLRd7C X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: VGhhbmtzIGEgbG90IGZvciB0aGUgdGVzdGluZy4NCg0KWWVzLCBJIGNhbiByZXBlYXQgdGhlIGlz c3VlIHdpdGggdGhlIGZvbGxvd2luZyBzbWFsbCBleGFtcGxlOg0KDQojaW5jbHVkZSA8c3RkbGli Lmg+DQojaW5jbHVkZSA8c3RkZGVmLmg+DQojaW5jbHVkZSA8c3RkaW8uaD4NCg0KI2RlZmluZSBN QVgoYSwgYikgICgoYSkgPiAoYikgPyAoYSkgOiAgKGIpKQ0KDQpzdHJ1Y3QgdW50cmFja2VkIHsN CiAgICAgICBpbnQgc2l6ZTsNCiAgICAgICBpbnQgYXJyYXlbXSBfX2F0dHJpYnV0ZV9fKChjb3Vu dGVkX2J5IChzaXplKSkpOw0KfSAqYTsNCnN0cnVjdCB1bnRyYWNrZWQgKiBhbGxvY19idWYgKGlu dCBpbmRleCkNCnsNCiAgc3RydWN0IHVudHJhY2tlZCAqcDsNCiAgcCA9IChzdHJ1Y3QgdW50cmFj a2VkICopIG1hbGxvYyAoTUFYIChzaXplb2YgKHN0cnVjdCB1bnRyYWNrZWQpLA0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvZmZzZXRvZiAoc3RydWN0IHVudHJhY2tl ZCwgYXJyYXlbMF0pDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsg KGluZGV4KSAqIHNpemVvZiAoaW50KSkpKTsNCiAgcC0+c2l6ZSA9IGluZGV4Ow0KICByZXR1cm4g cDsNCn0NCg0KaW50IG1haW4oKQ0Kew0KICBhID0gYWxsb2NfYnVmKDEwKTsNCiAgICAgcHJpbnRm ICgic2FtZV90eXBlIGlzICVkXG4iLA0KICAoX19idWlsdGluX3R5cGVzX2NvbXBhdGlibGVfcCh0 eXBlb2YgKGEtPmFycmF5KSwgdHlwZW9mICgmKGEtPmFycmF5KVswXSkpKSk7DQogIHJldHVybiAw Ow0KfQ0KDQoNCi9ob21lL29wYy9JbnN0YWxsL2xhdGVzdC1kL2Jpbi9nY2MgLU8yIGJ0Y3AuYw0K c2FtZV90eXBlIGlzIDENCg0KTG9va3MgbGlrZSB0aGF0IHRoZSDigJx0eXBlb2bigJ0gb3BlcmF0 b3IgbmVlZCB0byBiZSBoYW5kbGVkIHNwZWNpYWxseSBpbiBDIEZFDQogZm9yIHRoZSBuZXcgaW50 ZXJuYWwgZnVuY3Rpb24gLkFDQ0VTU19XSVRIX1NJWkUuIA0KDQooSSBoYXZlIHNwZWNpYWxseSBo YW5kbGUgdGhlIG9wZXJhdG9yIOKAnG9mZnNldG9m4oCdIGluIEMgRkUgYWxyZWFkeSkuDQoNCldp bGwgZml4IHRoaXMgaXNzdWUuDQoNClRoYW5rcy4NCg0KUWluZw0KDQo+IE9uIEphbiAyNCwgMjAy NCwgYXQgNzo1MSBQTSwgS2VlcyBDb29rIDxrZWVzY29va0BjaHJvbWl1bS5vcmc+IHdyb3RlOg0K PiANCj4gT24gV2VkLCBKYW4gMjQsIDIwMjQgYXQgMTI6Mjk6NTFBTSArMDAwMCwgUWluZyBaaGFv IHdyb3RlOg0KPj4gVGhpcyBpcyB0aGUgNHRoIHZlcnNpb24gb2YgdGhlIHBhdGNoLg0KPiANCj4g VGhhbmtzIHZlcnkgbXVjaCBmb3IgdGhpcyENCj4gDQo+IEkgdHJpcHBlZCBvdmVyIGFuIHVuZXhw ZWN0ZWQgYmVoYXZpb3JhbCBjaGFuZ2UgdGhhdCB0aGUgTGludXgga2VybmVsDQo+IGRlcGVuZHMg b246DQo+IA0KPiBfX2J1aWx0aW5fdHlwZXNfY29tcGF0aWJsZV9wKCkgbm8gbG9uZ2VyIHRyZWF0 cyBhbiBhcnJheSBtYXJrZWQgd2l0aA0KPiBjb3VudGVkX2J5IGFzIGRpZmZlcmVudCBmcm9tIHRo YXQgYXJyYXkncyBkZWNheWVkIHBvaW50ZXIuIFNwZWNpZmljYWxseSwNCj4gdGhlIGtlcm5lbCB1 c2VzIHRoZXNlIG1hY3JvczoNCj4gDQo+IA0KPiAvKg0KPiAqIEZvcmNlIGEgY29tcGlsYXRpb24g ZXJyb3IgaWYgY29uZGl0aW9uIGlzIHRydWUsIGJ1dCBhbHNvIHByb2R1Y2UgYQ0KPiAqIHJlc3Vs dCAob2YgdmFsdWUgMCBhbmQgdHlwZSBpbnQpLCBzbyB0aGUgZXhwcmVzc2lvbiBjYW4gYmUgdXNl ZA0KPiAqIGUuZy4gaW4gYSBzdHJ1Y3R1cmUgaW5pdGlhbGl6ZXIgKG9yIHdoZXJlLWV2ZXIgZWxz ZSBjb21tYSBleHByZXNzaW9ucw0KPiAqIGFyZW4ndCBwZXJtaXR0ZWQpLg0KPiAqLw0KPiAjZGVm aW5lIEJVSUxEX0JVR19PTl9aRVJPKGUpICgoaW50KShzaXplb2Yoc3RydWN0IHsgaW50OigtISEo ZSkpOyB9KSkpDQo+IA0KPiAjZGVmaW5lIF9fc2FtZV90eXBlKGEsIGIpIF9fYnVpbHRpbl90eXBl c19jb21wYXRpYmxlX3AodHlwZW9mKGEpLCB0eXBlb2YoYikpDQo+IA0KPiAvKiAmYVswXSBkZWdy YWRlcyB0byBhIHBvaW50ZXI6IGEgZGlmZmVyZW50IHR5cGUgZnJvbSBhbiBhcnJheSAqLw0KPiAj ZGVmaW5lIF9fbXVzdF9iZV9hcnJheShhKSAgIEJVSUxEX0JVR19PTl9aRVJPKF9fc2FtZV90eXBl KChhKSwgJihhKVswXSkpDQo+IA0KPiANCj4gVGhpcyBnZXRzIHVzZWQgaW4gdmFyaW91cyBwbGFj ZXMgdG8gbWFrZSBzdXJlIHdlJ3JlIGRlYWxpbmcgd2l0aCBhbg0KPiBhcnJheSBmb3IgYSBtYWNy bzoNCj4gDQo+ICNkZWZpbmUgQVJSQVlfU0laRShhcnIpIChzaXplb2YoYXJyKSAvIHNpemVvZigo YXJyKVswXSkgKyBfX211c3RfYmVfYXJyYXkoYXJyKSkNCj4gDQo+IA0KPiBTbyB0aGlzIGJ1aWxk czoNCj4gDQo+IHN0cnVjdCB1bnRyYWNrZWQgew0KPiAgICAgICAgaW50IHNpemU7DQo+ICAgICAg ICBpbnQgYXJyYXlbXTsNCj4gfSAqYTsNCj4gDQo+IF9fbXVzdF9iZV9hcnJheShhLT5hcnJheSkN Cj4gPT4gMCAoYXMgZXhwZWN0ZWQpDQo+IF9fYnVpbHRpbl90eXBlc19jb21wYXRpYmxlX3AodHlw ZW9mKGEtPmFycmF5KSwgdHlwZW9mKCYoYS0+YXJyYXkpWzBdKSkNCj4gPT4gMCAoYXMgZXhwZWN0 ZWQsIGFycmF5IHZzIGRlY2F5ZWQgYXJyYXkgcG9pbnRlcikNCj4gDQo+IA0KPiBCdXQgaWYgY291 bnRlZF9ieSBpcyBhZGRlZCwgd2UgZ2V0IGEgYnVpbGQgZmFpbHVyZToNCj4gDQo+IHN0cnVjdCB0 cmFja2VkIHsNCj4gICAgICAgIGludCBzaXplOw0KPiAgICAgICAgaW50IGFycmF5W10gX19jb3Vu dGVkX2J5KHNpemUpOw0KPiB9ICpiOw0KPiANCj4gX19tdXN0X2JlX2FycmF5KGItPmFycmF5KQ0K PiA9PiBidWlsZCBmYWlsdXJlIChub3QgZXhwZWN0ZWQpDQo+IF9fYnVpbHRpbl90eXBlc19jb21w YXRpYmxlX3AodHlwZW9mKGItPmFycmF5KSwgdHlwZW9mKCYoYi0+YXJyYXkpWzBdKSkNCj4gPT4g MSAobm90IGV4cGVjdGVkLCBib3RoIHBvaW50ZXJzPykNCj4gDQo+IA0KPiANCj4gDQo+IC0tIA0K PiBLZWVzIENvb2sNCg0K