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 533D8428F4 for ; Sat, 5 Nov 2022 15:26:56 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 454A268B1F2; Sat, 5 Nov 2022 17:26:34 +0200 (EET) Received: from ssq0.pkh.me (laubervilliers-656-1-228-164.w92-154.abo.wanadoo.fr [92.154.28.164]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C5A7668B1F1 for ; Sat, 5 Nov 2022 17:26:27 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pkh.me; s=selector1; t=1667661980; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=z5b5eo1HsizM9HAF1iC4Tq/F0UcLxIKypZbYP34grbQ=; b=CF1TgX/4+IyHxgBlTLxl+uLKfWqUmD2J/9qr+sqibDPXvoTXjFkGtl38xdBvenRB0Va4H4 v/tXUG68oiEBN/QT8cBh9zqSlid88VH09BTM6OzA4Kc/4k2HvI5CNI84xTbJ0vqvcMYhNS ndDK/2Rjx6ykcRS442aRtuT5UyRZxvA= Received: from localhost (ssq0.pkh.me [local]) by ssq0.pkh.me (OpenSMTPD) with ESMTPA id cfe2cb83; Sat, 5 Nov 2022 15:26:20 +0000 (UTC) From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= To: ffmpeg-devel@ffmpeg.org Date: Sat, 5 Nov 2022 16:26:04 +0100 Message-Id: <20221105152617.1809282-3-u@pkh.me> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20221105152617.1809282-1-u@pkh.me> References: <20221105152617.1809282-1-u@pkh.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 02/15] avfilter: add palette utils 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: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= 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: VGhlc2UgY29sb3IgbWFuYWdlbWVudCBoZWxwZXJzIHdpbGwgYmUgc2hhcmVkIGJ5IHBhbGV0dGVn ZW4gYW5kCnBhbGV0dGV1c2UgaW4gdGhlIGZvbGxvd2luZyBjb21taXRzLgoKTm90ZSB0aGF0IGl0 IHByb2JhYmx5IG1ha2VzIHNlbnNlIHRvIHNoYXJlIGF0IGxlYXN0IHRoZSBzUkdCL2xpbmVhcgpm dW5jdGlvbnMgd2l0aCBvdGhlciBmaWx0ZXJzIGF0IHNvbWUgcG9pbnQuCi0tLQogbGliYXZmaWx0 ZXIvcGFsZXR0ZS5jIHwgMTAxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKwogbGliYXZmaWx0ZXIvcGFsZXR0ZS5oIHwgIDU0ICsrKysrKysrKysrKysrKysrKysrKysK IDIgZmlsZXMgY2hhbmdlZCwgMTU1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBs aWJhdmZpbHRlci9wYWxldHRlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWJhdmZpbHRlci9wYWxl dHRlLmgKCmRpZmYgLS1naXQgYS9saWJhdmZpbHRlci9wYWxldHRlLmMgYi9saWJhdmZpbHRlci9w YWxldHRlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uODA1MTRjNDM2 YgotLS0gL2Rldi9udWxsCisrKyBiL2xpYmF2ZmlsdGVyL3BhbGV0dGUuYwpAQCAtMCwwICsxLDEw MSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMCBCasO2cm4gT3R0b3Nzb24KKyAqIENvcHly aWdodCAoYykgMjAyMiBDbMOpbWVudCBCxZNzY2ggPHUgcGtoIG1lPgorICoKKyAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhIGNvcHkKKyAqIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRh dGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bworICogZGVhbCBpbiB0aGUgU29mdHdhcmUg d2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUKKyAq IHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUs IHN1YmxpY2Vuc2UsIGFuZC9vcgorICogc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQg dG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKKyAqIGZ1cm5pc2hlZCB0 byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6CisgKgorICogVGhl IGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwg YmUgaW5jbHVkZWQgaW4KKyAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2Yg dGhlIFNvZnR3YXJlLgorICoKKyAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCisgKiBJTVBMSUVELCBJTkNM VURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU WSwKKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1F TlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQorICogQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVS UyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgorICogTElBQklMSVRZ LCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFS SVNJTkcKKyAqIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJF IE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MKKyAqIElOIFRIRSBTT0ZUV0FSRS4KKyAqLwor CisjaW5jbHVkZSA8bWF0aC5oPgorCisjaW5jbHVkZSAibGliYXZ1dGlsL2NvbW1vbi5oIgorI2lu Y2x1ZGUgInBhbGV0dGUuaCIKKworLyoqCisgKiBUYWJsZSBtYXBwaW5nIGZvcm11bGE6CisgKiAg IGYoeCkgPSB4IDwgMC4wNDA0NSA/IHgvMTIuOTIgOiAoKHgrLjA1NSkvKDErLjA1NSkpXjIuNAor ICogV2hlcmUgeCBpcyB0aGUgbm9ybWFsaXplZCBpbmRleCBpbiB0aGUgdGFibGUuCisgKi8KK3N0 YXRpYyBjb25zdCBmbG9hdCBzcmdiMmxpbmVhclsyNTZdID0geworICAgIDAuMDAwMDAwLCAwLjAw MDMwNCwgMC4wMDA2MDcsIDAuMDAwOTExLCAwLjAwMTIxNCwgMC4wMDE1MTgsIDAuMDAxODIxLCAw LjAwMjEyNSwKKyAgICAwLjAwMjQyOCwgMC4wMDI3MzIsIDAuMDAzMDM1LCAwLjAwMzM0NywgMC4w MDM2NzcsIDAuMDA0MDI1LCAwLjAwNDM5MSwgMC4wMDQ3NzcsCisgICAgMC4wMDUxODIsIDAuMDA1 NjA1LCAwLjAwNjA0OSwgMC4wMDY1MTIsIDAuMDA2OTk1LCAwLjAwNzQ5OSwgMC4wMDgwMjMsIDAu MDA4NTY4LAorICAgIDAuMDA5MTM0LCAwLjAwOTcyMSwgMC4wMTAzMzAsIDAuMDEwOTYwLCAwLjAx MTYxMiwgMC4wMTIyODYsIDAuMDEyOTgzLCAwLjAxMzcwMiwKKyAgICAwLjAxNDQ0NCwgMC4wMTUy MDksIDAuMDE1OTk2LCAwLjAxNjgwNywgMC4wMTc2NDIsIDAuMDE4NTAwLCAwLjAxOTM4MiwgMC4w MjAyODksCisgICAgMC4wMjEyMTksIDAuMDIyMTc0LCAwLjAyMzE1MywgMC4wMjQxNTgsIDAuMDI1 MTg3LCAwLjAyNjI0MSwgMC4wMjczMjEsIDAuMDI4NDI2LAorICAgIDAuMDI5NTU3LCAwLjAzMDcx MywgMC4wMzE4OTYsIDAuMDMzMTA1LCAwLjAzNDM0MCwgMC4wMzU2MDEsIDAuMDM2ODg5LCAwLjAz ODIwNCwKKyAgICAwLjAzOTU0NiwgMC4wNDA5MTUsIDAuMDQyMzExLCAwLjA0MzczNSwgMC4wNDUx ODYsIDAuMDQ2NjY1LCAwLjA0ODE3MiwgMC4wNDk3MDcsCisgICAgMC4wNTEyNjksIDAuMDUyODYx LCAwLjA1NDQ4MCwgMC4wNTYxMjgsIDAuMDU3ODA1LCAwLjA1OTUxMSwgMC4wNjEyNDYsIDAuMDYz MDEwLAorICAgIDAuMDY0ODAzLCAwLjA2NjYyNiwgMC4wNjg0NzgsIDAuMDcwMzYwLCAwLjA3MjI3 MiwgMC4wNzQyMTQsIDAuMDc2MTg1LCAwLjA3ODE4NywKKyAgICAwLjA4MDIyMCwgMC4wODIyODMs IDAuMDg0Mzc2LCAwLjA4NjUwMCwgMC4wODg2NTYsIDAuMDkwODQyLCAwLjA5MzA1OSwgMC4wOTUz MDcsCisgICAgMC4wOTc1ODcsIDAuMDk5ODk5LCAwLjEwMjI0MiwgMC4xMDQ2MTYsIDAuMTA3MDIz LCAwLjEwOTQ2MiwgMC4xMTE5MzIsIDAuMTE0NDM1LAorICAgIDAuMTE2OTcxLCAwLjExOTUzOCwg MC4xMjIxMzksIDAuMTI0NzcyLCAwLjEyNzQzOCwgMC4xMzAxMzYsIDAuMTMyODY4LCAwLjEzNTYz MywKKyAgICAwLjEzODQzMiwgMC4xNDEyNjMsIDAuMTQ0MTI4LCAwLjE0NzAyNywgMC4xNDk5NjAs IDAuMTUyOTI2LCAwLjE1NTkyNiwgMC4xNTg5NjEsCisgICAgMC4xNjIwMjksIDAuMTY1MTMyLCAw LjE2ODI2OSwgMC4xNzE0NDEsIDAuMTc0NjQ3LCAwLjE3Nzg4OCwgMC4xODExNjQsIDAuMTg0NDc1 LAorICAgIDAuMTg3ODIxLCAwLjE5MTIwMiwgMC4xOTQ2MTgsIDAuMTk4MDY5LCAwLjIwMTU1Niwg MC4yMDUwNzksIDAuMjA4NjM3LCAwLjIxMjIzMSwKKyAgICAwLjIxNTg2MSwgMC4yMTk1MjYsIDAu MjIzMjI4LCAwLjIyNjk2NiwgMC4yMzA3NDAsIDAuMjM0NTUxLCAwLjIzODM5OCwgMC4yNDIyODEs CisgICAgMC4yNDYyMDEsIDAuMjUwMTU4LCAwLjI1NDE1MiwgMC4yNTgxODMsIDAuMjYyMjUxLCAw LjI2NjM1NiwgMC4yNzA0OTgsIDAuMjc0Njc3LAorICAgIDAuMjc4ODk0LCAwLjI4MzE0OSwgMC4y ODc0NDEsIDAuMjkxNzcxLCAwLjI5NjEzOCwgMC4zMDA1NDQsIDAuMzA0OTg3LCAwLjMwOTQ2OSwK KyAgICAwLjMxMzk4OSwgMC4zMTg1NDcsIDAuMzIzMTQzLCAwLjMyNzc3OCwgMC4zMzI0NTIsIDAu MzM3MTY0LCAwLjM0MTkxNCwgMC4zNDY3MDQsCisgICAgMC4zNTE1MzMsIDAuMzU2NDAwLCAwLjM2 MTMwNywgMC4zNjYyNTMsIDAuMzcxMjM4LCAwLjM3NjI2MiwgMC4zODEzMjYsIDAuMzg2NDI5LAor ICAgIDAuMzkxNTcyLCAwLjM5Njc1NSwgMC40MDE5NzgsIDAuNDA3MjQwLCAwLjQxMjU0MywgMC40 MTc4ODUsIDAuNDIzMjY4LCAwLjQyODY5MCwKKyAgICAwLjQzNDE1NCwgMC40Mzk2NTcsIDAuNDQ1 MjAxLCAwLjQ1MDc4NiwgMC40NTY0MTEsIDAuNDYyMDc3LCAwLjQ2Nzc4NCwgMC40NzM1MzEsCisg ICAgMC40NzkzMjAsIDAuNDg1MTUwLCAwLjQ5MTAyMSwgMC40OTY5MzMsIDAuNTAyODg2LCAwLjUw ODg4MSwgMC41MTQ5MTgsIDAuNTIwOTk2LAorICAgIDAuNTI3MTE1LCAwLjUzMzI3NiwgMC41Mzk0 NzksIDAuNTQ1NzI0LCAwLjU1MjAxMSwgMC41NTgzNDAsIDAuNTY0NzEyLCAwLjU3MTEyNSwKKyAg ICAwLjU3NzU4MCwgMC41ODQwNzgsIDAuNTkwNjE5LCAwLjU5NzIwMiwgMC42MDM4MjcsIDAuNjEw NDk2LCAwLjYxNzIwNywgMC42MjM5NjAsCisgICAgMC42MzA3NTcsIDAuNjM3NTk3LCAwLjY0NDQ4 MCwgMC42NTE0MDYsIDAuNjU4Mzc1LCAwLjY2NTM4NywgMC42NzI0NDMsIDAuNjc5NTQyLAorICAg IDAuNjg2Njg1LCAwLjY5Mzg3MiwgMC43MDExMDIsIDAuNzA4Mzc2LCAwLjcxNTY5NCwgMC43MjMw NTUsIDAuNzMwNDYxLCAwLjczNzkxMCwKKyAgICAwLjc0NTQwNCwgMC43NTI5NDIsIDAuNzYwNTI1 LCAwLjc2ODE1MSwgMC43NzU4MjIsIDAuNzgzNTM4LCAwLjc5MTI5OCwgMC43OTkxMDMsCisgICAg MC44MDY5NTIsIDAuODE0ODQ3LCAwLjgyMjc4NiwgMC44MzA3NzAsIDAuODM4Nzk5LCAwLjg0Njg3 MywgMC44NTQ5OTMsIDAuODYzMTU3LAorICAgIDAuODcxMzY3LCAwLjg3OTYyMiwgMC44ODc5MjMs IDAuODk2MjY5LCAwLjkwNDY2MSwgMC45MTMwOTksIDAuOTIxNTgyLCAwLjkzMDExMSwKKyAgICAw LjkzODY4NiwgMC45NDczMDcsIDAuOTU1OTczLCAwLjk2NDY4NiwgMC45NzM0NDUsIDAuOTgyMjUx LCAwLjk5MTEwMiwgMS4wMDAwMDAsCit9OworCitmbG9hdCBmZl9zcmdiX3U4X3RvX2xpbmVhcl9m MzIodWludDhfdCB4KQoreworICAgIHJldHVybiBzcmdiMmxpbmVhclt4XTsKK30KKwordWludDhf dCBmZl9saW5lYXJfZjMyX3RvX3NyZ2JfdTgoZmxvYXQgeCkKK3sKKyAgICBjb25zdCBmbG9hdCB2 ID0geCA8IDAuMDAzMTMwOGYgPyB4ICogMTIuOTJmIDogcG93ZigxLjA1NWYgKiB4LCAxLmYvMi40 ZikgLSAwLjA1NWY7CisgICAgcmV0dXJuIGF2X2NsaXBfdWludDgobHJpbnRmKHYgKiAyNTUuZikp OworfQorCitzdHJ1Y3QgTGFiIGZmX3NyZ2JfdThfdG9fb2tsYWIodWludDMyX3Qgc3JnYikKK3sK KyAgICBjb25zdCBmbG9hdCByID0gc3JnYjJsaW5lYXJbc3JnYiA+PiAxNiAmIDB4ZmZdOworICAg IGNvbnN0IGZsb2F0IGcgPSBzcmdiMmxpbmVhcltzcmdiID4+ICA4ICYgMHhmZl07CisgICAgY29u c3QgZmxvYXQgYiA9IHNyZ2IybGluZWFyW3NyZ2IgICAgICAgJiAweGZmXTsKKworICAgIGNvbnN0 IGZsb2F0IGwgPSAwLjQxMjIyMTQ3MDhmICogciArIDAuNTM2MzMyNTM2M2YgKiBnICsgMC4wNTE0 NDU5OTI5ZiAqIGI7CisgICAgY29uc3QgZmxvYXQgbSA9IDAuMjExOTAzNDk4MmYgKiByICsgMC42 ODA2OTk1NDUxZiAqIGcgKyAwLjEwNzM5Njk1NjZmICogYjsKKyAgICBjb25zdCBmbG9hdCBzID0g MC4wODgzMDI0NjE5ZiAqIHIgKyAwLjI4MTcxODgzNzZmICogZyArIDAuNjI5OTc4NzAwNWYgKiBi OworCisgICAgY29uc3QgZmxvYXQgbF8gPSBjYnJ0ZihsKTsKKyAgICBjb25zdCBmbG9hdCBtXyA9 IGNicnRmKG0pOworICAgIGNvbnN0IGZsb2F0IHNfID0gY2JydGYocyk7CisKKyAgICBjb25zdCBz dHJ1Y3QgTGFiIHJldCA9IHsKKyAgICAgICAgLkwgPSAwLjIxMDQ1NDI1NTNmICogbF8gKyAwLjc5 MzYxNzc4NTBmICogbV8gLSAwLjAwNDA3MjA0NjhmICogc18sCisgICAgICAgIC5hID0gMS45Nzc5 OTg0OTUxZiAqIGxfIC0gMi40Mjg1OTIyMDUwZiAqIG1fICsgMC40NTA1OTM3MDk5ZiAqIHNfLAor ICAgICAgICAuYiA9IDAuMDI1OTA0MDM3MWYgKiBsXyArIDAuNzgyNzcxNzY2MmYgKiBtXyAtIDAu ODA4Njc1NzY2MGYgKiBzXywKKyAgICB9OworCisgICAgcmV0dXJuIHJldDsKK30KZGlmZiAtLWdp dCBhL2xpYmF2ZmlsdGVyL3BhbGV0dGUuaCBiL2xpYmF2ZmlsdGVyL3BhbGV0dGUuaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yYzFjNjA5YmEyCi0tLSAvZGV2L251bGwK KysrIGIvbGliYXZmaWx0ZXIvcGFsZXR0ZS5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5 cmlnaHQgKGMpIDIwMjAgQmrDtnJuIE90dG9zc29uCisgKiBDb3B5cmlnaHQgKGMpIDIwMjIgQ2zD qW1lbnQgQsWTc2NoIDx1IHBraCBtZT4KKyAqCisgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFu dGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5CisgKiBv ZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAi U29mdHdhcmUiKSwgdG8KKyAqIGRlYWwgaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rp b24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlCisgKiByaWdodHMgdG8gdXNlLCBj b3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQv b3IKKyAqIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25z IHRvIHdob20gdGhlIFNvZnR3YXJlIGlzCisgKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3Qg dG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgorICoKKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQg bm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluCisg KiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KKyAq CisgKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBP RiBBTlkgS0lORCwgRVhQUkVTUyBPUgorICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElN SVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCisgKiBGSVRORVNTIEZP UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBT SEFMTCBUSEUKKyAqIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBB TlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKKyAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBB Q1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HCisgKiBGUk9NLCBP VVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9U SEVSIERFQUxJTkdTCisgKiBJTiBUSEUgU09GVFdBUkUuCisgKi8KKworI2lmbmRlZiBBVkZJTFRF Ul9QQUxFVFRFX0gKKyNkZWZpbmUgQVZGSUxURVJfUEFMRVRURV9ICisKKyNpbmNsdWRlIDxtYXRo Lmg+CisjaW5jbHVkZSA8c3RkaW50Lmg+CisKKyNpbmNsdWRlICJsaWJhdnV0aWwvYXR0cmlidXRl cy5oIgorCitzdHJ1Y3QgTGFiIHsKKyAgICBmbG9hdCBMLCBhLCBiOworfTsKKworLyoqCisgKiBN YXAgc1JHQiA4LWJpdCBjb2xvciBjb21wb25lbnQgdG8gbGluZWFyIGZsb2F0IHZhbHVlIChnYW1t YSBleHBhbmQgZnJvbQorICogZWxlY3RyaWNhbCB0byBvcHRpY2FsIHZhbHVlKS4KKyAqLworZmxv YXQgZmZfc3JnYl91OF90b19saW5lYXJfZjMyKHVpbnQ4X3QgeCk7CisKKy8qKgorICogTWFwIGEg bGluZWFyIGZsb2F0IHZhbHVlIHRvIGEgc1JHQiA4LWJpdCBjb2xvciBjb21wb25lbnQgKGdhbW1h IGNvbXByZXNzZWQKKyAqIGZyb20gb3B0aWNhbCB0byBlbGVjdHJpY2FsIHZhbHVlKS4KKyAqLwor dWludDhfdCBmZl9saW5lYXJfZjMyX3RvX3NyZ2JfdTgoZmxvYXQgeCk7CisKKy8qKgorICogc1JH QiAobm9uLWxpbmVhcikgdG8gT2tMYWIgY29udmVyc2lvbgorICogQHNlZSBodHRwczovL2JvdHRv c3Nvbi5naXRodWIuaW8vcG9zdHMvb2tsYWIvCisgKi8KK3N0cnVjdCBMYWIgZmZfc3JnYl91OF90 b19va2xhYih1aW50MzJfdCBzcmdiKTsKKworI2VuZGlmIC8qIEFWRklMVEVSX1BBTEVUVEVfSCAq LwotLSAKMi4zOC4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0 dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJz Y3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZm bXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==