From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paulo Zanoni Subject: Re: [PATCH 6/7] drm/i915/fbc: move from crtc_state->enable_fbc to plane_state->enable_fbc Date: Fri, 11 Nov 2016 18:49:59 -0200 Message-ID: <1478897399.19391.61.camel@intel.com> References: <1478883461-20201-1-git-send-email-paulo.r.zanoni@intel.com> <1478883461-20201-7-git-send-email-paulo.r.zanoni@intel.com> <20161111185129.GS31595@intel.com> <1478890914.19391.31.camel@intel.com> <20161111191309.GT31595@intel.com> <1478894248.19391.43.camel@intel.com> <20161111202453.GU31595@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E525E6E083 for ; Fri, 11 Nov 2016 20:50:02 +0000 (UTC) In-Reply-To: <20161111202453.GU31595@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RW0gU2V4LCAyMDE2LTExLTExIMOgcyAyMjoyNCArMDIwMCwgVmlsbGUgU3lyasOkbMOkIGVzY3Jl dmV1Ogo+IE9uIEZyaSwgTm92IDExLCAyMDE2IGF0IDA1OjU3OjI4UE0gLTAyMDAsIFBhdWxvIFph bm9uaSB3cm90ZToKPiA+IAo+ID4gRW0gU2V4LCAyMDE2LTExLTExIMOgcyAyMToxMyArMDIwMCwg VmlsbGUgU3lyasOkbMOkIGVzY3JldmV1Ogo+ID4gPiAKPiA+ID4gT24gRnJpLCBOb3YgMTEsIDIw MTYgYXQgMDU6MDE6NTRQTSAtMDIwMCwgUGF1bG8gWmFub25pIHdyb3RlOgo+ID4gPiA+IAo+ID4g PiA+IAo+ID4gPiA+IEVtIFNleCwgMjAxNi0xMS0xMSDDoHMgMjA6NTEgKzAyMDAsIFZpbGxlIFN5 cmrDpGzDpCBlc2NyZXZldToKPiA+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBPbiBGcmks IE5vdiAxMSwgMjAxNiBhdCAwMjo1Nzo0MFBNIC0wMjAwLCBQYXVsbyBaYW5vbmkgd3JvdGU6Cj4g PiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFZpbGxlIHBv aW50ZWQgb3V0IHRoYXQgaW50ZWxfZmJjX2Nob29zZV9jcnRjKCkgaXMgaXRlcmF0aW5nCj4gPiA+ ID4gPiA+IG92ZXIKPiA+ID4gPiA+ID4gYWxsCj4gPiA+ID4gPiA+IHBsYW5lcyBpbnN0ZWFkIG9m IGp1c3QgdGhlIHByaW1hcnkgcGxhbmVzLiBUaGVyZSBhcmUgbm8KPiA+ID4gPiA+ID4gcmVhbAo+ ID4gPiA+ID4gPiBjb25zZXF1ZW5jZXMgb2YgdGhpcyBwcm9ibGVtIGZvciBIU1crLCBhbmQgZm9y IHRoZSBvdGhlcgo+ID4gPiA+ID4gPiBwbGF0Zm9ybXMKPiA+ID4gPiA+ID4gaXQKPiA+ID4gPiA+ ID4ganVzdCBtZWFucyB0aGF0IGluIHNvbWUgb2JzY3VyZSBtdWx0aS1zY3JlZW4gY2FzZXMgd2Un bGwKPiA+ID4gPiA+ID4ga2VlcAo+ID4gPiA+ID4gPiBGQkMKPiA+ID4gPiA+ID4gZGlzYWJsZWQg d2hlbiB3ZSBjb3VsZCBoYXZlIGVuYWJsZWQgaXQuIFN0aWxsLCBpdGVyYXRpbmcKPiA+ID4gPiA+ ID4gb3Zlcgo+ID4gPiA+ID4gPiBhbGwKPiA+ID4gPiA+ID4gcGxhbmVzIGRvZXNuJ3Qgc2VlbSB0 byBiZSB0aGUgYmVzdCB0aGluZyB0byBkby4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IE15IGlu aXRpYWwgaWRlYSB3YXMgdG8ganVzdCBhZGQgYSBjaGVjayBmb3IgcGxhbmUtPnR5cGUgYW5kCj4g PiA+ID4gPiA+IGJlCj4gPiA+ID4gPiA+IGRvbmUsCj4gPiA+ID4gPiA+IGJ1dCB0aGVuIEkgcmVh bGl6ZWQgdGhhdCBpbiBjb21taXRzIG5vdCBpbnZvbHZpbmcgdGhlCj4gPiA+ID4gPiA+IHByaW1h cnkKPiA+ID4gPiA+ID4gcGxhbmUKPiA+ID4gPiA+ID4gd2UKPiA+ID4gPiA+ID4gd291bGQgcmVz ZXQgY3J0Y19zdGF0ZS0+ZW5hYmxlX2ZiYyBiYWNrIHRvIGZhbHNlIGV2ZW4gd2hlbgo+ID4gPiA+ ID4gPiBGQkMKPiA+ID4gPiA+ID4gaXMKPiA+ID4gPiA+ID4gZW5hYmxlZC4gVGhhdCBhbHNvIHdv dWxkbid0IHJlc3VsdCBpbiBhIGJ1ZyBkdWUgdG8gdGhlIHdheQo+ID4gPiA+ID4gPiB0aGUKPiA+ ID4gPiA+ID4gZW5hYmxlX2ZiYyB2YXJpYWJsZSBpcyBjaGVja2VkLCBidXQsIHN0aWxsLCBvdXIg Y29kZSBjYW4gYmUKPiA+ID4gPiA+ID4gYmV0dGVyCj4gPiA+ID4gPiA+IHRoYW4gdGhpcy4KPiA+ ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFNvIEkgd2VudCBmb3IgdGhlIHNvbHV0aW9uIHRoYXQgaW52 b2x2ZXMgdHJhY2tpbmcKPiA+ID4gPiA+ID4gZW5hYmxlX2ZiYyBpbgo+ID4gPiA+ID4gPiB0aGUK PiA+ID4gPiA+ID4gcHJpbWFyeSBwbGFuZSBzdGF0ZSBpbnN0ZWFkIG9mIHRoZSBDUlRDIHN0YXRl LiBUaGlzIHdheSwgaWYKPiA+ID4gPiA+ID4gYQo+ID4gPiA+ID4gPiBjb21taXQKPiA+ID4gPiA+ ID4gZG9lc24ndCBpbnZvbHZlIHRoZSBwcmltYXJ5IHBsYW5lIGZvciB0aGUgQ1JUQyB3ZSB3b24n dCBiZQo+ID4gPiA+ID4gPiByZXNldHRpbmcKPiA+ID4gPiA+ID4gZW5hYmxlX2ZiYyBiYWNrIHRv IGZhbHNlLCBzbyB0aGUgdmFyaWFibGUgd2lsbCBhbHdheXMKPiA+ID4gPiA+ID4gcmVmbGVjdAo+ ID4gPiA+ID4gPiB0aGUKPiA+ID4gPiA+ID4gcmVhbGl0eS4gQW5kIHRoaXMgY2hhbmdlIGFsc28g bWFrZXMgbW9yZSBzZW5zZSBzaW5jZSBGQkMgaXMKPiA+ID4gPiA+ID4gYWN0dWFsbHkKPiA+ID4g PiA+ID4gdGllZCB0byB0aGUgc2luZ2xlIHBsYW5lIGFuZCBub3QgdGhlIGZ1bGwgcGlwZS4gQXMg YSBib251cywKPiA+ID4gPiA+ID4gd2UKPiA+ID4gPiA+ID4gb25seQo+ID4gPiA+ID4gPiBpdGVy YXRlIG92ZXIgdGhlIENSVENzIGluc3RlYWQgb2YgaXRlcmF0aW5nIG92ZXIgYWxsCj4gPiA+ID4g PiA+IHBsYW5lcy4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IENjOiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiA+ID4gPiBSZXBvcnRlZC1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiA+ ID4gU2lnbmVkLW9mZi1ieTogUGF1bG8gWmFub25pIDxwYXVsby5yLnphbm9uaUBpbnRlbC5jb20+ Cj4gPiA+ID4gPiA+IC0tLQo+ID4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oIHzCoMKgNCArKy0tCj4gPiA+ID4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZmJjLmMgfCAzNiArKysrKysrKysrKysrKysrKysrLQo+ID4gPiA+ID4gPiAtLS0tCj4gPiA+ ID4gPiA+IC0tLS0KPiA+ID4gPiA+ID4gLS0tLS0tLS0KPiA+ID4gPiA+ID4gwqAyIGZpbGVzIGNo YW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQo+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g PiA+ID4gPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiA+ID4g aW5kZXggMDAzYWZiOC4uMDI1Y2I3NCAxMDA2NDQKPiA+ID4gPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKPiA+ID4gPiA+ID4gQEAgLTQwMyw2ICs0MDMsOCBAQCBzdHJ1Y3Qg aW50ZWxfcGxhbmVfc3RhdGUgewo+ID4gPiA+ID4gPiDCoAlpbnQgc2NhbGVyX2lkOwo+ID4gPiA+ ID4gPiDCoAo+ID4gPiA+ID4gPiDCoAlzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSBj a2V5Owo+ID4gPiA+ID4gPiArCj4gPiA+ID4gPiA+ICsJYm9vbCBlbmFibGVfZmJjOwo+ID4gPiA+ ID4gPiDCoH07Cj4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+IMKgc3RydWN0IGludGVsX2luaXRp YWxfcGxhbmVfY29uZmlnIHsKPiA+ID4gPiA+ID4gQEAgLTY0OCw4ICs2NTAsNiBAQCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSB7Cj4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+IMKgCWJvb2wgaXBz X2VuYWJsZWQ7Cj4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+IC0JYm9vbCBlbmFibGVfZmJjOwo+ ID4gPiA+ID4gPiAtCj4gPiA+ID4gPiA+IMKgCWJvb2wgZG91YmxlX3dpZGU7Cj4gPiA+ID4gPiA+ IMKgCj4gPiA+ID4gPiA+IMKgCWJvb2wgZHBfZW5jb2Rlcl9pc19tc3Q7Cj4gPiA+ID4gPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9mYmMuYwo+ID4gPiA+ID4gPiBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiYy5jCj4gPiA+ID4gPiA+IGluZGV4IGIwOTUx NzUuLmZjNGFjNTcgMTAwNjQ0Cj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2ZiYy5jCj4gPiA+ID4gPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2ZiYy5jCj4gPiA+ID4gPiA+IEBAIC0xMDU1LDE2ICsxMDU1LDE3IEBAIHZvaWQgaW50ZWxfZmJj X2Nob29zZV9jcnRjKHN0cnVjdAo+ID4gPiA+ID4gPiBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKPiA+ID4gPiA+ID4gwqAJCQnCoMKgwqBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUp Cj4gPiA+ID4gPiA+IMKgewo+ID4gPiA+ID4gPiDCoAlzdHJ1Y3QgaW50ZWxfZmJjICpmYmMgPSAm ZGV2X3ByaXYtPmZiYzsKPiA+ID4gPiA+ID4gLQlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKPiA+ ID4gPiA+ID4gLQlzdHJ1Y3QgZHJtX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZTsKPiA+ID4gPiA+ ID4gKwlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4gPiA+ID4gPiA+ICsJc3RydWN0IGRybV9jcnRj X3N0YXRlICpjcnRjX3N0YXRlOwo+ID4gPiA+ID4gPiDCoAlib29sIGNydGNfY2hvc2VuID0gZmFs c2U7Cj4gPiA+ID4gPiA+IMKgCWludCBpOwo+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiDCoAlt dXRleF9sb2NrKCZmYmMtPmxvY2spOwo+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiAtCS8qIERv ZXMgdGhpcyBhdG9taWMgY29tbWl0IGludm9sdmUgdGhlIENSVEMKPiA+ID4gPiA+ID4gY3VycmVu dGx5Cj4gPiA+ID4gPiA+IHRpZWQKPiA+ID4gPiA+ID4gdG8gRkJDPyAqLwo+ID4gPiA+ID4gPiAr CS8qIERvZXMgdGhpcyBhdG9taWMgY29tbWl0IGludm9sdmUgdGhlIHBsYW5lCj4gPiA+ID4gPiA+ IGN1cnJlbnRseQo+ID4gPiA+ID4gPiB0aWVkIHRvIEZCQz8gKi8KPiA+ID4gPiA+ID4gwqAJaWYg KGZiYy0+Y3J0YyAmJgo+ID4gPiA+ID4gPiAtCcKgwqDCoMKgIWRybV9hdG9taWNfZ2V0X2V4aXN0 aW5nX2NydGNfc3RhdGUoc3RhdGUsCj4gPiA+ID4gPiA+ICZmYmMtCj4gPiA+ID4gPiA+ID4gCj4g PiA+ID4gPiA+ID4gY3J0Yy0KPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBiYXNlKSkKPiA+ ID4gPiA+ID4gKwnCoMKgwqDCoCFkcm1fYXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0ZShz dGF0ZSwKPiA+ID4gPiA+ID4gKwkJCQkJCcKgZmJjLQo+ID4gPiA+ID4gPiA+Y3J0Yy0KPiA+ID4g PiA+ID4gPiAKPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiBiYXNlLnByaW1hcnkpKQo+ID4g PiA+ID4gPiDCoAkJZ290byBvdXQ7Cj4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+IMKgCWlmICgh aW50ZWxfZmJjX2Nhbl9lbmFibGUoZGV2X3ByaXYpKQo+ID4gPiA+ID4gPiBAQCAtMTA3NCwyNSAr MTA3NSwyNiBAQCB2b2lkIGludGVsX2ZiY19jaG9vc2VfY3J0YyhzdHJ1Y3QKPiA+ID4gPiA+ID4g ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiA+ID4gPiA+IMKgCcKgKiBwbGFuZS4gV2Ug Y291bGQgZ28gZm9yIGZhbmNpZXIgc2NoZW1lcyBzdWNoIGFzCj4gPiA+ID4gPiA+IGNoZWNraW5n Cj4gPiA+ID4gPiA+IHRoZSBwbGFuZQo+ID4gPiA+ID4gPiDCoAnCoCogc2l6ZSwgYnV0IHRoaXMg d291bGQganVzdCBhZmZlY3QgdGhlIGZldwo+ID4gPiA+ID4gPiBwbGF0Zm9ybXMKPiA+ID4gPiA+ ID4gdGhhdAo+ID4gPiA+ID4gPiBkb24ndCB0aWUgRkJDCj4gPiA+ID4gPiA+IMKgCcKgKiB0byBw aXBlIG9yIHBsYW5lIEEuICovCj4gPiA+ID4gPiA+IC0JZm9yX2VhY2hfcGxhbmVfaW5fc3RhdGUo c3RhdGUsIHBsYW5lLCBwbGFuZV9zdGF0ZSwKPiA+ID4gPiA+ID4gaSkKPiA+ID4gPiA+ID4gewo+ ID4gPiA+ID4gPiAtCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUKPiA+ID4gPiA+ID4gKmludGVs X3BsYW5lX3N0YXRlID0KPiA+ID4gPiA+ID4gLQkJCXRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5l X3N0YXRlKTsKPiA+ID4gPiA+ID4gLQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2Ny dGNfc3RhdGU7Cj4gPiA+ID4gPiA+IC0JCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0KPiA+ID4g PiA+ID4gdG9faW50ZWxfY3J0YyhwbGFuZV9zdGF0ZS0+Y3J0Yyk7Cj4gPiA+ID4gPiA+ICsJZm9y X2VhY2hfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkKPiA+ID4gPiA+ ID4gewo+ID4gPiA+ID4gPiArCQlzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl ID0KPiA+ID4gPiA+ID4gdG9faW50ZWxfcGxhbmVfc3RhdGUoCj4gPiA+ID4gPiA+ICsJCQlkcm1f YXRvbWljX2dldF9leGlzdGluZ19wbGFuZV9zdGF0Cj4gPiA+ID4gPiA+IGUoc3QKPiA+ID4gPiA+ ID4gYXRlLAo+ID4gPiA+ID4gPiArCQkJCQkJCcKgwqAKPiA+ID4gPiA+ID4gwqDCoGNyCj4gPiA+ ID4gPiA+IHRjLQo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IHBy aW1hcnkpKTsKPiA+ID4gPiA+ID4gKwkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPQo+ ID4gPiA+ID4gPiB0b19pbnRlbF9jcnRjKGNydGMpOwo+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4g PiAtCQlpZiAoIWludGVsX3BsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUpCj4gPiA+ID4gPiA+ICsJ CWlmICghcGxhbmVfc3RhdGUpCj4gPiA+ID4gPiA+IMKgCQkJY29udGludWU7Cj4gPiA+ID4gPiA+ IMKgCj4gPiA+ID4gPiA+IC0JCWlmIChmYmNfb25fcGlwZV9hX29ubHkoZGV2X3ByaXYpICYmIGNy dGMtCj4gPiA+ID4gPiA+ID5waXBlwqAKPiA+ID4gPiA+ID4gIT0KPiA+ID4gPiA+ID4gUElQRV9B KQo+ID4gPiA+ID4gPiArCQlpZiAoIXBsYW5lX3N0YXRlLT5iYXNlLnZpc2libGUpCj4gPiA+ID4g PiA+IMKgCQkJY29udGludWU7Cj4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+IC0JCWlmIChmYmNf b25fcGxhbmVfYV9vbmx5KGRldl9wcml2KSAmJiBjcnRjLQo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ ID4gPiA+IHBsYW5lCj4gPiA+ID4gPiA+ICE9IFBMQU5FX0EpCj4gPiA+ID4gPiA+ICsJCWlmIChm YmNfb25fcGlwZV9hX29ubHkoZGV2X3ByaXYpICYmCj4gPiA+ID4gPiA+IGludGVsX2NydGMtCj4g PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gcGlwZSAhPSBQSVBFX0Ep Cj4gPiA+ID4gPiA+IMKgCQkJY29udGludWU7Cj4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+IC0J CWludGVsX2NydGNfc3RhdGUgPSB0b19pbnRlbF9jcnRjX3N0YXRlKAo+ID4gPiA+ID4gPiAtCQkJ ZHJtX2F0b21pY19nZXRfZXhpc3RpbmdfY3J0Y19zdGF0ZQo+ID4gPiA+ID4gPiAoc3RhCj4gPiA+ ID4gPiA+IHRlLAo+ID4gPiA+ID4gPiAmY3J0Yy0+YmFzZSkpOwo+ID4gPiA+ID4gPiArCQlpZiAo ZmJjX29uX3BsYW5lX2Ffb25seShkZXZfcHJpdikgJiYKPiA+ID4gPiA+ID4gKwkJwqDCoMKgwqBp bnRlbF9jcnRjLT5wbGFuZSAhPSBQTEFORV9BKQo+ID4gPiA+ID4gPiArCQkJY29udGludWU7Cj4g PiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+IC0JCWludGVsX2NydGNfc3RhdGUtPmVuYWJsZV9mYmMg PSB0cnVlOwo+ID4gPiA+ID4gPiArCQlwbGFuZV9zdGF0ZS0+ZW5hYmxlX2ZiYyA9IHRydWU7Cj4g PiA+ID4gPiAKPiA+ID4gPiA+IFNvIGxvb2tpbmcgYXQgdGhpcyB3aG9sZSB0aGluZywgSSBjYW4n dCBzZWUgYW55dGhpbmcgdGhhdAo+ID4gPiA+ID4gd291bGQKPiA+ID4gPiA+IHByZXZlbnQKPiA+ ID4gPiA+IGVuYWJsZV9mYmMgYmVpbmcgdHJ1ZSBmb3IgbXVsdGlwbGUgcHJpbWFyeSBwbGFuZXMg YXQgdGhlIHNhbWUKPiA+ID4gPiA+IHRpbWUKPiA+ID4gPiA+IFdlbGwsIGFwYXJ0IGZyb20gdGhl IHdob2xlICJ3ZSBlbmFibGUgaXQgb25seSBmb3IgcGxhdGZvcm1zCj4gPiA+ID4gPiB0aGF0Cj4g PiA+ID4gPiBjYW4KPiA+ID4gPiA+IG9ubHkgZG8KPiA+ID4gPiA+IHBpcGUgQSIgdGhpbmcuCj4g PiA+ID4gPiAKPiA+ID4gPiA+IFNvIHdoYXQgaGFwcGVucyBpbiB0aGF0IGNhc2U/IEZCQyBqdXN0 IGVuZHMgdXAgZ2V0dGluZwo+ID4gPiA+ID4gZW5hYmxpbmcKPiA+ID4gPiA+IG9uCj4gPiA+ID4g PiBvbmUgb2YgdGhlIHBpcGVzIGJhc2VkIG9uIHRoZSBvcmRlciBpbnRlbF9mYmNfZW5hYmxlKCkg Z2V0cwo+ID4gPiA+ID4gY2FsbGVkLAo+ID4gPiA+ID4gb3Igc29tZXRoaW5nPwo+ID4gPiA+IAo+ ID4gPiA+IFRoZSBmaXJzdCBjaGVjayBvZiBpbnRlbF9mYmNfY2hvb3NlX2NydGMoKSBpcyBzdXBw b3NlZCB0bwo+ID4gPiA+IHByZXZlbnQKPiA+ID4gPiB0aGlzCj4gPiA+ID4gY2FzZTogaWYgZmJj LT5jcnRjLT5wcmltYXJ5IGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgY29tbWl0IHdlCj4gPiA+ID4g anVzdAo+ID4gPiA+IHJldHVybiB3aXRob3V0IHNlbGVjdGluZyBhbnkgcGxhbmUuCj4gPiA+IAo+ ID4gPiBUaGUgZmJjLT5jcnRjIHRoaW5nIG9ubHkgd29ya3MgaWYgaW50ZWxfZmJjX2VuYWJsZSgp IHdhcyBhbHJlYWR5Cj4gPiA+IGNhbGxlZAo+ID4gPiBmb3Igc29tZSBjcnRjLiBCdXQgd2hhdCBp dCBpdCB3YXNuJ3Q/Cj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IE90aGVyd2lzZSwg d2Ugb25seSBwaWNrIG9uZSBDUlRDCj4gPiA+ID4gZHVlIHRvIHRoZSAiYnJlYWs7IiBzdGF0ZW1l bnQgYWZ0ZXIgc2V0dGluZyBwbGFuZV9zdGF0ZS0KPiA+ID4gPiA+ZW5hYmxlX2ZiY8KgCj4gPiA+ ID4gdG8KPiA+ID4gPiB0cnVlLgo+ID4gPiAKPiA+ID4gT25seSBvbmUgcGVyIGF0b21pYyBvcGVy YXRpb24uIEJ1dCB3aGF0IGlmIHRoZXJlIGFyZSBzZXZlcmFsCj4gPiA+IGhhcHBlbmluZwo+ID4g PiBpbiBwYXJhbGxlbCBvbiBkaWZmZXJlbnQgY3J0Y3M/Cj4gPiAKPiA+IEkgc2VlIHlvdXIgcG9p bnQgbm93LiBZZWFoLCB3ZSdsbCBlbmQgdXAgd2l0aAo+ID4gcGxhbmVfc3RhdGUuZW5hYmxlX2Zi Yz10cnVlIGZvciB0d28gZGlmZmVyZW50IHBsYW5lcy4gTGF0ZXIsIHRoZQo+ID4gZmlyc3QKPiA+ IG9uZSB0byBjYWxsIGludGVsX2ZiY19lbmFibGUoKSB3aWxsIHdpbiwgYW5kIHRoZSBvdGhlcnMg d2lsbCBiZQo+ID4gaWdub3JlZCwgc28gd2UnbGwgaW5kZWVkIGVuZCB1cCB3aXRoIHBsYW5lIHN0 YXRlcyBoYXZpbmcKPiA+IGVuYWJsZV9mYmM9dHJ1ZSBidXQgRkJDIG5vdCBlbmFibGVkIGJ5IHRo ZW0uIE5vdCBhIHJlYWwgYnVnLCBJCj4gPiB3b3VsZAo+ID4gc3RpbGwgbGlrZSB0byBhdm9pZCB0 aGlzIGNvbmZ1c2lvbi4KPiA+IAo+ID4gVGhlIHNpbXBsZXN0IHNvbHV0aW9uIEkgY2FuIHRoaW5r IHdvdWxkIGJlIHRvIGp1c3QKPiA+IHMvcGxhbmVfc3RhdGUuZW5hYmxlX2ZiYy9wbGFuZV9zdGF0 ZS5jYW5fZW5hYmxlX2ZiYy8gYW5kIGp1c3QgbGV0Cj4gPiB0aGUKPiA+IGZpcnN0IG9uZSB0byBj YWxsIGludGVsX2ZiY19lbmFibGUoKSB3aW4uLi4gQW5kIHRoZW4sIGlmIHdlIGV2ZXIKPiA+IGRl Y2lkZQo+ID4gdG8gZW5hYmxlIEZCQyBvbiB0aGUgb2xkZXIgcGxhdGZvcm1zLCB3ZSBjYW4gY2hv b3NlIHRvIG1heWJlCj4gPiBpbXBsZW1lbnQKPiA+IGEgYmV0dGVyIG1ldGhvZAo+IAo+IE1heWJl IHNvbWV0aGluZyBsaWtlICJmYmNfc2NvcmUiPyA7KQoKVGhlIGRlc2lnbiBvZiB0aGUgY3VycmVu dCBmdW5jdGlvbiB3YXMgc3VwcG9zZWQgdG8gYWxsb3cgVmlsbGUgdG8KaW1wbGVtZW50IGhpcyBm YmNfc2NvcmUgaW4gY2FzZSBoZSB3YW50ZWQuIEJ1dCB0aGlzIGNlcnRhaW5seSBkaWRuJ3QKdGFr ZSBpbnRvIGFjY291bnQgbXVsdGlwbGUgcGFyYWxsZWwgY29tbWl0czogaXQgd291bGQgb25seSB3 b3JrIGlmCm11bHRpcGxlIENSVENzIHdlcmUgaW5jbHVkZWQgaW4gdGhlIHNhbWUgY29tbWl0IChh cyB5b3UganVzdCBwb2ludGVkCnRvZGF5KS4KCkJ1dCB0aGVuOiBpZiB3ZSdyZSBoYXZpbmcgc2Vw YXJhdGUgcGFyYWxsZWwgY29tbWl0cywgd2hlbiB3b3VsZCB3ZSBiZQphYmxlIHRvIGxvb3AgdGhy b3VnaCB0aGUgc2NvcmVzIHRvIG9ubHkgYWN0dWFsbHkgZW5hYmxlIEZCQyBvbiB0aGUgYmVzdApz Y29yZT/CoAoKRm9yIGV4YW1wbGUsIGlmIHdlIGRvIHR3byBwYXJhbGxlbCBhdG9taWNfY2hlY2so KXMgYW5kIGVuZCB3aXRoCnBsYW5lX2Ffc2NvcmU9MSBhbmQgcGxhbmVfYl9zY29yZT0yLCB0aGVu IGxhdGVyIHdlIGRvIEEncyBjb21taXQoKSBhbmQKY2FsbCBpbnRlbF9mYmNfZW5hYmxlKCkgZm9y IGl0LCBob3cgZG8gd2UgY29uY2x1ZGUgdGhhdCB3ZSBzaG91bGRuJ3QKZW5hYmxlIEZCQyBmb3Ig cGxhbmUgQT8gV2UncmUgbm90IGV2ZW4gc3VyZSBpZiBwbGFuZSBCIGlzIGdvaW5nIHRvCmFjdHVh bGx5IGNvbW1pdCB0aGUgcGxhbmUgc3RhdGUgaXQgY2FsY3VsYXRlZCAobWF5YmUgaXQgd2FzCmNo ZWNrX29ubHkpLgoKQW5kIHRoZW4sIGlmIHdlIGRlY2lkZSB0byBvbmx5IGNvbXB1dGUgZXZlcnl0 aGluZyBkdXJpbmcgY29tbWl0KCkKaW5zdGVhZCBvZiBjaGVjaygpLCB3ZSdsbCBqdXN0IGFsc28g ZW5kIHVwIGVuYWJsaW5nIEZCQyBmb3IgcGxhbmUgQQpzaW5jZSBBJ3MgY29tbWl0KCkgd2lsbCBy dW4gZmlyc3QgYW5kIHdlJ2xsIGhhdmUgbm8gaWRlYSB0aGF0IEIncwpjb21taXQgaXMgaW5jb21p bmcuCgpUaGUgb25seSBvcHRpb24gd291bGQgYmUgdG8gZGlzYWJsZSBGQkMgZm9yIHBsYW5lIEEg YW5kIGVuYWJsZSBmb3IKcGxhbmUgQiBkdXJpbmcgQidzIGNvbW1pdC4gQnV0IEknbSBub3QgbG9v a2luZyBmb3J3YXJkIHRvIGltcGxlbWVudAp0aGlzIHJpZ2h0IG5vdy4KClNvIHdlIGtpbmRhIGhh dmUgMyBvcHRpb25zOgoKMSAtIEtlZXAgdGhlIGN1cnJlbnQgYXBwcm9hY2ggKHdpdGggdGhlIHJl bmFtZWQgdmFyaWFibGUpIHRoYXQgYXQgbGVhc3QKYWxsb3dzIHVzIHRvIHBpY2sgdGhlIGJlc3Qg Q1JUQyBpbiBjYXNlIGEgc2luZ2xlIGNvbW1pdCBpbmNsdWRlcwptdWx0aXBsZSBDUlRDcy4KCjIg LSBHbyB0aGUgc2ltcGxlc3Qgcm91dGUgYW5kIG5vdCBldmVuIGJvdGhlciBwaWNraW5nIHRoZSBi ZXN0IENSVEMKYW1vbmcgYSBzaW5nbGUgY29tbWl0IGR1ZSB0byB0aGUgZmFjdCB0aGF0IHBhcmFs bGVsIGNvbW1pdHMgd29uJ3QKZ3VhcmFudGVlIHdlIGFsd2F5cyBoYXZlIHRoZSBiZXN0IEZCQyBw bGFuZSBlbmFibGVkLCBzbyB3aHkgYm90aGVyLgoKMyAtIFdhaXQgZm9yIHNvbWVvbmUgdG8gaW1w bGVtZW50IHRoZSB0YWtlb3ZlciBhcHByb2FjaC4KClRoYW5rcyBmb3IgdGhlIHJldmlldywKUGF1 bG8KCgo+ID4gCj4gPiAoYW5kIGZpeCBhbGwgdGhlIHBvc3NpYmxlIEZCQyBwcm9ibGVtcyBmb3Ig dGhvc2UKPiA+IHBsYXRmb3JtcykuCj4gCj4gSSB0aGluayBJIGZpeGVkIGFsbCB0aGUgcGxhdGZv cm1zIHNwZWNpZmljIGlzc3VlcyBiYWNrIGluIHRoZSBkYXkuCj4gQWxsCj4gdGhlIGFjdHVhbCBw cm9ibGVtcyB3ZXJlIGluIHRoZSBjb21tb24gY29kZS4gQWx0aG91Z2ggSSBndWVzcyBzb21lIG9m Cj4gbXkgcGF0Y2hlcyBtaWdodCBub3QgaGF2ZSBtYWRlIGl0IGluLCBvciBJIGp1c3QgbWlzc2Vk IHNvbWUgdGhpbmdzLgo+IAo+ID4gCj4gPiBJcyB0aGlzIHNvbHV0aW9uIHdvcnRoIGEgUi1CIGZy b20geW91Pwo+ID4gCj4gPiBJZiB5b3UgaGF2ZSBhbnkgYmV0dGVyIGlkZWEgaGVyZSwgZmVlbCBm cmVlIHRvIHN1Z2dlc3QgaXQuIEknbSBub3QKPiA+IHN1cmUKPiA+IGl0J3MgcG9zc2libGUgdG8g Y29tZSB1cCB3aXRoIHNvbWV0aGluZyBtdWNoIGJldHRlciBkdWUgdG8gYWxsIHRoZQo+ID4gcGFy YWxsZWxpc20gaW52b2x2ZWQuIE1ha2luZyBvbmUgQ1JUQyAidGFrZSBvdmVyIiBGQkMgZnJvbSB0 aGUKPiA+IG90aGVyIGlzCj4gPiBzb21ldGhpbmcgSSdkIHJlYWxseSBsb3ZlIHRvIGF2b2lkLgo+ IAo+IFllYWgsIGl0IGxvb2tlZCBzYWZlIGVub3VnaCB0byBtZSB0byBoYXZlIHRoZSB0aGluZyBz ZXQgdG8gdHJ1ZSBvbgo+IG11bHRpcGxlIHBsYW5lcywgYW5kIGlmIHlvdSBjYW1lIHRvIHRoZSBz YW1lIGNvbmNsdXNpb24gSSB0aGluayB3ZQo+IHNob3VsZCBiZSBnb29kLgo+IAo+IFdpdGggdGhl IHJlbmFtZSBvZiB0aGUgZmxhZyB0byBhdm9pZCBjb25mdXNpb246Cj4gUmV2aWV3ZWQtYnk6IFZp bGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cgo+ID4gCj4gPiAK PiA+IFRoYW5rcywKPiA+IFBhdWxvCj4gPiAKPiA+ID4gCj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ IAo+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4gPiAKPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiAK PiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiDCoAkJY3J0Y19jaG9zZW4gPSB0 cnVlOwo+ID4gPiA+ID4gPiDCoAkJYnJlYWs7Cj4gPiA+ID4gPiA+IMKgCX0KPiA+ID4gPiA+ID4g QEAgLTExMzAsMTMgKzExMzIsMTMgQEAgdm9pZCBpbnRlbF9mYmNfZW5hYmxlKHN0cnVjdAo+ID4g PiA+ID4gPiBpbnRlbF9jcnRjCj4gPiA+ID4gPiA+ICpjcnRjLAo+ID4gPiA+ID4gPiDCoAlpZiAo ZmJjLT5lbmFibGVkKSB7Cj4gPiA+ID4gPiA+IMKgCQlXQVJOX09OKGZiYy0+Y3J0YyA9PSBOVUxM KTsKPiA+ID4gPiA+ID4gwqAJCWlmIChmYmMtPmNydGMgPT0gY3J0Yykgewo+ID4gPiA+ID4gPiAt CQkJV0FSTl9PTighY3J0Y19zdGF0ZS0+ZW5hYmxlX2ZiYyk7Cj4gPiA+ID4gPiA+ICsJCQlXQVJO X09OKCFwbGFuZV9zdGF0ZS0+ZW5hYmxlX2ZiYyk7Cj4gPiA+ID4gPiA+IMKgCQkJV0FSTl9PTihm YmMtPmFjdGl2ZSk7Cj4gPiA+ID4gPiA+IMKgCQl9Cj4gPiA+ID4gPiA+IMKgCQlnb3RvIG91dDsK PiA+ID4gPiA+ID4gwqAJfQo+ID4gPiA+ID4gPiDCoAo+ID4gPiA+ID4gPiAtCWlmICghY3J0Y19z dGF0ZS0+ZW5hYmxlX2ZiYykKPiA+ID4gPiA+ID4gKwlpZiAoIXBsYW5lX3N0YXRlLT5lbmFibGVf ZmJjKQo+ID4gPiA+ID4gPiDCoAkJZ290byBvdXQ7Cj4gPiA+ID4gPiA+IMKgCj4gPiA+ID4gPiA+ IMKgCVdBUk5fT04oZmJjLT5hY3RpdmUpOwo+ID4gPiA+ID4gPiAtLcKgCj4gPiA+ID4gPiA+IDIu Ny40Cj4gPiA+ID4gPiAKPiA+ID4gCj4gCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2ludGVsLWdmeAo=