Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lvahx-00009O-4Y for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Jun 2021 07:20:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1lvahv-0004qi-Mg for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Jun 2021 07:20:27 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lvahv-0004qa-5e for pgsql-hackers@lists.postgresql.org; Tue, 22 Jun 2021 07:20:27 +0000 Received: from wforward3-smtp.messagingengine.com ([64.147.123.22]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1lvahq-0001G2-56 for pgsql-hackers@postgresql.org; Tue, 22 Jun 2021 07:20:24 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailforward.west.internal (Postfix) with ESMTP id F15E511C4 for ; Tue, 22 Jun 2021 03:20:19 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute1.internal (MEProxy); Tue, 22 Jun 2021 03:20:20 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=zEvO+3ixrWDCXD+ff4zJRGDJkScrA hw75/731CyuGt4=; b=cfNhZOTtcwrohhC2CfZAuh/YeWaWJQF4xqgzXKN4anfMd 18ajul3l48SvGI+3mhTjnWP2nvypjK4iZxbv8ggTCzXFyXAzSyJsG8r4ornWlAil SpYkTsKqkyWh+KfHF8nahgV1TrXnvh4oG2ciC93KHEvOZLhWiZNY6N6dxA6eHHTI MBcqRcS211/Jztkla0/t8Q19qf37ZuZECYw3KB2FJoBpVd8bF7IsK5NpQiCfdMq8 UxaLikyMaH4qzOPFDDoMeWyiVcagbar1lnce1Mr6smpO9VcnkTB5NRUnwTQCjPeM qbYWq7TdmDUWtYBBG8Xg6xuuAl4o03ESNEeN9wMwA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduledrfeegtddguddulecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhephffuvffkffgfgggtsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtth gvrhhnpeejteehveeuueeuudevteekgeefieefveettdeukeevteekffffieejheffgfej leenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvg htvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 22 Jun 2021 03:20:18 -0400 (EDT) From: Peter Eisentraut Subject: improvements in Unicode tables generation code To: pgsql-hackers Message-ID: <22016aa9-ca59-15c7-01df-f292cb558c4d@enterprisedb.com> Date: Tue, 22 Jun 2021 09:20:16 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.10.2 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------A16D4B182975676D8B277FA2" Content-Language: en-US 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. --------------A16D4B182975676D8B277FA2 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit I have accumulated a few patches to improve the output of the scripts in src/backend/utils/mb/Unicode/ to be less non-standard-looking and fix a few other minor things in that area. v1-0001-Make-Unicode-makefile-more-parallel-safe.patch The makefile rule that calls UCS_to_most.pl was written incorrectly for parallel make. The script writes all output files in one go, but the rule as written would call the command once for each output file in parallel. v1-0002-Make-UCS_to_most.pl-process-encodings-in-sorted-o.patch This mainly just helps eyeball the output while debugging the previous patch. v1-0003-Remove-some-whitespace-in-generated-C-output.patch Improve a small formatting issue in the output. v1-0004-Simplify-code-generation-code.patch This simplifies the code a bit, which helps with the next patch. v1-0005-Fix-indentation-in-generated-output.patch This changes the indentation in the output from two spaces to a tab. I haven't included the actual output changes in the last patch, because they would be huge, but the idea should be clear. All together, these make the output look closer to how pgindent would make it. --------------A16D4B182975676D8B277FA2 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v1-0001-Make-Unicode-makefile-more-parallel-safe.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v1-0001-Make-Unicode-makefile-more-parallel-safe.patch" RnJvbSAzZGNlOTljOGU1N2FlYzkxZGI4NTk2NWI2Y2VmOTQ3NDg0YzAwYTVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMiBKdW4gMjAyMSAwOTowNjoyOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMS81XSBNYWtlIFVuaWNvZGUgbWFrZWZpbGUgbW9yZSBwYXJhbGxlbC1z YWZlCgotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvTWFrZWZpbGUgfCA0ICsr Ky0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL01ha2VmaWxlIGIvc3Jj L2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9NYWtlZmlsZQppbmRleCBlZDZmYzA3ZTA4Li40 OTY5YjhjMzg1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL01h a2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvTWFrZWZpbGUKQEAg LTcyLDcgKzcyLDkgQEAgR0VORVJJQ1RFWFRTID0gJChJU084ODU5VEVYVFMpICQoV0lOVEVY VFMpIFwKIAogYWxsOiAkKE1BUFMpCiAKLSQoR0VORVJJQ01BUFMpOiBVQ1NfdG9fbW9zdC5w bCAkKEdFTkVSSUNURVhUUykKKyQod29yZGxpc3QgMiwgJCh3b3JkcyAkKEdFTkVSSUNNQVBT KSksICQoR0VORVJJQ01BUFMpKTogJChmaXJzdHdvcmQgJChHRU5FUklDTUFQUykpIDsKKwor JChmaXJzdHdvcmQgJChHRU5FUklDTUFQUykpOiBVQ1NfdG9fbW9zdC5wbCAkKEdFTkVSSUNU RVhUUykKIAkkKFBFUkwpIC1JICQoc3JjZGlyKSAkPAogCiBqb2hhYl90b191dGY4Lm1hcCB1 dGY4X3RvX2pvaGFiLm1hcDogVUNTX3RvX0pPSEFCLnBsIEpPSEFCLlRYVAotLSAKMi4zMi4w Cgo= --------------A16D4B182975676D8B277FA2 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v1-0002-Make-UCS_to_most.pl-process-encodings-in-sorted-o.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v1-0002-Make-UCS_to_most.pl-process-encodings-in-sorted-o.pa"; filename*1="tch" RnJvbSAyOTFmMGFjZmQ1MzMxYWIyZjI5NzEwYjE1NmM0MGIwZGFkNzAzY2EyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMiBKdW4gMjAyMSAwOTowNjoyOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMi81XSBNYWtlIFVDU190b19tb3N0LnBsIHByb2Nlc3MgZW5jb2Rpbmdz IGluIHNvcnRlZCBvcmRlcgoKVGhpcyBqdXN0IG1ha2VzIHRoZSBwcm9ncmVzcyBvdXRwdXQg ZWFzaWVyIHRvIGZvbGxvdy4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL1VD U190b19tb3N0LnBsIHwgMyArKy0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyks IDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmlj b2RlL1VDU190b19tb3N0LnBsIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9VQ1Nf dG9fbW9zdC5wbAppbmRleCA0Zjk3NDM4OGQ3Li42YjY5OWIzNzZkIDEwMDc1NQotLS0gYS9z cmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL1VDU190b19tb3N0LnBsCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvVUNTX3RvX21vc3QucGwKQEAgLTU0LDcgKzU0LDgg QEAKICMgbWFrZSBtYXBzIGZvciBhbGwgZW5jb2RpbmdzIGlmIG5vdCBzcGVjaWZpZWQKIG15 IEBjaGFyc2V0cyA9IChzY2FsYXIoQEFSR1YpID4gMCkgPyBAQVJHViA6IHNvcnQga2V5cygl ZmlsZW5hbWUpOwogCi1mb3JlYWNoIG15ICRjaGFyc2V0IChAY2hhcnNldHMpCisjIHRoZSBz b3J0IGlzIGp1c3Qgc28gdGhhdCB0aGUgb3V0cHV0IGlzIGVhc2llciB0byBleWViYWxsCitm b3JlYWNoIG15ICRjaGFyc2V0IChzb3J0IEBjaGFyc2V0cykKIHsKIAlteSAkbWFwcGluZyA9 ICZyZWFkX3NvdXJjZSgkZmlsZW5hbWV7JGNoYXJzZXR9KTsKIAotLSAKMi4zMi4wCgo= --------------A16D4B182975676D8B277FA2 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v1-0003-Remove-some-whitespace-in-generated-C-output.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="v1-0003-Remove-some-whitespace-in-generated-C-output.patch" RnJvbSAyNDI0NDBjNzlhMTBhYWI5MmUxMjkzZTE0NDFkYzk2M2ZkMjZlMmNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMiBKdW4gMjAyMSAwOTowNjoyOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgMy81XSBSZW1vdmUgc29tZSB3aGl0ZXNwYWNlIGluIGdlbmVyYXRlZCBD IG91dHB1dAoKSXQgZG9lc24ndCBtYXRjaCB0aGUgbm9ybWFsIGNvZGluZyBzdHlsZS4KLS0t CiBzcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2NvbnZ1dGlscy5wbSAgICAgICAgICAg ICAgIHwgNCArKy0tCiBzcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2V1Y19qaXNfMjAw NF90b191dGY4Lm1hcCAgIHwgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9z aGlmdF9qaXNfMjAwNF90b191dGY4Lm1hcCB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL21i L1VuaWNvZGUvdXRmOF90b19ldWNfamlzXzIwMDQubWFwICAgfCAyICstCiBzcmMvYmFja2Vu ZC91dGlscy9tYi9Vbmljb2RlL3V0ZjhfdG9fc2hpZnRfamlzXzIwMDQubWFwIHwgMiArLQog NSBmaWxlcyBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9jb252dXRpbHMucG0gYi9z cmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2NvbnZ1dGlscy5wbQppbmRleCA1YWQzODUx NGJlLi44MzY5ZTkxYjJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmlj b2RlL2NvbnZ1dGlscy5wbQorKysgYi9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2Nv bnZ1dGlscy5wbQpAQCAtMTczLDcgKzE3Myw3IEBAIHN1YiBwcmludF9mcm9tX3V0ZjhfY29t YmluZWRfbWFwCiAKIAlwcmludGYgJG91dCAiXG4vKiBDb21iaW5lZCBjaGFyYWN0ZXIgbWFw ICovXG4iOwogCXByaW50ZiAkb3V0Ci0JICAic3RhdGljIGNvbnN0IHBnX3V0Zl90b19sb2Nh bF9jb21iaW5lZCBVTG1hcCR7Y2hhcnNldH1fY29tYmluZWRbICVkIF0gPSB7IiwKKwkgICJz dGF0aWMgY29uc3QgcGdfdXRmX3RvX2xvY2FsX2NvbWJpbmVkIFVMbWFwJHtjaGFyc2V0fV9j b21iaW5lZFslZF0gPSB7XG4iLAogCSAgc2NhbGFyKEAkdGFibGUpOwogCW15ICRmaXJzdCA9 IDE7CiAJZm9yZWFjaCBteSAkaSAoc29ydCB7ICRhLT57dXRmOH0gPD0+ICRiLT57dXRmOH0g fSBAJHRhYmxlKQpAQCAtMjA4LDcgKzIwOCw3IEBAIHN1YiBwcmludF90b191dGY4X2NvbWJp bmVkX21hcAogCiAJcHJpbnRmICRvdXQgIlxuLyogQ29tYmluZWQgY2hhcmFjdGVyIG1hcCAq L1xuIjsKIAlwcmludGYgJG91dAotCSAgInN0YXRpYyBjb25zdCBwZ19sb2NhbF90b191dGZf Y29tYmluZWQgTFVtYXAke2NoYXJzZXR9X2NvbWJpbmVkWyAlZCBdID0geyIsCisJICAic3Rh dGljIGNvbnN0IHBnX2xvY2FsX3RvX3V0Zl9jb21iaW5lZCBMVW1hcCR7Y2hhcnNldH1fY29t YmluZWRbJWRdID0ge1xuIiwKIAkgIHNjYWxhcihAJHRhYmxlKTsKIAogCW15ICRmaXJzdCA9 IDE7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2V1Y19qaXNf MjAwNF90b191dGY4Lm1hcCBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvZXVjX2pp c18yMDA0X3RvX3V0ZjgubWFwCmluZGV4IGQyZGE0YTM4M2IuLjNhOGZjOWQyNmYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvZXVjX2ppc18yMDA0X3RvX3V0 ZjgubWFwCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvZXVjX2ppc18yMDA0 X3RvX3V0ZjgubWFwCkBAIC0zNDE0LDcgKzM0MTQsNyBAQCBzdGF0aWMgY29uc3QgdWludDMy IGV1Y19qaXNfMjAwNF90b191bmljb2RlX3RyZWVfdGFibGVbMTE3MjddID0KIH07CiAKIC8q IENvbWJpbmVkIGNoYXJhY3RlciBtYXAgKi8KLXN0YXRpYyBjb25zdCBwZ19sb2NhbF90b191 dGZfY29tYmluZWQgTFVtYXBFVUNfSklTXzIwMDRfY29tYmluZWRbIDI1IF0gPSB7CitzdGF0 aWMgY29uc3QgcGdfbG9jYWxfdG9fdXRmX2NvbWJpbmVkIExVbWFwRVVDX0pJU18yMDA0X2Nv bWJpbmVkWzI1XSA9IHsKICAgezB4YTRmNywgMHgwMGUzODE4YiwgMHgwMGUzODI5YX0sCS8q IFUrMzA0QiszMDlBCSAJWzIwMDBdICovCiAgIHsweGE0ZjgsIDB4MDBlMzgxOGQsIDB4MDBl MzgyOWF9LAkvKiBVKzMwNEQrMzA5QQkgCVsyMDAwXSAqLwogICB7MHhhNGY5LCAweDAwZTM4 MThmLCAweDAwZTM4MjlhfSwJLyogVSszMDRGKzMwOUEJIAlbMjAwMF0gKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvc2hpZnRfamlzXzIwMDRfdG9fdXRm OC5tYXAgYi9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL3NoaWZ0X2ppc18yMDA0X3Rv X3V0ZjgubWFwCmluZGV4IGU1OTFhMTEzNWIuLjNjMTA3Y2JiN2IgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvc2hpZnRfamlzXzIwMDRfdG9fdXRmOC5tYXAK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9zaGlmdF9qaXNfMjAwNF90b191 dGY4Lm1hcApAQCAtMzIwNSw3ICszMjA1LDcgQEAgc3RhdGljIGNvbnN0IHVpbnQzMiBzaGlm dF9qaXNfMjAwNF90b191bmljb2RlX3RyZWVfdGFibGVbMTE3MTZdID0KIH07CiAKIC8qIENv bWJpbmVkIGNoYXJhY3RlciBtYXAgKi8KLXN0YXRpYyBjb25zdCBwZ19sb2NhbF90b191dGZf Y29tYmluZWQgTFVtYXBTSElGVF9KSVNfMjAwNF9jb21iaW5lZFsgMjUgXSA9IHsKK3N0YXRp YyBjb25zdCBwZ19sb2NhbF90b191dGZfY29tYmluZWQgTFVtYXBTSElGVF9KSVNfMjAwNF9j b21iaW5lZFsyNV0gPSB7CiAgIHsweDgyZjUsIDB4MDBlMzgxOGIsIDB4MDBlMzgyOWF9LAkv KiBVKzMwNEIrMzA5QQkgCVsyMDAwXSAqLwogICB7MHg4MmY2LCAweDAwZTM4MThkLCAweDAw ZTM4MjlhfSwJLyogVSszMDREKzMwOUEJIAlbMjAwMF0gKi8KICAgezB4ODJmNywgMHgwMGUz ODE4ZiwgMHgwMGUzODI5YX0sCS8qIFUrMzA0RiszMDlBCSAJWzIwMDBdICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL3V0ZjhfdG9fZXVjX2ppc18yMDA0 Lm1hcCBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvdXRmOF90b19ldWNfamlzXzIw MDQubWFwCmluZGV4IGZhOTBmMzk1OGYuLjBkNDc0NjM4MDUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvdXRmOF90b19ldWNfamlzXzIwMDQubWFwCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvdXRmOF90b19ldWNfamlzXzIwMDQubWFw CkBAIC0xMjUzOCw3ICsxMjUzOCw3IEBAIHN0YXRpYyBjb25zdCB1aW50MzIgZXVjX2ppc18y MDA0X2Zyb21fdW5pY29kZV90cmVlX3RhYmxlWzM5MTYzXSA9CiB9OwogCiAvKiBDb21iaW5l ZCBjaGFyYWN0ZXIgbWFwICovCi1zdGF0aWMgY29uc3QgcGdfdXRmX3RvX2xvY2FsX2NvbWJp bmVkIFVMbWFwRVVDX0pJU18yMDA0X2NvbWJpbmVkWyAyNSBdID0geworc3RhdGljIGNvbnN0 IHBnX3V0Zl90b19sb2NhbF9jb21iaW5lZCBVTG1hcEVVQ19KSVNfMjAwNF9jb21iaW5lZFsy NV0gPSB7CiAgIHsweDAwMDBjM2E2LCAweDAwMDBjYzgwLCAweGFiYzR9LAkvKiBVKzAwRTYr MDMwMAkgCVsyMDAwXSAqLwogICB7MHgwMDAwYzk5NCwgMHgwMDAwY2M4MCwgMHhhYmM4fSwJ LyogVSswMjU0KzAzMDAJIAlbMjAwMF0gKi8KICAgezB4MDAwMGM5OTQsIDB4MDAwMGNjODEs IDB4YWJjOX0sCS8qIFUrMDI1NCswMzAxCSAJWzIwMDBdICovCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9tYi9Vbmljb2RlL3V0ZjhfdG9fc2hpZnRfamlzXzIwMDQubWFwIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS91dGY4X3RvX3NoaWZ0X2ppc18yMDA0Lm1h cAppbmRleCBiNzU2YjVmMTU3Li4yMDJlYmIyNWMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9tYi9Vbmljb2RlL3V0ZjhfdG9fc2hpZnRfamlzXzIwMDQubWFwCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvdXRmOF90b19zaGlmdF9qaXNfMjAwNC5tYXAK QEAgLTc2NTYsNyArNzY1Niw3IEBAIHN0YXRpYyBjb25zdCB1aW50MTYgc2hpZnRfamlzXzIw MDRfZnJvbV91bmljb2RlX3RyZWVfdGFibGVbMzkxOTZdID0KIH07CiAKIC8qIENvbWJpbmVk IGNoYXJhY3RlciBtYXAgKi8KLXN0YXRpYyBjb25zdCBwZ191dGZfdG9fbG9jYWxfY29tYmlu ZWQgVUxtYXBTSElGVF9KSVNfMjAwNF9jb21iaW5lZFsgMjUgXSA9IHsKK3N0YXRpYyBjb25z dCBwZ191dGZfdG9fbG9jYWxfY29tYmluZWQgVUxtYXBTSElGVF9KSVNfMjAwNF9jb21iaW5l ZFsyNV0gPSB7CiAgIHsweDAwMDBjM2E2LCAweDAwMDBjYzgwLCAweDg2NjN9LAkvKiBVKzAw RTYrMDMwMAkgCVsyMDAwXSAqLwogICB7MHgwMDAwYzk5NCwgMHgwMDAwY2M4MCwgMHg4NjY3 fSwJLyogVSswMjU0KzAzMDAJIAlbMjAwMF0gKi8KICAgezB4MDAwMGM5OTQsIDB4MDAwMGNj ODEsIDB4ODY2OH0sCS8qIFUrMDI1NCswMzAxCSAJWzIwMDBdICovCi0tIAoyLjMyLjAKCg== --------------A16D4B182975676D8B277FA2 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v1-0004-Simplify-code-generation-code.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v1-0004-Simplify-code-generation-code.patch" RnJvbSA5ZGQzYTNiZTljYjA4ZmQwNWRiMjZhY2JiZTQ4MDBmNGJmODJlNWFiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMiBKdW4gMjAyMSAwOTowNjoyOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgNC81XSBTaW1wbGlmeSBjb2RlIGdlbmVyYXRpb24gY29kZQoKY29udnV0 aWxzLnBtIHNwZW50IGEgZmFpciBhbW91bnQgb2YgZWZmb3J0IHRvIGF2b2lkIHByaW50aW5n IG91dCBhCnRyYWlsaW5nIGNvbW1hIGluIGFuIGFycmF5IGluaXRpYWxpemVyLCB3aGljaCBp c24ndCBhY3R1YWxseQpuZWNlc3NhcnkuICBXZSBjYW4gc2ltcGxpZnkgdGhhdCBjb2RlLiAg VGhpcyBhbHNvIG1ha2VzIHRoZSBnZW5lcmF0ZWQKY29kZSBsb29rIGJldHRlciBpbmRlbnRl ZC4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2NvbnZ1dGlscy5wbSAgICAg fCAzNyArKysrKysrLS0tLS0tLS0tLS0tCiAuLi4vdXRpbHMvbWIvVW5pY29kZS9ldWNfamlz XzIwMDRfdG9fdXRmOC5tYXAgfCAgMiArLQogLi4uL21iL1VuaWNvZGUvc2hpZnRfamlzXzIw MDRfdG9fdXRmOC5tYXAgICAgIHwgIDIgKy0KIC4uLi91dGlscy9tYi9Vbmljb2RlL3V0Zjhf dG9fZXVjX2ppc18yMDA0Lm1hcCB8ICAyICstCiAuLi4vbWIvVW5pY29kZS91dGY4X3RvX3No aWZ0X2ppc18yMDA0Lm1hcCAgICAgfCAgMiArLQogNSBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNl cnRpb25zKCspLCAyNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9tYi9Vbmljb2RlL2NvbnZ1dGlscy5wbSBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL1Vu aWNvZGUvY29udnV0aWxzLnBtCmluZGV4IDgzNjllOTFiMmQuLjlhMjMwZTZkZmUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvY29udnV0aWxzLnBtCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvY29udnV0aWxzLnBtCkBAIC0xNjksMzQg KzE2OSwyOSBAQCBzdWIgcHJpbnRfZnJvbV91dGY4X2NvbWJpbmVkX21hcAogewogCW15ICgk b3V0LCAkY2hhcnNldCwgJHRhYmxlLCAkdmVyYm9zZSkgPSBAXzsKIAotCW15ICRsYXN0X2Nv bW1lbnQgPSAiIjsKLQogCXByaW50ZiAkb3V0ICJcbi8qIENvbWJpbmVkIGNoYXJhY3RlciBt YXAgKi9cbiI7CiAJcHJpbnRmICRvdXQKIAkgICJzdGF0aWMgY29uc3QgcGdfdXRmX3RvX2xv Y2FsX2NvbWJpbmVkIFVMbWFwJHtjaGFyc2V0fV9jb21iaW5lZFslZF0gPSB7XG4iLAogCSAg c2NhbGFyKEAkdGFibGUpOwotCW15ICRmaXJzdCA9IDE7CiAJZm9yZWFjaCBteSAkaSAoc29y dCB7ICRhLT57dXRmOH0gPD0+ICRiLT57dXRmOH0gfSBAJHRhYmxlKQogCXsKLQkJcHJpbnQo JG91dCAiLCIpIGlmICghJGZpcnN0KTsKLQkJJGZpcnN0ID0gMDsKLQkJcHJpbnQgJG91dCAi XHQvKiAkbGFzdF9jb21tZW50ICovIgotCQkgIGlmICgkdmVyYm9zZSAmJiAkbGFzdF9jb21t ZW50IG5lICIiKTsKKwkJbXkgJGNvbW1lbnQ7CiAKLQkJcHJpbnRmICRvdXQgIlxuICB7MHgl MDh4LCAweCUwOHgsIDB4JTA0eH0iLAorCQlwcmludGYgJG91dCAiICB7MHglMDh4LCAweCUw OHgsIDB4JTA0eH0sIiwKIAkJICAkaS0+e3V0Zjh9LCAkaS0+e3V0Zjhfc2Vjb25kfSwgJGkt Pntjb2RlfTsKIAkJaWYgKCR2ZXJib3NlID49IDIpCiAJCXsKLQkJCSRsYXN0X2NvbW1lbnQg PQorCQkJJGNvbW1lbnQgPQogCQkJICBzcHJpbnRmKCIlczolZCAlcyIsICRpLT57Zn0sICRp LT57bH0sICRpLT57Y29tbWVudH0pOwogCQl9CiAJCWVsc2lmICgkdmVyYm9zZSA+PSAxKQog CQl7Ci0JCQkkbGFzdF9jb21tZW50ID0gJGktPntjb21tZW50fTsKKwkJCSRjb21tZW50ID0g JGktPntjb21tZW50fTsKIAkJfQorCQlwcmludCAkb3V0ICJcdC8qICRjb21tZW50ICovIiBp ZiAkY29tbWVudDsKKwkJcHJpbnQgJG91dCAiXG4iOwogCX0KLQlwcmludCAkb3V0ICJcdC8q ICRsYXN0X2NvbW1lbnQgKi8iIGlmICgkdmVyYm9zZSAmJiAkbGFzdF9jb21tZW50IG5lICIi KTsKLQlwcmludCAkb3V0ICJcbn07XG4iOworCXByaW50ICRvdXQgIn07XG4iOwogCXJldHVy bjsKIH0KIApAQCAtMjA0LDggKzE5OSw2IEBAIHN1YiBwcmludF90b191dGY4X2NvbWJpbmVk X21hcAogewogCW15ICgkb3V0LCAkY2hhcnNldCwgJHRhYmxlLCAkdmVyYm9zZSkgPSBAXzsK IAotCW15ICRsYXN0X2NvbW1lbnQgPSAiIjsKLQogCXByaW50ZiAkb3V0ICJcbi8qIENvbWJp bmVkIGNoYXJhY3RlciBtYXAgKi9cbiI7CiAJcHJpbnRmICRvdXQKIAkgICJzdGF0aWMgY29u c3QgcGdfbG9jYWxfdG9fdXRmX2NvbWJpbmVkIExVbWFwJHtjaGFyc2V0fV9jb21iaW5lZFsl ZF0gPSB7XG4iLApAQCAtMjE0LDI2ICsyMDcsMjQgQEAgc3ViIHByaW50X3RvX3V0ZjhfY29t YmluZWRfbWFwCiAJbXkgJGZpcnN0ID0gMTsKIAlmb3JlYWNoIG15ICRpIChzb3J0IHsgJGEt Pntjb2RlfSA8PT4gJGItPntjb2RlfSB9IEAkdGFibGUpCiAJewotCQlwcmludCgkb3V0ICIs IikgaWYgKCEkZmlyc3QpOwotCQkkZmlyc3QgPSAwOwotCQlwcmludCAkb3V0ICJcdC8qICRs YXN0X2NvbW1lbnQgKi8iCi0JCSAgaWYgKCR2ZXJib3NlICYmICRsYXN0X2NvbW1lbnQgbmUg IiIpOworCQlteSAkY29tbWVudDsKIAotCQlwcmludGYgJG91dCAiXG4gIHsweCUwNHgsIDB4 JTA4eCwgMHglMDh4fSIsCisJCXByaW50ZiAkb3V0ICIgIHsweCUwNHgsIDB4JTA4eCwgMHgl MDh4fSwiLAogCQkgICRpLT57Y29kZX0sICRpLT57dXRmOH0sICRpLT57dXRmOF9zZWNvbmR9 OwogCiAJCWlmICgkdmVyYm9zZSA+PSAyKQogCQl7Ci0JCQkkbGFzdF9jb21tZW50ID0KKwkJ CSRjb21tZW50ID0KIAkJCSAgc3ByaW50ZigiJXM6JWQgJXMiLCAkaS0+e2Z9LCAkaS0+e2x9 LCAkaS0+e2NvbW1lbnR9KTsKIAkJfQogCQllbHNpZiAoJHZlcmJvc2UgPj0gMSkKIAkJewot CQkJJGxhc3RfY29tbWVudCA9ICRpLT57Y29tbWVudH07CisJCQkkY29tbWVudCA9ICRpLT57 Y29tbWVudH07CiAJCX0KKwkJcHJpbnQgJG91dCAiXHQvKiAkY29tbWVudCAqLyIgaWYgJGNv bW1lbnQ7CisJCXByaW50ICRvdXQgIlxuIjsKIAl9Ci0JcHJpbnQgJG91dCAiXHQvKiAkbGFz dF9jb21tZW50ICovIiBpZiAoJHZlcmJvc2UgJiYgJGxhc3RfY29tbWVudCBuZSAiIik7Ci0J cHJpbnQgJG91dCAiXG59O1xuIjsKKwlwcmludCAkb3V0ICJ9O1xuIjsKIAlyZXR1cm47CiB9 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvZXVjX2ppc18y MDA0X3RvX3V0ZjgubWFwIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9ldWNfamlz XzIwMDRfdG9fdXRmOC5tYXAKaW5kZXggM2E4ZmM5ZDI2Zi4uNzA5NmZiYjI2MyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9ldWNfamlzXzIwMDRfdG9fdXRm OC5tYXAKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9ldWNfamlzXzIwMDRf dG9fdXRmOC5tYXAKQEAgLTM0MzksNSArMzQzOSw1IEBAIHN0YXRpYyBjb25zdCBwZ19sb2Nh bF90b191dGZfY29tYmluZWQgTFVtYXBFVUNfSklTXzIwMDRfY29tYmluZWRbMjVdID0gewog ICB7MHhhYmNlLCAweDAwMDBjOTlhLCAweDAwMDBjYzgwfSwJLyogVSswMjVBKzAzMDAJIAlb MjAwMF0gKi8KICAgezB4YWJjZiwgMHgwMDAwYzk5YSwgMHgwMDAwY2M4MX0sCS8qIFUrMDI1 QSswMzAxCSAJWzIwMDBdICovCiAgIHsweGFiZTUsIDB4MDAwMGNiYTksIDB4MDAwMGNiYTV9 LAkvKiBVKzAyRTkrMDJFNQkgCVsyMDAwXSAqLwotICB7MHhhYmU2LCAweDAwMDBjYmE1LCAw eDAwMDBjYmE5fQkvKiBVKzAyRTUrMDJFOQkgCVsyMDAwXSAqLworICB7MHhhYmU2LCAweDAw MDBjYmE1LCAweDAwMDBjYmE5fSwJLyogVSswMkU1KzAyRTkJIAlbMjAwMF0gKi8KIH07CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL3NoaWZ0X2ppc18yMDA0 X3RvX3V0ZjgubWFwIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS9zaGlmdF9qaXNf MjAwNF90b191dGY4Lm1hcAppbmRleCAzYzEwN2NiYjdiLi5jZDBiZDdhNDUyIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL3NoaWZ0X2ppc18yMDA0X3RvX3V0 ZjgubWFwCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvc2hpZnRfamlzXzIw MDRfdG9fdXRmOC5tYXAKQEAgLTMyMzAsNSArMzIzMCw1IEBAIHN0YXRpYyBjb25zdCBwZ19s b2NhbF90b191dGZfY29tYmluZWQgTFVtYXBTSElGVF9KSVNfMjAwNF9jb21iaW5lZFsyNV0g PSB7CiAgIHsweDg2NmQsIDB4MDAwMGM5OWEsIDB4MDAwMGNjODB9LAkvKiBVKzAyNUErMDMw MAkgCVsyMDAwXSAqLwogICB7MHg4NjZlLCAweDAwMDBjOTlhLCAweDAwMDBjYzgxfSwJLyog VSswMjVBKzAzMDEJIAlbMjAwMF0gKi8KICAgezB4ODY4NSwgMHgwMDAwY2JhOSwgMHgwMDAw Y2JhNX0sCS8qIFUrMDJFOSswMkU1CSAJWzIwMDBdICovCi0gIHsweDg2ODYsIDB4MDAwMGNi YTUsIDB4MDAwMGNiYTl9CS8qIFUrMDJFNSswMkU5CSAJWzIwMDBdICovCisgIHsweDg2ODYs IDB4MDAwMGNiYTUsIDB4MDAwMGNiYTl9LAkvKiBVKzAyRTUrMDJFOQkgCVsyMDAwXSAqLwog fTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvdXRmOF90b19l dWNfamlzXzIwMDQubWFwIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS91dGY4X3Rv X2V1Y19qaXNfMjAwNC5tYXAKaW5kZXggMGQ0NzQ2MzgwNS4uM2RlOWQ2MzYwZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS91dGY4X3RvX2V1Y19qaXNfMjAw NC5tYXAKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS91dGY4X3RvX2V1Y19q aXNfMjAwNC5tYXAKQEAgLTEyNTYzLDUgKzEyNTYzLDUgQEAgc3RhdGljIGNvbnN0IHBnX3V0 Zl90b19sb2NhbF9jb21iaW5lZCBVTG1hcEVVQ19KSVNfMjAwNF9jb21iaW5lZFsyNV0gPSB7 CiAgIHsweDAwZTM4MmJiLCAweDAwZTM4MjlhLCAweGE1ZmN9LAkvKiBVKzMwQkIrMzA5QQkg CVsyMDAwXSAqLwogICB7MHgwMGUzODM4NCwgMHgwMGUzODI5YSwgMHhhNWZkfSwJLyogVSsz MEM0KzMwOUEJIAlbMjAwMF0gKi8KICAgezB4MDBlMzgzODgsIDB4MDBlMzgyOWEsIDB4YTVm ZX0sCS8qIFUrMzBDOCszMDlBCSAJWzIwMDBdICovCi0gIHsweDAwZTM4N2I3LCAweDAwZTM4 MjlhLCAweGE2Zjh9CS8qIFUrMzFGNyszMDlBCSAJWzIwMDBdICovCisgIHsweDAwZTM4N2I3 LCAweDAwZTM4MjlhLCAweGE2Zjh9LAkvKiBVKzMxRjcrMzA5QQkgCVsyMDAwXSAqLwogfTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvdXRmOF90b19zaGlm dF9qaXNfMjAwNC5tYXAgYi9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL3V0ZjhfdG9f c2hpZnRfamlzXzIwMDQubWFwCmluZGV4IDIwMmViYjI1YzEuLjkyNGNjYzExNGUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21iL1VuaWNvZGUvdXRmOF90b19zaGlmdF9qaXNf MjAwNC5tYXAKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWIvVW5pY29kZS91dGY4X3RvX3No aWZ0X2ppc18yMDA0Lm1hcApAQCAtNzY4MSw1ICs3NjgxLDUgQEAgc3RhdGljIGNvbnN0IHBn X3V0Zl90b19sb2NhbF9jb21iaW5lZCBVTG1hcFNISUZUX0pJU18yMDA0X2NvbWJpbmVkWzI1 XSA9IHsKICAgezB4MDBlMzgyYmIsIDB4MDBlMzgyOWEsIDB4ODM5Y30sCS8qIFUrMzBCQisz MDlBCSAJWzIwMDBdICovCiAgIHsweDAwZTM4Mzg0LCAweDAwZTM4MjlhLCAweDgzOWR9LAkv KiBVKzMwQzQrMzA5QQkgCVsyMDAwXSAqLwogICB7MHgwMGUzODM4OCwgMHgwMGUzODI5YSwg MHg4MzllfSwJLyogVSszMEM4KzMwOUEJIAlbMjAwMF0gKi8KLSAgezB4MDBlMzg3YjcsIDB4 MDBlMzgyOWEsIDB4ODNmNn0JLyogVSszMUY3KzMwOUEJIAlbMjAwMF0gKi8KKyAgezB4MDBl Mzg3YjcsIDB4MDBlMzgyOWEsIDB4ODNmNn0sCS8qIFUrMzFGNyszMDlBCSAJWzIwMDBdICov CiB9OwotLSAKMi4zMi4wCgo= --------------A16D4B182975676D8B277FA2 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v1-0005-Fix-indentation-in-generated-output.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v1-0005-Fix-indentation-in-generated-output.patch" RnJvbSA5ZWQxYzk2MGZlOWVhNWFjMzdmYzg4YjRlNjA4OGJjM2YyMzg3Y2I0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMiBKdW4gMjAyMSAwOTowNjoyOCArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjEgNS81XSBGaXggaW5kZW50YXRpb24gaW4gZ2VuZXJhdGVkIG91dHB1dAoK LS0tCiBzcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2NvbnZ1dGlscy5wbSB8IDY2ICsr KysrKysrKysrLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygr KSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWIv VW5pY29kZS9jb252dXRpbHMucG0gYi9zcmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2Nv bnZ1dGlscy5wbQppbmRleCA5YTIzMGU2ZGZlLi40MTgyOTEwZjk0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9tYi9Vbmljb2RlL2NvbnZ1dGlscy5wbQorKysgYi9zcmMvYmFj a2VuZC91dGlscy9tYi9Vbmljb2RlL2NvbnZ1dGlscy5wbQpAQCAtMTc3LDcgKzE3Nyw3IEBA IHN1YiBwcmludF9mcm9tX3V0ZjhfY29tYmluZWRfbWFwCiAJewogCQlteSAkY29tbWVudDsK IAotCQlwcmludGYgJG91dCAiICB7MHglMDh4LCAweCUwOHgsIDB4JTA0eH0sIiwKKwkJcHJp bnRmICRvdXQgIlx0ezB4JTA4eCwgMHglMDh4LCAweCUwNHh9LCIsCiAJCSAgJGktPnt1dGY4 fSwgJGktPnt1dGY4X3NlY29uZH0sICRpLT57Y29kZX07CiAJCWlmICgkdmVyYm9zZSA+PSAy KQogCQl7CkBAIC0yMDksNyArMjA5LDcgQEAgc3ViIHByaW50X3RvX3V0ZjhfY29tYmluZWRf bWFwCiAJewogCQlteSAkY29tbWVudDsKIAotCQlwcmludGYgJG91dCAiICB7MHglMDR4LCAw eCUwOHgsIDB4JTA4eH0sIiwKKwkJcHJpbnRmICRvdXQgIlx0ezB4JTA0eCwgMHglMDh4LCAw eCUwOHh9LCIsCiAJCSAgJGktPntjb2RlfSwgJGktPnt1dGY4fSwgJGktPnt1dGY4X3NlY29u ZH07CiAKIAkJaWYgKCR2ZXJib3NlID49IDIpCkBAIC01NDAsNDYgKzU0MCw0NiBAQCBzdWIg cHJpbnRfcmFkaXhfdGFibGUKIAlwcmludGYgJG91dCAie1xuIjsKIAlpZiAoJGRhdGF0eXBl IGVxICJ1aW50MTYiKQogCXsKLQkJcHJpbnQgJG91dCAiICAke3RibG5hbWV9X3RhYmxlLFxu IjsKLQkJcHJpbnQgJG91dCAiICBOVUxMLCAvKiAzMi1iaXQgdGFibGUgbm90IHVzZWQgKi9c biI7CisJCXByaW50ICRvdXQgIlx0JHt0YmxuYW1lfV90YWJsZSxcbiI7CisJCXByaW50ICRv dXQgIlx0TlVMTCwgLyogMzItYml0IHRhYmxlIG5vdCB1c2VkICovXG4iOwogCX0KIAlpZiAo JGRhdGF0eXBlIGVxICJ1aW50MzIiKQogCXsKLQkJcHJpbnQgJG91dCAiICBOVUxMLCAvKiAx Ni1iaXQgdGFibGUgbm90IHVzZWQgKi9cbiI7Ci0JCXByaW50ICRvdXQgIiAgJHt0YmxuYW1l fV90YWJsZSxcbiI7CisJCXByaW50ICRvdXQgIlx0TlVMTCwgLyogMTYtYml0IHRhYmxlIG5v dCB1c2VkICovXG4iOworCQlwcmludCAkb3V0ICJcdCR7dGJsbmFtZX1fdGFibGUsXG4iOwog CX0KIAlwcmludGYgJG91dCAiXG4iOwotCXByaW50ZiAkb3V0ICIgIDB4JTA0eCwgLyogb2Zm c2V0IG9mIHRhYmxlIGZvciAxLWJ5dGUgaW5wdXRzICovXG4iLAorCXByaW50ZiAkb3V0ICJc dDB4JTA0eCwgLyogb2Zmc2V0IG9mIHRhYmxlIGZvciAxLWJ5dGUgaW5wdXRzICovXG4iLAog CSAgJGIxcm9vdDsKLQlwcmludGYgJG91dCAiICAweCUwMngsIC8qIGIxX2xvd2VyICovXG4i LCAkYjFfbG93ZXI7Ci0JcHJpbnRmICRvdXQgIiAgMHglMDJ4LCAvKiBiMV91cHBlciAqL1xu IiwgJGIxX3VwcGVyOworCXByaW50ZiAkb3V0ICJcdDB4JTAyeCwgLyogYjFfbG93ZXIgKi9c biIsICRiMV9sb3dlcjsKKwlwcmludGYgJG91dCAiXHQweCUwMngsIC8qIGIxX3VwcGVyICov XG4iLCAkYjFfdXBwZXI7CiAJcHJpbnRmICRvdXQgIlxuIjsKLQlwcmludGYgJG91dCAiICAw eCUwNHgsIC8qIG9mZnNldCBvZiB0YWJsZSBmb3IgMi1ieXRlIGlucHV0cyAqL1xuIiwKKwlw cmludGYgJG91dCAiXHQweCUwNHgsIC8qIG9mZnNldCBvZiB0YWJsZSBmb3IgMi1ieXRlIGlu cHV0cyAqL1xuIiwKIAkgICRiMnJvb3Q7Ci0JcHJpbnRmICRvdXQgIiAgMHglMDJ4LCAvKiBi Ml8xX2xvd2VyICovXG4iLCAkYjJfMV9sb3dlcjsKLQlwcmludGYgJG91dCAiICAweCUwMngs IC8qIGIyXzFfdXBwZXIgKi9cbiIsICRiMl8xX3VwcGVyOwotCXByaW50ZiAkb3V0ICIgIDB4 JTAyeCwgLyogYjJfMl9sb3dlciAqL1xuIiwgJGIyXzJfbG93ZXI7Ci0JcHJpbnRmICRvdXQg IiAgMHglMDJ4LCAvKiBiMl8yX3VwcGVyICovXG4iLCAkYjJfMl91cHBlcjsKKwlwcmludGYg JG91dCAiXHQweCUwMngsIC8qIGIyXzFfbG93ZXIgKi9cbiIsICRiMl8xX2xvd2VyOworCXBy aW50ZiAkb3V0ICJcdDB4JTAyeCwgLyogYjJfMV91cHBlciAqL1xuIiwgJGIyXzFfdXBwZXI7 CisJcHJpbnRmICRvdXQgIlx0MHglMDJ4LCAvKiBiMl8yX2xvd2VyICovXG4iLCAkYjJfMl9s b3dlcjsKKwlwcmludGYgJG91dCAiXHQweCUwMngsIC8qIGIyXzJfdXBwZXIgKi9cbiIsICRi Ml8yX3VwcGVyOwogCXByaW50ZiAkb3V0ICJcbiI7Ci0JcHJpbnRmICRvdXQgIiAgMHglMDR4 LCAvKiBvZmZzZXQgb2YgdGFibGUgZm9yIDMtYnl0ZSBpbnB1dHMgKi9cbiIsCisJcHJpbnRm ICRvdXQgIlx0MHglMDR4LCAvKiBvZmZzZXQgb2YgdGFibGUgZm9yIDMtYnl0ZSBpbnB1dHMg Ki9cbiIsCiAJICAkYjNyb290OwotCXByaW50ZiAkb3V0ICIgIDB4JTAyeCwgLyogYjNfMV9s b3dlciAqL1xuIiwgJGIzXzFfbG93ZXI7Ci0JcHJpbnRmICRvdXQgIiAgMHglMDJ4LCAvKiBi M18xX3VwcGVyICovXG4iLCAkYjNfMV91cHBlcjsKLQlwcmludGYgJG91dCAiICAweCUwMngs IC8qIGIzXzJfbG93ZXIgKi9cbiIsICRiM18yX2xvd2VyOwotCXByaW50ZiAkb3V0ICIgIDB4 JTAyeCwgLyogYjNfMl91cHBlciAqL1xuIiwgJGIzXzJfdXBwZXI7Ci0JcHJpbnRmICRvdXQg IiAgMHglMDJ4LCAvKiBiM18zX2xvd2VyICovXG4iLCAkYjNfM19sb3dlcjsKLQlwcmludGYg JG91dCAiICAweCUwMngsIC8qIGIzXzNfdXBwZXIgKi9cbiIsICRiM18zX3VwcGVyOworCXBy aW50ZiAkb3V0ICJcdDB4JTAyeCwgLyogYjNfMV9sb3dlciAqL1xuIiwgJGIzXzFfbG93ZXI7 CisJcHJpbnRmICRvdXQgIlx0MHglMDJ4LCAvKiBiM18xX3VwcGVyICovXG4iLCAkYjNfMV91 cHBlcjsKKwlwcmludGYgJG91dCAiXHQweCUwMngsIC8qIGIzXzJfbG93ZXIgKi9cbiIsICRi M18yX2xvd2VyOworCXByaW50ZiAkb3V0ICJcdDB4JTAyeCwgLyogYjNfMl91cHBlciAqL1xu IiwgJGIzXzJfdXBwZXI7CisJcHJpbnRmICRvdXQgIlx0MHglMDJ4LCAvKiBiM18zX2xvd2Vy ICovXG4iLCAkYjNfM19sb3dlcjsKKwlwcmludGYgJG91dCAiXHQweCUwMngsIC8qIGIzXzNf dXBwZXIgKi9cbiIsICRiM18zX3VwcGVyOwogCXByaW50ZiAkb3V0ICJcbiI7Ci0JcHJpbnRm ICRvdXQgIiAgMHglMDR4LCAvKiBvZmZzZXQgb2YgdGFibGUgZm9yIDMtYnl0ZSBpbnB1dHMg Ki9cbiIsCisJcHJpbnRmICRvdXQgIlx0MHglMDR4LCAvKiBvZmZzZXQgb2YgdGFibGUgZm9y IDMtYnl0ZSBpbnB1dHMgKi9cbiIsCiAJICAkYjRyb290OwotCXByaW50ZiAkb3V0ICIgIDB4 JTAyeCwgLyogYjRfMV9sb3dlciAqL1xuIiwgJGI0XzFfbG93ZXI7Ci0JcHJpbnRmICRvdXQg IiAgMHglMDJ4LCAvKiBiNF8xX3VwcGVyICovXG4iLCAkYjRfMV91cHBlcjsKLQlwcmludGYg JG91dCAiICAweCUwMngsIC8qIGI0XzJfbG93ZXIgKi9cbiIsICRiNF8yX2xvd2VyOwotCXBy aW50ZiAkb3V0ICIgIDB4JTAyeCwgLyogYjRfMl91cHBlciAqL1xuIiwgJGI0XzJfdXBwZXI7 Ci0JcHJpbnRmICRvdXQgIiAgMHglMDJ4LCAvKiBiNF8zX2xvd2VyICovXG4iLCAkYjRfM19s b3dlcjsKLQlwcmludGYgJG91dCAiICAweCUwMngsIC8qIGI0XzNfdXBwZXIgKi9cbiIsICRi NF8zX3VwcGVyOwotCXByaW50ZiAkb3V0ICIgIDB4JTAyeCwgLyogYjRfNF9sb3dlciAqL1xu IiwgJGI0XzRfbG93ZXI7Ci0JcHJpbnRmICRvdXQgIiAgMHglMDJ4ICAvKiBiNF80X3VwcGVy ICovXG4iLCAkYjRfNF91cHBlcjsKKwlwcmludGYgJG91dCAiXHQweCUwMngsIC8qIGI0XzFf bG93ZXIgKi9cbiIsICRiNF8xX2xvd2VyOworCXByaW50ZiAkb3V0ICJcdDB4JTAyeCwgLyog YjRfMV91cHBlciAqL1xuIiwgJGI0XzFfdXBwZXI7CisJcHJpbnRmICRvdXQgIlx0MHglMDJ4 LCAvKiBiNF8yX2xvd2VyICovXG4iLCAkYjRfMl9sb3dlcjsKKwlwcmludGYgJG91dCAiXHQw eCUwMngsIC8qIGI0XzJfdXBwZXIgKi9cbiIsICRiNF8yX3VwcGVyOworCXByaW50ZiAkb3V0 ICJcdDB4JTAyeCwgLyogYjRfM19sb3dlciAqL1xuIiwgJGI0XzNfbG93ZXI7CisJcHJpbnRm ICRvdXQgIlx0MHglMDJ4LCAvKiBiNF8zX3VwcGVyICovXG4iLCAkYjRfM191cHBlcjsKKwlw cmludGYgJG91dCAiXHQweCUwMngsIC8qIGI0XzRfbG93ZXIgKi9cbiIsICRiNF80X2xvd2Vy OworCXByaW50ZiAkb3V0ICJcdDB4JTAyeCAgLyogYjRfNF91cHBlciAqL1xuIiwgJGI0XzRf dXBwZXI7CiAJcHJpbnQgJG91dCAifTtcbiI7CiAJcHJpbnQgJG91dCAiXG4iOwogCXByaW50 ICRvdXQgInN0YXRpYyBjb25zdCAkZGF0YXR5cGUgJHt0YmxuYW1lfV90YWJsZVskdGJsc2l6 ZV0gPVxuIjsKQEAgLTU4OSw3ICs1ODksNyBAQCBzdWIgcHJpbnRfcmFkaXhfdGFibGUKIAlm b3JlYWNoIG15ICRzZWcgKEBzZWdtZW50cykKIAl7CiAJCXByaW50ZiAkb3V0ICJcbiI7Ci0J CXByaW50ZiAkb3V0ICIgIC8qKiogJXMgLSBvZmZzZXQgMHglMDV4ICoqKi9cbiIsICRzZWct PntoZWFkZXJ9LCAkb2ZmOworCQlwcmludGYgJG91dCAiXHQvKioqICVzIC0gb2Zmc2V0IDB4 JTA1eCAqKiovXG4iLCAkc2VnLT57aGVhZGVyfSwgJG9mZjsKIAkJcHJpbnRmICRvdXQgIlxu IjsKIAogCQlmb3IgKG15ICRpID0gJHNlZy0+e21pbl9pZHh9OyAkaSA8PSAkc2VnLT57bWF4 X2lkeH07KQpAQCAtNTk3LDcgKzU5Nyw3IEBAIHN1YiBwcmludF9yYWRpeF90YWJsZQogCiAJ CQkjIFByaW50IHRoZSBuZXh0IGxpbmUncyB3b3J0aCBvZiB2YWx1ZXMuCiAJCQkjIFhYWCBw YWQgdG8gYmVnaW4gYXQgYSBuaWNlIGJvdW5kYXJ5Ci0JCQlwcmludGYgJG91dCAiICAvKiAl MDJ4ICovICIsICRpOworCQkJcHJpbnRmICRvdXQgIlx0LyogJTAyeCAqLyIsICRpOwogCQkJ Zm9yIChteSAkaiA9IDA7CiAJCQkJJGogPCAkdmFsc19wZXJfbGluZSAmJiAkaSA8PSAkc2Vn LT57bWF4X2lkeH07ICRqKyspCiAJCQl7CkBAIC02MTcsNyArNjE3LDcgQEAgc3ViIHByaW50 X3JhZGl4X3RhYmxlCiAJCWlmICgkc2VnLT57b3ZlcmxhaWRfdHJhaWxfemVyb3N9KQogCQl7 CiAJCQlwcmludGYgJG91dAotCQkJICAiICAgIC8qICRzZWctPntvdmVybGFpZF90cmFpbF96 ZXJvc30gdHJhaWxpbmcgemVybyB2YWx1ZXMgc2hhcmVkIHdpdGggbmV4dCBzZWdtZW50ICov XG4iOworCQkJICAiXHQvKiAkc2VnLT57b3ZlcmxhaWRfdHJhaWxfemVyb3N9IHRyYWlsaW5n IHplcm8gdmFsdWVzIHNoYXJlZCB3aXRoIG5leHQgc2VnbWVudCAqL1xuIjsKIAkJfQogCX0K IAotLSAKMi4zMi4wCgo= --------------A16D4B182975676D8B277FA2--