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 1243A44EFD for ; Mon, 27 Feb 2023 17:35:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 35330689E3E; Mon, 27 Feb 2023 19:35:08 +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 C6AA4689900 for ; Mon, 27 Feb 2023 19:35:01 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id c19so7441101qtn.13 for ; Mon, 27 Feb 2023 09:35:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vimeo.com; s=google; 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=Z0NycDzRuVbaanhO/zwe56IGuQlNlXUIRcwd0LScmyI=; b=A2/ZkHmHsfo5fALO5VEjYrLmClqD4FpbzmZ5RuIcVzUMtxmYp2G4xm9fEU2SQBUGO6 VOjRonEj1aO0Qo/BXI/M7Dnewj2qvMEy1S7F5I7OkHWa5NCrKJI66C/lOy1zXstAaVNi pZ1xv4WPHAvIUtqu3CE6iPA65SGiiVOYzJbO8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=Z0NycDzRuVbaanhO/zwe56IGuQlNlXUIRcwd0LScmyI=; b=oA6Q7Pt2HdYi11sJA52yrFHrCLiLuNcNltWaULXkL8D8GmFRfd4gkcBr+bBtlsdZud rNpgWVmgoPBe41rYFST+7a3D2tqib3tfEjSCGRLNV0vsiU3q051FNR33Jrrx+bP2OWuD FannFZOfmhfT1b0VAox918uJXh5xXIpB6/lo9KWZiF4U+R3kjB/Jld0y8ijiNtnMo+Up PiOONdaVkMavIFPXFERK9EUrgVcaShpLHGT4E3PgIM4GCSJKKKegiGK/AYOyo00IqQNv F20l88dKc5TGI3w5l6RNjkUEhaGOGqdF5HWBLRQfNj4EgdG8DL3ZSSeR5XKfLZoCvjs/ NpgQ== X-Gm-Message-State: AO0yUKXxQoAgKHwtbhK4B+n4mpQ3VBw52OmQvBApD2WFlSaM3GfvU1OV nLcBpi75NtY4HriKLTna4BGYx54SvSNdkbKg++w= X-Google-Smtp-Source: AK7set+9FNP4b8E8uq3/YsNjaSWyegfcgsuIm4PwUskwD4aruwZ1/x0Q3EJjf304Wo5HnXp4Mceubg== X-Received: by 2002:ac8:4e4d:0:b0:3bf:a8cf:3096 with SMTP id e13-20020ac84e4d000000b003bfa8cf3096mr39037qtw.33.1677519300082; Mon, 27 Feb 2023 09:35:00 -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 x2-20020ac84a02000000b003b9a426d626sm4923004qtq.22.2023.02.27.09.34.59 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 27 Feb 2023 09:34:59 -0800 (PST) Message-ID: <725ad573-5e22-84a3-b12f-e68baa2b3980@vimeo.com> Date: Mon, 27 Feb 2023 12:34:58 -0500 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 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: UmVzZW50IGR1ZSB0byBteSBtYWlsIGNsaWVudCBpbmNvcnJlY3RseSByZS13cmFwcGluZyBsaW5l cyBpbiB0aGUgdmVyc2lvbiBJIHNlbnQgZWFybGllci4KU2VlIHRoZSBwcmV2aW91cyBwYXRjaCBm b3IgY29udGV4dC4KClNpZ25lZC1vZmYtYnk6IFJhcGhhw6tsIFp1bWVyIDxyenVtZXJAdGViYWtv Lm5ldD4KLS0tCiBsaWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuYyB8IDE0NyArKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiBsaWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEu aCB8ICAxMCArKysKIGxpYmF2dXRpbC92ZXJzaW9uLmggICAgICAgICAgICAgIHwgICAyICstCiAz IGZpbGVzIGNoYW5nZWQsIDE1OCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvbGliYXZ1dGlsL2hkcl9keW5hbWljX21ldGFkYXRhLmMgYi9saWJhdnV0aWwvaGRyX2R5 bmFtaWNfbWV0YWRhdGEuYwppbmRleCA5OGYzOTliMDMyLi43MmQzMTBlNjMzIDEwMDY0NAotLS0g YS9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEuYworKysgYi9saWJhdnV0aWwvaGRyX2R5 bmFtaWNfbWV0YWRhdGEuYwpAQCAtMjI1LDMgKzIyNSwxNTAgQEAgaW50IGF2X2R5bmFtaWNfaGRy X3BsdXNfZnJvbV90MzUoQVZEeW5hbWljSERSUGx1cyAqcywgY29uc3QgdWludDhfdCAqZGF0YSwK IAogICAgIHJldHVybiAwOwogfQorCitBVkJ1ZmZlclJlZiAqYXZfZHluYW1pY19oZHJfcGx1c190 b190MzUoQVZEeW5hbWljSERSUGx1cyAqcykKK3sKKyAgICBBVkJ1ZmZlclJlZiAqYnVmOworICAg IHNpemVfdCBzaXplX2JpdHMsIHNpemVfYnl0ZXM7CisgICAgUHV0Qml0Q29udGV4dCBwYmMsICpw YiA9ICZwYmM7CisKKyAgICBpZiAoIXMpCisgICAgICAgIHJldHVybiBOVUxMOworCisgICAgLy8g QnVmZmVyIHNpemUgcGVyIENUQS04NjEtSCBwLjI1My0yNTQ6CisgICAgc2l6ZV9iaXRzID0KKyAg ICAvLyA1NiBiaXRzIGZvciB0aGUgaGVhZGVyCisgICAgNTggKworICAgIC8vIDIgYml0cyBmb3Ig bnVtX3dpbmRvd3MKKyAgICAyICsKKyAgICAvLyA5MzcgYml0cyBmb3Igd2luZG93IGdlb21ldHJ5 IGZvciBlYWNoIHdpbmRvdyBhYm92ZSAxCisgICAgRkZNQVgoKHMtPm51bV93aW5kb3dzIC0gMSks IDApICogOTM3ICsKKyAgICAvLyAyNyBiaXRzIGZvciB0YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9t YXhpbXVtX2x1bWluYW5jZQorICAgIDI3ICsKKyAgICAvLyAxLTM4NTUgYml0cyBmb3IgdGFyZ2V0 ZWQgc3lzdGVtIGRpc3BsYXkgcGVhayBsdW1pbmFuY2UgaW5mb3JtYXRpb24KKyAgICAxICsgKHMt PnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnID8gMTAg KworICAgICAgICBzLT5udW1fcm93c190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVh a19sdW1pbmFuY2UgKgorICAgICAgICBzLT5udW1fY29sc190YXJnZXRlZF9zeXN0ZW1fZGlzcGxh eV9hY3R1YWxfcGVha19sdW1pbmFuY2UgKiA0IDogMCkgKworICAgIC8vIDAtNDQyIGJpdHMgZm9y IGludHJhLXdpbmRvdyBwaXhlbCBkaXN0cmlidXRpb24gaW5mb3JtYXRpb24KKyAgICBzLT5udW1f d2luZG93cyAqIDgyOworICAgIGZvciAoaW50IHcgPSAwOyB3IDwgcy0+bnVtX3dpbmRvd3M7IHcr KykgeworICAgICAgICBzaXplX2JpdHMgKz0gcy0+cGFyYW1zW3ddLm51bV9kaXN0cmlidXRpb25f bWF4cmdiX3BlcmNlbnRpbGVzICogMjQ7CisgICAgfQorICAgIC8vIDEtMzg1NSBiaXRzIGZvciBt YXN0ZXJpbmcgZGlzcGxheSBwZWFrIGx1bWluYW5jZSBpbmZvcm1hdGlvbgorICAgIHNpemVfYml0 cyArPSAxICsgKHMtPm1hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZV9mbGFn ID8gMTAgKworICAgICAgICBzLT5udW1fcm93c19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1YWxfcGVh a19sdW1pbmFuY2UgKgorICAgICAgICBzLT5udW1fY29sc19tYXN0ZXJpbmdfZGlzcGxheV9hY3R1 YWxfcGVha19sdW1pbmFuY2UgKiA0IDogMCkgKworICAgIC8vIDAtNTM3IGJpdHMgZm9yIHBlci13 aW5kb3cgdG9uZW1hcHBpbmcgaW5mb3JtYXRpb24KKyAgICBzLT5udW1fd2luZG93cyAqIDE7Cisg ICAgZm9yIChpbnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7CisgICAgICAgIGlm IChzLT5wYXJhbXNbd10udG9uZV9tYXBwaW5nX2ZsYWcpIHsKKyAgICAgICAgICAgIHNpemVfYml0 cyArPSAyOCArIHMtPnBhcmFtc1t3XS5udW1fYmV6aWVyX2N1cnZlX2FuY2hvcnMgKiAxMDsKKyAg ICAgICAgfQorICAgIH0KKyAgICAvLyAwLTIxIGJpdHMgZm9yIHBlci13aW5kb3cgY29sb3Igc2F0 dXJhdGlvbiBtYXBwaW5nIGluZm9ybWF0aW9uCisgICAgc2l6ZV9iaXRzICs9IHMtPm51bV93aW5k b3dzICogMTsKKyAgICBmb3IgKGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsK KyAgICAgICAgaWYgKHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9uX21hcHBpbmdfZmxhZykg eworICAgICAgICAgICAgc2l6ZV9iaXRzICs9IDY7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBz aXplX2J5dGVzID0gKHNpemVfYml0cyArIDcpIC8gODsKKworICAgIGJ1ZiA9IGF2X2J1ZmZlcl9h bGxvYyhzaXplX2J5dGVzKTsKKyAgICBpZiAoIWJ1ZikgeworICAgICAgICByZXR1cm4gTlVMTDsK KyAgICB9CisKKyAgICBpbml0X3B1dF9iaXRzKHBiLCBidWYtPmRhdGEsIHNpemVfYnl0ZXMpOwor CisgICAgLy8gaXR1X3RfdDM1X2NvdW50cnlfY29kZSBzaGFsbCBiZSAweEI1IChVU0EpCisgICAg cHV0X2JpdHMocGIsIDgsIDB4QjUpOworICAgIC8vIGl0dV90X3QzNV90ZXJtaW5hbF9wcm92aWRl cl9jb2RlIHNoYWxsIGJlIDB4MDAzQworICAgIHB1dF9iaXRzKHBiLCAxNiwgMHgwMDNDKTsKKyAg ICAvLyBpdHVfdF90MzVfdGVybWluYWxfcHJvdmlkZXJfb3JpZW50ZWRfY29kZSBpcyBzZXQgdG8g U1QgMjA5NC00MAorICAgIHB1dF9iaXRzKHBiLCAxNiwgMHgwMDAxKTsKKyAgICAvLyBhcHBsaWNh dGlvbl9pZGVudGlmaWVyIHNoYWxsIGJlIHNldCB0byA0CisgICAgcHV0X2JpdHMocGIsIDgsIDQp OworICAgIC8vIGFwcGxpY2F0aW9uX21vZGUgaXMgc2V0IHRvIEFwcGxpY2F0aW9uIFZlcnNpb24g MQorICAgIHB1dF9iaXRzKHBiLCA4LCAxKTsKKworICAgIC8vIFBheWxvYWQgYXMgcGVyIENUQS04 NjEtSCBwLjI1My0yNTQKKyAgICBwdXRfYml0cyhwYiwgMiwgcy0+bnVtX3dpbmRvd3MpOworCisg ICAgZm9yIChpbnQgdyA9IDE7IHcgPCBzLT5udW1fd2luZG93czsgdysrKSB7CisgICAgICAgIHB1 dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLndpbmRvd191cHBlcl9sZWZ0X2Nvcm5lcl94Lm51 bSAvIHMtPnBhcmFtc1t3XS53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJfeC5kZW4pOworICAgICAg ICBwdXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS53aW5kb3dfdXBwZXJfbGVmdF9jb3JuZXJf eS5udW0gLyBzLT5wYXJhbXNbd10ud2luZG93X3VwcGVyX2xlZnRfY29ybmVyX3kuZGVuKTsKKyAg ICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3JpZ2h0X2Nv cm5lcl94Lm51bSAvIHMtPnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVyX3guZGVu KTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10ud2luZG93X2xvd2VyX3Jp Z2h0X2Nvcm5lcl95Lm51bSAvIHMtPnBhcmFtc1t3XS53aW5kb3dfbG93ZXJfcmlnaHRfY29ybmVy X3kuZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uY2VudGVyX29m X2VsbGlwc2VfeCk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwgcy0+cGFyYW1zW3ddLmNlbnRl cl9vZl9lbGxpcHNlX3kpOworICAgICAgICBwdXRfYml0cyhwYiwgOCwgcy0+cGFyYW1zW3ddLnJv dGF0aW9uX2FuZ2xlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDE2LCBzLT5wYXJhbXNbd10uc2Vt aW1ham9yX2F4aXNfaW50ZXJuYWxfZWxsaXBzZSk7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNiwg cy0+cGFyYW1zW3ddLnNlbWltYWpvcl9heGlzX2V4dGVybmFsX2VsbGlwc2UpOworICAgICAgICBw dXRfYml0cyhwYiwgMTYsIHMtPnBhcmFtc1t3XS5zZW1pbWlub3JfYXhpc19leHRlcm5hbF9lbGxp cHNlKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDEsIHMtPnBhcmFtc1t3XS5vdmVybGFwX3Byb2Nl c3Nfb3B0aW9uKTsKKyAgICB9CisKKyAgICBwdXRfYml0cyhwYiwgMjcsIHMtPnRhcmdldGVkX3N5 c3RlbV9kaXNwbGF5X21heGltdW1fbHVtaW5hbmNlLm51bSAqIGx1bWluYW5jZV9kZW4gLworICAg ICAgICBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9tYXhpbXVtX2x1bWluYW5jZS5kZW4pOwor ICAgIHB1dF9iaXRzKHBiLCAxLCBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVh a19sdW1pbmFuY2VfZmxhZyk7CisgICAgaWYgKHMtPnRhcmdldGVkX3N5c3RlbV9kaXNwbGF5X2Fj dHVhbF9wZWFrX2x1bWluYW5jZV9mbGFnKSB7CisgICAgICAgIHB1dF9iaXRzKHBiLCA1LCBzLT5u dW1fcm93c190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2UpOwor ICAgICAgICBwdXRfYml0cyhwYiwgNSwgcy0+bnVtX2NvbHNfdGFyZ2V0ZWRfc3lzdGVtX2Rpc3Bs YXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBz LT5udW1fcm93c190YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2U7 IGkrKykgeworICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBzLT5udW1fY29sc190YXJn ZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1YWxfcGVha19sdW1pbmFuY2U7IGorKykgeworICAgICAg ICAgICAgICAgIHB1dF9iaXRzKHBiLCA0LCBzLT50YXJnZXRlZF9zeXN0ZW1fZGlzcGxheV9hY3R1 YWxfcGVha19sdW1pbmFuY2VbaV1bal0ubnVtICogcGVha19sdW1pbmFuY2VfZGVuIC8KKyAgICAg ICAgICAgICAgICAgICAgcy0+dGFyZ2V0ZWRfc3lzdGVtX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVt aW5hbmNlW2ldW2pdLmRlbik7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKKyAg ICBmb3IgKGludCB3ID0gMDsgdyA8IHMtPm51bV93aW5kb3dzOyB3KyspIHsKKyAgICAgICAgZm9y IChpbnQgaSA9IDA7IGkgPCAzOyBpKyspIHsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxNywg cy0+cGFyYW1zW3ddLm1heHNjbFtpXS5udW0gKiByZ2JfZGVuIC8gcy0+cGFyYW1zW3ddLm1heHNj bFtpXS5kZW4pOworICAgICAgICB9CisgICAgICAgIHB1dF9iaXRzKHBiLCAxNywgcy0+cGFyYW1z W3ddLmF2ZXJhZ2VfbWF4cmdiLm51bSAqIHJnYl9kZW4gLyBzLT5wYXJhbXNbd10uYXZlcmFnZV9t YXhyZ2IuZGVuKTsKKyAgICAgICAgcHV0X2JpdHMocGIsIDQsIHMtPnBhcmFtc1t3XS5udW1fZGlz dHJpYnV0aW9uX21heHJnYl9wZXJjZW50aWxlcyk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgcy0+cGFyYW1zW3ddLm51bV9kaXN0cmlidXRpb25fbWF4cmdiX3BlcmNlbnRpbGVzOyBpKysp IHsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCA3LCBzLT5wYXJhbXNbd10uZGlzdHJpYnV0aW9u X21heHJnYltpXS5wZXJjZW50YWdlKTsKKyAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAxNywgcy0+ cGFyYW1zW3ddLmRpc3RyaWJ1dGlvbl9tYXhyZ2JbaV0ucGVyY2VudGlsZS5udW0gKiByZ2JfZGVu IC8KKyAgICAgICAgICAgICAgICBzLT5wYXJhbXNbd10uZGlzdHJpYnV0aW9uX21heHJnYltpXS5w ZXJjZW50aWxlLmRlbik7CisgICAgICAgIH0KKyAgICAgICAgcHV0X2JpdHMocGIsIDEwLCBzLT5w YXJhbXNbd10uZnJhY3Rpb25fYnJpZ2h0X3BpeGVscy5udW0gKiBmcmFjdGlvbl9waXhlbF9kZW4g LworICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmZyYWN0aW9uX2JyaWdodF9waXhlbHMuZGVuKTsK KyAgICB9CisKKyAgICBwdXRfYml0cyhwYiwgMSwgcy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFs X3BlYWtfbHVtaW5hbmNlX2ZsYWcpOworICAgIGlmIChzLT5tYXN0ZXJpbmdfZGlzcGxheV9hY3R1 YWxfcGVha19sdW1pbmFuY2VfZmxhZykgeworICAgICAgICBwdXRfYml0cyhwYiwgNSwgcy0+bnVt X3Jvd3NfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlKTsKKyAgICAgICAg cHV0X2JpdHMocGIsIDUsIHMtPm51bV9jb2xzX21hc3RlcmluZ19kaXNwbGF5X2FjdHVhbF9wZWFr X2x1bWluYW5jZSk7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcy0+bnVtX3Jvd3NfbWFz dGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlOyBpKyspIHsKKyAgICAgICAgICAg IGZvciAoaW50IGogPSAwOyBqIDwgcy0+bnVtX2NvbHNfbWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFs X3BlYWtfbHVtaW5hbmNlOyBqKyspIHsKKyAgICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgNCwg cy0+bWFzdGVyaW5nX2Rpc3BsYXlfYWN0dWFsX3BlYWtfbHVtaW5hbmNlW2ldW2pdLm51bSAqIHBl YWtfbHVtaW5hbmNlX2RlbiAvCisgICAgICAgICAgICAgICAgICAgIHMtPm1hc3RlcmluZ19kaXNw bGF5X2FjdHVhbF9wZWFrX2x1bWluYW5jZVtpXVtqXS5kZW4pOworICAgICAgICAgICAgfQorICAg ICAgICB9CisgICAgfQorCisgICAgZm9yIChpbnQgdyA9IDA7IHcgPCBzLT5udW1fd2luZG93czsg dysrKSB7CisgICAgICAgIHB1dF9iaXRzKHBiLCAxLCBzLT5wYXJhbXNbd10udG9uZV9tYXBwaW5n X2ZsYWcpOworICAgICAgICBpZiAocy0+cGFyYW1zW3ddLnRvbmVfbWFwcGluZ19mbGFnKSB7Cisg ICAgICAgICAgICBwdXRfYml0cyhwYiwgMTIsIHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3gubnVt ICoga25lZV9wb2ludF9kZW4gLyBzLT5wYXJhbXNbd10ua25lZV9wb2ludF94LmRlbik7CisgICAg ICAgICAgICBwdXRfYml0cyhwYiwgMTIsIHMtPnBhcmFtc1t3XS5rbmVlX3BvaW50X3kubnVtICog a25lZV9wb2ludF9kZW4gLyBzLT5wYXJhbXNbd10ua25lZV9wb2ludF95LmRlbik7CisgICAgICAg ICAgICBwdXRfYml0cyhwYiwgNCwgcy0+cGFyYW1zW3ddLm51bV9iZXppZXJfY3VydmVfYW5jaG9y cyk7CisgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IHMtPnBhcmFtc1t3XS5udW1fYmV6 aWVyX2N1cnZlX2FuY2hvcnM7IGkrKykgeworICAgICAgICAgICAgICAgIHB1dF9iaXRzKHBiLCAx MCwgcy0+cGFyYW1zW3ddLmJlemllcl9jdXJ2ZV9hbmNob3JzW2ldLm51bSAqIGJlemllcl9hbmNo b3JfZGVuIC8KKyAgICAgICAgICAgICAgICAgICAgcy0+cGFyYW1zW3ddLmJlemllcl9jdXJ2ZV9h bmNob3JzW2ldLmRlbik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwdXRfYml0cyhwYiwg MSwgcy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRpb25fbWFwcGluZ19mbGFnKTsKKyAgICAgICAg ICAgIGlmIChzLT5wYXJhbXNbd10uY29sb3Jfc2F0dXJhdGlvbl9tYXBwaW5nX2ZsYWcpIHsKKyAg ICAgICAgICAgICAgICBwdXRfYml0cyhwYiwgNiwgcy0+cGFyYW1zW3ddLmNvbG9yX3NhdHVyYXRp b25fd2VpZ2h0Lm51bSAqIHNhdHVyYXRpb25fd2VpZ2h0X2RlbiAvCisgICAgICAgICAgICAgICAg ICAgIHMtPnBhcmFtc1t3XS5jb2xvcl9zYXR1cmF0aW9uX3dlaWdodC5kZW4pOworICAgICAgICAg ICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgZmx1c2hfcHV0X2JpdHMocGIpOworICAgIHJl dHVybiBidWY7Cit9CmRpZmYgLS1naXQgYS9saWJhdnV0aWwvaGRyX2R5bmFtaWNfbWV0YWRhdGEu aCBiL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5oCmluZGV4IDFmOTUzZWYxZjUuLmY3 NWQzZTA3MzkgMTAwNjQ0Ci0tLSBhL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5oCisr KyBiL2xpYmF2dXRpbC9oZHJfZHluYW1pY19tZXRhZGF0YS5oCkBAIC0yMSw2ICsyMSw3IEBACiAj aWZuZGVmIEFWVVRJTF9IRFJfRFlOQU1JQ19NRVRBREFUQV9ICiAjZGVmaW5lIEFWVVRJTF9IRFJf RFlOQU1JQ19NRVRBREFUQV9ICiAKKyNpbmNsdWRlICJidWZmZXIuaCIKICNpbmNsdWRlICJmcmFt ZS5oIgogI2luY2x1ZGUgInJhdGlvbmFsLmgiCiAKQEAgLTM1MSw0ICszNTIsMTMgQEAgQVZEeW5h bWljSERSUGx1cyAqYXZfZHluYW1pY19oZHJfcGx1c19jcmVhdGVfc2lkZV9kYXRhKEFWRnJhbWUg KmZyYW1lKTsKIGludCBhdl9keW5hbWljX2hkcl9wbHVzX2Zyb21fdDM1KEFWRHluYW1pY0hEUlBs dXMgKnMsIGNvbnN0IHVpbnQ4X3QgKmRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgc2l6ZSk7CiAKKy8qKgorICogU2VyaWFsaXplIGR5bmFtaWMgSERSMTArIG1ldGFk YXRhIHRvIGEgdXNlciBkYXRhIHJlZ2lzdGVyZWQgSVRVLVQgVC4zNSBidWZmZXIuCisgKiBAcGFy YW0gcyBBIHBvaW50ZXIgY29udGFpbmluZyB0aGUgZGVjb2RlZCBBVkR5bmFtaWNIRFJQbHVzIHN0 cnVjdHVyZS4KKyAqCisgKiBAcmV0dXJuIFBvaW50ZXIgdG8gYW4gQVZCdWZmZXJSZWYgY29udGFp bmluZyB0aGUgcmF3IElUVS1UIFQuMzUgcmVwcmVzZW50YXRpb24KKyAqICAgICAgICAgb2YgdGhl IEhEUjEwKyBtZXRhZGF0YSBpZiBzdWNjZWVkLCBvciBOVUxMIGlmIGJ1ZmZlciBhbGxvY2F0aW9u IGZhaWxzLgorICovCitBVkJ1ZmZlclJlZiAqYXZfZHluYW1pY19oZHJfcGx1c190b190MzUoQVZE eW5hbWljSERSUGx1cyAqcyk7CisKICNlbmRpZiAvKiBBVlVUSUxfSERSX0RZTkFNSUNfTUVUQURB VEFfSCAqLwpkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL3ZlcnNpb24uaCBiL2xpYmF2dXRpbC92ZXJz aW9uLmgKaW5kZXggOTAwYjc5ODk3MS4uNzYzNTY3Mjk4NSAxMDA2NDQKLS0tIGEvbGliYXZ1dGls L3ZlcnNpb24uaAorKysgYi9saWJhdnV0aWwvdmVyc2lvbi5oCkBAIC03OSw3ICs3OSw3IEBACiAg Ki8KIAogI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NQUpPUiAgNTgKLSNkZWZpbmUgTElCQVZV VElMX1ZFUlNJT05fTUlOT1IgICAzCisjZGVmaW5lIExJQkFWVVRJTF9WRVJTSU9OX01JTk9SICAg NAogI2RlZmluZSBMSUJBVlVUSUxfVkVSU0lPTl9NSUNSTyAxMDAKIAogI2RlZmluZSBMSUJBVlVU SUxfVkVSU0lPTl9JTlQgICBBVl9WRVJTSU9OX0lOVChMSUJBVlVUSUxfVkVSU0lPTl9NQUpPUiwg XAotLSAKMi4zOS4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0 dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZm bXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==