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 64949455F8 for ; Thu, 9 Mar 2023 14:18:12 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6D08C68BD35; Thu, 9 Mar 2023 16:18:10 +0200 (EET) Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BBB2468B7B2 for ; Thu, 9 Mar 2023 16:18:03 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id y10so2077655qtj.2 for ; Thu, 09 Mar 2023 06:18:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; t=1678371482; h=content-transfer-encoding:in-reply-to:references:to:from :content-language:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=MxiNgaCDX93D5Z1a+lJhxDxQl2yyFGyV9//LqHEZNzg=; b=j3RO/jt3gD/NVgoags7NfMqNZ/GZUC4+u/MSZboGYm5EUoKA5EO7eyHNBemyWzMTAE 6dOO8kBJiXSwQ1ikAuwCt+K81qW1vIuCzq9zcna9528ygy3IIn4CcCRQefsrcjZ1wAky QT3AhoLozK6tGRhe6xCEFChf6mXt/KdsupkEA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678371482; h=content-transfer-encoding:in-reply-to:references:to:from :content-language:subject:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MxiNgaCDX93D5Z1a+lJhxDxQl2yyFGyV9//LqHEZNzg=; b=4BcXHJHXbnnFT5nikf3FBRjjiOaDpwDwiL1Zxt8UNqkEl/UAKBEM7TzZJKF/XOY3Fm 013RvhWDW+C2zTvUkvSg2CmtIrk4f1s5Xf38VQSeYd5cQwQQdSsaczgEMol8ghhL4ZBj dFeVF0qwKwDIQHzUc9W4gF2VtOTDFzv1MS4L96enZ0IUfJAcv7W+pdBHQTy4a3nvZ3af V0Lt3fLv0jP7i1dON9VOc6kH67e2pKUaQ8bAJcgkWRgAz8pcwC7mwCxQDPLcDfVMHJTP 9gVhRp4oOBdeJvGlGDBeIaIAdwwEuDgMqfzqDGGYbAMDbiMVQUQceaoqF7y3IsbIF13R aKng== X-Gm-Message-State: AO0yUKUCt/+yl9XA31KewHkA6TJM7HAy2iKqu8L6lV+Uo8ZKiMLrQN0F v/9VmSz2fe2fPVpt+lIwyDAsRZ+tSEhgximeOXezOA== X-Google-Smtp-Source: AK7set+UyX2dbv5ht5NeS4RXb/0iFNeyuMCrBnJE1FfiuTzypi6BxqQnSQyUAd/JWnkC76sNqWZTGg== X-Received: by 2002:ac8:5a4b:0:b0:3bf:d00a:2eae with SMTP id o11-20020ac85a4b000000b003bfd00a2eaemr37370115qta.47.1678371481837; Thu, 09 Mar 2023 06:18:01 -0800 (PST) Received: from ?IPV6:2600:4041:6c:7000:1f01:20c:8ba9:815b? ([2600:4041:6c:7000:1f01:20c:8ba9:815b]) by smtp.gmail.com with ESMTPSA id e21-20020ac845d5000000b003bfd8e2ab40sm13741144qto.16.2023.03.09.06.18.00 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 09 Mar 2023 06:18:01 -0800 (PST) Message-ID: <9765be8b-0f67-8f91-884b-784216882fac@vimeo.com> Date: Thu, 9 Mar 2023 09:18:00 -0500 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 Content-Language: en-US, fr-FR From: =?UTF-8?Q?Rapha=c3=abl_Zumer?= To: ffmpeg-devel@ffmpeg.org References: <3bd88490-9f9f-39e0-756e-9d15d2e78d88@vimeo.com> In-Reply-To: <3bd88490-9f9f-39e0-756e-9d15d2e78d88@vimeo.com> Subject: Re: [FFmpeg-devel] [PATCH 2/2] avutil: add HDR10+ dynamic metadata serialization function 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: SGksCgpXaGlsZSBJIG9taXR0ZWQgYWRkaW5nIHYyL3YzIGhlcmUsIEkgYmVsaWV2ZSBhbGwgY29t bWVudHMgb24gdGhpcyBzZXQgb2YgcGF0Y2hlcyBoYXZlIGJlZW4gYWRkcmVzc2VkIHNvIGZhciwg dW5sZXNzIGFueW9uZSBzdHJvbmdseSBkaXNhZ3JlZXMgd2l0aCB0aGUgcmF0aW9uYWxlIGZvciBt b3ZpbmcgZHluYW1pYyBIRFIgcGFyc2luZyBhbmQgc2VyaWFsaXphdGlvbiB0byBsaWJhdnV0aWwg b3Igd2l0aCB0aGUgZnVuY3Rpb24gc2lnbmF0dXJlLgoKUGxlYXNlIGxldCBtZSBrbm93IGlmIEkg bWlzc2VkIGFueXRoaW5nLgoKVGhhbmtzLApSYXBoYcOrbCBadW1lcgoKT24gMy8yLzIzIDE2OjQz LCBSYXBoYcOrbCBadW1lciB3cm90ZToKPiBGaXhlZCBicmFjZSBzdHlsZSBhbmQgbW92ZWQgaW5s aW5lIGJ1ZmZlciBzaXplIGNhbGN1bGF0aW9uIGNvbW1lbnRzIHRvIGEgc2luZ2xlIGJsb2NrIGF0 IHRoZSB0b3AuCj4KPgo+IFNpZ25lZC1vZmYtYnk6IFJhcGhhw6tsIFp1bWVyIDxyenVtZXJAdGVi YWtvLm5ldD4KPiAtLS0KPiAgbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMgfCAxNDIg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICBsaWJhdnV0aWwvaGRyX2R5bmFtaWNf bWV0YWRhdGEuaCB8ICAxMSArKysKPiAgbGliYXZ1dGlsL3ZlcnNpb24uaCAgICAgICAgICAgICAg fCAgIDIgKy0KPiAgMyBmaWxlcyBjaGFuZ2VkLCAxNTQgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlv bigtKQo+Cj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jIGIv bGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKPiBpbmRleCA5OGYzOTliMDMyLi4yNGRk M2RhYjJkIDEwMDY0NAo+IC0tLSBhL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jCj4g KysrIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMKPiBAQCAtMjI1LDMgKzIyNSwx NDUgQEAgaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUoQVZEeW5hbWljSERSUGx1cyAq cywgY29uc3QgdWludDhfdCAqZGF0YSwKPiAgCj4gICAgICByZXR1cm4gMDsKPiAgfQo+ICsKPiAr QVZCdWZmZXJSZWYgKmF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KEFWRHluYW1pY0hEUlBsdXMg KnMpCj4gK3sKPiArICAgIEFWQnVmZmVyUmVmICpidWY7Cj4gKyAgICBzaXplX3Qgc2l6ZV9iaXRz LCBzaXplX2J5dGVzOwo+ICsgICAgUHV0Qml0Q29udGV4dCBwYmMsICpwYiA9ICZwYmM7Cj4gKwo+ ICsgICAgaWYgKCFzKQo+ICsgICAgICAgIHJldHVybiBOVUxMOwo+ICsKPiArICAgIC8qKgo+ICsg ICAgICogQnVmZmVyIHNpemUgcGVyIENUQS04NjEtSCBwLjI1My0yNTQ6Cj4gKyAgICAgKiA0OCBi aXRzIGZvciB0aGUgaGVhZGVyICg1NiBtaW51cyBleGNsdWRlZCA4LWJpdCBjb3VudHJ5IGNvZGUp Cj4gKyAgICAgKiAyIGJpdHMgZm9yIG51bV93aW5kb3dzCj4gKyAgICAgKiA5MzcgYml0cyBmb3Ig d2luZG93IGdlb21ldHJ5LCBmb3IgZWFjaCB3aW5kb3cgYWJvdmUgMQo+ICsgICAgICogMjcgYml0 cyBmb3IgdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11bV9sdW1pbmFuY2UKPiArICAgICAq IDEtMzg1NSBiaXRzIGZvciB0YXJnZXRlZCBzeXN0ZW0gZGlzcGxheSBwZWFrIGx1bWluYW5jZSBp bmZvcm1hdGlvbgo+ICsgICAgICogMC00NDIgYml0cyBmb3IgaW50cmEtd2luZG93IHBpeGVsIGRp c3RyaWJ1dGlvbiBpbmZvcm1hdGlvbgo+ICsgICAgICogMS0zODU1IGJpdHMgZm9yIG1hc3Rlcmlu ZyBkaXNwbGF5IHBlYWsgbHVtaW5hbmNlIGluZm9ybWF0aW9uCj4gKyAgICAgKiAwLTUzNyBiaXRz IGZvciBwZXItd2luZG93IHRvbmVtYXBwaW5nIGluZm9ybWF0aW9uCj4gKyAgICAgKiAwLTIxIGJp dHMgZm9yIHBlci13aW5kb3cgY29sb3Igc2F0dXJhdGlvbiBtYXBwaW5nIGluZm9ybWF0aW9uCj4g KyAgICAgKi8KPiArICAgIHNpemVfYml0cyA9IDQ4ICsKPiArICAgICAgICAyICsKPiArICAgICAg ICBGRk1BWCgocy0+bnVtX3dpbmRvd3MgLSAxKSwgMCkgKiA5MzcgKwo+ICsgICAgICAgIDI3ICsK PiArICAgICAgICAxICsgKHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1 bWluYW5jZV9mbGFnID8gMTAgKwo+ICsgICAgICAgICAgICBzLT5udW1fcm93c190YXJnZXRlZF9z eXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKgo+ICsgICAgICAgICAgICBzLT5u dW1fY29sc190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKiA0 IDogMCkgKwo+ICsgICAgICAgIHMtPm51bV93aW5kb3dzICogODI7Cj4gKwo+ICsgICAgZm9yIChp bnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKQo+ICsgICAgICAgIHNpemVfYml0cyAr PSBzLT5wYXJhbXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXMgKiAyNDsK PiArCj4gKyAgICBzaXplX2JpdHMgKz0gMSArIChzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxf cGVha19sdW1pbmFuY2VfZmxhZyA/IDEwICsKPiArICAgICAgICBzLT5udW1fcm93c19tYXN0ZXJp bmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKgo+ICsgICAgICAgIHMtPm51bV9jb2xz X21hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSAqIDQgOiAwKSArCj4gKyAg ICAgICAgcy0+bnVtX3dpbmRvd3MgKiAxOwo+ICsKPiArICAgIGZvciAoaW50IHcgPSAwOyB3IDwg cy0+bnVtX3dpbmRvd3M7IHcrKykgewo+ICsgICAgICAgIGlmIChzLT5wYXJhbXNbd10udG9uZV9t YXBwaW5nX2ZsYWcpCj4gKyAgICAgICAgICAgIHNpemVfYml0cyArPSAyOCArIHMtPnBhcmFtc1t3 XS5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnMgKiAxMDsKPiArICAgIH0KPiArCj4gKyAgICBzaXpl X2JpdHMgKz0gcy0+bnVtX3dpbmRvd3MgKiAxOwo+ICsgICAgZm9yIChpbnQgdyA9IDA7IHcgPCBz LT5udW1fd2luZG93czsgdysrKSB7Cj4gKyAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS5jb2xvcl9z YXR1cmF0aW9uX21hcHBpbmdfZmxhZykKPiArICAgICAgICAgICAgc2l6ZV9iaXRzICs9IDY7Cj4g KyAgICB9Cj4gKwo+ICsgICAgc2l6ZV9ieXRlcyA9IChzaXplX2JpdHMgKyA3KSAvIDg7Cj4gKwo+ ICsgICAgYnVmID0gYXZfYnVmZmVyX2FsbG9jKHNpemVfYnl0ZXMpOwo+ICsgICAgaWYgKCFidWYp Cj4gKyAgICAgICAgcmV0dXJuIE5VTEw7Cj4gKwo+ICsgICAgaW5pdF9wdXRfYml0cyhwYiwgYnVm LT5kYXRhLCBzaXplX2J5dGVzKTsKPiArCj4gKyAgICAvLyBpdHVfdF90MzVfY291bnRyeV9jb2Rl IHNoYWxsIGJlIDB4QjUgKFVTQSkgKGV4Y2x1ZGVkIGZyb20gdGhlIHBheWxvYWQpCj4gKyAgICAv LyBpdHVfdF90MzVfdGVybWluYWxfcHJvdmlkZXJfY29kZSBzaGFsbCBiZSAweDAwM0MKPiArICAg IHB1dF9iaXRzKHBiLCAxNiwgMHgwMDNDKTsKPiArICAgIC8vIGl0dV90X3QzNV90ZXJtaW5hbF9w cm92aWRlcl9vcmllbnRlZF9jb2RlIGlzIHNldCB0byBTVCAyMDk0LTQwCj4gKyAgICBwdXRfYml0 cyhwYiwgMTYsIDB4MDAwMSk7Cj4gKyAgICAvLyBhcHBsaWNhdGlvbl9pZGVudGlmaWVyIHNoYWxs IGJlIHNldCB0byA0Cj4gKyAgICBwdXRfYml0cyhwYiwgOCwgNCk7Cj4gKyAgICAvLyBhcHBsaWNh dGlvbl9tb2RlIGlzIHNldCB0byBBcHBsaWNhdGlvbiBWZXJzaW9uIDEKPiArICAgIHB1dF9iaXRz KHBiLCA4LCAxKTsKPiArCj4gKyAgICAvLyBQYXlsb2FkIGFzIHBlciBDVEEtODYxLUggcC4yNTMt MjU0Cj4gKyAgICBwdXRfYml0cyhwYiwgMiwgcy0+bnVtX3dpbmRvd3MpOwo+ICsKPiArICAgIGZv ciAoaW50IHcgPSAxOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgewo+ICsgICAgICAgIHB1dF9i aXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLndpbmRvd191cHBlcl9sZWZ0X2Nvcm5lcl94Lm51bSAv IHMtPnBhcmFtc1t3XS53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeC5kZW4pOwo+ICsgICAgICAg IHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLndpbmRvd191cHBlcl9sZWZ0X2Nvcm5lcl95 Lm51bSAvIHMtPnBhcmFtc1t3XS53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeS5kZW4pOwo+ICsg ICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLndpbmRvd19sb3dlcl9yaWdodF9j b3JuZXJfeC5udW0gLyBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nvcm5lcl94LmRl bik7Cj4gKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2Vy X3JpZ2h0X2Nvcm5lcl95Lm51bSAvIHMtPnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29y bmVyX3kuZGVuKTsKPiArICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5jZW50 ZXJfb2ZfZWxsaXBzZV94KTsKPiArICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3 XS5jZW50ZXJfb2ZfZWxsaXBzZV95KTsKPiArICAgICAgICBwdXRfYml0cyhwYiwgOCwgcy0+cGFy YW1zW3ddLnJvdGF0aW9uX2FuZ2xlKTsKPiArICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBh cmFtc1t3XS5zZW1pbWFqb3JfYXhpc19pbnRlcm5hbF9lbGxpcHNlKTsKPiArICAgICAgICBwdXRf Yml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5zZW1pbWFqb3JfYXhpc19leHRlcm5hbF9lbGxpcHNl KTsKPiArICAgICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5zZW1pbWlub3JfYXhp c19leHRlcm5hbF9lbGxpcHNlKTsKPiArICAgICAgICBwdXRfYml0cyhwYiwgMSwgcy0+cGFyYW1z W3ddLm92ZXJsYXBfcHJvY2Vzc19vcHRpb24pOwo+ICsgICAgfQo+ICsKPiArICAgIHB1dF9iaXRz KHBiLCAyNywgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11bV9sdW1pbmFuY2UubnVt ICogbHVtaW5hbmNlX2RlbiAvCj4gKyAgICAgICAgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlf bWF4aW11bV9sdW1pbmFuY2UuZGVuKTsKPiArICAgIHB1dF9iaXRzKHBiLCAxLCBzLT50YXJnZXRl ZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyk7Cj4gKyAgICBpZiAo cy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlX2ZsYWcpIHsK PiArICAgICAgICBwdXRfYml0cyhwYiwgNSwgcy0+bnVtX3Jvd3NfdGFyZ2V0ZWRfc3lzdGVtX2Rp c3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlKTsKPiArICAgICAgICBwdXRfYml0cyhwYiwgNSwg cy0+bnVtX2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNl KTsKPiArICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMtPm51bV9yb3dzX3RhcmdldGVkX3N5 c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsgaSsrKSB7Cj4gKyAgICAgICAgICAg IGZvciAoaW50IGogPSAwOyBqIDwgcy0+bnVtX2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlf YWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBqKyspCj4gKyAgICAgICAgICAgICAgICBwdXRfYml0cyhw YiwgNCwgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ld W2pdLm51bSAqIHBlYWtfbHVtaW5hbmNlX2RlbiAvCj4gKyAgICAgICAgICAgICAgICAgICAgcy0+ dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLmRlbik7 Cj4gKyAgICAgICAgfQo+ICsgICAgfQo+ICsKPiArICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+ bnVtX3dpbmRvd3M7IHcrKykgewo+ICsgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMzsgaSsr KQo+ICsgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0u bnVtICogcmdiX2RlbiAvIHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0uZGVuKTsKPiArICAgICAgICBw dXRfYml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3XS5hdmVyYWdlX21heHJnYi5udW0gKiByZ2JfZGVu IC8gcy0+cGFyYW1zW3ddLmF2ZXJhZ2VfbWF4cmdiLmRlbik7Cj4gKyAgICAgICAgcHV0X2JpdHMo cGIsIDQsIHMtPnBhcmFtc1t3XS5udW1fZGlzdHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlcyk7 Cj4gKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5wYXJhbXNbd10ubnVtX2Rpc3RyaWJ1 dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXM7IGkrKykgewo+ICsgICAgICAgICAgICBwdXRfYml0cyhw YiwgNywgcy0+cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGFnZSk7Cj4g KyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxNywgcy0+cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9t YXhyZ2JbaV0ucGVyY2VudGlsZS5udW0gKiByZ2JfZGVuIC8KPiArICAgICAgICAgICAgICAgIHMt PnBhcmFtc1t3XS5kaXN0cmlidXRpb25fbWF4cmdiW2ldLnBlcmNlbnRpbGUuZGVuKTsKPiArICAg ICAgICB9Cj4gKyAgICAgICAgcHV0X2JpdHMocGIsIDEwLCBzLT5wYXJhbXNbd10uZnJhY3Rpb25f YnJpZ2h0X3BpeGVscy5udW0gKiBmcmFjdGlvbl9waXhlbF9kZW4gLwo+ICsgICAgICAgICAgICBz LT5wYXJhbXNbd10uZnJhY3Rpb25fYnJpZ2h0X3BpeGVscy5kZW4pOwo+ICsgICAgfQo+ICsKPiAr ICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2VfZmxhZyk7Cj4gKyAgICBpZiAocy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtf bHVtaW5hbmNlX2ZsYWcpIHsKPiArICAgICAgICBwdXRfYml0cyhwYiwgNSwgcy0+bnVtX3Jvd3Nf bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlKTsKPiArICAgICAgICBwdXRf Yml0cyhwYiwgNSwgcy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVt aW5hbmNlKTsKPiArICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMtPm51bV9yb3dzX21hc3Rl cmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsgaSsrKSB7Cj4gKyAgICAgICAgICAg IGZvciAoaW50IGogPSAwOyBqIDwgcy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFs X3BlYWtfbHVtaW5hbmNlOyBqKyspCj4gKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgNCwg cy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLm51bSAqIHBl YWtfbHVtaW5hbmNlX2RlbiAvCj4gKyAgICAgICAgICAgICAgICAgICAgcy0+bWFzdGVyaW5nX2Rp c3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLmRlbik7Cj4gKyAgICAgICAgfQo+ICsg ICAgfQo+ICsKPiArICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykg ewo+ICsgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5wYXJhbXNbd10udG9uZV9tYXBwaW5nX2Zs YWcpOwo+ICsgICAgICAgIGlmIChzLT5wYXJhbXNbd10udG9uZV9tYXBwaW5nX2ZsYWcpIHsKPiAr ICAgICAgICAgICAgcHV0X2JpdHMocGIsIDEyLCBzLT5wYXJhbXNbd10ua25lZV9wb2ludF94Lm51 bSAqIGtuZWVfcG9pbnRfZGVuIC8gcy0+cGFyYW1zW3ddLmtuZWVfcG9pbnRfeC5kZW4pOwo+ICsg ICAgICAgICAgICBwdXRfYml0cyhwYiwgMTIsIHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3kubnVt ICoga25lZV9wb2ludF9kZW4gLyBzLT5wYXJhbXNbd10ua25lZV9wb2ludF95LmRlbik7Cj4gKyAg ICAgICAgICAgIHB1dF9iaXRzKHBiLCA0LCBzLT5wYXJhbXNbd10ubnVtX2Jlemllcl9jdXJ2ZV9h bmNob3JzKTsKPiArICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5wYXJhbXNbd10u bnVtX2Jlemllcl9jdXJ2ZV9hbmNob3JzOyBpKyspCj4gKyAgICAgICAgICAgICAgICBwdXRfYml0 cyhwYiwgMTAsIHMtPnBhcmFtc1t3XS5iZXppZXJfY3VydmVfYW5jaG9yc1tpXS5udW0gKiBiZXpp ZXJfYW5jaG9yX2RlbiAvCj4gKyAgICAgICAgICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmJlemll cl9jdXJ2ZV9hbmNob3JzW2ldLmRlbik7Cj4gKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBz LT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl9tYXBwaW5nX2ZsYWcpOwo+ICsgICAgICAgICAg ICBpZiAocy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fbWFwcGluZ19mbGFnKQo+ICsgICAg ICAgICAgICAgICAgcHV0X2JpdHMocGIsIDYsIHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9u X3dlaWdodC5udW0gKiBzYXR1cmF0aW9uX3dlaWdodF9kZW4gLwo+ICsgICAgICAgICAgICAgICAg ICAgIHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9uX3dlaWdodC5kZW4pOwo+ICsgICAgICAg IH0KPiArICAgIH0KPiArCj4gKyAgICBmbHVzaF9wdXRfYml0cyhwYik7Cj4gKyAgICByZXR1cm4g YnVmOwo+ICt9Cj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5o IGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgKPiBpbmRleCAxZjk1M2VmMWY1Li43 OTdhNWM2NGFlIDEwMDY0NAo+IC0tLSBhL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5o Cj4gKysrIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgKPiBAQCAtMjEsNiArMjEs NyBAQAo+ICAjaWZuZGVmIEFWVVRJTF9IRFJfRFlOQU1JQ19NRVRBREFUQV9ICj4gICNkZWZpbmUg QVZVVElMX0hEUl9EWU5BTUlDX01FVEFEQVRBX0gKPiAgCj4gKyNpbmNsdWRlICJidWZmZXIuaCIK PiAgI2luY2x1ZGUgImZyYW1lLmgiCj4gICNpbmNsdWRlICJyYXRpb25hbC5oIgo+ICAKPiBAQCAt MzUxLDQgKzM1MiwxNCBAQCBBVkR5bmFtaWNIRFJQbHVzICphdl9keW5hbWljX2hkcl9wbHVzX2Ny ZWF0ZV9zaWRlX2RhdGEoQVZGcmFtZSAqZnJhbWUpOwo+ICBpbnQgYXZfZHluYW1pY19oZHJfcGx1 c19mcm9tX3QzNShBVkR5bmFtaWNIRFJQbHVzICpzLCBjb25zdCB1aW50OF90ICpkYXRhLAo+ICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgc2l6ZSk7Cj4gIAo+ICsvKioKPiAr ICogU2VyaWFsaXplIGR5bmFtaWMgSERSMTArIG1ldGFkYXRhIHRvIGEgdXNlciBkYXRhIHJlZ2lz dGVyZWQgSVRVLVQgVC4zNSBidWZmZXIsCj4gKyAqIGV4Y2x1ZGluZyB0aGUgY291bnRyeSBjb2Rl IGFuZCBiZWdpbm5pbmcgd2l0aCB0aGUgdGVybWluYWwgcHJvdmlkZXIgY29kZS4KPiArICogQHBh cmFtIHMgQSBwb2ludGVyIGNvbnRhaW5pbmcgdGhlIGRlY29kZWQgQVZEeW5hbWljSERSUGx1cyBz dHJ1Y3R1cmUuCj4gKyAqCj4gKyAqIEByZXR1cm4gUG9pbnRlciB0byBhbiBBVkJ1ZmZlclJlZiBj b250YWluaW5nIHRoZSByYXcgSVRVLVQgVC4zNSByZXByZXNlbnRhdGlvbgo+ICsgKiAgICAgICAg IG9mIHRoZSBIRFIxMCsgbWV0YWRhdGEgaWYgc3VjY2VlZCwgb3IgTlVMTCBpZiBidWZmZXIgYWxs b2NhdGlvbiBmYWlscy4KPiArICovCj4gK0FWQnVmZmVyUmVmICphdl9keW5hbWljX2hkcl9wbHVz X3RvX3QzNShBVkR5bmFtaWNIRFJQbHVzICpzKTsKPiArCj4gICNlbmRpZiAvKiBBVlVUSUxfSERS X0RZTkFNSUNfTUVUQURBVEFfSCAqLwo+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvdmVyc2lvbi5o IGIvbGliYXZ1dGlsL3ZlcnNpb24uaAo+IGluZGV4IDkwMGI3OTg5NzEuLjc2MzU2NzI5ODUgMTAw NjQ0Cj4gLS0tIGEvbGliYXZ1dGlsL3ZlcnNpb24uaAo+ICsrKyBiL2xpYmF2dXRpbC92ZXJzaW9u LmgKPiBAQCAtNzksNyArNzksNyBAQAo+ICAgKi8KPiAgCj4gICNkZWZpbmUgTElCQVZVVElMX1ZF UlNJT05fTUFKT1IgIDU4Cj4gLSNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlOT1IgICAzCj4g KyNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlOT1IgICA0Cj4gICNkZWZpbmUgTElCQVZVVElM X1ZFUlNJT05fTUlDUk8gMTAwCj4gIAo+ICAjZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX0lOVCAg IEFWX1ZFUlNJT05fSU5UKExJQkFWVVRJTF9WRVJTSU9OX01BSk9SLCBcCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBtYWlsaW5nIGxp c3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21haWxtYW4vbGlz dGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3Ig ZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1YmplY3QgInVuc3Vi c2NyaWJlIi4K