Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ikY2N-00076d-Lp for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Dec 2019 18:39:07 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1ikY2L-0001J6-I1 for pgsql-hackers@arkaria.postgresql.org; Thu, 26 Dec 2019 18:39:05 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1ikY2K-0001Iz-SH for pgsql-hackers@lists.postgresql.org; Thu, 26 Dec 2019 18:39:05 +0000 Received: from out4-smtp.messagingengine.com ([66.111.4.28]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ikY2H-0002OO-4F for pgsql-hackers@postgresql.org; Thu, 26 Dec 2019 18:39:03 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 3789621857; Thu, 26 Dec 2019 13:39:00 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Thu, 26 Dec 2019 13:39:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=Aa5pCc 3ZLK/zJcgN2+7im92HcAfj9tzE+zslfdDW1wg=; b=vw4jgeRWl4Had+Dm6riDq5 23UvS55yTAFGhHphrDse5NnVKgyReXum5pZ/ZB3ERetwvV0swDHdOrwdfv5qScr7 5hhupAqmRaGf+m//lxpUcagpbJ1Aj0PYgyCig9Pdl3xOUeiej+YEH/YalghYPowO Wy0SR8zvE8QbuXflXkZ7+vJZ7gpaEHL79jP8zmeSWikE4Q9snG7WpqIXWrX9V7+v oq1rN50uQsWdgtFN6WBmGGMGOvHAjrC+qwplQTONN6cgnT11ND2jHPBfV6o9qzrz yLVD2uVlC2842qb8ovFFTE4AFcnH3U0d4u0Yh10MZY2NntX05YPh+QnNGCrdyxBg == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrvddviedguddufecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefuvfhfhfhokffffgggjggtsehmtderredtfeejnecuhfhrohhmpefrvght vghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnug hquhgrughrrghnthdrtghomheqnecuffhomhgrihhnpedvnhguqhhurggurhgrnhhtrdgt ohhmnecukfhppeelfedrvdegfedrudekjedrudeggeenucfrrghrrghmpehmrghilhhfrh homhepphgvthgvrhdrvghishgvnhhtrhgruhhtsedvnhguqhhurggurhgrnhhtrdgtohhm necuvehluhhsthgvrhfuihiivgeptd X-ME-Proxy: Received: from april.pezone.net (p5df3bb90.dip0.t-ipconnect.de [93.243.187.144]) by mail.messagingengine.com (Postfix) with ESMTPA id 7BFDF30607B4; Thu, 26 Dec 2019 13:38:56 -0500 (EST) Subject: Re: Add support for automatically updating Unicode derived files To: John Naylor References: Cc: pgsql-hackers From: Peter Eisentraut Organization: 2ndQuadrant Message-ID: Date: Thu, 26 Dec 2019 19:38:54 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/mixed; boundary="------------1B89588FF9F61C43320C900A" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------1B89588FF9F61C43320C900A Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit On 2019-12-19 23:48, John Naylor wrote: > I gave "make update-unicode" a try. It's unclear to me what the state > of the build tree should be when a maintainer runs this, so I'll just > report what happens when running naively (on MacOS). Yeah, that wasn't fully thought through, it appears. > After only running configure, "make update-unicode" gives this error > at normalization-check: > > ld: library not found for -lpgcommon > clang: error: linker command failed with exit code 1 (use -v to see invocation) Fixed by adding more make dependencies. > After commenting that out, the next command "$(MAKE) -C > contrib/unaccent $@" failed, seemingly because $(PYTHON) is empty > unless --with-python was specified at configure time. I'm not sure whether that's worth addressing. >> Open questions that are currently not handled consistently: >> >> - Should the downloaded files be listed in .gitignore? > > These files are transient byproducts of a build, and we don't want > them committed, so they seem like a normal candidate for .gitignore. OK done >> - Should the downloaded files be cleaned by make clean (or distclean or >> maintainer-clean or none)? > > It seems one would want to make clean without removing these files, > and maintainer clean is for removing things that are preserved in > distribution tarballs. So I would go with distclean. also done >> - Should the generated files be excluded from pgindent? Currently, the >> generated files will not pass pgindent unchanged, so that could cause >> annoying whitespace battles when these files are updated and re-indented >> around release time. > > I see what you mean in the norm table header. I think generated files > should not be pgindent'd, since creating them is already a consistent, > mechanical process, and their presentation is not as important as > other code. I've left it alone for now because the little indentation problem currently present might actually go away with my Unicode normalization support patch. > Other comments: > > +print "/* generated by > src/common/unicode/generate-unicode_combining_table.pl, do not edit > */\n\n"; > > I would print out the full boilerplate like for other generated headers. Hmm, you are probably comparing with src/common/unicode/generate-unicode_norm_table.pl, but other file generating scripts around the tree print out a small header in the style that I have. I'd rather adjust the output of generate-unicode_norm_table.pl to match those. (It's also not quite correct to make copyright claims about automatically generated output.) > Lastly, src/common/unicode/README is outdated (and possibly no longer > useful at all?). updated new patch attached -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------1B89588FF9F61C43320C900A Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0001-Add-support-for-automatically-updating-Unicode-de.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v2-0001-Add-support-for-automatically-updating-Unicode-de.pa"; filename*1="tch" RnJvbSBjZDU1OTkwZjE4NDZiMGQzY2ZhZjBmZTJmZDkyZDVhM2ZkNzkyZGQ2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVGh1LCAyNiBEZWMgMjAxOSAxMjozMzozNiArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjJdIEFkZCBzdXBwb3J0IGZvciBhdXRvbWF0aWNhbGx5IHVwZGF0aW5nIFVu aWNvZGUgZGVyaXZlZAogZmlsZXMKCldlIGN1cnJlbnRseSBoYXZlIHNldmVyYWwgc2V0cyBv ZiBmaWxlcyBnZW5lcmF0ZWQgZnJvbSBkYXRhIHByb3ZpZGVkCmJ5IFVuaWNvZGUuICBUaGVz ZSBhbGwgaGF2ZSBhZCBob2MgcnVsZXMgYW5kIGluc3RydWN0aW9ucyBmb3IgdXBkYXRpbmcK d2hlbiBuZXcgVW5pY29kZSB2ZXJzaW9ucyBhcHBlYXIsIGFuZCBpdCdzIG5vdCBkb25lIGNv bnNpc3RlbnRseS4KClRoaXMgcGF0Y2ggY2VudHJhbGl6ZXMgYW5kIGF1dG9tYXRlcyB0aGUg cHJvY2VzcyBhbmQgbWFrZXMgaXQgcGFydCBvZgp0aGUgcmVsZWFzZSBjaGVja2xpc3QuICBU aGUgVW5pY29kZSBhbmQgQ0xEUiB2ZXJzaW9ucyBhcmUgc3BlY2lmaWVkIGluCk1ha2VmaWxl Lmdsb2JhbC5pbi4gIFRoZXJlIGlzIGEgbmV3IG1ha2UgdGFyZ2V0ICJ1cGRhdGUtdW5pY29k ZSIgdGhhdApkb3dubG9hZHMgYWxsIHRoZSByZWxldmFudCBmaWxlcyBhbmQgcnVucyB0aGUg Z2VuZXJhdGlvbiBzY3JpcHQuCgpUaGVyZSBpcyBhbHNvIGEgbmV3IHNjcmlwdCBmb3IgZ2Vu ZXJhdGluZyB0aGUgdGFibGUgb2YgY29tYmluaW5nCmNoYXJhY3RlcnMgZm9yIHVjc193Y3dp ZHRoKCkuICBUaGF0IHRhYmxlIGlzIG5vdyBpbiBhIHNlcGFyYXRlIGluY2x1ZGUKZmlsZSBy YXRoZXIgdGhhbiBoYXJkY29kZWQgaW50byB0aGUgbWlkZGxlIG9mIG90aGVyIGNvZGUuICBU aGlzIGlzCmJhc2VkIG9uIHRoZSBzY3JpcHQgdGhhdCB3YXMgdXNlZCBmb3IgZ2VuZXJhdGlu ZwpkODU5NGQxMjNjMTU1YWVlY2Q0N2ZjMjQ1MGY2MmY1MTAwYjJmYmYwLCBidXQgdGhlIHNj cmlwdCBpdHNlbGYgd2Fzbid0CmNvbW1pdHRlZCBhdCB0aGF0IHRpbWUuCgpEaXNjdXNzaW9u OiBodHRwczovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9tZXNzYWdlLWlkL2ZsYXQvYzhkMDVmNDIt NDQzZS02YzIzLTgxOWItMDViMzE3NTlhMzdjQDJuZHF1YWRyYW50LmNvbQotLS0KIEdOVW1h a2VmaWxlLmluICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBjb250 cmliL3VuYWNjZW50Ly5naXRpZ25vcmUgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogY29u dHJpYi91bmFjY2VudC9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAgIHwgIDE2ICsrCiBj b250cmliL3VuYWNjZW50L2dlbmVyYXRlX3VuYWNjZW50X3J1bGVzLnB5ICAgfCAgMTAgKy0K IHNyYy9NYWtlZmlsZS5nbG9iYWwuaW4gICAgICAgICAgICAgICAgICAgICAgICB8ICAxOCAr LQogc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9NYWtlZmlsZSAgICAgICAgIHwgICAz IC0KIHNyYy9iYWNrZW5kL3V0aWxzL21iL3djaGFyLmMgICAgICAgICAgICAgICAgICB8ICA2 OCArLS0tLS0KIHNyYy9jb21tb24vdW5pY29kZS8uZ2l0aWdub3JlICAgICAgICAgICAgICAg ICB8ICAgMiArLQogc3JjL2NvbW1vbi91bmljb2RlL01ha2VmaWxlICAgICAgICAgICAgICAg ICAgIHwgIDE0ICstCiBzcmMvY29tbW9uL3VuaWNvZGUvUkVBRE1FICAgICAgICAgICAgICAg ICAgICAgfCAgMTcgKy0KIC4uLi9nZW5lcmF0ZS11bmljb2RlX2NvbWJpbmluZ190YWJsZS5w bCAgICAgICB8ICA1MiArKysrKwogc3JjL2luY2x1ZGUvY29tbW9uL3VuaWNvZGVfY29tYmlu aW5nX3RhYmxlLmggIHwgMTk0ICsrKysrKysrKysrKysrKysrKwogc3JjL3Rvb2xzL1JFTEVB U0VfQ0hBTkdFUyAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIDEzIGZpbGVzIGNoYW5n ZWQsIDMxMCBpbnNlcnRpb25zKCspLCA5NCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvY29tbW9uL3VuaWNvZGUvZ2VuZXJhdGUtdW5pY29kZV9jb21iaW5pbmdfdGFi bGUucGwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tb24vdW5pY29kZV9j b21iaW5pbmdfdGFibGUuaAoKZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmluIGIvR05VbWFr ZWZpbGUuaW4KaW5kZXggOWRjMzczYzc5Yy4uZWU2MzZlM2I1MCAxMDA2NDQKLS0tIGEvR05V bWFrZWZpbGUuaW4KKysrIGIvR05VbWFrZWZpbGUuaW4KQEAgLTc1LDYgKzc1LDEwIEBAICQo Y2FsbCByZWN1cnNlLGluc3RhbGxjaGVjay13b3JsZCxzcmMvdGVzdCBzcmMvcGwgc3JjL2lu dGVyZmFjZXMvZWNwZyBjb250cmliIHNyCiBHTlVtYWtlZmlsZTogR05VbWFrZWZpbGUuaW4g JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKIAkuL2NvbmZpZy5zdGF0dXMgJEAKIAor dXBkYXRlLXVuaWNvZGU6IHwgc3VibWFrZS1nZW5lcmF0ZWQtaGVhZGVycyBzdWJtYWtlLWxp YnBncG9ydAorCSQoTUFLRSkgLUMgc3JjL2NvbW1vbi91bmljb2RlICRACisJJChNQUtFKSAt QyBjb250cmliL3VuYWNjZW50ICRACisKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKIApkaWZm IC0tZ2l0IGEvY29udHJpYi91bmFjY2VudC8uZ2l0aWdub3JlIGIvY29udHJpYi91bmFjY2Vu dC8uZ2l0aWdub3JlCmluZGV4IDVkY2IzZmY5NzIuLmJjY2RhNzMxN2QgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvdW5hY2NlbnQvLmdpdGlnbm9yZQorKysgYi9jb250cmliL3VuYWNjZW50Ly5n aXRpZ25vcmUKQEAgLTIsMyArMiw2IEBACiAvbG9nLwogL3Jlc3VsdHMvCiAvdG1wX2NoZWNr LworCisjIERvd25sb2FkZWQgZmlsZXMKKy9MYXRpbi1BU0NJSS54bWwKZGlmZiAtLWdpdCBh L2NvbnRyaWIvdW5hY2NlbnQvTWFrZWZpbGUgYi9jb250cmliL3VuYWNjZW50L01ha2VmaWxl CmluZGV4IDkyYjdmOWQ3OGUuLjBmNDBmODljMmIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdW5h Y2NlbnQvTWFrZWZpbGUKKysrIGIvY29udHJpYi91bmFjY2VudC9NYWtlZmlsZQpAQCAtMjYs MyArMjYsMTkgQEAgdG9wX2J1aWxkZGlyID0gLi4vLi4KIGluY2x1ZGUgJCh0b3BfYnVpbGRk aXIpL3NyYy9NYWtlZmlsZS5nbG9iYWwKIGluY2x1ZGUgJCh0b3Bfc3JjZGlyKS9jb250cmli L2NvbnRyaWItZ2xvYmFsLm1rCiBlbmRpZgorCit1cGRhdGUtdW5pY29kZTogdW5hY2NlbnQu cnVsZXMKKwordW5hY2NlbnQucnVsZXM6IGdlbmVyYXRlX3VuYWNjZW50X3J1bGVzLnB5IC4u Ly4uL3NyYy9jb21tb24vdW5pY29kZS9Vbmljb2RlRGF0YS50eHQgTGF0aW4tQVNDSUkueG1s CisJJChQWVRIT04pICQ8IC0tdW5pY29kZS1kYXRhLWZpbGUgJCh3b3JkIDIsJF4pIC0tbGF0 aW4tYXNjaWktZmlsZSAkKHdvcmQgMywkXikgPiRACisKKyMgb25seSBkb3dubG9hZCBpdCBv bmNlCisuLi8uLi9zcmMvY29tbW9uL3VuaWNvZGUvVW5pY29kZURhdGEudHh0OgorCSQoTUFL RSkgLUMgJChARCkgJChARikKKworIyBkZXBlbmRlbmN5IG9uIE1ha2VmaWxlLmdsb2JhbCBp cyBmb3IgQ0xEUl9WRVJTSU9OCitMYXRpbi1BU0NJSS54bWw6ICQodG9wX2J1aWxkZGlyKS9z cmMvTWFrZWZpbGUuZ2xvYmFsCisJJChET1dOTE9BRCkgaHR0cHM6Ly9yYXcuZ2l0aHVidXNl cmNvbnRlbnQuY29tL3VuaWNvZGUtb3JnL2NsZHIvcmVsZWFzZS0kKHN1YnN0IC4sLSwkKENM RFJfVkVSU0lPTikpL2NvbW1vbi90cmFuc2Zvcm1zL0xhdGluLUFTQ0lJLnhtbAorCitkaXN0 Y2xlYW46CisJcm0gLWYgTGF0aW4tQVNDSUkueG1sCmRpZmYgLS1naXQgYS9jb250cmliL3Vu YWNjZW50L2dlbmVyYXRlX3VuYWNjZW50X3J1bGVzLnB5IGIvY29udHJpYi91bmFjY2VudC9n ZW5lcmF0ZV91bmFjY2VudF9ydWxlcy5weQppbmRleCBhY2ZiNGYwYjY4Li5hOTUyZGU1MTBj IDEwMDY0NAotLS0gYS9jb250cmliL3VuYWNjZW50L2dlbmVyYXRlX3VuYWNjZW50X3J1bGVz LnB5CisrKyBiL2NvbnRyaWIvdW5hY2NlbnQvZ2VuZXJhdGVfdW5hY2NlbnRfcnVsZXMucHkK QEAgLTIwLDEzICsyMCwxMSBAQAogIyBvcHRpb24gaXMgZW5hYmxlZCwgdGhlIFhNTCBmaWxl IG9mIHRoaXMgdHJhbnNsaXRlcmF0b3IgWzJdIC0tIGdpdmVuIGFzIGEKICMgY29tbWFuZCBs aW5lIGFyZ3VtZW50IC0tIHdpbGwgYmUgcGFyc2VkIGFuZCB1c2VkLgogIwotIyBJZGVhbGx5 IHlvdSBzaG91bGQgdXNlIHRoZSBsYXRlc3QgcmVsZWFzZSBmb3IgZWFjaCBkYXRhIHNldC4g IEZvcgotIyBMYXRpbi1BU0NJSS54bWwsIHRoZSBsYXRlc3QgZGF0YSBzZXRzIHJlbGVhc2Vk IGNhbiBiZSBicm93c2VkIGRpcmVjdGx5Ci0jIHZpYSBbM10uICBOb3RlIHRoYXQgdGhpcyBz Y3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIGF0IGxlYXN0IHJlbGVhc2UgMjkuCisjIElkZWFs bHkgeW91IHNob3VsZCB1c2UgdGhlIGxhdGVzdCByZWxlYXNlIGZvciBlYWNoIGRhdGEgc2V0 LiAgVGhpcworIyBzY3JpcHQgaXMgY29tcGF0aWJsZSB3aXRoIGF0IGxlYXN0IENMRFIgcmVs ZWFzZSAyOS4KICMKLSMgWzFdIGh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL1B1YmxpYy84LjAu MC91Y2QvVW5pY29kZURhdGEudHh0Ci0jIFsyXSBodHRwczovL3Jhdy5naXRodWJ1c2VyY29u dGVudC5jb20vdW5pY29kZS1vcmcvY2xkci9yZWxlYXNlLTM0L2NvbW1vbi90cmFuc2Zvcm1z L0xhdGluLUFTQ0lJLnhtbAotIyBbM10gaHR0cHM6Ly9naXRodWIuY29tL3VuaWNvZGUtb3Jn L2NsZHIvdGFncworIyBbMV0gaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvUHVibGljLyR7VU5J Q09ERV9WRVJTSU9OfS91Y2QvVW5pY29kZURhdGEudHh0CisjIFsyXSBodHRwczovL3Jhdy5n aXRodWJ1c2VyY29udGVudC5jb20vdW5pY29kZS1vcmcvY2xkci8ke1RBR30vY29tbW9uL3Ry YW5zZm9ybXMvTGF0aW4tQVNDSUkueG1sCiAKICMgQkVHSU46IFB5dGhvbiAyLzMgY29tcGF0 aWJpbGl0eSAtIHJlbW92ZSB3aGVuIFB5dGhvbiAyIGNvbXBhdGliaWxpdHkgZHJvcHBlZAog IyBUaGUgYXBwcm9hY2ggaXMgdG8gYmUgUHl0aG9uMyBjb21wYXRpYmxlIHdpdGggUHl0aG9u MiAiYmFja3BvcnRzIi4KZGlmZiAtLWdpdCBhL3NyYy9NYWtlZmlsZS5nbG9iYWwuaW4gYi9z cmMvTWFrZWZpbGUuZ2xvYmFsLmluCmluZGV4IDA1YjY2MzgwZTAuLjFlMmY0ZWU0MDUgMTAw NjQ0Ci0tLSBhL3NyYy9NYWtlZmlsZS5nbG9iYWwuaW4KKysrIGIvc3JjL01ha2VmaWxlLmds b2JhbC5pbgpAQCAtMjMsNyArMjMsNyBAQCBzdGFuZGFyZF90YXJnZXRzID0gYWxsIGluc3Rh bGwgaW5zdGFsbGRpcnMgdW5pbnN0YWxsIGRpc3RwcmVwIGNsZWFuIGRpc3RjbGVhbiBtYQog IyB0aGVzZSB0YXJnZXRzIHNob3VsZCByZWN1cnNlIGV2ZW4gaW50byBzdWJkaXJlY3Rvcmll cyBub3QgYmVpbmcgYnVpbHQ6CiBzdGFuZGFyZF9hbHdheXNfdGFyZ2V0cyA9IGRpc3RwcmVw IGNsZWFuIGRpc3RjbGVhbiBtYWludGFpbmVyLWNsZWFuCiAKLS5QSE9OWTogJChzdGFuZGFy ZF90YXJnZXRzKSBpbnN0YWxsLXN0cmlwIGh0bWwgbWFuIGluc3RhbGxjaGVjay1wYXJhbGxl bAorLlBIT05ZOiAkKHN0YW5kYXJkX3RhcmdldHMpIGluc3RhbGwtc3RyaXAgaHRtbCBtYW4g aW5zdGFsbGNoZWNrLXBhcmFsbGVsIHVwZGF0ZS11bmljb2RlCiAKICMgbWFrZSBgYWxsJyB0 aGUgZGVmYXVsdCB0YXJnZXQKIGFsbDoKQEAgLTM1MSw2ICszNTEsMjIgQEAgWEdFVFRFWFQg PSBAWEdFVFRFWFRACiBHWklQCT0gZ3ppcAogQlpJUDIJPSBiemlwMgogCitET1dOTE9BRCA9 IHdnZXQgLU8gJEAgLS1uby11c2Utc2VydmVyLXRpbWVzdGFtcHMKKyNET1dOTE9BRCA9IGN1 cmwgLW8gJEAKKworCisjIFVuaWNvZGUgZGF0YSBpbmZvcm1hdGlvbgorCisjIEJlZm9yZSBl YWNoIG1ham9yIHJlbGVhc2UsIHVwZGF0ZSB0aGVzZSBhbmQgcnVuIG1ha2UgdXBkYXRlLXVu aWNvZGUuCisKKyMgUGljayBhIHJlbGVhc2UgZnJvbSBoZXJlOiA8aHR0cHM6Ly93d3cudW5p Y29kZS5vcmcvUHVibGljLz4uICBOb3RlCisjIHRoYXQgdGhlIG1vc3QgcmVjZW50IHJlbGVh c2UgbGlzdGVkIHRoZXJlIGlzIG9mdGVuIGEgcHJlLXJlbGVhc2U7CisjIGRvbid0IHBpY2sg dGhhdCBvbmUsIGV4Y2VwdCBmb3IgdGVzdGluZy4KK1VOSUNPREVfVkVSU0lPTiA9IDEyLjEu MAorCisjIFBpY2sgYSByZWxlYXNlIGZyb20gaGVyZTogPGh0dHA6Ly9jbGRyLnVuaWNvZGUu b3JnL2luZGV4L2Rvd25sb2Fkcz4KK0NMRFJfVkVSU0lPTiA9IDM0CisKIAogIyBUcmVlLXdp ZGUgYnVpbGQgc3VwcG9ydAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9V bmljb2RlL01ha2VmaWxlIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9NYWtlZmls ZQppbmRleCA2MzcxMGY5ZWE3Li4yMGM2ODQ5YTY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9tYi9Vbmljb2RlL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21i L1VuaWNvZGUvTWFrZWZpbGUKQEAgLTExNSw5ICsxMTUsNiBAQCBtYWludGFpbmVyLWNsZWFu OiBkaXN0Y2xlYW4KIAlybSAtZiAkKE1BUFMpCiAKIAotRE9XTkxPQUQgPSB3Z2V0IC1PICRA IC0tbm8tdXNlLXNlcnZlci10aW1lc3RhbXBzCi0jRE9XTkxPQUQgPSBjdXJsIC1vICRACi0K IEJJRzUuVFhUIENOUzExNjQzLlRYVDoKIAkkKERPV05MT0FEKSBodHRwczovL3d3dy51bmlj b2RlLm9yZy9QdWJsaWMvTUFQUElOR1MvT0JTT0xFVEUvRUFTVEFTSUEvT1RIRVIvJChARikK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvd2NoYXIuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL21iL3djaGFyLmMKaW5kZXggYjJkNTk4Y2JlZS4uMDJlMjU4OGZmZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvd2NoYXIuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9tYi93Y2hhci5jCkBAIC02NDMsNzMgKzY0Myw3IEBAIG1iYmlzZWFyY2gocGdf d2NoYXIgdWNzLCBjb25zdCBzdHJ1Y3QgbWJpbnRlcnZhbCAqdGFibGUsIGludCBtYXgpCiBz dGF0aWMgaW50CiB1Y3Nfd2N3aWR0aChwZ193Y2hhciB1Y3MpCiB7Ci0JLyogc29ydGVkIGxp c3Qgb2Ygbm9uLW92ZXJsYXBwaW5nIGludGVydmFscyBvZiBub24tc3BhY2luZyBjaGFyYWN0 ZXJzICovCi0Jc3RhdGljIGNvbnN0IHN0cnVjdCBtYmludGVydmFsIGNvbWJpbmluZ1tdID0g ewotCQl7MHgwMzAwLCAweDAzNkZ9LCB7MHgwNDgzLCAweDA0ODl9LCB7MHgwNTkxLCAweDA1 QkR9LAotCQl7MHgwNUJGLCAweDA1QkZ9LCB7MHgwNUMxLCAweDA1QzJ9LCB7MHgwNUM0LCAw eDA1QzV9LAotCQl7MHgwNUM3LCAweDA1Qzd9LCB7MHgwNjEwLCAweDA2MUF9LCB7MHgwNjRC LCAweDA2NUZ9LAotCQl7MHgwNjcwLCAweDA2NzB9LCB7MHgwNkQ2LCAweDA2REN9LCB7MHgw NkRGLCAweDA2RTR9LAotCQl7MHgwNkU3LCAweDA2RTh9LCB7MHgwNkVBLCAweDA2RUR9LCB7 MHgwNzExLCAweDA3MTF9LAotCQl7MHgwNzMwLCAweDA3NEF9LCB7MHgwN0E2LCAweDA3QjB9 LCB7MHgwN0VCLCAweDA3RjN9LAotCQl7MHgwN0ZELCAweDA3RkR9LCB7MHgwODE2LCAweDA4 MTl9LCB7MHgwODFCLCAweDA4MjN9LAotCQl7MHgwODI1LCAweDA4Mjd9LCB7MHgwODI5LCAw eDA4MkR9LCB7MHgwODU5LCAweDA4NUJ9LAotCQl7MHgwOEQzLCAweDA4RTF9LCB7MHgwOEUz LCAweDA5MDJ9LCB7MHgwOTNBLCAweDA5M0F9LAotCQl7MHgwOTNDLCAweDA5M0N9LCB7MHgw OTQxLCAweDA5NDh9LCB7MHgwOTRELCAweDA5NER9LAotCQl7MHgwOTUxLCAweDA5NTd9LCB7 MHgwOTYyLCAweDA5NjN9LCB7MHgwOTgxLCAweDA5ODF9LAotCQl7MHgwOUJDLCAweDA5QkN9 LCB7MHgwOUMxLCAweDA5QzR9LCB7MHgwOUNELCAweDA5Q0R9LAotCQl7MHgwOUUyLCAweDA5 RTN9LCB7MHgwOUZFLCAweDBBMDJ9LCB7MHgwQTNDLCAweDBBM0N9LAotCQl7MHgwQTQxLCAw eDBBNTF9LCB7MHgwQTcwLCAweDBBNzF9LCB7MHgwQTc1LCAweDBBNzV9LAotCQl7MHgwQTgx LCAweDBBODJ9LCB7MHgwQUJDLCAweDBBQkN9LCB7MHgwQUMxLCAweDBBQzh9LAotCQl7MHgw QUNELCAweDBBQ0R9LCB7MHgwQUUyLCAweDBBRTN9LCB7MHgwQUZBLCAweDBCMDF9LAotCQl7 MHgwQjNDLCAweDBCM0N9LCB7MHgwQjNGLCAweDBCM0Z9LCB7MHgwQjQxLCAweDBCNDR9LAot CQl7MHgwQjRELCAweDBCNTZ9LCB7MHgwQjYyLCAweDBCNjN9LCB7MHgwQjgyLCAweDBCODJ9 LAotCQl7MHgwQkMwLCAweDBCQzB9LCB7MHgwQkNELCAweDBCQ0R9LCB7MHgwQzAwLCAweDBD MDB9LAotCQl7MHgwQzA0LCAweDBDMDR9LCB7MHgwQzNFLCAweDBDNDB9LCB7MHgwQzQ2LCAw eDBDNTZ9LAotCQl7MHgwQzYyLCAweDBDNjN9LCB7MHgwQzgxLCAweDBDODF9LCB7MHgwQ0JD LCAweDBDQkN9LAotCQl7MHgwQ0JGLCAweDBDQkZ9LCB7MHgwQ0M2LCAweDBDQzZ9LCB7MHgw Q0NDLCAweDBDQ0R9LAotCQl7MHgwQ0UyLCAweDBDRTN9LCB7MHgwRDAwLCAweDBEMDF9LCB7 MHgwRDNCLCAweDBEM0N9LAotCQl7MHgwRDQxLCAweDBENDR9LCB7MHgwRDRELCAweDBENER9 LCB7MHgwRDYyLCAweDBENjN9LAotCQl7MHgwRENBLCAweDBEQ0F9LCB7MHgwREQyLCAweDBE RDZ9LCB7MHgwRTMxLCAweDBFMzF9LAotCQl7MHgwRTM0LCAweDBFM0F9LCB7MHgwRTQ3LCAw eDBFNEV9LCB7MHgwRUIxLCAweDBFQjF9LAotCQl7MHgwRUI0LCAweDBFQkN9LCB7MHgwRUM4 LCAweDBFQ0R9LCB7MHgwRjE4LCAweDBGMTl9LAotCQl7MHgwRjM1LCAweDBGMzV9LCB7MHgw RjM3LCAweDBGMzd9LCB7MHgwRjM5LCAweDBGMzl9LAotCQl7MHgwRjcxLCAweDBGN0V9LCB7 MHgwRjgwLCAweDBGODR9LCB7MHgwRjg2LCAweDBGODd9LAotCQl7MHgwRjhELCAweDBGQkN9 LCB7MHgwRkM2LCAweDBGQzZ9LCB7MHgxMDJELCAweDEwMzB9LAotCQl7MHgxMDMyLCAweDEw Mzd9LCB7MHgxMDM5LCAweDEwM0F9LCB7MHgxMDNELCAweDEwM0V9LAotCQl7MHgxMDU4LCAw eDEwNTl9LCB7MHgxMDVFLCAweDEwNjB9LCB7MHgxMDcxLCAweDEwNzR9LAotCQl7MHgxMDgy LCAweDEwODJ9LCB7MHgxMDg1LCAweDEwODZ9LCB7MHgxMDhELCAweDEwOER9LAotCQl7MHgx MDlELCAweDEwOUR9LCB7MHgxMzVELCAweDEzNUZ9LCB7MHgxNzEyLCAweDE3MTR9LAotCQl7 MHgxNzMyLCAweDE3MzR9LCB7MHgxNzUyLCAweDE3NTN9LCB7MHgxNzcyLCAweDE3NzN9LAot CQl7MHgxN0I0LCAweDE3QjV9LCB7MHgxN0I3LCAweDE3QkR9LCB7MHgxN0M2LCAweDE3QzZ9 LAotCQl7MHgxN0M5LCAweDE3RDN9LCB7MHgxN0RELCAweDE3RER9LCB7MHgxODBCLCAweDE4 MER9LAotCQl7MHgxODg1LCAweDE4ODZ9LCB7MHgxOEE5LCAweDE4QTl9LCB7MHgxOTIwLCAw eDE5MjJ9LAotCQl7MHgxOTI3LCAweDE5Mjh9LCB7MHgxOTMyLCAweDE5MzJ9LCB7MHgxOTM5 LCAweDE5M0J9LAotCQl7MHgxQTE3LCAweDFBMTh9LCB7MHgxQTFCLCAweDFBMUJ9LCB7MHgx QTU2LCAweDFBNTZ9LAotCQl7MHgxQTU4LCAweDFBNjB9LCB7MHgxQTYyLCAweDFBNjJ9LCB7 MHgxQTY1LCAweDFBNkN9LAotCQl7MHgxQTczLCAweDFBN0Z9LCB7MHgxQUIwLCAweDFCMDN9 LCB7MHgxQjM0LCAweDFCMzR9LAotCQl7MHgxQjM2LCAweDFCM0F9LCB7MHgxQjNDLCAweDFC M0N9LCB7MHgxQjQyLCAweDFCNDJ9LAotCQl7MHgxQjZCLCAweDFCNzN9LCB7MHgxQjgwLCAw eDFCODF9LCB7MHgxQkEyLCAweDFCQTV9LAotCQl7MHgxQkE4LCAweDFCQTl9LCB7MHgxQkFC LCAweDFCQUR9LCB7MHgxQkU2LCAweDFCRTZ9LAotCQl7MHgxQkU4LCAweDFCRTl9LCB7MHgx QkVELCAweDFCRUR9LCB7MHgxQkVGLCAweDFCRjF9LAotCQl7MHgxQzJDLCAweDFDMzN9LCB7 MHgxQzM2LCAweDFDMzd9LCB7MHgxQ0QwLCAweDFDRDJ9LAotCQl7MHgxQ0Q0LCAweDFDRTB9 LCB7MHgxQ0UyLCAweDFDRTh9LCB7MHgxQ0VELCAweDFDRUR9LAotCQl7MHgxQ0Y0LCAweDFD RjR9LCB7MHgxQ0Y4LCAweDFDRjl9LCB7MHgxREMwLCAweDFERkZ9LAotCQl7MHgyMEQwLCAw eDIwRjB9LCB7MHgyQ0VGLCAweDJDRjF9LCB7MHgyRDdGLCAweDJEN0Z9LAotCQl7MHgyREUw LCAweDJERkZ9LCB7MHgzMDJBLCAweDMwMkR9LCB7MHgzMDk5LCAweDMwOUF9LAotCQl7MHhB NjZGLCAweEE2NzJ9LCB7MHhBNjc0LCAweEE2N0R9LCB7MHhBNjlFLCAweEE2OUZ9LAotCQl7 MHhBNkYwLCAweEE2RjF9LCB7MHhBODAyLCAweEE4MDJ9LCB7MHhBODA2LCAweEE4MDZ9LAot CQl7MHhBODBCLCAweEE4MEJ9LCB7MHhBODI1LCAweEE4MjZ9LCB7MHhBOEM0LCAweEE4QzV9 LAotCQl7MHhBOEUwLCAweEE4RjF9LCB7MHhBOEZGLCAweEE4RkZ9LCB7MHhBOTI2LCAweEE5 MkR9LAotCQl7MHhBOTQ3LCAweEE5NTF9LCB7MHhBOTgwLCAweEE5ODJ9LCB7MHhBOUIzLCAw eEE5QjN9LAotCQl7MHhBOUI2LCAweEE5Qjl9LCB7MHhBOUJDLCAweEE5QkR9LCB7MHhBOUU1 LCAweEE5RTV9LAotCQl7MHhBQTI5LCAweEFBMkV9LCB7MHhBQTMxLCAweEFBMzJ9LCB7MHhB QTM1LCAweEFBMzZ9LAotCQl7MHhBQTQzLCAweEFBNDN9LCB7MHhBQTRDLCAweEFBNEN9LCB7 MHhBQTdDLCAweEFBN0N9LAotCQl7MHhBQUIwLCAweEFBQjB9LCB7MHhBQUIyLCAweEFBQjR9 LCB7MHhBQUI3LCAweEFBQjh9LAotCQl7MHhBQUJFLCAweEFBQkZ9LCB7MHhBQUMxLCAweEFB QzF9LCB7MHhBQUVDLCAweEFBRUR9LAotCQl7MHhBQUY2LCAweEFBRjZ9LCB7MHhBQkU1LCAw eEFCRTV9LCB7MHhBQkU4LCAweEFCRTh9LAotCQl7MHhBQkVELCAweEFCRUR9LCB7MHhGQjFF LCAweEZCMUV9LCB7MHhGRTAwLCAweEZFMEZ9LAotCQl7MHhGRTIwLCAweEZFMkZ9LAotCX07 CisjaW5jbHVkZSAiY29tbW9uL3VuaWNvZGVfY29tYmluaW5nX3RhYmxlLmgiCiAKIAkvKiB0 ZXN0IGZvciA4LWJpdCBjb250cm9sIGNoYXJhY3RlcnMgKi8KIAlpZiAodWNzID09IDApCmRp ZmYgLS1naXQgYS9zcmMvY29tbW9uL3VuaWNvZGUvLmdpdGlnbm9yZSBiL3NyYy9jb21tb24v dW5pY29kZS8uZ2l0aWdub3JlCmluZGV4IDVlNTgzZTJjY2MuLmI1YTRkODQyNzQgMTAwNjQ0 Ci0tLSBhL3NyYy9jb21tb24vdW5pY29kZS8uZ2l0aWdub3JlCisrKyBiL3NyYy9jb21tb24v dW5pY29kZS8uZ2l0aWdub3JlCkBAIC0xLDcgKzEsNyBAQAogL25vcm1fdGVzdAogL25vcm1f dGVzdF90YWJsZS5oCiAKLSMgRmlsZXMgZG93bmxvYWRlZCBmcm9tIHRoZSBVbmljb2RlIENo YXJhY3RlciBEYXRhYmFzZQorIyBEb3dubG9hZGVkIGZpbGVzCiAvQ29tcG9zaXRpb25FeGNs dXNpb25zLnR4dAogL05vcm1hbGl6YXRpb25UZXN0LnR4dAogL1VuaWNvZGVEYXRhLnR4dApk aWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi91bmljb2RlL01ha2VmaWxlIGIvc3JjL2NvbW1vbi91 bmljb2RlL01ha2VmaWxlCmluZGV4IDMzNDg1OWM5ODQuLmVjNzhhZWVjMmEgMTAwNjQ0Ci0t LSBhL3NyYy9jb21tb24vdW5pY29kZS9NYWtlZmlsZQorKysgYi9zcmMvY29tbW9uL3VuaWNv ZGUvTWFrZWZpbGUKQEAgLTE4LDE4ICsxOCwyNCBAQCBMSUJTICs9ICQoUFRIUkVBRF9MSUJT KQogIyBCeSBkZWZhdWx0LCBkbyBub3RoaW5nLgogYWxsOgogCi1ET1dOTE9BRCA9IHdnZXQg LU8gJEAgLS1uby11c2Utc2VydmVyLXRpbWVzdGFtcHMKK3VwZGF0ZS11bmljb2RlOiB1bmlj b2RlX25vcm1fdGFibGUuaCB1bmljb2RlX2NvbWJpbmluZ190YWJsZS5oCisJJChNQUtFKSBu b3JtYWxpemF0aW9uLWNoZWNrCisJbXYgdW5pY29kZV9ub3JtX3RhYmxlLmggdW5pY29kZV9j b21iaW5pbmdfdGFibGUuaCAuLi8uLi8uLi9zcmMvaW5jbHVkZS9jb21tb24vCiAKICMgVGhl c2UgZmlsZXMgYXJlIHBhcnQgb2YgdGhlIFVuaWNvZGUgQ2hhcmFjdGVyIERhdGFiYXNlLiBE b3dubG9hZAotIyB0aGVtIG9uIGRlbWFuZC4KLVVuaWNvZGVEYXRhLnR4dCBDb21wb3NpdGlv bkV4Y2x1c2lvbnMudHh0IE5vcm1hbGl6YXRpb25UZXN0LnR4dDoKLQkkKERPV05MT0FEKSBo dHRwczovL3d3dy51bmljb2RlLm9yZy9QdWJsaWMvVU5JREFUQS8kKEBGKQorIyB0aGVtIG9u IGRlbWFuZC4gIFRoZSBkZXBlbmRlbmN5IG9uIE1ha2VmaWxlLmdsb2JhbCBpcyBmb3IKKyMg VU5JQ09ERV9WRVJTSU9OLgorVW5pY29kZURhdGEudHh0IENvbXBvc2l0aW9uRXhjbHVzaW9u cy50eHQgTm9ybWFsaXphdGlvblRlc3QudHh0OiAkKHRvcF9idWlsZGRpcikvc3JjL01ha2Vm aWxlLmdsb2JhbAorCSQoRE9XTkxPQUQpIGh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL1B1Ymxp Yy8kKFVOSUNPREVfVkVSU0lPTikvdWNkLyQoQEYpCiAKICMgR2VuZXJhdGlvbiBvZiBjb252 ZXJzaW9uIHRhYmxlcyB1c2VkIGZvciBzdHJpbmcgbm9ybWFsaXphdGlvbiB3aXRoCiAjIFVU Ri04IHN0cmluZ3MuCiB1bmljb2RlX25vcm1fdGFibGUuaDogZ2VuZXJhdGUtdW5pY29kZV9u b3JtX3RhYmxlLnBsIFVuaWNvZGVEYXRhLnR4dCBDb21wb3NpdGlvbkV4Y2x1c2lvbnMudHh0 CiAJJChQRVJMKSBnZW5lcmF0ZS11bmljb2RlX25vcm1fdGFibGUucGwKIAordW5pY29kZV9j b21iaW5pbmdfdGFibGUuaDogZ2VuZXJhdGUtdW5pY29kZV9jb21iaW5pbmdfdGFibGUucGwg VW5pY29kZURhdGEudHh0CisJJChQRVJMKSAkXiA+JEAKKwogIyBUZXN0IHN1aXRlCiBub3Jt YWxpemF0aW9uLWNoZWNrOiBub3JtX3Rlc3QKIAkuL25vcm1fdGVzdApkaWZmIC0tZ2l0IGEv c3JjL2NvbW1vbi91bmljb2RlL1JFQURNRSBiL3NyYy9jb21tb24vdW5pY29kZS9SRUFETUUK aW5kZXggNWFhNzkwNDRkMy4uNTY5NTZmNmE2NSAxMDA2NDQKLS0tIGEvc3JjL2NvbW1vbi91 bmljb2RlL1JFQURNRQorKysgYi9zcmMvY29tbW9uL3VuaWNvZGUvUkVBRE1FCkBAIC04LDIw ICs4LDExIEBAIG9mIFVuaWNvZGUuCiBHZW5lcmF0aW5nIHVuaWNvZGVfbm9ybV90YWJsZS5o CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLTEuIERvd25sb2FkIHRoZSBV bmljb2RlIGRhdGEgZmlsZSwgVW5pY29kZURhdGEudHh0LCBmcm9tIHRoZSBVbmljb2RlCi1j b25zb3J0aXVtIGFuZCBwbGFjZSBpdCB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkuIFJ1biB0 aGUgcGVybCBzY3JpcHQKLSJnZW5lcmF0ZS11bmljb2RlX25vcm1fdGFibGUucGwiLCB0byBw cm9jZXNzIGl0LCBhbmQgdG8gZ2VuZXJhdGUgdGhlCi0idW5pY29kZV9ub3JtX3RhYmxlLmgi IGZpbGUuIFRoZSBNYWtlZmlsZSBjb250YWlucyBhIHJ1bGUgdG8gZG93bmxvYWQgdGhlCi1k YXRhIGZpbGVzIGlmIHRoZXkgZG9uJ3QgZXhpc3QuCi0KLSAgICBtYWtlIHVuaWNvZGVfbm9y bV90YWJsZS5oCi0KLTIuIEluc3BlY3QgdGhlIHJlc3VsdGluZyBoZWFkZXIgZmlsZS4gT25j ZSB5b3UncmUgaGFwcHkgd2l0aCBpdCwgY29weSBpdCB0bwotdGhlIHJpZ2h0IGxvY2F0aW9u LgotCi0gICAgY3AgdW5pY29kZV9ub3JtX3RhYmxlLmggLi4vLi4vLi4vc3JjL2luY2x1ZGUv Y29tbW9uLworUnVuCiAKKyAgICBtYWtlIHVwZGF0ZS11bmljb2RlCiAKK2Zyb20gdGhlIHRv cCBsZXZlbCBvZiB0aGUgc291cmNlIHRyZWUgYW5kIGNvbW1pdCB0aGUgcmVzdWx0LgogCiBU ZXN0cwogLS0tLS0KQEAgLTMzLDMgKzI0LDUgQEAgbm9ybWFsaXphdGlvbiBjb2RlIHdpdGgg YWxsIHRoZSB0ZXN0IHN0cmluZ3MgaW4gTm9ybWFsaXphdGlvblRlc3QudHh0LgogVG8gZG93 bmxvYWQgTm9ybWFsaXphdGlvblRlc3QudHh0IGFuZCBydW4gdGhlIHRlc3RzOgogCiAgICAg bWFrZSBub3JtYWxpemF0aW9uLWNoZWNrCisKK1RoaXMgaXMgYWxzbyBydW4gYXMgcGFydCBv ZiB0aGUgdXBkYXRlLXVuaWNvZGUgdGFyZ2V0LgpkaWZmIC0tZ2l0IGEvc3JjL2NvbW1vbi91 bmljb2RlL2dlbmVyYXRlLXVuaWNvZGVfY29tYmluaW5nX3RhYmxlLnBsIGIvc3JjL2NvbW1v bi91bmljb2RlL2dlbmVyYXRlLXVuaWNvZGVfY29tYmluaW5nX3RhYmxlLnBsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmU0NjhhNWY4YzkKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvY29tbW9uL3VuaWNvZGUvZ2VuZXJhdGUtdW5pY29kZV9jb21iaW5pbmdf dGFibGUucGwKQEAgLTAsMCArMSw1MiBAQAorIyEvdXNyL2Jpbi9wZXJsCisjCisjIEdlbmVy YXRlIHNvcnRlZCBsaXN0IG9mIG5vbi1vdmVybGFwcGluZyBpbnRlcnZhbHMgb2Ygbm9uLXNw YWNpbmcKKyMgY2hhcmFjdGVycywgdXNpbmcgVW5pY29kZSBkYXRhIGZpbGVzIGFzIGlucHV0 LiAgUGFzcyBVbmljb2RlRGF0YS50eHQKKyMgYXMgYXJndW1lbnQuICBUaGUgb3V0cHV0IGlz IG9uIHN0ZG91dC4KKyMKKyMgQ29weXJpZ2h0IChjKSAyMDE5LCBQb3N0Z3JlU1FMIEdsb2Jh bCBEZXZlbG9wbWVudCBHcm91cAorCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOworCitt eSAkcmFuZ2Vfc3RhcnQgPSB1bmRlZjsKK215ICRjb2RlcG9pbnQ7CitteSAkcHJldl9jb2Rl cG9pbnQ7CitteSAkY291bnQgPSAwOworCitwcmludCAiLyogZ2VuZXJhdGVkIGJ5IHNyYy9j b21tb24vdW5pY29kZS9nZW5lcmF0ZS11bmljb2RlX2NvbWJpbmluZ190YWJsZS5wbCwgZG8g bm90IGVkaXQgKi9cblxuIjsKKworcHJpbnQgInN0YXRpYyBjb25zdCBzdHJ1Y3QgbWJpbnRl cnZhbCBjb21iaW5pbmdbXSA9IHtcbiI7CisKK2ZvcmVhY2ggbXkgJGxpbmUgKDxBUkdWPikK K3sKKyAgICBjaG9tcCAkbGluZTsKKyAgICBteSBAZmllbGRzID0gc3BsaXQgJzsnLCAkbGlu ZTsKKyAgICAkY29kZXBvaW50ID0gaGV4ICRmaWVsZHNbMF07CisKKyAgICBuZXh0IGlmICRj b2RlcG9pbnQgPiAweEZGRkY7CisKKyAgICBpZiAoJGZpZWxkc1syXSBlcSAnTWUnIHx8ICRm aWVsZHNbMl0gZXEgJ01uJykKKyAgICB7CisgICAgICAgICMgY29tYmluaW5nIGNoYXJhY3Rl ciwgc2F2ZSBmb3Igc3RhcnQgb2YgcmFuZ2UKKyAgICAgICAgaWYgKCFkZWZpbmVkKCRyYW5n ZV9zdGFydCkpCisgICAgICAgIHsKKyAgICAgICAgICAgICRyYW5nZV9zdGFydCA9ICRjb2Rl cG9pbnQ7CisgICAgICAgIH0KKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgIyBu b3QgYSBjb21iaW5pbmcgY2hhcmFjdGVyLCBwcmludCBvdXQgcHJldmlvdXMgcmFuZ2UgaWYg YW55CisgICAgICAgIGlmIChkZWZpbmVkKCRyYW5nZV9zdGFydCkpCisgICAgICAgIHsKKyAg ICAgICAgICAgIHByaW50ZiAiXHR7MHglMDRYLCAweCUwNFh9LFxuIiwgJHJhbmdlX3N0YXJ0 LCAkcHJldl9jb2RlcG9pbnQ7CisgICAgICAgICAgICAkcmFuZ2Vfc3RhcnQgPSB1bmRlZjsK KyAgICAgICAgfQorICAgIH0KK30KK2NvbnRpbnVlCit7CisgICAgJHByZXZfY29kZXBvaW50 ID0gJGNvZGVwb2ludDsKK30KKworcHJpbnQgIn07XG4iOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvY29tbW9uL3VuaWNvZGVfY29tYmluaW5nX3RhYmxlLmggYi9zcmMvaW5jbHVkZS9j b21tb24vdW5pY29kZV9jb21iaW5pbmdfdGFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwLi5iNGE4NTg4MjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2lu Y2x1ZGUvY29tbW9uL3VuaWNvZGVfY29tYmluaW5nX3RhYmxlLmgKQEAgLTAsMCArMSwxOTQg QEAKKy8qIGdlbmVyYXRlZCBieSBzcmMvY29tbW9uL3VuaWNvZGUvZ2VuZXJhdGUtdW5pY29k ZV9jb21iaW5pbmdfdGFibGUucGwsIGRvIG5vdCBlZGl0ICovCisKK3N0YXRpYyBjb25zdCBz dHJ1Y3QgbWJpbnRlcnZhbCBjb21iaW5pbmdbXSA9IHsKKwl7MHgwMzAwLCAweDAzNkZ9LAor CXsweDA0ODMsIDB4MDQ4OX0sCisJezB4MDU5MSwgMHgwNUJEfSwKKwl7MHgwNUJGLCAweDA1 QkZ9LAorCXsweDA1QzEsIDB4MDVDMn0sCisJezB4MDVDNCwgMHgwNUM1fSwKKwl7MHgwNUM3 LCAweDA1Qzd9LAorCXsweDA2MTAsIDB4MDYxQX0sCisJezB4MDY0QiwgMHgwNjVGfSwKKwl7 MHgwNjcwLCAweDA2NzB9LAorCXsweDA2RDYsIDB4MDZEQ30sCisJezB4MDZERiwgMHgwNkU0 fSwKKwl7MHgwNkU3LCAweDA2RTh9LAorCXsweDA2RUEsIDB4MDZFRH0sCisJezB4MDcxMSwg MHgwNzExfSwKKwl7MHgwNzMwLCAweDA3NEF9LAorCXsweDA3QTYsIDB4MDdCMH0sCisJezB4 MDdFQiwgMHgwN0YzfSwKKwl7MHgwN0ZELCAweDA3RkR9LAorCXsweDA4MTYsIDB4MDgxOX0s CisJezB4MDgxQiwgMHgwODIzfSwKKwl7MHgwODI1LCAweDA4Mjd9LAorCXsweDA4MjksIDB4 MDgyRH0sCisJezB4MDg1OSwgMHgwODVCfSwKKwl7MHgwOEQzLCAweDA4RTF9LAorCXsweDA4 RTMsIDB4MDkwMn0sCisJezB4MDkzQSwgMHgwOTNBfSwKKwl7MHgwOTNDLCAweDA5M0N9LAor CXsweDA5NDEsIDB4MDk0OH0sCisJezB4MDk0RCwgMHgwOTREfSwKKwl7MHgwOTUxLCAweDA5 NTd9LAorCXsweDA5NjIsIDB4MDk2M30sCisJezB4MDk4MSwgMHgwOTgxfSwKKwl7MHgwOUJD LCAweDA5QkN9LAorCXsweDA5QzEsIDB4MDlDNH0sCisJezB4MDlDRCwgMHgwOUNEfSwKKwl7 MHgwOUUyLCAweDA5RTN9LAorCXsweDA5RkUsIDB4MEEwMn0sCisJezB4MEEzQywgMHgwQTND fSwKKwl7MHgwQTQxLCAweDBBNTF9LAorCXsweDBBNzAsIDB4MEE3MX0sCisJezB4MEE3NSwg MHgwQTc1fSwKKwl7MHgwQTgxLCAweDBBODJ9LAorCXsweDBBQkMsIDB4MEFCQ30sCisJezB4 MEFDMSwgMHgwQUM4fSwKKwl7MHgwQUNELCAweDBBQ0R9LAorCXsweDBBRTIsIDB4MEFFM30s CisJezB4MEFGQSwgMHgwQjAxfSwKKwl7MHgwQjNDLCAweDBCM0N9LAorCXsweDBCM0YsIDB4 MEIzRn0sCisJezB4MEI0MSwgMHgwQjQ0fSwKKwl7MHgwQjRELCAweDBCNTZ9LAorCXsweDBC NjIsIDB4MEI2M30sCisJezB4MEI4MiwgMHgwQjgyfSwKKwl7MHgwQkMwLCAweDBCQzB9LAor CXsweDBCQ0QsIDB4MEJDRH0sCisJezB4MEMwMCwgMHgwQzAwfSwKKwl7MHgwQzA0LCAweDBD MDR9LAorCXsweDBDM0UsIDB4MEM0MH0sCisJezB4MEM0NiwgMHgwQzU2fSwKKwl7MHgwQzYy LCAweDBDNjN9LAorCXsweDBDODEsIDB4MEM4MX0sCisJezB4MENCQywgMHgwQ0JDfSwKKwl7 MHgwQ0JGLCAweDBDQkZ9LAorCXsweDBDQzYsIDB4MENDNn0sCisJezB4MENDQywgMHgwQ0NE fSwKKwl7MHgwQ0UyLCAweDBDRTN9LAorCXsweDBEMDAsIDB4MEQwMX0sCisJezB4MEQzQiwg MHgwRDNDfSwKKwl7MHgwRDQxLCAweDBENDR9LAorCXsweDBENEQsIDB4MEQ0RH0sCisJezB4 MEQ2MiwgMHgwRDYzfSwKKwl7MHgwRENBLCAweDBEQ0F9LAorCXsweDBERDIsIDB4MERENn0s CisJezB4MEUzMSwgMHgwRTMxfSwKKwl7MHgwRTM0LCAweDBFM0F9LAorCXsweDBFNDcsIDB4 MEU0RX0sCisJezB4MEVCMSwgMHgwRUIxfSwKKwl7MHgwRUI0LCAweDBFQkN9LAorCXsweDBF QzgsIDB4MEVDRH0sCisJezB4MEYxOCwgMHgwRjE5fSwKKwl7MHgwRjM1LCAweDBGMzV9LAor CXsweDBGMzcsIDB4MEYzN30sCisJezB4MEYzOSwgMHgwRjM5fSwKKwl7MHgwRjcxLCAweDBG N0V9LAorCXsweDBGODAsIDB4MEY4NH0sCisJezB4MEY4NiwgMHgwRjg3fSwKKwl7MHgwRjhE LCAweDBGQkN9LAorCXsweDBGQzYsIDB4MEZDNn0sCisJezB4MTAyRCwgMHgxMDMwfSwKKwl7 MHgxMDMyLCAweDEwMzd9LAorCXsweDEwMzksIDB4MTAzQX0sCisJezB4MTAzRCwgMHgxMDNF fSwKKwl7MHgxMDU4LCAweDEwNTl9LAorCXsweDEwNUUsIDB4MTA2MH0sCisJezB4MTA3MSwg MHgxMDc0fSwKKwl7MHgxMDgyLCAweDEwODJ9LAorCXsweDEwODUsIDB4MTA4Nn0sCisJezB4 MTA4RCwgMHgxMDhEfSwKKwl7MHgxMDlELCAweDEwOUR9LAorCXsweDEzNUQsIDB4MTM1Rn0s CisJezB4MTcxMiwgMHgxNzE0fSwKKwl7MHgxNzMyLCAweDE3MzR9LAorCXsweDE3NTIsIDB4 MTc1M30sCisJezB4MTc3MiwgMHgxNzczfSwKKwl7MHgxN0I0LCAweDE3QjV9LAorCXsweDE3 QjcsIDB4MTdCRH0sCisJezB4MTdDNiwgMHgxN0M2fSwKKwl7MHgxN0M5LCAweDE3RDN9LAor CXsweDE3REQsIDB4MTdERH0sCisJezB4MTgwQiwgMHgxODBEfSwKKwl7MHgxODg1LCAweDE4 ODZ9LAorCXsweDE4QTksIDB4MThBOX0sCisJezB4MTkyMCwgMHgxOTIyfSwKKwl7MHgxOTI3 LCAweDE5Mjh9LAorCXsweDE5MzIsIDB4MTkzMn0sCisJezB4MTkzOSwgMHgxOTNCfSwKKwl7 MHgxQTE3LCAweDFBMTh9LAorCXsweDFBMUIsIDB4MUExQn0sCisJezB4MUE1NiwgMHgxQTU2 fSwKKwl7MHgxQTU4LCAweDFBNjB9LAorCXsweDFBNjIsIDB4MUE2Mn0sCisJezB4MUE2NSwg MHgxQTZDfSwKKwl7MHgxQTczLCAweDFBN0Z9LAorCXsweDFBQjAsIDB4MUIwM30sCisJezB4 MUIzNCwgMHgxQjM0fSwKKwl7MHgxQjM2LCAweDFCM0F9LAorCXsweDFCM0MsIDB4MUIzQ30s CisJezB4MUI0MiwgMHgxQjQyfSwKKwl7MHgxQjZCLCAweDFCNzN9LAorCXsweDFCODAsIDB4 MUI4MX0sCisJezB4MUJBMiwgMHgxQkE1fSwKKwl7MHgxQkE4LCAweDFCQTl9LAorCXsweDFC QUIsIDB4MUJBRH0sCisJezB4MUJFNiwgMHgxQkU2fSwKKwl7MHgxQkU4LCAweDFCRTl9LAor CXsweDFCRUQsIDB4MUJFRH0sCisJezB4MUJFRiwgMHgxQkYxfSwKKwl7MHgxQzJDLCAweDFD MzN9LAorCXsweDFDMzYsIDB4MUMzN30sCisJezB4MUNEMCwgMHgxQ0QyfSwKKwl7MHgxQ0Q0 LCAweDFDRTB9LAorCXsweDFDRTIsIDB4MUNFOH0sCisJezB4MUNFRCwgMHgxQ0VEfSwKKwl7 MHgxQ0Y0LCAweDFDRjR9LAorCXsweDFDRjgsIDB4MUNGOX0sCisJezB4MURDMCwgMHgxREZG fSwKKwl7MHgyMEQwLCAweDIwRjB9LAorCXsweDJDRUYsIDB4MkNGMX0sCisJezB4MkQ3Riwg MHgyRDdGfSwKKwl7MHgyREUwLCAweDJERkZ9LAorCXsweDMwMkEsIDB4MzAyRH0sCisJezB4 MzA5OSwgMHgzMDlBfSwKKwl7MHhBNjZGLCAweEE2NzJ9LAorCXsweEE2NzQsIDB4QTY3RH0s CisJezB4QTY5RSwgMHhBNjlGfSwKKwl7MHhBNkYwLCAweEE2RjF9LAorCXsweEE4MDIsIDB4 QTgwMn0sCisJezB4QTgwNiwgMHhBODA2fSwKKwl7MHhBODBCLCAweEE4MEJ9LAorCXsweEE4 MjUsIDB4QTgyNn0sCisJezB4QThDNCwgMHhBOEM1fSwKKwl7MHhBOEUwLCAweEE4RjF9LAor CXsweEE4RkYsIDB4QThGRn0sCisJezB4QTkyNiwgMHhBOTJEfSwKKwl7MHhBOTQ3LCAweEE5 NTF9LAorCXsweEE5ODAsIDB4QTk4Mn0sCisJezB4QTlCMywgMHhBOUIzfSwKKwl7MHhBOUI2 LCAweEE5Qjl9LAorCXsweEE5QkMsIDB4QTlCRH0sCisJezB4QTlFNSwgMHhBOUU1fSwKKwl7 MHhBQTI5LCAweEFBMkV9LAorCXsweEFBMzEsIDB4QUEzMn0sCisJezB4QUEzNSwgMHhBQTM2 fSwKKwl7MHhBQTQzLCAweEFBNDN9LAorCXsweEFBNEMsIDB4QUE0Q30sCisJezB4QUE3Qywg MHhBQTdDfSwKKwl7MHhBQUIwLCAweEFBQjB9LAorCXsweEFBQjIsIDB4QUFCNH0sCisJezB4 QUFCNywgMHhBQUI4fSwKKwl7MHhBQUJFLCAweEFBQkZ9LAorCXsweEFBQzEsIDB4QUFDMX0s CisJezB4QUFFQywgMHhBQUVEfSwKKwl7MHhBQUY2LCAweEFBRjZ9LAorCXsweEFCRTUsIDB4 QUJFNX0sCisJezB4QUJFOCwgMHhBQkU4fSwKKwl7MHhBQkVELCAweEFCRUR9LAorCXsweEZC MUUsIDB4RkIxRX0sCisJezB4RkUwMCwgMHhGRTBGfSwKKwl7MHhGRTIwLCAweEZFMkZ9LAor fTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9SRUxFQVNFX0NIQU5HRVMgYi9zcmMvdG9vbHMv UkVMRUFTRV9DSEFOR0VTCmluZGV4IDQ2MTM5ODc3ZWQuLmE3YmZmNzZiNzYgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9SRUxFQVNFX0NIQU5HRVMKKysrIGIvc3JjL3Rvb2xzL1JFTEVBU0Vf Q0hBTkdFUwpAQCAtNzcsNiArNzcsOSBAQCBidXQgdGhlcmUgbWF5IGJlIHJlYXNvbnMgdG8g ZG8gdGhlbSBhdCBvdGhlciB0aW1lcyBhcyB3ZWxsLgogCiAqIFVwZGF0ZSBpbmV0L2NpZHIg ZGF0YSB0eXBlcyB3aXRoIG5ld2VzdCBCaW5kIHBhdGNoZXMKIAorKiBVcGRhdGUgVW5pY29k ZSBkYXRhOiBFZGl0IFVOSUNPREVfVkVSU0lPTiBhbmQgQ0xEUl9WRVJTSU9OIGluCisgIHNy Yy9NYWtlZmlsZS5nbG9iYWwuaW4sIHJ1biBtYWtlIHVwZGF0ZS11bmljb2RlLCBhbmQgY29t bWl0LgorCiAKIFN0YXJ0aW5nIGEgTmV3IERldmVsb3BtZW50IEN5Y2xlCiA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLSAKMi4yNC4xCgo= --------------1B89588FF9F61C43320C900A--