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 3C049454E4 for ; Thu, 2 Mar 2023 18:48:01 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1224568B274; Thu, 2 Mar 2023 20:47:59 +0200 (EET) Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 32C0768A606 for ; Thu, 2 Mar 2023 20:47:53 +0200 (EET) Received: from ursule.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 97132C0001 for ; Thu, 2 Mar 2023 20:47:52 +0200 (EET) Received: from basile.remlab.net ([2001:14ba:a080:a501:23a6:ebae:8f2a:4d73]) by ursule.remlab.net with ESMTPSA id PzgAIljvAGT2ihEAwZXkwQ (envelope-from ) for ; Thu, 02 Mar 2023 20:47:52 +0200 From: =?ISO-8859-1?Q?R=E9mi?= Denis-Courmont To: ffmpeg-devel@ffmpeg.org Date: Thu, 02 Mar 2023 20:47:52 +0200 Message-ID: <2370995.qZ0jSbpfxB@basile.remlab.net> Organization: Remlab In-Reply-To: <20230301154456.3407862-1-jack.wgm@gmail.com> References: <20230301150757.3309799-1-jack.wgm@gmail.com> <20230301154456.3407862-1-jack.wgm@gmail.com> MIME-Version: 1.0 Subject: Re: [FFmpeg-devel] [PATCH] libavformat/tcp: add local_addr/local_port for network option 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: TGUga2Vza2l2aWlra29uYSAxLiBtYWFsaXNrdXV0YSAyMDIzLCAxNy40NC41NiBFRVQgamFja2Fy YWluIGEgw6ljcml0IDoKPiBTaWduZWQtb2ZmLWJ5OiBqYWNrYXJhaW4gPGphY2sud2dtQGdtYWls LmNvbT4KPiAtLS0KPiAgZG9jL3Byb3RvY29scy50ZXhpICAgIHwgIDYgKysrKysKPiAgbGliYXZm b3JtYXQvbmV0d29yay5jIHwgMTQgKysrKysrKystLS0tCj4gIGxpYmF2Zm9ybWF0L25ldHdvcmsu aCB8ICAyICstCj4gIGxpYmF2Zm9ybWF0L3RjcC5jICAgICB8IDUzICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRp b25zKCspLCA2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kb2MvcHJvdG9jb2xzLnRl eGkgYi9kb2MvcHJvdG9jb2xzLnRleGkKPiBpbmRleCAyMWFlNjE4MWEwLi5iM2ZhZDU1NTkxIDEw MDY0NAo+IC0tLSBhL2RvYy9wcm90b2NvbHMudGV4aQo+ICsrKyBiL2RvYy9wcm90b2NvbHMudGV4 aQo+IEBAIC0xODgyLDYgKzE4ODIsMTIgQEAgVGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIG9wdGlvbnMg Zm9sbG93cy4KPiAgTGlzdGVuIGZvciBhbiBpbmNvbWluZyBjb25uZWN0aW9uLiAwIGRpc2FibGVz IGxpc3RlbiwgMSBlbmFibGVzIGxpc3RlbiBpbgo+ICBzaW5nbGUgY2xpZW50IG1vZGUsIDIgZW5h YmxlcyBsaXN0ZW4gaW4gbXVsdGktY2xpZW50IG1vZGUuIERlZmF1bHQgdmFsdWUgaXMKPiAwLgo+ IAo+ICtAaXRlbSBsb2NhbF9hZGRyPUB2YXJ7YWRkcn0KPiArTG9jYWwgSVAgYWRkcmVzcyBvZiBh IG5ldHdvcmsgaW50ZXJmYWNlIHVzZWQgZm9yIHRjcCBzb2NrZXQgY29ubmVjdC4KPiArCj4gK0Bp dGVtIGxvY2FsX3BvcnQ9QHZhcntwb3J0fQo+ICtMb2NhbCBwb3J0IHVzZWQgZm9yIHRjcCBzb2Nr ZXQgY29ubmVjdC4KPiArCj4gIEBpdGVtIHRpbWVvdXQ9QHZhcnttaWNyb3NlY29uZHN9Cj4gIFNl dCByYWlzZSBlcnJvciB0aW1lb3V0LCBleHByZXNzZWQgaW4gbWljcm9zZWNvbmRzLgo+IAo+IGRp ZmYgLS1naXQgYS9saWJhdmZvcm1hdC9uZXR3b3JrLmMgYi9saWJhdmZvcm1hdC9uZXR3b3JrLmMK PiBpbmRleCAyMWUyMGIzZTlhLi5kZThiMTRiZTgyIDEwMDY0NAo+IC0tLSBhL2xpYmF2Zm9ybWF0 L25ldHdvcmsuYwo+ICsrKyBiL2xpYmF2Zm9ybWF0L25ldHdvcmsuYwo+IEBAIC0zNTYsNyArMzU2 LDcgQEAgc3RydWN0IENvbm5lY3Rpb25BdHRlbXB0IHsKPiAgc3RhdGljIGludCBzdGFydF9jb25u ZWN0X2F0dGVtcHQoc3RydWN0IENvbm5lY3Rpb25BdHRlbXB0ICphdHRlbXB0LAo+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgYWRkcmluZm8gKipwdHIsIGludCB0aW1l b3V0X21zLAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUkxDb250ZXh0ICpo LAo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkICgqY3VzdG9taXplX2Zk KSh2b2lkICosIGludCksIHZvaWQKPiAqY3VzdG9taXplX2N0eCkgKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGludCAoKmN1c3RvbWl6ZV9mZCkodm9pZAo+ICosIGludCksIHZvaWQg KmN1c3RvbWl6ZV9jdHgpIHsKPiAgICAgIHN0cnVjdCBhZGRyaW5mbyAqYWkgPSAqcHRyOwo+ICAg ICAgaW50IHJldDsKPiBAQCAtMzcxLDggKzM3MSwxNCBAQCBzdGF0aWMgaW50IHN0YXJ0X2Nvbm5l Y3RfYXR0ZW1wdChzdHJ1Y3QKPiBDb25uZWN0aW9uQXR0ZW1wdCAqYXR0ZW1wdCwKPiAKPiAgICAg IGZmX3NvY2tldF9ub25ibG9jayhhdHRlbXB0LT5mZCwgMSk7Cj4gCj4gLSAgICBpZiAoY3VzdG9t aXplX2ZkKQo+IC0gICAgICAgIGN1c3RvbWl6ZV9mZChjdXN0b21pemVfY3R4LCBhdHRlbXB0LT5m ZCk7Cj4gKyAgICBpZiAoY3VzdG9taXplX2ZkKSB7Cj4gKyAgICAgICAgcmV0ID0gY3VzdG9taXpl X2ZkKGN1c3RvbWl6ZV9jdHgsIGF0dGVtcHQtPmZkKTsKPiArICAgICAgICBpZiAocmV0KSB7Cj4g KyAgICAgICAgICAgIGNsb3Nlc29ja2V0KGF0dGVtcHQtPmZkKTsKPiArICAgICAgICAgICAgYXR0 ZW1wdC0+ZmQgPSAtMTsKPiArICAgICAgICAgICAgcmV0dXJuIHJldDsKPiArICAgICAgICB9Cj4g KyAgICB9Cj4gCj4gICAgICB3aGlsZSAoKHJldCA9IGNvbm5lY3QoYXR0ZW1wdC0+ZmQsIGFpLT5h aV9hZGRyLCBhaS0+YWlfYWRkcmxlbikpKSB7Cj4gICAgICAgICAgcmV0ID0gZmZfbmV0ZXJybm8o KTsKPiBAQCAtNDAyLDcgKzQwOCw3IEBAIHN0YXRpYyBpbnQgc3RhcnRfY29ubmVjdF9hdHRlbXB0 KHN0cnVjdAo+IENvbm5lY3Rpb25BdHRlbXB0ICphdHRlbXB0LAo+IAo+ICBpbnQgZmZfY29ubmVj dF9wYXJhbGxlbChzdHJ1Y3QgYWRkcmluZm8gKmFkZHJzLCBpbnQgdGltZW91dF9tc19wZXJfYWRk cmVzcywKPiBpbnQgcGFyYWxsZWwsIFVSTENvbnRleHQgKmgsIGludCAqZmQsCj4gLSAgICAgICAg ICAgICAgICAgICAgICAgIHZvaWQgKCpjdXN0b21pemVfZmQpKHZvaWQgKiwgaW50KSwgdm9pZAo+ ICpjdXN0b21pemVfY3R4KSArICAgICAgICAgICAgICAgICAgICAgICAgaW50ICgqY3VzdG9taXpl X2ZkKSh2b2lkICosIGludCksCj4gdm9pZCAqY3VzdG9taXplX2N0eCkgewo+ICAgICAgc3RydWN0 IENvbm5lY3Rpb25BdHRlbXB0IGF0dGVtcHRzWzNdOwo+ICAgICAgc3RydWN0IHBvbGxmZCBwZmRb M107Cj4gZGlmZiAtLWdpdCBhL2xpYmF2Zm9ybWF0L25ldHdvcmsuaCBiL2xpYmF2Zm9ybWF0L25l dHdvcmsuaAo+IGluZGV4IDcxYzQ5YTczZmIuLjhhOGNiZTY3MmUgMTAwNjQ0Cj4gLS0tIGEvbGli YXZmb3JtYXQvbmV0d29yay5oCj4gKysrIGIvbGliYXZmb3JtYXQvbmV0d29yay5oCj4gQEAgLTMz Niw2ICszMzYsNiBAQCB2b2lkIGZmX2xvZ19uZXRfZXJyb3Iodm9pZCAqY3R4LCBpbnQgbGV2ZWws IGNvbnN0IGNoYXIqCj4gcHJlZml4KTsgKi8KPiAgaW50IGZmX2Nvbm5lY3RfcGFyYWxsZWwoc3Ry dWN0IGFkZHJpbmZvICphZGRycywgaW50IHRpbWVvdXRfbXNfcGVyX2FkZHJlc3MsCj4gaW50IHBh cmFsbGVsLCBVUkxDb250ZXh0ICpoLCBpbnQgKmZkLAo+IC0gICAgICAgICAgICAgICAgICAgICAg ICB2b2lkICgqY3VzdG9taXplX2ZkKSh2b2lkICosIGludCksIHZvaWQKPiAqY3VzdG9taXplX2N0 eCk7ICsgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKCpjdXN0b21pemVfZmQpKHZvaWQgKiwg aW50KSwKPiB2b2lkICpjdXN0b21pemVfY3R4KTsKPiAKPiAgI2VuZGlmIC8qIEFWRk9STUFUX05F VFdPUktfSCAqLwo+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC90Y3AuYyBiL2xpYmF2Zm9ybWF0 L3RjcC5jCj4gaW5kZXggYTExY2NiYjkxMy4uYTg5NzE3NGY2YyAxMDA2NDQKPiAtLS0gYS9saWJh dmZvcm1hdC90Y3AuYwo+ICsrKyBiL2xpYmF2Zm9ybWF0L3RjcC5jCj4gQEAgLTM2LDYgKzM2LDgg QEAgdHlwZWRlZiBzdHJ1Y3QgVENQQ29udGV4dCB7Cj4gICAgICBjb25zdCBBVkNsYXNzICpjbGFz czsKPiAgICAgIGludCBmZDsKPiAgICAgIGludCBsaXN0ZW47Cj4gKyAgICBjaGFyICpsb2NhbF9w b3J0Owo+ICsgICAgY2hhciAqbG9jYWxfYWRkcjsKPiAgICAgIGludCBvcGVuX3RpbWVvdXQ7Cj4g ICAgICBpbnQgcndfdGltZW91dDsKPiAgICAgIGludCBsaXN0ZW5fdGltZW91dDsKPiBAQCAtNTIs NiArNTQsOCBAQCB0eXBlZGVmIHN0cnVjdCBUQ1BDb250ZXh0IHsKPiAgI2RlZmluZSBFIEFWX09Q VF9GTEFHX0VOQ09ESU5HX1BBUkFNCj4gIHN0YXRpYyBjb25zdCBBVk9wdGlvbiBvcHRpb25zW10g PSB7Cj4gICAgICB7ICJsaXN0ZW4iLCAgICAgICAgICAiTGlzdGVuIGZvciBpbmNvbWluZyBjb25u ZWN0aW9ucyIsIAo+IE9GRlNFVChsaXN0ZW4pLCAgICAgICAgIEFWX09QVF9UWVBFX0lOVCwgeyAu aTY0ID0gMCB9LCAgICAgMCwgICAgICAgMiwgICAgIAo+ICAuZmxhZ3MgPSBEfEUgfSwgKyAgICB7 ICJsb2NhbF9wb3J0IiwgICAgICAiTG9jYWwgcG9ydCIsICAgICAgICAgICAgICAgICAgIAo+ICAg ICAgICAgICAgICAgICAgICAgIE9GRlNFVChsb2NhbF9wb3J0KSwgICAgIEFWX09QVF9UWVBFX1NU UklORywgeyAuc3RyID0KPiBOVUxMIH0sICAgICAwLCAgICAgICAwLCAuZmxhZ3MgPSBEfEUgfSwg KyAgICB7ICJsb2NhbF9hZGRyIiwgICAgICAiTG9jYWwKPiBhZGRyZXNzIiwgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE9GRlNFVChsb2NhbF9hZGRyKSwgICAgCj4gQVZfT1BU X1RZUEVfU1RSSU5HLCB7IC5zdHIgPSBOVUxMIH0sICAgICAwLCAgICAgICAwLCAuZmxhZ3MgPSBE fEUgfSwgewo+ICJ0aW1lb3V0IiwgICAgICJzZXQgdGltZW91dCAoaW4gbWljcm9zZWNvbmRzKSBv ZiBzb2NrZXQgSS9PIG9wZXJhdGlvbnMiLAo+IE9GRlNFVChyd190aW1lb3V0KSwgICAgIEFWX09Q VF9UWVBFX0lOVCwgeyAuaTY0ID0gLTEgfSwgICAgICAgICAtMSwKPiBJTlRfTUFYLCAuZmxhZ3Mg PSBEfEUgfSwgeyAibGlzdGVuX3RpbWVvdXQiLCAgIkNvbm5lY3Rpb24gYXdhaXRpbmcgdGltZW91 dAo+IChpbiBtaWxsaXNlY29uZHMpIiwgICAgICBPRkZTRVQobGlzdGVuX3RpbWVvdXQpLCBBVl9P UFRfVFlQRV9JTlQsIHsgLmk2NCA9Cj4gLTEgfSwgICAgICAgICAtMSwgSU5UX01BWCwgLmZsYWdz ID0gRHxFIH0sIHsgInNlbmRfYnVmZmVyX3NpemUiLCAiU29ja2V0Cj4gc2VuZCBidWZmZXIgc2l6 ZSAoaW4gYnl0ZXMpIiwgICAgICAgICAgICAgICAgT0ZGU0VUKHNlbmRfYnVmZmVyX3NpemUpLAo+ IEFWX09QVF9UWVBFX0lOVCwgeyAuaTY0ID0gLTEgfSwgICAgICAgICAtMSwgSU5UX01BWCwgLmZs YWdzID0gRHxFIH0sIEBACj4gLTcwLDkgKzc0LDQyIEBAIHN0YXRpYyBjb25zdCBBVkNsYXNzIHRj cF9jbGFzcyA9IHsKPiAgICAgIC52ZXJzaW9uICAgID0gTElCQVZVVElMX1ZFUlNJT05fSU5ULAo+ ICB9Owo+IAo+IC1zdGF0aWMgdm9pZCBjdXN0b21pemVfZmQodm9pZCAqY3R4LCBpbnQgZmQpCj4g K3N0YXRpYyBpbnQgY3VzdG9taXplX2ZkKHZvaWQgKmN0eCwgaW50IGZkKQo+ICB7Cj4gICAgICBU Q1BDb250ZXh0ICpzID0gY3R4Owo+ICsKPiArICAgIGlmIChzLT5sb2NhbF9hZGRyIHx8IHMtPmxv Y2FsX3BvcnQpIHsKPiArICAgICAgICBzdHJ1Y3QgYWRkcmluZm8gaGludHMgPSB7IDAgfSwgKmFp LCAqY3VyX2FpOwo+ICsgICAgICAgIGludCByZXQ7Cj4gKwo+ICsgICAgICAgIGhpbnRzLmFpX2Zh bWlseSA9IEFGX1VOU1BFQzsKClRoYXQgbmVlZHMgdG8gbWF0Y2ggdGhlIHNvY2tldCBwcm90b2Nv bCBmYW1pbHksIG9yIGJpbmQoKSB3aWxsIGZhaWwuCgo+ICsgICAgICAgIGhpbnRzLmFpX3NvY2t0 eXBlID0gU09DS19TVFJFQU07Cj4gKwo+ICsgICAgICAgIHJldCA9IGdldGFkZHJpbmZvKHMtPmxv Y2FsX2FkZHIsIHMtPmxvY2FsX3BvcnQsICZoaW50cywgJmFpKTsKPiArICAgICAgICBpZiAocmV0 KSB7Cj4gKyAgICAgICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwKPiArICAgICAgICAg ICAgICAgIkZhaWxlZCB0byBnZXRhZGRyaW5mbyBsb2NhbCBhZGRyOiAlcyBwb3J0OiAlcyBlcnI6 ICVzXG4iLAo+ICsgICAgICAgICAgICAgICAgcy0+bG9jYWxfYWRkciwgcy0+bG9jYWxfcG9ydCwg Z2FpX3N0cmVycm9yKHJldCkpOwo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAg IH0KPiArCj4gKyAgICAgICAgY3VyX2FpID0gYWk7Cj4gKyAgICAgICAgd2hpbGUgKGN1cl9haSkg ewo+ICsgICAgICAgICAgICByZXQgPSBiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopY3VyX2Fp LT5haV9hZGRyLAo+IChpbnQpY3VyX2FpLT5haV9hZGRybGVuKTsgKyAgICAgICAgICAgIGlmIChy ZXQpCj4gKyAgICAgICAgICAgICAgICBjdXJfYWkgPSBjdXJfYWktPmFpX25leHQ7Cj4gKyAgICAg ICAgICAgIGVsc2UKPiArICAgICAgICAgICAgICAgIGJyZWFrOwo+ICsgICAgICAgIH0KPiArICAg ICAgICBmcmVlYWRkcmluZm8oYWkpOwo+ICsKPiArICAgICAgICBpZiAocmV0KSB7Cj4gKyAgICAg ICAgICAgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwKPiArICAgICAgICAgICAgICAgICJGYWls ZWQgdG8gYmluZCBsb2NhbCBhZGRyOiAlcyBwb3J0OiAlcyBlcnI6ICVzXG4iLAo+ICsgICAgICAg ICAgICAgICAgcy0+bG9jYWxfYWRkciwgcy0+bG9jYWxfcG9ydCwgZ2FpX3N0cmVycm9yKHJldCkp Owo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Owo+ICsgICAgICAgIH0KPiArICAgIH0KPiAgICAg IC8qIFNldCB0aGUgc29ja2V0J3Mgc2VuZCBvciByZWNlaXZlIGJ1ZmZlciBzaXplcywgaWYgc3Bl Y2lmaWVkLgo+ICAgICAgICAgSWYgdW5zcGVjaWZpZWQgb3Igc2V0dGluZyBmYWlscywgc3lzdGVt IGRlZmF1bHQgaXMgdXNlZC4gKi8KPiAgICAgIGlmIChzLT5yZWN2X2J1ZmZlcl9zaXplID4gMCkg ewo+IEBAIC05Nyw2ICsxMzQsOCBAQCBzdGF0aWMgdm9pZCBjdXN0b21pemVfZmQodm9pZCAqY3R4 LCBpbnQgZmQpCj4gICAgICAgICAgfQo+ICAgICAgfQo+ICAjZW5kaWYgLyogIUhBVkVfV0lOU09D SzJfSCAqLwo+ICsKPiArICAgIHJldHVybiAwOwo+ICB9Cj4gCj4gIC8qIHJldHVybiBub24gemVy byBpZiBlcnJvciAqLwo+IEBAIC0xMjksNiArMTY4LDE4IEBAIHN0YXRpYyBpbnQgdGNwX29wZW4o VVJMQ29udGV4dCAqaCwgY29uc3QgY2hhciAqdXJpLCBpbnQKPiBmbGFncykgaWYgKGJ1ZiA9PSBl bmRwdHIpCj4gICAgICAgICAgICAgICAgICBzLT5saXN0ZW4gPSAxOwo+ICAgICAgICAgIH0KPiAr ICAgICAgICBpZiAoYXZfZmluZF9pbmZvX3RhZyhidWYsIHNpemVvZihidWYpLCAibG9jYWxfcG9y dCIsIHApKSB7Cj4gKyAgICAgICAgICAgIGF2X2ZyZWVwKCZzLT5sb2NhbF9wb3J0KTsKPiArICAg ICAgICAgICAgcy0+bG9jYWxfcG9ydCA9IGF2X3N0cmR1cChidWYpOwo+ICsgICAgICAgICAgICBp ZiAoIXMtPmxvY2FsX2FkZHIpCj4gKyAgICAgICAgICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9N RU0pOwo+ICsgICAgICAgIH0KPiArICAgICAgICBpZiAoYXZfZmluZF9pbmZvX3RhZyhidWYsIHNp emVvZihidWYpLCAibG9jYWxfYWRkciIsIHApKSB7Cj4gKyAgICAgICAgICAgIGF2X2ZyZWVwKCZz LT5sb2NhbF9hZGRyKTsKPiArICAgICAgICAgICAgcy0+bG9jYWxfYWRkciA9IGF2X3N0cmR1cChi dWYpOwo+ICsgICAgICAgICAgICBpZiAoIXMtPmxvY2FsX2FkZHIpCj4gKyAgICAgICAgICAgICAg ICByZXR1cm4gQVZFUlJPUihFTk9NRU0pOwo+ICsgICAgICAgIH0KPiAgICAgICAgICBpZiAoYXZf ZmluZF9pbmZvX3RhZyhidWYsIHNpemVvZihidWYpLCAidGltZW91dCIsIHApKSB7Cj4gICAgICAg ICAgICAgIHMtPnJ3X3RpbWVvdXQgPSBzdHJ0b2woYnVmLCBOVUxMLCAxMCk7Cj4gICAgICAgICAg fQoKCi0tIArjg6zjg5/jg7vjg4fjg4st44Kv44O844Or44Oi44OzCmh0dHA6Ly93d3cucmVtbGFi Lm5ldC8KCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwpodHRwczov L2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwKClRvIHVuc3Vic2NyaWJl LCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcu b3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=