From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v2 02/20] drm: Don't update plane properties for atomic planes if it stays the same Date: Mon, 13 Jul 2015 11:49:01 +0200 Message-ID: <55A3898D.3000500@linux.intel.com> References: <20150707164352.GZ7568@phenom.ffwll.local> <559CD896.8040301@linux.intel.com> <20150708085508.GD7568@phenom.ffwll.local> <559D5163.7060204@linux.intel.com> <20150708175151.GA21858@phenom.ffwll.local> <559D6B03.2060804@linux.intel.com> <20150708201241.GB21858@phenom.ffwll.local> <55A37DF4.80804@linux.intel.com> <20150713091346.GV3736@phenom.ffwll.local> <55A383A1.6080606@linux.intel.com> <20150713094528.GE3736@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20150713094528.GE3736@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, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTMtMDctMTUgb20gMTE6NDUgc2NocmVlZiBEYW5pZWwgVmV0dGVyOgo+IE9uIE1vbiwgSnVs IDEzLCAyMDE1IGF0IDExOjIzOjQ1QU0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+ PiBPcCAxMy0wNy0xNSBvbSAxMToxMyBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4+PiBPbiBNb24s IEp1bCAxMywgMjAxNSBhdCAxMDo1OTozMkFNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPj4+PiBPcCAwOC0wNy0xNSBvbSAyMjoxMiBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4+Pj4+ IE9uIFdlZCwgSnVsIDA4LCAyMDE1IGF0IDA4OjI1OjA3UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hv cnN0IHdyb3RlOgo+Pj4+Pj4gT3AgMDgtMDctMTUgb20gMTk6NTIgc2NocmVlZiBEYW5pZWwgVmV0 dGVyOgo+Pj4+Pj4+IE9uIFdlZCwgSnVsIDA4LCAyMDE1IGF0IDA2OjM1OjQ3UE0gKzAyMDAsIE1h YXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+Pj4+Pj4+PiBPcCAwOC0wNy0xNSBvbSAxMDo1NSBzY2hy ZWVmIERhbmllbCBWZXR0ZXI6Cj4+Pj4+Pj4+PiBPbiBXZWQsIEp1bCAwOCwgMjAxNSBhdCAxMDow MDoyMkFNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPj4+Pj4+Pj4+PiBPcCAwNy0w Ny0xNSBvbSAxODo0MyBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4+Pj4+Pj4+Pj4+IE9uIFR1ZSwg SnVsIDA3LCAyMDE1IGF0IDA1OjA4OjM0UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3Rl Ogo+Pj4+Pj4+Pj4+Pj4gT3AgMDctMDctMTUgb20gMTQ6MTAgc2NocmVlZiBEYW5pZWwgVmV0dGVy Ogo+Pj4+Pj4+Pj4+Pj4+IE9uIFR1ZSwgSnVsIDA3LCAyMDE1IGF0IDEyOjIwOjEwUE0gKzAyMDAs IE1hYXJ0ZW4gTGFua2hvcnN0IHdyb3RlOgo+Pj4+Pj4+Pj4+Pj4+PiBPcCAwNy0wNy0xNSBvbSAx MToxOCBzY2hyZWVmIERhbmllbCBWZXR0ZXI6Cj4+Pj4+Pj4+Pj4+Pj4+PiBPbiBUdWUsIEp1bCAw NywgMjAxNSBhdCAwOTowODoxM0FNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90ZToKPj4+ Pj4+Pj4+Pj4+Pj4+PiBUaGlzIGFsbG93cyB0aGUgZmlyc3QgYXRvbWljIGNhbGwgZHVyaW5nIGh3 IGluaXQgdG8gYmUgYSByZWFsIG1vZGVzZXQsCj4+Pj4+Pj4+Pj4+Pj4+Pj4gd2hpY2ggaXMgdXNl ZnVsIGZvciBmb3JjaW5nIGEgcmVjYWxjdWxhdGlvbi4KPj4+Pj4+Pj4+Pj4+Pj4+IGZiY29uIGlz IG9wdGlvbmFsLCB5b3UgY2FuJ3QgcmVseSBvbiBhbnl0aGluZyBiZWluZyBkb25lIGluIGFueSBz cGVjaWZpYwo+Pj4+Pj4+Pj4+Pj4+Pj4gd2F5LiBXaGF0IGV4YWN0bHkgZG8geW91IG5lZWQgdGhp cyBmb3IsIHdoYXQncyB0aGUgaW1wbGljYXRpb25zPwo+Pj4+Pj4+Pj4+Pj4+PiBJbiB0aGUgaHcg cmVhZG91dCBJIG5vdGljZWQgc29tZSB3YXJuaW5ncyB3aGVuIEkgd2Fzbid0IHNldHRpbmcgYW55 IG1vZGUgcHJvcGVydHkgaW4gdGhlIHJlYWRvdXQuCj4+Pj4+Pj4+Pj4+Pj4+IEkgd2FudCB0aGUg Zmlyc3QgZnVuY3Rpb24gdG8gYmUgdGhlIG1vZGVzZXQsIHNvIHdlIGhhdmUgYSBzYW5lIGJhc2Ug dG8gY29tbWl0IGNoYW5nZXMgb24uCj4+Pj4+Pj4+Pj4+Pj4+IElkZWFsbHkgdGhpcyB3aG9sZSBm dW5jdGlvbiB3b3VsZCBoYXZlIGEgYXRvbWljIGNvdW50ZXJwYXJ0IHdoaWNoIGRvZXMgaXQgaW4g b25lIGdvLiA6KQo+Pj4+Pj4+Pj4+Pj4+IFllYWguIE90b2ggYXMgc29vbiBhcyB3ZSBoYXZlIGF0 b21pYyBtb2Rlc2V0IHdvcmtpbmcgd2UgY2FuIHJlcGxhY2UgYWxsCj4+Pj4+Pj4+Pj4+Pj4gdGhl IGxlZ2FjeSBlbnRyeSBwb2ludHMgd2l0aCBhdG9taWMgaGVscGVycywgYW5kIHRoZW4gZXZlbiBw bGFuZV9kaXNhYmxlCj4+Pj4+Pj4+Pj4+Pj4gd2lsbCBiZSBhIGZ1bGwgYXRvbWljIG1vZGVzZXQu Cj4+Pj4+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Pj4+PiBXaGF0IGRpZCBmYWxsIGFwYXJ0IHdpdGgganVz dCB0b3VjaGluZyBwcm9wZXJ0aWVzL3BsYW5lcyBub3c/Cj4+Pj4+Pj4+Pj4+PiBBbHNvIHdoZW4g aTkxNSBpcyBmdWxseSBhdG9taWMgaXQgY2FsY3VsYXRlcyBpbiBpbnRlbF9tb2Rlc2V0X2NvbXB1 dGVfY29uZmlnCj4+Pj4+Pj4+Pj4+PiBpZiBhIG1vZGVzZXQgaXMgbmVlZGVkIGFmdGVyIHRoZSBm aXJzdCBhdG9taWMgY2FsbC4gUmlnaHQgbm93IGJlY2F1c2UKPj4+Pj4+Pj4+Pj4+IGludGVsX21v ZGVzZXRfY29tcHV0ZV9jb25maWcgaXMgb25seSBjYWxsZWQgaW4gc2V0X2NvbmZpZyBzbyB0aGlz IHdvcmtzIGFzIGV4cGVjdGVkLgo+Pj4+Pj4+Pj4+Pj4gT3RoZXJ3aXNlIGRybV9wbGFuZV9mb3Jj ZV9kaXNhYmxlIG9yIHJvdGF0ZV8wIHdpbGwgZm9yY2UgYSBtb2Rlc2V0LAo+Pj4+Pj4+Pj4+Pj4g YW5kIGlmIHRoZSBmaW5hbCBtb2RlIGlzIGRpZmZlcmVudCB0aGlzIHdpbGwgaW50cm9kdWNlIGEg ZG91YmxlIG1vZGVzZXQuCj4+Pj4+Pj4+Pj4+IEZvciBleHBlbnNpdmUgcHJvcGVydGllcyAoaS5l LiBhIG5vLW9wIGNoYW5nZXMgY2F1c2VzIHNvbWV0aGluZyB0aGF0IHRha2VzCj4+Pj4+Pj4+Pj4+ IHRpbWUgbGlrZSBtb2Rlc2V0IG9yIHZibGFuayB3YWl0KSB3ZSBuZWVkIHRvIG1ha2Ugc3VyZSB3 ZSBmaWx0ZXIgdGhlbSBvdXQKPj4+Pj4+Pj4+Pj4gaW4gYXRvbWljX2NoZWNrLiBZZWFoIG5vdCBx dWl0ZSB0aGVyZSB5ZXQgd2l0aCBwdXJlIGF0b21pYywgYnV0IG1lYW53aGlsZQo+Pj4+Pj4+Pj4+ PiB0aGUgZXhpc3RpbmcgbGVnYWN5IHNldF9wcm9wIGZ1bmN0aW9ucyBzaG91bGQgYWxsIGZpbHRl ciBvdXQgbm8tb3AgY2hhbmdlcwo+Pj4+Pj4+Pj4+PiB0aGVtc2VsdmVzLiBJZiB3ZSBkb24ndCBk byB0aGF0IGZvciByb3RhdGlvbiB0aGVuIHRoYXQncyBhIGJ1Zy4KPj4+Pj4+Pj4+Pj4KPj4+Pj4+ Pj4+Pj4gU2FtZSBmb3IgZGlzYWJsaW5nIHBsYW5lcyBoYXJkZXIsIHRoYXQgc2hvdWxkbid0IHRh a2UgdGltZS4gRXNwZWNpYWxseQo+Pj4+Pj4+Pj4+PiBzaW5jZSBmYmNvbiBvbmx5IGZvcmNlLWRp c2FibGUgbm9uLXByaW1hcnkgcGxhbmUsIGFuZCBmb3IgZHJpdmVyIGxvYWQKPj4+Pj4+Pj4+Pj4g dGhhdCdzIHRoZSBleGFjdCB0aGluZyB3ZSBhbHJlYWR5IGRvIGluIHRoZSBkcml2ZXIgYW55d2F5 Lgo+Pj4+Pj4+Pj4+IFNvbWV0aGluZyBsaWtlIHRoaXM/Cj4+Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4+Pj4+Pj4+PiBpbmRleCBhMWQ0ZTEz ZjM5MDguLjI5ODkyMzJmNDk5NiAxMDA2NDQKPj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pY19oZWxwZXIuYwo+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCj4+Pj4+Pj4+Pj4gQEAgLTMwLDYgKzMwLDcgQEAKPj4+Pj4+Pj4+ PiAgI2luY2x1ZGUgPGRybS9kcm1fcGxhbmVfaGVscGVyLmg+Cj4+Pj4+Pj4+Pj4gICNpbmNsdWRl IDxkcm0vZHJtX2NydGNfaGVscGVyLmg+Cj4+Pj4+Pj4+Pj4gICNpbmNsdWRlIDxkcm0vZHJtX2F0 b21pY19oZWxwZXIuaD4KPj4+Pj4+Pj4+PiArI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgi Cj4+Pj4+Pj4+Pj4gICNpbmNsdWRlIDxsaW51eC9mZW5jZS5oPgo+Pj4+Pj4+Pj4+ICAKPj4+Pj4+ Pj4+PiAgLyoqCj4+Pj4+Pj4+Pj4gQEAgLTE3MTYsNyArMTcxNywxMiBAQCBkcm1fYXRvbWljX2hl bHBlcl9jcnRjX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+Pj4+Pj4+Pj4g IHsKPj4+Pj4+Pj4+PiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKPj4+Pj4+Pj4+ PiAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPj4+Pj4+Pj4+PiAtCWludCBy ZXQgPSAwOwo+Pj4+Pj4+Pj4+ICsJdWludDY0X3QgcmV0dmFsOwo+Pj4+Pj4+Pj4+ICsJaW50IHJl dDsKPj4+Pj4+Pj4+PiArCj4+Pj4+Pj4+Pj4gKwlyZXQgPSBkcm1fYXRvbWljX2dldF9wcm9wZXJ0 eSgmY3J0Yy0+YmFzZSwgcHJvcGVydHksICZyZXR2YWwpOwo+Pj4+Pj4+Pj4+ICsJaWYgKCFyZXQg JiYgdmFsID09IHJldHZhbCkKPj4+Pj4+Pj4+PiArCQlyZXR1cm4gMDsKPj4+Pj4+Pj4+PiAgCj4+ Pj4+Pj4+Pj4gIAlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxsb2MoY3J0Yy0+ZGV2KTsKPj4+ Pj4+Pj4+PiAgCWlmICghc3RhdGUpCj4+Pj4+Pj4+Pj4gQEAgLTE3NzYsNyArMTc4MiwxMiBAQCBk cm1fYXRvbWljX2hlbHBlcl9wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9wbGFuZSAqcGxh bmUsCj4+Pj4+Pj4+Pj4gIHsKPj4+Pj4+Pj4+PiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZTsKPj4+Pj4+Pj4+PiAgCXN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlOwo+ Pj4+Pj4+Pj4+IC0JaW50IHJldCA9IDA7Cj4+Pj4+Pj4+Pj4gKwl1aW50NjRfdCByZXR2YWw7Cj4+ Pj4+Pj4+Pj4gKwlpbnQgcmV0Owo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArCXJldCA9IGRybV9h dG9taWNfZ2V0X3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcHJvcGVydHksICZyZXR2YWwpOwo+Pj4+ Pj4+Pj4+ICsJaWYgKCFyZXQgJiYgdmFsID09IHJldHZhbCkKPj4+Pj4+Pj4+PiArCQlyZXR1cm4g MDsKPj4+Pj4+Pj4+PiAgCj4+Pj4+Pj4+Pj4gIAlzdGF0ZSA9IGRybV9hdG9taWNfc3RhdGVfYWxs b2MocGxhbmUtPmRldik7Cj4+Pj4+Pj4+Pj4gIAlpZiAoIXN0YXRlKQo+Pj4+Pj4+Pj4+IEBAIC0x ODM2LDcgKzE4NDcsMTIgQEAgZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX3NldF9wcm9wZXJ0 eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+Pj4+Pj4+Pj4+ICB7Cj4+Pj4+Pj4+ Pj4gIAlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4+Pj4+Pj4+Pj4gIAlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwo+Pj4+Pj4+Pj4+IC0JaW50IHJl dCA9IDA7Cj4+Pj4+Pj4+Pj4gKwl1aW50NjRfdCByZXR2YWw7Cj4+Pj4+Pj4+Pj4gKwlpbnQgcmV0 Owo+Pj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+PiArCXJldCA9IGRybV9hdG9taWNfZ2V0X3Byb3BlcnR5 KCZjb25uZWN0b3ItPmJhc2UsIHByb3BlcnR5LCAmcmV0dmFsKTsKPj4+Pj4+Pj4+PiArCWlmICgh cmV0ICYmIHZhbCA9PSByZXR2YWwpCj4+Pj4+Pj4+Pj4gKwkJcmV0dXJuIDA7Cj4+Pj4+Pj4+Pj4g IAo+Pj4+Pj4+Pj4+ICAJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGNvbm5lY3Rvci0+ ZGV2KTsKPj4+Pj4+Pj4+PiAgCWlmICghc3RhdGUpCj4+Pj4+Pj4+PiBUaGUgcmVhc29uIEkgZGlk bid0IGRvIHRoaXMgaXMgdGhhdCBhIHByb3AgY2hhbmdlIG1pZ2h0IHN0aWxsIHJlc3VsdCBpbiBu bwo+Pj4+Pj4+Pj4gaHcgc3RhdGUgY2hhbmdlIChlLmcuIGlmIHlvdSBnbyBhdXRvbWl0aWMtPmV4 cGxpY2l0IHNldHRpbmcgbWF0Y2hpbmcKPj4+Pj4+Pj4+IGF1dG9tYXRpYyBvbmUpLiBIZW5jZSBJ IHRoaW5rIHdlIG5lZWQgdG8gc29sdmUgdGhpcyBpbiBsb3dlciBsZXZlbHMKPj4+Pj4+Pj4+IGFu eXdheSwgaS5lLiBpbiB3aGVuIGNvbXB1dGluZyB0aGUgY29uZmlnLiBCdXQgaXQgc2hvdWxkbid0 IGNhdXNlIHRyb3VibGUKPj4+Pj4+Pj4+IHlldC4KPj4+Pj4+Pj4gSXMgdGhhdCBhIGFjayBvciBu YWNrPwo+Pj4+Pj4+IEkgdGhpbmsgd2Ugc2hvdWxkbid0IG5lZWQgdGhpcyByZWFsbHkgZm9yIGk5 MTUsIGFuZCBpdCBtaWdodCBjb3ZlciB1cAo+Pj4+Pj4+IGJ1Z3MuIEkgcHJlZmVyIHdlIGp1c3Qg ZG8gdGhlIGV2YWRlIG1vZGVzZXQgbG9naWMgeW91J3ZlIGltcGxlbWVudGVkIG9uY2UKPj4+Pj4+ PiB3ZSBzd2l0Y2ggb3ZlciB0byBhdG9taWMgcHJvcHMuIFNpbmNlIGF0bSB3ZSBvbmx5IGhhdmUg YXRvbWljIHByb3BzIHdoaWNoCj4+Pj4+Pj4gZ2V0IHVwZGF0ZWQgaW4gcGFnZWZsaXBzIHdlIHNo b3VsZG4ndCBoYXZlIHNlcmlvdXMgcHJvYmxlbXMgaGVyZSB5ZXQgKGZvcgo+Pj4+Pj4+IHNldHRp bmcgdGhlIHJvdGF0aW9uIHByb3AgdG8gMMKwIGFnYWluIHdoZW4gZmJkZXYgc3RhcnRzIHVwKS4K Pj4+Pj4+Pgo+Pj4+Pj4+IE9yIGRvIEkgbWlzcyBzb21ldGhpbmcgc3RpbGwgaGVyZT8KPj4+Pj4+ IFllcywgaWYgdGhlIGhhcmR3YXJlIG1vZGUgaXMgaW5jb21wYXRpYmxlIHdpdGggaXRzIGNhbGN1 bGF0ZWQgc3cgbW9kZSwKPj4+Pj4+IGFuZCB3ZSBzZXQgYSBkaWZmZXJlbnQgbW9kZSBmcm9tIGZi ZGV2IHlvdSBnZXQgMiBtb2Rlc2V0cyBpbnN0ZWFkIG9mIDEuCj4+Pj4+IEhvdyBkb2VzIHRoYXQg aGFwcGVuPyBGb3Igc2V0dGluZyB0aGUgcm90YXRpb24gcHJvcGVydHkgd2Ugc2hvdWxkIGp1c3QK Pj4+Pj4gZHVwbGljYXRlIHRoZSBjdXJyZW50IGNydGMgc3RhdGUuIFNpbmNlIHRoZXJlJ3Mgbm8g bW9kZSBjaGFuZ2luZyAodGhleQo+Pj4+PiBzaG91bGQgbWF0Y2ggcGVyZmVjdGx5IG5vIG1hdHRl ciBob3cgYm90Y2hlZCB0aGUgcmVjb25zdHJ1Y3Rpb24gaXMpIHRoZXJlCj4+Pj4+IHNob3VsZG4n dCBiZSBhbnkgbmVlZCB0byByZWNvbXB1dGUgdGhlIGNvbmZpZyBjb21wbGV0ZWx5IGFuZCBkaXNj b3ZlciB0aGF0Cj4+Pj4+IHRoZXJlJ3MgYSBtaXNtYXRjaC4gV2hpY2ggbWVhbnMgd2UnbGwganVz dCBkbyB0aGUgcGxhbmUgdXBkYXRlICh3aGljaAo+Pj4+PiBtaWdodCBkbyBhIGZldyBzaWxseSBt bWlvcyBidXQgc2hvdWxkbid0IGJsb2NrKSBhbmQgdGhhdCdzIGl0Lgo+Pj4+Pgo+Pj4+PiBBdCBs ZWFzdCB0aGF0J3Mgd2hhdCBJJ2QgZXhwZWN0IC0gd2hlcmUgZG9lcyB0aGlzIGZhbGwgYXBhcnQ/ Cj4+Pj4gSWYgY3J0YyBpcyBhY3RpdmUgYW5kIHByaW1hcnkgZmIgdmlzaWJsZSwgYW5kIGNvbnZl cnRlZCB0byBhdG9taWM6Cj4+Pj4KPj4+PiByZXN0b3JlX2ZiZGV2X21vZGUoKSAtPgo+Pj4+IAlk cm1fbW9kZV9wbGFuZV9zZXRfb2JqX3Byb3AoKSAtPgo+Pj4+IAkJZHJtX2F0b21pY19oZWxwZXJf cGxhbmVfc2V0X3Byb3BlcnR5KCkgLT4KPj4+PiAJCQlkcm1fYXRvbWljX2dldF9wbGFuZV9zdGF0 ZSgpIC0+Cj4+Pj4gCQkJCWRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoKQo+Pj4+IGNydGMgc3Rh dGUgaXMgcGFydCBvZiB0aGUgc3RhdGUsIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcgcGVyZm9y bXMKPj4+PiB0aGUgaW5pdGlhbCBjaGVjayBpZiBtb2Rlc2V0J3MgbmVlZGVkLiBMZXRzIGFzc3Vt ZSB5ZXM6Cj4+PiAiTGV0J3MgYXNzdW1lIHllcyIgLT4gdGhhdCdzIGltbyBhIGJ1Zywgc28gd2hl cmUgZG9lcyB0aGlzIGhhcHBlbiBzbyB0aGF0Cj4+PiB3ZSBjYW4gZml4IGl0PyBEaXNhYmxpbmcg YSBwbGFuZSBvciBzZXR0aW5nIGEgcGxhbmUgcHJvcCByZWFsbHkgc2hvdWxkbid0Cj4+PiByZXN1 bHQgaW4gYSBtb2Rlc2V0LiBXZWxsIGF0IGxlYXN0IGlmIGl0J3Mgbm90IGEgcGxhbmUgcHJvcCB0 aGF0IGRvZXMKPj4+IHJlcXVpcmVkIGEgbW9kZXNldCAoYnV0IEkgZG9uJ3QgdGhpbmsgd2UgaGF2 ZSBhbnkgb2YgdGhvc2UpLgo+PiBGcm9tIGEgZHJpdmVyIHBvaW50IG9mIHZpZXcgeW91IHdvdWxk bid0IGJlIGFibGUgdG8gZGlzdGluZ3Vpc2ggaXQgZnJvbSBhIHJlYWwgbW9kZXNldCB0byB0aGUg c2FtZSBtb2RlLiA6KAo+PiBJbiBib3RoIGNhc2VzIHlvdSBoYXZlIGFsbCBwbGFuZXMgYWRkZWQg YW5kIHRoZSBjcnRjLgo+Pgo+PiBUaGlua2luZyBhYm91dCBpdCBtb3JlIHRoZXJlIHdpbGwgYmUg MSB0aGluZyBzYXZpbmcgdXMgZnJvbSBhIG1vZGVzZXQsCj4+IGRybV9hdG9taWNfY3J0Y19jaGVj ayB3aWxsIHJlamVjdCBlbmFibGUgd2l0aG91dCBtb2RlX2Jsb2IgZm9yIGF0b21pYyBkcml2ZXJz LAo+PiBzbyB1bnRpbCB0aGUgZmlyc3QgbW9kZSBpcyBzZXQgYWxsIGF0b21pYyB1cGRhdGVzIHRv IHRoZSBjcnRjIHdpbGwgYmUgcmVqZWN0ZWQuCj4+Cj4+IFVuZm9ydHVuYXRlbHkgeW91IHdpbGwg c3RpbGwgZ2V0IFdBUk5fT04ncyBmb3IgdGhpcywgc28gYSBiZXR0ZXIgc29sdXRpb24ncyBuZWVk ZWQuCj4gT2sgSSB0aGluayBJIHN0YXJ0IHRvIGdyYXNwIHdoYXQncyB3cm9uZywgdGhlIHRyb3Vi bGUgaXMgdGhhdCB3ZSBkb24ndAo+IGhhdmUgdGhlIG1vZGUgc3R1ZmYgZnVsbHkgc2V0IHVwIHll dCAod2hpY2ggaXMgcGFydCBvZiBmYXN0Ym9vdCksIHdoaWNoCj4gbWVhbnMgd2UnbGwgZ2V0IGEg Ym9ndXMgY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkIGRlc3BpdGUgdGhhdCBub3RoaW5nCj4gcmVh bGx5IGNoYW5nZWQuIFVnbHkuCk5vLCBtb2RlX2NoYW5nZWQgd291bGQgYmUgaGFybWxlc3MsIHdp dGggcHJvcGVyIHNraXAgbW9kZXNldCBzdXBwb3J0IGl0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBu b29wLgo+IENvdWxkIHdlIGluc2VydCBhIGR1bW15IG1vZGVfYmxvYiB0byBhdm9pZCB0aGUgV0FS TnMgYW5kIHRoZSBib2d1cwo+IG1vZGVfY2hhbmdlZCBpbnN0ZWFkPyBUaGUgcHJvYmxlbSByZWFs bHkgaXMgdGhhdCBkb2luZyB0aGlzIGhlcmUgaXMganVzdAo+IHBsdWdnaW5nIHRoZSBvbmUgc291 cmNlIG9mIHRyb3VibGVzIHlvdSdyZSBzZWVpbmcgcmlnaHQgbm93IChmYmNvbiksIHRoZQo+IGlu aXRpYWwgc2V0XyogY2FsbHMgY291bGQgY29tZSBmcm9tIGFueXRoaW5nIHJlYWxseSBpbiBhbnkg b3JkZXIuIFNvIHdlCj4gcmVhbGx5IGJldHRlciBiZSBhYmxlIHRvIGNvcGUuCkRvZXNuJ3QgdGhp cyBtZWFuIHdlIHNob3VsZCBzZXQgYSByZWFsIG1vZGUgcmVhZCBvdXQgZnJvbSBodyBzdGF0ZSBp bnN0ZWFkPwoKPiBFdmVuIGNvbnZlcnRpbmcgZmJkZXYgdG8gaGF2ZSBhbiBvcHRpb25hbCBhdG9t aWMgcGF0Y2ggZm9yIERSSVZFUl9BVE9NSUMKPiAodW5zYWZlIGk5MTUgb3B0aW9ucyBhcmVuJ3Qg YSBjb25jZXJuIGhlcmUgZm9yIG1lKSB3b24ndCBmaXggdGhpcy4KCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50 ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==