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 8EC8E38930E4 for ; Mon, 12 Jul 2021 18:14:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8EC8E38930E4 Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 16CI7Hdt007659; Mon, 12 Jul 2021 18:14:00 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 39rnxdgt0n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jul 2021 18:13:59 +0000 Received: from pps.filterd (aserp3020.oracle.com [127.0.0.1]) by aserp3020.oracle.com (8.16.0.42/8.16.0.42) with SMTP id 16CI6eKe016340; Mon, 12 Jul 2021 18:13:59 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2174.outbound.protection.outlook.com [104.47.57.174]) by aserp3020.oracle.com with ESMTP id 39q3c86db0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jul 2021 18:13:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CjqPl7mmRqqNTLLSMMjlCuurdttT9/kcfJoibAaQ9z5gCB8NKfEOYxKDVcS3QZCENEsLNC11wwrLapdOGpaH5y1Dr6Hd+hKkZtQKaPmgWHf7QiBR+pqQUXqc2F6TZIZMD+TriO0+8KIQElEA08UpwrNl+HsJShr6wGIv4Wve750O+U+m6gVgIWlM26E5YEXm+6eJqaCD4jBmcxth3ysmvMQ10nfy+rBziMuCO1/k2Gi4toSOPBgbdqy0vBrKIUoBzL3qPwHPbdcCymdJCwxiHJxuaaHzUgmM+Za9A1iXNaeVgkMUocXOg0hgUDAbLmnCU6/4nEiGgfTrxxnEMudnow== 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=ElM4R2VCtZKmo75p6y8Kc20nPxoxle1Vwg8UfbEAJIw=; b=DKungXkCDmFajIW01S30JBbGsiUHgU7wq8Y9FlVUS84oZFn0C6vpkY/l0B/ddnnyvBw1215GLfodYV4liNEj1kuD6e5+irUsbRIsdxOn/hxfcOkIIQgADQIcLlM/zDx3FtoL6pMB3QV0z+VyvuEJb+w9yMVYEfjqtuzDaz46NVpxyttvABa6GwEvxkWu3Tja34RjkNQ8l4cWHeaR/enVnjI1kLc4jlzSPrXtBt8wmeZkI76MRpf6o+KvubZGcbxhQy/lkKYkCFRfV1SIycQ59qwcQdsKQSzF5BOgemBadcoedAC07qLwwLQ/FR5adqoeGC3/M0MrFNPG5sFl8Rq5Vg== 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 CH0PR10MB4858.namprd10.prod.outlook.com (2603:10b6:610:cb::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.23; Mon, 12 Jul 2021 18:13:57 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::40d3:31ef:73a8:802]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::40d3:31ef:73a8:802%3]) with mapi id 15.20.4308.026; Mon, 12 Jul 2021 18:13:57 +0000 From: Qing Zhao To: Martin Jambor CC: Richard Sandiford , Richard Biener , kees cook , gcc-patches Qing Zhao via Subject: Re: [patch][version 4]add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Topic: [patch][version 4]add -ftrivial-auto-var-init and variable attribute "uninitialized" to gcc Thread-Index: AQHXc1bW8CMg6dRG/0GDGBORAHTjkKs5E/UAgACA2ICAAUDDAIAEKShXgACAsYCAABpQAIAAEvQA Date: Mon, 12 Jul 2021 18:13:57 +0000 Message-ID: References: <6165EBB7-9F0C-4112-9B81-EEE76F893234@oracle.com> <1AF776B5-FB73-4900-986C-D46DFA8E72DA@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: 7f202784-704e-46a0-f400-08d94560d0e3 x-ms-traffictypediagnostic: CH0PR10MB4858: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: GFnry0CLIoRTHmxao9ODLQzSZNweyjlkwoeuK/5IuCrd4tA5pVGJZxGEXrSz2IvAoVeu/S86fRp6jJIqMUlfbCgve4eUUcK8qyBniSEJIpzp1CASr0E/v8LeWfZDSnuBh9TnU193MmC33TnpUrcHj4Ut9mxZYpxb3HVH2jQAYMK1F9b+D4A0C3h5mVt16mSId94pUBeUGgKJa23OMYBDm5MIE7MjVPntTxJj30GPa4dDGqv4HM+nYkFhSc/BqDOaFjza9M1nkCYgG8yvKxR6yC8ukhZXfAkjetSf0S6dDgITYmJg799jwMGZDUWX1qm6RW6rM5qEf4m1x8F834dlkOaL0fj5YYrpo5O+2rjeUtGOZV4M8ayvFHXRDCyrA+8xCStbjOc/oRsjOZuPjSYwV1ZjbHF3BV86eIprDNMlnShODrt+eE5Sqx6TVO2XKQVHBix83Fzdc48ObPak1GzvDsruZh77lgFR4t2LvBVjmupNjW2f/WPlEc2cgxS8Q5jsu+E61SZvLDhXIT76dfAvroEHjgZesiIqVhtF66D8Vbwo7fGh6lklulRhveUI72LuR5SOu1PgU+y2Zl5eE9r1bPy0PxXDuWIlL9kPl6MN2kDgqvPM/9Uvb0qOQp34O1Yfq1Rp65WebD5xWQFoK3ntbAoLgClho4RGtNnX1q+CGzBgV3rTkPY/tQHDx86GOFe2fF+WvHVMYSi6NMfUkHZZIBJE7VTssZVbzPnCmKoEIJOaKrb2B+/rznVSAcx8HcP09PLsJtA+j3smC9pAiRe2Au/6yz+2L82UVyTd5YZQTIY= 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:(39860400002)(396003)(366004)(346002)(136003)(376002)(122000001)(36756003)(83380400001)(2616005)(8936002)(33656002)(5660300002)(71200400001)(38100700002)(8676002)(44832011)(186003)(6916009)(53546011)(2906002)(6506007)(66946007)(6512007)(478600001)(316002)(64756008)(66446008)(66556008)(66476007)(76116006)(6486002)(54906003)(4326008)(91956017)(86362001)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?THpPRjBFYjIydlpCN2VhY3dRZm40WlFQRmNXZHZkSW1lUWRVcGZjdDYzeVZx?= =?utf-8?B?Ny9Delo2OEliM0RqbDBiQzFqQVZhUHdMS1JIcEZTdmpsN252RjgxZGlIUmlW?= =?utf-8?B?N294VktzU3BiektnUStXWGVuUU8zZ1hZNURSQ3dWZ2lyTXNrNVZadFpwZEUr?= =?utf-8?B?QmtkTGpaNHRPY01ST2hZTHlBdlJYQTNiYkxqcXRXTXJzOXd0TVR3R1lJdDVG?= =?utf-8?B?c2J6ZmpVNERNaW1nWEtDREZHY29TMlhtM1FyUHltc3pnRVgrYUxGWEVFVmNL?= =?utf-8?B?cHJxSjZaaXhHRUNPRnhvQURYRnExOTgzOGZlYnNmZW1HK2s1UVBCdDJLV1JC?= =?utf-8?B?NmNxYUc5eEZ4bDVzM3YwS2t2SVlvR3d2VUptMnM3SEwzVVczTWk5MzdVRDdm?= =?utf-8?B?LzNKSWE3KzJJM0tIcENibTV1R1ZFS1VER05vRUo0MkkwMzNUaWt1NVVkY0c2?= =?utf-8?B?SHRpOGdFd0JGR0NLek1jU1lteEF6V0svTjdQbTI1cEN5OGpYbEpLamFBQWYy?= =?utf-8?B?SlJ3ZHdvZWUwN20wS0RZcUZ4OEEwUmg0N2VzY1p5eW5ibW9NQ0Yrc2ovbWdh?= =?utf-8?B?TFJuSVc0NFBJTElJb3hxTkQ0S0svOFEwK3BQSUlQblVSdmlaRHlPcVFZREdL?= =?utf-8?B?aDlubXF5NWVQKzJtWXV1RnZGMXBOczNFeE05akc4MVRmSmVBNU9lTXhWd0F1?= =?utf-8?B?eW5ZOEFKUVRjMHF0cmdYbXF3bG1saG5Fc0J4UzFZWGxkTVNCbzRhaVljeVlr?= =?utf-8?B?NGo2bEVsSzIxSTh6WUF1OUk5VWNYb2VWblEwc1grbFBBbWlpZ1pkQ0xQVGpB?= =?utf-8?B?U3hGUkR6dlBUVE1ySnhCQ0FYdmRBV0ltdERDMlcyQXFJbmVqckdnaU5wZmNo?= =?utf-8?B?MWpTMXpuaE16ZGR6dTZBSjhOWUhrNjFTbExOaGdQOXRSUlFPZDFoWkVGak9u?= =?utf-8?B?R052Q0xBYmlXSVF4MVg3RkptRDdaVjF6VlIxWUtsZCs4Y3RKbGoyQmJleEl0?= =?utf-8?B?YnFtN29zdGVyRlBxWnVWbC9WbldxaERhdkNTbnNLcVM4WnVVN3VsOEF4TDds?= =?utf-8?B?SjB1WDQyTmlhMXd2bFFxYUxnOFV0STkxVzlNK0lNRGJFRXZwWUkvSjVSb2NS?= =?utf-8?B?TkdHbTU5clQ4V0c3RDg0SlJSR0xJUjlQMnZicjRSS0cwZ1cvSVVoZng0aTUx?= =?utf-8?B?amVOWFJMQ1Zxcy9mcERJcGRKWmxzWFNQVDdJNHowZXJkNTFIcURzczdGNHpU?= =?utf-8?B?UGRpRk5hT043MTN6cW15TFExR3JNMWNkRXRpdGJZS1c2cENoeWFhTStSdUhC?= =?utf-8?B?U0JPNk9ybnY5SEY2K1lUbFZHMnlSVjdGWi9EN1dCN0RLSTJyQWFUU1YyTzhs?= =?utf-8?B?VlM3SGhqTWdRTG5kTXF4VGZvTmYxZUR3c08wdUtxWTVnTnE4c0RxSjkwMmQ1?= =?utf-8?B?SlNoSXd5Mll3U2hXTXg0Z2o0eEVWZ0lFTWd4VTFJL0RGWjViNUw5RURyaElw?= =?utf-8?B?UVNzQmhrSSt1YnNuQjdvbnkrQUVBaG9iY1FNZExIZGdvVlhybWJzOTdJL1ZZ?= =?utf-8?B?dTdSRW5vdldPSFQycGl6eVJVVmwyL0pBcUZpMXJZeEUyVTY3Wkt2SjF2ZkFY?= =?utf-8?B?SWNvZktGLzU3YTlub3p3QXA0bkNEWVFlMUlqZ3puT3NlLzgwaTRjNmhDckQ5?= =?utf-8?B?QlFTYzk2WGVKUDJRR0xUcUpRQUhzV2Z6R2J0WnpTYVhudFhDZ0JJTFd5Rkgr?= =?utf-8?B?cERwaFN5MFBzVndpUVpoTG9MNHBqdTJ5czF3NzFBSjRTYzBFRlZGVmVqa0dK?= =?utf-8?B?U3pvMzFCdW5OZCtoaEdhbmJ6dENnRFlpWUpLZFg3TU96a2xDcVErNzlLWVBH?= =?utf-8?Q?7b2PFMi2hNb2Y?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <26D40930C8AF6E43B0EBD205F58AFF90@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: 7f202784-704e-46a0-f400-08d94560d0e3 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jul 2021 18:13:57.2108 (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: aLSEn43VEjupQvRjKRuIRnEn5RcwPMBsl19i3iW01egv+YoDqanwbht0pw41p5ugA465HAE6EH0GjEleItMQ8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB4858 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10043 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxscore=0 suspectscore=0 phishscore=0 adultscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2107120129 X-Proofpoint-GUID: 6qJTczfTuPzh6i9e6hr8sdPN-lOuUmgC X-Proofpoint-ORIG-GUID: 6qJTczfTuPzh6i9e6hr8sdPN-lOuUmgC X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, 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, 12 Jul 2021 18:14:05 -0000 SGksIE1hcnRpbiwNCg0KVGhhbmtzIGEgbG90IGZvciB5b3VyIGV4cGVyaW1lbnRzIGFuZCBleGFt cGxlcywgdGhleSBhcmUgcmVhbGx5IGhlbHBmdWwuDQoNClNvLCBiYXNlZCBvbiB5b3VyIHN0dWR5 LCBJIHdpbGwgZGVsZXRlIHRoZSBjb2RlIHRoYXQgaGFuZGxlIA0KZ3JwX3RvX2JlX2RlYnVnX3Jl cGxhY2VkIGFjY2Vzc2VzIGluIGdlbmVyYXRlX3N1YnRyZWVfZGVmZXJyZWRfaW5pdC4NCg0KTGV0 IG1lIGtub3cgaWYgeW91IGhhdmUgZnVydGhlciBjb21tZW50cyBvbiB0aGlzLg0KDQpRaW5nDQoN Cg0KPiBPbiBKdWwgMTIsIDIwMjEsIGF0IDEyOjA2IFBNLCBNYXJ0aW4gSmFtYm9yIDxtamFtYm9y QHN1c2UuY3o+IHdyb3RlOg0KPiANCj4gSGksDQo+IA0KPiBPbiBNb24sIEp1bCAxMiAyMDIxLCBR aW5nIFpoYW8gd3JvdGU6DQo+Pj4gT24gSnVsIDEyLCAyMDIxLCBhdCAyOjUxIEFNLCBSaWNoYXJk IFNhbmRpZm9yZCA8cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4gd3JvdGU6DQo+Pj4gDQo+Pj4g TWFydGluIEphbWJvciA8bWphbWJvckBzdXNlLmN6PiB3cml0ZXM6DQo+Pj4+IE9uIFRodSwgSnVs IDA4IDIwMjEsIFFpbmcgWmhhbyB3cm90ZToNCj4+Pj4+IChSZXNlbmQgdGhpcyBlbWFpbCBzaW5j ZSB0aGUgcHJldmlvdXMgb25lIGRpZG7igJl0IHF1b3RlLCBJIGNoYW5nZWQgb25lDQo+Pj4+PiBz ZXR0aW5nIGluIG15IG1haWwgY2xpZW50LCBob3BlZnVsbHkgdGhhdCBjYW4gZml4IHRoaXMgaXNz dWUpLg0KPj4+Pj4gDQo+Pj4+PiBIaSwgTWFydGluLA0KPj4+Pj4gDQo+Pj4+PiBUaGFuayB5b3Ug Zm9yIHRoZSByZXZpZXcgYW5kIGNvbW1lbnQuDQo+Pj4+PiANCj4+Pj4+PiBPbiBKdWwgOCwgMjAy MSwgYXQgODoyOSBBTSwgTWFydGluIEphbWJvciA8bWphbWJvckBzdXNlLmN6PiB3cm90ZToNCj4+ Pj4+Pj4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXNyYS5jIGIvZ2NjL3RyZWUtc3JhLmMNCj4+Pj4+ Pj4gaW5kZXggYzA1ZDIyZjNlOGYxLi4zNTA1MWQ3YzZiOTYgMTAwNjQ0DQo+Pj4+Pj4+IC0tLSBh L2djYy90cmVlLXNyYS5jDQo+Pj4+Pj4+ICsrKyBiL2djYy90cmVlLXNyYS5jDQo+Pj4+Pj4+IEBA IC0zODQsNiArMzg0LDEzIEBAIHN0YXRpYyBzdHJ1Y3QNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IC8qIE51 bWJiZXIgb2YgY29tcG9uZW50cyBjcmVhdGVkIHdoZW4gc3BsaXR0aW5nIGFnZ3JlZ2F0ZSBwYXJh bWV0ZXJzLiAgKi8NCj4+Pj4+Pj4gaW50IHBhcmFtX3JlZHVjdGlvbnNfY3JlYXRlZDsNCj4+Pj4+ Pj4gKw0KPj4+Pj4+PiArICAvKiBOdW1iZXIgb2YgZGVmZXJyZWRfaW5pdCBjYWxscyB0aGF0IGFy ZSBtb2RpZmllZC4gICovDQo+Pj4+Pj4+ICsgIGludCBkZWZlcnJlZF9pbml0Ow0KPj4+Pj4+PiAr DQo+Pj4+Pj4+ICsgIC8qIE51bWJlciBvZiBkZWZlcnJlZF9pbml0IGNhbGxzIHRoYXQgYXJlIGNy ZWF0ZWQgYnkNCj4+Pj4+Pj4gKyAgICAgZ2VuZXJhdGVfc3VidHJlZV9kZWZlcnJlZF9pbml0LiAg Ki8NCj4+Pj4+Pj4gKyAgaW50IHN1YnRyZWVfZGVmZXJyZWRfaW5pdDsNCj4+Pj4+Pj4gfSBzcmFf c3RhdHM7DQo+Pj4+Pj4+IA0KPj4+Pj4+PiBzdGF0aWMgdm9pZA0KPj4+Pj4+PiBAQCAtNDA5Niw2 ICs0MTAzLDExMCBAQCBnZXRfcmVwbF9kZWZhdWx0X2RlZl9zc2FfbmFtZSAoc3RydWN0IGFjY2Vz cyAqcmFjYywgdHJlZSByZWdfdHlwZSkNCj4+Pj4+Pj4gcmV0dXJuIGdldF9vcl9jcmVhdGVfc3Nh X2RlZmF1bHRfZGVmIChjZnVuLCByYWNjLT5yZXBsYWNlbWVudF9kZWNsKTsNCj4+Pj4+Pj4gfQ0K Pj4+Pj4+PiANCj4+Pj4+Pj4gKw0KPj4+Pj4+PiArLyogR2VuZXJhdGUgc3RhdGVtZW50cyB0byBj YWxsIC5ERUZFUlJFRF9JTklUIHRvIGluaXRpYWxpemUgc2NhbGFyIHJlcGxhY2VtZW50cw0KPj4+ Pj4+PiArICAgb2YgYWNjZXNzZXMgd2l0aGluIGEgc3VidHJlZSBBQ0NFU1M7IGFsbCBpdHMgY2hp bGRyZW4sIHNpYmxpbmdzIGFuZCB0aGVpcg0KPj4+Pj4+PiArICAgY2hpbGRyZW4gYXJlIHRvIGJl IHByb2Nlc3NlZC4NCj4+Pj4+Pj4gKyAgIEdTSSBpcyBhIHN0YXRlbWVudCBpdGVyYXRvciB1c2Vk IHRvIHBsYWNlIHRoZSBuZXcgc3RhdGVtZW50cy4gICovDQo+Pj4+Pj4+ICtzdGF0aWMgdm9pZA0K Pj4+Pj4+PiArZ2VuZXJhdGVfc3VidHJlZV9kZWZlcnJlZF9pbml0IChzdHJ1Y3QgYWNjZXNzICph Y2Nlc3MsDQo+Pj4+Pj4+ICsJCQkJdHJlZSBpbml0X3R5cGUsDQo+Pj4+Pj4+ICsJCQkJdHJlZSBp c192bGEsDQo+Pj4+Pj4+ICsJCQkJZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaSwNCj4+Pj4+Pj4g KwkJCQlsb2NhdGlvbl90IGxvYykNCj4+Pj4+Pj4gK3sNCj4+Pj4+Pj4gKyAgZG8NCj4+Pj4+Pj4g KyAgICB7DQo+Pj4+Pj4+ICsgICAgICBpZiAoYWNjZXNzLT5ncnBfdG9fYmVfcmVwbGFjZWQpDQo+ Pj4+Pj4+ICsJew0KPj4+Pj4+PiArCSAgdHJlZSByZXBsID0gZ2V0X2FjY2Vzc19yZXBsYWNlbWVu dCAoYWNjZXNzKTsNCj4+Pj4+Pj4gKwkgIGdpbXBsZSAqY2FsbA0KPj4+Pj4+PiArCSAgICA9IGdp bXBsZV9idWlsZF9jYWxsX2ludGVybmFsIChJRk5fREVGRVJSRURfSU5JVCwgMywNCj4+Pj4+Pj4g KwkJCQkJICBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChyZXBsKSksDQo+Pj4+Pj4+ICsJCQkJ CSAgaW5pdF90eXBlLCBpc192bGEpOw0KPj4+Pj4+PiArCSAgZ2ltcGxlX2NhbGxfc2V0X2xocyAo Y2FsbCwgcmVwbCk7DQo+Pj4+Pj4+ICsJICBnc2lfaW5zZXJ0X2JlZm9yZSAoZ3NpLCBjYWxsLCBH U0lfU0FNRV9TVE1UKTsNCj4+Pj4+Pj4gKwkgIHVwZGF0ZV9zdG10IChjYWxsKTsNCj4+Pj4+Pj4g KwkgIGdpbXBsZV9zZXRfbG9jYXRpb24gKGNhbGwsIGxvYyk7DQo+Pj4+Pj4+ICsJICBzcmFfc3Rh dHMuc3VidHJlZV9kZWZlcnJlZF9pbml0Kys7DQo+Pj4+Pj4+ICsJfQ0KPj4+Pj4+PiArICAgICAg ZWxzZSBpZiAoYWNjZXNzLT5ncnBfdG9fYmVfZGVidWdfcmVwbGFjZWQpDQo+Pj4+Pj4+ICsJew0K Pj4+Pj4+PiArCSAgdHJlZSBkcmVwbCA9IGdldF9hY2Nlc3NfcmVwbGFjZW1lbnQgKGFjY2Vzcyk7 DQo+Pj4+Pj4+ICsJICB0cmVlIGNhbGwgPSBidWlsZF9jYWxsX2V4cHJfaW50ZXJuYWxfbG9jDQo+ Pj4+Pj4+ICsJCSAgICAgKFVOS05PV05fTE9DQVRJT04sIElGTl9ERUZFUlJFRF9JTklULA0KPj4+ Pj4+PiArCQkgICAgICBUUkVFX1RZUEUgKGRyZXBsKSwgMywNCj4+Pj4+Pj4gKwkJICAgICAgVFlQ RV9TSVpFX1VOSVQgKFRSRUVfVFlQRSAoZHJlcGwpKSwNCj4+Pj4+Pj4gKwkJICAgICAgaW5pdF90 eXBlLCBpc192bGEpOw0KPj4+Pj4+PiArCSAgZ2RlYnVnICpkcyA9IGdpbXBsZV9idWlsZF9kZWJ1 Z19iaW5kIChkcmVwbCwgY2FsbCwNCj4+Pj4+Pj4gKwkJCQkJCWdzaV9zdG10ICgqZ3NpKSk7DQo+ Pj4+Pj4+ICsJICBnc2lfaW5zZXJ0X2JlZm9yZSAoZ3NpLCBkcywgR1NJX1NBTUVfU1RNVCk7DQo+ Pj4+Pj4gDQo+Pj4+Pj4gSXMgaGFuZGxpbmcgb2YgZ3JwX3RvX2JlX2RlYnVnX3JlcGxhY2VkIGFj Y2Vzc2VzIG5lY2Vzc2FyeSBoZXJlPyAgSWYgc28sDQo+Pj4+Pj4gd2h5PyAgZ3JwX3RvX2JlX2Rl YnVnX3JlcGxhY2VkIGFjY2Vzc2VzIGFyZSB0aGVyZSBvbmx5IHRvIGZhY2lsaXRhdGUNCj4+Pj4+ PiBkZWJ1ZyBpbmZvcm1hdGlvbiBhYm91dCBhIHBhcnQgb2YgYW4gYWdncmVnYXRlIGRlY2wgaXMg dGhhdCBpcyBsaWtlbHkNCj4+Pj4+PiBnb2luZyB0byBiZSBlbnRpcmVseSByZW1vdmVkIC0gc28g dGhhdCBkZWJ1Z2dlcnMgY2FuIHNvbWV0aW1lcyBzaG93IHRvDQo+Pj4+Pj4gdXNlcnMgaW5mb3Jt YXRpb24gYWJvdXQgd2hhdCB0aGV5IHdvdWxkIGNvbnRhaW4gaGFkIHRoZXkgbm90IHJlbW92ZWQu DQo+Pj4+Pj4gSXQgc2VlbXMgc3RyYW5nZSB5b3UgbmVlZCB0byBtYXJrIHRoZW0gYXMgdW5pbml0 aWFsaXplZCBiZWNhdXNlIHRoZXkNCj4+Pj4+PiBzaG91bGQgbm90IGhhdmUgYW55IGNvbnN1bWVy cy4gIChCdXQgcGVyaGFwcyBpdCBpcyBhbHNvIGhhcm1sZXNzLikNCj4+Pj4+IA0KPj4+Pj4gVGhp cyBwYXJ0IGhhcyBiZWVuIGRpc2N1c3NlZCBkdXJpbmcgdGhlIDJuZCB2ZXJzaW9uIG9mIHRoZSBw YXRjaCwgYnV0DQo+Pj4+PiBJIHRoaW5rIHRoYXQgbW9yZSBkaXNjdXNzaW9uIG1pZ2h0IGJlIG5l Y2Vzc2FyeS4NCj4+Pj4+IA0KPj4+Pj4gSW4gdGhlIHByZXZpb3VzIGRpc2N1c3Npb24sIFJpY2hh cmQgU2FuZGlmb3JkIG1lbnRpb25lZDoNCj4+Pj4+IChodHRwczovL2djYy5nbnUub3JnL3BpcGVy bWFpbC9nY2MtcGF0Y2hlcy8yMDIxLUFwcmlsLzU2ODYyMC5odG1sKToNCj4+Pj4+IA0KPj4+Pj4g PT09PT0NCj4+Pj4+IA0KPj4+Pj4gSSBndWVzcyB0aGUgdGhpbmcgd2UgbmVlZCB0byBkZWNpZGUg aGVyZSBpcyB3aGV0aGVyIC1mdHJpdmlhbC1hdXRvLXZhci1pbml0DQo+Pj4+PiBzaG91bGQgYWZm ZWN0IGRlYnVnLW9ubHkgY29uc3RydWN0cyB0b28uICBJZiBpdCBkb2Vzbid0LCBleG1haW5pbmcg cmVtb3ZlZA0KPj4+Pj4gY29tcG9uZW50cyBpbiBhIGRlYnVnZ2VyIG1pZ2h0IHNob3cgdW5pbml0 aWFsaXNlZCB2YWx1ZXMgaW4gY2FzZXMgd2hlcmUNCj4+Pj4+IHRoZSB1c2VyIHdhcyBleHBlY3Rp bmcgaW5pdGlhbGlzZWQgb25lcy4gIFRoZXJlIHdvdWxkIGJlIG5vIHNlY3VyaXR5DQo+Pj4+PiBj b25jZXJuLCBidXQgaXQgbWlnaHQgYmUgc3VycHJpc2luZy4NCj4+Pj4+IA0KPj4+Pj4gSSB0aGlu ayBpbiBwcmluY2lwbGUgdGhlIERSSFMgY2FuIGNvbnRhaW4gYSBjYWxsIHRvIERFRkVSUkVEX0lO SVQuDQo+Pj4+PiBEb2luZyB0aGF0IHdvdWxkIHByb2JhYmx5IHJlcXVpcmUgZnVydGhlciBoYW5k bGluZyBlbHNld2hlcmUgdGhvdWdoLg0KPj4+Pj4gDQo+Pj4+PiA9PT09PQ0KPj4+Pj4gDQo+Pj4+ PiBJIGFtIHN0aWxsIG5vdCB2ZXJ5IGNvbmZpZGVudCBub3cgZm9yIHRoaXMgcGFydCBvZiB0aGUg Y2hhbmdlLg0KPj4+PiANCj4+Pj4gSSBzZWUuICBJIHN0aWxsIHRlbmQgdG8gdGhpbmsgdGhhdCB3 aXRoIG9yIHdpdGhvdXQgdGhlIGdlbmVyYXRpb24gb2YNCj4+Pj4gZ2ltcGxlX2J1aWxkX2RlYnVn X2JpbmRzLCB0aGUgZGVidWdnZXIgd291bGQgc3RpbGwgbm90IGRpc3BsYXkgYW55IHZhbHVlDQo+ Pj4+IGZvciB0aGUgY29tcG9uZW50IGluIHF1ZXN0aW9uLiAgV2l0aG91dCBpdCB0aGVyZSB3b3Vs ZCBiZSBubyBpbmZvcm1hdGlvbg0KPj4+PiBhYm91dCB0aGUgY29tcG9uZW50IGF0IGEgYW55IHBs YWNlIGluIGNvZGUgYWZmZWN0ZWQgYnkgdGhpcywgd2l0aCBpdCB0aGUNCj4+Pj4gY29tcG9uZW50 IHdvdWxkIGJlIGV4cGxpY2l0ZWx5IHVuaW5pdGlhbGl6ZWQuICBCdXQgT0suDQo+Pj4gDQo+Pj4g RlRSLCBJIGRvbid0IGhhdmUgYSBzdHJvbmcgb3BpbmlvbiBoZXJlLiAgWW91IGtub3cgdGhlIGNv ZGUgYmV0dGVyDQo+Pj4gdGhhbiBJIGRvLCBzbyBpZiB5b3UgdGhpbmsgbm90IGdlbmVyYXRpbmcg ZGVidWcgYmluZHMgaXMgYmV0dGVyIHRoZW4NCj4+PiBsZXQncyBkbyB0aGF0Lg0KPiANCj4gSSBh bSB2ZXJ5IGZsYXR0ZXJlZCB0aGF0IHlvdSB0aGluayBJIHVuZGVyc3RhbmQgZGVidWdfYmluZHMg d2VsbCA6LSkgIChJIGRvbid0KQ0KPiANCj4+IA0KPj4gSSBhbSBva2F5IHdpdGggbm90IGdlbmVy YXRpbmcgZGVidWcgYmluZHMgaGVyZS4NCj4+IA0KPj4gVGhlbiBJIHdpbGwganVzdCBkZWxldGUg dGhlIHBhcnQgb2YgY29kZSB0aGF0IGd1YXJkZWQgd2l0aCAgaWYgKGFjY2Vzcy0+Z3JwX3RvX2Jl X2RlYnVnX3JlcGxhY2VkKT8NCj4+IA0KPiANCj4gQnV0IEkgaGF2ZSBkb25lIHNvbWUgc2ltcGxl IGV4cGVyaW1lbnRzIGFuZCByZWFjaGVkIHRoZSBjb25jbHVzaW9uIHRoZQ0KPiBjb2RlIGlzIG5l dmVyIGV4ZWN1dGVkIGFuZCB3cm9uZy4gIEl0IGNhbiBnZXQgZXhlY3V0ZWQgaWYgeW91IGNoYW5n ZSB0aGUNCj4gaWYgc3RhdGVtZW50IGluIGJ1aWxkX2FjY2Vzc19mcm9tX2V4cHIgbGlrZSBJIGV4 cGxhaW5lZCBpbiBteSBwcmV2aW91cw0KPiBlbWFpbDoNCj4gDQo+ICBzdGF0aWMgYm9vbA0KPiAg YnVpbGRfYWNjZXNzX2Zyb21fZXhwciAodHJlZSBleHByLCBnaW1wbGUgKnN0bXQsIGJvb2wgd3Jp dGUpDQo+ICB7DQo+ICAgIHN0cnVjdCBhY2Nlc3MgKmFjY2VzczsNCj4gDQo+ICAgIGFjY2VzcyA9 IGJ1aWxkX2FjY2Vzc19mcm9tX2V4cHJfMSAoZXhwciwgc3RtdCwgd3JpdGUpOw0KPiAgICBpZiAo YWNjZXNzKQ0KPiAgICAgIHsNCj4gICAgICAgIC8qIFRoaXMgbWVhbnMgdGhlIGFnZ3JlZ2F0ZSBp cyBhY2Nlc3NlcyBhcyBhIHdob2xlIGluIGEgd2F5IG90aGVyIHRoYW4gYW4NCj4gICAgICAgICAg IGFzc2lnbiBzdGF0ZW1lbnQgYW5kIHRodXMgY2Fubm90IGJlIHJlbW92ZWQgZXZlbiBpZiB3ZSBo YWQgYSBzY2FsYXINCj4gICAgICAgICAgIHJlcGxhY2VtZW50IGZvciBldmVyeXRoaW5nLiAgKi8N Cj4gICAgICAgIGlmIChjYW5ub3Rfc2NhbGFyaXplX2F3YXlfYml0bWFwDQo+ICAgICAgICAgICAg JiYgIWdpbXBsZV9jYWxsX2ludGVybmFsX3AgKHN0bXQsIElGTl9ERUZFUlJFRF9JTklUKSkNCj4g ICAgICAgICAgYml0bWFwX3NldF9iaXQgKGNhbm5vdF9zY2FsYXJpemVfYXdheV9iaXRtYXAsIERF Q0xfVUlEIChhY2Nlc3MtPmJhc2UpKTsNCj4gICAgICAgIHJldHVybiB0cnVlOw0KPiAgICAgIH0N Cj4gICAgcmV0dXJuIGZhbHNlOw0KPiAgfQ0KPiANCj4gQnV0IHRoZW4gaXQgSUNFcyB3aGVuIHRo ZSBvcGVyYW5kIHNjYW5uZXIgYXR0ZW1wdHMgdG8gZ3JvayB0aGUgZGVidWcgYmluZDoNCj4gDQo+ ICB0ZXN0LmM6NDM6MTogaW50ZXJuYWwgY29tcGlsZXIgZXJyb3I6IGluIGdldF9leHByX29wZXJh bmRzLCBhdCB0cmVlLXNzYS1vcGVyYW5kcy5jOjk0NQ0KPiAgICAgNDMgfCB9DQo+IA0KPiBHZGIg cmV2ZWFscyB0aGUgc3RhdGVtZW50IGlzIHdoYXQgSSBzdXNwZWN0ZWQ6DQo+IA0KPiAgIzIgIDB4 MDAwMDAwMDAwMTU2ZWVhNiBpbiBvcGVyYW5kc19zY2FubmVyOjpwYXJzZV9zc2Ffb3BlcmFuZHMg KHRoaXM9MHg3ZmZmZmZmZmRhZDApDQo+ICAgICAgYXQgL2hvbWUvbWphbWJvci9nY2MvbWluZS9z cmMvZ2NjL3RyZWUtc3NhLW9wZXJhbmRzLmM6OTczDQo+ICA5NzMgICAgICAgICAgICAgZ2V0X2V4 cHJfb3BlcmFuZHMgKGdpbXBsZV9kZWJ1Z19iaW5kX2dldF92YWx1ZV9wdHIgKHN0bXQpLA0KPiAg KGdkYikgcGdnIHN0bXQNCj4gICMgREVCVUcgczJELjE5NzEgPT4gLkRFRkVSUkVEX0lOSVQgKDQs IDEsIDApDQo+IA0KPiBJdCB0dXJucyBvdXQgZGVidWcgYmluZHMgY2Fubm90IGhhdmUgQ0FMTF9F WFBScyBhcyBvcGVyYW5kcy4NCj4gDQo+IFNvIHllcywganVzdCBkbyBub3QgYXR0ZW1wdCB0byBo YW5kbGUgZ3JwX3RvX2JlX2RlYnVnX3JlcGxhY2VkIGFjY2Vzc2VzDQo+IGluIGdlbmVyYXRlX3N1 YnRyZWVfZGVmZXJyZWRfaW5pdC4gIEluIGZhY3QsIGlmIHlvdSBkbyB0aGF0ICgrIHRoZQ0KPiBt b2RpZmljYXRpb24gZGVzY3JpYmVkIGFib3ZlKSB0aGUgcmVzdWx0cyBzZWVtIHRvIGJlIHJhdGhl ciBnb29kIG9uIHRoZQ0KPiBhdHRhY2hlZCB0ZXN0Y2FzZSAod2hpY2ggSSBkZXJpdmVkIGZyb20g Z2NjLmRnL2d1YWxpdHkvcHI1OTc3Ni5jKSwgYXQNCj4gbGVhc3Qgb24gR0lNUExFIGFuZCBhdCBs ZWFzdCB3aGVuIGNvbXBpbGVkIHdpdGggLU8xIC1nLiAgSSBkaWQgbm90DQo+IGFjdHVhbGx5IGF0 dGVtcHQgdG8gbG9vayBhdCB0aGUgZ2VuZXJhdGVkIGR3YXJmLiAgSSBoYXZlIG1hZGUgYSBzaW1w bGUNCj4gYXR0ZW1wdCB0byBwcmludCB1bmluaXRpYWxpemVkIChhbmQgdW51c2VkKSBTUkFlZCBz dHJ1Y3R1cmUgaW4gZ2RiIHdpdGgNCj4gYW5kIHdpdGhvdXQgLWZ0cml2aWFsLWF1dG8tdmFyLWlu aXQ9cGF0dGVybiwgYnV0IGluIGJvdGggY2FzZXMgaXQganVzdA0KPiBzYWlkIGl0IHdhcyBvcHRp bWl6ZWQgb3V0Lg0KPiANCj4gTWFydGluDQo+IA0KPiAjaW5jbHVkZSAibm9wLmgiDQo+IA0KPiBz dHJ1Y3QgUyB7IGZsb2F0IGYsIGc7IH07DQo+IA0KPiBfX2F0dHJpYnV0ZV9fKChub2lwYSkpIHZv aWQNCj4gZm9vIChzdHJ1Y3QgUyAqcCwgaW50IGZsYWcpDQo+IHsNCj4gIHN0cnVjdCBTIHMxLCBz MjsNCj4gIGlmIChmbGFnKQ0KPiAgICB7DQo+ICAgICAgczEgPSAqcDsNCj4gICAgICBzMiA9IHMx Ow0KPiAgICB9DQo+ICBlbHNlDQo+ICAgIHsNCj4gICAgICBzMiA9IHMxOw0KPiAgICB9DQo+IA0K PiAgKihpbnQgKikgJnMyLmYgPSAwOw0KPiAgYXNtIHZvbGF0aWxlIChOT1AgOiA6IDogIm1lbW9y eSIpOw0KPiAgYXNtIHZvbGF0aWxlIChOT1AgOiA6IDogIm1lbW9yeSIpOw0KPiAgczIgPSBzMTsN Cj4gIGFzbSB2b2xhdGlsZSAoTk9QIDogOiA6ICJtZW1vcnkiKTsNCj4gIGFzbSB2b2xhdGlsZSAo Tk9QIDogOiA6ICJtZW1vcnkiKTsNCj4gfQ0KPiANCj4gaW50IF9fYXR0cmlidXRlX18oKG5vaXBh KSkNCj4gZ2V0aW50KHZvaWQpDQo+IHsNCj4gIHJldHVybiAxOw0KPiB9DQo+IA0KPiBpbnQNCj4g bWFpbiAoKQ0KPiB7DQo+ICBzdHJ1Y3QgUyB4ID0geyA1LjBmLCA2LjBmIH07DQo+ICBmb28gKCZ4 LCBnZXRpbnQoKSk7DQo+ICByZXR1cm4gMDsNCj4gfQ0KDQo=