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 1kxf5F-0001zy-6V for pgsql-hackers@arkaria.postgresql.org; Thu, 07 Jan 2021 23:52:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kxf5D-00050m-Tu for pgsql-hackers@arkaria.postgresql.org; Thu, 07 Jan 2021 23:52:47 +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 1kxf5D-00050B-Ku for pgsql-hackers@lists.postgresql.org; Thu, 07 Jan 2021 23:52:47 +0000 Received: from dish-sg.nttdocomo.co.jp ([202.19.227.74]) by magus.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1kxf58-0003qe-Iv for pgsql-hackers@lists.postgresql.org; Thu, 07 Jan 2021 23:52:46 +0000 X-dD-Source: Outbound Received: from zssg-mailmd102.ddreams.local (zssg-mailmd900.ddreams.local [10.160.172.63]) by zssg-mailou103.ddreams.local (Postfix) with ESMTP id 36AA81200E0; Fri, 8 Jan 2021 08:52:39 +0900 (JST) Received: from t113sg-mailcc12.ddreams.local (t113sg-mailcc12.ddreams.local [100.66.13.87]) by zssg-mailmd102.ddreams.local (dDREAMS) with ESMTP id <0QML00P798ZRSUA0@dDREAMS>; Fri, 08 Jan 2021 08:52:39 +0900 (JST) Received: from t113sg-mailcc12 (localhost [127.0.0.1]) by t113sg-mailcc12.ddreams.local (unknown) with SMTP id 107Nqd9X004716; Fri, 8 Jan 2021 08:52:39 +0900 Received: from zssg-mailmf105.ddreams.local (unknown [127.0.0.1]) by zssg-mailmf105.ddreams.local (Postfix) with ESMTP id 0527C7E6034; Fri, 8 Jan 2021 08:52:07 +0900 (JST) Received: from zssg-mailmf105.ddreams.local (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 037AD8E605A; Fri, 8 Jan 2021 08:52:07 +0900 (JST) Received: from localhost (unknown [127.0.0.1]) by IMSVA (Postfix) with SMTP id EC64F8E6058; Fri, 8 Jan 2021 08:52:06 +0900 (JST) X-IMSS-HAND-OFF-DIRECTIVE: localhost:10026 Received: from zssg-mailmf105.ddreams.local (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id AD6B98E6060; Fri, 8 Jan 2021 08:52:06 +0900 (JST) Received: from zssg-mailua101.ddreams.local (unknown [10.160.172.62]) by zssg-mailmf105.ddreams.local (Postfix) with ESMTP; Fri, 8 Jan 2021 08:52:06 +0900 (JST) Received: from [10.132.73.24] (unknown [10.160.179.1]) by zssg-mailua101.ddreams.local (dDREAMS) with ESMTPA id <0QML01DK18YQ5840@dDREAMS>; Fri, 08 Jan 2021 08:52:03 +0900 (JST) Subject: Re: list of extended statistics on psql References: <20210107144713.GA8872@alvherre.pgsql> <61cba5af-5a58-6bda-610c-420077b780c3@enterprisedb.com> From: Tatsuro Yamada Message-id: <1045d2cb-7ecd-e6bf-cb50-8eeea89cc4b0@nttcom.co.jp_1> Date: Fri, 08 Jan 2021 08:52:02 +0900 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-version: 1.0 In-reply-to: <61cba5af-5a58-6bda-610c-420077b780c3@enterprisedb.com> Content-type: multipart/mixed; boundary=------------67108A9155D8D233DE55B48D Content-language: en-US X-TM-AS-GCONF: 00 To: Tomas Vondra , Alvaro Herrera Cc: Tomas Vondra , Michael Paquier , Pavel Stehule , Julien Rouhaud , PostgreSQL Hackers X-CC-Mail-RelayStamp: CC/Mail Relayed List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------67108A9155D8D233DE55B48D Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 2021/01/08 0:56, Tomas Vondra wrote: > On 1/7/21 3:47 PM, Alvaro Herrera wrote: >> On 2021-Jan-07, Tomas Vondra wrote: >> >>> On 1/7/21 1:46 AM, Tatsuro Yamada wrote: >> >>>> I overlooked the check for MCV in the logic building query >>>> because I created the patch as a new feature on PG14. >>>> I'm not sure whether we should do back patch or not. However, I'll >>>> add the check on the next patch because it is useful if you decide to >>>> do the back patch on PG10, 11, 12, and 13. >>> >>> BTW perhaps a quick look at the other \d commands would show if there are >>> precedents. I didn't have time for that. >> >> Yes, we do promise that new psql works with older servers. >> > > Yeah, makes sense. That means we need add the check for 12 / MCV. Ah, I got it. I fixed the patch to work with older servers to add the checking versions. And I tested \dX command on older servers (PG10 - 13). These results look fine. 0001: Added the check code to handle pre-PG12. It has not MCV and pg_statistic_ext_data. 0002: This patch is the same as the previous patch (not changed). Please find the attached files. >> I wonder the column names added by \dX+ is fine? For example, >> "Ndistinct_size" and "Dependencies_size". It looks like long names, >> but acceptable? >> > > Seems acceptable - I don't have a better idea. I see, thanks! Thanks, Tatsuro Yamada --------------67108A9155D8D233DE55B48D Content-Type: text/plain; charset=UTF-8; name="0001-Add-dX-command-on-psql-with-version-check.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0001-Add-dX-command-on-psql-with-version-check.patch" RnJvbSBjOGJlNTFhNTJhMzgxYTZlOWM3YmU2MjAyMmY1ZmM0OGI1OTE1YmQwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdXJvIFlhbWFkYSA8eWFtYXRhdHRzdUBnbWFp bC5jb20+CkRhdGU6IFRodSwgNyBKYW4gMjAyMSAxNDoyODoyMCArMDkwMApTdWJqZWN0OiBb UEFUQ0hdIEFkZCBcZFggY29tbWFuZCBvbiBwc3FsCgpUaGlzIHBhdGNoIGluY2x1ZGVzIHRo ZSB2ZXJzaW9uIGNoZWNrIGluIHRoZSBsb2dpYyBidWlsZGluZyBxdWVyeS4KLS0tCiBkb2Mv c3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgfCAgMTQgKysrKwogc3JjL2Jpbi9wc3FsL2Nv bW1hbmQuYyAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAg ICB8IDE0MSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmggICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9oZWxw LmMgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgICAg fCAgIDQgKy0KIDYgZmlsZXMgY2hhbmdlZCwgMTY1IGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggMjIxYTk2N2JmZS4uZmQ4NjA3 NzZhZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbApAQCAtMTkxOCw2ICsxOTE4LDIwIEBA IHRlc3RkYj0mZ3Q7CiAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAg ICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgCisgICAgICA8dmFybGlzdGVudHJ5PgorICAg ICAgICA8dGVybT48bGl0ZXJhbD5cZFggWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1wYXR0 ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2Vh YmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgIExpc3RzIGV4dGVuZGVkIHN0YXRpc3RpY3MuCisgICAg ICAgIElmIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNl YWJsZT4KKyAgICAgICAgaXMgc3BlY2lmaWVkLCBvbmx5IHRob3NlIGV4dGVuZGVkIHN0YXRp c3RpY3Mgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBhdHRlcm4KKyAgICAgICAgYXJlIGxpc3Rl ZC4KKyAgICAgICAgSWYgPGxpdGVyYWw+KzwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhl IGNvbW1hbmQgbmFtZSwgZWFjaCBleHRlbmRlZCBzdGF0aXN0aWNzCisgICAgICAgIGlzIGxp c3RlZCB3aXRoIGl0cyBzaXplLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0 ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAogICAgICAgPHZhcmxpc3RlbnRyeT4KICAg ICAgICAgPHRlcm0+PGxpdGVyYWw+XGR5WytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwt cGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBs YWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggMzAzZTdj M2FkOC4uYzVlYmMxYzNmNCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYwor KysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBAIC05MjgsNiArOTI4LDkgQEAgZXhlY19j b21tYW5kX2QoUHNxbFNjYW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gs IGNvbnN0IGNoYXIgKmNtZCkKIAkJCQllbHNlCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0RXh0ZW5z aW9ucyhwYXR0ZXJuKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgJ1gnOgkJCS8qIEV4dGVuZGVk IFN0YXRpc3RpY3MgKi8KKwkJCQlzdWNjZXNzID0gbGlzdEV4dGVuZGVkU3RhdHMocGF0dGVy biwgc2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ3knOgkJCS8qIEV2ZW50 IFRyaWdnZXJzICovCiAJCQkJc3VjY2VzcyA9IGxpc3RFdmVudFRyaWdnZXJzKHBhdHRlcm4s IHNob3dfdmVyYm9zZSk7CiAJCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDUyYzZkZTUxYjYu LjBjY2Q5ZWQyODYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC00NDAxLDYgKzQ0MDEsMTQ3IEBAIGxpc3RF dmVudFRyaWdnZXJzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlyZXR1 cm4gdHJ1ZTsKIH0KIAorLyoKKyAqIFxkWAorICoKKyAqIEJyaWVmbHkgZGVzY3JpYmVzIGV4 dGVuZGVkIHN0YXRpc3RpY3MuCisgKi8KK2Jvb2wKK2xpc3RFeHRlbmRlZFN0YXRzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEgYnVm OworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0 OworCisJaWYgKHBzZXQuc3ZlcnNpb24gPCAxMDAwMDApCisJeworCQljaGFyCQlzdmVyYnVm WzMyXTsKKworCQlwZ19sb2dfZXJyb3IoIlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMg bm90IHN1cHBvcnQgZXh0ZW5kZWQgc3RhdGlzdGljcy4iLAorCQkJCQkgZm9ybWF0UEdWZXJz aW9uTnVtYmVyKHBzZXQuc3ZlcnNpb24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYs IHNpemVvZihzdmVyYnVmKSkpOworCQlyZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBC dWZmZXIoJmJ1Zik7CisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNU IFxuIgorCQkJCQkgICJlcy5zdHhuYW1lc3BhY2U6OnBnX2NhdGFsb2cucmVnbmFtZXNwYWNl Ojp0ZXh0IEFTIFwiJXNcIiwgXG4iCisJCQkJCSAgImVzLnN0eG5hbWUgQVMgXCIlc1wiLCBc biIKKwkJCQkJICAicGdfY2F0YWxvZy5mb3JtYXQoJyUlcyBGUk9NICUlcycsIFxuIgorCQkJ CQkgICIgIChTRUxFQ1QgcGdfY2F0YWxvZy5zdHJpbmdfYWdnKHBnX2NhdGFsb2cucXVvdGVf aWRlbnQoYS5hdHRuYW1lKSwnLCAnKSBcbiIKKwkJCQkJICAiICAgRlJPTSBwZ19jYXRhbG9n LnVubmVzdChlcy5zdHhrZXlzKSBzKGF0dG51bSkgXG4iCisJCQkJCSAgIiAgIEpPSU4gcGdf Y2F0YWxvZy5wZ19hdHRyaWJ1dGUgYSBcbiIKKwkJCQkJICAiICAgT04gKGVzLnN0eHJlbGlk ID0gYS5hdHRyZWxpZCBcbiIKKwkJCQkJICAiICAgQU5EIGEuYXR0bnVtID0gcy5hdHRudW0g XG4iCisJCQkJCSAgIiAgIEFORCBOT1QgYS5hdHRpc2Ryb3BwZWQpKSwgXG4iCisJCQkJCSAg ImVzLnN0eHJlbGlkOjpyZWdjbGFzcykgQVMgXCIlc1wiIiwKKwkJCQkJICBnZXR0ZXh0X25v b3AoIlNjaGVtYSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdl dHRleHRfbm9vcCgiRGVmaW5pdGlvbiIpKTsKKworCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTIw MDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbkNBU0Ug V0hFTiBlcy5zdHhuZGlzdGluY3QgSVMgTk9UIE5VTEwgVEhFTiAnYnVpbHQnIFxuIgorCQkJ CQkJICAiICAgICBXSEVOICdkJyA9IGFueShlcy5zdHhraW5kKSBUSEVOICdkZWZpbmVkJyBc biIKKwkJCQkJCSAgIkVORCBBUyBcIiVzXCIsIFxuIgorCQkJCQkJICAiQ0FTRSBXSEVOIGVz LnN0eGRlcGVuZGVuY2llcyBJUyBOT1QgTlVMTCBUSEVOICdidWlsdCcgXG4iCisJCQkJCQkg ICIgICAgIFdIRU4gJ2YnID0gYW55KGVzLnN0eGtpbmQpIFRIRU4gJ2RlZmluZWQnIFxuIgor CQkJCQkJICAiRU5EIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9vcCgiTmRpc3Rp bmN0IiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVwZW5kZW5jaWVzIikpOworCX0KKwll bHNlCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuQ0FTRSBX SEVOIGVzZC5zdHhkbmRpc3RpbmN0IElTIE5PVCBOVUxMIFRIRU4gJ2J1aWx0JyBcbiIKKwkJ CQkJCSAgIiAgICAgV0hFTiAnZCcgPSBhbnkoZXMuc3R4a2luZCkgVEhFTiAnZGVmaW5lZCcg XG4iCisJCQkJCQkgICJFTkQgQVMgXCIlc1wiLCBcbiIKKwkJCQkJCSAgIkNBU0UgV0hFTiBl c2Quc3R4ZGRlcGVuZGVuY2llcyBJUyBOT1QgTlVMTCBUSEVOICdidWlsdCcgXG4iCisJCQkJ CQkgICIgICAgIFdIRU4gJ2YnID0gYW55KGVzLnN0eGtpbmQpIFRIRU4gJ2RlZmluZWQnIFxu IgorCQkJCQkJICAiRU5EIEFTIFwiJXNcIiwgXG4iCisJCQkJCQkgICJDQVNFIFdIRU4gZXNk LnN0eGRtY3YgSVMgTk9UIE5VTEwgVEhFTiAnYnVpbHQnIFxuIgorCQkJCQkJICAiICAgICBX SEVOICdtJyA9IGFueShlcy5zdHhraW5kKSBUSEVOICdkZWZpbmVkJyBcbiIKKwkJCQkJCSAg IkVORCBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIk5kaXN0aW5jdCIpLAor CQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlcGVuZGVuY2llcyIpLAorCQkJCQkJICBnZXR0ZXh0 X25vb3AoIk1DViIpKTsKKwl9CisKKwlpZiAodmVyYm9zZSAmJiBwc2V0LnN2ZXJzaW9uIDwg MTIwMDAwKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbkNB U0UgV0hFTiBlcy5zdHhuZGlzdGluY3QgSVMgTk9UIE5VTEwgVEhFTiBcbiIKKwkJCQkJCSAg IiAgICAgICAgICBwZ19jYXRhbG9nLnBnX3NpemVfcHJldHR5KHBnX2NhdGFsb2cubGVuZ3Ro KGVzLnN0eG5kaXN0aW5jdCk6OmJpZ2ludCkgXG4iCisJCQkJCQkgICIgICAgIFdIRU4gJ2Qn ID0gYW55KGVzLnN0eGtpbmQpIFRIRU4gJzAgYnl0ZXMnIFxuIgorCQkJCQkJICAiRU5EIEFT IFwiJXNcIiwgXG4iCisJCQkJCQkgICJDQVNFIFdIRU4gZXMuc3R4ZGVwZW5kZW5jaWVzIElT IE5PVCBOVUxMIFRIRU4gXG4iCisJCQkJCQkgICIgICAgICAgICAgcGdfY2F0YWxvZy5wZ19z aXplX3ByZXR0eShwZ19jYXRhbG9nLmxlbmd0aChlcy5zdHhkZXBlbmRlbmNpZXMpOjpiaWdp bnQpIFxuIgorCQkJCQkJICAiICAgICBXSEVOICdmJyA9IGFueShlcy5zdHhraW5kKSBUSEVO ICcwIGJ5dGVzJyBcbiIKKwkJCQkJCSAgIkVORCBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0 ZXh0X25vb3AoIk5kaXN0aW5jdF9zaXplIiksCisJCQkJCQkgIGdldHRleHRfbm9vcCgiRGVw ZW5kZW5jaWVzX3NpemUiKSk7CisJfQorCWVsc2UgaWYgKHZlcmJvc2UpCisJeworCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuQ0FTRSBXSEVOIGVzZC5zdHhkbmRp c3RpbmN0IElTIE5PVCBOVUxMIFRIRU4gXG4iCisJCQkJCQkgICIgICAgICAgICAgcGdfY2F0 YWxvZy5wZ19zaXplX3ByZXR0eShwZ19jYXRhbG9nLmxlbmd0aChlc2Quc3R4ZG5kaXN0aW5j dCk6OmJpZ2ludCkgXG4iCisJCQkJCQkgICIgICAgIFdIRU4gJ2QnID0gYW55KGVzLnN0eGtp bmQpIFRIRU4gJzAgYnl0ZXMnIFxuIgorCQkJCQkJICAiRU5EIEFTIFwiJXNcIiwgXG4iCisJ CQkJCQkgICJDQVNFIFdIRU4gZXNkLnN0eGRkZXBlbmRlbmNpZXMgSVMgTk9UIE5VTEwgVEhF TiBcbiIKKwkJCQkJCSAgIiAgICAgICAgICBwZ19jYXRhbG9nLnBnX3NpemVfcHJldHR5KHBn X2NhdGFsb2cubGVuZ3RoKGVzZC5zdHhkZGVwZW5kZW5jaWVzKTo6YmlnaW50KSBcbiIKKwkJ CQkJCSAgIiAgICAgV0hFTiAnZicgPSBhbnkoZXMuc3R4a2luZCkgVEhFTiAnMCBieXRlcycg XG4iCisJCQkJCQkgICJFTkQgQVMgXCIlc1wiLCBcbiIKKwkJCQkJCSAgIkNBU0UgV0hFTiBl c2Quc3R4ZG1jdiBJUyBOT1QgTlVMTCBUSEVOIFxuIgorCQkJCQkJICAiICAgICAgICAgIHBn X2NhdGFsb2cucGdfc2l6ZV9wcmV0dHkocGdfY2F0YWxvZy5sZW5ndGgoZXNkLnN0eGRtY3Yp OjpiaWdpbnQpIFxuIgorCQkJCQkJICAiICAgICBXSEVOICdtJyA9IGFueShlcy5zdHhraW5k KSBUSEVOICcwIGJ5dGVzJyBcbiIKKwkJCQkJCSAgIkVORCBBUyBcIiVzXCIiLAorCQkJCQkJ ICBnZXR0ZXh0X25vb3AoIk5kaXN0aW5jdF9zaXplIiksCisJCQkJCQkgIGdldHRleHRfbm9v cCgiRGVwZW5kZW5jaWVzX3NpemUiKSwKKwkJCQkJCSAgZ2V0dGV4dF9ub29wKCJNQ1Zfc2l6 ZSIpKTsKKwl9CisKKwlpZiAocHNldC5zdmVyc2lvbiA8IDEyMDAwMCkKKwl7CisJCWFwcGVu ZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkJICIgXG5GUk9NIHBnX2NhdGFsb2cucGdf c3RhdGlzdGljX2V4dCBlcyBcbiIKKwkJCQkJCQkgIklOTkVSIEpPSU4gcGdfY2F0YWxvZy5w Z19jbGFzcyBjIFxuIgorCQkJCQkJCSAiT04gZXMuc3R4cmVsaWQgPSBjLm9pZCBcbiIpOwor CX0KKwllbHNlCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAorCQkJCQkJCSAi IFxuRlJPTSBwZ19jYXRhbG9nLnBnX3N0YXRpc3RpY19leHQgZXMgXG4iCisJCQkJCQkJICJM RUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19zdGF0aXN0aWNfZXh0X2RhdGEgZXNkIFxuIgorCQkJ CQkJCSAiT04gZXMub2lkID0gZXNkLnN0eG9pZCBcbiIKKwkJCQkJCQkgIklOTkVSIEpPSU4g cGdfY2F0YWxvZy5wZ19jbGFzcyBjIFxuIgorCQkJCQkJCSAiT04gZXMuc3R4cmVsaWQgPSBj Lm9pZCBcbiIpOworCX0KKworCXByb2Nlc3NTUUxOYW1lUGF0dGVybihwc2V0LmRiLCAmYnVm LCBwYXR0ZXJuLCBmYWxzZSwKKwkJCQkJCSAgZmFsc2UsIE5VTEwsCisJCQkJCQkgICJzdHhu YW1lIiwgTlVMTCwKKwkJCQkJCSAgTlVMTCk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigm YnVmLCAiT1JERVIgQlkgMSwgMjsiKTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsK Kwl0ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsK KworCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CisJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9m IGV4dGVuZGVkIHN0YXRpc3RpY3MiKTsKKwlteW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1 ZTsKKworCXByaW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwg cHNldC5sb2dmaWxlKTsKKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwog LyoKICAqIFxkQwogICoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKaW5kZXggNjA0NGUzYTA4Mi4uODY3ZTU3ZDg1MSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmgKQEAgLTEwMiw2ICsxMDIsOSBAQCBleHRlcm4gYm9vbCBsaXN0RXh0ZW5z aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKTsKIC8qIFxkeCsgKi8KIGV4dGVybiBib29sIGxp c3RFeHRlbnNpb25Db250ZW50cyhjb25zdCBjaGFyICpwYXR0ZXJuKTsKIAorLyogXGRYICov CitleHRlcm4gYm9vbCBsaXN0RXh0ZW5kZWRTdGF0cyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpOworCiAvKiBcZHkgKi8KIGV4dGVybiBib29sIGxpc3RFdmVudFRyaWdn ZXJzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSk7CiAKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IDllYzFj NGU4MTAuLmU0MmJjOGM1NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysr IGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjY3LDYgKzI2Nyw3IEBAIHNsYXNoVXNhZ2Uo dW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCWZwcmludGYob3V0cHV0LCBfKCIgIFxcZHVb UytdIFtQQVRURVJOXSAgICAgIGxpc3Qgcm9sZXNcbiIpKTsKIAlmcHJpbnRmKG91dHB1dCwg XygiICBcXGR2W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHZpZXdzXG4iKSk7CiAJZnByaW50 ZihvdXRwdXQsIF8oIiAgXFxkeFsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbnNpb25z XG4iKSk7CisJZnByaW50ZihvdXRwdXQsIF8oIiAgXFxkWFsrXSAgW1BBVFRFUk5dICAgICAg bGlzdCBleHRlbmRlZCBzdGF0aXN0aWNzXG4iKSk7CiAJZnByaW50ZihvdXRwdXQsIF8oIiAg XFxkeSAgICAgW1BBVFRFUk5dICAgICAgbGlzdCBldmVudCB0cmlnZ2Vyc1xuIikpOwogCWZw cmludGYob3V0cHV0LCBfKCIgIFxcbFsrXSAgIFtQQVRURVJOXSAgICAgIGxpc3QgZGF0YWJh c2VzXG4iKSk7CiAJZnByaW50ZihvdXRwdXQsIF8oIiAgXFxzZlsrXSAgRlVOQ05BTUUgICAg ICAgc2hvdyBhIGZ1bmN0aW9uJ3MgZGVmaW5pdGlvblxuIikpOwpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5j CmluZGV4IDlkY2FiMGQyZmEuLjYxMWYxZWZiMTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMKQEAg LTE1MDAsNyArMTUwMCw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBp bnQgc3RhcnQsIGludCBlbmQpCiAJCSJcXGRGIiwgIlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0 IiwgIlxcZGciLCAiXFxkaSIsICJcXGRsIiwgIlxcZEwiLAogCQkiXFxkbSIsICJcXGRuIiwg IlxcZG8iLCAiXFxkTyIsICJcXGRwIiwgIlxcZFAiLCAiXFxkUGkiLCAiXFxkUHQiLAogCQki XFxkcmRzIiwgIlxcZFJzIiwgIlxcZFJwIiwgIlxcZHMiLCAiXFxkUyIsCi0JCSJcXGR0Iiwg IlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkeSIsCisJCSJcXGR0IiwgIlxc ZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAiXFxkWCIsICJcXGR5IiwKIAkJIlxcZSIs ICJcXGVjaG8iLCAiXFxlZiIsICJcXGVsaWYiLCAiXFxlbHNlIiwgIlxcZW5jb2RpbmciLAog CQkiXFxlbmRpZiIsICJcXGVycnZlcmJvc2UiLCAiXFxldiIsCiAJCSJcXGYiLApAQCAtMzkx MCw2ICszOTEwLDggQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBz dGFydCwgaW50IGVuZCkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2Zfdmlld3MsIE5VTEwpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHgq IikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0ZW5zaW9u cyk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkWCoiKSkKKwkJQ09NUExFVEVfV0lU SF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfc3RhdGlzdGljcywgTlVMTCk7CiAJ ZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkbSoiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hF TUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfbWF0dmlld3MsIE5VTEwpOwogCWVsc2UgaWYg KFRhaWxNYXRjaGVzQ1MoIlxcZEUqIikpCi0tIAoyLjE2LjUKCg== --------------67108A9155D8D233DE55B48D Content-Type: text/plain; charset=UTF-8; name="0002-Add-regression-test-for-dX-on-psql.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="0002-Add-regression-test-for-dX-on-psql.patch" RnJvbSA5ZjM2YTlkZjBjMjgwM2Y1NTU0Yjk1MWUzN2JhNTk2OWMyNzQ0ZTNiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdXJvIFlhbWFkYSA8eWFtYXRhdHRzdUBnbWFp bC5jb20+CkRhdGU6IFR1ZSwgNSBKYW4gMjAyMSAxMjozNDoxNiArMDkwMApTdWJqZWN0OiBb UEFUQ0ggMi8yXSBBZGQgcmVncmVzc2lvbiB0ZXN0IGZvciBcZFggb24gcHNxbAoKLS0tCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQgfCA5NCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzX2V4 dC5zcWwgICAgICB8IDMxICsrKysrKysrKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEyNSBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0 c19leHQub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0Cmlu ZGV4IDdiZmVhZjg1ZjAuLjhjOGEwYWZjZjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3N0YXRzX2V4dC5vdXQKQEAgLTE3MjUsNiArMTcyNSwxMDAgQEAgSU5TRVJUIElOVE8g dHN0c3RhdHMucHJpdl90ZXN0X3RibAogQ1JFQVRFIFNUQVRJU1RJQ1MgdHN0c3RhdHMucHJp dl90ZXN0X3N0YXRzIChtY3YpIE9OIGEsIGIKICAgRlJPTSB0c3RzdGF0cy5wcml2X3Rlc3Rf dGJsOwogQU5BTFlaRSB0c3RzdGF0cy5wcml2X3Rlc3RfdGJsOworLS0gQ2hlY2sgcHJpbnRp bmcgaW5mbyBhYm91dCBleHRlbmRlZCBzdGF0aXN0aWNzIGJ5IFxkWAorY3JlYXRlIHRhYmxl IHN0dHNfdDEgKGEgaW50LCBiIGludCk7CitjcmVhdGUgc3RhdGlzdGljcyBzdHRzXzEgKG5k aXN0aW5jdCkgb24gYSwgYiBmcm9tIHN0dHNfdDE7CitjcmVhdGUgc3RhdGlzdGljcyBzdHRz XzIgKG5kaXN0aW5jdCwgZGVwZW5kZW5jaWVzKSBvbiBhLCBiIGZyb20gc3R0c190MTsKK2Ny ZWF0ZSBzdGF0aXN0aWNzIHN0dHNfMyAobmRpc3RpbmN0LCBkZXBlbmRlbmNpZXMsIG1jdikg b24gYSwgYiBmcm9tIHN0dHNfdDE7CitjcmVhdGUgdGFibGUgc3R0c190MiAoYSBpbnQsIGIg aW50LCBjIGludCk7CitjcmVhdGUgc3RhdGlzdGljcyBzdHRzXzQgb24gYiwgYyBmcm9tIHN0 dHNfdDI7CitjcmVhdGUgdGFibGUgc3R0c190MyAoY29sMSBpbnQsIGNvbDIgaW50LCBjb2wz IGludCk7CitjcmVhdGUgc3RhdGlzdGljcyBzdHRzX2hvZ2Ugb24gY29sMSwgY29sMiwgY29s MyBmcm9tIHN0dHNfdDM7CitjcmVhdGUgc2NoZW1hIHN0dHNfczE7CitjcmVhdGUgc2NoZW1h IHN0dHNfczI7CitjcmVhdGUgc3RhdGlzdGljcyBzdHRzX3MxLnN0dHNfZm9vIG9uIGNvbDEs IGNvbDIgZnJvbSBzdHRzX3QzOworY3JlYXRlIHN0YXRpc3RpY3Mgc3R0c19zMi5zdHRzX3lh bWEgKGRlcGVuZGVuY2llcywgbWN2KSBvbiBjb2wxLCBjb2wzIGZyb20gc3R0c190MzsKK2lu c2VydCBpbnRvIHN0dHNfdDEgc2VsZWN0IGksaSBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDEw MCkgaTsKK2FuYWx5emUgc3R0c190MTsKK1xkWAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBleHRlbmRlZCBzdGF0aXN0aWNzCisgIFNjaGVt YSAgfCAgICAgICAgICBOYW1lICAgICAgICAgIHwgICAgICAgICAgICAgIERlZmluaXRpb24g ICAgICAgICAgICAgIHwgTmRpc3RpbmN0IHwgRGVwZW5kZW5jaWVzIHwgICBNQ1YgICAKKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQorIHB1YmxpYyAgIHwgZnVuY19kZXBzX3N0YXQgICAgICAgICB8IGEsIGIsIGMgRlJPTSBm dW5jdGlvbmFsX2RlcGVuZGVuY2llcyB8ICAgICAgICAgICB8IGJ1aWx0ICAgICAgICB8IAor IHB1YmxpYyAgIHwgbWN2X2xpc3RzX2FycmF5c19zdGF0cyB8IGEsIGIsIGMgRlJPTSBtY3Zf bGlzdHNfYXJyYXlzICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICB8IGJ1aWx0 CisgcHVibGljICAgfCBtY3ZfbGlzdHNfYm9vbF9zdGF0cyAgIHwgYSwgYiwgYyBGUk9NIG1j dl9saXN0c19ib29sICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgYnVp bHQKKyBwdWJsaWMgICB8IG1jdl9saXN0c19zdGF0cyAgICAgICAgfCBhLCBiLCBkIEZST00g bWN2X2xpc3RzICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgfCBi dWlsdAorIHB1YmxpYyAgIHwgc3R0c18xICAgICAgICAgICAgICAgICB8IGEsIGIgRlJPTSBz dHRzX3QxICAgICAgICAgICAgICAgICAgICB8IGJ1aWx0ICAgICB8ICAgICAgICAgICAgICB8 IAorIHB1YmxpYyAgIHwgc3R0c18yICAgICAgICAgICAgICAgICB8IGEsIGIgRlJPTSBzdHRz X3QxICAgICAgICAgICAgICAgICAgICB8IGJ1aWx0ICAgICB8IGJ1aWx0ICAgICAgICB8IAor IHB1YmxpYyAgIHwgc3R0c18zICAgICAgICAgICAgICAgICB8IGEsIGIgRlJPTSBzdHRzX3Qx ICAgICAgICAgICAgICAgICAgICB8IGJ1aWx0ICAgICB8IGJ1aWx0ICAgICAgICB8IGJ1aWx0 CisgcHVibGljICAgfCBzdHRzXzQgICAgICAgICAgICAgICAgIHwgYiwgYyBGUk9NIHN0dHNf dDIgICAgICAgICAgICAgICAgICAgIHwgZGVmaW5lZCAgIHwgZGVmaW5lZCAgICAgIHwgZGVm aW5lZAorIHB1YmxpYyAgIHwgc3R0c19ob2dlICAgICAgICAgICAgICB8IGNvbDEsIGNvbDIs IGNvbDMgRlJPTSBzdHRzX3QzICAgICAgICB8IGRlZmluZWQgICB8IGRlZmluZWQgICAgICB8 IGRlZmluZWQKKyBzdHRzX3MxICB8IHN0dHNfZm9vICAgICAgICAgICAgICAgfCBjb2wxLCBj b2wyIEZST00gc3R0c190MyAgICAgICAgICAgICAgfCBkZWZpbmVkICAgfCBkZWZpbmVkICAg ICAgfCBkZWZpbmVkCisgc3R0c19zMiAgfCBzdHRzX3lhbWEgICAgICAgICAgICAgIHwgY29s MSwgY29sMyBGUk9NIHN0dHNfdDMgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgZGVmaW5l ZCAgICAgIHwgZGVmaW5lZAorIHRzdHN0YXRzIHwgcHJpdl90ZXN0X3N0YXRzICAgICAgICB8 IGEsIGIgRlJPTSB0c3RzdGF0cy5wcml2X3Rlc3RfdGJsICAgICB8ICAgICAgICAgICB8ICAg ICAgICAgICAgICB8IGJ1aWx0CisoMTIgcm93cykKKworXGRYIHN0dHNfPworICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIGV4dGVuZGVkIHN0YXRpc3RpY3MKKyBTY2hlbWEgfCAg TmFtZSAgfCAgICBEZWZpbml0aW9uICAgICB8IE5kaXN0aW5jdCB8IERlcGVuZGVuY2llcyB8 ICAgTUNWICAgCistLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIHB1YmxpYyB8IHN0dHNfMSB8IGEs IGIgRlJPTSBzdHRzX3QxIHwgYnVpbHQgICAgIHwgICAgICAgICAgICAgIHwgCisgcHVibGlj IHwgc3R0c18yIHwgYSwgYiBGUk9NIHN0dHNfdDEgfCBidWlsdCAgICAgfCBidWlsdCAgICAg ICAgfCAKKyBwdWJsaWMgfCBzdHRzXzMgfCBhLCBiIEZST00gc3R0c190MSB8IGJ1aWx0ICAg ICB8IGJ1aWx0ICAgICAgICB8IGJ1aWx0CisgcHVibGljIHwgc3R0c180IHwgYiwgYyBGUk9N IHN0dHNfdDIgfCBkZWZpbmVkICAgfCBkZWZpbmVkICAgICAgfCBkZWZpbmVkCisoNCByb3dz KQorCitcZFggKnN0dHNfaG9nZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgZXh0ZW5kZWQgc3RhdGlzdGljcworIFNjaGVtYSB8ICAgTmFtZSAgICB8ICAgICAg ICAgIERlZmluaXRpb24gICAgICAgICAgIHwgTmRpc3RpbmN0IHwgRGVwZW5kZW5jaWVzIHwg ICBNQ1YgICAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgcHVibGlj IHwgc3R0c19ob2dlIHwgY29sMSwgY29sMiwgY29sMyBGUk9NIHN0dHNfdDMgfCBkZWZpbmVk ICAgfCBkZWZpbmVkICAgICAgfCBkZWZpbmVkCisoMSByb3cpCisKK1xkWCsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIGV4dGVuZGVkIHN0YXRpc3RpY3MKKyAgU2NoZW1hICB8ICAgICAgICAg IE5hbWUgICAgICAgICAgfCAgICAgICAgICAgICAgRGVmaW5pdGlvbiAgICAgICAgICAgICAg fCBOZGlzdGluY3QgfCBEZXBlbmRlbmNpZXMgfCAgIE1DViAgIHwgTmRpc3RpbmN0X3NpemUg fCBEZXBlbmRlbmNpZXNfc2l6ZSB8ICBNQ1Zfc2l6ZSAgCistLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHB1YmxpYyAgIHwgZnVuY19k ZXBzX3N0YXQgICAgICAgICB8IGEsIGIsIGMgRlJPTSBmdW5jdGlvbmFsX2RlcGVuZGVuY2ll cyB8ICAgICAgICAgICB8IGJ1aWx0ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAg ICB8IDEwNiBieXRlcyAgICAgICAgIHwgCisgcHVibGljICAgfCBtY3ZfbGlzdHNfYXJyYXlz X3N0YXRzIHwgYSwgYiwgYyBGUk9NIG1jdl9saXN0c19hcnJheXMgICAgICAgIHwgICAgICAg ICAgIHwgICAgICAgICAgICAgIHwgYnVpbHQgICB8ICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAyNCBrQgorIHB1YmxpYyAgIHwgbWN2X2xpc3RzX2Jvb2xfc3RhdHMg ICB8IGEsIGIsIGMgRlJPTSBtY3ZfbGlzdHNfYm9vbCAgICAgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgICAgICB8IGJ1aWx0ICAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgMzg2IGJ5dGVzCisgcHVibGljICAgfCBtY3ZfbGlzdHNfc3RhdHMgICAgICAg IHwgYSwgYiwgZCBGUk9NIG1jdl9saXN0cyAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgICAgIHwgYnVpbHQgICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgfCAyOTQgYnl0ZXMKKyBwdWJsaWMgICB8IHN0dHNfMSAgICAgICAgICAgICAgICAg fCBhLCBiIEZST00gc3R0c190MSAgICAgICAgICAgICAgICAgICAgfCBidWlsdCAgICAgfCAg ICAgICAgICAgICAgfCAgICAgICAgIHwgMTMgYnl0ZXMgICAgICAgfCAgICAgICAgICAgICAg ICAgICB8IAorIHB1YmxpYyAgIHwgc3R0c18yICAgICAgICAgICAgICAgICB8IGEsIGIgRlJP TSBzdHRzX3QxICAgICAgICAgICAgICAgICAgICB8IGJ1aWx0ICAgICB8IGJ1aWx0ICAgICAg ICB8ICAgICAgICAgfCAxMyBieXRlcyAgICAgICB8IDQwIGJ5dGVzICAgICAgICAgIHwgCisg cHVibGljICAgfCBzdHRzXzMgICAgICAgICAgICAgICAgIHwgYSwgYiBGUk9NIHN0dHNfdDEg ICAgICAgICAgICAgICAgICAgIHwgYnVpbHQgICAgIHwgYnVpbHQgICAgICAgIHwgYnVpbHQg ICB8IDEzIGJ5dGVzICAgICAgIHwgNDAgYnl0ZXMgICAgICAgICAgfCA2MTI2IGJ5dGVzCisg cHVibGljICAgfCBzdHRzXzQgICAgICAgICAgICAgICAgIHwgYiwgYyBGUk9NIHN0dHNfdDIg ICAgICAgICAgICAgICAgICAgIHwgZGVmaW5lZCAgIHwgZGVmaW5lZCAgICAgIHwgZGVmaW5l ZCB8IDAgYnl0ZXMgICAgICAgIHwgMCBieXRlcyAgICAgICAgICAgfCAwIGJ5dGVzCisgcHVi bGljICAgfCBzdHRzX2hvZ2UgICAgICAgICAgICAgIHwgY29sMSwgY29sMiwgY29sMyBGUk9N IHN0dHNfdDMgICAgICAgIHwgZGVmaW5lZCAgIHwgZGVmaW5lZCAgICAgIHwgZGVmaW5lZCB8 IDAgYnl0ZXMgICAgICAgIHwgMCBieXRlcyAgICAgICAgICAgfCAwIGJ5dGVzCisgc3R0c19z MSAgfCBzdHRzX2ZvbyAgICAgICAgICAgICAgIHwgY29sMSwgY29sMiBGUk9NIHN0dHNfdDMg ICAgICAgICAgICAgIHwgZGVmaW5lZCAgIHwgZGVmaW5lZCAgICAgIHwgZGVmaW5lZCB8IDAg Ynl0ZXMgICAgICAgIHwgMCBieXRlcyAgICAgICAgICAgfCAwIGJ5dGVzCisgc3R0c19zMiAg fCBzdHRzX3lhbWEgICAgICAgICAgICAgIHwgY29sMSwgY29sMyBGUk9NIHN0dHNfdDMgICAg ICAgICAgICAgIHwgICAgICAgICAgIHwgZGVmaW5lZCAgICAgIHwgZGVmaW5lZCB8ICAgICAg ICAgICAgICAgIHwgMCBieXRlcyAgICAgICAgICAgfCAwIGJ5dGVzCisgdHN0c3RhdHMgfCBw cml2X3Rlc3Rfc3RhdHMgICAgICAgIHwgYSwgYiBGUk9NIHRzdHN0YXRzLnByaXZfdGVzdF90 YmwgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgIHwgYnVpbHQgICB8ICAgICAgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCA2ODYgYnl0ZXMKKygxMiByb3dzKQorCitc ZFgrIHN0dHNfPworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBleHRlbmRlZCBzdGF0aXN0aWNzCisgU2NoZW1hIHwgIE5hbWUgIHwg ICAgRGVmaW5pdGlvbiAgICAgfCBOZGlzdGluY3QgfCBEZXBlbmRlbmNpZXMgfCAgIE1DViAg IHwgTmRpc3RpbmN0X3NpemUgfCBEZXBlbmRlbmNpZXNfc2l6ZSB8ICBNQ1Zfc2l6ZSAgCist LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgcHVibGljIHwgc3R0c18xIHwgYSwgYiBGUk9NIHN0dHNfdDEg fCBidWlsdCAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgIHwgMTMgYnl0ZXMgICAgICAg fCAgICAgICAgICAgICAgICAgICB8IAorIHB1YmxpYyB8IHN0dHNfMiB8IGEsIGIgRlJPTSBz dHRzX3QxIHwgYnVpbHQgICAgIHwgYnVpbHQgICAgICAgIHwgICAgICAgICB8IDEzIGJ5dGVz ICAgICAgIHwgNDAgYnl0ZXMgICAgICAgICAgfCAKKyBwdWJsaWMgfCBzdHRzXzMgfCBhLCBi IEZST00gc3R0c190MSB8IGJ1aWx0ICAgICB8IGJ1aWx0ICAgICAgICB8IGJ1aWx0ICAgfCAx MyBieXRlcyAgICAgICB8IDQwIGJ5dGVzICAgICAgICAgIHwgNjEyNiBieXRlcworIHB1Ymxp YyB8IHN0dHNfNCB8IGIsIGMgRlJPTSBzdHRzX3QyIHwgZGVmaW5lZCAgIHwgZGVmaW5lZCAg ICAgIHwgZGVmaW5lZCB8IDAgYnl0ZXMgICAgICAgIHwgMCBieXRlcyAgICAgICAgICAgfCAw IGJ5dGVzCisoNCByb3dzKQorCitcZFgrICpzdHRzX2hvZ2UKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIGV4dGVuZGVk IHN0YXRpc3RpY3MKKyBTY2hlbWEgfCAgIE5hbWUgICAgfCAgICAgICAgICBEZWZpbml0aW9u ICAgICAgICAgICB8IE5kaXN0aW5jdCB8IERlcGVuZGVuY2llcyB8ICAgTUNWICAgfCBOZGlz dGluY3Rfc2l6ZSB8IERlcGVuZGVuY2llc19zaXplIHwgTUNWX3NpemUgCistLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHB1YmxpYyB8IHN0dHNfaG9nZSB8IGNvbDEsIGNvbDIs IGNvbDMgRlJPTSBzdHRzX3QzIHwgZGVmaW5lZCAgIHwgZGVmaW5lZCAgICAgIHwgZGVmaW5l ZCB8IDAgYnl0ZXMgICAgICAgIHwgMCBieXRlcyAgICAgICAgICAgfCAwIGJ5dGVzCisoMSBy b3cpCisKK1xkWCsgc3R0c19zMi5zdHRzX3lhbWEKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIGV4dGVuZGVkIHN0YXRpc3Rp Y3MKKyBTY2hlbWEgIHwgICBOYW1lICAgIHwgICAgICAgRGVmaW5pdGlvbiAgICAgICAgfCBO ZGlzdGluY3QgfCBEZXBlbmRlbmNpZXMgfCAgIE1DViAgIHwgTmRpc3RpbmN0X3NpemUgfCBE ZXBlbmRlbmNpZXNfc2l6ZSB8IE1DVl9zaXplIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Cisgc3R0c19zMiB8IHN0dHNfeWFtYSB8IGNvbDEsIGNvbDMgRlJPTSBzdHRzX3QzIHwgICAg ICAgICAgIHwgZGVmaW5lZCAgICAgIHwgZGVmaW5lZCB8ICAgICAgICAgICAgICAgIHwgMCBi eXRlcyAgICAgICAgICAgfCAwIGJ5dGVzCisoMSByb3cpCisKK2Ryb3AgdGFibGUgc3R0c190 MSwgc3R0c190Miwgc3R0c190MzsKK2Ryb3Agc2NoZW1hIHN0dHNfczEsIHN0dHNfczIgY2Fz Y2FkZTsKIC0tIFVzZXIgd2l0aCBubyBhY2Nlc3MKIENSRUFURSBVU0VSIHJlZ3Jlc3Nfc3Rh dHNfdXNlcjE7CiBHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgdHN0c3RhdHMgVE8gcmVncmVzc19z dGF0c191c2VyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0YXRzX2V4 dC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdGF0c19leHQuc3FsCmluZGV4IDc5MTJl NzMzYWUuLmRiNmUzZTFiYTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N0 YXRzX2V4dC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3RhdHNfZXh0LnNxbApA QCAtOTEyLDYgKzkxMiwzNyBAQCBDUkVBVEUgU1RBVElTVElDUyB0c3RzdGF0cy5wcml2X3Rl c3Rfc3RhdHMgKG1jdikgT04gYSwgYgogCiBBTkFMWVpFIHRzdHN0YXRzLnByaXZfdGVzdF90 Ymw7CiAKKy0tIENoZWNrIHByaW50aW5nIGluZm8gYWJvdXQgZXh0ZW5kZWQgc3RhdGlzdGlj cyBieSBcZFgKK2NyZWF0ZSB0YWJsZSBzdHRzX3QxIChhIGludCwgYiBpbnQpOworY3JlYXRl IHN0YXRpc3RpY3Mgc3R0c18xIChuZGlzdGluY3QpIG9uIGEsIGIgZnJvbSBzdHRzX3QxOwor Y3JlYXRlIHN0YXRpc3RpY3Mgc3R0c18yIChuZGlzdGluY3QsIGRlcGVuZGVuY2llcykgb24g YSwgYiBmcm9tIHN0dHNfdDE7CitjcmVhdGUgc3RhdGlzdGljcyBzdHRzXzMgKG5kaXN0aW5j dCwgZGVwZW5kZW5jaWVzLCBtY3YpIG9uIGEsIGIgZnJvbSBzdHRzX3QxOworCitjcmVhdGUg dGFibGUgc3R0c190MiAoYSBpbnQsIGIgaW50LCBjIGludCk7CitjcmVhdGUgc3RhdGlzdGlj cyBzdHRzXzQgb24gYiwgYyBmcm9tIHN0dHNfdDI7CisKK2NyZWF0ZSB0YWJsZSBzdHRzX3Qz IChjb2wxIGludCwgY29sMiBpbnQsIGNvbDMgaW50KTsKK2NyZWF0ZSBzdGF0aXN0aWNzIHN0 dHNfaG9nZSBvbiBjb2wxLCBjb2wyLCBjb2wzIGZyb20gc3R0c190MzsKKworY3JlYXRlIHNj aGVtYSBzdHRzX3MxOworY3JlYXRlIHNjaGVtYSBzdHRzX3MyOworY3JlYXRlIHN0YXRpc3Rp Y3Mgc3R0c19zMS5zdHRzX2ZvbyBvbiBjb2wxLCBjb2wyIGZyb20gc3R0c190MzsKK2NyZWF0 ZSBzdGF0aXN0aWNzIHN0dHNfczIuc3R0c195YW1hIChkZXBlbmRlbmNpZXMsIG1jdikgb24g Y29sMSwgY29sMyBmcm9tIHN0dHNfdDM7CisKK2luc2VydCBpbnRvIHN0dHNfdDEgc2VsZWN0 IGksaSBmcm9tIGdlbmVyYXRlX3NlcmllcygxLDEwMCkgaTsKK2FuYWx5emUgc3R0c190MTsK KworXGRYCitcZFggc3R0c18/CitcZFggKnN0dHNfaG9nZQorXGRYKworXGRYKyBzdHRzXz8K K1xkWCsgKnN0dHNfaG9nZQorXGRYKyBzdHRzX3MyLnN0dHNfeWFtYQorCitkcm9wIHRhYmxl IHN0dHNfdDEsIHN0dHNfdDIsIHN0dHNfdDM7Citkcm9wIHNjaGVtYSBzdHRzX3MxLCBzdHRz X3MyIGNhc2NhZGU7CisKIC0tIFVzZXIgd2l0aCBubyBhY2Nlc3MKIENSRUFURSBVU0VSIHJl Z3Jlc3Nfc3RhdHNfdXNlcjE7CiBHUkFOVCBVU0FHRSBPTiBTQ0hFTUEgdHN0c3RhdHMgVE8g cmVncmVzc19zdGF0c191c2VyMTsKLS0gCjIuMTYuNQoK --------------67108A9155D8D233DE55B48D--