From: Imre Deak Subject: Re: [PATCH 2/3] drm/i915/icl: Fix TypeC legacy HDMI HPD handling Date: Mon, 17 Dec 2018 19:38:42 +0200 Message-ID: <20181217173842.GD5513@ideak-desk.fi.intel.com> References: <20181213194850.25406-1-imre.deak@intel.com> <20181213194850.25406-3-imre.deak@intel.com> <20181213210651.GC1681@intel.com> <20181213232507.GA26382@ideak-desk.fi.intel.com> <20181214222209.GB31365@intel.com> <20181214232545.GA21061@ideak-desk.fi.intel.com> <20181217070527.GB49538@intel.com> Reply-To: imre.deak@intel.com Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id 65C8B89E5A for ; Mon, 17 Dec 2018 17:38:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181217070527.GB49538@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org, Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gU3VuLCBEZWMgMTYsIDIwMTggYXQgMTE6MDU6MjdQTSAtMDgwMCwgUm9kcmlnbyBWaXZpIHdy b3RlOgo+IE9uIFNhdCwgRGVjIDE1LCAyMDE4IGF0IDAxOjI1OjQ1QU0gKzAyMDAsIEltcmUgRGVh ayB3cm90ZToKPiA+IE9uIEZyaSwgRGVjIDE0LCAyMDE4IGF0IDAyOjIyOjA5UE0gLTA4MDAsIFJv ZHJpZ28gVml2aSB3cm90ZToKPiA+ID4gT24gRnJpLCBEZWMgMTQsIDIwMTggYXQgMDE6MjU6MDdB TSArMDIwMCwgSW1yZSBEZWFrIHdyb3RlOgo+ID4gPiA+IE9uIFRodSwgRGVjIDEzLCAyMDE4IGF0 IDAxOjA2OjUxUE0gLTA4MDAsIFJvZHJpZ28gVml2aSB3cm90ZToKPiA+ID4gPiA+IE9uIFRodSwg RGVjIDEzLCAyMDE4IGF0IDA5OjQ4OjQ5UE0gKzAyMDAsIEltcmUgRGVhayB3cm90ZToKPiA+ID4g PiA+ID4gQXRtIEhQRCBkaXNjb25uZWN0IGV2ZW50cyBvbiBUeXBlQyBwb3J0cyB3aWxsIGJyZWFr IHRoaW5ncywgc2luY2Ugd2UnbGwKPiA+ID4gPiA+ID4gc3dpdGNoIHRoZSBUeXBlQyBtb2RlIChi ZXR3ZWVuIExlZ2FjeSBhbmQgZGlzY29ubmVjdGVkIG1vZGVzIGFzIHdlbGwgYXMKPiA+ID4gPiA+ ID4gYW1vbmcgVVNCIERQIGFsdGVybmF0ZSwgVGh1bmRlcmJvbHQgYWx0ZXJuYXRlIGFuZCBkaXNj b25uZWN0ZWQgbW9kZXMpIG9uCj4gPiA+ID4gPiA+IHRoZSBmbHkgZnJvbSB0aGUgSFBEIGRpc2Nv bm5lY3QgaW50ZXJydXB0IHdvcmsgd2hpbGUgdGhlIHBvcnQgbWF5IGJlCj4gPiA+ID4gPiA+IHN0 aWxsIGFjdGl2ZS4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IEV2ZW4gaWYgdGhlIHBvcnQgaGFw cGVucyB0byBiZSBub3QgYWN0aXZlIGR1cmluZyB0aGUgZGlzY29ubmVjdCB3ZSdkCj4gPiA+ID4g PiA+IHN0aWxsIGhhdmUgYSBwcm9ibGVtIGR1cmluZyBhIHN1YnNlcXVlbnQgbW9kZXNldCBvciBB VVggdHJhbnNmZXIgdGhhdAo+ID4gPiA+ID4gPiBjb3VsZCBoYXBwZW4gcmVnYXJkbGVzcyBvZiB0 aGUgcG9ydCdzIGNvbm5lY3RlZCBzdGF0ZS4gRm9yIGluc3RhbmNlIHRoZQo+ID4gPiA+ID4gPiBz eXN0ZW0gcmVzdW1lIGRpc3BsYXkgbW9kZSByZXN0b3JlIGNvZGUgYW5kIHVzZXJzcGFjZSBjb3Vs ZCBwZXJmb3JtIGEKPiA+ID4gPiA+ID4gbW9kZXNldCBvbiB0aGUgcG9ydCBvciB1c2Vyc3BhY2Ug Y291bGQgc3RhcnQgYW4gQVVYIHRyYW5zZmVyIGV2ZW4gaWYgdGhlCj4gPiA+ID4gPiA+IHBvcnQg aXMgaW4gZGlzY29ubmVjdGVkIHN0YXRlLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gVG8gZml4 IHRoaXMga2VlcCBsZWdhY3kgVHlwZUMgcG9ydHMgaW4gVHlwZUMgbGVnYWN5IG1vZGUgd2hlbmV2 ZXIgd2UncmUKPiA+ID4gPiA+ID4gbm90IHN1c3BlbmRlZC4gVGhlIGxlZ2FjeSBtb2RlIGlzIGEg c3RhdGljIGNvbmZpZ3VyYXRpb24gYXMgb3Bwb3NlZCB0bwo+ID4gPiA+ID4gPiB0aGUgVGh1bmRl cmJvbHQgYW5kIFVTQiBEUCBhbHRlcm5hdGUgbW9kZXMgYmV0d2VlbiB3aGljaCB3ZSBjYW4gc3dp dGNoCj4gPiA+ID4gPiA+IGR5bmFtaWNhbGx5Lgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gV2Ug ZG9uJ3QgaGF2ZSB5ZXQgYW4gZXhwbGljaXQgd2F5IHRvIGRldGVjdCBUeXBlQyBsZWdhY3kgcG9y dHMsIGJ1dCB3ZQo+ID4gPiA+ID4gPiBjYW4gaW1wbHkgdGhhdCBhdCBsZWFzdCBpbiBjYXNlIG9m IEhETUkgZW5hYmxlZCBwb3J0cywgc2luY2UgSERNSSBjYW4KPiA+ID4gPiA+ID4gb25seSBiZSBw cm92aWRlZCBpbiBsZWdhY3kgbW9kZS4gU28gbWFyayBUeXBlQyBIRE1JIGVuYWJsZWQgcG9ydHMg YXMKPiA+ID4gPiA+ID4gbGVnYWN5IGFuZCBydW4gdGhlIFR5cGVDIFBIWSBjb25uZWN0IHNlcXVl bmNlIGV4cGxpY2l0bHkgZHVyaW5nIGRyaXZlcgo+ID4gPiA+ID4gPiBsb2FkaW5nIGFuZCBzeXN0 ZW0gcmVzdW1lLiBUaGUgY29ubmVjdCB3aWxsIHN1Y2NlZWQgZXZlbiBpZiB0aGUgZGlzcGxheQo+ ID4gPiA+ID4gPiBpcyBub3QgY29ubmVjdGVkIHRvIGJlZ2luIHdpdGggKG9yIGRpc2FwcGVhcnMg ZHVyaW5nIHRoZSBzdXNwZW5kZWQKPiA+ID4gPiA+ID4gc3RhdGUpIHNpbmNlIGZvciBsZWdhY3kg cG9ydHMgdGhlIFBPUlRfVFhfREZMRVhEUFBNUyAvCj4gPiA+ID4gPiA+IERQX1BIWV9NT0RFX1NU QVRVU19DT01QTEVURUQgZmxhZyBpcyBhbHdheXMgc2V0IChhcyBvcHBvc2VkIHRvIHRoZSBVU0IK PiA+ID4gPiA+ID4gRFAgYWx0ZXJuYXRlIG1vZGUgd2hlcmUgaXQgZ2V0cyBzZXQgb25seSB3aGVu IGEgZGlzcGxheSBpcyBjb25uZWN0ZWQpLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gQ29ycmVz cG9uZGluZ2x5IHJ1biB0aGUgVHlwZUMgUEhZIGRpc2Nvbm5lY3Qgc2VxdWVuY2UgZHVyaW5nIHN5 c3RlbQo+ID4gPiA+ID4gPiBzdXNwZW5kIGFuZCBkcml2ZXIgdW5sb2FkaW5nLCBidXQgZGlzY29u bmVjdCBkdXJpbmcgc3VzcGVuZCBvbmx5IGZvcgo+ID4gPiA+ID4gPiBsZWdhY3kgVHlwZUMgbW9k ZS4gV2Ugd2lsbCBuZWVkIHRvIGRpc2Nvbm5lY3QgZXZlbiBpbiBVU0IgRFAgYWx0ZXJuYXRlCj4g PiA+ID4gPiA+IG1vZGUgaW4gdGhlIGZ1dHVyZSwgYnV0IGF0bSB3ZSBkb24ndCBoYXZlIGEgd2F5 IHRvIHJlY29ubmVjdCB0aGUgcG9ydAo+ID4gPiA+ID4gPiBpbiB0aGlzIG1vZGUgZHVyaW5nIHJl c3VtZSBpZiB0aGUgZGlzcGxheSBkaXNhcHBlYXJzIHdoaWxlIGJlaW5nCj4gPiA+ID4gPiA+IHN1 c3BlbmRlZC4gU28gZm9yIG5vdyBwdW50IG9uIHRoaXMgY2FzZS4KPiA+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+IE5vdGUgdGhhdCB3ZSBkbyBub3QgZGlzY29ubmVjdCB0aGUgcG9ydCBkdXJpbmcgcnVu dGltZSBzdXNwZW5kOyBpbgo+ID4gPiA+ID4gPiBsZWdhY3kgbW9kZSB0aGVyZSBhcmUgbm8gc2hh cmVkIEhXIHJlc291cmNlcyAoUEhZIGxhbmVzKSB3aXRoIG90aGVyIEhXCj4gPiA+ID4gPiA+IGJs b2NrcyAoVVNCKSwgc28gbm8gbmVlZCB0byByZWxlYXNlIC8gcmVhY3F1aXJlIHRoZXNlIHJlc291 cmNlcyBhcyB3aXRoCj4gPiA+ID4gPiA+IFVTQiBEUCBhbHRlcm5hdGUgbW9kZS4gVGhlIG9ubHkg cmVhc29uIHRvIGRpc2Nvbm5lY3QgbGVnYWN5IHBvcnRzIGR1cmluZwo+ID4gPiA+ID4gPiBzeXN0 ZW0gc3VzcGVuZCBpcyB0aGF0IHRoZSBQT1JUX1RYX0RGTEVYRFBQTVMgLwo+ID4gPiA+ID4gPiBE UF9QSFlfTU9ERV9TVEFUVVNfQ09NUExFVEVEIGZsYWcgbXVzdCBiZSByZWNoZWNrZWQgYW5kIHRo ZSBwb3J0IG11c3QgYmUKPiA+ID4gPiA+ID4gY29ubmVjdGVkIGFnYWluIGR1cmluZyBzeXN0ZW0g cmVzdW1lLiBXZSBtYXkgYWxzbyBuZWVkIHRvIHR1cm4gdGhlIGNoZWNrCj4gPiA+ID4gPiA+IGZv ciB0aGlzIGZsYWcgaW50byBhIHBvbGwsIGRlcGVuZGluZyBvbiBmdXJ0aGVyIHRlc3RzIGFuZCBj bGFyaWZpY2F0aW9ucwo+ID4gPiA+ID4gPiB3ZSBhcmUgZXhwZWN0aW5nIGZyb20gSFcvRlcgcGVv cGxlLgo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gSWYgVkJUIHNheXMgdGhhdCB0aGUgcG9ydCBw cm92aWRlcyBvbmx5IERQIGZ1bmN0aW9uYWxpdHkgdGhlbiB3ZSBjYW4ndAo+ID4gPiA+ID4gPiBh c3N1bWUgdGhhdCBpdCdzIGEgbGVnYWN5IHBvcnQgYXMgZm9yIEhETUkgKHNpbmNlIGl0IGNvdWxk IGFzIHdlbGwgYmUKPiA+ID4gPiA+ID4gYSBUQlQvRFAgQWx0IGNvbm5lY3RvciksIHNvIHdlJ2xs IHNvbHZlIEhQRCBoYW5kbGluZyBmb3IgdGhlIERQIGNhc2UKPiA+ID4gPiA+ID4gd2l0aCBhIGRp ZmZlcmVudCBtZXRob2QgaW4gdGhlIG5leHQgcGF0Y2guCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4g PiBFdmVudHVhbGx5IC0gaW5zdGVhZCBvZiB0aGUgYWJvdmUgbWV0aG9kIC0gd2UnbGwgZGVwZW5k IG9uIGFuIGV4cGxpY2l0Cj4gPiA+ID4gPiA+IGRldGVjdGlvbiBtZXRob2QgcHJvdmlkZWQgZWl0 aGVyIHZpYSBhIFZCVCBmbGFnIG9yIGEgRlcvSFcgcmVnaXN0ZXIgYm90aAo+ID4gPiA+ID4gPiBm b3IgdGhlIEhETUkgYW5kIERQIGNhc2UuCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiBCdWd6aWxs YTogaHR0cHM6Ly9idWdzLmZyZWVkZXNrdG9wLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MDcwCj4g PiA+ID4gPiA+IEJ1Z3ppbGxhOiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVn LmNnaT9pZD0xMDg5MjQKPiA+ID4gPiA+ID4gQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5v bmlAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiBDYzogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+ID4gQ2M6IEpvc8OpIFJvYmVydG8gZGUgU291 emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiBDYzogUm9kcmlnbyBWaXZpIDxy b2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERl YWsgPGltcmUuZGVha0BpbnRlbC5jb20+Cj4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgfCA1NCArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tCj4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jICB8IDI5ICsrKysrKysrKysrKysrLS0tLS0tLQo+ID4gPiA+ID4gPiAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggfCAgNSArKystCj4gPiA+ID4gPiA+ICAzIGZpbGVzIGNo YW5nZWQsIDc1IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ID4gPiA+ID4gaW5kZXggZjNlMWQ2 YTBiN2RkLi4yZTQ3ZmZhMWM5NWEgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RkaS5jCj4gPiA+ID4gPiA+IEBAIC0zOTAxLDkgKzM5MDEsNTAgQEAgc3RhdGlj IGJvb2wgaW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ ID4gK3N0YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX3N1c3BlbmQoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIpCj4gPiA+ID4gPiA+ICt7Cj4gPiA+ID4gPiA+ICsJc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2Up Owo+ID4gPiA+ID4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShl bmNvZGVyLT5iYXNlLmRldik7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwlpbnRlbF9kcF9l bmNvZGVyX3N1c3BlbmQoZW5jb2Rlcik7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwkvKgo+ ID4gPiA+ID4gPiArCSAqIFRPRE86IGRpc2Nvbm5lY3QgYWxzbyBmcm9tIFVTQiBEUCBhbHRlcm5h dGUgbW9kZSBvbmNlIHdlIGhhdmUgYQo+ID4gPiA+ID4gPiArCSAqIHdheSB0byBoYW5kbGUgdGhl IG1vZGVzZXQgcmVzdG9yZSBpbiB0aGF0IG1vZGUgZHVyaW5nIHJlc3VtZQo+ID4gPiA+ID4gPiAr CSAqIGV2ZW4gaWYgdGhlIHNpbmsgaGFzIGRpc2FwcGVhcmVkIHdoaWxlIGJlaW5nIHN1c3BlbmRl ZC4KPiA+ID4gPiA+ID4gKwkgKi8KPiA+ID4gPiA+ID4gKwlpZiAoZGlnX3BvcnQtPnRjX2xlZ2Fj eV9wb3J0KQo+ID4gPiA+ID4gPiArCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoaTkxNSwgZGlnX3Bv cnQpOwo+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICtzdGF0aWMgdm9p ZCBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNldChzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmNvZGVy KQo+ID4gPiA+ID4gPiArewo+ID4gPiA+ID4gPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGRybV9lbmNvZGVyKTsKPiA+ID4gPiA+ID4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZHJtX2VuY29kZXItPmRldik7 Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwlpZiAoaW50ZWxfcG9ydF9pc190YyhpOTE1LCBk aWdfcG9ydC0+YmFzZS5wb3J0KSkKPiA+ID4gPiA+ID4gKwkJaW50ZWxfZGlnaXRhbF9wb3J0X2Nv bm5lY3RlZCgmZGlnX3BvcnQtPmJhc2UpOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJaW50 ZWxfZHBfZW5jb2Rlcl9yZXNldChkcm1fZW5jb2Rlcik7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IGRv IHdlIG5lZWQgYWxsIG9mIHRoYXQ/Cj4gPiA+ID4gCj4gPiA+ID4gWW91IG1lYW4gaWYgd2UgbmVl ZCB0byBjYWxsIGludGVsX2RwX2VuY29kZXJfcmVzZXQoKT8gVGhhdCB3YXMgdGhlCj4gPiA+ID4g b3JpZ2luYWwgc3RhdGUsIGFzIGJlZm9yZSB0aGlzIGNoYW5nZSB3ZSBoYWQKPiA+ID4gCj4gPiA+ IHllcy4KPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gCS5yZXNldCA9IGludGVsX2RwX2VuY29kZXJf cmVzZXQKPiA+ID4gPiAKPiA+ID4gPiBpbiBpbnRlbF9kZGlfZnVuY3MuIAo+ID4gPiA+IAo+ID4g PiA+ID4gb3IgY291bGQgc2ltcGx5Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IGludGVsX2RwLT5yZXNl dF9saW5rX3BhcmFtcyA9IHRydWU7Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IGluc3RlYWQ/ISAKPiA+ ID4gPiAKPiA+ID4gPiBOb3Qgc3VyZSBob3cgd2UgY291bGQgYXZvaWQgY2FsbGluZyBpbnRlbF9k cF9lbmNvZGVyX3Jlc2V0KCkgaGVyZSwgaXQKPiA+ID4gPiBoYXMgcmVxdWlyZWQgTFNQQ09OIGFu ZCBlRFAgc3BlY2lmaWMgcGFydHMuCj4gPiA+IAo+ID4gPiBJIGhhZCBpbiBteSBtaW5kIHRoZSB0 eXBlX2Mgb25seSwgc29ycnkuCj4gPiA+IAo+ID4gPiBCdXQgbm93IHdoYXQgSSBkb24ndCB1bmRl cnN0YW5kIGlzIHdoeSB3ZSBkb24ndCBuZWVkIHRvIGRvIHRoZSBzYW1lCj4gPiA+IGFuZCBjYWxs IGludGVsX2RwX2VuY29kZXJfZGVzdHJveSBmcm9tIGluc2lkZSBpbnRlbF9kZGlfZW5jb2Rlcl9k ZXN0cm95Lgo+ID4gPiBpdCBzZWVtcyB0aGF0IHdlIHdpbGwgbG9vc2Ugc29tZSBMU1BDT04gYW5k IGVEUCB0aGVyZSBhcyB3ZWxsLi4uCj4gPiAKPiA+IFRoYXQgc3R1ZmYgbW92ZWQgdG8gaW50ZWxf ZHBfZW5jb2Rlcl9mbHVzaF93b3JrKCkgYXMgZXhwbGFpbmVkIGJlbG93LAo+ID4gd2hpY2ggaXMg Y2FsbGVkIGZyb20gaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJveSgpLgo+IAo+IGhtbW0sIG5vdyBJ IHNhdyB0aGlzIHBhcnQgb2YgdGhlIG1vdmUuIHNvcnJ5Li4uCj4gSSB0aGluayB0aGUgbm9uLXN5 bW1ldHJpYyBuYW1lIGdvdCBhIGJpdCBjb25mdXNpbmcsCgpobSwgbm90IHN1cmUgd2hhdCB5b3Ug bWVhbi4gQWZ0ZXIgdGhpcyBjaGFuZ2Ugd2UgaGF2ZQoKaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95 KCkgdGhhdCBwcmUtRERJIHBsYXRmb3JtcyBzZXQgYXMgdGhlaXIgZW5jb2RlcgouZGVzdHJveSBo b29rCgphbmQgd2UgaGF2ZQoKaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJveSgpIHRoYXQgRERJIHBs YXRmb3JtcyBzZXQgYXMgdGhlaXIgZW5jb2RlcgouZGVzdHJveSBob29rLgoKQm90aCBpbnRlbF9k cF9lbmNvZGVyX2Rlc3Ryb3koKSBhbmQgaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJveSgpIHdpbGwK Y2FsbCBpbiB0dXJuIGludGVsX2RwX2VuY29kZXJfZmx1c2hfd29yaygpLiBTbyBub3Qgc3VyZSB3 aGF0IHBhcnQgeW91CnRoaW5rIGlzIG5vbi1zeW1tZXRyaWMuCgo+IGJ1dCB0aGUgY29kZSBpcyBp bmRlZWQgcmlnaHQsIHNvOgo+IAo+IFJldmlld2VkLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28u dml2aUBpbnRlbC5jb20+CgpUaGFua3MuIEkgc2VudCBhIHYyIHBhdGNoc2V0IHdpdGggYSBtaW5v ciBjaGFuZ2UgaW4gdGhpcyBhbmQgdGhlIGxhc3QKcGF0Y2gsIGRvZXMgdGhlIHItYiBzdGlsbCBh cHBseSBvbiB0aG9zZT8KCi0tSW1yZQoKPiAKPiA+IAo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiA+ IAo+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICtzdGF0aWMgdm9pZCBp bnRlbF9kZGlfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ ID4gPiA+ID4gK3sKPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdf cG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKPiA+ID4gPiA+ID4g Kwo+ID4gPiA+ID4gPiArCWludGVsX2RwX2VuY29kZXJfZmx1c2hfd29yayhlbmNvZGVyKTsKPiA+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiArCWlmIChpbnRlbF9wb3J0X2lzX3RjKGk5MTUsIGRpZ19w b3J0LT5iYXNlLnBvcnQpKQo+ID4gPiA+ID4gPiArCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoaTkx NSwgZGlnX3BvcnQpOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJZHJtX2VuY29kZXJfY2xl YW51cChlbmNvZGVyKTsKPiA+ID4gPiA+IAo+ID4gPiA+ID4gYW5kIGhlcmUgZG9uJ3Qgd2UgbmVl ZCBzdHVmZiBvbiBpbnRlbF9kcF9lbmNvZGVyIGRlc3Ryb3kgaGVyZSBsaWtlCj4gPiA+ID4gPiBp bnRlbF9kcF9hdXhfZmluaT8KPiA+ID4gPiAKPiA+ID4gPiBZZXMgd2UgZG8sIHRoYXQncyBwYXJ0 IG9mIHRoZSBuZXcgaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93b3JrKCkgZnVuYy4KPiA+ID4gPiBI YWQgdG8gc3BsaXQgdXAgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KCksIHNpbmNlIHdlIHdhbnQg dG8gZmx1c2ggYW55Cj4gPiA+ID4gcGVuZGluZyB3b3JrIG9uIHRoZSBlbmNvZGVyIGZpcnN0IChm b3IgaW5zdGFuY2UgTVNUIHNwZWNpZmljIHN0dWZmKSB0aGVuCj4gPiA+ID4gZGlzY29ubmVjdCB0 aGUgVEMgUEhZLCB0aGVuIGRvIHRoZSBEUk0gY29yZSBjbGVhbnVwIGFuZCBrZnJlZS4gUHJvYmFi bHkKPiA+ID4gPiBzaG91bGQndmUgYmVlbiBpbiB0aGUgY29tbWl0IGxvZy4KPiA+ID4gPiAKPiA+ ID4gPiA+IAo+ID4gPiA+ID4gPiArCWtmcmVlKGRpZ19wb3J0KTsKPiA+ID4gPiA+ID4gK30KPiA+ ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fZW5jb2Rlcl9m dW5jcyBpbnRlbF9kZGlfZnVuY3MgPSB7Cj4gPiA+ID4gPiA+IC0JLnJlc2V0ID0gaW50ZWxfZHBf ZW5jb2Rlcl9yZXNldCwKPiA+ID4gPiA+ID4gLQkuZGVzdHJveSA9IGludGVsX2RwX2VuY29kZXJf ZGVzdHJveSwKPiA+ID4gPiA+ID4gKwkucmVzZXQgPSBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNldCwK PiA+ID4gPiA+ID4gKwkuZGVzdHJveSA9IGludGVsX2RkaV9lbmNvZGVyX2Rlc3Ryb3ksCj4gPiA+ ID4gPiA+ICB9Owo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICBzdGF0aWMgc3RydWN0IGludGVs X2Nvbm5lY3RvciAqCj4gPiA+ID4gPiA+IEBAIC00MTk3LDcgKzQyMzgsNyBAQCB2b2lkIGludGVs X2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBv cnQpCj4gPiA+ID4gPiA+ICAJaW50ZWxfZW5jb2Rlci0+cG9zdF9kaXNhYmxlID0gaW50ZWxfZGRp X3Bvc3RfZGlzYWJsZTsKPiA+ID4gPiA+ID4gIAlpbnRlbF9lbmNvZGVyLT5nZXRfaHdfc3RhdGUg PSBpbnRlbF9kZGlfZ2V0X2h3X3N0YXRlOwo+ID4gPiA+ID4gPiAgCWludGVsX2VuY29kZXItPmdl dF9jb25maWcgPSBpbnRlbF9kZGlfZ2V0X2NvbmZpZzsKPiA+ID4gPiA+ID4gLQlpbnRlbF9lbmNv ZGVyLT5zdXNwZW5kID0gaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kOwo+ID4gPiA+ID4gPiArCWlu dGVsX2VuY29kZXItPnN1c3BlbmQgPSBpbnRlbF9kZGlfZW5jb2Rlcl9zdXNwZW5kOwo+ID4gPiA+ ID4gPiAgCWludGVsX2VuY29kZXItPmdldF9wb3dlcl9kb21haW5zID0gaW50ZWxfZGRpX2dldF9w b3dlcl9kb21haW5zOwo+ID4gPiA+ID4gPiAgCWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9P VVRQVVRfRERJOwo+ID4gPiA+ID4gPiAgCWludGVsX2VuY29kZXItPnBvd2VyX2RvbWFpbiA9IGlu dGVsX3BvcnRfdG9fcG93ZXJfZG9tYWluKHBvcnQpOwo+ID4gPiA+ID4gPiBAQCAtNDI1Nyw2ICs0 Mjk4LDkgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ID4gPiA+ID4gPiAgCWlmIChpbnRlbF9lbmNvZGVyLT50 eXBlICE9IElOVEVMX09VVFBVVF9FRFAgJiYgaW5pdF9oZG1pKSB7Cj4gPiA+ID4gPiA+ICAJCWlm ICghaW50ZWxfZGRpX2luaXRfaGRtaV9jb25uZWN0b3IoaW50ZWxfZGlnX3BvcnQpKQo+ID4gPiA+ ID4gPiAgCQkJZ290byBlcnI7Cj4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4gKwkJaWYgKGludGVs X3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpKQo+ID4gPiA+ID4gPiArCQkJaW50ZWxfZGlnX3Bv cnQtPnRjX2xlZ2FjeV9wb3J0ID0gdHJ1ZTsKPiA+ID4gPiA+ID4gIAl9Cj4gPiA+ID4gPiA+ICAK PiA+ID4gPiA+ID4gIAlpZiAoaW5pdF9sc3Bjb24pIHsKPiA+ID4gPiA+ID4gQEAgLTQyNzQsNiAr NDMxOCwxMCBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gPiAgCj4g PiA+ID4gPiA+ICAJaW50ZWxfaW5mb2ZyYW1lX2luaXQoaW50ZWxfZGlnX3BvcnQpOwo+ID4gPiA+ ID4gPiArCj4gPiA+ID4gPiA+ICsJaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQp KQo+ID4gPiA+ID4gPiArCQlpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVjdGVkKGludGVsX2VuY29k ZXIpOwo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICAJcmV0dXJuOwo+ID4gPiA+ID4gPiAgCj4g PiA+ID4gPiA+ICBlcnI6Cj4gPiA+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ ID4gPiBpbmRleCAwODI1OTRiYjY1YTcuLjE5ZTQ5YWRhYjU0OCAxMDA2NDQKPiA+ID4gPiA+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gPiA+ID4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiA+ID4gPiA+IEBAIC01MTA4LDkgKzUx MDgsNiBAQCBzdGF0aWMgdm9pZCBpY2xfdXBkYXRlX3RjX3BvcnRfdHlwZShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiA+ICAJCQkgICAgICB0Y190eXBlX25hbWUo aW50ZWxfZGlnX3BvcnQtPnRjX3R5cGUpKTsKPiA+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ID4gIAo+ ID4gPiA+ID4gPiAtc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9kaXNjb25uZWN0KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ID4gLQkJCQkgIHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiAgLyoKPiA+ ID4gPiA+ID4gICAqIFRoaXMgZnVuY3Rpb24gaW1wbGVtZW50cyB0aGUgZmlyc3QgcGFydCBvZiB0 aGUgQ29ubmVjdCBGbG93IGRlc2NyaWJlZCBieSBvdXIKPiA+ID4gPiA+ID4gICAqIHNwZWNpZmlj YXRpb24sIEdlbjExIFR5cGVDIFByb2dyYW1taW5nIGNoYXB0ZXIuIFRoZSByZXN0IG9mIHRoZSBm bG93IChyZWFkaW5nCj4gPiA+ID4gPiA+IEBAIC01MTQ1LDYgKzUxNDIsNyBAQCBzdGF0aWMgYm9v bCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ ID4gPiA+ID4gPiAgCXZhbCA9IEk5MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBQTVMpOwo+ID4gPiA+ ID4gPiAgCWlmICghKHZhbCAmIERQX1BIWV9NT0RFX1NUQVRVU19DT01QTEVURUQodGNfcG9ydCkp KSB7Cj4gPiA+ID4gPiA+ICAJCURSTV9ERUJVR19LTVMoIkRQIFBIWSBmb3IgVEMgcG9ydCAlZCBu b3QgcmVhZHlcbiIsIHRjX3BvcnQpOwo+ID4gPiA+ID4gPiArCQlXQVJOX09OKGRpZ19wb3J0LT50 Y19sZWdhY3lfcG9ydCk7Cj4gPiA+ID4gPiA+ICAJCXJldHVybiBmYWxzZTsKPiA+ID4gPiA+ID4g IAl9Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gQEAgLTUxNzYsOCArNTE3NCw4IEBAIHN0YXRp YyBib29sIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCj4gPiA+ID4gPiA+ICAgKiBTZWUgdGhlIGNvbW1lbnQgYXQgdGhlIGNvbm5lY3QgZnVuY3Rp b24uIFRoaXMgaW1wbGVtZW50cyB0aGUgRGlzY29ubmVjdAo+ID4gPiA+ID4gPiAgICogRmxvdy4K PiA+ID4gPiA+ID4gICAqLwo+ID4gPiA+ID4gPiAtc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9kaXNj b25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ID4gLQkJ CQkgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ID4gPiA+ID4gPiArdm9p ZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gPiA+ID4gPiArCQkJICAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQp Cj4gPiA+ID4gPiA+ICB7Cj4gPiA+ID4gPiA+ICAJZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRl bF9wb3J0X3RvX3RjKGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKPiA+ID4gPiA+ID4g IAo+ID4gPiA+ID4gPiBAQCAtNTIyMiw3ICs1MjIwLDggQEAgc3RhdGljIGJvb2wgaWNsX3RjX3Bv cnRfY29ubmVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ID4gPiA+ ID4gIAlib29sIGlzX2xlZ2FjeSwgaXNfdHlwZWMsIGlzX3RidDsKPiA+ID4gPiA+ID4gIAl1MzIg ZHBzcDsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiAtCWlzX2xlZ2FjeSA9IEk5MTVfUkVBRChT REVJU1IpICYgU0RFX1RDX0hPVFBMVUdfSUNQKHRjX3BvcnQpOwo+ID4gPiA+ID4gPiArCWlzX2xl Z2FjeSA9IGludGVsX2RpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCB8fAo+ID4gPiA+ID4gPiArCQlJ OTE1X1JFQUQoU0RFSVNSKSAmIFNERV9UQ19IT1RQTFVHX0lDUCh0Y19wb3J0KTsKPiA+ID4gPiA+ ID4gIAo+ID4gPiA+ID4gPiAgCS8qCj4gPiA+ID4gPiA+ICAJICogVGhlIHNwZWMgc2F5cyB3ZSBz aG91bGRuJ3QgYmUgdXNpbmcgdGhlIElTUiBiaXRzIGZvciBkZXRlY3RpbmcKPiA+ID4gPiA+ID4g QEAgLTUyMzMsNyArNTIzMiwxNCBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcG9ydF9jb25uZWN0ZWQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gPiA+ID4gPiAgCWlzX3RidCA9 IGRwc3AgJiBUQ19MSVZFX1NUQVRFX1RCVCh0Y19wb3J0KTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ ID4gPiAgCWlmICghaXNfbGVnYWN5ICYmICFpc190eXBlYyAmJiAhaXNfdGJ0KSB7Cj4gPiA+ID4g PiA+IC0JCWljbF90Y19waHlfZGlzY29ubmVjdChkZXZfcHJpdiwgaW50ZWxfZGlnX3BvcnQpOwo+ ID4gPiA+ID4gPiArCQkvKgo+ID4gPiA+ID4gPiArCQkgKiBXZSBkaXNjb25uZWN0IGZyb20gbGVn YWN5IG1vZGUgb25seSBkdXJpbmcgc3lzdGVtCj4gPiA+ID4gPiA+ICsJCSAqIHN1c3BlbmQgYW5k IGRyaXZlciB1bmxvYWRpbmcsIG90aGVyd2lzZSB3ZSBrZWVwIHRoZSBwb3J0IGluCj4gPiA+ID4g PiA+ICsJCSAqIGxlZ2FjeSBtb2RlIGV2ZW4gYWZ0ZXIgYW4gSFBEIGRpc2Nvbm5lY3QgZXZlbnQu Cj4gPiA+ID4gPiA+ICsJCSAqLwo+ID4gPiA+ID4gPiArCQlpZiAoaW50ZWxfZGlnX3BvcnQtPnRj X3R5cGUgIT0gVENfUE9SVF9MRUdBQ1kpCj4gPiA+ID4gPiA+ICsJCQlpY2xfdGNfcGh5X2Rpc2Nv bm5lY3QoZGV2X3ByaXYsIGludGVsX2RpZ19wb3J0KTsKPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4g PiAgCQlyZXR1cm4gZmFsc2U7Cj4gPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4g PiA+IEBAIC01NTQyLDcgKzU1NDgsNyBAQCBpbnRlbF9kcF9jb25uZWN0b3JfdW5yZWdpc3Rlcihz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gPiA+ID4gPiAgCWludGVsX2Nvbm5l Y3Rvcl91bnJlZ2lzdGVyKGNvbm5lY3Rvcik7Cj4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ICAK PiA+ID4gPiA+ID4gLXZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5j b2RlciAqZW5jb2RlcikKPiA+ID4gPiA+ID4gK3ZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9mbHVzaF93 b3JrKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikKPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19k aWdfcG9ydChlbmNvZGVyKTsKPiA+ID4gPiA+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw ID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPiA+ID4gPiA+ID4gQEAgLTU1NjUsOSArNTU3MSwxNCBA QCB2b2lkIGludGVsX2RwX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIpCj4gPiA+ID4gPiA+ICAJfQo+ID4gPiA+ID4gPiAgCj4gPiA+ID4gPiA+ICAJaW50ZWxfZHBf YXV4X2ZpbmkoaW50ZWxfZHApOwo+ID4gPiA+ID4gPiArfQo+ID4gPiA+ID4gPiArCj4gPiA+ID4g PiA+ICtzdGF0aWMgdm9pZCBpbnRlbF9kcF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNv ZGVyICplbmNvZGVyKQo+ID4gPiA+ID4gPiArewo+ID4gPiA+ID4gPiArCWludGVsX2RwX2VuY29k ZXJfZmx1c2hfd29yayhlbmNvZGVyKTsKPiA+ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiAgCWRybV9l bmNvZGVyX2NsZWFudXAoZW5jb2Rlcik7Cj4gPiA+ID4gPiA+IC0Ja2ZyZWUoaW50ZWxfZGlnX3Bv cnQpOwo+ID4gPiA+ID4gPiArCWtmcmVlKGVuY190b19kaWdfcG9ydChlbmNvZGVyKSk7Cj4gPiA+ ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ICAKPiA+ID4gPiA+ID4gIHZvaWQgaW50ZWxfZHBfZW5jb2Rl cl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ID4gPiA+ID4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gPiA+ID4gPiBpbmRleCBkMDhmMDhmNjA3ZGQu Ljk3YzQyMmJlYTdmYiAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiA+ID4gPiA+ID4gQEAgLTEyMzQsNiArMTIzNCw3IEBAIHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgewo+ID4gPiA+ID4gPiAgCS8qIFVzZWQgZm9yIERQIGFuZCBJQ0wrIFR5cGVD L0RQIGFuZCBUeXBlQy9IRE1JIHBvcnRzLiAqLwo+ID4gPiA+ID4gPiAgCWVudW0gYXV4X2NoIGF1 eF9jaDsKPiA+ID4gPiA+ID4gIAllbnVtIGludGVsX2Rpc3BsYXlfcG93ZXJfZG9tYWluIGRkaV9p b19wb3dlcl9kb21haW47Cj4gPiA+ID4gPiA+ICsJYm9vbCB0Y19sZWdhY3lfcG9ydDoxOwo+ID4g PiA+ID4gPiAgCWVudW0gdGNfcG9ydF90eXBlIHRjX3R5cGU7Cj4gPiA+ID4gPiA+ICAKPiA+ID4g PiA+ID4gIAl2b2lkICgqd3JpdGVfaW5mb2ZyYW1lKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiA+ID4gPiA+ID4gQEAgLTE4MDYsNyArMTgwNyw3IEBAIHZvaWQgaW50ZWxfZHBfc2lu a19zZXRfZGVjb21wcmVzc2lvbl9zdGF0ZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4g PiA+ID4gPiAgCQkJCQkgICBib29sIGVuYWJsZSk7Cj4gPiA+ID4gPiA+ICB2b2lkIGludGVsX2Rw X2VuY29kZXJfcmVzZXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKTsKPiA+ID4gPiA+ID4g IHZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRl bF9lbmNvZGVyKTsKPiA+ID4gPiA+ID4gLXZvaWQgaW50ZWxfZHBfZW5jb2Rlcl9kZXN0cm95KHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gPiA+ID4gPiA+ICt2b2lkIGludGVsX2RwX2Vu Y29kZXJfZmx1c2hfd29yayhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ID4gPiA+ID4g PiAgYm9vbCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiA+ID4gPiA+ID4gIAkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnLAo+ID4gPiA+ID4gPiAgCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAq Y29ubl9zdGF0ZSk7Cj4gPiA+ID4gPiA+IEBAIC0xODc0LDYgKzE4NzUsOCBAQCBib29sIGludGVs X2RwX3JlYWRfZHBjZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKTsKPiA+ID4gPiA+ID4gIGlu dCBpbnRlbF9kcF9saW5rX3JlcXVpcmVkKGludCBwaXhlbF9jbG9jaywgaW50IGJwcCk7Cj4gPiA+ ID4gPiA+ICBpbnQgaW50ZWxfZHBfbWF4X2RhdGFfcmF0ZShpbnQgbWF4X2xpbmtfY2xvY2ssIGlu dCBtYXhfbGFuZXMpOwo+ID4gPiA+ID4gPiAgYm9vbCBpbnRlbF9kaWdpdGFsX3BvcnRfY29ubmVj dGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiA+ID4gPiA+ID4gK3ZvaWQgaWNs X3RjX3BoeV9kaXNjb25uZWN0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiA+ ID4gPiA+ID4gKwkJCSAgIHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKPiA+ ID4gPiA+ID4gIAo+ID4gPiA+ID4gPiAgLyogaW50ZWxfZHBfYXV4X2JhY2tsaWdodC5jICovCj4g PiA+ID4gPiA+ICBpbnQgaW50ZWxfZHBfYXV4X2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3Rvcik7Cj4gPiA+ID4gPiA+IC0tIAo+ID4gPiA+ ID4gPiAyLjEzLjIKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+ID4gPiA+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiA+ID4gPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gPiA+ ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gPiA+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gPiA+IEludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK