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 38DCE383A836 for ; Mon, 16 Aug 2021 14:48:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 38DCE383A836 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 17GEefx4000944; Mon, 16 Aug 2021 14:48:20 GMT Received: from aserp3020.oracle.com (aserp3020.oracle.com [141.146.126.70]) by mx0b-00069f02.pphosted.com with ESMTP id 3af8301y60-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Aug 2021 14:48:19 +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 17GEiitW050518; Mon, 16 Aug 2021 14:48:18 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2172.outbound.protection.outlook.com [104.47.58.172]) by aserp3020.oracle.com with ESMTP id 3ae5n5thb2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Aug 2021 14:48:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WPybYHNfFTGOjw6xqR7yWhyC9jYCIvYz7ZgnmnSWo64RAsIpc4FVlE3gu5vPQ0oHVHevb1FlV8GhBlt6vyP9vYB1f+TFDRX8gMS392eBKX+k0t76Rtrbw5M3kvYznt9zi3J8XJfOPRJ4H1Id2t+YljXO0N7bI7b5UIoyoUredWwEboILMbp/Vgm39U4quaRQJy+g0rCpOirHk0VUGREiw4ok+OJE1WJobHglXfP6me/0j+UWGk4gEZCWSmh6rnB1N+LHA9JgwFsKfJF1nB9xvhRzleIXUlUEjYqa05n3nQCDzAei/v7SctpOoZYeRg4ZQ4pfx3541v8x5gvZfOlPYQ== 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=jcztqMlsOWuaGU27zjAPrDAirmtM4GMJ07Mcjd+Y0fA=; b=SUsz0eFXQPuYZHKYUt1n55TTEchbtAzD+wP2nqSonhcJCNt7XDMEmfrU5QzLjq5BaGNfsOcajNU7y/NfZ0Yz3XI49/eJORDAHq/PKBz+ov0ZzgrkvU7ZFjV8XbphnbcCJyIGwGi0BbfK9BW3rBIQIFUj3rheCd04AK1fJ7hxgSxGoRATsqSllBxj8vcRaWp9Q4Gsm/SgObL9Tb7ES+0/GiWw6D3BM2iwF2TQWkRH7T1TM/p0oQuB0QU2+GFx7jMjFYHdJoAAmE7yw91pxhT5FyUlQnGf+f9PqjE7xpf79fGaFpEopNi1bkIAj1R4H9JGILDchW4e1vQM86sV2XmIQg== 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 CH0PR10MB5356.namprd10.prod.outlook.com (2603:10b6:610:c3::9) 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 14:48:16 +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 14:48:16 +0000 From: Qing Zhao To: Richard Biener CC: Jakub Jelinek , Richard Sandiford , Nick Alcock via Gcc-patches , Kees Cook 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: AQHXgpcfj6SO0Rka1UmU0GU91mFncqtrSzIAgAApjACAAPr8gIAAZYMAgAAKVgCAAAy9gIAABZoAgABR/YCAACR6AIAAkCQAgABtVACAAAEPAIAABLkAgAABQACAABmfAIAABkYAgAAIEICAAAlUAIAAPDYAgAAZ9wCABuLEgIAAfwqA Date: Mon, 16 Aug 2021 14:48:16 +0000 Message-ID: <7CCB41E9-6807-4E6D-ABFB-C1DE73A9BEF1@oracle.com> References: <52E29277-1403-4755-901A-528116C43FB8@oracle.com> <6FD42B95-F73D-4B75-B83A-BAC4925B1714@oracle.com> <28A70D41-58C6-49FF-BDA9-661F36A2D795@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: fa90f89a-d1f6-4f61-edcf-08d960c4e177 x-ms-traffictypediagnostic: CH0PR10MB5356: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:10000; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UdAzOl9r8AVn4oKINxbJWk/bQavNP8FDqRmiPjkxZJFyDuREkW6PJr+N/2RwDeUlqoaA6jK48EZH7oP4CZg4VnTh9xwUvcI1EobBbSD45je3LMp80xVWMqF3sgVVTz/39KAcxgy7T0ardwO0KrSIDwfYBcLqdWwmq/bxMEVVc//NyNQl1DH1C3pgFeN3yhNywRbb9QNKuekW5LcBgj+ivoiMIEa82xK/GoLVMlsXhzVRsR/DXxyk3aKEG9An8x4OjJdSuVCseUZtvlRc1+0ws0023IHkYq2J57eeSvo7gXbH5BJ4VpHD73n5TW+8MOVbLQ13fsftANaLaRthoJB1737PMyGcnz82Jz+8HO65Y0Ibnd68gUGE1rXixUdCojmn5Sx970pJB6DQbILZWE4on/lVflIdIUK6I2YuVLVmfizvK/PdeBrTWKy+j6dgf0koMlUeXEbJzbzYiSah05m/jI3749M9HYlEJxGgKZwuZ6CrLRXrhVt/jHdlHu9VwyK3yFQdW73Z3y47rvBwZqmTyIl1BVlFErHX4lHdHmjZ/swwgi/ax33a53qsW0KLiIlo9wA3aDVmTdrX7N/jbXsaCT6/JUZTVO0ddMSDJdU7Z/YrkpqJrcjVNJx3GRT0xKss8knipxblprhWwVpsqB5OqyH5ufT/gX6mUfOrdZUNaa2ZhSrXcobuDn9ksRjJXpbIeFXBJ4bcvhJBKkTfc6lEXpX2fiSvI7pL2dnGQbOyhxI= 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:(366004)(346002)(396003)(39860400002)(136003)(376002)(33656002)(38100700002)(66946007)(66446008)(64756008)(66476007)(2906002)(8676002)(30864003)(66556008)(5660300002)(478600001)(36756003)(8936002)(316002)(38070700005)(6512007)(6486002)(71200400001)(53546011)(2616005)(54906003)(44832011)(6916009)(26005)(186003)(86362001)(76116006)(91956017)(122000001)(4326008)(66574015)(83380400001)(6506007)(45980500001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?SmQyS0NjQzBaRFViYzJrSC9mVUxsNEd0cE5WWEw5VUFSSHdKM0hZZnAvb2cy?= =?utf-8?B?UXJ1QVptd0paa0RlNXVDU2VBdkg3cDJVRXJNQVFIVUZDS1lJUzFPaGlyYW9x?= =?utf-8?B?WUZDT3l3TUdHL09mWHlZbW1qc0R6aC9tNDlrak5FcHRRQWgrQXZKaGZ1czhK?= =?utf-8?B?RmFhRnVEek1TVUt2VVNXS3ViWDltR2xIVnBlRTZHQ21ta0gzZjdTUXZyRG1K?= =?utf-8?B?U3MzdFVQeU9XRmZPSWc2L0ZqeHY0dUZwRjRTa2hnMWxiQ001ZFY3YlJQbC9h?= =?utf-8?B?YWRUZ1VVUWVmWWc0cXRsZjAwT01PRlo3KzgxdE5kU1B6bjV3NUdHOUVKUVg2?= =?utf-8?B?Tjg0dFJEZEJzYisrVVllVW91NlFKRWRHMkRVZjA2bUt0cEdhbXdQT2tQM05w?= =?utf-8?B?NlY3LzU3YjhFcGJ2Z2VEQ25DbWVKbktLc04vUG5JSHdtNkkySGFqbjhZbzBz?= =?utf-8?B?S0VaYkxOS2M5Q3JqcktMVy9QTk1OZ1hYeXUyUXV0RWZwOUdkTkRBd3luRldR?= =?utf-8?B?V1NnYlFIWVR5S0xRZkVKNHdFQzcxcFlleUNXVmJPVi9nbTNYUU9KaDY4VC9t?= =?utf-8?B?cGZXbzR6MXNJQmpseFFYYmF3MWVKMkxrMmFwWG9QVzNySnoxUjBMQWxOUHc1?= =?utf-8?B?djYzZ1pJUHhyZzJvYk15Q2VUT0gzZiswNUVqU1U3cEd1SWpiNmhKQTJZK29S?= =?utf-8?B?dm5ma0lxdU9rQzV2YUR5T2ozN0toUFlnaitxM0JhQ1Y2S3hpZU12NzhNZ2RD?= =?utf-8?B?QzZOWDk0T041bFJ2VGFDdHZQb0piZTQ3cVJCNEZZenE4bDJPckxlaklSN0c1?= =?utf-8?B?cm4rQkE5QzRVVkdNVmhBU3lneXFuNEdJcEFGeHdXSWgwVTRXbkJEaElsZHFF?= =?utf-8?B?R2JLL3dwREllNGNUbXQvNzdNa3kvQlhjRVV2UDlqclZxUXBwTFpaV0swUmRk?= =?utf-8?B?U3JuK0xoUHYwSnpLNmNTY1FzNzAreno1SjhodEhvODA1L2R6SDZxN3d3dlB2?= =?utf-8?B?aXNJS21EckpoZ05zUjFJQ2tVQ2x5elUwZ3prY1UvTTBNU0xRbzAxclB1cWIr?= =?utf-8?B?YTA2ZGRXeS9iLzVDVVgrRjNwV1BwYmpObXprZ3RxbkhSdWFQSTViQlhMSG15?= =?utf-8?B?cVNJT2pXL0c0MHkrK1FEZUY1aE9Ra0VnZ2Q2RHhITVJEVHlVWTJaUTZKTER3?= =?utf-8?B?N29SclJDK2VMemJ0azdSUFE5YmhuNnAxOGhHYllBSmpkMGFmdkVNLzN2cG8x?= =?utf-8?B?UGFJcU5PcVZTL0VldGVONkhKZ2YxMWswZ1FBZCtrSVRWOXRYZ3loTmd4WENO?= =?utf-8?B?T0J3TlpHU2gwRWJBRTlkaFAybmhMWWg0Nk9hSDFGdkhKOU5JcWY2QjZIS2pk?= =?utf-8?B?N1JIN0svcGRNNTVwVEtuNzNldmI1T3FEbHFob1o5d0FJRmo0TGdDYXBReDZB?= =?utf-8?B?ZzVWTUhqRWozelgwcGdLdVh1YXNtYjVxK1Y1L0I2a2VWdFU3Tm5wU1RmZ3pa?= =?utf-8?B?R3g3bC9vdlVQdFRsQW9GZ08wS0k1Yk1VRFN6MVVKMDE1eERkRWVyWUxVTGIw?= =?utf-8?B?eXpYYVRLa3c0d1A5ZWs4eU5wRVdkNnRpeU90VWdWbUxSZHYvbHdhMWxoQy84?= =?utf-8?B?WmVZcCs1RVRhNVN4akZXbmdtZDg2SkxmcUlYc1ZCSHB5aEU5WUFBQi8yRFRF?= =?utf-8?B?SFFUeEhFU3dHbUt1OVEzcy9SMFlERDdyeGh3dWJuanJtTnhLdjloZVhTWTJD?= =?utf-8?Q?vAP5uyqnFmydYX6QElegpFTpXs0lsLaq62oWQzg?= x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="utf-8" Content-ID: <244972CD1AE2E84388485C338F449F92@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: fa90f89a-d1f6-4f61-edcf-08d960c4e177 X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Aug 2021 14:48:16.1488 (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: 5VjrGRVnOff+nChrSxjJqjTDke7lgLKOD45xc1IoltzRsiA8N11Fr5OhIdYk9WO1TJ7iYEfrFYt5yeaewJ+8lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB5356 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=10078 signatures=668682 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2107140000 definitions=main-2108160093 X-Proofpoint-ORIG-GUID: j6xqNVldlg1ni7t70XNtxiKway7cfd2Y X-Proofpoint-GUID: j6xqNVldlg1ni7t70XNtxiKway7cfd2Y X-Spam-Status: No, score=-10.9 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_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 14:48:36 -0000 DQoNCj4gT24gQXVnIDE2LCAyMDIxLCBhdCAyOjEyIEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50 aGVyQHN1c2UuZGU+IHdyb3RlOg0KPiANCj4gT24gV2VkLCAxMSBBdWcgMjAyMSwgUWluZyBaaGFv IHdyb3RlOg0KPiANCj4+IEhpLCANCj4+IA0KPj4gSSBmaW5hbGx5IGRlY2lkZWQgdG8gdGFrZSBh bm90aGVyIGFwcHJvYWNoIHRvIHJlc29sdmUgdGhpcyBpc3N1ZSwgaXQgcmVzb2x2ZWQgYWxsIHRo ZSBwb3RlbnRpYWwgaXNzdWVzIHdpdGggdGhlIOKAnGFkZHJlc3MgdGFrZW7igJ0gYXV0byB2YXJp YWJsZS4NCj4+IA0KPj4gVGhlIGJhc2ljIGlkZWEgaXMgdG8gYXZvaWQgZ2VuZXJhdGluZyB0aGUg dGVtcG9yYXJ5IHZhcmlhYmxlIGluIHRoZSBiZWdpbm5pbmcuIA0KPj4gQXMgeW91IG1lbnRpb25l ZCwgIlRoZSByZWFzb24gaXMgdGhhdCBhbHRfcmVsb2MgaXMgbWVtb3J5IChiZWNhdXNlIGl0IGlz IGFkZHJlc3MgdGFrZW4pIGFuZCB0aGF0IEdJTVBMRSBzYXlzIHRoYXQgcmVnaXN0ZXIgdHlwZWQg c3RvcmVzIA0KPj4gbmVlZCB0byB1c2UgYSBpc19naW1wbGVfdmFsIFJIUyB3aGljaCB0aGUgY2Fs bCBpcyBub3Qu4oCdDQo+PiBJbiBvcmRlciB0byBhdm9pZCBnZW5lcmF0aW5nIHRoZSB0ZW1wb3Jh cnkgdmFyaWFibGUgZm9yIOKAnGFkZHJlc3MgdGFrZW7igJ0gYXV0byB2YXJpYWJsZSwgSSB1cGRh dGVkIHRoZSB1dGlsaXR5IHJvdXRpbmUg4oCcaXNfZ2ltcGxlX3ZhbOKAnSBhcyBmb2xsb3dpbmc6 DQo+PiANCj4+IGRpZmYgLS1naXQgYS9nY2MvZ2ltcGxlLWV4cHIuYyBiL2djYy9naW1wbGUtZXhw ci5jDQo+PiBpbmRleCBhMjU2M2E0NWMzN2QuLmQ1ZWYxYWVmOGNlYSAxMDA2NDQNCj4+IC0tLSBh L2djYy9naW1wbGUtZXhwci5jDQo+PiArKysgYi9nY2MvZ2ltcGxlLWV4cHIuYw0KPj4gQEAgLTc4 Nyw4ICs3ODcsMjAgQEAgaXNfZ2ltcGxlX3JlZyAodHJlZSB0KQ0KPj4gICByZXR1cm4gIURFQ0xf Tk9UX0dJTVBMRV9SRUdfUCAodCk7DQo+PiB9DQo+PiANCj4+ICsvKiBSZXR1cm4gdHJ1ZSBpZiBU IGlzIGEgY2FsbCB0byAuREVGRVJSRURfSU5JVCBpbnRlcm5hbCBmdW5jdGlvbi4gICovIA0KPj4g K3N0YXRpYyBib29sDQo+PiAraXNfZGVmZXJyZWRfaW5pdF9jYWxsICh0cmVlIHQpDQo+PiArew0K Pj4gKyAgaWYgKFRSRUVfQ09ERSAodCkgPT0gQ0FMTF9FWFBSDQo+PiArICAgICAgJiYgIENBTExf RVhQUl9JRk4gKHQpID09IElGTl9ERUZFUlJFRF9JTklUKQ0KPj4gKyAgICByZXR1cm4gdHJ1ZTsN Cj4+ICsgIHJldHVybiBmYWxzZTsNCj4+ICt9DQo+PiArDQo+PiANCj4+IC0vKiBSZXR1cm4gdHJ1 ZSBpZiBUIGlzIGEgR0lNUExFIHJ2YWx1ZSwgaS5lLiBhbiBpZGVudGlmaWVyIG9yIGEgY29uc3Rh bnQuICAqLw0KPj4gKy8qIFJldHVybiB0cnVlIGlmIFQgaXMgYSBHSU1QTEUgcnZhbHVlLCBpLmUu IGFuIGlkZW50aWZpZXIgb3IgYSBjb25zdGFudCwNCj4+ICsgICBvciBhIGNhbGwgdG8gLkRFRkVS UkVEX0lOSVQgaW50ZXJuYWwgZnVuY3Rpb24gYmVjYXVzZSB0aGUgY2FsbCB0bw0KPj4gKyAgIC5E RUZFUlJFRF9JTklUIHdpbGwgZXZlbnR1YWxseSBiZSBleHBhbmRlZCBhcyBhIGNvbnN0YW50LiAg Ki8NCj4+IA0KPj4gYm9vbA0KPj4gaXNfZ2ltcGxlX3ZhbCAodHJlZSB0KQ0KPj4gQEAgLTc5OSw3 ICs4MTEsOCBAQCBpc19naW1wbGVfdmFsICh0cmVlIHQpDQo+PiAgICAgICAmJiAhaXNfZ2ltcGxl X3JlZyAodCkpDQo+PiAgICAgcmV0dXJuIGZhbHNlOw0KPj4gDQo+PiAtICByZXR1cm4gKGlzX2dp bXBsZV92YXJpYWJsZSAodCkgfHwgaXNfZ2ltcGxlX21pbl9pbnZhcmlhbnQgKHQpKTsNCj4+ICsg IHJldHVybiAoaXNfZ2ltcGxlX3ZhcmlhYmxlICh0KSB8fCBpc19naW1wbGVfbWluX2ludmFyaWFu dCAodCkNCj4+ICsgICAgICAgICB8fCBpc19kZWZlcnJlZF9pbml0X2NhbGwgKHQpKTsNCj4+IH0N Cj4+IA0KPj4gV2l0aCB0aGlzIGNoYW5nZSwgdGhlIHRlbXBvcmFyeSB2YXJpYWJsZSB3aWxsIG5v dCBiZSBjcmVhdGVkIGZvciDigJxhZGRyZXNzIHRha2Vu4oCdIGF1dG8gdmFyaWFibGUsIGFuZCB1 bmluaXRpYWxpemVkIGFuYWx5c2lzIGRvZXMgbm90IG5lZWQgYW55IGNoYW5nZS4gDQo+PiBFdmVy eXRoaW5nIHdvcmtzIHdlbGwuDQo+PiANCj4+IEFuZCBJIGJlbGlldmUgdGhhdCB0cmVhdGluZyDi gJxjYWxsIHRvIC5ERUZFUlJFRF9JTklU4oCdIGFzIOKAnGlzX2dpbXBsZV92YWzigJ0gaXMgcmVh c29uYWJsZSBzaW5jZSB0aGlzIGNhbGwgYWN0dWFsbHkgaXMgYSBjb25zdGFudC4NCj4+IA0KPj4g TGV0IG1lIGtub3cgaWYgeW91IGhhdmUgYW55IG9iamVjdGlvbiBvbiB0aGlzIHNvbHV0aW9uLg0K PiANCj4gWWVhaCwgSSBvYmplY3QgdG8gdGhpcyBzb2x1dGlvbi4NCg0KQ2FuIHlvdSBleHBsYWlu IHdoYXTigJlzIHRoZSBtYWpvciBpc3N1ZSBmb3IgdGhpcyBzb2x1dGlvbj8gDQoNClRvIG1lLCAg dHJlYXRpbmcg4oCcY2FsbCB0byAuREVGRVJSRURfSU5JVOKAnSBhcyDigJxpc19naW1wbGVfdmFs 4oCdIGlzIHJlYXNvbmFibGUgc2luY2UgdGhpcyBjYWxsIGFjdHVhbGx5IGlzIGEgY29uc3RhbnQu DQoNClRoYW5rcy4NCg0KUWluZw0KPiBSaWNoYXJkLg0KPiANCj4+IHRoYW5rcy4NCj4+IA0KPj4g UWluZw0KPj4gDQo+Pj4gT24gQXVnIDExLCAyMDIxLCBhdCAzOjMwIFBNLCBRaW5nIFpoYW8gdmlh IEdjYy1wYXRjaGVzIDxnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZz4gd3JvdGU6DQo+Pj4gDQo+Pj4g SGksIA0KPj4+IA0KPj4+IEkgbWV0IGFub3RoZXIgaXNzdWUgZm9yIOKAnGFkZHJlc3MgdGFrZW7i gJ0gYXV0byB2YXJpYWJsZSwgc2VlIGJlbG93IGZvciBkZXRhaWxzOg0KPj4+IA0KPj4+ICoqKiog dGhlIHRlc3RpbmcgY2FzZTogKGdjYy90ZXN0c3VpdGUvZ2NjLmRnL3VuaW5pdC0xNi5jKQ0KPj4+ IA0KPj4+IGludCBmb28sIGJhcjsNCj4+PiANCj4+PiBzdGF0aWMNCj4+PiB2b2lkIGRlY29kZV9y ZWxvYyhpbnQgcmVsb2MsIGludCAqaXNfYWx0KQ0KPj4+IHsNCj4+PiBpZiAocmVsb2MgPj0gMjAp DQo+Pj4gICAgICppc19hbHQgPSAxOw0KPj4+IGVsc2UgaWYgKHJlbG9jID49IDEwKQ0KPj4+ICAg ICAqaXNfYWx0ID0gMDsNCj4+PiB9DQo+Pj4gDQo+Pj4gdm9pZCB0ZXN0ZnVuYygpDQo+Pj4gew0K Pj4+IGludCBhbHRfcmVsb2M7DQo+Pj4gDQo+Pj4gZGVjb2RlX3JlbG9jKGZvbywgJmFsdF9yZWxv Yyk7DQo+Pj4gDQo+Pj4gaWYgKGFsdF9yZWxvYykgLyogeyBkZy13YXJuaW5nICJtYXkgYmUgdXNl ZCB1bmluaXRpYWxpemVkIiB9ICovDQo+Pj4gICBiYXIgPSA0MjsNCj4+PiB9DQo+Pj4gDQo+Pj4g KioqKldoZW4gY29tcGlsZWQgd2l0aCAtZnRyaXZpYWwtYXV0by12YXItaW5pdD16ZXJvIC1PMiAt V3VuaW5pdGlhbGl6ZWQgLWZkdW1wLXRyZWUtYWxsOg0KPj4+IA0KPj4+IC4qKioqKioqKioqKioq Z2ltcGxlIGR1bXA6DQo+Pj4gDQo+Pj4gdm9pZCB0ZXN0ZnVuYyAoKQ0KPj4+IHsgDQo+Pj4gaW50 IGFsdF9yZWxvYzsNCj4+PiANCj4+PiB0cnkNCj4+PiAgIHsNCj4+PiAgICAgXzEgPSAuREVGRVJS RURfSU5JVCAoNCwgMiwgMCk7DQo+Pj4gICAgIGFsdF9yZWxvYyA9IF8xOw0KPj4+ICAgICBmb28u MF8yID0gZm9vOw0KPj4+ICAgICBkZWNvZGVfcmVsb2MgKGZvby4wXzIsICZhbHRfcmVsb2MpOw0K Pj4+ICAgICBhbHRfcmVsb2MuMV8zID0gYWx0X3JlbG9jOw0KPj4+ICAgICBpZiAoYWx0X3JlbG9j LjFfMyAhPSAwKSBnb3RvIDxELjE5NTI+OyBlbHNlIGdvdG8gPEQuMTk1Mz47DQo+Pj4gICAgIDxE LjE5NTI+Og0KPj4+ICAgICBiYXIgPSA0MjsNCj4+PiAgICAgPEQuMTk1Mz46DQo+Pj4gICB9DQo+ Pj4gZmluYWxseQ0KPj4+ICAgew0KPj4+ICAgICBhbHRfcmVsb2MgPSB7Q0xPQkJFUn07DQo+Pj4g ICB9DQo+Pj4gfQ0KPj4+IA0KPj4+ICoqKioqKioqKioqKioqZnJlMSBkdW1wOg0KPj4+IA0KPj4+ IHZvaWQgdGVzdGZ1bmMgKCkNCj4+PiB7DQo+Pj4gaW50IGFsdF9yZWxvYzsNCj4+PiBpbnQgXzE7 DQo+Pj4gaW50IGZvby4wXzI7DQo+Pj4gDQo+Pj4gPGJiIDI+IDoNCj4+PiBfMSA9IC5ERUZFUlJF RF9JTklUICg0LCAyLCAwKTsNCj4+PiBmb28uMF8yID0gZm9vOw0KPj4+IGlmIChmb28uMF8yID4g MTkpDQo+Pj4gICBnb3RvIDxiYiAzPjsgWzUwLjAwJV0NCj4+PiBlbHNlDQo+Pj4gICBnb3RvIDxi YiA0PjsgWzUwLjAwJV0NCj4+PiANCj4+PiA8YmIgMz4gOg0KPj4+IGdvdG8gPGJiIDc+OyBbMTAw LjAwJV0NCj4+PiANCj4+PiA8YmIgND4gOg0KPj4+IGlmIChmb28uMF8yID4gOSkNCj4+PiAgIGdv dG8gPGJiIDU+OyBbNTAuMDAlXQ0KPj4+IGVsc2UNCj4+PiAgIGdvdG8gPGJiIDY+OyBbNTAuMDAl XQ0KPj4+IA0KPj4+IDxiYiA1PiA6DQo+Pj4gZ290byA8YmIgOD47IFsxMDAuMDAlXQ0KPj4+IA0K Pj4+IDxiYiA2PiA6DQo+Pj4gaWYgKF8xICE9IDApDQo+Pj4gICBnb3RvIDxiYiA3PjsgW0lOVl0N Cj4+PiBlbHNlDQo+Pj4gICBnb3RvIDxiYiA4PjsgW0lOVl0NCj4+PiANCj4+PiA8YmIgNz4gOg0K Pj4+IGJhciA9IDQyOw0KPj4+IA0KPj4+IDxiYiA4PiA6DQo+Pj4gcmV0dXJuOw0KPj4+IA0KPj4+ IH0NCj4+PiANCj4+PiBGcm9tIHRoZSBhYm92ZSBJUiBmaWxlIGFmdGVyIOKAnEZSReKAnSwgd2Ug Y2FuIHNlZSB0aGF0IHRoZSBtYWpvciBpc3N1ZSB3aXRoIHRoaXMgSVIgaXM6DQo+Pj4gDQo+Pj4g VGhlIGFkZHJlc3MgdGFrZW4gYXV0byB2YXJpYWJsZSDigJxhbHRfcmVsb2PigJ0gaGFzIGJlZW4g Y29tcGxldGVseSByZXBsYWNlZCBieSB0aGUgdGVtcG9yYXJ5IHZhcmlhYmxlIOKAnF8x4oCdIGlu IGFsbA0KPj4+IHRoZSB1c2VzIG9mIHRoZSBvcmlnaW5hbCDigJxhbHRfcmVsb2PigJ0uIA0KPj4+ IA0KPj4+IFRoZSBtYWpvciBwcm9ibGVtIHdpdGggc3VjaCBJUiBpcywgIGR1cmluZyB1bmluaXRp YWxpemVkIGFuYWx5c2lzIHBoYXNlLCB0aGUgb3JpZ2luYWwgdXNlIG9mIOKAnGFsdF9yZWxvY+KA nSBkaXNhcHBlYXJlZCBjb21wbGV0ZWx5Lg0KPj4+IFNvLCB0aGUgd2FybmluZyBjYW5ub3QgYmUg cmVwb3J0ZWQuDQo+Pj4gDQo+Pj4gDQo+Pj4gTXkgcXVlc3Rpb25zOg0KPj4+IA0KPj4+IDEuIElz IGl0IHBvc3NpYmxlIHRvIGdldCB0aGUgb3JpZ2luYWwg4oCcYWx0X3JlbG9j4oCdIHRocm91Z2gg dGhlIHRlbXBvcmFyeSB2YXJpYWJsZSDigJxfMeKAnSB3aXRoIHNvbWUgYXZhaWxhYmxlIGluZm9y bWF0aW9uIHJlY29yZGVkIGluIHRoZSBJUj8NCj4+PiAyLiBJZiBub3QsIHRoZW4gd2UgaGF2ZSB0 byByZWNvcmQgdGhlIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIOKAnGFsdF9yZWxvY+KAnSBhbmQg4oCc XzHigJ0gd2hlbiB0aGUgb3JpZ2luYWwg4oCcYWx0X3JlbG9j4oCdIGlzIHJlcGxhY2VkIGJ5IOKA nF8x4oCdIGFuZCBnZXQgc3VjaCByZWxhdGlvbnNoaXAgZHVyaW5nDQo+Pj4gICBVbmluaXRpYWxp emVkIGFuYWx5c2lzIHBoYXNlLiAgSXMgdGhpcyBkb2FibGU/DQo+Pj4gMy4gTG9va3MgbGlrZSB0 aGF0IGZvciDigJxhZGRyZXNzIHRha2Vu4oCdIGF1dG8gdmFyaWFibGUsIGlmIHdlIGhhdmUgdG8g aW50cm9kdWNlIGEgbmV3IHRlbXBvcmFyeSB2YXJpYWJsZSBhbmQgc3BsaXQgdGhlIGNhbGwgdG8g LkRFRkVSUkVEX0lOSVQgaW50byB0d286DQo+Pj4gDQo+Pj4gICAgIHRlbXAgPSAuREVGRVJSRURf SU5JVCAoNCwgMiwgMCk7DQo+Pj4gICAgIGFsdF9yZWxvYyA9IHRlbXA7DQo+Pj4gDQo+Pj4gIE1v cmUgaXNzdWVzIG1pZ2h0IHBvc3NpYmxlLg0KPj4+IA0KPj4+IEFueSBjb21tZW50cyBhbmQgc3Vn Z2VzdGlvbnMgb24gdGhpcyBpc3N1ZT8NCj4+PiANCj4+PiBRaW5nDQo+Pj4gDQo+Pj4gag0KPj4+ PiBPbiBBdWcgMTEsIDIwMjEsIGF0IDExOjU1IEFNLCBSaWNoYXJkIEJpZW5lciA8cmd1ZW50aGVy QHN1c2UuZGU+IHdyb3RlOg0KPj4+PiANCj4+Pj4gT24gQXVndXN0IDExLCAyMDIxIDY6MjI6MDAg UE0gR01UKzAyOjAwLCBRaW5nIFpoYW8gPHFpbmcuemhhb0BvcmFjbGUuY29tPiB3cm90ZToNCj4+ Pj4+IA0KPj4+Pj4gDQo+Pj4+Pj4gT24gQXVnIDExLCAyMDIxLCBhdCAxMDo1MyBBTSwgUmljaGFy ZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPiB3cm90ZToNCj4+Pj4+PiANCj4+Pj4+PiBPbiBB dWd1c3QgMTEsIDIwMjEgNTozMDo0MCBQTSBHTVQrMDI6MDAsIFFpbmcgWmhhbyA8cWluZy56aGFv QG9yYWNsZS5jb20+IHdyb3RlOg0KPj4+Pj4+PiBJIG1vZGlmaWVkIHRoZSByb3V0aW5lIOKAnGdp bXBsZV9hZGRfaW5pdF9mb3JfYXV0b192YXLigJ0gYXMgdGhlIGZvbGxvd2luZzoNCj4+Pj4+Pj4g PT09PQ0KPj4+Pj4+PiAvKiBHZW5lcmF0ZSBpbml0aWFsaXphdGlvbiB0byBhdXRvbWF0aWMgdmFy aWFibGUgREVDTCBiYXNlZCBvbiBJTklUX1RZUEUuDQo+Pj4+Pj4+IEJ1aWxkIGEgY2FsbCB0byBp bnRlcm5hbCBjb25zdCBmdW5jdGlvbiBERUZFUlJFRF9JTklUOg0KPj4+Pj4+PiAxc3QgYXJndW1l bnQ6IFNJWkUgb2YgdGhlIERFQ0w7DQo+Pj4+Pj4+IDJuZCBhcmd1bWVudDogSU5JVF9UWVBFOw0K Pj4+Pj4+PiAzcmQgYXJndW1lbnQ6IElTX1ZMQSwgMCBOTywgMSBZRVM7DQo+Pj4+Pj4+IA0KPj4+ Pj4+PiBhcyBERUZFUlJFRF9JTklUIChTSVpFIG9mIHRoZSBERUNMLCBJTklUX1RZUEUsIElTX1ZM QSkuICAqLw0KPj4+Pj4+PiBzdGF0aWMgdm9pZA0KPj4+Pj4+PiBnaW1wbGVfYWRkX2luaXRfZm9y X2F1dG9fdmFyICh0cmVlIGRlY2wsDQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICBl bnVtIGF1dG9faW5pdF90eXBlIGluaXRfdHlwZSwNCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICAg ICAgICAgIGJvb2wgaXNfdmxhLA0KPj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgICAgICAgZ2lt cGxlX3NlcSAqc2VxX3ApDQo+Pj4+Pj4+IHsNCj4+Pj4+Pj4gZ2NjX2Fzc2VydCAoVkFSX1AgKGRl Y2wpICYmICFERUNMX0VYVEVSTkFMIChkZWNsKSAmJiAhVFJFRV9TVEFUSUMgKGRlY2wpKTsNCj4+ Pj4+Pj4gZ2NjX2Fzc2VydCAoaW5pdF90eXBlID4gQVVUT19JTklUX1VOSU5JVElBTElaRUQpOw0K Pj4+Pj4+PiB0cmVlIGRlY2xfc2l6ZSA9IFRZUEVfU0laRV9VTklUIChUUkVFX1RZUEUgKGRlY2wp KTsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IHRyZWUgaW5pdF90eXBlX25vZGUNCj4+Pj4+Pj4gPSBidWls ZF9pbnRfY3N0IChpbnRlZ2VyX3R5cGVfbm9kZSwgKGludCkgaW5pdF90eXBlKTsNCj4+Pj4+Pj4g dHJlZSBpc192bGFfbm9kZQ0KPj4+Pj4+PiA9IGJ1aWxkX2ludF9jc3QgKGludGVnZXJfdHlwZV9u b2RlLCAoaW50KSBpc192bGEpOw0KPj4+Pj4+PiANCj4+Pj4+Pj4gdHJlZSBjYWxsID0gYnVpbGRf Y2FsbF9leHByX2ludGVybmFsX2xvYyAoVU5LTk9XTl9MT0NBVElPTiwgSUZOX0RFRkVSUkVEX0lO SVQsDQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRSRUVf VFlQRSAoZGVjbCksIDMsDQo+Pj4+Pj4+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRlY2xfc2l6ZSwgaW5pdF90eXBlX25vZGUsDQo+Pj4+Pj4+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlzX3ZsYV9ub2RlKTsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+ IC8qIElmIHRoaXMgREVDTCBpcyBhIFZMQSwgYSB0ZW1wb3JhcnkgYWRkcmVzcyB2YXJpYWJsZSBm b3IgaXQgaGFzIGJlZW4NCj4+Pj4+Pj4gY3JlYXRlZCwgdGhlIHJlcGxhY2VtZW50IGZvciBERUNM IGlzIHJlY29yZGVkIGluIERFQ0xfVkFMVUVfRVhQUiAoZGVjbCksDQo+Pj4+Pj4+IHdlIHNob3Vs ZCB1c2UgaXQgYXMgdGhlIExIUyBvZiB0aGUgY2FsbC4gICovDQo+Pj4+Pj4+IA0KPj4+Pj4+PiB0 cmVlIGxoc19jYWxsDQo+Pj4+Pj4+ID0gaXNfdmxhID8gREVDTF9WQUxVRV9FWFBSIChkZWNsKSA6 IGRlY2w7DQo+Pj4+Pj4+IGdpbXBsaWZ5X2Fzc2lnbiAobGhzX2NhbGwsIGNhbGwsIHNlcV9wKTsN Cj4+Pj4+Pj4gfQ0KPj4+Pj4+PiANCj4+Pj4+Pj4gV2l0aCB0aGlzIGNoYW5nZSwgdGhlIGN1cnJl bnQgaXNzdWUgaXMgcmVzb2x2ZWQsIHRoZSBnaW1wbGUgZHVtcCBub3cgaXM6DQo+Pj4+Pj4+IA0K Pj4+Pj4+PiAoKmFyci4xKSA9IC5ERUZFUlJFRF9JTklUIChELjE5NTIsIDIsIDEpOw0KPj4+Pj4+ PiANCj4+Pj4+Pj4gSG93ZXZlciwgdGhlcmUgaXMgYW5vdGhlciBuZXcgaXNzdWU6DQo+Pj4+Pj4+ IA0KPj4+Pj4+PiBGb3IgdGhlIGZvbGxvd2luZyB0ZXN0aW5nIGNhc2U6DQo+Pj4+Pj4+IA0KPj4+ Pj4+PiA9PT09PT0NCj4+Pj4+Pj4gW29wY0BxaW56aGFvLW9sOHUzLXg4NiBnY2NdJCBjYXQgdC5j DQo+Pj4+Pj4+IGludCBiYXI7DQo+Pj4+Pj4+IA0KPj4+Pj4+PiBleHRlcm4gdm9pZCBkZWNvZGVf cmVsb2MoaW50ICopOw0KPj4+Pj4+PiANCj4+Pj4+Pj4gdm9pZCB0ZXN0ZnVuYygpDQo+Pj4+Pj4+ IHsNCj4+Pj4+Pj4gaW50IGFsdF9yZWxvYzsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IGRlY29kZV9yZWxv YygmYWx0X3JlbG9jKTsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IGlmIChhbHRfcmVsb2MpIC8qIHsgZGct d2FybmluZyAibWF5IGJlIHVzZWQgdW5pbml0aWFsaXplZCIgfSAqLw0KPj4+Pj4+PiBiYXIgPSA0 MjsgDQo+Pj4+Pj4+IH0NCj4+Pj4+Pj4gPT09PT0NCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEluIHRoZSBh Ym92ZSwgdGhlIGF1dG8gdmFyIOKAnGFsdF9yZWxvY+KAnSBpcyBhZGRyZXNzIHRha2VuLCB0aGVu IHRoZSBnaW1wbGUgZHVtcCBmb3IgaXQgd2hlbiBjb21waWxlZCB3aXRoIC1mdHJpdmlhbC1hdXRv LXZhci1pbml0PXplcm8gaXM6DQo+Pj4+Pj4+IA0KPj4+Pj4+PiB2b2lkIHRlc3RmdW5jICgpDQo+ Pj4+Pj4+IHsNCj4+Pj4+Pj4gaW50IGFsdF9yZWxvYzsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IHRyeQ0K Pj4+Pj4+PiB7DQo+Pj4+Pj4+ICBfMSA9IC5ERUZFUlJFRF9JTklUICg0LCAyLCAwKTsNCj4+Pj4+ Pj4gIGFsdF9yZWxvYyA9IF8xOw0KPj4+Pj4+PiAgZGVjb2RlX3JlbG9jICgmYWx0X3JlbG9jKTsN Cj4+Pj4+Pj4gIGFsdF9yZWxvYy4wXzIgPSBhbHRfcmVsb2M7DQo+Pj4+Pj4+ICBpZiAoYWx0X3Jl bG9jLjBfMiAhPSAwKSBnb3RvIDxELjE5NDk+OyBlbHNlIGdvdG8gPEQuMTk1MD47DQo+Pj4+Pj4+ ICA8RC4xOTQ5PjoNCj4+Pj4+Pj4gIGJhciA9IDQyOw0KPj4+Pj4+PiAgPEQuMTk1MD46DQo+Pj4+ Pj4+IH0NCj4+Pj4+Pj4gZmluYWxseQ0KPj4+Pj4+PiB7DQo+Pj4+Pj4+ICBhbHRfcmVsb2MgPSB7 Q0xPQkJFUn07DQo+Pj4+Pj4+IH0NCj4+Pj4+Pj4gfQ0KPj4+Pj4+PiANCj4+Pj4+Pj4gSS5lLCBp bnN0ZWFkIG9mIHRoZSBleHBlY3RlZCBJUjoNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IGFsdF9yZWxvYyA9 IC5ERUZFUlJFRF9JTklUICg0LCAyLCAwKTsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IFdlIGdvdCB0aGUg Zm9sbG93aW5nOg0KPj4+Pj4+PiANCj4+Pj4+Pj4gXzEgPSAuREVGRVJSRURfSU5JVCAoNCwgMiwg MCk7DQo+Pj4+Pj4+ICBhbHRfcmVsb2MgPSBfMTsNCj4+Pj4+Pj4gDQo+Pj4+Pj4+IEkgZ3Vlc3Mg dGhlIHRlbXAg4oCcXzHigJ0gaXMgY3JlYXRlZCBiZWNhdXNlIOKAnGFsdF9yZWxvY+KAnSBpcyBh ZGRyZXNzIHRha2VuLiANCj4+Pj4+PiANCj4+Pj4+PiBZZXMgYW5kIG5vLiBUaGUgcmVhc29uIGlz IHRoYXQgYWx0X3JlbG9jIGlzIG1lbW9yeSAoYmVjYXVzZSBpdCBpcyBhZGRyZXNzIHRha2VuKSBh bmQgdGhhdCBHSU1QTEUgc2F5cyB0aGF0IHJlZ2lzdGVyIHR5cGVkIHN0b3JlcyBuZWVkIHRvIHVz ZSBhIGlzX2dpbXBsZV92YWwgUkhTIHdoaWNoIHRoZSBjYWxsIGlzIG5vdC4NCj4+Pj4+IA0KPj4+ Pj4gT2theS4NCj4+Pj4+PiANCj4+Pj4+Pj4gTXkgcXVlc3Rpb25zOg0KPj4+Pj4+PiANCj4+Pj4+ Pj4gU2hhbGwgd2UgYWNjZXB0IHN1Y2ggSVIgZm9yIC5ERUZFUlJFRF9JTklUIHB1cnBvc2Ugd2hl biB0aGUgYXV0byB2YXIgaXMgYWRkcmVzcyB0YWtlbj8gDQo+Pj4+Pj4gDQo+Pj4+Pj4gSSB0aGlu ayBzby4gTm90ZSBpdCBkb2Vzbid0IG5lY2Vzc2FyaWx5IG5lZWQgYWRkcmVzcyB0YWtpbmcgYnV0 IGFueSBvdGhlciByZWFzb24gdGhhdCBwcmV2ZW50cyBTU0EgcmV3cml0aW5nIHRoZSB2YXJpYWJs ZSBzdWZmaWNlcy4gDQo+Pj4+PiANCj4+Pj4+IFlvdSBtZWFuLCBpbiBhZGRpdGlvbiB0byDigJxh ZGRyZXNzIHRha2Vu4oCdLCB0aGVyZSBhcmUgb3RoZXIgc2l0dWF0aW9ucyB0aGF0IHdpbGwgaW50 cm9kdWNlIHN1Y2ggSVI6DQo+Pj4+PiANCj4+Pj4+IHRlbXAgPSAuREVGRVJSRURfSU5JVCgpOw0K Pj4+Pj4gYXV0b192YXIgPSB0ZW1wOw0KPj4+Pj4gDQo+Pj4+PiBTbywgc3VjaCBJUiBpcyB1bmF2 b2lkYWJsZSBhbmQgd2UgaGF2ZSB0byBoYW5kbGUgaXQ/DQo+Pj4+IA0KPj4+PiBZZXMuIA0KPj4+ PiANCj4+Pj4+IElmIHdlIGhhdmUgdG8gaGFuZGxlIGl0LCAgd2hhdOKAmSB0aGUgYmVzdCB3YXkg dG8gZG8gaXQ/DQo+Pj4+PiANCj4+Pj4+IFRoZSBzb2x1dGlvbiBpbiBteSBtaW5kIGlzOg0KPj4+ Pj4gMS4gRHVyaW5nIHVuaW5pdGlhbGl6ZWQgYW5hbHlzaXMgcGhhc2UsIGZvbGxvd2luZyB0aGUg ZGF0YSBmbG93IHRvIGNvbm5lY3QgLkRFRkVSUkVEX0lOSVQgdG8g4oCcYXV0b192YXLigJ0sIGFu ZCB0aGVuIGRlY2lkZSB0aGF0IOKAnGF1dG9fdmFy4oCdIGlzIHVuaW5pdGlhbGl6ZWQuDQo+Pj4+ IA0KPj4+PiBZZXMuIEJhc2ljYWxseSBpZiB0aGVyZSdzIGFuIGFydGlmaWNpYWwgdmFyaWFibGUg YXV0byBpbml0aWFsaXplZCB5b3UgaGF2ZSB0byBsb29rIGF0IGl0cyB1c2VzLiANCj4+Pj4gDQo+ Pj4+PiAyLiBEdXJpbmcgUlRMIGV4cGFuc2lvbiwgZm9sbG93aW5nIHRoZSBkYXRhIGZsb3cgdG8g Y29ubmVjdCAuREVGRVJSRURfSU5JVCB0byDigJxhdXRvX3ZhcuKAnSwgYW5kIHRoZW4gZGVsZXRl IOKAnHRlbXDigJ0sIGFuZCB0aGVuIGV4cGFuZCAuREVGRVJSRURfSU5JVCB0byBhdXRvX3Zhci4N Cj4+Pj4gDQo+Pj4+IFRoYXQgc2hvdWxkbid0IGJlIG5lY2Vzc2FyeS4gWW91J2QgaW5pdGlhbGl6 ZSBhIHRlbXBvcmFyeSByZWdpc3RlciB3aGljaCBpcyB0aGVuIGNvcGllZCB0byB0aGUgcmVhbCB2 YXJpYWJsZS4gVGhhdCdzIGdvb2QgZW5vdWdoIGFuZCBzaG91bGQgYmUgb3B0aW1pemVkIGJ5IHRo ZSBSVEwgcGlwZWxpbmUuIA0KPj4+PiANCj4+Pj4+IExldCBtZSBrbm93IHlvdXIgY29tbWVudHMg YW5kIHN1Z2dlc3Rpb25zIG9uIHRoaXMuDQo+Pj4+PiANCj4+Pj4+IA0KPj4+Pj4+IA0KPj4+Pj4+ IFRoZSBvbmx5IG90aGVyIG9wdGlvbiBpcyB0byBmb3JjZS4gREVGRVJFRF9JTklUIG1ha2luZyB0 aGUgTEhTIGFkZHJlc3MgdGFrZW4gd2hpY2ggSSB0aGluayBjb3VsZCBiZSBhY2hpZXZlZCBieSBw YXNzaW5nIGl0IHRoZSBhZGRyZXNzIGFzIGFyZ3VtZW50IGluc3RlYWQgb2YgaGF2aW5nIGEgTEhT LiBCdXQgbGV0J3Mgbm90IGdvIGRvd24gdGhpcyByb3V0ZSAtIGl0IHdpbGwgaGF2ZSBxdWl0ZSBi YWQgYmVoYXZpb3Igb24gYWxpYXMgYW5hbHlzaXMgYW5kIG9wdGltaXphdGlvbi4gDQo+Pj4+PiAN Cj4+Pj4+IE9rYXkuDQo+Pj4+PiANCj4+Pj4+IFFpbmcNCj4+Pj4+PiANCj4+Pj4+Pj4gSWYgc28s IOKAnHVuaW5pdGlhbGl6ZWQgYW5hbHlzaXPigJ0gcGhhc2UgbmVlZCB0byBiZSBmdXJ0aGVyIGFk anVzdGVkIHRvIHNwZWNpYWxseSBoYW5kbGUgc3VjaCBJUi4gDQo+Pj4+Pj4+IA0KPj4+Pj4+PiBJ ZiBub3QsIHdoYXQgc2hvdWxkIHdlIGRvIHdoZW4gdGhlIGF1dG8gdmFyIGlzIGFkZHJlc3MgdGFr ZW4/DQo+PiANCj4+IA0KPiANCj4gLS0gDQo+IFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3Vz ZS5kZT4NCj4gU1VTRSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJILCBNYXhmZWxkc3Ry YXNzZSA1LCA5MDQwOSBOdWVybmJlcmcsDQo+IEdlcm1hbnk7IEdGOiBGZWxpeCBJbWVuZMO2cmZm ZXI7IEhSQiAzNjgwOSAoQUcgTnVlcm5iZXJnKQ0KDQo=