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 9EE793858D1E for ; Mon, 29 Jan 2024 22:45:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9EE793858D1E 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 9EE793858D1E 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=1706568334; cv=pass; b=x2OgR99ZcvMvQWfPrmV8lBcAn7Qu/VwnH0cFwBdt3D0Bs7d42XtawRHoLWnZ37zXrXMHYdNcWdeKmXiWw96Wv7LP3qcHE9Jp/G5Q4VvdcraWk3QVnM1V71dYjKLmbcpOM1xIBTgBf4e1R9rAR1kdbpsVeK5yipn7oHlHkUx+id0= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1706568334; c=relaxed/simple; bh=816sHB2Sa09wv0SLjNJ4RwkgabQeXGmaJGc4TbaXhzw=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=o8NxMlv1lpYs7JOSSwefpezizVWJunYR939GNPRHSCExfQ9J14H1ABsXTvgQHqPTTR/u89OaFXLLaRFsDjAn9wy08jMoYn1lxXyjZv0DkZjO486QAhBvpO3nZ2mC90Ol2oimoFUYp2+zi6BLVrFonZYM4C9HsJZm3wsfk0Bijok= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 40TJiddi030879; Mon, 29 Jan 2024 22:45:29 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=816sHB2Sa09wv0SLjNJ4RwkgabQeXGmaJGc4TbaXhzw=; b=CWJ2FiW3zTngljO6S2cbzRvglYFKqdegcXgiHEal48wUzFrEmlpNl+/1LG0C+8hsKQqJ NeTtE9ittpwGoZveBvXBsMe9SOdX0s/I9FkJb5wQpA8jr/3oqYIUggDTSfNJJvz6C7h2 3Qk7eWDkRBbrERnXMlllKyRIfjPZ3rJCLPj1XKdcDq+xyk63WmrCB/TmulQJr52kgP9l VAyPX4k7W6Xx/viZY0cYwK6PAUx1ZUGtg1zuHPPEZgKWmWTHsDSsl5YpzcszINQc0EoE lsMZOpZ5s50gqUh3xg0NoJqECg7Z+B9RJx7S2c8JF++gH8GAV79qBGOYsIxtfgAmUcg9 GQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3vvrrcd8rm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Jan 2024 22:45:28 +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 40TL9eMb040300; Mon, 29 Jan 2024 22:45:28 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3vvr96eu9e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 29 Jan 2024 22:45:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g+5/r+2TIOach6vjPuVufglawo6qnpn+JPVHl9noQLuX9SVogI8Vf1cf3tI6h/qUE/NhVvrjN5+yxXFmC+/F2N+PLckKunO8KAU23n2T6LJ0qbeJ6wWtJq5N4FVuQKxOzWD9eO0MPFGkg83pGOhNBKkCkkMbZAMMexgC0uaw2/NMVykC6L+NhVYChSBSP8Fbxr9fEelh081QNBoMj+kXN0sI6Gn1i4oVm9b5zFhjrEv0ZI/ny8qGP6ySQKi1vrkcYez+m39p7GgPjMq9D2Uh7kNKEK+g89uwi2neUl4/5ncq4AMPhPzA1vncVFZTuMvsGUd1e3x4IXHZW50A+4neqw== 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=816sHB2Sa09wv0SLjNJ4RwkgabQeXGmaJGc4TbaXhzw=; b=KCPKmBxZVLuULaovnwshCPZKucru/KZeSU9tGhiomk9TtL8t3hgIztSSGCGmx5iSHLH1x1UsAo950O3Vx5s+ozv+9TK4xpfifTEmlHS8nfe7ZThOtRH/WnHDK92eNfYUjlifOZoTX5Ch+pM8/Ec/VPUFi73/ubo4lzO0VbPrkaSIU6cqK/TzsOqrVPEXnFnUmKqacxlxKF2J8Z5/8pdtS4uoNDiAdINiWB8edpXQ6CRIiEhgQCrZgx1lfmm/4LU2/nXX6ApYb25H0F7a0exc1fK/T1p9qPdmWDGgnPxURBQV0sZ+6n/Gedix0Psq0pCiRILc3CnFfF+a8ksI/wtYsQ== 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=816sHB2Sa09wv0SLjNJ4RwkgabQeXGmaJGc4TbaXhzw=; b=iGgahyJM6QQ0GAavLqK2U36l6+30kTxKfVcSPtDG92ZuvhWQ2LGsiSYLFbbXyv3Z8W/Ggol9hjn0iHu8E/2ymtGX7XzWDPBEhgoqMXHkPmzaEBg/6V2Asi9lD+7MYtlSY+yt/eFy6eKg0oiLa/kacCVQ003d6CmSyZ9BSczAyCo= Received: from CH3PR10MB7957.namprd10.prod.outlook.com (2603:10b6:610:1bf::19) by SA1PR10MB7633.namprd10.prod.outlook.com (2603:10b6:806:375::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7228.32; Mon, 29 Jan 2024 22:45:24 +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.7228.029; Mon, 29 Jan 2024 22:45:24 +0000 From: Qing Zhao To: Kees Cook CC: Martin Uecker , "josmyers@redhat.com" , Richard Biener , "jakub@redhat.com" , "siddhesh@gotplt.org" , "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: AQHaTlx75DG1HCeLGUCpchPuevMS7bDptGoAgAFEIwCABgMxgIAAF7oAgAAjcACAAA1KAIAAKLmA Date: Mon, 29 Jan 2024 22:45:23 +0000 Message-ID: References: <20240124002955.3387096-1-qing.zhao@oracle.com> <202401241624.4DC3D829@keescook> <202401290911.FEF85CC6@keescook> <1373A559-FF53-47E0-B690-DB49650FA068@oracle.com> <202401291158.A629057575@keescook> In-Reply-To: <202401291158.A629057575@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_|SA1PR10MB7633:EE_ x-ms-office365-filtering-correlation-id: 5d4635d9-6c7e-4857-5729-08dc211bfb06 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ekICUHbchdPDD9cg2StG5Q/RHhZuiYvTSnCfA19clYWMw47pdVgIPajyGvy3boPzn2PF4CXjk/zt/xf60ybG37wlUhEgAimfrSR71TttDJiPuhDGcuJxIHbB+Zg01cvwbKdEnL2A1BTgGM3l+Fac99qheKWZyDlPiEIq9Y4Jzotmkm4gXr0KEfJxx26zWfrIPkebAqK9mPkL0smKS/6E300OZWqH362Y4JtTw8MWDCwuT1Mu5gDvUW1yh5NTlvRfKUXjXnni9FI3DHdeKWkuPAxsp6VYFJsrFDdFse6OURSzdVRD18utKLkIQ00SmLGRoKUjMKIQnMdsjdfVYBriC5WbwHGyu5lXhvSbcWQUQyWzdxk+1S/waOqBYs7AdwCkCnbuNq+oljkqyL2CneKcCW7VB9PufDlycboZrI942QrNXBoViD8yFvs8yt718BcFr2rnlLp+crVLCcSMgLIx45O+aGjcneCIk3wnLr7yBaRZpNo4aMVA+6GS7FcjoewZXIQjLt4IT4PEW3TrAL2jETAxHAdsbZNtco1++Qbk8h6F/e6NuEXxrw0e4BAdtApPgsEQEn9Hko0fyfqdN0MFR5cPd3uqfKNqPrmWyqKbAAC31hpV7hjXTke/GG2TE3GqeLrK07gVmhR23W9W+KgSgRpHyw8PbvQ+AgiKuRatNIRbhAicPDg+2PsHJ7LQeMKA 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)(396003)(366004)(346002)(376002)(39860400002)(136003)(230922051799003)(230173577357003)(230273577357003)(1800799012)(64100799003)(186009)(451199024)(41300700001)(2616005)(36756003)(6486002)(6916009)(64756008)(316002)(38070700009)(54906003)(478600001)(53546011)(71200400001)(6506007)(38100700002)(6512007)(83380400001)(966005)(122000001)(66446008)(66556008)(76116006)(5660300002)(86362001)(66476007)(66946007)(2906002)(8676002)(33656002)(44832011)(4326008)(8936002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ODRhcE1RRGxyeW42VlArR3NpaVBkTEI1UlZVT1FLb1daZHhXR3ArOXZhQnl3?= =?utf-8?B?ZERVbkJ5cU9YUUFXVk5yb3BmZ1g2OS9heU5weTNjdVc0OXArd0oyVjV6akdQ?= =?utf-8?B?WlFJZHkzQ2Y1bkdWMTBqUm8ydG8yRnluMzFVUnlOTTVRaFgzK2EzYk9FNVJQ?= =?utf-8?B?WWZCV0FNUnI2V2pOQ2NkUE0zN2NOeHExY2lIUnZmVUY1S1FadHlhLy9VMUJN?= =?utf-8?B?UmJDZlUvU1o0Ymd2elZkVWdIdnlwRXQ1eVlFeHNpc1hVSDQvVkVPK0dmWGdm?= =?utf-8?B?WkVlclZXaUdHRVRSWmpWVEdPU2l3Sk9FcXhpTXArRllsRHBLYUxNSFZPbFht?= =?utf-8?B?RFVrZUNvVjJGZEdiTHg4ZDNHaUpxd2VzUFpVc09FYnZ6bVJJTFUrZ3NDaW5K?= =?utf-8?B?alZYWnI3MXRVaVIxdEZUdGx3aUU4NHNwWmRyemMyM2hCM0EwYXpqck5SRTd2?= =?utf-8?B?TlRNdnN2blk1SXlRV29GNDVDVG1CcyttZGh1QUVIcHJZYy92OXE0S2oyRklF?= =?utf-8?B?c25FL2NHL2ZMUDVmMFFSVmVYNENoWlQzUVhSSWNKRncvZlJVOXUwTm94Q0RH?= =?utf-8?B?ejdMZktIWXBDTTh1cEFwdS83MWFwb0FqajNRZDg5MnRvcVQ3T1k1TDBTNWlX?= =?utf-8?B?b0IwOE9WUHArVEUxUXBQN2RGSE9OWlM3cGRiR2g1K3lVMytiSGlndGhmdm1V?= =?utf-8?B?ZGl1ZGtDOW5HOWRGUVFTVk5iNFVvQ3NBT3ZWQzVIclFwUitPZjN5cDZUZnN5?= =?utf-8?B?dnBkNURobXVZQTUrY2dUdmdqdUFGSGhwb2x2WEt1YWJKRlJQOHRCaXREYTd0?= =?utf-8?B?Qmdsd2lMemtuQTlBTHMrenc3d3dlSHkwdVRzaVRaeUVuVzk0R0dndEFxWHFv?= =?utf-8?B?VWRDNWZiSFVyRjZNWWdJMjdRK2tUNGV3REM0NGdXVEVqZE9lS2VCWU4rT3ZO?= =?utf-8?B?Y0pTMEk3OWVrdExqTVNzTVA4Um9iT25MYk1zZk5TL09ScVhkcG44NTQxRnFy?= =?utf-8?B?NUsrUEY4QzI4UDQzbFdkOHlpQUxpc2dhSVZ2K3Y0UUE1S2RPYzlNNUFkRmZ3?= =?utf-8?B?T09KNFkzaExmVENDTW15OStjS1hLNGRHTGthQ2xQSld0Rk50dDN4TEtCVVRW?= =?utf-8?B?enRJbWNBdHo2ZFgwbUQrOHd3RWFPTEU0YnRGd1hZWllxeTdiRE9leVNiZXNs?= =?utf-8?B?VlZFVXVyMVdTVFZxQ1l6azdhdkhibnhYYVIyMjZqeGdFdXJYTmk0YmxENE9N?= =?utf-8?B?RVdUdENabFVZczFkTENWZVVScXUvTG1XalhDMEdXc0VvUjJGOENIc1cxYzUz?= =?utf-8?B?RDhES0RSd2U3MTVjOFZjMGpBVHRnZzRtUVhxZHZWMStnK3VsSWxzM3gxQ05x?= =?utf-8?B?WUlJYWhYVXNCdldWSVBKNUFpaEJGczBJaG5oQ0pOZzdqS0t0dThKUVZ6WndF?= =?utf-8?B?R1Fic21hSnIzQzBhbFNNeHVRTFJSeWxjMi9HZmc2TzJtbWlSeW5LQzNld3c0?= =?utf-8?B?QjYxcm5SdnRPdTc4cjdxR2t6SHY2dGlSWXc3cTF4VHhhOXhMZURNTWpsVUxD?= =?utf-8?B?cnJKL085RnZBdTAwUUZ6cVJhNVV3ZFhmOWJkUG45VmpRampxU3dZb2hmT1JR?= =?utf-8?B?Y0Z5NnBvdWRXTFpqRFFEZXhmTnVUTWRKM1pqd014S0JVMXpSdVNlRDBOMEFL?= =?utf-8?B?MEZlalRLbW9tQnpXL3BqS1RUckZLenVCSGZzbGozWitheG1hb3UrRXVoZlNK?= =?utf-8?B?TkNJSnhOWXU5bXlOVlVuUEZnd2txVDdvN3hham04Q3A0WXlQYTdXakhlVDQz?= =?utf-8?B?R2daMEhWNjZzbXMvdG5mcXZwTlVEOVI5U29CNkdnbGdaeVQ1VGY3OHMzaFhF?= =?utf-8?B?YmJyZkx0dXlPbmhBN2sxancrOUY2YTlQK2FzOWdRU2NUektlWm9DM3JsSklj?= =?utf-8?B?RFB0TDJLRTZvQWc5NVJTbjhDcEhnSmxsNGJrR3E5NXVPQzNKdmE4WENMdWVm?= =?utf-8?B?bDBXZFpXVnNScnBjckx6NXl0VVNEcHlOZjBaQ21ycDdsTUJmVEVlMEJsK3Y0?= =?utf-8?B?VjBoZGluVU42cTdUSjFsVXJCcFd3YzZMVVpZbmNZaFRkMmErNks3QjJjWUhS?= =?utf-8?B?aStrUzFub3MzU3BCK1hHeTBXNGUwWmJkZW5OSXpyNkRubW4vZVN5bXVIdXl1?= =?utf-8?Q?esen7NqAVDdKKMVssVTVIUA=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <7CE991A86C88EB4490226D53D23604B7@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: HXeIx/do9fMp9l8LhmBKEfP8FhGwM/qtHObwwA19UixpE2BTLSas9fXHMNEGyEGJZR33bTXu5ie3t0PD2f+Xt7z2BiFsvMMZo9t0zCPZ6m3/asPKz+KGhBN+rcCug/EMekILpNzr93lLc0942fPMNTLqisNlxwoIDZ2YlFdpgBdBgdX0SVS05TqbGscghfkIvJxEAad1v3QY6gqW4/EzDWHbyi6TjQI0ceir8ugX3qjbqJa5DlpZHSOQixMGDAvfkrIav6G6tnpNwJn1oRwuFRs1W/e1rftpsQCjADa2sEo9vUneWLSQOS/zaIQXRPT7WFKNnLDXs76zVBwdk/RKSMlCqpGC6SN5EgElH9q2wXFmUrPMYVNYysj1GMjja+jRYiAL0/7epLV4MEQnfHUtXPfr57JgVPU74Uv2SyfmNctLRmdgz3URS2PYZr7OM2M84FO0Ca9A4eeeVPX8mzPGTjqMgaAUehInhZREHIwG3K+bWnJgzF8LTmyqcMITFRFoPnTIkN7JOnSZfCNuGzgJUQytRClNa8aRFcbGDFRZ1cl3dyDm3oiGX3wOnCWZZblNWGipVwH5PeG2rh4gi1brX0dptmI/vkzAoA4b85K5/NQ= 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: 5d4635d9-6c7e-4857-5729-08dc211bfb06 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Jan 2024 22:45:23.8586 (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: 3aQ7zTMVOTV9/Nfy3Qy2ScXZO6ZFG3oqXJ1zrgAARFrukDypUgEnw1N/AnHPQhwZbbQAlGZUhSk5nMUJ7wd6yw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7633 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-29_14,2024-01-29_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 mlxscore=0 spamscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2401290169 X-Proofpoint-ORIG-GUID: tqZP4RrroQQUPxdzj5m40y2urSL3nmKF X-Proofpoint-GUID: tqZP4RrroQQUPxdzj5m40y2urSL3nmKF X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_SHORT,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: DQoNCj4gT24gSmFuIDI5LCAyMDI0LCBhdCAzOjE5IFBNLCBLZWVzIENvb2sgPGtlZXNjb29rQGNo cm9taXVtLm9yZz4gd3JvdGU6DQo+IA0KPiBPbiBNb24sIEphbiAyOSwgMjAyNCBhdCAwNzozMjow NlBNICswMDAwLCBRaW5nIFpoYW8gd3JvdGU6DQo+PiANCj4+IA0KPj4+IE9uIEphbiAyOSwgMjAy NCwgYXQgMTI6MjUgUE0sIEtlZXMgQ29vayA8a2Vlc2Nvb2tAY2hyb21pdW0ub3JnPiB3cm90ZToN Cj4+PiANCj4+PiBPbiBNb24sIEphbiAyOSwgMjAyNCBhdCAwNDowMDoyMFBNICswMDAwLCBRaW5n IFpoYW8gd3JvdGU6DQo+Pj4+IEFuIHVwZGF0ZSBvbiB0aGUga2VybmVsIGJ1aWxkaW5nIHdpdGgg bXkgdmVyc2lvbiA0IHBhdGNoLg0KPj4+PiANCj4+Pj4gS2VlcyByZXBvcnRlZCB0d28gRkUgaXNz dWVzIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiA0IHBhdGNoOg0KPj4+PiANCj4+Pj4gMS4gVGhl IG9wZXJhdG9yIOKAnHR5cGVvZuKAnSBjYW5ub3QgcmV0dXJuIGNvcnJlY3QgdHlwZSBmb3IgYS0+ YXJyYXk7DQo+Pj4+IDIuIFRoZSBvcGVyYXRvciDigJwm4oCdIGNhbm5vdCByZXR1cm4gY29ycmVj dCBhZGRyZXNzIGZvciBhLT5hcnJheTsNCj4+Pj4gDQo+Pj4+IEkgZml4ZWQgYm90aCBpbiBteSBs b2NhbCByZXBvc2l0b3J5LiANCj4+Pj4gDQo+Pj4+IFdpdGggdGhlc2UgYWRkaXRpb25hbCBmaXgu ICBLZXJuZWwgd2l0aCBjb3VudGVkLWJ5IGFubm90YXRpb24gY2FuIGJlIGJ1aWx0IHN1Y2Nlc3Nm dWxseS4gDQo+Pj4gDQo+Pj4gVGhhbmtzIGZvciB0aGUgZml4ZXMhDQo+Pj4gDQo+Pj4+IA0KPj4+ PiBBbmQgdGhlbiwgS2VlcyByZXBvcnRlZCBvbmUgYmVoYXZpb3JhbCBpc3N1ZSB3aXRoIHRoZSBj dXJyZW50IGNvdW50ZWQtYnk6DQo+Pj4+IA0KPj4+PiBXaGVuIHRoZSBjb3VudGVkLWJ5IHZhbHVl IGlzIGJlbG93IHplcm8sIG15IGN1cnJlbnQgcGF0Y2ggDQo+Pj4+IA0KPj4+PiBBLiBEaWRu4oCZ dCByZXBvcnQgYW55IHdhcm5pbmcgZm9yIGl0Lg0KPj4+PiBCLiBBY2NlcHRlZCB0aGUgbmVnYXRp dmUgdmFsdWUgYXMgYSB3cmFwcGVkIHNpemUuDQo+Pj4+IA0KPj4+PiBpLmUuIGZvcjoNCj4+Pj4g DQo+Pj4+IHN0cnVjdCBmb28gew0KPj4+PiBzaWduZWQgY2hhciBzaXplOw0KPj4+PiB1bnNpZ25l ZCBjaGFyIGFycmF5W10gX19jb3VudGVkX2J5KHNpemUpOw0KPj4+PiB9ICphOw0KPj4+PiANCj4+ Pj4gLi4uDQo+Pj4+IGEtPnNpemUgPSAtMzsNCj4+Pj4gcmVwb3J0KF9fYnVpbHRpbl9keW5hbWlj X29iamVjdF9zaXplKHAtPmFycmF5LCAxKSk7DQo+Pj4+IA0KPj4+PiB0aGlzIHJlcG9ydHMgMjUz LCByYXRoZXIgdGhhbiAwLg0KPj4+PiANCj4+Pj4gQW5kIHRoZSBhcnJheS1ib3VuZHMgc2FuaXRp emVyIGRvZXNu4oCZdCBjYXRjaCBuZWdhdGl2ZSBpbmRleCBib3VuZHMgbmVpdGhlci4gDQo+Pj4+ IA0KPj4+PiBhLT5zaXplID0gLTM7DQo+Pj4+IHJlcG9ydChhLT5hcnJheVsxXSk7IC8vIGRvZXMg bm90IHRyYXANCj4+Pj4gDQo+Pj4+IA0KPj4+PiBTbywgbXkgcXVlc3Rpb25zIGFyZToNCj4+Pj4g DQo+Pj4+IEhvdyBzaG91bGQgd2UgaGFuZGxlIHRoZSBuZWdhdGl2ZSBjb3VudGVkLWJ5IHZhbHVl Pw0KPj4+IA0KPj4+IFRyZWF0IGl0IGFzIGFsd2F5cyAwLWJvdW5kZWQ6IGNvdW50IDwgMCA/IDAg OiBjb3VudA0KPj4gDQo+PiBUaGVuIHRoZSBzaXplIG9mIHRoZSBvYmplY3QgaXMgMD8NCj4gDQo+ IFRoYXQgd291bGQgYmUgdGhlIHB1cnBvc2UsIHllcy4gSXQncyBwb3NzaWJsZSBzb21ldGhpbmcg ZWxzZSBoYXMNCj4gaGFwcGVuZWQsIGJ1dCBpdCB3b3VsZCBtZWFuICJ0aGUgYXJyYXkgY29udGVu dHMgc2hvdWxkIG5vdCBiZSBhY2Nlc3NlZA0KPiAoc2luY2Ugd2UgZG9uJ3QgaGF2ZSBhIHZhbGlk IHNpemUpIi4NCg0KVGhpcyBtaWdodCBiZSBhIG5ldyBjb25jZXB0IHdlIG5lZWQgdG8gYWRkLCBm cm9tIG15IHVuZGVyc3RhbmRpbmcsDQogQy9DKysgZG9u4oCZdCBoYXZlIHRoZSB6ZXJvLXNpemVk IG9iamVjdC4gDQpTbywgSSBhbSBhIGxpdHRsZSB3b3JyaWVkIGFib3V0IHdoZXJlIHNob3VsZCB3 ZSBhZGQgdGhpcyBjb25jZXB0Pw0KDQpUaGUgbW9zdCByZWFzb25hYmxlIHBsYWNlIEkgYW0gdGhp bmtpbmcgaXMgYWRkaW5nIHN1Y2ggY29uY2VwdCB0byB0aGUgDQpkb2Mgb2Yg4oCcY291bnRlZC1i eeKAnSBhdHRyaWJ1dGUsIGJ1dCBzdGlsbCBub3QgdmVyeSBzdXJlIG9uIHRoaXMuDQo+IA0KPj4g DQo+Pj4gDQo+Pj4+IA0KPj4+PiBNeSBhcHByb2FjaCBpczoNCj4+Pj4gDQo+Pj4+ICBJIHRoaW5r IHRoYXQgdGhpcyBpcyBhIHVzZXIgZXJyb3IsIHRoZSBjb21waWxlciBuZWVkIHRvIElzc3VlIHdh cm5pbmcgZHVyaW5nIHJ1bnRpbWUgYWJvdXQgdGhpcyB1c2VyIGVycm9yLg0KPj4+PiANCj4+Pj4g U2luY2UgSSBoYXZlIG9uZSByZW1haW5pbmcgcGF0Y2ggdGhhdCBoYXMgbm90IGJlZW4gZmluaXNo ZWQgeWV0Og0KPj4+PiANCj4+Pj4gNiAgRW1pdCB3YXJuaW5ncyB3aGVuIHRoZSB1c2VyIGJyZWFr cyB0aGUgcmVxdWlybWVudHMgZm9yIHRoZSBuZXcgY291bnRlZF9ieSBhdHRyaWJ1dGUNCj4+Pj4g Y29tcGlsYXRpb24gdGltZTogLVdjb3VudGVkLWJ5DQo+Pj4+IHJ1biB0aW1lOiAtZnNhbml0aXpl cj1jb3VudGVkLWJ5DQo+Pj4+ICAgICogVGhlIGluaXRpYWxpemF0aW9uIHRvIHRoZSBzaXplIGZp ZWxkIHNob3VsZCBiZSBkb25lIGJlZm9yZSB0aGUgZmlyc3QgcmVmZXJlbmNlIHRvIHRoZSBGQU0g ZmllbGQuDQo+Pj4gDQo+Pj4gSSB3b3VsZCBob3BlIHRoYXQgcmVndWxhciBjb21waWxlLXRpbWUg d2FybmluZ3Mgd291bGQgY2F0Y2ggdGhpcy4NCj4+IElmIHRoZSB2YWx1ZSBpcyBrbm93biBhdCBj b21waWxlLXRpbWUsIHRoZW4gY29tcGlsZS10aW1lIHNob3VsZCBjYXRjaCBpdC4NCj4+IA0KPj4+ IA0KPj4+PiAgICAqIHRoZSBhcnJheSBoYXMgYXQgbGVhc3QgIyBvZiBlbGVtZW50cyBzcGVjaWZp ZWQgYnkgdGhlIHNpemUgZmllbGQgYWxsIHRoZSB0aW1lIGR1cmluZyB0aGUgcHJvZ3JhbS4NCj4+ Pj4gICAgKiB0aGUgdmFsdWUgb2YgY291bnRlZC1ieSBzaG91bGQgbm90IGJlIG5lZ2F0aXZlLg0K Pj4+IA0KPj4+IFRoaXMgc2VlbXMgcmVhc29uYWJsZSBmb3IgYSB2ZXJ5IHN0cmljdCBwcm9ncmFt LCBidXQgaXQgd29uJ3Qgd29yayBmb3INCj4+PiB0aGUga2VybmVsIGFzLWlzOiBhIG5lZ2F0aXZl ICJjb3VudCIgaXMgc29tZXRpbWVzIHVzZWQgdG8gY2FycnkgZmFpbHVyZQ0KPj4+IGRldGFpbHMg YmFjayB0byBvdGhlciB1c2VycyBvZiB0aGUgc3RydWN0dXJlLiBUaGlzIGNvdWxkIGJlIHJlZmFj dG9yZWQgaW4NCj4+PiB0aGUga2VybmVsLCBidXQgSSdkIHByZWZlciB0aGF0IGV2ZW4gd2l0aG91 dCAtZnNhbml0aXplcj1jb3VudGVkLWJ5IHRoZQ0KPj4+IHJ1bnRpbWUgYmVoYXZpb3JzIHdpbGwg YmUgInNhZmUiLg0KPj4gDQo+PiBTbywgSW4gdGhlIGtlcm5lbOKAmXMgc291cmNlIGNvZGUsIGZv ciBleGFtcGxlOg0KPj4gDQo+PiBzdHJ1Y3QgZm9vIHsNCj4+ICBpbnQgY291bnQ7DQo+PiAgc2hv cnQgYXJyYXlbXSBfX2NvdW50ZWRfYnkoY291bnQpOw0KPj4gfTsNCj4+IA0KPj4gVGhlIGZpZWxk IOKAnGNvdW504oCdIHdpbGwgYmUgdXNlZCBmb3IgdHdvIHB1cnBvc2VzOg0KPj4gQS4gQXMgdGhl IGNvdW50ZWRfYnkgZm9yIHRoZSDigJxhcnJheeKAnSB3aGVuIGl0cyB2YWx1ZSA+IDA7DQo+PiBC LiBBcyBhbiBlcnJubyB3aGVuIGl0cyB2YWx1ZSA8IDA7ICB1bmRlciBzdWNoIGNvbmRpdGlvbiwg dGhlIHNpemUgb2Yg4oCcYXJyYXnigJ0gaXMgemVyby4gDQo+PiANCj4+IElzIHRoZSB1bmRlcnN0 YW5kaW5nIGNvcnJlY3Q/DQo+IA0KPiBZZXMuDQo+IA0KPj4gSXMgZG9pbmcgdGhpcyBmb3Igc2F2 aW5nIHNwYWNlPyAgKEN1cmlvdXMgLTopDQo+IA0KPiBJdCBzZWVtcyBzbywgeWVzLg0KPiANCj4+ PiBJdCBkb2VzIG5vdCBzZWVtIHNlbnNpYmxlIHRvIG1lIHRoYXQgYWRkaW5nIGEgYnVmZmVyIHNp emUgdmFsaWRhdGlvbg0KPj4+IHByaW1pdGl2ZSB0byBHQ0Mgd2lsbCByZXN1bHQgaW4gY29uZGl0 aW9ucyB3aGVyZSBhIHNpemUgY2FsY3VsYXRpb24NCj4+PiB3aWxsIHdyYXAgYXJvdW5kLiBJIHBy ZWZlciBubyBzdXJwcmlzZXMuIDopDQo+PiANCj4+IE1pZ2h0IGJlIGEgYnVnIGhlcmUuIEkgZ3Vl c3MuIA0KPj4+IA0KPj4+PiBMZXQgbWUga25vdyB5b3VyIGNvbW1lbnQgYW5kIHN1Z2dlc3Rpb25z Lg0KPj4+IA0KPj4+IENsYW5nIGhhcyBpbXBsZW1lbnRlZCB0aGUgc2FmZXR5IGxvZ2ljIEknZCBw cmVmZXI6DQo+Pj4gDQo+Pj4gKiBfX2Jkb3Mgd2lsbCByZXBvcnQgMCBmb3IgYW55IHNpemluZyB3 aGVyZSB0aGUgImNvdW50ZWRfYnkiIGNvdW50DQo+Pj4gdmFyaWFibGUgaXMgbmVnYXRpdmUuIEVm ZmVjdGl2ZWx5LCB0aGUgY291bnQgdmFyaWFibGUgaXMgYWx3YXlzDQo+Pj4gcHJvY2Vzc2VkIGFz OiBjb3VudCA8IDAgPyAwIDogY291bnQNCj4+PiANCj4+PiBzdHJ1Y3QgZm9vIHsNCj4+PiBpbnQg Y291bnQ7DQo+Pj4gc2hvcnQgYXJyYXlbXSBfX2NvdW50ZWRfYnkoY291bnQpOw0KPj4+IH0gKnA7 DQo+Pj4gDQo+Pj4gX19iZG9zKHAtPmFycmF5LCAxKSA9PT4gc2l6ZW9mKCpwLT5hcnJheSkgKiAo Y291bnQgPCAwID8gMCA6IGNvdW50KQ0KPj4gDQo+PiBOT1RFLCAgX19iZG8gd2lsbCB1c2UgdmFs dWUgMCBhcyBVTktOT1dOX1NJWkUgZm9yIE1JTk1VTSBTSVpFIHF1ZXJ5LCBpLmU6DQo+PiANCj4+ IHNpemVfdCBfX2J1aWx0aW5fb2JqZWN0X3NpemUgKGNvbnN0IHZvaWQgKiBwdHIsIGludCB0eXBl KQ0KPj4gDQo+PiBXaWxsIHJldHVybiAwIGFzIFVOS05PV19TSVpFIHdoZW4gdHlwZT0gMiBvciAz Lg0KPj4gDQo+PiBTbywgSSBhbSB3b25kZXJpbmc6IHNob3VsZCAgdGhlIDAgaGVyZSBpcyAgVU5L Tk9XTl9TSVpFIG9yIDAgc2l6ZT8NCj4+IA0KPj4gSSBndWVzcyBzaG91bGQgYmUgdGhlIFVOS05P V05fU0laRT8gIChJLGUsIC0xIGZvciBNQVhJTVVNIHR5cGUsICAwIGZvciBNSU5JTVVNIHR5cGUp Lg0KPj4gDQo+PiBpLmUsIHdoZW4gdGhlIHZhbHVlIG9mIOKAnGNvdW504oCdIGlzIDAgb3IgbmVn YXRpdmUsICB0aGUgX19iZG9zIHdpbGwgcmV0dXJuIFVOS05PV05fU0laRS4gIElzIHRoaXMgY29y cmVjdD8NCj4gDQo+IEkgd291bGQgc3VnZ2VzdCB0aGF0IGEgbmVnYXRpdmUgY291bnQgc2hvdWxk IGFsd2F5cyByZXR1cm4gMC4gVGhlIHNpemUNCj4gaXNuJ3QgInVua25vd24iLCB0aGUgImNvdW50 IiBoYXMgYmVlbiBjbGFtcGVkIHRvIDAgdG8gYXZvaWQgc3VycHJpc2VzLA0KPiBzbyB0aGUgcmVz dWx0IGlzIGFzIGlmIHRoZSAiY291bnQiIGhhZCBhIHplcm8gdmFsdWUuDQoNClRoZXJlIGFyZSB0 d28gdGhpbmdzIGhlcmUuIA0KDQoxLiBUaGUgdmFsdWUgb2YgdGhlIOKAnGNvdW50ZWQtYnnigJ0g aXMgMDsgKHdoaWNoIGlzIGVhc3kgdG8gYmUgdW5kZXJzdG9vZCkNCjIuIFRoZSByZXN1bHQgb2Yg dGhlIF9idWlsdGluX29iamVjdF9zaXplIHdoZW4gc2VlIGEg4oCcY291bnRlZC1ieeKAnSAwLg0K DQpGb3IgMSwgaXTigJlzIHNpbXBsZSwgaWYgd2Ugc2VlIGEgY291bnRlZC1ieSB2YWx1ZSA8PSAw LCAgdGhlbiBjb3VudGVkLWJ5IGlzIDA7DQoNCkJ1dCBmb3IgMiwgd2hlbiB0aGUgX2J1aWx0aW5f b2JqZWN0X3NpemUgc2VlcyBhIOKAnGNvdW50ZWQtYnnigJ0gMCwgd2hhdOKAmXMgdmFsdWUgaXQg d2lsbCByZXR1cm4gZm9yIHRoZSBvYmplY3Qgc2l6ZT8NCg0KIENhbiB3ZSByZXR1cm4gMCBmb3Ig dGhlIG9iamVjdCBzaXplPyANCihBcyBJIG1lbnRpb25lZCBpbiB0aGUgcHJldmlvdXMgZW1haWws IDAgaW4gX19idWlsdGluX29iamVjdF9zaXplIGRvZXNu4oCZdCBtZWFuIHNpemUgMCwNCiBpdCBt ZWFucyBVTktOT1dOX1NJWkUgd2hlbiB0aGUgdHlwZSBpcyAyLzMsIFNvLCB3aGF04oCZcyB2YWx1 ZSB3ZSBzaG91bGQgcmV0dXJuIGZvciB0aGUgc2l6ZSAwPykNCmh0dHBzOi8vZ2NjLmdudS5vcmcv b25saW5lZG9jcy9nY2MvT2JqZWN0LVNpemUtQ2hlY2tpbmcuaHRtbA0KDQpIb3BlIEkgYW0gY2xl YXIgdGhpcyB0aW1lLiAtOikNCg0KdGhhbmtzLg0KDQpRaW5nDQo+IA0KPj4gT2theSwgd2hlbiB0 aGUgdmFsdWUgb2Yg4oCcY291bnTigJ0gaXMgMCBvciBuZWdhdGl2ZSwgYm91bmQgc2FuaXRpemVy IHdpbGwgcmVwb3J0IG91dC1vZi1ib3VuZCAob3IgdHJhcCkgZm9yIGFueSBhY2Nlc3MgdG8gdGhl IGFycmF5LiANCj4+IFRoaXMgc2hvdWxkIGJlIHJlYXNvbmFibGUuDQo+IA0KPiBUaGFua3MhIEFu ZCB3aXRoIF9fYmRvcygpIGZvbGxvd2luZyB0aGlzIGxvZ2ljIHRoZXJlIHdvbid0IGJlIGEgZGlz Y29ubmVjdA0KPiBiZXR3ZWVuIHRoZSB0d28uIGkuZS4gRk9SVElGWS1zdHlsZSB0aGluZ3MgbGlr ZSBtZW1jcHkgdXNlIF9fYmRvcyBmb3INCj4gdmFsaWRhdGluZyB0aGUgYXJyYXkgc2l6ZSwgYW5k IGRpcmVjdCBpbmRleCB3YWxraW5nIHVzZXMgdGhlIGJvdW5kcw0KPiBzYW5pdGl6ZXIuIFRoZXNl IGFyZSBlZmZlY3RpdmVseSB0aGUgc2FtZSB0aGluZywgc28gdGhleSBuZWVkIHRvIGFncmVlLg0K PiANCj4gaS5lLiB0aGVzZSBhcmUgdGhlIHNhbWUgdGhpbmc6DQo+IA0KPiBtZW1jcHkocC0+YXJy YXksIHNyYywgYnl0ZXNfdG9fY29weSk7DQo+IA0KPiBhbmQNCj4gDQo+IGZvciAoaSA9IDA7IGkg PCBlbGVtZW50c190b19jb3B5OyBpKyspDQo+IHAtPmFycmF5W2ldID0gc3JjKysNCj4gDQo+IHNv IHRoZSBfX2Jkb3MoKSB1c2VkIGJ5IHRoZSBmb3J0aWZpZWQgbWVtY3B5KCkgbmVlZHMgdG8gYWdy ZWUgd2l0aCB0aGUNCj4gbG9naWMgdGhhdCB0aGUgYm91bmRzIHNhbml0aXplciB1c2VzIGZvciB0 aGUgZm9yIGxvb3AncyBhY2Nlc3Nlcy4NCj4gDQo+IC0tIA0KPiBLZWVzIENvb2sNCg0KDQo=