From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [Freedreno] [PATCH v2 5/5] drm/msm: subclass work object for vblank events Date: Fri, 7 Dec 2018 12:22:43 -0500 Message-ID: <20181207172243.GB154160@art_vandelay> References: <1541543790-748-1-git-send-email-jsanka@codeaurora.org> <1541543790-748-5-git-send-email-jsanka@codeaurora.org> <20181107155551.GZ154160@art_vandelay> <86c75419b86da1a3f538638ef0004203@codeaurora.org> <20181129221511.GI154160@art_vandelay> <126d5b3a93c1827aaf10cd64486d4967@codeaurora.org> <20181130200711.GK154160@art_vandelay> <20181203142155.GL154160@art_vandelay> <3590f098fa3094b6d6abc89b20b52cc7@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: <3590f098fa3094b6d6abc89b20b52cc7@codeaurora.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jeykumar Sankaran Cc: Sean Paul , dri-devel@lists.freedesktop.org, hoegsberg@google.com, linux-arm-msm@vger.kernel.org, seanpaul@chromium.org, freedreno@lists.freedesktop.org List-Id: linux-arm-msm@vger.kernel.org T24gTW9uLCBEZWMgMDMsIDIwMTggYXQgMTI6Mjc6NDJQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2Fy YW4gd3JvdGU6Cj4gT24gMjAxOC0xMi0wMyAwNjoyMSwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gT24g RnJpLCBOb3YgMzAsIDIwMTggYXQgMDQ6MjE6MTVQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2FyYW4g d3JvdGU6Cj4gPiA+IE9uIDIwMTgtMTEtMzAgMTI6MDcsIFNlYW4gUGF1bCB3cm90ZToKPiA+ID4g PiBPbiBGcmksIE5vdiAzMCwgMjAxOCBhdCAxMTo0NTo1NUFNIC0wODAwLCBKZXlrdW1hciBTYW5r YXJhbiB3cm90ZToKPiA+ID4gPiA+IE9uIDIwMTgtMTEtMjkgMTQ6MTUsIFNlYW4gUGF1bCB3cm90 ZToKPiA+ID4gPiA+ID4gT24gVHVlLCBOb3YgMjAsIDIwMTggYXQgMDI6MDQ6MTRQTSAtMDgwMCwg SmV5a3VtYXIgU2Fua2FyYW4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gT24gMjAxOC0xMS0wNyAwNzo1 NSwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gT24gVHVlLCBOb3YgMDYsIDIwMTgg YXQgMDI6MzY6MzBQTSAtMDgwMCwgSmV5a3VtYXIgU2Fua2FyYW4KPiA+IHdyb3RlOgo+ID4gPiA+ ID4gPiA+ID4gPiBtc20gbWFpbnRhaW5zIGEgc2VwYXJhdGUgc3RydWN0dXJlIHRvIGRlZmluZSB2 YmxhbmsKPiA+ID4gPiA+ID4gPiA+ID4gd29yayBkZWZpbml0aW9ucyBhbmQgYSBsaXN0IHRvIHRy YWNrIGV2ZW50cyBzdWJtaXR0ZWQKPiA+ID4gPiA+ID4gPiA+ID4gdG8gdGhlIHdvcmtxdWV1ZS4g V2UgY2FuIGF2b2lkIHRoaXMgcmVkdW5kYW50IGxpc3QKPiA+ID4gPiA+ID4gPiA+ID4gYW5kIGl0 cyBwcm90ZWN0aW9uIG1lY2hhbmlzbSwgaWYgd2Ugc3ViY2xhc3MgdGhlCj4gPiA+ID4gPiA+ID4g PiA+IHdvcmsgb2JqZWN0IHRvIGVuY2Fwc3VsYXRlIHZibGFuayBldmVudCBwYXJhbWV0ZXJzLgo+ ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBjaGFuZ2VzIGluIHYyOgo+ID4gPiA+ ID4gPiA+ID4gPiAJLSBzdWJjbGFzcyBvcHRpbWl6YXRpb24gb24gc3lzdGVtIHdxIChTZWFuIFBh dWwpCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gSSB3b3VsZG4ndCBkbyBpdCBsaWtl IHRoaXMsIHRiaC4gT25lIHByb2JsZW0gaXMgdGhhdCB5b3UndmUKPiA+IGxvc3QKPiA+ID4gPiB5 b3VyCj4gPiA+ID4gPiA+ID4gPiBmbHVzaCgpIG9uCj4gPiA+ID4gPiA+ID4gPiB1bmJpbmQsIHNv IHRoZXJlJ3Mgbm8gd2F5IHRvIGtub3cgaWYgeW91IGhhdmUgd29ya2VycyBpbiB0aGUKPiA+IHdp bGQKPiA+ID4gPiA+ID4gPiA+IHdhaXRpbmcKPiA+ID4gPiA+ID4gPiA+IHRvCj4gPiA+ID4gPiA+ ID4gPiBlbmFibGUvZGlzYWJsZSB2YmxhbmsuCj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ID4gQW5vdGhlciBpc3N1ZXMgaXMgdGhhdCBBRkFJQ1QsIHdlIGRvbid0IG5lZWQgYSBxdWV1ZSBv Zgo+ID4gPiA+ID4gPiA+ID4gZW5hYmxlcy9kaXNhYmxlcywKPiA+ID4gPiA+ID4gPiA+IGJ1dAo+ ID4gPiA+ID4gPiA+ID4gcmF0aGVyIGp1c3QgdGhlIGxhc3QgcmVxdWVzdGVkIHN0YXRlIChpZTog c2hvdWxkIHdlIGJlIG9uIG9yCj4gPiBvZmYpLgo+ID4gPiA+IFNvCj4gPiA+ID4gPiA+ID4gPiB0 aGluZ3MKPiA+ID4gPiA+ID4gPiA+IGRvbid0IG5lZWQgdG8gYmUgdGhpcyBjb21wbGljYXRlZCAo YW5kIHdlJ3JlIHBvc3NpYmx5Cj4gPiB0aHJhc2hpbmcKPiA+ID4gPiB2YmxhbmsKPiA+ID4gPiA+ ID4gPiA+IG9uL29mZgo+ID4gPiA+ID4gPiA+ID4gZm9yIG5vIHJlYXNvbikuCj4gPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+ID4gSSdtIHN0aWxsIG9mIHRoZSBtaW5kIHRoYXQgeW91IHNob3Vs ZCBqdXN0IG1ha2UgdGhpcwo+ID4gc3luY2hyb25vdXMKPiA+ID4gPiBhbmQKPiA+ID4gPiA+ID4g YmUKPiA+ID4gPiA+ID4gPiA+IGRvbmUKPiA+ID4gPiA+ID4gPiA+IHdpdGggdGhlIHRocmVhZHMg KGVzcGVjaWFsbHkgc2luY2Ugd2UncmUgc3RpbGwKPiA+ID4gPiB1bmNvdmVyaW5nL2ludHJvZHVj aW5nCj4gPiA+ID4gPiA+ID4gPiByYWNlcyEpLgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiBXaGlsZSBzY29waW5nIG91dCB0aGUgZWZmb3J0IHRvIG1ha2UgdmJsYW5rIGV2ZW50cyBzeW5j aHJvbm91cywKPiA+IEkKPiA+ID4gPiA+ID4gPiBmb3VuZAo+ID4gPiA+ID4gPiA+IHRoYXQgdGhl IHNwaW5sb2NrIGxvY2tpbmcgb3JkZXIgb2YgdmJsYW5rIHJlcXVlc3Qgc2VxdWVuY2UgYW5kCj4g PiA+ID4gdmJsYW5rCj4gPiA+ID4gPiA+ID4gY2FsbGJhY2sKPiA+ID4gPiA+ID4gPiBzZXF1ZW5j ZXMgYXJlIHRoZSBvcHBvc2l0ZS4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IEluIERQVSwg ZHJtX3ZibGFua19lbmFibGUgYWNxdWlyZXMgdmJsYW5rX3RpbWVfbG9jayBiZWZvcmUKPiA+ID4g PiByZWdpc3RlcmluZwo+ID4gPiA+ID4gPiA+IHRoZSBjcnRjIHRvIGVuY29kZXIgd2hpY2ggaGFw cGVucyBhZnRlciBhY3F1aXJpbmcKPiA+IGVuY29kZXJfc3BpbmxvY2suCj4gPiA+ID4gPiA+ID4g QnV0Cj4gPiA+ID4gPiA+ID4gdGhlIHZibGFua19jYWxsYmFjayBhY3F1aXJlcyBlbmNvZGVyX3Nw aW5sb2NrIGJlZm9yZSBhY2Nlc3NpbmcKPiA+IHRoZQo+ID4gPiA+ID4gPiA+IHJlZ2lzdGVyZWQK PiA+ID4gPiA+ID4gPiBjcnRjIGFuZCBjYWxsaW5nIGludG8gZHJtX3ZibGFua19oYW5kbGVyIHdo aWNoIHRyaWVzIHRvIGFjcXVpcmUKPiA+ID4gPiA+ID4gPiB2YmxhbmtfdGltZV9sb2NrLgo+ID4g PiA+ID4gPiA+IEFjcXVpcmluZyBib3RoIHZibGFua190aW1lX2xvY2sgYW5kIGVuY29kZXJfc3Bp bmxvY2sgaW4gdGhlIHNhbWUKPiA+ID4gPiA+ID4gPiB0aHJlYWQKPiA+ID4gPiA+ID4gPiBpcyBs ZWFkaW5nIHRvIGRlYWRsb2NrLgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBIbW0sIEknbSBub3Qg c3VyZSBJIGZvbGxvdy4gQXJlIHlvdSBzZWVpbmcgaXNzdWVzIHdoZXJlIGlycQo+ID4gb3Zlcmxh cHMKPiA+ID4gPiA+ID4gd2l0aAo+ID4gPiA+ID4gPiBlbmFibGUvZGlzYWJsZT8gSSBoYWNrZWQg aW4gc3luYyB2YmxhbmsgZW5hYmxlL2Rpc2FibGUgcXVpY2tseSB0bwo+ID4gc2VlCj4gPiA+ID4g aWYKPiA+ID4gPiA+ID4gSQo+ID4gPiA+ID4gPiBjb3VsZAo+ID4gPiA+ID4gPiByZXByb2R1Y2Ug d2hhdCB5b3UncmUgc2VlaW5nLCBidXQgdGhpbmdzIHNlZW1lZCB3ZWxsIGJlaGF2ZWQuCj4gPiA+ ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhlIHJhY2UgaXMgYmV0d2VlbiBkcm1fdmJsYW5r X2dldC9wdXQgYW5kIHZibGFua19oYW5kbGVyIGNvbnRleHRzLgo+ID4gPiA+ID4KPiA+ID4gPiA+ IFdoZW4gbWFkZSBzeW5jaHJvbm91czoKPiA+ID4gPiA+Cj4gPiA+ID4gPiB3aGlsZSBjYWxsaW5n IGRybV92YmxhbmtfZ2V0LCB0aGUgY2FsbHN0YWNrIGxvb2tzIGxpa2UgYmVsb3c6Cj4gPiA+ID4g PiBkcm1fdmJsYW5rX2dldCAtPiBkcm1fdmJsYW5rX2VuYWJsZSAoYWNxdWlyZXMgdmJsYW5rX3Rp bWVfbG9jaykgLT4KPiA+ID4gPiA+IF9fZW5hYmxlX3ZibGFuayAtPiBkcHVfY3J0Y192Ymxhbmsg LT4KPiA+ID4gPiA+IGRwdV9lbmNvZGVyX3RvZ2dsZV92YmxhbmtfZm9yX2NydGMKPiA+ID4gPiA+ ICh0cmllcyB0byBhY3F1aXJlIGVuY19zcGlubG9jaykKPiA+ID4gPiA+Cj4gPiA+ID4gPiBJbiB2 YmxhbmsgaGFuZGxlciwgdGhlIGNhbGwgc3RhY2sgd2lsbCBiZToKPiA+ID4gPiA+IGRwdV9lbmNv ZGVyX3BoeXNfdmlkX3ZibGFua19pcnEgLT4gZHB1X2VuY29kZXJfdmJsYW5rX2NhbGxiYWNrCj4g PiA+ID4gPiAoYWNxdWlyZXMKPiA+ID4gPiA+IGVuY19zcGlubG9jaykgLT4gZHB1X2NydGNfdmJs YW5rX2NhbGxiYWNrIC0+IGRybV9oYW5kbGVfdmJsYW5rCj4gPiA+ID4gPiAodHJpZXMgdG8KPiA+ ID4gPiA+IGFjcXVpcmUgdmJsYW5rX3RpbWVfbG9jaykKPiA+ID4gPgo+ID4gPiA+IEhtbSwgSSdt IG5vdCBzdXJlIGhvdyB0aGlzIGNhbiBoYXBwZW4uIFdlIGFjcXVpcmUgYW5kIHJlbGVhc2UgdGhl Cj4gPiA+ID4gZW5jX3NwaW5sb2NrCj4gPiA+ID4gYmVmb3JlIGVuYWJsaW5nIHRoZSBpcnEsIHll cyB3ZSB3aWxsIGhvbGQgb24gdG8gdGhlIHZibF90aW1lX2xvY2ssIGJ1dAo+ID4gPiA+IHdlCj4g PiA+ID4gc2hvdWxkbid0IGJlIHRyeWluZyB0byByZWFjcXVpcmUgYW4gZW5jb2RlcidzIHNwaW5s b2NrIGFmdGVyIHdlJ3ZlCj4gPiA+ID4gZW5hYmxlZAo+ID4gPiA+IGl0Lgo+ID4gPiBJbiB0aGUg c3luY2hyb25vdXMgYXBwcm9hY2ggZHB1X2VuY29kZXJfdG9nZ2xlX3ZibGFua19mb3JfY3J0Yyh3 aGljaAo+ID4gPiBhY3F1aXJlcyB0aGUgZW5jX3NwaW5sb2NrKSB3aWxsIGJlIGNhbGxlZCB3aGls ZSB3ZQo+ID4gPiBhcmUgaG9sZGluZyB0aGUgdmJsX3RpbWVfbG9jay4KPiA+ID4gCj4gPiA+ID4g SSBkb24ndCBrbm93IGhvdyB0aGF0IGNhbiBkZWFkbG9jaywgc2luY2Ugd2Ugc2hvdWxkIG5ldmVy IGJlIHJ1bm5pbmcKPiA+ID4gPiBlbmFibGUgYW5kCj4gPiA+ID4gdGhlIGhhbmRsZXIgY29uY3Vy cmVudGx5Lgo+ID4gPiA+Cj4gPiA+IEkgYWdyZWUgdGhhdCB2YmxhbmtfaXJxIGhhbmRsZXIgc2hv dWxkIG5vdCBiZSBydW5uaW5nIGJlZm9yZSB0aGUKPiA+ID4gZW5hYmxlCj4gPiA+IHNlcXVlbmNl LiBCdXQKPiA+ID4gZG9uJ3QgeW91IGV4cGVjdCB0aGUgaGFuZGxlciB0byBiZSBydW5uaW5nIHdo aWxlIGNhbGxpbmcgdGhlCj4gPiB2YmxhbmtfZGlzYWJsZQo+ID4gPiBzZXF1ZW5jZT8KPiA+IAo+ ID4gVGhpcyBpcyBhbiBlbnRpcmVseSBkaWZmZXJlbnQgcHJvYmxlbSB0aG91Z2guIEl0J3MgYWxz byBvbmUgdGhhdCBpcwo+ID4gZWFzaWVyCj4gPiB0bwo+ID4gZml4LiBJIHRoaW5rIHdlIGNvdWxk IHByb2JhYmx5IGdyYWIgdGhlIGVuY19zcGlubG9jayBpbiBkaXNhYmxlIGFuZAo+ID4gY2xlYXIK PiA+IHRoZQo+ID4gY3J0YyBwb2ludGVyLgo+ID4gCj4gd2UgZG8gaG9sZCBlbmNfc3BpbmxvY2sg aW4gZHB1X2VuY29kZXJfYXNzaWduX2NydGMgKGRybS9tc206IGRwdTogUmVtb3ZlCj4gdmJsYW5r X2NhbGxiYWNrIGZyb20gZW5jb2RlcikKPiB3aGVyZSB3ZSBjbGVhciB0aGUgY3J0YyBwb2ludGVy Lgo+IAo+ID4gV2hhdCBJJ20gZ2V0dGluZyBhdCBpcyB0aGF0IHRoZXJlJ3Mgbm8gZnVuZGFtZW50 YWwgcmVhc29uIHdoeSB3ZSBuZWVkIHRvCj4gPiBoYXZlCj4gPiBhc3luYyB2YmxhbmsgZW5hYmxl L2Rpc2FibGUuCj4gPiAKPiA+IFNlYW4KPiA+IAo+IFRoZXJlIGlzIHJlYWxseSBubyAqbmVlZCog dG8gaGF2ZSB0aGVtIGFzeW5jLiBCdXQgSSBiZWxpZXZlIHRoZSByZWFzb24gd2h5Cj4gdGhleQo+ IGFyZSBpbXBsZW1lbnRlZCB0aGlzIHdheSBpcyB0byBhdm9pZCBkZWFkbG9jayBiZXR3ZWVuIHRo ZSBiZWxvdyB0d28gcGF0aHMuCj4gCj4gUmVzdGF0aW5nIHRoZSBhYm92ZSBmaW5kaW5nczoKPiB2 YmxhbmtfaGFuZGxlcnMgYW5kIHZibGFuayBlbmFibGUvZGlzYWJsZSBjYW4gcnVuIGNvbmN1cnJl bnRseS4gCgpJIHRoaW5rIHRoaXMgaXMgd2hlcmUgd2UgZGlzYWdyZWUuIFRoZSBoYW5kbGVyIHdp bGwgb25seSBiZSBjYWxsZWQgd2hlbgplbmMtPmNydGMgaXMgc2V0LgoKSW4gdGhlIGNhc2Ugb2Yg ZGlzYWJsZSwgd2UgY2xlYXIgdGhlIHBvaW50ZXIgX2FmdGVyXyB2YmxhbmsgaXMKZGlzYWJsZWQs IHNvIGVuY19zcGlubG9jayBzaG91bGQgYmUgdW5jb250ZXN0ZWQuCgpPbiBlbmFibGUsIHRoZSBw b2ludGVyIGlzIHNldCBfYmVmb3JlXyB2YmxhbmsgaXMgZW5hYmxlZCwgc28gYWdhaW4gdGhlCmVu Y19zcGlubG9jayBpcyB1bmNvbnRlc3RlZC4KCkkgdHJhY2tlZCBkb3duIHRoZSBkZWFkbG9jayB5 b3UgZm91bmQgYW5kIHN1Ym1pdHRlZCBhIHBhdGNoIGZvciBpdCBpbiBbMV0uIFRoZQppc3N1ZSBp cyB0aGF0IHZibGFuayB3YXMgYmVpbmcgaW5jb3JyZWN0bHkgZW5hYmxlZCB3aGVuZXZlciB0aGUg ZW5jb2RlciBpcyBvbi4KV2l0aCB0aGUgZml4LCB5b3UgY2FuIGFkZCBob3dldmVyIGxvbmcgZGVs YXkgeW91IHdhbnQgdG8gdmJsYW5rX2VuYWJsZSBhbmQgeW91Cndvbid0IHByb2R1Y2UgYSBkZWFk bG9jay4KClNlYW4KClsxXS0gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvYXJjaGl2ZXMv ZHJpLWRldmVsLzIwMTgtRGVjZW1iZXIvMTk5NjcwLmh0bWwKCgo+IFRoZSBmaXJzdAo+IHRyeWlu ZyB0byBhY3F1aXJlCj4gdmJsX3RpbWVfbG9jayBob2xkaW5nIGVuY19zcGlubG9jay4gT3RoZXIg dHJ5aW5nIHRvIGFjcXVpcmUgZW5jX3NwaW5sb2NrCj4gaG9sZGluZwo+IHZibF90aW1lX2xvY2su Cj4gCj4gVGhhbmtzLAo+IEpleWt1bWFyIFMuCj4gCj4gCj4gPiA+IHZibCBkaXNhYmxlIHdpbGwg dHJ5IHRvIGFjcXVpcmUgdGhlIGxvY2tzIGluIHRoZSBvcHBvc2l0ZSBvcmRlciB0bwo+ID4gPiB0 aGF0Cj4gPiBvZgo+ID4gPiBpcnFfaGFuZGxlciBhbmQgdGhlCj4gPiA+IHNhbWUgaXNzdWUgaXMg Ym91bmQgdG8gaGFwcGVuLgo+ID4gPiAKPiA+ID4gV2l0aCB5b3VyIHBhdGNoLCB5b3Ugc2hvdWxk IGJlIGFibGUgdG8gc2ltdWxhdGUgdGhpcyBkZWFkbG9jayBpZiB5b3UKPiA+ID4gY2FuCj4gPiA+ IGluamVjdCBhIGRlbGF5Cj4gPiA+IGJ5IGFkZGluZyBhIHByX2VyciBsb2cgaW4gdmJsYW5rX2N0 cmxfcXVldWVfd29yawo+ID4gPiAKPiA+ID4gVGhhbmtzLAo+ID4gPiBKZXlrdW1hciBTLgo+ID4g PiAKPiA+ID4gPiBUaGUgb25seSB0aGluZyBJIGNhbiB0aGluayBvZiBpcyB0aGF0IHRoZSB2Ymxh bmsgaW50ZXJydXB0cyBhcmUgZmlyaW5nCj4gPiA+ID4gYWZ0ZXIKPiA+ID4gPiB2YmxhbmsgaGFz IGJlZW4gZGlzYWJsZWQ/IEluIHRoYXQgY2FzZSwgaXQgc2VlbXMgbGlrZSB3ZSBzaG91bGQKPiA+ IHByb3Blcmx5Cj4gPiA+ID4gZmx1c2gKPiA+ID4gPiB0aGVtLgo+ID4gPiA+Cj4gPiA+ID4gU2Vh bgo+ID4gPiA+Cj4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gPiBJIGRvIHNl ZSB0aGF0IHRoZXJlIGlzIGEgY2hhbmNlIHRvIGNhbGwgZHJtX2hhbmRsZV92YmxhbmsoKSB3aGls ZQo+ID4gPiA+ID4gPiBob2xkaW5nCj4gPiA+ID4gPiA+IGVuY19zcGlubG9jaywgYnV0IGNvdWxk bid0IGZpbmQgYW55IG9idmlvdXMgbG9jayByZWN1cnNpb24gdGhlcmUuCj4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+IE1heWJlIGEgY2FsbHN0YWNrIG9yIGxvY2tkZXAgc3BsYXQgd291bGQgaGVscD8K PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gU2Vhbgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPgo+ID4g PiA+ID4gPiBIZXJlJ3MgbXkgaGFjayB0byBieXBhc3MgdGhlIGRpc3BsYXkgdGhyZWFkOgo+ID4g PiA+ID4gPgo+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21f ZHJ2LmMKPiA+ID4gPiA+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYwo+ID4gPiA+ ID4gPiBpbmRleCA5YzlmN2ZmNjk2MGIzOC4uNWEzY2FjNTgyNTMxOWUgMTAwNjQ0Cj4gPiA+ID4g PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gPiA+ID4gPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tc20vbXNtX2Rydi5jCj4gPiA+ID4gPiA+IEBAIC0yNDIsMjQgKzI0 MiwxOSBAQCBzdGF0aWMgdm9pZCB2YmxhbmtfY3RybF93b3JrZXIoc3RydWN0Cj4gPiA+ID4ga3Ro cmVhZF93b3JrCj4gPiA+ID4gPiA+ICp3b3JrKQo+ID4gPiA+ID4gPiAgc3RhdGljIGludCB2Ymxh bmtfY3RybF9xdWV1ZV93b3JrKHN0cnVjdCBtc21fZHJtX3ByaXZhdGUgKnByaXYsCj4gPiA+ID4g PiA+ICAJCQkJCWludCBjcnRjX2lkLCBib29sIGVuYWJsZSkKPiA+ID4gPiA+ID4gIHsKPiA+ID4g PiA+ID4gKwlzdHJ1Y3QgbXNtX2ttcyAqa21zID0gcHJpdi0+a21zOwo+ID4gPiA+ID4gPiAgCXN0 cnVjdCBtc21fdmJsYW5rX2N0cmwgKnZibF9jdHJsID0gJnByaXYtPnZibGFua19jdHJsOwo+ID4g PiA+ID4gPiAtCXN0cnVjdCB2YmxhbmtfZXZlbnQgKnZibF9ldjsKPiA+ID4gPiA+ID4gIAl1bnNp Z25lZCBsb25nIGZsYWdzOwo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiAtCXZibF9ldiA9IGt6YWxs b2Moc2l6ZW9mKCp2YmxfZXYpLCBHRlBfQVRPTUlDKTsKPiA+ID4gPiA+ID4gLQlpZiAoIXZibF9l dikKPiA+ID4gPiA+ID4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gPiA+ID4gPiA+ICsJc3Bpbl9sb2Nr X2lycXNhdmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ IC0JdmJsX2V2LT5jcnRjX2lkID0gY3J0Y19pZDsKPiA+ID4gPiA+ID4gLQl2YmxfZXYtPmVuYWJs ZSA9IGVuYWJsZTsKPiA+ID4gPiA+ID4gKwlpZiAoZW5hYmxlKQo+ID4gPiA+ID4gPiArCQlrbXMt PmZ1bmNzLT5lbmFibGVfdmJsYW5rKGttcywKPiA+IHByaXYtPmNydGNzW2NydGNfaWRdKTsKPiA+ ID4gPiA+ID4gKwllbHNlCj4gPiA+ID4gPiA+ICsJCWttcy0+ZnVuY3MtPmRpc2FibGVfdmJsYW5r KGttcywKPiA+IHByaXYtPmNydGNzW2NydGNfaWRdKTsKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g LQlzcGluX2xvY2tfaXJxc2F2ZSgmdmJsX2N0cmwtPmxvY2ssIGZsYWdzKTsKPiA+ID4gPiA+ID4g LQlsaXN0X2FkZF90YWlsKCZ2YmxfZXYtPm5vZGUsICZ2YmxfY3RybC0+ZXZlbnRfbGlzdCk7Cj4g PiA+ID4gPiA+ICAJc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmdmJsX2N0cmwtPmxvY2ssIGZsYWdz KTsKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gLQlrdGhyZWFkX3F1ZXVlX3dvcmsoJnByaXYtPmRp c3BfdGhyZWFkW2NydGNfaWRdLndvcmtlciwKPiA+ID4gPiA+ID4gLQkJCSZ2YmxfY3RybC0+d29y ayk7Cj4gPiA+ID4gPiA+IC0KPiA+ID4gPiA+ID4gIAlyZXR1cm4gMDsKPiA+ID4gPiA+ID4gIH0K PiA+ID4gPiA+ID4KPiA+ID4gPiA+IEV2ZW4gd2l0aCB5b3VyIHBhdGNoIGFib3ZlLCBJIHNlZSBm cmFtZSBpcyBnZXR0aW5nIHN0dWNrIGJ1dCBpdAo+ID4gPiA+ID4gcmVjb3ZlcnMKPiA+ID4gPiBp bgo+ID4gPiA+ID4gYSB3aGlsZS4KPiA+ID4gPiA+IFRoZSBwYXRjaCBJIHRyaWVkIHdhcyBhc3Np Z25pbmcKPiA+ID4gPiBjcnRjLT5mdW5jcy0+ZW5hYmxlX3ZibGFuay9kaXNhYmxlX3ZibGFuayBz bwo+ID4gPiA+ID4gdGhhdAo+ID4gPiA+ID4gX19lbmFibGVfdmJsYW5rIGNhbiBjYWxsIGNydGMg ZGlyZWN0bHkuIEJ1dCB0aGUgYWJvdmUgY2FsbHN0YWNrIGlzCj4gPiA+ID4gPiBzdGlsbAo+ID4g PiA+ID4gdmFsaWQgZm9yIHlvdXIgcGF0Y2guCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhhbmtzLAo+ ID4gPiA+ID4gSmV5a3VtYXIgUy4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g Pgo+ID4gPiA+ID4gPiA+IEluIE1EUDUsIEkgc2VlIHRoZSBzYW1lIHBhdHRlcm4gYmV0d2VlbiB2 YmxhbmtfdGltZV9sb2NrIGFuZAo+ID4gPiA+IGxpc3RfbG9jawo+ID4gPiA+ID4gPiB3aGljaAo+ ID4gPiA+ID4gPiA+IGlzIHVzZWQgdG8gdHJhY2sgdGhlIGlycSBoYW5kbGVycy4KPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+IEkgYmVsaWV2ZSB0aGF0IGV4cGxhaW5zIHdoeSBtc21fZHJ2IGlz IHF1ZXVpbmcgdGhlIHZibGFuawo+ID4gPiA+ID4gPiA+IGVuYWJsZS9kaXNhYmxlCj4gPiA+ID4g PiA+ID4gd29ya3MgdG8gV1EgYWZ0ZXIgYWNxdWlyaW5nIHZibGFua190aW1lX2xvY2suCj4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiBUaGFua3MsCj4gPiA+ID4gPiA+ID4gSmV5a3VtYXIgUy4K PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gU2Vhbgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSmV5a3VtYXIgU2Fu a2FyYW4gPGpzYW5rYUBjb2RlYXVyb3JhLm9yZz4KPiA+ID4gPiA+ID4gPiA+ID4gLS0tCj4gPiA+ ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuYyB8IDY3Cj4gPiA+ID4g PiA+ID4gPiArKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiA+ ID4gPiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vbXNtL21zbV9kcnYuaCB8ICA3IC0tLS0tCj4g PiA+ID4gPiA+ID4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDU0IGRl bGV0aW9ucygtKQo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiA+ID4gPiA+ID4gPiA+IGIvZHJpdmVy cy9ncHUvZHJtL21zbS9tc21fZHJ2LmMKPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggNmQ2YzczYi4u OGRhNWJlMiAxMDA2NDQKPiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21z bS9tc21fZHJ2LmMKPiA+ID4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZHJ2LmMKPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTIwMyw2MSArMjAzLDQ0IEBAIHUzMiBtc21f cmVhZGwoY29uc3Qgdm9pZCBfX2lvbWVtCj4gPiAqYWRkcikKPiA+ID4gPiA+ID4gPiA+ID4gIAly ZXR1cm4gdmFsOwo+ID4gPiA+ID4gPiA+ID4gPiAgfQo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiAtc3RydWN0IHZibGFua19ldmVudCB7Cj4gPiA+ID4gPiA+ID4gPiA+IC0Jc3Ry dWN0IGxpc3RfaGVhZCBub2RlOwo+ID4gPiA+ID4gPiA+ID4gPiArc3RydWN0IG1zbV92Ymxhbmtf d29yayB7Cj4gPiA+ID4gPiA+ID4gPiA+ICsJc3RydWN0IHdvcmtfc3RydWN0IHdvcms7Cj4gPiA+ ID4gPiA+ID4gPiA+ICAJaW50IGNydGNfaWQ7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJYm9vbCBlbmFi bGU7Cj4gPiA+ID4gPiA+ID4gPiA+ICsJc3RydWN0IG1zbV9kcm1fcHJpdmF0ZSAqcHJpdjsKPiA+ ID4gPiA+ID4gPiA+ID4gIH07Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ICBz dGF0aWMgdm9pZCB2YmxhbmtfY3RybF93b3JrZXIoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ ID4gPiA+ID4gPiA+ID4gPiAgewo+ID4gPiA+ID4gPiA+ID4gPiAtCXN0cnVjdCBtc21fdmJsYW5r X2N0cmwgKnZibF9jdHJsID0gY29udGFpbmVyX29mKHdvcmssCj4gPiA+ID4gPiA+ID4gPiA+IC0J CQkJCQlzdHJ1Y3QKPiA+ID4gPiBtc21fdmJsYW5rX2N0cmwsCj4gPiA+ID4gPiA+ID4gPiB3b3Jr KTsKPiA+ID4gPiA+ID4gPiA+ID4gLQlzdHJ1Y3QgbXNtX2RybV9wcml2YXRlICpwcml2ID0gY29u dGFpbmVyX29mKHZibF9jdHJsLAo+ID4gPiA+ID4gPiA+ID4gPiAtCQkJCQlzdHJ1Y3QgbXNtX2Ry bV9wcml2YXRlLAo+ID4gPiA+ID4gPiA+ID4gdmJsYW5rX2N0cmwpOwo+ID4gPiA+ID4gPiA+ID4g PiArCXN0cnVjdCBtc21fdmJsYW5rX3dvcmsgKnZibF93b3JrID0gY29udGFpbmVyX29mKHdvcmss Cj4gPiA+ID4gPiA+ID4gPiA+ICsJCQkJCQlzdHJ1Y3QKPiA+ID4gPiBtc21fdmJsYW5rX3dvcmss Cj4gPiA+ID4gPiA+ID4gPiB3b3JrKTsKPiA+ID4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgbXNtX2Ry bV9wcml2YXRlICpwcml2ID0gdmJsX3dvcmstPnByaXY7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJc3Ry dWN0IG1zbV9rbXMgKmttcyA9IHByaXYtPmttczsKPiA+ID4gPiA+ID4gPiA+ID4gLQlzdHJ1Y3Qg dmJsYW5rX2V2ZW50ICp2YmxfZXYsICp0bXA7Cj4gPiA+ID4gPiA+ID4gPiA+IC0JdW5zaWduZWQg bG9uZyBmbGFnczsKPiA+ID4gPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiA+ID4gPiAtCXNwaW5f bG9ja19pcnFzYXZlKCZ2YmxfY3RybC0+bG9jaywgZmxhZ3MpOwo+ID4gPiA+ID4gPiA+ID4gPiAt CWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2YmxfZXYsIHRtcCwKPiA+ID4gPiAmdmJsX2N0cmwt PmV2ZW50X2xpc3QsIG5vZGUpCj4gPiA+ID4gPiA+ID4gPiB7Cj4gPiA+ID4gPiA+ID4gPiA+IC0J CWxpc3RfZGVsKCZ2YmxfZXYtPm5vZGUpOwo+ID4gPiA+ID4gPiA+ID4gPiAtCQlzcGluX3VubG9j a19pcnFyZXN0b3JlKCZ2YmxfY3RybC0+bG9jaywgZmxhZ3MpOwo+ID4gPiA+ID4gPiA+ID4gPiAt Cj4gPiA+ID4gPiA+ID4gPiA+IC0JCWlmICh2YmxfZXYtPmVuYWJsZSkKPiA+ID4gPiA+ID4gPiA+ ID4gLQkJCWttcy0+ZnVuY3MtPmVuYWJsZV92Ymxhbmsoa21zLAo+ID4gPiA+ID4gPiA+ID4gPiAt Cj4gPiA+ID4gPiA+ID4gPiBwcml2LT5jcnRjc1t2YmxfZXYtPmNydGNfaWRdKTsKPiA+ID4gPiA+ ID4gPiA+ID4gLQkJZWxzZQo+ID4gPiA+ID4gPiA+ID4gPiAtCQkJa21zLT5mdW5jcy0+ZGlzYWJs ZV92Ymxhbmsoa21zLAo+ID4gPiA+ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+ID4gPiBwcml2LT5j cnRjc1t2YmxfZXYtPmNydGNfaWRdKTsKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ ID4gLQkJa2ZyZWUodmJsX2V2KTsKPiA+ID4gPiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiA+ID4g PiAtCQlzcGluX2xvY2tfaXJxc2F2ZSgmdmJsX2N0cmwtPmxvY2ssIGZsYWdzKTsKPiA+ID4gPiA+ ID4gPiA+ID4gLQl9Cj4gPiA+ID4gPiA+ID4gPiA+ICsJaWYgKHZibF93b3JrLT5lbmFibGUpCj4g PiA+ID4gPiA+ID4gPiA+ICsJCWttcy0+ZnVuY3MtPmVuYWJsZV92Ymxhbmsoa21zLAo+ID4gPiA+ ID4gPiA+ID4gcHJpdi0+Y3J0Y3NbdmJsX3dvcmstPmNydGNfaWRdKTsKPiA+ID4gPiA+ID4gPiA+ ID4gKwllbHNlCj4gPiA+ID4gPiA+ID4gPiA+ICsJCWttcy0+ZnVuY3MtPmRpc2FibGVfdmJsYW5r KGttcywKPiA+ID4gPiA+ID4gPiA+IHByaXYtPmNydGNzW3ZibF93b3JrLT5jcnRjX2lkXSk7Cj4g PiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9y ZSgmdmJsX2N0cmwtPmxvY2ssIGZsYWdzKTsKPiA+ID4gPiA+ID4gPiA+ID4gKwlrZnJlZSh2Ymxf d29yayk7Cj4gPiA+ID4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiA+ICBzdGF0aWMgaW50IHZibGFua19jdHJsX3F1ZXVlX3dvcmsoc3RydWN0IG1zbV9kcm1f cHJpdmF0ZQo+ID4gKnByaXYsCj4gPiA+ID4gPiA+ID4gPiA+ICAJCQkJCWludCBjcnRjX2lkLCBi b29sIGVuYWJsZSkKPiA+ID4gPiA+ID4gPiA+ID4gIHsKPiA+ID4gPiA+ID4gPiA+ID4gLQlzdHJ1 Y3QgbXNtX3ZibGFua19jdHJsICp2YmxfY3RybCA9ICZwcml2LT52YmxhbmtfY3RybDsKPiA+ID4g PiA+ID4gPiA+ID4gLQlzdHJ1Y3QgdmJsYW5rX2V2ZW50ICp2YmxfZXY7Cj4gPiA+ID4gPiA+ID4g PiA+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsKPiA+ID4gPiA+ID4gPiA+ID4gKwlzdHJ1Y3QgbXNt X3ZibGFua193b3JrICp2Ymxfd29yazsKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ ID4gLQl2YmxfZXYgPSBremFsbG9jKHNpemVvZigqdmJsX2V2KSwgR0ZQX0FUT01JQyk7Cj4gPiA+ ID4gPiA+ID4gPiA+IC0JaWYgKCF2YmxfZXYpCj4gPiA+ID4gPiA+ID4gPiA+ICsJdmJsX3dvcmsg PSBremFsbG9jKHNpemVvZigqdmJsX3dvcmspLCBHRlBfQVRPTUlDKTsKPiA+ID4gPiA+ID4gPiA+ ID4gKwlpZiAoIXZibF93b3JrKQo+ID4gPiA+ID4gPiA+ID4gPiAgCQlyZXR1cm4gLUVOT01FTTsK PiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gLQl2YmxfZXYtPmNydGNfaWQgPSBj cnRjX2lkOwo+ID4gPiA+ID4gPiA+ID4gPiAtCXZibF9ldi0+ZW5hYmxlID0gZW5hYmxlOwo+ID4g PiA+ID4gPiA+ID4gPiArCUlOSVRfV09SSygmdmJsX3dvcmstPndvcmssIHZibGFua19jdHJsX3dv cmtlcik7Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IC0Jc3Bpbl9sb2NrX2ly cXNhdmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7Cj4gPiA+ID4gPiA+ID4gPiA+IC0JbGlzdF9h ZGRfdGFpbCgmdmJsX2V2LT5ub2RlLCAmdmJsX2N0cmwtPmV2ZW50X2xpc3QpOwo+ID4gPiA+ID4g PiA+ID4gPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJnZibF9jdHJsLT5sb2NrLCBmbGFncyk7 Cj4gPiA+ID4gPiA+ID4gPiA+ICsJdmJsX3dvcmstPmNydGNfaWQgPSBjcnRjX2lkOwo+ID4gPiA+ ID4gPiA+ID4gPiArCXZibF93b3JrLT5lbmFibGUgPSBlbmFibGU7Cj4gPiA+ID4gPiA+ID4gPiA+ ICsJdmJsX3dvcmstPnByaXYgPSBwcml2Owo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ID4gPiAtCXNjaGVkdWxlX3dvcmsoJnZibF9jdHJsLT53b3JrKTsKPiA+ID4gPiA+ID4gPiA+ID4g KwlzY2hlZHVsZV93b3JrKCZ2Ymxfd29yay0+d29yayk7Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+ID4gPiA+ICAJcmV0dXJuIDA7Cj4gPiA+ID4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ ID4gPiA+IEBAIC0yNjksMTQgKzI1MiwxMyBAQCBzdGF0aWMgaW50IG1zbV9kcm1fdW5pbml0KHN0 cnVjdAo+ID4gZGV2aWNlCj4gPiA+ID4gKmRldikKPiA+ID4gPiA+ID4gPiA+ID4gIAlzdHJ1Y3Qg bXNtX2RybV9wcml2YXRlICpwcml2ID0gZGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiA+ID4gPiA+ID4g PiA+ICAJc3RydWN0IG1zbV9rbXMgKmttcyA9IHByaXYtPmttczsKPiA+ID4gPiA+ID4gPiA+ID4g IAlzdHJ1Y3QgbXNtX21kc3MgKm1kc3MgPSBwcml2LT5tZHNzOwo+ID4gPiA+ID4gPiA+ID4gPiAt CXN0cnVjdCBtc21fdmJsYW5rX2N0cmwgKnZibF9jdHJsID0gJnByaXYtPnZibGFua19jdHJsOwo+ ID4gPiA+ID4gPiA+ID4gPiAtCXN0cnVjdCB2YmxhbmtfZXZlbnQgKnZibF9ldiwgKnRtcDsKPiA+ ID4gPiA+ID4gPiA+ID4gIAlpbnQgaTsKPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ ID4gIAkvKiBXZSBtdXN0IGNhbmNlbCBhbmQgY2xlYW51cCBhbnkgcGVuZGluZyB2YmxhbmsKPiA+ ID4gPiBlbmFibGUvZGlzYWJsZQo+ID4gPiA+ID4gPiA+ID4gPiAgCSAqIHdvcmsgYmVmb3JlIGRy bV9pcnFfdW5pbnN0YWxsKCkgdG8gYXZvaWQgd29yawo+ID4gPiA+IHJlLWVuYWJsaW5nIGFuCj4g PiA+ID4gPiA+ID4gPiA+ICAJICogaXJxIGFmdGVyIHVuaW5zdGFsbCBoYXMgZGlzYWJsZWQgaXQu Cj4gPiA+ID4gPiA+ID4gPiA+ICAJICovCj4gPiA+ID4gPiA+ID4gPiA+ICsKPiA+ID4gPiA+ID4g PiA+ID4gIAltc21fZ2VtX3Nocmlua2VyX2NsZWFudXAoZGRldik7Cj4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ICAJZHJtX2ttc19oZWxwZXJfcG9sbF9maW5pKGRkZXYpOwo+ID4g PiA+ID4gPiA+ID4gPiBAQCAtMjkyLDEyICsyNzQsNiBAQCBzdGF0aWMgaW50IG1zbV9kcm1fdW5p bml0KHN0cnVjdCBkZXZpY2UKPiA+ID4gPiAqZGV2KQo+ID4gPiA+ID4gPiA+ID4gPiAgI2VuZGlm Cj4gPiA+ID4gPiA+ID4gPiA+ICAJZHJtX21vZGVfY29uZmlnX2NsZWFudXAoZGRldik7Cj4gPiA+ ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IC0JZmx1c2hfd29yaygmdmJsX2N0cmwtPndv cmspOwo+ID4gPiA+ID4gPiA+ID4gPiAtCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZSh2YmxfZXYs IHRtcCwKPiA+ID4gPiAmdmJsX2N0cmwtPmV2ZW50X2xpc3QsIG5vZGUpCj4gPiA+ID4gPiA+ID4g PiB7Cj4gPiA+ID4gPiA+ID4gPiA+IC0JCWxpc3RfZGVsKCZ2YmxfZXYtPm5vZGUpOwo+ID4gPiA+ ID4gPiA+ID4gPiAtCQlrZnJlZSh2YmxfZXYpOwo+ID4gPiA+ID4gPiA+ID4gPiAtCX0KPiA+ID4g PiA+ID4gPiA+ID4gLQo+ID4gPiA+ID4gPiA+ID4gPiAgCS8qIGNsZWFuIHVwIGV2ZW50IHdvcmtl ciB0aHJlYWRzICovCj4gPiA+ID4gPiA+ID4gPiA+ICAJZm9yIChpID0gMDsgaSA8IHByaXYtPm51 bV9jcnRjczsgaSsrKSB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJCWlmIChwcml2LT5ldmVudF90aHJl YWRbaV0udGhyZWFkKSB7Cj4gPiA+ID4gPiA+ID4gPiA+IEBAIC00NjksOSArNDQ1LDYgQEAgc3Rh dGljIGludCBtc21fZHJtX2luaXQoc3RydWN0IGRldmljZQo+ID4gKmRldiwKPiA+ID4gPiA+ID4g c3RydWN0Cj4gPiA+ID4gPiA+ID4gPiBkcm1fZHJpdmVyICpkcnYpCj4gPiA+ID4gPiA+ID4gPiA+ ICAJcHJpdi0+d3EgPSBhbGxvY19vcmRlcmVkX3dvcmtxdWV1ZSgibXNtIiwgMCk7Cj4gPiA+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ICAJSU5JVF9MSVNUX0hFQUQoJnByaXYtPmluYWN0 aXZlX2xpc3QpOwo+ID4gPiA+ID4gPiA+ID4gPiAtCUlOSVRfTElTVF9IRUFEKCZwcml2LT52Ymxh bmtfY3RybC5ldmVudF9saXN0KTsKPiA+ID4gPiA+ID4gPiA+ID4gLQlJTklUX1dPUksoJnByaXYt PnZibGFua19jdHJsLndvcmssIHZibGFua19jdHJsX3dvcmtlcik7Cj4gPiA+ID4gPiA+ID4gPiA+ IC0Jc3Bpbl9sb2NrX2luaXQoJnByaXYtPnZibGFua19jdHJsLmxvY2spOwo+ID4gPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiAgCWRybV9tb2RlX2NvbmZpZ19pbml0KGRkZXYpOwo+ID4g PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21zbS9tc21fZHJ2LmgKPiA+ID4gPiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL21zbS9t c21fZHJ2LmgKPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggMDVkMzNhNy4uZDRjYmRlMiAxMDA2NDQK PiA+ID4gPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKPiA+ ID4gPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21zbS9tc21fZHJ2LmgKPiA+ID4g PiA+ID4gPiA+ID4gQEAgLTc3LDEyICs3Nyw2IEBAIGVudW0gbXNtX21kcF9wbGFuZV9wcm9wZXJ0 eSB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJUExBTkVfUFJPUF9NQVhfTlVNCj4gPiA+ID4gPiA+ID4g PiA+ICB9Owo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiAtc3RydWN0IG1zbV92 YmxhbmtfY3RybCB7Cj4gPiA+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IHdvcmtfc3RydWN0IHdvcms7 Cj4gPiA+ID4gPiA+ID4gPiA+IC0Jc3RydWN0IGxpc3RfaGVhZCBldmVudF9saXN0Owo+ID4gPiA+ ID4gPiA+ID4gPiAtCXNwaW5sb2NrX3QgbG9jazsKPiA+ID4gPiA+ID4gPiA+ID4gLX07Cj4gPiA+ ID4gPiA+ID4gPiA+IC0KPiA+ID4gPiA+ID4gPiA+ID4gICNkZWZpbmUgTVNNX0dQVV9NQVhfUklO R1MgNAo+ID4gPiA+ID4gPiA+ID4gPiAgI2RlZmluZSBNQVhfSF9USUxFU19QRVJfRElTUExBWSAy Cj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IEBAIC0yMjUsNyArMjE5LDYgQEAg c3RydWN0IG1zbV9kcm1fcHJpdmF0ZSB7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJc3RydWN0IG5vdGlm aWVyX2Jsb2NrIHZtYXBfbm90aWZpZXI7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJc3RydWN0IHNocmlu a2VyIHNocmlua2VyOwo+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiAtCXN0cnVj dCBtc21fdmJsYW5rX2N0cmwgdmJsYW5rX2N0cmw7Cj4gPiA+ID4gPiA+ID4gPiA+ICAJc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnBtX3N0YXRlOwo+ID4gPiA+ID4gPiA+ID4gPiAgfTsKPiA+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gLS0KPiA+ID4gPiA+ID4gPiA+ID4gVGhlIFF1 YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIGlzIGEgbWVtYmVyIG9mIHRoZSBDb2RlCj4g PiA+ID4gQXVyb3JhCj4gPiA+ID4gPiA+ID4gPiBGb3J1bSwKPiA+ID4gPiA+ID4gPiA+ID4gYSBM aW51eCBGb3VuZGF0aW9uIENvbGxhYm9yYXRpdmUgUHJvamVjdAo+ID4gPiA+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiA+ID4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwo+ID4gPiA+ID4gPiA+ID4gPiBGcmVlZHJlbm8gbWFpbGluZyBsaXN0Cj4gPiA+ID4g PiA+ID4gPiA+IEZyZWVkcmVub0BsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiA+ID4gPiA+ ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9mcmVlZHJl bm8KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiA+ID4gSmV5a3VtYXIg Uwo+ID4gPiA+ID4KPiA+ID4gPiA+IC0tCj4gPiA+ID4gPiBKZXlrdW1hciBTCj4gPiA+IAo+ID4g PiAtLQo+ID4gPiBKZXlrdW1hciBTCj4gCj4gLS0gCj4gSmV5a3VtYXIgUwoKLS0gClNlYW4gUGF1 bCwgU29mdHdhcmUgRW5naW5lZXIsIEdvb2dsZSAvIENocm9taXVtIE9TCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QK ZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=