From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A91A4C28CF5 for ; Wed, 26 Jan 2022 18:30:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234175AbiAZSaw (ORCPT ); Wed, 26 Jan 2022 13:30:52 -0500 Received: from rtits2.realtek.com ([211.75.126.72]:43349 "EHLO rtits2.realtek.com.tw" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231779AbiAZSaw (ORCPT ); Wed, 26 Jan 2022 13:30:52 -0500 Authenticated-By: X-SpamFilter-By: ArmorX SpamTrap 5.73 with qID 20QIUmCeA019161, This message is accepted by code: ctloc85258 Received: from mail.realtek.com (rtexh36505.realtek.com.tw[172.21.6.25]) by rtits2.realtek.com.tw (8.15.2/2.71/5.88) with ESMTPS id 20QIUmCeA019161 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT); Thu, 27 Jan 2022 02:30:48 +0800 Received: from RTEXMBS01.realtek.com.tw (172.21.6.94) by RTEXH36505.realtek.com.tw (172.21.6.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.17; Thu, 27 Jan 2022 02:30:48 +0800 Received: from RTEXMBS04.realtek.com.tw (172.21.6.97) by RTEXMBS01.realtek.com.tw (172.21.6.94) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 27 Jan 2022 02:30:47 +0800 Received: from RTEXMBS04.realtek.com.tw ([fe80::35e4:d9d1:102d:605e]) by RTEXMBS04.realtek.com.tw ([fe80::35e4:d9d1:102d:605e%5]) with mapi id 15.01.2308.020; Thu, 27 Jan 2022 02:30:47 +0800 From: Hau To: Heiner Kallweit , "netdev@vger.kernel.org" CC: nic_swsd , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH net-next 1/1] r8169: enable RTL8125 ASPM L1.2 Thread-Topic: [PATCH net-next 1/1] r8169: enable RTL8125 ASPM L1.2 Thread-Index: AQHYEU71utwpaLacm0G/vN72YItAmaxzwzyAgAF/8qD//4piAIAAlGzg//+f/4CAAJ6RAA== Date: Wed, 26 Jan 2022 18:30:47 +0000 Message-ID: References: <20220124181937.6331-1-hau@realtek.com> <5ec25f20-8acf-544d-30f6-f0eeecd9b2f1@gmail.com> <439ba7073446410da75509a5add95e03@realtek.com> <0a281169bb114b69a49f91be80bbdf45@realtek.com> In-Reply-To: Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [172.21.177.129] x-kse-serverinfo: RTEXMBS01.realtek.com.tw, 9 x-kse-attachmentfiltering-interceptor-info: no applicable attachment filtering rules found x-kse-antivirus-interceptor-info: scan successful x-kse-antivirus-info: =?utf-8?B?Q2xlYW4sIGJhc2VzOiAyMDIyLzEvMjYg5LiL5Y2IIDA0OjQ2OjAw?= x-kse-bulkmessagesfiltering-scan-result: protection disabled Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-KSE-ServerInfo: RTEXH36505.realtek.com.tw, 9 X-KSE-Attachment-Filter-Triggered-Rules: Clean X-KSE-Attachment-Filter-Triggered-Filters: Clean X-KSE-BulkMessagesFiltering-Scan-Result: protection disabled Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org PiANCj4gT24gMjYuMDEuMjAyMiAxNjowMywgSGF1IHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0t LS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogSGVpbmVyIEthbGx3ZWl0IFttYWls dG86aGthbGx3ZWl0MUBnbWFpbC5jb21dDQo+ID4+IFNlbnQ6IFdlZG5lc2RheSwgSmFudWFyeSAy NiwgMjAyMiA5OjQ3IFBNDQo+ID4+IFRvOiBIYXUgPGhhdUByZWFsdGVrLmNvbT47IG5ldGRldkB2 Z2VyLmtlcm5lbC5vcmcNCj4gPj4gQ2M6IG5pY19zd3NkIDxuaWNfc3dzZEByZWFsdGVrLmNvbT47 IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcNCj4gPj4gU3ViamVjdDogUmU6IFtQQVRDSCBu ZXQtbmV4dCAxLzFdIHI4MTY5OiBlbmFibGUgUlRMODEyNSBBU1BNIEwxLjINCj4gPj4NCj4gPj4g T24gMjYuMDEuMjAyMiAxNDowMCwgSGF1IHdyb3RlOg0KPiA+Pj4+IE9uIDI0LjAxLjIwMjIgMTk6 MTksIENodW5oYW8gTGluIHdyb3RlOg0KPiA+Pj4+PiBUaGlzIHBhdGNoIHdpbGwgZW5hYmxlIFJU TDgxMjUgQVNQTSBMMS4yIG9uIHRoZSBwbGF0Zm9ybXMgdGhhdA0KPiA+Pj4+PiBoYXZlIHRlc3Rl ZCBSVEw4MTI1IHdpdGggQVNQTSBMMS4yIGVuYWJsZWQuDQo+ID4+Pj4+IFJlZ2lzdGVyIG1hYyBv Y3AgMHhjMGIyIHdpbGwgaGVscCB0byBpZGVudGlmeSBpZiBSVEw4MTI1IGhhcyBiZWVuDQo+ID4+ Pj4+IHRlc3RlZCBvbiBMMS4yIGVuYWJsZWQgcGxhdGZvcm0uIElmIGl0IGlzLCB0aGlzIHJlZ2lz dGVyIHdpbGwgYmUgc2V0IHRvIDB4Zi4NCj4gPj4+Pj4gSWYgbm90LCB0aGlzIHJlZ2lzdGVyIHdp bGwgYmUgZGVmYXVsdCB2YWx1ZSAwLg0KPiA+Pj4+Pg0KPiA+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBD aHVuaGFvIExpbiA8aGF1QHJlYWx0ZWsuY29tPg0KPiA+Pj4+PiAtLS0NCj4gPj4+Pj4gIGRyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jIHwgOTkNCj4gPj4+Pj4gKysrKysr KysrKysrKysrKysrLS0tLS0NCj4gPj4+Pj4gIDEgZmlsZSBjaGFuZ2VkLCA3OSBpbnNlcnRpb25z KCspLCAyMCBkZWxldGlvbnMoLSkNCj4gPj4+Pj4NCj4gPj4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvbmV0L2V0aGVybmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jDQo+ID4+Pj4+IGIvZHJpdmVycy9u ZXQvZXRoZXJuZXQvcmVhbHRlay9yODE2OV9tYWluLmMNCj4gPj4+Pj4gaW5kZXggMTllMjYyMWUw NjQ1Li5iMWUwMTM5NjlkNGMgMTAwNjQ0DQo+ID4+Pj4+IC0tLSBhL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jDQo+ID4+Pj4+ICsrKyBiL2RyaXZlcnMvbmV0L2V0aGVy bmV0L3JlYWx0ZWsvcjgxNjlfbWFpbi5jDQo+ID4+Pj4+IEBAIC0yMjM4LDIxICsyMjM4LDYgQEAg c3RhdGljIHZvaWQgcnRsX3dvbF9lbmFibGVfcngoc3RydWN0DQo+ID4+Pj4gcnRsODE2OV9wcml2 YXRlICp0cCkNCj4gPj4+Pj4gIAkJCUFjY2VwdEJyb2FkY2FzdCB8IEFjY2VwdE11bHRpY2FzdCB8 DQo+ID4+Pj4gQWNjZXB0TXlQaHlzKTsgIH0NCj4gPj4+Pj4NCj4gPj4+Pj4gLXN0YXRpYyB2b2lk IHJ0bF9wcmVwYXJlX3Bvd2VyX2Rvd24oc3RydWN0IHJ0bDgxNjlfcHJpdmF0ZSAqdHApIC17DQo+ ID4+Pj4+IC0JaWYgKHRwLT5kYXNoX3R5cGUgIT0gUlRMX0RBU0hfTk9ORSkNCj4gPj4+Pj4gLQkJ cmV0dXJuOw0KPiA+Pj4+PiAtDQo+ID4+Pj4+IC0JaWYgKHRwLT5tYWNfdmVyc2lvbiA9PSBSVExf R0lHQV9NQUNfVkVSXzMyIHx8DQo+ID4+Pj4+IC0JICAgIHRwLT5tYWNfdmVyc2lvbiA9PSBSVExf R0lHQV9NQUNfVkVSXzMzKQ0KPiA+Pj4+PiAtCQlydGxfZXBoeV93cml0ZSh0cCwgMHgxOSwgMHhm ZjY0KTsNCj4gPj4+Pj4gLQ0KPiA+Pj4+PiAtCWlmIChkZXZpY2VfbWF5X3dha2V1cCh0cF90b19k ZXYodHApKSkgew0KPiA+Pj4+PiAtCQlwaHlfc3BlZWRfZG93bih0cC0+cGh5ZGV2LCBmYWxzZSk7 DQo+ID4+Pj4+IC0JCXJ0bF93b2xfZW5hYmxlX3J4KHRwKTsNCj4gPj4+Pj4gLQl9DQo+ID4+Pj4+ IC19DQo+ID4+Pj4+IC0NCj4gPj4+Pj4gIHN0YXRpYyB2b2lkIHJ0bF9pbml0X3J4Y2ZnKHN0cnVj dCBydGw4MTY5X3ByaXZhdGUgKnRwKSAgew0KPiA+Pj4+PiAgCXN3aXRjaCAodHAtPm1hY192ZXJz aW9uKSB7DQo+ID4+Pj4+IEBAIC0yNjUwLDYgKzI2MzUsMzQgQEAgc3RhdGljIHZvaWQNCj4gPj4+ Pj4gcnRsX3BjaWVfc3RhdGVfbDJsM19kaXNhYmxlKHN0cnVjdA0KPiA+Pj4+IHJ0bDgxNjlfcHJp dmF0ZSAqdHApDQo+ID4+Pj4+ICAJUlRMX1c4KHRwLCBDb25maWczLCBSVExfUjgodHAsIENvbmZp ZzMpICYgflJkeV90b19MMjMpOyAgfQ0KPiA+Pj4+Pg0KPiA+Pj4+PiArc3RhdGljIHZvaWQgcnRs X2Rpc2FibGVfZXhpdF9sMShzdHJ1Y3QgcnRsODE2OV9wcml2YXRlICp0cCkgew0KPiA+Pj4+PiAr CS8qIEJpdHMgY29udHJvbCB3aGljaCBldmVudHMgdHJpZ2dlciBBU1BNIEwxIGV4aXQ6DQo+ID4+ Pj4+ICsJICogQml0IDEyOiByeGR2DQo+ID4+Pj4+ICsJICogQml0IDExOiBsdHJfbXNnDQo+ID4+ Pj4+ICsJICogQml0IDEwOiB0eGRtYV9wb2xsDQo+ID4+Pj4+ICsJICogQml0ICA5OiB4YWRtDQo+ ID4+Pj4+ICsJICogQml0ICA4OiBwa3RhdmkNCj4gPj4+Pj4gKwkgKiBCaXQgIDc6IHR4cGxhDQo+ ID4+Pj4+ICsJICovDQo+ID4+Pj4+ICsJc3dpdGNoICh0cC0+bWFjX3ZlcnNpb24pIHsNCj4gPj4+ Pj4gKwljYXNlIFJUTF9HSUdBX01BQ19WRVJfMzQgLi4uIFJUTF9HSUdBX01BQ19WRVJfMzY6DQo+ ID4+Pj4+ICsJCXJ0bF9lcmlfY2xlYXJfYml0cyh0cCwgMHhkNCwgMHgxZjAwKTsNCj4gPj4+Pj4g KwkJYnJlYWs7DQo+ID4+Pj4+ICsJY2FzZSBSVExfR0lHQV9NQUNfVkVSXzM3IC4uLiBSVExfR0lH QV9NQUNfVkVSXzM4Og0KPiA+Pj4+PiArCQlydGxfZXJpX2NsZWFyX2JpdHModHAsIDB4ZDQsIDB4 MGMwMCk7DQo+ID4+Pj4+ICsJCWJyZWFrOw0KPiA+Pj4+PiArCWNhc2UgUlRMX0dJR0FfTUFDX1ZF Ul80MCAuLi4gUlRMX0dJR0FfTUFDX1ZFUl81MzoNCj4gPj4+Pj4gKwkJcnRsX2VyaV9jbGVhcl9i aXRzKHRwLCAweGQ0LCAweDFmODApOw0KPiA+Pj4+PiArCQlicmVhazsNCj4gPj4+Pj4gKwljYXNl IFJUTF9HSUdBX01BQ19WRVJfNjAgLi4uIFJUTF9HSUdBX01BQ19WRVJfNjM6DQo+ID4+Pj4+ICsJ CXI4MTY4X21hY19vY3BfbW9kaWZ5KHRwLCAweGMwYWMsIDB4MWY4MCwgMCk7DQo+ID4+Pj4+ICsJ CWJyZWFrOw0KPiA+Pj4+PiArCWRlZmF1bHQ6DQo+ID4+Pj4+ICsJCWJyZWFrOw0KPiA+Pj4+PiAr CX0NCj4gPj4+Pj4gK30NCj4gPj4+Pj4gKw0KPiA+Pj4+PiAgc3RhdGljIHZvaWQgcnRsX2VuYWJs ZV9leGl0X2wxKHN0cnVjdCBydGw4MTY5X3ByaXZhdGUgKnRwKSAgew0KPiA+Pj4+PiAgCS8qIEJp dHMgY29udHJvbCB3aGljaCBldmVudHMgdHJpZ2dlciBBU1BNIEwxIGV4aXQ6DQo+ID4+Pj4+IEBA IC0yNjkyLDYgKzI3MDUsMzMgQEAgc3RhdGljIHZvaWQNCj4gPj4+Pj4gcnRsX2h3X2FzcG1fY2xr cmVxX2VuYWJsZShzdHJ1Y3QNCj4gPj4+PiBydGw4MTY5X3ByaXZhdGUgKnRwLCBib29sIGVuYWJs ZSkNCj4gPj4+Pj4gIAl1ZGVsYXkoMTApOw0KPiA+Pj4+PiAgfQ0KPiA+Pj4+Pg0KPiA+Pj4+PiAr c3RhdGljIHZvaWQgcnRsX2h3X2FzcG1fbDEyX2VuYWJsZShzdHJ1Y3QgcnRsODE2OV9wcml2YXRl ICp0cCwNCj4gPj4+Pj4gK2Jvb2wNCj4gPj4+Pj4gK2VuYWJsZSkgew0KPiA+Pj4+PiArCS8qIERv bid0IGVuYWJsZSBMMS4yIGluIHRoZSBjaGlwIGlmIE9TIGNhbid0IGNvbnRyb2wgQVNQTSAqLw0K PiA+Pj4+PiArCWlmIChlbmFibGUgJiYgdHAtPmFzcG1fbWFuYWdlYWJsZSkgew0KPiA+Pj4+PiAr CQlyODE2OF9tYWNfb2NwX21vZGlmeSh0cCwgMHhlMDk0LCAweGZmMDAsIDApOw0KPiA+Pj4+PiAr CQlyODE2OF9tYWNfb2NwX21vZGlmeSh0cCwgMHhlMDkyLCAweDAwZmYsIEJJVCgyKSk7DQo+ID4+ Pj4+ICsJfSBlbHNlIHsNCj4gPj4+Pj4gKwkJcjgxNjhfbWFjX29jcF9tb2RpZnkodHAsIDB4ZTA5 MiwgMHgwMGZmLCAwKTsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICt9DQo+ID4+Pj4+ICsNCj4gPj4+ Pj4gK3N0YXRpYyB2b2lkIHJ0bF9wcmVwYXJlX3Bvd2VyX2Rvd24oc3RydWN0IHJ0bDgxNjlfcHJp dmF0ZSAqdHApIHsNCj4gPj4+Pj4gKwlpZiAodHAtPmRhc2hfdHlwZSAhPSBSVExfREFTSF9OT05F KQ0KPiA+Pj4+PiArCQlyZXR1cm47DQo+ID4+Pj4+ICsNCj4gPj4+Pj4gKwlpZiAodHAtPm1hY192 ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMzIgfHwNCj4gPj4+Pj4gKwkgICAgdHAtPm1hY192 ZXJzaW9uID09IFJUTF9HSUdBX01BQ19WRVJfMzMpDQo+ID4+Pj4+ICsJCXJ0bF9lcGh5X3dyaXRl KHRwLCAweDE5LCAweGZmNjQpOw0KPiA+Pj4+PiArDQo+ID4+Pj4+ICsJaWYgKGRldmljZV9tYXlf d2FrZXVwKHRwX3RvX2Rldih0cCkpKSB7DQo+ID4+Pj4+ICsJCXJ0bF9kaXNhYmxlX2V4aXRfbDEo dHApOw0KPiA+Pj4+PiArCQlwaHlfc3BlZWRfZG93bih0cC0+cGh5ZGV2LCBmYWxzZSk7DQo+ID4+ Pj4+ICsJCXJ0bF93b2xfZW5hYmxlX3J4KHRwKTsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+ICt9DQo+ ID4+Pj4+ICsNCj4gPj4+Pj4gIHN0YXRpYyB2b2lkIHJ0bF9zZXRfZmlmb19zaXplKHN0cnVjdCBy dGw4MTY5X3ByaXZhdGUgKnRwLCB1MTYgcnhfc3RhdCwNCj4gPj4+Pj4gIAkJCSAgICAgIHUxNiB0 eF9zdGF0LCB1MTYgcnhfZHluLCB1MTYgdHhfZHluKSAgeyBAQCAtDQo+ID4+Pj4gMzY3NSw2ICsz NzE1LDcNCj4gPj4+Pj4gQEAgc3RhdGljIHZvaWQgcnRsX2h3X3N0YXJ0XzgxMjViKHN0cnVjdCBy dGw4MTY5X3ByaXZhdGUgKnRwKQ0KPiA+Pj4+PiAgCXJ0bF9lcGh5X2luaXQodHAsIGVfaW5mb184 MTI1Yik7DQo+ID4+Pj4+ICAJcnRsX2h3X3N0YXJ0XzgxMjVfY29tbW9uKHRwKTsNCj4gPj4+Pj4N Cj4gPj4+Pj4gKwlydGxfaHdfYXNwbV9sMTJfZW5hYmxlKHRwLCB0cnVlKTsNCj4gPj4+Pj4gIAly dGxfaHdfYXNwbV9jbGtyZXFfZW5hYmxlKHRwLCB0cnVlKTsgIH0NCj4gPj4+Pj4NCj4gPj4+Pj4g QEAgLTUyNTUsNiArNTI5NiwyMCBAQCBzdGF0aWMgdm9pZCBydGxfaW5pdF9tYWNfYWRkcmVzcyhz dHJ1Y3QNCj4gPj4+PiBydGw4MTY5X3ByaXZhdGUgKnRwKQ0KPiA+Pj4+PiAgCXJ0bF9yYXJfc2V0 KHRwLCBtYWNfYWRkcik7DQo+ID4+Pj4+ICB9DQo+ID4+Pj4+DQo+ID4+Pj4+ICsvKiBtYWMgb2Nw IDB4YzBiMiB3aWxsIGhlbHAgdG8gaWRlbnRpZnkgaWYgUlRMODEyNSBoYXMgYmVlbg0KPiA+Pj4+ PiArdGVzdGVkDQo+ID4+Pj4+ICsgKiBvbiBMMS4yIGVuYWJsZWQgcGxhdGZvcm0uIElmIGl0IGlz LCB0aGlzIHJlZ2lzdGVyIHdpbGwgYmUgc2V0IHRvIDB4Zi4NCj4gPj4+Pj4gKyAqIElmIG5vdCwg dGhpcyByZWdpc3RlciB3aWxsIGJlIGRlZmF1bHQgdmFsdWUgMC4NCj4gPj4+Pj4gKyAqLw0KPiA+ Pj4+PiArc3RhdGljIGJvb2wgcnRsX3BsYXRmb3JtX2wxMl9lbmFibGVkKHN0cnVjdCBydGw4MTY5 X3ByaXZhdGUgKnRwKSB7DQo+ID4+Pj4+ICsJc3dpdGNoICh0cC0+bWFjX3ZlcnNpb24pIHsNCj4g Pj4+Pj4gKwljYXNlIFJUTF9HSUdBX01BQ19WRVJfNjAgLi4uIFJUTF9HSUdBX01BQ19WRVJfNjM6 DQo+ID4+Pj4+ICsJCXJldHVybiAocjgxNjhfbWFjX29jcF9yZWFkKHRwLCAweGMwYjIpICYgMHhm KSA/DQo+IHRydWUgOiBmYWxzZTsNCj4gPj4+Pj4gKwlkZWZhdWx0Og0KPiA+Pj4+PiArCQlyZXR1 cm4gZmFsc2U7DQo+ID4+Pj4+ICsJfQ0KPiA+Pj4+PiArfQ0KPiA+Pj4+PiArDQo+ID4+Pj4+ICBz dGF0aWMgaW50IHJ0bF9pbml0X29uZShzdHJ1Y3QgcGNpX2RldiAqcGRldiwgY29uc3Qgc3RydWN0 DQo+ID4+Pj4+IHBjaV9kZXZpY2VfaWQgKmVudCkgIHsNCj4gPj4+Pj4gIAlzdHJ1Y3QgcnRsODE2 OV9wcml2YXRlICp0cDsNCj4gPj4+Pj4gQEAgLTUzMzMsMTEgKzUzODgsMTUgQEAgc3RhdGljIGlu dCBydGxfaW5pdF9vbmUoc3RydWN0IHBjaV9kZXYNCj4gPj4+Pj4gKnBkZXYsDQo+ID4+Pj4gY29u c3Qgc3RydWN0IHBjaV9kZXZpY2VfaWQgKmVudCkNCj4gPj4+Pj4gIAkgKiBDaGlwcyBmcm9tIFJU TDgxNjhoIHBhcnRpYWxseSBoYXZlIGlzc3VlcyB3aXRoIEwxLjIsIGJ1dCBzZWVtDQo+ID4+Pj4+ ICAJICogdG8gd29yayBmaW5lIHdpdGggTDEgYW5kIEwxLjEuDQo+ID4+Pj4+ICAJICovDQo+ID4+ Pj4+IC0JaWYgKHRwLT5tYWNfdmVyc2lvbiA+PSBSVExfR0lHQV9NQUNfVkVSXzQ1KQ0KPiA+Pj4+ PiAtCQlyYyA9IHBjaV9kaXNhYmxlX2xpbmtfc3RhdGUocGRldiwgUENJRV9MSU5LX1NUQVRFX0wx XzIpOw0KPiA+Pj4+PiAtCWVsc2UNCj4gPj4+Pj4gLQkJcmMgPSBwY2lfZGlzYWJsZV9saW5rX3N0 YXRlKHBkZXYsIFBDSUVfTElOS19TVEFURV9MMSk7DQo+ID4+Pj4+IC0JdHAtPmFzcG1fbWFuYWdl YWJsZSA9ICFyYzsNCj4gPj4+Pj4gKwlpZiAoIXJ0bF9wbGF0Zm9ybV9sMTJfZW5hYmxlZCh0cCkp IHsNCj4gPj4+Pj4gKwkJaWYgKHRwLT5tYWNfdmVyc2lvbiA+PSBSVExfR0lHQV9NQUNfVkVSXzQ1 KQ0KPiA+Pj4+PiArCQkJcmMgPSBwY2lfZGlzYWJsZV9saW5rX3N0YXRlKHBkZXYsDQo+ID4+Pj4g UENJRV9MSU5LX1NUQVRFX0wxXzIpOw0KPiA+Pj4+PiArCQllbHNlDQo+ID4+Pj4+ICsJCQlyYyA9 IHBjaV9kaXNhYmxlX2xpbmtfc3RhdGUocGRldiwNCj4gPj4+PiBQQ0lFX0xJTktfU1RBVEVfTDEp Ow0KPiA+Pj4+PiArCQl0cC0+YXNwbV9tYW5hZ2VhYmxlID0gIXJjOw0KPiA+Pj4+PiArCX0gZWxz ZSB7DQo+ID4+Pj4+ICsJCXRwLT5hc3BtX21hbmFnZWFibGUgPSBwY2llX2FzcG1fZW5hYmxlZChw ZGV2KTsNCj4gPj4+Pj4gKwl9DQo+ID4+Pj4+DQo+ID4+Pj4+ICAJdHAtPmRhc2hfdHlwZSA9IHJ0 bF9jaGVja19kYXNoKHRwKTsNCj4gPj4+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEhpIEhhdSwNCj4gPj4+ Pg0KPiA+Pj4+IHRoZSBmb2xsb3dpbmcgaXMgYSBzdHJpcHBlZC1kb3duIHZlcnNpb24gb2YgdGhl IHBhdGNoLiBDb3VsZCB5b3UNCj4gPj4+PiBwbGVhc2UgY2hlY2svdGVzdD8NCj4gPj4+IFRoaXMg cGF0Y2ggaXMgb2suDQo+ID4+PiBMMSBzdWJzdGF0ZSBsb2NrIGNhbiBhcHBseSBmb3IgYm90aCBy dGw4MTI1YS5ydGw4MTI1Yi4NCj4gPj4+IGlmIChlbmFibGUgJiYgdHAtPmFzcG1fbWFuYWdlYWJs ZSkgew0KPiA+Pj4gCVJUTF9XOCh0cCwgQ29uZmlnNSwgUlRMX1I4KHRwLCBDb25maWc1KSB8IEFT UE1fZW4pOw0KPiA+Pj4gCVJUTF9XOCh0cCwgQ29uZmlnMiwgUlRMX1I4KHRwLCBDb25maWcyKSB8 IENsa1JlcUVuKTsNCj4gPj4+DQo+ID4+PiAJaWYgKHRwLT5tYWNfdmVyc2lvbiA+PSBSVExfR0lH QV9NQUNfVkVSXzYwKSB7DQo+ID4+PiAJCXI4MTY4X21hY19vY3BfbW9kaWZ5KHRwLCAweGUwOTQs IDB4ZmYwMCwgMCk7DQo+ID4+PiAJCXI4MTY4X21hY19vY3BfbW9kaWZ5KHRwLCAweGUwOTIsIDB4 MDBmZiwgQklUKDIpKTsNCj4gPj4+IAl9DQo+ID4+PiB9IGVsc2Ugew0KPiA+Pj4gCWlmICh0cC0+ bWFjX3ZlcnNpb24gPj0gUlRMX0dJR0FfTUFDX1ZFUl82MCkNCj4gPj4+IAkJcjgxNjhfbWFjX29j cF9tb2RpZnkodHAsIDB4ZTA5MiwgMHgwMGZmLCAwKTsNCj4gPj4+DQo+ID4+PiAJUlRMX1c4KHRw LCBDb25maWcyLCBSVExfUjgodHAsIENvbmZpZzIpICYgfkNsa1JlcUVuKTsNCj4gPj4+IAlSVExf VzgodHAsIENvbmZpZzUsIFJUTF9SOCh0cCwgQ29uZmlnNSkgJiB+QVNQTV9lbik7IH0NCj4gPj4+ DQo+ID4+Pj4gSWYgZnVuY3Rpb24gcnRsX2Rpc2FibGVfZXhpdF9sMSgpIGlzIGFjdHVhbGx5IG5l ZWRlZCwgSSdkIHByZWZlciB0bw0KPiA+Pj4+IGFkZCBpdCBpbiBhIHNlcGFyYXRlIHBhdGNoICh0 byBmYWNpbGl0YXRlIGJpc2VjdGluZykuDQo+ID4+Pj4NCj4gPj4+IElmIGV4aXQgbDEgbWFzayBp cyBlbmFibGVkLCBoYXJkd2FyZSB3aWxsIHByb25lIHRvIGV4aXQgbDEuIFRoYXQNCj4gPj4+IHdp bGwgcHJldmVudCBoYXJkd2FyZSBmcm9tIGVudGVyaW5nIGwxIHN1YnN0YXRlLiBTbyBJdCBuZWVk cyB0bw0KPiA+Pj4gZGlzYWJsZSBsMSBleGlzdCBtYXNrIHdoZW4gZGV2aWNlIGdvIHRvIGQzIHN0 YXRlIGZvciBlbnRlcmluZyBsMSBzdWJzdGF0ZS4uDQo+ID4+Pg0KPiA+PiBNeSB1bmRlcnN0YW5k aW5nIG9mIFBDSSBwb3dlciBtYW5hZ2VtZW50IG1heSBiZSBpbmNvbXBsZXRlLCBidXQ6DQo+ID4+ IElmIGEgZGV2aWNlIGdvZXMgdG8gRDMsIHRoZW4gZG9lc24ndCB0aGUgYnVzIGdvIHRvIEwyL0wz Pw0KPiA+PiBMMSBleGl0IGNyaXRlcmlhIHdvdWxkIGJlIGlycmVsZXZhbnQgdGhlbi4NCj4gPiBZ b3VyIHVuZGVyc3RhbmRpbmcgaXMgY29ycmVjdC4NCj4gPiBEMyBpcyBkaXZpZGVkIHRvIHR3byBz dWJzdGF0ZSwgRDNob3QgYW5kIEQzY29sZC4gRDNjb2xkIHdpbGwgZW50ZXIgTDIvTDMuDQo+ID4g RDNob3QgbWF5IGVudGVyIEwxIG9yIEwyL0wzIHJlYWR5LiAgSW4gRDNob3QgY2FzZSwgZW5hYmxl IGV4aXQgbDEgbWFzaw0KPiA+IHdpbGwgcHJldmVudCBoYXJkd2FyZSBmcm9tIGVudGVyaW5nIFBN IEwxLiBUaGF0IGlzIG91ciBoYXJkd2FyZSBpc3N1ZS4NCj4gPiBTbyB3ZSBkaXNhYmxlIGV4aXQg bDEgbWFzayBiZWZvcmUgaGFyZHdhcmUgZW50ZXIgRDMuDQo+ID4NCj4gDQo+IFRoYW5rcyEgT25l LCBob3BlZnVsbHkgbGFzdCwgcXVlc3Rpb246DQo+IEFyZSB5b3UgYXdhcmUgb2YgYW55IGJvYXJk cy9zeXN0ZW1zIHNldHRpbmcgdGhpcyAiTDEuMiB3YXMgdGVzdGVkIGFuZCBpcw0KPiBzYWZlIiBm bGFnPw0KPiBUaGVuIHRoaXMgY291bGQgYmUgbWVudGlvbmVkIGluIHRoZSBjb21taXQgZGVzY3Jp cHRpb24uDQpHb29nbGUgY2hyb21lYm94IHdpbGwgYmUgdGhlIGZpcnN0IG9uZSB0byB1c2UgdGhp cyBmbGFnLg0KDQo+IC0tLS0tLVBsZWFzZSBjb25zaWRlciB0aGUgZW52aXJvbm1lbnQgYmVmb3Jl IHByaW50aW5nIHRoaXMgZS1tYWlsLg0K