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 1rPKLP-00AodH-T8 for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Jan 2024 10:37:29 +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 1rPKLO-00Ex8Z-09 for pgsql-hackers@arkaria.postgresql.org; Mon, 15 Jan 2024 10:37:26 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rPKLM-00Ex8R-K8 for pgsql-hackers@lists.postgresql.org; Mon, 15 Jan 2024 10:37:25 +0000 Received: from wout5-smtp.messagingengine.com ([64.147.123.21]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rPKLH-001dTZ-WD for pgsql-hackers@postgresql.org; Mon, 15 Jan 2024 10:37:23 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id B9FB93200AF2 for ; Mon, 15 Jan 2024 05:37:17 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Mon, 15 Jan 2024 05:37:17 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=eisentraut.org; h=cc:content-type:content-type:date:date:from:from:in-reply-to :in-reply-to:message-id:mime-version:references:reply-to:subject :subject:to:to; s=fm2; t=1705315037; x=1705401437; bh=uj4+G/IEQn hpcsCXMQbIl1nmP/hEI6RuJNue1RD2iOg=; b=bGy241CNg3nglfuk7hgihri7sx xjRhCFfOwgDp1PK2D5ic2NuSUXTkawXXNfbZPAmFE4qL3AeSPgUKcL0T+99v0i+2 ApVkG4MfiKMpXlV6oCw+j+EyChAett9TchvjQyNrVjBTG2hMdLr+XA0UiwT8gJhc OfKDID46bNbMgVAj9NO+Lt/eQ3Zmq+R3UDfvJf+m3UvQZiJq9rvFyhhSnFrRAo4G KWwyTY1ghTOTwCl5yCfgW4fOf7OZINbyK+4FSF44i4AXtznx0BQfI9wxJDVFdKWO fRYYdQS/sK07GfQzxj2GZTTK+2UNteqSVE55gJxq0EarJwu3LSUUzoXi+r6A== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm3; t=1705315037; x=1705401437; bh=uj4+G/IEQnhpcsCXMQbIl1nmP/hE I6RuJNue1RD2iOg=; b=vv0pqDf0AOEuK6Iy+XyXa6PnBhwkMqbwXE6qlQ9BHIxK IpRHBPYaJc+sZ5/zUPWOvzsIDznDutdpWLbc/EY6j5DJqAX5McPnaVyu6RiPjnEd hRTVae8XzwBKaEQWGNVrwjUuJ3KGop56l8xU2ZSNa2K0xdTILkqMxmxSHkYWzI8g Rjo0TncuWhfUFLBJCqbKTHdZZdoCF8300jbHNflWshpe7Sq8vp47SLFHKpLo5p7J bWqsImC2JpaDi6pFITGKAnM+5PKayScVj0DfCQ7IUkgXmMB+f7hk7syHvXA7+GcY MJ+x1Jpcwwq4Z7PAoDT63ZuL2SE8/xdTIeqnufkEZA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdejuddgudekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpegtkfffgggfuffhvfhfjgesmhdtre ertddvjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhes vghishgvnhhtrhgruhhtrdhorhhgqeenucggtffrrghtthgvrhhnpeevkeefudegheejie fftdfhuddtleefveevffdtffefudevgedtfefhjedvjefggfenucevlhhushhtvghrufhi iigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrsegvihhsvghnthhrrg huthdrohhrgh X-ME-Proxy: Feedback-ID: ie0a040ee:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Mon, 15 Jan 2024 05:37:16 -0500 (EST) Content-Type: multipart/mixed; boundary="------------RQiAIE01WA0m2ZNBdyJPEsK3" Message-ID: <859d6155-e361-4a05-8db3-4aa1f007ff28@eisentraut.org> Date: Mon, 15 Jan 2024 11:37:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: automating RangeTblEntry node support Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <4b27fc50-8cd6-46f5-ab20-88dbaadca645@eisentraut.org> In-Reply-To: <4b27fc50-8cd6-46f5-ab20-88dbaadca645@eisentraut.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------RQiAIE01WA0m2ZNBdyJPEsK3 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 06.12.23 21:02, Peter Eisentraut wrote: > I have been looking into what it would take to get rid of the > custom_read_write and custom_query_jumble for the RangeTblEntry node > type.  This is one of the larger and more complex exceptions left. > > (Similar considerations would also apply to the Constraint node type.) In this updated patch set, I have also added the treatment of the Constraint type. (I also noted that the manual read/write functions for the Constraint type are out-of-sync again, so simplifying this would be really helpful.) I have also added commit messages to each patch. The way I have re-ordered the patch series now, I think patches 0001 through 0003 are candidates for inclusion after review, patch 0004 still needs a bit more analysis and testing, as described therein. --------------RQiAIE01WA0m2ZNBdyJPEsK3 Content-Type: text/plain; charset=UTF-8; name="v2-0001-Remove-custom-Constraint-node-read-write-implemen.patch" Content-Disposition: attachment; filename*0="v2-0001-Remove-custom-Constraint-node-read-write-implemen.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBmMGU4OTZhMjAxMzY3YTYzOWJlOWQwOGQwNzAwNjY4NjdjNDZkN2NmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxNSBKYW4gMjAyNCAxMToyMzozOSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMS80XSBSZW1vdmUgY3VzdG9tIENvbnN0cmFpbnQgbm9kZSByZWFkL3dy aXRlCiBpbXBsZW1lbnRhdGlvbnMKClRoaXMgaXMgcGFydCBvZiBhbiBlZmZvcnQgdG8gcmVk dWNlIHRoZSBudW1iZXIgb2Ygc3BlY2lhbCBjYXNlcyBpbiB0aGUKYXV0b21hdGljYWxseSBn ZW5lcmF0ZWQgbm9kZSBzdXBwb3J0IGZ1bmN0aW9ucy4KCkFsbGVnZWRseSwgb25seSBjZXJ0 YWluIGZpZWxkcyBvZiB0aGUgQ29uc3RyYWludCBub2RlIGFyZSB2YWxpZCBiYXNlZApvbiBj b250eXBlLiAgQnV0IHRoaXMgaGFzIGhpc3RvcmljYWxseSBub3QgYmVlbiBrZXB0IHVwIHRv IGRhdGUgaW4gdGhlCnJlYWQvd3JpdGUgZnVuY3Rpb25zLiAgVGhlIENvbnN0cmFpbnQgbm9k ZSBpcyBvbmx5IHVzZWQgZm9yIGRlYnVnZ2luZwpEREwgc3RhdGVtZW50cywgc28gdGhlcmUg YXJlIG5vIHN0cm9uZyByZXF1aXJlbWVudHMgZm9yIGl0cyBvdXRwdXQsCmFuZCB0aGVyZSBp cyBubyBlbmZvcmNlbWVudCBmb3IgaXRzIGNvcnJlY3RuZXNzLiAgKFRoZXJlIHdhcyBubyBy ZWFkCnN1cHBvcnQgYmVmb3JlIGE2YmMzMzAxOTI1LikgIENvbW1pdHMgZTdhNTUyZjMwM2Mg YW5kIGFiZjQ2YWQ5YzdiIGFyZQpleGFtcGxlcyBvZiB3aGVyZSBvbWlzc2lvbnMgd2VyZSBm aXhlZC4gIEFuZCB0aGUgY3VycmVudCBvdXRwdXQgaXMKYWdhaW4gaW5jb3JyZWN0LCBiZWNh dXNlIHRoZSByZWNlbnRseSBhZGRlZCAiaW5oY291bnQiIGZpZWxkIGlzIG5vdAppbmNsdWRl ZC4KClRoaXMgcGF0Y2gganVzdCByZW1vdmVzIHRoZSBjdXN0b20gcmVhZC93cml0ZSBpbXBs ZW1lbnRhdGlvbnMgZm9yIHRoZQpDb25zdHJhaW50IG5vZGUgdHlwZS4gIE5vdyB3ZSBqdXN0 IG91dHB1dCBhbGwgdGhlIGZpZWxkcywgd2hpY2ggaXMgYQpiaXQgbW9yZSB0aGFuIGJlZm9y ZSwgYnV0IGF0IGxlYXN0IHdlIGRvbid0IGhhdmUgdG8gbWFpbnRhaW4gdGhlc2UKZnVuY3Rp b25zIGFueW1vcmUuICBBbHNvLCB3ZSBsb3NlIHRoZSBzdHJpbmcgcmVwcmVzZW50YXRpb24g b2YgdGhlCmNvbnR5cGUgZmllbGQsIGJ1dCBmb3IgdGhpcyBtYXJnaW5hbCB1c2UgY2FzZSB0 aGF0IHNlZW1zIHRvbGVyYWJsZS4KVGhpcyBwYXRjaCBhbHNvIGNoYW5nZXMgdGhlIGRvY3Vt ZW50YXRpb24gb2YgdGhlIENvbnN0cmFpbnQgc3RydWN0IHRvCnB1dCBsZXNzIGVtcGhhc2lz IG9uIGdyb3VwaW5nIGZpZWxkcyBieSBjb25zdHJhaW50IHR5cGUgYnV0IHJhdGhlcgpkb2N1 bWVudCBmb3IgZWFjaCBmaWVsZCBob3cgaXQncyB1c2VkLgoKRGlzY3Vzc2lvbjogaHR0cHM6 Ly93d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0LzRiMjdmYzUwLThjZDYtNDZm NS1hYjIwLTg4ZGJhYWRjYTY0NUBlaXNlbnRyYXV0Lm9yZwotLS0KIHNyYy9iYWNrZW5kL25v ZGVzL291dGZ1bmNzLmMgICB8IDEyNiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog c3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMgIHwgMTQzIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIHwgIDM4 ICsrKy0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCAyOTQgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYyBi L3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKaW5kZXggMjk2YmE4NDUxODcuLmRlZTJi OWU4N2IyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9vdXRmdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMKQEAgLTY5OSwxMzIgKzY5OSw2IEBAIF9v dXRBX0NvbnN0KFN0cmluZ0luZm8gc3RyLCBjb25zdCBBX0NvbnN0ICpub2RlKQogCVdSSVRF X0xPQ0FUSU9OX0ZJRUxEKGxvY2F0aW9uKTsKIH0KIAotc3RhdGljIHZvaWQKLV9vdXRDb25z dHJhaW50KFN0cmluZ0luZm8gc3RyLCBjb25zdCBDb25zdHJhaW50ICpub2RlKQotewotCVdS SVRFX05PREVfVFlQRSgiQ09OU1RSQUlOVCIpOwotCi0JV1JJVEVfU1RSSU5HX0ZJRUxEKGNv bm5hbWUpOwotCVdSSVRFX0JPT0xfRklFTEQoZGVmZXJyYWJsZSk7Ci0JV1JJVEVfQk9PTF9G SUVMRChpbml0ZGVmZXJyZWQpOwotCVdSSVRFX0xPQ0FUSU9OX0ZJRUxEKGxvY2F0aW9uKTsK LQotCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoc3RyLCAiIDpjb250eXBlICIpOwotCXN3aXRj aCAobm9kZS0+Y29udHlwZSkKLQl7Ci0JCWNhc2UgQ09OU1RSX05VTEw6Ci0JCQlhcHBlbmRT dHJpbmdJbmZvU3RyaW5nKHN0ciwgIk5VTEwiKTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgQ09O U1RSX05PVE5VTEw6Ci0JCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIk5PVF9OVUxM Iik7Ci0JCQlXUklURV9OT0RFX0ZJRUxEKGtleXMpOwotCQkJV1JJVEVfSU5UX0ZJRUxEKGlu aGNvdW50KTsKLQkJCVdSSVRFX0JPT0xfRklFTEQoaXNfbm9faW5oZXJpdCk7Ci0JCQlXUklU RV9CT09MX0ZJRUxEKHNraXBfdmFsaWRhdGlvbik7Ci0JCQlXUklURV9CT09MX0ZJRUxEKGlu aXRpYWxseV92YWxpZCk7Ci0JCQlicmVhazsKLQotCQljYXNlIENPTlNUUl9ERUZBVUxUOgot CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICJERUZBVUxUIik7Ci0JCQlXUklURV9O T0RFX0ZJRUxEKHJhd19leHByKTsKLQkJCVdSSVRFX1NUUklOR19GSUVMRChjb29rZWRfZXhw cik7Ci0JCQlicmVhazsKLQotCQljYXNlIENPTlNUUl9JREVOVElUWToKLQkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoc3RyLCAiSURFTlRJVFkiKTsKLQkJCVdSSVRFX05PREVfRklFTEQo b3B0aW9ucyk7Ci0JCQlXUklURV9DSEFSX0ZJRUxEKGdlbmVyYXRlZF93aGVuKTsKLQkJCWJy ZWFrOwotCi0JCWNhc2UgQ09OU1RSX0dFTkVSQVRFRDoKLQkJCWFwcGVuZFN0cmluZ0luZm9T dHJpbmcoc3RyLCAiR0VORVJBVEVEIik7Ci0JCQlXUklURV9OT0RFX0ZJRUxEKHJhd19leHBy KTsKLQkJCVdSSVRFX1NUUklOR19GSUVMRChjb29rZWRfZXhwcik7Ci0JCQlXUklURV9DSEFS X0ZJRUxEKGdlbmVyYXRlZF93aGVuKTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgQ09OU1RSX0NI RUNLOgotCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICJDSEVDSyIpOwotCQkJV1JJ VEVfQk9PTF9GSUVMRChpc19ub19pbmhlcml0KTsKLQkJCVdSSVRFX05PREVfRklFTEQocmF3 X2V4cHIpOwotCQkJV1JJVEVfU1RSSU5HX0ZJRUxEKGNvb2tlZF9leHByKTsKLQkJCVdSSVRF X0JPT0xfRklFTEQoc2tpcF92YWxpZGF0aW9uKTsKLQkJCVdSSVRFX0JPT0xfRklFTEQoaW5p dGlhbGx5X3ZhbGlkKTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgQ09OU1RSX1BSSU1BUlk6Ci0J CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIlBSSU1BUllfS0VZIik7Ci0JCQlXUklU RV9OT0RFX0ZJRUxEKGtleXMpOwotCQkJV1JJVEVfTk9ERV9GSUVMRChpbmNsdWRpbmcpOwot CQkJV1JJVEVfTk9ERV9GSUVMRChvcHRpb25zKTsKLQkJCVdSSVRFX1NUUklOR19GSUVMRChp bmRleG5hbWUpOwotCQkJV1JJVEVfU1RSSU5HX0ZJRUxEKGluZGV4c3BhY2UpOwotCQkJV1JJ VEVfQk9PTF9GSUVMRChyZXNldF9kZWZhdWx0X3RibHNwYyk7Ci0JCQkvKiBhY2Nlc3NfbWV0 aG9kIGFuZCB3aGVyZV9jbGF1c2Ugbm90IGN1cnJlbnRseSB1c2VkICovCi0JCQlicmVhazsK LQotCQljYXNlIENPTlNUUl9VTklRVUU6Ci0JCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0 ciwgIlVOSVFVRSIpOwotCQkJV1JJVEVfQk9PTF9GSUVMRChudWxsc19ub3RfZGlzdGluY3Qp OwotCQkJV1JJVEVfTk9ERV9GSUVMRChrZXlzKTsKLQkJCVdSSVRFX05PREVfRklFTEQoaW5j bHVkaW5nKTsKLQkJCVdSSVRFX05PREVfRklFTEQob3B0aW9ucyk7Ci0JCQlXUklURV9TVFJJ TkdfRklFTEQoaW5kZXhuYW1lKTsKLQkJCVdSSVRFX1NUUklOR19GSUVMRChpbmRleHNwYWNl KTsKLQkJCVdSSVRFX0JPT0xfRklFTEQocmVzZXRfZGVmYXVsdF90YmxzcGMpOwotCQkJLyog YWNjZXNzX21ldGhvZCBhbmQgd2hlcmVfY2xhdXNlIG5vdCBjdXJyZW50bHkgdXNlZCAqLwot CQkJYnJlYWs7Ci0KLQkJY2FzZSBDT05TVFJfRVhDTFVTSU9OOgotCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZyhzdHIsICJFWENMVVNJT04iKTsKLQkJCVdSSVRFX05PREVfRklFTEQoZXhj bHVzaW9ucyk7Ci0JCQlXUklURV9OT0RFX0ZJRUxEKGluY2x1ZGluZyk7Ci0JCQlXUklURV9O T0RFX0ZJRUxEKG9wdGlvbnMpOwotCQkJV1JJVEVfU1RSSU5HX0ZJRUxEKGluZGV4bmFtZSk7 Ci0JCQlXUklURV9TVFJJTkdfRklFTEQoaW5kZXhzcGFjZSk7Ci0JCQlXUklURV9CT09MX0ZJ RUxEKHJlc2V0X2RlZmF1bHRfdGJsc3BjKTsKLQkJCVdSSVRFX1NUUklOR19GSUVMRChhY2Nl c3NfbWV0aG9kKTsKLQkJCVdSSVRFX05PREVfRklFTEQod2hlcmVfY2xhdXNlKTsKLQkJCWJy ZWFrOwotCi0JCWNhc2UgQ09OU1RSX0ZPUkVJR046Ci0JCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKHN0ciwgIkZPUkVJR05fS0VZIik7Ci0JCQlXUklURV9OT0RFX0ZJRUxEKHBrdGFibGUp OwotCQkJV1JJVEVfTk9ERV9GSUVMRChma19hdHRycyk7Ci0JCQlXUklURV9OT0RFX0ZJRUxE KHBrX2F0dHJzKTsKLQkJCVdSSVRFX0NIQVJfRklFTEQoZmtfbWF0Y2h0eXBlKTsKLQkJCVdS SVRFX0NIQVJfRklFTEQoZmtfdXBkX2FjdGlvbik7Ci0JCQlXUklURV9DSEFSX0ZJRUxEKGZr X2RlbF9hY3Rpb24pOwotCQkJV1JJVEVfTk9ERV9GSUVMRChma19kZWxfc2V0X2NvbHMpOwot CQkJV1JJVEVfTk9ERV9GSUVMRChvbGRfY29ucGZlcW9wKTsKLQkJCVdSSVRFX09JRF9GSUVM RChvbGRfcGt0YWJsZV9vaWQpOwotCQkJV1JJVEVfQk9PTF9GSUVMRChza2lwX3ZhbGlkYXRp b24pOwotCQkJV1JJVEVfQk9PTF9GSUVMRChpbml0aWFsbHlfdmFsaWQpOwotCQkJYnJlYWs7 Ci0KLQkJY2FzZSBDT05TVFJfQVRUUl9ERUZFUlJBQkxFOgotCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZyhzdHIsICJBVFRSX0RFRkVSUkFCTEUiKTsKLQkJCWJyZWFrOwotCi0JCWNhc2Ug Q09OU1RSX0FUVFJfTk9UX0RFRkVSUkFCTEU6Ci0JCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5n KHN0ciwgIkFUVFJfTk9UX0RFRkVSUkFCTEUiKTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgQ09O U1RSX0FUVFJfREVGRVJSRUQ6Ci0JCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKHN0ciwgIkFU VFJfREVGRVJSRUQiKTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgQ09OU1RSX0FUVFJfSU1NRURJ QVRFOgotCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhzdHIsICJBVFRSX0lNTUVESUFURSIp OwotCQkJYnJlYWs7Ci0KLQkJZGVmYXVsdDoKLQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6 ZWQgQ29uc3RyVHlwZTogJWQiLCAoaW50KSBub2RlLT5jb250eXBlKTsKLQkJCWJyZWFrOwot CX0KLX0KLQogCiAvKgogICogb3V0Tm9kZSAtCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9u b2Rlcy9yZWFkZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jCmluZGV4 IDE2MjRiMzQ1ODEyLi5iMWUyZjJiNDQwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9k ZXMvcmVhZGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMKQEAg LTM0MywxNDkgKzM0Myw2IEBAIF9yZWFkQV9Db25zdCh2b2lkKQogCVJFQURfRE9ORSgpOwog fQogCi0vKgotICogX3JlYWRDb25zdHJhaW50Ci0gKi8KLXN0YXRpYyBDb25zdHJhaW50ICoK LV9yZWFkQ29uc3RyYWludCh2b2lkKQotewotCVJFQURfTE9DQUxTKENvbnN0cmFpbnQpOwot Ci0JUkVBRF9TVFJJTkdfRklFTEQoY29ubmFtZSk7Ci0JUkVBRF9CT09MX0ZJRUxEKGRlZmVy cmFibGUpOwotCVJFQURfQk9PTF9GSUVMRChpbml0ZGVmZXJyZWQpOwotCVJFQURfTE9DQVRJ T05fRklFTEQobG9jYXRpb24pOwotCi0JdG9rZW4gPSBwZ19zdHJ0b2soJmxlbmd0aCk7IC8q IHNraXAgOmNvbnR5cGUgKi8KLQl0b2tlbiA9IHBnX3N0cnRvaygmbGVuZ3RoKTsgLyogZ2V0 IGZpZWxkIHZhbHVlICovCi0JaWYgKGxlbmd0aCA9PSA0ICYmIHN0cm5jbXAodG9rZW4sICJO VUxMIiwgNCkgPT0gMCkKLQkJbG9jYWxfbm9kZS0+Y29udHlwZSA9IENPTlNUUl9OVUxMOwot CWVsc2UgaWYgKGxlbmd0aCA9PSA4ICYmIHN0cm5jbXAodG9rZW4sICJOT1RfTlVMTCIsIDgp ID09IDApCi0JCWxvY2FsX25vZGUtPmNvbnR5cGUgPSBDT05TVFJfTk9UTlVMTDsKLQllbHNl IGlmIChsZW5ndGggPT0gNyAmJiBzdHJuY21wKHRva2VuLCAiREVGQVVMVCIsIDcpID09IDAp Ci0JCWxvY2FsX25vZGUtPmNvbnR5cGUgPSBDT05TVFJfREVGQVVMVDsKLQllbHNlIGlmIChs ZW5ndGggPT0gOCAmJiBzdHJuY21wKHRva2VuLCAiSURFTlRJVFkiLCA4KSA9PSAwKQotCQls b2NhbF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0lERU5USVRZOwotCWVsc2UgaWYgKGxlbmd0 aCA9PSA5ICYmIHN0cm5jbXAodG9rZW4sICJHRU5FUkFURUQiLCA5KSA9PSAwKQotCQlsb2Nh bF9ub2RlLT5jb250eXBlID0gQ09OU1RSX0dFTkVSQVRFRDsKLQllbHNlIGlmIChsZW5ndGgg PT0gNSAmJiBzdHJuY21wKHRva2VuLCAiQ0hFQ0siLCA1KSA9PSAwKQotCQlsb2NhbF9ub2Rl LT5jb250eXBlID0gQ09OU1RSX0NIRUNLOwotCWVsc2UgaWYgKGxlbmd0aCA9PSAxMSAmJiBz dHJuY21wKHRva2VuLCAiUFJJTUFSWV9LRVkiLCAxMSkgPT0gMCkKLQkJbG9jYWxfbm9kZS0+ Y29udHlwZSA9IENPTlNUUl9QUklNQVJZOwotCWVsc2UgaWYgKGxlbmd0aCA9PSA2ICYmIHN0 cm5jbXAodG9rZW4sICJVTklRVUUiLCA2KSA9PSAwKQotCQlsb2NhbF9ub2RlLT5jb250eXBl ID0gQ09OU1RSX1VOSVFVRTsKLQllbHNlIGlmIChsZW5ndGggPT0gOSAmJiBzdHJuY21wKHRv a2VuLCAiRVhDTFVTSU9OIiwgOSkgPT0gMCkKLQkJbG9jYWxfbm9kZS0+Y29udHlwZSA9IENP TlNUUl9FWENMVVNJT047Ci0JZWxzZSBpZiAobGVuZ3RoID09IDExICYmIHN0cm5jbXAodG9r ZW4sICJGT1JFSUdOX0tFWSIsIDExKSA9PSAwKQotCQlsb2NhbF9ub2RlLT5jb250eXBlID0g Q09OU1RSX0ZPUkVJR047Ci0JZWxzZSBpZiAobGVuZ3RoID09IDE1ICYmIHN0cm5jbXAodG9r ZW4sICJBVFRSX0RFRkVSUkFCTEUiLCAxNSkgPT0gMCkKLQkJbG9jYWxfbm9kZS0+Y29udHlw ZSA9IENPTlNUUl9BVFRSX0RFRkVSUkFCTEU7Ci0JZWxzZSBpZiAobGVuZ3RoID09IDE5ICYm IHN0cm5jbXAodG9rZW4sICJBVFRSX05PVF9ERUZFUlJBQkxFIiwgMTkpID09IDApCi0JCWxv Y2FsX25vZGUtPmNvbnR5cGUgPSBDT05TVFJfQVRUUl9OT1RfREVGRVJSQUJMRTsKLQllbHNl IGlmIChsZW5ndGggPT0gMTMgJiYgc3RybmNtcCh0b2tlbiwgIkFUVFJfREVGRVJSRUQiLCAx MykgPT0gMCkKLQkJbG9jYWxfbm9kZS0+Y29udHlwZSA9IENPTlNUUl9BVFRSX0RFRkVSUkVE OwotCWVsc2UgaWYgKGxlbmd0aCA9PSAxNCAmJiBzdHJuY21wKHRva2VuLCAiQVRUUl9JTU1F RElBVEUiLCAxNCkgPT0gMCkKLQkJbG9jYWxfbm9kZS0+Y29udHlwZSA9IENPTlNUUl9BVFRS X0lNTUVESUFURTsKLQotCXN3aXRjaCAobG9jYWxfbm9kZS0+Y29udHlwZSkKLQl7Ci0JCWNh c2UgQ09OU1RSX05VTEw6Ci0JCQkvKiBubyBleHRyYSBmaWVsZHMgKi8KLQkJCWJyZWFrOwot Ci0JCWNhc2UgQ09OU1RSX05PVE5VTEw6Ci0JCQlSRUFEX05PREVfRklFTEQoa2V5cyk7Ci0J CQlSRUFEX0lOVF9GSUVMRChpbmhjb3VudCk7Ci0JCQlSRUFEX0JPT0xfRklFTEQoaXNfbm9f aW5oZXJpdCk7Ci0JCQlSRUFEX0JPT0xfRklFTEQoc2tpcF92YWxpZGF0aW9uKTsKLQkJCVJF QURfQk9PTF9GSUVMRChpbml0aWFsbHlfdmFsaWQpOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBD T05TVFJfREVGQVVMVDoKLQkJCVJFQURfTk9ERV9GSUVMRChyYXdfZXhwcik7Ci0JCQlSRUFE X1NUUklOR19GSUVMRChjb29rZWRfZXhwcik7Ci0JCQlicmVhazsKLQotCQljYXNlIENPTlNU Ul9JREVOVElUWToKLQkJCVJFQURfTk9ERV9GSUVMRChvcHRpb25zKTsKLQkJCVJFQURfQ0hB Ul9GSUVMRChnZW5lcmF0ZWRfd2hlbik7Ci0JCQlicmVhazsKLQotCQljYXNlIENPTlNUUl9H RU5FUkFURUQ6Ci0JCQlSRUFEX05PREVfRklFTEQocmF3X2V4cHIpOwotCQkJUkVBRF9TVFJJ TkdfRklFTEQoY29va2VkX2V4cHIpOwotCQkJUkVBRF9DSEFSX0ZJRUxEKGdlbmVyYXRlZF93 aGVuKTsKLQkJCWJyZWFrOwotCi0JCWNhc2UgQ09OU1RSX0NIRUNLOgotCQkJUkVBRF9CT09M X0ZJRUxEKGlzX25vX2luaGVyaXQpOwotCQkJUkVBRF9OT0RFX0ZJRUxEKHJhd19leHByKTsK LQkJCVJFQURfU1RSSU5HX0ZJRUxEKGNvb2tlZF9leHByKTsKLQkJCVJFQURfQk9PTF9GSUVM RChza2lwX3ZhbGlkYXRpb24pOwotCQkJUkVBRF9CT09MX0ZJRUxEKGluaXRpYWxseV92YWxp ZCk7Ci0JCQlicmVhazsKLQotCQljYXNlIENPTlNUUl9QUklNQVJZOgotCQkJUkVBRF9OT0RF X0ZJRUxEKGtleXMpOwotCQkJUkVBRF9OT0RFX0ZJRUxEKGluY2x1ZGluZyk7Ci0JCQlSRUFE X05PREVfRklFTEQob3B0aW9ucyk7Ci0JCQlSRUFEX1NUUklOR19GSUVMRChpbmRleG5hbWUp OwotCQkJUkVBRF9TVFJJTkdfRklFTEQoaW5kZXhzcGFjZSk7Ci0JCQlSRUFEX0JPT0xfRklF TEQocmVzZXRfZGVmYXVsdF90YmxzcGMpOwotCQkJLyogYWNjZXNzX21ldGhvZCBhbmQgd2hl cmVfY2xhdXNlIG5vdCBjdXJyZW50bHkgdXNlZCAqLwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBD T05TVFJfVU5JUVVFOgotCQkJUkVBRF9CT09MX0ZJRUxEKG51bGxzX25vdF9kaXN0aW5jdCk7 Ci0JCQlSRUFEX05PREVfRklFTEQoa2V5cyk7Ci0JCQlSRUFEX05PREVfRklFTEQoaW5jbHVk aW5nKTsKLQkJCVJFQURfTk9ERV9GSUVMRChvcHRpb25zKTsKLQkJCVJFQURfU1RSSU5HX0ZJ RUxEKGluZGV4bmFtZSk7Ci0JCQlSRUFEX1NUUklOR19GSUVMRChpbmRleHNwYWNlKTsKLQkJ CVJFQURfQk9PTF9GSUVMRChyZXNldF9kZWZhdWx0X3RibHNwYyk7Ci0JCQkvKiBhY2Nlc3Nf bWV0aG9kIGFuZCB3aGVyZV9jbGF1c2Ugbm90IGN1cnJlbnRseSB1c2VkICovCi0JCQlicmVh azsKLQotCQljYXNlIENPTlNUUl9FWENMVVNJT046Ci0JCQlSRUFEX05PREVfRklFTEQoZXhj bHVzaW9ucyk7Ci0JCQlSRUFEX05PREVfRklFTEQoaW5jbHVkaW5nKTsKLQkJCVJFQURfTk9E RV9GSUVMRChvcHRpb25zKTsKLQkJCVJFQURfU1RSSU5HX0ZJRUxEKGluZGV4bmFtZSk7Ci0J CQlSRUFEX1NUUklOR19GSUVMRChpbmRleHNwYWNlKTsKLQkJCVJFQURfQk9PTF9GSUVMRChy ZXNldF9kZWZhdWx0X3RibHNwYyk7Ci0JCQlSRUFEX1NUUklOR19GSUVMRChhY2Nlc3NfbWV0 aG9kKTsKLQkJCVJFQURfTk9ERV9GSUVMRCh3aGVyZV9jbGF1c2UpOwotCQkJYnJlYWs7Ci0K LQkJY2FzZSBDT05TVFJfRk9SRUlHTjoKLQkJCVJFQURfTk9ERV9GSUVMRChwa3RhYmxlKTsK LQkJCVJFQURfTk9ERV9GSUVMRChma19hdHRycyk7Ci0JCQlSRUFEX05PREVfRklFTEQocGtf YXR0cnMpOwotCQkJUkVBRF9DSEFSX0ZJRUxEKGZrX21hdGNodHlwZSk7Ci0JCQlSRUFEX0NI QVJfRklFTEQoZmtfdXBkX2FjdGlvbik7Ci0JCQlSRUFEX0NIQVJfRklFTEQoZmtfZGVsX2Fj dGlvbik7Ci0JCQlSRUFEX05PREVfRklFTEQoZmtfZGVsX3NldF9jb2xzKTsKLQkJCVJFQURf Tk9ERV9GSUVMRChvbGRfY29ucGZlcW9wKTsKLQkJCVJFQURfT0lEX0ZJRUxEKG9sZF9wa3Rh YmxlX29pZCk7Ci0JCQlSRUFEX0JPT0xfRklFTEQoc2tpcF92YWxpZGF0aW9uKTsKLQkJCVJF QURfQk9PTF9GSUVMRChpbml0aWFsbHlfdmFsaWQpOwotCQkJYnJlYWs7Ci0KLQkJY2FzZSBD T05TVFJfQVRUUl9ERUZFUlJBQkxFOgotCQljYXNlIENPTlNUUl9BVFRSX05PVF9ERUZFUlJB QkxFOgotCQljYXNlIENPTlNUUl9BVFRSX0RFRkVSUkVEOgotCQljYXNlIENPTlNUUl9BVFRS X0lNTUVESUFURToKLQkJCS8qIG5vIGV4dHJhIGZpZWxkcyAqLwotCQkJYnJlYWs7Ci0KLQkJ ZGVmYXVsdDoKLQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgQ29uc3RyVHlwZTogJWQi LCAoaW50KSBsb2NhbF9ub2RlLT5jb250eXBlKTsKLQkJCWJyZWFrOwotCX0KLQotCVJFQURf RE9ORSgpOwotfQotCiBzdGF0aWMgUmFuZ2VUYmxFbnRyeSAqCiBfcmVhZFJhbmdlVGJsRW50 cnkodm9pZCkKIHsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBiMzE4MWYzNGFlZS4u NjQ4YjYxOTc1MDIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTI1NjYsNDMgKzI1 NjYsMzMgQEAgdHlwZWRlZiBlbnVtIENvbnN0clR5cGUJCQkvKiB0eXBlcyBvZiBjb25zdHJh aW50cyAqLwogCiB0eXBlZGVmIHN0cnVjdCBDb25zdHJhaW50CiB7Ci0JcGdfbm9kZV9hdHRy KGN1c3RvbV9yZWFkX3dyaXRlKQotCiAJTm9kZVRhZwkJdHlwZTsKIAlDb25zdHJUeXBlCWNv bnR5cGU7CQkvKiBzZWUgYWJvdmUgKi8KLQotCS8qIEZpZWxkcyB1c2VkIGZvciBtb3N0L2Fs bCBjb25zdHJhaW50IHR5cGVzOiAqLwogCWNoYXIJICAgKmNvbm5hbWU7CQkvKiBDb25zdHJh aW50IG5hbWUsIG9yIE5VTEwgaWYgdW5uYW1lZCAqLwogCWJvb2wJCWRlZmVycmFibGU7CQkv KiBERUZFUlJBQkxFPyAqLwogCWJvb2wJCWluaXRkZWZlcnJlZDsJLyogSU5JVElBTExZIERF RkVSUkVEPyAqLwotCWludAkJCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0x IGlmIHVua25vd24gKi8KLQotCS8qIEZpZWxkcyB1c2VkIGZvciBjb25zdHJhaW50cyB3aXRo IGV4cHJlc3Npb25zIChDSEVDSyBhbmQgREVGQVVMVCk6ICovCisJYm9vbAkJc2tpcF92YWxp ZGF0aW9uOwkvKiBza2lwIHZhbGlkYXRpb24gb2YgZXhpc3Rpbmcgcm93cz8gKi8KKwlib29s CQlpbml0aWFsbHlfdmFsaWQ7CS8qIG1hcmsgdGhlIG5ldyBjb25zdHJhaW50IGFzIHZhbGlk PyAqLwogCWJvb2wJCWlzX25vX2luaGVyaXQ7CS8qIGlzIGNvbnN0cmFpbnQgbm9uLWluaGVy aXRhYmxlPyAqLwotCU5vZGUJICAgKnJhd19leHByOwkJLyogZXhwciwgYXMgdW50cmFuc2Zv cm1lZCBwYXJzZSB0cmVlICovCi0JY2hhcgkgICAqY29va2VkX2V4cHI7CS8qIGV4cHIsIGFz IG5vZGVUb1N0cmluZyByZXByZXNlbnRhdGlvbiAqLworCU5vZGUJICAgKnJhd19leHByOwkJ LyogQ0hFQ0sgb3IgREVGQVVMVCBleHByZXNzaW9uLCBhcworCQkJCQkJCQkgKiB1bnRyYW5z Zm9ybWVkIHBhcnNlIHRyZWUgKi8KKwljaGFyCSAgICpjb29rZWRfZXhwcjsJLyogQ0hFQ0sg b3IgREVGQVVMVCBleHByZXNzaW9uLCBhcworCQkJCQkJCQkgKiBub2RlVG9TdHJpbmcgcmVw cmVzZW50YXRpb24gKi8KIAljaGFyCQlnZW5lcmF0ZWRfd2hlbjsgLyogQUxXQVlTIG9yIEJZ IERFRkFVTFQgKi8KLQotCS8qIEZpZWxkcyB1c2VkIGZvciAicmF3IiBOT1QgTlVMTCBjb25z dHJhaW50czogKi8KLQlpbnQJCQlpbmhjb3VudDsJCS8qIGluaXRpYWwgaW5oZXJpdGFuY2Ug Y291bnQgdG8gYXBwbHkgKi8KLQotCS8qIEZpZWxkcyB1c2VkIGZvciB1bmlxdWUgY29uc3Ry YWludHMgKFVOSVFVRSBhbmQgUFJJTUFSWSBLRVkpOiAqLworCWludAkJCWluaGNvdW50OwkJ LyogaW5pdGlhbCBpbmhlcml0YW5jZSBjb3VudCB0byBhcHBseSwgZm9yCisJCQkJCQkJCSAq ICJyYXciIE5PVCBOVUxMIGNvbnN0cmFpbnRzICovCiAJYm9vbAkJbnVsbHNfbm90X2Rpc3Rp bmN0OyAvKiBudWxsIHRyZWF0bWVudCBmb3IgVU5JUVVFIGNvbnN0cmFpbnRzICovCiAJTGlz dAkgICAqa2V5czsJCQkvKiBTdHJpbmcgbm9kZXMgbmFtaW5nIHJlZmVyZW5jZWQga2V5Ci0J CQkJCQkJCSAqIGNvbHVtbihzKTsgYWxzbyB1c2VkIGZvciBOT1QgTlVMTCAqLworCQkJCQkJ CQkgKiBjb2x1bW4ocyk7IGZvciBVTklRVUUvUEsvTk9UIE5VTEwgKi8KIAlMaXN0CSAgICpp bmNsdWRpbmc7CQkvKiBTdHJpbmcgbm9kZXMgbmFtaW5nIHJlZmVyZW5jZWQgbm9ua2V5Ci0J CQkJCQkJCSAqIGNvbHVtbihzKSAqLwotCi0JLyogRmllbGRzIHVzZWQgZm9yIEVYQ0xVU0lP TiBjb25zdHJhaW50czogKi8KLQlMaXN0CSAgICpleGNsdXNpb25zOwkJLyogbGlzdCBvZiAo SW5kZXhFbGVtLCBvcGVyYXRvciBuYW1lKSBwYWlycyAqLwotCi0JLyogRmllbGRzIHVzZWQg Zm9yIGluZGV4IGNvbnN0cmFpbnRzIChVTklRVUUsIFBSSU1BUlkgS0VZLCBFWENMVVNJT04p OiAqLworCQkJCQkJCQkgKiBjb2x1bW4ocyk7IGZvciBVTklRVUUvUEsgKi8KKwlMaXN0CSAg ICpleGNsdXNpb25zOwkJLyogbGlzdCBvZiAoSW5kZXhFbGVtLCBvcGVyYXRvciBuYW1lKSBw YWlyczsKKwkJCQkJCQkJICogZm9yIGV4Y2x1c2lvbiBjb25zdHJhaW50cyAqLwogCUxpc3QJ ICAgKm9wdGlvbnM7CQkvKiBvcHRpb25zIGZyb20gV0lUSCBjbGF1c2UgKi8KIAljaGFyCSAg ICppbmRleG5hbWU7CQkvKiBleGlzdGluZyBpbmRleCB0byB1c2U7IG90aGVyd2lzZSBOVUxM ICovCiAJY2hhcgkgICAqaW5kZXhzcGFjZTsJCS8qIGluZGV4IHRhYmxlc3BhY2U7IE5VTEwg Zm9yIGRlZmF1bHQgKi8KIAlib29sCQlyZXNldF9kZWZhdWx0X3RibHNwYzsJLyogcmVzZXQg ZGVmYXVsdF90YWJsZXNwYWNlIHByaW9yIHRvCiAJCQkJCQkJCQkJICogY3JlYXRpbmcgdGhl IGluZGV4ICovCi0JLyogVGhlc2UgY291bGQgYmUsIGJ1dCBjdXJyZW50bHkgYXJlIG5vdCwg dXNlZCBmb3IgVU5JUVVFL1BLRVk6ICovCiAJY2hhcgkgICAqYWNjZXNzX21ldGhvZDsJLyog aW5kZXggYWNjZXNzIG1ldGhvZDsgTlVMTCBmb3IgZGVmYXVsdCAqLwogCU5vZGUJICAgKndo ZXJlX2NsYXVzZTsJLyogcGFydGlhbCBpbmRleCBwcmVkaWNhdGUgKi8KIApAQCAtMjYxOCw5 ICsyNjA4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ29uc3RyYWludAogCU9pZAkJCW9sZF9wa3Rh YmxlX29pZDsJLyogcGdfY29uc3RyYWludC5jb25mcmVsaWQgb2YgbXkgZm9ybWVyCiAJCQkJ CQkJCQkgKiBzZWxmICovCiAKLQkvKiBGaWVsZHMgdXNlZCBmb3IgY29uc3RyYWludHMgdGhh dCBhbGxvdyBhIE5PVCBWQUxJRCBzcGVjaWZpY2F0aW9uICovCi0JYm9vbAkJc2tpcF92YWxp ZGF0aW9uOwkvKiBza2lwIHZhbGlkYXRpb24gb2YgZXhpc3Rpbmcgcm93cz8gKi8KLQlib29s CQlpbml0aWFsbHlfdmFsaWQ7CS8qIG1hcmsgdGhlIG5ldyBjb25zdHJhaW50IGFzIHZhbGlk PyAqLworCWludAkJCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVu a25vd24gKi8KIH0gQ29uc3RyYWludDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoK YmFzZS1jb21taXQ6IDMxYWNlZTRiNjZmOWY4OGFkNWMxOWMxMjc2MjUyNjg4YmRhYTk1YzkK LS0gCjIuNDMuMAoK --------------RQiAIE01WA0m2ZNBdyJPEsK3 Content-Type: text/plain; charset=UTF-8; name="v2-0002-Remove-custom-_jumbleRangeTblEntry.patch" Content-Disposition: attachment; filename="v2-0002-Remove-custom-_jumbleRangeTblEntry.patch" Content-Transfer-Encoding: base64 RnJvbSAxOTFhYWUzNDE4OTU5NDMxNDA0MjI5OWY1MDMwOWExZGUzNTc0YmU5IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxNSBKYW4gMjAyNCAxMToyMzozOSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMi80XSBSZW1vdmUgY3VzdG9tIF9qdW1ibGVSYW5nZVRibEVudHJ5KCkK ClRoaXMgaXMgcGFydCBvZiBhbiBlZmZvcnQgdG8gcmVkdWNlIHRoZSBudW1iZXIgb2Ygc3Bl Y2lhbCBjYXNlcyBpbiB0aGUKYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbm9kZSBzdXBwb3J0 IGZ1bmN0aW9ucy4KClJhbmdlVGJsRW50cnkgaGFzIGEgY3VzdG9tIGp1bWJsZSBmdW5jdGlv bi4gIFRoaXMgd2FzIHByb2JhYmx5IGp1c3QKY2FycmllZCBvdmVyIGZyb20gdGhlIHBnX3N0 YXRfc3RhdGVtZW50cy1zcGVjaWZpYyBjb2RlIHdpdGhvdXQgYW55CmRldGFpbGVkIHJldmll dy4gIEZvciBleGFtcGxlLCB0aGUgImluaCIgZmllbGQgaXMgZG9jdW1lbnRlZCB0byBiZQp2 YWxpZCBpbiBhbGwgUlRFcywgYnV0IGl0J3Mgb25seSBqdW1ibGVkIGZvciBSVEVfUkVMQVRJ T04uICBUaGUKImxhdGVyYWwiIGZpZWxkIGlzbid0IGxvb2tlZCBhdCBhdCBhbGwuICBJIHdv dWxkbid0IGJlIHN1cnByaXNlZCBpZgp0aGVyZSBhcmUgbW9yZSBjYXNlcyBsaWtlIHRoaXMu CgpUaGlzIHBhdGNoIHJlbW92ZXMgX2p1bWJsZVJhbmdlVGJsRW50cnkoKSBhbmQgaW5zdGVh ZCBhZGRzIHBlci1maWVsZApxdWVyeV9qdW1ibGVfaWdub3JlIGFubm90YXRpb25zIHRvIGFw cHJveGltYXRlbHkgbWF0Y2ggdGhlIGJlaGF2aW9yIG9mCnRoZSBwcmV2aW91cyBjdXN0b20g Y29kZS4gIFRoZSBwZ19zdGF0X3N0YXRlbWVudHMgdGVzdCBzdWl0ZSBoYXMgc29tZQpjb3Zl cmFnZSBvZiB0aGlzLiAgSXQgZ2V0cyByaWQgb2Ygc3dpdGNoIG9uIHJ0ZWtpbmQ7IHRoaXMg c2hvdWxkIGJlCnRlY2huaWNhbGx5IGNvcnJlY3QsIHNpbmNlIHdlIGRvIHRoZSBlcXVhbCBh bmQgY29weSBmdW5jdGlvbnMgbGlrZQp0aGlzIGFsc28uICBTbyBmb3IgZXhhbXBsZSB0aGUg ImluaCIgZmllbGQgaXMgbm93IGNvbnNpZGVyZWQgaW4gZWFjaApjYXNlLiAgQnV0IGl0IGxl YXZlcyAibGF0ZXJhbCIgYWxvbmUuICBQcm9iYWJseSwgc2V2ZXJhbCBvZiB0aGVzZSBuZXcK cXVlcnlfanVtYmxlX2lnbm9yZSBzaG91bGQgYWN0dWFsbHkgYmUgZHJvcHBlZCBiZWNhdXNl IHRoZSBjb2RlIHdhcwp3cm9uZyBiZWZvcmUuCgpEaXNjdXNzaW9uOiBodHRwczovL3d3dy5w b3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvNGIyN2ZjNTAtOGNkNi00NmY1LWFiMjAt ODhkYmFhZGNhNjQ1QGVpc2VudHJhdXQub3JnCi0tLQogc3JjL2JhY2tlbmQvbm9kZXMvcXVl cnlqdW1ibGVmdW5jcy5jIHwgNDggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgIHwgNDIgKysrKysrKysrKysrLS0t LS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKyksIDY5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVu Y3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL3F1ZXJ5anVtYmxlZnVuY3MuYwppbmRleCBlNDg5 YmZjZWI1Ni4uN2FjY2Q3YjYyNDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL3F1 ZXJ5anVtYmxlZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9xdWVyeWp1bWJsZWZ1 bmNzLmMKQEAgLTM0Nyw1MSArMzQ3LDMgQEAgX2p1bWJsZUFfQ29uc3QoSnVtYmxlU3RhdGUg KmpzdGF0ZSwgTm9kZSAqbm9kZSkKIAkJfQogCX0KIH0KLQotc3RhdGljIHZvaWQKLV9qdW1i bGVSYW5nZVRibEVudHJ5KEp1bWJsZVN0YXRlICpqc3RhdGUsIE5vZGUgKm5vZGUpCi17Ci0J UmFuZ2VUYmxFbnRyeSAqZXhwciA9IChSYW5nZVRibEVudHJ5ICopIG5vZGU7Ci0KLQlKVU1C TEVfRklFTEQocnRla2luZCk7Ci0Jc3dpdGNoIChleHByLT5ydGVraW5kKQotCXsKLQkJY2Fz ZSBSVEVfUkVMQVRJT046Ci0JCQlKVU1CTEVfRklFTEQocmVsaWQpOwotCQkJSlVNQkxFX05P REUodGFibGVzYW1wbGUpOwotCQkJSlVNQkxFX0ZJRUxEKGluaCk7Ci0JCQlicmVhazsKLQkJ Y2FzZSBSVEVfU1VCUVVFUlk6Ci0JCQlKVU1CTEVfTk9ERShzdWJxdWVyeSk7Ci0JCQlicmVh azsKLQkJY2FzZSBSVEVfSk9JTjoKLQkJCUpVTUJMRV9GSUVMRChqb2ludHlwZSk7Ci0JCQli cmVhazsKLQkJY2FzZSBSVEVfRlVOQ1RJT046Ci0JCQlKVU1CTEVfTk9ERShmdW5jdGlvbnMp OwotCQkJYnJlYWs7Ci0JCWNhc2UgUlRFX1RBQkxFRlVOQzoKLQkJCUpVTUJMRV9OT0RFKHRh YmxlZnVuYyk7Ci0JCQlicmVhazsKLQkJY2FzZSBSVEVfVkFMVUVTOgotCQkJSlVNQkxFX05P REUodmFsdWVzX2xpc3RzKTsKLQkJCWJyZWFrOwotCQljYXNlIFJURV9DVEU6Ci0KLQkJCS8q Ci0JCQkgKiBEZXBlbmRpbmcgb24gdGhlIENURSBuYW1lIGhlcmUgaXNuJ3QgaWRlYWwsIGJ1 dCBpdCdzIHRoZSBvbmx5Ci0JCQkgKiBpbmZvIHdlIGhhdmUgdG8gaWRlbnRpZnkgdGhlIHJl ZmVyZW5jZWQgV0lUSCBpdGVtLgotCQkJICovCi0JCQlKVU1CTEVfU1RSSU5HKGN0ZW5hbWUp OwotCQkJSlVNQkxFX0ZJRUxEKGN0ZWxldmVsc3VwKTsKLQkJCWJyZWFrOwotCQljYXNlIFJU RV9OQU1FRFRVUExFU1RPUkU6Ci0JCQlKVU1CTEVfU1RSSU5HKGVucm5hbWUpOwotCQkJYnJl YWs7Ci0JCWNhc2UgUlRFX1JFU1VMVDoKLQkJCWJyZWFrOwotCQlkZWZhdWx0OgotCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBSVEUga2luZDogJWQiLCAoaW50KSBleHByLT5ydGVr aW5kKTsKLQkJCWJyZWFrOwotCX0KLX0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA2 NDhiNjE5NzUwMi4uZDM3N2YxNmE3MmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAg LTEwMTgsNyArMTAxOCw3IEBAIHR5cGVkZWYgZW51bSBSVEVLaW5kCiAKIHR5cGVkZWYgc3Ry dWN0IFJhbmdlVGJsRW50cnkKIHsKLQlwZ19ub2RlX2F0dHIoY3VzdG9tX3JlYWRfd3JpdGUs IGN1c3RvbV9xdWVyeV9qdW1ibGUpCisJcGdfbm9kZV9hdHRyKGN1c3RvbV9yZWFkX3dyaXRl KQogCiAJTm9kZVRhZwkJdHlwZTsKIApAQCAtMTA2MiwxNiArMTA2MiwxNiBAQCB0eXBlZGVm IHN0cnVjdCBSYW5nZVRibEVudHJ5CiAJICogdGFibGVzIHRvIGJlIGludmFsaWRhdGVkIGlm IHRoZSB1bmRlcmx5aW5nIHRhYmxlIGlzIGFsdGVyZWQuCiAJICovCiAJT2lkCQkJcmVsaWQ7 CQkJLyogT0lEIG9mIHRoZSByZWxhdGlvbiAqLwotCWNoYXIJCXJlbGtpbmQ7CQkvKiByZWxh dGlvbiBraW5kIChzZWUgcGdfY2xhc3MucmVsa2luZCkgKi8KLQlpbnQJCQlyZWxsb2NrbW9k ZTsJLyogbG9jayBsZXZlbCB0aGF0IHF1ZXJ5IHJlcXVpcmVzIG9uIHRoZSByZWwgKi8KKwlj aGFyCQlyZWxraW5kIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsJCS8qIHJl bGF0aW9uIGtpbmQgKHNlZSBwZ19jbGFzcy5yZWxraW5kKSAqLworCWludAkJCXJlbGxvY2tt b2RlIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsJLyogbG9jayBsZXZlbCB0 aGF0IHF1ZXJ5IHJlcXVpcmVzIG9uIHRoZSByZWwgKi8KIAlzdHJ1Y3QgVGFibGVTYW1wbGVD bGF1c2UgKnRhYmxlc2FtcGxlOwkvKiBzYW1wbGluZyBpbmZvLCBvciBOVUxMICovCi0JSW5k ZXgJCXBlcm1pbmZvaW5kZXg7CisJSW5kZXgJCXBlcm1pbmZvaW5kZXggcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCiAJLyoKIAkgKiBGaWVsZHMgdmFsaWQgZm9yIGEg c3VicXVlcnkgUlRFIChlbHNlIE5VTEwpOgogCSAqLwogCVF1ZXJ5CSAgICpzdWJxdWVyeTsJ CS8qIHRoZSBzdWItcXVlcnkgKi8KLQlib29sCQlzZWN1cml0eV9iYXJyaWVyOwkvKiBpcyBm cm9tIHNlY3VyaXR5X2JhcnJpZXIgdmlldz8gKi8KKwlib29sCQlzZWN1cml0eV9iYXJyaWVy IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsJLyogaXMgZnJvbSBzZWN1cml0 eV9iYXJyaWVyIHZpZXc/ICovCiAKIAkvKgogCSAqIEZpZWxkcyB2YWxpZCBmb3IgYSBqb2lu IFJURSAoZWxzZSBOVUxML3plcm8pOgpAQCAtMTExNywxNyArMTExNywxNyBAQCB0eXBlZGVm IHN0cnVjdCBSYW5nZVRibEVudHJ5CiAJICogam9pbmxlZnRjb2xzL2pvaW5yaWdodHRjb2xz LgogCSAqLwogCUpvaW5UeXBlCWpvaW50eXBlOwkJLyogdHlwZSBvZiBqb2luICovCi0JaW50 CQkJam9pbm1lcmdlZGNvbHM7IC8qIG51bWJlciBvZiBtZXJnZWQgKEpPSU4gVVNJTkcpIGNv bHVtbnMgKi8KLQlMaXN0CSAgICpqb2luYWxpYXN2YXJzOwkvKiBsaXN0IG9mIGFsaWFzLXZh ciBleHBhbnNpb25zICovCi0JTGlzdAkgICAqam9pbmxlZnRjb2xzOwkvKiBsZWZ0LXNpZGUg aW5wdXQgY29sdW1uIG51bWJlcnMgKi8KLQlMaXN0CSAgICpqb2lucmlnaHRjb2xzOwkvKiBy aWdodC1zaWRlIGlucHV0IGNvbHVtbiBudW1iZXJzICovCisJaW50CQkJam9pbm1lcmdlZGNv bHMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOyAvKiBudW1iZXIgb2YgbWVy Z2VkIChKT0lOIFVTSU5HKSBjb2x1bW5zICovCisJTGlzdAkgICAqam9pbmFsaWFzdmFycyBw Z19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CS8qIGxpc3Qgb2YgYWxpYXMtdmFy IGV4cGFuc2lvbnMgKi8KKwlMaXN0CSAgICpqb2lubGVmdGNvbHMgcGdfbm9kZV9hdHRyKHF1 ZXJ5X2p1bWJsZV9pZ25vcmUpOwkvKiBsZWZ0LXNpZGUgaW5wdXQgY29sdW1uIG51bWJlcnMg Ki8KKwlMaXN0CSAgICpqb2lucmlnaHRjb2xzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVf aWdub3JlKTsJLyogcmlnaHQtc2lkZSBpbnB1dCBjb2x1bW4gbnVtYmVycyAqLwogCiAJLyoK IAkgKiBqb2luX3VzaW5nX2FsaWFzIGlzIGFuIGFsaWFzIGNsYXVzZSBhdHRhY2hlZCBkaXJl Y3RseSB0byBKT0lOL1VTSU5HLiBJdAogCSAqIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBhbGlh cyBmaWVsZCAoYmVsb3cpIGluIHRoYXQgaXQgZG9lcyBub3QgaGlkZSB0aGUKIAkgKiByYW5n ZSB2YXJpYWJsZXMgb2YgdGhlIHRhYmxlcyBiZWluZyBqb2luZWQuCiAJICovCi0JQWxpYXMJ ICAgKmpvaW5fdXNpbmdfYWxpYXM7CisJQWxpYXMJICAgKmpvaW5fdXNpbmdfYWxpYXMgcGdf bm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCiAJLyoKIAkgKiBGaWVsZHMgdmFs aWQgZm9yIGEgZnVuY3Rpb24gUlRFIChlbHNlIE5JTC96ZXJvKToKQEAgLTExMzgsNyArMTEz OCw3IEBAIHR5cGVkZWYgc3RydWN0IFJhbmdlVGJsRW50cnkKIAkgKiBleHBhbmRSVEUoKS4K IAkgKi8KIAlMaXN0CSAgICpmdW5jdGlvbnM7CQkvKiBsaXN0IG9mIFJhbmdlVGJsRnVuY3Rp b24gbm9kZXMgKi8KLQlib29sCQlmdW5jb3JkaW5hbGl0eTsgLyogaXMgdGhpcyBjYWxsZWQg V0lUSCBPUkRJTkFMSVRZPyAqLworCWJvb2wJCWZ1bmNvcmRpbmFsaXR5IHBnX25vZGVfYXR0 cihxdWVyeV9qdW1ibGVfaWdub3JlKTsgLyogaXMgdGhpcyBjYWxsZWQgV0lUSCBPUkRJTkFM SVRZPyAqLwogCiAJLyoKIAkgKiBGaWVsZHMgdmFsaWQgZm9yIGEgVGFibGVGdW5jIFJURSAo ZWxzZSBOVUxMKToKQEAgLTExNTUsNyArMTE1NSw3IEBAIHR5cGVkZWYgc3RydWN0IFJhbmdl VGJsRW50cnkKIAkgKi8KIAljaGFyCSAgICpjdGVuYW1lOwkJLyogbmFtZSBvZiB0aGUgV0lU SCBsaXN0IGl0ZW0gKi8KIAlJbmRleAkJY3RlbGV2ZWxzdXA7CS8qIG51bWJlciBvZiBxdWVy eSBsZXZlbHMgdXAgKi8KLQlib29sCQlzZWxmX3JlZmVyZW5jZTsgLyogaXMgdGhpcyBhIHJl Y3Vyc2l2ZSBzZWxmLXJlZmVyZW5jZT8gKi8KKwlib29sCQlzZWxmX3JlZmVyZW5jZSBwZ19u b2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7IC8qIGlzIHRoaXMgYSByZWN1cnNpdmUg c2VsZi1yZWZlcmVuY2U/ICovCiAKIAkvKgogCSAqIEZpZWxkcyB2YWxpZCBmb3IgQ1RFLCBW QUxVRVMsIEVOUiwgYW5kIFRhYmxlRnVuYyBSVEVzIChlbHNlIE5JTCk6CkBAIC0xMTc1LDI1 ICsxMTc1LDI1IEBAIHR5cGVkZWYgc3RydWN0IFJhbmdlVGJsRW50cnkKIAkgKiBhbGwgdGhy ZWUgbGlzdHMgKGFzIHdlbGwgYXMgYW4gZW1wdHktc3RyaW5nIGVudHJ5IGluIGVyZWYpLiAg VGVzdGluZwogCSAqIGZvciB6ZXJvIGNvbHR5cGUgaXMgdGhlIHN0YW5kYXJkIHdheSB0byBk ZXRlY3QgYSBkcm9wcGVkIGNvbHVtbi4KIAkgKi8KLQlMaXN0CSAgICpjb2x0eXBlczsJCS8q IE9JRCBsaXN0IG9mIGNvbHVtbiB0eXBlIE9JRHMgKi8KLQlMaXN0CSAgICpjb2x0eXBtb2Rz OwkJLyogaW50ZWdlciBsaXN0IG9mIGNvbHVtbiB0eXBtb2RzICovCi0JTGlzdAkgICAqY29s Y29sbGF0aW9uczsJLyogT0lEIGxpc3Qgb2YgY29sdW1uIGNvbGxhdGlvbiBPSURzICovCisJ TGlzdAkgICAqY29sdHlwZXMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwkJ LyogT0lEIGxpc3Qgb2YgY29sdW1uIHR5cGUgT0lEcyAqLworCUxpc3QJICAgKmNvbHR5cG1v ZHMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwkJLyogaW50ZWdlciBsaXN0 IG9mIGNvbHVtbiB0eXBtb2RzICovCisJTGlzdAkgICAqY29sY29sbGF0aW9ucyBwZ19ub2Rl X2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CS8qIE9JRCBsaXN0IG9mIGNvbHVtbiBjb2xs YXRpb24gT0lEcyAqLwogCiAJLyoKIAkgKiBGaWVsZHMgdmFsaWQgZm9yIEVOUiBSVEVzIChl bHNlIE5VTEwvemVybyk6CiAJICovCiAJY2hhcgkgICAqZW5ybmFtZTsJCS8qIG5hbWUgb2Yg ZXBoZW1lcmFsIG5hbWVkIHJlbGF0aW9uICovCi0JQ2FyZGluYWxpdHkgZW5ydHVwbGVzOwkJ LyogZXN0aW1hdGVkIG9yIGFjdHVhbCBmcm9tIGNhbGxlciAqLworCUNhcmRpbmFsaXR5IGVu cnR1cGxlcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CQkvKiBlc3RpbWF0 ZWQgb3IgYWN0dWFsIGZyb20gY2FsbGVyICovCiAKIAkvKgogCSAqIEZpZWxkcyB2YWxpZCBp biBhbGwgUlRFczoKIAkgKi8KLQlBbGlhcwkgICAqYWxpYXM7CQkJLyogdXNlci13cml0dGVu IGFsaWFzIGNsYXVzZSwgaWYgYW55ICovCi0JQWxpYXMJICAgKmVyZWY7CQkJLyogZXhwYW5k ZWQgcmVmZXJlbmNlIG5hbWVzICovCi0JYm9vbAkJbGF0ZXJhbDsJCS8qIHN1YnF1ZXJ5LCBm dW5jdGlvbiwgb3IgdmFsdWVzIGlzIExBVEVSQUw/ICovCisJQWxpYXMJICAgKmFsaWFzIHBn X25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsJCQkvKiB1c2VyLXdyaXR0ZW4gYWxp YXMgY2xhdXNlLCBpZiBhbnkgKi8KKwlBbGlhcwkgICAqZXJlZiBwZ19ub2RlX2F0dHIocXVl cnlfanVtYmxlX2lnbm9yZSk7CQkJLyogZXhwYW5kZWQgcmVmZXJlbmNlIG5hbWVzICovCisJ Ym9vbAkJbGF0ZXJhbCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CQkvKiBz dWJxdWVyeSwgZnVuY3Rpb24sIG9yIHZhbHVlcyBpcyBMQVRFUkFMPyAqLwogCWJvb2wJCWlu aDsJCQkvKiBpbmhlcml0YW5jZSByZXF1ZXN0ZWQ/ICovCi0JYm9vbAkJaW5Gcm9tQ2w7CQkv KiBwcmVzZW50IGluIEZST00gY2xhdXNlPyAqLwotCUxpc3QJICAgKnNlY3VyaXR5UXVhbHM7 CS8qIHNlY3VyaXR5IGJhcnJpZXIgcXVhbHMgdG8gYXBwbHksIGlmIGFueSAqLworCWJvb2wJ CWluRnJvbUNsIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsJCS8qIHByZXNl bnQgaW4gRlJPTSBjbGF1c2U/ICovCisJTGlzdAkgICAqc2VjdXJpdHlRdWFscyBwZ19ub2Rl X2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CS8qIHNlY3VyaXR5IGJhcnJpZXIgcXVhbHMg dG8gYXBwbHksIGlmIGFueSAqLwogfSBSYW5nZVRibEVudHJ5OwogCiAvKgotLSAKMi40My4w Cgo= --------------RQiAIE01WA0m2ZNBdyJPEsK3 Content-Type: text/plain; charset=UTF-8; name="v2-0003-Simplify-range_table_mutator_impl.patch" Content-Disposition: attachment; filename="v2-0003-Simplify-range_table_mutator_impl.patch" Content-Transfer-Encoding: base64 RnJvbSBkZjI4OTgyMzUzNTBhYWZlODJmYjk0OGI3M2UxMmE5NzZlNzEyMzdhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxNSBKYW4gMjAyNCAxMToyMzozOSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgMy80XSBTaW1wbGlmeSByYW5nZV90YWJsZV9tdXRhdG9yX2ltcGwoKQoK VGhpcyBpcyBwYXJ0IG9mIGFuIGVmZm9ydCB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBzcGVj aWFsIGNhc2VzIGluIHRoZQpub2RlIHN1cHBvcnQgZnVuY3Rpb25zLgoKQWxsZWdlZGx5LCBv bmx5IGNlcnRhaW4gZmllbGRzIG9mIFJhbmdlVGJsRW50cnkgYXJlIHZhbGlkIGJhc2VkIG9u CnJ0ZWtpbmQuICBCdXQgZXhhY3RseSB3aGljaCBvbmVzIHNlZW1zIHRvIGJlIGRvY3VtZW50 ZWQgYW5kIGhhbmRsZWQKaW5jb25zaXN0ZW50bHkuICBJdCBzZWVtcyB0aGF0IG92ZXIgdGlt ZSwgbmV3IFJURSBraW5kcyBoYXZlCiJib3Jyb3dlZCIgZmllbGRzIHRoYXQgbm90aW9uYWxs eSBiZWxvbmcgdG8gb3RoZXIgUlRFIGtpbmRzLCB3aGljaCBpcwp0ZWNobmljYWxseSBub3Qg YSBwcm9ibGVtIGJ1dCBjcmVhdGVzIGEgYml0IG9mIGEgbWVzcyB3aGVuIHRyeWluZyB0bwp1 bmRlcnN0YW5kIGFsbCB0aGlzLgoKVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBzd2l0Y2ggb24g cnRla2luZCBmcm9tCnJhbmdlX3RhYmxlX211dGF0b3JfaW1wbCgpLiAgVGhpcyBzaG91bGQg YmUgZmluZSBiZWNhdXNlIGFsbCB0aGUKc3Vicm91dGluZXMgY2FuIGhhbmRsZSB1bnNldC9O VUxMIGZpZWxkcy4gIEFuZCBpdCByZW1vdmVzIG9uZSBtb3JlCnBsYWNlIHRoYXQgbmVlZHMg dG8gdHJhY2sga25vd2xlZGdlIGFib3V0IHdoaWNoIGZpZWxkcyBhcmUgdmFsaWQgd2hlbi4K CkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3NhZ2UtaWQvZmxh dC80YjI3ZmM1MC04Y2Q2LTQ2ZjUtYWIyMC04OGRiYWFkY2E2NDVAZWlzZW50cmF1dC5vcmcK LS0tCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyB8IDYxICsrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjMgaW5zZXJ0aW9ucygr KSwgMzggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBlMWE1YmM3 ZTk1ZC4uZmU4NzIzOGYxOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVG dW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0zNjk0LDQ3 ICszNjk0LDMyIEBAIHJhbmdlX3RhYmxlX211dGF0b3JfaW1wbChMaXN0ICpydGFibGUsCiAJ CVJhbmdlVGJsRW50cnkgKm5ld3J0ZTsKIAogCQlGTEFUQ09QWShuZXdydGUsIHJ0ZSwgUmFu Z2VUYmxFbnRyeSk7Ci0JCXN3aXRjaCAocnRlLT5ydGVraW5kKQorCisJCU1VVEFURShuZXdy dGUtPnRhYmxlc2FtcGxlLCBydGUtPnRhYmxlc2FtcGxlLCBUYWJsZVNhbXBsZUNsYXVzZSAq KTsKKworCQlpZiAoIShmbGFncyAmIFFUV19JR05PUkVfUlRfU1VCUVVFUklFUykpCisJCQlN VVRBVEUobmV3cnRlLT5zdWJxdWVyeSwgcnRlLT5zdWJxdWVyeSwgUXVlcnkgKik7CisJCWVs c2UKIAkJewotCQkJY2FzZSBSVEVfUkVMQVRJT046Ci0JCQkJTVVUQVRFKG5ld3J0ZS0+dGFi bGVzYW1wbGUsIHJ0ZS0+dGFibGVzYW1wbGUsCi0JCQkJCSAgIFRhYmxlU2FtcGxlQ2xhdXNl ICopOwotCQkJCS8qIHdlIGRvbid0IGJvdGhlciB0byBjb3B5IGVyZWYsIGFsaWFzZXMsIGV0 YzsgT0s/ICovCi0JCQkJYnJlYWs7Ci0JCQljYXNlIFJURV9TVUJRVUVSWToKLQkJCQlpZiAo IShmbGFncyAmIFFUV19JR05PUkVfUlRfU1VCUVVFUklFUykpCi0JCQkJCU1VVEFURShuZXdy dGUtPnN1YnF1ZXJ5LCBydGUtPnN1YnF1ZXJ5LCBRdWVyeSAqKTsKLQkJCQllbHNlCi0JCQkJ ewotCQkJCQkvKiBlbHNlLCBjb3B5IFJUIHN1YnF1ZXJpZXMgYXMtaXMgKi8KLQkJCQkJbmV3 cnRlLT5zdWJxdWVyeSA9IGNvcHlPYmplY3QocnRlLT5zdWJxdWVyeSk7Ci0JCQkJfQotCQkJ CWJyZWFrOwotCQkJY2FzZSBSVEVfSk9JTjoKLQkJCQlpZiAoIShmbGFncyAmIFFUV19JR05P UkVfSk9JTkFMSUFTRVMpKQotCQkJCQlNVVRBVEUobmV3cnRlLT5qb2luYWxpYXN2YXJzLCBy dGUtPmpvaW5hbGlhc3ZhcnMsIExpc3QgKik7Ci0JCQkJZWxzZQotCQkJCXsKLQkJCQkJLyog ZWxzZSwgY29weSBqb2luIGFsaWFzZXMgYXMtaXMgKi8KLQkJCQkJbmV3cnRlLT5qb2luYWxp YXN2YXJzID0gY29weU9iamVjdChydGUtPmpvaW5hbGlhc3ZhcnMpOwotCQkJCX0KLQkJCQli cmVhazsKLQkJCWNhc2UgUlRFX0ZVTkNUSU9OOgotCQkJCU1VVEFURShuZXdydGUtPmZ1bmN0 aW9ucywgcnRlLT5mdW5jdGlvbnMsIExpc3QgKik7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFJU RV9UQUJMRUZVTkM6Ci0JCQkJTVVUQVRFKG5ld3J0ZS0+dGFibGVmdW5jLCBydGUtPnRhYmxl ZnVuYywgVGFibGVGdW5jICopOwotCQkJCWJyZWFrOwotCQkJY2FzZSBSVEVfVkFMVUVTOgot CQkJCU1VVEFURShuZXdydGUtPnZhbHVlc19saXN0cywgcnRlLT52YWx1ZXNfbGlzdHMsIExp c3QgKik7Ci0JCQkJYnJlYWs7Ci0JCQljYXNlIFJURV9DVEU6Ci0JCQljYXNlIFJURV9OQU1F RFRVUExFU1RPUkU6Ci0JCQljYXNlIFJURV9SRVNVTFQ6Ci0JCQkJLyogbm90aGluZyB0byBk byAqLwotCQkJCWJyZWFrOworCQkJLyogZWxzZSwgY29weSBSVCBzdWJxdWVyaWVzIGFzLWlz ICovCisJCQluZXdydGUtPnN1YnF1ZXJ5ID0gY29weU9iamVjdChydGUtPnN1YnF1ZXJ5KTsK KwkJfQorCisJCWlmICghKGZsYWdzICYgUVRXX0lHTk9SRV9KT0lOQUxJQVNFUykpCisJCQlN VVRBVEUobmV3cnRlLT5qb2luYWxpYXN2YXJzLCBydGUtPmpvaW5hbGlhc3ZhcnMsIExpc3Qg Kik7CisJCWVsc2UKKwkJeworCQkJLyogZWxzZSwgY29weSBqb2luIGFsaWFzZXMgYXMtaXMg Ki8KKwkJCW5ld3J0ZS0+am9pbmFsaWFzdmFycyA9IGNvcHlPYmplY3QocnRlLT5qb2luYWxp YXN2YXJzKTsKIAkJfQorCisJCU1VVEFURShuZXdydGUtPmZ1bmN0aW9ucywgcnRlLT5mdW5j dGlvbnMsIExpc3QgKik7CisJCU1VVEFURShuZXdydGUtPnRhYmxlZnVuYywgcnRlLT50YWJs ZWZ1bmMsIFRhYmxlRnVuYyAqKTsKKwkJTVVUQVRFKG5ld3J0ZS0+dmFsdWVzX2xpc3RzLCBy dGUtPnZhbHVlc19saXN0cywgTGlzdCAqKTsKIAkJTVVUQVRFKG5ld3J0ZS0+c2VjdXJpdHlR dWFscywgcnRlLT5zZWN1cml0eVF1YWxzLCBMaXN0ICopOworCisJCS8qIHdlIGRvbid0IGJv dGhlciB0byBjb3B5IGVyZWYsIGFsaWFzZXMsIGV0YzsgT0s/ICovCisKIAkJbmV3cnQgPSBs YXBwZW5kKG5ld3J0LCBuZXdydGUpOwogCX0KIAlyZXR1cm4gbmV3cnQ7Ci0tIAoyLjQzLjAK Cg== --------------RQiAIE01WA0m2ZNBdyJPEsK3 Content-Type: text/plain; charset=UTF-8; name="v2-0004-WIP-Remove-custom-RangeTblEntry-node-read-write-i.patch" Content-Disposition: attachment; filename*0="v2-0004-WIP-Remove-custom-RangeTblEntry-node-read-write-i.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAzZjhjMzIxN2U1MjllMmI1YTA3ZTllYTIyNmZjNzFlYjMzZTQ4NWFkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxNSBKYW4gMjAyNCAxMToyMzozOSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjIgNC80XSBXSVA6IFJlbW92ZSBjdXN0b20gUmFuZ2VUYmxFbnRyeSBub2Rl IHJlYWQvd3JpdGUKIGltcGxlbWVudGF0aW9ucwoKVGhpcyBpcyBwYXJ0IG9mIGFuIGVmZm9y dCB0byByZWR1Y2UgdGhlIG51bWJlciBvZiBzcGVjaWFsIGNhc2VzIGluIHRoZQphdXRvbWF0 aWNhbGx5IGdlbmVyYXRlZCBub2RlIHN1cHBvcnQgZnVuY3Rpb25zLgoKQWxsZWdlZGx5LCBv bmx5IGNlcnRhaW4gZmllbGRzIG9mIFJhbmdlVGJsRW50cnkgYXJlIHZhbGlkIGJhc2VkIG9u CnJ0ZWtpbmQuICBCdXQgZXhhY3RseSB3aGljaCBvbmVzIHNlZW1zIHRvIGJlIGRvY3VtZW50 ZWQgYW5kIGhhbmRsZWQKaW5jb25zaXN0ZW50bHkuICBJdCBzZWVtcyB0aGF0IG92ZXIgdGlt ZSwgbmV3IFJURSBraW5kcyBoYXZlCiJib3Jyb3dlZCIgZmllbGRzIHRoYXQgbm90aW9uYWxs eSBiZWxvbmcgdG8gb3RoZXIgUlRFIGtpbmRzLCB3aGljaCBpcwp0ZWNobmljYWxseSBub3Qg YSBwcm9ibGVtIGJ1dCBjcmVhdGVzIGEgYml0IG9mIGEgbWVzcyB3aGVuIHRyeWluZyB0bwp1 bmRlcnN0YW5kIGFsbCB0aGlzLgoKVGhpcyBwYXRjaCByZW1vdmVzIHRoZSBjdXN0b20gcmVh ZC93cml0ZSBmdW5jdGlvbnMgZm9yIFJhbmdlVGJsRW50cnkuClRob3NlIGZ1bmN0aW9ucyB3 YW50ZWQgdG8gaGF2ZSBhIGZldyBmaWVsZHMgYXQgdGhlIGZyb250IHRvIG1ha2UgdGhlCmR1 bXAgbW9yZSBsZWdpYmxlOyB0aGlzIGlzIGRvbmUgbm93IGJ5IG1vdmluZyB0aGUgZmllbGRz IHVwIGluIHRoZQphY3R1YWwgc3RydWN0LgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9z dGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0LzRiMjdmYzUwLThjZDYtNDZmNS1hYjIwLTg4 ZGJhYWRjYTY0NUBlaXNlbnRyYXV0Lm9yZwoKVE9ETzogY2xlYW4gdXAgdGhlIGRvY3VtZW50 YXRpb24gUmFuZ2VUYmxFbnRyeSBub2RlClRPRE86IGNoZWNrIGhvdyBtdWNoIHRoaXMgYmxv YXRzIHN0b3JlZCBydWxlcwpUT0RPOiBjYXR2ZXJzaW9uCi0tLQogc3JjL2JhY2tlbmQvbm9k ZXMvb3V0ZnVuY3MuYyAgIHwgODAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIHNy Yy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jICB8IDkyIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCB8IDEyICsr Ky0tCiAzIGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMTc2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL291dGZ1bmNzLmMgYi9zcmMvYmFj a2VuZC9ub2Rlcy9vdXRmdW5jcy5jCmluZGV4IGRlZTJiOWU4N2IyLi4yNmNmZDYwYWVkOSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvb3V0ZnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9ub2Rlcy9vdXRmdW5jcy5jCkBAIC00ODksODYgKzQ4OSw2IEBAIF9vdXRFeHRlbnNp YmxlTm9kZShTdHJpbmdJbmZvIHN0ciwgY29uc3QgRXh0ZW5zaWJsZU5vZGUgKm5vZGUpCiAJ bWV0aG9kcy0+bm9kZU91dChzdHIsIG5vZGUpOwogfQogCi1zdGF0aWMgdm9pZAotX291dFJh bmdlVGJsRW50cnkoU3RyaW5nSW5mbyBzdHIsIGNvbnN0IFJhbmdlVGJsRW50cnkgKm5vZGUp Ci17Ci0JV1JJVEVfTk9ERV9UWVBFKCJSQU5HRVRCTEVOVFJZIik7Ci0KLQkvKiBwdXQgYWxp YXMgKyBlcmVmIGZpcnN0IHRvIG1ha2UgZHVtcCBtb3JlIGxlZ2libGUgKi8KLQlXUklURV9O T0RFX0ZJRUxEKGFsaWFzKTsKLQlXUklURV9OT0RFX0ZJRUxEKGVyZWYpOwotCVdSSVRFX0VO VU1fRklFTEQocnRla2luZCwgUlRFS2luZCk7Ci0KLQlzd2l0Y2ggKG5vZGUtPnJ0ZWtpbmQp Ci0JewotCQljYXNlIFJURV9SRUxBVElPTjoKLQkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7 Ci0JCQlXUklURV9DSEFSX0ZJRUxEKHJlbGtpbmQpOwotCQkJV1JJVEVfSU5UX0ZJRUxEKHJl bGxvY2ttb2RlKTsKLQkJCVdSSVRFX05PREVfRklFTEQodGFibGVzYW1wbGUpOwotCQkJV1JJ VEVfVUlOVF9GSUVMRChwZXJtaW5mb2luZGV4KTsKLQkJCWJyZWFrOwotCQljYXNlIFJURV9T VUJRVUVSWToKLQkJCVdSSVRFX05PREVfRklFTEQoc3VicXVlcnkpOwotCQkJV1JJVEVfQk9P TF9GSUVMRChzZWN1cml0eV9iYXJyaWVyKTsKLQkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxB VElPTiBmaWVsZHMsIHRvbzogKi8KLQkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7Ci0JCQlX UklURV9DSEFSX0ZJRUxEKHJlbGtpbmQpOwotCQkJV1JJVEVfSU5UX0ZJRUxEKHJlbGxvY2tt b2RlKTsKLQkJCVdSSVRFX1VJTlRfRklFTEQocGVybWluZm9pbmRleCk7Ci0JCQlicmVhazsK LQkJY2FzZSBSVEVfSk9JTjoKLQkJCVdSSVRFX0VOVU1fRklFTEQoam9pbnR5cGUsIEpvaW5U eXBlKTsKLQkJCVdSSVRFX0lOVF9GSUVMRChqb2lubWVyZ2VkY29scyk7Ci0JCQlXUklURV9O T0RFX0ZJRUxEKGpvaW5hbGlhc3ZhcnMpOwotCQkJV1JJVEVfTk9ERV9GSUVMRChqb2lubGVm dGNvbHMpOwotCQkJV1JJVEVfTk9ERV9GSUVMRChqb2lucmlnaHRjb2xzKTsKLQkJCVdSSVRF X05PREVfRklFTEQoam9pbl91c2luZ19hbGlhcyk7Ci0JCQlicmVhazsKLQkJY2FzZSBSVEVf RlVOQ1RJT046Ci0JCQlXUklURV9OT0RFX0ZJRUxEKGZ1bmN0aW9ucyk7Ci0JCQlXUklURV9C T09MX0ZJRUxEKGZ1bmNvcmRpbmFsaXR5KTsKLQkJCWJyZWFrOwotCQljYXNlIFJURV9UQUJM RUZVTkM6Ci0JCQlXUklURV9OT0RFX0ZJRUxEKHRhYmxlZnVuYyk7Ci0JCQlicmVhazsKLQkJ Y2FzZSBSVEVfVkFMVUVTOgotCQkJV1JJVEVfTk9ERV9GSUVMRCh2YWx1ZXNfbGlzdHMpOwot CQkJV1JJVEVfTk9ERV9GSUVMRChjb2x0eXBlcyk7Ci0JCQlXUklURV9OT0RFX0ZJRUxEKGNv bHR5cG1vZHMpOwotCQkJV1JJVEVfTk9ERV9GSUVMRChjb2xjb2xsYXRpb25zKTsKLQkJCWJy ZWFrOwotCQljYXNlIFJURV9DVEU6Ci0JCQlXUklURV9TVFJJTkdfRklFTEQoY3RlbmFtZSk7 Ci0JCQlXUklURV9VSU5UX0ZJRUxEKGN0ZWxldmVsc3VwKTsKLQkJCVdSSVRFX0JPT0xfRklF TEQoc2VsZl9yZWZlcmVuY2UpOwotCQkJV1JJVEVfTk9ERV9GSUVMRChjb2x0eXBlcyk7Ci0J CQlXUklURV9OT0RFX0ZJRUxEKGNvbHR5cG1vZHMpOwotCQkJV1JJVEVfTk9ERV9GSUVMRChj b2xjb2xsYXRpb25zKTsKLQkJCWJyZWFrOwotCQljYXNlIFJURV9OQU1FRFRVUExFU1RPUkU6 Ci0JCQlXUklURV9TVFJJTkdfRklFTEQoZW5ybmFtZSk7Ci0JCQlXUklURV9GTE9BVF9GSUVM RChlbnJ0dXBsZXMpOwotCQkJV1JJVEVfTk9ERV9GSUVMRChjb2x0eXBlcyk7Ci0JCQlXUklU RV9OT0RFX0ZJRUxEKGNvbHR5cG1vZHMpOwotCQkJV1JJVEVfTk9ERV9GSUVMRChjb2xjb2xs YXRpb25zKTsKLQkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxBVElPTiBmaWVsZHMsIHRvbzog Ki8KLQkJCVdSSVRFX09JRF9GSUVMRChyZWxpZCk7Ci0JCQlicmVhazsKLQkJY2FzZSBSVEVf UkVTVUxUOgotCQkJLyogbm8gZXh0cmEgZmllbGRzICovCi0JCQlicmVhazsKLQkJZGVmYXVs dDoKLQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgUlRFIGtpbmQ6ICVkIiwgKGludCkg bm9kZS0+cnRla2luZCk7Ci0JCQlicmVhazsKLQl9Ci0KLQlXUklURV9CT09MX0ZJRUxEKGxh dGVyYWwpOwotCVdSSVRFX0JPT0xfRklFTEQoaW5oKTsKLQlXUklURV9CT09MX0ZJRUxEKGlu RnJvbUNsKTsKLQlXUklURV9OT0RFX0ZJRUxEKHNlY3VyaXR5UXVhbHMpOwotfQotCiBzdGF0 aWMgdm9pZAogX291dEFfRXhwcihTdHJpbmdJbmZvIHN0ciwgY29uc3QgQV9FeHByICpub2Rl KQogewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvcmVhZGZ1bmNzLmMgYi9zcmMv YmFja2VuZC9ub2Rlcy9yZWFkZnVuY3MuYwppbmRleCBiMWUyZjJiNDQwYS4uNTRkM2VlY2Mx YmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL25vZGVzL3JlYWRmdW5jcy5jCkBAIC0zNDMsOTggKzM0Myw2IEBAIF9yZWFk QV9Db25zdCh2b2lkKQogCVJFQURfRE9ORSgpOwogfQogCi1zdGF0aWMgUmFuZ2VUYmxFbnRy eSAqCi1fcmVhZFJhbmdlVGJsRW50cnkodm9pZCkKLXsKLQlSRUFEX0xPQ0FMUyhSYW5nZVRi bEVudHJ5KTsKLQotCS8qIHB1dCBhbGlhcyArIGVyZWYgZmlyc3QgdG8gbWFrZSBkdW1wIG1v cmUgbGVnaWJsZSAqLwotCVJFQURfTk9ERV9GSUVMRChhbGlhcyk7Ci0JUkVBRF9OT0RFX0ZJ RUxEKGVyZWYpOwotCVJFQURfRU5VTV9GSUVMRChydGVraW5kLCBSVEVLaW5kKTsKLQotCXN3 aXRjaCAobG9jYWxfbm9kZS0+cnRla2luZCkKLQl7Ci0JCWNhc2UgUlRFX1JFTEFUSU9OOgot CQkJUkVBRF9PSURfRklFTEQocmVsaWQpOwotCQkJUkVBRF9DSEFSX0ZJRUxEKHJlbGtpbmQp OwotCQkJUkVBRF9JTlRfRklFTEQocmVsbG9ja21vZGUpOwotCQkJUkVBRF9OT0RFX0ZJRUxE KHRhYmxlc2FtcGxlKTsKLQkJCVJFQURfVUlOVF9GSUVMRChwZXJtaW5mb2luZGV4KTsKLQkJ CWJyZWFrOwotCQljYXNlIFJURV9TVUJRVUVSWToKLQkJCVJFQURfTk9ERV9GSUVMRChzdWJx dWVyeSk7Ci0JCQlSRUFEX0JPT0xfRklFTEQoc2VjdXJpdHlfYmFycmllcik7Ci0JCQkvKiB3 ZSByZS11c2UgdGhlc2UgUkVMQVRJT04gZmllbGRzLCB0b286ICovCi0JCQlSRUFEX09JRF9G SUVMRChyZWxpZCk7Ci0JCQlSRUFEX0NIQVJfRklFTEQocmVsa2luZCk7Ci0JCQlSRUFEX0lO VF9GSUVMRChyZWxsb2NrbW9kZSk7Ci0JCQlSRUFEX1VJTlRfRklFTEQocGVybWluZm9pbmRl eCk7Ci0JCQlicmVhazsKLQkJY2FzZSBSVEVfSk9JTjoKLQkJCVJFQURfRU5VTV9GSUVMRChq b2ludHlwZSwgSm9pblR5cGUpOwotCQkJUkVBRF9JTlRfRklFTEQoam9pbm1lcmdlZGNvbHMp OwotCQkJUkVBRF9OT0RFX0ZJRUxEKGpvaW5hbGlhc3ZhcnMpOwotCQkJUkVBRF9OT0RFX0ZJ RUxEKGpvaW5sZWZ0Y29scyk7Ci0JCQlSRUFEX05PREVfRklFTEQoam9pbnJpZ2h0Y29scyk7 Ci0JCQlSRUFEX05PREVfRklFTEQoam9pbl91c2luZ19hbGlhcyk7Ci0JCQlicmVhazsKLQkJ Y2FzZSBSVEVfRlVOQ1RJT046Ci0JCQlSRUFEX05PREVfRklFTEQoZnVuY3Rpb25zKTsKLQkJ CVJFQURfQk9PTF9GSUVMRChmdW5jb3JkaW5hbGl0eSk7Ci0JCQlicmVhazsKLQkJY2FzZSBS VEVfVEFCTEVGVU5DOgotCQkJUkVBRF9OT0RFX0ZJRUxEKHRhYmxlZnVuYyk7Ci0JCQkvKiBU aGUgUlRFIG11c3QgaGF2ZSBhIGNvcHkgb2YgdGhlIGNvbHVtbiB0eXBlIGluZm8sIGlmIGFu eSAqLwotCQkJaWYgKGxvY2FsX25vZGUtPnRhYmxlZnVuYykKLQkJCXsKLQkJCQlUYWJsZUZ1 bmMgICp0ZiA9IGxvY2FsX25vZGUtPnRhYmxlZnVuYzsKLQotCQkJCWxvY2FsX25vZGUtPmNv bHR5cGVzID0gdGYtPmNvbHR5cGVzOwotCQkJCWxvY2FsX25vZGUtPmNvbHR5cG1vZHMgPSB0 Zi0+Y29sdHlwbW9kczsKLQkJCQlsb2NhbF9ub2RlLT5jb2xjb2xsYXRpb25zID0gdGYtPmNv bGNvbGxhdGlvbnM7Ci0JCQl9Ci0JCQlicmVhazsKLQkJY2FzZSBSVEVfVkFMVUVTOgotCQkJ UkVBRF9OT0RFX0ZJRUxEKHZhbHVlc19saXN0cyk7Ci0JCQlSRUFEX05PREVfRklFTEQoY29s dHlwZXMpOwotCQkJUkVBRF9OT0RFX0ZJRUxEKGNvbHR5cG1vZHMpOwotCQkJUkVBRF9OT0RF X0ZJRUxEKGNvbGNvbGxhdGlvbnMpOwotCQkJYnJlYWs7Ci0JCWNhc2UgUlRFX0NURToKLQkJ CVJFQURfU1RSSU5HX0ZJRUxEKGN0ZW5hbWUpOwotCQkJUkVBRF9VSU5UX0ZJRUxEKGN0ZWxl dmVsc3VwKTsKLQkJCVJFQURfQk9PTF9GSUVMRChzZWxmX3JlZmVyZW5jZSk7Ci0JCQlSRUFE X05PREVfRklFTEQoY29sdHlwZXMpOwotCQkJUkVBRF9OT0RFX0ZJRUxEKGNvbHR5cG1vZHMp OwotCQkJUkVBRF9OT0RFX0ZJRUxEKGNvbGNvbGxhdGlvbnMpOwotCQkJYnJlYWs7Ci0JCWNh c2UgUlRFX05BTUVEVFVQTEVTVE9SRToKLQkJCVJFQURfU1RSSU5HX0ZJRUxEKGVucm5hbWUp OwotCQkJUkVBRF9GTE9BVF9GSUVMRChlbnJ0dXBsZXMpOwotCQkJUkVBRF9OT0RFX0ZJRUxE KGNvbHR5cGVzKTsKLQkJCVJFQURfTk9ERV9GSUVMRChjb2x0eXBtb2RzKTsKLQkJCVJFQURf Tk9ERV9GSUVMRChjb2xjb2xsYXRpb25zKTsKLQkJCS8qIHdlIHJlLXVzZSB0aGVzZSBSRUxB VElPTiBmaWVsZHMsIHRvbzogKi8KLQkJCVJFQURfT0lEX0ZJRUxEKHJlbGlkKTsKLQkJCWJy ZWFrOwotCQljYXNlIFJURV9SRVNVTFQ6Ci0JCQkvKiBubyBleHRyYSBmaWVsZHMgKi8KLQkJ CWJyZWFrOwotCQlkZWZhdWx0OgotCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBSVEUg a2luZDogJWQiLAotCQkJCSAoaW50KSBsb2NhbF9ub2RlLT5ydGVraW5kKTsKLQkJCWJyZWFr OwotCX0KLQotCVJFQURfQk9PTF9GSUVMRChsYXRlcmFsKTsKLQlSRUFEX0JPT0xfRklFTEQo aW5oKTsKLQlSRUFEX0JPT0xfRklFTEQoaW5Gcm9tQ2wpOwotCVJFQURfTk9ERV9GSUVMRChz ZWN1cml0eVF1YWxzKTsKLQotCVJFQURfRE9ORSgpOwotfQotCiBzdGF0aWMgQV9FeHByICoK IF9yZWFkQV9FeHByKHZvaWQpCiB7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZDM3 N2YxNmE3MmIuLjgwNDJjNWQ5MWVkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0x MDE4LDggKzEwMTgsNiBAQCB0eXBlZGVmIGVudW0gUlRFS2luZAogCiB0eXBlZGVmIHN0cnVj dCBSYW5nZVRibEVudHJ5CiB7Ci0JcGdfbm9kZV9hdHRyKGN1c3RvbV9yZWFkX3dyaXRlKQot CiAJTm9kZVRhZwkJdHlwZTsKIAogCVJURUtpbmQJCXJ0ZWtpbmQ7CQkvKiBzZWUgYWJvdmUg Ki8KQEAgLTEwMzAsNiArMTAyOCwxNCBAQCB0eXBlZGVmIHN0cnVjdCBSYW5nZVRibEVudHJ5 CiAJICogY29kZSB0aGF0IGlzIGJlaW5nIGFjdGl2ZWx5IHdvcmtlZCBvbi4gIEZJWE1FIHNv bWVkYXkuCiAJICovCiAKKwkvKgorCSAqIEZpZWxkcyB2YWxpZCBpbiBhbGwgUlRFczoKKwkg KgorCSAqIHB1dCBhbGlhcyArIGVyZWYgZmlyc3QgdG8gbWFrZSBkdW1wIG1vcmUgbGVnaWJs ZQorCSAqLworCUFsaWFzCSAgICphbGlhcyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2ln bm9yZSk7CQkJLyogdXNlci13cml0dGVuIGFsaWFzIGNsYXVzZSwgaWYgYW55ICovCisJQWxp YXMJICAgKmVyZWYgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwkJCS8qIGV4 cGFuZGVkIHJlZmVyZW5jZSBuYW1lcyAqLworCiAJLyoKIAkgKiBGaWVsZHMgdmFsaWQgZm9y IGEgcGxhaW4gcmVsYXRpb24gUlRFIChlbHNlIHplcm8pOgogCSAqCkBAIC0xMTg4LDggKzEx OTQsNiBAQCB0eXBlZGVmIHN0cnVjdCBSYW5nZVRibEVudHJ5CiAJLyoKIAkgKiBGaWVsZHMg dmFsaWQgaW4gYWxsIFJURXM6CiAJICovCi0JQWxpYXMJICAgKmFsaWFzIHBnX25vZGVfYXR0 cihxdWVyeV9qdW1ibGVfaWdub3JlKTsJCQkvKiB1c2VyLXdyaXR0ZW4gYWxpYXMgY2xhdXNl LCBpZiBhbnkgKi8KLQlBbGlhcwkgICAqZXJlZiBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxl X2lnbm9yZSk7CQkJLyogZXhwYW5kZWQgcmVmZXJlbmNlIG5hbWVzICovCiAJYm9vbAkJbGF0 ZXJhbCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CQkvKiBzdWJxdWVyeSwg ZnVuY3Rpb24sIG9yIHZhbHVlcyBpcyBMQVRFUkFMPyAqLwogCWJvb2wJCWluaDsJCQkvKiBp bmhlcml0YW5jZSByZXF1ZXN0ZWQ/ICovCiAJYm9vbAkJaW5Gcm9tQ2wgcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwkJLyogcHJlc2VudCBpbiBGUk9NIGNsYXVzZT8gKi8K LS0gCjIuNDMuMAoK --------------RQiAIE01WA0m2ZNBdyJPEsK3--