From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 585E83858D1E for ; Wed, 2 Aug 2023 15:09:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 585E83858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 372EO6UL001447; Wed, 2 Aug 2023 15:09:45 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-03-30; bh=Q5j9mW+cvJUNyNnEzCVFp7Lo2YMBuhECCLTFS2+5gns=; b=2ad9AFWj7L8bl+yZPbwPgw8Y4jlccF80WS73xl0KrzoAuLampv2QppSLpJHhaHui3X+n Sq9LYXzJC13/1ZUCWnlj93EIinljuafeFbBMFtvsjyOZaGXiyjCWhQzZkGhs5qlkjoTH tygH5PS25FIcWmCGhxjw5x18bi2g5A2iDP/e/HBlgPUhK5ZZS5f7NSk4UmAWrWUcov77 4eH8RJZxuWHcBgsUFshUbxiIFWpTTHbqmLoHs3TgouVMtamFk+TitKUD4XATIuebLnnd kzr5UplWicnBRNthY9/93NS/UuluRVecJcVomDCYoKN1IrGlkeq8mNj2uNWn8m33DxFO 1Q== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s4s6e7gb6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 02 Aug 2023 15:09:45 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 372F5dtl003907; Wed, 2 Aug 2023 15:09:45 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2106.outbound.protection.outlook.com [104.47.70.106]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s4s7e3ktj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 02 Aug 2023 15:09:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OB34tIj/s1Up08xVvvWUasQtpYxhdq8IKFsVCIpxbbuJKz5fiUJ2UrndXw6gTa7QvWonCjlXF1kyrI+jpIuVS1HBszXtdTxqe9jwcg/rI9cnxtYnTOeXLPCkgu/cfk2fTBytiinHd4KuW+CfM5lK1XBlSYI/aY1hqskf6bwdb482FUENwG26fgb/nC/0K5Wn94t2t2jRRAyIrtJoWV4WQT9QA9sQxOdNLBSaM6tyL8za89tRn32jjLEcbMDYNz3fC2UenOVzL4GIbNgf53QdFV3ahsHgp4qR1P8uLc5tL1hF8In6LTIjBf0Xj/aaanmp1SMxL+Qm8hlRzTwWmcPY5g== 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=Q5j9mW+cvJUNyNnEzCVFp7Lo2YMBuhECCLTFS2+5gns=; b=PIZqWE3OkCgLZnYeFaEmMq/LgZ7aI+baDgQs2dWQ7Kah5uGrlsYlkyRFfhUuE1VqaBAaoTRCFv47YbJseAjh7E5rRL+1wejQNkHjQCMieQuXn/IsRV3xuwnxu6oBMO+6idcorzn30HwU6GbWICa4I16O5m/Ba6cA2+LZ+rvxdOCkDCtxpRba2uiD07hCSALsiwONhyJArHseqS+J4DsP1hSp+f0S2DKyjc2epqespY/Tb1joNz30KDaUTHytIAWsK3v8c9KVYQ5bFoSxx3ujKYSsIQOClStviR6ga5Cm1qoTB4jce0B1nokF9vLDIx/fVrbM8W2QA1VsFr1mw0z6Bg== 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=Q5j9mW+cvJUNyNnEzCVFp7Lo2YMBuhECCLTFS2+5gns=; b=PnHIaC7M7X+cay+2Du6WB2k0RJRW6WxDCUIWhrZAemb5Dxzyp8viL8GOVpvllhLmSC503PQ9t90Zs5h6Vtrrn+vGnFG8PcSmFCQfKYmSuiLPni4AH7cnqj/zBpRZCHynmReTbC8AI9nDIAtR5vV7q6fzg/M2X5IOOWP6rpzpgOI= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by DM3PR10MB7970.namprd10.prod.outlook.com (2603:10b6:0:40::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6631.45; Wed, 2 Aug 2023 15:09:43 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::5afd:d02a:38ef:94ba]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::5afd:d02a:38ef:94ba%7]) with mapi id 15.20.6631.045; Wed, 2 Aug 2023 15:09:43 +0000 From: Qing Zhao To: Kees Cook CC: Siddhesh Poyarekar , "joseph@codesourcery.com" , "richard.guenther@gmail.com" , "jakub@redhat.com" , "gcc-patches@gcc.gnu.org" , "uecker@tugraz.at" , "isanbard@gmail.com" Subject: Re: [V1][PATCH 0/3] New attribute "element_count" to annotate bounds for C99 FAM(PR108896) Thread-Topic: [V1][PATCH 0/3] New attribute "element_count" to annotate bounds for C99 FAM(PR108896) Thread-Index: AQHZjyQM4cZ0Nx0hq0Cg9tjYZZoL4q9tBmcAgEBSagCACxrkAIAGVkYAgAAnywCAAtQjgIAS8xWAgAG8jYCAARLnAA== Date: Wed, 2 Aug 2023 15:09:43 +0000 Message-ID: <9DE28F91-4814-4DF7-898C-5488A7A9C7C8@oracle.com> References: <20230525161450.3704901-1-qing.zhao@oracle.com> <202305261218.2420AB8E0@keescook> <202307131311.1F30C4357@keescook> <202307171612.406D82C39@keescook> <72AF1253-564C-46C1-9FBC-5A53871CB701@oracle.com> <202308011538.90858F8D2@keescook> In-Reply-To: <202308011538.90858F8D2@keescook> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Apple Mail (2.3696.120.41.1.3) x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CH2PR10MB4344:EE_|DM3PR10MB7970:EE_ x-ms-office365-filtering-correlation-id: dc9cee74-05ab-40e9-842d-08db936a805b x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zVmJohGS3IYILTscD9kjkWtoktQ4umR/09jTf0AfY5+CbaEosCpRg9xYkNsw5Hvy3sMt26JypM2z9D3r9B5FWKaM/Y70qwQcO4ofYMlGTLYK945S4gclpxiiGS/+l8af1R+1d40yn+gRsXrxUlczeHhf8wjPFRz4Xt2GKDPcaWoKZHdbZYLCaTbhv8mMtOeZh1yrjJX8/QOYOZIPrVcNRDYHkFTec2vakjHSetYUH6Au6TvnaaBsrDvnzuxk4e2JP6/uJ+8Kpqk2elJmIg5aKr3XWqmvhTrl66kL4S9Xm98yp9u9JJHT5ECj6IaruUGNXxl9B9mwF+AazkjUaP3TKNJOQaOvj6XGYKy0+uexwyZKJl0Jfg/egtKHGmoBwQmo5qSxqjXjEp4F1EZ7WCktJFAa/kOVefOc8yhg1h+HRCkeXHPTxjf9RS9KSffdvQX0BdvHu5FbRNT+rNUgvnPQphCiEiWrrdj07riHrgZvbPKBXPvhJQHZSRXo2KzKklbffD+/tgIpQEWN1mOAb3bfKR7v1VH7UdDgcSWAFeOK5Rml29WTLqKPMZ4Rbp0ELgPXQA/QVzJSiKxEgp31Fv/U2uoIN5G58FogaT7/DkPBCGv9SaM6ovkt3/W4B6J6tTgjDz+8t5CkoqfQZNtdmruPMA== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR10MB4344.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(396003)(136003)(366004)(376002)(39860400002)(451199021)(8936002)(8676002)(5660300002)(41300700001)(2906002)(83380400001)(44832011)(38070700005)(36756003)(2616005)(478600001)(54906003)(122000001)(38100700002)(316002)(86362001)(6506007)(53546011)(64756008)(6486002)(76116006)(71200400001)(66946007)(66556008)(66476007)(91956017)(66446008)(33656002)(4326008)(6916009)(186003)(6512007)(966005)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Z1RMa3B5MmFsV2tER25ueWRFT1UwdDdyaFhGcTI0U1lBb2tuOVlrdlhOOGVW?= =?utf-8?B?YUZvWEMrVlRlenpHY25GZkVkcGlId0t1aTVVSkZOaTV4UmhvUXFNbWZpNEhU?= =?utf-8?B?T2dpTHFsNWR1NTI0U0ZzUmkrS0ZyOHVLOC8wczNiTXYwU2xpOHAyRFd2Nm94?= =?utf-8?B?Rk5vb2swOExrcmRZZVVIR1R0UHZ6c0JMM2lRMGhUV0M2RmVhUHJTQnE2Qkdh?= =?utf-8?B?UUxRY0RyR1BiaXFsaFpqTU9zSGtBVlhpMXNmV0tXV2p4a0N5M0Z0aXpTQW44?= =?utf-8?B?YnJFYUtDQ2tJcHFtdkc5UksxM3pQYiszbmZSNEd4Q3ljY1BoTFI0ZW40SHds?= =?utf-8?B?OFV6M2gzL1Z0Rm1ZVCtJMHZVcncyRGdjbzRHd0Fwc1h1b2tZakNFT0Nzb1lm?= =?utf-8?B?b2NXNGdWMjBEWnJTcjdRdGhLS20zRGRYUGptbmtBeExzQ3ZCcnUrNktzbDU2?= =?utf-8?B?SU1vYndTMmc5dEVHeHYxWE5nVHRZMG9iV2tBSHBJYjhxeEc4QzZUaFY0VktB?= =?utf-8?B?eHF4dmc5Ym8wTDlnd1FkYW5aMnVia25rYVN5cVlZS0NzZ2lJOVJsM0dCMWQx?= =?utf-8?B?NHBQTFJ4T1lzeldaaFJDSkJ3d1FJdzFvbVhzNnY2M0ZjdTNtbmp4VXZiMTV2?= =?utf-8?B?L0swSHVjL1RQL2NNTzNDbG9VbFpQWGNUc3NzSFdIZ2tOb1c2YU9iVlRYZGcy?= =?utf-8?B?cWFGbjJPdXV3dmJTdmhpbzdIWFZLbnhMUHhqVjhhY09Mcm9UZ29kdERKaDRU?= =?utf-8?B?NS9pRXVKaHNxVUhvUFVidFpVVmp5ck1GQ09DbFVZVjRPNVhvcW5BOG8wLzFB?= =?utf-8?B?UnFwTHFvSWplY2IvRkZlUU5tZVJNM215QnJmTHdMOCtzbmpqNzhnZ3g4VHor?= =?utf-8?B?bWlhYTE0dWdWUlhEamdXN2E5ZHRXY3NXQ0dhWXpHU0c5MU5GWi9sMmphRGV5?= =?utf-8?B?UXRueEN4VHY0YnFxQWhMQUtKZENSYnhaSllvTEpxYzhUTEtmVXprSzYrQU5m?= =?utf-8?B?cXhTZ3E4QXdPVkExanhXQlpDUGdZcDlnV1RBTG5ydmRUanF4KzJ2TmMyZVM3?= =?utf-8?B?M0t6Q1E4RlBPSXYyVDVvVU5XMGQrNzdlYy9GbEZ4aWVJeng3Tm5BeW10d2Ey?= =?utf-8?B?Y1FHZ0ltcXVybEd1dEtKV29mUzZwcm5yK1p5OE1DcWt2RDR5aXhTN3lFWGFt?= =?utf-8?B?ZE8vMUJ3eDUyV1FkWDVESDJvcFdRRENVaFdBUkdjOThpVVpNZXhDVGFUY2pU?= =?utf-8?B?TnZ5TzFXMEVXZnRLcTZrRmVhS3ExOXYwTXlIRTBEY3hxaWN3MkxoR3FGVVdv?= =?utf-8?B?eG9qRm91ZU01NTRpdlc0VmwxYXg4eTZEb1NqVTNKUzBXcEo3YWV2TnpJVm5o?= =?utf-8?B?TzR0MmJGaGl2QmZjNS9MS3JjcmZUSjhXZzIzQ2hSZUF1dWZXRlh0UkYxZG80?= =?utf-8?B?VUpuOWJ3QjJoUXpsRWNqaENrRUEwUmV3TEtuL2JCajJtb0JzTnJYZE1CVHcz?= =?utf-8?B?ZTY1RmVOZ0hrb0pmNWIxN1RYcitZUlllTGxmTi95eFhmdWlNOGxIdE5lMW5F?= =?utf-8?B?cUZMcEsvbjVtQ3Nqb3pIeUw5Z1d4MVY1b0xUTDI1UmJxR21tOHpYMUxOeVAw?= =?utf-8?B?d2gxcng1RGxUMEdndG0zS3JSNzU2N3pienluOU1EZDlDN3gvQnlBNmlpb3E0?= =?utf-8?B?dzNLaDV2TUo1TUU3RXBTVlZqYjR3aytBSWpUUnNUZStldXZkd2RvRDRHTWYy?= =?utf-8?B?WmJsT1JVSEtsdGZaYWVmSXpBRVkrWDRUcEYzT29jTlFzT0tObjZ2UVloaGRR?= =?utf-8?B?ejlaUlJnU1Q4ZjRLOEorR0cydUdRQ0xHNWo1S3V2Wmhqd0RKWEtOSzJpcXQz?= =?utf-8?B?ZHlXdW9NZTZ0d3JOckcvYlNHemtyWERXTjFVNnhhakRCMUVuS0N2d05DRmVo?= =?utf-8?B?Qm5VNnBzQ3Q4RWNOL1NCcFZvNFVPQU9tVGFqTjJHaGJMZHhyYWo4M2NxWU1W?= =?utf-8?B?NXdUUExPRWMzSFVoejRjQkFZR1pNdkowcDZ5eEFnMEs4a2FUUDFET2JZZ1U3?= =?utf-8?B?UE9LazI3V3lmdjRNaXJwK1RHQm9DbHk0SG1ObmlnRGltY1JVa3RYYnUvY0pS?= =?utf-8?B?YnVIV2FnbEpsZ3VDNGlIc3BoZ1RaYnVPUHlZcERYZVBLajFwWENwTFVnVXcz?= =?utf-8?Q?vageQBwxZbY4JJQZYumrm3k=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?utf-8?B?WEIyRnY2STF1ZzkwMWpUZG5pYjl6a3Z3ejl2MUNBYktHRVVEQlEzVThvR08r?= =?utf-8?B?cHNSTFJsWDIxR1NuWGcrRW9xZzQ5T1VsVVluc2tPZHA2ajBVRzFOR2tFcS9o?= =?utf-8?B?a0Y3ZCtCSUlCQ1ZtT0dnQTlJT3JSN1IrWkxvbEtaaEJldmdrZXNxODV4OG1z?= =?utf-8?B?dThuVUtEUVEyMFRIR284NkR1bzBpbWEybC9wZGxmTmRIUWt5UkxacXRlaklj?= =?utf-8?B?d3l5T1VrZjBxZUZCN0hzS1FuQUdWeC84VWgwOTJCdFIzY3lvK0xZWVBjL0Iv?= =?utf-8?B?MmtyZGtEQjJmYXlsTFpONHZYQUhPTHQ2MmV1OVFwQWlaSFRhbEtYSUxIdEpx?= =?utf-8?B?N0k3RjAzbDVMd2VPaUJ6UVZiZGFZRmZKSUhRamQrNldGdmEzK2h1RlgzaE1q?= =?utf-8?B?T25nUTBBN0s4WG1nMVZLMWt5YUIrWlNaSm1qV2pJc0ZqSXlIYnN1TndYY25T?= =?utf-8?B?Zkg3YnJoUGlua3U0NGh3L1FtbERibzFwN1VwNTZxTDJGZ0JZTllMNGNBTHFE?= =?utf-8?B?aEFKTmRDcFRsQzJHT0sxK3h6RFpOQjQvMHJjUnNManlKSWwwU1dJb2pRNStH?= =?utf-8?B?Wk8vOFIzWnFOK08xSkRrcWF3UmQzTmloaU9pdnNkNXU2L2dIbGNWUUdHa0o5?= =?utf-8?B?TWxubDZzRmREMjJZYWE1TUdLUTI3amZLZldzZko3MW0yRTlVSUsrVzZ3MXRP?= =?utf-8?B?WVBTSmtrYko2N3dLR0hNaWdSVVF2cnRDR3FGTWpVU08yS1JwUG1MQWhkYmNn?= =?utf-8?B?empoeUh3MEh1KzlsTkxISjVhaXVPQktpQ2N2NFhIaWtsWTg4c1VLNENWcHN1?= =?utf-8?B?Qnk3ZzFtMGtEYkx5NWxzWFhzTHlJbGNFVVVCVU9NOTVVT1dqa2hZVDdVajRk?= =?utf-8?B?czVUWjIweVBCRmNlNlRKUFlwbnpLN3hXdXNQSWV2d05XbkJ6QXR0V1JMRGZz?= =?utf-8?B?ckVIbDlMcU9Fd2ozemtZSGYrVEJVMGJCbHQzRHVzdUNvdHRBR1JFYXlkbHRQ?= =?utf-8?B?WFFkMjNnRllBaGh3K0RhOFkrd2FHaVo1Zk55eEZSUmoyTXhhODZ5K1VrQW9a?= =?utf-8?B?MlFTS2FmSTdVeUw2VGlydFkreU10dWNWd1Y4aGlQSTVYanYvcHVZaEdoWW9O?= =?utf-8?B?MWZVbm5rUjUzZWVIVUpydDQzNHFqTFFQZTlhcnlSQ2l6SUlCR1hXYmZ6YXlD?= =?utf-8?B?cWNNZExVUW1uaTBtb25wZVk1azVsNlNOdkFmcmVXbVAvODZQVWxSLzlPTVFD?= =?utf-8?Q?Rj7+xC1wowBwb7A?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CH2PR10MB4344.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc9cee74-05ab-40e9-842d-08db936a805b X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Aug 2023 15:09:43.1955 (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: UvYfCaQfzabBzEhg0iKzPJXy/VN9fUYLmOc0FOMh/k1sJ0KcrwCke0m+41g/CO/leF9OLMNcEo4ig3WOW9wRpg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM3PR10MB7970 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-08-02_11,2023-08-01_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308020134 X-Proofpoint-GUID: 5e0guuw93Arj2FhAoCto7XKOENPHHNXn X-Proofpoint-ORIG-GUID: 5e0guuw93Arj2FhAoCto7XKOENPHHNXn X-Spam-Status: No, score=-5.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,RCVD_IN_DNSWL_LOW,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: DQoNCj4gT24gQXVnIDEsIDIwMjMsIGF0IDY6NDUgUE0sIEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hy b21pdW0ub3JnPiB3cm90ZToNCj4gDQo+IE9uIE1vbiwgSnVsIDMxLCAyMDIzIGF0IDA4OjE0OjQy UE0gKzAwMDAsIFFpbmcgWmhhbyB3cm90ZToNCj4+IC8qIEluIGdlbmVyYWwsIER1ZSB0byB0eXBl IGNhc3RpbmcsIHRoZSB0eXBlIGZvciB0aGUgcG9pbnRlZSBvZiBhIHBvaW50ZXINCj4+ICAgZG9l cyBub3Qgc2F5IGFueXRoaW5nIGFib3V0IHRoZSBvYmplY3QgaXQgcG9pbnRzIHRvLA0KPj4gICBT bywgX19idWlsdGluX29iamVjdF9zaXplIGNhbiBub3QgZGlyZWN0bHkgdXNlIHRoZSB0eXBlIG9m IHRoZSBwb2ludGVlDQo+PiAgIHRvIGRlY2lkZSB0aGUgc2l6ZSBvZiB0aGUgb2JqZWN0IHRoZSBw b2ludGVyIHBvaW50cyB0by4NCj4+IA0KPj4gICB0aGVyZSBhcmUgb25seSB0d28gcmVsaWFibGUg d2F5czoNCj4+ICAgQS4gb2JzZXJ2ZWQgYWxsb2NhdGlvbnMgIChjYWxsIHRvIHRoZSBhbGxvY2F0 aW9uIGZ1bmN0aW9ucyBpbiB0aGUgcm91dGluZSkNCj4+ICAgQi4gb2JzZXJ2ZWQgYWNjZXNzZXMg ICAgIChyZWFkIG9yIHdyaXRlIGFjY2VzcyB0byB0aGUgbG9jYXRpb24gb2YgdGhlIA0KPj4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHBvaW50ZXIgcG9pbnRzIHRvKQ0KPj4gDQo+PiAgIHRo YXQgcHJvdmlkZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHlwZS9leGlzdGVuY2Ugb2YgYW4gb2Jq ZWN0IGF0DQo+PiAgIHRoZSBjb3JyZXNwb25kaW5nIGFkZHJlc3MuDQo+PiANCj4+ICAgZm9yIEEs IHdlIHVzZSB0aGUgImFsbG9jX3NpemUiIGF0dHJpYnV0ZSBmb3IgdGhlIGNvcnJlc3BvbmRpbmcg YWxsb2NhdGlvbg0KPj4gICBmdW5jdGlvbnMgdG8gZGV0ZXJtaW5lIHRoZSBvYmplY3Qgc2l6ZTsN Cj4+IA0KPj4gICBGb3IgQiwgd2UgdXNlIHRoZSBTSVpFIGluZm8gb2YgdGhlIFRZUEUgYXR0YWNo ZWQgdG8gdGhlIGNvcnJlc3BvbmRpbmcgYWNjZXNzLg0KPj4gICAoV2UgdHJlYXQgY291bnRlZF9i eSBhdHRyaWJ1dGUgYXMgYSBjb21wbGVtZW50IHRvIHRoZSBTSVpFIGluZm8gb2YgdGhlIFRZUEUN Cj4+ICAgIGZvciBGTUEpIA0KPj4gDQo+PiAgIFRoZSBvbmx5IG90aGVyIHdheSBpbiBDIHdoaWNo IGVuc3VyZXMgdGhhdCBhIHBvaW50ZXIgYWN0dWFsbHkgcG9pbnRzDQo+PiAgIHRvIGFuIG9iamVj dCBvZiB0aGUgY29ycmVjdCB0eXBlIGlzICdzdGF0aWMnOg0KPj4gDQo+PiAgIHZvaWQgZm9vKHN0 cnVjdCBQICpwW3N0YXRpYyAxXSk7ICAgDQo+PiANCj4+ICAgU2VlIGh0dHBzOi8vZ2NjLmdudS5v cmcvcGlwZXJtYWlsL2djYy1wYXRjaGVzLzIwMjMtSnVseS82MjQ4MTQuaHRtbA0KPj4gICBmb3Ig bW9yZSBkZXRhaWxzLiAgKi8NCj4gDQo+IFRoaXMgaXMgYSBncmVhdCBleHBsYW5hdGlvbjsgdGhh bmsgeW91IQ0KPiANCj4gSW4gdGhlIGZ1dHVyZSBJIG1pZ2h0IHdhbnQgdG8gaGF2ZSBhIG5ldyBi dWlsdGluIHRoYXQgd2lsbCBhbGxvdw0KPiBhIHByb2dyYW0gdG8gcXVlcnkgYSBwb2ludGVyIHdo ZW4gbmVpdGhlciBBIG5vciBCIGhhdmUgaGFwcGVuZWQuIEJ1dA0KPiBmb3IgdGhlIGZpcnN0IHZl cnNpb24gb2YgdGhlIF9fY291bnRlZF9ieSBpbmZyYXN0cnVjdHVyZSwgdGhlIGFib3ZlDQo+IGxp bWl0YXRpb25zIHNlZW4gZmluZS4NCj4gDQo+IEZvciBleGFtcGxlLCBtYXliZSBfX2J1aWx0aW5f Y291bnRlZF9zaXplKHApICh3aGljaCByZXR1cm5zIHNpemVvZigqcCkgKw0KPiBzaXplb2YoKnAt PmZsZXhfYXJyYXlfbWVtYmVyKSAqIHAtPmNvdW50ZWRfYnlfbWVtYmVyKS4gVGhvdWdoIHNpbmNl DQo+IHRoZXJlIG1pZ2h0IGJlIG11bHRpcGxlIGZsZXggYXJyYXkgbWVtYmVycywgbWF5YmUgdGhp cyBjYW4ndCB3b3JrLiA6KQ0KDQpXaGF0IGRvIHlvdSBtZWFuIGJ5IOKAnHRoZXJlIG1pZ2h0IGJl IG11bHRpcGxlIGZsZXggYXJyYXkgbWVtYmVyc+KAnT8NCg0KRG8geW91IG1lYW4gdGhlIGZvbGxv d2luZyBleGFtcGxlOg0KDQpzdHJ1Y3QgYW5ub3RhdGVkIHsNCiAgICAgICAgc2l6ZV90IGZvbzsN CiAgICAgICAgaW50IGFycmF5W10gX19hdHRyaWJ1dGVfXygoY291bnRlZF9ieSAoZm9vKSkpOw0K fTsNCg0Kc3RhdGljIHN0cnVjdCBhbm5vdGF0ZWQgKiBub2lubGluZSBhbGxvY19idWYgKGludCBp bmRleCkNCnsNCiAgc3RydWN0IGFubm90YXRlZCAqcDsNCiAgcCA9IG1hbGxvYyhzaXplb2YgKCpw KSArIChpbmRleCkgKiBzaXplb2YgKGludCkpOw0KICBwLT5mb28gPSBpbmRleDsNCiAgcmV0dXJu IHA7DQp9DQoNCkludCBtYWluICgpDQp7DQogIHN0cnVjdCBhbm5vdGF0ZWQgKnAxLCAqcDI7DQog IHAxID0gYWxsb2NfYnVmICgxMCk7DQogIHAyID0gYWxsb2NfYnVmICgyMCk7DQoNCiAgX19idWls dGluX2NvdW50ZWRfc2l6ZShwMSk/Pz8NCiAgX19idWlsdGluX2NvdW50ZWRfc2l6ZShwMik/Pz8N Cn0NCg0KT3Igc29tZXRoaW5nIGVsc2U/DQoNClFpbmcNCj4gDQo+IC1LZWVzDQo+IA0KPiAtLSAN Cj4gS2VlcyBDb29rDQoNCg==