From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2] drm: Don't force all planes to be added to the state due to zpos Date: Mon, 10 Oct 2016 17:31:34 +0200 Message-ID: <20161010153134.GX20761@phenom.ffwll.local> References: <1476101987-31986-1-git-send-email-ville.syrjala@linux.intel.com> <1476111056-12734-1-git-send-email-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qk0-x242.google.com (mail-qk0-x242.google.com [IPv6:2607:f8b0:400d:c09::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 207436E52E for ; Mon, 10 Oct 2016 15:31:38 +0000 (UTC) Received: by mail-qk0-x242.google.com with SMTP id v138so5900391qka.2 for ; Mon, 10 Oct 2016 08:31:38 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1476111056-12734-1-git-send-email-ville.syrjala@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: ville.syrjala@linux.intel.com Cc: stable@vger.kernel.org, Seung-Woo Kim , dri-devel@lists.freedesktop.org, Kyungmin Park , Laurent Pinchart , Lyude , Vincent Abriou , Marek Szyprowski List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBPY3QgMTAsIDIwMTYgYXQgMDU6NTA6NTZQTSArMDMwMCwgdmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20gd3JvdGU6Cj4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJq YWxhQGxpbnV4LmludGVsLmNvbT4KPiAKPiBXZSBkb24ndCB3YW50IGFsbCBwbGFuZXMgdG8gYmUg YWRkZWQgdG8gdGhlIHN0YXRlIHdoZW5ldmVyIGEKPiBwbGFuZSB3aXRoIGZpeGVkIHpwb3MgZ2V0 cyBlbmFibGVkL2Rpc2FibGVkLiBUaGlzIGlzIHRydWUKPiBlc3BlY2lhbGx5IGZvciBlZy4gY3Vy c29yIHBsYW5lcyBvbiBpOTE1LCBhcyB3ZSB3YW50IGN1cnNvcgo+IHVwZGF0ZXMgdG8gZ28gdGhy b3VnaCB3L28gdGhyb3R0bGluZy4gU2FtZSBob2xkcyBmb3IgZHJpdmVycwo+IHRoYXQgZG9uJ3Qg c3VwcG9ydCB6cG9zIGF0IGFsbCAoaTkxNSBhY3R1YWxseSBmYWxscyBpbnRvIHRoaXMKPiBjYXRl Z29yeSByaWdodCBub3cgc2luY2Ugd2UndmUgbm90IHlldCBhZGRlZCB6cG9zIHN1cHBvcnQpLgo+ IAo+IEFsbG93IGRyaXZlcnMgbW9yZSBmcmVlZG9tIGJ5IGxldHRpbmcgdGhlbSBkZWFsIHdpdGgg enBvcwo+IHRoZW1zZWx2ZXMgaW5zdGVhZCBvZiBkb2luZyBpdCBpbiBkcm1fYXRvbWljX2hlbHBl cl9jaGVja19wbGFuZXMoKQo+IHVuY29uZGl0aW9uYWxseS4gTGV0J3MganVzdCBpbmxpbmUgdGhl IHJlcXVpcmVkIGNhbGxzIGludG8gYWxsCj4gdGhlIGRyaXZlciB0aGF0IGN1cnJlbnRseSBkZXBl bmQgb24gdGhpcy4KPiAKPiB2MjogSW5saW5lIHRoZSBzdHVmZiBpbnRvIHRoZSBkcml2ZXJzIGlu c3RlYWQgb2YgYWRkaW5nIGFub3RoZXIKPiAgICAgaGVscGVyLCBkb2N1bWVudCB0aGluZ3MgYmV0 dGVyIChEYW5pZWwpCj4gCj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiBD YzogTWFyZWsgU3p5cHJvd3NraSA8bS5zenlwcm93c2tpQHNhbXN1bmcuY29tPgo+IENjOiBCZW5q YW1pbiBHYWlnbmFyZCA8YmVuamFtaW4uZ2FpZ25hcmRAbGluYXJvLm9yZz4KPiBDYzogVmluY2Vu dCBBYnJpb3UgPHZpbmNlbnQuYWJyaW91QHN0LmNvbT4KPiBDYzogTGF1cmVudCBQaW5jaGFydCA8 bGF1cmVudC5waW5jaGFydEBpZGVhc29uYm9hcmQuY29tPgo+IENjOiBJbmtpIERhZSA8aW5raS5k YWVAc2Ftc3VuZy5jb20+Cj4gQ2M6IEpvb255b3VuZyBTaGltIDxqeTA5MjIuc2hpbUBzYW1zdW5n LmNvbT4KPiBDYzogU2V1bmctV29vIEtpbSA8c3cwMzEyLmtpbUBzYW1zdW5nLmNvbT4KPiBDYzog S3l1bmdtaW4gUGFyayA8a3l1bmdtaW4ucGFya0BzYW1zdW5nLmNvbT4KPiBDYzogTHl1ZGUgPGNw YXVsQHJlZGhhdC5jb20+Cj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3Jz dEBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5vcmcKPiBGaXhlczog NDRkMTI0MGQwMDZjICgiZHJtOiBhZGQgZ2VuZXJpYyB6cG9zIHByb3BlcnR5IikKPiBTaWduZWQt b2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyAgICAgfCAgNCAtLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuYyB8IDIwICsrKysrKysr KysrKysrKysrKysrCj4gIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaCB8 ICAxICsKPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZiLmMgIHwgIDIgKy0K PiAgZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYyAgIHwgMTIgKysrKysrKysr Ky0tCj4gIGRyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2Rydi5jICAgICAgICAgICB8IDIyICsrKysr KysrKysrKysrKysrKysrKy0KPiAgaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggICAgICAgICAgICAg ICAgIHwgIDggKysrKysrKy0KPiAgNyBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA5 IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Y19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gaW5kZXgg YzNmODM0NzZmOTk2Li4yMWY5OTI2MDU1NDEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfaGVscGVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYwo+IEBAIC01OTQsMTAgKzU5NCw2IEBAIGRybV9hdG9taWNfaGVscGVyX2NoZWNrX3Bs YW5lcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJc3RydWN0IGRybV9wbGFuZV9zdGF0ZSAq cGxhbmVfc3RhdGU7Cj4gIAlpbnQgaSwgcmV0ID0gMDsKPiAgCj4gLQlyZXQgPSBkcm1fYXRvbWlj X25vcm1hbGl6ZV96cG9zKGRldiwgc3RhdGUpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0 Owo+IC0KPiAgCWZvcl9lYWNoX3BsYW5lX2luX3N0YXRlKHN0YXRlLCBwbGFuZSwgcGxhbmVfc3Rh dGUsIGkpIHsKPiAgCQljb25zdCBzdHJ1Y3QgZHJtX3BsYW5lX2hlbHBlcl9mdW5jcyAqZnVuY3M7 Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2 LmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmMKPiBpbmRleCBkZWY3 OGM4YzE3ODAuLmY4NmU3Yzg0NjY3OCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcm1fZHJ2LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v c19kcm1fZHJ2LmMKPiBAQCAtMjYyLDYgKzI2MiwyNiBAQCBpbnQgZXh5bm9zX2F0b21pY19jb21t aXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRl LAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gK2ludCBleHlub3NfYXRvbWljX2NoZWNrKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsCj4gKwkJCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkK PiArewo+ICsJaW50IHJldDsKPiArCj4gKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19t b2Rlc2V0KGRldiwgc3RhdGUpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAr CXJldCA9IGRybV9hdG9taWNfbm9ybWFsaXplX3pwb3MoZGV2LCBzdGF0ZSk7Cj4gKwlpZiAocmV0 KQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tf cGxhbmVzKGRldiwgc3RhdGUpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiAr CXJldHVybiByZXQ7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgZXh5bm9zX2RybV9vcGVuKHN0cnVj dCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgewo+ICAJc3RydWN0 IGRybV9leHlub3NfZmlsZV9wcml2YXRlICpmaWxlX3ByaXY7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9kcnYuaAo+IGluZGV4IGQyMTUxNDllNzM3Yi4uODBjNGQ1YjgxNjg5IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYuaAo+IEBAIC0zMDEsNiAr MzAxLDcgQEAgc3RhdGljIGlubGluZSBpbnQgZXh5bm9zX2RwaV9iaW5kKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAo+ICBpbnQgZXh5bm9zX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkgYm9vbCBub25i bG9jayk7Cj4gK2ludCBleHlub3NfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYs IHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7Cj4gIAo+ICAKPiAgZXh0ZXJuIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgZmltZF9kcml2ZXI7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9mYi5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2ZiLmMKPiBpbmRleCA0MGNlODQxZWI5NTIuLjIzY2NlMGEzZjVmYyAxMDA2NDQKPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmIuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9mYi5jCj4gQEAgLTE5MCw3ICsxOTAsNyBAQCBk bWFfYWRkcl90IGV4eW5vc19kcm1fZmJfZG1hX2FkZHIoc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIsIGludCBpbmRleCkKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fbW9kZV9jb25maWdfZnVu Y3MgZXh5bm9zX2RybV9tb2RlX2NvbmZpZ19mdW5jcyA9IHsKPiAgCS5mYl9jcmVhdGUgPSBleHlu b3NfdXNlcl9mYl9jcmVhdGUsCj4gIAkub3V0cHV0X3BvbGxfY2hhbmdlZCA9IGV4eW5vc19kcm1f b3V0cHV0X3BvbGxfY2hhbmdlZCwKPiAtCS5hdG9taWNfY2hlY2sgPSBkcm1fYXRvbWljX2hlbHBl cl9jaGVjaywKPiArCS5hdG9taWNfY2hlY2sgPSBleHlub3NfYXRvbWljX2NoZWNrLAo+ICAJLmF0 b21pY19jb21taXQgPSBleHlub3NfYXRvbWljX2NvbW1pdCwKPiAgfTsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfa21zLmMgYi9kcml2ZXJzL2dwdS9k cm0vcmNhci1kdS9yY2FyX2R1X2ttcy5jCj4gaW5kZXggYmQ5YzNiYjkyNTJjLi4zOTJjN2U2ZGUw NDIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JjYXItZHUvcmNhcl9kdV9rbXMuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yY2FyLWR1L3JjYXJfZHVfa21zLmMKPiBAQCAtMjMxLDgg KzIzMSwxNiBAQCBzdGF0aWMgaW50IHJjYXJfZHVfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAlzdHJ1Y3QgcmNhcl9kdV9kZXZpY2UgKnJjZHUgPSBkZXYtPmRldl9wcml2 YXRlOwo+ICAJaW50IHJldDsKPiAgCj4gLQlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVjayhk ZXYsIHN0YXRlKTsKPiAtCWlmIChyZXQgPCAwKQo+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJf Y2hlY2tfbW9kZXNldChkZXYsIHN0YXRlKTsKPiArCWlmIChyZXQpCj4gKwkJcmV0dXJuIHJldDsK PiArCj4gKwlyZXQgPSBkcm1fYXRvbWljX25vcm1hbGl6ZV96cG9zKGRldiwgc3RhdGUpOwo+ICsJ aWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXJldCA9IGRybV9hdG9taWNfaGVscGVy X2NoZWNrX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiArCWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsK PiAgCj4gIAlpZiAocmNhcl9kdV9oYXMocmNkdSwgUkNBUl9EVV9GRUFUVVJFX1ZTUDFfU09VUkNF KSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3N0aS9zdGlfZHJ2LmMgYi9kcml2ZXJz L2dwdS9kcm0vc3RpL3N0aV9kcnYuYwo+IGluZGV4IDI3ODQ5MTlhNzM2Ni4uOWRmMzA4NTY1ZjZj IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zdGkvc3RpX2Rydi5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3N0aS9zdGlfZHJ2LmMKPiBAQCAtMTk1LDYgKzE5NSwyNiBAQCBzdGF0aWMg dm9pZCBzdGlfYXRvbWljX3dvcmsoc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrKQo+ICAJc3RpX2F0 b21pY19jb21wbGV0ZShwcml2YXRlLCBwcml2YXRlLT5jb21taXQuc3RhdGUpOwo+ICB9Cj4gIAo+ ICtzdGF0aWMgaW50IHN0aV9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAr CQkJICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJaW50IHJldDsK PiArCj4gKwlyZXQgPSBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19tb2Rlc2V0KGRldiwgc3RhdGUp Owo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXJldCA9IGRybV9hdG9taWNf bm9ybWFsaXplX3pwb3MoZGV2LCBzdGF0ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7 Cj4gKwo+ICsJcmV0ID0gZHJtX2F0b21pY19oZWxwZXJfY2hlY2tfcGxhbmVzKGRldiwgc3RhdGUp Owo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30K PiArCj4gIHN0YXRpYyBpbnQgc3RpX2F0b21pY19jb21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRy bSwKPiAgCQkJICAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsIGJvb2wgbm9uYmxv Y2spCj4gIHsKPiBAQCAtMjQ4LDcgKzI2OCw3IEBAIHN0YXRpYyB2b2lkIHN0aV9vdXRwdXRfcG9s bF9jaGFuZ2VkKHN0cnVjdCBkcm1fZGV2aWNlICpkZGV2KQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0 IGRybV9tb2RlX2NvbmZpZ19mdW5jcyBzdGlfbW9kZV9jb25maWdfZnVuY3MgPSB7Cj4gIAkuZmJf Y3JlYXRlID0gZHJtX2ZiX2NtYV9jcmVhdGUsCj4gIAkub3V0cHV0X3BvbGxfY2hhbmdlZCA9IHN0 aV9vdXRwdXRfcG9sbF9jaGFuZ2VkLAo+IC0JLmF0b21pY19jaGVjayA9IGRybV9hdG9taWNfaGVs cGVyX2NoZWNrLAo+ICsJLmF0b21pY19jaGVjayA9IHN0aV9hdG9taWNfY2hlY2ssCj4gIAkuYXRv bWljX2NvbW1pdCA9IHN0aV9hdG9taWNfY29tbWl0LAo+ICB9Owo+ICAKPiBkaWZmIC0tZ2l0IGEv aW5jbHVkZS9kcm0vZHJtX3BsYW5lLmggYi9pbmNsdWRlL2RybS9kcm1fcGxhbmUuaAo+IGluZGV4 IDQzY2YxOTNlNTRkNi4uOGI0ZGM2MjQ3MGZmIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2Ry bV9wbGFuZS5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX3BsYW5lLmgKPiBAQCAtNDcsOCArNDcs MTQgQEAgc3RydWN0IGRybV9jcnRjOwo+ICAgKiBAc3JjX2g6IGhlaWdodCBvZiB2aXNpYmxlIHBv cnRpb24gb2YgcGxhbmUgKGluIDE2LjE2KQo+ICAgKiBAcm90YXRpb246IHJvdGF0aW9uIG9mIHRo ZSBwbGFuZQo+ICAgKiBAenBvczogcHJpb3JpdHkgb2YgdGhlIGdpdmVuIHBsYW5lIG9uIGNydGMg KG9wdGlvbmFsKQo+ICsgKglOb3RlIHRoYXQgbXVsdGlwbGUgYWN0aXZlIHBsYW5lcyBvbiB0aGUg c2FtZSBjcnRjIGNhbiBoYXZlIGFuIGlkZW50aWNhbAo+ICsgKgl6cG9zIHZhbHVlLiBUaGUgcnVs ZSB0byBzb2x2aW5nIHRoZSBjb25mbGljdCBpcyB0byBjb21wYXJlIHRoZSBwbGFuZQo+ICsgKglv YmplY3QgSURzOyB0aGUgcGxhbmUgd2l0aCBhIGhpZ2hlciBJRCBtdXN0IGJlIHN0YWNrZWQgb24g dG9wIG9mIGEKPiArICoJcGxhbmUgd2l0aCBhIGxvd2VyIElELgo+ICAgKiBAbm9ybWFsaXplZF96 cG9zOiBub3JtYWxpemVkIHZhbHVlIG9mIHpwb3M6IHVuaXF1ZSwgcmFuZ2UgZnJvbSAwIHRvIE4t MQo+IC0gKgl3aGVyZSBOIGlzIHRoZSBudW1iZXIgb2YgYWN0aXZlIHBsYW5lcyBmb3IgZ2l2ZW4g Y3J0Ywo+ICsgKgl3aGVyZSBOIGlzIHRoZSBudW1iZXIgb2YgYWN0aXZlIHBsYW5lcyBmb3IgZ2l2 ZW4gY3J0Yy4gTm90ZSB0aGF0Cj4gKyAqCXRoZSBkcml2ZXIgbXVzdCBjYWxsIGRybV9hdG9taWNf bm9ybWFsaXplX3pwb3MoKSB0byB1cGRhdGUgdGhpcyBiZWZvcmUKPiArICoJaXQgY2FuIGJlIHRy dXN0ZWQuCgpIbSwgZm9yIGxvbmdlciBrZXJuZWxkb2MgZm9yIHN0cnVjdCBtZW1iZXJzIEkgcHJl ZmVyIHRoZSBpbi1saW5lIGxheW91dC4KTW9yZSByZWFkYWJsZSBvdmVyYWxsLCBhbmQgYmV0dGVy IGdyb3VwZWQuIEVpdGhlciB3YXk6CgpSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBmZndsbC5jaD4KCkknbGwgcGljayBpdCB1cCBvbmNlIGRyaXZlciBtYWludGFpbmVy cyBoYWQgYSBiaXQgb2YgdGltZSB0byBhY2sgaXQuCi1EYW5pZWwKCj4gICAqIEBzcmM6IGNsaXBw ZWQgc291cmNlIGNvb3JkaW5hdGVzIG9mIHRoZSBwbGFuZSAoaW4gMTYuMTYpCj4gICAqIEBkc3Q6 IGNsaXBwZWQgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgb2YgdGhlIHBsYW5lCj4gICAqIEB2aXNp YmxlOiB2aXNpYmlsaXR5IG9mIHRoZSBwbGFuZQo+IC0tIAo+IDIuNy40Cj4gCgotLSAKRGFuaWVs IFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cu ZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==