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 1CB493858D1E for ; Mon, 26 Jun 2023 19:05:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1CB493858D1E 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 35QIUGD9018106; Mon, 26 Jun 2023 19:05:47 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=7l2/eQRsPehSjwF2VswJAt9M9pFhcEDTWr+RPRzCg5M=; b=tgMYqBbUqEfmEUZeb8W6FY3XLRe3DpvK6UcZdu3Akat0R39yBFQ/d8ndWRclBFIvYHcU dQfsNi8VcEgvaBcO+sJaJfLpmGyG8mwWa+OuSY7k3Hafau0a0+C5kvlNNrsgm8rVvyTC DO6+aY8dYIWDoHgvPpv2UQR+Oveiv+FG1n2THSMxnGh/KJWFFHz5GMJmCl1tcaygPyrI 5FhP1QDCuaqerojVFxOIpIGn5zRN/1bPsyUtdCpDGQyL+OvBhuSWQg90MtaI/m+4pehf yw24twbL/JJDy4ZZbMeBElacMAYbiTUsB+PJ7ungcwR8YI0nKKlIoJAAsE/qE/BEh71o 0w== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rdrhckgch-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 26 Jun 2023 19:05:46 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35QItNOG033878; Mon, 26 Jun 2023 19:05:46 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3rdpx98ygg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 26 Jun 2023 19:05:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oaAGibI5qoJ9znAjQDxuvQYFTR42q0DXNxXN91ZzyMFjJMH949VcwC4W9LianmYHIwm9CGnovjZE4iH/6KLg2fUzQEmUpzkFo9iWAFQVOeZClAshSXGJMU+mTAou8ey2INNTTOvSXmwgISVsWNa1rNtRp/FXoN0FA9FFi7jRHmI9xbDkEnJoAuM8iakB1doPXddXOvtQlXvQT8HvQaThOIz53X4tUO8vQNLYM3KMku8JU8Y+eueXfVGoI8zt88nz1deTC8w83ov/Hvq3Hr0aq4qOPENFfIXcFDlMLMZW/SrdrtSw73qPkQjkkoQFRYgWNPcgog0grGfBhjmZuc/RFQ== 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=7l2/eQRsPehSjwF2VswJAt9M9pFhcEDTWr+RPRzCg5M=; b=epA61bC6FIOOXaAhgUSOD3/KLUuiznfGKPV3CYVoP/MWePm6DHBsSiJBoHqXtu0sw3KJwGc4KRi6XewDkUKO3p85jTbb1fKnn0WMsTxUGxKATH2B5Zny+Cnwnwm2RpXp/RukC7V4qAlKEN1ny6QRzKXixpbPcXKJqIN9kEtCwQkOfTQkpzlGIkFw1Tw+DVfbxHmYvzy/sfvyw/DcInA27bafgrUCAlTBGXK7cGlNIbCyeF5F+Hy7/vK+worTGU/t07vGi1NI/to+2uf5+nYjk+nHCgIpFZaoMY24nAnR3wsezTDT1+w8H51JCaf0LrHYW06/XBMvog1LvjxndTKXrg== 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=7l2/eQRsPehSjwF2VswJAt9M9pFhcEDTWr+RPRzCg5M=; b=ZjNoye8tIqvDGPAeNs5+5EFyoS3agVWwxUNMPOgu+k074Tr4OyKAML5bbUAKEIUUETvbwSuptywq/WSTbXnWFCB5k78UK747z+Nc5dpWYuvpiN1TsH83yyU1r0Iren+D87BbLzfzeLOp+BI/o8LmjPXUVbf1+Dxuqv6WgHcc07A= Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by PH7PR10MB6284.namprd10.prod.outlook.com (2603:10b6:510:1aa::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6521.26; Mon, 26 Jun 2023 19:05:42 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8d90:607a:f94c:5323]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::8d90:607a:f94c:5323%3]) with mapi id 15.20.6521.026; Mon, 26 Jun 2023 19:05:42 +0000 From: Qing Zhao To: Alexandre Oliva CC: Qing Zhao via Gcc-patches , Joseph Myers Subject: Re: [PATCH] Introduce hardbool attribute for C Thread-Topic: [PATCH] Introduce hardbool attribute for C Thread-Index: AQHZoBSFsszJUlXTREeC8C9fnLFx8K+VcfMAgACydk+AAtIeAIAAU2q4gAQ4TIA= Date: Mon, 26 Jun 2023 19:05:42 +0000 Message-ID: <6BED3980-B5DF-4605-A6FA-390B241AB37A@oracle.com> References: 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: CH2PR10MB4344:EE_|PH7PR10MB6284:EE_ x-ms-office365-filtering-correlation-id: c2061876-74e7-4249-11aa-08db767856da x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KjenqFp5LktVr/xFOmfBLoTkQSXubidz1sn9y0YqxAMiwabFHHQDgmuOUtgNy0fbzLQhVvfHsVrctJHnTbEqcGBi0pTccZEsKezPVtsyy3Tc+/SrHdQ5ge7AQ8Zj+OifWcJhCxHK8MSamJXXy64zXTemFWoKxzMrFj83djMZ80hxEKZzTCe/0V+f3MnoHsNiWkl6mtm7ekTXhrbL6ZcJ/M/K/F1J6xYlGNfEvhLz/N18hVETuRLmqsFwfaz/F/7+mXKtotbW3ygd8NeVZsJ95rIQhiTWQLtnrGHi5U55iHlercUfkKRPjC/tHgL0+i9zqScdYm9YRKONfw/rGpnWsVT/Sb4DdjMBWZQooBm2zbS4hn3l2S3WOV73AOjI+8+Kg+Ruhs/j67CZkqtuOpqIbWTGaRSHHh8fiGTTlFAZDI1qixZ7HEuml8K1/6pLB2bEcSZUkzKUifN/QQObORdgSjLg26FOS2b3hmFLxWu/O8B1NCc6Fx9yPMEinoHYi6yntaSZKLuRfx4PDIiaDqf2+9Hp6Yqd4asXt0vA0sn1bJqrPpNKG1oiX14J3cqpC1Y8c/Af7HqaiTN7XKda9XQAeZW3zfLxe3vugBytZIGBtRO1S9RVzUXu1B9AvPkHyeLeZiAsfilFoKUIMpF0MCX6Zb4gKrPEpvFzgGw05VLrJWw= 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)(366004)(39860400002)(376002)(136003)(396003)(346002)(451199021)(2906002)(186003)(71200400001)(6486002)(122000001)(38100700002)(2616005)(83380400001)(6512007)(6506007)(26005)(53546011)(966005)(41300700001)(54906003)(38070700005)(86362001)(478600001)(316002)(36756003)(66556008)(66446008)(4326008)(66946007)(91956017)(6916009)(33656002)(64756008)(66476007)(76116006)(44832011)(5660300002)(8676002)(8936002)(2004002)(45980500001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bysrSmk5OWlzbnBiRnU1cDI4MXRrZWV2VHNVOWc0MGxld25qSHVxTHRqUWNo?= =?utf-8?B?eXM1SWFFeWR4dHJQa3U3UnFZZ3gyRWgrV1VFVVBFVWhyN3poTjlqQWdBK2Zm?= =?utf-8?B?azAxQk1ZZ1lZVTNIMGFicnF3cTQ1dmpqcTBrNVJ5NUdaRldBN3pzdDhsRUhz?= =?utf-8?B?QUcxZ0crRUVlNlp2a1E2MkU4ZkdLU295dzRTTnRrT3VncDNZVTllVFVuTysw?= =?utf-8?B?eVVEVTVSYXczNXV3YjVKcC9zS3A3cmdXOXVqUFZNVUZNZkVBL1ltTHM3VDRl?= =?utf-8?B?NGhaVHZOR2ZpZnZCT0pFNWRmaTZMOG9zbUhEbFRjNlkxZnBBR1JsOWNhWVNw?= =?utf-8?B?NU8wTHJtN0R1WUpTNmp1cXRxUDZBVHpvUzBGM21ndGVaZ3J0Rm5qVXNIbUpG?= =?utf-8?B?cVFRRzA3cWtEQ1dnVjVVUTdVd0tmVEU1WWkyTXFzd0plaGlGNU1zRmZ0TnUz?= =?utf-8?B?QXVzR3kxYlBLL3M1eEVXNHhQZ1BwUzkyYnJhNXhvMXpENERqeTlrNWEwSXhp?= =?utf-8?B?TjB6V3JUWE9yRmdBZTZwaCttelp6Vzg0UCtxV2EyVzBtaXQvcnMvZytpZVcw?= =?utf-8?B?QU5seG1xaUJJT0dIVVY0SUR0eDU0WDJrcVl4bmtreTdKYW15OEN6VmtjSk9p?= =?utf-8?B?L2lnMmlaODYrUVNIZ2h2UHg1RDYzdmdPaTRtbXd6dFlFNkRUdnBaWHpqRmRM?= =?utf-8?B?S0x3Q2JOdndDdUZrSGwyWXhucFZrQVNIandYUEtJaEZXQ1Z3a3RjUmx2dC9s?= =?utf-8?B?QURtZEpyeklTWFFFbnJzUzV1aVBCOW9FcnF6VVBkWW4wVGtaS2p2ZHRzWW1T?= =?utf-8?B?dzZjQXlLeTNMclRqN1pzczJFZzJwOEp4K3YwZEdnelN0U3lNYXJ4SEZCL0ZZ?= =?utf-8?B?eDdzMmFXQVFVRytxdGc1NFBpZkFRL1c2cSsrVlNNNTZVcExxZS9tU3Y5eUov?= =?utf-8?B?Nms2YTVzSEN6d242SW9xVGRyVFFqWDIyOGRWaXZ4cU5UaXQ2OGNCTk5DUW1S?= =?utf-8?B?VytESVJqWmhUVjh2anY2dlpncHFzMWhURFRUalF0aDlpSDl3WVZxWVF6eHpQ?= =?utf-8?B?c1Y4ZTFsT3NBSy9BaUw1dlo0YVExZWdZV1FibDNqOUhUYkJEdmd4dGpwTlYr?= =?utf-8?B?WFI3NC8xRkkwb09odXoycG1aYktPMERweWpxUU1xeEtha3lEQmdHVE9MOWdH?= =?utf-8?B?YUVwYTZEbU1IWWtOeE5uaEk4ZWVTRWpyeVhkMkM5RWY4dWMvUUlQOXRMWW5Z?= =?utf-8?B?NmtTbzdidjliY3NsVzNzNmNtZnRwOE5tYkI1MnZPaGRoYzFoVWJlMGNaaTBk?= =?utf-8?B?aTJNUExhdnpJbXVvTGVYMXNSZjMwWUN5VURSSVlIOXNQelEwaS9tTlVnRlRK?= =?utf-8?B?MFpiMTdrK25OWXhyOTJnczIzbjZ4RVk0QTMyQmVCUEJpaTNMcXR4Y3NaSXNP?= =?utf-8?B?OE5zTk9od2llZkVTUEFvMzdBMUE3U0dVTndUb1JVYkdRSlhPb2pxNFVGTTNR?= =?utf-8?B?VEdSbW5uZVA1R1R2eE1XVTZyMjl0OW5LZVFERWQvKzN6RFVvQUJxQlBkMHR1?= =?utf-8?B?R01haUtlSEVxckhwaTl5bEY0alVYTjRPejlFMVBPYm5ZYlpnVjhNeXZvWFRn?= =?utf-8?B?UDFBbFNjYzJ2cVp5a1NWM00xMnJod2xYSGdRWExQV1dYSk1mM3JtdzVOUUtn?= =?utf-8?B?RVBwcklkN1JpS1NrKzNSZ0tnZlkvZkxIT0cxMCtJOU0vN050WGplcVdyamlZ?= =?utf-8?B?VnFJRW5qNTVTVDViWStTMk5lRGNneGRNS2h5LzdjOWMwVjRWQVhqbUVlWXlS?= =?utf-8?B?ZjBtTWRlOGoyOHhmd3R2R2hmTWFoSmNLOUtBazluQkpBeGloZ1hXLzZzRm9G?= =?utf-8?B?WFB5RUQ1enMrMmFsbEFpUVZDRDd3TUN5KzVOemFhRG1veVBLQ2RvVG84cWN1?= =?utf-8?B?UVJqcThaWEdiWE9lcU9INnplYkRmL2hjbjZDbm94OUcrU1lVRHJ1Z0RyeWtM?= =?utf-8?B?R0QxN25ObnFSa0tYNTUwLzNMQ1lSWXcyRW9CRXZnZFUxNVRPMGoydlUyZEVh?= =?utf-8?B?SzgxMG1nZmhQQ204YTFNeW9DQi9Va0k0cCtZQkV4NXhrQUw2ZmtKdzdQQ09m?= =?utf-8?Q?RUbh6l733MavRm9sQgK8/LkEo?= Content-Type: text/plain; charset="utf-8" Content-ID: <4EAABDB65D82B14DB3008C07E45A3022@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: KllKvH8L4ftEHDrCj8IpZCQNltSAuc8bG+ZrgXHGil9nDJpBkDJ7VLcbOHssfUc5uJz7qkCigWLAUr+73JMYY+Z1ZKvOHpas/wvtPX5AB2wdVG4nX00zvdNbYkueIuLPbX6ZLQcCwXzk8/SURN8iofFnkDLGivMwJot4vDKuWncJbB1awmKCdQpQElko3UiJbMxuE+FYoiWp0VwWqbjvYBqvN4z8GNqETYQk2VOPvHzeNPKbEsx1RX5U4hWcZxfNZrps2zWK3vr+WplC//jjAnuvyJmHnT8JkDhPNpOVVmnj6eJk/bOs1koNbjk3aQxZY0XmOkZz74S00hoTQ8TtDi5n7qFxdokBQHAC+s8xnDXc9flByuE4Lho9vvG8il97o6vCVTNZ8KNDS4478qdIwUpaDyLQqyyePdBGWr5fGfOJH+0+rokSi/kCmjnfVj8d3q9er659CdGffGbLmfKIYTn1jh1zucVrESYDmgWmOuAN++p/+U3MqVVWic72Rbh6eLrcZd01BMct38vyEUD2InFNwWL2g9kWvSiigbuocXAqPMCqAIngApOq3uMNacYlw03wJeVMRuzVCLb4zmw56+irWgks1ynWPjtD0GDnwtl9lw0Se1GMJ02mC0YdfCSbyLV34LqhzOhSLkqW980qqGMybhXi7WKEpJSbZE/LP5nKq6S7HsnElxQJf7HETJQ9OYsX979p0JEc76DjU6y549GgDmKNElLtgl537diOfGBxvApGSJDMsXfv8gthGZl9Gw7hTrDdsCtpsH0JzFI5v/Nsdvy/CKlgwXbjfCADy54mX2Y1RAQ3cMqgH6rQCEjf0dLEq+ZrApF/+zem2L1ykw== 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: c2061876-74e7-4249-11aa-08db767856da X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Jun 2023 19:05:42.7603 (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: ynAcPCav9iBYpJSaNfviHTduiB99KngpTtdh/chXxw4wgW+rOYNvf4BRsSco+HlGjzVUdiVxhPFOTP9NUfirWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB6284 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-06-26_16,2023-06-26_03,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 adultscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306260176 X-Proofpoint-GUID: Y95gXyRkQPWGwHHddLgLvoN_qq_htseO X-Proofpoint-ORIG-GUID: Y95gXyRkQPWGwHHddLgLvoN_qq_htseO X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,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: SGksIEFsZXhhbmRyZSwNCg0KPiBPbiBKdW4gMjMsIDIwMjMsIGF0IDEwOjM4IFBNLCBBbGV4YW5k cmUgT2xpdmEgPG9saXZhQGFkYWNvcmUuY29tPiB3cm90ZToNCj4gDQo+PiBGb3Igbm9ybWFsIEJv b2xlYW4gdmFyaWFibGVzLCAweDAwIGlzIGZhbHNlLCB0aGlzIGlzIGEgcmVhc29uYWJsZSBpbml0 DQo+PiB2YWx1ZSB3aXRoIHplcm8taW5pdGlhbGl6YXRpb24uDQo+IA0KPiAqbm9kKi4gIEkgd2Fz IHN1cnByaXNlZCBieSB6ZXJvIGluaXRpYWxpemF0aW9uIG9mIChub24taGFyZGVuZWQpDQo+IGJv b2xlYW5zIGV2ZW4gd2hlbiBwYXR0ZXJuIGlzIHJlcXVlc3RlZCwgYnV0IG5vdCBjb25zaXN0ZW50 bHkNCj4gKGUuZy4gYm9vbGVhbiBmaWVsZHMgb2YgYSBsYXJnZXIgc3RydWN0IHdvdWxkIHN0aWxs IGdldA0KPiBwYXR0ZXJuLWluaXRpYWxpemVkIElJVUMpLiAgSSdkIGhhdmUgZXhwZWN0ZWQgcGF0 dGVybiB3b3VsZCB0cmFuc2xhdGUgdG8NCj4gbm9uemVybyBhbmQgdGh1cyB0byB0cnVlLCByYXRo ZXIgdGhhbiBmYWxzZS4NCg0KU3VjaCBpbmNvbnNpc3RlbnQgYmVoYXZpb3Igd2FzIGludHJvZHVj ZWQgYnkgdGhlIGZvbGxvd2luZyBjb21taXQ6DQoNCkZyb20gYzA4MWQwYTNiMDI5MTI5N2YwNGEw NWM4MzNkMmZmYThkZTNhN2ExYSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENClN1YmplY3Q6IFtQ QVRDSF0gbWlkZGxlLWVuZC8xMDMwMzMgLSBkcm9wIG5hdGl2ZV9pbnRlcnByZXRfZXhwciB3aXRo DQogLkRFRkVSUkVEX0lOSVQgZXhwYW5zaW9uDQoNCj4gDQo+PiBGb3IgaGFyZGJvb2wgdmFyaWFi bGVzLCB3aGF0IDB4MDAgcmVwcmVzZW50cyBpZiBpdOKAmXMgbm90IGZhbHNlIG9yIHRydWUNCj4+ IHZhbHVlPw0KPiANCj4gSXQgZGVwZW5kcyBvbiBob3cgaGFyZGJvb2wgaXMgcGFyYW1ldGVyaXpl ZC4gIE9uZSBtYXkgcGljayAweDAwIG9yIDB4RkUNCj4gYXMgdGhlIHJlcHJlc2VudGF0aW9ucyBm b3IgdHJ1ZSBvciBmYWxzZSwgb3IgbmVpdGhlciwgaW4gd2hpY2ggY2FzZSB0aGUNCj4gdHJpdmlh bCBpbml0aWFsaXplciB3aWxsIGVuZCB1cCBhcyBhIHRyYXBwaW5nIHZhbHVlLg0KDQpPa2F5LCB0 aGVuLCB0aGlzIGxvb2tzIGxpa2UgYSAgZ29vZCBiZWhhdmlvciAodHJhcHBpbmcgd2l0aCAtZnRy aXZhbC1hdXRvLXZhci1pbml0ICBtb3N0IG9mIHRoZSB0aW1lLA0KIGkuZSwgd2hlbiBuZWl0aGVy IDB4MDAgb3IgMHhGRSB3YXMgY2hvc2VuIGFzIHRoZSByZXByZXNlbnRhdGlvbnMgZm9yIHRydWUg b3IgZmFsc2UpLCANCml0IHdpbGwgdXJnZSB0aGUgdXNlciB0byBmaXggdGhlIHVuaW5pdGlhbGl6 ZWQgaGFyZGJvb2wgdmFyaWFibGVzLg0KRG8gSSBtaXNzIGFueXRoaW5nIGhlcmU/DQo+IA0KPj4+ IEknZCBwcm9iYWJseSBoYXZlIGFycmFuZ2VkIGZvciB0aGUgZnJvbnQtZW5kIHRvIGNyZWF0ZSB0 aGUgaW5pdGlhbGl6ZXINCj4+PiB2YWx1ZSwgYmVjYXVzZSBleHBhbnNpb24gdGltZSBpcyB0b28g bGF0ZSB0byBmaWd1cmUgaXQgb3V0OiB3ZSBtYXkgbm90DQo+Pj4gZXZlbiBoYXZlIHRoZSBmcm9u dC1lbmQgYXQgaGFuZCBhbnkgbW9yZSwgaW4gY2FzZSBvZiBsdG8gY29tcGlsYXRpb24uDQo+IA0K Pj4gSXMgdGhlIGhhcmRib29sIGF0dHJpYnV0ZSBpbmZvcm1hdGlvbiBhdmFpbGFibGUgZHVyaW5n IHRoZSBydGwgZXhwYW5zaW9uIHBoYXNlPw0KPiANCj4gSXQgaXMgaW4gdGhlIHNlbnNlIHRoYXQg dGhlIGF0dHJpYnV0ZSBsaXZlcyBvbiwgYnV0IGNfaGFyZGJvb2xfdHlwZV9hdHRyDQo+IGlzIGEg ZnJvbnRlbmQgZnVuY3Rpb24sIGl0IGNhbm5vdCBiZSBjYWxsZWQgZnJvbSBlLmcuIGx0bzEuDQpk b2VzIGxvb2t1cF9hdHRyaWJ1dGUgd29yayBmb3IgdGhpcyBhdHRyaWJ1dGUgZHVyaW5nIHJ0bCBl eHBhbnNpb24/IChTdGlsbCBhIGxpdHRsZSBjb25mdXNpbmcgaGVyZSkNCj4gDQo+IFRoZSBoYXJk Ym9vbCBhdHRyaWJ1dGUgaXMgYWxzbyBpbXBsZW1lbnRlZCBpbiBBZGEsIGJ1dCB0aGVyZSBpdCBv bmx5DQo+IGFmZmVjdHMgdmFsaWRpdHkgY2hlY2tpbmcgaW4gdGhlIGZyb250IGVuZDogQm9vbGVh biB0eXBlcyBpbiBBZGEgYXJlDQo+IEVudW1lcmF0aW9uIHR5cGVzLCBhbmQgdGhlcmUgaXMgc3Rh bmRhcmQgc3ludGF4IHRvIHNwZWNpZnkgdGhlDQo+IHJlcHJlc2VudGF0aW9ucyBmb3IgdHJ1ZSBh bmQgZmFsc2UuICBBRkFJQ1QsIG9uY2Ugd2UgdHJhbnNsYXRlIEdOQVQgSVINCj4gdG8gR05VIElS LCBoYXJkZW5lZCBib29sZWFucyB3b3VsZCBub3QgYmUgcmVjb2duaXphYmxlIGFzIGJvb2xlYW4g dHlwZXMuDQo+IEV2ZW4gbm9uLWhhcmRlbmVkIGJvb2xlYW5zIHdpdGggcmVwcmVzZW50YXRpb24g Y2xhdXNlcyB3b3VsZC4NCg0KU28sIHJpZ2h0IG5vdywgdGhlIEdOVSBJUiByZXByZXNlbnRzIEFk YeKAmXMgYm9vbGVhbiB0eXBlIGFzIGVudW1lcmF0aW9uIHR5cGU/IA0KDQo+ICBTbw0KPiBoYW5k bGluZyB0aGVzZSBkaWZmZXJlbnRseSBmcm9tIG90aGVyIGVudW1lcmF0aW9uIHR5cGVzLCB0byBt YWtlIHRoZW0NCj4gY2xvc2VyIHRvIGJvb2xlYW5zLCB3b3VsZCBiZSBhIGJpdCBvZiBhIGNoYWxs ZW5nZSwNCg0KaXMgdGhlcmUgYW55IHNwZWNpYWwgaGFuZGxpbmcgaW4gR05VIElSIHdoZW4gcmVw cmVzZW50aW5nIEFkYeKAmXMgYm9vbGVhbiB0eXBlIGFzIGVudW1lcmF0aW9uIHR5cGU/DQpBbnkg aXNzdWUgcmlnaHQgbm93Pw0KDQo+IGFuZCBhDQo+IGJhY2t3YXJkcy1jb21wYXRpYmlsaXR5IGlz c3VlIChiZWNhdXNlIHN1Y2ggYm9vbGVhbnMgaGF2ZSBhbHJlYWR5IGJlZW4NCj4gaGFuZGxlZCBp biB0aGUgcHJlc2VudCB3YXkgc2luY2UgdGhlIGludHJvZHVjdGlvbiBvZiAtZnRyaXZpYWwtKiBi YWNrIGluDQo+IEdDQzEyKQ0KDQpXaXRoIHRoZSBuZXcgaGFyZGJvb2wgYXR0cmlidXRlIGFkZGVk IGZvciBDLCBhbiBvcmlnaW5hbCBib29sIHR5cGUgYmVjb21lcyBhbiBlbnVtZXJhdGlvbiB0eXBl IGxvZ2ljYWxseSwgDQpCdXQgc3VjaCBpbmZvcm1hdGlvbiBpcyBub3QgcGFzc2VkIHRvIG1pZGRs ZSBlbmQgdGhyb3VnaCBHTlUgSVIsIFNvLCBpbiBHQ0MgbWlkZGxlLWVuZCwgDQpXZSBzdGlsbCB0 cmVhdCBzdWNoIHR5cGUgYXMgYm9vbGVhbiwgbm90IGFuIGVudW1lcmF0aW9uIHR5cGUuDQpJcyB0 aGlzIHVuZGVyc3RhbmRpbmcgY29ycmVjdD8NCg0KPiANCj4+PiBOb3csIEkgYWNrbm93bGVkZ2Ug dGhhdCB0aGUgZGVjaXNpb24gdG8gbWFrZSBpbXBsaWNpdA0KPj4+IHplcm8taW5pdGlhbGl6YXRp b24gb2YgYm9vbGVhbiB0eXBlcyBzZXQgdGhlbSB0byB0aGUgdmFsdWUgZm9yIGZhbHNlLA0KPj4+ IHJhdGhlciB0aGFuIHRvIGFsbC1iaXRzLXplcm8gcmVwcmVzZW50YXRpb24sIGlzIGEgZGVwYXJ0 dXJlIGZyb20gY29tbW9uDQo+Pj4gcHJhY3RpY2Ugb2YgemVyby1pbml0aWFsaXphdGlvbiB5aWVs ZGluZyBsb2dpY2FsIHplcm8uDQo+IA0KPj4gRG9udOKAmXMgcXVpdGUgdW5kZXJzdGFuZCB0aGUg YWJvdmUsIGZvciBub3JtYWwgYm9vbGVhbiB2YXJpYWJsZXMsDQo+IA0KPiBTb3JyeSwgSSBtZWFu dCBoYXJkZW5lZCBib29sZWFuIHR5cGVzLiAgVGhpcyB3YXMgV1JUIHRvIHRoZSBkZXNpZ24NCj4g ZGVjaXNpb24gdGhhdCBsZWQgdG8gdGhpcyBiaXQgaW4gdGhlIGRvY3VtZW50YXRpb246DQo+IA0K PiB0eXBlZGVmIGNoYXIgX19hdHRyaWJ1dGVfXyAoKF9faGFyZGJvb2xfXyAoMHg1YSkpKSBoYm9v bDsNCj4gWy4uLl0NCj4gc3RhdGljIGhib29sIHplcm9pbml0OyAvKiBGYWxzZSwgc3RvcmVkIGFz IChjaGFyKTB4NWEuICAqLw0KPiBhdXRvIGhib29sIHVuaW5pdDsgICAgIC8qIFVuZGVmaW5lZCwg bWF5IHRyYXAuICAqLw0KRm9yIHRoZSBoYXJkYm9vbCB2YXJpYWJsZSAidW5pbml0IiwgIC1mdHJp dmlhbC1hdXRvLXZhci1pbml0PXplcm8gd2lsbCBpbml0aWFsaXplIGl0IHRvIHplcm8sIGFuZCBp dCB3aWxsIHRyYXAgZHVyaW5nIHJ1bnRpbWUuDQpBbmQgYXQgdGhlIHNhbWUgdGltZSwgLWZ0cml2 aWFsLWF1dG8tdmFyLWluaXQ9cGF0dGVybiB3aWxsIGluaXRpYWxpemUgaXQgdG8gMHhmZSwgYW5k IGl0IHdpbGwgdHJhcCBkdXJpbmcgcnVudGltZSwgdG9vLg0KDQpJIHRoaW5rIHRoZXNlIGFyZSBn b29kIGJlaGF2aW9ycywganVzdCBuZWVkIHRvIGJlIGRvY3VtZW50ZWQuIA0KPiANCj4+IEFuZCB0 aGlzIGlzIGEgdmVyeSByZWFzb25hYmxlIGluaXRpYWwgdmFsdWUgZm9yIEJvb2xlYW4gdmFyaWFi bGVzLA0KPiANCj4gQWdyZWVkLiAgVGhlIGFsbC16ZXJvcyBiaXQgcGF0dGVybiBpcyBub3Qgc28g Z3JlYXQgZm9yIGJvb2xlYW5zIHRoYXQgdXNlDQo+IGFsdGVybmF0ZSByZXByZXNlbnRhdGlvbnMs IHRob3VnaCwgc3VjaCBhcyB0aGUgZm9sbG93aW5nIHN0YW5kYXJkIEFkYToNCj4gDQo+ICAgdHlw ZSBNeUJvb2wgaXMgbmV3IEJvb2xlYW47DQo+ICAgZm9yIE15Qm9vbCB1c2UgKDE2IzVhIywgMTYj YTUjKTsNCj4gICBmb3IgTXlCb29sJ1NpemUgdXNlIDg7DQo+IA0KPiBvciBmb3IgYmlhc2VkIHZh cmlhYmxlcyBzdWNoIGFzOg0KPiANCj4gIFggOiBJbnRlZ2VyIHJhbmdlIDI1NCAuLiA1MDc7DQo+ ICBmb3IgWCdTaXplIHVzZSA4OyAtLSBiaXRzLCBzbyBhIGJpYXNlZCByZXByZXNlbnRhdGlvbiBp cyByZXF1aXJlZC4NCj4gDQo+IEp1c3QgdG8gbWFrZSB0aGluZ3MgbW9yZSBpbnRlcmVzdGluZywg SSBjaG9zZSBhIHJhbmdlIGZvciBYIHRoYXQgY2F1c2VzDQo+IHRoZSBjb21waWxlciB0byByZXBy ZXNlbnQgMHhmZSBhcyAweDAwIGluIGluIHRoZSBieXRlIHRoYXQgaG9sZHMgWCwgYnV0DQo+IHRo YXQgcGxhY2VzIHRoZSAweGZlIHBhdHRlcm4ganVzdCBvdXQgb2YgdGhlIHJhbmdlIDotKSBTbyB3 aXRoDQo+IC1mdHJpdmlhbC1hdXRvLXZhci1pbml0PXplcm8sIFggPSAyNTQsIHdoZXJlYXMgd2l0 aA0KPiAtZnRyaXZpYWwtYXV0by12YXItaW5pdD1wYXR0ZXJuLCBpdCBmYWlscyB2YWxpZGl0eSBj aGVja2luZywgYW5kIG1pZ2h0DQo+IGNvbWUgb3V0IGFzIDUwOCBpZiB0aGF0J3MgZGlzYWJsZWQu DQoNCiBmb3IgdGhlIGJpYXNlZCB2YXJpYWJsZSBYLCAgaXQgd2FzIGluaXRpYWxpemVkIHRvIDI1 NCAodGhlIHNtYWxsZXN0IHZhbGlkIHZhbHVlIGluIHRoZSByYW5nZSkgd2hlbiAtZnRyaXZpYWwt YXV0by12YXItaW5pdD16ZXJvLCBhbmQNCmZhaWxzIHZhbGlkaXR5IGNoZWNraW5nIHdoZW4gLWZ0 cml2aWFsLWF1dG8tdmFyLWluaXQ9cGF0dGVybiwgYm90aCBhcmUgR09PRCBhbmQgcmVhc29uYWJs ZSBiZWhhdmlvcnMgd2l0aCAtZnRyaXZpYWwtYXV0by12YXItaW5pdC4gDQo+IA0KPj4gRnJvbSBt eSB1bmRlcnN0YW5kaW5nLCBvbmx5IHdpdGggdGhlIGludHJvZHVjdGlvbiBvZiDigJxoYXJkYm9v bOKAnQ0KPj4gYXR0cmlidXRlLCBhbGwtYml0cy16ZXJvIHdpbGwgbm90IGJlIGVxdWFsIHRvIHRo ZQ0KPj4gbG9naWNhbCBmYWxzZSBhbnltb3JlLiANCj4gDQo+IEFkYSBib29sZWFucyBoYXZlIGxv bmcgYWxsb3dlZCBub256ZXJvIHJlcHJlc2VudGF0aW9ucyBmb3IgZmFsc2UuDQoNCk9rYXksIEkg c2VlLiANCj4gDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2RvYy9leHRlbmQudGV4aSBiL2djYy9k b2MvZXh0ZW5kLnRleGkNCj4gaW5kZXggNzcyMjA5YzE3OTNlOC4uYWU3ODY3YmIzNTY5NiAxMDA2 NDQNCj4gLS0tIGEvZ2NjL2RvYy9leHRlbmQudGV4aQ0KPiArKysgYi9nY2MvZG9jL2V4dGVuZC50 ZXhpDQo+IEBAIC04Nzc0LDYgKzg3NzQsMTIgQEAgb24gdGhlIGJpdHMgaGVsZCBpbiB0aGUgc3Rv cmFnZSAocmUpdXNlZCBmb3IgdGhlIHZhcmlhYmxlLCBpZiBhbnksIGFuZA0KPiBvbiBvcHRpbWl6 YXRpb25zIHRoZSBjb21waWxlciBtYXkgcGVyZm9ybSBvbiB0aGUgZ3JvdW5kcyB0aGF0IHVzaW5n DQo+IHVuaW5pdGlhbGl6ZWQgdmFsdWVzIGludm9rZXMgdW5kZWZpbmVkIGJlaGF2aW9yLg0KPiAN Cj4gK1VzZXJzIG9mIEBvcHRpb257LWZ0cml2aWFsLWF1dG8tdmFyLWluaXR9IHNob3VsZCBiZSBh d2FyZSB0aGF0IHRoZSBiaXQNCj4gK3BhdHRlcm5zIHVzZWQgYXMgaXRzIHRyaXZpYWwgaW5pdGlh bGl6ZXJzIGFyZSBAZW1waHtub3R9IGNvbnZlcnRlZCB0bw0KPiArQGNvZGV7aGFyZGJvb2x9IHR5 cGVzLCBzbyB1c2luZyB2YXJpYWJsZXMgaW1wbGljaXRseSBpbml0aWFsaXplZCBieSBpdA0KPiAr bWF5IHRyYXAgaWYgdGhlIHJlcHJlc2VudGF0aW9ucyB2YWx1ZXMgY2hvc2VuIGZvciBAY29kZXtm YWxzZX0gYW5kDQo+ICtAY29kZXt0cnVlfSBkbyBub3QgbWF0Y2ggdGhlIGluaXRpYWxpemVyLg0K DQpIb3cgYWJvdXQgdGhlIGZvbGxvd2luZzoNCg0KPiArVXNlcnMgb2YgdGhlIEBvcHRpb257LWZ0 cml2aWFsLWF1dG8tdmFyLWluaXR9IHNob3VsZCBiZSBhd2FyZSB0aGF0IHRoZSBiaXQNCj4gK3Bh dHRlcm5zIHVzZWQgYXMgaW5pdGlhbGl6ZXJzIGFyZSBAZW1waHtub3R9IGNvbnZlcnRlZCB0bw0K PiArQGNvZGV7aGFyZGJvb2x9IHR5cGVzLCBzbyB1c2luZyBhIEBjb2Rle2hhcmRib29sfSB2YXJp YWJsZSAgdGhhdCBpcyBpbXBsaWNpdGx5IGluaXRpYWxpemVkDQo+ICtieSAgdGhlIEBvcHRpb257 LWZ0cml2aWFsLWF1dG8tdmFyLWluaXR9IG1heSB0cmFwIGlmIHRoZSByZXByZXNlbnRhdGlvbnMg dmFsdWVzDQo+ICtjaG9zZW4gZm9yIEBjb2Rle2ZhbHNlfSBhbmQgQGNvZGV7dHJ1ZX0gZG8gbm90 IG1hdGNoIHRoZSBpbml0aWFsaXplci4NCj4gKw0KPiANCg0KDQo+IEBjaW5kZXggQGNvZGV7bWF5 X2FsaWFzfSB0eXBlIGF0dHJpYnV0ZQ0KPiBAaXRlbSBtYXlfYWxpYXMNCj4gZGlmZiAtLWdpdCBh L2djYy9kb2MvaW52b2tlLnRleGkgYi9nY2MvZG9jL2ludm9rZS50ZXhpDQo+IGluZGV4IDI5NmE5 YzE3OGIxOTUuLmUyMWY0NjhhOWM4ZjMgMTAwNjQ0DQo+IC0tLSBhL2djYy9kb2MvaW52b2tlLnRl eGkNCj4gKysrIGIvZ2NjL2RvYy9pbnZva2UudGV4aQ0KPiBAQCAtMTM1MTAsNiArMTM1MTAsMjMg QEAgVGhlIHZhbHVlcyB1c2VkIGZvciBwYXR0ZXJuIGluaXRpYWxpemF0aW9uIG1pZ2h0IGJlIGNo YW5nZWQgaW4gdGhlIGZ1dHVyZS4NCj4gDQo+IFRoZSBkZWZhdWx0IGlzIEBzYW1we3VuaW5pdGlh bGl6ZWR9Lg0KPiANCj4gK05vdGUgdGhhdCB0aGUgaW5pdGlhbGl6ZXIgdmFsdWVzLCB3aGV0aGVy IEBzYW1we3plcm99IG9yIEBzYW1we3BhdHRlcm59LA0KPiArcmVmZXIgdG8gZGF0YSByZXByZXNl bnRhdGlvbiAoaW4gbWVtb3J5IG9yIG1hY2hpbmUgcmVnaXN0ZXJzKSwgcmF0aGVyDQo+ICt0aGFu IHRvIHRoZWlyIGludGVycHJldGF0aW9uIGFzIG51bWVyaWNhbCB2YWx1ZXMuICBUaGlzIGRpc3Rp bmN0aW9uIG1heQ0KPiArYmUgaW1wb3J0YW50IGluIGxhbmd1YWdlcyB0aGF0IHN1cHBvcnQgdHlw ZXMgd2l0aCBiaWFzZXMgb3IgaW1wbGljaXQNCj4gK211bHRpcGxpZXJzLCBhbmQgd2l0aCBzdWNo IGV4dGVuc2lvbnMgYXMgQHNhbXB7aGFyZGJvb2x9IChAcHhyZWZ7VHlwZQ0KPiArQXR0cmlidXRl c30pLiAgRm9yIGV4YW1wbGUsIGEgdmFyaWFibGUgdGhhdCB1c2VzIDggYml0cyB0byByZXByZXNl bnQNCj4gKyhiaWFzZWQpIHF1YW50aXRpZXMgaW4gdGhlIEBjb2Rle3JhbmdlIDE2MC4uNDAwfSB3 aWxsIGJlIGluaXRpYWxpemVkDQo+ICt3aXRoIHRoZSBiaXQgcGF0dGVybnMgQGNvZGV7MHgwMH0g b3IgQGNvZGV7MHhGRX0sIGRlcGVuZGluZyBvbg0KPiArQHZhcntjaG9pY2V9LCB3aGV0aGVyIG9y IG5vdCB0aGVzZSByZXByZXNlbnRhdGlvbnMgc3RhbmQgZm9yIHZhbHVlcyBpbg0KPiArdGhhdCBy YW5nZSwgYW5kIGV2ZW4gaWYgdGhleSBkbywgdGhlIGludGVycHJldGF0aW9uIG9mIHRoZSB2YWx1 ZSBoZWxkIGJ5DQo+ICt0aGUgdmFyaWFibGUgd2lsbCBkZXBlbmQgb24gdGhlIGJpYXMuICBBIEBz YW1we2hhcmRib29sfSB2YXJpYWJsZSB0aGF0DQo+ICt1c2VzIHNheSBAY29kZXswWDVBfSBhbmQg QGNvZGV7MHhBNX0gZm9yIEBjb2Rle2ZhbHNlfSBhbmQgQGNvZGV7dHJ1ZX0sDQo+ICtyZXNwZWN0 aXZlbHksIHdpbGwgdHJhcCB3aXRoIGVpdGhlciBAc2FtcHtjaG9pY2V9IG9mIHRyaXZpYWwNCj4g K2luaXRpYWxpemVyLCBpLmUuLCBAc2FtcHt6ZXJvfSBpbml0aWFsaXphdGlvbiB3aWxsIG5vdCBj b252ZXJ0IHRvIHRoZQ0KPiArcmVwcmVzZW50YXRpb24gZm9yIEBjb2Rle2ZhbHNlfSwNCg0KDQo+ IGV2ZW4gaWYgaXQgd291bGQgZm9yIGEgQGNvZGV7c3RhdGljfQ0KPiArdmFyaWFibGUgb2YgdGhl IHNhbWUgdHlwZS4NCg0KQSBsaXR0bGUgY29uZnVzZWQgYWJvdXQgdGhlIGFib3ZlIHNlbnRlbmNl OiBkbyB5b3UgbWVhbiwgaWYgYSBoYXJkYm9vbCB2YXJpYWJsZSBpcyBzdGF0aWMgKG5vdCBhdXRv KSwgdGhlbiB0aGUgaW1wbGljaXQgaW5pdGl6bGF0aW9uIHRvIGl0IGJ5IHRoZSBjb21waWxlciB3 aWxsIGJlIGZhbHNlPyAoQmVjYXVzZSBzdGF0aWMgdmFyaWFibGUgaW5pdGlhbGl6YXRpb24gaXMg ZG9uZSBieSB0aGUgRkUpDQoNCkJ1dCB3aGVuIGEgaGFyZGJvb2wgdmFyaWFibGUgaXMgYXV0bywg dGhlbiB0aGUgaW1wbGljaXQgaW5pdGlhbGl6YXRpb24gdG8gaXQgYnkgdGhlIGNvbXBpbGVyICh3 aXRoIC1mdHJpdmlhbC1hdXRvLXZhci1pbml0KSB3aWxsIG5vdCBiZSBmYWxzZT8NCg0KVGhhbmtz Lg0KDQpRaW5nDQoNCj4gKw0KPiBZb3UgY2FuIGNvbnRyb2wgdGhpcyBiZWhhdmlvciBmb3IgYSBz cGVjaWZpYyB2YXJpYWJsZSBieSB1c2luZyB0aGUgdmFyaWFibGUNCj4gYXR0cmlidXRlIEBjb2Rl e3VuaW5pdGlhbGl6ZWR9IChAcHhyZWZ7VmFyaWFibGUgQXR0cmlidXRlc30pLg0KPiANCj4gDQo+ IA0KPiAtLSANCj4gQWxleGFuZHJlIE9saXZhLCBoYXBweSBoYWNrZXIgICAgICAgICAgICAgICAg aHR0cHM6Ly9GU0ZMQS5vcmcvYmxvZ3MvbHhvLw0KPiAgIEZyZWUgU29mdHdhcmUgQWN0aXZpc3Qg ICAgICAgICAgICAgICAgICAgICAgIEdOVSBUb29sY2hhaW4gRW5naW5lZXINCj4gRGlzaW5mb3Jt YXRpb24gZmxvdXJpc2hlcyBiZWNhdXNlIG1hbnkgcGVvcGxlIGNhcmUgZGVlcGx5IGFib3V0IGlu anVzdGljZQ0KPiBidXQgdmVyeSBmZXcgY2hlY2sgdGhlIGZhY3RzLiAgQXNrIG1lIGFib3V0IDxo dHRwczovL3N0YWxsbWFuc3VwcG9ydC5vcmc+DQoNCg==