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 A15C33954C13 for ; Mon, 16 Aug 2021 19:49:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A15C33954C13 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 17GJlf5e019118; Mon, 16 Aug 2021 19:49:18 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3afgpgj1xs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Aug 2021 19:49:17 +0000 Received: from pps.filterd (userp3030.oracle.com [127.0.0.1]) by userp3030.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 17GJeu6D093400; Mon, 16 Aug 2021 19:49:16 GMT Received: from nam10-mw2-obe.outbound.protection.outlook.com (mail-mw2nam10lp2109.outbound.protection.outlook.com [104.47.55.109]) by userp3030.oracle.com with ESMTP id 3ae2xxt0hj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Aug 2021 19:49:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cSGqS81cjR3MGQTVJoBA7oeFUmH3YIGAgP4pmyccOKesomGKNOOduQaHEgrBKa4DEY9ViOkbmND4ebquvJlsEtJj8rVCuo86EGSMqIbiP16mO1eia39ybM5gWHHAPy6w9/6U6SYnvkG+eKHpuX07TzUBU9yLCebqcFbDRSgToXB7iCjBAZnmE5CcHaEjfhM/KV5BBjr/o052mCMyffnmIf/mv0oGDJKZbpb8fEjQLKQkanm7DvC7u3KXldEaNH1Pw/XXh0HyK1XVaNQT4CJQ+lXgei6eMM8wCRrT0BJjxIOHkLQ4bRXtTIO7wOpVZ3SfZTjM1r12WCbCk8W/eqpk3w== 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-SenderADCheck; bh=Z6vFKI0ubfe2otU3PWdNrCRq4EnF2MwH2vU1JNLRReY=; b=VSBpTB/cbVSaBrgEXYFdnVj5tKEkUBvpaKdQZYbOGsBxbaEZmS6ManJ8lMLWUxP2IvxzTtC7qYM0lSYAXP0XVd1WxqxdNyafbEIXKvPg3/8I2kCIhr250jutJeqsZmU5+pbgeIKyy0fFp4hGq+VgW6AXl22gyZFAvP10H1I5m+T5cIs80YmF5aybURFIs+fByDxd5Hm0Y0G4fobkzVNfCfbrgdhwJdx3GQjHbVoiCin3cVeWAmSaL0+trPasf895UlOPvk/3S/E5K7txpDQLxUM3NQUduwVQd2tScRS1SZPsPtgxpbU45IfpDx1m1Y4XMOIYRzj9y+7TJOV0/Urlpg== 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 Received: from CH2PR10MB4344.namprd10.prod.outlook.com (2603:10b6:610:af::19) by CH2PR10MB4389.namprd10.prod.outlook.com (2603:10b6:610:a9::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.14; Mon, 16 Aug 2021 19:49:13 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547%9]) with mapi id 15.20.4415.023; Mon, 16 Aug 2021 19:49:13 +0000 From: Qing Zhao To: Richard Biener CC: Martin Jambor , Jakub Jelinek , Kees Cook , Nick Alcock via Gcc-patches , Richard Biener Subject: Re: [patch][version 6] add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Topic: [patch][version 6] add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Index: AQHXgpcfj6SO0Rka1UmU0GU91mFncqtrSzIAgAUO6ICABYSmgIAAy6WA Date: Mon, 16 Aug 2021 19:49:13 +0000 Message-ID: References: <52E29277-1403-4755-901A-528116C43FB8@oracle.com> <517EA40B-9500-4090-8F03-B4A9CECC62F8@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.3608.120.23.2.7) x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 18387d56-42f5-4dd8-9a34-08d960eeecb0 x-ms-traffictypediagnostic: CH2PR10MB4389: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: G/I6QfWftWJg8tcWMdqoaiNyx8sgX4W8OYPBK6dst6MktwdIiD0clP1pj00eCDJSOgQjorC5PcA8glp1+8/P034ZxRNjVuuvHyJdmlLwyN+/Zk72YwIT9A0zBJBgE+jDbaTcKyUxrFanUf2+wpSNJiYfYg5GDCLyjDqKHRNBZd1h9GrpToqTxVKmoV2butlKfTUv1sBeXTfBakDVQUY6HeSeZNVi3Htu+62BC+qw/mkp081scAtRsjWrmCm6VjW8yMBE+bw4bxVQFKO1x/CMU0Cs1N8vJjOTCgBEZDdaGgI9oL1zYysvOwAJfruyXqg5EljZ8KAm7V9wUxmGuPE1R85qqPL0IbQC4oqgK97aU6zcCIkrJq3GKIMvj+RKs9Q9lUmyEM7y517yqrWQ7gO2AU9hZq5BAN9Zb8U5amjXNqRRmHYQ6jSi5721Y0os56y2/KBQ9JwX08qIKGAhUcWY8iewSbu/eulicgfs+8hIWvxcu3IhPfL1F9C7swYlJv0Cw6hXzlx9K8xCfafJ93xcq8l+iJtNXtR4lDbtHc/8Fz09+QDdq+KcGn8OEbIHYCvphdu/T7BRG8XBhWvaGgdwJTTuPBwJXSslLD3STEvP81jwjgcRiOWx+RsYls+ioz2Vlnq5kfW5J9yTbkv2RAjxJrX64RJ7AKq0lRBVNhExjH6M2bLbO7e54jp+1hJbfnblVeJV+KUkKgRZwxy/QTrsT0fvGP4bnIJtQlKG2tf+NLTpnzRZERyhVDJJnBKA7zRX 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:(346002)(376002)(39860400002)(396003)(366004)(136003)(38070700005)(53546011)(71200400001)(5660300002)(8676002)(8936002)(2616005)(91956017)(44832011)(76116006)(66476007)(2906002)(66446008)(6512007)(478600001)(26005)(186003)(4326008)(36756003)(122000001)(83380400001)(6486002)(86362001)(33656002)(6916009)(6506007)(64756008)(66556008)(66946007)(54906003)(38100700002)(316002)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RDdtYjdnVTlmTFBvdGFySE94bURWcTdlWk5tYVRVT043blU4VGEreUkwamxa?= =?utf-8?B?QVllV2hVVlRpT3ZpbmF5cUhWeWtOelJZL1NRZmNmYXJmT1VJQ3JGcmVrRVJ1?= =?utf-8?B?NFBqZ0d1UXptZk8rYjgxNS9USnp2b0tYam5uUFhiayt5M05vdVVkU2dEK3pK?= =?utf-8?B?cVZLVkcyWXA0eis5d2tLNnZhNHRxZUVKMmk0SGMzbUY1cVA2ZS8vOE1xQXZB?= =?utf-8?B?ZjQ3ZkNvcFZqTWo4M1ZvMHpOL25DdDVYUFZzdWJUaEhmUjB2OXBqcTRpYlpu?= =?utf-8?B?M3Y0T0RncVN0YkwxcmI3ZldFV29hb0NEUjZta3R6OEsrVnB0WWdyTml1NHNM?= =?utf-8?B?WENjWXgzd2FxY1ZxdGt1aEhLVmNkWms4b1FNOEFCbXpENGxBcnRuVFZ0NUxz?= =?utf-8?B?SGxHQjRvTkdtYzVnSSsxTytINTFnQmxON0NmN1drVERoVm1aTXR3RVRLZ1h2?= =?utf-8?B?RXlkbDV5SnNiZVcvb1o1QnA1TFA5WmZzd2lrUUQ0ZU96OUFNSEpoalRKaFor?= =?utf-8?B?QnRLMVZIdSt0N2tMdDhvUTlscGpXbm1FaWxWaUhyUTVScGMvQ1FQclB6UVZI?= =?utf-8?B?d1RDS3FnS29zS1NvbFVMRXVSTEI2TFNhRmNVRXQwaEd1THZkeVVpaUYyMUFJ?= =?utf-8?B?WG1RWEFUZTlVUjY4d2FFMGY4WXlxc3FKOURJZlRTbTFPZHQyZVV1b0xPMXF5?= =?utf-8?B?QkdxaDhqSGdSWTUxcVZOTEJRZ0xIM2tJRWtzcG40bklxYmpXQ0NqWndvcFBw?= =?utf-8?B?VzVEdTZqTTVMWnlKVGR0WVd6dmQxZ0IwcEhGaG5EVVVLZ2IxdEVFU0toMWFw?= =?utf-8?B?eTVHdWtZRFc2TkUrSGhtZVlodDVXcEk5a2RkYVA1RkNvUHdiK1RlVjFYdWly?= =?utf-8?B?MDMzMzJXV3laTGFpSFlLSjdZOFZhZ1hQcXNjL3AyTWw4MUUvWjRGMWxUb083?= =?utf-8?B?T0NXWGtZdmlsT1FzVkpzMW5VVVRUVzJVZGc1Qm9mOVhqMVBVbTFDVkJKdEsz?= =?utf-8?B?ekF1b0g4M2dWOUZ6VytaVmpRcjZ1NkdxUFh6NTN0OXA1eStod25IbWgzb3R3?= =?utf-8?B?QmxsOG5pZjMwR1FmaDZLbUc1NFhqd2hqWFpxQlU0dFFQZW8yL2lkQmJxUnJT?= =?utf-8?B?WTB4Z3lraU9BYTkvYm0rbVoyREplelpsWVgxbTRNQS9wSDRuUUpNcnNGUkJR?= =?utf-8?B?ZWVqNU5aV2l3dU9hU28yaHJZVDBEY09ieGoydi9PMFJBc1RSQzJZY2hINnBj?= =?utf-8?B?VE0rZUFUMGFPU0g5ZHBoc3ZhQ2JzRmlKdGVRNXlZMFBKVlVhcmZINXNLQXJM?= =?utf-8?B?M2tVeUI3UW0xNE1IdDJLeU5XSDVJNGlYUmpGSS9WYnkrQ2FneEk5MzQ3c2RK?= =?utf-8?B?REhRSjh2Q05BOHE2ZnF1akphZE9yaVhlTjhGa2JrRFlvZWVhWVhyS2tNNEFi?= =?utf-8?B?Z05nYmFqbjh0Yk85dk9MTTdMamhJRS90Y1UyVW93TUFJSlRkZXVhVS8wRWN2?= =?utf-8?B?VHBTZENvUS85U0JuMVNNVW4xajdHeldtd2lBZ0ZiV3JlQ3psMWdLWWd5ZnF1?= =?utf-8?B?RWk3WEdoMkgyU1U4eWcvdVl3VkFwY0RpVjhRMjZJZzRKNWZEOGdBVXF3NW8w?= =?utf-8?B?c1dMVEhMRDZYWjNpcDFNODZEb0pBMzZheWlnWkpheXV6ZEhlWTlSTU44MWRs?= =?utf-8?B?TzI4MzdSSmE0ZGExYVg1bGpMdVV6RjNlYkx6U1pVWmNsSkhBbDN4OFdWZ1FG?= =?utf-8?Q?2u5rUAAbWd4Uu7A6Qj9qv9U1/DTnFtPTLDbDJvJ?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <4B2533EF55572D488625C575CFAD92DC@namprd10.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 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: 18387d56-42f5-4dd8-9a34-08d960eeecb0 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Aug 2021 19:49:13.8548 (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: vjj1n5wGb8TWsXlPTvbkd4A0q26rQPxpBTeld5bu5PSqeuQKkQnG25IDdfCyywkvkFURSdGV4Gdik3/VujBoQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4389 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10078 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108160124 X-Proofpoint-GUID: BrUilPJgMu2ep9sQ9H1-pzZDsPJ7BBVb X-Proofpoint-ORIG-GUID: BrUilPJgMu2ep9sQ9H1-pzZDsPJ7BBVb X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_BL, RCVD_IN_MSPIKE_L3, SPF_HELO_NONE, SPF_NONE, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 Aug 2021 19:49:29 -0000 DQoNCj4gT24gQXVnIDE2LCAyMDIxLCBhdCAyOjQwIEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50 aGVyQHN1c2UuZGU+IHdyb3RlOg0KPiANCj4gT24gVGh1LCAxMiBBdWcgMjAyMSwgUWluZyBaaGFv IHdyb3RlOg0KPiANCj4+IEhpLCBSaWNoYXJkLA0KPj4gDQo+PiBGb3IgUlRMIGV4cGFuc2lvbiBv ZiBjYWxsIHRvIC5ERUZFUlJFRF9JTklULCBJIGNoYW5nZWQgbXkgY29kZSBwZXIgeW91ciBzdWdn ZXN0aW9ucyBsaWtlIGZvbGxvd2luZzoNCj4+IA0KPj4gPT09PT09PT09PT09PT09PT09PT09PQ0K Pj4gI2RlZmluZSBJTklUX1BBVFRFUk5fVkFMVUUgIDB4RkUNCj4+IHN0YXRpYyB2b2lkDQo+PiBl eHBhbmRfREVGRVJSRURfSU5JVCAoaW50ZXJuYWxfZm4sIGdjYWxsICpzdG10KQ0KPj4gew0KPj4g IHRyZWUgbGhzID0gZ2ltcGxlX2NhbGxfbGhzIChzdG10KTsNCj4+ICB0cmVlIHZhcl9zaXplID0g Z2ltcGxlX2NhbGxfYXJnIChzdG10LCAwKTsNCj4+ICBlbnVtIGF1dG9faW5pdF90eXBlIGluaXRf dHlwZQ0KPj4gICAgPSAoZW51bSBhdXRvX2luaXRfdHlwZSkgVFJFRV9JTlRfQ1NUX0xPVyAoZ2lt cGxlX2NhbGxfYXJnIChzdG10LCAxKSk7DQo+PiAgYm9vbCBpc192bGEgPSAoYm9vbCkgVFJFRV9J TlRfQ1NUX0xPVyAoZ2ltcGxlX2NhbGxfYXJnIChzdG10LCAyKSk7DQo+PiANCj4+ICB0cmVlIHZh cl90eXBlID0gVFJFRV9UWVBFIChsaHMpOw0KPj4gIGdjY19hc3NlcnQgKGluaXRfdHlwZSA+IEFV VE9fSU5JVF9VTklOSVRJQUxJWkVEKTsNCj4+IA0KPj4gIGlmIChpc192bGEgfHwgKCFjYW5fbmF0 aXZlX2ludGVycHJldF90eXBlX3AgKHZhcl90eXBlKSkpDQo+PiAgICB7DQo+PiAgICAvKiBJZiB0 aGlzIGlzIGEgVkxBIG9yIHRoZSB0eXBlIG9mIHRoZSB2YXJpYWJsZSBjYW5ub3QgYmUgbmF0aXZl bHkNCj4+ICAgICAgIGludGVycHJldGVkLCBleHBhbmQgdG8gYSBtZW1zZXQgdG8gaW5pdGlhbGl6 ZSBpdC4gICovDQo+PiAgICAgIGlmIChUUkVFX0NPREUgKGxocykgPT0gU1NBX05BTUUpDQo+PiAg ICAgICAgbGhzID0gU1NBX05BTUVfVkFSIChsaHMpOw0KPj4gICAgICB0cmVlIHZhcl9hZGRyID0g TlVMTF9UUkVFOw0KPj4gICAgICBpZiAoaXNfdmxhKQ0KPj4gICAgICAgIHZhcl9hZGRyID0gVFJF RV9PUEVSQU5EIChsaHMsIDApOw0KPj4gICAgICBlbHNlDQo+PiAgICAgICAgew0KPj4gICAgICAg ICBUUkVFX0FERFJFU1NBQkxFIChsaHMpID0gMTsNCj4+ICAgICAgICAgdmFyX2FkZHIgPSBidWls ZF9mb2xkX2FkZHJfZXhwciAobGhzKTsNCj4+ICAgICAgICB9DQo+PiAgICAgIHRyZWUgdmFsdWUg PSAoaW5pdF90eXBlID09IEFVVE9fSU5JVF9QQVRURVJOKSA/DQo+PiAgICAgICAgICAgICAgICAg ICAgYnVpbGRfaW50X2NzdCAodW5zaWduZWRfY2hhcl90eXBlX25vZGUsDQo+PiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgSU5JVF9QQVRURVJOX1ZBTFVFKSA6DQo+PiAgICAgICAg ICAgICAgICAgICAgYnVpbGRfemVyb19jc3QgKHVuc2lnbmVkX2NoYXJfdHlwZV9ub2RlKTsNCj4+ ICAgICAgdHJlZSBtX2NhbGwgPSBidWlsZF9jYWxsX2V4cHIgKGJ1aWx0aW5fZGVjbF9pbXBsaWNp dCAoQlVJTFRfSU5fTUVNU0VUKSwNCj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDMsIHZhcl9hZGRyLCB2YWx1ZSwgdmFyX3NpemUpOw0KPj4gICAgICAvKiBFeHBhbmQgdGhp cyBtZW1zZXQgY2FsbC4gICovDQo+PiAgICAgIGV4cGFuZF9idWlsdGluX21lbXNldCAobV9jYWxs LCBOVUxMX1JUWCwgVFlQRV9NT0RFICh2YXJfdHlwZSkpOw0KPj4gICAgfQ0KPj4gIGVsc2UNCj4+ ICAgIHsNCj4+ICAgIC8qIElmIHRoaXMgaXMgbm90IGEgVkxBIGFuZCB0aGUgdHlwZSBvZiB0aGUg dmFyaWFibGUgY2FuIGJlIG5hdGl2ZWx5IA0KPj4gICAgICAgaW50ZXJwcmV0ZWQsIGV4cGFuZCB0 byBhc3NpZ25tZW50IHRvIGdlbmVyYXRlIGJldHRlciBjb2RlLiAgKi8NCj4+ICAgICAgdHJlZSBw YXR0ZXJuID0gTlVMTF9UUkVFOw0KPj4gICAgICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHRvdGFs X2J5dGVzDQo+PiAgICAgICAgPSB0cmVlX3RvX3Vod2kgKFRZUEVfU0laRV9VTklUICh2YXJfdHlw ZSkpOw0KPj4gDQo+PiAgICAgIGlmIChpbml0X3R5cGUgPT0gQVVUT19JTklUX1BBVFRFUk4pDQo+ PiAgICAgICAgew0KPj4gICAgICAgICAgdW5zaWduZWQgY2hhciAqYnVmID0gKHVuc2lnbmVkIGNo YXIgKikgeG1hbGxvYyAodG90YWxfYnl0ZXMpOw0KPj4gICAgICAgICAgbWVtc2V0IChidWYsIElO SVRfUEFUVEVSTl9WQUxVRSwgdG90YWxfYnl0ZXMpOw0KPj4gICAgICAgICAgcGF0dGVybiA9IG5h dGl2ZV9pbnRlcnByZXRfZXhwciAodmFyX3R5cGUsIGJ1ZiwgdG90YWxfYnl0ZXMpOw0KPj4gICAg ICAgICAgZ2NjX2Fzc2VydCAocGF0dGVybik7DQo+PiAgICAgICAgfQ0KPj4gDQo+PiAgICAgIHRy ZWUgaW5pdCA9IChpbml0X3R5cGUgPT0gQVVUT19JTklUX1BBVFRFUk4pID8NCj4+ICAgICAgICAg ICAgICAgICAgIHBhdHRlcm4gOg0KPj4gICAgICAgICAgICAgICAgICAgYnVpbGRfemVyb19jc3Qg KHZhcl90eXBlKTsNCj4+ICAgICAgZXhwYW5kX2Fzc2lnbm1lbnQgKGxocywgaW5pdCwgZmFsc2Up Ow0KPj4gICAgfQ0KPj4gfQ0KPj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09DQo+PiANCj4+ IE5vdywgSSB1c2VkIOKAnGNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcCAodmFyX3R5cGUp4oCd IGluc3RlYWQgb2Yg4oCcdXNlX3JlZ2lzdGVyX2Zvcl9kZWNsIChsaHMp4oCdIHRvIGRlY2lkZSAN Cj4+IHdoZXRoZXIgdG8gdXNlIOKAnG1lbXNldOKAnSBvciB1c2Ug4oCcYXNzaWdu4oCdIHRvIGV4 cGFuZCB0aGlzIGZ1bmN0aW9uLg0KPj4gDQo+PiBIb3dldmVyLCB0aGlzIGV4cG9zZWQgYW4gYnVn IHRoYXQgaXMgdmVyeSBoYXJkIHRvIGJlIGFkZHJlc3NlZDoNCj4+IA0KPj4gKioqKioqKkZvciB0 aGUgdGVzdGluZyBjYXNlOiB0ZXN0IHN1aXRlL2djYy5kZy91bmluaXQtSS5jOg0KPj4gDQo+PiAv KiB7IGRnLWRvIGNvbXBpbGUgfSAqLw0KPj4gLyogeyBkZy1vcHRpb25zICItTzIgLVd1bmluaXRp YWxpemVkIiB9ICovDQo+PiANCj4+IGludCBzeXNfbXNnY3RsICh2b2lkKQ0KPj4gew0KPj4gIHN0 cnVjdCB7IGludCBtb2RlOyB9IHNldGJ1ZjsNCj4+ICByZXR1cm4gc2V0YnVmLm1vZGU7ICAvKiB7 IGRnLXdhcm5pbmcgIidzZXRidWZcLm1vZGUnIGlzIHVzZWQiIH0gKi8NCj4+ID09DQo+PiANCj4+ ICoqKioqKnRoZSBhYm92ZSBhdXRvIHZhciDigJxzZXRidWbigJ0gaGFzIOKAnHN0cnVjdOKAnSB0 eXBlLCB3aGljaCDigJxjYW5fbmF0aXZlX2ludGVycHJldF90eXBlX3AodmFyX3R5cGUp4oCdIGlz IGZhbHNlLCB0aGVyZWZvcmUsIA0KPj4gRXhwYW5kaW5nIHRoaXMgLkRFRkVSUkVEX0lOSVQgY2Fs bCB3ZW50IGRvd24gdGhlIOKAnG1lbXNldOKAnSBleHBhbnNpb24gcm91dGUuIA0KPj4gDQo+PiBI b3dldmVyLCB0aGlzIHN0cnVjdHVyZSB0eXBlIGNhbiBiZSBmaXR0ZWQgaW50byBhIHJlZ2lzdGVy LCB0aGVyZWZvcmUgY2Fubm90IGJlIHRha2VuIGFkZHJlc3MgYW55bW9yZSBhdCB0aGlzIHN0YWdl LCBldmVuIHRob3VnaCBJIHRyaWVkOg0KPj4gDQo+PiAgICAgICAgIFRSRUVfQUREUkVTU0FCTEUg KGxocykgPSAxOw0KPj4gICAgICAgICB2YXJfYWRkciA9IGJ1aWxkX2ZvbGRfYWRkcl9leHByIChs aHMpOw0KPj4gDQo+PiBUbyBjcmVhdGUgYW4gYWRkcmVzcyB2YXJpYWJsZSBmb3IgaXQsIHRoZSBl eHBhbnNpb24gc3RpbGwgZmFpbGVkIGF0IGV4cHIuYzogbGluZSA4NDEyOg0KPj4gZHVyaW5nIFJU TCBwYXNzOiBleHBhbmQNCj4+IC9ob21lL29wYy9Xb3JrL0dDQy9sYXRlc3QtZ2NjL2djYy90ZXN0 c3VpdGUvZ2NjLmRnL2F1dG8taW5pdC11bmluaXQtSS5jOjY6MjQ6IGludGVybmFsIGNvbXBpbGVy IGVycm9yOiBpbiBleHBhbmRfZXhwcl9hZGRyX2V4cHJfMSwgYXQgZXhwci5jOjg0MTINCj4+IDB4 ZDA0MTA0IGV4cGFuZF9leHByX2FkZHJfZXhwcl8xDQo+PiAJLi4vLi4vbGF0ZXN0LWdjYy9nY2Mv ZXhwci5jOjg0MTINCj4+IDB4ZDA0YTk1IGV4cGFuZF9leHByX2FkZHJfZXhwcg0KPj4gCS4uLy4u L2xhdGVzdC1nY2MvZ2NjL2V4cHIuYzo4NTI1DQo+PiAweGQxMzU5MiBleHBhbmRfZXhwcl9yZWFs XzEodHJlZV9ub2RlKiwgcnR4X2RlZiosIG1hY2hpbmVfbW9kZSwgZXhwYW5kX21vZGlmaWVyLCBy dHhfZGVmKiosIGJvb2wpDQo+PiAJLi4vLi4vbGF0ZXN0LWdjYy9nY2MvZXhwci5jOjExNzQxDQo+ PiAweGQwNTE0MiBleHBhbmRfZXhwcl9yZWFsKHRyZWVfbm9kZSosIHJ0eF9kZWYqLCBtYWNoaW5l X21vZGUsIGV4cGFuZF9tb2RpZmllciwgcnR4X2RlZioqLCBib29sKQ0KPj4gCS4uLy4uL2xhdGVz dC1nY2MvZ2NjL2V4cHIuYzo4NzEzDQo+PiAweGFlZDFkMyBleHBhbmRfZXhwcg0KPj4gCS4uLy4u L2xhdGVzdC1nY2MvZ2NjL2V4cHIuaDozMDENCj4+IDB4YWYwZDg5IGdldF9tZW1vcnlfcnR4DQo+ PiAJLi4vLi4vbGF0ZXN0LWdjYy9nY2MvYnVpbHRpbnMuYzoxMzcwDQo+PiAweGFmYjRmYiBleHBh bmRfYnVpbHRpbl9tZW1zZXRfYXJncw0KPj4gCS4uLy4uL2xhdGVzdC1nY2MvZ2NjL2J1aWx0aW5z LmM6NDEwMg0KPj4gMHhhZmFjZGUgZXhwYW5kX2J1aWx0aW5fbWVtc2V0KHRyZWVfbm9kZSosIHJ0 eF9kZWYqLCBtYWNoaW5lX21vZGUpDQo+PiAJLi4vLi4vbGF0ZXN0LWdjYy9nY2MvYnVpbHRpbnMu YzozODg2DQo+PiAweGU5N2ZiMyBleHBhbmRfREVGRVJSRURfSU5JVA0KPj4gDQo+PiAqKioqKipU aGF04oCZcyB0aGUgbWFqb3IgcmVhc29uIHdoeSBJIGNob3NlIOKAnHVzZV9yZWdpc3Rlcl9mb3Jf ZGVjbChsaHMp4oCdIHRvIGRlY2lkZSDigJxtZW1zZXTigJ0gZXhwYW5zaW9uIG9yIOKAnGFzc2ln buKAnSBleHBhbnNpb24sIOKAnG1lbXNldOKAnSBleHBhbnNpb24NCj4+IG5lZWRzIHRvIHRha2Ug YWRkcmVzcyBvZiB0aGUgdmFyaWFibGUsIGlmIHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkZWNpZGVk IHRvIGZpdCBpbnRvIGEgcmVnaXN0ZXIsIHRoZW4gaXRzIGFkZHJlc3MgY2Fubm90IHRha2VuIGFu eW1vcmUgYXQgdGhpcyBzdGFnZS4NCj4+IA0KPj4gKioqKioqdXNpbmcg4oCcY2FuX25hdGl2ZV9p bnRlcnByZXRfdHlwZV9w4oCdIGRpZCBtYWtlIHRoZSDigJxwYXR0ZXJu4oCdIGdlbmVyYXRpb24g cGFydCBtdWNoICBjbGVhbmVyIGFuZCBzaW1wbGVyLCBob3dldmVyLCBsb29rcyBsaWtlIGl0IGRp ZG7igJl0IHdvcmsgY29ycmVjdGx5Lg0KPj4gDQo+PiBCYXNlZCBvbiB0aGlzLCBJ4oCZZCBsaWtl IHRvIGtlZXAgbXkgcHJldmlvdXMgaW1wbGVtZW50YXRpb24gYnkgdXNpbmcg4oCcdXNlX3JlZ2lz dGVyX2Zvcl9kZWNs4oCdIHRvIGRlY2lkZSB3aGV0aGVyIHRvIHRha2Ug4oCcbWVtc2V04oCdIGV4 cGFuc2lvbiBvciDigJxhc3NpZ27igJ0gZXhwYW5zaW9uLg0KPj4gVGhlcmVmb3JlLCBJIG1pZ2h0 IHN0aWxsIG5lZWQgdG8ga2VlcCB0aGUg4oCcVUdMWeKAnSAgaW1wbGVtZW50YXRpb24gb2YgZ2Vu ZXJhdHRpbmcg4oCccGF0dGVybuKAnSBjb25zdGFudCBmb3IgZGlmZmVyZW50IHR5cGVzPw0KPj4g DQo+PiBMZXQgbWUga25vdyB5b3VyIG9waW5pb24gb24gdGhpcy4NCj4gDQo+IEhtbSwgSSB0aGlu ayB5b3UgY2FuIHVzZSB1c2VfcmVnaXN0ZXJfZm9yX2RlY2wobGhzKSB0byBkZWNpZGUgdG8gdXNl IGFuDQo+IGFsdGVybmF0ZSB0eXBlIHRvIGdlbmVyYXRlIHRoZSBwYXR0ZXJuIChhbmQgZmVlZCB0 byANCj4gY2FuX25hdGl2ZV9pbnRlcnByZXRfdHlwZV9wKSBieSB1c2luZw0KPiBsYW5nX2hvb2tz LnR5cGVfZm9yX21vZGUgKFRZUEVfTU9ERSAoVFJFRV9UWVBFIChsaHMpKSkuDQoNCkRvIHlvdSBt ZWFuIHRoYXQgdGhlIFRZUEUgcmV0dXJuZWQgYnkg4oCcbGFuZ19ob29rcy50eXBlX2Zvcl9tb2Rl KFRZUEVfTU9ERSAoVFJFRV9UWVBFIChsaHMpKeKAnSB3aWxsIGFsd2F5cyBzYXRpc2Z5IOKAnGNh bl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcOKAnT8gDQpFdmVuIGZvciBiaWcgc3RydWN0dXJlIHR5 cGVzPw0KDQppLmUsIA0KDQp0cmVlIHZhcl90eXBlID0gVFJFRV9UWVBFKGxocyk7DQp0cmVlIHBh dHRlcm4gPSBOVUxMX1RSRUU7DQp1bnNpZ25lZCBIT1NUX1dJREVfSU5UIHRvdGFsX2J5dGVzDQog ICAgICAgID0gdHJlZV90b191aHdpIChUWVBFX1NJWkVfVU5JVCAodmFyX3R5cGUpKTsNCg0KSWYg KHVzZV9yZWdpc3Rlcl9mb3JfZGVjbChsaHMpPT1mYWxzZSkNCiAgew0KICAgIHRyZWUgYWx0X3R5 cGUgPSBsYW5nX2hvb2tzLnR5cGVfZm9yX21vZGUoVFlQRV9NT0RFKHZhcl90eXBlKSwgVFlQRV9V TlNJR05FRCh2YXJfdHlwZSk7DQogICAgSWYgKGNhbl9uYXRpdmVfaW50ZXJwcmV0X3R5cGVfcCAo YWx0X3R5cGUpKQ0KICAgICAgew0KCXVuc2lnbmVkIGNoYXIgKmJ1ZiA9ICh1bnNpZ25lZCBjaGFy ICopIHhtYWxsb2MgKHRvdGFsX2J5dGVzKTsgDQoJbWVtc2V0IChidWYsIElOSVRfUEFUVEVSTl9W QUxVRSwgdG90YWxfYnl0ZXMpOyANCglwYXR0ZXJuID0gbmF0aXZlX2ludGVycHJldF9leHByIChh bHRfdHlwZSwgYnVmLCB0b3RhbF9ieXRlcyk7IA0KCWdjY19hc3NlcnQgKHBhdHRlcm4pOyANCiAg ICAgIH0NCiAgICBlbHNlDQogICAgICBnY2NfdW5yZWFjaGFibGUgKCk7DQogIH0NCg0KPw0KRG9u 4oCZdCBxdWl0ZSB1bmRlcnN0YW5kIGhlcmUuIFBsZWFzZSBjbGFyaWZ5Lg0KDQo+ICBZb3UgY2Fu IHRoZW4NCj4gYnVpbGQgdGhlIGFzc2lnbm1lbnQgZnJvbSB0aGUgcGF0dGVybiBhcw0KPiANCj4g VklFV19DT05WRVJUIDxyZWctdHlwZT4gKGxocykgPSBwYXR0ZXJuX2NzdDsNCg0KV2hhdOKAmXMg dGhlIDxyZWdfdHlwZT4gaW4gdGhlIGFib3ZlPyBUaGUgdHlwZSDigJxhbHRfdHlwZeKAnSByZXR1 cm5lZCBieSDigJxsYW5nX2hvb2tzLnR5cGVfZm9yX21vZGUoVFJFRV9UWVBFKGxocykpPw0KRG8g SSBuZWVkIHRvIGJ1aWxkIOKAnE1PRElGWV9FWFBS4oCdIGZvciB0aGUgYWJvdmU/IA0KDQpsaHMg PSAgYnVpbGQxIChWSUVXX0NPTlZFUlRfRVhQUiwgYWx0X3R5cGUsIGxocyk7DQp0cmVlICBmaW5h bCA9IGJ1aWxkMiAoTU9ESUZZX0VYUFIsIFRSRUVfVFlQRSAoYWx0X3R5cGUpLCBsaHMsIHBhdHRl cm4pOw0KDQpUaGVuIGhvdyB0byBleHBhbmQgdGhpc+KAnWZpbmFsIj8gDQo+IA0KPiBub3RlIHRo YXQgbW9yZSBSVEwtZXhwYW5kLWlzaCB3b3VsZCBiZSB0byBzaW1wbHkgZXhwYW5kICdsaHMnIGFu ZA0KPiBzZWUgd2hldGhlciBpdCdzIGEgUkVHX1Agb3IgYSBNRU1fUCBhbmQgZGVjaWRlIGJhc2Vk IG9uIHRoYXQuDQoNCllvdSBtZWFuIHRoYXQgdGhlIGN1cnJlbnQgUlRMIGV4cGFuc2lvbiB3aWxs IGF1dG9tYXRpY2FsbHkgZXhwYW5kIExIUyB0byBtZW1zZXQgcm91dGUgb3IgYXNzaWdubWVudCBy b3V0ZSBiYXNlZCBvbiB3aGV0aGVyDQpMSFMgaXMgYSBSRUdfUCBvciBNRU1fUD8gSSBkb27igJl0 IG5lZWQgdG8gZXhwbGljaXRseSBjb2RlIGZvciDigJxleHBhbmRfYnVpbHRpbl9tZW1zZXTigJ0g b3Ig4oCcZXhwYW5kX2Fzc2lnbuKAnT8NCg0KPiAgT2YgY291cnNlDQo+IHRoYXQgbm8gbG9uZ2Vy IGFsbG93cyB5b3UgdG8gdXNlIHRoZSBoaWdoLWxldmVsIGV4cGFuZF9hc3NpZ25tZW50DQo+IG9y IG1lbXNldCBidXQgeW91J2QgbmVlZCB0byB3b3JrIG9uIGEgbG93ZXIgbGV2ZWwgdGhlbi4NCkRv buKAmXQgdW5kZXJzdGFuZCBoZXJlLCBzbywgSSBuZWVkIG1vcmUgY29kaW5nIG9uIHRoZSBSVEwg ZXhwYW5zaW5nIGZvciB3aGF0IHBhcnQ/DQoNClFpbmcNCg0KPiANCj4gUmljaGFyZC4NCj4gDQoN Cg==