From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web11.6630.1678826435748074532 for ; Tue, 14 Mar 2023 13:40:35 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=KpiUe/zC; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: michael.d.kinney@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678826435; x=1710362435; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=Mpk0ZBIVL6t78nMtRRGcL4KhDqVCrjaYhkYGLvf00XY=; b=KpiUe/zCU2gi8l1RZ8jKqYp5woNC663VAJOLT1jh3j7dyvCfdJoQsQfk QopeQH7a3cXBGjSxtMrs2pzxpidFgP93EqQBkO8H2jMzTeXnslVm1Ncfi UTHK6Tgrd0GFAVCuC7fjjwp2+HOIpc+zAHjCHGe5rR7krLpEMUffn66fi sNwqZiVSMKUEnTR2yqAoeXrN5ZbWHAgbCd787TymlQ82wmTSBrNyfwspC uWGA4bbSC48HStXm/zgfrtCu1mLXGeVk1tR2rPx2dOV1QfPs1EmrPKa4+ Xbo5dvRMTNr6d4cyis3F5xklI/BikefsG0bhTnCmmvzjhedYG4yl/W243 g==; X-IronPort-AV: E=McAfee;i="6500,9779,10649"; a="335022615" X-IronPort-AV: E=Sophos;i="5.98,260,1673942400"; d="scan'208";a="335022615" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 14 Mar 2023 13:40:35 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10649"; a="743460334" X-IronPort-AV: E=Sophos;i="5.98,260,1673942400"; d="scan'208";a="743460334" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga008.fm.intel.com with ESMTP; 14 Mar 2023 13:40:35 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Tue, 14 Mar 2023 13:40:34 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21 via Frontend Transport; Tue, 14 Mar 2023 13:40:34 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.173) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.21; Tue, 14 Mar 2023 13:40:34 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ENoNqqZtua+BPbO0YFrhvis7ZvglDIiFxS+qIeRvsJgH+oOgFz64FwImhTGLOYp7w4iw788MTA43CeIlxNqCNFTZhD3uGJue9qu6kk7kzD7Q4LASxgpTVKxBeLYF5TOMToPS5B1BOFTS19DTf+R/u1ZPVajEhX3Mh0yYpqpOtrO/Ipuhyd/+hx5KF03vsxSO7EzMtXmzPe1/0PDoV7ytd0OcqPvAZSdhzq5PODj78PNNbO1TZ64EGycGNJ3vy2BgloMgXablrTlrqtuhK1k9u++74/iYCqgjLkzKOb5fjuO/rQD2RGGdZK5A5JK2XBY3ZrOJXS5CHsmkN4o84r0VeA== 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=Mpk0ZBIVL6t78nMtRRGcL4KhDqVCrjaYhkYGLvf00XY=; b=G0dPM29jPEZRxjxF9qToRKHlC+BubOud0FzUvNwbEc9ocAXOgz4nbVk1n5TnMT37DYk1tuq7Irg18aAes7Z7Tf3dEm73JdEApJt3s6rVnME+o19QS/BFySk1jY1XY7pEilmnCXBEOCncoelNTD2/w3Nzx74xIO+ydIEueUuWqbvjAyT1MT4ogLbcg/FD66DUf9JNuxDBlojps6zidlXu2gh5AB099r977CUwNiKl5j5wXgjxq1m5fdemcZqIBpb9W/eO0aa8YJHScwm0S7XwrEGEST1/cuz5KPkyzrohvHc2q7D8AxCI76d1URo/mGg7fvuZYCygoJ8Vh0sQ4yPNVw== 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 CO1PR11MB4929.namprd11.prod.outlook.com (2603:10b6:303:6d::19) by IA1PR11MB6395.namprd11.prod.outlook.com (2603:10b6:208:3ac::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.26; Tue, 14 Mar 2023 20:40:24 +0000 Received: from CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5]) by CO1PR11MB4929.namprd11.prod.outlook.com ([fe80::76be:1164:2c1f:90a5%7]) with mapi id 15.20.6178.019; Tue, 14 Mar 2023 20:40:24 +0000 From: "Michael D Kinney" To: "devel@edk2.groups.io" , "rebecca@bsdio.com" , "Gao, Liming" , "Liu, Zhiguang" CC: "Kinney, Michael D" Subject: Re: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Thread-Topic: [edk2-devel] [PATCH 2/2] MdePkg: Update code to be more C11 compliant by using __func__ Thread-Index: AQHZPJ2VNe8UI+BAikOp0dPp3MMgFq7HWhmAgDJjlgCAATNkQA== Date: Tue, 14 Mar 2023 20:40:23 +0000 Message-ID: References: <20230209154507.81877-1-rebecca@quicinc.com> <20230209154507.81877-2-rebecca@quicinc.com> In-Reply-To: Accept-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: CO1PR11MB4929:EE_|IA1PR11MB6395:EE_ x-ms-office365-filtering-correlation-id: 4ce51de3-7685-424b-950e-08db24cc562b x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: ns0hrzGgq8R+wyyEeihG1N0ujkwGCi7nU1CDxh2lT2ffk48WrzBRcIeNBzki61an2IfBvJgD//vRumUqKFXykdKGG+KwrNE2Zk4sweC/EYkEQFWDitS2ZQzKX2Zuk4kTduIrpk1c3mcA3T8DAkrNThkPh27LGMAMYtqJt9QFA5ulzt3ISIX7I5mbPMddhpf1Jm4IZXjzTh3JEOhARZ83vNSgRsegwKjjzCK5djgab9NZSeWWHkXvPkYgTcWDNJDNjqpaAW+NFWfRal5dhakR26KU6eM+iomGk8O3dwfCnokE0Y+1/qV9Ki49lZz/6yzYrUNw9WcFyZXniXmYDYON00vk3AITRPzSNg0Vbk2Lg/s2w1VwTyJl/wbb8leQYFo7DnSEdAixxJ4U8R8ay3DbHydTxFgqOsUhPNWMuK6FP/Lyi9WRxDz1FUx5HO3ETSbmoos0+usMN85oar2dGfy06jLXjBG2YlMJ1zWhTPU6ZZpAfhP9IzAKyy/mh876Z84ZNdRBd16uVhrHi2dWwIQLYLTxeHn41JJyin087JnOIqkIK1G9GTEq7ZqSMJn3TMzhOmP9KDvwoSslHZoY4AA6KPFL+6CN1w5uJxxZTCpt7RpxJQYTOzTHjkFmfnTxo1fL59ecXN6ZYEY260aClzRl8ksCa5RUoGwfZWTDJlEwXjYHdWRHZO0JiJQdd5Pa7BluMwYkzJTXMEgx1dFWxLR6nAgRFJ3bDorvX+mTb8KJ9es= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CO1PR11MB4929.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(136003)(396003)(39860400002)(376002)(346002)(366004)(451199018)(33656002)(186003)(110136005)(6636002)(316002)(966005)(7696005)(5660300002)(19627235002)(52536014)(66476007)(2906002)(8936002)(76116006)(66556008)(66446008)(30864003)(15650500001)(64756008)(8676002)(4326008)(66946007)(41300700001)(122000001)(38070700005)(38100700002)(55016003)(86362001)(478600001)(82960400001)(71200400001)(6506007)(9686003)(26005)(53546011)(83380400001)(107886003)(66899018)(579004);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZW1RbW95Rm93MlcwUXcwVzYvZFdvcWFyWU9LcE9VR3VHbUhzd2lUS2VyVVdX?= =?utf-8?B?Y1I4NFpZRS9ZL2hjaU9GTzdpeUVRcWl6b2ttdkY0MDBPbC91d1ZFMy9vL0Rt?= =?utf-8?B?VFZhQ2s1NU1GWXNxMFA3SnBGZlJjcGdldTBOTXlLZS8xNldJWDk3d0R0RnFX?= =?utf-8?B?OUlUQ0VtVURVT0VVVVE2cHp5NDgxb3Nab09qWEdqbU84dlA1M0pVZmwvREpr?= =?utf-8?B?ajJva25YVVZTejYyWGVnNjV1YUFMblozeG5sY0RVclNXYzVlNnNTMFdyNzdL?= =?utf-8?B?UWg5aUNYSndVWGdwQzhVT0t0eGs0ZkdGYmFTQUw2RXh3M0ExNGdGYnp4bG5u?= =?utf-8?B?RWVma0RqYXdMNzJPQmNtbGV1RTduZHVTczNVVVdZN0dFY3lsM3dDMkV4MTZO?= =?utf-8?B?dUNhNk5NQWgyeVdLRWhJQis0RUpZdzY0YUd1MGtiSnc2d2VncFduVnp1WUJW?= =?utf-8?B?dkN4TW1LdFpXc1RsdGprOTVqa0VjWkRYaEhNN3NJOW1kZnp6eFo4S0ZhenBW?= =?utf-8?B?SVBTb1dhV2dzaFFKYjRVY3dQZGNOZnBUaElMS0dXbzh6RXFJRllsOEpHTEpi?= =?utf-8?B?bVBCeXExS0FqVnUxZlVlN29BZjBBQWhPQ1dCR0NvcmRSRm5ndmVNQlNkc1Za?= =?utf-8?B?SnBlZFEybXdiUXp1ZzNId2hXRkhqbzlOTDdGT0FuMHA0WklqU3FrNlZHVG9x?= =?utf-8?B?eW4rSG8xcGVPVHJ0T0UvSFZ3U2hoUXFKblpxMHdPKzNyVlJSMmY1Z09Nd1Vz?= =?utf-8?B?YThaM1NXVXJkRi9zdE96QXBRTUJJbEY4bGF5MGhVbG9MaVBqL3JWeUU5YkhL?= =?utf-8?B?TXNNdlpLMUtKV0tibVh3Wjl5b2Z1U284Z0d1aHRvQWYycGNGbFE2K0JtYnpY?= =?utf-8?B?S0xpLzUyMDY2OGErdVgvTFN4cmRHT1IxcXkrR2JRcUdEQVloK0JKcjZYZ3p5?= =?utf-8?B?OTVabjhobUdSYk9JbmtIK1E0T0Q3c0pDZm9ERWlScWhaV09PS28rSzJnWW9N?= =?utf-8?B?UlJScGxGMmZzVDJXeTMxcXE1a3dlTlk1QXNmdTZxNUFwbTRRNCtER0ZtKzJE?= =?utf-8?B?dkFMVEIySXNIWHVhenRhVHhQSlJjMENodzBubjA2SnJWTHhBYis0elZMZHIr?= =?utf-8?B?dDl4U01wUVgrOW1NRFRGR2lQRWRtUWs1TXVMTXFweTNGVlEwNHJ0S2xnYTZZ?= =?utf-8?B?V3NBRmZFN2c2LytTNCtWNXdJZ3gwSVljUU9PQVA4TGF6L2lqNENoMHdxZm1P?= =?utf-8?B?bWRkaFRRRGY1T2ZsYXloSThKRlB1R0xBODRXRmI1OUg4c3lzQnRzVml2em5Y?= =?utf-8?B?WHhMUllkOHJHcUs3VDM3Rm9sT24xS3ZacnVpRU80WDJnOFBZNHFwM1J1Vmtx?= =?utf-8?B?Y1hFWTY1anEyd1p2bElyV3NSQlhhQ3N4ckJINS94YUIxUWxIdWZMdlVHN2ht?= =?utf-8?B?aGE0Q0YyN0hwNnI4Y0ZBeDFoZkZxaThNWkZFNWwzNGtENjVFZkszZXhzOWt3?= =?utf-8?B?RHh5b1l1N3NqaXkvN2p2dXFrTFRzSDRyK0NpWUh6NERub1ZQRjVyb2h2UWNz?= =?utf-8?B?dEY2QndvTEcyN25xY015akpERFAxYTl6R3grc0REelBpYWpRbWlPN2pGdWVF?= =?utf-8?B?b2xBdW5HWjRVWlZTOXFIQ3lGeWkyNHNyQmFpUzBrZDVKc0lyc0ZSb21lTDNm?= =?utf-8?B?S0VVMkdSYWV1aFVCY1NsbC9HNFVlL2JVWEt0bnNwSXhwMVRMK3dpcnAvK1Q1?= =?utf-8?B?cEFWay9ybWtwOEc4dUp1MksxVXlJMyt1LzA1NDhaL1QzUUp6ZC9JNDI1eDNm?= =?utf-8?B?OHR4STNUTkZMbFI1V2tSWlowU2IxRC9qT2VUSnJBTWk2czYrR3lSWXBFNW9O?= =?utf-8?B?NUlwRFVsMEoxNEZLZVV4VCtTVVJiWkxuR3p5dEdCRkprOWc0SXlPb1RTbFdP?= =?utf-8?B?MzRtNWNkVm5hOU1kS3NxZW1Wa1ZJSE80UmVBQnhYSE10NGQ4RG9DMCt2bDBm?= =?utf-8?B?YWRxRXY2WWlrYkh6NjMyQ3ZiN2x5ZEFZTHlBZXU4MWJrNHJMOXFjVVNwUnBw?= =?utf-8?B?dnd6a2ZFUzB4MXZkWmZleEpMS2JZdWo4eTB4SkFxQzZSQnUzN3I2MzRlcHVL?= =?utf-8?B?Y0haVVhKU0xEK2YzZ1I2T2tpTFd0d3gwRTJQTWdDZksybVhPSmd6Qm9jYVUx?= =?utf-8?B?bFE9PQ==?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: CO1PR11MB4929.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ce51de3-7685-424b-950e-08db24cc562b X-MS-Exchange-CrossTenant-originalarrivaltime: 14 Mar 2023 20:40:24.0213 (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: uZvtPYLSTrqmAiKz5c6zcH6ElkH+gD8rSHBEB9g5REar2Eqr7LT6XN3tm+BhYPES8AAMmmgSUvHBUjnqlenVIOy5p57xhSmZVjwbbPcNvLc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR11MB6395 Return-Path: michael.d.kinney@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IE1pY2hhZWwgRCBLaW5uZXkgPG1pY2hhZWwuZC5raW5uZXlAaW50ZWwuY29t Pg0KDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2ZWxAZWRrMi5n cm91cHMuaW8gPGRldmVsQGVkazIuZ3JvdXBzLmlvPiBPbiBCZWhhbGYgT2YgUmViZWNjYSBDcmFu DQo+IFNlbnQ6IE1vbmRheSwgTWFyY2ggMTMsIDIwMjMgNzoyMCBQTQ0KPiBUbzogZGV2ZWxAZWRr Mi5ncm91cHMuaW87IEtpbm5leSwgTWljaGFlbCBEIDxtaWNoYWVsLmQua2lubmV5QGludGVsLmNv bT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29mdC5jb20uY24+Ow0KPiBMaXUsIFpoaWd1 YW5nIDx6aGlndWFuZy5saXVAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2VkazItZGV2ZWxd IFtQQVRDSCAyLzJdIE1kZVBrZzogVXBkYXRlIGNvZGUgdG8gYmUgbW9yZSBDMTEgY29tcGxpYW50 IGJ5IHVzaW5nIF9fZnVuY19fDQo+IA0KPiBNaWtlLA0KPiANCj4gDQo+IEkgdGhpbmsgeW91ciBj b25jZXJucyB3aXRoIHRoaXMgcGF0Y2ggd2VyZSBhZGRyZXNzZWQ/DQo+IA0KPiBDb3VsZCB5b3Ug YWRkIGEgUmV2aWV3ZWQtYnkgcGxlYXNlPw0KPiANCj4gDQo+IFRoYW5rcy4NCj4gUmViZWNjYQ0K PiANCj4gDQo+IE9uIDIvOS8yMyA2OjAxIFBNLCBNaWNoYWVsIEQgS2lubmV5IHdyb3RlOg0KPiA+ IEhpIFJlYmVjY2EsDQo+ID4NCj4gPiBEaWQgdGhpcyBwYXNzIEVESyBJSSBDST8NCj4gPg0KPiA+ IFRoaXMgY2hhbmdlIGRvZXMgYnJlYWsgRUJDIGNvbXBpbGVyIGJ1aWxkcy4gIFRoZSBmb2xsb3dp bmcgaGFzIHRvIGJlIGFkZGVkIHRvDQo+ID4gTWRlUGtnL0luY2x1ZGUvRWJjL1Byb2Nlc3NvckJp bmQuaCBpbiBvcmRlciB0byB1c2UgX19mdW5jX18gZXZlcnl3aGVyZS4NCj4gPg0KPiA+ICAgICAg I2RlZmluZSBfX2Z1bmNfXyBfX0ZVTkNUSU9OX18NCj4gPg0KPiA+IEkgYWxzbyBzZWUgX19GVU5D VElPTl9fIHVzZWQgaW4gbWFueSBwYWNrYWdlcy4gIEkgYW0gd29uZGVyaW5nIGlmIHdlIHdhbnQN Cj4gPiB0byBkbyB0aGlzIGNsZWFuIHVwIGlmIGl0IHNob3VsZCBiZSBpdHMgb3duIHBhdGNoIHNl cmllcyBhbmQgdXBkYXRlIGFsbA0KPiA+IHBhY2thZ2VzIGluIG9uY2Ugc2VyaWVzLg0KPiA+DQo+ ID4gTWlrZQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206 IGRldmVsQGVkazIuZ3JvdXBzLmlvIDxkZXZlbEBlZGsyLmdyb3Vwcy5pbz4gT24gQmVoYWxmIE9m IFJlYmVjY2EgQ3Jhbg0KPiA+PiBTZW50OiBUaHVyc2RheSwgRmVicnVhcnkgOSwgMjAyMyA3OjQ1 IEFNDQo+ID4+IFRvOiBkZXZlbEBlZGsyLmdyb3Vwcy5pbzsgS2lubmV5LCBNaWNoYWVsIEQgPG1p Y2hhZWwuZC5raW5uZXlAaW50ZWwuY29tPjsgR2FvLCBMaW1pbmcgPGdhb2xpbWluZ0BieW9zb2Z0 LmNvbS5jbj47DQo+IExpdSwgWmhpZ3VhbmcNCj4gPj4gPHpoaWd1YW5nLmxpdUBpbnRlbC5jb20+ DQo+ID4+IENjOiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAcXVpY2luYy5jb20+DQo+ID4+IFN1Ympl Y3Q6IFtlZGsyLWRldmVsXSBbUEFUQ0ggMi8yXSBNZGVQa2c6IFVwZGF0ZSBjb2RlIHRvIGJlIG1v cmUgQzExIGNvbXBsaWFudCBieSB1c2luZyBfX2Z1bmNfXw0KPiA+Pg0KPiA+PiBfX0ZVTkNUSU9O X18gaXMgYSBwcmUtc3RhbmRhcmQgZXh0ZW5zaW9uIHRoYXQgZ2NjIGFuZCBWaXN1YWwgQysrIGFt b25nDQo+ID4+IG90aGVycyBzdXBwb3J0LCB3aGlsZSBfX2Z1bmNfXyB3YXMgc3RhbmRhcmRpemVk IGluIEM5OS4NCj4gPj4NCj4gPj4gU2luY2UgaXQncyBtb3JlIHN0YW5kYXJkLCByZXBsYWNlIF9f RlVOQ1RJT05fXyB3aXRoIF9fZnVuY19fIHRocm91Z2hvdXQNCj4gPj4gTWRlUGtnLg0KPiA+Pg0K PiA+PiBTaWduZWQtb2ZmLWJ5OiBSZWJlY2NhIENyYW4gPHJlYmVjY2FAcXVpY2luYy5jb20+DQo+ ID4+IC0tLQ0KPiA+PiAgIE1kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsr KysrKy0tLS0tLQ0KPiA+PiAgIE1kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVW5pdFRlc3RMaWIuaCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE4 ICsrKysrKysrKy0tLS0tLQ0KPiAtLS0NCj4gPj4gICBNZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVN YWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgNiArKystLS0NCj4gPj4gICBNZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVNYWlu dGVuYW5jZUxpYi9SaXNjVkNhY2hlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAxMiArKysrKystLS0tLS0NCj4gPj4gICBNZGVQa2cvTGlicmFyeS9CYXNlTGliL1Nh ZmVTdHJpbmcuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQ0KPiA+PiAgIE1kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVkQ29sbGVj dGlvblJlZEJsYWNrVHJlZUxpYi9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIu YyB8ICA0ICsrLS0NCj4gPj4gICBNZGVQa2cvTGlicmFyeS9EeGVSbmdMaWIvRHhlUm5nTGliLmMg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAx NCArKysrKysrLS0tLS0tLQ0KPiA+PiAgIDcgZmlsZXMgY2hhbmdlZCwgMzQgaW5zZXJ0aW9ucygr KSwgMzQgZGVsZXRpb25zKC0pDQo+ID4+DQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvSW5jbHVk ZS9MaWJyYXJ5L1BlcmZvcm1hbmNlTGliLmggYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1BlcmZv cm1hbmNlTGliLmgNCj4gPj4gaW5kZXggMzRlYzk1NmI5YzBlLi5kMGYyZGZiMDcwZDUgMTAwNjQ0 DQo+ID4+IC0tLSBhL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvUGVyZm9ybWFuY2VMaWIuaA0KPiA+ PiArKysgYi9NZGVQa2cvSW5jbHVkZS9MaWJyYXJ5L1BlcmZvcm1hbmNlTGliLmgNCj4gPj4gQEAg LTUyNiw3ICs1MjYsNyBAQCBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgNCj4gPj4gICAjZGVm aW5lIFBFUkZfRVZFTlRfU0lHTkFMX0JFR0lOKEV2ZW50R3VpZCkgXA0KPiA+PiAgICAgZG8geyBc DQo+ID4+ICAgICAgIGlmIChMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50RW5hYmxlZCAoUEVSRl9H RU5FUkFMX1RZUEUpKSB7IFwNCj4gPj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQg KCZnRWZpQ2FsbGVySWRHdWlkLCBFdmVudEd1aWQsIF9fRlVOQ1RJT05fXyAsIDAsIFBFUkZfRVZF TlRTSUdOQUxfU1RBUlRfSUQpOyBcDQo+ID4+ICsgICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVt ZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgRXZlbnRHdWlkLCBfX2Z1bmNfXyAsIDAsIFBFUkZfRVZF TlRTSUdOQUxfU1RBUlRfSUQpOyBcDQo+ID4+ICAgICAgIH0gXA0KPiA+PiAgICAgfSB3aGlsZSAo RkFMU0UpDQo+ID4+DQo+ID4+IEBAIC01NDIsNyArNTQyLDcgQEAgTG9nUGVyZm9ybWFuY2VNZWFz dXJlbWVudCAoDQo+ID4+ICAgI2RlZmluZSBQRVJGX0VWRU5UX1NJR05BTF9FTkQoRXZlbnRHdWlk KSBcDQo+ID4+ICAgICBkbyB7IFwNCj4gPj4gICAgICAgaWYgKExvZ1BlcmZvcm1hbmNlTWVhc3Vy ZW1lbnRFbmFibGVkIChQRVJGX0dFTkVSQUxfVFlQRSkpIHsgXA0KPiA+PiAtICAgICAgTG9nUGVy Zm9ybWFuY2VNZWFzdXJlbWVudCAoJmdFZmlDYWxsZXJJZEd1aWQsIEV2ZW50R3VpZCwgX19GVU5D VElPTl9fICwgMCwgUEVSRl9FVkVOVFNJR05BTF9FTkRfSUQpOyBcDQo+ID4+ICsgICAgICBMb2dQ ZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3VpZCwgRXZlbnRHdWlkLCBfX2Z1 bmNfXyAsIDAsIFBFUkZfRVZFTlRTSUdOQUxfRU5EX0lEKTsgXA0KPiA+PiAgICAgICB9IFwNCj4g Pj4gICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+Pg0KPiA+PiBAQCAtNTU4LDcgKzU1OCw3IEBAIExv Z1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKA0KPiA+PiAgICNkZWZpbmUgUEVSRl9DQUxMQkFDS19C RUdJTihUcmlnZ2VyR3VpZCkgXA0KPiA+PiAgICAgZG8geyBcDQo+ID4+ICAgICAgIGlmIChMb2dQ ZXJmb3JtYW5jZU1lYXN1cmVtZW50RW5hYmxlZCAoUEVSRl9HRU5FUkFMX1RZUEUpKSB7IFwNCj4g Pj4gLSAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlkLCBU cmlnZ2VyR3VpZCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9DQUxMQkFDS19TVEFSVF9JRCk7IFwN Cj4gPj4gKyAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZpQ2FsbGVySWRHdWlk LCBUcmlnZ2VyR3VpZCwgX19mdW5jX18gLCAwLCBQRVJGX0NBTExCQUNLX1NUQVJUX0lEKTsgXA0K PiA+PiAgICAgICB9IFwNCj4gPj4gICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+Pg0KPiA+PiBAQCAt NTc0LDcgKzU3NCw3IEBAIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKA0KPiA+PiAgICNkZWZp bmUgUEVSRl9DQUxMQkFDS19FTkQoVHJpZ2dlckd1aWQpIFwNCj4gPj4gICAgIGRvIHsgXA0KPiA+ PiAgICAgICBpZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZfR0VORVJB TF9UWVBFKSkgeyBcDQo+ID4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0Vm aUNhbGxlcklkR3VpZCwgVHJpZ2dlckd1aWQsIF9fRlVOQ1RJT05fXyAsIDAsIFBFUkZfQ0FMTEJB Q0tfRU5EX0lEKTsgXA0KPiA+PiArICAgICAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoJmdF ZmlDYWxsZXJJZEd1aWQsIFRyaWdnZXJHdWlkLCBfX2Z1bmNfXyAsIDAsIFBFUkZfQ0FMTEJBQ0tf RU5EX0lEKTsgXA0KPiA+PiAgICAgICB9IFwNCj4gPj4gICAgIH0gd2hpbGUgKEZBTFNFKQ0KPiA+ Pg0KPiA+PiBAQCAtNTg5LDcgKzU4OSw3IEBAIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKA0K PiA+PiAgICNkZWZpbmUgUEVSRl9GVU5DVElPTl9CRUdJTigpIFwNCj4gPj4gICAgIGRvIHsgXA0K PiA+PiAgICAgICBpZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZfR0VO RVJBTF9UWVBFKSkgeyBcDQo+ID4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgm Z0VmaUNhbGxlcklkR3VpZCwgTlVMTCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9GVU5DVElPTl9T VEFSVF9JRCk7IFwNCj4gPj4gKyAgICAgIExvZ1BlcmZvcm1hbmNlTWVhc3VyZW1lbnQgKCZnRWZp Q2FsbGVySWRHdWlkLCBOVUxMLCBfX2Z1bmNfXyAsIDAsIFBFUkZfRlVOQ1RJT05fU1RBUlRfSUQp OyBcDQo+ID4+ICAgICAgIH0gXA0KPiA+PiAgICAgfSB3aGlsZSAoRkFMU0UpDQo+ID4+DQo+ID4+ IEBAIC02MDQsNyArNjA0LDcgQEAgTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudCAoDQo+ID4+ICAg I2RlZmluZSBQRVJGX0ZVTkNUSU9OX0VORCgpIFwNCj4gPj4gICAgIGRvIHsgXA0KPiA+PiAgICAg ICBpZiAoTG9nUGVyZm9ybWFuY2VNZWFzdXJlbWVudEVuYWJsZWQgKFBFUkZfR0VORVJBTF9UWVBF KSkgeyBcDQo+ID4+IC0gICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxl cklkR3VpZCwgTlVMTCwgX19GVU5DVElPTl9fICwgMCwgUEVSRl9GVU5DVElPTl9FTkRfSUQpOyBc DQo+ID4+ICsgICAgICBMb2dQZXJmb3JtYW5jZU1lYXN1cmVtZW50ICgmZ0VmaUNhbGxlcklkR3Vp ZCwgTlVMTCwgX19mdW5jX18gLCAwLCBQRVJGX0ZVTkNUSU9OX0VORF9JRCk7IFwNCj4gPj4gICAg ICAgfSBcDQo+ID4+ICAgICB9IHdoaWxlIChGQUxTRSkNCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBh L01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVW5pdFRlc3RMaWIuaCBiL01kZVBrZy9JbmNsdWRlL0xp YnJhcnkvVW5pdFRlc3RMaWIuaA0KPiA+PiBpbmRleCA3MWMyMDViMWIxNDMuLjMyMWEzMTA2MDJk NyAxMDA2NDQNCj4gPj4gLS0tIGEvTWRlUGtnL0luY2x1ZGUvTGlicmFyeS9Vbml0VGVzdExpYi5o DQo+ID4+ICsrKyBiL01kZVBrZy9JbmNsdWRlL0xpYnJhcnkvVW5pdFRlc3RMaWIuaA0KPiA+PiBA QCAtMzQ4LDcgKzM0OCw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4+ICAgICBAcGFyYW1b aW5dICBFeHByZXNzaW9uICBFeHByZXNzaW9uIHRvIGJlIGV2YWx1YXRlZCBmb3IgVFJVRS4NCj4g Pj4gICAqKi8NCj4gPj4gICAjZGVmaW5lIFVUX0FTU0VSVF9UUlVFKEV4cHJlc3Npb24pICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQo+ID4+IC0gIGlmKCFVbml0VGVzdEFzc2VydFRydWUgKChFeHByZXNzaW9uKSwgX19GVU5D VElPTl9fLCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICNFeHByZXNzaW9uKSkgeyBcDQo+ ID4+ICsgIGlmKCFVbml0VGVzdEFzc2VydFRydWUgKChFeHByZXNzaW9uKSwgX19mdW5jX18sIERF QlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI0V4cHJlc3Npb24pKSB7IFwNCj4gPj4gICAgICAg cmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+ICAgICB9DQo+ID4+ DQo+ID4+IEBAIC0zNjAsNyArMzYwLDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPj4gICAg IEBwYXJhbVtpbl0gIEV4cHJlc3Npb24gIEV4cHJlc3Npb24gdG8gYmUgZXZhbHVhdGVkIGZvciBG QUxTRS4NCj4gPj4gICAqKi8NCj4gPj4gICAjZGVmaW5lIFVUX0FTU0VSVF9GQUxTRShFeHByZXNz aW9uKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KPiA+PiAtICBpZighVW5pdFRlc3RBc3NlcnRGYWxzZSAoKEV4cHJlc3Np b24pLCBfX0ZVTkNUSU9OX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI0V4cHJlc3Np b24pKSB7IFwNCj4gPj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0RmFsc2UgKChFeHByZXNzaW9uKSwg X19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI0V4cHJlc3Npb24pKSB7IFwN Cj4gPj4gICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ PiAgICAgfQ0KPiA+Pg0KPiA+PiBAQCAtMzczLDcgKzM3Myw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0 ZSAoDQo+ID4+ICAgICBAcGFyYW1baW5dICBWYWx1ZUIgIFZhbHVlIHRvIGJlIGNvbXBhcmVkIGZv ciBlcXVhbGl0eSAoNjQtYml0IGNvbXBhcmlzb24pLg0KPiA+PiAgICoqLw0KPiA+PiAgICNkZWZp bmUgVVRfQVNTRVJUX0VRVUFMKFZhbHVlQSwgVmFsdWVCKQ0KPiBcDQo+ID4+IC0gIGlmKCFVbml0 VGVzdEFzc2VydEVxdWFsICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlOVDY0KShWYWx1ZUIpLCBfX0ZV TkNUSU9OX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywNCj4gI1ZhbHVlQSwgI1ZhbHVl QikpIHsgXA0KPiA+PiArICBpZighVW5pdFRlc3RBc3NlcnRFcXVhbCAoKFVJTlQ2NCkoVmFsdWVB KSwgKFVJTlQ2NCkoVmFsdWVCKSwgX19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVf XywgI1ZhbHVlQSwNCj4gI1ZhbHVlQikpIHsgXA0KPiA+PiAgICAgICByZXR1cm4gVU5JVF9URVNU X0VSUk9SX1RFU1RfRkFJTEVEOw0KPiBcDQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+IEBAIC0zODcs NyArMzg3LDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPj4gICAgIEBwYXJhbVtpbl0gIExl bmd0aCAgIE51bWJlciBvZiBieXRlcyB0byBjb21wYXJlIGluIEJ1ZmZlckEgYW5kIEJ1ZmZlckIu DQo+ID4+ICAgKiovDQo+ID4+ICAgI2RlZmluZSBVVF9BU1NFUlRfTUVNX0VRVUFMKEJ1ZmZlckEs IEJ1ZmZlckIsIExlbmd0aCkNCj4gPj4gXA0KPiA+PiAtICBpZighVW5pdFRlc3RBc3NlcnRNZW1F cXVhbCAoKFZPSUQgKikoVUlOVE4pKEJ1ZmZlckEpLCAoVk9JRCAqKShVSU5UTikoQnVmZmVyQiks IChVSU5UTilMZW5ndGgsIF9fRlVOQ1RJT05fXywNCj4gREVCVUdfTElORV9OVU1CRVIsDQo+ID4+ IF9fRklMRV9fLCAjQnVmZmVyQSwgI0J1ZmZlckIpKSB7IFwNCj4gPj4gKyAgaWYoIVVuaXRUZXN0 QXNzZXJ0TWVtRXF1YWwgKChWT0lEICopKFVJTlROKShCdWZmZXJBKSwgKFZPSUQgKikoVUlOVE4p KEJ1ZmZlckIpLCAoVUlOVE4pTGVuZ3RoLCBfX2Z1bmNfXywNCj4gREVCVUdfTElORV9OVU1CRVIs DQo+ID4+IF9fRklMRV9fLCAjQnVmZmVyQSwgI0J1ZmZlckIpKSB7IFwNCj4gPj4gICAgICAgcmV0 dXJuIFVOSVRfVEVTVF9FUlJPUl9URVNUX0ZBSUxFRDsNCj4gPj4gXA0KPiA+PiAgICAgfQ0KPiA+ Pg0KPiA+PiBAQCAtNDAwLDcgKzQwMCw3IEBAIFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4+ICAg ICBAcGFyYW1baW5dICBWYWx1ZUIgIFZhbHVlIHRvIGJlIGNvbXBhcmVkIGZvciBpbmVxdWFsaXR5 ICg2NC1iaXQgY29tcGFyaXNvbikuDQo+ID4+ICAgKiovDQo+ID4+ICAgI2RlZmluZSBVVF9BU1NF UlRfTk9UX0VRVUFMKFZhbHVlQSwgVmFsdWVCKQ0KPiBcDQo+ID4+IC0gIGlmKCFVbml0VGVzdEFz c2VydE5vdEVxdWFsICgoVUlOVDY0KShWYWx1ZUEpLCAoVUlOVDY0KShWYWx1ZUIpLCBfX0ZVTkNU SU9OX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywNCj4gI1ZhbHVlQSwgI1ZhbHVlQikp IHsgXA0KPiA+PiArICBpZighVW5pdFRlc3RBc3NlcnROb3RFcXVhbCAoKFVJTlQ2NCkoVmFsdWVB KSwgKFVJTlQ2NCkoVmFsdWVCKSwgX19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVf XywNCj4gI1ZhbHVlQSwgI1ZhbHVlQikpIHsgXA0KPiA+PiAgICAgICByZXR1cm4gVU5JVF9URVNU X0VSUk9SX1RFU1RfRkFJTEVEOw0KPiBcDQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+IEBAIC00MTIs NyArNDEyLDcgQEAgU2F2ZUZyYW1ld29ya1N0YXRlICgNCj4gPj4gICAgIEBwYXJhbVtpbl0gIFN0 YXR1cyAgRUZJX1NUQVRVUyB2YWx1ZSB0byBjaGVjay4NCj4gPj4gICAqKi8NCj4gPj4gICAjZGVm aW5lIFVUX0FTU0VSVF9OT1RfRUZJX0VSUk9SKFN0YXR1cykgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPj4gLSAgaWYoIVVuaXRU ZXN0QXNzZXJ0Tm90RWZpRXJyb3IgKChTdGF0dXMpLCBfX0ZVTkNUSU9OX18sIERFQlVHX0xJTkVf TlVNQkVSLCBfX0ZJTEVfXywgI1N0YXR1cykpIHsgXA0KPiA+PiArICBpZighVW5pdFRlc3RBc3Nl cnROb3RFZmlFcnJvciAoKFN0YXR1cyksIF9fZnVuY19fLCBERUJVR19MSU5FX05VTUJFUiwgX19G SUxFX18sICNTdGF0dXMpKSB7IFwNCj4gPj4gICAgICAgcmV0dXJuIFVOSVRfVEVTVF9FUlJPUl9U RVNUX0ZBSUxFRDsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCj4gPj4gICAgIH0NCj4gPj4NCj4gPj4gQEAgLTQyNSw3ICs0MjUsNyBA QCBTYXZlRnJhbWV3b3JrU3RhdGUgKA0KPiA+PiAgICAgQHBhcmFtW2luXSAgRXhwZWN0ZWQgIEVG SV9TVEFUVVMgdmFsdWVzIHRvIGNvbXBhcmUgZm9yIGVxdWFsaXR5Lg0KPiA+PiAgICoqLw0KPiA+ PiAgICNkZWZpbmUgVVRfQVNTRVJUX1NUQVRVU19FUVVBTChTdGF0dXMsIEV4cGVjdGVkKSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KPiA+PiAtICBpZighVW5pdFRlc3RBc3NlcnRTdGF0dXNFcXVhbCAoKFN0YXR1cyksIChFeHBl Y3RlZCksIF9fRlVOQ1RJT05fXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAjU3RhdHVz KSkgeyBcDQo+ID4+ICsgIGlmKCFVbml0VGVzdEFzc2VydFN0YXR1c0VxdWFsICgoU3RhdHVzKSwg KEV4cGVjdGVkKSwgX19mdW5jX18sIERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZJTEVfXywgI1N0YXR1 cykpIHsgXA0KPiA+PiAgICAgICByZXR1cm4gVU5JVF9URVNUX0VSUk9SX1RFU1RfRkFJTEVEOyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXA0KPiA+PiAgICAgfQ0KPiA+Pg0KPiA+PiBAQCAtNDM3LDcgKzQzNyw3IEBA IFNhdmVGcmFtZXdvcmtTdGF0ZSAoDQo+ID4+ICAgICBAcGFyYW1baW5dICBQb2ludGVyICBQb2lu dGVyIHRvIGJlIGNoZWNrZWQgYWdhaW5zdCBOVUxMLg0KPiA+PiAgICoqLw0KPiA+PiAgICNkZWZp bmUgVVRfQVNTRVJUX05PVF9OVUxMKFBvaW50ZXIpICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPj4gLSAgaWYoIVVuaXRUZXN0 QXNzZXJ0Tm90TnVsbCAoKFBvaW50ZXIpLCBfX0ZVTkNUSU9OX18sIERFQlVHX0xJTkVfTlVNQkVS LCBfX0ZJTEVfXywgI1BvaW50ZXIpKSB7IFwNCj4gPj4gKyAgaWYoIVVuaXRUZXN0QXNzZXJ0Tm90 TnVsbCAoKFBvaW50ZXIpLCBfX2Z1bmNfXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAj UG9pbnRlcikpIHsgXA0KPiA+PiAgICAgICByZXR1cm4gVU5JVF9URVNUX0VSUk9SX1RFU1RfRkFJ TEVEOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCj4gPj4gICAgIH0NCj4gPj4NCj4gPj4gQEAgLTQ4Miw3ICs0ODIsNyBAQCBleHRlcm4g QkFTRV9MSUJSQVJZX0pVTVBfQlVGRkVSICAqZ1VuaXRUZXN0RXhwZWN0QXNzZXJ0RmFpbHVyZUp1 bXBCdWZmZXI7DQo+ID4+ICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+ICAgICAgICAgaWYgKCFVbml0 VGVzdEV4cGVjdEFzc2VydEZhaWx1cmUgKCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQo+ID4+ICAgICAgICAgICAgICAgIFVuaXRUZXN0SnVtcFN0YXR1cywgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+IC0gICAgICAgICAgICAgX19GVU5DVElPTl9f LCBERUJVR19MSU5FX05VTUJFUiwgX19GSUxFX18sICAgICAgICAgICAgICAgIFwNCj4gPj4gKyAg ICAgICAgICAgICBfX2Z1bmNfXywgREVCVUdfTElORV9OVU1CRVIsIF9fRklMRV9fLCAgICAgICAg ICAgICAgICBcDQo+ID4+ICAgICAgICAgICAgICAgICNGdW5jdGlvbkNhbGwsIFN0YXR1cykpIHsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+ICAgICAgICAgICByZXR1cm4g VU5JVF9URVNUX0VSUk9SX1RFU1RfRkFJTEVEOyAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQo+ID4+ICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFy eS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5jDQo+IGIvTWRlUGtnL0xp YnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvTG9vbmdBcmNoQ2FjaGUuYw0KPiA+PiBpbmRl eCA0Yzg3NzMyNzhjM2MuLjYxN2IwZjQyMThiOCAxMDA2NDQNCj4gPj4gLS0tIGEvTWRlUGtnL0xp YnJhcnkvQmFzZUNhY2hlTWFpbnRlbmFuY2VMaWIvTG9vbmdBcmNoQ2FjaGUuYw0KPiA+PiArKysg Yi9NZGVQa2cvTGlicmFyeS9CYXNlQ2FjaGVNYWludGVuYW5jZUxpYi9Mb29uZ0FyY2hDYWNoZS5j DQo+ID4+IEBAIC0xMDAsNyArMTAwLDcgQEAgV3JpdGVCYWNrSW52YWxpZGF0ZURhdGFDYWNoZSAo DQo+ID4+ICAgICBWT0lEDQo+ID4+ICAgICApDQo+ID4+ICAgew0KPiA+PiAtICBERUJVRyAoKERF QlVHX0VSUk9SLCAiJWE6IE5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgb24gTG9vbmdBcmNoLlxu IiwgX19GVU5DVElPTl9fKSk7DQo+ID4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogTm90 IGN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbiBMb29uZ0FyY2guXG4iLCBfX2Z1bmNfXykpOw0KPiA+ PiAgIH0NCj4gPj4NCj4gPj4gICAvKioNCj4gPj4gQEAgLTEzNiw3ICsxMzYsNyBAQCBXcml0ZUJh Y2tJbnZhbGlkYXRlRGF0YUNhY2hlUmFuZ2UgKA0KPiA+PiAgICAgSU4gICAgICBVSU5UTiAgTGVu Z3RoDQo+ID4+ICAgICApDQo+ID4+ICAgew0KPiA+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAi JWE6IE5vdCBjdXJyZW50bHkgaW1wbGVtZW50ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19GVU5DVElP Tl9fKSk7DQo+ID4+ICsgIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogTm90IGN1cnJlbnRseSBp bXBsZW1lbnRlZCBvbiBMb29uZ0FyY2guXG4iLCBfX2Z1bmNfXykpOw0KPiA+PiAgICAgcmV0dXJu IEFkZHJlc3M7DQo+ID4+ICAgfQ0KPiA+Pg0KPiA+PiBAQCAtMTkxLDcgKzE5MSw3IEBAIFdyaXRl QmFja0RhdGFDYWNoZVJhbmdlICgNCj4gPj4gICAgIElOICAgICAgVUlOVE4gIExlbmd0aA0KPiA+ PiAgICAgKQ0KPiA+PiAgIHsNCj4gPj4gLSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBOb3Qg Y3VycmVudGx5IGltcGxlbWVudGVkIG9uIExvb25nQXJjaC5cbiIsIF9fRlVOQ1RJT05fXykpOw0K PiA+PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IE5vdCBjdXJyZW50bHkgaW1wbGVtZW50 ZWQgb24gTG9vbmdBcmNoLlxuIiwgX19mdW5jX18pKTsNCj4gPj4gICAgIHJldHVybiBBZGRyZXNz Ow0KPiA+PiAgIH0NCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0Jhc2VD YWNoZU1haW50ZW5hbmNlTGliL1Jpc2NWQ2FjaGUuYw0KPiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VD YWNoZU1haW50ZW5hbmNlTGliL1Jpc2NWQ2FjaGUuYw0KPiA+PiBpbmRleCA2N2EzMzg3ZmYzYzYu LmJiMjZmZTAxM2Q4YiAxMDA2NDQNCj4gPj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZUNhY2hl TWFpbnRlbmFuY2VMaWIvUmlzY1ZDYWNoZS5jDQo+ID4+ICsrKyBiL01kZVBrZy9MaWJyYXJ5L0Jh c2VDYWNoZU1haW50ZW5hbmNlTGliL1Jpc2NWQ2FjaGUuYw0KPiA+PiBAQCAtNzYsNyArNzYsNyBA QCBJbnZhbGlkYXRlSW5zdHJ1Y3Rpb25DYWNoZVJhbmdlICgNCj4gPj4gICAgIElOIFVJTlROICBM ZW5ndGgNCj4gPj4gICAgICkNCj4gPj4gICB7DQo+ID4+IC0gIERFQlVHICgoREVCVUdfRVJST1Is ICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCBfX0ZVTkNUSU9OX18pKTsNCj4g Pj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlv bi5cbiIsIF9fZnVuY19fKSk7DQo+ID4+ICAgICByZXR1cm4gQWRkcmVzczsNCj4gPj4gICB9DQo+ ID4+DQo+ID4+IEBAIC05Niw3ICs5Niw3IEBAIFdyaXRlQmFja0ludmFsaWRhdGVEYXRhQ2FjaGUg KA0KPiA+PiAgICAgVk9JRA0KPiA+PiAgICAgKQ0KPiA+PiAgIHsNCj4gPj4gLSAgREVCVUcgKChE RUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9fRlVOQ1RJ T05fXykpOw0KPiA+PiArICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1WIHVuc3VwcG9y dGVkIGZ1bmN0aW9uLlxuIiwgX19mdW5jX18pKTsNCj4gPj4gICB9DQo+ID4+DQo+ID4+ICAgLyoq DQo+ID4+IEBAIC0xMzIsNyArMTMyLDcgQEAgV3JpdGVCYWNrSW52YWxpZGF0ZURhdGFDYWNoZVJh bmdlICgNCj4gPj4gICAgIElOICAgICAgVUlOVE4gIExlbmd0aA0KPiA+PiAgICAgKQ0KPiA+PiAg IHsNCj4gPj4gLSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRlZCBm dW5jdGlvbi5cbiIsIF9fRlVOQ1RJT05fXykpOw0KPiA+PiArICBERUJVRyAoKERFQlVHX0VSUk9S LCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19mdW5jX18pKTsNCj4gPj4g ICAgIHJldHVybiBBZGRyZXNzOw0KPiA+PiAgIH0NCj4gPj4NCj4gPj4gQEAgLTE1Miw3ICsxNTIs NyBAQCBXcml0ZUJhY2tEYXRhQ2FjaGUgKA0KPiA+PiAgICAgVk9JRA0KPiA+PiAgICAgKQ0KPiA+ PiAgIHsNCj4gPj4gLSAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1cHBvcnRl ZCBmdW5jdGlvbi5cbiIsIF9fRlVOQ1RJT05fXykpOw0KPiA+PiArICBERUJVRyAoKERFQlVHX0VS Uk9SLCAiJWE6UklTQy1WIHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19mdW5jX18pKTsNCj4g Pj4gICB9DQo+ID4+DQo+ID4+ICAgLyoqDQo+ID4+IEBAIC0xODcsNyArMTg3LDcgQEAgV3JpdGVC YWNrRGF0YUNhY2hlUmFuZ2UgKA0KPiA+PiAgICAgSU4gICAgICBVSU5UTiAgTGVuZ3RoDQo+ID4+ ICAgICApDQo+ID4+ICAgew0KPiA+PiAtICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6UklTQy1W IHVuc3VwcG9ydGVkIGZ1bmN0aW9uLlxuIiwgX19GVU5DVElPTl9fKSk7DQo+ID4+ICsgIERFQlVH ICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCBfX2Z1 bmNfXykpOw0KPiA+PiAgICAgcmV0dXJuIEFkZHJlc3M7DQo+ID4+ICAgfQ0KPiA+Pg0KPiA+PiBA QCAtMjQ1LDYgKzI0NSw2IEBAIEludmFsaWRhdGVEYXRhQ2FjaGVSYW5nZSAoDQo+ID4+ICAgICBJ TiAgICAgIFVJTlROICBMZW5ndGgNCj4gPj4gICAgICkNCj4gPj4gICB7DQo+ID4+IC0gIERFQlVH ICgoREVCVUdfRVJST1IsICIlYTpSSVNDLVYgdW5zdXBwb3J0ZWQgZnVuY3Rpb24uXG4iLCBfX0ZV TkNUSU9OX18pKTsNCj4gPj4gKyAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOlJJU0MtViB1bnN1 cHBvcnRlZCBmdW5jdGlvbi5cbiIsIF9fZnVuY19fKSk7DQo+ID4+ICAgICByZXR1cm4gQWRkcmVz czsNCj4gPj4gICB9DQo+ID4+IGRpZmYgLS1naXQgYS9NZGVQa2cvTGlicmFyeS9CYXNlTGliL1Nh ZmVTdHJpbmcuYyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VMaWIvU2FmZVN0cmluZy5jDQo+ID4+IGlu ZGV4IGI3NWIzMzM4MTczMi4uOTU0ZDNmOGM4OTg4IDEwMDY0NA0KPiA+PiAtLS0gYS9NZGVQa2cv TGlicmFyeS9CYXNlTGliL1NhZmVTdHJpbmcuYw0KPiA+PiArKysgYi9NZGVQa2cvTGlicmFyeS9C YXNlTGliL1NhZmVTdHJpbmcuYw0KPiA+PiBAQCAtMTcsNyArMTcsNyBAQA0KPiA+PiAgICAgICBp ZiAoIShFeHByZXNzaW9uKSkgeyBcDQo+ID4+ICAgICAgICAgREVCVUcgKChERUJVR19WRVJCT1NF LCBcDQo+ID4+ICAgICAgICAgICAiJWEoJWQpICVhOiBTQUZFX1NUUklOR19DT05TVFJBSU5UX0NI RUNLKCVhKSBmYWlsZWQuICBSZXR1cm4gJXJcbiIsIFwNCj4gPj4gLSAgICAgICAgX19GSUxFX18s IERFQlVHX0xJTkVfTlVNQkVSLCBfX0ZVTkNUSU9OX18sIERFQlVHX0VYUFJFU1NJT05fU1RSSU5H IChFeHByZXNzaW9uKSwgU3RhdHVzKSk7IFwNCj4gPj4gKyAgICAgICAgX19GSUxFX18sIERFQlVH X0xJTkVfTlVNQkVSLCBfX2Z1bmNfXywgREVCVUdfRVhQUkVTU0lPTl9TVFJJTkcgKEV4cHJlc3Np b24pLCBTdGF0dXMpKTsgXA0KPiA+PiAgICAgICAgIHJldHVybiBTdGF0dXM7IFwNCj4gPj4gICAg ICAgfSBcDQo+ID4+ICAgICB9IHdoaWxlIChGQUxTRSkNCj4gPj4gZGlmZiAtLWdpdCBhL01kZVBr Zy9MaWJyYXJ5L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9CYXNlT3JkZXJl ZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIuYw0KPiA+PiBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VP cmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9CYXNlT3JkZXJlZENvbGxlY3Rpb25SZWRC bGFja1RyZWVMaWIuYw0KPiA+PiBpbmRleCBmNDczMDFkZTg5ODIuLmEyMzExM2Y5YzkxZCAxMDA2 NDQNCj4gPj4gLS0tIGEvTWRlUGtnL0xpYnJhcnkvQmFzZU9yZGVyZWRDb2xsZWN0aW9uUmVkQmxh Y2tUcmVlTGliL0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi5jDQo+ID4+ICsr KyBiL01kZVBrZy9MaWJyYXJ5L0Jhc2VPcmRlcmVkQ29sbGVjdGlvblJlZEJsYWNrVHJlZUxpYi9C YXNlT3JkZXJlZENvbGxlY3Rpb25SZWRCbGFja1RyZWVMaWIuYw0KPiA+PiBAQCAtMTQxNiw3ICsx NDE2LDcgQEAgUmVkQmxhY2tUcmVlVmFsaWRhdGUgKA0KPiA+PiAgICAgQ09OU1QgUkVEX0JMQUNL X1RSRUVfTk9ERSAgKkxhc3Q7DQo+ID4+ICAgICBDT05TVCBSRURfQkxBQ0tfVFJFRV9OT0RFICAq Tm9kZTsNCj4gPj4NCj4gPj4gLSAgREVCVUcgKChERUJVR19WRVJCT1NFLCAiJWE6IFRyZWU9JXBc biIsIF9fRlVOQ1RJT05fXywgVHJlZSkpOw0KPiA+PiArICBERUJVRyAoKERFQlVHX1ZFUkJPU0Us ICIlYTogVHJlZT0lcFxuIiwgX19mdW5jX18sIFRyZWUpKTsNCj4gPj4NCj4gPj4gICAgIC8vDQo+ ID4+ICAgICAvLyBwcm9wZXJ0eSAjNQ0KPiA+PiBAQCAtMTQ1OSw3ICsxNDU5LDcgQEAgUmVkQmxh Y2tUcmVlVmFsaWRhdGUgKA0KPiA+PiAgICAgREVCVUcgKCgNCj4gPj4gICAgICAgREVCVUdfVkVS Qk9TRSwNCj4gPj4gICAgICAgIiVhOiBUcmVlPSVwIEJsYWNrSGVpZ2h0PSVMZCBDb3VudD0lTGRc biIsDQo+ID4+IC0gICAgX19GVU5DVElPTl9fLA0KPiA+PiArICAgIF9fZnVuY19fLA0KPiA+PiAg ICAgICBUcmVlLA0KPiA+PiAgICAgICAoSU5UNjQpQmxhY2tIZWlnaHQsDQo+ID4+ICAgICAgIChJ TlQ2NClGb3J3YXJkQ291bnQNCj4gPj4gZGlmZiAtLWdpdCBhL01kZVBrZy9MaWJyYXJ5L0R4ZVJu Z0xpYi9EeGVSbmdMaWIuYyBiL01kZVBrZy9MaWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0K PiA+PiBpbmRleCA4MjEyOWFhNDQ1OTguLjQ2YWVhNTE1OTI0ZiAxMDA2NDQNCj4gPj4gLS0tIGEv TWRlUGtnL0xpYnJhcnkvRHhlUm5nTGliL0R4ZVJuZ0xpYi5jDQo+ID4+ICsrKyBiL01kZVBrZy9M aWJyYXJ5L0R4ZVJuZ0xpYi9EeGVSbmdMaWIuYw0KPiA+PiBAQCAtMzcsNDMgKzM3LDQzIEBAIEdl bmVyYXRlUmFuZG9tTnVtYmVyVmlhTmlzdDgwMEFsZ29yaXRobSAoDQo+ID4+ICAgICBSbmdQcm90 b2NvbCA9IE5VTEw7DQo+ID4+DQo+ID4+ICAgICBpZiAoQnVmZmVyID09IE5VTEwpIHsNCj4gPj4g LSAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IEJ1ZmZlciA9PSBOVUxMLlxuIiwgX19GVU5D VElPTl9fKSk7DQo+ID4+ICsgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBCdWZmZXIgPT0g TlVMTC5cbiIsIF9fZnVuY19fKSk7DQo+ID4+ICAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJB TUVURVI7DQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+ICAgICBTdGF0dXMgPSBnQlMtPkxvY2F0ZVBy b3RvY29sICgmZ0VmaVJuZ1Byb3RvY29sR3VpZCwgTlVMTCwgKFZPSUQgKiopJlJuZ1Byb3RvY29s KTsNCj4gPj4gICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykgfHwgKFJuZ1Byb3RvY29sID09IE5V TEwpKSB7DQo+ID4+IC0gICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBDb3VsZCBub3QgbG9j YXRlIFJORyBwcm90b3RvY29sLCBTdGF0dXMgPSAlclxuIiwgX19GVU5DVElPTl9fLCBTdGF0dXMp KTsNCj4gPj4gKyAgICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IENvdWxkIG5vdCBsb2NhdGUg Uk5HIHByb3RvdG9jb2wsIFN0YXR1cyA9ICVyXG4iLCBfX2Z1bmNfXywgU3RhdHVzKSk7DQo+ID4+ ICAgICAgIHJldHVybiBTdGF0dXM7DQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+ICAgICBTdGF0dXMg PSBSbmdQcm90b2NvbC0+R2V0Uk5HIChSbmdQcm90b2NvbCwgJmdFZmlSbmdBbGdvcml0aG1TcDgw MDkwQ3RyMjU2R3VpZCwgQnVmZmVyU2l6ZSwgQnVmZmVyKTsNCj4gPj4gLSAgREVCVUcgKChERUJV R19JTkZPLCAiJWE6IEdldFJORyBhbGdvcml0aG0gQ1RSLTI1NiAtIFN0YXR1cyA9ICVyXG4iLCBf X0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+PiArICBERUJVRyAoKERFQlVHX0lORk8sICIlYTog R2V0Uk5HIGFsZ29yaXRobSBDVFItMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0 dXMpKTsNCj4gPj4gICAgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+ICAgICAgIHJl dHVybiBTdGF0dXM7DQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+ICAgICBTdGF0dXMgPSBSbmdQcm90 b2NvbC0+R2V0Uk5HIChSbmdQcm90b2NvbCwgJmdFZmlSbmdBbGdvcml0aG1TcDgwMDkwSG1hYzI1 Nkd1aWQsIEJ1ZmZlclNpemUsIEJ1ZmZlcik7DQo+ID4+IC0gIERFQlVHICgoREVCVUdfSU5GTywg IiVhOiBHZXRSTkcgYWxnb3JpdGhtIEhNQUMtMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fRlVOQ1RJ T05fXywgU3RhdHVzKSk7DQo+ID4+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIiVhOiBHZXRSTkcg YWxnb3JpdGhtIEhNQUMtMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0dXMpKTsN Cj4gPj4gICAgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+ICAgICAgIHJldHVybiBT dGF0dXM7DQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+ICAgICBTdGF0dXMgPSBSbmdQcm90b2NvbC0+ R2V0Uk5HIChSbmdQcm90b2NvbCwgJmdFZmlSbmdBbGdvcml0aG1TcDgwMDkwSGFzaDI1Nkd1aWQs IEJ1ZmZlclNpemUsIEJ1ZmZlcik7DQo+ID4+IC0gIERFQlVHICgoREVCVUdfSU5GTywgIiVhOiBH ZXRSTkcgYWxnb3JpdGhtIEhhc2gtMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fRlVOQ1RJT05fXywg U3RhdHVzKSk7DQo+ID4+ICsgIERFQlVHICgoREVCVUdfSU5GTywgIiVhOiBHZXRSTkcgYWxnb3Jp dGhtIEhhc2gtMjU2IC0gU3RhdHVzID0gJXJcbiIsIF9fZnVuY19fLCBTdGF0dXMpKTsNCj4gPj4g ICAgIGlmICghRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+ID4+ICAgICAgIHJldHVybiBTdGF0dXM7 DQo+ID4+ICAgICB9DQo+ID4+DQo+ID4+ICAgICAvLyBJZiBhbGwgdGhlIG90aGVyIG1ldGhvZHMg aGF2ZSBmYWlsZWQsIHVzZSB0aGUgZGVmYXVsdCBtZXRob2QgZnJvbSB0aGUgUm5nUHJvdG9jb2wN Cj4gPj4gICAgIFN0YXR1cyA9IFJuZ1Byb3RvY29sLT5HZXRSTkcgKFJuZ1Byb3RvY29sLCBOVUxM LCBCdWZmZXJTaXplLCBCdWZmZXIpOw0KPiA+PiAtICBERUJVRyAoKERFQlVHX0lORk8sICIlYTog R2V0Uk5HIGFsZ29yaXRobSBIYXNoLTI1NiAtIFN0YXR1cyA9ICVyXG4iLCBfX0ZVTkNUSU9OX18s IFN0YXR1cykpOw0KPiA+PiArICBERUJVRyAoKERFQlVHX0lORk8sICIlYTogR2V0Uk5HIGFsZ29y aXRobSBIYXNoLTI1NiAtIFN0YXR1cyA9ICVyXG4iLCBfX2Z1bmNfXywgU3RhdHVzKSk7DQo+ID4+ ICAgICBpZiAoIUVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiA+PiAgICAgICByZXR1cm4gU3RhdHVz Ow0KPiA+PiAgICAgfQ0KPiA+Pg0KPiA+PiAgICAgLy8gSWYgd2UgZ2V0IHRvIHRoaXMgcG9pbnQs IHdlIGhhdmUgZmFpbGVkDQo+ID4+IC0gIERFQlVHICgoREVCVUdfRVJST1IsICIlYTogR2V0Uk5H KCkgZmFpbGVkLCBzdGF1cyA9ICVyXG4iLCBfX0ZVTkNUSU9OX18sIFN0YXR1cykpOw0KPiA+PiAr ICBERUJVRyAoKERFQlVHX0VSUk9SLCAiJWE6IEdldFJORygpIGZhaWxlZCwgc3RhdXMgPSAlclxu IiwgX19mdW5jX18sIFN0YXR1cykpOw0KPiA+Pg0KPiA+PiAgICAgcmV0dXJuIFN0YXR1czsNCj4g Pj4gICB9Ly8gR2VuZXJhdGVSYW5kb21OdW1iZXJWaWFOaXN0ODAwQWxnb3JpdGhtKCkNCj4gPj4g LS0NCj4gPj4gMi4zMC4yDQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4+DQo+ID4NCj4gPg0K PiA+DQo+ID4NCj4gPg0KPiANCj4gDQo+IA0KPiANCg0K