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 14B9C385742B for ; Mon, 16 Aug 2021 15:45:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 14B9C385742B Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 17GFfb2x004043; Mon, 16 Aug 2021 15:45:49 GMT Received: from userp3030.oracle.com (userp3030.oracle.com [156.151.31.80]) by mx0b-00069f02.pphosted.com with ESMTP id 3af3kxtbj6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Aug 2021 15:45:49 +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 17GFethc014580; Mon, 16 Aug 2021 15:45:46 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam07lp2042.outbound.protection.outlook.com [104.47.51.42]) by userp3030.oracle.com with ESMTP id 3ae2xxe6sp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Aug 2021 15:45:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DMfjojrLW9BWy2+aeAcLK4LHxT4YNg+CuZVQv2MlWt+YkreWny9X54kuYoyWRz2vsvkNTrrDGJVBWzR0zHAAdtv25L1g+DSnZjYheky9NCXxeoI5sCeGvnA6rrXMApNc5gtnjzNZg/ioUnsWVy3BzfpC77nDEgP6FqacCVG2YUQBVbC2hXgb3U5ICFubPkJjslyZURwAe2svS/29+b7L5/IIz7tKzNe7fnhuWIOs6qML6Sdli2aDZ6+3EhZUUKFJGSj4Nn+5bWVZow1PBJVj7UYS0pGV5is4x0TmxcGk08G1auHRF8gmUBCF7T+jIfhRygJnpSHUXvYTYVa1msm8UA== 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=YCzUn8J0yq844W/7sFUZQGHCiMdPQAG9kJ20FCT1DO0=; b=XCKyL3SuLBE86bUfTWP8mRj0AZ7lKAJXDACJDWFEqDtdVdcgznXkdpOkIRXJ4z9DwbG4CsYzb1rDDGdWIIsFo64wl3Kxra3+a/BLoTHm0moVrAsUlJremWMeyZNh49LrFLlxaEWoGav3h6rIXwZtgDW1t3xkK1j2bHtnw/EFouM7yamMfbPb1Xp3KR5hXH/jWXy6r9r+S5pZBGltKzOihuoxdSVN33zbWaWKn/5Jsx9CFLlF4aI7SQp6MYgWbtDPPb6Qxx3ptQBRULIthK8VOZ0b/FwDsjCe+n5KtA5cQZ/+NoDnB+nALZXEKo6mYY6dxtmwTnMYdNpsrXjhQHCNvg== 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 CH2PR10MB4007.namprd10.prod.outlook.com (2603:10b6:610:9::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4415.17; Mon, 16 Aug 2021 15:45:44 +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 15:45:44 +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: AQHXgpcfj6SO0Rka1UmU0GU91mFncqtrSzIAgAUO6ICABYSmgIAAh5qA Date: Mon, 16 Aug 2021 15:45:43 +0000 Message-ID: <8B2F93E8-C3AC-49D2-B764-D4DD8A150A52@oracle.com> 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: 0f2bd57e-05d5-4c71-50f0-08d960cce8ba x-ms-traffictypediagnostic: CH2PR10MB4007: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OgYoqbZFCHZmfQD7Y3+TtjTcIdJIIn2qQYDBNER7fOSjfzg4pRmSJgHxN4GE+HgAfObhGpNNIOd7MH2zvMf5dbFLCGAXRgCzibcqJy5SUCpgr9o1bV1iGZ+04lzl1Nt5oQ6zCtxHJj+WWyxO77hrfWoZG/w1ayUPzIT7ZZGbx2D18JlBKveVQF9zGQzoHeX4OjMQJu4LWT2noijpRah7aXeNsf2ESZJBcI7EG2OTl970LvxPrWdsU1agkBdMvqe/zpUwcozChMSPb5ksgdZ4+DLrXe64O/XRmC1GXVc6NBS3+2KXJDaVK7vLCjmxiVpuGo/1g+Ea2aGoUkGQUm9e4xn3xkASTNnXtF0i4Jq3NUIow/eR1qdNzYsXyoW5WFjJbfdTb0I/fLLLasGh3jw0fmK3hnaqEmsTFo0r9ehsesiPjXsIIKJ+ZKuYWCv8N36n3p6TNKjtlPGuauS1qKkRs6i/ddyGNTWabFosnpIn7jTPg2O4KRpsQ4PFJMMnfFm5VN0cdFRPVHVvHyUqd8V6b50GXhqVc58LG2G1jW3LtT24v1+y/AUgd8EM88xF+C75QzErh3j7YJVdSv8lVGKO83269KcJscxTFKZfmiyIJ/jUm+artZ8j7H2orQsppN1YTRaZCaOPqTG/+sIZqmFqYy2w9iRyUD6H+8Zz1f41+aR+f1R6maE9FktmgFgzshxoSCjLvOS3xibLN8yTZp9EQqTADVC5XGzVbWx/x5fLiqNBxaqkfVp6uCENfedLDetm 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)(136003)(366004)(376002)(39860400002)(396003)(91956017)(76116006)(122000001)(186003)(36756003)(71200400001)(38100700002)(4326008)(8936002)(38070700005)(8676002)(33656002)(83380400001)(53546011)(6512007)(6506007)(86362001)(44832011)(54906003)(66476007)(2616005)(66556008)(64756008)(66446008)(478600001)(66946007)(316002)(2906002)(26005)(6486002)(5660300002)(6916009)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?WTdxMVdaNlowblVjT240RVVSeUhrUUtadVFUVzU2TXl1a3pYcXgrS1pLOU16?= =?utf-8?B?T1RrMllNTmFReUhpSXowM09BbkNYczZLcHVEVFRYOXdackhjSkJGeUlaUlI4?= =?utf-8?B?YXBLd3VnMGN5dHQxSlBsYnVvMjNVVTB2UnVTU25GOWJRM2NDdjVYQldVVmxp?= =?utf-8?B?bHVORkpja09TUjRGNEtTaytMMFMvL2tCRHl6bXFnSGdUbkY1ckIzYytpdndL?= =?utf-8?B?alZtKzAvY2tlL0FqUjM4dUtPVGlFcmNibDFQSm5mODVCN2l6aWtOTi9LUERi?= =?utf-8?B?NlpZbytsbXFZL3l6R1hzZWRuR0drckU2QW55NndES3F4Mk5JeUFUenY3K0tR?= =?utf-8?B?b29GWU1HalBXc1BEc3BHblZaYlhlV245aVEzMlFkM2U1UW9SV0dhOGlETkxh?= =?utf-8?B?M2h6SVJwbDROcDBuVCs1WEd1T3ZqeEtaTjJWT05vMHVDSHhlekRPTzNHWHN0?= =?utf-8?B?Z2J0TzZmMEdMaUhneEJjNHlXcjNwTkZjNGI0TzlGZUhCaTFjZG5uVkdWRk5G?= =?utf-8?B?QTU3VVR2dGYxODk3VGhqRzF0NmloTUptb2hIUlpET21tN2RaY1lPOW42TkN4?= =?utf-8?B?SGt1c2g0VGp3a1lJdEZCZ0Y3cTNGRjR5Qjk1T29sMXd5NktnQkpTVGJOb3lV?= =?utf-8?B?VUhKNGoxZVA0TllVMkNRWmdGTVczOHlTTFNtSlVjQzF1Q1YvbmxsZkRjYUhI?= =?utf-8?B?Z1VNcGFObHArNkpQeHZpTkpPZkpIdWpCb2tLWGlLcmRtRk4wN3Z6RDdPQWdR?= =?utf-8?B?VXpHZEg1VGpEYzc1bTV2NHdKbHUreitqOGp5b2paWGtlcFcyVk5CdTdnOFNt?= =?utf-8?B?aUd5N25WaTZwS0Q4QURxajFLeklpc3B2UElMSVg1d0VuVEVPSWF5VVRuQU9L?= =?utf-8?B?UXdQcjBCMjVOaC9XWDlNNndSZmxzTDdmU0xJQW4rNXp2dVVoQ2QzZ0pxOG9w?= =?utf-8?B?bVdoQStDNFBvRUFWcHlmRS9ZSjRHa3E0L3FycmFRTHNzR0dBODBMbmZZWkY4?= =?utf-8?B?S01sQjkyVTVPOUFMT0F0SkVmdDR3bmNwN2ZCZm9FS0JyZHlrNjNKaVcxRzRx?= =?utf-8?B?OHdlUUxpa08wZTdaTUN4cEhmckd3QWl1cU9vOGdGQW53cmIzSkJEeUlPaTQy?= =?utf-8?B?K05USHh0dUxTbUJwSlNWcjdtQTdPRm9mRHR2TUkySkVEaDg1SGhrRXhCRVlO?= =?utf-8?B?aEVRMGRhbm5YUVpxZTNEUWV1YnhoMU40MWh3TU15S05XMy8zdWRVaGtYcEpL?= =?utf-8?B?eEIxRmNRWWMvSDEzdjh0ekh6R0pEbnQ3ZDNDWm1KbTR0QVlWRDBGb0tVQnhz?= =?utf-8?B?cnhSdWI0ZC9XWC9DUURCejNOcW1md3A2a24xQXo3c1NlSEVZY1RYSmFKWVh0?= =?utf-8?B?L1lyS1ZtY3pvbjhBVVdiVTgrSXNjNjYzSUNWSThpVHNub0Roc2gxb1BsV2NF?= =?utf-8?B?UThkZ2xleHV5enhhZytvSDdVTFVVR1lTTmM4dnl6Z25RWXB6Y2lhbmd4ZzMx?= =?utf-8?B?SGRUdXpNZU5xNEVlQjVIMXVJVzJXeVlXY3h0WldnSGEya0xKQjVnZjlid1RT?= =?utf-8?B?L1hXRTRXZkwzYWN2djJLcUxDRVYwbThvZXZoZEo1N2xpUVVMYWhDMVAwRTJl?= =?utf-8?B?L0czcndLdGNOWWRxN2RvU2tjMWFSZEpldHJpZEhUMnFmNFBTcU5VNG0vRzFQ?= =?utf-8?B?SE9Jb2VxNVQxemQ5UHh0WXA2NXo2OGR6VjM2a3EwZDRaRDdSVWNOQkpBSG5Y?= =?utf-8?Q?yEzIaenCPp3U5gAQqt6Rcm+D/OY6DB3u2M3/cHD?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: 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: 0f2bd57e-05d5-4c71-50f0-08d960cce8ba X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Aug 2021 15:45:43.8050 (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: ZLDMmmzLucgUESj8FFxzCYgg63bV+r6oC3RBXSJdwfLN0HV23RhiTV06J3uAsCjPGtZgpYOoueOV+CFE2utfUQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR10MB4007 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-2108160099 X-Proofpoint-GUID: jCPFIo06qmewNP1jckFrJ8my6WlqrCtC X-Proofpoint-ORIG-GUID: jCPFIo06qmewNP1jckFrJ8my6WlqrCtC 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 15:46:02 -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 LnR5cGVfZm9yX21vZGUgKFRZUEVfTU9ERSAoVFJFRV9UWVBFIChsaHMpKSkuICBZb3UgY2FuIHRo ZW4NCj4gYnVpbGQgdGhlIGFzc2lnbm1lbnQgZnJvbSB0aGUgcGF0dGVybiBhcw0KPiANCj4gVklF V19DT05WRVJUIDxyZWctdHlwZT4gKGxocykgPSBwYXR0ZXJuX2NzdDsNCj4gDQo+IG5vdGUgdGhh dCBtb3JlIFJUTC1leHBhbmQtaXNoIHdvdWxkIGJlIHRvIHNpbXBseSBleHBhbmQgJ2xocycgYW5k DQo+IHNlZSB3aGV0aGVyIGl0J3MgYSBSRUdfUCBvciBhIE1FTV9QIGFuZCBkZWNpZGUgYmFzZWQg b24gdGhhdC4gIE9mIGNvdXJzZQ0KPiB0aGF0IG5vIGxvbmdlciBhbGxvd3MgeW91IHRvIHVzZSB0 aGUgaGlnaC1sZXZlbCBleHBhbmRfYXNzaWdubWVudA0KPiBvciBtZW1zZXQgYnV0IHlvdSdkIG5l ZWQgdG8gd29yayBvbiBhIGxvd2VyIGxldmVsIHRoZW4uDQo+IA0KPiBSaWNoYXJkLg0KDQoNCk15 IGN1cnJlbnQgY29kZSBmb3IgZXhwYW5kX0RFRkVSUkVEX0lOSVQgaXMgbGlrZSB0aGUgZm9sbG93 aW5nLCBjb3VsZCB5b3UgY2hlY2sgYW5kIHNlZSB3aGV0aGVyIHRoZXJlIGlzIGFueSBpc3N1ZSBm b3IgaXQ6DQoNCiNkZWZpbmUgSU5JVF9QQVRURVJOX1ZBTFVFICAweEZFDQpzdGF0aWMgdm9pZA0K ZXhwYW5kX0RFRkVSUkVEX0lOSVQgKGludGVybmFsX2ZuLCBnY2FsbCAqc3RtdCkNCnsNCiAgdHJl ZSBsaHMgPSBnaW1wbGVfY2FsbF9saHMgKHN0bXQpOw0KICB0cmVlIHZhcl9zaXplID0gZ2ltcGxl X2NhbGxfYXJnIChzdG10LCAwKTsNCiAgZW51bSBhdXRvX2luaXRfdHlwZSBpbml0X3R5cGUNCiAg ICA9IChlbnVtIGF1dG9faW5pdF90eXBlKSBUUkVFX0lOVF9DU1RfTE9XIChnaW1wbGVfY2FsbF9h cmcgKHN0bXQsIDEpKTsNCiAgYm9vbCBpc192bGEgPSAoYm9vbCkgVFJFRV9JTlRfQ1NUX0xPVyAo Z2ltcGxlX2NhbGxfYXJnIChzdG10LCAyKSk7DQoNCiAgdHJlZSB2YXJfdHlwZSA9IFRSRUVfVFlQ RSAobGhzKTsNCiAgZ2NjX2Fzc2VydCAoaW5pdF90eXBlID4gQVVUT19JTklUX1VOSU5JVElBTEla RUQpOw0KDQogIGlmIChpc192bGEgfHwgKCF1c2VfcmVnaXN0ZXJfZm9yX2RlY2wgKGxocykpKQ0K ICAgIHsNCiAgICAgIGlmIChUUkVFX0NPREUgKGxocykgPT0gU1NBX05BTUUpDQogICAgICAgIGxo cyA9IFNTQV9OQU1FX1ZBUiAobGhzKTsNCiAgICAvKiBJZiB0aGlzIGlzIGEgVkxBIG9yIHRoZSB2 YXJpYWJsZSBpcyBub3QgaW4gcmVnaXN0ZXIsDQogICAgICAgZXhwYW5kIHRvIGEgbWVtc2V0IHRv IGluaXRpYWxpemUgaXQuICAqLw0KICAgICAgdHJlZSB2YXJfYWRkciA9IE5VTExfVFJFRTsNCiAg ICAgIGlmIChpc192bGEpDQogICAgICAgIHZhcl9hZGRyID0gVFJFRV9PUEVSQU5EIChsaHMsIDAp Ow0KICAgICAgZWxzZQ0KICAgICAgICB7DQogICAgICAgICAgVFJFRV9BRERSRVNTQUJMRSAobGhz KSA9IDE7DQogICAgICAgICAgdmFyX2FkZHIgPSBidWlsZF9mb2xkX2FkZHJfZXhwciAobGhzKTsN CiAgICAgICAgfQ0KDQogICAgICB0cmVlIHZhbHVlID0gKGluaXRfdHlwZSA9PSBBVVRPX0lOSVRf UEFUVEVSTikgPw0KICAgICAgICAgICAgICAgICAgICBidWlsZF9pbnRfY3N0ICh1bnNpZ25lZF9j aGFyX3R5cGVfbm9kZSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSU5JVF9Q QVRURVJOX1ZBTFVFKSA6DQogICAgICAgICAgICAgICAgICAgIGJ1aWxkX3plcm9fY3N0ICh1bnNp Z25lZF9jaGFyX3R5cGVfbm9kZSk7DQogICAgICB0cmVlIG1fY2FsbCA9IGJ1aWxkX2NhbGxfZXhw ciAoYnVpbHRpbl9kZWNsX2ltcGxpY2l0IChCVUlMVF9JTl9NRU1TRVQpLA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDMsIHZhcl9hZGRyLCB2YWx1ZSwgdmFyX3NpemUpOw0K ICAgICAgLyogRXhwYW5kIHRoaXMgbWVtc2V0IGNhbGwuICAqLw0KICAgICAgZXhwYW5kX2J1aWx0 aW5fbWVtc2V0IChtX2NhbGwsIE5VTExfUlRYLCBUWVBFX01PREUgKHZhcl90eXBlKSk7DQogICAg fQ0KICBlbHNlDQogICAgew0KICAgIC8qIElmIHRoaXMgdmFyaWFibGUgaXMgaW4gYSByZWdpc3Rl ciwgdXNlIGV4cGFuZF9hc3NpZ25tZW50IG1pZ2h0DQogICAgICAgZ2VuZXJhdGUgYmV0dGVyIGNv ZGUuICAqLw0KICAgICAgdHJlZSBwYXR0ZXJuID0gTlVMTF9UUkVFOw0KICAgICAgdW5zaWduZWQg SE9TVF9XSURFX0lOVCB0b3RhbF9ieXRlcw0KICAgICAgICA9IHRyZWVfdG9fdWh3aSAoVFlQRV9T SVpFX1VOSVQgKHZhcl90eXBlKSk7DQoNCiAgICAgIGlmIChpbml0X3R5cGUgPT0gQVVUT19JTklU X1BBVFRFUk4pDQogICAgICAgIHsNCiAgICAgICAgICBpZiAoY2FuX25hdGl2ZV9pbnRlcnByZXRf dHlwZV9wICh2YXJfdHlwZSkpDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgIHVuc2lnbmVk IGNoYXIgKmJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopIHhtYWxsb2MgKHRvdGFsX2J5dGVzKTsNCiAg ICAgICAgICAgICAgbWVtc2V0IChidWYsIElOSVRfUEFUVEVSTl9WQUxVRSwgdG90YWxfYnl0ZXMp Ow0KICAgICAgICAgICAgICBwYXR0ZXJuID0gbmF0aXZlX2ludGVycHJldF9leHByICh2YXJfdHlw ZSwgYnVmLCB0b3RhbF9ieXRlcyk7DQogICAgICAgICAgICAgIGdjY19hc3NlcnQgKHBhdHRlcm4p Ow0KICAgICAgICAgICAgfQ0KICAgICAgICAgIGVsc2UNCiAgICAgICAgICAgIHsNCiAgICAgICAg ICAgICAgdHJlZSBpbmRleF90eXBlID0gYnVpbGRfaW5kZXhfdHlwZSAoc2l6ZV9pbnQgKHRvdGFs X2J5dGVzIC0gMSkpOw0KICAgICAgICAgICAgICB0cmVlIGFycmF5X3R5cGUgPSBidWlsZF9hcnJh eV90eXBlICh1bnNpZ25lZF9jaGFyX3R5cGVfbm9kZSwNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXhfdHlwZSk7DQogICAgICAgICAgICAgIHRy ZWUgZWxlbWVudCA9IGJ1aWxkX2ludF9jc3QgKHVuc2lnbmVkX2NoYXJfdHlwZV9ub2RlLA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTklUX1BBVFRFUk5fVkFM VUUpOw0KICAgICAgICAgICAgICB2ZWM8Y29uc3RydWN0b3JfZWx0LCB2YV9nYz4gKmVsdHMgPSBO VUxMOw0KICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGludCBpID0gMDsgaSA8IHRvdGFsX2J5 dGVzOyBpKyspDQogICAgICAgICAgICAgICAgQ09OU1RSVUNUT1JfQVBQRU5EX0VMVCAoZWx0cywg TlVMTF9UUkVFLCBlbGVtZW50KTsNCiAgICAgICAgICAgICAgcGF0dGVybiA9IGJ1aWxkX2NvbnN0 cnVjdG9yIChhcnJheV90eXBlLCBlbHRzKTsNCiAgICAgICAgICAgICAgcGF0dGVybiA9IGJ1aWxk MSAoVklFV19DT05WRVJUX0VYUFIsIHZhcl90eXBlLCBwYXR0ZXJuKTsNCiAgICAgICAgICAgIH0N CiAgICAgICAgfQ0KDQogICAgICB0cmVlIGluaXQgPSAoaW5pdF90eXBlID09IEFVVE9fSU5JVF9Q QVRURVJOKSA/DQogICAgICAgICAgICAgICAgICAgcGF0dGVybiA6DQogICAgICAgICAgICAgICAg ICAgYnVpbGRfemVyb19jc3QgKHZhcl90eXBlKTsNCiAgICAgIGV4cGFuZF9hc3NpZ25tZW50IChs aHMsIGluaXQsIGZhbHNlKTsNCiAgICB9DQp9DQoNClRoYW5rcy4NCg0KUWluZw0KDQoNCg0K