From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH 01/14] drm/msm/dpu: remove debugfs support for misr Date: Thu, 30 Aug 2018 12:15:52 -0400 Message-ID: <20180830161552.GH188300@art_vandelay> References: <1535503203-22054-1-git-send-email-jsanka@codeaurora.org> <1535503203-22054-2-git-send-email-jsanka@codeaurora.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1535503203-22054-2-git-send-email-jsanka-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Jeykumar Sankaran Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, hoegsberg-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org, freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBBdWcgMjgsIDIwMTggYXQgMDU6Mzk6NTBQTSAtMDcwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gU3RyaXAgZG93biBkZWJ1Z2ZzIHN1cHBvcnQgZm9yIG1pc3IgZGF0YSByZWFk IG9uIGxheWVyIG1peGVycwo+IGFuZCBpbnRlcmZhY2VzLgoKQ291bGQgeW91IHBsZWFzZSBzdGFy dCBleHBsYWluaW5nIG5vdCBvbmx5IHRoZSB3aGF0LCBidXQgYWxzbyB0aGUgd2h5PyBJJ20KY2Vy dGFpbiB0aGVyZSdzIGEgdmVyeSBnb29kIHJlYXNvbiBmb3IgdGhpcyBjaGFuZ2UsIGhvd2V2ZXIg eW91IGRvbid0IHN0YXRlIGl0LApzbyBJJ20gbGVmdCB0byBmaWd1cmUgaXQgb3V0IG9uIG15IG93 bi4gTm8gb25lIGhhcyBldmVyIHNhaWQgInlvdXIgY29tbWl0Cm1lc3NhZ2UgaXMgdG9vIGRldGFp bGVkLCBwbGVhc2UgbWFrZSBpdCBtb3JlIHZhZ3VlIiA6KQoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBK ZXlrdW1hciBTYW5rYXJhbiA8anNhbmthQGNvZGVhdXJvcmEub3JnPgo+IC0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jICAgICAgICAgICB8IDEzOSAtLS0tLS0t LS0tLS0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMu aCAgICAgICAgICAgfCAgIDYgLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVf ZW5jb2Rlci5jICAgICAgICB8IDEyNyAtLS0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1 L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXMuaCAgIHwgICA2IC0KPiAgLi4uL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jICAgfCAgMjggLS0tLS0K PiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGYuYyAgICAgICAgfCAg MjkgLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGYuaCAg ICAgICAgfCAgIDcgLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xt LmMgICAgICAgICAgfCAgMjkgLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEv ZHB1X2h3X2xtLmggICAgICAgICAgfCAgIDcgLS0KPiAgZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2h3X3V0aWwuYyAgICAgICAgfCAgIDMgLQo+ICBkcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfaHdfdXRpbC5oICAgICAgICB8ICAgNiAtCj4gIDExIGZpbGVzIGNoYW5n ZWQsIDM4NyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2Rw dV9jcnRjLmMKPiBpbmRleCAwN2MyZDE1Li5hNGZhYjA0MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYwo+IEBAIC00Nyw4ICs0Nyw2IEBACj4gICNkZWZpbmUg TEVGVF9NSVhFUiAwCj4gICNkZWZpbmUgUklHSFRfTUlYRVIgMQo+ICAKPiAtI2RlZmluZSBNSVNS X0JVRkZfU0laRQkJCTI1Ngo+IC0KPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgZHB1X2ttcyAqX2Rw dV9jcnRjX2dldF9rbXMoc3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICB7Cj4gIAlzdHJ1Y3QgbXNt X2RybV9wcml2YXRlICpwcml2Owo+IEBAIC0xMjcyLDggKzEyNzAsNiBAQCBzdGF0aWMgdm9pZCBk cHVfY3J0Y19oYW5kbGVfcG93ZXJfZXZlbnQodTMyIGV2ZW50X3R5cGUsIHZvaWQgKmFyZykKPiAg CXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IGFyZzsKPiAgCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2Ny dGM7Cj4gIAlzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXI7Cj4gLQlzdHJ1Y3QgZHB1X2NydGNf bWl4ZXIgKm07Cj4gLQl1MzIgaSwgbWlzcl9zdGF0dXM7Cj4gIAo+ICAJaWYgKCFjcnRjKSB7Cj4g IAkJRFBVX0VSUk9SKCJpbnZhbGlkIGNydGNcbiIpOwo+IEBAIC0xMjk0LDI5ICsxMjkwLDggQEAg c3RhdGljIHZvaWQgZHB1X2NydGNfaGFuZGxlX3Bvd2VyX2V2ZW50KHUzMiBldmVudF90eXBlLCB2 b2lkICphcmcpCj4gIAo+ICAJCQlkcHVfZW5jb2Rlcl92aXJ0X3Jlc3RvcmUoZW5jb2Rlcik7Cj4g IAkJfQo+IC0KPiAtCQlmb3IgKGkgPSAwOyBpIDwgZHB1X2NydGMtPm51bV9taXhlcnM7ICsraSkg ewo+IC0JCQltID0gJmRwdV9jcnRjLT5taXhlcnNbaV07Cj4gLQkJCWlmICghbS0+aHdfbG0gfHwg IW0tPmh3X2xtLT5vcHMuc2V0dXBfbWlzciB8fAo+IC0JCQkJCSFkcHVfY3J0Yy0+bWlzcl9lbmFi bGUpCj4gLQkJCQljb250aW51ZTsKPiAtCj4gLQkJCW0tPmh3X2xtLT5vcHMuc2V0dXBfbWlzciht LT5od19sbSwgdHJ1ZSwKPiAtCQkJCQlkcHVfY3J0Yy0+bWlzcl9mcmFtZV9jb3VudCk7Cj4gLQkJ fQo+ICAJCWJyZWFrOwo+ICAJY2FzZSBEUFVfUE9XRVJfRVZFTlRfUFJFX0RJU0FCTEU6CgpJdCBs b29rcyBsaWtlIG5vIG9uZSB1c2VzIFBSRV9ESVNBQkxFIG5vdyBzbyBpdCBjYW4gYmUgcmVtb3Zl ZCwgZGl0dG8gZm9yClBSRV9FTkFCTEUuIFNpbmNlIHRoZXkncmUgY2FsbGVkIGF0IHRoZSBzYW1l IHRpbWUgYW55d2F5cywgbGV0cyBqdXN0IG1lcmdlClBSRS9QT1NUX0VOQUJMRS9ESVNBQkxFIGlu dG8gRFBVX1BPV0VSX0VWRU5UX0VOQUJMRSBhbmQgRFBVX1BPV0VSX0VWRU5UX0RJU0FCTEUuCgpJ biBhIHNlcGFyYXRlIHBhdGNoLCBvZiBjb3Vyc2UuCgo+IC0JCWZvciAoaSA9IDA7IGkgPCBkcHVf Y3J0Yy0+bnVtX21peGVyczsgKytpKSB7Cj4gLQkJCW0gPSAmZHB1X2NydGMtPm1peGVyc1tpXTsK PiAtCQkJaWYgKCFtLT5od19sbSB8fCAhbS0+aHdfbG0tPm9wcy5jb2xsZWN0X21pc3IgfHwKPiAt CQkJCQkhZHB1X2NydGMtPm1pc3JfZW5hYmxlKQo+IC0JCQkJY29udGludWU7Cj4gLQo+IC0JCQlt aXNyX3N0YXR1cyA9IG0tPmh3X2xtLT5vcHMuY29sbGVjdF9taXNyKG0tPmh3X2xtKTsKPiAtCQkJ ZHB1X2NydGMtPm1pc3JfZGF0YVtpXSA9IG1pc3Jfc3RhdHVzID8gbWlzcl9zdGF0dXMgOgo+IC0J CQkJCQkJZHB1X2NydGMtPm1pc3JfZGF0YVtpXTsKPiAtCQl9Cj4gLQkJYnJlYWs7Cj4gIAljYXNl IERQVV9QT1dFUl9FVkVOVF9QT1NUX0RJU0FCTEU6Cj4gIAkJLyoqCj4gIAkJICogTm90aGluZyB0 byBkby4gQWxsIHRoZSBwbGFuZXMgb24gdGhlIENSVEMgd2lsbCBiZQo+IEBAIC0xODQ3LDExMyAr MTgyMiw2IEBAIHN0YXRpYyBpbnQgX2RwdV9kZWJ1Z2ZzX3N0YXR1c19vcGVuKHN0cnVjdCBpbm9k ZSAqaW5vZGUsIHN0cnVjdCBmaWxlICpmaWxlKQo+ICAJcmV0dXJuIHNpbmdsZV9vcGVuKGZpbGUs IF9kcHVfZGVidWdmc19zdGF0dXNfc2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7Cj4gIH0KPiAgCj4g LXN0YXRpYyBzc2l6ZV90IF9kcHVfY3J0Y19taXNyX3NldHVwKHN0cnVjdCBmaWxlICpmaWxlLAo+ IC0JCWNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1Ziwgc2l6ZV90IGNvdW50LCBsb2ZmX3QgKnBw b3MpCj4gLXsKPiAtCXN0cnVjdCBkcHVfY3J0YyAqZHB1X2NydGM7Cj4gLQlzdHJ1Y3QgZHB1X2Ny dGNfbWl4ZXIgKm07Cj4gLQlpbnQgaSA9IDAsIHJjOwo+IC0JY2hhciBidWZbTUlTUl9CVUZGX1NJ WkUgKyAxXTsKPiAtCXUzMiBmcmFtZV9jb3VudCwgZW5hYmxlOwo+IC0Jc2l6ZV90IGJ1ZmZfY29w eTsKPiAtCj4gLQlpZiAoIWZpbGUgfHwgIWZpbGUtPnByaXZhdGVfZGF0YSkKPiAtCQlyZXR1cm4g LUVJTlZBTDsKPiAtCj4gLQlkcHVfY3J0YyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKPiAtCWJ1ZmZf Y29weSA9IG1pbl90KHNpemVfdCwgY291bnQsIE1JU1JfQlVGRl9TSVpFKTsKPiAtCWlmIChjb3B5 X2Zyb21fdXNlcihidWYsIHVzZXJfYnVmLCBidWZmX2NvcHkpKSB7Cj4gLQkJRFBVX0VSUk9SKCJi dWZmZXIgY29weSBmYWlsZWRcbiIpOwo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0JfQo+IC0KPiAt CWJ1ZltidWZmX2NvcHldID0gMDsgLyogZW5kIG9mIHN0cmluZyAqLwo+IC0KPiAtCWlmIChzc2Nh bmYoYnVmLCAiJXUgJXUiLCAmZW5hYmxlLCAmZnJhbWVfY291bnQpICE9IDIpCj4gLQkJcmV0dXJu IC1FSU5WQUw7Cj4gLQo+IC0JcmMgPSBfZHB1X2NydGNfcG93ZXJfZW5hYmxlKGRwdV9jcnRjLCB0 cnVlKTsKPiAtCWlmIChyYykKPiAtCQlyZXR1cm4gcmM7Cj4gLQo+IC0JbXV0ZXhfbG9jaygmZHB1 X2NydGMtPmNydGNfbG9jayk7Cj4gLQlkcHVfY3J0Yy0+bWlzcl9lbmFibGUgPSBlbmFibGU7Cj4g LQlkcHVfY3J0Yy0+bWlzcl9mcmFtZV9jb3VudCA9IGZyYW1lX2NvdW50Owo+IC0JZm9yIChpID0g MDsgaSA8IGRwdV9jcnRjLT5udW1fbWl4ZXJzOyArK2kpIHsKPiAtCQlkcHVfY3J0Yy0+bWlzcl9k YXRhW2ldID0gMDsKPiAtCQltID0gJmRwdV9jcnRjLT5taXhlcnNbaV07Cj4gLQkJaWYgKCFtLT5o d19sbSB8fCAhbS0+aHdfbG0tPm9wcy5zZXR1cF9taXNyKQo+IC0JCQljb250aW51ZTsKPiAtCj4g LQkJbS0+aHdfbG0tPm9wcy5zZXR1cF9taXNyKG0tPmh3X2xtLCBlbmFibGUsIGZyYW1lX2NvdW50 KTsKPiAtCX0KPiAtCW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4gLQlfZHB1 X2NydGNfcG93ZXJfZW5hYmxlKGRwdV9jcnRjLCBmYWxzZSk7Cj4gLQo+IC0JcmV0dXJuIGNvdW50 Owo+IC19Cj4gLQo+IC1zdGF0aWMgc3NpemVfdCBfZHB1X2NydGNfbWlzcl9yZWFkKHN0cnVjdCBm aWxlICpmaWxlLAo+IC0JCWNoYXIgX191c2VyICp1c2VyX2J1ZmYsIHNpemVfdCBjb3VudCwgbG9m Zl90ICpwcG9zKQo+IC17Cj4gLQlzdHJ1Y3QgZHB1X2NydGMgKmRwdV9jcnRjOwo+IC0Jc3RydWN0 IGRwdV9jcnRjX21peGVyICptOwo+IC0JaW50IGkgPSAwLCByYzsKPiAtCXUzMiBtaXNyX3N0YXR1 czsKPiAtCXNzaXplX3QgbGVuID0gMDsKPiAtCWNoYXIgYnVmW01JU1JfQlVGRl9TSVpFICsgMV0g PSB7J1wwJ307Cj4gLQo+IC0JaWYgKCpwcG9zKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWlmICgh ZmlsZSB8fCAhZmlsZS0+cHJpdmF0ZV9kYXRhKQo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAt CWRwdV9jcnRjID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwo+IC0JcmMgPSBfZHB1X2NydGNfcG93ZXJf ZW5hYmxlKGRwdV9jcnRjLCB0cnVlKTsKPiAtCWlmIChyYykKPiAtCQlyZXR1cm4gcmM7Cj4gLQo+ IC0JbXV0ZXhfbG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4gLQlpZiAoIWRwdV9jcnRjLT5t aXNyX2VuYWJsZSkgewo+IC0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4sIE1JU1JfQlVGRl9T SVpFIC0gbGVuLAo+IC0JCQkiZGlzYWJsZWRcbiIpOwo+IC0JCWdvdG8gYnVmZl9jaGVjazsKPiAt CX0KPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2NydGMtPm51bV9taXhlcnM7ICsraSkgewo+ IC0JCW0gPSAmZHB1X2NydGMtPm1peGVyc1tpXTsKPiAtCQlpZiAoIW0tPmh3X2xtIHx8ICFtLT5o d19sbS0+b3BzLmNvbGxlY3RfbWlzcikKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCW1pc3Jfc3Rh dHVzID0gbS0+aHdfbG0tPm9wcy5jb2xsZWN0X21pc3IobS0+aHdfbG0pOwo+IC0JCWRwdV9jcnRj LT5taXNyX2RhdGFbaV0gPSBtaXNyX3N0YXR1cyA/IG1pc3Jfc3RhdHVzIDoKPiAtCQkJCQkJCWRw dV9jcnRjLT5taXNyX2RhdGFbaV07Cj4gLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgTUlT Ul9CVUZGX1NJWkUgLSBsZW4sICJsbSBpZHg6JWRcbiIsCj4gLQkJCQkJbS0+aHdfbG0tPmlkeCAt IExNXzApOwo+IC0JCWxlbiArPSBzbnByaW50ZihidWYgKyBsZW4sIE1JU1JfQlVGRl9TSVpFIC0g bGVuLCAiMHgleFxuIiwKPiAtCQkJCQkJCWRwdV9jcnRjLT5taXNyX2RhdGFbaV0pOwo+IC0JfQo+ IC0KPiAtYnVmZl9jaGVjazoKPiAtCWlmIChjb3VudCA8PSBsZW4pIHsKPiAtCQlsZW4gPSAwOwo+ IC0JCWdvdG8gZW5kOwo+IC0JfQo+IC0KPiAtCWlmIChjb3B5X3RvX3VzZXIodXNlcl9idWZmLCBi dWYsIGxlbikpIHsKPiAtCQlsZW4gPSAtRUZBVUxUOwo+IC0JCWdvdG8gZW5kOwo+IC0JfQo+IC0K PiAtCSpwcG9zICs9IGxlbjsgICAvKiBpbmNyZWFzZSBvZmZzZXQgKi8KPiAtCj4gLWVuZDoKPiAt CW11dGV4X3VubG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7Cj4gLQlfZHB1X2NydGNfcG93ZXJf ZW5hYmxlKGRwdV9jcnRjLCBmYWxzZSk7Cj4gLQlyZXR1cm4gbGVuOwo+IC19Cj4gLQo+ICAjZGVm aW5lIERFRklORV9EUFVfREVCVUdGU19TRVFfRk9QUyhfX3ByZWZpeCkgICAgICAgICAgICAgICAg ICAgICAgICAgIFwKPiAgc3RhdGljIGludCBfX3ByZWZpeCAjIyBfb3BlbihzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlsZSkJXAo+ICB7CQkJCQkJCQkJXAo+IEBAIC0yMDE1LDEx ICsxODgzLDYgQEAgc3RhdGljIGludCBfZHB1X2NydGNfaW5pdF9kZWJ1Z2ZzKHN0cnVjdCBkcm1f Y3J0YyAqY3J0YykKPiAgCQkubGxzZWVrID0Jc2VxX2xzZWVrLAo+ICAJCS5yZWxlYXNlID0Jc2lu Z2xlX3JlbGVhc2UsCj4gIAl9Owo+IC0Jc3RhdGljIGNvbnN0IHN0cnVjdCBmaWxlX29wZXJhdGlv bnMgZGVidWdmc19taXNyX2ZvcHMgPSB7Cj4gLQkJLm9wZW4gPQkJc2ltcGxlX29wZW4sCj4gLQkJ LnJlYWQgPQkJX2RwdV9jcnRjX21pc3JfcmVhZCwKPiAtCQkud3JpdGUgPQlfZHB1X2NydGNfbWlz cl9zZXR1cCwKPiAtCX07Cj4gIAo+ICAJaWYgKCFjcnRjKQo+ICAJCXJldHVybiAtRUlOVkFMOwo+ IEBAIC0yMDQyLDggKzE5MDUsNiBAQCBzdGF0aWMgaW50IF9kcHVfY3J0Y19pbml0X2RlYnVnZnMo c3RydWN0IGRybV9jcnRjICpjcnRjKQo+ICAJCQlkcHVfY3J0Yy0+ZGVidWdmc19yb290LAo+ICAJ CQkmZHB1X2NydGMtPmJhc2UsCj4gIAkJCSZkcHVfY3J0Y19kZWJ1Z2ZzX3N0YXRlX2ZvcHMpOwo+ IC0JZGVidWdmc19jcmVhdGVfZmlsZSgibWlzcl9kYXRhIiwgMDYwMCwgZHB1X2NydGMtPmRlYnVn ZnNfcm9vdCwKPiAtCQkJCQlkcHVfY3J0YywgJmRlYnVnZnNfbWlzcl9mb3BzKTsKPiAgCj4gIAly ZXR1cm4gMDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfY3J0Yy5oIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+ IGluZGV4IGE4OTY3OTEuLjUzNDg0YjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2NydGMuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9k cHUxL2RwdV9jcnRjLmgKPiBAQCAtMTU2LDkgKzE1Niw2IEBAIHN0cnVjdCBkcHVfY3J0Y19mcmFt ZV9ldmVudCB7Cj4gICAqIEBldmVudF90aHJlYWQgIDogUG9pbnRlciB0byBldmVudCBoYW5kbGVy IHRocmVhZAo+ICAgKiBAZXZlbnRfd29ya2VyICA6IEV2ZW50IHdvcmtlciBxdWV1ZQo+ICAgKiBA ZXZlbnRfbG9jayAgICA6IFNwaW5sb2NrIGFyb3VuZCBldmVudCBoYW5kbGluZyBjb2RlCj4gLSAq IEBtaXNyX2VuYWJsZSAgIDogYm9vbGVhbiBlbnRyeSBpbmRpY2F0ZXMgbWlzciBlbmFibGUvZGlz YWJsZSBzdGF0dXMuCj4gLSAqIEBtaXNyX2ZyYW1lX2NvdW50ICA6IG1pc3IgZnJhbWUgY291bnQg cHJvdmlkZWQgYnkgY2xpZW50Cj4gLSAqIEBtaXNyX2RhdGEgICAgIDogc3RvcmUgbWlzciBkYXRh IGJlZm9yZSB0dXJuaW5nIG9mZiB0aGUgY2xvY2tzLgo+ICAgKiBAcGhhbmRsZTogUG9pbnRlciB0 byBwb3dlciBoYW5kbGVyCj4gICAqIEBwb3dlcl9ldmVudCAgIDogcmVnaXN0ZXJlZCBwb3dlciBl dmVudCBoYW5kbGUKPiAgICogQGN1cl9wZXJmICAgICAgOiBjdXJyZW50IHBlcmZvcm1hbmNlIGNv bW1pdHRlZCB0byBjbG9jay9iYW5kd2lkdGggZHJpdmVyCj4gQEAgLTIwNiw5ICsyMDMsNiBAQCBz dHJ1Y3QgZHB1X2NydGMgewo+ICAKPiAgCS8qIGZvciBoYW5kbGluZyBpbnRlcm5hbCBldmVudCB0 aHJlYWQgKi8KPiAgCXNwaW5sb2NrX3QgZXZlbnRfbG9jazsKPiAtCWJvb2wgbWlzcl9lbmFibGU7 Cj4gLQl1MzIgbWlzcl9mcmFtZV9jb3VudDsKPiAtCXUzMiBtaXNyX2RhdGFbQ1JUQ19EVUFMX01J WEVSU107Cj4gIAo+ICAJc3RydWN0IGRwdV9wb3dlcl9oYW5kbGUgKnBoYW5kbGU7Cj4gIAlzdHJ1 Y3QgZHB1X3Bvd2VyX2V2ZW50ICpwb3dlcl9ldmVudDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPiBpbmRleCA1YjBlOTQ0Li45OTFiMjJjIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCj4gQEAgLTY1LDgg KzY1LDYgQEAKPiAgCj4gICNkZWZpbmUgTUFYX0NIQU5ORUxTX1BFUl9FTkMgMgo+ICAKPiAtI2Rl ZmluZSBNSVNSX0JVRkZfU0laRQkJCTI1Ngo+IC0KPiAgI2RlZmluZSBJRExFX1NIT1JUX1RJTUVP VVQJMQo+ICAKPiAgI2RlZmluZSBNQVhfVkRJU1BMQVlfU1BMSVQgMTA4MAo+IEBAIC0xNjEsOCAr MTU5LDYgQEAgZW51bSBkcHVfZW5jX3JjX3N0YXRlcyB7Cj4gICAqIEBmcmFtZV9kb25lX3RpbWVy OgkJd2F0Y2hkb2cgdGltZXIgZm9yIGZyYW1lIGRvbmUgZXZlbnQKPiAgICogQHZzeW5jX2V2ZW50 X3RpbWVyOgkJdnN5bmMgdGltZXIKPiAgICogQGRpc3BfaW5mbzoJCQlsb2NhbCBjb3B5IG9mIG1z bV9kaXNwbGF5X2luZm8gc3RydWN0Cj4gLSAqIEBtaXNyX2VuYWJsZToJCW1pc3IgZW5hYmxlL2Rp c2FibGUgc3RhdHVzCj4gLSAqIEBtaXNyX2ZyYW1lX2NvdW50OgkJbWlzciBmcmFtZSBjb3VudCBi ZWZvcmUgc3RhcnQgY2FwdHVyaW5nIHRoZSBkYXRhCj4gICAqIEBpZGxlX3BjX3N1cHBvcnRlZDoJ CWluZGljYXRlIGlmIGlkbGUgcG93ZXIgY29sbGFwcyBpcyBzdXBwb3J0ZWQKPiAgICogQHJjX2xv Y2s6CQkJcmVzb3VyY2UgY29udHJvbCBtdXRleCBsb2NrIHRvIHByb3RlY3QKPiAgICoJCQkJdmly dCBlbmNvZGVyIG92ZXIgdmFyaW91cyBzdGF0ZSBjaGFuZ2VzCj4gQEAgLTIwMiw4ICsxOTgsNiBA QCBzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCB7Cj4gIAlzdHJ1Y3QgdGltZXJfbGlzdCB2c3luY19l dmVudF90aW1lcjsKPiAgCj4gIAlzdHJ1Y3QgbXNtX2Rpc3BsYXlfaW5mbyBkaXNwX2luZm87Cj4g LQlib29sIG1pc3JfZW5hYmxlOwo+IC0JdTMyIG1pc3JfZnJhbWVfY291bnQ7Cj4gIAo+ICAJYm9v bCBpZGxlX3BjX3N1cHBvcnRlZDsKPiAgCXN0cnVjdCBtdXRleCByY19sb2NrOwo+IEBAIC0xMTkz LDExICsxMTg3LDYgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfdmlydF9lbmFibGUoc3RydWN0 IGRybV9lbmNvZGVyICpkcm1fZW5jKQo+ICAJCQlpZiAocGh5cy0+b3BzLmVuYWJsZSkKPiAgCQkJ CXBoeXMtPm9wcy5lbmFibGUocGh5cyk7Cj4gIAkJfQo+IC0KPiAtCQlpZiAoZHB1X2VuYy0+bWlz cl9lbmFibGUgJiYgKGRwdV9lbmMtPmRpc3BfaW5mby5jYXBhYmlsaXRpZXMgJgo+IC0JCSAgICAg TVNNX0RJU1BMQVlfQ0FQX1ZJRF9NT0RFKSAmJiBwaHlzLT5vcHMuc2V0dXBfbWlzcikKPiAtCQkJ cGh5cy0+b3BzLnNldHVwX21pc3IocGh5cywgdHJ1ZSwKPiAtCQkJCQkJZHB1X2VuYy0+bWlzcl9m cmFtZV9jb3VudCk7Cj4gIAl9Cj4gIAo+ICAJaWYgKGRwdV9lbmMtPmN1cl9tYXN0ZXItPm9wcy5l bmFibGUpCj4gQEAgLTE5NDksMTEzICsxOTM4LDYgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJf ZGVidWdmc19zdGF0dXNfb3BlbihzdHJ1Y3QgaW5vZGUgKmlub2RlLAo+ICAJcmV0dXJuIHNpbmds ZV9vcGVuKGZpbGUsIF9kcHVfZW5jb2Rlcl9zdGF0dXNfc2hvdywgaW5vZGUtPmlfcHJpdmF0ZSk7 Cj4gIH0KPiAgCj4gLXN0YXRpYyBzc2l6ZV90IF9kcHVfZW5jb2Rlcl9taXNyX3NldHVwKHN0cnVj dCBmaWxlICpmaWxlLAo+IC0JCWNvbnN0IGNoYXIgX191c2VyICp1c2VyX2J1Ziwgc2l6ZV90IGNv dW50LCBsb2ZmX3QgKnBwb3MpCj4gLXsKPiAtCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpkcHVf ZW5jOwo+IC0JaW50IGkgPSAwLCByYzsKPiAtCWNoYXIgYnVmW01JU1JfQlVGRl9TSVpFICsgMV07 Cj4gLQlzaXplX3QgYnVmZl9jb3B5Owo+IC0JdTMyIGZyYW1lX2NvdW50LCBlbmFibGU7Cj4gLQo+ IC0JaWYgKCFmaWxlIHx8ICFmaWxlLT5wcml2YXRlX2RhdGEpCj4gLQkJcmV0dXJuIC1FSU5WQUw7 Cj4gLQo+IC0JZHB1X2VuYyA9IGZpbGUtPnByaXZhdGVfZGF0YTsKPiAtCj4gLQlidWZmX2NvcHkg PSBtaW5fdChzaXplX3QsIGNvdW50LCBNSVNSX0JVRkZfU0laRSk7Cj4gLQlpZiAoY29weV9mcm9t X3VzZXIoYnVmLCB1c2VyX2J1ZiwgYnVmZl9jb3B5KSkKPiAtCQlyZXR1cm4gLUVJTlZBTDsKPiAt Cj4gLQlidWZbYnVmZl9jb3B5XSA9IDA7IC8qIGVuZCBvZiBzdHJpbmcgKi8KPiAtCj4gLQlpZiAo c3NjYW5mKGJ1ZiwgIiV1ICV1IiwgJmVuYWJsZSwgJmZyYW1lX2NvdW50KSAhPSAyKQo+IC0JCXJl dHVybiAtRUlOVkFMOwo+IC0KPiAtCXJjID0gX2RwdV9lbmNvZGVyX3Bvd2VyX2VuYWJsZShkcHVf ZW5jLCB0cnVlKTsKPiAtCWlmIChyYykKPiAtCQlyZXR1cm4gcmM7Cj4gLQo+IC0JbXV0ZXhfbG9j aygmZHB1X2VuYy0+ZW5jX2xvY2spOwo+IC0JZHB1X2VuYy0+bWlzcl9lbmFibGUgPSBlbmFibGU7 Cj4gLQlkcHVfZW5jLT5taXNyX2ZyYW1lX2NvdW50ID0gZnJhbWVfY291bnQ7Cj4gLQlmb3IgKGkg PSAwOyBpIDwgZHB1X2VuYy0+bnVtX3BoeXNfZW5jczsgaSsrKSB7Cj4gLQkJc3RydWN0IGRwdV9l bmNvZGVyX3BoeXMgKnBoeXMgPSBkcHVfZW5jLT5waHlzX2VuY3NbaV07Cj4gLQo+IC0JCWlmICgh cGh5cyB8fCAhcGh5cy0+b3BzLnNldHVwX21pc3IpCj4gLQkJCWNvbnRpbnVlOwo+IC0KPiAtCQlw aHlzLT5vcHMuc2V0dXBfbWlzcihwaHlzLCBlbmFibGUsIGZyYW1lX2NvdW50KTsKPiAtCX0KPiAt CW11dGV4X3VubG9jaygmZHB1X2VuYy0+ZW5jX2xvY2spOwo+IC0JX2RwdV9lbmNvZGVyX3Bvd2Vy X2VuYWJsZShkcHVfZW5jLCBmYWxzZSk7Cj4gLQo+IC0JcmV0dXJuIGNvdW50Owo+IC19Cj4gLQo+ IC1zdGF0aWMgc3NpemVfdCBfZHB1X2VuY29kZXJfbWlzcl9yZWFkKHN0cnVjdCBmaWxlICpmaWxl LAo+IC0JCWNoYXIgX191c2VyICp1c2VyX2J1ZmYsIHNpemVfdCBjb3VudCwgbG9mZl90ICpwcG9z KQo+IC17Cj4gLQlzdHJ1Y3QgZHB1X2VuY29kZXJfdmlydCAqZHB1X2VuYzsKPiAtCWludCBpID0g MCwgbGVuID0gMDsKPiAtCWNoYXIgYnVmW01JU1JfQlVGRl9TSVpFICsgMV0gPSB7J1wwJ307Cj4g LQlpbnQgcmM7Cj4gLQo+IC0JaWYgKCpwcG9zKQo+IC0JCXJldHVybiAwOwo+IC0KPiAtCWlmICgh ZmlsZSB8fCAhZmlsZS0+cHJpdmF0ZV9kYXRhKQo+IC0JCXJldHVybiAtRUlOVkFMOwo+IC0KPiAt CWRwdV9lbmMgPSBmaWxlLT5wcml2YXRlX2RhdGE7Cj4gLQo+IC0JcmMgPSBfZHB1X2VuY29kZXJf cG93ZXJfZW5hYmxlKGRwdV9lbmMsIHRydWUpOwo+IC0JaWYgKHJjKQo+IC0JCXJldHVybiByYzsK PiAtCj4gLQltdXRleF9sb2NrKCZkcHVfZW5jLT5lbmNfbG9jayk7Cj4gLQlpZiAoIWRwdV9lbmMt Pm1pc3JfZW5hYmxlKSB7Cj4gLQkJbGVuICs9IHNucHJpbnRmKGJ1ZiArIGxlbiwgTUlTUl9CVUZG X1NJWkUgLSBsZW4sCj4gLQkJCSJkaXNhYmxlZFxuIik7Cj4gLQkJZ290byBidWZmX2NoZWNrOwo+ IC0JfSBlbHNlIGlmIChkcHVfZW5jLT5kaXNwX2luZm8uY2FwYWJpbGl0aWVzICYKPiAtCQkJCQkJ fk1TTV9ESVNQTEFZX0NBUF9WSURfTU9ERSkgewo+IC0JCWxlbiArPSBzbnByaW50ZihidWYgKyBs ZW4sIE1JU1JfQlVGRl9TSVpFIC0gbGVuLAo+IC0JCQkidW5zdXBwb3J0ZWRcbiIpOwo+IC0JCWdv dG8gYnVmZl9jaGVjazsKPiAtCX0KPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgZHB1X2VuYy0+bnVt X3BoeXNfZW5jczsgaSsrKSB7Cj4gLQkJc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXMgPSBk cHVfZW5jLT5waHlzX2VuY3NbaV07Cj4gLQo+IC0JCWlmICghcGh5cyB8fCAhcGh5cy0+b3BzLmNv bGxlY3RfbWlzcikKPiAtCQkJY29udGludWU7Cj4gLQo+IC0JCWxlbiArPSBzbnByaW50ZihidWYg KyBsZW4sIE1JU1JfQlVGRl9TSVpFIC0gbGVuLAo+IC0JCQkiSW50ZiBpZHg6JWRcbiIsIHBoeXMt PmludGZfaWR4IC0gSU5URl8wKTsKPiAtCQlsZW4gKz0gc25wcmludGYoYnVmICsgbGVuLCBNSVNS X0JVRkZfU0laRSAtIGxlbiwgIjB4JXhcbiIsCj4gLQkJCQkJcGh5cy0+b3BzLmNvbGxlY3RfbWlz cihwaHlzKSk7Cj4gLQl9Cj4gLQo+IC1idWZmX2NoZWNrOgo+IC0JaWYgKGNvdW50IDw9IGxlbikg ewo+IC0JCWxlbiA9IDA7Cj4gLQkJZ290byBlbmQ7Cj4gLQl9Cj4gLQo+IC0JaWYgKGNvcHlfdG9f dXNlcih1c2VyX2J1ZmYsIGJ1ZiwgbGVuKSkgewo+IC0JCWxlbiA9IC1FRkFVTFQ7Cj4gLQkJZ290 byBlbmQ7Cj4gLQl9Cj4gLQo+IC0JKnBwb3MgKz0gbGVuOyAgIC8qIGluY3JlYXNlIG9mZnNldCAq Lwo+IC0KPiAtZW5kOgo+IC0JbXV0ZXhfdW5sb2NrKCZkcHVfZW5jLT5lbmNfbG9jayk7Cj4gLQlf ZHB1X2VuY29kZXJfcG93ZXJfZW5hYmxlKGRwdV9lbmMsIGZhbHNlKTsKPiAtCXJldHVybiBsZW47 Cj4gLX0KPiAtCj4gIHN0YXRpYyBpbnQgX2RwdV9lbmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmRybV9lbmMpCj4gIHsKPiAgCXN0cnVjdCBkcHVfZW5jb2Rlcl92aXJ0ICpk cHVfZW5jOwo+IEBAIC0yMDcwLDEyICsxOTUyLDYgQEAgc3RhdGljIGludCBfZHB1X2VuY29kZXJf aW5pdF9kZWJ1Z2ZzKHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2VuYykKPiAgCQkucmVsZWFzZSA9 CXNpbmdsZV9yZWxlYXNlLAo+ICAJfTsKPiAgCj4gLQlzdGF0aWMgY29uc3Qgc3RydWN0IGZpbGVf b3BlcmF0aW9ucyBkZWJ1Z2ZzX21pc3JfZm9wcyA9IHsKPiAtCQkub3BlbiA9IHNpbXBsZV9vcGVu LAo+IC0JCS5yZWFkID0gX2RwdV9lbmNvZGVyX21pc3JfcmVhZCwKPiAtCQkud3JpdGUgPSBfZHB1 X2VuY29kZXJfbWlzcl9zZXR1cCwKPiAtCX07Cj4gLQo+ICAJY2hhciBuYW1lW0RQVV9OQU1FX1NJ WkVdOwo+ICAKPiAgCWlmICghZHJtX2VuYyB8fCAhZHJtX2VuYy0+ZGV2IHx8ICFkcm1fZW5jLT5k ZXYtPmRldl9wcml2YXRlKSB7Cj4gQEAgLTIwOTksOSArMTk3NSw2IEBAIHN0YXRpYyBpbnQgX2Rw dV9lbmNvZGVyX2luaXRfZGVidWdmcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMpCj4gIAlk ZWJ1Z2ZzX2NyZWF0ZV9maWxlKCJzdGF0dXMiLCAwNjAwLAo+ICAJCWRwdV9lbmMtPmRlYnVnZnNf cm9vdCwgZHB1X2VuYywgJmRlYnVnZnNfc3RhdHVzX2ZvcHMpOwo+ICAKPiAtCWRlYnVnZnNfY3Jl YXRlX2ZpbGUoIm1pc3JfZGF0YSIsIDA2MDAsCj4gLQkJZHB1X2VuYy0+ZGVidWdmc19yb290LCBk cHVfZW5jLCAmZGVidWdmc19taXNyX2ZvcHMpOwo+IC0KPiAgCWZvciAoaSA9IDA7IGkgPCBkcHVf ZW5jLT5udW1fcGh5c19lbmNzOyBpKyspCj4gIAkJaWYgKGRwdV9lbmMtPnBoeXNfZW5jc1tpXSAm Jgo+ICAJCQkJZHB1X2VuYy0+cGh5c19lbmNzW2ldLT5vcHMubGF0ZV9yZWdpc3RlcikKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5o IGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5cy5oCj4gaW5k ZXggYzdkZjhhYS4uYjM5MTdlMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rp c3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzLmgKPiBAQCAtMTE0LDggKzExNCw2IEBAIHN0cnVjdCBk cHVfZW5jb2Rlcl92aXJ0X29wcyB7Cj4gICAqIEBoYW5kbGVfcG9zdF9raWNrb2ZmOglEbyBhbnkg d29yayBuZWNlc3NhcnkgcG9zdC1raWNrb2ZmIHdvcmsKPiAgICogQHRyaWdnZXJfc3RhcnQ6CQlQ cm9jZXNzIHN0YXJ0IGV2ZW50IG9uIHBoeXNpY2FsIGVuY29kZXIKPiAgICogQG5lZWRzX3Npbmds ZV9mbHVzaDoJCVdoZXRoZXIgZW5jb2RlciBzbGF2ZXMgbmVlZCB0byBiZSBmbHVzaGVkCj4gLSAq IEBzZXR1cF9taXNyOgkJU2V0cyB1cCBNSVNSLCBlbmFibGUgYW5kIGRpc2FibGVzIGJhc2VkIG9u IHN5c2ZzCj4gLSAqIEBjb2xsZWN0X21pc3I6CQlDb2xsZWN0cyBNSVNSIGRhdGEgb24gZnJhbWUg dXBkYXRlCj4gICAqIEBod19yZXNldDoJCQlJc3N1ZSBIVyByZWNvdmVyeSBzdWNoIGFzIENUTCBy ZXNldCBhbmQgY2xlYXIKPiAgICoJCQkJRFBVX0VOQ19FUlJfTkVFRFNfSFdfUkVTRVQgc3RhdGUK PiAgICogQGlycV9jb250cm9sOgkJSGFuZGxlciB0byBlbmFibGUvZGlzYWJsZSBhbGwgdGhlIGVu Y29kZXIgSVJRcwo+IEBAIC0xNTQsMTAgKzE1Miw2IEBAIHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlz X29wcyB7Cj4gIAl2b2lkICgqaGFuZGxlX3Bvc3Rfa2lja29mZikoc3RydWN0IGRwdV9lbmNvZGVy X3BoeXMgKnBoeXNfZW5jKTsKPiAgCXZvaWQgKCp0cmlnZ2VyX3N0YXJ0KShzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5c19lbmMpOwo+ICAJYm9vbCAoKm5lZWRzX3NpbmdsZV9mbHVzaCkoc3Ry dWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKPiAtCj4gLQl2b2lkICgqc2V0dXBfbWlz cikoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jcywKPiAtCQkJCWJvb2wgZW5hYmxl LCB1MzIgZnJhbWVfY291bnQpOwo+IC0JdTMyICgqY29sbGVjdF9taXNyKShzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5c19lbmMpOwo+ICAJdm9pZCAoKmh3X3Jlc2V0KShzdHJ1Y3QgZHB1X2Vu Y29kZXJfcGh5cyAqcGh5c19lbmMpOwo+ICAJdm9pZCAoKmlycV9jb250cm9sKShzdHJ1Y3QgZHB1 X2VuY29kZXJfcGh5cyAqcGh5cywgYm9vbCBlbmFibGUpOwo+ICAJdm9pZCAoKnByZXBhcmVfaWRs ZV9wYykoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXMgKnBoeXNfZW5jKTsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXJfcGh5c192aWQuYyBiL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKPiBpbmRl eCAxNGZjN2MyLi42ZmMzZDNmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlz cC9kcHUxL2RwdV9lbmNvZGVyX3BoeXNfdmlkLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNt L2Rpc3AvZHB1MS9kcHVfZW5jb2Rlcl9waHlzX3ZpZC5jCj4gQEAgLTc1NiwzMiArNzU2LDYgQEAg c3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfaXJxX2NvbnRyb2woc3RydWN0IGRwdV9l bmNvZGVyX3BoeXMgKnBoeXNfZW5jLAo+ICAJfQo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBkcHVf ZW5jb2Rlcl9waHlzX3ZpZF9zZXR1cF9taXNyKHN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlz X2VuYywKPiAtCQkJCQkJYm9vbCBlbmFibGUsIHUzMiBmcmFtZV9jb3VudCkKPiAtewo+IC0Jc3Ry dWN0IGRwdV9lbmNvZGVyX3BoeXNfdmlkICp2aWRfZW5jOwo+IC0KPiAtCWlmICghcGh5c19lbmMp Cj4gLQkJcmV0dXJuOwo+IC0JdmlkX2VuYyA9IHRvX2RwdV9lbmNvZGVyX3BoeXNfdmlkKHBoeXNf ZW5jKTsKPiAtCj4gLQlpZiAodmlkX2VuYy0+aHdfaW50ZiAmJiB2aWRfZW5jLT5od19pbnRmLT5v cHMuc2V0dXBfbWlzcikKPiAtCQl2aWRfZW5jLT5od19pbnRmLT5vcHMuc2V0dXBfbWlzcih2aWRf ZW5jLT5od19pbnRmLAo+IC0JCQkJCQkJZW5hYmxlLCBmcmFtZV9jb3VudCk7Cj4gLX0KPiAtCj4g LXN0YXRpYyB1MzIgZHB1X2VuY29kZXJfcGh5c192aWRfY29sbGVjdF9taXNyKHN0cnVjdCBkcHVf ZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKPiAtewo+IC0Jc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNf dmlkICp2aWRfZW5jOwo+IC0KPiAtCWlmICghcGh5c19lbmMpCj4gLQkJcmV0dXJuIDA7Cj4gLQl2 aWRfZW5jID0gdG9fZHB1X2VuY29kZXJfcGh5c192aWQocGh5c19lbmMpOwo+IC0KPiAtCXJldHVy biB2aWRfZW5jLT5od19pbnRmICYmIHZpZF9lbmMtPmh3X2ludGYtPm9wcy5jb2xsZWN0X21pc3Ig Pwo+IC0JCXZpZF9lbmMtPmh3X2ludGYtPm9wcy5jb2xsZWN0X21pc3IodmlkX2VuYy0+aHdfaW50 ZikgOiAwOwo+IC19Cj4gLQo+ICBzdGF0aWMgaW50IGRwdV9lbmNvZGVyX3BoeXNfdmlkX2dldF9s aW5lX2NvdW50KAo+ICAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzX2VuYykKPiAgewo+ IEBAIC04MTcsOCArNzkxLDYgQEAgc3RhdGljIHZvaWQgZHB1X2VuY29kZXJfcGh5c192aWRfaW5p dF9vcHMoc3RydWN0IGRwdV9lbmNvZGVyX3BoeXNfb3BzICpvcHMpCj4gIAlvcHMtPnByZXBhcmVf Zm9yX2tpY2tvZmYgPSBkcHVfZW5jb2Rlcl9waHlzX3ZpZF9wcmVwYXJlX2Zvcl9raWNrb2ZmOwo+ ICAJb3BzLT5oYW5kbGVfcG9zdF9raWNrb2ZmID0gZHB1X2VuY29kZXJfcGh5c192aWRfaGFuZGxl X3Bvc3Rfa2lja29mZjsKPiAgCW9wcy0+bmVlZHNfc2luZ2xlX2ZsdXNoID0gZHB1X2VuY29kZXJf cGh5c192aWRfbmVlZHNfc2luZ2xlX2ZsdXNoOwo+IC0Jb3BzLT5zZXR1cF9taXNyID0gZHB1X2Vu Y29kZXJfcGh5c192aWRfc2V0dXBfbWlzcjsKPiAtCW9wcy0+Y29sbGVjdF9taXNyID0gZHB1X2Vu Y29kZXJfcGh5c192aWRfY29sbGVjdF9taXNyOwo+ICAJb3BzLT5od19yZXNldCA9IGRwdV9lbmNv ZGVyX2hlbHBlcl9od19yZXNldDsKPiAgCW9wcy0+Z2V0X2xpbmVfY291bnQgPSBkcHVfZW5jb2Rl cl9waHlzX3ZpZF9nZXRfbGluZV9jb3VudDsKPiAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9k aXNwL2RwdTEvZHB1X2h3X2ludGYuYwo+IGluZGV4IGQyODBkZjUuLjljNmJiYTAgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGYuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19pbnRmLmMKPiBAQCAtNjUsOSAr NjUsNiBAQAo+ICAjZGVmaW5lICAgSU5URl9GUkFNRV9DT1VOVCAgICAgICAgICAgICAgMHgwQUMK PiAgI2RlZmluZSAgIElOVEZfTElORV9DT1VOVCAgICAgICAgICAgICAgIDB4MEIwCj4gIAo+IC0j ZGVmaW5lIElOVEZfTUlTUl9DVFJMCQkJMHgxODAKPiAtI2RlZmluZSBJTlRGX01JU1JfU0lHTkFU VVJFCQkweDE4NAo+IC0KPiAgc3RhdGljIHN0cnVjdCBkcHVfaW50Zl9jZmcgKl9pbnRmX29mZnNl dChlbnVtIGRwdV9pbnRmIGludGYsCj4gIAkJc3RydWN0IGRwdV9tZHNzX2NmZyAqbSwKPiAgCQl2 b2lkIF9faW9tZW0gKmFkZHIsCj4gQEAgLTI0NiwzMCArMjQzLDYgQEAgc3RhdGljIHZvaWQgZHB1 X2h3X2ludGZfZ2V0X3N0YXR1cygKPiAgCX0KPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgZHB1X2h3 X2ludGZfc2V0dXBfbWlzcihzdHJ1Y3QgZHB1X2h3X2ludGYgKmludGYsCj4gLQkJCQkJCWJvb2wg ZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpCj4gLXsKPiAtCXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19t YXAgKmMgPSAmaW50Zi0+aHc7Cj4gLQl1MzIgY29uZmlnID0gMDsKPiAtCj4gLQlEUFVfUkVHX1dS SVRFKGMsIElOVEZfTUlTUl9DVFJMLCBNSVNSX0NUUkxfU1RBVFVTX0NMRUFSKTsKPiAtCS8qIGNs ZWFyIG1pc3IgZGF0YSAqLwo+IC0Jd21iKCk7Cj4gLQo+IC0JaWYgKGVuYWJsZSkKPiAtCQljb25m aWcgPSAoZnJhbWVfY291bnQgJiBNSVNSX0ZSQU1FX0NPVU5UX01BU0spIHwKPiAtCQkJTUlTUl9D VFJMX0VOQUJMRSB8IElOVEZfTUlTUl9DVFJMX0ZSRUVfUlVOX01BU0s7Cj4gLQo+IC0JRFBVX1JF R19XUklURShjLCBJTlRGX01JU1JfQ1RSTCwgY29uZmlnKTsKPiAtfQo+IC0KPiAtc3RhdGljIHUz MiBkcHVfaHdfaW50Zl9jb2xsZWN0X21pc3Ioc3RydWN0IGRwdV9od19pbnRmICppbnRmKQo+IC17 Cj4gLQlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjID0gJmludGYtPmh3Owo+IC0KPiAtCXJl dHVybiBEUFVfUkVHX1JFQUQoYywgSU5URl9NSVNSX1NJR05BVFVSRSk7Cj4gLX0KPiAtCj4gIHN0 YXRpYyB1MzIgZHB1X2h3X2ludGZfZ2V0X2xpbmVfY291bnQoc3RydWN0IGRwdV9od19pbnRmICpp bnRmKQo+ICB7Cj4gIAlzdHJ1Y3QgZHB1X2h3X2Jsa19yZWdfbWFwICpjOwo+IEBAIC0yODksOCAr MjYyLDYgQEAgc3RhdGljIHZvaWQgX3NldHVwX2ludGZfb3BzKHN0cnVjdCBkcHVfaHdfaW50Zl9v cHMgKm9wcywKPiAgCW9wcy0+c2V0dXBfcHJnX2ZldGNoICA9IGRwdV9od19pbnRmX3NldHVwX3By Z19mZXRjaDsKPiAgCW9wcy0+Z2V0X3N0YXR1cyA9IGRwdV9od19pbnRmX2dldF9zdGF0dXM7Cj4g IAlvcHMtPmVuYWJsZV90aW1pbmcgPSBkcHVfaHdfaW50Zl9lbmFibGVfdGltaW5nX2VuZ2luZTsK PiAtCW9wcy0+c2V0dXBfbWlzciA9IGRwdV9od19pbnRmX3NldHVwX21pc3I7Cj4gLQlvcHMtPmNv bGxlY3RfbWlzciA9IGRwdV9od19pbnRmX2NvbGxlY3RfbWlzcjsKPiAgCW9wcy0+Z2V0X2xpbmVf Y291bnQgPSBkcHVfaHdfaW50Zl9nZXRfbGluZV9jb3VudDsKPiAgfQo+ICAKPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2ludGYuaCBiL2RyaXZlcnMv Z3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19pbnRmLmgKPiBpbmRleCBhNzlkNzM1Li4zYjc3 ZGY0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19p bnRmLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfaW50Zi5o Cj4gQEAgLTU5LDggKzU5LDYgQEAgc3RydWN0IGludGZfc3RhdHVzIHsKPiAgICogQCBzZXR1cF9w cm9nX2ZldGNoIDogZW5hYmxlcy9kaXNhYmxlcyB0aGUgcHJvZ3JhbW1hYmxlIGZldGNoIGxvZ2lj Cj4gICAqIEAgZW5hYmxlX3RpbWluZzogZW5hYmxlL2Rpc2FibGUgdGltaW5nIGVuZ2luZQo+ICAg KiBAIGdldF9zdGF0dXM6IHJldHVybnMgaWYgdGltaW5nIGVuZ2luZSBpcyBlbmFibGVkIG9yIG5v dAo+IC0gKiBAIHNldHVwX21pc3I6IGVuYWJsZXMvZGlzYWJsZXMgTUlTUiBpbiBIVyByZWdpc3Rl cgo+IC0gKiBAIGNvbGxlY3RfbWlzcjogcmVhZHMgYW5kIHN0b3JlcyBNSVNSIGRhdGEgZnJvbSBI VyByZWdpc3Rlcgo+ICAgKiBAIGdldF9saW5lX2NvdW50OiByZWFkcyBjdXJyZW50IHZlcnRpY2Fs IGxpbmUgY291bnRlcgo+ICAgKi8KPiAgc3RydWN0IGRwdV9od19pbnRmX29wcyB7Cj4gQEAgLTc3 LDExICs3NSw2IEBAIHN0cnVjdCBkcHVfaHdfaW50Zl9vcHMgewo+ICAJdm9pZCAoKmdldF9zdGF0 dXMpKHN0cnVjdCBkcHVfaHdfaW50ZiAqaW50ZiwKPiAgCQkJc3RydWN0IGludGZfc3RhdHVzICpz dGF0dXMpOwo+ICAKPiAtCXZvaWQgKCpzZXR1cF9taXNyKShzdHJ1Y3QgZHB1X2h3X2ludGYgKmlu dGYsCj4gLQkJCWJvb2wgZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpOwo+IC0KPiAtCXUzMiAoKmNv bGxlY3RfbWlzcikoc3RydWN0IGRwdV9od19pbnRmICppbnRmKTsKPiAtCj4gIAl1MzIgKCpnZXRf bGluZV9jb3VudCkoc3RydWN0IGRwdV9od19pbnRmICppbnRmKTsKPiAgfTsKPiAgCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19sbS5jIGIvZHJpdmVy cy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmMKPiBpbmRleCA0YWI3MmIwLi5hY2I4 ZGM4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od19s bS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmMKPiBA QCAtMzQsOSArMzQsNiBAQAo+ICAjZGVmaW5lIExNX0JMRU5EMF9GR19BTFBIQSAgICAgICAgICAg ICAgIDB4MDQKPiAgI2RlZmluZSBMTV9CTEVORDBfQkdfQUxQSEEgICAgICAgICAgICAgICAweDA4 Cj4gIAo+IC0jZGVmaW5lIExNX01JU1JfQ1RSTAkJCTB4MzEwCj4gLSNkZWZpbmUgTE1fTUlTUl9T SUdOQVRVUkUJCTB4MzE0Cj4gLQo+ICBzdGF0aWMgc3RydWN0IGRwdV9sbV9jZmcgKl9sbV9vZmZz ZXQoZW51bSBkcHVfbG0gbWl4ZXIsCj4gIAkJc3RydWN0IGRwdV9tZHNzX2NmZyAqbSwKPiAgCQl2 b2lkIF9faW9tZW0gKmFkZHIsCj4gQEAgLTE3MSwzMCArMTY4LDYgQEAgc3RhdGljIHZvaWQgZHB1 X2h3X2xtX2djKHN0cnVjdCBkcHVfaHdfbWl4ZXIgKm1peGVyLAo+ICB7Cj4gIH0KPiAgCj4gLXN0 YXRpYyB2b2lkIGRwdV9od19sbV9zZXR1cF9taXNyKHN0cnVjdCBkcHVfaHdfbWl4ZXIgKmN0eCwK PiAtCQkJCWJvb2wgZW5hYmxlLCB1MzIgZnJhbWVfY291bnQpCj4gLXsKPiAtCXN0cnVjdCBkcHVf aHdfYmxrX3JlZ19tYXAgKmMgPSAmY3R4LT5odzsKPiAtCXUzMiBjb25maWcgPSAwOwo+IC0KPiAt CURQVV9SRUdfV1JJVEUoYywgTE1fTUlTUl9DVFJMLCBNSVNSX0NUUkxfU1RBVFVTX0NMRUFSKTsK PiAtCS8qIGNsZWFyIG1pc3IgZGF0YSAqLwo+IC0Jd21iKCk7Cj4gLQo+IC0JaWYgKGVuYWJsZSkK PiAtCQljb25maWcgPSAoZnJhbWVfY291bnQgJiBNSVNSX0ZSQU1FX0NPVU5UX01BU0spIHwKPiAt CQkJTUlTUl9DVFJMX0VOQUJMRSB8IElOVEZfTUlTUl9DVFJMX0ZSRUVfUlVOX01BU0s7Cj4gLQo+ IC0JRFBVX1JFR19XUklURShjLCBMTV9NSVNSX0NUUkwsIGNvbmZpZyk7Cj4gLX0KPiAtCj4gLXN0 YXRpYyB1MzIgZHB1X2h3X2xtX2NvbGxlY3RfbWlzcihzdHJ1Y3QgZHB1X2h3X21peGVyICpjdHgp Cj4gLXsKPiAtCXN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmMgPSAmY3R4LT5odzsKPiAtCj4g LQlyZXR1cm4gRFBVX1JFR19SRUFEKGMsIExNX01JU1JfU0lHTkFUVVJFKTsKPiAtfQo+IC0KPiAg c3RhdGljIHZvaWQgX3NldHVwX21peGVyX29wcyhzdHJ1Y3QgZHB1X21kc3NfY2ZnICptLAo+ICAJ CXN0cnVjdCBkcHVfaHdfbG1fb3BzICpvcHMsCj4gIAkJdW5zaWduZWQgbG9uZyBmZWF0dXJlcykK PiBAQCAtMjA3LDggKzE4MCw2IEBAIHN0YXRpYyB2b2lkIF9zZXR1cF9taXhlcl9vcHMoc3RydWN0 IGRwdV9tZHNzX2NmZyAqbSwKPiAgCW9wcy0+c2V0dXBfYWxwaGFfb3V0ID0gZHB1X2h3X2xtX3Nl dHVwX2NvbG9yMzsKPiAgCW9wcy0+c2V0dXBfYm9yZGVyX2NvbG9yID0gZHB1X2h3X2xtX3NldHVw X2JvcmRlcl9jb2xvcjsKPiAgCW9wcy0+c2V0dXBfZ2MgPSBkcHVfaHdfbG1fZ2M7Cj4gLQlvcHMt PnNldHVwX21pc3IgPSBkcHVfaHdfbG1fc2V0dXBfbWlzcjsKPiAtCW9wcy0+Y29sbGVjdF9taXNy ID0gZHB1X2h3X2xtX2NvbGxlY3RfbWlzcjsKPiAgfTsKPiAgCj4gIHN0YXRpYyBzdHJ1Y3QgZHB1 X2h3X2Jsa19vcHMgZHB1X2h3X29wcyA9IHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmggYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1 MS9kcHVfaHdfbG0uaAo+IGluZGV4IGUyOWU1ZGEuLjViMDM2YWMgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X2xtLmgKPiArKysgYi9kcml2ZXJzL2dw dS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfbG0uaAo+IEBAIC02NiwxMyArNjYsNiBAQCBzdHJ1 Y3QgZHB1X2h3X2xtX29wcyB7Cj4gIAkgKi8KPiAgCXZvaWQgKCpzZXR1cF9nYykoc3RydWN0IGRw dV9od19taXhlciAqbWl4ZXIsCj4gIAkJCXZvaWQgKmNmZyk7Cj4gLQo+IC0JLyogc2V0dXBfbWlz cjogZW5hYmxlcy9kaXNhYmxlcyBNSVNSIGluIEhXIHJlZ2lzdGVyICovCj4gLQl2b2lkICgqc2V0 dXBfbWlzcikoc3RydWN0IGRwdV9od19taXhlciAqY3R4LAo+IC0JCQlib29sIGVuYWJsZSwgdTMy IGZyYW1lX2NvdW50KTsKPiAtCj4gLQkvKiBjb2xsZWN0X21pc3I6IHJlYWRzIGFuZCBzdG9yZXMg TUlTUiBkYXRhIGZyb20gSFcgcmVnaXN0ZXIgKi8KPiAtCXUzMiAoKmNvbGxlY3RfbWlzcikoc3Ry dWN0IGRwdV9od19taXhlciAqY3R4KTsKPiAgfTsKPiAgCj4gIHN0cnVjdCBkcHVfaHdfbWl4ZXIg ewo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfdXRp bC5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuYwo+IGluZGV4 IDRjYWJhZTQuLmNiNWMwMTcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2h3X3V0aWwuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUx L2RwdV9od191dGlsLmMKPiBAQCAtNTAsOSArNTAsNiBAQAo+ICAjZGVmaW5lIFFTRUVEM19DTEtf Q1RSTDAgICAgICAgICAgICAgICAgICAgMHg1NAo+ICAjZGVmaW5lIFFTRUVEM19DTEtfQ1RSTDEg ICAgICAgICAgICAgICAgICAgMHg1OAo+ICAjZGVmaW5lIFFTRUVEM19DTEtfU1RBVFVTICAgICAg ICAgICAgICAgICAgMHg1Qwo+IC0jZGVmaW5lIFFTRUVEM19NSVNSX0NUUkwgICAgICAgICAgICAg ICAgICAgMHg3MAo+IC0jZGVmaW5lIFFTRUVEM19NSVNSX1NJR05BVFVSRV8wICAgICAgICAgICAg MHg3NAo+IC0jZGVmaW5lIFFTRUVEM19NSVNSX1NJR05BVFVSRV8xICAgICAgICAgICAgMHg3OAo+ ICAjZGVmaW5lIFFTRUVEM19QSEFTRV9JTklUX1lfSCAgICAgICAgICAgICAgMHg5MAo+ICAjZGVm aW5lIFFTRUVEM19QSEFTRV9JTklUX1lfViAgICAgICAgICAgICAgMHg5NAo+ICAjZGVmaW5lIFFT RUVEM19QSEFTRV9JTklUX1VWX0ggICAgICAgICAgICAgMHg5OAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfaHdfdXRpbC5oIGIvZHJpdmVycy9ncHUvZHJt L21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuaAo+IGluZGV4IDEyNDBmNTAuLmNiMDIwNDEgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2h3X3V0aWwuaAo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9od191dGlsLmgKPiBAQCAt MzI1LDEyICszMjUsNiBAQCB2b2lkIGRwdV9yZWdfd3JpdGUoc3RydWN0IGRwdV9od19ibGtfcmVn X21hcCAqYywKPiAgI2RlZmluZSBEUFVfUkVHX1dSSVRFKGMsIG9mZiwgdmFsKSBkcHVfcmVnX3dy aXRlKGMsIG9mZiwgdmFsLCAjb2ZmKQo+ICAjZGVmaW5lIERQVV9SRUdfUkVBRChjLCBvZmYpIGRw dV9yZWdfcmVhZChjLCBvZmYpCj4gIAo+IC0jZGVmaW5lIE1JU1JfRlJBTUVfQ09VTlRfTUFTSwkJ MHhGRgo+IC0jZGVmaW5lIE1JU1JfQ1RSTF9FTkFCTEUJCUJJVCg4KQo+IC0jZGVmaW5lIE1JU1Jf Q1RSTF9TVEFUVVMJCUJJVCg5KQo+IC0jZGVmaW5lIE1JU1JfQ1RSTF9TVEFUVVNfQ0xFQVIJCUJJ VCgxMCkKPiAtI2RlZmluZSBJTlRGX01JU1JfQ1RSTF9GUkVFX1JVTl9NQVNLCUJJVCgzMSkKPiAt Cj4gIHZvaWQgKmRwdV9od191dGlsX2dldF9kaXIodm9pZCk7Cj4gIAo+ICB2b2lkIGRwdV9od19z ZXR1cF9zY2FsZXIzKHN0cnVjdCBkcHVfaHdfYmxrX3JlZ19tYXAgKmMsCj4gLS0gCj4gVGhlIFF1 YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlIEF1 cm9yYSBGb3J1bSwKPiBhIExpbnV4IEZvdW5kYXRpb24gQ29sbGFib3JhdGl2ZSBQcm9qZWN0Cj4g CgotLSAKU2VhbiBQYXVsLCBTb2Z0d2FyZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5v IG1haWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5vCg==