From mboxrd@z Thu Jan 1 00:00:00 1970 From: Martin Peres Subject: Re: [PATCH v2] drm/nouveau: add a LED driver for the NVIDIA logo Date: Tue, 23 Aug 2016 17:06:23 +0300 Message-ID: References: <1462319465-29090-1-git-send-email-martin.peres@free.fr> <1462319465-29090-1-git-send-email-martin.peres@free.fr> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: nouveau-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Nouveau" To: Karol Herbst Cc: nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: nouveau.vger.kernel.org T24gMjMvMDgvMTYgMTE6MzEsIEthcm9sIEhlcmJzdCB3cm90ZToKPiBtYXliZSBpdCBtYWtlcyBz ZW5zZSB0byBleHBvc2UgdGhlIFNMSSBMRUQsIHRvby4KPgo+IFJlZ2FyZGxlc3Mgb2YgbXkgY29t bWVudHMgdGhpcyBwYXRjaCBpcyByZXZpZXdlZC1ieSBtZS4KCllvdSByZXZpZXdlZCB0aGUgd3Jv bmcgcGF0Y2gsIEkgc2hvdWxkIGhhdmUgbmFtZWQgdGhlIHJlLXNlbmQgdjMuCgpJIGFjY2lkZW50 YWxseSBzZW50IHRoZSB2MSBwYXRjaCBhcyBhIHYyIDpzCgo+Cj4gMjAxNi0wOC0yMyAxOjM5IEdN VCswMjowMCBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5wZXJlc0BmcmVlLmZyPjoKPj4gV2UgcmVjZWl2 ZWQgYSBkb25hdGlvbiBvZiBhIFRpdGFuIHdoaWNoIGhhcyB0aGlzIHVzZWxlc3MgZmVhdHVyZQo+ PiBhbGxvd2luZyB1c2VycyB0byBjb250cm9sIHRoZSBicmlnaHRuZXNzIG9mIHRoZSBMRUQgYmVo aW5kIHRoZQo+PiBsb2dvIG9mIE5WSURJQS4gSW4gdGhlIHRydWUgc3Bpcml0IG9mIG9wZW4gc291 cmNlLCBsZXQncyBleHBvc2UKPj4gdGhhdCB0byB0aGUgdXNlcnMgb2YgdmVyeSBleHBlbnNpdmUg Y2FyZHMhCj4+Cj4+IFRoaXMgcGF0Y2ggaG9va3MgdXAgdGhpcyBMRUQvUFdNIHRvIHRoZSBMRUQg c3Vic3lzdGVtIHdoaWNoIGFsbG93cwo+PiBibGlua2luZyBpdCBpbiBzeW5jIHdpdGggY3B1L2Rp c2svbmV0d29yay93aGF0ZXZlciBhY3Rpdml0eSAoaGVhcnRiZWF0Cj4+IGlzIHF1aXRlIG5pY2Uh KS4gVXNlcnMgbWF5IGFsc28gaW1wbGVtZW50IHNvbWUgYnJlYXRoaW5nIGVmZmVjdCBvcgo+PiBt b3JzZSBjb2RlIHN1cHBvcnQgaW4gdGhlIHVzZXJzcGFjZSBpZiB0aGV5IGZlZWwgbGlrZSBpdC4K Pj4KPj4gU2lnbmVkLW9mZi1ieTogTWFydGluIFBlcmVzIDxtYXJ0aW4ucGVyZXNAZnJlZS5mcj4K Pj4gLS0tCj4+ICAgZHJtL25vdXZlYXUvS2J1aWxkICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgMSArCj4+ICAgZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi9iaW9zL2dwaW8uaCB8 ICAgMSArCj4+ICAgZHJtL25vdXZlYXUvbm91dmVhdV9kcm0uYyAgICAgICAgICAgICAgICAgICB8 ICAgNyArKwo+PiAgIGRybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmggICAgICAgICAgICAgICAgICAg fCAgIDMgKwo+PiAgIGRybS9ub3V2ZWF1L25vdXZlYXVfbGVkLmMgICAgICAgICAgICAgICAgICAg fCAxMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+PiAgIGRybS9ub3V2ZWF1L25vdXZl YXVfbGVkLmggICAgICAgICAgICAgICAgICAgfCAgNDggKysrKysrKysrKwo+PiAgIDYgZmlsZXMg Y2hhbmdlZCwgMTkxIGluc2VydGlvbnMoKykKPj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJtL25v dXZlYXUvbm91dmVhdV9sZWQuYwo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcm0vbm91dmVhdS9u b3V2ZWF1X2xlZC5oCj4+Cj4+IGRpZmYgLS1naXQgYS9kcm0vbm91dmVhdS9LYnVpbGQgYi9kcm0v bm91dmVhdS9LYnVpbGQKPj4gaW5kZXggMjUyN2JmNC4uMzEyYmNhOSAxMDA2NDQKPj4gLS0tIGEv ZHJtL25vdXZlYXUvS2J1aWxkCj4+ICsrKyBiL2RybS9ub3V2ZWF1L0tidWlsZAo+PiBAQCAtMjIs NiArMjIsNyBAQCBub3V2ZWF1LSQoQ09ORklHX0RFQlVHX0ZTKSArPSBub3V2ZWF1X2RlYnVnZnMu bwo+PiAgIG5vdXZlYXUteSArPSBub3V2ZWF1X2RybS5vCj4+ICAgbm91dmVhdS15ICs9IG5vdXZl YXVfaHdtb24ubwo+PiAgIG5vdXZlYXUtJChDT05GSUdfQ09NUEFUKSArPSBub3V2ZWF1X2lvYzMy Lm8KPj4gK25vdXZlYXUteSArPSBub3V2ZWF1X2xlZC5vCj4+ICAgbm91dmVhdS15ICs9IG5vdXZl YXVfbnZpZi5vCj4+ICAgbm91dmVhdS0kKENPTkZJR19OT1VWRUFVX1BMQVRGT1JNX0RSSVZFUikg Kz0gbm91dmVhdV9wbGF0Zm9ybS5vCj4+ICAgbm91dmVhdS15ICs9IG5vdXZlYXVfdXNpZi5vICMg dXNlcnNwYWNlIDwtPiBudmlmCj4+IGRpZmYgLS1naXQgYS9kcm0vbm91dmVhdS9pbmNsdWRlL252 a20vc3ViZGV2L2Jpb3MvZ3Bpby5oIGIvZHJtL25vdXZlYXUvaW5jbHVkZS9udmttL3N1YmRldi9i aW9zL2dwaW8uaAo+PiBpbmRleCBhNDdkNDZkLi5iN2E1NGU2IDEwMDY0NAo+PiAtLS0gYS9kcm0v bm91dmVhdS9pbmNsdWRlL252a20vc3ViZGV2L2Jpb3MvZ3Bpby5oCj4+ICsrKyBiL2RybS9ub3V2 ZWF1L2luY2x1ZGUvbnZrbS9zdWJkZXYvYmlvcy9ncGlvLmgKPj4gQEAgLTYsNiArNiw3IEBAIGVu dW0gZGNiX2dwaW9fZnVuY19uYW1lIHsKPj4gICAgICAgICAgRENCX0dQSU9fVFZEQUMxID0gMHgy ZCwKPj4gICAgICAgICAgRENCX0dQSU9fRkFOID0gMHgwOSwKPj4gICAgICAgICAgRENCX0dQSU9f RkFOX1NFTlNFID0gMHgzZCwKPj4gKyAgICAgICBEQ0JfR1BJT19MT0dPX0xFRF9QV00gPSAweDg0 LAo+PiAgICAgICAgICBEQ0JfR1BJT19VTlVTRUQgPSAweGZmLAo+PiAgICAgICAgICBEQ0JfR1BJ T19WSUQwID0gMHgwNCwKPj4gICAgICAgICAgRENCX0dQSU9fVklEMSA9IDB4MDUsCj4+IGRpZmYg LS1naXQgYS9kcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5jIGIvZHJtL25vdXZlYXUvbm91dmVhdV9k cm0uYwo+PiBpbmRleCBkMDY4NzdkLi5kYzk3NDAxIDEwMDY0NAo+PiAtLS0gYS9kcm0vbm91dmVh dS9ub3V2ZWF1X2RybS5jCj4+ICsrKyBiL2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmMKPj4gQEAg LTQ5LDYgKzQ5LDcgQEAKPj4gICAjaW5jbHVkZSAibm91dmVhdV90dG0uaCIKPj4gICAjaW5jbHVk ZSAibm91dmVhdV9nZW0uaCIKPj4gICAjaW5jbHVkZSAibm91dmVhdV92Z2EuaCIKPj4gKyNpbmNs dWRlICJub3V2ZWF1X2xlZC5oIgo+PiAgICNpbmNsdWRlICJub3V2ZWF1X2h3bW9uLmgiCj4+ICAg I2luY2x1ZGUgIm5vdXZlYXVfYWNwaS5oIgo+PiAgICNpbmNsdWRlICJub3V2ZWF1X2Jpb3MuaCIK Pj4gQEAgLTQ2OCw2ICs0NjksNyBAQCBub3V2ZWF1X2RybV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsIHVuc2lnbmVkIGxvbmcgZmxhZ3MpCj4+ICAgICAgICAgIG5vdXZlYXVfaHdtb25faW5p dChkZXYpOwo+PiAgICAgICAgICBub3V2ZWF1X2FjY2VsX2luaXQoZHJtKTsKPj4gICAgICAgICAg bm91dmVhdV9mYmNvbl9pbml0KGRldik7Cj4+ICsgICAgICAgbm91dmVhdV9sZWRfaW5pdChkZXYp Owo+Pgo+PiAgICAgICAgICBpZiAobm91dmVhdV9ydW50aW1lX3BtICE9IDApIHsKPj4gICAgICAg ICAgICAgICAgICBwbV9ydW50aW1lX3VzZV9hdXRvc3VzcGVuZChkZXYtPmRldik7Cj4+IEBAIC00 OTksNiArNTAxLDcgQEAgbm91dmVhdV9kcm1fdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4+ICAgICAgICAgIHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9kcm0oZGV2KTsK Pj4KPj4gICAgICAgICAgcG1fcnVudGltZV9nZXRfc3luYyhkZXYtPmRldik7Cj4+ICsgICAgICAg bm91dmVhdV9sZWRfZmluaShkZXYpOwo+PiAgICAgICAgICBub3V2ZWF1X2ZiY29uX2ZpbmkoZGV2 KTsKPj4gICAgICAgICAgbm91dmVhdV9hY2NlbF9maW5pKGRybSk7Cj4+ICAgICAgICAgIG5vdXZl YXVfaHdtb25fZmluaShkZXYpOwo+PiBAQCAtNTUwLDYgKzU1Myw4IEBAIG5vdXZlYXVfZG9fc3Vz cGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBib29sIHJ1bnRpbWUpCj4+ICAgICAgICAgIHN0 cnVjdCBub3V2ZWF1X2NsaSAqY2xpOwo+PiAgICAgICAgICBpbnQgcmV0Owo+Pgo+PiArICAgICAg IG5vdXZlYXVfbGVkX3N1c3BlbmQoZGV2KTsKPj4gKwo+PiAgICAgICAgICBpZiAoZGV2LT5tb2Rl X2NvbmZpZy5udW1fY3J0Yykgewo+PiAgICAgICAgICAgICAgICAgIE5WX0lORk8oZHJtLCAic3Vz cGVuZGluZyBjb25zb2xlLi4uXG4iKTsKPj4gICAgICAgICAgICAgICAgICBub3V2ZWF1X2ZiY29u X3NldF9zdXNwZW5kKGRldiwgMSk7Cj4+IEBAIC02MzgsNiArNjQzLDggQEAgbm91dmVhdV9kb19y ZXN1bWUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgYm9vbCBydW50aW1lKQo+PiAgICAgICAgICAg ICAgICAgIG5vdXZlYXVfZmJjb25fc2V0X3N1c3BlbmQoZGV2LCAwKTsKPj4gICAgICAgICAgfQo+ Pgo+PiArICAgICAgIG5vdXZlYXVfbGVkX3Jlc3VtZShkZXYpOwo+PiArCj4+ICAgICAgICAgIHJl dHVybiAwOwo+PiAgIH0KPj4KPj4gZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1L25vdXZlYXVfZHJt LmggYi9kcm0vbm91dmVhdS9ub3V2ZWF1X2RybS5oCj4+IGluZGV4IDVjMzYzZWQuLmIxNDhkY2Ig MTAwNjQ0Cj4+IC0tLSBhL2RybS9ub3V2ZWF1L25vdXZlYXVfZHJtLmgKPj4gKysrIGIvZHJtL25v dXZlYXUvbm91dmVhdV9kcm0uaAo+PiBAQCAtMTY2LDYgKzE2Niw5IEBAIHN0cnVjdCBub3V2ZWF1 X2RybSB7Cj4+ICAgICAgICAgIHN0cnVjdCBub3V2ZWF1X2h3bW9uICpod21vbjsKPj4gICAgICAg ICAgc3RydWN0IG5vdXZlYXVfZGVidWdmcyAqZGVidWdmczsKPj4KPj4gKyAgICAgICAvKiBsZWQg bWFuYWdlbWVudCAqLwo+PiArICAgICAgIHN0cnVjdCBub3V2ZWF1X2xlZCAqbGVkOwo+PiArCj4+ ICAgICAgICAgIC8qIGRpc3BsYXkgcG93ZXIgcmVmZXJlbmNlICovCj4+ICAgICAgICAgIGJvb2wg aGF2ZV9kaXNwX3Bvd2VyX3JlZjsKPj4KPj4gZGlmZiAtLWdpdCBhL2RybS9ub3V2ZWF1L25vdXZl YXVfbGVkLmMgYi9kcm0vbm91dmVhdS9ub3V2ZWF1X2xlZC5jCj4+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4+IGluZGV4IDAwMDAwMDAuLjNmMjNmZjYKPj4gLS0tIC9kZXYvbnVsbAo+PiArKysgYi9k cm0vbm91dmVhdS9ub3V2ZWF1X2xlZC5jCj4+IEBAIC0wLDAgKzEsMTMxIEBACj4+ICsvKgo+PiAr ICogQ29weXJpZ2h0IChDKSAyMDE2IE1hcnRpbiBQZXJlcwo+PiArICoKPj4gKyAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZwo+PiArICogYSBjb3B5IG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1l bnRhdGlvbiBmaWxlcyAodGhlCj4+ICsgKiAiU29mdHdhcmUiKSwgdG8gZGVhbCBpbiB0aGUgU29m dHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nCj4+ICsgKiB3aXRob3V0IGxpbWl0 YXRpb24gdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsCj4+ ICsgKiBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8KPj4gKyAqIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJl IGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0bwo+PiArICogdGhlIGZvbGxvd2luZyBj b25kaXRpb25zOgo+PiArICoKPj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0 aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlCj4+ICsgKiBuZXh0IHBhcmFncmFw aCkgc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbAo+PiArICog cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgo+PiArICoKPj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQ Uk9WSURFRCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELAo+PiArICogRVhQ UkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5U SUVTIE9GCj4+ICsgKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ VVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuCj4+ICsgKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg Q09QWVJJR0hUIE9XTkVSKFMpIEFORC9PUiBJVFMgU1VQUExJRVJTIEJFCj4+ICsgKiBMSUFCTEUg Rk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4g QUNUSU9OCj4+ICsgKiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJP TSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04KPj4gKyAqIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRI RSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLgo+PiArICoKPj4gKyAqLwo+ PiArCj4+ICsvKgo+PiArICogQXV0aG9yczoKPj4gKyAqICBNYXJ0aW4gUGVyZXMgPG1hcnRpbi5w ZXJlc0BmcmVlLmZyPgo+PiArICovCj4+ICsKPj4gKyNpbmNsdWRlIDxsaW51eC9sZWRzLmg+Cj4+ ICsKPj4gKyNpbmNsdWRlICJub3V2ZWF1X2RybS5oIgo+PiArI2luY2x1ZGUgIm5vdXZlYXVfbGVk LmgiCj4+ICsjaW5jbHVkZSA8bnZrbS9zdWJkZXYvZ3Bpby5oPgo+PiArCj4+ICtzdGF0aWMgZW51 bSBsZWRfYnJpZ2h0bmVzcwo+PiArbm91dmVhdV9sZWRfZ2V0X2JyaWdodG5lc3Moc3RydWN0IGxl ZF9jbGFzc2RldiAqbGVkKQo+PiArewo+PiArICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkcm1f ZGV2ID0gY29udGFpbmVyX29mKGxlZCwgc3RydWN0IG5vdXZlYXVfbGVkLCBsZWQpLT5kZXY7Cj4+ ICsgICAgICAgc3RydWN0IG5vdXZlYXVfZHJtICpkcm0gPSBub3V2ZWF1X2RybShkcm1fZGV2KTsK Pj4gKyAgICAgICBzdHJ1Y3QgbnZpZl9vYmplY3QgKmRldmljZSA9ICZkcm0tPmRldmljZS5vYmpl Y3Q7Cj4+ICsgICAgICAgdTMyIGRpdiwgZHV0eTsKPj4gKwo+PiArICAgICAgIGRpdiA9ICBudmlm X3JkMzIoZGV2aWNlLCAweDYxYzg4MCkgJiAweDAwZmZmZmZmOwo+PiArICAgICAgIGR1dHkgPSBu dmlmX3JkMzIoZGV2aWNlLCAweDYxYzg4NCkgJiAweDAwZmZmZmZmOwo+PiArCj4+ICsgICAgICAg cmV0dXJuIGR1dHkgKiBMRURfRlVMTCAvIGRpdjsKPj4gK30KPj4gKwo+PiArc3RhdGljIHZvaWQK Pj4gK25vdXZlYXVfbGVkX3NldF9icmlnaHRuZXNzKHN0cnVjdCBsZWRfY2xhc3NkZXYgKmxlZCwg ZW51bSBsZWRfYnJpZ2h0bmVzcyB2YWx1ZSkKPj4gK3sKPj4gKyAgICAgICBzdHJ1Y3QgZHJtX2Rl dmljZSAqZHJtX2RldiA9IGNvbnRhaW5lcl9vZihsZWQsIHN0cnVjdCBub3V2ZWF1X2xlZCwgbGVk KS0+ZGV2Owo+PiArICAgICAgIHN0cnVjdCBub3V2ZWF1X2RybSAqZHJtID0gbm91dmVhdV9kcm0o ZHJtX2Rldik7Cj4+ICsgICAgICAgc3RydWN0IG52aWZfb2JqZWN0ICpkZXZpY2UgPSAmZHJtLT5k ZXZpY2Uub2JqZWN0Owo+PiArCj4+ICsgICAgICAgdTMyIGlucHV0X2NsayA9IDI3ZTY7IC8qIFBE SVNQTEFZLlNPUlsxXS5QV00gaXMgY29ubmVjdGVkIHRvIHRoZSBjcnlzdGFsICovCj4+ICsgICAg ICAgdTMyIGZyZXEgPSAxMDA7IC8qIHRoaXMgaXMgd2hhdCBudmlkaWEgdXNlcyBhbmQgaXQgc2hv dWxkIGJlIGdvb2QtZW5vdWdoICovCj4+ICsgICAgICAgdTMyIGRpdiwgZHV0eTsKPj4gKwo+PiAr ICAgICAgIGRpdiA9IGlucHV0X2NsayAvIGZyZXE7Cj4+ICsgICAgICAgZHV0eSA9IHZhbHVlICog ZGl2IC8gTEVEX0ZVTEw7Cj4+ICsKPj4gKyAgICAgICAvKiBmb3Igbm93LCB0aGlzIGlzIHNhZmUg dG8gZGlyZWN0bHkgcG9rZSB0aG9zZSByZWdpc3RlcnMgYmVjYXVzZToKPj4gKyAgICAgICAgKiAg LSBBOiBudmlkaWEgbmV2ZXIgcHV0cyB0aGUgbG9nbyBsZWQgdG8gYW55IG90aGVyIFBXTSBjb250 cm9sZXIKPj4gKyAgICAgICAgKiAgICAgICB0aGFuIFBESVNQTEFZLlNPUlsxXS5QV00uCj4+ICsg ICAgICAgICogIC0gQjogbm91dmVhdSBkb2VzIG5vdCB0b3VjaCB0aGVzZSByZWdpc3RlcnMgYW55 d2hlcmUgZWxzZQo+PiArICAgICAgICAqLwo+PiArICAgICAgIG52aWZfd3IzMihkZXZpY2UsIDB4 NjFjODgwLCBkaXYpOwo+PiArICAgICAgIG52aWZfd3IzMihkZXZpY2UsIDB4NjFjODg0LCAweGMw MDAwMDAwIHwgZHV0eSk7Cj4gSSBmZWVsIGxpa2UgdGhlcmUgc2hvdWxkIGJlIGEgY29tbWVudCBl eHBsYWluaW5nIHRoZSAweDQwMDAwMDAwCj4gKGNvbm5lY3RlZCB0byBjcnlzdGFsKS4gT3IgbWF5 YmUgd2Ugc2hvdWxkIGJlIGluIGdlbmVyYWwgbW9yZSBzdHJpY3QKPiBhYm91dCB1c2luZyBjb25z dGFudHMsIEkgZmVlbCBsaWtlIHRob3NlIGhhcmRjb2RlZCBtYWdpYyBudW1iZXJzIGFyZQo+IGhh cmQgdG8gdW5kZXJzdGFuZCBieSB1c2Vycy4KCldlbGwsIHRydWUsIGJ1dCBhcyBsb25nIGFzIGl0 IGlzIHdlbGwgZG9jdW1lbnRlZCBpbiBybm5kYiwgSSB0aGluayBpdCBpcyAKdGhlIHByb3BlciB3 YXkgdG8gZ28uIE90aGVyd2lzZSwgd2Ugd291bGQgbmVlZCB0byBtYWludGFpbiBtYWNyb3Mgd2hp Y2ggCndlIHRyaWVkIGFuZCBmYWlsZWQgYXQgOnMKCkluIHRoaXMgcGFydGljdWxhciBjYXNlLCB0 aGUgY29tbWVudHMgYXQgdGhlIHRvcCBvZiB0aGUgZnVuY3Rpb24gc2hvdWxkIApnaXZlIGFsbCB0 aGUgaW5mb3JtYXRpb24uCgpXZSBuZWVkIHRvIG1ha2UgdGhlIHVzZSBvZiBsb29rdXAga25vd246 CgokIGxvb2t1cCAtYSBFNCAweDYxYzg4NCAweGMwMDAwMDAwClBESVNQTEFZLlNPUlsweDFdLlBX TV9DVEwgPT4geyBEVVRZID0gMCB8IENMT0NLX1NFTEVDVCA9IFVOSzEgfCBUUklHR0VSIH0KCk9L LCBJIGZvcmdvdCB0byB1cGRhdGUgcm5uREIgOnMKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KTm91dmVhdSBtYWlsaW5nIGxpc3QKTm91dmVhdUBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9ub3V2ZWF1Cg==