From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/5] drm/i915: Turn __raw_i915_read8() & co. in to inline functions Date: Thu, 22 Oct 2015 16:49:19 +0300 Message-ID: <20151022134919.GR26517@intel.com> References: <1445517300-28173-1-git-send-email-ville.syrjala@linux.intel.com> <1445517300-28173-2-git-send-email-ville.syrjala@linux.intel.com> <20151022133210.GY16848@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 3DAC26E4EE for ; Thu, 22 Oct 2015 06:49:46 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20151022133210.GY16848@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBPY3QgMjIsIDIwMTUgYXQgMDM6MzI6MTFQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUaHUsIE9jdCAyMiwgMjAxNSBhdCAwMzozNDo1NlBNICswMzAwLCB2aWxsZS5z eXJqYWxhQGxpbnV4LmludGVsLmNvbSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAKPiA+IFRoZXJlJ3Mgbm8gbmVlZCBm b3IgX19yYXdfaTkxNV9yZWFkOCgpICYgY28uIGJvdCBiZSBtYWNyb3MsIHNvIG1ha2UgdGhlbQo+ IAo+IHMvYm90L2JlCgpBY3R1YWxseSBzL2JvdC90by8gOikKCj4gCj4gPiBpbmxpbmUgZnVuY2l0 b25zLiBUbyBhdm9pZCB0eXBvIG1pc3Rha2VzIGdlbmVyYXRlIHRoZSBpbmxpbmUgZnVuY3Rpb25z Cj4gCj4gcy9mdW5jaXRvbnMvZnVuY3Rpb25zLwo+IAo+ID4gdXNpbmcgcHJlcHJvY2Vzc29yIHRl bXBsYXRlcy4KPiA+IAo+ID4gV2UgaGF2ZSBhIGZldyB1c2VycyBvZiB0aGUgcmF3IHJlZ2lzdGVy IGFjY2VzIGZ1bmN0aW9ucyBvdXRzaWRlCj4gPiBpbnRlbF91bmNvcmUuYywgc28gbGV0J3MgYWxz byBtb3ZlIHRoZSBmdW5jdGlvbnMgaW50byBpbnRlbF9kcnYuaC4KPiA+IAo+ID4gV2hpbGUgZG9p bmcgdGhhdCBzd2l0Y2ggSTkxNV9SRUFEX0ZXKCkgJiBjby4gdG8gdXNlIHRoZQo+ID4gX19yYXdf aTkxNV9yZWFkKCkgZnVuY3Rpb25zLCBhbmQgdXNlIHRoZSBfRlcgbWFjcm9zIGV2ZXJ5d2hlcmUK PiA+IG91dHNpZGUgaW50ZWxfdW5jb3JlLmMgd2hlcmUgd2Ugd2FudCB0byByZWFkIHJlZ2lzdGVy cyB3aXRob3V0Cj4gPiBncmFiYmluZyBmb3JjZXdha2UgYW5kIHdoYXRub3QuIFRoZSBvbmx5IGV4 Y2VwdGlvbiBpcwo+ID4gaTkxNV9jaGVja192Z3B1KCkgd2hpY2ggaXRzZWxmIGdldHMgY2FsbGVk IGZyb20gaW50ZWxfdW5jb3JlLmMsCj4gPiBzbyB1c2luZyB0aGUgX19yYXdfaTkxNV9yZWFkIHN0 dWZmIHRoZXJlIHNlZW1zIGFwcHJvcHJpYXRlLgo+ID4gCj4gPiB2MjogU3F1YXNoIGluIHRoZSBp bnRlbF91bmNvcmUuYy0+aTkxNV9kcnYuaCBtb3ZlCj4gPiAgICAgQ29udmVydCBJOTE1X1JFQURf RlcoKSB0byB1c2UgX19yYXdfaTkxNV9yZWFkKCksIGFuZCB1c2UKPiA+ICAgICBJOTE1X1JFQURf RlcoKSBvdXRzaWRlIG9mIGludGVsX3VuY29yZS5jIChDaHJpcykKPiA+IAo+ID4gU2lnbmVkLW9m Zi1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAK PiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiAK PiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIHwgIDIgKy0K PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICB8IDMwICsrKysrKysrKysr KysrKysrKysrKysrKysrKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMg ICAgIHwgMTAgKysrKy0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5j ICAgIHwgIDYgKysrLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMg fCAxNCArLS0tLS0tLS0tLS0tLQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygr KSwgMjUgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5j Cj4gPiBpbmRleCBlY2E5NGQwLi44OWJhNTQ5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZGVidWdmcy5jCj4gPiBAQCAtMTUyMyw3ICsxNTIzLDcgQEAgc3RhdGljIGludCBnZW42X2Ry cGNfaW5mbyhzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4gPiAgCQlzZXFfcHJpbnRmKG0sICJSQyBpbmZv cm1hdGlvbiBhY2N1cmF0ZTogJXNcbiIsIHllc25vKGNvdW50IDwgNTEpKTsKPiA+ICAJfQo+ID4g IAo+ID4gLQlndF9jb3JlX3N0YXR1cyA9IHJlYWRsKGRldl9wcml2LT5yZWdzICsgR0VONl9HVF9D T1JFX1NUQVRVUyk7Cj4gPiArCWd0X2NvcmVfc3RhdHVzID0gSTkxNV9SRUFEX0ZXKEdFTjZfR1Rf Q09SRV9TVEFUVVMpOwo+ID4gIAl0cmFjZV9pOTE1X3JlZ19ydyhmYWxzZSwgR0VONl9HVF9DT1JF X1NUQVRVUywgZ3RfY29yZV9zdGF0dXMsIDQsIHRydWUpOwo+ID4gIAo+ID4gIAlycG1vZGVjdGwx ID0gSTkxNV9SRUFEKEdFTjZfUlBfQ09OVFJPTCk7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiA+IGluZGV4IDlhMTVlYmUuLjAxZmRjNzAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5oCj4gPiBAQCAtMzQ1Miw2ICszNDUyLDMyIEBAIGludCBpbnRlbF9mcmVxX29wY29kZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2YWwpOwo+ID4gICNkZWZpbmUgUE9T VElOR19SRUFEKHJlZykJKHZvaWQpSTkxNV9SRUFEX05PVFJBQ0UocmVnKQo+ID4gICNkZWZpbmUg UE9TVElOR19SRUFEMTYocmVnKQkodm9pZClJOTE1X1JFQUQxNl9OT1RSQUNFKHJlZykKPiA+ICAK PiA+ICsjZGVmaW5lIF9fcmF3X3JlYWQoeCwgcykgXAo+ID4gK3N0YXRpYyBpbmxpbmUgdWludCMj eCMjX3QgX19yYXdfaTkxNV9yZWFkIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwgXAo+ID4gKwkJCQkJICAgICB1aW50MzJfdCByZWcpIFwKPiA+ICt7IFwKPiA+ICsJcmV0dXJu IHJlYWQjI3MoZGV2X3ByaXYtPnJlZ3MgKyByZWcpOyBcCj4gPiArfQo+ID4gKwo+ID4gKyNkZWZp bmUgX19yYXdfd3JpdGUoeCwgcykgXAo+ID4gK3N0YXRpYyBpbmxpbmUgdm9pZCBfX3Jhd19pOTE1 X3dyaXRlIyN4KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgXAo+ID4gKwkJCQkg ICAgICAgdWludDMyX3QgcmVnLCB1aW50IyN4IyNfdCB2YWwpIFwKPiA+ICt7IFwKPiA+ICsJd3Jp dGUjI3ModmFsLCBkZXZfcHJpdi0+cmVncyArIHJlZyk7IFwKPiA+ICt9Cj4gPiArX19yYXdfcmVh ZCg4LCBiKQo+ID4gK19fcmF3X3JlYWQoMTYsIHcpCj4gPiArX19yYXdfcmVhZCgzMiwgbCkKPiA+ ICtfX3Jhd19yZWFkKDY0LCBxKQo+ID4gKwo+ID4gK19fcmF3X3dyaXRlKDgsIGIpCj4gPiArX19y YXdfd3JpdGUoMTYsIHcpCj4gPiArX19yYXdfd3JpdGUoMzIsIGwpCj4gPiArX19yYXdfd3JpdGUo NjQsIHEpCj4gPiArCj4gPiArI3VuZGVmIF9fcmF3X3JlYWQKPiA+ICsjdW5kZWYgX19yYXdfd3Jp dGUKPiA+ICsKPiA+ICAvKiBUaGVzZSBhcmUgdW50cmFjZWQgbW1pby1hY2Nlc3NvcnMgdGhhdCBh cmUgb25seSB2YWxpZCB0byBiZSB1c2VkIGluc2lkZQo+ID4gICAqIGNyaXRpY2lhbCBzZWN0aW9u cyBpbnNpZGUgSVJRIGhhbmRsZXJzIHdoZXJlIGZvcmNld2FrZSBpcyBleHBsaWNpdGx5Cj4gPiAg ICogY29udHJvbGxlZC4KPiA+IEBAIC0zNDU5LDggKzM0ODUsOCBAQCBpbnQgaW50ZWxfZnJlcV9v cGNvZGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBpbnQgdmFsKTsKPiA+ICAg KiBOb3RlOiBTaG91bGQgb25seSBiZSB1c2VkIGJldHdlZW4gaW50ZWxfdW5jb3JlX2ZvcmNld2Fr ZV9pcnFsb2NrKCkgYW5kCj4gPiAgICogaW50ZWxfdW5jb3JlX2ZvcmNld2FrZV9pcnF1bmxvY2so KS4KPiA+ICAgKi8KPiA+IC0jZGVmaW5lIEk5MTVfUkVBRF9GVyhyZWdfXykgcmVhZGwoZGV2X3By aXYtPnJlZ3MgKyAocmVnX18pKQo+ID4gLSNkZWZpbmUgSTkxNV9XUklURV9GVyhyZWdfXywgdmFs X18pIHdyaXRlbCh2YWxfXywgZGV2X3ByaXYtPnJlZ3MgKyAocmVnX18pKQo+ID4gKyNkZWZpbmUg STkxNV9SRUFEX0ZXKHJlZ19fKSBfX3Jhd19pOTE1X3JlYWQzMihkZXZfcHJpdiwgKHJlZ19fKSkK PiA+ICsjZGVmaW5lIEk5MTVfV1JJVEVfRlcocmVnX18sIHZhbF9fKSBfX3Jhd19pOTE1X3dyaXRl MzIoZGV2X3ByaXYsIChyZWdfXyksICh2YWxfXykpCj4gPiAgI2RlZmluZSBQT1NUSU5HX1JFQURf RlcocmVnX18pICh2b2lkKUk5MTVfUkVBRF9GVyhyZWdfXykKPiA+ICAKPiA+ICAvKiAiQnJvYWRj YXN0IFJHQiIgcHJvcGVydHkgKi8KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+ID4gaW5kZXgg OWNhZjIyYy4uYTBlZDU4ZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfaXJxLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiA+IEBA IC03MTcsOSArNzE3LDcgQEAgc3RhdGljIHUzMiBnNHhfZ2V0X3ZibGFua19jb3VudGVyKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlKQo+ID4gIAlyZXR1cm4gSTkxNV9S RUFEKFBJUEVfRlJNQ09VTlRfRzRYKHBpcGUpKTsKPiA+ICB9Cj4gPiAgCj4gPiAtLyogcmF3IHJl YWRzLCBvbmx5IGZvciBmYXN0IHJlYWRzIG9mIGRpc3BsYXkgYmxvY2ssIG5vIG5lZWQgZm9yIGZv cmNld2FrZSBldGMuICovCj4gPiAtI2RlZmluZSBfX3Jhd19pOTE1X3JlYWQzMihkZXZfcHJpdl9f LCByZWdfXykgcmVhZGwoKGRldl9wcml2X18pLT5yZWdzICsgKHJlZ19fKSkKPiA+IC0KPiA+ICsv KiBJOTE1X1JFQURfRlcsIG9ubHkgZm9yIGZhc3QgcmVhZHMgb2YgZGlzcGxheSBibG9jaywgbm8g bmVlZCBmb3IgZm9yY2V3YWtlIGV0Yy4gKi8KPiA+ICBzdGF0aWMgaW50IF9faW50ZWxfZ2V0X2Ny dGNfc2NhbmxpbmUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gPiAgewo+ID4gIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7Cj4gPiBAQCAtNzMzLDkgKzczMSw5IEBA IHN0YXRpYyBpbnQgX19pbnRlbF9nZXRfY3J0Y19zY2FubGluZShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKPiA+ICAJCXZ0b3RhbCAvPSAyOwo+ID4gIAo+ID4gIAlpZiAoSVNfR0VOMihkZXYpKQo+ ID4gLQkJcG9zaXRpb24gPSBfX3Jhd19pOTE1X3JlYWQzMihkZXZfcHJpdiwgUElQRURTTChwaXBl KSkgJiBEU0xfTElORU1BU0tfR0VOMjsKPiA+ICsJCXBvc2l0aW9uID0gSTkxNV9SRUFEX0ZXKFBJ UEVEU0wocGlwZSkpICYgRFNMX0xJTkVNQVNLX0dFTjI7Cj4gPiAgCWVsc2UKPiA+IC0JCXBvc2l0 aW9uID0gX19yYXdfaTkxNV9yZWFkMzIoZGV2X3ByaXYsIFBJUEVEU0wocGlwZSkpICYgRFNMX0xJ TkVNQVNLX0dFTjM7Cj4gPiArCQlwb3NpdGlvbiA9IEk5MTVfUkVBRF9GVyhQSVBFRFNMKHBpcGUp KSAmIERTTF9MSU5FTUFTS19HRU4zOwo+ID4gIAo+ID4gIAkvKgo+ID4gIAkgKiBPbiBIU1csIHRo ZSBEU0wgcmVnICgweDcwMDAwKSBhcHBlYXJzIHRvIHJldHVybiAwIGlmIHdlCj4gPiBAQCAtODI3 LDcgKzgyNSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9nZXRfY3J0Y19zY2Fub3V0cG9zKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBwaXBlLAo+ID4gIAkJICogV2UgY2FuIHNwbGl0 IHRoaXMgaW50byB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbAo+ID4gIAkJICogc2Nhbm91dCBwb3Np dGlvbi4KPiA+ICAJCSAqLwo+ID4gLQkJcG9zaXRpb24gPSAoX19yYXdfaTkxNV9yZWFkMzIoZGV2 X3ByaXYsIFBJUEVGUkFNRVBJWEVMKHBpcGUpKSAmIFBJUEVfUElYRUxfTUFTSykgPj4gUElQRV9Q SVhFTF9TSElGVDsKPiA+ICsJCXBvc2l0aW9uID0gKEk5MTVfUkVBRF9GVyhQSVBFRlJBTUVQSVhF TChwaXBlKSkgJiBQSVBFX1BJWEVMX01BU0spID4+IFBJUEVfUElYRUxfU0hJRlQ7Cj4gPiAgCj4g PiAgCQkvKiBjb252ZXJ0IHRvIHBpeGVsIGNvdW50cyAqLwo+ID4gIAkJdmJsX3N0YXJ0ICo9IGh0 b3RhbDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3ZncHUuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCj4gPiBpbmRleCA1ZWVlNzViLi5kZWE3 NDI5IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV92Z3B1LmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdmdwdS5jCj4gPiBAQCAtNjksMTMgKzY5 LDEzIEBAIHZvaWQgaTkxNV9jaGVja192Z3B1KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAg CWlmICghSVNfSEFTV0VMTChkZXYpKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gLQltYWdpYyA9 IHJlYWRxKGRldl9wcml2LT5yZWdzICsgdmd0aWZfcmVnKG1hZ2ljKSk7Cj4gPiArCW1hZ2ljID0g X19yYXdfaTkxNV9yZWFkNjQoZGV2X3ByaXYsIHZndGlmX3JlZyhtYWdpYykpOwo+ID4gIAlpZiAo bWFnaWMgIT0gVkdUX01BR0lDKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4gIAl2ZXJzaW9uID0g SU5URUxfVkdUX0lGX1ZFUlNJT05fRU5DT0RFKAo+ID4gLQkJcmVhZHcoZGV2X3ByaXYtPnJlZ3Mg KyB2Z3RpZl9yZWcodmVyc2lvbl9tYWpvcikpLAo+ID4gLQkJcmVhZHcoZGV2X3ByaXYtPnJlZ3Mg KyB2Z3RpZl9yZWcodmVyc2lvbl9taW5vcikpKTsKPiA+ICsJCV9fcmF3X2k5MTVfcmVhZDE2KGRl dl9wcml2LCB2Z3RpZl9yZWcodmVyc2lvbl9tYWpvcikpLAo+ID4gKwkJX19yYXdfaTkxNV9yZWFk MTYoZGV2X3ByaXYsIHZndGlmX3JlZyh2ZXJzaW9uX21pbm9yKSkpOwo+ID4gIAlpZiAodmVyc2lv biAhPSBJTlRFTF9WR1RfSUZfVkVSU0lPTikgewo+ID4gIAkJRFJNX0lORk8oIlZHVCBpbnRlcmZh Y2UgdmVyc2lvbiBtaXNtYXRjaCFcbiIpOwo+ID4gIAkJcmV0dXJuOwo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3VuY29yZS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfdW5jb3JlLmMKPiA+IGluZGV4IDE2NjNlYTUuLjhkZmVhYzkgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF91bmNvcmUuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdW5jb3JlLmMKPiA+IEBAIC0yOSwxOSArMjksNyBAQAo+ID4g IAo+ID4gICNkZWZpbmUgRk9SQ0VXQUtFX0FDS19USU1FT1VUX01TIDUwCj4gPiAgCj4gPiAtI2Rl ZmluZSBfX3Jhd19pOTE1X3JlYWQ4KGRldl9wcml2X18sIHJlZ19fKSByZWFkYigoZGV2X3ByaXZf XyktPnJlZ3MgKyAocmVnX18pKQo+ID4gLSNkZWZpbmUgX19yYXdfaTkxNV93cml0ZTgoZGV2X3By aXZfXywgcmVnX18sIHZhbF9fKSB3cml0ZWIodmFsX18sIChkZXZfcHJpdl9fKS0+cmVncyArIChy ZWdfXykpCj4gPiAtCj4gPiAtI2RlZmluZSBfX3Jhd19pOTE1X3JlYWQxNihkZXZfcHJpdl9fLCBy ZWdfXykgcmVhZHcoKGRldl9wcml2X18pLT5yZWdzICsgKHJlZ19fKSkKPiA+IC0jZGVmaW5lIF9f cmF3X2k5MTVfd3JpdGUxNihkZXZfcHJpdl9fLCByZWdfXywgdmFsX18pIHdyaXRldyh2YWxfXywg KGRldl9wcml2X18pLT5yZWdzICsgKHJlZ19fKSkKPiA+IC0KPiA+IC0jZGVmaW5lIF9fcmF3X2k5 MTVfcmVhZDMyKGRldl9wcml2X18sIHJlZ19fKSByZWFkbCgoZGV2X3ByaXZfXyktPnJlZ3MgKyAo cmVnX18pKQo+ID4gLSNkZWZpbmUgX19yYXdfaTkxNV93cml0ZTMyKGRldl9wcml2X18sIHJlZ19f LCB2YWxfXykgd3JpdGVsKHZhbF9fLCAoZGV2X3ByaXZfXyktPnJlZ3MgKyAocmVnX18pKQo+ID4g LQo+ID4gLSNkZWZpbmUgX19yYXdfaTkxNV9yZWFkNjQoZGV2X3ByaXZfXywgcmVnX18pIHJlYWRx KChkZXZfcHJpdl9fKS0+cmVncyArIChyZWdfXykpCj4gPiAtI2RlZmluZSBfX3Jhd19pOTE1X3dy aXRlNjQoZGV2X3ByaXZfXywgcmVnX18sIHZhbF9fKSB3cml0ZXEodmFsX18sIChkZXZfcHJpdl9f KS0+cmVncyArIChyZWdfXykpCj4gPiAtCj4gPiAtI2RlZmluZSBfX3Jhd19wb3N0aW5nX3JlYWQo ZGV2X3ByaXZfXywgcmVnX18pICh2b2lkKV9fcmF3X2k5MTVfcmVhZDMyKGRldl9wcml2X18sIHJl Z19fKQo+ID4gKyNkZWZpbmUgX19yYXdfcG9zdGluZ19yZWFkKGRldl9wcml2X18sIHJlZ19fKSAo dm9pZClfX3Jhd19pOTE1X3JlYWQzMigoZGV2X3ByaXZfXyksIChyZWdfXykpCj4gPiAgCj4gPiAg c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBmb3JjZXdha2VfZG9tYWluX25hbWVzW10gPSB7Cj4g PiAgCSJyZW5kZXIiLAo+ID4gLS0gCj4gPiAyLjQuOQo+ID4gCj4gPiBfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dAo+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IC0tIAo+IERhbmll bCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8v YmxvZy5mZndsbC5jaAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlz dApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK