From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2] drm/i915/skl: Buffer translation improvements Date: Mon, 29 Jun 2015 18:12:54 +0200 Message-ID: <20150629161254.GZ30960@phenom.ffwll.local> References: <20150618095033.GH14570@boom> <20150625081103.GO14570@boom> <55911F5A.5020204@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wg0-f51.google.com (mail-wg0-f51.google.com [74.125.82.51]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5EE1E6E3ED for ; Mon, 29 Jun 2015 09:10:38 -0700 (PDT) Received: by wgqq4 with SMTP id q4so145565531wgq.1 for ; Mon, 29 Jun 2015 09:10:36 -0700 (PDT) Content-Disposition: inline In-Reply-To: <55911F5A.5020204@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Antti =?iso-8859-1?Q?Koskip=E4=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBKdW4gMjksIDIwMTUgYXQgMDE6MzU6MDZQTSArMDMwMCwgQW50dGkgS29za2lww6TD pCB3cm90ZToKPiBMb29rcyBmaW5lIHRvIG1lLgo+IAo+IFJldmlld2VkLWJ5OiBBbnR0aSBLb3Nr aXDDpMOkIDxhbnR0aS5rb3NraXBhYUBsaW51eC5pbnRlbC5jb20+Cj4gCj4gCj4gT24gMDYvMjUv MjAxNSAxMToxMSBBTSwgRGF2aWQgV2VpbmVoYWxsIHdyb3RlOgo+ID4gVGhpcyBwYXRjaCBhZGRz IHN1cHBvcnQgZm9yIDAuODVWIFZjY0lPIG9uIFNreWxha2UgWSwKPiA+IHNlcGFyYXRlIGJ1ZmZl ciB0cmFuc2xhdGlvbiB0YWJsZXMgZm9yIFNreWxha2UgVSwKPiA+IGFuZCBzdXBwb3J0IGZvciBJ X2Jvb3N0IGZvciB0aGUgZW50cmllcyB0aGF0IG5lZWRzIHRoaXMuCj4gPiAKPiA+IENoYW5nZXMg aW4gdjI6Cj4gPiAqIFJlZmFjdG9yZWQgdGhlIGNvZGUgYSBiaXQgdG8gbW92ZSBhbGwgRERJIHNp Z25hbCBsZXZlbCBzZXR1cCB0bwo+ID4gICBpbnRlbF9kZGkuYwoKRm9yIG5leHQgdGltZSBhcm91 bmQgcGxlYXNlIHNwbGl0IG91dCByZWZhY3RvcmluZyBmcm9tIGFjdHVhbCBjb2RlCmNoYW5nZXMs IG1ha2VzIGl0IGEgcGFpbiB0byByZXZpZXcuIEFuZCBpZiB0aGlzIGJsb3dzIHVwIGluIGEKcmVn cmVzc2lvbiB0aGF0J3MgcmVhbGx5IGFubm95aW5nLiBBbHNvIHBsZWFzZSBoZWFkIGNoZWNrcGF0 Y2gncwpzdWdnZXN0aW9ucyBhIGJpdCBtb3JlLCBJIGZpeGVkIHRoYXQgdXAgd2hlbiBhcHBseWlu Zy4KLURhbmllbAoKPiA+IAo+ID4gSXNzdWU6IFZJWi01Njc3Cj4gPiBTaWduZWQtb2ZmLWJ5OiBE YXZpZCBXZWluZWhhbGwgPGRhdmlkLndlaW5laGFsbEBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0K PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAgOCArCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgfCAgMTIgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jIHwgNTA3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0t LS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgIHwgMTA0ICstLS0tLS0t Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgIDMgKy0KPiA+ICA1IGZp bGVzIGNoYW5nZWQsIDQyMSBpbnNlcnRpb25zKCspLCAyMTMgZGVsZXRpb25zKC0pCj4gPiAKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ID4gaW5kZXggNDkxZWYwY2ZjYjBiLi4wOWE1N2E1ODRm NWYgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMjQxNSw2ICsyNDE1 LDE0IEBAIHN0cnVjdCBkcm1faTkxNV9jbWRfdGFibGUgewo+ID4gIC8qIFVMWCBtYWNoaW5lcyBh cmUgYWxzbyBjb25zaWRlcmVkIFVMVC4gKi8KPiA+ICAjZGVmaW5lIElTX0hTV19VTFgoZGV2KQkJ KElOVEVMX0RFVklEKGRldikgPT0gMHgwQTBFIHx8IFwKPiA+ICAJCQkJIElOVEVMX0RFVklEKGRl dikgPT0gMHgwQTFFKQo+ID4gKyNkZWZpbmUgSVNfU0tMX1VMVChkZXYpCQkoSU5URUxfREVWSUQo ZGV2KSA9PSAweDE5MDYgfHwgXAo+ID4gKwkJCQkgSU5URUxfREVWSUQoZGV2KSA9PSAweDE5MTMg fHwgXAo+ID4gKwkJCQkgSU5URUxfREVWSUQoZGV2KSA9PSAweDE5MTYgfHwgXAo+ID4gKwkJCQkg SU5URUxfREVWSUQoZGV2KSA9PSAweDE5MjEgfHwgXAo+ID4gKwkJCQkgSU5URUxfREVWSUQoZGV2 KSA9PSAweDE5MjYpCj4gPiArI2RlZmluZSBJU19TS0xfVUxYKGRldikJCShJTlRFTF9ERVZJRChk ZXYpID09IDB4MTkwRSB8fCBcCj4gPiArCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4MTkxNSB8 fCBcCj4gPiArCQkJCSBJTlRFTF9ERVZJRChkZXYpID09IDB4MTkxRSkKPiA+ICAjZGVmaW5lIElT X1BSRUxJTUlOQVJZX0hXKGludGVsX2luZm8pICgoaW50ZWxfaW5mbyktPmlzX3ByZWxpbWluYXJ5 KQo+ID4gIAo+ID4gICNkZWZpbmUgU0tMX1JFVklEX0EwCQkoMHgwKQo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3JlZy5oCj4gPiBpbmRleCAwYjk3OWFkMTZkNDEuLmZiNjNlYWQyYjhlYiAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPiA+IEBAIC0xMzgyLDYgKzEzODIsMTggQEAgZW51bSBz a2xfZGlzcF9wb3dlcl93ZWxscyB7Cj4gPiAgCQkJCQkJCV9QT1JUX1RYX0RXMTRfTE4wX0MpICsg XAo+ID4gIAkJCQkJIF9CWFRfTEFORV9PRkZTRVQobGFuZSkpCj4gPiAgCj4gPiArLyogVUFJTUkg c2NyYXRjaCBwYWQgcmVnaXN0ZXIgMSAqLwo+ID4gKyNkZWZpbmUgVUFJTUlfU1BSMQkJCTB4NEYw NzQKPiA+ICsvKiBTS0wgVmNjSU8gbWFzayAqLwo+ID4gKyNkZWZpbmUgU0tMX1ZDQ0lPX01BU0sJ CQkweDEKPiA+ICsvKiBTS0wgYmFsYW5jZSBsZWcgcmVnaXN0ZXIgKi8KPiA+ICsjZGVmaW5lIERJ U1BJT19DUl9UWF9CTVVfQ1IwCQkweDZDMDBDCj4gPiArLyogSV9ib29zdCB2YWx1ZXMgKi8KPiA+ ICsjZGVmaW5lIEJBTEFOQ0VfTEVHX1NISUZUKHBvcnQpCQkoOCszKihwb3J0KSkKPiA+ICsjZGVm aW5lIEJBTEFOQ0VfTEVHX01BU0socG9ydCkJCSg3PDwoOCszKihwb3J0KSkpCj4gPiArLyogQmFs YW5jZSBsZWcgZGlzYWJsZSBiaXRzICovCj4gPiArI2RlZmluZSBCQUxBTkNFX0xFR19ESVNBQkxF X1NISUZUCTIzCj4gPiArCj4gPiAgLyoKPiA+ICAgKiBGZW5jZSByZWdpc3RlcnMKPiA+ICAgKi8K PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiBpbmRleCAzMWIyOWU4NzgxYWMuLjA4Zjg5 Mjk5YjU3MiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gQEAgLTMxLDYg KzMxLDcgQEAKPiA+ICBzdHJ1Y3QgZGRpX2J1Zl90cmFucyB7Cj4gPiAgCXUzMiB0cmFuczE7CS8q IGJhbGFuY2UgbGVnIGVuYWJsZSwgZGUtZW1waCBsZXZlbCAqLwo+ID4gIAl1MzIgdHJhbnMyOwkv KiB2cmVmIHNlbCwgdnN3aW5nICovCj4gPiArCXU4IGlfYm9vc3Q7CS8qIFNLTDogSV9ib29zdDsg dmFsaWQ6IDB4MCwgMHgxLCAweDMsIDB4NyAqLwo+ID4gIH07Cj4gPiAgCj4gPiAgLyogSERNSS9E VkkgbW9kZXMgaWdub3JlIGV2ZXJ5dGhpbmcgYnV0IHRoZSBsYXN0IDIgaXRlbXMuIFNvIHdlIHNo YXJlCj4gPiBAQCAtMzgsMTM0ICszOSwyMTMgQEAgc3RydWN0IGRkaV9idWZfdHJhbnMgewo+ID4g ICAqIGF1dG9tYXRpY2FsbHkgYWRhcHQgdG8gSERNSSBjb25uZWN0aW9ucyBhcyB3ZWxsCj4gPiAg ICovCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIGhzd19kZGlfdHJhbnNs YXRpb25zX2RwW10gPSB7Cj4gPiAtCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwRSB9LAo+ID4gLQl7 IDB4MDBENzVGRkYsIDB4MDAwNTAwMEEgfSwKPiA+IC0JeyAweDAwQzMwRkZGLCAweDAwMDQwMDA2 IH0sCj4gPiAtCXsgMHg4MEFBQUZGRiwgMHgwMDBCMDAwMCB9LAo+ID4gLQl7IDB4MDBGRkZGRkYs IDB4MDAwNTAwMEEgfSwKPiA+IC0JeyAweDAwRDc1RkZGLCAweDAwMEMwMDA0IH0sCj4gPiAtCXsg MHg4MEMzMEZGRiwgMHgwMDBCMDAwMCB9LAo+ID4gLQl7IDB4MDBGRkZGRkYsIDB4MDAwNDAwMDYg fSwKPiA+IC0JeyAweDgwRDc1RkZGLCAweDAwMEIwMDAwIH0sCj4gPiArCXsgMHgwMEZGRkZGRiwg MHgwMDA2MDAwRSwgMHgwIH0sCj4gPiArCXsgMHgwMEQ3NUZGRiwgMHgwMDA1MDAwQSwgMHgwIH0s Cj4gPiArCXsgMHgwMEMzMEZGRiwgMHgwMDA0MDAwNiwgMHgwIH0sCj4gPiArCXsgMHg4MEFBQUZG RiwgMHgwMDBCMDAwMCwgMHgwIH0sCj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDA1MDAwQSwgMHgw IH0sCj4gPiArCXsgMHgwMEQ3NUZGRiwgMHgwMDBDMDAwNCwgMHgwIH0sCj4gPiArCXsgMHg4MEMz MEZGRiwgMHgwMDBCMDAwMCwgMHgwIH0sCj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDA0MDAwNiwg MHgwIH0sCj4gPiArCXsgMHg4MEQ3NUZGRiwgMHgwMDBCMDAwMCwgMHgwIH0sCj4gPiAgfTsKPiA+ ICAKPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgaHN3X2RkaV90cmFuc2xh dGlvbnNfZmRpW10gPSB7Cj4gPiAtCXsgMHgwMEZGRkZGRiwgMHgwMDA3MDAwRSB9LAo+ID4gLQl7 IDB4MDBENzVGRkYsIDB4MDAwRjAwMEEgfSwKPiA+IC0JeyAweDAwQzMwRkZGLCAweDAwMDYwMDA2 IH0sCj4gPiAtCXsgMHgwMEFBQUZGRiwgMHgwMDFFMDAwMCB9LAo+ID4gLQl7IDB4MDBGRkZGRkYs IDB4MDAwRjAwMEEgfSwKPiA+IC0JeyAweDAwRDc1RkZGLCAweDAwMTYwMDA0IH0sCj4gPiAtCXsg MHgwMEMzMEZGRiwgMHgwMDFFMDAwMCB9LAo+ID4gLQl7IDB4MDBGRkZGRkYsIDB4MDAwNjAwMDYg fSwKPiA+IC0JeyAweDAwRDc1RkZGLCAweDAwMUUwMDAwIH0sCj4gPiArCXsgMHgwMEZGRkZGRiwg MHgwMDA3MDAwRSwgMHgwIH0sCj4gPiArCXsgMHgwMEQ3NUZGRiwgMHgwMDBGMDAwQSwgMHgwIH0s Cj4gPiArCXsgMHgwMEMzMEZGRiwgMHgwMDA2MDAwNiwgMHgwIH0sCj4gPiArCXsgMHgwMEFBQUZG RiwgMHgwMDFFMDAwMCwgMHgwIH0sCj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDBGMDAwQSwgMHgw IH0sCj4gPiArCXsgMHgwMEQ3NUZGRiwgMHgwMDE2MDAwNCwgMHgwIH0sCj4gPiArCXsgMHgwMEMz MEZGRiwgMHgwMDFFMDAwMCwgMHgwIH0sCj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwNiwg MHgwIH0sCj4gPiArCXsgMHgwMEQ3NUZGRiwgMHgwMDFFMDAwMCwgMHgwIH0sCj4gPiAgfTsKPiA+ ICAKPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgaHN3X2RkaV90cmFuc2xh dGlvbnNfaGRtaVtdID0gewo+ID4gIAkJCQkJLyogSWR4CU5UIG1WIGQJVCBtViBkCWRiCSovCj4g PiAtCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwRSB9LAkvKiAwOgk0MDAJNDAwCTAJKi8KPiA+IC0J eyAweDAwRTc5RkZGLCAweDAwMEUwMDBDIH0sCS8qIDE6CTQwMAk1MDAJMgkqLwo+ID4gLQl7IDB4 MDBENzVGRkYsIDB4MDAwNTAwMEEgfSwJLyogMjoJNDAwCTYwMAkzLjUJKi8KPiA+IC0JeyAweDAw RkZGRkZGLCAweDAwMDUwMDBBIH0sCS8qIDM6CTYwMAk2MDAJMAkqLwo+ID4gLQl7IDB4MDBFNzlG RkYsIDB4MDAxRDAwMDcgfSwJLyogNDoJNjAwCTc1MAkyCSovCj4gPiAtCXsgMHgwMEQ3NUZGRiwg MHgwMDBDMDAwNCB9LAkvKiA1Ogk2MDAJOTAwCTMuNQkqLwo+ID4gLQl7IDB4MDBGRkZGRkYsIDB4 MDAwNDAwMDYgfSwJLyogNjoJODAwCTgwMAkwCSovCj4gPiAtCXsgMHg4MEU3OUZGRiwgMHgwMDAz MDAwMiB9LAkvKiA3Ogk4MDAJMTAwMAkyCSovCj4gPiAtCXsgMHgwMEZGRkZGRiwgMHgwMDE0MDAw NSB9LAkvKiA4Ogk4NTAJODUwCTAJKi8KPiA+IC0JeyAweDAwRkZGRkZGLCAweDAwMEMwMDA0IH0s CS8qIDk6CTkwMAk5MDAJMAkqLwo+ID4gLQl7IDB4MDBGRkZGRkYsIDB4MDAxQzAwMDMgfSwJLyog MTA6CTk1MAk5NTAJMAkqLwo+ID4gLQl7IDB4ODBGRkZGRkYsIDB4MDAwMzAwMDIgfSwJLyogMTE6 CTEwMDAJMTAwMAkwCSovCj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDA2MDAwRSwgMHgwIH0sLyog MDoJNDAwCTQwMAkwCSovCj4gPiArCXsgMHgwMEU3OUZGRiwgMHgwMDBFMDAwQywgMHgwIH0sLyog MToJNDAwCTUwMAkyCSovCj4gPiArCXsgMHgwMEQ3NUZGRiwgMHgwMDA1MDAwQSwgMHgwIH0sLyog MjoJNDAwCTYwMAkzLjUJKi8KPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMDUwMDBBLCAweDAgfSwv KiAzOgk2MDAJNjAwCTAJKi8KPiA+ICsJeyAweDAwRTc5RkZGLCAweDAwMUQwMDA3LCAweDAgfSwv KiA0Ogk2MDAJNzUwCTIJKi8KPiA+ICsJeyAweDAwRDc1RkZGLCAweDAwMEMwMDA0LCAweDAgfSwv KiA1Ogk2MDAJOTAwCTMuNQkqLwo+ID4gKwl7IDB4MDBGRkZGRkYsIDB4MDAwNDAwMDYsIDB4MCB9 LC8qIDY6CTgwMAk4MDAJMAkqLwo+ID4gKwl7IDB4ODBFNzlGRkYsIDB4MDAwMzAwMDIsIDB4MCB9 LC8qIDc6CTgwMAkxMDAwCTIJKi8KPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMTQwMDA1LCAweDAg fSwvKiA4Ogk4NTAJODUwCTAJKi8KPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMEMwMDA0LCAweDAg fSwvKiA5Ogk5MDAJOTAwCTAJKi8KPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMUMwMDAzLCAweDAg fSwvKiAxMDoJOTUwCTk1MAkwCSovCj4gPiArCXsgMHg4MEZGRkZGRiwgMHgwMDAzMDAwMiwgMHgw IH0sLyogMTE6CTEwMDAJMTAwMAkwCSovCj4gPiAgfTsKPiA+ICAKPiA+ICBzdGF0aWMgY29uc3Qg c3RydWN0IGRkaV9idWZfdHJhbnMgYmR3X2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7Cj4gPiAt CXsgMHgwMEZGRkZGRiwgMHgwMDAwMDAxMiB9LAo+ID4gLQl7IDB4MDBFQkFGRkYsIDB4MDAwMjAw MTEgfSwKPiA+IC0JeyAweDAwQzcxRkZGLCAweDAwMDYwMDBGIH0sCj4gPiAtCXsgMHgwMEFBQUZG RiwgMHgwMDBFMDAwQSB9LAo+ID4gLQl7IDB4MDBGRkZGRkYsIDB4MDAwMjAwMTEgfSwKPiA+IC0J eyAweDAwREI2RkZGLCAweDAwMDUwMDBGIH0sCj4gPiAtCXsgMHgwMEJFRUZGRiwgMHgwMDBBMDAw QyB9LAo+ID4gLQl7IDB4MDBGRkZGRkYsIDB4MDAwNTAwMEYgfSwKPiA+IC0JeyAweDAwREI2RkZG LCAweDAwMEEwMDBDIH0sCj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDAwMDAxMiwgMHgwIH0sCj4g PiArCXsgMHgwMEVCQUZGRiwgMHgwMDAyMDAxMSwgMHgwIH0sCj4gPiArCXsgMHgwMEM3MUZGRiwg MHgwMDA2MDAwRiwgMHgwIH0sCj4gPiArCXsgMHgwMEFBQUZGRiwgMHgwMDBFMDAwQSwgMHgwIH0s Cj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDAyMDAxMSwgMHgwIH0sCj4gPiArCXsgMHgwMERCNkZG RiwgMHgwMDA1MDAwRiwgMHgwIH0sCj4gPiArCXsgMHgwMEJFRUZGRiwgMHgwMDBBMDAwQywgMHgw IH0sCj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDA1MDAwRiwgMHgwIH0sCj4gPiArCXsgMHgwMERC NkZGRiwgMHgwMDBBMDAwQywgMHgwIH0sCj4gPiAgfTsKPiA+ICAKPiA+ICBzdGF0aWMgY29uc3Qg c3RydWN0IGRkaV9idWZfdHJhbnMgYmR3X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiA+IC0J eyAweDAwRkZGRkZGLCAweDAwMDcwMDBFIH0sCj4gPiAtCXsgMHgwMEQ3NUZGRiwgMHgwMDBFMDAw QSB9LAo+ID4gLQl7IDB4MDBCRUZGRkYsIDB4MDAxNDAwMDYgfSwKPiA+IC0JeyAweDgwQjJDRkZG LCAweDAwMUIwMDAyIH0sCj4gPiAtCXsgMHgwMEZGRkZGRiwgMHgwMDBFMDAwQSB9LAo+ID4gLQl7 IDB4MDBEQjZGRkYsIDB4MDAxNjAwMDUgfSwKPiA+IC0JeyAweDgwQzcxRkZGLCAweDAwMUEwMDAy IH0sCj4gPiAtCXsgMHgwMEY3REZGRiwgMHgwMDE4MDAwNCB9LAo+ID4gLQl7IDB4ODBENzVGRkYs IDB4MDAxQjAwMDIgfSwKPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMDcwMDBFLCAweDAgfSwKPiA+ ICsJeyAweDAwRDc1RkZGLCAweDAwMEUwMDBBLCAweDAgfSwKPiA+ICsJeyAweDAwQkVGRkZGLCAw eDAwMTQwMDA2LCAweDAgfSwKPiA+ICsJeyAweDgwQjJDRkZGLCAweDAwMUIwMDAyLCAweDAgfSwK PiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMEUwMDBBLCAweDAgfSwKPiA+ICsJeyAweDAwREI2RkZG LCAweDAwMTYwMDA1LCAweDAgfSwKPiA+ICsJeyAweDgwQzcxRkZGLCAweDAwMUEwMDAyLCAweDAg fSwKPiA+ICsJeyAweDAwRjdERkZGLCAweDAwMTgwMDA0LCAweDAgfSwKPiA+ICsJeyAweDgwRDc1 RkZGLCAweDAwMUIwMDAyLCAweDAgfSwKPiA+ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZGRpX2J1Zl90cmFucyBiZHdfZGRpX3RyYW5zbGF0aW9uc19mZGlbXSA9IHsKPiA+IC0J eyAweDAwRkZGRkZGLCAweDAwMDEwMDBFIH0sCj4gPiAtCXsgMHgwMEQ3NUZGRiwgMHgwMDA0MDAw QSB9LAo+ID4gLQl7IDB4MDBDMzBGRkYsIDB4MDAwNzAwMDYgfSwKPiA+IC0JeyAweDAwQUFBRkZG LCAweDAwMEMwMDAwIH0sCj4gPiAtCXsgMHgwMEZGRkZGRiwgMHgwMDA0MDAwQSB9LAo+ID4gLQl7 IDB4MDBENzVGRkYsIDB4MDAwOTAwMDQgfSwKPiA+IC0JeyAweDAwQzMwRkZGLCAweDAwMEMwMDAw IH0sCj4gPiAtCXsgMHgwMEZGRkZGRiwgMHgwMDA3MDAwNiB9LAo+ID4gLQl7IDB4MDBENzVGRkYs IDB4MDAwQzAwMDAgfSwKPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMDEwMDBFLCAweDAgfSwKPiA+ ICsJeyAweDAwRDc1RkZGLCAweDAwMDQwMDBBLCAweDAgfSwKPiA+ICsJeyAweDAwQzMwRkZGLCAw eDAwMDcwMDA2LCAweDAgfSwKPiA+ICsJeyAweDAwQUFBRkZGLCAweDAwMEMwMDAwLCAweDAgfSwK PiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMDQwMDBBLCAweDAgfSwKPiA+ICsJeyAweDAwRDc1RkZG LCAweDAwMDkwMDA0LCAweDAgfSwKPiA+ICsJeyAweDAwQzMwRkZGLCAweDAwMEMwMDAwLCAweDAg fSwKPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMDcwMDA2LCAweDAgfSwKPiA+ICsJeyAweDAwRDc1 RkZGLCAweDAwMEMwMDAwLCAweDAgfSwKPiA+ICB9Owo+ID4gIAo+ID4gIHN0YXRpYyBjb25zdCBz dHJ1Y3QgZGRpX2J1Zl90cmFucyBiZHdfZGRpX3RyYW5zbGF0aW9uc19oZG1pW10gPSB7Cj4gPiAg CQkJCQkvKiBJZHgJTlQgbVYgZAlUIG1WIGRmCWRiCSovCj4gPiAtCXsgMHgwMEZGRkZGRiwgMHgw MDA3MDAwRSB9LAkvKiAwOgk0MDAJNDAwCTAJKi8KPiA+IC0JeyAweDAwRDc1RkZGLCAweDAwMEUw MDBBIH0sCS8qIDE6CTQwMAk2MDAJMy41CSovCj4gPiAtCXsgMHgwMEJFRkZGRiwgMHgwMDE0MDAw NiB9LAkvKiAyOgk0MDAJODAwCTYJKi8KPiA+IC0JeyAweDAwRkZGRkZGLCAweDAwMDkwMDBEIH0s CS8qIDM6CTQ1MAk0NTAJMAkqLwo+ID4gLQl7IDB4MDBGRkZGRkYsIDB4MDAwRTAwMEEgfSwJLyog NDoJNjAwCTYwMAkwCSovCj4gPiAtCXsgMHgwMEQ3RkZGRiwgMHgwMDE0MDAwNiB9LAkvKiA1Ogk2 MDAJODAwCTIuNQkqLwo+ID4gLQl7IDB4ODBDQjJGRkYsIDB4MDAxQjAwMDIgfSwJLyogNjoJNjAw CTEwMDAJNC41CSovCj4gPiAtCXsgMHgwMEZGRkZGRiwgMHgwMDE0MDAwNiB9LAkvKiA3Ogk4MDAJ ODAwCTAJKi8KPiA+IC0JeyAweDgwRTc5RkZGLCAweDAwMUIwMDAyIH0sCS8qIDg6CTgwMAkxMDAw CTIJKi8KPiA+IC0JeyAweDgwRkZGRkZGLCAweDAwMUIwMDAyIH0sCS8qIDk6CTEwMDAJMTAwMAkw CSovCj4gPiArCXsgMHgwMEZGRkZGRiwgMHgwMDA3MDAwRSwgMHgwIH0sLyogMDoJNDAwCTQwMAkw CSovCj4gPiArCXsgMHgwMEQ3NUZGRiwgMHgwMDBFMDAwQSwgMHgwIH0sLyogMToJNDAwCTYwMAkz LjUJKi8KPiA+ICsJeyAweDAwQkVGRkZGLCAweDAwMTQwMDA2LCAweDAgfSwvKiAyOgk0MDAJODAw CTYJKi8KPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMDkwMDBELCAweDAgfSwvKiAzOgk0NTAJNDUw CTAJKi8KPiA+ICsJeyAweDAwRkZGRkZGLCAweDAwMEUwMDBBLCAweDAgfSwvKiA0Ogk2MDAJNjAw CTAJKi8KPiA+ICsJeyAweDAwRDdGRkZGLCAweDAwMTQwMDA2LCAweDAgfSwvKiA1Ogk2MDAJODAw CTIuNQkqLwo+ID4gKwl7IDB4ODBDQjJGRkYsIDB4MDAxQjAwMDIsIDB4MCB9LC8qIDY6CTYwMAkx MDAwCTQuNQkqLwo+ID4gKwl7IDB4MDBGRkZGRkYsIDB4MDAxNDAwMDYsIDB4MCB9LC8qIDc6CTgw MAk4MDAJMAkqLwo+ID4gKwl7IDB4ODBFNzlGRkYsIDB4MDAxQjAwMDIsIDB4MCB9LC8qIDg6CTgw MAkxMDAwCTIJKi8KPiA+ICsJeyAweDgwRkZGRkZGLCAweDAwMUIwMDAyLCAweDAgfSwvKiA5Ogkx MDAwCTEwMDAJMAkqLwo+ID4gIH07Cj4gPiAgCj4gPiArLyogU2t5bGFrZSBILCBTLCBhbmQgU2t5 bGFrZSBZIHdpdGggMC45NVYgVmNjSU8gKi8KPiA+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9i dWZfdHJhbnMgc2tsX2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiA+IC0JeyAweDAwMDAwMDE4 LCAweDAwMDAwMGEyIH0sCj4gPiAtCXsgMHgwMDAwNDAxNCwgMHgwMDAwMDA5QiB9LAo+ID4gLQl7 IDB4MDAwMDYwMTIsIDB4MDAwMDAwODggfSwKPiA+IC0JeyAweDAwMDA4MDEwLCAweDAwMDAwMDg3 IH0sCj4gPiAtCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDA5QiB9LAo+ID4gLQl7IDB4MDAwMDQwMTQs IDB4MDAwMDAwODggfSwKPiA+IC0JeyAweDAwMDA2MDEyLCAweDAwMDAwMDg3IH0sCj4gPiAtCXsg MHgwMDAwMDAxOCwgMHgwMDAwMDA4OCB9LAo+ID4gLQl7IDB4MDAwMDQwMTQsIDB4MDAwMDAwODcg fSwKPiA+ICsJeyAweDAwMDAyMDE2LCAweDAwMDAwMEEwLCAweDAgfSwKPiA+ICsJeyAweDAwMDA1 MDEyLCAweDAwMDAwMDlCLCAweDAgfSwKPiA+ICsJeyAweDAwMDA3MDExLCAweDAwMDAwMDg4LCAw eDAgfSwKPiA+ICsJeyAweDAwMDA5MDEwLCAweDAwMDAwMEM3LCAweDAgfSwKPiA+ICsJeyAweDAw MDAyMDE2LCAweDAwMDAwMDlCLCAweDAgfSwKPiA+ICsJeyAweDAwMDA1MDEyLCAweDAwMDAwMDg4 LCAweDAgfSwKPiA+ICsJeyAweDAwMDA3MDExLCAweDAwMDAwMEM3LCAweDAgfSwKPiA+ICsJeyAw eDAwMDAyMDE2LCAweDAwMDAwMERGLCAweDAgfSwKPiA+ICsJeyAweDAwMDA1MDEyLCAweDAwMDAw MEM3LCAweDAgfSwKPiA+ICB9Owo+ID4gIAo+ID4gLS8qIGVEUCAxLjQgbG93IHZzd2luZyB0cmFu c2xhdGlvbiBwYXJhbWV0ZXJzICovCj4gPiArLyogU2t5bGFrZSBVICovCj4gPiArc3RhdGljIGNv bnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF91X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsK PiA+ICsJeyAweDAwMDAyMDE2LCAweDAwMDAwMEEyLCAweDAgfSwKPiA+ICsJeyAweDAwMDA1MDEy LCAweDAwMDAwMDg4LCAweDAgfSwKPiA+ICsJeyAweDAwMDA3MDExLCAweDAwMDAwMDg3LCAweDAg fSwKPiA+ICsJeyAweDgwMDA5MDEwLCAweDAwMDAwMEM3LCAweDEgfSwJLyogVXNlcyBJX2Jvb3N0 ICovCj4gPiArCXsgMHgwMDAwMjAxNiwgMHgwMDAwMDA5RCwgMHgwIH0sCj4gPiArCXsgMHgwMDAw NTAxMiwgMHgwMDAwMDBDNywgMHgwIH0sCj4gPiArCXsgMHgwMDAwNzAxMSwgMHgwMDAwMDBDNywg MHgwIH0sCj4gPiArCXsgMHgwMDAwMjAxNiwgMHgwMDAwMDA4OCwgMHgwIH0sCj4gPiArCXsgMHgw MDAwNTAxMiwgMHgwMDAwMDBDNywgMHgwIH0sCj4gPiArfTsKPiA+ICsKPiA+ICsvKiBTa3lsYWtl IFkgd2l0aCAwLjg1ViBWY2NJTyAqLwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90 cmFucyBza2xfeV8wODV2X2RkaV90cmFuc2xhdGlvbnNfZHBbXSA9IHsKPiA+ICsJeyAweDAwMDAw MDE4LCAweDAwMDAwMEEyLCAweDAgfSwKPiA+ICsJeyAweDAwMDA1MDEyLCAweDAwMDAwMDg4LCAw eDAgfSwKPiA+ICsJeyAweDAwMDA3MDExLCAweDAwMDAwMDg3LCAweDAgfSwKPiA+ICsJeyAweDgw MDA5MDEwLCAweDAwMDAwMEM3LCAweDEgfSwJLyogVXNlcyBJX2Jvb3N0ICovCj4gPiArCXsgMHgw MDAwMDAxOCwgMHgwMDAwMDA5RCwgMHgwIH0sCj4gPiArCXsgMHgwMDAwNTAxMiwgMHgwMDAwMDBD NywgMHgwIH0sCj4gPiArCXsgMHgwMDAwNzAxMSwgMHgwMDAwMDBDNywgMHgwIH0sCj4gPiArCXsg MHgwMDAwMDAxOCwgMHgwMDAwMDA4OCwgMHgwIH0sCj4gPiArCXsgMHgwMDAwNTAxMiwgMHgwMDAw MDBDNywgMHgwIH0sCj4gPiArfTsKPiA+ICsKPiA+ICsvKgo+ID4gKyAqIFNreWxha2UgSCBhbmQg UywgYW5kIFNreWxha2UgWSB3aXRoIDAuOTVWIFZjY0lPCj4gPiArICogZURQIDEuNCBsb3cgdnN3 aW5nIHRyYW5zbGF0aW9uIHBhcmFtZXRlcnMKPiA+ICsgKi8KPiA+ICBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRkaV9idWZfdHJhbnMgc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwW10gPSB7Cj4gPiAtCXsg MHgwMDAwMDAxOCwgMHgwMDAwMDBhOCB9LAo+ID4gLQl7IDB4MDAwMDIwMTYsIDB4MDAwMDAwYWIg fSwKPiA+IC0JeyAweDAwMDA2MDEyLCAweDAwMDAwMGEyIH0sCj4gPiAtCXsgMHgwMDAwODAxMCwg MHgwMDAwMDA4OCB9LAo+ID4gLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwYWIgfSwKPiA+IC0JeyAw eDAwMDA0MDE0LCAweDAwMDAwMGEyIH0sCj4gPiAtCXsgMHgwMDAwNjAxMiwgMHgwMDAwMDBhNiB9 LAo+ID4gLQl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwYTIgfSwKPiA+IC0JeyAweDAwMDA1MDEzLCAw eDAwMDAwMDljIH0sCj4gPiAtCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDA4OCB9LAo+ID4gKwl7IDB4 MDAwMDAwMTgsIDB4MDAwMDAwQTgsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDQwMTMsIDB4MDAwMDAw QTksIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwQTIsIDB4MCB9LAo+ID4gKwl7 IDB4MDAwMDkwMTAsIDB4MDAwMDAwOUMsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDAwMTgsIDB4MDAw MDAwQTksIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDYwMTMsIDB4MDAwMDAwQTIsIDB4MCB9LAo+ID4g Kwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwQTYsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDAwMTgsIDB4 MDAwMDAwQUIsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDcwMTMsIDB4MDAwMDAwOUYsIDB4MCB9LAo+ ID4gKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwREYsIDB4MCB9LAo+ID4gK307Cj4gPiArCj4gPiAr LyoKPiA+ICsgKiBTa3lsYWtlIFUKPiA+ICsgKiBlRFAgMS40IGxvdyB2c3dpbmcgdHJhbnNsYXRp b24gcGFyYW1ldGVycwo+ID4gKyAqLwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90 cmFucyBza2xfdV9kZGlfdHJhbnNsYXRpb25zX2VkcFtdID0gewo+ID4gKwl7IDB4MDAwMDAwMTgs IDB4MDAwMDAwQTgsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDQwMTMsIDB4MDAwMDAwQTksIDB4MCB9 LAo+ID4gKwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwQTIsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDkw MTAsIDB4MDAwMDAwOUMsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTksIDB4 MCB9LAo+ID4gKwl7IDB4MDAwMDYwMTMsIDB4MDAwMDAwQTIsIDB4MCB9LAo+ID4gKwl7IDB4MDAw MDcwMTEsIDB4MDAwMDAwQTYsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDIwMTYsIDB4MDAwMDAwQUIs IDB4MCB9LAo+ID4gKwl7IDB4MDAwMDUwMTMsIDB4MDAwMDAwOUYsIDB4MCB9LAo+ID4gKwl7IDB4 MDAwMDAwMTgsIDB4MDAwMDAwREYsIDB4MCB9LAo+ID4gIH07Cj4gPiAgCj4gPiArLyoKPiA+ICsg KiBTa3lsYWtlIFkgd2l0aCAwLjk1ViBWY2NJTwo+ID4gKyAqIGVEUCAxLjQgbG93IHZzd2luZyB0 cmFuc2xhdGlvbiBwYXJhbWV0ZXJzCj4gPiArICovCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBk ZGlfYnVmX3RyYW5zIHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19lZHBbXSA9IHsKPiA+ICsJ eyAweDAwMDAwMDE4LCAweDAwMDAwMEE4LCAweDAgfSwKPiA+ICsJeyAweDAwMDA0MDEzLCAweDAw MDAwMEFCLCAweDAgfSwKPiA+ICsJeyAweDAwMDA3MDExLCAweDAwMDAwMEE0LCAweDAgfSwKPiA+ ICsJeyAweDAwMDA5MDEwLCAweDAwMDAwMERGLCAweDAgfSwKPiA+ICsJeyAweDAwMDAwMDE4LCAw eDAwMDAwMEFBLCAweDAgfSwKPiA+ICsJeyAweDAwMDA2MDEzLCAweDAwMDAwMEE0LCAweDAgfSwK PiA+ICsJeyAweDAwMDA3MDExLCAweDAwMDAwMDlELCAweDAgfSwKPiA+ICsJeyAweDAwMDAwMDE4 LCAweDAwMDAwMEEwLCAweDAgfSwKPiA+ICsJeyAweDAwMDA2MDEyLCAweDAwMDAwMERGLCAweDAg fSwKPiA+ICsJeyAweDAwMDAwMDE4LCAweDAwMDAwMDhBLCAweDAgfSwKPiA+ICt9Owo+ID4gIAo+ ID4gKy8qIFNreWxha2UgSCwgUyBhbmQgVSwgYW5kIFNreWxha2UgWSB3aXRoIDAuOTVWIFZjY0lP ICovCj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zIHNrbF9kZGlfdHJhbnNs YXRpb25zX2hkbWlbXSA9IHsKPiA+IC0JeyAweDAwMDAwMDE4LCAweDAwMDAwMGFjIH0sCj4gPiAt CXsgMHgwMDAwNTAxMiwgMHgwMDAwMDA5ZCB9LAo+ID4gLQl7IDB4MDAwMDcwMTEsIDB4MDAwMDAw ODggfSwKPiA+IC0JeyAweDAwMDAwMDE4LCAweDAwMDAwMGExIH0sCj4gPiAtCXsgMHgwMDAwMDAx OCwgMHgwMDAwMDA5OCB9LAo+ID4gLQl7IDB4MDAwMDQwMTMsIDB4MDAwMDAwODggfSwKPiA+IC0J eyAweDAwMDA2MDEyLCAweDAwMDAwMDg3IH0sCj4gPiAtCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBk ZiB9LAo+ID4gLQl7IDB4MDAwMDMwMTUsIDB4MDAwMDAwODcgfSwKPiA+IC0JeyAweDAwMDAzMDE1 LCAweDAwMDAwMGM3IH0sCj4gPiAtCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBjNyB9LAo+ID4gKwl7 IDB4MDAwMDAwMTgsIDB4MDAwMDAwQUMsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDUwMTIsIDB4MDAw MDAwOUQsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwODgsIDB4MCB9LAo+ID4g Kwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTEsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDAwMTgsIDB4 MDAwMDAwOTgsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDQwMTMsIDB4MDAwMDAwODgsIDB4MCB9LAo+ ID4gKwl7IDB4MDAwMDYwMTIsIDB4MDAwMDAwODcsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDAwMTgs IDB4MDAwMDAwREYsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDMwMTUsIDB4MDAwMDAwODcsIDB4MCB9 LAkvKiBEZWZhdWx0ICovCj4gPiArCXsgMHgwMDAwMzAxNSwgMHgwMDAwMDBDNywgMHgwIH0sCj4g PiArCXsgMHgwMDAwMDAxOCwgMHgwMDAwMDBDNywgMHgwIH0sCj4gPiArfTsKPiA+ICsKPiA+ICsv KiBTa3lsYWtlIFkgd2l0aCAwLjg1ViBWY2NJTyAqLwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg ZGRpX2J1Zl90cmFucyBza2xfeV8wODV2X2RkaV90cmFuc2xhdGlvbnNfaGRtaVtdID0gewo+ID4g Kwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTEsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDUwMTIsIDB4 MDAwMDAwREYsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDcwMTEsIDB4MDAwMDAwODQsIDB4MCB9LAo+ ID4gKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQTQsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDAwMTgs IDB4MDAwMDAwOUQsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDQwMTMsIDB4MDAwMDAwODAsIDB4MCB9 LAo+ID4gKwl7IDB4MDAwMDYwMTMsIDB4MDAwMDAwQzcsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDAw MTgsIDB4MDAwMDAwOEEsIDB4MCB9LAo+ID4gKwl7IDB4MDAwMDMwMTUsIDB4MDAwMDAwQzcsIDB4 MCB9LAkvKiBEZWZhdWx0ICovCj4gPiArCXsgMHg4MDAwMzAxNSwgMHgwMDAwMDBDNywgMHg3IH0s CS8qIFVzZXMgSV9ib29zdCAqLwo+ID4gKwl7IDB4MDAwMDAwMTgsIDB4MDAwMDAwQzcsIDB4MCB9 LAo+ID4gIH07Cj4gPiAgCj4gPiAgc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zIHsKPiA+IEBAIC0x OTAsNyArMjcwLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBieHRfZGRpX2J1Zl90cmFucyBieHRf ZGRpX3RyYW5zbGF0aW9uc19kcFtdID0gewo+ID4gIAl7IDE1NCwgMHg5QSwgMCwgNjQsICBmYWxz ZSB9LAkvKiA2Ogk2MDAJCTYgICAqLwo+ID4gIAl7IDEwMiwgMHg5QSwgMCwgMTI4LCBmYWxzZSB9 LAkvKiA3Ogk4MDAJCTAgICAqLwo+ID4gIAl7IDE1NCwgMHg5QSwgMCwgODUsICBmYWxzZSB9LAkv KiA4Ogk4MDAJCTMuNSAqLwo+ID4gLQl7IDE1NCwgMHg5QSwgMSwgMTI4LCBmYWxzZSB9LCAgLyog OToJMTIwMAkJMCAgICovCj4gPiArCXsgMTU0LCAweDlBLCAxLCAxMjgsIGZhbHNlIH0sCS8qIDk6 CTEyMDAJCTAgICAqLwo+ID4gIH07Cj4gPiAgCj4gPiAgLyogQlNwZWMgaGFzIDIgcmVjb21tZW5k ZWQgdmFsdWVzIC0gZW50cmllcyAwIGFuZCA4Lgo+ID4gQEAgLTIxMCw2ICsyOTAsOSBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IGJ4dF9kZGlfYnVmX3RyYW5zIGJ4dF9kZGlfdHJhbnNsYXRpb25zX2hk bWlbXSA9IHsKPiA+ICAJeyAxNTQsIDB4OUEsIDEsIDEyOCwgdHJ1ZSB9LAkvKiA5OgkxMjAwCQkw ICAgKi8KPiA+ICB9Owo+ID4gIAo+ID4gK3N0YXRpYyB2b2lkIGJ4dF9kZGlfdnN3aW5nX3NlcXVl bmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHUzMiBsZXZlbCwKPiA+ICsJCQkJICAgIGVudW0g cG9ydCBwb3J0LCBpbnQgdHlwZSk7Cj4gPiArCj4gPiAgc3RhdGljIHZvaWQgZGRpX2dldF9lbmNv ZGVyX3BvcnQoc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gPiAgCQkJCSBz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICoqZGlnX3BvcnQsCj4gPiAgCQkJCSBlbnVtIHBvcnQg KnBvcnQpCj4gPiBAQCAtMjQ5LDYgKzMzMiw5OSBAQCBpbnRlbF9kaWdfcG9ydF9zdXBwb3J0c19o ZG1pKGNvbnN0IHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KQo+ID4g IAlyZXR1cm4gaW50ZWxfZGlnX3BvcnQtPmhkbWkuaGRtaV9yZWc7Cj4gPiAgfQo+ID4gIAo+ID4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqc2tsX2dldF9idWZfdHJhbnNfZHAo c3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICsJCQkJCQkJaW50ICpuX2VudHJpZXMpCj4gPiAr ewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2 YXRlOwo+ID4gKwljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsK PiA+ICsJc3RhdGljIGludCBpc18wOTV2ID0gLTE7Cj4gPiArCj4gPiArCWlmIChpc18wOTV2ID09 IC0xKSB7Cj4gPiArCQl1MzIgc3ByMSA9IEk5MTVfUkVBRChVQUlNSV9TUFIxKTsKPiA+ICsJCWlz XzA5NXYgPSBzcHIxICYgU0tMX1ZDQ0lPX01BU0s7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKElT X1NLTF9VTFgoZGV2KSAmJiAhaXNfMDk1dikgewo+ID4gKwkJZGRpX3RyYW5zbGF0aW9ucyA9IHNr bF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19kcDsKPiA+ICsJCSpuX2VudHJpZXMgPSBBUlJBWV9T SVpFKHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4gPiArCX0gZWxzZSBpZiAoSVNf U0tMX1VMVChkZXYpKSB7Cj4gPiArCQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX3VfZGRpX3RyYW5z bGF0aW9uc19kcDsKPiA+ICsJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF91X2RkaV90cmFu c2xhdGlvbnNfZHApOwo+ID4gKwl9IGVsc2Ugewo+ID4gKwkJZGRpX3RyYW5zbGF0aW9ucyA9IHNr bF9kZGlfdHJhbnNsYXRpb25zX2RwOwo+ID4gKwkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUoc2ts X2RkaV90cmFuc2xhdGlvbnNfZHApOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiBkZGlfdHJh bnNsYXRpb25zOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZf dHJhbnMgKnNrbF9nZXRfYnVmX3RyYW5zX2VkcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4g KwkJCQkJCQkgaW50ICpuX2VudHJpZXMpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gKwljb25zdCBzdHJ1Y3QgZGRp X2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsKPiA+ICsJc3RhdGljIGludCBpc18wOTV2ID0g LTE7Cj4gPiArCj4gPiArCWlmIChpc18wOTV2ID09IC0xKSB7Cj4gPiArCQl1MzIgc3ByMSA9IEk5 MTVfUkVBRChVQUlNSV9TUFIxKTsKPiA+ICsJCWlzXzA5NXYgPSBzcHIxICYgU0tMX1ZDQ0lPX01B U0s7Cj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKElTX1NLTF9VTFgoZGV2KSAmJiAhaXNfMDk1dikg ewo+ID4gKwkJaWYgKGRldl9wcml2LT5lZHBfbG93X3Zzd2luZykgewo+ID4gKwkJCWRkaV90cmFu c2xhdGlvbnMgPSBza2xfeV8wODV2X2RkaV90cmFuc2xhdGlvbnNfZWRwOwo+ID4gKwkJCSpuX2Vu dHJpZXMgPQo+ID4gKwkJCQlBUlJBWV9TSVpFKHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19l ZHApOwo+ID4gKwkJfSBlbHNlIHsKPiA+ICsJCQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX3lfMDg1 dl9kZGlfdHJhbnNsYXRpb25zX2RwOwo+ID4gKwkJCSpuX2VudHJpZXMgPQo+ID4gKwkJCQlBUlJB WV9TSVpFKHNrbF95XzA4NXZfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4gPiArCQl9Cj4gPiArCX0g ZWxzZSBpZiAoSVNfU0tMX1VMVChkZXYpKSB7Cj4gPiArCQlpZiAoZGV2X3ByaXYtPmVkcF9sb3df dnN3aW5nKSB7Cj4gPiArCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF91X2RkaV90cmFuc2xhdGlv bnNfZWRwOwo+ID4gKwkJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF91X2RkaV90cmFuc2xh dGlvbnNfZWRwKTsKPiA+ICsJCX0gZWxzZSB7Cj4gPiArCQkJZGRpX3RyYW5zbGF0aW9ucyA9IHNr bF91X2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4gPiArCQkJKm5fZW50cmllcyA9IEFSUkFZX1NJWkUo c2tsX3VfZGRpX3RyYW5zbGF0aW9uc19kcCk7Cj4gPiArCQl9Cj4gPiArCX0gZWxzZSB7Cj4gPiAr CQlpZiAoZGV2X3ByaXYtPmVkcF9sb3dfdnN3aW5nKSB7Cj4gPiArCQkJZGRpX3RyYW5zbGF0aW9u cyA9IHNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcDsKPiA+ICsJCQkqbl9lbnRyaWVzID0gQVJSQVlf U0laRShza2xfZGRpX3RyYW5zbGF0aW9uc19lZHApOwo+ID4gKwkJfSBlbHNlIHsKPiA+ICsJCQlk ZGlfdHJhbnNsYXRpb25zID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfZHA7Cj4gPiArCQkJKm5fZW50 cmllcyA9IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZHApOwo+ID4gKwkJfQo+ID4g Kwl9Cj4gPiArCj4gPiArCXJldHVybiBkZGlfdHJhbnNsYXRpb25zOwo+ID4gK30KPiA+ICsKPiA+ ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRkaV9idWZfdHJhbnMgKgo+ID4gK3NrbF9nZXRfYnVmX3Ry YW5zX2hkbWkoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICsJCSAgICAgICBpbnQgKm5fZW50 cmllcykKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4gPiArCWNvbnN0IHN0cnVjdCBkZGlfYnVmX3RyYW5zICpkZGlfdHJh bnNsYXRpb25zOwo+ID4gKwlzdGF0aWMgaW50IGlzXzA5NXYgPSAtMTsKPiA+ICsKPiA+ICsJaWYg KGlzXzA5NXYgPT0gLTEpIHsKPiA+ICsJCXUzMiBzcHIxID0gSTkxNV9SRUFEKFVBSU1JX1NQUjEp Owo+ID4gKwkJaXNfMDk1diA9IHNwcjEgJiBTS0xfVkNDSU9fTUFTSzsKPiA+ICsJfQo+ID4gKwo+ ID4gKwlpZiAoSVNfU0tMX1VMWChkZXYpICYmICFpc18wOTV2KSB7Cj4gPiArCQlkZGlfdHJhbnNs YXRpb25zID0gc2tsX3lfMDg1dl9kZGlfdHJhbnNsYXRpb25zX2hkbWk7Cj4gPiArCQkqbl9lbnRy aWVzID0gQVJSQVlfU0laRShza2xfeV8wODV2X2RkaV90cmFuc2xhdGlvbnNfaGRtaSk7Cj4gPiAr CX0gZWxzZSB7Cj4gPiArCQlkZGlfdHJhbnNsYXRpb25zID0gc2tsX2RkaV90cmFuc2xhdGlvbnNf aGRtaTsKPiA+ICsJCSpuX2VudHJpZXMgPSBBUlJBWV9TSVpFKHNrbF9kZGlfdHJhbnNsYXRpb25z X2hkbWkpOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiBkZGlfdHJhbnNsYXRpb25zOwo+ID4g K30KPiA+ICsKPiA+ICAvKgo+ID4gICAqIFN0YXJ0aW5nIHdpdGggSGFzd2VsbCwgRERJIHBvcnQg YnVmZmVycyBtdXN0IGJlIHByb2dyYW1tZWQgd2l0aCBjb3JyZWN0Cj4gPiAgICogdmFsdWVzIGlu IGFkdmFuY2UuIFRoZSBidWZmZXIgdmFsdWVzIGFyZSBkaWZmZXJlbnQgZm9yIEZESSBhbmQgRFAg bW9kZXMsCj4gPiBAQCAtMjc5LDIwICs0NTUsMTMgQEAgc3RhdGljIHZvaWQgaW50ZWxfcHJlcGFy ZV9kZGlfYnVmZmVycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBvcnQgcG9ydCwKPiA+ ICAJCQkJCUlOVEVMX09VVFBVVF9IRE1JKTsKPiA+ICAJCXJldHVybjsKPiA+ICAJfSBlbHNlIGlm IChJU19TS1lMQUtFKGRldikpIHsKPiA+IC0JCWRkaV90cmFuc2xhdGlvbnNfZmRpID0gTlVMTDsK PiA+IC0JCWRkaV90cmFuc2xhdGlvbnNfZHAgPSBza2xfZGRpX3RyYW5zbGF0aW9uc19kcDsKPiA+ IC0JCW5fZHBfZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNfZHApOwo+ ID4gLQkJaWYgKGRldl9wcml2LT5lZHBfbG93X3Zzd2luZykgewo+ID4gLQkJCWRkaV90cmFuc2xh dGlvbnNfZWRwID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfZWRwOwo+ID4gLQkJCW5fZWRwX2VudHJp ZXMgPSBBUlJBWV9TSVpFKHNrbF9kZGlfdHJhbnNsYXRpb25zX2VkcCk7Cj4gPiAtCQl9IGVsc2Ug ewo+ID4gLQkJCWRkaV90cmFuc2xhdGlvbnNfZWRwID0gc2tsX2RkaV90cmFuc2xhdGlvbnNfZHA7 Cj4gPiAtCQkJbl9lZHBfZW50cmllcyA9IEFSUkFZX1NJWkUoc2tsX2RkaV90cmFuc2xhdGlvbnNf ZHApOwo+ID4gLQkJfQo+ID4gLQo+ID4gLQkJZGRpX3RyYW5zbGF0aW9uc19oZG1pID0gc2tsX2Rk aV90cmFuc2xhdGlvbnNfaGRtaTsKPiA+IC0JCW5faGRtaV9lbnRyaWVzID0gQVJSQVlfU0laRShz a2xfZGRpX3RyYW5zbGF0aW9uc19oZG1pKTsKPiA+IC0JCWhkbWlfZGVmYXVsdF9lbnRyeSA9IDc7 Cj4gPiArCQlkZGlfdHJhbnNsYXRpb25zX2RwID0KPiA+ICsJCQkJc2tsX2dldF9idWZfdHJhbnNf ZHAoZGV2LCAmbl9kcF9lbnRyaWVzKTsKPiA+ICsJCWRkaV90cmFuc2xhdGlvbnNfZWRwID0KPiA+ ICsJCQkJc2tsX2dldF9idWZfdHJhbnNfZWRwKGRldiwgJm5fZWRwX2VudHJpZXMpOwo+ID4gKwkJ ZGRpX3RyYW5zbGF0aW9uc19oZG1pID0KPiA+ICsJCQkJc2tsX2dldF9idWZfdHJhbnNfaGRtaShk ZXYsICZuX2hkbWlfZW50cmllcyk7Cj4gPiArCQloZG1pX2RlZmF1bHRfZW50cnkgPSA4Owo+ID4g IAl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXYpKSB7Cj4gPiAgCQlkZGlfdHJhbnNsYXRpb25z X2ZkaSA9IGJkd19kZGlfdHJhbnNsYXRpb25zX2ZkaTsKPiA+ICAJCWRkaV90cmFuc2xhdGlvbnNf ZHAgPSBiZHdfZGRpX3RyYW5zbGF0aW9uc19kcDsKPiA+IEBAIC0xODA2LDggKzE5NzUsNDkgQEAg dm9pZCBpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Nsb2NrKHN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjKQo+ID4gIAkJCSAgIFRSQU5TX0NMS19TRUxfRElTQUJMRUQpOwo+ID4gIH0KPiA+ICAK PiA+IC12b2lkIGJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHUzMiBsZXZlbCwKPiA+IC0JCQkgICAgIGVudW0gcG9ydCBwb3J0LCBpbnQgdHlwZSkKPiA+ICtz dGF0aWMgdm9pZCBza2xfZGRpX3NldF9pYm9vc3Qoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMy IGxldmVsLAo+ID4gKwkJCSAgICAgICBlbnVtIHBvcnQgcG9ydCwgaW50IHR5cGUpCj4gPiArewo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRl Owo+ID4gKwljb25zdCBzdHJ1Y3QgZGRpX2J1Zl90cmFucyAqZGRpX3RyYW5zbGF0aW9uczsKPiA+ ICsJdWludDhfdCBpYm9vc3Q7Cj4gPiArCWludCBuX2VudHJpZXM7Cj4gPiArCXUzMiByZWc7Cj4g PiArCj4gPiArCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9ESVNQTEFZUE9SVCkgewo+ID4gKwkJ ZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF9nZXRfYnVmX3RyYW5zX2RwKGRldiwgJm5fZW50cmllcyk7 Cj4gPiArCQlpYm9vc3QgPSBkZGlfdHJhbnNsYXRpb25zW3BvcnRdLmlfYm9vc3Q7Cj4gPiArCX0g ZWxzZSBpZiAodHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gPiArCQlkZGlfdHJhbnNsYXRp b25zID0gc2tsX2dldF9idWZfdHJhbnNfZWRwKGRldiwgJm5fZW50cmllcyk7Cj4gPiArCQlpYm9v c3QgPSBkZGlfdHJhbnNsYXRpb25zW3BvcnRdLmlfYm9vc3Q7Cj4gPiArCX0gZWxzZSBpZiAodHlw ZSA9PSBJTlRFTF9PVVRQVVRfSERNSSkgewo+ID4gKwkJZGRpX3RyYW5zbGF0aW9ucyA9IHNrbF9n ZXRfYnVmX3RyYW5zX2hkbWkoZGV2LCAmbl9lbnRyaWVzKTsKPiA+ICsJCWlib29zdCA9IGRkaV90 cmFuc2xhdGlvbnNbcG9ydF0uaV9ib29zdDsKPiA+ICsJfSBlbHNlIHsKPiA+ICsJCXJldHVybjsK PiA+ICsJfQo+ID4gKwo+ID4gKwkvKiBNYWtlIHN1cmUgdGhhdCB0aGUgcmVxdWVzdGVkIElfYm9v c3QgaXMgdmFsaWQgKi8KPiA+ICsJaWYgKGlib29zdCAmJiBpYm9vc3QgIT0gMHgxICYmIGlib29z dCAhPSAweDMgJiYgaWJvb3N0ICE9IDB4Nykgewo+ID4gKwkJRFJNX0VSUk9SKCJJbnZhbGlkIElf Ym9vc3QgdmFsdWUgJXVcbiIsIGlib29zdCk7Cj4gPiArCQlyZXR1cm47Cj4gPiArCX0KPiA+ICsK PiA+ICsJcmVnID0gSTkxNV9SRUFEKERJU1BJT19DUl9UWF9CTVVfQ1IwKTsKPiA+ICsJcmVnICY9 IH5CQUxBTkNFX0xFR19NQVNLKHBvcnQpOwo+ID4gKwlyZWcgJj0gfigxIDw8IChCQUxBTkNFX0xF R19ESVNBQkxFX1NISUZUICsgcG9ydCkpOwo+ID4gKwo+ID4gKwlpZiAoaWJvb3N0KSB7Cj4gPiAr CQlyZWcgfD0gaWJvb3N0IDw8IEJBTEFOQ0VfTEVHX1NISUZUKHBvcnQpOwo+ID4gKwl9IGVsc2Ug ewo+ID4gKwkJcmVnIHw9IDEgPDwgKEJBTEFOQ0VfTEVHX0RJU0FCTEVfU0hJRlQgKyBwb3J0KTsK PiA+ICsJfQo+ID4gKwo+ID4gKwlJOTE1X1dSSVRFKERJU1BJT19DUl9UWF9CTVVfQ1IwLCByZWcp Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgbGV2ZWwsCj4gPiArCQkJCSAgICBlbnVtIHBvcnQg cG9ydCwgaW50IHR5cGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gIAljb25zdCBzdHJ1Y3QgYnh0X2RkaV9idWZf dHJhbnMgKmRkaV90cmFuc2xhdGlvbnM7Cj4gPiBAQCAtMTg2Nyw2ICsyMDc3LDczIEBAIHZvaWQg Ynh0X2RkaV92c3dpbmdfc2VxdWVuY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIGxldmVs LAo+ID4gIAlJOTE1X1dSSVRFKEJYVF9QT1JUX1BDU19EVzEwX0dSUChwb3J0KSwgdmFsKTsKPiA+ ICB9Cj4gPiAgCj4gPiArc3RhdGljIHVpbnQzMl90IHRyYW5zbGF0ZV9zaWduYWxfbGV2ZWwoaW50 IHNpZ25hbF9sZXZlbHMpCj4gPiArewo+ID4gKwl1aW50MzJfdCBsZXZlbDsKPiA+ICsKPiA+ICsJ c3dpdGNoIChzaWduYWxfbGV2ZWxzKSB7Cj4gPiArCWRlZmF1bHQ6Cj4gPiArCQlEUk1fREVCVUdf S01TKCJVbnN1cHBvcnRlZCB2b2x0YWdlIHN3aW5nL3ByZS1lbXBoYXNpcyBsZXZlbDogIgo+ID4g KwkJCSAgICAgICIweCV4XG4iLCBzaWduYWxfbGV2ZWxzKTsKPiA+ICsJY2FzZSBEUF9UUkFJTl9W T0xUQUdFX1NXSU5HX0xFVkVMXzAgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOgo+ID4gKwkJ bGV2ZWwgPSAwOwo+ID4gKwkJYnJlYWs7Cj4gPiArCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lO R19MRVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMToKPiA+ICsJCWxldmVsID0gMTsK PiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMCB8 IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI6Cj4gPiArCQlsZXZlbCA9IDI7Cj4gPiArCQlicmVh azsKPiA+ICsJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzAgfCBEUF9UUkFJTl9Q UkVfRU1QSF9MRVZFTF8zOgo+ID4gKwkJbGV2ZWwgPSAzOwo+ID4gKwkJYnJlYWs7Cj4gPiArCj4g PiArCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xIHwgRFBfVFJBSU5fUFJFX0VN UEhfTEVWRUxfMDoKPiA+ICsJCWxldmVsID0gNDsKPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIERQ X1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMSB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzE6 Cj4gPiArCQlsZXZlbCA9IDU7Cj4gPiArCQlicmVhazsKPiA+ICsJY2FzZSBEUF9UUkFJTl9WT0xU QUdFX1NXSU5HX0xFVkVMXzEgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOgo+ID4gKwkJbGV2 ZWwgPSA2Owo+ID4gKwkJYnJlYWs7Cj4gPiArCj4gPiArCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9T V0lOR19MRVZFTF8yIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDoKPiA+ICsJCWxldmVsID0g NzsKPiA+ICsJCWJyZWFrOwo+ID4gKwljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxf MiB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzE6Cj4gPiArCQlsZXZlbCA9IDg7Cj4gPiArCQli cmVhazsKPiA+ICsKPiA+ICsJY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzMgfCBE UF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOgo+ID4gKwkJbGV2ZWwgPSA5Owo+ID4gKwkJYnJlYWs7 Cj4gPiArCX0KPiA+ICsKPiA+ICsJcmV0dXJuIGxldmVsOwo+ID4gK30KPiA+ICsKPiA+ICt1aW50 MzJfdCBkZGlfc2lnbmFsX2xldmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gK3sK PiA+ICsJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZHBvcnQgPSBkcF90b19kaWdfcG9ydChp bnRlbF9kcCk7Cj4gPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBkcG9ydC0+YmFzZS5iYXNl LmRldjsKPiA+ICsJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPSAmZHBvcnQtPmJhc2U7 Cj4gPiArCXVpbnQ4X3QgdHJhaW5fc2V0ID0gaW50ZWxfZHAtPnRyYWluX3NldFswXTsKPiA+ICsJ aW50IHNpZ25hbF9sZXZlbHMgPSB0cmFpbl9zZXQgJiAoRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19N QVNLIHwKPiA+ICsJCQkJCSBEUF9UUkFJTl9QUkVfRU1QSEFTSVNfTUFTSyk7Cj4gPiArCWVudW0g cG9ydCBwb3J0ID0gZHBvcnQtPnBvcnQ7Cj4gPiArCXVpbnQzMl90IGxldmVsOwo+ID4gKwo+ID4g KwlsZXZlbCA9IHRyYW5zbGF0ZV9zaWduYWxfbGV2ZWwoc2lnbmFsX2xldmVscyk7Cj4gPiArCj4g PiArCWlmIChJU19TS1lMQUtFKGRldikpCj4gPiArCQlza2xfZGRpX3NldF9pYm9vc3QoZGV2LCBs ZXZlbCwgcG9ydCwgZW5jb2Rlci0+dHlwZSk7Cj4gPiArCWVsc2UgaWYgKElTX0JST1hUT04oZGV2 KSkKPiA+ICsJCWJ4dF9kZGlfdnN3aW5nX3NlcXVlbmNlKGRldiwgbGV2ZWwsIHBvcnQsIGVuY29k ZXItPnR5cGUpOwo+ID4gKwo+ID4gKwlyZXR1cm4gRERJX0JVRl9UUkFOU19TRUxFQ1QobGV2ZWwp Owo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiA+ICB7Cj4gPiAgCXN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9lbmNvZGVyLT5iYXNlOwo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gPiBpbmRleCBmNTJlZWYxMzgyNDcuLjA0MWUyZDZkY2M1NiAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IEBAIC0zNDE3LDkyICszNDE3LDYgQEAgZ2VuN19l ZHBfc2lnbmFsX2xldmVscyh1aW50OF90IHRyYWluX3NldCkKPiA+ICAJfQo+ID4gIH0KPiA+ICAK PiA+IC0vKiBHZW43LjUncyAoSFNXKSBEUCB2b2x0YWdlIHN3aW5nIGFuZCBwcmUtZW1waGFzaXMg Y29udHJvbCAqLwo+ID4gLXN0YXRpYyB1aW50MzJfdAo+ID4gLWhzd19zaWduYWxfbGV2ZWxzKHVp bnQ4X3QgdHJhaW5fc2V0KQo+ID4gLXsKPiA+IC0JaW50IHNpZ25hbF9sZXZlbHMgPSB0cmFpbl9z ZXQgJiAoRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19NQVNLIHwKPiA+IC0JCQkJCSBEUF9UUkFJTl9Q UkVfRU1QSEFTSVNfTUFTSyk7Cj4gPiAtCXN3aXRjaCAoc2lnbmFsX2xldmVscykgewo+ID4gLQlj YXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMCB8IERQX1RSQUlOX1BSRV9FTVBIX0xF VkVMXzA6Cj4gPiAtCQlyZXR1cm4gRERJX0JVRl9UUkFOU19TRUxFQ1QoMCk7Cj4gPiAtCWNhc2Ug RFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxf MToKPiA+IC0JCXJldHVybiBERElfQlVGX1RSQU5TX1NFTEVDVCgxKTsKPiA+IC0JY2FzZSBEUF9U UkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzAgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8yOgo+ ID4gLQkJcmV0dXJuIERESV9CVUZfVFJBTlNfU0VMRUNUKDIpOwo+ID4gLQljYXNlIERQX1RSQUlO X1ZPTFRBR0VfU1dJTkdfTEVWRUxfMCB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzM6Cj4gPiAt CQlyZXR1cm4gRERJX0JVRl9UUkFOU19TRUxFQ1QoMyk7Cj4gPiAtCj4gPiAtCWNhc2UgRFBfVFJB SU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDoKPiA+ IC0JCXJldHVybiBERElfQlVGX1RSQU5TX1NFTEVDVCg0KTsKPiA+IC0JY2FzZSBEUF9UUkFJTl9W T0xUQUdFX1NXSU5HX0xFVkVMXzEgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8xOgo+ID4gLQkJ cmV0dXJuIERESV9CVUZfVFJBTlNfU0VMRUNUKDUpOwo+ID4gLQljYXNlIERQX1RSQUlOX1ZPTFRB R0VfU1dJTkdfTEVWRUxfMSB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI6Cj4gPiAtCQlyZXR1 cm4gRERJX0JVRl9UUkFOU19TRUxFQ1QoNik7Cj4gPiAtCj4gPiAtCWNhc2UgRFBfVFJBSU5fVk9M VEFHRV9TV0lOR19MRVZFTF8yIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMDoKPiA+IC0JCXJl dHVybiBERElfQlVGX1RSQU5TX1NFTEVDVCg3KTsKPiA+IC0JY2FzZSBEUF9UUkFJTl9WT0xUQUdF X1NXSU5HX0xFVkVMXzIgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8xOgo+ID4gLQkJcmV0dXJu IERESV9CVUZfVFJBTlNfU0VMRUNUKDgpOwo+ID4gLQo+ID4gLQljYXNlIERQX1RSQUlOX1ZPTFRB R0VfU1dJTkdfTEVWRUxfMyB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA6Cj4gPiAtCQlyZXR1 cm4gRERJX0JVRl9UUkFOU19TRUxFQ1QoOSk7Cj4gPiAtCWRlZmF1bHQ6Cj4gPiAtCQlEUk1fREVC VUdfS01TKCJVbnN1cHBvcnRlZCB2b2x0YWdlIHN3aW5nL3ByZS1lbXBoYXNpcyBsZXZlbDoiCj4g PiAtCQkJICAgICAgIjB4JXhcbiIsIHNpZ25hbF9sZXZlbHMpOwo+ID4gLQkJcmV0dXJuIERESV9C VUZfVFJBTlNfU0VMRUNUKDApOwo+ID4gLQl9Cj4gPiAtfQo+ID4gLQo+ID4gLXN0YXRpYyB2b2lk IGJ4dF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAtewo+ID4g LQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVs X2RwKTsKPiA+IC0JZW51bSBwb3J0IHBvcnQgPSBkcG9ydC0+cG9ydDsKPiA+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGRwb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4gLQlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciA9ICZkcG9ydC0+YmFzZTsKPiA+IC0JdWludDhfdCB0cmFpbl9zZXQg PSBpbnRlbF9kcC0+dHJhaW5fc2V0WzBdOwo+ID4gLQl1aW50MzJfdCBsZXZlbCA9IDA7Cj4gPiAt Cj4gPiAtCWludCBzaWduYWxfbGV2ZWxzID0gdHJhaW5fc2V0ICYgKERQX1RSQUlOX1ZPTFRBR0Vf U1dJTkdfTUFTSyB8Cj4gPiAtCQkJCQkgRFBfVFJBSU5fUFJFX0VNUEhBU0lTX01BU0spOwo+ID4g LQlzd2l0Y2ggKHNpZ25hbF9sZXZlbHMpIHsKPiA+IC0JZGVmYXVsdDoKPiA+IC0JCURSTV9ERUJV R19LTVMoIlVuc3VwcG9ydGVkIHZvbHRhZ2Ugc3dpbmcvcHJlLWVtcGggbGV2ZWxcbiIpOwo+ID4g LQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMCB8IERQX1RSQUlOX1BSRV9FTVBI X0xFVkVMXzA6Cj4gPiAtCQlsZXZlbCA9IDA7Cj4gPiAtCQlicmVhazsKPiA+IC0JY2FzZSBEUF9U UkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzAgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8xOgo+ ID4gLQkJbGV2ZWwgPSAxOwo+ID4gLQkJYnJlYWs7Cj4gPiAtCWNhc2UgRFBfVFJBSU5fVk9MVEFH RV9TV0lOR19MRVZFTF8wIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMjoKPiA+IC0JCWxldmVs ID0gMjsKPiA+IC0JCWJyZWFrOwo+ID4gLQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVW RUxfMCB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzM6Cj4gPiAtCQlsZXZlbCA9IDM7Cj4gPiAt CQlicmVhazsKPiA+IC0JY2FzZSBEUF9UUkFJTl9WT0xUQUdFX1NXSU5HX0xFVkVMXzEgfCBEUF9U UkFJTl9QUkVfRU1QSF9MRVZFTF8wOgo+ID4gLQkJbGV2ZWwgPSA0Owo+ID4gLQkJYnJlYWs7Cj4g PiAtCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19MRVZFTF8xIHwgRFBfVFJBSU5fUFJFX0VN UEhfTEVWRUxfMToKPiA+IC0JCWxldmVsID0gNTsKPiA+IC0JCWJyZWFrOwo+ID4gLQljYXNlIERQ X1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMSB8IERQX1RSQUlOX1BSRV9FTVBIX0xFVkVMXzI6 Cj4gPiAtCQlsZXZlbCA9IDY7Cj4gPiAtCQlicmVhazsKPiA+IC0JY2FzZSBEUF9UUkFJTl9WT0xU QUdFX1NXSU5HX0xFVkVMXzIgfCBEUF9UUkFJTl9QUkVfRU1QSF9MRVZFTF8wOgo+ID4gLQkJbGV2 ZWwgPSA3Owo+ID4gLQkJYnJlYWs7Cj4gPiAtCWNhc2UgRFBfVFJBSU5fVk9MVEFHRV9TV0lOR19M RVZFTF8yIHwgRFBfVFJBSU5fUFJFX0VNUEhfTEVWRUxfMToKPiA+IC0JCWxldmVsID0gODsKPiA+ IC0JCWJyZWFrOwo+ID4gLQljYXNlIERQX1RSQUlOX1ZPTFRBR0VfU1dJTkdfTEVWRUxfMyB8IERQ X1RSQUlOX1BSRV9FTVBIX0xFVkVMXzA6Cj4gPiAtCQlsZXZlbCA9IDk7Cj4gPiAtCQlicmVhazsK PiA+IC0JfQo+ID4gLQo+ID4gLQlieHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShkZXYsIGxldmVsLCBw b3J0LCBlbmNvZGVyLT50eXBlKTsKPiA+IC19Cj4gPiAtCj4gPiAgLyogUHJvcGVybHkgdXBkYXRl cyAiRFAiIHdpdGggdGhlIGNvcnJlY3Qgc2lnbmFsIGxldmVscy4gKi8KPiA+ICBzdGF0aWMgdm9p ZAo+ID4gIGludGVsX2RwX3NldF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHAsIHVpbnQzMl90ICpEUCkKPiA+IEBAIC0zNTEwLDIyICszNDI0LDIwIEBAIGludGVsX2RwX3Nl dF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIHVpbnQzMl90ICpEUCkK PiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19k aWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3BvcnQt PnBvcnQ7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFz ZS5iYXNlLmRldjsKPiA+IC0JdWludDMyX3Qgc2lnbmFsX2xldmVscywgbWFzazsKPiA+ICsJdWlu dDMyX3Qgc2lnbmFsX2xldmVscywgbWFzayA9IDA7Cj4gPiAgCXVpbnQ4X3QgdHJhaW5fc2V0ID0g aW50ZWxfZHAtPnRyYWluX3NldFswXTsKPiA+ICAKPiA+IC0JaWYgKElTX0JST1hUT04oZGV2KSkg ewo+ID4gLQkJc2lnbmFsX2xldmVscyA9IDA7Cj4gPiAtCQlieHRfc2lnbmFsX2xldmVscyhpbnRl bF9kcCk7Cj4gPiAtCQltYXNrID0gMDsKPiA+IC0JfSBlbHNlIGlmIChIQVNfRERJKGRldikpIHsK PiA+IC0JCXNpZ25hbF9sZXZlbHMgPSBoc3dfc2lnbmFsX2xldmVscyh0cmFpbl9zZXQpOwo+ID4g LQkJbWFzayA9IERESV9CVUZfRU1QX01BU0s7Cj4gPiArCWlmIChIQVNfRERJKGRldikpIHsKPiA+ ICsJCXNpZ25hbF9sZXZlbHMgPSBkZGlfc2lnbmFsX2xldmVscyhpbnRlbF9kcCk7Cj4gPiArCj4g PiArCQlpZiAoSVNfQlJPWFRPTihkZXYpKQo+ID4gKwkJCXNpZ25hbF9sZXZlbHMgPSAwOwo+ID4g KwkJZWxzZQo+ID4gKwkJCW1hc2sgPSBERElfQlVGX0VNUF9NQVNLOwo+ID4gIAl9IGVsc2UgaWYg KElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ID4gIAkJc2lnbmFsX2xldmVscyA9IGNodl9zaWduYWxf bGV2ZWxzKGludGVsX2RwKTsKPiA+IC0JCW1hc2sgPSAwOwo+ID4gIAl9IGVsc2UgaWYgKElTX1ZB TExFWVZJRVcoZGV2KSkgewo+ID4gIAkJc2lnbmFsX2xldmVscyA9IHZsdl9zaWduYWxfbGV2ZWxz KGludGVsX2RwKTsKPiA+IC0JCW1hc2sgPSAwOwo+ID4gIAl9IGVsc2UgaWYgKElTX0dFTjcoZGV2 KSAmJiBwb3J0ID09IFBPUlRfQSkgewo+ID4gIAkJc2lnbmFsX2xldmVscyA9IGdlbjdfZWRwX3Np Z25hbF9sZXZlbHModHJhaW5fc2V0KTsKPiA+ICAJCW1hc2sgPSBFRFBfTElOS19UUkFJTl9WT0xf RU1QX01BU0tfSVZCOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGJjYWZl ZmNmMDQ4Yi4uYzZjYmU4YzYwMmY5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gPiBAQCAtOTUwLDggKzk1MCw3IEBAIHZvaWQgaW50ZWxfZGRpX2luaXRfZHBfYnVmX3JlZyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiAgdm9pZCBpbnRlbF9kZGlfY2xvY2tf Z2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAkJCSBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpOwo+ID4gIHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXls b2FkX2FsbG9jKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBzdGF0ZSk7Cj4gPiAtdm9pZCBi eHRfZGRpX3Zzd2luZ19zZXF1ZW5jZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgbGV2ZWws Cj4gPiAtCQkJCWVudW0gcG9ydCBwb3J0LCBpbnQgdHlwZSk7Cj4gPiArdWludDMyX3QgZGRpX3Np Z25hbF9sZXZlbHMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiAgCj4gPiAgLyogaW50 ZWxfZnJvbnRidWZmZXIuYyAqLwo+ID4gIHZvaWQgaW50ZWxfZmJfb2JqX2ludmFsaWRhdGUoc3Ry dWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKPiA+IAo+IAo+IC0tIAo+IC0gQW50dGkKPiAK PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVs LWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0 cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAoKLS0g CkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6 Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==