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 1vvflV-00DC0Q-1x for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Feb 2026 18:07:09 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vvflU-00EiI8-19 for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Feb 2026 18:07:08 +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 1vvflT-00EiHt-2c for pgsql-hackers@lists.postgresql.org; Thu, 26 Feb 2026 18:07:08 +0000 Received: from mail-vk1-xa29.google.com ([2607:f8b0:4864:20::a29]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vvflQ-00000001QyD-0oPD for pgsql-hackers@lists.postgresql.org; Thu, 26 Feb 2026 18:07:07 +0000 Received: by mail-vk1-xa29.google.com with SMTP id 71dfb90a1353d-56a857578a8so432681e0c.3 for ; Thu, 26 Feb 2026 10:07:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772129223; x=1772734023; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=DeStfGPG2KMJruQNouGzO6CCmPGz2Ra8WkYaIW7eQvc=; b=Vg1uy5VXkMuApPRQNf3s3SK6++loxR7NotPK2rnrz3ZVadp6FNck529/hU7uALfg2W e1gm2LCIYSDrsu7Wnewp9mZc/kNfHLAkDd68Y5OZsGWHQoPec+ul91UQiKBFuyKA/HAf dfhAtmynr3rK9A/6NCCKd/7qySP5yW5D2KBS2HaXRBdvIvjICNgxUy6s1uib1JxoUV5E zTc+QVCsGtK607udKDUayQx0NWJrswwvJt/MqiD9IK21w23UVeeMM63uknhO69NDiJ7F MKB8HdfFrC673lZq0SwdAKl7vxpYYEKRM/VVLFcog/p31NuZh4Vy9wclvyfReIIiRQc9 FLfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772129223; x=1772734023; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-gg:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=DeStfGPG2KMJruQNouGzO6CCmPGz2Ra8WkYaIW7eQvc=; b=Gt5qekd5wBjrtMLAa/60lUxzfQ/xSGo0QiV6yhOhiNlt0HwPgfLEcJaj6xb1MxlJoP 7OS8ucEW30SxbB9WY0DcA7ySmKTQiso8TIyVisNHws/Ff/JOwo4RE0fVXVCd+KHStgx+ 723vtndWAzSCn1IEMlKx2FZ9rryVuosvXx6gvw4JeHlvmsFzYR4jSU8GumBTyB9Xk9kM 7xaxxCOyd3dQp7uDVpFMdz05o3joh8vL77iAisg+HBG/ys0OYH87PxiyIJW44v0Nkwn+ wTljXG39QmceiRYsm3IAPDadj0nzf8PQhwzc2llxh8NFDZRZrM4dd2YQPK4PJt/TPdMs qGrg== X-Gm-Message-State: AOJu0Yy88W9hWlgDxlq9U7NBG4rDJSky2GX7XOqaNCK5GgUDHrBaIzYC bThtBFhURaHo8WbFZoatWMJzv2ou3KHaPEimI5Cd5RYYm31onpgsy2eiKcQRPQ== X-Gm-Gg: ATEYQzyjM6QsJg57Z+qayX7lslkqG+C9MxOmG0bmhdgEJpEhtzGZbz8saXniy/DuOVF 6HEHLEPSTOXG37kYxSFjCOujeprd18TJ2I/oB0XmtpfOeuDq1pNFJaIY9JMX/Sq71rNQuqTlg8s e2Y++QYpDnhr1NUjAQU7WT264Lsg9Fyx4noZ+Lz740Y/sqIvslEa4AqSa+1WRQN3kfTcMtzkcBE iYoYzCeTpfqZpekPCLWfHyTaa71FabVELelHUzpTTSAZrYoYu1sPH501/VQBtkcW0P1o+kLaeAb LKogl6NSBWuOevK0LWCXdERoYcTURhEh+7nn+m0OY645XfmNiR5V3xlPs2GLuceIZ6slk/Iro2s fE5WIN7QTHBdAnZe24EVU00rtkW+nIS6/lAClyTcNdlUSSWILCI3ftuusyTrECOmS74DUWJJs/N C/Q019FqomugQN5SQ6rwplJrdwBy96VkOtpRSj5PZIH6CyKOzIOiC4j0IL0rMAsj3Mr8KckxbPe 5qgPnoIVYncOeYn/yMN5Q== X-Received: by 2002:a05:6122:2218:b0:567:5a54:5443 with SMTP id 71dfb90a1353d-56aa0a8bdfemr52496e0c.11.1772129222671; Thu, 26 Feb 2026 10:07:02 -0800 (PST) Received: from ?IPV6:2804:14d:328a:a59c:a4b8:2a46:26e5:b6cc? ([2804:14d:328a:a59c:a4b8:2a46:26e5:b6cc]) by smtp.gmail.com with ESMTPSA id 71dfb90a1353d-56a922afe47sm3297152e0c.20.2026.02.26.10.07.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 26 Feb 2026 10:07:01 -0800 (PST) Content-Type: multipart/mixed; boundary="------------0G0mrN0fFejmdYW0JrTdttPy" Message-ID: <2f55b9a4-332f-45c7-9b27-590637a2bb9a@gmail.com> Date: Thu, 26 Feb 2026 15:06:59 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Show expression of virtual columns in error messages From: Matheus Alcantara To: pgsql-hackers@lists.postgresql.org Cc: Peter Eisentraut , Yugo Nagata References: <7c18e854-0ddb-4670-b0c4-f2541b5edd91@eisentraut.org> <20260205114521.6fed028d8d3185663f3c4226@sraoss.co.jp> <20260206125414.8f8c5f5735aa34fb05c5cc72@sraoss.co.jp> Content-Language: en-US In-Reply-To: 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. --------------0G0mrN0fFejmdYW0JrTdttPy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, Attached rebased v3 due to f80bedd52b1. No additional changes compared to v2. -- Matheus Alcantara EDB: https://www.enterprisedb.com --------------0G0mrN0fFejmdYW0JrTdttPy Content-Type: text/plain; charset=UTF-8; name="v3-0001-Show-expression-of-virtual-columns-in-error-messa.patch" Content-Disposition: attachment; filename*0="v3-0001-Show-expression-of-virtual-columns-in-error-messa.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA0NTcyMDUzYTk5NzU3NmYwOGRmOTc1NjU2NzRhZWQ5NTE1YjAxZDUwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0u bWU+CkRhdGU6IE1vbiwgMiBGZWIgMjAyNiAxOTowNjo0NCAtMDMwMApTdWJqZWN0OiBbUEFU Q0ggdjNdIFNob3cgZXhwcmVzc2lvbiBvZiB2aXJ0dWFsIGNvbHVtbnMgaW4gZXJyb3IgbWVz c2FnZXMKClByZXZpb3VzbHksIHdoZW4gYSBjb25zdHJhaW50IHZpb2xhdGlvbiBvY2N1cnJl ZCBvbiBhIHRhYmxlIHdpdGggdmlydHVhbApnZW5lcmF0ZWQgY29sdW1ucywgdGhlICJGYWls aW5nIHJvdyBjb250YWlucyIgZXJyb3IgbWVzc2FnZSB3b3VsZCBkaXNwbGF5CnRoZSBsaXRl cmFsIHN0cmluZyAidmlydHVhbCIgYXMgYSBwbGFjZWhvbGRlciBmb3IgdGhvc2UgY29sdW1u cy4gVGhpcyB3YXMKbm90IGhlbHBmdWwgZm9yIGRlYnVnZ2luZy4KCk5vdywgdGhlIGdlbmVy YXRpb24gZXhwcmVzc2lvbiBpcyBzaG93biBpbnN0ZWFkLCBtYWtpbmcgaXQgZWFzaWVyIHRv CnVuZGVyc3RhbmQgd2hhdCB2YWx1ZSB3b3VsZCBiZSBjb21wdXRlZCBmb3IgdGhlIHZpcnR1 YWwgY29sdW1uLgoKRm9yIGV4YW1wbGUsIGluc3RlYWQgb2Y6CiAgRmFpbGluZyByb3cgY29u dGFpbnMgKDUsIDEwLCB2aXJ0dWFsKS4KClRoZSBlcnJvciBtZXNzYWdlIG5vdyBzaG93czoK ICBGYWlsaW5nIHJvdyBjb250YWlucyAoNSwgMTAsIGEgKiAyKS4KClRoaXMgcmVxdWlyZWQg Y2hhbmdpbmcgRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24oKSB0byBhY2NlcHQgYQpS ZWxhdGlvbiBpbnN0ZWFkIG9mIGp1c3QgYW4gT2lkLCBzbyB0aGF0IGJ1aWxkX2dlbmVyYXRp b25fZXhwcmVzc2lvbigpCmNhbiBiZSBjYWxsZWQgdG8gcmV0cmlldmUgdGhlIGNvbHVtbidz IGdlbmVyYXRpb24gZXhwcmVzc2lvbi4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVj TWFpbi5jICAgICAgICAgICAgICAgfCA5NyArKysrKysrKysrKysrKysrLS0tCiBzcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgICAgfCAgNyArLQogc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dCAgICB8IDE4ICsrLS0KIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dCB8ICAyICstCiBz cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgMSArCiA2 IGZpbGVzIGNoYW5nZWQsIDEwMSBpbnNlcnRpb25zKCspLCAyNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCBiZmQzZWJjNjAxZS4uYjgyYzUwMGJhOTAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtNTEsNiArNTEsOCBAQAogI2luY2x1 ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAjaW5jbHVkZSAibWIvcGdfd2NoYXIuaCIKICNpbmNs dWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKKyNpbmNs dWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9xdWVyeWp1bWJsZS5o IgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9yZWxhdGlvbi5oIgogI2luY2x1ZGUgInBnc3Rh dC5oIgpAQCAtNjEsOCArNjMsMTggQEAKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK ICNpbmNsdWRlICJ1dGlscy9wYXJ0Y2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9ybHMuaCIK KyNpbmNsdWRlICJ1dGlscy9ydWxldXRpbHMuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdy LmgiCiAKKy8qCisgKiBDb250ZXh0IGZvciBzdWJzdGl0dXRlX2FjdHVhbF92YWx1ZXNfbXV0 YXRvcgorICovCit0eXBlZGVmIHN0cnVjdAoreworCVR1cGxlVGFibGVTbG90ICpzbG90Owor CVR1cGxlRGVzYwl0dXBkZXNjOworfSBzdWJzdGl0dXRlX2FjdHVhbF92YWx1ZXNfY29udGV4 dDsKKwogCiAvKiBIb29rcyBmb3IgcGx1Z2lucyB0byBnZXQgY29udHJvbCBpbiBFeGVjdXRv clN0YXJ0L1J1bi9GaW5pc2gvRW5kICovCiBFeGVjdXRvclN0YXJ0X2hvb2tfdHlwZSBFeGVj dXRvclN0YXJ0X2hvb2sgPSBOVUxMOwpAQCAtOTMsNiArMTA1LDkgQEAgc3RhdGljIHZvaWQg UmVwb3J0Tm90TnVsbFZpb2xhdGlvbkVycm9yKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbElu Zm8sCiAJCQkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkJCQkJCQkJRVN0YXRl ICplc3RhdGUsIGludCBhdHRudW0pOwogCitzdGF0aWMgTm9kZSAqc3Vic3RpdHV0ZV9hY3R1 YWxfdmFsdWVzX211dGF0b3IoTm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJICBzdWJzdGl0dXRl X2FjdHVhbF92YWx1ZXNfY29udGV4dCAqY29udGV4dCk7CisKIC8qIGVuZCBvZiBsb2NhbCBk ZWNscyAqLwogCiAKQEAgLTE5MTQsNyArMTkyOSw3IEBAIEV4ZWNQYXJ0aXRpb25DaGVja0Vt aXRFcnJvcihSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQkJCQkJCVR1cGxlVGFi bGVTbG90ICpzbG90LAogCQkJCQkJCUVTdGF0ZSAqZXN0YXRlKQogewotCU9pZAkJCXJvb3Rf cmVsaWQ7CisJUmVsYXRpb24Jcm9vdF9yZWw7CiAJVHVwbGVEZXNjCXR1cGRlc2M7CiAJY2hh cgkgICAqdmFsX2Rlc2M7CiAJQml0bWFwc2V0ICAqbW9kaWZpZWRDb2xzOwpAQCAtMTkzMSw4 ICsxOTQ2LDggQEAgRXhlY1BhcnRpdGlvbkNoZWNrRW1pdEVycm9yKFJlc3VsdFJlbEluZm8g KnJlc3VsdFJlbEluZm8sCiAJCVR1cGxlRGVzYwlvbGRfdHVwZGVzYzsKIAkJQXR0ck1hcCAg ICAqbWFwOwogCi0JCXJvb3RfcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJvb3RyZWwtPnJp X1JlbGF0aW9uRGVzYyk7Ci0JCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJvb3RyZWwt PnJpX1JlbGF0aW9uRGVzYyk7CisJCXJvb3RfcmVsID0gcm9vdHJlbC0+cmlfUmVsYXRpb25E ZXNjOworCQl0dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyb290X3JlbCk7CiAKIAkJb2xk X3R1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9u RGVzYyk7CiAJCS8qIGEgcmV2ZXJzZSBtYXAgKi8KQEAgLTE5NTAsMTMgKzE5NjUsMTMgQEAg RXhlY1BhcnRpdGlvbkNoZWNrRW1pdEVycm9yKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbElu Zm8sCiAJfQogCWVsc2UKIAl7Ci0JCXJvb3RfcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHJl c3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYyk7Ci0JCXR1cGRlc2MgPSBSZWxhdGlvbkdl dERlc2NyKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYyk7CisJCXJvb3RfcmVsID0g cmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjOworCQl0dXBkZXNjID0gUmVsYXRpb25H ZXREZXNjcihyb290X3JlbCk7CiAJCW1vZGlmaWVkQ29scyA9IGJtc191bmlvbihFeGVjR2V0 SW5zZXJ0ZWRDb2xzKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSksCiAJCQkJCQkJCSBFeGVjR2V0 VXBkYXRlZENvbHMocmVzdWx0UmVsSW5mbywgZXN0YXRlKSk7CiAJfQogCi0JdmFsX2Rlc2Mg PSBFeGVjQnVpbGRTbG90VmFsdWVEZXNjcmlwdGlvbihyb290X3JlbGlkLAorCXZhbF9kZXNj ID0gRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24ocm9vdF9yZWwsCiAJCQkJCQkJCQkJ CSBzbG90LAogCQkJCQkJCQkJCQkgdHVwZGVzYywKIAkJCQkJCQkJCQkJIG1vZGlmaWVkQ29s cywKQEAgLTIwNjgsNyArMjA4Myw3IEBAIEV4ZWNDb25zdHJhaW50cyhSZXN1bHRSZWxJbmZv ICpyZXN1bHRSZWxJbmZvLAogCQkJZWxzZQogCQkJCW1vZGlmaWVkQ29scyA9IGJtc191bmlv bihFeGVjR2V0SW5zZXJ0ZWRDb2xzKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSksCiAJCQkJCQkJ CQkJIEV4ZWNHZXRVcGRhdGVkQ29scyhyZXN1bHRSZWxJbmZvLCBlc3RhdGUpKTsKLQkJCXZh bF9kZXNjID0gRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24oUmVsYXRpb25HZXRSZWxp ZChyZWwpLAorCQkJdmFsX2Rlc2MgPSBFeGVjQnVpbGRTbG90VmFsdWVEZXNjcmlwdGlvbihy ZWwsCiAJCQkJCQkJCQkJCQkJIHNsb3QsCiAJCQkJCQkJCQkJCQkJIHR1cGRlc2MsCiAJCQkJ CQkJCQkJCQkJIG1vZGlmaWVkQ29scywKQEAgLTIyMDUsNyArMjIyMCw3IEBAIFJlcG9ydE5v dE51bGxWaW9sYXRpb25FcnJvcihSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLCBUdXBs ZVRhYmxlU2xvdCAqc2xvdCwKIAkJbW9kaWZpZWRDb2xzID0gYm1zX3VuaW9uKEV4ZWNHZXRJ bnNlcnRlZENvbHMocmVzdWx0UmVsSW5mbywgZXN0YXRlKSwKIAkJCQkJCQkJIEV4ZWNHZXRV cGRhdGVkQ29scyhyZXN1bHRSZWxJbmZvLCBlc3RhdGUpKTsKIAotCXZhbF9kZXNjID0gRXhl Y0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24oUmVsYXRpb25HZXRSZWxpZChyZWwpLAorCXZh bF9kZXNjID0gRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24ocmVsLAogCQkJCQkJCQkJ CQkgc2xvdCwKIAkJCQkJCQkJCQkJIHR1cGRlc2MsCiAJCQkJCQkJCQkJCSBtb2RpZmllZENv bHMsCkBAIC0yMzEzLDcgKzIzMjgsNyBAQCBFeGVjV2l0aENoZWNrT3B0aW9ucyhXQ09LaW5k IGtpbmQsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQkJCWVsc2UKIAkJCQkJ CW1vZGlmaWVkQ29scyA9IGJtc191bmlvbihFeGVjR2V0SW5zZXJ0ZWRDb2xzKHJlc3VsdFJl bEluZm8sIGVzdGF0ZSksCiAJCQkJCQkJCQkJCQkgRXhlY0dldFVwZGF0ZWRDb2xzKHJlc3Vs dFJlbEluZm8sIGVzdGF0ZSkpOwotCQkJCQl2YWxfZGVzYyA9IEV4ZWNCdWlsZFNsb3RWYWx1 ZURlc2NyaXB0aW9uKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwKKwkJCQkJdmFsX2Rlc2MgPSBF eGVjQnVpbGRTbG90VmFsdWVEZXNjcmlwdGlvbihyZWwsCiAJCQkJCQkJCQkJCQkJCQkgc2xv dCwKIAkJCQkJCQkJCQkJCQkJCSB0dXBkZXNjLAogCQkJCQkJCQkJCQkJCQkJIG1vZGlmaWVk Q29scywKQEAgLTIzOTIsMTIgKzI0MDcsMTMgQEAgRXhlY1dpdGhDaGVja09wdGlvbnMoV0NP S2luZCBraW5kLCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogICogY29sdW1ucyB0 aGV5IGFyZS4KICAqLwogY2hhciAqCi1FeGVjQnVpbGRTbG90VmFsdWVEZXNjcmlwdGlvbihP aWQgcmVsb2lkLAorRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24oUmVsYXRpb24gcmVs LAogCQkJCQkJCSAgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkJCQkJICBUdXBsZURlc2Mg dHVwZGVzYywKIAkJCQkJCQkgIEJpdG1hcHNldCAqbW9kaWZpZWRDb2xzLAogCQkJCQkJCSAg aW50IG1heGZpZWxkbGVuKQogeworCU9pZAkJCXJlbG9pZCA9IFJlbGF0aW9uR2V0UmVsaWQo cmVsKTsKIAlTdHJpbmdJbmZvRGF0YSBidWY7CiAJU3RyaW5nSW5mb0RhdGEgY29sbGlzdDsK IAlib29sCQl3cml0ZV9jb21tYSA9IGZhbHNlOwpAQCAtMjQ3Nyw3ICsyNDkzLDIzIEBAIEV4 ZWNCdWlsZFNsb3RWYWx1ZURlc2NyaXB0aW9uKE9pZCByZWxvaWQsCiAJCWlmICh0YWJsZV9w ZXJtIHx8IGNvbHVtbl9wZXJtKQogCQl7CiAJCQlpZiAoYXR0LT5hdHRnZW5lcmF0ZWQgPT0g QVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQotCQkJCXZhbCA9ICJ2aXJ0dWFsIjsKKwkJ CXsKKwkJCQlOb2RlCSAgICpnZW5leHByID0gYnVpbGRfZ2VuZXJhdGlvbl9leHByZXNzaW9u KHJlbCwgYXR0LT5hdHRudW0pOworCQkJCXN1YnN0aXR1dGVfYWN0dWFsX3ZhbHVlc19jb250 ZXh0IGN4dDsKKwkJCQlMaXN0CSAgICpkcGNvbnRleHQ7CisKKwkJCQljeHQuc2xvdCA9IHNs b3Q7CisJCQkJY3h0LnR1cGRlc2MgPSB0dXBkZXNjOworCQkJCWdlbmV4cHIgPSBzdWJzdGl0 dXRlX2FjdHVhbF92YWx1ZXNfbXV0YXRvcihnZW5leHByLCAmY3h0KTsKKworCQkJCS8qCisJ CQkJICogV2UgbmVlZCBkcGNvbnRleHQgZm9yIGFueSByZW1haW5pbmcgVmFycyB0aGF0IHdl cmVuJ3QKKwkJCQkgKiBzdWJzdGl0dXRlZCAoZS5nIHN5c3RlbSBjb2x1bW5zKS4KKwkJCQkg Ki8KKwkJCQlkcGNvbnRleHQgPSBkZXBhcnNlX2NvbnRleHRfZm9yKFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCksIHJlbG9pZCk7CisKKwkJCQl2YWwgPSBkZXBhcnNlX2V4cHJlc3Np b24oZ2VuZXhwciwgZHBjb250ZXh0LCBmYWxzZSwgZmFsc2UpOworCQkJfQogCQkJZWxzZSBp ZiAoc2xvdC0+dHRzX2lzbnVsbFtpXSkKIAkJCQl2YWwgPSAibnVsbCI7CiAJCQllbHNlCkBA IC0zMjQxLDMgKzMyNzMsNDYgQEAgRXZhbFBsYW5RdWFsRW5kKEVQUVN0YXRlICplcHFzdGF0 ZSkKIAllcHFzdGF0ZS0+cmVsc3Vic19kb25lID0gTlVMTDsKIAllcHFzdGF0ZS0+cmVsc3Vi c19ibG9ja2VkID0gTlVMTDsKIH0KKworLyoKKyAqIFJlcGxhY2VzIFZhciBub2RlcyB3aXRo IENvbnN0IG5vZGVzIGNvbnRhaW5pbmcgdGhlIGFjdHVhbCB2YWx1ZXMgZnJvbSB0aGUKKyAq IHR1cGxlIHNsb3QuCisgKgorICogVGhpcyBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIGFjdHVh bCB2YWx1ZXMgdXNlZCBpbiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4KKyAqIGV4cHJlc3Np b25zIGZvciBlcnJvciBtZXNzYWdlcy4KKyAqLworc3RhdGljIE5vZGUgKgorc3Vic3RpdHV0 ZV9hY3R1YWxfdmFsdWVzX211dGF0b3IoTm9kZSAqbm9kZSwKKwkJCQkJCQkJIHN1YnN0aXR1 dGVfYWN0dWFsX3ZhbHVlc19jb250ZXh0ICpjb250ZXh0KQoreworCWlmIChub2RlID09IE5V TEwpCisJCXJldHVybiBOVUxMOworCisJaWYgKElzQShub2RlLCBWYXIpKQorCXsKKwkJVmFy CQkgICAqdmFyID0gKFZhciAqKSBub2RlOworCQlpbnQJCQlhdHRudW0gPSB2YXItPnZhcmF0 dG5vOworCisJCWlmIChhdHRudW0gPiAwICYmIGF0dG51bSA8PSBjb250ZXh0LT50dXBkZXNj LT5uYXR0cykKKwkJeworCQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0ID0gVHVwbGVEZXNjQXR0 cihjb250ZXh0LT50dXBkZXNjLCBhdHRudW0gLSAxKTsKKwkJCURhdHVtCQl2YWx1ZTsKKwkJ CWJvb2wJCWlzbnVsbDsKKworCQkJdmFsdWUgPSBjb250ZXh0LT5zbG90LT50dHNfdmFsdWVz W2F0dG51bSAtIDFdOworCQkJaXNudWxsID0gY29udGV4dC0+c2xvdC0+dHRzX2lzbnVsbFth dHRudW0gLSAxXTsKKworCQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChhdHQtPmF0dHR5 cGlkLAorCQkJCQkJCQkJICBhdHQtPmF0dHR5cG1vZCwKKwkJCQkJCQkJCSAgYXR0LT5hdHRj b2xsYXRpb24sCisJCQkJCQkJCQkgIGF0dC0+YXR0bGVuLAorCQkJCQkJCQkJICB2YWx1ZSwK KwkJCQkJCQkJCSAgaXNudWxsLAorCQkJCQkJCQkJICBhdHQtPmF0dGJ5dmFsKTsKKwkJfQor CX0KKworCXJldHVybiBleHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLAorCQkJCQkJCQkg ICBzdWJzdGl0dXRlX2FjdHVhbF92YWx1ZXNfbXV0YXRvciwKKwkJCQkJCQkJICAgY29udGV4 dCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2Nv bmZsaWN0LmMgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMK aW5kZXggY2E3MWE4MWM3YmYuLjQ3OGMwYTIyM2ZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCkBAIC00MzIsNyArNDMyLDYgQEAgZ2V0X3R1 cGxlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sIENvbmZs aWN0VHlwZSB0eXBlLAogCQkJICAgT2lkIGluZGV4b2lkKQogewogCVJlbGF0aW9uCWxvY2Fs cmVsID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOwotCU9pZAkJCXJlbGlkID0gUmVsYXRp b25HZXRSZWxpZChsb2NhbHJlbCk7CiAJVHVwbGVEZXNjCXR1cGRlc2MgPSBSZWxhdGlvbkdl dERlc2NyKGxvY2FscmVsKTsKIAljaGFyCSAgICpkZXNjID0gTlVMTDsKIApAQCAtNDYxLDcg KzQ2MCw3IEBAIGdldF90dXBsZV9kZXNjKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZv ICpyZWxpbmZvLCBDb25mbGljdFR5cGUgdHlwZSwKIAkJICogVGhlICdtb2RpZmllZENvbHMn IG9ubHkgYXBwbGllcyB0byB0aGUgbmV3IHR1cGxlLCBoZW5jZSB3ZSBwYXNzCiAJCSAqIE5V TEwgZm9yIHRoZSBsb2NhbCByb3cuCiAJCSAqLwotCQlkZXNjID0gRXhlY0J1aWxkU2xvdFZh bHVlRGVzY3JpcHRpb24ocmVsaWQsIGxvY2Fsc2xvdCwgdHVwZGVzYywKKwkJZGVzYyA9IEV4 ZWNCdWlsZFNsb3RWYWx1ZURlc2NyaXB0aW9uKGxvY2FscmVsLCBsb2NhbHNsb3QsIHR1cGRl c2MsCiAJCQkJCQkJCQkJCSBOVUxMLCA2NCk7CiAKIAkJaWYgKGRlc2MpCkBAIC00ODEsNyAr NDgwLDcgQEAgZ2V0X3R1cGxlX2Rlc2MoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8g KnJlbGluZm8sIENvbmZsaWN0VHlwZSB0eXBlLAogCQkgKi8KIAkJbW9kaWZpZWRDb2xzID0g Ym1zX3VuaW9uKEV4ZWNHZXRJbnNlcnRlZENvbHMocmVsaW5mbywgZXN0YXRlKSwKIAkJCQkJ CQkJIEV4ZWNHZXRVcGRhdGVkQ29scyhyZWxpbmZvLCBlc3RhdGUpKTsKLQkJZGVzYyA9IEV4 ZWNCdWlsZFNsb3RWYWx1ZURlc2NyaXB0aW9uKHJlbGlkLCByZW1vdGVzbG90LAorCQlkZXNj ID0gRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24obG9jYWxyZWwsIHJlbW90ZXNsb3Qs CiAJCQkJCQkJCQkJCSB0dXBkZXNjLCBtb2RpZmllZENvbHMsCiAJCQkJCQkJCQkJCSA2NCk7 CiAKQEAgLTUxMCw3ICs1MDksNyBAQCBnZXRfdHVwbGVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwg UmVzdWx0UmVsSW5mbyAqcmVsaW5mbywgQ29uZmxpY3RUeXBlIHR5cGUsCiAJCWlmIChPaWRJ c1ZhbGlkKHJlcGxpY2FfaW5kZXgpKQogCQkJZGVzYyA9IGJ1aWxkX2luZGV4X3ZhbHVlX2Rl c2MoZXN0YXRlLCBsb2NhbHJlbCwgc2VhcmNoc2xvdCwgcmVwbGljYV9pbmRleCk7CiAJCWVs c2UKLQkJCWRlc2MgPSBFeGVjQnVpbGRTbG90VmFsdWVEZXNjcmlwdGlvbihyZWxpZCwgc2Vh cmNoc2xvdCwgdHVwZGVzYywgTlVMTCwgNjQpOworCQkJZGVzYyA9IEV4ZWNCdWlsZFNsb3RW YWx1ZURlc2NyaXB0aW9uKGxvY2FscmVsLCBzZWFyY2hzbG90LCB0dXBkZXNjLCBOVUxMLCA2 NCk7CiAKIAkJaWYgKGRlc2MpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2V4ZWN1dG9yLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4 IGQ0NmJhNTk4OTVkLi42Y2M0YTk2MDQ2ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhl Y3V0b3IvZXhlY3V0b3IuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5o CkBAIC0yNjksNyArMjY5LDcgQEAgZXh0ZXJuIHZvaWQgRXhlY1BhcnRpdGlvbkNoZWNrRW1p dEVycm9yKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQkJCQkJCQkJVHVwbGVU YWJsZVNsb3QgKnNsb3QsIEVTdGF0ZSAqZXN0YXRlKTsKIGV4dGVybiB2b2lkIEV4ZWNXaXRo Q2hlY2tPcHRpb25zKFdDT0tpbmQga2luZCwgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5m bywKIAkJCQkJCQkJIFR1cGxlVGFibGVTbG90ICpzbG90LCBFU3RhdGUgKmVzdGF0ZSk7Ci1l eHRlcm4gY2hhciAqRXhlY0J1aWxkU2xvdFZhbHVlRGVzY3JpcHRpb24oT2lkIHJlbG9pZCwg VHVwbGVUYWJsZVNsb3QgKnNsb3QsCitleHRlcm4gY2hhciAqRXhlY0J1aWxkU2xvdFZhbHVl RGVzY3JpcHRpb24oUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAkJCQkJ CQkJCQkgICBUdXBsZURlc2MgdHVwZGVzYywKIAkJCQkJCQkJCQkgICBCaXRtYXBzZXQgKm1v ZGlmaWVkQ29scywKIAkJCQkJCQkJCQkgICBpbnQgbWF4ZmllbGRsZW4pOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dAppbmRleCA2 ZGFiNjBjOTM3Yi4uZjRlOTgyODY5MDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0CkBAIC02MzgsNyArNjM4LDcgQEAgQ1JF QVRFIFRBQkxFIGd0ZXN0MjAgKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChhICogMikgVklSVFUKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVF UyAoMTApOyAgLS0gb2sKIElOU0VSVCBJTlRPIGd0ZXN0MjAgKGEpIFZBTFVFUyAoMzApOyAg LS0gdmlvbGF0ZXMgY29uc3RyYWludAogRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAi Z3Rlc3QyMCIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZ3Rlc3QyMF9iX2NoZWNrIgot REVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDMwLCB2aXJ0dWFsKS4KK0RFVEFJTDog IEZhaWxpbmcgcm93IGNvbnRhaW5zICgzMCwgKDMwICogMikpLgogQUxURVIgVEFCTEUgZ3Rl c3QyMCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDEwMCk7ICAtLSB2 aW9sYXRlcyBjb25zdHJhaW50CiBFUlJPUjogIGNoZWNrIGNvbnN0cmFpbnQgImd0ZXN0MjBf Yl9jaGVjayIgb2YgcmVsYXRpb24gImd0ZXN0MjAiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93 CiBBTFRFUiBUQUJMRSBndGVzdDIwIEFMVEVSIENPTFVNTiBiIFNFVCBFWFBSRVNTSU9OIEFT IChhICogMyk7ICAtLSBvawpAQCAtNjg0LDE4ICs2ODQsMTggQEAgQUxURVIgVEFCTEUgZ3Rl c3QyMGMgQUREIENPTlNUUkFJTlQgd2hvbGVfcm93X2NoZWNrIENIRUNLIChndGVzdDIwYyBJ UyBOT1QgTlVMTCkKIElOU0VSVCBJTlRPIGd0ZXN0MjBjIFZBTFVFUyAoMSk7ICAtLSBvawog SU5TRVJUIElOVE8gZ3Rlc3QyMGMgVkFMVUVTIChOVUxMKTsgIC0tIGZhaWxzCiBFUlJPUjog IG5ldyByb3cgZm9yIHJlbGF0aW9uICJndGVzdDIwYyIgdmlvbGF0ZXMgY2hlY2sgY29uc3Ry YWludCAid2hvbGVfcm93X2NoZWNrIgotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMg KG51bGwsIHZpcnR1YWwpLgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51bGws IChOVUxMOjppbnRlZ2VyICogMikpLgogLS0gbm90LW51bGwgY29uc3RyYWludHMKIENSRUFU RSBUQUJMRSBndGVzdDIxYSAoYSBpbnQgUFJJTUFSWSBLRVksIGIgaW50IEdFTkVSQVRFRCBB TFdBWVMgQVMgKG51bGxpZihhLCAwKSkgVklSVFVBTCBOT1QgTlVMTCk7CiBJTlNFUlQgSU5U TyBndGVzdDIxYSAoYSkgVkFMVUVTICgxKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDIx YSAoYSkgVkFMVUVTICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9SOiAgbnVs bCB2YWx1ZSBpbiBjb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDIxYSIgdmlvbGF0ZXMg bm90LW51bGwgY29uc3RyYWludAotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAs IHZpcnR1YWwpLgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIE5VTExJRigw LCAwKSkuCiAtLSBhbHNvIGNoZWNrIHdpdGggdGFibGUgY29uc3RyYWludCBzeW50YXgKIENS RUFURSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFU RUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwsIENPTlNUUkFJTlQgY2MgTk9U IE5VTEwgYik7CiBJTlNFUlQgSU5UTyBndGVzdDIxYXggKGEpIFZBTFVFUyAoMCk7ICAtLSB2 aW9sYXRlcyBjb25zdHJhaW50CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBv ZiByZWxhdGlvbiAiZ3Rlc3QyMWF4IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1E RVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMCwgdmlydHVhbCkuCitERVRBSUw6ICBG YWlsaW5nIHJvdyBjb250YWlucyAoMCwgTlVMTElGKDAsIDApKS4KIElOU0VSVCBJTlRPIGd0 ZXN0MjFheCAoYSkgVkFMVUVTICgxKTsgIC0tb2sKIC0tIFNFVCBFWFBSRVNTSU9OIHN1cHBv cnRzIG5vdCBudWxsIGNvbnN0cmFpbnQKIEFMVEVSIFRBQkxFIGd0ZXN0MjFheCBBTFRFUiBD T0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAobnVsbGlmKGEsIDEpKTsgLS1lcnJvcgpAQCAt NzA1LDE3ICs3MDUsMTcgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjFheCAoYSBpbnQgUFJJTUFS WSBLRVksIGIgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKG51bGxpZihhLAogQUxURVIgVEFC TEUgZ3Rlc3QyMWF4IEFERCBDT05TVFJBSU5UIGNjIE5PVCBOVUxMIGI7CiBJTlNFUlQgSU5U TyBndGVzdDIxYXggKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiBF UlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMWF4 IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBj b250YWlucyAoMCwgdmlydHVhbCkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAo MCwgTlVMTElGKDAsIDApKS4KIERST1AgVEFCTEUgZ3Rlc3QyMWF4OwogQ1JFQVRFIFRBQkxF IGd0ZXN0MjFiIChhIGludCwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlmKGEs IDApKSBWSVJUVUFMKTsKIEFMVEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIFNF VCBOT1QgTlVMTDsKIElOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDEpOyAgLS0g b2sKIElOU0VSVCBJTlRPIGd0ZXN0MjFiIChhKSBWQUxVRVMgKDIpLCAoMCk7ICAtLSB2aW9s YXRlcyBjb25zdHJhaW50CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiBy ZWxhdGlvbiAiZ3Rlc3QyMWIiIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKLURFVEFJ TDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgwLCB2aXJ0dWFsKS4KK0RFVEFJTDogIEZhaWxp bmcgcm93IGNvbnRhaW5zICgwLCBOVUxMSUYoMCwgMCkpLgogSU5TRVJUIElOVE8gZ3Rlc3Qy MWIgKGEpIFZBTFVFUyAoTlVMTCk7ICAtLSBlcnJvcgogRVJST1I6ICBudWxsIHZhbHVlIGlu IGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFiIiB2aW9sYXRlcyBub3QtbnVsbCBj b25zdHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgdmlydHVh bCkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgTlVMTElGKE5VTEw6 OmludGVnZXIsIDApKS4KIEFMVEVSIFRBQkxFIGd0ZXN0MjFiIEFMVEVSIENPTFVNTiBiIERS T1AgTk9UIE5VTEw7CiBJTlNFUlQgSU5UTyBndGVzdDIxYiAoYSkgVkFMVUVTICgwKTsgIC0t IG9rIG5vdwogLS0gbm90LW51bGwgY29uc3RyYWludCB3aXRoIHBhcnRpdGlvbmVkIHRhYmxl CkBAIC03MzAsMTAgKzczMCwxMCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3Rubl9jaGlsZGRlZiBQ QVJUSVRJT04gT0YgZ3Rlc3Rubl9wYXJlbnQgZGVmYXVsdDsKIElOU0VSVCBJTlRPIGd0ZXN0 bm5fcGFyZW50IFZBTFVFUyAoMiwgMiwgZGVmYXVsdCksICgzLCA1LCBkZWZhdWx0KSwgKDE0 LCAxMiwgZGVmYXVsdCk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3Rubl9wYXJlbnQgVkFM VUVTICgxLCAyLCBkZWZhdWx0KTsgIC0tIGVycm9yCiBFUlJPUjogIG51bGwgdmFsdWUgaW4g Y29sdW1uICJmMyIgb2YgcmVsYXRpb24gImd0ZXN0bm5fY2hpbGQiIHZpb2xhdGVzIG5vdC1u dWxsIGNvbnN0cmFpbnQKLURFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgxLCAyLCB2 aXJ0dWFsKS4KK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgxLCAyLCAoTlVMTElG KDEsIDEpICsgTlVMTElGKCcyJzo6YmlnaW50LCAxMCkpKS4KIElOU0VSVCBJTlRPIGd0ZXN0 bm5fcGFyZW50IFZBTFVFUyAoMiwgMTAsIGRlZmF1bHQpOyAgLS0gZXJyb3IKIEVSUk9SOiAg bnVsbCB2YWx1ZSBpbiBjb2x1bW4gImYzIiBvZiByZWxhdGlvbiAiZ3Rlc3Rubl9jaGlsZCIg dmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAotREVUQUlMOiAgRmFpbGluZyByb3cgY29u dGFpbnMgKDIsIDEwLCB2aXJ0dWFsKS4KK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5z ICgyLCAxMCwgKE5VTExJRigyLCAxKSArIE5VTExJRignMTAnOjpiaWdpbnQsIDEwKSkpLgog QUxURVIgVEFCTEUgZ3Rlc3Rubl9wYXJlbnQgQUxURVIgQ09MVU1OIGYzIFNFVCBFWFBSRVNT SU9OIEFTIChudWxsaWYoZjEsIDIpICsgbnVsbGlmKGYyLCAxMSkpOyAgLS0gZXJyb3IKIEVS Uk9SOiAgY29sdW1uICJmMyIgb2YgcmVsYXRpb24gImd0ZXN0bm5fY2hpbGQiIGNvbnRhaW5z IG51bGwgdmFsdWVzCiBJTlNFUlQgSU5UTyBndGVzdG5uX3BhcmVudCBWQUxVRVMgKDEwLCAx MSwgZGVmYXVsdCk7ICAtLSBvawpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9w YXJ0aXRpb25fbWVyZ2Uub3V0CmluZGV4IDkyNWZlNGY1NzBhLi5hZTQwY2I5Y2ZjYiAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wYXJ0aXRpb25fbWVyZ2Uub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGFydGl0aW9uX21lcmdlLm91dApA QCAtMTA3Myw3ICsxMDczLDcgQEAgSU5TRVJUIElOVE8gdCBWQUxVRVMgKDE2KTsKIC0tIEVS Uk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRwXzEyIiB2aW9sYXRlcyBjaGVjayBjb25z dHJhaW50ICJ0X2lfY2hlY2siCiBJTlNFUlQgSU5UTyB0IFZBTFVFUyAoMCk7CiBFUlJPUjog IG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0cF8xMiIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWlu dCAidF9pX2NoZWNrIgotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIHZpcnR1 YWwpLgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsICgwICsgKHRhYmxlb2lk KTo6aW50ZWdlcikpLgogLS0gU2hvdWxkIGJlIDMgcm93czogKDUpLCAoMTUpLCAoMTYpOgog U0VMRUNUIGkgRlJPTSB0IE9SREVSIEJZIGk7CiAgaSAgCmRpZmYgLS1naXQgYS9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CmluZGV4IDFhODllZjk0YmVjLi5hNDUyMGRmZDUwMiAxMDA2NDQKLS0tIGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKQEAgLTI5NTYsNiArMjk1Niw3IEBAIFN1YnNjcmlwdGluZ1JlZlN0 YXRlCiBTdWJzY3JpcHRpb24KIFN1YnNjcmlwdGlvbkluZm8KIFN1YnNjcmlwdGlvblJlbFN0 YXRlCitzdWJzdGl0dXRlX2FjdHVhbF92YWx1ZXNfY29udGV4dAogU3VtbWFyaXplclJlYWRM b2NhbFhMb2dQcml2YXRlCiBTdXBwb3J0UmVxdWVzdENvc3QKIFN1cHBvcnRSZXF1ZXN0SW5k ZXhDb25kaXRpb24KLS0gCjIuNTIuMAoK --------------0G0mrN0fFejmdYW0JrTdttPy--