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 D5B093857357 for ; Wed, 9 Aug 2023 20:34:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D5B093857357 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 (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 379IiN7x004745; Wed, 9 Aug 2023 20:34: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=CT4ol0tdZ0neiUgvVa0xaJwGlEEG4VhNy0wGI18+QS8=; b=JyVJeIeKD7Ia3Ly57ksE0ZalqB6UXC7g3DDmXzh/vQoH+7qj4yT/jpAg2C+filha7z54 n/bssvk7g6zvrQzvIfDwIOnufU5klnNp6DZC74O0JbS71jgOcwkdD2+/oOiRZzyJyTdy qJn+gDEnj2cYuWIjx92E5EDPlFEa0Ar1J1v64SJ2lTWt3jMWynkYWseW9HhHjWeF/ApB w6tl6LSpu0/T2ccKF+FXX2M65ChvTCNiHoxF6HiVH2rgYYorcs9Um8X7f3jMwKuu1y6C Xk9oK6tCRm4IhClIPUDZlG5d4j31Z9iH2gGnk6dU9WiwwLPwx6EP1wwucLSAWCR2XI0R RQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s9efd9tme-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 09 Aug 2023 20:34:45 +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 379JLMFT006568; Wed, 9 Aug 2023 20:34:44 GMT Received: from nam04-dm6-obe.outbound.protection.outlook.com (mail-dm6nam04lp2042.outbound.protection.outlook.com [104.47.73.42]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s9cvej4fw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 09 Aug 2023 20:34:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ekHIRpztrDTL+SDVwsCTDl8mrhJqC8VC/ggkjMX8B1YTr9ZDn0FBJUL/59DFMAzZ0FpoHOtHSsgXVTtmmmjywjJ0JWwBMFwJ47yNlTgDAZ4rQwxSQdx4TtdBLVVUdFDsv2ixkWIITVoZtTqXUdwIbML0enveIa/iaEGlYqvLK5sXBKAUbT8zVvV3xXBChxnYoZtjBun15kgkuwaxeqfsjr6wNr19nXeW4LqbauNk7s3msFfgH8zo8d8eQQOZqZPb/Xt2DIrrVqk9dDDTuuSTvZJzUpd0/xaBjVfao6PJXZFO5Fosd06qRhLLVuTjgTDj0E2kG0hZjX56TeNqhNdwzw== 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=CT4ol0tdZ0neiUgvVa0xaJwGlEEG4VhNy0wGI18+QS8=; b=HLZyDpp6Q84oWgfR3INj0eeRKW2tD3ru25SFMAl7fGteUe3fMBYDC6QHS68sV9awnfhE/9joMcwOfVziao141FJltdCN/N6q//nyYNavJmkcGgSOhGYn3fAaOlKHFr3MnlWG0qaZuF3J4jFKqaTJ/GT0kuFnTD4bVzTYeTrQTD8bQXRQ2vC1/Og4m2rj5saW0QQIOZ5OoMJZiZ9i7Y7eNkgeaJ1iBXv8iINpHOCyb31P1sgEDdKqXOXY/NOigFDVLZWxy33CxUrccLE3k4jrKT8prlYYkMRDoDoFnAKLMq/AfkYWCn008JqIwMqe5Qh0hAASj9689PmJP5v5FOeHkg== 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=CT4ol0tdZ0neiUgvVa0xaJwGlEEG4VhNy0wGI18+QS8=; b=tYd1pj0ILfxcNdF9rTpgGQVrB5/FMVmJQQ9umjeFOv0k+xRPlRhgeQlb6TLiEGFCPqvZTR7K8t1eVeSs8tFhCxzgHCpPoQPrjro3aRO8Cs/212eHSAxg6gIJu7W5SEQfbMemCN9+KAeT+DYZMKr490mCvFSanVTrQK6zqOLUG2E= Received: from MN2PR10MB4349.namprd10.prod.outlook.com (2603:10b6:208:1d4::9) by MW4PR10MB5883.namprd10.prod.outlook.com (2603:10b6:303:18f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.27; Wed, 9 Aug 2023 20:34:41 +0000 Received: from MN2PR10MB4349.namprd10.prod.outlook.com ([fe80::ff87:cfff:8da2:cd13]) by MN2PR10MB4349.namprd10.prod.outlook.com ([fe80::ff87:cfff:8da2:cd13%2]) with mapi id 15.20.6652.028; Wed, 9 Aug 2023 20:34:41 +0000 From: Qing Zhao To: Martin Uecker CC: Kees Cook , "joseph@codesourcery.com" , "richard.guenther@gmail.com" , "jakub@redhat.com" , "gcc-patches@gcc.gnu.org" , "siddhesh@gotplt.org" , "isanbard@gmail.com" Subject: Re: [V2][PATCH 0/3] New attribute "counted_by" to annotate bounds for C99 FAM(PR108896) Thread-Topic: [V2][PATCH 0/3] New attribute "counted_by" to annotate bounds for C99 FAM(PR108896) Thread-Index: AQHZxwwaiTihIsYc/kmfUkC2AXJ+ra/fBvyAgAF7dgCAAfFNAA== Date: Wed, 9 Aug 2023 20:34:41 +0000 Message-ID: References: <20230804194431.993958-1-qing.zhao@oracle.com> <202308070858.D2FB43E@keescook> <5f76638c8cfca7611e955ef9fadacfd7f8dca0fb.camel@tugraz.at> In-Reply-To: <5f76638c8cfca7611e955ef9fadacfd7f8dca0fb.camel@tugraz.at> 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: MN2PR10MB4349:EE_|MW4PR10MB5883:EE_ x-ms-office365-filtering-correlation-id: a3eac058-5edd-49a1-22eb-08db99180ee4 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: TxZ9m1DO3TfYFK3wGyA0EJr0C1s0/cQnHWRL7y7hlRbtNiQIl5S+Jzo014Y8Gzx/9bYt1G9bDEJbUI3I+86AyiWCVSBTicjCqhNtO7cBF0pcQDf3v3h7eG4MQO6ZoXQQzxhU4ZwEubKNKqKv7Hh+oJuQT7JK7C8hu7DMr6eEB05JmnxG8QO4hes0NrL+d4l03EkKOiNUwcJr70oqAlwJHp5so39BPdnkGxyz3kkDyd0ej95mjlaFu3hm5la3XcZF+HgZ/5Gk1DEmRc5qDuRnbsPDT0Vuby0+v2LB6ZCwZ7hE7yFEaCN4vRSZokG/fZcJuCth49IB9nOCb5WQYWTvQkjGBNMpIMx0lChrHEDEeuvev3qSd2LoGIACeNH87xnkFGNaTxcdS0M1N99LRfY0nTaNd+3/buX47ZuUzvikUMB5to4xO2qY8KOxgfVER3l/ZVoxyfErEGnPESWWvjzjrv3o2T/coHH+kBoNURlYyXjkQCQ90wU6cmVX9QGTGeXVe3Rho8HTzS1CCalPdDoYoP8/eAFMmO3r/9ElMpDUKjhfKytrofbh7Ou40ciQ0hi55R4/EtktoBGB2a7sV8JbhNC1mVqv55TWFOX1Cycl1gR1z92fsZuFJwGjaI6aNwbOlxNdeAryHsvaogJ9XrwyHQCiFZ2JUKIkwqTLqeufLi24V8YEn2yBZLbCMPyw8yyq x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR10MB4349.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(39860400002)(376002)(366004)(396003)(136003)(186006)(1800799006)(451199021)(38070700005)(316002)(966005)(2906002)(76116006)(122000001)(33656002)(2616005)(36756003)(53546011)(8936002)(5660300002)(8676002)(64756008)(6486002)(38100700002)(66476007)(6916009)(66946007)(41300700001)(4326008)(66446008)(44832011)(83380400001)(66556008)(6506007)(86362001)(478600001)(54906003)(91956017)(71200400001)(6512007)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NVp6Y1Z6SmY3cVh0OGorUm9LbWdBbHo2TVBibU5XZjR1cGg4U2huUFlpbkxE?= =?utf-8?B?ZllsNmIvdmFvRzh1Ty9OS0srTWtXWnpTYXhwaWxuMVdKbmNJSE1WdGE5QUFp?= =?utf-8?B?TDlmbWd1Z2N5ZjU0QUFjTGFUQTFxOW5FNHV3QlZiKzJ2MVM3MlR4QVRMbHdq?= =?utf-8?B?Zjk2cHcxVVNWaUdWR3BaZjVFdHhNN2lSQURKZXBLWlBBakY3K1ZTV0Vsa2VI?= =?utf-8?B?NmovbGNGWk9TTnQwdTB4cTB0S2IydW1rNUZvRnU4Q3dETUY0c1c2WjVIeFBT?= =?utf-8?B?U00vWXg3M1RuL0c2b0E1WEpiNjkyd3VhalpyWFhZTkRpZTgrK1l3TlROT2FW?= =?utf-8?B?V1psTXFka2N6SkY2SjFLTVZvQmdRTVNqM2NoaWxMb1lxZ1Rtd1pNd3J5dUdK?= =?utf-8?B?ZWQ5MVJNM3paMjArNWtlWWxocGN2aVh0aVlNUndITlZ2UjhuK1IwbWhaYVJ3?= =?utf-8?B?b2hzelhBVCtyUmFhc2NTelorUHZwazd3WEd4ZHRiRnk1WVgvUkVIS1FoaDZm?= =?utf-8?B?MGxTSU14WHJ5ME1FS3M3V295K0NuRVlKdWlUUUtBZDU1M2xEbDYrL2kxeEVj?= =?utf-8?B?R2RMaGZQMUdSYXpDVWtTRlBhT1dPbVBMOVYrdTBkeU03WXhrR2RPMHVWV2Vs?= =?utf-8?B?MkIyOWdGOVRKTnc4ODQwemk4dVgwV0ZHNWtqa3BJUllzQkZBNmlnbk9pZ1Mr?= =?utf-8?B?cG1NdFNJK2JwZXgvMWp2eGk1WTRwS211QVFBWGQ4SzZCK3RtYVI1WDhaRllz?= =?utf-8?B?YUVmR2MzUVpzdDhWb0h4Y3p3L28zbVI3T1FYdnQ0Nm92SCsyeEh2K1J4cm5s?= =?utf-8?B?OVRCSE96emJORSs5di9KUUdmOEcxSVRDVFFqM1NGMmpBVGxVY3Exc2w3MnlO?= =?utf-8?B?UTNJREpaS1o3VDhydGtXdS80RnU5aGloTjVPcHN6KzJOOEdEb3FpVlRQZWhM?= =?utf-8?B?Z0JTVC8wRSszaGV4QlJVNGU5NzMrblhxVWNKcGVKLzJGdzZPU0FpZ0kxYUFK?= =?utf-8?B?RGhtKzBSYm9FMndMeUVaZE1yZ3NmUDhkVm5tOUc0dzBFUExqdTRDbXZlenJj?= =?utf-8?B?NjFzaVFGTVpCTUplbUtzSHRkZlpGMEZBNzEzcm5DT0lxT1I4cW1Wd1JrOGJH?= =?utf-8?B?TThpZlpLK3YzajhNbXV0Y0pyeEZkVUFQaXh3V01QZkx3cGF5aExiSk1WSjJN?= =?utf-8?B?QnAxV3U4Q2todWoxdThzMHNsYUJweFJ6SkVheHFLYlBUT1VtU2lweXRzenFU?= =?utf-8?B?dW0xU0s2eDRkZkZIckYxeDNGWnZkUmFWSDQ5a0lWMHVDNHNoTVBDYVNHa1NM?= =?utf-8?B?OG5zL2N3WWhVVGxiVFdLSXpTdEk2b3ZPZzFyT1VJQXo5Y242ODRWOVVFRVdP?= =?utf-8?B?NzNnRTNPcFN0M295RjFKRTFmRnVwWWxsbzN1b0FlSDJHMVZ2SG5GcFRjeGV3?= =?utf-8?B?OGhKL2YwYzhyQzk2S01tY2x6V1U1WjJBUjFPMndaR3NHMkZyQkc0anJvVFlv?= =?utf-8?B?QTJFSm52TE0vSm9UZTZzeS8wdDRUeXdSc21rblIxS3NxYk1oUkpjYkU0Rnph?= =?utf-8?B?YW44ZklnWUtybWEzTS92dFoxL2h1TFo2VEVoMDB4Nm5zNmp3K1NHRFpKemxN?= =?utf-8?B?aGVJdVJvd1gxSjBNUjhWV0h2NkNuUTNjY1pWbDZLUkpXSytESU5uTUlqK3Ex?= =?utf-8?B?bHozckNBSGlnc2p3SDBtWGVGWitlZmpteUptZEdMUFBvZ1VSRzhPRHJCR251?= =?utf-8?B?ZEhiNEdCOFU3TlFPejgrTjJZMFduSmlSQUZjR283dlBieWFkUVNKcVA3Q2t2?= =?utf-8?B?SXdYMnlxbnZnSHozelZ4eFVBZm9haDRHcnl6aGMxWUFac3J4NFdMbG50Vmgy?= =?utf-8?B?Q1RXYldzMDVRSFlwNHg4dldaWEJzTW1RWkVnNTFiYkFSaHdxOThRRnFXbHBT?= =?utf-8?B?cWxsYXZyT2NGU2xWTW5qQkNJVlkxMVFFQUdtOTJoSWlkK2Qza0N6cVFXdkI4?= =?utf-8?B?c1RDZ3V6WitiZnkwZGgwbUhWQk1IT2FibUp0b3c1eXFrUkZjY2Z3MGtHRDR6?= =?utf-8?B?MEhTdjQxQ2NaY2h4WHBHcmwrMFFFVHF4eVFKM29IeW91MTduS1d2Zm1RV3d2?= =?utf-8?B?THZnYXBFVldFRjNPdjBlZ2xyb3laRWR2OWhvdUM3NGorM0xRbmVqL2RiZ29V?= =?utf-8?Q?Yhxyg+GKWjXi3ECt6UHSDPE=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <1DC961A64BFC1E4792F384A1EB010A07@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: =?utf-8?B?cVpTZkhYdGJmZDZYb29zeUtHVDhObXEwdjhJKzZaNUd6L3RVdU1pbjZCQ2tN?= =?utf-8?B?N01xdkw2WXI5V25Xa1hhdG9GbGV2c0xsVXNKUG5wNzRVTngraThKaTB0c0Iw?= =?utf-8?B?a1FDQVhCVXJIeWExSVp4bHpJK0F1d3RlRFVGSnZ2dGhYOGJ0d0FNRmNmMEkw?= =?utf-8?B?MVlieGhtM1lwZlVmZi9TOHZTOEhRZzJSRU8wVlViNXArU3BOWG1VV1RPeFlR?= =?utf-8?B?RzVhWVpqcFZhMHEwd29nK091US93Q3pJRTlmKzdDem9EMitGVHZ1V080MjhG?= =?utf-8?B?T0crVDhQV2NXUDlncnh6Zmo5KzgrQzRudEU3aGU5eFhxZGg0a0FsckJYbWRK?= =?utf-8?B?dUF0R3NRa0kwL1BoTHBHeGVsWlp5T3FFRDdPRWNsUWt0V1V6R0psRkRmMGJ3?= =?utf-8?B?c3YzbTZCOENBSUl3cGQ0aTdtK2dCSkdJTmY3ZVN2bkdCWUZFOHIreXhybUVG?= =?utf-8?B?dllKSUJaZGlwSkJpS0xxYU5rRW1kdlMrRDVueFBJckU5Q0dCa2IvYjlmSTFl?= =?utf-8?B?TTBtVHpyMGZzaHAvMDArc1lBTmN2cmROWkFhbVZvZ29hcVZsQXExQmkrTENr?= =?utf-8?B?Ti9HNmlCOHk4UFdmcHAvNGVYQ0tGZ0NNb21nQmg1cVFOamNXN3N5T01FWUVO?= =?utf-8?B?YW1TcnhacVpySklCb0ZMWE9kRVRBV0lTV1ltZUhBTlN3TUZlOW5NcEtvTGwr?= =?utf-8?B?SWtyUnRoRnFxZDIwQWVsVWJkdk1aT1djUGJMbmNUUXN5V1ZzR2FOVXhadG1P?= =?utf-8?B?Mm1TYU4xRGVVbVNhYlVlV1dJdkZjYWM5R1BnSHAzc0ozUE5CRWZZYjNxRC83?= =?utf-8?B?YVVDV0MyT0RlSXRqTVd6S2Y4bEhoUjQrcDRMMnUyTFBoMEMxdmxUV29JWkJr?= =?utf-8?B?K0JVZk4wN0xUY21XYU5ZL3ZlZFdzZUp4M1pQR0tvSDMxSURVbTdjeTcwYzho?= =?utf-8?B?OGxrcTcxdVBHK3hjQWFPcHdOVUlBSC9SZG02M0FGK3pXSUFhVlNha21XL21R?= =?utf-8?B?S1c4WmIrWHVuQ0I3TldPeWhiRGpoeWxWQk9SQkcxb05ldkFwR3JSaVZ1cnV1?= =?utf-8?B?TkJDL3pEeVJ2OWVNaG1tMzNQcU96b0NIeEZ3QWZQMEtVWEZBZTFZYVpjTi9M?= =?utf-8?B?ZWlhNHlvd0liU1ZyMlVUUXBuM25Ec1hjbml0Y1VWZDBQT0UrTUt0ZjI5dFov?= =?utf-8?B?VmxxdkxLNzdJdFliYUpQZ2VpeVdWZS9sWmp4Wnh3K3hBVlRpSUxpZGRLSzE2?= =?utf-8?Q?W9yQJil66Ijbrv9?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB4349.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a3eac058-5edd-49a1-22eb-08db99180ee4 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Aug 2023 20:34:41.0549 (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: d0+/FSChvjBHVFtA5dijFZ/IGFLWRJW/sMh+9+MWv0IC2t7+PiqgavR1wMp0wyA+chmg0IQxv7YRZzqAuFocnA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB5883 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.267,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-08-09_19,2023-08-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308090179 X-Proofpoint-GUID: gTU81hUaxBFQ-vyzBIt0UQmR7MH5JtdI X-Proofpoint-ORIG-GUID: gTU81hUaxBFQ-vyzBIt0UQmR7MH5JtdI X-Spam-Status: No, score=-4.9 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 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: DQoNCj4gT24gQXVnIDgsIDIwMjMsIGF0IDEwOjU0IEFNLCBNYXJ0aW4gVWVja2VyIDx1ZWNrZXJA dHVncmF6LmF0PiB3cm90ZToNCj4gDQo+IA0KPiANCj4gSSBhbSBzdXJlIHRoaXMgaGFzIGJlZW4g ZGlzY3Vzc2VkIGJlZm9yZSwgYnV0IHNlZWluZyB0aGF0IHlvdQ0KPiB0ZXN0IGZvciBhIHNwZWNp ZmljIGZvcm11bGEsIGxldCBtZSBwb2ludCBvdXQgdGhlIGZvbGxvd2luZzoNCj4gDQo+IFRoZXJl IGF0IGxlYXN0IHRocmVlIGRpZmZlcmVudCBzaXplIGV4cHJlc3Npb24gd2hpY2ggY291bGQNCj4g bWFrZSBzZW5zZS4gQ29uc2lkZXINCj4gDQo+IHNob3J0IGZvbyB7IGludCBhOyBzaG9ydCBiOyBj aGFyIHRbXTsgfTsgDQo+IA0KPiBNb3N0IHBlb3BsZSBzZWVtIHRvIHVzZQ0KPiANCj4gc2l6ZW9m KHN0cnVjdCBmb28pICsgTiAqIHNpemVvZihmb28tPnQpOw0KPiANCj4gd2hpY2ggZm9yIE4gPT0g MyB5aWVsZHMgMTEgYnl0ZXMgb24geDg2LTY0IGJlY2F1c2UgdGhlIGZvcm11bGENCj4gYWRkcyB0 aGUgcGFkZGluZyBvZiB0aGUgb3JpZ2luYWwgc3RydWN0LiBUaGVyZSBpcyBhbiBleGFtcGxlDQo+ IGluIHRoZSAgQyBzdGFuZGFyZCB0aGF0IHVzZXMgdGhpcyBmb3JtdWxhLg0KPiANCj4gDQo+IEJ1 dCBoZSBtaW5pbXVtIHNpemUgb2YgYW4gb2JqZWN0IHdoaWNoIHN0b3JlcyBOIGVsZW1lbnRzIGlz DQo+IA0KPiBtYXgoc2l6ZW9mIChzdHJ1Y3QgcyksIG9mZnNldG9mKHN0cnVjdCBzLCB0W25dKSkN Cj4gDQo+IHdoaWNoIGlzIDkgYnl0ZXMuIA0KPiANCj4gVGhpcyBpcyB3aGF0IGNsYW5nIHVzZXMg Zm9yIHN0YXRpY2FsbHkgYWxsb2NhdGVkIG9iamVjdHMgd2l0aA0KPiBpbml0aWFsaXphdGlvbiwg d2hpbGUgR0NDIHVzZXMgdGhlIHJ1bGUgYWJvdmUgKDExIGJ5dGVzKS4gQnV0IA0KPiBiZG9zIC8g Ym9zICB0aGVuIHJldHVybnMgdGhlIHNtYWxsZXIgc2l6ZSBvZiA5IHdoaWNoIGlzIGEgYml0DQo+ IGNvbmZ1c2luZy4NCg0KQXMgSSBjaGVja2VkIHRoZSBhbGdvcml0aG0gZm9yIGJvcyBpbiBHQ0Ms ICBpdCB1c2VzIGEgc2ltaWxhciBmb3JtdWxhIGFzIHRoZSBmb2xsb3dpbmcgdG8gY29tcHV0ZSB0 aGUgb2JqZWN0IHNpemU6DQoNCm9mZnNldChzdHJ1Y3QgZm9vLCB0WzBdKSArIE4gKiBzaXplb2Yo KmZvby0+dCk7DQoNCldoaWNoIHNlZW1zIGNvcnJlY3QgdG8gbWUuICAoVGhlcmVmb3JlIGJvcyBy ZXR1cm5zIDkgZm9yIHRoaXMgZXhhbXBsZSkuDQo+IA0KPiANCj4gaHR0cHM6Ly9nb2Rib2x0Lm9y Zy96L0sxaHZhSzFucw0KPiANCj4gaHR0cHM6Ly9naXRodWIuY29tL2xsdm0vbGx2bS1wcm9qZWN0 L2lzc3Vlcy82MjkyOQ0KPiBodHRwczovL2djYy5nbnUub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNn aT9pZD0xMDk5NTYNCj4gDQo+IA0KPiBUaGVuIHRoZXJlIGlzIGFsc28gdGhlIHNpemUgb2YgYSBz aW1pbGFyIGFycmF5IHdoZXJlIHRoZSBGQU0NCj4gaXMgcmVwbGFjZWQgd2l0aCBhbiBhcnJheSBv ZiBzdGF0aWMgc2l6ZToNCj4gDQo+IHN0cnVjdCBmb28geyBpbnQgYTsgc2hvcnQgYjsgY2hhciB0 WzNdOyB9OyANCj4gDQo+IFRoaXMgd291bGQgbWFrZSB0aGUgbW9zdCBzZW5zZSB0byBtZSwgYnV0 IGl0IGhhcyAxMiBieXRlcw0KPiBiZWNhdXNlIHRoZSBwYWRkaW5nIGlzIGFjY29yZGluZyB0byB0 aGUgdXN1YWwgYWxpZ25tZW50DQo+IHJ1bGVzLg0KDQpNeSB1bmRlcnN0YW5kaW5nIGlzLCBzaW5j ZSBhIHN0cnVjdHVyZSB3aXRoIEZBTSBjYW5ub3QgYmUgYW4gZWxlbWVudCBvZiBhbiBhcnJheSwg DQogdGhlIHRhaWxpbmcgcGFkZGluZyBtaWdodCBub3QgYmUgbmVjZXNzYXJ5Pw0KDQpRaW5nDQoN Cj4gDQo+IA0KPiBNYXJ0aW4NCj4gDQo+IA0KPiANCj4gQW0gTW9udGFnLCBkZW0gMDcuMDguMjAy MyB1bSAwOToxNiAtMDcwMCBzY2hyaWViIEtlZXMgQ29vazoNCj4+IE9uIEZyaSwgQXVnIDA0LCAy MDIzIGF0IDA3OjQ0OjI4UE0gKzAwMDAsIFFpbmcgWmhhbyB3cm90ZToNCj4+PiBUaGlzIGlzIHRo ZSAybmQgdmVyc2lvbiBvZiB0aGUgcGF0Y2gsIHBlciBvdXIgZGlzY3Vzc2lvbiBiYXNlZCBvbiB0 aGUNCj4+PiByZXZpZXcgY29tbWVudHMgZm9yIHRoZSAxc3QgdmVyc2lvbiwgdGhlIG1ham9yIGNo YW5nZXMgaW4gdGhpcyB2ZXJzaW9uDQo+Pj4gYXJlOg0KPj4gDQo+PiBUaGFua3MgZm9yIHRoZSB1 cGRhdGUhDQo+PiANCj4+PiANCj4+PiAxLiBjaGFuZ2UgdGhlIG5hbWUgImVsZW1lbnRfY291bnQi IHRvICJjb3VudGVkX2J5IjsNCj4+PiAyLiBjaGFuZ2UgdGhlIHBhcmFtZXRlciBmb3IgdGhlIGF0 dHJpYnV0ZSBmcm9tIGEgU1RSSU5HIHRvIGFuDQo+Pj4gSWRlbnRpZmllcjsNCj4+PiAzLiBBZGQg bG9naWMgYW5kIHRlc3RpbmcgY2FzZXMgdG8gaGFuZGxlIGFub255bW91cyBzdHJ1Y3R1cmUvdW5p b25zOw0KPj4+IDQuIENsYXJpZnkgZG9jdW1lbnRhdGlvbiB0byBwZXJtaXQgdGhlIHNpdHVhdGlv biB3aGVuIHRoZSBhbGxvY2F0aW9uDQo+Pj4gc2l6ZSBpcyBsYXJnZXIgdGhhbiB3aGF0J3Mgc3Bl Y2lmaWVkIGJ5ICJjb3VudGVkX2J5IiwgYXQgdGhlIHNhbWUgdGltZSwNCj4+PiBpdCdzIHVzZXIn cyBlcnJvciBpZiBhbGxvY2F0aW9uIHNpemUgaXMgc21hbGxlciB0aGFuIHdoYXQncyBzcGVjaWZp ZWQgYnkNCj4+PiAiY291bnRlZF9ieSI7DQo+Pj4gNS4gQWRkIGEgY29tcGxldGUgdGVzdGluZyBj YXNlIGZvciB1c2luZyBjb3VudGVkX2J5IGF0dHJpYnV0ZSBpbg0KPj4+IF9fYnVpbHRpbl9keW5h bWljX29iamVjdF9zaXplIHdoZW4gdGhlcmUgaXMgbWlzbWF0Y2ggYmV0d2VlbiB0aGUNCj4+PiBh bGxvY2F0aW9uIHNpemUgYW5kIHRoZSB2YWx1ZSBvZiAiY291bnRlZF9ieSIsIHRoZSBleHBlY3Rp bmcgYmVoYXZpb3INCj4+PiBmb3IgZWFjaCBjYXNlIGFuZCB0aGUgZXhwbGFuYXRpb24gb24gd2h5 IGluIHRoZSBjb21tZW50cy4gDQo+PiANCj4+IEFsbCB0aGUgIm5vcm1hbCIgdGVzdCBjYXNlcyBJ IGhhdmUgYXJlIHBhc3Npbmc7IHRoaXMgaXMgd29uZGVyZnVsISA6KQ0KPj4gDQo+PiBJJ20gc3Rp bGwgc2VlaW5nIHVuZXhwZWN0ZWQgc2l0dWF0aW9ucyB3aGVuIEkndmUgaW50ZW50aW9uYWxseSBz ZXQNCj4+IGNvdW50ZWRfYnkgdG8gYmUgc21hbGxlciB0aGFuIGFsbG9jX3NpemUsIGJ1dCBJIGFz c3VtZSBpdCdzIGR1ZSB0byBub3QNCj4+IHlldCBoYXZpbmcgdGhlIHBhdGNoIHlvdSBtZW50aW9u IGJlbG93Lg0KPj4gDQo+Pj4gQXMgZGlzY3Vzc2VkLCBJIHBsYW4gdG8gYWRkIHR3byBtb3JlIHNl cGFyYXRlIHBhdGNoIHNldHMgYWZ0ZXIgdGhpcyBpbml0aWFsDQo+Pj4gcGF0Y2ggc2V0IGlzIGFw cHJvdmVkIGFuZCBjb21taXR0ZWQuDQo+Pj4gDQo+Pj4gc2V0IDEuIEEgbmV3IHdhcm5pbmcgb3B0 aW9uIGFuZCBhIG5ldyBzYW5pdGl6ZXIgb3B0aW9uIGZvciB0aGUgdXNlciBlcnJvcg0KPj4+ICAg ICAgICB3aGVuIHRoZSBhbGxvY2F0aW9uIHNpemUgaXMgc21hbGxlciB0aGFuIHRoZSB2YWx1ZSBv ZiAiY291bnRlZF9ieSIuDQo+Pj4gc2V0IDIuIEFuIGltcHJvdmVtZW50IHRvIF9fYnVpbHRpbl9k eW5hbWljX29iamVjdF9zaXplICBmb3IgdGhlIGZvbGxvd2luZw0KPj4+ICAgICAgICBjYXNlOg0K Pj4+IA0KPj4+IHN0cnVjdCBBDQo+Pj4gew0KPj4+IHNpemVfdCBmb287DQo+Pj4gaW50IGFycmF5 W10gX19hdHRyaWJ1dGVfXygoY291bnRlZF9ieSAoZm9vKSkpOw0KPj4+IH07DQo+Pj4gDQo+Pj4g ZXh0ZXJuIHN0cnVjdCBmaXggKiBhbGxvY19idWYgKCk7DQo+Pj4gDQo+Pj4gaW50IG1haW4gKCkN Cj4+PiB7DQo+Pj4gc3RydWN0IGZpeCAqcCA9IGFsbG9jX2J1ZiAoKTsNCj4+PiBfX2J1aWx0aW5f b2JqZWN0X3NpemUocC0+YXJyYXksIDApID09IHNpemVvZihzdHJ1Y3QgQSkgKyBwLT5mb28gKiBz aXplb2YoaW50KTsNCj4+PiAgIC8qIHdpdGggdGhlIGN1cnJlbnQgYWxnb3JpdGhtLCBpdOKAmXMg VU5LTk9XTiAqLyANCj4+PiBfX2J1aWx0aW5fb2JqZWN0X3NpemUocC0+YXJyYXksIDIpID09IHNp emVvZihzdHJ1Y3QgQSkgKyBwLT5mb28gKiBzaXplb2YoaW50KTsNCj4+PiAgIC8qIHdpdGggdGhl IGN1cnJlbnQgYWxnb3JpdGhtLCBpdOKAmXMgVU5LTk9XTiAqLw0KPj4+IH0NCj4+IA0KPj4gU2hv dWxkIHRoZSBhYm92ZSBiZSBiZG9zIGluc3RlYWQgb2YgYm9zPw0KPj4gDQo+Pj4gQm9vdHN0cmFw cGVkIGFuZCByZWdyZXNzaW9uIHRlc3RlZCBvbiBib3RoIGFhcmNoNjQgYW5kIFg4Niwgbm8gaXNz dWUuDQo+PiANCj4+IEkndmUgdXBkYXRlZCB0aGUgTGludXgga2VybmVsJ3MgbWFjcm9zIGZvciB0 aGUgbmFtZSBjaGFuZ2UgYW5kIGRvbmUNCj4+IGJ1aWxkIHRlc3RzIHdpdGggbXkgZmlyc3QgcGFz cyBhdCAiZWFzeSIgY2FzZXMgZm9yIGFkZGluZyBjb3VudGVkX2J5Og0KPj4gaHR0cHM6Ly9naXQu a2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQva2Vlcy9saW51eC5naXQvY29tbWl0 Lz9oPWRldmVsL2NvdW50ZWRfYnkmaWQ9YWRjNWIzY2I0OGEwNDk1NjNkYzY3M2YzNDhlYWI3YjZi ZWJhOGE5Yg0KPj4gDQo+PiBFdmVyeXRoaW5nIGlzIHdvcmtpbmcgYXMgZXhwZWN0ZWQuIDopDQo+ PiANCj4+IC1LZWVzDQo+PiANCj4gDQo+IC0tIA0KPiBVbml2Li1Qcm9mLiBEci4gcmVyLiBuYXQu IE1hcnRpbiBVZWNrZXINCj4gR3JheiBVbml2ZXJzaXR5IG9mIFRlY2hub2xvZ3kNCj4gSW5zdGl0 dXRlIG9mIEJpb21lZGljYWwgSW1hZ2luZw0KDQo=