From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTPS id DFE82491E4 for ; Mon, 19 May 2025 17:40:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 881C168D8B9; Mon, 19 May 2025 20:40:39 +0300 (EEST) Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id 0E9B568D132 for ; Mon, 19 May 2025 20:40:33 +0300 (EEST) Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-22e09f57ed4so59077945ad.0 for ; Mon, 19 May 2025 10:40:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1747676430; x=1748281230; darn=ffmpeg.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=WPAUfmhsRxic5UrV81jV7rHOqQkBymUs4qK4FVcsNPo=; b=ag15dC5Qx2X57gqszbI30AIOK/DwAyo8Mjb6J3CTqAqlC6PMlX4rOX1nQSbZujmt6c GgPDTJCG1Z5JmZRk9SB3uiMzMb2v2QzDqqKB9yARXhv8GLneFgU0v/zaiCnszfQ+xEN6 8CEWrVZjTv2mdNJPtsWevu16eF2EGCXg56snde8iEZ3eIInBOWpPSjpOdz895KbhVcsw PcJUwx/1T3eOFks4PcL/JX4ilOQE1MIfy54wwSJxd+rhWTsUhxLiF1FfLRDGCkaRrp1E UP7cKaFtU2vciUJQtG2oT3PHjDSUaAx+y2i/GHHzpSNZ3Quw8uxlKLVDklEY+MRYR+Rx 7qNQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1747676430; x=1748281230; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WPAUfmhsRxic5UrV81jV7rHOqQkBymUs4qK4FVcsNPo=; b=evKtTKx5pS+BGruFiGPGiBzIwGiH0noaQeeD5Ch/LV1owLdKrnOmjdOb/Rsm5ehUFZ T52WpDDR7Mxoma5PkMJSy1krgKwyRfcO5SVn8d3q1+/aul+279oLFVdGABNd2kmaMNoU sFplN5et+GhcQqIxFAw9sJtfBxFt4RWHd39g5YgCaMyNPdaZJPcST9QOzrU3aKHnxTqP EijWX6uXMAr3dBRrVtPI7YTzlYVdHpzlv01HC97mJOQWap+O1hrdiWusWAzX9yfuhyP2 CZngecZYOUm6YOrWHY/D88aGWVsUvIcojCEh1JAPsho+lm7PGiFc4OaiMVW09tfmzwht 9Lsg== X-Gm-Message-State: AOJu0YwYebVOxBYgqoQQ9zHUPa0s3C/xV9cElJWK0CXEt3AaPnfzhBQe rxA/mB2WSGEIRQl2uD4eqOL8YgrDCw32064L60Q70Lj4fvjpxLTSMXHhzI+knWTMNXLPinmnav8 OP7z96Ph85Kr9VItqD9hmEHtz6WjIHSgSUO5U X-Gm-Gg: ASbGncv47TST30pEJmVaZ4o2mNjuYcz1ugBdseX29qTzfzRgL9vvkTTPaxpog3cQuGD 5Ca2Y68A//UdHiY1xTwmkr+URkPbB7b05mdsqui35VaJvW0oRe+2Y6NY+to93IhDCqcmoJ9mcbc CkPfO0RX3uTpoh7wQGP2NmqZbPDpsFzcJRgqeMdV2qISj8rpmJ6Q04VaYaFHZF4mg3Mg== X-Google-Smtp-Source: AGHT+IEylET+IKVAghIbbhkGzNOzQru2RNb7midoxYuwZ8b5OjWkYCYw3l2tlPjc5hGbDAdsoipLnd1SssYqfkuWuew= X-Received: by 2002:a17:903:445:b0:231:ecd5:e734 with SMTP id d9443c01a7336-231ecd5ea70mr124583765ad.22.1747676430403; Mon, 19 May 2025 10:40:30 -0700 (PDT) MIME-Version: 1.0 References: <20250517204907.482987-1-47210458+raphaelthegreat@users.noreply.github.com> <20250517204907.482987-4-47210458+raphaelthegreat@users.noreply.github.com> In-Reply-To: From: IndecisiveTurtle Date: Mon, 19 May 2025 20:40:19 +0300 X-Gm-Features: AX0GCFtsZH9uV5WG5vUT6oeX0A5b1P__HmHDZ7EpiQLP_nLSqacaXfVwin_jYW0 Message-ID: To: FFmpeg development discussions and patches Subject: Re: [FFmpeg-devel] [PATCH v4 4/4] lavc: implement a Vulkan-based VC-2 encoder Implements a Vulkan based dirac encoder. Supports Haar and Legall wavelets and should work with all wavelet depths. 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: PiBUaGUgbGFzdCBpdGVyYXRpb24gb2YgdGhpcyBwYXRjaHNldCBjbGFpbWVkIDIuNW0gZm9yIHRo ZSBzb2Z0d2FyZQo+IGVuY29kZXIgdnMgMzBzIGhhcmR3YXJlLiBUaGUgc29mdHdhcmUgcGVyZm9y bWFuY2UgaW1wcm92ZW1lbnQgc2VlbXMKPiBzbWFsbCBjb21wYXJlZCB0byB3aGF0IEkgZXhwZWN0 ZWQsIHlldCBJIGFtIHN1cnByaXNlZCBhYm91dCB0aGUgaGFyZHdhcmUKPiBzbG93ZG93biAocHJl c3VtaW5nIGl0IHdhcyB0aGUgc2FtZSBmaWxlKS4gV2FzIHRoZSBzd2l0Y2ggdG8gdGhlIGx1dAo+ IGJhc2VkIHdyaXRpbmcgb2YgY29kZXMgbm90IGJlbmVmaWNpYWw/CgpJdCBpcyBub3QgdGhlIHNh bWUgdmlkZW8gZmlsZS4gVGhlIGxhc3QgZGVzY3JpcHRpb24gd2FzIGZvciBhIDEwODBwCnZpZGVv LCB0aGlzIG9uZSBpcyBiZXR3ZWVuIDE0NDBwIGFuZCA0Sy4gSSB3YW50ZWQgdG8gcHV0IG1vcmUg c3RyZXNzCm9uIHRoZSBlbmNvZGVyIHRvIHRlc3QgbmV3IHBlcmZvcm1hbmNlIGdhaW5zLgoKPiBZ b3UgZG9uJ3QgYWxsb3cgdGhlIDlfNyB3YXZlbGV0IGhlcmUgKGludGVudGlvbmFsbHk/KQpZZXMg aXQgaXMgbm90IGltcGxlbWVudGVkIGluIHZ1bGthbiBlbmNvZGVyLiBUaGlzIGlzIGFsc28gd2h5 IEkKY291bGRuJ3QgdW5pZnkgdGhpcyBhcnJheSBhcyB5b3UgbWVudGlvbmVkIGJlZm9yZS4KCs6j z4TOuc+CIM6UzrXPhSAxOSDOnM6xzpAgMjAyNSDPg8+EzrnPgiA4OjA54oCvzrwuzrwuLCDOvy/O tyBBbmRyZWFzIFJoZWluaGFyZHQKPGFuZHJlYXMucmhlaW5oYXJkdEBvdXRsb29rLmNvbT4gzq3O s8+BzrHPiM61Ogo+Cj4gSW5kZWNpc2l2ZVR1cnRsZToKPiA+IEZyb206IEluZGVjaXNpdmVUdXJ0 bGUgPGdlb3N0ZXIzZEBnbWFpbC5jb20+Cj4gPgo+ID4gUGVyZm9ybWFuY2Ugd2lzZSwgZW5jb2Rp bmcgYSAzNDQweDE0NDAgMS1taW51dGUgdmlkZW8gaXMgcGVyZm9ybWVkIGluIGFib3V0IDIuNCBt aW51dGVzIHdpdGggdGhlIGNwdSBlbmNvZGVyIHJ1bm5pbmcgb24gbXkgUnl6ZW4gNSA0NjAwSCwg d2hpbGUgaXQgdGFrZXMgYWJvdXQgMS4zIG1pbnV0ZXMgb24gbXkgTlZJRElBIEdUWCAxNjUwCj4K PiBUaGUgbGFzdCBpdGVyYXRpb24gb2YgdGhpcyBwYXRjaHNldCBjbGFpbWVkIDIuNW0gZm9yIHRo ZSBzb2Z0d2FyZQo+IGVuY29kZXIgdnMgMzBzIGhhcmR3YXJlLiBUaGUgc29mdHdhcmUgcGVyZm9y bWFuY2UgaW1wcm92ZW1lbnQgc2VlbXMKPiBzbWFsbCBjb21wYXJlZCB0byB3aGF0IEkgZXhwZWN0 ZWQsIHlldCBJIGFtIHN1cnByaXNlZCBhYm91dCB0aGUgaGFyZHdhcmUKPiBzbG93ZG93biAocHJl c3VtaW5nIGl0IHdhcyB0aGUgc2FtZSBmaWxlKS4gV2FzIHRoZSBzd2l0Y2ggdG8gdGhlIGx1dAo+ IGJhc2VkIHdyaXRpbmcgb2YgY29kZXMgbm90IGJlbmVmaWNpYWw/Cj4KPiA+Cj4gPiBIYWFyIHNo YWRlciBoYXMgYSBzdWJncm91cCBvcHRpbWl6ZWQgdmFyaWFudCB0aGF0IGFwcGxpZXMgd2hlbiBj b25maWd1cmVkIHdhdmVsZXQgZGVwdGggYWxsb3dzIGl0Cj4gPiAtLS0KPiA+ICBjb25maWd1cmUg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCj4gPiAgbGliYXZjb2Rl Yy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwo+ID4gIGxpYmF2Y29k ZWMvYWxsY29kZWNzLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKPiA+ICBsaWJhdmNv ZGVjL3ZjMmVuY192dWxrYW4uYyAgICAgICAgICAgICAgICAgICB8IDc3NSArKysrKysrKysrKysr KysrKysrCj4gPiAgbGliYXZjb2RlYy92dWxrYW4vdmMyX2R3dF9oYWFyLmNvbXAgICAgICAgICAg fCAgODIgKysKPiA+ICBsaWJhdmNvZGVjL3Z1bGthbi92YzJfZHd0X2hhYXJfc3ViZ3JvdXAuY29t cCB8ICA3NSArKwo+ID4gIGxpYmF2Y29kZWMvdnVsa2FuL3ZjMl9kd3RfaG9yX2xlZ2FsbC5jb21w ICAgIHwgIDgyICsrCj4gPiAgbGliYXZjb2RlYy92dWxrYW4vdmMyX2R3dF91cGxvYWQuY29tcCAg ICAgICAgfCAgOTYgKysrCj4gPiAgbGliYXZjb2RlYy92dWxrYW4vdmMyX2R3dF92ZXJfbGVnYWxs LmNvbXAgICAgfCAgNzggKysKPiA+ICBsaWJhdmNvZGVjL3Z1bGthbi92YzJfZW5jb2RlLmNvbXAg ICAgICAgICAgICB8IDE1OSArKysrCj4gPiAgbGliYXZjb2RlYy92dWxrYW4vdmMyX3NsaWNlX3Np emVzLmNvbXAgICAgICAgfCAxNzAgKysrKwo+ID4gIDExIGZpbGVzIGNoYW5nZWQsIDE1MjIgaW5z ZXJ0aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3ZjMmVuY192dWxr YW4uYwo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1bGthbi92YzJfZHd0X2hh YXIuY29tcAo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1bGthbi92YzJfZHd0 X2hhYXJfc3ViZ3JvdXAuY29tcAo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1 bGthbi92YzJfZHd0X2hvcl9sZWdhbGwuY29tcAo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJh dmNvZGVjL3Z1bGthbi92YzJfZHd0X3VwbG9hZC5jb21wCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0 IGxpYmF2Y29kZWMvdnVsa2FuL3ZjMl9kd3RfdmVyX2xlZ2FsbC5jb21wCj4gPiAgY3JlYXRlIG1v ZGUgMTAwNjQ0IGxpYmF2Y29kZWMvdnVsa2FuL3ZjMl9lbmNvZGUuY29tcAo+ID4gIGNyZWF0ZSBt b2RlIDEwMDY0NCBsaWJhdmNvZGVjL3Z1bGthbi92YzJfc2xpY2Vfc2l6ZXMuY29tcAo+ID4KPgo+ Cj4gPiArI2RlZmluZSBWQzJFTkNfRkxBR1MgKEFWX09QVF9GTEFHX0VOQ09ESU5HX1BBUkFNIHwg QVZfT1BUX0ZMQUdfVklERU9fUEFSQU0pCj4gPiArc3RhdGljIGNvbnN0IEFWT3B0aW9uIHZjMmVu Y19vcHRpb25zW10gPSB7Cj4gPiArICAgIHsidG9sZXJhbmNlIiwgICAgICJNYXggdW5kZXJzaG9v dCBpbiBwZXJjZW50Iiwgb2Zmc2V0b2YoVkMyRW5jQ29udGV4dCwgdG9sZXJhbmNlKSwgQVZfT1BU X1RZUEVfRE9VQkxFLCB7LmRibCA9IDUuMGZ9LCAwLjBmLCA0NS4wZiwgVkMyRU5DX0ZMQUdTLCAu dW5pdCA9ICJ0b2xlcmFuY2UifSwKPiA+ICsgICAgeyJzbGljZV93aWR0aCIsICAgIlNsaWNlIHdp ZHRoIiwgIG9mZnNldG9mKFZDMkVuY0NvbnRleHQsIHNsaWNlX3dpZHRoKSwgQVZfT1BUX1RZUEVf SU5ULCB7Lmk2NCA9IDMyfSwgMzIsIDEwMjQsIFZDMkVOQ19GTEFHUywgLnVuaXQgPSAic2xpY2Vf d2lkdGgifSwKPiA+ICsgICAgeyJzbGljZV9oZWlnaHQiLCAgIlNsaWNlIGhlaWdodCIsIG9mZnNl dG9mKFZDMkVuY0NvbnRleHQsIHNsaWNlX2hlaWdodCksIEFWX09QVF9UWVBFX0lOVCwgey5pNjQg PSAxNn0sIDgsIDEwMjQsIFZDMkVOQ19GTEFHUywgLnVuaXQgPSAic2xpY2VfaGVpZ2h0In0sCj4g PiArICAgIHsid2F2ZWxldF9kZXB0aCIsICJUcmFuc2Zvcm0gZGVwdGgiLCBvZmZzZXRvZihWQzJF bmNDb250ZXh0LCB3YXZlbGV0X2RlcHRoKSwgQVZfT1BUX1RZUEVfSU5ULCB7Lmk2NCA9IDR9LCAx LCA1LCBWQzJFTkNfRkxBR1MsIC51bml0ID0gIndhdmVsZXRfZGVwdGgifSwKPiA+ICsgICAgeyJ3 YXZlbGV0X3R5cGUiLCAgIlRyYW5zZm9ybSB0eXBlIiwgIG9mZnNldG9mKFZDMkVuY0NvbnRleHQs IHdhdmVsZXRfaWR4KSwgQVZfT1BUX1RZUEVfSU5ULCB7Lmk2NCA9IFZDMl9UUkFOU0ZPUk1fNV8z fSwgMCwgVkMyX1RSQU5TRk9STVNfTkIsIFZDMkVOQ19GTEFHUywgLnVuaXQgPSAid2F2ZWxldF9p ZHgifSwKPgo+IFlvdSBkb24ndCBhbGxvdyB0aGUgOV83IHdhdmVsZXQgaGVyZSAoaW50ZW50aW9u YWxseT8pLCBidXQgdGhlbiB5b3UKPiBzaG91bGQgcmVzdHJpY3QgdGhlIHJhbmdlIHRvIGRpc2Fs bG93IHRoZSB2YWx1ZSAwICg9PSBWQzJfVFJBTlNGT1JNXzlfNykuCj4KPiA+ICsgICAgICAgIHsi NV8zIiwgICAgICAgICAgIkxlR2FsbCAoNSwzKSIsICAgICAgICAgICAgMCwgQVZfT1BUX1RZUEVf Q09OU1QsIHsuaTY0ID0gVkMyX1RSQU5TRk9STV81XzN9LCAgICBJTlRfTUlOLCBJTlRfTUFYLCBW QzJFTkNfRkxBR1MsIC51bml0ID0gIndhdmVsZXRfaWR4In0sCj4gPiArICAgICAgICB7ImhhYXIi LCAgICAgICAgICJIYWFyICh3aXRoIHNoaWZ0KSIsICAgICAgIDAsIEFWX09QVF9UWVBFX0NPTlNU LCB7Lmk2NCA9IFZDMl9UUkFOU0ZPUk1fSEFBUl9TfSwgSU5UX01JTiwgSU5UX01BWCwgVkMyRU5D X0ZMQUdTLCAudW5pdCA9ICJ3YXZlbGV0X2lkeCJ9LAo+ID4gKyAgICAgICAgeyJoYWFyX25vc2hp ZnQiLCAiSGFhciAod2l0aG91dCBzaGlmdCkiLCAgICAwLCBBVl9PUFRfVFlQRV9DT05TVCwgey5p NjQgPSBWQzJfVFJBTlNGT1JNX0hBQVJ9LCAgIElOVF9NSU4sIElOVF9NQVgsIFZDMkVOQ19GTEFH UywgLnVuaXQgPSAid2F2ZWxldF9pZHgifSwKPiA+ICsgICAgeyJxbSIsICJDdXN0b20gcXVhbnRp emF0aW9uIG1hdHJpeCIsIG9mZnNldG9mKFZDMkVuY0NvbnRleHQsIHF1YW50X21hdHJpeCksIEFW X09QVF9UWVBFX0lOVCwgey5pNjQgPSBWQzJfUU1fREVGfSwgMCwgVkMyX1FNX05CLCBWQzJFTkNf RkxBR1MsIC51bml0ID0gInF1YW50X21hdHJpeCJ9LAo+ID4gKyAgICAgICAgeyJkZWZhdWx0Iiwg ICAiRGVmYXVsdCBmcm9tIHRoZSBzcGVjaWZpY2F0aW9ucyIsIDAsIEFWX09QVF9UWVBFX0NPTlNU LCB7Lmk2NCA9IFZDMl9RTV9ERUZ9LCBJTlRfTUlOLCBJTlRfTUFYLCBWQzJFTkNfRkxBR1MsIC51 bml0ID0gInF1YW50X21hdHJpeCJ9LAo+ID4gKyAgICAgICAgeyJjb2xvciIsICAgICAiUHJldmVu dHMgbG93IGJpdHJhdGUgZGlzY29sb3JhdGlvbiIsIDAsIEFWX09QVF9UWVBFX0NPTlNULCB7Lmk2 NCA9IFZDMl9RTV9DT0x9LCBJTlRfTUlOLCBJTlRfTUFYLCBWQzJFTkNfRkxBR1MsIC51bml0ID0g InF1YW50X21hdHJpeCJ9LAo+ID4gKyAgICAgICAgeyJmbGF0IiwgICAgICAiT3B0aW1pemUgZm9y IFBTTlIiLCAwLCBBVl9PUFRfVFlQRV9DT05TVCwgey5pNjQgPSBWQzJfUU1fRkxBVH0sIElOVF9N SU4sIElOVF9NQVgsIFZDMkVOQ19GTEFHUywgLnVuaXQgPSAicXVhbnRfbWF0cml4In0sCj4gPiAr ICAgIHtOVUxMfQo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IEFWQ2xhc3MgdmMyZW5j X2NsYXNzID0gewo+ID4gKyAgICAuY2xhc3NfbmFtZSA9ICJ2YzJfdnVsa2FuX2VuY29kZXIiLAo+ ID4gKyAgICAuY2F0ZWdvcnkgPSBBVl9DTEFTU19DQVRFR09SWV9FTkNPREVSLAo+ID4gKyAgICAu b3B0aW9uID0gdmMyZW5jX29wdGlvbnMsCj4gPiArICAgIC5pdGVtX25hbWUgPSBhdl9kZWZhdWx0 X2l0ZW1fbmFtZSwKPiA+ICsgICAgLnZlcnNpb24gPSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQKPiA+ ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyBjb25zdCBGRkNvZGVjRGVmYXVsdCB2YzJlbmNfZGVmYXVs dHNbXSA9IHsKPiA+ICsgICAgeyAiYiIsICAgICAgICAgICAgICAiNjAwMDAwMDAwIiAgIH0sCj4g PiArICAgIHsgTlVMTCB9LAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IEFWQ29kZWNI V0NvbmZpZ0ludGVybmFsICpjb25zdCBmZl92YzJfaHdfY29uZmlnc1tdID0gewo+Cj4gU2hvdWxk IG5vdCB1c2UgZmZfIHByZWZpeC4KPgo+Cj4gPiArICAgIEhXX0NPTkZJR19FTkNPREVSX0ZSQU1F UyhWVUxLQU4sIFZVTEtBTiksCj4gPiArICAgIEhXX0NPTkZJR19FTkNPREVSX0RFVklDRShOT05F LCAgVlVMS0FOKSwKPiA+ICsgICAgTlVMTCwKPiA+ICt9Owo+ID4gKwo+ID4gK2NvbnN0IEZGQ29k ZWMgZmZfdmMyX3Z1bGthbl9lbmNvZGVyID0gewo+ID4gKyAgICAucC5uYW1lICAgICAgICAgPSAi dmMyX3Z1bGthbiIsCj4gPiArICAgIENPREVDX0xPTkdfTkFNRSgiU01QVEUgVkMtMiIpLAo+ID4g KyAgICAucC50eXBlICAgICAgICAgPSBBVk1FRElBX1RZUEVfVklERU8sCj4gPiArICAgIC5wLmlk ICAgICAgICAgICA9IEFWX0NPREVDX0lEX0RJUkFDLAo+ID4gKyAgICAucC5jYXBhYmlsaXRpZXMg PSBBVl9DT0RFQ19DQVBfSEFSRFdBUkUsCj4gPiArICAgIC5jYXBzX2ludGVybmFsICA9IEZGX0NP REVDX0NBUF9JTklUX0NMRUFOVVAsCj4gPiArICAgIC5wcml2X2RhdGFfc2l6ZSA9IHNpemVvZihW QzJFbmNWdWxrYW5Db250ZXh0KSwKPiA+ICsgICAgLmluaXQgICAgICAgICAgID0gdmMyX2VuY29k ZV9pbml0LAo+ID4gKyAgICAuY2xvc2UgICAgICAgICAgPSB2YzJfZW5jb2RlX2VuZCwKPiA+ICsg ICAgRkZfQ09ERUNfRU5DT0RFX0NCKHZjMl9lbmNvZGVfZnJhbWUpLAo+ID4gKyAgICAucC5wcml2 X2NsYXNzICAgPSAmdmMyZW5jX2NsYXNzLAo+ID4gKyAgICAuZGVmYXVsdHMgICAgICAgPSB2YzJl bmNfZGVmYXVsdHMsCj4gPiArICAgIENPREVDX1BJWEZNVFMoQVZfUElYX0ZNVF9WVUxLQU4pLAo+ ID4gKyAgICAuaHdfY29uZmlncyAgICAgPSBmZl92YzJfaHdfY29uZmlncywKPiA+ICt9Owo+ID4g ZGlmZiAtLWdpdCBhL2xpYmF2Y29kZWMvdnVsa2FuL3ZjMl9lbmNvZGUuY29tcCBiL2xpYmF2Y29k ZWMvdnVsa2FuL3ZjMl9lbmNvZGUuY29tcAo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGlu ZGV4IDAwMDAwMDAwMDAuLjRkOGFkY2NhNjEKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2xp YmF2Y29kZWMvdnVsa2FuL3ZjMl9lbmNvZGUuY29tcAo+ID4gQEAgLTAsMCArMSwxNTkgQEAKPiA+ ICsvKgo+ID4gKyAqIFZDMiBjb2RlYwo+ID4gKyAqCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDI1 IHJhcGhhZWx0aGVncmVhdCA8Z2Vvc3RlcjNkQGdtYWlsLmNvbT4KPiA+ICsgKgo+ID4gKyAqIFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KPiA+ICsgKgo+ID4gKyAqIEZGbXBlZyBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKPiA+ICsgKiBtb2RpZnkg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCj4gPiAr ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg ZWl0aGVyCj4gPiArICogdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCj4gPiArICoKPiA+ICsgKiBGRm1wZWcgaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPiA+ICsgKiBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgo+ ID4gKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUgR05VCj4gPiArICogTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KPiA+ICsgKgo+ID4gKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKPiA+ICsgKiBMaWNlbnNlIGFs b25nIHdpdGggRkZtcGVnOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCj4gPiAr ICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z dG9uLCBNQSAwMjExMC0xMzAxIFVTQQo+ID4gKyAqLwo+ID4gKwo+ID4gKyNleHRlbnNpb24gR0xf RVhUX3NoYWRlcl9leHBsaWNpdF9hcml0aG1ldGljX3R5cGVzIDogcmVxdWlyZQo+ID4gKyNleHRl bnNpb24gR0xfRVhUX3NjYWxhcl9ibG9ja19sYXlvdXQgOiByZXF1aXJlCj4gPiArI2V4dGVuc2lv biBHTF9FWFRfYnVmZmVyX3JlZmVyZW5jZSA6IHJlcXVpcmUKPiA+ICsjZXh0ZW5zaW9uIEdMX0VY VF9kZWJ1Z19wcmludGYgOiByZXF1aXJlCj4gPiArCj4gPiArI2RlZmluZSBNQVhfRFdUX0xFVkVM UyAoNSkKPiA+ICsKPiA+ICtsYXlvdXQocHVzaF9jb25zdGFudCwgc2NhbGFyKSB1bmlmb3JtIENv bXB1dGVJbmZvIHsKPiA+ICsgICAgdThidWYgYnl0ZXN0cmVhbTsKPiA+ICsgICAgaXZlYzIgbnVt X3NsaWNlczsKPiA+ICsgICAgaW50IHdhdmVsZXRfZGVwdGg7Cj4gPiArICAgIGludCBzaXplX3Nj YWxlcjsKPiA+ICsgICAgaW50IHByZWZpeF9ieXRlczsKPiA+ICt9Owo+ID4gKwo+ID4gK3ZvaWQg cHV0X3ZjMl91ZV91aW50KGlub3V0IFB1dEJpdENvbnRleHQgcGIsIHVpbnQgdmFsKQo+ID4gK3sK PiA+ICsgICAgdWludDMyX3QgcGJpdHMgPSAxOwo+ID4gKyAgICBpbnQgYml0cyA9IDE7Cj4gPiAr Cj4gPiArICAgICsrdmFsOwo+ID4gKwo+ID4gKyAgICB3aGlsZSAoKHZhbCA+PiA4KSAhPSAwKQo+ ID4gKyAgICB7Cj4gPiArICAgICAgICBwYml0cyB8PSB1aW50MzJfdChpbnRlcmxlYXZlZF91ZV9n b2xvbWJfdGFiW3ZhbCAmIDB4ZmZdKSA8PCBiaXRzOwo+ID4gKyAgICAgICAgdmFsID4+PSA4Owo+ ID4gKyAgICAgICAgYml0cyArPSAxNjsKPiA+ICsgICAgfQo+ID4gKwo+ID4gKyAgICBwYml0cyB8 PSB1aW50MzJfdCh0b3BfaW50ZXJsZWF2ZWRfdWVfZ29sb21iX3RhYlt2YWxdKSA8PCBiaXRzOwo+ ID4gKyAgICBiaXRzICArPSBnb2xvbWJfbGVuX3RhYlt2YWxdOwo+ID4gKyAgICBwdXRfYml0cyhw YiwgYml0cywgcGJpdHMpOwo+Cj4gSSBzZWUgeW91IHN3aXRjaGVkIHRvIGEgbHV0IGJhc2VkIGFw cHJvYWNoOyB5ZXQgeW91IHVzZSAzMiBiaXRzLAo+IHNpbWlsYXJseSB0byB3aGF0IHRoZSBzb2Z0 d2FyZSBkZWNvZGVyIGRpZCBiZWZvcmUKPiBhZjk5MzU4MzUzMzVjYWUxYWU1YTRlYzdmYzE0YzFi NWUyNWMxZjJkLiBDYW4geW91IGd1YXJhbnRlZSB0aGF0IHRoZQo+IGVuY29kZWQgY29lZmZpY2ll bnRzIGZpdCBpbnRvIDMyYml0cz8gSXMgdGhpcyBhIHJlcXVpcmVtZW50L2NvbnNlcXVlbmNlCj4g b2YgdGhlIHNwZWM/Cj4KPiA+ICt9Cj4gPiArCj4gPiAraW50IHF1YW50c1tNQVhfRFdUX0xFVkVM U11bNF07Cj4gPiArCj4gPiAraW50IHN1YmJhbmRfY29vcmQoaW50IGluZGV4LCBpbnQgaCwgaW50 IGx2bCkKPiA+ICt7Cj4gPiArICAgIGludCBjb29yZCA9IGluZGV4Owo+ID4gKyAgICBjb29yZCA8 PD0gMTsKPiA+ICsgICAgY29vcmQgfD0gaDsKPiA+ICsgICAgY29vcmQgPDw9ICh3YXZlbGV0X2Rl cHRoLWx2bC0xKTsKPiA+ICsgICAgcmV0dXJuIGNvb3JkOwo+ID4gK30KPiA+ICsKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IGZmbXBlZy1kZXZlbCBt YWlsaW5nIGxpc3QKPiBmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZwo+IGh0dHBzOi8vZmZtcGVnLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAo+Cj4gVG8gdW5zdWJzY3JpYmUsIHZpc2l0 IGxpbmsgYWJvdmUsIG9yIGVtYWlsCj4gZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3 aXRoIHN1YmplY3QgInVuc3Vic2NyaWJlIi4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxA ZmZtcGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2 ZWwKClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2 ZWwtcmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=