From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 88087 invoked by alias); 15 Apr 2015 05:07:10 -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 87055 invoked by uid 89); 15 Apr 2015 05:06:12 -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-f174.google.com Received: from mail-qk0-f174.google.com (HELO mail-qk0-f174.google.com) (209.85.220.174) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Wed, 15 Apr 2015 05:06:08 +0000 Received: by qkhg7 with SMTP id g7so61767724qkh.2 for ; Tue, 14 Apr 2015 22:06:05 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.202.208.1 with SMTP id h1mr13649136oig.74.1429074333263; Tue, 14 Apr 2015 22:05:33 -0700 (PDT) Received: by 10.76.54.14 with HTTP; Tue, 14 Apr 2015 22:05:33 -0700 (PDT) In-Reply-To: <20150415035850.GA30136@bubble.grove.modra.org> References: <20150415005524.GB31531@bubble.grove.modra.org> <20150415035850.GA30136@bubble.grove.modra.org> Date: Wed, 15 Apr 2015 05:07: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=001a113dd254fe2ac30513bc4b87 X-IsSubscribed: yes X-SW-Source: 2015-04/txt/msg00235.txt.bz2 --001a113dd254fe2ac30513bc4b87 Content-Type: text/plain; charset=UTF-8 Content-length: 2427 On Tue, Apr 14, 2015 at 8:58 PM, Alan Modra wrote: > On Tue, Apr 14, 2015 at 07:43:36PM -0700, H.J. Lu wrote: >> On Tue, Apr 14, 2015 at 5:55 PM, Alan Modra wrote: >> > 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? > > I still think the extra arguments are better, but will OK this one > with some fixes. > >> @@ -283,13 +284,15 @@ sec_merge_add (struct sec_merge_hash *tab, const char *str, >> } >> >> static bfd_boolean >> -sec_merge_emit (bfd *abfd, struct sec_merge_hash_entry *entry) >> +sec_merge_emit (bfd *abfd, struct sec_merge_hash_entry *entry, >> + file_ptr offset) >> { >> struct sec_merge_sec_info *secinfo = entry->secinfo; >> asection *sec = secinfo->sec; >> char *pad = NULL; >> bfd_size_type off = 0; >> int alignment_power = sec->output_section->alignment_power; >> + unsigned char *contents = NULL; > > pass contents to sec_merge_emit, so that > >> @@ -298,6 +301,14 @@ sec_merge_emit (bfd *abfd, struct sec_merge_hash_entry *entry) >> return FALSE; >> } >> >> + if (bfd_get_flavour (abfd) == bfd_target_elf_flavour) >> + { >> + Elf_Internal_Shdr *hdr >> + = &elf_section_data (sec->output_section)->this_hdr; >> + if (hdr->sh_offset == (file_ptr) -1) >> + contents = hdr->contents; >> + } >> + > > this hunk can disappear. > >> @@ -794,12 +820,33 @@ _bfd_write_merged_section (bfd *output_bfd, asection *sec, void *psecinfo) >> if (secinfo->first_str == NULL) >> return TRUE; >> >> + contents = NULL; >> + >> /* FIXME: octets_per_byte. */ >> - pos = sec->output_section->filepos + sec->output_offset; >> - if (bfd_seek (output_bfd, pos, SEEK_SET) != 0) >> - return FALSE; >> + if (bfd_get_flavour (output_bfd) == bfd_target_elf_flavour) > > Delete this unnecessary test. merge.c is only used with ELF output. > This is what I checked in. Thanks. -- H.J. --001a113dd254fe2ac30513bc4b87 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_i8i9y5u20 Content-length: 45563 RnJvbSAyZDhmZjM4YzE5YTdiNjY5MDU4OTc4OGFjZjExMDdiMjI0Nzc1NzA1 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 bHVkZSAiZWxmLWJmZC5oIi4KCShzZWNfbWVyZ2VfZW1pdCk6IEFkZCBhcmd1 bWVudHMgZm9yIGNvbnRlbnRzIGFuZCBvZmZzZXQuICBXcml0ZQoJdG8gY29u dGVudHMgd2l0aCBvZmZzZXQgaWYgY29udGVudHMgaXNuJ3QgTlVMTC4KCShf YmZkX3dyaXRlX21lcmdlZF9zZWN0aW9uKTogV3JpdGUgc2VjdGlvbiBjb250 ZW50cyB0byB0aGUKCWJ1ZmZlciBpZiBTRUNfRUxGX0NPTVBSRVNTIGlzIHNl dC4gIFBhc3MgY29udGVudHMgYW5kCglvdXRwdXRfb2Zmc2V0IHRvIHNlY19t ZXJnZV9lbWl0LgoJKiBlbGZsaW5rLmMgKGJmZF9lbGZfZmluYWxfbGluayk6 IEFsbG9jYXRlIHRoZSBidWZmZXIgZm9yCglvdXRwdXQgc2VjdGlvbiBjb250 ZW50cyBpZiBTRUNfRUxGX0NPTVBSRVNTIGlzIHNldC4KCSogc2VjdGlvbi5j IChTRUNfRUxGX0NPTVBSRVNTKTogTmV3LgoJKiBiZmQtaW4yLmg6IFJlZ2Vu ZXJhdGVkLgoKZ2FzLwoKCSogYXMuaCAoY29tcHJlc3NlZF9kZWJ1Z19zZWN0 aW9uX3R5cGUpOiBSZW1vdmVkLgoKaW5jbHVkZS8KCgkqIGJmZGxpbmsuaCAo YmZkX2xpbmtfaW5mbyk6IEFkZCBjb21wcmVzc19kZWJ1Zy4KCmxkLwoKCSog bGQudGV4aW5mbzogRG9jdW1lbnQgLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9u cz0uCgkqIGxkbWFpbi5jIChtYWluKTogU2V0IEJGRF9DT01QUkVTUyBvbiBv dXRwdXRfYmZkIGlmCglDT01QUkVTU19ERUJVRyBpcyBzZXQuICBTZXQgQkZE X0NPTVBSRVNTX0dBQkkgb24gb3V0cHV0X2JmZAoJZm9yIENPTVBSRVNTX0RF QlVHX0dBQklfWkxJQi4KCSogbGV4c3VwLmMgKGVsZl9zdGF0aWNfbGlzdF9v cHRpb25zKTogQWRkCgktLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPS4KCSog ZW11bHRlbXBsL2VsZjMyLmVtIChPUFRJT05fQ09NUFJFU1NfREVCVUcpOiBO ZXcuCgkoeHRyYV9sb25nKTogQWRkICJjb21wcmVzcy1kZWJ1Zy1zZWN0aW9u cyIuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1faGFuZGxlX29wdGlvbik6IEhh bmRsZQoJT1BUSU9OX0NPTVBSRVNTX0RFQlVHLgoKbGQvdGVzdHN1aXRlLwoK CSogbGQtZWxmL2NvbXByZXNzLmV4cCAoYnVpbGRfdGVzdHMpOiBBZGQgdGVz dHMgZm9yCgktLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zPS4KCShydW5fdGVz dHMpOiBMaWtld2lzZS4KCUFkZCBhZGRpdG9uYWwgdGVzdHMgZm9yIC0tY29t cHJlc3MtZGVidWctc2VjdGlvbnM9LgoJKiBsZC1lbGYvZ2FiaWVuZC5ydDog TmV3IGZpbGUuCgkqIGxkLWVsZi9nYWJpbm9ybWFsLnJ0OiBMaWtld2lzZS4K CSogbGQtZWxmL2dudWJlZ2luLnJTOiBMaWtld2lzZS4KCSogbGQtZWxmL2du dW5vcm1hbC5yUzogTGlrZXdpc2UuCgkqIGxkLWVsZi96bGliYmVnaW4uclM6 IExpa2V3aXNlLgoJKiBsZC1lbGYvemxpYm5vcm1hbC5yUzogTGlrZXdpc2Uu Ci0tLQogYmZkL2JmZC1pbi5oICAgICAgICAgICAgICAgICAgICAgIHwgIDEx ICsrKwogYmZkL2JmZC1pbjIuaCAgICAgICAgICAgICAgICAgICAgIHwgIDE4 ICsrKysKIGJmZC9jb21wcmVzcy5jICAgICAgICAgICAgICAgICAgICB8ICA1 MSArKysrKysrKysrKy0KIGJmZC9lbGYuYyAgICAgICAgICAgICAgICAgICAg ICAgICB8ICA4OSArKysrKysrKysrKysrKysrKystLQogYmZkL2VsZmxpbmsu YyAgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsrKysKIGJmZC9tZXJnZS5j ICAgICAgICAgICAgICAgICAgICAgICB8ICA1MyArKysrKysrKystLS0KIGJm ZC9zZWN0aW9uLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNCArCiBnYXMv YXMuaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgLS0tCiBpbmNs dWRlL2JmZGxpbmsuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogbGQvZW11 bHRlbXBsL2VsZjMyLmVtICAgICAgICAgICAgIHwgIDE1ICsrKysKIGxkL2xk LnRleGluZm8gICAgICAgICAgICAgICAgICAgICB8ICAxNiArKysrCiBsZC9s ZG1haW4uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKysKIGxkL2xl eHN1cC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBsZC90ZXN0 c3VpdGUvbGQtZWxmL2NvbXByZXNzLmV4cCAgfCAxNjcgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKy0KIGxkL3Rlc3RzdWl0ZS9sZC1l bGYvZ2FiaWVuZC5ydCAgICB8ICAgNCArCiBsZC90ZXN0c3VpdGUvbGQtZWxm L2dhYmlub3JtYWwucnQgfCAgIDQgKwogbGQvdGVzdHN1aXRlL2xkLWVsZi9n bnViZWdpbi5yUyAgIHwgICAzICsKIGxkL3Rlc3RzdWl0ZS9sZC1lbGYvZ251 bm9ybWFsLnJTICB8ICAgMyArCiBsZC90ZXN0c3VpdGUvbGQtZWxmL3psaWJi ZWdpbi5yUyAgfCAgIDMgKwogbGQvdGVzdHN1aXRlL2xkLWVsZi96bGlibm9y bWFsLnJTIHwgICAzICsKIDIwIGZpbGVzIGNoYW5nZWQsIDQ1MCBpbnNlcnRp b25zKCspLCAzMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBs ZC90ZXN0c3VpdGUvbGQtZWxmL2dhYmllbmQucnQKIGNyZWF0ZSBtb2RlIDEw MDY0NCBsZC90ZXN0c3VpdGUvbGQtZWxmL2dhYmlub3JtYWwucnQKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQtZWxmL2dudWJlZ2luLnJT CiBjcmVhdGUgbW9kZSAxMDA2NDQgbGQvdGVzdHN1aXRlL2xkLWVsZi9nbnVu b3JtYWwuclMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsZC90ZXN0c3VpdGUvbGQt ZWxmL3psaWJiZWdpbi5yUwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3Rz dWl0ZS9sZC1lbGYvemxpYm5vcm1hbC5yUwoKZGlmZiAtLWdpdCBhL2JmZC9i ZmQtaW4uaCBiL2JmZC9iZmQtaW4uaAppbmRleCAxZjhhNzJjLi4yZTMyNGNk IDEwMDY0NAotLS0gYS9iZmQvYmZkLWluLmgKKysrIGIvYmZkL2JmZC1pbi5o CkBAIC00MzcsNiArNDM3LDE3IEBAIGV4dGVybiB2b2lkIGJmZF9oYXNoX3Ry YXZlcnNlCiAgICB0aGlzIHNpemUuICAqLwogZXh0ZXJuIHVuc2lnbmVkIGxv bmcgYmZkX2hhc2hfc2V0X2RlZmF1bHRfc2l6ZSAodW5zaWduZWQgbG9uZyk7 CiAKKy8qIFR5cGVzIG9mIGNvbXByZXNzZWQgRFdBUkYgZGVidWcgc2VjdGlv bnMuICBXZSBjdXJyZW50bHkgc3VwcG9ydAorICAgemxpYi4gICovCitlbnVt IGNvbXByZXNzZWRfZGVidWdfc2VjdGlvbl90eXBlCit7CisgIENPTVBSRVNT X0RFQlVHX05PTkUgPSAwLAorICBDT01QUkVTU19ERUJVRyA9IDEgPDwgMCwK KyAgQ09NUFJFU1NfREVCVUdfWkxJQiA9IENPTVBSRVNTX0RFQlVHIHwgMSA8 PCAxLAorICBDT01QUkVTU19ERUJVR19HTlVfWkxJQiA9IENPTVBSRVNTX0RF QlVHIHwgMSA8PCAyLAorICBDT01QUkVTU19ERUJVR19HQUJJX1pMSUIgPSBD T01QUkVTU19ERUJVRyB8IDEgPDwgMworfTsKKwogLyogVGhpcyBzdHJ1Y3R1 cmUgaXMgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHN0YWJzIGluIHNlY3Rpb25z CiAgICBpbmZvcm1hdGlvbiB3aGlsZSBsaW5raW5nLiAgKi8KIApkaWZmIC0t Z2l0IGEvYmZkL2JmZC1pbjIuaCBiL2JmZC9iZmQtaW4yLmgKaW5kZXggNjc5 NTk1ZS4uMTIyY2FhMCAxMDA2NDQKLS0tIGEvYmZkL2JmZC1pbjIuaAorKysg Yi9iZmQvYmZkLWluMi5oCkBAIC00NDQsNiArNDQ0LDE3IEBAIGV4dGVybiB2 b2lkIGJmZF9oYXNoX3RyYXZlcnNlCiAgICB0aGlzIHNpemUuICAqLwogZXh0 ZXJuIHVuc2lnbmVkIGxvbmcgYmZkX2hhc2hfc2V0X2RlZmF1bHRfc2l6ZSAo dW5zaWduZWQgbG9uZyk7CiAKKy8qIFR5cGVzIG9mIGNvbXByZXNzZWQgRFdB UkYgZGVidWcgc2VjdGlvbnMuICBXZSBjdXJyZW50bHkgc3VwcG9ydAorICAg emxpYi4gICovCitlbnVtIGNvbXByZXNzZWRfZGVidWdfc2VjdGlvbl90eXBl Cit7CisgIENPTVBSRVNTX0RFQlVHX05PTkUgPSAwLAorICBDT01QUkVTU19E RUJVRyA9IDEgPDwgMCwKKyAgQ09NUFJFU1NfREVCVUdfWkxJQiA9IENPTVBS RVNTX0RFQlVHIHwgMSA8PCAxLAorICBDT01QUkVTU19ERUJVR19HTlVfWkxJ QiA9IENPTVBSRVNTX0RFQlVHIHwgMSA8PCAyLAorICBDT01QUkVTU19ERUJV R19HQUJJX1pMSUIgPSBDT01QUkVTU19ERUJVRyB8IDEgPDwgMworfTsKKwog LyogVGhpcyBzdHJ1Y3R1cmUgaXMgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHN0 YWJzIGluIHNlY3Rpb25zCiAgICBpbmZvcm1hdGlvbiB3aGlsZSBsaW5raW5n LiAgKi8KIApAQCAtMTM3OCw2ICsxMzg5LDEwIEBAIHR5cGVkZWYgc3RydWN0 IGJmZF9zZWN0aW9uCiAgICAgIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmpl Y3RzLiBUaGlzIGlzIGZvciBDT0ZGIG9ubHkuICAqLwogI2RlZmluZSBTRUNf Q09GRl9TSEFSRUQgMHg4MDAwMDAwCiAKKyAgLyogVGhpcyBzZWN0aW9uIHNo b3VsZCBiZSBjb21wcmVzc2VkLiAgVGhpcyBpcyBmb3IgRUxGIGxpbmtlcgor ICAgICBpbnRlcm5hbCB1c2Ugb25seS4gICovCisjZGVmaW5lIFNFQ19FTEZf Q09NUFJFU1MgMHg4MDAwMDAwCisKICAgLyogV2hlbiBhIHNlY3Rpb24gd2l0 aCB0aGlzIGZsYWcgaXMgYmVpbmcgbGlua2VkLCB0aGVuIGlmIHRoZSBzaXpl IG9mCiAgICAgIHRoZSBpbnB1dCBzZWN0aW9uIGlzIGxlc3MgdGhhbiBhIHBh Z2UsIGl0IHNob3VsZCBub3QgY3Jvc3MgYSBwYWdlCiAgICAgIGJvdW5kYXJ5 LiAgSWYgdGhlIHNpemUgb2YgdGhlIGlucHV0IHNlY3Rpb24gaXMgb25lIHBh Z2Ugb3IgbW9yZSwKQEAgLTczMTYsNiArNzMzMSw5IEBAIGJmZF9ib29sZWFu IGJmZF9pbml0X3NlY3Rpb25fZGVjb21wcmVzc19zdGF0dXMKIGJmZF9ib29s ZWFuIGJmZF9pbml0X3NlY3Rpb25fY29tcHJlc3Nfc3RhdHVzCiAgICAoYmZk ICphYmZkLCBhc2VjdGlvbiAqc2VjdGlvbik7CiAKK2JmZF9ib29sZWFuIGJm ZF9jb21wcmVzc19zZWN0aW9uCisgICAoYmZkICphYmZkLCBhc2VjdGlvbiAq c2VjdGlvbiwgYmZkX2J5dGUgKnVuY29tcHJlc3NlZF9idWZmZXIpOworCiAj aWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvYmZk L2NvbXByZXNzLmMgYi9iZmQvY29tcHJlc3MuYwppbmRleCA3NzBlYTU3Li5k ZmRlNTBlIDEwMDY0NAotLS0gYS9iZmQvY29tcHJlc3MuYworKysgYi9iZmQv Y29tcHJlc3MuYwpAQCAtNzIsNyArNzIsOCBAQCBkZWNvbXByZXNzX2NvbnRl bnRzIChiZmRfYnl0ZSAqY29tcHJlc3NlZF9idWZmZXIsCiBzdGF0aWMgYmZk X3NpemVfdHlwZQogYmZkX2NvbXByZXNzX3NlY3Rpb25fY29udGVudHMgKGJm ZCAqYWJmZCwgc2VjX3B0ciBzZWMsCiAJCQkgICAgICAgYmZkX2J5dGUgKnVu Y29tcHJlc3NlZF9idWZmZXIsCi0JCQkgICAgICAgYmZkX3NpemVfdHlwZSB1 bmNvbXByZXNzZWRfc2l6ZSkKKwkJCSAgICAgICBiZmRfc2l6ZV90eXBlIHVu Y29tcHJlc3NlZF9zaXplLAorCQkJICAgICAgIGJmZF9ib29sZWFuIHdyaXRl X2NvbXByZXNzKQogewogICB1TG9uZyBjb21wcmVzc2VkX3NpemU7CiAgIGJm ZF9ieXRlICpidWZmZXI7CkBAIC0xNzYsOCArMTc3LDExIEBAIGJmZF9jb21w cmVzc19zZWN0aW9uX2NvbnRlbnRzIChiZmQgKmFiZmQsIHNlY19wdHIgc2Vj LAogCiAgICAgICBjb21wcmVzc2VkX3NpemUgKz0gaGVhZGVyX3NpemU7CiAg ICAgICAvKiBQUiBiaW51dGlscy8xODA4NzogSWYgY29tcHJlc3Npb24gZGlk bid0IG1ha2UgdGhlIHNlY3Rpb24gc21hbGxlciwKLQkganVzdCBrZWVwIGl0 IHVuY29tcHJlc3NlZC4gICovCi0gICAgICBpZiAoY29tcHJlc3NlZF9zaXpl IDwgdW5jb21wcmVzc2VkX3NpemUpCisJIGp1c3Qga2VlcCBpdCB1bmNvbXBy ZXNzZWQuICBXZSBhbHdheXMgZ2VuZXJhdGUgLnpkZWJ1Z18qIHNlY3Rpb24K Kwkgd2hlbiBsaW5raW5nIHNpbmNlIHNlY3Rpb24gbmFtZXMgaGF2ZSBiZWVu IGZpbmFsaXplZCBhbmQgdGhleQorCSBjYW4ndCBiZSBjaGFuZ2VkIGVhc2ls eS4gICovCisgICAgICBpZiAoKHdyaXRlX2NvbXByZXNzICYmIGNvbXByZXNz aW9uX2hlYWRlcl9zaXplID09IDApCisJICAgfHwgY29tcHJlc3NlZF9zaXpl IDwgdW5jb21wcmVzc2VkX3NpemUpCiAJewogCSAgYmZkX3VwZGF0ZV9jb21w cmVzc2lvbl9oZWFkZXIgKGFiZmQsIGJ1ZmZlciwgc2VjKTsKIApAQCAtNTQz LDkgKzU0Nyw0OCBAQCBiZmRfaW5pdF9zZWN0aW9uX2NvbXByZXNzX3N0YXR1 cyAoYmZkICphYmZkLCBzZWNfcHRyIHNlYykKICAgICB7CiAgICAgICB1bmNv bXByZXNzZWRfc2l6ZSA9IGJmZF9jb21wcmVzc19zZWN0aW9uX2NvbnRlbnRz IChhYmZkLCBzZWMsCiAJCQkJCQkJIHVuY29tcHJlc3NlZF9idWZmZXIsCi0J CQkJCQkJIHVuY29tcHJlc3NlZF9zaXplKTsKKwkJCQkJCQkgdW5jb21wcmVz c2VkX3NpemUsCisJCQkJCQkJIEZBTFNFKTsKICAgICAgIHJldCA9IHVuY29t cHJlc3NlZF9zaXplICE9IDA7CiAgICAgfQogCiAgIHJldHVybiByZXQ7CiB9 CisKKy8qCitGVU5DVElPTgorCWJmZF9jb21wcmVzc19zZWN0aW9uCisKK1NZ Tk9QU0lTCisJYmZkX2Jvb2xlYW4gYmZkX2NvbXByZXNzX3NlY3Rpb24KKwkg IChiZmQgKmFiZmQsIGFzZWN0aW9uICpzZWN0aW9uLCBiZmRfYnl0ZSAqdW5j b21wcmVzc2VkX2J1ZmZlcik7CisKK0RFU0NSSVBUSU9OCisJSWYgb3BlbiBm b3Igd3JpdGUsIGNvbXByZXNzIHNlY3Rpb24sIHVwZGF0ZSBzZWN0aW9uIHNp emUgd2l0aAorCWNvbXByZXNzZWQgc2l6ZSBhbmQgc2V0IGNvbXByZXNzX3N0 YXR1cyB0byBDT01QUkVTU19TRUNUSU9OX0RPTkUuCisKKwlSZXR1cm4gQGNv ZGV7RkFMU0V9IGlmIGNvbXByZXNzaW9uIGZhaWwuICBPdGhlcndpc2UsIHJl dHVybgorCUBjb2Rle1RSVUV9LgorKi8KKworYmZkX2Jvb2xlYW4KK2JmZF9j b21wcmVzc19zZWN0aW9uIChiZmQgKmFiZmQsIHNlY19wdHIgc2VjLCBiZmRf Ynl0ZSAqdW5jb21wcmVzc2VkX2J1ZmZlcikKK3sKKyAgYmZkX3NpemVfdHlw ZSB1bmNvbXByZXNzZWRfc2l6ZSA9IHNlYy0+c2l6ZTsKKworICAvKiBFcnJv ciBpZiBub3Qgb3BlbmVkIGZvciB3cml0ZS4gICovCisgIGlmIChhYmZkLT5k aXJlY3Rpb24gIT0gd3JpdGVfZGlyZWN0aW9uCisgICAgICB8fCB1bmNvbXBy ZXNzZWRfc2l6ZSA9PSAwCisgICAgICB8fCB1bmNvbXByZXNzZWRfYnVmZmVy ID09IE5VTEwKKyAgICAgIHx8IHNlYy0+Y29udGVudHMgIT0gTlVMTAorICAg ICAgfHwgc2VjLT5jb21wcmVzc2VkX3NpemUgIT0gMAorICAgICAgfHwgc2Vj LT5jb21wcmVzc19zdGF0dXMgIT0gQ09NUFJFU1NfU0VDVElPTl9OT05FKQor ICAgIHsKKyAgICAgIGJmZF9zZXRfZXJyb3IgKGJmZF9lcnJvcl9pbnZhbGlk X29wZXJhdGlvbik7CisgICAgICByZXR1cm4gRkFMU0U7CisgICAgfQorCisg IC8qIENvbXByZXNzIGl0LiAgKi8KKyAgcmV0dXJuIGJmZF9jb21wcmVzc19z ZWN0aW9uX2NvbnRlbnRzIChhYmZkLCBzZWMsIHVuY29tcHJlc3NlZF9idWZm ZXIsCisJCQkJCXVuY29tcHJlc3NlZF9zaXplLCBUUlVFKSAhPSAwOworfQpk aWZmIC0tZ2l0IGEvYmZkL2VsZi5jIGIvYmZkL2VsZi5jCmluZGV4IDQxZmIw MjMuLjg1YTRiNmIgMTAwNjQ0Ci0tLSBhL2JmZC9lbGYuYworKysgYi9iZmQv ZWxmLmMKQEAgLTI3NTIsNiArMjc1Miw3IEBAIGVsZl9mYWtlX3NlY3Rpb25z IChiZmQgKmFiZmQsIGFzZWN0aW9uICphc2VjdCwgdm9pZCAqZnNhcmcpCiAg IHN0cnVjdCBiZmRfZWxmX3NlY3Rpb25fZGF0YSAqZXNkID0gZWxmX3NlY3Rp b25fZGF0YSAoYXNlY3QpOwogICBFbGZfSW50ZXJuYWxfU2hkciAqdGhpc19o ZHI7CiAgIHVuc2lnbmVkIGludCBzaF90eXBlOworICBjb25zdCBjaGFyICpu YW1lID0gYXNlY3QtPm5hbWU7CiAKICAgaWYgKGFyZy0+ZmFpbGVkKQogICAg IHsKQEAgLTI3NjIsOCArMjc2MywzOCBAQCBlbGZfZmFrZV9zZWN0aW9ucyAo YmZkICphYmZkLCBhc2VjdGlvbiAqYXNlY3QsIHZvaWQgKmZzYXJnKQogCiAg IHRoaXNfaGRyID0gJmVzZC0+dGhpc19oZHI7CiAKKyAgLyogRm9yIGxpbmtp bmcsIGNvbXByZXNzIERXQVJGIGRlYnVnIHNlY3Rpb25zIHdpdGggbmFtZXM6 IC5kZWJ1Z18qLiAgKi8KKyAgaWYgKGFyZy0+bGlua19pbmZvCisgICAgICAm JiAoYXJnLT5saW5rX2luZm8tPmNvbXByZXNzX2RlYnVnICYgQ09NUFJFU1Nf REVCVUcpCisgICAgICAmJiAoYXNlY3QtPmZsYWdzICYgU0VDX0RFQlVHR0lO RykKKyAgICAgICYmIG5hbWVbMV0gPT0gJ2QnCisgICAgICAmJiBuYW1lWzZd ID09ICdfJykKKyAgICB7CisgICAgICAvKiBTZXQgU0VDX0VMRl9DT01QUkVT UyB0byBpbmRpY2F0ZSB0aGlzIHNlY3Rpb24gc2hvdWxkIGJlCisJIGNvbXBy ZXNzZWQuICAqLworICAgICAgYXNlY3QtPmZsYWdzIHw9IFNFQ19FTEZfQ09N UFJFU1M7CisKKyAgICAgIGlmIChhcmctPmxpbmtfaW5mby0+Y29tcHJlc3Nf ZGVidWcgIT0gQ09NUFJFU1NfREVCVUdfR0FCSV9aTElCKQorCXsKKwkgIC8q IElmIFNIRl9DT01QUkVTU0VEIGlzbid0IHVzZWQsIHJlbmFtZSBjb21wcmVz c2VkIERXQVJGCisJICAgICBkZWJ1ZyBzZWN0aW9uIHRvIC56ZGVidWdfKi4g ICovCisJICB1bnNpZ25lZCBpbnQgbGVuID0gc3RybGVuIChuYW1lKTsKKwkg IGNoYXIgKm5ld19uYW1lID0gYmZkX2FsbG9jIChhYmZkLCBsZW4gKyAyKTsK KwkgIGlmIChuZXdfbmFtZSA9PSBOVUxMKQorCSAgICB7CisJICAgICAgYXJn LT5mYWlsZWQgPSBUUlVFOworCSAgICAgIHJldHVybjsKKwkgICAgfQorCSAg bmV3X25hbWVbMF0gPSAnLic7CisJICBuZXdfbmFtZVsxXSA9ICd6JzsKKwkg IG1lbWNweSAobmV3X25hbWUgKyAyLCBuYW1lICsgMSwgbGVuKTsKKwkgIGJm ZF9yZW5hbWVfc2VjdGlvbiAoYWJmZCwgYXNlY3QsIG5ld19uYW1lKTsKKwkg IG5hbWUgPSBhc2VjdC0+bmFtZTsKKwl9CisgICAgfQorCiAgIHRoaXNfaGRy LT5zaF9uYW1lID0gKHVuc2lnbmVkIGludCkgX2JmZF9lbGZfc3RydGFiX2Fk ZCAoZWxmX3Noc3RydGFiIChhYmZkKSwKLQkJCQkJCQkgIGFzZWN0LT5uYW1l LCBGQUxTRSk7CisJCQkJCQkJICBuYW1lLCBGQUxTRSk7CiAgIGlmICh0aGlz X2hkci0+c2hfbmFtZSA9PSAodW5zaWduZWQgaW50KSAtMSkKICAgICB7CiAg ICAgICBhcmctPmZhaWxlZCA9IFRSVUU7CkBAIC01MTE2LDYgKzUxNDcsOSBA QCBhc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9yX25vbl9sb2FkX3NlY3Rpb25z IChiZmQgKmFiZmQsCiAJfQogICAgICAgZWxzZSBpZiAoKChoZHItPnNoX3R5 cGUgPT0gU0hUX1JFTCB8fCBoZHItPnNoX3R5cGUgPT0gU0hUX1JFTEEpCiAJ CSYmIGhkci0+YmZkX3NlY3Rpb24gPT0gTlVMTCkKKwkgICAgICAgfHwgKGhk ci0+YmZkX3NlY3Rpb24gIT0gTlVMTAorCQkgICAmJiAoaGRyLT5iZmRfc2Vj dGlvbi0+ZmxhZ3MgJiBTRUNfRUxGX0NPTVBSRVNTKSkKKwkJICAgLyogQ29t cHJlc3MgRFdBUkYgZGVidWcgc2VjdGlvbnMuICAqLwogCSAgICAgICB8fCBo ZHIgPT0gaV9zaGRycHBbZWxmX29uZXN5bXRhYiAoYWJmZCldCiAJICAgICAg IHx8IGhkciA9PSBpX3NoZHJwcFtlbGZfc3ltdGFiX3NobmR4IChhYmZkKV0K IAkgICAgICAgfHwgaGRyID09IGlfc2hkcnBwW2VsZl9zdHJ0YWJfc2VjIChh YmZkKV0pCkBAIC01MzY1LDYgKzUzOTksOSBAQCBhc3NpZ25fZmlsZV9wb3Np dGlvbnNfZXhjZXB0X3JlbG9jcyAoYmZkICphYmZkLAogCSAgaGRyID0gKmhk cnBwOwogCSAgaWYgKCgoaGRyLT5zaF90eXBlID09IFNIVF9SRUwgfHwgaGRy LT5zaF90eXBlID09IFNIVF9SRUxBKQogCSAgICAgICAmJiBoZHItPmJmZF9z ZWN0aW9uID09IE5VTEwpCisJICAgICAgfHwgKGhkci0+YmZkX3NlY3Rpb24g IT0gTlVMTAorCQkgICYmIChoZHItPmJmZF9zZWN0aW9uLT5mbGFncyAmIFNF Q19FTEZfQ09NUFJFU1MpKQorCQkgIC8qIENvbXByZXNzIERXQVJGIGRlYnVn IHNlY3Rpb25zLiAgKi8KIAkgICAgICB8fCBpID09IGVsZl9vbmVzeW10YWIg KGFiZmQpCiAJICAgICAgfHwgaSA9PSBlbGZfc3ltdGFiX3NobmR4IChhYmZk KQogCSAgICAgIHx8IGkgPT0gZWxmX3N0cnRhYl9zZWMgKGFiZmQpKQpAQCAt NTUxOCw4ICs1NTU1LDggQEAgcHJlcF9oZWFkZXJzIChiZmQgKmFiZmQpCiAv KiBBc3NpZ24gZmlsZSBwb3NpdGlvbnMgZm9yIGFsbCB0aGUgcmVsb2Mgc2Vj dGlvbnMgd2hpY2ggYXJlIG5vdCBwYXJ0CiAgICBvZiB0aGUgbG9hZGFibGUg ZmlsZSBpbWFnZSwgYW5kIHRoZSBmaWxlIHBvc2l0aW9uIG9mIHNlY3Rpb24g aGVhZGVycy4gICovCiAKLXN0YXRpYyB2b2lkCi1fYmZkX2VsZl9hc3NpZ25f ZmlsZV9wb3NpdGlvbnNfZm9yX3JlbG9jcyAoYmZkICphYmZkKQorc3RhdGlj IGJmZF9ib29sZWFuCitfYmZkX2VsZl9hc3NpZ25fZmlsZV9wb3NpdGlvbnNf Zm9yX25vbl9sb2FkIChiZmQgKmFiZmQpCiB7CiAgIGZpbGVfcHRyIG9mZjsK ICAgdW5zaWduZWQgaW50IGksIG51bV9zZWM7CkBAIC01NTM1LDkgKzU1NzIs MzAgQEAgX2JmZF9lbGZfYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9yZWxv Y3MgKGJmZCAqYWJmZCkKICAgICAgIEVsZl9JbnRlcm5hbF9TaGRyICpzaGRy cDsKIAogICAgICAgc2hkcnAgPSAqc2hkcnBwOwotICAgICAgaWYgKChzaGRy cC0+c2hfdHlwZSA9PSBTSFRfUkVMIHx8IHNoZHJwLT5zaF90eXBlID09IFNI VF9SRUxBKQotCSAgJiYgc2hkcnAtPnNoX29mZnNldCA9PSAtMSkKLQlvZmYg PSBfYmZkX2VsZl9hc3NpZ25fZmlsZV9wb3NpdGlvbl9mb3Jfc2VjdGlvbiAo c2hkcnAsIG9mZiwgVFJVRSk7CisgICAgICBpZiAoc2hkcnAtPnNoX29mZnNl dCA9PSAtMSkKKwl7CisJICBiZmRfYm9vbGVhbiBpc19yZWwgPSAoc2hkcnAt PnNoX3R5cGUgPT0gU0hUX1JFTAorCQkJCXx8IHNoZHJwLT5zaF90eXBlID09 IFNIVF9SRUxBKTsKKwkgIGlmIChpc19yZWwKKwkgICAgICB8fCAoc2hkcnAt PmJmZF9zZWN0aW9uICE9IE5VTEwKKwkJICAmJiAoc2hkcnAtPmJmZF9zZWN0 aW9uLT5mbGFncyAmIFNFQ19FTEZfQ09NUFJFU1MpKSkKKwkgICAgeworCSAg ICAgIGlmICghaXNfcmVsKQorCQl7CisJCSAgLyogQ29tcHJlc3MgRFdBUkYg ZGVidWcgc2VjdGlvbnMuICAqLworCQkgIGlmICghYmZkX2NvbXByZXNzX3Nl Y3Rpb24gKGFiZmQsIHNoZHJwLT5iZmRfc2VjdGlvbiwKKwkJCQkJICAgICBz aGRycC0+Y29udGVudHMpKQorCQkgICAgcmV0dXJuIEZBTFNFOworCQkgIC8q IFVwZGF0ZSBzZWN0aW9uIHNpemUgYW5kIGNvbnRlbnRzLiAgKi8KKwkJICBz aGRycC0+c2hfc2l6ZSA9IHNoZHJwLT5iZmRfc2VjdGlvbi0+c2l6ZTsKKwkJ ICBzaGRycC0+Y29udGVudHMgPSBzaGRycC0+YmZkX3NlY3Rpb24tPmNvbnRl bnRzOworCQkgIHNoZHJwLT5iZmRfc2VjdGlvbi0+Y29udGVudHMgPSBOVUxM OworCQl9CisJICAgICAgb2ZmID0gX2JmZF9lbGZfYXNzaWduX2ZpbGVfcG9z aXRpb25fZm9yX3NlY3Rpb24gKHNoZHJwLAorCQkJCQkJCSAgICAgICBvZmYs CisJCQkJCQkJICAgICAgIFRSVUUpOworCSAgICB9CisJfQogICAgIH0KIAog LyogUGxhY2UgdGhlIHNlY3Rpb24gaGVhZGVycy4gICovCkBAIC01NTQ3LDYg KzU2MDUsOCBAQCBfYmZkX2VsZl9hc3NpZ25fZmlsZV9wb3NpdGlvbnNfZm9y X3JlbG9jcyAoYmZkICphYmZkKQogICBpX2VoZHJwLT5lX3Nob2ZmID0gb2Zm OwogICBvZmYgKz0gaV9laGRycC0+ZV9zaG51bSAqIGlfZWhkcnAtPmVfc2hl bnRzaXplOwogICBlbGZfbmV4dF9maWxlX3BvcyAoYWJmZCkgPSBvZmY7CisK KyAgcmV0dXJuIFRSVUU7CiB9CiAKIGJmZF9ib29sZWFuCkBAIC01NTY5LDcg KzU2MjksOCBAQCBfYmZkX2VsZl93cml0ZV9vYmplY3RfY29udGVudHMgKGJm ZCAqYWJmZCkKICAgaWYgKGZhaWxlZCkKICAgICByZXR1cm4gRkFMU0U7CiAK LSAgX2JmZF9lbGZfYXNzaWduX2ZpbGVfcG9zaXRpb25zX2Zvcl9yZWxvY3Mg KGFiZmQpOworICBpZiAoIV9iZmRfZWxmX2Fzc2lnbl9maWxlX3Bvc2l0aW9u c19mb3Jfbm9uX2xvYWQgKGFiZmQpKQorICAgIHJldHVybiBGQUxTRTsKIAog ICAvKiBBZnRlciB3cml0aW5nIHRoZSBoZWFkZXJzLCB3ZSBuZWVkIHRvIHdy aXRlIHRoZSBzZWN0aW9ucyB0b28uLi4gICovCiAgIG51bV9zZWMgPSBlbGZf bnVtc2VjdGlvbnMgKGFiZmQpOwpAQCAtNzkyMiw3ICs3OTgzLDIxIEBAIF9i ZmRfZWxmX3NldF9zZWN0aW9uX2NvbnRlbnRzIChiZmQgKmFiZmQsCiAgICAg ICAmJiAhIF9iZmRfZWxmX2NvbXB1dGVfc2VjdGlvbl9maWxlX3Bvc2l0aW9u cyAoYWJmZCwgTlVMTCkpCiAgICAgcmV0dXJuIEZBTFNFOwogCisgIGlmICgh Y291bnQpCisgICAgcmV0dXJuIFRSVUU7CisKICAgaGRyID0gJmVsZl9zZWN0 aW9uX2RhdGEgKHNlY3Rpb24pLT50aGlzX2hkcjsKKyAgaWYgKGhkci0+c2hf b2Zmc2V0ID09IChmaWxlX3B0cikgLTEpCisgICAgeworICAgICAgLyogV2Ug bXVzdCBjb21wcmVzcyB0aGlzIHNlY3Rpb24uICBXcml0ZSBvdXRwdXQgdG8g dGhlIGJ1ZmZlci4gICovCisgICAgICB1bnNpZ25lZCBjaGFyICpjb250ZW50 cyA9IGhkci0+Y29udGVudHM7CisgICAgICBpZiAoKG9mZnNldCArIGNvdW50 KSA+IGhkci0+c2hfc2l6ZQorCSAgfHwgKHNlY3Rpb24tPmZsYWdzICYgU0VD X0VMRl9DT01QUkVTUykgPT0gMAorCSAgfHwgY29udGVudHMgPT0gTlVMTCkK KwlhYm9ydCAoKTsKKyAgICAgIG1lbWNweSAoY29udGVudHMgKyBvZmZzZXQs IGxvY2F0aW9uLCBjb3VudCk7CisgICAgICByZXR1cm4gVFJVRTsKKyAgICB9 CiAgIHBvcyA9IGhkci0+c2hfb2Zmc2V0ICsgb2Zmc2V0OwogICBpZiAoYmZk X3NlZWsgKGFiZmQsIHBvcywgU0VFS19TRVQpICE9IDAKICAgICAgIHx8IGJm ZF9id3JpdGUgKGxvY2F0aW9uLCBjb3VudCwgYWJmZCkgIT0gY291bnQpCmRp ZmYgLS1naXQgYS9iZmQvZWxmbGluay5jIGIvYmZkL2VsZmxpbmsuYwppbmRl eCBlYTkyNDZiLi42ZWZlMWU0IDEwMDY0NAotLS0gYS9iZmQvZWxmbGluay5j CisrKyBiL2JmZC9lbGZsaW5rLmMKQEAgLTEwODkwLDYgKzEwODkwLDIxIEBA IGJmZF9lbGZfZmluYWxfbGluayAoYmZkICphYmZkLCBzdHJ1Y3QgYmZkX2xp bmtfaW5mbyAqaW5mbykKIAkgdG8gY291bnQgdXB3YXJkcyB3aGlsZSBhY3R1 YWxseSBvdXRwdXR0aW5nIHRoZSByZWxvY2F0aW9ucy4gICovCiAgICAgICBl c2RvLT5yZWwuY291bnQgPSAwOwogICAgICAgZXNkby0+cmVsYS5jb3VudCA9 IDA7CisKKyAgICAgIGlmIChlc2RvLT50aGlzX2hkci5zaF9vZmZzZXQgPT0g KGZpbGVfcHRyKSAtMSkKKwl7CisJICAvKiBDYWNoZSB0aGUgc2VjdGlvbiBj b250ZW50cyBzbyB0aGF0IHRoZXkgY2FuIGJlIGNvbXByZXNzZWQKKwkgICAg IGxhdGVyLiAgVXNlIGJmZF9tYWxsb2Mgc2luY2UgaXQgd2lsbCBiZSBmcmVl ZCBieQorCSAgICAgYmZkX2NvbXByZXNzX3NlY3Rpb25fY29udGVudHMuICAq LworCSAgdW5zaWduZWQgY2hhciAqY29udGVudHMgPSBlc2RvLT50aGlzX2hk ci5jb250ZW50czsKKwkgIGlmICgoby0+ZmxhZ3MgJiBTRUNfRUxGX0NPTVBS RVNTKSA9PSAwIHx8IGNvbnRlbnRzICE9IE5VTEwpCisJICAgIGFib3J0ICgp OworCSAgY29udGVudHMKKwkgICAgPSAodW5zaWduZWQgY2hhciAqKSBiZmRf bWFsbG9jIChlc2RvLT50aGlzX2hkci5zaF9zaXplKTsKKwkgIGlmIChjb250 ZW50cyA9PSBOVUxMKQorCSAgICBnb3RvIGVycm9yX3JldHVybjsKKwkgIGVz ZG8tPnRoaXNfaGRyLmNvbnRlbnRzID0gY29udGVudHM7CisJfQogICAgIH0K IAogICAvKiBXZSBoYXZlIG5vdyBhc3NpZ25lZCBmaWxlIHBvc2l0aW9ucyBm b3IgYWxsIHRoZSBzZWN0aW9ucyBleGNlcHQKZGlmZiAtLWdpdCBhL2JmZC9t ZXJnZS5jIGIvYmZkL21lcmdlLmMKaW5kZXggNWY0NWJhNi4uMTc0ZWM5MCAx MDA2NDQKLS0tIGEvYmZkL21lcmdlLmMKKysrIGIvYmZkL21lcmdlLmMKQEAg LTI1LDYgKzI1LDcgQEAKIAogI2luY2x1ZGUgInN5c2RlcC5oIgogI2luY2x1 ZGUgImJmZC5oIgorI2luY2x1ZGUgImVsZi1iZmQuaCIKICNpbmNsdWRlICJs aWJiZmQuaCIKICNpbmNsdWRlICJoYXNodGFiLmgiCiAjaW5jbHVkZSAibGli aWJlcnR5LmgiCkBAIC0yODMsNyArMjg0LDggQEAgc2VjX21lcmdlX2FkZCAo c3RydWN0IHNlY19tZXJnZV9oYXNoICp0YWIsIGNvbnN0IGNoYXIgKnN0ciwK IH0KIAogc3RhdGljIGJmZF9ib29sZWFuCi1zZWNfbWVyZ2VfZW1pdCAoYmZk ICphYmZkLCBzdHJ1Y3Qgc2VjX21lcmdlX2hhc2hfZW50cnkgKmVudHJ5KQor c2VjX21lcmdlX2VtaXQgKGJmZCAqYWJmZCwgc3RydWN0IHNlY19tZXJnZV9o YXNoX2VudHJ5ICplbnRyeSwKKwkJdW5zaWduZWQgY2hhciAqY29udGVudHMs IGZpbGVfcHRyIG9mZnNldCkKIHsKICAgc3RydWN0IHNlY19tZXJnZV9zZWNf aW5mbyAqc2VjaW5mbyA9IGVudHJ5LT5zZWNpbmZvOwogICBhc2VjdGlvbiAq c2VjID0gc2VjaW5mby0+c2VjOwpAQCAtMzA2LDcgKzMwOCwxMiBAQCBzZWNf bWVyZ2VfZW1pdCAoYmZkICphYmZkLCBzdHJ1Y3Qgc2VjX21lcmdlX2hhc2hf ZW50cnkgKmVudHJ5KQogICAgICAgbGVuID0gLW9mZiAmIChlbnRyeS0+YWxp Z25tZW50IC0gMSk7CiAgICAgICBpZiAobGVuICE9IDApCiAJewotCSAgaWYg KGJmZF9id3JpdGUgKHBhZCwgbGVuLCBhYmZkKSAhPSBsZW4pCisJICBpZiAo Y29udGVudHMpCisJICAgIHsKKwkgICAgICBtZW1jcHkgKGNvbnRlbnRzICsg b2Zmc2V0LCBwYWQsIGxlbik7CisJICAgICAgb2Zmc2V0ICs9IGxlbjsKKwkg ICAgfQorCSAgZWxzZSBpZiAoYmZkX2J3cml0ZSAocGFkLCBsZW4sIGFiZmQp ICE9IGxlbikKIAkgICAgZ290byBlcnI7CiAJICBvZmYgKz0gbGVuOwogCX0K QEAgLTMxNCw3ICszMjEsMTIgQEAgc2VjX21lcmdlX2VtaXQgKGJmZCAqYWJm ZCwgc3RydWN0IHNlY19tZXJnZV9oYXNoX2VudHJ5ICplbnRyeSkKICAgICAg IHN0ciA9IGVudHJ5LT5yb290LnN0cmluZzsKICAgICAgIGxlbiA9IGVudHJ5 LT5sZW47CiAKLSAgICAgIGlmIChiZmRfYndyaXRlIChzdHIsIGxlbiwgYWJm ZCkgIT0gbGVuKQorICAgICAgaWYgKGNvbnRlbnRzKQorCXsKKwkgIG1lbWNw eSAoY29udGVudHMgKyBvZmZzZXQsIHN0ciwgbGVuKTsKKwkgIG9mZnNldCAr PSBsZW47CisJfQorICAgICAgZWxzZSBpZiAoYmZkX2J3cml0ZSAoc3RyLCBs ZW4sIGFiZmQpICE9IGxlbikKIAlnb3RvIGVycjsKIAogICAgICAgb2ZmICs9 IGxlbjsKQEAgLTMyMiw5ICszMzQsMTMgQEAgc2VjX21lcmdlX2VtaXQgKGJm ZCAqYWJmZCwgc3RydWN0IHNlY19tZXJnZV9oYXNoX2VudHJ5ICplbnRyeSkK IAogICAvKiBUcmFpbGluZyBhbGlnbm1lbnQgbmVlZGVkPyAgKi8KICAgb2Zm ID0gc2VjLT5zaXplIC0gb2ZmOwotICBpZiAob2ZmICE9IDAKLSAgICAgICYm IGJmZF9id3JpdGUgKHBhZCwgb2ZmLCBhYmZkKSAhPSBvZmYpCi0gICAgZ290 byBlcnI7CisgIGlmIChvZmYgIT0gMCkKKyAgICB7CisgICAgICBpZiAoY29u dGVudHMpCisJbWVtY3B5IChjb250ZW50cyArIG9mZnNldCwgcGFkLCBvZmYp OworICAgICAgZWxzZSBpZiAoYmZkX2J3cml0ZSAocGFkLCBvZmYsIGFiZmQp ICE9IG9mZikKKwlnb3RvIGVycjsKKyAgICB9CiAKICAgaWYgKHBhZCAhPSBO VUxMKQogICAgIGZyZWUgKHBhZCk7CkBAIC03ODUsNiArODAxLDggQEAgX2Jm ZF93cml0ZV9tZXJnZWRfc2VjdGlvbiAoYmZkICpvdXRwdXRfYmZkLCBhc2Vj dGlvbiAqc2VjLCB2b2lkICpwc2VjaW5mbykKIHsKICAgc3RydWN0IHNlY19t ZXJnZV9zZWNfaW5mbyAqc2VjaW5mbzsKICAgZmlsZV9wdHIgcG9zOworICB1 bnNpZ25lZCBjaGFyICpjb250ZW50czsKKyAgRWxmX0ludGVybmFsX1NoZHIg KmhkcjsKIAogICBzZWNpbmZvID0gKHN0cnVjdCBzZWNfbWVyZ2Vfc2VjX2lu Zm8gKikgcHNlY2luZm87CiAKQEAgLTc5NSwxMSArODEzLDI2IEBAIF9iZmRf d3JpdGVfbWVyZ2VkX3NlY3Rpb24gKGJmZCAqb3V0cHV0X2JmZCwgYXNlY3Rp b24gKnNlYywgdm9pZCAqcHNlY2luZm8pCiAgICAgcmV0dXJuIFRSVUU7CiAK ICAgLyogRklYTUU6IG9jdGV0c19wZXJfYnl0ZS4gICovCi0gIHBvcyA9IHNl Yy0+b3V0cHV0X3NlY3Rpb24tPmZpbGVwb3MgKyBzZWMtPm91dHB1dF9vZmZz ZXQ7Ci0gIGlmIChiZmRfc2VlayAob3V0cHV0X2JmZCwgcG9zLCBTRUVLX1NF VCkgIT0gMCkKLSAgICByZXR1cm4gRkFMU0U7CisgIGhkciA9ICZlbGZfc2Vj dGlvbl9kYXRhIChzZWMtPm91dHB1dF9zZWN0aW9uKS0+dGhpc19oZHI7Cisg IGlmIChoZHItPnNoX29mZnNldCA9PSAoZmlsZV9wdHIpIC0xKQorICAgIHsK KyAgICAgIC8qIFdlIG11c3QgY29tcHJlc3MgdGhpcyBzZWN0aW9uLiAgV3Jp dGUgb3V0cHV0IHRvIHRoZQorCSBidWZmZXIuICAqLworICAgICAgY29udGVu dHMgPSBoZHItPmNvbnRlbnRzOworICAgICAgaWYgKChzZWMtPm91dHB1dF9z ZWN0aW9uLT5mbGFncyAmIFNFQ19FTEZfQ09NUFJFU1MpID09IDAKKwkgIHx8 IGNvbnRlbnRzID09IE5VTEwpCisJYWJvcnQgKCk7CisgICAgfQorICBlbHNl CisgICAgeworICAgICAgY29udGVudHMgPSBOVUxMOworICAgICAgcG9zID0g c2VjLT5vdXRwdXRfc2VjdGlvbi0+ZmlsZXBvcyArIHNlYy0+b3V0cHV0X29m ZnNldDsKKyAgICAgIGlmIChiZmRfc2VlayAob3V0cHV0X2JmZCwgcG9zLCBT RUVLX1NFVCkgIT0gMCkKKwlyZXR1cm4gRkFMU0U7CisgICAgfQogCi0gIGlm ICghIHNlY19tZXJnZV9lbWl0IChvdXRwdXRfYmZkLCBzZWNpbmZvLT5maXJz dF9zdHIpKQorICBpZiAoISBzZWNfbWVyZ2VfZW1pdCAob3V0cHV0X2JmZCwg c2VjaW5mby0+Zmlyc3Rfc3RyLCBjb250ZW50cywKKwkJCXNlYy0+b3V0cHV0 X29mZnNldCkpCiAgICAgcmV0dXJuIEZBTFNFOwogCiAgIHJldHVybiBUUlVF OwpkaWZmIC0tZ2l0IGEvYmZkL3NlY3Rpb24uYyBiL2JmZC9zZWN0aW9uLmMK aW5kZXggNGE2ZjJlNC4uZDU5YTBlMyAxMDA2NDQKLS0tIGEvYmZkL3NlY3Rp b24uYworKysgYi9iZmQvc2VjdGlvbi5jCkBAIC0zMzQsNiArMzM0LDEwIEBA IENPREVfRlJBR01FTlQKIC4gICAgIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBv YmplY3RzLiBUaGlzIGlzIGZvciBDT0ZGIG9ubHkuICAqfQogLiNkZWZpbmUg U0VDX0NPRkZfU0hBUkVEIDB4ODAwMDAwMAogLgorLiAgeyogVGhpcyBzZWN0 aW9uIHNob3VsZCBiZSBjb21wcmVzc2VkLiAgVGhpcyBpcyBmb3IgRUxGIGxp bmtlcgorLiAgICAgaW50ZXJuYWwgdXNlIG9ubHkuICAqfQorLiNkZWZpbmUg U0VDX0VMRl9DT01QUkVTUyAweDgwMDAwMDAKKy4KIC4gIHsqIFdoZW4gYSBz ZWN0aW9uIHdpdGggdGhpcyBmbGFnIGlzIGJlaW5nIGxpbmtlZCwgdGhlbiBp ZiB0aGUgc2l6ZSBvZgogLiAgICAgdGhlIGlucHV0IHNlY3Rpb24gaXMgbGVz cyB0aGFuIGEgcGFnZSwgaXQgc2hvdWxkIG5vdCBjcm9zcyBhIHBhZ2UKIC4g ICAgIGJvdW5kYXJ5LiAgSWYgdGhlIHNpemUgb2YgdGhlIGlucHV0IHNlY3Rp b24gaXMgb25lIHBhZ2Ugb3IgbW9yZSwKZGlmZiAtLWdpdCBhL2dhcy9hcy5o IGIvZ2FzL2FzLmgKaW5kZXggZTA0Y2MwZi4uNmRlMzE5ZSAxMDA2NDQKLS0t IGEvZ2FzL2FzLmgKKysrIGIvZ2FzL2FzLmgKQEAgLTM3MCwxNiArMzcwLDYg QEAgQ09NTU9OIGludCBmbGFnX3N0cmlwX2xvY2FsX2Fic29sdXRlOwogLyog VHJ1ZSBpZiB3ZSBzaG91bGQgZ2VuZXJhdGUgYSB0cmFkaXRpb25hbCBmb3Jt YXQgb2JqZWN0IGZpbGUuICAqLwogQ09NTU9OIGludCBmbGFnX3RyYWRpdGlv bmFsX2Zvcm1hdDsKIAotLyogVHlwZXMgb2YgY29tcHJlc3NlZCBkZWJ1ZyBz ZWN0aW9ucy4gIFdlIGN1cnJlbnRseSBzdXBwb3J0IHpsaWIuICAqLwotZW51 bSBjb21wcmVzc2VkX2RlYnVnX3NlY3Rpb25fdHlwZQotewotICBDT01QUkVT U19ERUJVR19OT05FID0gMCwKLSAgQ09NUFJFU1NfREVCVUcsCi0gIENPTVBS RVNTX0RFQlVHX1pMSUIsCi0gIENPTVBSRVNTX0RFQlVHX0dOVV9aTElCLAot ICBDT01QUkVTU19ERUJVR19HQUJJX1pMSUIKLX07Ci0KIC8qIFR5cGUgb2Yg Y29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucyB3ZSBzaG91bGQgZ2VuZXJhdGUu ICAgKi8KIENPTU1PTiBlbnVtIGNvbXByZXNzZWRfZGVidWdfc2VjdGlvbl90 eXBlIGZsYWdfY29tcHJlc3NfZGVidWc7CiAKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvYmZkbGluay5oIGIvaW5jbHVkZS9iZmRsaW5rLmgKaW5kZXggMWIxNTgy Ni4uMzk4OWM2MCAxMDA2NDQKLS0tIGEvaW5jbHVkZS9iZmRsaW5rLmgKKysr IGIvaW5jbHVkZS9iZmRsaW5rLmgKQEAgLTQzMSw2ICs0MzEsOSBAQCBzdHJ1 Y3QgYmZkX2xpbmtfaW5mbwogICAvKiBTZXBhcmF0b3IgYmV0d2VlbiBhcmNo aXZlIGFuZCBmaWxlbmFtZSBpbiBsaW5rZXIgc2NyaXB0IGZpbGVzcGVjcy4g ICovCiAgIGNoYXIgcGF0aF9zZXBhcmF0b3I7CiAKKyAgLyogQ29tcHJlc3Mg RFdBUkYgZGVidWcgc2VjdGlvbnMuICAqLworICBlbnVtIGNvbXByZXNzZWRf ZGVidWdfc2VjdGlvbl90eXBlIGNvbXByZXNzX2RlYnVnOworCiAgIC8qIERl ZmF1bHQgc3RhY2sgc2l6ZS4gIFplcm8gbWVhbnMgZGVmYXVsdCAob2Z0ZW4g emVybyBpdHNlbGYpLCAtMQogICAgICBtZWFucyBleHBsaWNpdGx5IHplcm8t c2l6ZWQuICAqLwogICBiZmRfc2lnbmVkX3ZtYSBzdGFja3NpemU7CmRpZmYg LS1naXQgYS9sZC9lbXVsdGVtcGwvZWxmMzIuZW0gYi9sZC9lbXVsdGVtcGwv ZWxmMzIuZW0KaW5kZXggNWRiNWE5My4uMDgwMmQ3NiAxMDA2NDQKLS0tIGEv bGQvZW11bHRlbXBsL2VsZjMyLmVtCisrKyBiL2xkL2VtdWx0ZW1wbC9lbGYz Mi5lbQpAQCAtMjExMCw2ICsyMTEwLDcgQEAgZnJhZ21lbnQgPDxFT0YKICNk ZWZpbmUgT1BUSU9OX0hBU0hfU1RZTEUJCShPUFRJT05fRVhDTFVERV9MSUJT ICsgMSkKICNkZWZpbmUgT1BUSU9OX0JVSUxEX0lECQkJKE9QVElPTl9IQVNI X1NUWUxFICsgMSkKICNkZWZpbmUgT1BUSU9OX0FVRElUCQkJKE9QVElPTl9C VUlMRF9JRCArIDEpCisjZGVmaW5lIE9QVElPTl9DT01QUkVTU19ERUJVRwkJ KE9QVElPTl9BVURJVCArIDEpCiAKIHN0YXRpYyB2b2lkCiBnbGQke0VNVUxB VElPTl9OQU1FfV9hZGRfb3B0aW9ucwpAQCAtMjEzNyw2ICsyMTM4LDcgQEAg RU9GCiBmaQogZnJhZ21lbnQgPDxFT0YKICAgICB7ImJ1aWxkLWlkIiwgb3B0 aW9uYWxfYXJndW1lbnQsIE5VTEwsIE9QVElPTl9CVUlMRF9JRH0sCisgICAg eyJjb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucyIsIHJlcXVpcmVkX2FyZ3VtZW50 LCBOVUxMLCBPUFRJT05fQ09NUFJFU1NfREVCVUd9LAogRU9GCiBpZiB0ZXN0 IHgiJEdFTkVSQVRFX1NITElCX1NDUklQVCIgPSB4eWVzOyB0aGVuCiBmcmFn bWVudCA8PEVPRgpAQCAtMjE4Niw2ICsyMTg4LDE5IEBAIGdsZCR7RU1VTEFU SU9OX05BTUV9X2hhbmRsZV9vcHRpb24gKGludCBvcHRjKQogCWVtaXRfbm90 ZV9nbnVfYnVpbGRfaWQgPSB4c3RyZHVwIChvcHRhcmcpOwogICAgICAgYnJl YWs7CiAKKyAgICBjYXNlIE9QVElPTl9DT01QUkVTU19ERUJVRzoKKyAgICAg IGlmIChzdHJjYXNlY21wIChvcHRhcmcsICJub25lIikgPT0gMCkKKwlsaW5r X2luZm8uY29tcHJlc3NfZGVidWcgPSBDT01QUkVTU19ERUJVR19OT05FOwor ICAgICAgZWxzZSBpZiAoc3RyY2FzZWNtcCAob3B0YXJnLCAiemxpYiIpID09 IDApCisJbGlua19pbmZvLmNvbXByZXNzX2RlYnVnID0gQ09NUFJFU1NfREVC VUdfWkxJQjsKKyAgICAgIGVsc2UgaWYgKHN0cmNhc2VjbXAgKG9wdGFyZywg InpsaWItZ251IikgPT0gMCkKKwlsaW5rX2luZm8uY29tcHJlc3NfZGVidWcg PSBDT01QUkVTU19ERUJVR19HTlVfWkxJQjsKKyAgICAgIGVsc2UgaWYgKHN0 cmNhc2VjbXAgKG9wdGFyZywgInpsaWItZ2FiaSIpID09IDApCisJbGlua19p bmZvLmNvbXByZXNzX2RlYnVnID0gQ09NUFJFU1NfREVCVUdfR0FCSV9aTElC OworICAgICAgZWxzZQorCWVpbmZvIChfKCIlUCVGOiBpbnZhbGlkIC0tY29t cHJlc3MtZGVidWctc2VjdGlvbnMgb3B0aW9uOiBcYCVzJ1xuIiksCisJICAg ICAgIG9wdGFyZyk7CisgICAgICBicmVhazsKIEVPRgogCiBpZiB0ZXN0IHgi JEdFTkVSQVRFX1NITElCX1NDUklQVCIgPSB4eWVzOyB0aGVuCmRpZmYgLS1n aXQgYS9sZC9sZC50ZXhpbmZvIGIvbGQvbGQudGV4aW5mbwppbmRleCA0MzQ4 Yzg4Li43N2MwMmQ2IDEwMDY0NAotLS0gYS9sZC9sZC50ZXhpbmZvCisrKyBi L2xkL2xkLnRleGluZm8KQEAgLTIyMDEsNiArMjIwMSwyMiBAQCBuZXcgc3R5 bGUgR05VIEBjb2Rley5nbnUuaGFzaH0gc2VjdGlvbiBvciBAY29kZXtib3Ro fSBmb3IgYm90aAogdGhlIGNsYXNzaWMgRUxGIEBjb2Rley5oYXNofSBhbmQg bmV3IHN0eWxlIEdOVSBAY29kZXsuZ251Lmhhc2h9CiBoYXNoIHRhYmxlcy4g IFRoZSBkZWZhdWx0IGlzIEBjb2Rle3N5c3Z9LgogCitAa2luZGV4IC0tY29t cHJlc3MtZGVidWctc2VjdGlvbnM9bm9uZQorQGtpbmRleCAtLWNvbXByZXNz LWRlYnVnLXNlY3Rpb25zPXpsaWIKK0BraW5kZXggLS1jb21wcmVzcy1kZWJ1 Zy1zZWN0aW9ucz16bGliLWdudQorQGtpbmRleCAtLWNvbXByZXNzLWRlYnVn LXNlY3Rpb25zPXpsaWItZ2FiaQorQGl0ZW0gLS1jb21wcmVzcy1kZWJ1Zy1z ZWN0aW9ucz1ub25lCitAaXRlbXggLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9u cz16bGliCitAaXRlbXggLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGli LWdudQorQGl0ZW14IC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1n YWJpCitPbiBFTEYgcGxhdGZvcm1zICwgdGhlc2Ugb3B0aW9ucyBjb250cm9s IGhvdyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucyBhcmUKK2NvbXByZXNzZWQgdXNp bmcgemxpYi4gIEBvcHRpb257LS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz1u b25lfSBkb2Vzbid0Citjb21wcmVzcyBEV0FSRiBkZWJ1ZyBzZWN0aW9ucy4g IEBvcHRpb257LS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGlifQorYW5k IEBvcHRpb257LS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGliLWdudX0g Y29tcHJlc3MgRFdBUkYgZGVidWcKK3NlY3Rpb25zIGFuZCByZW5hbWUgZGVi dWcgc2VjdGlvbiBuYW1lcyB0byBiZWdpbiB3aXRoIEBzYW1wey56ZGVidWd9 CitpbnN0ZWFkIG9mIEBzYW1wey5kZWJ1Z30uICBAb3B0aW9uey0tY29tcHJl c3MtZGVidWctc2VjdGlvbnM9emxpYi1nYWJpfQorY29tcHJlc3NlcyBEV0FS RiBkZWJ1ZyBzZWN0aW9ucyB3aXRoIFNIRl9DT01QUkVTU0VEIGZyb20gdGhl IEVMRiBBQkkuCisKIEBraW5kZXggLS1yZWR1Y2UtbWVtb3J5LW92ZXJoZWFk cwogQGl0ZW0gLS1yZWR1Y2UtbWVtb3J5LW92ZXJoZWFkcwogVGhpcyBvcHRp b24gcmVkdWNlcyBtZW1vcnkgcmVxdWlyZW1lbnRzIGF0IGxkIHJ1bnRpbWUs IGF0IHRoZSBleHBlbnNlIG9mCmRpZmYgLS1naXQgYS9sZC9sZG1haW4uYyBi L2xkL2xkbWFpbi5jCmluZGV4IDJlY2I5MmQuLmE3YjcyYmQgMTAwNjQ0Ci0t LSBhL2xkL2xkbWFpbi5jCisrKyBiL2xkL2xkbWFpbi5jCkBAIC00MjUsNiAr NDI1LDEzIEBAIG1haW4gKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgZWxz ZQogICAgIGxpbmtfaW5mby5vdXRwdXRfYmZkLT5mbGFncyB8PSBFWEVDX1A7 CiAKKyAgaWYgKChsaW5rX2luZm8uY29tcHJlc3NfZGVidWcgJiBDT01QUkVT U19ERUJVRykpCisgICAgeworICAgICAgbGlua19pbmZvLm91dHB1dF9iZmQt PmZsYWdzIHw9IEJGRF9DT01QUkVTUzsKKyAgICAgIGlmIChsaW5rX2luZm8u Y29tcHJlc3NfZGVidWcgPT0gQ09NUFJFU1NfREVCVUdfR0FCSV9aTElCKQor CWxpbmtfaW5mby5vdXRwdXRfYmZkLT5mbGFncyB8PSBCRkRfQ09NUFJFU1Nf R0FCSTsKKyAgICB9CisKICAgbGR3cml0ZSAoKTsKIAogICBpZiAoY29uZmln Lm1hcF9maWxlICE9IE5VTEwpCmRpZmYgLS1naXQgYS9sZC9sZXhzdXAuYyBi L2xkL2xleHN1cC5jCmluZGV4IDRhNzFiYTQuLmI2MTgyNDEgMTAwNjQ0Ci0t LSBhL2xkL2xleHN1cC5jCisrKyBiL2xkL2xleHN1cC5jCkBAIC0xNzIyLDYg KzE3MjIsOSBAQCBlbGZfc3RhdGljX2xpc3Rfb3B0aW9ucyAoRklMRSAqZmls ZSkKICAgZnByaW50ZiAoZmlsZSwgXygiXAogICAtLWJ1aWxkLWlkWz1TVFlM RV0gICAgICAgICAgR2VuZXJhdGUgYnVpbGQgSUQgbm90ZVxuIikpOwogICBm cHJpbnRmIChmaWxlLCBfKCJcCisgIC0tY29tcHJlc3MtZGVidWctc2VjdGlv bnM9W25vbmV8emxpYnx6bGliLWdudXx6bGliLWdhYmldXG5cCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBDb21wcmVzcyBEV0FSRiBkZWJ1ZyBz ZWN0aW9ucyB1c2luZyB6bGliXG4iKSk7CisgIGZwcmludGYgKGZpbGUsIF8o IlwKICAgLXogY29tbW9uLXBhZ2Utc2l6ZT1TSVpFICAgIFNldCBjb21tb24g cGFnZSBzaXplIHRvIFNJWkVcbiIpKTsKICAgZnByaW50ZiAoZmlsZSwgXygi XAogICAteiBtYXgtcGFnZS1zaXplPVNJWkUgICAgICAgU2V0IG1heGltdW0g cGFnZSBzaXplIHRvIFNJWkVcbiIpKTsKZGlmZiAtLWdpdCBhL2xkL3Rlc3Rz dWl0ZS9sZC1lbGYvY29tcHJlc3MuZXhwIGIvbGQvdGVzdHN1aXRlL2xkLWVs Zi9jb21wcmVzcy5leHAKaW5kZXggYWRiN2ZjMi4uZTI0NDhiOSAxMDA2NDQK LS0tIGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9jb21wcmVzcy5leHAKKysrIGIv bGQvdGVzdHN1aXRlL2xkLWVsZi9jb21wcmVzcy5leHAKQEAgLTQ5LDcgKzQ5 LDggQEAgc2V0IGJ1aWxkX3Rlc3RzIHsKICAgICItc2hhcmVkIiAiLWZQSUMg LWcgLVdhLC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnMiCiAgICB7Zm9vLmN9 IHt9ICJsaWJmb28uc28ifQogICB7IkJ1aWxkIGxpYmJhci5zbyB3aXRoIGNv bXByZXNzZWQgZGVidWcgc2VjdGlvbnMiCi0gICAiLXNoYXJlZCIgIi1mUElD IC1nIC1XYSwtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25zIgorICAgIi1zaGFy ZWQgLVdsLC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9bm9uZSIKKyAgICIt ZlBJQyAtZyAtV2EsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucyIKICAgIHti ZWdpbi5jIGVuZC5jfSB7fSAibGliYmFyLnNvIn0KICAgeyJCdWlsZCBsaWJm b296bGliLnNvIHdpdGggY29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucyB3aXRo IHpsaWItZ2FiaSIKICAgICItc2hhcmVkIiAiLWZQSUMgLWcgLVdhLC0tY29t cHJlc3MtZGVidWctc2VjdGlvbnM9emxpYi1nYWJpIgpAQCAtNTcsNiArNTgs MzAgQEAgc2V0IGJ1aWxkX3Rlc3RzIHsKICAgeyJCdWlsZCBsaWJiYXJ6bGli LnNvIHdpdGggY29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucyB3aXRoIHpsaWIt Z2FiaSIKICAgICItc2hhcmVkIiAiLWZQSUMgLWcgLVdhLC0tY29tcHJlc3Mt ZGVidWctc2VjdGlvbnM9emxpYi1nYWJpIgogICAge2JlZ2luLmMgZW5kLmN9 IHt9ICJsaWJiYXJ6bGliLnNvIn0KKyAgeyJCdWlsZCBsaWJ6bGliZm9vLnNv IHdpdGggemxpYiBjb21wcmVzc2VkIGRlYnVnIHNlY3Rpb25zIgorICAgIi1z aGFyZWQgLVdsLC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYiIKKyAg ICItZlBJQyAtZyAtV2EsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGli IgorICAge2Zvby5jfSB7fSAibGliemxpYmZvby5zbyJ9CisgIHsiQnVpbGQg bGliZ251Zm9vLnNvIHdpdGggemxpYi1nbnUgY29tcHJlc3NlZCBkZWJ1ZyBz ZWN0aW9ucyIKKyAgICItc2hhcmVkIC1XbCwtLWNvbXByZXNzLWRlYnVnLXNl Y3Rpb25zPXpsaWItZ251IgorICAgIi1mUElDIC1nIC1XYSwtLWNvbXByZXNz LWRlYnVnLXNlY3Rpb25zPXpsaWItZ251IgorICAge2Zvby5jfSB7fSAibGli Z251Zm9vLnNvIn0KKyAgeyJCdWlsZCBsaWJnYWJpZm9vLnNvIHdpdGggemxp Yi1nYWJpIGNvbXByZXNzZWQgZGVidWcgc2VjdGlvbnMiCisgICAiLXNoYXJl ZCAtV2wsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGliLWdhYmkiCisg ICAiLWZQSUMgLWcgLVdhLC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxp Yi1nYWJpIgorICAge2Zvby5jfSB7fSAibGliZ2FiaWZvby5zbyJ9CisgIHsi QnVpbGQgemxpYmJlZ2luLm8gd2l0aCB6bGliIGNvbXByZXNzZWQgZGVidWcg c2VjdGlvbnMiCisgICAiLXIgLW5vc3RkbGliIC1XbCwtLWNvbXByZXNzLWRl YnVnLXNlY3Rpb25zPXpsaWIiCisgICAiLWcgLVdhLC0tY29tcHJlc3MtZGVi dWctc2VjdGlvbnM9emxpYiIKKyAgIHtiZWdpbi5jfSB7fSAiemxpYmJlZ2lu Lm8ifQorICB7IkJ1aWxkIGdudWJlZ2luLm8gd2l0aCB6bGliLWdudSBjb21w cmVzc2VkIGRlYnVnIHNlY3Rpb25zIgorICAgIi1yIC1ub3N0ZGxpYiAtV2ws LS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGliLWdudSIKKyAgICItZyAt V2EsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGliLWdudSIKKyAgIHti ZWdpbi5jfSB7fSAiZ251YmVnaW4ubyJ9CisgIHsiQnVpbGQgZ2FiaWVuZC5v IHdpdGggemxpYi1nYWJpIGNvbXByZXNzZWQgZGVidWcgc2VjdGlvbnMiCisg ICAiLXIgLW5vc3RkbGliIC1XbCwtLWNvbXByZXNzLWRlYnVnLXNlY3Rpb25z PXpsaWItZ2FiaSIKKyAgICItZyAtV2EsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0 aW9ucz16bGliLWdudSIKKyAgIHtlbmQuY30ge30gImdhYmllbmQubyJ9CiB9 CiAKIHNldCBydW5fdGVzdHMgewpAQCAtNjYsNiArOTEsMTUgQEAgc2V0IHJ1 bl90ZXN0cyB7CiAgICAgeyJSdW4gbm9ybWFsIHdpdGggbGliZm9vLnNvIHdp dGggY29tcHJlc3NlZCBkZWJ1ZyBzZWN0aW9ucyB3aXRoIHpsaWItZ2FiaSIK ICAgICAgInRtcGRpci9iZWdpbi5vIHRtcGRpci9saWJmb296bGliLnNvIHRt cGRpci9lbmQubyIgIiIKICAgICAge21haW4uY30gIm5vcm1hbCIgIm5vcm1h bC5vdXQiICItV2EsLS1jb21wcmVzcy1kZWJ1Zy1zZWN0aW9ucz16bGliLWdh YmkifQorICAgIHsiUnVuIHpsaWJub3JtYWwgd2l0aCBsaWJ6bGliZm9vLnNv IHdpdGggemxpYiBjb21wcmVzc2VkIGRlYnVnIHNlY3Rpb25zIgorICAgICAi dG1wZGlyL2JlZ2luLm8gdG1wZGlyL2xpYnpsaWJmb28uc28gdG1wZGlyL2Vu ZC5vIC0tY29tcHJlc3MtZGVidWctc2VjdGlvbnM9emxpYiIgIiIKKyAgICAg e21haW4uY30gInpsaWJub3JtYWwiICJub3JtYWwub3V0IiAiLVdhLC0tY29t cHJlc3MtZGVidWctc2VjdGlvbnM9emxpYiJ9CisgICAgeyJSdW4gZ251bm9y bWFsIHdpdGggbGliZ251Zm9vLnNvIHdpdGggemxpYi1nbnUgY29tcHJlc3Nl ZCBkZWJ1ZyBzZWN0aW9ucyIKKyAgICAgInRtcGRpci9nbnViZWdpbi5vIHRt cGRpci9saWJnbnVmb28uc28gdG1wZGlyL2VuZC5vIC0tY29tcHJlc3MtZGVi dWctc2VjdGlvbnM9emxpYi1nbnUiICIiCisgICAgIHttYWluLmN9ICJnbnVu b3JtYWwiICJub3JtYWwub3V0IiAiLVdhLC0tY29tcHJlc3MtZGVidWctc2Vj dGlvbnM9emxpYi1nbnUifQorICAgIHsiUnVuIGdhYmlub3JtYWwgd2l0aCBs aWJnYWJpZm9vLnNvIHdpdGggemxpYi1nYWJpIGNvbXByZXNzZWQgZGVidWcg c2VjdGlvbnMiCisgICAgICJ0bXBkaXIvemxpYmJlZ2luLm8gdG1wZGlyL2xp YmdhYmlmb28uc28gdG1wZGlyL2dhYmllbmQubyAtLWNvbXByZXNzLWRlYnVn LXNlY3Rpb25zPXpsaWItZ2FiaSIgIiIKKyAgICAge21haW4uY30gImdhYmlu b3JtYWwiICJub3JtYWwub3V0IiAiLVdhLC0tY29tcHJlc3MtZGVidWctc2Vj dGlvbnM9emxpYi1nYWJpIn0KIH0KIAogcnVuX2NjX2xpbmtfdGVzdHMgJGJ1 aWxkX3Rlc3RzCkBAIC03OSwzICsxMTMsMTM0IEBAIGlmIHsgW2NhdGNoIHtl eGVjIGNtcCB0bXBkaXIvbGliZm9vLnNvIHRtcGRpci9saWJmb296bGliLnNv fV0gfSB0aGVuIHsKIH0gZWxzZSB7CiAgICAgcGFzcyAiJHRlc3RfbmFtZSIK IH0KKworZ2xvYmFsIFJFQURFTEYKKworc2V0IHRlc3RfbmFtZSAiTGluayAt ciB3aXRoIHpsaWIgY29tcHJlc3NlZCBkZWJ1ZyBvdXRwdXQiCitzZXQgdGVz dCB6bGliYmVnaW4KK3NlbmRfbG9nICIkUkVBREVMRiAtUyAtVyB0bXBkaXIv JHRlc3QubyA+IHRtcGRpci8kdGVzdC5vdXRcbiIKK3NldCBnb3QgW3JlbW90 ZV9leGVjIGhvc3QgIiRSRUFERUxGIC1TIC1XIHRtcGRpci8kdGVzdC5vIiAi IiAiL2Rldi9udWxsIiAidG1wZGlyLyR0ZXN0Lm91dCJdCitpZiB7IFtsaW5k ZXggJGdvdCAwXSAhPSAwIHx8ICFbc3RyaW5nIG1hdGNoICIiIFtsaW5kZXgg JGdvdCAxXV0gfSB0aGVuIHsKKyAgICBzZW5kX2xvZyAiJGdvdFxuIgorICAg IHVucmVzb2x2ZWQgIiR0ZXN0X25hbWUiCit9CitpZiB7IFtyZWdleHBfZGlm ZiB0bXBkaXIvJHRlc3Qub3V0ICRzcmNkaXIvJHN1YmRpci8kdGVzdC5yU10g fSB0aGVuIHsKKyAgICBmYWlsICIkdGVzdF9uYW1lIgorfSBlbHNlIHsKKyAg ICBwYXNzICIkdGVzdF9uYW1lIgorfQorCitzZXQgdGVzdF9uYW1lICJMaW5r IC1yIHdpdGggemxpYi1nbnUgY29tcHJlc3NlZCBkZWJ1ZyBvdXRwdXQiCitz ZXQgdGVzdCBnbnViZWdpbgorc2VuZF9sb2cgIiRSRUFERUxGIC1TIC1XIHRt cGRpci8kdGVzdC5vID4gdG1wZGlyLyR0ZXN0Lm91dFxuIgorc2V0IGdvdCBb cmVtb3RlX2V4ZWMgaG9zdCAiJFJFQURFTEYgLVMgLVcgdG1wZGlyLyR0ZXN0 Lm8iICIiICIvZGV2L251bGwiICJ0bXBkaXIvJHRlc3Qub3V0Il0KK2lmIHsg W2xpbmRleCAkZ290IDBdICE9IDAgfHwgIVtzdHJpbmcgbWF0Y2ggIiIgW2xp bmRleCAkZ290IDFdXSB9IHRoZW4geworICAgIHNlbmRfbG9nICIkZ290XG4i CisgICAgdW5yZXNvbHZlZCAiJHRlc3RfbmFtZSIKK30KK2lmIHsgW3JlZ2V4 cF9kaWZmIHRtcGRpci8kdGVzdC5vdXQgJHNyY2Rpci8kc3ViZGlyLyR0ZXN0 LnJTXSB9IHRoZW4geworICAgIGZhaWwgIiR0ZXN0X25hbWUiCit9IGVsc2Ug eworICAgIHBhc3MgIiR0ZXN0X25hbWUiCit9CisKK3NldCB0ZXN0X25hbWUg IkxpbmsgLXIgd2l0aCB6bGliLWdhYmkgY29tcHJlc3NlZCBkZWJ1ZyBvdXRw dXQiCitzZXQgdGVzdCBnYWJpZW5kCitzZW5kX2xvZyAiJFJFQURFTEYgLXQg LVcgdG1wZGlyLyR0ZXN0Lm8gPiB0bXBkaXIvJHRlc3Qub3V0XG4iCitzZXQg Z290IFtyZW1vdGVfZXhlYyBob3N0ICIkUkVBREVMRiAtdCAtVyB0bXBkaXIv JHRlc3QubyIgIiIgIi9kZXYvbnVsbCIgInRtcGRpci8kdGVzdC5vdXQiXQor aWYgeyBbbGluZGV4ICRnb3QgMF0gIT0gMCB8fCAhW3N0cmluZyBtYXRjaCAi IiBbbGluZGV4ICRnb3QgMV1dIH0gdGhlbiB7CisgICAgc2VuZF9sb2cgIiRn b3RcbiIKKyAgICB1bnJlc29sdmVkICIkdGVzdF9uYW1lIgorfQoraWYgeyBb cmVnZXhwX2RpZmYgdG1wZGlyLyR0ZXN0Lm91dCAkc3JjZGlyLyRzdWJkaXIv JHRlc3QucnRdIH0gdGhlbiB7CisgICAgZmFpbCAiJHRlc3RfbmFtZSIKK30g ZWxzZSB7CisgICAgcGFzcyAiJHRlc3RfbmFtZSIKK30KKworc2V0IHRlc3Rf bmFtZSAiTGluayB3aXRoIHpsaWIgY29tcHJlc3NlZCBkZWJ1ZyBvdXRwdXQi CitzZXQgdGVzdCBub3JtYWwKK3NlbmRfbG9nICIkUkVBREVMRiAtdyB0bXBk aXIvJHRlc3QgPiB0bXBkaXIvJHRlc3Qub3V0XG4iCitzZXQgZ290IFtyZW1v dGVfZXhlYyBob3N0ICIkUkVBREVMRiAtdyB0bXBkaXIvJHRlc3QiICIiICIv ZGV2L251bGwiICJ0bXBkaXIvJHRlc3Qub3V0Il0KK2lmIHsgW2xpbmRleCAk Z290IDBdICE9IDAgfHwgIVtzdHJpbmcgbWF0Y2ggIiIgW2xpbmRleCAkZ290 IDFdXSB9IHRoZW4geworICAgIHNlbmRfbG9nICIkZ290XG4iCisgICAgdW5y ZXNvbHZlZCAiJHRlc3RfbmFtZSIKK30KKworc2V0IHRlc3RfbmFtZSAiTGlu ayB3aXRoIHpsaWIgY29tcHJlc3NlZCBkZWJ1ZyBvdXRwdXQiCitzZXQgdGVz dCB6bGlibm9ybWFsCitzZW5kX2xvZyAiJFJFQURFTEYgLXcgdG1wZGlyLyR0 ZXN0IHwgc2VkIC1lIFwicy8uemRlYnVnXy8uZGVidWdfL1wiID4gdG1wZGly LyR0ZXN0Lm91dFxuIgorc2V0IGdvdCBbcmVtb3RlX2V4ZWMgaG9zdCAiJFJF QURFTEYgLXcgdG1wZGlyLyR0ZXN0IHwgc2VkIC1lIFwicy8uemRlYnVnXy8u ZGVidWdfL1wiIiAiIiAiL2Rldi9udWxsIiAidG1wZGlyLyR0ZXN0Lm91dCJd CitpZiB7IFtsaW5kZXggJGdvdCAwXSAhPSAwIHx8ICFbc3RyaW5nIG1hdGNo ICIiIFtsaW5kZXggJGdvdCAxXV0gfSB0aGVuIHsKKyAgICBzZW5kX2xvZyAi JGdvdFxuIgorICAgIHVucmVzb2x2ZWQgIiR0ZXN0X25hbWUiCit9CitpZiB7 IFtjYXRjaCB7ZXhlYyBjbXAgdG1wZGlyL25vcm1hbC5vdXQgdG1wZGlyLyR0 ZXN0Lm91dH1dIH0gdGhlbiB7CisgICAgc2VuZF9sb2cgInRtcGRpci9ub3Jt YWwub3V0IHRtcGRpci8kdGVzdC5vdXQgZGlmZmVyLlxuIgorICAgIGZhaWwg IiR0ZXN0X25hbWUiCit9IGVsc2UgeworICAgIHBhc3MgIiR0ZXN0X25hbWUi Cit9CitzZW5kX2xvZyAiJFJFQURFTEYgLVMgLVcgdG1wZGlyLyR0ZXN0JyA+ IHRtcGRpci8kdGVzdC5vdXRcbiIKK3NldCBnb3QgW3JlbW90ZV9leGVjIGhv c3QgIiRSRUFERUxGIC1TIC1XIHRtcGRpci8kdGVzdCIgIiIgIi9kZXYvbnVs bCIgInRtcGRpci8kdGVzdC5vdXQiXQoraWYgeyBbbGluZGV4ICRnb3QgMF0g IT0gMCB8fCAhW3N0cmluZyBtYXRjaCAiIiBbbGluZGV4ICRnb3QgMV1dIH0g dGhlbiB7CisgICAgc2VuZF9sb2cgIiRnb3RcbiIKKyAgICB1bnJlc29sdmVk ICIkdGVzdF9uYW1lIgorfQoraWYgeyBbcmVnZXhwX2RpZmYgdG1wZGlyLyR0 ZXN0Lm91dCAkc3JjZGlyLyRzdWJkaXIvJHRlc3QuclNdIH0gdGhlbiB7Cisg ICAgZmFpbCAiJHRlc3RfbmFtZSIKK30gZWxzZSB7CisgICAgcGFzcyAiJHRl c3RfbmFtZSIKK30KKworc2V0IHRlc3RfbmFtZSAiTGluayB3aXRoIHpsaWIt Z251IGNvbXByZXNzZWQgZGVidWcgb3V0cHV0Igorc2V0IHRlc3QgZ251bm9y bWFsCitzZW5kX2xvZyAiJFJFQURFTEYgLXcgdG1wZGlyLyR0ZXN0IHwgc2Vk IC1lIFwicy8uemRlYnVnXy8uZGVidWdfL1wiID4gdG1wZGlyLyR0ZXN0Lm91 dFxuIgorc2V0IGdvdCBbcmVtb3RlX2V4ZWMgaG9zdCAiJFJFQURFTEYgLXcg dG1wZGlyLyR0ZXN0IHwgc2VkIC1lIFwicy8uemRlYnVnXy8uZGVidWdfL1wi IiAiIiAiL2Rldi9udWxsIiAidG1wZGlyLyR0ZXN0Lm91dCJdCitpZiB7IFts aW5kZXggJGdvdCAwXSAhPSAwIHx8ICFbc3RyaW5nIG1hdGNoICIiIFtsaW5k ZXggJGdvdCAxXV0gfSB0aGVuIHsKKyAgICBzZW5kX2xvZyAiJGdvdFxuIgor ICAgIHVucmVzb2x2ZWQgIiR0ZXN0X25hbWUiCit9CitpZiB7IFtjYXRjaCB7 ZXhlYyBjbXAgdG1wZGlyL25vcm1hbC5vdXQgdG1wZGlyLyR0ZXN0Lm91dH1d IH0gdGhlbiB7CisgICAgc2VuZF9sb2cgInRtcGRpci9ub3JtYWwub3V0IHRt cGRpci8kdGVzdC5vdXQgZGlmZmVyLlxuIgorICAgIGZhaWwgIiR0ZXN0X25h bWUiCit9IGVsc2UgeworICAgIHBhc3MgIiR0ZXN0X25hbWUiCit9CitzZW5k X2xvZyAiJFJFQURFTEYgLVMgLVcgdG1wZGlyLyR0ZXN0JyA+IHRtcGRpci8k dGVzdC5vdXRcbiIKK3NldCBnb3QgW3JlbW90ZV9leGVjIGhvc3QgIiRSRUFE RUxGIC1TIC1XIHRtcGRpci8kdGVzdCIgIiIgIi9kZXYvbnVsbCIgInRtcGRp ci8kdGVzdC5vdXQiXQoraWYgeyBbbGluZGV4ICRnb3QgMF0gIT0gMCB8fCAh W3N0cmluZyBtYXRjaCAiIiBbbGluZGV4ICRnb3QgMV1dIH0gdGhlbiB7Cisg ICAgc2VuZF9sb2cgIiRnb3RcbiIKKyAgICB1bnJlc29sdmVkICIkdGVzdF9u YW1lIgorfQoraWYgeyBbcmVnZXhwX2RpZmYgdG1wZGlyLyR0ZXN0Lm91dCAk c3JjZGlyLyRzdWJkaXIvJHRlc3QuclNdIH0gdGhlbiB7CisgICAgZmFpbCAi JHRlc3RfbmFtZSIKK30gZWxzZSB7CisgICAgcGFzcyAiJHRlc3RfbmFtZSIK K30KKworc2V0IHRlc3QgZ2FiaW5vcm1hbAorc2V0IHRlc3RfbmFtZSAiTGlu ayB3aXRoIHpsaWItZ2FiaSBjb21wcmVzc2VkIGRlYnVnIG91dHB1dCIKK3Nl bmRfbG9nICIkUkVBREVMRiAtdyB0bXBkaXIvJHRlc3QgPiB0bXBkaXIvJHRl c3Qub3V0XG4iCitzZXQgZ290IFtyZW1vdGVfZXhlYyBob3N0ICIkUkVBREVM RiAtdyB0bXBkaXIvJHRlc3QiICIiICIvZGV2L251bGwiICJ0bXBkaXIvJHRl c3Qub3V0Il0KK2lmIHsgW2xpbmRleCAkZ290IDBdICE9IDAgfHwgIVtzdHJp bmcgbWF0Y2ggIiIgW2xpbmRleCAkZ290IDFdXSB9IHRoZW4geworICAgIHNl bmRfbG9nICIkZ290XG4iCisgICAgdW5yZXNvbHZlZCAiJHRlc3RfbmFtZSIK K30KK2lmIHsgW2NhdGNoIHtleGVjIGNtcCB0bXBkaXIvbm9ybWFsLm91dCB0 bXBkaXIvJHRlc3Qub3V0fV0gfSB0aGVuIHsKKyAgICBzZW5kX2xvZyAidG1w ZGlyL25vcm1hbC5vdXQgdG1wZGlyLyR0ZXN0Lm91dCBkaWZmZXIuXG4iCisg ICAgZmFpbCAiJHRlc3RfbmFtZSIKK30gZWxzZSB7CisgICAgcGFzcyAiJHRl c3RfbmFtZSIKK30KK3NlbmRfbG9nICIkUkVBREVMRiAtdCAtVyB0bXBkaXIv JHRlc3QgPiB0bXBkaXIvJHRlc3Qub3V0XG4iCitzZXQgZ290IFtyZW1vdGVf ZXhlYyBob3N0ICIkUkVBREVMRiAtdCAtVyB0bXBkaXIvJHRlc3QiICIiICIv ZGV2L251bGwiICJ0bXBkaXIvJHRlc3Qub3V0Il0KK2lmIHsgW2xpbmRleCAk Z290IDBdICE9IDAgfHwgIVtzdHJpbmcgbWF0Y2ggIiIgW2xpbmRleCAkZ290 IDFdXSB9IHRoZW4geworICAgIHNlbmRfbG9nICIkZ290XG4iCisgICAgdW5y ZXNvbHZlZCAiJHRlc3RfbmFtZSIKK30KK2lmIHsgW3JlZ2V4cF9kaWZmIHRt cGRpci8kdGVzdC5vdXQgJHNyY2Rpci8kc3ViZGlyLyR0ZXN0LnJ0XSB9IHRo ZW4geworICAgIGZhaWwgIiR0ZXN0X25hbWUiCit9IGVsc2UgeworICAgIHBh c3MgIiR0ZXN0X25hbWUiCit9CmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUv bGQtZWxmL2dhYmllbmQucnQgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL2dhYmll bmQucnQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNi YzM2YwotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYv Z2FiaWVuZC5ydApAQCAtMCwwICsxLDQgQEAKKyMuLi4KKyArXFtbMC05YS1m XStcXTogLipDT01QUkVTU0VECisgK1pMSUIsIFswLTlhLWZdKywgMQorI3Bh c3MKZGlmZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZ2FiaW5vcm1h bC5ydCBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZ2FiaW5vcm1hbC5ydApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yM2JjMzZjCi0tLSAv ZGV2L251bGwKKysrIGIvbGQvdGVzdHN1aXRlL2xkLWVsZi9nYWJpbm9ybWFs LnJ0CkBAIC0wLDAgKzEsNCBAQAorIy4uLgorICtcW1swLTlhLWZdK1xdOiAu KkNPTVBSRVNTRUQKKyArWkxJQiwgWzAtOWEtZl0rLCAxCisjcGFzcwpkaWZm IC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi9nbnViZWdpbi5yUyBiL2xk L3Rlc3RzdWl0ZS9sZC1lbGYvZ251YmVnaW4uclMKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTRkZTI0YwotLS0gL2Rldi9udWxsCisr KyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvZ251YmVnaW4uclMKQEAgLTAsMCAr MSwzIEBACisjLi4uCisgK1xbWyAwLTldK1xdIC56ZGVidWdfLiogKyhQUk9H QklUU3xNSVBTX0RXQVJGKSArMCsgK1swLTlhLWZdKyArWzAtOWEtZl0rIFsw LTlhLWZdKyArMCArMCArMQorI3Bhc3MKZGlmZiAtLWdpdCBhL2xkL3Rlc3Rz dWl0ZS9sZC1lbGYvZ251bm9ybWFsLnJTIGIvbGQvdGVzdHN1aXRlL2xkLWVs Zi9nbnVub3JtYWwuclMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNTRkZTI0YwotLS0gL2Rldi9udWxsCisrKyBiL2xkL3Rlc3RzdWl0 ZS9sZC1lbGYvZ251bm9ybWFsLnJTCkBAIC0wLDAgKzEsMyBAQAorIy4uLgor ICtcW1sgMC05XStcXSAuemRlYnVnXy4qICsoUFJPR0JJVFN8TUlQU19EV0FS RikgKzArICtbMC05YS1mXSsgK1swLTlhLWZdKyBbMC05YS1mXSsgKzAgKzAg KzEKKyNwYXNzCmRpZmYgLS1naXQgYS9sZC90ZXN0c3VpdGUvbGQtZWxmL3ps aWJiZWdpbi5yUyBiL2xkL3Rlc3RzdWl0ZS9sZC1lbGYvemxpYmJlZ2luLnJT Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ZGUyNGMK LS0tIC9kZXYvbnVsbAorKysgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3psaWJi ZWdpbi5yUwpAQCAtMCwwICsxLDMgQEAKKyMuLi4KKyArXFtbIDAtOV0rXF0g LnpkZWJ1Z18uKiArKFBST0dCSVRTfE1JUFNfRFdBUkYpICswKyArWzAtOWEt Zl0rICtbMC05YS1mXSsgWzAtOWEtZl0rICswICswICsxCisjcGFzcwpkaWZm IC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLWVsZi96bGlibm9ybWFsLnJTIGIv bGQvdGVzdHN1aXRlL2xkLWVsZi96bGlibm9ybWFsLnJTCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU0ZGUyNGMKLS0tIC9kZXYvbnVs bAorKysgYi9sZC90ZXN0c3VpdGUvbGQtZWxmL3psaWJub3JtYWwuclMKQEAg LTAsMCArMSwzIEBACisjLi4uCisgK1xbWyAwLTldK1xdIC56ZGVidWdfLiog KyhQUk9HQklUU3xNSVBTX0RXQVJGKSArMCsgK1swLTlhLWZdKyArWzAtOWEt Zl0rIFswLTlhLWZdKyArMCArMCArMQorI3Bhc3MKLS0gCjIuMS4wCgo= --001a113dd254fe2ac30513bc4b87--