From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [192.55.52.151]) by sourceware.org (Postfix) with ESMTPS id EB8AC3858D32 for ; Tue, 19 Sep 2023 07:50:19 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org EB8AC3858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1695109820; x=1726645820; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version:content-transfer-encoding; bh=b6TUULtZDNDBgVRJomWkAAR6g7KE1VpNRxNvMPYANZM=; b=l5kjADZTJrUfMkH7V1TNcKC7zT7xkVWAZWkD0hfckSQ6ZMW5sPPe8Z3g 9U8qJEeVSZSSrj2ww2zqYG69yvHTcrmq31YO2culn+VLqvHO323LJSohR yvvUgYuAZnxb53FhJHywhZp3bmSP3v5gFoT3mWIUMVV8ukXJ7t8ySRiJf odPu+BaEU2GA+NGuSXMSb5KpailmqvA1ocGx2G7cRzdhTKvgPCAsLY8Od Zdo2eXAFDVjtd/pEKk4VvhDYiVn12Td5yBzGvAu+S/FdoVB/fq5g2xusE LpoP0JsTtLSI8KKSDecteUk2MtoYgEMnlKcqfIqbrMdflEYepxAA36Sjr Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10837"; a="360131900" X-IronPort-AV: E=Sophos;i="6.02,158,1688454000"; d="scan'208";a="360131900" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 Sep 2023 00:50:17 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10837"; a="836342106" X-IronPort-AV: E=Sophos;i="6.02,158,1688454000"; d="scan'208";a="836342106" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by FMSMGA003.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 19 Sep 2023 00:50:17 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 19 Sep 2023 00:50:16 -0700 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32; Tue, 19 Sep 2023 00:50:15 -0700 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.32 via Frontend Transport; Tue, 19 Sep 2023 00:50:15 -0700 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.102) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.32; Tue, 19 Sep 2023 00:50:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WFkG218mmdfwilnu1tRFfloZfASe0mYzL0lH18N+BUxE36C7u2UfaKFsYXpoNwWBmAdnS+0x1D5ktsLCHCPn21M8od8fy/bRjVztCSJzm1/gJJ0RqDHTt1GLa8eHwsLYlDSbRfbG6vPIrUgoYH0VCduERtV5ryDEjwsvzXdSEUNO7kQL5LGn89xczNGB06AX3VmcG6ta4FAuOw8VU38RcaHv+sFxwtY5XjnLt+ITlH2Fmtwgv7XjyodfPF0C5YYhps7GfWRAiGs9UbP5klrHKfgJpNT3eiN2q1EpnbNVyEq22OGaF7UA3zlz8GOo/rfgEdZn6uZJwFHv3EI5PFw79A== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=E3EaK3NloavgxHMiOpz9owKwR3X6BjxU+VgkabiOovk=; b=fGfpxME5j8kmL8ozloHxd3ulBiFfgB88VNYh82c+JfN407UJ3zVgXxs/eoCmkcuiE4JmKGqegddx9L38dgDV01NiyZkFpFOK5HbabFnbt34LTb4t2bKj9BynaiGQ249oH1Qzc8Tw0vZmdQ7sjOzEPbtBbHIInjyYlzYBKh2v3GKu+DeIUHLhbk3/q5G6VENx543fzY0nu5+zEEIPq0L054nh/fuQsTLZ4lij1h7MGe0v6pDeFIKmKbwBnUVPZ8fdrN0hDTFxozC0qtLEKoshuJdBZXQdgAsEGKHmXqrCN2Vgqs7bcQjAy2zIa0T5zWdxzKRTLvbnSCX9UTpz4mW2lg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from CY8PR11MB6844.namprd11.prod.outlook.com (2603:10b6:930:5f::9) by PH0PR11MB7472.namprd11.prod.outlook.com (2603:10b6:510:28c::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.27; Tue, 19 Sep 2023 07:50:10 +0000 Received: from CY8PR11MB6844.namprd11.prod.outlook.com ([fe80::ffb9:90df:5820:b554]) by CY8PR11MB6844.namprd11.prod.outlook.com ([fe80::ffb9:90df:5820:b554%2]) with mapi id 15.20.6792.026; Tue, 19 Sep 2023 07:50:09 +0000 From: "Ijaz, Abdul B" To: Lancelot SIX CC: "gdb-patches@sourceware.org" , "pedro@palves.net" Subject: RE: [PATCH v3 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Topic: [PATCH v3 1/2] gdb: add annotation in 'info locals' command for variables shadowing case Thread-Index: AQHZ6k/yFkdGtUNGrUyhchU3ZHGLVLAhLzyAgACQTyA= Date: Tue, 19 Sep 2023 07:50:09 +0000 Message-ID: References: <20230918164738.17082-1-abdul.b.ijaz@intel.com> <20230918164738.17082-2-abdul.b.ijaz@intel.com> <20230918224557.czfvzbzzmq3ceaj5@octopus> In-Reply-To: <20230918224557.czfvzbzzmq3ceaj5@octopus> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: CY8PR11MB6844:EE_|PH0PR11MB7472:EE_ x-ms-office365-filtering-correlation-id: 110a1426-30b8-41e7-b4aa-08dbb8e50c47 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: z+A0/ldx1x0y1HwGsA/EKfOgyfGJAsmzSZuL8afDpm1EduU3AopKS8a4OPeTNAh9XoLM1hYU682sv+O/w6bLkNEtUlgrAKW5sTIAUqIrHzCZy/aoZ5t1RHXoNS2t8kWNsBFSNZrjbyVgGGD2BPPRavOviPEjcx96knma4LKETuxJAoDRgGfIXmjz4vL+nnbQ/CYvoHayedfAAaIzWrTrDfWBxU3Ckiv/06IQpaufP86uqSGmn7N5kfrCI6aHPtKloY+ZJJp83zySsP0Wq16FuPolDLCrv+BzpvdgwGLnP4r2gpqbRdrE08AWf6egrZN21KuOCq1AVtSqkYWhMXFQhs5Sj/f9YvA7r2IZbVU6gHzg+cCqGoYv/KirWr0Ip9XQ9MFUTSAP5XK8JuqFBI4sMPD3uSuhCwAKheMLSgp07tgEDNEYC0GybIgi6/AsABNH888VnR/sbtYoDPg8LtEjUoSSxDplAZi9je2AgjEILtN6kE+p3Y7YuBlDBxYVLUHLv92rgH9jI+k4NNsc7o/btQLa4t7JWBQjf2R0zQEIMDa3s1PK5f3y9/L00sqG61vDpD/FUJjzsbjVFYUaeiJBJhX9M2jzfcL+TJ4HEItDm0g= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CY8PR11MB6844.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(39860400002)(396003)(366004)(376002)(346002)(136003)(1800799009)(451199024)(186009)(2906002)(52536014)(5660300002)(4326008)(8676002)(41300700001)(6916009)(66899024)(8936002)(316002)(66446008)(64756008)(66476007)(54906003)(76116006)(66556008)(66946007)(478600001)(7696005)(71200400001)(6506007)(53546011)(83380400001)(55016003)(9686003)(33656002)(122000001)(38070700005)(38100700002)(82960400001)(86362001);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?OWlpYXdGYnFLcVRHSzZRUWRiWllIZklIblhmZk1JdHlyNlp2SEExTXJJU0gx?= =?utf-8?B?MmVEWEU3V0ZuYURoQmlUbFlpbTRweW9yMkhjem9xQUgwNHNNVFhLb0gzVXJI?= =?utf-8?B?QWJKZVZ1Q2N6a1VHTE5PVGJDbWp1N3Zwd2VyRW13elM3TkFpa1lJYWtsUzVS?= =?utf-8?B?S2ZyQ1NtS096ekFLeW9GZ0hzTHhNNS82eWJJbnVnYzFlMFd3d2Y4akdxUi9v?= =?utf-8?B?VHlURmpuekxIZDdtYWI2WHJmcUk4S3hDZkJCYnNWUERtdVpoa1Rvdy9LTVQ1?= =?utf-8?B?V2dNZjlVTGg5b2NWY0lCd21XTmVndWhaMGcrYkhkN1RkZU9VenI4dmQ2SUZx?= =?utf-8?B?a2pGVlhVTDJsL2haZTdlZUxZRFFqUy9YdGJqM1hWQ1RBMEZORTM3YU1wUHU3?= =?utf-8?B?bEY1MVRtTFQrem5wRk9obU14WE0rU0w2K0tYQnBrRGVZalYrRHNzMDd5Vmdh?= =?utf-8?B?ckU3dXAxejRFVHB4WXhDTm9PZDQ1MUZvT3JaQXNyWWdmR0NxMnhDSVpDaUNG?= =?utf-8?B?VEtWRFhhNm1JczVGcVltVDRuTUowd2NROTMwamhoNExvWGl0RDdIckVOVzBo?= =?utf-8?B?bnBPRnpOYmVPSXlCS2ZJUVBIQkw4Y2lxR0FzK3NkSURtdHE1R2s0MmZFTmJM?= =?utf-8?B?WDFCQUVLRU5MeERqeUVMTjN3ZUlNT01ManEzbzM5Y1hUNWVjN29yaDN6aWV6?= =?utf-8?B?K0w0QU5EODF1UktzanQrYmFyUEtaWEVVeVp0eHVrc0pDRUtTOUpiSkpSQVky?= =?utf-8?B?MSt4emExWXpkVXpjZ0NLZ2ozS0QyN2pxaGNZVlkzMnk0anRxUDlIK084VnlO?= =?utf-8?B?S0xid2hzOEVVWElQc1RhbnNzYkU4M1lNbjBiTHpPSmhHb25zcllDVXJ5ZnQx?= =?utf-8?B?MGl3ZW5QdVBBQXNMUXlJUnFYZXBBRGRJajJQeW5pT0NqMWhJZjFHWjNVNEVQ?= =?utf-8?B?ZkM3bTFYV3gwdjBCMzJNM0Mwbm14bTNMVi96VHBNQmdxM3BqNDV3TFlPOHUx?= =?utf-8?B?dE5nSUdhK3BaTzhZSUJJSWVWNWM2TVlGTUNueGxrbGVkUHQ3bURCMEFLOFA0?= =?utf-8?B?M05DQ0llRndudElWS2xnOTBGRmJlU3FuMWNSNnZmb0ZRN1JLUDBCUHpuL2dj?= =?utf-8?B?bDlHOGFvS05Vb0t2Z3U5TmZvQ0c2TUk1T2RYL1Q1dmxtOGlmY1NoZVVsWDcr?= =?utf-8?B?bTB4VEUyd25wd0ZpNmdpWmVwS3MrSHRuQnhWNVA0aE1kWEhqeUlzckVyK1pW?= =?utf-8?B?UkpmbXh4MjNGTFVIZFRuajB3WE1jcFBGeHpVNjRzZ1B3dmVMZnk0N0VFMkNH?= =?utf-8?B?VkMvZUxaaEVYNjhSUlZhSzF3VU1pOGxKMlR3YkxkbzZxbU1CaVJ3dWhrWGVZ?= =?utf-8?B?ZHdLQ1NsSWJMWmhPa0Vjc2MvRmdYMWRRRlJkQUlsSXFPY3YxaVhIS25keGdG?= =?utf-8?B?QXBodUhFREkxek9ldWZmNEczeWZvd2c1RTZDQjFpNTZobnFHeEZnZmhuZXBv?= =?utf-8?B?OWtHWXZ3ZjNGTSszLzUrTHV5VFY4cUFVS3pNYnY4Z0lyaDl2NWJIOTRadkRn?= =?utf-8?B?UVR4VnBvMGR4eXVzSTdKM1Q5RDRhVUJDbTd1TEdoS3V1ZjEwVzNRTU9Vbkpt?= =?utf-8?B?UFN4SlVNcVcwWlZqOGd4WEFLcUlodTF6cVhJZWxRL2Z4ZTRlUk9LMU8xUUdP?= =?utf-8?B?U3RCOUtFMnU0K2hVODFaWDRwaVNpTytRMHgwWUhhbmlJZEJMbENEYURONHlS?= =?utf-8?B?UmM0TDNCdWZnQ2xha2RYNkFtMW43d0dlNnVBbFUzSEZwOGY3UmxBVm1XUXFx?= =?utf-8?B?c0pTOWVQWlVTV1RmRXVaQ3VtUFdjUmZjM3U5ZHF5UHoxdnVyYWcyZ1dCTEJD?= =?utf-8?B?MWFGUXMyUVo0bVhMZDhyZjZWb2FVZTM4RGVqNnVLQ1dtcE1FaFIwanBaMHZn?= =?utf-8?B?Uk1jdTFTOHJ1bmJZbjEyZTZudlYyWTFkMzZab1htUEtmZ2tqaDlyOTZHWkNE?= =?utf-8?B?ZmdYbnA5VUFGZFFURW5yU2pQWTcvQUFud1pJN21hY0FKT2UvTDhhZkVhVDl3?= =?utf-8?B?cC82bFFMWHN4dm9xUDBEV1h6aG85YU1sNmxiMEVGQWlUeVk3N0tOWGFiV2lM?= =?utf-8?B?UkkzMFhqRDJSWXMwM3pHTUxpYTNJR240LzZkN2tlcEFHcHR6WUMyQXVqN25w?= =?utf-8?Q?wJXUWBnQ93FShg6nDI6aiS9cKUNxr2/nA/aI69pcnVqF?= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CY8PR11MB6844.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 110a1426-30b8-41e7-b4aa-08dbb8e50c47 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Sep 2023 07:50:09.5640 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: A7uj07d1CR0vwlN5PKOvFczBf8ozjmCML2pHWvmB3o9OTb2sUrp4+m4GPk8qgS/VmR0DOuNxmK/Ukws6LzoCRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR11MB7472 X-OriginatorOrg: intel.com Content-Transfer-Encoding: base64 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGkgTGFuY2Vsb3QsDQoNClRoYW5rcyBhIGxvdCBmb3IgeW91ciBmZWVkYmFjayBhbmQgcG9pbnRp bmcgb3V0IHRoZSBpbXByb3ZlbWVudHMuIEFsbCB0aGVzZSB3aWxsIGJlIGZpeGVkIGluIFY0IHBh dGNoIHNlcmllcyB3aGljaCBJIHdpbGwgdHJ5IHRvIHRlc3QgYW5kIHB1c2ggZm9yIHJldmlldyB0 b2RheS4NCg0KPiA+ICsgICAgICBzaXplX3Qgc2xhc2hfaW5kZXggPSBmaWxlX3BhdGguZmluZF9s YXN0X29mICgiXFwvIik7DQoNCj4gSSB0aGluayB5b3UgbWlnaHQgcHJlZmVyIHRvIHVzZSBsYmFz ZW5hbWUgKGluY2x1ZGUvbGliaWJlcnR5LmgpIGFzIEkgZ3Vlc3MgdGhpcyBzZWFyY2ggY2FuIGZh aWwuICANClRoaXMgaXMgaGVscGZ1bCB0aGFua3MgZm9yIHBvaW50aW5nIHRvIHRoaXMgaGVhZGVy IGZpbGUuICBXaWxsIGJlIHVwZGF0ZWQgaW4gUGF0Y2ggdjQuDQoNCj4+ICsgICAgICBzdGQ6OnN0 cmluZyBmaWxlX25hbWUgPSAoIWZpbGVfcGF0aC5lbXB0eSAoKQ0KPj4gKwkJCSAgICAgICA/IGZp bGVfcGF0aC5zdWJzdHIgKHNsYXNoX2luZGV4ICsgMSkNCj4+ICsJCQkgICAgICAgOiAiTkEiKTsN Cj4gQXMgZm9yIHRoZSAiTkEiIGNhc2UsIEkgYW0gbm90IHN1cmUgd2hlbiBpdCBjYW4gaGFwcGVu LiAgSWYgdGhlIHN5bXRhYidzIGZpbGVuYW1lIGNhbiBiZSBudWxscHRyIChvciBzdGFydCB3aXRo IFwwKSwgYSB0ZXN0IG1pZ2h0IGJlIG5lY2Vzc2FyeS4NCldpbGwgbm90IGJlIHVzaW5nIE5BIGFu eW1vcmUgaW4gUGF0Y2ggdjQgYXMgSSBhbSBhbHNvIG5vdCBhd2FyZSBvZiBOQSBjYXNlLg0KDQo+ PiArCQkJICAgc3RkOjp1bm9yZGVyZWRfc2V0PHN0ZDo6c3RyaW5nPiBzaGFkb3dlZF92YXJzLA0K DQo+IFRoaXMgc2hhZG93ZWRfdmFycyBwYXJhbWV0ZXIgaXMgb25seSBzZWFyY2hlZCwgbm90IG1v ZGlmaWVkLiAgRGlkIHlvdSBtZWFuIHRvIHBhc3MgaXQgYnkgY29uc3QgcmVmPyAgT3RoZXJ3aXNl LCB5b3UgZW5kLXVwIGNvcHlpbmcgdGhlIGVudGlyZSBzZXQuDQpVc2luZyBjb25zdCBhbmQgYnkg cmVmZXJlbmNlIHdvdWxkIGJlIHJpZ2h0IGhlcmUgc28gd2lsbCBiZSBhZGRlZCBpbiBWNCBwYXRj aC4NCg0KPj4gKyAgICAgIHByaW50ZWRfdmFycy5pbnNlcnQgKG5hbWUpOw0KDQo+SSB0aGluayB5 b3UgY2FuIHNpbXBsaWZ5IHRoaXMgYSBiaXQgYnkgdXNpbmcgc3RkOjp1bm9yZGVyZWRfc2V0PFQ+ OjppbnNlcnQncyByZXR1cm4gdmFsdWUuICBJdCBpcyBhIHBhaXIgd2hvc2Ugc2Vjb25kIGVsZW1l bnQgaXMgYSBib29sIGluZGljYXRpbmcgaWYgdGhlIGluc2VydGlvbiB0b29rIHBsYWNlLiAgSWYg ZmFsc2UsIGl0IG1lYW5zIHRoYXQgdGhlIGVsZW1lbnQgd2FzIGFscmVhZHkgaW4gdGhlIHNldC4N Cg0KICA+ICBib29sIGFscmVhZHlfcHJpbnRlZCA9ICFwcmludGVkX3ZhcnMuaW5zZXJ0IChuYW1l KS5zZWNvbmQ7DQpXaWxsIGJlIHVwZGF0ZWQgaW4gdjQgUGF0Y2guDQoNCj4+ICsJICBlbHNlDQo+ PiArCSAgICB7DQo+PiArCSAgICAgIGNiIChuYW1lLCBzeW0sIGZhbHNlLCBmYWxzZSk7DQo+PiAr CSAgICB9DQoNCj5BcyB0aGVyZSBpcyBqdXN0IG9uZSBsaW5lIGluIHRoZSBlbHNlLCBubyBuZWVk IGZvciB0aGUgeyB9Lg0KUmVtb3Zpbmcge30gaW4gUGF0Y2ggdjQuDQoNCj4+KyAgd2hpbGUgKGJs b2NrKQ0KDQo+QWNjb3JkaW5nIHRvIHRoZSBHREIgY29kaW5nIHN0eWxlLCB0aGlzIHNob3VsZCBi ZQ0KDQo+ICB3aGlsZSAoYmxvY2sgIT0gbnVsbHB0cikNClVwZGF0aW5nIGluIFY0IHBhdGNoLg0K DQo+PiArCSAgICBjb2xsZWN0ZWRfdmFycy5pbnNlcnQgKG5hbWUpOw0KDQo+U2ltaWxhcmx5LCB0 aGlzIGNvdWxkIGJlDQoNCj4gIGlmICghY29sbGVjdGVkX3ZhcnMuaW5zZXJ0IChuYW1lKS5zZWNv bmQpDQogPiAgIHNoYWRvd2VkX3ZhcnMuaW5zZXJ0IChuYW1lKTsNCkZpeGVkIGluIFY0IHBhdGNo Lg0KDQo+PiArdm9pZA0KPj4gK3NoYWRvd2luZyAoKQ0KID4gICAgICAgICAgICAgXg0KPlRoaXMg c2hvdWxkIGJlDQoNCj52b2lkDQo+c2hhZG93aW5nICh2b2lkKQ0KRml4aW5nIGluIFY0IHBhdGNo Lg0KDQpUaGFua3MgJiBCZXN0IFJlZ2FyZHMNCkFiZHVsIEJhc2l0DQoNCi0tLS0tT3JpZ2luYWwg TWVzc2FnZS0tLS0tDQpGcm9tOiBMYW5jZWxvdCBTSVggPGxzaXhAbGFuY2Vsb3RzaXguY29tPiAN ClNlbnQ6IFR1ZXNkYXksIFNlcHRlbWJlciAxOSwgMjAyMyAxMjo0NiBBTQ0KVG86IElqYXosIEFi ZHVsIEIgPGFiZHVsLmIuaWphekBpbnRlbC5jb20+DQpDYzogZ2RiLXBhdGNoZXNAc291cmNld2Fy ZS5vcmc7IHBlZHJvQHBhbHZlcy5uZXQNClN1YmplY3Q6IFJlOiBbUEFUQ0ggdjMgMS8yXSBnZGI6 IGFkZCBhbm5vdGF0aW9uIGluICdpbmZvIGxvY2FscycgY29tbWFuZCBmb3IgdmFyaWFibGVzIHNo YWRvd2luZyBjYXNlDQoNCkhpIEFiZHVsLA0KDQpUaGFua3MgZm9yIHdvcmtpbmcgb24gdGhpcy4g IEkgaGF2ZSBpbmNsdWRlZCBzb21lIGNvbW1lbnRzIG9uIHRoZSBwYXRjaC4NCg0KPiBkaWZmIC0t Z2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQuYyBpbmRleCANCj4gOGQ3ZDA0MjMx ZmUuLjE3ZTM4NTEzOGQyIDEwMDY0NA0KPiAtLS0gYS9nZGIvcHJpbnRjbWQuYw0KPiArKysgYi9n ZGIvcHJpbnRjbWQuYw0KPiBAQCAtMjQwMSw3ICsyNDAxLDggQEAgY2xlYXJfZGFuZ2xpbmdfZGlz cGxheV9leHByZXNzaW9ucyAoc3RydWN0IA0KPiBvYmpmaWxlICpvYmpmaWxlKSAgdm9pZCAgcHJp bnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLCANCj4gc3RydWN0IHN5bWJv bCAqdmFyLA0KPiAgCQkJICBmcmFtZV9pbmZvX3B0ciBmcmFtZSwNCj4gLQkJCSAgc3RydWN0IHVp X2ZpbGUgKnN0cmVhbSwgaW50IGluZGVudCkNCj4gKwkJCSAgc3RydWN0IHVpX2ZpbGUgKnN0cmVh bSwgaW50IGluZGVudCwNCj4gKwkJCSAgYm9vbCBzaGFkb3dlZCwgYm9vbCBwcmludGVkKQ0KPiAg ew0KPiAgDQo+ICAgIGlmICghbmFtZSkNCj4gQEAgLTI0MTQsNiArMjQxNSwxMSBAQCBwcmludF92 YXJpYWJsZV9hbmRfdmFsdWUgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBzeW1ib2wgKnZhciwN Cj4gICAgICB7DQo+ICAgICAgICBzdHJ1Y3QgdmFsdWUgKnZhbDsNCj4gICAgICAgIHN0cnVjdCB2 YWx1ZV9wcmludF9vcHRpb25zIG9wdHM7DQo+ICsgICAgICBzdGQ6OnN0cmluZyBmaWxlX3BhdGgg PSB2YXItPm93bmVyLnN5bXRhYi0+ZmlsZW5hbWU7DQo+ICsgICAgICBzaXplX3Qgc2xhc2hfaW5k ZXggPSBmaWxlX3BhdGguZmluZF9sYXN0X29mICgiXFwvIik7DQoNCkkgdGhpbmsgeW91IG1pZ2h0 IHByZWZlciB0byB1c2UgbGJhc2VuYW1lIChpbmNsdWRlL2xpYmliZXJ0eS5oKSBhcyBJIGd1ZXNz IHRoaXMgc2VhcmNoIGNhbiBmYWlsLiAgRm9yIGV4YW1wbGUsICJcIiBjYW4gaW4gYSBmaWxlbmFt ZSBvbiBMaW51eCAobm90IHNheWluZyBpdCBpcyBhIHdpc2UgdGhpbmcgdG8gZG8pLg0KDQogIGNv bnN0IGNoYXIgKmZpbGVfbmFtZSA9IGxiYXNlbmFtZSAodmFyLT5vd25lci5zeW10YWItPmZpbGVu YW1lKTsNCg0KPiArICAgICAgc3RkOjpzdHJpbmcgZmlsZV9uYW1lID0gKCFmaWxlX3BhdGguZW1w dHkgKCkNCj4gKwkJCSAgICAgICA/IGZpbGVfcGF0aC5zdWJzdHIgKHNsYXNoX2luZGV4ICsgMSkN Cj4gKwkJCSAgICAgICA6ICJOQSIpOw0KDQpBcyBmb3IgdGhlICJOQSIgY2FzZSwgSSBhbSBub3Qg c3VyZSB3aGVuIGl0IGNhbiBoYXBwZW4uICBJZiB0aGUgc3ltdGFiJ3MgZmlsZW5hbWUgY2FuIGJl IG51bGxwdHIgKG9yIHN0YXJ0IHdpdGggXDApLCBhIHRlc3QgbWlnaHQgYmUgbmVjZXNzYXJ5Lg0K DQo+ICANCj4gICAgICAgIC8qIFJFQURfVkFSX1ZBTFVFIG5lZWRzIGEgYmxvY2sgaW4gb3JkZXIg dG8gZGVhbCB3aXRoIG5vbi1sb2NhbA0KPiAgCSByZWZlcmVuY2VzIChpLmUuIHRvIGhhbmRsZSBu ZXN0ZWQgZnVuY3Rpb25zKS4gIEluIHRoaXMgY29udGV4dCwgd2UgDQo+IEBAIC0yNDI0LDYgKzI0 MzAsMTIgQEAgcHJpbnRfdmFyaWFibGVfYW5kX3ZhbHVlIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1 Y3Qgc3ltYm9sICp2YXIsDQo+ICAgICAgICBvcHRzLmRlcmVmX3JlZiA9IHRydWU7DQo+ICAgICAg ICBjb21tb25fdmFsX3ByaW50X2NoZWNrZWQgKHZhbCwgc3RyZWFtLCBpbmRlbnQsICZvcHRzLCAN Cj4gY3VycmVudF9sYW5ndWFnZSk7DQo+ICANCj4gKyAgICAgIGlmIChzaGFkb3dlZCkNCj4gKwkv KiBQcmludCBsb2NhdGlvbiBhbmQgc2hhZG93ZWQgdmFyaWFibGUgaW5mb3JtYXRpb24uICAqLw0K PiArCWZwcmludGZfc3R5bGVkIChzdHJlYW0sIG1ldGFkYXRhX3N0eWxlLnN0eWxlICgpLA0KPiAr CQkJXygiXHQ8JXM6JWQlcz4iKSwgZmlsZV9uYW1lLmNfc3RyICgpLA0KPiArCQkJdmFyLT5saW5l ICgpLCBwcmludGVkID8gIiwgc2hhZG93ZWQiIDogIiIpOw0KPiArDQo+ICAgICAgICAvKiBjb21t b25fdmFsX3ByaW50IGludmFsaWRhdGVzIEZSQU1FIHdoZW4gYSBwcmV0dHkgcHJpbnRlciBjYWxs cyBpbmZlcmlvcg0KPiAgCSBmdW5jdGlvbi4gICovDQo+ICAgICAgICBmcmFtZSA9IE5VTEw7DQo+ IGRpZmYgLS1naXQgYS9nZGIvc3RhY2suYyBiL2dkYi9zdGFjay5jIGluZGV4IDBiMzVkNjJmODJm Li5mMGYzODRjNjI3MCANCj4gMTAwNjQ0DQo+IC0tLSBhL2dkYi9zdGFjay5jDQo+ICsrKyBiL2dk Yi9zdGFjay5jDQo+IEBAIC01Niw2ICs1Niw3IEBADQo+ICAjaW5jbHVkZSAiY2xpL2NsaS1vcHRp b24uaCINCj4gICNpbmNsdWRlICJjbGkvY2xpLXN0eWxlLmgiDQo+ICAjaW5jbHVkZSAiZ2Ric3Vw cG9ydC9idWlsZGFyZ3YuaCINCj4gKyNpbmNsdWRlIDx1bm9yZGVyZWRfc2V0Pg0KPiAgDQo+ICAv KiBUaGUgcG9zc2libGUgY2hvaWNlcyBvZiAic2V0IHByaW50IGZyYW1lLWFyZ3VtZW50cyIsIGFu ZCB0aGUgdmFsdWUNCj4gICAgIG9mIHRoaXMgc2V0dGluZy4gICovDQo+IEBAIC0yMjExLDEwICsy MjEyLDE4IEBAIGJhY2t0cmFjZV9jb21tYW5kX2NvbXBsZXRlciAoc3RydWN0IA0KPiBjbWRfbGlz dF9lbGVtZW50ICppZ25vcmUsDQo+ICANCj4gIHN0YXRpYyB2b2lkDQo+ICBpdGVyYXRlX292ZXJf YmxvY2tfbG9jYWxzIChjb25zdCBzdHJ1Y3QgYmxvY2sgKmIsDQo+IC0JCQkgICBpdGVyYXRlX292 ZXJfYmxvY2tfYXJnX2xvY2FsX3ZhcnNfY2IgY2IpDQo+ICsJCQkgICBpdGVyYXRlX292ZXJfYmxv Y2tfYXJnX2xvY2FsX3ZhcnNfY2IgY2IsDQo+ICsJCQkgICBzdGQ6OnVub3JkZXJlZF9zZXQ8c3Rk OjpzdHJpbmc+IHNoYWRvd2VkX3ZhcnMsDQoNClRoaXMgc2hhZG93ZWRfdmFycyBwYXJhbWV0ZXIg aXMgb25seSBzZWFyY2hlZCwgbm90IG1vZGlmaWVkLiAgRGlkIHlvdSBtZWFuIHRvIHBhc3MgaXQg YnkgY29uc3QgcmVmPyAgT3RoZXJ3aXNlLCB5b3UgZW5kLXVwIGNvcHlpbmcgdGhlIGVudGlyZSBz ZXQuDQoNCj4gKwkJCSAgIHN0ZDo6dW5vcmRlcmVkX3NldDxzdGQ6OnN0cmluZz4gJnByaW50ZWRf dmFycykNCj4gIHsNCj4gICAgZm9yIChzdHJ1Y3Qgc3ltYm9sICpzeW0gOiBibG9ja19pdGVyYXRv cl9yYW5nZSAoYikpDQo+ICAgICAgew0KPiArICAgICAgY29uc3QgY2hhciAqbmFtZSA9IHN5bS0+ cHJpbnRfbmFtZSAoKTsNCj4gKyAgICAgIGJvb2wgYWxyZWFkeV9wcmludGVkDQo+ICsJPSBwcmlu dGVkX3ZhcnMuZmluZCAobmFtZSkgIT0gcHJpbnRlZF92YXJzLmVuZCAoKTsNCj4gKyAgICAgIHBy aW50ZWRfdmFycy5pbnNlcnQgKG5hbWUpOw0KDQpJIHRoaW5rIHlvdSBjYW4gc2ltcGxpZnkgdGhp cyBhIGJpdCBieSB1c2luZyBzdGQ6OnVub3JkZXJlZF9zZXQ8VD46Omluc2VydCdzIHJldHVybiB2 YWx1ZS4gIEl0IGlzIGEgcGFpciB3aG9zZSBzZWNvbmQgZWxlbWVudCBpcyBhIGJvb2wgaW5kaWNh dGluZyBpZiB0aGUgaW5zZXJ0aW9uIHRvb2sgcGxhY2UuICBJZiBmYWxzZSwgaXQgbWVhbnMgdGhh dCB0aGUgZWxlbWVudCB3YXMgYWxyZWFkeSBpbiB0aGUgc2V0Lg0KDQogICAgYm9vbCBhbHJlYWR5 X3ByaW50ZWQgPSAhcHJpbnRlZF92YXJzLmluc2VydCAobmFtZSkuc2Vjb25kOw0KDQo+ICsgICAg ICBib29sIHNoYWRvd2VkID0gc2hhZG93ZWRfdmFycy5maW5kIChuYW1lKSAhPSBzaGFkb3dlZF92 YXJzLmVuZCANCj4gKyAoKTsNCj4gKw0KPiAgICAgICAgc3dpdGNoIChzeW0tPmFjbGFzcyAoKSkN Cj4gIAl7DQo+ICAJY2FzZSBMT0NfQ09OU1Q6DQo+IEBAIC0yMjI3LDcgKzIyMzYsMjcgQEAgaXRl cmF0ZV9vdmVyX2Jsb2NrX2xvY2FscyAoY29uc3Qgc3RydWN0IGJsb2NrICpiLA0KPiAgCSAgICBi cmVhazsNCj4gIAkgIGlmIChzeW0tPmRvbWFpbiAoKSA9PSBDT01NT05fQkxPQ0tfRE9NQUlOKQ0K PiAgCSAgICBicmVhazsNCj4gLQkgIGNiIChzeW0tPnByaW50X25hbWUgKCksIHN5bSk7DQo+ICsJ ICAvKiBPbmx5IGZvciBDL0MrKy9Gb3J0cmFuL0FkYSBsYW5ndWFnZXMsIGluIGNhc2Ugb2YgdmFy aWFibGVzDQo+ICsJICAgICBzaGFkb3dpbmcgcHJpbnQgPGZpbGU6bGluZSwgc2hhZG93ZWQ+IGFu bm90YXRpb24gYWZ0ZXINCj4gKwkgICAgIHRoZSBzdXBlcmJsb2NrIHZhcmlhYmxlLiAgSXRlcmF0 aW9uIG9mIGJsb2NrIHN0YXJ0cyBmcm9tIGlubmVyDQo+ICsJICAgICBibG9jayB3aGljaCBpcyBw cmludGVkIG9ubHkgd2l0aCBsb2NhdGlvbiBpbmZvcm1hdGlvbi4gICovDQo+ICsJICBpZiAoKGN1 cnJlbnRfbGFuZ3VhZ2UtPmxhX2xhbmd1YWdlID09IGxhbmd1YWdlX2MNCj4gKwkgICAgICAgfHwg Y3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfY3BsdXMNCj4gKwkgICAg ICAgfHwgY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3VhZ2VfZm9ydHJhbg0K PiArCSAgICAgICB8fCBjdXJyZW50X2xhbmd1YWdlLT5sYV9sYW5ndWFnZSA9PSBsYW5ndWFnZV9h ZGEpDQo+ICsJICAgICAgJiYgc2hhZG93ZWQpDQo+ICsJICAgIGNiIChuYW1lLCBzeW0sIHRydWUs IGFscmVhZHlfcHJpbnRlZCk7DQo+ICsJICAvKiBJbiBjYXNlIG9mIFJ1c3QgbGFuZ3VhZ2UgaXQg aXMgcG9zc2libGUgdG8gZGVjbGFyZSB2YXJpYWJsZSB3aXRoDQo+ICsJICAgICBzYW1lIG5hbWUg bXVsdGlwbGUgdGltZXMgYW5kIG9ubHkgbGF0ZXN0IGRlY2xhcmF0aW9uIG9mIHZhcmlhYmxlDQo+ ICsJICAgICBpcyBhY2Nlc3NpYmxlLiAgU28gcHJpbnQgb25seSB0aGUgZmlyc3QgaW5zdGFuY2Ug YW5kIHRoZXJlIGlzIG5vDQo+ICsJICAgICBuZWVkIG9mIHByaW50aW5nIGR1cGxpY2F0ZXMuICAq Lw0KPiArCSAgZWxzZSBpZiAoY3VycmVudF9sYW5ndWFnZS0+bGFfbGFuZ3VhZ2UgPT0gbGFuZ3Vh Z2VfcnVzdA0KPiArCQkgICAmJiBzaGFkb3dlZCAmJiBhbHJlYWR5X3ByaW50ZWQpDQo+ICsJICAg IGJyZWFrOw0KPiArCSAgZWxzZQ0KPiArCSAgICB7DQo+ICsJICAgICAgY2IgKG5hbWUsIHN5bSwg ZmFsc2UsIGZhbHNlKTsNCj4gKwkgICAgfQ0KDQpBcyB0aGVyZSBpcyBqdXN0IG9uZSBsaW5lIGlu IHRoZSBlbHNlLCBubyBuZWVkIGZvciB0aGUgeyB9Lg0KDQo+ICAJICBicmVhazsNCj4gIA0KPiAg CWRlZmF1bHQ6DQo+IEBAIC0yMjQ0LDkgKzIyNzMsMzAgQEAgdm9pZA0KPiAgaXRlcmF0ZV9vdmVy X2Jsb2NrX2xvY2FsX3ZhcnMgKGNvbnN0IHN0cnVjdCBibG9jayAqYmxvY2ssDQo+ICAJCQkgICAg ICAgaXRlcmF0ZV9vdmVyX2Jsb2NrX2FyZ19sb2NhbF92YXJzX2NiIGNiKSAgew0KPiArICBzdGQ6 OnVub3JkZXJlZF9zZXQ8c3RkOjpzdHJpbmc+IGNvbGxlY3RlZF92YXJzLCBzaGFkb3dlZF92YXJz LCANCj4gKyBwcmludGVkX3ZhcnM7ICBjb25zdCBzdHJ1Y3QgYmxvY2sgKm9yaWdfYmxvY2sgPSBi bG9jazsNCj4gKw0KPiArICAvKiBJdGVyYXRlIG92ZXIgYWxsIHRoZSBsb2NhbCB2YXJpYWJsZXMg aW4gYSBibG9jayBhbmQgc3RvcmUgdGhlIGxpc3Qgb2YNCj4gKyAgICAgc2hhZG93ZWQgdmFyaWFi bGVzIHRvIGxhdGVyIGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSBvdGhlciANCj4gKyB2YXJpYWJsZXMu ICAqLyAgd2hpbGUgKGJsb2NrKQ0KDQpBY2NvcmRpbmcgdG8gdGhlIEdEQiBjb2Rpbmcgc3R5bGUs IHRoaXMgc2hvdWxkIGJlDQoNCiAgd2hpbGUgKGJsb2NrICE9IG51bGxwdHIpDQoNCj4gKyAgICB7 DQo+ICsgICAgICBmb3IgKHN0cnVjdCBzeW1ib2wgKnN5bSA6IGJsb2NrX2l0ZXJhdG9yX3Jhbmdl IChibG9jaykpDQo+ICsJew0KPiArCSAgY29uc3QgY2hhciAqbmFtZSA9IHN5bS0+cHJpbnRfbmFt ZSAoKTsNCj4gKwkgIGlmIChjb2xsZWN0ZWRfdmFycy5maW5kIChuYW1lKSAhPSBjb2xsZWN0ZWRf dmFycy5lbmQgKCkpDQo+ICsJICAgIHNoYWRvd2VkX3ZhcnMuaW5zZXJ0IChuYW1lKTsNCj4gKwkg IGVsc2UNCj4gKwkgICAgY29sbGVjdGVkX3ZhcnMuaW5zZXJ0IChuYW1lKTsNCg0KU2ltaWxhcmx5 LCB0aGlzIGNvdWxkIGJlDQoNCiAgaWYgKCFjb2xsZWN0ZWRfdmFycy5pbnNlcnQgKG5hbWUpLnNl Y29uZCkNCiAgICBzaGFkb3dlZF92YXJzLmluc2VydCAobmFtZSk7DQoNCj4gKwl9DQo+ICsJaWYg KGJsb2NrLT5mdW5jdGlvbiAoKSkNCj4gKwkgIGJyZWFrOw0KPiArCWJsb2NrID0gYmxvY2stPnN1 cGVyYmxvY2sgKCk7DQo+ICsgICAgfQ0KPiArDQo+ICsgIGJsb2NrID0gb3JpZ19ibG9jazsNCj4g ICAgd2hpbGUgKGJsb2NrKQ0KPiAgICAgIHsNCj4gLSAgICAgIGl0ZXJhdGVfb3Zlcl9ibG9ja19s b2NhbHMgKGJsb2NrLCBjYik7DQo+ICsgICAgICBpdGVyYXRlX292ZXJfYmxvY2tfbG9jYWxzIChi bG9jaywgY2IsIHNoYWRvd2VkX3ZhcnMsIA0KPiArIHByaW50ZWRfdmFycyk7DQo+ICAgICAgICAv KiBBZnRlciBoYW5kbGluZyB0aGUgZnVuY3Rpb24ncyB0b3AtbGV2ZWwgYmxvY2ssIHN0b3AuICBE b24ndA0KPiAgCSBjb250aW51ZSB0byBpdHMgc3VwZXJibG9jaywgdGhlIGJsb2NrIG9mIHBlci1m aWxlDQo+ICAJIHN5bWJvbHMuICAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIu YmFzZS92YXItc2hhZG93aW5nLmMgDQo+IGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS92YXItc2hh ZG93aW5nLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA3NTUNCj4gaW5kZXggMDAwMDAwMDAwMDAuLjAw NTk3YjQwMmJhDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFz ZS92YXItc2hhZG93aW5nLmMNCj4gQEAgLTAsMCArMSw0OSBAQA0KPiArLyogQ29weXJpZ2h0IChD KSAyMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPiArDQo+ICsgICBUaGlzIHBy b2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQ0KPiArICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMg TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkNCj4gKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yDQo+ICsgICAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiArDQo+ICsgICBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwNCj4gKyAgIGJ1dCBX SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m DQo+ICsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlDQo+ICsgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLg0KPiArDQo+ICsgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQ0KPiArICAgYWxvbmcgd2l0aCB0aGlzIHByb2dy YW0uICBJZiBub3QsIHNlZSANCj4gKyA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAq Lw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkbGliLmg+DQo+ICsNCj4gK3ZvaWQNCj4gK3NoYWRvd2lu ZyAoKQ0KICAgICAgICAgICAgICBeDQpUaGlzIHNob3VsZCBiZQ0KDQp2b2lkDQpzaGFkb3dpbmcg KHZvaWQpDQoNCj4gK3sNCj4gKyAgaW50IGE7ICAvKiBicCBmb3IgZW50cnkgKi8NCj4gKyAgdW5z aWduZWQgaW50IHZhbDEgPSAxOwkJLyogdmFsMS1kMSAqLw0KPiArICB1bnNpZ25lZCBpbnQgdmFs MiA9IDI7CQkvKiB2YWwyLWQxICovDQo+ICsgIGEgPSAxMDE7ICAvKiBicCBmb3IgbG9jYWxzIDEg Ki8NCj4gKyAgew0KPiArICAgIHVuc2lnbmVkIGludCB2YWwyID0gMzsJCS8qIHZhbDItZDIgKi8N Cj4gKyAgICB1bnNpZ25lZCBpbnQgdmFsMyA9IDQ7CQkvKiB2YWwzLWQxICovDQo+ICsgICAgYSA9 IDEwMjsgIC8qIGJwIGZvciBsb2NhbHMgMiAqLw0KPiArICAgIHsNCj4gKyAgICAgIHVuc2lnbmVk IGludCB2YWwxID0gNTsJCS8qIHZhbDEtZDIgKi8NCj4gKyAgICAgIGEgPSAxMDM7ICAvKiBicCBm b3IgbG9jYWxzIDMgKi8NCj4gKyAgICAgIHsNCj4gKwkjaW5jbHVkZSAidmFyLXNoYWRvd2luZzIu YyINCj4gKwl1bnNpZ25lZCBpbnQgdmFsMSA9IDY7CS8qIHZhbDEtZDMgKi8NCj4gKwl1bnNpZ25l ZCBpbnQgdmFsMiA9IDc7CS8qIHZhbDItZDMgKi8NCj4gKwl1bnNpZ25lZCBpbnQgdmFsMyA9IDg7 CS8qIHZhbDMtZDIgKi8NCj4gKwlhID0gMTA0OyAgLyogYnAgZm9yIGxvY2FscyA0ICovDQo+ICsg ICAgICB9DQo+ICsgICAgfQ0KPiArICB9DQo+ICsgIGEgPSAwOyAvKiBicCBmb3IgbG9jYWxzIDUg Ki8NCj4gK30NCj4gKw0KPiAraW50DQo+ICttYWluICh2b2lkKQ0KPiArew0KPiArICBzaGFkb3dp bmcgKCk7DQo+ICsgIHJldHVybiAwOw0KPiArfQ0KDQpCZXN0LA0KTGFuY2Vsb3QuDQpJbnRlbCBE ZXV0c2NobGFuZCBHbWJIClJlZ2lzdGVyZWQgQWRkcmVzczogQW0gQ2FtcGVvbiAxMCwgODU1Nzkg TmV1YmliZXJnLCBHZXJtYW55ClRlbDogKzQ5IDg5IDk5IDg4NTMtMCwgd3d3LmludGVsLmRlIDxo dHRwOi8vd3d3LmludGVsLmRlPgpNYW5hZ2luZyBEaXJlY3RvcnM6IENocmlzdGluIEVpc2Vuc2No bWlkLCBTaGFyb24gSGVjaywgVGlmZmFueSBEb29uIFNpbHZhICAKQ2hhaXJwZXJzb24gb2YgdGhl IFN1cGVydmlzb3J5IEJvYXJkOiBOaWNvbGUgTGF1ClJlZ2lzdGVyZWQgT2ZmaWNlOiBNdW5pY2gK Q29tbWVyY2lhbCBSZWdpc3RlcjogQW10c2dlcmljaHQgTXVlbmNoZW4gSFJCIDE4NjkyOAo=