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 0F07A3894C2A for ; Mon, 9 Aug 2021 16:38:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0F07A3894C2A 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 179GWP48017624; Mon, 9 Aug 2021 16:38:25 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3aaq8a9t0s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Aug 2021 16:38:24 +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 179GUeRG066392; Mon, 9 Aug 2021 16:38:23 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2171.outbound.protection.outlook.com [104.47.56.171]) by aserp3020.oracle.com with ESMTP id 3a9vv38g99-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 09 Aug 2021 16:38:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dDJ9SoluW1Nq+L78TraAkjh+g4BncHaNCw24MfIsxgrWYKPGz718euNlPIbmnRr8wyEirZWx1hkUF7GBcud+WjGl/vTXcRJ5Btzub0zzW+1BQmogiOZCE5WH8icSxgNsyQOPOelUMvcQhwv/Aknq43Ehuond3lKhkPxg9cdgy1F36dQmqszYzghDPn5cWwzl6PNTcVmfqkFFajlEeccLpuOl52lDNj52Bv1AaqtCgebTKF3TSkBiMyTAmcqI3GV8yLiJ8tm1n9jwIk7T7FJv0kKytW98Anql9k5LC6raDizCqjKvXn9dg08Qf3THlF3IkgY6gd7kCG62xtE2DyUjVw== 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=3W+LCGNGTeaqW4pFBhKFQjcs9nC6Dka9M2Ip9JZUxhU=; b=EJLYu13Ld8xMZaxcaqOqRRrmwNocpk3l8W1bo74M0LfaRBGNC03ephX5LNgBlz6O9xpsfcq0PNKYcxM4G4HA5h4il4aZ6ZKiTAgd+DitgsePDRHxJh7SlRnIt4UPmjcibZlNxm/wuNJaHWqUjl/l+Zqtn2OEFDQ1JxSDXERwqNnkxBLuPGvYzmxtTk2DBP3Q+CQMskoEb73oLDIM9yxe2+ABjX7qCz+mpCZ0WgWpi2ou9Oo/8XLObZo0FYqNDvtn0RLJHF/bmnmBLjtm9liE1XMEnlLfNrt3LvsvN1NoBTFZwfAM4oB/ASoGnbXwqPkZAtOZtovRHu5QNd+jQpq/Kw== 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 CH0PR10MB5148.namprd10.prod.outlook.com (2603:10b6:610:de::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4394.15; Mon, 9 Aug 2021 16:38:21 +0000 Received: from CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547]) by CH2PR10MB4344.namprd10.prod.outlook.com ([fe80::f463:6b71:2491:d547%7]) with mapi id 15.20.4394.023; Mon, 9 Aug 2021 16:38:21 +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: AQHXgpcfj6SO0Rka1UmU0GU91mFncqtrSzIAgAApjAA= Date: Mon, 9 Aug 2021 16:38:21 +0000 Message-ID: <58ADBC0C-9D44-485B-BB5A-B072664B9C4F@oracle.com> References: <52E29277-1403-4755-901A-528116C43FB8@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: ddf316b4-0aad-4d26-d73b-08d95b5419ab x-ms-traffictypediagnostic: CH0PR10MB5148: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:2399; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YMWUXet6E3L/UDi2vJ6fqBAUBJdaI82fpDNrchopmmYY0SYO528Lgkvh72o4LvqY92Y0cyvuiiLavWMGxjz359gtHDbp5+iwoaY75AOYY3jJhB5w+r2zMTt9XTt1NTbUAZ7+y3Xac0l8b4naJYZryJCxF60r0yE2CUjx24BY7wTANaD30t4b1jdziAROcfLxKhEUv5He+BC9V/dOKHw0wqk8NWghLUzM7urWfZxy1CIyYSdjsKhhb2s6cqEXcCuyN4JQ96Cw0ik0xvkkdP11gC9j1hcvpUsKijWAqvZkfEFY5mNVnYhsAC24HxUQzZNS0Ng7+hLHeUTiFowUYACIJOjFzmM2iqY3Ll/7ExNusDj1r6WdTO8xDk0G7kTxI1zBXObXq8APEk64OJC6+F2MxoeW8oRZxkVq0FbVTHmZm6TMDXRrCFVgpZaNizzF3WX64uDWpfVbpDabhhhM1f8FRi5hCQUxgJq8OOdPEkA7LL1DKlhmUCHIrx7jxAY7hnQe6WIzMftztHX9QsD/4dwojUT5YeodIrAfgwEwRiCfpQMvKhjHEljwd3sCr4jpmG4s395L0xd+brWNWjw6T6olFoGKJimaSvcF7V/RzoEq29vz7uno0F9SRIMAgE8H9yE56CXPKZMbaSBahvFfInjMsTBQYh2zBBC3u/cA8ZHH4+Jzzol2fPPwLsv/u6BWjS5sgLCpnSeqm1EvE1FV6ESC1u1Ktbd93uqeouAMmKNyfVMuSE2dlF+zviXytgwd3F6vJV1AucW0IHjdIOSA0ttMnQQkC2O+LZb+NZEcC5guyzQA36CgQB1tGSo1adeYtvrW4jiNXgfQDCZcYuBeMHHAcnAFKLGIjVxqKrlNalvGtf0= 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:(136003)(376002)(366004)(39860400002)(396003)(346002)(8936002)(54906003)(2906002)(6486002)(44832011)(30864003)(33656002)(76116006)(6506007)(36756003)(66556008)(66946007)(66476007)(66446008)(2616005)(64756008)(186003)(8676002)(83380400001)(53546011)(6916009)(5660300002)(91956017)(38070700005)(316002)(71200400001)(122000001)(38100700002)(966005)(86362001)(478600001)(6512007)(4326008)(45980500001)(266184004); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UzBSZlBiWmRyQzJoTTNweGJ0cHlTM1kxQlJoeUcwMG1RVmRMWDFmZlhPSGs4?= =?utf-8?B?QTQreUs3YWN4KzMyTzVkOU8rb05YRlRtOGFwVWFFYS8rclRPUFVzQmNpM2xZ?= =?utf-8?B?L2hTWlEwV2pvTXZ0eTZxVGtoOFcxUk1pY2tNdEVzUmRtckg0QXJFUjJSV2xN?= =?utf-8?B?UC9aUEtVRlROYnZoMmtVeHI4cHBwVjkvSEQxVGxTWUU2ZFpZRy9xWHRkSEtE?= =?utf-8?B?WndqWTdaaXl4YWxNZnZheGdBVG9LVEdIamNub2RiV1QwVkJMZnd3R1hVczEz?= =?utf-8?B?NzRRTmVXejNQQm15aG1Sbjlrcmhzd3k1WGhYRCs1NXNvZk90SHNjYTUvV1hB?= =?utf-8?B?TnhlQTVkeUdmdzY5TU5aZk9aaFFKN3ZrNlRCbTFtVEh4bEJPc0czcHg2akxI?= =?utf-8?B?Q2NoTjZScmc5M0k2U1RLWFlHcTQ5TDZra0lEQ0Fka2tPbU1aamI5dDdYRGMw?= =?utf-8?B?bkp1MVhtZE5QWERlS2lhemtaSmtoWU9SaWtTWi9XR1EvdG9rMmlVUnZPbmNo?= =?utf-8?B?MGZ6YklaWkpLa3F3R2NGTDIwcUxDaXFyMGMwdmJidWwvdEhlRHUxMWVsZ2wv?= =?utf-8?B?RllqK0VCWHRGVDdvT0lXb0F3ZFJzS1lvTFBzSEkrbG5wTXVSdDZ3eEozUWw5?= =?utf-8?B?ZDRadkFmSDgzaTRaaTMyd245NnFoUll3bGxxYkxpYitubURabTNtVnNqb0cz?= =?utf-8?B?RlRUNEU1WEJSUzhiSWg0ZElqSzJ6VzZyd2p4VmFKcHdNUGhEM1FXODhJcmdE?= =?utf-8?B?enJnbFZmYWNPQzJ4cElMMkVBOTZRTzhGZW8rMDhSMlZrblVBZFQ4bEVhWWFj?= =?utf-8?B?YnIwWjZCVEh1bEZsZGlzY0VaR2dyaFZvU2I0UnRXNFVzWWpUNlRSM2s1L3Vk?= =?utf-8?B?NEpkL2pFZDIxT281dXM0cmRHN3ZCS2NhbjI0ZjBLSW16ajhwUy9wWmpDcHpP?= =?utf-8?B?N2Y2OWZZMW5lVmF2M3JnTUlib2JOR2xsSEU1VzdOYThaK1BwdFlwejErVm1R?= =?utf-8?B?TE5vbXoyUTZoRUlUK3VxN1pHeUdsL2tFd1FOOUk4M2dISVQzSUQzMXZ0clZo?= =?utf-8?B?S1JrVVZEYk1KcFhmUGE0azhYNXB0TnRWOXZ5YWdUalNmOTJQWlpJN3hHRG9Y?= =?utf-8?B?Q0NDdE0yQmlVRUcwTERoQjdQeXNZNjJIaFhOaVhoWUJMQ0RYbWhpSlhaZFR1?= =?utf-8?B?NE5lT3B6bm4wYUF3Znl1ZGUyVHd0a2M3MG5MTUp2d0pId1VoZExkdVRMRUhi?= =?utf-8?B?MUFPaG5YVUVBQXduMFY0S1haWWhJTE5aejNwUjJvbW9QZTJhdXI0alB6RUlS?= =?utf-8?B?MkRkbU13RWFjYlN6dGRFUWNmWUJtK1JIbGgvR3djM1FFa2FkRjExYnpQcGdM?= =?utf-8?B?VU9MclJLK0VXOWJKdzVwZDFwR0E1V2Z2UlBVdXJyOE94UFJUeDdQZ2RpbDk1?= =?utf-8?B?ZG1CK0lnRDZpaW03RUVVbTZUWmlTQzdUYTNaKzMybHVlT2I2REZUMklpcXFh?= =?utf-8?B?SmxRbnZjL1pTSjZrbDVEMXNzSUUzeGhGOUNCQkZVMnkxMHZzb3NRdnJaTHMy?= =?utf-8?B?bUZFdUJwSTRaWWZIZTFiYVRnbWxwK200ek8rNW4yTUU4VnpWZmZTRkplOXhL?= =?utf-8?B?aWRxM1BsMks3NVFXc05XQlBhNFE1dCtWc0dvTGtRODJYRzVSL05rSXhERkhw?= =?utf-8?B?WmF0TFAwVllyNjlsV3VGQmNlZXJLZnltNGxzR1RJWHBaRVo4TkJEdzUxSk5o?= =?utf-8?B?aDZwYW9Gc0xheUtTNE5jN3d3REY4N2huR2Mva2RWNHR4d1YrOVkzbWtwM2w3?= =?utf-8?B?VWVlQit3bTBIZjZ6RFlGWDBoMnB4MTVnb2wxMEJabE9ybS9XMXNQY3B0a1Y1?= =?utf-8?Q?0uPXxfXlMVuII?= 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: ddf316b4-0aad-4d26-d73b-08d95b5419ab X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Aug 2021 16:38:21.4782 (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: At1DgzzywkowQ0jhCrRi9TYrKLj8pjeP2gz5ZA7lry6BUj5rvTt8O6V9h/V8F42+g7Ui9YzvlVDvf4ZYdjaKZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5148 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10071 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 mlxscore=0 phishscore=0 spamscore=0 mlxlogscore=999 malwarescore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108090119 X-Proofpoint-ORIG-GUID: fmunfEM-v1NL1Irtt40Uehm24OwJuKT- X-Proofpoint-GUID: fmunfEM-v1NL1Irtt40Uehm24OwJuKT- X-Spam-Status: No, score=-4.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, KAM_SHORT, RCVD_IN_DNSWL_LOW, 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, 09 Aug 2021 16:38:30 -0000 SGksIFJpY2hhcmQsDQoNClRoYW5rcyBhIGxvdCBmb3IgeW91IHJldmlldy4NCg0KQWx0aG91Z2gg dGhlc2UgY29tbWVudHMgYXJlIG5vdCBtYWRlIG9uIHRoZSBsYXRlc3QgcGF0Y2ggKDd0aCB2ZXJz aW9uKSA6LSksIGFsbCB0aGUgY29tbWVudHMgYXJlIHZhbGlkIHNpbmNlIHRoZSBwYXJ0cyB5b3Ug Y29tbWVudGVkDQphcmUgbm90IGNoYW5nZWQgaW4gdGhlIDd0aCB2ZXJzaW9uLg0KDQoNCj4gT24g QXVnIDksIDIwMjEsIGF0IDk6MDkgQU0sIFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5k ZT4gd3JvdGU6DQo+IA0KPiBPbiBUdWUsIDI3IEp1bCAyMDIxLCBRaW5nIFpoYW8gd3JvdGU6DQo+ IA0KPj4gSGksDQo+PiANCj4+IFRoaXMgaXMgdGhlIDZ0aCB2ZXJzaW9uIG9mIHRoZSBwYXRjaCBm b3IgdGhlIG5ldyBzZWN1cml0eSBmZWF0dXJlIGZvciBHQ0MuDQo+PiANCj4+IEkgaGF2ZSB0ZXN0 ZWQgaXQgd2l0aCBib290c3RyYXAgb24gYm90aCB4ODYgYW5kIGFhcmNoNjQsIHJlZ3Jlc3Npb24g dGVzdGluZyBvbiBib3RoIHg4NiBhbmQgYWFyY2g2NC4NCj4+IEFsc28gY29tcGlsZSBDUFUyMDE3 IChydW5uaW5nIGlzIG9uZ29pbmcpLCB3aXRob3V0IGFueSBpc3N1ZS4gKFdpdGggdGhlIGZpeCB0 byBidWcgaHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTAxNTg2 KS4NCj4+IA0KPj4gUGxlYXNlIHRha2UgYSBsb29rIGFuZCBsZXQgbWUga25vdyBhbnkgaXNzdWUu DQo+IA0KPiArLyogSGFuZGxlIGFuICJ1bmluaXRpYWxpemVkIiBhdHRyaWJ1dGU7IGFyZ3VtZW50 cyBhcyBpbg0KPiArICAgc3RydWN0IGF0dHJpYnV0ZV9zcGVjLmhhbmRsZXIuICAqLw0KPiArDQo+ ICtzdGF0aWMgdHJlZQ0KPiAraGFuZGxlX3VuaW5pdGlhbGl6ZWRfYXR0cmlidXRlICh0cmVlICpu b2RlLCB0cmVlIG5hbWUsIHRyZWUgQVJHX1VOVVNFRCANCj4gKGFyZ3MpLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGludCBBUkdfVU5VU0VEIChmbGFncyksIGJvb2wgDQo+ICpu b19hZGRfYXR0cnMpDQo+ICt7DQo+ICsgIGlmICghVkFSX1AgKCpub2RlKSkNCj4gKyAgICB7DQo+ ICsgICAgICB3YXJuaW5nIChPUFRfV2F0dHJpYnV0ZXMsICIlcUUgYXR0cmlidXRlIGlnbm9yZWQi LCBuYW1lKTsNCj4gKyAgICAgICpub19hZGRfYXR0cnMgPSB0cnVlOw0KPiArICAgIH0NCj4gDQo+ IHlvdSBhcmUgZG9jdW1lbnRpbmcgdGhpcyBhdHRyaWJ1dGUgZm9yIGF1dG9tYXRpYyB2YXJpYWJs ZXMgYnV0DQo+IGhlcmUgeW91IGFsbG93IHBsYWNlbWVudCBvbiBnbG9iYWxzIGFzIHdlbGwgKG5v dCBzdXJlIGlmIGF0IHRoaXMNCj4gcG9pbnQgVFJFRV9TVEFUSUMgLyBERUNMX0VYVEVSTkFMIGFy ZSBzZXQgY29ycmVjdGx5KS4NCg0KUmlnaHQsIEkgc2hvdWxkIHdhcm4gd2hlbiB0aGUgYXR0cmli dXRlIGlzIHBsYWNlZCBmb3IgZ2xvYmFscyBvciBzdGF0aWMgdmFyaWFibGVzLiANCkkgd2lsbCB0 cnkgVFJFRV9TVEFUSUMvREVDTF9FWFRFUk5BTCB0byBzZWUgd2hldGhlciBpdOKAmXMgd29yayBv ciBub3QuDQoNCj4gDQo+ICsgIC8qIGZvciBsYW5ndWFnZXMgdGhhdCBkbyBub3Qgc3VwcG9ydCBC VUlMVF9JTl9DTEVBUl9QQURESU5HLCBjcmVhdGUgdGhlDQo+ICsgICAgIGZ1bmN0aW9uIG5vZGUg Zm9yIHBhZGRpbmcgaW5pdGlhbGl6YXRpb24uICAqLw0KPiArICBpZiAoIWZuKQ0KPiArICAgIHsN Cj4gKyAgICAgIHRyZWUgZnR5cGUgPSBidWlsZF9mdW5jdGlvbl90eXBlX2xpc3QgKHZvaWRfdHlw ZV9ub2RlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw dHJfdHlwZV9ub2RlLA0KPiANCj4gdGhlICJhcHByb3ByaWF0ZSIgcGxhY2UgdG8gZG8gdGhpcyB3 b3VsZCBiZSANCj4gdHJlZS5jOmJ1aWxkX2NvbW1vbl9idWlsdGluX25vZGVzDQoNClN1cmUsIHdp bGwgbW92ZSB0aGUgY3JlYXRpb24gb2YgIGZ1bmN0aW9uIG5vZGUgb2YgQlVJTFRfSU5fQ0xFQVJf UEFERElORyBmb3IgRm9ydHJhbiBldGMuIHRvIHRyZWUuYzpidWlsZF9jb21tb25fYnVpbHRpbl9u b2Rlcy4NCg0KPiANCj4gWW91IHNlZW0gdG8gbWFyc2hhbGwgdGhlIGlzX3ZsYSBhcmd1bWVudCBh cyBmb3JfYXV0b19pbml0IHdoZW4NCj4gZXhwYW5kaW5nL2ZvbGRpbmcgdGhlIGJ1aWx0aW4gYW5k IHRoZXJlIGl0J3MgdXNlZCB0byBzdXBwcmVzcw0KPiBkaWFnbm9zdGljcyAoYW5kIG1ha2UgY292 ZXJlZCBwaWVjZXMgbm90IGluaXRpYWxpemVkPykuDQoNClllcywgSSBhZGRlZCBhbiBleHRyYSBh cmd1bWVudCDigJxmb3JfYXV0b19pbml04oCdIGZvciDigJxCVUlMVF9JTl9DTEVBUl9QQURESU5H 4oCdLCB0aGlzIGFyZ3VtZW50IGlzIGFkZGVkIHRvIHN1cHByZXNzIGVycm9ycyBlbWl0dGVkIGR1 cmluZyBmb2xkaW5nDQpCVUlMVF9JTl9DTEVBUl9QQURESU5HIGZvciBmbGV4aWJsZSBhcnJheSBt ZW1iZXIgLiBTdWNoIGVycm9ycyBzaG91bGQgTm90IGJlIGVtaXR0ZWQgd2hlbiDigJxCVUlMVF9J Tl9DTEVBUl9QQURESU5H4oCdIGlzIGNhbGxlZCB3aXRoIGNvbXBpbGVyIGF1dG9tYXRpYyBpbml0 aWFsaXphdGlvbi4NClBsZWFzZSBzZWUgaHR0cHM6Ly9nY2MuZ251Lm9yZy9idWd6aWxsYS9zaG93 X2J1Zy5jZ2k/aWQ9MTAxNTg2LCBjb21tZW50ICM2IGZyb20gSmFrdWIgSmVsaW5lay4NCg0KPiAg SSBzdWdnZXN0DQo+IHRvIHJlLW5hbWUgaXNfdmxhL2Zvcl9hdXRvX2luaXQgdG8gc29tZXRoaW5n IG1vcmUgZGVzY3JpcHRpdmUuDQoNCk9rYXksIEkgd2lsbC4gDQo+IA0KPiArICAgZ2ltcGxlX2Zv bGRfYnVpbHRpbl9jbGVhcl9wYWRkaW5nLiBJZiBGT1JfQVVUT19JTklULA0KPiArICAgbm90IGVt aXQgc29tZSBvZiB0aGUgZXJyb3IgbWVzc2FnZXMgc2luY2UgZG9pbmcgdGhhdA0KPiArICAgbWln aHQgY29uZnVzZSB0aGUgZW5kIHVzZXIuICAqLw0KPiANCj4gZG9lc24ndCBleHBsYWluIHRvIG1l IHdoZXRoZXIgZXJyb3JzIHN0aWxsIG1pZ2h0IGJlIHJhaXNlZCBvcg0KPiB3aGF0IHRoZSBhY3R1 YWwgYmVoYXZpb3IgaXMuDQoNCk9rYXksIHdpbGwgbWFrZSB0aGlzIG1vcmUgY2xlYXIgaW4gdGhl IGNvbW1lbnRzLg0KDQo+IA0KPiArc3RhdGljIGdpbXBsZSAqDQo+ICtidWlsZF9kZWZlcnJlZF9p bml0ICh0cmVlIGRlY2wsDQo+ICsgICAgICAgICAgICAgICAgICAgIGVudW0gYXV0b19pbml0X3R5 cGUgaW5pdF90eXBlLA0KPiArICAgICAgICAgICAgICAgICAgICBib29sIGlzX3ZsYSkNCj4gK3sN Cj4gKyAgZ2NjX2Fzc2VydCAoKGlzX3ZsYSAmJiBUUkVFX0NPREUgKGRlY2wpID09IFdJVEhfU0la RV9FWFBSKQ0KPiArICAgICAgICAgICAgIHx8ICghaXNfdmxhICYmIFRSRUVfQ09ERSAoZGVjbCkg IT0gV0lUSF9TSVpFX0VYUFIpKTsNCj4gDQo+IHNvIHRoZSBpc192bGEgcGFyYW1ldGVyIGxvb2tz IHJlZHVuZGFudCAoYW5kIHRoZSBhc3NlcnQgZGFuZ2Vyb3VzPykuDQo+IEVpdGhlciB0aGUgY2Fs bGVyIGtub3dzIGl0IGRlYWxzIHdpdGggYSBWTEEsIHRoZW4gdGhhdCBzaG91bGQgYmUNCj4gcGFz c2VkIHRocm91Z2ggLSBjb25zdGFudCBzaXplcyBjYW4gYWxzbyBsYXRlciBhcHBlYXIgZHVyaW5n DQo+IG9wdGltaXphdGlvbiBhZnRlciBhbGwgLSBvciBpc192bGEgc2hvdWxkIGJlIGRldGVybWlu ZWQgaGVyZQ0KPiBiYXNlZCBvbiB3aGV0aGVyIHRoZSBzaXplIGF0IGdpbXBsaWZpY2F0aW9uIHRp bWUgaXMgY29uc3RhbnQuDQoNClRoZSByb3V0aW5lIOKAnGJ1aWxkX2RlZmVycmVkX2luaXTigJ0g aXMgT05MWSBjYWxsZWQgZHVyaW5nIGdpbXBsaWZpY2F0aW9uIHBoYXNlIGJ5IHRoZSByb3V0aW5l IOKAnGdpbXBsZV9hZGRfaW5pdF9mb3JfYXV0b192YXIiLCBhdCB0aGlzIHBsYWNlLA0KSXNfdmxh IHNob3VsZCBiZSBkZXRlcm1pbmVkIGJ5IHRoZSBjYWxsZXIgdG8gY2hlY2sgdGhlIHNpemUgb2Yg dGhlIERFQ0wuIElmIGl04oCZcyBhIHZsYSwgdGhlIOKAnG1heWJlX3dpdGhfc2l6ZV9leHBy4oCd IHdpbGwgYmUgYXBwbGllZCBmb3INCkRFQ0wgdG8gbWFrZSBpdCB0byBhIFdJVEhfU0laRV9FWFBS LiAgU28sIHRoZSBhc3NlcnRpb24gaXMgcHVyZWx5IHRvIG1ha2Ugc3VyZSB0aGlzIGF0IGdpbXBs aWZpY2F0aW9uIHBoYXNlLg0KDQpZZXMsIHRoZSBzaXplIG9mIHRoZSBWTEEgZGVjbCBtaWdodCBi ZWNvbWUgYSBjb25zdGFudCBsYXRlciBkdWUgdG8gY29uc3RhbnQgcHJvcGFnYXRpb24sIGV0Yy4g IGJ1dCBkdXJpbmcgdGhlIGdpbXBsaWZpY2F0aW9uIHBoYXNlLCB0aGUgYXNzZXJ0aW9uIHNob3Vs ZCBiZSB0cnVlLg0KPiANCj4gKyAgICAgICAgIC8qIElmIHRoZSB1c2VyIHJlcXVlc3RzIHRvIGlu aXRpYWxpemUgYXV0b21hdGljIHZhcmlhYmxlcywgd2UNCj4gKyAgICAgICAgICAgIHNob3VsZCBp bml0aWFsaXplIHBhZGRpbmdzIGluc2lkZSB0aGUgdmFyaWFibGUuIEFkZCBhIGNhbGwgdG8NCj4g KyAgICAgICAgICAgIF9fQlVJTFRJTl9DTEVBUl9QQURESU5HICgmb2JqZWN0LCAwLCBmb3JfYXV0 b19pbml0ID0gdHJ1ZSkgdG8NCj4gKyAgICAgICAgICAgIGluaXRpYWxpemUgcGFkZGluZ3Mgb2Yg b2JqZWN0IGFsd2F5cyB0byB6ZXJvIHJlZ2FyZGxlc3Mgb2YNCj4gKyAgICAgICAgICAgIElOSVRf VFlQRS4gICovDQo+ICsgICAgICAgICBpZiAob3B0X2Zvcl9mbiAoY3VycmVudF9mdW5jdGlvbl9k ZWNsLCBmbGFnX2F1dG9fdmFyX2luaXQpDQo+ICsgICAgICAgICAgICAgICA+IEFVVE9fSU5JVF9V TklOSVRJQUxJWkVEDQo+ICsgICAgICAgICAgICAgJiYgVkFSX1AgKG9iamVjdCkNCj4gKyAgICAg ICAgICAgICAmJiAhREVDTF9FWFRFUk5BTCAob2JqZWN0KQ0KPiArICAgICAgICAgICAgICYmICFU UkVFX1NUQVRJQyAob2JqZWN0KSkNCj4gKyAgICAgICAgICAgZ2ltcGxlX2FkZF9wYWRkaW5nX2lu aXRfZm9yX2F1dG9fdmFyIChvYmplY3QsIGZhbHNlLCBwcmVfcCk7DQo+ICsgICAgICAgICByZXR1 cm4gcmV0Ow0KPiANCj4gSSB0aGluayB5b3Ugd2FudCB0byB1c2UgZWl0aGVyIGF1dG9fdmFyX3Ag KG9iamVjdCkgb3INCj4gYXV0b192YXJfaW5fZm5fcCAob2JqZWN0LCBjdXJyZW50X2Z1bmN0aW9u X2RlY2wpLiAgRG9uJ3QgeW91IGFsc28NCj4gd2FudCB0byBjaGVjayBmb3IgdGhlICd1bmluaXRp YWxpemVkJyBhdHRyaWJ1dGUgaGVyZT8gIEkgc3VnZ2VzdA0KPiB0byBhYnN0cmFjdCB0aGUgY2hl Y2sgb24gd2hldGhlciAnb2JqZWN0JyBzaG91bGQgYmUgc3ViamVjdA0KPiB0byBhdXRvaW5pdCB0 byBhIGhlbHBlciBmdW5jdGlvbi4NCg0KVGhhbmtzIGZvciB0aGUgc3VnZ2VzdGlvbiwgSSB3aWxs IGRvIHRoaXMuDQoNCg0KPiANCj4gVGhlcmUncyBhbm90aGVyIHBhdGggYWJvdmUgdGhpcyBjYWxs aW5nIGdpbXBsaWZ5X2luaXRfY29uc3RydWN0b3INCj4gZm9yIHRoZSBjYXNlIG9mDQo+IA0KPiBj b25zdCBzdHJ1Y3QgUyB4ID0geyAuLi4gfTsNCj4gc3RydWN0IFMgeSA9IHg7DQo+IA0KPiB3aGVy ZSBpdCB3aWxsIHRyeSB0byBpbml0ICd5JyBmcm9tIHRoZSBDVE9SIGRpcmVjdGx5LCBpdCBzZWVt cyB5b3UNCj4gZG8gbm90IGNvdmVyIHRoaXMgY2FzZS4NCg0KWWVzLCB5b3UgYXJlIHJpZ2h0LCB0 aGlzIGNhc2Ugd2FzIG5vdCBjb3ZlcmVkIHJpZ2h0IG5vdywgYW5kIHRoaXMgc2hvdWxkIGJlIGNv dmVyZWQuDQoNCkxvb2tzIGxpa2UgdGhhdCBJIG5lZWQgdG8gbW92ZSB0aGUg4oCcZ2ltcGxlX2Fk ZF9wYWRkaW5nX2luaXRfZm9yX2F1dG9fdmFy4oCdIGluc2lkZSB0aGUgcm91dGluZSDigJxnaW1w bGlmeV9pbml0X2NvbnN0cnVjdG9y4oCdIHRvDQpDb3ZlciBhbGwgdGhlIGNhc2VzLiANCg0KPiAg SSBhbHNvIHRoaW5rIHRoYXQgdGhlIGFib3ZlIHBsYWNlIGFwcGxpZXMNCj4gdG8gYWxsIGFnZ3Jl Z2F0ZSBhc3NpZ25tZW50IHN0YXRlbWVudHMsIG5vdCBvbmx5IHRvIElOSVRfRVhQUnM/DQoNCj4g U28gZG9uJ3QgeW91IHdhbnQgdG8gcmVzdHJpY3QgY2xlYXItcGFkZGluZyBlbWl0IGhlcmU/DQoN CllvdSBhcmUgcmlnaHQsIEkgbWlnaHQgbmVlZCB0byByZXN0cmljdCBpdCBPbmx5IHRvIElOSVRf RVhQUi4gDQpXaWxsIHVwZGF0ZS4NCg0KPiANCj4gK3N0YXRpYyB2b2lkDQo+ICtleHBhbmRfREVG RVJSRURfSU5JVCAoaW50ZXJuYWxfZm4sIGdjYWxsICpzdG10KQ0KPiArew0KPiArICB0cmVlIHZh ciA9IGdpbXBsZV9jYWxsX2xocyAoc3RtdCk7DQo+ICsgIHRyZWUgc2l6ZV9vZl92YXIgPSBnaW1w bGVfY2FsbF9hcmcgKHN0bXQsIDApOw0KPiArICB0cmVlIHZsYWFkZHIgPSBOVUxMX1RSRUU7DQo+ ICsgIHRyZWUgdmFyX3R5cGUgPSBUUkVFX1RZUEUgKHZhcik7DQo+ICsgIGJvb2wgaXNfdmxhID0g KGJvb2wpIFRSRUVfSU5UX0NTVF9MT1cgKGdpbXBsZV9jYWxsX2FyZyAoc3RtdCwgMikpOw0KPiAr ICBlbnVtIGF1dG9faW5pdF90eXBlIGluaXRfdHlwZQ0KPiArICAgID0gKGVudW0gYXV0b19pbml0 X3R5cGUpIFRSRUVfSU5UX0NTVF9MT1cgKGdpbXBsZV9jYWxsX2FyZyAoc3RtdCwgMSkpOw0KPiAr DQo+ICsgIGdjY19hc3NlcnQgKGluaXRfdHlwZSA+IEFVVE9fSU5JVF9VTklOSVRJQUxJWkVEKTsN Cj4gKw0KPiArICAvKiBpZiB0aGlzIHZhcmlhYmxlIGlzIGEgVkxBLCBnZXQgaXRzIFNJWkUgYW5k IEFERFIgZmlyc3QuICAqLw0KPiArICBpZiAoaXNfdmxhKQ0KPiArICAgIHsNCj4gKyAgICAgIC8q IFRoZSB0ZW1wb3JhcnkgYWRkcmVzcyB2YXJpYWJsZSBmb3IgdGhpcyB2bGEgc2hvdWxkIGhhdmUg YmVlbg0KPiArICAgICAgICBjcmVhdGVkIGR1cmluZyBnaW1wbGlmaWNhdGlvbiBwaGFzZS4gIFJl ZmVyIHRvIGdpbXBsaWZ5X3ZsYV9kZWNsDQo+ICsgICAgICAgIGZvciBkZXRhaWxzLiAgKi8NCj4g KyAgICAgIHRyZWUgdmFyX2RlY2wgPSAoVFJFRV9DT0RFICh2YXIpID09IFNTQV9OQU1FKSA/DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgU1NBX05BTUVfVkFSICh2YXIpIDogdmFyOw0KPiArICAg ICAgZ2NjX2Fzc2VydCAoREVDTF9IQVNfVkFMVUVfRVhQUl9QICh2YXJfZGVjbCkpOw0KPiArICAg ICAgZ2NjX2Fzc2VydCAoVFJFRV9DT0RFIChERUNMX1ZBTFVFX0VYUFIgKHZhcl9kZWNsKSkgPT0g DQo+IElORElSRUNUX1JFRik7DQo+ICsgICAgICAvKiBHZXQgdGhlIGFkZHJlc3Mgb2YgdGhpcyB2 bGEgdmFyaWFibGUuICAqLw0KPiArICAgICAgdmxhYWRkciA9IFRSRUVfT1BFUkFORCAoREVDTF9W QUxVRV9FWFBSICh2YXJfZGVjbCksIDApOw0KPiANCj4gZXJyIC0gaXNuJ3QgdGhlIGFkZHJlc3Mg b2YgdGhlIGRlY2wgcmVwcmVzZW50ZWQgYnkgdGhlIExIUyANCj4gcmVnYXJkbGVzcyB3aGV0aGVy IHRoaXMgaXMgYSBWTEEgb3Igbm90Pw0KDQpUaGUgTEhTIG9mIHRoZSBjYWxsIHRvIC5ERUZFUlJF RF9JTklUIGlzIHRoZSBERUNMIGl0c2VsZiB3aGF0ZXZlciBpdOKAmXMgYSBWTEEgb3Igbm90LiAN Cg0KSW4gb3JkZXIgdG8gY3JlYXRlIGEgbWVtc2V0IGNhbGwsIHdlIG5lZWQgdGhlIEFkZHJlc3Mg b2YgdGhpcyBERUNMIGFzIHRoZSBmaXJzdCBhcmd1bWVudC4gDQpJZiB0aGUgREVDTCBpcyBub3Qg YSBWTEEsIHdlIGp1c3Qgc2ltcGx5IGFwcGx5IOKAnGJ1aWxkX2ZvbGRfYWRkcl9leHBy4oCdIG9u IHRoaXMgREVDTCB0byBnZXQgaXRzIGFkZHJlc3MsDQpIb3dldmVyLCBmb3IgVkxBLCBkdXJpbmcg Z2ltcGxpZmljYXRpb24gcGhhc2Ug4oCcZ2ltcGxpZnlfdmxhX2RlY2zigJ0sIHdlIGhhdmUgYWxy ZWFkeSBjcmVhdGVkIGEgdGVtcG9yYXJ5DQphZGRyZXNzIHZhcmlhYmxlIGZvciB0aGlzIERFQ0ws IGFuZCByZWNvcmRlZCB0aGlzIGFkZHJlc3MgdmFyaWFibGUgd2l0aCDigJxERUNMX1ZBTFVFX0VY UFIoREVDTCksIA0KV2Ugc2hvdWxkIHVzZSB0aGlzIGFscmVhZHkgY3JlYXRlZCBhZGRyZXNzIHZh cmlhYmxlICBmb3IgVkxBcy4gDQoNCg0KPiAgTG9va2luZyBhdCBERUNMX1ZBTFVFX0VYUFINCj4g bG9va3MgcXVpdGUgZnJhZ2lsZSBzaW5jZSB0aGF0J3Mgbm90IHN0aCBkYXRhIGRlcGVuZGVuY2Ug aG9ub3JzLg0KPiBJdCBsb29rcyB5b3Ugb25seSBwYXJ0bHkgZ2ltcGxpZnkgdGhlIGJ1aWxkIGlu aXQgaGVyZT8gIEFsbA0KPiBERUNMX1ZBTFVFX0VYUFJzIHNob3VsZCBoYXZlIGJlZW4gcmVzb2x2 ZWQuDQoNCkRvbuKAmXQgcXVpdGUgdW5kZXJzdGFuZCBoZXJlLiB5b3UgbWVhbiB0aGF0IGFsbCB0 aGUg4oCcREVDTF9WQUxVRV9FWFBSc+KAnSBoYXZlIGJlZW4gcmVzb2x2ZWQgYXQgdGhlIHBoYXNl IFJUTCBleHBhbnNpb24sDQpTbyBJIGNhbm5vdCB1c2UgdGhpcyB0byBnZXQgdGhlIGFkZHJlc3Mg dmFyaWFibGUgb2YgdGhlIFZMQT8NCg0KKEhvd2V2ZXIsIG15IHVuaXQgdGVzdGluZyBjYXNlcyBm b3IgVkxBcyBhcmUgYWxsIGxvb2tzIGZpbmUpLg0KDQo+IA0KPiArICBpZiAoaXNfdmxhIHx8ICgh dXNlX3JlZ2lzdGVyX2Zvcl9kZWNsICh2YXIpKSkNCj4gLi4uDQo+ICsgIGVsc2UNCj4gKyAgICB7 DQo+ICsgICAgLyogSWYgdGhpcyB2YXJpYWJsZSBpcyBpbiBhIHJlZ2lzdGVyLCB1c2UgZXhwYW5k X2Fzc2lnbm1lbnQgbWlnaHQNCj4gKyAgICAgICBnZW5lcmF0ZSBiZXR0ZXIgY29kZS4gICovDQo+ IA0KPiB5b3UgY29tcHV0ZSB0aGUgcGF0dGVyIGluaXRpYWxpemVyIGV2ZW4gd2hlbiBub3QgbmVl ZGluZyBpdCwNCj4gdGhhdCdzIHdhc3RlZnVsLg0KDQpPa2F5LCBJIHdpbGwgcmVzdHJpY3QgdGhl IHBhdHRlcm4gaW5pdGlhbGl6ZXIgY29tcHV0YXRpb24gd2hlbiByZWFsbHkgbmVlZGVkLiANCg0K PiAgSXQncyBhbHNvIHF1aXRlIHVnbHksIElNSE8geW91IHNob3VsZA0KPiB1c2UgY2FuX25hdGl2 ZV9pbnRlcnByZXRfdHlwZV9wICh2YXJfdHlwZSkgYW5kIG5hdGl2ZV9pbnRlcnByZXQNCj4gYSBj aGFyIFtdIGFycmF5IGluaXRpYWxpemVkIHRvIHRoZSBwYXR0ZXJuIGFuZCBpZg0KPiAhY2FuX25h dGl2ZV9pbnRlcnByZXRfdHlwZV9wICgpIGdvIHRoZSBtZW1zZXQgcm91dGUuDQoNClRoYW5rcyBm b3IgdGhlIHN1Z2dlc3Rpb24uIA0KDQpXaWxsIHRyeSB0aGlzLiANCg0KPiANCj4gKyAgLyogV2Ug d2lsbCBub3QgdmVyaWZ5IHRoZSBhcmd1bWVudHMgZm9yIHRoZSBjYWxscyB0byAuREVGRVJSRURf SU5JVC4NCj4gKyAgICAgU3VjaCBjYWxsIGlzIG5vdCBhIHJlYWwgY2FsbCwganVzdCBhIHBsYWNl aG9sZGVyIGZvciBhIGxhdGVyDQo+ICsgICAgIGluaXRpYWxpemF0aW9uIGR1cmluZyBleHBhbmQg cGhhc2UuDQo+ICsgICAgIFRoaXMgaXMgbWFpbmx5IHRvIGF2b2lkIGFzc2VydGlvbiBmYWlsdXJl IGZvciB0aGUgZm9sbG93aW5nDQo+ICsgICAgIGNhc2U6DQo+ICsNCj4gKyAgICAgdW5pX3ZhciA9 IC5ERUZFUlJFRF9JTklUICh2YXJfc2l6ZSwgSU5JVF9UWVBFLCBpc192bGEpOw0KPiArICAgICBm b28gKCZ1bmlfdmFyKTsNCj4gKw0KPiArICAgICBpbiB0aGUgYWJvdmUsIHRoZSB1bmluaXRpYWxp emVkIGF1dG8gdmFyaWFibGUgInVuaV92YXIiIGlzDQo+ICsgICAgIGFkZHJlc3NhYmxlLCB0aGVy ZWZvcmUgc2hvdWxkIG5vdCBiZSBpbiByZWdpc3RlcnMsIHJlc3VsdGluZw0KPiArICAgICB0aGUg YXNzZXJ0aW9uIGZhaWx1cmUgaW4gdGhlIGZvbGxvd2luZyBhcmd1bWVudCB2ZXJpZmljYXRpb24u ICAqLw0KPiArICBpZiAoZ2ltcGxlX2NhbGxfaW50ZXJuYWxfcCAoc3RtdCwgSUZOX0RFRkVSUkVE X0lOSVQpKQ0KPiArICAgIHJldHVybiBmYWxzZTsNCj4gKw0KPiAgIC8qID8/PyAgVGhlIEMgZnJv bnRlbmQgcGFzc2VzIHVucHJvbW90ZWQgYXJndW1lbnRzIGluIGNhc2UgaXQNCj4gICAgICBkaWRu J3Qgc2VlIGEgZnVuY3Rpb24gZGVjbGFyYXRpb24gYmVmb3JlIHRoZSBjYWxsLiAgU28gZm9yIG5v dw0KPiAgICAgIGxlYXZlIHRoZSBjYWxsIGFyZ3VtZW50cyBtb3N0bHkgdW52ZXJpZmllZC4gIE9u Y2Ugd2UgZ2ltcGxpZnkNCj4gICAgICB1bml0LWF0LWEtdGltZSB3ZSBoYXZlIGEgY2hhbmNlIHRv IGZpeCB0aGlzLiAgKi8NCj4gDQo+IC0gIGZvciAoaSA9IDA7IGkgPCBnaW1wbGVfY2FsbF9udW1f YXJncyAoc3RtdCk7ICsraSkNCj4gDQo+IGlzbid0IHRoYXQgZnJvbSB0aGUgdGltZSB0aGVyZSB3 YXMgYSBkZWNsIGFyZ3VtZW50IHRvIC5ERUZFUlJFRF9JTklUPw0KDQpZb3UgbWVhbiB0aGlzIGlz c3VlIGlzIG9ubHkgdGhlcmUgd2hlbiB0aGUgZGVjbCBpcyB0aGUgZmlyc3QgYXJndW1lbnQgKHRo ZSBvbGQgZGVzaWduIGZvciAuREVGRVJSRURfSU5JVCkuDQpXaXRoIHRoZSBuZXcgZGVzaWduLCB0 aGlzIGlzc3VlIGlzIG5vdCB0aGVyZSBhbnltb3JlPw0KDQo+IA0KPiArICBpZiAoZ2ltcGxlX2Nh bGxfaW50ZXJuYWxfcCAoc3RtdCwgSUZOX0RFRkVSUkVEX0lOSVQpKQ0KPiArICAgIHsNCj4gKyAg ICAgIHRyZWUgc2l6ZV9vZl9hcmcwID0gZ2ltcGxlX2NhbGxfYXJnIChzdG10LCAwKTsNCj4gKyAg ICAgIHRyZWUgc2l6ZV9vZl9saHMgPSBUWVBFX1NJWkVfVU5JVCAoVFJFRV9UWVBFIChsaHMpKTsN Cj4gKyAgICAgIHRyZWUgaXNfdmxhX25vZGUgPSBnaW1wbGVfY2FsbF9hcmcgKHN0bXQsIDIpOw0K PiArICAgICAgYm9vbCBpc192bGEgPSAoYm9vbCkgVFJFRV9JTlRfQ1NUX0xPVyAoaXNfdmxhX25v ZGUpOw0KPiArDQo+ICsgICAgICBpZiAoVFJFRV9DT0RFIChsaHMpID09IFNTQV9OQU1FKQ0KPiAr ICAgICAgIGxocyA9IFNTQV9OQU1FX1ZBUiAobGhzKTsNCj4gKw0KPiANCj4gJ2xocycgaXMgbm90 IGxvb2tlZCBhdCBhZnRlciB0aGlzLCBubyBuZWVkIHRvIGxvb2sgYXQgU1NBX05BTUVfVkFSLg0K DQpPa2F5LCB3aWxsIHVwZGF0ZSB0aGlzLg0KDQo+IA0KPiANCj4gVGhhbmtzIGFuZCBzb3JyeSBm b3IgdGhlIGRlbGF5IGluIHJldmlld2luZyB0aGlzIChhZ2FpbikuDQoNClRoYW5rcyBhZ2FpbiBm b3IgeW91ciBkZXRhaWxlZCByZXZpZXcgYW5kIHN1Z2dlc3Rpb25zLg0KDQpJIHdpbGwgdXBkYXRl IHRoZSBwYXRjaCBhY2NvcmRpbmdseSBhbmQgc2VuZCB0aGUgdXBkYXRlZCBwYXRjaCBzb29uLg0K DQpRaW5nDQo+IA0KPiBSaWNoYXJkLg0KPiANCj4gDQo+PiBUaGFua3MNCj4+IA0KDQo=