From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by mx.groups.io with SMTP id smtpd.web10.27485.1610328251672666521 for ; Sun, 10 Jan 2021 17:24:11 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=wSC+75Bt; spf=pass (domain: intel.com, ip: 192.55.52.88, mailfrom: zhichao.gao@intel.com) IronPort-SDR: +wXxELfHz0qJjGktr+ld6nFVQ9iVEr5gE89aCXepTyHIXWXkFYIAr6A6INNfGGxVJbLjgQ+u9b fXRos1UBciBA== X-IronPort-AV: E=McAfee;i="6000,8403,9860"; a="196372353" X-IronPort-AV: E=Sophos;i="5.79,337,1602572400"; d="scan'208";a="196372353" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 10 Jan 2021 17:24:09 -0800 IronPort-SDR: yRQKjDgWOZDFObBG58J/eOa3Lo3dCxhUKoCPjc3BGyVCm0y3J74fifWx4oKVIirV0TIPvDSyik FkhH98X1fPnA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.79,337,1602572400"; d="scan'208";a="362968152" Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85]) by orsmga002.jf.intel.com with ESMTP; 10 Jan 2021 17:24:09 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 10 Jan 2021 17:24:08 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Sun, 10 Jan 2021 17:24:06 -0800 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5 via Frontend Transport; Sun, 10 Jan 2021 17:24:06 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.174) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.1713.5; Sun, 10 Jan 2021 17:24:05 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AX5HyV3POF2qiXbbyUOQiFtdcuaYAiOZVeS5myOEumlPhpaZJLVXSY2jtoZ5NhFufysp9RJim6zreJI87yoWoFCUe/Q7SImnwBH9SZMhIY3CBSh+RLAXG7EkNMnAcMuCZ3lSUED8kPEp61igdHVNccebh31jUhuU3XA4e7jQqDGfydvEwMjl4usJCncUgmWfhwswGziNlblJiBd/BZahUKp4pqJ+jPbx9dZdwN/5aaKo5FIhW4vn0Xm78jsrAzrYCwKGeOOqGq/HasxJliqA878W1YQvlDQQP2UD5lWTi/K9EA8LnmYgj9KnXC3zoKM3UWqMBtY1AXJ1DhlIio0Wcw== 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=C3eCyjVMyZdL0tqr6/BxPmYTBkL05NAuzecfr1iui9s=; b=WGnE7uyZAse9TdKZ+l9fzv3bJOrEhdDcT8ad7NycBliF87V1ADBBHnwtd67VY3GdBLPyVoXKlo4AsnOH+0udY7Eodo+iAf/It3pVrhme6lUuorc5i3k8DffYAMSSHOC5iqZ+/iLrDEl+O9moXwXbOGHWac3UOLKVpM4vBa10IQCAKDXccpNaq0EXTlG63o8aQMZAci+wRpJcPpd3Ww7lf2ibSPt3p46N4JW/t2P6J+YDYRyV3FBqXwsa8mFqz8GKTlSyrmd09EhMmlQ9qPJdjUoJaWL7/nkBzm5OeVZp0R0B7ocnyDD4vJaRVIPK/yRRj1CXXRWbrgAnS7NyeGHEwQ== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C3eCyjVMyZdL0tqr6/BxPmYTBkL05NAuzecfr1iui9s=; b=wSC+75BtgrFzAXfSrRen8BX6pbVlYjoZLy2rHVQt8PJ5O98RCIyLNPixfoURZkmzJYDLHD9Ca+7UzQ3f4nB2aXSj94rZT3MC52Vc6ckYw80y66nJWvFq52t6Axlqden/SOL7YqUCZ//hBXb9LoFBMcnUSPbnK2HG8+DKAkbt/58= Received: from MWHPR11MB1647.namprd11.prod.outlook.com (2603:10b6:301:d::12) by MWHPR11MB1710.namprd11.prod.outlook.com (2603:10b6:300:26::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3742.6; Mon, 11 Jan 2021 01:24:04 +0000 Received: from MWHPR11MB1647.namprd11.prod.outlook.com ([fe80::c861:b9c1:b082:7c77]) by MWHPR11MB1647.namprd11.prod.outlook.com ([fe80::c861:b9c1:b082:7c77%8]) with mapi id 15.20.3742.012; Mon, 11 Jan 2021 01:24:04 +0000 From: "Gao, Zhichao" To: Laszlo Ersek , edk2-devel-groups-io CC: =?utf-8?B?UGhpbGlwcGUgTWF0aGlldS1EYXVkw6k=?= , "Ni, Ray" Subject: Re: [PATCH 1/8] ShellPkg/Comp: add file buffering Thread-Topic: [PATCH 1/8] ShellPkg/Comp: add file buffering Thread-Index: AQHW4rBPqYWh8919FUWz4yUgA7B7i6ohq2pQ Date: Mon, 11 Jan 2021 01:24:04 +0000 Message-ID: References: <20210104154235.31785-1-lersek@redhat.com> <20210104154235.31785-2-lersek@redhat.com> In-Reply-To: <20210104154235.31785-2-lersek@redhat.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 authentication-results: redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.198.147.213] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 89b862a6-0dcf-47c9-3357-08d8b5cf958a x-ms-traffictypediagnostic: MWHPR11MB1710: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8882; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9blfOpO7piMuEDp6nnVBtLAaxUcyKcFuCzhoaesNDfZ9Rr3wQdQAirSzKlTryzLGPytoSUbu34EO2EExTuEENCXwJEfl3UQvs3bKhz4v/CYleWpneLF8zIPm4s6uelW5nOAOheDFHdTfFlBg9o/NICsYuE4NesBRCwwisYxbeS5rQcnDkrYn1ECtu3iEsh0UzQ0LKw7xwWJHn71Gov7GsALvok5XpuPddYXXEVhvKh0k34uywtvezGU+8mDkqXoZ0AUH7J81R9FXOOT9fv4PzH+2HwYAND0aKcScV0yzS4+NXBaXdiUiWBAyfgajmkeoSHIqfQY53Y245eK9reSmezSRiz15vgXHeMSDsRZCIWJqNdgge/KhF/WewzXeiAj8sdPeMPZqlvoAdwWgAQ0vKC/FO2toJCXlIlN/MkjlvP8yXXllYu9BFSZ7gZ6YfZH+zKGHB+rFABdZqdLmtmAlkg== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR11MB1647.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(4636009)(346002)(376002)(396003)(366004)(39860400002)(136003)(54906003)(66556008)(6506007)(186003)(110136005)(53546011)(966005)(71200400001)(66946007)(8936002)(66446008)(478600001)(64756008)(66476007)(86362001)(76116006)(9686003)(5660300002)(52536014)(55016002)(19627235002)(107886003)(83380400001)(4326008)(8676002)(33656002)(2906002)(26005)(316002)(7696005);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: =?utf-8?B?bUhMNy9lQUExbnllRTVXRVR3ZkVoaHY5M3F5NFNvZXpSZXg2dHp2ZlJ3elho?= =?utf-8?B?RmJLMWd1RDVSMkJYbU5VWkJEQkVBUUZ1UHB2NTFhQ3cxZi9IQ1lBU1NwcDJM?= =?utf-8?B?Z3NCNGtFbFRjOEYvSWpHLzR4akppT21vckR4YklpTDdnK1cyTVFBRytBT2Fs?= =?utf-8?B?TUJzc2tkQlRPODRvRmV4aU5ZREMveUN0c0tvNWFaTWNXSXd0WGxwMGxTZjdW?= =?utf-8?B?OHhRaVVUSk0veVpWZjdlckxXdTBBTXFJSmVyYml5V09LUDJnMDBuN0Rzd2pp?= =?utf-8?B?WE05UWNjNHRQVUk5elI1bHd2Qjg5ajR1NVhGSmVYenlTZEFtZTNJSVh0Q055?= =?utf-8?B?bWNURmVvUUFZN1M0dklkUy9EUUZFLzRtQWQ0QmxHMEViYk1IVTVUUUtwQUxG?= =?utf-8?B?WXZ6R3ByNytoYWQ2ZW91aW5GcVdBckQ2YjJ3N1BBWU9iWjVBMndOWG02THdq?= =?utf-8?B?TE8xYXczOVRRUDhUYlFwbkZDanQ5cSs4c0dXdk9oaGxSTjFIMUl2djZucDNv?= =?utf-8?B?NEVzM281eDg0cnByOURJcElMZGcySnJ2MFYvTnYwSzVOYmF4WmRXVkRWdDVO?= =?utf-8?B?ajdnbnZGOCtRbWZUSEY3ZjJXSlVmckNvUmU3aEwvN0liTXJtVGprbHdUVGdZ?= =?utf-8?B?V0V6TjdhckgrNnMranlVNTFrdnVoVTJ3MXJTREFJUEF0N1pGMk1jdmFGYzNB?= =?utf-8?B?QjF0WmdsdVh0VG5LaEtxRk5vK1VRVEtWSWhqcS9DRTBVZkVLbkhTbE90Wno5?= =?utf-8?B?SnJNRm43ZmVVTUtNazNtb0ovK3JIOXBwb1hiUFExQlB6Z1R0QmRzcTRYR2dX?= =?utf-8?B?RG1iakVTWk42bzJxM0J5SjNlYzcrWkhsT3NEZFFEM3VERk9BRWRVY05SbW9E?= =?utf-8?B?YzV5cmZkUHJHOVFyOVZaNEVkUUdnaEwyVHJjOG1ScTN1MEpHT2I1SHZINnJV?= =?utf-8?B?bmF5MVNTKzZxanVnRmtiUzNEUVNkZ1B4ckx5bExNWnBlUnZrZjl1WUw4TjNN?= =?utf-8?B?T2tTd0NOcllZYXFTM0lYTWwvSXRON2h0eGtzTlpWRHhIcFBGaXBkU2NqOHZ5?= =?utf-8?B?djNTSlc3N3lIZTBiR2I3RE1SY1J0U1NmazZDUUxycy9OUVhIZXV2Z3A1aVhV?= =?utf-8?B?SWVpcnhMc21TSUZWRVN6c2Q5c1g1dnZ0bGRaU3o2a0xvaDY2ZlpCSXF3OWlH?= =?utf-8?B?UlZsV21PVXVKTDNoZUgxU3IxZXRnSlIvV0VlSFZSRmQvL3BCYXZRT3N0M0Mz?= =?utf-8?B?Y2hEQTVVR09ndk5pOUJsa1AyeW1pZnJwWm5tR2dtWW1ybC8wNU1XbHpYR1RX?= =?utf-8?Q?xAef+oKvIGQI4=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR11MB1647.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 89b862a6-0dcf-47c9-3357-08d8b5cf958a X-MS-Exchange-CrossTenant-originalarrivaltime: 11 Jan 2021 01:24:04.3645 (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: scHygj5oJS7sMqUVXXNI10A7g/jIQAYC+QnHZF6YpIqMBOQ3OKPkXbzwi8d+NVSrL1LUh4czOxI8M7y6dok7AQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR11MB1710 Return-Path: zhichao.gao@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 UmV2aWV3ZWQtYnk6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQoNClRoYW5r cywNClpoaWNoYW8NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBMYXN6 bG8gRXJzZWsgPGxlcnNla0ByZWRoYXQuY29tPg0KPiBTZW50OiBNb25kYXksIEphbnVhcnkgNCwg MjAyMSAxMTo0MiBQTQ0KPiBUbzogZWRrMi1kZXZlbC1ncm91cHMtaW8gPGRldmVsQGVkazIuZ3Jv dXBzLmlvPg0KPiBDYzogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kgPHBoaWxtZEByZWRoYXQuY29t PjsgTmksIFJheSA8cmF5Lm5pQGludGVsLmNvbT47DQo+IEdhbywgWmhpY2hhbyA8emhpY2hhby5n YW9AaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBbUEFUQ0ggMS84XSBTaGVsbFBrZy9Db21wOiBhZGQg ZmlsZSBidWZmZXJpbmcNCj4gDQo+IFRoZSBDT01QIHNoZWxsIGNvbW1hbmQgY29tcGFyZXMgdHdv IGZpbGVzIGJ5dGUgZm9yIGJ5dGUuIEluIG9yZGVyIHRvIHJldHJpZXZlDQo+IHRoZSBieXRlcyB0 byBjb21wYXJlLCBpdCBjdXJyZW50bHkgaW52b2tlcw0KPiBnRWZpU2hlbGxQcm90b2NvbC0+UmVh ZEZpbGUoKSBvbiBib3RoIGZpbGVzLCB1c2luZyBhIHNpbmdsZS1ieXRlIGJ1ZmZlcg0KPiBldmVy eSB0aW1lLiBUaGlzIGlzIHZlcnkgaW5lZmZpY2llbnQ7IHRoZSB1bmRlcmx5aW5nDQo+IEVGSV9G SUxFX1BST1RPQ09MLlJlYWQoKSBmdW5jdGlvbiBtYXkgYmUgY29zdGx5Lg0KPiANCj4gUmVhZCBi b3RoIGZpbGUgb3BlcmFuZHMgaW4gY2h1bmtzIG9mICJQY2RTaGVsbEZpbGVPcGVyYXRpb25TaXpl IiBieXRlcy4NCj4gRHJhdyBieXRlcyBmb3IgY29tcGFyaXNvbiBmcm9tIHRoZSBpbnRlcm5hbCBy ZWFkLWFoZWFkIGJ1ZmZlcnMuDQo+IA0KPiBTb21lIGFkLWhvYyBtZWFzdXJlbWVudHMgb24gbXkg bGFwdG9wLCB1c2luZyBPVk1GLCBhbmQgdGhlIDRLQiBkZWZhdWx0IG9mDQo+ICJQY2RTaGVsbEZp bGVPcGVyYXRpb25TaXplIjoNCj4gDQo+IC0gV2hlbiBjb21wYXJpbmcgdHdvIGlkZW50aWNhbCAx TUIgZmlsZXMgdGhhdCBhcmUgc2VydmVkIGJ5IEVuaGFuY2VkRmF0RHhlDQo+ICAgb24gdG9wIG9m IFZpcnRpb1Njc2lEeGUsIHRoaXMgcGF0Y2ggYnJpbmdzIG5vIG5vdGljZWFibGUgaW1wcm92ZW1l bnQ7DQo+ICAgdGhlIGNvbXBhcmlzb24gY29tcGxldGVzIGluIDwxcyBib3RoIGJlZm9yZSBhbmQg YWZ0ZXIuDQo+IA0KPiAtIFdoZW4gY29tcGFyaW5nIHR3byBpZGVudGljYWwgMU1CIGZpbGVzIHNl cnZlZCBieSBWaXJ0aW9Gc0R4ZSwgdGhlDQo+ICAgY29tcGFyaXNvbiB0aW1lIGltcHJvdmVzIGZy b20gMiBtaW51dGVzIDI1IHNlY29uZHMgdG8gPDFzLg0KPiANCj4gQ2M6IFBoaWxpcHBlIE1hdGhp ZXUtRGF1ZMOpIDxwaGlsbWRAcmVkaGF0LmNvbT4NCj4gQ2M6IFJheSBOaSA8cmF5Lm5pQGludGVs LmNvbT4NCj4gQ2M6IFpoaWNoYW8gR2FvIDx6aGljaGFvLmdhb0BpbnRlbC5jb20+DQo+IFJlZjog aHR0cHM6Ly9idWd6aWxsYS50aWFub2NvcmUub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTIzDQo+IFNp Z25lZC1vZmYtYnk6IExhc3psbyBFcnNlayA8bGVyc2VrQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiAN Cj4gU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9VZWZpU2hlbGxE ZWJ1ZzFDb21tYW5kc0xpYi5pbg0KPiBmIHwgICAxICsNCj4gIFNoZWxsUGtnL0xpYnJhcnkvVWVm aVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvQ29tcC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTI3DQo+ICsrKysrKysrKysrKysrKysrKystDQo+ICAyIGZpbGVzIGNoYW5nZWQsIDEyNSBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdA0KPiBhL1NoZWxsUGtn L0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIvVWVmaVNoZWxsRGVidWcxQ29tbWFu ZHNMaWINCj4gLmluZg0KPiBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFu ZHNMaWIvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWINCj4gLmluZg0KPiBpbmRleCBlZDk0NDc3 YTA2NDIuLjc0YWQ1ZmFjZjZiMSAxMDA2NDQNCj4gLS0tDQo+IGEvU2hlbGxQa2cvTGlicmFyeS9V ZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYg0KPiAu aW5mDQo+ICsrKyBiL1NoZWxsUGtnL0xpYnJhcnkvVWVmaVNoZWxsRGVidWcxQ29tbWFuZHNMaWIv VWVmaVNoZWxsRGVidWcxQ29tbWFuZA0KPiArKysgc0xpYi5pbmYNCj4gQEAgLTExMyw2ICsxMTMs NyBAQCBbTGlicmFyeUNsYXNzZXNdDQo+ICAgIEJjZmdDb21tYW5kTGliDQo+IA0KPiAgW1BjZF0N Cj4gKyAgZ0VmaVNoZWxsUGtnVG9rZW5TcGFjZUd1aWQuUGNkU2hlbGxGaWxlT3BlcmF0aW9uU2l6 ZSAgICAgICAgIyMgQ09OU1VNRVMNCj4gICAgZ0VmaVNoZWxsUGtnVG9rZW5TcGFjZUd1aWQuUGNk U2hlbGxQcm9maWxlTWFzayAgICAgICAgICAgICAgIyMgQ09OU1VNRVMNCj4gDQo+ICBbUHJvdG9j b2xzXQ0KPiBkaWZmIC0tZ2l0IGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21t YW5kc0xpYi9Db21wLmMNCj4gYi9TaGVsbFBrZy9MaWJyYXJ5L1VlZmlTaGVsbERlYnVnMUNvbW1h bmRzTGliL0NvbXAuYw0KPiBpbmRleCAwYTVkMTNmMDFjN2IuLjBkZjBiMzE0OTM2OSAxMDA2NDQN Cj4gLS0tIGEvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9Db21w LmMNCj4gKysrIGIvU2hlbGxQa2cvTGlicmFyeS9VZWZpU2hlbGxEZWJ1ZzFDb21tYW5kc0xpYi9D b21wLmMNCj4gQEAgLTIxLDYgKzIxLDE2IEBAIHR5cGVkZWYgZW51bSB7DQo+ICAgIEluUHJldkRp ZmZQb2ludA0KPiAgfSBSRUFEX1NUQVRVUzsNCj4gDQo+ICsvLw0KPiArLy8gQnVmZmVyIHR5cGUs IGZvciByZWFkaW5nIGJvdGggZmlsZSBvcGVyYW5kcyBpbiBjaHVua3MuDQo+ICsvLw0KPiArdHlw ZWRlZiBzdHJ1Y3Qgew0KPiArICBVSU5UOCAqRGF0YTsgICAgIC8vIGR5bmFtaWNhbGx5IGFsbG9j YXRlZCBidWZmZXINCj4gKyAgVUlOVE4gQWxsb2NhdGVkOyAvLyB0aGUgYWxsb2NhdGVkIHNpemUg b2YgRGF0YQ0KPiArICBVSU5UTiBOZXh0OyAgICAgIC8vIG5leHQgcG9zaXRpb24gaW4gRGF0YSB0 byBmZXRjaCBhIGJ5dGUgYXQNCj4gKyAgVUlOVE4gTGVmdDsgICAgICAvLyBudW1iZXIgb2YgYnl0 ZXMgbGVmdCBpbiBEYXRhIGZvciBmZXRjaGluZyBhdCBOZXh0DQo+ICt9IEZJTEVfQlVGRkVSOw0K PiArDQo+ICAvKioNCj4gICAgRnVuY3Rpb24gdG8gcHJpbnQgZGlmZmVybnQgcG9pbnQgZGF0YS4N Cj4gDQo+IEBAIC03Niw2ICs4NiwxMDYgQEAgUHJpbnREaWZmZXJlbnRQb2ludCgNCj4gICAgU2hl bGxQcmludEV4ICgtMSwgLTEsIEwiKlxyXG4iKTsNCj4gIH0NCj4gDQo+ICsvKioNCj4gKyAgSW5p dGlhbGl6ZSBhIEZJTEVfQlVGRkVSLg0KPiArDQo+ICsgIEBwYXJhbVtvdXRdIEZpbGVCdWZmZXIg IFRoZSBGSUxFX0JVRkZFUiB0byBpbml0aWFsaXplLiBPbiByZXR1cm4sIHRoZSBjYWxsZXINCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgcmVzcG9uc2libGUgZm9yIGNoZWNraW5nIEZp bGVCdWZmZXItPkRhdGE6IGlmDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVCdWZm ZXItPkRhdGEgaXMgTlVMTCBvbiBvdXRwdXQsIHRoZW4gbWVtb3J5DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIGFsbG9jYXRpb24gZmFpbGVkLg0KPiArKiovDQo+ICtTVEFUSUMNCj4gK1ZP SUQNCj4gK0ZpbGVCdWZmZXJJbml0ICgNCj4gKyAgT1VUIEZJTEVfQlVGRkVSICpGaWxlQnVmZmVy DQo+ICsgICkNCj4gK3sNCj4gKyAgRmlsZUJ1ZmZlci0+QWxsb2NhdGVkID0gUGNkR2V0MzIgKFBj ZFNoZWxsRmlsZU9wZXJhdGlvblNpemUpOw0KPiArICBGaWxlQnVmZmVyLT5EYXRhICAgICAgPSBB bGxvY2F0ZVBvb2wgKEZpbGVCdWZmZXItPkFsbG9jYXRlZCk7DQo+ICsgIEZpbGVCdWZmZXItPkxl ZnQgICAgICA9IDA7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICBVbmluaXRpYWxpemUgYSBGSUxF X0JVRkZFUi4NCj4gKw0KPiArICBAcGFyYW1baW4sb3V0XSBGaWxlQnVmZmVyICBUaGUgRklMRV9C VUZGRVIgdG8gdW5pbml0aWFsaXplLiBUaGUgY2FsbGVyIGlzDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJlc3BvbnNpYmxlIGZvciBtYWtpbmcgc3VyZSBGaWxlQnVmZmVyIHdhcyBm aXJzdA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXplZCB3aXRoIEZp bGVCdWZmZXJJbml0KCksIHN1Y2Nlc3NmdWxseSBvcg0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1bnN1Y2Nlc3NmdWxseS4NCj4gKyoqLw0KPiArU1RBVElDDQo+ICtWT0lEDQo+ICtG aWxlQnVmZmVyVW5pbml0ICgNCj4gKyAgSU4gT1VUIEZJTEVfQlVGRkVSICpGaWxlQnVmZmVyDQo+ ICsgICkNCj4gK3sNCj4gKyAgU0hFTExfRlJFRV9OT05fTlVMTCAoRmlsZUJ1ZmZlci0+RGF0YSk7 IH0NCj4gKw0KPiArLyoqDQo+ICsgIFJlYWQgYSBieXRlIGZyb20gYSBTSEVMTF9GSUxFX0hBTkRM RSwgYnVmZmVyZWQgd2l0aCBhIEZJTEVfQlVGRkVSLg0KPiArDQo+ICsgIEBwYXJhbVtpbl0gRmls ZUhhbmRsZSAgICAgIFRoZSBTSEVMTF9GSUxFX0hBTkRMRSB0byByZXBsZW5pc2ggRmlsZUJ1ZmZl cg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tLCBpZiBuZWVkZWQuDQo+ICsN Cj4gKyAgQHBhcmFtW2luLG91dF0gRmlsZUJ1ZmZlciAgVGhlIEZJTEVfQlVGRkVSIHRvIHJlYWQg YSBieXRlIGZyb20uIElmIEZpbGVCdWZmZXINCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaXMgZW1wdHkgb24gZW50cnksIHRoZW4gRmlsZUJ1ZmZlciBpcyByZWZpbGxlZA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmcm9tIEZpbGVIYW5kbGUsIGJlZm9yZSBvdXRwdXR0 aW5nIGEgYnl0ZSBmcm9tDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVCdWZm ZXIgdG8gQnl0ZS4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3INCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZW5zdXJpbmcgdGhhdCBGaWxlQnVmZmVyIHdhcyBzdWNjZXNzZnVs bHkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5pdGlhbGl6ZWQgd2l0aCBGaWxl QnVmZmVySW5pdCgpLg0KPiArDQo+ICsgIEBwYXJhbVtvdXRdIEJ5dGVzUmVhZCAgICAgIE9uIHN1 Y2Nlc3NmdWwgcmV0dXJuLCBCeXRlc1JlYWQgaXMgc2V0IHRvIDEgaWYgdGhlDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5leHQgYnl0ZSBmcm9tIEZpbGVCdWZmZXIgaGFzIGJlZW4g c3RvcmVkIHRvIEJ5dGUuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE9uIHN1Y2Nl c3NmdWwgcmV0dXJuLCBCeXRlc1JlYWQgaXMgc2V0IHRvIDAgaWYNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgRmlsZUJ1ZmZlciBpcyBlbXB0eSwgYW5kIEZpbGVIYW5kbGUgaXMgYXQg RU9GLg0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGVuIGFuIGVycm9yIGlzIHJl dHVybmVkLCBCeXRlc1JlYWQgaXMgbm90IHNldC4NCj4gKw0KPiArICBAcGFyYW1bb3V0XSBCeXRl ICAgICAgICAgICBPbiBvdXRwdXQsIHRoZSBuZXh0IGJ5dGUgZnJvbSBGaWxlQnVmZmVyLiBPbmx5 IHNldA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYSkgRUZJX1NVQ0NFU1Mg aXMgcmV0dXJuZWQgYW5kIChiKSBCeXRlc1JlYWQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaXMgc2V0IHRvIDEgb24gb3V0cHV0Lg0KPiArDQo+ICsgIEByZXR2YWwgRUZJX1NVQ0NF U1MgIEJ5dGVzUmVhZCBoYXMgYmVlbiBzZXQgdG8gMCBvciAxLiBJbiB0aGUgbGF0dGVyIGNhc2Us DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIEJ5dGUgaGFzIGJlZW4gc2V0IGFzIHdlbGwuDQo+ ICsNCj4gKyAgQHJldHVybiAgICAgICAgICAgICAgRXJyb3IgY29kZXMgcHJvcGFnYXRlZCBmcm9t DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGdFZmlTaGVsbFByb3RvY29sLT5SZWFkRmlsZSgp Lg0KPiArKiovDQo+ICtTVEFUSUMNCj4gK0VGSV9TVEFUVVMNCj4gK0ZpbGVCdWZmZXJSZWFkQnl0 ZSAoDQo+ICsgIElOICAgICBTSEVMTF9GSUxFX0hBTkRMRSBGaWxlSGFuZGxlLA0KPiArICBJTiBP VVQgRklMRV9CVUZGRVIgICAgICAgKkZpbGVCdWZmZXIsDQo+ICsgICAgIE9VVCBVSU5UTiAgICAg ICAgICAgICAqQnl0ZXNSZWFkLA0KPiArICAgICBPVVQgVUlOVDggICAgICAgICAgICAgKkJ5dGUN Cj4gKyAgKQ0KPiArew0KPiArICBVSU5UTiAgICAgIFJlYWRTaXplOw0KPiArICBFRklfU1RBVFVT IFN0YXR1czsNCj4gKw0KPiArICBpZiAoRmlsZUJ1ZmZlci0+TGVmdCA9PSAwKSB7DQo+ICsgICAg UmVhZFNpemUgPSBGaWxlQnVmZmVyLT5BbGxvY2F0ZWQ7DQo+ICsgICAgU3RhdHVzID0gZ0VmaVNo ZWxsUHJvdG9jb2wtPlJlYWRGaWxlIChGaWxlSGFuZGxlLCAmUmVhZFNpemUsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgRmlsZUJ1ZmZlci0+RGF0YSk7DQo+ICsgICAgaWYg KEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KPiArICAgICAgcmV0dXJuIFN0YXR1czsNCj4gKyAgICB9 DQo+ICsgICAgaWYgKFJlYWRTaXplID09IDApIHsNCj4gKyAgICAgICpCeXRlc1JlYWQgPSAwOw0K PiArICAgICAgcmV0dXJuIEVGSV9TVUNDRVNTOw0KPiArICAgIH0NCj4gKyAgICBGaWxlQnVmZmVy LT5OZXh0ID0gMDsNCj4gKyAgICBGaWxlQnVmZmVyLT5MZWZ0ID0gUmVhZFNpemU7DQo+ICsgIH0N Cj4gKw0KPiArICAqQnl0ZXNSZWFkID0gMTsNCj4gKyAgKkJ5dGUgICAgICA9IEZpbGVCdWZmZXIt PkRhdGFbRmlsZUJ1ZmZlci0+TmV4dF07DQo+ICsNCj4gKyAgRmlsZUJ1ZmZlci0+TmV4dCsrOw0K PiArICBGaWxlQnVmZmVyLT5MZWZ0LS07DQo+ICsgIHJldHVybiBFRklfU1VDQ0VTUzsNCj4gK30N Cj4gKw0KPiAgLyoqDQo+ICAgIEZ1bmN0aW9uIGZvciAnY29tcCcgY29tbWFuZC4NCj4gDQo+IEBA IC0xMDcsNiArMjE3LDggQEAgU2hlbGxDb21tYW5kUnVuQ29tcCAoDQo+ICAgIFVJTlQ4ICAgICAg ICAgICAgICAgT25lQnl0ZUZyb21GaWxlMjsNCj4gICAgVUlOVDggICAgICAgICAgICAgICAqRGF0 YUZyb21GaWxlMTsNCj4gICAgVUlOVDggICAgICAgICAgICAgICAqRGF0YUZyb21GaWxlMjsNCj4g KyAgRklMRV9CVUZGRVIgICAgICAgICBGaWxlQnVmZmVyMTsNCj4gKyAgRklMRV9CVUZGRVIgICAg ICAgICBGaWxlQnVmZmVyMjsNCj4gICAgVUlOVE4gICAgICAgICAgICAgICBJbnNlcnRQb3NpdGlv bjE7DQo+ICAgIFVJTlROICAgICAgICAgICAgICAgSW5zZXJ0UG9zaXRpb24yOw0KPiAgICBVSU5U TiAgICAgICAgICAgICAgIERhdGFTaXplRnJvbUZpbGUxOw0KPiBAQCAtMjM0LDEwICszNDYsMTUg QEAgU2hlbGxDb21tYW5kUnVuQ29tcCAoDQo+ICAgICAgICBpZiAoU2hlbGxTdGF0dXMgPT0gU0hF TExfU1VDQ0VTUykgew0KPiAgICAgICAgICBEYXRhRnJvbUZpbGUxID0gQWxsb2NhdGVaZXJvUG9v bCAoKFVJTlROKURpZmZlcmVudEJ5dGVzKTsNCj4gICAgICAgICAgRGF0YUZyb21GaWxlMiA9IEFs bG9jYXRlWmVyb1Bvb2wgKChVSU5UTilEaWZmZXJlbnRCeXRlcyk7DQo+IC0gICAgICAgIGlmIChE YXRhRnJvbUZpbGUxID09IE5VTEwgfHwgRGF0YUZyb21GaWxlMiA9PSBOVUxMKSB7DQo+ICsgICAg ICAgIEZpbGVCdWZmZXJJbml0ICgmRmlsZUJ1ZmZlcjEpOw0KPiArICAgICAgICBGaWxlQnVmZmVy SW5pdCAoJkZpbGVCdWZmZXIyKTsNCj4gKyAgICAgICAgaWYgKERhdGFGcm9tRmlsZTEgPT0gTlVM TCB8fCBEYXRhRnJvbUZpbGUyID09IE5VTEwgfHwNCj4gKyAgICAgICAgICAgIEZpbGVCdWZmZXIx LkRhdGEgPT0gTlVMTCB8fCBGaWxlQnVmZmVyMi5EYXRhID09IE5VTEwpIHsNCj4gICAgICAgICAg ICBTaGVsbFN0YXR1cyA9IFNIRUxMX09VVF9PRl9SRVNPVVJDRVM7DQo+ICAgICAgICAgICAgU0hF TExfRlJFRV9OT05fTlVMTCAoRGF0YUZyb21GaWxlMSk7DQo+ICAgICAgICAgICAgU0hFTExfRlJF RV9OT05fTlVMTCAoRGF0YUZyb21GaWxlMik7DQo+ICsgICAgICAgICAgRmlsZUJ1ZmZlclVuaW5p dCAoJkZpbGVCdWZmZXIxKTsNCj4gKyAgICAgICAgICBGaWxlQnVmZmVyVW5pbml0ICgmRmlsZUJ1 ZmZlcjIpOw0KPiAgICAgICAgICB9DQo+ICAgICAgICB9DQo+IA0KPiBAQCAtMjQ3LDkgKzM2NCwx MSBAQCBTaGVsbENvbW1hbmRSdW5Db21wICgNCj4gICAgICAgICAgICBEYXRhU2l6ZUZyb21GaWxl MiA9IDE7DQo+ICAgICAgICAgICAgT25lQnl0ZUZyb21GaWxlMSA9IDA7DQo+ICAgICAgICAgICAg T25lQnl0ZUZyb21GaWxlMiA9IDA7DQo+IC0gICAgICAgICAgU3RhdHVzID0gZ0VmaVNoZWxsUHJv dG9jb2wtPlJlYWRGaWxlIChGaWxlSGFuZGxlMSwgJkRhdGFTaXplRnJvbUZpbGUxLA0KPiAmT25l Qnl0ZUZyb21GaWxlMSk7DQo+ICsgICAgICAgICAgU3RhdHVzID0gRmlsZUJ1ZmZlclJlYWRCeXRl IChGaWxlSGFuZGxlMSwgJkZpbGVCdWZmZXIxLA0KPiArICAgICAgICAgICAgICAgICAgICAgJkRh dGFTaXplRnJvbUZpbGUxLCAmT25lQnl0ZUZyb21GaWxlMSk7DQo+ICAgICAgICAgICAgQVNTRVJU X0VGSV9FUlJPUiAoU3RhdHVzKTsNCj4gLSAgICAgICAgICBTdGF0dXMgPSBnRWZpU2hlbGxQcm90 b2NvbC0+UmVhZEZpbGUgKEZpbGVIYW5kbGUyLCAmRGF0YVNpemVGcm9tRmlsZTIsDQo+ICZPbmVC eXRlRnJvbUZpbGUyKTsNCj4gKyAgICAgICAgICBTdGF0dXMgPSBGaWxlQnVmZmVyUmVhZEJ5dGUg KEZpbGVIYW5kbGUyLCAmRmlsZUJ1ZmZlcjIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAmRGF0 YVNpemVGcm9tRmlsZTIsICZPbmVCeXRlRnJvbUZpbGUyKTsNCj4gICAgICAgICAgICBBU1NFUlRf RUZJX0VSUk9SIChTdGF0dXMpOw0KPiANCj4gICAgICAgICAgICBUZW1wQWRkcmVzcysrOw0KPiBA QCAtMzQ2LDYgKzQ2NSw4IEBAIFNoZWxsQ29tbWFuZFJ1bkNvbXAgKA0KPiANCj4gICAgICAgICAg U0hFTExfRlJFRV9OT05fTlVMTCAoRGF0YUZyb21GaWxlMSk7DQo+ICAgICAgICAgIFNIRUxMX0ZS RUVfTk9OX05VTEwgKERhdGFGcm9tRmlsZTIpOw0KPiArICAgICAgICBGaWxlQnVmZmVyVW5pbml0 ICgmRmlsZUJ1ZmZlcjEpOw0KPiArICAgICAgICBGaWxlQnVmZmVyVW5pbml0ICgmRmlsZUJ1ZmZl cjIpOw0KPiANCj4gICAgICAgICAgaWYgKERpZmZQb2ludE51bWJlciA9PSAwKSB7DQo+ICAgICAg ICAgICAgU2hlbGxQcmludEhpaUV4KC0xLCAtMSwgTlVMTCwgU1RSSU5HX1RPS0VOIChTVFJfQ09N UF9GT09URVJfUEFTUyksDQo+IGdTaGVsbERlYnVnMUhpaUhhbmRsZSk7DQo+IC0tDQo+IDIuMTku MS4zLmczMDI0N2FhNWQyMDENCj4gDQoNCg==