Re: AVX-512 for LAME: code to try, if you have the hardware
Tobias Damisch via Lame-dev <[email protected]> Sun, 26 Jul 2026 12:44:36 +0200
| Newsgroups | gmane.comp.audio.mp3.lame |
|---|---|
| Message-ID | <[email protected]> |
SSBkaWQgYXMgaW5zdHJ1Y3RlZCwgbm93IEFWWC01MTIgaXMgaW4gdmVjdG9yIHJvdXRpbmVzLAp0 aGUgMWMgdGVzdCBzaG93ZWQgSURFTlRJQ0FMLgoKQ1BVOiBBTUQgUnl6ZW4gOSA3OTUwWDNEICgz MikgQCA1Ljc1OUdIegogPiBnY2MgLS12ZXJzaW9uCmdjYyAoVWJ1bnR1IDEzLjMuMC02dWJ1bnR1 Mn4yNC4wNC4xKSAxMy4zLjAKT1M6IExpbnV4IE1pbnQgMjIuMyB4ODZfNjQKCiA+IC4vZnJvbnRl bmQvbGFtZSAtLXZlcmJvc2UgZXhhbXBsZS53YXYKTEFNRSA0LjEgKGFscGhhIDAsIEp1bCAyNiAy MDI2IDExOjQzOjA4KSA2NGJpdHMgCihodHRwczovL2xhbWUuc291cmNlZm9yZ2UuaW8pCndhcm5p bmc6IGFscGhhIHZlcnNpb25zIHNob3VsZCBiZSB1c2VkIGZvciB0ZXN0aW5nIG9ubHkKQ1BVIGZl YXR1cmVzOiBNTVgsIFNTRSwgU1NFMiwgQVZYMiwgQVZYLTUxMgp2ZWN0b3Igcm91dGluZXM6IEFW WC01MTIKCgpTdGFnZSAxZCAoSSBkaWQgcnVuIGEgd2FybXVwIHJvdW5kIGJlZm9yZSB0aW1lIG1l YXN1cmVtZW50cyk6Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCm5vYXNtIGF2eDUxMiAtVjI6CgpyZWFsICAgIDBtNiw2NTJzCnVz ZXIgICAgMG02LDU4MnMKc3lzICAgICAwbTAsMDcycwoKcmVhbCAgICAwbTYsNTM5cwp1c2VyICAg IDBtNiw0NjhzCnN5cyAgICAgMG0wLDA3M3MKCnJlYWwgICAgMG02LDUyMHMKdXNlciAgICAwbTYs NDM4cwpzeXMgICAgIDBtMCwwODVzCgoKSnVzdCAtVjI6CgpyZWFsICAgIDBtNiw1NjBzCnVzZXIg ICAgMG02LDQ5NnMKc3lzICAgICAwbTAsMDY1cwoKcmVhbCAgICAwbTYsNTgycwp1c2VyICAgIDBt Niw1MjRzCnN5cyAgICAgMG0wLDA1OHMKCnJlYWwgICAgMG02LDU2OHMKdXNlciAgICAwbTYsNDc2 cwpzeXMgICAgIDBtMCwwOTJzCgpub2FzbSBhdng1MTIgLWIgMzIwOgoKcmVhbCAgICAwbTEwLDAw N3MKdXNlciAgICAwbTksOTI1cwpzeXMgICAgIDBtMCwwODNzCgpyZWFsICAgIDBtMTAsMDIycwp1 c2VyICAgIDBtOSw5MjdzCnN5cyAgICAgMG0wLDA5NXMKCnJlYWwgICAgMG0xMCwwMTlzCnVzZXIg ICAgMG05LDkxN3MKc3lzICAgICAwbTAsMTAzcwoKCkp1c3QgLWIgMzIwOgoKcmVhbCAgICAwbTEw LDEyOXMKdXNlciAgICAwbTEwLDA1MnMKc3lzICAgICAwbTAsMDc5cwoKcmVhbCAgICAwbTEwLDEw NnMKdXNlciAgICAwbTEwLDAwOXMKc3lzICAgICAwbTAsMDk4cwoKcmVhbCAgICAwbTEwLDI3OHMK dXNlciAgICAwbTEwLDIwNHMKc3lzICAgICAwbTAsMDc2cwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCgpTdGFnZSAyOgotLS0tLS0tLS0tLS0KY29uZmlndXJlIGFuZCBtYWtlIGNvbXBs ZXRlZCwgYnV0IG1ha2UgY2hlY2sgcHJvZHVjZWQ6CgpQQVNTOiB0ZXN0X3Nhbml0eQpQQVNTOiB0 ZXN0X2dldF9hdWRpb19haWZmClBBU1M6IHRlc3RfcGFyc2VfcGF0aGxlbgpQQVNTOiB0ZXN0X21l cmdlX2FyZ3YKUEFTUzogdGVzdF9pZDN0YWcKUEFTUzogdGVzdF9wYXJzZV9pZDMKUEFTUzogdGVz dF9lbmNvZGVfbm9uZmluaXRlClBBU1M6IHRlc3RfZW5jb2RlX21vbm9faW50ZXJsZWF2ZWQKUEFT UzogdGVzdF90b3RhbGZyYW1lcwpQQVNTOiB0ZXN0X3NldF9nZXQKUEFTUzogdGVzdF9jaG9vc2Vf dGFibGVfdmVjdG9yClBBU1M6IHRlc3RfcXVhbnRpemVfbGluZXNfdmVjdG9yCkZBSUw6IHRlc3Rf Y2FsY19zZmJfbm9pc2VfdmVjdG9yCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KVGVzdHN1aXRlIHN1bW1h cnkgZm9yIGxhbWUgNC4xCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIyBUT1RBTDogMTMKIyBQQVNTOiAg MTIKIyBTS0lQOiAgMAojIFhGQUlMOiAwCiMgRkFJTDogIDEKIyBYUEFTUzogMAojIEVSUk9SOiAw Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KU2VlIHRlc3QvdW5pdC90ZXN0LXN1aXRlLmxvZwpQbGVhc2Ug cmVwb3J0IHRvIGxhbWUtZGV2QGxpc3RzLnNvdXJjZWZvcmdlLm5ldAo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CgpJIGFzc3VtZSB0aGUgcGVyZm9ybWFuY2UgY29tcGFyaXNvbnMgZm9yIHN0YWdlIDIgYXJl IG9ic29sZXRlIGlmCiJtYWtlIGNoZWNrIiBzaG93cyBmYWlscy4uLj8KCgpDaGVlcnMsCiAgICAg ICAgIFRvYmlhcwoKCgoKQW0gMjYuMDcuMjYgdW0gMDA6MDIgc2NocmllYiBBbGV4YW5kZXIgTGVp ZGluZ2VyOgo+IEFtIDIwMjYtMDctMjUgMjI6NTcsIHNjaHJpZWIgVG9iaWFzIERhbWlzY2ggdmlh IExhbWUtZGV2Ogo+PiBIZXksCj4+Cj4+IEkgaGFwcGVuIHRvIGJlIHRoZSBsdWNreSBvd25lciBv ZiBhIFplbiA0IG1hY2hpbmUuCj4+Cj4+IENQVTogQU1EIFJ5emVuIDkgNzk1MFgzRCAoMzIpIEAg NS43R0h6Cj4+IE9TOiBMaW51eCBNaW50IHRyaXhpZS9zaWQgKHplbmEpIHg4Nl82NAo+Pgo+PiBE aWQgU3RhZ2UgMS4gQWZ0ZXIgaW5zdGFsbGluZyBsaWJjbW9ja2EtZGV2LCBsaWJtcGcxMjMtZGV2 IGl0IGRpZCAKPj4gYWN0dWFsbHkKPj4gY29uZmlndXJlIGFuZCBjb21waWxlLCBpbmNsdWRpbmcg dGhlIGxpbmVzIHlvdSB3cm90ZSB0byBsb29rIGZvciwKPj4gYW5kIG1ha2UgY2hlY2sgcHJvZHVj ZWQ6Cj4+Cj4+IFBBU1M6IHRlc3Rfc2FuaXR5Cj4+IFBBU1M6IHRlc3RfZ2V0X2F1ZGlvX2FpZmYK Pj4gUEFTUzogdGVzdF9wYXJzZV9wYXRobGVuCj4+IFBBU1M6IHRlc3RfbWVyZ2VfYXJndgo+PiBQ QVNTOiB0ZXN0X2lkM3RhZwo+PiBQQVNTOiB0ZXN0X3BhcnNlX2lkMwo+PiBQQVNTOiB0ZXN0X2Vu Y29kZV9ub25maW5pdGUKPj4gUEFTUzogdGVzdF9lbmNvZGVfbW9ub19pbnRlcmxlYXZlZAo+PiBQ QVNTOiB0ZXN0X3RvdGFsZnJhbWVzCj4+IFBBU1M6IHRlc3Rfc2V0X2dldAo+PiBQQVNTOiB0ZXN0 X2Nob29zZV90YWJsZV92ZWN0b3IKPj4gUEFTUzogdGVzdF9xdWFudGl6ZV9saW5lc192ZWN0b3IK Pj4gUEFTUzogdGVzdF9jYWxjX3NmYl9ub2lzZV92ZWN0b3IKPj4gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQo+PiBUZXN0c3VpdGUgc3VtbWFyeSBmb3IgbGFtZSA0LjEKPj4gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQo+PiAjIFRPVEFMOiAxMwo+PiAjIFBBU1M6wqAgMTMKPj4gIyBTS0lQOsKgIDAKPj4gIyBYRkFJ TDogMAo+PiAjIEZBSUw6wqAgMAo+PiAjIFhQQVNTOiAwCj4+ICMgRVJST1I6IDAKPj4gPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQo+IAo+IFRoaXMgaXMgdmVyeSB1c2VmdWwgb3V0cHV0ISBBbGwgd29ya3Mg YXMgZXhwZWN0ZWQuIFRoZSBvbmx5IG1pc3NpbmcgaW5mbyAKPiBhcmUgdGhlIHBlcmZvcm1hbmNl IGZpZ3VyZXMuCj4gCj4+IEZvciAxYiBJIGhhZCB0byBhY3R1YWxseSBzdXBwbHkgYSB3YXYgZmls ZSB0byBwcm9kdWNlIG1lYW5pZ2Z1bCBvdXRwdXQuCj4+IFRoZW4gaXQgZGlkIHNob3c6Cj4+IENQ VSBmZWF0dXJlczogTU1YLCBTU0UsIFNTRTIsIEFWWDIsIEFWWC01MTIKPj4gQnV0IGRpZCBOT1Qg c2hvdyBBVlgtNTEyIHVuZGVyICJ2ZWN0b3Igcm91dGluZXMiOgo+PiB2ZWN0b3Igcm91dGluZXM6 IEFWWDIKPj4KPj4gVGhpcyBkaXNjb3VyYWdlZCBtZSBmcm9tIHByb2NlZWRpbmcgZnVydGhlci4K PiAKPiBQbGVhc2UgYWRkCj4gIMKgI2luY2x1ZGUgInZlY3Rvci9sYW1lX2ludHJpbi5oIgo+IGlu IHV0aWwuYyBhbmQgcmVjb21waWxlLgo+IAo+IFRoZW4gdGhlIHBlcmYgdGVzdCAoaXQgc2hvdWxk IHNob3cgdGhlIEFWWC01MTIgaW4gdGhlIHZlY3RvciByb3V0aW5lcyBub3cpLgo+IAo+PiBJIGhv cGUgdGhpcyB0ZXN0IGlzIHNvbWVob3cgaGVscGZ1bCBmb3IgeW91IGFueXdheXMhCj4gCj4gVmVy eSEKPiAKPiBUaGFua3MsCj4gQWxleGFuZGVyLgo+IAo+PiBDaGVlcnMsCj4+IMKgwqDCoMKgwqDC oMKgwqAgVG9iaWFzCj4+Cj4+Cj4+Cj4+IEFtIDI1LjA3LjI2IHVtIDIxOjEzIHNjaHJpZWIgQWxl eGFuZGVyIExlaWRpbmdlciB2aWEgTGFtZS1kZXY6Cj4+PiBIaSwKPj4+Cj4+PiBUaGVyZSBpcyBk ZW1hbmQgZm9yIEFWWC01MTIgb3B0aW1pemF0aW9ucy4gVGhlIEFWWDIgd29yayBpbiA0LjEgCj4+ PiBhbnN3ZXJlZCBoYWxmIG9mIHRoYXQ7IHRoaXMgaXMgYW4gYXR0ZW1wdCBhdCB0aGUgb3RoZXIg aGFsZiwgYW5kIGl0IAo+Pj4gbmVlZHMgcGVvcGxlIHdpdGggdGhlIHJpZ2h0IGhhcmR3YXJlLCBi ZWNhdXNlIHdlIGRvIG5vdCBoYXZlIGFueS4KPj4+Cj4+PiBUaGVyZSBpcyBhIHRlc3Qga2l0IGF0 Cj4+PiDCoMKgwqDCoCBodHRwczovL3dpa2kuTGVpZGluZ2VyLm5ldC9sYW1lLWF2eDUxMi10ZXN0 a2l0LnRhci5neiAofjg3MGtiKQo+Pj4gSXQgcGF0Y2hlcyB0cnVuayByNjY2MiBhbmQgYWRkcyBh biBBVlgtNTEyIHRpZXIgdG8gdGhlIHZlY3RvciBsYWRkZXIgCj4+PiB0aGF0IGFscmVhZHkgcGlj a3MgYmV0d2VlbiBzY2FsYXIsIFNTRTIgYW5kIEFWWDIgYXQgcnVuIHRpbWUuIFR3byAKPj4+IGtl cm5lbHMgaW4gdGhlIGZpcnN0IHN0YWdlIC0gdGhlIEh1ZmZtYW4gdGFibGUgc2VhcmNoIGFuZCB0 aGUgCj4+PiB4cl4oMy80KSBxdWFudGl6YXRpb24gbG9vcCAtIGFuZCB0aGUgVkJSIGJhbmQtbm9p c2Ugcm91dGluZSBpbiBhIHNlY29uZC4KPj4+Cj4+PiBUaGUgcXVlc3Rpb24gaXMgb25seSB0aGlz Ogo+Pj4KPj4+IMKgwqDCoMKgIElzIGl0IGFjdHVhbGx5IGZhc3Rlciwgb24gcmVhbCBoYXJkd2Fy ZSwgZW5kIHRvIGVuZD8KPj4+Cj4+PiBXZSBjYW5ub3QgYW5zd2VyIGl0LiBObyBtYWNoaW5lIGhl cmUgaGFzIEFWWC01MTIsIGFuZCB3ZSBkaWQgbm90IHVzZSAKPj4+IGFuIGVtdWxhdG9yLCBzbyAt IGFuZCB0aGlzIGlzIHRoZSBwYXJ0IHdvcnRoIHJlYWRpbmcgdHdpY2UgLQo+Pj4KPj4+IMKgwqDC oMKgIFRISVMgQ09ERSBIQVMgTkVWRVIgQkVFTiBFWEVDVVRFRC4gTk9UIE9OQ0UsIEFOWVdIRVJF Lgo+Pj4KPj4+IEl0IGhhcyBiZWVuIGNvbXBpbGVkIGJ5IGZvdXIgY29tcGlsZXJzLCBkaXNhc3Nl bWJsZWQgYW5kIHJlYWQgCj4+PiBpbnN0cnVjdGlvbiBieSBpbnN0cnVjdGlvbiwgY2hlY2tlZCBh Z2FpbnN0IHRoZSBzY2FsYXIgY29kZSBpdCAKPj4+IHJlcGxhY2VzLCBhbmQgd2lyZWQgaW50byB0 aGUgdW5pdCB0ZXN0IHN1aXRlLiBCdXQgdGhlIGZpcnN0IHRpbWUgCj4+PiB0aGVzZSBpbnN0cnVj dGlvbnMgYWN0dWFsbHkgcnVuIG9uIGEgcHJvY2Vzc29yIHdpbGwgYmUgb24gc29tZW9uZSAKPj4+ IGVsc2UncyBtYWNoaW5lLiBBIGNyYXNoIG9yIGEgZmFpbGluZyB0ZXN0IGlzIGEgdXNlZnVsIHJl c3VsdCBhbmQgd2UgCj4+PiB3b3VsZCByYXRoZXIgaGVhciBhYm91dCBpdCB0aGFuIG5vdDsgcGxl YXNlIGRvIG5vdCBydW4gaXQgb24gYW55dGhpbmcgCj4+PiB5b3UgY2FyZSBhYm91dC4KPj4+Cj4+ PiBSZWxldmFudCBoYXJkd2FyZSBpcyBBTUQgWmVuIDQgb3IgWmVuIDUsIG9yIEludGVsIFhlb24g ZnJvbSBTa3lsYWtlLSAKPj4+IFNQIG9ud2FyZC4gQ3VycmVudCBJbnRlbCBkZXNrdG9wIHBhcnRz IGhhdmUgbm8gQVZYLTUxMiBhdCBhbGwsIGFuZCAKPj4+IHdpbGwgbm90IHVudGlsIE5vdmEgTGFr ZS4gSWYgeW91IGhhdmUgb25lIG9mIHRoZSBhYm92ZSBhbmQgdHdlbnR5IAo+Pj4gbWludXRlcywg dGhlIFJFQURNRSBpbiB0aGUgdGFyYmFsbCB3YWxrcyB0aHJvdWdoIGl0IGluIHN0YWdlczsgdGhl IAo+Pj4gZmlyc3Qgc3RhZ2UgYWxvbmUgaXMgYSB1c2VmdWwgYW5zd2VyLCBhbmQgIm5vIGRpZmZl cmVuY2Ugb24gWmVuIDUiIGlzIAo+Pj4gYXMgdXNlZnVsIGFzIGEgc3BlZWR1cC4KPj4+Cj4+PiBX aGF0IGlzIGFscmVhZHkgZG9uZSwgc28gbm9ib2R5IHJlcGVhdHMgaXQ6IGJ1aWxkcyBjbGVhbiB3 aXRoIDAgCj4+PiB3YXJuaW5ncyBvbiBnY2MgMTMsIGNsYW5nIDE4LCBjbGFuZyAyMSBhbmQgTVNW QyAxOS41MSwgb24gTGludXgsIAo+Pj4gRnJlZUJTRCBhbmQgV2luZG93czsgYXBwbGllcyB0byBh IGZyZXNoIHI2NjYyIGNoZWNrb3V0IGFuZCBidWlsZHMgCj4+PiB3aXRoIGF1dG90b29scyByZW1v dmVkIGZyb20gUEFUSCAodGhlIHJlZ2VuZXJhdGVkIGJ1aWxkIGZpbGVzIHNoaXAgaW4gCj4+PiB0 aGUga2l0LCBzbyBhdXRvY29uZi9hdXRvbWFrZSBhcmUgbm90IG5lZWRlZCk7IGFuZCBvbiBhIG1h Y2hpbmUgCj4+PiB3aXRob3V0IEFWWC01MTIgdGhlIG91dHB1dCBpcyBieXRlLWlkZW50aWNhbCB0 byB0cnVuayBhY3Jvc3MgNTE5IAo+Pj4gZW5jb2RlciBvcHRpb24gc2V0cywgc28gdGhlIG5ldyBy dW5nIGRvZXMgbm90IGRpc3R1cmIgdGhlIG9uZXMgYmVsb3cgaXQuCj4+Pgo+Pj4gVHdvIHRoaW5n cyBhYm91dCBob3cgaXQgaXMgYnVpbHQ6Cj4+Pgo+Pj4gLSBJdCBpcyBjb21waWxlZCBvbiBhbHBo YSB2ZXJzaW9ucyBvbmx5LCBhbmQgbGVhdmVzIHRoZSBidWlsZCBieSAKPj4+IGl0c2VsZiB3aGVu Cj4+PiDCoMKgIHRoZSB2ZXJzaW9uIHR5cGUgbW92ZXMgb24uIFRoZXJlIGlzIG5vIGNvbmZpZ3Vy ZSBzd2l0Y2gsIAo+Pj4gZGVsaWJlcmF0ZWx5OiBhCj4+PiDCoMKgIHRpZXIgeW91IGhhdmUgdG8g b3B0IGludG8gaXMgYSB0aWVyIG5vYm9keSBtZWFzdXJlcy4gV2l0aGluIGFuIAo+Pj4gYWxwaGEg YnVpbGQKPj4+IMKgwqAgaXQgYmVoYXZlcyBsaWtlIHRoZSBvdGhlcnMgLSB3aGF0IHRoZSBjb21w aWxlciBjYW4gYnVpbGQgaXMgYnVpbHQsIAo+Pj4gdGhlIENQVQo+Pj4gwqDCoCBkZWNpZGVzIGF0 IHJ1biB0aW1lLCBhbmQgLS1ub2FzbSBhdng1MTIgdHVybnMgaXQgb2ZmLgo+Pj4KPj4+IC0gVGhl IGZpcnN0IHN0YWdlIGNhbm5vdCBjaGFuZ2UgdGhlIGVuY29kZWQgb3V0cHV0LCBhbmQgdGhlIGtp dCAKPj4+IGNoZWNrcyB0aGF0Lgo+Pj4gwqDCoCBUaGUgc2Vjb25kIHN0YWdlIGlzIG1vcmUgaW50 ZXJlc3Rpbmc6IHRoZSBiYW5kLW5vaXNlIHJvdXRpbmUgZW5kcyAKPj4+IGluIGEgc3VtCj4+PiDC oMKgIG9mIHNxdWFyZXMsIGFuZCBzdW1taW5nIHNpeHRlZW4gdmFsdWVzIGF0IG9uY2UgbWVhbnMg c3VtbWluZyB0aGVtIAo+Pj4gaW4gYQo+Pj4gwqDCoCBkaWZmZXJlbnQgb3JkZXIsIHdoaWNoIGNo YW5nZXMgdGhlIGxhc3QgYml0IGFuZCB0aGVyZWZvcmUgdGhlIAo+Pj4gYml0c3RyZWFtLgo+Pj4g wqDCoCBTbyBpdCBzaGlwcyBpbiB0d28gZm9ybXMgLSBvbmUgdGhhdCBrZWVwcyB0aGUgZXhpc3Rp bmcgb3JkZXIgYW5kIGlzCj4+PiDCoMKgIGJpdC1leGFjdCwgYW5kIG9uZSB0aGF0IGRvZXMgbm90 IGFuZCBpcyBmYXN0ZXIuIEhvdyBtdWNoIGZhc3RlciBpcyAKPj4+IGV4YWN0bHkKPj4+IMKgwqAg d2hhdCB3ZSBkbyBub3Qga25vdywgYW5kIGl0IGRlY2lkZXMgd2hldGhlciB0aGUgcXVlc3Rpb24g aXMgd29ydGggCj4+PiBoYXZpbmcuCj4+Pgo+Pj4gTm90aGluZyBoZXJlIGlzIGNvbW1pdHRlZC4g SWYgdGhlIG51bWJlcnMgc2F5IGl0IGlzIG5vdCB3b3J0aCBpdCwgCj4+PiB0aGF0IGlzIGEgcmVz dWx0IGFuZCB0aGUgdGllciBkb2VzIG5vdCBnbyBpbi4KPj4+Cj4+PiBQbGVhc2UgcmVwb3J0IGJh Y2s6IENQVSBtb2RlbCwgY29tcGlsZXIgYW5kIHZlcnNpb24sIE9TLCB0aGUgdHdvIAo+Pj4gdGlt aW5ncywgYW5kIGFueXRoaW5nIHRoYXQgYnJva2UuCj4+Pgo+Pj4gQnllLAo+Pj4gQWxleGFuZGVy Lgo+Pj4KPj4KPj4KPj4KPj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPj4gTGFtZS1kZXYgbWFpbGluZyBsaXN0Cj4+IExhbWUtZGV2QGxpc3RzLnNvdXJj ZWZvcmdlLm5ldAo+PiBodHRwczovL2xpc3RzLnNvdXJjZWZvcmdlLm5ldC9saXN0cy9saXN0aW5m by9sYW1lLWRldgo+IAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpMYW1lLWRldiBtYWlsaW5nIGxpc3QKTGFtZS1kZXZAbGlzdHMuc291cmNlZm9yZ2Uu bmV0Cmh0dHBzOi8vbGlzdHMuc291cmNlZm9yZ2UubmV0L2xpc3RzL2xpc3RpbmZvL2xhbWUtZGV2 Cg==