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 AF1DB4294F for ; Wed, 6 Apr 2022 11:53:07 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 8D65068B272; Wed, 6 Apr 2022 14:53:05 +0300 (EEST) Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 209E468B20C for ; Wed, 6 Apr 2022 14:52:59 +0300 (EEST) Received: by mail-wr1-f43.google.com with SMTP id h4so2784045wrc.13 for ; Wed, 06 Apr 2022 04:52:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=PriW5CGcpapRz3PzERxou5ntbarwyvAC8paPQLvlwtA=; b=lUujFoDs99GsEuU7749sg1k8HUAuim6NWFQrbXy5i5wAX/LbSHQhFKweztygnlvBD3 IRtE3EuPRFg29GrnxkOEh4+QdAAqIB6aT5O6tYyzyrXC9yGlKCvC4J4yshimXq5MoM3l iBXtvYVGfD5tyJm4vRmjsSSvM3v4uRqwTckNOPpr1KYRXTgilbHq8OOookbgfqdMYW8W djA64djTDG7zyM+GCa4VUpZw9cMZNwcqQSZdYo0QEfjd0O3RoBCkkANPF78bhWR81FYZ JeaNhRjYOSQeaxd4VgJ9LyJu5LIA6iVHvWURkhaAeULChU1XrjrvRQZWM+h+2zpirQms Fz0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=PriW5CGcpapRz3PzERxou5ntbarwyvAC8paPQLvlwtA=; b=EZy0/+XWPhIudLvypnT/wdZ+Wwm7ZkcKtZqeQY3I62Yqj5/5jNIBEGCOvFAxSyP4PB /tjiaoohC824exo8j9HWQf/m4jVbDiZtXu+k9+10ARDYwRetz0dR1fAGWNVRW6PaOWsI 4Mq4df1DFF+wUFQqYVVHr07KeeAHAeFnQZh5cIhS5GjC3w2M4scIKXAgWB0yhrcWoWDA j6n5r5kkxsZzqfOh0L8Dj3Ggu/DDgRB0uz4bsDeeYxVAL/16RYvyi9k4+vuVrZDBaX0J TU3a809/sc/PYR2QGvrGksBXuGsT11eiVd9ioRJKDclQJAGGR0K6+9jTJ06B1t7v0NAY JDyw== X-Gm-Message-State: AOAM530UG/pFpr97ZhvcYHPvP22cjrm6omc+ny+9m1NZwwquODPqqRuX wh7zpcGi/WCTtOLwEehHYGOdQ2BF6jvwpljsqtdzQcWh X-Google-Smtp-Source: ABdhPJxFpVVBJJUmoTPi43EGqwVY539AJuLZOGIZPlpBs82Df9QuI4neIy4QWHTYAnyRLXtwVYk8UgtDq73S0FYy7J4= X-Received: by 2002:a5d:64aa:0:b0:206:132a:aeb5 with SMTP id m10-20020a5d64aa000000b00206132aaeb5mr6265799wrp.561.1649245978025; Wed, 06 Apr 2022 04:52:58 -0700 (PDT) MIME-Version: 1.0 References: <20220403223825.26764-1-markg85@gmail.com> <20220403223825.26764-2-markg85@gmail.com> <20220405210105.GY2829255@pb2> In-Reply-To: From: Mark Gaiser Date: Wed, 6 Apr 2022 13:51:43 +0200 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH v12 1/1] avformat: Add IPFS protocol support. 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: T24gV2VkLCBBcHIgNiwgMjAyMiBhdCA0OjE4IEFNICJ6aGlsaXpoYW8o6LW15b+X56uLKSIgPHF1 aW5rYmxhY2tAZm94bWFpbC5jb20+Cndyb3RlOgoKPgo+Cj4gPiBPbiBBcHIgNiwgMjAyMiwgYXQg NTozNCBBTSwgTWFyayBHYWlzZXIgPG1hcmtnODVAZ21haWwuY29tPiB3cm90ZToKPiA+Cj4gPiBP biBUdWUsIEFwciA1LCAyMDIyIGF0IDExOjI3IFBNIE1hcmsgR2Fpc2VyIDxtYXJrZzg1QGdtYWls LmNvbT4gd3JvdGU6Cj4gPgo+ID4+Cj4gPj4KPiA+PiBPbiBUdWUsIEFwciA1LCAyMDIyIGF0IDEx OjAxIFBNIE1pY2hhZWwgTmllZGVybWF5ZXIgPAo+ID4+IG1pY2hhZWxAbmllZGVybWF5ZXIuY2M+ IHdyb3RlOgo+ID4+Cj4gPj4+IE9uIE1vbiwgQXByIDA0LCAyMDIyIGF0IDEyOjM4OjI1QU0gKzAy MDAsIE1hcmsgR2Fpc2VyIHdyb3RlOgo+ID4+Pj4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9y Ogo+ID4+Pj4gLSBmZnBsYXkgaXBmczovLzxjaWQ+Cj4gPj4+PiAtIGZmcGxheSBpcG5zOi8vPGNp ZD4KPiA+Pj4+Cj4gPj4+PiBJUEZTIGRhdGEgY2FuIGJlIHBsYXllZCBmcm9tIHNvIGNhbGxlZCAi aXBmcyBnYXRld2F5cyIuCj4gPj4+PiBBIGdhdGV3YXkgaXMgZXNzZW50aWFsbHkgYSB3ZWJzZXJ2 ZXIgdGhhdCBnaXZlcyBhY2Nlc3MgdG8gdGhlCj4gPj4+PiBkaXN0cmlidXRlZCBJUEZTIG5ldHdv cmsuCj4gPj4+Pgo+ID4+Pj4gVGhpcyBwcm90b2NvbCBzdXBwb3J0IChpcGZzIGFuZCBpcG5zKSB0 aGVyZWZvcmUgdHJhbnNsYXRlcwo+ID4+Pj4gaXBmczovLyBhbmQgaXBuczovLyB0byBhIGh0dHA6 Ly8gdXJsLiBUaGlzIHJlc3VsdGluZyB1cmwgaXMKPiA+Pj4+IHRoZW4gaGFuZGxlZCBieSB0aGUg aHR0cCBwcm90b2NvbC4gSXQgY291bGQgYWxzbyBiZSBodHRwcwo+ID4+Pj4gZGVwZW5kaW5nIG9u IHRoZSBnYXRld2F5IHByb3ZpZGVkLgo+ID4+Pj4KPiA+Pj4+IFRvIHVzZSB0aGlzIHByb3RvY29s LCBhIGdhdGV3YXkgbXVzdCBiZSBwcm92aWRlZC4KPiA+Pj4+IElmIHlvdSBkbyBub3RoaW5nIGl0 IHdpbGwgdHJ5IHRvIGZpbmQgaXQgaW4geW91cgo+ID4+Pj4gJEhPTUUvLmlwZnMvZ2F0ZXdheSBm aWxlLiBUaGUgd2F5cyB0byBzZXQgaXQgbWFudWFsbHkgYXJlOgo+ID4+Pj4gMS4gRGVmaW5lIGEg LWdhdGV3YXkgPHVybD4gdG8gdGhlIGdhdGV3YXkuCj4gPj4+PiAyLiBEZWZpbmUgJElQRlNfR0FU RVdBWSB3aXRoIHRoZSBmdWxsIGh0dHAgbGluayB0byB0aGUgZ2F0ZXdheS4KPiA+Pj4+IDMuIERl ZmluZSAkSVBGU19QQVRIIGFuZCBwb2ludCBpdCB0byB0aGUgSVBGUyBkYXRhIHBhdGguCj4gPj4+ PiA0LiBIYXZlIElQRlMgcnVubmluZyBpbiB5b3VyIGxvY2FsIHVzZXIgZm9sZGVyICh1bmRlciAk SE9NRS8uaXBmcykuCj4gPj4+Pgo+ID4+PiBbLi4uXQo+ID4+Pgo+ID4+Pj4gKyAgICAgICAgZ290 byBlcnI7Cj4gPj4+PiArICAgIH0KPiA+Pj4+ICsKPiA+Pj4+ICsgICAgLy8gUmVhZCBhIHNpbmds ZSBsaW5lIChmZ2V0cyBzdG9wcyBhdCBuZXcgbGluZSBtYXJrKS4KPiA+Pj4+ICsgICAgaWYgKCFm Z2V0cyhjLT5nYXRld2F5X2J1ZmZlciwgc2l6ZW9mKGMtPmdhdGV3YXlfYnVmZmVyKSAtIDEsCj4g Pj4+IGdhdGV3YXlfZmlsZSkpIHsKPiA+Pj4+ICsgICAgICBhdl9sb2coaCwgQVZfTE9HX1dBUk5J TkcsICJVbmFibGUgdG8gcmVhZCBmcm9tIGZpbGUgKGZ1bGwgdXJpOgo+ID4+PiAlcykuXG4iLAo+ ID4+Pj4gKyAgICAgICAgICAgICBpcGZzX2dhdGV3YXlfZmlsZSk7Cj4gPj4+PiArICAgICAgcmV0 ID0gQVZFUlJPUihFTk9FTlQpOwo+ID4+Pj4gKyAgICAgIGdvdG8gZXJyOwo+ID4+Pj4gKyAgICB9 Cj4gPj4+Cj4gPj4+IFRoZSBpbmRlbnRpb24gaXMgbm90IGNvbnNpc3RlbnQKPiA+Pj4KPiA+Pgo+ ID4+IFdoYXQncyB0aGUgaW50ZW5kZWQgaW5kZW50YXRpb24gaGVyZT8KPiA+PiBJbiBteSBlZGl0 b3IgKFF0Q3JlYXRvciwgaXQncyBzZXQgdG8gMiBzcGFjZXMgZm9yIHRhYnMpIHRoZQo+ID4+ICJp cGZzX2dhdGV3YXlfZmlsZSIgaXMgYWxpZ25lZCBkaXJlY3RseSB1bmRlcm5lYXRoIHRoZSBmaXJz dCBhcmd1bWVudCBvZgo+ID4+IGF2X2xvZy4KPiA+PiBUaGF0IGlzIGFzIGl0IHNob3VsZCBiZSwg cmlnaHQ/Cj4gPj4KPiA+PiBGb3IgdGhpcyBhbmQgeW91ciBvdGhlciBjb21tZW50cywgSSBzZWUg bm8gaXNzdWUgb24gbXkgc2lkZS4gQWxzbyBubwo+ID4+IHRyYWlsaW5nIHdoaXRlc3BhY2UuCj4g Pj4KPiA+PiBIZXJlJ3MgYW4gaW1hZ2Ugb2Ygd2hhdCBpIHNlZSB3aXRoIHNwYWNlcyB2aXN1YWxp emVzOgo+ID4+IGh0dHBzOi8vaS5pbWd1ci5jb20vMzdrNjhSSC5wbmcKPiA+PiBJcyB0aGVyZSBz b21ldGhpbmcgd3Jvbmcgb24gbXkgZW5kPwo+ID4+Cj4gPgo+ID4gSnVzdCBjaGVja2VkIHBhdGNo d29yazoKPiA+Cj4gaHR0cHM6Ly9wYXRjaHdvcmsuZmZtcGVnLm9yZy9wcm9qZWN0L2ZmbXBlZy9w YXRjaC8yMDIyMDQwMzIyMzgyNS4yNjc2NC0yLW1hcmtnODVAZ21haWwuY29tLwo+ID4gSXQgYWxz byBzaG93cyB0aGUgaW5kZW50YXRpb24gYXMgSSBpbnRlbmRlZCB3aGljaCBzaG91bGQgYmUgYWNj b3JkaW5nIHRvCj4gPiB0aGUgZmZtcGVnIGNvZGluZyBzdHlsZSBndWlkZWxpbmVzLgo+Cj4gSW5k ZW50IHNpemUgaXMgNC4gSSB1c2UgZ2l0IGxvZyAtcCB0byBkbyBvbmUgbW9yZSBjaGVjayBiZWZv cmUgc2VuZGluZwo+IHBhdGNoZXMuCj4KCkFoIHJpZ2h0LgpXZWxsLCBJIGRpZCBoYXZlIGEgY2xh bmctZm9ybWF0IEkgdXNlZCB2ZXJ5IGVhcmx5IG9uIGJ1dCBuZXZlciBzaW5jZS4KClRoYXQgYWxv bmcgd2l0aCBnaXQgbG9nIC1wIGhlbHBlZCA6KQpWMTMgY29taW5nIHVwIQoKCj4gPgo+ID4gU2Ft ZSB3aXRoOgo+ID4gaHR0cHM6Ly9mZm1wZWcub3JnL3BpcGVybWFpbC9mZm1wZWctZGV2ZWwvMjAy Mi1BcHJpbC8yOTQ5MzIuaHRtbAo+ID4KPiA+Cj4gPj4KPiA+Pgo+ID4+Pgo+ID4+Pgo+ID4+PiBb Li4uXQo+ID4+Pj4gKyAgICAvLyBQb3B1bGF0ZSBjLT5nYXRld2F5X2J1ZmZlciB3aXRoIHdoYXRl dmVyIGlzIGluIGMtPmdhdGV3YXkKPiA+Pj4+ICsgICAgaWYgKGMtPmdhdGV3YXkgIT0gTlVMTCkg ewo+ID4+Pj4gKyAgICAgICAgaWYgKHNucHJpbnRmKGMtPmdhdGV3YXlfYnVmZmVyLCBzaXplb2Yo Yy0+Z2F0ZXdheV9idWZmZXIpLAo+ID4+PiAiJXMiLAo+ID4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgIGMtPmdhdGV3YXkpID49IHNpemVvZihjLT5nYXRld2F5X2J1ZmZlcikpIHsKPiA+Pj4+ICsg ICAgICAgICAgICBhdl9sb2coaCwgQVZfTE9HX1dBUk5JTkcsICJUaGUgLWdhdGV3YXkgcGFyYW1l dGVyIGlzIHRvbwo+ID4+PiBsb25nLiAiCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAiV2UgYWxsb3cgYSBtYXggb2YgJXp1Cj4gPj4+IGNoYXJhY3RlcnNcbiIs Cj4gPj4+PiArICAgICAgICAgICAgICAgICAgIHNpemVvZihjLT5nYXRld2F5X2J1ZmZlcikpOwo+ ID4+Pj4gKyAgICAgICAgICAgIHJldCA9IEFWRVJST1IoRUlOVkFMKTsKPiA+Pj4+ICsgICAgICAg ICAgICBnb3RvIGVycjsKPiA+Pj4+ICsgICAgICAgIH0KPiA+Pj4+ICsgICAgfSBlbHNlIHsKPiA+ Pj4+ICsgICAgICAgIC8vIFBvcHVsYXRlIHRoZSBJUEZTIGdhdGV3YXkgaWYgd2UgaGF2ZSBhbnku Cj4gPj4+PiArICAgICAgICAvLyBJZiBub3QsIGluZm9ybSB0aGUgdXNlciBob3cgdG8gcHJvcGVy bHkgc2V0IG9uZS4KPiA+Pj4+ICsgICAgICAgIHJldCA9IHBvcHVsYXRlX2lwZnNfZ2F0ZXdheSho KTsKPiA+Pj4+ICsKPiA+Pj4+ICsgICAgICAgIGlmIChyZXQgPCAxKSB7Cj4gPj4+PiArICAgICAg ICAgICAgLy8gV2UgZmFsbGJhY2sgb24gZHdlYi5saW5rIChtYW5hZ2VkIGJ5IFByb3RvY29sIExh YnMpLgo+ID4+Pj4gKyAgICAgICAgICAgIHNucHJpbnRmKGMtPmdhdGV3YXlfYnVmZmVyLCBzaXpl b2YoYy0+Z2F0ZXdheV9idWZmZXIpLCAiCj4gPj4+IGh0dHBzOi8vZHdlYi5saW5rIik7Cj4gPj4+ PiArCj4gPj4+PiArICAgICAgICAgICAgYXZfbG9nKGgsIEFWX0xPR19XQVJOSU5HLCAiSVBGUyBk b2VzIG5vdCBhcHBlYXIgdG8gYmUKPiA+Pj4gcnVubmluZy4gIgo+ID4+Pj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIllvdeKAmXJlIG5vdyB1c2luZyB0aGUgcHVibGlj Cj4gPj4+IGdhdGV3YXkgYXQgZHdlYi5saW5rLlxuIik7Cj4gPj4+PiArICAgICAgICAgICAgYXZf bG9nKGgsIEFWX0xPR19JTkZPLCAiSW5zdGFsbGluZyBJUEZTIGxvY2FsbHkgaXMKPiA+Pj4gcmVj b21tZW5kZWQgdG8gIgo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ImltcHJvdmUgcGVyZm9ybWFuY2UgYW5kCj4gPj4+IHJlbGlhYmlsaXR5LCAiCj4gPj4+PiArICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kIG5vdCBzaGFyZSBhbGwgeW91ciBh Y3Rpdml0eQo+ID4+PiB3aXRoIGEgc2luZ2xlIElQRlMgZ2F0ZXdheS5cbiIKPiA+Pj4+ICsgICAg ICAgICAgICAgICAgICAgIlRoZXJlIGFyZSBtdWx0aXBsZSBvcHRpb25zIHRvIGRlZmluZSB0aGlz Cj4gPj4+IGdhdGV3YXkuXG4iCj4gPj4+PiArICAgICAgICAgICAgICAgICAgICIxLiBDYWxsIGZm bXBlZyB3aXRoIGEgZ2F0ZXdheSBwYXJhbSwgIgo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIndpdGhvdXQgYSB0cmFpbGluZyBzbGFzaDoKPiAtZ2F0ZXdheQo+ID4+ PiA8dXJsPi5cbiIKPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgIjIuIERlZmluZSBhbiAkSVBG U19HQVRFV0FZIGVudmlyb25tZW50IHZhcmlhYmxlCj4gPj4+IHdpdGggdGhlICIKPiA+Pj4+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmdWxsIEhUVFAgVVJMIHRvIHRoZSBn YXRld2F5ICIKPiA+Pj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ3aXRo b3V0IHRyYWlsaW5nIGZvcndhcmQKPiBzbGFzaC5cbiIKPiA+Pj4+ICsgICAgICAgICAgICAgICAg ICAgIjMuIERlZmluZSBhbiAkSVBGU19QQVRIIGVudmlyb25tZW50IHZhcmlhYmxlICIKPiA+Pj4+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbmQgcG9pbnQgaXQgdG8gdGhl IElQRlMgZGF0YQo+IHBhdGgKPiA+Pj4gIgo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIi0gdGhpcyBpcyB0eXBpY2FsbHkgfi8uaXBmc1xuIik7Cj4gPj4+PiArICAg ICAgICB9Cj4gPj4+PiArICAgIH0KPiA+Pj4KPiA+Pj4gVGhpcyB3aWxsIHByaW50IHRoZSB3YXJu aW5nIGV2ZXJ5IHRpbWUgYSBpcGZzIHVybCBpcyBvcGVuZWQuIE5vdCBqdXN0Cj4gb25jZQo+ID4+ PiBpcyB0aGF0IGludGVuZGVkID8KPiA+Pj4KPiA+Pgo+ID4+IFllcy4KPiA+Pgo+ID4+IE9yIHJh dGhlciwgSSBkb24ndCBzZWUgaG93IHRvIG1ha2UgaXQgcGVyc2lzdGVudCBpbiBhIG5pY2UgaW50 dWl0aXZlCj4gd2F5Lgo+ID4+IEJ5IG5pY2UgaW50dWl0aXZlIEkgbWVhbiBzaG93aW5nIGl0IGZv ciwgbGV0cyBzYXksIDEwIHRpbWVzIHlvdSB1c2UKPiBmZm1wZWcKPiA+PiB0byBiZSAic3VyZSIg eW91J3ZlIHNlZW4gaXQgYmVmb3JlIGl0IGNhbiBzdG9wIGFubm95aW5nIHRoZSB1c2VyIGFib3V0 Cj4gaXQuCj4gPj4KPiA+PiBBZGRpbmcgY29tcGxleGl0eSBmb3IgdGhhdCBkb2Vzbid0IHNlZW0g dG8gYmUgd29ydGggaXQgdG8gbWUuCj4gPj4KPiA+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pgo+ID4+Pj4g Kwo+ID4+Pj4gKyAgICAvLyBUZXN0IGlmIHRoZSBnYXRld2F5IHN0YXJ0cyB3aXRoIGVpdGhlciBo dHRwOi8vIG9yIGh0dHBzOi8vCj4gPj4+PiArICAgIGlmIChhdl9zdHJpc3RhcnQoYy0+Z2F0ZXdh eV9idWZmZXIsICJodHRwOi8vIiwgTlVMTCkgPT0gMAo+ID4+Pj4gKyAgICAgICAgJiYgYXZfc3Ry aXN0YXJ0KGMtPmdhdGV3YXlfYnVmZmVyLCAiaHR0cHM6Ly8iLCBOVUxMKSA9PSAwKSB7Cj4gPj4+ PiArICAgICAgICBhdl9sb2coaCwgQVZfTE9HX1dBUk5JTkcsICJUaGUgZ2F0ZXdheSBVUkwgZGlk bid0IHN0YXJ0IHdpdGgKPiA+Pj4gaHR0cDovLyBvciAiCj4gPj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICJodHRwczovLyBhbmQgaXMgdGhlcmVmb3JlCj4gPj4+IGludmFs aWQuXG4iKTsKPiA+Pj4+ICsgICAgICAgIHJldCA9IEFWRVJST1IoRUlMU0VRKTsKPiA+Pj4+ICsg ICAgICAgIGdvdG8gZXJyOwo+ID4+Pj4gKyAgICB9Cj4gPj4+PiArCj4gPj4+PiArICAgIC8vIENv bmNhdGVuYXRlIHRoZSB1cmwuCj4gPj4+PiArICAgIC8vIFRoaXMgZW5kcyB1cCB3aXRoIHNvbWV0 aGluZyBsaWtlOgo+ID4+PiBodHRwOi8vbG9jYWxob3N0OjgwODAvaXBmcy9RbS4uLi4uCj4gPj4+ PiArICAgIC8vIFRoZSBmb3JtYXQgb2YgIiVzJXMlcyVzIiBpcyB0aGUgZm9sbG93aW5nOgo+ID4+ Pj4gKyAgICAvLyAxc3QgJXMgPSBUaGUgZ2F0ZXdheS4KPiA+Pj4+ICsgICAgLy8gMm5kICVzID0g SWYgdGhlIGdhdGV3YXkgZGlkbid0IGVuZCBpbiBhIHNsYXNoLCBhZGQgYSAiLyIuCj4gPj4+IE90 aGVyd2lzZSBpdCdzIGFuIGVtcHR5IHN0cmluZwo+ID4+Pj4gKyAgICAvLyAzcmQgJXMgPSBFaXRo ZXIgaXBucy8gb3IgaXBmcy8uCj4gPj4+PiArICAgIC8vIDR0aCAlcyA9IFRoZSBJUEZTIENJRCAo UW0uLi4sIGJhZnkuLi4sIC4uLikuCj4gPj4+PiArICAgIGZ1bGx1cmkgPSBhdl9hc3ByaW50Zigi JXMlcyVzJXMiLAo+ID4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgYy0+Z2F0ZXdheV9i dWZmZXIsCj4gPj4+PiArCj4gKGMtPmdhdGV3YXlfYnVmZmVyW3N0cmxlbihjLT5nYXRld2F5X2J1 ZmZlcikKPiA+Pj4gLSAxXSA9PSAnLycpID8gIiIgOiAiLyIsCj4gPj4+PiArICAgICAgICAgICAg ICAgICAgICAgICAgICAoaXNfaXBucykgPyAiaXBucy8iIDogImlwZnMvIiwKPiA+Pj4+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgIGlwZnNfY2lkKTsKPiA+Pj4+ICsKPiA+Pj4+ICsgICAgaWYg KCFmdWxsdXJpKSB7Cj4gPj4+PiArICAgICAgYXZfbG9nKGgsIEFWX0xPR19FUlJPUiwgIkZhaWxl ZCB0byBjb21wb3NlIHRoZSBVUkxcbiIpOwo+ID4+Pj4gKyAgICAgIHJldCA9IEFWRVJST1IoRU5P TUVNKTsKPiA+Pj4+ICsgICAgICBnb3RvIGVycjsKPiA+Pj4+ICsgICAgfQo+ID4+Pgo+ID4+PiBh bm90aGVyIGluZGVudGlvbiBjYXNlCj4gPj4+Cj4gPj4+IFRoZXJlcyBhbHNvIHNvbWUgdHJhaWxp bmcgd2hpdGVzcGFjZSBpbiB0aGUgcGF0Y2ggbGVmdAo+ID4+Pgo+ID4+Pgo+ID4+PiBObyBtb3Jl IGNvbW1lbnRzIGZyb20gbWUuIExHVE0gYWZ0ZXIgdGhlc2UgdG8gbWUgaSB0aGluawo+ID4+Pgo+ ID4+Cj4gPj4gQXdlc29tZSEKPiA+PiBTdGlsbCBhIFYxMyBtaWdodCBiZSBuZWVkZWQuLi4KPiA+ PiBUaG91Z2ggdGhhdCBtaWdodCBkZXBlbmQgb24geW91ciBhbnN3ZXIgdG8gbXkgY29tbWVudCBh Ym92ZSB3aXRoIHRoZQo+IGltYWdlCj4gPj4gbGluay4KPiA+Pgo+ID4+Cj4gPj4+Cj4gPj4+IHRo eAo+ID4+Pgo+ID4+PiBbLi4uXQo+ID4+PiAtLQo+ID4+PiBNaWNoYWVsICAgICBHbnVQRyBmaW5n ZXJwcmludDogOUZGMjEyOEIxNDdFRjY3MzBCQURGMTMzNjExRUM3ODcwNDBCMEZBQgo+ID4+Pgo+ ID4+PiBNYW55IHRoYXQgbGl2ZSBkZXNlcnZlIGRlYXRoLiBBbmQgc29tZSB0aGF0IGRpZSBkZXNl cnZlIGxpZmUuIENhbiB5b3UKPiBnaXZlCj4gPj4+IGl0IHRvIHRoZW0/IFRoZW4gZG8gbm90IGJl IHRvbyBlYWdlciB0byBkZWFsIG91dCBkZWF0aCBpbiBqdWRnZW1lbnQuCj4gRm9yCj4gPj4+IGV2 ZW4gdGhlIHZlcnkgd2lzZSBjYW5ub3Qgc2VlIGFsbCBlbmRzLiAtLSBHYW5kYWxmCj4gPj4+IF9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPj4+IGZmbXBl Zy1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+Pj4gZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKPiA+Pj4g aHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4gPj4+Cj4g Pj4+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+ID4+PiBmZm1w ZWctZGV2ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+ ID4+Pgo+ID4+Cj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwo+ID4gZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+ID4gZmZtcGVnLWRldmVsQGZmbXBl Zy5vcmcKPiA+IGh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZl bAo+ID4KPiA+IFRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbAo+ID4g ZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJl Ii4KPgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4g ZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdAo+IGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCj4gaHR0 cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCj4KPiBUbyB1bnN1 YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKPiBmZm1wZWctZGV2ZWwtcmVxdWVz dEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo+Cl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxp c3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3Ig ZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4K