From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66335 invoked by alias); 15 Apr 2015 02:44:14 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 66318 invoked by uid 89); 15 Apr 2015 02:44:13 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=3.7 required=5.0 tests=AWL,BAYES_99,BAYES_999,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS,UNSUBSCRIBE_BODY autolearn=no version=3.3.2 X-HELO: mail-qk0-f178.google.com Received: from mail-qk0-f178.google.com (HELO mail-qk0-f178.google.com) (209.85.220.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 15 Apr 2015 02:44:09 +0000 Received: by qkgx75 with SMTP id x75so51664394qkg.1 for ; Tue, 14 Apr 2015 19:44:06 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.202.61.215 with SMTP id k206mr13690686oia.78.1429065816444; Tue, 14 Apr 2015 19:43:36 -0700 (PDT) Received: by 10.76.54.14 with HTTP; Tue, 14 Apr 2015 19:43:36 -0700 (PDT) In-Reply-To: <20150415005524.GB31531@bubble.grove.modra.org> References: <20150415005524.GB31531@bubble.grove.modra.org> Date: Wed, 15 Apr 2015 02:44:00 -0000 Message-ID: Subject: Re: PATCH: Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] to ld From: "H.J. Lu" To: Binutils Content-Type: multipart/mixed; boundary=001a113dd12859b3d80513ba50ce X-IsSubscribed: yes X-SW-Source: 2015-04/txt/msg00233.txt.bz2 --001a113dd12859b3d80513ba50ce Content-Type: text/plain; charset=UTF-8 Content-length: 1856 On Tue, Apr 14, 2015 at 5:55 PM, Alan Modra wrote: > On Mon, Apr 13, 2015 at 05:38:24AM -0700, H.J. Lu wrote: >> On Sun, Apr 12, 2015 at 6:13 PM, Alan Modra wrote: >> > On Thu, Apr 09, 2015 at 03:07:20PM -0700, H.J. Lu wrote: >> >> + if (arg->link_info >> >> + && (arg->link_info->compress_debug & COMPRESS_DEBUG) >> >> + && arg->link_info->compress_debug != COMPRESS_DEBUG_GABI_ZLIB >> >> + && (asect->flags & SEC_DEBUGGING) >> >> + && name[1] == 'd' >> >> + && name[6] == '_') >> > >> > Here and in a couple of other places you omit checking the full prefix >> > of the name. Are you certain you won't see something like a ".de" >> > section here? It you might, then name[6] is a buffer overflow and a >> > potential segfault. >> >> elf.c has >> >> if ((flags & SEC_ALLOC) == 0) >> { >> /* The debugging sections appear to be recognized only by name, >> not any sort of flag. Their SEC_ALLOC bits are cleared. */ > > OK, good. > >> Here is the completed patch. OK for master? > > Would you mind looking at doing this a little cleaner? The patch as > it stands looks very much like a bolt-on. I mean, you probably > wouldn't write the code this way if elflink.c had compression in mind > in the beginning.. > > So, I'm wondering whether things would look better if > elf_link_input_bfd allocated the extra buffer needed rather than in > both _bfd_write_merged_section and _bfd_elf_set_section_contents. > Of course, _bfd_write_merged_section would need two extra parameters, > contents and offset, and write to "contents" if non-NULL rather than > to the output file. Thanks for the suggestion. I allocated the buffer in bfd_elf_final_link instead without adding extra arguments to _bfd_write_merged_section. Here is the updated patch. OK for master? -- H.J. --001a113dd12859b3d80513ba50ce Content-Type: text/x-patch; charset=US-ASCII; name="0001-Add-compress-debug-sections-none-zlib-zlib-gnu-zlib-.patch" Content-Disposition: attachment; filename="0001-Add-compress-debug-sections-none-zlib-zlib-gnu-zlib-.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i8i4t1ox0 Content-length: 46499 RnJvbSA4YjE2Y2JmODE5M2M5YmYyNmNkM2MwM2QxN2EzZjlhZmI3OTcxODc5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IE1vbiwgMTMgQXByIDIwMTUgMDU6 MzA6NTIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBBZGQgLS1jb21wcmVzcy1k ZWJ1Zy1zZWN0aW9ucz1bbm9uZXx6bGlifHpsaWItZ251fHpsaWItZ2FiaV0K ClRoaXMgcGF0Y2ggYWRkcyAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPVtu b25lfHpsaWJ8emxpYi1nbnV8emxpYi1nYWJpXQp0byBsZCBmb3IgRUxGIHRh cmdldHMgdG8gc3VwcG9ydCBnZW5lcmF0aW5nIGNvbXByZXNzZWQgRFdBUkYg ZGVidWcKc2VjdGlvbnMuICBXZSBhbHdheXMgZ2VuZXJhdGUgLnpkZWJ1Z18q IHNlY3Rpb24gc2luY2Ugc2VjdGlvbiBuYW1lcyBoYXZlCmJlZW4gZmluYWxp emVkIGFuZCB0aGV5IGNhbid0IGJlIGNoYW5nZWQgZWFzaWx5IHdoZW4gY29t cHJlc3Npb24gaXMKYmVpbmcgcGVyZm9ybWVkLgoKYmZkLwoKCSogYmZkLWlu LmggKGNvbXByZXNzZWRfZGVidWdfc2VjdGlvbl90eXBlKTogTmV3LgoJKiBj b21wcmVzcy5jIChiZmRfY29tcHJlc3Nfc2VjdGlvbl9jb250ZW50cyk6IEFk ZCBhbiBhcmd1bWVudAoJZm9yIGxpbmtlciB3cml0ZSBjb21wcmVzc2lvbiBh bmQgYWx3YXlzIGdlbmVyYXRlIC56ZGVidWdfKgoJc2VjdGlvbiB3aGVuIGxp bmtpbmcuCgkoYmZkX2luaXRfc2VjdGlvbl9jb21wcmVzc19zdGF0dXMpOiBQ YXNzIEZBTFNFIHRvCgliZmRfY29tcHJlc3Nfc2VjdGlvbl9jb250ZW50cy4K CShiZmRfY29tcHJlc3Nfc2VjdGlvbik6IE5ldyBmdW5jdGlvbi4KCSogZWxm LmMgKGVsZl9mYWtlX3NlY3Rpb25zKTogRm9yIGxpbmtpbmcsIHNldCBTRUNf RUxGX0NPTVBSRVNTCglvbiBEV0FSRiBkZWJ1ZyBzZWN0aW9ucyBpZiBDT01Q UkVTU19ERUJVRyBpcyBzZXQgYW5kIHJlbmFtZQoJc2VjdGlvbiBpZiBDT01Q UkVTU19ERUJVR19HQUJJX1pMSUIgaXNuJ3Qgc2V0LgoJKGFzc2lnbl9maWxl X3Bvc2l0aW9uc19mb3Jfbm9uX2xvYWRfc2VjdGlvbnMpOiBTZXQgc2hfb2Zm c2V0Cgl0byAtMSBpZiBTRUNfRUxGX0NPTVBSRVNTIGlzIHNldC4KCShhc3Np Z25fZmlsZV9wb3NpdGlvbnNfZXhjZXB0X3JlbG9jcyk6IExpa3dpc2UuCgko X2JmZF9lbGZfYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9yZWxvY3MpOiBS ZW5hbWVkIHRvIC4uLgoJKF9iZmRfZWxmX2Fzc2lnbl9maWxlX3Bvc2l0aW9u c19mb3Jfbm9uX2xvYWQpOiBUaGlzLiAgQ2hhbmdlCglyZXR1cm4gdGltZSB0 byBiZmRfYm9vbGVhbi4gIENvbXByZXNzIHRoZSBzZWN0aW9uIGlmCglTRUNf RUxGX0NPTVBSRVNTIGlzIHNldC4KCShfYmZkX2VsZl93cml0ZV9vYmplY3Rf Y29udGVudHMpOiBVcGRhdGVkLgoJKF9iZmRfZWxmX3NldF9zZWN0aW9uX2Nv bnRlbnRzKTogV3JpdGUgc2VjdGlvbiBjb250ZW50cyB0bwoJdGhlIGJ1ZmZl ciBpZiBTRUNfRUxGX0NPTVBSRVNTIGlzIHNldC4KCSogbWVyZ2UuYzogSW5j bHVkZSAiZWxmLWJmZC5oIi4KCShzZWNfbWVyZ2VfZW1pdCk6IEFkZCBhbiBh cmd1bWVudCBmb3Igb2Zmc2V0LiAgRm9yIEVMRiwgd3JpdGUKCXRvIGNvbnRl bnRzIGlmIHNoX29mZnNldCBpcyAtMS4KCShfYmZkX3dyaXRlX21lcmdlZF9z ZWN0aW9uKTogV3JpdGUgc2VjdGlvbiBjb250ZW50cyB0byB0aGUKCWJ1ZmZl ciBpZiBTRUNfRUxGX0NPTVBSRVNTIGlzIHNldC4gIFBhc3Mgb3V0cHV0X29m ZnNldCB0bwoJc2VjX21lcmdlX2VtaXQuCgkqIGVsZmxpbmsuYyAoYmZkX2Vs Zl9maW5hbF9saW5rKTogQWxsb2NhdGUgdGhlIGJ1ZmZlciBmb3IKCW91dHB1 dCBzZWN0aW9uIGNvbnRlbnRzIGlmIFNFQ19FTEZfQ09NUFJFU1MgaXMgc2V0 LgoJKiBzZWN0aW9uLmMgKFNFQ19FTEZfQ09NUFJFU1MpOiBOZXcuCgkqIGJm ZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgpnYXMvCgoJKiBhcy5oIChjb21wcmVz c2VkX2RlYnVnX3NlY3Rpb25fdHlwZSk6IFJlbW92ZWQuCgppbmNsdWRlLwoK CSogYmZkbGluay5oIChiZmRfbGlua19pbmZvKTogQWRkIGNvbXByZXNzX2Rl YnVnLgoKbGQvCgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCAtLWNvbXByZXNz LWRlYnVnLXNlY3Rpb25zPS4KCSogbGRtYWluLmMgKG1haW4pOiBTZXQgQkZE X0NPTVBSRVNTIG9uIG91dHB1dF9iZmQgaWYKCUNPTVBSRVNTX0RFQlVHIGlz IHNldC4gIFNldCBCRkRfQ09NUFJFU1NfR0FCSSBvbiBvdXRwdXRfYmZkCglm b3IgQ09NUFJFU1NfREVCVUdfR0FCSV9aTElCLgoJKiBsZXhzdXAuYyAoZWxm X3N0YXRpY19saXN0X29wdGlvbnMpOiBBZGQKCS0tY29tcHJlc3MtZGVidWct c2VjdGlvbnM9LgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKE9QVElPTl9DT01Q UkVTU19ERUJVRyk6IE5ldy4KCSh4dHJhX2xvbmcpOiBBZGQgImNvbXByZXNz LWRlYnVnLXNlY3Rpb25zIi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9oYW5k bGVfb3B0aW9uKTogSGFuZGxlCglPUFRJT05fQ09NUFJFU1NfREVCVUcuCgps ZC90ZXN0c3VpdGUvCgoJKiBsZC1lbGYvY29tcHJlc3MuZXhwIChidWlsZF90 ZXN0cyk6IEFkZCB0ZXN0cyBmb3IKCS0tY29tcHJlc3MtZGVidWctc2VjdGlv bnM9LgoJKHJ1bl90ZXN0cyk6IExpa2V3aXNlLgoJQWRkIGFkZGl0b25hbCB0 ZXN0cyBmb3IgLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz0uCgkqIGxkLWVs Zi9nYWJpZW5kLnJ0OiBOZXcgZmlsZS4KCSogbGQtZWxmL2dhYmlub3JtYWwu cnQ6IExpa2V3aXNlLgoJKiBsZC1lbGYvZ251YmVnaW4uclM6IExpa2V3aXNl LgoJKiBsZC1lbGYvZ251bm9ybWFsLnJTOiBMaWtld2lzZS4KCSogbGQtZWxm L3psaWJiZWdpbi5yUzogTGlrZXdpc2UuCgkqIGxkLWVsZi96bGlibm9ybWFs LnJTOiBMaWtld2lzZS4KLS0tCiBiZmQvYmZkLWluLmggICAgICAgICAgICAg ICAgICAgICAgfCAgMTEgKysrCiBiZmQvYmZkLWluMi5oICAgICAgICAgICAg ICAgICAgICAgfCAgMTggKysrKwogYmZkL2NvbXByZXNzLmMgICAgICAgICAg ICAgICAgICAgIHwgIDUxICsrKysrKysrKysrLQogYmZkL2VsZi5jICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDg5ICsrKysrKysrKysrKysrKysrKy0t CiBiZmQvZWxmbGluay5jICAgICAgICAgICAgICAgICAgICAgfCAgMTUgKysr KwogYmZkL21lcmdlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDY3ICsr KysrKysrKysrKy0tLQogYmZkL3NlY3Rpb24uYyAgICAgICAgICAgICAgICAg ICAgIHwgICA0ICsKIGdhcy9hcy5oICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAxMCAtLS0KIGluY2x1ZGUvYmZkbGluay5oICAgICAgICAgICAgICAg ICB8ICAgMyArCiBsZC9lbXVsdGVtcGwvZWxmMzIuZW0gICAgICAgICAgICAg fCAgMTUgKysrKwogbGQvbGQudGV4aW5mbyAgICAgICAgICAgICAgICAgICAg IHwgIDE2ICsrKysKIGxkL2xkbWFpbi5jICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNyArKwogbGQvbGV4c3VwLmMgICAgICAgICAgICAgICAgICAgICAg IHwgICAzICsKIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvY29tcHJlc3MuZXhwICB8 IDE2NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQog bGQvdGVzdHN1aXRlL2xkLWVsZi9nYWJpZW5kLnJ0ICAgIHwgICA0ICsKIGxk L3Rlc3RzdWl0ZS9sZC1lbGYvZ2FiaW5vcm1hbC5ydCB8ICAgNCArCiBsZC90 ZXN0c3VpdGUvbGQtZWxmL2dudWJlZ2luLnJTICAgfCAgIDMgKwogbGQvdGVz dHN1aXRlL2xkLWVsZi9nbnVub3JtYWwuclMgIHwgICAzICsKIGxkL3Rlc3Rz dWl0ZS9sZC1lbGYvemxpYmJlZ2luLnJTICB8ICAgMyArCiBsZC90ZXN0c3Vp dGUvbGQtZWxmL3psaWJub3JtYWwuclMgfCAgIDMgKwogMjAgZmlsZXMgY2hh bmdlZCwgNDY0IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQogY3Jl YXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1lbGYvZ2FiaWVuZC5y dAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1lbGYvZ2Fi aW5vcm1hbC5ydAogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9s ZC1lbGYvZ251YmVnaW4uclMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0 c3VpdGUvbGQtZWxmL2dudW5vcm1hbC5yUwogY3JlYXRlIG1vZGUgMTAwNjQ0 IGxkL3Rlc3RzdWl0ZS9sZC1lbGYvemxpYmJlZ2luLnJTCiBjcmVhdGUgbW9k ZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLWVsZi96bGlibm9ybWFsLnJTCgpk aWZmIC0tZ2l0IGEvYmZkL2JmZC1pbi5oIGIvYmZkL2JmZC1pbi5oCmluZGV4 IDFmOGE3MmMuLjJlMzI0Y2QgMTAwNjQ0Ci0tLSBhL2JmZC9iZmQtaW4uaAor KysgYi9iZmQvYmZkLWluLmgKQEAgLTQzNyw2ICs0MzcsMTcgQEAgZXh0ZXJu IHZvaWQgYmZkX2hhc2hfdHJhdmVyc2UKICAgIHRoaXMgc2l6ZS4gICovCiBl eHRlcm4gdW5zaWduZWQgbG9uZyBiZmRfaGFzaF9zZXRfZGVmYXVsdF9zaXpl ICh1bnNpZ25lZCBsb25nKTsKIAorLyogVHlwZXMgb2YgY29tcHJlc3NlZCBE V0FSRiBkZWJ1ZyBzZWN0aW9ucy4gIFdlIGN1cnJlbnRseSBzdXBwb3J0Cisg ICB6bGliLiAgKi8KK2VudW0gY29tcHJlc3NlZF9kZWJ1Z19zZWN0aW9uX3R5 cGUKK3sKKyAgQ09NUFJFU1NfREVCVUdfTk9ORSA9IDAsCisgIENPTVBSRVNT X0RFQlVHID0gMSA8PCAwLAorICBDT01QUkVTU19ERUJVR19aTElCID0gQ09N UFJFU1NfREVCVUcgfCAxIDw8IDEsCisgIENPTVBSRVNTX0RFQlVHX0dOVV9a TElCID0gQ09NUFJFU1NfREVCVUcgfCAxIDw8IDIsCisgIENPTVBSRVNTX0RF QlVHX0dBQklfWkxJQiA9IENPTVBSRVNTX0RFQlVHIHwgMSA8PCAzCit9Owor CiAvKiBUaGlzIHN0cnVjdHVyZSBpcyB1c2VkIHRvIGtlZXAgdHJhY2sgb2Yg c3RhYnMgaW4gc2VjdGlvbnMKICAgIGluZm9ybWF0aW9uIHdoaWxlIGxpbmtp bmcuICAqLwogCmRpZmYgLS1naXQgYS9iZmQvYmZkLWluMi5oIGIvYmZkL2Jm ZC1pbjIuaAppbmRleCA2Nzk1OTVlLi4xMjJjYWEwIDEwMDY0NAotLS0gYS9i ZmQvYmZkLWluMi5oCisrKyBiL2JmZC9iZmQtaW4yLmgKQEAgLTQ0NCw2ICs0 NDQsMTcgQEAgZXh0ZXJuIHZvaWQgYmZkX2hhc2hfdHJhdmVyc2UKICAgIHRo aXMgc2l6ZS4gICovCiBleHRlcm4gdW5zaWduZWQgbG9uZyBiZmRfaGFzaF9z ZXRfZGVmYXVsdF9zaXplICh1bnNpZ25lZCBsb25nKTsKIAorLyogVHlwZXMg b2YgY29tcHJlc3NlZCBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4gIFdlIGN1cnJl bnRseSBzdXBwb3J0CisgICB6bGliLiAgKi8KK2VudW0gY29tcHJlc3NlZF9k ZWJ1Z19zZWN0aW9uX3R5cGUKK3sKKyAgQ09NUFJFU1NfREVCVUdfTk9ORSA9 IDAsCisgIENPTVBSRVNTX0RFQlVHID0gMSA8PCAwLAorICBDT01QUkVTU19E RUJVR19aTElCID0gQ09NUFJFU1NfREVCVUcgfCAxIDw8IDEsCisgIENPTVBS RVNTX0RFQlVHX0dOVV9aTElCID0gQ09NUFJFU1NfREVCVUcgfCAxIDw8IDIs CisgIENPTVBSRVNTX0RFQlVHX0dBQklfWkxJQiA9IENPTVBSRVNTX0RFQlVH IHwgMSA8PCAzCit9OworCiAvKiBUaGlzIHN0cnVjdHVyZSBpcyB1c2VkIHRv IGtlZXAgdHJhY2sgb2Ygc3RhYnMgaW4gc2VjdGlvbnMKICAgIGluZm9ybWF0 aW9uIHdoaWxlIGxpbmtpbmcuICAqLwogCkBAIC0xMzc4LDYgKzEzODksMTAg QEAgdHlwZWRlZiBzdHJ1Y3QgYmZkX3NlY3Rpb24KICAgICAgZXhlY3V0YWJs ZXMgb3Igc2hhcmVkIG9iamVjdHMuIFRoaXMgaXMgZm9yIENPRkYgb25seS4g ICovCiAjZGVmaW5lIFNFQ19DT0ZGX1NIQVJFRCAweDgwMDAwMDAKIAorICAv KiBUaGlzIHNlY3Rpb24gc2hvdWxkIGJlIGNvbXByZXNzZWQuICBUaGlzIGlz IGZvciBFTEYgbGlua2VyCisgICAgIGludGVybmFsIHVzZSBvbmx5LiAgKi8K KyNkZWZpbmUgU0VDX0VMRl9DT01QUkVTUyAweDgwMDAwMDAKKwogICAvKiBX aGVuIGEgc2VjdGlvbiB3aXRoIHRoaXMgZmxhZyBpcyBiZWluZyBsaW5rZWQs IHRoZW4gaWYgdGhlIHNpemUgb2YKICAgICAgdGhlIGlucHV0IHNlY3Rpb24g aXMgbGVzcyB0aGFuIGEgcGFnZSwgaXQgc2hvdWxkIG5vdCBjcm9zcyBhIHBh Z2UKICAgICAgYm91bmRhcnkuICBJZiB0aGUgc2l6ZSBvZiB0aGUgaW5wdXQg c2VjdGlvbiBpcyBvbmUgcGFnZSBvciBtb3JlLApAQCAtNzMxNiw2ICs3MzMx LDkgQEAgYmZkX2Jvb2xlYW4gYmZkX2luaXRfc2VjdGlvbl9kZWNvbXByZXNz X3N0YXR1cwogYmZkX2Jvb2xlYW4gYmZkX2luaXRfc2VjdGlvbl9jb21wcmVz c19zdGF0dXMKICAgIChiZmQgKmFiZmQsIGFzZWN0aW9uICpzZWN0aW9uKTsK IAorYmZkX2Jvb2xlYW4gYmZkX2NvbXByZXNzX3NlY3Rpb24KKyAgIChiZmQg KmFiZmQsIGFzZWN0aW9uICpzZWN0aW9uLCBiZmRfYnl0ZSAqdW5jb21wcmVz c2VkX2J1ZmZlcik7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlm CmRpZmYgLS1naXQgYS9iZmQvY29tcHJlc3MuYyBiL2JmZC9jb21wcmVzcy5j CmluZGV4IDc3MGVhNTcuLmRmZGU1MGUgMTAwNjQ0Ci0tLSBhL2JmZC9jb21w cmVzcy5jCisrKyBiL2JmZC9jb21wcmVzcy5jCkBAIC03Miw3ICs3Miw4IEBA IGRlY29tcHJlc3NfY29udGVudHMgKGJmZF9ieXRlICpjb21wcmVzc2VkX2J1 ZmZlciwKIHN0YXRpYyBiZmRfc2l6ZV90eXBlCiBiZmRfY29tcHJlc3Nfc2Vj dGlvbl9jb250ZW50cyAoYmZkICphYmZkLCBzZWNfcHRyIHNlYywKIAkJCSAg ICAgICBiZmRfYnl0ZSAqdW5jb21wcmVzc2VkX2J1ZmZlciwKLQkJCSAgICAg ICBiZmRfc2l6ZV90eXBlIHVuY29tcHJlc3NlZF9zaXplKQorCQkJICAgICAg IGJmZF9zaXplX3R5cGUgdW5jb21wcmVzc2VkX3NpemUsCisJCQkgICAgICAg YmZkX2Jvb2xlYW4gd3JpdGVfY29tcHJlc3MpCiB7CiAgIHVMb25nIGNvbXBy ZXNzZWRfc2l6ZTsKICAgYmZkX2J5dGUgKmJ1ZmZlcjsKQEAgLTE3Niw4ICsx NzcsMTEgQEAgYmZkX2NvbXByZXNzX3NlY3Rpb25fY29udGVudHMgKGJmZCAq YWJmZCwgc2VjX3B0ciBzZWMsCiAKICAgICAgIGNvbXByZXNzZWRfc2l6ZSAr PSBoZWFkZXJfc2l6ZTsKICAgICAgIC8qIFBSIGJpbnV0aWxzLzE4MDg3OiBJ ZiBjb21wcmVzc2lvbiBkaWRuJ3QgbWFrZSB0aGUgc2VjdGlvbiBzbWFsbGVy LAotCSBqdXN0IGtlZXAgaXQgdW5jb21wcmVzc2VkLiAgKi8KLSAgICAgIGlm IChjb21wcmVzc2VkX3NpemUgPCB1bmNvbXByZXNzZWRfc2l6ZSkKKwkganVz dCBrZWVwIGl0IHVuY29tcHJlc3NlZC4gIFdlIGFsd2F5cyBnZW5lcmF0ZSAu emRlYnVnXyogc2VjdGlvbgorCSB3aGVuIGxpbmtpbmcgc2luY2Ugc2VjdGlv biBuYW1lcyBoYXZlIGJlZW4gZmluYWxpemVkIGFuZCB0aGV5CisJIGNhbid0 IGJlIGNoYW5nZWQgZWFzaWx5LiAgKi8KKyAgICAgIGlmICgod3JpdGVfY29t cHJlc3MgJiYgY29tcHJlc3Npb25faGVhZGVyX3NpemUgPT0gMCkKKwkgICB8 fCBjb21wcmVzc2VkX3NpemUgPCB1bmNvbXByZXNzZWRfc2l6ZSkKIAl7CiAJ ICBiZmRfdXBkYXRlX2NvbXByZXNzaW9uX2hlYWRlciAoYWJmZCwgYnVmZmVy LCBzZWMpOwogCkBAIC01NDMsOSArNTQ3LDQ4IEBAIGJmZF9pbml0X3NlY3Rp b25fY29tcHJlc3Nfc3RhdHVzIChiZmQgKmFiZmQsIHNlY19wdHIgc2VjKQog ICAgIHsKICAgICAgIHVuY29tcHJlc3NlZF9zaXplID0gYmZkX2NvbXByZXNz X3NlY3Rpb25fY29udGVudHMgKGFiZmQsIHNlYywKIAkJCQkJCQkgdW5jb21w cmVzc2VkX2J1ZmZlciwKLQkJCQkJCQkgdW5jb21wcmVzc2VkX3NpemUpOwor CQkJCQkJCSB1bmNvbXByZXNzZWRfc2l6ZSwKKwkJCQkJCQkgRkFMU0UpOwog ICAgICAgcmV0ID0gdW5jb21wcmVzc2VkX3NpemUgIT0gMDsKICAgICB9CiAK ICAgcmV0dXJuIHJldDsKIH0KKworLyoKK0ZVTkNUSU9OCisJYmZkX2NvbXBy ZXNzX3NlY3Rpb24KKworU1lOT1BTSVMKKwliZmRfYm9vbGVhbiBiZmRfY29t cHJlc3Nfc2VjdGlvbgorCSAgKGJmZCAqYWJmZCwgYXNlY3Rpb24gKnNlY3Rp b24sIGJmZF9ieXRlICp1bmNvbXByZXNzZWRfYnVmZmVyKTsKKworREVTQ1JJ UFRJT04KKwlJZiBvcGVuIGZvciB3cml0ZSwgY29tcHJlc3Mgc2VjdGlvbiwg dXBkYXRlIHNlY3Rpb24gc2l6ZSB3aXRoCisJY29tcHJlc3NlZCBzaXplIGFu ZCBzZXQgY29tcHJlc3Nfc3RhdHVzIHRvIENPTVBSRVNTX1NFQ1RJT05fRE9O RS4KKworCVJldHVybiBAY29kZXtGQUxTRX0gaWYgY29tcHJlc3Npb24gZmFp bC4gIE90aGVyd2lzZSwgcmV0dXJuCisJQGNvZGV7VFJVRX0uCisqLworCiti ZmRfYm9vbGVhbgorYmZkX2NvbXByZXNzX3NlY3Rpb24gKGJmZCAqYWJmZCwg c2VjX3B0ciBzZWMsIGJmZF9ieXRlICp1bmNvbXByZXNzZWRfYnVmZmVyKQor eworICBiZmRfc2l6ZV90eXBlIHVuY29tcHJlc3NlZF9zaXplID0gc2VjLT5z aXplOworCisgIC8qIEVycm9yIGlmIG5vdCBvcGVuZWQgZm9yIHdyaXRlLiAg Ki8KKyAgaWYgKGFiZmQtPmRpcmVjdGlvbiAhPSB3cml0ZV9kaXJlY3Rpb24K KyAgICAgIHx8IHVuY29tcHJlc3NlZF9zaXplID09IDAKKyAgICAgIHx8IHVu Y29tcHJlc3NlZF9idWZmZXIgPT0gTlVMTAorICAgICAgfHwgc2VjLT5jb250 ZW50cyAhPSBOVUxMCisgICAgICB8fCBzZWMtPmNvbXByZXNzZWRfc2l6ZSAh PSAwCisgICAgICB8fCBzZWMtPmNvbXByZXNzX3N0YXR1cyAhPSBDT01QUkVT U19TRUNUSU9OX05PTkUpCisgICAgeworICAgICAgYmZkX3NldF9lcnJvciAo YmZkX2Vycm9yX2ludmFsaWRfb3BlcmF0aW9uKTsKKyAgICAgIHJldHVybiBG QUxTRTsKKyAgICB9CisKKyAgLyogQ29tcHJlc3MgaXQuICAqLworICByZXR1 cm4gYmZkX2NvbXByZXNzX3NlY3Rpb25fY29udGVudHMgKGFiZmQsIHNlYywg dW5jb21wcmVzc2VkX2J1ZmZlciwKKwkJCQkJdW5jb21wcmVzc2VkX3NpemUs IFRSVUUpICE9IDA7Cit9CmRpZmYgLS1naXQgYS9iZmQvZWxmLmMgYi9iZmQv ZWxmLmMKaW5kZXggNDFmYjAyMy4uODVhNGI2YiAxMDA2NDQKLS0tIGEvYmZk L2VsZi5jCisrKyBiL2JmZC9lbGYuYwpAQCAtMjc1Miw2ICsyNzUyLDcgQEAg ZWxmX2Zha2Vfc2VjdGlvbnMgKGJmZCAqYWJmZCwgYXNlY3Rpb24gKmFzZWN0 LCB2b2lkICpmc2FyZykKICAgc3RydWN0IGJmZF9lbGZfc2VjdGlvbl9kYXRh ICplc2QgPSBlbGZfc2VjdGlvbl9kYXRhIChhc2VjdCk7CiAgIEVsZl9JbnRl cm5hbF9TaGRyICp0aGlzX2hkcjsKICAgdW5zaWduZWQgaW50IHNoX3R5cGU7 CisgIGNvbnN0IGNoYXIgKm5hbWUgPSBhc2VjdC0+bmFtZTsKIAogICBpZiAo YXJnLT5mYWlsZWQpCiAgICAgewpAQCAtMjc2Miw4ICsyNzYzLDM4IEBAIGVs Zl9mYWtlX3NlY3Rpb25zIChiZmQgKmFiZmQsIGFzZWN0aW9uICphc2VjdCwg dm9pZCAqZnNhcmcpCiAKICAgdGhpc19oZHIgPSAmZXNkLT50aGlzX2hkcjsK IAorICAvKiBGb3IgbGlua2luZywgY29tcHJlc3MgRFdBUkYgZGVidWcgc2Vj dGlvbnMgd2l0aCBuYW1lczogLmRlYnVnXyouICAqLworICBpZiAoYXJnLT5s aW5rX2luZm8KKyAgICAgICYmIChhcmctPmxpbmtfaW5mby0+Y29tcHJlc3Nf ZGVidWcgJiBDT01QUkVTU19ERUJVRykKKyAgICAgICYmIChhc2VjdC0+Zmxh Z3MgJiBTRUNfREVCVUdHSU5HKQorICAgICAgJiYgbmFtZVsxXSA9PSAnZCcK KyAgICAgICYmIG5hbWVbNl0gPT0gJ18nKQorICAgIHsKKyAgICAgIC8qIFNl dCBTRUNfRUxGX0NPTVBSRVNTIHRvIGluZGljYXRlIHRoaXMgc2VjdGlvbiBz aG91bGQgYmUKKwkgY29tcHJlc3NlZC4gICovCisgICAgICBhc2VjdC0+Zmxh Z3MgfD0gU0VDX0VMRl9DT01QUkVTUzsKKworICAgICAgaWYgKGFyZy0+bGlu a19pbmZvLT5jb21wcmVzc19kZWJ1ZyAhPSBDT01QUkVTU19ERUJVR19HQUJJ X1pMSUIpCisJeworCSAgLyogSWYgU0hGX0NPTVBSRVNTRUQgaXNuJ3QgdXNl ZCwgcmVuYW1lIGNvbXByZXNzZWQgRFdBUkYKKwkgICAgIGRlYnVnIHNlY3Rp b24gdG8gLnpkZWJ1Z18qLiAgKi8KKwkgIHVuc2lnbmVkIGludCBsZW4gPSBz dHJsZW4gKG5hbWUpOworCSAgY2hhciAqbmV3X25hbWUgPSBiZmRfYWxsb2Mg KGFiZmQsIGxlbiArIDIpOworCSAgaWYgKG5ld19uYW1lID09IE5VTEwpCisJ ICAgIHsKKwkgICAgICBhcmctPmZhaWxlZCA9IFRSVUU7CisJICAgICAgcmV0 dXJuOworCSAgICB9CisJICBuZXdfbmFtZVswXSA9ICcuJzsKKwkgIG5ld19u YW1lWzFdID0gJ3onOworCSAgbWVtY3B5IChuZXdfbmFtZSArIDIsIG5hbWUg KyAxLCBsZW4pOworCSAgYmZkX3JlbmFtZV9zZWN0aW9uIChhYmZkLCBhc2Vj dCwgbmV3X25hbWUpOworCSAgbmFtZSA9IGFzZWN0LT5uYW1lOworCX0KKyAg ICB9CisKICAgdGhpc19oZHItPnNoX25hbWUgPSAodW5zaWduZWQgaW50KSBf YmZkX2VsZl9zdHJ0YWJfYWRkIChlbGZfc2hzdHJ0YWIgKGFiZmQpLAotCQkJ CQkJCSAgYXNlY3QtPm5hbWUsIEZBTFNFKTsKKwkJCQkJCQkgIG5hbWUsIEZB TFNFKTsKICAgaWYgKHRoaXNfaGRyLT5zaF9uYW1lID09ICh1bnNpZ25lZCBp bnQpIC0xKQogICAgIHsKICAgICAgIGFyZy0+ZmFpbGVkID0gVFJVRTsKQEAg LTUxMTYsNiArNTE0Nyw5IEBAIGFzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3Jf bm9uX2xvYWRfc2VjdGlvbnMgKGJmZCAqYWJmZCwKIAl9CiAgICAgICBlbHNl IGlmICgoKGhkci0+c2hfdHlwZSA9PSBTSFRfUkVMIHx8IGhkci0+c2hfdHlw ZSA9PSBTSFRfUkVMQSkKIAkJJiYgaGRyLT5iZmRfc2VjdGlvbiA9PSBOVUxM KQorCSAgICAgICB8fCAoaGRyLT5iZmRfc2VjdGlvbiAhPSBOVUxMCisJCSAg ICYmIChoZHItPmJmZF9zZWN0aW9uLT5mbGFncyAmIFNFQ19FTEZfQ09NUFJF U1MpKQorCQkgICAvKiBDb21wcmVzcyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4g ICovCiAJICAgICAgIHx8IGhkciA9PSBpX3NoZHJwcFtlbGZfb25lc3ltdGFi IChhYmZkKV0KIAkgICAgICAgfHwgaGRyID09IGlfc2hkcnBwW2VsZl9zeW10 YWJfc2huZHggKGFiZmQpXQogCSAgICAgICB8fCBoZHIgPT0gaV9zaGRycHBb ZWxmX3N0cnRhYl9zZWMgKGFiZmQpXSkKQEAgLTUzNjUsNiArNTM5OSw5IEBA IGFzc2lnbl9maWxlX3Bvc2l0aW9uc19leGNlcHRfcmVsb2NzIChiZmQgKmFi ZmQsCiAJICBoZHIgPSAqaGRycHA7CiAJICBpZiAoKChoZHItPnNoX3R5cGUg PT0gU0hUX1JFTCB8fCBoZHItPnNoX3R5cGUgPT0gU0hUX1JFTEEpCiAJICAg ICAgICYmIGhkci0+YmZkX3NlY3Rpb24gPT0gTlVMTCkKKwkgICAgICB8fCAo aGRyLT5iZmRfc2VjdGlvbiAhPSBOVUxMCisJCSAgJiYgKGhkci0+YmZkX3Nl Y3Rpb24tPmZsYWdzICYgU0VDX0VMRl9DT01QUkVTUykpCisJCSAgLyogQ29t cHJlc3MgRFdBUkYgZGVidWcgc2VjdGlvbnMuICAqLwogCSAgICAgIHx8IGkg PT0gZWxmX29uZXN5bXRhYiAoYWJmZCkKIAkgICAgICB8fCBpID09IGVsZl9z eW10YWJfc2huZHggKGFiZmQpCiAJICAgICAgfHwgaSA9PSBlbGZfc3RydGFi X3NlYyAoYWJmZCkpCkBAIC01NTE4LDggKzU1NTUsOCBAQCBwcmVwX2hlYWRl cnMgKGJmZCAqYWJmZCkKIC8qIEFzc2lnbiBmaWxlIHBvc2l0aW9ucyBmb3Ig YWxsIHRoZSByZWxvYyBzZWN0aW9ucyB3aGljaCBhcmUgbm90IHBhcnQKICAg IG9mIHRoZSBsb2FkYWJsZSBmaWxlIGltYWdlLCBhbmQgdGhlIGZpbGUgcG9z aXRpb24gb2Ygc2VjdGlvbiBoZWFkZXJzLiAgKi8KIAotc3RhdGljIHZvaWQK LV9iZmRfZWxmX2Fzc2lnbl9maWxlX3Bvc2l0aW9uc19mb3JfcmVsb2NzIChi ZmQgKmFiZmQpCitzdGF0aWMgYmZkX2Jvb2xlYW4KK19iZmRfZWxmX2Fzc2ln bl9maWxlX3Bvc2l0aW9uc19mb3Jfbm9uX2xvYWQgKGJmZCAqYWJmZCkKIHsK ICAgZmlsZV9wdHIgb2ZmOwogICB1bnNpZ25lZCBpbnQgaSwgbnVtX3NlYzsK QEAgLTU1MzUsOSArNTU3MiwzMCBAQCBfYmZkX2VsZl9hc3NpZ25fZmlsZV9w b3NpdGlvbnNfZm9yX3JlbG9jcyAoYmZkICphYmZkKQogICAgICAgRWxmX0lu dGVybmFsX1NoZHIgKnNoZHJwOwogCiAgICAgICBzaGRycCA9ICpzaGRycHA7 Ci0gICAgICBpZiAoKHNoZHJwLT5zaF90eXBlID09IFNIVF9SRUwgfHwgc2hk cnAtPnNoX3R5cGUgPT0gU0hUX1JFTEEpCi0JICAmJiBzaGRycC0+c2hfb2Zm c2V0ID09IC0xKQotCW9mZiA9IF9iZmRfZWxmX2Fzc2lnbl9maWxlX3Bvc2l0 aW9uX2Zvcl9zZWN0aW9uIChzaGRycCwgb2ZmLCBUUlVFKTsKKyAgICAgIGlm IChzaGRycC0+c2hfb2Zmc2V0ID09IC0xKQorCXsKKwkgIGJmZF9ib29sZWFu IGlzX3JlbCA9IChzaGRycC0+c2hfdHlwZSA9PSBTSFRfUkVMCisJCQkJfHwg c2hkcnAtPnNoX3R5cGUgPT0gU0hUX1JFTEEpOworCSAgaWYgKGlzX3JlbAor CSAgICAgIHx8IChzaGRycC0+YmZkX3NlY3Rpb24gIT0gTlVMTAorCQkgICYm IChzaGRycC0+YmZkX3NlY3Rpb24tPmZsYWdzICYgU0VDX0VMRl9DT01QUkVT UykpKQorCSAgICB7CisJICAgICAgaWYgKCFpc19yZWwpCisJCXsKKwkJICAv KiBDb21wcmVzcyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4gICovCisJCSAgaWYg KCFiZmRfY29tcHJlc3Nfc2VjdGlvbiAoYWJmZCwgc2hkcnAtPmJmZF9zZWN0 aW9uLAorCQkJCQkgICAgIHNoZHJwLT5jb250ZW50cykpCisJCSAgICByZXR1 cm4gRkFMU0U7CisJCSAgLyogVXBkYXRlIHNlY3Rpb24gc2l6ZSBhbmQgY29u dGVudHMuICAqLworCQkgIHNoZHJwLT5zaF9zaXplID0gc2hkcnAtPmJmZF9z ZWN0aW9uLT5zaXplOworCQkgIHNoZHJwLT5jb250ZW50cyA9IHNoZHJwLT5i ZmRfc2VjdGlvbi0+Y29udGVudHM7CisJCSAgc2hkcnAtPmJmZF9zZWN0aW9u LT5jb250ZW50cyA9IE5VTEw7CisJCX0KKwkgICAgICBvZmYgPSBfYmZkX2Vs Zl9hc3NpZ25fZmlsZV9wb3NpdGlvbl9mb3Jfc2VjdGlvbiAoc2hkcnAsCisJ CQkJCQkJICAgICAgIG9mZiwKKwkJCQkJCQkgICAgICAgVFJVRSk7CisJICAg IH0KKwl9CiAgICAgfQogCiAvKiBQbGFjZSB0aGUgc2VjdGlvbiBoZWFkZXJz LiAgKi8KQEAgLTU1NDcsNiArNTYwNSw4IEBAIF9iZmRfZWxmX2Fzc2lnbl9m aWxlX3Bvc2l0aW9uc19mb3JfcmVsb2NzIChiZmQgKmFiZmQpCiAgIGlfZWhk cnAtPmVfc2hvZmYgPSBvZmY7CiAgIG9mZiArPSBpX2VoZHJwLT5lX3NobnVt ICogaV9laGRycC0+ZV9zaGVudHNpemU7CiAgIGVsZl9uZXh0X2ZpbGVfcG9z IChhYmZkKSA9IG9mZjsKKworICByZXR1cm4gVFJVRTsKIH0KIAogYmZkX2Jv b2xlYW4KQEAgLTU1NjksNyArNTYyOSw4IEBAIF9iZmRfZWxmX3dyaXRlX29i amVjdF9jb250ZW50cyAoYmZkICphYmZkKQogICBpZiAoZmFpbGVkKQogICAg IHJldHVybiBGQUxTRTsKIAotICBfYmZkX2VsZl9hc3NpZ25fZmlsZV9wb3Np dGlvbnNfZm9yX3JlbG9jcyAoYWJmZCk7CisgIGlmICghX2JmZF9lbGZfYXNz aWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9ub25fbG9hZCAoYWJmZCkpCisgICAg cmV0dXJuIEZBTFNFOwogCiAgIC8qIEFmdGVyIHdyaXRpbmcgdGhlIGhlYWRl cnMsIHdlIG5lZWQgdG8gd3JpdGUgdGhlIHNlY3Rpb25zIHRvby4uLiAgKi8K ICAgbnVtX3NlYyA9IGVsZl9udW1zZWN0aW9ucyAoYWJmZCk7CkBAIC03OTIy LDcgKzc5ODMsMjEgQEAgX2JmZF9lbGZfc2V0X3NlY3Rpb25fY29udGVudHMg KGJmZCAqYWJmZCwKICAgICAgICYmICEgX2JmZF9lbGZfY29tcHV0ZV9zZWN0 aW9uX2ZpbGVfcG9zaXRpb25zIChhYmZkLCBOVUxMKSkKICAgICByZXR1cm4g RkFMU0U7CiAKKyAgaWYgKCFjb3VudCkKKyAgICByZXR1cm4gVFJVRTsKKwog ICBoZHIgPSAmZWxmX3NlY3Rpb25fZGF0YSAoc2VjdGlvbiktPnRoaXNfaGRy OworICBpZiAoaGRyLT5zaF9vZmZzZXQgPT0gKGZpbGVfcHRyKSAtMSkKKyAg ICB7CisgICAgICAvKiBXZSBtdXN0IGNvbXByZXNzIHRoaXMgc2VjdGlvbi4g IFdyaXRlIG91dHB1dCB0byB0aGUgYnVmZmVyLiAgKi8KKyAgICAgIHVuc2ln bmVkIGNoYXIgKmNvbnRlbnRzID0gaGRyLT5jb250ZW50czsKKyAgICAgIGlm ICgob2Zmc2V0ICsgY291bnQpID4gaGRyLT5zaF9zaXplCisJICB8fCAoc2Vj dGlvbi0+ZmxhZ3MgJiBTRUNfRUxGX0NPTVBSRVNTKSA9PSAwCisJICB8fCBj b250ZW50cyA9PSBOVUxMKQorCWFib3J0ICgpOworICAgICAgbWVtY3B5IChj b250ZW50cyArIG9mZnNldCwgbG9jYXRpb24sIGNvdW50KTsKKyAgICAgIHJl dHVybiBUUlVFOworICAgIH0KICAgcG9zID0gaGRyLT5zaF9vZmZzZXQgKyBv ZmZzZXQ7CiAgIGlmIChiZmRfc2VlayAoYWJmZCwgcG9zLCBTRUVLX1NFVCkg IT0gMAogICAgICAgfHwgYmZkX2J3cml0ZSAobG9jYXRpb24sIGNvdW50LCBh YmZkKSAhPSBjb3VudCkKZGlmZiAtLWdpdCBhL2JmZC9lbGZsaW5rLmMgYi9i ZmQvZWxmbGluay5jCmluZGV4IGVhOTI0NmIuLjZlZmUxZTQgMTAwNjQ0Ci0t LSBhL2JmZC9lbGZsaW5rLmMKKysrIGIvYmZkL2VsZmxpbmsuYwpAQCAtMTA4 OTAsNiArMTA4OTAsMjEgQEAgYmZkX2VsZl9maW5hbF9saW5rIChiZmQgKmFi ZmQsIHN0cnVjdCBiZmRfbGlua19pbmZvICppbmZvKQogCSB0byBjb3VudCB1 cHdhcmRzIHdoaWxlIGFjdHVhbGx5IG91dHB1dHRpbmcgdGhlIHJlbG9jYXRp b25zLiAgKi8KICAgICAgIGVzZG8tPnJlbC5jb3VudCA9IDA7CiAgICAgICBl c2RvLT5yZWxhLmNvdW50ID0gMDsKKworICAgICAgaWYgKGVzZG8tPnRoaXNf aGRyLnNoX29mZnNldCA9PSAoZmlsZV9wdHIpIC0xKQorCXsKKwkgIC8qIENh Y2hlIHRoZSBzZWN0aW9uIGNvbnRlbnRzIHNvIHRoYXQgdGhleSBjYW4gYmUg Y29tcHJlc3NlZAorCSAgICAgbGF0ZXIuICBVc2UgYmZkX21hbGxvYyBzaW5j ZSBpdCB3aWxsIGJlIGZyZWVkIGJ5CisJICAgICBiZmRfY29tcHJlc3Nfc2Vj dGlvbl9jb250ZW50cy4gICovCisJICB1bnNpZ25lZCBjaGFyICpjb250ZW50 cyA9IGVzZG8tPnRoaXNfaGRyLmNvbnRlbnRzOworCSAgaWYgKChvLT5mbGFn cyAmIFNFQ19FTEZfQ09NUFJFU1MpID09IDAgfHwgY29udGVudHMgIT0gTlVM TCkKKwkgICAgYWJvcnQgKCk7CisJICBjb250ZW50cworCSAgICA9ICh1bnNp Z25lZCBjaGFyICopIGJmZF9tYWxsb2MgKGVzZG8tPnRoaXNfaGRyLnNoX3Np emUpOworCSAgaWYgKGNvbnRlbnRzID09IE5VTEwpCisJICAgIGdvdG8gZXJy b3JfcmV0dXJuOworCSAgZXNkby0+dGhpc19oZHIuY29udGVudHMgPSBjb250 ZW50czsKKwl9CiAgICAgfQogCiAgIC8qIFdlIGhhdmUgbm93IGFzc2lnbmVk IGZpbGUgcG9zaXRpb25zIGZvciBhbGwgdGhlIHNlY3Rpb25zIGV4Y2VwdApk aWZmIC0tZ2l0IGEvYmZkL21lcmdlLmMgYi9iZmQvbWVyZ2UuYwppbmRleCA1 ZjQ1YmE2Li5mZjg1ODMzIDEwMDY0NAotLS0gYS9iZmQvbWVyZ2UuYworKysg Yi9iZmQvbWVyZ2UuYwpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW5jbHVkZSAi c3lzZGVwLmgiCiAjaW5jbHVkZSAiYmZkLmgiCisjaW5jbHVkZSAiZWxmLWJm ZC5oIgogI2luY2x1ZGUgImxpYmJmZC5oIgogI2luY2x1ZGUgImhhc2h0YWIu aCIKICNpbmNsdWRlICJsaWJpYmVydHkuaCIKQEAgLTI4MywxMyArMjg0LDE1 IEBAIHNlY19tZXJnZV9hZGQgKHN0cnVjdCBzZWNfbWVyZ2VfaGFzaCAqdGFi LCBjb25zdCBjaGFyICpzdHIsCiB9CiAKIHN0YXRpYyBiZmRfYm9vbGVhbgot c2VjX21lcmdlX2VtaXQgKGJmZCAqYWJmZCwgc3RydWN0IHNlY19tZXJnZV9o YXNoX2VudHJ5ICplbnRyeSkKK3NlY19tZXJnZV9lbWl0IChiZmQgKmFiZmQs IHN0cnVjdCBzZWNfbWVyZ2VfaGFzaF9lbnRyeSAqZW50cnksCisJCWZpbGVf cHRyIG9mZnNldCkKIHsKICAgc3RydWN0IHNlY19tZXJnZV9zZWNfaW5mbyAq c2VjaW5mbyA9IGVudHJ5LT5zZWNpbmZvOwogICBhc2VjdGlvbiAqc2VjID0g c2VjaW5mby0+c2VjOwogICBjaGFyICpwYWQgPSBOVUxMOwogICBiZmRfc2l6 ZV90eXBlIG9mZiA9IDA7CiAgIGludCBhbGlnbm1lbnRfcG93ZXIgPSBzZWMt Pm91dHB1dF9zZWN0aW9uLT5hbGlnbm1lbnRfcG93ZXI7CisgIHVuc2lnbmVk IGNoYXIgKmNvbnRlbnRzID0gTlVMTDsKIAogICBpZiAoYWxpZ25tZW50X3Bv d2VyKQogICAgIHsKQEAgLTI5OCw2ICszMDEsMTQgQEAgc2VjX21lcmdlX2Vt aXQgKGJmZCAqYWJmZCwgc3RydWN0IHNlY19tZXJnZV9oYXNoX2VudHJ5ICpl bnRyeSkKIAlyZXR1cm4gRkFMU0U7CiAgICAgfQogCisgIGlmIChiZmRfZ2V0 X2ZsYXZvdXIgKGFiZmQpID09IGJmZF90YXJnZXRfZWxmX2ZsYXZvdXIpCisg ICAgeworICAgICAgRWxmX0ludGVybmFsX1NoZHIgKmhkcgorCT0gJmVsZl9z ZWN0aW9uX2RhdGEgKHNlYy0+b3V0cHV0X3NlY3Rpb24pLT50aGlzX2hkcjsK KyAgICAgIGlmIChoZHItPnNoX29mZnNldCA9PSAoZmlsZV9wdHIpIC0xKQor CWNvbnRlbnRzID0gaGRyLT5jb250ZW50czsKKyAgICB9CisKICAgZm9yICg7 IGVudHJ5ICE9IE5VTEwgJiYgZW50cnktPnNlY2luZm8gPT0gc2VjaW5mbzsg ZW50cnkgPSBlbnRyeS0+bmV4dCkKICAgICB7CiAgICAgICBjb25zdCBjaGFy ICpzdHI7CkBAIC0zMDYsNyArMzE3LDEyIEBAIHNlY19tZXJnZV9lbWl0IChi ZmQgKmFiZmQsIHN0cnVjdCBzZWNfbWVyZ2VfaGFzaF9lbnRyeSAqZW50cnkp CiAgICAgICBsZW4gPSAtb2ZmICYgKGVudHJ5LT5hbGlnbm1lbnQgLSAxKTsK ICAgICAgIGlmIChsZW4gIT0gMCkKIAl7Ci0JICBpZiAoYmZkX2J3cml0ZSAo cGFkLCBsZW4sIGFiZmQpICE9IGxlbikKKwkgIGlmIChjb250ZW50cykKKwkg ICAgeworCSAgICAgIG1lbWNweSAoY29udGVudHMgKyBvZmZzZXQsIHBhZCwg bGVuKTsKKwkgICAgICBvZmZzZXQgKz0gbGVuOworCSAgICB9CisJICBlbHNl IGlmIChiZmRfYndyaXRlIChwYWQsIGxlbiwgYWJmZCkgIT0gbGVuKQogCSAg ICBnb3RvIGVycjsKIAkgIG9mZiArPSBsZW47CiAJfQpAQCAtMzE0LDcgKzMz MCwxMiBAQCBzZWNfbWVyZ2VfZW1pdCAoYmZkICphYmZkLCBzdHJ1Y3Qgc2Vj X21lcmdlX2hhc2hfZW50cnkgKmVudHJ5KQogICAgICAgc3RyID0gZW50cnkt PnJvb3Quc3RyaW5nOwogICAgICAgbGVuID0gZW50cnktPmxlbjsKIAotICAg ICAgaWYgKGJmZF9id3JpdGUgKHN0ciwgbGVuLCBhYmZkKSAhPSBsZW4pCisg ICAgICBpZiAoY29udGVudHMpCisJeworCSAgbWVtY3B5IChjb250ZW50cyAr IG9mZnNldCwgc3RyLCBsZW4pOworCSAgb2Zmc2V0ICs9IGxlbjsKKwl9Cisg ICAgICBlbHNlIGlmIChiZmRfYndyaXRlIChzdHIsIGxlbiwgYWJmZCkgIT0g bGVuKQogCWdvdG8gZXJyOwogCiAgICAgICBvZmYgKz0gbGVuOwpAQCAtMzIy LDkgKzM0MywxMyBAQCBzZWNfbWVyZ2VfZW1pdCAoYmZkICphYmZkLCBzdHJ1 Y3Qgc2VjX21lcmdlX2hhc2hfZW50cnkgKmVudHJ5KQogCiAgIC8qIFRyYWls aW5nIGFsaWdubWVudCBuZWVkZWQ/ICAqLwogICBvZmYgPSBzZWMtPnNpemUg LSBvZmY7Ci0gIGlmIChvZmYgIT0gMAotICAgICAgJiYgYmZkX2J3cml0ZSAo cGFkLCBvZmYsIGFiZmQpICE9IG9mZikKLSAgICBnb3RvIGVycjsKKyAgaWYg KG9mZiAhPSAwKQorICAgIHsKKyAgICAgIGlmIChjb250ZW50cykKKwltZW1j cHkgKGNvbnRlbnRzICsgb2Zmc2V0LCBwYWQsIG9mZik7CisgICAgICBlbHNl IGlmIChiZmRfYndyaXRlIChwYWQsIG9mZiwgYWJmZCkgIT0gb2ZmKQorCWdv dG8gZXJyOworICAgIH0KIAogICBpZiAocGFkICE9IE5VTEwpCiAgICAgZnJl ZSAocGFkKTsKQEAgLTc4NSw2ICs4MTAsNyBAQCBfYmZkX3dyaXRlX21lcmdl ZF9zZWN0aW9uIChiZmQgKm91dHB1dF9iZmQsIGFzZWN0aW9uICpzZWMsIHZv aWQgKnBzZWNpbmZvKQogewogICBzdHJ1Y3Qgc2VjX21lcmdlX3NlY19pbmZv ICpzZWNpbmZvOwogICBmaWxlX3B0ciBwb3M7CisgIHVuc2lnbmVkIGNoYXIg KmNvbnRlbnRzOwogCiAgIHNlY2luZm8gPSAoc3RydWN0IHNlY19tZXJnZV9z ZWNfaW5mbyAqKSBwc2VjaW5mbzsKIApAQCAtNzk0LDEyICs4MjAsMzMgQEAg X2JmZF93cml0ZV9tZXJnZWRfc2VjdGlvbiAoYmZkICpvdXRwdXRfYmZkLCBh c2VjdGlvbiAqc2VjLCB2b2lkICpwc2VjaW5mbykKICAgaWYgKHNlY2luZm8t PmZpcnN0X3N0ciA9PSBOVUxMKQogICAgIHJldHVybiBUUlVFOwogCisgIGNv bnRlbnRzID0gTlVMTDsKKwogICAvKiBGSVhNRTogb2N0ZXRzX3Blcl9ieXRl LiAgKi8KLSAgcG9zID0gc2VjLT5vdXRwdXRfc2VjdGlvbi0+ZmlsZXBvcyAr IHNlYy0+b3V0cHV0X29mZnNldDsKLSAgaWYgKGJmZF9zZWVrIChvdXRwdXRf YmZkLCBwb3MsIFNFRUtfU0VUKSAhPSAwKQotICAgIHJldHVybiBGQUxTRTsK KyAgaWYgKGJmZF9nZXRfZmxhdm91ciAob3V0cHV0X2JmZCkgPT0gYmZkX3Rh cmdldF9lbGZfZmxhdm91cikKKyAgICB7CisgICAgICBFbGZfSW50ZXJuYWxf U2hkciAqaGRyCisJPSAmZWxmX3NlY3Rpb25fZGF0YSAoc2VjLT5vdXRwdXRf c2VjdGlvbiktPnRoaXNfaGRyOworICAgICAgaWYgKGhkci0+c2hfb2Zmc2V0 ID09IChmaWxlX3B0cikgLTEpCisJeworCSAgLyogV2UgbXVzdCBjb21wcmVz cyB0aGlzIHNlY3Rpb24uICBXcml0ZSBvdXRwdXQgdG8gdGhlCisJICAgICBi dWZmZXIuICAqLworCSAgY29udGVudHMgPSBoZHItPmNvbnRlbnRzOworCSAg aWYgKChzZWMtPm91dHB1dF9zZWN0aW9uLT5mbGFncyAmIFNFQ19FTEZfQ09N UFJFU1MpID09IDAKKwkgICAgICB8fCBjb250ZW50cyA9PSBOVUxMKQorCSAg ICBhYm9ydCAoKTsKKwl9CisgICAgfQorCisgIGlmIChjb250ZW50cyA9PSBO VUxMKQorICAgIHsKKyAgICAgIHBvcyA9IHNlYy0+b3V0cHV0X3NlY3Rpb24t PmZpbGVwb3MgKyBzZWMtPm91dHB1dF9vZmZzZXQ7CisgICAgICBpZiAoYmZk X3NlZWsgKG91dHB1dF9iZmQsIHBvcywgU0VFS19TRVQpICE9IDApCisJcmV0 dXJuIEZBTFNFOworICAgIH0KIAotICBpZiAoISBzZWNfbWVyZ2VfZW1pdCAo b3V0cHV0X2JmZCwgc2VjaW5mby0+Zmlyc3Rfc3RyKSkKKyAgaWYgKCEgc2Vj X21lcmdlX2VtaXQgKG91dHB1dF9iZmQsIHNlY2luZm8tPmZpcnN0X3N0ciwK KwkJCXNlYy0+b3V0cHV0X29mZnNldCkpCiAgICAgcmV0dXJuIEZBTFNFOwog CiAgIHJldHVybiBUUlVFOwpkaWZmIC0tZ2l0IGEvYmZkL3NlY3Rpb24uYyBi L2JmZC9zZWN0aW9uLmMKaW5kZXggNGE2ZjJlNC4uZDU5YTBlMyAxMDA2NDQK LS0tIGEvYmZkL3NlY3Rpb24uYworKysgYi9iZmQvc2VjdGlvbi5jCkBAIC0z MzQsNiArMzM0LDEwIEBAIENPREVfRlJBR01FTlQKIC4gICAgIGV4ZWN1dGFi bGVzIG9yIHNoYXJlZCBvYmplY3RzLiBUaGlzIGlzIGZvciBDT0ZGIG9ubHku ICAqfQogLiNkZWZpbmUgU0VDX0NPRkZfU0hBUkVEIDB4ODAwMDAwMAogLgor LiAgeyogVGhpcyBzZWN0aW9uIHNob3VsZCBiZSBjb21wcmVzc2VkLiAgVGhp cyBpcyBmb3IgRUxGIGxpbmtlcgorLiAgICAgaW50ZXJuYWwgdXNlIG9ubHku ICAqfQorLiNkZWZpbmUgU0VDX0VMRl9DT01QUkVTUyAweDgwMDAwMDAKKy4K IC4gIHsqIFdoZW4gYSBzZWN0aW9uIHdpdGggdGhpcyBmbGFnIGlzIGJlaW5n IGxpbmtlZCwgdGhlbiBpZiB0aGUgc2l6ZSBvZgogLiAgICAgdGhlIGlucHV0 IHNlY3Rpb24gaXMgbGVzcyB0aGFuIGEgcGFnZSwgaXQgc2hvdWxkIG5vdCBj cm9zcyBhIHBhZ2UKIC4gICAgIGJvdW5kYXJ5LiAgSWYgdGhlIHNpemUgb2Yg dGhlIGlucHV0IHNlY3Rpb24gaXMgb25lIHBhZ2Ugb3IgbW9yZSwKZGlmZiAt LWdpdCBhL2dhcy9hcy5oIGIvZ2FzL2FzLmgKaW5kZXggZTA0Y2MwZi4uNmRl MzE5ZSAxMDA2NDQKLS0tIGEvZ2FzL2FzLmgKKysrIGIvZ2FzL2FzLmgKQEAg LTM3MCwxNiArMzcwLDYgQEAgQ09NTU9OIGludCBmbGFnX3N0cmlwX2xvY2Fs X2Fic29sdXRlOwogLyogVHJ1ZSBpZiB3ZSBzaG91bGQgZ2VuZXJhdGUgYSB0 cmFkaXRpb25hbCBmb3JtYXQgb2JqZWN0IGZpbGUuICAqLwogQ09NTU9OIGlu dCBmbGFnX3RyYWRpdGlvbmFsX2Zvcm1hdDsKIAotLyogVHlwZXMgb2YgY29t cHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucy4gIFdlIGN1cnJlbnRseSBzdXBwb3J0 IHpsaWIuICAqLwotZW51bSBjb21wcmVzc2VkX2RlYnVnX3NlY3Rpb25fdHlw ZQotewotICBDT01QUkVTU19ERUJVR19OT05FID0gMCwKLSAgQ09NUFJFU1Nf REVCVUcsCi0gIENPTVBSRVNTX0RFQlVHX1pMSUIsCi0gIENPTVBSRVNTX0RF QlVHX0dOVV9aTElCLAotICBDT01QUkVTU19ERUJVR19HQUJJX1pMSUIKLX07 Ci0KIC8qIFR5cGUgb2YgY29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucyB3ZSBz aG91bGQgZ2VuZXJhdGUuICAgKi8KIENPTU1PTiBlbnVtIGNvbXByZXNzZWRf ZGVidWdfc2VjdGlvbl90eXBlIGZsYWdfY29tcHJlc3NfZGVidWc7CiAKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvYmZkbGluay5oIGIvaW5jbHVkZS9iZmRsaW5r LmgKaW5kZXggMWIxNTgyNi4uMzk4OWM2MCAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9iZmRsaW5rLmgKKysrIGIvaW5jbHVkZS9iZmRsaW5rLmgKQEAgLTQzMSw2 ICs0MzEsOSBAQCBzdHJ1Y3QgYmZkX2xpbmtfaW5mbwogICAvKiBTZXBhcmF0 b3IgYmV0d2VlbiBhcmNoaXZlIGFuZCBmaWxlbmFtZSBpbiBsaW5rZXIgc2Ny aXB0IGZpbGVzcGVjcy4gICovCiAgIGNoYXIgcGF0aF9zZXBhcmF0b3I7CiAK KyAgLyogQ29tcHJlc3MgRFdBUkYgZGVidWcgc2VjdGlvbnMuICAqLworICBl bnVtIGNvbXByZXNzZWRfZGVidWdfc2VjdGlvbl90eXBlIGNvbXByZXNzX2Rl YnVnOworCiAgIC8qIERlZmF1bHQgc3RhY2sgc2l6ZS4gIFplcm8gbWVhbnMg ZGVmYXVsdCAob2Z0ZW4gemVybyBpdHNlbGYpLCAtMQogICAgICBtZWFucyBl eHBsaWNpdGx5IHplcm8tc2l6ZWQuICAqLwogICBiZmRfc2lnbmVkX3ZtYSBz dGFja3NpemU7CmRpZmYgLS1naXQgYS9sZC9lbXVsdGVtcGwvZWxmMzIuZW0g Yi9sZC9lbXVsdGVtcGwvZWxmMzIuZW0KaW5kZXggNWRiNWE5My4uMDgwMmQ3 NiAxMDA2NDQKLS0tIGEvbGQvZW11bHRlbXBsL2VsZjMyLmVtCisrKyBiL2xk L2VtdWx0ZW1wbC9lbGYzMi5lbQpAQCAtMjExMCw2ICsyMTEwLDcgQEAgZnJh Z21lbnQgPDxFT0YKICNkZWZpbmUgT1BUSU9OX0hBU0hfU1RZTEUJCShPUFRJ T05fRVhDTFVERV9MSUJTICsgMSkKICNkZWZpbmUgT1BUSU9OX0JVSUxEX0lE CQkJKE9QVElPTl9IQVNIX1NUWUxFICsgMSkKICNkZWZpbmUgT1BUSU9OX0FV RElUCQkJKE9QVElPTl9CVUlMRF9JRCArIDEpCisjZGVmaW5lIE9QVElPTl9D T01QUkVTU19ERUJVRwkJKE9QVElPTl9BVURJVCArIDEpCiAKIHN0YXRpYyB2 b2lkCiBnbGQke0VNVUxBVElPTl9OQU1FfV9hZGRfb3B0aW9ucwpAQCAtMjEz Nyw2ICsyMTM4LDcgQEAgRU9GCiBmaQogZnJhZ21lbnQgPDxFT0YKICAgICB7 ImJ1aWxkLWlkIiwgb3B0aW9uYWxfYXJndW1lbnQsIE5VTEwsIE9QVElPTl9C VUlMRF9JRH0sCisgICAgeyJjb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucyIsIHJl cXVpcmVkX2FyZ3VtZW50LCBOVUxMLCBPUFRJT05fQ09NUFJFU1NfREVCVUd9 LAogRU9GCiBpZiB0ZXN0IHgiJEdFTkVSQVRFX1NITElCX1NDUklQVCIgPSB4 eWVzOyB0aGVuCiBmcmFnbWVudCA8PEVPRgpAQCAtMjE4Niw2ICsyMTg4LDE5 IEBAIGdsZCR7RU1VTEFUSU9OX05BTUV9X2hhbmRsZV9vcHRpb24gKGludCBv cHRjKQogCWVtaXRfbm90ZV9nbnVfYnVpbGRfaWQgPSB4c3RyZHVwIChvcHRh cmcpOwogICAgICAgYnJlYWs7CiAKKyAgICBjYXNlIE9QVElPTl9DT01QUkVT U19ERUJVRzoKKyAgICAgIGlmIChzdHJjYXNlY21wIChvcHRhcmcsICJub25l IikgPT0gMCkKKwlsaW5rX2luZm8uY29tcHJlc3NfZGVidWcgPSBDT01QUkVT U19ERUJVR19OT05FOworICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcCAob3B0 YXJnLCAiemxpYiIpID09IDApCisJbGlua19pbmZvLmNvbXByZXNzX2RlYnVn ID0gQ09NUFJFU1NfREVCVUdfWkxJQjsKKyAgICAgIGVsc2UgaWYgKHN0cmNh c2VjbXAgKG9wdGFyZywgInpsaWItZ251IikgPT0gMCkKKwlsaW5rX2luZm8u Y29tcHJlc3NfZGVidWcgPSBDT01QUkVTU19ERUJVR19HTlVfWkxJQjsKKyAg ICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAgKG9wdGFyZywgInpsaWItZ2FiaSIp ID09IDApCisJbGlua19pbmZvLmNvbXByZXNzX2RlYnVnID0gQ09NUFJFU1Nf REVCVUdfR0FCSV9aTElCOworICAgICAgZWxzZQorCWVpbmZvIChfKCIlUCVG OiBpbnZhbGlkIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnMgb3B0aW9uOiBc YCVzJ1xuIiksCisJICAgICAgIG9wdGFyZyk7CisgICAgICBicmVhazsKIEVP RgogCiBpZiB0ZXN0IHgiJEdFTkVSQVRFX1NITElCX1NDUklQVCIgPSB4eWVz OyB0aGVuCmRpZmYgLS1naXQgYS9sZC9sZC50ZXhpbmZvIGIvbGQvbGQudGV4 aW5mbwppbmRleCA0MzQ4Yzg4Li43N2MwMmQ2IDEwMDY0NAotLS0gYS9sZC9s ZC50ZXhpbmZvCisrKyBiL2xkL2xkLnRleGluZm8KQEAgLTIyMDEsNiArMjIw MSwyMiBAQCBuZXcgc3R5bGUgR05VIEBjb2Rley5nbnUuaGFzaH0gc2VjdGlv biBvciBAY29kZXtib3RofSBmb3IgYm90aAogdGhlIGNsYXNzaWMgRUxGIEBj b2Rley5oYXNofSBhbmQgbmV3IHN0eWxlIEdOVSBAY29kZXsuZ251Lmhhc2h9 CiBoYXNoIHRhYmxlcy4gIFRoZSBkZWZhdWx0IGlzIEBjb2Rle3N5c3Z9Lgog CitAa2luZGV4IC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9bm9uZQorQGtp bmRleCAtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPXpsaWIKK0BraW5kZXgg LS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGliLWdudQorQGtpbmRleCAt LWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPXpsaWItZ2FiaQorQGl0ZW0gLS1j b21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz1ub25lCitAaXRlbXggLS1jb21wcmVz cy1kZWJ1Zy1zZWN0aW9ucz16bGliCitAaXRlbXggLS1jb21wcmVzcy1kZWJ1 Zy1zZWN0aW9ucz16bGliLWdudQorQGl0ZW14IC0tY29tcHJlc3MtZGVidWct c2VjdGlvbnM9emxpYi1nYWJpCitPbiBFTEYgcGxhdGZvcm1zICwgdGhlc2Ug b3B0aW9ucyBjb250cm9sIGhvdyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucyBhcmUK K2NvbXByZXNzZWQgdXNpbmcgemxpYi4gIEBvcHRpb257LS1jb21wcmVzcy1k ZWJ1Zy1zZWN0aW9ucz1ub25lfSBkb2Vzbid0Citjb21wcmVzcyBEV0FSRiBk ZWJ1ZyBzZWN0aW9ucy4gIEBvcHRpb257LS1jb21wcmVzcy1kZWJ1Zy1zZWN0 aW9ucz16bGlifQorYW5kIEBvcHRpb257LS1jb21wcmVzcy1kZWJ1Zy1zZWN0 aW9ucz16bGliLWdudX0gY29tcHJlc3MgRFdBUkYgZGVidWcKK3NlY3Rpb25z IGFuZCByZW5hbWUgZGVidWcgc2VjdGlvbiBuYW1lcyB0byBiZWdpbiB3aXRo IEBzYW1wey56ZGVidWd9CitpbnN0ZWFkIG9mIEBzYW1wey5kZWJ1Z30uICBA b3B0aW9uey0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1nYWJpfQor Y29tcHJlc3NlcyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucyB3aXRoIFNIRl9DT01Q UkVTU0VEIGZyb20gdGhlIEVMRiBBQkkuCisKIEBraW5kZXggLS1yZWR1Y2Ut bWVtb3J5LW92ZXJoZWFkcwogQGl0ZW0gLS1yZWR1Y2UtbWVtb3J5LW92ZXJo ZWFkcwogVGhpcyBvcHRpb24gcmVkdWNlcyBtZW1vcnkgcmVxdWlyZW1lbnRz IGF0IGxkIHJ1bnRpbWUsIGF0IHRoZSBleHBlbnNlIG9mCmRpZmYgLS1naXQg YS9sZC9sZG1haW4uYyBiL2xkL2xkbWFpbi5jCmluZGV4IDJlY2I5MmQuLmE3 YjcyYmQgMTAwNjQ0Ci0tLSBhL2xkL2xkbWFpbi5jCisrKyBiL2xkL2xkbWFp bi5jCkBAIC00MjUsNiArNDI1LDEzIEBAIG1haW4gKGludCBhcmdjLCBjaGFy ICoqYXJndikKICAgZWxzZQogICAgIGxpbmtfaW5mby5vdXRwdXRfYmZkLT5m bGFncyB8PSBFWEVDX1A7CiAKKyAgaWYgKChsaW5rX2luZm8uY29tcHJlc3Nf ZGVidWcgJiBDT01QUkVTU19ERUJVRykpCisgICAgeworICAgICAgbGlua19p bmZvLm91dHB1dF9iZmQtPmZsYWdzIHw9IEJGRF9DT01QUkVTUzsKKyAgICAg IGlmIChsaW5rX2luZm8uY29tcHJlc3NfZGVidWcgPT0gQ09NUFJFU1NfREVC VUdfR0FCSV9aTElCKQorCWxpbmtfaW5mby5vdXRwdXRfYmZkLT5mbGFncyB8 PSBCRkRfQ09NUFJFU1NfR0FCSTsKKyAgICB9CisKICAgbGR3cml0ZSAoKTsK IAogICBpZiAoY29uZmlnLm1hcF9maWxlICE9IE5VTEwpCmRpZmYgLS1naXQg YS9sZC9sZXhzdXAuYyBiL2xkL2xleHN1cC5jCmluZGV4IDRhNzFiYTQuLmI2 MTgyNDEgMTAwNjQ0Ci0tLSBhL2xkL2xleHN1cC5jCisrKyBiL2xkL2xleHN1 cC5jCkBAIC0xNzIyLDYgKzE3MjIsOSBAQCBlbGZfc3RhdGljX2xpc3Rfb3B0 aW9ucyAoRklMRSAqZmlsZSkKICAgZnByaW50ZiAoZmlsZSwgXygiXAogICAt LWJ1aWxkLWlkWz1TVFlMRV0gICAgICAgICAgR2VuZXJhdGUgYnVpbGQgSUQg bm90ZVxuIikpOwogICBmcHJpbnRmIChmaWxlLCBfKCJcCisgIC0tY29tcHJl c3MtZGVidWctc2VjdGlvbnM9W25vbmV8emxpYnx6bGliLWdudXx6bGliLWdh YmldXG5cCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21wcmVz cyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucyB1c2luZyB6bGliXG4iKSk7CisgIGZw cmludGYgKGZpbGUsIF8oIlwKICAgLXogY29tbW9uLXBhZ2Utc2l6ZT1TSVpF ICAgIFNldCBjb21tb24gcGFnZSBzaXplIHRvIFNJWkVcbiIpKTsKICAgZnBy aW50ZiAoZmlsZSwgXygiXAogICAteiBtYXgtcGFnZS1zaXplPVNJWkUgICAg ICAgU2V0IG1heGltdW0gcGFnZSBzaXplIHRvIFNJWkVcbiIpKTsKZGlmZiAt LWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvY29tcHJlc3MuZXhwIGIvbGQv dGVzdHN1aXRlL2xkLWVsZi9jb21wcmVzcy5leHAKaW5kZXggYWRiN2ZjMi4u ZTI0NDhiOSAxMDA2NDQKLS0tIGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9jb21w cmVzcy5leHAKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9jb21wcmVzcy5l eHAKQEAgLTQ5LDcgKzQ5LDggQEAgc2V0IGJ1aWxkX3Rlc3RzIHsKICAgICIt c2hhcmVkIiAiLWZQSUMgLWcgLVdhLC0tY29tcHJlc3MtZGVidWctc2VjdGlv bnMiCiAgICB7Zm9vLmN9IHt9ICJsaWJmb28uc28ifQogICB7IkJ1aWxkIGxp YmJhci5zbyB3aXRoIGNvbXByZXNzZWQgZGVidWcgc2VjdGlvbnMiCi0gICAi LXNoYXJlZCIgIi1mUElDIC1nIC1XYSwtLWNvbXByZXNzLWRlYnVnLXNlY3Rp b25zIgorICAgIi1zaGFyZWQgLVdsLC0tY29tcHJlc3MtZGVidWctc2VjdGlv bnM9bm9uZSIKKyAgICItZlBJQyAtZyAtV2EsLS1jb21wcmVzcy1kZWJ1Zy1z ZWN0aW9ucyIKICAgIHtiZWdpbi5jIGVuZC5jfSB7fSAibGliYmFyLnNvIn0K ICAgeyJCdWlsZCBsaWJmb296bGliLnNvIHdpdGggY29tcHJlc3NlZCBkZWJ1 ZyBzZWN0aW9ucyB3aXRoIHpsaWItZ2FiaSIKICAgICItc2hhcmVkIiAiLWZQ SUMgLWcgLVdhLC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1nYWJp IgpAQCAtNTcsNiArNTgsMzAgQEAgc2V0IGJ1aWxkX3Rlc3RzIHsKICAgeyJC dWlsZCBsaWJiYXJ6bGliLnNvIHdpdGggY29tcHJlc3NlZCBkZWJ1ZyBzZWN0 aW9ucyB3aXRoIHpsaWItZ2FiaSIKICAgICItc2hhcmVkIiAiLWZQSUMgLWcg LVdhLC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1nYWJpIgogICAg e2JlZ2luLmMgZW5kLmN9IHt9ICJsaWJiYXJ6bGliLnNvIn0KKyAgeyJCdWls ZCBsaWJ6bGliZm9vLnNvIHdpdGggemxpYiBjb21wcmVzc2VkIGRlYnVnIHNl Y3Rpb25zIgorICAgIi1zaGFyZWQgLVdsLC0tY29tcHJlc3MtZGVidWctc2Vj dGlvbnM9emxpYiIKKyAgICItZlBJQyAtZyAtV2EsLS1jb21wcmVzcy1kZWJ1 Zy1zZWN0aW9ucz16bGliIgorICAge2Zvby5jfSB7fSAibGliemxpYmZvby5z byJ9CisgIHsiQnVpbGQgbGliZ251Zm9vLnNvIHdpdGggemxpYi1nbnUgY29t cHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucyIKKyAgICItc2hhcmVkIC1XbCwtLWNv bXByZXNzLWRlYnVnLXNlY3Rpb25zPXpsaWItZ251IgorICAgIi1mUElDIC1n IC1XYSwtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPXpsaWItZ251IgorICAg e2Zvby5jfSB7fSAibGliZ251Zm9vLnNvIn0KKyAgeyJCdWlsZCBsaWJnYWJp Zm9vLnNvIHdpdGggemxpYi1nYWJpIGNvbXByZXNzZWQgZGVidWcgc2VjdGlv bnMiCisgICAiLXNoYXJlZCAtV2wsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9u cz16bGliLWdhYmkiCisgICAiLWZQSUMgLWcgLVdhLC0tY29tcHJlc3MtZGVi dWctc2VjdGlvbnM9emxpYi1nYWJpIgorICAge2Zvby5jfSB7fSAibGliZ2Fi aWZvby5zbyJ9CisgIHsiQnVpbGQgemxpYmJlZ2luLm8gd2l0aCB6bGliIGNv bXByZXNzZWQgZGVidWcgc2VjdGlvbnMiCisgICAiLXIgLW5vc3RkbGliIC1X bCwtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPXpsaWIiCisgICAiLWcgLVdh LC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYiIKKyAgIHtiZWdpbi5j fSB7fSAiemxpYmJlZ2luLm8ifQorICB7IkJ1aWxkIGdudWJlZ2luLm8gd2l0 aCB6bGliLWdudSBjb21wcmVzc2VkIGRlYnVnIHNlY3Rpb25zIgorICAgIi1y IC1ub3N0ZGxpYiAtV2wsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGli LWdudSIKKyAgICItZyAtV2EsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16 bGliLWdudSIKKyAgIHtiZWdpbi5jfSB7fSAiZ251YmVnaW4ubyJ9CisgIHsi QnVpbGQgZ2FiaWVuZC5vIHdpdGggemxpYi1nYWJpIGNvbXByZXNzZWQgZGVi dWcgc2VjdGlvbnMiCisgICAiLXIgLW5vc3RkbGliIC1XbCwtLWNvbXByZXNz LWRlYnVnLXNlY3Rpb25zPXpsaWItZ2FiaSIKKyAgICItZyAtV2EsLS1jb21w cmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGliLWdudSIKKyAgIHtlbmQuY30ge30g ImdhYmllbmQubyJ9CiB9CiAKIHNldCBydW5fdGVzdHMgewpAQCAtNjYsNiAr OTEsMTUgQEAgc2V0IHJ1bl90ZXN0cyB7CiAgICAgeyJSdW4gbm9ybWFsIHdp dGggbGliZm9vLnNvIHdpdGggY29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucyB3 aXRoIHpsaWItZ2FiaSIKICAgICAgInRtcGRpci9iZWdpbi5vIHRtcGRpci9s aWJmb296bGliLnNvIHRtcGRpci9lbmQubyIgIiIKICAgICAge21haW4uY30g Im5vcm1hbCIgIm5vcm1hbC5vdXQiICItV2EsLS1jb21wcmVzcy1kZWJ1Zy1z ZWN0aW9ucz16bGliLWdhYmkifQorICAgIHsiUnVuIHpsaWJub3JtYWwgd2l0 aCBsaWJ6bGliZm9vLnNvIHdpdGggemxpYiBjb21wcmVzc2VkIGRlYnVnIHNl Y3Rpb25zIgorICAgICAidG1wZGlyL2JlZ2luLm8gdG1wZGlyL2xpYnpsaWJm b28uc28gdG1wZGlyL2VuZC5vIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9 emxpYiIgIiIKKyAgICAge21haW4uY30gInpsaWJub3JtYWwiICJub3JtYWwu b3V0IiAiLVdhLC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYiJ9Cisg ICAgeyJSdW4gZ251bm9ybWFsIHdpdGggbGliZ251Zm9vLnNvIHdpdGggemxp Yi1nbnUgY29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucyIKKyAgICAgInRtcGRp ci9nbnViZWdpbi5vIHRtcGRpci9saWJnbnVmb28uc28gdG1wZGlyL2VuZC5v IC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1nbnUiICIiCisgICAg IHttYWluLmN9ICJnbnVub3JtYWwiICJub3JtYWwub3V0IiAiLVdhLC0tY29t cHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1nbnUifQorICAgIHsiUnVuIGdh Ymlub3JtYWwgd2l0aCBsaWJnYWJpZm9vLnNvIHdpdGggemxpYi1nYWJpIGNv bXByZXNzZWQgZGVidWcgc2VjdGlvbnMiCisgICAgICJ0bXBkaXIvemxpYmJl Z2luLm8gdG1wZGlyL2xpYmdhYmlmb28uc28gdG1wZGlyL2dhYmllbmQubyAt LWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPXpsaWItZ2FiaSIgIiIKKyAgICAg e21haW4uY30gImdhYmlub3JtYWwiICJub3JtYWwub3V0IiAiLVdhLC0tY29t cHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1nYWJpIn0KIH0KIAogcnVuX2Nj X2xpbmtfdGVzdHMgJGJ1aWxkX3Rlc3RzCkBAIC03OSwzICsxMTMsMTM0IEBA IGlmIHsgW2NhdGNoIHtleGVjIGNtcCB0bXBkaXIvbGliZm9vLnNvIHRtcGRp ci9saWJmb296bGliLnNvfV0gfSB0aGVuIHsKIH0gZWxzZSB7CiAgICAgcGFz cyAiJHRlc3RfbmFtZSIKIH0KKworZ2xvYmFsIFJFQURFTEYKKworc2V0IHRl c3RfbmFtZSAiTGluayAtciB3aXRoIHpsaWIgY29tcHJlc3NlZCBkZWJ1ZyBv dXRwdXQiCitzZXQgdGVzdCB6bGliYmVnaW4KK3NlbmRfbG9nICIkUkVBREVM RiAtUyAtVyB0bXBkaXIvJHRlc3QubyA+IHRtcGRpci8kdGVzdC5vdXRcbiIK K3NldCBnb3QgW3JlbW90ZV9leGVjIGhvc3QgIiRSRUFERUxGIC1TIC1XIHRt cGRpci8kdGVzdC5vIiAiIiAiL2Rldi9udWxsIiAidG1wZGlyLyR0ZXN0Lm91 dCJdCitpZiB7IFtsaW5kZXggJGdvdCAwXSAhPSAwIHx8ICFbc3RyaW5nIG1h dGNoICIiIFtsaW5kZXggJGdvdCAxXV0gfSB0aGVuIHsKKyAgICBzZW5kX2xv ZyAiJGdvdFxuIgorICAgIHVucmVzb2x2ZWQgIiR0ZXN0X25hbWUiCit9Citp ZiB7IFtyZWdleHBfZGlmZiB0bXBkaXIvJHRlc3Qub3V0ICRzcmNkaXIvJHN1 YmRpci8kdGVzdC5yU10gfSB0aGVuIHsKKyAgICBmYWlsICIkdGVzdF9uYW1l IgorfSBlbHNlIHsKKyAgICBwYXNzICIkdGVzdF9uYW1lIgorfQorCitzZXQg dGVzdF9uYW1lICJMaW5rIC1yIHdpdGggemxpYi1nbnUgY29tcHJlc3NlZCBk ZWJ1ZyBvdXRwdXQiCitzZXQgdGVzdCBnbnViZWdpbgorc2VuZF9sb2cgIiRS RUFERUxGIC1TIC1XIHRtcGRpci8kdGVzdC5vID4gdG1wZGlyLyR0ZXN0Lm91 dFxuIgorc2V0IGdvdCBbcmVtb3RlX2V4ZWMgaG9zdCAiJFJFQURFTEYgLVMg LVcgdG1wZGlyLyR0ZXN0Lm8iICIiICIvZGV2L251bGwiICJ0bXBkaXIvJHRl c3Qub3V0Il0KK2lmIHsgW2xpbmRleCAkZ290IDBdICE9IDAgfHwgIVtzdHJp bmcgbWF0Y2ggIiIgW2xpbmRleCAkZ290IDFdXSB9IHRoZW4geworICAgIHNl bmRfbG9nICIkZ290XG4iCisgICAgdW5yZXNvbHZlZCAiJHRlc3RfbmFtZSIK K30KK2lmIHsgW3JlZ2V4cF9kaWZmIHRtcGRpci8kdGVzdC5vdXQgJHNyY2Rp ci8kc3ViZGlyLyR0ZXN0LnJTXSB9IHRoZW4geworICAgIGZhaWwgIiR0ZXN0 X25hbWUiCit9IGVsc2UgeworICAgIHBhc3MgIiR0ZXN0X25hbWUiCit9CisK K3NldCB0ZXN0X25hbWUgIkxpbmsgLXIgd2l0aCB6bGliLWdhYmkgY29tcHJl c3NlZCBkZWJ1ZyBvdXRwdXQiCitzZXQgdGVzdCBnYWJpZW5kCitzZW5kX2xv ZyAiJFJFQURFTEYgLXQgLVcgdG1wZGlyLyR0ZXN0Lm8gPiB0bXBkaXIvJHRl c3Qub3V0XG4iCitzZXQgZ290IFtyZW1vdGVfZXhlYyBob3N0ICIkUkVBREVM RiAtdCAtVyB0bXBkaXIvJHRlc3QubyIgIiIgIi9kZXYvbnVsbCIgInRtcGRp ci8kdGVzdC5vdXQiXQoraWYgeyBbbGluZGV4ICRnb3QgMF0gIT0gMCB8fCAh W3N0cmluZyBtYXRjaCAiIiBbbGluZGV4ICRnb3QgMV1dIH0gdGhlbiB7Cisg ICAgc2VuZF9sb2cgIiRnb3RcbiIKKyAgICB1bnJlc29sdmVkICIkdGVzdF9u YW1lIgorfQoraWYgeyBbcmVnZXhwX2RpZmYgdG1wZGlyLyR0ZXN0Lm91dCAk c3JjZGlyLyRzdWJkaXIvJHRlc3QucnRdIH0gdGhlbiB7CisgICAgZmFpbCAi JHRlc3RfbmFtZSIKK30gZWxzZSB7CisgICAgcGFzcyAiJHRlc3RfbmFtZSIK K30KKworc2V0IHRlc3RfbmFtZSAiTGluayB3aXRoIHpsaWIgY29tcHJlc3Nl ZCBkZWJ1ZyBvdXRwdXQiCitzZXQgdGVzdCBub3JtYWwKK3NlbmRfbG9nICIk UkVBREVMRiAtdyB0bXBkaXIvJHRlc3QgPiB0bXBkaXIvJHRlc3Qub3V0XG4i CitzZXQgZ290IFtyZW1vdGVfZXhlYyBob3N0ICIkUkVBREVMRiAtdyB0bXBk aXIvJHRlc3QiICIiICIvZGV2L251bGwiICJ0bXBkaXIvJHRlc3Qub3V0Il0K K2lmIHsgW2xpbmRleCAkZ290IDBdICE9IDAgfHwgIVtzdHJpbmcgbWF0Y2gg IiIgW2xpbmRleCAkZ290IDFdXSB9IHRoZW4geworICAgIHNlbmRfbG9nICIk Z290XG4iCisgICAgdW5yZXNvbHZlZCAiJHRlc3RfbmFtZSIKK30KKworc2V0 IHRlc3RfbmFtZSAiTGluayB3aXRoIHpsaWIgY29tcHJlc3NlZCBkZWJ1ZyBv dXRwdXQiCitzZXQgdGVzdCB6bGlibm9ybWFsCitzZW5kX2xvZyAiJFJFQURF TEYgLXcgdG1wZGlyLyR0ZXN0IHwgc2VkIC1lIFwicy8uemRlYnVnXy8uZGVi dWdfL1wiID4gdG1wZGlyLyR0ZXN0Lm91dFxuIgorc2V0IGdvdCBbcmVtb3Rl X2V4ZWMgaG9zdCAiJFJFQURFTEYgLXcgdG1wZGlyLyR0ZXN0IHwgc2VkIC1l IFwicy8uemRlYnVnXy8uZGVidWdfL1wiIiAiIiAiL2Rldi9udWxsIiAidG1w ZGlyLyR0ZXN0Lm91dCJdCitpZiB7IFtsaW5kZXggJGdvdCAwXSAhPSAwIHx8 ICFbc3RyaW5nIG1hdGNoICIiIFtsaW5kZXggJGdvdCAxXV0gfSB0aGVuIHsK KyAgICBzZW5kX2xvZyAiJGdvdFxuIgorICAgIHVucmVzb2x2ZWQgIiR0ZXN0 X25hbWUiCit9CitpZiB7IFtjYXRjaCB7ZXhlYyBjbXAgdG1wZGlyL25vcm1h bC5vdXQgdG1wZGlyLyR0ZXN0Lm91dH1dIH0gdGhlbiB7CisgICAgc2VuZF9s b2cgInRtcGRpci9ub3JtYWwub3V0IHRtcGRpci8kdGVzdC5vdXQgZGlmZmVy LlxuIgorICAgIGZhaWwgIiR0ZXN0X25hbWUiCit9IGVsc2UgeworICAgIHBh c3MgIiR0ZXN0X25hbWUiCit9CitzZW5kX2xvZyAiJFJFQURFTEYgLVMgLVcg dG1wZGlyLyR0ZXN0JyA+IHRtcGRpci8kdGVzdC5vdXRcbiIKK3NldCBnb3Qg W3JlbW90ZV9leGVjIGhvc3QgIiRSRUFERUxGIC1TIC1XIHRtcGRpci8kdGVz dCIgIiIgIi9kZXYvbnVsbCIgInRtcGRpci8kdGVzdC5vdXQiXQoraWYgeyBb bGluZGV4ICRnb3QgMF0gIT0gMCB8fCAhW3N0cmluZyBtYXRjaCAiIiBbbGlu ZGV4ICRnb3QgMV1dIH0gdGhlbiB7CisgICAgc2VuZF9sb2cgIiRnb3RcbiIK KyAgICB1bnJlc29sdmVkICIkdGVzdF9uYW1lIgorfQoraWYgeyBbcmVnZXhw X2RpZmYgdG1wZGlyLyR0ZXN0Lm91dCAkc3JjZGlyLyRzdWJkaXIvJHRlc3Qu clNdIH0gdGhlbiB7CisgICAgZmFpbCAiJHRlc3RfbmFtZSIKK30gZWxzZSB7 CisgICAgcGFzcyAiJHRlc3RfbmFtZSIKK30KKworc2V0IHRlc3RfbmFtZSAi TGluayB3aXRoIHpsaWItZ251IGNvbXByZXNzZWQgZGVidWcgb3V0cHV0Igor c2V0IHRlc3QgZ251bm9ybWFsCitzZW5kX2xvZyAiJFJFQURFTEYgLXcgdG1w ZGlyLyR0ZXN0IHwgc2VkIC1lIFwicy8uemRlYnVnXy8uZGVidWdfL1wiID4g dG1wZGlyLyR0ZXN0Lm91dFxuIgorc2V0IGdvdCBbcmVtb3RlX2V4ZWMgaG9z dCAiJFJFQURFTEYgLXcgdG1wZGlyLyR0ZXN0IHwgc2VkIC1lIFwicy8uemRl YnVnXy8uZGVidWdfL1wiIiAiIiAiL2Rldi9udWxsIiAidG1wZGlyLyR0ZXN0 Lm91dCJdCitpZiB7IFtsaW5kZXggJGdvdCAwXSAhPSAwIHx8ICFbc3RyaW5n IG1hdGNoICIiIFtsaW5kZXggJGdvdCAxXV0gfSB0aGVuIHsKKyAgICBzZW5k X2xvZyAiJGdvdFxuIgorICAgIHVucmVzb2x2ZWQgIiR0ZXN0X25hbWUiCit9 CitpZiB7IFtjYXRjaCB7ZXhlYyBjbXAgdG1wZGlyL25vcm1hbC5vdXQgdG1w ZGlyLyR0ZXN0Lm91dH1dIH0gdGhlbiB7CisgICAgc2VuZF9sb2cgInRtcGRp ci9ub3JtYWwub3V0IHRtcGRpci8kdGVzdC5vdXQgZGlmZmVyLlxuIgorICAg IGZhaWwgIiR0ZXN0X25hbWUiCit9IGVsc2UgeworICAgIHBhc3MgIiR0ZXN0 X25hbWUiCit9CitzZW5kX2xvZyAiJFJFQURFTEYgLVMgLVcgdG1wZGlyLyR0 ZXN0JyA+IHRtcGRpci8kdGVzdC5vdXRcbiIKK3NldCBnb3QgW3JlbW90ZV9l eGVjIGhvc3QgIiRSRUFERUxGIC1TIC1XIHRtcGRpci8kdGVzdCIgIiIgIi9k ZXYvbnVsbCIgInRtcGRpci8kdGVzdC5vdXQiXQoraWYgeyBbbGluZGV4ICRn b3QgMF0gIT0gMCB8fCAhW3N0cmluZyBtYXRjaCAiIiBbbGluZGV4ICRnb3Qg MV1dIH0gdGhlbiB7CisgICAgc2VuZF9sb2cgIiRnb3RcbiIKKyAgICB1bnJl c29sdmVkICIkdGVzdF9uYW1lIgorfQoraWYgeyBbcmVnZXhwX2RpZmYgdG1w ZGlyLyR0ZXN0Lm91dCAkc3JjZGlyLyRzdWJkaXIvJHRlc3QuclNdIH0gdGhl biB7CisgICAgZmFpbCAiJHRlc3RfbmFtZSIKK30gZWxzZSB7CisgICAgcGFz cyAiJHRlc3RfbmFtZSIKK30KKworc2V0IHRlc3QgZ2FiaW5vcm1hbAorc2V0 IHRlc3RfbmFtZSAiTGluayB3aXRoIHpsaWItZ2FiaSBjb21wcmVzc2VkIGRl YnVnIG91dHB1dCIKK3NlbmRfbG9nICIkUkVBREVMRiAtdyB0bXBkaXIvJHRl c3QgPiB0bXBkaXIvJHRlc3Qub3V0XG4iCitzZXQgZ290IFtyZW1vdGVfZXhl YyBob3N0ICIkUkVBREVMRiAtdyB0bXBkaXIvJHRlc3QiICIiICIvZGV2L251 bGwiICJ0bXBkaXIvJHRlc3Qub3V0Il0KK2lmIHsgW2xpbmRleCAkZ290IDBd ICE9IDAgfHwgIVtzdHJpbmcgbWF0Y2ggIiIgW2xpbmRleCAkZ290IDFdXSB9 IHRoZW4geworICAgIHNlbmRfbG9nICIkZ290XG4iCisgICAgdW5yZXNvbHZl ZCAiJHRlc3RfbmFtZSIKK30KK2lmIHsgW2NhdGNoIHtleGVjIGNtcCB0bXBk aXIvbm9ybWFsLm91dCB0bXBkaXIvJHRlc3Qub3V0fV0gfSB0aGVuIHsKKyAg ICBzZW5kX2xvZyAidG1wZGlyL25vcm1hbC5vdXQgdG1wZGlyLyR0ZXN0Lm91 dCBkaWZmZXIuXG4iCisgICAgZmFpbCAiJHRlc3RfbmFtZSIKK30gZWxzZSB7 CisgICAgcGFzcyAiJHRlc3RfbmFtZSIKK30KK3NlbmRfbG9nICIkUkVBREVM RiAtdCAtVyB0bXBkaXIvJHRlc3QgPiB0bXBkaXIvJHRlc3Qub3V0XG4iCitz ZXQgZ290IFtyZW1vdGVfZXhlYyBob3N0ICIkUkVBREVMRiAtdCAtVyB0bXBk aXIvJHRlc3QiICIiICIvZGV2L251bGwiICJ0bXBkaXIvJHRlc3Qub3V0Il0K K2lmIHsgW2xpbmRleCAkZ290IDBdICE9IDAgfHwgIVtzdHJpbmcgbWF0Y2gg IiIgW2xpbmRleCAkZ290IDFdXSB9IHRoZW4geworICAgIHNlbmRfbG9nICIk Z290XG4iCisgICAgdW5yZXNvbHZlZCAiJHRlc3RfbmFtZSIKK30KK2lmIHsg W3JlZ2V4cF9kaWZmIHRtcGRpci8kdGVzdC5vdXQgJHNyY2Rpci8kc3ViZGly LyR0ZXN0LnJ0XSB9IHRoZW4geworICAgIGZhaWwgIiR0ZXN0X25hbWUiCit9 IGVsc2UgeworICAgIHBhc3MgIiR0ZXN0X25hbWUiCit9CmRpZmYgLS1naXQg YS9sZC90ZXN0c3VpdGUvbGQtZWxmL2dhYmllbmQucnQgYi9sZC90ZXN0c3Vp dGUvbGQtZWxmL2dhYmllbmQucnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMjNiYzM2YwotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rl c3RzdWl0ZS9sZC1lbGYvZ2FiaWVuZC5ydApAQCAtMCwwICsxLDQgQEAKKyMu Li4KKyArXFtbMC05YS1mXStcXTogLipDT01QUkVTU0VECisgK1pMSUIsIFsw LTlhLWZdKywgMQorI3Bhc3MKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9s ZC1lbGYvZ2FiaW5vcm1hbC5ydCBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZ2Fi aW5vcm1hbC5ydApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4yM2JjMzZjCi0tLSAvZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xk LWVsZi9nYWJpbm9ybWFsLnJ0CkBAIC0wLDAgKzEsNCBAQAorIy4uLgorICtc W1swLTlhLWZdK1xdOiAuKkNPTVBSRVNTRUQKKyArWkxJQiwgWzAtOWEtZl0r LCAxCisjcGFzcwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9n bnViZWdpbi5yUyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZ251YmVnaW4uclMK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTRkZTI0Ywot LS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZ251YmVn aW4uclMKQEAgLTAsMCArMSwzIEBACisjLi4uCisgK1xbWyAwLTldK1xdIC56 ZGVidWdfLiogKyhQUk9HQklUU3xNSVBTX0RXQVJGKSArMCsgK1swLTlhLWZd KyArWzAtOWEtZl0rIFswLTlhLWZdKyArMCArMCArMQorI3Bhc3MKZGlmZiAt LWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZ251bm9ybWFsLnJTIGIvbGQv dGVzdHN1aXRlL2xkLWVsZi9nbnVub3JtYWwuclMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTRkZTI0YwotLS0gL2Rldi9udWxsCisr KyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZ251bm9ybWFsLnJTCkBAIC0wLDAg KzEsMyBAQAorIy4uLgorICtcW1sgMC05XStcXSAuemRlYnVnXy4qICsoUFJP R0JJVFN8TUlQU19EV0FSRikgKzArICtbMC05YS1mXSsgK1swLTlhLWZdKyBb MC05YS1mXSsgKzAgKzAgKzEKKyNwYXNzCmRpZmYgLS1naXQgYS9sZC90ZXN0 c3VpdGUvbGQtZWxmL3psaWJiZWdpbi5yUyBiL2xkL3Rlc3RzdWl0ZS9sZC1l bGYvemxpYmJlZ2luLnJTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjU0ZGUyNGMKLS0tIC9kZXYvbnVsbAorKysgYi9sZC90ZXN0c3Vp dGUvbGQtZWxmL3psaWJiZWdpbi5yUwpAQCAtMCwwICsxLDMgQEAKKyMuLi4K KyArXFtbIDAtOV0rXF0gLnpkZWJ1Z18uKiArKFBST0dCSVRTfE1JUFNfRFdB UkYpICswKyArWzAtOWEtZl0rICtbMC05YS1mXSsgWzAtOWEtZl0rICswICsw ICsxCisjcGFzcwpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi96 bGlibm9ybWFsLnJTIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi96bGlibm9ybWFs LnJTCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ZGUy NGMKLS0tIC9kZXYvbnVsbAorKysgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3ps aWJub3JtYWwuclMKQEAgLTAsMCArMSwzIEBACisjLi4uCisgK1xbWyAwLTld K1xdIC56ZGVidWdfLiogKyhQUk9HQklUU3xNSVBTX0RXQVJGKSArMCsgK1sw LTlhLWZdKyArWzAtOWEtZl0rIFswLTlhLWZdKyArMCArMCArMQorI3Bhc3MK LS0gCjIuMS4wCgo= --001a113dd12859b3d80513ba50ce--