From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 4/4] drm/i915/icl: Add Multi-segmented gamma support Date: Tue, 7 May 2019 17:27:50 +0300 Message-ID: <20190507142750.GP24299@intel.com> References: <20190507135644.23882-1-shashank.sharma@intel.com> <20190507135644.23882-5-shashank.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5F4F86E7DD for ; Tue, 7 May 2019 14:27:54 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190507135644.23882-5-shashank.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Shashank Sharma Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBNYXkgMDcsIDIwMTkgYXQgMDc6MjY6NDRQTSArMDUzMCwgU2hhc2hhbmsgU2hhcm1h IHdyb3RlOgo+IElDTCBpbnRyb2R1Y2VzIGEgbmV3IGdhbW1hIGNvcnJlY3Rpb24gbW9kZSBpbiBk aXNwbGF5IGVuZ2luZSwgY2FsbGVkCj4gbXVsdGktc2VnbWVudGVkLWdhbW1hIG1vZGUuIFRoaXMg bW9kZSBhbGxvd3MgdXNlcnMgdG8gcHJvZ3JhbSB0aGUKPiBkYXJrZXIgcmVnaW9uIG9mIHRoZSBn YW1tYSBjdXJ2ZSB3aXRoIHN1ZXByZmluZSBwcmVjaXNpb24uIEFuCj4gZXhhbXBsZSB1c2UgY2Fz ZSBmb3IgdGhpcyBpcyBIRFIgY3VydmVzIChsaWtlIFBRIFNULTIwODQpLgo+IAo+IElmIHdlIHBs b3QgYSBnYW1tYSBjb3JyZWN0aW9uIGN1cnZlIGZyb20gdmFsdWUgcmFuZ2UgYmV0d2VlbiAwLjAg dG8gMS4wLAo+IElDTCdzIG11bHRpLXNlZ21lbnQgaGFzIDMgZGlmZmVyZW50IHNlY3Rpb25zOgo+ IC0gc3VwZXJmaW5lIHNlZ21lbnQ6IDkgdmFsdWVzLCByYW5nZXMgYmV0d2VlbiAwIC0gMS8oMTI4 ICogMjU2KQo+IC0gZmluZSBzZWdtZW50OiAyNTcgdmFsdWVzLCByYW5nZXMgYmV0d2VlbiAwIC0g MS8oMTI4KQo+IC0gY29yYXNlIHNlZ21lbnQ6IDI1NyB2YWx1ZXMsIHJhbmdlcyBiZXR3ZWVuIDAg LSAxCj4gCj4gVGhpcyBwYXRjaDoKPiAtIENoYW5nZXMgZ2FtbWEgTFVUcyBzaXplIGZvciBJQ0wv R0VOMTEgdG8gMjYyMTQ0IGVudHJpZXMgKDggKiAxMjggKiAyNTYpLAo+ICAgc28gdGhhdCB1c2Vy c3BhY2UgY2FuIHByb2dyYW0gd2l0aCBoaWdoZXN0IHByZWNpc2lvbiBzdXBwb3J0ZWQuCj4gLSBD aGFuZ2VzIGRlZmF1bHQgZ2FtbWEgbW9kZSAobm9uLWxlZ2FjeSkgdG8gbXVsdGktc2VnbWVudGVk LWdhbW1hIG1vZGUuCj4gLSBBZGRzIGZ1bmN0aW9ucyB0byBwcm9ncmFtL2RldGVjdCBtdWx0aS1z ZWdtZW50IGdhbW1hLgo+IAo+IFYyOiBBZGRyZXNzZWQgcmV2aWV3IGNvbW1lbnRzIGZyb20gVmls bGUKPiAgICAgLSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3Igc3VwZXJmaW5lIGFuZCBmaW5lIHNlZ21l bnRzLgo+ICAgICAtIHJlbW92ZSBlbnVtIGZvciBzZWdtZW50cy4KPiAgICAgLSByZXVzZSBsYXN0 IGVudHJ5IG9mIHRoZSBMVVQgYXMgZ2NfbWF4IHZhbHVlLgo+ICAgICAtIHJlcGxhY2UgaWYoKSAu Li4uY29uZCB3aXRoIHN3aXRjaC4uLmNhc2UgaW4gaWNsX2xvYWRfbHV0cy4KPiAgICAgLSBhZGQg YW4gZW50cnkgdmFyaWFibGUsIGluc3RlYWQgb2YgJ3dvcmQnCj4gCj4gVjM6IEFkZHJlc3NlZCBy ZXZpZXcgY29tbWVudHMgZnJvbSBWaWxsZQo+ICAgICAtIGV4dHJhIG5ld2xpbmUKPiAgICAgLSBz L2VudHJ5L2NvbG9yLwo+ICAgICAtIHJlbW92ZSBMVVQgc2l6ZSBjaGVja3MKPiAgICAgLSBwcm9n cmFtIGlsa19sdXRfMTJwNF9sZHcgdmFsdWUgYmVmb3JlIGlsa19sdXRfMTJwNF91ZHcKPiAgICAg LSBDaGFuZ2UgdGhlIGNvbW1lbnRzIGluIGRlc2NyaXB0aW9uIG9mIGZpbmUgYW5kIGNvYXJzZSBz ZWdtZW50cywKPiAgICAgICBhbmQgdHJ5IHRvIG1ha2UgbW9yZSBzZW5zZS4KPiAgICAgLSB1c2Ug OCAqIDEyOCBpbnN0ZWFkIG9mIDEwMjQKPiAgICAgLSBhZGQgMSBlbnRyeSBpbiBMVVQgZm9yIEdD TUFYCj4gCj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5j b20+Cj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gCj4g U3VnZ2VzdGVkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IFNpZ25lZC1vZmYtYnk6IFNoYXNoYW5rIFNoYXJtYSA8c2hhc2hhbmsuc2hhcm1hQGlu dGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5OiBVbWEgU2hhbmthciA8dW1hLnNoYW5rYXJAaW50ZWwu Y29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BjaS5jICAgIHwgICAyICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgfCAxMjcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KPiAgMiBmaWxlcyBjaGFuZ2VkLCAxMjQgaW5zZXJ0aW9ucygrKSwg NSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKPiBpbmRleCBmZmEyZWU3 MGEwM2QuLjJmOTliNTg1ZDQ0YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p OTE1X3BjaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwo+IEBAIC03 NDksNyArNzQ5LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kZXZpY2VfaW5mbyBpbnRl bF9jYW5ub25sYWtlX2luZm8gPSB7Cj4gIAlHRU4oMTEpLCBcCj4gIAkuZGRiX3NpemUgPSAyMDQ4 LCBcCj4gIAkuaGFzX2xvZ2ljYWxfcmluZ19lbHNxID0gMSwgXAo+IC0JLmNvbG9yID0geyAuZGVn YW1tYV9sdXRfc2l6ZSA9IDMzLCAuZ2FtbWFfbHV0X3NpemUgPSAxMDI0IH0KPiArCS5jb2xvciA9 IHsgLmRlZ2FtbWFfbHV0X3NpemUgPSAzMywgLmdhbW1hX2x1dF9zaXplID0gMjYyMTQ1IH0KPiAg Cj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gaW50ZWxfaWNlbGFrZV8x MV9pbmZvID0gewo+ICAJR0VOMTFfRkVBVFVSRVMsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2NvbG9yLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jb2xv ci5jCj4gaW5kZXggNmMzNDFiZWE1MTRjLi5jMWE5NTA2ZmQwNjkgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY29sb3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2NvbG9yLmMKPiBAQCAtNDEsNiArNDEsOCBAQAo+ICAjZGVmaW5lIENUTV9DT0VG Rl9BQlMoY29lZmYpCQkoKGNvZWZmKSAmIChDVE1fQ09FRkZfU0lHTiAtIDEpKQo+ICAKPiAgI2Rl ZmluZSBMRUdBQ1lfTFVUX0xFTkdUSAkJMjU2Cj4gKyNkZWZpbmUgSUNMX0dBTU1BX01VTFRJU0VH X0xVVF9MRU5HVEgJCSgyNTYgKiAxMjggKiA4KQoKVW51c2VkLgoKPiArCj4gIC8qCj4gICAqIEV4 dHJhY3QgdGhlIENTQyBjb2VmZmljaWVudCBmcm9tIGEgQ1RNIGNvZWZmaWNpZW50IChpbiBVMzIu MzIgZml4ZWQgcG9pbnQKPiAgICogZm9ybWF0KS4gVGhpcyBtYWNybyB0YWtlcyB0aGUgY29lZmZp Y2llbnQgd2Ugd2FudCB0cmFuc2Zvcm1lZCBhbmQgdGhlCj4gQEAgLTc2Nyw2ICs3NjksMTE2IEBA IHN0YXRpYyB2b2lkIGdsa19sb2FkX2x1dHMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gIAl9Cj4gIH0KPiAgCj4gKy8qIGlsaysgIjEyLjQiIGludGVycG9sYXRl ZCBmb3JtYXQgKGhpZ2ggMTAgYml0cykgKi8KPiArc3RhdGljIHUzMiBpbGtfbHV0XzEycDRfbGR3 KGNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpjb2xvcikKPiArewo+ICsJcmV0dXJuIChjb2xv ci0+cmVkID4+IDYpIDw8IDIwIHwgKGNvbG9yLT5ncmVlbiA+PiA2KSA8PCAxMCB8Cj4gKwkJKGNv bG9yLT5ibHVlID4+IDYpOwo+ICt9Cj4gKwo+ICsvKiBpbGsrICIxMi40IiBpbnRlcnBvbGF0ZWQg Zm9ybWF0IChsb3cgNiBiaXRzKSAqLwo+ICtzdGF0aWMgdTMyIGlsa19sdXRfMTJwNF91ZHcoY29u c3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmNvbG9yKQo+ICt7Cj4gKwlyZXR1cm4gKGNvbG9yLT5y ZWQgJiAweDNmKSA8PCAyNCB8IChjb2xvci0+Z3JlZW4gJiAweDNmKSA8PCAxNCB8Cj4gKwkJKGNv bG9yLT5ibHVlICYgMHgzZik7CgpCbHVlIGlzIG1pc3NpbmcgdGhlIHNoaWZ0LgoKSSdtIG5vdCAx MDAlIHN1cmUgaWYgdGhlIGxkdyB2cy4gdWR3IGFyZSB0aGUgcmlnaHQgd2F5IGFyb3VuZC4gVGhl IHNwZWMKaGFzIGF0IHRpbWVzIGJlZW4gaW5jb25zaXN0ZW50IHdpdGggdGhlIG9kZCB2cy4gZXZl biBkZXNjcmlwdGlvbnMsCnNvbWV0aW1lcyBldmVuIGNvbnRyYWRpY3RpbmcgaXRzZWxmLiBBbHNv IGl0IG5ldmVyIHJlYWxseSBkZWZpbmVzCndoZXRoZXIgaXQgc3RhcnRzIGNvdW50aW5nIGR3b3Jk cyBmcm9tIGZyb20gMCBvciAxLCBzbyBub3Qgc3VyZSB3aGF0Cm9kZCBhbmQgZXZlbiBhY3R1YWxs eSBtZWFuLiBDYW4gSSBwcmVzdW1lIHNvbWVvbmUgaGFzIGNoZWNrZWQgdGhpcwpvbiBhY3R1YWwg aGFyZHdhcmU/Cgo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICtpY2xfbG9hZF9nY21heChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiArCSAgICAgICBjb25zdCBz dHJ1Y3QgZHJtX2NvbG9yX2x1dCAqY29sb3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gKwll bnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gKwo+ICsJLyogRml4bWU6IExVVCBlbnRyaWVz IGFyZSAxNiBiaXQgb25seSwgc28gd2UgY2FuIHByb2cgMHhGRkZGIG1heCAqLwo+ICsJSTkxNV9X UklURShQUkVDX1BBTF9HQ19NQVgocGlwZSwgMCksIGNvbG9yLT5yZWQpOwo+ICsJSTkxNV9XUklU RShQUkVDX1BBTF9HQ19NQVgocGlwZSwgMSksIGNvbG9yLT5ncmVlbik7Cj4gKwlJOTE1X1dSSVRF KFBSRUNfUEFMX0dDX01BWChwaXBlLCAyKSwgY29sb3ItPmJsdWUpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgdm9pZAo+ICtpY2xfcHJvZ3JhbV9nYW1tYV9zdXBlcmZpbmVfc2VnbWVudChjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKPiArewo+ICsJc3RydWN0IGludGVsX2Ny dGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsK PiArCWNvbnN0IHN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYiA9IGNydGNfc3RhdGUtPmJh c2UuZ2FtbWFfbHV0Owo+ICsJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmx1dCA9IGJsb2It PmRhdGE7Cj4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7Cj4gKwl1MzIgaTsKPiArCj4g KwkvKgo+ICsJICogRXZlcnkgZW50cnkgaW4gdGhlIG11bHRpLXNlZ21lbnQgTFVUIGlzIGNvcnJl c3BvbmRpbmcgdG8gYSBzdXBlcmZpbmUKPiArCSAqIHNlZ21lbnQgc3RlcCB3aGljaCBpcyAxLyg4 ICogMTI4ICogMjU2KS4KPiArCSAqCj4gKwkgKiBTdXBlcmZpbmUgc2VnbWVudCBoYXMgOSBlbnRy aWVzLCBjb3JyZXNwb25kaW5nIHRvIHZhbHVlcwo+ICsJICogMCwgMS8oOCAqIDEyOCAqIDI1Niks IDIvKDggKiAxMjggKiAyNTYpIC4uLi4gOC8oOCAqIDEyOCAqIDI1NikuCj4gKwkgKi8KPiArCUk5 MTVfV1JJVEUoUFJFQ19QQUxfTVVMVElfU0VHX0lOREVYKHBpcGUpLCBQQUxfUFJFQ19BVVRPX0lO Q1JFTUVOVCk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IDk7IGkrKykgewo+ICsJCWNvbnN0IHN0 cnVjdCBkcm1fY29sb3JfbHV0ICplbnRyeSA9ICZsdXRbaV07Cj4gKwo+ICsJCUk5MTVfV1JJVEUo UFJFQ19QQUxfTVVMVElfU0VHX0RBVEEocGlwZSksCj4gKwkJCSAgIGlsa19sdXRfMTJwNF9sZHco ZW50cnkpKTsKPiArCQlJOTE1X1dSSVRFKFBSRUNfUEFMX01VTFRJX1NFR19EQVRBKHBpcGUpLAo+ ICsJCQkgICBpbGtfbHV0XzEycDRfdWR3KGVudHJ5KSk7Cj4gKwl9Cj4gK30KPiArCj4gK3N0YXRp YyB2b2lkCj4gK2ljbF9wcm9ncmFtX2dhbW1hX211bHRpX3NlZ21lbnQoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRjICpj cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7Cj4gKwlj b25zdCBzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmJsb2IgPSBjcnRjX3N0YXRlLT5iYXNlLmdh bW1hX2x1dDsKPiArCWNvbnN0IHN0cnVjdCBkcm1fY29sb3JfbHV0ICpsdXQgPSBibG9iLT5kYXRh Owo+ICsJY29uc3Qgc3RydWN0IGRybV9jb2xvcl9sdXQgKmVudHJ5Owo+ICsJZW51bSBwaXBlIHBp cGUgPSBjcnRjLT5waXBlOwo+ICsJdTMyIGk7Cj4gKwo+ICsJLyoKPiArCSAqCj4gKwkgKiBQcm9n cmFtIEZpbmUgc2VnbWVudCAobGV0J3MgY2FsbCBpdCBzZWcyKS4uLgo+ICsJICoKPiArCSAqIEZp bmUgc2VnbWVudCdzIHN0ZXAgaXMgMS8oMTI4ICogMjU2KSBpZSAxLygxMjggKiAyNTYpLCAgMi8o MTI4KjI1NikKPiArCSAqIC4uLiAyNTYvKDEyOCoyNTYpLiBTbyBpbiBvcmRlciB0byBwcm9ncmFt IGZpbmUgc2VnbWVudCBvZiBMVVQgd2UKPiArCSAqIG5lZWQgdG8gcGljayBldmVyeSA4J3RoIGVu dHJ5IGluIExVVCwgYW5kIHByb2dyYW0gMjU2IGluZGV4ZXMuCj4gKwkgKgo+ICsJICogUEFMX1BS RUNfSU5ERVhbMF0gYW5kIFBBTF9QUkVDX0lOREVYWzFdIG1hcCB0byBzZWcyWzFdLAo+ICsJICog d2l0aCBzZWcyWzBdIGJlaW5nIHVudXNlZCBieSB0aGUgaGFyZHdhcmUuCj4gKwkgKi8KPiArCUk5 MTVfV1JJVEUoUFJFQ19QQUxfSU5ERVgocGlwZSksIFBBTF9QUkVDX0FVVE9fSU5DUkVNRU5UKTsK PiArCWZvciAoaSA9IDE7IGkgPCAyNTc7IGkrKykgewo+ICsJCWVudHJ5ID0gJmx1dFtpICogOF07 Cj4gKwkJSTkxNV9XUklURShQUkVDX1BBTF9EQVRBKHBpcGUpLCBpbGtfbHV0XzEycDRfbGR3KGVu dHJ5KSk7Cj4gKwkJSTkxNV9XUklURShQUkVDX1BBTF9EQVRBKHBpcGUpLCBpbGtfbHV0XzEycDRf dWR3KGVudHJ5KSk7Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIFByb2dyYW0gQ29hcnNlIHNlZ21l bnQgKGxldCdzIGNhbGwgaXQgc2VnMykuLi4KPiArCSAqCj4gKwkgKiBDb2Fyc2Ugc2VnbWVudCdz IHN0YXJ0cyBmcm9tIGluZGV4IDAgYW5kIGl0J3Mgc3RlcCBpcyAxLzI1NiBpZSAwLAo+ICsJICog MS8yNTYsIDIvMjU2IC4uLjI1Ni8yNTYuIEFzIHBlciB0aGUgZGVzY3JpcHRpb24gb2YgZWFjaCBl bnRyeSBpbiBMVVQKPiArCSAqIGFib3ZlLCB3ZSBuZWVkIHRvIHBpY2sgZXZlcnkgKDggKiAxMjgp dGggZW50cnkgaW4gTFVULCBhbmQKPiArCSAqIHByb2dyYW0gMjU2IG9mIHRob3NlLgo+ICsJICoK PiArCSAqIFNwZWMgaXMgbm90IHZlcnkgY2xlYXIgYWJvdXQgaWYgZW50cmllcyBzZWczWzBdIGFu ZCBzZWczWzFdIGFyZQo+ICsJICogYmVpbmcgdXNlZCBvciBub3QsIGJ1dCB3ZSBzdGlsbCBuZWVk IHRvIHByb2dyYW0gdGhlc2UgdG8gYWR2YW5jZQo+ICsJICogdGhlIGluZGV4Lgo+ICsJICovCj4g Kwlmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspIHsKPiArCQllbnRyeSA9ICZsdXRbaSAqIDggKiAx MjhdOwo+ICsJCUk5MTVfV1JJVEUoUFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8xMnA0X2xk dyhlbnRyeSkpOwo+ICsJCUk5MTVfV1JJVEUoUFJFQ19QQUxfREFUQShwaXBlKSwgaWxrX2x1dF8x MnA0X3VkdyhlbnRyeSkpOwo+ICsJfQo+ICsKPiArCS8qIFRoZSBsYXN0IGVudHJ5IGluIHRoZSBM VVQgaXMgdG8gYmUgcHJvZ3JhbW1lZCBpbiBHQ01BWCAqLwo+ICsJZW50cnkgPSAmbHV0WzI1NiAq IDggKiAxMjggKyAxXTsKClRoZSArMSBzaG91bGRuJ3QgYmUgaGVyZS4KCk9LLCBtb3N0bHkgbG9v a3MgZ29vZC4gV2l0aCB0aGUgbWlub3IgaXNzdWVzIGFkZHJlc3NlZCB0aGlzIGlzClJldmlld2Vk LWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgoKPiAr CWljbF9sb2FkX2djbWF4KGNydGNfc3RhdGUsIGVudHJ5KTsKPiArCWl2Yl9sb2FkX2x1dF9leHRf bWF4KGNydGMpOwo+ICt9Cj4gKwo+ICBzdGF0aWMgdm9pZCBpY2xfbG9hZF9sdXRzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7Cj4gIAljb25zdCBzdHJ1Y3Qg ZHJtX3Byb3BlcnR5X2Jsb2IgKmdhbW1hX2x1dCA9IGNydGNfc3RhdGUtPmJhc2UuZ2FtbWFfbHV0 Owo+IEBAIC03NzUsMTAgKzg4NywxNyBAQCBzdGF0aWMgdm9pZCBpY2xfbG9hZF9sdXRzKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICAJaWYgKGNydGNfc3RhdGUt PmJhc2UuZGVnYW1tYV9sdXQpCj4gIAkJZ2xrX2xvYWRfZGVnYW1tYV9sdXQoY3J0Y19zdGF0ZSk7 Cj4gIAo+IC0JaWYgKChjcnRjX3N0YXRlLT5nYW1tYV9tb2RlICYgR0FNTUFfTU9ERV9NT0RFX01B U0spID09Cj4gLQkgICAgR0FNTUFfTU9ERV9NT0RFXzhCSVQpIHsKPiArCXN3aXRjaCAoY3J0Y19z dGF0ZS0+Z2FtbWFfbW9kZSAmIEdBTU1BX01PREVfTU9ERV9NQVNLKSB7Cj4gKwljYXNlIEdBTU1B X01PREVfTU9ERV84QklUOgo+ICAJCWk5eHhfbG9hZF9sdXRzKGNydGNfc3RhdGUpOwo+IC0JfSBl bHNlIHsKPiArCQlicmVhazsKPiArCj4gKwljYXNlIEdBTU1BX01PREVfTU9ERV8xMkJJVF9NVUxU SV9TRUdNRU5URUQ6Cj4gKwkJaWNsX3Byb2dyYW1fZ2FtbWFfc3VwZXJmaW5lX3NlZ21lbnQoY3J0 Y19zdGF0ZSk7Cj4gKwkJaWNsX3Byb2dyYW1fZ2FtbWFfbXVsdGlfc2VnbWVudChjcnRjX3N0YXRl KTsKPiArCQlicmVhazsKPiArCj4gKwlkZWZhdWx0Ogo+ICAJCWJkd19sb2FkX2x1dF8xMChjcnRj LCBnYW1tYV9sdXQsIFBBTF9QUkVDX0lOREVYX1ZBTFVFKDApKTsKPiAgCQlpdmJfbG9hZF9sdXRf ZXh0X21heChjcnRjKTsKPiAgCX0KPiBAQCAtMTIwOSw3ICsxMzI4LDcgQEAgc3RhdGljIHUzMiBp Y2xfZ2FtbWFfbW9kZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK PiAgCSAgICBjcnRjX3N0YXRlX2lzX2xlZ2FjeV9nYW1tYShjcnRjX3N0YXRlKSkKPiAgCQlnYW1t YV9tb2RlIHw9IEdBTU1BX01PREVfTU9ERV84QklUOwo+ICAJZWxzZQo+IC0JCWdhbW1hX21vZGUg fD0gR0FNTUFfTU9ERV9NT0RFXzEwQklUOwo+ICsJCWdhbW1hX21vZGUgfD0gR0FNTUFfTU9ERV9N T0RFXzEyQklUX01VTFRJX1NFR01FTlRFRDsKPiAgCj4gIAlyZXR1cm4gZ2FtbWFfbW9kZTsKPiAg fQo+IC0tIAo+IDIuMTcuMQoKLS0gClZpbGxlIFN5cmrDpGzDpApJbnRlbApfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZng=