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 1AEF74955E for ; Sat, 13 Apr 2024 09:38:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2B1B968D27D; Sat, 13 Apr 2024 12:38:31 +0300 (EEST) Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5AF2A68D260 for ; Sat, 13 Apr 2024 12:38:24 +0300 (EEST) Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-5700a9caee0so630376a12.2 for ; Sat, 13 Apr 2024 02:38:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1713001102; x=1713605902; darn=ffmpeg.org; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:mail-followup-to :message-id:subject:to:from:date:from:to:cc:subject:date:message-id :reply-to; bh=wiK4PFPEg31kRERwVAa/RJz+239BYpRHTINF2HB0zaU=; b=NX+lnWrld8yyfBNum0B6LXapNb2aukUuYm/LJVlSHE8rA41bcstrWLP74Sudp5atjb X9VrAwSR6ofjTqd8TvF30snMnD0tEdl52ysaVhWnIMi7n6mEBRPXK+Uiq5cYSpaHagMT 2k+ge2kUuJVZdTJShWyXCl8VXNx+SSsL8wsTqw219wpaB32jOk+tVZw9AAKOjGxIOrle phSLB3b+kT7AnsnCfE/mqZTdPXzEYviTP6ceRMNcDlI6ATZ88JrpbwW8Ls0t0q6P7QzS BZveHsyvUdEdNGm+LU1FQh8/bI2wAReNAptJFG5mPsBJM0uMwKeMQKjc8b0cf2074mLG ayVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713001102; x=1713605902; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:mail-followup-to :message-id:subject:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=wiK4PFPEg31kRERwVAa/RJz+239BYpRHTINF2HB0zaU=; b=DIPi27/loKibQXXiulbsNdEKg3B6kihr+KYEyvwXcJLJrowqVbbM/sNAhJATJzIrn9 tr1NSGSqMbRblypXrjl7WniGbC0uwtVO4SAFBuWMBNGbV5TzGz71YJ4cmKBJWaXE//4q twL2c02fyHsDTMsMPpWFxeyLgPPVpHfjAFDLWo3PjljwSMnkNDb/+2YYOV8wu/sjSD01 ELF7JPBxye2po0SXOKJBLe6+V/xsc1XWMhIL+FE/v3/6f937AlCtffvofYvMz49au96/ JmplYfsw2wznwYYzlzIpvOc1o2c9GKDnySUt/sTyc1FCXd3xuQf+ELrB49oO8U4Cgfm6 pGKA== X-Gm-Message-State: AOJu0YxmyquQT/T6qOZmLqxprmRL4ic6+0kGVdrq6kemj5uq+NzlQyiK 20+CeZLt/dTIPURJdmTvTZHgMCFunSYziOpUx1qzgN95cyY42zeoGNqK/Q== X-Google-Smtp-Source: AGHT+IGMtLiDMNkY7PQzs3CtJX0+45m9gpDTtpidQdZ/v5DaGqKRsAj2iog/Gzx2BdI1QI8NlNFhBA== X-Received: by 2002:a17:907:7244:b0:a52:33a1:7caf with SMTP id ds4-20020a170907724400b00a5233a17cafmr3592261ejc.69.1713001102358; Sat, 13 Apr 2024 02:38:22 -0700 (PDT) Received: from mariano (host-82-58-28-189.retail.telecomitalia.it. [82.58.28.189]) by smtp.gmail.com with ESMTPSA id f21-20020a170906049500b00a51c1b325e0sm2775305eja.211.2024.04.13.02.38.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 13 Apr 2024 02:38:21 -0700 (PDT) Received: by mariano (Postfix, from userid 1000) id C8C19BFCE8; Sat, 13 Apr 2024 11:38:20 +0200 (CEST) Date: Sat, 13 Apr 2024 11:38:20 +0200 From: Stefano Sabatini To: FFmpeg development discussions and patches Message-ID: Mail-Followup-To: FFmpeg development discussions and patches References: MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.1.4 (2021-12-11) Subject: Re: [FFmpeg-devel] [PATCH] avformat/httpauth.c [support both RFC 2617 and RFC 7617] 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: T24gZGF0ZSBUaHVyc2RheSAyMDI0LTA0LTExIDA3OjQ4OjE0ICswMDAwLCDvv73vv73vv73vv73v v73vv70gfCBFdWdlbmUgd3JvdGU6Cj4gLSBVcGRhdGVkIHRoZSBtYWtlX2RpZ2VzdF9hdXRoKCkg ZnVuY3Rpb24gdG8gc3VwcG9ydCBib3RoIFJGQyAyNjE3IGFuZCBSRkMgNzYxNyBkaWdlc3QgYXV0 aGVudGljYXRpb24uCj4gLSBTdXBwb3J0cyBzaGEyNTYgLCBzaGE1MTItMjU2IGFsb25nIHdpdGgg dGhlIGV4aXN0aW5nIG1kNS4gTUQ1IGFuZCBzaGEyNTYgd2VyZSB0ZXN0ZWQsIGJ1dCBzaGE1MTIt MjU2IHdhcyBub3QgdGVzdGVkIGR1ZSB0byBsYWNrIG9mIHRlc3RhYmxlIHNlcnZlci4KPiAtIEFW SGFzaENvbnRleHQgaW5zdGVhZCBvZiBBVk1ENSBzdHJ1Y3R1cmUuCj4gLSB1cGRhdGVfbWQ1X3N0 cmluZ3MoKSAtPiB1cGRhdGVfaGFzaF9zdHJpbmdzKCkuCj4gLSBUaGVyZSBhcmUgc29tZSBseW50 IGlzc3VlcyBpbiB0aGUgb2xkIGNvZGUgb2YgbWFrZV9kaWdlc3RfYXV0aCwgYnV0IHRoaXMgaXMg YSBmZWF0dXJlIHVwZGF0ZSBwYXRjaCwgc28gSSBkaWRuJ3QgZml4IGl0Lgo+IC0gbW9kaWZpZWQg dGhlIGltcGxlbWVudGF0aW9uIG9mIFJGQzc2MTYgYmFzZWQgb24gY29tbXVuaXR5IGZlZWRiYWNr Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IEV1Z2VuZS1iaXRzZW5zaW5nIDxldWdlbmVAYml0c2Vuc2lu Zy5jb20+Cj4gLS0tCj4gIGxpYmF2Zm9ybWF0L2h0dHBhdXRoLmMgfCAxMDUgKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMSBmaWxlIGNoYW5nZWQsIDU3IGluc2Vy dGlvbnMoKyksIDQ4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9saWJhdmZvcm1hdC9o dHRwYXV0aC5jIGIvbGliYXZmb3JtYXQvaHR0cGF1dGguYwo+IGluZGV4IDk3ODA5MjgzNTcuLmJh MmViZWEzYTQgMTAwNjQ0Cj4gLS0tIGEvbGliYXZmb3JtYXQvaHR0cGF1dGguYwo+ICsrKyBiL2xp YmF2Zm9ybWF0L2h0dHBhdXRoLmMKPiBAQCAtMjQsNyArMjQsNyBAQAo+ICAjaW5jbHVkZSAibGli YXZ1dGlsL2F2c3RyaW5nLmgiCj4gICNpbmNsdWRlICJpbnRlcm5hbC5oIgo+ICAjaW5jbHVkZSAi bGliYXZ1dGlsL3JhbmRvbV9zZWVkLmgiCj4gLSNpbmNsdWRlICJsaWJhdnV0aWwvbWQ1LmgiCj4g KyNpbmNsdWRlICJsaWJhdnV0aWwvaGFzaC5oIgo+ICAjaW5jbHVkZSAidXJsZGVjb2RlLmgiCj4g IAo+ICBzdGF0aWMgdm9pZCBoYW5kbGVfYmFzaWNfcGFyYW1zKEhUVFBBdXRoU3RhdGUgKnN0YXRl LCBjb25zdCBjaGFyICprZXksCj4gQEAgLTExNywzNSArMTE3LDM1IEBAIHZvaWQgZmZfaHR0cF9h dXRoX2hhbmRsZV9oZWFkZXIoSFRUUEF1dGhTdGF0ZSAqc3RhdGUsIGNvbnN0IGNoYXIgKmtleSwK PiAgICAgIH0KPiAgfQo+ICAKPiAtCj4gLXN0YXRpYyB2b2lkIHVwZGF0ZV9tZDVfc3RyaW5ncyhz dHJ1Y3QgQVZNRDUgKm1kNWN0eCwgLi4uKQo+ICsvKiBHZW5lcmF0ZSBoYXNoIHN0cmluZywgdXBk YXRlZCB0byB1c2UgQVZIYXNoQ29udGV4dCB0byBzdXBwb3J0IG90aGVyIGFsZ29yaXRobXMgKi8K PiArc3RhdGljIHZvaWQgdXBkYXRlX2hhc2hfc3RyaW5ncyhzdHJ1Y3QgQVZIYXNoQ29udGV4dCog aGFzaF9jdHgsIC4uLikKPiAgewo+ICAgICAgdmFfbGlzdCB2bDsKPiAgCj4gLSAgICB2YV9zdGFy dCh2bCwgbWQ1Y3R4KTsKPiArICAgIHZhX3N0YXJ0KHZsLCBoYXNoX2N0eCk7Cj4gICAgICB3aGls ZSAoMSkgewo+ICAgICAgICAgIGNvbnN0IGNoYXIqIHN0ciA9IHZhX2FyZyh2bCwgY29uc3QgY2hh ciopOwo+ICAgICAgICAgIGlmICghc3RyKQo+ICAgICAgICAgICAgICBicmVhazsKPiAtICAgICAg ICBhdl9tZDVfdXBkYXRlKG1kNWN0eCwgc3RyLCBzdHJsZW4oc3RyKSk7Cgo+ICsgICAgICAgIGF2 X2hhc2hfdXBkYXRlKGhhc2hfY3R4LCAoY29uc3QgdWludDhfdCopc3RyLCBzdHJsZW4oc3RyKSk7 CgpuaXQrKzogKGNvbnN0IHVpbnQ4X3QgKilzdHIKCm5vdGUgdGhlIHNwYWNlIGJlZm9yZSB0aGUg IioiCgo+ICAgICAgfQo+ICAgICAgdmFfZW5kKHZsKTsKPiAgfQo+ICAKPiAtLyogR2VuZXJhdGUg YSBkaWdlc3QgcmVwbHksIGFjY29yZGluZyB0byBSRkMgMjYxNy4gKi8KCj4gKy8qIEdlbmVyYXRl IGEgZGlnZXN0IHJlcGx5LCBhY2NvcmRpbmcgdG8gUkZDIDI2MTcuIFVwZGF0ZSB0byBzdXBwb3J0 IFJGQyA3NjE3Ki8KCm5pdDogYWNjb3JkaW5nIHRvIFJGQyAyNjE3Lzc2MTcKCj4gIHN0YXRpYyBj aGFyICptYWtlX2RpZ2VzdF9hdXRoKEhUVFBBdXRoU3RhdGUgKnN0YXRlLCBjb25zdCBjaGFyICp1 c2VybmFtZSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcGFz c3dvcmQsIGNvbnN0IGNoYXIgKnVyaSwKPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqbWV0aG9kKQo+ICB7Cj4gICAgICBEaWdlc3RQYXJhbXMgKmRpZ2VzdCA9ICZz dGF0ZS0+ZGlnZXN0X3BhcmFtczsKPiAtICAgIGludCBsZW47Cgo+ICsgICAgc2l6ZV90IGxlbjsg ICAgLy8gY2hhbmdlIGludCAtPiBzaXplX3QKCmRyb3AgdGhpcyBjb21tZW50Cgo+ICAgICAgdWlu dDMyX3QgY25vbmNlX2J1ZlsyXTsKPiAgICAgIGNoYXIgY25vbmNlWzE3XTsKPiAgICAgIGNoYXIg bmNbOV07Cj4gICAgICBpbnQgaTsKPiAtICAgIGNoYXIgQTFoYXNoWzMzXSwgQTJoYXNoWzMzXSwg cmVzcG9uc2VbMzNdOwo+IC0gICAgc3RydWN0IEFWTUQ1ICptZDVjdHg7Cj4gLSAgICB1aW50OF90 IGhhc2hbMTZdOwoKPiArICAgIGNoYXIgYTFfaGFzaFs2NV0sIGEyX2hhc2hbNjVdLCByZXNwb25z ZVs2NV07IC8vIGluY3JlYXNlIGhhc2ggc2l6ZSBmb3IgU0hBLTIKCnNhbWUgaGVyZSwgZHJvcCB0 aGUgY29tbWVudCBvciB0aGlzIHdpbGwgYmUgY29uZnVzaW5nIHdpdGhvdXQKcmVmZXJlbmNlIHRv IHRoZSBkaWZmCgo+ICsgICAgc3RydWN0IEFWSGFzaENvbnRleHQqIGhhc2hfY3R4ID0gTlVMTDsg Ly8gdXNlIEFWSGFzaENvbnRleHQgZm9yIG90aGVyIGFsZ29yaXRobSBzdXBwb3J0CgpuaXQ6IGhl cmUgYW5kIGJlbG93LCB1c2U6ClRZUEUgKlZBUgoKcmF0aGVyIHRoYW46ClRZUEUqIFZBUgoKc3R5 bGUgZm9yIGNvbnNpc3RlbmN5Cgo+ICsgICAgc2l6ZV90IGxlbl9oYXNoID0gMzM7IC8vIE1vZGlm aWFibGUgaGFzaCBsZW5ndGgsIE1ENTozMiwgU0hBLTI6NjQKPiAgICAgIGNoYXIgKmF1dGhzdHI7 Cj4gIAo+ICAgICAgZGlnZXN0LT5uYysrOwo+IEBAIC0xNTYsNTIgKzE1Niw2MSBAQCBzdGF0aWMg Y2hhciAqbWFrZV9kaWdlc3RfYXV0aChIVFRQQXV0aFN0YXRlICpzdGF0ZSwgY29uc3QgY2hhciAq dXNlcm5hbWUsCj4gICAgICAgICAgY25vbmNlX2J1ZltpXSA9IGF2X2dldF9yYW5kb21fc2VlZCgp Owo+ICAgICAgZmZfZGF0YV90b19oZXgoY25vbmNlLCAoY29uc3QgdWludDhfdCopIGNub25jZV9i dWYsIHNpemVvZihjbm9uY2VfYnVmKSwgMSk7Cj4gIAo+IC0gICAgbWQ1Y3R4ID0gYXZfbWQ1X2Fs bG9jKCk7Cj4gLSAgICBpZiAoIW1kNWN0eCkKPiAtICAgICAgICByZXR1cm4gTlVMTDsKPiAtCj4g LSAgICBhdl9tZDVfaW5pdChtZDVjdHgpOwo+IC0gICAgdXBkYXRlX21kNV9zdHJpbmdzKG1kNWN0 eCwgdXNlcm5hbWUsICI6Iiwgc3RhdGUtPnJlYWxtLCAiOiIsIHBhc3N3b3JkLCBOVUxMKTsKPiAt ICAgIGF2X21kNV9maW5hbChtZDVjdHgsIGhhc2gpOwo+IC0gICAgZmZfZGF0YV90b19oZXgoQTFo YXNoLCBoYXNoLCAxNiwgMSk7Cj4gLQo+IC0gICAgaWYgKCFzdHJjbXAoZGlnZXN0LT5hbGdvcml0 aG0sICIiKSB8fCAhc3RyY21wKGRpZ2VzdC0+YWxnb3JpdGhtLCAiTUQ1IikpIHsKPiAtICAgIH0g ZWxzZSBpZiAoIXN0cmNtcChkaWdlc3QtPmFsZ29yaXRobSwgIk1ENS1zZXNzIikpIHsKPiAtICAg ICAgICBhdl9tZDVfaW5pdChtZDVjdHgpOwo+IC0gICAgICAgIHVwZGF0ZV9tZDVfc3RyaW5ncyht ZDVjdHgsIEExaGFzaCwgIjoiLCBkaWdlc3QtPm5vbmNlLCAiOiIsIGNub25jZSwgTlVMTCk7Cj4g LSAgICAgICAgYXZfbWQ1X2ZpbmFsKG1kNWN0eCwgaGFzaCk7Cj4gLSAgICAgICAgZmZfZGF0YV90 b19oZXgoQTFoYXNoLCBoYXNoLCAxNiwgMSk7Cj4gLSAgICB9IGVsc2Ugewo+IC0gICAgICAgIC8q IFVuc3VwcG9ydGVkIGFsZ29yaXRobSAqLwo+IC0gICAgICAgIGF2X2ZyZWUobWQ1Y3R4KTsKPiAr ICAgIC8qIEdlbmVyYXRlIGhhc2ggY29udGV4dCBieSBhbGdvcml0aG0uICovCj4gKyAgICBjb25z dCBjaGFyKiBhbGdvcml0aG0gPSBkaWdlc3QtPmFsZ29yaXRobTsKPiArICAgIGNvbnN0IGNoYXIq IGhhc2hpbmdfYWxnb3JpdGhtOwo+ICsgICAgaWYgKCEqYWxnb3JpdGhtKSB7Cj4gKyAgICAgICAg YWxnb3JpdGhtID0gIk1ENSI7ICAvLyBpZiBlbXB0eSwgdXNlIE1ENSBhcyBEZWZhdWx0IAo+ICsg ICAgICAgIGhhc2hpbmdfYWxnb3JpdGhtID0gIk1ENSI7Cgo+ICsgICAgfQoKPiArICAgIGVsc2Ug aWYgKGF2X3N0cmlzdHIoYWxnb3JpdGhtLCAibWQ1IikgfHwgYXZfc3RyaXN0cihhbGdvcml0aG0s ICJNRDUiKSkgewoKdGhpcyBzaG91bGQgYmUgY2FzZS1pbnNlbnNpdGl2ZSBzbyB5b3UgY2FuIHNr aXAgb25lIGNoZWNrCgphbHNvIEkgd29uZGVyIGlmIHRoaXMgc2hvdWxkIGJlIGEgc3RyY21wLCBm b3IgZXhhbXBsZSBjYW4KaXQgaGFwcGVuIHRvIGhhdmUgImZvby1tZDUtYmFyIiBhbmQgc2hvdWxk IHRoZSBhbGdvcml0aG0KYmUgdG9sZXJhbnQgaW4gc3VjaCBjYXNlcz8KCnN0eWxlIG5pdDogaGVy ZSBhbmQgYmVsb3csIHB1dCB7IGFuZCBlbHNlIG9uIHRoZSBzYW1lIGxpbmUKfSBlbHNlIC4uLiB7 Cgo+ICsgICAgICAgIGhhc2hpbmdfYWxnb3JpdGhtID0gIk1ENSI7Cj4gKyAgICB9Cj4gKyAgICBl bHNlIGlmIChhdl9zdHJpc3RyKGFsZ29yaXRobSwgInNoYTI1NiIpIHx8IGF2X3N0cmlzdHIoYWxn b3JpdGhtLCAic2hhLTI1NiIpKSB7Cj4gKyAgICAgICAgaGFzaGluZ19hbGdvcml0aG0gPSAiU0hB MjU2IjsKPiArICAgICAgICBsZW5faGFzaCA9IDY1OyAvLyBTSEEtMjogNjQgY2hhcmFjdGVycy4K PiArICAgIH0KPiArICAgIGVsc2UgaWYgKGF2X3N0cmlzdHIoYWxnb3JpdGhtLCAic2hhNTEyLTI1 NiIpIHx8IGF2X3N0cmlzdHIoYWxnb3JpdGhtLCAic2hhLTUxMi0yNTYiKSkgewo+ICsgICAgICAg IGhhc2hpbmdfYWxnb3JpdGhtID0gIlNIQTUxMl8yNTYiOwo+ICsgICAgICAgIGxlbl9oYXNoID0g NjU7IC8vIFNIQS0yOiA2NCBjaGFyYWN0ZXJzLgo+ICsgICAgfQo+ICsgICAgZWxzZSB7IC8vIFVu c3VwcG9ydGVkIGFsZ29yaXRobQo+ICAgICAgICAgIHJldHVybiBOVUxMOwo+ICAgICAgfQo+ICAK PiAtICAgIGF2X21kNV9pbml0KG1kNWN0eCk7Cj4gLSAgICB1cGRhdGVfbWQ1X3N0cmluZ3MobWQ1 Y3R4LCBtZXRob2QsICI6IiwgdXJpLCBOVUxMKTsKPiAtICAgIGF2X21kNV9maW5hbChtZDVjdHgs IGhhc2gpOwo+IC0gICAgZmZfZGF0YV90b19oZXgoQTJoYXNoLCBoYXNoLCAxNiwgMSk7Cj4gKyAg ICBpbnQgcmV0ID0gYXZfaGFzaF9hbGxvYygmaGFzaF9jdHgsIGhhc2hpbmdfYWxnb3JpdGhtKTsK PiArICAgIGlmIChyZXQgPCAwKQo+ICsgICAgICAgIHJldHVybiBOVUxMOwo+ICAKPiAtICAgIGF2 X21kNV9pbml0KG1kNWN0eCk7Cj4gLSAgICB1cGRhdGVfbWQ1X3N0cmluZ3MobWQ1Y3R4LCBBMWhh c2gsICI6IiwgZGlnZXN0LT5ub25jZSwgTlVMTCk7Cj4gLSAgICBpZiAoIXN0cmNtcChkaWdlc3Qt PnFvcCwgImF1dGgiKSB8fCAhc3RyY21wKGRpZ2VzdC0+cW9wLCAiYXV0aC1pbnQiKSkgewo+IC0g ICAgICAgIHVwZGF0ZV9tZDVfc3RyaW5ncyhtZDVjdHgsICI6IiwgbmMsICI6IiwgY25vbmNlLCAi OiIsIGRpZ2VzdC0+cW9wLCBOVUxMKTsKPiArICAgIC8qIGExIGhhc2ggY2FsY3VsYXRpb24gKi8K PiArICAgIGF2X2hhc2hfaW5pdChoYXNoX2N0eCk7Cj4gKyAgICB1cGRhdGVfaGFzaF9zdHJpbmdz KGhhc2hfY3R4LCB1c2VybmFtZSwgIjoiLCBzdGF0ZS0+cmVhbG0sICI6IiwgcGFzc3dvcmQsIE5V TEwpOwo+ICsgICAgaWYgKGF2X3N0cmlzdHIoYWxnb3JpdGhtLCAiLXNlc3MiKSkgewo+ICsgICAg ICAgIHVwZGF0ZV9oYXNoX3N0cmluZ3MoaGFzaF9jdHgsICI6IiwgZGlnZXN0LT5ub25jZSwgIjoi LCBjbm9uY2UsIE5VTEwpOwo+ICAgICAgfQo+IC0gICAgdXBkYXRlX21kNV9zdHJpbmdzKG1kNWN0 eCwgIjoiLCBBMmhhc2gsIE5VTEwpOwo+IC0gICAgYXZfbWQ1X2ZpbmFsKG1kNWN0eCwgaGFzaCk7 Cj4gLSAgICBmZl9kYXRhX3RvX2hleChyZXNwb25zZSwgaGFzaCwgMTYsIDEpOwo+IC0KPiAtICAg IGF2X2ZyZWUobWQ1Y3R4KTsKPiAtCj4gLSAgICBpZiAoIXN0cmNtcChkaWdlc3QtPnFvcCwgIiIp IHx8ICFzdHJjbXAoZGlnZXN0LT5xb3AsICJhdXRoIikpIHsKPiAtICAgIH0gZWxzZSBpZiAoIXN0 cmNtcChkaWdlc3QtPnFvcCwgImF1dGgtaW50IikpIHsKPiAtICAgICAgICAvKiBxb3A9YXV0aC1p bnQgbm90IHN1cHBvcnRlZCAqLwo+IC0gICAgICAgIHJldHVybiBOVUxMOwo+IC0gICAgfSBlbHNl IHsKPiAtICAgICAgICAvKiBVbnN1cHBvcnRlZCBxb3AgdmFsdWUuICovCj4gKyAgICBhdl9oYXNo X2ZpbmFsX2hleChoYXNoX2N0eCwgYTFfaGFzaCwgbGVuX2hhc2gpOwo+ICsKPiArICAgIC8qIGEy IGhhc2ggY2FsY3VsYXRpb24gKi8KPiArICAgIGF2X2hhc2hfaW5pdChoYXNoX2N0eCk7Cj4gKyAg ICB1cGRhdGVfaGFzaF9zdHJpbmdzKGhhc2hfY3R4LCBtZXRob2QsICI6IiwgdXJpLCBOVUxMKTsK PiArICAgIGF2X2hhc2hfZmluYWxfaGV4KGhhc2hfY3R4LCBhMl9oYXNoLCBsZW5faGFzaCk7Cj4g KyAgICAKPiArICAgIC8qIHJlc3BvbnNlIGhhc2ggY2FsY3VsYXRpb24gKi8KPiArICAgIGF2X2hh c2hfaW5pdChoYXNoX2N0eCk7Cj4gKyAgICB1cGRhdGVfaGFzaF9zdHJpbmdzKGhhc2hfY3R4LCBh MV9oYXNoLCAiOiIsIGRpZ2VzdC0+bm9uY2UsIE5VTEwpOwo+ICsgICAgaWYgKCFzdHJjbXAoZGln ZXN0LT5xb3AsICJhdXRoIikpIHsKPiArICAgICAgICB1cGRhdGVfaGFzaF9zdHJpbmdzKGhhc2hf Y3R4LCAiOiIsIG5jLCAiOiIsIGNub25jZSwgIjoiLCBkaWdlc3QtPnFvcCwgTlVMTCk7Cj4gKyAg ICB9Cj4gKyAgICBlbHNlIGlmICghc3RyY21wKGRpZ2VzdC0+cW9wLCAiYXV0aC1pbnQiKSkgeyAv LyB1bnN1cHBvcnRlZAo+ICsgICAgICAgIGF2X2hhc2hfZnJlZXAoJmhhc2hfY3R4KTsKPiAgICAg ICAgICByZXR1cm4gTlVMTDsKPiAgICAgIH0KCj4gKyAgICB1cGRhdGVfaGFzaF9zdHJpbmdzKGhh c2hfY3R4LCI6IiwgYTJfaGFzaCwgTlVMTCk7CgpuaXQrKys6IGhhc2hfY3R4LF8iOiIKClsuLi5d CgpTaG91bGQgYmUgZ29vZCBvdGhlcndpc2UuCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxpc3QKZmZtcGVnLWRldmVs QGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlzdGluZm8vZmZtcGVnLWRl dmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwKZmZtcGVnLWRl dmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4K