Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wUtt4-001Wh9-2e for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Jun 2026 22:16:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wUtt2-003dzF-2K for pgsql-hackers@arkaria.postgresql.org; Wed, 03 Jun 2026 22:16:32 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wUtt2-003dz6-13 for pgsql-hackers@lists.postgresql.org; Wed, 03 Jun 2026 22:16:32 +0000 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wUtt0-000000017ys-0RKT for pgsql-hackers@postgresql.org; Wed, 03 Jun 2026 22:16:32 +0000 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-490b915ded5so380335e9.3 for ; Wed, 03 Jun 2026 15:16:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1780524984; x=1781129784; darn=postgresql.org; h=mime-version:subject:references:in-reply-to:message-id:to:from:date :from:to:cc:subject:date:message-id:reply-to; bh=AG9qKlkQ919HgNAgS3Y4ZkDLhWm7GFxPbd56csDSzOE=; b=X3Fs0mWj7J49F2FDvTkVpYwkt7PHEmuaD20X9r4DgeE/Cbb/ZUeDaF47gOTfY2UeZs +n7KziGT0Wso19EaFx0bo2hOZcKteD+EX6J5B1qOSpvCctR716DZbkDV6sTf+PjgQov6 HqbtcFnBkuERNDdzVLKIvs7csUzkH3E+La85KwRAcPjxo88u5wHREfz1eig6QRxnNUWI OtaDXMfhpRTP/a86fKX9fsMv7s0mDXmDfV8zLnH0+332lrCEAJwjvpGcBGZYEpjM/nAV QZtdrpG9ohoxqSwq/A5HIDCX32UB4IXm75SCYsRb034lq4APIqX0WDeWki7IdnO+hDqY mu5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780524984; x=1781129784; h=mime-version:subject:references:in-reply-to:message-id:to:from:date :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=AG9qKlkQ919HgNAgS3Y4ZkDLhWm7GFxPbd56csDSzOE=; b=WPcRiWK7n7ipfETVfCtGOCvs7dQOktFlKKmZ9T8z967SXWrOdTBkl8NZPhmz4qStv2 S1zruZNPn16mNq/1bIGaGBFWNp8Q8AB97hmp6Wz8fww4lru9lojOH3s+wuN1e4KGak+v klqhvLXFzzCG9czUB7PBzPfLIzEJr4+lzn9MNrh0DQvXeRBUpjKXhHud/sd00ddzJaJD FEdEcATbP9iOgA15Oyzfd8n1gFexlWeUCZfLlA4ykJ/yeu7wjX0W4Knudh1izzSkJJZg xw2RrIOnWMRWUX7OVYRRcvwtyAP/kvpB3o1oxE7fuKtENhAMyMcZHcFnRjAkL+Ib7pI1 uopA== X-Gm-Message-State: AOJu0Yw7pZ1le6cLKAHUiiMbZ5w55fsvFeibbxei5BOL9BkNUS7bDnpy WJYGU0i5O0aMa/SWsotuouz3kyprG/l8GO41hdfx51zT3b8OOFjOASewR9tohQ== X-Gm-Gg: Acq92OF8wxiAWaRdStoK9XdVzUyNEz+gBQUfCEYI+b9eHKrekESXGoupYP0UZGUY2To +IYjRVbWg5Ihf9v6t48VYT28Vu1BrEihKOVwFjWQXP1jQBpKVRFHrzsYXGLNyXOw3sUw70U9TCq eBzCRxA49hLLYK17IDCvM+xQ5r/wP0DIKnguVJpwyM9HXi+MfAICpxU4060UOgU7YD2hiKtKygG E59Qflzb42Wl5f2ita4bWLT02CgfLPl6FpDAOOqx66vYAf39FGtlOwi4kUsKBkukdafuHdmWz7Q merHd4Y2gv/KyUn8X7FDAbLamq9siKVAEtUJuO1jqLFRtiCQ5QhGZX6Xhw+X0VjP1PPdNWZLkl9 FxmmTa1cmokzXIiabnl1fSBAdfkhe7aIbrgaHfvYzs7nHlQi6YnqxZ+VmOJyrVo9DgNRxWXq87J xYukIn157cDeBPipntXPSlu/HjjM8mlXq+b0kOmnGW0WOIJPxgfIPbVX/+dfJr X-Received: by 2002:a05:600c:c48e:b0:490:625e:bb68 with SMTP id 5b1f17b1804b1-490b5eb7369mr76409585e9.3.1780524983895; Wed, 03 Jun 2026 15:16:23 -0700 (PDT) Received: from [192.168.1.235] ([109.227.133.120]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490bda4fd52sm7052305e9.0.2026.06.03.15.16.22 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 03 Jun 2026 15:16:22 -0700 (PDT) Date: Thu, 4 Jun 2026 00:16:16 +0200 From: Alexander Nestorov To: pgsql-hackers@postgresql.org Message-ID: <2d176c16-c148-4cfc-8576-2659117ec12c@Spark> In-Reply-To: <6fb7f880-fd70-49e6-b9c1-549faadcde58@Spark> References: <36b4f67d-5975-452c-a6b8-b6407f0924ee@Spark> <6fb7f880-fd70-49e6-b9c1-549faadcde58@Spark> Subject: Re: [PATCH] btree_gist: add cross-type integer operator support for GiST X-Readdle-Message-ID: 2d176c16-c148-4cfc-8576-2659117ec12c@Spark MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="6a20a7b5_2ae8944a_76fe" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --6a20a7b5_2ae8944a_76fe Content-Type: multipart/alternative; boundary="6a20a7b5_19495cff_76fe" --6a20a7b5_19495cff_76fe Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hello hackers, =46ollowing up on my previous message, I=E2=80=99m attaching a partial pa= tch for the btree=5Fgist cross-type integer operator support. This patch intentionally contains only the main code changes. It does not= yet include regression tests or documentation updates. I=E2=80=99m sending it= this way to make the core approach easier to review before adding the surrounding tes= t and documentation work. I=E2=80=99d appreciate any feedback=21 If the approach looks reasonable, I=E2=80=99ll send a more complete versi= on with tests and documentation. Thank you --6a20a7b5_19495cff_76fe Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline
Hello hackers,

=46ollowing up on my previous message, I=E2=80=99m attaching a partial pa= tch for the
btree=5Fgist cross-type integer operator support.

This patch intentionally contains only the main code changes. It does not= yet
include regression tests or documentation updates. I=E2=80=99m sending it= this way to
make the core approach easier to review before adding the surrounding tes= t and
documentation work.

I=E2=80=99d appreciate any feedback=21

If the approach looks reasonable, I=E2=80=99ll send a more complete versi= on with tests
and documentation.
Thank you
--6a20a7b5_19495cff_76fe-- --6a20a7b5_2ae8944a_76fe Content-Type: application/octet-stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Implement-cross-type-operators-for-GiST-indexes.patch" RnJvbSA3YzkzMDZhZjI4OWQxYjIzMjE2ODEyOWRiOWIyNDg3NTFmMTE2NGUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4YW5kZXIgTmVzdG9yb3YgPGFsZXhhbmRlcm5zdEBnbWFp bC5jb20+CkRhdGU6IFRodSwgNCBKdW4gMjAyNiAwMDowNjo1NCArMDIwMApTdWJqZWN0OiBbUEFU Q0hdIEltcGxlbWVudCBjcm9zcy10eXBlIG9wZXJhdG9ycyBmb3IgR2lTVCBpbmRleGVzCgotLS0K IGNvbnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICA0ICstCiBj b250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS45LS0xLjEwLnNxbCB8IDEzMyArKysrKysr KysrKysrKysrKwogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QuY29udHJvbCAgICAgICAg fCAgIDIgKy0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQyLmMgICAgICAgICAgICAgIHwg IDg3ICsrKysrKysrKy0tCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50NC5jICAgICAgICAg ICAgICB8ICA4NiArKysrKysrKystLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2ludDguYyAg ICAgICAgICAgICAgfCAgODYgKysrKysrKysrLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV91 dGlsc19udW0uYyAgICAgICAgIHwgMTQ4ICsrKysrKysrKysrKysrKysrKysKIGNvbnRyaWIvYnRy ZWVfZ2lzdC9idHJlZV91dGlsc19udW0uaCAgICAgICAgIHwgIDg1ICsrKysrKysrKysrCiBjb250 cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMiArCiA5IGZpbGVz IGNoYW5nZWQsIDU5NyBpbnNlcnRpb25zKCspLCAzNiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS45LS0xLjEwLnNxbAoKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZSBiL2NvbnRyaWIvYnRyZWVfZ2lz dC9NYWtlZmlsZQppbmRleCBmYmJiY2E5NTU5OC4uMWQwNjY4ZDk3YWIgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvYnRyZWVfZ2lzdC9NYWtlZmlsZQorKysgYi9jb250cmliL2J0cmVlX2dpc3QvTWFrZWZp bGUKQEAgLTMyLDE5ICszMiwxOSBAQCBPQkpTID0gIFwKIEVYVEVOU0lPTiA9IGJ0cmVlX2dpc3QK IERBVEEgPSBidHJlZV9naXN0LS0xLjAtLTEuMS5zcWwgXAogICAgICAgIGJ0cmVlX2dpc3QtLTEu MS0tMS4yLnNxbCBidHJlZV9naXN0LS0xLjItLTEuMy5zcWwgXAogICAgICAgIGJ0cmVlX2dpc3Qt LTEuMy0tMS40LnNxbCBidHJlZV9naXN0LS0xLjQtLTEuNS5zcWwgXAogICAgICAgIGJ0cmVlX2dp c3QtLTEuNS0tMS42LnNxbCBidHJlZV9naXN0LS0xLjYtLTEuNy5zcWwgXAogICAgICAgIGJ0cmVl X2dpc3QtLTEuNy0tMS44LnNxbCBidHJlZV9naXN0LS0xLjgtLTEuOS5zcWwgXAotICAgICAgIGJ0 cmVlX2dpc3QtLTEuOS5zcWwKKyAgICAgICBidHJlZV9naXN0LS0xLjkuc3FsIGJ0cmVlX2dpc3Qt LTEuOS0tMS4xMC5zcWwKIFBHRklMRURFU0MgPSAiYnRyZWVfZ2lzdCAtIEItdHJlZSBlcXVpdmFs ZW50IEdpU1Qgb3BlcmF0b3IgY2xhc3NlcyIKIAogUkVHUkVTUyA9IGluaXQgaW50MiBpbnQ0IGlu dDggZmxvYXQ0IGZsb2F0OCBjYXNoIG9pZCB0aW1lc3RhbXAgdGltZXN0YW1wdHogXAogICAgICAg ICB0aW1lIHRpbWV0eiBkYXRlIGludGVydmFsIG1hY2FkZHIgbWFjYWRkcjggaW5ldCBjaWRyIHRl eHQgdmFyY2hhciBjaGFyIFwKICAgICAgICAgYnl0ZWEgYml0IHZhcmJpdCBudW1lcmljIHV1aWQg bm90X2VxdWFsIGVudW0gYm9vbCBwYXJ0aXRpb25zIFwKLSAgICAgICAgc3RyYXRudW0gd2l0aG91 dF9vdmVybGFwcworICAgICAgICBzdHJhdG51bSBpbnRfY3Jvc3N0eXBlIHdpdGhvdXRfb3Zlcmxh cHMKIAogU0hMSUJfTElOSyArPSAkKGZpbHRlciAtbG0sICQoTElCUykpCiAKIGlmZGVmIFVTRV9Q R1hTCiBQR19DT05GSUcgPSBwZ19jb25maWcKIFBHWFMgOj0gJChzaGVsbCAkKFBHX0NPTkZJRykg LS1wZ3hzKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QtLTEuOS0t MS4xMC5zcWwgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS45LS0xLjEwLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjMzOGI4NTRiMzAKLS0tIC9k ZXYvbnVsbAorKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC0tMS45LS0xLjEwLnNx bApAQCAtMCwwICsxLDEzMyBAQAorLyogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2dpc3QtLTEu OS0tMS4xMC5zcWwgKi8KKworLS0gY29tcGxhaW4gaWYgc2NyaXB0IGlzIHNvdXJjZWQgaW4gcHNx bCwgcmF0aGVyIHRoYW4gdmlhIEFMVEVSIEVYVEVOU0lPTgorXGVjaG8gVXNlICJBTFRFUiBFWFRF TlNJT04gYnRyZWVfZ2lzdCBVUERBVEUgVE8gJzEuMTAnIiB0byBsb2FkIHRoaXMgZmlsZS4gXHF1 aXQKKworLS0gQWRkIGNyb3NzLXR5cGUgb3BlcmF0b3Igc3VwcG9ydCBmb3IgdGhlIGludGVnZXIg dHJpbyAoaW50MiwgaW50NCwgaW50OCkKKy0tIHRvIHRoZSBleGlzdGluZyBHaVNUIG9wZXJhdG9y IGZhbWlsaWVzLgorLS0KKy0tIEdpU1QncyBhbXZhbGlkYXRlIHJlcXVpcmVzIHN1cHBvcnQgZnVu Y3Rpb25zIGluIGEgZmFtaWx5IHRvIGhhdmUgbWF0Y2hpbmcKKy0tIGxlZnQvcmlnaHQgaW5wdXQg dHlwZXMsIHNvIHRoZSBjYXRhbG9nIGFkZGl0aW9ucyBiZWxvdyBhcmUgZGVsaWJlcmF0ZWx5Cist LSBwZ19hbW9wLW9ubHkuIFRoZSBzYW1lLXR5cGUgY29uc2lzdGVudC9kaXN0YW5jZSBzdXBwb3J0 IGZ1bmN0aW9ucyBkaXNwYXRjaAorLS0gb24gdGhlIHN1YnR5cGUgT0lEIGFuZCByb3V0ZSBtaXhl ZC13aWR0aCBpbnRlZ2VyIGNvbXBhcmlzb25zIHRocm91Z2ggdGhlaXIKKy0tIEMtc2lkZSBkaXNw YXRjaCB0YWJsZXMuCisKK0NSRUFURSBGVU5DVElPTiBpbnQyX2ludDRfZGlzdChpbnQyLCBpbnQ0 KQorUkVUVVJOUyBpbnQ0CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBJTU1VVEFC TEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7CisKK0NSRUFURSBGVU5DVElPTiBpbnQ0X2ludDJfZGlz dChpbnQ0LCBpbnQyKQorUkVUVVJOUyBpbnQ0CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VB R0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7CisKK0NSRUFURSBGVU5DVElPTiBp bnQyX2ludDhfZGlzdChpbnQyLCBpbnQ4KQorUkVUVVJOUyBpbnQ4CitBUyAnTU9EVUxFX1BBVEhO QU1FJworTEFOR1VBR0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7CisKK0NSRUFU RSBGVU5DVElPTiBpbnQ4X2ludDJfZGlzdChpbnQ4LCBpbnQyKQorUkVUVVJOUyBpbnQ4CitBUyAn TU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBJTU1VVEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNB RkU7CisKK0NSRUFURSBGVU5DVElPTiBpbnQ0X2ludDhfZGlzdChpbnQ0LCBpbnQ4KQorUkVUVVJO UyBpbnQ4CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBJTU1VVEFCTEUgU1RSSUNU IFBBUkFMTEVMIFNBRkU7CisKK0NSRUFURSBGVU5DVElPTiBpbnQ4X2ludDRfZGlzdChpbnQ4LCBp bnQ0KQorUkVUVVJOUyBpbnQ4CitBUyAnTU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBJTU1V VEFCTEUgU1RSSUNUIFBBUkFMTEVMIFNBRkU7CisKK0NSRUFURSBPUEVSQVRPUiA8LT4gKAorCUxF RlRBUkcgPSBpbnQyLAorCVJJR0hUQVJHID0gaW50NCwKKwlQUk9DRURVUkUgPSBpbnQyX2ludDRf ZGlzdCwKKwlDT01NVVRBVE9SID0gJzwtPicKKyk7CisKK0NSRUFURSBPUEVSQVRPUiA8LT4gKAor CUxFRlRBUkcgPSBpbnQ0LAorCVJJR0hUQVJHID0gaW50MiwKKwlQUk9DRURVUkUgPSBpbnQ0X2lu dDJfZGlzdCwKKwlDT01NVVRBVE9SID0gJzwtPicKKyk7CisKK0NSRUFURSBPUEVSQVRPUiA8LT4g KAorCUxFRlRBUkcgPSBpbnQyLAorCVJJR0hUQVJHID0gaW50OCwKKwlQUk9DRURVUkUgPSBpbnQy X2ludDhfZGlzdCwKKwlDT01NVVRBVE9SID0gJzwtPicKKyk7CisKK0NSRUFURSBPUEVSQVRPUiA8 LT4gKAorCUxFRlRBUkcgPSBpbnQ4LAorCVJJR0hUQVJHID0gaW50MiwKKwlQUk9DRURVUkUgPSBp bnQ4X2ludDJfZGlzdCwKKwlDT01NVVRBVE9SID0gJzwtPicKKyk7CisKK0NSRUFURSBPUEVSQVRP UiA8LT4gKAorCUxFRlRBUkcgPSBpbnQ0LAorCVJJR0hUQVJHID0gaW50OCwKKwlQUk9DRURVUkUg PSBpbnQ0X2ludDhfZGlzdCwKKwlDT01NVVRBVE9SID0gJzwtPicKKyk7CisKK0NSRUFURSBPUEVS QVRPUiA8LT4gKAorCUxFRlRBUkcgPSBpbnQ4LAorCVJJR0hUQVJHID0gaW50NCwKKwlQUk9DRURV UkUgPSBpbnQ4X2ludDRfZGlzdCwKKwlDT01NVVRBVE9SID0gJzwtPicKKyk7CisKK0FMVEVSIE9Q RVJBVE9SIEZBTUlMWSBnaXN0X2ludDJfb3BzIFVTSU5HIGdpc3QgQURECisJT1BFUkFUT1IJMQk8 ICAoaW50MiwgaW50NCksCisJT1BFUkFUT1IJMgk8PSAoaW50MiwgaW50NCksCisJT1BFUkFUT1IJ Mwk9ICAoaW50MiwgaW50NCksCisJT1BFUkFUT1IJNAk+PSAoaW50MiwgaW50NCksCisJT1BFUkFU T1IJNQk+ICAoaW50MiwgaW50NCksCisJT1BFUkFUT1IJNgk8PiAoaW50MiwgaW50NCksCisJT1BF UkFUT1IJMTUJPC0+IChpbnQyLCBpbnQ0KSBGT1IgT1JERVIgQlkgcGdfY2F0YWxvZy5pbnRlZ2Vy X29wcywKKwlPUEVSQVRPUgkxCTwgIChpbnQyLCBpbnQ4KSwKKwlPUEVSQVRPUgkyCTw9IChpbnQy LCBpbnQ4KSwKKwlPUEVSQVRPUgkzCT0gIChpbnQyLCBpbnQ4KSwKKwlPUEVSQVRPUgk0CT49IChp bnQyLCBpbnQ4KSwKKwlPUEVSQVRPUgk1CT4gIChpbnQyLCBpbnQ4KSwKKwlPUEVSQVRPUgk2CTw+ IChpbnQyLCBpbnQ4KSwKKwlPUEVSQVRPUgkxNQk8LT4gKGludDIsIGludDgpIEZPUiBPUkRFUiBC WSBwZ19jYXRhbG9nLmludGVnZXJfb3BzOworCitBTFRFUiBPUEVSQVRPUiBGQU1JTFkgZ2lzdF9p bnQ0X29wcyBVU0lORyBnaXN0IEFERAorCU9QRVJBVE9SCTEJPCAgKGludDQsIGludDIpLAorCU9Q RVJBVE9SCTIJPD0gKGludDQsIGludDIpLAorCU9QRVJBVE9SCTMJPSAgKGludDQsIGludDIpLAor CU9QRVJBVE9SCTQJPj0gKGludDQsIGludDIpLAorCU9QRVJBVE9SCTUJPiAgKGludDQsIGludDIp LAorCU9QRVJBVE9SCTYJPD4gKGludDQsIGludDIpLAorCU9QRVJBVE9SCTE1CTwtPiAoaW50NCwg aW50MikgRk9SIE9SREVSIEJZIHBnX2NhdGFsb2cuaW50ZWdlcl9vcHMsCisJT1BFUkFUT1IJMQk8 ICAoaW50NCwgaW50OCksCisJT1BFUkFUT1IJMgk8PSAoaW50NCwgaW50OCksCisJT1BFUkFUT1IJ Mwk9ICAoaW50NCwgaW50OCksCisJT1BFUkFUT1IJNAk+PSAoaW50NCwgaW50OCksCisJT1BFUkFU T1IJNQk+ICAoaW50NCwgaW50OCksCisJT1BFUkFUT1IJNgk8PiAoaW50NCwgaW50OCksCisJT1BF UkFUT1IJMTUJPC0+IChpbnQ0LCBpbnQ4KSBGT1IgT1JERVIgQlkgcGdfY2F0YWxvZy5pbnRlZ2Vy X29wczsKKworQUxURVIgT1BFUkFUT1IgRkFNSUxZIGdpc3RfaW50OF9vcHMgVVNJTkcgZ2lzdCBB REQKKwlPUEVSQVRPUgkxCTwgIChpbnQ4LCBpbnQyKSwKKwlPUEVSQVRPUgkyCTw9IChpbnQ4LCBp bnQyKSwKKwlPUEVSQVRPUgkzCT0gIChpbnQ4LCBpbnQyKSwKKwlPUEVSQVRPUgk0CT49IChpbnQ4 LCBpbnQyKSwKKwlPUEVSQVRPUgk1CT4gIChpbnQ4LCBpbnQyKSwKKwlPUEVSQVRPUgk2CTw+IChp bnQ4LCBpbnQyKSwKKwlPUEVSQVRPUgkxNQk8LT4gKGludDgsIGludDIpIEZPUiBPUkRFUiBCWSBw Z19jYXRhbG9nLmludGVnZXJfb3BzLAorCU9QRVJBVE9SCTEJPCAgKGludDgsIGludDQpLAorCU9Q RVJBVE9SCTIJPD0gKGludDgsIGludDQpLAorCU9QRVJBVE9SCTMJPSAgKGludDgsIGludDQpLAor CU9QRVJBVE9SCTQJPj0gKGludDgsIGludDQpLAorCU9QRVJBVE9SCTUJPiAgKGludDgsIGludDQp LAorCU9QRVJBVE9SCTYJPD4gKGludDgsIGludDQpLAorCU9QRVJBVE9SCTE1CTwtPiAoaW50OCwg aW50NCkgRk9SIE9SREVSIEJZIHBnX2NhdGFsb2cuaW50ZWdlcl9vcHM7CmRpZmYgLS1naXQgYS9j b250cmliL2J0cmVlX2dpc3QvYnRyZWVfZ2lzdC5jb250cm9sIGIvY29udHJpYi9idHJlZV9naXN0 L2J0cmVlX2dpc3QuY29udHJvbAppbmRleCA2OWQ5MzQxYTBhZC4uZTYwNmZhNjU1MWQgMTAwNjQ0 Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9naXN0LmNvbnRyb2wKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2dpc3QuY29udHJvbApAQCAtMSw2ICsxLDYgQEAKICMgYnRyZWVf Z2lzdCBleHRlbnNpb24KIGNvbW1lbnQgPSAnc3VwcG9ydCBmb3IgaW5kZXhpbmcgY29tbW9uIGRh dGF0eXBlcyBpbiBHaVNUJwotZGVmYXVsdF92ZXJzaW9uID0gJzEuOScKK2RlZmF1bHRfdmVyc2lv biA9ICcxLjEwJwogbW9kdWxlX3BhdGhuYW1lID0gJyRsaWJkaXIvYnRyZWVfZ2lzdCcKIHJlbG9j YXRhYmxlID0gdHJ1ZQogdHJ1c3RlZCA9IHRydWUKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVf Z2lzdC9idHJlZV9pbnQyLmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50Mi5jCmluZGV4 IGNjNGIzMzE3N2UzLi4xZmRmNTUxMzFiMyAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0 L2J0cmVlX2ludDIuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50Mi5jCkBAIC0y LDEyICsyLDEzIEBACiAgKiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50Mi5jCiAgKi8KICNp bmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYnRyZWVfZ2lzdC5oIgogI2luY2x1ZGUg ImJ0cmVlX3V0aWxzX251bS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1 ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGls cy9zb3J0c3VwcG9ydC5oIgogCiB0eXBlZGVmIHN0cnVjdCBpbnQxNmtleQogewpAQCAtNzMsMjUg Kzc0LDQyIEBAIGdidF9pbnQya2V5X2NtcChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBG bWdySW5mbyAqZmxpbmZvKQogc3RhdGljIGZsb2F0OAogZ2J0X2ludDJfZGlzdChjb25zdCB2b2lk ICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAqZmxpbmZvKQogewogCXJldHVybiBHRVRfRkxP QVRfRElTVEFOQ0UoaW50MTYsIGEsIGIpOwogfQogCisvKgorICogQ3Jvc3MtdHlwZSBjYWxsYmFj a3MKKyAqLworR0JUX0RFRklORV9JTlRfQ1JPU1NUWVBFKGdidF9pbnQyX3hfaW50NCwgaW50MTYs IERhdHVtR2V0SW50MzIpCitHQlRfREVGSU5FX0lOVF9DUk9TU1RZUEUoZ2J0X2ludDJfeF9pbnQ4 LCBpbnQxNiwgRGF0dW1HZXRJbnQ2NCkKKworc3RhdGljIGNvbnN0IGdidF9zdWJ0eXBlX2luZm8g Z2J0X2ludDJfc3VidHlwZV9vcHNbXSA9IHsKKwl7SU5UNE9JRCwKKwkJZ2J0X2ludDJfeF9pbnQ0 X2x0LCBnYnRfaW50Ml94X2ludDRfbGUsIGdidF9pbnQyX3hfaW50NF9lcSwKKwlnYnRfaW50Ml94 X2ludDRfZ2UsIGdidF9pbnQyX3hfaW50NF9ndCwgZ2J0X2ludDJfeF9pbnQ0X2Rpc3R9LAorCXtJ TlQ4T0lELAorCQlnYnRfaW50Ml94X2ludDhfbHQsIGdidF9pbnQyX3hfaW50OF9sZSwgZ2J0X2lu dDJfeF9pbnQ4X2VxLAorCWdidF9pbnQyX3hfaW50OF9nZSwgZ2J0X2ludDJfeF9pbnQ4X2d0LCBn YnRfaW50Ml94X2ludDhfZGlzdH0sCisJe0ludmFsaWRPaWR9Cit9OwogCiBzdGF0aWMgY29uc3Qg Z2J0cmVlX25pbmZvIHRpbmZvID0KIHsKIAlnYnRfdF9pbnQyLAogCXNpemVvZihpbnQxNiksCiAJ NCwJCQkJCQkJLyogc2l6ZW9mKGdidHJlZWtleTQpICovCiAJZ2J0X2ludDJndCwKIAlnYnRfaW50 MmdlLAogCWdidF9pbnQyZXEsCiAJZ2J0X2ludDJsZSwKIAlnYnRfaW50Mmx0LAogCWdidF9pbnQy a2V5X2NtcCwKLQlnYnRfaW50Ml9kaXN0CisJZ2J0X2ludDJfZGlzdCwKKwlnYnRfaW50Ml9zdWJ0 eXBlX29wcywKKwlJTlQyT0lECiB9OwogCiAKIFBHX0ZVTkNUSU9OX0lORk9fVjEoaW50Ml9kaXN0 KTsKIERhdHVtCiBpbnQyX2Rpc3QoUEdfRlVOQ1RJT05fQVJHUykKQEAgLTEwOSwxMiArMTI3LDQ2 IEBAIGludDJfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJcmEgPSBhYnMocik7CiAKIAlQR19S RVRVUk5fSU5UMTYocmEpOwogfQogCitQR19GVU5DVElPTl9JTkZPX1YxKGludDJfaW50NF9kaXN0 KTsKK0RhdHVtCitpbnQyX2ludDRfZGlzdChQR19GVU5DVElPTl9BUkdTKQoreworCWludDMyCQlh ID0gKGludDMyKSBQR19HRVRBUkdfSU5UMTYoMCk7CisJaW50MzIJCWIgPSBQR19HRVRBUkdfSU5U MzIoMSk7CisJaW50MzIJCXI7CisKKwlpZiAocGdfc3ViX3MzMl9vdmVyZmxvdyhhLCBiLCAmcikg fHwKKwkJciA9PSBQR19JTlQzMl9NSU4pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJIGVycm1zZygiaW50ZWdl ciBvdXQgb2YgcmFuZ2UiKSkpOworCisJUEdfUkVUVVJOX0lOVDMyKGFicyhyKSk7Cit9CisKK1BH X0ZVTkNUSU9OX0lORk9fVjEoaW50Ml9pbnQ4X2Rpc3QpOworRGF0dW0KK2ludDJfaW50OF9kaXN0 KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJaW50NjQJCWEgPSAoaW50NjQpIFBHX0dFVEFSR19JTlQx NigwKTsKKwlpbnQ2NAkJYiA9IFBHX0dFVEFSR19JTlQ2NCgxKTsKKwlpbnQ2NAkJcjsKKworCWlm IChwZ19zdWJfczY0X292ZXJmbG93KGEsIGIsICZyKSB8fAorCQlyID09IFBHX0lOVDY0X01JTikK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VU X09GX1JBTkdFKSwKKwkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKKworCVBH X1JFVFVSTl9JTlQ2NChpNjRhYnMocikpOworfQorCiAKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICogR2lTVCBzdXBwb3J0IGZ1bmN0aW9ucwog ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBE YXR1bQpAQCAtMTM0LDQ3ICsxODYsNjAgQEAgZ2J0X2ludDJfZmV0Y2goUEdfRlVOQ1RJT05fQVJH UykKIH0KIAogRGF0dW0KIGdidF9pbnQyX2NvbnNpc3RlbnQoUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlHSVNURU5UUlkgICplbnRyeSA9IChHSVNURU5UUlkgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7 Ci0JaW50MTYJCXF1ZXJ5ID0gUEdfR0VUQVJHX0lOVDE2KDEpOworCURhdHVtCQlxdWVyeURhdHVt ID0gUEdfR0VUQVJHX0RBVFVNKDEpOwogCVN0cmF0ZWd5TnVtYmVyIHN0cmF0ZWd5ID0gKFN0cmF0 ZWd5TnVtYmVyKSBQR19HRVRBUkdfVUlOVDE2KDIpOwotI2lmZGVmIE5PVF9VU0VECiAJT2lkCQkJ c3VidHlwZSA9IFBHX0dFVEFSR19PSUQoMyk7Ci0jZW5kaWYKIAlib29sCSAgICpyZWNoZWNrID0g KGJvb2wgKikgUEdfR0VUQVJHX1BPSU5URVIoNCk7CiAJaW50MTZLRVkgICAqa2trID0gKGludDE2 S0VZICopIERhdHVtR2V0UG9pbnRlcihlbnRyeS0+a2V5KTsKKwlpbnQxNgkJcXVlcnk7CiAJR0JU X05VTUtFWV9SIGtleTsKIAogCS8qIEFsbCBjYXNlcyBzZXJ2ZWQgYnkgdGhpcyBmdW5jdGlvbiBh cmUgZXhhY3QgKi8KIAkqcmVjaGVjayA9IGZhbHNlOwogCisJLyogT25seSBkZWNvZGUgYXMgaW50 MTYgb24gdGhlIHNhbWUtdHlwZSBwYXRoIHRvIGF2b2lkIHNpbGVudCB0cnVuY2F0aW9uICovCisJ aWYgKHN1YnR5cGUgPT0gSW52YWxpZE9pZCB8fCBzdWJ0eXBlID09IElOVDJPSUQpCisJCXF1ZXJ5 ID0gRGF0dW1HZXRJbnQxNihxdWVyeURhdHVtKTsKKwllbHNlCisJCXF1ZXJ5ID0gMDsKKwogCWtl eS5sb3dlciA9IChHQlRfTlVNS0VZICopICZra2stPmxvd2VyOwogCWtleS51cHBlciA9IChHQlRf TlVNS0VZICopICZra2stPnVwcGVyOwogCi0JUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25zaXN0 ZW50KCZrZXksICZxdWVyeSwgJnN0cmF0ZWd5LAotCQkJCQkJCQkJICBHSVNUX0xFQUYoZW50cnkp LCAmdGluZm8sIGZjaW5mby0+ZmxpbmZvKSk7CisJUEdfUkVUVVJOX0JPT0woZ2J0X251bV9jb25z aXN0ZW50X3goJmtleSwgJnF1ZXJ5LCBxdWVyeURhdHVtLAorCQkJCQkJCQkJCXN1YnR5cGUsIFBH X0dFVF9DT0xMQVRJT04oKSwKKwkJCQkJCQkJCQkmc3RyYXRlZ3ksIEdJU1RfTEVBRihlbnRyeSks CisJCQkJCQkJCQkJJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiBEYXR1bQogZ2J0X2lu dDJfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHSVNURU5UUlkgICplbnRyeSA9IChH SVNURU5UUlkgKikgUEdfR0VUQVJHX1BPSU5URVIoMCk7Ci0JaW50MTYJCXF1ZXJ5ID0gUEdfR0VU QVJHX0lOVDE2KDEpOwotI2lmZGVmIE5PVF9VU0VECisJRGF0dW0JCXF1ZXJ5RGF0dW0gPSBQR19H RVRBUkdfREFUVU0oMSk7CiAJT2lkCQkJc3VidHlwZSA9IFBHX0dFVEFSR19PSUQoMyk7Ci0jZW5k aWYKIAlpbnQxNktFWSAgICpra2sgPSAoaW50MTZLRVkgKikgRGF0dW1HZXRQb2ludGVyKGVudHJ5 LT5rZXkpOworCWludDE2CQlxdWVyeTsKIAlHQlRfTlVNS0VZX1Iga2V5OwogCisJaWYgKHN1YnR5 cGUgPT0gSW52YWxpZE9pZCB8fCBzdWJ0eXBlID09IElOVDJPSUQpCisJCXF1ZXJ5ID0gRGF0dW1H ZXRJbnQxNihxdWVyeURhdHVtKTsKKwllbHNlCisJCXF1ZXJ5ID0gMDsKKwogCWtleS5sb3dlciA9 IChHQlRfTlVNS0VZICopICZra2stPmxvd2VyOwogCWtleS51cHBlciA9IChHQlRfTlVNS0VZICop ICZra2stPnVwcGVyOwogCi0JUEdfUkVUVVJOX0ZMT0FUOChnYnRfbnVtX2Rpc3RhbmNlKCZrZXks ICZxdWVyeSwgR0lTVF9MRUFGKGVudHJ5KSwKLQkJCQkJCQkJCSAgJnRpbmZvLCBmY2luZm8tPmZs aW5mbykpOworCVBHX1JFVFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZV94KCZrZXksICZxdWVy eSwgcXVlcnlEYXR1bSwKKwkJCQkJCQkJCQlzdWJ0eXBlLCBQR19HRVRfQ09MTEFUSU9OKCksCisJ CQkJCQkJCQkJR0lTVF9MRUFGKGVudHJ5KSwKKwkJCQkJCQkJCQkmdGluZm8sIGZjaW5mby0+Zmxp bmZvKSk7CiB9CiAKIERhdHVtCiBnYnRfaW50Ml91bmlvbihQR19GVU5DVElPTl9BUkdTKQogewog CUdpc3RFbnRyeVZlY3RvciAqZW50cnl2ZWMgPSAoR2lzdEVudHJ5VmVjdG9yICopIFBHX0dFVEFS R19QT0lOVEVSKDApOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2ludDQu YyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQ0LmMKaW5kZXggNDc3OTA1NzhlNmIuLjdj NTNjZTljNTZmIDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50NC5jCisr KyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9pbnQ0LmMKQEAgLTEsMTIgKzEsMTMgQEAKIC8q CiAgKiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50NC5jCiAgKi8KICNpbmNsdWRlICJwb3N0 Z3Jlcy5oIgogI2luY2x1ZGUgImJ0cmVlX2dpc3QuaCIKICNpbmNsdWRlICJidHJlZV91dGlsc19u dW0uaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tb24vaW50 LmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc29ydHN1cHBvcnQu aCIKIAogdHlwZWRlZiBzdHJ1Y3QgaW50MzJrZXkKIHsKQEAgLTcxLDI1ICs3Miw0MiBAQCBnYnRf aW50NGtleV9jbXAoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9pZCAqYiwgRm1nckluZm8gKmZsaW5m bykKIHN0YXRpYyBmbG9hdDgKIGdidF9pbnQ0X2Rpc3QoY29uc3Qgdm9pZCAqYSwgY29uc3Qgdm9p ZCAqYiwgRm1nckluZm8gKmZsaW5mbykKIHsKIAlyZXR1cm4gR0VUX0ZMT0FUX0RJU1RBTkNFKGlu dDMyLCBhLCBiKTsKIH0KIAorLyoKKyAqIENyb3NzLXR5cGUgY2FsbGJhY2tzCisgKi8KK0dCVF9E RUZJTkVfSU5UX0NST1NTVFlQRShnYnRfaW50NF94X2ludDIsIGludDMyLCBEYXR1bUdldEludDE2 KQorR0JUX0RFRklORV9JTlRfQ1JPU1NUWVBFKGdidF9pbnQ0X3hfaW50OCwgaW50MzIsIERhdHVt R2V0SW50NjQpCisKK3N0YXRpYyBjb25zdCBnYnRfc3VidHlwZV9pbmZvIGdidF9pbnQ0X3N1YnR5 cGVfb3BzW10gPSB7CisJe0lOVDJPSUQsCisJCWdidF9pbnQ0X3hfaW50Ml9sdCwgZ2J0X2ludDRf eF9pbnQyX2xlLCBnYnRfaW50NF94X2ludDJfZXEsCisJZ2J0X2ludDRfeF9pbnQyX2dlLCBnYnRf aW50NF94X2ludDJfZ3QsIGdidF9pbnQ0X3hfaW50Ml9kaXN0fSwKKwl7SU5UOE9JRCwKKwkJZ2J0 X2ludDRfeF9pbnQ4X2x0LCBnYnRfaW50NF94X2ludDhfbGUsIGdidF9pbnQ0X3hfaW50OF9lcSwK KwlnYnRfaW50NF94X2ludDhfZ2UsIGdidF9pbnQ0X3hfaW50OF9ndCwgZ2J0X2ludDRfeF9pbnQ4 X2Rpc3R9LAorCXtJbnZhbGlkT2lkfQorfTsKIAogc3RhdGljIGNvbnN0IGdidHJlZV9uaW5mbyB0 aW5mbyA9CiB7CiAJZ2J0X3RfaW50NCwKIAlzaXplb2YoaW50MzIpLAogCTgsCQkJCQkJCS8qIHNp emVvZihnYnRyZWVrZXk4KSAqLwogCWdidF9pbnQ0Z3QsCiAJZ2J0X2ludDRnZSwKIAlnYnRfaW50 NGVxLAogCWdidF9pbnQ0bGUsCiAJZ2J0X2ludDRsdCwKIAlnYnRfaW50NGtleV9jbXAsCi0JZ2J0 X2ludDRfZGlzdAorCWdidF9pbnQ0X2Rpc3QsCisJZ2J0X2ludDRfc3VidHlwZV9vcHMsCisJSU5U NE9JRAogfTsKIAogCiBQR19GVU5DVElPTl9JTkZPX1YxKGludDRfZGlzdCk7CiBEYXR1bQogaW50 NF9kaXN0KFBHX0ZVTkNUSU9OX0FSR1MpCkBAIC0xMDcsMTIgKzEyNSw0NiBAQCBpbnQ0X2Rpc3Qo UEdfRlVOQ1RJT05fQVJHUykKIAogCXJhID0gYWJzKHIpOwogCiAJUEdfUkVUVVJOX0lOVDMyKHJh KTsKIH0KIAorUEdfRlVOQ1RJT05fSU5GT19WMShpbnQ0X2ludDJfZGlzdCk7CitEYXR1bQoraW50 NF9pbnQyX2Rpc3QoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlpbnQzMgkJYSA9IFBHX0dFVEFSR19J TlQzMigwKTsKKwlpbnQzMgkJYiA9IChpbnQzMikgUEdfR0VUQVJHX0lOVDE2KDEpOworCWludDMy CQlyOworCisJaWYgKHBnX3N1Yl9zMzJfb3ZlcmZsb3coYSwgYiwgJnIpIHx8CisJCXIgPT0gUEdf SU5UMzJfTUlOKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJ Q19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdl IikpKTsKKworCVBHX1JFVFVSTl9JTlQzMihhYnMocikpOworfQorCitQR19GVU5DVElPTl9JTkZP X1YxKGludDRfaW50OF9kaXN0KTsKK0RhdHVtCitpbnQ0X2ludDhfZGlzdChQR19GVU5DVElPTl9B UkdTKQoreworCWludDY0CQlhID0gKGludDY0KSBQR19HRVRBUkdfSU5UMzIoMCk7CisJaW50NjQJ CWIgPSBQR19HRVRBUkdfSU5UNjQoMSk7CisJaW50NjQJCXI7CisKKwlpZiAocGdfc3ViX3M2NF9v dmVyZmxvdyhhLCBiLCAmcikgfHwKKwkJciA9PSBQR19JTlQ2NF9NSU4pCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJ CQkJIGVycm1zZygiYmlnaW50IG91dCBvZiByYW5nZSIpKSk7CisKKwlQR19SRVRVUk5fSU5UNjQo aTY0YWJzKHIpKTsKK30KKwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKICAqIEdpU1Qgc3VwcG9ydCBmdW5jdGlvbnMKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogRGF0dW0KQEAgLTEzMiw0 NyArMTg0LDU5IEBAIGdidF9pbnQ0X2ZldGNoKFBHX0ZVTkNUSU9OX0FSR1MpCiB9CiAKIERhdHVt CiBnYnRfaW50NF9jb25zaXN0ZW50KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJR0lTVEVOVFJZICAq ZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwotCWludDMyCQlxdWVy eSA9IFBHX0dFVEFSR19JTlQzMigxKTsKKwlEYXR1bQkJcXVlcnlEYXR1bSA9IFBHX0dFVEFSR19E QVRVTSgxKTsKIAlTdHJhdGVneU51bWJlciBzdHJhdGVneSA9IChTdHJhdGVneU51bWJlcikgUEdf R0VUQVJHX1VJTlQxNigyKTsKLSNpZmRlZiBOT1RfVVNFRAogCU9pZAkJCXN1YnR5cGUgPSBQR19H RVRBUkdfT0lEKDMpOwotI2VuZGlmCiAJYm9vbAkgICAqcmVjaGVjayA9IChib29sICopIFBHX0dF VEFSR19QT0lOVEVSKDQpOwogCWludDMyS0VZICAgKmtrayA9IChpbnQzMktFWSAqKSBEYXR1bUdl dFBvaW50ZXIoZW50cnktPmtleSk7CisJaW50MzIJCXF1ZXJ5OwogCUdCVF9OVU1LRVlfUiBrZXk7 CiAKIAkvKiBBbGwgY2FzZXMgc2VydmVkIGJ5IHRoaXMgZnVuY3Rpb24gYXJlIGV4YWN0ICovCiAJ KnJlY2hlY2sgPSBmYWxzZTsKIAorCWlmIChzdWJ0eXBlID09IEludmFsaWRPaWQgfHwgc3VidHlw ZSA9PSBJTlQ0T0lEKQorCQlxdWVyeSA9IERhdHVtR2V0SW50MzIocXVlcnlEYXR1bSk7CisJZWxz ZQorCQlxdWVyeSA9IDA7CisKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT5sb3dl cjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBlcjsKIAotCVBHX1JFVFVS Tl9CT09MKGdidF9udW1fY29uc2lzdGVudCgma2V5LCAmcXVlcnksICZzdHJhdGVneSwKLQkJCQkJ CQkJCSAgR0lTVF9MRUFGKGVudHJ5KSwgJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOworCVBHX1JF VFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudF94KCZrZXksICZxdWVyeSwgcXVlcnlEYXR1bSwK KwkJCQkJCQkJCQlzdWJ0eXBlLCBQR19HRVRfQ09MTEFUSU9OKCksCisJCQkJCQkJCQkJJnN0cmF0 ZWd5LCBHSVNUX0xFQUYoZW50cnkpLAorCQkJCQkJCQkJCSZ0aW5mbywgZmNpbmZvLT5mbGluZm8p KTsKIH0KIAogRGF0dW0KIGdidF9pbnQ0X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJ R0lTVEVOVFJZICAqZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwot CWludDMyCQlxdWVyeSA9IFBHX0dFVEFSR19JTlQzMigxKTsKLSNpZmRlZiBOT1RfVVNFRAorCURh dHVtCQlxdWVyeURhdHVtID0gUEdfR0VUQVJHX0RBVFVNKDEpOwogCU9pZAkJCXN1YnR5cGUgPSBQ R19HRVRBUkdfT0lEKDMpOwotI2VuZGlmCiAJaW50MzJLRVkgICAqa2trID0gKGludDMyS0VZICop IERhdHVtR2V0UG9pbnRlcihlbnRyeS0+a2V5KTsKKwlpbnQzMgkJcXVlcnk7CiAJR0JUX05VTUtF WV9SIGtleTsKIAorCWlmIChzdWJ0eXBlID09IEludmFsaWRPaWQgfHwgc3VidHlwZSA9PSBJTlQ0 T0lEKQorCQlxdWVyeSA9IERhdHVtR2V0SW50MzIocXVlcnlEYXR1bSk7CisJZWxzZQorCQlxdWVy eSA9IDA7CisKIAlrZXkubG93ZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXku dXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9GTE9BVDgo Z2J0X251bV9kaXN0YW5jZSgma2V5LCAmcXVlcnksIEdJU1RfTEVBRihlbnRyeSksCi0JCQkJCQkJ CQkgICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKKwlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1f ZGlzdGFuY2VfeCgma2V5LCAmcXVlcnksIHF1ZXJ5RGF0dW0sCisJCQkJCQkJCQkJc3VidHlwZSwg UEdfR0VUX0NPTExBVElPTigpLAorCQkJCQkJCQkJCUdJU1RfTEVBRihlbnRyeSksCisJCQkJCQkJ CQkJJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwogfQogCiBEYXR1bQogZ2J0X2ludDRfdW5pb24o UEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHaXN0RW50cnlWZWN0b3IgKmVudHJ5dmVjID0gKEdpc3RF bnRyeVZlY3RvciAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIv YnRyZWVfZ2lzdC9idHJlZV9pbnQ4LmMgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50OC5j CmluZGV4IGY0ODEyMmM4ZDg0Li4zNTJhY2I0ZmY3NiAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJl ZV9naXN0L2J0cmVlX2ludDguYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50OC5j CkBAIC0yLDEyICsyLDEzIEBACiAgKiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfaW50OC5jCiAg Ki8KICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYnRyZWVfZ2lzdC5oIgogI2lu Y2x1ZGUgImJ0cmVlX3V0aWxzX251bS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgog I2luY2x1ZGUgImNvbW1vbi9pbnQuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRl ICJ1dGlscy9zb3J0c3VwcG9ydC5oIgogCiB0eXBlZGVmIHN0cnVjdCBpbnQ2NGtleQogewpAQCAt NzMsMjUgKzc0LDQyIEBAIGdidF9pbnQ4a2V5X2NtcChjb25zdCB2b2lkICphLCBjb25zdCB2b2lk ICpiLCBGbWdySW5mbyAqZmxpbmZvKQogc3RhdGljIGZsb2F0OAogZ2J0X2ludDhfZGlzdChjb25z dCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAqZmxpbmZvKQogewogCXJldHVybiBH RVRfRkxPQVRfRElTVEFOQ0UoaW50NjQsIGEsIGIpOwogfQogCisvKgorICogQ3Jvc3MtdHlwZSBj YWxsYmFja3MKKyAqLworR0JUX0RFRklORV9JTlRfQ1JPU1NUWVBFKGdidF9pbnQ4X3hfaW50Miwg aW50NjQsIERhdHVtR2V0SW50MTYpCitHQlRfREVGSU5FX0lOVF9DUk9TU1RZUEUoZ2J0X2ludDhf eF9pbnQ0LCBpbnQ2NCwgRGF0dW1HZXRJbnQzMikKKworc3RhdGljIGNvbnN0IGdidF9zdWJ0eXBl X2luZm8gZ2J0X2ludDhfc3VidHlwZV9vcHNbXSA9IHsKKwl7SU5UMk9JRCwKKwkJZ2J0X2ludDhf eF9pbnQyX2x0LCBnYnRfaW50OF94X2ludDJfbGUsIGdidF9pbnQ4X3hfaW50Ml9lcSwKKwlnYnRf aW50OF94X2ludDJfZ2UsIGdidF9pbnQ4X3hfaW50Ml9ndCwgZ2J0X2ludDhfeF9pbnQyX2Rpc3R9 LAorCXtJTlQ0T0lELAorCQlnYnRfaW50OF94X2ludDRfbHQsIGdidF9pbnQ4X3hfaW50NF9sZSwg Z2J0X2ludDhfeF9pbnQ0X2VxLAorCWdidF9pbnQ4X3hfaW50NF9nZSwgZ2J0X2ludDhfeF9pbnQ0 X2d0LCBnYnRfaW50OF94X2ludDRfZGlzdH0sCisJe0ludmFsaWRPaWR9Cit9OwogCiBzdGF0aWMg Y29uc3QgZ2J0cmVlX25pbmZvIHRpbmZvID0KIHsKIAlnYnRfdF9pbnQ4LAogCXNpemVvZihpbnQ2 NCksCiAJMTYsCQkJCQkJCS8qIHNpemVvZihnYnRyZWVrZXkxNikgKi8KIAlnYnRfaW50OGd0LAog CWdidF9pbnQ4Z2UsCiAJZ2J0X2ludDhlcSwKIAlnYnRfaW50OGxlLAogCWdidF9pbnQ4bHQsCiAJ Z2J0X2ludDhrZXlfY21wLAotCWdidF9pbnQ4X2Rpc3QKKwlnYnRfaW50OF9kaXN0LAorCWdidF9p bnQ4X3N1YnR5cGVfb3BzLAorCUlOVDhPSUQKIH07CiAKIAogUEdfRlVOQ1RJT05fSU5GT19WMShp bnQ4X2Rpc3QpOwogRGF0dW0KIGludDhfZGlzdChQR19GVU5DVElPTl9BUkdTKQpAQCAtMTA5LDEy ICsxMjcsNDYgQEAgaW50OF9kaXN0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyYSA9IGk2NGFicyhy KTsKIAogCVBHX1JFVFVSTl9JTlQ2NChyYSk7CiB9CiAKK1BHX0ZVTkNUSU9OX0lORk9fVjEoaW50 OF9pbnQyX2Rpc3QpOworRGF0dW0KK2ludDhfaW50Ml9kaXN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7 CisJaW50NjQJCWEgPSBQR19HRVRBUkdfSU5UNjQoMCk7CisJaW50NjQJCWIgPSAoaW50NjQpIFBH X0dFVEFSR19JTlQxNigxKTsKKwlpbnQ2NAkJcjsKKworCWlmIChwZ19zdWJfczY0X292ZXJmbG93 KGEsIGIsICZyKSB8fAorCQlyID09IFBHX0lOVDY0X01JTikKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQkgZXJy bXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKKworCVBHX1JFVFVSTl9JTlQ2NChpNjRhYnMo cikpOworfQorCitQR19GVU5DVElPTl9JTkZPX1YxKGludDhfaW50NF9kaXN0KTsKK0RhdHVtCitp bnQ4X2ludDRfZGlzdChQR19GVU5DVElPTl9BUkdTKQoreworCWludDY0CQlhID0gUEdfR0VUQVJH X0lOVDY0KDApOworCWludDY0CQliID0gKGludDY0KSBQR19HRVRBUkdfSU5UMzIoMSk7CisJaW50 NjQJCXI7CisKKwlpZiAocGdfc3ViX3M2NF9vdmVyZmxvdyhhLCBiLCAmcikgfHwKKwkJciA9PSBQ R19JTlQ2NF9NSU4pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1F UklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJIGVycm1zZygiYmlnaW50IG91dCBvZiByYW5n ZSIpKSk7CisKKwlQR19SRVRVUk5fSU5UNjQoaTY0YWJzKHIpKTsKK30KKwogCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIEdpU1Qgc3VwcG9y dCBmdW5jdGlvbnMKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogRGF0dW0KQEAgLTEzNCw0NyArMTg2LDU5IEBAIGdidF9pbnQ4X2ZldGNoKFBH X0ZVTkNUSU9OX0FSR1MpCiB9CiAKIERhdHVtCiBnYnRfaW50OF9jb25zaXN0ZW50KFBHX0ZVTkNU SU9OX0FSR1MpCiB7CiAJR0lTVEVOVFJZICAqZW50cnkgPSAoR0lTVEVOVFJZICopIFBHX0dFVEFS R19QT0lOVEVSKDApOwotCWludDY0CQlxdWVyeSA9IFBHX0dFVEFSR19JTlQ2NCgxKTsKKwlEYXR1 bQkJcXVlcnlEYXR1bSA9IFBHX0dFVEFSR19EQVRVTSgxKTsKIAlTdHJhdGVneU51bWJlciBzdHJh dGVneSA9IChTdHJhdGVneU51bWJlcikgUEdfR0VUQVJHX1VJTlQxNigyKTsKLSNpZmRlZiBOT1Rf VVNFRAogCU9pZAkJCXN1YnR5cGUgPSBQR19HRVRBUkdfT0lEKDMpOwotI2VuZGlmCiAJYm9vbAkg ICAqcmVjaGVjayA9IChib29sICopIFBHX0dFVEFSR19QT0lOVEVSKDQpOwogCWludDY0S0VZICAg KmtrayA9IChpbnQ2NEtFWSAqKSBEYXR1bUdldFBvaW50ZXIoZW50cnktPmtleSk7CisJaW50NjQJ CXF1ZXJ5OwogCUdCVF9OVU1LRVlfUiBrZXk7CiAKIAkvKiBBbGwgY2FzZXMgc2VydmVkIGJ5IHRo aXMgZnVuY3Rpb24gYXJlIGV4YWN0ICovCiAJKnJlY2hlY2sgPSBmYWxzZTsKIAorCWlmIChzdWJ0 eXBlID09IEludmFsaWRPaWQgfHwgc3VidHlwZSA9PSBJTlQ4T0lEKQorCQlxdWVyeSA9IERhdHVt R2V0SW50NjQocXVlcnlEYXR1bSk7CisJZWxzZQorCQlxdWVyeSA9IDA7CisKIAlrZXkubG93ZXIg PSAoR0JUX05VTUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAq KSAma2trLT51cHBlcjsKIAotCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudCgma2V5 LCAmcXVlcnksICZzdHJhdGVneSwKLQkJCQkJCQkJCSAgR0lTVF9MRUFGKGVudHJ5KSwgJnRpbmZv LCBmY2luZm8tPmZsaW5mbykpOworCVBHX1JFVFVSTl9CT09MKGdidF9udW1fY29uc2lzdGVudF94 KCZrZXksICZxdWVyeSwgcXVlcnlEYXR1bSwKKwkJCQkJCQkJCQlzdWJ0eXBlLCBQR19HRVRfQ09M TEFUSU9OKCksCisJCQkJCQkJCQkJJnN0cmF0ZWd5LCBHSVNUX0xFQUYoZW50cnkpLAorCQkJCQkJ CQkJCSZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsKIH0KIAogRGF0dW0KIGdidF9pbnQ4X2Rpc3Rh bmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJR0lTVEVOVFJZICAqZW50cnkgPSAoR0lTVEVOVFJZ ICopIFBHX0dFVEFSR19QT0lOVEVSKDApOwotCWludDY0CQlxdWVyeSA9IFBHX0dFVEFSR19JTlQ2 NCgxKTsKLSNpZmRlZiBOT1RfVVNFRAorCURhdHVtCQlxdWVyeURhdHVtID0gUEdfR0VUQVJHX0RB VFVNKDEpOwogCU9pZAkJCXN1YnR5cGUgPSBQR19HRVRBUkdfT0lEKDMpOwotI2VuZGlmCiAJaW50 NjRLRVkgICAqa2trID0gKGludDY0S0VZICopIERhdHVtR2V0UG9pbnRlcihlbnRyeS0+a2V5KTsK KwlpbnQ2NAkJcXVlcnk7CiAJR0JUX05VTUtFWV9SIGtleTsKIAorCWlmIChzdWJ0eXBlID09IElu dmFsaWRPaWQgfHwgc3VidHlwZSA9PSBJTlQ4T0lEKQorCQlxdWVyeSA9IERhdHVtR2V0SW50NjQo cXVlcnlEYXR1bSk7CisJZWxzZQorCQlxdWVyeSA9IDA7CisKIAlrZXkubG93ZXIgPSAoR0JUX05V TUtFWSAqKSAma2trLT5sb3dlcjsKIAlrZXkudXBwZXIgPSAoR0JUX05VTUtFWSAqKSAma2trLT51 cHBlcjsKIAotCVBHX1JFVFVSTl9GTE9BVDgoZ2J0X251bV9kaXN0YW5jZSgma2V5LCAmcXVlcnks IEdJU1RfTEVBRihlbnRyeSksCi0JCQkJCQkJCQkgICZ0aW5mbywgZmNpbmZvLT5mbGluZm8pKTsK KwlQR19SRVRVUk5fRkxPQVQ4KGdidF9udW1fZGlzdGFuY2VfeCgma2V5LCAmcXVlcnksIHF1ZXJ5 RGF0dW0sCisJCQkJCQkJCQkJc3VidHlwZSwgUEdfR0VUX0NPTExBVElPTigpLAorCQkJCQkJCQkJ CUdJU1RfTEVBRihlbnRyeSksCisJCQkJCQkJCQkJJnRpbmZvLCBmY2luZm8tPmZsaW5mbykpOwog fQogCiBEYXR1bQogZ2J0X2ludDhfdW5pb24oUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlHaXN0RW50 cnlWZWN0b3IgKmVudHJ5dmVjID0gKEdpc3RFbnRyeVZlY3RvciAqKSBQR19HRVRBUkdfUE9JTlRF UigwKTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV91dGlsc19udW0uYyBi L2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV91dGlsc19udW0uYwppbmRleCAzYWZmZTRjMmM0Ni4u Njg1NzRiODk1YzUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV91dGlsc19u dW0uYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfdXRpbHNfbnVtLmMKQEAgLTI1MCwx MiArMjUwLDMyIEBAIGdidF9udW1fYmluX3VuaW9uKERhdHVtICp1LCBHQlRfTlVNS0VZICplLCBj b25zdCBnYnRyZWVfbmluZm8gKnRpbmZvLCBGbWdySW5mbyAqCiAJCQltZW1jcHkodW5jb25zdGlm eShHQlRfTlVNS0VZICosIHVyLnVwcGVyKSwgcmQudXBwZXIsIHRpbmZvLT5zaXplKTsKIAl9CiB9 CiAKIAogCisvKgorICogTG9vayB1cCBjcm9zcy10eXBlIGNhbGxiYWNrcyBmb3IgYSBnaXZlbiBx dWVyeSBzdWJ0eXBlLiBSZXR1cm5zIE5VTEwgaWYKKyAqIHRoZSBvcGNsYXNzIGRvZXNuJ3QgYWR2 ZXJ0aXNlIGNyb3NzLXR5cGUgc3VwcG9ydCBmb3IgdGhpcyBzdWJ0eXBlLCBpbgorICogd2hpY2gg Y2FzZSBjYWxsZXJzIG11c3QgZmFsbCBiYWNrIHRvIHRoZSBzYW1lLXR5cGUgcGF0aC4KKyAqLwor c3RhdGljIGNvbnN0IGdidF9zdWJ0eXBlX2luZm8gKgorZ2J0X2ZpbmRfc3VidHlwZV9vcHMoY29u c3QgZ2J0cmVlX25pbmZvICp0aW5mbywgT2lkIHN1YnR5cGUpCit7CisJY29uc3QgZ2J0X3N1YnR5 cGVfaW5mbyAqcDsKKworCWlmIChzdWJ0eXBlID09IEludmFsaWRPaWQgfHwgdGluZm8tPnN1YnR5 cGVfb3BzID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCWZvciAocCA9IHRpbmZvLT5zdWJ0eXBl X29wczsgcC0+c3VidHlwZSAhPSBJbnZhbGlkT2lkOyBwKyspCisJeworCQlpZiAocC0+c3VidHlw ZSA9PSBzdWJ0eXBlKQorCQkJcmV0dXJuIHA7CisJfQorCXJldHVybiBOVUxMOworfQorCiAvKgog ICogVGhlIEdpU1QgY29uc2lzdGVudCBtZXRob2QKICAqCiAgKiBOb3RlOiB3ZSBjdXJyZW50bHkg YXNzdW1lIHRoYXQgbm8gZGF0YXR5cGVzIHRoYXQgdXNlIHRoaXMgcm91dGluZSBhcmUKICAqIGNv bGxhdGlvbi1hd2FyZTsgc28gd2UgZG9uJ3QgYm90aGVyIHBhc3NpbmcgY29sbGF0aW9uIHRocm91 Z2guCiAgKi8KQEAgLTMwNCwxMiArMzI0LDk5IEBAIGdidF9udW1fY29uc2lzdGVudChjb25zdCBH QlRfTlVNS0VZX1IgKmtleSwKIAkJCXJldHZhbCA9IGZhbHNlOwogCX0KIAogCXJldHVybiByZXR2 YWw7CiB9CiAKKy8qCisgKiBWZXJpZnkgdGhhdCAic3VidHlwZSIgaXMgb25lIHRoaXMgb3BjbGFz cyBrbm93cyBob3cgdG8gaGFuZGxlOiBpdCBtdXN0CisgKiBlaXRoZXIgYmUgSW52YWxpZE9pZCAv IHRoZSBvcGNsYXNzJ3MgbmF0aXZlIHR5cGUsIG9yIGJlIHJlZ2lzdGVyZWQgaW4KKyAqIHRoZSBk aXNwYXRjaCB0YWJsZS4gQW55dGhpbmcgZWxzZSBpcyBhbiBvcGVyYXRvci1mYW1pbHkgY29uZmln dXJhdGlvbgorICogZXJyb3IuCisgKi8KK3N0YXRpYyB2b2lkCitnYnRfY2hlY2tfc3VidHlwZShj b25zdCBnYnRyZWVfbmluZm8gKnRpbmZvLCBPaWQgc3VidHlwZSkKK3sKKwlpZiAoc3VidHlwZSA9 PSBJbnZhbGlkT2lkKQorCQlyZXR1cm47CisJaWYgKHRpbmZvLT50eXBlX29pZCA9PSBJbnZhbGlk T2lkKQorCQlyZXR1cm47CisJaWYgKHN1YnR5cGUgPT0gdGluZm8tPnR5cGVfb2lkKQorCQlyZXR1 cm47CisJaWYgKGdidF9maW5kX3N1YnR5cGVfb3BzKHRpbmZvLCBzdWJ0eXBlKSAhPSBOVUxMKQor CQlyZXR1cm47CisKKwllbG9nKEVSUk9SLAorCQkgImJ0cmVlX2dpc3Q6IGNyb3NzLXR5cGUgcXVl cnkgd2l0aCBzdWJ0eXBlICV1IGlzIG5vdCBzdXBwb3J0ZWQgIgorCQkgImJ5IHRoZSBvcGNsYXNz IGZvciB0eXBlICV1IChvcGVyYXRvci1mYW1pbHkgZGlzcGF0Y2ggdGFibGUgaXMgIgorCQkgIm91 dCBvZiBzeW5jIHdpdGggcGdfYW1vcCkiLAorCQkgc3VidHlwZSwgdGluZm8tPnR5cGVfb2lkKTsK K30KKworLyoKKyAqIENyb3NzLXR5cGUgYXdhcmUgY29uc2lzdGVudCBtZXRob2QuCisgKi8KK2Jv b2wKK2didF9udW1fY29uc2lzdGVudF94KGNvbnN0IEdCVF9OVU1LRVlfUiAqa2V5LAorCQkJCQkg Y29uc3Qgdm9pZCAqcXVlcnksCisJCQkJCSBEYXR1bSBxdWVyeURhdHVtLAorCQkJCQkgT2lkIHN1 YnR5cGUsCisJCQkJCSBPaWQgY29sbGF0aW9uLAorCQkJCQkgY29uc3QgU3RyYXRlZ3lOdW1iZXIg KnN0cmF0ZWd5LAorCQkJCQkgYm9vbCBpc19sZWFmLAorCQkJCQkgY29uc3QgZ2J0cmVlX25pbmZv ICp0aW5mbywKKwkJCQkJIEZtZ3JJbmZvICpmbGluZm8pCit7CisJY29uc3QgZ2J0X3N1YnR5cGVf aW5mbyAqeHQgPSBnYnRfZmluZF9zdWJ0eXBlX29wcyh0aW5mbywgc3VidHlwZSk7CisJZ2J0X3N1 YnR5cGVfY29udGV4dCBjeHQ7CisKKwlpZiAoeHQgPT0gTlVMTCkKKwl7CisJCWdidF9jaGVja19z dWJ0eXBlKHRpbmZvLCBzdWJ0eXBlKTsKKwkJcmV0dXJuIGdidF9udW1fY29uc2lzdGVudChrZXks IHF1ZXJ5LCBzdHJhdGVneSwgaXNfbGVhZiwgdGluZm8sIGZsaW5mbyk7CisJfQorCisJY3h0LnF1 ZXJ5ID0gcXVlcnlEYXR1bTsKKwljeHQuc3VidHlwZSA9IHN1YnR5cGU7CisJY3h0LmNvbGxhdGlv biA9IGNvbGxhdGlvbjsKKwljeHQuZmxpbmZvID0gZmxpbmZvOworCWN4dC5xdWVyeV9jYWNoZSA9 IE5VTEw7CisKKwlzd2l0Y2ggKCpzdHJhdGVneSkKKwl7CisJCWNhc2UgQlRMZXNzRXF1YWxTdHJh dGVneU51bWJlcjoKKwkJCS8qIHNvbWUgayBpbiBbbG93ZXIsdXBwZXJdIGhhcyBrIDw9IHEgaWZm IGxvd2VyIDw9IHEgKi8KKwkJCXJldHVybiB4dC0+Zl9sZShrZXktPmxvd2VyLCAmY3h0KTsKKwkJ Y2FzZSBCVExlc3NTdHJhdGVneU51bWJlcjoKKwkJCS8qIGxlYWY6IGtleSA8IHEuIGludGVybmFs OiBsb3dlciA8PSBxIChsb29zZSkgKi8KKwkJCXJldHVybiBpc19sZWFmID8geHQtPmZfbHQoa2V5 LT5sb3dlciwgJmN4dCkKKwkJCQk6IHh0LT5mX2xlKGtleS0+bG93ZXIsICZjeHQpOworCQljYXNl IEJURXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCWlmIChpc19sZWFmKQorCQkJCXJldHVybiB4dC0+ Zl9lcShrZXktPmxvd2VyLCAmY3h0KTsKKwkJCS8qIGludGVybmFsOiBsb3dlciA8PSBxIDw9IHVw cGVyICovCisJCQlyZXR1cm4gKHh0LT5mX2xlKGtleS0+bG93ZXIsICZjeHQpICYmCisJCQkJCXh0 LT5mX2dlKGtleS0+dXBwZXIsICZjeHQpKTsKKwkJY2FzZSBCVEdyZWF0ZXJTdHJhdGVneU51bWJl cjoKKworCQkJLyoKKwkJCSAqIGxlYWY6IGtleSA+IHEuIGludGVybmFsOiB1cHBlciA+PSBxIChs b29zZSkuIFJlYWQgdXBwZXIgb24KKwkJCSAqIGxlYXZlcyB0byBtYXRjaCB0aGUgc2FtZS10eXBl IHBhdGguCisJCQkgKi8KKwkJCXJldHVybiBpc19sZWFmID8geHQtPmZfZ3Qoa2V5LT51cHBlciwg JmN4dCkKKwkJCQk6IHh0LT5mX2dlKGtleS0+dXBwZXIsICZjeHQpOworCQljYXNlIEJUR3JlYXRl ckVxdWFsU3RyYXRlZ3lOdW1iZXI6CisJCQlyZXR1cm4geHQtPmZfZ2Uoa2V5LT51cHBlciwgJmN4 dCk7CisJCWNhc2UgQnRyZWVHaXN0Tm90RXF1YWxTdHJhdGVneU51bWJlcjoKKwkJCXJldHVybiAh KHh0LT5mX2VxKGtleS0+bG93ZXIsICZjeHQpICYmCisJCQkJCSB4dC0+Zl9lcShrZXktPnVwcGVy LCAmY3h0KSk7CisJCWRlZmF1bHQ6CisJCQlyZXR1cm4gZmFsc2U7CisJfQorfQorCiAKIC8qCiAg KiBUaGUgR2lTVCBkaXN0YW5jZSBtZXRob2QgKGZvciBLTk4tR2lzdCkKICAqLwogCiBmbG9hdDgK QEAgLTMzMSwxMiArNDM4LDUzIEBAIGdidF9udW1fZGlzdGFuY2UoY29uc3QgR0JUX05VTUtFWV9S ICprZXksCiAJZWxzZQogCQlyZXR2YWwgPSAwLjA7CiAKIAlyZXR1cm4gcmV0dmFsOwogfQogCisv KgorICogQ3Jvc3MtdHlwZSBhd2FyZSBkaXN0YW5jZSBtZXRob2QuCisgKi8KK2Zsb2F0OAorZ2J0 X251bV9kaXN0YW5jZV94KGNvbnN0IEdCVF9OVU1LRVlfUiAqa2V5LAorCQkJCSAgIGNvbnN0IHZv aWQgKnF1ZXJ5LAorCQkJCSAgIERhdHVtIHF1ZXJ5RGF0dW0sCisJCQkJICAgT2lkIHN1YnR5cGUs CisJCQkJICAgT2lkIGNvbGxhdGlvbiwKKwkJCQkgICBib29sIGlzX2xlYWYsCisJCQkJICAgY29u c3QgZ2J0cmVlX25pbmZvICp0aW5mbywKKwkJCQkgICBGbWdySW5mbyAqZmxpbmZvKQoreworCWNv bnN0IGdidF9zdWJ0eXBlX2luZm8gKnh0ID0gZ2J0X2ZpbmRfc3VidHlwZV9vcHModGluZm8sIHN1 YnR5cGUpOworCWdidF9zdWJ0eXBlX2NvbnRleHQgY3h0OworCisJaWYgKHh0ID09IE5VTEwpCisJ eworCQlnYnRfY2hlY2tfc3VidHlwZSh0aW5mbywgc3VidHlwZSk7CisJCXJldHVybiBnYnRfbnVt X2Rpc3RhbmNlKGtleSwgcXVlcnksIGlzX2xlYWYsIHRpbmZvLCBmbGluZm8pOworCX0KKworCWlm ICh4dC0+Zl9kaXN0ID09IE5VTEwpCisJCWVsb2coRVJST1IsICJLTk4gc2VhcmNoIGlzIG5vdCBz dXBwb3J0ZWQgZm9yIGJ0cmVlX2dpc3QgdHlwZSAlZCB3aXRoIHN1YnR5cGUgJXUiLAorCQkJIChp bnQpIHRpbmZvLT50LCBzdWJ0eXBlKTsKKworCWN4dC5xdWVyeSA9IHF1ZXJ5RGF0dW07CisJY3h0 LnN1YnR5cGUgPSBzdWJ0eXBlOworCWN4dC5jb2xsYXRpb24gPSBjb2xsYXRpb247CisJY3h0LmZs aW5mbyA9IGZsaW5mbzsKKwljeHQucXVlcnlfY2FjaGUgPSBOVUxMOworCisJLyogcSA8PSBsb3dl ciA8PT4gbG93ZXIgPj0gcSAqLworCWlmICh4dC0+Zl9nZShrZXktPmxvd2VyLCAmY3h0KSkKKwkJ cmV0dXJuIHh0LT5mX2Rpc3Qoa2V5LT5sb3dlciwgJmN4dCk7CisJLyogcSA+PSB1cHBlciA8PT4g dXBwZXIgPD0gcSAqLworCWlmICh4dC0+Zl9sZShrZXktPnVwcGVyLCAmY3h0KSkKKwkJcmV0dXJu IHh0LT5mX2Rpc3Qoa2V5LT51cHBlciwgJmN4dCk7CisJcmV0dXJuIDAuMDsKK30KKwogCiBHSVNU X1NQTElUVkVDICoKIGdidF9udW1fcGlja3NwbGl0KGNvbnN0IEdpc3RFbnRyeVZlY3RvciAqZW50 cnl2ZWMsIEdJU1RfU1BMSVRWRUMgKnYsCiAJCQkJICBjb25zdCBnYnRyZWVfbmluZm8gKnRpbmZv LCBGbWdySW5mbyAqZmxpbmZvKQogewogCU9mZnNldE51bWJlciBpLApkaWZmIC0tZ2l0IGEvY29u dHJpYi9idHJlZV9naXN0L2J0cmVlX3V0aWxzX251bS5oIGIvY29udHJpYi9idHJlZV9naXN0L2J0 cmVlX3V0aWxzX251bS5oCmluZGV4IDUzZTQ3N2Q4YjFlLi5kZmIwYTNiYjQxZiAxMDA2NDQKLS0t IGEvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX3V0aWxzX251bS5oCisrKyBiL2NvbnRyaWIvYnRy ZWVfZ2lzdC9idHJlZV91dGlsc19udW0uaApAQCAtMjcsMTIgKzI3LDQyIEBAIHR5cGVkZWYgc3Ry dWN0CiAJR0JUX05VTUtFWSAqdDsKIH0gTnNydDsKIAogCiAvKiB0eXBlIGRlc2NyaXB0aW9uICov CiAKKy8qCisgKiBDcm9zcy10eXBlIGNvbXBhcmlzb24gc3VwcG9ydC4KKyAqCisgKiBGb3IgY3Jv c3MtdHlwZSBvcGVyYXRvciBzdXBwb3J0IGFuIG9wY2xhc3MgbWF5IHN1cHBseSBhIE5VTEwtdGVy bWluYXRlZAorICogYXJyYXkgb2YgZ2J0X3N1YnR5cGVfaW5mbyBlbnRyaWVzLCBvbmUgcGVyIHN1 cHBvcnRlZCBxdWVyeSBzdWJ0eXBlLiBFYWNoCisgKiBjYWxsYmFjayByZWNlaXZlcyB0aGUgaW5k ZXgga2V5IGluIGl0cyBuYXRpdmUgQyByZXByZXNlbnRhdGlvbiAocG9pbnRlcgorICogaW50byB0 aGUgY29tcHJlc3NlZCBrZXkpIGFuZCBhIGNvbnRleHQgZGVzY3JpYmluZyB0aGUgcXVlcnkgdmFs dWUuCisgKi8KK3R5cGVkZWYgc3RydWN0IGdidF9zdWJ0eXBlX2NvbnRleHQKK3sKKwlEYXR1bQkJ cXVlcnk7CQkJLyogRGF0dW0gb2YgY3h0LT5zdWJ0eXBlICovCisJT2lkCQkJc3VidHlwZTsJCS8q IHJpZ2h0LWhhbmQvcXVlcnkgb3BlcmFuZCB0eXBlICovCisJT2lkCQkJY29sbGF0aW9uOwkJLyog Y29sbGF0aW9uIGZyb20gdGhlIHN1cHBvcnQgY2FsbCAqLworCUZtZ3JJbmZvICAgKmZsaW5mbzsJ CQkvKiBzdXBwb3J0LWZ1bmN0aW9uIGNhbGwgY29udGV4dCAqLworCXZvaWQJICAgKnF1ZXJ5X2Nh Y2hlOwkvKiBjYWxsYmFjay1vd25lZCBwZXItY2FsbCBzdGF0ZSAqLworfSBnYnRfc3VidHlwZV9j b250ZXh0OworCit0eXBlZGVmIHN0cnVjdCBnYnRfc3VidHlwZV9pbmZvCit7CisJT2lkCQkJc3Vi dHlwZTsJCS8qIEludmFsaWRPaWQgdGVybWluYXRlcyB0aGUgYXJyYXkgKi8KKwlib29sCQkoKmZf bHQpIChjb25zdCB2b2lkICprZXksIGdidF9zdWJ0eXBlX2NvbnRleHQgKmN4dCk7CisJYm9vbAkJ KCpmX2xlKSAoY29uc3Qgdm9pZCAqa2V5LCBnYnRfc3VidHlwZV9jb250ZXh0ICpjeHQpOworCWJv b2wJCSgqZl9lcSkgKGNvbnN0IHZvaWQgKmtleSwgZ2J0X3N1YnR5cGVfY29udGV4dCAqY3h0KTsK Kwlib29sCQkoKmZfZ2UpIChjb25zdCB2b2lkICprZXksIGdidF9zdWJ0eXBlX2NvbnRleHQgKmN4 dCk7CisJYm9vbAkJKCpmX2d0KSAoY29uc3Qgdm9pZCAqa2V5LCBnYnRfc3VidHlwZV9jb250ZXh0 ICpjeHQpOworCisJLyogTlVMTCBpZiBubyBLTk4gKi8KKwlmbG9hdDgJCSgqZl9kaXN0KSAoY29u c3Qgdm9pZCAqa2V5LCBnYnRfc3VidHlwZV9jb250ZXh0ICpjeHQpOworfSBnYnRfc3VidHlwZV9p bmZvOworCiB0eXBlZGVmIHN0cnVjdAogewogCiAJLyogQXR0cmlicyAqLwogCiAJZW51bSBnYnRy ZWVfdHlwZSB0OwkJCS8qIGRhdGEgdHlwZSAqLwpAQCAtNDUsMTQgKzc1LDU5IEBAIHR5cGVkZWYg c3RydWN0CiAJYm9vbAkJKCpmX2dlKSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICosIEZtZ3JJ bmZvICopOwkvKiBncmVhdGVyIG9yIGVxdWFsICovCiAJYm9vbAkJKCpmX2VxKSAoY29uc3Qgdm9p ZCAqLCBjb25zdCB2b2lkICosIEZtZ3JJbmZvICopOwkvKiBlcXVhbCAqLwogCWJvb2wJCSgqZl9s ZSkgKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBGbWdySW5mbyAqKTsJLyogbGVzcyBvciBl cXVhbCAqLwogCWJvb2wJCSgqZl9sdCkgKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9pZCAqLCBGbWdy SW5mbyAqKTsJLyogbGVzcyB0aGFuICovCiAJaW50CQkJKCpmX2NtcCkgKGNvbnN0IHZvaWQgKiwg Y29uc3Qgdm9pZCAqLCBGbWdySW5mbyAqKTsJLyoga2V5IGNvbXBhcmUgZnVuY3Rpb24gKi8KIAlm bG9hdDgJCSgqZl9kaXN0KSAoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICosIEZtZ3JJbmZvICop OyAvKiBrZXkgZGlzdGFuY2UgZnVuY3Rpb24gKi8KKworCS8qCisJICogT3B0aW9uYWwgTlVMTC10 ZXJtaW5hdGVkIGFycmF5IG9mIGNyb3NzLXR5cGUgY29tcGFyaXNvbiBjYWxsYmFja3MuIE5VTEwK KwkgKiBpZiB0aGUgb3BjbGFzcyBvbmx5IHN1cHBvcnRzIHNhbWUtdHlwZSBjb21wYXJpc29ucy4K KwkgKi8KKwljb25zdCBnYnRfc3VidHlwZV9pbmZvICpzdWJ0eXBlX29wczsKKworCS8qCisJICog TmF0aXZlIHBnX3R5cGUgT0lEIG9mIHRoZSBpbmRleGVkIHR5cGUuIFVzZWQgYnkgdGhlIF94IEFQ SXMgdG8gdmFsaWRhdGUKKwkgKiB0aGUgc3VidHlwZSBwYXNzZWQgaW4gZnJvbSB0aGUgcGxhbm5l ci4gSW52YWxpZE9pZCBkaXNhYmxlcyB0aGF0IGNoZWNrLAorCSAqIHdoaWNoIGlzIHJpZ2h0IGZv ciBsZWdhY3kgb3BjbGFzc2VzIHRoYXQgZG9uJ3QgdXNlIF94LgorCSAqLworCU9pZAkJCXR5cGVf b2lkOwogfSBnYnRyZWVfbmluZm87CiAKKyNkZWZpbmUgR0JUX0RFRklORV9JTlRfQ1JPU1NUWVBF KHByZWZpeCwga2V5X2N0eXBlLCBnZXRfc3ViKSBcCitzdGF0aWMgYm9vbCBcCitwcmVmaXgjI19s dChjb25zdCB2b2lkICprLCBnYnRfc3VidHlwZV9jb250ZXh0ICpjeHQpIFwKK3sgXAorCXJldHVy biAoaW50NjQpICooY29uc3Qga2V5X2N0eXBlICopIGsgPCAoaW50NjQpIGdldF9zdWIoY3h0LT5x dWVyeSk7IFwKK30gXAorc3RhdGljIGJvb2wgXAorcHJlZml4IyNfbGUoY29uc3Qgdm9pZCAqaywg Z2J0X3N1YnR5cGVfY29udGV4dCAqY3h0KSBcCit7IFwKKwlyZXR1cm4gKGludDY0KSAqKGNvbnN0 IGtleV9jdHlwZSAqKSBrIDw9IChpbnQ2NCkgZ2V0X3N1YihjeHQtPnF1ZXJ5KTsgXAorfSBcCitz dGF0aWMgYm9vbCBcCitwcmVmaXgjI19lcShjb25zdCB2b2lkICprLCBnYnRfc3VidHlwZV9jb250 ZXh0ICpjeHQpIFwKK3sgXAorCXJldHVybiAoaW50NjQpICooY29uc3Qga2V5X2N0eXBlICopIGsg PT0gKGludDY0KSBnZXRfc3ViKGN4dC0+cXVlcnkpOyBcCit9IFwKK3N0YXRpYyBib29sIFwKK3By ZWZpeCMjX2dlKGNvbnN0IHZvaWQgKmssIGdidF9zdWJ0eXBlX2NvbnRleHQgKmN4dCkgXAoreyBc CisJcmV0dXJuIChpbnQ2NCkgKihjb25zdCBrZXlfY3R5cGUgKikgayA+PSAoaW50NjQpIGdldF9z dWIoY3h0LT5xdWVyeSk7IFwKK30gXAorc3RhdGljIGJvb2wgXAorcHJlZml4IyNfZ3QoY29uc3Qg dm9pZCAqaywgZ2J0X3N1YnR5cGVfY29udGV4dCAqY3h0KSBcCit7IFwKKwlyZXR1cm4gKGludDY0 KSAqKGNvbnN0IGtleV9jdHlwZSAqKSBrID4gKGludDY0KSBnZXRfc3ViKGN4dC0+cXVlcnkpOyBc Cit9IFwKK3N0YXRpYyBmbG9hdDggXAorcHJlZml4IyNfZGlzdChjb25zdCB2b2lkICprLCBnYnRf c3VidHlwZV9jb250ZXh0ICpjeHQpIFwKK3sgXAorCXJldHVybiBmYWJzKChmbG9hdDgpICooY29u c3Qga2V5X2N0eXBlICopIGsgLSAoZmxvYXQ4KSBnZXRfc3ViKGN4dC0+cXVlcnkpKTsgXAorfQor CiAKIC8qCiAgKglOdW1lcmljIGJ0cmVlIGZ1bmN0aW9ucwogICovCiAKIApAQCAtOTIsMTUgKzE2 NywyNSBAQCB0eXBlZGVmIHN0cnVjdAogZXh0ZXJuIEludGVydmFsICphYnNfaW50ZXJ2YWwoSW50 ZXJ2YWwgKmEpOwogCiBleHRlcm4gYm9vbCBnYnRfbnVtX2NvbnNpc3RlbnQoY29uc3QgR0JUX05V TUtFWV9SICprZXksIGNvbnN0IHZvaWQgKnF1ZXJ5LAogCQkJCQkJCSAgIGNvbnN0IFN0cmF0ZWd5 TnVtYmVyICpzdHJhdGVneSwgYm9vbCBpc19sZWFmLAogCQkJCQkJCSAgIGNvbnN0IGdidHJlZV9u aW5mbyAqdGluZm8sIEZtZ3JJbmZvICpmbGluZm8pOwogCitleHRlcm4gYm9vbCBnYnRfbnVtX2Nv bnNpc3RlbnRfeChjb25zdCBHQlRfTlVNS0VZX1IgKmtleSwgY29uc3Qgdm9pZCAqcXVlcnksCisJ CQkJCQkJCSBEYXR1bSBxdWVyeURhdHVtLCBPaWQgc3VidHlwZSwgT2lkIGNvbGxhdGlvbiwKKwkJ CQkJCQkJIGNvbnN0IFN0cmF0ZWd5TnVtYmVyICpzdHJhdGVneSwgYm9vbCBpc19sZWFmLAorCQkJ CQkJCQkgY29uc3QgZ2J0cmVlX25pbmZvICp0aW5mbywgRm1nckluZm8gKmZsaW5mbyk7CisKIGV4 dGVybiBmbG9hdDggZ2J0X251bV9kaXN0YW5jZShjb25zdCBHQlRfTlVNS0VZX1IgKmtleSwgY29u c3Qgdm9pZCAqcXVlcnksCiAJCQkJCQkJICAgYm9vbCBpc19sZWFmLCBjb25zdCBnYnRyZWVfbmlu Zm8gKnRpbmZvLCBGbWdySW5mbyAqZmxpbmZvKTsKIAorZXh0ZXJuIGZsb2F0OCBnYnRfbnVtX2Rp c3RhbmNlX3goY29uc3QgR0JUX05VTUtFWV9SICprZXksIGNvbnN0IHZvaWQgKnF1ZXJ5LAorCQkJ CQkJCQkgRGF0dW0gcXVlcnlEYXR1bSwgT2lkIHN1YnR5cGUsIE9pZCBjb2xsYXRpb24sCisJCQkJ CQkJCSBib29sIGlzX2xlYWYsCisJCQkJCQkJCSBjb25zdCBnYnRyZWVfbmluZm8gKnRpbmZvLCBG bWdySW5mbyAqZmxpbmZvKTsKKwogZXh0ZXJuIEdJU1RfU1BMSVRWRUMgKmdidF9udW1fcGlja3Nw bGl0KGNvbnN0IEdpc3RFbnRyeVZlY3RvciAqZW50cnl2ZWMsIEdJU1RfU1BMSVRWRUMgKnYsCiAJ CQkJCQkJCQkJY29uc3QgZ2J0cmVlX25pbmZvICp0aW5mbywgRm1nckluZm8gKmZsaW5mbyk7CiAK IGV4dGVybiBHSVNURU5UUlkgKmdidF9udW1fY29tcHJlc3MoR0lTVEVOVFJZICplbnRyeSwgY29u c3QgZ2J0cmVlX25pbmZvICp0aW5mbyk7CiAKIGV4dGVybiBHSVNURU5UUlkgKmdidF9udW1fZmV0 Y2goR0lTVEVOVFJZICplbnRyeSwgY29uc3QgZ2J0cmVlX25pbmZvICp0aW5mbyk7CmRpZmYgLS1n aXQgYS9jb250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQgYi9jb250cmliL2J0cmVlX2dpc3Qv bWVzb24uYnVpbGQKaW5kZXggMmIxYTU0NjMyODkuLmM2NDBjYjdkOGQyIDEwMDY0NAotLS0gYS9j b250cmliL2J0cmVlX2dpc3QvbWVzb24uYnVpbGQKKysrIGIvY29udHJpYi9idHJlZV9naXN0L21l c29uLmJ1aWxkCkBAIC00OSwxMiArNDksMTMgQEAgaW5zdGFsbF9kYXRhKAogICAnYnRyZWVfZ2lz dC0tMS40LS0xLjUuc3FsJywKICAgJ2J0cmVlX2dpc3QtLTEuNS0tMS42LnNxbCcsCiAgICdidHJl ZV9naXN0LS0xLjYtLTEuNy5zcWwnLAogICAnYnRyZWVfZ2lzdC0tMS43LS0xLjguc3FsJywKICAg J2J0cmVlX2dpc3QtLTEuOC0tMS45LnNxbCcsCiAgICdidHJlZV9naXN0LS0xLjkuc3FsJywKKyAg J2J0cmVlX2dpc3QtLTEuOS0tMS4xMC5zcWwnLAogICBrd2FyZ3M6IGNvbnRyaWJfZGF0YV9hcmdz LAogKQogCiB0ZXN0cyArPSB7CiAgICduYW1lJzogJ2J0cmVlX2dpc3QnLAogICAnc2QnOiBtZXNv bi5jdXJyZW50X3NvdXJjZV9kaXIoKSwKQEAgLTg5LDEwICs5MCwxMSBAQCB0ZXN0cyArPSB7CiAg ICAgICAndXVpZCcsCiAgICAgICAnbm90X2VxdWFsJywKICAgICAgICdlbnVtJywKICAgICAgICdi b29sJywKICAgICAgICdwYXJ0aXRpb25zJywKICAgICAgICdzdHJhdG51bScsCisgICAgICAnaW50 X2Nyb3NzdHlwZScsCiAgICAgICAnd2l0aG91dF9vdmVybGFwcycsCiAgICAgXSwKICAgfSwKIH0K LS0gCjIuNTEuMAoK --6a20a7b5_2ae8944a_76fe--