From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 2/2] drm/hdmi: Allow HDMI infoframe without VIC or S3D Date: Tue, 4 Jul 2017 15:44:02 +0300 Message-ID: <20170704124402.GK12629@intel.com> References: <20170703191938.21448-1-ville.syrjala@linux.intel.com> <20170703191938.21448-2-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Andrzej Hajda Cc: Shawn Guo , intel-gfx@lists.freedesktop.org, Seung-Woo Kim , dri-devel@lists.freedesktop.org, Kyungmin Park , Laurent Pinchart , Vincent Abriou , Ben Skeggs List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBKdWwgMDQsIDIwMTcgYXQgMDE6NTY6MDdQTSArMDIwMCwgQW5kcnplaiBIYWpkYSB3 cm90ZToKPiBPbiAwMy4wNy4yMDE3IDIxOjE5LCB2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNv bSB3cm90ZToKPiA+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Cj4gPgo+ID4gQXBwZWRpeCBGIG9mIEhETUkgMi4wIHNheXMgdGhhdCBzb21lIEhE TUkgc2luayBtYXkgZmFpbCB0byBzd2l0Y2ggZnJvbQo+ID4gM0QgdG8gMkQgbW9kZSBpbiBhIHRp bWVseSBmYXNoaW9uIGlmIHRoZSBzb3VyY2Ugc2ltcGx5IHN0b3BzIHNlbmRpbmcgdGhlCj4gPiBI RE1JIGluZm9mcmFtZS4gVGhlIHN1Z2dlc3RlZCB3b3JrYXJvdW5kIGlzIHRvIGtlZXAgc2VuZGlu ZyB0aGUKPiA+IGluZm9mcmFtZSBldmVuIHdoZW4gc3RyaWN0bHkgbm90IG5lY2Vzc2FyeSAoaWUu IG5vIFZJQyBhbmQgbm8gUzNEKS4KPiA+IEhETUkgMS40IGRvZXMgYWxsb3cgZm9yIHRoaXMgYmVo YXZpb3VyLCBzdGF0aW5nIHRoYXQgc2VuZGluZyB0aGUKPiA+IGluZm9mcmFtZSBpcyBvcHRpb25h bCBpbiB0aGlzIGNhc2UuCj4gCj4gTXkgaW1wcmVzc2lvbiBmcm9tIHRoZSBzcGVjcyBpcyB0aGF0 IGl0IHNob3VsZCBiZSBkb25lIG9ubHkgYWZ0ZXIKPiBzd2l0Y2hpbmcgZnJvbSAzZCB0byAyZCBt b2RlLgo+IEluIHN1Y2ggY2FzZSB3ZSBqdXN0IG5lZWQgdG8gcmVtZW1iZXIgcHJldmlvdXMgbW9k ZSwgaWYgaXQgd2FzIDNkLCBlbXB0eQo+IFZTSUYgaW5mb2ZyYW1lIHNob3VsZCBiZSBzdGlsbCBn ZW5lcmF0ZWQgZm9yIDJzZWNvbmRzLgo+IE5vIG5lZWQgdG8gZG8gZ3Vlc3NlcyBmcm9tIEVESUQu Cj4gQW0gSSByaWdodCwgb3IganVzdCBtaXNzaW5nIHNvbWV0aGluZz8KClRoaXMgY29kZSBoYXMg bm8gaWRlYSBhYm91dCBhbnkgM0QtPjJEIHRyYW5zaXRpb25zLCB0cnlpbmcgdG8gbWFrZSBpdApk byB0aGF0IHdvdWxkIGp1c3QgcmVzdWx0IGluIGEgbG90IG9mIGNvbXBsZXhpdHkuIE11Y2ggZWFz aWVyIHRvIGp1c3QKYWx3YXlzIHNlbmQgdGhlIGluZm9mcmFtZS4KCj4gCj4gPgo+ID4gVGhlIGlu Zm9mcmFtZSB3YXMgZmlyc3Qgc3BlY2lmaWVkIGluIEhETUkgMS40LCBzbyBpbiB0aGVvcnkgc2lu a3MKPiA+IHByZWRhdGluZyB0aGF0IG1heSBub3QgYXBwcmVjaWF0ZSB1cyBzZW5kaW5nIGFuIHVr bm93biBpbmZvZnJhbWUKPiA+IHRoZWlyIHdheS4gVG8gYXZvaWQgcmVncmVzc2lvbnMgbGV0J3Mg dHJ5IHRvIGRldGVybWluZSBpZiB0aGUgc2luawo+ID4gc3VwcG9ydHMgdGhlIGluZm9mcmFtZSBv ciBub3QuIFVuZm9ydHVuYXRlbHkgdGhlcmUncyBubyBkaXJlY3Qgd2F5Cj4gPiB0byBkbyB0aGF0 LCBzbyBpbnN0ZWFkIHdlJ2xsIGp1c3QgY2hlY2sgaWYgd2UgbWFuYWdlZCB0byBwYXJzZSBhbnkK PiA+IEhETUkgMS40IDRrIG9yIHN0ZXJlbyBtb2RlcyBmcm9tIHRoZSBFRElELCBhbmQgaWYgc28g d2UgYXNzdW1lIHRoZQo+ID4gc2luayB3aWxsIGFjY2VwdCB0aGUgaW5mb2ZyYW1lLiBBbHNvIGlm IHRoZSBFRElEIGNvbnRhaW5zIHRoZSBIRE1JCj4gPiAyLjAgSERNSSBGb3J1bSBWU0RCIHdlIGNh biBhc3N1bWUgdGhlIHNpbmsgaXMgcHJlcGFyZWQgdG8gcmVjZWl2ZQo+ID4gdGhlIGluZm9mcmFt ZS4KPiA+IENjOiBBcmNoaXQgVGFuZWphIDxhcmNoaXR0QGNvZGVhdXJvcmEub3JnPgo+ID4gQ2M6 IEFuZHJ6ZWogSGFqZGEgPGEuaGFqZGFAc2Ftc3VuZy5jb20+Cj4gPiBDYzogTGF1cmVudCBQaW5j aGFydCA8TGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgo+ID4gQ2M6IElua2kgRGFl IDxpbmtpLmRhZUBzYW1zdW5nLmNvbT4KPiA+IENjOiBKb29ueW91bmcgU2hpbSA8ankwOTIyLnNo aW1Ac2Ftc3VuZy5jb20+Cj4gPiBDYzogU2V1bmctV29vIEtpbSA8c3cwMzEyLmtpbUBzYW1zdW5n LmNvbT4KPiA+IENjOiBLeXVuZ21pbiBQYXJrIDxreXVuZ21pbi5wYXJrQHNhbXN1bmcuY29tPgo+ ID4gQ2M6IENLIEh1IDxjay5odUBtZWRpYXRlay5jb20+Cj4gPiBDYzogUGhpbGlwcCBaYWJlbCA8 cC56YWJlbEBwZW5ndXRyb25peC5kZT4KPiA+IENjOiBCZW4gU2tlZ2dzIDxic2tlZ2dzQHJlZGhh dC5jb20+Cj4gPiBDYzogTWFyayBZYW8gPG1hcmsueWFvQHJvY2stY2hpcHMuY29tPgo+ID4gQ2M6 IEJlbmphbWluIEdhaWduYXJkIDxiZW5qYW1pbi5nYWlnbmFyZEBsaW5hcm8ub3JnPgo+ID4gQ2M6 IFZpbmNlbnQgQWJyaW91IDx2aW5jZW50LmFicmlvdUBzdC5jb20+Cj4gPiBDYzogU2hhd24gR3Vv IDxzaGF3bmd1b0BrZXJuZWwub3JnPgo+ID4gQ2M6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsu c2hhcm1hQGludGVsLmNvbT4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmls bGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v YnJpZGdlL3NpbC1zaWk4NjIwLmMgICAgICB8ICAzICsrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9i cmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5jIHwgIDQgKysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9k cm1fZWRpZC5jICAgICAgICAgICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKy0t LS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYyAgICAgIHwgIDIg Ky0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgICAgICB8IDE0ICsr KysrKysrLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19oZG1pLmMgICAg ICAgfCAgMyArKy0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYyAg ICB8ICAzICsrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYyAgICAg IHwgIDEgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2hkbWkuYyAgICAgICAgICAgIHwg IDQgKysrLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS96dGUvenhfaGRtaS5jICAgICAgICAgICAgIHwg IDEgKwo+ID4gIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICAgICAgICAgIHwgIDUg KysrKysKPiA+ICBpbmNsdWRlL2RybS9kcm1fZWRpZC5oICAgICAgICAgICAgICAgICAgICB8ICAx ICsKPiA+ICAxMiBmaWxlcyBjaGFuZ2VkLCA1NSBpbnNlcnRpb25zKCspLCAxOCBkZWxldGlvbnMo LSkKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYy MC5jIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwtc2lpODYyMC5jCj4gPiBpbmRleCAyZDUx YTIyNjlmYzYuLjc1OGI1YTQ1NDZmMSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9i cmlkZ2Uvc2lsLXNpaTg2MjAuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9zaWwt c2lpODYyMC5jCj4gPiBAQCAtMjEzNiw4ICsyMTM2LDkgQEAgc3RhdGljIGJvb2wgc2lpODYyMF9t b2RlX2ZpeHVwKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UsCj4gPiAgCQkJdW5pb24gaGRtaV9p bmZvZnJhbWUgZnJtOwo+ID4gIAkJCXU4IG1obF92aWNbXSA9IHsgMCwgOTUsIDk0LCA5MywgOTgg fTsKPiA+ICAKPiA+ICsJCQkvKiBGSVhNRTogV2UgbmVlZCB0aGUgY29ubmVjdG9yIGhlcmUgKi8K PiA+ICAJCQlkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKAo+ID4g LQkJCQkmZnJtLnZlbmRvci5oZG1pLCBhZGp1c3RlZF9tb2RlKTsKPiA+ICsJCQkJJmZybS52ZW5k b3IuaGRtaSwgTlVMTCwgYWRqdXN0ZWRfbW9kZSk7Cj4gPiAgCQkJdmljID0gZnJtLnZlbmRvci5o ZG1pLnZpYzsKPiAKPiBVc2FnZSBvZiBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlz cGxheV9tb2RlIGlzIGp1c3QgZGlydHkKPiB3b3JrYXJvdW5kIHRvIGdldCBoZG1pIHZpYyBmcm9t IG1vZGUgKGRybV9tYXRjaF9oZG1pX21vZGUgaXMgc3RhdGljLAo+IG9wcG9zaXRlIHRvIGRybV9t YXRjaF9jZWFfbW9kZSkuCgpBaC4gSSBndWVzcyBJIHNob3VsZCBoYXZlIHJlYWQgbW9yZSB0aGFu IHRoZSBzaW5nbGUgbGluZSBvZiBjb2RlIDopCgo+IEkgZ3Vlc3MgYmV0dGVyIHNvbHV0aW9uIGlz IHRvIGV4cG9ydCBkcm1fbWF0Y2hfaGRtaV9tb2RlLCBvciB3YWl0IGZvcgo+IGV4dGVuZGluZyBj ZWEgdGFibGUgd2l0aCBIRE1JMi4wIG1vZGVzLCBJIHBsYW4gdG8gZml4IGl0IGFmdGVyIG1lcmdp bmcKPiBIRE1JMi4wIHBhdGNoZXMuCgpPSy4gQ29vbC4gVGhhdCBtZWFucyB3ZSBjYW4gbnVrZSB0 aGUgTlVMTCBjb25uZWN0b3IgaGFuZGxpbmcgZnJvbQpkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1l X2Zyb21fZGlzcGxheV9tb2RlKCkgYXQgdGhhdCBwb2ludC4KCj4gU28gYmVzaWRlIHRoZSBjb21t ZW50LCB0aGUgY2hhbmdlIGxvb2tzIE9LLgo+IAo+ID4gIAkJCWlmICh2aWMgPj0gQVJSQVlfU0la RShtaGxfdmljKSkKPiA+ICAJCQkJdmljID0gMDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uv c3lub3BzeXMvZHctaGRtaS5jCj4gPiBpbmRleCBlYWQxMTI0MmM0YjkuLmM0MzM4OTc3NDY5MSAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2Uvc3lub3BzeXMvZHctaGRtaS5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3N5bm9wc3lzL2R3LWhkbWkuYwo+ID4g QEAgLTE0MjYsNyArMTQyNiw5IEBAIHN0YXRpYyB2b2lkIGhkbWlfY29uZmlnX3ZlbmRvcl9zcGVj aWZpY19pbmZvZnJhbWUoc3RydWN0IGR3X2hkbWkgKmhkbWksCj4gPiAgCXU4IGJ1ZmZlclsxMF07 Cj4gPiAgCXNzaXplX3QgZXJyOwo+ID4gIAo+ID4gLQllcnIgPSBkcm1faGRtaV92ZW5kb3JfaW5m b2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFtZSwgbW9kZSk7Cj4gPiArCWVyciA9IGRybV9o ZG1pX3ZlbmRvcl9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLAo+ID4gKwkJCQkJ CQkgICZoZG1pLT5jb25uZWN0b3IsCj4gPiArCQkJCQkJCSAgbW9kZSk7Cj4gPiAgCWlmIChlcnIg PCAwKQo+ID4gIAkJLyoKPiA+ICAJCSAqIEdvaW5nIGludG8gdGhhdCBzdGF0ZW1lbnQgZG9lcyBu b3QgbWVhbnMgdmVuZG9yIGluZm9mcmFtZQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZWRpZC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9lZGlkLmMKPiA+IGluZGV4IDJlNTU1 OTk4MTZhYS4uYzA2MWRkNWQyNWMwIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9lZGlkLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fZWRpZC5jCj4gPiBAQCAtMzA4 MSw2ICszMDgxLDcgQEAgc3RhdGljIGludAo+ID4gIGRvX2hkbWlfdnNkYl9tb2RlcyhzdHJ1Y3Qg ZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBjb25zdCB1OCAqZGIsIHU4IGxlbiwKPiA+ICAJCSAg IGNvbnN0IHU4ICp2aWRlb19kYiwgdTggdmlkZW9fbGVuKQo+ID4gIHsKPiA+ICsJc3RydWN0IGRy bV9kaXNwbGF5X2luZm8gKmluZm8gPSAmY29ubmVjdG9yLT5kaXNwbGF5X2luZm87Cj4gPiAgCWlu dCBtb2RlcyA9IDAsIG9mZnNldCA9IDAsIGksIG11bHRpX3ByZXNlbnQgPSAwLCBtdWx0aV9sZW47 Cj4gPiAgCXU4IHZpY19sZW4sIGhkbWlfM2RfbGVuID0gMDsKPiA+ICAJdTE2IG1hc2s7Cj4gPiBA QCAtMzIwOCw2ICszMjA5LDggQEAgZG9faGRtaV92c2RiX21vZGVzKHN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsIGNvbnN0IHU4ICpkYiwgdTggbGVuLAo+ID4gIAl9Cj4gPiAgCj4gPiAg b3V0Ogo+ID4gKwlpZiAobW9kZXMgPiAwKQo+ID4gKwkJaW5mby0+aGFzX2hkbWlfaW5mb2ZyYW1l ID0gdHJ1ZTsKPiA+ICAJcmV0dXJuIG1vZGVzOwo+ID4gIH0KPiA+ICAKPiA+IEBAIC0zODI5LDYg KzM4MzIsOCBAQCBzdGF0aWMgdm9pZCBkcm1fcGFyc2VfaGRtaV9mb3J1bV92c2RiKHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICpk aXNwbGF5ID0gJmNvbm5lY3Rvci0+ZGlzcGxheV9pbmZvOwo+ID4gIAlzdHJ1Y3QgZHJtX2hkbWlf aW5mbyAqaGRtaSA9ICZkaXNwbGF5LT5oZG1pOwo+ID4gIAo+ID4gKwlkaXNwbGF5LT5oYXNfaGRt aV9pbmZvZnJhbWUgPSB0cnVlOwo+ID4gKwo+ID4gIAlpZiAoaGZfdnNkYls2XSAmIDB4ODApIHsK PiA+ICAJCWhkbWktPnNjZGMuc3VwcG9ydGVkID0gdHJ1ZTsKPiA+ICAJCWlmIChoZl92c2RiWzZd ICYgMHg0MCkKPiA+IEBAIC0zOTk4LDYgKzQwMDMsNyBAQCBzdGF0aWMgdm9pZCBkcm1fYWRkX2Rp c3BsYXlfaW5mbyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIAlpbmZvLT5j ZWFfcmV2ID0gMDsKPiA+ICAJaW5mby0+bWF4X3RtZHNfY2xvY2sgPSAwOwo+ID4gIAlpbmZvLT5k dmlfZHVhbCA9IGZhbHNlOwo+ID4gKwlpbmZvLT5oYXNfaGRtaV9pbmZvZnJhbWUgPSBmYWxzZTsK PiA+ICAKPiA+ICAJaWYgKGVkaWQtPnJldmlzaW9uIDwgMykKPiA+ICAJCXJldHVybjsKPiA+IEBA IC00NDUyLDYgKzQ0NTgsNyBAQCBzM2Rfc3RydWN0dXJlX2Zyb21fZGlzcGxheV9tb2RlKGNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ID4gICAqIGRybV9oZG1pX3ZlbmRvcl9p bmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoKSAtIGZpbGwgYW4gSERNSSBpbmZvZnJhbWUgd2l0 aAo+ID4gICAqIGRhdGEgZnJvbSBhIERSTSBkaXNwbGF5IG1vZGUKPiA+ICAgKiBAZnJhbWU6IEhE TUkgdmVuZG9yIGluZm9mcmFtZQo+ID4gKyAqIEBjb25uZWN0b3I6IHRoZSBjb25uZWN0b3IKPiA+ ICAgKiBAbW9kZTogRFJNIGRpc3BsYXkgbW9kZQo+ID4gICAqCj4gPiAgICogTm90ZSB0aGF0IHRo ZXJlJ3MgaXMgYSBuZWVkIHRvIHNlbmQgSERNSSB2ZW5kb3IgaW5mb2ZyYW1lcyBvbmx5IHdoZW4g dXNpbmcgYQo+ID4gQEAgLTQ0NjIsOCArNDQ2OSwxNSBAQCBzM2Rfc3RydWN0dXJlX2Zyb21fZGlz cGxheV9tb2RlKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ID4gICAqLwo+ ID4gIGludAo+ID4gIGRybV9oZG1pX3ZlbmRvcl9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUo c3RydWN0IGhkbWlfdmVuZG9yX2luZm9mcmFtZSAqZnJhbWUsCj4gPiArCQkJCQkgICAgc3RydWN0 IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICAJCQkJCSAgICBjb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiA+ICB7Cj4gPiArCS8qCj4gPiArCSAqIEZJWE1FOiBzaWwt c2lpODYyMCBkb2Vzbid0IGhhdmUgYSBjb25uZWN0b3IgYXJvdW5kIHdoZW4KPiA+ICsJICogd2Ug bmVlZCBvbmUsIHNvIHdlIGhhdmUgdG8gYmUgcHJlcGFyZWQgZm9yIGEgTlVMTCBjb25uZWN0b3Iu Cj4gPiArCSAqLwo+ID4gKwlib29sIGhhc19oZG1pX2luZm9mcmFtZSA9IGNvbm5lY3RvciA/Cj4g PiArCQkmY29ubmVjdG9yLT5kaXNwbGF5X2luZm8uaGFzX2hkbWlfaW5mb2ZyYW1lIDogTlVMTDsK PiAKPiBJIHdvbmRlciBpZiByZXF1aXJpbmcgY29ubmVjdG9yIGlzIGEgZ29vZCBpZGVhLCBJIGNh biBpbWFnaW5lIHRoYXQgdGhpcwo+IGZ1bmN0aW9uIGNhbiBiZSBuZWNlc3NhcnkgaW4gcHVyZSBk cm1fZW5jb2RlciBvciBub24tdGVybWluYWwgZHJtX2JyaWRnZS4KCk5vIGRlY2VudCB3YXkgYXJv dW5kIGl0LCB1bmxlc3Mgd2Ugd2FudCB0byByaXNrIHNlbmRpbmcgdGhlIGluZm9mcmFtZSB0bwpw cmUgSERNSSAxLjQgc2lua3MuIFNvdW5kcyBsaWtlIHlvdSBoYXZlIHNvbWUga2luZCBvZiBsYXll cmluZyBwcm9ibGVtCmlmIHlvdSBjYW4ndCBnZXQgYXQgdGhlIGNvbm5lY3RvciB3aGVuIHlvdSBj YWxsIHRoaXMuCgo+IAo+IFJlZ2FyZHMKPiBBbmRyemVqCj4gCj4gPiAgCWludCBlcnI7Cj4gPiAg CXUzMiBzM2RfZmxhZ3M7Cj4gPiAgCXU4IHZpYzsKPiA+IEBAIC00NDc0LDIwICs0NDg4LDI2IEBA IGRybV9oZG1pX3ZlbmRvcl9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoc3RydWN0IGhkbWlf dmVuZG9yX2luZm9mcmFtZSAqZnJhbWUsCj4gPiAgCXZpYyA9IGRybV9tYXRjaF9oZG1pX21vZGUo bW9kZSk7Cj4gPiAgCXMzZF9mbGFncyA9IG1vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR18zRF9N QVNLOwo+ID4gIAo+ID4gLQlpZiAoIXZpYyAmJiAhczNkX2ZsYWdzKQo+ID4gKwlpZiAodmljICYm IHMzZF9mbGFncykKPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gIAo+ID4gLQlpZiAodmljICYm IHMzZF9mbGFncykKPiA+ICsJLyoKPiA+ICsJICogRXZlbiBpZiBpdCdzIG5vdCBhYnNvbHV0ZWx5 IG5lY2Vzc2FyeSB0byBzZW5kIHRoZSBpbmZvZnJhbWUKPiA+ICsJICogd2Ugd2lsbCBzdGlsbCBz ZW5kIGl0IGlmIHdlIGtub3cgdGhhdCB0aGUgc2luayBjYW4gaGFuZGxlCj4gPiArCSAqIGl0LiBU aGlzIGlzIGJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBpbiBIRE1JIDIuMCBBcHBlbmRpeCBGLgo+ID4g KwkgKiBBcHBhcmVudGx5IHNvbWUgc2lua3MgaGF2ZSB0cm91YmxlIHJlYWxpemluZyB0aGF0IHRo ZXkgc2h1bGQKPiA+ICsJICogc3dpdGNoIGZyb20gM0QgdG8gMkQgbW9kZSBpZiB0aGUgc291cmNl IHNpbXBseSBzdG9wcyBzZW5kaW5nCj4gPiArCSAqIHRoZSBpbmZvZnJhbWUgd2hlbiBpdCB3YW50 cyB0byBzd2l0Y2ggZnJvbSAzRCB0byAyRC4KPiA+ICsJICovCj4gPiArCWlmICghdmljICYmICFz M2RfZmxhZ3MgJiYgIWhhc19oZG1pX2luZm9mcmFtZSkKPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ ID4gIAo+ID4gIAllcnIgPSBoZG1pX3ZlbmRvcl9pbmZvZnJhbWVfaW5pdChmcmFtZSk7Cj4gPiAg CWlmIChlcnIgPCAwKQo+ID4gIAkJcmV0dXJuIGVycjsKPiA+ICAKPiA+IC0JaWYgKHZpYykKPiA+ IC0JCWZyYW1lLT52aWMgPSB2aWM7Cj4gPiAtCWVsc2UKPiA+IC0JCWZyYW1lLT5zM2Rfc3RydWN0 ID0gczNkX3N0cnVjdHVyZV9mcm9tX2Rpc3BsYXlfbW9kZShtb2RlKTsKPiA+ICsJZnJhbWUtPnZp YyA9IHZpYzsKPiA+ICsJZnJhbWUtPnMzZF9zdHJ1Y3QgPSBzM2Rfc3RydWN0dXJlX2Zyb21fZGlz cGxheV9tb2RlKG1vZGUpOwo+ID4gIAo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jIGIvZHJpdmVycy9ncHUv ZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jCj4gPiBpbmRleCAwNmJmYmU0MDBjZjEuLjI4NzU0NzQ0 YTdjZiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWku Ywo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfaGRtaS5jCj4gPiBAQCAt Nzk1LDcgKzc5NSw3IEBAIHN0YXRpYyB2b2lkIGhkbWlfcmVnX2luZm9mcmFtZXMoc3RydWN0IGhk bWlfY29udGV4dCAqaGRhdGEpCj4gPiAgCX0KPiA+ICAKPiA+ICAJcmV0ID0gZHJtX2hkbWlfdmVu ZG9yX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmZnJtLnZlbmRvci5oZG1pLAo+ID4gLQkJ CSZoZGF0YS0+Y3VycmVudF9tb2RlKTsKPiA+ICsJCQkmaGRhdGEtPmNvbm5lY3RvciwgJmhkYXRh LT5jdXJyZW50X21vZGUpOwo+ID4gIAlpZiAoIXJldCkKPiA+ICAJCXJldCA9IGhkbWlfdmVuZG9y X2luZm9mcmFtZV9wYWNrKCZmcm0udmVuZG9yLmhkbWksIGJ1ZiwKPiA+ICAJCQkJc2l6ZW9mKGJ1 ZikpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4gaW5kZXggZWMwNzc5YTUyZDUz Li5hMGYwMDE0MTgyNDggMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4g QEAgLTQ5NywxMiArNDk3LDE0IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfc2V0X3NwZF9pbmZv ZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAo+ID4gIHN0YXRpYyB2b2lk Cj4gPiAgaW50ZWxfaGRtaV9zZXRfaGRtaV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+ID4gLQkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+ID4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAo+ID4gKwkJCSAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpj b25uX3N0YXRlKQo+ID4gIHsKPiA+ICAJdW5pb24gaGRtaV9pbmZvZnJhbWUgZnJhbWU7Cj4gPiAg CWludCByZXQ7Cj4gPiAgCj4gPiAgCXJldCA9IGRybV9oZG1pX3ZlbmRvcl9pbmZvZnJhbWVfZnJv bV9kaXNwbGF5X21vZGUoJmZyYW1lLnZlbmRvci5oZG1pLAo+ID4gKwkJCQkJCQkgIGNvbm5fc3Rh dGUtPmNvbm5lY3RvciwKPiA+ICAJCQkJCQkJICAmY3J0Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9t b2RlKTsKPiA+ICAJaWYgKHJldCA8IDApCj4gPiAgCQlyZXR1cm47Cj4gPiBAQCAtNTY5LDcgKzU3 MSw3IEBAIHN0YXRpYyB2b2lkIGc0eF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsCj4gPiAgCj4gPiAgCWludGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUoZW5jb2Rl ciwgY3J0Y19zdGF0ZSk7Cj4gPiAgCWludGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoZW5jb2Rl ciwgY3J0Y19zdGF0ZSk7Cj4gPiAtCWludGVsX2hkbWlfc2V0X2hkbWlfaW5mb2ZyYW1lKGVuY29k ZXIsIGNydGNfc3RhdGUpOwo+ID4gKwlpbnRlbF9oZG1pX3NldF9oZG1pX2luZm9mcmFtZShlbmNv ZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0YXRlKTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGJv b2wgaGRtaV9zaW5rX2lzX2RlZXBfY29sb3IoY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCj4gPiBAQCAtNzEwLDcgKzcxMiw3IEBAIHN0YXRpYyB2b2lkIGlieF9z ZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCj4gPiAgCWlu dGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gPiAgCWlu dGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gPiAtCWlu dGVsX2hkbWlfc2V0X2hkbWlfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ID4gKwlp bnRlbF9oZG1pX3NldF9oZG1pX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0 YXRlKTsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIHZvaWQgY3B0X3NldF9pbmZvZnJhbWVzKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+IEBAIC03NTMsNyArNzU1LDcgQEAgc3RhdGlj IHZvaWQgY3B0X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiA+ ICAKPiA+ICAJaW50ZWxfaGRtaV9zZXRfYXZpX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRl KTsKPiA+ICAJaW50ZWxfaGRtaV9zZXRfc3BkX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRl KTsKPiA+IC0JaW50ZWxfaGRtaV9zZXRfaGRtaV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0 ZSk7Cj4gPiArCWludGVsX2hkbWlfc2V0X2hkbWlfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3Rh dGUsIGNvbm5fc3RhdGUpOwo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCB2bHZfc2V0X2lu Zm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ID4gQEAgLTgwNiw3ICs4MDgs NyBAQCBzdGF0aWMgdm9pZCB2bHZfc2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+ID4gIAo+ID4gIAlpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2ZyYW1lKGVuY29kZXIs IGNydGNfc3RhdGUpOwo+ID4gIAlpbnRlbF9oZG1pX3NldF9zcGRfaW5mb2ZyYW1lKGVuY29kZXIs IGNydGNfc3RhdGUpOwo+ID4gLQlpbnRlbF9oZG1pX3NldF9oZG1pX2luZm9mcmFtZShlbmNvZGVy LCBjcnRjX3N0YXRlKTsKPiA+ICsJaW50ZWxfaGRtaV9zZXRfaGRtaV9pbmZvZnJhbWUoZW5jb2Rl ciwgY3J0Y19zdGF0ZSwgY29ubl9zdGF0ZSk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lk IGhzd19zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gPiBAQCAt ODM5LDcgKzg0MSw3IEBAIHN0YXRpYyB2b2lkIGhzd19zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCj4gPiAgCWludGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJh bWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gPiAgCWludGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJh bWUoZW5jb2RlciwgY3J0Y19zdGF0ZSk7Cj4gPiAtCWludGVsX2hkbWlfc2V0X2hkbWlfaW5mb2Zy YW1lKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ID4gKwlpbnRlbF9oZG1pX3NldF9oZG1pX2luZm9m cmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0YXRlKTsKPiA+ICB9Cj4gPiAgCj4gPiAg dm9pZCBpbnRlbF9kcF9kdWFsX21vZGVfc2V0X3RtZHNfb3V0cHV0KHN0cnVjdCBpbnRlbF9oZG1p ICpoZG1pLCBib29sIGVuYWJsZSkKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCj4g PiBpbmRleCAwYTRmZmQ3MjQxNDYuLjA3ZTYxODk4MWE1YyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfaGRtaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v bWVkaWF0ZWsvbXRrX2hkbWkuYwo+ID4gQEAgLTEwNTQsNyArMTA1NCw4IEBAIHN0YXRpYyBpbnQg bXRrX2hkbWlfc2V0dXBfdmVuZG9yX3NwZWNpZmljX2luZm9mcmFtZShzdHJ1Y3QgbXRrX2hkbWkg KmhkbWksCj4gPiAgCXU4IGJ1ZmZlclsxMF07Cj4gPiAgCXNzaXplX3QgZXJyOwo+ID4gIAo+ID4g LQllcnIgPSBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKCZmcmFt ZSwgbW9kZSk7Cj4gPiArCWVyciA9IGRybV9oZG1pX3ZlbmRvcl9pbmZvZnJhbWVfZnJvbV9kaXNw bGF5X21vZGUoJmZyYW1lLAo+ID4gKwkJCQkJCQkgICZoZG1pLT5jb25uLCBtb2RlKTsKPiA+ICAJ aWYgKGVycikgewo+ID4gIAkJZGV2X2VycihoZG1pLT5kZXYsCj4gPiAgCQkJIkZhaWxlZCB0byBn ZXQgdmVuZG9yIGluZm9mcmFtZSBmcm9tIG1vZGU6ICV6ZFxuIiwgZXJyKTsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9ub3V2ZWF1L252NTBfZGlzcGxheS5jCj4gPiBpbmRleCA0MmE4NWMxNGFlYTAuLjFiNWZj ODM3ZTM1ZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L252NTBfZGlz cGxheS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9udjUwX2Rpc3BsYXkuYwo+ ID4gQEAgLTI3NjksNyArMjc2OSw4IEBAIG52NTBfaGRtaV9lbmFibGUoc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPiA+ICAJCQk9IGhk bWlfaW5mb2ZyYW1lX3BhY2soJmF2aV9mcmFtZSwgYXJncy5pbmZvZnJhbWVzLCAxNyk7Cj4gPiAg CX0KPiA+ICAKPiA+IC0JcmV0ID0gZHJtX2hkbWlfdmVuZG9yX2luZm9mcmFtZV9mcm9tX2Rpc3Bs YXlfbW9kZSgmdmVuZG9yX2ZyYW1lLnZlbmRvci5oZG1pLCBtb2RlKTsKPiA+ICsJcmV0ID0gZHJt X2hkbWlfdmVuZG9yX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmdmVuZG9yX2ZyYW1lLnZl bmRvci5oZG1pLAo+ID4gKwkJCQkJCQkgICZudl9jb25uZWN0b3ItPmJhc2UsIG1vZGUpOwo+ID4g IAlpZiAoIXJldCkgewo+ID4gIAkJLyogV2UgaGF2ZSBhIFZlbmRvciBJbmZvRnJhbWUsIHBvcHVs YXRlIGl0IHRvIHRoZSBkaXNwbGF5ICovCj4gPiAgCQlhcmdzLnB3ci52ZW5kb3JfaW5mb2ZyYW1l X2xlbmd0aAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hk bWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYwo+ID4gaW5kZXggN2Q5 Yjc1ZWI2YzQ0Li4wMTI2YzViZGNlYWIgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvaW5ub19oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9p bm5vX2hkbWkuYwo+ID4gQEAgLTI4Miw2ICsyODIsNyBAQCBzdGF0aWMgaW50IGlubm9faGRtaV9j b25maWdfdmlkZW9fdnNpKHN0cnVjdCBpbm5vX2hkbWkgKmhkbWksCj4gPiAgCWludCByYzsKPiA+ ICAKPiA+ICAJcmMgPSBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2Rl KCZmcmFtZS52ZW5kb3IuaGRtaSwKPiA+ICsJCQkJCQkJICZoZG1pLT5jb25uZWN0b3IsCj4gPiAg CQkJCQkJCSBtb2RlKTsKPiA+ICAKPiA+ICAJcmV0dXJuIGlubm9faGRtaV91cGxvYWRfZnJhbWUo aGRtaSwgcmMsICZmcmFtZSwgSU5GT0ZSQU1FX1ZTSSwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vc3RpL3N0aV9oZG1pLmMK PiA+IGluZGV4IGE1OWM5NWE4MDgxYi4uZmE2ZTliMzdiMTM2IDEwMDY0NAo+ID4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3N0aS9zdGlfaGRtaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vc3Rp L3N0aV9oZG1pLmMKPiA+IEBAIC01MTUsNyArNTE1LDkgQEAgc3RhdGljIGludCBoZG1pX3ZlbmRv cl9pbmZvZnJhbWVfY29uZmlnKHN0cnVjdCBzdGlfaGRtaSAqaGRtaSkKPiA+ICAKPiA+ICAJRFJN X0RFQlVHX0RSSVZFUigiXG4iKTsKPiA+ICAKPiA+IC0JcmV0ID0gZHJtX2hkbWlfdmVuZG9yX2lu Zm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmaW5mb2ZyYW1lLCBtb2RlKTsKPiA+ICsJcmV0ID0g ZHJtX2hkbWlfdmVuZG9yX2luZm9mcmFtZV9mcm9tX2Rpc3BsYXlfbW9kZSgmaW5mb2ZyYW1lLAo+ ID4gKwkJCQkJCQkgIGhkbWktPmRybV9jb25uZWN0b3IsCj4gPiArCQkJCQkJCSAgbW9kZSk7Cj4g PiAgCWlmIChyZXQgPCAwKSB7Cj4gPiAgCQkvKgo+ID4gIAkJICogR29pbmcgaW50byB0aGF0IHN0 YXRlbWVudCBkb2VzIG5vdCBtZWFucyB2ZW5kb3IgaW5mb2ZyYW1lCj4gPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3p0ZS96eF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0venRlL3p4X2hk bWkuYwo+ID4gaW5kZXggMGRmNzM2NmU1OTRiLi44NDQ4NzMzMmU1YzYgMTAwNjQ0Cj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0venRlL3p4X2hkbWkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3p0ZS96eF9oZG1pLmMKPiA+IEBAIC0xMDgsNiArMTA4LDcgQEAgc3RhdGljIGludCB6eF9oZG1p X2NvbmZpZ192aWRlb192c2koc3RydWN0IHp4X2hkbWkgKmhkbWksCj4gPiAgCWludCByZXQ7Cj4g PiAgCj4gPiAgCXJldCA9IGRybV9oZG1pX3ZlbmRvcl9pbmZvZnJhbWVfZnJvbV9kaXNwbGF5X21v ZGUoJmZyYW1lLnZlbmRvci5oZG1pLAo+ID4gKwkJCQkJCQkgICZoZG1pLT5jb25uZWN0b3IsCj4g PiAgCQkJCQkJCSAgbW9kZSk7Cj4gPiAgCWlmIChyZXQpIHsKPiA+ICAJCURSTV9ERVZfRVJST1Io aGRtaS0+ZGV2LCAiZmFpbGVkIHRvIGdldCB2ZW5kb3IgaW5mb2ZyYW1lOiAlZFxuIiwKPiA+IGRp ZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1f Y29ubmVjdG9yLmgKPiA+IGluZGV4IGFlNWI3ZGMzMTZjOC4uYjE4OTM5MjgwNjE2IDEwMDY0NAo+ ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gPiArKysgYi9pbmNsdWRlL2Ry bS9kcm1fY29ubmVjdG9yLmgKPiA+IEBAIC0yNDcsNiArMjQ3LDExIEBAIHN0cnVjdCBkcm1fZGlz cGxheV9pbmZvIHsKPiA+ICAJYm9vbCBkdmlfZHVhbDsKPiA+ICAKPiA+ICAJLyoqCj4gPiArCSAq IEBoYXNfaGRtaV9pbmZvZnJhbWU6IERvZXMgdGhlIHNpbmsgc3VwcG9ydCB0aGUgSERNSSBpbmZv ZnJhbWU/Cj4gPiArCSAqLwo+ID4gKwlib29sIGhhc19oZG1pX2luZm9mcmFtZTsKPiA+ICsKPiA+ ICsJLyoqCj4gPiAgCSAqIEBlZGlkX2hkbWlfZGNfbW9kZXM6IE1hc2sgb2Ygc3VwcG9ydGVkIGhk bWkgZGVlcCBjb2xvciBtb2Rlcy4gRXZlbgo+ID4gIAkgKiBtb3JlIHN0dWZmIHJlZHVuZGFudCB3 aXRoIEBidXNfZm9ybWF0cy4KPiA+ICAJICovCj4gPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0v ZHJtX2VkaWQuaCBiL2luY2x1ZGUvZHJtL2RybV9lZGlkLmgKPiA+IGluZGV4IDdiOWY0OGI2MmUw Ny4uYjBmMzc3MDhiNWFiIDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAo+ ID4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2VkaWQuaAo+ID4gQEAgLTM0Niw2ICszNDYsNyBAQCBk cm1faGRtaV9hdmlfaW5mb2ZyYW1lX2Zyb21fZGlzcGxheV9tb2RlKHN0cnVjdCBoZG1pX2F2aV9p bmZvZnJhbWUgKmZyYW1lLAo+ID4gIAkJCQkJIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICptb2RlKTsKPiA+ICBpbnQKPiA+ICBkcm1faGRtaV92ZW5kb3JfaW5mb2ZyYW1lX2Zyb21fZGlz cGxheV9tb2RlKHN0cnVjdCBoZG1pX3ZlbmRvcl9pbmZvZnJhbWUgKmZyYW1lLAo+ID4gKwkJCQkJ ICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiAgCQkJCQkgICAgY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKm1vZGUpOwo+ID4gIHZvaWQKPiA+ICBkcm1faGRtaV9h dmlfaW5mb2ZyYW1lX3F1YW50X3JhbmdlKHN0cnVjdCBoZG1pX2F2aV9pbmZvZnJhbWUgKmZyYW1l LAo+IAoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2 ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==