From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH] Implement Limited Video Range Date: Mon, 30 Nov 2015 16:11:03 +0200 Message-ID: <20151130141103.GR4437@intel.com> References: <20151130084332.GP17050@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 6928A6E5BF for ; Mon, 30 Nov 2015 06:11:51 -0800 (PST) Content-Disposition: inline In-Reply-To: <20151130084332.GP17050@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gTW9uLCBOb3YgMzAsIDIwMTUgYXQgMDk6NDM6MzJBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBNb24sIE5vdiAzMCwgMjAxNSBhdCAwODowODo0OEFNICswMTAwLCBQZXRlciBG csO8aGJlcmdlciB3cm90ZToKPiA+IChSZXNlbnQgY2F1c2Ugb2YgbW9kZXJhdGlvbikKPiA+IAo+ ID4gVGhpcyBpbXBsZW1lbnRzIGEgaGlnaGx5IG5lZWRlZCBmZWF0dXJlIGluIGEgbWluaW1hbCBu b24gaW5zdHJ1Y3RpdmUgd2F5Lgo+ID4gQ29uc2lkZXIgYSBMaW1pdGVkIFJhbmdlIGRpc3BsYXkg KGxpa2UgbW9zdCBUVnMpIHdoZXJlIHlvdSB3YW50IHRvIHdhdGNoIGEKPiA+IGRlY29kZWQgdmlk ZW8uIFRoZSBUViBpcyBzZXQgdG8gbGltaXRlZCByYW5nZSBhbmQgdGhlIGludGVsIGRyaXZlciBh bHNvCj4gPiB1c2VzIGZ1bGwgc2NhbGluZyBMaW1pdGVkIDE2OjIzNSBtb2RlLCBlLmcuIGlmIHlv dSBkaXNwbGF5IHRoZSBncmF5IHZhbHVlCj4gPiAxNiAtIHRoZSBkcml2ZXIgd2lsbCBwb3N0cHJv Y2VzcyBpdCB0byBzb21ldGhpbmcgbGlrZSB+IDIyLgo+ID4gCj4gPiBUaGUgZm9sbG93aW5nIGhh cHBlbnMgY3VycmVudGx5IGluIGxpbnV4IGludGVsIHZpZGVvIHdvcmxkOgo+ID4gVmlkZW8gaXMg ZGVjb2RlZCB3aXRoIGUuZy4gdmFhcGksIHRoZSBkZWNvZGVkIHN1cmZhY2UgaXMgZWl0aGVyIHVz ZWQgdmlhCj4gPiBFR0wgZGlyZWN0bHkgaW4gTGltaXRlZCBSYW5nZS4gTGltaXRlZCBSYW5nZSBw cm9jZXNzaW5nIHRha2VzIHBsYWNlIGFuZCBhdAo+ID4gdGhlIGVuZCB3aGlsZSByZW5kZXJpbmcg dGhlIGludGVsIGRyaXZlciB3aWxsIHNjYWxlIGRvd24gdGhlIGxpbWl0ZWQgcmFuZ2UKPiA+IGRh dGEgYWdhaW4gYXMgaXQgY2Fubm90IGRpc3R1bmd1aXNoIG9mIHRoZSBkYXRhIGl0IGdldHMgd2hl biBlLmcuIHJlbmRlcmluZwo+ID4gd2l0aCBPcGVuR0wgbGlrZSB3ZSBzdWNjZXNmdWxseSBkbyBp biBrb2RpLgo+ID4gCj4gPiBBbm90aGVyIHVzZSBjYXNlIGlzIHZhYXBpIHdoZW4gdXNpbmcgdGhl IG9sZCB2YUNvcHlTdXJmYWNlR0xYCj4gPiAodmFQdXRTdXJmYWNlKSB3aGljaCB3b3VsZCBhdXRv bWF0aWNhbGx5IHVzZSBCVDYwMSAvIEJUNzA5IG1hdHJpeCB0bwo+ID4gdXBzY2FsZSB0aGUgY29u dGVudCB3aXRob3V0IGFueSBkaXRoZXJpbmcgdG8gRnVsbCBSYW5nZSBSR0IuIExhdGVyIG9uIHRo aXMKPiA+IGlzIHNjYWxlZCBkb3duIGFnYWluIHdpdGggdGhlIExpbWl0ZWQgMTY6MjM1IHNldHRp bmcgYW5kIG91dHB1dC4gUXVhbGl0eQo+ID4gZGVncmFkZXMgdHdvIHRpbWVzLgo+ID4gCj4gPiBV c2VycyBhbmQgYXBwbGljYXRpb25zIHdpZGVseSB1c2VkIHdhbnQgdG8gbWFrZSBzdXJlIHRoYXQg Y29sb3JzIGFwcGVhciBvbgo+ID4gc2NyZWVuIGxpa2UgdGhleSB3ZXJlIHByb2Nlc3NlZCBhZnRl ciB0aGUgbGFzdCBwcm9jZXNzaW5nIHN0ZXAuIEluIHZpZGVvCj4gPiBjYXNlIHR3byB1c2UgY2Fz ZXMgbWFrZSBzZW5zZToKPiA+IAo+ID4gYSkgc2NhbGluZyBsaW1pdGVkIHJhbmdlIHRvIGZ1bGwg cmFuZ2Ugd2l0aCBkaXRoZXJpbmcgYXBwbGllZCB3aGVuIHlvdSBuZWVkCj4gPiB0byBvdXRwdXQg ZnVsbHJhbmdlCj4gPiBiKSBhbHJlYWR5IGhhdmluZyBsaW1pdGVkIHJhbmdlIGFuZCBvdXRwdXR0 aW5nIHRoYXQgd2l0aG91dCBhbnkgZnVydGhlcgo+ID4gdG91Y2hpbmcgYnkgdGhlIGRyaXZlcgo+ ID4gCj4gPiBVc2UgY2FzZSBhKSBpcyBhbHJlYWR5IHBvc3NpYmxlLiBVc2VjYXNlIGIpIHdpbGwg YmUgcG9zc2libGUgd2l0aCB0aGUKPiA+IGF0dGFjaGVkIHBhdGNoLiBJdCBpcyBhIHBvc3NpYmls aXR5IHRvIGdldCBMaW1pdGVkIFJhbmdlIG9uIHNjcmVlbiBpbgo+ID4gcGVyZmVjdCBxdWFsaXR5 IGluIDJrMTUuCj4gPiAKPiA+IEZvciB0aGUgZnV0dXJlIGEgdXNlcnNwYWNlIGFwaSB0byBwcm92 aWRlIGluZm8gZnJhbWVzIGFuZCBzbyBvbiBpbiBhCj4gPiBnZW5lcmljIHdheSBzaG91bGQgYmUg Y29uc2lkZXJlZCBidXQgdW50aWwgd2UgaGF2ZSB0aGlzIEkgYmV0IHdlIGhhdmUgMgo+ID4geWVh cnMgdG8gZ28uIFRoaXMgc29sdXRpb24gYWxzbyB3b3JrcyBvbiBYMTEgKHdpdGhvdXQgd2F5bGFu ZCkgYW5kIGlzCj4gPiB1c2VmdWwgZm9yIGV4aXN0aW5nIGFwcGxpY2F0aW9ucy4KPiA+IAo+ID4g VGhhbmtzIG11Y2ggZm9yIGNvbnNpZGVyYXRpb24uCj4gPiAKPiA+IC0tLQo+ID4gRnJvbSBkZWFh OWQ3MzBjMDhhZWZlZmUzNjcxZDA3M2Q5M2Q5NzBiYjM5YTMxIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQo+ID4gRnJvbTogZnJpdHNjaCA8cGV0ZXIuZnJ1ZWhiZXJnZXJAZ21haWwuY29tPgo+ID4g RGF0ZTogU3VuLCAyOSBOb3YgMjAxNSAxNjozODoxNCArMDEwMAo+ID4gU3ViamVjdDogW1BBVENI XSBJbnRlbDogSW1wbGVtZW50IFZpZGVvIENvbG9yIFJhbmdlCj4gPiAKPiA+IC0tLQo+ID4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAxICsKPiA+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgNCArKy0tCj4gPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmggICAgIHwgIDggKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9oZG1pLmMgICAgfCAxNyArKysrKysrKysrKysrKystLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX21vZGVzLmMgICB8ICAxICsKPiA+ICA1IGZpbGVzIGNoYW5nZWQs IDI3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiA+IGluZGV4IDk1YmIyN2QuLmU0NTM0NjEgMTAwNjQ0Cj4gPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCj4gPiBAQCAtMzQ0OSw2ICszNDQ5LDcgQEAgaW50IGludGVsX2ZyZXFf b3Bjb2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlCj4gPiAqZGV2X3ByaXYsIGludCB2YWwpOwo+ ID4gICNkZWZpbmUgSU5URUxfQlJPQURDQVNUX1JHQl9BVVRPIDAKPiA+ICAjZGVmaW5lIElOVEVM X0JST0FEQ0FTVF9SR0JfRlVMTCAxCj4gPiAgI2RlZmluZSBJTlRFTF9CUk9BRENBU1RfUkdCX0xJ TUlURUQgMgo+ID4gKyNkZWZpbmUgSU5URUxfQlJPQURDQVNUX1JHQl9WSURFTyAzCj4gPiAKPiA+ ICBzdGF0aWMgaW5saW5lIHVpbnQzMl90IGk5MTVfdmdhY250cmxfcmVnKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYpCj4gPiAgewo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK PiA+IGluZGV4IDcxODYwZjguLmVhNDBkODEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTg2MDUsNyArODYwNSw3IEBAIHN0YXRpYyB2b2lkIGludGVs X3NldF9waXBlX2NzYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4gPiAgICAqIGNvbnNpZGVyYXRp b24uCj4gPiAgICAqLwo+ID4gCj4gPiAtIGlmIChpbnRlbF9jcnRjLT5jb25maWctPmxpbWl0ZWRf Y29sb3JfcmFuZ2UpCj4gPiArIGlmIChpbnRlbF9jcnRjLT5jb25maWctPmxpbWl0ZWRfY29sb3Jf cmFuZ2UgJiYKPiA+ICFpbnRlbF9jcnRjLT5jb25maWctPnZpZGVvX2NvbG9yX3JhbmdlKQo+ID4g ICBjb2VmZiA9ICgoMjM1IC0gMTYpICogKDEgPDwgMTIpIC8gMjU1KSAmIDB4ZmY4OyAvKiAwLnh4 eC4uLiAqLwo+ID4gCj4gPiAgIC8qCj4gPiBAQCAtODYyOSw3ICs4NjI5LDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfc2V0X3BpcGVfY3NjKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPiA+ICAgaWYgKElO VEVMX0lORk8oZGV2KS0+Z2VuID4gNikgewo+ID4gICB1aW50MTZfdCBwb3N0b2ZmID0gMDsKPiA+ IAo+ID4gLSBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlKQo+ID4g KyBpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5saW1pdGVkX2NvbG9yX3JhbmdlICYmCj4gPiAhaW50 ZWxfY3J0Yy0+Y29uZmlnLT52aWRlb19jb2xvcl9yYW5nZSkKPiA+ICAgcG9zdG9mZiA9ICgxNiAq ICgxIDw8IDEyKSAvIDI1NSkgJiAweDFmZmY7Cj4gPiAKPiA+ICAgSTkxNV9XUklURShQSVBFX0NT Q19QT1NUT0ZGX0hJKHBpcGUpLCBwb3N0b2ZmKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+ID4gaW5kZXggMDU5ODkzMi4uNjk0MDI0MyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcnYuaAo+ID4gQEAgLTM3Miw2ICszNzIsMTMgQEAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgewo+ID4gICAgKi8KPiA+ICAgYm9vbCBsaW1pdGVkX2NvbG9yX3JhbmdlOwo+ID4gCj4gPiAr IC8qCj4gPiArICAqCj4gPiArICAqIFVzZSByZWR1Y2VkL2xpbWl0ZWQvYnJvYWRjYXN0IHJnYiBy YW5nZSB3aXRob3V0IGNvbXByZXNzaW5nLgo+ID4gKyAgKgo+ID4gKyAgKi8KPiA+ICsgYm9vbCB2 aWRlb19jb2xvcl9yYW5nZTsKPiAKPiBJIHRoaW5rIHRoZSBuYW1lcyBhbmQgc2VtYW50aWNzIGFy ZSBjb25mdXNpb24sIHJlc3VsdGluZyBpbiBoYXJkLXRvLXJlYWQKPiBpZiBjb25kaXRpb25zLiBX aGF0IGFib3V0Ogo+IAo+IAlib29sIGxpbWl0X2NvbG9yX3JhbmdlOyAvKiBzaG91bGQgd2UgbGlt aXQgZnJvbSBmdWxsLT4xNjoyMzUgaW4KPiAJdGhlIGVuY29kZXIvY3NjPyAqLwoKV2UgbWlnaHQg Y2FsbCB0aGlzIHNpbXBseSBhcyAiYWRqdXN0X2NvbG9yX3JhbmdlIiBvciBzb21ldGhpbmcgbGlr ZQp0aGF0LiBUaGVuIGl0IHdvdWxkIGFsc28gd29yayBmb3IgdGhlIGxpbWl0ZWQtPmZ1bGwgY29u dmVyc2lvbiBpZiB3ZQpldmVyIGNvbWUgdXAgd2l0aCBzb21lIHVzZSBjYXNlIHRoYXQgd291bGQg bmVlZCBzdWNoIGEgdGhpbmcuIEFsdGhvZ3VoCml0IGRvZXMgbWVhbiB3ZSdkIGhhdmUgdG8gY2hl Y2sgYm90aCBmbGFncyB3aGVuIGRlY2lkaW5nIGhvdyB0byBwcm9ncmFtCnRoZSBwb3J0L3BpcGVj b25mIHJhbmdlIGJpdC9waXBlIGNzYy4KCj4gCj4gCWJvb2wgbGltaXRlZF9jb2xvcl9yYW5nZV9v dXRwdXQ7IC8qIHNldCB0aGUgaW5mb2ZyYW1lIG9yIG5vdD8gKi8KPiAKPiBOYW1lcyBhcmVuJ3Qg Z3JlYXQgeWV0IEkgdGhpbmssIGNvZmZlZSdzIG5vdCB5ZXQgd29ya2luZyA7LSkKPiAKPiBUaGFu a3MsIERhbmllbAo+IAo+ID4gKwo+ID4gICAvKiBEUCBoYXMgYSBidW5jaCBvZiBzcGVjaWFsIGNh c2UgdW5mb3J0dW5hdGVseSwgc28gbWFyayB0aGUgcGlwZQo+ID4gICAgKiBhY2NvcmRpbmdseS4g Ki8KPiA+ICAgYm9vbCBoYXNfZHBfZW5jb2RlcjsKPiA+IEBAIC02ODIsNiArNjg5LDcgQEAgc3Ry dWN0IGludGVsX2hkbWkgewo+ID4gICBpbnQgZGRjX2J1czsKPiA+ICAgYm9vbCBsaW1pdGVkX2Nv bG9yX3JhbmdlOwo+ID4gICBib29sIGNvbG9yX3JhbmdlX2F1dG87Cj4gPiArIGJvb2wgY29sb3Jf cmFuZ2VfdmlkZW87Cj4gPiAgIGJvb2wgaGFzX2hkbWlfc2luazsKPiA+ICAgYm9vbCBoYXNfYXVk aW87Cj4gPiAgIGVudW0gaGRtaV9mb3JjZV9hdWRpbyBmb3JjZV9hdWRpbzsKPiA+IGRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+IGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiBpbmRleCA5ZWFmYTE5Li5kYzc4NzYwIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+IEBAIC00NjQsNyArNDY0LDggQEAgc3Rh dGljIHZvaWQgaW50ZWxfaGRtaV9zZXRfYXZpX2luZm9mcmFtZShzdHJ1Y3QKPiA+IGRybV9lbmNv ZGVyICplbmNvZGVyLAo+ID4gICB9Cj4gPiAKPiA+ICAgaWYgKGludGVsX2hkbWktPnJnYl9xdWFu dF9yYW5nZV9zZWxlY3RhYmxlKSB7Cj4gPiAtIGlmIChpbnRlbF9jcnRjLT5jb25maWctPmxpbWl0 ZWRfY29sb3JfcmFuZ2UpCj4gPiArIGlmIChpbnRlbF9jcnRjLT5jb25maWctPmxpbWl0ZWRfY29s b3JfcmFuZ2UgfHwKPiA+ICsgICAgIGludGVsX2NydGMtPmNvbmZpZy0+dmlkZW9fY29sb3JfcmFu Z2UpCj4gPiAgIGZyYW1lLmF2aS5xdWFudGl6YXRpb25fcmFuZ2UgPQo+ID4gICBIRE1JX1FVQU5U SVpBVElPTl9SQU5HRV9MSU1JVEVEOwo+ID4gICBlbHNlCj4gPiBAQCAtMTI2Niw2ICsxMjY3LDgg QEAgYm9vbCBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyCj4g PiAqZW5jb2RlciwKPiA+ICAgcGlwZV9jb25maWctPmxpbWl0ZWRfY29sb3JfcmFuZ2UgPQo+ID4g ICBpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3JhbmdlOwo+ID4gICB9Cj4gPiArIGlmIChpbnRl bF9oZG1pLT5jb2xvcl9yYW5nZV92aWRlbykKPiA+ICsgICAgICAgICAgICAgICBwaXBlX2NvbmZp Zy0+dmlkZW9fY29sb3JfcmFuZ2UgPSB0cnVlOwo+ID4gCj4gPiAgIGlmIChhZGp1c3RlZF9tb2Rl LT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMQ0xLKSB7Cj4gPiAgIHBpcGVfY29uZmlnLT5waXhl bF9tdWx0aXBsaWVyID0gMjsKPiA+IEBAIC0xNDg1LDI1ICsxNDg4LDM1IEBAIGludGVsX2hkbWlf c2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yCj4gPiAqY29ubmVjdG9yLAo+ID4gICBp ZiAocHJvcGVydHkgPT0gZGV2X3ByaXYtPmJyb2FkY2FzdF9yZ2JfcHJvcGVydHkpIHsKPiA+ICAg Ym9vbCBvbGRfYXV0byA9IGludGVsX2hkbWktPmNvbG9yX3JhbmdlX2F1dG87Cj4gPiAgIGJvb2wg b2xkX3JhbmdlID0gaW50ZWxfaGRtaS0+bGltaXRlZF9jb2xvcl9yYW5nZTsKPiA+ICsgYm9vbCBv bGRfcmFuZ2VfdmlkZW8gPSBpbnRlbF9oZG1pLT5jb2xvcl9yYW5nZV92aWRlbzsKPiA+IAo+ID4g ICBzd2l0Y2ggKHZhbCkgewo+ID4gICBjYXNlIElOVEVMX0JST0FEQ0FTVF9SR0JfQVVUTzoKPiA+ ICAgaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0byA9IHRydWU7Cj4gPiArIGludGVsX2hkbWkt PmNvbG9yX3JhbmdlX3ZpZGVvID0gZmFsc2U7Cj4gPiAgIGJyZWFrOwo+ID4gICBjYXNlIElOVEVM X0JST0FEQ0FTVF9SR0JfRlVMTDoKPiA+ICAgaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0byA9 IGZhbHNlOwo+ID4gICBpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9yX3JhbmdlID0gZmFsc2U7Cj4g PiArIGludGVsX2hkbWktPmNvbG9yX3JhbmdlX3ZpZGVvID0gZmFsc2U7Cj4gPiAgIGJyZWFrOwo+ ID4gICBjYXNlIElOVEVMX0JST0FEQ0FTVF9SR0JfTElNSVRFRDoKPiA+ICAgaW50ZWxfaGRtaS0+ Y29sb3JfcmFuZ2VfYXV0byA9IGZhbHNlOwo+ID4gICBpbnRlbF9oZG1pLT5saW1pdGVkX2NvbG9y X3JhbmdlID0gdHJ1ZTsKPiA+ICsgaW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfdmlkZW8gPSBmYWxz ZTsKPiA+ICsgYnJlYWs7Cj4gPiArIGNhc2UgSU5URUxfQlJPQURDQVNUX1JHQl9WSURFTzoKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICBpbnRlbF9oZG1pLT5jb2xvcl9yYW5nZV9hdXRvID0g ZmFsc2U7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfaGRtaS0+bGltaXRlZF9j b2xvcl9yYW5nZSA9IHRydWU7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgaW50ZWxfaGRt aS0+Y29sb3JfcmFuZ2VfdmlkZW8gPSB0cnVlOwo+ID4gICBicmVhazsKPiA+ICAgZGVmYXVsdDoK PiA+ICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiAgIH0KPiA+IAo+ID4gICBpZiAob2xkX2F1dG8gPT0g aW50ZWxfaGRtaS0+Y29sb3JfcmFuZ2VfYXV0byAmJgo+ID4gLSAgICAgb2xkX3JhbmdlID09IGlu dGVsX2hkbWktPmxpbWl0ZWRfY29sb3JfcmFuZ2UpCj4gPiArICAgICBvbGRfcmFuZ2UgPT0gaW50 ZWxfaGRtaS0+bGltaXRlZF9jb2xvcl9yYW5nZSAmJgo+ID4gKyAgICAgb2xkX3JhbmdlX3ZpZGVv ID09IGludGVsX2hkbWktPmNvbG9yX3JhbmdlX3ZpZGVvKQo+ID4gICByZXR1cm4gMDsKPiA+IAo+ ID4gICBnb3RvIGRvbmU7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbW9kZXMuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9tb2Rlcy5jCj4gPiBp bmRleCAzOGE0YzhjLi5jNDk2ODFhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfbW9kZXMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbW9k ZXMuYwo+ID4gQEAgLTEwMyw2ICsxMDMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9wcm9w X2VudW1fbGlzdAo+ID4gYnJvYWRjYXN0X3JnYl9uYW1lc1tdID0gewo+ID4gICB7IElOVEVMX0JS T0FEQ0FTVF9SR0JfQVVUTywgIkF1dG9tYXRpYyIgfSwKPiA+ICAgeyBJTlRFTF9CUk9BRENBU1Rf UkdCX0ZVTEwsICJGdWxsIiB9LAo+ID4gICB7IElOVEVMX0JST0FEQ0FTVF9SR0JfTElNSVRFRCwg IkxpbWl0ZWQgMTY6MjM1IiB9LAo+ID4gKyB7IElOVEVMX0JST0FEQ0FTVF9SR0JfVklERU8sICJW aWRlbyAxNjoyMzUgcGFzcy10aHJvdWdoIiB9LAo+ID4gIH07Cj4gPiAKPiA+ICB2b2lkCj4gPiAt LSAKPiA+IDIuNS4wCj4gCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo+IAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2Fy ZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmls bGUgU3lyasOkbMOkCkludGVsIE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=