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 C51CE45645 for ; Mon, 13 Mar 2023 20:23:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BC7C468BC49; Mon, 13 Mar 2023 22:23:33 +0200 (EET) Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9AE5A68A5E1 for ; Mon, 13 Mar 2023 22:23:27 +0200 (EET) Received: by mail-qv1-f45.google.com with SMTP id jl13so5084480qvb.10 for ; Mon, 13 Mar 2023 13:23:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; t=1678739005; h=content-transfer-encoding:content-language:to:subject:from :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=72Yuc2tbC7IBeqXnzXbpy7G/bxVjwu/1G6aGmhO9NR4=; b=DMjL2WiYPXWFMCR4ln2Hf0lrsDdoOpg1IZJWtgPpkwCVXMp5lsPxaxpNpZ43pgpBBX C/OGty3kb3GUsjvn273UuSbrzeWQmQIDqmHBDHqr2JkSqlvnx4tLJbCAMSnAE7vEF0XV fJURRd6eOZdLXtsOHYKtjUQb1Ek3sXwmSb2Pc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678739005; h=content-transfer-encoding:content-language:to:subject:from :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=72Yuc2tbC7IBeqXnzXbpy7G/bxVjwu/1G6aGmhO9NR4=; b=sX0KmnfMJka1yqdXiWPY+HYF0KK2pQUiaBMbiaWOPutQN1EXN/Ca5F27tF1WBjyaRi tyQgk4iTUj07DkPC8MnlD1XaCTBkUNrwvUfBCZAq0RbTw8iy2pLxfQ4Q8zuRREWBf9aR gupmejCOXZPt1PP/nbM5eBLg7ot0i4teXXQPzbcMtifIft1+skQFx0bA1SFDKif3xEhd 5PQoh9P97IBDJWRwZmyqyOCDv0Oouop/9TzxCZrf2/NcsgiRM8wDH/TFyEWueLTxH7ft rrkJiDypLLpQisd/965oMjh8JlupVlM/aKGoEkGxaIVbpjC62oF74SCemhsppoy10b6Z B2jQ== X-Gm-Message-State: AO0yUKVpAZTjAguCfXAo8NH+yCLGNJhzNyaTlrWUJkvNG6uTBmyW6ZSf t8ZIFQUlZocEzg0SSid1fYmET2kYqMNcT/Jw4HMGcw== X-Google-Smtp-Source: AK7set8K2VIX9jKKIo8ZbfMTJXYiNhVXl/+Dz/XPhJzi/dbKg51+aCk809FUwNHwkbYMzOUhZ4wL4A== X-Received: by 2002:a05:6214:300e:b0:56e:ff20:57c2 with SMTP id ke14-20020a056214300e00b0056eff2057c2mr12605787qvb.10.1678739005395; Mon, 13 Mar 2023 13:23:25 -0700 (PDT) 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 g7-20020ac85807000000b003b869f71eedsm471894qtg.66.2023.03.13.13.23.24 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 13 Mar 2023 13:23:25 -0700 (PDT) Message-ID: <1e4d7579-d4be-fd34-07a4-6545c1625b8c@vimeo.com> Date: Mon, 13 Mar 2023 16:23:24 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 From: =?UTF-8?Q?Rapha=c3=abl_Zumer?= To: ffmpeg-devel@ffmpeg.org Content-Language: en-US, fr-FR Subject: [FFmpeg-devel] [PATCH v4 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: U2lnbmVkLW9mZi1ieTogUmFwaGHDq2wgWnVtZXIgPHJ6dW1lckB0ZWJha28ubmV0PgotLS0KIGRv Yy9BUEljaGFuZ2VzICAgICAgICAgICAgICAgICAgIHwgICA1ICsrCiBsaWJhdnV0aWwvaGRyX2R5 bmFtaWNfbWV0YWRhdGEuYyB8IDE0NiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBs aWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuaCB8ICAxMiArKysKIGxpYmF2dXRpbC92ZXJz aW9uLmggICAgICAgICAgICAgIHwgICAyICstCiA0IGZpbGVzIGNoYW5nZWQsIDE2NCBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL0FQSWNoYW5nZXMgYi9kb2Mv QVBJY2hhbmdlcwppbmRleCAxNDczNzIyM2NiLi4zYTYxZDYxOTMxIDEwMDY0NAotLS0gYS9kb2Mv QVBJY2hhbmdlcworKysgYi9kb2MvQVBJY2hhbmdlcwpAQCAtMiw2ICsyLDExIEBAIFRoZSBsYXN0 IHZlcnNpb24gaW5jcmVhc2VzIG9mIGFsbCBsaWJyYXJpZXMgd2VyZSBvbiAyMDIzLTAyLTA5CiAK IEFQSSBjaGFuZ2VzLCBtb3N0IHJlY2VudCBmaXJzdDoKIAorMjAyMy0wMy0xMyAtIHh4eHh4eHh4 eHggLSBsYXZ1IDU4LjQuMTAwIC0gaGRyX2R5bmFtaWNfbWV0YWRhdGEuaAorICBBZGQgYXZfZHlu YW1pY19oZHJfcGx1c19mcm9tX3QzNSgpIGFuZCBhdl9keW5hbWljX2hkcl9wbHVzX3RvX3QzNSgp CisgIGZ1bmN0aW9ucyB0byBjb252ZXJ0IGJldHdlZW4gcmF3IFQuMzUgcGF5bG9hZHMgY29udGFp bmluZyBkeW5hbWljCisgIEhEUjEwKyBtZXRhZGF0YSBhbmQgdGhlaXIgcGFyc2VkIHJlcHJlc2Vu dGF0aW9ucyBhcyBBVkR5bmFtaWNIRFJQbHVzLgorCiAyMDIzLTAzLTAyIC0geHh4eHh4eHh4eCAt IGxhdmMgNjAuNi4xMDAgLSBhdmNvZGVjLmgKICAgQWRkIEZGX1BST0ZJTEVfRUFDM19ERFBfQVRN T1MsIEZGX1BST0ZJTEVfVFJVRUhEX0FUTU9TLAogICBGRl9QUk9GSUxFX0RUU19IRF9NQV9YIGFu ZCBGRl9QUk9GSUxFX0RUU19IRF9NQV9YX0lNQVguCmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaGRy X2R5bmFtaWNfbWV0YWRhdGEuYyBiL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jCmlu ZGV4IDk4ZjM5OWIwMzIuLjBlMzBjNmYyNDYgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9oZHJfZHlu YW1pY19tZXRhZGF0YS5jCisrKyBiL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5jCkBA IC0yMjUsMyArMjI1LDE0OSBAQCBpbnQgYXZfZHluYW1pY19oZHJfcGx1c19mcm9tX3QzNShBVkR5 bmFtaWNIRFJQbHVzICpzLCBjb25zdCB1aW50OF90ICpkYXRhLAogCiAgICAgcmV0dXJuIDA7CiB9 CisKK3VpbnQ4X3QgKmF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KHNpemVfdCAqc2l6ZSwgY29u c3QgQVZEeW5hbWljSERSUGx1cyAqcykKK3sKKyAgICB1aW50OF90ICpidWY7CisgICAgc2l6ZV90 IHNpemVfYml0cywgc2l6ZV9ieXRlczsKKyAgICBQdXRCaXRDb250ZXh0IHBiYywgKnBiID0gJnBi YzsKKworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBpZiAoIXMp CisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLyoqCisgICAgICogQnVmZmVyIHNpemUgcGVy IENUQS04NjEtSCBwLjI1My0yNTQ6CisgICAgICogNDggYml0cyBmb3IgdGhlIGhlYWRlciAoNTYg bWludXMgZXhjbHVkZWQgOC1iaXQgY291bnRyeSBjb2RlKQorICAgICAqIDIgYml0cyBmb3IgbnVt X3dpbmRvd3MKKyAgICAgKiA5MzcgYml0cyBmb3Igd2luZG93IGdlb21ldHJ5LCBmb3IgZWFjaCB3 aW5kb3cgYWJvdmUgMQorICAgICAqIDI3IGJpdHMgZm9yIHRhcmdldGVkX3N5c3RlbV9kaXNwbGF5 X21heGltdW1fbHVtaW5hbmNlCisgICAgICogMS0zODU1IGJpdHMgZm9yIHRhcmdldGVkIHN5c3Rl bSBkaXNwbGF5IHBlYWsgbHVtaW5hbmNlIGluZm9ybWF0aW9uCisgICAgICogMC00NDIgYml0cyBm b3IgaW50cmEtd2luZG93IHBpeGVsIGRpc3RyaWJ1dGlvbiBpbmZvcm1hdGlvbgorICAgICAqIDEt Mzg1NSBiaXRzIGZvciBtYXN0ZXJpbmcgZGlzcGxheSBwZWFrIGx1bWluYW5jZSBpbmZvcm1hdGlv bgorICAgICAqIDAtNTM3IGJpdHMgZm9yIHBlci13aW5kb3cgdG9uZW1hcHBpbmcgaW5mb3JtYXRp b24KKyAgICAgKiAwLTIxIGJpdHMgZm9yIHBlci13aW5kb3cgY29sb3Igc2F0dXJhdGlvbiBtYXBw aW5nIGluZm9ybWF0aW9uCisgICAgICovCisgICAgc2l6ZV9iaXRzID0gNDggKworICAgICAgICAy ICsKKyAgICAgICAgRkZNQVgoKHMtPm51bV93aW5kb3dzIC0gMSksIDApICogOTM3ICsKKyAgICAg ICAgMjcgKworICAgICAgICAxICsgKHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9w ZWFrX2x1bWluYW5jZV9mbGFnID8gMTAgKworICAgICAgICAgICAgcy0+bnVtX3Jvd3NfdGFyZ2V0 ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlICoKKyAgICAgICAgICAgIHMt Pm51bV9jb2xzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSAq IDQgOiAwKSArCisgICAgICAgIHMtPm51bV93aW5kb3dzICogODI7CisKKyAgICBmb3IgKGludCB3 ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspCisgICAgICAgIHNpemVfYml0cyArPSBzLT5w YXJhbXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGlsZXMgKiAyNDsKKworICAg IHNpemVfYml0cyArPSAxICsgKHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWlu YW5jZV9mbGFnID8gMTAgKworICAgICAgICBzLT5udW1fcm93c19tYXN0ZXJpbmdfZGlzcGxheV9h Y3R1YWxfcGVha19sdW1pbmFuY2UgKgorICAgICAgICBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlz cGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKiA0IDogMCkgKworICAgICAgICBzLT5udW1fd2lu ZG93cyAqIDE7CisKKyAgICBmb3IgKGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3Kysp IHsKKyAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS50b25lX21hcHBpbmdfZmxhZykKKyAgICAgICAg ICAgIHNpemVfYml0cyArPSAyOCArIHMtPnBhcmFtc1t3XS5udW1fYmV6aWVyX2N1cnZlX2FuY2hv cnMgKiAxMDsKKyAgICB9CisKKyAgICBzaXplX2JpdHMgKz0gcy0+bnVtX3dpbmRvd3MgKiAxOwor ICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcrKykgeworICAgICAgICBp ZiAocy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fbWFwcGluZ19mbGFnKQorICAgICAgICAg ICAgc2l6ZV9iaXRzICs9IDY7CisgICAgfQorCisgICAgc2l6ZV9ieXRlcyA9IChzaXplX2JpdHMg KyA3KSAvIDg7CisgICAgKnNpemUgPSBzaXplX2J5dGVzOworCisgICAgYnVmID0gYXZfbWFsbG9j KHNpemVfYnl0ZXMpOworICAgIGlmICghYnVmKQorICAgICAgICByZXR1cm4gTlVMTDsKKworICAg IGluaXRfcHV0X2JpdHMocGIsIGJ1Ziwgc2l6ZV9ieXRlcyk7CisKKyAgICAvLyBpdHVfdF90MzVf Y291bnRyeV9jb2RlIHNoYWxsIGJlIDB4QjUgKFVTQSkgKGV4Y2x1ZGVkIGZyb20gdGhlIHBheWxv YWQpCisgICAgLy8gaXR1X3RfdDM1X3Rlcm1pbmFsX3Byb3ZpZGVyX2NvZGUgc2hhbGwgYmUgMHgw MDNDCisgICAgcHV0X2JpdHMocGIsIDE2LCAweDAwM0MpOworICAgIC8vIGl0dV90X3QzNV90ZXJt aW5hbF9wcm92aWRlcl9vcmllbnRlZF9jb2RlIGlzIHNldCB0byBTVCAyMDk0LTQwCisgICAgcHV0 X2JpdHMocGIsIDE2LCAweDAwMDEpOworICAgIC8vIGFwcGxpY2F0aW9uX2lkZW50aWZpZXIgc2hh bGwgYmUgc2V0IHRvIDQKKyAgICBwdXRfYml0cyhwYiwgOCwgNCk7CisgICAgLy8gYXBwbGljYXRp b25fbW9kZSBpcyBzZXQgdG8gQXBwbGljYXRpb24gVmVyc2lvbiAxCisgICAgcHV0X2JpdHMocGIs IDgsIDEpOworCisgICAgLy8gUGF5bG9hZCBhcyBwZXIgQ1RBLTg2MS1IIHAuMjUzLTI1NAorICAg IHB1dF9iaXRzKHBiLCAyLCBzLT5udW1fd2luZG93cyk7CisKKyAgICBmb3IgKGludCB3ID0gMTsg dyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5w YXJhbXNbd10ud2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3gubnVtIC8gcy0+cGFyYW1zW3ddLndp bmRvd191cHBlcl9sZWZ0X2Nvcm5lcl94LmRlbik7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwg cy0+cGFyYW1zW3ddLndpbmRvd191cHBlcl9sZWZ0X2Nvcm5lcl95Lm51bSAvIHMtPnBhcmFtc1t3 XS53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeS5kZW4pOworICAgICAgICBwdXRfYml0cyhwYiwg MTYsIHMtPnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3gubnVtIC8gcy0+cGFy YW1zW3ddLndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeC5kZW4pOworICAgICAgICBwdXRfYml0 cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3kubnVtIC8g cy0+cGFyYW1zW3ddLndpbmRvd19sb3dlcl9yaWdodF9jb3JuZXJfeS5kZW4pOworICAgICAgICBw dXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5jZW50ZXJfb2ZfZWxsaXBzZV94KTsKKyAgICAg ICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uY2VudGVyX29mX2VsbGlwc2VfeSk7Cisg ICAgICAgIHB1dF9iaXRzKHBiLCA4LCBzLT5wYXJhbXNbd10ucm90YXRpb25fYW5nbGUpOworICAg ICAgICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5zZW1pbWFqb3JfYXhpc19pbnRlcm5h bF9lbGxpcHNlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uc2VtaW1h am9yX2F4aXNfZXh0ZXJuYWxfZWxsaXBzZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+ cGFyYW1zW3ddLnNlbWltaW5vcl9heGlzX2V4dGVybmFsX2VsbGlwc2UpOworICAgICAgICBwdXRf Yml0cyhwYiwgMSwgcy0+cGFyYW1zW3ddLm92ZXJsYXBfcHJvY2Vzc19vcHRpb24pOworICAgIH0K KworICAgIHB1dF9iaXRzKHBiLCAyNywgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfbWF4aW11 bV9sdW1pbmFuY2UubnVtICogbHVtaW5hbmNlX2RlbiAvCisgICAgICAgIHMtPnRhcmdldGVkX3N5 c3RlbV9kaXNwbGF5X21heGltdW1fbHVtaW5hbmNlLmRlbik7CisgICAgcHV0X2JpdHMocGIsIDEs IHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnKTsK KyAgICBpZiAocy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNl X2ZsYWcpIHsKKyAgICAgICAgcHV0X2JpdHMocGIsIDUsIHMtPm51bV9yb3dzX3RhcmdldGVkX3N5 c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZSk7CisgICAgICAgIHB1dF9iaXRzKHBi LCA1LCBzLT5udW1fY29sc190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1p bmFuY2UpOworICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMtPm51bV9yb3dzX3RhcmdldGVk X3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsgaSsrKSB7CisgICAgICAgICAg ICBmb3IgKGludCBqID0gMDsgaiA8IHMtPm51bV9jb2xzX3RhcmdldGVkX3N5c3RlbV9kaXNwbGF5 X2FjdHVhbF9wZWFrX2x1bWluYW5jZTsgaisrKQorICAgICAgICAgICAgICAgIHB1dF9iaXRzKHBi LCA0LCBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2VbaV1b al0ubnVtICogcGVha19sdW1pbmFuY2VfZGVuIC8KKyAgICAgICAgICAgICAgICAgICAgcy0+dGFy Z2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLmRlbik7Cisg ICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dz OyB3KyspIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAzOyBpKyspCisgICAgICAgICAg ICBwdXRfYml0cyhwYiwgMTcsIHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0ubnVtICogcmdiX2RlbiAv IHMtPnBhcmFtc1t3XS5tYXhzY2xbaV0uZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE3LCBz LT5wYXJhbXNbd10uYXZlcmFnZV9tYXhyZ2IubnVtICogcmdiX2RlbiAvIHMtPnBhcmFtc1t3XS5h dmVyYWdlX21heHJnYi5kZW4pOworICAgICAgICBwdXRfYml0cyhwYiwgNCwgcy0+cGFyYW1zW3dd Lm51bV9kaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGVzKTsKKyAgICAgICAgZm9yIChpbnQg aSA9IDA7IGkgPCBzLT5wYXJhbXNbd10ubnVtX2Rpc3RyaWJ1dGlvbl9tYXhyZ2JfcGVyY2VudGls ZXM7IGkrKykgeworICAgICAgICAgICAgcHV0X2JpdHMocGIsIDcsIHMtPnBhcmFtc1t3XS5kaXN0 cmlidXRpb25fbWF4cmdiW2ldLnBlcmNlbnRhZ2UpOworICAgICAgICAgICAgcHV0X2JpdHMocGIs IDE3LCBzLT5wYXJhbXNbd10uZGlzdHJpYnV0aW9uX21heHJnYltpXS5wZXJjZW50aWxlLm51bSAq IHJnYl9kZW4gLworICAgICAgICAgICAgICAgIHMtPnBhcmFtc1t3XS5kaXN0cmlidXRpb25fbWF4 cmdiW2ldLnBlcmNlbnRpbGUuZGVuKTsKKyAgICAgICAgfQorICAgICAgICBwdXRfYml0cyhwYiwg MTAsIHMtPnBhcmFtc1t3XS5mcmFjdGlvbl9icmlnaHRfcGl4ZWxzLm51bSAqIGZyYWN0aW9uX3Bp eGVsX2RlbiAvCisgICAgICAgICAgICBzLT5wYXJhbXNbd10uZnJhY3Rpb25fYnJpZ2h0X3BpeGVs cy5kZW4pOworICAgIH0KKworICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5tYXN0ZXJpbmdfZGlzcGxh eV9hY3R1YWxfcGVha19sdW1pbmFuY2VfZmxhZyk7CisgICAgaWYgKHMtPm1hc3RlcmluZ19kaXNw bGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnKSB7CisgICAgICAgIHB1dF9iaXRzKHBiLCA1 LCBzLT5udW1fcm93c19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UpOwor ICAgICAgICBwdXRfYml0cyhwYiwgNSwgcy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0 dWFsX3BlYWtfbHVtaW5hbmNlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzLT5udW1f cm93c19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2U7IGkrKykgeworICAg ICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlzcGxh eV9hY3R1YWxfcGVha19sdW1pbmFuY2U7IGorKykKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhw YiwgNCwgcy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLm51 bSAqIHBlYWtfbHVtaW5hbmNlX2RlbiAvCisgICAgICAgICAgICAgICAgICAgIHMtPm1hc3Rlcmlu Z19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5kZW4pOworICAgICAgICB9Cisg ICAgfQorCisgICAgZm9yIChpbnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7Cisg ICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5wYXJhbXNbd10udG9uZV9tYXBwaW5nX2ZsYWcpOwor ICAgICAgICBpZiAocy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKSB7CisgICAgICAgICAg ICBwdXRfYml0cyhwYiwgMTIsIHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3gubnVtICoga25lZV9w b2ludF9kZW4gLyBzLT5wYXJhbXNbd10ua25lZV9wb2ludF94LmRlbik7CisgICAgICAgICAgICBw dXRfYml0cyhwYiwgMTIsIHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3kubnVtICoga25lZV9wb2lu dF9kZW4gLyBzLT5wYXJhbXNbd10ua25lZV9wb2ludF95LmRlbik7CisgICAgICAgICAgICBwdXRf Yml0cyhwYiwgNCwgcy0+cGFyYW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5jaG9ycyk7CisgICAg ICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMtPnBhcmFtc1t3XS5udW1fYmV6aWVyX2N1cnZl X2FuY2hvcnM7IGkrKykKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgMTAsIHMtPnBhcmFt c1t3XS5iZXppZXJfY3VydmVfYW5jaG9yc1tpXS5udW0gKiBiZXppZXJfYW5jaG9yX2RlbiAvCisg ICAgICAgICAgICAgICAgICAgIHMtPnBhcmFtc1t3XS5iZXppZXJfY3VydmVfYW5jaG9yc1tpXS5k ZW4pOworICAgICAgICAgICAgcHV0X2JpdHMocGIsIDEsIHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1 cmF0aW9uX21hcHBpbmdfZmxhZyk7CisgICAgICAgICAgICBpZiAocy0+cGFyYW1zW3ddLmNvbG9y X3NhdHVyYXRpb25fbWFwcGluZ19mbGFnKQorICAgICAgICAgICAgICAgIHB1dF9iaXRzKHBiLCA2 LCBzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl93ZWlnaHQubnVtICogc2F0dXJhdGlvbl93 ZWlnaHRfZGVuIC8KKyAgICAgICAgICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVy YXRpb25fd2VpZ2h0LmRlbik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBmbHVzaF9wdXRfYml0 cyhwYik7CisgICAgcmV0dXJuIGJ1ZjsKK30KZGlmZiAtLWdpdCBhL2xpYmF2dXRpbC9oZHJfZHlu YW1pY19tZXRhZGF0YS5oIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgKaW5kZXgg MWY5NTNlZjFmNS4uODcwYTE4NGRlZiAxMDA2NDQKLS0tIGEvbGliYXZ1dGlsL2hkcl9keW5hbWlj X21ldGFkYXRhLmgKKysrIGIvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmgKQEAgLTIx LDYgKzIxLDcgQEAKICNpZm5kZWYgQVZVVElMX0hEUl9EWU5BTUlDX01FVEFEQVRBX0gKICNkZWZp bmUgQVZVVElMX0hEUl9EWU5BTUlDX01FVEFEQVRBX0gKIAorI2luY2x1ZGUgImJ1ZmZlci5oIgog I2luY2x1ZGUgImZyYW1lLmgiCiAjaW5jbHVkZSAicmF0aW9uYWwuaCIKIApAQCAtMzUxLDQgKzM1 MiwxNSBAQCBBVkR5bmFtaWNIRFJQbHVzICphdl9keW5hbWljX2hkcl9wbHVzX2NyZWF0ZV9zaWRl X2RhdGEoQVZGcmFtZSAqZnJhbWUpOwogaW50IGF2X2R5bmFtaWNfaGRyX3BsdXNfZnJvbV90MzUo QVZEeW5hbWljSERSUGx1cyAqcywgY29uc3QgdWludDhfdCAqZGF0YSwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGludCBzaXplKTsKIAorLyoqCisgKiBTZXJpYWxpemUgZHluYW1p YyBIRFIxMCsgbWV0YWRhdGEgdG8gYSB1c2VyIGRhdGEgcmVnaXN0ZXJlZCBJVFUtVCBULjM1IGJ1 ZmZlciwKKyAqIGV4Y2x1ZGluZyB0aGUgY291bnRyeSBjb2RlIGFuZCBiZWdpbm5pbmcgd2l0aCB0 aGUgdGVybWluYWwgcHJvdmlkZXIgY29kZS4KKyAqIEBwYXJhbSBzaXplIEEgcG9pbnRlciB0byBh IHNpemVfdCB0byBiZSBzZXQgdG8gdGhlIHJldHVybmVkIGJ1ZmZlcidzIHNpemUuCisgKiBAcGFy YW0gcyBBIHBvaW50ZXIgY29udGFpbmluZyB0aGUgZGVjb2RlZCBBVkR5bmFtaWNIRFJQbHVzIHN0 cnVjdHVyZS4KKyAqCisgKiBAcmV0dXJuIFBvaW50ZXIgdG8gYSBieXRlIGJ1ZmZlciBjb250YWlu aW5nIHRoZSByYXcgSVRVLVQgVC4zNSByZXByZXNlbnRhdGlvbgorICogICAgICAgICBvZiB0aGUg SERSMTArIG1ldGFkYXRhIGlmIHN1Y2NlZWQsIG9yIE5VTEwgaWYgYnVmZmVyIGFsbG9jYXRpb24g ZmFpbHMuCisgKi8KK3VpbnQ4X3QgKmF2X2R5bmFtaWNfaGRyX3BsdXNfdG9fdDM1KHNpemVfdCAq c2l6ZSwgY29uc3QgQVZEeW5hbWljSERSUGx1cyAqcyk7CisKICNlbmRpZiAvKiBBVlVUSUxfSERS X0RZTkFNSUNfTUVUQURBVEFfSCAqLwpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3ZlcnNpb24uaCBi L2xpYmF2dXRpbC92ZXJzaW9uLmgKaW5kZXggOTAwYjc5ODk3MS4uNzYzNTY3Mjk4NSAxMDA2NDQK LS0tIGEvbGliYXZ1dGlsL3ZlcnNpb24uaAorKysgYi9saWJhdnV0aWwvdmVyc2lvbi5oCkBAIC03 OSw3ICs3OSw3IEBACiAgKi8KIAogI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NQUpPUiAgNTgK LSNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlOT1IgICAzCisjZGVmaW5lIExJQkFWVVRJTF9W RVJTSU9OX01JTk9SICAgNAogI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSUNSTyAxMDAKIAog I2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9JTlQgICBBVl9WRVJTSU9OX0lOVChMSUJBVlVUSUxf VkVSU0lPTl9NQUpPUiwgXAotLSAKMi4zOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZl bEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k ZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1k ZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==