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 0EEA03857357 for ; Wed, 9 Aug 2023 20:10:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 0EEA03857357 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 (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 379IiT5l012730; Wed, 9 Aug 2023 20:10:20 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=3mT1cLazFPvueyJmzXkhH96SAc1z8PZbCOxuJHgjuao=; b=OXr8Wt2B7WI0zERUP9rG5YMTWjs1+czP7RUiFAV8paSGcZCfTEqtPwRnQz6tkWY6/7zC 70JlcSw/jnWa1lvyXLQNYu5FsbW1vBioeWDVq9SF1gxbxhESbfq2bOMgPhKXTf7g/Eu6 ckZaYchsx1Zq9zZN193FwJhSrHKWQQNNnPJjWjlIk0dZ1GhbJmtmF9A5ZwJVPPEZpjSP wvzlsIhwkmVq2h6fx22w6eSsoVu6mC72PpxbmTlc40/+TDK6tVsgCVpd0GcQsTc1UVRl bEDrEsuOoekoA/I7k+3KdKtz8hsZzI/bVcJV5Btn3+HeutHzC+C6gxxcQevswyxCzrx5 ew== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s9d12hqm1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 09 Aug 2023 20:10:20 +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 379JF2Fh018809; Wed, 9 Aug 2023 20:10:18 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2168.outbound.protection.outlook.com [104.47.58.168]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s9cve25a5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 09 Aug 2023 20:10:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KDB3+bmU+t6rFDSYu96Ac/7Md+DsgLTU6wLl5vcZ6ud/3DWV5jsOEIrofpY4xmPmUN5kOnIC/htcOWSgpEuPj5GEbyhTzERiEUM1O30cLhARspzULGBiKyBYyxFEX62lp9SC3BH1pjaqietFbiMv3JHc281biQxpvUKyTWrtP6kblnKhgZqymjsEgTYsWku5sXgd5qZv72Tadxm0DIP/a2hRDNl23gKBrAfLryKanApyDSIgmmNd/Destvm2/9g+8zCPK9jE3jNqKhTbnK/9BHw0eJoxsPFQL1Lgz6fJ3+8A7y8OEQ90kmZKxbtrE+ZQp94uafgxnDTgzii1/XMZHA== 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=3mT1cLazFPvueyJmzXkhH96SAc1z8PZbCOxuJHgjuao=; b=VuGE6hIBOKPP+la04cS+X3Sbkwwhz1rx/rnO6qCIbNbvfwR1sAgJedLBwgZe4629yD0/ZgJYw6UwhTHm6b6GPCMmd398YP9aDHTeMauYmWAc9b8sczThM3cE3RlONAddeniaM6Ck9oV3W/XGIYi75XSem823nHQArs/BiGWEkNtXs7+LdWZ6kd3vH4Y+JC8DohZw1rOYIamS1T+NMPnX8ZGw/7HcJlnwqVqw3gn0uEAb98Vj3genvj/ajnSHQXGkWnQE/0jgtvIgxB37qVxcW46kPAxCbLBvBmWmmOxVAM5+/OwUDe1ZZs/E29aS791e1VC58WorPRoGYIZx8GcC2g== 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=3mT1cLazFPvueyJmzXkhH96SAc1z8PZbCOxuJHgjuao=; b=AKz1UxHMBL1Rypl5/CB58sLxnakR1HYlaRASRwuar691p1aPj4LdXpIkNknMkAJpSS209tSFBB2aIBrzxPH4TM0vCkB78Aba1/PWgeveC9+zUEHKZtdVM4Wfrml3ItneNS8KroV7BLJxTVXbaQS1hBfXFo+dbdozmBYF5X1qze0= Received: from MN2PR10MB4349.namprd10.prod.outlook.com (2603:10b6:208:1d4::9) by CH0PR10MB5354.namprd10.prod.outlook.com (2603:10b6:610:df::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6652.28; Wed, 9 Aug 2023 20:10:17 +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:10:16 +0000 From: Qing Zhao To: Michael Matz CC: Martin Uecker , Kees Cook , Joseph Myers , Richard Biener , jakub Jelinek , Qing Zhao via Gcc-patches , Siddhesh Poyarekar , "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/fBvyAgAF7dgCAAaYQgIAABGqAgABAAgA= Date: Wed, 9 Aug 2023 20:10:16 +0000 Message-ID: References: <20230804194431.993958-1-qing.zhao@oracle.com> <202308070858.D2FB43E@keescook> <5f76638c8cfca7611e955ef9fadacfd7f8dca0fb.camel@tugraz.at> <9E6E0BBA-A97F-4C94-B188-8E4A620B36DB@oracle.com> In-Reply-To: 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_|CH0PR10MB5354:EE_ x-ms-office365-filtering-correlation-id: e4cb909f-682e-4e48-013e-08db9914a618 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dVWZ5k0RHx9RyC6Rbl+p8MIapcVJRkE2YjI3APPwr3KGAyNnKPN0ktdncDfLl8FNszEwZE/IDuRL9TUn9M+NVN0YaYy194VgVQLrpOczAuE5lzFiNkVohEkN+wBcmWYqs0WooGoDQlxdB4ZVn006UMCdz7Q0ZZ3VVT1BkU/6iV+NcatJiZCvnwnFfmPwTgDAPiQmQ4a+Ko78CggwDZ2jhRem5R8tKL0ntXZZcFvBVKLwk3Tx4CcN5XJmFqpatMjpTs4qiNLUkk+CqkxaU4lkPYCkLz9ZOUjS3g6CSSKYtU4m9dNB3YpRw2lt/7VH8vrG+jZBKjhRHjjHzs7s9KRrUbdPneRH2kHQlcUymU9hyGhBfwlseSTupvwLV/v6RnUDo4mymJscyuDczNkMkSy9zEy2+wxjEwmySGJtQpxQE0Ji1DmNmIXYQhp4RXAePE8hWtYPuPI9xOrLLj2AVSuXvmBsqTHZeyBx5VK4dYwwHs9Yf2q4AU2hD2j+DCpv83u/xKPZ9uuZ2bYf+93lXYFNRFw7POpSt0T4J3Xc4SUz/2knrLgZybAb/jVdKCLH7IJ/QGIEBygfFNgWw75EalYL5sjexzkgg+ZVKLLZ3kM+/fujdgh9FpTYo9yn7XsMKwi4v499xixsIaai1WLWqtUGpQ== 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)(396003)(136003)(376002)(366004)(39860400002)(346002)(451199021)(186006)(1800799006)(6512007)(966005)(53546011)(6506007)(33656002)(54906003)(36756003)(38100700002)(38070700005)(44832011)(86362001)(5660300002)(4326008)(6916009)(2906002)(316002)(76116006)(66446008)(91956017)(66946007)(66556008)(8936002)(41300700001)(66476007)(8676002)(64756008)(71200400001)(6486002)(478600001)(122000001)(83380400001)(2616005)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YklRbmt1b09Bd1gyV0xKc1FNTkk2eldXMFJmM1EzdUcyRXRFU29jZ1ZqZWVI?= =?utf-8?B?ZWFSV1ZZZ3h4WUdTS0dvcURNTmRKYjMvdTIzZVZ5Q09ES0dUZFg3Q3Q2c2V1?= =?utf-8?B?NUxiRTdzQjJWbW9JWEY3N1B4aHlOSGJOdDJqeGxpMStWTFR1bVV3UWl1Wmh2?= =?utf-8?B?V081NmVVVWF6Uy9jZHo4TmZRSlVGcEFhMnl1a1NTSktHZEFyZXRYSm1zZmI0?= =?utf-8?B?VHlnMkZKVXhONW9ZT1lCbVcyNHhURGRlMGxzSzJVby9BYnQ4U3pkTlYrSDY0?= =?utf-8?B?WDdMTWxSS3dMdVdrTyttdHFOSFJ3UHQxWVFWTC9QU3RvT01Vd1QvTDBuSUxY?= =?utf-8?B?eXhoWGNKTmN1RE5aMTJHL0oxT1JocEc1cFlLQ3Boc1VySWZGTWh5akVzU1p6?= =?utf-8?B?cU9zTVlTL3dpREovVWt1OWJBZVErQjZ0M095aUoza25pSEJtOGllRVVFemJM?= =?utf-8?B?dWdjUm5iVHA0cTRsMjQ0WGxvNWhSM0xkbktKNzFWbDVPTldFU1hrY0NKcVZG?= =?utf-8?B?aUd2cDdrSG82UmRBQmtIMi9MVjdSanNRVVB3WnlPTU9VSzl0LzZWYjhkMHpm?= =?utf-8?B?cjNBNTB6OTArQXJSNHg2S2UyQ2hVb0NBYmppUDdnZVhaSWNEUjhUZkJkWGZn?= =?utf-8?B?NGJoQ0YvL3NEaWo5UDBqRmZveHo3dDJvQmF3YWp2b0JiSmp5NFNRK1BxcGNw?= =?utf-8?B?eDFrUm1GcUJpUXY1VG1WUTFzNlg5bmltbVM4dW04eXBTTG44V1d3NU15SmlD?= =?utf-8?B?dHRoODlUYmI4NzNESlBZNHp6S0wzL2ltTXAxSDY0aWpsVVEvblNRUEdwdDA5?= =?utf-8?B?dE1TQXArdkVyalhkSkxXN0xUZmNRN0hBWTkyNzllcldJQ2dwQUlpR1RZY1B0?= =?utf-8?B?VEdKQXIxVkhSWjVXZTVEaEFtWU1HRUN1VHc2OU1vTnFkYUFsakJ2eWZ5cVlV?= =?utf-8?B?WDhGSHlJaTRsOXI2MERaNExrT2s4Qi9ZellTWkVXQ3Uvd3FLU1g1MUhBYkw1?= =?utf-8?B?TU9pM1BqYUczdzh6a1FwbGxvZEVFdUw2c3MzWTJMNjUwT1U1VmJSTmRhVmxF?= =?utf-8?B?U3NPVENOSE4vV1RLOUxzRVRxQ1ZkeldRak12WEcyQzRyNHFXZnlyQTBETkVL?= =?utf-8?B?UE5OcEdtTmFVcllaYXFtUTBQQ1JxdGkrRHRlVjJtVVJaWDM4dDJBRnZRSmZp?= =?utf-8?B?Wml1MGpBL2U0SnVGcHpNTUovZGN1K3FRU1ZNQkRjQkRYRWtudGdWWGZMRVQ0?= =?utf-8?B?U3ZXbnFSdm5aaVJpVGhYdlJ5NnVzcU52djZ6dkViVEJQNTI2N3l5ZnZDMFRB?= =?utf-8?B?WWR5RXJTYk55blZ5UVVjQlVnRHZWeGVPOHpUZVdQNWpMQmtEZzhZSXIzSmZX?= =?utf-8?B?T1lHcVpUYUp2ejc5YWRiZ2VrY0daN0VCdHl2cWhzR3dVOHlJRndBSjVQNy9s?= =?utf-8?B?NzNzcWJhVUZPcktjV0RlNUtGS3JmRzBwUjRiaHNjS2JybEFJTHhqNk9IVW5K?= =?utf-8?B?d1hzN0ZnNFlqMk8rSkQ5U1VHSzFJUjZRbmlnQ1FyN3ROYXZwTDgwNWNhcm5y?= =?utf-8?B?TzRreWNCNEFEeXJXYVhQTGQyQ0pSOGY4Y3lFU1JYeVAvM3hxS3ZWSk1vQ0U3?= =?utf-8?B?azg0ZGU5MTIralZrNFk3ZUR5YUlpWUZTeEQwTXVwMm1rMDZSUk5uT2JRamFP?= =?utf-8?B?RS92Wno4UmhvdHVJMVdXVW1iVnRRYmlENTYva2lWRHBmMEJNRnJxbEgxdktt?= =?utf-8?B?TFRnaHI5NFdDVXFhN25Pd1BEWGE0V1owQ0I2T2xOYTVKNlkzcndaT1VoQ1BU?= =?utf-8?B?WEVqYzRtS1VSRVE3cEo2UFdsOWhia0dpRW1pSGJRazlSNlpRbEJaRnpHSGd5?= =?utf-8?B?dUdpSW10bFp5dkgxZmY4Vm9pT0t5bUhhUzVYK0RHWFNXWktFeXVQNGNFRmhM?= =?utf-8?B?UnF1VGoxcVJMYnNIaUVKQ1RieitqNGhkK3BNZGhWU045ay9YODkvQi9uTjh5?= =?utf-8?B?RFE3amowWHhRUmErQVNLQXRpVXJqTlV6N1FxV21JalJ5SkhvSlRmcjVVODBL?= =?utf-8?B?YytnbTZTUGpuaVEvaGR2ZkhpZHJDS25vcTh3UDJpelNqNk9uZG5LOHcxNHlx?= =?utf-8?B?S1hJMm45Wlhsdjd3M2JSSG83dUNoS0FaellJVTRnclMyaXhxcXdrdXZpQ2VM?= =?utf-8?Q?LvXfKYYLCR0MoHVQGoIpL0k=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?dllXMVlNL0w0cERXeTRzbVU0eStweEd4OENTZ2pxOUxnQ1RpenNSK1dQZWYy?= =?utf-8?B?QUtZT1hZWlFsWENlcHVrdTA1Um1LYmJuTERhc2ZyMkYvL1VZcHB0cEdEcFdB?= =?utf-8?B?MFhDWmF5QlA0WU1hMEJ3S3ljK1J0bmlFRTh0TnI5cTJZWU5vNC9PS1BzK1ox?= =?utf-8?B?Z2FpWjZoTGU0ZHNZb1lqOStROEkvR2Y4U1hwMXhzVDh6Ri9yR25jY0JNcFJF?= =?utf-8?B?ZVVQM3lQOERPRGxIa0lraFp0cFh6Q0N2ekM1M3dXY05MRWM4SWxiQXpMUVYw?= =?utf-8?B?NzhKRnJxUllBQllsQjRTeml1M2lHZmlPWG9KVEhRcEc4L05MaS9JTWpnNDB3?= =?utf-8?B?RHE3UmIyN0I5OUthTFZHZHBHbWx0b1IrWStxUUlXZUhyc3B4ZzNGMGdaSmJD?= =?utf-8?B?WUgxeWxUcklWdGpVa0FrVTBmbm1rMVgrV2NqM1dOMnRGVlZlNjFqMUpWdmpm?= =?utf-8?B?LzFvWlQ3Q2pkWVg4TWxxSlVaRCtZVnZYdkJsa2ZYOW9sbUhUWHkrcVEwSWdy?= =?utf-8?B?YW5Cb0ZHc2h5LzRyOGpYblVOdGd6UkpGNGNFeGRVL1VLVlFqU1M1ZUlPNlZZ?= =?utf-8?B?Z3NMTmRtMjR2c0wyeGk3aHE2NFF3OWJzTnBtTjE2SFZudjlpVmhub3FLdWw5?= =?utf-8?B?UmtxMUxvQnB5L3lpYWs0RW5ZTTI5d3BuZ2x4MzNpaGkvMDB6NWxZTGp6UDBh?= =?utf-8?B?QWZYc3IydW5LOWkwNEgrU3o3VzlMY21NdkQ5UEtybWtSY216eVlMc0x6TlRQ?= =?utf-8?B?R216QlY4bmUvUEVqN0lrMEF2RlFKV3JwR1JZK3BiaFVNRE1uTnFweXVhWFQx?= =?utf-8?B?dWZsUC9XYlJWUTUyV1B2WTN2VDNFanFiZzVRV0V6RWFRVEFLKzc2dWh4djBM?= =?utf-8?B?MkhIUlhWWDVVZ3E4UzRDTTBadXJPbWJFRE5IRGJSbk9JNjQrYUxYc3JTTzRa?= =?utf-8?B?bTVoTUxGMkx6U2ZPNmtXYUdnZnBCNTg1TXJQZ3cra2Ziak5raW5teVlnMzVU?= =?utf-8?B?cjFuWDE5amVEOVBIQW1pQUhnaUtaUUQ3TWZVL3NxYkZjcFBMbGVEUUpkQno1?= =?utf-8?B?N1dySUY5dmN3NHZWNGQ1VEt2bjY4Ui9Za3NRUG5PVkZETTZuOHFscGI0Ullx?= =?utf-8?B?RC80ZFFwYkpvR3ZDWFJYY1pYcWFDT251QWMvemxmVTE3VG5lYTFrRFJ5S1BY?= =?utf-8?B?ZmZ6VXJsaXdOTSt2emROUnMwYmdpT3hPUWNEWGxnRE50TUQyVUZvT25UdmMw?= =?utf-8?B?UlQyWURMNi9WakVaTVN2M0hmVmVnN3lWc25UczFNZnpzejF5UT09?= 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: e4cb909f-682e-4e48-013e-08db9914a618 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Aug 2023 20:10:16.7486 (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: VHMGKOx+OoC82zfNSotQsAmyJDNbJ1oprVUpallERkKWToae8Qijr74Blw0rrXYy1kYRwzxTpm/pChFER3B6pw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5354 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_18,2023-08-09_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 adultscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2308090177 X-Proofpoint-GUID: xxzx-rq4UyUPkJ9oyq7PSS6MpvfPNe2d X-Proofpoint-ORIG-GUID: xxzx-rq4UyUPkJ9oyq7PSS6MpvfPNe2d X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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: DQoNCj4gT24gQXVnIDksIDIwMjMsIGF0IDEyOjIxIFBNLCBNaWNoYWVsIE1hdHogPG1hdHpAc3Vz ZS5kZT4gd3JvdGU6DQo+IA0KPiBIZWxsbywNCj4gDQo+IE9uIFdlZCwgOSBBdWcgMjAyMywgUWlu ZyBaaGFvIHdyb3RlOg0KPiANCj4+IEFsdGhvdWdoIHRoaXMgaXMgYW4gb2xkIEZBTSByZWxhdGVk IGlzc3VlIHRoYXQgZG9lcyBub3QgcmVsYXRlIHRvIG15IGN1cnJlbnQgcGF0Y2ggDQo+PiAoYW5k IG1pZ2h0IG5lZWQgdG8gYmUgcmVzb2x2ZWQgaW4gYSBzZXBhcmF0ZSBwYXRjaCkuICBJIHRoaW5r IHRoYXQgaXTigJlzIG5lY2Vzc2FyeSB0byBoYXZlDQo+PiBtb3JlIGRpc2N1c3Npb24gb24gdGhp cyBvbGQgaXNzdWUgYW5kIHJlc29sdmUgaXQuIA0KPj4gDQo+PiBUaGUgZmlyc3QgdGhpbmcgdGhh dCBJ4oCZZCBsaWtlIHRvIGNvbmZpcm0gaXM6DQo+PiANCj4+IFdoYXQgdGhlIGV4YWN0IG1lbW9y eSBsYXlvdXQgZm9yIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlIHg/DQo+PiANCj4+IHN0cnVjdCBm b28geyBpbnQgYTsgc2hvcnQgYjsgY2hhciB0W107IH0geCA9IHsgLnQgPSB7IDEsIDIsIDMgfSB9 Ow0KPj4gDQo+PiBBbmQgdGhlIGtleSB0aGF0IGlzIGNvbmZ1c2luZyBtZSBpcywgd2hlcmUgc2hv dWxkIHRoZSBmaWVsZCDigJx04oCdIHN0YXJ0PyANCj4+IA0KPj4gQS4gIFN0YXJ0aW5nIGF0IG9m ZnNldCA4IGFzIHRoZSBmb2xsb3dpbmc6DQo+PiANCj4+IGEgICAgICAgICAgCTQtYnl0ZXMNCj4+ IGIgICAgICAgICAgCTItYnl0ZXMNCj4+IHBhZGRpbmcgICAyLWJ5dGVzDQo+PiB0ICAgICAgICAg ICAJMy1ieXRlcw0KPiANCj4gV2h5IHNob3VsZCB0aGVyZSBiZSBwYWRkaW5nIGJlZm9yZSAndCc/ ICBJdCdzIGEgY2hhciBhcnJheSAoRkFNIG9yIG5vdCksIA0KPiBzbyBpdCBjYW4gYmUgKGFuZCBz aG91bGQgYmUpIHBsYWNlZCBkaXJlY3RseSBhZnRlciAnYicuICBTbyAuLi4NCg0KWWVzLCB5b3Ug YXJlIHJpZ2h0LiBNeSBtaXN0YWtlIC06KQ0KPiANCj4+IEIuIFN0YXJ0aW5nIGF0IG9mZnNldCA2 IGFzIHRoZSBmb2xsb3dpbmc6DQo+PiANCj4+IGEgICAgICAgICAgCTQtYnl0ZXMNCj4+IGIgICAg ICAgICAgCTItYnl0ZXMNCj4+IHQgICAgICAgICAgIAkzLWJ5dGVzDQo+IA0KPiAuLi4gdGhpcyBp cyB0aGUgY29ycmVjdCBsYXlvdXQsIHdoZW4gc2VlbiBpbiBpc29sYXRpb24uICBUaGUgZGlzY3Vz c2lvbiANCj4gcmV2b2x2ZXMgYXJvdW5kIHdoYXQgc2hvdWxkIGNvbWUgYWZ0ZXIgJ3QnOiBpZiBp dCdzIGEgbm9uLUZBTSBzdHJ1Y3QgKHdpdGggDQo+IHRbM10pLCB0aGVuIGl0J3MgY2xlYXIgdGhh dCB0aGVyZSBuZWVkcyB0byBiZSBwYWRkaW5nIGFmdGVyIGl0LCBzbyB0byBwYWQgDQo+IG91dCB0 aGUgd2hvbGUgc3RydWN0IHRvIGJlIDEyIGJ5dGVzIGxvbmcgKGZvciBzaXplb2YoKSBwdXJwb3Nl KSwgYXMgDQo+IHJlcXVpcmVkIGJ5IGl0cyBhbGlnbm1lbnQgKGR1ZSB0byB0aGUgaW50IGZpZWxk ICdhJykuDQoNCnJpZ2h0Lg0KPiANCj4gU28sIHNob3VsZCB0aGUgZXF1aXZhbGVudCBGQU0gc3Ry dWN0IGFsc28gaGF2ZSB0aGlzIHNpemVvZigpPyAgSWYgbm86IA0KPiB0aGVyZSBzaG91bGQgYmUg YSBnb29kIGFyZ3VtZW50IHdoeSBpdCBzaG91bGRuJ3QgYmUgc2ltaWxhciB0byB0aGUgbm9uLUZB TSANCj4gb25lLg0KDQpUaGUgc2l6ZW9mKCkgb2YgYSBzdHJ1Y3R1cmUgd2l0aCBGQU0gaXMgZGVm aW5lZCBhczogKGFmdGVyIEkgc2VhcmNoZWQgb25saW5lLA0KIEkgdGhpbmsgdGhhdCB0aGUgb25l IGluIFdpa2lwZWRpYSBpcyB0aGUgbW9zdCByZWFzb25hYmxlIG9uZSk6DQpodHRwczovL2VuLndp a2lwZWRpYS5vcmcvd2lraS9GbGV4aWJsZV9hcnJheV9tZW1iZXINCg0KPT09PT09DQpFZmZlY3Qg b24gc3RydWN0IHNpemUgYW5kIHBhZGRpbmcNClRoZSBzaXplb2Ygb3BlcmF0b3Igb24gc3VjaCBh IHN0cnVjdCBnaXZlcyB0aGUgc2l6ZSBvZiB0aGUgc3RydWN0dXJlIGFzIGlmIHRoZSBmbGV4aWJs ZSANCmFycmF5IG1lbWJlciB3ZXJlIGVtcHR5LiBUaGlzIG1heSBpbmNsdWRlIHBhZGRpbmcgYWRk ZWQgdG8gYWNjb21tb2RhdGUgdGhlDQogZmxleGlibGUgbWVtYmVyOyB0aGUgY29tcGlsZXIgaXMg YWxzbyBmcmVlIHRvIHJlLXVzZSBzdWNoIHBhZGRpbmcgYXMgcGFydCBvZiB0aGUgYXJyYXkgaXRz ZWxmLlsyXQ0KDQpJdCBpcyBjb21tb24gdG8gYWxsb2NhdGUgc2l6ZW9mKHN0cnVjdCkgKyBhcnJh eV9sZW4qc2l6ZW9mKGFycmF5IGVsZW1lbnQpIGJ5dGVzLiANCg0KVGhpcyBpcyBub3Qgd3Jvbmcs IGJ1dCBpdCBtYXkgYWxsb2NhdGUgYSBmZXcgbW9yZSBieXRlcyB0aGFuIG5lY2Vzc2FyeTogdGhl IGNvbXBpbGVyDQogbWF5IGJlIHJlLXB1cnBvc2luZyBzb21lIG9mIHRoZSBwYWRkaW5nIHRoYXQg aXMgaW5jbHVkZWQgaW4gc2l6ZW9mKHN0cnVjdCkuIFNob3VsZCANCnRoaXMgYmUgYSBjb25jZXJu LCBtYWNyb3MgYXJlIGF2YWlsYWJsZVszXSB0byBjb21wdXRlIHRoZSBtaW5pbXVtIHNpemUgd2hp bGUgDQplbnN1cmluZyB0aGF0IHRoZSBjb21waWxlcidzIHBhZGRpbmcgaXMgbm90IGRpc3J1cHRl ZC4gDQoNCkFzIHRoZSBhcnJheSBtYXkgc3RhcnQgaW4gdGhlIHBhZGRpbmcgYmVmb3JlIHRoZSBl bmQgb2YgdGhlIHN0cnVjdHVyZSwgaXRzIGNvbnRlbnQNCiBzaG91bGQgYWx3YXlzIGJlIGFjY2Vz c2VkIHZpYSBpbmRleGluZyAoYXJyW2ldKSBvciAgb2Zmc2V0b2YsIG5vdCBzaXplb2YuDQo9PT09 PT0NCg0KQnkgZGVmaW5pdGlvbiwgdGhlIHNpemVvZigpIG9mIGEgc3RydWN0IHdpdGggRkFNIG1p Z2h0IG5vdCBiZSB0aGUgc2FtZSBhcyB0aGUgbm9uLUZBTSBvbmUuIA0KaS5lLCBmb3IgdGhlIGZv bGxvd2luZyB0d28gc3RydWN0dXJlcywgb25lIHdpdGggRkFNLCB0aGUgb3RoZXIgd2l0aCBmaXhl ZCBhcnJheToNCg0Kc3RydWN0IGZvb19mbGV4IHsgaW50IGE7IHNob3J0IGI7IGNoYXIgdFtdOyB9 IHggPSB7IC50ID0geyAxLCAyLCAzIH0gfTsNCnN0cnVjdCBmb29fZml4IHtpbnQgYTsgc2hvcnQg YjsgY2hhciB0WzNdOyB9IA0KDQpXaXRoIGN1cnJlbnQgR0NDOg0Kc2l6ZW9mKGZvb19mbGV4KSA9 PSA4DQpzaXplb2YoZm9vX2ZpeCkgPT0gMTINCg0KSSB0aGluayB0aGF0IHRoZSBjdXJyZW50IGJl aGF2aW9yIG9mIHNpemVvZiBmb3Igc3RydWN0dXJlIHdpdGggRkFNIGluIEdDQyBpcyBjb3JyZWN0 LiANCg0KVGhlIG1ham9yIGlzc3VlIGlzIHdoYXQgd2FzIHBvaW50ZWQgb3V0IGJ5IE1hcnRpbiBp biB0aGUgcHJldmlvdXMgZW1haWw6DQoNCldoZXRoZXIgdXNpbmcgdGhlIGZvbGxvd2luZyBmb3Jt dWxhIGlzIGNvcnJlY3QgdG8gY29tcHV0ZSB0aGUgYWxsb2NhdGlvbj8NCg0Kc2l6ZW9mKHN0cnVj dCBmb29fZmxleCkgKyBOICogc2l6ZW9mKGZvby0+dCk7DQoNCkFzIHBvaW50ZWQgb3V0ICBpbiB0 aGUgd2lraXBlZGlhLCB0aGUgdmFsdWUgY29tcHV0ZWQgYnkgdGhpcyBmb3JtdWxhIG1pZ2h0DQog YmUgYmlnZ2VyIHRoYW4gdGhlIGFjdHVhbCBzaXplIHNpbmNlIOKAnHNpemVvZihzdHJ1Y3QgZm9v X2ZsZXgp4oCdIG1pZ2h0IGluY2x1ZGUgDQpwYWRkaW5ncyB0aGF0IGFyZSB1c2VkIGFzIHBhcnQg b2YgdGhlIGFycmF5Lg0KDQpTbyB0aGUgbW9yZSBhY2N1cmF0ZSBmb3JtdWxhIHNob3VsZCBiZQ0K DQpvZmZzZXQoc3RydWN0IGZvb19mbGV4LCB0WzBdKSArIE4gKiBzaXplb2YoZm9vLT50KTsNCg0K V2l0aCBHQ0MsIG9mZnNldChzdHJ1Y3QgZm9vX2ZsZXgsdFswXSkgPT0gNiwgd2hpY2ggaXMgYWxz byBjb3JyZWN0LiANCg0KDQo+IFRoZW4gdGhlcmUgaXMgYW4gYXJndW1lbnQgdGhhdCB0aGUgY29t cGlsZXIgd291bGQgYmUgZmluZSwgd2hlbiBhbGxvY2F0aW5nIA0KPiBhIHNpbmdsZSBvYmplY3Qg b2Ygc3VjaCB0eXBlIChub3QgYXMgcGFydCBvZiBhbiBhcnJheSEpLCB0byBvbmx5IHJlc2VydmUg OSANCj4gYnl0ZXMgb2Ygc3BhY2UgZm9yIHRoZSBGQU0tc3RydWN0LiAgVGhlbiB0aGUgcXVlc3Rp b24gaXM6IHNob3VsZCBpdCBhbHNvIA0KPiBkbyB0aGF0IGZvciBhIG5vbi1GQU0gc3RydWN0IChi YXNlZCBvbiB0aGUgYXJndW1lbnQgdGhhdCB0aGUgcGFkZGluZyANCj4gYmVoaW5kICd0JyBpc24n dCBhY2Nlc3NpYmxlLCBhbmQgaGVuY2UgZG9lc24ndCBuZWVkIHRvIGJlIGFsbG9jZWQpLiAgSSAN Cj4gdGhpbmsgaXQgd291bGQgYmUgcXVpdGUgdW5leHBlY3RlZCBmb3IgdGhlIGNvbXBpbGVyIHRv IGFjdHVhbGx5IHJlc2VydmUgDQo+IGxlc3Mgc3BhY2UgdGhhbiBzaXplb2YoKSBpbXBsaWVzLCBz byBJIHBlcnNvbmFsbHkgZG9uJ3QgYnV5IHRoYXQgYXJndW1lbnQuICANCj4gRm9yIEZBTSBvciBu b24tRkFNIHN0cnVjdHMuDQoNCkZvciB0aGUgcXVlc3Rpb24sIHdoZXRoZXIgdGhlIGNvbXBpbGVy IG5lZWRzIHRvIGFsbG9jYXRlIHBhZGRpbmdzIGFmdGVyIHRoZSBGQU0gZmllbGQsDQogSSBkb27i gJl0IGtub3cgdGhlIGFuc3dlciwgYW5kIGl04oCZcyBub3Qgc3BlY2lmaWVkIGluIHRoZSBzdGFu ZGFyZCBlaXRoZXIuIA0KRG9lcyBpdCBtYXR0ZXI/DQoNCj4gDQo+IE5vdGUgdGhhdCBpZiBvbmUg Y2hvc2VzIHRvIGFsbG9jYXRlIGxlc3Mgc3BhY2UgdGhhbiBzaXplb2YgaW1wbGllcyB0aGF0IA0K PiB0aGlzIHdpbGwgaGF2ZSBxdWl0ZSBzb21lIGNvbnNlcXVlbmNlcyBmb3IgY29kZSBnZW5lcmF0 aW9uLCBpbiB0aGF0IA0KPiBzb21ldGltZXMgdGhlIGluc3RydWN0aW9uIHNlcXVlbmNlcyAoZS5n LiBmb3IgY29weWluZykgbmVlZCB0byBiZSBjYXJlZnVsIA0KPiB0byBuZXZlciBhY2Nlc3MgdGFp bCBwYWRkaW5nIHRoYXQgc2hvdWxkIGJlIHRoZXJlIGluIGFycmF5IGNvbnRleHQsIGJ1dCANCj4g aXNuJ3QgdGhlcmUgaW4gc2luZ2xlLW9iamVjdCBjb250ZXh0LiAgSSB0aGluayB0aGlzIGFsb25l IHNob3VsZCBtYWtlIGl0IA0KPiBjbGVhciB0aGF0IGl0J3MgYWR2aXNhYmxlIHRoYXQgc2l6ZW9m KCkgYW5kIGFsbG9jYXRlZCBzaXplIGFncmVlLg0KDQpTaXplb2YgYnkgZGVmaW5pdGlvbiBpcyBy ZXR1cm4gdGhlIHNpemUgb2YgdGhlIFRZUEUsIG5vdCB0aGUgc2l6ZSBvZiB0aGUgYWxsb2NhdGVk IG9iamVjdC4NCg0KQW5vdGhlciB0aGluZyBJIG5lZWQgdG8gcG9pbnQgb3V0IGlzLCAgYSBzdHJ1 Y3R1cmUgd2l0aCBGQU0gY2Fubm90IGJlIGFuIGVsZW1lbnQgb2YgYW4gYXJyYXkuDQo+IA0KPiBB cyBpbjogSSB0aGluayBzaXplb2YgZm9yIGJvdGggc3RydWN0cyBzaG91bGQgcmV0dXJuIDEyLCBh bmQgMTIgYnl0ZXMgDQo+IHNob3VsZCBiZSByZXNlcnZlZCBmb3Igb2JqZWN0cyBvZiBzdWNoIHR5 cGVzLg0KPiANCj4gQW5kIHRoZW4gdGhlIG5leHQgcXVlc3Rpb24gaXMgd2hhdCBfX2J1aWx0aW5f b2JqZWN0X3NpemUgc2hvdWxkIGRvIHdpdGggDQo+IHRoZXNlOiBzaG91bGQgaXQgcmV0dXJuIHRo ZSBzaXplIHdpdGggb3Igd2l0aG91dCBwYWRkaW5nIGF0IGVuZCAoaS5lLiANCj4gY291bGQvc2hv dWxkIGl0IHJldHVybiA5IGV2ZW4gaWYgc2l6ZW9mIGlzIDEyKS4gIEkgY2FuIHNlZSBhcmd1bWVu dHMgZm9yIA0KPiBib3RoLg0KDQpDdXJyZW50bHksIEdDQ+KAmXMgX19idWlsdGluX29iamVjdF9z aXplIHVzZSB0aGUgZm9sbG93aW5nIGZvcm11bGEgdG8gY29tcHV0ZSB0aGUgb2JqZWN0IHNpemUg Zm9yDQpUaGUgc3RydWN0dXJlIHdpdGggRkFNOg0KDQpvZmZzZXQoc3RydWN0IGZvb19mbGV4LCB0 WzBdKSArIE4gKiBzaXplb2YoZm9vLT50KTsNCg0KSSB0aGluayBpdOKAmXMgY29ycmVjdC4gDQoN CkkgdGhpbmsgdGhhdCB0aGUgdXNlcnMgbWlnaHQgbmVlZCB0byB1c2UgdGhpcyBmb3JtdWxhIHRv IGNvbXB1dGUgdGhlIGFsbG9jYXRpb24gc2l6ZSBmb3IgYSBzdHJ1Y3R1cmUgd2l0aCBGQU0gdG9v Lg0KDQpRaW5nDQoNCj4gDQo+IA0KPiBDaWFvLA0KPiBNaWNoYWVsLg0KDQo=