From mboxrd@z Thu Jan 1 00:00:00 1970 From: Laurent Pinchart Subject: Re: [PATCH v5 07/19] media: vsp1: dl: Support one-shot entries in the display list Date: Wed, 6 Mar 2019 01:14:40 +0200 Message-ID: <20190305231440.GO14928@pendragon.ideasonboard.com> References: <20190221103212.28764-1-laurent.pinchart+renesas@ideasonboard.com> <20190221103212.28764-8-laurent.pinchart+renesas@ideasonboard.com> <20190222143004.cdp2lj4ic3r4ogw4@DESKTOP-E1NTVVP.localdomain> <20190222144629.GA5020@pendragon.ideasonboard.com> <20190222150621.kxno4v64itco6mta@DESKTOP-E1NTVVP.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9B0516E03E for ; Tue, 5 Mar 2019 23:14:48 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190222150621.kxno4v64itco6mta@DESKTOP-E1NTVVP.localdomain> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Brian Starkey Cc: Laurent Pinchart , Liviu Dudau , Kieran Bingham , "dri-devel@lists.freedesktop.org" , "james qian wang (Arm Technology China)" , nd List-Id: dri-devel@lists.freedesktop.org SGkgQnJpYW4sCgpPbiBGcmksIEZlYiAyMiwgMjAxOSBhdCAwMzowNjoxOVBNICswMDAwLCBCcmlh biBTdGFya2V5IHdyb3RlOgo+IE9uIEZyaSwgRmViIDIyLCAyMDE5IGF0IDA0OjQ2OjI5UE0gKzAy MDAsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gPiBPbiBGcmksIEZlYiAyMiwgMjAxOSBhdCAw MjozMDowM1BNICswMDAwLCBCcmlhbiBTdGFya2V5IHdyb3RlOgo+ID4+IE9uIFRodSwgRmViIDIx LCAyMDE5IGF0IDEyOjMyOjAwUE0gKzAyMDAsIExhdXJlbnQgUGluY2hhcnQgd3JvdGU6Cj4gPj4+ IE9uZS1zaG90IGVudHJpZXMgYXJlIHVzZWQgYXMgYW4gYWx0ZXJuYXRpdmUgdG8gY29tbWl0dGlu ZyBhIGNvbXBsZXRlIG5ldwo+ID4+PiBkaXNwbGF5IGxpc3Qgd2hlbiBhIGNvdXBsZSBvZiByZWdp c3RlcnMgbmVlZCB0byBiZSB3cml0dGVuIGZvciBvbmUgZnJhbWUKPiA+Pj4gYW5kIHRoZW4gcmVz ZXQgdG8gYW5vdGhlciB2YWx1ZSBmb3IgYWxsIHN1YnNlcXVlbnQgZnJhbWVzLiBUaGlzIHdpbGwg YmUKPiA+Pj4gdXNlZCB0byBpbXBsZW1lbnQgd3JpdGViYWNrIHN1cHBvcnQgdGhhdCB3aWxsIG5l ZWQgdG8gZW5hYmxlIHdyaXRlYmFjawo+ID4+PiBmb3IgdGhlIGR1cmF0aW9uIG9mIGEgc2luZ2xl IGZyYW1lLgo+ID4+PiAKPiA+Pj4gU2lnbmVkLW9mZi1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1 cmVudC5waW5jaGFydCtyZW5lc2FzQGlkZWFzb25ib2FyZC5jb20+Cj4gPj4+IC0tLQo+ID4+PiAg ZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZGwuYyB8IDc4ICsrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ID4+PiAgZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZGwu aCB8ICAzICsrCj4gPj4+ICAyIGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKykKPiA+Pj4g Cj4gPj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lZGlhL3BsYXRmb3JtL3ZzcDEvdnNwMV9kbC5j IGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZGwuYwo+ID4+PiBpbmRleCA4ODZi M2E2OWQzMjkuLjdiNGQyNTJiZmRlNyAxMDA2NDQKPiA+Pj4gLS0tIGEvZHJpdmVycy9tZWRpYS9w bGF0Zm9ybS92c3AxL3ZzcDFfZGwuYwo+ID4+PiArKysgYi9kcml2ZXJzL21lZGlhL3BsYXRmb3Jt L3ZzcDEvdnNwMV9kbC5jCj4gPj4+IEBAIC0xMTUsNiArMTE1LDEyIEBAIHN0cnVjdCB2c3AxX2Rs X2JvZHkgewo+ID4+PiAgCj4gPj4+ICAJdW5zaWduZWQgaW50IG51bV9lbnRyaWVzOwo+ID4+PiAg CXVuc2lnbmVkIGludCBtYXhfZW50cmllczsKPiA+Pj4gKwo+ID4+PiArCXVuc2lnbmVkIGludCBu dW1fcGF0Y2hlczsKPiA+Pj4gKwlzdHJ1Y3Qgewo+ID4+PiArCQlzdHJ1Y3QgdnNwMV9kbF9lbnRy eSAqZW50cnk7Cj4gPj4+ICsJCXUzMiBkYXRhOwo+ID4+PiArCX0gcGF0Y2hlc1syXTsKPiA+Pj4g IH07Cj4gPj4+ICAKPiA+Pj4gIC8qKgo+ID4+PiBAQCAtMzYxLDYgKzM2Nyw3IEBAIHZvaWQgdnNw MV9kbF9ib2R5X3B1dChzdHJ1Y3QgdnNwMV9kbF9ib2R5ICpkbGIpCj4gPj4+ICAJCXJldHVybjsK PiA+Pj4gIAo+ID4+PiAgCWRsYi0+bnVtX2VudHJpZXMgPSAwOwo+ID4+PiArCWRsYi0+bnVtX3Bh dGNoZXMgPSAwOwo+ID4+PiAgCj4gPj4+ICAJc3Bpbl9sb2NrX2lycXNhdmUoJmRsYi0+cG9vbC0+ bG9jaywgZmxhZ3MpOwo+ID4+PiAgCWxpc3RfYWRkX3RhaWwoJmRsYi0+ZnJlZSwgJmRsYi0+cG9v bC0+ZnJlZSk7Cj4gPj4+IEBAIC0zODgsNiArMzk1LDQ3IEBAIHZvaWQgdnNwMV9kbF9ib2R5X3dy aXRlKHN0cnVjdCB2c3AxX2RsX2JvZHkgKmRsYiwgdTMyIHJlZywgdTMyIGRhdGEpCj4gPj4+ICAJ ZGxiLT5udW1fZW50cmllcysrOwo+ID4+PiAgfQo+ID4+PiAgCj4gPj4+ICsvKioKPiA+Pj4gKyAq IHZzcDFfZGxfYm9keV93cml0ZV9vbmVzaG90IC0gV3JpdGUgYSByZWdpc3RlciB0byBhIGRpc3Bs YXkgbGlzdCBib2R5IGZvciBhCj4gPj4+ICsgKglzaW5nbGUgZnJhbWUKPiA+Pj4gKyAqIEBkbGI6 IFRoZSBib2R5Cj4gPj4+ICsgKiBAcmVnOiBUaGUgcmVnaXN0ZXIgYWRkcmVzcwo+ID4+PiArICog QHZhbHVlOiBUaGUgcmVnaXN0ZXIgdmFsdWUKPiA+Pj4gKyAqIEByZXNldF92YWx1ZTogVGhlIHZh bHVlIHRvIHJlc2V0IHRoZSByZWdpc3RlciB0byBhdCB0aGUgbmV4dCB2YmxhbmsKPiA+Pj4gKyAq Cj4gPj4+ICsgKiBEaXNwbGF5IGxpc3RzIGluIGNvbnRpbnVvdXMgbW9kZSBhcmUgcmUtdXNlZCBi eSB0aGUgaGFyZHdhcmUgZm9yIHN1Y2Nlc3NpdmUKPiA+Pj4gKyAqIGZyYW1lcyB1bnRpbCBhIG5l dyBkaXNwbGF5IGxpc3QgaXMgY29tbWl0dGVkLiBDaGFuZ2luZyB0aGUgVlNQIGNvbmZpZ3VyYXRp b24KPiA+Pj4gKyAqIG5vcm1hbGx5IHJlcXVpcmVzIGNyZWF0aW5nIGFuZCBjb21taXR0aW5nIGEg bmV3IGRpc3BsYXkgbGlzdC4gVGhpcyBmdW5jdGlvbgo+ID4+PiArICogb2ZmZXJzIGFuIGFsdGVy bmF0aXZlIHJhY2UtZnJlZSB3YXkgYnkgd3JpdGluZyBhIEB2YWx1ZSB0byB0aGUgQHJlZ2lzdGVy IGluCj4gPj4+ICsgKiB0aGUgZGlzcGxheSBsaXN0IGJvZHkgZm9yIGEgc2luZ2xlIGZyYW1lLCBz cGVjaWZ5aW5nIGluIEByZXNldF92YWx1ZSB0aGUKPiA+Pj4gKyAqIHZhbHVlIHRvIHJlc2V0IHRo ZSByZWdpc3RlciB0byBvbmUgdmJsYW5rIGFmdGVyIHRoZSBkaXNwbGF5IGxpc3QgaXMKPiA+Pj4g KyAqIGNvbW1pdHRlZC4KPiA+Pj4gKyAqCj4gPj4+ICsgKiBUaGUgbWF4aW11bSBudW1iZXIgb2Yg b25lLXNob3QgZW50cmllcyBpcyBsaW1pdGVkIHRvIDIgcGVyIGRpc3BsYXkgbGlzdCBib2R5LAo+ ID4+PiArICogYW5kIG9uZS1zaG90IGVudHJpZXMgYXJlIGNvdW50ZWQgaW4gdGhlIHRvdGFsIG51 bWJlciBvZiBlbnRyaWVzIHNwZWNpZmllZAo+ID4+PiArICogd2hlbiB0aGUgYm9keSBpcyBhbGxv Y2F0ZWQgYnkgdnNwMV9kbF9ib2R5X2FsbG9jKCkuCj4gPj4+ICsgKi8KPiA+Pj4gK3ZvaWQgdnNw MV9kbF9ib2R5X3dyaXRlX29uZXNob3Qoc3RydWN0IHZzcDFfZGxfYm9keSAqZGxiLCB1MzIgcmVn LCB1MzIgdmFsdWUsCj4gPj4+ICsJCQkJdTMyIHJlc2V0X3ZhbHVlKQo+ID4+PiArewo+ID4+PiAr CWlmIChXQVJOX09OQ0UoZGxiLT5udW1fZW50cmllcyA+PSBkbGItPm1heF9lbnRyaWVzLAo+ID4+ PiArCQkgICAgICAiRExCIHNpemUgZXhjZWVkZWQgKG1heCAldSkiLCBkbGItPm1heF9lbnRyaWVz KSkKPiA+Pj4gKwkJcmV0dXJuOwo+ID4+PiArCj4gPj4+ICsJaWYgKFdBUk5fT05DRShkbGItPm51 bV9wYXRjaGVzID49IEFSUkFZX1NJWkUoZGxiLT5wYXRjaGVzKSwKPiA+Pj4gKwkJICAgICAgIkRM QiBwYXRjaGVzIHNpemUgZXhjZWVkZWQgKG1heCAlenUpIiwKPiA+Pj4gKwkJICAgICAgQVJSQVlf U0laRShkbGItPnBhdGNoZXMpKSkKPiA+Pj4gKwkJcmV0dXJuOwo+ID4+PiArCj4gPj4+ICsJZGxi LT5wYXRjaGVzW2RsYi0+bnVtX3BhdGNoZXNdLmVudHJ5ID0gJmRsYi0+ZW50cmllc1tkbGItPm51 bV9lbnRyaWVzXTsKPiA+Pj4gKwlkbGItPnBhdGNoZXNbZGxiLT5udW1fcGF0Y2hlc10uZGF0YSA9 IHJlc2V0X3ZhbHVlOwo+ID4+PiArCWRsYi0+bnVtX3BhdGNoZXMrKzsKPiA+Pj4gKwo+ID4+PiAr CWRsYi0+ZW50cmllc1tkbGItPm51bV9lbnRyaWVzXS5hZGRyID0gcmVnOwo+ID4+PiArCWRsYi0+ ZW50cmllc1tkbGItPm51bV9lbnRyaWVzXS5kYXRhID0gdmFsdWU7Cj4gPj4+ICsJZGxiLT5udW1f ZW50cmllcysrOwo+ID4+PiArfQo+ID4+PiArCj4gPj4+ICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQo+ID4+PiAgICogRGlzcGxheSBMaXN0IEV4dGVuZGVkIENvbW1hbmQgTWFuYWdlbWVudAo+ID4+ PiAgICovCj4gPj4+IEBAIC02NTIsNiArNzAwLDcgQEAgc3RhdGljIHZvaWQgX192c3AxX2RsX2xp c3RfcHV0KHN0cnVjdCB2c3AxX2RsX2xpc3QgKmRsKQo+ID4+PiAgCSAqIGhhcyBhdCBsZWFzdCBv bmUgYm9keSwgdGh1cyB3ZSByZWluaXRpYWxpc2UgdGhlIGVudHJpZXMgbGlzdC4KPiA+Pj4gIAkg Ki8KPiA+Pj4gIAlkbC0+Ym9keTAtPm51bV9lbnRyaWVzID0gMDsKPiA+Pj4gKwlkbC0+Ym9keTAt Pm51bV9wYXRjaGVzID0gMDsKPiA+Pj4gIAo+ID4+PiAgCWxpc3RfYWRkX3RhaWwoJmRsLT5saXN0 LCAmZGwtPmRsbS0+ZnJlZSk7Cj4gPj4+ICB9Cj4gPj4+IEBAIC05MzAsNiArOTc5LDM1IEBAIHZv aWQgdnNwMV9kbF9saXN0X2NvbW1pdChzdHJ1Y3QgdnNwMV9kbF9saXN0ICpkbCwgdW5zaWduZWQg aW50IGRsX2ZsYWdzKQo+ID4+PiAgICogRGlzcGxheSBMaXN0IE1hbmFnZXIKPiA+Pj4gICAqLwo+ ID4+PiAgCj4gPj4+ICsvKioKPiA+Pj4gKyAqIHZzcDFfZGxtX2lycV9kaXNwbGF5X3N0YXJ0IC0g RGlzcGxheSBsaXN0IGhhbmRsZXIgZm9yIHRoZSBkaXNwbGF5IHN0YXJ0Cj4gPj4+ICsgKglpbnRl cnJ1cHQKPiA+Pj4gKyAqIEBkbG06IHRoZSBkaXNwbGF5IGxpc3QgbWFuYWdlcgo+ID4+PiArICoK PiA+Pj4gKyAqIEFwcGx5IGFsbCBvbmUtc2hvdCBwYXRjaGVzIHJlZ2lzdGVyZWQgZm9yIHRoZSBh Y3RpdmUgZGlzcGxheSBsaXN0Lgo+ID4+PiArICovCj4gPj4+ICt2b2lkIHZzcDFfZGxtX2lycV9k aXNwbGF5X3N0YXJ0KHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKmRsbSkKPiA+Pj4gK3sKPiA+Pj4g KwlzdHJ1Y3QgdnNwMV9kbF9ib2R5ICpkbGI7Cj4gPj4+ICsJc3RydWN0IHZzcDFfZGxfbGlzdCAq ZGw7Cj4gPj4+ICsJdW5zaWduZWQgaW50IGk7Cj4gPj4+ICsKPiA+Pj4gKwlzcGluX2xvY2soJmRs bS0+bG9jayk7Cj4gPj4+ICsKPiA+Pj4gKwlkbCA9IGRsbS0+YWN0aXZlOwo+ID4+PiArCWlmICgh ZGwpCj4gPj4+ICsJCWdvdG8gZG9uZTsKPiA+Pj4gKwo+ID4+PiArCWxpc3RfZm9yX2VhY2hfZW50 cnkoZGxiLCAmZGwtPmJvZGllcywgbGlzdCkgewo+ID4+PiArCQlmb3IgKGkgPSAwOyBpIDwgZGxi LT5udW1fcGF0Y2hlczsgKytpKQo+ID4+PiArCQkJZGxiLT5wYXRjaGVzW2ldLmVudHJ5LT5kYXRh ID0gZGxiLT5wYXRjaGVzW2ldLmRhdGE7Cj4gPj4+ICsJCWRsYi0+bnVtX3BhdGNoZXMgPSAwOwo+ ID4+PiArCX0KPiA+Pj4gKwo+ID4+PiArZG9uZToKPiA+Pj4gKwlzcGluX3VubG9jaygmZGxtLT5s b2NrKTsKPiA+Pj4gK30KPiA+Pj4gKwo+ID4+IAo+ID4+IFdlJ3ZlIGdvdCBzb21lIEhXIHdoaWNo IGRvZXNuJ3Qgc3VwcG9ydCBvbmUtc2hvdCB3cml0ZWJhY2ssIGFuZCB1c2UgYQo+ID4+IHNpbWls YXIgdHJpY2sgdG8gdHJ5IGFuZCBkaXNhYmxlIHdyaXRlYmFjayBpbW1lZGlhdGVseSBhZnRlciB0 aGUgZmxpcC4KPiA+PiAKPiA+PiBXZSByYW4gaW50byBpc3N1ZXMgd2hlcmUgdGhlICJzdGFydCIg aW50ZXJydXB0IHdvdWxkbid0IHJ1biBpbiB0aW1lIHRvCj4gPj4gbWFrZSBzdXJlIHRoZSB3cml0 ZWJhY2sgZGlzYWJsZSB3YXMgY29tbWl0dGVkIGJlZm9yZSB0aGUgbmV4dCBmcmFtZS4KPiA+PiBX ZSBoYXZlIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciB0aGUgZGlzYWJsZSByZWFsbHkgaGFwcGVu ZWQgaW4gdGltZSwKPiA+PiBiZWZvcmUgd2UgcmVsZWFzZSB0aGUgb3V0cHV0IGJ1ZmZlci4KPiA+ PiAKPiA+PiBNaWdodCB5b3UgaGF2ZSBhIHNpbWlsYXIgcHJvYmxlbSBoZXJlPwo+ID4gCj4gPiBX ZSBtYXksIGJ1dCB0aGVyZSdzIG5vIHByb3Zpc2lvbiBhdCB0aGUgaGFyZHdhcmUgbGV2ZWwgdG8g Y2hlY2sgaWYgdGhlCj4gPiBjb25maWd1cmF0aW9uIHVwZGF0ZWQgaGFwcGVuZWQgaW4gdGltZS4g SSBjb3VsZCBhZGQgc29tZSBzYWZldHkgY2hlY2tzCj4gPiBidXQgSSBiZWxpZXZlIHRoZXkgd291 bGQgYmUgcmFjeSBpbiB0aGUgYmVzdCBjYXNlIDotKAo+IAo+IFdlIG1hbmFnZWQgdG8gZmluZCAo d2hhdCBJIGJlbGlldmUgdG8gYmUuLi4pIGEgbm9uLXJhY3kgd2F5LCBidXQgaXQKPiB3aWxsIG9m IGNvdXJzZSBkZXBlbmQgYSBsb3Qgb24gdGhlIEhXIGJlaGF2aW91ciwgc28gSSdsbCBsZWF2ZSBp dCB0bwo+IHlvdXIgYmVzdCBqdWRnZW1lbnQuCj4gCj4gV2UgYmFzaWNhbGx5IGhhdmUgYSAiY29u ZmlndXJhdGlvbiBjb21taXR0ZWQiIGludGVycnVwdCB3aGljaCB3ZSBjYW4KPiB1c2UgdG8gc2V0 IGEgZmxhZyBpbmRpY2F0aW5nIHdyaXRlYmFjayB3YXMgZGlzYWJsZWQuCgpUaGUgd2F5IG15IGhh cmR3YXJlIGlzIG9wZXJhdGVkIGlzLCByb3VnaGx5LCBhcyBmb2xsb3dzOgoKLSBUaGUgZHJpdmVy IHByZXBhcmVzIGEgbGlzdCBvZiB2YWx1ZXMgdG8gd3JpdGUgdG8gcmVnaXN0ZXJzIGFuZCBzdG9y ZXMKICB0aGVtIGluIERNQS1hYmxlIG1lbW9yeS4gVGhpcyBkb2Vzbid0IGludm9sdmUgdGhlIGhh cmR3YXJlLCBhbmQgc28gaXMKICBjb21wbGV0ZWx5IGFzeW5jaHJvbm91cyB0byBoYXJkd2FyZSBv cGVyYXRpb24uCgotIFRoZSBkcml2ZXIgdGhlbiBzZXRzIGEgcmVnaXN0ZXIgd2l0aCB0aGUgcG9p bnRlciB0byB0aGUgcmVnaXN0ZXJzCiAgbGlzdC4KCi0gQXQgdGhlIGVuZCBvZiB0aGUgY3VycmVu dCBmcmFtZSwgdGhlIGhhcmR3YXJlIHJlYWRzIHRoZSBtZW1vcnkgYWRkcmVzcwogIG9mIHRoZSBy ZWdpc3RlcnMgbGlzdCBhbmQgRE1BcyB2YWx1ZXMgdG8gcmVnaXN0ZXIuIFRoaXMgb3BlcmF0aW9u IGlzCiAgZmFzdCBhbmQgb2NjdXJzIGZ1bGx5IGR1cmluZyB2ZXJ0aWNhbCBibGFua2luZy4KCi0g VGhlIGhhcmR3YXJlIHRoZW4gd2FpdHMgZm9yIHRoZSBzdGFydCBvZiB0aGUgZnJhbWUsIGFuZCBi ZWdpbnMKICBwcm9jZXNzaW5nIHRoZSBmcmFtZWJ1ZmZlcnMgdG8gc2VuZCB0aGUgZnJhbWUgdG8g dGhlIGRpc3BsYXkuCgotIElmIG5vIG5ldyByZWdpc3RlcnMgbGlzdCBpcyBwcm92aWRlZCBmb3Ig dGhlIG5leHQgZnJhbWUsIHRoZSBjdXJyZW50CiAgbGlzdCBpcyByZXVzZWQuCgpUd28gaW50ZXJy dXB0cyBhcmUgcHJvdmlkZWQsIG9uZSBhdCB0aGUgc3RhcnQgb2YgdGhlIGZyYW1lIGFuZCBvbmUg YXQKdGhlIGVuZCBvZiB0aGUgZnJhbWUuIFRoZSBkcml2ZXIgdXNlcyB0aGUgZW5kIG9mIGZyYW1l IGludGVycnVwdCB0bwpzaWduYWwgdmVydGljYWwgYmxhbmtpbmcgYW5kIHBhZ2UgZmxpcCBjb21w bGV0aW9uIHRvIERSTS4KClRoZSBlbmQgb2YgZnJhbWUgaW50ZXJydXB0IGlzIGFsc28gdXNlZCB0 byBzY2hlZHVsZSBhdG9taWMgY29tbWl0cy4gVGhlCmhhcmR3YXJlIHF1ZXVlIGRlcHRoIGZvciBh dG9taWMgY29tbWl0cyBpcyBqdXN0IG9uZSwgc28gdGhlIGRyaXZlciBoYXMKdG8gd2FpdCB1bnRp bCB0aGUgcHJldmlvdXMgY29tbWl0IGhhcyBiZWVuIHByb2Nlc3NlZCBiZWZvcmUgd3JpdGluZyB0 aGUKbmV3IHJlZ2lzdGVycyBsaXN0IGFkZHJlc3MgdG8gdGhlIGhhcmR3YXJlLiBUbyBzb2x2ZSB0 aGUgcmFjZSBiZXR3ZWVuCnRoZSBlbmQgb2YgZnJhbWUgaW50ZXJydXB0IGFuZCB0aGUgYWRkcmVz cyB3cml0ZSwgdGhlIGhhcmR3YXJlIHByb3ZpZGVzCmEgc3RhdHVzIGJpdCB0aGF0IGlzIHNldCB0 byAxIHdoZW4gdGhlIGFkZHJlc3MgaXMgd3JpdHRlbiwgYW5kIHJlc2V0IHRvCjAgd2hlbiB0aGUg aGFyZHdhcmUgc3RhcnRzIHByb2Nlc3NpbmcgdGhlIHJlZ2lzdGVycyBsaXN0LgoKV2UgdGh1cyBo YXZlIHRocmVlIHN0YXRlcyBmb3IgYW4gYXRvbWljIGNvbW1pdDoKCi0gYWN0aXZlLCB3aGVyZSB0 aGUgY29ycmVzcG9uZGluZyByZWdpc3RlcnMgbGlzdCBhZGRyZXNzIGhhcyBiZWVuCiAgd3JpdHRl biB0byB0aGUgaGFyZHdhcmUsIGFuZCBwcm9jZXNzZWQKCi0gcXVldWVkLCB3aGVyZSB0aGUgY29y cmVzcG9uZGluZyByZWdpc3RlcnMgbGlzdCBhZGRyZXNzIGhhcyBiZWVuCiAgd3JpdHRlbiB0byB0 aGUgaGFyZHdhcmUgYnV0IG5vdCBwcm9jZXNzZWQgeWV0CgotIHBlbmRpbmcsIHdoZXJlIHRoZSBj b3JyZXNwb25kaW5nIHJlZ2lzdGVycyBsaXN0IGFkZHJlc3MgaGFzbid0IGJlZW4KICB3cml0dGVu IHRvIHRoZSBoYXJkd2FyZSB5ZXQKClRoZSBzdGF0dXMgYml0IG1lbnRpb25lZCBhYm92ZSBhbGxv d3MgdXMgdG8gdGVsbCBpZiBhIGxpc3QgZXhpc3RzIGluIHRoZQpxdWV1ZWQgc3RhdGUuCgpBdCBm cmFtZSBlbmQgdGltZSwgaWYgdGhlIHN0YXR1cyBiaXQgaXMgc2V0LCB3ZSBoYXZlIHBvdGVudGlh bGx5IGxvc3QKdGhlIHJhY2UgYmV0d2VlbiB3cml0aW5nIHRoZSBuZXcgcmVnaXN0ZXJzIGxpc3Qg YW5kIHRoZSBmcmFtZSBlbmQKaW50ZXJydXB0LCBzbyB3ZSB3YWl0IGZvciBvbmUgbW9yZSB2Ymxh bmsuIE90aGVyd2lzZSwgaWYgYSBsaXN0IHdhcwpxdWV1ZWQsIHdlIG1vdmUgaXQgdG8gdGhlIGFj dGl2ZSBzdGF0ZSwgYW5kIHJldGlyZSB0aGUgYWN0aXZlIGxpc3QuIElmIGEKbGlzdCB3YXMgcGVu ZGluZywgd2Ugd3JpdGUgaXRzIGFkZHJlc3MgdG8gdGhlIGhhcmR3YXJlLCBhbmQgbW92ZSBpdCB0 bwp0aGUgcXVldWVkIHN0YXRlLgoKVG8gc2NoZWR1bGUgd3JpdGViYWNrIEkgZW5kZWQgdXAgdXNp bmcgdGhlIGZyYW1lIHN0YXJ0IGludGVycnVwdC4KV3JpdGViYWNrIGhhcyBhIHNwZWNpZmljIG5l ZWQgaW4gdGhhdCBpdCByZXF1aXJlcyBlbmFibGluZyB0aGUgbWVtb3J5CndyaXRlIGludGVyZmFj ZSBmb3IgYSBzaW5nbGUgZnJhbWUsIGFuZCB0aGF0IGlzIG5vdCBzb21ldGhpbmcgdGhlCmhhcmR3 YXJlIHN1cHBvcnRzIGRpcmVjdGx5LiBJIGNhbid0IGVpdGhlciBxdWV1ZSBhIG5ldyByZWdpc3Rl cnMgbGlzdAp3aXRoIHRoZSB3cml0ZSBpbnRlcmZhY2UgZGlzYWJsZWQgcmlnaHQgYWZ0ZXIgdGhl IGxpc3Qgd2l0aCB0aGUKd3JpdGViYWNrIHJlcXVlc3QgYmVjYW1lIGFjdGl2ZSwgYXMgYW55IGF0 b21pYyBjb21taXQgd291bGQgdGhlbiBiZQpkZWxheWVkIGJ5IGFuIGV4dHJhIGZyYW1lLiBJIHRo dXMgZW5kZWQgdXAgbW9kaWZ5aW5nIHRoZSByZWdpc3RlcnMgbGlzdAppbiBwbGFjZSBhdCBmcmFt ZSBzdGFydCB0aW1lLCB3aGljaCBpcyByaWdodCBhZnRlciB0aGUgYWN0aXZlIHJlZ2lzdGVyCmxp c3QgaGFzIGJlZW4gRE1BJ2VkIHRvIGhhcmR3YXJlIHJlZ2lzdGVycy4gV2UgaGF2ZSB0aGUgZHVy YXRpb24gb2YgYQp3aG9sZSBmcmFtZSB0byBkbyBzbywgYmVmb3JlIHRoZSBoYXJkd2FyZSB0cmFu c2ZlcnMgdGhlIHNhbWUgbGlzdCBhZ2FpbgphdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBuZXh0IGZy YW1lLgoKVGhlcmUgaXMgYSByYWNlIGNvbmRpdGlvbiB0aGVyZSwgYXMgdGhlIGluLXBsYWNlIG1v ZGlmaWNhdGlvbiBvZiB0aGUKYWN0aXZlIGxpc3QgY291bGQgYmUgZG9uZSBhZnRlciB0aGUgZW5k IG9mIHRoZSBmcmFtZSBpZiB0aGUgaW50ZXJydXB0CmxhdGVuY3kgZ2V0cyB0b28gbGFyZ2UuIEkg ZG9uJ3Qgc2VlIGhvdyBJIGNvdWxkIHNvbHZlIHRoYXQsIGFzIEkgY291bGQKd3JpdGUgdGhlIHZh bHVlIGFmdGVyIHRoZSBoYXJkd2FyZSBzdGFydHMgcHJvY2Vzc2luZyB0aGUgYWN0aXZlIGxpc3Qg YXQKZnJhbWUgZW5kIHRpbWUsIGJ1dCBiZWZvcmUgdGhlIGludGVycnVwdCBpcyBub3RpZmllZC4K Cj4gPiBOb3RlIHRoYXQgd2UgaGF2ZSB0aGUgZHVyYXRpb24gb2YgYSBjb21wbGV0ZSBmcmFtZSB0 byBkaXNhYmxlIHdyaXRlYmFjaywKPiA+IGFzIHdlIHJlY2VpdmUgYW4gaW50ZXJydXB0IHdoZW4g dGhlIGZyYW1lIHN0YXJ0cywgYW5kIGhhdmUgdW50aWwgdmJsYW5rCj4gPiB0byB1cGRhdGUgdGhl IGNvbmZpZ3VyYXRpb24uIEl0J3MgdGh1cyBzbGlnaHRseSBiZXR0ZXIgdGhhbiBoYXZpbmcgdG8K PiA+IGRpc2FibGUgd3JpdGViYWNrIGJldHdlZW4gdmJsYW5rIGFuZCB0aGUgc3RhcnQgb2YgdGhl IG5leHQgZnJhbWUuCj4gCj4gWWVhaC4uLiB3ZSBoYXZlIGEgd2hvbGUgZnJhbWUgdG9vLiBJJ20g c3RydWdnbGluZyB0byBmaW5kIG91ciB3aWtpCj4gcGFnZSB3aXRoIHRoZSBkYXRhLCBidXQgYW5l Y2RvdGFsbHkgdGhlcmUncyBzb21lIChvdXQtb2YtdHJlZSkgZHJpdmVycwo+IHdoaWNoIGtlZXAg aW50ZXJydXB0cyBtYXNrZWQgZm9yIGEgX3JlYWxseSBsb25nXyB0aW1lLiBJdCdzIG5pY2UgaWYK PiB5b3UgZG9uJ3QgaGF2ZSB0byBjYXJlIGFib3V0IHRob3NlIDotKQoKSSBvbmx5IHByb3ZpZGUg dHdvIG9wdGlvbnM6IG5vdCBteSBwcm9ibGVtLCBvciBnaXZlIG1lIHRoZSBzb3VyY2UgY29kZQph bmQgZG9jdW1lbnRhdGlvbiBhbmQgbGV0IG1lIHVwc3RyZWFtIGEgY2xlYW4gdmVyc2lvbiBvZiB0 aGUgb3V0LW9mLXRyZWUKZHJpdmVycyA6LSkKCj4gPj4+ICAvKioKPiA+Pj4gICAqIHZzcDFfZGxt X2lycV9mcmFtZV9lbmQgLSBEaXNwbGF5IGxpc3QgaGFuZGxlciBmb3IgdGhlIGZyYW1lIGVuZCBp bnRlcnJ1cHQKPiA+Pj4gICAqIEBkbG06IHRoZSBkaXNwbGF5IGxpc3QgbWFuYWdlcgo+ID4+PiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3ZzcDFfZGwuaCBiL2RyaXZl cnMvbWVkaWEvcGxhdGZvcm0vdnNwMS92c3AxX2RsLmgKPiA+Pj4gaW5kZXggZTBmZGIxNDVlNmVk Li5mODQ1NjA3YWJjNGMgMTAwNjQ0Cj4gPj4+IC0tLSBhL2RyaXZlcnMvbWVkaWEvcGxhdGZvcm0v dnNwMS92c3AxX2RsLmgKPiA+Pj4gKysrIGIvZHJpdmVycy9tZWRpYS9wbGF0Zm9ybS92c3AxL3Zz cDFfZGwuaAo+ID4+PiBAQCAtNTQsNiArNTQsNyBAQCBzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICp2 c3AxX2RsbV9jcmVhdGUoc3RydWN0IHZzcDFfZGV2aWNlICp2c3AxLAo+ID4+PiAgCQkJCQl1bnNp Z25lZCBpbnQgcHJlYWxsb2MpOwo+ID4+PiAgdm9pZCB2c3AxX2RsbV9kZXN0cm95KHN0cnVjdCB2 c3AxX2RsX21hbmFnZXIgKmRsbSk7Cj4gPj4+ICB2b2lkIHZzcDFfZGxtX3Jlc2V0KHN0cnVjdCB2 c3AxX2RsX21hbmFnZXIgKmRsbSk7Cj4gPj4+ICt2b2lkIHZzcDFfZGxtX2lycV9kaXNwbGF5X3N0 YXJ0KHN0cnVjdCB2c3AxX2RsX21hbmFnZXIgKmRsbSk7Cj4gPj4+ICB1bnNpZ25lZCBpbnQgdnNw MV9kbG1faXJxX2ZyYW1lX2VuZChzdHJ1Y3QgdnNwMV9kbF9tYW5hZ2VyICpkbG0pOwo+ID4+PiAg c3RydWN0IHZzcDFfZGxfYm9keSAqdnNwMV9kbG1fZGxfYm9keV9nZXQoc3RydWN0IHZzcDFfZGxf bWFuYWdlciAqZGxtKTsKPiA+Pj4gIAo+ID4+PiBAQCAtNzEsNiArNzIsOCBAQCBzdHJ1Y3QgdnNw MV9kbF9ib2R5ICp2c3AxX2RsX2JvZHlfZ2V0KHN0cnVjdCB2c3AxX2RsX2JvZHlfcG9vbCAqcG9v bCk7Cj4gPj4+ICB2b2lkIHZzcDFfZGxfYm9keV9wdXQoc3RydWN0IHZzcDFfZGxfYm9keSAqZGxi KTsKPiA+Pj4gIAo+ID4+PiAgdm9pZCB2c3AxX2RsX2JvZHlfd3JpdGUoc3RydWN0IHZzcDFfZGxf Ym9keSAqZGxiLCB1MzIgcmVnLCB1MzIgZGF0YSk7Cj4gPj4+ICt2b2lkIHZzcDFfZGxfYm9keV93 cml0ZV9vbmVzaG90KHN0cnVjdCB2c3AxX2RsX2JvZHkgKmRsYiwgdTMyIHJlZywgdTMyIHZhbHVl LAo+ID4+PiArCQkJCXUzMiByZXNldF92YWx1ZSk7Cj4gPj4+ICBpbnQgdnNwMV9kbF9saXN0X2Fk ZF9ib2R5KHN0cnVjdCB2c3AxX2RsX2xpc3QgKmRsLCBzdHJ1Y3QgdnNwMV9kbF9ib2R5ICpkbGIp Owo+ID4+PiAgaW50IHZzcDFfZGxfbGlzdF9hZGRfY2hhaW4oc3RydWN0IHZzcDFfZGxfbGlzdCAq aGVhZCwgc3RydWN0IHZzcDFfZGxfbGlzdCAqZGwpOwo+ID4+PiAgCgotLSAKUmVnYXJkcywKCkxh dXJlbnQgUGluY2hhcnQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVs