From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 9F13342293 for ; Fri, 17 Dec 2021 02:35:11 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 39DB368AD15; Fri, 17 Dec 2021 04:35:09 +0200 (EET) Received: from mail-qv1-f52.google.com (mail-qv1-f52.google.com [209.85.219.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4727268A486 for ; Fri, 17 Dec 2021 04:35:02 +0200 (EET) Received: by mail-qv1-f52.google.com with SMTP id m6so1075133qvh.10 for ; Thu, 16 Dec 2021 18:35:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :references:from:in-reply-to:content-transfer-encoding; bh=A17W+ggVjlk5jDxJZusWp0mCBEXove8wLSXc+RKbpbo=; b=aolAt29iOY1vp6DDUZxk5TJ3ZzB8gicQYIGEAO6KcQ+QWEpGYTfLqVEQJJKgj4ekeL O+nN/4RFnzxtkc+9jAWgyskCbnNpbVhH0779NE6E8OIeaOJvOvcPXlX+JAdAHEk3oxcy vtS9JXn0jBEwBwKoica2SngP/QKVQqQdUY2n0nf5nQkYm9jvYqwTDr0ThLFYgsD+wI1E VRMNAtQ8NDkINUmaC5eMecyxwIjmnCzdR7vATtt9be/R2JfWMHdjuZng0Jbsa+VnZ9Q3 GSm0tUUcYyH1mPk+PZCdhBPuAVEIHWYBL5+kxtrNcFRUbujbtMKMqAuEidWcjUa8c+QC Bvtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:references:from:in-reply-to :content-transfer-encoding; bh=A17W+ggVjlk5jDxJZusWp0mCBEXove8wLSXc+RKbpbo=; b=biEfcXaSU5bNDH9Z6QLegNqwjvBs+FlGapPMOmpfjoCnn00803it6nxgDT4LNlZXjo fh346HxRLcAjOZZrTG1z9qMHUUZMFTktqiUmqVE9T/+mxp4DL1/6bYjIXPek75ieNpBi cBngHBpaFokdQEjfB/DwQF887cr/mnN70OjPChwTMPK4dUHC+SaG3qqEotvKciFJZjmE Spgb7TDs249rSuIgbi33YChsC0/cdcF5tQzKyn9wAbF5OhI1yQd3T32bTjkiu2UqE7LY lTDQpEjTe6akT3+G3u7q5tC2XuSuqYW4bBbt3v8TNMyaCb5OogXMWfqcfDbtMRwNjiUH TXbA== X-Gm-Message-State: AOAM531WWDta1Ba3KK9q8sIhy7uqBDlzQ4V3Iw1Wp/rFQeUNpPYZv4ia FmFlmwvtZnRo9+CuWy4XpqeFZCIMQR/f8Q== X-Google-Smtp-Source: ABdhPJxo8VSpp+LOLpaxRyFPQJSb2cEvA0yEODswWfWg/AxrD7N4lipcvEJARPK0oRvGhba4yILCuA== X-Received: by 2002:ad4:5945:: with SMTP id eo5mr796464qvb.130.1639708500197; Thu, 16 Dec 2021 18:35:00 -0800 (PST) Received: from [192.168.0.13] ([181.170.250.138]) by smtp.gmail.com with ESMTPSA id u21sm3884195qke.95.2021.12.16.18.34.58 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Dec 2021 18:34:59 -0800 (PST) Message-ID: Date: Thu, 16 Dec 2021 23:34:57 -0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.4.0 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20211216132151.8216-1-jamrial@gmail.com> <20211216132151.8216-2-jamrial@gmail.com> <87bcdbcf-1820-5929-50a7-f7491cc5ca13@passwd.hu> From: James Almer In-Reply-To: <87bcdbcf-1820-5929-50a7-f7491cc5ca13@passwd.hu> Subject: Re: [FFmpeg-devel] [PATCH 001/279 v2] Add a new channel layout API X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gMTIvMTYvMjAyMSA4OjI3IFBNLCBNYXJ0b24gQmFsaW50IHdyb3RlOgo+IAo+IAo+IE9uIFRo dSwgMTYgRGVjIDIwMjEsIEphbWVzIEFsbWVyIHdyb3RlOgo+IAo+PiAtIEFkZGVkIGEgMTYgYnl0 ZSBmaXhlZCBhcnJheSB0byBBVkNoYW5uZWxDdXN0b20gdG8gZ2l2ZSBjdXN0b20KPj4gwqBsYWJl bHMgdG8gY2hhbm5lbHMgaW4gQ3VzdG9tIG9yZGVyIGxheW91dHMuIFRoZXNlIGxhYmVzIHdpbGwK Pj4gwqBiZSB1c2VkIGJ5IHRoZSBoZWxwZXJzIHdoZW4gcXVlcnlpbmcgY2hhbm5lbHMgYnkgbmFt ZSBvcgo+PiDCoGRlc2NyaWJpbmcgdGhlIGxheW91dC4KPiAKPiBJIGRvbid0IHRoaW5rIHRoaXMg aXMgYSBnb29kIGlkZWEgdG8gdXNlIHRoZSBsYWJlbHMgZGlyZWN0bHkgaW4gaGVscGVycyAKPiBp bnN0ZWFkIG9mIHRoZSBjaGFubmVsIGRlc2lnbmF0aW9uIG5hbWVzLiBTZWUgbW9yZSBiZWxvdy4K PiAKPiBJdCBpcyBhbHNvIG5vdCBncmVhdCB0aGF0IGlmIHRoZSB1c2VyIHdhbnRzIHRvIGxhYmVs IGEgY2hhbm5lbCwgaGUgaGFzIAo+IHRvIHVzZSBhIGN1c3RvbSBsYXlvdXQuIFNvIEknZCByYXRo ZXIgcmVtb3ZlIHRoZSBuYW1lIGZpZWxkIGZyb20gCj4gQVZDaGFubmVsQ3VzdG9tLCBJIGZpbmQg aXQgbGltaXRlZCBhbnl3YXkuCj4gCj4gWy4uXQo+IAo+PiArZW51bSBBVkNoYW5uZWwgYXZfY2hh bm5lbF9mcm9tX3N0cmluZyhjb25zdCBjaGFyICpzdHIpCj4+ICt7Cj4+ICvCoMKgwqAgaW50IGk7 Cj4+ICvCoMKgwqAgY2hhciAqZW5kcHRyID0gKGNoYXIgKilzdHI7Cj4+ICvCoMKgwqAgZW51bSBB VkNoYW5uZWwgaWQgPSBBVl9DSEFOX05PTkU7Cj4+ICvCoMKgwqAgZm9yIChpID0gMDsgaSA8IEZG X0FSUkFZX0VMRU1TKGNoYW5uZWxfbmFtZXMpOyBpKyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGlm IChjaGFubmVsX25hbWVzW2ldLm5hbWUgJiYgIXN0cmNtcChzdHIsIAo+PiBjaGFubmVsX25hbWVz W2ldLm5hbWUpKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gaTsKPj4gK8KgwqDC oCB9Cj4+ICvCoMKgwqAgaWYgKCFzdHJuY21wKHN0ciwgIlVTUiIsIDMpKSB7Cj4+ICvCoMKgwqDC oMKgwqDCoCBjb25zdCBjaGFyICpwID0gc3RyICsgMzsKPj4gK8KgwqDCoMKgwqDCoMKgIGlkID0g c3RydG9sKHAsICZlbmRwdHIsIDApOwo+PiArwqDCoMKgIH0KPj4gK8KgwqDCoCBpZiAoaWQgPiAw ICYmICEqZW5kcHRyKQo+IAo+IGlkID49IDAKPiAKPiBbLi5dCj4gCj4gCj4+ICtpbnQgYXZfY2hh bm5lbF9sYXlvdXRfZnJvbV9tYXNrKEFWQ2hhbm5lbExheW91dCAqY2hhbm5lbF9sYXlvdXQsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB1aW50NjRfdCBtYXNrKQo+PiArewo+PiArwqDCoMKgIGlmICghbWFzaykKPj4gK8Kg wqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4+ICsKPj4gK8KgwqDCoCBjaGFu bmVsX2xheW91dC0+b3JkZXLCoMKgwqDCoMKgwqAgPSBBVl9DSEFOTkVMX09SREVSX05BVElWRTsK Pj4gK8KgwqDCoCBjaGFubmVsX2xheW91dC0+bmJfY2hhbm5lbHMgPSBhdl9wb3Bjb3VudDY0KG1h c2spOwo+PiArwqDCoMKgIGNoYW5uZWxfbGF5b3V0LT51Lm1hc2vCoMKgwqDCoMKgID0gbWFzazsK Pj4gKwo+PiArwqDCoMKgIHJldHVybiAwOwo+PiArfQo+IAo+IFByb2JhYmx5IGEgY29uc3RydWN0 b3IgZm9yIGN1c3RvbSBsYXlvdXQgd291bGQgYWxzbyBtYWtlIHNlbnNlOgo+IAo+IGludCBhdl9j aGFubmVsX2xheW91dF9jdXN0b20oQVZDaGFubmVsTGF5b3V0ICpjaGFubmVsX2xheW91dCwgaW50 IAo+IG5iX2NoYW5uZWxzKQo+IAo+IFsuLi5dCj4gCj4+ICsKPj4gK2ludCBhdl9jaGFubmVsX2xh eW91dF9jb3B5KEFWQ2hhbm5lbExheW91dCAqZHN0LCBjb25zdCAKPj4gQVZDaGFubmVsTGF5b3V0 ICpzcmMpCj4+ICt7Cj4+ICvCoMKgwqAgYXZfY2hhbm5lbF9sYXlvdXRfdW5pbml0KGRzdCk7Cj4+ ICvCoMKgwqAgKmRzdCA9ICpzcmM7Cj4+ICvCoMKgwqAgaWYgKHNyYy0+b3JkZXIgPT0gQVZfQ0hB Tk5FTF9PUkRFUl9DVVNUT00pIHsKPj4gK8KgwqDCoMKgwqDCoMKgIGRzdC0+dS5tYXAgPSBhdl9t YWxsb2Moc3JjLT5uYl9jaGFubmVscyAqIHNpemVvZigqZHN0LT51Lm1hcCkpOwo+IAo+IGF2X21h bGxvY19hcnJheSgpCj4gCj4+ICtpbnQgYXZfY2hhbm5lbF9sYXlvdXRfZGVzY3JpYmVfYnByaW50 KGNvbnN0IEFWQ2hhbm5lbExheW91dCAKPj4gKmNoYW5uZWxfbGF5b3V0LAo+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgQVZCUHJpbnQgKmJwKQo+PiArewo+PiArwqDCoMKgIGludCBpOwo+PiArCj4+ICvC oMKgwqAgYXZfYnByaW50X2NsZWFyKGJwKTsKPj4gKwo+PiArwqDCoMKgIHN3aXRjaCAoY2hhbm5l bF9sYXlvdXQtPm9yZGVyKSB7Cj4+ICvCoMKgwqAgY2FzZSBBVl9DSEFOTkVMX09SREVSX05BVElW RToKPj4gK8KgwqDCoMKgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBGRl9BUlJBWV9FTEVNUyhjaGFu bmVsX2xheW91dF9tYXApOyBpKyspCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChjaGFu bmVsX2xheW91dC0+dS5tYXNrID09IAo+PiBjaGFubmVsX2xheW91dF9tYXBbaV0ubGF5b3V0LnUu bWFzaykgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2JwcmludGYoYnAs ICIlcyIsIGNoYW5uZWxfbGF5b3V0X21hcFtpXS5uYW1lKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+PiAr wqDCoMKgwqDCoMKgwqAgLy8gZmFsbC10aHJvdWdoCj4+ICvCoMKgwqAgY2FzZSBBVl9DSEFOTkVM X09SREVSX0NVU1RPTToKPj4gK8KgwqDCoMKgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBjaGFubmVs X2xheW91dC0+bmJfY2hhbm5lbHM7IGkrKykgewo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj b25zdCBjaGFyICpjaF9uYW1lID0gTlVMTDsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZW51 bSBBVkNoYW5uZWwgY2ggPSBBVl9DSEFOX05PTkU7Cj4+ICsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgKGNoYW5uZWxfbGF5b3V0LT5vcmRlciA9PSBBVl9DSEFOTkVMX09SREVSX0NVU1RP TSAmJgo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNoYW5uZWxfbGF5b3V0LT51 Lm1hcFtpXS5uYW1lWzBdKQo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNoX25h bWUgPSBjaGFubmVsX2xheW91dC0+dS5tYXBbaV0ubmFtZTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgKGNoYW5uZWxfbGF5b3V0LT5vcmRlciA9PSBBVl9DSEFOTkVMX09SREVSX05BVElW RSB8fCAKPj4gIWNoX25hbWUpIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBj aCA9IAo+PiBhdl9jaGFubmVsX2xheW91dF9jaGFubmVsX2Zyb21faW5kZXgoY2hhbm5lbF9sYXlv dXQsIGkpOwo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNoX25hbWUgPSBnZXRf Y2hhbm5lbF9uYW1lKGNoKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+IAo+IFlvdSBh cmUgbWl4aW5nIGNoYW5uZWwgbGFiZWxzIGFuZCBjaGFubmVsIGRlc2lnbmF0aW9ucywgYW5kIGl0 IGNhbiBiZSAKPiB0aGUgc291cmNlIG9mIGNvbmZ1c2lvbi4gSSBndWVzcyB0aGUgbWFpbiBwcm9i bGVtIGlzIHRoYXQgdGhlIGxhYmVsIG9mIAo+IHRoZSBjaGFubmVsIGNhbiBiZSB0b3RhbGx5IHVu cmVsYXRlZCB0byB0aGUgY2hhbm5lbCBkZXNpZ25hdGlvbi4KPiAKPiBZb3UgY291bGQgc2hvdyBp dCBhcyBzb21lIGNvbWJpbmF0aW9uLiBFLmcuIEZMQGxhYmVsLiBUaGlzIHdheSB0aGVyZSAKPiB3 aWxsIGJlIG5vIGNvbmZ1c2lvbiwgdGhhdCBwYXJ0IGJlZm9yZSBAIGlzIHRoZSBkZXNpZ25hdGlv biwgcGFydCBhZnRlciAKPiB0aGUgQCBpcyB0aGUgY2hhbm5lbCBsYWJlbC4KClRoZSBjdXN0b20g bmFtZXMgYXJlIG1lYW50IGZvciBjaGFubmVscyB3aXRob3V0IGEga25vd24gbmFtZS4gSWYgeW91 IAp3YW50IHRvIGNhbGwgRkwgc29tZXRoaW5nIGVsc2UgeW91IGNhbiwgYW5kIGFkZHJlc3MgaXQg YnkgaXQgb3IgRkwsIGJ1dCAKaXQncyBub3QgdGhlIG1haW4gb2JqZWN0aXZlLgoKPiAKPiBbLi5d Cj4gCj4+ICtlbnVtIEFWQ2hhbm5lbAo+PiArYXZfY2hhbm5lbF9sYXlvdXRfY2hhbm5lbF9mcm9t X3N0cmluZyhjb25zdCBBVkNoYW5uZWxMYXlvdXQgCj4+ICpjaGFubmVsX2xheW91dCwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGNvbnN0IGNoYXIgKm5hbWUpCj4+ICt7Cj4+ICvCoMKgwqAgaW50IGNo YW5uZWwsIHJldDsKPj4gKwo+PiArwqDCoMKgIHN3aXRjaCAoY2hhbm5lbF9sYXlvdXQtPm9yZGVy KSB7Cj4+ICvCoMKgwqAgY2FzZSBBVl9DSEFOTkVMX09SREVSX0NVU1RPTToKPj4gK8KgwqDCoMKg wqDCoMKgIGZvciAoaW50IGkgPSAwOyBpIDwgY2hhbm5lbF9sYXlvdXQtPm5iX2NoYW5uZWxzOyBp KyspIHsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGNoYW5uZWxfbGF5b3V0LT51Lm1h cFtpXS5uYW1lWzBdICYmICFzdHJjbXAobmFtZSwgCj4+IGNoYW5uZWxfbGF5b3V0LT51Lm1hcFtp XS5uYW1lKSkKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gY2hhbm5l bF9sYXlvdXQtPnUubWFwW2ldLmlkOwo+IAo+IFRoaXMgaXMgdGhlIHJldmVyc2UgY2FzZSwgSSBh bHNvIGZpbmQgaXQgY29uZnVzaW5nIHRoYXQgbmFtZSBjYW4gYmUgYSAKPiBsYWJlbCBhbmQgYSBk ZXNpZ25hdGlvbiBhdCB0aGUgc2FtZSB0aW1lIGFuZCBpdCBkZXBlbmRzIG9uIHRoZSBjaGFubmVs IAo+IGxheW91dCB0eXBlIHdoaWNoIG9uZSBpcyBpdC4uLiBZZXQgYWdhaW4sIHNvbWUgc3ludGF4 IGNvdWxkIGhlbHAuIEUuZy4gYSAKPiBzdHJpbmcgd2l0aG91dCBAIGlzIGEgZGVzaWduYXRpb24s IEBsYWJlbCBpcyBhIGxhYmVsIHdpdGhvdXQgYW55IGZpbHRlciAKPiBmb3IgY2hhbm5lbCBkZXNp Z25hdGlvbiwgZGVzaWduYXRpb25AbGFiZWwgZmlsdGVycyBib3RoLgoKQWdhaW4sIHRoZSBjdXN0 b20gbmFtZXMgYXJlIG5vdCBtZWFudCB0byBiZSBzb21ldGhpbmcgc2VwYXJhdGUgZnJvbSB0aGUg CnN0YW5kYXJkIG5hbWVzLiBUaGUgbGF0dGVyIGV4aXN0cyBmb3IgbGlrZSAyNSBpZHMsIHNvIGFk ZGluZyBjdXN0b20gCm5hbWVzIHdpbGwgbGV0IHlvdSBhZGRyZXNzIHRoZSByZXN0IGluIHNvbWUg Zm9ybS4KCj4gCj4gWy4uXQo+IAo+PiAraW50IGF2X2NoYW5uZWxfbGF5b3V0X2luZGV4X2Zyb21f c3RyaW5nKGNvbnN0IEFWQ2hhbm5lbExheW91dCAKPj4gKmNoYW5uZWxfbGF5b3V0LAo+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGNvbnN0IGNoYXIgKm5hbWUpCj4+ICt7Cj4+ICvCoMKgwqAgZW51 bSBBVkNoYW5uZWwgY2g7Cj4+ICsKPj4gK8KgwqDCoCBzd2l0Y2ggKGNoYW5uZWxfbGF5b3V0LT5v cmRlcikgewo+PiArwqDCoMKgIGNhc2UgQVZfQ0hBTk5FTF9PUkRFUl9DVVNUT006Cj4+ICvCoMKg wqDCoMKgwqDCoCBmb3IgKGludCBpID0gMDsgaSA8IGNoYW5uZWxfbGF5b3V0LT5uYl9jaGFubmVs czsgaSsrKSB7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChjaGFubmVsX2xheW91dC0+ dS5tYXBbaV0ubmFtZVswXSAmJiAhc3RyY21wKG5hbWUsIAo+PiBjaGFubmVsX2xheW91dC0+dS5t YXBbaV0ubmFtZSkpCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGk7 Cj4gCj4gU2FtZSBoZXJlLgo+IAo+IFsuLl0KPiAKPj4gK2ludCBhdl9jaGFubmVsX2xheW91dF9j aGVjayhjb25zdCBBVkNoYW5uZWxMYXlvdXQgKmNoYW5uZWxfbGF5b3V0KQo+IAo+IGF2X2NoYW5u ZWxfbGF5b3V0X3ZhbGlkIHdvdWxkIGJlIG1vcmUgcmVhZGFibGUuCgpPay4KCj4gCj4gVGhhbmtz LAo+IE1hcnRvbgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3Jn Cj4gaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gCj4g VG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVs LXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxp bmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1h bi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3Zl LCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAi dW5zdWJzY3JpYmUiLgo=