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 C1CAE4B399 for ; Tue, 4 Jun 2024 19:25:18 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 03B4F68D6EF; Tue, 4 Jun 2024 22:25:14 +0300 (EEST) Received: from mail-lj1-f171.google.com (mail-lj1-f171.google.com [209.85.208.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 02B6968D6D6 for ; Tue, 4 Jun 2024 22:25:06 +0300 (EEST) Received: by mail-lj1-f171.google.com with SMTP id 38308e7fff4ca-2eabd22d441so18196561fa.2 for ; Tue, 04 Jun 2024 12:25:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1717529106; x=1718133906; darn=ffmpeg.org; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=6MFcuUxWXwVdW5VBRWk2lzfVtdMA72AqfgD21j91z34=; b=BLBFmdaRwTyIbh5XMnXU12krps0gWGQLSig9069c7s9TvRlQwovEMLtiu7iFytDFRj KkMS6NWstY1y/bgi/NnH/HjGCYYJwKhImu3yo/Ki9nCrtpKTyuXS4ze4L0367LAfJEUw +A5G+H5pUMX+aY6H+/cSIMPMTvqnQVNE9Q+eThDLcRjhY92B3kX9PDI/mswl7f9rTemW xTPOa2gH/mGB/AaD4lVii0WCD7YdczLbEMdeabRPb/gHULuEjMJmJ92v2uU23SrhaYqM vWw+Y7pvGrdOqC7wKKL1WdX/TkJcmWjgqwfXpKPJ9OSc2nvPEvEYqVR/27QzLavMloMv VuDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1717529106; x=1718133906; h=user-agent:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:mail-followup-to :message-id:subject:cc:to:from:date:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6MFcuUxWXwVdW5VBRWk2lzfVtdMA72AqfgD21j91z34=; b=I+q3oak3PaplM41TMniT1y3VfZkxHV/bBFK9jOnd9Rub96rL3I3JMcgusWicsMUjDu HfLNQrjS5ZWmhZtCkNiPxBVSt0iA8xieMcUiqr74uglX3tDOlbQu/FVNbsXOwlVpne7R SmcpqxG6UsZKzuXLYSHueN9UKWVMNehqurelU8vgoM5zI2U+wDE5OcL0dwtHq3W5HGsA 3LksQt5INEA0/CFXpvwHvLs2bYvctQPMEkOS3o8jWShJTOx/0L1AH2NqmM7XBe3H3CzW z6FVxBLQI6nRMj11XkZzDo9FRsIWUKO1A5aXsUsAbGeD0QKYaYd/0McIN1HvLixYAboX Y3Bw== X-Gm-Message-State: AOJu0YzSXCtJzSoi3/txvhAfKmprb+9sCjMrmQ6mSDgUSuGW9O5okuFb DpuKncTGSKkM5UlB29T2PcAylcY0pHJC/GQ5j1kn5QgUIsOAGlfGJ8MP1A== X-Google-Smtp-Source: AGHT+IFbhC4lWS4CNvJONaB5ubqKXkb8swE1AHzOQs3vt6Letqob1IoOQdZhLHgfoo2D35Zg1HJ15w== X-Received: by 2002:a2e:a78f:0:b0:2de:8697:e08b with SMTP id 38308e7fff4ca-2eac79c888dmr1871991fa.26.1717529105248; Tue, 04 Jun 2024 12:25:05 -0700 (PDT) Received: from mariano (dynamic-adsl-84-220-189-10.clienti.tiscali.it. [84.220.189.10]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a68a1dc4e8csm556689866b.225.2024.06.04.12.25.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 04 Jun 2024 12:25:04 -0700 (PDT) Received: by mariano (Postfix, from userid 1000) id B5175BFCE8; Tue, 4 Jun 2024 21:25:03 +0200 (CEST) Date: Tue, 4 Jun 2024 21:25:03 +0200 From: Stefano Sabatini To: FFmpeg development discussions and patches Message-ID: Mail-Followup-To: FFmpeg development discussions and patches , Marcus B Spencer References: <20240604163547.168748-1-marcus@marcusspencer.xyz> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20240604163547.168748-1-marcus@marcusspencer.xyz> User-Agent: Mutt/2.1.4 (2021-12-11) Subject: Re: [FFmpeg-devel] [PATCH v4] avcodec: add farbfeld encoder 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 Cc: Marcus B Spencer 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: T24gZGF0ZSBUdWVzZGF5IDIwMjQtMDYtMDQgMTE6MzU6NDYgLTA1MDAsIE1hcmN1cyBCIFNwZW5j ZXIgd3JvdGU6Cj4gZmFyYmZlbGQgaXMgYW4gdW5jb21wcmVzc2VkIGltYWdlIGZvcm1hdCB0aGF0 IGlzIGEgcGFydCBvZiBzdWNrbGVzcwo+IHRvb2xzIChodHRwczovL3Rvb2xzLnN1Y2tsZXNzLm9y ZykuCj4gCj4gSXRzIGRvY3VtZW50YXRpb24gaXMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vdG9vbHMu c3Vja2xlc3Mub3JnL2ZhcmJmZWxkLgo+IAo+IEFkZCBzdXBwb3J0IGZvciB0aGlzIGltYWdlIGZv cm1hdCBpbiBhdmNvZGVjIGFuZCB1cGRhdGUgdGhlIGltYWdlMgo+IGZvcm1hdCBhY2NvcmRpbmds eS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBNYXJjdXMgQiBTcGVuY2VyIDxtYXJjdXNAbWFyY3Vzc3Bl bmNlci54eXo+Cj4gLS0tCj4gIENoYW5nZWxvZyAgICAgICAgICAgICAgICAgfCAgMSArCj4gIGRv Yy9nZW5lcmFsX2NvbnRlbnRzLnRleGkgfCAgMiArCj4gIGxpYmF2Y29kZWMvTWFrZWZpbGUgICAg ICAgfCAgMSArCj4gIGxpYmF2Y29kZWMvYWxsY29kZWNzLmMgICAgfCAgMSArCj4gIGxpYmF2Y29k ZWMvY29kZWNfZGVzYy5jICAgfCAgNyArKysrCj4gIGxpYmF2Y29kZWMvY29kZWNfaWQuaCAgICAg fCAgMSArCj4gIGxpYmF2Y29kZWMvZmFyYmZlbGRlbmMuYyAgfCA4NCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKPiAgbGliYXZjb2RlYy92ZXJzaW9uLmggICAgICB8ICAy ICstCj4gIGxpYmF2Zm9ybWF0L2ltZzIuYyAgICAgICAgfCAgMSArCj4gIGxpYmF2Zm9ybWF0L2lt ZzJlbmMuYyAgICAgfCAgMiArLQo+ICAxMCBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygr KSwgMiBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYmF2Y29kZWMvZmFyYmZl bGRlbmMuYwo+IAo+IGRpZmYgLS1naXQgYS9DaGFuZ2Vsb2cgYi9DaGFuZ2Vsb2cKPiBpbmRleCAw M2Q2YjI5YWQ4Li5kMmI4MzFjNjIzIDEwMDY0NAo+IC0tLSBhL0NoYW5nZWxvZwo+ICsrKyBiL0No YW5nZWxvZwo+IEBAIC0xMiw2ICsxMiw3IEBAIHZlcnNpb24gPG5leHQ+Ogo+ICAtIHFzdl9wYXJh bXMgb3B0aW9uIGFkZGVkIGZvciBRU1YgZW5jb2RlcnMKPiAgLSBWVkMgZGVjb2RlciBjb21wYXRp YmxlIHdpdGggRFZCIHRlc3QgY29udGVudAo+ICAtIHhIRS1BQUMgZGVjb2Rlcgo+ICstIGZhcmJm ZWxkIGVuY29kZXIKPiAgCj4gIAo+ICB2ZXJzaW9uIDcuMDoKPiBkaWZmIC0tZ2l0IGEvZG9jL2dl bmVyYWxfY29udGVudHMudGV4aSBiL2RvYy9nZW5lcmFsX2NvbnRlbnRzLnRleGkKPiBpbmRleCBl N2NmNGY4MjM5Li4xMjlhMzI1ZWNmIDEwMDY0NAo+IC0tLSBhL2RvYy9nZW5lcmFsX2NvbnRlbnRz LnRleGkKPiArKysgYi9kb2MvZ2VuZXJhbF9jb250ZW50cy50ZXhpCj4gQEAgLTg1Myw2ICs4NTMs OCBAQCBmb2xsb3dpbmcgaW1hZ2UgZm9ybWF0cyBhcmUgc3VwcG9ydGVkOgo+ICAgICAgQHRhYiBY IFBpeE1hcCBpbWFnZSBmb3JtYXQKPiAgQGl0ZW0gWFdEICBAdGFiIFggQHRhYiBYCj4gICAgICBA dGFiIFggV2luZG93IER1bXAgaW1hZ2UgZm9ybWF0Cj4gK0BpdGVtIEZGICAgICAgICAgICBAdGFi IFggQHRhYgo+ICsgICAgQHRhYiBmYXJiZmVsZCB1bmNvbXByZXNzZWQgaW1hZ2UgZm9ybWF0Cj4g IEBlbmQgbXVsdGl0YWJsZQo+ICAKPiAgQGNvZGV7WH0gbWVhbnMgdGhhdCB0aGUgZmVhdHVyZSBp biB0aGF0IGNvbHVtbiAoZW5jb2RpbmcgLyBkZWNvZGluZykgaXMgc3VwcG9ydGVkLgo+IGRpZmYg LS1naXQgYS9saWJhdmNvZGVjL01ha2VmaWxlIGIvbGliYXZjb2RlYy9NYWtlZmlsZQo+IGluZGV4 IDhhYjQzOThiNmMuLjk2NDcyNzk0MjMgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9NYWtlZmls ZQo+ICsrKyBiL2xpYmF2Y29kZWMvTWFrZWZpbGUKPiBAQCAtMzU2LDYgKzM1Niw3IEBAIE9CSlMt JChDT05GSUdfRVNDQVBFMTMwX0RFQ09ERVIpICAgICAgICs9IGVzY2FwZTEzMC5vCj4gIE9CSlMt JChDT05GSUdfRVZSQ19ERUNPREVSKSAgICAgICAgICAgICs9IGV2cmNkZWMubyBhY2VscF92ZWN0 b3JzLm8gbHNwLm8KPiAgT0JKUy0kKENPTkZJR19FWFJfREVDT0RFUikgICAgICAgICAgICAgKz0g ZXhyLm8gZXhyZHNwLm8gaGFsZjJmbG9hdC5vCj4gIE9CSlMtJChDT05GSUdfRVhSX0VOQ09ERVIp ICAgICAgICAgICAgICs9IGV4cmVuYy5vIGZsb2F0MmhhbGYubwo+ICtPQkpTLSQoQ09ORklHX0ZB UkJGRUxEX0VOQ09ERVIpICAgICAgICArPSBmYXJiZmVsZGVuYy5vCj4gIE9CSlMtJChDT05GSUdf RkFTVEFVRElPX0RFQ09ERVIpICAgICAgICs9IGZhc3RhdWRpby5vCj4gIE9CSlMtJChDT05GSUdf RkZWMV9ERUNPREVSKSAgICAgICAgICAgICs9IGZmdjFkZWMubyBmZnYxLm8KPiAgT0JKUy0kKENP TkZJR19GRlYxX0VOQ09ERVIpICAgICAgICAgICAgKz0gZmZ2MWVuYy5vIGZmdjEubwo+IGRpZmYg LS1naXQgYS9saWJhdmNvZGVjL2FsbGNvZGVjcy5jIGIvbGliYXZjb2RlYy9hbGxjb2RlY3MuYwo+ IGluZGV4IGIxMDJhODA2OWUuLmIwZWJiNzIzOTYgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy9h bGxjb2RlY3MuYwo+ICsrKyBiL2xpYmF2Y29kZWMvYWxsY29kZWNzLmMKPiBAQCAtMTE1LDYgKzEx NSw3IEBAIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2VzY2FwZTEyNF9kZWNvZGVyOwo+ICBleHRl cm4gY29uc3QgRkZDb2RlYyBmZl9lc2NhcGUxMzBfZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZG Q29kZWMgZmZfZXhyX2VuY29kZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNvZGVjIGZmX2V4cl9kZWNv ZGVyOwo+ICtleHRlcm4gY29uc3QgRkZDb2RlYyBmZl9mYXJiZmVsZF9lbmNvZGVyOwo+ICBleHRl cm4gY29uc3QgRkZDb2RlYyBmZl9mZnYxX2VuY29kZXI7Cj4gIGV4dGVybiBjb25zdCBGRkNvZGVj IGZmX2ZmdjFfZGVjb2RlcjsKPiAgZXh0ZXJuIGNvbnN0IEZGQ29kZWMgZmZfZmZ2aHVmZl9lbmNv ZGVyOwo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYyBiL2xpYmF2Y29kZWMv Y29kZWNfZGVzYy5jCj4gaW5kZXggYTI4ZWY2ODA2MS4uMzNkYmQyY2U5NCAxMDA2NDQKPiAtLS0g YS9saWJhdmNvZGVjL2NvZGVjX2Rlc2MuYwo+ICsrKyBiL2xpYmF2Y29kZWMvY29kZWNfZGVzYy5j Cj4gQEAgLTE5NTksNiArMTk1OSwxMyBAQCBzdGF0aWMgY29uc3QgQVZDb2RlY0Rlc2NyaXB0b3Ig Y29kZWNfZGVzY3JpcHRvcnNbXSA9IHsKPiAgICAgICAgICAubG9uZ19uYW1lID0gTlVMTF9JRl9D T05GSUdfU01BTEwoIkxFQUQgTUNNUCIpLAo+ICAgICAgICAgIC5wcm9wcyAgICAgPSBBVl9DT0RF Q19QUk9QX0lOVFJBX09OTFkgfCBBVl9DT0RFQ19QUk9QX0xPU1NZLAo+ICAgICAgfSwKPiArICAg IHsKPiArICAgICAgICAuaWQgICAgICAgID0gQVZfQ09ERUNfSURfRkFSQkZFTEQsCj4gKyAgICAg ICAgLnR5cGUgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywKPiArICAgICAgICAubmFtZSAgICAg ID0gImZhcmJmZWxkIiwKPiArICAgICAgICAubG9uZ19uYW1lID0gTlVMTF9JRl9DT05GSUdfU01B TEwoImZhcmJmZWxkIHVuY29tcHJlc3NlZCBpbWFnZSIpLAo+ICsgICAgICAgIC5wcm9wcyAgICAg PSBBVl9DT0RFQ19QUk9QX0lOVFJBX09OTFkgfCBBVl9DT0RFQ19QUk9QX0xPU1NMRVNTLAo+ICsg ICAgfSwKPiAgCj4gICAgICAvKiB2YXJpb3VzIFBDTSAiY29kZWNzIiAqLwo+ICAgICAgewo+IGRp ZmYgLS1naXQgYS9saWJhdmNvZGVjL2NvZGVjX2lkLmggYi9saWJhdmNvZGVjL2NvZGVjX2lkLmgK PiBpbmRleCAwYWIxZTM0YTYxLi5kNGIwZDIzZjdlIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMv Y29kZWNfaWQuaAo+ICsrKyBiL2xpYmF2Y29kZWMvY29kZWNfaWQuaAo+IEBAIC0zMjIsNiArMzIy LDcgQEAgZW51bSBBVkNvZGVjSUQgewo+ICAgICAgQVZfQ09ERUNfSURfUlRWMSwKPiAgICAgIEFW X0NPREVDX0lEX1ZNSVgsCj4gICAgICBBVl9DT0RFQ19JRF9MRUFELAo+ICsgICAgQVZfQ09ERUNf SURfRkFSQkZFTEQsCj4gIAo+ICAgICAgLyogdmFyaW91cyBQQ00gImNvZGVjcyIgKi8KPiAgICAg IEFWX0NPREVDX0lEX0ZJUlNUX0FVRElPID0gMHgxMDAwMCwgICAgIC8vLzwgQSBkdW1teSBpZCBw b2ludGluZyBhdCB0aGUgc3RhcnQgb2YgYXVkaW8gY29kZWNzCj4gZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvZmFyYmZlbGRlbmMuYyBiL2xpYmF2Y29kZWMvZmFyYmZlbGRlbmMuYwo+IG5ldyBmaWxl IG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMC4uOTgxMGNhOGU0Zgo+IC0tLSAvZGV2L251 bGwKPiArKysgYi9saWJhdmNvZGVjL2ZhcmJmZWxkZW5jLmMKPiBAQCAtMCwwICsxLDg0IEBACj4g Ky8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAyNCBNYXJjdXMgQiBTcGVuY2VyIDxtYXJjdXNAbWFy Y3Vzc3BlbmNlci54eXo+Cj4gKyAqCj4gKyAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQs IGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKPiArICogb2Yg dGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUg4oCc U29mdHdhcmXigJ0pLCB0bwo+ICsgKiBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3Ry aWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZQo+ICsgKiByaWdodHMgdG8g dXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNl LCBhbmQvb3IKPiArICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0 IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKPiArICogZnVybmlzaGVkIHRvIGRvIHNv LCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKPiArICoKPiArICogVGhlIGFi b3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUg aW5jbHVkZWQgaW4KPiArICogYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0 aGUgU29mdHdhcmUuCj4gKyAqCj4gKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCDigJxBUyBJ U+KAnSwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUgo+ICsgKiBJTVBM SUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNI QU5UQUJJTElUWSwKPiArICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5P TklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFCj4gKyAqIEFVVEhPUlMgT1IgQ09Q WVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIK PiArICogTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBP UiBPVEhFUldJU0UsIEFSSVNJTkcKPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04g V0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ICsgKiBJTiBU SEUgU09GVFdBUkUuCj4gKyAqLwo+ICsKPiArI2luY2x1ZGUgImxpYmF2dXRpbC9pbWd1dGlscy5o Igo+ICsjaW5jbHVkZSAiY29kZWNfaW50ZXJuYWwuaCIKPiArI2luY2x1ZGUgImJ5dGVzdHJlYW0u aCIKPiArI2luY2x1ZGUgImF2Y29kZWMuaCIKPiArI2luY2x1ZGUgImVuY29kZS5oIgo+ICsKPiAr I2RlZmluZSBIRUFERVJfU0laRSAxNgo+ICsjZGVmaW5lIFBMQU5FX0NPVU5UIDQgLy8gcmVxdWly ZWQgYnkgYXZfaW1hZ2VfY29weV90b19idWZmZXIKPiArCj4gK3N0YXRpYyBpbnQgZmFyYmZlbGRf ZW5jb2RlX2ZyYW1lKEFWQ29kZWNDb250ZXh0ICpjdHgsIEFWUGFja2V0ICpwa3QsCj4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEFWRnJhbWUgKnAsIGludCAqZ290X3Bh Y2tldCkKPiArewoKPiArICAgIGludDY0X3QgcmF3X2ltZ19zaXplID0gcC0+d2lkdGggKiBwLT5o ZWlnaHQgKiA4OyAvLyA4IGJ5dGVzIHBlciBwaXhlbAoKVGhpcyBpcyBtaXNzaW5nIHRoZSBzaXpl IGNoZWNrcyBwcmV2aW91c2x5IHBlcmZvcm1lZCBpbgphdl9pbWFnZV9nZXRfYnVmZmVyX3NpemUo KS4KClByb2JhYmx5IGZvciB0aGlzIHVzZSBjYXNlIHlvdSBjYW4gc2ltcGx5IGFkZCBhbiBhdl9p bWFnZV9jaGVja19zaXplKCkKY2hlY2sgaWYgeW91IGRvbid0IHdhbnQgdG8gY2FsbCBhdl9pbWFn ZV9nZXRfYnVmZmVyX3NpemUoKS4KCj4gKyAgICBpbnQ2NF90IGJ1Zl9zaXplID0gcmF3X2ltZ19z aXplICsgSEVBREVSX1NJWkU7Cj4gKyAgICBjb25zdCB1aW50OF90ICpwbGFuZXNbUExBTkVfQ09V TlRdOwo+ICsgICAgdWludDhfdCAqYnVmOwo+ICsgICAgaW50IHJldDsKPiArCj4gKyAgICBpZiAo YnVmX3NpemUgPCAwKQo+ICsgICAgICAgIHJldHVybiBidWZfc2l6ZTsKPiArCj4gKyAgICBpZiAo KHJldCA9IGZmX2dldF9lbmNvZGVfYnVmZmVyKGN0eCwgcGt0LCBidWZfc2l6ZSwgMCkpIDwgMCkK PiArICAgICAgICByZXR1cm4gcmV0Owo+ICsKPiArICAgIGJ1ZiA9IHBrdC0+ZGF0YTsKPiArCj4g KyAgICBieXRlc3RyZWFtX3B1dF9idWZmZXIoJmJ1ZiwgImZhcmJmZWxkIiwgOCk7Cj4gKwo+ICsg ICAgYnl0ZXN0cmVhbV9wdXRfYmUzMigmYnVmLCBjdHgtPndpZHRoKTsKPiArICAgIGJ5dGVzdHJl YW1fcHV0X2JlMzIoJmJ1ZiwgY3R4LT5oZWlnaHQpOwo+ICsKCj4gKyAgICBmb3IgKGludCBpID0g MDsgaSA8IFBMQU5FX0NPVU5UOyArK2kpCj4gKyAgICAgICAgcGxhbmVzW2ldID0gcC0+ZGF0YVtp XTsKCmFnYWluLCBpcyB0aGlzIHJlYWxseSBuZWVkZWQ/IFdoYXQgaXMgd3Jvbmcgd2l0aCBwYXNz aW5nIHAtPmRhdGE/CgpbLi4uXQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcu b3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8g dW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1 ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==