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.94.2) (envelope-from ) id 1v4IEL-00CN3K-Ks for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Oct 2025 12:16:18 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1v4IEJ-007XNn-K8 for pgsql-hackers@arkaria.postgresql.org; Thu, 02 Oct 2025 12:16:16 +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.94.2) (envelope-from ) id 1v4IEJ-007XNf-0t for pgsql-hackers@lists.postgresql.org; Thu, 02 Oct 2025 12:16:15 +0000 Received: from meldrar.postgresql.org ([2a02:c0:301:0:ffff::31]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1v4IEG-0001DV-2s for pgsql-hackers@lists.postgresql.org; Thu, 02 Oct 2025 12:16:15 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Content-Transfer-Encoding:Content-Type: Mime-Version:References:In-Reply-To:From:Subject:Cc:To:Message-Id:Date:Sender :Reply-To:Content-ID:Content-Description; bh=+S6SAlpZ4TYWMleN0U2GUw/qKZF2ptgWYQV6JMMleZY=; b=pLWhDrd2v8m9vCm9nDAfmVF7Dz l/ZcWEbg2/dIPZp0ymBsOru7fi18NT7ELdUIltnVcnZFQo+prwB8FCJ9+/z0FvQJM9gGDzHxTdIpn Bp7wKiriCzhK3p5Cs13NEVh5kpceH5B3ehcy1JKk4XA816lI4TbqdJsMpT40IF5fZA2Sxm/ZvGezv Drq9JsTn2+I7nqzwJUE+EaxfndnDnmoh59Lnk/y/aE3vSJgnzhAq2K9z/zHqrscKV6y2fxYPqmdEv UWY8s+/1E5JkU7MM9iC+YgrzfrRh0QxVWPdKC7R1mF4ZOtY6wSKQk9M5JIZe/5pyKEkr2yEQm25b5 uVmGjz4Q==; Received: from [2409:11:4120:300:f167:bd6:96ef:7f7c] (helo=localhost) by meldrar.postgresql.org with esmtpsa (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1v4IE7-0002G9-1v; Thu, 02 Oct 2025 12:16:07 +0000 Date: Thu, 02 Oct 2025 21:15:50 +0900 (JST) Message-Id: <20251002.211550.1475922457918078317.ishii@postgresql.org> To: ojford@gmail.com Cc: peter@eisentraut.org, li.evan.chao@gmail.com, krasiyan@gmail.com, tgl@sss.pgh.pa.us, vik@postgresfriends.org, andrew@tao11.riddles.org.uk, david@fetter.org, pgsql-hackers@lists.postgresql.org Subject: Re: Add RESPECT/IGNORE NULLS and FROM FIRST/LAST options From: Tatsuo Ishii In-Reply-To: <20250924.221842.203240336888394367.ishii@postgresql.org> References: <20250924.143900.990623141650309126.ishii@postgresql.org> <20250924.221842.203240336888394367.ishii@postgresql.org> X-Mailer: Mew version 6.8 on Emacs 29.3 Mime-Version: 1.0 Content-Type: Multipart/Mixed; boundary="--Next_Part(Thu_Oct__2_21_15_50_2025_460)--" Content-Transfer-Encoding: 7bit X-Host-Lookup-Failed: Reverse DNS lookup failed for 2409:11:4120:300:f167:bd6:96ef:7f7c (failed) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ----Next_Part(Thu_Oct__2_21_15_50_2025_460)-- Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit > Thank you for the patch. (I noticed int8 is also missing). > > I have looked into the commit 964d01ae90c3 which was made by Peter. I > have quick read through the discussion to know why uint8/uint16 (and > int8) are missing in gen_node_support.pl. Unfortunately I have no > clear idea why these data types are missing in the script. > > Peter, > Maybe you wanted to limit the data types that are actually used at > that point? If so, probably we should only add uint8 support this time > (uint8 is only needed to implement $Subject for now). What do you > think? I decided not to include the fix to gen_node_support.pl for now and commit the patch without it. We could revisit it later on. So here is the commit message I would like to propose. For the technical part please look at the message. Non technical part: First of all the author is Oliver (no doubt). I would like to be listed as a co-author since I wrote the not null cache part. Next is reviewers. Actually the first effor to implement null treatment clause was back to 9.3 era (2013) at least. After that multiple trials to implemnt the feature happend but they had faded away. I think we don't need to include all of those who joined the old discussions as reviewers. So I started to check from the discussion: https://postgr.es/m/flat/CAGMVOdsbtRwE_4+v8zjH1d9xfovDeQAGLkP_B6k69_VoFEgX-A@mail.gmail.com because it's refered to by the commit fest entry. Oliver and others, I love to hear your comment! BTW, Oliver's last patch made the CF bot to misunderstand the patch contents, which was not actually the main patch. So I attach the same patch as v20. ---------------------------------------------------------------------- Add IGNORE NULLS/RESPECT NULLS option to Window functions. Add IGNORE NULLS/RESPECT NULLS option (null treatment clause) to lead, lag, first_value, last_value and nth_value window functions. If unspecified, the default is RESPECT NULLS which includes NULL values in any result calculation. IGNORE NULLS ignores NULL values. Built-in window functions are modified to call new API WinCheckAndInitializeNullTreatment() to indicate whether they accept IGNORE NULLS/RESPECT NULLS option or not (the API can be called by user defined window functions as well). If WinGetFuncArgInPartition's allowNullTreatment argument is true and IGNORE NULLS option is given, WinGetFuncArgInPartition() or WinGetFuncArgInFrame() will return evaluated function's argument expression on specified non NULL row (if it exists) in the partition or the frame. When IGNORE NULLS option is given, window functions need to visit and evaluate same rows over and over again to look for non null rows. To mitigate the issue, 2-bit not null information array is created while executing window functions to remember whether the row has been already evaluated to NULL or NOT NULL. If already evaluated, we could skip some the evaluation work, thus we could get better performance. Author: Oliver Ford Co-authored-by: Tatsuo Ishii Reviewed-by: Andrew Gierth Reviewed-by: Tom Lane Reviewed-by: David Fetter Reviewed-by: Vik Fearing Reviewed-by: "David G. Johnston" Reviewed-by: Krasiyan Andreev Reviewed-by: Chao Li Discussion: https://postgr.es/m/flat/CAGMVOdsbtRwE_4+v8zjH1d9xfovDeQAGLkP_B6k69_VoFEgX-A@mail.gmail.com ---------------------------------------------------------------------- Best regards, -- Tatsuo Ishii SRA OSS K.K. English: http://www.sraoss.co.jp/index_en/ Japanese:http://www.sraoss.co.jp ----Next_Part(Thu_Oct__2_21_15_50_2025_460)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v20-0001-Modify-parse-analysis-modules-to-accept-RESPECT-.patch" RnJvbSBjYjk1NzVmOTIwZmFlODJlMmEwZTdiNDBmMjQzZmI2OTgwMDU0MjQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBUaHUsIDIgT2N0IDIwMjUgMjE6MDY6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIHYyMCAx LzZdIE1vZGlmeSBwYXJzZS9hbmFseXNpcyBtb2R1bGVzIHRvIGFjY2VwdAogUkVTUEVDVC9JR05P UkUgTlVMTFMgb3B0aW9uLgoKRm9sbG93aW5nIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGUgdG8gcGFy c2UvL2FuYWx5c2lzIG1vZHVsZXMuCgotIGFkZCBJR05PUkVfUCBSRVNQRUNUX1Aga2V5d29yZHMK Ci0gYWRkICJudWxsX3RyZWF0bWVudCIgdG8gZnVuY19leHByIGFmdGVyIGZpbHRlcl9jbGF1c2Ug YW5kIGJlZm9yZQogIG92ZXJfY2xhdXNlIGFzIHRoZSBTUUwgc3RhbmRhcmQgcmVxdXJpZXMuIG51 bGxfdHJlYXRtZW50IGlzIHJlc29sdmVkCiAgdG8gZWl0aGVyIFBBUlNFUl9JR05PUkVfTlVMTFMs IFBBUlNFUl9SRVNQRUNUX05VTExTIG9yCiAgTk9fTlVMTFRSRUFUTUVOVAoKLSBhZGQgImlnbm9y ZV9udWxscyIgdG8gV2luZG93RnVuYyBhbmQgRnVuY0NhbGwKLS0tCiBzcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55ICAgICAgIHwgMTkgKysrKysrKysrKysrKystLS0tLQogc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2Z1bmMuYyB8ICA5ICsrKysrKysrKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oICB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgfCAxMyArKysr KysrKysrKysrCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgIHwgIDIgKysKIDUgZmls ZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpp bmRleCBmMWRlZjY3YWM3Yy4uNTdiZjdhN2M3ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjMyLDcgKzYz Miw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bGlzdD4Jd2luZG93X2NsYXVz ZSB3aW5kb3dfZGVmaW5pdGlvbl9saXN0IG9wdF9wYXJ0aXRpb25fY2xhdXNlCiAldHlwZSA8d2lu ZGVmPgl3aW5kb3dfZGVmaW5pdGlvbiBvdmVyX2NsYXVzZSB3aW5kb3dfc3BlY2lmaWNhdGlvbgog CQkJCW9wdF9mcmFtZV9jbGF1c2UgZnJhbWVfZXh0ZW50IGZyYW1lX2JvdW5kCi0ldHlwZSA8aXZh bD4Jb3B0X3dpbmRvd19leGNsdXNpb25fY2xhdXNlCisldHlwZSA8aXZhbD4JbnVsbF90cmVhdG1l bnQgb3B0X3dpbmRvd19leGNsdXNpb25fY2xhdXNlCiAldHlwZSA8c3RyPgkJb3B0X2V4aXN0aW5n X3dpbmRvd19uYW1lCiAldHlwZSA8Ym9vbGVhbj4gb3B0X2lmX25vdF9leGlzdHMKICV0eXBlIDxi b29sZWFuPiBvcHRfdW5pcXVlX251bGxfdHJlYXRtZW50CkBAIC03MzAsNyArNzMwLDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogCUhBTkRMRVIgSEFWSU5HIEhFQURFUl9QIEhPTEQgSE9V Ul9QCiAKLQlJREVOVElUWV9QIElGX1AgSUxJS0UgSU1NRURJQVRFIElNTVVUQUJMRSBJTVBMSUNJ VF9QIElNUE9SVF9QIElOX1AgSU5DTFVERQorCUlERU5USVRZX1AgSUZfUCBJR05PUkVfUCBJTElL RSBJTU1FRElBVEUgSU1NVVRBQkxFIElNUExJQ0lUX1AgSU1QT1JUX1AgSU5fUCBJTkNMVURFCiAJ SU5DTFVESU5HIElOQ1JFTUVOVCBJTkRFTlQgSU5ERVggSU5ERVhFUyBJTkhFUklUIElOSEVSSVRT IElOSVRJQUxMWSBJTkxJTkVfUAogCUlOTkVSX1AgSU5PVVQgSU5QVVRfUCBJTlNFTlNJVElWRSBJ TlNFUlQgSU5TVEVBRCBJTlRfUCBJTlRFR0VSCiAJSU5URVJTRUNUIElOVEVSVkFMIElOVE8gSU5W T0tFUiBJUyBJU05VTEwgSVNPTEFUSU9OCkBAIC03NjUsNyArNzY1LDcgQEAgc3RhdGljIE5vZGUg Km1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5v ZGUgKnF1ZXJ5KTsKIAogCVJBTkdFIFJFQUQgUkVBTCBSRUFTU0lHTiBSRUNVUlNJVkUgUkVGX1Ag UkVGRVJFTkNFUyBSRUZFUkVOQ0lORwogCVJFRlJFU0ggUkVJTkRFWCBSRUxBVElWRV9QIFJFTEVB U0UgUkVOQU1FIFJFUEVBVEFCTEUgUkVQTEFDRSBSRVBMSUNBCi0JUkVTRVQgUkVTVEFSVCBSRVNU UklDVCBSRVRVUk4gUkVUVVJOSU5HIFJFVFVSTlMgUkVWT0tFIFJJR0hUIFJPTEUgUk9MTEJBQ0sg Uk9MTFVQCisJUkVTRVQgUkVTUEVDVF9QIFJFU1RBUlQgUkVTVFJJQ1QgUkVUVVJOIFJFVFVSTklO RyBSRVRVUk5TIFJFVk9LRSBSSUdIVCBST0xFIFJPTExCQUNLIFJPTExVUAogCVJPVVRJTkUgUk9V VElORVMgUk9XIFJPV1MgUlVMRQogCiAJU0FWRVBPSU5UIFNDQUxBUiBTQ0hFTUEgU0NIRU1BUyBT Q1JPTEwgU0VBUkNIIFNFQ09ORF9QIFNFQ1VSSVRZIFNFTEVDVApAQCAtMTU4MDUsNyArMTU4MDUs NyBAQCBmdW5jX2FwcGxpY2F0aW9uOiBmdW5jX25hbWUgJygnICcpJwogICogKE5vdGUgdGhhdCBt YW55IG9mIHRoZSBzcGVjaWFsIFNRTCBmdW5jdGlvbnMgd291bGRuJ3QgYWN0dWFsbHkgbWFrZSBh bnkKICAqIHNlbnNlIGFzIGZ1bmN0aW9uYWwgaW5kZXggZW50cmllcywgYnV0IHdlIGlnbm9yZSB0 aGF0IGNvbnNpZGVyYXRpb24gaGVyZS4pCiAgKi8KLWZ1bmNfZXhwcjogZnVuY19hcHBsaWNhdGlv biB3aXRoaW5fZ3JvdXBfY2xhdXNlIGZpbHRlcl9jbGF1c2Ugb3Zlcl9jbGF1c2UKK2Z1bmNfZXhw cjogZnVuY19hcHBsaWNhdGlvbiB3aXRoaW5fZ3JvdXBfY2xhdXNlIGZpbHRlcl9jbGF1c2UgbnVs bF90cmVhdG1lbnQgb3Zlcl9jbGF1c2UKIAkJCQl7CiAJCQkJCUZ1bmNDYWxsICAgKm4gPSAoRnVu Y0NhbGwgKikgJDE7CiAKQEAgLTE1ODM4LDcgKzE1ODM4LDggQEAgZnVuY19leHByOiBmdW5jX2Fw cGxpY2F0aW9uIHdpdGhpbl9ncm91cF9jbGF1c2UgZmlsdGVyX2NsYXVzZSBvdmVyX2NsYXVzZQog CQkJCQkJbi0+YWdnX3dpdGhpbl9ncm91cCA9IHRydWU7CiAJCQkJCX0KIAkJCQkJbi0+YWdnX2Zp bHRlciA9ICQzOwotCQkJCQluLT5vdmVyID0gJDQ7CisJCQkJCW4tPmlnbm9yZV9udWxscyA9ICQ0 OworCQkJCQluLT5vdmVyID0gJDU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJCQl8 IGpzb25fYWdncmVnYXRlX2Z1bmMgZmlsdGVyX2NsYXVzZSBvdmVyX2NsYXVzZQpAQCAtMTY0MzQs NiArMTY0MzUsMTIgQEAgZmlsdGVyX2NsYXVzZToKIC8qCiAgKiBXaW5kb3cgRGVmaW5pdGlvbnMK ICAqLworbnVsbF90cmVhdG1lbnQ6CisJCQlJR05PUkVfUCBOVUxMU19QCQkJCQkJeyAkJCA9IFBB UlNFUl9JR05PUkVfTlVMTFM7IH0KKwkJCXwgUkVTUEVDVF9QIE5VTExTX1AJCQkJCQl7ICQkID0g UEFSU0VSX1JFU1BFQ1RfTlVMTFM7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTk9f TlVMTFRSRUFUTUVOVDsgfQorCQk7CisKIHdpbmRvd19jbGF1c2U6CiAJCQlXSU5ET1cgd2luZG93 X2RlZmluaXRpb25fbGlzdAkJCXsgJCQgPSAkMjsgfQogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsg JCQgPSBOSUw7IH0KQEAgLTE3ODYxLDYgKzE3ODY4LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgog CQkJfCBIT1VSX1AKIAkJCXwgSURFTlRJVFlfUAogCQkJfCBJRl9QCisJCQl8IElHTk9SRV9QCiAJ CQl8IElNTUVESUFURQogCQkJfCBJTU1VVEFCTEUKIAkJCXwgSU1QTElDSVRfUApAQCAtMTc5Nzks NiArMTc5ODcsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFJFUExBQ0UKIAkJCXwgUkVQ TElDQQogCQkJfCBSRVNFVAorCQkJfCBSRVNQRUNUX1AKIAkJCXwgUkVTVEFSVAogCQkJfCBSRVNU UklDVAogCQkJfCBSRVRVUk4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IGM0MzAyMGE3Njlk Li43NzhkNjljNmYzYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0xMDAsNiArMTAwLDcg QEAgUGFyc2VGdW5jT3JDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpmdW5jbmFtZSwg TGlzdCAqZmFyZ3MsCiAJYm9vbAkJYWdnX3N0YXIgPSAoZm4gPyBmbi0+YWdnX3N0YXIgOiBmYWxz ZSk7CiAJYm9vbAkJYWdnX2Rpc3RpbmN0ID0gKGZuID8gZm4tPmFnZ19kaXN0aW5jdCA6IGZhbHNl KTsKIAlib29sCQlmdW5jX3ZhcmlhZGljID0gKGZuID8gZm4tPmZ1bmNfdmFyaWFkaWMgOiBmYWxz ZSk7CisJaW50CQkJaWdub3JlX251bGxzID0gKGZuID8gZm4tPmlnbm9yZV9udWxscyA6IE5PX05V TExUUkVBVE1FTlQpOwogCUNvZXJjaW9uRm9ybSBmdW5jZm9ybWF0ID0gKGZuID8gZm4tPmZ1bmNm b3JtYXQgOiBDT0VSQ0VfRVhQTElDSVRfQ0FMTCk7CiAJYm9vbAkJY291bGRfYmVfcHJvamVjdGlv bjsKIAlPaWQJCQlyZXR0eXBlOwpAQCAtNTE4LDYgKzUxOSwxMyBAQCBQYXJzZUZ1bmNPckNvbHVt bihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkJCQkJ CSBlcnJtc2coIiVzIGlzIG5vdCBhbiBvcmRlcmVkLXNldCBhZ2dyZWdhdGUsIHNvIGl0IGNhbm5v dCBoYXZlIFdJVEhJTiBHUk9VUCIsCiAJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoZnVuY25hbWUp KSwKIAkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKworCQkJ LyogSXQgYWxzbyBjYW4ndCB0cmVhdCBudWxscyBhcyBhIHdpbmRvdyBmdW5jdGlvbiAqLworCQkJ aWYgKGlnbm9yZV9udWxscyAhPSBOT19OVUxMVFJFQVRNRU5UKQorCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKKwkJCQkJCSBlcnJt c2coImFnZ3JlZ2F0ZSBmdW5jdGlvbnMgZG8gbm90IGFjY2VwdCBSRVNQRUNUL0lHTk9SRSBOVUxM UyIpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwogCQl9 CiAJfQogCWVsc2UgaWYgKGZkcmVzdWx0ID09IEZVTkNERVRBSUxfV0lORE9XRlVOQykKQEAgLTg0 MCw2ICs4NDgsNyBAQCBQYXJzZUZ1bmNPckNvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg KmZ1bmNuYW1lLCBMaXN0ICpmYXJncywKIAkJd2Z1bmMtPndpbnN0YXIgPSBhZ2dfc3RhcjsKIAkJ d2Z1bmMtPndpbmFnZyA9IChmZHJlc3VsdCA9PSBGVU5DREVUQUlMX0FHR1JFR0FURSk7CiAJCXdm dW5jLT5hZ2dmaWx0ZXIgPSBhZ2dfZmlsdGVyOworCQl3ZnVuYy0+aWdub3JlX251bGxzID0gaWdu b3JlX251bGxzOwogCQl3ZnVuYy0+cnVuQ29uZGl0aW9uID0gTklMOwogCQl3ZnVuYy0+bG9jYXRp b24gPSBsb2NhdGlvbjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGFjMGUwMmExZGI3Li44 N2MxMDg2ZWM5OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDUzLDYgKzQ1Myw3IEBAIHR5 cGVkZWYgc3RydWN0IEZ1bmNDYWxsCiAJTGlzdAkgICAqYWdnX29yZGVyOwkJLyogT1JERVIgQlkg KGxpc3Qgb2YgU29ydEJ5KSAqLwogCU5vZGUJICAgKmFnZ19maWx0ZXI7CQkvKiBGSUxURVIgY2xh dXNlLCBpZiBhbnkgKi8KIAlzdHJ1Y3QgV2luZG93RGVmICpvdmVyOwkJLyogT1ZFUiBjbGF1c2Us IGlmIGFueSAqLworCWludAkJCWlnbm9yZV9udWxsczsJLyogaWdub3JlIG51bGxzIGZvciB3aW5k b3cgZnVuY3Rpb24gKi8KIAlib29sCQlhZ2dfd2l0aGluX2dyb3VwOwkvKiBPUkRFUiBCWSBhcHBl YXJlZCBpbiBXSVRISU4gR1JPVVAgKi8KIAlib29sCQlhZ2dfc3RhcjsJCS8qIGFyZ3VtZW50IHdh cyByZWFsbHkgJyonICovCiAJYm9vbAkJYWdnX2Rpc3RpbmN0OwkvKiBhcmd1bWVudHMgd2VyZSBs YWJlbGVkIERJU1RJTkNUICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDZkZmNhM2NiMzViLi5l OWQ4YmY3NDE0NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysr IGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTU3OSw2ICs1NzksMTcgQEAgdHlw ZWRlZiBzdHJ1Y3QgR3JvdXBpbmdGdW5jCiAgKiBDb2xsYXRpb24gaW5mb3JtYXRpb24gaXMgaXJy ZWxldmFudCBmb3IgdGhlIHF1ZXJ5IGp1bWJsaW5nLCBhcyBpcyB0aGUKICAqIGludGVybmFsIHN0 YXRlIGluZm9ybWF0aW9uIG9mIHRoZSBub2RlIGxpa2UgIndpbnN0YXIiIGFuZCAid2luYWdnIi4K ICAqLworCisvKgorICogTnVsbCBUcmVhdG1lbnQgb3B0aW9ucy4gSWYgc3BlY2lmaWVkLCBpbml0 aWFsbHkgc2V0IHRvIFBBUlNFUl9JR05PUkVfTlVMTFMKKyAqIHdoaWNoIGlzIHRoZW4gY29udmVy dGVkIHRvIElHTk9SRV9OVUxMUyBpZiB0aGUgd2luZG93IGZ1bmN0aW9uIGFsbG93cyB0aGUKKyAq IG51bGwgdHJlYXRtZW50IGNsYXVzZS4KKyAqLworI2RlZmluZSBOT19OVUxMVFJFQVRNRU5UIDAK KyNkZWZpbmUgUEFSU0VSX0lHTk9SRV9OVUxMUyAxCisjZGVmaW5lIFBBUlNFUl9SRVNQRUNUX05V TExTIDIKKyNkZWZpbmUgSUdOT1JFX05VTExTIDMKKwogdHlwZWRlZiBzdHJ1Y3QgV2luZG93RnVu YwogewogCUV4cHIJCXhwcjsKQEAgLTYwMiw2ICs2MTMsOCBAQCB0eXBlZGVmIHN0cnVjdCBXaW5k b3dGdW5jCiAJYm9vbAkJd2luc3RhciBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7 CiAJLyogaXMgZnVuY3Rpb24gYSBzaW1wbGUgYWdncmVnYXRlPyAqLwogCWJvb2wJCXdpbmFnZyBw Z19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyogaWdub3JlIG51bGxzLiBPbmUg b2YgdGhlIE51bGwgVHJlYXRtZW50IG9wdGlvbnMgKi8KKwlpbnQJCQlpZ25vcmVfbnVsbHM7CiAJ LyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlv bjsKIH0gV2luZG93RnVuYzsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBhNGFmM2Y3MTdhMS4uODQxODJl YWFhZTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTIwMiw2ICsyMDIsNyBAQCBQR19LRVlXT1JEKCJo b2xkIiwgSE9MRCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi aG91ciIsIEhPVVJfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQo ImlkZW50aXR5IiwgSURFTlRJVFlfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgiaWYiLCBJRl9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQ R19LRVlXT1JEKCJpZ25vcmUiLCBJR05PUkVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBBU19MQUJF TCkKIFBHX0tFWVdPUkQoImlsaWtlIiwgSUxJS0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJpbW1lZGlhdGUiLCBJTU1FRElBVEUsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImltbXV0YWJsZSIsIElNTVVUQUJMRSwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpAQCAtMzc4LDYgKzM3OSw3IEBAIFBHX0tF WVdPUkQoInJlcGVhdGFibGUiLCBSRVBFQVRBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJyZXBsYWNlIiwgUkVQTEFDRSwgVU5SRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicmVwbGljYSIsIFJFUExJQ0EsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJlc2V0IiwgUkVTRVQsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInJlc3BlY3QiLCBSRVNQRUNUX1As IFVOUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJyZXN0YXJ0IiwgUkVT VEFSVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicmVzdHJp Y3QiLCBSRVNUUklDVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgicmV0dXJuIiwgUkVUVVJOLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCi0tIAoy LjQzLjAKCg== ----Next_Part(Thu_Oct__2_21_15_50_2025_460)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v20-0002-Modify-get_windowfunc_expr_helper-to-handle-IGNO.patch" RnJvbSA1ZTZjN2I5MzA2MjExMzg0OTMzYjZjMjJhZjgxNmMwMmNhOWM1NTA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBUaHUsIDIgT2N0IDIwMjUgMjE6MDY6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIHYyMCAy LzZdIE1vZGlmeSBnZXRfd2luZG93ZnVuY19leHByX2hlbHBlciB0byBoYW5kbGUgSUdOT1JFCiBO VUxMUyBvcHRpb24uCgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyB8IDcg KysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCBjNmQ4M2Q2N2I4Ny4uMjE2NjNhZjY5Nzkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTExMDkxLDcgKzExMDkxLDEyIEBAIGdl dF93aW5kb3dmdW5jX2V4cHJfaGVscGVyKFdpbmRvd0Z1bmMgKndmdW5jLCBkZXBhcnNlX2NvbnRl eHQgKmNvbnRleHQsCiAJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgd2Z1bmMtPmFnZ2ZpbHRlciwg Y29udGV4dCwgZmFsc2UpOwogCX0KIAotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiKSBP VkVSICIpOworCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiKSAiKTsKKworCWlmICh3ZnVu Yy0+aWdub3JlX251bGxzID09IFBBUlNFUl9JR05PUkVfTlVMTFMpCisJCWFwcGVuZFN0cmluZ0lu Zm9TdHJpbmcoYnVmLCAiSUdOT1JFIE5VTExTICIpOworCisJYXBwZW5kU3RyaW5nSW5mb1N0cmlu ZyhidWYsICJPVkVSICIpOwogCiAJaWYgKGNvbnRleHQtPndpbmRvd0NsYXVzZSkKIAl7Ci0tIAoy LjQzLjAKCg== ----Next_Part(Thu_Oct__2_21_15_50_2025_460)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v20-0003-Modify-eval_const_expressions_mutator-to-handle-.patch" RnJvbSAxZWNjZTY2NGI3MTRmNGEwM2M1Nzk5MGIxYmU2YTcyZGQ2ZjI2MTAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBUaHUsIDIgT2N0IDIwMjUgMjE6MDY6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIHYyMCAz LzZdIE1vZGlmeSBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IgdG8gaGFuZGxlCiBJR05P UkUgTlVMTFMgb3B0aW9uLgoKLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2Vz LmMgfCAxICsKIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCBmNDliZGU3NTk1Yi4uODFkNzY4ZmYyYTIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI1NzgsNiArMjU3OCw3IEBAIGV2YWxfY29u c3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2RlLAogCQkJCW5ld2V4cHItPndpbnJlZiA9 IGV4cHItPndpbnJlZjsKIAkJCQluZXdleHByLT53aW5zdGFyID0gZXhwci0+d2luc3RhcjsKIAkJ CQluZXdleHByLT53aW5hZ2cgPSBleHByLT53aW5hZ2c7CisJCQkJbmV3ZXhwci0+aWdub3JlX251 bGxzID0gZXhwci0+aWdub3JlX251bGxzOwogCQkJCW5ld2V4cHItPmxvY2F0aW9uID0gZXhwci0+ bG9jYXRpb247CiAKIAkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhwcjsKLS0gCjIuNDMuMAoK ----Next_Part(Thu_Oct__2_21_15_50_2025_460)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v20-0004-Modify-executor-and-window-functions-to-handle-I.patch" RnJvbSBjYjA4MDViODNkNjEyZDg0NWEwODNkNzUwOTRjZGRkMjI0NjRlM2RjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBUaHUsIDIgT2N0IDIwMjUgMjE6MDY6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIHYyMCA0 LzZdIE1vZGlmeSBleGVjdXRvciBhbmQgd2luZG93IGZ1bmN0aW9ucyB0byBoYW5kbGUgSUdOT1JF CiBOVUxMUy4KCkZvbGxvd2luZyBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRlIHRvIGV4ZWN1dG9yIGFu ZCB3aW5kb3cgZnVuY3Rpb25zCm1vZHVsZXMuCgotIE5ldyB3aW5kb3cgZnVuY3Rpb24gQVBJIFdp bkNoZWNrQW5kSW5pdGlhbGl6ZU51bGxUcmVhdG1lbnQoKSBpcwogIGFkZGVkLiBXaW5kb3cgZnVu Y3Rpb25zIHNob3VsZCBjYWxsIHRoaXMgdG8gZXhwcmVzcyBpZiB0aGV5IGFjY2VwdCBhCiAgbnVs bCB0cmVhdG1lbnQgY2xhdXNlIG9yIG5vdC4gIElmIHRoZXkgZG8gbm90LCBhbiBlcnJvciBpcyBy YWlzZWQgaW4KICB0aGlzIGZ1bmN0aW9uLiBCdWlsdC1pbiB3aW5kb3cgZnVuY3Rpb25zIGFyZSBt b2RpZmllZCB0byBjYWxsIGl0LgoKLSBXaW5HZXRGdW5jQXJnSW5QYXJ0aXRpb24gaXMgbW9kaWZp ZWQgdG8gaGFuZGxlIElHTk9SRSBOVUxMUy4KCi0gV2luR2V0RnVuY0FyZ0luRnJhbWUgaXMgbW9k aWZpZWQgdG8gaGFuZGxlIElHTk9SRSBOVUxMUy4gVGhlIGFjdHVhbAogIHdvcmtob3JzZSBmb3Ig dGhpcyBpcyBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZS4KCi0gV2hpbGUgc2VhcmNoaW5n IG5vdCBudWxsIHJvd3MsIHRvIG5vdCBzY2FuIHR1cGxlcyBvdmVyIGFuZCBvdmVyCiAgYWdhaW4s ICJub3RudWxsX2luZm8iIGNhY2hlIG1vZHVsZSBhZGRlZC4gVGhpcyBob2xkcyAyLWJpdCBpbmZv IGZvcgogIGVhY2ggdHVwbGUsIHRvIGtlZXAgd2hldGhlciB0aGUgdHVwbGUgaGFzIGFscmVhZHkg YmVlbiBjaGVja2VkIGlmIGl0CiAgaXMgbm90IHlldCBjaGVja2VkLCBudWxsIG9yIG5vdCBudWxs LiBUaGUgbm90bnVsbF9pbmZvIGlzIGFkZGVkIHRvCiAgV2luZG93T2JqZWN0RGF0YS4KLS0tCiBz cmMvYmFja2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMgfCA0NjcgKysrKysrKysrKysrKysr KysrKysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvd2luZG93ZnVuY3MuYyAgfCAgMTAg Kwogc3JjL2luY2x1ZGUvd2luZG93YXBpLmggICAgICAgICAgICAgIHwgICA2ICsKIDMgZmlsZXMg Y2hhbmdlZCwgNDQ4IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL25vZGVXaW5kb3dBZ2cuYwppbmRleCA5YTFhY2NlMmI1ZC4uYjQ1OWM5ODA4MDMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVXaW5kb3dBZ2cuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlV2luZG93QWdnLmMKQEAgLTY5LDYgKzY5LDE0IEBAIHR5cGVkZWYg c3RydWN0IFdpbmRvd09iamVjdERhdGEKIAlpbnQJCQlyZWFkcHRyOwkJLyogdHVwbGVzdG9yZSBy ZWFkIHBvaW50ZXIgZm9yIHRoaXMgZm4gKi8KIAlpbnQ2NAkJbWFya3BvczsJCS8qIHJvdyB0aGF0 IG1hcmtwdHIgaXMgcG9zaXRpb25lZCBvbiAqLwogCWludDY0CQlzZWVrcG9zOwkJLyogcm93IHRo YXQgcmVhZHB0ciBpcyBwb3NpdGlvbmVkIG9uICovCisJdWludDgJICAgKm5vdG51bGxfaW5mbzsJ Lyogbm90IG51bGwgaW5mbyAqLworCWludAkJCW51bV9ub3RudWxsX2luZm87CS8qIHRyYWNrIHNp emUgb2YgdGhlIG5vdG51bGxfaW5mbyBhcnJheSAqLworCisJLyoKKwkgKiBOdWxsIHRyZWF0bWVu dCBvcHRpb25zLiBPbmUgb2Y6IE5PX05VTExUUkVBVE1FTlQsIFBBUlNFUl9JR05PUkVfTlVMTFMs CisJICogUEFSU0VSX1JFU1BFQ1RfTlVMTFMgb3IgSUdOT1JFX05VTExTLgorCSAqLworCWludAkJ CWlnbm9yZV9udWxsczsKIH0gV2luZG93T2JqZWN0RGF0YTsKIAogLyoKQEAgLTk2LDYgKzEwNCw3 IEBAIHR5cGVkZWYgc3RydWN0IFdpbmRvd1N0YXRlUGVyRnVuY0RhdGEKIAogCWJvb2wJCXBsYWlu X2FnZzsJCS8qIGlzIGl0IGp1c3QgYSBwbGFpbiBhZ2dyZWdhdGUgZnVuY3Rpb24/ICovCiAJaW50 CQkJYWdnbm87CQkJLyogaWYgc28sIGluZGV4IG9mIGl0cyBXaW5kb3dTdGF0ZVBlckFnZ0RhdGEg Ki8KKwl1aW50OAkJaWdub3JlX251bGxzOwkvKiBpZ25vcmUgbnVsbHMgKi8KIAogCVdpbmRvd09i amVjdCB3aW5vYmo7CQkvKiBvYmplY3QgdXNlZCBpbiB3aW5kb3cgZnVuY3Rpb24gQVBJICovCiB9 CQkJV2luZG93U3RhdGVQZXJGdW5jRGF0YTsKQEAgLTE4Miw4ICsxOTEsOCBAQCBzdGF0aWMgdm9p ZCBiZWdpbl9wYXJ0aXRpb24oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKTsKIHN0YXRpYyB2b2lk IHNwb29sX3R1cGxlcyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0IHBvcyk7CiBzdGF0 aWMgdm9pZCByZWxlYXNlX3BhcnRpdGlvbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwogCi1z dGF0aWMgaW50CXJvd19pc19pbl9mcmFtZShXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUsIGludDY0 IHBvcywKLQkJCQkJCQlUdXBsZVRhYmxlU2xvdCAqc2xvdCk7CitzdGF0aWMgaW50CXJvd19pc19p bl9mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MsCisJCQkJCQkJVHVwbGVUYWJs ZVNsb3QgKnNsb3QsIGJvb2wgZmV0Y2hfdHVwbGUpOwogc3RhdGljIHZvaWQgdXBkYXRlX2ZyYW1l aGVhZHBvcyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwogc3RhdGljIHZvaWQgdXBkYXRlX2Zy YW1ldGFpbHBvcyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwogc3RhdGljIHZvaWQgdXBkYXRl X2dyb3VwdGFpbHBvcyhXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpOwpAQCAtMTk4LDYgKzIwNywz NCBAQCBzdGF0aWMgYm9vbCBhcmVfcGVlcnMoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBUdXBs ZVRhYmxlU2xvdCAqc2xvdDEsCiBzdGF0aWMgYm9vbCB3aW5kb3dfZ2V0dHVwbGVzbG90KFdpbmRv d09iamVjdCB3aW5vYmosIGludDY0IHBvcywKIAkJCQkJCQkJVHVwbGVUYWJsZVNsb3QgKnNsb3Qp OwogCitzdGF0aWMgRGF0dW0gaWdub3JlbnVsbHNfZ2V0ZnVuY2FyZ2luZnJhbWUoV2luZG93T2Jq ZWN0IHdpbm9iaiwgaW50IGFyZ25vLAorCQkJCQkJCQkJCSAgIGludCByZWxwb3MsIGludCBzZWVr dHlwZSwKKwkJCQkJCQkJCQkgICBib29sIHNldF9tYXJrLCBib29sICppc251bGwsCisJCQkJCQkJ CQkJICAgYm9vbCAqaXNvdXQpOworc3RhdGljIERhdHVtIGdldHR1cGxlX2V2YWxfcGFydGl0aW9u KFdpbmRvd09iamVjdCB3aW5vYmosIGludCBhcmdubywKKwkJCQkJCQkJCSBpbnQ2NCBhYnNfcG9z LCBib29sICppc251bGwsCisJCQkJCQkJCQkgYm9vbCAqaXNvdXQpOworc3RhdGljIHZvaWQgaW5p dF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaik7CitzdGF0aWMgdm9pZCBncm93X25v dG51bGxfaW5mbyhXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQ2NCBwb3MpOworc3RhdGljIHVpbnQ4 IGdldF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zKTsKK3N0YXRp YyB2b2lkIHB1dF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBi b29sIGlzbnVsbCk7CisKKy8qCisgKiBOb3QgbnVsbCBpbmZvIGJpdCBhcnJheSBjb25zaXN0cyBv ZiAyLWJpdCBpdGVtcworICovCisjZGVmaW5lCU5OX1VOS05PV04JMHgwMAkJLyogdmFsdWUgbm90 IGNhbGN1bGF0ZWQgeWV0ICovCisjZGVmaW5lCU5OX05VTEwJCTB4MDEJCS8qIE5VTEwgKi8KKyNk ZWZpbmUJTk5fTk9UTlVMTAkweDAyCQkvKiBOT1QgTlVMTCAqLworI2RlZmluZQlOTl9NQVNLCQkw eDAzCQkvKiBtYXNrIGZvciBOT1QgTlVMTCBNQVAgKi8KKyNkZWZpbmUgTk5fQklUU19QRVJfTUVN QkVSCTIJLyogbnVtYmVyIG9mIGJpdCBpbiBub3QgbnVsbCBtYXAgKi8KKy8qIG51bWJlciBvZiBp dGVtcyBwZXIgdmFyaWFibGUgKi8KKyNkZWZpbmUgTk5fSVRFTV9QRVJfVkFSCShCSVRTX1BFUl9C WVRFIC8gTk5fQklUU19QRVJfTUVNQkVSKQorLyogY29udmVydCBtYXAgcG9zaXRpb24gdG8gYnl0 ZSBvZmZzZXQgKi8KKyNkZWZpbmUgTk5fUE9TX1RPX0JZVEVTKHBvcykJKChwb3MpIC8gTk5fSVRF TV9QRVJfVkFSKQorLyogYnl0ZXMgb2Zmc2V0IHRvIG1hcCBwb3NpdGlvbiAqLworI2RlZmluZSBO Tl9CWVRFU19UT19QT1MoYnl0ZXMpCSgoYnl0ZXMpICogTk5fSVRFTV9QRVJfVkFSKQorLyogY2Fj dWxhdGUgc2hpZnQgYml0cyAqLworI2RlZmluZQlOTl9TSElGVChwb3MpCSgocG9zKSAlIE5OX0lU RU1fUEVSX1ZBUikgKiBOTl9CSVRTX1BFUl9NRU1CRVIKIAogLyoKICAqIGluaXRpYWxpemVfd2lu ZG93YWdncmVnYXRlCkBAIC05NDIsNyArOTc5LDggQEAgZXZhbF93aW5kb3dhZ2dyZWdhdGVzKFdp bmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAkJICogRXhpdCBsb29wIGlmIG5vIG1vcmUgcm93cyBj YW4gYmUgaW4gZnJhbWUuICBTa2lwIGFnZ3JlZ2F0aW9uIGlmCiAJCSAqIGN1cnJlbnQgcm93IGlz IG5vdCBpbiBmcmFtZSBidXQgdGhlcmUgbWlnaHQgYmUgbW9yZSBpbiB0aGUgZnJhbWUuCiAJCSAq LwotCQlyZXQgPSByb3dfaXNfaW5fZnJhbWUod2luc3RhdGUsIHdpbnN0YXRlLT5hZ2dyZWdhdGVk dXB0bywgYWdnX3Jvd19zbG90KTsKKwkJcmV0ID0gcm93X2lzX2luX2ZyYW1lKGFnZ193aW5vYmos IHdpbnN0YXRlLT5hZ2dyZWdhdGVkdXB0bywKKwkJCQkJCQkgIGFnZ19yb3dfc2xvdCwgZmFsc2Up OwogCQlpZiAocmV0IDwgMCkKIAkJCWJyZWFrOwogCQlpZiAocmV0ID09IDApCkBAIC0xMjYzLDYg KzEzMDEsMTIgQEAgYmVnaW5fcGFydGl0aW9uKFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSkKIAog CQkJd2lub2JqLT5tYXJrcG9zID0gLTE7CiAJCQl3aW5vYmotPnNlZWtwb3MgPSAtMTsKKworCQkJ LyogcmVzZXQgbnVsbCBtYXAgKi8KKwkJCWlmICh3aW5vYmotPmlnbm9yZV9udWxscyA9PSBJR05P UkVfTlVMTFMpCisJCQkJbWVtc2V0KHdpbm9iai0+bm90bnVsbF9pbmZvLCAwLAorCQkJCQkgICBO Tl9QT1NfVE9fQllURVMoCisJCQkJCQkJCQkgICBwZXJmdW5jc3RhdGUtPndpbm9iai0+bnVtX25v dG51bGxfaW5mbykpOwogCQl9CiAJfQogCkBAIC0xNDEyLDggKzE0NTYsOCBAQCByZWxlYXNlX3Bh cnRpdGlvbihXaW5kb3dBZ2dTdGF0ZSAqd2luc3RhdGUpCiAgKiB0byBvdXIgd2luZG93IGZyYW1p bmcgcnVsZQogICoKICAqIFRoZSBjYWxsZXIgbXVzdCBoYXZlIGFscmVhZHkgZGV0ZXJtaW5lZCB0 aGF0IHRoZSByb3cgaXMgaW4gdGhlIHBhcnRpdGlvbgotICogYW5kIGZldGNoZWQgaXQgaW50byBh IHNsb3QuICBUaGlzIGZ1bmN0aW9uIGp1c3QgZW5jYXBzdWxhdGVzIHRoZSBmcmFtaW5nCi0gKiBy dWxlcy4KKyAqIGFuZCBmZXRjaGVkIGl0IGludG8gYSBzbG90IGlmIGZldGNoX3R1cGxlIGlzIGZh bHNlLgorLiogVGhpcyBmdW5jdGlvbiBqdXN0IGVuY2Fwc3VsYXRlcyB0aGUgZnJhbWluZyBydWxl cy4KICAqCiAgKiBSZXR1cm5zOgogICogLTEsIGlmIHRoZSByb3cgaXMgb3V0IG9mIGZyYW1lIGFu ZCBubyBzdWNjZWVkaW5nIHJvd3MgY2FuIGJlIGluIGZyYW1lCkBAIC0xNDIzLDggKzE0NjcsMTAg QEAgcmVsZWFzZV9wYXJ0aXRpb24oV2luZG93QWdnU3RhdGUgKndpbnN0YXRlKQogICogTWF5IGNs b2JiZXIgd2luc3RhdGUtPnRlbXBfc2xvdF8yLgogICovCiBzdGF0aWMgaW50Ci1yb3dfaXNfaW5f ZnJhbWUoV2luZG93QWdnU3RhdGUgKndpbnN0YXRlLCBpbnQ2NCBwb3MsIFR1cGxlVGFibGVTbG90 ICpzbG90KQorcm93X2lzX2luX2ZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmosIGludDY0IHBvcywg VHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJCQkJYm9vbCBmZXRjaF90dXBsZSkKIHsKKwlXaW5kb3dB Z2dTdGF0ZSAqd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRlOwogCWludAkJCWZyYW1lT3B0aW9u cyA9IHdpbnN0YXRlLT5mcmFtZU9wdGlvbnM7CiAKIAlBc3NlcnQocG9zID49IDApOwkJCS8qIGVs c2UgY2FsbGVyIGVycm9yICovCkBAIC0xNDUzLDkgKzE0OTksMTMgQEAgcm93X2lzX2luX2ZyYW1l KFdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZSwgaW50NjQgcG9zLCBUdXBsZVRhYmxlU2xvdCAqc2xv dCkKIAkJZWxzZSBpZiAoZnJhbWVPcHRpb25zICYgKEZSQU1FT1BUSU9OX1JBTkdFIHwgRlJBTUVP UFRJT05fR1JPVVBTKSkKIAkJewogCQkJLyogZm9sbG93aW5nIHJvdyB0aGF0IGlzIG5vdCBwZWVy IGlzIG91dCBvZiBmcmFtZSAqLwotCQkJaWYgKHBvcyA+IHdpbnN0YXRlLT5jdXJyZW50cG9zICYm Ci0JCQkJIWFyZV9wZWVycyh3aW5zdGF0ZSwgc2xvdCwgd2luc3RhdGUtPnNzLnNzX1NjYW5UdXBs ZVNsb3QpKQotCQkJCXJldHVybiAtMTsKKwkJCWlmIChwb3MgPiB3aW5zdGF0ZS0+Y3VycmVudHBv cykKKwkJCXsKKwkJCQlpZiAoZmV0Y2hfdHVwbGUpCisJCQkJCXdpbmRvd19nZXR0dXBsZXNsb3Qo d2lub2JqLCBwb3MsIHNsb3QpOworCQkJCWlmICghYXJlX3BlZXJzKHdpbnN0YXRlLCBzbG90LCB3 aW5zdGF0ZS0+c3Muc3NfU2NhblR1cGxlU2xvdCkpCisJCQkJCXJldHVybiAtMTsKKwkJCX0KIAkJ fQogCQllbHNlCiAJCQlBc3NlcnQoZmFsc2UpOwpAQCAtMjYxOSwxNCArMjY2OSwxNyBAQCBFeGVj SW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVTdGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdz KQogCQkJZWxvZyhFUlJPUiwgIldpbmRvd0Z1bmMgd2l0aCB3aW5yZWYgJXUgYXNzaWduZWQgdG8g V2luZG93QWdnIHdpdGggd2lucmVmICV1IiwKIAkJCQkgd2Z1bmMtPndpbnJlZiwgbm9kZS0+d2lu cmVmKTsKIAotCQkvKiBMb29rIGZvciBhIHByZXZpb3VzIGR1cGxpY2F0ZSB3aW5kb3cgZnVuY3Rp b24gKi8KKwkJLyoKKwkJICogTG9vayBmb3IgYSBwcmV2aW91cyBkdXBsaWNhdGUgd2luZG93IGZ1 bmN0aW9uLCB3aGljaCBuZWVkcyB0aGUgc2FtZQorCQkgKiBpZ25vcmVfbnVsbHMgdmFsdWUKKwkJ ICovCiAJCWZvciAoaSA9IDA7IGkgPD0gd2Z1bmNubzsgaSsrKQogCQl7CiAJCQlpZiAoZXF1YWwo d2Z1bmMsIHBlcmZ1bmNbaV0ud2Z1bmMpICYmCiAJCQkJIWNvbnRhaW5fdm9sYXRpbGVfZnVuY3Rp b25zKChOb2RlICopIHdmdW5jKSkKIAkJCQlicmVhazsKIAkJfQotCQlpZiAoaSA8PSB3ZnVuY25v KQorCQlpZiAoaSA8PSB3ZnVuY25vICYmIHdmdW5jLT5pZ25vcmVfbnVsbHMgPT0gcGVyZnVuY1tp XS5pZ25vcmVfbnVsbHMpCiAJCXsKIAkJCS8qIEZvdW5kIGEgbWF0Y2ggdG8gYW4gZXhpc3Rpbmcg ZW50cnksIHNvIGp1c3QgbWFyayBpdCAqLwogCQkJd2Z1bmNzdGF0ZS0+d2Z1bmNubyA9IGk7CkBA IC0yNjc5LDYgKzI3MzIsOCBAQCBFeGVjSW5pdFdpbmRvd0FnZyhXaW5kb3dBZ2cgKm5vZGUsIEVT dGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQkJd2lub2JqLT5hcmdzdGF0ZXMgPSB3ZnVuY3N0 YXRlLT5hcmdzOwogCQkJd2lub2JqLT5sb2NhbG1lbSA9IE5VTEw7CiAJCQlwZXJmdW5jc3RhdGUt Pndpbm9iaiA9IHdpbm9iajsKKwkJCXdpbm9iai0+aWdub3JlX251bGxzID0gd2Z1bmMtPmlnbm9y ZV9udWxsczsKKwkJCWluaXRfbm90bnVsbF9pbmZvKHdpbm9iaik7CiAKIAkJCS8qIEl0J3MgYSBy ZWFsIHdpbmRvdyBmdW5jdGlvbiwgc28gc2V0IHVwIHRvIGNhbGwgaXQuICovCiAJCQlmbWdyX2lu Zm9fY3h0KHdmdW5jLT53aW5mbm9pZCwgJnBlcmZ1bmNzdGF0ZS0+ZmxpbmZvLApAQCAtMzIxNCwx MiArMzI2OSwyOTQgQEAgd2luZG93X2dldHR1cGxlc2xvdChXaW5kb3dPYmplY3Qgd2lub2JqLCBp bnQ2NCBwb3MsIFR1cGxlVGFibGVTbG90ICpzbG90KQogCXJldHVybiB0cnVlOwogfQogCisvKgor ICogZ2V0IHR1cHBsZSBhbmQgZXZhbHVhdGUgaW4gYSBwYXJ0aXRpb24KKyAqLworc3RhdGljIERh dHVtCitnZXR0dXBsZV9ldmFsX3BhcnRpdGlvbihXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJn bm8sCisJCQkJCQlpbnQ2NCBhYnNfcG9zLCBib29sICppc251bGwsIGJvb2wgKmlzb3V0KQorewor CVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKKwlFeHByQ29udGV4dCAqZWNvbnRleHQ7CisJVHVw bGVUYWJsZVNsb3QgKnNsb3Q7CisKKwl3aW5zdGF0ZSA9IHdpbm9iai0+d2luc3RhdGU7CisJc2xv dCA9IHdpbnN0YXRlLT50ZW1wX3Nsb3RfMTsKKwlpZiAoIXdpbmRvd19nZXR0dXBsZXNsb3Qod2lu b2JqLCBhYnNfcG9zLCBzbG90KSkKKwl7CisJCS8qIG91dCBvZiBwYXJ0aXRpb24gKi8KKwkJaWYg KGlzb3V0KQorCQkJKmlzb3V0ID0gdHJ1ZTsKKwkJKmlzbnVsbCA9IHRydWU7CisJCXJldHVybiAo RGF0dW0pIDA7CisJfQorCisJaWYgKGlzb3V0KQorCQkqaXNvdXQgPSBmYWxzZTsKKwllY29udGV4 dCA9IHdpbnN0YXRlLT5zcy5wcy5wc19FeHByQ29udGV4dDsKKwllY29udGV4dC0+ZWN4dF9vdXRl cnR1cGxlID0gc2xvdDsKKwlyZXR1cm4gRXhlY0V2YWxFeHByKChFeHByU3RhdGUgKikgbGlzdF9u dGgKKwkJCQkJCSh3aW5vYmotPmFyZ3N0YXRlcywgYXJnbm8pLAorCQkJCQkJZWNvbnRleHQsIGlz bnVsbCk7Cit9CisKKy8qCisgKiBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZQorICogRm9y IElHTk9SRSBOVUxMUywgZ2V0IHRoZSBuZXh0IG5vbm51bGwgdmFsdWUgaW4gdGhlIGZyYW1lLCBt b3ZpbmcgZm9yd2FyZAorICogb3IgYmFja3dhcmQgdW50aWwgd2UgZmluZCBhIHZhbHVlIG9yIHJl YWNoIHRoZSBmcmFtZSdzIGVuZC4KKyAqLworc3RhdGljIERhdHVtCitpZ25vcmVudWxsc19nZXRm dW5jYXJnaW5mcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCisJCQkJCQkJICBp bnQgcmVscG9zLCBpbnQgc2Vla3R5cGUsIGJvb2wgc2V0X21hcmssCisJCQkJCQkJICBib29sICpp c251bGwsIGJvb2wgKmlzb3V0KQoreworCVdpbmRvd0FnZ1N0YXRlICp3aW5zdGF0ZTsKKwlFeHBy Q29udGV4dCAqZWNvbnRleHQ7CisJVHVwbGVUYWJsZVNsb3QgKnNsb3Q7CisJRGF0dW0JCWRhdHVt OworCWludDY0CQlhYnNfcG9zOworCWludDY0CQltYXJrX3BvczsKKwlpbnQJCQlub3RudWxsX29m ZnNldDsKKwlpbnQJCQlub3RudWxsX3JlbHBvczsKKwlpbnQJCQlmb3J3YXJkOworCisJQXNzZXJ0 KFdpbmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7CisJd2luc3RhdGUgPSB3aW5vYmotPndpbnN0 YXRlOworCWVjb250ZXh0ID0gd2luc3RhdGUtPnNzLnBzLnBzX0V4cHJDb250ZXh0OworCXNsb3Qg PSB3aW5zdGF0ZS0+dGVtcF9zbG90XzE7CisJZGF0dW0gPSAoRGF0dW0pIDA7CisJbm90bnVsbF9v ZmZzZXQgPSAwOworCW5vdG51bGxfcmVscG9zID0gYWJzKHJlbHBvcyk7CisKKwlzd2l0Y2ggKHNl ZWt0eXBlKQorCXsKKwkJY2FzZSBXSU5ET1dfU0VFS19DVVJSRU5UOgorCQkJZWxvZyhFUlJPUiwg IldJTkRPV19TRUVLX0NVUlJFTlQgaXMgbm90IHN1cHBvcnRlZCBmb3IgV2luR2V0RnVuY0FyZ0lu RnJhbWUiKTsKKwkJCWFic19wb3MgPSBtYXJrX3BvcyA9IDA7IC8qIGtlZXAgY29tcGlsZXIgcXVp ZXQgKi8KKwkJCWJyZWFrOworCQljYXNlIFdJTkRPV19TRUVLX0hFQUQ6CisJCQkvKiByZWplY3Rp bmcgcmVscG9zIDwgMCBpcyBlYXN5IGFuZCBzaW1wbGlmaWVzIGNvZGUgYmVsb3cgKi8KKwkJCWlm IChyZWxwb3MgPCAwKQorCQkJCWdvdG8gb3V0X29mX2ZyYW1lOworCQkJdXBkYXRlX2ZyYW1laGVh ZHBvcyh3aW5zdGF0ZSk7CisJCQlhYnNfcG9zID0gd2luc3RhdGUtPmZyYW1laGVhZHBvczsKKwkJ CW1hcmtfcG9zID0gd2luc3RhdGUtPmZyYW1laGVhZHBvczsKKwkJCWZvcndhcmQgPSAxOworCQkJ YnJlYWs7CisJCWNhc2UgV0lORE9XX1NFRUtfVEFJTDoKKwkJCS8qIHJlamVjdGluZyByZWxwb3Mg PiAwIGlzIGVhc3kgYW5kIHNpbXBsaWZpZXMgY29kZSBiZWxvdyAqLworCQkJaWYgKHJlbHBvcyA+ IDApCisJCQkJZ290byBvdXRfb2ZfZnJhbWU7CisJCQl1cGRhdGVfZnJhbWV0YWlscG9zKHdpbnN0 YXRlKTsKKwkJCWFic19wb3MgPSB3aW5zdGF0ZS0+ZnJhbWV0YWlscG9zIC0gMTsKKwkJCW1hcmtf cG9zID0gMDsJCS8qIGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCWZvcndhcmQgPSAtMTsKKwkJ CWJyZWFrOworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCB3aW5kb3cg c2VlayB0eXBlOiAlZCIsIHNlZWt0eXBlKTsKKwkJCWFic19wb3MgPSBtYXJrX3BvcyA9IDA7IC8q IGtlZXAgY29tcGlsZXIgcXVpZXQgKi8KKwkJCWJyZWFrOworCX0KKworCS8qCisJICogR2V0IHRo ZSBuZXh0IG5vbm51bGwgdmFsdWUgaW4gdGhlIGZyYW1lLCBtb3ZpbmcgZm9yd2FyZCBvciBiYWNr d2FyZAorCSAqIHVudGlsIHdlIGZpbmQgYSB2YWx1ZSBvciByZWFjaCB0aGUgZnJhbWUncyBlbmQu CisJICovCisJZG8KKwl7CisJCWludAkJCWluZnJhbWU7CisJCWludAkJCXY7CisKKwkJLyoKKwkJ ICogQ2hlY2sgYXBwYXJlbnQgb3V0IG9mIGZyYW1lIGNhc2UuICBXZSBuZWVkIHRvIGRvIHRoaXMg YmVjYXVzZSB3ZQorCQkgKiBtYXkgbm90IGNhbGwgd2luZG93X2dldHR1cGxlc2xvdCBiZWZvcmUg cm93X2lzX2luX2ZyYW1lLCB3aGljaAorCQkgKiBzdXBwb3NlcyBhYnNfcG9zIGlzIG5ldmVyIG5l Z2F0aXZlLgorCQkgKi8KKwkJaWYgKGFic19wb3MgPCAwKQorCQkJZ290byBvdXRfb2ZfZnJhbWU7 CisKKwkJLyogY2hlY2sgd2hldGhlciByb3cgaXMgaW4gZnJhbWUgKi8KKwkJaW5mcmFtZSA9IHJv d19pc19pbl9mcmFtZSh3aW5vYmosIGFic19wb3MsIHNsb3QsIHRydWUpOworCQlpZiAoaW5mcmFt ZSA9PSAtMSkKKwkJCWdvdG8gb3V0X29mX2ZyYW1lOworCQllbHNlIGlmIChpbmZyYW1lID09IDAp CisJCQlnb3RvIGFkdmFuY2U7CisKKwkJaWYgKGlzb3V0KQorCQkJKmlzb3V0ID0gZmFsc2U7CisK KwkJdiA9IGdldF9ub3RudWxsX2luZm8od2lub2JqLCBhYnNfcG9zKTsKKwkJaWYgKHYgPT0gTk5f TlVMTCkJCS8qIHRoaXMgcm93IGlzIGtub3duIHRvIGJlIE5VTEwgKi8KKwkJCWdvdG8gYWR2YW5j ZTsKKworCQllbHNlIGlmICh2ID09IE5OX1VOS05PV04pCS8qIG5lZWQgdG8gY2hlY2sgTlVMTCBv ciBub3QgKi8KKwkJeworCQkJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9iaiwgYWJzX3Bv cywgc2xvdCkpCisJCQkJZ290byBvdXRfb2ZfZnJhbWU7CisKKwkJCWVjb250ZXh0LT5lY3h0X291 dGVydHVwbGUgPSBzbG90OworCQkJZGF0dW0gPSBFeGVjRXZhbEV4cHIoCisJCQkJCQkJCSAoRXhw clN0YXRlICopIGxpc3RfbnRoKHdpbm9iai0+YXJnc3RhdGVzLAorCQkJCQkJCQkJCQkJCQlhcmdu byksIGVjb250ZXh0LAorCQkJCQkJCQkgaXNudWxsKTsKKwkJCWlmICghKmlzbnVsbCkKKwkJCQlu b3RudWxsX29mZnNldCsrOworCisJCQkvKiByZWNvcmQgdGhlIHJvdyBzdGF0dXMgKi8KKwkJCXB1 dF9ub3RudWxsX2luZm8od2lub2JqLCBhYnNfcG9zLCAqaXNudWxsKTsKKwkJfQorCQllbHNlCQkJ CQkvKiB0aGlzIHJvdyBpcyBrbm93biB0byBiZSBOT1QgTlVMTCAqLworCQl7CisJCQlub3RudWxs X29mZnNldCsrOworCQkJaWYgKG5vdG51bGxfb2Zmc2V0ID4gbm90bnVsbF9yZWxwb3MpCisJCQl7 CisJCQkJLyogdG8gcHJlcGFyZSBleGl0aW5nIHRoaXMgbG9vcCwgZGF0dW0gbmVlZHMgdG8gYmUg c2V0ICovCisJCQkJaWYgKCF3aW5kb3dfZ2V0dHVwbGVzbG90KHdpbm9iaiwgYWJzX3Bvcywgc2xv dCkpCisJCQkJCWdvdG8gb3V0X29mX2ZyYW1lOworCisJCQkJZWNvbnRleHQtPmVjeHRfb3V0ZXJ0 dXBsZSA9IHNsb3Q7CisJCQkJZGF0dW0gPSBFeGVjRXZhbEV4cHIoCisJCQkJCQkJCQkgKEV4cHJT dGF0ZSAqKSBsaXN0X250aAorCQkJCQkJCQkJICh3aW5vYmotPmFyZ3N0YXRlcywgYXJnbm8pLAor CQkJCQkJCQkJIGVjb250ZXh0LCBpc251bGwpOworCQkJfQorCQl9CithZHZhbmNlOgorCQlhYnNf cG9zICs9IGZvcndhcmQ7CisJfSB3aGlsZSAobm90bnVsbF9vZmZzZXQgPD0gbm90bnVsbF9yZWxw b3MpOworCisJaWYgKHNldF9tYXJrKQorCQlXaW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBtYXJr X3Bvcyk7CisKKwlyZXR1cm4gZGF0dW07CisKK291dF9vZl9mcmFtZToKKwlpZiAoaXNvdXQpCisJ CSppc291dCA9IHRydWU7CisJKmlzbnVsbCA9IHRydWU7CisJcmV0dXJuIChEYXR1bSkgMDsKK30K KworCisvKgorICogaW5pdF9ub3RudWxsX2luZm8KKyAqIEluaXRpYWxpemUgbm9uIG51bGwgbWFw LgorICovCitzdGF0aWMgdm9pZAoraW5pdF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9i aikKK3sKKy8qIGluaXRpYWwgbnVtYmVyIG9mIG5vdG51bGwgaW5mbyBtZW1iZXJzICovCisjZGVm aW5lCUlOSVRfTk9UX05VTExfSU5GT19OVU0JMTI4CisKKwlpZiAod2lub2JqLT5pZ25vcmVfbnVs bHMgPT0gUEFSU0VSX0lHTk9SRV9OVUxMUykKKwl7CisJCVNpemUJCXNpemUgPSBOTl9QT1NfVE9f QllURVMoSU5JVF9OT1RfTlVMTF9JTkZPX05VTSk7CisKKwkJd2lub2JqLT5ub3RudWxsX2luZm8g PSBwYWxsb2MwKHNpemUpOworCQl3aW5vYmotPm51bV9ub3RudWxsX2luZm8gPSBJTklUX05PVF9O VUxMX0lORk9fTlVNOworCX0KK30KKworLyoKKyAqIGdyb3dfbm90bnVsbF9pbmZvCisgKiBleHBh bmQgbm90bnVsbF9pbmZvIGlmIG5lY2Vzc2FyeS4KKyAqIHBvczogbm90IG51bGwgaW5mbyBwb3Np dGlvbgorKi8KK3N0YXRpYyB2b2lkCitncm93X25vdG51bGxfaW5mbyhXaW5kb3dPYmplY3Qgd2lu b2JqLCBpbnQ2NCBwb3MpCit7CisJaWYgKHBvcyA+PSB3aW5vYmotPm51bV9ub3RudWxsX2luZm8p CisJeworCQlmb3IgKDs7KQorCQl7CisJCQlTaXplCQlvbGRzaXplID0gTk5fUE9TX1RPX0JZVEVT KHdpbm9iai0+bnVtX25vdG51bGxfaW5mbyk7CisJCQlTaXplCQluZXdzaXplID0gb2xkc2l6ZSAq IDI7CisKKwkJCXdpbm9iai0+bm90bnVsbF9pbmZvID0KKwkJCQlyZXBhbGxvYzAod2lub2JqLT5u b3RudWxsX2luZm8sIG9sZHNpemUsIG5ld3NpemUpOworCQkJd2lub2JqLT5udW1fbm90bnVsbF9p bmZvID0gTk5fQllURVNfVE9fUE9TKG5ld3NpemUpOworCQkJaWYgKHdpbm9iai0+bnVtX25vdG51 bGxfaW5mbyA+IHBvcykKKwkJCQlicmVhazsKKwkJfQorCX0KK30KKworLyoKKyAqIGdldF9ub3Ru dWxsX2luZm8KKyAqIHJldHJpZXZlIGEgbWFwCisgKiBwb3M6IG1hcCBwb3NpdGlvbgorICovCitz dGF0aWMgdWludDgKK2dldF9ub3RudWxsX2luZm8oV2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQg cG9zKQoreworCXVpbnQ4CQltYjsKKwlpbnQ2NAkJYnBvczsKKworCWdyb3dfbm90bnVsbF9pbmZv KHdpbm9iaiwgcG9zKTsKKwlicG9zID0gTk5fUE9TX1RPX0JZVEVTKHBvcyk7CisJbWIgPSB3aW5v YmotPm5vdG51bGxfaW5mb1ticG9zXTsKKwlyZXR1cm4gKG1iID4+IChOTl9TSElGVChwb3MpKSkg JiBOTl9NQVNLOworfQorCisvKgorICogcHV0X25vdG51bGxfaW5mbworICogdXBkYXRlIG1hcAor ICogcG9zOiBtYXAgcG9zaXRpb24KKyAqLworc3RhdGljIHZvaWQKK3B1dF9ub3RudWxsX2luZm8o V2luZG93T2JqZWN0IHdpbm9iaiwgaW50NjQgcG9zLCBib29sIGlzbnVsbCkKK3sKKwl1aW50OAkJ bWI7CisJaW50NjQJCWJwb3M7CisJdWludDgJCXZhbCA9IGlzbnVsbCA/IE5OX05VTEwgOiBOTl9O T1ROVUxMOworCWludAkJCXNoaWZ0OworCisJZ3Jvd19ub3RudWxsX2luZm8od2lub2JqLCBwb3Mp OworCWJwb3MgPSBOTl9QT1NfVE9fQllURVMocG9zKTsKKwltYiA9IHdpbm9iai0+bm90bnVsbF9p bmZvW2Jwb3NdOworCXNoaWZ0ID0gTk5fU0hJRlQocG9zKTsKKwltYiAmPSB+KE5OX01BU0sgPDwg c2hpZnQpOwkvKiBjbGVhciBtYXAgKi8KKwltYiB8PSAodmFsIDw8IHNoaWZ0KTsJCS8qIHVwZGF0 ZSBtYXAgKi8KKwl3aW5vYmotPm5vdG51bGxfaW5mb1ticG9zXSA9IG1iOworfQogCiAvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioKICAqIEFQSSBleHBvc2VkIHRvIHdpbmRvdyBmdW5jdGlvbnMKICAqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KIAogCisvKgorICogV2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudAorICoJ CUNoZWNrIG51bGwgdHJlYXRtZW50IGNsYXVzZSBhbmQgc2V0cyBpZ25vcmVfbnVsbHMKKyAqCisg KiBXaW5kb3cgZnVuY3Rpb25zIHNob3VsZCBjYWxsIHRoaXMgdG8gY2hlY2sgaWYgdGhleSBhcmUg YmVpbmcgY2FsbGVkIHdpdGgKKyAqIGEgbnVsbCB0cmVhdG1lbnQgY2xhdXNlIHdoZW4gdGhleSBk b24ndCBhbGxvdyBpdCwgb3IgdG8gc2V0IGlnbm9yZV9udWxscy4KKyAqLwordm9pZAorV2luQ2hl Y2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudChXaW5kb3dPYmplY3Qgd2lub2JqLAorCQkJCQkJ CQkgICBib29sIGFsbG93TnVsbFRyZWF0bWVudCwKKwkJCQkJCQkJICAgRnVuY3Rpb25DYWxsSW5m byBmY2luZm8pCit7CisJaWYgKHdpbm9iai0+aWdub3JlX251bGxzICE9IE5PX05VTExUUkVBVE1F TlQgJiYgIWFsbG93TnVsbFRyZWF0bWVudCkKKwl7CisJCUhlYXBUdXBsZQlwcm9jdHVwOworCQlG b3JtX3BnX3Byb2MgcHJvY2Zvcm07CisJCU9pZAkJCWZ1bmNpZDsKKworCQlmdW5jaWQgPSBmY2lu Zm8tPmZsaW5mby0+Zm5fb2lkOworCQlwcm9jdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFBST0NPSUQs CisJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bShmdW5jaWQpKTsKKwkJaWYgKCFIZWFwVHVwbGVJ c1ZhbGlkKHByb2N0dXApKQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9y IGZ1bmN0aW9uICV1IiwgZnVuY2lkKTsKKwkJcHJvY2Zvcm0gPSAoRm9ybV9wZ19wcm9jKSBHRVRT VFJVQ1QocHJvY3R1cCk7CisJCWVsb2coRVJST1IsICJmdW5jdGlvbiAlcyBkb2VzIG5vdCBhbGxv dyBSRVNQRUNUL0lHTk9SRSBOVUxMUyIsCisJCQkgTmFtZVN0cihwcm9jZm9ybS0+cHJvbmFtZSkp OworCX0KKwllbHNlIGlmICh3aW5vYmotPmlnbm9yZV9udWxscyA9PSBQQVJTRVJfSUdOT1JFX05V TExTKQorCQl3aW5vYmotPmlnbm9yZV9udWxscyA9IElHTk9SRV9OVUxMUzsKKworfQorCiAvKgog ICogV2luR2V0UGFydGl0aW9uTG9jYWxNZW1vcnkKICAqCQlHZXQgd29ya2luZyBtZW1vcnkgdGhh dCBsaXZlcyB0aWxsIGVuZCBvZiBwYXJ0aXRpb24gcHJvY2Vzc2luZwpAQCAtMzM3OCwyMyArMzcx NSwzNyBAQCBXaW5HZXRGdW5jQXJnSW5QYXJ0aXRpb24oV2luZG93T2JqZWN0IHdpbm9iaiwgaW50 IGFyZ25vLAogCQkJCQkJIGJvb2wgKmlzbnVsbCwgYm9vbCAqaXNvdXQpCiB7CiAJV2luZG93QWdn U3RhdGUgKndpbnN0YXRlOwotCUV4cHJDb250ZXh0ICplY29udGV4dDsKLQlUdXBsZVRhYmxlU2xv dCAqc2xvdDsKLQlib29sCQlnb3R0dXBsZTsKIAlpbnQ2NAkJYWJzX3BvczsKKwlEYXR1bQkJZGF0 dW07CisJYm9vbAkJbnVsbF90cmVhdG1lbnQgPSBmYWxzZTsKKwlpbnQJCQlub3RudWxsX29mZnNl dDsKKwlpbnQJCQlub3RudWxsX3JlbHBvczsKKwlpbnQJCQlmb3J3YXJkOwogCiAJQXNzZXJ0KFdp bmRvd09iamVjdElzVmFsaWQod2lub2JqKSk7CiAJd2luc3RhdGUgPSB3aW5vYmotPndpbnN0YXRl OwotCWVjb250ZXh0ID0gd2luc3RhdGUtPnNzLnBzLnBzX0V4cHJDb250ZXh0OwotCXNsb3QgPSB3 aW5zdGF0ZS0+dGVtcF9zbG90XzE7CisKKwlpZiAod2lub2JqLT5pZ25vcmVfbnVsbHMgPT0gSUdO T1JFX05VTExTICYmIHJlbHBvcyAhPSAwKQorCXsKKwkJbnVsbF90cmVhdG1lbnQgPSB0cnVlOwor CQlub3RudWxsX29mZnNldCA9IDA7CisJCW5vdG51bGxfcmVscG9zID0gYWJzKHJlbHBvcyk7CisJ CWZvcndhcmQgPSByZWxwb3MgPiAwID8gMSA6IC0xOworCX0KIAogCXN3aXRjaCAoc2Vla3R5cGUp CiAJewogCQljYXNlIFdJTkRPV19TRUVLX0NVUlJFTlQ6Ci0JCQlhYnNfcG9zID0gd2luc3RhdGUt PmN1cnJlbnRwb3MgKyByZWxwb3M7CisJCQlpZiAobnVsbF90cmVhdG1lbnQpCisJCQkJYWJzX3Bv cyA9IHdpbnN0YXRlLT5jdXJyZW50cG9zOworCQkJZWxzZQorCQkJCWFic19wb3MgPSB3aW5zdGF0 ZS0+Y3VycmVudHBvcyArIHJlbHBvczsKIAkJCWJyZWFrOwogCQljYXNlIFdJTkRPV19TRUVLX0hF QUQ6Ci0JCQlhYnNfcG9zID0gcmVscG9zOworCQkJaWYgKG51bGxfdHJlYXRtZW50KQorCQkJCWFi c19wb3MgPSAwOworCQkJZWxzZQorCQkJCWFic19wb3MgPSByZWxwb3M7CiAJCQlicmVhazsKIAkJ Y2FzZSBXSU5ET1dfU0VFS19UQUlMOgogCQkJc3Bvb2xfdHVwbGVzKHdpbnN0YXRlLCAtMSk7CkBA IC0zNDA2LDI1ICszNzU3LDY3IEBAIFdpbkdldEZ1bmNBcmdJblBhcnRpdGlvbihXaW5kb3dPYmpl Y3Qgd2lub2JqLCBpbnQgYXJnbm8sCiAJCQlicmVhazsKIAl9CiAKLQlnb3R0dXBsZSA9IHdpbmRv d19nZXR0dXBsZXNsb3Qod2lub2JqLCBhYnNfcG9zLCBzbG90KTsKLQotCWlmICghZ290dHVwbGUp Ci0JewotCQlpZiAoaXNvdXQpCi0JCQkqaXNvdXQgPSB0cnVlOwotCQkqaXNudWxsID0gdHJ1ZTsK LQkJcmV0dXJuIChEYXR1bSkgMDsKLQl9Ci0JZWxzZQorCWlmICghbnVsbF90cmVhdG1lbnQpCQkv KiBJR05PUkUgTlVMTFMgaXMgbm90IHNwZWNpZmllZCAqLwogCXsKLQkJaWYgKGlzb3V0KQotCQkJ Kmlzb3V0ID0gZmFsc2U7Ci0JCWlmIChzZXRfbWFyaykKKwkJZGF0dW0gPSBnZXR0dXBsZV9ldmFs X3BhcnRpdGlvbih3aW5vYmosIGFyZ25vLAorCQkJCQkJCQkJCWFic19wb3MsIGlzbnVsbCwgaXNv dXQpOworCQlpZiAoISppc291dCAmJiBzZXRfbWFyaykKIAkJCVdpblNldE1hcmtQb3NpdGlvbih3 aW5vYmosIGFic19wb3MpOwotCQllY29udGV4dC0+ZWN4dF9vdXRlcnR1cGxlID0gc2xvdDsKLQkJ cmV0dXJuIEV4ZWNFdmFsRXhwcigoRXhwclN0YXRlICopIGxpc3RfbnRoKHdpbm9iai0+YXJnc3Rh dGVzLCBhcmdubyksCi0JCQkJCQkJZWNvbnRleHQsIGlzbnVsbCk7CisJCXJldHVybiBkYXR1bTsK IAl9CisKKwkvKgorCSAqIEdldCB0aGUgbmV4dCBub25udWxsIHZhbHVlIGluIHRoZSBwYXJ0aXRp b24sIG1vdmluZyBmb3J3YXJkIG9yIGJhY2t3YXJkCisJICogdW50aWwgd2UgZmluZCBhIHZhbHVl IG9yIHJlYWNoIHRoZSBwYXJ0aXRpb24ncyBlbmQuCisJICovCisJZG8KKwl7CisJCWFic19wb3Mg Kz0gZm9yd2FyZDsKKwkJaWYgKGFic19wb3MgPCAwKQorCQl7CisJCQkvKiBvdXQgb2YgcGFydGl0 aW9uICovCisJCQlpZiAoaXNvdXQpCisJCQkJKmlzb3V0ID0gdHJ1ZTsKKwkJCSppc251bGwgPSB0 cnVlOworCQkJZGF0dW0gPSAwOworCQkJYnJlYWs7CisJCX0KKworCQlzd2l0Y2ggKGdldF9ub3Ru dWxsX2luZm8od2lub2JqLCBhYnNfcG9zKSkKKwkJeworCQkJY2FzZSBOTl9OT1ROVUxMOgkvKiB0 aGlzIHJvdyBpcyBrbm93biB0byBiZSBOT1QgTlVMTCAqLworCQkJCW5vdG51bGxfb2Zmc2V0Kys7 CisJCQkJaWYgKG5vdG51bGxfb2Zmc2V0ID49IG5vdG51bGxfcmVscG9zKQorCQkJCXsKKwkJCQkJ LyogcHJlcGFyZSB0byBleGl0IHRoaXMgbG9vcCAqLworCQkJCQlkYXR1bSA9IGdldHR1cGxlX2V2 YWxfcGFydGl0aW9uKHdpbm9iaiwgYXJnbm8sCisJCQkJCQkJCQkJCQkJYWJzX3BvcywgaXNudWxs LCBpc291dCk7CisJCQkJfQorCQkJCWJyZWFrOworCQkJY2FzZSBOTl9OVUxMOgkJLyogdGhpcyBy b3cgaXMga25vd24gdG8gYmUgTlVMTCAqLworCQkJCWlmIChpc291dCkKKwkJCQkJKmlzb3V0ID0g ZmFsc2U7CisJCQkJKmlzbnVsbCA9IHRydWU7CisJCQkJZGF0dW0gPSAwOworCQkJCWJyZWFrOwor CQkJZGVmYXVsdDoJCQkvKiBuZWVkIHRvIGNoZWNrIE5VTEwgb3Igbm90ICovCisJCQkJZGF0dW0g PSBnZXR0dXBsZV9ldmFsX3BhcnRpdGlvbih3aW5vYmosIGFyZ25vLAorCQkJCQkJCQkJCQkJYWJz X3BvcywgaXNudWxsLCBpc291dCk7CisJCQkJaWYgKCppc291dCkJCS8qIG91dCBvZiBwYXJ0aXRp b24/ICovCisJCQkJCXJldHVybiBkYXR1bTsKKworCQkJCWlmICghKmlzbnVsbCkKKwkJCQkJbm90 bnVsbF9vZmZzZXQrKzsKKwkJCQkvKiByZWNvcmQgdGhlIHJvdyBzdGF0dXMgKi8KKwkJCQlwdXRf bm90bnVsbF9pbmZvKHdpbm9iaiwgYWJzX3BvcywgKmlzbnVsbCk7CisJCQkJYnJlYWs7CisJCX0K Kwl9IHdoaWxlIChub3RudWxsX29mZnNldCA8IG5vdG51bGxfcmVscG9zKTsKKworCWlmICghKmlz b3V0ICYmIHNldF9tYXJrKQorCQlXaW5TZXRNYXJrUG9zaXRpb24od2lub2JqLCBhYnNfcG9zKTsK KworCXJldHVybiBkYXR1bTsKIH0KIAogLyoKQEAgLTM0NzYsNiArMzg2OSwxMCBAQCBXaW5HZXRG dW5jQXJnSW5GcmFtZShXaW5kb3dPYmplY3Qgd2lub2JqLCBpbnQgYXJnbm8sCiAJZWNvbnRleHQg PSB3aW5zdGF0ZS0+c3MucHMucHNfRXhwckNvbnRleHQ7CiAJc2xvdCA9IHdpbnN0YXRlLT50ZW1w X3Nsb3RfMTsKIAorCWlmICh3aW5vYmotPmlnbm9yZV9udWxscyA9PSBJR05PUkVfTlVMTFMpCisJ CXJldHVybiBpZ25vcmVudWxsc19nZXRmdW5jYXJnaW5mcmFtZSh3aW5vYmosIGFyZ25vLCByZWxw b3MsIHNlZWt0eXBlLAorCQkJCQkJCQkJCQkgc2V0X21hcmssIGlzbnVsbCwgaXNvdXQpOworCiAJ c3dpdGNoIChzZWVrdHlwZSkKIAl7CiAJCWNhc2UgV0lORE9XX1NFRUtfQ1VSUkVOVDoKQEAgLTM2 MjQsNyArNDAyMSw3IEBAIFdpbkdldEZ1bmNBcmdJbkZyYW1lKFdpbmRvd09iamVjdCB3aW5vYmos IGludCBhcmdubywKIAkJZ290byBvdXRfb2ZfZnJhbWU7CiAKIAkvKiBUaGUgY29kZSBhYm92ZSBk b2VzIG5vdCBkZXRlY3QgYWxsIG91dC1vZi1mcmFtZSBjYXNlcywgc28gY2hlY2sgKi8KLQlpZiAo cm93X2lzX2luX2ZyYW1lKHdpbnN0YXRlLCBhYnNfcG9zLCBzbG90KSA8PSAwKQorCWlmIChyb3df aXNfaW5fZnJhbWUod2lub2JqLCBhYnNfcG9zLCBzbG90LCBmYWxzZSkgPD0gMCkKIAkJZ290byBv dXRfb2ZfZnJhbWU7CiAKIAlpZiAoaXNvdXQpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvd2luZG93ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC93aW5kb3dmdW5jcy5j CmluZGV4IGJiMzVmM2JjNGE5Li45NjlmMDJhYTU5YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3dpbmRvd2Z1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3dpbmRv d2Z1bmNzLmMKQEAgLTg2LDYgKzg2LDcgQEAgd2luZG93X3Jvd19udW1iZXIoUEdfRlVOQ1RJT05f QVJHUykKIAlXaW5kb3dPYmplY3Qgd2lub2JqID0gUEdfV0lORE9XX09CSkVDVCgpOwogCWludDY0 CQljdXJwb3MgPSBXaW5HZXRDdXJyZW50UG9zaXRpb24od2lub2JqKTsKIAorCVdpbkNoZWNrQW5k SW5pdGlhbGl6ZU51bGxUcmVhdG1lbnQod2lub2JqLCBmYWxzZSwgZmNpbmZvKTsKIAlXaW5TZXRN YXJrUG9zaXRpb24od2lub2JqLCBjdXJwb3MpOwogCVBHX1JFVFVSTl9JTlQ2NChjdXJwb3MgKyAx KTsKIH0KQEAgLTE0MSw2ICsxNDIsNyBAQCB3aW5kb3dfcmFuayhQR19GVU5DVElPTl9BUkdTKQog CXJhbmtfY29udGV4dCAqY29udGV4dDsKIAlib29sCQl1cDsKIAorCVdpbkNoZWNrQW5kSW5pdGlh bGl6ZU51bGxUcmVhdG1lbnQod2lub2JqLCBmYWxzZSwgZmNpbmZvKTsKIAl1cCA9IHJhbmtfdXAo d2lub2JqKTsKIAljb250ZXh0ID0gKHJhbmtfY29udGV4dCAqKQogCQlXaW5HZXRQYXJ0aXRpb25M b2NhbE1lbW9yeSh3aW5vYmosIHNpemVvZihyYW5rX2NvbnRleHQpKTsKQEAgLTIwMyw2ICsyMDUs NyBAQCB3aW5kb3dfZGVuc2VfcmFuayhQR19GVU5DVElPTl9BUkdTKQogCXJhbmtfY29udGV4dCAq Y29udGV4dDsKIAlib29sCQl1cDsKIAorCVdpbkNoZWNrQW5kSW5pdGlhbGl6ZU51bGxUcmVhdG1l bnQod2lub2JqLCBmYWxzZSwgZmNpbmZvKTsKIAl1cCA9IHJhbmtfdXAod2lub2JqKTsKIAljb250 ZXh0ID0gKHJhbmtfY29udGV4dCAqKQogCQlXaW5HZXRQYXJ0aXRpb25Mb2NhbE1lbW9yeSh3aW5v YmosIHNpemVvZihyYW5rX2NvbnRleHQpKTsKQEAgLTI2Niw2ICsyNjksNyBAQCB3aW5kb3dfcGVy Y2VudF9yYW5rKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCXRvdGFscm93cyA9IFdpbkdldFBh cnRpdGlvblJvd0NvdW50KHdpbm9iaik7CiAKIAlBc3NlcnQodG90YWxyb3dzID4gMCk7CisJV2lu Q2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudCh3aW5vYmosIGZhbHNlLCBmY2luZm8pOwog CiAJdXAgPSByYW5rX3VwKHdpbm9iaik7CiAJY29udGV4dCA9IChyYW5rX2NvbnRleHQgKikKQEAg LTMzNSw2ICszMzksNyBAQCB3aW5kb3dfY3VtZV9kaXN0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50 NjQJCXRvdGFscm93cyA9IFdpbkdldFBhcnRpdGlvblJvd0NvdW50KHdpbm9iaik7CiAKIAlBc3Nl cnQodG90YWxyb3dzID4gMCk7CisJV2luQ2hlY2tBbmRJbml0aWFsaXplTnVsbFRyZWF0bWVudCh3 aW5vYmosIGZhbHNlLCBmY2luZm8pOwogCiAJdXAgPSByYW5rX3VwKHdpbm9iaik7CiAJY29udGV4 dCA9IChyYW5rX2NvbnRleHQgKikKQEAgLTQxMyw2ICs0MTgsNyBAQCB3aW5kb3dfbnRpbGUoUEdf RlVOQ1RJT05fQVJHUykKIAlXaW5kb3dPYmplY3Qgd2lub2JqID0gUEdfV0lORE9XX09CSkVDVCgp OwogCW50aWxlX2NvbnRleHQgKmNvbnRleHQ7CiAKKwlXaW5DaGVja0FuZEluaXRpYWxpemVOdWxs VHJlYXRtZW50KHdpbm9iaiwgZmFsc2UsIGZjaW5mbyk7CiAJY29udGV4dCA9IChudGlsZV9jb250 ZXh0ICopCiAJCVdpbkdldFBhcnRpdGlvbkxvY2FsTWVtb3J5KHdpbm9iaiwgc2l6ZW9mKG50aWxl X2NvbnRleHQpKTsKIApAQCAtNTM1LDYgKzU0MSw3IEBAIGxlYWRsYWdfY29tbW9uKEZ1bmN0aW9u Q2FsbEluZm8gZmNpbmZvLAogCWJvb2wJCWlzbnVsbDsKIAlib29sCQlpc291dDsKIAorCVdpbkNo ZWNrQW5kSW5pdGlhbGl6ZU51bGxUcmVhdG1lbnQod2lub2JqLCB0cnVlLCBmY2luZm8pOwogCWlm ICh3aXRob2Zmc2V0KQogCXsKIAkJb2Zmc2V0ID0gRGF0dW1HZXRJbnQzMihXaW5HZXRGdW5jQXJn Q3VycmVudCh3aW5vYmosIDEsICZpc251bGwpKTsKQEAgLTY1Miw2ICs2NTksNyBAQCB3aW5kb3df Zmlyc3RfdmFsdWUoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmVzdWx0OwogCWJvb2wJCWlz bnVsbDsKIAorCVdpbkNoZWNrQW5kSW5pdGlhbGl6ZU51bGxUcmVhdG1lbnQod2lub2JqLCB0cnVl LCBmY2luZm8pOwogCXJlc3VsdCA9IFdpbkdldEZ1bmNBcmdJbkZyYW1lKHdpbm9iaiwgMCwKIAkJ CQkJCQkJICAwLCBXSU5ET1dfU0VFS19IRUFELCB0cnVlLAogCQkJCQkJCQkgICZpc251bGwsIE5V TEwpOwpAQCAtNjczLDYgKzY4MSw3IEBAIHdpbmRvd19sYXN0X3ZhbHVlKFBHX0ZVTkNUSU9OX0FS R1MpCiAJRGF0dW0JCXJlc3VsdDsKIAlib29sCQlpc251bGw7CiAKKwlXaW5DaGVja0FuZEluaXRp YWxpemVOdWxsVHJlYXRtZW50KHdpbm9iaiwgdHJ1ZSwgZmNpbmZvKTsKIAlyZXN1bHQgPSBXaW5H ZXRGdW5jQXJnSW5GcmFtZSh3aW5vYmosIDAsCiAJCQkJCQkJCSAgMCwgV0lORE9XX1NFRUtfVEFJ TCwgdHJ1ZSwKIAkJCQkJCQkJICAmaXNudWxsLCBOVUxMKTsKQEAgLTY5Niw2ICs3MDUsNyBAQCB3 aW5kb3dfbnRoX3ZhbHVlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJYm9vbAkJaXNudWxsOwogCWludDMy CQludGg7CiAKKwlXaW5DaGVja0FuZEluaXRpYWxpemVOdWxsVHJlYXRtZW50KHdpbm9iaiwgdHJ1 ZSwgZmNpbmZvKTsKIAludGggPSBEYXR1bUdldEludDMyKFdpbkdldEZ1bmNBcmdDdXJyZW50KHdp bm9iaiwgMSwgJmlzbnVsbCkpOwogCWlmIChpc251bGwpCiAJCVBHX1JFVFVSTl9OVUxMKCk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS93aW5kb3dhcGkuaCBiL3NyYy9pbmNsdWRlL3dpbmRvd2Fw aS5oCmluZGV4IGNiMmVjZTE2NmI2Li4yMGNmZDllOWRkOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvd2luZG93YXBpLmgKKysrIGIvc3JjL2luY2x1ZGUvd2luZG93YXBpLmgKQEAgLTI4LDYgKzI4 LDggQEAKICNpZm5kZWYgV0lORE9XQVBJX0gKICNkZWZpbmUgV0lORE9XQVBJX0gKIAorI2luY2x1 ZGUgImZtZ3IuaCIKKwogLyogdmFsdWVzIG9mICJzZWVrdHlwZSIgKi8KICNkZWZpbmUgV0lORE9X X1NFRUtfQ1VSUkVOVCAwCiAjZGVmaW5lIFdJTkRPV19TRUVLX0hFQUQgMQpAQCAtNDEsNiArNDMs MTAgQEAgdHlwZWRlZiBzdHJ1Y3QgV2luZG93T2JqZWN0RGF0YSAqV2luZG93T2JqZWN0OwogI2Rl ZmluZSBXaW5kb3dPYmplY3RJc1ZhbGlkKHdpbm9iaikgXAogCSgod2lub2JqKSAhPSBOVUxMICYm IElzQSh3aW5vYmosIFdpbmRvd09iamVjdERhdGEpKQogCitleHRlcm4gdm9pZCBXaW5DaGVja0Fu ZEluaXRpYWxpemVOdWxsVHJlYXRtZW50KFdpbmRvd09iamVjdCB3aW5vYmosCisJCQkJCQkJCQkJ CSAgIGJvb2wgYWxsb3dOdWxsVHJlYXRtZW50LAorCQkJCQkJCQkJCQkgICBGdW5jdGlvbkNhbGxJ bmZvIGZjaW5mbyk7CisKIGV4dGVybiB2b2lkICpXaW5HZXRQYXJ0aXRpb25Mb2NhbE1lbW9yeShX aW5kb3dPYmplY3Qgd2lub2JqLCBTaXplIHN6KTsKIAogZXh0ZXJuIGludDY0IFdpbkdldEN1cnJl bnRQb3NpdGlvbihXaW5kb3dPYmplY3Qgd2lub2JqKTsKLS0gCjIuNDMuMAoK ----Next_Part(Thu_Oct__2_21_15_50_2025_460)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v20-0005-Modify-documents-to-add-null-treatment-clause.patch" RnJvbSAxMTJmOWNkNzdlNWZkY2Q3ODY5MmQxMmIxMDFkZDViNDZlYTA1ZDg0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBUaHUsIDIgT2N0IDIwMjUgMjE6MDY6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIHYyMCA1 LzZdIE1vZGlmeSBkb2N1bWVudHMgdG8gYWRkIG51bGwgdHJlYXRtZW50IGNsYXVzZS4KCi0tLQog ZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dtbCB8IDM4ICsrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDIzIGluc2VydGlvbnMoKyksIDE1IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jL2Z1bmMtd2luZG93LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCmluZGV4IGNjZTAxNjViOTUyLi5i Y2Y3NTVjOWViYyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMvZnVuYy13aW5kb3cuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy9mdW5jLXdpbmRvdy5zZ21sCkBAIC0xNDAsNyArMTQw LDcgQEAKICAgICAgICAgPC9pbmRleHRlcm0+CiAgICAgICAgIDxmdW5jdGlvbj5sYWc8L2Z1bmN0 aW9uPiAoIDxwYXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gPHR5cGU+YW55Y29tcGF0aWJsZTwv dHlwZT4KICAgICAgICAgICA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPm9mZnNldDwvcGFyYW1ldGVy PiA8dHlwZT5pbnRlZ2VyPC90eXBlPgotICAgICAgICAgIDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+ ZGVmYXVsdDwvcGFyYW1ldGVyPiA8dHlwZT5hbnljb21wYXRpYmxlPC90eXBlPiA8L29wdGlvbmFs Pjwvb3B0aW9uYWw+ICkKKyAgICAgICAgICA8b3B0aW9uYWw+LCA8cGFyYW1ldGVyPmRlZmF1bHQ8 L3BhcmFtZXRlcj4gPHR5cGU+YW55Y29tcGF0aWJsZTwvdHlwZT4gPC9vcHRpb25hbD48L29wdGlv bmFsPiApIDxvcHRpb25hbD4gPHBhcmFtZXRlcj5udWxsIHRyZWF0bWVudDwvcGFyYW1ldGVyPiA8 L29wdGlvbmFsPgogICAgICAgICA8cmV0dXJudmFsdWU+YW55Y29tcGF0aWJsZTwvcmV0dXJudmFs dWU+CiAgICAgICAgPC9wYXJhPgogICAgICAgIDxwYXJhPgpAQCAtMTY1LDcgKzE2NSw3IEBACiAg ICAgICAgIDwvaW5kZXh0ZXJtPgogICAgICAgICA8ZnVuY3Rpb24+bGVhZDwvZnVuY3Rpb24+ICgg PHBhcmFtZXRlcj52YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnljb21wYXRpYmxlPC90eXBlPgog ICAgICAgICAgIDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+b2Zmc2V0PC9wYXJhbWV0ZXI+IDx0eXBl PmludGVnZXI8L3R5cGU+Ci0gICAgICAgICAgPG9wdGlvbmFsPiwgPHBhcmFtZXRlcj5kZWZhdWx0 PC9wYXJhbWV0ZXI+IDx0eXBlPmFueWNvbXBhdGlibGU8L3R5cGU+IDwvb3B0aW9uYWw+PC9vcHRp b25hbD4gKQorICAgICAgICAgIDxvcHRpb25hbD4sIDxwYXJhbWV0ZXI+ZGVmYXVsdDwvcGFyYW1l dGVyPiA8dHlwZT5hbnljb21wYXRpYmxlPC90eXBlPiA8L29wdGlvbmFsPjwvb3B0aW9uYWw+ICkg PG9wdGlvbmFsPiA8cGFyYW1ldGVyPm51bGwgdHJlYXRtZW50PC9wYXJhbWV0ZXI+IDwvb3B0aW9u YWw+CiAgICAgICAgIDxyZXR1cm52YWx1ZT5hbnljb21wYXRpYmxlPC9yZXR1cm52YWx1ZT4KICAg ICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CkBAIC0xODgsNyArMTg4LDcgQEAKICAgICAgICAg PGluZGV4dGVybT4KICAgICAgICAgIDxwcmltYXJ5PmZpcnN0X3ZhbHVlPC9wcmltYXJ5PgogICAg ICAgICA8L2luZGV4dGVybT4KLSAgICAgICAgPGZ1bmN0aW9uPmZpcnN0X3ZhbHVlPC9mdW5jdGlv bj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+ ICkKKyAgICAgICAgPGZ1bmN0aW9uPmZpcnN0X3ZhbHVlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVy PnZhbHVlPC9wYXJhbWV0ZXI+IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+ICkgPG9wdGlvbmFsPiA8 cGFyYW1ldGVyPm51bGwgdHJlYXRtZW50PC9wYXJhbWV0ZXI+IDwvb3B0aW9uYWw+CiAgICAgICAg IDxyZXR1cm52YWx1ZT5hbnllbGVtZW50PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAg ICAgICAgPHBhcmE+CkBAIC0yMDIsNyArMjAyLDcgQEAKICAgICAgICAgPGluZGV4dGVybT4KICAg ICAgICAgIDxwcmltYXJ5Pmxhc3RfdmFsdWU8L3ByaW1hcnk+CiAgICAgICAgIDwvaW5kZXh0ZXJt PgotICAgICAgICA8ZnVuY3Rpb24+bGFzdF92YWx1ZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52 YWx1ZTwvcGFyYW1ldGVyPiA8dHlwZT5hbnllbGVtZW50PC90eXBlPiApCisgICAgICAgIDxmdW5j dGlvbj5sYXN0X3ZhbHVlPC9mdW5jdGlvbj4gKCA8cGFyYW1ldGVyPnZhbHVlPC9wYXJhbWV0ZXI+ IDx0eXBlPmFueWVsZW1lbnQ8L3R5cGU+ICkgPG9wdGlvbmFsPiA8cGFyYW1ldGVyPm51bGwgdHJl YXRtZW50PC9wYXJhbWV0ZXI+IDwvb3B0aW9uYWw+CiAgICAgICAgIDxyZXR1cm52YWx1ZT5hbnll bGVtZW50PC9yZXR1cm52YWx1ZT4KICAgICAgICA8L3BhcmE+CiAgICAgICAgPHBhcmE+CkBAIC0y MTYsNyArMjE2LDcgQEAKICAgICAgICAgPGluZGV4dGVybT4KICAgICAgICAgIDxwcmltYXJ5Pm50 aF92YWx1ZTwvcHJpbWFyeT4KICAgICAgICAgPC9pbmRleHRlcm0+Ci0gICAgICAgIDxmdW5jdGlv bj5udGhfdmFsdWU8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gPHR5 cGU+YW55ZWxlbWVudDwvdHlwZT4sIDxwYXJhbWV0ZXI+bjwvcGFyYW1ldGVyPiA8dHlwZT5pbnRl Z2VyPC90eXBlPiApCisgICAgICAgIDxmdW5jdGlvbj5udGhfdmFsdWU8L2Z1bmN0aW9uPiAoIDxw YXJhbWV0ZXI+dmFsdWU8L3BhcmFtZXRlcj4gPHR5cGU+YW55ZWxlbWVudDwvdHlwZT4sIDxwYXJh bWV0ZXI+bjwvcGFyYW1ldGVyPiA8dHlwZT5pbnRlZ2VyPC90eXBlPiApIDxvcHRpb25hbD4gPHBh cmFtZXRlcj5udWxsIHRyZWF0bWVudDwvcGFyYW1ldGVyPiA8L29wdGlvbmFsPgogICAgICAgICA8 cmV0dXJudmFsdWU+YW55ZWxlbWVudDwvcmV0dXJudmFsdWU+CiAgICAgICAgPC9wYXJhPgogICAg ICAgIDxwYXJhPgpAQCAtMjY1LDE4ICsyNjUsMjYgQEAKICAgIE90aGVyIGZyYW1lIHNwZWNpZmlj YXRpb25zIGNhbiBiZSB1c2VkIHRvIG9idGFpbiBvdGhlciBlZmZlY3RzLgogICA8L3BhcmE+CiAK KyAgPHBhcmE+CisgICBUaGUgPGxpdGVyYWw+bnVsbCB0cmVhdG1lbnQ8L2xpdGVyYWw+IG9wdGlv biBtdXN0IGJlIG9uZSBvZjoKKzxzeW5vcHNpcz4KKyAgUkVTUEVDVCBOVUxMUworICBJR05PUkUg TlVMTFMKKzwvc3lub3BzaXM+CisgICBJZiB1bnNwZWNpZmllZCwgdGhlIGRlZmF1bHQgaXMgPGxp dGVyYWw+UkVTUEVDVCBOVUxMUzwvbGl0ZXJhbD4gd2hpY2ggaW5jbHVkZXMgTlVMTAorICAgdmFs dWVzIGluIGFueSByZXN1bHQgY2FsY3VsYXRpb24uIDxsaXRlcmFsPklHTk9SRSBOVUxMUzwvbGl0 ZXJhbD4gaWdub3JlcyBOVUxMIHZhbHVlcy4KKyAgIFRoaXMgb3B0aW9uIGlzIG9ubHkgYWxsb3dl ZCBmb3IgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnM6IDxmdW5jdGlvbj5sYWc8L2Z1bmN0aW9uPiwK KyAgIDxmdW5jdGlvbj5sZWFkPC9mdW5jdGlvbj4sIDxmdW5jdGlvbj5maXJzdF92YWx1ZTwvZnVu Y3Rpb24+LCA8ZnVuY3Rpb24+bGFzdF92YWx1ZTwvZnVuY3Rpb24+LAorICAgPGZ1bmN0aW9uPm50 aF92YWx1ZTwvZnVuY3Rpb24+LgorICA8L3BhcmE+CisKICAgPG5vdGU+CiAgICA8cGFyYT4KLSAg ICBUaGUgU1FMIHN0YW5kYXJkIGRlZmluZXMgYSA8bGl0ZXJhbD5SRVNQRUNUIE5VTExTPC9saXRl cmFsPiBvcgotICAgIDxsaXRlcmFsPklHTk9SRSBOVUxMUzwvbGl0ZXJhbD4gb3B0aW9uIGZvciA8 ZnVuY3Rpb24+bGVhZDwvZnVuY3Rpb24+LCA8ZnVuY3Rpb24+bGFnPC9mdW5jdGlvbj4sCi0gICAg PGZ1bmN0aW9uPmZpcnN0X3ZhbHVlPC9mdW5jdGlvbj4sIDxmdW5jdGlvbj5sYXN0X3ZhbHVlPC9m dW5jdGlvbj4sIGFuZAotICAgIDxmdW5jdGlvbj5udGhfdmFsdWU8L2Z1bmN0aW9uPi4gIFRoaXMg aXMgbm90IGltcGxlbWVudGVkIGluCi0gICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPjogdGhlIGJlaGF2aW9yIGlzIGFsd2F5cyB0aGUKLSAgICBzYW1lIGFzIHRoZSBzdGFu ZGFyZCdzIGRlZmF1bHQsIG5hbWVseSA8bGl0ZXJhbD5SRVNQRUNUIE5VTExTPC9saXRlcmFsPi4K LSAgICBMaWtld2lzZSwgdGhlIHN0YW5kYXJkJ3MgPGxpdGVyYWw+RlJPTSBGSVJTVDwvbGl0ZXJh bD4gb3IgPGxpdGVyYWw+RlJPTSBMQVNUPC9saXRlcmFsPgotICAgIG9wdGlvbiBmb3IgPGZ1bmN0 aW9uPm50aF92YWx1ZTwvZnVuY3Rpb24+IGlzIG5vdCBpbXBsZW1lbnRlZDogb25seSB0aGUKLSAg ICBkZWZhdWx0IDxsaXRlcmFsPkZST00gRklSU1Q8L2xpdGVyYWw+IGJlaGF2aW9yIGlzIHN1cHBv cnRlZC4gIChZb3UgY2FuIGFjaGlldmUKLSAgICB0aGUgcmVzdWx0IG9mIDxsaXRlcmFsPkZST00g TEFTVDwvbGl0ZXJhbD4gYnkgcmV2ZXJzaW5nIHRoZSA8bGl0ZXJhbD5PUkRFUiBCWTwvbGl0ZXJh bD4KKyAgICBUaGUgU1FMIHN0YW5kYXJkIGRlZmluZXMgYSA8bGl0ZXJhbD5GUk9NIEZJUlNUPC9s aXRlcmFsPiBvciA8bGl0ZXJhbD5GUk9NIExBU1Q8L2xpdGVyYWw+CisgICAgb3B0aW9uIGZvciA8 ZnVuY3Rpb24+bnRoX3ZhbHVlPC9mdW5jdGlvbj4uIFRoaXMgaXMgbm90IGltcGxlbWVudGVkIGlu CisgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPjogb25seSB0aGUgZGVm YXVsdCA8bGl0ZXJhbD5GUk9NIEZJUlNUPC9saXRlcmFsPgorICAgIGJlaGF2aW9yIGlzIHN1cHBv cnRlZC4gKFlvdSBjYW4gYWNoaWV2ZSB0aGUgcmVzdWx0IG9mIDxsaXRlcmFsPkZST00gTEFTVDwv bGl0ZXJhbD4gYnkKKyAgICByZXZlcnNpbmcgdGhlIDxsaXRlcmFsPk9SREVSIEJZPC9saXRlcmFs PgogICAgIG9yZGVyaW5nLikKICAgIDwvcGFyYT4KICAgPC9ub3RlPgotLSAKMi40My4wCgo= ----Next_Part(Thu_Oct__2_21_15_50_2025_460)-- Content-Type: Application/Octet-Stream Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v20-0006-Modify-window-function-regression-tests-to-test-.patch" RnJvbSAwNDFlOTVmNmIxMWY0YzljZmNkODg0ODA2MjFhYTcwYjhkMWQ3NTNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYXRzdW8gSXNoaWkgPGlzaGlpQHBvc3RncmVzcWwub3JnPgpE YXRlOiBUaHUsIDIgT2N0IDIwMjUgMjE6MDY6NDAgKzA5MDAKU3ViamVjdDogW1BBVENIIHYyMCA2 LzZdIE1vZGlmeSB3aW5kb3cgZnVuY3Rpb24gcmVncmVzc2lvbiB0ZXN0cyB0byB0ZXN0IG51bGwK IHRyZWF0bWVudCBjbGF1c2UuCgotLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2luZG93 Lm91dCB8IDQwNiArKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3dpbmRvdy5zcWwgICAgICB8IDE2MiArKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCA1 NjggaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv d2luZG93Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2luZG93Lm91dAppbmRleCBi ODZiNjY4ZjQzMy4uYTU5NWZhMjhjZTEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvd2luZG93Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpbmRvdy5v dXQKQEAgLTU0NTMsMyArNTQ1Myw0MDkgQEAgU0VMRUNUICogRlJPTSBwZ190ZW1wLmYoMik7CiAg ezV9CiAoNSByb3dzKQogCistLSBJR05PUkUgTlVMTFMgdGVzdHMKK0NSRUFURSBURU1QT1JBUlkg VEFCTEUgcGxhbmV0cyAoCisgICAgbmFtZSB0ZXh0LAorICAgIGRpc3RhbmNlIHRleHQsCisgICAg b3JiaXQgaW50ZWdlcgorKTsKK0lOU0VSVCBJTlRPIHBsYW5ldHMgVkFMVUVTCisgICgnbWVyY3Vy eScsICdjbG9zZScsIDg4KSwKKyAgKCd2ZW51cycsICdjbG9zZScsIDIyNCksCisgICgnZWFydGgn LCAnY2xvc2UnLCBOVUxMKSwKKyAgKCdtYXJzJywgJ2Nsb3NlJywgTlVMTCksCisgICgnanVwaXRl cicsICdjbG9zZScsIDQzMzIpLAorICAoJ3NhdHVybicsICdmYXInLCAyNDQ5MSksCisgICgndXJh bnVzJywgJ2ZhcicsIE5VTEwpLAorICAoJ25lcHR1bmUnLCAnZmFyJywgNjAxODIpLAorICAoJ3Bs dXRvJywgJ2ZhcicsIDkwNTYwKSwKKyAgKCd4eXp6eScsICdmYXInLCBOVUxMKTsKKy0tIHRlc3Qg cnVsZXV0aWxzCitDUkVBVEUgVklFVyBwbGFuZXRzX3ZpZXcgQVMKK1NFTEVDVCBuYW1lLAorICAg ICAgIG9yYml0LAorICAgICAgIGxhZyhvcmJpdCkgT1ZFUiB3IEFTIGxhZywKKyAgICAgICBsYWco b3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZFUiB3IEFTIGxhZ19yZXNwZWN0LAorICAgICAgIGxhZyhv cmJpdCkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsYWdfaWdub3JlCitGUk9NIHBsYW5ldHMKK1dJ TkRPVyB3IEFTIChPUkRFUiBCWSBuYW1lKQorOworTk9USUNFOiAgdmlldyAicGxhbmV0c192aWV3 IiB3aWxsIGJlIGEgdGVtcG9yYXJ5IHZpZXcKK1NFTEVDVCBwZ19nZXRfdmlld2RlZigncGxhbmV0 c192aWV3Jyk7CisgICAgICAgICAgICAgICAgICBwZ19nZXRfdmlld2RlZiAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgU0VMRUNUIG5hbWUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgICAg IG9yYml0LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKworICAgICBsYWco b3JiaXQpIE9WRVIgdyBBUyBsYWcsICAgICAgICAgICAgICAgICAgICsKKyAgICAgbGFnKG9yYml0 KSBPVkVSIHcgQVMgbGFnX3Jlc3BlY3QsICAgICAgICAgICArCisgICAgIGxhZyhvcmJpdCkgSUdO T1JFIE5VTExTIE9WRVIgdyBBUyBsYWdfaWdub3JlKworICAgIEZST00gcGxhbmV0cyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICsKKyAgIFdJTkRPVyB3IEFTIChPUkRFUiBCWSBuYW1l KTsKKygxIHJvdykKKworLS0gbGFnCitTRUxFQ1QgbmFtZSwKKyAgICAgICBvcmJpdCwKKyAgICAg ICBsYWcob3JiaXQpIE9WRVIgdyBBUyBsYWcsCisgICAgICAgbGFnKG9yYml0KSBSRVNQRUNUIE5V TExTIE9WRVIgdyBBUyBsYWdfcmVzcGVjdCwKKyAgICAgICBsYWcob3JiaXQpIElHTk9SRSBOVUxM UyBPVkVSIHcgQVMgbGFnX2lnbm9yZQorRlJPTSBwbGFuZXRzCitXSU5ET1cgdyBBUyAoT1JERVIg QlkgbmFtZSkKKzsKKyAgbmFtZSAgIHwgb3JiaXQgfCAgbGFnICB8IGxhZ19yZXNwZWN0IHwgbGFn X2lnbm9yZSAKKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBlYXJ0aCAgIHwgICAgICAgfCAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgICAg IAorIGp1cGl0ZXIgfCAgNDMzMiB8ICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgCisg bWFycyAgICB8ICAgICAgIHwgIDQzMzIgfCAgICAgICAgNDMzMiB8ICAgICAgIDQzMzIKKyBtZXJj dXJ5IHwgICAgODggfCAgICAgICB8ICAgICAgICAgICAgIHwgICAgICAgNDMzMgorIG5lcHR1bmUg fCA2MDE4MiB8ICAgIDg4IHwgICAgICAgICAgODggfCAgICAgICAgIDg4CisgcGx1dG8gICB8IDkw NTYwIHwgNjAxODIgfCAgICAgICA2MDE4MiB8ICAgICAgNjAxODIKKyBzYXR1cm4gIHwgMjQ0OTEg fCA5MDU2MCB8ICAgICAgIDkwNTYwIHwgICAgICA5MDU2MAorIHVyYW51cyAgfCAgICAgICB8IDI0 NDkxIHwgICAgICAgMjQ0OTEgfCAgICAgIDI0NDkxCisgdmVudXMgICB8ICAgMjI0IHwgICAgICAg fCAgICAgICAgICAgICB8ICAgICAgMjQ0OTEKKyB4eXp6eSAgIHwgICAgICAgfCAgIDIyNCB8ICAg ICAgICAgMjI0IHwgICAgICAgIDIyNAorKDEwIHJvd3MpCisKKy0tIGxlYWQKK1NFTEVDVCBuYW1l LAorICAgICAgIG9yYml0LAorICAgICAgIGxlYWQob3JiaXQpIE9WRVIgdyBBUyBsZWFkLAorICAg ICAgIGxlYWQob3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZFUiB3IEFTIGxlYWRfcmVzcGVjdCwKKyAg ICAgICBsZWFkKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGxlYWRfaWdub3JlCitGUk9N IHBsYW5ldHMKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBuYW1lKQorOworICBuYW1lICAgfCBvcmJp dCB8IGxlYWQgIHwgbGVhZF9yZXNwZWN0IHwgbGVhZF9pZ25vcmUgCistLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBlYXJ0aCAgIHwgICAgICAg fCAgNDMzMiB8ICAgICAgICAgNDMzMiB8ICAgICAgICA0MzMyCisganVwaXRlciB8ICA0MzMyIHwg ICAgICAgfCAgICAgICAgICAgICAgfCAgICAgICAgICA4OAorIG1hcnMgICAgfCAgICAgICB8ICAg IDg4IHwgICAgICAgICAgIDg4IHwgICAgICAgICAgODgKKyBtZXJjdXJ5IHwgICAgODggfCA2MDE4 MiB8ICAgICAgICA2MDE4MiB8ICAgICAgIDYwMTgyCisgbmVwdHVuZSB8IDYwMTgyIHwgOTA1NjAg fCAgICAgICAgOTA1NjAgfCAgICAgICA5MDU2MAorIHBsdXRvICAgfCA5MDU2MCB8IDI0NDkxIHwg ICAgICAgIDI0NDkxIHwgICAgICAgMjQ0OTEKKyBzYXR1cm4gIHwgMjQ0OTEgfCAgICAgICB8ICAg ICAgICAgICAgICB8ICAgICAgICAgMjI0CisgdXJhbnVzICB8ICAgICAgIHwgICAyMjQgfCAgICAg ICAgICAyMjQgfCAgICAgICAgIDIyNAorIHZlbnVzICAgfCAgIDIyNCB8ICAgICAgIHwgICAgICAg ICAgICAgIHwgICAgICAgICAgICAKKyB4eXp6eSAgIHwgICAgICAgfCAgICAgICB8ICAgICAgICAg ICAgICB8ICAgICAgICAgICAgCisoMTAgcm93cykKKworLS0gZmlyc3RfdmFsdWUKK1NFTEVDVCBu YW1lLAorICAgICAgIG9yYml0LAorICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBSRVNQRUNUIE5V TExTIE9WRVIgdzEsCisgICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVS IHcxLAorICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBSRVNQRUNUIE5VTExTIE9WRVIgdzIsCisg ICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcyCitGUk9NIHBsYW5l dHMKK1dJTkRPVyB3MSBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBS RUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyksCisgICAgICAgdzIgQVMgKE9SREVSIEJZ IG5hbWUgUk9XUyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZPTExPV0lORykKKzsKKyAgbmFt ZSAgIHwgb3JiaXQgfCBmaXJzdF92YWx1ZSB8IGZpcnN0X3ZhbHVlIHwgZmlyc3RfdmFsdWUgfCBm aXJzdF92YWx1ZSAKKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBlYXJ0aCAgIHwgICAgICAgfCAgICAgICAg ICAgICB8ICAgICAgICA0MzMyIHwgICAgICAgICAgICAgfCAgICAgICAgNDMzMgorIGp1cGl0ZXIg fCAgNDMzMiB8ICAgICAgICAgICAgIHwgICAgICAgIDQzMzIgfCAgICAgICAgICAgICB8ICAgICAg ICA0MzMyCisgbWFycyAgICB8ICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgNDMzMiB8ICAg ICAgICAgICAgIHwgICAgICAgIDQzMzIKKyBtZXJjdXJ5IHwgICAgODggfCAgICAgICAgICAgICB8 ICAgICAgICA0MzMyIHwgICAgICAgIDQzMzIgfCAgICAgICAgNDMzMgorIG5lcHR1bmUgfCA2MDE4 MiB8ICAgICAgICAgICAgIHwgICAgICAgIDQzMzIgfCAgICAgICAgICAgICB8ICAgICAgICAgIDg4 CisgcGx1dG8gICB8IDkwNTYwIHwgICAgICAgICAgICAgfCAgICAgICAgNDMzMiB8ICAgICAgICAg IDg4IHwgICAgICAgICAgODgKKyBzYXR1cm4gIHwgMjQ0OTEgfCAgICAgICAgICAgICB8ICAgICAg ICA0MzMyIHwgICAgICAgNjAxODIgfCAgICAgICA2MDE4MgorIHVyYW51cyAgfCAgICAgICB8ICAg ICAgICAgICAgIHwgICAgICAgIDQzMzIgfCAgICAgICA5MDU2MCB8ICAgICAgIDkwNTYwCisgdmVu dXMgICB8ICAgMjI0IHwgICAgICAgICAgICAgfCAgICAgICAgNDMzMiB8ICAgICAgIDI0NDkxIHwg ICAgICAgMjQ0OTEKKyB4eXp6eSAgIHwgICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICA0MzMy IHwgICAgICAgICAgICAgfCAgICAgICAgIDIyNAorKDEwIHJvd3MpCisKKy0tIG50aF92YWx1ZQor U0VMRUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBS RVNQRUNUIE5VTExTIE9WRVIgdzEsCisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBJR05PUkUg TlVMTFMgT1ZFUiB3MSwKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIFJFU1BFQ1QgTlVMTFMg T1ZFUiB3MiwKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcy CitGUk9NIHBsYW5ldHMKK1dJTkRPVyB3MSBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4g VU5CT1VOREVEIFBSRUNFRElORyBBTkQgVU5CT1VOREVEIEZPTExPV0lORyksCisgICAgICAgdzIg QVMgKE9SREVSIEJZIG5hbWUgUk9XUyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZPTExPV0lO RykKKzsKKyAgbmFtZSAgIHwgb3JiaXQgfCBudGhfdmFsdWUgfCBudGhfdmFsdWUgfCBudGhfdmFs dWUgfCBudGhfdmFsdWUgCistLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIGVhcnRoICAgfCAgICAgICB8ICAgICAgNDMzMiB8 ICAgICAgICA4OCB8ICAgICAgNDMzMiB8ICAgICAgICAgIAorIGp1cGl0ZXIgfCAgNDMzMiB8ICAg ICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgNDMzMiB8ICAgICAgICA4OAorIG1hcnMgICAgfCAg ICAgICB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgNDMzMiB8ICAgICAgICA4OAorIG1l cmN1cnkgfCAgICA4OCB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgICAgICB8ICAgICAg ICA4OAorIG5lcHR1bmUgfCA2MDE4MiB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgICA4 OCB8ICAgICA2MDE4MgorIHBsdXRvICAgfCA5MDU2MCB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8 ICAgICA2MDE4MiB8ICAgICA2MDE4MgorIHNhdHVybiAgfCAyNDQ5MSB8ICAgICAgNDMzMiB8ICAg ICAgICA4OCB8ICAgICA5MDU2MCB8ICAgICA5MDU2MAorIHVyYW51cyAgfCAgICAgICB8ICAgICAg NDMzMiB8ICAgICAgICA4OCB8ICAgICAyNDQ5MSB8ICAgICAyNDQ5MQorIHZlbnVzICAgfCAgIDIy NCB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgICAgICB8ICAgICAgIDIyNAorIHh5enp5 ICAgfCAgICAgICB8ICAgICAgNDMzMiB8ICAgICAgICA4OCB8ICAgICAgIDIyNCB8ICAgICAgICAg IAorKDEwIHJvd3MpCisKKy0tIGxhc3RfdmFsdWUKK1NFTEVDVCBuYW1lLAorICAgICAgIG9yYml0 LAorICAgICAgIGxhc3RfdmFsdWUob3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZFUiB3MSwKKyAgICAg ICBsYXN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3MSwKKyAgICAgICBsYXN0X3Zh bHVlKG9yYml0KSBSRVNQRUNUIE5VTExTIE9WRVIgdzIsCisgICAgICAgbGFzdF92YWx1ZShvcmJp dCkgSUdOT1JFIE5VTExTIE9WRVIgdzIKK0ZST00gcGxhbmV0cworV0lORE9XIHcxIEFTIChPUkRF UiBCWSBuYW1lIFJPV1MgQkVUV0VFTiBVTkJPVU5ERUQgUFJFQ0VESU5HIEFORCBVTkJPVU5ERUQg Rk9MTE9XSU5HKSwKKyAgICAgICB3MiBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gMiBQ UkVDRURJTkcgQU5EIDIgRk9MTE9XSU5HKQorOworICBuYW1lICAgfCBvcmJpdCB8IGxhc3RfdmFs dWUgfCBsYXN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IGxhc3RfdmFsdWUgCistLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBlYXJ0aCAgIHwgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgIDIyNCB8ICAgICAgICAgICAg fCAgICAgICA0MzMyCisganVwaXRlciB8ICA0MzMyIHwgICAgICAgICAgICB8ICAgICAgICAyMjQg fCAgICAgICAgIDg4IHwgICAgICAgICA4OAorIG1hcnMgICAgfCAgICAgICB8ICAgICAgICAgICAg fCAgICAgICAgMjI0IHwgICAgICA2MDE4MiB8ICAgICAgNjAxODIKKyBtZXJjdXJ5IHwgICAgODgg fCAgICAgICAgICAgIHwgICAgICAgIDIyNCB8ICAgICAgOTA1NjAgfCAgICAgIDkwNTYwCisgbmVw dHVuZSB8IDYwMTgyIHwgICAgICAgICAgICB8ICAgICAgICAyMjQgfCAgICAgIDI0NDkxIHwgICAg ICAyNDQ5MQorIHBsdXRvICAgfCA5MDU2MCB8ICAgICAgICAgICAgfCAgICAgICAgMjI0IHwgICAg ICAgICAgICB8ICAgICAgMjQ0OTEKKyBzYXR1cm4gIHwgMjQ0OTEgfCAgICAgICAgICAgIHwgICAg ICAgIDIyNCB8ICAgICAgICAyMjQgfCAgICAgICAgMjI0CisgdXJhbnVzICB8ICAgICAgIHwgICAg ICAgICAgICB8ICAgICAgICAyMjQgfCAgICAgICAgICAgIHwgICAgICAgIDIyNAorIHZlbnVzICAg fCAgIDIyNCB8ICAgICAgICAgICAgfCAgICAgICAgMjI0IHwgICAgICAgICAgICB8ICAgICAgICAy MjQKKyB4eXp6eSAgIHwgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgIDIyNCB8ICAgICAgICAg ICAgfCAgICAgICAgMjI0CisoMTAgcm93cykKKworLS0gZXhjbHVkZSBjdXJyZW50IHJvdworU0VM RUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElHTk9S RSBOVUxMUyBPVkVSIHcsCisgICAgICAgbGFzdF92YWx1ZShvcmJpdCkgSUdOT1JFIE5VTExTIE9W RVIgdywKKyAgICAgICBudGhfdmFsdWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisg ICAgICAgbGVhZChvcmJpdCwgMSkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsZWFkX2lnbm9yZSwK KyAgICAgICBsYWcob3JiaXQsIDEpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGFnX2lnbm9yZQor RlJPTSBwbGFuZXRzCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gMiBQ UkVDRURJTkcgQU5EIDIgRk9MTE9XSU5HIEVYQ0xVREUgQ1VSUkVOVCBST1cpCis7CisgIG5hbWUg ICB8IG9yYml0IHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgbnRoX3ZhbHVlIHwgbGVhZF9p Z25vcmUgfCBsYWdfaWdub3JlIAorLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBlYXJ0aCAg IHwgICAgICAgfCAgICAgICAgNDMzMiB8ICAgICAgIDQzMzIgfCAgICAgICAgICAgfCAgICAgICAg NDMzMiB8ICAgICAgICAgICAKKyBqdXBpdGVyIHwgIDQzMzIgfCAgICAgICAgICA4OCB8ICAgICAg ICAgODggfCAgICAgICAgICAgfCAgICAgICAgICA4OCB8ICAgICAgICAgICAKKyBtYXJzICAgIHwg ICAgICAgfCAgICAgICAgNDMzMiB8ICAgICAgNjAxODIgfCAgICAgICAgODggfCAgICAgICAgICA4 OCB8ICAgICAgIDQzMzIKKyBtZXJjdXJ5IHwgICAgODggfCAgICAgICAgNDMzMiB8ICAgICAgOTA1 NjAgfCAgICAgNjAxODIgfCAgICAgICA2MDE4MiB8ICAgICAgIDQzMzIKKyBuZXB0dW5lIHwgNjAx ODIgfCAgICAgICAgICA4OCB8ICAgICAgMjQ0OTEgfCAgICAgOTA1NjAgfCAgICAgICA5MDU2MCB8 ICAgICAgICAgODgKKyBwbHV0byAgIHwgOTA1NjAgfCAgICAgICAgICA4OCB8ICAgICAgMjQ0OTEg fCAgICAgNjAxODIgfCAgICAgICAyNDQ5MSB8ICAgICAgNjAxODIKKyBzYXR1cm4gIHwgMjQ0OTEg fCAgICAgICA2MDE4MiB8ICAgICAgICAyMjQgfCAgICAgOTA1NjAgfCAgICAgICAgIDIyNCB8ICAg ICAgOTA1NjAKKyB1cmFudXMgIHwgICAgICAgfCAgICAgICA5MDU2MCB8ICAgICAgICAyMjQgfCAg ICAgMjQ0OTEgfCAgICAgICAgIDIyNCB8ICAgICAgMjQ0OTEKKyB2ZW51cyAgIHwgICAyMjQgfCAg ICAgICAyNDQ5MSB8ICAgICAgMjQ0OTEgfCAgICAgICAgICAgfCAgICAgICAgICAgICB8ICAgICAg MjQ0OTEKKyB4eXp6eSAgIHwgICAgICAgfCAgICAgICAgIDIyNCB8ICAgICAgICAyMjQgfCAgICAg ICAgICAgfCAgICAgICAgICAgICB8ICAgICAgICAyMjQKKygxMCByb3dzKQorCistLSB2YWxpZCBh bmQgaW52YWxpZCBmdW5jdGlvbnMKK1NFTEVDVCBzdW0ob3JiaXQpIE9WRVIgKCkgRlJPTSBwbGFu ZXRzOyAtLSBzdWNjZWVkcworICBzdW0gICAKKy0tLS0tLS0tCisgMTc5ODc3CisgMTc5ODc3Cisg MTc5ODc3CisgMTc5ODc3CisgMTc5ODc3CisgMTc5ODc3CisgMTc5ODc3CisgMTc5ODc3CisgMTc5 ODc3CisgMTc5ODc3CisoMTAgcm93cykKKworU0VMRUNUIHN1bShvcmJpdCkgUkVTUEVDVCBOVUxM UyBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gZmFpbHMKK0VSUk9SOiAgYWdncmVnYXRlIGZ1bmN0 aW9ucyBkbyBub3QgYWNjZXB0IFJFU1BFQ1QvSUdOT1JFIE5VTExTCitMSU5FIDE6IFNFTEVDVCBz dW0ob3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7CisgICAgICAgICAg ICAgICBeCitTRUxFQ1Qgc3VtKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiAoKSBGUk9NIHBsYW5l dHM7IC0tIGZhaWxzCitFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgZG8gbm90IGFjY2VwdCBS RVNQRUNUL0lHTk9SRSBOVUxMUworTElORSAxOiBTRUxFQ1Qgc3VtKG9yYml0KSBJR05PUkUgTlVM TFMgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7CisgICAgICAgICAgICAgICBeCitTRUxFQ1Qgcm93X251 bWJlcigpIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBzdWNjZWVkcworIHJvd19udW1iZXIgCist LS0tLS0tLS0tLS0KKyAgICAgICAgICAxCisgICAgICAgICAgMgorICAgICAgICAgIDMKKyAgICAg ICAgICA0CisgICAgICAgICAgNQorICAgICAgICAgIDYKKyAgICAgICAgICA3CisgICAgICAgICAg OAorICAgICAgICAgIDkKKyAgICAgICAgIDEwCisoMTAgcm93cykKKworU0VMRUNUIHJvd19udW1i ZXIoKSBSRVNQRUNUIE5VTExTIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBmYWlscworRVJST1I6 ICBmdW5jdGlvbiByb3dfbnVtYmVyIGRvZXMgbm90IGFsbG93IFJFU1BFQ1QvSUdOT1JFIE5VTExT CitTRUxFQ1Qgcm93X251bWJlcigpIElHTk9SRSBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0czsg LS0gZmFpbHMKK0VSUk9SOiAgZnVuY3Rpb24gcm93X251bWJlciBkb2VzIG5vdCBhbGxvdyBSRVNQ RUNUL0lHTk9SRSBOVUxMUworU0VMRUNUIHJhbmsoKSBPVkVSICgpIEZST00gcGxhbmV0czsgLS0g c3VjY2VlZHMKKyByYW5rIAorLS0tLS0tCisgICAgMQorICAgIDEKKyAgICAxCisgICAgMQorICAg IDEKKyAgICAxCisgICAgMQorICAgIDEKKyAgICAxCisgICAgMQorKDEwIHJvd3MpCisKK1NFTEVD VCByYW5rKCkgUkVTUEVDVCBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gZmFpbHMKK0VS Uk9SOiAgZnVuY3Rpb24gcmFuayBkb2VzIG5vdCBhbGxvdyBSRVNQRUNUL0lHTk9SRSBOVUxMUwor U0VMRUNUIHJhbmsoKSBJR05PUkUgTlVMTFMgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7IC0tIGZhaWxz CitFUlJPUjogIGZ1bmN0aW9uIHJhbmsgZG9lcyBub3QgYWxsb3cgUkVTUEVDVC9JR05PUkUgTlVM TFMKK1NFTEVDVCBkZW5zZV9yYW5rKCkgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7IC0tIHN1Y2NlZWRz CisgZGVuc2VfcmFuayAKKy0tLS0tLS0tLS0tLQorICAgICAgICAgIDEKKyAgICAgICAgICAxCisg ICAgICAgICAgMQorICAgICAgICAgIDEKKyAgICAgICAgICAxCisgICAgICAgICAgMQorICAgICAg ICAgIDEKKyAgICAgICAgICAxCisgICAgICAgICAgMQorICAgICAgICAgIDEKKygxMCByb3dzKQor CitTRUxFQ1QgZGVuc2VfcmFuaygpIFJFU1BFQ1QgTlVMTFMgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7 IC0tIGZhaWxzCitFUlJPUjogIGZ1bmN0aW9uIGRlbnNlX3JhbmsgZG9lcyBub3QgYWxsb3cgUkVT UEVDVC9JR05PUkUgTlVMTFMKK1NFTEVDVCBkZW5zZV9yYW5rKCkgSUdOT1JFIE5VTExTIE9WRVIg KCkgRlJPTSBwbGFuZXRzOyAtLSBmYWlscworRVJST1I6ICBmdW5jdGlvbiBkZW5zZV9yYW5rIGRv ZXMgbm90IGFsbG93IFJFU1BFQ1QvSUdOT1JFIE5VTExTCitTRUxFQ1QgcGVyY2VudF9yYW5rKCkg T1ZFUiAoKSBGUk9NIHBsYW5ldHM7IC0tIHN1Y2NlZWRzCisgcGVyY2VudF9yYW5rIAorLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgIDAKKyAgICAgICAgICAgIDAKKyAgICAgICAgICAgIDAKKyAg ICAgICAgICAgIDAKKyAgICAgICAgICAgIDAKKyAgICAgICAgICAgIDAKKyAgICAgICAgICAgIDAK KyAgICAgICAgICAgIDAKKyAgICAgICAgICAgIDAKKyAgICAgICAgICAgIDAKKygxMCByb3dzKQor CitTRUxFQ1QgcGVyY2VudF9yYW5rKCkgUkVTUEVDVCBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0 czsgLS0gZmFpbHMKK0VSUk9SOiAgZnVuY3Rpb24gcGVyY2VudF9yYW5rIGRvZXMgbm90IGFsbG93 IFJFU1BFQ1QvSUdOT1JFIE5VTExTCitTRUxFQ1QgcGVyY2VudF9yYW5rKCkgSUdOT1JFIE5VTExT IE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBmYWlscworRVJST1I6ICBmdW5jdGlvbiBwZXJjZW50 X3JhbmsgZG9lcyBub3QgYWxsb3cgUkVTUEVDVC9JR05PUkUgTlVMTFMKK1NFTEVDVCBjdW1lX2Rp c3QoKSBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gc3VjY2VlZHMKKyBjdW1lX2Rpc3QgCistLS0t LS0tLS0tLQorICAgICAgICAgMQorICAgICAgICAgMQorICAgICAgICAgMQorICAgICAgICAgMQor ICAgICAgICAgMQorICAgICAgICAgMQorICAgICAgICAgMQorICAgICAgICAgMQorICAgICAgICAg MQorICAgICAgICAgMQorKDEwIHJvd3MpCisKK1NFTEVDVCBjdW1lX2Rpc3QoKSBSRVNQRUNUIE5V TExTIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBmYWlscworRVJST1I6ICBmdW5jdGlvbiBjdW1l X2Rpc3QgZG9lcyBub3QgYWxsb3cgUkVTUEVDVC9JR05PUkUgTlVMTFMKK1NFTEVDVCBjdW1lX2Rp c3QoKSBJR05PUkUgTlVMTFMgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7IC0tIGZhaWxzCitFUlJPUjog IGZ1bmN0aW9uIGN1bWVfZGlzdCBkb2VzIG5vdCBhbGxvdyBSRVNQRUNUL0lHTk9SRSBOVUxMUwor U0VMRUNUIG50aWxlKDEpIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBzdWNjZWVkcworIG50aWxl IAorLS0tLS0tLQorICAgICAxCisgICAgIDEKKyAgICAgMQorICAgICAxCisgICAgIDEKKyAgICAg MQorICAgICAxCisgICAgIDEKKyAgICAgMQorICAgICAxCisoMTAgcm93cykKKworU0VMRUNUIG50 aWxlKDEpIFJFU1BFQ1QgTlVMTFMgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7IC0tIGZhaWxzCitFUlJP UjogIGZ1bmN0aW9uIG50aWxlIGRvZXMgbm90IGFsbG93IFJFU1BFQ1QvSUdOT1JFIE5VTExTCitT RUxFQ1QgbnRpbGUoMSkgSUdOT1JFIE5VTExTIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBmYWls cworRVJST1I6ICBmdW5jdGlvbiBudGlsZSBkb2VzIG5vdCBhbGxvdyBSRVNQRUNUL0lHTk9SRSBO VUxMUworLS0gdGVzdCB0d28gY29uc2VjdXRpdmUgbnVsbHMKK3VwZGF0ZSBwbGFuZXRzIHNldCBv cmJpdD1udWxsIHdoZXJlIG5hbWU9J2p1cGl0ZXInOworU0VMRUNUIG5hbWUsCisgICAgICAgb3Ji aXQsCisgICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgICAg ICAgbGFzdF92YWx1ZShvcmJpdCkgSUdOT1JFIE5VTExTIE9WRVIgdywKKyAgICAgICBudGhfdmFs dWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgICAgICAgbGVhZChvcmJpdCwgMSkg SUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsZWFkX2lnbm9yZSwKKyAgICAgICBsYWcob3JiaXQsIDEp IElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGFnX2lnbm9yZQorRlJPTSBwbGFuZXRzCitXSU5ET1cg dyBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gMiBQUkVDRURJTkcgQU5EIDIgRk9MTE9X SU5HKQorOworICBuYW1lICAgfCBvcmJpdCB8IGZpcnN0X3ZhbHVlIHwgbGFzdF92YWx1ZSB8IG50 aF92YWx1ZSB8IGxlYWRfaWdub3JlIHwgbGFnX2lnbm9yZSAKKy0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgZWFydGggICB8ICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgODggfCAgICAgICAgICAgCisganVwaXRlciB8ICAgICAgIHwgICAg ICAgICAgODggfCAgICAgICAgIDg4IHwgICAgICAgICAgIHwgICAgICAgICAgODggfCAgICAgICAg ICAgCisgbWFycyAgICB8ICAgICAgIHwgICAgICAgICAgODggfCAgICAgIDYwMTgyIHwgICAgIDYw MTgyIHwgICAgICAgICAgODggfCAgICAgICAgICAgCisgbWVyY3VyeSB8ICAgIDg4IHwgICAgICAg ICAgODggfCAgICAgIDkwNTYwIHwgICAgIDYwMTgyIHwgICAgICAgNjAxODIgfCAgICAgICAgICAg CisgbmVwdHVuZSB8IDYwMTgyIHwgICAgICAgICAgODggfCAgICAgIDI0NDkxIHwgICAgIDYwMTgy IHwgICAgICAgOTA1NjAgfCAgICAgICAgIDg4CisgcGx1dG8gICB8IDkwNTYwIHwgICAgICAgICAg ODggfCAgICAgIDI0NDkxIHwgICAgIDYwMTgyIHwgICAgICAgMjQ0OTEgfCAgICAgIDYwMTgyCisg c2F0dXJuICB8IDI0NDkxIHwgICAgICAgNjAxODIgfCAgICAgICAgMjI0IHwgICAgIDkwNTYwIHwg ICAgICAgICAyMjQgfCAgICAgIDkwNTYwCisgdXJhbnVzICB8ICAgICAgIHwgICAgICAgOTA1NjAg fCAgICAgICAgMjI0IHwgICAgIDI0NDkxIHwgICAgICAgICAyMjQgfCAgICAgIDI0NDkxCisgdmVu dXMgICB8ICAgMjI0IHwgICAgICAgMjQ0OTEgfCAgICAgICAgMjI0IHwgICAgICAgMjI0IHwgICAg ICAgICAgICAgfCAgICAgIDI0NDkxCisgeHl6enkgICB8ICAgICAgIHwgICAgICAgICAyMjQgfCAg ICAgICAgMjI0IHwgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAgMjI0CisoMTAgcm93 cykKKworLS0gdGVzdCBwYXJ0aXRpb25zCitTRUxFQ1QgbmFtZSwKKyAgICAgICBkaXN0YW5jZSwK KyAgICAgICBvcmJpdCwKKyAgICAgICBmaXJzdF92YWx1ZShvcmJpdCkgSUdOT1JFIE5VTExTIE9W RVIgdywKKyAgICAgICBsYXN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3LAorICAg ICAgIG50aF92YWx1ZShvcmJpdCwgMikgSUdOT1JFIE5VTExTIE9WRVIgdywKKyAgICAgICBsZWFk KG9yYml0LCAxKSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGxlYWRfaWdub3JlLAorICAgICAgIGxh ZyhvcmJpdCwgMSkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsYWdfaWdub3JlCitGUk9NIHBsYW5l dHMKK1dJTkRPVyB3IEFTIChQQVJUSVRJT04gQlkgZGlzdGFuY2UgT1JERVIgQlkgbmFtZSBST1dT IEJFVFdFRU4gMiBQUkVDRURJTkcgQU5EIDIgRk9MTE9XSU5HKQorOworICBuYW1lICAgfCBkaXN0 YW5jZSB8IG9yYml0IHwgZmlyc3RfdmFsdWUgfCBsYXN0X3ZhbHVlIHwgbnRoX3ZhbHVlIHwgbGVh ZF9pZ25vcmUgfCBsYWdfaWdub3JlIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIGVhcnRoICAgfCBjbG9zZSAgICB8ICAgICAgIHwgICAgICAgICAgICAgfCAgICAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgODggfCAgICAgICAgICAgCisganVwaXRlciB8IGNs b3NlICAgIHwgICAgICAgfCAgICAgICAgICA4OCB8ICAgICAgICAgODggfCAgICAgICAgICAgfCAg ICAgICAgICA4OCB8ICAgICAgICAgICAKKyBtYXJzICAgIHwgY2xvc2UgICAgfCAgICAgICB8ICAg ICAgICAgIDg4IHwgICAgICAgIDIyNCB8ICAgICAgIDIyNCB8ICAgICAgICAgIDg4IHwgICAgICAg ICAgIAorIG1lcmN1cnkgfCBjbG9zZSAgICB8ICAgIDg4IHwgICAgICAgICAgODggfCAgICAgICAg MjI0IHwgICAgICAgMjI0IHwgICAgICAgICAyMjQgfCAgICAgICAgICAgCisgdmVudXMgICB8IGNs b3NlICAgIHwgICAyMjQgfCAgICAgICAgICA4OCB8ICAgICAgICAyMjQgfCAgICAgICAyMjQgfCAg ICAgICAgICAgICB8ICAgICAgICAgODgKKyBuZXB0dW5lIHwgZmFyICAgICAgfCA2MDE4MiB8ICAg ICAgIDYwMTgyIHwgICAgICAyNDQ5MSB8ICAgICA5MDU2MCB8ICAgICAgIDkwNTYwIHwgICAgICAg ICAgIAorIHBsdXRvICAgfCBmYXIgICAgICB8IDkwNTYwIHwgICAgICAgNjAxODIgfCAgICAgIDI0 NDkxIHwgICAgIDkwNTYwIHwgICAgICAgMjQ0OTEgfCAgICAgIDYwMTgyCisgc2F0dXJuICB8IGZh ciAgICAgIHwgMjQ0OTEgfCAgICAgICA2MDE4MiB8ICAgICAgMjQ0OTEgfCAgICAgOTA1NjAgfCAg ICAgICAgICAgICB8ICAgICAgOTA1NjAKKyB1cmFudXMgIHwgZmFyICAgICAgfCAgICAgICB8ICAg ICAgIDkwNTYwIHwgICAgICAyNDQ5MSB8ICAgICAyNDQ5MSB8ICAgICAgICAgICAgIHwgICAgICAy NDQ5MQorIHh5enp5ICAgfCBmYXIgICAgICB8ICAgICAgIHwgICAgICAgMjQ0OTEgfCAgICAgIDI0 NDkxIHwgICAgICAgICAgIHwgICAgICAgICAgICAgfCAgICAgIDI0NDkxCisoMTAgcm93cykKKwor LS0gbnRoX3ZhbHVlIHdpdGhvdXQgbnVsbHMKK1NFTEVDVCB4LAorICAgICAgIG50aF92YWx1ZSh4 LDIpIElHTk9SRSBOVUxMUyBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2VyaWVzKDEsNSkgZyh4KQor V0lORE9XIHcgQVMgKE9SREVSIEJZIHggUk9XUyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZP TExPV0lORyBFWENMVURFIENVUlJFTlQgUk9XKTsKKyB4IHwgbnRoX3ZhbHVlIAorLS0tKy0tLS0t LS0tLS0tCisgMSB8ICAgICAgICAgMworIDIgfCAgICAgICAgIDMKKyAzIHwgICAgICAgICAyCisg NCB8ICAgICAgICAgMworIDUgfCAgICAgICAgIDQKKyg1IHJvd3MpCisKK1NFTEVDVCB4LAorICAg ICAgIG50aF92YWx1ZSh4LDIpIElHTk9SRSBOVUxMUyBPVkVSIHcKK0ZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsNSkgZyh4KQorV0lORE9XIHcgQVMgKE9SREVSIEJZIHggUk9XUyBCRVRXRUVOIDIgUFJF Q0VESU5HIEFORCAyIEZPTExPV0lORyk7CisgeCB8IG50aF92YWx1ZSAKKy0tLSstLS0tLS0tLS0t LQorIDEgfCAgICAgICAgIDIKKyAyIHwgICAgICAgICAyCisgMyB8ICAgICAgICAgMgorIDQgfCAg ICAgICAgIDMKKyA1IHwgICAgICAgICA0CisoNSByb3dzKQorCistLWNsZWFudXAKK0RST1AgVEFC TEUgcGxhbmV0cyBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHBsYW5l dHNfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2luZG93LnNxbCBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpbmRvdy5zcWwKaW5kZXggMDJmMTA1ZjA3MGUuLjg1ZmM2MjFj OGRiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aW5kb3cuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpbmRvdy5zcWwKQEAgLTE5NTgsMyArMTk1OCwxNjUgQEAgJCQg TEFOR1VBR0UgU1FMIFNUQUJMRTsKIAogRVhQTEFJTiAoY29zdHMgb2ZmKSBTRUxFQ1QgKiBGUk9N IHBnX3RlbXAuZigyKTsKIFNFTEVDVCAqIEZST00gcGdfdGVtcC5mKDIpOworCistLSBJR05PUkUg TlVMTFMgdGVzdHMKKworQ1JFQVRFIFRFTVBPUkFSWSBUQUJMRSBwbGFuZXRzICgKKyAgICBuYW1l IHRleHQsCisgICAgZGlzdGFuY2UgdGV4dCwKKyAgICBvcmJpdCBpbnRlZ2VyCispOworCitJTlNF UlQgSU5UTyBwbGFuZXRzIFZBTFVFUworICAoJ21lcmN1cnknLCAnY2xvc2UnLCA4OCksCisgICgn dmVudXMnLCAnY2xvc2UnLCAyMjQpLAorICAoJ2VhcnRoJywgJ2Nsb3NlJywgTlVMTCksCisgICgn bWFycycsICdjbG9zZScsIE5VTEwpLAorICAoJ2p1cGl0ZXInLCAnY2xvc2UnLCA0MzMyKSwKKyAg KCdzYXR1cm4nLCAnZmFyJywgMjQ0OTEpLAorICAoJ3VyYW51cycsICdmYXInLCBOVUxMKSwKKyAg KCduZXB0dW5lJywgJ2ZhcicsIDYwMTgyKSwKKyAgKCdwbHV0bycsICdmYXInLCA5MDU2MCksCisg ICgneHl6enknLCAnZmFyJywgTlVMTCk7CisKKy0tIHRlc3QgcnVsZXV0aWxzCitDUkVBVEUgVklF VyBwbGFuZXRzX3ZpZXcgQVMKK1NFTEVDVCBuYW1lLAorICAgICAgIG9yYml0LAorICAgICAgIGxh ZyhvcmJpdCkgT1ZFUiB3IEFTIGxhZywKKyAgICAgICBsYWcob3JiaXQpIFJFU1BFQ1QgTlVMTFMg T1ZFUiB3IEFTIGxhZ19yZXNwZWN0LAorICAgICAgIGxhZyhvcmJpdCkgSUdOT1JFIE5VTExTIE9W RVIgdyBBUyBsYWdfaWdub3JlCitGUk9NIHBsYW5ldHMKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSBu YW1lKQorOworU0VMRUNUIHBnX2dldF92aWV3ZGVmKCdwbGFuZXRzX3ZpZXcnKTsKKworLS0gbGFn CitTRUxFQ1QgbmFtZSwKKyAgICAgICBvcmJpdCwKKyAgICAgICBsYWcob3JiaXQpIE9WRVIgdyBB UyBsYWcsCisgICAgICAgbGFnKG9yYml0KSBSRVNQRUNUIE5VTExTIE9WRVIgdyBBUyBsYWdfcmVz cGVjdCwKKyAgICAgICBsYWcob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGFnX2lnbm9y ZQorRlJPTSBwbGFuZXRzCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgbmFtZSkKKzsKKworLS0gbGVh ZAorU0VMRUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgbGVhZChvcmJpdCkgT1ZFUiB3 IEFTIGxlYWQsCisgICAgICAgbGVhZChvcmJpdCkgUkVTUEVDVCBOVUxMUyBPVkVSIHcgQVMgbGVh ZF9yZXNwZWN0LAorICAgICAgIGxlYWQob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGVh ZF9pZ25vcmUKK0ZST00gcGxhbmV0cworV0lORE9XIHcgQVMgKE9SREVSIEJZIG5hbWUpCis7CisK Ky0tIGZpcnN0X3ZhbHVlCitTRUxFQ1QgbmFtZSwKKyAgICAgICBvcmJpdCwKKyAgICAgICBmaXJz dF92YWx1ZShvcmJpdCkgUkVTUEVDVCBOVUxMUyBPVkVSIHcxLAorICAgICAgIGZpcnN0X3ZhbHVl KG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3MSwKKyAgICAgICBmaXJzdF92YWx1ZShvcmJpdCkg UkVTUEVDVCBOVUxMUyBPVkVSIHcyLAorICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBJR05PUkUg TlVMTFMgT1ZFUiB3MgorRlJPTSBwbGFuZXRzCitXSU5ET1cgdzEgQVMgKE9SREVSIEJZIG5hbWUg Uk9XUyBCRVRXRUVOIFVOQk9VTkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcp LAorICAgICAgIHcyIEFTIChPUkRFUiBCWSBuYW1lIFJPV1MgQkVUV0VFTiAyIFBSRUNFRElORyBB TkQgMiBGT0xMT1dJTkcpCis7CisKKy0tIG50aF92YWx1ZQorU0VMRUNUIG5hbWUsCisgICAgICAg b3JiaXQsCisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBSRVNQRUNUIE5VTExTIE9WRVIgdzEs CisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBJR05PUkUgTlVMTFMgT1ZFUiB3MSwKKyAgICAg ICBudGhfdmFsdWUob3JiaXQsIDIpIFJFU1BFQ1QgTlVMTFMgT1ZFUiB3MiwKKyAgICAgICBudGhf dmFsdWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcyCitGUk9NIHBsYW5ldHMKK1dJTkRP VyB3MSBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gVU5CT1VOREVEIFBSRUNFRElORyBB TkQgVU5CT1VOREVEIEZPTExPV0lORyksCisgICAgICAgdzIgQVMgKE9SREVSIEJZIG5hbWUgUk9X UyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZPTExPV0lORykKKzsKKworLS0gbGFzdF92YWx1 ZQorU0VMRUNUIG5hbWUsCisgICAgICAgb3JiaXQsCisgICAgICAgbGFzdF92YWx1ZShvcmJpdCkg UkVTUEVDVCBOVUxMUyBPVkVSIHcxLAorICAgICAgIGxhc3RfdmFsdWUob3JiaXQpIElHTk9SRSBO VUxMUyBPVkVSIHcxLAorICAgICAgIGxhc3RfdmFsdWUob3JiaXQpIFJFU1BFQ1QgTlVMTFMgT1ZF UiB3MiwKKyAgICAgICBsYXN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3MgorRlJP TSBwbGFuZXRzCitXSU5ET1cgdzEgQVMgKE9SREVSIEJZIG5hbWUgUk9XUyBCRVRXRUVOIFVOQk9V TkRFRCBQUkVDRURJTkcgQU5EIFVOQk9VTkRFRCBGT0xMT1dJTkcpLAorICAgICAgIHcyIEFTIChP UkRFUiBCWSBuYW1lIFJPV1MgQkVUV0VFTiAyIFBSRUNFRElORyBBTkQgMiBGT0xMT1dJTkcpCis7 CisKKy0tIGV4Y2x1ZGUgY3VycmVudCByb3cKK1NFTEVDVCBuYW1lLAorICAgICAgIG9yYml0LAor ICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0KSBJR05PUkUgTlVMTFMgT1ZFUiB3LAorICAgICAgIGxh c3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgICAgICAgbnRoX3ZhbHVlKG9y Yml0LCAyKSBJR05PUkUgTlVMTFMgT1ZFUiB3LAorICAgICAgIGxlYWQob3JiaXQsIDEpIElHTk9S RSBOVUxMUyBPVkVSIHcgQVMgbGVhZF9pZ25vcmUsCisgICAgICAgbGFnKG9yYml0LCAxKSBJR05P UkUgTlVMTFMgT1ZFUiB3IEFTIGxhZ19pZ25vcmUKK0ZST00gcGxhbmV0cworV0lORE9XIHcgQVMg KE9SREVSIEJZIG5hbWUgUk9XUyBCRVRXRUVOIDIgUFJFQ0VESU5HIEFORCAyIEZPTExPV0lORyBF WENMVURFIENVUlJFTlQgUk9XKQorOworCistLSB2YWxpZCBhbmQgaW52YWxpZCBmdW5jdGlvbnMK K1NFTEVDVCBzdW0ob3JiaXQpIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBzdWNjZWVkcworU0VM RUNUIHN1bShvcmJpdCkgUkVTUEVDVCBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gZmFp bHMKK1NFTEVDVCBzdW0ob3JiaXQpIElHTk9SRSBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0czsg LS0gZmFpbHMKK1NFTEVDVCByb3dfbnVtYmVyKCkgT1ZFUiAoKSBGUk9NIHBsYW5ldHM7IC0tIHN1 Y2NlZWRzCitTRUxFQ1Qgcm93X251bWJlcigpIFJFU1BFQ1QgTlVMTFMgT1ZFUiAoKSBGUk9NIHBs YW5ldHM7IC0tIGZhaWxzCitTRUxFQ1Qgcm93X251bWJlcigpIElHTk9SRSBOVUxMUyBPVkVSICgp IEZST00gcGxhbmV0czsgLS0gZmFpbHMKK1NFTEVDVCByYW5rKCkgT1ZFUiAoKSBGUk9NIHBsYW5l dHM7IC0tIHN1Y2NlZWRzCitTRUxFQ1QgcmFuaygpIFJFU1BFQ1QgTlVMTFMgT1ZFUiAoKSBGUk9N IHBsYW5ldHM7IC0tIGZhaWxzCitTRUxFQ1QgcmFuaygpIElHTk9SRSBOVUxMUyBPVkVSICgpIEZS T00gcGxhbmV0czsgLS0gZmFpbHMKK1NFTEVDVCBkZW5zZV9yYW5rKCkgT1ZFUiAoKSBGUk9NIHBs YW5ldHM7IC0tIHN1Y2NlZWRzCitTRUxFQ1QgZGVuc2VfcmFuaygpIFJFU1BFQ1QgTlVMTFMgT1ZF UiAoKSBGUk9NIHBsYW5ldHM7IC0tIGZhaWxzCitTRUxFQ1QgZGVuc2VfcmFuaygpIElHTk9SRSBO VUxMUyBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gZmFpbHMKK1NFTEVDVCBwZXJjZW50X3Jhbmso KSBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gc3VjY2VlZHMKK1NFTEVDVCBwZXJjZW50X3Jhbmso KSBSRVNQRUNUIE5VTExTIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBmYWlscworU0VMRUNUIHBl cmNlbnRfcmFuaygpIElHTk9SRSBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gZmFpbHMK K1NFTEVDVCBjdW1lX2Rpc3QoKSBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gc3VjY2VlZHMKK1NF TEVDVCBjdW1lX2Rpc3QoKSBSRVNQRUNUIE5VTExTIE9WRVIgKCkgRlJPTSBwbGFuZXRzOyAtLSBm YWlscworU0VMRUNUIGN1bWVfZGlzdCgpIElHTk9SRSBOVUxMUyBPVkVSICgpIEZST00gcGxhbmV0 czsgLS0gZmFpbHMKK1NFTEVDVCBudGlsZSgxKSBPVkVSICgpIEZST00gcGxhbmV0czsgLS0gc3Vj Y2VlZHMKK1NFTEVDVCBudGlsZSgxKSBSRVNQRUNUIE5VTExTIE9WRVIgKCkgRlJPTSBwbGFuZXRz OyAtLSBmYWlscworU0VMRUNUIG50aWxlKDEpIElHTk9SRSBOVUxMUyBPVkVSICgpIEZST00gcGxh bmV0czsgLS0gZmFpbHMKKworLS0gdGVzdCB0d28gY29uc2VjdXRpdmUgbnVsbHMKK3VwZGF0ZSBw bGFuZXRzIHNldCBvcmJpdD1udWxsIHdoZXJlIG5hbWU9J2p1cGl0ZXInOworU0VMRUNUIG5hbWUs CisgICAgICAgb3JiaXQsCisgICAgICAgZmlyc3RfdmFsdWUob3JiaXQpIElHTk9SRSBOVUxMUyBP VkVSIHcsCisgICAgICAgbGFzdF92YWx1ZShvcmJpdCkgSUdOT1JFIE5VTExTIE9WRVIgdywKKyAg ICAgICBudGhfdmFsdWUob3JiaXQsIDIpIElHTk9SRSBOVUxMUyBPVkVSIHcsCisgICAgICAgbGVh ZChvcmJpdCwgMSkgSUdOT1JFIE5VTExTIE9WRVIgdyBBUyBsZWFkX2lnbm9yZSwKKyAgICAgICBs YWcob3JiaXQsIDEpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGFnX2lnbm9yZQorRlJPTSBwbGFu ZXRzCitXSU5ET1cgdyBBUyAoT1JERVIgQlkgbmFtZSBST1dTIEJFVFdFRU4gMiBQUkVDRURJTkcg QU5EIDIgRk9MTE9XSU5HKQorOworCistLSB0ZXN0IHBhcnRpdGlvbnMKK1NFTEVDVCBuYW1lLAor ICAgICAgIGRpc3RhbmNlLAorICAgICAgIG9yYml0LAorICAgICAgIGZpcnN0X3ZhbHVlKG9yYml0 KSBJR05PUkUgTlVMTFMgT1ZFUiB3LAorICAgICAgIGxhc3RfdmFsdWUob3JiaXQpIElHTk9SRSBO VUxMUyBPVkVSIHcsCisgICAgICAgbnRoX3ZhbHVlKG9yYml0LCAyKSBJR05PUkUgTlVMTFMgT1ZF UiB3LAorICAgICAgIGxlYWQob3JiaXQsIDEpIElHTk9SRSBOVUxMUyBPVkVSIHcgQVMgbGVhZF9p Z25vcmUsCisgICAgICAgbGFnKG9yYml0LCAxKSBJR05PUkUgTlVMTFMgT1ZFUiB3IEFTIGxhZ19p Z25vcmUKK0ZST00gcGxhbmV0cworV0lORE9XIHcgQVMgKFBBUlRJVElPTiBCWSBkaXN0YW5jZSBP UkRFUiBCWSBuYW1lIFJPV1MgQkVUV0VFTiAyIFBSRUNFRElORyBBTkQgMiBGT0xMT1dJTkcpCis7 CisKKy0tIG50aF92YWx1ZSB3aXRob3V0IG51bGxzCitTRUxFQ1QgeCwKKyAgICAgICBudGhfdmFs dWUoeCwyKSBJR05PUkUgTlVMTFMgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDUpIGco eCkKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSB4IFJPV1MgQkVUV0VFTiAyIFBSRUNFRElORyBBTkQg MiBGT0xMT1dJTkcgRVhDTFVERSBDVVJSRU5UIFJPVyk7CitTRUxFQ1QgeCwKKyAgICAgICBudGhf dmFsdWUoeCwyKSBJR05PUkUgTlVMTFMgT1ZFUiB3CitGUk9NIGdlbmVyYXRlX3NlcmllcygxLDUp IGcoeCkKK1dJTkRPVyB3IEFTIChPUkRFUiBCWSB4IFJPV1MgQkVUV0VFTiAyIFBSRUNFRElORyBB TkQgMiBGT0xMT1dJTkcpOworCistLWNsZWFudXAKK0RST1AgVEFCTEUgcGxhbmV0cyBDQVNDQURF OwotLSAKMi40My4wCgo= ----Next_Part(Thu_Oct__2_21_15_50_2025_460)----