From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from rtits2.realtek.com.tw (rtits2.realtek.com [211.75.126.72]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 24949388E6E for ; Mon, 20 Jul 2026 03:01:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=211.75.126.72 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784516472; cv=none; b=ZUeTcBv0wvi0qOjIhgjzfs6804GQK4lnEI5+qdhHH5pQcNEXP8O4DMv14hJ+xTluvLCwR8Yx6Sw7jvzqecnXHpprhksR/mdaHXGFPgAf0qzZJYJGJQrCo48to+gkuIGTA44QcFqHslp2WtaYvv5IKTy079QT29iSRdJ+gCWCQcQ= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784516472; c=relaxed/simple; bh=EdiMSkNjiZfGiYZ0XXvIkrDQ02Pfeq8pmtvf/joLjLk=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:MIME-Version; b=o1Yu3IcRO4DFLE3ZsBhoT8wRmW2HH+79yQzcGqRXkr8go01Viq0av8GbRdoNiVjvPWXjIKGmCG3DJwqFj2hUBpcRWKerfFc3jE3VbCyp7Vw0kqTjC2OKURdau718dezMJGJbQu4SsFc+eV21ynvrcXygbKmaU/r4q4fQlso69V8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=realtek.com; spf=pass smtp.mailfrom=realtek.com; dkim=pass (2048-bit key) header.d=realtek.com header.i=@realtek.com header.b=vo8pJnGH; arc=none smtp.client-ip=211.75.126.72 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=realtek.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=realtek.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=realtek.com header.i=@realtek.com header.b="vo8pJnGH" X-SpamFilter-By: ArmorX SpamTrap 5.80 with qID 66K30iGyA2171045, This message is accepted by code: ctloc85258 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=realtek.com; s=dkim; t=1784516445; bh=EdiMSkNjiZfGiYZ0XXvIkrDQ02Pfeq8pmtvf/joLjLk=; h=From:To:CC:Subject:Date:Message-ID:References:In-Reply-To: Content-Type:Content-Transfer-Encoding:MIME-Version; b=vo8pJnGHpWy+Wbs1NeHfTb+1bgETk5cRYSZDDi8/EybduBKGt/UmdZu3AttKN0tUP Mn7CSCWfgZ/nPASGQnpZS2H6dkWu2VkH4mh3a/6zIeuaXz6UHyzLVPhVPKkO2+fRPV CTNM4ax/oCfINC0y0heCAx2Otcq3IjPdmxaK9rgPr+5JA0B84zJwXQT4EiSb5zrn6w iVJvqU2O0slDKI9MOylkEK6UG1vRJiDjn4Z6w6zDmGMYV/atKvTPmnfRWnctNPrNdY PzVXhShbPo/Ing56Cnjulr2HPPMS5x8ihC4e/QCnQn7W43Ga9I+dUF4ByezlA0w9Gg 83wsvK+ozltkA== Received: from mail.realtek.com (rtkexhmbs03.realtek.com.tw[10.21.1.53]) by rtits2.realtek.com.tw (8.15.2/3.29/5.94) with ESMTPS id 66K30iGyA2171045 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Mon, 20 Jul 2026 11:00:45 +0800 Received: from RTKEXHMBS06.realtek.com.tw (10.21.1.56) by RTKEXHMBS03.realtek.com.tw (10.21.1.53) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.17; Mon, 20 Jul 2026 11:00:44 +0800 Received: from RTKEXHMBS06.realtek.com.tw ([::1]) by RTKEXHMBS06.realtek.com.tw ([fe80::e6fd:5a3f:8946:92c4%10]) with mapi id 15.02.2562.017; Mon, 20 Jul 2026 11:00:44 +0800 From: Ping-Ke Shih To: "luka.gejak@linux.dev" , "linux-wireless@vger.kernel.org" CC: "straube.linux@gmail.com" Subject: RE: [RFC PATCH v1 1/9] wifi: rtw88: add RTL8723B chip support Thread-Topic: [RFC PATCH v1 1/9] wifi: rtw88: add RTL8723B chip support Thread-Index: AQHdE7mBriJ3mHkuJU2CQHRfpuMCdrZ1rlOw Date: Mon, 20 Jul 2026 03:00:44 +0000 Message-ID: <73503328e9a24732ac4b4b36b2b3eadd@realtek.com> References: In-Reply-To: Accept-Language: en-US, zh-TW Content-Language: zh-TW Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 UGxlYXNlIGZpbmQgbXkgY29tbWVudHMsIHNpbmNlIHRoaXMgcGF0Y2ggaXMgcXVpdGUgbGFyZ2Uu DQoNCmx1a2EuZ2VqYWtAbGludXguZGV2IDxsdWthLmdlamFrQGxpbnV4LmRldj4gd3JvdGU6DQo+ IEZyb206IEx1a2EgR2VqYWsgPGx1a2EuZ2VqYWtAbGludXguZGV2Pg0KPiANCj4gQWRkIHN1cHBv cnQgZm9yIHRoZSBSZWFsdGVrIFJUTDg3MjNCIDgwMi4xMW4gY2hpcCBhbmQgaXRzIFJUTDg3MjNC UyBTRElPDQo+IHZhcmlhbnQ6IHRoZSBjaGlwIGRyaXZlciwgdGhlIEJCL1JGL0FHQyBwYXJhbWV0 ZXIgdGFibGVzLCB0aGUgU0RJTyBiaW5kLA0KPiBhbmQgdGhlIGNvcmUgcGx1bWJpbmcgdGhleSBk ZXBlbmQgb24gLSB0aGUgUlRXX0NISVBfVFlQRV84NzIzQiBjaGlwIHR5cGUsDQo+IHRoZSByZWdp c3RlciBhbmQgc2VjdXJpdHktY29uZmlnIGRlZmluaXRpb25zLCBhbiBydHdfaXNfODcyM2JzX3Nk aW8oKQ0KPiBoZWxwZXIsIGFuZCB0aGUgcGVyLXZpZi9wZXItc3RhdGlvbiBzdGF0ZSB1c2VkIGJ5 IHRoZSBsYXRlciBwYXRjaGVzLg0KPiANCj4gU3Vic2VxdWVudCBwYXRjaGVzIGJ1aWxkIHRoZSBm aXJtd2FyZSBpbnRlcmZhY2UsIFRYIGhhbmRsaW5nLCBXaUZpL0JUDQo+IGNvZXhpc3RlbmNlLCBw b3dlciBtYW5hZ2VtZW50IGFuZCB0aGUgU0RJTyBhc3NvY2lhdGlvbiBzZXF1ZW5jZSBvbiB0b3Ag b2YNCj4gdGhpcyBmb3VuZGF0aW9uLg0KPiANCj4gVGhlIFJUTDg3MjNCIGNoaXAgc3VwcG9ydCBp cyBiYXNlZCBvbiB0aGUgaW5pdGlhbCB3b3JrIGJ5DQo+IE1pY2hhZWwgU3RyYXViZSA8c3RyYXVi ZS5saW51eEBnbWFpbC5jb20+Lg0KDQpDYW4geW91IHNoYXJlIHRoZSBMaW5rPw0KDQpQYXRjaCBz dWJqZWN0IGNhbiBleHBsaWNpdGx5IHBvaW50IG91dCA4NzIzYiwgbGlrZSAid2lmaTogcnR3ODg6 IDg3MjNiOiAuLi4iDQoNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IEx1a2EgR2VqYWsgPGx1a2EuZ2Vq YWtAbGludXguZGV2Pg0KPiAtLS0NCj4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3 ODgvS2NvbmZpZyAgICB8ICAgMTggKw0KPiAgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9y dHc4OC9NYWtlZmlsZSAgIHwgICAgNiArDQoNCkJlZm9yZSBvdGhlciBwcmVwYXJhdGlvbnMgaW4g dHJlZSwgUlRMODcyM0JTIHdpbGwgbm90IHdvcmsuIFNvIEknZA0KbW92ZSB0aGVzZSB0d28gdXBk YXRlcyB0byB0aGUgbGFzdCBwYXRjaCAoYmVmb3JlIHRoZSBNQUlOVEFJTkVSUyBwYXRjaCkNCm9m IHRoaXMgcGF0Y2hzZXQuDQoNCj4gIGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgv bWFpbi5oICAgICB8ICAgMzUgKw0KPiAgZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4 OC9yZWcuaCAgICAgIHwgICAgNiArDQo+ICBkcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0 dzg4L3J0dzg3MjNiLmMgfCAzMzgyICsrKysrKysrKysrKysrKysrDQo+ICBkcml2ZXJzL25ldC93 aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNiLmggfCAgIDE2ICsNCj4gIC4uLi93aXJlbGVz cy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNiX3RhYmxlLmMgICB8ICA4NTggKysrKysNCj4gIC4uLi93 aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNiX3RhYmxlLmggICB8ICAgMTUgKw0KPiAgLi4u L25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNicy5jICAgIHwgICAzNiArDQo+ICBk cml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3NlYy5oICAgICAgfCAgICAxICsNCj4g IDEwIGZpbGVzIGNoYW5nZWQsIDQzNzMgaW5zZXJ0aW9ucygrKQ0KPiAgY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2IuYw0KPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcy M2IuaA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsv cnR3ODgvcnR3ODcyM2JfdGFibGUuYw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbmV0 L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2JfdGFibGUuaA0KPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2JzLmMNCj4g DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25m aWcNCj4gYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcNCj4gaW5k ZXggMzczNmYyOTBiZDQyLi5lMWY0MGQ2Nzg1ZTYgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvbmV0 L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvS2NvbmZpZw0KPiArKysgYi9kcml2ZXJzL25ldC93aXJl bGVzcy9yZWFsdGVrL3J0dzg4L0tjb25maWcNCj4gQEAgLTM2LDYgKzM2LDEwIEBAIGNvbmZpZyBS VFc4OF84NzAzQg0KPiAgICAgICAgIHRyaXN0YXRlDQo+ICAgICAgICAgc2VsZWN0IFJUVzg4Xzg3 MjNYDQo+IA0KPiArY29uZmlnIFJUVzg4Xzg3MjNCDQo+ICsgICAgICAgdHJpc3RhdGUNCj4gKyAg ICAgICBzZWxlY3QgUlRXODhfODcyM1gNCj4gKw0KPiAgY29uZmlnIFJUVzg4Xzg3MjNEDQo+ICAg ICAgICAgdHJpc3RhdGUNCj4gICAgICAgICBzZWxlY3QgUlRXODhfODcyM1gNCj4gQEAgLTE1OSw2 ICsxNjMsMjAgQEAgY29uZmlnIFJUVzg4Xzg3MjNDUw0KPiANCj4gICAgICAgICAgIElmIHlvdSBj aG9vc2UgdG8gYnVpbGQgYSBtb2R1bGUsIGl0J2xsIGJlIGNhbGxlZCBydHc4OF84NzIzY3MuDQo+ IA0KPiArY29uZmlnIFJUVzg4Xzg3MjNCUw0KPiArICAgICAgIHRyaXN0YXRlICJSZWFsdGVrIDg3 MjNCUyBTRElPIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRlciINCj4gKyAgICAgICBkZXBlbmRzIG9u IE1NQw0KPiArICAgICAgIHNlbGVjdCBSVFc4OF9DT1JFDQo+ICsgICAgICAgc2VsZWN0IFJUVzg4 X1NESU8NCj4gKyAgICAgICBzZWxlY3QgUlRXODhfODcyM0INCj4gKyAgICAgICBoZWxwDQo+ICsg ICAgICAgICBTZWxlY3QgdGhpcyBvcHRpb24gdG8gZW5hYmxlIHN1cHBvcnQgZm9yIDg3MjNCUyBj aGlwc2V0DQo+ICsNCj4gKyAgICAgICAgIFRoaXMgbW9kdWxlIGFkZHMgc3VwcG9ydCBmb3IgdGhl IDg3MjNCUyA4MDIuMTFuIFNESU8NCj4gKyAgICAgICAgIHdpcmVsZXNzIG5ldHdvcmsgYWRhcHRl ci4NCj4gKw0KPiArICAgICAgICAgSWYgeW91IGNob29zZSB0byBidWlsZCBhIG1vZHVsZSwgaXQn bGwgYmUgY2FsbGVkIHJ0dzg4Xzg3MjNicy4NCj4gKw0KPiAgY29uZmlnIFJUVzg4Xzg3MjNEVQ0K PiAgICAgICAgIHRyaXN0YXRlICJSZWFsdGVrIDg3MjNEVSBVU0Igd2lyZWxlc3MgbmV0d29yayBh ZGFwdGVyIg0KPiAgICAgICAgIGRlcGVuZHMgb24gVVNCDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L01ha2VmaWxlDQo+IGIvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcmVhbHRlay9ydHc4OC9NYWtlZmlsZQ0KPiBpbmRleCAwYjNkYTA1YTI5MzguLjY4ODli Mzc5NjQ0OSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4 OC9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L01h a2VmaWxlDQo+IEBAIC01NSw2ICs1NSwxMiBAQCBydHc4OF84NzAzYi1vYmpzICAgICAgICAgICAg IDo9IHJ0dzg3MDNiLm8gcnR3ODcwM2JfdGFibGVzLm8NCj4gIG9iai0kKENPTkZJR19SVFc4OF84 NzIzQ1MpICAgICArPSBydHc4OF84NzIzY3Mubw0KPiAgcnR3ODhfODcyM2NzLW9ianMgICAgICAg ICAgICAgIDo9IHJ0dzg3MjNjcy5vDQo+IA0KPiArb2JqLSQoQ09ORklHX1JUVzg4Xzg3MjNCKSAg ICAgICs9IHJ0dzg4Xzg3MjNiLm8NCj4gK3J0dzg4Xzg3MjNiLW9ianMgICAgICAgICAgICAgICA6 PSBydHc4NzIzYi5vIHJ0dzg3MjNiX3RhYmxlLm8NCj4gKw0KPiArb2JqLSQoQ09ORklHX1JUVzg4 Xzg3MjNCUykgICAgICs9IHJ0dzg4Xzg3MjNicy5vDQo+ICtydHc4OF84NzIzYnMtb2JqcyAgICAg ICAgICAgICAgOj0gcnR3ODcyM2JzLm8NCj4gKw0KPiAgb2JqLSQoQ09ORklHX1JUVzg4Xzg3MjNE KSAgICAgICs9IHJ0dzg4Xzg3MjNkLm8NCj4gIHJ0dzg4Xzg3MjNkLW9ianMgICAgICAgICAgICAg ICA6PSBydHc4NzIzZC5vIHJ0dzg3MjNkX3RhYmxlLm8NCj4gDQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaCBiL2RyaXZlcnMvbmV0L3dpcmVs ZXNzL3JlYWx0ZWsvcnR3ODgvbWFpbi5oDQo+IGluZGV4IGM2ZTk4MWJhNzk4Ni4uNGE0M2VjMTM2 MjVlIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21h aW4uaA0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L21haW4uaA0K PiBAQCAtMTk0LDYgKzE5NCw3IEBAIGVudW0gcnR3X2NoaXBfdHlwZSB7DQo+ICAgICAgICAgUlRX X0NISVBfVFlQRV84NzIzRCwNCj4gICAgICAgICBSVFdfQ0hJUF9UWVBFXzg4MjFDLA0KPiAgICAg ICAgIFJUV19DSElQX1RZUEVfODcwM0IsDQo+ICsgICAgICAgUlRXX0NISVBfVFlQRV84NzIzQiwN Cj4gICAgICAgICBSVFdfQ0hJUF9UWVBFXzg4MjFBLA0KPiAgICAgICAgIFJUV19DSElQX1RZUEVf ODgxMkEsDQo+ICAgICAgICAgUlRXX0NISVBfVFlQRV84ODE0QSwNCj4gQEAgLTM2OSw2ICszNzAs NyBAQCBlbnVtIHJ0d19mbGFncyB7DQo+ICAgICAgICAgUlRXX0ZMQUdfRldfUlVOTklORywNCj4g ICAgICAgICBSVFdfRkxBR19TQ0FOTklORywNCj4gICAgICAgICBSVFdfRkxBR19QT1dFUk9OLA0K PiArICAgICAgIFJUV19GTEFHX1NPRlRfSVBTLA0KDQpBZGQgdGhpcyBmbGFnIHVudGlsIHRoZSBw YXRjaCBhY3R1YWxseSB1c2VzIGl0LiBUaGF0IHdpbGwgYmUgZWFzaWVyIHRvIHJldmlldy4NCg0K PiAgICAgICAgIFJUV19GTEFHX0xFSVNVUkVfUFMsDQo+ICAgICAgICAgUlRXX0ZMQUdfTEVJU1VS RV9QU19ERUVQLA0KPiAgICAgICAgIFJUV19GTEFHX0RJR19ESVNBQkxFLA0KPiBAQCAtNjE2LDYg KzYxOCw3IEBAIHN0cnVjdCBydHdfdHhfcGt0X2luZm8gew0KPiAgICAgICAgIHU4IGJ3Ow0KPiAg ICAgICAgIHU4IHNlY190eXBlOw0KPiAgICAgICAgIHU4IHNuOw0KPiArICAgICAgIHU4IGRhdGFf cmV0cnlfbGltaXQ7DQoNCmRpdHRvLiBUaGlzIHBhdGNoIGRvZXNuJ3QgdXNlIGl0IHlldC4NCg0K PiAgICAgICAgIGJvb2wgYW1wZHVfZW47DQo+ICAgICAgICAgdTggYW1wZHVfZmFjdG9yOw0KPiAg ICAgICAgIHU4IGFtcGR1X2RlbnNpdHk7DQo+IEBAIC02MjMsNiArNjI2LDggQEAgc3RydWN0IHJ0 d190eF9wa3RfaW5mbyB7DQo+ICAgICAgICAgYm9vbCBzdGJjOw0KPiAgICAgICAgIGJvb2wgbGRw YzsNCj4gICAgICAgICBib29sIGRpc19yYXRlX2ZhbGxiYWNrOw0KPiArICAgICAgIGJvb2wgcmV0 cnlfbGltaXRfZW47DQo+ICsgICAgICAgYm9vbCBkaXNhYmxlX2RhdGFfcmF0ZV9mYl9saW1pdDsN Cg0KZGl0dG8uIFRoaXMgcGF0Y2ggZG9lc24ndCB1c2UgdGhlbSB5ZXQuDQoNCj4gICAgICAgICBi b29sIGJtYzsNCj4gICAgICAgICBib29sIHVzZV9yYXRlOw0KPiAgICAgICAgIGJvb2wgbHM7DQo+ IEBAIC03ODEsNiArNzg2LDcgQEAgc3RydWN0IHJ0d19zdGFfaW5mbyB7DQo+ICAgICAgICAgYm9v bCB2aHRfZW5hYmxlOw0KPiAgICAgICAgIHU4IGluaXRfcmFfbHY7DQo+ICAgICAgICAgdTY0IHJh X21hc2s7DQo+ICsgICAgICAgdTY0IHJhX21hc2tfbGFzdDsgICAgICAgLyogODcyM0JTIFNESU86 IGxhc3QgbWFzayBzZW50LCB0byBnYXRlIG5vX3VwZGF0ZSAqLw0KDQpkaXR0by4gVGhpcyBwYXRj aCBkb2Vzbid0IHVzZSBpdCB5ZXQuDQoNCj4gDQo+ICAgICAgICAgREVDTEFSRV9CSVRNQVAodGlk X2JhLCBJRUVFODAyMTFfTlVNX1RJRFMpOw0KPiANCj4gQEAgLTgyOCw2ICs4MzQsMTAgQEAgc3Ry dWN0IHJ0d192aWYgew0KPiAgICAgICAgIHU4IGJzc2lkW0VUSF9BTEVOXTsNCj4gICAgICAgICB1 OCBwb3J0Ow0KPiAgICAgICAgIHU4IGJjbl9jdHJsOw0KPiArICAgICAgIC8qIDg3MjNCUyBTRElP IGpvaW4tc3RhdGUgdHJhY2tpbmcgKHNlZSBtYWM4MDIxMS5jIG1nZF9wcmVwYXJlX3R4IHBhdGgp ICovDQo+ICsgICAgICAgYm9vbCBmd19tZWRpYV9jb25uZWN0ZWQ7DQo+ICsgICAgICAgYm9vbCBw cmVfYXV0aF9oMmNfc2VudDsNCj4gKyAgICAgICBib29sIHByZV9hdXRoX2pvaW5fZG9uZTsNCg0K ZGl0dG8uIFRoaXMgcGF0Y2ggZG9lc24ndCB1c2UgdGhlbSB5ZXQuDQoNCj4gICAgICAgICBzdHJ1 Y3QgbGlzdF9oZWFkIHJzdmRfcGFnZV9saXN0Ow0KPiAgICAgICAgIHN0cnVjdCBpZWVlODAyMTFf dHhfcXVldWVfcGFyYW1zIHR4X3BhcmFtc1tJRUVFODAyMTFfTlVNX0FDU107DQo+ICAgICAgICAg Y29uc3Qgc3RydWN0IHJ0d192aWZfcG9ydCAqY29uZjsNCj4gQEAgLTIwNTcsNiArMjA2NywxOCBA QCBzdHJ1Y3QgcnR3X2h3X3NjYW5faW5mbyB7DQo+ICAgICAgICAgdTggb3BfYnc7DQo+ICB9Ow0K PiANCj4gKy8qIDg3MjNCUyBTRElPOiBzeW5jaHJvbmlzZXMgdGhlIHByZS1hdXRoIHdhaXQgb24g YSBiZWFjb24vcHJvYmUtcmVzcCBmcm9tIHRoZQ0KPiArICogdGFyZ2V0IEJTU0lELCBzbyB0aGUg am9pbiBzZXF1ZW5jZSBtaXJyb3JzIHRoZSB2ZW5kb3Igc3RhcnRfY2xudF9qb2luKCkuDQo+ICsg Ki8NCj4gK3N0cnVjdCBydHdfYXV0aF9zeW5jIHsNCj4gKyAgICAgICB3YWl0X3F1ZXVlX2hlYWRf dCB3YWl0Ow0KPiArICAgICAgIHNwaW5sb2NrX3QgbG9jazsNCj4gKyAgICAgICB1OCBic3NpZFtF VEhfQUxFTl07DQo+ICsgICAgICAgYm9vbCBhY3RpdmU7DQo+ICsgICAgICAgYm9vbCBzZWVuOw0K PiArICAgICAgIHUzMiBzZWVuX2NvdW50Ow0KPiArfTsNCg0KTW92ZSB0aGlzIHRvIHRoZSBwYXRj aCB5b3UgaW1wbGVtZW50IHRoaXMgZnVuY3Rpb24uDQoNCkJ1dCBJIHdvbmRlciB3aHkgd2UgbmVl ZCB0byBpbXBsZW1lbnQgdGhpcyBpbiBkcml2ZXI/DQoNCj4gKw0KPiAgc3RydWN0IHJ0d19kZXYg ew0KPiAgICAgICAgIHN0cnVjdCBpZWVlODAyMTFfaHcgKmh3Ow0KPiAgICAgICAgIHN0cnVjdCBk ZXZpY2UgKmRldjsNCj4gQEAgLTIxMzAsOSArMjE1MiwxMiBAQCBzdHJ1Y3QgcnR3X2RldiB7DQo+ ICAgICAgICAgc3RydWN0IHJ0d193b3dfcGFyYW0gd293Ow0KPiANCj4gICAgICAgICBib29sIG5l ZWRfcmZrOw0KPiArICAgICAgIGJvb2wgaW5pdGlhbF9yZmtfZG9uZTsgIC8qIDg3MjNCUyBTRElP OiBydW4gSVFLIG9uY2UsIG5vdCBwZXIgSVBTLWxlYXZlICovDQoNCmRpdHRvLiBUaGlzIHBhdGNo IGRvZXNuJ3QgdXNlIGl0IHlldC4NCg0KTW9yZSwgeW91IGRvZXNuJ3QgZW50ZXIgSVBTLiBIb3cg ZG9lcyBpdCBsZWF2ZSBJUFMgY2F1c2luZyBpdCBwb3dlci1vbiBhZ2Fpbj8NCg0KPiAgICAgICAg IHN0cnVjdCBjb21wbGV0aW9uIGZ3X3NjYW5fZGVuc2l0eTsNCj4gICAgICAgICBib29sIGFwX2Fj dGl2ZTsNCj4gDQo+ICsgICAgICAgc3RydWN0IHJ0d19hdXRoX3N5bmMgYXV0aF9zeW5jOw0KPiAr DQo+ICAgICAgICAgYm9vbCBsZWRfcmVnaXN0ZXJlZDsNCj4gICAgICAgICBjaGFyIGxlZF9uYW1l WzMyXTsNCj4gICAgICAgICBzdHJ1Y3QgbGVkX2NsYXNzZGV2IGxlZF9jZGV2Ow0KPiBAQCAtMjE5 NCw2ICsyMjE5LDEyIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBydHdfY2hpcF9oYXNfdHhfc3RiYyhz dHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiAgICAgICAgIHJldHVybiBydHdkZXYtPmNoaXAtPnR4 X3N0YmM7DQo+ICB9DQo+IA0KPiArc3RhdGljIGlubGluZSBib29sIHJ0d19pc184NzIzYnNfc2Rp byhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KDQpKdXN0IHJ0d19pc184NzIzYnMoKS4gVGhlIHRh aWwgJ3MnIG1lYW5zIGl0IGlzICdzZGlvJyBhbHJlYWR5LCBubz8NCg0Kb3IgcnR3X2lzXzg3MjNi X3NkaW8oKT8gaWYgeW91IHByZWZlcmUuDQoNCj4gK3sNCj4gKyAgICAgICByZXR1cm4gcnR3ZGV2 LT5jaGlwLT5pZCA9PSBSVFdfQ0hJUF9UWVBFXzg3MjNCICYmDQo+ICsgICAgICAgICAgICAgIHJ0 d2Rldi0+aGNpLnR5cGUgPT0gUlRXX0hDSV9UWVBFX1NESU87DQo+ICt9DQo+ICsNCj4gIHN0YXRp YyBpbmxpbmUgdTggcnR3X2FjcXVpcmVfbWFjaWQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldikNCj4g IHsNCj4gICAgICAgICB1bnNpZ25lZCBsb25nIG1hY19pZDsNCj4gQEAgLTIyODQsNCArMjMxNSw4 IEBAIGJvb2wgcnR3X2NvcmVfY2hlY2tfc3RhX2FjdGl2ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2 KTsNCj4gIHZvaWQgcnR3X2NvcmVfZW5hYmxlX2JlYWNvbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2 LCBib29sIGVuYWJsZSk7DQo+ICB2b2lkIHJ0d19zZXRfYW1wZHVfZmFjdG9yKHN0cnVjdCBydHdf ZGV2ICpydHdkZXYsIHN0cnVjdCBpZWVlODAyMTFfdmlmICp2aWYsDQo+ICAgICAgICAgICAgICAg ICAgICAgICAgICAgc3RydWN0IGllZWU4MDIxMV9ic3NfY29uZiAqYnNzX2NvbmYpOw0KPiArdm9p ZCBydHc4NzIzYnNfYXV0aF9zeW5jX3J4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsDQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaWVlZTgwMjExX2hkciAqaGRyLCB1 MzIgbGVuLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0d19y eF9wa3Rfc3RhdCAqcGt0X3N0YXQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgaWVlZTgwMjExX3J4X3N0YXR1cyAqcnhfc3RhdHVzKTsNCg0KTW92ZSB0byB0aGUg cGF0Y2ggeW91IGFkZCB0aGUgZnVuY3Rpb24uIA0KDQo+ICAjZW5kaWYNCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcmVnLmggYi9kcml2ZXJzL25ldC93 aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3JlZy5oDQo+IGluZGV4IDA4ZTk0OTQ5NzdlMC4uNjkwNzY3 YmY1MjA0IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4 L3JlZy5oDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcmVnLmgN Cj4gQEAgLTQzNyw2ICs0MzcsOCBAQA0KPiAgI2RlZmluZSBSRUdfUFJPVF9NT0RFX0NUUkwgICAg IDB4MDRDOA0KPiAgI2RlZmluZSBSRUdfTUFYX0FHR1JfTlVNICAgICAgIDB4MDRDQQ0KPiAgI2Rl ZmluZSBSRUdfQkFSX01PREVfQ1RSTCAgICAgIDB4MDRDQw0KPiArI2RlZmluZSBSRUdfTUFDSURf UEtUX0RST1AwICAgIDB4MDREMA0KPiArI2RlZmluZSBSRUdfTUFDSURfUEtUX1NMRUVQICAgIDB4 MDRENA0KPiAgI2RlZmluZSBSRUdfUFJFQ05UX0NUUkwgICAgICAgICAgICAgICAgMHgwNEU1DQo+ ICAjZGVmaW5lIEJJVF9CVENDQV9DVFJMICAgICAgICAgKEJJVCgwKSB8IEJJVCgxKSkNCj4gICNk ZWZpbmUgQklUX0VOX1BSRUNOVCAgICAgICAgICBCSVQoMTEpDQo+IEBAIC00NzksNiArNDgxLDcg QEANCj4gICNkZWZpbmUgQklUX0RJU19UU0ZfVURUICAgICAgICAgICAgICAgIEJJVCg0KQ0KPiAg I2RlZmluZSBCSVRfRU5fQkNOX0ZVTkNUSU9OICAgIEJJVCgzKQ0KPiAgI2RlZmluZSBCSVRfRU5f VFhCQ05fUlBUICAgICAgIEJJVCgyKQ0KPiArI2RlZmluZSBCSVRfRElTX0FUSU0gICAgICAgICAg IEJJVCgwKQ0KPiAgI2RlZmluZSBSRUdfQkNOX0NUUkxfQ0xJTlQwICAgIDB4MDU1MQ0KPiAgI2Rl ZmluZSBSRUdfRFJWRVJMWUlOVCAgICAgICAgIDB4MDU1OA0KPiAgI2RlZmluZSBSRUdfQkNORE1B VElNICAgICAgICAgIDB4MDU1OQ0KPiBAQCAtNDk1LDYgKzQ5OCw4IEBADQo+ICAjZGVmaW5lIFJF R19USU1FUjBfU1JDX1NFTCAgICAgMHgwNUI0DQo+ICAjZGVmaW5lIEJJVF9UU0ZUX1NFTF9USU1F UjAgICAgKEJJVCg0KSB8IEJJVCg1KSB8IEJJVCg2KSkNCj4gDQo+ICsjZGVmaW5lIFJFR19CV09Q TU9ERSAgICAgICAgICAgMHgwNjAzDQo+ICsjZGVmaW5lIEJJVF9CV09QTU9ERV8yME1IWiAgICAg QklUKDIpDQo+ICAjZGVmaW5lIFJFR19UQ1IgICAgICAgICAgICAgICAgICAgICAgICAweDA2MDQN Cj4gICNkZWZpbmUgQklUX1BXUk1HVF9IV0RBVEFfRU4gICBCSVQoNykNCj4gICNkZWZpbmUgQklU X1RDUl9VUERBVEVfVElNSUUgICBCSVQoNSkNCj4gQEAgLTUxOCw2ICs1MjMsNyBAQA0KPiAgI2Rl ZmluZSBCSVRfVUNfTURfRU4gICAgICAgICAgIEJJVCgxNikNCj4gICNkZWZpbmUgQklUX1JYU0tf UEVSUEtUICAgICAgICAgICAgICAgIEJJVCgxNSkNCj4gICNkZWZpbmUgQklUX0hUQ19MT0NfQ1RS TCAgICAgICBCSVQoMTQpDQo+ICsjZGVmaW5lIEJJVF9BTUYgICAgICAgICAgICAgICAgICAgICAg ICBCSVQoMTMpDQo+ICAjZGVmaW5lIEJJVF9SUEZNX0NBTV9FTkFCTEUgICAgQklUKDEyKQ0KPiAg I2RlZmluZSBCSVRfVEFfQkNOICAgICAgICAgICAgIEJJVCgxMSkNCj4gICNkZWZpbmUgQklUX1JD Ul9BREYgICAgICAgICAgICBCSVQoMTEpDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNiLmMNCj4gYi9kcml2ZXJzL25ldC93aXJlbGVzcy9y ZWFsdGVrL3J0dzg4L3J0dzg3MjNiLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMDAwLi4yNmEyMDA4Zjc0N2ENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNiLmMNCj4gQEAgLTAsMCArMSwz MzgyIEBADQo+ICsvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogR1BMLTIuMCBPUiBCU0QtMy1D bGF1c2UNCg0KQ29weXJpZ2h0KGMpIFJlYWx0ZWsgQ29ycG9yYXRpb24gPw0KDQo+ICsvKiBDb3B5 cmlnaHQoYykgTWljaGFlbCBTdHJhdWJlIDxzdHJhdWJlLmxpbnV4QGdtYWlsLmNvbT4gKi8NCj4g Ky8qIENvcHlyaWdodChjKSAyMDI0LTIwMjYgTHVrYSBHZWphayA8bHVrYS5nZWpha0BsaW51eC5k ZXY+ICovDQo+ICsNCj4gKyNpbmNsdWRlICJtYWluLmgiDQo+ICsjaW5jbHVkZSAiY29leC5oIg0K PiArI2luY2x1ZGUgImZ3LmgiDQo+ICsjaW5jbHVkZSAicGh5LmgiDQo+ICsjaW5jbHVkZSAibWFj LmgiDQo+ICsjaW5jbHVkZSAic2Rpby5oIg0KPiArI2luY2x1ZGUgInJ0dzg3MjNiLmgiDQo+ICsj aW5jbHVkZSAidHguaCINCj4gKyNpbmNsdWRlICJydHc4NzIzYl90YWJsZS5oIg0KPiArI2luY2x1 ZGUgPGxpbnV4L3VuYWxpZ25lZC5oPg0KPiArLyogZm9yIHN0cnVjdCBwaHlfc3RhdHVzXzg3MDNi ICovDQo+ICsjaW5jbHVkZSAicnR3ODcwM2IuaCINCg0KS2VlcCB0aGVtIGluIGFscGhhYmV0aWMg b3JkZXIuIEFuZCBrZXJuZWwgaGVhZGVyIGZpcnN0LiANCg0KPiArDQo+ICsjZGVmaW5lIFRSQU5T X1NFUV9FTkQgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgMHhGRkZGLCAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ICsgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywgICAgICAgICAg ICBcDQo+ICsgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssICAgICAgICAgICBcDQo+ICsgICAg ICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ICsgICAgICAgUlRXX1BXUl9D TURfRU5ELCAwLCAwDQo+ICsNCj4gKyNkZWZpbmUgQklUX0ZFTl9QUExMICAgICAgICAgICBCSVQo NykNCj4gKyNkZWZpbmUgQklUX0ZFTl9ESU9fUENJRSAgICAgICBCSVQoNSkNCj4gKw0KPiArI2Rl ZmluZSBUQlRUX1BST0hJQklUX1NFVFVQX1RJTUUgICAgICAgICAgICAgICAweDA0DQo+ICsjZGVm aW5lIFRCVFRfUFJPSElCSVRfSE9MRF9USU1FX1NUT1BfQkNOICAgICAgIDB4NjQNCj4gKyNkZWZp bmUgV0xBTl9CQ05fRE1BX1RJTUUgICAgICAgICAgICAgICAgICAgICAgMHgwMg0KPiArI2RlZmlu ZSBXTEFOX0FOVF9TRUwgICAgICAgICAgICAgICAgICAgICAgICAgICAweDgyDQo+ICsjZGVmaW5l IFdMQU5fQkFSX1ZBTCAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwMWZmZmYNCj4gKyNk ZWZpbmUgV0xBTl9TTE9UX1RJTUUgICAgICAgICAgICAgICAgICAgICAgICAgMHgwOQ0KPiArI2Rl ZmluZSBXTEFOX1NZU19GVU5DX0JCX0VOQUJMRSAgICAgICAgICAgICAgICAgICAgICAgIChCSVRf RkVOX0JCX0dMQl9SU1QgfCBcDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCSVRfRkVOX0JCX1JTVEIpDQo+ICsjZGVmaW5lIFdMQU5fUkZfQ1RSTF9F TkFCTEUgICAgICAgICAgICAgICAgICAgIChCSVRfUkZfRU4gfCBCSVRfUkZfUlNUQiB8IFwNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJVF9SRl9T RE1fUlNUQikNCj4gKy8qIFN0YWdpbmcgYW5kIHRoZSBCQiB0YWJsZSB1c2UgMHgwM2EwNTYxMSBh cyB0aGUgbm9ybWFsIFJYIHBhdGguIDB4MDNhMDU2MDANCj4gKyAqIGlzIG9ubHkgYW4gSVFLIHRl bXBvcmFyeSB2YWx1ZSBhbmQgbXVzdCBub3QgYmUgcmVhc3NlcnRlZCBkdXJpbmcgc2Nhbi4NCj4g KyAqLw0KPiArI2RlZmluZSBXTEFOX1JYX1BBVEhfQV84NzIzQiAgICAgICAgICAgICAgICAgICAw eDAzYTA1NjExDQo+ICsNCj4gKyNkZWZpbmUgQUREQV9PTl9WQUxfODcyM0IgICAgICAgICAgICAg ICAgICAgICAgMHgwMWMwMDAxNA0KPiArDQo+ICsjZGVmaW5lIE1BU0tfTkVUVFlQRSAgIDB4MzAw MDANCj4gKyNkZWZpbmUgX05FVFRZUEUoeCkgICAgKCgoeCkgJiAweDMpIDw8IDE2KQ0KPiArI2Rl ZmluZSBOVF9MSU5LX0FQICAgICAweDINCj4gKw0KPiArI2RlZmluZSBXTEFOX1JYX0ZJTFRFUjAg ICAgICAgICAgICAgICAgICAgICAgICAweEZGRkYNCj4gKyNkZWZpbmUgV0xBTl9SWF9GSUxURVIx ICAgICAgICAgICAgICAgICAgICAgICAgMHg0MDANCj4gKyNkZWZpbmUgV0xBTl9SWF9GSUxURVIy ICAgICAgICAgICAgICAgICAgICAgICAgMHhGRkZGDQo+ICsjZGVmaW5lIFdMQU5fUkNSX0NGRyAg ICAgICAgICAgICAgICAgICAoMHg3MDAwNjBDRSB8IEJJVF9BTUYpDQo+ICsjZGVmaW5lIFJFR19S RktfRldfQUNLXzg3MjNCICAgICAgICAgICAweDAxZTcNCj4gKyNkZWZpbmUgQklUX1JGS19GV19B Q0tfODcyM0IgICAgICAgICAgIEJJVCgwKQ0KPiArDQo+ICsjZGVmaW5lIFJFR19GUEdBMF9YQV9S Rl9TV19DVFJMICAgICAgICAgICAgICAgIDB4MDg3MA0KPiArI2RlZmluZSBSRUdfRlBHQTBfWEFf UkZfSU5UX09FICAgICAgICAgMHgwODYwDQo+ICsjZGVmaW5lIFJFR19GUEdBMF9YQV9IU1NJX1BB Uk0yICAgICAgICAgICAgICAgIDB4MDgyNA0KPiArDQo+ICsjZGVmaW5lIFJFR19GUEdBMF9YQl9S Rl9TV19DVFJMICAgICAgICAgICAgICAgIDB4MDg3Mg0KPiArI2RlZmluZSBSRUdfRlBHQTBfWEJf UkZfSU5UX09FICAgICAgICAgMHgwODY0DQo+ICsjZGVmaW5lIFJFR19GUEdBMF9YQl9IU1NJX1BB Uk0yICAgICAgICAgICAgICAgIDB4MDgyYw0KPiArDQo+ICsjZGVmaW5lIFJGU0lfUkZFTlYgICAg ICAgICAgICAgICAgICAgICAweDEwDQo+ICsjZGVmaW5lIEhTU0lfM1dJUkVfQUREUl9MRU4gICAg ICAgICAgICAweDQwMA0KPiArI2RlZmluZSBIU1NJXzNXSVJFX0RBVEFfTEVOICAgICAgICAgICAg MHg4MDANCj4gKw0KPiArI2RlZmluZSBCSVRfRU5fUEROICAgICAgICAgICAgICAgICAgICAgQklU KDQpDQo+ICsNCj4gKyNkZWZpbmUgUkVHX0NBTV9DTUQgICAgICAgICAgICAgICAgICAgIDB4MDY3 MA0KPiArI2RlZmluZSBDQU1fQ01EX1BPTExJTkcgICAgICAgICAgICAgICAgICAgICAgICBCSVQo MzEpDQo+ICsNCj4gKyNkZWZpbmUgUkVHX1BLVF9WT19WSV9MSUZFX1RJTUUgICAgICAgICAgICAg ICAgMHgwNEMwDQo+ICsjZGVmaW5lIFJFR19QS1RfQkVfQktfTElGRV9USU1FICAgICAgICAgICAg ICAgIDB4MDRDMg0KPiArDQo+ICsjZGVmaW5lIFJFR19CVF9DT05UUk9MXzg3MjNCICAgICAgICAg ICAweDA3NjQNCj4gKyNkZWZpbmUgUkVHX1BXUl9EQVRBICAgICAgICAgICAgICAgICAgIDB4MDAz OA0KPiArI2RlZmluZSBSRUdfQlRfQ09FWF9DVFJMXzg3MjNCICAgICAgICAgMHgwMDM5DQo+ICsj ZGVmaW5lIFJFR19BTlRTRUxfU1dfODcyM0IgICAgICAgICAgICAweDAwNjQNCj4gKyNkZWZpbmUg UkVHX0JUX0FOVF9TRUxfODcyM0IgICAgICAgICAgIDB4MDA2Nw0KPiArI2RlZmluZSBSRUdfQlRf R05UX0JUXzg3MjNCICAgICAgICAgICAgMHgwNzY1DQo+ICsjZGVmaW5lIFJFR19CVF9XTEFOX0FD VF84NzIzQiAgICAgICAgICAweDA3NmUNCj4gKyNkZWZpbmUgUkVHX0JCX0FOVF9DRkdfODcyM0Ig ICAgICAgICAgIDB4MDkzMA0KPiArI2RlZmluZSBSRUdfQkJfQU5UX0NGRzFfODcyM0IgICAgICAg ICAgMHgwOTQ0DQo+ICsjZGVmaW5lIFJFR19CQl9BTlRfQlVGXzg3MjNCICAgICAgICAgICAweDA5 NzQNCj4gKw0KPiArI2RlZmluZSBCSVRfQlRfU0VMX0JZX1dJRklfODcyM0IgICAgICAgQklUKDUp DQo+ICsNCj4gKyNkZWZpbmUgUkZfUkNLX09TICAgICAgICAgICAgICAgICAgICAgIDB4MzANCj4g KyNkZWZpbmUgUkZfVFhQQV9HMSAgICAgICAgICAgICAgICAgICAgIDB4MzENCj4gKyNkZWZpbmUg UkZfVFhQQV9HMiAgICAgICAgICAgICAgICAgICAgIDB4MzINCj4gKyNkZWZpbmUgSVFLX0RFTEFZ X1RJTUVfODcyM0IgICAgICAgICAgIDIwDQo+ICsNCj4gKyNkZWZpbmUgUkVHX0JfUlhJUUkgICAg ICAgICAgICAgICAgICAgIDB4MGMxYw0KPiArDQo+ICsjZGVmaW5lIFJFR19OQVZfVVBQRVIgICAg ICAgICAgICAgICAgICAweDA2NTINCj4gKy8qIFJFR19FQVJMWV9NT0RFX0NPTlRST0wgZm9yIDg3 MjNCIGlzIG5vdyBpbiByZWcuaCAqLw0KPiArDQo+ICsvKiBsb2NhbCBwYWdlLWxheW91dCBjb25z dGFudHMgKG5vIHJ0dzg4IGVxdWl2YWxlbnRzIGV4aXN0KTsgdXNlZCBiZWxvdyAqLw0KPiArI2Rl ZmluZSBCQ05RX1BBR0VfTlVNXzg3MjNCICAgIDB4MDgNCj4gKyNkZWZpbmUgQkNOUTFfUEFHRV9O VU1fODcyM0IgICAgICAgICAgIDB4MDANCj4gKyNkZWZpbmUgV09XTEFOX1BBR0VfTlVNXzg3MjNC ICAgICAgICAgIDB4MDANCj4gKyNkZWZpbmUgVFhfVE9UQUxfUEFHRV9OVU1CRVJfODcyM0JcDQo+ ICsgICAgICAgKDB4RkYgLSBCQ05RX1BBR0VfTlVNXzg3MjNCIC0gQkNOUTFfUEFHRV9OVU1fODcy M0IgLSBcDQo+ICsgICAgICAgIFdPV0xBTl9QQUdFX05VTV84NzIzQikNCj4gKw0KPiArLyogbG9j YWwgVFhQS1RCVUYgYm91bmRhcnkgcmVncyAobm8gcnR3ODggZXF1aXZhbGVudHMgZXhpc3QpOyB1 c2VkIGJlbG93ICovDQo+ICsjZGVmaW5lIFJFR19UWFBLVEJVRl9CQ05RX0JETllfODcyM0IgICAg ICAgICAgIDB4MDQyNA0KPiArI2RlZmluZSBSRUdfVFhQS1RCVUZfTUdRX0JETllfODcyM0IgICAg ICAgICAgICAweDA0MjUNCj4gKyNkZWZpbmUgUkVHX1RYUEtUQlVGX1dNQUNfTEJLX0JGX0hEXzg3 MjNCICAgICAgMHgwNDVEDQo+ICsjZGVmaW5lIFJFR19UUlhGRl9CTkRZICAgICAgICAgICAgICAg ICAgICAgICAgIDB4MDExNA0KPiArI2RlZmluZSBSRUdfVERFQ1RSTCAgICAgICAgICAgICAgICAg ICAgICAgICAgICAweDAyMDgNCg0KTW92ZSB0aGVzZSByZWdpc3RlcnMgKGZyb20gQklUX0ZFTl9Q UExMKSB0byByZWcuaC4NCg0KDQo+ICsNCj4gKy8qIHJzc2kgaW4gcGVyY2VudGFnZSAlIChkYm0g PSAlIC0gMTAwKSAqLw0KPiArLyogVGhlc2UgYXJlIHVzZWQgdG8gc2VsZWN0IHNpbXBsZSBzaWdu YWwgcXVhbGl0eSBsZXZlbHMsIG1pZ2h0IG5lZWQNCj4gKyAqIHR3ZWFraW5nLiBTYW1lIGZvciBy Zl9wYXJhIHRhYmxlcyBiZWxvdy4NCj4gKyAqLw0KDQpXZSBkb24ndCB1c2UgbmV0d29ya2luZyBz cGVjaWZpYyBjb21tZW50IHN0eWxlIGFueW1vcmUuDQpDdXJyZW50IHN0eWxlIGlzIA0KLyoNCiAq IGZpcnN0IGxpbmUNCiAqIC4uLg0KICogbGFzdCBsaW5lDQogKi8NCg0KRm9sbG93IHRoaXMgc3R5 bGUgYWNyb3NzIHdob2xlIHBhdGNoc2V0Lg0KDQo+ICtzdGF0aWMgY29uc3QgdTggd2xfcnNzaV9z dGVwXzg3MjNiW10gPSB7NjAsIDUwLCA0NCwgMzB9Ow0KPiArc3RhdGljIGNvbnN0IHU4IGJ0X3Jz c2lfc3RlcF84NzIzYltdID0gezMwLCAzMCwgMzAsIDMwfTsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgY29leF81Z19hZmhfbWFwIGFmaF81Z184NzIzYltdID0geyB7MCwgMCwgMH0gfTsNCj4gKw0K PiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb2V4X3JmX3BhcmEgcmZfcGFyYV90eF84NzIzYltdID0g ew0KPiArICAgICAgIHswLCAwLCBmYWxzZSwgN30sICAvKiBmb3Igbm9ybWFsICovDQo+ICsgICAg ICAgezAsIDEwLCBmYWxzZSwgN30sIC8qIGZvciBXTC1DUFQgKi8NCj4gKyAgICAgICB7MSwgMCwg dHJ1ZSwgNH0sDQo+ICsgICAgICAgezEsIDIsIHRydWUsIDR9LA0KPiArICAgICAgIHsxLCAxMCwg dHJ1ZSwgNH0sDQo+ICsgICAgICAgezEsIDE1LCB0cnVlLCA0fQ0KPiArfTsNCj4gKw0KPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBjb2V4X3JmX3BhcmEgcmZfcGFyYV9yeF84NzIzYltdID0gew0KPiAr ICAgICAgIHswLCAwLCBmYWxzZSwgN30sICAvKiBmb3Igbm9ybWFsICovDQo+ICsgICAgICAgezAs IDEwLCBmYWxzZSwgN30sIC8qIGZvciBXTC1DUFQgKi8NCj4gKyAgICAgICB7MSwgMCwgdHJ1ZSwg NX0sDQo+ICsgICAgICAgezEsIDIsIHRydWUsIDV9LA0KPiArICAgICAgIHsxLCAxMCwgdHJ1ZSwg NX0sDQo+ICsgICAgICAgezEsIDE1LCB0cnVlLCA1fQ0KPiArfTsNCj4gKw0KPiArc3RhdGljX2Fz c2VydChBUlJBWV9TSVpFKHJmX3BhcmFfdHhfODcyM2IpID09IEFSUkFZX1NJWkUocmZfcGFyYV9y eF84NzIzYikpOw0KPiArDQo+ICsvKiB0YWtlbiBmcm9tIHZlbmRvciBmaWxlIGhhbC9waHlkbS9o YWxyZi9oYWxyZl9wb3dlcnRyYWNraW5nX2NlLmMNCj4gKyAqIG9mZG1fc3dpbmdfdGFibGVfbmV3 DQo+ICsgKi8NCg0KTm8gbmVlZCB0byBtZW50aW9uIHRoZSBwbGFjZSB5b3UgYXJlIGNvcHlpbmcg ZnJvbS4NCg0KPiArc3RhdGljIGNvbnN0IHUzMiBydHc4NzIzYl9vZmRtX3N3aW5nX3RhYmxlW10g PSB7DQo+ICsgICAgICAgMHgwYjQwMDAyZCwgLyogMCwgLTE1LjBkQiAqLw0KPiArICAgICAgIDB4 MGMwMDAwMzAsIC8qIDEsIC0xNC41ZEIgKi8NCj4gKyAgICAgICAweDBjYzAwMDMzLCAvKiAyLCAt MTQuMGRCICovDQo+ICsgICAgICAgMHgwZDgwMDAzNiwgLyogMywgLTEzLjVkQiAqLw0KPiArICAg ICAgIDB4MGU0MDAwMzksIC8qIDQsIC0xMy4wZEIgKi8NCj4gKyAgICAgICAweDBmMDAwMDNjLCAv KiA1LCAtMTIuNWRCICovDQo+ICsgICAgICAgMHgxMDAwMDA0MCwgLyogNiwgLTEyLjBkQiAqLw0K PiArICAgICAgIDB4MTEwMDAwNDQsIC8qIDcsIC0xMS41ZEIgKi8NCj4gKyAgICAgICAweDEyMDAw MDQ4LCAvKiA4LCAtMTEuMGRCICovDQo+ICsgICAgICAgMHgxMzAwMDA0YywgLyogOSwgLTEwLjVk QiAqLw0KPiArICAgICAgIDB4MTQ0MDAwNTEsIC8qIDEwLCAtMTAuMGRCICovDQo+ICsgICAgICAg MHgxNTgwMDA1NiwgLyogMTEsIC05LjVkQiAqLw0KPiArICAgICAgIDB4MTZjMDAwNWIsIC8qIDEy LCAtOS4wZEIgKi8NCj4gKyAgICAgICAweDE4MDAwMDYwLCAvKiAxMywgLTguNWRCICovDQo+ICsg ICAgICAgMHgxOTgwMDA2NiwgLyogMTQsIC04LjBkQiAqLw0KPiArICAgICAgIDB4MWIwMDAwNmMs IC8qIDE1LCAtNy41ZEIgKi8NCj4gKyAgICAgICAweDFjODAwMDcyLCAvKiAxNiwgLTcuMGRCICov DQo+ICsgICAgICAgMHgxZTQwMDA3OSwgLyogMTcsIC02LjVkQiAqLw0KPiArICAgICAgIDB4MjAw MDAwODAsIC8qIDE4LCAtNi4wZEIgKi8NCj4gKyAgICAgICAweDIyMDAwMDg4LCAvKiAxOSwgLTUu NWRCICovDQo+ICsgICAgICAgMHgyNDAwMDA5MCwgLyogMjAsIC01LjBkQiAqLw0KPiArICAgICAg IDB4MjYwMDAwOTgsIC8qIDIxLCAtNC41ZEIgKi8NCj4gKyAgICAgICAweDI4ODAwMGEyLCAvKiAy MiwgLTQuMGRCICovDQo+ICsgICAgICAgMHgyYWMwMDBhYiwgLyogMjMsIC0zLjVkQiAqLw0KPiAr ICAgICAgIDB4MmQ0MDAwYjUsIC8qIDI0LCAtMy4wZEIgKi8NCj4gKyAgICAgICAweDMwMDAwMGMw LCAvKiAyNSwgLTIuNWRCICovDQo+ICsgICAgICAgMHgzMmMwMDBjYiwgLyogMjYsIC0yLjBkQiAq Lw0KPiArICAgICAgIDB4MzVjMDAwZDcsIC8qIDI3LCAtMS41ZEIgKi8NCj4gKyAgICAgICAweDM5 MDAwMGU0LCAvKiAyOCwgLTEuMGRCICovDQo+ICsgICAgICAgMHgzYzgwMDBmMiwgLyogMjksIC0w LjVkQiAqLw0KPiArICAgICAgIDB4NDAwMDAxMDAsIC8qIDMwLCArMGRCICovDQo+ICsgICAgICAg MHg0M2MwMDEwZiwgLyogMzEsICswLjVkQiAqLw0KPiArICAgICAgIDB4NDdjMDAxMWYsIC8qIDMy LCArMS4wZEIgKi8NCj4gKyAgICAgICAweDRjMDAwMTMwLCAvKiAzMywgKzEuNWRCICovDQo+ICsg ICAgICAgMHg1MDgwMDE0MiwgLyogMzQsICsyLjBkQiAqLw0KPiArICAgICAgIDB4NTU0MDAxNTUs IC8qIDM1LCArMi41ZEIgKi8NCj4gKyAgICAgICAweDVhNDAwMTY5LCAvKiAzNiwgKzMuMGRCICov DQo+ICsgICAgICAgMHg1ZmMwMDE3ZiwgLyogMzcsICszLjVkQiAqLw0KPiArICAgICAgIDB4NjU0 MDAxOTUsIC8qIDM4LCArNC4wZEIgKi8NCj4gKyAgICAgICAweDZiODAwMWFlLCAvKiAzOSwgKzQu NWRCICovDQo+ICsgICAgICAgMHg3MWMwMDFjNywgLyogNDAsICs1LjBkQiAqLw0KPiArICAgICAg IDB4Nzg4MDAxZTIsIC8qIDQxLCArNS41ZEIgKi8NCj4gKyAgICAgICAweDdmODAwMWZlLCAvKiA0 MiwgKzYuMGRCICovDQo+ICt9Ow0KPiArDQo+ICsvKiBhZGFwdGVkIGZyb20gdmVuZG9yIGZpbGUg aGFsL3BoeWRtL2hhbHJmL3J0bDg3MjNiL2hhbHJmXzg3MjNiX2NlLmMNCj4gKyAqIGZ1bmN0aW9u OiBzZXRfY2NrX2ZpbHRlcl9jb2VmZmljaWVudA0KPiArICovDQo+ICtzdGF0aWMgY29uc3QgdTMy IHJ0dzg3MjNiX2Nja19wd3JfcmVnc1tdID0gew0KPiArICAgICAgIDB4MGEyMiwgMHgwYTIzLCAw eDBhMjQsIDB4MGEyNSwgMHgwYTI2LCAweDBhMjcsIDB4MGEyOCwgMHgwYTI5LA0KPiArfTsNCj4g Kw0KPiArLyogdGFrZW4gZnJvbSB2ZW5kb3IgZmlsZSBoYWwvcGh5ZG0vaGFscmYvaGFscmZfcG93 ZXJ0cmFja2luZ19jZS5jDQo+ICsgKiBjY2tfc3dpbmdfdGFibGVfY2gxX2NoMTNfbmV3DQo+ICsg Ki8NCj4gK3N0YXRpYyBjb25zdCB1OCBydHc4NzMyYl9jY2tfc3dpbmdfdGFibGVfY2gxX2NoMTNb XVs4XSA9IHsNCj4gKyAgICAgICB7MHgwOSwgMHgwOCwgMHgwNywgMHgwNiwgMHgwNCwgMHgwMywg MHgwMSwgMHgwMX0sICAgICAgIC8qIDAsIC0xNi4wZEIgKi8NCj4gKyAgICAgICB7MHgwOSwgMHgw OSwgMHgwOCwgMHgwNiwgMHgwNSwgMHgwMywgMHgwMSwgMHgwMX0sICAgICAgIC8qIDEsIC0xNS41 ZEIgKi8NCj4gKyAgICAgICB7MHgwYSwgMHgwOSwgMHgwOCwgMHgwNywgMHgwNSwgMHgwMywgMHgw MiwgMHgwMX0sICAgICAgIC8qIDIsIC0xNS4wZEIgKi8NCj4gKyAgICAgICB7MHgwYSwgMHgwYSwg MHgwOSwgMHgwNywgMHgwNSwgMHgwMywgMHgwMiwgMHgwMX0sICAgICAgIC8qIDMsIC0xNC41ZEIg Ki8NCj4gKyAgICAgICB7MHgwYiwgMHgwYSwgMHgwOSwgMHgwOCwgMHgwNiwgMHgwNCwgMHgwMiwg MHgwMX0sICAgICAgIC8qIDQsIC0xNC4wZEIgKi8NCj4gKyAgICAgICB7MHgwYiwgMHgwYiwgMHgw YSwgMHgwOCwgMHgwNiwgMHgwNCwgMHgwMiwgMHgwMX0sICAgICAgIC8qIDUsIC0xMy41ZEIgKi8N Cj4gKyAgICAgICB7MHgwYywgMHgwYywgMHgwYSwgMHgwOSwgMHgwNiwgMHgwNCwgMHgwMiwgMHgw MX0sICAgICAgIC8qIDYsIC0xMy4wZEIgKi8NCj4gKyAgICAgICB7MHgwZCwgMHgwYywgMHgwYiwg MHgwOSwgMHgwNywgMHgwNCwgMHgwMiwgMHgwMX0sICAgICAgIC8qIDcsIC0xMi41ZEIgKi8NCj4g KyAgICAgICB7MHgwZCwgMHgwZCwgMHgwYywgMHgwYSwgMHgwNywgMHgwNSwgMHgwMiwgMHgwMX0s ICAgICAgIC8qIDgsIC0xMi4wZEIgKi8NCj4gKyAgICAgICB7MHgwZSwgMHgwZSwgMHgwYywgMHgw YSwgMHgwOCwgMHgwNSwgMHgwMiwgMHgwMX0sICAgICAgIC8qIDksIC0xMS41ZEIgKi8NCj4gKyAg ICAgICB7MHgwZiwgMHgwZiwgMHgwZCwgMHgwYiwgMHgwOCwgMHgwNSwgMHgwMywgMHgwMX0sICAg ICAgIC8qIDEwLCAtMTEuMGRCICovDQo+ICsgICAgICAgezB4MTAsIDB4MTAsIDB4MGUsIDB4MGIs IDB4MDgsIDB4MDUsIDB4MDMsIDB4MDF9LCAgICAgICAvKiAxMSwgLTEwLjVkQiAqLw0KPiArICAg ICAgIHsweDExLCAweDExLCAweDBmLCAweDBjLCAweDA5LCAweDA2LCAweDAzLCAweDAxfSwgICAg ICAgLyogMTIsIC0xMC4wZEIgKi8NCj4gKyAgICAgICB7MHgxMiwgMHgxMiwgMHgwZiwgMHgwYywg MHgwOSwgMHgwNiwgMHgwMywgMHgwMX0sICAgICAgIC8qIDEzLCAtOS41ZEIgKi8NCj4gKyAgICAg ICB7MHgxMywgMHgxMywgMHgxMCwgMHgwZCwgMHgwYSwgMHgwNiwgMHgwMywgMHgwMX0sICAgICAg IC8qIDE0LCAtOS4wZEIgKi8NCj4gKyAgICAgICB7MHgxNCwgMHgxNCwgMHgxMSwgMHgwZSwgMHgw YiwgMHgwNywgMHgwMywgMHgwMn0sICAgICAgIC8qIDE1LCAtOC41ZEIgKi8NCj4gKyAgICAgICB7 MHgxNiwgMHgxNSwgMHgxMiwgMHgwZiwgMHgwYiwgMHgwNywgMHgwNCwgMHgwMX0sICAgICAgIC8q IDE2LCAtOC4wZEIgKi8NCj4gKyAgICAgICB7MHgxNywgMHgxNiwgMHgxMywgMHgxMCwgMHgwYywg MHgwOCwgMHgwNCwgMHgwMn0sICAgICAgIC8qIDE3LCAtNy41ZEIgKi8NCj4gKyAgICAgICB7MHgx OCwgMHgxNywgMHgxNSwgMHgxMSwgMHgwYywgMHgwOCwgMHgwNCwgMHgwMn0sICAgICAgIC8qIDE4 LCAtNy4wZEIgKi8NCj4gKyAgICAgICB7MHgxYSwgMHgxOSwgMHgxNiwgMHgxMiwgMHgwZCwgMHgw OSwgMHgwNCwgMHgwMn0sICAgICAgIC8qIDE5LCAtNi41ZEIgKi8NCj4gKyAgICAgICB7MHgxYiwg MHgxYSwgMHgxNywgMHgxMywgMHgwZSwgMHgwOSwgMHgwNCwgMHgwMn0sICAgICAgIC8qIDIwLCAt Ni4wZEIgKi8NCj4gKyAgICAgICB7MHgxZCwgMHgxYywgMHgxOCwgMHgxNCwgMHgwZiwgMHgwYSwg MHgwNSwgMHgwMn0sICAgICAgIC8qIDIxLCAtNS41ZEIgKi8NCj4gKyAgICAgICB7MHgxZiwgMHgx ZSwgMHgxYSwgMHgxNSwgMHgxMCwgMHgwYSwgMHgwNSwgMHgwMn0sICAgICAgIC8qIDIyLCAtNS4w ZEIgKi8NCj4gKyAgICAgICB7MHgyMCwgMHgyMCwgMHgxYiwgMHgxNiwgMHgxMSwgMHgwOCwgMHgw NSwgMHgwMn0sICAgICAgIC8qIDIzLCAtNC41ZEIgKi8NCj4gKyAgICAgICB7MHgyMiwgMHgyMSwg MHgxZCwgMHgxOCwgMHgxMSwgMHgwYiwgMHgwNiwgMHgwMn0sICAgICAgIC8qIDI0LCAtNC4wZEIg Ki8NCj4gKyAgICAgICB7MHgyNCwgMHgyMywgMHgxZiwgMHgxOSwgMHgxMywgMHgwYywgMHgwNiwg MHgwM30sICAgICAgIC8qIDI1LCAtMy41ZEIgKi8NCj4gKyAgICAgICB7MHgyNiwgMHgyNSwgMHgy MSwgMHgxYiwgMHgxNCwgMHgwZCwgMHgwNiwgMHgwM30sICAgICAgIC8qIDI2LCAtMy4wZEIgKi8N Cj4gKyAgICAgICB7MHgyOCwgMHgyOCwgMHgyMiwgMHgxYywgMHgxNSwgMHgwZCwgMHgwNywgMHgw M30sICAgICAgIC8qIDI3LCAtMi41ZEIgKi8NCj4gKyAgICAgICB7MHgyYiwgMHgyYSwgMHgyNSwg MHgxZSwgMHgxNiwgMHgwZSwgMHgwNywgMHgwM30sICAgICAgIC8qIDI4LCAtMi4wZEIgKi8NCj4g KyAgICAgICB7MHgyZCwgMHgyZCwgMHgyNywgMHgxZiwgMHgxOCwgMHgwZiwgMHgwOCwgMHgwM30s ICAgICAgIC8qIDI5LCAtMS41ZEIgKi8NCj4gKyAgICAgICB7MHgzMCwgMHgyZiwgMHgyOSwgMHgy MSwgMHgxOSwgMHgxMCwgMHgwOCwgMHgwM30sICAgICAgIC8qIDMwLCAtMS4wZEIgKi8NCj4gKyAg ICAgICB7MHgzMywgMHgzMiwgMHgyYiwgMHgyMywgMHgxYSwgMHgxMSwgMHgwOCwgMHgwNH0sICAg ICAgIC8qIDMxLCAtMC41ZEIgKi8NCj4gKyAgICAgICB7MHgzNiwgMHgzNSwgMHgyZSwgMHgyNSwg MHgxYywgMHgxMiwgMHgwOSwgMHgwNH0sICAgICAgIC8qIDMyLCArMGRCICovDQo+ICt9Ow0KPiAr DQo+ICsvKiB0YWtlbiBmcm9tIHZlbmRvciBmaWxlIGhhbC9waHlkbS9oYWxyZi9oYWxyZl9wb3dl cnRyYWNraW5nX2NlLmMNCj4gKyAqIGNja19zd2luZ190YWJsZV9jaDE0X25ldw0KPiArICovDQo+ ICtzdGF0aWMgY29uc3QgdTggcnR3ODczMmJfY2NrX3N3aW5nX3RhYmxlX2NoMTRbXVs4XSA9IHsN Cj4gKyAgICAgICB7MHgwOSwgMHgwOCwgMHgwNywgMHgwNCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MH0sICAgICAgIC8qIDAsIC0xNi4wZEIgKi8NCj4gKyAgICAgICB7MHgwOSwgMHgwOSwgMHgwOCwg MHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDEsIC0xNS41ZEIgKi8NCj4g KyAgICAgICB7MHgwYSwgMHgwOSwgMHgwOCwgMHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0s ICAgICAgIC8qIDIsIC0xNS4wZEIgKi8NCj4gKyAgICAgICB7MHgwYSwgMHgwYSwgMHgwOSwgMHgw NSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDMsIC0xNC41ZEIgKi8NCj4gKyAg ICAgICB7MHgwYiwgMHgwYSwgMHgwOSwgMHgwNSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAg ICAgIC8qIDQsIC0xNC4wZEIgKi8NCj4gKyAgICAgICB7MHgwYiwgMHgwYiwgMHgwYSwgMHgwNiwg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDUsIC0xMy41ZEIgKi8NCj4gKyAgICAg ICB7MHgwYywgMHgwYywgMHgwYSwgMHgwNiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAg IC8qIDYsIC0xMy4wZEIgKi8NCj4gKyAgICAgICB7MHgwZCwgMHgwYywgMHgwYiwgMHgwNiwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDcsIC0xMi41ZEIgKi8NCj4gKyAgICAgICB7 MHgwZCwgMHgwZCwgMHgwYywgMHgwNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8q IDgsIC0xMi4wZEIgKi8NCj4gKyAgICAgICB7MHgwZSwgMHgwZSwgMHgwYywgMHgwNywgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDksIC0xMS41ZEIgKi8NCj4gKyAgICAgICB7MHgw ZiwgMHgwZiwgMHgwZCwgMHgwOCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDEw LCAtMTEuMGRCICovDQo+ICsgICAgICAgezB4MTAsIDB4MTAsIDB4MGUsIDB4MDgsIDB4MDAsIDB4 MDAsIDB4MDAsIDB4MDB9LCAgICAgICAvKiAxMSwgLTEwLjVkQiAqLw0KPiArICAgICAgIHsweDEx LCAweDExLCAweDBmLCAweDA5LCAweDAwLCAweDAwLCAweDAwLCAweDAwfSwgICAgICAgLyogMTIs IC0xMC4wZEIgKi8NCj4gKyAgICAgICB7MHgxMiwgMHgxMiwgMHgwZiwgMHgwOSwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDEzLCAtOS41ZEIgKi8NCj4gKyAgICAgICB7MHgxMywg MHgxMywgMHgxMCwgMHgwYSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDE0LCAt OS4wZEIgKi8NCj4gKyAgICAgICB7MHgxNCwgMHgxNCwgMHgxMSwgMHgwYSwgMHgwMCwgMHgwMCwg MHgwMCwgMHgwMH0sICAgICAgIC8qIDE1LCAtOC41ZEIgKi8NCj4gKyAgICAgICB7MHgxNiwgMHgx NSwgMHgxMiwgMHgwYiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDE2LCAtOC4w ZEIgKi8NCj4gKyAgICAgICB7MHgxNywgMHgxNiwgMHgxMywgMHgwYiwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMH0sICAgICAgIC8qIDE3LCAtNy41ZEIgKi8NCj4gKyAgICAgICB7MHgxOCwgMHgxNywg MHgxNSwgMHgwYywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDE4LCAtNy4wZEIg Ki8NCj4gKyAgICAgICB7MHgxYSwgMHgxOSwgMHgxNiwgMHgwZCwgMHgwMCwgMHgwMCwgMHgwMCwg MHgwMH0sICAgICAgIC8qIDE5LCAtNi41ZEIgKi8NCj4gKyAgICAgICB7MHgxYiwgMHgxYSwgMHgx NywgMHgwZSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDIwLCAtNi4wZEIgKi8N Cj4gKyAgICAgICB7MHgxZCwgMHgxYywgMHgxOCwgMHgwZSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgw MH0sICAgICAgIC8qIDIxLCAtNS41ZEIgKi8NCj4gKyAgICAgICB7MHgxZiwgMHgxZSwgMHgxYSwg MHgwZiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDIyLCAtNS4wZEIgKi8NCj4g KyAgICAgICB7MHgyMCwgMHgyMCwgMHgxYiwgMHgxMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0s ICAgICAgIC8qIDIzLCAtNC41ZEIgKi8NCj4gKyAgICAgICB7MHgyMiwgMHgyMSwgMHgxZCwgMHgx MSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDI0LCAtNC4wZEIgKi8NCj4gKyAg ICAgICB7MHgyNCwgMHgyMywgMHgxZiwgMHgxMiwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAg ICAgIC8qIDI1LCAtMy41ZEIgKi8NCj4gKyAgICAgICB7MHgyNiwgMHgyNSwgMHgyMSwgMHgxMywg MHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDI2LCAtMy4wZEIgKi8NCj4gKyAgICAg ICB7MHgyOCwgMHgyOCwgMHgyNCwgMHgxNCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAg IC8qIDI3LCAtMi41ZEIgKi8NCj4gKyAgICAgICB7MHgyYiwgMHgyYSwgMHgyNSwgMHgxNSwgMHgw MCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDI4LCAtMi4wZEIgKi8NCj4gKyAgICAgICB7 MHgyZCwgMHgyZCwgMHgxNywgMHgxNywgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8q IDI5LCAtMS41ZEIgKi8NCj4gKyAgICAgICB7MHgzMCwgMHgyZiwgMHgyOSwgMHgxOCwgMHgwMCwg MHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDMwLCAtMS4wZEIgKi8NCj4gKyAgICAgICB7MHgz MywgMHgzMiwgMHgyYiwgMHgxOSwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDMx LCAtMC41ZEIgKi8NCj4gKyAgICAgICB7MHgzNiwgMHgzNSwgMHgyZSwgMHgxYiwgMHgwMCwgMHgw MCwgMHgwMCwgMHgwMH0sICAgICAgIC8qIDMyLCArMGRCICovDQo+ICt9Ow0KPiArDQo+ICtzdGF0 aWNfYXNzZXJ0KEFSUkFZX1NJWkUocnR3ODczMmJfY2NrX3N3aW5nX3RhYmxlX2NoMV9jaDEzKSA9 PQ0KPiArICAgICAgICAgICAgIEFSUkFZX1NJWkUocnR3ODczMmJfY2NrX3N3aW5nX3RhYmxlX2No MTQpKTsNCj4gKw0KPiArI2RlZmluZSBSVFdfT0ZETV9TV0lOR19UQUJMRV9TSVpFICAgICAgQVJS QVlfU0laRShydHc4NzIzYl9vZmRtX3N3aW5nX3RhYmxlKQ0KPiArI2RlZmluZSBSVFdfQ0NLX1NX SU5HX1RBQkxFX1NJWkUgICAgICAgQVJSQVlfU0laRShydHc4NzMyYl9jY2tfc3dpbmdfdGFibGVf Y2gxNCkNCj4gKw0KPiArLyogc2VlIHZlbmRvciBmdW5jdGlvbnMgX0luaXRQb3dlck9uXzg3MjNC UyBhbmQgQ2FyZEVuYWJsZQ0KPiArICovDQoNCk5vIG5lZWQuDQoNCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgcnR3X3B3cl9zZXFfY21kIHRyYW5zX3ByZV9lbmFibGVfODcyM2JbXSA9IHsNCj4gKyAg ICAgICAvKiB1bmxvY2sgSVNPL0NMSy9wb3dlciBjb250cm9sIHJlZ2lzdGVyICovDQo+ICsgICAg ICAge1JFR19SU1ZfQ1RSTCwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAg ICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfQUREUl9NQUMs DQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCAweGZmLCAwfSwNCj4gKw0KDQpObyB0aGlz IGVtcHR5IGxpbmUuDQoNCj4gKyAgICAgICB7VFJBTlNfU0VRX0VORH0sDQo+ICt9Ow0KPiArDQo+ ICsvKiB0cmFuc2l0aW9ucyBhZGFwdGVkIGZyb20gdmVuZG9yIGZpbGUgaW5jbHVkZS9IYWw4NzIz QlB3clNlcS5oDQo+ICsgKi8NCg0KUmVtb3ZlIHRoaXMga2luZCBvZiByZWZlcmVuY2UgYWNyb3Nz IHdob2xlIHBhdGNoLg0KDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19wd3Jfc2VxX2NtZCB0 cmFuc19jYXJkZGlzX3RvX2NhcmRlbXVfODcyM2JbXSA9IHsNCj4gKyAgICAgICB7MHgwMDA1LA0K PiArICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZf QUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BX Ul9DTURfV1JJVEUsIEJJVCgzKSB8IEJJVCg3KSwgMH0sDQo+ICsNCg0Kbm8gbmVlZCBlbXB0eSBs aW5lLg0KDQo+ICsgICAgICAgezB4MDA4NiwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01T SywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX1NESU9fTVNLLA0KPiArICAgICAgICBSVFdfUFdS X0FERFJfU0RJTywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCgwKSwgMH0sDQo+ ICsNCj4gKyAgICAgICB7MHgwMDg2LA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNLLA0K PiArICAgICAgICBSVFdfUFdSX0lOVEZfU0RJT19NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfQURE Ul9TRElPLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9QT0xMSU5HLCBCSVQoMSksIEJJVCgxKX0s DQo+ICsNCj4gKyAgICAgICB7MHgwMDRBLA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNL LA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfVVNCX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9B RERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCgwKSwgMH0sDQo+ICsN Cj4gKyAgICAgICB7MHgwMDA1LA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNLLA0KPiAr ICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01B QywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCgzKSB8IEJJVCg0KSwgMH0sDQo+ ICsNCj4gKyAgICAgICB7MHgwMDIzLA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNLLA0K PiArICAgICAgICBSVFdfUFdSX0lOVEZfU0RJT19NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfQURE Ul9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCBCSVQoNCksIDB9LA0KPiArDQo+ ICsgICAgICAgezB4MDMwMSwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAg ICAgICAgUlRXX1BXUl9JTlRGX1BDSV9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfQUREUl9NQUMs DQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCAweEZGLCAwfSwNCj4gKw0KPiArICAgICAg IHtUUkFOU19TRVFfRU5EfSwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3 X3B3cl9zZXFfY21kIHRyYW5zX2NhcmRlbXVfdG9fYWN0Xzg3MjNiW10gPSB7DQo+ICsgICAgICAg ezB4MDAyMCwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRX X1BXUl9JTlRGX1VTQl9NU0sgfCBSVFdfUFdSX0lOVEZfU0RJT19NU0ssDQo+ICsgICAgICAgIFJU V19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCBCSVQoMCksIEJJ VCgwKX0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDY3LA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9B TExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfVVNCX01TSyB8IFJUV19QV1JfSU5URl9T RElPX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BX Ul9DTURfV1JJVEUsIEJJVCg0KSwgMH0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDAxLA0KPiArICAg ICAgICBSVFdfUFdSX0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfVVNCX01T SyB8IFJUV19QV1JfSU5URl9TRElPX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywN Cj4gKyAgICAgICAgUlRXX1BXUl9DTURfREVMQVksIDEsIFJUV19QV1JfREVMQVlfTVN9LA0KPiAr DQo+ICsgICAgICAgezB4MDAwMCwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4g KyAgICAgICAgUlRXX1BXUl9JTlRGX1VTQl9NU0sgfCBSVFdfUFdSX0lOVEZfU0RJT19NU0ssDQo+ ICsgICAgICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRF LCBCSVQoNSksIDB9LA0KPiArDQo+ICsgICAgICAgezB4MDAwNSwNCj4gKyAgICAgICAgUlRXX1BX Ul9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ICsgICAg ICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCAoQklU KDQpIHwgQklUKDMpIHwgQklUKDIpKSwgMH0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDc1LA0KPiAr ICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfUENJ X01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9D TURfV1JJVEUsIEJJVCgwKSwgQklUKDApfSwNCj4gKw0KPiArICAgICAgIHsweDAwMDYsDQo+ICsg ICAgICAgIFJUV19QV1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExf TVNLLA0KPiArICAgICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NN RF9QT0xMSU5HLCBCSVQoMSksIEJJVCgxKX0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDc1LA0KPiAr ICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfUENJ X01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9D TURfV1JJVEUsIEJJVCgwKSwgMH0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDA2LA0KPiArICAgICAg ICBSVFdfUFdSX0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywN Cj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJ VEUsIEJJVCgwKSwgQklUKDApfSwNCj4gKw0KPiArICAgICAgIHsweDAwMDUsDQo+ICsgICAgICAg IFJUV19QV1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0K PiArICAgICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklU RSwgQklUKDcpLCAwfSwNCj4gKw0KPiArICAgICAgIHsweDAwMDUsDQo+ICsgICAgICAgIFJUV19Q V1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiArICAg ICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgQklU KDQpIHwgQklUKDMpLCAwfSwNCj4gKw0KPiArICAgICAgIHsweDAwMDUsDQo+ICsgICAgICAgIFJU V19QV1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiAr ICAgICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwg QklUKDApLCBCSVQoMCl9LA0KPiArDQo+ICsgICAgICAgezB4MDAwNSwNCj4gKyAgICAgICAgUlRX X1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ICsg ICAgICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1BPTExJTkcs IEJJVCgwKSwgMH0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDEwLA0KPiArICAgICAgICBSVFdfUFdS X0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4gKyAgICAg ICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCg2 KSwgQklUKDYpfSwNCj4gKw0KPiArICAgICAgIHsweDAwNDksDQo+ICsgICAgICAgIFJUV19QV1Jf Q1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiArICAgICAg ICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgQklUKDEp LCBCSVQoMSl9LA0KPiArDQo+ICsgICAgICAgezB4MDA2MywNCj4gKyAgICAgICAgUlRXX1BXUl9D VVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ICsgICAgICAg IFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCBCSVQoMSks IEJJVCgxKX0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDYyLA0KPiArICAgICAgICBSVFdfUFdSX0NV VF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4gKyAgICAgICAg UlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCgxKSwg MH0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDU4LA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9BTExf TVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BX Ul9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCgwKSwgQklUKDAp fSwNCj4gKw0KPiArICAgICAgIHsweDAwNUEsDQo+ICsgICAgICAgIFJUV19QV1JfQ1VUX0FMTF9N U0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdS X0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgQklUKDEpLCBCSVQoMSl9 LA0KPiArDQo+ICsgICAgICAgezB4MDA2OCwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfVEVTVF9N U0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdS X0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgQklUKDMpLCBCSVQoMyl9 LA0KPiArDQo+ICsgICAgICAgezB4MDA2OSwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01T SywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1Jf QUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCBCSVQoNiksIEJJVCg2KX0s DQo+ICsNCj4gKyAgICAgICAge1RSQU5TX1NFUV9FTkR9LA0KPiArfTsNCj4gKw0KPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBydHdfcHdyX3NlcV9jbWQgdHJhbnNfYWN0X3RvX2xwc184NzIzYltdID0g ew0KPiArICAgICAgIHsweDAzMDEsDQo+ICsgICAgICAgIFJUV19QV1JfQ1VUX0FMTF9NU0ssDQo+ ICsgICAgICAgIFJUV19QV1JfSU5URl9QQ0lfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0FERFJf TUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgMHhGRiwgMHhGRn0sDQo+ICsNCj4g KyAgICAgICB7MHgwNTIyLA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNLLA0KPiArICAg ICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywN Cj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIDB4RkYsIDB4RkZ9LA0KPiArDQo+ICsgICAg ICAgezB4MDVGOCwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAg UlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsg ICAgICAgIFJUV19QV1JfQ01EX1BPTExJTkcsIDB4RkYsIDB9LA0KPiArDQo+ICsgICAgICAgezB4 MDVGOSwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BX Ul9JTlRGX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAg IFJUV19QV1JfQ01EX1BPTExJTkcsIDB4RkYsIDB9LA0KPiArDQo+ICsgICAgICAgezB4MDVGQSwN Cj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRG X0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19Q V1JfQ01EX1BPTExJTkcsIDB4RkYsIDB9LA0KPiArDQo+ICsgICAgICAgezB4MDVGQiwNCj4gKyAg ICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9N U0ssDQo+ICsgICAgICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01E X1BPTExJTkcsIDB4RkYsIDB9LA0KPiArDQo+ICsgICAgICAgezB4MDAwMiwNCj4gKyAgICAgICAg UlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ ICsgICAgICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRF LCBCSVQoMCksIDB9LA0KPiArDQo+ICsgICAgICAgezB4MDAwMiwNCj4gKyAgICAgICAgUlRXX1BX Ul9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ICsgICAg ICAgIFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX0RFTEFZLCAwLCBS VFdfUFdSX0RFTEFZX1VTfSwNCj4gKw0KPiArICAgICAgIHsweDAwMDIsDQo+ICsgICAgICAgIFJU V19QV1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiAr ICAgICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwg QklUKDEpLCAwfSwNCj4gKw0KPiArICAgICAgIHsweDAxMDAsDQo+ICsgICAgICAgIFJUV19QV1Jf Q1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiArICAgICAg ICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgMHhGRiwg MHgwM30sDQo+ICsNCj4gKyAgICAgICB7MHgwMTAxLA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9B TExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4gKyAgICAgICAgUlRX X1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCgxKSwgMH0s DQo+ICsNCj4gKyAgICAgICB7MHgwMDkzLA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNL LA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfU0RJT19NU0ssDQo+ICsgICAgICAgIFJUV19QV1Jf QUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCAweEZGLCAweDAwfSwNCj4g Kw0KPiArICAgICAgIHsweDA1NTMsDQo+ICsgICAgICAgIFJUV19QV1JfQ1VUX0FMTF9NU0ssDQo+ ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0FERFJf TUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgQklUKDUpLCBCSVQoNSl9LA0KPiAr DQo+ICsgICAgICAge1RSQU5TX1NFUV9FTkR9LA0KPiArfTsNCj4gKw0KPiArLyogYWRhcHRlZCBm cm9tIHZlbmRvciBmdW5jdGlvbiBDYXJkRGlzYWJsZVJUTDg3MjNCU2Rpbw0KPiArICovDQo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IHJ0d19wd3Jfc2VxX2NtZCB0cmFuc19hY3RfdG9fcmVzZXRfbWN1 Xzg3MjNiW10gPSB7DQo+ICsgICAgICAge1JFR19TWVNfRlVOQ19FTiArIDEsDQo+ICsgICAgICAg IFJUV19QV1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9TRElPX01TSywN Cj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJ VEUsIEJJVF9GRU5fQ1BVRU4sIDB9LA0KPiArICAgICAgIC8qIHJlc2V0IE1DVSByZWFkeSAqLw0K PiArICAgICAgIHtSRUdfTUNVRldfQ1RSTCwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01T SywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX1NESU9fTVNLLA0KPiArICAgICAgICBSVFdfUFdS X0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgMHhmZiwgMH0sDQo+ICsg ICAgICAgLyogcmVzZXQgTUNVIElPIHdyYXBwZXIgKi8NCj4gKyAgICAgICB7UkVHX1JTVl9DVFJM ICsgMSwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BX Ul9JTlRGX1NESU9fTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAg ICBSVFdfUFdSX0NNRF9XUklURSwgQklUKDApLCAwfSwNCj4gKyAgICAgICB7UkVHX1JTVl9DVFJM ICsgMSwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BX Ul9JTlRGX1NESU9fTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAg ICBSVFdfUFdSX0NNRF9XUklURSwgQklUKDApLCAxfSwNCj4gKyAgICAgICB7VFJBTlNfU0VRX0VO RH0sDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19wd3Jfc2VxX2NtZCB0 cmFuc19hY3RfdG9fY2FyZGVtdV84NzIzYltdID0gew0KPiArICAgICAgIHsweDAwMUYsDQo+ICsg ICAgICAgIFJUV19QV1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExf TVNLLA0KPiArICAgICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NN RF9XUklURSwgMHhGRiwgMH0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDQ5LA0KPiArICAgICAgICBS VFdfUFdSX0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4g KyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUs IEJJVCgxKSwgMH0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDA2LA0KPiArICAgICAgICBSVFdfUFdS X0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4gKyAgICAg ICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCgw KSwgQklUKDApfSwNCj4gKw0KPiArICAgICAgIHsweDAwMDUsDQo+ICsgICAgICAgIFJUV19QV1Jf Q1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9BTExfTVNLLA0KPiArICAgICAg ICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgQklUKDEp LCBCSVQoMSl9LA0KPiArDQo+ICsgICAgICAgezB4MDAwNSwNCj4gKyAgICAgICAgUlRXX1BXUl9D VVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9JTlRGX0FMTF9NU0ssDQo+ICsgICAgICAg IFJUV19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1BPTExJTkcsIEJJVCgx KSwgMH0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDEwLA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9B TExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfQUxMX01TSywNCj4gKyAgICAgICAgUlRX X1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCg2KSwgMH0s DQo+ICsNCj4gKyAgICAgICB7MHgwMDAwLA0KPiArICAgICAgICBSVFdfUFdSX0NVVF9BTExfTVNL LA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfVVNCX01TSyB8IFJUV19QV1JfSU5URl9TRElPX01T SywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURf V1JJVEUsIEJJVCg1KSwgQklUKDUpfSwNCj4gKw0KPiArICAgICAgIHsweDAwMjAsDQo+ICsgICAg ICAgIFJUV19QV1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9VU0JfTVNL IHwgUlRXX1BXUl9JTlRGX1NESU9fTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0FERFJfTUFDLA0K PiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgQklUKDApLCAwfSwNCj4gKw0KPiArICAgICAg IHtUUkFOU19TRVFfRU5EfSwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3 X3B3cl9zZXFfY21kIHRyYW5zX2NhcmRlbXVfdG9fY2FyZGRpc184NzIzYltdID0gew0KPiArICAg ICAgIHsweDAwMDcsDQo+ICsgICAgICAgIFJUV19QV1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAg IFJUV19QV1JfSU5URl9TRElPX01TSywNCj4gKyAgICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4g KyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIDB4RkYsIDB4MjB9LA0KPiArDQo+ICsgICAgICAg ezB4MDAwNSwNCj4gKyAgICAgICAgUlRXX1BXUl9DVVRfQUxMX01TSywNCj4gKyAgICAgICAgUlRX X1BXUl9JTlRGX1VTQl9NU0sgfCBSVFdfUFdSX0lOVEZfU0RJT19NU0ssDQo+ICsgICAgICAgIFJU V19QV1JfQUREUl9NQUMsDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCBCSVQoMykgfCBC SVQoNCksIEJJVCgzKX0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDA1LA0KPiArICAgICAgICBSVFdf UFdSX0NVVF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfUENJX01TSywNCj4gKyAg ICAgICAgUlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJ VCgyKSwgQklUKDIpfSwNCj4gKw0KPiArICAgICAgIHsweDAwNEEsDQo+ICsgICAgICAgIFJUV19Q V1JfQ1VUX0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9VU0JfTVNLLA0KPiArICAg ICAgICBSVFdfUFdSX0FERFJfTUFDLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9XUklURSwgQklU KDApLCAxfSwNCj4gKw0KPiArICAgICAgIHsweDAwMjMsDQo+ICsgICAgICAgIFJUV19QV1JfQ1VU X0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9TRElPX01TSywNCj4gKyAgICAgICAg UlRXX1BXUl9BRERSX01BQywNCj4gKyAgICAgICAgUlRXX1BXUl9DTURfV1JJVEUsIEJJVCg0KSwg QklUKDQpfSwNCj4gKw0KPiArICAgICAgIHsweDAwODYsDQo+ICsgICAgICAgIFJUV19QV1JfQ1VU X0FMTF9NU0ssDQo+ICsgICAgICAgIFJUV19QV1JfSU5URl9TRElPX01TSywNCj4gKyAgICAgICAg UlRXX1BXUl9BRERSX1NESU8sDQo+ICsgICAgICAgIFJUV19QV1JfQ01EX1dSSVRFLCBCSVQoMCks IEJJVCgwKX0sDQo+ICsNCj4gKyAgICAgICB7MHgwMDg2LA0KPiArICAgICAgICBSVFdfUFdSX0NV VF9BTExfTVNLLA0KPiArICAgICAgICBSVFdfUFdSX0lOVEZfU0RJT19NU0ssDQo+ICsgICAgICAg IFJUV19QV1JfQUREUl9TRElPLA0KPiArICAgICAgICBSVFdfUFdSX0NNRF9QT0xMSU5HLCBCSVQo MSksIDB9LA0KPiArDQo+ICsgICAgICAge1RSQU5TX1NFUV9FTkR9LA0KPiArfTsNCj4gKw0KPiAr LyogYWRhcHRlZCBmcm9tIHZlbmRvciBmaWxlIGhhbC9ydGw4NzIzYi9IYWw4NzIzQlB3clNlcS5j DQo+ICsgKi8NCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3B3cl9zZXFfY21kICogY29uc3Qg Y2FyZF9lbmFibGVfZmxvd184NzIzYltdID0gew0KPiArICAgICAgIHRyYW5zX3ByZV9lbmFibGVf ODcyM2IsDQo+ICsgICAgICAgdHJhbnNfY2FyZGRpc190b19jYXJkZW11Xzg3MjNiLA0KPiArICAg ICAgIHRyYW5zX2NhcmRlbXVfdG9fYWN0Xzg3MjNiLA0KPiArICAgICAgIE5VTEwNCj4gK307DQo+ ICsNCj4gKy8qIHNlZSB2ZW5kb3IgZnVuY3Rpb24gQ2FyZERpc2FibGVSVEw4NzIzQlNkaW8NCj4g KyAqLw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBydHdfcHdyX3NlcV9jbWQgKiBjb25zdCBjYXJk X2Rpc2FibGVfZmxvd184NzIzYltdID0gew0KPiArICAgICAgIHRyYW5zX2FjdF90b19scHNfODcy M2IsDQo+ICsgICAgICAgdHJhbnNfYWN0X3RvX3Jlc2V0X21jdV84NzIzYiwNCj4gKyAgICAgICB0 cmFuc19hY3RfdG9fY2FyZGVtdV84NzIzYiwNCj4gKyAgICAgICB0cmFuc19jYXJkZW11X3RvX2Nh cmRkaXNfODcyM2IsDQo+ICsgICAgICAgTlVMTA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0 IHN0cnVjdCBydHdfcGFnZV90YWJsZSBwYWdlX3RhYmxlXzg3MjNiW10gPSB7DQo+ICsgICAgICAg LyogTWF0Y2hlcyB0aGUgdmVuZG9yIHF1ZXVlIHNwbGl0IHdpdGggcnN2ZF9kcnZfcGdfbnVtID0g OC4gKi8NCj4gKyAgICAgICB7MTIsIDIsIDIsIDAsIDF9LCAvKiBTRElPICovDQo+ICsgICAgICAg ezEyLCAyLCAyLCAwLCAxfSwNCj4gKyAgICAgICB7MTIsIDIsIDIsIDAsIDF9LA0KPiArICAgICAg IHsxMiwgMiwgMiwgMCwgMX0sDQo+ICsgICAgICAgezEyLCAyLCAyLCAwLCAxfSwNCj4gK307DQo+ ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcnR3X3JxcG4gcnFwbl90YWJsZV84NzIzYltdID0g ew0KPiArICAgICAgIC8qIFNESU86IDMtb3V0LXBpcGUgc3RhZ2luZyBtYXBzIFZPL01HL0hJIHRv IHRoZSBoaWdoIHF1ZXVlLiAqLw0KPiArICAgICAgIHtSVFdfRE1BX01BUFBJTkdfSElHSCwgUlRX X0RNQV9NQVBQSU5HX05PUk1BTCwNCj4gKyAgICAgICAgUlRXX0RNQV9NQVBQSU5HX0xPVywgUlRX X0RNQV9NQVBQSU5HX0xPVywNCj4gKyAgICAgICAgUlRXX0RNQV9NQVBQSU5HX0hJR0gsIFJUV19E TUFfTUFQUElOR19ISUdIfSwNCj4gKyAgICAgICAvKiBQQ0lFICovDQo+ICsgICAgICAge1JUV19E TUFfTUFQUElOR19OT1JNQUwsIFJUV19ETUFfTUFQUElOR19OT1JNQUwsDQo+ICsgICAgICAgIFJU V19ETUFfTUFQUElOR19MT1csIFJUV19ETUFfTUFQUElOR19MT1csDQo+ICsgICAgICAgIFJUV19E TUFfTUFQUElOR19ISUdILCBSVFdfRE1BX01BUFBJTkdfSElHSH0sDQo+ICsgICAgICAgLyogVVNC IGJ1bGtvdXQgMiAqLw0KPiArICAgICAgIHtSVFdfRE1BX01BUFBJTkdfTk9STUFMLCBSVFdfRE1B X01BUFBJTkdfTk9STUFMLA0KPiArICAgICAgICBSVFdfRE1BX01BUFBJTkdfTk9STUFMLCBSVFdf RE1BX01BUFBJTkdfSElHSCwNCj4gKyAgICAgICAgUlRXX0RNQV9NQVBQSU5HX0hJR0gsIFJUV19E TUFfTUFQUElOR19ISUdIfSwNCj4gKyAgICAgICAvKiBVU0IgYnVsa291dCAzICovDQo+ICsgICAg ICAge1JUV19ETUFfTUFQUElOR19OT1JNQUwsIFJUV19ETUFfTUFQUElOR19OT1JNQUwsDQo+ICsg ICAgICAgIFJUV19ETUFfTUFQUElOR19MT1csIFJUV19ETUFfTUFQUElOR19MT1csDQo+ICsgICAg ICAgIFJUV19ETUFfTUFQUElOR19ISUdILCBSVFdfRE1BX01BUFBJTkdfSElHSH0sDQo+ICsgICAg ICAgLyogVVNCIGJ1bGtvdXQgNCAqLw0KPiArICAgICAgIHtSVFdfRE1BX01BUFBJTkdfTk9STUFM LCBSVFdfRE1BX01BUFBJTkdfTk9STUFMLA0KPiArICAgICAgICBSVFdfRE1BX01BUFBJTkdfTE9X LCBSVFdfRE1BX01BUFBJTkdfTE9XLA0KPiArICAgICAgICBSVFdfRE1BX01BUFBJTkdfSElHSCwg UlRXX0RNQV9NQVBQSU5HX0hJR0h9LA0KPiArfTsNCj4gKw0KPiArLyogdGFrZW4gZnJvbSB2ZW5k b3IgZmlsZSBoYWwvcGh5ZG0vcnRsODcyM2IvaGFsaHdpbWc4NzIzYl9yZi5jDQo+ICsgKiB0eHBv d2VydHJhY2tfc2Rpby5UWFQgc2VjdGlvbg0KPiArICogTk9URTogdGFibGVzIGZvciBwY2llIGFu ZCB1c2Igc2xpZ2h0bHkgZGlmZmVyIGluIHRoZSB2ZW5kb3IgZHJpdmVyDQo+ICsgKi8NCj4gK3N0 YXRpYyBjb25zdCB1OCBydHc4NzIzYl9wd3J0cmtfMmdiX25bXSA9IHsNCj4gKyAgICAgICAwLCAw LCAxLCAyLCAyLCAyLCAzLCAzLCAzLCA0LCA1LCA1LCA2LCA2LCA2LCA2LA0KPiArICAgICAgIDcs IDcsIDcsIDgsIDgsIDksIDksIDEwLCAxMCwgMTEsIDEyLCAxMywgMTQsIDE1DQo+ICt9Ow0KPiAr DQo+ICtzdGF0aWMgY29uc3QgdTggcnR3ODcyM2JfcHdydHJrXzJnYl9wW10gPSB7DQo+ICsgICAg ICAgMCwgMCwgMSwgMiwgMiwgMywgMywgNCwgNSwgNSwgNiwgNiwgNywgNywgOCwgOCwNCj4gKyAg ICAgICA5LCA5LCAxMCwgMTAsIDEwLCAxMSwgMTEsIDEyLCAxMiwgMTMsIDEzLCAxNCwgMTUsIDE1 DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3QgdTggcnR3ODcyM2JfcHdydHJrXzJnYV9uW10g PSB7DQo+ICsgICAgICAgMCwgMCwgMSwgMiwgMiwgMiwgMywgMywgMywgNCwgNSwgNSwgNiwgNiwg NiwgNiwNCj4gKyAgICAgICA3LCA3LCA3LCA4LCA4LCA5LCA5LCAxMCwgMTAsIDExLCAxMiwgMTMs IDE0LCAxNQ0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHU4IHJ0dzg3MjNiX3B3cnRya18y Z2FfcFtdID0gew0KPiArICAgICAgIDAsIDAsIDEsIDIsIDIsIDMsIDMsIDQsIDUsIDUsIDYsIDYs IDcsIDcsIDgsIDgsDQo+ICsgICAgICAgOSwgOSwgMTAsIDEwLCAxMCwgMTEsIDExLCAxMiwgMTIs IDEzLCAxMywgMTQsIDE1LCAxNQ0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHU4IHJ0dzg3 MjNiX3B3cnRya18yZ19jY2tfYl9uW10gPSB7DQo+ICsgICAgICAgMCwgMCwgMSwgMiwgMiwgMywg MywgNCwgNCwgNSwgNiwgNiwgNywgNywgNywgOCwNCj4gKyAgICAgICA4LCA4LCA5LCA5LCA5LCAx MCwgMTAsIDExLCAxMSwgMTIsIDEyLCAxMywgMTQsIDE1DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMg Y29uc3QgdTggcnR3ODcyM2JfcHdydHJrXzJnX2Nja19iX3BbXSA9IHsNCj4gKyAgICAgICAwLCAw LCAxLCAyLCAyLCAyLCAzLCAzLCAzLCA0LCA1LCA1LCA2LCA2LCA3LCA3LA0KPiArICAgICAgIDgs IDgsIDksIDksIDksIDEwLCAxMCwgMTEsIDExLCAxMiwgMTIsIDEzLCAxNCwgMTUNCj4gK307DQo+ ICsNCj4gK3N0YXRpYyBjb25zdCB1OCBydHc4NzIzYl9wd3J0cmtfMmdfY2NrX2FfbltdID0gew0K PiArICAgICAgIDAsIDAsIDEsIDIsIDIsIDMsIDMsIDQsIDQsIDUsIDYsIDYsIDcsIDcsIDcsIDgs DQo+ICsgICAgICAgOCwgOCwgOSwgOSwgOSwgMTAsIDEwLCAxMSwgMTEsIDEyLCAxMiwgMTMsIDE0 LCAxNQ0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHU4IHJ0dzg3MjNiX3B3cnRya18yZ19j Y2tfYV9wW10gPSB7DQo+ICsgICAgICAgMCwgMCwgMSwgMiwgMiwgMiwgMywgMywgMywgNCwgNSwg NSwgNiwgNiwgNywgNywNCj4gKyAgICAgICA4LCA4LCA5LCA5LCA5LCAxMCwgMTAsIDExLCAxMSwg MTIsIDEyLCAxMywgMTQsIDE1DQo+ICt9Ow0KPiArDQo+ICsvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0K DQpub3QgcHJlZmVyZW5jZSBhIHNlcGFyYXRvci4gDQoNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0 cnVjdCBydHdfcHdyX3RyYWNrX3RibCBydHc4NzIzYl9ydHdfcHdyX3RyYWNrX3RibCA9IHsNCj4g KyAgICAgICAucHdydHJrXzJnYl9uID0gcnR3ODcyM2JfcHdydHJrXzJnYl9uLA0KPiArICAgICAg IC5wd3J0cmtfMmdiX3AgPSBydHc4NzIzYl9wd3J0cmtfMmdiX3AsDQo+ICsgICAgICAgLnB3cnRy a18yZ2FfbiA9IHJ0dzg3MjNiX3B3cnRya18yZ2FfbiwNCj4gKyAgICAgICAucHdydHJrXzJnYV9w ID0gcnR3ODcyM2JfcHdydHJrXzJnYV9wLA0KPiArICAgICAgIC5wd3J0cmtfMmdfY2NrYl9uID0g cnR3ODcyM2JfcHdydHJrXzJnX2Nja19iX24sDQo+ICsgICAgICAgLnB3cnRya18yZ19jY2tiX3Ag PSBydHc4NzIzYl9wd3J0cmtfMmdfY2NrX2JfcCwNCj4gKyAgICAgICAucHdydHJrXzJnX2Nja2Ff biA9IHJ0dzg3MjNiX3B3cnRya18yZ19jY2tfYV9uLA0KPiArICAgICAgIC5wd3J0cmtfMmdfY2Nr YV9wID0gcnR3ODcyM2JfcHdydHJrXzJnX2Nja19hX3AsDQo+ICsgICAgICAgLyogdXNlZCBpbiBy dHc4NzIzeF9wd3J0cmFja19zZXRfeHRhbCB3aGljaCBpcyBub3QgZG9uZSBpbiA4NzIzYiB2ZW5k b3IgZHJpdmVyKi8NCj4gKyAgICAgICAucHdydHJrX3h0YWxfbiA9IE5VTEwsDQo+ICsgICAgICAg LnB3cnRya194dGFsX3AgPSBOVUxMLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVj dCBydHdfcmZlX2RlZiBydHc4NzIzYl9yZmVfZGVmc1tdID0gew0KPiArICAgICAgIFswXSA9IHsg LnBoeV9wZ190YmwgICAgID0gJnJ0dzg3MjNiX2JiX3BnX3RibCwNCj4gKyAgICAgICAgICAgICAg IC50eHB3cl9sbXRfdGJsICA9ICZydHc4NzIzYl90eHB3cl9sbXRfdGJsLA0KPiArICAgICAgICAg ICAgICAgLnB3cl90cmFja190YmwgID0gJnJ0dzg3MjNiX3J0d19wd3JfdHJhY2tfdGJsLCB9LA0K PiArfTsNCj4gKw0KPiArLyogU2hhcmVkLUFudGVubmEgQ29leCBUYWJsZSAqLw0KPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBjb2V4X3RhYmxlX3BhcmEgdGFibGVfc2FudF84NzIzYltdID0gew0KPiAr ICAgICAgIHsweGZmZmZmZmZmLCAweGZmZmZmZmZmfSwgLyogY2FzZS0wICovDQo+ICsgICAgICAg ezB4NTU1NTU1NTUsIDB4NTU1NTU1NTV9LA0KPiArICAgICAgIHsweDY2NTU1NTU1LCAweDY2NTU1 NTU1fSwNCj4gKyAgICAgICB7MHhhYWFhYWFhYSwgMHhhYWFhYWFhYX0sDQo+ICsgICAgICAgezB4 NWE1YTVhNWEsIDB4NWE1YTVhNWF9LA0KPiArICAgICAgIHsweGZhZmFmYWZhLCAweGZhZmFmYWZh fSwgLyogY2FzZS01ICovDQo+ICsgICAgICAgezB4NmE1YTU1NTUsIDB4YWFhYWFhYWF9LA0KPiAr ICAgICAgIHsweDZhNWE1NmFhLCAweDZhNWE1NmFhfSwNCj4gKyAgICAgICB7MHg2YTVhNWE1YSwg MHg2YTVhNWE1YX0sDQo+ICsgICAgICAgezB4NjY1NTU1NTUsIDB4NWE1YTVhNWF9LA0KPiArICAg ICAgIHsweDY2NTU1NTU1LCAweDZhNWE1YTVhfSwgLyogY2FzZS0xMCAqLw0KPiArICAgICAgIHsw eDY2NTU1NTU1LCAweDZhNWE1YWFhfSwNCj4gKyAgICAgICB7MHg2NjU1NTU1NSwgMHg1YTVhNWFh YX0sDQo+ICsgICAgICAgezB4NjY1NTU1NTUsIDB4NmFhYTVhYWF9LA0KPiArICAgICAgIHsweDY2 NTU1NTU1LCAweGFhYWE1YWFhfSwNCj4gKyAgICAgICB7MHg2NjU1NTU1NSwgMHhhYWFhYWFhYX0s IC8qIGNhc2UtMTUgKi8NCj4gKyAgICAgICB7MHhmZmZmNTVmZiwgMHhmYWZhZmFmYX0sDQo+ICsg ICAgICAgezB4ZmZmZjU1ZmYsIDB4NmFmYTVhZmF9LA0KPiArICAgICAgIHsweGFhZmZmZmFhLCAw eGZhZmFmYWZhfSwNCj4gKyAgICAgICB7MHhhYTU1NTVhYSwgMHg1YTVhNWE1YX0sDQo+ICsgICAg ICAgezB4YWE1NTU1YWEsIDB4NmE1YTVhNWF9LCAvKiBjYXNlLTIwICovDQo+ICsgICAgICAgezB4 YWE1NTU1YWEsIDB4YWFhYWFhYWF9LA0KPiArICAgICAgIHsweGZmZmZmZmZmLCAweDVhNWE1YTVh fSwNCj4gKyAgICAgICB7MHhmZmZmZmZmZiwgMHg1YTVhNWE1YX0sDQo+ICsgICAgICAgezB4ZmZm ZmZmZmYsIDB4NTU1NTU1NTV9LA0KPiArICAgICAgIHsweGZmZmZmZmZmLCAweDVhNWE1YWFhfSwg LyogY2FzZS0yNSAqLw0KPiArICAgICAgIHsweDU1NTU1NTU1LCAweDVhNWE1YTVhfSwNCj4gKyAg ICAgICB7MHg1NTU1NTU1NSwgMHhhYWFhYWFhYX0sDQo+ICsgICAgICAgezB4NTU1NTU1NTUsIDB4 NmE1YTZhNWF9LA0KPiArICAgICAgIHsweDY2NTU2NjU1LCAweDY2NTU2NjU1fSwNCj4gKyAgICAg ICB7MHg2NjU1NmFhYSwgMHg2YTVhNmFhYX0sIC8qIGNhc2UtMzAgKi8NCj4gKyAgICAgICB7MHhm ZmZmZmZmZiwgMHg1YWFhNWFhYX0sDQo+ICsgICAgICAgezB4NTY1NTU1NTUsIDB4NWE1YTVhYWF9 LA0KPiArfTsNCj4gKw0KPiArLyogTm9uLVNoYXJlZC1BbnRlbm5hIENvZXggVGFibGUgKi8NCj4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgY29leF90YWJsZV9wYXJhIHRhYmxlX25zYW50Xzg3MjNiW10g PSB7DQo+ICsgICAgICAgezB4ZmZmZmZmZmYsIDB4ZmZmZmZmZmZ9LCAvKiBjYXNlLTEwMCAqLw0K PiArICAgICAgIHsweDU1NTU1NTU1LCAweDU1NTU1NTU1fSwNCj4gKyAgICAgICB7MHg2NjU1NTU1 NSwgMHg2NjU1NTU1NX0sDQo+ICsgICAgICAgezB4YWFhYWFhYWEsIDB4YWFhYWFhYWF9LA0KPiAr ICAgICAgIHsweDVhNWE1YTVhLCAweDVhNWE1YTVhfSwNCj4gKyAgICAgICB7MHhmYWZhZmFmYSwg MHhmYWZhZmFmYX0sIC8qIGNhc2UtMTA1ICovDQo+ICsgICAgICAgezB4NWFmYTVhZmEsIDB4NWFm YTVhZmF9LA0KPiArICAgICAgIHsweDU1NTU1NTU1LCAweGZhZmFmYWZhfSwNCj4gKyAgICAgICB7 MHg2NjU1NTU1NSwgMHhmYWZhZmFmYX0sDQo+ICsgICAgICAgezB4NjY1NTU1NTUsIDB4NWE1YTVh NWF9LA0KPiArICAgICAgIHsweDY2NTU1NTU1LCAweDZhNWE1YTVhfSwgLyogY2FzZS0xMTAgKi8N Cj4gKyAgICAgICB7MHg2NjU1NTU1NSwgMHhhYWFhYWFhYX0sDQo+ICsgICAgICAgezB4ZmZmZjU1 ZmYsIDB4ZmFmYWZhZmF9LA0KPiArICAgICAgIHsweGZmZmY1NWZmLCAweDVhZmE1YWZhfSwNCj4g KyAgICAgICB7MHhmZmZmNTVmZiwgMHhhYWFhYWFhYX0sDQo+ICsgICAgICAgezB4ZmZmZjU1ZmYs IDB4ZmZmZjU1ZmZ9LCAvKiBjYXNlLTExNSAqLw0KPiArICAgICAgIHsweGFhZmZmZmFhLCAweDVh ZmE1YWZhfSwNCj4gKyAgICAgICB7MHhhYWZmZmZhYSwgMHhhYWFhYWFhYX0sDQo+ICsgICAgICAg ezB4ZmZmZmZmZmYsIDB4ZmFmYWZhZmF9LA0KPiArICAgICAgIHsweGZmZmZmZmZmLCAweDVhZmE1 YWZhfSwNCj4gKyAgICAgICB7MHhmZmZmZmZmZiwgMHhhYWFhYWFhYX0sIC8qIGNhc2UtMTIwICov DQo+ICsgICAgICAgezB4NTVmZjU1ZmYsIDB4NWFmYTVhZmF9LA0KPiArICAgICAgIHsweDU1ZmY1 NWZmLCAweGFhYWFhYWFhfSwNCj4gKyAgICAgICB7MHg1NWZmNTVmZiwgMHg1NWZmNTVmZn0NCj4g K307DQo+ICsNCj4gKy8qIFNoYXJlZC1BbnRlbm5hIFRETUEgKi8NCj4gK3N0YXRpYyBjb25zdCBz dHJ1Y3QgY29leF90ZG1hX3BhcmEgdGRtYV9zYW50Xzg3MjNiW10gPSB7DQo+ICsgICAgICAgeyB7 MHgwMCwgMHgwMCwgMHgwMCwgMHgwMCwgMHgwMH0gfSwgLyogY2FzZS0wICovDQo+ICsgICAgICAg eyB7MHg2MSwgMHg0NSwgMHgwMywgMHgxMSwgMHgxMX0gfSwgLyogY2FzZS0xICovDQo+ICsgICAg ICAgeyB7MHg2MSwgMHgzYSwgMHgwMywgMHgxMSwgMHgxMX0gfSwNCj4gKyAgICAgICB7IHsweDYx LCAweDMwLCAweDAzLCAweDExLCAweDExfSB9LA0KPiArICAgICAgIHsgezB4NjEsIDB4MjAsIDB4 MDMsIDB4MTEsIDB4MTF9IH0sDQo+ICsgICAgICAgeyB7MHg2MSwgMHgxMCwgMHgwMywgMHgxMSwg MHgxMX0gfSwgLyogY2FzZS01ICovDQo+ICsgICAgICAgeyB7MHg2MSwgMHg0NSwgMHgwMywgMHgx MSwgMHgxMH0gfSwNCj4gKyAgICAgICB7IHsweDYxLCAweDNhLCAweDAzLCAweDExLCAweDEwfSB9 LA0KPiArICAgICAgIHsgezB4NjEsIDB4MzAsIDB4MDMsIDB4MTEsIDB4MTB9IH0sDQo+ICsgICAg ICAgeyB7MHg2MSwgMHgyMCwgMHgwMywgMHgxMSwgMHgxMH0gfSwNCj4gKyAgICAgICB7IHsweDYx LCAweDEwLCAweDAzLCAweDExLCAweDEwfSB9LCAvKiBjYXNlLTEwICovDQo+ICsgICAgICAgeyB7 MHg2MSwgMHgwOCwgMHgwMywgMHgxMSwgMHgxNH0gfSwNCj4gKyAgICAgICB7IHsweDYxLCAweDA4 LCAweDAzLCAweDEwLCAweDE0fSB9LA0KPiArICAgICAgIHsgezB4NTEsIDB4MDgsIDB4MDMsIDB4 MTAsIDB4NTR9IH0sDQo+ICsgICAgICAgeyB7MHg1MSwgMHgwOCwgMHgwMywgMHgxMCwgMHg1NX0g fSwNCj4gKyAgICAgICB7IHsweDUxLCAweDA4LCAweDA3LCAweDEwLCAweDU0fSB9LCAvKiBjYXNl LTE1ICovDQo+ICsgICAgICAgeyB7MHg1MSwgMHg0NSwgMHgwMywgMHgxMCwgMHg1MH0gfSwNCj4g KyAgICAgICB7IHsweDUxLCAweDNhLCAweDAzLCAweDEwLCAweDUwfSB9LA0KPiArICAgICAgIHsg ezB4NTEsIDB4MzAsIDB4MDMsIDB4MTAsIDB4NTB9IH0sDQo+ICsgICAgICAgeyB7MHg1MSwgMHgy MCwgMHgwMywgMHgxMCwgMHg1MH0gfSwNCj4gKyAgICAgICB7IHsweDUxLCAweDEwLCAweDAzLCAw eDEwLCAweDUwfSB9LCAvKiBjYXNlLTIwICovDQo+ICsgICAgICAgeyB7MHg1MSwgMHg0YSwgMHgw MywgMHgxMCwgMHg1MH0gfSwNCj4gKyAgICAgICB7IHsweDUxLCAweDBjLCAweDAzLCAweDEwLCAw eDU0fSB9LA0KPiArICAgICAgIHsgezB4NTUsIDB4MDgsIDB4MDMsIDB4MTAsIDB4NTR9IH0sDQo+ ICsgICAgICAgeyB7MHg2NSwgMHgxMCwgMHgwMywgMHgxMSwgMHgxMH0gfSwNCj4gKyAgICAgICB7 IHsweDUxLCAweDEwLCAweDAzLCAweDEwLCAweDUxfSB9LCAvKiBjYXNlLTI1ICovDQo+ICsgICAg ICAgeyB7MHg1MSwgMHgwOCwgMHgwMywgMHgxMCwgMHg1MH0gfSwNCj4gKyAgICAgICB7IHsweDYx LCAweDA4LCAweDAzLCAweDExLCAweDExfSB9DQo+ICt9Ow0KPiArDQo+ICsvKiBOb24tU2hhcmVk LUFudGVubmEgVERNQSAqLw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb2V4X3RkbWFfcGFyYSB0 ZG1hX25zYW50Xzg3MjNiW10gPSB7DQo+ICsgICAgICAgeyB7MHgwMCwgMHgwMCwgMHgwMCwgMHgw MCwgMHgwMX0gfSwgLyogY2FzZS0xMDAgKi8NCj4gKyAgICAgICB7IHsweDYxLCAweDQ1LCAweDAz LCAweDExLCAweDExfSB9LCAvKiBjYXNlLTEwMSAqLw0KPiArICAgICAgIHsgezB4NjEsIDB4M2Es IDB4MDMsIDB4MTEsIDB4MTF9IH0sDQo+ICsgICAgICAgeyB7MHg2MSwgMHgzMCwgMHgwMywgMHgx MSwgMHgxMX0gfSwNCj4gKyAgICAgICB7IHsweDYxLCAweDIwLCAweDAzLCAweDExLCAweDExfSB9 LA0KPiArICAgICAgIHsgezB4NjEsIDB4MTAsIDB4MDMsIDB4MTEsIDB4MTF9IH0sIC8qIGNhc2Ut MTA1ICovDQo+ICsgICAgICAgeyB7MHg2MSwgMHg0NSwgMHgwMywgMHgxMSwgMHgxMH0gfSwNCj4g KyAgICAgICB7IHsweDYxLCAweDNhLCAweDAzLCAweDExLCAweDEwfSB9LA0KPiArICAgICAgIHsg ezB4NjEsIDB4MzAsIDB4MDMsIDB4MTEsIDB4MTB9IH0sDQo+ICsgICAgICAgeyB7MHg2MSwgMHgy MCwgMHgwMywgMHgxMSwgMHgxMH0gfSwNCj4gKyAgICAgICB7IHsweDYxLCAweDEwLCAweDAzLCAw eDExLCAweDEwfSB9LCAvKiBjYXNlLTExMCAqLw0KPiArICAgICAgIHsgezB4NjEsIDB4MDgsIDB4 MDMsIDB4MTEsIDB4MTR9IH0sDQo+ICsgICAgICAgeyB7MHg2MSwgMHgwOCwgMHgwMywgMHgxMCwg MHgxNH0gfSwNCj4gKyAgICAgICB7IHsweDUxLCAweDA4LCAweDAzLCAweDEwLCAweDU0fSB9LA0K PiArICAgICAgIHsgezB4NTEsIDB4MDgsIDB4MDMsIDB4MTAsIDB4NTV9IH0sDQo+ICsgICAgICAg eyB7MHg1MSwgMHgwOCwgMHgwNywgMHgxMCwgMHg1NH0gfSwgLyogY2FzZS0xMTUgKi8NCj4gKyAg ICAgICB7IHsweDUxLCAweDQ1LCAweDAzLCAweDEwLCAweDUwfSB9LA0KPiArICAgICAgIHsgezB4 NTEsIDB4M2EsIDB4MDMsIDB4MTAsIDB4NTB9IH0sDQo+ICsgICAgICAgeyB7MHg1MSwgMHgzMCwg MHgwMywgMHgxMCwgMHg1MH0gfSwNCj4gKyAgICAgICB7IHsweDUxLCAweDIwLCAweDAzLCAweDEw LCAweDUwfSB9LA0KPiArICAgICAgIHsgezB4NTEsIDB4MTAsIDB4MDMsIDB4MTAsIDB4NTB9IH0s IC8qIGNhc2UtMTIwICovDQo+ICsgICAgICAgeyB7MHg1MSwgMHgwOCwgMHgwMywgMHgxMCwgMHg1 MH0gfQ0KPiArfTsNCj4gKw0KPiArLyogdmVuZG9yOiBoYWwvcnRsODcyM2IvcnRsODcyM2JfaGFs X2luaXQuYw0KPiArICogZnVuY3Rpb246IEhhbF9FZnVzZVBvd2VyU3dpdGNoDQo+ICsgKi8NCj4g K3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2VmdXNlX2dyYW50KHN0cnVjdCBydHdfZGV2ICpydHdkZXYs IGJvb2wgb24pDQo+ICt7DQo+ICsgICAgICAgLyoNCj4gKyAgICAgICAgKiBUaGUgQlQgcG93ZXIt Y3V0IC8gb3V0cHV0LWlzb2xhdGlvbiB3cml0ZXMgdG8gMHg2QVsxNF0vWzE1XSBhcmUNCj4gKyAg ICAgICAgKiBwYXJ0IG9mIHRoZSB2ZW5kb3IncyBXaUZpIGVmdXNlIHBvd2VyIHN3aXRjaCAoSGFs X0VmdXNlUG93ZXJTd2l0Y2gsDQo+ICsgICAgICAgICogYm90aCBQd3JTdGF0ZSBicmFuY2hlcyks IG5vdCBqdXN0IHRoZSBzZXBhcmF0ZSBCVCBlZnVzZSBwYXRoLCBzbw0KPiArICAgICAgICAqIHRo aXMgY2Fubm90IHVzZSB0aGUgY29tbW9uIF9fcnR3ODcyM3hfZWZ1c2VfZ3JhbnQgd2hpY2ggb21p dHMgdGhlbS4NCj4gKyAgICAgICAgKi8NCj4gKyAgICAgICBpZiAob24pIHsNCj4gKyAgICAgICAg ICAgICAgIC8qIGVuYWJsZSBCVCBwb3dlciBjdXQgMHg2QVsxNF0gPSAxICovDQo+ICsgICAgICAg ICAgICAgICBydHdfd3JpdGU4X3NldChydHdkZXYsIDB4NmIsIEJJVCg2KSk7DQo+ICsNCj4gKyAg ICAgICAgICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfRUZVU0VfQUNDRVNTLCBFRlVTRV9B Q0NFU1NfT04pOw0KPiArDQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUxNl9zZXQocnR3ZGV2 LCBSRUdfU1lTX0ZVTkNfRU4sIEJJVF9GRU5fRUxEUik7DQo+ICsgICAgICAgICAgICAgICBydHdf d3JpdGUxNl9zZXQocnR3ZGV2LCBSRUdfU1lTX0NMS1IsIEJJVF9MT0FERVJfQ0xLX0VOIHwgQklU X0FOQThNKTsNCj4gKyAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgICAgLyogZW5hYmxl IEJUIG91dHB1dCBpc29sYXRpb24gMHg2QVsxNV0gPSAxICovDQo+ICsgICAgICAgICAgICAgICBy dHdfd3JpdGU4X3NldChydHdkZXYsIDB4NmIsIEJJVCg3KSk7DQo+ICsNCj4gKyAgICAgICAgICAg ICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfRUZVU0VfQUNDRVNTLCBFRlVTRV9BQ0NFU1NfT0ZG KTsNCj4gKyAgICAgICB9DQo+ICt9DQo+ICsNCj4gKy8qIGFkYXB0ZWQgZnJvbSB2ZW5kb3I6IGhh bHJmX3Bvd2VydHJhY2tpbmdfY2UuYw0KPiArICogZnVuY3Rpb246IGdldF9zd2luZ19pbmRleA0K PiArICovDQo+ICtzdGF0aWMgdTggcnR3ODcyM2JfZGVmYXVsdF9vZmRtX2luZGV4KHN0cnVjdCBy dHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgdTggaTsNCj4gKyAgICAgICB1MzIgdmFs MzI7DQo+ICsgICAgICAgdTMyIHN3aW5nOw0KPiArDQo+ICsgICAgICAgc3dpbmcgPSBydHdfcmVh ZDMyX21hc2socnR3ZGV2LCBSRUdfT0ZETV8wX1hBX1RYX0lRX0lNQkFMQU5DRSwgMHhmZmMwMDAw MCk7DQo+ICsNCj4gKyAgICAgICBmb3IgKGkgPSAwOyBpIDwgUlRXX09GRE1fU1dJTkdfVEFCTEVf U0laRTsgaSsrKSB7DQo+ICsgICAgICAgICAgICAgICB2YWwzMiA9IHJ0dzg3MjNiX29mZG1fc3dp bmdfdGFibGVbaV07DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGlmICh2YWwzMiA+PSAweDEwMDAw MCkNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgdmFsMzIgPj49IDIyOw0KPiArDQo+ICsgICAg ICAgICAgICAgICBpZiAodmFsMzIgPT0gc3dpbmcpDQo+ICsgICAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIGlmIChpID49IFJUV19PRkRNX1NX SU5HX1RBQkxFX1NJWkUpDQo+ICsgICAgICAgICAgICAgICBpID0gMzA7DQo+ICsNCj4gKyAgICAg ICByZXR1cm4gaTsNCj4gK30NCj4gKw0KPiArLyogYWRhcHRlZCBmcm9tIHZlbmRvcjogaGFscmZf cG93ZXJ0cmFja2luZ19jZS5jDQo+ICsgKiBmdW5jdGlvbjogZ2V0X2Nja19zd2luZ19pbmRleA0K PiArICovDQo+ICtzdGF0aWMgdTggcnR3ODcyM2JfZGVmYXVsdF9jY2tfaW5kZXgoc3RydWN0IHJ0 d19kZXYgKnJ0d2RldikNCj4gK3sNCj4gKyAgICAgICB1OCBpOw0KPiArICAgICAgIHU4IHN3aW5n Ow0KPiArDQo+ICsgICAgICAgc3dpbmcgPSBydHdfcmVhZDgocnR3ZGV2LCBydHc4NzIzYl9jY2tf cHdyX3JlZ3NbMF0pOw0KPiArDQo+ICsgICAgICAgZm9yIChpID0gMDsgaSA8IFJUV19DQ0tfU1dJ TkdfVEFCTEVfU0laRTsgaSsrKSB7DQo+ICsgICAgICAgICAgICAgICBpZiAocnR3ODczMmJfY2Nr X3N3aW5nX3RhYmxlX2NoMV9jaDEzW2ldWzBdID09IHN3aW5nKQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICBpZiAoaSA+PSBSVFdf Q0NLX1NXSU5HX1RBQkxFX1NJWkUpDQo+ICsgICAgICAgICAgICAgICBpID0gMjA7DQo+ICsNCj4g KyAgICAgICByZXR1cm4gaTsNCj4gK30NCj4gKw0KPiArLyogdmVuZG9yOiBoYWxyZl9wb3dlcnRy YWNraW5nX2NlLmMNCj4gKyAqIGZ1bmN0aW9uOiBvZG1fdHhwb3dlcnRyYWNraW5nX3RoZXJtYWxf bWV0ZXJfaW5pdA0KPiArICovDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9wd3J0cmFja19pbml0 KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0IHJ0d19kbV9p bmZvICpkbV9pbmZvID0gJnJ0d2Rldi0+ZG1faW5mbzsNCj4gKyAgICAgICB1OCBwYXRoOw0KPiAr DQo+ICsgICAgICAgZG1faW5mby0+ZGVmYXVsdF9vZmRtX2luZGV4ID0gcnR3ODcyM2JfZGVmYXVs dF9vZmRtX2luZGV4KHJ0d2Rldik7DQo+ICsgICAgICAgZG1faW5mby0+ZGVmYXVsdF9jY2tfaW5k ZXggPSBydHc4NzIzYl9kZWZhdWx0X2Nja19pbmRleChydHdkZXYpOw0KPiArDQo+ICsgICAgICAg LyogdGhlcm1hbC9wb3dlci10cmFjayBpbml0IGlzIGlkZW50aWNhbCB0byBydHc4NzIzZCBkbV9p bml0ICovDQo+ICsgICAgICAgZm9yIChwYXRoID0gUkZfUEFUSF9BOyBwYXRoIDwgcnR3ZGV2LT5o YWwucmZfcGF0aF9udW07IHBhdGgrKykgew0KPiArICAgICAgICAgICAgICAgZXdtYV90aGVybWFs X2luaXQoJmRtX2luZm8tPmF2Z190aGVybWFsW3BhdGhdKTsNCj4gKyAgICAgICAgICAgICAgIGRt X2luZm8tPmRlbHRhX3Bvd2VyX2luZGV4W3BhdGhdID0gMDsNCj4gKyAgICAgICB9DQo+ICsgICAg ICAgZG1faW5mby0+cHdyX3Rya190cmlnZ2VyZWQgPSBmYWxzZTsNCj4gKyAgICAgICBkbV9pbmZv LT5wd3JfdHJrX2luaXRfdHJpZ2dlciA9IHRydWU7DQo+ICsgICAgICAgZG1faW5mby0+dGhlcm1h bF9tZXRlcl9rID0gcnR3ZGV2LT5lZnVzZS50aGVybWFsX21ldGVyX2s7DQo+ICsgICAgICAgZG1f aW5mby0+dHhhZ2NfcmVtbmFudF9jY2sgPSAwOw0KPiArICAgICAgIGRtX2luZm8tPnR4YWdjX3Jl bW5hbnRfb2ZkbVtSRl9QQVRIX0FdID0gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGJvb2wgcnR3 ODcyM2Jfc2Rpb19uZWVkc19yeF9wYXRoX2ZpeChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KTsNCg0K Tm8gbmVlZC4NCg0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2Jfc2Rpb19yZXN0b3JlX3BhZF9jdHJs KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIGtlZXBfcHRhX293bmVyKTsNCg0KSnVzdCBpbXBsZW1lbnQgaXQg aGVyZT8NCg0KSSBvbmx5IGRvIHRoaXMgdG8gYXZvaWQgY2h1cm5pbmcgZXhpc3RpbmcgY29kZS4g V2hhdCBpcyB0aGUgcHVycG9zZSB5b3UgZGlkPw0KDQo+ICsNCj4gKy8qIGFkYXB0ZWQgZnJvbTog X0luaXRQb3dlck9uXzg3MjNCUyAoc3RlcHMgYWZ0ZXIgY2FsbGluZyBjYXJkRW5hYmxlKQ0KPiAr ICovDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9wb3N0X2VuYWJsZV9mbG93KHN0cnVjdCBydHdf ZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgdTMyIHZhbHVlMzI7DQo+ICsNCj4gKyAgICAg ICAvKiBUaGVzZSB0d28gYXJlIGFsc28gZG9uZSBpbiBjYXJkX2VuYWJsZV9mbG93LiAqLw0KPiAr ICAgICAgIHJ0d193cml0ZThfc2V0KHJ0d2RldiwgMHgwMDQ5LCBCSVQoMSkpOw0KPiArICAgICAg IHJ0d193cml0ZThfc2V0KHJ0d2RldiwgMHgwMDYzLCBCSVQoMSkpOw0KPiArDQo+ICsgICAgICAg cnR3X3dyaXRlMTZfc2V0KHJ0d2RldiwgUkVHX0FQU19GU01DTywgQklUX0VOX1BETik7DQo+ICsN Cj4gKyAgICAgICAvKiBUaGUgdmVuZG9yIHJ1bnMgaXRzIENSIHplcm8tdGhlbi1lbmFibGUgY3lj bGUgYXQgcG93ZXItb24sIGJlZm9yZQ0KPiArICAgICAgICAqIHRoZSBSUVBOIHBhZ2Ugc3BsaXQg aXMgbGF0Y2hlZC4gIEhlcmUgd2UgYXJlIGFmdGVyIHRoZSBsYXRjaDoNCj4gKyAgICAgICAgKiB3 cml0aW5nIENSIHRvIDAgZHJvcHMgdGhlIFRYIERNQSBlbmFibGVzIGFuZCByZXNldHMgdGhlIGhh cmR3YXJlDQo+ICsgICAgICAgICogZnJlZS1wYWdlIGNvdW50ZXJzIHRvIHplcm8sIGxlYXZpbmcg dGhlIFRYIERNQSB3aXRoIG5vIGFsbG9jYXRhYmxlDQo+ICsgICAgICAgICogcGFnZXMgc28gZXZl cnkgVFggRklGTyB3cml0ZSBpcyBzaWxlbnRseSBkaXNjYXJkZWQuICBPbmx5IE9SIGluDQo+ICsg ICAgICAgICogdGhlIG1pc3NpbmcgZW5hYmxlczsgdGhlIHplcm8tdGhlbi1lbmFibGUgY3ljbGUg YWxyZWFkeSByYW4gaW4NCj4gKyAgICAgICAgKiB0aGUgcXVldWUtbWFwcGluZyBpbml0Lg0KPiAr ICAgICAgICAqLw0KPiArICAgICAgIHJ0d193cml0ZTE2X3NldChydHdkZXYsIFJFR19DUiwgTUFD X1RSWF9FTkFCTEUgfCBCSVRfTUFDX1NFQ19FTiB8DQo+ICsgICAgICAgQklUXzMyS19DQUxfVE1S X0VOKTsNCg0KY29kaW5nIHN0eWxlIC0tIEJJVF8zMktfQ0FMX1RNUl9FTiBzaG91bGQgYWxpZ24g b3BlbiBwYXJlbnRoZXNpcy4gDQoNClBsZWFzZSBydW4gY2hlY2trcGF0Y2gucGwgYmVmb3JlIHNl bmRpbmcgcGF0Y2hlcy4NCg0KPiArDQo+ICsgICAgICAgaWYgKHJ0d19oY2lfdHlwZShydHdkZXYp ID09IFJUV19IQ0lfVFlQRV9TRElPKSB7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUxNl9z ZXQocnR3ZGV2LCBSRUdfUFdSX0RBVEEsIEJJVCgxMSkpOw0KPiArDQo+ICsgICAgICAgICAgICAg ICAvKiBydHdfbWFjX3Bvd2VyX29uKCkgc2V0cyBnZW5lcmljIFBBRCBtdXggYml0cyB0aGF0IHRo ZQ0KPiArICAgICAgICAgICAgICAgICogODcyM0JTIHZlbmRvciBwYXRoIGxlYXZlcyBjbGVhci4g IFJlc3RvcmUgdGhlIFNESU8gUEFEDQo+ICsgICAgICAgICAgICAgICAgKiBtdXggdG8gc3RhZ2lu ZydzIGhhbF9pbml0X2RvbmUgdmFsdWUgYmVmb3JlIFJGL2NvZXggc2V0dXAuDQo+ICsgICAgICAg ICAgICAgICAgKi8NCj4gKyAgICAgICAgICAgICAgIHJ0dzg3MjNiX3NkaW9fcmVzdG9yZV9wYWRf Y3RybChydHdkZXYsIGZhbHNlKTsNCj4gKw0KPiArICAgICAgICAgICAgICAgLyoNCj4gKyAgICAg ICAgICAgICAgICAqIFZlbmRvciBydGw4NzIzYnMgdjUuMi4xNyBkcml2ZXIgc2V0cyBCSVQoMTIp IG9mDQo+ICsgICAgICAgICAgICAgICAgKiBSRUdfRldIV19UWFFfQ1RSTCB1bmRlciBDT05GSUdf WE1JVF9BQ0sgdG8gZW5hYmxlDQo+ICsgICAgICAgICAgICAgICAgKiBtYW5hZ2VtZW50LWZyYW1l IFRYIEFDSyByZXBvcnRpbmcgdmlhIHRoZSBDMkggcGF0aC4NCj4gKyAgICAgICAgICAgICAgICAq IFRoZSB2NDEgZmlybXdhcmUgZXhwZWN0cyB0aGlzIGJpdCB0byBiZSBzZXQgZm9yDQo+ICsgICAg ICAgICAgICAgICAgKiBDQ1ggVFggcmVwb3J0IGRlbGl2ZXJ5OyB3aXRob3V0IGl0IHRoZSBmaXJt d2FyZSBtYXkNCj4gKyAgICAgICAgICAgICAgICAqIHN1cHByZXNzIG1hbmFnZW1lbnQgVFggcmVw b3J0IGdlbmVyYXRpb24gZW50aXJlbHkuDQo+ICsgICAgICAgICAgICAgICAgKi8NCg0KSWYgeW91 IGp1c3QgZm9sbG93IHZlbmRvciBkcml2ZXIgZG9lcywgSSB0aGluayB5b3UgZG9uJ3QgbmVlZCBz byBtYW55IGNvbW1lbnRzLg0KT3IsIHlvdSBjYW4gaGF2ZSBhIHNlcGFyYXRlIHBhdGNoIHRvIGFk ZCB0aGlzIHRyaWNreSBjaHVuaz8NCg0KVGhlcmUgYXJlIG1hbnkgY29tbWVudHMgcG9pbnRpbmcg aG93IHZlbmRvciBkcml2ZXIgZG9lcy4gRm9yIG1lLCB0aGlzIGtpbmQgb2YNCnRoaW5ncyBhcmUg bm90IG5lY2Vzc2FyeSB1bmxlc3MgeW91IGZpeCBvciBjaGFuZ2UgdGhlIHZlbmRvciBkcml2ZXIg YmVoYXZpb3IuDQoNCkkgZ3Vlc3MgdGhlc2UgYXJlIHRoZSBub3RlcyBmb3IgeW91cnNlbGYgd2hp bGUgeW91IGFyZSByZXdyaXRpbmcgdGhlIGRyaXZlci4NClJlbW92ZSB0aGVtLiANCg0KPiArICAg ICAgICAgICAgICAgdmFsdWUzMiA9IHJ0d19yZWFkMzIocnR3ZGV2LCBSRUdfRldIV19UWFFfQ1RS TCk7DQo+ICsgICAgICAgICAgICAgICB2YWx1ZTMyIHw9IEJJVCgxMik7DQo+ICsgICAgICAgICAg ICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19GV0hXX1RYUV9DVFJMLCB2YWx1ZTMyKTsNCj4g KyAgICAgICB9DQo+ICsNCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX0VBUkxZX01P REVfQ09OVFJPTCwgMCk7DQo+ICsNCj4gKyAgICAgICAvKiBWZW5kb3IgaGVhZGVycyBtYXAgMHgw NGQwLzB4MDRkNCB0byBNQUNJRCBwYWNrZXQgZHJvcC9zbGVlcA0KPiArICAgICAgICAqIG1hc2tz IG9uIDg3MjNCLiAgS2VlcCBldmVyeSBNQUNJRCBlbGlnaWJsZSBmb3IgZmlybXdhcmUtc2NoZWR1 bGVkDQo+ICsgICAgICAgICogVFggYXQgcG93ZXItb247IG1hYzgwMjExL2Zpcm13YXJlIHN0YXRl IGhhbmRsZXMgdGhlIHJlYWwgcGVlcg0KPiArICAgICAgICAqIGxpZmV0aW1lLg0KPiArICAgICAg ICAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX01BQ0lEX1BLVF9EUk9QMCwg MCk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfTUFDSURfUEtUX1NMRUVQLCAw KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfcGh5X2JiX2NvbmZpZyhzdHJ1 Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHU4IHh0YWxfY2FwOw0KPiArDQo+ ICsgICAgICAgLyogRW5hYmxlIEJCIGFuZCBSRiAqLw0KPiArICAgICAgIHJ0d193cml0ZTE2X3Nl dChydHdkZXYsIFJFR19TWVNfRlVOQ19FTiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgQklU X0ZFTl9FTl8yNV8xIHwgQklUX0ZFTl9CQl9HTEJfUlNUIHwgQklUX0ZFTl9CQl9SU1RCKTsNCj4g Kw0KPiArICAgICAgIGlmIChydHdfaGNpX3R5cGUocnR3ZGV2KSA9PSBSVFdfSENJX1RZUEVfVVNC KQ0KPiArICAgICAgICAgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfQkJfU0VMX0JURywg MHgwKTsNCj4gKyAgICAgICBlbHNlDQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUzMihydHdk ZXYsIFJFR19CQl9TRUxfQlRHLCAweDI4MCk7DQo+ICsNCj4gKyAgICAgICAvKiBTdGFnaW5nIHdy aXRlcyBSRUdfUkZfQ1RSTCBhcyBhIGZ1bGwgOC1iaXQgd3JpdGUgKDB4MDcpLCBOT1QNCj4gKyAg ICAgICAgKiBhcyBhIHJlYWQtbW9kaWZ5LXdyaXRlLiAgSWYgb3RoZXIgYml0cyBhcmUgc3B1cmlv dXNseSBzZXQgdGhlDQo+ICsgICAgICAgICogT1ItYmFzZWQgd3JpdGUgcHJlc2VydmVzIHRoZW0s IHdoaWNoIGNhbiBsZWF2ZSB0aGUgUkYgYnVzIGluDQo+ICsgICAgICAgICogYW4gdW5leHBlY3Rl ZCBzdGF0ZSBvbiB0aGlzIHN0ZXBwaW5nLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIHJ0d193 cml0ZTgocnR3ZGV2LCBSRUdfUkZfQ1RSTCwNCj4gKyAgICAgICAgICAgICAgICAgIEJJVF9SRl9F TiB8IEJJVF9SRl9SU1RCIHwgQklUX1JGX1NETV9SU1RCKTsNCj4gKyAgICAgICB1c2xlZXBfcmFu Z2UoMTAwMCwgMTEwMCk7DQo+ICsgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9B LCBSRl9XTElOVCwgUkZSRUdfTUFTSywgMHgwNzgwKTsNCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0 d2RldiwgUkVHX1NZU19GVU5DX0VOLA0KPiArICAgICAgICAgICAgICAgICAgQklUX0ZFTl9QUExM IHwgQklUX0ZFTl9QQ0lFQSB8IEJJVF9GRU5fRElPX1BDSUUgfA0KPiArICAgICAgICAgICAgICAg ICAgQklUX0ZFTl9CQl9HTEJfUlNUIHwgQklUX0ZFTl9CQl9SU1RCKTsgLyogMHhlMyAqLw0KPiAr ICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfQUZFX0NUUkwxICsgMSwgMHg4MCk7DQo+ICsN Cj4gKyAgICAgICB4dGFsX2NhcCA9IHJ0d2Rldi0+ZWZ1c2UuY3J5c3RhbF9jYXAgJiAweDNmOw0K PiArICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCAgUkVHX0FGRV9DVFJMMywgQklUX01B U0tfWFRBTCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIHh0YWxfY2FwIHwgKHh0YWxfY2Fw IDw8IDYpKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfcGh5X2xvYWRfYmJf dGFibGVzKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgY29uc3Qgc3Ry dWN0IHJ0d19jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtPmNoaXA7DQo+ICsgICAgICAgY29uc3Qg c3RydWN0IHJ0d19yZmVfZGVmICpyZmVfZGVmID0gcnR3X2dldF9yZmVfZGVmKHJ0d2Rldik7DQo+ ICsNCj4gKyAgICAgICBydHdfbG9hZF90YWJsZShydHdkZXYsIGNoaXAtPmJiX3RibCk7DQo+ICsg ICAgICAgcnR3X2xvYWRfdGFibGUocnR3ZGV2LCBjaGlwLT5hZ2NfdGJsKTsNCj4gKyAgICAgICBp ZiAocmZlX2RlZiAmJiByZmVfZGVmLT5hZ2NfYnRnX3RibCkNCj4gKyAgICAgICAgICAgICAgIHJ0 d19sb2FkX3RhYmxlKHJ0d2RldiwgcmZlX2RlZi0+YWdjX2J0Z190YmwpOw0KPiArfQ0KPiArDQo+ ICsvKiB2ZW5kb3I6IGhhbC9ydGw4NzIzYi9ydGw4NzIzYl9yZjYwNTIuYw0KPiArICogZnVuY3Rp b246IFBIWV9SRjYwNTJfQ29uZmlnODcyM0INCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgcnR3ODcy M2JfcGh5X3JmNjA1Ml9jb25maWcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldikNCj4gK3sNCj4gKyAg ICAgICBzdHJ1Y3QgcnR3X2hhbCAqaGFsID0gJnJ0d2Rldi0+aGFsOw0KPiArDQoNCm5vIGVtcHR5 IGxpbmUuDQoNCj4gKyAgICAgICB1OCBwYXRoOw0KPiArICAgICAgIHUzMiB2YWwzMiwgbWFzazsN Cj4gKyAgICAgICB1MzIgaW50Zl9zLCBpbnRmX29lLCBoc3NpXzI7DQoNCkluIHJldmVyc2UgWCdt YXMgdHJlZSBvcmRlci4NCg0KPiArDQo+ICsgICAgICAgZm9yIChwYXRoID0gUkZfUEFUSF9BOyBw YXRoIDwgaGFsLT5yZl9wYXRoX251bTsgcGF0aCsrKSB7DQo+ICsgICAgICAgICAgICAgICBzd2l0 Y2ggKHBhdGgpIHsNCj4gKyAgICAgICAgICAgICAgIGNhc2UgUkZfUEFUSF9BOg0KPiArICAgICAg ICAgICAgICAgICAgICAgICBpbnRmX3MgPSBSRUdfRlBHQTBfWEFfUkZfU1dfQ1RSTDsNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgaW50Zl9vZSA9IFJFR19GUEdBMF9YQV9SRl9JTlRfT0U7DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgIGhzc2lfMiA9IFJFR19GUEdBMF9YQV9IU1NJX1BBUk0y Ow0KPiArICAgICAgICAgICAgICAgICAgICAgICBtYXNrID0gUkZTSV9SRkVOVjsNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgICAgICAgICBjYXNlIFJGX1BBVEhf QjoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgaW50Zl9zID0gUkVHX0ZQR0EwX1hCX1JGX1NX X0NUUkw7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGludGZfb2UgPSBSRUdfRlBHQTBfWEJf UkZfSU5UX09FOw0KPiArICAgICAgICAgICAgICAgICAgICAgICBoc3NpXzIgPSBSRUdfRlBHQTBf WEJfSFNTSV9QQVJNMjsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgbWFzayA9IFJGU0lfUkZF TlYgPDwgMTY7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAg ICAgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3X2VycihydHdkZXYs ICJpbnZhbGlkIHJmIHBhdGggJWNcbiIsIHBhdGggKyAnQScpOw0KPiArICAgICAgICAgICAgICAg ICAgICAgICByZXR1cm47DQo+ICsgICAgICAgICAgICAgICB9DQo+ICsNCj4gKyAgICAgICAgICAg ICAgIHZhbDMyID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgaW50Zl9zLCBtYXNrKTsNCj4gKw0K PiArICAgICAgICAgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIGludGZfb2UsIFJGU0lf UkZFTlYgPDwgMTYsIDB4MSk7DQo+ICsgICAgICAgICAgICAgICB1ZGVsYXkoMSk7DQo+ICsNCj4g KyAgICAgICAgICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBpbnRmX29lLCBSRlNJX1JG RU5WLCAweDEpOw0KPiArICAgICAgICAgICAgICAgdWRlbGF5KDEpOw0KPiArDQo+ICsgICAgICAg ICAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgaHNzaV8yLCBIU1NJXzNXSVJFX0FERFJf TEVOLCAweDApOw0KPiArICAgICAgICAgICAgICAgdWRlbGF5KDEpOw0KPiArDQo+ICsgICAgICAg ICAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgaHNzaV8yLCBIU1NJXzNXSVJFX0RBVEFf TEVOLCAweDApOw0KPiArICAgICAgICAgICAgICAgdWRlbGF5KDEpOw0KPiArDQo+ICsgICAgICAg ICAgICAgICAvKiBOT1RFOiBwYXRoIEEgb25seSwgdGhlcmUgaXMgbm8gdGFibGUgZm9yIHBhdGgg Qg0KPiArICAgICAgICAgICAgICAgICogdmVuZG9yIGRyaXZlciBhbHNvIHVzZXMgcmFkaW9fYSB0 YWJsZSBmb3IgYm90aCBwYXRocw0KPiArICAgICAgICAgICAgICAgICovDQo+ICsgICAgICAgICAg ICAgICBydHdfbG9hZF90YWJsZShydHdkZXYsIHJ0d2Rldi0+Y2hpcC0+cmZfdGJsW1JGX1BBVEhf QV0pOw0KPiArDQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgaW50 Zl9zLCBtYXNrLCB2YWwzMik7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgLyogMyBDb25m aWd1cmF0aW9uIG9mIFR4IFBvd2VyIFRyYWNraW5nICovDQo+ICsgICAgICAgLyogTk9URTogcmVh ZHMgb25seSBwd3IgdHJhY2sgdGFibGVzIGludG8gbWVtb3J5IGluIHRoZSB2ZW5kb3IgZHJpdmVy LA0KPiArICAgICAgICAqIHdlIGRlZmluZSB0aGVtIGRpcmVjdGx5IGluIHJ0dzg3MjNiX3J0d19w d3JfdHJhY2tfdGJsDQo+ICsgICAgICAgICovDQo+ICt9DQo+ICsNCj4gKy8qIHZlbmRvcjogaGFs L3J0bDg3MjNiL3J0bDg3MjNiX3BoeWNmZy5jDQo+ICsgKiBmdW5jdGlvbjogUEhZX1JGQ29uZmln ODcyM0INCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfcGh5X2xjayhzdHJ1Y3QgcnR3 X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BB VEhfQSwgMHhiMCwgUkZSRUdfTUFTSywgMHhkZmJlMCk7DQo+ICsgICAgICAgcnR3X3dyaXRlX3Jm KHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9DRkdDSCwgUkZSRUdfTUFTSywgMHg4YzAxKTsNCj4gKyAg ICAgICBtZGVsYXkoMjAwKTsgLyogcnRsOHh4eHUgdXNlcyBtc2xlZXAoMjAwKSAqLw0KDQpCeSB0 aGUgY29tbWVudCwgd2hhdCBpcyB0aGUgZGlmZmVyZW5jZT8gSSBndWVzcyBjaGVja3BhdGNoLnBs IHdvdWxkDQpjb21wbGFpbiBpdC4gTWF5YmUsIGp1c3QgdXNlIGZzbGVlcCgyMDAgKiAxMDAwKT8N Cg0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgMHhiMCwgUkZSRUdf TUFTSywgMHhkZmZlMCk7DQo+ICt9DQo+ICsNCj4gKy8qIHZlbmRvcjogaGFsL3J0bDg3MjNiL3J0 bDg3MjNiX3BoeWNmZy5jDQo+ICsgKiBmdW5jdGlvbjogUEhZX1JGQ29uZmlnODcyM0INCj4gKyAq Lw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfcGh5X3JmX2NvbmZpZyhzdHJ1Y3QgcnR3X2RldiAq cnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHJ0dzg3MjNiX3BoeV9yZjYwNTJfY29uZmlnKHJ0d2Rl dik7DQo+ICsNCj4gKyAgICAgICAvKiB2ZW5kb3IgZG9lcyBMQ0sgZHVyaW5nIFJGIGNvbmZpZyB0 b28gKHBoeV9MQ0tfODcyM0IgaW4NCj4gKyAgICAgICAgKiBydGw4NzIzYl9waHljZmcuYyksIHNv IHRoaXMgaXMgcmVxdWlyZWQNCj4gKyAgICAgICAgKi8NCj4gKyAgICAgICBydHc4NzIzYl9waHlf bGNrKHJ0d2Rldik7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2luaXRfYXZh aWxhYmxlX3BhZ2VfdGhyZXNob2xkKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsg ICAgICAgY29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gKmNoaXAgPSBydHdkZXYtPmNoaXA7DQo+ ICsgICAgICAgc3RydWN0IHJ0d19maWZvX2NvbmYgKmZpZm8gPSAmcnR3ZGV2LT5maWZvOw0KPiAr ICAgICAgIGNvbnN0IHN0cnVjdCBydHdfcGFnZV90YWJsZSAqcGdfdGJsID0gTlVMTDsNCj4gKyAg ICAgICB1MTYgaHFfdGhyZXNob2xkLCBucV90aHJlc2hvbGQsIGxxX3RocmVzaG9sZDsNCj4gKyAg ICAgICB1MTYgcHVicV9udW07DQoNCmFuIGVtcHR5IGxpbmUgYWZ0ZXIgZGVjbGFyYXRpb25zLiAN Cg0KPiArICAgICAgIC8qIE9ubHkgaW5pdGlhbGl6ZSB0aGVzZSBwYWdlIHRocmVzaG9sZHMgZm9y IFNESU8gZGV2aWNlcy4NCj4gKyAgICAgICAgKiBQQ0llIGFuZCBVU0IgaGFuZGxlIFRYIEZJRk8v dGhyZXNob2xkcyBkaWZmZXJlbnRseSAoRE1BL2hvc3QNCj4gKyAgICAgICAgKiBzY2hlZHVsaW5n KSBhbmQgd3JpdGluZyB0aGVzZSByZWdpc3RlcnMgb24gdGhvc2UgYnVzZXMgY2FuIGJlDQo+ICsg ICAgICAgICogdW5uZWNlc3Nhcnkgb3IgY291bnRlci1wcm9kdWN0aXZlLg0KPiArICAgICAgICAq Lw0KDQpUaGVyZSBhcmUgc28gbWFueSBjb21tZW50cy4uLiBQbGVhc2Ugc2VyaW91c2x5IGNvbnNp ZGVyIGlmIHRoZXkgYXJlIG5lZWRlZA0KYW5kIHlvdSBmdWxseSB1bmRlcnN0YW5kIHdoYXQgdGhl eSBhcmUgc2F5aW5nLiANCg0KPiArICAgICAgIGlmIChydHdfaGNpX3R5cGUocnR3ZGV2KSAhPSBS VFdfSENJX1RZUEVfU0RJTykNCj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAg ICAgIHBnX3RibCA9ICZjaGlwLT5wYWdlX3RhYmxlWzBdOyAvKiBTRElPICovDQo+ICsNCj4gKyAg ICAgICAvKiBmaWZvIG11c3QgYmUgaW5pdGlhbGl6ZWQgYmVmb3JlIHRoaXMgaXMgY2FsbGVkICov DQo+ICsgICAgICAgaWYgKGZpZm8tPmFjcV9wZ19udW0gPT0gMCkNCj4gKyAgICAgICAgICAgICAg IHJldHVybjsNCj4gKw0KPiArICAgICAgIC8qIGVuc3VyZSB3ZSBkb24ndCB1bmRlcmZsb3cgaWYg dGFibGVzIGFyZSBtaXNjb25maWd1cmVkICovDQo+ICsgICAgICAgaWYgKGZpZm8tPmFjcV9wZ19u dW0gPD0gKHBnX3RibC0+aHFfbnVtICsgcGdfdGJsLT5scV9udW0gKw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHBnX3RibC0+bnFfbnVtICsgcGdfdGJsLT5leHFfbnVtICsN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ190YmwtPmdhcHFfbnVtKSkN Cj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgICAgIHB1YnFfbnVtID0gZmlm by0+YWNxX3BnX251bSAtIHBnX3RibC0+aHFfbnVtIC0gcGdfdGJsLT5scV9udW0gLQ0KPiArICAg ICAgICAgICAgICAgICAgcGdfdGJsLT5ucV9udW0gLSBwZ190YmwtPmV4cV9udW0gLSBwZ190Ymwt PmdhcHFfbnVtOw0KPiArDQo+ICsgICAgICAgaHFfdGhyZXNob2xkID0gKHB1YnFfbnVtICsgcGdf dGJsLT5ocV9udW0gKyAxKSA+PiAxOw0KPiArICAgICAgIGhxX3RocmVzaG9sZCB8PSAoaHFfdGhy ZXNob2xkIDw8IDgpOw0KDQpKdXN0IG1lcmdlIHRvIHNpbmdsZSBzdGF0ZW1lbnQ/IGFzIHdlbGwg YXMgZm9sbG93aW5nIHR3byBzdGF0ZW1lbnRzLg0KDQorICAgICAgIGhxX3RocmVzaG9sZCA9IChw dWJxX251bSArIHBnX3RibC0+aHFfbnVtICsgMSkgPj4gMSB8DQorICAgICAgICAgICAgICAgICAg ICAgIChocV90aHJlc2hvbGQgPDwgOCk7DQoNCg0KPiArDQo+ICsgICAgICAgbnFfdGhyZXNob2xk ID0gKHB1YnFfbnVtICsgcGdfdGJsLT5ucV9udW0gKyAxKSA+PiAxOw0KPiArICAgICAgIG5xX3Ro cmVzaG9sZCB8PSAobnFfdGhyZXNob2xkIDw8IDgpOw0KPiArDQo+ICsgICAgICAgbHFfdGhyZXNo b2xkID0gKHB1YnFfbnVtICsgcGdfdGJsLT5scV9udW0gKyAxKSA+PiAxOw0KPiArICAgICAgIGxx X3RocmVzaG9sZCB8PSAobHFfdGhyZXNob2xkIDw8IDgpOw0KPiArDQo+ICsgICAgICAgcnR3X3dy aXRlMTYocnR3ZGV2LCAweDIxOCwgaHFfdGhyZXNob2xkKTsNCj4gKyAgICAgICBydHdfd3JpdGUx NihydHdkZXYsIDB4MjFhLCBucV90aHJlc2hvbGQpOw0KPiArICAgICAgIHJ0d193cml0ZTE2KHJ0 d2RldiwgMHgyMWMsIGxxX3RocmVzaG9sZCk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0 dzg3MjNiX2luaXRfcXVldWVfcmVzZXJ2ZWRfcGFnZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0K PiArew0KPiArICAgICAgIC8qIFRoZSByZXNlcnZlZC1wYWdlL1JRUE4gc2V0dXAgaXMgaGFuZGxl ZCBieQ0KPiArICAgICAgICAqIG1hYy5jOl9fcHJpb3JpdHlfcXVldWVfY2ZnX2xlZ2FjeS4NCj4g KyAgICAgICAgKg0KPiArICAgICAgICAqIFRoZSBhdmFpbGFibGUtcGFnZSB0aHJlc2hvbGRzICgw eDIxOC8weDIxYS8weDIxYykgbXVzdCBOT1QgYmUNCj4gKyAgICAgICAgKiBwcm9ncmFtbWVkIG9u IDg3MjNCUyBTRElPOiBkb2luZyBzbyBhZ2FpbnN0IHRoZSBzbWFsbCBTRElPIHBhZ2UNCj4gKyAg ICAgICAgKiBwb29scyB3YXMgb25lIG9mIHRoZSBUWC1kZWFkIHJvb3QgY2F1c2VzICh0aGUgQVZB TCB0aHJlc2hvbGRzIHdlcmUNCj4gKyAgICAgICAgKiBzZXQgbGFyZ2VyIHRoYW4gdGhlIHBvb2ws IHNvIHRoZSBNQUMgbmV2ZXIgcmVsZWFzZWQgcGFnZXMpLiAgU2tpcA0KPiArICAgICAgICAqIHRo ZW0gaGVyZTsgb25seSBub24tU0RJTyBwYXRocyBydW4gdGhlIHRocmVzaG9sZCBpbml0LiAgVGhl cmUgaXMgbm8NCj4gKyAgICAgICAgKiB0cmFjZSBvZiB0aGlzIGluaXQgaW4gcnRsOHh4eHUgZWl0 aGVyLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIGlmIChydHdfaGNpX3R5cGUocnR3ZGV2KSA9 PSBSVFdfSENJX1RZUEVfU0RJTyAmJg0KPiArICAgICAgICAgICBydHdkZXYtPmNoaXAtPmlkID09 IFJUV19DSElQX1RZUEVfODcyM0IpDQo+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ICsNCj4g KyAgICAgICBydHc4NzIzYl9pbml0X2F2YWlsYWJsZV9wYWdlX3RocmVzaG9sZChydHdkZXYpOw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9pbml0X3R4X2J1ZmZlcl9ib3VuZGFy eShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHU4IHZhbDggPSBUWF9U T1RBTF9QQUdFX05VTUJFUl84NzIzQiArIDE7IC8qIDB4ZjcgKi8NCj4gKw0KPiArICAgICAgIHJ0 d193cml0ZTgocnR3ZGV2LCBSRUdfVFhQS1RCVUZfQkNOUV9CRE5ZXzg3MjNCLCB2YWw4KTsNCj4g KyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX1RYUEtUQlVGX01HUV9CRE5ZXzg3MjNCLCB2 YWw4KTsNCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX1RYUEtUQlVGX1dNQUNfTEJL X0JGX0hEXzg3MjNCLCB2YWw4KTsNCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX1RS WEZGX0JORFksIHZhbDgpOw0KPiArICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfVERFQ1RS TCArIDEsIHZhbDgpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9pbml0X2xs dF90YWJsZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIC8qIHZlbmRv ciBmdW5jdGlvbmFsaXR5IGhhbmRsZWQgaW4NCj4gKyAgICAgICAgKg0KPiArICAgICAgICAqIG1h Yy5jOl9fcHJpb3JpdHlfcXVldWVfY2ZnX2xlZ2FjeQ0KPiArICAgICAgICAqDQo+ICsgICAgICAg ICovDQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2luaXRfcGFnZV9ib3VuZGFy eShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgICAvKiBOT1RFOiB0aGlz IGlzIGFsc28gZG9uZSBpbiBfX3ByaW9yaXR5X3F1ZXVlX2NmZ19sZWdhY3ksDQo+ICsgICAgICAg ICAqIG1heWJlIHdlIGNhbiByZW1vdmUgaXQNCj4gKyAgICAgICAgICovDQo+ICsgICAgICAgcnR3 X3dyaXRlMTYocnR3ZGV2LCBSRUdfVFJYRkZfQk5EWSArIDIsIDB4NDAwMCAtIFJFUE9SVF9CVUYg LSAxKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfaW5pdF90cmFuc2Zlcl9w YWdlX3NpemUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldikNCj4gK3sNCj4gKyAgICAgICBydHdfd3Jp dGU4KHJ0d2RldiwgUkVHX1BCUCwgMHgxMSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0 dzg3MjNiX2luaXRfZHJpdmVyX2luZm9fc2l6ZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiAr ew0KPiArICAgICAgIC8qIE5PVEU6IGFsc28gaXMgZG9uZSBpbiBydHdfZHJ2X2luZm9fY2ZnICov DQo+ICsgICAgICAgcnR3X3dyaXRlOChydHdkZXYsIFJFR19SWF9EUlZJTkZPX1NaLCBQSFlfU1RB VFVTX1NJWkUpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9pbml0X25ldHdv cmtfdHlwZShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHUzMiB2YWwz MjsNCj4gKw0KPiArICAgICAgIHZhbDMyID0gcnR3X3JlYWQzMihydHdkZXYsIFJFR19DUik7DQo+ ICsgICAgICAgdmFsMzIgPSAodmFsMzIgJiB+TUFTS19ORVRUWVBFKSB8IF9ORVRUWVBFKE5UX0xJ TktfQVApOw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0NSLCB2YWwzMik7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2luaXRfd21hY19zZXR0aW5nKHN0cnVj dCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgLyogT3ZlcnJpZGUgdGhlIGRlZmF1 bHQgcmNyIGZpbHRlciBmb3IgODcyM0IgKi8NCj4gKyAgICAgICBydHdkZXYtPmhhbC5yY3IgPSBX TEFOX1JDUl9DRkc7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfUkNSLCBydHdk ZXYtPmhhbC5yY3IpOw0KPiArDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfTUFS LCAweGZmZmZmZmZmKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19NQVIgKyA0 LCAweGZmZmZmZmZmKTsNCj4gKw0KPiArICAgICAgIHJ0d193cml0ZTE2KHJ0d2RldiwgUkVHX1JY RkxUTUFQMiwgV0xBTl9SWF9GSUxURVIyKTsNCj4gKyAgICAgICBydHdfd3JpdGUxNihydHdkZXYs IFJFR19SWEZMVE1BUDEsIFdMQU5fUlhfRklMVEVSMSk7DQo+ICsgICAgICAgcnR3X3dyaXRlMTYo cnR3ZGV2LCBSRUdfUlhGTFRNQVAwLCBXTEFOX1JYX0ZJTFRFUjApOw0KPiArfQ0KPiArDQo+ICtz dGF0aWMgdm9pZCBydHc4NzIzYl9pbml0X2FkYXB0aXZlX2N0cmwoc3RydWN0IHJ0d19kZXYgKnJ0 d2RldikNCj4gK3sNCj4gKyAgICAgICAvKiBSRUdfUlJTUiBsb3cgMjAgYml0cyBwcm9ncmFtcyB0 aGUgQlNTIGJhc2ljIHJhdGUgc2V0IHRoZSBjaGlwDQo+ICsgICAgICAgICogdXNlcyBmb3IgQUNL L0NUUyByYXRlIHNlbGVjdGlvbiwgcmVzcG9uc2UgZHVyYXRpb24gY2FsY3VsYXRpb24sDQo+ICsg ICAgICAgICogYW5kIENUUy10by1zZWxmIHByb3RlY3Rpb24uIFRoZSBsZWdhY3kgcnRsODcyM2Jz IHN0YWdpbmcgZHJpdmVyDQo+ICsgICAgICAgICogaW5pdCBsZWF2ZXMgdGhpcyBhdCB0aGUgdXBz dHJlYW0gMHhmZmZmMSB2YWx1ZTsNCj4gKyAgICAgICAgKiBzdGFnaW5nX3JlZ3M6aGFsX2luaXRf ZG9uZSBjb25maXJtcyBSUlNSPTB4MDAwZmZmZjEgYXQgdGhlIGVuZA0KPiArICAgICAgICAqIG9m IHJ0bDg3MjNic19oYWxfaW5pdCgpLiBUaGUgcGVyLWpvaW4gbmFycm93aW5nIHRvIHRoZSBJRUVF DQo+ICsgICAgICAgICogbWFuZGF0b3J5IHJhdGVzICgweDE1RikgaGFwcGVucyBsYXRlciB2aWEg SFdfVkFSX0JBU0lDX1JBVEUgaW4NCj4gKyAgICAgICAgKiBzdGFydF9jbG50X2pvaW4oKSwgbm90 IGF0IE1BQyBpbml0Lg0KPiArICAgICAgICAqDQo+ICsgICAgICAgICogV2l0aCB0aGUgc3RhZ2lu ZyB2MzUgZmlybXdhcmUgbG9hZGVkIChydGw4NzIzYnNfbmljLmJpbiksIHRoZQ0KPiArICAgICAg ICAqIDgwNTEgZmlybXdhcmUgcmVhZHMgUkVHX1JSU1IgZHVyaW5nIGluaXQgdG8gdmFsaWRhdGUg dGhlIFBIWQ0KPiArICAgICAgICAqIHJhdGUgY2FwYWJpbGl0aWVzLiBGb3JjaW5nIDB4MTVGICh3 aGljaCBjbGVhcnMgTUNTMC03IGFuZA0KPiArICAgICAgICAqIGhpZ2hlciBPRkRNIGJpdHMpIGNh dXNlcyBhIG1pc21hdGNoIHdpdGggdGhlIGZpcm13YXJlJ3MNCj4gKyAgICAgICAgKiBpbnRlcm5h bCByYXRlIHRhYmxlcyBhbmQgY2FuIGxlYWQgdG8gdGhlIGZpcm13YXJlIHNpbGVudGx5DQo+ICsg ICAgICAgICogZGlzY2FyZGluZyBhbGwgbWFuYWdlbWVudCBUWCBmcm9tIFNESU8uDQo+ICsgICAg ICAgICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19SUlNSLCAweGZm ZmZmLCAweGZmZmYxKTsNCj4gKyAgICAgICBydHdkZXYtPmRtX2luZm8ucnJzcl92YWxfaW5pdCA9 IDB4ZmZmZjE7DQo+ICsgICAgICAgcnR3X3dyaXRlMTYocnR3ZGV2LCBSRUdfUkVUUllfTElNSVQs IDB4MzAzMCk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2luaXRfZWRjYShz dHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHJ0d193cml0ZTE2KHJ0d2Rl diwgUkVHX1NQRUNfU0lGUywgMHgxMDBhKTsNCj4gKyAgICAgICBydHdfd3JpdGUxNihydHdkZXYs IFJFR19NQUNfU1BFQ19TSUZTLCAweDEwMGEpOw0KPiArICAgICAgIHJ0d193cml0ZTE2KHJ0d2Rl diwgUkVHX1NJRlMsIDB4MTAwYSk7DQo+ICsgICAgICAgcnR3X3dyaXRlMTYocnR3ZGV2LCBSRUdf U0lGUyArIDIsIDB4MTAwYSk7DQo+ICsNCj4gKyAgICAgICAvKiBSRVNQX1NJRlMgY29udHJvbHMg aG93IHNvb24gdGhlIGNoaXAgdHJhbnNtaXRzIGFuIEFDSyBhZnRlcg0KPiArICAgICAgICAqIHJl Y2VpdmluZyBhIHVuaWNhc3QgZnJhbWUuIFRoZSBjaGlwIGRlZmF1bHQgZm9yIE9GRE0gKDB4MGUg PQ0KPiArICAgICAgICAqIDE0IHVzKSBsZWF2ZXMgb25seSB+MiB1cyBvZiBzbGFjayBpbnNpZGUg dGhlIDE2IHVzIDgwMi4xMQ0KPiArICAgICAgICAqIFNJRlMgd2luZG93IG9uY2Ugb24tY2hpcCBw cm9jZXNzaW5nIGlzIGluY2x1ZGVkLCB3aGljaCBpcw0KPiArICAgICAgICAqIGVub3VnaCBtYXJn aW4gZm9yIHRoZSBBUCdzIFJYIHRpbWVyIHRvIGV4cGlyZSBiZWZvcmUgb3VyIEFDSw0KPiArICAg ICAgICAqIGFycml2ZXMgb24gYWlyLiBUaGUgbGVnYWN5IHJ0bDg3MjNicyBzdGFnaW5nIGRyaXZl ciB3b3Jrcw0KPiArICAgICAgICAqIGFyb3VuZCB0aGlzIGJ5IHdyaXRpbmcgMHgwYTBhMDgwOCAo Q0NLID0gMHgwOCwgT0ZETSA9IDB4MGEpDQo+ICsgICAgICAgICogdmlhIEhXX1ZBUl9SRVNQX1NJ RlMgaW4gdXBkYXRlX3dpcmVsZXNzX21vZGUoKSByaWdodCBiZWZvcmUNCj4gKyAgICAgICAgKiBl YWNoIGNsaWVudCBqb2luLCB3aGljaCBpcyB0aGUgb25seSBwYXRoIHRoYXQgcmVsaWFibHkgZ2V0 cw0KPiArICAgICAgICAqIE9wZW4gQXV0aCAvIEFzc29jIHJlcGxpZXMgZnJvbSBhIHJlYWwgQVAg b24gdGhpcyBjaGlwLiBCYWtlDQo+ICsgICAgICAgICogdGhlIHNhbWUgdmFsdWVzIGluIGF0IE1B QyBpbml0IHNvIGV2ZXJ5IDg3MjNiIHZhcmlhbnQgQUNLcw0KPiArICAgICAgICAqIEFQIHJlc3Bv bnNlcyBmYXN0IGVub3VnaCB0byBrZWVwIHRoZSB1bmljYXN0IGhhbmRzaGFrZSBhbGl2ZS4NCj4g KyAgICAgICAgKi8NCj4gKyAgICAgICBydHdfd3JpdGUxNihydHdkZXYsIFJFR19SRVNQX1NJRlNf Q0NLLCAweDA4MDgpOw0KPiArICAgICAgIHJ0d193cml0ZTE2KHJ0d2RldiwgUkVHX1JFU1BfU0lG U19PRkRNLCAweDBhMGEpOw0KPiArDQo+ICsgICAgICAgLyogVFhPUCAqLw0KPiArICAgICAgIHJ0 d193cml0ZTMyKHJ0d2RldiwgUkVHX0VEQ0FfQkVfUEFSQU0sIDB4MDA1RUE0MkIpOw0KPiArICAg ICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0VEQ0FfQktfUEFSQU0sIDB4MDAwMEE0NEYpOw0K PiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0VEQ0FfVklfUEFSQU0sIDB4MDA1RUEz MjQpOw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0VEQ0FfVk9fUEFSQU0sIDB4 MDAyRkEyMjYpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9pbml0X3JldHJ5 X2Z1bmN0aW9uKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgcnR3X3dy aXRlOF9zZXQocnR3ZGV2LCBSRUdfRldIV19UWFFfQ1RSTCwgQklUKDcpKTsNCj4gKyAgICAgICBy dHdfd3JpdGU4KHJ0d2RldiwgUkVHX0FDS1RPLCAweDQwKTsNCj4gK30NCj4gKw0KPiArLyogdmVu ZG9yOiBoYWwvcnRsODcyM2Ivc2Rpby9zZGlvX2hhbGluaXQuYw0KPiArICogZnVuY3Rpb246IF9J bml0T3BlcmF0aW9uTW9kZQ0KPiArICovDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9pbml0X29w ZXJhdGlvbl9tb2RlKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgcnR3 X3dyaXRlOChydHdkZXYsIFJFR19CV09QTU9ERSwgQklUX0JXT1BNT0RFXzIwTUhaKTsNCj4gK30N Cj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfaW5pdF9iZWFjb25fcGFyYW1ldGVycyhzdHJ1 Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIC8qIE1hdGNoIHN0YWdpbmcncyBf SW5pdEJlYWNvblBhcmFtZXRlcnMoKSBmb3IgODcyM2I6IHByb2dyYW0NCj4gKyAgICAgICAgKiBw b3J0LTAgYW5kIHBvcnQtMSBCQ05fQ1RSTCB3aXRoIERJU19UU0ZfVURUIHwgRU5fQkNOX0ZVTkNU SU9ODQo+ICsgICAgICAgICogb25seS4NCj4gKyAgICAgICAgKg0KPiArICAgICAgICAqIGVlZmZi ZTIgYWRkZWQgRElTX0JDTlFfU1VCIGhlcmUgb24gdGhlIChpbmNvcnJlY3QpIGFzc3VtcHRpb24N Cj4gKyAgICAgICAgKiB0aGF0IF9Jbml0QmVhY29uUGFyYW1ldGVycygpIHNldCBpdDsgc3RhZ2lu ZyBvbmx5IHNldHMNCj4gKyAgICAgICAgKiBESVNfQkNOUV9TVUIgZnJvbSBfQmVhY29uRnVuY3Rp b25FbmFibGUoKSwgd2hpY2ggaXMgZXhjbHVzaXZlDQo+ICsgICAgICAgICogdG8gQVAgLyBJQlNT IG1vZGVzIHZpYSBydGw4NzIzYl9TZXRCZWFjb25SZWxhdGVkUmVnaXN0ZXJzKCkuDQo+ICsgICAg ICAgICogVGhlIDg3MjNCUyBTRElPIFNUQSBqb2luIHBhdGgga2VlcHMgdGhpcyAweDE4IHZhbHVl IHVudGlsIGF1dGg7DQo+ICsgICAgICAgICogdGhlIHZlbmRvciBzdGFydF9jbG50X2pvaW4oKSBw YXRoIG9ubHkgY2FsbHMgU2V0X01TUigpIGRpcmVjdGx5DQo+ICsgICAgICAgICogYW5kIHRoZSBr bm93bi1nb29kIHY0MSB0cmFjZSBzaG93cyB0aGUgc2FtZSBCQ05fQ1RSTCB2YWx1ZSBhdA0KPiAr ICAgICAgICAqIHByb2JlL2F1dGggVFggdGltZS4NCj4gKyAgICAgICAgKi8NCj4gKyAgICAgICBy dHdfd3JpdGUxNihydHdkZXYsIFJFR19CQ05fQ1RSTCwNCj4gKyAgICAgICAgICAgICAgICAgICAo QklUX0RJU19UU0ZfVURUIHwgQklUX0VOX0JDTl9GVU5DVElPTikgfA0KPiArICAgICAgICAgICAg ICAgICAgICgoQklUX0RJU19UU0ZfVURUIHwgQklUX0VOX0JDTl9GVU5DVElPTikgPDwgOCkpOw0K PiArICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfVEJUVF9QUk9ISUJJVCwgVEJUVF9QUk9I SUJJVF9TRVRVUF9USU1FKTsNCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX1RCVFRf UFJPSElCSVQgKyAxLA0KPiArICAgICAgICAgICAgICAgICAgVEJUVF9QUk9ISUJJVF9IT0xEX1RJ TUVfU1RPUF9CQ04gJiAweGZmKTsNCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX1RC VFRfUFJPSElCSVQgKyAyLA0KPiArICAgICAgICAgICAgICAgICAgKHJ0d19yZWFkOChydHdkZXYs IFJFR19UQlRUX1BST0hJQklUICsgMikgJiAweGYwKSB8DQo+ICsgICAgICAgICAgICAgICAgICAo VEJUVF9QUk9ISUJJVF9IT0xEX1RJTUVfU1RPUF9CQ04gPj4gOCkpOw0KPiArDQo+ICsgICAgICAg cnR3X3dyaXRlOChydHdkZXYsIFJFR19CQ05ETUFUSU0sIFdMQU5fQkNOX0RNQV9USU1FKTsNCj4g KyAgICAgICAvKiBTdWdnZXN0ZWQgYnkgZGVzaWduZXIgdGltY2hlbi4gQ2hhbmdlIGJlYWNvbiBB SUZTIHRvIHRoZSBsYXJnZXN0IG51bWJlciAqLw0KPiArICAgICAgIC8qIGJlYWNhdXNlIHRlc3Qg Y2hpcCBkb2VzIG5vdCBjb250ZW5zaW9uIGJlZm9yZSBzZW5kaW5nIGJlYWNvbi4gYnkgdHlubGku IDIwMDkuMTEuMDMgKi8NCj4gKyAgICAgICBydHdfd3JpdGUxNihydHdkZXYsIFJFR19CQ05UQ0ZH LCAweDY2MEYpOw0KPiArDQo+ICsgICAgICAgLyogTm90ZTogc3RhZ2luZyBwcm9ncmFtcyBSRUdf UkRfQ1RSTCsxID0gMHg2RiBvbmx5IGluc2lkZQ0KPiArICAgICAgICAqIF9CZWFjb25GdW5jdGlv bkVuYWJsZSgpIChBUCAvIElCU1MgcGF0aCkuICBTVEEgbW9kZSBuZXZlciB3cml0ZXMNCj4gKyAg ICAgICAgKiB0aGlzIHJlZ2lzdGVyLCBzbyBsZWF2ZSBpdCBhdCB0aGUgY2hpcCBST00gZGVmYXVs dCAoMHg0RikuDQo+ICsgICAgICAgICogZWVmZmJlMiBpbmNvcnJlY3RseSB3cm90ZSAweDZGIGhl cmUgZm9yIGFsbCBtb2Rlcywgd2hpY2ggd2FzIGENCj4gKyAgICAgICAgKiBub24tc3RhZ2luZyBj aGFuZ2UgZm9yIHRoZSBTVEEtb25seSBidWlsZCB3ZSBleGVyY2lzZS4NCj4gKyAgICAgICAgKi8N Cj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfaW5pdF9idXJzdF9wa3RfbGVuKHN0 cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgcnR3X3dyaXRlOF9zZXQocnR3 ZGV2LCBSRUdfU0lOR0xFX0FNUERVX0NUUkwsIEJJVF9FTl9TSU5HTEVfQVBNRFUpOw0KPiArICAg ICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfUlhfUEtUX0xJTUlULCAweDE4KTsNCj4gKyAgICAg ICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX01BWF9BR0dSX05VTSwgMHgxRik7DQo+ICsgICAgICAg cnR3X3dyaXRlOChydHdkZXYsIFJFR19QSUZTLCAweDAwKTsNCj4gKyAgICAgICBydHdfd3JpdGU4 X2NscihydHdkZXYsIFJFR19GV0hXX1RYUV9DVFJMLCBCSVQoNykpOw0KPiArICAgICAgIHJ0d193 cml0ZTgocnR3ZGV2LCBSRUdfQU1QRFVfTUFYX1RJTUUsIDB4NzApOw0KPiArfQ0KPiArDQo+ICtz dGF0aWMgdm9pZCBydHc4NzIzYl9pbml0X2FudGVubmFfc2VsZWN0aW9uKHN0cnVjdCBydHdfZGV2 ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgLyogTGV0IDgwNTEgdGFrZSBjb250cm9sIGFudGVu bmEgc2V0dGluZy4gIFZlbmRvciB2NS4yLjE3IHdyaXRlcw0KPiArICAgICAgICAqIFJFR19MRURD RkcyID0gMHg4MiAoQklUKDcpIHwgQklUKDEpKS4gIEJJVCg3KSBlbmFibGVzIHRoZSA4MDUxDQo+ ICsgICAgICAgICogdG8gY29udHJvbCBhbnRlbm5hIHNlbGVjdGlvbjsgQklUKDEpIGlzIExFRDJf Q00gd2hpY2ggdGhlIHZlbmRvcg0KPiArICAgICAgICAqIGRyaXZlciBhbHNvIHNldHMgYXQgaW5p dC4NCj4gKyAgICAgICAgKi8NCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX0xFRENG RzIsIEJJVCg3KSB8IEJJVCgxKSk7DQo+ICt9DQo+ICsNCj4gKyNkZWZpbmUgUkZfQUMgIDB4MDAN Cj4gKw0KPiArLyogdmVuZG9yIGZ1bmN0aW9uOiBfcGh5X2xjX2NhbGlicmF0ZV84NzIzYg0KPiAr ICogKHRoZSB2ZW5kb3IgZnVuY3Rpb24gaXMgYWx3YXlzIGNhbGxlZCB3aXRoIGlzMlQgPT0gZmFs c2UpDQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2xjayhzdHJ1Y3QgcnR3X2RldiAq cnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHU4IHZhbF9jdHg7DQo+ICsgICAgICAgdTMyIHJmX21v ZGUgPSAwLCBsY19jYWw7DQo+ICsgICAgICAgdTggcmZfdmFsOw0KPiArICAgICAgIGludCByZXQ7 DQoNCkluIHJldmVyc2UgWCdtYXMuDQoNCj4gKw0KPiArICAgICAgIHZhbF9jdHggPSBydHdfcmVh ZDgocnR3ZGV2LCBSRUdfQ1RYKTsNCj4gKw0KPiArICAgICAgIGlmICgodmFsX2N0eCAmIEJJVF9N QVNLX0NUWF9UWVBFKSAhPSAwKQ0KPiArICAgICAgICAgICAgICAgcnR3X3dyaXRlOChydHdkZXYs IFJFR19DVFgsIHZhbF9jdHggJiB+QklUX01BU0tfQ1RYX1RZUEUpOw0KPiArICAgICAgIGVsc2UN Cj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfVFhQQVVTRSwgMHhmZik7 DQo+ICsNCj4gKyAgICAgICBpZiAoKHZhbF9jdHggJiBCSVRfTUFTS19DVFhfVFlQRSkgIT0gMCkg ew0KPiArICAgICAgICAgICAgICAgLyogMS4gUmVhZCBvcmlnaW5hbCBSRiBtb2RlICovDQo+ICsg ICAgICAgICAgICAgICByZl9tb2RlID0gcnR3X3JlYWRfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJG X0FDLCBNQVNLMTJCSVRTKTsNCj4gKyAgICAgICAgICAgICAgIC8qIDIuIFNldCBSRiBtb2RlID0g c3RhbmRieSBtb2RlICovDQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGVfcmYocnR3ZGV2LCBS Rl9QQVRIX0EsIFJGX0FDLCBNQVNLMTJCSVRTLCAocmZfbW9kZSAmIDB4OGZmZmYpIHwgMHgxMDAw MCk7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgLyogMy4gUmVhZCBSRiByZWcxOCAqLw0K PiArICAgICAgIGxjX2NhbCA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9DRkdD SCwgTUFTSzEyQklUUyk7DQo+ICsNCj4gKyAgICAgICAvKiA0LiBTZXQgTEMgY2FsaWJyYXRpb24g YmVnaW4gIGJpdDE1ICovDQo+ICsgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9B LCAweGIwLCBSRlJFR19NQVNLLCAweGRmYmUwKTsgLyogTERPIE9OICovDQo+ICsgICAgICAgcnR3 X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9DRkdDSCwgTUFTSzEyQklUUywgbGNfY2Fs IHwgQklUX0xDSyk7DQo+ICsNCj4gKyAgICAgICByZXQgPSByZWFkX3BvbGxfdGltZW91dChydHdf cmVhZF9yZiwgcmZfdmFsLCByZl92YWwgIT0gMHgxLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDEwMDAwLCAxMDAwMDAwLCBmYWxzZSwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgIHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9DRkdDSCwgQklUX0xDSyk7DQo+ICsgICAgICAgaWYg KHJldCkNCj4gKyAgICAgICAgICAgICAgIHJ0d193YXJuKHJ0d2RldiwgImZhaWxlZCB0byBwb2xs IExDSyBzdGF0dXMgYml0XG4iKTsNCj4gKw0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYs IFJGX1BBVEhfQSwgMHhiMCwgUkZSRUdfTUFTSywgMHhkZmZlMCk7IC8qIExETyBPRkYgKi8NCj4g Kw0KPiArICAgICAgIC8qIFJlc3RvcmUgb3JpZ2luYWwgc2l0dWF0aW9uICovDQo+ICsgICAgICAg aWYgKCh2YWxfY3R4ICYgQklUX01BU0tfQ1RYX1RZUEUpICE9IDApIHsNCj4gKyAgICAgICAgICAg ICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfQ1RYLCB2YWxfY3R4KTsNCj4gKw0KPiArICAgICAg ICAgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9BQywgTUFTSzEyQklU UywgcmZfbW9kZSk7DQo+ICsgICAgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgICAgICAgIHJ0d193 cml0ZTgocnR3ZGV2LCBSRUdfVFhQQVVTRSwgMHgwMCk7DQo+ICsgICAgICAgfQ0KPiArfQ0KPiAr DQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9pbmZvcm1fcmZrX3N0YXR1cyhzdHJ1Y3QgcnR3X2Rl diAqcnR3ZGV2LCBib29sIHN0YXJ0KQ0KPiArew0KPiArICAgICAgIHU4IHZhbDg7DQo+ICsgICAg ICAgaW50IHJldDsNCj4gKw0KPiArICAgICAgIHJ0d19md19pbmZvcm1fcmZrX3N0YXR1cyhydHdk ZXYsIHN0YXJ0KTsNCg0KZW1wdHkgbGluZQ0KDQo+ICsgICAgICAgaWYgKCFzdGFydCkNCj4gKyAg ICAgICAgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgICAgIHJldCA9IHJlYWRfcG9sbF90aW1l b3V0KHJ0d19yZWFkOCwgdmFsOCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YWw4ICYgQklUX1JGS19GV19BQ0tfODcyM0IsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgNTAwMDAsIDQwMDAwMCwgZmFsc2UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcnR3ZGV2LCBSRUdfUkZLX0ZXX0FDS184NzIzQik7DQo+ICsgICAgICAgaWYgKHJldCkN Cj4gKyAgICAgICAgICAgICAgIHJ0d193YXJuKHJ0d2RldiwgImZhaWxlZCB0byBwb2xsIGZpcm13 YXJlIFJGSyBzdGFydCBhY2tcbiIpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IHJ0dzg3MjNi X21hY19pbml0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgLyoNCj4g KyAgICAgICAgKiBMZWZ0IGRpc2FibGVkOiB0aGUgdmVuZG9yIGRvZXMgbm90IGRvIHRoaXMgYmxp bmQgQklUX1RDUl9DRkcgd3JpdGUuDQo+ICsgICAgICAgICogSXQgY29uZmlndXJlcyBSRUdfVENS IHZpYSBhIHJlYWQtbW9kaWZ5LXdyaXRlIGVsc2V3aGVyZSBpbiBoYWwgaW5pdA0KPiArICAgICAg ICAqIChydGw4NzIzYl9oYWxfaW5pdC5jIH4yNzk1KSwgYW5kIFRYIHdvcmtzIHdpdGhvdXQgc2V0 dGluZyBpdCBoZXJlLg0KPiArICAgICAgICAqLw0KPiArDQo+ICsgICAgICAgcnR3ODcyM2JfaW5p dF93bWFjX3NldHRpbmcocnR3ZGV2KTsNCj4gKw0KPiArICAgICAgIC8qDQo+ICsgICAgICAgICog VGhlc2UgbWF0Y2ggdGhlIGNvbW1vbiBydHc4NzIzeF9tYWNfaW5pdCAodXNlZCBieSBydHc4NzAz Yik7DQo+ICsgICAgICAgICogUkVHX0lOVF9NSUc9MCBpcyBhbHNvIHRoZSB2ZW5kb3IncyBkZWZh dWx0IChydGw4NzIzYl9kbS5jIHRvZ2dsZXMgaXQNCj4gKyAgICAgICAgKiBiZXR3ZWVuIDAgYW5k IDB4ZmYwMDBmYTAgZm9yIGludGVycnVwdCBtb2RlcmF0aW9uLCAwID0gb2ZmKS4NCj4gKyAgICAg ICAgKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19JTlRfTUlHLCAwKTsNCj4g KyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19NQ1VUU1RfMSwgMHgwKTsNCj4gKw0KPiAr ICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfTUlTQ19DVFJMLCAweDMpOyAvKiBDQ0EgKi8N Cj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHXzJORF9DQ0FfQ1RSTCwgMHgwKTsNCj4g Kw0KPiArICAgICAgIHJldHVybiAwOw0KPiArfQ0KPiArDQo+ICsvKiBiYXNlZCBvbg0KPiArICog dmVuZG9yOiBoYWwvcnRsODcyM2Ivc2Rpby9zZGlvX2hhbGluaXQuYw0KPiArICogZnVuY3Rpb246 IHJ0bDg3MjNic19oYWxfaW5pdA0KPiArICoNCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgcnR3ODcy M2JfcGh5X3NldF9wYXJhbShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAg IGNvbnN0IHN0cnVjdCBydHdfY2hpcF9pbmZvICpjaGlwID0gcnR3ZGV2LT5jaGlwOw0KPiArICAg ICAgIHUzMiB2YWwzMjsNCj4gKw0KPiArICAgICAgIHJ0dzg3MjNiX3Bvc3RfZW5hYmxlX2Zsb3co cnR3ZGV2KTsNCj4gKw0KPiArICAgICAgIHJ0d19sb2FkX3RhYmxlKHJ0d2RldiwgY2hpcC0+bWFj X3RibCk7DQo+ICsgICAgICAgcnR3ODcyM2JfcGh5X2JiX2NvbmZpZyhydHdkZXYpOw0KPiArICAg ICAgIHJ0dzg3MjNiX3BoeV9sb2FkX2JiX3RhYmxlcyhydHdkZXYpOw0KPiArICAgICAgIHJ0dzg3 MjNiX3BoeV9yZl9jb25maWcocnR3ZGV2KTsNCj4gKw0KPiArICAgICAgIC8qIGVuYWJsZSBDQ0sg YW5kIE9GRE0gYmxvY2sgKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMl9zZXQocnR3ZGV2LCBSRUdf RlBHQTBfUkZNT0QsIEJJVF9DQ0tFTiB8IEJJVF9PRkRNRU4pOw0KPiArDQo+ICsgICAgICAgcnR3 ODcyM2JfaW5pdF9xdWV1ZV9yZXNlcnZlZF9wYWdlKHJ0d2Rldik7DQo+ICsgICAgICAgcnR3ODcy M2JfaW5pdF90eF9idWZmZXJfYm91bmRhcnkocnR3ZGV2KTsNCj4gKyAgICAgICBydHc4NzIzYl9p bml0X2xsdF90YWJsZShydHdkZXYpOw0KPiArDQo+ICsgICAgICAgcnR3ODcyM2JfaW5pdF9wYWdl X2JvdW5kYXJ5KHJ0d2Rldik7DQo+ICsgICAgICAgcnR3ODcyM2JfaW5pdF90cmFuc2Zlcl9wYWdl X3NpemUocnR3ZGV2KTsNCj4gKyAgICAgICBydHc4NzIzYl9pbml0X2RyaXZlcl9pbmZvX3NpemUo cnR3ZGV2KTsNCj4gKyAgICAgICBydHc4NzIzYl9pbml0X25ldHdvcmtfdHlwZShydHdkZXYpOw0K PiArDQo+ICsgICAgICAgcnR3ODcyM2JfaW5pdF93bWFjX3NldHRpbmcocnR3ZGV2KTsNCj4gKw0K PiArICAgICAgIHJ0dzg3MjNiX2luaXRfYWRhcHRpdmVfY3RybChydHdkZXYpOw0KPiArICAgICAg IHJ0dzg3MjNiX2luaXRfZWRjYShydHdkZXYpOw0KPiArICAgICAgIHJ0dzg3MjNiX2luaXRfcmV0 cnlfZnVuY3Rpb24ocnR3ZGV2KTsNCj4gKw0KPiArICAgICAgIC8qIFNldCB1cCBSWCBhZ2dyZWdh dGlvbi4gc2Rpby5jIGFsc28gc2V0cyBETUEgbW9kZSwgYnV0IG5vdA0KPiArICAgICAgICAqIHRo ZSBidXJzdCBwYXJhbWV0ZXJzLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIHJ0d193cml0ZTgo cnR3ZGV2LCBSRUdfUlhETUFfTU9ERSwNCj4gKyAgICAgICAgICAgICAgICAgIEJJVF9ETUFfTU9E RSB8DQo+ICsgICAgICAgICAgICAgICAgICBGSUVMRF9QUkVQX0NPTlNUKEJJVF9NQVNLX0FHR19C VVJTVF9OVU0sIEFHR19CVVJTVF9OVU0pIHwNCj4gKyAgICAgICAgICAgICAgICAgIEZJRUxEX1BS RVBfQ09OU1QoQklUX01BU0tfQUdHX0JVUlNUX1NJWkUsIEFHR19CVVJTVF9TSVpFKSk7DQo+ICsN Cj4gKyAgICAgICBydHc4NzIzYl9pbml0X29wZXJhdGlvbl9tb2RlKHJ0d2Rldik7DQo+ICsgICAg ICAgcnR3ODcyM2JfaW5pdF9iZWFjb25fcGFyYW1ldGVycyhydHdkZXYpOw0KPiArICAgICAgIHJ0 dzg3MjNiX2luaXRfYnVyc3RfcGt0X2xlbihydHdkZXYpOw0KPiArDQo+ICsgICAgICAgLyogTWF0 Y2ggc3RhZ2luZydzIHJ0bDg3MjNic19oYWxfaW5pdCgpOiBwcm9ncmFtIHBlci1BQyBwYWNrZXQN Cj4gKyAgICAgICAgKiBsaWZldGltZSB0byAyNTYgbXMgKDB4MDQwMCwgaW4gMjU2IHVzIHVuaXRz KS4gIFRoZSBjaGlwIFJPTQ0KPiArICAgICAgICAqIGRlZmF1bHQgaXMgMHgxMDAwICh+MS4wNSBz KSBhbmQgdGhlIHVwc3RyZWFtIHJ0dzg4IGRyaXZlcg0KPiArICAgICAgICAqIG5ldmVyIHdyaXRl cyB0aGVzZSBmb3IgODcyM2IuICBMZWF2aW5nIHRoZSBsb25nIGRlZmF1bHQgbGV0cw0KPiArICAg ICAgICAqIHRoZSBjaGlwIHF1ZXVlL3JldHJ5IGRhdGEgZnJhbWVzIChpbmNsdWRpbmcgdW5pY2Fz dCBFQVBPTCBvbg0KPiArICAgICAgICAqIHRoZSBCRS9CSyBxdWV1ZSkgZm9yIH4xIHMgYmVmb3Jl IGdpdmluZyB1cCwgd2hpY2ggaXMgZmFyDQo+ICsgICAgICAgICogb3V0c2lkZSB0aGUgV1BBLVN1 cHBsaWNhbnQgMS1zIEVBUE9MIHJldHJ5IHdpbmRvdyBhbmQgcHJvZHVjZXMNCj4gKyAgICAgICAg KiBvdXQtb2Ytb3JkZXIgVFggYmVoYXZpb3VyIGR1cmluZyB0aGUgY29ubmVjdCB3aW5kb3cuICBV c2UgdGhlDQo+ICsgICAgICAgICogc3RhZ2luZy1wYXJpdHkgMjU2IG1zIHZhbHVlIHNvIFZPL1ZJ L0JFL0JLIFRYIG1hdGNoZXMgd2hhdA0KPiArICAgICAgICAqIHRoZSBsZWdhY3kgcnRsODcyM2Jz IGRyaXZlciBkb2VzIG9uIHRoZSBzYW1lIGhhcmR3YXJlLg0KPiArICAgICAgICAqLw0KPiArICAg ICAgIHJ0d193cml0ZTE2KHJ0d2RldiwgUkVHX1BLVF9WT19WSV9MSUZFX1RJTUUsIDB4MDQwMCk7 DQo+ICsgICAgICAgcnR3X3dyaXRlMTYocnR3ZGV2LCBSRUdfUEtUX0JFX0JLX0xJRkVfVElNRSwg MHgwNDAwKTsNCj4gKw0KPiArICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfU0xPVCwgV0xB Tl9TTE9UX1RJTUUpOw0KPiArDQo+ICsgICAgICAgLyogZGlzYWJsZSBCQVIgKi8NCj4gKyAgICAg ICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19CQVJfTU9ERV9DVFJMLCBXTEFOX0JBUl9WQUwpOw0K PiArDQo+ICsgICAgICAgLyogc2V0IDB4MCB0byAweEZGIGJ5IHR5bmxpLiBEZWZhdWx0IGVuYWJs ZSBIVyBTRVEgTlVNLiAqLw0KPiArICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfSFdTRVFf Q1RSTCwgMHhmZik7DQo+ICsNCj4gKyAgICAgICAvKg0KPiArICAgICAgICAqIENvbmZpZ3VyZSBT RElPIFR4UnggQ29udHJvbCB0byBlbmFibGUgUnggRE1BIHRpbWVyIG1hc2tpbmcuDQo+ICsgICAg ICAgICogMjAxMC4wMi4yNC4NCj4gKyAgICAgICAgKiBPbmx5IGNsZWFyIG5lY2Vzc2FyeSBiaXRz IDB4MFsyOjBdIGFuZCAweDJbMTU6MF0gYW5kIGtlZXAgMHgwWzE1OjNdDQo+ICsgICAgICAgICog MjAxNS4wMy4xOS4NCj4gKyAgICAgICAgKi8NCj4gKyAgICAgICB2YWwzMiA9IHJ0d19yZWFkMzIo cnR3ZGV2LCBSRUdfU0RJT19UWF9DVFJMKTsNCj4gKyAgICAgICB2YWwzMiAmPSAweDAwMDBmZmY4 Ow0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX1NESU9fVFhfQ1RSTCwgdmFsMzIp Ow0KPiArDQo+ICsgICAgICAgcnR3X3dyaXRlMTYocnR3ZGV2LCBSRUdfQVRJTVdORCwgMHgyKTsN Cj4gKw0KPiArICAgICAgIHJ0dzg3MjNiX2luaXRfYW50ZW5uYV9zZWxlY3Rpb24ocnR3ZGV2KTsN Cj4gKw0KPiArICAgICAgIC8qIE5PVEU6IHRoZSBmb2xsb3dpbmcgaXMgYWxzbyBkb25lIGluIHJ0 dzg3MjNiX3Bvc3RfZW5hYmxlX2Zsb3cgKi8NCj4gKyAgICAgICAvKiBFbmFibGUgTUFDVFhFTi9N QUNSWEVOIGJsb2NrICovDQo+ICsgICAgICAgcnR3X3dyaXRlOF9zZXQocnR3ZGV2LCBSRUdfQ1Is IEJJVF9NQUNUWEVOIHwgQklUX01BQ1JYRU4pOw0KPiArDQo+ICsgICAgICAgcnR3X3dyaXRlOChy dHdkZXYsIFJFR19OQVZfVVBQRVIsIDB4ZWIpOyAvKiAoKDMwMDAwICsgMTI4IC0gMSkgLyAxMjgp ICovDQo+ICsNCj4gKyAgICAgICAvKiBhY2sgZm9yIHhtaXQgbWdtdCBmcmFtZXMgKi8NCj4gKyAg ICAgICBydHdfd3JpdGUzMl9zZXQocnR3ZGV2LCBSRUdfRldIV19UWFFfQ1RSTCwgQklUKDEyKSk7 DQo+ICsNCj4gKyAgICAgICBydHdfcGh5X2luaXQocnR3ZGV2KTsNCj4gKw0KPiArICAgICAgIC8q DQo+ICsgICAgICAgICogODcyM2QgZG9lcyB0aGVzZSB0d28gYWxvbmdzaWRlIGl0cyBjY2tfcGRf c2V0LCBidXQgY2hpcF9vcHMuY2NrX3BkX3NldA0KPiArICAgICAgICAqIGlzIE5VTEwgb24gODcy M2IgKFJFR19DU1JBVElPIGRvZXMgbm90IGV4aXN0IG9uIHRoaXMgZ2VuZXJhdGlvbiAtIHNlZQ0K PiArICAgICAgICAqIHRoZSBjaGlwX29wcyBjb21tZW50KSwgc28gdGhleSBzdGF5IGRpc2FibGVk LiAgS2VwdCBmb3IgcmVmZXJlbmNlIGluDQo+ICsgICAgICAgICogY2FzZSBjY2tfcGQgaXMgZXZl ciB3aXJlZCB1cDsgdGhlIHJlZ2lzdGVycy9jb25zdGFudHMgd291bGQgdGhlbiBuZWVkDQo+ICsg ICAgICAgICogY2hlY2tpbmcgYWdhaW5zdCBydGw4NzIzYi4NCj4gKyAgICAgICAgKi8NCj4gKw0K PiArICAgICAgIC8qIDg3MjNCIExDSyBydW5zIGFmdGVyIHRoZSBSRiB0YWJsZSBsb2FkIGluIHN0 YWdpbmcncw0KPiArICAgICAgICAqIFBIWV9SRkNvbmZpZzg3MjNCLCBiZWZvcmUgbGF0ZXIgcGVy LWJhbmQgY2FsaWJyYXRpb25zLg0KPiArICAgICAgICAqIE5PVEU6IEVuYWJsaW5nIExDSyBoZXJl IGNvcnJ1cHRzIHRoZSBSRiBwYXRoIG9uIFNESU8NCj4gKyAgICAgICAgKiBhbmQgcHJldmVudHMg UlggZnJvbSB3b3JraW5nOyBrZWVwIGNvbW1lbnRlZCBvdXQuDQo+ICsgICAgICAgICogTENLIHN0 aWxsIHJ1bnMgaW5zaWRlIElRSyBvbiB0aGUgUFRBIGFudGVubmEgcGF0aC4NCj4gKyAgICAgICAg Ki8NCj4gKw0KPiArICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBSRUdfT0ZETTBfWEFB R0MxLCBNQVNLQllURTAsIDB4NTApOw0KPiArICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2 LCBSRUdfT0ZETTBfWEFBR0MxLCBNQVNLQllURTAsIDB4MjApOw0KPiArDQo+ICsgICAgICAgcnR3 ODcyM2JfcHdydHJhY2tfaW5pdChydHdkZXYpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgYm9vbCBy dHc4NzIzYl9zZGlvX25lZWRzX3J4X3BhdGhfZml4KHN0cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ ICt7DQo+ICsgICAgICAgcmV0dXJuIHJ0d19oY2lfdHlwZShydHdkZXYpID09IFJUV19IQ0lfVFlQ RV9TRElPOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9zZGlvX3Jlc3RvcmVf cGFkX2N0cmwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGJvb2wga2VlcF9wdGFfb3duZXIpDQo+ICt7DQo+ICsgICAg ICAgdTMyIGJlZm9yZTsNCj4gKyAgICAgICB1MzIgYWZ0ZXI7DQo+ICsNCj4gKyAgICAgICBpZiAo IXJ0dzg3MjNiX3NkaW9fbmVlZHNfcnhfcGF0aF9maXgocnR3ZGV2KSkNCj4gKyAgICAgICAgICAg ICAgIHJldHVybjsNCj4gKw0KPiArICAgICAgIGJlZm9yZSA9IHJ0d19yZWFkMzIocnR3ZGV2LCBS RUdfUEFEX0NUUkwxKTsNCj4gKyAgICAgICBhZnRlciA9IGJlZm9yZSAmIH4oQklUX0xOQU9OX1dM QlRfU0VMIHwgQklUX1NXX0RQRFRfU0VMX0RBVEEpOw0KPiArICAgICAgIGlmIChrZWVwX3B0YV9v d25lcikNCj4gKyAgICAgICAgICAgICAgIGFmdGVyIHw9IEJJVF9QQVBFX1dMQlRfU0VMOw0KPiAr ICAgICAgIGVsc2UNCj4gKyAgICAgICAgICAgICAgIGFmdGVyICY9IH5CSVRfUEFQRV9XTEJUX1NF TDsNCj4gKyAgICAgICBpZiAoYWZ0ZXIgPT0gYmVmb3JlKQ0KPiArICAgICAgICAgICAgICAgcmV0 dXJuOw0KPiArDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfUEFEX0NUUkwxLCBh ZnRlcik7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB1MzIgcnR3ODcyM2JfaXFrX2FudF9zd2l0Y2hf cGF0aChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIGlmIChydHdfaGNp X3R5cGUocnR3ZGV2KSAhPSBSVFdfSENJX1RZUEVfU0RJTykNCj4gKyAgICAgICAgICAgICAgIHJl dHVybiBydHdfaGNpX3R5cGUocnR3ZGV2KSA9PSBSVFdfSENJX1RZUEVfVVNCID8gMHgyODAgOiAw eDA7DQo+ICsNCj4gKyAgICAgICAvKiA4NzIzQlMgU0RJTyBzY2FuL2Nvbm5lY3Qgbm93IHJ1biB0 aHJvdWdoIHRoZSBQVEEgbXV4LCBqdXN0IGxpa2UgdGhlDQo+ICsgICAgICAgICogc3RhZ2luZyBC VC1kaXNhYmxlZCBzY2FuIHBhdGggbGVhdmVzIHRoZW0uIFJ1biBJUUsgdGhyb3VnaCB0aGUgc2Ft ZQ0KPiArICAgICAgICAqIG11eCBzbyB0aGUgY2FsaWJyYXRpb24gaXMgYXBwbGllZCB0byB0aGUg cGF0aCB1c2VkIGZvciBhdXRoL2Fzc29jIFRYLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIHJl dHVybiAocnR3ZGV2LT5lZnVzZS5idF9zZXR0aW5nICYgQklUKDYpKSA/IDB4ODAgOiAweDIwMDsN Cj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfcmVhc3NlcnRfcnhfcGF0aChzdHJ1 Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHU4IHN5c19mdW5jX2JlZm9yZTsN Cj4gKyAgICAgICB1OCByZl9jdHJsX2JlZm9yZTsNCj4gKyAgICAgICB1MzIgZnBnYTBfYmVmb3Jl Ow0KPiArICAgICAgIHUzMiByeF9wYXRoX2JlZm9yZTsNCj4gKyAgICAgICB1MzIgcmZfd2xpbnRf YmVmb3JlOw0KPiArICAgICAgIGJvb2wgY2hhbmdlZCA9IGZhbHNlOw0KDQpJbiByZXZlcnNlIFgn bWFzIG9yZGVyIA0KDQo+ICsNCj4gKyAgICAgICBpZiAoIXJ0dzg3MjNiX3NkaW9fbmVlZHNfcnhf cGF0aF9maXgocnR3ZGV2KSkNCj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAg ICAgIHN5c19mdW5jX2JlZm9yZSA9IHJ0d19yZWFkOChydHdkZXYsIFJFR19TWVNfRlVOQ19FTik7 DQo+ICsgICAgICAgcmZfY3RybF9iZWZvcmUgPSBydHdfcmVhZDgocnR3ZGV2LCBSRUdfUkZfQ1RS TCk7DQo+ICsgICAgICAgZnBnYTBfYmVmb3JlID0gcnR3X3JlYWQzMihydHdkZXYsIFJFR19GUEdB MF9SRk1PRCk7DQo+ICsgICAgICAgcnhfcGF0aF9iZWZvcmUgPSBydHdfcmVhZDMyKHJ0d2Rldiwg UkVHX0JCX1JYX1BBVEhfMTFOKTsNCj4gKyAgICAgICByZl93bGludF9iZWZvcmUgPSBydHdfcmVh ZF9yZihydHdkZXYsIFJGX1BBVEhfQSwgUkZfV0xJTlQsIFJGUkVHX01BU0spOw0KPiArDQo+ICsg ICAgICAgaWYgKChzeXNfZnVuY19iZWZvcmUgJiBXTEFOX1NZU19GVU5DX0JCX0VOQUJMRSkgIT0N Cj4gKyAgICAgICAgICAgV0xBTl9TWVNfRlVOQ19CQl9FTkFCTEUpIHsNCj4gKyAgICAgICAgICAg ICAgIHJ0d193cml0ZThfc2V0KHJ0d2RldiwgUkVHX1NZU19GVU5DX0VOLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgV0xBTl9TWVNfRlVOQ19CQl9FTkFCTEUpOw0KPiArICAgICAg ICAgICAgICAgY2hhbmdlZCA9IHRydWU7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgaWYg KChyZl9jdHJsX2JlZm9yZSAmIFdMQU5fUkZfQ1RSTF9FTkFCTEUpICE9IFdMQU5fUkZfQ1RSTF9F TkFCTEUpIHsNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZThfc2V0KHJ0d2RldiwgUkVHX1JG X0NUUkwsIFdMQU5fUkZfQ1RSTF9FTkFCTEUpOw0KPiArICAgICAgICAgICAgICAgdXNsZWVwX3Jh bmdlKDEwLCAxMSk7DQo+ICsgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsNCj4gKyAgICAg ICB9DQo+ICsNCj4gKyAgICAgICBpZiAoKGZwZ2EwX2JlZm9yZSAmIChCSVRfQ0NLRU4gfCBCSVRf T0ZETUVOKSkgIT0NCj4gKyAgICAgICAgICAgKEJJVF9DQ0tFTiB8IEJJVF9PRkRNRU4pKSB7DQo+ ICsgICAgICAgICAgICAgICBydHdfd3JpdGUzMl9zZXQocnR3ZGV2LCBSRUdfRlBHQTBfUkZNT0Qs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUX0NDS0VOIHwgQklUX09GRE1F Tik7DQo+ICsgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsNCj4gKyAgICAgICB9DQo+ICsN Cj4gKyAgICAgICBpZiAocnhfcGF0aF9iZWZvcmUgIT0gV0xBTl9SWF9QQVRIX0FfODcyM0IpIHsN Cj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0JCX1JYX1BBVEhfMTFO LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgV0xBTl9SWF9QQVRIX0FfODcyM0IpOw0K PiArICAgICAgICAgICAgICAgY2hhbmdlZCA9IHRydWU7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsg ICAgICAgaWYgKHJmX3dsaW50X2JlZm9yZSAhPSAweDA3ODApIHsNCj4gKyAgICAgICAgICAgICAg IHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUkZfV0xJTlQsIFJGUkVHX01BU0ssDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgMHgwNzgwKTsNCj4gKyAgICAgICAgICAgICAg IGNoYW5nZWQgPSB0cnVlOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIGlmICghY2hhbmdl ZCkNCj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gK30NCj4gKw0KPiArLyogYmFzZWQgb24g dmVuZG9yIGZ1bmN0aW9ucw0KPiArICogaGFsL3J0bDg3MjNiL3J0bDg3MjNiX3BoeWNmZy5jOiBw aHlfU3dDaG5sODcyM0INCj4gKyAqIGhhbC9ydGw4NzIzYi9ydGw4NzIzYl9waHljZmcuYzogcGh5 X1Bvc3RTZXRCd01vZGU4NzIzQg0KPiArICogaGFsL3J0bDg3MjNiL3J0bDg3MjNiX3JmNjA1Mi5j OiBQSFlfUkY2MDUyU2V0QmFuZHdpZHRoODcyM0INCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgcnR3 ODcyM2Jfc2V0X2NoYW5uZWxfcmYoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggY2hhbm5lbCwg dTggYncpDQo+ICt7DQo+ICsgICAgICAgdTMyIHJmX2NmZ2NoX2E7DQo+ICsgICAgICAgdTMyIHJm X2NmZ2NoX2IgPSAwOw0KPiArDQo+ICsgICAgICAgcmZfY2ZnY2hfYSA9IHJ0d19yZWFkX3JmKHJ0 d2RldiwgUkZfUEFUSF9BLCBSRl9DRkdDSCwgUkZSRUdfTUFTSyk7DQo+ICsgICAgICAgaWYgKHJ0 d2Rldi0+aGFsLnJmX3BhdGhfbnVtID4gMSkNCj4gKyAgICAgICAgICAgICAgIHJmX2NmZ2NoX2Ig PSBydHdfcmVhZF9yZihydHdkZXYsIFJGX1BBVEhfQiwgUkZfQ0ZHQ0gsIFJGUkVHX01BU0spOw0K PiArDQo+ICsgICAgICAgcmZfY2ZnY2hfYSAmPSB+UkZDRkdDSF9DSEFOTkVMX01BU0s7DQo+ICsg ICAgICAgaWYgKHJ0d2Rldi0+aGFsLnJmX3BhdGhfbnVtID4gMSkNCj4gKyAgICAgICAgICAgICAg IHJmX2NmZ2NoX2IgJj0gflJGQ0ZHQ0hfQ0hBTk5FTF9NQVNLOw0KPiArDQo+ICsgICAgICAgcmZf Y2ZnY2hfYSB8PSAoY2hhbm5lbCAmIFJGQ0ZHQ0hfQ0hBTk5FTF9NQVNLKTsNCj4gKyAgICAgICBp ZiAocnR3ZGV2LT5oYWwucmZfcGF0aF9udW0gPiAxKQ0KPiArICAgICAgICAgICAgICAgcmZfY2Zn Y2hfYiB8PSAoY2hhbm5lbCAmIFJGQ0ZHQ0hfQ0hBTk5FTF9NQVNLKTsNCj4gKw0KPiArICAgICAg IHJmX2NmZ2NoX2EgJj0gflJGQ0ZHQ0hfQldfTUFTSzsNCj4gKw0KPiArICAgICAgIHN3aXRjaCAo YncpIHsNCj4gKyAgICAgICBjYXNlIFJUV19DSEFOTkVMX1dJRFRIXzIwOg0KPiArICAgICAgICAg ICAgICAgcmZfY2ZnY2hfYSB8PSBSRkNGR0NIX0JXXzIwTTsNCj4gKyAgICAgICAgICAgICAgIGJy ZWFrOw0KPiArICAgICAgIGNhc2UgUlRXX0NIQU5ORUxfV0lEVEhfNDA6DQo+ICsgICAgICAgICAg ICAgICByZl9jZmdjaF9hIHw9IFJGQ0ZHQ0hfQldfNDBNOw0KPiArICAgICAgICAgICAgICAgYnJl YWs7DQo+ICsgICAgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAg ICAgIH0NCj4gKw0KPiArICAgICAgIGlmIChydHdkZXYtPmhhbC5yZl9wYXRoX251bSA+IDEpIHsN Cj4gKyAgICAgICAgICAgICAgIC8qIHRoZSB2ZW5kb3IgZHJpdmVyIHdyaXRlcyBBIHZhbHVlIGFs c28gdG8gQiAqLw0KPiArICAgICAgICAgICAgICAgcmZfY2ZnY2hfYiA9IHJmX2NmZ2NoX2E7DQo+ ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9B LCBSRl9DRkdDSCwgUkZSRUdfTUFTSywgcmZfY2ZnY2hfYSk7DQo+ICsgICAgICAgaWYgKHJ0d2Rl di0+aGFsLnJmX3BhdGhfbnVtID4gMSkNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZV9yZihy dHdkZXYsIFJGX1BBVEhfQiwgUkZfQ0ZHQ0gsIFJGUkVHX01BU0ssIHJmX2NmZ2NoX2IpOw0KPiAr DQo+ICsgICAgICAgcmZfY2ZnY2hfYSA9IHJ0d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBS Rl9DRkdDSCwgUkZSRUdfTUFTSyk7DQo+ICsgICAgICAgaWYgKHJ0d2Rldi0+aGFsLnJmX3BhdGhf bnVtID4gMSkNCj4gKyAgICAgICAgICAgICAgIHJmX2NmZ2NoX2IgPSBydHdfcmVhZF9yZihydHdk ZXYsIFJGX1BBVEhfQiwgUkZfQ0ZHQ0gsIFJGUkVHX01BU0spOw0KPiArDQo+ICsgICAgICAgLyog Tk9URTogbm90IGNhbGxlZCBpbiB2ZW5kb3IgZHJpdmVyICovDQo+ICt9DQo+ICsNCj4gKy8qIGJh c2VkIG9uIHZlbmRvciBmdW5jdGlvbnMNCj4gKyAqIGhhbC9ydGw4NzIzYi9ydGw4NzIzYl9waHlj ZmcuYzogcGh5X1N3Q2hubDg3MjNCDQo+ICsgKiBoYWwvcnRsODcyM2IvcnRsODcyM2JfcGh5Y2Zn LmM6IHBoeV9Qb3N0U2V0QndNb2RlODcyM0INCj4gKyAqIGhhbC9ydGw4NzIzYi9ydGw4NzIzYl9y ZjYwNTIuYzogUEhZX1JGNjA1MlNldEJhbmR3aWR0aDg3MjNCDQo+ICsgKi8NCj4gK3N0YXRpYyB2 b2lkIHJ0dzg3MjNiX3NldF9jaGFubmVsX2JiKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IGJ3 LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1OCBwcmltYXJ5X2NoX2lk eCkNCj4gK3sNCj4gKyAgICAgICBzd2l0Y2ggKGJ3KSB7DQo+ICsgICAgICAgY2FzZSBSVFdfQ0hB Tk5FTF9XSURUSF8yMDoNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2 LCBSRUdfRlBHQTBfUkZNT0QsIEJJVF9NQVNLX1JGTU9ELCAweDApOw0KPiArICAgICAgICAgICAg ICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19GUEdBMV9SRk1PRCwgQklUX01BU0tfUkZN T0QsIDB4MCk7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVH X09GRE0wX1RYX1BTRF9OT0lTRSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg R0VOTUFTSygzMSwgMzApLCAweDApOw0KPiArICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAg ICAgY2FzZSBSVFdfQ0hBTk5FTF9XSURUSF80MDoNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0 ZTMyX21hc2socnR3ZGV2LCBSRUdfRlBHQTBfUkZNT0QsIEJJVF9NQVNLX1JGTU9ELCAweDEpOw0K PiArICAgICAgICAgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19GUEdBMV9SRk1P RCwgQklUX01BU0tfUkZNT0QsIDB4MSk7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUzMl9t YXNrKHJ0d2RldiwgUkVHX0NDSzBfU1lTLCBCSVRfQ0NLX1NJREVfQkFORCwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9jaF9pZHggPT0gUlRXX1NDXzIwX1VQUEVS ID8gMSA6IDApOw0KPiArICAgICAgICAgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJF R19PRkRNX0ZBX1JTVERfMTFOLCAweGMwMCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcHJpbWFyeV9jaF9pZHggPT0gUlRXX1NDXzIwX1VQUEVSID8gMiA6IDEpOw0KPiArICAg ICAgICAgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19CQl9QV1JfU0FWNV8xMU4s IEdFTk1BU0soMjcsIDI2KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJp bWFyeV9jaF9pZHggPT0gUlRXX1NDXzIwX1VQUEVSID8gMSA6IDIpOw0KPiArICAgICAgICAgICAg ICAgYnJlYWs7DQo+ICsgICAgICAgZGVmYXVsdDoNCj4gKyAgICAgICAgICAgICAgIGJyZWFrOw0K PiArICAgICAgIH0NCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2Jfc2V0X2NoYW5u ZWwoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggY2hhbm5lbCwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdTggYncsIHU4IHByaW1hcnlfY2hhbl9pZHgpDQo+ICt7DQo+ICsg ICAgICAgcnR3ODcyM2Jfc2V0X2NoYW5uZWxfcmYocnR3ZGV2LCBjaGFubmVsLCBidyk7DQo+ICsg ICAgICAgcnR3X3NldF9jaGFubmVsX21hYyhydHdkZXYsIGNoYW5uZWwsIGJ3LCBwcmltYXJ5X2No YW5faWR4KTsNCj4gKyAgICAgICBydHc4NzIzYl9zZXRfY2hhbm5lbF9iYihydHdkZXYsIGJ3LCBw cmltYXJ5X2NoYW5faWR4KTsNCj4gKyAgICAgICBydHc4NzIzYl9yZWFzc2VydF9yeF9wYXRoKHJ0 d2Rldik7DQo+ICsNCj4gKyAgICAgICBpZiAocnR3ODcyM2Jfc2Rpb19uZWVkc19yeF9wYXRoX2Zp eChydHdkZXYpKSB7DQo+ICsgICAgICAgICAgICAgICBib29sIGtlZXBfcHRhX293bmVyOw0KPiAr DQo+ICsgICAgICAgICAgICAgICBrZWVwX3B0YV9vd25lciA9IHRlc3RfYml0KFJUV19GTEFHX1ND QU5OSU5HLCBydHdkZXYtPmZsYWdzKSB8fA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAocnR3X3JlYWQzMihydHdkZXYsIFJFR19QQURfQ1RSTDEpICYNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEJJVF9QQVBFX1dMQlRfU0VMKTsNCj4gKyAgICAgICAgICAg ICAgIHJ0dzg3MjNiX3NkaW9fcmVzdG9yZV9wYWRfY3RybChydHdkZXYsIGtlZXBfcHRhX293bmVy KTsNCj4gKw0KPiArICAgICAgICAgICAgICAgLyogUkZfV0xJTlQgKDB4MDEpIGlzIHRoZSBSRiB3 aXJlbGVzcy1pbnRlcmZhY2UgcmVnaXN0ZXIuDQo+ICsgICAgICAgICAgICAgICAgKiBCaXRzIDAt MSBnYXRlIHRoZSBUWC9SWCBkYXRhIHBhdGggaW50byB0aGUgQkI7IGlmIHRoZXkNCj4gKyAgICAg ICAgICAgICAgICAqIGFyZSBzZXQgdG8gMHgwMyAoZnJvbSBhIHByaW9yIElRSyBvciBjb2V4IHJ1 biksIHRoZSBjaGlwDQo+ICsgICAgICAgICAgICAgICAgKiBtYXkgbm90IGJlIGFibGUgdG8gdHJh bnNtaXQuICBTdGFnaW5nIGFsd2F5cyBsZWF2ZXMgdGhpcw0KPiArICAgICAgICAgICAgICAgICog cmVnaXN0ZXIgYXQgMHgwNzgwIGFmdGVyIHBvd2VyLW9uLg0KPiArICAgICAgICAgICAgICAgICoN Cj4gKyAgICAgICAgICAgICAgICAqIFJlLXdyaXRlIFJFR19SRl9DVFJMICgweDA3KSB0byByZS1h cm0gdGhlIFJGIGJsb2NrDQo+ICsgICAgICAgICAgICAgICAgKiBhZnRlciB0aGUgQkIvUkYgY2hh bm5lbCBwYXRoIG1heSBoYXZlIHRvdWNoZWQgaXQsIHRoZW4NCj4gKyAgICAgICAgICAgICAgICAq IHdyaXRlIHRoZSBrbm93bi1nb29kIFJGX1dMSU5UIHZhbHVlLiAgQ2xlYXIgUkVHX1JGX0NUUkwN Cj4gKyAgICAgICAgICAgICAgICAqIHRvIDAgaXMgZXhwbGljaXRseSBhdm9pZGVkIGhlcmUg4oCU IHRoYXQgZnVsbHkgZGlzYWJsZXMNCj4gKyAgICAgICAgICAgICAgICAqIHRoZSBSRiBmcm9udGVu ZCAoUkZfRU49MCwgUkYgaW4gcmVzZXQpLCBhbmQgb24gdGhpcw0KPiArICAgICAgICAgICAgICAg ICogODcyM0IgU0RJTyBzdGVwcGluZyB0aGUgUkYgZG9lcyBub3QgcmVjb3ZlciBmcm9tIGENCj4g KyAgICAgICAgICAgICAgICAqIGNvbGQgZGlzYWJsZSBhdCBldmVyeSBjaGFubmVsIHN3aXRjaC4N Cj4gKyAgICAgICAgICAgICAgICAqLw0KPiArICAgICAgICAgICAgICAgcnR3X3dyaXRlOChydHdk ZXYsIFJFR19SRl9DVFJMLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBXTEFOX1JGX0NU UkxfRU5BQkxFIHwgQklUX1JGX1JTVEIgfA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBC SVRfUkZfU0RNX1JTVEIpOw0KPiArICAgICAgICAgICAgICAgdXNsZWVwX3JhbmdlKDEwMDAsIDEx MDApOw0KPiArICAgICAgICAgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBS Rl9XTElOVCwgUkZSRUdfTUFTSywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDA3 ODApOw0KPiArICAgICAgIH0NCj4gK30NCj4gKw0KPiArLyogYWRhcHRlZCBmcm9tIHZlbmRvciBm aWxlIGhhbC9waHlkbS9ydGw4NzIzYi9waHlkbV9ydGw4NzIzYi5jDQo+ICsgKiBmdW5jdGlvbjog b2RtX0NDS1JTU0lfODcyM0INCj4gKyAqLw0KPiArc3RhdGljIHM4IHJ0dzg3MjNiX2Nja19yeF9w b3dlcih1OCBsbmFfaWR4LCB1OCB2Z2FfaWR4KQ0KPiArew0KPiArICAgICAgIHM4IHJ4X3Bvd2Vy ID0gMDsNCj4gKw0KPiArICAgICAgIHN3aXRjaCAobG5hX2lkeCkgew0KPiArICAgICAgIGNhc2Ug NjoNCj4gKyAgICAgICAgICAgICAgIHJ4X3Bvd2VyID0gLTQwIC0gKDIgKiB2Z2FfaWR4KTsNCj4g KyAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgIGNhc2UgNDoNCj4gKyAgICAgICAgICAg ICAgIHJ4X3Bvd2VyID0gLTIwIC0gKDIgKiB2Z2FfaWR4KTsNCj4gKyAgICAgICAgICAgICAgIGJy ZWFrOw0KPiArICAgICAgIGNhc2UgMToNCj4gKyAgICAgICAgICAgICAgIHJ4X3Bvd2VyID0gMCAt ICgyICogdmdhX2lkeCk7DQo+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICBjYXNl IDA6DQo+ICsgICAgICAgICAgICAgICByeF9wb3dlciA9IDEwIC0gKDIgKiB2Z2FfaWR4KTsNCj4g KyAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgICAg ICAgICBicmVhazsNCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICByZXR1cm4gcnhfcG93ZXI7 DQo+ICt9DQo+ICsNCj4gKy8qIHZlbmRvcjogaGFsL3BoeWRtL3BoeWRtX3BoeXN0YXR1cy5jDQo+ ICsgKiBmdW5jdGlvbjogcGh5ZG1fcnhfcGh5X3N0YXR1czkyY19zZXJpZXNfcGFyc2luZyAoaXNf Y2NrX3JhdGUgYXJtKQ0KPiArICovDQo+ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9xdWVyeV9waHlf c3RhdHVzX2NjayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqcGh5X3JhdywNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHJ0d19yeF9wa3Rfc3Rh dCAqcGt0X3N0YXQpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0IHBoeV9zdGF0dXNfODcwM2IgKnBo eV9zdGF0dXMgPSAoc3RydWN0IHBoeV9zdGF0dXNfODcwM2IgKilwaHlfcmF3Ow0KPiArICAgICAg IHU4IGxuYV9pZHggPSAocGh5X3N0YXR1cy0+Y2NrX2FnY19ycHRfb2ZkbV9jZm9zaG9fYSAmIDB4 RTApID4+IDU7DQo+ICsgICAgICAgdTggdmdhX2lkeCA9IChwaHlfc3RhdHVzLT5jY2tfYWdjX3Jw dF9vZmRtX2Nmb3Nob19hICYgMHgxRik7DQo+ICsgICAgICAgczggcnhfcG93ZXIgPSBydHc4NzIz Yl9jY2tfcnhfcG93ZXIobG5hX2lkeCwgdmdhX2lkeCk7DQo+ICsgICAgICAgczggbWluX3J4X3Bv d2VyID0gLTEyMDsNCj4gKw0KPiArICAgICAgIHBrdF9zdGF0LT5idyA9IFJUV19DSEFOTkVMX1dJ RFRIXzIwOw0KPiArDQo+ICsgICAgICAgcGt0X3N0YXQtPnJ4X3Bvd2VyW1JGX1BBVEhfQV0gPSBy eF9wb3dlcjsNCj4gKyAgICAgICBwa3Rfc3RhdC0+cnNzaSA9IHJ0d19waHlfcmZfcG93ZXJfMl9y c3NpKHBrdF9zdGF0LT5yeF9wb3dlciwgMSk7DQo+ICsgICAgICAgcGt0X3N0YXQtPnNpZ25hbF9w b3dlciA9IG1heChwa3Rfc3RhdC0+cnhfcG93ZXJbUkZfUEFUSF9BXSwNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG1pbl9yeF9wb3dlcik7DQo+ICsgICAgICAgcnR3ZGV2 LT5kbV9pbmZvLnJzc2lbUkZfUEFUSF9BXSA9IHBrdF9zdGF0LT5yc3NpOw0KPiArfQ0KPiArDQo+ ICsvKiB2ZW5kb3I6IGhhbC9waHlkbS9waHlkbV9waHlzdGF0dXMuYw0KPiArICogZnVuY3Rpb246 IHBoeWRtX3J4X3BoeV9zdGF0dXM5MmNfc2VyaWVzX3BhcnNpbmcgKCFpc19jY2tfcmF0ZSBhcm0p DQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX3F1ZXJ5X3BoeV9zdGF0dXNfb2ZkbShz dHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LCB1OCAqcGh5X3JhdywNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydHdfcnhfcGt0X3N0YXQgKnBrdF9zdGF0 KQ0KPiArew0KPiArICAgICAgIHN0cnVjdCBwaHlfc3RhdHVzXzg3MDNiICpwaHlfc3RhdHVzID0g KHN0cnVjdCBwaHlfc3RhdHVzXzg3MDNiICopcGh5X3JhdzsNCj4gKyAgICAgICBzdHJ1Y3QgcnR3 X2RtX2luZm8gKmRtX2luZm8gPSAmcnR3ZGV2LT5kbV9pbmZvOw0KPiArICAgICAgIHM4IHZhbF9z ODsNCj4gKw0KPiArICAgICAgIC8qDQo+ICsgICAgICAgICogcGt0X3N0YXQtPmJ3IGlzIGxlZnQg YXQgaXRzIGRlZmF1bHQgKFJUV19DSEFOTkVMX1dJRFRIXzIwKSwgd2hpY2ggaXMNCj4gKyAgICAg ICAgKiBjb3JyZWN0IHdoaWxlIHRoZSBkcml2ZXIgb25seSBvcGVyYXRlcyBhdCAyMCBNSHouICBQ YXJzaW5nIHRoZSBSWA0KPiArICAgICAgICAqIGJhbmR3aWR0aCBvdXQgb2YgcGh5X3N0YXR1cyBp cyBvbmx5IG5lZWRlZCBvbmNlIEhUNDAgaXMgZW5hYmxlZC4NCj4gKyAgICAgICAgKi8NCj4gKw0K PiArICAgICAgIHZhbF9zOCA9IHBoeV9zdGF0dXMtPnBhdGhfYWdjW1JGX1BBVEhfQV0uZ2FpbiAm IDB4M0Y7DQo+ICsgICAgICAgcGt0X3N0YXQtPnJ4X3Bvd2VyW1JGX1BBVEhfQV0gPSAodmFsX3M4 ICogMikgLSAxMTA7DQo+ICsNCj4gKyAgICAgICBwa3Rfc3RhdC0+cnNzaSA9IHJ0d19waHlfcmZf cG93ZXJfMl9yc3NpKHBrdF9zdGF0LT5yeF9wb3dlciwgMSk7DQo+ICsgICAgICAgcGt0X3N0YXQt PnJ4X3NucltSRl9QQVRIX0FdID0gKHM4KShwaHlfc3RhdHVzLT5wYXRoX3J4c25yW1JGX1BBVEhf QV0gLyAyKTsNCj4gKw0KPiArICAgICAgIC8qIHNpZ25hbCBwb3dlciByZXBvcnRlZCBieSBIVyAq Lw0KPiArICAgICAgIHZhbF9zOCA9IHBoeV9zdGF0dXMtPmNja19zaWdfcXVhbF9vZmRtX3B3ZGJf YWxsID4+IDE7DQo+ICsgICAgICAgcGt0X3N0YXQtPnNpZ25hbF9wb3dlciA9ICh2YWxfczggJiAw eDdmKSAtIDExMDsNCj4gKw0KPiArICAgICAgIHBrdF9zdGF0LT5yeF9ldm1bUkZfUEFUSF9BXSA9 IHBoeV9zdGF0dXMtPnN0cmVhbV9yeGV2bVtSRl9QQVRIX0FdOw0KPiArICAgICAgIHBrdF9zdGF0 LT5jZm9fdGFpbFtSRl9QQVRIX0FdID0gcGh5X3N0YXR1cy0+cGF0aF9jZm90YWlsW1JGX1BBVEhf QV07DQo+ICsNCj4gKyAgICAgICBkbV9pbmZvLT5jdXJyX3J4X3JhdGUgPSBwa3Rfc3RhdC0+cmF0 ZTsNCj4gKyAgICAgICBkbV9pbmZvLT5yc3NpW1JGX1BBVEhfQV0gPSBwa3Rfc3RhdC0+cnNzaTsN Cj4gKyAgICAgICBkbV9pbmZvLT5yeF9zbnJbUkZfUEFUSF9BXSA9IHBrdF9zdGF0LT5yeF9zbnJb UkZfUEFUSF9BXSA+PiAxOw0KPiArICAgICAgIGRtX2luZm8tPmNmb190YWlsW1JGX1BBVEhfQV0g PSAocGt0X3N0YXQtPmNmb190YWlsW1JGX1BBVEhfQV0gKiA1KSA+PiAxOw0KPiArDQo+ICsgICAg ICAgdmFsX3M4ID0gKHM4KXBrdF9zdGF0LT5yeF9ldm1bUkZfUEFUSF9BXTsNCj4gKyAgICAgICB2 YWxfczggPSBjbGFtcF90KHM4LCAtdmFsX3M4ID4+IDEsIDAsIDY0KTsNCj4gKyAgICAgICB2YWxf czggJj0gMHgzRjsgLyogNjQtPjA6IHNlY29uZCBwYXRoIG9mIDFTUyByYXRlIGlzIDY0ICovDQo+ ICsgICAgICAgZG1faW5mby0+cnhfZXZtX2RibVtSRl9QQVRIX0FdID0gdmFsX3M4Ow0KPiArfQ0K PiArDQo+ICsvKiB2ZW5kb3I6IGhhbC9waHlkbS9waHlkbV9waHlzdGF0dXMuYw0KPiArICogZnVu Y3Rpb246IHBoeWRtX3J4X3BoeV9zdGF0dXM5MmNfc2VyaWVzX3BhcnNpbmcNCj4gKyAqLw0KPiAr c3RhdGljIHZvaWQgcnR3ODcyM2JfcXVlcnlfcGh5X3N0YXR1cyhzdHJ1Y3QgcnR3X2RldiAqcnR3 ZGV2LCB1OCAqcGh5X3N0YXR1cywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBzdHJ1Y3QgcnR3X3J4X3BrdF9zdGF0ICpwa3Rfc3RhdCkNCj4gK3sNCj4gKyAgICAgICAv KiBUaGUgODcyM0IgUEhZIHN0YXR1cyBkb2VzIG5vdCByZXBvcnQgdGhlIGNoYW5uZWwsIHNvIHdl IG11c3QNCj4gKyAgICAgICAgKiBtYXJrIGl0IGludmFsaWQgdG8gYWxsb3cgbWFjODAyMTEvcnR3 ODggdG8gcGFyc2UgaXQgZnJvbSB0aGUgSUUNCj4gKyAgICAgICAgKiBkdXJpbmcgc2Nhbm5pbmcu DQo+ICsgICAgICAgICovDQo+ICsgICAgICAgcGt0X3N0YXQtPmNoYW5uZWxfaW52YWxpZCA9IHRy dWU7DQo+ICsNCj4gKyAgICAgICBpZiAocGt0X3N0YXQtPnJhdGUgPD0gREVTQ19SQVRFMTFNKQ0K PiArICAgICAgICAgICAgICAgcnR3ODcyM2JfcXVlcnlfcGh5X3N0YXR1c19jY2socnR3ZGV2LCBw aHlfc3RhdHVzLCBwa3Rfc3RhdCk7DQo+ICsgICAgICAgZWxzZQ0KPiArICAgICAgICAgICAgICAg cnR3ODcyM2JfcXVlcnlfcGh5X3N0YXR1c19vZmRtKHJ0d2RldiwgcGh5X3N0YXR1cywgcGt0X3N0 YXQpOw0KPiArfQ0KPiArDQo+ICsvKiB2ZW5kb3I6IGhhbC9waHlkbS9oYWxyZi9ydGw4NzIzYi9o YWxyZl84NzIzYl9jZS5jDQo+ICsgKiBmdW5jdGlvbjogc2V0X2lxa19tYXRyaXhfODcyM2INCj4g KyAqLw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2Jfc2V0X2lxa19tYXRyaXhfYnlfcmVzdWx0KHN0 cnVjdCBydHdfZGV2ICpydHdkZXYsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB1MzIgb2ZkbV9zd2luZywgdTggcGF0aCkNCj4gK3sNCj4gKyAgICAgICBz dHJ1Y3QgcnR3X2RtX2luZm8gKmRtX2luZm8gPSAmcnR3ZGV2LT5kbV9pbmZvOw0KPiArICAgICAg IHMzMiBlbGVfQSwgZWxlX0QsIGVsZV9DLCBlbGVfQV9leHQ7DQo+ICsgICAgICAgczMyIGlxa19y ZXN1bHRfeDsNCj4gKyAgICAgICBzMzIgaXFrX3Jlc3VsdF95Ow0KPiArICAgICAgIHMzMiB2YWx1 ZTMyOw0KPiArDQo+ICsgICAgICAgc3dpdGNoIChwYXRoKSB7DQo+ICsgICAgICAgZGVmYXVsdDoN Cj4gKyAgICAgICBjYXNlIFJGX1BBVEhfQToNCj4gKyAgICAgICAgICAgICAgIGlxa19yZXN1bHRf eCA9IGRtX2luZm8tPmlxay5yZXN1bHQuczFfeDsNCj4gKyAgICAgICAgICAgICAgIGlxa19yZXN1 bHRfeSA9IGRtX2luZm8tPmlxay5yZXN1bHQuczFfeTsNCj4gKyAgICAgICAgICAgICAgIGJyZWFr Ow0KPiArICAgICAgIGNhc2UgUkZfUEFUSF9COg0KPiArICAgICAgICAgICAgICAgaXFrX3Jlc3Vs dF94ID0gZG1faW5mby0+aXFrLnJlc3VsdC5zMF94Ow0KPiArICAgICAgICAgICAgICAgaXFrX3Jl c3VsdF95ID0gZG1faW5mby0+aXFrLnJlc3VsdC5zMF95Ow0KPiArICAgICAgICAgICAgICAgYnJl YWs7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgLyogbmV3IGVsZW1lbnQgRCAqLw0KPiAr ICAgICAgIGVsZV9EID0gT0ZETV9TV0lOR19EKG9mZG1fc3dpbmcpOw0KPiArDQo+ICsgICAgICAg LyogbmV3IGVsZW1lbnQgQSAqLw0KPiArICAgICAgIGlxa19yZXN1bHRfeCA9IGlxa3h5X3RvX3Mz MihpcWtfcmVzdWx0X3gpOw0KPiArICAgICAgIGVsZV9BID0gaXFrX211bHQoaXFrX3Jlc3VsdF94 LCBlbGVfRCwgJmVsZV9BX2V4dCk7DQo+ICsNCj4gKyAgICAgICAvKiBuZXcgZWxlbWVudCBDICov DQo+ICsgICAgICAgaXFrX3Jlc3VsdF95ID0gaXFreHlfdG9fczMyKGlxa19yZXN1bHRfeSk7DQo+ ICsgICAgICAgZWxlX0MgPSBpcWtfbXVsdChpcWtfcmVzdWx0X3ksIGVsZV9ELCBOVUxMKTsNCj4g Kw0KPiArICAgICAgIHN3aXRjaCAocGF0aCkgew0KPiArICAgICAgIGNhc2UgUkZfUEFUSF9BOg0K PiArICAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgICAgICAgICAvKiB3cml0ZSBuZXcgZWxlbWVu dHMgQSwgQywgRCwgZWxlbWVudCBCIGlzIGFsd2F5cyAwICovDQo+ICsgICAgICAgICAgICAgICB2 YWx1ZTMyID0gQklUX1NFVF9UWElRX0VMTV9BQ0QoZWxlX0EsIGVsZV9DLCBlbGVfRCk7DQo+ICsg ICAgICAgICAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19PRkRNXzBfWEFfVFhfSVFfSU1C QUxBTkNFLCB2YWx1ZTMyKTsNCj4gKyAgICAgICAgICAgICAgIHZhbHVlMzIgPSBCSVRfU0VUX1RY SVFfRUxNX0MxKGVsZV9DKTsNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3 ZGV2LCBSRUdfVFhJUUtfTUFUUklYQV9MU0IyXzExTiwgTUFTS0g0QklUUywNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUzMik7DQo+ICsgICAgICAgICAgICAgICBydHdf d3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVHX09GRE1fMF9FQ0NBX1RIUkVTSE9MRCwgQklUKDI0KSwN Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlX0FfZXh0KTsNCj4gKyAgICAg ICAgICAgICAgIGJyZWFrOw0KPiArDQo+ICsgICAgICAgY2FzZSBSRl9QQVRIX0I6DQo+ICsgICAg ICAgICAgICAgICAvKiB3cml0ZSBuZXcgZWxlbWVudHMgQSwgQywgRCwgZWxlbWVudCBCIGlzIGFs d2F5cyAwICovDQo+ICsgICAgICAgICAgICAgICB2YWx1ZTMyID0gQklUX1NFVF9UWElRX0VMTV9B Q0QoZWxlX0EsIGVsZV9DLCBlbGVfRCk7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUzMihy dHdkZXYsIFJFR19PRkRNXzBfWEJfVFhfSVFfSU1CQUxBTkNFLCB2YWx1ZTMyKTsNCj4gKyAgICAg ICAgICAgICAgIHZhbHVlMzIgPSBCSVRfU0VUX1RYSVFfRUxNX0MxKGVsZV9DKTsNCj4gKyAgICAg ICAgICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBSRUdfVFhJUUtfTUFUUklYQl9MU0Iy XzExTiwgTUFTS0g0QklUUywNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFs dWUzMik7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVHX09G RE1fMF9FQ0NBX1RIUkVTSE9MRCwgQklUKDI4KSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWxlX0FfZXh0KTsNCj4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAg IH0NCj4gK30NCj4gKw0KPiArLyogdmVuZG9yOiBoYWwvcGh5ZG0vaGFscmYvcnRsODcyM2IvaGFs cmZfODcyM2JfY2UuYw0KPiArICogZnVuY3Rpb246IHNldF9pcWtfbWF0cml4Xzg3MjNiDQo+ICsg Ki8NCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX3NldF9pcWtfbWF0cml4KHN0cnVjdCBydHdfZGV2 ICpydHdkZXYsIHM4IG9mZG1faW5kZXgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHU4IHBhdGgpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0IHJ0d19kbV9pbmZvICpkbV9p bmZvID0gJnJ0d2Rldi0+ZG1faW5mbzsNCj4gKyAgICAgICB1MzIgb2ZkbV9zd2luZzsNCj4gKw0K PiArICAgICAgIG9mZG1faW5kZXggPSBjbGFtcF90KHM4LCBvZmRtX2luZGV4LCAwLCBSVFdfT0ZE TV9TV0lOR19UQUJMRV9TSVpFIC0gMSk7DQo+ICsNCj4gKyAgICAgICBvZmRtX3N3aW5nID0gcnR3 ODcyM2Jfb2ZkbV9zd2luZ190YWJsZVtvZmRtX2luZGV4XTsNCj4gKw0KPiArICAgICAgIGlmIChk bV9pbmZvLT5pcWsuZG9uZSkgew0KPiArICAgICAgICAgICAgICAgcnR3ODcyM2Jfc2V0X2lxa19t YXRyaXhfYnlfcmVzdWx0KHJ0d2Rldiwgb2ZkbV9zd2luZywgcGF0aCk7DQo+ICsgICAgICAgICAg ICAgICByZXR1cm47DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgc3dpdGNoIChwYXRoKSB7 DQo+ICsgICAgICAgY2FzZSBSRl9QQVRIX0E6DQo+ICsgICAgICAgZGVmYXVsdDoNCj4gKyAgICAg ICAgICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX09GRE1fMF9YQV9UWF9JUV9JTUJBTEFO Q0UsIG9mZG1fc3dpbmcpOw0KPiArICAgICAgICAgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdk ZXYsIFJFR19UWElRS19NQVRSSVhBX0xTQjJfMTFOLCBNQVNLSDRCSVRTLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAweDAwKTsNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0 ZTMyX21hc2socnR3ZGV2LCBSRUdfT0ZETV8wX0VDQ0FfVEhSRVNIT0xELCBCSVQoMjQpLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDAwKTsNCj4gKyAgICAgICAgICAgICAg IGJyZWFrOw0KPiArDQo+ICsgICAgICAgY2FzZSBSRl9QQVRIX0I6DQo+ICsgICAgICAgICAgICAg ICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19PRkRNXzBfWEJfVFhfSVFfSU1CQUxBTkNFLCBvZmRt X3N3aW5nKTsNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBSRUdf VFhJUUtfTUFUUklYQl9MU0IyXzExTiwgTUFTS0g0QklUUywNCj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMHgwMCk7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGUzMl9tYXNr KHJ0d2RldiwgUkVHX09GRE1fMF9FQ0NBX1RIUkVTSE9MRCwgQklUKDI4KSwNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgMHgwMCk7DQo+ICsgICAgICAgICAgICAgICBicmVhazsN Cj4gKyAgICAgICB9DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB1OCBydHc4NzIzYl9pcWtfY2hlY2tf dHhfZmFpbGVkKHN0cnVjdCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgczMyIHR4 X3gsIHR4X3k7DQo+ICsgICAgICAgdTMyIHR4X2ZhaWw7DQo+ICsNCj4gKyAgICAgICBydHdfZGJn KHJ0d2RldiwgUlRXX0RCR19SRkssICJbSVFLXSAweGVhYyA9IDB4JXhcbiIsDQo+ICsgICAgICAg ICAgICAgICBydHdfcmVhZDMyKHJ0d2RldiwgUkVHX0lRS19SRVNfUlkpKTsNCj4gKyAgICAgICBy dHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssICJbSVFLXSAweGU5NCA9IDB4JXgsIDB4ZTljID0g MHgleFxuIiwNCj4gKyAgICAgICAgICAgICAgIHJ0d19yZWFkMzIocnR3ZGV2LCBSRUdfSVFLX1JF U19UWCksDQo+ICsgICAgICAgICAgICAgICBydHdfcmVhZDMyKHJ0d2RldiwgUkVHX0lRS19SRVNf VFkpKTsNCj4gKyAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssDQo+ICsgICAgICAg ICAgICAgICAiW0lRS10gMHhlOTAoYmVmb3JlIElRSykgPSAweCV4LCAweGU5OChhZnRlciBJUUsp ID0gMHgleFxuIiwNCj4gKyAgICAgICAgICAgICAgIHJ0d19yZWFkMzIocnR3ZGV2LCAweGU5MCks DQo+ICsgICAgICAgICAgICAgICBydHdfcmVhZDMyKHJ0d2RldiwgMHhlOTgpKTsNCj4gKw0KPiAr ICAgICAgIHR4X2ZhaWwgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCBSRUdfSVFLX1JFU19SWSwg QklUX0lRS19UWF9GQUlMKTsNCj4gKyAgICAgICB0eF94ID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2Rl diwgUkVHX0lRS19SRVNfVFgsIEJJVF9NQVNLX1JFU19UWCk7DQo+ICsgICAgICAgdHhfeSA9IHJ0 d19yZWFkMzJfbWFzayhydHdkZXYsIFJFR19JUUtfUkVTX1RZLCBCSVRfTUFTS19SRVNfVFkpOw0K PiArDQo+ICsgICAgICAgaWYgKCF0eF9mYWlsICYmIHR4X3ggIT0gSVFLX1RYX1hfRVJSICYmIHR4 X3kgIT0gSVFLX1RYX1lfRVJSKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuIElRS19UWF9PSzsg LyogQklUKDApICovDQo+ICsNCj4gKyAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkss ICJbSVFLXSBBIFRYIElRSyBmYWlsZWRcbiIpOw0KPiArDQo+ICsgICAgICAgcmV0dXJuIDA7DQo+ ICt9DQo+ICsNCj4gK3N0YXRpYyB1OCBydHc4NzIzYl9pcWtfY2hlY2tfcnhfZmFpbGVkKHN0cnVj dCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgczMyIHJ4X3gsIHJ4X3k7DQo+ICsg ICAgICAgdTMyIHJ4X2ZhaWw7DQo+ICsNCj4gKyAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RC R19SRkssICJbSVFLXSAweGVhNCA9IDB4JXgsIDB4ZWFjID0gMHgleFxuIiwNCj4gKyAgICAgICAg ICAgICAgIHJ0d19yZWFkMzIocnR3ZGV2LCBSRUdfSVFLX1JFU19SWCksDQo+ICsgICAgICAgICAg ICAgICBydHdfcmVhZDMyKHJ0d2RldiwgUkVHX0lRS19SRVNfUlkpKTsNCj4gKyAgICAgICBydHdf ZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssDQo+ICsgICAgICAgICAgICAgICAiW0lRS10gMHhlYTAo YmVmb3JlIElRSykgPSAweCV4LCAweGVhOChhZnRlciBJUUspID0gMHgleFxuIiwNCj4gKyAgICAg ICAgICAgICAgIHJ0d19yZWFkMzIocnR3ZGV2LCAweGVhMCksDQo+ICsgICAgICAgICAgICAgICBy dHdfcmVhZDMyKHJ0d2RldiwgMHhlYTgpKTsNCj4gKw0KPiArICAgICAgIHJ4X2ZhaWwgPSBydHdf cmVhZDMyX21hc2socnR3ZGV2LCBSRUdfSVFLX1JFU19SWSwgQklUX0lRS19SWF9GQUlMKTsNCj4g KyAgICAgICByeF94ID0gcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgUkVHX0lRS19SRVNfUlgsIEJJ VF9NQVNLX1JFU19SWCk7DQo+ICsgICAgICAgcnhfeSA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYs IFJFR19JUUtfUkVTX1JZLCBCSVRfTUFTS19SRVNfUlkpOw0KPiArICAgICAgIHJ4X3kgPSBhYnMo aXFreHlfdG9fczMyKHJ4X3kpKTsNCj4gKw0KPiArICAgICAgIGlmICghcnhfZmFpbCAmJiByeF94 ICE9IElRS19SWF9YX0VSUiAmJiByeF95ICE9IElRS19SWF9ZX0VSUiAmJg0KPiArICAgICAgICAg ICByeF94IDwgSVFLX1JYX1hfVVBQRVIgJiYgcnhfeCA+IElRS19SWF9YX0xPV0VSICYmDQo+ICsg ICAgICAgICAgICByeF95IDwgSVFLX1JYX1lfTE1UKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJu IElRS19SWF9PSzsgLyogQklUKDEpICovDQo+ICsNCj4gKyAgICAgICBydHdfZGJnKHJ0d2Rldiwg UlRXX0RCR19SRkssICJbSVFLXSBBIFJYIElRSyBmYWlsZWRcbiIpOw0KPiArDQo+ICsgICAgICAg cmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gKy8qIHZlbmRvcjogaGFsL3BoeWRtL2hhbHJmL3J0bDg3 MjNiL2hhbHJmXzg3MjNiX2NlLmMNCj4gKyAqIGZ1bmN0aW9uOiBwaHlfcGF0aF9hX2lxa184NzIz Yg0KPiArICovDQo+ICtzdGF0aWMgdTggcnR3ODcyM2JfaXFrX3R4X3BhdGhfYShzdHJ1Y3QgcnR3 X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIGJvb2wgc2Rpb19pcWsgPSBydHc4NzIzYl9z ZGlvX25lZWRzX3J4X3BhdGhfZml4KHJ0d2Rldik7DQo+ICsgICAgICAgdTggc3RhdHVzOw0KPiAr ICAgICAgIHUzMiBwYXRoX3NlbDsNCj4gKw0KPiArICAgICAgIHJ0d19kYmcocnR3ZGV2LCBSVFdf REJHX1JGSywgIltJUUtdIHBhdGggQSBUWCBJUUshXG4iKTsNCj4gKw0KPiArICAgICAgIC8qIFNh dmUgUkYgcGF0aCAqLw0KPiArICAgICAgIHBhdGhfc2VsID0gcnR3X3JlYWQzMihydHdkZXYsIFJF R19CQl9TRUxfQlRHKTsNCj4gKw0KPiArICAgICAgIC8qIGxlYXZlIElRSyBtb2RlICovDQo+ICsg ICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19GUEdBMF9JUUtfMTFOLCBNQVNLSDNC WVRFUywgMHgwMDAwMDApOw0KPiArDQo+ICsgICAgICAgLyogZW5hYmxlIHBhdGggQSBQQSBpbiBU WCBJUUsgbW9kZSAqLw0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwg UkZfTFVUV0UsIDB4ODAwMDAsIDB4MSk7DQo+ICsgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2Rldiwg UkZfUEFUSF9BLCBSRl9SQ0tfT1MsIFJGUkVHX01BU0ssDQo+ICsgICAgICAgICAgICAgICAgICAg IHNkaW9faXFrID8gMHgxODAwMCA6IDB4MjAwMDApOw0KPiArICAgICAgIHJ0d193cml0ZV9yZihy dHdkZXYsIFJGX1BBVEhfQSwgUkZfVFhQQV9HMSwgUkZSRUdfTUFTSywgMHgwMDAzZik7DQo+ICsg ICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9UWFBBX0cyLCBSRlJFR19N QVNLLCAweGM3Zjg3KTsNCj4gKw0KPiArICAgICAgIC8qIFR4IElRSyBzZXR0aW5nICovDQo+ICsg ICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfVFhJUUtfMTFOLCAweDAxMDA3YzAwKTsNCj4g KyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19SWElRS18xMU4sIDB4MDEwMDQ4MDApOw0K PiArDQo+ICsgICAgICAgLyogcGF0aC1BIElRSyBzZXR0aW5nICovDQo+ICsgICAgICAgcnR3X3dy aXRlMzIocnR3ZGV2LCBSRUdfVFhJUUtfVE9ORV9BXzExTiwgMHgxODAwOGMxYyk7DQo+ICsgICAg ICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfUlhJUUtfVE9ORV9BXzExTiwgMHgzODAwOGMxYyk7 DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfVFhfSVFLX1RPTkVfQiwgMHgzODAw OGMxYyk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfUlhfSVFLX1RPTkVfQiwg MHgzODAwOGMxYyk7DQo+ICsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19UWElR S19QSV9BXzExTiwNCj4gKyAgICAgICAgICAgICAgICAgICBzZGlvX2lxayA/IDB4ODIxMzAzZWEg OiAweDgyMTQwM2VhKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19SWElRS19Q SV9BXzExTiwgMHgyODExMDAwMCk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdf VFhJUUtfUElfQiwgMHg4MjExMDAwMCk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBS RUdfUlhJUUtfUElfQiwgMHgyODExMDAwMCk7DQo+ICsNCj4gKyAgICAgICAvKiBMTyBjYWxpYnJh dGlvbiBzZXR0aW5nICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfSVFLX0FH Q19SU1BfMTFOLCAweDAwNDYyOTExKTsNCj4gKw0KPiArICAgICAgIC8qIGVudGVyIElRSyBtb2Rl ICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19GUEdBMF9JUUtfMTFO LCBNQVNLSDNCWVRFUywgMHg4MDgwMDApOw0KPiArDQo+ICsgICAgICAgLyogYW50IHN3aXRjaCAq Lw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0JCX1NFTF9CVEcsDQo+ICsgICAg ICAgICAgICAgICAgICAgcnR3ODcyM2JfaXFrX2FudF9zd2l0Y2hfcGF0aChydHdkZXYpKTsNCj4g Kw0KPiArICAgICAgIC8qIEdOVF9CVCA9IDAgKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdk ZXYsIFJFR19CVF9DT05UUk9MXzg3MjNCLCAweDAwMDAwODAwKTsNCj4gKw0KPiArICAgICAgIC8q IE9uZSBzaG90LCBwYXRoIEEgTE9LICYgSVFLICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3 ZGV2LCBSRUdfSVFLX0FHQ19QVFNfMTFOLCAweGY5MDAwMDAwKTsNCj4gKyAgICAgICBydHdfd3Jp dGUzMihydHdkZXYsIFJFR19JUUtfQUdDX1BUU18xMU4sIDB4ZjgwMDAwMDApOw0KPiArDQo+ICsg ICAgICAgbWRlbGF5KElRS19ERUxBWV9USU1FXzg3MjNCKTsgLyogTk9URTogcnRsOHh4eHUgdXNl cyBtZGVsYXkoMSkgKi8NCj4gKw0KPiArICAgICAgIC8qIHJlc3RvcmUgYW50IHBhdGggKi8NCj4g KyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19CQl9TRUxfQlRHLCBwYXRoX3NlbCk7DQo+ ICsNCj4gKyAgICAgICAvKiBHTlRfQlQgPSAxICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3 ZGV2LCBSRUdfQlRfQ09OVFJPTF84NzIzQiwgMHgwMDAwMTgwMCk7DQo+ICsNCj4gKyAgICAgICAv KiBsZWF2ZSBJUUsgbW9kZSAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBS RUdfRlBHQTBfSVFLXzExTiwgTUFTS0gzQllURVMsIDB4MDAwMDAwKTsNCj4gKw0KPiArICAgICAg IC8qIENoZWNrIGZhaWxlZCAqLw0KPiArICAgICAgIHN0YXR1cyA9IHJ0dzg3MjNiX2lxa19jaGVj a190eF9mYWlsZWQocnR3ZGV2KTsNCj4gKw0KPiArICAgICAgIHJldHVybiBzdGF0dXM7DQo+ICt9 DQo+ICsNCj4gKy8qIHZlbmRvcjogaGFsL3BoeWRtL2hhbHJmL3J0bDg3MjNiL2hhbHJmXzg3MjNi X2NlLmMNCj4gKyAqIGZ1bmN0aW9uOiBwaHlfcGF0aF9hX3J4X2lxa184NzIzYg0KPiArICovDQo+ ICtzdGF0aWMgdTggcnR3ODcyM2JfaXFrX3J4X3BhdGhfYShzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2 KQ0KPiArew0KPiArICAgICAgIGJvb2wgc2Rpb19pcWsgPSBydHc4NzIzYl9zZGlvX25lZWRzX3J4 X3BhdGhfZml4KHJ0d2Rldik7DQo+ICsgICAgICAgdTMyIHJlZ19lOTQsIHJlZ19lOWMsIHZhbDMy LCBwYXRoX3NlbDsNCj4gKyAgICAgICB1OCBzdGF0dXM7DQo+ICsNCj4gKyAgICAgICBydHdfZGJn KHJ0d2RldiwgUlRXX0RCR19SRkssICJbSVFLXSBwYXRoIEEgUlggSVFLIHN0ZXAxIVxuIik7DQo+ ICsNCj4gKyAgICAgICAvKiBTYXZlIFJGIHBhdGggKi8NCj4gKyAgICAgICBwYXRoX3NlbCA9IHJ0 d19yZWFkMzIocnR3ZGV2LCBSRUdfQkJfU0VMX0JURyk7DQo+ICsNCj4gKyAgICAgICAvKiBsZWF2 ZSBJUUsgbW9kZSAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBSRUdfRlBH QTBfSVFLXzExTiwgTUFTS0gzQllURVMsIDB4MDAwMDAwKTsNCj4gKw0KPiArICAgICAgIHJ0d193 cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUkZfTFVUV0UsIDB4ODAwMDAsIDB4MSk7DQo+ICsg ICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9SQ0tfT1MsIFJGUkVHX01B U0ssDQo+ICsgICAgICAgICAgICAgICAgICAgIHNkaW9faXFrID8gMHgxODAwMCA6IDB4MzAwMDAp Ow0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUkZfVFhQQV9HMSwg UkZSRUdfTUFTSywgMHgwMDAxZik7DQo+ICsgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZf UEFUSF9BLCBSRl9UWFBBX0cyLCBSRlJFR19NQVNLLCAweGY3ZmI3KTsNCj4gKw0KPiArICAgICAg IC8qIElRSyBzZXR0aW5nICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfVFhJ UUtfMTFOLCAweDAxMDA3YzAwKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19S WElRS18xMU4sIDB4MDEwMDQ4MDApOw0KPiArDQo+ICsgICAgICAgLyogcGF0aC1BIElRSyBzZXR0 aW5nICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfVFhJUUtfVE9ORV9BXzEx TiwgMHgxODAwOGMxYyk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfUlhJUUtf VE9ORV9BXzExTiwgMHgzODAwOGMxYyk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBS RUdfVFhfSVFLX1RPTkVfQiwgMHgzODAwOGMxYyk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3 ZGV2LCBSRUdfUlhfSVFLX1RPTkVfQiwgMHgzODAwOGMxYyk7DQo+ICsNCj4gKyAgICAgICBydHdf d3JpdGUzMihydHdkZXYsIFJFR19UWElRS19QSV9BXzExTiwNCj4gKyAgICAgICAgICAgICAgICAg ICBzZGlvX2lxayA/IDB4ODIxMzBmZjAgOiAweDgyMTYwZmYwKTsNCj4gKyAgICAgICBydHdfd3Jp dGUzMihydHdkZXYsIFJFR19SWElRS19QSV9BXzExTiwgMHgyODExMDAwMCk7DQo+ICsgICAgICAg cnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfVFhJUUtfUElfQiwgMHg4MjExMDAwMCk7DQo+ICsgICAg ICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfUlhJUUtfUElfQiwgMHgyODExMDAwMCk7DQo+ICsN Cj4gKyAgICAgICAvKiBMTyBjYWxpYnJhdGlvbiBzZXR0aW5nICovDQo+ICsgICAgICAgcnR3X3dy aXRlMzIocnR3ZGV2LCBSRUdfSVFLX0FHQ19SU1BfMTFOLCAweDAwNDZhOTExKTsNCj4gKw0KPiAr ICAgICAgIC8qIGVudGVyIElRSyBtb2RlICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFzayhy dHdkZXYsIFJFR19GUEdBMF9JUUtfMTFOLCBNQVNLSDNCWVRFUywgMHg4MDgwMDApOw0KPiArDQo+ ICsgICAgICAgLyogYW50IHN3aXRjaCAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2Rldiwg UkVHX0JCX1NFTF9CVEcsDQo+ICsgICAgICAgICAgICAgICAgICAgcnR3ODcyM2JfaXFrX2FudF9z d2l0Y2hfcGF0aChydHdkZXYpKTsNCj4gKw0KPiArICAgICAgIC8qIEdOVF9CVCA9IDAgKGRpc2Fi bGUgQlQpICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfQlRfQ09OVFJPTF84 NzIzQiwgMHgwMDAwMDgwMCk7DQo+ICsNCj4gKyAgICAgICAvKiBPbmUgc2hvdCwgcGF0aCBBIExP SyAmIElRSyAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0lRS19BR0NfUFRT XzExTiwgMHhmOTAwMDAwMCk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfSVFL X0FHQ19QVFNfMTFOLCAweGY4MDAwMDAwKTsNCj4gKw0KPiArICAgICAgIG1kZWxheShJUUtfREVM QVlfVElNRV84NzIzQik7DQo+ICsNCj4gKyAgICAgICAvKiByZXN0b3JlIGFudCBwYXRoICovDQo+ ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfQkJfU0VMX0JURywgcGF0aF9zZWwpOw0K PiArDQo+ICsgICAgICAgLyogR05UX0JUID0gMSAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0 d2RldiwgUkVHX0JUX0NPTlRST0xfODcyM0IsIDB4MDAwMDE4MDApOw0KPiArDQo+ICsgICAgICAg LyogbGVhdmUgSVFLIG1vZGUgKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2Rldiwg UkVHX0ZQR0EwX0lRS18xMU4sIE1BU0tIM0JZVEVTLCAweDAwMDAwMCk7DQo+ICsNCj4gKyAgICAg ICAvKiBDaGVjayBmYWlsZWQgKi8NCj4gKyAgICAgICBzdGF0dXMgPSBydHc4NzIzYl9pcWtfY2hl Y2tfdHhfZmFpbGVkKHJ0d2Rldik7DQo+ICsNCj4gKyAgICAgICAvKiBpZiBUeCBub3QgT0ssIGln bm9yZSBSeCAqLw0KPiArICAgICAgIGlmICghc3RhdHVzKQ0KPiArICAgICAgICAgICAgICAgcmV0 dXJuIHN0YXR1czsNCj4gKw0KPiArICAgICAgIHJlZ19lOTQgPSBydHdfcmVhZDMyKHJ0d2Rldiwg UkVHX0lRS19SRVNfVFgpOw0KPiArICAgICAgIHJlZ19lOWMgPSBydHdfcmVhZDMyKHJ0d2Rldiwg UkVHX0lRS19SRVNfVFkpOw0KPiArICAgICAgIHZhbDMyID0gMHg4MDAwN2MwMCB8IChyZWdfZTk0 ICYgMHgzZmYwMDAwKSB8DQo+ICsgICAgICAgKChyZWdfZTljICYgMHgzZmYwMDAwKSA+PiAxNik7 DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfVFhJUUtfMTFOLCB2YWwzMik7DQo+ ICsNCj4gKyAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssICJbSVFLXSBwYXRoIEEg UlggSVFLIHN0ZXAyISIpOw0KPiArDQo+ICsgICAgICAgLyogbW9kaWZ5IFJYIElRSyBtb2RlICov DQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19GUEdBMF9JUUtfMTFOLCBN QVNLSDNCWVRFUywgMHgwMDAwMDApOw0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJG X1BBVEhfQSwgUkZfTFVUV0UsIDB4ODAwMDAsIDB4MSk7DQo+ICsgICAgICAgcnR3X3dyaXRlX3Jm KHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9SQ0tfT1MsIFJGUkVHX01BU0ssDQo+ICsgICAgICAgICAg ICAgICAgICAgIHNkaW9faXFrID8gMHgxODAwMCA6IDB4MzAwMDApOw0KPiArICAgICAgIHJ0d193 cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUkZfVFhQQV9HMSwgUkZSRUdfTUFTSywgMHgwMDAx Zik7DQo+ICsgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9UWFBBX0cy LCBSRlJFR19NQVNLLCAweGY3ZDc3KTsNCj4gKw0KPiArICAgICAgIC8qIFBBLCBQQUQgc2V0dGlu ZyAqLw0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgMHhkZiwgUkZS RUdfTUFTSywgMHhmODApOw0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhf QSwgMHg1NSwgUkZSRUdfTUFTSywgMHg0MDIxZik7DQo+ICsNCj4gKyAgICAgICAvKiBJUUsgc2V0 dGluZyAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX1JYSVFLXzExTiwgMHgw MTAwNDgwMCk7DQo+ICsNCj4gKyAgICAgICAvKiBwYXRoLUEgSVFLIHNldHRpbmcgKi8NCj4gKyAg ICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19UWElRS19UT05FX0FfMTFOLCAweDM4MDA4YzFj KTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19SWElRS19UT05FX0FfMTFOLCAw eDE4MDA4YzFjKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19UWF9JUUtfVE9O RV9CLCAweDM4MDA4YzFjKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19SWF9J UUtfVE9ORV9CLCAweDM4MDA4YzFjKTsNCj4gKw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2Rl diwgUkVHX1RYSVFLX1BJX0FfMTFOLCAweDgyMTEwMDAwKTsNCj4gKyAgICAgICBydHdfd3JpdGUz MihydHdkZXYsIFJFR19SWElRS19QSV9BXzExTiwNCj4gKyAgICAgICAgICAgICAgICAgICBzZGlv X2lxayA/IDB4MjgxMzAwMWYgOiAweDI4MTYwMDFmKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihy dHdkZXYsIFJFR19UWElRS19QSV9CLCAweDgyMTEwMDAwKTsNCj4gKyAgICAgICBydHdfd3JpdGUz MihydHdkZXYsIFJFR19SWElRS19QSV9CLCAweDI4MTEwMDAwKTsNCj4gKw0KPiArICAgICAgIC8q IExPIGNhbGlicmF0aW9uIHNldHRpbmcgKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYs IFJFR19JUUtfQUdDX1JTUF8xMU4sIDB4MDA0NmE4ZDEpOw0KPiArDQo+ICsgICAgICAgLyogZW50 ZXIgSVFLIG1vZGUgKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVHX0ZQ R0EwX0lRS18xMU4sIE1BU0tIM0JZVEVTLCAweDgwODAwMCk7DQo+ICsNCj4gKyAgICAgICAvKiBh bnQgc3dpdGNoICovDQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfQkJfU0VMX0JU RywNCj4gKyAgICAgICAgICAgICAgICAgICBydHc4NzIzYl9pcWtfYW50X3N3aXRjaF9wYXRoKHJ0 d2RldikpOw0KPiArDQo+ICsgICAgICAgLyogR05UX0JUID0gMCAqLw0KPiArICAgICAgIHJ0d193 cml0ZTMyKHJ0d2RldiwgUkVHX0JUX0NPTlRST0xfODcyM0IsIDB4MDAwMDA4MDApOw0KPiArDQo+ ICsgICAgICAgLyogT25lIHNob3QsIHBhdGggQSBMT0sgJiBJUUsgKi8NCj4gKyAgICAgICBydHdf d3JpdGUzMihydHdkZXYsIFJFR19JUUtfQUdDX1BUU18xMU4sIDB4ZjkwMDAwMDApOw0KPiArICAg ICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0lRS19BR0NfUFRTXzExTiwgMHhmODAwMDAwMCk7 DQo+ICsNCj4gKyAgICAgICBtZGVsYXkoSVFLX0RFTEFZX1RJTUVfODcyM0IpOw0KPiArDQo+ICsg ICAgICAgLyogcmVzdG9yZSBhbnQgcGF0aCAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2Rl diwgUkVHX0JCX1NFTF9CVEcsIHBhdGhfc2VsKTsNCj4gKw0KPiArICAgICAgIC8qIEdOVF9CVCA9 IDEgKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19CVF9DT05UUk9MXzg3MjNC LCAweDAwMDAxODAwKTsNCj4gKw0KPiArICAgICAgIC8qIGxlYXZlIElRSyBtb2RlICovDQo+ICsg ICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19GUEdBMF9JUUtfMTFOLCBNQVNLSDNC WVRFUywgMHgwMDAwMDApOw0KPiArDQo+ICsgICAgICAgLyogQ2hlY2sgZmFpbGVkICovDQo+ICsN Cj4gKyAgICAgICAvKiBOT1RFOiBpbiB2ZW5kb3IgZHJpdmVyIHRoaXMgaXMgY2FsbGVkIGFmdGVy IHJlYWRpbmcgcmVnX2VhYw0KPiArICAgICAgICAqIGFuZCByZWdfZWE0LCB3ZSByZWFkIHRoZW0g aW4gcnR3ODcyM2JfaXFrX2NoZWNrX3J4X2ZhaWxlZA0KPiArICAgICAgICAqLw0KPiArICAgICAg IHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgMHhkZiwgUkZSRUdfTUFTSywgMHg3ODAp Ow0KPiArDQo+ICsgICAgICAgc3RhdHVzIHw9IHJ0dzg3MjNiX2lxa19jaGVja19yeF9mYWlsZWQo cnR3ZGV2KTsNCj4gKw0KPiArICAgICAgIHJldHVybiBzdGF0dXM7DQo+ICt9DQo+ICsNCj4gKy8q IHZlbmRvcjogaGFsL3BoeWRtL2hhbHJmL3J0bDg3MjNiL2hhbHJmXzg3MjNiX2NlLmMNCj4gKyAq IGZ1bmN0aW9uOiBfcGh5X3BhdGhfYV9maWxsX2lxa19tYXRyaXg4NzIzYg0KPiArICovDQo+ICtz dGF0aWMNCj4gK3ZvaWQgcnR3ODcyM2JfaXFrX2ZpbGxfYV9tYXRyaXgoc3RydWN0IHJ0d19kZXYg KnJ0d2RldiwgY29uc3QgczMyIHJlc3VsdFtdKQ0KPiArew0KPiArICAgICAgIHMzMiB0eDFfYSwg dHgxX2FfZXh0Ow0KPiArICAgICAgIHMzMiB0eDFfYywgdHgxX2NfZXh0Ow0KPiArICAgICAgIHMz MiBvbGR2YWxfMTsNCj4gKyAgICAgICBzMzIgeCwgeTsNCj4gKw0KPiArICAgICAgIGlmIChyZXN1 bHRbSVFLX1MxX1RYX1hdID09IDApDQo+ICsgICAgICAgICAgICAgICByZXR1cm47DQo+ICsNCj4g KyAgICAgICBvbGR2YWxfMSA9IHJ0d19yZWFkMzJfbWFzayhydHdkZXYsIFJFR19PRkRNXzBfWEFf VFhfSVFfSU1CQUxBTkNFLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJ VF9NQVNLX1RYSVFfRUxNX0QpOw0KPiArDQo+ICsgICAgICAgeCA9IGlxa3h5X3RvX3MzMihyZXN1 bHRbSVFLX1MxX1RYX1hdKTsNCj4gKyAgICAgICB0eDFfYSA9IGlxa19tdWx0KHgsIG9sZHZhbF8x LCAmdHgxX2FfZXh0KTsNCj4gKyAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVHX09G RE1fMF9YQV9UWF9JUV9JTUJBTEFOQ0UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBCSVRf TUFTS19UWElRX0VMTV9BLCB0eDFfYSk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdk ZXYsIFJFR19PRkRNXzBfRUNDQV9USFJFU0hPTEQsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBCSVRfTUFTS19PRkRNMF9FWFRfQSwgdHgxX2FfZXh0KTsNCj4gKw0KPiArICAgICAgIHkgPSBp cWt4eV90b19zMzIocmVzdWx0W0lRS19TMV9UWF9ZXSk7DQo+ICsgICAgICAgdHgxX2MgPSBpcWtf bXVsdCh5LCBvbGR2YWxfMSwgJnR4MV9jX2V4dCk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFz ayhydHdkZXYsIFJFR19UWElRS19NQVRSSVhBX0xTQjJfMTFOLCBNQVNLSDRCSVRTLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgQklUX1NFVF9UWElRX0VMTV9DMSh0eDFfYykpOw0KPiArICAg ICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBSRUdfT0ZETV8wX1hBX1RYX0lRX0lNQkFMQU5D RSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgIEJJVF9NQVNLX1RYSVFfRUxNX0MsIEJJVF9T RVRfVFhJUV9FTE1fQzIodHgxX2MpKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2Rl diwgUkVHX09GRE1fMF9FQ0NBX1RIUkVTSE9MRCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg IEJJVF9NQVNLX09GRE0wX0VYVF9DLCB0eDFfY19leHQpOw0KPiArDQo+ICsgICAgICAgcnR3X2Ri ZyhydHdkZXYsIFJUV19EQkdfUkZLLA0KPiArICAgICAgICAgICAgICAgIltJUUtdIFggPSAweCV4 LCBUWDFfQSA9IDB4JXgsIG9sZHZhbF8xIDB4JXhcbiIsDQo+ICsgICAgICAgICAgICAgICB4LCB0 eDFfYSwgb2xkdmFsXzEpOw0KPiArICAgICAgIHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSywN Cj4gKyAgICAgICAgICAgICAgICJbSVFLXSBZID0gMHgleCwgVFgxX0MgPSAweCV4XG4iLCB5LCB0 eDFfYyk7DQo+ICsNCj4gKyAgICAgICBpZiAocmVzdWx0W0lRS19TMV9SWF9YXSA9PSAwKQ0KPiAr ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFzayhy dHdkZXYsIFJFR19BX1JYSVFJLCBCSVRfTUFTS19SWElRX1MxX1gsDQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICByZXN1bHRbSVFLX1MxX1JYX1hdKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMl9t YXNrKHJ0d2RldiwgUkVHX0FfUlhJUUksIEJJVF9NQVNLX1JYSVFfUzFfWTEsDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICBCSVRfU0VUX1JYSVFfUzFfWTEocmVzdWx0W0lRS19TMV9SWF9ZXSkp Ow0KPiArICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBSRUdfUlhJUUtfTUFUUklYX0xT Ql8xMU4sIEJJVF9NQVNLX1JYSVFfUzFfWTIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBC SVRfU0VUX1JYSVFfUzFfWTIocmVzdWx0W0lRS19TMV9SWF9ZXSkpOw0KPiArfQ0KPiArDQo+ICsv KiB2ZW5kb3I6IGhhbC9waHlkbS9oYWxyZi9ydGw4NzIzYi9oYWxyZl84NzIzYl9jZS5jDQo+ICsg KiBmdW5jdGlvbjogX3BoeV9wYXRoX2JfZmlsbF9pcWtfbWF0cml4ODcyM2INCj4gKyAqLw0KPiAr c3RhdGljDQo+ICt2b2lkIHJ0dzg3MjNiX2lxa19maWxsX2JfbWF0cml4KHN0cnVjdCBydHdfZGV2 ICpydHdkZXYsIGNvbnN0IHMzMiByZXN1bHRbXSkNCj4gK3sNCj4gKyAgICAgICBzMzIgdHgwX2Es IHR4MF9hX2V4dDsNCj4gKyAgICAgICBzMzIgdHgwX2MsIHR4MF9jX2V4dDsNCj4gKyAgICAgICBz MzIgb2xkdmFsXzA7DQo+ICsgICAgICAgczMyIHgsIHk7DQo+ICsNCj4gKyAgICAgICBpZiAocmVz dWx0W0lRS19TMF9UWF9YXSA9PSAwKQ0KPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiArDQo+ ICsgICAgICAgb2xkdmFsXzAgPSBydHdfcmVhZDMyX21hc2socnR3ZGV2LCBSRUdfT0ZETV8wX1hC X1RYX0lRX0lNQkFMQU5DRSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBC SVRfTUFTS19UWElRX0VMTV9EKTsNCj4gKw0KPiArICAgICAgIHggPSBpcWt4eV90b19zMzIocmVz dWx0W0lRS19TMF9UWF9YXSk7DQo+ICsgICAgICAgdHgwX2EgPSBpcWtfbXVsdCh4LCBvbGR2YWxf MCwgJnR4MF9hX2V4dCk7DQo+ICsNCj4gKyAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2Rldiwg UkVHX09GRE1fMF9YQl9UWF9JUV9JTUJBTEFOQ0UsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICBCSVRfTUFTS19UWElRX0VMTV9BLCB0eDBfYSk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFz ayhydHdkZXYsIFJFR19PRkRNXzBfRUNDQV9USFJFU0hPTEQsIEJJVCgyNyksDQo+ICsgICAgICAg ICAgICAgICAgICAgICAgICB0eDBfYV9leHQpOw0KPiArDQo+ICsgICAgICAgeSA9IGlxa3h5X3Rv X3MzMihyZXN1bHRbSVFLX1MwX1RYX1ldKTsNCj4gKyAgICAgICB0eDBfYyA9IGlxa19tdWx0KHks IG9sZHZhbF8wLCAmdHgwX2NfZXh0KTsNCj4gKw0KPiArICAgICAgIHJ0d193cml0ZTMyX21hc2so cnR3ZGV2LCBSRUdfVFhJUUtfTUFUUklYQl9MU0IyXzExTiwgTUFTS0g0QklUUywNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgIEJJVF9TRVRfVFhJUV9FTE1fQzEodHgwX2MpKTsNCj4gKyAgICAg ICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVHX09GRE1fMF9YQl9UWF9JUV9JTUJBTEFOQ0Us DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICBCSVRfTUFTS19UWElRX0VMTV9DLCBCSVRfU0VU X1RYSVFfRUxNX0MyKHR4MF9jKSk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzJfbWFzayhydHdkZXYs IFJFR19PRkRNXzBfRUNDQV9USFJFU0hPTEQsIEJJVCgyNSksDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICB0eDBfY19leHQpOw0KPiArDQo+ICsgICAgICAgaWYgKHJlc3VsdFtJUUtfUzBfUlhf WF0gPT0gMCkNCj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gKw0KPiArICAgICAgIHJ0d193 cml0ZTMyX21hc2socnR3ZGV2LCBSRUdfQl9SWElRSSwgQklUX01BU0tfUlhJUV9YX1MwLA0KPiAr ICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W0lRS19TMF9SWF9YXSk7DQo+ICsgICAgICAg cnR3X3dyaXRlMzJfbWFzayhydHdkZXYsIFJFR19CX1JYSVFJLCBCSVRfTUFTS19SWElRX1MxX1kx LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgQklUX1NFVF9SWElRX1MxX1kxKHJlc3VsdFtJ UUtfUzBfUlhfWV0pKTsNCj4gK30NCj4gKw0KPiArLyogdmVuZG9yIGhhbC9waHlkbS9oYWxyZi9y dGw4NzIzYi9oYWxyZl84NzIzYl9jZS5jDQo+ICsgKiBmdW5jdGlvbjogX3BoeV9tYWNfc2V0dGlu Z19jYWxpYnJhdGlvbjg3MjNiDQo+ICsgKi8NCj4gK3N0YXRpYw0KPiArdm9pZCBydHc4NzIzYl9p cWtfY29uZmlnX21hYyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2LA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBydHc4NzIzeF9pcWtfYmFja3VwX3JlZ3MgKmJhY2t1 cCkNCj4gK3sNCj4gKyAgICAgICBpbnQgaTsNCj4gKw0KPiArICAgICAgIHJ0d193cml0ZTgocnR3 ZGV2LCBydHc4NzIzeF9jb21tb24uaXFrX21hYzhfcmVnc1swXSwgMHgzZik7DQo+ICsNCj4gKyAg ICAgICBmb3IgKGkgPSAxOyBpIDwgUlRXODcyM1hfSVFLX01BQzhfUkVHX05VTTsgaSsrKQ0KPiAr ICAgICAgICAgICAgICAgcnR3X3dyaXRlOChydHdkZXYsIHJ0dzg3MjN4X2NvbW1vbi5pcWtfbWFj OF9yZWdzW2ldLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrdXAtPm1hYzhbaV0g JiAofkJJVCgzKSkpOw0KPiArDQo+ICsgICAgICAgLyogTWF0Y2ggdGhlIHZlbmRvciBieXRlLXdp ZGUgd3JpdGUgZm9yIHRoaXMgTUFDIGJhY2t1cCByZWdpc3Rlci4gKi8NCj4gKyAgICAgICBydHdf d3JpdGU4KHJ0d2RldiwgcnR3ODcyM3hfY29tbW9uLmlxa19tYWMzMl9yZWdzWzBdLA0KPiArICAg ICAgICAgICAgICAgICAgYmFja3VwLT5tYWMzMlswXSAmICh+QklUKDUpKSk7DQo+ICt9DQo+ICsN Cj4gKy8qIHZlbmRvciBmaWxlIGhhbC9waHlkbS9oYWxyZi9ydGw4NzIzYi9oYWxyZl84NzIzYl9j ZS5jDQo+ICsgKiBmdW5jdGlvbjogX3BoeV9pcV9jYWxpYnJhdGVfODcyM2IgLyBwaHlfaXFfY2Fs aWJyYXRlXzg3MjNiDQo+ICsgKi8NCj4gK3N0YXRpYw0KPiArdm9pZCBydHc4NzIzYl9pcWtfb25l X3JvdW5kKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHMzMiByZXN1bHRbXVtJUUtfTlJdLCB1OCB0 LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0dzg3MjN4X2lx a19iYWNrdXBfcmVncyAqYmFja3VwKQ0KPiArew0KPiArICAgICAgIHUzMiBpOw0KPiArICAgICAg IHU4IGFfb2s7DQo+ICsgICAgICAgLyogdTggYl9vazsgKi8NCj4gKw0KPiArICAgICAgIHJ0d19k YmcocnR3ZGV2LCBSVFdfREJHX1JGSywNCj4gKyAgICAgICAgICAgICAgICJbSVFLXSBJUSBDYWxp YnJhdGlvbiBmb3IgMVQxUl9TMC9TMSBmb3IgJWQgdGltZXNcbiIsIHQpOw0KPiArDQo+ICsgICAg ICAgcnR3ODcyM3hfaXFrX3BhdGhfYWRkYV9vbihydHdkZXYsIEFEREFfT05fVkFMXzg3MjNCKTsN Cj4gKyAgICAgICBydHc4NzIzYl9pcWtfY29uZmlnX21hYyhydHdkZXYsIGJhY2t1cCk7DQo+ICsN Cj4gKyAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVHX0NDS19BTlRfU0VMXzExTiwg MHgwZjAwMDAwMCwgMHhmKTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19CQl9S WF9QQVRIXzExTiwgMHgwM2EwNTYwMCk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBS RUdfVFJNVVhfMTFOLCAweDAwMDgwMGU0KTsNCj4gKyAgICAgICBydHdfd3JpdGUzMihydHdkZXYs IFJFR19CQl9QV1JfU0FWMV8xMU4sIDB4MjIyMDQwMDApOw0KPiArDQo+ICsgICAgICAgLyogUlgg SVEgY2FsaWJyYXRpb24gc2V0dGluZyBmb3IgODcyM0IgRCBjdXQgbGFyZ2UgY3VycmVudCBpc3N1 ZQ0KPiArICAgICAgICAqIHdoZW4gbGVhdmluZyBJUFMNCj4gKyAgICAgICAgKi8NCj4gKyAgICAg ICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVHX0ZQR0EwX0lRS18xMU4sIE1BU0tIM0JZVEVT LCAweDAwMDAwMCk7DQo+ICsgICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBS Rl9MVVRXRSwgMHg4MDAwMCwgMHgxKTsNCj4gKyAgICAgICBydHdfd3JpdGVfcmYocnR3ZGV2LCBS Rl9QQVRIX0EsIFJGX1JDS19PUywgUkZSRUdfTUFTSywgMHgzMDAwMCk7DQo+ICsgICAgICAgcnR3 X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9UWFBBX0cxLCBSRlJFR19NQVNLLCAweDAw MDFmKTsNCj4gKyAgICAgICBydHdfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJGX1RYUEFf RzIsIFJGUkVHX01BU0ssIDB4ZjdmYjcpOw0KPiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYs IFJGX1BBVEhfQSwgMHhlZCwgMHgyMCwgMHgxKTsNCj4gKyAgICAgICBydHdfd3JpdGVfcmYocnR3 ZGV2LCBSRl9QQVRIX0EsIDB4NDMsIFJGUkVHX01BU0ssIDB4NjBmYmQpOw0KPiArDQo+ICsgICAg ICAgZm9yIChpID0gMDsgaSA8IFBBVEhfSVFLX1JFVFJZOyBpKyspIHsNCj4gKyAgICAgICAgICAg ICAgIGFfb2sgPSBydHc4NzIzYl9pcWtfdHhfcGF0aF9hKHJ0d2Rldik7DQo+ICsgICAgICAgICAg ICAgICBpZiAoYV9vayA9PSBJUUtfVFhfT0spIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg cnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICJbSVFLXSBwYXRoIEEgVFggSVFLIHN1Y2Nlc3MhXG4iKTsNCj4gKw0KPiArICAgICAg ICAgICAgICAgICAgICAgICBydHdfd3JpdGUzMl9tYXNrKHJ0d2RldiwgUkVHX0ZQR0EwX0lRS18x MU4sDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUFTS0gzQllU RVMsIDB4MDAwMDAwKTsNCj4gKw0KPiArICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbdF1b SVFLX1MxX1RYX1hdID0NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydHdfcmVh ZDMyX21hc2socnR3ZGV2LCBSRUdfSVFLX1JFU19UWCwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUX01BU0tfUkVTX1RYKTsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmVzdWx0W3RdW0lRS19TMV9UWF9ZXSA9DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcnR3X3JlYWQzMl9tYXNrKHJ0d2RldiwgUkVHX0lRS19SRVNfVFks DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJVF9N QVNLX1JFU19UWSk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAg ICAgICAgICAgfQ0KPiArDQo+ICsgICAgICAgICAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RC R19SRkssICJbSVFLXSBwYXRoIEEgVFggSVFLIGZhaWwhXG4iKTsNCj4gKyAgICAgICAgICAgICAg IHJlc3VsdFt0XVtJUUtfUzFfVFhfWF0gPSAweDEwMDsNCj4gKyAgICAgICAgICAgICAgIHJlc3Vs dFt0XVtJUUtfUzFfVFhfWV0gPSAweDA7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgZm9y IChpID0gMDsgaSA8IFBBVEhfSVFLX1JFVFJZOyBpKyspIHsNCj4gKyAgICAgICAgICAgICAgIGFf b2sgPSBydHc4NzIzYl9pcWtfcnhfcGF0aF9hKHJ0d2Rldik7DQo+ICsgICAgICAgICAgICAgICBp ZiAoYV9vayA9PSAoSVFLX1RYX09LIHwgSVFLX1JYX09LKSkgew0KPiArICAgICAgICAgICAgICAg ICAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIltJUUtdIHBhdGggQSBSWCBJUUsgc3VjY2VzcyFcbiIpOw0KPiArICAg ICAgICAgICAgICAgICAgICAgICByZXN1bHRbdF1bSVFLX1MxX1JYX1hdID0NCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBydHdfcmVhZDMyX21hc2socnR3ZGV2LCBSRUdfSVFLX1JF U19SWCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QklUX01BU0tfUkVTX1JYKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0W3RdW0lR S19TMV9SWF9ZXSA9DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnR3X3JlYWQz Ml9tYXNrKHJ0d2RldiwgUkVHX0lRS19SRVNfUlksDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEJJVF9NQVNLX1JFU19SWSk7DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgICAgICAgICAgfQ0KPiArDQo+ICsgICAgICAg ICAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssICJbSVFLXSBwYXRoIEEgUlggSVFL IGZhaWwhXG4iKTsNCj4gKyAgICAgICAgICAgICAgIHJlc3VsdFt0XVtJUUtfUzFfUlhfWF0gPSAw eDEwMDsNCj4gKyAgICAgICAgICAgICAgIHJlc3VsdFt0XVtJUUtfUzFfUlhfWV0gPSAweDA7DQo+ ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgaWYgKGFfb2sgPT0gMHgwKQ0KPiArICAgICAgICAg ICAgICAgcnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCAiW0lRS10gcGF0aCBBIElRSyBmYWls IVxuIik7DQo+ICsNCj4gKyAgICAgICAvKiBOT1RFOiB0aGUgdmVuZG9yIGRyaXZlciBkb2VzIHBh dGggQiBvbmx5IGZvciAyVCwgYnV0IHJ0bDg3MjNiIGlzIDFUMVIgKi8NCj4gKw0KPiArICAgICAg IHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBSRUdfRlBHQTBfSVFLXzExTiwgTUFTS0gzQllURVMs IDB4MDAwMDAwKTsNCj4gK30NCj4gKw0KPiArLyogdmVuZG9yIGhhbC9waHlkbS9oYWxyZi9ydGw4 NzIzYi9oYWxyZl84NzIzYl9jZS5jDQo+ICsgKiBmdW5jdGlvbjogcGh5X2lxX2NhbGlicmF0ZV84 NzIzYiAvIF9waHlfaXFfY2FsaWJyYXRlXzg3MjNiDQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkIHJ0 dzg3MjNiX3BoeV9jYWxpYnJhdGlvbihzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiAr ICAgICAgIHN0cnVjdCBydHdfZG1faW5mbyAqZG1faW5mbyA9ICZydHdkZXYtPmRtX2luZm87DQo+ ICsgICAgICAgc3RydWN0IHJ0dzg3MjN4X2lxa19iYWNrdXBfcmVncyBiYWNrdXA7DQo+ICsgICAg ICAgczMyIHJlc3VsdFtJUUtfUk9VTkRfU0laRV1bSVFLX05SXTsNCj4gKyAgICAgICB1OCBmaW5h bF9jYW5kaWRhdGUgPSBJUUtfUk9VTkRfSU5WQUxJRDsNCj4gKyAgICAgICB1MzIgYnRfY29udHJv bDsNCj4gKyAgICAgICBib29sIGdvb2Q7DQo+ICsgICAgICAgdTggaSwgajsNCj4gKw0KPiArICAg ICAgIHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX1JGSywgIltJUUtdIFN0YXJ0IVxuIik7DQo+ICsg ICAgICAgbWVtc2V0KHJlc3VsdCwgMCwgc2l6ZW9mKHJlc3VsdCkpOw0KPiArDQo+ICsgICAgICAg cnR3ODcyM2JfbGNrKHJ0d2Rldik7DQo+ICsgICAgICAgcnR3ODcyM2JfaW5mb3JtX3Jma19zdGF0 dXMocnR3ZGV2LCB0cnVlKTsNCj4gKw0KPiArICAgICAgIC8qIGJhY2t1cF9wYXRoX2N0cmwgKyBi YWNrdXBfcmVncyBtYXRjaCBydHc4NzIzZCdzIElRSy4gIDg3MjNkIGFsc28NCj4gKyAgICAgICAg KiBiYWNrcyB1cCB0aGUgTFRFIHBhdGggR05UIGhlcmUsIGJ1dCB0aGUgdmVuZG9yIHJ0bDg3MjNi cyBkb2VzIG5vdCwNCj4gKyAgICAgICAgKiBzbyB0aGF0IG9uZSBzdGF5cyBkaXNhYmxlZCBmb3Ig U0RJTy4NCj4gKyAgICAgICAgKi8NCj4gKyAgICAgICBydHc4NzIzeF9pcWtfYmFja3VwX3BhdGhf Y3RybChydHdkZXYsICZiYWNrdXApOw0KPiArICAgICAgIHJ0dzg3MjN4X2lxa19iYWNrdXBfcmVn cyhydHdkZXYsICZiYWNrdXApOw0KPiArDQo+ICsgICAgICAgLyogc2F2ZSBkZWZhdWx0IEdOVF9C VCAqLw0KPiArICAgICAgIGJ0X2NvbnRyb2wgPSBydHdfcmVhZDMyKHJ0d2RldiwgUkVHX0JUX0NP TlRST0xfODcyM0IpOw0KPiArDQo+ICsgICAgICAgZm9yIChpID0gSVFLX1JPVU5EXzA7IGkgPD0g SVFLX1JPVU5EXzI7IGkrKykgew0KPiArICAgICAgICAgICAgICAgaWYgKCFydHc4NzIzYl9zZGlv X25lZWRzX3J4X3BhdGhfZml4KHJ0d2RldikpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0 dzg3MjN4X2lxa19jb25maWdfcGF0aF9jdHJsKHJ0d2Rldik7DQo+ICsNCj4gKyAgICAgICAgICAg ICAgIHJ0dzg3MjNiX2lxa19vbmVfcm91bmQocnR3ZGV2LCByZXN1bHQsIGksICZiYWNrdXApOw0K PiArDQo+ICsgICAgICAgICAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssDQo+ICsg ICAgICAgICAgICAgICAgICAgICAgICJbSVFLXSBiYWNrIHRvIEJCIG1vZGUsIGxvYWQgb3JpZ2lu YWwgdmFsdWUhXG4iKTsNCj4gKw0KPiArICAgICAgICAgICAgICAgaWYgKGkgPiBJUUtfUk9VTkRf MCkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICBydHc4NzIzeF9pcWtfcmVzdG9yZV9yZWdz KHJ0d2RldiwgJmJhY2t1cCk7DQo+ICsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgLyogUmVz dG9yZSBSWCBpbml0aWFsIGdhaW4gKi8NCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3X3dy aXRlMzJfbWFzayhydHdkZXYsIFJFR19PRkRNMF9YQUFHQzEsIE1BU0tCWVRFMCwgMHg1MCk7DQo+ ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0d193cml0ZTMyX21hc2socnR3ZGV2LCBSRUdfT0ZE TTBfWEFBR0MxLCBNQVNLQllURTAsIGJhY2t1cC5pZ2lhKTsNCj4gKw0KPiArICAgICAgICAgICAg ICAgICAgICAgICAvKiBwYXRoIEI7IG9ubHkgZm9yIDJUICovDQo+ICsNCj4gKyAgICAgICAgICAg ICAgICAgICAgICAgLyogbG9hZCAweGUzMCBJUUMgZGVmYXVsdCB2YWx1ZSAqLw0KPiArICAgICAg ICAgICAgICAgICAgICAgICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19UWElRS19UT05FX0FfMTFO LCAweDAxMDA4YzAwKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3X3dyaXRlMzIocnR3 ZGV2LCBSRUdfUlhJUUtfVE9ORV9BXzExTiwgMHgwMTAwOGMwMCk7DQo+ICsgICAgICAgICAgICAg ICB9DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGlmICghcnR3ODcyM2Jfc2Rpb19uZWVkc19yeF9w YXRoX2ZpeChydHdkZXYpKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICBydHc4NzIzeF9pcWtf cmVzdG9yZV9wYXRoX2N0cmwocnR3ZGV2LCAmYmFja3VwKTsNCj4gKw0KPiArICAgICAgICAgICAg ICAgZm9yIChqID0gSVFLX1JPVU5EXzA7IGogPCBpOyBqKyspIHsNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgZ29vZCA9IHJ0dzg3MjN4X2lxa19zaW1pbGFyaXR5X2NtcChydHdkZXYsIHJlc3Vs dCwgaiwgaSk7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChnb29kKSB7DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmluYWxfY2FuZGlkYXRlID0gajsNCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiW0lRS10gY21wICVkOiVk IGZpbmFsX2NhbmRpZGF0ZSBpcyAleFxuIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGosIGksIGZpbmFsX2NhbmRpZGF0ZSk7DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZ290byBpcWtfZG9uZTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg fQ0KPiArICAgICAgICAgICAgICAgfQ0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIGlmIChm aW5hbF9jYW5kaWRhdGUgPT0gSVFLX1JPVU5EX0lOVkFMSUQpIHsNCj4gKyAgICAgICAgICAgICAg IHMzMiByZWdfdG1wID0gMDsNCj4gKw0KPiArICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8 IElRS19OUjsgaSsrKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICByZWdfdG1wICs9IHJlc3Vs dFtJUUtfUk9VTkRfSFlCUklEXVtpXTsNCj4gKw0KPiArICAgICAgICAgICAgICAgaWYgKHJlZ190 bXAgIT0gMCkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICBmaW5hbF9jYW5kaWRhdGUgPSBJ UUtfUk9VTkRfSFlCUklEOw0KPiArICAgICAgICAgICAgICAgfSBlbHNlIHsNCj4gKyAgICAgICAg ICAgICAgICAgICAgICAgV0FSTigxLCAiSVFLIGZhaWxlZFxuIik7DQo+ICsgICAgICAgICAgICAg ICAgICAgICAgIGdvdG8gb3V0Ow0KPiArICAgICAgICAgICAgICAgfQ0KPiArICAgICAgIH0NCj4g Kw0KPiAraXFrX2RvbmU6DQo+ICsgICAgICAgaWYgKHJlc3VsdFtmaW5hbF9jYW5kaWRhdGVdW0lR S19TMV9UWF9YXSkNCj4gKyAgICAgICAgICAgICAgIHJ0dzg3MjNiX2lxa19maWxsX2FfbWF0cml4 KHJ0d2RldiwgcmVzdWx0W2ZpbmFsX2NhbmRpZGF0ZV0pOw0KPiArICAgICAgIGlmIChyZXN1bHRb ZmluYWxfY2FuZGlkYXRlXVtJUUtfUzBfVFhfWF0pDQo+ICsgICAgICAgICAgICAgICBydHc4NzIz Yl9pcWtfZmlsbF9iX21hdHJpeChydHdkZXYsIHJlc3VsdFtmaW5hbF9jYW5kaWRhdGVdKTsNCj4g Kw0KPiArICAgICAgIGRtX2luZm8tPmlxay5yZXN1bHQuczFfeCA9IHJlc3VsdFtmaW5hbF9jYW5k aWRhdGVdW0lRS19TMV9UWF9YXTsNCj4gKyAgICAgICBkbV9pbmZvLT5pcWsucmVzdWx0LnMxX3kg PSByZXN1bHRbZmluYWxfY2FuZGlkYXRlXVtJUUtfUzFfVFhfWV07DQo+ICsgICAgICAgZG1faW5m by0+aXFrLnJlc3VsdC5zMF94ID0gcmVzdWx0W2ZpbmFsX2NhbmRpZGF0ZV1bSVFLX1MwX1RYX1hd Ow0KPiArICAgICAgIGRtX2luZm8tPmlxay5yZXN1bHQuczBfeSA9IHJlc3VsdFtmaW5hbF9jYW5k aWRhdGVdW0lRS19TMF9UWF9ZXTsNCj4gKyAgICAgICBkbV9pbmZvLT5pcWsuZG9uZSA9IHRydWU7 DQo+ICsNCj4gK291dDoNCj4gKyAgICAgICAvKiByZXN0b3JlIFJGIHBhdGggKi8NCj4gKyAgICAg ICBydHdfd3JpdGUzMihydHdkZXYsIFJFR19CQl9TRUxfQlRHLCBiYWNrdXAuYmJfc2VsX2J0Zyk7 DQo+ICsNCj4gKyAgICAgICAvKiB2ZW5kb3IgQUREQSBzYXZlL3Jlc3RvcmUgbm90IG5lZWRlZDog bmVpdGhlciB0aGlzIGRyaXZlciBub3INCj4gKyAgICAgICAgKiBydHc4NzIzZCBkb2VzIGl0LCBh bmQgSVFLIGNvbXBsZXRlcyBjb3JyZWN0bHkgd2l0aG91dCBpdA0KPiArICAgICAgICAqLw0KPiAr DQo+ICsgICAgICAgLyogcmVzdG9yZSBHTlRfQlQgKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMihy dHdkZXYsIFJFR19CVF9DT05UUk9MXzg3MjNCLCBidF9jb250cm9sKTsNCj4gKw0KPiArICAgICAg IC8qIFJlc3RvcmUgUlggbW9kZSB0YWJsZSBwYXJhbWV0ZXIgKi8NCj4gKyAgICAgICBydHdfd3Jp dGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJGX0xVVFdFLCAweDgwMDAwLCAweDEpOw0KPiArICAg ICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgUkZfUkNLX09TLCBSRlJFR19NQVNL LCAweDE4MDAwKTsNCj4gKyAgICAgICBydHdfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0EsIFJG X1RYUEFfRzEsIFJGUkVHX01BU0ssIDB4MDAwMWYpOw0KPiArICAgICAgIHJ0d193cml0ZV9yZihy dHdkZXYsIFJGX1BBVEhfQSwgUkZfVFhQQV9HMiwgUkZSRUdfTUFTSywgMHhlNjE3Nyk7DQo+ICsg ICAgICAgcnR3X3dyaXRlX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCAweGVkLCAweDIwLCAweDEpOw0K PiArICAgICAgIHJ0d193cml0ZV9yZihydHdkZXYsIFJGX1BBVEhfQSwgMHg0MywgUkZSRUdfTUFT SywgMHgzMDBiZCk7DQo+ICsNCj4gKyAgICAgICAvKiBub3QgbmVlZGVkOiB0aGlzIHZlbmRvciBi cmFuY2ggb25seSBydW5zIGluIE1QIChtYW51ZmFjdHVyaW5nDQo+ICsgICAgICAgICogdGVzdCkg bW9kZSwgd2hpY2ggdGhpcyBkcml2ZXIgbmV2ZXIgZW50ZXJzDQo+ICsgICAgICAgICovDQo+ICsN Cj4gKyAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssICJbSVFLXSBmaW5hbF9jYW5k aWRhdGUgaXMgJXhcbiIsDQo+ICsgICAgICAgICAgICAgICBmaW5hbF9jYW5kaWRhdGUpOw0KPiAr DQo+ICsgICAgICAgZm9yIChpID0gSVFLX1JPVU5EXzA7IGkgPCBJUUtfUk9VTkRfU0laRTsgaSsr KQ0KPiArICAgICAgICAgICAgICAgcnR3X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLA0KPiArICAg ICAgICAgICAgICAgICAgICAgICAiW0lRS10gUmVzdWx0ICV1OiByZWdlOTRfczE9JXggcmVnZTlj X3MxPSV4IHJlZ2VhNF9zMT0leCByZWdlYWNfczE9JXgNCj4gcmVnZTk0X3MwPSV4IHJlZ2U5Y19z MD0leCByZWdlYTRfczA9JXggcmVnZWFjX3MwPSV4ICVzXG4iLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICBpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICByZXN1bHRbaV1bMF0sIHJlc3Vs dFtpXVsxXSwgcmVzdWx0W2ldWzJdLCByZXN1bHRbaV1bM10sDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIHJlc3VsdFtpXVs0XSwgcmVzdWx0W2ldWzVdLCByZXN1bHRbaV1bNl0sIHJlc3VsdFtp XVs3XSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgZmluYWxfY2FuZGlkYXRlID09IGkgPyAi KGZpbmFsIGNhbmRpZGF0ZSkiIDogIiIpOw0KPiArDQo+ICsgICAgICAgcnR3X2RiZyhydHdkZXYs IFJUV19EQkdfUkZLLA0KPiArICAgICAgICAgICAgICAgIltJUUtdMHhjODAgPSAweCV4IDB4Yzk0 ID0gMHgleCAweGMxNCA9IDB4JXggMHhjYTAgPSAweCV4XG4iLA0KPiArICAgICAgIHJ0d19yZWFk MzIocnR3ZGV2LCBSRUdfT0ZETV8wX1hBX1RYX0lRX0lNQkFMQU5DRSksDQo+ICsgICAgICAgICAg ICAgICBydHdfcmVhZDMyKHJ0d2RldiwgUkVHX1RYSVFLX01BVFJJWEFfTFNCMl8xMU4pLA0KPiAr ICAgICAgICAgICAgICAgcnR3X3JlYWQzMihydHdkZXYsIFJFR19BX1JYSVFJKSwNCj4gKyAgICAg ICAgICAgICAgIHJ0d19yZWFkMzIocnR3ZGV2LCBSRUdfUlhJUUtfTUFUUklYX0xTQl8xMU4pKTsN Cj4gKyAgICAgICBydHdfZGJnKHJ0d2RldiwgUlRXX0RCR19SRkssDQo+ICsgICAgICAgICAgICAg ICAiW0lRS10weGNkMCA9IDB4JXggMHhjZDQgPSAweCV4IDB4Y2Q4ID0gMHgleFxuIiwNCj4gKyAg ICAgICBydHdfcmVhZDMyKHJ0d2RldiwgUkVHX1RYSVFfQUJfUzApLA0KPiArICAgICAgICAgICAg ICAgcnR3X3JlYWQzMihydHdkZXYsIFJFR19UWElRX0NEX1MwKSwNCj4gKyAgICAgICAgICAgICAg IHJ0d19yZWFkMzIocnR3ZGV2LCBSRUdfUlhJUV9BQl9TMCkpOw0KPiArDQo+ICsgICAgICAgcnR3 X2RiZyhydHdkZXYsIFJUV19EQkdfUkZLLCAiW0lRS10gZmluaXNoZWRcbiIpOw0KPiArDQo+ICsg ICAgICAgcnR3ODcyM2JfaW5mb3JtX3Jma19zdGF0dXMocnR3ZGV2LCBmYWxzZSk7DQo+ICt9DQo+ ICsNCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX3B3cnRyYWNrX3NldF9vZmRtX3B3cihzdHJ1Y3Qg cnR3X2RldiAqcnR3ZGV2LCBzOCBzd2luZ19pZHgsDQo+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzOCB0eGFnY19pZHgpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0 IHJ0d19kbV9pbmZvICpkbV9pbmZvID0gJnJ0d2Rldi0+ZG1faW5mbzsNCj4gKw0KPiArICAgICAg IGRtX2luZm8tPnR4YWdjX3JlbW5hbnRfb2ZkbVtSRl9QQVRIX0FdID0gdHhhZ2NfaWR4Ow0KPiAr DQo+ICsgICAgICAgcnR3ODcyM2Jfc2V0X2lxa19tYXRyaXgocnR3ZGV2LCBzd2luZ19pZHgsIFJG X1BBVEhfQSk7DQo+ICt9DQo+ICsNCj4gKy8qIGFkYXB0ZWQgZnJvbSB2ZW5kb3IgZmlsZSBoYWwv cGh5ZG0vaGFscmYvcnRsODcyM2IvaGFscmZfODcyM2JfY2UuYw0KPiArICogZnVuY3Rpb246IHNl dF9jY2tfZmlsdGVyX2NvZWZmaWNpZW50DQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNi X3B3cnRyYWNrX3NldF9jY2tfcHdyKHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHM4IHN3aW5nX2lk eCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgczggdHhhZ2Nf aWR4KQ0KPiArew0KPiArICAgICAgIHN0cnVjdCBydHdfZG1faW5mbyAqZG1faW5mbyA9ICZydHdk ZXYtPmRtX2luZm87DQo+ICsNCj4gKyAgICAgICBkbV9pbmZvLT50eGFnY19yZW1uYW50X2NjayA9 IHR4YWdjX2lkeDsNCj4gKw0KPiArICAgICAgIHN3aW5nX2lkeCA9IGNsYW1wX3QoczgsIHN3aW5n X2lkeCwgMCwgUlRXX0NDS19TV0lOR19UQUJMRV9TSVpFIC0gMSk7DQo+ICsNCj4gKyAgICAgICBC VUlMRF9CVUdfT04oQVJSQVlfU0laRShydHc4NzIzYl9jY2tfcHdyX3JlZ3MpICE9DQo+ICsgICAg ICAgICAgICAgICAgICAgIEFSUkFZX1NJWkUocnR3ODczMmJfY2NrX3N3aW5nX3RhYmxlX2NoMV9j aDEzWzBdKSk7DQo+ICsNCj4gKyAgICAgICAvKg0KPiArICAgICAgICAqIEFsd2F5cyB1c2VzIHRo ZSBjaDEtMTMgQ0NLIHN3aW5nIHRhYmxlIChzZWUgdGhlIGNvbW1lbnRlZCB2ZW5kb3INCj4gKyAg ICAgICAgKiBjb2RlIGFib3ZlKS4gIENoYW5uZWwgMTQgbmVlZHMgaXRzIG93biB0YWJsZSBidXQg aXMgSmFwYW4tb25seSAyLjRHDQo+ICsgICAgICAgICogYW5kIGRpc2FsbG93ZWQgYnkgdGhlIHJl Z3VsYXRvcnkgZG9tYWlucyB3ZSBydW4gaW4sIHNvIGl0IGlzIG5vdA0KPiArICAgICAgICAqIHdp cmVkIHVwLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgQVJS QVlfU0laRShydHc4NzIzYl9jY2tfcHdyX3JlZ3MpOyBpKyspDQo+ICsgICAgICAgICAgICAgICBy dHdfd3JpdGU4KHJ0d2RldiwgcnR3ODcyM2JfY2NrX3B3cl9yZWdzW2ldLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICBydHc4NzMyYl9jY2tfc3dpbmdfdGFibGVfY2gxX2NoMTNbc3dpbmdf aWR4XVtpXSk7DQo+ICt9DQo+ICsNCj4gKy8qIHZlbmRvciBkcml2ZXIgaGFsL3BoeWRtL2hhbHJm L3J0bDg3MjNiL2hhbHJmXzg3MjNiX2NlLmMNCj4gKyAqIGZ1bmN0aW9uOiBvZG1fdHhfcHdyX3Ry YWNrX3NldF9wd3JfODcyM2INCj4gKyAqLw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfcHdydHJh Y2tfc2V0KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHU4IHBhdGgpDQo+ICt7DQo+ICsgICAgICAg c3RydWN0IHJ0d19kbV9pbmZvICpkbV9pbmZvID0gJnJ0d2Rldi0+ZG1faW5mbzsNCj4gKyAgICAg ICBzdHJ1Y3QgcnR3X2hhbCAqaGFsID0gJnJ0d2Rldi0+aGFsOw0KPiArICAgICAgIHU4IGxpbWl0 X29mZG07DQo+ICsgICAgICAgLyogODcwM2IgYW5kIDg3MjNkIHNlZW0gdG8gdXNlIFJUV19DQ0tf U1dJTkdfVEFCTEVfU0laRSAqLw0KPiArICAgICAgIHU4IGxpbWl0X2NjayA9IDI4OyAvKiAtMmRC ICovDQo+ICsgICAgICAgczggZmluYWxfb2ZkbV9zd2luZ19pbmRleDsNCj4gKyAgICAgICBzOCBm aW5hbF9jY2tfc3dpbmdfaW5kZXg7DQo+ICsNCj4gKyAgICAgICBsaW1pdF9vZmRtID0gcnR3ODcy M3hfcHdydHJhY2tfZ2V0X2xpbWl0X29mZG0ocnR3ZGV2KTsNCj4gKw0KPiArICAgICAgIGZpbmFs X29mZG1fc3dpbmdfaW5kZXggPSBkbV9pbmZvLT5kZWZhdWx0X29mZG1faW5kZXggKw0KPiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkbV9pbmZvLT5kZWx0YV9wb3dlcl9pbmRleFtw YXRoXTsNCj4gKyAgICAgICBmaW5hbF9jY2tfc3dpbmdfaW5kZXggPSBkbV9pbmZvLT5kZWZhdWx0 X2Nja19pbmRleCArDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZG1faW5mby0+ ZGVsdGFfcG93ZXJfaW5kZXhbcGF0aF07DQo+ICsNCj4gKyAgICAgICBpZiAoZmluYWxfb2ZkbV9z d2luZ19pbmRleCA+IGxpbWl0X29mZG0pDQo+ICsgICAgICAgICAgICAgICBydHc4NzIzYl9wd3J0 cmFja19zZXRfb2ZkbV9wd3IocnR3ZGV2LCBsaW1pdF9vZmRtLA0KPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbmFsX29mZG1fc3dpbmdfaW5kZXggLSBs aW1pdF9vZmRtKTsNCj4gKyAgICAgICBlbHNlIGlmIChmaW5hbF9vZmRtX3N3aW5nX2luZGV4IDwg MCkNCj4gKyAgICAgICAgICAgICAgIHJ0dzg3MjNiX3B3cnRyYWNrX3NldF9vZmRtX3B3cihydHdk ZXYsIDAsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZmluYWxfb2ZkbV9zd2luZ19pbmRleCk7DQo+ICsgICAgICAgZWxzZQ0KPiArICAgICAgICAgICAg ICAgcnR3ODcyM2JfcHdydHJhY2tfc2V0X29mZG1fcHdyKHJ0d2RldiwgZmluYWxfb2ZkbV9zd2lu Z19pbmRleCwgMCk7DQo+ICsNCj4gKyAgICAgICBpZiAoZmluYWxfY2NrX3N3aW5nX2luZGV4ID4g bGltaXRfY2NrKQ0KPiArICAgICAgICAgICAgICAgcnR3ODcyM2JfcHdydHJhY2tfc2V0X2Nja19w d3IocnR3ZGV2LCBsaW1pdF9jY2ssDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBmaW5hbF9jY2tfc3dpbmdfaW5kZXggLSBsaW1pdF9jY2spOw0KPiArICAg ICAgIGVsc2UgaWYgKGZpbmFsX2Nja19zd2luZ19pbmRleCA8IDApDQo+ICsgICAgICAgICAgICAg ICBydHc4NzIzYl9wd3J0cmFja19zZXRfY2NrX3B3cihydHdkZXYsIDAsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaW5hbF9jY2tfc3dpbmdfaW5kZXgp Ow0KPiArICAgICAgIGVsc2UNCj4gKyAgICAgICAgICAgICAgIHJ0dzg3MjNiX3B3cnRyYWNrX3Nl dF9jY2tfcHdyKHJ0d2RldiwgZmluYWxfY2NrX3N3aW5nX2luZGV4LCAwKTsNCj4gKw0KPiArICAg ICAgIHJ0d19waHlfc2V0X3R4X3Bvd2VyX2xldmVsKHJ0d2RldiwgaGFsLT5jdXJyZW50X2NoYW5u ZWwpOw0KPiArfQ0KPiArDQo+ICsvKiB2ZW5kb3IgZHJpdmVyIGhhbC9waHlkbS9oYWxyZi9oYWxw aHlyZl9jZS5jDQo+ICsgKiBmdW5jdGlvbjogb2RtX3R4cG93ZXJ0cmFja2luZ19jYWxsYmFja190 aGVybWFsX21ldGVyDQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX3BoeV9wd3J0cmFj ayhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIHN0cnVjdCBydHdfZG1f aW5mbyAqZG1faW5mbyA9ICZydHdkZXYtPmRtX2luZm87DQo+ICsgICAgICAgc3RydWN0IHJ0d19z d2luZ190YWJsZSBzd2luZ190YWJsZTsNCj4gKyAgICAgICB1OCB0aGVybWFsX3ZhbHVlLCBkZWx0 YSwgcGF0aDsNCj4gKyAgICAgICBib29sIGRvX2lxayA9IGZhbHNlOw0KPiArDQo+ICsgICAgICAg cnR3X3BoeV9jb25maWdfc3dpbmdfdGFibGUocnR3ZGV2LCAmc3dpbmdfdGFibGUpOw0KPiArDQo+ ICsgICAgICAgaWYgKHJ0d2Rldi0+ZWZ1c2UudGhlcm1hbF9tZXRlclswXSA9PSAweGZmKQ0KPiAr ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgICAgdGhlcm1hbF92YWx1ZSA9IHJ0 d19yZWFkX3JmKHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9UX01FVEVSLCAweGZjMDApOw0KPiArDQo+ ICsgICAgICAgLyo0IDQuIENhbGN1bGF0ZSBhdmVyYWdlIHRoZXJtYWwgbWV0ZXIqLw0KPiArICAg ICAgIHJ0d19waHlfcHdydHJhY2tfYXZnKHJ0d2RldiwgdGhlcm1hbF92YWx1ZSwgUkZfUEFUSF9B KTsNCj4gKw0KPiArICAgICAgIGRvX2lxayA9IHJ0d19waHlfcHdydHJhY2tfbmVlZF9pcWsocnR3 ZGV2KTsNCj4gKw0KPiArICAgICAgIC8qIG1hdGNoZXMgcnR3ODcyM2QgcG93ZXIgdHJhY2tpbmc6 IExDSyB2aWEgdGhlIGNvbW1vbiBoZWxwZXIgb24gdGhlDQo+ICsgICAgICAgICogSVFLIHRyaWdn ZXIsIHRoZW4gdGhlIElRSyBpdHNlbGYgYmVsb3cNCj4gKyAgICAgICAgKi8NCj4gKyAgICAgICBp ZiAoZG9faXFrKQ0KPiArICAgICAgICAgICAgICAgcnR3ODcyM3hfbGNrKHJ0d2Rldik7DQo+ICsN Cj4gKyAgICAgICBpZiAoZG1faW5mby0+cHdyX3Rya19pbml0X3RyaWdnZXIpDQo+ICsgICAgICAg ICAgICAgICBkbV9pbmZvLT5wd3JfdHJrX2luaXRfdHJpZ2dlciA9IGZhbHNlOw0KPiArICAgICAg IGVsc2UgaWYgKCFydHdfcGh5X3B3cnRyYWNrX3RoZXJtYWxfY2hhbmdlZChydHdkZXYsIHRoZXJt YWxfdmFsdWUsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFJGX1BBVEhfQSkpDQo+ICsgICAgICAgICAgICAgICBnb3RvIGlxazsNCj4gKw0KPiAr ICAgICAgIGRlbHRhID0gcnR3X3BoeV9wd3J0cmFja19nZXRfZGVsdGEocnR3ZGV2LCBSRl9QQVRI X0EpOw0KPiArDQo+ICsgICAgICAgLyogTk9URTogYWxzbyBkb25lIGluIHJ0d19waHlfcHdydHJh Y2tfZ2V0X2RlbHRhICovDQo+ICsgICAgICAgZGVsdGEgPSBtaW5fdCh1OCwgZGVsdGEsIFJUV19Q V1JfVFJLX1RCTF9TWiAtIDEpOw0KPiArDQo+ICsgICAgICAgZm9yIChwYXRoID0gMDsgcGF0aCA8 IHJ0d2Rldi0+aGFsLnJmX3BhdGhfbnVtOyBwYXRoKyspIHsNCj4gKyAgICAgICAgICAgICAgIHM4 IGRlbHRhX2N1ciwgZGVsdGFfbGFzdDsNCj4gKw0KPiArICAgICAgICAgICAgICAgZGVsdGFfbGFz dCA9IGRtX2luZm8tPmRlbHRhX3Bvd2VyX2luZGV4W3BhdGhdOw0KPiArICAgICAgICAgICAgICAg ZGVsdGFfY3VyID0gcnR3X3BoeV9wd3J0cmFja19nZXRfcHdyaWR4KHJ0d2RldiwgJnN3aW5nX3Rh YmxlLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHBhdGgsIFJGX1BBVEhfQSwgZGVsdGEpOw0KPiArICAgICAgICAgICAgICAgaWYgKGRl bHRhX2xhc3QgPT0gZGVsdGFfY3VyKQ0KPiArICAgICAgICAgICAgICAgICAgICAgICBjb250aW51 ZTsNCj4gKw0KPiArICAgICAgICAgICAgICAgZG1faW5mby0+ZGVsdGFfcG93ZXJfaW5kZXhbcGF0 aF0gPSBkZWx0YV9jdXI7DQo+ICsgICAgICAgICAgICAgICBydHc4NzIzYl9wd3J0cmFja19zZXQo cnR3ZGV2LCBwYXRoKTsNCj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICAvKiBub3QgZG9uZSBp biB0aGUgODcyM2JzIHZlbmRvciBkcml2ZXIgKi8NCj4gKw0KPiAraXFrOg0KPiArICAgICAgIGlm IChkb19pcWspDQo+ICsgICAgICAgICAgICAgICBydHc4NzIzYl9waHlfY2FsaWJyYXRpb24ocnR3 ZGV2KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfcHdyX3RyYWNrKHN0cnVj dCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0IHJ0d19lZnVzZSAqZWZ1 c2UgPSAmcnR3ZGV2LT5lZnVzZTsNCj4gKyAgICAgICBzdHJ1Y3QgcnR3X2RtX2luZm8gKmRtX2lu Zm8gPSAmcnR3ZGV2LT5kbV9pbmZvOw0KPiArDQo+ICsgICAgICAgaWYgKGVmdXNlLT5wb3dlcl90 cmFja190eXBlICE9IDApIHsNCj4gKyAgICAgICAgICAgICAgIHJ0d193YXJuKHJ0d2RldiwgInVu c3VwcG9ydGVkIHBvd2VyIHRyYWNrIHR5cGUiKTsNCj4gKyAgICAgICAgICAgICAgIHJldHVybjsN Cj4gKyAgICAgICB9DQo+ICsNCj4gKyAgICAgICBpZiAoIWRtX2luZm8tPnB3cl90cmtfdHJpZ2dl cmVkKSB7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGVfcmYocnR3ZGV2LCBSRl9QQVRIX0Es IFJGX1RfTUVURVIsDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VOTUFTSygxNywg MTYpLCAweDAzKTsNCj4gKyAgICAgICAgICAgICAgIGRtX2luZm8tPnB3cl90cmtfdHJpZ2dlcmVk ID0gdHJ1ZTsNCj4gKyAgICAgICAgICAgICAgIHJldHVybjsNCj4gKyAgICAgICB9DQo+ICsNCj4g KyAgICAgICBydHc4NzIzYl9waHlfcHdydHJhY2socnR3ZGV2KTsNCj4gKyAgICAgICBkbV9pbmZv LT5wd3JfdHJrX3RyaWdnZXJlZCA9IGZhbHNlOw0KPiArfQ0KPiArDQo+ICsvKiB2ZW5kb3IgZmls ZSBoYWwvYnRjL2hhbGJ0Yzg3MjNiMWFudC5jDQo+ICsgKiBmdW5jdGlvbjogaGFsYnRjODcyM2Ix YW50X2luaXRfaHdfY29uZmlnDQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2NvZXhf Y2ZnX2luaXQoc3RydWN0IHJ0d19kZXYgKnJ0d2RldikNCj4gK3sNCj4gKyAgICAgICAvKiBlbmFi bGUgVEJUVCBudGVycnVwdCAqLw0KPiArICAgICAgIHJ0d193cml0ZThfbWFzayhydHdkZXYsIDB4 NTUwLCAweDgsIDB4MSk7DQo+ICsNCj4gKyAgICAgICAvKiAweDc5MFs1OjBdPSAweDUgKi8NCj4g KyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgMHg3OTAsIDB4NSk7DQo+ICsNCj4gKyAgICAgICAv KiBlbmFibGUgY291bnRlciBzdGF0aXN0aWNzICovDQo+ICsgICAgICAgcnR3X3dyaXRlOChydHdk ZXYsIDB4Nzc4LCAweDEpOw0KPiArICAgICAgIHJ0d193cml0ZThfbWFzayhydHdkZXYsIDB4NDAs IDB4MjAsIDB4MSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2NvZXhfc2V0 X2dudF9maXgoc3RydWN0IHJ0d19kZXYgKnJ0d2RldikNCj4gK3sNCj4gKyAgICAgICAvKiBpbnRl bnRpb25hbGx5IGVtcHR5OiBydHc4NzIzZCdzIGNvZXhfc2V0X2dudF9maXggaXMgZW1wdHkgdG9v ICovDQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2NvZXhfc2V0X2dudF9kZWJ1 ZyhzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0KPiArew0KPiArICAgICAgIC8qDQo+ICsgICAgICAg ICogTm90IGltcGxlbWVudGVkOiBydHc4NzIzZCByb3V0ZXMgR05UX0JUIHRvIGRlYnVnIEdQSU9z IGhlcmUNCj4gKyAgICAgICAgKiAoUkVHX0xFRENGRzIvUkVHX1BBRF9DVFJMMS9SRUdfR1BJT18q KS4gIFRoYXQgaXMgY29leCBkZWJ1Zw0KPiArICAgICAgICAqIGluc3RydW1lbnRhdGlvbiBvbmx5 IGFuZCBpcyBub3QgbmVlZGVkIGZvciBub3JtYWwgb3BlcmF0aW9uLg0KPiArICAgICAgICAqLw0K PiArfQ0KPiArDQo+ICtzdGF0aWMgYm9vbCBydHc4NzIzYl9jb2V4X2FudF9pc19hdXgoc3RydWN0 IHJ0d19kZXYgKnJ0d2RldikNCj4gK3sNCj4gKyAgICAgICByZXR1cm4gISEocnR3ZGV2LT5lZnVz ZS5idF9zZXR0aW5nICYgQklUKDYpKTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcy M2JfY29leF93cml0ZThfdmVyaWZ5KHN0cnVjdCBydHdfZGV2ICpydHdkZXYsIHUzMiBhZGRyLA0K PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdTggdmFsdWUpDQo+ICt7 DQo+ICsgICAgICAgdTggcmVhZGJhY2s7DQo+ICsNCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2Rl diwgYWRkciwgdmFsdWUpOw0KPiArICAgICAgIHJlYWRiYWNrID0gcnR3X3JlYWQ4KHJ0d2Rldiwg YWRkcik7DQo+ICsgICAgICAgaWYgKHJlYWRiYWNrID09IHZhbHVlKQ0KPiArICAgICAgICAgICAg ICAgcmV0dXJuOw0KPiArDQo+ICsgICAgICAgdXNsZWVwX3JhbmdlKDEwLCAxMSk7DQo+ICsgICAg ICAgcnR3X3dyaXRlOChydHdkZXYsIGFkZHIsIHZhbHVlKTsNCj4gK30NCj4gKw0KPiArc3RhdGlj IHZvaWQgcnR3ODcyM2JfY29leF9zZXRfYW50X2N0cmxfYnlfd2lmaShzdHJ1Y3QgcnR3X2RldiAq cnR3ZGV2KQ0KPiArew0KPiArICAgICAgIC8qIDB4NGNbMjNdID0gMSwgMHg0Y1syNF0gPSAwOiBh bnRlbm5hIGNvbnRyb2wgYnkgMHg2NC4gKi8NCj4gKyAgICAgICBydHdfd3JpdGUzMl9jbHIocnR3 ZGV2LCBSRUdfTEVEX0NGRywgQklUKDI0KSk7DQo+ICsgICAgICAgcnR3X3dyaXRlMzJfc2V0KHJ0 d2RldiwgUkVHX0xFRF9DRkcsIEJJVCgyMykpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdm9pZCBy dHc4NzIzYl9jb2V4X3NldF9hbnRfY3RybF9ieV9idChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2KQ0K PiArew0KPiArICAgICAgIC8qIDB4NGNbMjQ6MjNdID0gMDogYW50ZW5uYSBjb250cm9sIGJ5IEJU X1JGRV9DVFJMLiAqLw0KPiArICAgICAgIHJ0d193cml0ZTMyX2NscihydHdkZXYsIFJFR19MRURf Q0ZHLCBCSVQoMjMpIHwgQklUKDI0KSk7DQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2b2lkIHJ0dzg3 MjNiX2NvZXhfY2ZnX2FudF9idWZmZXIoc3RydWN0IHJ0d19kZXYgKnJ0d2RldikNCj4gK3sNCj4g KyAgICAgICB1OCBzeXNfZnVuY19iZWZvcmU7DQo+ICsNCj4gKyAgICAgICBzeXNfZnVuY19iZWZv cmUgPSBydHdfcmVhZDgocnR3ZGV2LCBSRUdfU1lTX0ZVTkNfRU4pOw0KPiArICAgICAgIGlmICgo c3lzX2Z1bmNfYmVmb3JlICYgV0xBTl9TWVNfRlVOQ19CQl9FTkFCTEUpICE9DQo+ICsgICAgICAg ICAgIFdMQU5fU1lTX0ZVTkNfQkJfRU5BQkxFKSB7DQo+ICsgICAgICAgICAgICAgICBydHdfd3Jp dGU4X3NldChydHdkZXYsIFJFR19TWVNfRlVOQ19FTiwNCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFdMQU5fU1lTX0ZVTkNfQkJfRU5BQkxFKTsNCj4gKyAgICAgICAgICAgICAgIHVz bGVlcF9yYW5nZSgxMCwgMTEpOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIHJ0d193cml0 ZThfc2V0KHJ0d2RldiwgUkVHX0JUX0NPRVhfQ1RSTF84NzIzQiwgQklUKDMpKTsNCj4gKyAgICAg ICBydHc4NzIzYl9jb2V4X3dyaXRlOF92ZXJpZnkocnR3ZGV2LCBSRUdfQkJfQU5UX0JVRl84NzIz QiwgMHhmZik7DQo+ICsgICAgICAgcnR3X3dyaXRlOF9tYXNrKHJ0d2RldiwgUkVHX0JCX0FOVF9D RkcxXzg3MjNCLCAweDMsIDB4Myk7DQo+ICsgICAgICAgcnR3X3dyaXRlOChydHdkZXYsIFJFR19C Ql9BTlRfQ0ZHXzg3MjNCLCAweDc3KTsNCj4gK30NCj4gKw0KPiArc3RhdGljIHUzMiBydHc4NzIz Yl9jb2V4X3dyaXRlX2JiX3NlbF9idGcoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTMyIHZhbHVl KQ0KPiArew0KPiArICAgICAgIHU4IHN5c19mdW5jX2JlZm9yZTsNCj4gKyAgICAgICB1MzIgcmVh ZGJhY2s7DQo+ICsNCj4gKyAgICAgICBpZiAocnR3X2hjaV90eXBlKHJ0d2RldikgIT0gUlRXX0hD SV9UWVBFX1NESU8pIHsNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVH X0JCX1NFTF9CVEcsIHZhbHVlKTsNCj4gKyAgICAgICAgICAgICAgIHJldHVybiBydHdfcmVhZDMy KHJ0d2RldiwgUkVHX0JCX1NFTF9CVEcpOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIHN5 c19mdW5jX2JlZm9yZSA9IHJ0d19yZWFkOChydHdkZXYsIFJFR19TWVNfRlVOQ19FTik7DQo+ICsg ICAgICAgaWYgKChzeXNfZnVuY19iZWZvcmUgJiBXTEFOX1NZU19GVU5DX0JCX0VOQUJMRSkgIT0N Cj4gKyAgICAgICAgICAgV0xBTl9TWVNfRlVOQ19CQl9FTkFCTEUpIHsNCj4gKyAgICAgICAgICAg ICAgIHJ0d193cml0ZThfc2V0KHJ0d2RldiwgUkVHX1NZU19GVU5DX0VOLA0KPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgV0xBTl9TWVNfRlVOQ19CQl9FTkFCTEUpOw0KPiArICAgICAg ICAgICAgICAgdXNsZWVwX3JhbmdlKDEwLCAxMSk7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAg ICAgcnR3X3dyaXRlMzIocnR3ZGV2LCBSRUdfQkJfU0VMX0JURywgdmFsdWUpOw0KPiArICAgICAg IHJlYWRiYWNrID0gcnR3X3JlYWQzMihydHdkZXYsIFJFR19CQl9TRUxfQlRHKTsNCj4gKyAgICAg ICBpZiAocmVhZGJhY2sgPT0gdmFsdWUpDQo+ICsgICAgICAgICAgICAgICByZXR1cm4gcmVhZGJh Y2s7DQo+ICsNCj4gKyAgICAgICBydHdfd3JpdGU4X3NldChydHdkZXYsIFJFR19TWVNfRlVOQ19F TiwgV0xBTl9TWVNfRlVOQ19CQl9FTkFCTEUpOw0KPiArICAgICAgIHVzbGVlcF9yYW5nZSgxMCwg MTEpOw0KPiArICAgICAgIHJ0d193cml0ZTMyKHJ0d2RldiwgUkVHX0JCX1NFTF9CVEcsIHZhbHVl KTsNCj4gKw0KPiArICAgICAgIHJldHVybiBydHdfcmVhZDMyKHJ0d2RldiwgUkVHX0JCX1NFTF9C VEcpOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgdTMyIHJ0dzg3MjNiX2NvZXhfYW50X3BhdGhfdmFs dWUoc3RydWN0IHJ0d19kZXYgKnJ0d2RldiwgdTggcG9zX3R5cGUpDQo+ICt7DQo+ICsgICAgICAg Ym9vbCBhdXggPSBydHc4NzIzYl9jb2V4X2FudF9pc19hdXgocnR3ZGV2KTsNCj4gKw0KPiArICAg ICAgIHN3aXRjaCAocG9zX3R5cGUpIHsNCj4gKyAgICAgICBjYXNlIENPRVhfU1dJVENIX1RPX0JU Og0KPiArICAgICAgICAgICAgICAgcmV0dXJuIGF1eCA/IDB4MCA6IDB4MjgwOw0KPiArICAgICAg IGNhc2UgQ09FWF9TV0lUQ0hfVE9fV0xHOg0KPiArICAgICAgIGNhc2UgQ09FWF9TV0lUQ0hfVE9f V0xBOg0KPiArICAgICAgICAgICAgICAgcmV0dXJuIGF1eCA/IDB4MjgwIDogMHgwOw0KPiArICAg ICAgIGNhc2UgQ09FWF9TV0lUQ0hfVE9fV0xHX0JUOg0KPiArICAgICAgIGNhc2UgQ09FWF9TV0lU Q0hfVE9fTk9DQVJFOg0KPiArICAgICAgIGRlZmF1bHQ6DQo+ICsgICAgICAgICAgICAgICByZXR1 cm4gYXV4ID8gMHg4MCA6IDB4MjAwOw0KPiArICAgICAgIH0NCj4gK30NCj4gKw0KPiArc3RhdGlj IHZvaWQgcnR3ODcyM2JfY29leF9jZmdfYW50X3N3aXRjaChzdHJ1Y3QgcnR3X2RldiAqcnR3ZGV2 LA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHU4IGN0cmxfdHlw ZSwgdTggcG9zX3R5cGUpDQo+ICt7DQo+ICsgICAgICAgdTMyIGFudF9wYXRoOw0KPiArDQo+ICsg ICAgICAgaWYgKHJ0d19oY2lfdHlwZShydHdkZXYpICE9IFJUV19IQ0lfVFlQRV9TRElPKQ0KPiAr ICAgICAgICAgICAgICAgcmV0dXJuOw0KPiArDQo+ICsgICAgICAgaWYgKGN0cmxfdHlwZSA9PSBD T0VYX1NXSVRDSF9DVFJMX0JZX0JUKSB7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGU4KHJ0 d2RldiwgUkVHX0JUX0dOVF9CVF84NzIzQiwgMHgxOCk7DQo+ICsgICAgICAgICAgICAgICBydHdf d3JpdGU4KHJ0d2RldiwgUkVHX0JUX1dMQU5fQUNUXzg3MjNCLCAweDQpOw0KPiArICAgICAgICAg ICAgICAgcnR3X3dyaXRlOF9jbHIocnR3ZGV2LCBSRUdfQlRfQU5UX1NFTF84NzIzQiwNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJVF9CVF9TRUxfQllfV0lGSV84NzIzQik7DQo+ ICsgICAgICAgICAgICAgICBydHc4NzIzYl9jb2V4X3NldF9hbnRfY3RybF9ieV9idChydHdkZXYp Ow0KPiArICAgICAgICAgICAgICAgYW50X3BhdGggPSBydHc4NzIzYl9jb2V4X2FudF9wYXRoX3Zh bHVlKHJ0d2RldiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBDT0VYX1NXSVRDSF9UT19CVCk7DQo+ICsgICAgICAgICAgICAgICBydHc4 NzIzYl9jb2V4X3dyaXRlX2JiX3NlbF9idGcocnR3ZGV2LCBhbnRfcGF0aCk7DQo+ICsNCj4gKyAg ICAgICAgICAgICAgIHJ0d19kYmcocnR3ZGV2LCBSVFdfREJHX0NPRVgsDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICJbQlRDb2V4XSwgODcyM2JzIGFudCBzd2l0Y2ggYnkgQlQgQkJfU0VMX0JU Rz0weCUwOHggMHg0Yz0weCUwOHggMHg2Nz0weCUwMngNCj4gMHg3NjU9MHglMDJ4IDB4NzZlPTB4 JTAyeFxuIiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3X3JlYWQzMihydHdkZXYsIFJF R19CQl9TRUxfQlRHKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3X3JlYWQzMihydHdk ZXYsIFJFR19MRURfQ0ZHKSwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3X3JlYWQ4KHJ0 d2RldiwgUkVHX0JUX0FOVF9TRUxfODcyM0IpLA0KPiArICAgICAgICAgICAgICAgICAgICAgICBy dHdfcmVhZDgocnR3ZGV2LCBSRUdfQlRfR05UX0JUXzg3MjNCKSwNCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgcnR3X3JlYWQ4KHJ0d2RldiwgUkVHX0JUX1dMQU5fQUNUXzg3MjNCKSk7DQo+ICsg ICAgICAgICAgICAgICByZXR1cm47DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgcnR3ODcy M2JfY29leF9zZXRfYW50X2N0cmxfYnlfd2lmaShydHdkZXYpOw0KPiArICAgICAgIHJ0d193cml0 ZTgocnR3ZGV2LCBSRUdfQlRfQU5UX1NFTF84NzIzQiwgMHgyMCk7DQo+ICsNCj4gKyAgICAgICBp ZiAoY3RybF90eXBlID09IENPRVhfU1dJVENIX0NUUkxfQllfQkJTVyAmJg0KPiArICAgICAgICAg ICBwb3NfdHlwZSA9PSBDT0VYX1NXSVRDSF9UT19CVCkgew0KPiArICAgICAgICAgICAgICAgcnR3 X3dyaXRlOChydHdkZXYsIFJFR19CVF9HTlRfQlRfODcyM0IsIDB4MTgpOw0KPiArICAgICAgICAg ICAgICAgcnR3X3dyaXRlOChydHdkZXYsIFJFR19CVF9XTEFOX0FDVF84NzIzQiwgMHg0KTsNCj4g KyAgICAgICB9IGVsc2Ugew0KPiArICAgICAgICAgICAgICAgaWYgKHJ0d19yZWFkOChydHdkZXYs IFJFR19CVF9HTlRfQlRfODcyM0IpICE9IDApDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0 d193cml0ZTgocnR3ZGV2LCBSRUdfQlRfR05UX0JUXzg3MjNCLCAweDApOw0KPiArDQo+ICsgICAg ICAgICAgICAgICBpZiAocnR3X3JlYWQ4KHJ0d2RldiwgUkVHX0JUX1dMQU5fQUNUXzg3MjNCKSAh PSAweGMpDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdf QlRfV0xBTl9BQ1RfODcyM0IsIDB4Yyk7DQo+ICsgICAgICAgfQ0KPiArDQo+ICsgICAgICAgaWYg KGN0cmxfdHlwZSA9PSBDT0VYX1NXSVRDSF9DVFJMX0JZX0JCU1cpDQo+ICsgICAgICAgICAgICAg ICBhbnRfcGF0aCA9IHJ0dzg3MjNiX2NvZXhfYW50X3BhdGhfdmFsdWUocnR3ZGV2LCBwb3NfdHlw ZSk7DQo+ICsgICAgICAgZWxzZQ0KPiArICAgICAgICAgICAgICAgYW50X3BhdGggPSBydHc4NzIz Yl9jb2V4X2FudF9wYXRoX3ZhbHVlKHJ0d2RldiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDT0VYX1NXSVRDSF9UT19OT0NBUkUpOw0K PiArDQo+ICsgICAgICAgcnR3ODcyM2JfY29leF93cml0ZV9iYl9zZWxfYnRnKHJ0d2RldiwgYW50 X3BhdGgpOw0KPiArICAgICAgIHJ0dzg3MjNiX3NkaW9fcmVzdG9yZV9wYWRfY3RybChydHdkZXYs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN0cmxfdHlwZSA9PSBD T0VYX1NXSVRDSF9DVFJMX0JZX1BUQSk7DQo+ICsNCj4gKyAgICAgICBydHdfZGJnKHJ0d2Rldiwg UlRXX0RCR19DT0VYLA0KPiArICAgICAgICAgICAgICAgIltCVENvZXhdLCA4NzIzYnMgYW50IHN3 aXRjaCBjdHJsPSV1IHBvcz0ldSBCQl9TRUxfQlRHPTB4JTA4eCAweDRjPTB4JTA4eCAweDY3PTB4 JTAyeA0KPiAweDc2NT0weCUwMnggMHg3NmU9MHglMDJ4XG4iLA0KPiArICAgICAgICAgICAgICAg Y3RybF90eXBlLCBwb3NfdHlwZSwgcnR3X3JlYWQzMihydHdkZXYsIFJFR19CQl9TRUxfQlRHKSwN Cj4gKyAgICAgICAgICAgICAgIHJ0d19yZWFkMzIocnR3ZGV2LCBSRUdfTEVEX0NGRyksDQo+ICsg ICAgICAgICAgICAgICBydHdfcmVhZDgocnR3ZGV2LCBSRUdfQlRfQU5UX1NFTF84NzIzQiksDQo+ ICsgICAgICAgICAgICAgICBydHdfcmVhZDgocnR3ZGV2LCBSRUdfQlRfR05UX0JUXzg3MjNCKSwN Cj4gKyAgICAgICAgICAgICAgIHJ0d19yZWFkOChydHdkZXYsIFJFR19CVF9XTEFOX0FDVF84NzIz QikpOw0KPiArfQ0KPiArDQo+ICsvKiB2ZW5kb3IgZmlsZTogaGFsL2J0Yy9oYWxidGM4NzIzYjFh bnQuYw0KPiArICogZnVuY3Rpb246IGV4X2hhbGJ0Yzg3MjNiMWFudF9wb3dlcl9vbl9zZXR0aW5n DQo+ICsgKi8NCj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2NvZXhfc2V0X3JmZV90eXBlKHN0cnVj dCBydHdfZGV2ICpydHdkZXYpDQo+ICt7DQo+ICsgICAgICAgc3RydWN0IHJ0d19jb2V4ICpjb2V4 ID0gJnJ0d2Rldi0+Y29leDsNCj4gKyAgICAgICBzdHJ1Y3QgcnR3X2NvZXhfcmZlICpjb2V4X3Jm ZSA9ICZjb2V4LT5yZmU7DQo+ICsgICAgICAgZW51bSBydHdfaGNpX3R5cGUgaGNpX3R5cGUgPSBy dHdfaGNpX3R5cGUocnR3ZGV2KTsNCj4gKyAgICAgICBib29sIGF1eCA9IHJ0dzg3MjNiX2NvZXhf YW50X2lzX2F1eChydHdkZXYpOw0KPiArICAgICAgIHUzMiByZWc7DQo+ICsNCj4gKyAgICAgICBj b2V4X3JmZS0+cmZlX21vZHVsZV90eXBlID0gcnR3ZGV2LT5lZnVzZS5yZmVfb3B0aW9uOw0KPiAr ICAgICAgIGNvZXhfcmZlLT5hbnRfc3dpdGNoX3BvbGFyaXR5ID0gYXV4ID8gMSA6IDA7DQo+ICsg ICAgICAgY29leF9yZmUtPmFudF9zd2l0Y2hfZXhpc3QgPSBoY2lfdHlwZSA9PSBSVFdfSENJX1RZ UEVfU0RJTzsNCj4gKyAgICAgICBjb2V4X3JmZS0+YW50X3N3aXRjaF93aXRoX2J0ID0gZmFsc2U7 DQo+ICsgICAgICAgY29leF9yZmUtPmFudF9zd2l0Y2hfZGl2ZXJzaXR5ID0gZmFsc2U7DQo+ICsg ICAgICAgY29leF9yZmUtPndsZ19hdF9idGcgPSB0cnVlOw0KPiArDQo+ICsgICAgICAgcnR3X3dy aXRlOChydHdkZXYsIFJFR19CVF9BTlRfU0VMXzg3MjNCLCAweDIwKTsNCj4gKw0KPiArICAgICAg IC8qIHNldCBHUkFOX0JUID0gMSAqLw0KPiArICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdf QlRfR05UX0JUXzg3MjNCLCAweDE4KTsNCj4gKw0KPiArICAgICAgIC8qIHNldCBXTEFOX0FDVCA9 IDAgKi8NCj4gKyAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgUkVHX0JUX1dMQU5fQUNUXzg3MjNC LCAweDQpOw0KPiArDQo+ICsgICAgICAgc3dpdGNoIChoY2lfdHlwZSkgew0KPiArICAgICAgIGNh c2UgUlRXX0hDSV9UWVBFX1VTQjoNCj4gKyAgICAgICAgICAgICAgIHJ0dzg3MjNiX2NvZXhfd3Jp dGVfYmJfc2VsX2J0ZyhydHdkZXYsIDB4MCk7DQo+ICsgICAgICAgICAgICAgICBydHdfd3JpdGU4 KHJ0d2RldiwgMHhmZTA4LCAweDEpOyAvKiBhbnRlbm5hIGludmVyc2UgKi8NCj4gKyAgICAgICAg ICAgICAgIGJyZWFrOw0KPiArICAgICAgIGNhc2UgUlRXX0hDSV9UWVBFX1BDSUU6DQo+ICsgICAg ICAgICAgICAgICByZWcgPSAweDM4NDsNCj4gKyAgICAgICAgICAgICAgIC8qIGVmdXNlIDB4YzNb Nl0gPT0gMCwgUzEoTWFpbiksIFJGX1BBVEhfQQ0KPiArICAgICAgICAgICAgICAgICogZWZ1c2Ug MHhjM1s2XSA9PSAxLCBTMChBdXgpLCBSRl9QQVRIX0INCj4gKyAgICAgICAgICAgICAgICAqLw0K PiArICAgICAgICAgICAgICAgaWYgKGF1eCkgew0KPiArICAgICAgICAgICAgICAgICAgICAgICBy dHc4NzIzYl9jb2V4X3dyaXRlX2JiX3NlbF9idGcocnR3ZGV2LCAweDApOw0KPiArICAgICAgICAg ICAgICAgICAgICAgICBydHdfd3JpdGU4KHJ0d2RldiwgcmVnLCAweDEpOw0KPiArICAgICAgICAg ICAgICAgfSBlbHNlIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3ODcyM2JfY29leF93 cml0ZV9iYl9zZWxfYnRnKHJ0d2RldiwgMHgyODApOw0KPiArICAgICAgICAgICAgICAgICAgICAg ICBydHdfd3JpdGU4KHJ0d2RldiwgcmVnLCAweDApOw0KPiArICAgICAgICAgICAgICAgfQ0KPiAr ICAgICAgICAgICAgICAgYnJlYWs7DQo+ICsgICAgICAgY2FzZSBSVFdfSENJX1RZUEVfU0RJTzoN Cj4gKyAgICAgICAgICAgICAgIC8qIFN0YWdpbmcgcG93ZXItb24gYW5kIFNldEFudFBhdGgoaW5p dCkgc2VxdWVuY2UgZm9yIHRoZQ0KPiArICAgICAgICAgICAgICAgICogaW50ZXJuYWwgc3dpdGNo OiBrZWVwIFdpRmkgVFJ4IGVuYWJsZWQsIGxldCBXaUZpIGNvbnRyb2wNCj4gKyAgICAgICAgICAg ICAgICAqIFMwL1MxIHRocm91Z2ggMHg2NCwgYW5kIHByb2dyYW0gdGhlIGZpcm13YXJlIGFudGVu bmEtaW52ZXJzZQ0KPiArICAgICAgICAgICAgICAgICogaGludCB3aXRoIEgyQyAweDY1IHR5cGUg MC4NCj4gKyAgICAgICAgICAgICAgICAqLw0KPiArICAgICAgICAgICAgICAgcnR3X3dyaXRlX3Jm KHJ0d2RldiwgUkZfUEFUSF9BLCBSRl9XTElOVCwgUkZSRUdfTUFTSywgMHgwNzgwKTsNCj4gKw0K PiArICAgICAgICAgICAgICAgcnR3X3dyaXRlOChydHdkZXYsIFJFR19CVF9BTlRfU0VMXzg3MjNC LCAweDIwKTsNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBSRUdfQlRfR05U X0JUXzg3MjNCLCAweDE4KTsNCj4gKyAgICAgICAgICAgICAgIHJ0d193cml0ZTgocnR3ZGV2LCBS RUdfQlRfV0xBTl9BQ1RfODcyM0IsIDB4NCk7DQo+ICsNCj4gKyAgICAgICAgICAgICAgIGlmIChh dXgpIHsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3ODcyM2JfY29leF93cml0ZV9iYl9z ZWxfYnRnKHJ0d2RldiwgMHgwKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3X3dyaXRl OChydHdkZXYsIFJFR19TRElPX0gyQywgMHgxKTsNCj4gKyAgICAgICAgICAgICAgIH0gZWxzZSB7 DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJ0dzg3MjNiX2NvZXhfd3JpdGVfYmJfc2VsX2J0 ZyhydHdkZXYsIDB4MjgwKTsNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcnR3X3dyaXRlOChy dHdkZXYsIFJFR19TRElPX0gyQywgMHgwKTsNCj4gKyAgICAgICAgICAgICAgIH0NCj4gKw0KPiAr ICAgICAgICAgICAgICAgcnR3ODcyM2JfY29leF9zZXRfYW50X2N0cmxfYnlfd2lmaShydHdkZXYp Ow0KPiArICAgICAgICAgICAgICAgcnR3X3dyaXRlOF9tYXNrKHJ0d2RldiwgUkVHX0FOVFNFTF9T V184NzIzQiwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCSVRfU1dfRFBEVF9T RUxfREFUQSwgMHgwKTsNCj4gKyAgICAgICAgICAgICAgIHJ0dzg3MjNiX2NvZXhfY2ZnX2FudF9i dWZmZXIocnR3ZGV2KTsNCj4gKyAgICAgICAgICAgICAgIHJ0dzg3MjNiX3NkaW9fcmVzdG9yZV9w YWRfY3RybChydHdkZXYsIGZhbHNlKTsNCj4gKw0KPiArICAgICAgICAgICAgICAgLyogSDJDIDB4 NjUgKENPRVhfQU5UX1NFTF9SU1YpIGlzIHNlbnQgZnJvbSB0aGUgcG9zdC1pbml0DQo+ICsgICAg ICAgICAgICAgICAgKiBibG9jayBpbiBydHdfcG93ZXJfb24oKSBhZnRlciAweDZFIChHTlRfQlQp LCBtYXRjaGluZw0KPiArICAgICAgICAgICAgICAgICogdmVuZG9yIHY1LjIuMTcgb3JkZXI6IDB4 NkQsMHg2RCwweDYwLDB4NkUsMHg2NSwweDYxLg0KPiArICAgICAgICAgICAgICAgICogVGhlIHJl Z2lzdGVyIHdyaXRlcyBhYm92ZSBzdGF5IGhlcmUgdG8gY29ycmVjdGx5DQo+ICsgICAgICAgICAg ICAgICAgKiBpbml0aWFsaXNlIFJGRS9hbnRlbm5hIGhhcmR3YXJlIGJlZm9yZSBJUUsuDQo+ICsg ICAgICAgICAgICAgICAgKi8NCj4gKyAgICAgICAgICAgICAgIGJyZWFrOw0KPiArICAgICAgIGRl ZmF1bHQ6DQo+ICsgICAgICAgICAgICAgICBicmVhazsNCj4gKyAgICAgICB9DQo+ICt9DQo+ICsN Cj4gK3N0YXRpYyB2b2lkIHJ0dzg3MjNiX2NvZXhfc2V0X3dsX3R4X3Bvd2VyKHN0cnVjdCBydHdf ZGV2ICpydHdkZXYsIHU4IHdsX3B3cikNCj4gK3sNCj4gKyAgICAgICAvKg0KPiArICAgICAgICAq IE5vdCBpbXBsZW1lbnRlZDogcnR3ODcyM2QgYWRqdXN0cyBXTCBUeCBwb3dlciAoMHhiMi8weDkw KSB3aGVuIEJUIGlzDQo+ICsgICAgICAgICogYWN0aXZlLiAgQ29leGlzdGVuY2UgcXVhbGl0eSBv bmx5LCBub3QgbmVlZGVkIGZvciBiYXNpYyBvcGVyYXRpb247DQo+ICsgICAgICAgICogZGVmZXJy ZWQgbGlrZSBjb2V4X3NldF93bF9yeF9nYWluLg0KPiArICAgICAgICAqLw0KPiArfQ0KPiArDQo+ ICtzdGF0aWMgdm9pZCBydHc4NzIzYl9jb2V4X3NldF93bF9yeF9nYWluKHN0cnVjdCBydHdfZGV2 ICpydHdkZXYsIGJvb2wgbG93X2dhaW4pDQo+ICt7DQo+ICsgICAgICAgLyoNCj4gKyAgICAgICAg KiBOb3QgaW1wbGVtZW50ZWQ6IHJ0dzg3MjNkIGxvd2VycyB0aGUgV0wgUnggQUdDIHZpYSBnYWlu IHRhYmxlcyB3aGVuDQo+ICsgICAgICAgICogQlQgaXMgYWN0aXZlLiAgVGhpcyBvbmx5IGFmZmVj dHMgV2lGaS9CVCBjb2V4aXN0ZW5jZSBxdWFsaXR5IHVuZGVyDQo+ICsgICAgICAgICogY29uY3Vy cmVudCBCVCB0cmFmZmljLCBub3QgYmFzaWMgb3BlcmF0aW9uOyBkZWZlcnJlZC4NCj4gKyAgICAg ICAgKi8NCj4gK30NCj4gKw0KPiArc3RhdGljIHZvaWQgcnR3ODcyM2JfY2ZnX2xkbzI1KHN0cnVj dCBydHdfZGV2ICpydHdkZXYsIGJvb2wgZW5hYmxlKQ0KPiArew0KPiArICAgICAgIC8qDQo+ICsg ICAgICAgICogSW50ZW50aW9uYWxseSBlbXB0eSBvbiA4NzIzYnMuICBUaGUgMi41ViBlZnVzZSBM RE8gKEVGVVNFX1RFU1QrMykgaXMNCj4gKyAgICAgICAgKiBvbmx5IGVuYWJsZWQgYnkgdGhlIHZl bmRvcidzIEhhbF9FZnVzZVBvd2VyU3dpdGNoIHdoZW4gKndyaXRpbmcqIHRoZQ0KPiArICAgICAg ICAqIGVmdXNlIChndWFyZGVkIGJ5IGJXcml0ZSA9PSBUUlVFKS4gIHJ0dzg4IG9ubHkgZXZlciBy ZWFkcyB0aGUgZWZ1c2UsDQo+ICsgICAgICAgICogYW5kIHRoZSB2ZW5kb3Igc2tpcHMgdGhlIExE TyB3cml0ZSBvbiB0aGUgcmVhZCBwYXRoIHRvbywgc28gdGhlcmUgaXMNCj4gKyAgICAgICAgKiBu b3RoaW5nIHRvIGRvIGhlcmUuDQo+ICsgICAgICAgICovDQo+ICt9DQo+ICsNCj4gK3N0YXRpYyB2 b2lkIHJ0dzg3MjNiX2ZpbGxfdHhkZXNjX2NoZWNrc3VtKHN0cnVjdCBydHdfZGV2ICpydHdkZXYs DQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBydHdf dHhfcGt0X2luZm8gKnBrdF9pbmZvLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1OCAqdHhkZXNjKQ0KPiArew0KPiArICAgICAgIHN0cnVjdCBydHdfdHhfZGVz YyAqdHhfZGVzYyA9IChzdHJ1Y3QgcnR3X3R4X2Rlc2MgKil0eGRlc2M7DQo+ICsgICAgICAgY29u c3QgdTggKmRhdGEgPSB0eGRlc2M7DQo+ICsgICAgICAgdTE2IGNoZWNrc3VtID0gMDsNCj4gKyAg ICAgICBpbnQgd29yZHMgPSAzMiAvIDI7DQo+ICsNCj4gKyAgICAgICAvKiBVbmxpa2UgdGhlIHNo YXJlZCA4NzIzeCBoZWxwZXIsIHRoZSA4NzIzQiBkb2VzIG5vdCBpbnZlcnQgdGhlIFhPUg0KPiAr ICAgICAgICAqIGNoZWNrc3VtIG92ZXIgdGhlIGZpcnN0IDE2IGhhbGYtd29yZHMgb2YgdGhlIFRY IGRlc2NyaXB0b3IuDQo+ICsgICAgICAgICovDQo+ICsgICAgICAgbGUzMnBfcmVwbGFjZV9iaXRz KCZ0eF9kZXNjLT53NywgMCwgUlRXX1RYX0RFU0NfVzdfVFhERVNDX0NIRUNLU1VNKTsNCj4gKw0K PiArICAgICAgIHdoaWxlICh3b3Jkcy0tKSB7DQo+ICsgICAgICAgICAgICAgICBjaGVja3N1bSBe PSBnZXRfdW5hbGlnbmVkX2xlMTYoZGF0YSk7DQo+ICsgICAgICAgICAgICAgICBkYXRhICs9IHNp emVvZihfX2xlMTYpOw0KPiArICAgICAgIH0NCj4gKw0KPiArICAgICAgIGxlMzJwX3JlcGxhY2Vf Yml0cygmdHhfZGVzYy0+dzcsIGNoZWNrc3VtLA0KPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBSVFdfVFhfREVTQ19XN19UWERFU0NfQ0hFQ0tTVU0pOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMg Y29uc3Qgc3RydWN0IHJ0d19jaGlwX29wcyBydHc4NzIzYl9vcHMgPSB7DQo+ICsgICAgICAgLnBv d2VyX29uICAgICAgICAgICAgICAgPSBydHdfcG93ZXJfb24sDQo+ICsgICAgICAgLnBvd2VyX29m ZiAgICAgICAgICAgICAgPSBydHdfcG93ZXJfb2ZmLA0KPiArDQo+ICsgICAgICAgLm1hY19pbml0 ICAgICAgICAgICAgICAgPSBydHc4NzIzYl9tYWNfaW5pdCwNCj4gKyAgICAgICAubWFjX3Bvc3Rp bml0ICAgICAgICAgICA9IHJ0dzg3MjN4X21hY19wb3N0aW5pdCwNCj4gKw0KPiArICAgICAgIC5k dW1wX2Z3X2NyYXNoICAgICAgICAgID0gTlVMTCwNCj4gKyAgICAgICAvKiA4NzIzZCBzZXRzIFJF R19IQ0lfT1BUX0NUUkwgdG8gQklUX1VTQl9TVVNfRElTIGluDQo+ICsgICAgICAgICogaXRzIHNo dXRkb3duIGZ1YmN0aW9uLCBub3QgbmVlZGVkIGZvciBTRElPIGRldmljZXMuDQo+ICsgICAgICAg ICovDQo+ICsgICAgICAgLnNodXRkb3duICAgICAgICAgICAgICAgPSBOVUxMLA0KPiArICAgICAg IC5yZWFkX2VmdXNlICAgICAgICAgICAgID0gcnR3ODcyM3hfcmVhZF9lZnVzZSwNCj4gKyAgICAg ICAucGh5X3NldF9wYXJhbSAgICAgICAgICA9IHJ0dzg3MjNiX3BoeV9zZXRfcGFyYW0sDQo+ICsN Cj4gKyAgICAgICAuc2V0X2NoYW5uZWwgICAgICAgICAgICA9IHJ0dzg3MjNiX3NldF9jaGFubmVs LA0KPiArDQo+ICsgICAgICAgLnF1ZXJ5X3BoeV9zdGF0dXMgICAgICAgPSBydHc4NzIzYl9xdWVy eV9waHlfc3RhdHVzLA0KPiArICAgICAgIC5yZWFkX3JmICAgICAgICAgICAgICAgID0gcnR3X3Bo eV9yZWFkX3JmX3NpcGksDQo+ICsgICAgICAgLndyaXRlX3JmICAgICAgICAgICAgICAgPSBydHdf cGh5X3dyaXRlX3JmX3JlZ19zaXBpLA0KPiArICAgICAgIC5zZXRfdHhfcG93ZXJfaW5kZXggICAg ID0gcnR3ODcyM3hfc2V0X3R4X3Bvd2VyX2luZGV4LA0KPiArICAgICAgIC5yc3ZkX3BhZ2VfZHVt cCAgICAgICAgID0gTlVMTCwNCj4gKyAgICAgICAuc2V0X2FudGVubmEgICAgICAgICAgICA9IE5V TEwsDQo+ICsgICAgICAgLmNmZ19sZG8yNSAgICAgICAgICAgICAgPSBydHc4NzIzYl9jZmdfbGRv MjUsDQo+ICsgICAgICAgLmVmdXNlX2dyYW50ICAgICAgICAgICAgPSBydHc4NzIzYl9lZnVzZV9n cmFudCwNCj4gKyAgICAgICAuc2V0X2FtcGR1X2ZhY3RvciAgICAgICA9IE5VTEwsDQo+ICsgICAg ICAgLmZhbHNlX2FsYXJtX3N0YXRpc3RpY3MgPSBydHc4NzIzeF9mYWxzZV9hbGFybV9zdGF0aXN0 aWNzLA0KPiArICAgICAgIC5waHlfY2FsaWJyYXRpb24gICAgICAgID0gcnR3ODcyM2JfcGh5X2Nh bGlicmF0aW9uLA0KPiArICAgICAgIC5kcGtfdHJhY2sgICAgICAgICAgICAgID0gTlVMTCwNCj4g KyAgICAgICAvKg0KPiArICAgICAgICAqIDg3MjNkIHVzZXMgUkVHX0NTUkFUSU8gdG8gc2V0IGRt X2luZm8uY2NrX3BkX2RlZmF1bHQgZm9yIGl0cw0KPiArICAgICAgICAqIGNja19wZF9zZXQuICBQ ZXIgdGhlIHZlbmRvciBjb21tZW50cyB0aGF0IHJlZ2lzdGVyIGRvZXMgbm90IGV4aXN0IGluDQo+ ICsgICAgICAgICogdGhpcyBjaGlwIGdlbmVyYXRpb24gKG9ubHkgMHhhMGEgIk9ETV9DQ0tfUERf VEhSRVNIIiwgd3JpdGUtb25seSksDQo+ICsgICAgICAgICogc28gdGhlcmUgaXMgbm90aGluZyB0 byByZWFkIGJhY2suICBUaGUgc2libGluZyBydHc4NzAzYiAoc2FtZQ0KPiArICAgICAgICAqIGdl bmVyYXRpb24pIGFsc28gbGVhdmVzIHRoaXMgTlVMTCwgY29uZmlybWluZyBpdCBhcHBsaWVzIHRv IDg3MjNiLg0KPiArICAgICAgICAqLw0KPiArICAgICAgIC5jY2tfcGRfc2V0ICAgICAgICAgICAg ID0gTlVMTCwNCj4gKyAgICAgICAucHdyX3RyYWNrICAgICAgICAgICAgICA9IHJ0dzg3MjNiX3B3 cl90cmFjaywNCj4gKyAgICAgICAuY29uZmlnX2JmZWUgICAgICAgICAgICA9IE5VTEwsDQo+ICsg ICAgICAgLnNldF9naWRfdGFibGUgICAgICAgICAgPSBOVUxMLA0KPiArICAgICAgIC5jZmdfY3Np X3JhdGUgICAgICAgICAgID0gTlVMTCwNCj4gKyAgICAgICAuYWRhcHRpdml0eV9pbml0ICAgICAg ICA9IE5VTEwsDQo+ICsgICAgICAgLmFkYXB0aXZpdHkgICAgICAgICAgICAgPSBOVUxMLA0KPiAr ICAgICAgIC5jZm9faW5pdCAgICAgICAgICAgICAgID0gTlVMTCwNCj4gKyAgICAgICAuY2ZvX3Ry YWNrICAgICAgICAgICAgICA9IE5VTEwsDQo+ICsgICAgICAgLmNvbmZpZ190eF9wYXRoICAgICAg ICAgPSBOVUxMLA0KPiArICAgICAgIC5jb25maWdfdHhyeF9tb2RlICAgICAgID0gTlVMTCwNCj4g KyAgICAgICAubGVkX3NldCAgICAgICAgICAgICAgICA9IE5VTEwsDQo+ICsgICAgICAgLmZpbGxf dHhkZXNjX2NoZWNrc3VtICAgPSBydHc4NzIzYl9maWxsX3R4ZGVzY19jaGVja3N1bSwNCj4gKw0K PiArICAgICAgIC5jb2V4X3NldF9pbml0ICAgICAgICAgID0gcnR3ODcyM2JfY29leF9jZmdfaW5p dCwNCj4gKyAgICAgICAuY29leF9zZXRfYW50X3N3aXRjaCAgICA9IHJ0dzg3MjNiX2NvZXhfY2Zn X2FudF9zd2l0Y2gsDQo+ICsgICAgICAgLmNvZXhfc2V0X2dudF9maXggICAgICAgPSBydHc4NzIz Yl9jb2V4X3NldF9nbnRfZml4LA0KPiArICAgICAgIC5jb2V4X3NldF9nbnRfZGVidWcgICAgID0g cnR3ODcyM2JfY29leF9zZXRfZ250X2RlYnVnLA0KPiArICAgICAgIC5jb2V4X3NldF9yZmVfdHlw ZSAgICAgID0gcnR3ODcyM2JfY29leF9zZXRfcmZlX3R5cGUsDQo+ICsgICAgICAgLmNvZXhfc2V0 X3dsX3R4X3Bvd2VyICAgPSBydHc4NzIzYl9jb2V4X3NldF93bF90eF9wb3dlciwNCj4gKyAgICAg ICAuY29leF9zZXRfd2xfcnhfZ2FpbiAgICA9IHJ0dzg3MjNiX2NvZXhfc2V0X3dsX3J4X2dhaW4s DQo+ICt9Ow0KPiArDQo+ICtjb25zdCBzdHJ1Y3QgcnR3X2NoaXBfaW5mbyBydHc4NzIzYl9od19z cGVjID0gew0KPiArICAgICAgIC5vcHMgPSAmcnR3ODcyM2Jfb3BzLA0KPiArICAgICAgIC5pZCA9 IFJUV19DSElQX1RZUEVfODcyM0IsDQo+ICsgICAgICAgLmZ3X25hbWUgPSAicnR3ODgvcnR3ODcy M2JfZncuYmluIiwNCj4gKyAgICAgICAud2xhbl9jcHUgPSBSVFdfV0NQVV84MDUxLA0KPiArICAg ICAgIC50eF9wa3RfZGVzY19zeiA9IDQwLA0KPiArICAgICAgIC50eF9idWZfZGVzY19zeiA9IDE2 LA0KPiArICAgICAgIC5yeF9wa3RfZGVzY19zeiA9IDI0LA0KPiArICAgICAgIC5yeF9idWZfZGVz Y19zeiA9IDgsDQo+ICsgICAgICAgLnBoeV9lZnVzZV9zaXplID0gNTEyLA0KPiArICAgICAgIC5s b2dfZWZ1c2Vfc2l6ZSA9IDUxMiwNCj4gKyAgICAgICAucHRjdF9lZnVzZV9zaXplID0gMTUsICAv KiB2ZW5kb3I6IEVGVVNFX09PQl9QUk9URUNUX0JZVEVTICovDQo+ICsNCj4gKyAgICAgICAudHhm Zl9zaXplID0gMzI3NjgsICAgICAvKiB2ZW5kb3I6IFRYX0RNQV9TSVpFXzg3MjNCIDB4ODAwMCAq Lw0KPiArICAgICAgIC5yeGZmX3NpemUgPSAxNjM4NCwgICAgIC8qIHZlbmRvcjogUlhfRE1BX1NJ WkVfODcyM0IgMHg0MDAwICovDQo+ICsgICAgICAgLnJzdmRfZHJ2X3BnX251bSA9IDgsDQo+ICsN Cj4gKyAgICAgICAudHhnaV9mYWN0b3IgPSAxLA0KPiArICAgICAgIC5pc19wd3JfYnlfcmF0ZV9k ZWMgPSB0cnVlLA0KPiArICAgICAgIC5yeF9sZHBjID0gZmFsc2UsDQo+ICsgICAgICAgLnR4X3N0 YmMgPSBmYWxzZSwNCj4gKw0KPiArICAgICAgIC5tYXhfcG93ZXJfaW5kZXggPSAweDNmLA0KPiAr DQo+ICsgICAgICAgLmNzaV9idWZfcGdfbnVtID0gMCwNCj4gKyAgICAgICAuYmFuZCA9IFJUV19C QU5EXzJHLA0KPiArICAgICAgIC5wYWdlX3NpemUgPSBUWF9QQUdFX1NJWkUsDQo+ICsNCj4gKyAg ICAgICAuZGlnX21pbiA9IDB4MjAsDQo+ICsgICAgICAgLnVzYl90eF9hZ2dfZGVzY19udW0gPSAx LA0KPiArDQo+ICsgICAgICAgLyogdmVuZG9yIGZ1bmN0aW9uIGhhbF9yZWFkX21hY19oaWRkZW5f cnB0IGlzIG5vdCBjYWxsZWQgaW4gdGhlDQo+ICsgICAgICAgICogcnRsODcyM2JzIGRyaXZlciwg YWxzbyB3aGVuIHRydWUgbWFpbi5jOnJ0d19kdW1wX2h3X2ZlYXR1cmUgZmFpbHMsDQo+ICsgICAg ICAgICogYmVjYXVzZSBmaXJtd2FyZSByZXBvcnRzIGlkPTB4ZmQgaW5zdGVhZCBvZiBDMkhfSFdf RkVBVFVSRV9SRVBPUlQsDQo+ICsgICAgICAgICogc28gc2VlbXMgbm90IHN1cHBvcnRlZA0KPiAr ICAgICAgICAqLw0KPiArICAgICAgIC5od19mZWF0dXJlX3JlcG9ydCA9IGZhbHNlLA0KPiArDQo+ ICsgICAgICAgLmMyaF9yYV9yZXBvcnRfc2l6ZSA9IDQsICAgICAgICAvKiBydHc4OC9ydHc4NzIz Yl9mdy5iaW4gdjQxIGVtaXRzIHRoZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICogbGVnYWN5IDgwNTEgNC1ieXRlIHJhdGUgcmVwb3J0DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAocmF0ZV9zZ2ksIG1hY19pZCwgYnl0ZTIs IHN0YXR1cykuDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBT ZXR0aW5nIHRoaXMgdG8gNyDigJQgbGlrZSB0aGUgdXBzdHJlYW0NCj4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAqIGRlZmF1bHQg4oCUIGNhdXNlZCBldmVyeSBDMkhf UkFfUkVQT1JUDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiB0 byBiZSBkcm9wcGVkIHdpdGgNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAqICJzaG9ydCByYSByZXBvcnQgYzJoIGxlbmd0aCA0DQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKiBleHBlY3RlZCA3IiBvbiBldmVyeSBjb25uZWN0IGF0 dGVtcHQNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHNvIHRo ZSBmaXJtd2FyZS1kcml2ZW4gcmF0ZSBhZGFwdGF0aW9uDQo+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKiBmZWVkYmFjayBwYXRoDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKiBuZXZlciB1cGRhdGVkIHNpLT5yYV9yZXBvcnQuIFRo ZQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogbGVnYWN5IDgw NTEgODcyM2IvODcwM2IvODcyM2QgZmlybXdhcmUNCj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqIHVzZXMgdGhlIHNhbWUgNC1ieXRlIGZvcm1hdCBhcyB0aGUNCj4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIG9sZGVyIDg4MjFhLzg4 MTJhIGNoaXBzLiBieXRlNC4uYncgZmFsbA0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICogYmFjayB0byB0aGUgcGVyLXN0YXRpb24gZGVmYXVsdHMgaW4NCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJ0d19md19yYV9yZXBvcnRf aXRlcigpLCB3aGljaCBtYXRjaGVzDQo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKiB3aGF0IHRob3NlIGNoaXBzIGFscmVhZHkgZG8gc2FmZWx5Lg0KPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovDQo+ICsgICAgICAgLm9sZF9kYXRh cmF0ZV9mYl9saW1pdCA9IHRydWUsICAvKiBsaWtlbHkgdHJ1ZTsgc2VlIG1haW4tbGluZSBjb21t aXQgYzc3MDZiMSAqLw0KPiArDQo+ICsgICAgICAgLnBhdGhfZGl2X3N1cHBvcnRlZCA9IGZhbHNl LA0KPiArICAgICAgIC5odF9zdXBwb3J0ZWQgPSB0cnVlLA0KPiArICAgICAgIC52aHRfc3VwcG9y dGVkID0gZmFsc2UsDQo+ICsgICAgICAgLmxwc19kZWVwX21vZGVfc3VwcG9ydGVkID0gMCwNCj4g Kw0KPiArICAgICAgIC5zeXNfZnVuY19lbiA9IDB4ZmQsDQo+ICsgICAgICAgLnB3cl9vbl9zZXEg PSBjYXJkX2VuYWJsZV9mbG93Xzg3MjNiLA0KPiArICAgICAgIC5wd3Jfb2ZmX3NlcSA9IGNhcmRf ZGlzYWJsZV9mbG93Xzg3MjNiLA0KPiArICAgICAgIC5wYWdlX3RhYmxlID0gcGFnZV90YWJsZV84 NzIzYiwNCj4gKw0KPiArICAgICAgIC5ycXBuX3RhYmxlID0gcnFwbl90YWJsZV84NzIzYiwNCj4g KyAgICAgICAvKiBzYW1lIHNoYXJlZCB0YWJsZSBhcyB0aGUgc2libGluZyBydHc4NzAzYiBhbmQg cnR3ODcyM2QgKi8NCj4gKyAgICAgICAucHJpb3FfYWRkcnMgPSAmcnR3ODcyM3hfY29tbW9uLnBy aW9xX2FkZHJzLA0KPiArDQo+ICsgICAgICAgLyogdXNlZCBvbmx5IGluIHBjaS5jLCBub3QgbmVl ZGVkIGZvciBTRElPIGRldmljZXMgKi8NCj4gKyAgICAgICAuaW50Zl90YWJsZSA9IE5VTEwsDQo+ ICsNCj4gKyAgICAgICAuZGlnID0gcnR3ODcyM3hfY29tbW9uLmRpZywNCj4gKyAgICAgICAuZGln X2NjayA9IHJ0dzg3MjN4X2NvbW1vbi5kaWdfY2NrLA0KPiArDQo+ICsgICAgICAgLnJmX3NpcGlf YWRkciA9IHsweDg0MCwgMHg4NDR9LA0KPiArICAgICAgIC5yZl9zaXBpX3JlYWRfYWRkciA9IHJ0 dzg3MjN4X2NvbW1vbi5yZl9zaXBpX2FkZHIsDQo+ICsNCj4gKyAgICAgICAuZml4X3JmX3BoeV9u dW0gPSAyLA0KPiArDQo+ICsgICAgICAgLyogdGhlcmUgYXJlIG5vIHRyYWNlcyBvZiBsdGUgY29l eCByZWdpc3RlcnMgaW4gdGhlIHZlbmRvciBkcml2ZXIgKi8NCj4gKyAgICAgICAubHRlY29leF9h ZGRyID0gTlVMTCwNCj4gKw0KPiArICAgICAgIC5tYWNfdGJsID0gJnJ0dzg3MjNiX21hY190Ymws DQo+ICsgICAgICAgLmFnY190YmwgPSAmcnR3ODcyM2JfYWdjX3RibCwNCj4gKyAgICAgICAuYmJf dGJsID0gJnJ0dzg3MjNiX2JiX3RibCwNCj4gKyAgICAgICAucmZfdGJsID0geyZydHc4NzIzYl9y Zl9hX3RibH0sDQo+ICsNCj4gKyAgICAgICAucmZlX2RlZnMgPSBydHc4NzIzYl9yZmVfZGVmcywN Cj4gKyAgICAgICAucmZlX2RlZnNfc2l6ZSA9IEFSUkFZX1NJWkUocnR3ODcyM2JfcmZlX2RlZnMp LA0KPiArICAgICAgIC5pcWtfdGhyZXNob2xkID0gOCwNCj4gKyAgICAgICAuYW1wZHVfZGVuc2l0 eSA9IElFRUU4MDIxMV9IVF9NUERVX0RFTlNJVFlfMTYsDQo+ICsgICAgICAgLm1heF9zY2FuX2ll X2xlbiA9IElFRUU4MDIxMV9NQVhfREFUQV9MRU4sDQo+ICsNCj4gKyAgICAgICAuY29leF9wYXJh X3ZlciA9IDIwMTgwMjAxLCAgICAgIC8qIGdsY29leF92ZXJfZGF0ZV84NzIzYl8xYW50ICovDQo+ ICsgICAgICAgLmJ0X2Rlc2lyZWRfdmVyID0gMHg2ZiwgICAgICAgICAvKiBidXQgZm9yIDIgYW50 IGl0J3MgMHg1MiAqLw0KPiArICAgICAgIC5zY2JkX3N1cHBvcnQgPSB0cnVlLA0KPiArICAgICAg IC5uZXdfc2NiZDEwX2RlZiA9IHRydWUsDQo+ICsgICAgICAgLmJsZV9oaWRfcHJvZmlsZV9zdXBw b3J0ID0gZmFsc2UsDQo+ICsgICAgICAgLndsX21pbW9fcHNfc3VwcG9ydCA9IGZhbHNlLA0KPiAr ICAgICAgIC5wc3RkbWFfdHlwZSA9IENPRVhfUFNURE1BX0ZPUkNFX0xQU09GRiwNCj4gKyAgICAg ICAuYnRfcnNzaV90eXBlID0gQ09FWF9CVFJTU0lfUkFUSU8sDQo+ICsgICAgICAgLmFudF9pc29s YXRpb24gPSAxNSwNCj4gKyAgICAgICAucnNzaV90b2xlcmFuY2UgPSAyLA0KPiArICAgICAgIC53 bF9yc3NpX3N0ZXAgPSB3bF9yc3NpX3N0ZXBfODcyM2IsDQo+ICsgICAgICAgLmJ0X3Jzc2lfc3Rl cCA9IGJ0X3Jzc2lfc3RlcF84NzIzYiwNCj4gKyAgICAgICAudGFibGVfc2FudF9udW0gPSBBUlJB WV9TSVpFKHRhYmxlX3NhbnRfODcyM2IpLA0KPiArICAgICAgIC50YWJsZV9zYW50ID0gdGFibGVf c2FudF84NzIzYiwNCj4gKyAgICAgICAudGFibGVfbnNhbnRfbnVtID0gQVJSQVlfU0laRSh0YWJs ZV9uc2FudF84NzIzYiksDQo+ICsgICAgICAgLnRhYmxlX25zYW50ID0gdGFibGVfbnNhbnRfODcy M2IsDQo+ICsgICAgICAgLnRkbWFfc2FudF9udW0gPSBBUlJBWV9TSVpFKHRkbWFfc2FudF84NzIz YiksDQo+ICsgICAgICAgLnRkbWFfc2FudCA9IHRkbWFfc2FudF84NzIzYiwNCj4gKyAgICAgICAu dGRtYV9uc2FudF9udW0gPSBBUlJBWV9TSVpFKHRkbWFfbnNhbnRfODcyM2IpLA0KPiArICAgICAg IC50ZG1hX25zYW50ID0gdGRtYV9uc2FudF84NzIzYiwNCj4gKyAgICAgICAud2xfcmZfcGFyYV9u dW0gPSBBUlJBWV9TSVpFKHJmX3BhcmFfdHhfODcyM2IpLA0KPiArICAgICAgIC53bF9yZl9wYXJh X3R4ID0gcmZfcGFyYV90eF84NzIzYiwNCj4gKyAgICAgICAud2xfcmZfcGFyYV9yeCA9IHJmX3Bh cmFfcnhfODcyM2IsDQo+ICsgICAgICAgLmJ0X2FmaF9zcGFuX2J3MjAgPSAweDIwLA0KPiArICAg ICAgIC5idF9hZmhfc3Bhbl9idzQwID0gMHgzMCwNCj4gKyAgICAgICAuYWZoXzVnX251bSA9ICBB UlJBWV9TSVpFKGFmaF81Z184NzIzYiksDQo+ICsgICAgICAgLmFmaF81ZyA9IGFmaF81Z184NzIz YiwNCj4gKyAgICAgICAvKiBSRUdfQlRHX1NFTCBkb2Vzbid0IHNlZW0gdG8gaGF2ZSBhIGNvdW50 ZXJwYXJ0IGluIHRoZQ0KPiArICAgICAgICAqIHZlbmRvciBkcml2ZXIuIE1hdGhlbWF0aWNhbGx5 IGl0J3MgUkVHX1BBRF9DVFJMMSArIDMuDQo+ICsgICAgICAgICoNCj4gKyAgICAgICAgKiBJdCBp cyB1c2VkIGluIHRoZSBjYXJkZW11X3RvX2FjdCBwb3dlciBzZXF1ZW5jZSBieSB0aG91Z2gNCj4g KyAgICAgICAgKiAoYnkgYWRkcmVzcywgMHgwMDY3KSwgY29tbWVudDogIjB4NjdbMF0gPSAwIHRv IGRpc2FibGUNCj4gKyAgICAgICAgKiBCVF9HUFNfU0VMIHBpbnMiIFRoYXQgc2VlbXMgdG8gZml0 Lg0KPiArICAgICAgICAqLw0KPiArICAgICAgIC5idGdfcmVnID0gTlVMTCwNCj4gKw0KPiArICAg ICAgIC8qIFRoZXNlIHJlZ2lzdGVycyBhcmUgdXNlZCB0byByZWFkIChhbmQgcHJpbnQpIGZyb20g aWYNCj4gKyAgICAgICAgKiBDT05GSUdfUlRXODhfREVCVUdGUyBpcyBlbmFibGVkLg0KPiArICAg ICAgICAqLw0KPiArICAgICAgIC5jb2V4X2luZm9faHdfcmVnc19udW0gPSAwLA0KPiArICAgICAg IC5jb2V4X2luZm9faHdfcmVncyA9IE5VTEwsDQo+ICt9Ow0KPiArRVhQT1JUX1NZTUJPTChydHc4 NzIzYl9od19zcGVjKTsNCj4gKw0KPiArTU9EVUxFX0ZJUk1XQVJFKCJydHc4OC9ydHc4NzIzYl9m dy5iaW4iKTsNCj4gKw0KPiArTU9EVUxFX0FVVEhPUigiTHVrYSBHZWphayA8bHVrYS5nZWpha0Bs aW51eC5kZXY+Iik7DQo+ICtNT0RVTEVfQVVUSE9SKCJNaWNoYWVsIFN0cmF1YmUgPHN0cmF1YmUu bGludXhAZ21haWwuY29tPiIpOw0KPiArTU9EVUxFX0RFU0NSSVBUSU9OKCJSZWFsdGVrIDgwMi4x MW4gd2lyZWxlc3MgODcyM2IgZHJpdmVyIik7DQo+ICtNT0RVTEVfTElDRU5TRSgiRHVhbCBCU0Qv R1BMIik7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4 L3J0dzg3MjNiLmgNCj4gYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3 MjNiLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwMDAwLi4yODgw ZDQxZTRiMDENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9y ZWFsdGVrL3J0dzg4L3J0dzg3MjNiLmgNCj4gQEAgLTAsMCArMSwxNiBAQA0KPiArLyogU1BEWC1M aWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNlICovDQo+ICsvKiBDb3B5 cmlnaHQoYykgMjAxOC0yMDE5ICBSZWFsdGVrIENvcnBvcmF0aW9uDQoNCkNvcHlyaWdodChjKSBS ZWFsdGVrIENvcnBvcmF0aW9uDQoNCj4gKyAqLw0KPiArDQo+ICsjaWZuZGVmIF9fUlRXODcyM0Jf SF9fDQo+ICsjZGVmaW5lIF9fUlRXODcyM0JfSF9fDQo+ICsNCj4gKyNpbmNsdWRlICJydHc4NzIz eC5oIg0KPiArDQo+ICtleHRlcm4gY29uc3Qgc3RydWN0IHJ0d19jaGlwX2luZm8gcnR3ODcyM2Jf aHdfc3BlYzsNCj4gKw0KPiArLyogc2hhcmVkIHdpdGggcnR3ODcwM2IuYzsgY291bGQgbW92ZSB0 byBydHc4NzIzeC5oICovDQo+ICsjZGVmaW5lIFJFR19UWElRS19NQVRSSVhCX0xTQjJfMTFOIDB4 MGM5Yw0KPiArI2RlZmluZSBSRUdfQkJfUFdSX1NBVjVfMTFOIDB4MDgxOA0KPiArDQo+ICsjZW5k aWYNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3 ODcyM2JfdGFibGUuYw0KPiBiL2RyaXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3 ODcyM2JfdGFibGUuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleCAwMDAwMDAwMDAw MDAuLmU2YmRiY2MwMjNlMA0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2RyaXZlcnMvbmV0L3dp cmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2JfdGFibGUuYw0KPiBAQCAtMCwwICsxLDg1OCBA QA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMtQ2xhdXNl DQoNCkNvcHlyaWdodChjKSBSZWFsdGVrIENvcnBvcmF0aW9uDQoNCj4gKy8qIENvcHlyaWdodChj KSBNaWNoYWVsIFN0cmF1YmUgPHN0cmF1YmUubGludXhAZ21haWwuY29tPiAqLw0KPiArLyogQ29w eXJpZ2h0KGMpIDIwMjQtMjAyNiBMdWthIEdlamFrIDxsdWthLmdlamFrQGxpbnV4LmRldj4gKi8N Cj4gKw0KPiArI2luY2x1ZGUgIm1haW4uaCINCj4gKyNpbmNsdWRlICJwaHkuaCINCj4gKyNpbmNs dWRlICJydHc4NzIzYl90YWJsZS5oIg0KPiArDQo+ICtzdGF0aWMgY29uc3QgdTMyIHJ0dzg3MjNi X21hY1tdID0gew0KPiArICAgICAgIDB4MDJGLCAweDAwMDAwMDMwLA0KPiArICAgICAgIDB4MDM1 LCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4MDM5LCAweDAwMDAwMDA4LA0KPiArICAgICAgIDB4 MDY0LCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4MDY3LCAweDAwMDAwMDIwLA0KPiArICAgICAg IDB4NDIxLCAweDAwMDAwMDBGLA0KPiArICAgICAgIDB4NDI4LCAweDAwMDAwMDBBLA0KPiArICAg ICAgIDB4NDI5LCAweDAwMDAwMDEwLA0KPiArICAgICAgIDB4NDMwLCAweDAwMDAwMDAwLA0KPiAr ICAgICAgIDB4NDMxLCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NDMyLCAweDAwMDAwMDAwLA0K PiArICAgICAgIDB4NDMzLCAweDAwMDAwMDAxLA0KPiArICAgICAgIDB4NDM0LCAweDAwMDAwMDA0 LA0KPiArICAgICAgIDB4NDM1LCAweDAwMDAwMDA1LA0KPiArICAgICAgIDB4NDM2LCAweDAwMDAw MDA3LA0KPiArICAgICAgIDB4NDM3LCAweDAwMDAwMDA4LA0KPiArICAgICAgIDB4NDNDLCAweDAw MDAwMDA0LA0KPiArICAgICAgIDB4NDNELCAweDAwMDAwMDA1LA0KPiArICAgICAgIDB4NDNFLCAw eDAwMDAwMDA3LA0KPiArICAgICAgIDB4NDNGLCAweDAwMDAwMDA4LA0KPiArICAgICAgIDB4NDQw LCAweDAwMDAwMDVELA0KPiArICAgICAgIDB4NDQxLCAweDAwMDAwMDAxLA0KPiArICAgICAgIDB4 NDQyLCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NDQ0LCAweDAwMDAwMDEwLA0KPiArICAgICAg IDB4NDQ1LCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NDQ2LCAweDAwMDAwMDAwLA0KPiArICAg ICAgIDB4NDQ3LCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NDQ4LCAweDAwMDAwMDAwLA0KPiAr ICAgICAgIDB4NDQ5LCAweDAwMDAwMEYwLA0KPiArICAgICAgIDB4NDRBLCAweDAwMDAwMDBGLA0K PiArICAgICAgIDB4NDRCLCAweDAwMDAwMDNFLA0KPiArICAgICAgIDB4NDRDLCAweDAwMDAwMDEw LA0KPiArICAgICAgIDB4NDRELCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NDRFLCAweDAwMDAw MDAwLA0KPiArICAgICAgIDB4NDRGLCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NDUwLCAweDAw MDAwMDAwLA0KPiArICAgICAgIDB4NDUxLCAweDAwMDAwMEYwLA0KPiArICAgICAgIDB4NDUyLCAw eDAwMDAwMDBGLA0KPiArICAgICAgIDB4NDUzLCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NDU2 LCAweDAwMDAwMDVFLA0KPiArICAgICAgIDB4NDYwLCAweDAwMDAwMDY2LA0KPiArICAgICAgIDB4 NDYxLCAweDAwMDAwMDY2LA0KPiArICAgICAgIDB4NEM4LCAweDAwMDAwMEZGLA0KPiArICAgICAg IDB4NEM5LCAweDAwMDAwMDA4LA0KPiArICAgICAgIDB4NENDLCAweDAwMDAwMEZGLA0KPiArICAg ICAgIDB4NENELCAweDAwMDAwMEZGLA0KPiArICAgICAgIDB4NENFLCAweDAwMDAwMDAxLA0KPiAr ICAgICAgIDB4NTAwLCAweDAwMDAwMDI2LA0KPiArICAgICAgIDB4NTAxLCAweDAwMDAwMEEyLA0K PiArICAgICAgIDB4NTAyLCAweDAwMDAwMDJGLA0KPiArICAgICAgIDB4NTAzLCAweDAwMDAwMDAw LA0KPiArICAgICAgIDB4NTA0LCAweDAwMDAwMDI4LA0KPiArICAgICAgIDB4NTA1LCAweDAwMDAw MEEzLA0KPiArICAgICAgIDB4NTA2LCAweDAwMDAwMDVFLA0KPiArICAgICAgIDB4NTA3LCAweDAw MDAwMDAwLA0KPiArICAgICAgIDB4NTA4LCAweDAwMDAwMDJCLA0KPiArICAgICAgIDB4NTA5LCAw eDAwMDAwMEE0LA0KPiArICAgICAgIDB4NTBBLCAweDAwMDAwMDVFLA0KPiArICAgICAgIDB4NTBC LCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NTBDLCAweDAwMDAwMDRGLA0KPiArICAgICAgIDB4 NTBELCAweDAwMDAwMEE0LA0KPiArICAgICAgIDB4NTBFLCAweDAwMDAwMDAwLA0KPiArICAgICAg IDB4NTBGLCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4NTEyLCAweDAwMDAwMDFDLA0KPiArICAg ICAgIDB4NTE0LCAweDAwMDAwMDBBLA0KPiArICAgICAgIDB4NTE2LCAweDAwMDAwMDBBLA0KPiAr ICAgICAgIDB4NTI1LCAweDAwMDAwMDRGLA0KPiArICAgICAgIDB4NTUwLCAweDAwMDAwMDEwLA0K PiArICAgICAgIDB4NTUxLCAweDAwMDAwMDEwLA0KPiArICAgICAgIDB4NTU5LCAweDAwMDAwMDAy LA0KPiArICAgICAgIDB4NTVDLCAweDAwMDAwMDUwLA0KPiArICAgICAgIDB4NTVELCAweDAwMDAw MEZGLA0KPiArICAgICAgIDB4NjA1LCAweDAwMDAwMDMwLA0KPiArICAgICAgIDB4NjA4LCAweDAw MDAwMDBFLA0KPiArICAgICAgIDB4NjA5LCAweDAwMDAwMDJBLA0KPiArICAgICAgIDB4NjIwLCAw eDAwMDAwMEZGLA0KPiArICAgICAgIDB4NjIxLCAweDAwMDAwMEZGLA0KPiArICAgICAgIDB4NjIy LCAweDAwMDAwMEZGLA0KPiArICAgICAgIDB4NjIzLCAweDAwMDAwMEZGLA0KPiArICAgICAgIDB4 NjI0LCAweDAwMDAwMEZGLA0KPiArICAgICAgIDB4NjI1LCAweDAwMDAwMEZGLA0KPiArICAgICAg IDB4NjI2LCAweDAwMDAwMEZGLA0KPiArICAgICAgIDB4NjI3LCAweDAwMDAwMEZGLA0KPiArICAg ICAgIDB4NjM4LCAweDAwMDAwMDUwLA0KPiArICAgICAgIDB4NjNDLCAweDAwMDAwMDBBLA0KPiAr ICAgICAgIDB4NjNELCAweDAwMDAwMDBBLA0KPiArICAgICAgIDB4NjNFLCAweDAwMDAwMDBFLA0K PiArICAgICAgIDB4NjNGLCAweDAwMDAwMDBFLA0KPiArICAgICAgIDB4NjQwLCAweDAwMDAwMDQw LA0KPiArICAgICAgIDB4NjQyLCAweDAwMDAwMDQwLA0KPiArICAgICAgIDB4NjQzLCAweDAwMDAw MDAwLA0KPiArICAgICAgIDB4NjUyLCAweDAwMDAwMEM4LA0KPiArICAgICAgIDB4NjZFLCAweDAw MDAwMDA1LA0KPiArICAgICAgIDB4NzAwLCAweDAwMDAwMDIxLA0KPiArICAgICAgIDB4NzAxLCAw eDAwMDAwMDQzLA0KPiArICAgICAgIDB4NzAyLCAweDAwMDAwMDY1LA0KPiArICAgICAgIDB4NzAz LCAweDAwMDAwMDg3LA0KPiArICAgICAgIDB4NzA4LCAweDAwMDAwMDIxLA0KPiArICAgICAgIDB4 NzA5LCAweDAwMDAwMDQzLA0KPiArICAgICAgIDB4NzBBLCAweDAwMDAwMDY1LA0KPiArICAgICAg IDB4NzBCLCAweDAwMDAwMDg3LA0KPiArICAgICAgIDB4NzY1LCAweDAwMDAwMDE4LA0KPiArICAg ICAgIDB4NzZFLCAweDAwMDAwMDA0LA0KPiArfTsNCj4gKw0KPiArUlRXX0RFQ0xfVEFCTEVfUEhZ X0NPTkQocnR3ODcyM2JfbWFjLCBydHdfcGh5X2NmZ19tYWMpOw0KPiArDQo+ICtzdGF0aWMgY29u c3QgdTMyIHJ0dzg3MjNiX2FnY1tdID0gew0KPiArICAgICAgIDB4Qzc4LCAweEZEMDAwMDAxLA0K PiArICAgICAgIDB4Qzc4LCAweEZDMDEwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEZCMDIwMDAx LA0KPiArICAgICAgIDB4Qzc4LCAweEZBMDMwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEY5MDQw MDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEY4MDUwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEY3 MDYwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEY2MDcwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAw eEY1MDgwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEY0MDkwMDAxLA0KPiArICAgICAgIDB4Qzc4 LCAweEYzMEEwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEYyMEIwMDAxLA0KPiArICAgICAgIDB4 Qzc4LCAweEYxMEMwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEYwMEQwMDAxLA0KPiArICAgICAg IDB4Qzc4LCAweEVGMEUwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEVFMEYwMDAxLA0KPiArICAg ICAgIDB4Qzc4LCAweEVEMTAwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEVDMTEwMDAxLA0KPiAr ICAgICAgIDB4Qzc4LCAweEVCMTIwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEVBMTMwMDAxLA0K PiArICAgICAgIDB4Qzc4LCAweEU5MTQwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEU4MTUwMDAx LA0KPiArICAgICAgIDB4Qzc4LCAweEU3MTYwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEU2MTcw MDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEU1MTgwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEU0 MTkwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEUzMUEwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAw eEE1MUIwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEE0MUMwMDAxLA0KPiArICAgICAgIDB4Qzc4 LCAweEEzMUQwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDY3MUUwMDAxLA0KPiArICAgICAgIDB4 Qzc4LCAweDY2MUYwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDY1MjAwMDAxLA0KPiArICAgICAg IDB4Qzc4LCAweDY0MjEwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDYzMjIwMDAxLA0KPiArICAg ICAgIDB4Qzc4LCAweDRBMjMwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQ5MjQwMDAxLA0KPiAr ICAgICAgIDB4Qzc4LCAweDQ4MjUwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQ3MjYwMDAxLA0K PiArICAgICAgIDB4Qzc4LCAweDQ2MjcwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQ1MjgwMDAx LA0KPiArICAgICAgIDB4Qzc4LCAweDQ0MjkwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQzMkEw MDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQyMkIwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDI5 MkMwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDI4MkQwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAw eDI3MkUwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDI2MkYwMDAxLA0KPiArICAgICAgIDB4Qzc4 LCAweDBBMzAwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDA5MzEwMDAxLA0KPiArICAgICAgIDB4 Qzc4LCAweDA4MzIwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDA3MzMwMDAxLA0KPiArICAgICAg IDB4Qzc4LCAweDA2MzQwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDA1MzUwMDAxLA0KPiArICAg ICAgIDB4Qzc4LCAweDA0MzYwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAzMzcwMDAxLA0KPiAr ICAgICAgIDB4Qzc4LCAweDAyMzgwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAxMzkwMDAxLA0K PiArICAgICAgIDB4Qzc4LCAweDAxM0EwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAxM0IwMDAx LA0KPiArICAgICAgIDB4Qzc4LCAweDAxM0MwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAxM0Qw MDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAxM0UwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAx M0YwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEZDNDAwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAw eEZCNDEwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEZBNDIwMDAxLA0KPiArICAgICAgIDB4Qzc4 LCAweEY5NDMwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEY4NDQwMDAxLA0KPiArICAgICAgIDB4 Qzc4LCAweEY3NDUwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEY2NDYwMDAxLA0KPiArICAgICAg IDB4Qzc4LCAweEY1NDcwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEY0NDgwMDAxLA0KPiArICAg ICAgIDB4Qzc4LCAweEYzNDkwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEYyNEEwMDAxLA0KPiAr ICAgICAgIDB4Qzc4LCAweEYxNEIwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEYwNEMwMDAxLA0K PiArICAgICAgIDB4Qzc4LCAweEVGNEQwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEVFNEUwMDAx LA0KPiArICAgICAgIDB4Qzc4LCAweEVENEYwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEVDNTAw MDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEVCNTEwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEVB NTIwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEU5NTMwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAw eEU4NTQwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEU3NTUwMDAxLA0KPiArICAgICAgIDB4Qzc4 LCAweEU2NTYwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEU1NTcwMDAxLA0KPiArICAgICAgIDB4 Qzc4LCAweEU0NTgwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEUzNTkwMDAxLA0KPiArICAgICAg IDB4Qzc4LCAweEE2NUEwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEE1NUIwMDAxLA0KPiArICAg ICAgIDB4Qzc4LCAweEE0NUMwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweEEzNUQwMDAxLA0KPiAr ICAgICAgIDB4Qzc4LCAweDY3NUUwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDY2NUYwMDAxLA0K PiArICAgICAgIDB4Qzc4LCAweDY1NjAwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDY0NjEwMDAx LA0KPiArICAgICAgIDB4Qzc4LCAweDYzNjIwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDYyNjMw MDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDYxNjQwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQ4 NjUwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQ3NjYwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAw eDQ2NjcwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQ1NjgwMDAxLA0KPiArICAgICAgIDB4Qzc4 LCAweDQ0NjkwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDQzNkEwMDAxLA0KPiArICAgICAgIDB4 Qzc4LCAweDQyNkIwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDI4NkMwMDAxLA0KPiArICAgICAg IDB4Qzc4LCAweDI3NkQwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDI2NkUwMDAxLA0KPiArICAg ICAgIDB4Qzc4LCAweDI1NkYwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDI0NzAwMDAxLA0KPiAr ICAgICAgIDB4Qzc4LCAweDA5NzEwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDA4NzIwMDAxLA0K PiArICAgICAgIDB4Qzc4LCAweDA3NzMwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDA2NzQwMDAx LA0KPiArICAgICAgIDB4Qzc4LCAweDA1NzUwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDA0NzYw MDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAzNzcwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAy NzgwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAxNzkwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAw eDAxN0EwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAxN0IwMDAxLA0KPiArICAgICAgIDB4Qzc4 LCAweDAxN0MwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAxN0QwMDAxLA0KPiArICAgICAgIDB4 Qzc4LCAweDAxN0UwMDAxLA0KPiArICAgICAgIDB4Qzc4LCAweDAxN0YwMDAxLA0KPiArICAgICAg IDB4QzUwLCAweDY5NTUzNDIyLA0KPiArICAgICAgIDB4QzUwLCAweDY5NTUzNDIwLA0KPiArICAg ICAgIDB4ODI0LCAweDAwMzkwMjA0LA0KPiArfTsNCj4gKw0KPiArUlRXX0RFQ0xfVEFCTEVfUEhZ X0NPTkQocnR3ODcyM2JfYWdjLCBydHdfcGh5X2NmZ19hZ2MpOw0KPiArDQo+ICtzdGF0aWMgY29u c3QgdTMyIHJ0dzg3MjNiX2JiW10gPSB7DQo+ICsgICAgICAgMHg4MDAsIDB4ODAwNDAwMDAsDQo+ ICsgICAgICAgMHg4MDQsIDB4MDAwMDAwMDMsDQo+ICsgICAgICAgMHg4MDgsIDB4MDAwMEZDMDAs DQo+ICsgICAgICAgMHg4MEMsIDB4MDAwMDAwMEEsDQo+ICsgICAgICAgMHg4MTAsIDB4MTAwMDEz MzEsDQo+ICsgICAgICAgMHg4MTQsIDB4MDIwQzNEMTAsDQo+ICsgICAgICAgMHg4MTgsIDB4MDIy MDAzODUsDQo+ICsgICAgICAgMHg4MUMsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4MjAsIDB4 MDEwMDAxMDAsDQo+ICsgICAgICAgMHg4MjQsIDB4MDAxOTAyMDQsDQo+ICsgICAgICAgMHg4Mjgs IDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4MkMsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4 MzAsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4MzQsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAg MHg4MzgsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4M0MsIDB4MDAwMDAwMDAsDQo+ICsgICAg ICAgMHg4NDAsIDB4MDAwMTAwMDAsDQo+ICsgICAgICAgMHg4NDQsIDB4MDAwMDAwMDAsDQo+ICsg ICAgICAgMHg4NDgsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4NEMsIDB4MDAwMDAwMDAsDQo+ ICsgICAgICAgMHg4NTAsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4NTQsIDB4MDAwMDAwMDAs DQo+ICsgICAgICAgMHg4NTgsIDB4NTY5QTExQTksDQo+ICsgICAgICAgMHg4NUMsIDB4MDEwMDAw MTQsDQo+ICsgICAgICAgMHg4NjAsIDB4NjZGNjAxMTAsDQo+ICsgICAgICAgMHg4NjQsIDB4MDYx RjA2NDksDQo+ICsgICAgICAgMHg4NjgsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4NkMsIDB4 MjcyNzI3MDAsDQo+ICsgICAgICAgMHg4NzAsIDB4MDcwMDA3NjAsDQo+ICsgICAgICAgMHg4NzQs IDB4MjUwMDQwMDAsDQo+ICsgICAgICAgMHg4NzgsIDB4MDAwMDA4MDgsDQo+ICsgICAgICAgMHg4 N0MsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHg4ODAsIDB4QjAwMDBDMUMsDQo+ICsgICAgICAg MHg4ODQsIDB4MDAwMDAwMDEsDQo+ICsgICAgICAgMHg4ODgsIDB4MDAwMDAwMDAsDQo+ICsgICAg ICAgMHg4OEMsIDB4Q0NDMDAwQzAsDQo+ICsgICAgICAgMHg4OTAsIDB4MDAwMDA4MDAsDQo+ICsg ICAgICAgMHg4OTQsIDB4RkZGRkZGRkUsDQo+ICsgICAgICAgMHg4OTgsIDB4NDAzMDIwMTAsDQo+ ICsgICAgICAgMHg4OUMsIDB4MDA3MDYwNTAsDQo+ICsgICAgICAgMHg5MDAsIDB4MDAwMDAwMDAs DQo+ICsgICAgICAgMHg5MDQsIDB4MDAwMDAwMjMsDQo+ICsgICAgICAgMHg5MDgsIDB4MDAwMDAw MDAsDQo+ICsgICAgICAgMHg5MEMsIDB4ODExMjExMTEsDQo+ICsgICAgICAgMHg5MTAsIDB4MDAw MDAwMDIsDQo+ICsgICAgICAgMHg5MTQsIDB4MDAwMDAyMDEsDQo+ICsgICAgICAgMHhBMDAsIDB4 MDBEMDQ3QzgsDQo+ICsgICAgICAgMHhBMDQsIDB4ODBGRjgwMEMsDQo+ICsgICAgICAgMHhBMDgs IDB4OEM4MzgzMDAsDQo+ICsgICAgICAgMHhBMEMsIDB4MkU3RjEyMEYsDQo+ICsgICAgICAgMHhB MTAsIDB4OTUwMEJCNzgsDQo+ICsgICAgICAgMHhBMTQsIDB4MTExNEQwMjgsDQo+ICsgICAgICAg MHhBMTgsIDB4MDA4ODExMTcsDQo+ICsgICAgICAgMHhBMUMsIDB4ODkxNDBGMDAsDQo+ICsgICAg ICAgMHhBMjAsIDB4MUExQjAwMDAsDQo+ICsgICAgICAgMHhBMjQsIDB4MDkwRTEzMTcsDQo+ICsg ICAgICAgMHhBMjgsIDB4MDAwMDAyMDQsDQo+ICsgICAgICAgMHhBMkMsIDB4MDBEMzAwMDAsDQo+ ICsgICAgICAgMHhBNzAsIDB4MTAxRkJGMDAsDQo+ICsgICAgICAgMHhBNzQsIDB4MDAwMDAwMDcs DQo+ICsgICAgICAgMHhBNzgsIDB4MDAwMDA5MDAsDQo+ICsgICAgICAgMHhBN0MsIDB4MjI1QjA2 MDYsDQo+ICsgICAgICAgMHhBODAsIDB4MjE4MDY0OTAsDQo+ICsgICAgICAgMHhCMkMsIDB4MDAw MDAwMDAsDQo+ICsgICAgICAgMHhDMDAsIDB4NDgwNzFENDAsDQo+ICsgICAgICAgMHhDMDQsIDB4 MDNBMDU2MTEsDQo+ICsgICAgICAgMHhDMDgsIDB4MDAwMDAwRTQsDQo+ICsgICAgICAgMHhDMEMs IDB4NkM2QzZDNkMsDQo+ICsgICAgICAgMHhDMTAsIDB4MDg4MDAwMDAsDQo+ICsgICAgICAgMHhD MTQsIDB4NDAwMDAxMDAsDQo+ICsgICAgICAgMHhDMTgsIDB4MDg4MDAwMDAsDQo+ICsgICAgICAg MHhDMUMsIDB4NDAwMDAxMDAsDQo+ICsgICAgICAgMHhDMjAsIDB4MDAwMDAwMDAsDQo+ICsgICAg ICAgMHhDMjQsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDMjgsIDB4MDAwMDAwMDAsDQo+ICsg ICAgICAgMHhDMkMsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDMzAsIDB4NjlFOUFDNDQsDQo+ ICsgICAgICAgMHhDMzQsIDB4NDY5NjUyQUYsDQo+ICsgICAgICAgMHhDMzgsIDB4NDk3OTU5OTQs DQo+ICsgICAgICAgMHhDM0MsIDB4MEE5Nzk3MUMsDQo+ICsgICAgICAgMHhDNDAsIDB4MUY3QzQw M0YsDQo+ICsgICAgICAgMHhDNDQsIDB4MDAwMTAwQjcsDQo+ICsgICAgICAgMHhDNDgsIDB4RUMw MjAxMDcsDQo+ICsgICAgICAgMHhDNEMsIDB4MDA3RjAzN0YsDQo+ICsgICAgICAgMHhDNTAsIDB4 Njk1NTM0MjAsDQo+ICsgICAgICAgMHhDNTQsIDB4NDNCQzAwOTQsDQo+ICsgICAgICAgMHhDNTgs IDB4MDAwMTMxNDcsDQo+ICsgICAgICAgMHhDNUMsIDB4MDAyNTA0OTIsDQo+ICsgICAgICAgMHhD NjAsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDNjQsIDB4NTExMjg0OEIsDQo+ICsgICAgICAg MHhDNjgsIDB4NDdDMDBCRkYsDQo+ICsgICAgICAgMHhDNkMsIDB4MDAwMDAwMzYsDQo+ICsgICAg ICAgMHhDNzAsIDB4MkM3RjAwMEQsDQo+ICsgICAgICAgMHhDNzQsIDB4MDIwNjEwREIsDQo+ICsg ICAgICAgMHhDNzgsIDB4MDAwMDAwMUYsDQo+ICsgICAgICAgMHhDN0MsIDB4MDBCOTE2MTIsDQo+ ICsgICAgICAgMHhDODAsIDB4MzkwMDAwRTQsDQo+ICsgICAgICAgMHhDODQsIDB4MjFGNjAwMDAs DQo+ICsgICAgICAgMHhDODgsIDB4NDAwMDAxMDAsDQo+ICsgICAgICAgMHhDOEMsIDB4MjAyMDAw MDAsDQo+ICsgICAgICAgMHhDOTAsIDB4MDAwMjBFMUEsDQo+ICsgICAgICAgMHhDOTQsIDB4MDAw MDAwMDAsDQo+ICsgICAgICAgMHhDOTgsIDB4MDAwMjBFMUEsDQo+ICsgICAgICAgMHhDOUMsIDB4 MDAwMDdGN0YsDQo+ICsgICAgICAgMHhDQTAsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDQTQs IDB4MDAwMzAwQTAsDQo+ICsgICAgICAgMHhDQTgsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhD QUMsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDQjAsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAg MHhDQjQsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDQjgsIDB4MDAwMDAwMDAsDQo+ICsgICAg ICAgMHhDQkMsIDB4MjgwMDAwMDAsDQo+ICsgICAgICAgMHhDQzAsIDB4MDAwMDAwMDAsDQo+ICsg ICAgICAgMHhDQzQsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDQzgsIDB4MDAwMDAwMDAsDQo+ ICsgICAgICAgMHhDQ0MsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDRDAsIDB4MDAwMDAwMDAs DQo+ICsgICAgICAgMHhDRDQsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDRDgsIDB4NjRCMjI0 MjcsDQo+ICsgICAgICAgMHhDREMsIDB4MDA3NjY5MzIsDQo+ICsgICAgICAgMHhDRTAsIDB4MDAy MjIyMjIsDQo+ICsgICAgICAgMHhDRTQsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhDRTgsIDB4 Mzc2NDQzMDIsDQo+ICsgICAgICAgMHhDRUMsIDB4MkY5N0Q0MEMsDQo+ICsgICAgICAgMHhEMDAs IDB4MDAwMDA3NDAsDQo+ICsgICAgICAgMHhEMDQsIDB4NDAwMjA0MDEsDQo+ICsgICAgICAgMHhE MDgsIDB4MDAwMDkwN0YsDQo+ICsgICAgICAgMHhEMEMsIDB4MjAwMTAyMDEsDQo+ICsgICAgICAg MHhEMTAsIDB4QTA2MzMzMzMsDQo+ICsgICAgICAgMHhEMTQsIDB4MzMzM0JDNTMsDQo+ICsgICAg ICAgMHhEMTgsIDB4N0E4RjVCNkYsDQo+ICsgICAgICAgMHhEMkMsIDB4Q0M5Nzk5NzUsDQo+ICsg ICAgICAgMHhEMzAsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhEMzQsIDB4ODA2MDgwMDAsDQo+ ICsgICAgICAgMHhEMzgsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhEM0MsIDB4MDAxMjczNTMs DQo+ICsgICAgICAgMHhENDAsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhENDQsIDB4MDAwMDAw MDAsDQo+ICsgICAgICAgMHhENDgsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhENEMsIDB4MDAw MDAwMDAsDQo+ICsgICAgICAgMHhENTAsIDB4NjQzNzE0MEEsDQo+ICsgICAgICAgMHhENTQsIDB4 MDAwMDAwMDAsDQo+ICsgICAgICAgMHhENTgsIDB4MDAwMDAyODIsDQo+ICsgICAgICAgMHhENUMs IDB4MzAwMzIwNjQsDQo+ICsgICAgICAgMHhENjAsIDB4NDY1M0RFNjgsDQo+ICsgICAgICAgMHhE NjQsIDB4MDQ1MThBM0MsDQo+ICsgICAgICAgMHhENjgsIDB4MDAwMDIxMDEsDQo+ICsgICAgICAg MHhENkMsIDB4MkEyMDFDMTYsDQo+ICsgICAgICAgMHhENzAsIDB4MTgxMjM2MkUsDQo+ICsgICAg ICAgMHhENzQsIDB4MzIyQzIyMjAsDQo+ICsgICAgICAgMHhENzgsIDB4MDAwRTNDMjQsDQo+ICsg ICAgICAgMHhFMDAsIDB4MkQyRDJEMkQsDQo+ICsgICAgICAgMHhFMDQsIDB4MkQyRDJEMkQsDQo+ ICsgICAgICAgMHhFMDgsIDB4MDM5MDI3MkQsDQo+ICsgICAgICAgMHhFMTAsIDB4MkQyRDJEMkQs DQo+ICsgICAgICAgMHhFMTQsIDB4MkQyRDJEMkQsDQo+ICsgICAgICAgMHhFMTgsIDB4MkQyRDJE MkQsDQo+ICsgICAgICAgMHhFMUMsIDB4MkQyRDJEMkQsDQo+ICsgICAgICAgMHhFMjgsIDB4MDAw MDAwMDAsDQo+ICsgICAgICAgMHhFMzAsIDB4MTAwMERDMUYsDQo+ICsgICAgICAgMHhFMzQsIDB4 MTAwMDhDMUYsDQo+ICsgICAgICAgMHhFMzgsIDB4MDIxNDAxMDIsDQo+ICsgICAgICAgMHhFM0Ms IDB4NjgxNjA0QzIsDQo+ICsgICAgICAgMHhFNDAsIDB4MDEwMDdDMDAsDQo+ICsgICAgICAgMHhF NDQsIDB4MDEwMDQ4MDAsDQo+ICsgICAgICAgMHhFNDgsIDB4RkIwMDAwMDAsDQo+ICsgICAgICAg MHhFNEMsIDB4MDAwMDI4RDEsDQo+ICsgICAgICAgMHhFNTAsIDB4MTAwMERDMUYsDQo+ICsgICAg ICAgMHhFNTQsIDB4MTAwMDhDMUYsDQo+ICsgICAgICAgMHhFNTgsIDB4MDIxNDAxMDIsDQo+ICsg ICAgICAgMHhFNUMsIDB4MjgxNjBEMDUsDQo+ICsgICAgICAgMHhFNjAsIDB4MDAwMDAwNDgsDQo+ ICsgICAgICAgMHhFNjgsIDB4MDAxQjI1NTYsDQo+ICsgICAgICAgMHhFNkMsIDB4MDBDMDAwOTYs DQo+ICsgICAgICAgMHhFNzAsIDB4MDBDMDAwOTYsDQo+ICsgICAgICAgMHhFNzQsIDB4MDEwMDAw NTYsDQo+ICsgICAgICAgMHhFNzgsIDB4MDEwMDAwMTQsDQo+ICsgICAgICAgMHhFN0MsIDB4MDEw MDAwNTYsDQo+ICsgICAgICAgMHhFODAsIDB4MDEwMDAwMTQsDQo+ICsgICAgICAgMHhFODQsIDB4 MDBDMDAwOTYsDQo+ICsgICAgICAgMHhFODgsIDB4MDEwMDAwNTYsDQo+ICsgICAgICAgMHhFOEMs IDB4MDBDMDAwOTYsDQo+ICsgICAgICAgMHhFRDAsIDB4MDBDMDAwOTYsDQo+ICsgICAgICAgMHhF RDQsIDB4MDBDMDAwOTYsDQo+ICsgICAgICAgMHhFRDgsIDB4MDBDMDAwOTYsDQo+ICsgICAgICAg MHhFREMsIDB4MDAwMDAwRDYsDQo+ICsgICAgICAgMHhFRTAsIDB4MDAwMDAwRDYsDQo+ICsgICAg ICAgMHhFRUMsIDB4MDFDMDAwMTYsDQo+ICsgICAgICAgMHhGMTQsIDB4MDAwMDAwMDMsDQo+ICsg ICAgICAgMHhGNEMsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhGMDAsIDB4MDAwMDAzMDAsDQo+ ICsgICAgICAgMHg4MjAsIDB4MDEwMDAxMDAsDQo+ICsgICAgICAgMHg4MDAsIDB4ODMwNDAwMDAs DQo+ICt9Ow0KPiArDQo+ICtSVFdfREVDTF9UQUJMRV9QSFlfQ09ORChydHc4NzIzYl9iYiwgcnR3 X3BoeV9jZmdfYmIpOw0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJ0d19waHlfcGdfY2Zn X3BhaXIgcnR3ODcyM2JfYmJfcGdbXSA9IHsNCj4gKyAgICAgICB7IDAsIDAsIDAsIDB4MDAwMDBl MDgsIDB4MDAwMGZmMDAsIDB4MDAwMDM4MDAsIH0sDQo+ICsgICAgICAgeyAwLCAwLCAwLCAweDAw MDAwODZjLCAweGZmZmZmZjAwLCAweDMyMzQzNjAwLCB9LA0KPiArICAgICAgIHsgMCwgMCwgMCwg MHgwMDAwMGUwMCwgMHhmZmZmZmZmZiwgMHg0MDQyNDQ0NCwgfSwNCj4gKyAgICAgICB7IDAsIDAs IDAsIDB4MDAwMDBlMDQsIDB4ZmZmZmZmZmYsIDB4MjgzMjM2MzgsIH0sDQo+ICsgICAgICAgeyAw LCAwLCAwLCAweDAwMDAwZTEwLCAweGZmZmZmZmZmLCAweDM4NDA0MjQ0LCB9LA0KPiArICAgICAg IHsgMCwgMCwgMCwgMHgwMDAwMGUxNCwgMHhmZmZmZmZmZiwgMHgyNjMwMzQzNiwgfSwNCj4gK307 DQo+ICsNCj4gK1JUV19ERUNMX1RBQkxFX0JCX1BHKHJ0dzg3MjNiX2JiX3BnKTsNCj4gKw0KPiAr c3RhdGljIGNvbnN0IHUzMiBydHc4NzIzYl9yZl9hW10gPSB7DQo+ICsgICAgICAgMHgwMDAsIDB4 MDAwMTAwMDAsDQo+ICsgICAgICAgMHgwQjAsIDB4MDAwREZGRTAsDQo+ICsgICAgICAgMHhGRkUs IDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhGRkUsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhG RkUsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHgwQjEsIDB4MDAwMDAwMTgsDQo+ICsgICAgICAg MHhGRkUsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHhGRkUsIDB4MDAwMDAwMDAsDQo+ICsgICAg ICAgMHhGRkUsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHgwQjIsIDB4MDAwODRDMDAsDQo+ICsg ICAgICAgMHgwQjUsIDB4MDAwMEQyQ0MsDQo+ICsgICAgICAgMHgwQjYsIDB4MDAwOTI1QUEsDQo+ ICsgICAgICAgMHgwQjcsIDB4MDAwMDAwMTAsDQo+ICsgICAgICAgMHgwQjgsIDB4MDAwMDkwN0Ys DQo+ICsgICAgICAgMHgwNUMsIDB4MDAwMDAwMDIsDQo+ICsgICAgICAgMHgwN0MsIDB4MDAwMDAw MDIsDQo+ICsgICAgICAgMHgwN0UsIDB4MDAwMDAwMDUsDQo+ICsgICAgICAgMHgwOEIsIDB4MDAw NkZDMDAsDQo+ICsgICAgICAgMHgwQjAsIDB4MDAwRkY5RjAsDQo+ICsgICAgICAgMHgwMUMsIDB4 MDAwNzM5RDIsDQo+ICsgICAgICAgMHgwMUUsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAgMHgwREYs IDB4MDAwMDA3ODAsDQo+ICsgICAgICAgMHgwNTAsIDB4MDAwNjc0MzUsDQo+ICsgICAgICAgMHg4 MDAwMjAwMCwgMHgwMDAwMDAwMCwgMHg0MDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gKyAgICAgICAw eDA1MSwgMHgwMDA2RjEwRSwNCj4gKyAgICAgICAweDA1MiwgMHgwMDAwMDdEMywNCj4gKyAgICAg ICAweDkwMDAzMDAwLCAweDAwMDAwMDAwLCAweDQwMDAwMDAwLCAweDAwMDAwMDAwLA0KPiArICAg ICAgIDB4MDUxLCAweDAwMDZGMTBFLA0KPiArICAgICAgIDB4MDUyLCAweDAwMDAwN0QzLA0KPiAr ICAgICAgIDB4OTAwMDQwMDAsIDB4MDAwMDAwMDAsIDB4NDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ ICsgICAgICAgMHgwNTEsIDB4MDAwNkYxMEUsDQo+ICsgICAgICAgMHgwNTIsIDB4MDAwMDA3RDMs DQo+ICsgICAgICAgMHhBMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gKyAgICAgICAweDA1MSwgMHgw MDA2QjA0RSwNCj4gKyAgICAgICAweDA1MiwgMHgwMDAwMDdEMiwNCj4gKyAgICAgICAweEIwMDAw MDAwLCAweDAwMDAwMDAwLA0KPiArICAgICAgIDB4MDUzLCAweDAwMDAwMDAwLA0KPiArICAgICAg IDB4MDU0LCAweDAwMDUwNDAwLA0KPiArICAgICAgIDB4MDU1LCAweDAwMDQwMjZFLA0KPiArICAg ICAgIDB4MERELCAweDAwMDAwMDRDLA0KPiArICAgICAgIDB4MDcwLCAweDAwMDY3NDM1LA0KPiAr ICAgICAgIDB4ODAwMDIwMDAsIDB4MDAwMDAwMDAsIDB4NDAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ ICsgICAgICAgMHgwNzEsIDB4MDAwNkYxMEUsDQo+ICsgICAgICAgMHgwNzIsIDB4MDAwMDA3RDMs DQo+ICsgICAgICAgMHg5MDAwMzAwMCwgMHgwMDAwMDAwMCwgMHg0MDAwMDAwMCwgMHgwMDAwMDAw MCwNCj4gKyAgICAgICAweDA3MSwgMHgwMDA2RjEwRSwNCj4gKyAgICAgICAweDA3MiwgMHgwMDAw MDdEMywNCj4gKyAgICAgICAweDkwMDA0MDAwLCAweDAwMDAwMDAwLCAweDQwMDAwMDAwLCAweDAw MDAwMDAwLA0KPiArICAgICAgIDB4MDcxLCAweDAwMDZGMTBFLA0KPiArICAgICAgIDB4MDcyLCAw eDAwMDAwN0QzLA0KPiArICAgICAgIDB4QTAwMDAwMDAsIDB4MDAwMDAwMDAsDQo+ICsgICAgICAg MHgwNzEsIDB4MDAwNkIwNEUsDQo+ICsgICAgICAgMHgwNzIsIDB4MDAwMDA3RDIsDQo+ICsgICAg ICAgMHhCMDAwMDAwMCwgMHgwMDAwMDAwMCwNCj4gKyAgICAgICAweDA3MywgMHgwMDAwMDAwMCwN Cj4gKyAgICAgICAweDA3NCwgMHgwMDA1MDQwMCwNCj4gKyAgICAgICAweDA3NSwgMHgwMDA0MDI2 RSwNCj4gKyAgICAgICAweDBFRiwgMHgwMDAwMDEwMCwNCj4gKyAgICAgICAweDAzNCwgMHgwMDAw QURENywNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwNUMwMCwNCj4gKyAgICAgICAweDAzNCwgMHgw MDAwOURENCwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwNTAwMCwNCj4gKyAgICAgICAweDAzNCwg MHgwMDAwOEREMSwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwNDQwMCwNCj4gKyAgICAgICAweDAz NCwgMHgwMDAwN0RDRSwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwMzgwMCwNCj4gKyAgICAgICAw eDAzNCwgMHgwMDAwNkNEMSwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwNDQwMCwNCj4gKyAgICAg ICAweDAzNCwgMHgwMDAwNUNDRSwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwMzgwMCwNCj4gKyAg ICAgICAweDAzNCwgMHgwMDAwNDhDRSwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwNDQwMCwNCj4g KyAgICAgICAweDAzNCwgMHgwMDAwMzRDRSwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwMzgwMCwN Cj4gKyAgICAgICAweDAzNCwgMHgwMDAwMjQ1MSwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAwNDQw MCwNCj4gKyAgICAgICAweDAzNCwgMHgwMDAwMTQ0RSwNCj4gKyAgICAgICAweDAzNSwgMHgwMDAw MzgwMCwNCj4gKyAgICAgICAweDAzNCwgMHgwMDAwMDA1MSwNCj4gKyAgICAgICAweDAzNSwgMHgw MDAwNDQwMCwNCj4gKyAgICAgICAweDBFRiwgMHgwMDAwMDAwMCwNCj4gKyAgICAgICAweDBFRiwg MHgwMDAwMDEwMCwNCj4gKyAgICAgICAweDBFRCwgMHgwMDAwMDAxMCwNCj4gKyAgICAgICAweDA0 NCwgMHgwMDAwQURENywNCj4gKyAgICAgICAweDA0NCwgMHgwMDAwOURENCwNCj4gKyAgICAgICAw eDA0NCwgMHgwMDAwOEREMSwNCj4gKyAgICAgICAweDA0NCwgMHgwMDAwN0RDRSwNCj4gKyAgICAg ICAweDA0NCwgMHgwMDAwNkNDMSwNCj4gKyAgICAgICAweDA0NCwgMHgwMDAwNUNDRSwNCj4gKyAg ICAgICAweDA0NCwgMHgwMDAwNDREMSwNCj4gKyAgICAgICAweDA0NCwgMHgwMDAwMzRDRSwNCj4g KyAgICAgICAweDA0NCwgMHgwMDAwMjQ1MSwNCj4gKyAgICAgICAweDA0NCwgMHgwMDAwMTQ0RSwN Cj4gKyAgICAgICAweDA0NCwgMHgwMDAwMDA1MSwNCj4gKyAgICAgICAweDBFRiwgMHgwMDAwMDAw MCwNCj4gKyAgICAgICAweDBFRCwgMHgwMDAwMDAwMCwNCj4gKyAgICAgICAweDA3RiwgMHgwMDAy MDA4MCwNCj4gKyAgICAgICAweDBFRiwgMHgwMDAwMjAwMCwNCj4gKyAgICAgICAweDAzQiwgMHgw MDAzODlFRiwNCj4gKyAgICAgICAweDAzQiwgMHgwMDAzMDJGRSwNCj4gKyAgICAgICAweDAzQiwg MHgwMDAyOENFNiwNCj4gKyAgICAgICAweDAzQiwgMHgwMDAyMDBCQywNCj4gKyAgICAgICAweDAz QiwgMHgwMDAxODhBNSwNCj4gKyAgICAgICAweDAzQiwgMHgwMDAxMEZCQywNCj4gKyAgICAgICAw eDAzQiwgMHgwMDAwOEY3MSwNCj4gKyAgICAgICAweDAzQiwgMHgwMDAwMDkwMCwNCj4gKyAgICAg ICAweDBFRiwgMHgwMDAwMDAwMCwNCj4gKyAgICAgICAweDBFRCwgMHgwMDAwMDAwMSwNCj4gKyAg ICAgICAweDA0MCwgMHgwMDAzODBFRiwNCj4gKyAgICAgICAweDA0MCwgMHgwMDAzMDJGRSwNCj4g KyAgICAgICAweDA0MCwgMHgwMDAyOENFNiwNCj4gKyAgICAgICAweDA0MCwgMHgwMDAyMDBCQywN Cj4gKyAgICAgICAweDA0MCwgMHgwMDAxODhBNSwNCj4gKyAgICAgICAweDA0MCwgMHgwMDAxMEZC QywNCj4gKyAgICAgICAweDA0MCwgMHgwMDAwOEY3MSwNCj4gKyAgICAgICAweDA0MCwgMHgwMDAw MDkwMCwNCj4gKyAgICAgICAweDBFRCwgMHgwMDAwMDAwMCwNCj4gKyAgICAgICAweDA4MiwgMHgw MDA4MDAwMCwNCj4gKyAgICAgICAweDA4MywgMHgwMDAwODAwMCwNCj4gKyAgICAgICAweDA4NCwg MHgwMDA0OUY4MCwNCj4gKyAgICAgICAweDA4NSwgMHgwMDA2ODAwMCwNCj4gKyAgICAgICAweDBB MiwgMHgwMDA4MDAwMCwNCj4gKyAgICAgICAweDBBMywgMHgwMDAwODAwMCwNCj4gKyAgICAgICAw eDBBNCwgMHgwMDA0OEQ4MCwNCj4gKyAgICAgICAweDBBNSwgMHgwMDA2ODAwMCwNCj4gKyAgICAg ICAweDBFRCwgMHgwMDAwMDAwMiwNCj4gKyAgICAgICAweDBFRiwgMHgwMDAwMDAwMiwNCj4gKyAg ICAgICAweDA1NiwgMHgwMDAwMDAzMiwNCj4gKyAgICAgICAweDA3NiwgMHgwMDAwMDAzMiwNCj4g KyAgICAgICAweDAxRiwgMHgwMDAwMTAwOCwNCj4gKyAgICAgICAweDAwMSwgMHgwMDAwMDc4MCwN Cj4gK307DQo+ICsNCj4gK1JUV19ERUNMX1RBQkxFX1JGX1JBRElPKHJ0dzg3MjNiX3JmX2EsIEEp Ow0KPiArDQo+ICsvKiBSZWdkOiBGQ0MgLT4gMCwgRVRTSSAtPiAyLCBNS0sgLT4gMQ0KPiArICog QmFuZDogMi40RyAtPiAwLCA1RyAtPiAxDQo+ICsgKiBCYW5kd2lkdGggKGJ3KTogMjBNIC0+IDAs IDQwTSAtPiAxLCA4ME0gLT4gMiwgMTYwTSAtPiAzDQo+ICsgKiBSYXRlIFNlY3Rpb24gKHJzKTog Q0NLIC0+IDAsIE9GRE0gLT4gMSwgSFQgLT4gMiwgVkhUIC0+IDMNCj4gKyAqLw0KPiArc3RhdGlj IGNvbnN0IHN0cnVjdCBydHdfdHhwd3JfbG10X2NmZ19wYWlyIHJ0dzg3MjNiX3R4cHdyX2xtdFtd ID0gew0KPiArICAgICAgIHswLCAwLCAwLCAwLCAxLCAzMH0sDQo+ICsgICAgICAgezIsIDAsIDAs IDAsIDEsIDI2fSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMCwgMSwgMzJ9LA0KPiArICAgICAgIHsw LCAwLCAwLCAwLCAyLCAzMH0sDQo+ICsgICAgICAgezIsIDAsIDAsIDAsIDIsIDI2fSwNCj4gKyAg ICAgICB7MSwgMCwgMCwgMCwgMiwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAwLCAzLCAzMH0s DQo+ICsgICAgICAgezIsIDAsIDAsIDAsIDMsIDI2fSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMCwg MywgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAwLCA0LCAzMH0sDQo+ICsgICAgICAgezIsIDAs IDAsIDAsIDQsIDI2fSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMCwgNCwgMzJ9LA0KPiArICAgICAg IHswLCAwLCAwLCAwLCA1LCAzMH0sDQo+ICsgICAgICAgezIsIDAsIDAsIDAsIDUsIDI2fSwNCj4g KyAgICAgICB7MSwgMCwgMCwgMCwgNSwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAwLCA2LCAz MH0sDQo+ICsgICAgICAgezIsIDAsIDAsIDAsIDYsIDI2fSwNCj4gKyAgICAgICB7MSwgMCwgMCwg MCwgNiwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAwLCA3LCAzMH0sDQo+ICsgICAgICAgezIs IDAsIDAsIDAsIDcsIDI2fSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMCwgNywgMzJ9LA0KPiArICAg ICAgIHswLCAwLCAwLCAwLCA4LCAzMH0sDQo+ICsgICAgICAgezIsIDAsIDAsIDAsIDgsIDI2fSwN Cj4gKyAgICAgICB7MSwgMCwgMCwgMCwgOCwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAwLCA5 LCAzMH0sDQo+ICsgICAgICAgezIsIDAsIDAsIDAsIDksIDI2fSwNCj4gKyAgICAgICB7MSwgMCwg MCwgMCwgOSwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAwLCAxMCwgMzB9LA0KPiArICAgICAg IHsyLCAwLCAwLCAwLCAxMCwgMjZ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAwLCAxMCwgMzJ9LA0K PiArICAgICAgIHswLCAwLCAwLCAwLCAxMSwgMzB9LA0KPiArICAgICAgIHsyLCAwLCAwLCAwLCAx MSwgMjZ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAwLCAxMSwgMzJ9LA0KPiArICAgICAgIHswLCAw LCAwLCAwLCAxMiwgNjN9LA0KPiArICAgICAgIHsyLCAwLCAwLCAwLCAxMiwgMjZ9LA0KPiArICAg ICAgIHsxLCAwLCAwLCAwLCAxMiwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAwLCAxMywgNjN9 LA0KPiArICAgICAgIHsyLCAwLCAwLCAwLCAxMywgMjZ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAw LCAxMywgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAwLCAxNCwgNjN9LA0KPiArICAgICAgIHsy LCAwLCAwLCAwLCAxNCwgNjN9LA0KPiArICAgICAgIHsxLCAwLCAwLCAwLCAxNCwgMzJ9LA0KPiAr ICAgICAgIHswLCAwLCAwLCAxLCAxLCAyOH0sDQo+ICsgICAgICAgezIsIDAsIDAsIDEsIDEsIDI4 fSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMSwgMSwgMjh9LA0KPiArICAgICAgIHswLCAwLCAwLCAx LCAyLCAyOH0sDQo+ICsgICAgICAgezIsIDAsIDAsIDEsIDIsIDMyfSwNCj4gKyAgICAgICB7MSwg MCwgMCwgMSwgMiwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAxLCAzLCAzMn0sDQo+ICsgICAg ICAgezIsIDAsIDAsIDEsIDMsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMSwgMywgMzJ9LA0K PiArICAgICAgIHswLCAwLCAwLCAxLCA0LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDEsIDQs IDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMSwgNCwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAw LCAxLCA1LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDEsIDUsIDMyfSwNCj4gKyAgICAgICB7 MSwgMCwgMCwgMSwgNSwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAxLCA2LCAzMn0sDQo+ICsg ICAgICAgezIsIDAsIDAsIDEsIDYsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMSwgNiwgMzJ9 LA0KPiArICAgICAgIHswLCAwLCAwLCAxLCA3LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDEs IDcsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMSwgNywgMzJ9LA0KPiArICAgICAgIHswLCAw LCAwLCAxLCA4LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDEsIDgsIDMyfSwNCj4gKyAgICAg ICB7MSwgMCwgMCwgMSwgOCwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAxLCA5LCAzMn0sDQo+ ICsgICAgICAgezIsIDAsIDAsIDEsIDksIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMSwgOSwg MzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAxLCAxMCwgMjh9LA0KPiArICAgICAgIHsyLCAwLCAw LCAxLCAxMCwgMzJ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAxLCAxMCwgMzJ9LA0KPiArICAgICAg IHswLCAwLCAwLCAxLCAxMSwgMjh9LA0KPiArICAgICAgIHsyLCAwLCAwLCAxLCAxMSwgMzJ9LA0K PiArICAgICAgIHsxLCAwLCAwLCAxLCAxMSwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAxLCAx MiwgNjN9LA0KPiArICAgICAgIHsyLCAwLCAwLCAxLCAxMiwgMzJ9LA0KPiArICAgICAgIHsxLCAw LCAwLCAxLCAxMiwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAxLCAxMywgNjN9LA0KPiArICAg ICAgIHsyLCAwLCAwLCAxLCAxMywgMjh9LA0KPiArICAgICAgIHsxLCAwLCAwLCAxLCAxMywgMjh9 LA0KPiArICAgICAgIHswLCAwLCAwLCAxLCAxNCwgNjN9LA0KPiArICAgICAgIHsyLCAwLCAwLCAx LCAxNCwgNjN9LA0KPiArICAgICAgIHsxLCAwLCAwLCAxLCAxNCwgNjN9LA0KPiArICAgICAgIHsw LCAwLCAwLCAyLCAxLCAyNn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDEsIDI2fSwNCj4gKyAg ICAgICB7MSwgMCwgMCwgMiwgMSwgMjh9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCAyLCAyNn0s DQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDIsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwg MiwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCAzLCAzMn0sDQo+ICsgICAgICAgezIsIDAs IDAsIDIsIDMsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgMywgMzJ9LA0KPiArICAgICAg IHswLCAwLCAwLCAyLCA0LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDQsIDMyfSwNCj4g KyAgICAgICB7MSwgMCwgMCwgMiwgNCwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCA1LCAz Mn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDUsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwg MiwgNSwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCA2LCAzMn0sDQo+ICsgICAgICAgezIs IDAsIDAsIDIsIDYsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgNiwgMzJ9LA0KPiArICAg ICAgIHswLCAwLCAwLCAyLCA3LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDcsIDMyfSwN Cj4gKyAgICAgICB7MSwgMCwgMCwgMiwgNywgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCA4 LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDgsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwg MCwgMiwgOCwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCA5LCAzMn0sDQo+ICsgICAgICAg ezIsIDAsIDAsIDIsIDksIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgOSwgMzJ9LA0KPiAr ICAgICAgIHswLCAwLCAwLCAyLCAxMCwgMjZ9LA0KPiArICAgICAgIHsyLCAwLCAwLCAyLCAxMCwg MzJ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAyLCAxMCwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAw LCAyLCAxMSwgMjZ9LA0KPiArICAgICAgIHsyLCAwLCAwLCAyLCAxMSwgMzJ9LA0KPiArICAgICAg IHsxLCAwLCAwLCAyLCAxMSwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCAxMiwgNjN9LA0K PiArICAgICAgIHsyLCAwLCAwLCAyLCAxMiwgMzJ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAyLCAx MiwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCAxMywgNjN9LA0KPiArICAgICAgIHsyLCAw LCAwLCAyLCAxMywgMjZ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAyLCAxMywgMjh9LA0KPiArICAg ICAgIHswLCAwLCAwLCAyLCAxNCwgNjN9LA0KPiArICAgICAgIHsyLCAwLCAwLCAyLCAxNCwgNjN9 LA0KPiArICAgICAgIHsxLCAwLCAwLCAyLCAxNCwgNjN9LA0KPiArICAgICAgIHswLCAwLCAwLCAy LCAxLCAzMH0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDEsIDMyfSwNCj4gKyAgICAgICB7MSwg MCwgMCwgMiwgMSwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCAyLCAzMn0sDQo+ICsgICAg ICAgezIsIDAsIDAsIDIsIDIsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgMiwgMzJ9LA0K PiArICAgICAgIHswLCAwLCAwLCAyLCAzLCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDMs IDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgMywgMzJ9LA0KPiArICAgICAgIHswLCAwLCAw LCAyLCA0LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDQsIDMyfSwNCj4gKyAgICAgICB7 MSwgMCwgMCwgMiwgNCwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCA1LCAzMn0sDQo+ICsg ICAgICAgezIsIDAsIDAsIDIsIDUsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgNSwgMzJ9 LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCA2LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIs IDYsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgNiwgMzJ9LA0KPiArICAgICAgIHswLCAw LCAwLCAyLCA3LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAsIDIsIDcsIDMyfSwNCj4gKyAgICAg ICB7MSwgMCwgMCwgMiwgNywgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCA4LCAzMn0sDQo+ ICsgICAgICAgezIsIDAsIDAsIDIsIDgsIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgOCwg MzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCA5LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDAs IDIsIDksIDMyfSwNCj4gKyAgICAgICB7MSwgMCwgMCwgMiwgOSwgMzJ9LA0KPiArICAgICAgIHsw LCAwLCAwLCAyLCAxMCwgMzJ9LA0KPiArICAgICAgIHsyLCAwLCAwLCAyLCAxMCwgMzJ9LA0KPiAr ICAgICAgIHsxLCAwLCAwLCAyLCAxMCwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCAxMSwg MzB9LA0KPiArICAgICAgIHsyLCAwLCAwLCAyLCAxMSwgMzJ9LA0KPiArICAgICAgIHsxLCAwLCAw LCAyLCAxMSwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAwLCAyLCAxMiwgNjN9LA0KPiArICAgICAg IHsyLCAwLCAwLCAyLCAxMiwgMzJ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAyLCAxMiwgMzJ9LA0K PiArICAgICAgIHswLCAwLCAwLCAyLCAxMywgNjN9LA0KPiArICAgICAgIHsyLCAwLCAwLCAyLCAx MywgMzJ9LA0KPiArICAgICAgIHsxLCAwLCAwLCAyLCAxMywgMzJ9LA0KPiArICAgICAgIHswLCAw LCAwLCAyLCAxNCwgNjN9LA0KPiArICAgICAgIHsyLCAwLCAwLCAyLCAxNCwgNjN9LA0KPiArICAg ICAgIHsxLCAwLCAwLCAyLCAxNCwgNjN9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAxLCA2M30s DQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDEsIDYzfSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwg MSwgNjN9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAyLCA2M30sDQo+ICsgICAgICAgezIsIDAs IDEsIDIsIDIsIDYzfSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgMiwgNjN9LA0KPiArICAgICAg IHswLCAwLCAxLCAyLCAzLCAyNn0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDMsIDI2fSwNCj4g KyAgICAgICB7MSwgMCwgMSwgMiwgMywgMjZ9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCA0LCAy Nn0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDQsIDI4fSwNCj4gKyAgICAgICB7MSwgMCwgMSwg MiwgNCwgMjZ9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCA1LCAyOH0sDQo+ICsgICAgICAgezIs IDAsIDEsIDIsIDUsIDI4fSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgNSwgMjZ9LA0KPiArICAg ICAgIHswLCAwLCAxLCAyLCA2LCAyOH0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDYsIDI4fSwN Cj4gKyAgICAgICB7MSwgMCwgMSwgMiwgNiwgMjZ9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCA3 LCAyOH0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDcsIDI4fSwNCj4gKyAgICAgICB7MSwgMCwg MSwgMiwgNywgMjZ9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCA4LCAyNn0sDQo+ICsgICAgICAg ezIsIDAsIDEsIDIsIDgsIDI4fSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgOCwgMjZ9LA0KPiAr ICAgICAgIHswLCAwLCAxLCAyLCA5LCAyNn0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDksIDI4 fSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgOSwgMjZ9LA0KPiArICAgICAgIHswLCAwLCAxLCAy LCAxMCwgMjZ9LA0KPiArICAgICAgIHsyLCAwLCAxLCAyLCAxMCwgMjh9LA0KPiArICAgICAgIHsx LCAwLCAxLCAyLCAxMCwgMjZ9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAxMSwgMjZ9LA0KPiAr ICAgICAgIHsyLCAwLCAxLCAyLCAxMSwgMjZ9LA0KPiArICAgICAgIHsxLCAwLCAxLCAyLCAxMSwg MjZ9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAxMiwgNjN9LA0KPiArICAgICAgIHsyLCAwLCAx LCAyLCAxMiwgMjZ9LA0KPiArICAgICAgIHsxLCAwLCAxLCAyLCAxMiwgMjZ9LA0KPiArICAgICAg IHswLCAwLCAxLCAyLCAxMywgNjN9LA0KPiArICAgICAgIHsyLCAwLCAxLCAyLCAxMywgMjZ9LA0K PiArICAgICAgIHsxLCAwLCAxLCAyLCAxMywgMjZ9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAx NCwgNjN9LA0KPiArICAgICAgIHsyLCAwLCAxLCAyLCAxNCwgNjN9LA0KPiArICAgICAgIHsxLCAw LCAxLCAyLCAxNCwgNjN9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAxLCA2M30sDQo+ICsgICAg ICAgezIsIDAsIDEsIDIsIDEsIDYzfSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgMSwgNjN9LA0K PiArICAgICAgIHswLCAwLCAxLCAyLCAyLCA2M30sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDIs IDYzfSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgMiwgNjN9LA0KPiArICAgICAgIHswLCAwLCAx LCAyLCAzLCAzMH0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDMsIDMwfSwNCj4gKyAgICAgICB7 MSwgMCwgMSwgMiwgMywgMzB9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCA0LCAzMn0sDQo+ICsg ICAgICAgezIsIDAsIDEsIDIsIDQsIDMwfSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgNCwgMzB9 LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCA1LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIs IDUsIDMwfSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgNSwgMzB9LA0KPiArICAgICAgIHswLCAw LCAxLCAyLCA2LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDYsIDMwfSwNCj4gKyAgICAg ICB7MSwgMCwgMSwgMiwgNiwgMzB9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCA3LCAzMn0sDQo+ ICsgICAgICAgezIsIDAsIDEsIDIsIDcsIDMwfSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgNywg MzB9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCA4LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDEs IDIsIDgsIDMwfSwNCj4gKyAgICAgICB7MSwgMCwgMSwgMiwgOCwgMzB9LA0KPiArICAgICAgIHsw LCAwLCAxLCAyLCA5LCAzMn0sDQo+ICsgICAgICAgezIsIDAsIDEsIDIsIDksIDMwfSwNCj4gKyAg ICAgICB7MSwgMCwgMSwgMiwgOSwgMzB9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAxMCwgMzJ9 LA0KPiArICAgICAgIHsyLCAwLCAxLCAyLCAxMCwgMzB9LA0KPiArICAgICAgIHsxLCAwLCAxLCAy LCAxMCwgMzB9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAxMSwgMzB9LA0KPiArICAgICAgIHsy LCAwLCAxLCAyLCAxMSwgMzB9LA0KPiArICAgICAgIHsxLCAwLCAxLCAyLCAxMSwgMzB9LA0KPiAr ICAgICAgIHswLCAwLCAxLCAyLCAxMiwgNjN9LA0KPiArICAgICAgIHsyLCAwLCAxLCAyLCAxMiwg MzJ9LA0KPiArICAgICAgIHsxLCAwLCAxLCAyLCAxMiwgMzJ9LA0KPiArICAgICAgIHswLCAwLCAx LCAyLCAxMywgNjN9LA0KPiArICAgICAgIHsyLCAwLCAxLCAyLCAxMywgMzJ9LA0KPiArICAgICAg IHsxLCAwLCAxLCAyLCAxMywgMzJ9LA0KPiArICAgICAgIHswLCAwLCAxLCAyLCAxNCwgNjN9LA0K PiArICAgICAgIHsyLCAwLCAxLCAyLCAxNCwgNjN9LA0KPiArICAgICAgIHsxLCAwLCAxLCAyLCAx NCwgNjN9LA0KPiArfTsNCj4gKw0KPiArUlRXX0RFQ0xfVEFCTEVfVFhQV1JfTE1UKHJ0dzg3MjNi X3R4cHdyX2xtdCk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVr L3J0dzg4L3J0dzg3MjNiX3RhYmxlLmgNCj4gYi9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVr L3J0dzg4L3J0dzg3MjNiX3RhYmxlLmgNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgg MDAwMDAwMDAwMDAwLi43ZjZmODIzZDk4YWUNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2 ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNiX3RhYmxlLmgNCj4gQEAgLTAs MCArMSwxNSBAQA0KPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNE LTMtQ2xhdXNlICovDQoNCkNvcHlyaWdodChjKSBSZWFsdGVrIENvcnBvcmF0aW9uDQoNCj4gKy8q IENvcHlyaWdodChjKSBNaWNoYWVsIFN0cmF1YmUgPHN0cmF1YmUubGludXhAZ21haWwuY29tPiAq Lw0KPiArLyogQ29weXJpZ2h0KGMpIDIwMjQtMjAyNiBMdWthIEdlamFrIDxsdWthLmdlamFrQGxp bnV4LmRldj4gKi8NCj4gKw0KPiArI2lmbmRlZiBfX1JUVzg3MjNCX1RBQkxFX0hfXw0KPiArI2Rl ZmluZSBfX1JUVzg3MjNCX1RBQkxFX0hfXw0KPiArDQo+ICtleHRlcm4gY29uc3Qgc3RydWN0IHJ0 d190YWJsZSBydHc4NzIzYl9tYWNfdGJsOw0KPiArZXh0ZXJuIGNvbnN0IHN0cnVjdCBydHdfdGFi bGUgcnR3ODcyM2JfYWdjX3RibDsNCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlIHJ0 dzg3MjNiX2JiX3RibDsNCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlIHJ0dzg3MjNi X2JiX3BnX3RibDsNCj4gK2V4dGVybiBjb25zdCBzdHJ1Y3QgcnR3X3RhYmxlIHJ0dzg3MjNiX3Jm X2FfdGJsOw0KPiArZXh0ZXJuIGNvbnN0IHN0cnVjdCBydHdfdGFibGUgcnR3ODcyM2JfdHhwd3Jf bG10X3RibDsNCj4gKw0KPiArI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJl bGVzcy9yZWFsdGVrL3J0dzg4L3J0dzg3MjNicy5jDQo+IGIvZHJpdmVycy9uZXQvd2lyZWxlc3Mv cmVhbHRlay9ydHc4OC9ydHc4NzIzYnMuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwMDAwMDAuLmRhMGI5ODAyZjYzMw0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2Ry aXZlcnMvbmV0L3dpcmVsZXNzL3JlYWx0ZWsvcnR3ODgvcnR3ODcyM2JzLmMNCj4gQEAgLTAsMCAr MSwzNiBAQA0KPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAgT1IgQlNELTMt Q2xhdXNlDQoNCkNvcHlyaWdodChjKSBSZWFsdGVrIENvcnBvcmF0aW9uDQoNCj4gKy8qIENvcHly aWdodChjKSBNaWNoYWVsIFN0cmF1YmUgPHN0cmF1YmUubGludXhAZ21haWwuY29tPiAqLw0KPiAr LyogQ29weXJpZ2h0KGMpIDIwMjQtMjAyNiBMdWthIEdlamFrIDxsdWthLmdlamFrQGxpbnV4LmRl dj4gKi8NCj4gKw0KPiArI2luY2x1ZGUgPGxpbnV4L21tYy9zZGlvX2Z1bmMuaD4NCj4gKyNpbmNs dWRlIDxsaW51eC9tbWMvc2Rpb19pZHMuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4N Cj4gKyNpbmNsdWRlICJtYWluLmgiDQo+ICsjaW5jbHVkZSAicnR3ODcyM2IuaCINCj4gKyNpbmNs dWRlICJzZGlvLmgiDQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc2Rpb19kZXZpY2VfaWQg cnR3Xzg3MjNic19pZF90YWJsZVtdID0gew0KPiArICAgICAgIHsNCj4gKyAgICAgICAgICAgICAg IFNESU9fREVWSUNFKFNESU9fVkVORE9SX0lEX1JFQUxURUssDQo+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICBTRElPX0RFVklDRV9JRF9SRUFMVEVLX1JUVzg3MjNCUyksDQo+ICsgICAgICAg ICAgICAgICAuZHJpdmVyX2RhdGEgPSAoa2VybmVsX3Vsb25nX3QpJnJ0dzg3MjNiX2h3X3NwZWMs DQo+ICsgICAgICAgfSwNCj4gKyAgICAgICB7fQ0KPiArfTsNCj4gK01PRFVMRV9ERVZJQ0VfVEFC TEUoc2RpbywgcnR3Xzg3MjNic19pZF90YWJsZSk7DQo+ICsNCj4gK3N0YXRpYyBzdHJ1Y3Qgc2Rp b19kcml2ZXIgcnR3Xzg3MjNic19kcml2ZXIgPSB7DQo+ICsgICAgICAgLm5hbWUgPSBLQlVJTERf TU9ETkFNRSwNCj4gKyAgICAgICAuaWRfdGFibGUgPSBydHdfODcyM2JzX2lkX3RhYmxlLA0KPiAr ICAgICAgIC5wcm9iZSA9IHJ0d19zZGlvX3Byb2JlLA0KPiArICAgICAgIC5yZW1vdmUgPSBydHdf c2Rpb19yZW1vdmUsDQo+ICsgICAgICAgLnNodXRkb3duID0gcnR3X3NkaW9fc2h1dGRvd24sDQo+ ICsgICAgICAgLmRydiA9IHsNCj4gKyAgICAgICAgICAgICAgIC5wbSA9ICZydHdfc2Rpb19wbV9v cHMsDQo+ICsgICAgICAgfX07DQo+ICttb2R1bGVfc2Rpb19kcml2ZXIocnR3Xzg3MjNic19kcml2 ZXIpOw0KPiArDQo+ICtNT0RVTEVfQVVUSE9SKCJNaWNoYWVsIFN0cmF1YmUgPHN0cmF1YmUubGlu dXhAZ21haWwuY29tPiIpOw0KPiArTU9EVUxFX0FVVEhPUigiTHVrYSBHZWphayA8bHVrYS5nZWph a0BsaW51eC5kZXY+Iik7DQo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIlJlYWx0ZWsgODAyLjExbiB3 aXJlbGVzcyA4NzIzYnMgZHJpdmVyIik7DQo+ICtNT0RVTEVfTElDRU5TRSgiRHVhbCBCU0QvR1BM Iik7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC93aXJlbGVzcy9yZWFsdGVrL3J0dzg4L3Nl Yy5oIGIvZHJpdmVycy9uZXQvd2lyZWxlc3MvcmVhbHRlay9ydHc4OC9zZWMuaA0KPiBpbmRleCBl ZmNmNDU0MzM5OTkuLjczZjJhZjY2ZWZmZSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9uZXQvd2ly ZWxlc3MvcmVhbHRlay9ydHc4OC9zZWMuaA0KPiArKysgYi9kcml2ZXJzL25ldC93aXJlbGVzcy9y ZWFsdGVrL3J0dzg4L3NlYy5oDQo+IEBAIC0yMiw2ICsyMiw3IEBADQo+ICAjZGVmaW5lIFJUV19T RUNfUlhfREVDX0VOICAgICAgICAgICAgICBCSVQoMykNCj4gICNkZWZpbmUgUlRXX1NFQ19UWF9C Q19VU0VfREsgICAgICAgICAgIEJJVCg2KQ0KPiAgI2RlZmluZSBSVFdfU0VDX1JYX0JDX1VTRV9E SyAgICAgICAgICAgQklUKDcpDQo+ICsjZGVmaW5lIFJUV19TRUNfQ0hLX0tFWUlEICAgICAgICAg ICAgICBCSVQoOCkNCj4gDQo+ICAjZGVmaW5lIFJUV19TRUNfRU5HSU5FX0VOICAgICAgICAgICAg ICBCSVQoOSkNCj4gDQo+IC0tDQo+IDIuNTUuMA0KDQo=