Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pxPZJ-0003wE-Cm for pgsql-bugs@arkaria.postgresql.org; Fri, 12 May 2023 10:00:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pxPZI-0004Ri-BB for pgsql-bugs@arkaria.postgresql.org; Fri, 12 May 2023 10:00:08 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pxPZH-0004RZ-VU for pgsql-bugs@lists.postgresql.org; Fri, 12 May 2023 10:00:08 +0000 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1pxPZE-002BYp-Ra for pgsql-bugs@lists.postgresql.org; Fri, 12 May 2023 10:00:07 +0000 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-4ec8eca56cfso10892756e87.0 for ; Fri, 12 May 2023 03:00:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1683885603; x=1686477603; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:from:to:cc:subject:date:message-id :reply-to; bh=0vrqZiyGvd6o8fn+7TWER9GrwGL2RIQclBDvMYuK3KY=; b=Dyt6nIu6sjhcaaHImyyNHBAx5wkKS+WiiCBSK0A43c1eC1gaNBfvUAUC0XxYqNBiwI SHSSC+vLnw8abnCm9k2jaD95mRAHePU+8OU2u6rKhQejq5UALJ9soFWu1ElD3w6ifJp8 72MdD9PCkJkpOVoGRInK3HmEVLyouzDLyuL1LSbOl2a5qga7YOlEByYFQdpi0ID/tyGU 4vvSgCz0aNjILoSRl/5TiKSs1mGP8kvYeAwdAAs8fDH86+TvjaHcUuuIWvkKe0Eu7kh+ e9TMv3qBfOaGNQbT8Ew4q8dV7j3Eck7IS2dTHpufkUuD2C7jRWvCmsdj1a1MQ+9tr7B2 66sA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683885603; x=1686477603; h=in-reply-to:from:references:to:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=0vrqZiyGvd6o8fn+7TWER9GrwGL2RIQclBDvMYuK3KY=; b=bID+ipb8KhmbQf8qz1UrqD0nbTf7OIb8mSvbdDPtvxbiD/W04L2PE5wRxG1lr6RWzc 42OWaOZPyN4Efn/sCysgu8bvWG9D1EuynJRh62KyMWfVr2mPnqgwQg7C/i0KyULUTKPI PXMxR1JDWSvwYZkVtBO/66jstS9gycDGbQhP8ii1Adi0aESy5/EPJGl++ozRJ4+Vay0u 0oyZ5c9jm9deraAVJBK42DFpWHlOWNBMFMI/UZJSy0sRST0n0DxtdFA4THvC5V+9DNyK EuIi06rMpWHEMcvnpDBXWgdyCfoQkQxHkJkRsCLRLeugjez+yWSPB90J+2iFZdQ2UcKe HWBQ== X-Gm-Message-State: AC+VfDyvNUwAGueVbyO8Vw2yOQMN5FYhMOIeXVnVd9S4mly/4fcrp8zJ HNa2/YnvhKMy2xszBw/C9G81lfwm7bMZEA== X-Google-Smtp-Source: ACHHUZ5nA+v2yLkGtDxleCZJNOuvB7/m8E6ubvodO8gOMlNSA1oV/hym3X+ZVSftS7bhJVkw21q8dw== X-Received: by 2002:ac2:43a1:0:b0:4ea:e296:fe9e with SMTP id t1-20020ac243a1000000b004eae296fe9emr3082676lfl.9.1683885603040; Fri, 12 May 2023 03:00:03 -0700 (PDT) Received: from [1.0.0.7] ([81.23.166.126]) by smtp.gmail.com with ESMTPSA id q19-20020a19a413000000b004f27d02b13asm17233lfc.150.2023.05.12.03.00.01 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 12 May 2023 03:00:02 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------QqmcfLpkHP32j2FTNxFQvl1X" Message-ID: <92873f8d-a9b1-0ee8-5753-ee4a1664fb0e@gmail.com> Date: Fri, 12 May 2023 13:00:01 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: BUG #17884: gist_page_items() crashes for a non-leaf page of an index with non-key columns Content-Language: en-US To: pgsql-bugs@lists.postgresql.org, Andrey Borodin References: <17884-cb8c326522977acb@postgresql.org> From: Alexander Lakhin In-Reply-To: <17884-cb8c326522977acb@postgresql.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------QqmcfLpkHP32j2FTNxFQvl1X Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit 04.04.2023 16:00, PG Bug reporting form sent: > The following bug has been logged on the website: > > Bug reference: 17884 > > ... > > Here gist_page_items() tries to decode a tuple using a descriptor of the > index (defining 3 columns), but in fact non-leaf page items contain no > non-key data ... Please look at the patch attached, that makes gist_page_items() process items on leaf and non-leaf pages differently, accounting for their contents. I've decided to move away from BuildIndexValueDescription(), but borrow some of it's code, for two reasons: that function outputs only key columns; it checks permissions for a table/index, but this is not needed for pageinspect (firstly, because a user already has all the data do decode; secondly, because gist_page_items() requires a superuser role anyway). Best regards, Alexander --------------QqmcfLpkHP32j2FTNxFQvl1X Content-Type: text/x-patch; charset=UTF-8; name="v1-01-fix-gist_page_items-for-index-with-INCLUDE.patch" Content-Disposition: attachment; filename="v1-01-fix-gist_page_items-for-index-with-INCLUDE.patch" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQvZ2lzdC5vdXQgYi9j b250cmliL3BhZ2VpbnNwZWN0L2V4cGVjdGVkL2dpc3Qub3V0CmluZGV4IDQ2MGJlZjMwMzcu LmNkMTBjMzQ5NjAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFnZWluc3BlY3QvZXhwZWN0ZWQv Z2lzdC5vdXQKKysrIGIvY29udHJpYi9wYWdlaW5zcGVjdC9leHBlY3RlZC9naXN0Lm91dApA QCAtMTA3LDQgKzEwNywxODAgQEAgU0VMRUNUIGdpc3RfcGFnZV9vcGFxdWVfaW5mbyhkZWNv ZGUocmVwZWF0KCcwMCcsIDpibG9ja19zaXplKSwgJ2hleCcpKTsKICAKICgxIHJvdykKIAor LS0gVGVzdCBnaXN0X3BhZ2VfaXRlbXMgd2l0aCBwYWdlcyBvZiBhbiBpbmRleCBjb250YWlu aW5nIG5vbi1rZXkgY29sdW1ucworQ1JFQVRFIElOREVYIHRlc3RfZ2lzdF9pZHhfaW5jIE9O IHRlc3RfZ2lzdCBVU0lORyBnaXN0IChwKSBJTkNMVURFICh0KTsKK1NFTEVDVCBnaXN0X3Bh Z2VfaXRlbXMoZ2V0X3Jhd19wYWdlKCd0ZXN0X2dpc3RfaWR4X2luYycsIDApLCAndGVzdF9n aXN0X2lkeF9pbmMnKTsKKyAgICAgICAgICAgICBnaXN0X3BhZ2VfaXRlbXMgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEs IigxLDY1NTM1KSIsNDAsZiwiKHApPSgoMTU2LDE1NikpIikKKyAoMiwiKDIsNjU1MzUpIiw0 MCxmLCIocCk9KCgzMTIsMzEyKSkiKQorICgzLCIoMyw2NTUzNSkiLDQwLGYsIihwKT0oKDQ2 OCw0NjgpKSIpCisgKDQsIig0LDY1NTM1KSIsNDAsZiwiKHApPSgoNjI0LDYyNCkpIikKKyAo NSwiKDUsNjU1MzUpIiw0MCxmLCIocCk9KCg3MTgsNzE4KSkiKQorICg2LCIoNiw2NTUzNSki LDQwLGYsIihwKT0oKDgxMiw4MTIpKSIpCisgKDcsIig3LDY1NTM1KSIsNDAsZiwiKHApPSgo OTA2LDkwNikpIikKKyAoOCwiKDgsNjU1MzUpIiw0MCxmLCIocCk9KCgxMDAwLDEwMDApKSIp CisoOCByb3dzKQorCitTRUxFQ1QgZ2lzdF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVz dF9naXN0X2lkeF9pbmMnLCAxKSwgJ3Rlc3RfZ2lzdF9pZHhfaW5jJyk7CisgICAgICAgICAg ICAgICAgICAgICAgICAgZ2lzdF9wYWdlX2l0ZW1zICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICgxLCIoMCwxKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgo MSwxKSkgSU5DTFVERSAoMSkiKQorICgyLCIoMCwyKSIsNDgsZiwiKHApIElOQ0xVREUgKHQp PSgoMiwyKSkgSU5DTFVERSAoMikiKQorICgzLCIoMCwzKSIsNDgsZiwiKHApIElOQ0xVREUg KHQpPSgoMywzKSkgSU5DTFVERSAoMykiKQorICg0LCIoMCw0KSIsNDgsZiwiKHApIElOQ0xV REUgKHQpPSgoNCw0KSkgSU5DTFVERSAoNCkiKQorICg1LCIoMCw1KSIsNDgsZiwiKHApIElO Q0xVREUgKHQpPSgoNSw1KSkgSU5DTFVERSAoNSkiKQorICg2LCIoMCw2KSIsNDgsZiwiKHAp IElOQ0xVREUgKHQpPSgoNiw2KSkgSU5DTFVERSAoNikiKQorICg3LCIoMCw3KSIsNDgsZiwi KHApIElOQ0xVREUgKHQpPSgoNyw3KSkgSU5DTFVERSAoNykiKQorICg4LCIoMCw4KSIsNDgs ZiwiKHApIElOQ0xVREUgKHQpPSgoOCw4KSkgSU5DTFVERSAoOCkiKQorICg5LCIoMCw5KSIs NDgsZiwiKHApIElOQ0xVREUgKHQpPSgoOSw5KSkgSU5DTFVERSAoOSkiKQorICgxMCwiKDAs MTApIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxMCwxMCkpIElOQ0xVREUgKDEwKSIpCisg KDExLCIoMCwxMSkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDExLDExKSkgSU5DTFVERSAo MTEpIikKKyAoMTIsIigwLDEyKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTIsMTIpKSBJ TkNMVURFICgxMikiKQorICgxMywiKDAsMTMpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgx MywxMykpIElOQ0xVREUgKDEzKSIpCisgKDE0LCIoMCwxNCkiLDQ4LGYsIihwKSBJTkNMVURF ICh0KT0oKDE0LDE0KSkgSU5DTFVERSAoMTQpIikKKyAoMTUsIigwLDE1KSIsNDgsZiwiKHAp IElOQ0xVREUgKHQpPSgoMTUsMTUpKSBJTkNMVURFICgxNSkiKQorICgxNiwiKDAsMTYpIiw0 OCxmLCIocCkgSU5DTFVERSAodCk9KCgxNiwxNikpIElOQ0xVREUgKDE2KSIpCisgKDE3LCIo MCwxNykiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDE3LDE3KSkgSU5DTFVERSAoMTcpIikK KyAoMTgsIigwLDE4KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTgsMTgpKSBJTkNMVURF ICgxOCkiKQorICgxOSwiKDAsMTkpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxOSwxOSkp IElOQ0xVREUgKDE5KSIpCisgKDIwLCIoMCwyMCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0o KDIwLDIwKSkgSU5DTFVERSAoMjApIikKKyAoMjEsIigwLDIxKSIsNDgsZiwiKHApIElOQ0xV REUgKHQpPSgoMjEsMjEpKSBJTkNMVURFICgyMSkiKQorICgyMiwiKDAsMjIpIiw0OCxmLCIo cCkgSU5DTFVERSAodCk9KCgyMiwyMikpIElOQ0xVREUgKDIyKSIpCisgKDIzLCIoMCwyMyki LDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDIzLDIzKSkgSU5DTFVERSAoMjMpIikKKyAoMjQs IigwLDI0KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMjQsMjQpKSBJTkNMVURFICgyNCki KQorICgyNSwiKDAsMjUpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgyNSwyNSkpIElOQ0xV REUgKDI1KSIpCisgKDI2LCIoMCwyNikiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDI2LDI2 KSkgSU5DTFVERSAoMjYpIikKKyAoMjcsIigwLDI3KSIsNDgsZiwiKHApIElOQ0xVREUgKHQp PSgoMjcsMjcpKSBJTkNMVURFICgyNykiKQorICgyOCwiKDAsMjgpIiw0OCxmLCIocCkgSU5D TFVERSAodCk9KCgyOCwyOCkpIElOQ0xVREUgKDI4KSIpCisgKDI5LCIoMCwyOSkiLDQ4LGYs IihwKSBJTkNMVURFICh0KT0oKDI5LDI5KSkgSU5DTFVERSAoMjkpIikKKyAoMzAsIigwLDMw KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMzAsMzApKSBJTkNMVURFICgzMCkiKQorICgz MSwiKDAsMzEpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgzMSwzMSkpIElOQ0xVREUgKDMx KSIpCisgKDMyLCIoMCwzMikiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDMyLDMyKSkgSU5D TFVERSAoMzIpIikKKyAoMzMsIigwLDMzKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMzMs MzMpKSBJTkNMVURFICgzMykiKQorICgzNCwiKDAsMzQpIiw0OCxmLCIocCkgSU5DTFVERSAo dCk9KCgzNCwzNCkpIElOQ0xVREUgKDM0KSIpCisgKDM1LCIoMCwzNSkiLDQ4LGYsIihwKSBJ TkNMVURFICh0KT0oKDM1LDM1KSkgSU5DTFVERSAoMzUpIikKKyAoMzYsIigwLDM2KSIsNDgs ZiwiKHApIElOQ0xVREUgKHQpPSgoMzYsMzYpKSBJTkNMVURFICgzNikiKQorICgzNywiKDAs MzcpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgzNywzNykpIElOQ0xVREUgKDM3KSIpCisg KDM4LCIoMCwzOCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDM4LDM4KSkgSU5DTFVERSAo MzgpIikKKyAoMzksIigwLDM5KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMzksMzkpKSBJ TkNMVURFICgzOSkiKQorICg0MCwiKDAsNDApIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg0 MCw0MCkpIElOQ0xVREUgKDQwKSIpCisgKDQxLCIoMCw0MSkiLDQ4LGYsIihwKSBJTkNMVURF ICh0KT0oKDQxLDQxKSkgSU5DTFVERSAoNDEpIikKKyAoNDIsIigwLDQyKSIsNDgsZiwiKHAp IElOQ0xVREUgKHQpPSgoNDIsNDIpKSBJTkNMVURFICg0MikiKQorICg0MywiKDAsNDMpIiw0 OCxmLCIocCkgSU5DTFVERSAodCk9KCg0Myw0MykpIElOQ0xVREUgKDQzKSIpCisgKDQ0LCIo MCw0NCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDQ0LDQ0KSkgSU5DTFVERSAoNDQpIikK KyAoNDUsIigwLDQ1KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoNDUsNDUpKSBJTkNMVURF ICg0NSkiKQorICg0NiwiKDAsNDYpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg0Niw0Nikp IElOQ0xVREUgKDQ2KSIpCisgKDQ3LCIoMCw0NykiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0o KDQ3LDQ3KSkgSU5DTFVERSAoNDcpIikKKyAoNDgsIigwLDQ4KSIsNDgsZiwiKHApIElOQ0xV REUgKHQpPSgoNDgsNDgpKSBJTkNMVURFICg0OCkiKQorICg0OSwiKDAsNDkpIiw0OCxmLCIo cCkgSU5DTFVERSAodCk9KCg0OSw0OSkpIElOQ0xVREUgKDQ5KSIpCisgKDUwLCIoMCw1MCki LDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDUwLDUwKSkgSU5DTFVERSAoNTApIikKKyAoNTEs IigwLDUxKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoNTEsNTEpKSBJTkNMVURFICg1MSki KQorICg1MiwiKDAsNTIpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg1Miw1MikpIElOQ0xV REUgKDUyKSIpCisgKDUzLCIoMCw1MykiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDUzLDUz KSkgSU5DTFVERSAoNTMpIikKKyAoNTQsIigwLDU0KSIsNDgsZiwiKHApIElOQ0xVREUgKHQp PSgoNTQsNTQpKSBJTkNMVURFICg1NCkiKQorICg1NSwiKDAsNTUpIiw0OCxmLCIocCkgSU5D TFVERSAodCk9KCg1NSw1NSkpIElOQ0xVREUgKDU1KSIpCisgKDU2LCIoMCw1NikiLDQ4LGYs IihwKSBJTkNMVURFICh0KT0oKDU2LDU2KSkgSU5DTFVERSAoNTYpIikKKyAoNTcsIigwLDU3 KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoNTcsNTcpKSBJTkNMVURFICg1NykiKQorICg1 OCwiKDAsNTgpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg1OCw1OCkpIElOQ0xVREUgKDU4 KSIpCisgKDU5LCIoMCw1OSkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDU5LDU5KSkgSU5D TFVERSAoNTkpIikKKyAoNjAsIigwLDYwKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoNjAs NjApKSBJTkNMVURFICg2MCkiKQorICg2MSwiKDAsNjEpIiw0OCxmLCIocCkgSU5DTFVERSAo dCk9KCg2MSw2MSkpIElOQ0xVREUgKDYxKSIpCisgKDYyLCIoMCw2MikiLDQ4LGYsIihwKSBJ TkNMVURFICh0KT0oKDYyLDYyKSkgSU5DTFVERSAoNjIpIikKKyAoNjMsIigwLDYzKSIsNDgs ZiwiKHApIElOQ0xVREUgKHQpPSgoNjMsNjMpKSBJTkNMVURFICg2MykiKQorICg2NCwiKDAs NjQpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg2NCw2NCkpIElOQ0xVREUgKDY0KSIpCisg KDY1LCIoMCw2NSkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDY1LDY1KSkgSU5DTFVERSAo NjUpIikKKyAoNjYsIigwLDY2KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoNjYsNjYpKSBJ TkNMVURFICg2NikiKQorICg2NywiKDAsNjcpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg2 Nyw2NykpIElOQ0xVREUgKDY3KSIpCisgKDY4LCIoMCw2OCkiLDQ4LGYsIihwKSBJTkNMVURF ICh0KT0oKDY4LDY4KSkgSU5DTFVERSAoNjgpIikKKyAoNjksIigwLDY5KSIsNDgsZiwiKHAp IElOQ0xVREUgKHQpPSgoNjksNjkpKSBJTkNMVURFICg2OSkiKQorICg3MCwiKDAsNzApIiw0 OCxmLCIocCkgSU5DTFVERSAodCk9KCg3MCw3MCkpIElOQ0xVREUgKDcwKSIpCisgKDcxLCIo MCw3MSkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDcxLDcxKSkgSU5DTFVERSAoNzEpIikK KyAoNzIsIigwLDcyKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoNzIsNzIpKSBJTkNMVURF ICg3MikiKQorICg3MywiKDAsNzMpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg3Myw3Mykp IElOQ0xVREUgKDczKSIpCisgKDc0LCIoMCw3NCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0o KDc0LDc0KSkgSU5DTFVERSAoNzQpIikKKyAoNzUsIigwLDc1KSIsNDgsZiwiKHApIElOQ0xV REUgKHQpPSgoNzUsNzUpKSBJTkNMVURFICg3NSkiKQorICg3NiwiKDAsNzYpIiw0OCxmLCIo cCkgSU5DTFVERSAodCk9KCg3Niw3NikpIElOQ0xVREUgKDc2KSIpCisgKDc3LCIoMCw3Nyki LDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDc3LDc3KSkgSU5DTFVERSAoNzcpIikKKyAoNzgs IigwLDc4KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoNzgsNzgpKSBJTkNMVURFICg3OCki KQorICg3OSwiKDAsNzkpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg3OSw3OSkpIElOQ0xV REUgKDc5KSIpCisgKDgwLCIoMCw4MCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDgwLDgw KSkgSU5DTFVERSAoODApIikKKyAoODEsIigwLDgxKSIsNDgsZiwiKHApIElOQ0xVREUgKHQp PSgoODEsODEpKSBJTkNMVURFICg4MSkiKQorICg4MiwiKDAsODIpIiw0OCxmLCIocCkgSU5D TFVERSAodCk9KCg4Miw4MikpIElOQ0xVREUgKDgyKSIpCisgKDgzLCIoMCw4MykiLDQ4LGYs IihwKSBJTkNMVURFICh0KT0oKDgzLDgzKSkgSU5DTFVERSAoODMpIikKKyAoODQsIigwLDg0 KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoODQsODQpKSBJTkNMVURFICg4NCkiKQorICg4 NSwiKDAsODUpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg4NSw4NSkpIElOQ0xVREUgKDg1 KSIpCisgKDg2LCIoMCw4NikiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDg2LDg2KSkgSU5D TFVERSAoODYpIikKKyAoODcsIigwLDg3KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoODcs ODcpKSBJTkNMVURFICg4NykiKQorICg4OCwiKDAsODgpIiw0OCxmLCIocCkgSU5DTFVERSAo dCk9KCg4OCw4OCkpIElOQ0xVREUgKDg4KSIpCisgKDg5LCIoMCw4OSkiLDQ4LGYsIihwKSBJ TkNMVURFICh0KT0oKDg5LDg5KSkgSU5DTFVERSAoODkpIikKKyAoOTAsIigwLDkwKSIsNDgs ZiwiKHApIElOQ0xVREUgKHQpPSgoOTAsOTApKSBJTkNMVURFICg5MCkiKQorICg5MSwiKDAs OTEpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg5MSw5MSkpIElOQ0xVREUgKDkxKSIpCisg KDkyLCIoMCw5MikiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDkyLDkyKSkgSU5DTFVERSAo OTIpIikKKyAoOTMsIigwLDkzKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoOTMsOTMpKSBJ TkNMVURFICg5MykiKQorICg5NCwiKDAsOTQpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCg5 NCw5NCkpIElOQ0xVREUgKDk0KSIpCisgKDk1LCIoMCw5NSkiLDQ4LGYsIihwKSBJTkNMVURF ICh0KT0oKDk1LDk1KSkgSU5DTFVERSAoOTUpIikKKyAoOTYsIigwLDk2KSIsNDgsZiwiKHAp IElOQ0xVREUgKHQpPSgoOTYsOTYpKSBJTkNMVURFICg5NikiKQorICg5NywiKDAsOTcpIiw0 OCxmLCIocCkgSU5DTFVERSAodCk9KCg5Nyw5NykpIElOQ0xVREUgKDk3KSIpCisgKDk4LCIo MCw5OCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDk4LDk4KSkgSU5DTFVERSAoOTgpIikK KyAoOTksIigwLDk5KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoOTksOTkpKSBJTkNMVURF ICg5OSkiKQorICgxMDAsIigwLDEwMCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDEwMCwx MDApKSBJTkNMVURFICgxMDApIikKKyAoMTAxLCIoMCwxMDEpIiw0OCxmLCIocCkgSU5DTFVE RSAodCk9KCgxMDEsMTAxKSkgSU5DTFVERSAoMTAxKSIpCisgKDEwMiwiKDAsMTAyKSIsNDgs ZiwiKHApIElOQ0xVREUgKHQpPSgoMTAyLDEwMikpIElOQ0xVREUgKDEwMikiKQorICgxMDMs IigwLDEwMykiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDEwMywxMDMpKSBJTkNMVURFICgx MDMpIikKKyAoMTA0LCIoMCwxMDQpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxMDQsMTA0 KSkgSU5DTFVERSAoMTA0KSIpCisgKDEwNSwiKDAsMTA1KSIsNDgsZiwiKHApIElOQ0xVREUg KHQpPSgoMTA1LDEwNSkpIElOQ0xVREUgKDEwNSkiKQorICgxMDYsIigwLDEwNikiLDQ4LGYs IihwKSBJTkNMVURFICh0KT0oKDEwNiwxMDYpKSBJTkNMVURFICgxMDYpIikKKyAoMTA3LCIo MCwxMDcpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxMDcsMTA3KSkgSU5DTFVERSAoMTA3 KSIpCisgKDEwOCwiKDAsMTA4KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTA4LDEwOCkp IElOQ0xVREUgKDEwOCkiKQorICgxMDksIigwLDEwOSkiLDQ4LGYsIihwKSBJTkNMVURFICh0 KT0oKDEwOSwxMDkpKSBJTkNMVURFICgxMDkpIikKKyAoMTEwLCIoMCwxMTApIiw0OCxmLCIo cCkgSU5DTFVERSAodCk9KCgxMTAsMTEwKSkgSU5DTFVERSAoMTEwKSIpCisgKDExMSwiKDAs MTExKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTExLDExMSkpIElOQ0xVREUgKDExMSki KQorICgxMTIsIigwLDExMikiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDExMiwxMTIpKSBJ TkNMVURFICgxMTIpIikKKyAoMTEzLCIoMCwxMTMpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9 KCgxMTMsMTEzKSkgSU5DTFVERSAoMTEzKSIpCisgKDExNCwiKDAsMTE0KSIsNDgsZiwiKHAp IElOQ0xVREUgKHQpPSgoMTE0LDExNCkpIElOQ0xVREUgKDExNCkiKQorICgxMTUsIigwLDEx NSkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDExNSwxMTUpKSBJTkNMVURFICgxMTUpIikK KyAoMTE2LCIoMCwxMTYpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxMTYsMTE2KSkgSU5D TFVERSAoMTE2KSIpCisgKDExNywiKDAsMTE3KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgo MTE3LDExNykpIElOQ0xVREUgKDExNykiKQorICgxMTgsIigwLDExOCkiLDQ4LGYsIihwKSBJ TkNMVURFICh0KT0oKDExOCwxMTgpKSBJTkNMVURFICgxMTgpIikKKyAoMTE5LCIoMCwxMTkp Iiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxMTksMTE5KSkgSU5DTFVERSAoMTE5KSIpCisg KDEyMCwiKDAsMTIwKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTIwLDEyMCkpIElOQ0xV REUgKDEyMCkiKQorICgxMjEsIigwLDEyMSkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDEy MSwxMjEpKSBJTkNMVURFICgxMjEpIikKKyAoMTIyLCIoMCwxMjIpIiw0OCxmLCIocCkgSU5D TFVERSAodCk9KCgxMjIsMTIyKSkgSU5DTFVERSAoMTIyKSIpCisgKDEyMywiKDAsMTIzKSIs NDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTIzLDEyMykpIElOQ0xVREUgKDEyMykiKQorICgx MjQsIigwLDEyNCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDEyNCwxMjQpKSBJTkNMVURF ICgxMjQpIikKKyAoMTI1LCIoMCwxMjUpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxMjUs MTI1KSkgSU5DTFVERSAoMTI1KSIpCisgKDEyNiwiKDAsMTI2KSIsNDgsZiwiKHApIElOQ0xV REUgKHQpPSgoMTI2LDEyNikpIElOQ0xVREUgKDEyNikiKQorICgxMjcsIigwLDEyNykiLDQ4 LGYsIihwKSBJTkNMVURFICh0KT0oKDEyNywxMjcpKSBJTkNMVURFICgxMjcpIikKKyAoMTI4 LCIoMCwxMjgpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxMjgsMTI4KSkgSU5DTFVERSAo MTI4KSIpCisgKDEyOSwiKDAsMTI5KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTI5LDEy OSkpIElOQ0xVREUgKDEyOSkiKQorICgxMzAsIigwLDEzMCkiLDQ4LGYsIihwKSBJTkNMVURF ICh0KT0oKDEzMCwxMzApKSBJTkNMVURFICgxMzApIikKKyAoMTMxLCIoMCwxMzEpIiw0OCxm LCIocCkgSU5DTFVERSAodCk9KCgxMzEsMTMxKSkgSU5DTFVERSAoMTMxKSIpCisgKDEzMiwi KDAsMTMyKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTMyLDEzMikpIElOQ0xVREUgKDEz MikiKQorICgxMzMsIigwLDEzMykiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDEzMywxMzMp KSBJTkNMVURFICgxMzMpIikKKyAoMTM0LCIoMCwxMzQpIiw0OCxmLCIocCkgSU5DTFVERSAo dCk9KCgxMzQsMTM0KSkgSU5DTFVERSAoMTM0KSIpCisgKDEzNSwiKDAsMTM1KSIsNDgsZiwi KHApIElOQ0xVREUgKHQpPSgoMTM1LDEzNSkpIElOQ0xVREUgKDEzNSkiKQorICgxMzYsIigw LDEzNikiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDEzNiwxMzYpKSBJTkNMVURFICgxMzYp IikKKyAoMTM3LCIoMCwxMzcpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxMzcsMTM3KSkg SU5DTFVERSAoMTM3KSIpCisgKDEzOCwiKDAsMTM4KSIsNDgsZiwiKHApIElOQ0xVREUgKHQp PSgoMTM4LDEzOCkpIElOQ0xVREUgKDEzOCkiKQorICgxMzksIigwLDEzOSkiLDQ4LGYsIihw KSBJTkNMVURFICh0KT0oKDEzOSwxMzkpKSBJTkNMVURFICgxMzkpIikKKyAoMTQwLCIoMCwx NDApIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxNDAsMTQwKSkgSU5DTFVERSAoMTQwKSIp CisgKDE0MSwiKDAsMTQxKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTQxLDE0MSkpIElO Q0xVREUgKDE0MSkiKQorICgxNDIsIigwLDE0MikiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0o KDE0MiwxNDIpKSBJTkNMVURFICgxNDIpIikKKyAoMTQzLCIoMCwxNDMpIiw0OCxmLCIocCkg SU5DTFVERSAodCk9KCgxNDMsMTQzKSkgSU5DTFVERSAoMTQzKSIpCisgKDE0NCwiKDAsMTQ0 KSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTQ0LDE0NCkpIElOQ0xVREUgKDE0NCkiKQor ICgxNDUsIigwLDE0NSkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDE0NSwxNDUpKSBJTkNM VURFICgxNDUpIikKKyAoMTQ2LCIoMCwxNDYpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgx NDYsMTQ2KSkgSU5DTFVERSAoMTQ2KSIpCisgKDE0NywiKDAsMTQ3KSIsNDgsZiwiKHApIElO Q0xVREUgKHQpPSgoMTQ3LDE0NykpIElOQ0xVREUgKDE0NykiKQorICgxNDgsIigwLDE0OCki LDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDE0OCwxNDgpKSBJTkNMVURFICgxNDgpIikKKyAo MTQ5LCIoMCwxNDkpIiw0OCxmLCIocCkgSU5DTFVERSAodCk9KCgxNDksMTQ5KSkgSU5DTFVE RSAoMTQ5KSIpCisgKDE1MCwiKDAsMTUwKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTUw LDE1MCkpIElOQ0xVREUgKDE1MCkiKQorICgxNTEsIigwLDE1MSkiLDQ4LGYsIihwKSBJTkNM VURFICh0KT0oKDE1MSwxNTEpKSBJTkNMVURFICgxNTEpIikKKyAoMTUyLCIoMCwxNTIpIiw0 OCxmLCIocCkgSU5DTFVERSAodCk9KCgxNTIsMTUyKSkgSU5DTFVERSAoMTUyKSIpCisgKDE1 MywiKDAsMTUzKSIsNDgsZiwiKHApIElOQ0xVREUgKHQpPSgoMTUzLDE1MykpIElOQ0xVREUg KDE1MykiKQorICgxNTQsIigwLDE1NCkiLDQ4LGYsIihwKSBJTkNMVURFICh0KT0oKDE1NCwx NTQpKSBJTkNMVURFICgxNTQpIikKKyAoMTU1LCIoMCwxNTUpIiw0OCxmLCIocCkgSU5DTFVE RSAodCk9KCgxNTUsMTU1KSkgSU5DTFVERSAoMTU1KSIpCisgKDE1NiwiKDAsMTU2KSIsNDgs ZiwiKHApIElOQ0xVREUgKHQpPSgoMTU2LDE1NikpIElOQ0xVREUgKDE1NikiKQorKDE1NiBy b3dzKQorCiBEUk9QIFRBQkxFIHRlc3RfZ2lzdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGFn ZWluc3BlY3QvZ2lzdGZ1bmNzLmMgYi9jb250cmliL3BhZ2VpbnNwZWN0L2dpc3RmdW5jcy5j CmluZGV4IDNkY2E3ZjEzMTguLjQyMjI5MDMxMWMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGFn ZWluc3BlY3QvZ2lzdGZ1bmNzLmMKKysrIGIvY29udHJpYi9wYWdlaW5zcGVjdC9naXN0ZnVu Y3MuYwpAQCAtMjQsNiArMjQsOCBAQAogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1 ZGUgInV0aWxzL3BnX2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3ZhcmxlbmEuaCIKKyNpbmNs dWRlICJ1dGlscy9ydWxldXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK IAogUEdfRlVOQ1RJT05fSU5GT19WMShnaXN0X3BhZ2Vfb3BhcXVlX2luZm8pOwogUEdfRlVO Q1RJT05fSU5GT19WMShnaXN0X3BhZ2VfaXRlbXMpOwpAQCAtMTk4LDkgKzIwMCwxMiBAQCBn aXN0X3BhZ2VfaXRlbXMoUEdfRlVOQ1RJT05fQVJHUykKIAlPaWQJCQlpbmRleFJlbGlkID0g UEdfR0VUQVJHX09JRCgxKTsKIAlSZXR1cm5TZXRJbmZvICpyc2luZm8gPSAoUmV0dXJuU2V0 SW5mbyAqKSBmY2luZm8tPnJlc3VsdGluZm87CiAJUmVsYXRpb24JaW5kZXhSZWw7CisJVHVw bGVEZXNjCXR1cGRlc2M7CiAJUGFnZQkJcGFnZTsKKwl1aW50MTYJCWZsYWdiaXRzOwogCU9m ZnNldE51bWJlciBvZmZzZXQ7CiAJT2Zmc2V0TnVtYmVyIG1heG9mZiA9IEludmFsaWRPZmZz ZXROdW1iZXI7CisJY2hhcgkgICAqaW5kZXhfY29sdW1uczsKIAogCWlmICghc3VwZXJ1c2Vy KCkpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0yMjYsNiArMjMxLDE5IEBAIGdpc3RfcGFnZV9p dGVtcyhQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCX0KIAorCWZs YWdiaXRzID0gR2lzdFBhZ2VHZXRPcGFxdWUocGFnZSktPmZsYWdzOworCWlmIChmbGFnYml0 cyAmIEZfTEVBRikKKwl7CisJCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKGluZGV4UmVs KTsKKwkJaW5kZXhfY29sdW1ucyA9IHBnX2dldF9pbmRleGRlZl9jb2x1bW5zX3dpdGhfaW5j bHVkZWQoaW5kZXhSZWxpZCwgdHJ1ZSk7CisJfQorCWVsc2UKKwl7CisJCXR1cGRlc2MgPSBD cmVhdGVUdXBsZURlc2NDb3B5KFJlbGF0aW9uR2V0RGVzY3IoaW5kZXhSZWwpKTsKKwkJdHVw ZGVzYy0+bmF0dHMgPSBJbmRleFJlbGF0aW9uR2V0TnVtYmVyT2ZLZXlBdHRyaWJ1dGVzKGlu ZGV4UmVsKTsKKwkJaW5kZXhfY29sdW1ucyA9IHBnX2dldF9pbmRleGRlZl9jb2x1bW5zKGlu ZGV4UmVsaWQsIHRydWUpOworCX0KKwogCS8qIEF2b2lkIGJvZ3VzIFBhZ2VHZXRNYXhPZmZz ZXROdW1iZXIoKSBjYWxsIHdpdGggZGVsZXRlZCBwYWdlcyAqLwogCWlmIChHaXN0UGFnZUlz RGVsZXRlZChwYWdlKSkKIAkJZWxvZyhOT1RJQ0UsICJwYWdlIGlzIGRlbGV0ZWQiKTsKQEAg LTI0Miw3ICsyNjAsOCBAQCBnaXN0X3BhZ2VfaXRlbXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJ SW5kZXhUdXBsZQlpdHVwOwogCQlEYXR1bQkJaXR1cF92YWx1ZXNbSU5ERVhfTUFYX0tFWVNd OwogCQlib29sCQlpdHVwX2lzbnVsbFtJTkRFWF9NQVhfS0VZU107Ci0JCWNoYXIJICAgKmtl eV9kZXNjOworCQlTdHJpbmdJbmZvRGF0YSBidWY7CisJCWludAkJCWk7CiAKIAkJaWQgPSBQ YWdlR2V0SXRlbUlkKHBhZ2UsIG9mZnNldCk7CiAKQEAgLTI1MSw3ICsyNzAsNyBAQCBnaXN0 X3BhZ2VfaXRlbXMoUEdfRlVOQ1RJT05fQVJHUykKIAogCQlpdHVwID0gKEluZGV4VHVwbGUp IFBhZ2VHZXRJdGVtKHBhZ2UsIGlkKTsKIAotCQlpbmRleF9kZWZvcm1fdHVwbGUoaXR1cCwg UmVsYXRpb25HZXREZXNjcihpbmRleFJlbCksCisJCWluZGV4X2RlZm9ybV90dXBsZShpdHVw LCB0dXBkZXNjLAogCQkJCQkJICAgaXR1cF92YWx1ZXMsIGl0dXBfaXNudWxsKTsKIAogCQlt ZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOwpAQCAtMjYxLDkgKzI4MCw1NiBAQCBn aXN0X3BhZ2VfaXRlbXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJdmFsdWVzWzJdID0gSW50MzJH ZXREYXR1bSgoaW50KSBJbmRleFR1cGxlU2l6ZShpdHVwKSk7CiAJCXZhbHVlc1szXSA9IEJv b2xHZXREYXR1bShJdGVtSWRJc0RlYWQoaWQpKTsKIAotCQlrZXlfZGVzYyA9IEJ1aWxkSW5k ZXhWYWx1ZURlc2NyaXB0aW9uKGluZGV4UmVsLCBpdHVwX3ZhbHVlcywgaXR1cF9pc251bGwp OwotCQlpZiAoa2V5X2Rlc2MpCi0JCQl2YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVt KGtleV9kZXNjKTsKKwkJaWYgKGluZGV4X2NvbHVtbnMpCisJCXsKKwkJCWluaXRTdHJpbmdJ bmZvKCZidWYpOworCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmLCAiKCVzKT0oIiwgaW5kZXhf Y29sdW1ucyk7CisKKwkJCWZvciAoaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQor CQkJeworCQkJCWNoYXIJICAgKnZhbDsKKworCQkJCWlmIChpdHVwX2lzbnVsbFtpXSkKKwkJ CQkJdmFsID0gIm51bGwiOworCQkJCWVsc2UKKwkJCQl7CisJCQkJCU9pZAkJCWZvdXRvaWQ7 CisJCQkJCWJvb2wJCXR5cGlzdmFybGVuYTsKKworCQkJCQlpZiAoaSA8IEluZGV4UmVsYXRp b25HZXROdW1iZXJPZktleUF0dHJpYnV0ZXMoaW5kZXhSZWwpKQorCQkJCQl7CisJCQkJCQkv KgorCQkJCQkJKiBVc2UgcmRfb3BjaW50eXBlIGZvciBrZXkgY29sdW1ucyBhcyBpbgorCQkJ CQkJKiBCdWlsZEluZGV4VmFsdWVEZXNjcmlwdGlvbigpLgorCQkJCQkJKi8KKwkJCQkJCWdl dFR5cGVPdXRwdXRJbmZvKGluZGV4UmVsLT5yZF9vcGNpbnR5cGVbaV0sCisJCQkJCQkJCQkJ ICAmZm91dG9pZCwgJnR5cGlzdmFybGVuYSk7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7 CisJCQkJCQlnZXRUeXBlT3V0cHV0SW5mbyh0dXBkZXNjLT5hdHRyc1tpXS5hdHR0eXBpZCwK KwkJCQkJCQkJCQkgICZmb3V0b2lkLCAmdHlwaXN2YXJsZW5hKTsKKwkJCQkJfQorCQkJCQl2 YWwgPSBPaWRPdXRwdXRGdW5jdGlvbkNhbGwoZm91dG9pZCwgaXR1cF92YWx1ZXNbaV0pOwor CQkJCX0KKworCQkJCWlmIChpID09IEluZGV4UmVsYXRpb25HZXROdW1iZXJPZktleUF0dHJp YnV0ZXMoaW5kZXhSZWwpKQorCQkJCXsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygm YnVmLCAiKSBJTkNMVURFICgiKTsKKwkJCQl9CisJCQkJZWxzZSBpZiAoaSA+IDApCisJCQkJ eworCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICIsICIpOworCQkJCX0KKwor CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZiwgdmFsKTsKKwkJCX0KKworCQkJYXBw ZW5kU3RyaW5nSW5mb0NoYXIoJmJ1ZiwgJyknKTsKKworCQkJdmFsdWVzWzRdID0gQ1N0cmlu Z0dldFRleHREYXR1bShidWYuZGF0YSk7CisJCQludWxsc1s0XSA9IGZhbHNlOworCQl9CiAJ CWVsc2UKIAkJewogCQkJdmFsdWVzWzRdID0gKERhdHVtKSAwOwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9wYWdlaW5zcGVjdC9zcWwvZ2lzdC5zcWwgYi9jb250cmliL3BhZ2VpbnNwZWN0L3Nx bC9naXN0LnNxbAppbmRleCA0Nzg3Yjc4NGE0Li4xNmNjMTRiY2FjIDEwMDY0NAotLS0gYS9j b250cmliL3BhZ2VpbnNwZWN0L3NxbC9naXN0LnNxbAorKysgYi9jb250cmliL3BhZ2VpbnNw ZWN0L3NxbC9naXN0LnNxbApAQCAtNTIsNCArNTIsOSBAQCBTRUxFQ1QgZ2lzdF9wYWdlX2l0 ZW1zX2J5dGVhKGRlY29kZShyZXBlYXQoJzAwJywgOmJsb2NrX3NpemUpLCAnaGV4JykpOwog U0VMRUNUIGdpc3RfcGFnZV9pdGVtcyhkZWNvZGUocmVwZWF0KCcwMCcsIDpibG9ja19zaXpl KSwgJ2hleCcpLCAndGVzdF9naXN0X2lkeCc6OnJlZ2NsYXNzKTsKIFNFTEVDVCBnaXN0X3Bh Z2Vfb3BhcXVlX2luZm8oZGVjb2RlKHJlcGVhdCgnMDAnLCA6YmxvY2tfc2l6ZSksICdoZXgn KSk7CiAKKy0tIFRlc3QgZ2lzdF9wYWdlX2l0ZW1zIHdpdGggcGFnZXMgb2YgYW4gaW5kZXgg Y29udGFpbmluZyBub24ta2V5IGNvbHVtbnMKK0NSRUFURSBJTkRFWCB0ZXN0X2dpc3RfaWR4 X2luYyBPTiB0ZXN0X2dpc3QgVVNJTkcgZ2lzdCAocCkgSU5DTFVERSAodCk7CitTRUxFQ1Qg Z2lzdF9wYWdlX2l0ZW1zKGdldF9yYXdfcGFnZSgndGVzdF9naXN0X2lkeF9pbmMnLCAwKSwg J3Rlc3RfZ2lzdF9pZHhfaW5jJyk7CitTRUxFQ1QgZ2lzdF9wYWdlX2l0ZW1zKGdldF9yYXdf cGFnZSgndGVzdF9naXN0X2lkeF9pbmMnLCAxKSwgJ3Rlc3RfZ2lzdF9pZHhfaW5jJyk7CisK IERST1AgVEFCTEUgdGVzdF9naXN0OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmlu ZGV4IDYwZjlkMDhkNWQuLjcxZjY1MDg2OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKQEAgLTEyMTUsNiArMTIxNSwyMCBAQCBwZ19nZXRfaW5kZXhkZWZfY29sdW1ucyhP aWQgaW5kZXhyZWxpZCwgYm9vbCBwcmV0dHkpCiAJCQkJCQkJCSAgcHJldHR5RmxhZ3MsIGZh bHNlKTsKIH0KIAorLyogSW50ZXJuYWwgdmVyc2lvbiB0aGF0IHJlcG9ydHMgYWxzbyB0aGUg bm9uLWtleS1jb2x1bW4gZGVmaW5pdGlvbnMgKi8KK2NoYXIgKgorcGdfZ2V0X2luZGV4ZGVm X2NvbHVtbnNfd2l0aF9pbmNsdWRlZChPaWQgaW5kZXhyZWxpZCwgYm9vbCBwcmV0dHkpCit7 CisJaW50CQkJcHJldHR5RmxhZ3M7CisKKwlwcmV0dHlGbGFncyA9IEdFVF9QUkVUVFlfRkxB R1MocHJldHR5KTsKKworCXJldHVybiBwZ19nZXRfaW5kZXhkZWZfd29ya2VyKGluZGV4cmVs aWQsIDAsIE5VTEwsCisJCQkJCQkJCSAgdHJ1ZSwgZmFsc2UsCisJCQkJCQkJCSAgZmFsc2Us IGZhbHNlLAorCQkJCQkJCQkgIHByZXR0eUZsYWdzLCBmYWxzZSk7Cit9CisKIC8qCiAgKiBJ bnRlcm5hbCB3b3JraG9yc2UgdG8gZGVjb21waWxlIGFuIGluZGV4IGRlZmluaXRpb24uCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcnVsZXV0aWxzLmggYi9zcmMvaW5j bHVkZS91dGlscy9ydWxldXRpbHMuaAppbmRleCAxYTQyZDlmMzliLi5kMjIxNzI0Y2MxIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9ydWxldXRpbHMuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy9ydWxldXRpbHMuaApAQCAtMjMsNiArMjMsOCBAQCBzdHJ1Y3QgUGxhbm5l ZFN0bXQ7CiAKIGV4dGVybiBjaGFyICpwZ19nZXRfaW5kZXhkZWZfc3RyaW5nKE9pZCBpbmRl eHJlbGlkKTsKIGV4dGVybiBjaGFyICpwZ19nZXRfaW5kZXhkZWZfY29sdW1ucyhPaWQgaW5k ZXhyZWxpZCwgYm9vbCBwcmV0dHkpOworZXh0ZXJuIGNoYXIgKnBnX2dldF9pbmRleGRlZl9j b2x1bW5zX3dpdGhfaW5jbHVkZWQoT2lkIGluZGV4cmVsaWQsCisJCQkJCQkJCQkJCQkgICBi b29sIHByZXR0eSk7CiBleHRlcm4gY2hhciAqcGdfZ2V0X3F1ZXJ5ZGVmKFF1ZXJ5ICpxdWVy eSwgYm9vbCBwcmV0dHkpOwogCiBleHRlcm4gY2hhciAqcGdfZ2V0X3BhcnRrZXlkZWZfY29s dW1ucyhPaWQgcmVsaWQsIGJvb2wgcHJldHR5KTsK --------------QqmcfLpkHP32j2FTNxFQvl1X--