From mboxrd@z Thu Jan 1 00:00:00 1970 From: Philipp Zabel Subject: Re: [PATCH v4 4/6] drm: bridge: dw-hdmi: Switch to V4L bus format and encodings Date: Wed, 22 Mar 2017 17:21:17 +0100 Message-ID: <1490199677.2285.48.camel@pengutronix.de> References: <1490109161-20529-1-git-send-email-narmstrong@baylibre.com> <1490109161-20529-5-git-send-email-narmstrong@baylibre.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de [IPv6:2001:67c:670:201:290:27ff:fe1d:cc33]) by gabe.freedesktop.org (Postfix) with ESMTPS id F35F06E21A for ; Wed, 22 Mar 2017 16:21:22 +0000 (UTC) In-Reply-To: <1490109161-20529-5-git-send-email-narmstrong@baylibre.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Neil Armstrong Cc: Jose.Abreu@synopsys.com, laurent.pinchart+renesas@ideasonboard.com, linux-doc@vger.kernel.org, kieran.bingham@ideasonboard.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, hans.verkuil@cisco.com, sakari.ailus@linux.intel.com, linux-amlogic@lists.infradead.org, mchehab@kernel.org, linux-media@vger.kernel.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCAyMDE3LTAzLTIxIGF0IDE2OjEyICswMTAwLCBOZWlsIEFybXN0cm9uZyB3cm90ZToK PiBTb21lIGRpc3BsYXkgcGlwZWxpbmVzIGNhbiBvbmx5IHByb3ZpZGUgbm9uLVJCRyBpbnB1dCBw aXhlbHMgdG8gdGhlIEhETUkgVFgKPiBDb250cm9sbGVyLCB0aGlzIHBhdGNoIHRha2VzIHRoZSBw aXhlbCBmb3JtYXQgZnJvbSB0aGUgcGxhdF9kYXRhIGlmIHByb3ZpZGVkLgo+IAo+IFNpZ25lZC1v ZmYtYnk6IE5laWwgQXJtc3Ryb25nIDxuYXJtc3Ryb25nQGJheWxpYnJlLmNvbT4KCk9uIGkuTVg2 IHdlIGNvdWxkIHByb3ZpZGUgUkdCL1lVViBidXMgZm9ybWF0cyBkeW5hbWljYWxseS4gV291bGQg aXQgbWFrZQpzZW5zZSB0byBuZWdvdGlhdGUgdGhpcyB3aXRoIHRoZSBwaXhlbCBwcm92aWRlciBp bnN0ZWFkIG9mIGZpeGluZyBpdCBpbgpwbGF0Zm9ybSBkYXRhPwpJIGltYWdpbmUgdGhhdCBpZiBh IFlVViBpbWFnZSB3aXRoIHRoZSBjb3JyZWN0IGNvbG9yc3BhY2UgaXMgc3VwcG9zZWQgdG8KYmUg dHJhbnNtaXR0ZWQgdG8gYSBUViB0aGF0IHN1cHBvcnRzIHRoYXQgZm9ybWF0LCBpdCBtaWdodCBi ZSB1c2VmdWwgdG8KYXZvaWQgcGFzc2luZyB0aHJvdWdoIHR3byBjb2xvcnNwYWNlIGNvbnZlcnRl cnMgb24gdGhlIHdheS4KCnJlZ2FyZHMKUGhpbGlwcAoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2JyaWRnZS9zeW5vcHN5cy9kdy1oZG1pLmMgfCAzMjYgKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tCj4gIGluY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1pLmggICAgICAgICAgICAgIHwgIDYz ICsrKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDI5NCBpbnNlcnRpb25zKCspLCA5NSBkZWxldGlv bnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zeW5vcHN5cy9k dy1oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+IGlu ZGV4IGY4Mjc1MGEuLmZjYjBhMjcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2JyaWRn ZS9zeW5vcHN5cy9kdy1oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9w c3lzL2R3LWhkbWkuYwo+IEBAIC0zMCwxOCArMzAsMTUgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1f ZW5jb2Rlcl9zbGF2ZS5oPgo+ICAjaW5jbHVkZSA8ZHJtL2JyaWRnZS9kd19oZG1pLmg+Cj4gIAo+ ICsjaW5jbHVkZSA8dWFwaS9saW51eC9tZWRpYS1idXMtZm9ybWF0Lmg+Cj4gKyNpbmNsdWRlIDx1 YXBpL2xpbnV4L3ZpZGVvZGV2Mi5oPgo+ICsKPiAgI2luY2x1ZGUgImR3LWhkbWkuaCIKPiAgI2lu Y2x1ZGUgImR3LWhkbWktYXVkaW8uaCIKPiAgCj4gICNkZWZpbmUgRERDX1NFR01FTlRfQUREUgkw eDMwCj4gICNkZWZpbmUgSERNSV9FRElEX0xFTgkJNTEyCj4gIAo+IC0jZGVmaW5lIFJHQgkJCTAK PiAtI2RlZmluZSBZQ0JDUjQ0NAkJMQo+IC0jZGVmaW5lIFlDQkNSNDIyXzE2QklUUwkJMgo+IC0j ZGVmaW5lIFlDQkNSNDIyXzhCSVRTCQkzCj4gLSNkZWZpbmUgWFZZQ0M0NDQJCTQKPiAtCj4gIGVu dW0gaGRtaV9kYXRhbWFwIHsKPiAgCVJHQjQ0NF84QiA9IDB4MDEsCj4gIAlSR0I0NDRfMTBCID0g MHgwMywKPiBAQCAtOTUsMTAgKzkyLDEwIEBAIHN0cnVjdCBoZG1pX3Ztb2RlIHsKPiAgfTsKPiAg Cj4gIHN0cnVjdCBoZG1pX2RhdGFfaW5mbyB7Cj4gLQl1bnNpZ25lZCBpbnQgZW5jX2luX2Zvcm1h dDsKPiAtCXVuc2lnbmVkIGludCBlbmNfb3V0X2Zvcm1hdDsKPiAtCXVuc2lnbmVkIGludCBlbmNf Y29sb3JfZGVwdGg7Cj4gLQl1bnNpZ25lZCBpbnQgY29sb3JpbWV0cnk7Cj4gKwl1bnNpZ25lZCBp bnQgZW5jX2luX2J1c19mb3JtYXQ7Cj4gKwl1bnNpZ25lZCBpbnQgZW5jX291dF9idXNfZm9ybWF0 Owo+ICsJdW5zaWduZWQgaW50IGVuY19pbl9lbmNvZGluZzsKPiArCXVuc2lnbmVkIGludCBlbmNf b3V0X2VuY29kaW5nOwo+ICAJdW5zaWduZWQgaW50IHBpeF9yZXBldF9mYWN0b3I7Cj4gIAl1bnNp Z25lZCBpbnQgaGRjcF9lbmFibGU7Cj4gIAlzdHJ1Y3QgaGRtaV92bW9kZSB2aWRlb19tb2RlOwo+ IEBAIC01NjcsNiArNTY0LDkyIEBAIHZvaWQgZHdfaGRtaV9hdWRpb19kaXNhYmxlKHN0cnVjdCBk d19oZG1pICpoZG1pKQo+ICB9Cj4gIEVYUE9SVF9TWU1CT0xfR1BMKGR3X2hkbWlfYXVkaW9fZGlz YWJsZSk7Cj4gIAo+ICtzdGF0aWMgYm9vbCBoZG1pX2J1c19mbXRfaXNfcmdiKHVuc2lnbmVkIGlu dCBidXNfZm9ybWF0KQo+ICt7Cj4gKwlzd2l0Y2ggKGJ1c19mb3JtYXQpIHsKPiArCWNhc2UgTUVE SUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDoKPiArCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBf MVgzMDoKPiArCWNhc2UgTUVESUFfQlVTX0ZNVF9SR0IxMjEyMTJfMVgzNjoKPiArCWNhc2UgTUVE SUFfQlVTX0ZNVF9SR0IxNjE2MTZfMVg0ODoKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlkZWZh dWx0Ogo+ICsJCXJldHVybiBmYWxzZTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIGJvb2wgaGRt aV9idXNfZm10X2lzX3l1djQ0NCh1bnNpZ25lZCBpbnQgYnVzX2Zvcm1hdCkKPiArewo+ICsJc3dp dGNoIChidXNfZm9ybWF0KSB7Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfWVVWOF8xWDI0Ogo+ICsJ Y2FzZSBNRURJQV9CVVNfRk1UX1lVVjEwXzFYMzA6Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfWVVW MTJfMVgzNjoKPiArCWNhc2UgTUVESUFfQlVTX0ZNVF9ZVVYxNl8xWDQ4Ogo+ICsJCXJldHVybiB0 cnVlOwo+ICsKPiArCWRlZmF1bHQ6Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICt9Cj4gKwo+ ICtzdGF0aWMgYm9vbCBoZG1pX2J1c19mbXRfaXNfeXV2NDIyKHVuc2lnbmVkIGludCBidXNfZm9y bWF0KQo+ICt7Cj4gKwlzd2l0Y2ggKGJ1c19mb3JtYXQpIHsKPiArCWNhc2UgTUVESUFfQlVTX0ZN VF9VWVZZOF8xWDE2Ogo+ICsJY2FzZSBNRURJQV9CVVNfRk1UX1VZVlkxMF8xWDIwOgo+ICsJY2Fz ZSBNRURJQV9CVVNfRk1UX1VZVlkxMl8xWDI0Ogo+ICsJCXJldHVybiB0cnVlOwo+ICsKPiArCWRl ZmF1bHQ6Cj4gKwkJcmV0dXJuIGZhbHNlOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgYm9vbCBo ZG1pX2J1c19mbXRfaXNfeXV2NDIwKHVuc2lnbmVkIGludCBidXNfZm9ybWF0KQo+ICt7Cj4gKwlz d2l0Y2ggKGJ1c19mb3JtYXQpIHsKPiArCWNhc2UgTUVESUFfQlVTX0ZNVF9VWVlWWVk4XzFYMjQ6 Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlZVllZMTBfMVgzMDoKPiArCWNhc2UgTUVESUFfQlVT X0ZNVF9VWVlWWVkxMl8xWDM2Ogo+ICsJY2FzZSBNRURJQV9CVVNfRk1UX1VZWVZZWTE2XzFYNDg6 Cj4gKwkJcmV0dXJuIHRydWU7Cj4gKwo+ICsJZGVmYXVsdDoKPiArCQlyZXR1cm4gZmFsc2U7Cj4g Kwl9Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgaGRtaV9idXNfZm10X2NvbG9yX2RlcHRoKHVuc2ln bmVkIGludCBidXNfZm9ybWF0KQo+ICt7Cj4gKwlzd2l0Y2ggKGJ1c19mb3JtYXQpIHsKPiArCWNh c2UgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNDoKPiArCWNhc2UgTUVESUFfQlVTX0ZNVF9ZVVY4 XzFYMjQ6Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlWWThfMVgxNjoKPiArCWNhc2UgTUVESUFf QlVTX0ZNVF9VWVlWWVk4XzFYMjQ6Cj4gKwkJcmV0dXJuIDg7Cj4gKwo+ICsJY2FzZSBNRURJQV9C VVNfRk1UX1JHQjEwMTAxMF8xWDMwOgo+ICsJY2FzZSBNRURJQV9CVVNfRk1UX1lVVjEwXzFYMzA6 Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlWWTEwXzFYMjA6Cj4gKwljYXNlIE1FRElBX0JVU19G TVRfVVlZVllZMTBfMVgzMDoKPiArCQlyZXR1cm4gMTA7Cj4gKwo+ICsJY2FzZSBNRURJQV9CVVNf Rk1UX1JHQjEyMTIxMl8xWDM2Ogo+ICsJY2FzZSBNRURJQV9CVVNfRk1UX1lVVjEyXzFYMzY6Cj4g KwljYXNlIE1FRElBX0JVU19GTVRfVVlWWTEyXzFYMjQ6Cj4gKwljYXNlIE1FRElBX0JVU19GTVRf VVlZVllZMTJfMVgzNjoKPiArCQlyZXR1cm4gMTI7Cj4gKwo+ICsJY2FzZSBNRURJQV9CVVNfRk1U X1JHQjE2MTYxNl8xWDQ4Ogo+ICsJY2FzZSBNRURJQV9CVVNfRk1UX1lVVjE2XzFYNDg6Cj4gKwlj YXNlIE1FRElBX0JVU19GTVRfVVlZVllZMTZfMVg0ODoKPiArCQlyZXR1cm4gMTY7Cj4gKwo+ICsJ ZGVmYXVsdDoKPiArCQlyZXR1cm4gMDsKPiArCX0KPiArfQo+ICsKPiAgLyoKPiAgICogdGhpcyBz dWJtb2R1bGUgaXMgcmVzcG9uc2libGUgZm9yIHRoZSB2aWRlbyBkYXRhIHN5bmNocm9uaXphdGlv bi4KPiAgICogZm9yIGV4YW1wbGUsIGZvciBSR0IgNDo0OjQgaW5wdXQsIHRoZSBkYXRhIG1hcCBp cyBkZWZpbmVkIGFzCj4gQEAgLTU3OSwzNyArNjYyLDQ5IEBAIHN0YXRpYyB2b2lkIGhkbWlfdmlk ZW9fc2FtcGxlKHN0cnVjdCBkd19oZG1pICpoZG1pKQo+ICAJaW50IGNvbG9yX2Zvcm1hdCA9IDA7 Cj4gIAl1OCB2YWw7Cj4gIAo+IC0JaWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfaW5fZm9ybWF0ID09 IFJHQikgewo+IC0JCWlmIChoZG1pLT5oZG1pX2RhdGEuZW5jX2NvbG9yX2RlcHRoID09IDgpCj4g LQkJCWNvbG9yX2Zvcm1hdCA9IDB4MDE7Cj4gLQkJZWxzZSBpZiAoaGRtaS0+aGRtaV9kYXRhLmVu Y19jb2xvcl9kZXB0aCA9PSAxMCkKPiAtCQkJY29sb3JfZm9ybWF0ID0gMHgwMzsKPiAtCQllbHNl IGlmIChoZG1pLT5oZG1pX2RhdGEuZW5jX2NvbG9yX2RlcHRoID09IDEyKQo+IC0JCQljb2xvcl9m b3JtYXQgPSAweDA1Owo+IC0JCWVsc2UgaWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfY29sb3JfZGVw dGggPT0gMTYpCj4gLQkJCWNvbG9yX2Zvcm1hdCA9IDB4MDc7Cj4gLQkJZWxzZQo+IC0JCQlyZXR1 cm47Cj4gLQl9IGVsc2UgaWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfaW5fZm9ybWF0ID09IFlDQkNS NDQ0KSB7Cj4gLQkJaWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfY29sb3JfZGVwdGggPT0gOCkKPiAt CQkJY29sb3JfZm9ybWF0ID0gMHgwOTsKPiAtCQllbHNlIGlmIChoZG1pLT5oZG1pX2RhdGEuZW5j X2NvbG9yX2RlcHRoID09IDEwKQo+IC0JCQljb2xvcl9mb3JtYXQgPSAweDBCOwo+IC0JCWVsc2Ug aWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfY29sb3JfZGVwdGggPT0gMTIpCj4gLQkJCWNvbG9yX2Zv cm1hdCA9IDB4MEQ7Cj4gLQkJZWxzZSBpZiAoaGRtaS0+aGRtaV9kYXRhLmVuY19jb2xvcl9kZXB0 aCA9PSAxNikKPiAtCQkJY29sb3JfZm9ybWF0ID0gMHgwRjsKPiAtCQllbHNlCj4gLQkJCXJldHVy bjsKPiAtCX0gZWxzZSBpZiAoaGRtaS0+aGRtaV9kYXRhLmVuY19pbl9mb3JtYXQgPT0gWUNCQ1I0 MjJfOEJJVFMpIHsKPiAtCQlpZiAoaGRtaS0+aGRtaV9kYXRhLmVuY19jb2xvcl9kZXB0aCA9PSA4 KQo+IC0JCQljb2xvcl9mb3JtYXQgPSAweDE2Owo+IC0JCWVsc2UgaWYgKGhkbWktPmhkbWlfZGF0 YS5lbmNfY29sb3JfZGVwdGggPT0gMTApCj4gLQkJCWNvbG9yX2Zvcm1hdCA9IDB4MTQ7Cj4gLQkJ ZWxzZSBpZiAoaGRtaS0+aGRtaV9kYXRhLmVuY19jb2xvcl9kZXB0aCA9PSAxMikKPiAtCQkJY29s b3JfZm9ybWF0ID0gMHgxMjsKPiAtCQllbHNlCj4gLQkJCXJldHVybjsKPiArCXN3aXRjaCAoaGRt aS0+aGRtaV9kYXRhLmVuY19pbl9idXNfZm9ybWF0KSB7Cj4gKwljYXNlIE1FRElBX0JVU19GTVRf UkdCODg4XzFYMjQ6Cj4gKwkJY29sb3JfZm9ybWF0ID0gMHgwMTsKPiArCQlicmVhazsKPiArCWNh c2UgTUVESUFfQlVTX0ZNVF9SR0IxMDEwMTBfMVgzMDoKPiArCQljb2xvcl9mb3JtYXQgPSAweDAz Owo+ICsJCWJyZWFrOwo+ICsJY2FzZSBNRURJQV9CVVNfRk1UX1JHQjEyMTIxMl8xWDM2Ogo+ICsJ CWNvbG9yX2Zvcm1hdCA9IDB4MDU7Cj4gKwkJYnJlYWs7Cj4gKwljYXNlIE1FRElBX0JVU19GTVRf UkdCMTYxNjE2XzFYNDg6Cj4gKwkJY29sb3JfZm9ybWF0ID0gMHgwNzsKPiArCQlicmVhazsKPiAr Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfWVVWOF8xWDI0Ogo+ICsJY2FzZSBNRURJQV9CVVNfRk1U X1VZWVZZWThfMVgyNDoKPiArCQljb2xvcl9mb3JtYXQgPSAweDA5Owo+ICsJCWJyZWFrOwo+ICsJ Y2FzZSBNRURJQV9CVVNfRk1UX1lVVjEwXzFYMzA6Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlZ VllZMTBfMVgzMDoKPiArCQljb2xvcl9mb3JtYXQgPSAweDBCOwo+ICsJCWJyZWFrOwo+ICsJY2Fz ZSBNRURJQV9CVVNfRk1UX1lVVjEyXzFYMzY6Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlZVllZ MTJfMVgzNjoKPiArCQljb2xvcl9mb3JtYXQgPSAweDBEOwo+ICsJCWJyZWFrOwo+ICsJY2FzZSBN RURJQV9CVVNfRk1UX1lVVjE2XzFYNDg6Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlZVllZMTZf MVg0ODoKPiArCQljb2xvcl9mb3JtYXQgPSAweDBGOwo+ICsJCWJyZWFrOwo+ICsKPiArCWNhc2Ug TUVESUFfQlVTX0ZNVF9VWVZZOF8xWDE2Ogo+ICsJCWNvbG9yX2Zvcm1hdCA9IDB4MTY7Cj4gKwkJ YnJlYWs7Cj4gKwljYXNlIE1FRElBX0JVU19GTVRfVVlWWTEwXzFYMjA6Cj4gKwkJY29sb3JfZm9y bWF0ID0gMHgxNDsKPiArCQlicmVhazsKPiArCWNhc2UgTUVESUFfQlVTX0ZNVF9VWVZZMTJfMVgy NDoKPiArCQljb2xvcl9mb3JtYXQgPSAweDEyOwo+ICsJCWJyZWFrOwo+ICsKPiArCWRlZmF1bHQ6 Cj4gKwkJcmV0dXJuOwo+ICAJfQo+ICAKPiAgCXZhbCA9IEhETUlfVFhfSU5WSUQwX0lOVEVSTkFM X0RFX0dFTkVSQVRPUl9ESVNBQkxFIHwKPiBAQCAtNjMyLDI2ICs3MjcsMzAgQEAgc3RhdGljIHZv aWQgaGRtaV92aWRlb19zYW1wbGUoc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4gIAo+ICBzdGF0aWMg aW50IGlzX2NvbG9yX3NwYWNlX2NvbnZlcnNpb24oc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4gIHsK PiAtCXJldHVybiBoZG1pLT5oZG1pX2RhdGEuZW5jX2luX2Zvcm1hdCAhPSBoZG1pLT5oZG1pX2Rh dGEuZW5jX291dF9mb3JtYXQ7Cj4gKwlyZXR1cm4gaGRtaS0+aGRtaV9kYXRhLmVuY19pbl9idXNf Zm9ybWF0ICE9IGhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2J1c19mb3JtYXQ7Cj4gIH0KPiAgCj4g IHN0YXRpYyBpbnQgaXNfY29sb3Jfc3BhY2VfZGVjaW1hdGlvbihzdHJ1Y3QgZHdfaGRtaSAqaGRt aSkKPiAgewo+IC0JaWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2Zvcm1hdCAhPSBZQ0JDUjQy Ml84QklUUykKPiArCWlmICghaGRtaV9idXNfZm10X2lzX3l1djQyMihoZG1pLT5oZG1pX2RhdGEu ZW5jX291dF9idXNfZm9ybWF0KSkKPiAgCQlyZXR1cm4gMDsKPiAtCWlmIChoZG1pLT5oZG1pX2Rh dGEuZW5jX2luX2Zvcm1hdCA9PSBSR0IgfHwKPiAtCSAgICBoZG1pLT5oZG1pX2RhdGEuZW5jX2lu X2Zvcm1hdCA9PSBZQ0JDUjQ0NCkKPiArCj4gKwlpZiAoaGRtaV9idXNfZm10X2lzX3JnYihoZG1p LT5oZG1pX2RhdGEuZW5jX2luX2J1c19mb3JtYXQpIHx8Cj4gKwkgICAgaGRtaV9idXNfZm10X2lz X3l1djQ0NChoZG1pLT5oZG1pX2RhdGEuZW5jX2luX2J1c19mb3JtYXQpKQo+ICAJCXJldHVybiAx Owo+ICsKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGlzX2NvbG9yX3NwYWNl X2ludGVycG9sYXRpb24oc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4gIHsKPiAtCWlmIChoZG1pLT5o ZG1pX2RhdGEuZW5jX2luX2Zvcm1hdCAhPSBZQ0JDUjQyMl84QklUUykKPiArCWlmICghaGRtaV9i dXNfZm10X2lzX3l1djQyMihoZG1pLT5oZG1pX2RhdGEuZW5jX2luX2J1c19mb3JtYXQpKQo+ICAJ CXJldHVybiAwOwo+IC0JaWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2Zvcm1hdCA9PSBSR0Ig fHwKPiAtCSAgICBoZG1pLT5oZG1pX2RhdGEuZW5jX291dF9mb3JtYXQgPT0gWUNCQ1I0NDQpCj4g Kwo+ICsJaWYgKGhkbWlfYnVzX2ZtdF9pc19yZ2IoaGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfYnVz X2Zvcm1hdCkgfHwKPiArCSAgICBoZG1pX2J1c19mbXRfaXNfeXV2NDQ0KGhkbWktPmhkbWlfZGF0 YS5lbmNfb3V0X2J1c19mb3JtYXQpKQo+ICAJCXJldHVybiAxOwo+ICsKPiAgCXJldHVybiAwOwo+ ICB9Cj4gIAo+IEBAIC02NjIsMTUgKzc2MSwxNiBAQCBzdGF0aWMgdm9pZCBkd19oZG1pX3VwZGF0 ZV9jc2NfY29lZmZzKHN0cnVjdCBkd19oZG1pICpoZG1pKQo+ICAJdTMyIGNzY19zY2FsZSA9IDE7 Cj4gIAo+ICAJaWYgKGlzX2NvbG9yX3NwYWNlX2NvbnZlcnNpb24oaGRtaSkpIHsKPiAtCQlpZiAo aGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfZm9ybWF0ID09IFJHQikgewo+IC0JCQlpZiAoaGRtaS0+ aGRtaV9kYXRhLmNvbG9yaW1ldHJ5ID09Cj4gLQkJCQkJSERNSV9DT0xPUklNRVRSWV9JVFVfNjAx KQo+ICsJCWlmIChoZG1pX2J1c19mbXRfaXNfcmdiKGhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2J1 c19mb3JtYXQpKSB7Cj4gKwkJCWlmIChoZG1pLT5oZG1pX2RhdGEuZW5jX291dF9lbmNvZGluZyA9 PQo+ICsJCQkJCQlWNEwyX1lDQkNSX0VOQ182MDEpCj4gIAkJCQljc2NfY29lZmYgPSAmY3NjX2Nv ZWZmX3JnYl9vdXRfZWl0dTYwMTsKPiAgCQkJZWxzZQo+ICAJCQkJY3NjX2NvZWZmID0gJmNzY19j b2VmZl9yZ2Jfb3V0X2VpdHU3MDk7Cj4gLQkJfSBlbHNlIGlmIChoZG1pLT5oZG1pX2RhdGEuZW5j X2luX2Zvcm1hdCA9PSBSR0IpIHsKPiAtCQkJaWYgKGhkbWktPmhkbWlfZGF0YS5jb2xvcmltZXRy eSA9PQo+IC0JCQkJCUhETUlfQ09MT1JJTUVUUllfSVRVXzYwMSkKPiArCQl9IGVsc2UgaWYgKGhk bWlfYnVzX2ZtdF9pc19yZ2IoCj4gKwkJCQkJaGRtaS0+aGRtaV9kYXRhLmVuY19pbl9idXNfZm9y bWF0KSkgewo+ICsJCQlpZiAoaGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfZW5jb2RpbmcgPT0KPiAr CQkJCQkJVjRMMl9ZQ0JDUl9FTkNfNjAxKQo+ICAJCQkJY3NjX2NvZWZmID0gJmNzY19jb2VmZl9y Z2JfaW5fZWl0dTYwMTsKPiAgCQkJZWxzZQo+ICAJCQkJY3NjX2NvZWZmID0gJmNzY19jb2VmZl9y Z2JfaW5fZWl0dTcwOTsKPiBAQCAtNzA4LDE2ICs4MDgsMjMgQEAgc3RhdGljIHZvaWQgaGRtaV92 aWRlb19jc2Moc3RydWN0IGR3X2hkbWkgKmhkbWkpCj4gIAllbHNlIGlmIChpc19jb2xvcl9zcGFj ZV9kZWNpbWF0aW9uKGhkbWkpKQo+ICAJCWRlY2ltYXRpb24gPSBIRE1JX0NTQ19DRkdfREVDTU9E RV9DSFJPTUFfSU5UX0ZPUk1VTEEzOwo+ICAKPiAtCWlmIChoZG1pLT5oZG1pX2RhdGEuZW5jX2Nv bG9yX2RlcHRoID09IDgpCj4gKwlzd2l0Y2ggKGhkbWlfYnVzX2ZtdF9jb2xvcl9kZXB0aChoZG1p LT5oZG1pX2RhdGEuZW5jX291dF9idXNfZm9ybWF0KSkgewo+ICsJY2FzZSA4Ogo+ICAJCWNvbG9y X2RlcHRoID0gSERNSV9DU0NfU0NBTEVfQ1NDX0NPTE9SREVfUFRIXzI0QlBQOwo+IC0JZWxzZSBp ZiAoaGRtaS0+aGRtaV9kYXRhLmVuY19jb2xvcl9kZXB0aCA9PSAxMCkKPiArCQlicmVhazsKPiAr CWNhc2UgMTA6Cj4gIAkJY29sb3JfZGVwdGggPSBIRE1JX0NTQ19TQ0FMRV9DU0NfQ09MT1JERV9Q VEhfMzBCUFA7Cj4gLQllbHNlIGlmIChoZG1pLT5oZG1pX2RhdGEuZW5jX2NvbG9yX2RlcHRoID09 IDEyKQo+ICsJCWJyZWFrOwo+ICsJY2FzZSAxMjoKPiAgCQljb2xvcl9kZXB0aCA9IEhETUlfQ1ND X1NDQUxFX0NTQ19DT0xPUkRFX1BUSF8zNkJQUDsKPiAtCWVsc2UgaWYgKGhkbWktPmhkbWlfZGF0 YS5lbmNfY29sb3JfZGVwdGggPT0gMTYpCj4gKwkJYnJlYWs7Cj4gKwljYXNlIDE2Ogo+ICAJCWNv bG9yX2RlcHRoID0gSERNSV9DU0NfU0NBTEVfQ1NDX0NPTE9SREVfUFRIXzQ4QlBQOwo+IC0JZWxz ZQo+ICsJCWJyZWFrOwo+ICsKPiArCWRlZmF1bHQ6Cj4gIAkJcmV0dXJuOwo+ICsJfQo+ICAKPiAg CS8qIENvbmZpZ3VyZSB0aGUgQ1NDIHJlZ2lzdGVycyAqLwo+ICAJaGRtaV93cml0ZWIoaGRtaSwg aW50ZXJwb2xhdGlvbiB8IGRlY2ltYXRpb24sIEhETUlfQ1NDX0NGRyk7Cj4gQEAgLTc0MCwzMiAr ODQ3LDQzIEBAIHN0YXRpYyB2b2lkIGhkbWlfdmlkZW9fcGFja2V0aXplKHN0cnVjdCBkd19oZG1p ICpoZG1pKQo+ICAJc3RydWN0IGhkbWlfZGF0YV9pbmZvICpoZG1pX2RhdGEgPSAmaGRtaS0+aGRt aV9kYXRhOwo+ICAJdTggdmFsLCB2cF9jb25mOwo+ICAKPiAtCWlmIChoZG1pX2RhdGEtPmVuY19v dXRfZm9ybWF0ID09IFJHQiB8fAo+IC0JICAgIGhkbWlfZGF0YS0+ZW5jX291dF9mb3JtYXQgPT0g WUNCQ1I0NDQpIHsKPiAtCQlpZiAoIWhkbWlfZGF0YS0+ZW5jX2NvbG9yX2RlcHRoKSB7Cj4gLQkJ CW91dHB1dF9zZWxlY3QgPSBIRE1JX1ZQX0NPTkZfT1VUUFVUX1NFTEVDVE9SX0JZUEFTUzsKPiAt CQl9IGVsc2UgaWYgKGhkbWlfZGF0YS0+ZW5jX2NvbG9yX2RlcHRoID09IDgpIHsKPiArCWlmICho ZG1pX2J1c19mbXRfaXNfcmdiKGhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2J1c19mb3JtYXQpIHx8 Cj4gKwkgICAgaGRtaV9idXNfZm10X2lzX3l1djQ0NChoZG1pLT5oZG1pX2RhdGEuZW5jX291dF9i dXNfZm9ybWF0KSkgewo+ICsJCXN3aXRjaCAoaGRtaV9idXNfZm10X2NvbG9yX2RlcHRoKAo+ICsJ CQkJCWhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2J1c19mb3JtYXQpKSB7Cj4gKwkJY2FzZSA4Ogo+ ICAJCQljb2xvcl9kZXB0aCA9IDQ7Cj4gIAkJCW91dHB1dF9zZWxlY3QgPSBIRE1JX1ZQX0NPTkZf T1VUUFVUX1NFTEVDVE9SX0JZUEFTUzsKPiAtCQl9IGVsc2UgaWYgKGhkbWlfZGF0YS0+ZW5jX2Nv bG9yX2RlcHRoID09IDEwKSB7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgMTA6Cj4gIAkJCWNvbG9y X2RlcHRoID0gNTsKPiAtCQl9IGVsc2UgaWYgKGhkbWlfZGF0YS0+ZW5jX2NvbG9yX2RlcHRoID09 IDEyKSB7Cj4gKwkJCWJyZWFrOwo+ICsJCWNhc2UgMTI6Cj4gIAkJCWNvbG9yX2RlcHRoID0gNjsK PiAtCQl9IGVsc2UgaWYgKGhkbWlfZGF0YS0+ZW5jX2NvbG9yX2RlcHRoID09IDE2KSB7Cj4gKwkJ CWJyZWFrOwo+ICsJCWNhc2UgMTY6Cj4gIAkJCWNvbG9yX2RlcHRoID0gNzsKPiAtCQl9IGVsc2Ug ewo+IC0JCQlyZXR1cm47Cj4gKwkJCWJyZWFrOwo+ICsJCWRlZmF1bHQ6Cj4gKwkJCW91dHB1dF9z ZWxlY3QgPSBIRE1JX1ZQX0NPTkZfT1VUUFVUX1NFTEVDVE9SX0JZUEFTUzsKPiAgCQl9Cj4gLQl9 IGVsc2UgaWYgKGhkbWlfZGF0YS0+ZW5jX291dF9mb3JtYXQgPT0gWUNCQ1I0MjJfOEJJVFMpIHsK PiAtCQlpZiAoIWhkbWlfZGF0YS0+ZW5jX2NvbG9yX2RlcHRoIHx8Cj4gLQkJICAgIGhkbWlfZGF0 YS0+ZW5jX2NvbG9yX2RlcHRoID09IDgpCj4gKwl9IGVsc2UgaWYgKGhkbWlfYnVzX2ZtdF9pc195 dXY0MjIoaGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfYnVzX2Zvcm1hdCkpIHsKPiArCQlzd2l0Y2gg KGhkbWlfYnVzX2ZtdF9jb2xvcl9kZXB0aCgKPiArCQkJCQloZG1pLT5oZG1pX2RhdGEuZW5jX291 dF9idXNfZm9ybWF0KSkgewo+ICsJCWNhc2UgMDoKPiArCQljYXNlIDg6Cj4gIAkJCXJlbWFwX3Np emUgPSBIRE1JX1ZQX1JFTUFQX1lDQzQyMl8xNmJpdDsKPiAtCQllbHNlIGlmIChoZG1pX2RhdGEt PmVuY19jb2xvcl9kZXB0aCA9PSAxMCkKPiArCQkJYnJlYWs7Cj4gKwkJY2FzZSAxMDoKPiAgCQkJ cmVtYXBfc2l6ZSA9IEhETUlfVlBfUkVNQVBfWUNDNDIyXzIwYml0Owo+IC0JCWVsc2UgaWYgKGhk bWlfZGF0YS0+ZW5jX2NvbG9yX2RlcHRoID09IDEyKQo+ICsJCQlicmVhazsKPiArCQljYXNlIDEy Ogo+ICAJCQlyZW1hcF9zaXplID0gSERNSV9WUF9SRU1BUF9ZQ0M0MjJfMjRiaXQ7Cj4gLQkJZWxz ZQo+ICsJCQlicmVhazsKPiArCj4gKwkJZGVmYXVsdDoKPiAgCQkJcmV0dXJuOwo+ICsJCX0KPiAg CQlvdXRwdXRfc2VsZWN0ID0gSERNSV9WUF9DT05GX09VVFBVVF9TRUxFQ1RPUl9ZQ0M0MjI7Cj4g IAl9IGVsc2Ugewo+ICAJCXJldHVybjsKPiBAQCAtMTE0OCwyOCArMTI2NiwzNSBAQCBzdGF0aWMg dm9pZCBoZG1pX2NvbmZpZ19BVkkoc3RydWN0IGR3X2hkbWkgKmhkbWksIHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICptb2RlKQo+ICAJLyogSW5pdGlhbGlzZSBpbmZvIGZyYW1lIGZyb20gRFJNIG1v ZGUgKi8KPiAgCWRybV9oZG1pX2F2aV9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1l LCBtb2RlKTsKPiAgCj4gLQlpZiAoaGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfZm9ybWF0ID09IFlD QkNSNDQ0KQo+ICsJaWYgKGhkbWlfYnVzX2ZtdF9pc195dXY0NDQoaGRtaS0+aGRtaV9kYXRhLmVu Y19vdXRfYnVzX2Zvcm1hdCkpCj4gIAkJZnJhbWUuY29sb3JzcGFjZSA9IEhETUlfQ09MT1JTUEFD RV9ZVVY0NDQ7Cj4gLQllbHNlIGlmIChoZG1pLT5oZG1pX2RhdGEuZW5jX291dF9mb3JtYXQgPT0g WUNCQ1I0MjJfOEJJVFMpCj4gKwllbHNlIGlmIChoZG1pX2J1c19mbXRfaXNfeXV2NDIyKGhkbWkt PmhkbWlfZGF0YS5lbmNfb3V0X2J1c19mb3JtYXQpKQo+ICAJCWZyYW1lLmNvbG9yc3BhY2UgPSBI RE1JX0NPTE9SU1BBQ0VfWVVWNDIyOwo+ICAJZWxzZQo+ICAJCWZyYW1lLmNvbG9yc3BhY2UgPSBI RE1JX0NPTE9SU1BBQ0VfUkdCOwo+ICAKPiAgCS8qIFNldCB1cCBjb2xvcmltZXRyeSAqLwo+IC0J aWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfb3V0X2Zvcm1hdCA9PSBYVllDQzQ0NCkgewo+IC0JCWZy YW1lLmNvbG9yaW1ldHJ5ID0gSERNSV9DT0xPUklNRVRSWV9FWFRFTkRFRDsKPiAtCQlpZiAoaGRt aS0+aGRtaV9kYXRhLmNvbG9yaW1ldHJ5ID09IEhETUlfQ09MT1JJTUVUUllfSVRVXzYwMSkKPiAt CQkJZnJhbWUuZXh0ZW5kZWRfY29sb3JpbWV0cnkgPQo+ICsJc3dpdGNoIChoZG1pLT5oZG1pX2Rh dGEuZW5jX291dF9lbmNvZGluZykgewo+ICsJY2FzZSBWNEwyX1lDQkNSX0VOQ182MDE6Cj4gKwkJ aWYgKGhkbWktPmhkbWlfZGF0YS5lbmNfaW5fZW5jb2RpbmcgPT0gVjRMMl9ZQ0JDUl9FTkNfWFY2 MDEpCj4gKwkJCWZyYW1lLmNvbG9yaW1ldHJ5ID0gSERNSV9DT0xPUklNRVRSWV9FWFRFTkRFRDsK PiArCQllbHNlCj4gKwkJCWZyYW1lLmNvbG9yaW1ldHJ5ID0gSERNSV9DT0xPUklNRVRSWV9JVFVf NjAxOwo+ICsJCWZyYW1lLmV4dGVuZGVkX2NvbG9yaW1ldHJ5ID0KPiAgCQkJCUhETUlfRVhURU5E RURfQ09MT1JJTUVUUllfWFZfWUNDXzYwMTsKPiAtCQllbHNlIC8qaGRtaS0+aGRtaV9kYXRhLmNv bG9yaW1ldHJ5ID09IEhETUlfQ09MT1JJTUVUUllfSVRVXzcwOSovCj4gLQkJCWZyYW1lLmV4dGVu ZGVkX2NvbG9yaW1ldHJ5ID0KPiArCWNhc2UgVjRMMl9ZQ0JDUl9FTkNfNzA5Ogo+ICsJCWlmICho ZG1pLT5oZG1pX2RhdGEuZW5jX2luX2VuY29kaW5nID09IFY0TDJfWUNCQ1JfRU5DX1hWNzA5KQo+ ICsJCQlmcmFtZS5jb2xvcmltZXRyeSA9IEhETUlfQ09MT1JJTUVUUllfRVhURU5ERUQ7Cj4gKwkJ ZWxzZQo+ICsJCQlmcmFtZS5jb2xvcmltZXRyeSA9IEhETUlfQ09MT1JJTUVUUllfSVRVXzcwOTsK PiArCQlmcmFtZS5leHRlbmRlZF9jb2xvcmltZXRyeSA9Cj4gIAkJCQlIRE1JX0VYVEVOREVEX0NP TE9SSU1FVFJZX1hWX1lDQ183MDk7Cj4gLQl9IGVsc2UgaWYgKGhkbWktPmhkbWlfZGF0YS5lbmNf b3V0X2Zvcm1hdCAhPSBSR0IpIHsKPiAtCQlmcmFtZS5jb2xvcmltZXRyeSA9IGhkbWktPmhkbWlf ZGF0YS5jb2xvcmltZXRyeTsKPiAtCQlmcmFtZS5leHRlbmRlZF9jb2xvcmltZXRyeSA9IEhETUlf RVhURU5ERURfQ09MT1JJTUVUUllfWFZfWUNDXzYwMTsKPiAtCX0gZWxzZSB7IC8qIENhcnJpZXMg bm8gZGF0YSAqLwo+IC0JCWZyYW1lLmNvbG9yaW1ldHJ5ID0gSERNSV9DT0xPUklNRVRSWV9OT05F Owo+IC0JCWZyYW1lLmV4dGVuZGVkX2NvbG9yaW1ldHJ5ID0gSERNSV9FWFRFTkRFRF9DT0xPUklN RVRSWV9YVl9ZQ0NfNjAxOwo+ICsJCWJyZWFrOwo+ICsJZGVmYXVsdDogLyogQ2FycmllcyBubyBk YXRhICovCj4gKwkJZnJhbWUuY29sb3JpbWV0cnkgPSBIRE1JX0NPTE9SSU1FVFJZX0lUVV82MDE7 Cj4gKwkJZnJhbWUuZXh0ZW5kZWRfY29sb3JpbWV0cnkgPQo+ICsJCQkJSERNSV9FWFRFTkRFRF9D T0xPUklNRVRSWV9YVl9ZQ0NfNjAxOwo+ICsJCWJyZWFrOwo+ICAJfQo+ICAKPiAgCWZyYW1lLnNj YW5fbW9kZSA9IEhETUlfU0NBTl9NT0RFX05PTkU7Cj4gQEAgLTE0OTgsMTkgKzE2MjMsMzAgQEAg c3RhdGljIGludCBkd19oZG1pX3NldHVwKHN0cnVjdCBkd19oZG1pICpoZG1pLCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiAgCSAgICAoaGRtaS0+dmljID09IDIxKSB8fCAoaGRtaS0+ dmljID09IDIyKSB8fAo+ICAJICAgIChoZG1pLT52aWMgPT0gMikgfHwgKGhkbWktPnZpYyA9PSAz KSB8fAo+ICAJICAgIChoZG1pLT52aWMgPT0gMTcpIHx8IChoZG1pLT52aWMgPT0gMTgpKQo+IC0J CWhkbWktPmhkbWlfZGF0YS5jb2xvcmltZXRyeSA9IEhETUlfQ09MT1JJTUVUUllfSVRVXzYwMTsK PiArCQloZG1pLT5oZG1pX2RhdGEuZW5jX291dF9lbmNvZGluZyA9IFY0TDJfWUNCQ1JfRU5DXzYw MTsKPiAgCWVsc2UKPiAtCQloZG1pLT5oZG1pX2RhdGEuY29sb3JpbWV0cnkgPSBIRE1JX0NPTE9S SU1FVFJZX0lUVV83MDk7Cj4gKwkJaGRtaS0+aGRtaV9kYXRhLmVuY19vdXRfZW5jb2RpbmcgPSBW NEwyX1lDQkNSX0VOQ183MDk7Cj4gIAo+ICAJaGRtaS0+aGRtaV9kYXRhLnZpZGVvX21vZGUubXBp eGVscmVwZXRpdGlvbm91dHB1dCA9IDA7Cj4gIAloZG1pLT5oZG1pX2RhdGEudmlkZW9fbW9kZS5t cGl4ZWxyZXBldGl0aW9uaW5wdXQgPSAwOwo+ICAKPiAtCS8qIFRPRE86IEdldCBpbnB1dCBmb3Jt YXQgZnJvbSBJUFUgKHZpYSBGQiBkcml2ZXIgaW50ZXJmYWNlKSAqLwo+IC0JaGRtaS0+aGRtaV9k YXRhLmVuY19pbl9mb3JtYXQgPSBSR0I7Cj4gKwkvKiBUT0ZJWDogR2V0IGlucHV0IGZvcm1hdCBm cm9tIHBsYXQgZGF0YSBvciBmYWxsYmFjayB0byBSR0I4ODggKi8KPiArCWlmIChoZG1pLT5wbGF0 X2RhdGEtPmlucHV0X2J1c19mb3JtYXQgPj0gMCkKPiArCQloZG1pLT5oZG1pX2RhdGEuZW5jX2lu X2J1c19mb3JtYXQgPQo+ICsJCQloZG1pLT5wbGF0X2RhdGEtPmlucHV0X2J1c19mb3JtYXQ7Cj4g KwllbHNlCj4gKwkJaGRtaS0+aGRtaV9kYXRhLmVuY19pbl9idXNfZm9ybWF0ID0gTUVESUFfQlVT X0ZNVF9SR0I4ODhfMVgyNDsKPiArCj4gKwkvKiBUT0ZJWDogR2V0IGlucHV0IGVuY29kaW5nIGZy b20gcGxhdCBkYXRhIG9yIGZhbGxiYWNrIHRvIG5vbmUgKi8KPiArCWlmIChoZG1pLT5wbGF0X2Rh dGEtPmlucHV0X2J1c19lbmNvZGluZyA+PSAwKQo+ICsJCWhkbWktPmhkbWlfZGF0YS5lbmNfaW5f ZW5jb2RpbmcgPQo+ICsJCQloZG1pLT5wbGF0X2RhdGEtPmlucHV0X2J1c19lbmNvZGluZzsKPiAr CWVsc2UKPiArCQloZG1pLT5oZG1pX2RhdGEuZW5jX2luX2VuY29kaW5nID0gVjRMMl9ZQ0JDUl9F TkNfREVGQVVMVDsKPiAgCj4gLQloZG1pLT5oZG1pX2RhdGEuZW5jX291dF9mb3JtYXQgPSBSR0I7 Cj4gKwkvKiBUT0ZJWDogRGVmYXVsdCB0byBSR0I4ODggb3V0cHV0IGZvcm1hdCAqLwo+ICsJaGRt aS0+aGRtaV9kYXRhLmVuY19vdXRfYnVzX2Zvcm1hdCA9IE1FRElBX0JVU19GTVRfUkdCODg4XzFY MjQ7Cj4gIAo+IC0JaGRtaS0+aGRtaV9kYXRhLmVuY19jb2xvcl9kZXB0aCA9IDg7Cj4gIAloZG1p LT5oZG1pX2RhdGEucGl4X3JlcGV0X2ZhY3RvciA9IDA7Cj4gIAloZG1pLT5oZG1pX2RhdGEuaGRj cF9lbmFibGUgPSAwOwo+ICAJaGRtaS0+aGRtaV9kYXRhLnZpZGVvX21vZGUubWRhdGFlbmFibGVw b2xhcml0eSA9IHRydWU7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2JyaWRnZS9kd19oZG1p LmggYi9pbmNsdWRlL2RybS9icmlkZ2UvZHdfaGRtaS5oCj4gaW5kZXggYmNjZWVlOC4uMGRhNzRm YiAxMDA2NDQKPiAtLS0gYS9pbmNsdWRlL2RybS9icmlkZ2UvZHdfaGRtaS5oCj4gKysrIGIvaW5j bHVkZS9kcm0vYnJpZGdlL2R3X2hkbWkuaAo+IEBAIC0xNCw2ICsxNCw2NyBAQAo+ICAKPiAgc3Ry dWN0IGR3X2hkbWk7Cj4gIAo+ICsvKioKPiArICogRE9DOiBTdXBwb3J0ZWQgaW5wdXQgZm9ybWF0 cyBhbmQgZW5jb2RpbmdzCj4gKyAqCj4gKyAqIERlcGVuZGluZyBvbiB0aGUgSGFyZHdhcmUgY29u ZmlndXJhdGlvbiBvZiB0aGUgQ29udHJvbGxlciBJUCwgaXQgc3VwcG9ydHMKPiArICogYSBzdWJz ZXQgb2YgdGhlIGZvbGxvd2luZyBpbnB1dCBmb3JtYXRzIGFuZCBlbmNvZGluZ3Mgb24gaXQncyBp bnRlcm5hbAo+ICsgKiA0OGJpdCBidXMuCj4gKyAqCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rCj4gKyAqICsgRm9ybWF0IE5hbWUgICAgICAgICAgKyBGb3JtYXQgQ29kZSAg ICAgICAgICAgICAgICAgICAgICsgRW5jb2RpbmdzICAgICAgICAgICAgICAgICAgICArCj4gKyAq ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsgUkdCIDQ6NDo0IDhiaXQg ICAgICAgKyBgYE1FRElBX0JVU19GTVRfUkdCODg4XzFYMjRgYCAgICsgYGBWNEwyX1lDQkNSX0VO Q19ERUZBVUxUYGAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4g KyAqICsgUkdCIDQ6NDo0IDEwYml0cyAgICAgKyBgYE1FRElBX0JVU19GTVRfUkdCMTAxMDEwXzFY MzBgYCsgYGBWNEwyX1lDQkNSX0VOQ19ERUZBVUxUYGAgICArCj4gKyAqICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsgUkdCIDQ6NDo0IDEyYml0cyAgICAgKyBgYE1FRElB X0JVU19GTVRfUkdCMTIxMjEyXzFYMzZgYCsgYGBWNEwyX1lDQkNSX0VOQ19ERUZBVUxUYGAgICAr Cj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsgUkdCIDQ6NDo0 IDE2Yml0cyAgICAgKyBgYE1FRElBX0JVU19GTVRfUkdCMTYxNjE2XzFYNDhgYCsgYGBWNEwyX1lD QkNSX0VOQ19ERUZBVUxUYGAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rCj4gKyAqICsgWUNiQ3IgNDo0OjQgOGJpdCAgICAgKyBgYE1FRElBX0JVU19GTVRfWVVWOF8x WDI0YGAgICAgICsgYGBWNEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAg ICAgICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBW NEwyX1lDQkNSX0VOQ183MDlgYCAgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAgICAgKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ19YVjYw MWBgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ19YVjcwOWBgICArCj4gKyAqICstLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsgWUNiQ3IgNDo0OjQgMTBiaXRzICAg KyBgYE1FRElBX0JVU19GTVRfWVVWMTBfMVgzMGBgICAgICsgYGBWNEwyX1lDQkNSX0VOQ182MDFg YCAgICAgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ183MDlgYCAgICArCj4gKyAqICsg ICAgICAgICAgICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsg b3IgYGBWNEwyX1lDQkNSX0VOQ19YVjYwMWBgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAg ICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VO Q19YVjcwOWBgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq ICsgWUNiQ3IgNDo0OjQgMTJiaXRzICAgKyBgYE1FRElBX0JVU19GTVRfWVVWMTJfMVgzNmBgICAg ICsgYGBWNEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAgICAgICAgICAg ICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNS X0VOQ183MDlgYCAgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAgICAgKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ19YVjYwMWBgICArCj4g KyAqICsgICAgICAgICAgICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ19YVjcwOWBgICArCj4gKyAqICstLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsgWUNiQ3IgNDo0OjQgMTZiaXRzICAgKyBgYE1FRElB X0JVU19GTVRfWVVWMTZfMVg0OGBgICAgICsgYGBWNEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICAr Cj4gKyAqICsgICAgICAgICAgICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ183MDlgYCAgICArCj4gKyAqICsgICAgICAgICAg ICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwy X1lDQkNSX0VOQ19YVjYwMWBgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAgICAgKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ19YVjcwOWBg ICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsgWUNiQ3Ig NDoyOjIgOGJpdCAgICAgKyBgYE1FRElBX0JVU19GTVRfVVlWWThfMVgxNmBgICAgICsgYGBWNEwy X1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAgICAgKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ183MDlg YCAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsgWUNi Q3IgNDoyOjIgMTBiaXRzICAgKyBgYE1FRElBX0JVU19GTVRfVVlWWTEwXzFYMjBgYCAgICsgYGBW NEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAgICAg KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VOQ183 MDlgYCAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAqICsg WUNiQ3IgNDoyOjIgMTJiaXRzICAgKyBgYE1FRElBX0JVU19GTVRfVVlWWTEyXzFYMjRgYCAgICsg YGBWNEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAgICAgICAgICAgICAg ICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNSX0VO Q183MDlgYCAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4gKyAq ICsgWUNiQ3IgNDoyOjAgOGJpdCAgICAgKyBgYE1FRElBX0JVU19GTVRfVVlZVllZOF8xWDI0YGAg ICsgYGBWNEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAgICAgICAgICAg ICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lDQkNS X0VOQ183MDlgYCAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4g KyAqICsgWUNiQ3IgNDoyOjAgMTBiaXRzICAgKyBgYE1FRElBX0JVU19GTVRfVVlZVllZMTBfMVgz MGBgICsgYGBWNEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAgICAgICAg ICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwyX1lD QkNSX0VOQ183MDlgYCAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r Cj4gKyAqICsgWUNiQ3IgNDoyOjAgMTJiaXRzICAgKyBgYE1FRElBX0JVU19GTVRfVVlZVllZMTJf MVgzNmBgICsgYGBWNEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAgICAg ICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBWNEwy X1lDQkNSX0VOQ183MDlgYCAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rCj4gKyAqICsgWUNiQ3IgNDoyOjAgMTZiaXRzICAgKyBgYE1FRElBX0JVU19GTVRfVVlZVllZ MTZfMVg0OGBgICsgYGBWNEwyX1lDQkNSX0VOQ182MDFgYCAgICAgICArCj4gKyAqICsgICAgICAg ICAgICAgICAgICAgICAgKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgb3IgYGBW NEwyX1lDQkNSX0VOQ183MDlgYCAgICArCj4gKyAqICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rCj4gKyAqLwo+ICsKPiAgZW51bSB7Cj4gIAlEV19IRE1JX1JFU184LAo+ICAJRFdfSERN SV9SRVNfMTAsCj4gQEAgLTYyLDYgKzEyMyw4IEBAIHN0cnVjdCBkd19oZG1pX3BsYXRfZGF0YSB7 Cj4gIAlzdHJ1Y3QgcmVnbWFwICpyZWdtOwo+ICAJZW51bSBkcm1fbW9kZV9zdGF0dXMgKCptb2Rl X3ZhbGlkKShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCQkJCSAgIHN0cnVj dCBkcm1fZGlzcGxheV9tb2RlICptb2RlKTsKPiArCXVuc2lnbmVkIGxvbmcgaW5wdXRfYnVzX2Zv cm1hdDsKPiArCXVuc2lnbmVkIGxvbmcgaW5wdXRfYnVzX2VuY29kaW5nOwo+ICAKPiAgCS8qIFZl bmRvciBQSFkgc3VwcG9ydCAqLwo+ICAJY29uc3Qgc3RydWN0IGR3X2hkbWlfcGh5X29wcyAqcGh5 X29wczsKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK