From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by mx.groups.io with SMTP id smtpd.web11.3624.1685426323517056302 for ; Mon, 29 May 2023 22:58:43 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=QS1s5oty; spf=pass (domain: intel.com, ip: 134.134.136.100, mailfrom: ray.ni@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1685426322; x=1716962322; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=U9d1jyXd9vz9URHCp/3we2KSnp3ZhPe1bDgVHXQKTQY=; b=QS1s5otyQjYalnz2Fx7lwQmFmT5BaWrbydgl61wta13mSHdCpNfvrYfD GU/MpNTSRyhoxVpIO/N6h0Xk/nIp/ZtrjNhoGuGePGTrf7qQ4Xk0D84rD BFT9+yEBRbnNcNxK6s1RDoGGvtgF9ahnUWZp7baVnmLchGMgcITYVY+Hu PnWvZde3mnImc9tGvLZ+jiO6YX5jgO6sqDBUKMQvaeoNAM3AZEyrp0U6c 6r8TQ0w9usquyLDGN2tbznEKeUOwNDvcyee9AZk4D+Ob9Rv5FsOY+O6y8 lv6QMpCKcdcddIZnirPppqzJ0b1go/kq2gpbIt4XiIO7LZP6loxnyu5Qq Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="420582991" X-IronPort-AV: E=Sophos;i="6.00,203,1681196400"; d="scan'208";a="420582991" Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 May 2023 22:58:41 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10725"; a="952984677" X-IronPort-AV: E=Sophos;i="6.00,203,1681196400"; d="scan'208";a="952984677" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga006.fm.intel.com with ESMTP; 29 May 2023 22:58:41 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) 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.23; Mon, 29 May 2023 22:58:41 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Mon, 29 May 2023 22:58:41 -0700 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.168) 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.23; Mon, 29 May 2023 22:58:40 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JpIcUOkP9T77HXhnRF4grSrRtoYgFQtWWUQO+wS4IYGXKPH3xx+SfBpAzj7FVYILFnrTG2vBUSc2Wwf9QMnCA7W4cXaG9KVDuEEHzzlbmui+nqbDFP4z4iNnQ4rciuLCeS9nQNisTk82uCPUgn+ieMSLL4dkj2wTnB01iu/S1l+TsbqsNkDk+owbY+qWOG8/soZHS1uplthDnHvolt+QaU3QaYvLmZaPiUm9mcgUqu0qpAdhgCc1AUBMPljPZsGU1yBKahzupbTvfXGIu5UlaqdZQDmaP0Yk+9zlHUTuTq95zBQE1WDLJGAYPuSjAzK2kEdr9T/ib9LV5RkkpmLZ/g== 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=U9d1jyXd9vz9URHCp/3we2KSnp3ZhPe1bDgVHXQKTQY=; b=mu+WMeOSJmzct1wu6ry1KYfwQLBEudxyRQB09NlBD6UTQ/aXJ9GQJGHm4hZgy+uV1Kt6xAzfzY9jdmfPyYNv/H7bfFSci7qr9oB5ZjSXtfhUMvBd69KfxZHNzBMlWjSGHLMVTo+HO7RcJepg3cRc6cvGgZna5jOp7rmZqg3CRY6++U/1bMcP9UMek4SE2aZ+Qj5IScy5r0IiNyPvyL8xKJdDjh3lbUV6CfQKkFPgNaavwdpvHU8/GlbX+k+2V3ykN0fvYHp9dqKMiOX7CS7FfCy8nKWrHc8Ap4QE1fsqp2BBeSWo+gnPzuDBLvvC+co7RcjivItTHPSKDAcHNqwCpA== 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 MN6PR11MB8244.namprd11.prod.outlook.com (2603:10b6:208:470::14) by SJ0PR11MB5769.namprd11.prod.outlook.com (2603:10b6:a03:420::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6433.23; Tue, 30 May 2023 05:58:38 +0000 Received: from MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d]) by MN6PR11MB8244.namprd11.prod.outlook.com ([fe80::892b:b8e6:bab7:635d%5]) with mapi id 15.20.6433.018; Tue, 30 May 2023 05:58:38 +0000 From: "Ni, Ray" To: Ard Biesheuvel , "devel@edk2.groups.io" CC: "Yao, Jiewen" , Gerd Hoffmann , Taylor Beebe , Oliver Smith-Denny , "Bi, Dandan" , "Gao, Liming" , "Kinney, Michael D" , Leif Lindholm , Michael Kubacki Subject: Re: [RFC PATCH 02/11] MdeModulePkg/DxeCore: Remove unused DstBuffer arg from LoadImage Thread-Topic: [RFC PATCH 02/11] MdeModulePkg/DxeCore: Remove unused DstBuffer arg from LoadImage Thread-Index: AQHZkhbLXeNlcj5GRU23TDdaNI2uGK9yUxdA Date: Tue, 30 May 2023 05:58:38 +0000 Message-ID: References: <20230529101705.2476949-1-ardb@kernel.org> <20230529101705.2476949-3-ardb@kernel.org> In-Reply-To: <20230529101705.2476949-3-ardb@kernel.org> 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: MN6PR11MB8244:EE_|SJ0PR11MB5769:EE_ x-ms-office365-filtering-correlation-id: e2ed0938-b220-4e9b-5c8e-08db60d2e9a6 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: cKe3j9M2W1iIZ8RxYn+9I795rwZJbv+N1zr0SneXBBlUiCmoZA5Sc/Az6tWY6SF+Nx3cu3wKCCXJC+nHjRvwo9hK5kAbUHL4tkG1xytxkkRxxPI5prIXPyZJy1dxp2whMMlsBfhCohiohNnUmZRCTQGx967KGXyt+kxwxyhUioOkYNw5MccJgqn5whLa+YFeI3LUPbynuhCISfkpEI4Yptg2hiHBWu0Kln+ps0HzSCU0YLa5xBU3ysUb12ORS1Y0ZCCkeBZljwdjiKsedFXSzYeCzDQGDhltVu7XjqysclYziI+zaeunNLLnjIEEwyeU6Rqjobrr23uymcekcEi5vcUszvrCjshhPHeQ/9urMcceb4wcA3tcj0dbdX+Oe/V/z+YTK66LXrHWDCjExPTYU/2OjG722vErnLuhgDBekKxXQiIq6ub1A7Niq8GavXwYYofS3zBGse6RbuaE6YHi+7zo2ApxllTxQR7plCIaEMA543auVuX9ch1vy/kgOYqPcwmc1BbiteO03Lxxs59D/HK910q0sr869f/2XOX3DEaeMrpzOW2IMK33kZuEVtmneSYBFQgIqLi6Y6y0LmrWB11EtfQvPRtDjgtDO9iaj4+rsEJUDRv/xzBxk009nuTQ x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN6PR11MB8244.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(376002)(136003)(396003)(346002)(39860400002)(366004)(451199021)(6506007)(9686003)(186003)(2906002)(30864003)(53546011)(54906003)(110136005)(478600001)(26005)(83380400001)(8936002)(7696005)(86362001)(8676002)(82960400001)(41300700001)(38100700002)(122000001)(55016003)(66556008)(66946007)(64756008)(66446008)(66476007)(76116006)(5660300002)(316002)(33656002)(71200400001)(38070700005)(52536014)(4326008);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ZkdqTWEyVUtSK0JjZExSZ3dZTDZtR1o5VmczMnJJakdaZE5QMHdpVWh2U3cw?= =?utf-8?B?aFV5U0QwMjFvZ3U0L1RXdC8wR0ZvNjZsdWFaaWREUms1ZTZrUnUzRU9JOVFP?= =?utf-8?B?RUM3ZzBvZzg4S2pibWV2RnRaLzVzdHVod3RiS1NzQlBISGFTdjFFN2hrcmJL?= =?utf-8?B?eWpMZENldEJ4YThwanRaYXQvcVBHWGV0SzUxdUZSd1laRVRMbUdLSVU3VC9H?= =?utf-8?B?UVVaNktrM050REZrMjM1VEdQdDMrZWpBUk1GSVhyR240THlHNS9rdjVLNEVq?= =?utf-8?B?cExURmNRQ3IwYndXV1pGN0hqdVlMaytaVEpENFlyMXExWjJLNm1zMkJHZVV5?= =?utf-8?B?YjdESzhSbmFGOGJMbStOdTFwOElMKzhiWGpXUXN4NHE2eU1MS1VRdHp5S1R3?= =?utf-8?B?elVIYkhlYXhCVkRZSWFHYkgwaDMzRmQ5SHJUTjh2b0NXNHVEcHZrMGlFWEI1?= =?utf-8?B?UHE0dFFYUjNxL1dqM3BvajkzbWxlWXY3YnFlYkJldVRwUlFlaVdsVjNRSFlU?= =?utf-8?B?WVh1YkxINGx4QmViL2N1dzhqY2MvVkFUdzZjQnA1Y2p4QTV3SWcvZDJEaHd4?= =?utf-8?B?MCs5SWgvRkhZMFZuWWRsUzZNUUZ1VVpWTmpkNjk5UVBUc2R2dk5rZlkxQjFk?= =?utf-8?B?bWgyOFFjdmRzanBpVEhhclpXODFMdllxWkd2Ym1LaGt0cnVUUHI2d2xLSmF1?= =?utf-8?B?cWxwMlFOcEpMMWl3YS9FbWtaNzFxUEVJb0NSMjdhWGUxMDdIUXVvQmxYWXZ3?= =?utf-8?B?anZJaFBVaTlrSUVHZ05ZMFgwZWROMWlMRVQ3aVdjNDZQM1owMTBOM1ZidURS?= =?utf-8?B?QXVzdGpBZEx3MjZicVpGdk9ONmpwRWJvajNBZllsdEpOYnlvNCtDV3JrVjRY?= =?utf-8?B?ajFGQ1VINnZoZkxMeUx1Q1lVM1VtV2VocFoyeFJSU2N6M3BGK2JJdlZDcVFl?= =?utf-8?B?b2svKzJvNVNKOVpvYjJsWFF5Skh6TFQzbG4wSFUzTDdZL0k4WGx2L0JVbnV1?= =?utf-8?B?eGhyRnhzT08rVmdmSzkva2JJTWwzbmNLUS81L1VpdnJxL2RIOVVlQ0o4VUZR?= =?utf-8?B?OGF6NUFXY3I5dDdtR0Y4dWozbFA4SVlQWWNXcE1BRmg1ZU9waXlxRFE4dWdy?= =?utf-8?B?N25VcXFKSmtVaXZ1Q0h0RFpKOHpaZE1VSFVVdVYra0RWRXBPTTdQR1VXcyth?= =?utf-8?B?bk0yTkdKOXdPYUlZUGRXZC9saXZEU1hLcGFVaEtNYnMwSG4xN1hUNnJHdzBO?= =?utf-8?B?MUVMT0svRFB6L2tlRG1qMUtpNmxwV3pWSjRNdGVlMmRDa3BkYTdBeHBWTTJp?= =?utf-8?B?alYzUnpvUjJhdlVuT1hwRkVTUzBQSWYyWUpsb3BEYzNGMlYzbjY2MUtDam8r?= =?utf-8?B?aTlrSXR2dlMyUXFiMUtpd0dFSC9lOWpudzFwNFl1S0FMeGlMUFNUTEk3d2lK?= =?utf-8?B?U1ZwSkNZWFZTY1NrdDZ4VkZJRVdjSGFmSWN2UUVsdTJZSW5RQWZWdkNIdFJs?= =?utf-8?B?RzBkM2k3NWNlaEpuWEE5S2RiQUVZL1JOOEI4Slh3TlM5Wmh1bUJSOGdEelRY?= =?utf-8?B?MDE2bGk4ZUxibW9XV1FKOUxQb1RxcTMvczl0blAxRSt0c1RJMXN0L1Z3RG9B?= =?utf-8?B?ak5HRDgrcHNXTyt5cTZPREtDQzAxSW84Rm5TWmg1WlB0VU9aQ0NNTGV3eVdz?= =?utf-8?B?VEcyV3VqOVlIZDlwaXBGc2l0RUhWdzVqUHkyNkxFcm82SFY2cDE1ajQ4RlBC?= =?utf-8?B?V24yRUhBUHF4eXpmMWc3T0dWbnBJdVl1ekF6YmZyNHBvaVEwUlp1bGJIVk1H?= =?utf-8?B?RnpvTFNBSjNOWEN4dE1ibnFjRHZCOWV5V3I5ek9ZL056R2ZqeHNibWpBMU5O?= =?utf-8?B?eXcrQVliZVlTNmJxcFBMVUNPRHNEa1RnL29oOGtPTm5rTnVYMkdDVm1TdTVt?= =?utf-8?B?ZlRYdlI0T2dwdnF2ZmgwelgyMUZQUTliZXp1S0xNRDhaaHc1OEdIbWxNWHhP?= =?utf-8?B?dmNMcGt6MUJEQXNjVjE0NUhYdWdIMFRqR0FWbXo4cUJ5SGJJcElwK1VaWVE1?= =?utf-8?B?eGc3MzcvOHJ2emxNVXB3V1UzUUlnZjFrUThuUnNWbktrOTdpNUpGVHV3RFBE?= =?utf-8?Q?KEKA=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MN6PR11MB8244.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2ed0938-b220-4e9b-5c8e-08db60d2e9a6 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 May 2023 05:58:38.2135 (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: 9RcJYVtTj4F3s5u2FlH1ikJ2TiPOld9tScJ1AMYumKf/Q89qyN806hc7Nv+SQe6gZv6zmPWAsfD4+RFXhQNeUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5769 Return-Path: ray.ni@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFJheSBOaSA8cmF5Lm5pQGludGVsLmNvbT4NCg0KT25lIGNvbW1lbnQgcmVn YXJkaW5nIHRoZSBuZWVkaW5nIG9mICJzdGF0aWMiLg0KKEkgc2F3IHlvdSBhZGRlZCBzdGF0aWMi IHRvIENvcmVMb2FkUGVJbWFnZSBpbiB0aGlzIHBhdGNo8J+YiikNCkJ1dCBsZXQncyBkaXNjdXNz IGluIHRoZSBmaXJzdCBwYXRjaCB0aHJlYWQuDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0t LS0NCj4gRnJvbTogQXJkIEJpZXNoZXV2ZWwgPGFyZGJAa2VybmVsLm9yZz4NCj4gU2VudDogTW9u ZGF5LCBNYXkgMjksIDIwMjMgNjoxNyBQTQ0KPiBUbzogZGV2ZWxAZWRrMi5ncm91cHMuaW8NCj4g Q2M6IEFyZCBCaWVzaGV1dmVsIDxhcmRiQGtlcm5lbC5vcmc+OyBOaSwgUmF5IDxyYXkubmlAaW50 ZWwuY29tPjsgWWFvLCBKaWV3ZW4NCj4gPGppZXdlbi55YW9AaW50ZWwuY29tPjsgR2VyZCBIb2Zm bWFubiA8a3JheGVsQHJlZGhhdC5jb20+OyBUYXlsb3IgQmVlYmUNCj4gPHRAdGF5bG9yYmVlYmUu Y29tPjsgT2xpdmVyIFNtaXRoLURlbm55IDxvc2RAc21pdGgtZGVubnkuY29tPjsgQmksIERhbmRh bg0KPiA8ZGFuZGFuLmJpQGludGVsLmNvbT47IEdhbywgTGltaW5nIDxnYW9saW1pbmdAYnlvc29m dC5jb20uY24+OyBLaW5uZXksDQo+IE1pY2hhZWwgRCA8bWljaGFlbC5kLmtpbm5leUBpbnRlbC5j b20+OyBMZWlmIExpbmRob2xtDQo+IDxxdWljX2xsaW5kaG9sQHF1aWNpbmMuY29tPjsgTWljaGFl bCBLdWJhY2tpIDxtaWt1YmFja0BsaW51eC5taWNyb3NvZnQuY29tPg0KPiBTdWJqZWN0OiBbUkZD IFBBVENIIDAyLzExXSBNZGVNb2R1bGVQa2cvRHhlQ29yZTogUmVtb3ZlIHVudXNlZCBEc3RCdWZm ZXINCj4gYXJnIGZyb20gTG9hZEltYWdlDQo+IA0KPiBUaGUgRHN0QnVmZmVyIGFuZCBOdW1iZXJP ZlBhZ2VzIGFyZ3VtZW50cyB0byBDb3JlTG9hZEltYWdlQ29tbW9uICgpIGFyZQ0KPiBuZXZlciBz ZXQgYnkgaXRzIG9ubHkgY2FsbGVyIENvcmVMb2FkSW1hZ2UoKSBzbyBsZXQncyBkcm9wIHRoZW0g ZnJvbSB0aGUNCj4gcHJvdG90eXBlLg0KPiANCj4gU2lnbmVkLW9mZi1ieTogQXJkIEJpZXNoZXV2 ZWwgPGFyZGJAa2VybmVsLm9yZz4NCj4gLS0tDQo+ICBNZGVNb2R1bGVQa2cvQ29yZS9EeGUvSW1h Z2UvSW1hZ2UuYyB8IDE3NCArKysrKysrLS0tLS0tLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQs IDU2IGluc2VydGlvbnMoKyksIDExOCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYgLS1naXQgYS9N ZGVNb2R1bGVQa2cvQ29yZS9EeGUvSW1hZ2UvSW1hZ2UuYw0KPiBiL01kZU1vZHVsZVBrZy9Db3Jl L0R4ZS9JbWFnZS9JbWFnZS5jDQo+IGluZGV4IDJmMmRmZTVkMDQ5NmRjNGYuLjY2MjVkMGNkMGZm ODIxMDcgMTAwNjQ0DQo+IC0tLSBhL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9JbWFnZS9JbWFnZS5j DQo+ICsrKyBiL01kZU1vZHVsZVBrZy9Db3JlL0R4ZS9JbWFnZS9JbWFnZS5jDQo+IEBAIC01NTks NyArNTU5LDYgQEAgQ29yZUlzSW1hZ2VUeXBlU3VwcG9ydGVkICgNCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBib290IHNlbGVjdGlvbi4NCj4gDQo+ICAgIEBwYXJhbSAgUGUz MkhhbmRsZSAgICAgICAgICAgICAgVGhlIGhhbmRsZSBvZiBQRTMyIGltYWdlDQo+IA0KPiAgICBA cGFyYW0gIEltYWdlICAgICAgICAgICAgICAgICAgIFBFIGltYWdlIHRvIGJlIGxvYWRlZA0KPiAN Cj4gLSAgQHBhcmFtICBEc3RCdWZmZXIgICAgICAgICAgICAgICBUaGUgYnVmZmVyIHRvIHN0b3Jl IHRoZSBpbWFnZQ0KPiANCj4gICAgQHBhcmFtICBBdHRyaWJ1dGUgICAgICAgICAgICAgICBUaGUg Yml0IG1hc2sgb2YgYXR0cmlidXRlcyB0byBzZXQgZm9yIHRoZSBsb2FkDQo+IA0KPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBFIGltYWdlDQo+IA0KPiANCj4gDQo+IEBAIC01 NzAsMTcgKzU2OSwxNiBAQCBDb3JlSXNJbWFnZVR5cGVTdXBwb3J0ZWQgKA0KPiAgICBAcmV0dmFs IEVGSV9CVUZGRVJfVE9PX1NNQUxMICAgIEJ1ZmZlciBmb3IgaW1hZ2UgaXMgdG9vIHNtYWxsDQo+ IA0KPiANCj4gDQo+ICAqKi8NCj4gDQo+ICtTVEFUSUMNCj4gDQo+ICBFRklfU1RBVFVTDQo+IA0K PiAgQ29yZUxvYWRQZUltYWdlICgNCj4gDQo+ICAgIElOIEJPT0xFQU4gICAgICAgICAgICAgICAg ICAgIEJvb3RQb2xpY3ksDQo+IA0KPiAgICBJTiBWT0lEICAgICAgICAgICAgICAgICAgICAgICAq UGUzMkhhbmRsZSwNCj4gDQo+ICAgIElOIExPQURFRF9JTUFHRV9QUklWQVRFX0RBVEEgICpJbWFn ZSwNCj4gDQo+IC0gIElOIEVGSV9QSFlTSUNBTF9BRERSRVNTICAgICAgIERzdEJ1ZmZlciAgICBP UFRJT05BTCwNCj4gDQo+ICAgIElOICBVSU5UMzIgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0 ZQ0KPiANCj4gICAgKQ0KPiANCj4gIHsNCj4gDQo+ICAgIEVGSV9TVEFUVVMgIFN0YXR1czsNCj4g DQo+IC0gIEJPT0xFQU4gICAgIERzdEJ1ZkFsb2NhdGVkOw0KPiANCj4gICAgVUlOVE4gICAgICAg U2l6ZTsNCj4gDQo+IA0KPiANCj4gICAgWmVyb01lbSAoJkltYWdlLT5JbWFnZUNvbnRleHQsIHNp emVvZiAoSW1hZ2UtPkltYWdlQ29udGV4dCkpOw0KPiANCj4gQEAgLTYzMyw5OSArNjMxLDY3IEBA IENvcmVMb2FkUGVJbWFnZSAoDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4gICAgLy8NCj4gDQo+IC0g IC8vIEFsbG9jYXRlIG1lbW9yeSBvZiB0aGUgY29ycmVjdCBtZW1vcnkgdHlwZSBhbGlnbmVkIG9u IHRoZSByZXF1aXJlZCBpbWFnZQ0KPiBib3VuZGFyeQ0KPiANCj4gKyAgLy8gQWxsb2NhdGUgRGVz dGluYXRpb24gQnVmZmVyIGFzIGNhbGxlciBkaWQgbm90IHBhc3MgaXQgaW4NCj4gDQo+ICAgIC8v DQo+IA0KPiAtICBEc3RCdWZBbG9jYXRlZCA9IEZBTFNFOw0KPiANCj4gLSAgaWYgKERzdEJ1ZmZl ciA9PSAwKSB7DQo+IA0KPiAtICAgIC8vDQo+IA0KPiAtICAgIC8vIEFsbG9jYXRlIERlc3RpbmF0 aW9uIEJ1ZmZlciBhcyBjYWxsZXIgZGlkIG5vdCBwYXNzIGl0IGluDQo+IA0KPiAtICAgIC8vDQo+ IA0KPiANCj4gDQo+IC0gICAgaWYgKEltYWdlLT5JbWFnZUNvbnRleHQuU2VjdGlvbkFsaWdubWVu dCA+IEVGSV9QQUdFX1NJWkUpIHsNCj4gDQo+IC0gICAgICBTaXplID0gKFVJTlROKUltYWdlLT5J bWFnZUNvbnRleHQuSW1hZ2VTaXplICsgSW1hZ2UtDQo+ID5JbWFnZUNvbnRleHQuU2VjdGlvbkFs aWdubWVudDsNCj4gDQo+IC0gICAgfSBlbHNlIHsNCj4gDQo+IC0gICAgICBTaXplID0gKFVJTlRO KUltYWdlLT5JbWFnZUNvbnRleHQuSW1hZ2VTaXplOw0KPiANCj4gLSAgICB9DQo+IA0KPiArICBp ZiAoSW1hZ2UtPkltYWdlQ29udGV4dC5TZWN0aW9uQWxpZ25tZW50ID4gRUZJX1BBR0VfU0laRSkg ew0KPiANCj4gKyAgICBTaXplID0gKFVJTlROKUltYWdlLT5JbWFnZUNvbnRleHQuSW1hZ2VTaXpl ICsgSW1hZ2UtDQo+ID5JbWFnZUNvbnRleHQuU2VjdGlvbkFsaWdubWVudDsNCj4gDQo+ICsgIH0g ZWxzZSB7DQo+IA0KPiArICAgIFNpemUgPSAoVUlOVE4pSW1hZ2UtPkltYWdlQ29udGV4dC5JbWFn ZVNpemU7DQo+IA0KPiArICB9DQo+IA0KPiANCj4gDQo+IC0gICAgSW1hZ2UtPk51bWJlck9mUGFn ZXMgPSBFRklfU0laRV9UT19QQUdFUyAoU2l6ZSk7DQo+IA0KPiArICBJbWFnZS0+TnVtYmVyT2ZQ YWdlcyA9IEVGSV9TSVpFX1RPX1BBR0VTIChTaXplKTsNCj4gDQo+IA0KPiANCj4gLSAgICAvLw0K PiANCj4gLSAgICAvLyBJZiB0aGUgaW1hZ2UgcmVsb2NhdGlvbnMgaGF2ZSBub3QgYmVlbiBzdHJp cHBlZCwgdGhlbiBsb2FkIGF0IGFueSBhZGRyZXNzLg0KPiANCj4gLSAgICAvLyBPdGhlcndpc2Ug bG9hZCBhdCB0aGUgYWRkcmVzcyBhdCB3aGljaCBpdCB3YXMgbGlua2VkLg0KPiANCj4gLSAgICAv Lw0KPiANCj4gLSAgICAvLyBNZW1vcnkgYmVsb3cgMU1CIHNob3VsZCBiZSB0cmVhdGVkIHJlc2Vy dmVkIGZvciBDU00gYW5kIHRoZXJlIHNob3VsZA0KPiBiZQ0KPiANCj4gLSAgICAvLyBubyBtb2R1 bGVzIHdob3NlIHByZWZlcnJlZCBsb2FkIGFkZHJlc3NlcyBhcmUgYmVsb3cgMU1CLg0KPiANCj4g LSAgICAvLw0KPiANCj4gLSAgICBTdGF0dXMgPSBFRklfT1VUX09GX1JFU09VUkNFUzsNCj4gDQo+ IC0gICAgLy8NCj4gDQo+IC0gICAgLy8gSWYgTG9hZGluZyBNb2R1bGUgQXQgRml4ZWQgQWRkcmVz cyBmZWF0dXJlIGlzIGVuYWJsZWQsIHRoZSBtb2R1bGUgc2hvdWxkIGJlDQo+IGxvYWRlZCB0bw0K PiANCj4gLSAgICAvLyBhIHNwZWNpZmllZCBhZGRyZXNzLg0KPiANCj4gLSAgICAvLw0KPiANCj4g LSAgICBpZiAoUGNkR2V0NjQgKFBjZExvYWRNb2R1bGVBdEZpeEFkZHJlc3NFbmFibGUpICE9IDAg KSB7DQo+IA0KPiAtICAgICAgU3RhdHVzID0gR2V0UGVDb2ZmSW1hZ2VGaXhMb2FkaW5nQXNzaWdu ZWRBZGRyZXNzICgmKEltYWdlLQ0KPiA+SW1hZ2VDb250ZXh0KSk7DQo+IA0KPiAtDQo+IA0KPiAt ICAgICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiANCj4gLSAgICAgICAgLy8NCj4gDQo+ IC0gICAgICAgIC8vIElmIHRoZSBjb2RlIG1lbW9yeSBpcyBub3QgcmVhZHksIGludm9rZSBDb3Jl QWxsb2NhdGVQYWdlIHdpdGgNCj4gQWxsb2NhdGVBbnlQYWdlcyB0byBsb2FkIHRoZSBkcml2ZXIu DQo+IA0KPiAtICAgICAgICAvLw0KPiANCj4gLSAgICAgICAgREVCVUcgKChERUJVR19JTkZPfERF QlVHX0xPQUQsICJMT0FESU5HIE1PRFVMRSBGSVhFRCBFUlJPUjoNCj4gTG9hZGluZyBtb2R1bGUg YXQgZml4ZWQgYWRkcmVzcyBmYWlsZWQgc2luY2Ugc3BlY2lmaWVkIG1lbW9yeSBpcyBub3QNCj4g YXZhaWxhYmxlLlxuIikpOw0KPiANCj4gLQ0KPiANCj4gLSAgICAgICAgU3RhdHVzID0gQ29yZUFs bG9jYXRlUGFnZXMgKA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICBBbGxvY2F0ZUFueVBhZ2Vz LA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAoRUZJX01FTU9SWV9UWVBFKShJbWFnZS0NCj4g PkltYWdlQ29udGV4dC5JbWFnZUNvZGVNZW1vcnlUeXBlKSwNCj4gDQo+IC0gICAgICAgICAgICAg ICAgICAgSW1hZ2UtPk51bWJlck9mUGFnZXMsDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICZJ bWFnZS0+SW1hZ2VDb250ZXh0LkltYWdlQWRkcmVzcw0KPiANCj4gLSAgICAgICAgICAgICAgICAg ICApOw0KPiANCj4gLSAgICAgIH0NCj4gDQo+IC0gICAgfSBlbHNlIHsNCj4gDQo+IC0gICAgICBp ZiAoKEltYWdlLT5JbWFnZUNvbnRleHQuSW1hZ2VBZGRyZXNzID49IDB4MTAwMDAwKSB8fCBJbWFn ZS0NCj4gPkltYWdlQ29udGV4dC5SZWxvY2F0aW9uc1N0cmlwcGVkKSB7DQo+IA0KPiAtICAgICAg ICBTdGF0dXMgPSBDb3JlQWxsb2NhdGVQYWdlcyAoDQo+IA0KPiAtICAgICAgICAgICAgICAgICAg IEFsbG9jYXRlQWRkcmVzcywNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgKEVGSV9NRU1PUllf VFlQRSkoSW1hZ2UtDQo+ID5JbWFnZUNvbnRleHQuSW1hZ2VDb2RlTWVtb3J5VHlwZSksDQo+IA0K PiAtICAgICAgICAgICAgICAgICAgIEltYWdlLT5OdW1iZXJPZlBhZ2VzLA0KPiANCj4gLSAgICAg ICAgICAgICAgICAgICAmSW1hZ2UtPkltYWdlQ29udGV4dC5JbWFnZUFkZHJlc3MNCj4gDQo+IC0g ICAgICAgICAgICAgICAgICAgKTsNCj4gDQo+IC0gICAgICB9DQo+IA0KPiAtDQo+IA0KPiAtICAg ICAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSAmJiAhSW1hZ2UtPkltYWdlQ29udGV4dC5SZWxvY2F0 aW9uc1N0cmlwcGVkKSB7DQo+IA0KPiAtICAgICAgICBTdGF0dXMgPSBDb3JlQWxsb2NhdGVQYWdl cyAoDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgIEFsbG9jYXRlQW55UGFnZXMsDQo+IA0KPiAt ICAgICAgICAgICAgICAgICAgIChFRklfTUVNT1JZX1RZUEUpKEltYWdlLQ0KPiA+SW1hZ2VDb250 ZXh0LkltYWdlQ29kZU1lbW9yeVR5cGUpLA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICBJbWFn ZS0+TnVtYmVyT2ZQYWdlcywNCj4gDQo+IC0gICAgICAgICAgICAgICAgICAgJkltYWdlLT5JbWFn ZUNvbnRleHQuSW1hZ2VBZGRyZXNzDQo+IA0KPiAtICAgICAgICAgICAgICAgICAgICk7DQo+IA0K PiAtICAgICAgfQ0KPiANCj4gLSAgICB9DQo+IA0KPiArICAvLw0KPiANCj4gKyAgLy8gSWYgdGhl IGltYWdlIHJlbG9jYXRpb25zIGhhdmUgbm90IGJlZW4gc3RyaXBwZWQsIHRoZW4gbG9hZCBhdCBh bnkgYWRkcmVzcy4NCj4gDQo+ICsgIC8vIE90aGVyd2lzZSBsb2FkIGF0IHRoZSBhZGRyZXNzIGF0 IHdoaWNoIGl0IHdhcyBsaW5rZWQuDQo+IA0KPiArICAvLw0KPiANCj4gKyAgLy8gTWVtb3J5IGJl bG93IDFNQiBzaG91bGQgYmUgdHJlYXRlZCByZXNlcnZlZCBmb3IgQ1NNIGFuZCB0aGVyZSBzaG91 bGQgYmUNCj4gDQo+ICsgIC8vIG5vIG1vZHVsZXMgd2hvc2UgcHJlZmVycmVkIGxvYWQgYWRkcmVz c2VzIGFyZSBiZWxvdyAxTUIuDQo+IA0KPiArICAvLw0KPiANCj4gKyAgU3RhdHVzID0gRUZJX09V VF9PRl9SRVNPVVJDRVM7DQo+IA0KPiArICAvLw0KPiANCj4gKyAgLy8gSWYgTG9hZGluZyBNb2R1 bGUgQXQgRml4ZWQgQWRkcmVzcyBmZWF0dXJlIGlzIGVuYWJsZWQsIHRoZSBtb2R1bGUgc2hvdWxk IGJlDQo+IGxvYWRlZCB0bw0KPiANCj4gKyAgLy8gYSBzcGVjaWZpZWQgYWRkcmVzcy4NCj4gDQo+ ICsgIC8vDQo+IA0KPiArICBpZiAoUGNkR2V0NjQgKFBjZExvYWRNb2R1bGVBdEZpeEFkZHJlc3NF bmFibGUpICE9IDAgKSB7DQo+IA0KPiArICAgIFN0YXR1cyA9IEdldFBlQ29mZkltYWdlRml4TG9h ZGluZ0Fzc2lnbmVkQWRkcmVzcyAoJihJbWFnZS0NCj4gPkltYWdlQ29udGV4dCkpOw0KPiANCj4g DQo+IA0KPiAgICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCj4gDQo+IC0gICAgICByZXR1 cm4gU3RhdHVzOw0KPiANCj4gLSAgICB9DQo+IA0KPiArICAgICAgLy8NCj4gDQo+ICsgICAgICAv LyBJZiB0aGUgY29kZSBtZW1vcnkgaXMgbm90IHJlYWR5LCBpbnZva2UgQ29yZUFsbG9jYXRlUGFn ZSB3aXRoDQo+IEFsbG9jYXRlQW55UGFnZXMgdG8gbG9hZCB0aGUgZHJpdmVyLg0KPiANCj4gKyAg ICAgIC8vDQo+IA0KPiArICAgICAgREVCVUcgKChERUJVR19JTkZPfERFQlVHX0xPQUQsICJMT0FE SU5HIE1PRFVMRSBGSVhFRCBFUlJPUjoNCj4gTG9hZGluZyBtb2R1bGUgYXQgZml4ZWQgYWRkcmVz cyBmYWlsZWQgc2luY2Ugc3BlY2lmaWVkIG1lbW9yeSBpcyBub3QNCj4gYXZhaWxhYmxlLlxuIikp Ow0KPiANCj4gDQo+IA0KPiAtICAgIERzdEJ1ZkFsb2NhdGVkID0gVFJVRTsNCj4gDQo+ICsgICAg ICBTdGF0dXMgPSBDb3JlQWxsb2NhdGVQYWdlcyAoDQo+IA0KPiArICAgICAgICAgICAgICAgICBB bGxvY2F0ZUFueVBhZ2VzLA0KPiANCj4gKyAgICAgICAgICAgICAgICAgKEVGSV9NRU1PUllfVFlQ RSkoSW1hZ2UtDQo+ID5JbWFnZUNvbnRleHQuSW1hZ2VDb2RlTWVtb3J5VHlwZSksDQo+IA0KPiAr ICAgICAgICAgICAgICAgICBJbWFnZS0+TnVtYmVyT2ZQYWdlcywNCj4gDQo+ICsgICAgICAgICAg ICAgICAgICZJbWFnZS0+SW1hZ2VDb250ZXh0LkltYWdlQWRkcmVzcw0KPiANCj4gKyAgICAgICAg ICAgICAgICAgKTsNCj4gDQo+ICsgICAgfQ0KPiANCj4gICAgfSBlbHNlIHsNCj4gDQo+IC0gICAg Ly8NCj4gDQo+IC0gICAgLy8gQ2FsbGVyIHByb3ZpZGVkIHRoZSBkZXN0aW5hdGlvbiBidWZmZXIN Cj4gDQo+IC0gICAgLy8NCj4gDQo+IC0NCj4gDQo+IC0gICAgaWYgKEltYWdlLT5JbWFnZUNvbnRl eHQuUmVsb2NhdGlvbnNTdHJpcHBlZCAmJiAoSW1hZ2UtDQo+ID5JbWFnZUNvbnRleHQuSW1hZ2VB ZGRyZXNzICE9IERzdEJ1ZmZlcikpIHsNCj4gDQo+IC0gICAgICAvLw0KPiANCj4gLSAgICAgIC8v IElmIHRoZSBpbWFnZSByZWxvY2F0aW9ucyB3ZXJlIHN0cmlwcGVkLCBhbmQgdGhlIGNhbGxlciBw cm92aWRlZCBhDQo+IA0KPiAtICAgICAgLy8gZGVzdGluYXRpb24gYnVmZmVyIGFkZHJlc3MgdGhh dCBkb2VzIG5vdCBtYXRjaCB0aGUgYWRkcmVzcyB0aGF0IHRoZQ0KPiANCj4gLSAgICAgIC8vIGlt YWdlIGlzIGxpbmtlZCBhdCwgdGhlbiB0aGUgaW1hZ2UgY2Fubm90IGJlIGxvYWRlZC4NCj4gDQo+ IC0gICAgICAvLw0KPiANCj4gLSAgICAgIHJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7DQo+ IA0KPiArICAgIGlmICgoSW1hZ2UtPkltYWdlQ29udGV4dC5JbWFnZUFkZHJlc3MgPj0gMHgxMDAw MDApIHx8IEltYWdlLQ0KPiA+SW1hZ2VDb250ZXh0LlJlbG9jYXRpb25zU3RyaXBwZWQpIHsNCj4g DQo+ICsgICAgICBTdGF0dXMgPSBDb3JlQWxsb2NhdGVQYWdlcyAoDQo+IA0KPiArICAgICAgICAg ICAgICAgICBBbGxvY2F0ZUFkZHJlc3MsDQo+IA0KPiArICAgICAgICAgICAgICAgICAoRUZJX01F TU9SWV9UWVBFKShJbWFnZS0NCj4gPkltYWdlQ29udGV4dC5JbWFnZUNvZGVNZW1vcnlUeXBlKSwN Cj4gDQo+ICsgICAgICAgICAgICAgICAgIEltYWdlLT5OdW1iZXJPZlBhZ2VzLA0KPiANCj4gKyAg ICAgICAgICAgICAgICAgJkltYWdlLT5JbWFnZUNvbnRleHQuSW1hZ2VBZGRyZXNzDQo+IA0KPiAr ICAgICAgICAgICAgICAgICApOw0KPiANCj4gICAgICB9DQo+IA0KPiANCj4gDQo+IC0gICAgaWYg KChJbWFnZS0+TnVtYmVyT2ZQYWdlcyAhPSAwKSAmJg0KPiANCj4gLSAgICAgICAgKEltYWdlLT5O dW1iZXJPZlBhZ2VzIDwNCj4gDQo+IC0gICAgICAgICAoRUZJX1NJWkVfVE9fUEFHRVMgKChVSU5U TilJbWFnZS0+SW1hZ2VDb250ZXh0LkltYWdlU2l6ZSArIEltYWdlLQ0KPiA+SW1hZ2VDb250ZXh0 LlNlY3Rpb25BbGlnbm1lbnQpKSkpDQo+IA0KPiAtICAgIHsNCj4gDQo+IC0gICAgICBJbWFnZS0+ TnVtYmVyT2ZQYWdlcyA9IEVGSV9TSVpFX1RPX1BBR0VTICgoVUlOVE4pSW1hZ2UtDQo+ID5JbWFn ZUNvbnRleHQuSW1hZ2VTaXplICsgSW1hZ2UtPkltYWdlQ29udGV4dC5TZWN0aW9uQWxpZ25tZW50 KTsNCj4gDQo+IC0gICAgICByZXR1cm4gRUZJX0JVRkZFUl9UT09fU01BTEw7DQo+IA0KPiArICAg IGlmIChFRklfRVJST1IgKFN0YXR1cykgJiYgIUltYWdlLT5JbWFnZUNvbnRleHQuUmVsb2NhdGlv bnNTdHJpcHBlZCkgew0KPiANCj4gKyAgICAgIFN0YXR1cyA9IENvcmVBbGxvY2F0ZVBhZ2VzICgN Cj4gDQo+ICsgICAgICAgICAgICAgICAgIEFsbG9jYXRlQW55UGFnZXMsDQo+IA0KPiArICAgICAg ICAgICAgICAgICAoRUZJX01FTU9SWV9UWVBFKShJbWFnZS0NCj4gPkltYWdlQ29udGV4dC5JbWFn ZUNvZGVNZW1vcnlUeXBlKSwNCj4gDQo+ICsgICAgICAgICAgICAgICAgIEltYWdlLT5OdW1iZXJP ZlBhZ2VzLA0KPiANCj4gKyAgICAgICAgICAgICAgICAgJkltYWdlLT5JbWFnZUNvbnRleHQuSW1h Z2VBZGRyZXNzDQo+IA0KPiArICAgICAgICAgICAgICAgICApOw0KPiANCj4gICAgICB9DQo+IA0K PiArICB9DQo+IA0KPiANCj4gDQo+IC0gICAgSW1hZ2UtPk51bWJlck9mUGFnZXMgICAgICAgICAg ICAgPSBFRklfU0laRV9UT19QQUdFUyAoKFVJTlROKUltYWdlLQ0KPiA+SW1hZ2VDb250ZXh0Lklt YWdlU2l6ZSArIEltYWdlLT5JbWFnZUNvbnRleHQuU2VjdGlvbkFsaWdubWVudCk7DQo+IA0KPiAt ICAgIEltYWdlLT5JbWFnZUNvbnRleHQuSW1hZ2VBZGRyZXNzID0gRHN0QnVmZmVyOw0KPiANCj4g KyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiANCj4gKyAgICByZXR1cm4gU3RhdHVzOw0K PiANCj4gICAgfQ0KPiANCj4gDQo+IA0KPiAgICBJbWFnZS0+SW1hZ2VCYXNlUGFnZSA9IEltYWdl LT5JbWFnZUNvbnRleHQuSW1hZ2VBZGRyZXNzOw0KPiANCj4gQEAgLTg3NSwxMiArODQxLDkgQEAg Q29yZUxvYWRQZUltYWdlICgNCj4gICAgLy8NCj4gDQo+ICAgIC8vIEZyZWUgbWVtb3J5Lg0KPiAN Cj4gICAgLy8NCj4gDQo+IC0NCj4gDQo+IC0gIGlmIChEc3RCdWZBbG9jYXRlZCkgew0KPiANCj4g LSAgICBDb3JlRnJlZVBhZ2VzIChJbWFnZS0+SW1hZ2VDb250ZXh0LkltYWdlQWRkcmVzcywgSW1h Z2UtDQo+ID5OdW1iZXJPZlBhZ2VzKTsNCj4gDQo+IC0gICAgSW1hZ2UtPkltYWdlQ29udGV4dC5J bWFnZUFkZHJlc3MgPSAwOw0KPiANCj4gLSAgICBJbWFnZS0+SW1hZ2VCYXNlUGFnZSAgICAgICAg ICAgICA9IDA7DQo+IA0KPiAtICB9DQo+IA0KPiArICBDb3JlRnJlZVBhZ2VzIChJbWFnZS0+SW1h Z2VDb250ZXh0LkltYWdlQWRkcmVzcywgSW1hZ2UtDQo+ID5OdW1iZXJPZlBhZ2VzKTsNCj4gDQo+ ICsgIEltYWdlLT5JbWFnZUNvbnRleHQuSW1hZ2VBZGRyZXNzID0gMDsNCj4gDQo+ICsgIEltYWdl LT5JbWFnZUJhc2VQYWdlICAgICAgICAgICAgID0gMDsNCj4gDQo+IA0KPiANCj4gICAgaWYgKElt YWdlLT5JbWFnZUNvbnRleHQuRml4dXBEYXRhICE9IE5VTEwpIHsNCj4gDQo+ICAgICAgQ29yZUZy ZWVQb29sIChJbWFnZS0+SW1hZ2VDb250ZXh0LkZpeHVwRGF0YSk7DQo+IA0KPiBAQCAtMTA5NCwx MiArMTA1Nyw2IEBAIENvcmVVbmxvYWRBbmRDbG9zZUltYWdlICgNCj4gICAgQHBhcmFtICBTb3Vy Y2VCdWZmZXIgICAgICAgICAgICBJZiBub3QgTlVMTCwgYSBwb2ludGVyIHRvIHRoZSBtZW1vcnkg bG9jYXRpb24NCj4gDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGFp bmluZyBhIGNvcHkgb2YgdGhlIGltYWdlIHRvIGJlIGxvYWRlZC4NCj4gDQo+ICAgIEBwYXJhbSAg U291cmNlU2l6ZSAgICAgICAgICAgICAgVGhlIHNpemUgaW4gYnl0ZXMgb2YgU291cmNlQnVmZmVy Lg0KPiANCj4gLSAgQHBhcmFtICBEc3RCdWZmZXIgICAgICAgICAgICAgICBUaGUgYnVmZmVyIHRv IHN0b3JlIHRoZSBpbWFnZQ0KPiANCj4gLSAgQHBhcmFtICBOdW1iZXJPZlBhZ2VzICAgICAgICAg ICBJZiBub3QgTlVMTCwgaXQgaW5wdXRzIGEgcG9pbnRlciB0byB0aGUgcGFnZQ0KPiANCj4gLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgb2YgRHN0QnVmZmVyIGFuZCBv dXRwdXRzIGEgcG9pbnRlciB0bw0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB0aGUgcGFnZSBudW1iZXIgb2YgdGhlIGltYWdlLiBJZiB0aGlzIG51bWJlciBpcw0KPiAN Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3QgZW5vdWdoLCAgcmV0dXJu IEVGSV9CVUZGRVJfVE9PX1NNQUxMIGFuZA0KPiANCj4gLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aGlzIHBhcmFtZXRlciBjb250YWlucyB0aGUgcmVxdWlyZWQgbnVtYmVyLg0K PiANCj4gICAgQHBhcmFtICBJbWFnZUhhbmRsZSAgICAgICAgICAgICBQb2ludGVyIHRvIHRoZSBy ZXR1cm5lZCBpbWFnZSBoYW5kbGUgdGhhdCBpcw0KPiANCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjcmVhdGVkIHdoZW4gdGhlIGltYWdlIGlzIHN1Y2Nlc3NmdWxseSBsb2Fk ZWQuDQo+IA0KPiAgICBAcGFyYW0gIEF0dHJpYnV0ZSAgICAgICAgICAgICAgIFRoZSBiaXQgbWFz ayBvZiBhdHRyaWJ1dGVzIHRvIHNldCBmb3IgdGhlIGxvYWQNCj4gDQo+IEBAIC0xMTMyLDggKzEw ODksNiBAQCBDb3JlTG9hZEltYWdlQ29tbW9uICgNCj4gICAgSU4gIEVGSV9ERVZJQ0VfUEFUSF9Q Uk9UT0NPTCAgKkZpbGVQYXRoLA0KPiANCj4gICAgSU4gIFZPSUQgICAgICAgICAgICAgICAgICAg ICAgKlNvdXJjZUJ1ZmZlciAgICAgICBPUFRJT05BTCwNCj4gDQo+ICAgIElOICBVSU5UTiAgICAg ICAgICAgICAgICAgICAgIFNvdXJjZVNpemUsDQo+IA0KPiAtICBJTiAgRUZJX1BIWVNJQ0FMX0FE RFJFU1MgICAgICBEc3RCdWZmZXIgICAgICAgICAgIE9QVElPTkFMLA0KPiANCj4gLSAgSU4gT1VU IFVJTlROICAgICAgICAgICAgICAgICAgKk51bWJlck9mUGFnZXMgICAgICBPUFRJT05BTCwNCj4g DQo+ICAgIE9VVCBFRklfSEFORExFICAgICAgICAgICAgICAgICpJbWFnZUhhbmRsZSwNCj4gDQo+ ICAgIElOICBVSU5UMzIgICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZQ0KPiANCj4gICAgKQ0K PiANCj4gQEAgLTEzNDIsMTIgKzEyOTcsNyBAQCBDb3JlTG9hZEltYWdlQ29tbW9uICgNCj4gICAg SW1hZ2UtPkluZm8uUmV2aXNpb24gICAgID0gRUZJX0xPQURFRF9JTUFHRV9QUk9UT0NPTF9SRVZJ U0lPTjsNCj4gDQo+ICAgIEltYWdlLT5JbmZvLkZpbGVQYXRoICAgICA9IER1cGxpY2F0ZURldmlj ZVBhdGggKEZpbGVQYXRoKTsNCj4gDQo+ICAgIEltYWdlLT5JbmZvLlBhcmVudEhhbmRsZSA9IFBh cmVudEltYWdlSGFuZGxlOw0KPiANCj4gLQ0KPiANCj4gLSAgaWYgKE51bWJlck9mUGFnZXMgIT0g TlVMTCkgew0KPiANCj4gLSAgICBJbWFnZS0+TnVtYmVyT2ZQYWdlcyA9ICpOdW1iZXJPZlBhZ2Vz Ow0KPiANCj4gLSAgfSBlbHNlIHsNCj4gDQo+IC0gICAgSW1hZ2UtPk51bWJlck9mUGFnZXMgPSAw Ow0KPiANCj4gLSAgfQ0KPiANCj4gKyAgSW1hZ2UtPk51bWJlck9mUGFnZXMgICAgID0gMDsNCj4g DQo+IA0KPiANCj4gICAgLy8NCj4gDQo+ICAgIC8vIEluc3RhbGwgdGhlIHByb3RvY29sIGludGVy ZmFjZXMgZm9yIHRoaXMgaW1hZ2UNCj4gDQo+IEBAIC0xMzY3LDIxICsxMzE3LDExIEBAIENvcmVM b2FkSW1hZ2VDb21tb24gKA0KPiAgICAvLw0KPiANCj4gICAgLy8gTG9hZCB0aGUgaW1hZ2UuDQo+ IA0KPiAgICAvLw0KPiANCj4gLSAgU3RhdHVzID0gQ29yZUxvYWRQZUltYWdlIChCb290UG9saWN5 LCAmRkhhbmQsIEltYWdlLCBEc3RCdWZmZXIsIEF0dHJpYnV0ZSk7DQo+IA0KPiArICBTdGF0dXMg PSBDb3JlTG9hZFBlSW1hZ2UgKEJvb3RQb2xpY3ksICZGSGFuZCwgSW1hZ2UsIEF0dHJpYnV0ZSk7 DQo+IA0KPiAgICBpZiAoRUZJX0VSUk9SIChTdGF0dXMpKSB7DQo+IA0KPiAtICAgIGlmICgoU3Rh dHVzID09IEVGSV9CVUZGRVJfVE9PX1NNQUxMKSB8fCAoU3RhdHVzID09DQo+IEVGSV9PVVRfT0Zf UkVTT1VSQ0VTKSkgew0KPiANCj4gLSAgICAgIGlmIChOdW1iZXJPZlBhZ2VzICE9IE5VTEwpIHsN Cj4gDQo+IC0gICAgICAgICpOdW1iZXJPZlBhZ2VzID0gSW1hZ2UtPk51bWJlck9mUGFnZXM7DQo+ IA0KPiAtICAgICAgfQ0KPiANCj4gLSAgICB9DQo+IA0KPiAtDQo+IA0KPiAgICAgIGdvdG8gRG9u ZTsNCj4gDQo+ICAgIH0NCj4gDQo+IA0KPiANCj4gLSAgaWYgKE51bWJlck9mUGFnZXMgIT0gTlVM TCkgew0KPiANCj4gLSAgICAqTnVtYmVyT2ZQYWdlcyA9IEltYWdlLT5OdW1iZXJPZlBhZ2VzOw0K PiANCj4gLSAgfQ0KPiANCj4gLQ0KPiANCj4gICAgLy8NCj4gDQo+ICAgIC8vIFJlZ2lzdGVyIHRo ZSBpbWFnZSBpbiB0aGUgRGVidWcgSW1hZ2UgSW5mbyBUYWJsZSBpZiB0aGUgYXR0cmlidXRlIGlz IHNldA0KPiANCj4gICAgLy8NCj4gDQo+IEBAIC0xNDczLDcgKzE0MTMsNyBAQCBDb3JlTG9hZElt YWdlQ29tbW9uICgNCj4gICAgLy8NCj4gDQo+ICAgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsN Cj4gDQo+ICAgICAgaWYgKEltYWdlICE9IE5VTEwpIHsNCj4gDQo+IC0gICAgICBDb3JlVW5sb2Fk QW5kQ2xvc2VJbWFnZSAoSW1hZ2UsIChCT09MRUFOKShEc3RCdWZmZXIgPT0gMCkpOw0KPiANCj4g KyAgICAgIENvcmVVbmxvYWRBbmRDbG9zZUltYWdlIChJbWFnZSwgVFJVRSk7DQo+IA0KPiAgICAg ICAgSW1hZ2UgPSBOVUxMOw0KPiANCj4gICAgICB9DQo+IA0KPiAgICB9IGVsc2UgaWYgKEVGSV9F UlJPUiAoU2VjdXJpdHlTdGF0dXMpKSB7DQo+IA0KPiBAQCAtMTU0Niw4ICsxNDg2LDYgQEAgQ29y ZUxvYWRJbWFnZSAoDQo+ICAgICAgICAgICAgICAgRmlsZVBhdGgsDQo+IA0KPiAgICAgICAgICAg ICAgIFNvdXJjZUJ1ZmZlciwNCj4gDQo+ICAgICAgICAgICAgICAgU291cmNlU2l6ZSwNCj4gDQo+ IC0gICAgICAgICAgICAgKEVGSV9QSFlTSUNBTF9BRERSRVNTKShVSU5UTilOVUxMLA0KPiANCj4g LSAgICAgICAgICAgICBOVUxMLA0KPiANCj4gICAgICAgICAgICAgICBJbWFnZUhhbmRsZSwNCj4g DQo+ICAgICAgICAgICAgICAgRUZJX0xPQURfUEVfSU1BR0VfQVRUUklCVVRFX1JVTlRJTUVfUkVH SVNUUkFUSU9OIHwNCj4gRUZJX0xPQURfUEVfSU1BR0VfQVRUUklCVVRFX0RFQlVHX0lNQUdFX0lO Rk9fVEFCTEVfUkVHSVNUUkFUSU9ODQo+IA0KPiAgICAgICAgICAgICAgICk7DQo+IA0KPiAtLQ0K PiAyLjM5LjINCg0K