From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tomas Elf Subject: Re: [PATCH] drm/i915: Reserve space improvements Date: Tue, 30 Jun 2015 17:15:29 +0100 Message-ID: <5592C0A1.4040705@intel.com> References: <1435165408-15470-1-git-send-email-John.C.Harrison@Intel.com> <1435664455-12657-1-git-send-email-John.C.Harrison@Intel.com> <5592AB2C.8050303@intel.com> <5592BB83.3070001@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id A5A736E0D2 for ; Tue, 30 Jun 2015 09:15:31 -0700 (PDT) In-Reply-To: <5592BB83.3070001@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: John Harrison , Intel-GFX@Lists.FreeDesktop.Org List-Id: intel-gfx@lists.freedesktop.org T24gMzAvMDYvMjAxNSAxNjo1MywgSm9obiBIYXJyaXNvbiB3cm90ZToKPiBPbiAzMC8wNi8yMDE1 IDE1OjQzLCBUb21hcyBFbGYgd3JvdGU6Cj4+IE9uIDMwLzA2LzIwMTUgMTI6NDAsIEpvaG4uQy5I YXJyaXNvbkBJbnRlbC5jb20gd3JvdGU6Cj4+PiBGcm9tOiBKb2huIEhhcnJpc29uIDxKb2huLkMu SGFycmlzb25ASW50ZWwuY29tPgo+Pj4KPj4+IEFuIGVhcmxpZXIgcGF0Y2ggd2FzIGFkZGVkIHRv IHJlc2VydmUgc3BhY2UgaW4gdGhlIHJpbmcgYnVmZmVyIGZvciB0aGUKPj4+IGNvbW1hbmRzIGlz c3VlZCBkdXJpbmcgJ2FkZF9yZXF1ZXN0KCknLiBUaGUgaW5pdGlhbCB2ZXJzaW9uIHdhcwo+Pj4g cGVzc2ltaXN0aWMgaW4gdGhlIHdheSBpdCBoYW5kbGVkIGJ1ZmZlciB3cmFwcGluZyBhbmQgd291 bGQgY2F1c2UKPj4+IHByZW1hdHVyZSB3cmFwcyBhbmQgdGh1cyB3YXN0ZSByaW5nIHNwYWNlLgo+ Pj4KPj4+IFRoaXMgcGF0Y2ggdXBkYXRlcyB0aGUgY29kZSB0byBiZXR0ZXIgaGFuZGxlIHRoZSB3 cmFwIGNhc2UuIEl0IG5vCj4+PiBsb25nZXIgZW5mb3JjZXMgdGhhdCB0aGUgc3BhY2UgYmVpbmcg YXNrZWQgZm9yIGFuZCB0aGUgcmVzZXJ2ZWQgc3BhY2UKPj4+IGFyZSBhIHNpbmdsZSBjb250aWd1 b3VzIGJsb2NrLiBJbnN0ZWFkLCBpdCBhbGxvd3MgdGhlIHJlc2VydmUgdG8gYmUgb24KPj4+IHRo ZSBmYXIgZW5kIG9mIGEgd3JhcCBvcGVyYXRpb24uIEl0IHN0aWxsIGd1YXJhbnRlZXMgdGhhdCB0 aGUgc3BhY2UgaXMKPj4+IGF2YWlsYWJsZSBzbyB3aGVuIHRoZSB3cmFwIG9jY3Vycywgbm8gd2Fp dCB3aWxsIGhhcHBlbi4gVGh1cyB0aGUgd3JhcAo+Pj4gY2Fubm90IGZhaWwgd2hpY2ggaXMgdGhl IHdob2xlIHBvaW50IG9mIHRoZSBleGVyY2lzZS4KPj4+Cj4+PiBBbHNvIGZpeGVkIGEgbWVyZ2Ug ZmFpbHVyZSB3aXRoIHNvbWUgY29tbWVudHMgZnJvbSB0aGUgb3JpZ2luYWwgcGF0Y2guCj4+Pgo+ Pj4gdjI6IEluY29ycG9yYXRlZCBzdWdnZXN0aW9uIGJ5IERhdmlkIEdvcmRvbiB0byBtb3ZlIHRo ZSB3cmFwIGNvZGUKPj4+IGluc2lkZSB0aGUgcHJlcGFyZSBmdW5jdGlvbiBhbmQgdGh1cyBhbGxv dyBhIHNpbmdsZSBjb21iaW5lZAo+Pj4gd2FpdF9mb3Jfc3BhY2UoKSBjYWxsIHJhdGhlciB0aGFu IGRvaW5nIG9uZSBiZWZvcmUgdGhlIHdyYXAgYW5kCj4+PiBhbm90aGVyIGFmdGVyLiBUaGlzIGFs c28gbWFrZXMgdGhlIHByZXBhcmUgY29kZSBtdWNoIHNpbXBsZXIgYW5kCj4+PiBlYXNpZXIgdG8g Zm9sbG93Lgo+Pj4KPj4+IHYzOiBGaXggZm9yICdlZmZlY3RpdmVfc2l6ZScgdnMgJ3NpemUnIGR1 cmluZyByaW5nIGJ1ZmZlciByZW1haW5kZXIKPj4+IGNhbGN1bGF0aW9ucyAoc3BvdHRlZCBieSBU b21hcyBFbGYpLgo+Pj4KPj4+IEZvcjogVklaLTUxMTUKPj4+IENDOiBEYW5pZWwgVmV0dGVyIDxk YW5pZWxAZmZ3bGwuY2g+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBKb2huIEhhcnJpc29uIDxKb2huLkMu SGFycmlzb25ASW50ZWwuY29tPgo+Pj4gLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jICAgICAgICB8IDczCj4+PiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQo+Pj4g ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmMgfCA5MAo+Pj4gKysrKysr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCj4+PiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuaCB8ICA0ICstCj4+PiAgIDMgZmlsZXMgY2hhbmdlZCwgOTAgaW5zZXJ0 aW9ucygrKSwgNzcgZGVsZXRpb25zKC0pCj4+Pgo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xy Yy5jCj4+PiBpbmRleCBiMzZlMDY0Li43ZDk1MTVkIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2xyYy5jCj4+PiBAQCAtNjYzLDEyICs2NjMsMTIgQEAgc3RhdGljIGludCBsb2dpY2FsX3Jp bmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0Cj4+PiBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ Pj4gICAgICAgdW5zaWduZWQgc3BhY2U7Cj4+PiAgICAgICBpbnQgcmV0Owo+Pj4KPj4+IC0gICAg LyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0byBub3Qgd2FpdCEgKi8K Pj4+IC0gICAgV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+Pj4gLQo+Pj4gICAg ICAgaWYgKGludGVsX3Jpbmdfc3BhY2UocmluZ2J1ZikgPj0gYnl0ZXMpCj4+PiAgICAgICAgICAg cmV0dXJuIDA7Cj4+Pgo+Pj4gKyAgICAvKiBUaGUgd2hvbGUgcG9pbnQgb2YgcmVzZXJ2aW5nIHNw YWNlIGlzIHRvIG5vdCB3YWl0ISAqLwo+Pj4gKyAgICBXQVJOX09OKHJpbmdidWYtPnJlc2VydmVk X2luX3VzZSk7Cj4+PiArCj4+PiAgICAgICBsaXN0X2Zvcl9lYWNoX2VudHJ5KHRhcmdldCwgJnJp bmctPnJlcXVlc3RfbGlzdCwgbGlzdCkgewo+Pj4gICAgICAgICAgIC8qCj4+PiAgICAgICAgICAg ICogVGhlIHJlcXVlc3QgcXVldWUgaXMgcGVyLWVuZ2luZSwgc28gY2FuIGNvbnRhaW4gcmVxdWVz dHMKPj4+IEBAIC03MTgsMjIgKzcxOCwxMSBAQCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9h bmRfc3VibWl0KHN0cnVjdAo+Pj4gZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcXVlc3QpCj4+PiAg ICAgICBleGVjbGlzdHNfY29udGV4dF9xdWV1ZShyZXF1ZXN0KTsKPj4+ICAgfQo+Pj4KPj4+IC1z dGF0aWMgaW50IGxvZ2ljYWxfcmluZ193cmFwX2J1ZmZlcihzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3Jl cXVlc3QgKnJlcSkKPj4+ICtzdGF0aWMgdm9pZCBfX3dyYXBfcmluZ19idWZmZXIoc3RydWN0IGlu dGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4+PiAgIHsKPj4+IC0gICAgc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWYgPSByZXEtPnJpbmdidWY7Cj4+PiAgICAgICB1aW50MzJfdCBfX2lv bWVtICp2aXJ0Owo+Pj4gICAgICAgaW50IHJlbSA9IHJpbmdidWYtPnNpemUgLSByaW5nYnVmLT50 YWlsOwo+Pj4KPj4+IC0gICAgLyogQ2FuJ3Qgd3JhcCBpZiBzcGFjZSBoYXMgYWxyZWFkeSBiZWVu IHJlc2VydmVkISAqLwo+Pj4gLSAgICBXQVJOX09OKHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSk7 Cj4+PiAtCj4+PiAtICAgIGlmIChyaW5nYnVmLT5zcGFjZSA8IHJlbSkgewo+Pj4gLSAgICAgICAg aW50IHJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShyZXEsIHJlbSk7Cj4+PiAtCj4+ PiAtICAgICAgICBpZiAocmV0KQo+Pj4gLSAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+PiAtICAg IH0KPj4+IC0KPj4+ICAgICAgIHZpcnQgPSByaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ICsgcmluZ2J1 Zi0+dGFpbDsKPj4+ICAgICAgIHJlbSAvPSA0Owo+Pj4gICAgICAgd2hpbGUgKHJlbS0tKQo+Pj4g QEAgLTc0MSw0MCArNzMwLDUwIEBAIHN0YXRpYyBpbnQgbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVy KHN0cnVjdAo+Pj4gZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSkKPj4+Cj4+PiAgICAgICByaW5n YnVmLT50YWlsID0gMDsKPj4+ICAgICAgIGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdidWYp Owo+Pj4gLQo+Pj4gLSAgICByZXR1cm4gMDsKPj4+ICAgfQo+Pj4KPj4+ICAgc3RhdGljIGludCBs b2dpY2FsX3JpbmdfcHJlcGFyZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3QgKnJlcSwKPj4+ IGludCBieXRlcykKPj4+ICAgewo+Pj4gICAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJp bmdidWYgPSByZXEtPnJpbmdidWY7Cj4+PiAtICAgIGludCByZXQ7Cj4+PiAtCj4+PiAtICAgIC8q Cj4+PiAtICAgICAqIEFkZCBvbiB0aGUgcmVzZXJ2ZWQgc2l6ZSB0byB0aGUgcmVxdWVzdCB0byBt YWtlIHN1cmUgdGhhdCBhZnRlcgo+Pj4gLSAgICAgKiB0aGUgaW50ZW5kZWQgY29tbWFuZHMgaGF2 ZSBiZWVuIGVtaXR0ZWQsIHRoZXJlIGlzIGd1YXJhbnRlZWQgdG8KPj4+IC0gICAgICogc3RpbGwg YmUgZW5vdWdoIGZyZWUgc3BhY2UgdG8gc2VuZCB0aGVtIHRvIHRoZSBoYXJkd2FyZS4KPj4+IC0g ICAgICovCj4+PiAtICAgIGlmICghcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKQo+Pj4gLSAgICAg ICAgYnl0ZXMgKz0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZTsKPj4+IC0KPj4+IC0gICAgaWYgKHVu bGlrZWx5KHJpbmdidWYtPnRhaWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkg ewo+Pj4gLSAgICAgICAgcmV0ID0gbG9naWNhbF9yaW5nX3dyYXBfYnVmZmVyKHJlcSk7Cj4+PiAt ICAgICAgICBpZiAodW5saWtlbHkocmV0KSkKPj4+IC0gICAgICAgICAgICByZXR1cm4gcmV0Owo+ Pj4gKyAgICBpbnQgcmVtYWluX3VzYWJsZSA9IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplIC0gcmlu Z2J1Zi0+dGFpbDsKPj4+ICsgICAgaW50IHJlbWFpbl9hY3R1YWwgPSByaW5nYnVmLT5zaXplIC0g cmluZ2J1Zi0+dGFpbDsKPj4KPj4gWW91IGNvdWxkIGFkZCBhIGNvbW1lbnQgaGVyZSAoYW5kIGlu IHRoZSBsZWdhY3kgaW1wbGVtZW50YXRpb24pCj4+IGV4cGxhaW5pbmcgd2h5IHdlIG1ha2UgdGhl IGRpc3RpbmN0aW9uIGJldHdlZW4gcmVtYWluX3VzYWJsZSBhbmQKPj4gcmVtYWluX2FjdHVhbC4g T3IgeW91IGNvdWxkIGFkZCB0aGUgY29tbWVudCB3aGVuIHdlIGFjdHVhbGx5IHVzZQo+PiByZW1h aW5fYWN0dWFsIGZ1cnRoZXIgZG93biBpbiB0aGUgZnVuY3Rpb24uIEl0J3MgdXAgdG8geW91Lgo+ Pgo+PiBXZSBmaXJzdCBuZWVkIHRvIGJlIHBlc3NpbWlzdGljIGFib3V0IGhvdyBtdWNoIHNwYWNl IGlzIGxlZnQgaW4gdGhlCj4+IHJpbmcgYnVmZmVyIHdoZW4gZGV0ZXJtaW5pbmcgdGhlIG5lZWQg Zm9yIHdyYXBwaW5nIC0gdGhlcmVmb3JlIHdlIHVzZQo+PiByZW1haW5fdXNhYmxlLCB3aGljaCBk aXNyZWdhcmRzIHRoZSBlbmQtb2YtYnVmZmVyIHBhZGRpbmcgLSBhbmQgdGhlbgo+PiB3ZSBuZWVk IHRvIGJlIHBlc3NpbWlzdGljIGFib3V0IGhvdyBtdWNoIHJpbmcgc3BhY2Ugd2UgbmVlZCB0byB3 YWl0Cj4+IGZvciAtIHRoZXJlZm9yZSB3ZSB1c2UgcmVtYWluX2FjdHVhbCwgd2hpY2ggdGFrZXMg dGhlIGVuZC1vZi1idWZmZXIKPj4gcGFkZGluZyBpbnRvIGNvbnNpZGVyYXRpb24gdG8gbWFrZSBz dXJlIHRoYXQgd2UncmUgYWN0dWFsbHkgbm90Cj4+IHdhaXRpbmcgZm9yIHRvbyBsaXR0bGUgc3Bh Y2UuCj4KPiBJdCdzIG5vdCBhYm91dCBiZWluZyBwZXNzaW1pc3RpYyBvciBvcHRpbWlzdGljLiBU aGF0IGltcGxpZXMgdGhlcmUgaXMKPiBzb21lIGNob2ljZSwgdGhhdCBvbmUgdmVyc2lvbiBpcyBh IGxpdHRsZSBiaXQgYmV0dGVyIGluIG9uZSBzaXR1YXRpb24KPiBidXQgZWl0aGVyIHdvdWxkIGRv LiBXaGVyZWFzIHRoaXMgaXMgYWJvdXQgZnVuY3Rpb25hbCBjb3JyZWN0bmVzcy4gVGhlCj4gZGlm ZmVyZW5jZSBiZXR3ZWVuIHRoZSBhY3R1YWwgcmluZyBzaXplIGFuZCB0aGUgdXNhYmxlIHJpbmcg c2l6ZSBpcyBub3QKPiBzb21lIHJlc2VydmVkIHNwYWNlIHRoaW5nIHRvIG1ha2Ugc29tZXRoaW5n IGdvIGZhc3Rlci4gVGhpcyBpcyBhYm91dCB0aGUKPiBoYXJkd2FyZSBsb2NraW5nIHVwIGlmIHRo ZSBlbnRpcmUgYnVmZmVyIGlzIHVzZWQuIEkgdGhpbmsgJ3VzYWJsZScgYW5kCj4gJ2FjdHVhbCcg YXJlIGZhaXJseSBvYnZpb3VzIG5hbWVzLiBJZiB5b3Ugd2FudCB0byBrbm93IHRoZSBkZXRhaWxz IGFib3V0Cj4gd2h5IHRoZXJlIGlzIGFuICdlZmZlY3RpdmVfc2l6ZScgaW4gdGhlIGZpcnN0IHBs YWNlIHRoZW4gbG9vayB1cAo+ICdlZmZlY3RpdmVfc2l6ZScgaW4gdGhlIGNvZGUgYW5kIHJlYWQg dGhlIGNvbW1lbnQgYWJvdXQgaTgzMCBoYW5ncy4KCllvdSdyZSBwcm9iYWJseSByaWdodC4gTGV0 J3MganVzdCBmb3JnZXQgYWJvdXQgaXQuCgo+Cj4+IElmIHlvdSBhZGQgdGhvc2UgY29tbWVudHMg bWF5YmUgeW91IGNvdWxkIGFsc28gcmVuYW1lIHRoZSB2YXJpYWJsZXMgdG8KPj4gc29tZXRoaW5n IGxpa2UgInJlbWFpbmluZ19zcGFjZV91c2FibGUiIGV0Yy4gc2luY2UgInJlbWFpbl91c2FibGUi IGlzCj4+IG1vcmUgb2YgYSB2ZXJiIHRoYW4gYSBub3VuLiBCdXQgdGhhdCdzIHNlcmlvdXNseSBu aXRwaWNraW5nLgo+IE9yIG1heWJlCj4gJ3JlbWFpbmluZ19zcGFjZV90aGF0X2lzX3VzYWJsZV93 aXRob3V0X2NhdXNpbmdfYW5faTgzMF90b19oYW5nX2JlY2F1c2VfaXRfc2tpcHNfdGhlX2xhc3Rf dHdvX2NhY2hlbGluZXMnPwo+IFRoZXJlIGlzIHN1Y2ggYSB0aGluZyBhcyBiZWluZyB0b28gdmVy Ym9zZSBhbmQgbWFraW5nIHRoZSBjb2RlIGhhcmQgdG8KPiByZWFkLgoKVGhhdCBpcyBpbmRlZWQg YSB2ZXJ5IGxvbmcgdmFyaWFibGUgbmFtZS4gSXQncyAxMDQgY2hhcmFjdGVycyBsb25nIHNvIAp0 aGF0IHdvdWxkbid0IGNsZWFyIGNoZWNrcGF0Y2gucGwgOikuIE15IG5pdHBpY2t5IHN1Z2dlc3Rp b24gd2FzIDkgCmNoYXJhY3RlcnMgbG9uZ2VyLiBBbmQsIHllYWgsIGl0J3MgcG9zc2libGUgdG8g Z2V0IHRvbyB2ZXJib3NlLiBUaGlzIApkcml2ZXIgaXMgbm90IGV2ZW4gcmVtb3RlbHkgY2xvc2Ug dG8gdGhhdCBwb2ludCBhcyBpdCBzdGFuZHMgdG9kYXkgOikuCgpUaGFua3MsClRvbWFzCgo+Cj4K Pj4gSWYgeW91IGF0IGxlYXN0IGFkZCB0aGUgY29tbWVudHMgdG8gbWFrZSBpdCBjcnlzdGFsIGNs ZWFyIHdoeSB3ZSBkbyBpdAo+PiB0aGlzIHdheSB0aGVuIEknbSBmaW5lLgo+Cj4gSSBkb24ndCBz ZWUgd2hhdCBjb21tZW50IGNvdWxkIGJlIGFkZGVkIHRoYXQgd291bGQgYWN0dWFsbHkgbWFrZSB0 aGluZ3MKPiBjbGVhcmVyIHdpdGhvdXQgYmVpbmcgYSBsb25nIGFuZCB1bm5lY2Vzc2FyeSBkZXNj cmlwdGlvbiBvZiB0aGUgaTgzMAo+IGlzc3VlLiBUaGVyZSBhcmUgdHdvIHZhcmlhYmxlcyBkZWNs YXJlZCBvbiBjb25zZWN1dGl2ZSBsaW5lcyB0aGF0IGNhY2hlCj4gcHJldHR5IHNpbXBsZSBjYWxj dWxhdGlvbnMgYW5kIGhhdmUgZmFpcmx5IGNsZWFyIG5hbWVzLiBJdCBsb29rcyBxdWl0ZQo+IHNl bGYgZXhwbGFuYXRvcnkgdG8gbWUhIFRoZSBjb2RlIHRoZW4gdGVzdHMgdG8gc2VlIGlmIGl0IGNh biB1c2UgdGhlCj4gdXNhYmxlIHNwYWNlLCBpZiBub3QgdGhlbiBpdCB3cmFwcyBhcm91bmQgdGhl IGFjdHVhbCBidWZmZXIgc2l6ZS4gQWdhaW4sCj4gc2VlbXMgcHJldHR5IG9idmlvdXMgYXMgdG8g d2hhdCBpcyBnb2luZyBvbiBhbmQgd2h5IC0geW91IGNhbiBvbmx5IHVzZQo+IHRoZSB1c2FibGUg Yml0LCBidXQgd2hlbiB0cmF2ZXJzaW5nIHRoZSB3aG9sZSBidWZmZXIgeW91IHByZXR0eQo+IG9i dmlvdXNseSBuZWVkIHRvIHRyYXZlcnNlIHRoZSB3aG9sZSBidWZmZXIgbm90IGp1c3QgdGhlIHBh cnQgdGhhdCBtYXkKPiBvciBtYXkgbm90IGhhdmUgYmVlbiB1c2VkLgo+Cj4KPj4KPj4gUmV2aWV3 ZWQtYnk6IFRvbWFzIEVsZiA8dG9tYXMuZWxmQGludGVsLmNvbT4KPj4KPj4gVGhhbmtzLAo+PiBU b21hcwo+Pgo+Pj4gKyAgICBpbnQgcmV0LCB0b3RhbF9ieXRlcywgd2FpdF9ieXRlcyA9IDA7Cj4+ PiArICAgIGJvb2wgbmVlZF93cmFwID0gZmFsc2U7Cj4+Pgo+Pj4gLSAgICAgICAgaWYocmluZ2J1 Zi0+cmVzZXJ2ZWRfc2l6ZSkgewo+Pj4gLSAgICAgICAgICAgIHVpbnQzMl90IHNpemUgPSByaW5n YnVmLT5yZXNlcnZlZF9zaXplOwo+Pj4gKyAgICBpZiAocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNl KQo+Pj4gKyAgICAgICAgdG90YWxfYnl0ZXMgPSBieXRlczsKPj4+ICsgICAgZWxzZQo+Pj4gKyAg ICAgICAgdG90YWxfYnl0ZXMgPSBieXRlcyArIHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4+Pgo+ Pj4gLSAgICAgICAgICAgIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJpbmdidWYp Owo+Pj4gLSAgICAgICAgICAgIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShyaW5n YnVmLCBzaXplKTsKPj4+ICsgICAgaWYgKHVubGlrZWx5KGJ5dGVzID4gcmVtYWluX3VzYWJsZSkp IHsKPj4+ICsgICAgICAgIC8qCj4+PiArICAgICAgICAgKiBOb3QgZW5vdWdoIHNwYWNlIGZvciB0 aGUgYmFzaWMgcmVxdWVzdC4gU28gbmVlZCB0byBmbHVzaAo+Pj4gKyAgICAgICAgICogb3V0IHRo ZSByZW1haW5kZXIgYW5kIHRoZW4gd2FpdCBmb3IgYmFzZSArIHJlc2VydmVkLgo+Pj4gKyAgICAg ICAgICovCj4+PiArICAgICAgICB3YWl0X2J5dGVzID0gcmVtYWluX2FjdHVhbCArIHRvdGFsX2J5 dGVzOwo+Pj4gKyAgICAgICAgbmVlZF93cmFwID0gdHJ1ZTsKPj4+ICsgICAgfSBlbHNlIHsKPj4+ ICsgICAgICAgIGlmICh1bmxpa2VseSh0b3RhbF9ieXRlcyA+IHJlbWFpbl91c2FibGUpKSB7Cj4+ PiArICAgICAgICAgICAgLyoKPj4+ICsgICAgICAgICAgICAgKiBUaGUgYmFzZSByZXF1ZXN0IHdp bGwgZml0IGJ1dCB0aGUgcmVzZXJ2ZWQgc3BhY2UKPj4+ICsgICAgICAgICAgICAgKiBmYWxscyBv ZmYgdGhlIGVuZC4gU28gb25seSBuZWVkIHRvIHRvIHdhaXQgZm9yIHRoZQo+Pj4gKyAgICAgICAg ICAgICAqIHJlc2VydmVkIHNpemUgYWZ0ZXIgZmx1c2hpbmcgb3V0IHRoZSByZW1haW5kZXIuCj4+ PiArICAgICAgICAgICAgICovCj4+PiArICAgICAgICAgICAgd2FpdF9ieXRlcyA9IHJlbWFpbl9h Y3R1YWwgKyByaW5nYnVmLT5yZXNlcnZlZF9zaXplOwo+Pj4gKyAgICAgICAgICAgIG5lZWRfd3Jh cCA9IHRydWU7Cj4+PiArICAgICAgICB9IGVsc2UgaWYgKHRvdGFsX2J5dGVzID4gcmluZ2J1Zi0+ c3BhY2UpIHsKPj4+ICsgICAgICAgICAgICAvKiBObyB3cmFwcGluZyByZXF1aXJlZCwganVzdCB3 YWl0aW5nLiAqLwo+Pj4gKyAgICAgICAgICAgIHdhaXRfYnl0ZXMgPSB0b3RhbF9ieXRlczsKPj4+ ICAgICAgICAgICB9Cj4+PiAgICAgICB9Cj4+Pgo+Pj4gLSAgICBpZiAodW5saWtlbHkocmluZ2J1 Zi0+c3BhY2UgPCBieXRlcykpIHsKPj4+IC0gICAgICAgIHJldCA9IGxvZ2ljYWxfcmluZ193YWl0 X2Zvcl9zcGFjZShyZXEsIGJ5dGVzKTsKPj4+ICsgICAgaWYgKHdhaXRfYnl0ZXMpIHsKPj4+ICsg ICAgICAgIHJldCA9IGxvZ2ljYWxfcmluZ193YWl0X2Zvcl9zcGFjZShyZXEsIHdhaXRfYnl0ZXMp Owo+Pj4gICAgICAgICAgIGlmICh1bmxpa2VseShyZXQpKQo+Pj4gICAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+Pj4gKwo+Pj4gKyAgICAgICAgaWYgKG5lZWRfd3JhcCkKPj4+ICsgICAgICAgICAg ICBfX3dyYXBfcmluZ19idWZmZXIocmluZ2J1Zik7Cj4+PiAgICAgICB9Cj4+Pgo+Pj4gICAgICAg cmV0dXJuIDA7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5jCj4+PiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+ Pj4gaW5kZXggYWY3YzEyZS4uZTM5Yzg5MSAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYwo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5jCj4+PiBAQCAtMjEyMSwxMiArMjEyMSwxMiBAQCBzdGF0aWMgaW50 IHJpbmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0Cj4+PiBpbnRlbF9lbmdpbmVfY3MgKnJpbmcsIGlu dCBuKQo+Pj4gICAgICAgdW5zaWduZWQgc3BhY2U7Cj4+PiAgICAgICBpbnQgcmV0Owo+Pj4KPj4+ IC0gICAgLyogVGhlIHdob2xlIHBvaW50IG9mIHJlc2VydmluZyBzcGFjZSBpcyB0byBub3Qgd2Fp dCEgKi8KPj4+IC0gICAgV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+Pj4gLQo+ Pj4gICAgICAgaWYgKGludGVsX3Jpbmdfc3BhY2UocmluZ2J1ZikgPj0gbikKPj4+ICAgICAgICAg ICByZXR1cm4gMDsKPj4+Cj4+PiArICAgIC8qIFRoZSB3aG9sZSBwb2ludCBvZiByZXNlcnZpbmcg c3BhY2UgaXMgdG8gbm90IHdhaXQhICovCj4+PiArICAgIFdBUk5fT04ocmluZ2J1Zi0+cmVzZXJ2 ZWRfaW5fdXNlKTsKPj4+ICsKPj4+ICAgICAgIGxpc3RfZm9yX2VhY2hfZW50cnkocmVxdWVzdCwg JnJpbmctPnJlcXVlc3RfbGlzdCwgbGlzdCkgewo+Pj4gICAgICAgICAgIHNwYWNlID0gX19pbnRl bF9yaW5nX3NwYWNlKHJlcXVlc3QtPnBvc3RmaXgsIHJpbmdidWYtPnRhaWwsCj4+PiAgICAgICAg ICAgICAgICAgICAgICAgICAgcmluZ2J1Zi0+c2l6ZSk7Cj4+PiBAQCAtMjE0NSwyMSArMjE0NSwx MSBAQCBzdGF0aWMgaW50IHJpbmdfd2FpdF9mb3Jfc3BhY2Uoc3RydWN0Cj4+PiBpbnRlbF9lbmdp bmVfY3MgKnJpbmcsIGludCBuKQo+Pj4gICAgICAgcmV0dXJuIDA7Cj4+PiAgIH0KPj4+Cj4+PiAt c3RhdGljIGludCBpbnRlbF93cmFwX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KnJpbmcpCj4+PiArc3RhdGljIHZvaWQgX193cmFwX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9y aW5nYnVmZmVyICpyaW5nYnVmKQo+Pj4gICB7Cj4+PiAgICAgICB1aW50MzJfdCBfX2lvbWVtICp2 aXJ0Owo+Pj4gLSAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZiA9IHJpbmctPmJ1 ZmZlcjsKPj4+ICAgICAgIGludCByZW0gPSByaW5nYnVmLT5zaXplIC0gcmluZ2J1Zi0+dGFpbDsK Pj4+Cj4+PiAtICAgIC8qIENhbid0IHdyYXAgaWYgc3BhY2UgaGFzIGFscmVhZHkgYmVlbiByZXNl cnZlZCEgKi8KPj4+IC0gICAgV0FSTl9PTihyaW5nYnVmLT5yZXNlcnZlZF9pbl91c2UpOwo+Pj4g LQo+Pj4gLSAgICBpZiAocmluZ2J1Zi0+c3BhY2UgPCByZW0pIHsKPj4+IC0gICAgICAgIGludCBy ZXQgPSByaW5nX3dhaXRfZm9yX3NwYWNlKHJpbmcsIHJlbSk7Cj4+PiAtICAgICAgICBpZiAocmV0 KQo+Pj4gLSAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+PiAtICAgIH0KPj4+IC0KPj4+ICAgICAg IHZpcnQgPSByaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ICsgcmluZ2J1Zi0+dGFpbDsKPj4+ICAgICAg IHJlbSAvPSA0Owo+Pj4gICAgICAgd2hpbGUgKHJlbS0tKQo+Pj4gQEAgLTIxNjcsOCArMjE1Nyw2 IEBAIHN0YXRpYyBpbnQgaW50ZWxfd3JhcF9yaW5nX2J1ZmZlcihzdHJ1Y3QKPj4+IGludGVsX2Vu Z2luZV9jcyAqcmluZykKPj4+Cj4+PiAgICAgICByaW5nYnVmLT50YWlsID0gMDsKPj4+ICAgICAg IGludGVsX3JpbmdfdXBkYXRlX3NwYWNlKHJpbmdidWYpOwo+Pj4gLQo+Pj4gLSAgICByZXR1cm4g MDsKPj4+ICAgfQo+Pj4KPj4+ICAgaW50IGludGVsX3JpbmdfaWRsZShzdHJ1Y3QgaW50ZWxfZW5n aW5lX2NzICpyaW5nKQo+Pj4gQEAgLTIyMzgsOSArMjIyNiwyMSBAQCB2b2lkIGludGVsX3Jpbmdf cmVzZXJ2ZWRfc3BhY2VfdXNlKHN0cnVjdAo+Pj4gaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikK Pj4+ICAgdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2VuZChzdHJ1Y3QgaW50ZWxfcmlu Z2J1ZmZlciAqcmluZ2J1ZikKPj4+ICAgewo+Pj4gICAgICAgV0FSTl9PTighcmluZ2J1Zi0+cmVz ZXJ2ZWRfaW5fdXNlKTsKPj4+IC0gICAgV0FSTihyaW5nYnVmLT50YWlsID4gcmluZ2J1Zi0+cmVz ZXJ2ZWRfdGFpbCArCj4+PiByaW5nYnVmLT5yZXNlcnZlZF9zaXplLAo+Pj4gLSAgICAgICAgICJy ZXF1ZXN0IHJlc2VydmVkIHNpemUgdG9vIHNtYWxsOiAlZCB2cyAlZCFcbiIsCj4+PiAtICAgICAg ICAgcmluZ2J1Zi0+dGFpbCAtIHJpbmdidWYtPnJlc2VydmVkX3RhaWwsCj4+PiByaW5nYnVmLT5y ZXNlcnZlZF9zaXplKTsKPj4+ICsgICAgaWYgKHJpbmdidWYtPnRhaWwgPiByaW5nYnVmLT5yZXNl cnZlZF90YWlsKSB7Cj4+PiArICAgICAgICBXQVJOKHJpbmdidWYtPnRhaWwgPiByaW5nYnVmLT5y ZXNlcnZlZF90YWlsICsKPj4+IHJpbmdidWYtPnJlc2VydmVkX3NpemUsCj4+PiArICAgICAgICAg ICAgICJyZXF1ZXN0IHJlc2VydmVkIHNpemUgdG9vIHNtYWxsOiAlZCB2cyAlZCFcbiIsCj4+PiAr ICAgICAgICAgICAgIHJpbmdidWYtPnRhaWwgLSByaW5nYnVmLT5yZXNlcnZlZF90YWlsLAo+Pj4g cmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZSk7Cj4+PiArICAgIH0gZWxzZSB7Cj4+PiArICAgICAgICAv Kgo+Pj4gKyAgICAgICAgICogVGhlIHJpbmcgd2FzIHdyYXBwZWQgd2hpbGUgdGhlIHJlc2VydmVk IHNwYWNlIHdhcyBpbiB1c2UuCj4+PiArICAgICAgICAgKiBUaGF0IG1lYW5zIHRoYXQgc29tZSB1 bmtub3duIGFtb3VudCBvZiB0aGUgcmluZyB0YWlsIHdhcwo+Pj4gKyAgICAgICAgICogbm8tb3Ag ZmlsbGVkIGFuZCBza2lwcGVkLiBUaHVzIHNpbXBseSBhZGRpbmcgdGhlIHJpbmcgc2l6ZQo+Pj4g KyAgICAgICAgICogdG8gdGhlIHRhaWwgYW5kIGRvaW5nIHRoZSBhYm92ZSBzcGFjZSBjaGVjayB3 aWxsIG5vdCB3b3JrLgo+Pj4gKyAgICAgICAgICogUmF0aGVyIHRoYW4gYXR0ZW1wdCB0byB0cmFj ayBob3cgbXVjaCB0YWlsIHdhcyBza2lwcGVkLAo+Pj4gKyAgICAgICAgICogaXQgaXMgbXVjaCBz aW1wbGVyIHRvIHNheSB0aGF0IGFsc28gc2tpcHBpbmcgdGhlIHNhbml0eQo+Pj4gKyAgICAgICAg ICogY2hlY2sgZXZlcnkgb25jZSBpbiBhIHdoaWxlIGlzIG5vdCBhIGJpZyBpc3N1ZS4KPj4+ICsg ICAgICAgICAqLwo+Pj4gKyAgICB9Cj4+Pgo+Pj4gICAgICAgcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6 ZSAgID0gMDsKPj4+ICAgICAgIHJpbmdidWYtPnJlc2VydmVkX2luX3VzZSA9IGZhbHNlOwo+Pj4g QEAgLTIyNDksMzMgKzIyNDksNDUgQEAgdm9pZCBpbnRlbF9yaW5nX3Jlc2VydmVkX3NwYWNlX2Vu ZChzdHJ1Y3QKPj4+IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpCj4+PiAgIHN0YXRpYyBpbnQg X19pbnRlbF9yaW5nX3ByZXBhcmUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZywgaW50Cj4+ PiBieXRlcykKPj4+ICAgewo+Pj4gICAgICAgc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdi dWYgPSByaW5nLT5idWZmZXI7Cj4+PiAtICAgIGludCByZXQ7Cj4+PiAtCj4+PiAtICAgIC8qCj4+ PiAtICAgICAqIEFkZCBvbiB0aGUgcmVzZXJ2ZWQgc2l6ZSB0byB0aGUgcmVxdWVzdCB0byBtYWtl IHN1cmUgdGhhdCBhZnRlcgo+Pj4gLSAgICAgKiB0aGUgaW50ZW5kZWQgY29tbWFuZHMgaGF2ZSBi ZWVuIGVtaXR0ZWQsIHRoZXJlIGlzIGd1YXJhbnRlZWQgdG8KPj4+IC0gICAgICogc3RpbGwgYmUg ZW5vdWdoIGZyZWUgc3BhY2UgdG8gc2VuZCB0aGVtIHRvIHRoZSBoYXJkd2FyZS4KPj4+IC0gICAg ICovCj4+PiAtICAgIGlmICghcmluZ2J1Zi0+cmVzZXJ2ZWRfaW5fdXNlKQo+Pj4gLSAgICAgICAg Ynl0ZXMgKz0gcmluZ2J1Zi0+cmVzZXJ2ZWRfc2l6ZTsKPj4+IC0KPj4+IC0gICAgaWYgKHVubGlr ZWx5KHJpbmdidWYtPnRhaWwgKyBieXRlcyA+IHJpbmdidWYtPmVmZmVjdGl2ZV9zaXplKSkgewo+ Pj4gLSAgICAgICAgcmV0ID0gaW50ZWxfd3JhcF9yaW5nX2J1ZmZlcihyaW5nKTsKPj4+IC0gICAg ICAgIGlmICh1bmxpa2VseShyZXQpKQo+Pj4gLSAgICAgICAgICAgIHJldHVybiByZXQ7Cj4+PiAr ICAgIGludCByZW1haW5fdXNhYmxlID0gcmluZ2J1Zi0+ZWZmZWN0aXZlX3NpemUgLSByaW5nYnVm LT50YWlsOwo+Pj4gKyAgICBpbnQgcmVtYWluX2FjdHVhbCA9IHJpbmdidWYtPnNpemUgLSByaW5n YnVmLT50YWlsOwo+Pj4gKyAgICBpbnQgcmV0LCB0b3RhbF9ieXRlcywgd2FpdF9ieXRlcyA9IDA7 Cj4+PiArICAgIGJvb2wgbmVlZF93cmFwID0gZmFsc2U7Cj4+Pgo+Pj4gLSAgICAgICAgaWYocmlu Z2J1Zi0+cmVzZXJ2ZWRfc2l6ZSkgewo+Pj4gLSAgICAgICAgICAgIHVpbnQzMl90IHNpemUgPSBy aW5nYnVmLT5yZXNlcnZlZF9zaXplOwo+Pj4gKyAgICBpZiAocmluZ2J1Zi0+cmVzZXJ2ZWRfaW5f dXNlKQo+Pj4gKyAgICAgICAgdG90YWxfYnl0ZXMgPSBieXRlczsKPj4+ICsgICAgZWxzZQo+Pj4g KyAgICAgICAgdG90YWxfYnl0ZXMgPSBieXRlcyArIHJpbmdidWYtPnJlc2VydmVkX3NpemU7Cj4+ Pgo+Pj4gLSAgICAgICAgICAgIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHJpbmdi dWYpOwo+Pj4gLSAgICAgICAgICAgIGludGVsX3JpbmdfcmVzZXJ2ZWRfc3BhY2VfcmVzZXJ2ZShy aW5nYnVmLCBzaXplKTsKPj4+ICsgICAgaWYgKHVubGlrZWx5KGJ5dGVzID4gcmVtYWluX3VzYWJs ZSkpIHsKPj4+ICsgICAgICAgIC8qCj4+PiArICAgICAgICAgKiBOb3QgZW5vdWdoIHNwYWNlIGZv ciB0aGUgYmFzaWMgcmVxdWVzdC4gU28gbmVlZCB0byBmbHVzaAo+Pj4gKyAgICAgICAgICogb3V0 IHRoZSByZW1haW5kZXIgYW5kIHRoZW4gd2FpdCBmb3IgYmFzZSArIHJlc2VydmVkLgo+Pj4gKyAg ICAgICAgICovCj4+PiArICAgICAgICB3YWl0X2J5dGVzID0gcmVtYWluX2FjdHVhbCArIHRvdGFs X2J5dGVzOwo+Pj4gKyAgICAgICAgbmVlZF93cmFwID0gdHJ1ZTsKPj4+ICsgICAgfSBlbHNlIHsK Pj4+ICsgICAgICAgIGlmICh1bmxpa2VseSh0b3RhbF9ieXRlcyA+IHJlbWFpbl91c2FibGUpKSB7 Cj4+PiArICAgICAgICAgICAgLyoKPj4+ICsgICAgICAgICAgICAgKiBUaGUgYmFzZSByZXF1ZXN0 IHdpbGwgZml0IGJ1dCB0aGUgcmVzZXJ2ZWQgc3BhY2UKPj4+ICsgICAgICAgICAgICAgKiBmYWxs cyBvZmYgdGhlIGVuZC4gU28gb25seSBuZWVkIHRvIHRvIHdhaXQgZm9yIHRoZQo+Pj4gKyAgICAg ICAgICAgICAqIHJlc2VydmVkIHNpemUgYWZ0ZXIgZmx1c2hpbmcgb3V0IHRoZSByZW1haW5kZXIu Cj4+PiArICAgICAgICAgICAgICovCj4+PiArICAgICAgICAgICAgd2FpdF9ieXRlcyA9IHJlbWFp bl9hY3R1YWwgKyByaW5nYnVmLT5yZXNlcnZlZF9zaXplOwo+Pj4gKyAgICAgICAgICAgIG5lZWRf d3JhcCA9IHRydWU7Cj4+PiArICAgICAgICB9IGVsc2UgaWYgKHRvdGFsX2J5dGVzID4gcmluZ2J1 Zi0+c3BhY2UpIHsKPj4+ICsgICAgICAgICAgICAvKiBObyB3cmFwcGluZyByZXF1aXJlZCwganVz dCB3YWl0aW5nLiAqLwo+Pj4gKyAgICAgICAgICAgIHdhaXRfYnl0ZXMgPSB0b3RhbF9ieXRlczsK Pj4+ICAgICAgICAgICB9Cj4+PiAgICAgICB9Cj4+Pgo+Pj4gLSAgICBpZiAodW5saWtlbHkocmlu Z2J1Zi0+c3BhY2UgPCBieXRlcykpIHsKPj4+IC0gICAgICAgIHJldCA9IHJpbmdfd2FpdF9mb3Jf c3BhY2UocmluZywgYnl0ZXMpOwo+Pj4gKyAgICBpZiAod2FpdF9ieXRlcykgewo+Pj4gKyAgICAg ICAgcmV0ID0gcmluZ193YWl0X2Zvcl9zcGFjZShyaW5nLCB3YWl0X2J5dGVzKTsKPj4+ICAgICAg ICAgICBpZiAodW5saWtlbHkocmV0KSkKPj4+ICAgICAgICAgICAgICAgcmV0dXJuIHJldDsKPj4+ ICsKPj4+ICsgICAgICAgIGlmIChuZWVkX3dyYXApCj4+PiArICAgICAgICAgICAgX193cmFwX3Jp bmdfYnVmZmVyKHJpbmdidWYpOwo+Pj4gICAgICAgfQo+Pj4KPj4+ICAgICAgIHJldHVybiAwOwo+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+ Pj4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPj4+IGluZGV4IDBl MmJiYzYuLjMwNGNhYzQgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmgKPj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jpbmdi dWZmZXIuaAo+Pj4gQEAgLTQ3Myw3ICs0NzMsNiBAQCBzdGF0aWMgaW5saW5lIHUzMiBpbnRlbF9y aW5nX2dldF90YWlsKHN0cnVjdAo+Pj4gaW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPj4+ICAg ICogd2lsbCBhbHdheXMgaGF2ZSBzdWZmaWNpZW50IHJvb20gdG8gZG8gaXRzIHN0dWZmLiBUaGUg cmVxdWVzdAo+Pj4gY3JlYXRpb24KPj4+ICAgICogY29kZSBjYWxscyB0aGlzIGF1dG9tYXRpY2Fs bHkuCj4+PiAgICAqLwo+Pj4gLWludCBpbnRlbF9yaW5nX3Jlc2VydmVfc3BhY2Uoc3RydWN0IGRy bV9pOTE1X2dlbV9yZXF1ZXN0ICpyZXF1ZXN0KTsKPj4+ICAgdm9pZCBpbnRlbF9yaW5nX3Jlc2Vy dmVkX3NwYWNlX3Jlc2VydmUoc3RydWN0IGludGVsX3JpbmdidWZmZXIKPj4+ICpyaW5nYnVmLCBp bnQgc2l6ZSk7Cj4+PiAgIC8qIENhbmNlbCB0aGUgcmVzZXJ2YXRpb24sIGUuZy4gYmVjYXVzZSB0 aGUgcmVxdWVzdCBpcyBiZWluZwo+Pj4gZGlzY2FyZGVkLiAqLwo+Pj4gICB2b2lkIGludGVsX3Jp bmdfcmVzZXJ2ZWRfc3BhY2VfY2FuY2VsKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyCj4+PiAqcmlu Z2J1Zik7Cj4+PiBAQCAtNDgyLDQgKzQ4MSw3IEBAIHZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9z cGFjZV91c2Uoc3RydWN0Cj4+PiBpbnRlbF9yaW5nYnVmZmVyICpyaW5nYnVmKTsKPj4+ICAgLyog RmluaXNoIHdpdGggdGhlIHJlc2VydmVkIHNwYWNlIC0gZm9yIHVzZSBieSBpOTE1X2FkZF9yZXF1 ZXN0KCkKPj4+IG9ubHkuICovCj4+PiAgIHZvaWQgaW50ZWxfcmluZ19yZXNlcnZlZF9zcGFjZV9l bmQoc3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwo+Pj4KPj4+ICsvKiBMZWdhY3kg cmluZ2J1ZmZlciBzcGVjaWZpYyBwb3J0aW9uIG9mIHJlc2VydmF0aW9uIGNvZGU6ICovCj4+PiAr aW50IGludGVsX3JpbmdfcmVzZXJ2ZV9zcGFjZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX3JlcXVlc3Qg KnJlcXVlc3QpOwo+Pj4gKwo+Pj4gICAjZW5kaWYgLyogX0lOVEVMX1JJTkdCVUZGRVJfSF8gKi8K Pj4+Cj4+Cj4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==