From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 103144 invoked by alias); 6 Jan 2020 08:18:19 -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 103134 invoked by uid 89); 6 Jan 2020 08:18:18 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-4.6 required=5.0 tests=AWL,BAYES_00,BODY_8BITS,FREEMAIL_FROM,GARBLED_BODY,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=no version=3.3.1 spammy=mails, shake, Best, HX-HELO:sk:mail-ot X-HELO: mail-ot1-f52.google.com Received: from mail-ot1-f52.google.com (HELO mail-ot1-f52.google.com) (209.85.210.52) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 06 Jan 2020 08:18:17 +0000 Received: by mail-ot1-f52.google.com with SMTP id i15so3000426oto.2 for ; Mon, 06 Jan 2020 00:18:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=IDTBTEZVFjiYxyKyiHzieqj7yiF6Is5ybmmDuzSz0g4=; b=isGfmxXrZeuRwes1BU5Sn0EyQfj+XZZdyppiC5UdGRpqYvfCmTZQgNqCXdW5PJyLk3 1qXJO+L1yACYEw3DxVQ5X4XlCdTRZpVqHJwYOTc5BEvoy71z76uc1Ewf7cf1pJIRaHTO P569f7iARy670nIP2xtmXAjHqJOmTc/S5Q8BVUxdU7TXvigWeJB+vzl0e1prxSs0lWsw 8iCk+jBWNnrARavDuXwyS88OSXQqH4hhzGnTt0isUpdKLfQB/aP/8ubBAzXBGr/cfdqP y1UopJgOdYPQHsCx3HEgj/XnhqKnbYWBkLTRTWfgeROUSrwFmOryGuKtjHHPmF8VwGJQ 2Dfg== MIME-Version: 1.0 References: In-Reply-To: From: Kuan-Lin Chen Date: Mon, 06 Jan 2020 08:18:00 -0000 Message-ID: Subject: Re: [PATCH] [RISCV] Support subtraction of .uleb128. To: Nelson Chu , Jim Wilson Cc: Palmer Dabbelt , "binutils@sourceware.org Development" Content-Type: multipart/mixed; boundary="00000000000019cfdf059b744dc2" X-IsSubscribed: yes X-SW-Source: 2020-01/txt/msg00039.txt.bz2 --00000000000019cfdf059b744dc2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Content-length: 2112 Hi, The patch is fixed some problems as your comments in previous mails. >The assumption that the uleb128 address size can only decrease with relaxa= tion is true only if both addresses are in the same section. I found this kind of subtract is banned in cvt_frag_to_fill for rs_leb128. Therefore, it doesn't have to restrict by ourselves. Thanks for your reviews. Nelson Chu =E6=96=BC 2019=E5=B9=B412=E6=9C=8818=E6= =97=A5 =E9=80=B1=E4=B8=89 =E4=B8=8A=E5=8D=889:50=E5=AF=AB=E9=81=93=EF=BC=9A > > There is one minor thing. Maciej has pointed out before that it's > better done with one the percent-codes to `_bfd_error_handler' rather > than aborting the link right away, so that any further link errors are > also reported and you don't have to shake them out one by one. So > report the relocation error via linker's callback function seems to be > better. I think maybe we can report a dangerous relocation for the > mismatched R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128. What I meant > is that, > > + case R_RISCV_SET_ULEB128: > ... > + else > + { > + if (uleb128_rel->r_offset !=3D rel->r_offset) > + { > - (*_bfd_error_handler) (_("%pB: relocation %s mismatched. "), > - input_bfd, howto->name); > - bfd_set_error (bfd_error_bad_value); > + msg =3D ("R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128 are mismatched. "= ); > + r =3D bfd_reloc_dangerous; > + break; > + } > + relocation =3D relocation - uleb128_vma; > + uleb128_rel =3D NULL; > + break; > + } > + > + case R_RISCV_SUB_ULEB128: > + if (uleb128_rel) > + { > + if (uleb128_rel->r_offset !=3D rel->r_offset) > + { > - (*_bfd_error_handler) (_("%pB: relocation %s mismatched. "), > - input_bfd, howto->name); > - bfd_set_error (bfd_error_bad_value); > + msg =3D ("R_RISCV_SET_ULEB128 and R_RISCV_SUB_ULEB128 are mismatched. "= ); > + r =3D bfd_reloc_dangerous; > + break; > + } > + relocation =3D uleb128_vma - relocation; > + uleb128_rel =3D NULL; > + break; > + } > > Thanks and regards > Nelson --=20 Best regards, Kuan-Lin Chen. kuanlinchentw@gmail.com --00000000000019cfdf059b744dc2 Content-Type: application/octet-stream; name="0001-RISC-V-Support-subtraction-of-.uleb128.patch" Content-Disposition: attachment; filename="0001-RISC-V-Support-subtraction-of-.uleb128.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k525xh9e0 Content-length: 19956 RnJvbSA2YTYzNjc2MDVlZDY2ZmViMzdhNzNjNTFjNmNkYmNlOWZlMDlmZjQy IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBLdWFuLUxpbiBDaGVu IDxydWZ1c0BhbmRlc3RlY2guY29tPgpEYXRlOiBUaHUsIDE0IE5vdiAyMDE5 IDE0OjI0OjIyICswODAwClN1YmplY3Q6IFtQQVRDSF0gUklTQy1WOiBTdXBw b3J0IHN1YnRyYWN0aW9uIG9mIC51bGViMTI4LgoKVGhlIGRhdGEgbGVuZ3Ro IG9mIHVsZWIxMjggaXMgdmFyaWFibGUuICBTbyBsaW5rZXIgbXVzdCByZWNh bGN1bGF0ZSB0aGUKdmFsdWUgb2YgdGhlIHN1YnRyYWN0aW9uLiAgVGhlIHBh dGNoIGxlYXZlIHJlbG9jYXRpb25zIGluIG9iamVjdCBmaWxlcwpzbyB0aGF0 IGxpbmtlciBjYW4gcmVsb2NhdGUgYWdhaW4gYWZ0ZXIgcmVsYXhhdGlvbi4K CmJmZC9DaGFuZ2VMb2c6CgkqIGJmZC1pbjIuaDogUmVnZW5lcmF0ZWQuCgkq IGVsZm5uLXJpc2N2LmMgKHdyaXRlX3VsZWIxMjgpOiBOZXcgZnVuY3Rpb24u CgkocGVyZm9ybV9yZWxvY2F0aW9uKTogUGVyZm9ybSBSX1JJU0NWX1NVQl9V TEVCMTI4IGFuZAoJIFJfUklTQ1ZfU0VUX1VMRUIxMjggcmVsb2NhdGlvbi4K CShyaXNjdl9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBl bGZ4eC1yaXNjdi5jIChob3d0b190YWJsZSk6IEFkZCBSX1JJU0NWX1NVQl9V TEVCMTI4IGFuZAoJUl9SSVNDVl9TRVRfVUxFQjEyOC4KCShyaXNjdl9lbGZf aWdub3JlX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgoJKiBsaWJiZmQuaDogUmVn ZW5lcmF0ZWQuCgkqIHJlbG9jLmMgKEJGRF9SRUxPQ19SSVNDVl9TRVRfVUxF QjEyOCwgQkZEX1JFTE9DX1JJU0NWX1NVQl9VTEVCMTI4KToKCU5ldyByZWxv Y2F0aW9ucyB0byBzdXBwb3J0IC51bGViMTI4LgoKZ2FzL0NoYW5nZUxvZzoK CSogY29uZmlnL3RjLXJpc2N2LmMgKG1kX2FwcGx5X2ZpeCk6IEFkZCBCRkRf UkVMT0NfUklTQ1ZfU0VUX1VMRUIxMjggYW5kCglCRkRfUkVMT0NfUklTQ1Zf U1VCX1VMRUIxMjguCgkocmlzY3ZfaW5zZXJ0X3VsZWIxMjhfZml4ZXMpOiBO ZXcgZnVuY3Rpb24uCgkocmlzY3ZfbWRfZW5kKTogU2NhbiByc19sZWIxMjgg ZnJhZ21lbnRzLgoJKHJpc2N2X3BzZXVkb190YWJsZSk6IFJlbW92ZSB1bGVi MTI4LgoKaW5jbHVkZS9DaGFuZ2VMb2c6CgkqIGVsZi9yaXNjdi5oICgoUl9S SVNDVl9TRVRfVUxFQjEyOCwgKFJfUklTQ1ZfU1VCX1VMRUIxMjgpOiBEZWZp bmUuCgpsZC9DaGFuZ2VMb2c6CgkqIHRlc3RzdWl0ZS9sZC1yaXNjdi1lbGYv bGQtcmlzY3YtZWxmLmV4cDogQWRkIHVsZWIxMjguCgkqIHRlc3RzdWl0ZS9s ZC1yaXNjdi1lbGYvdWxlYjEyOC5kOiBOZXcgdGVzdC4KCSogdGVzdHN1aXRl L2xkLXJpc2N2LWVsZi91bGViMTI4LnM6IE5ldyBmaWxlLgotLS0KIGJmZC9D aGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICsr KysKIGJmZC9iZmQtaW4yLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICsKIGJmZC9lbGZubi1yaXNjdi5jICAgICAgICAgICAgICAgICAg ICAgICAgICB8IDgyICsrKysrKysrKysrKysrKysrKysrKysKIGJmZC9lbGZ4 eC1yaXNjdi5jICAgICAgICAgICAgICAgICAgICAgICAgICB8IDUxICsrKysr KysrKysrKysrCiBiZmQvbGliYmZkLmggICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMiArCiBiZmQvcmVsb2MuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArKwogZ2FzL0NoYW5nZUxvZyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgIDggKysrCiBnYXMvY29uZmlnL3Rj LXJpc2N2LmMgICAgICAgICAgICAgICAgICAgICAgfCA0OSArKysrKysrKysr KystCiBpbmNsdWRlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNCArKwogaW5jbHVkZS9lbGYvcmlzY3YuaCAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKwogbGQvQ2hhbmdlTG9nICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIDYgKysKIGxkL3Rlc3RzdWl0ZS9sZC1yaXNj di1lbGYvbGQtcmlzY3YtZWxmLmV4cCB8ICAxICsKIDEyIGZpbGVzIGNoYW5n ZWQsIDIyNCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0t Z2l0IGEvYmZkL0NoYW5nZUxvZyBiL2JmZC9DaGFuZ2VMb2cKaW5kZXggMTQ4 ZGU3OTRiYy4uOWUzOWI3ODU1NCAxMDA2NDQKLS0tIGEvYmZkL0NoYW5nZUxv ZworKysgYi9iZmQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjAt MDEtMDYgIEt1YW4tTGluIENoZW4gIDxrdWFubGluY2hlbnR3QGdtYWlsLmNv bT4KKworCSogYmZkLWluMi5oOiBSZWdlbmVyYXRlZC4KKwkqIGVsZm5uLXJp c2N2LmMgKHdyaXRlX3VsZWIxMjgpOiBOZXcgZnVuY3Rpb24uCisJKHBlcmZv cm1fcmVsb2NhdGlvbik6IFBlcmZvcm0gUl9SSVNDVl9TVUJfVUxFQjEyOCBh bmQKKwkgUl9SSVNDVl9TRVRfVUxFQjEyOCByZWxvY2F0aW9uLgorCShyaXNj dl9lbGZfcmVsb2NhdGVfc2VjdGlvbik6IExpa2V3aXNlLgorCSogZWxmeHgt cmlzY3YuYyAoaG93dG9fdGFibGUpOiBBZGQgUl9SSVNDVl9TVUJfVUxFQjEy OCBhbmQKKwlSX1JJU0NWX1NFVF9VTEVCMTI4LgorCShyaXNjdl9lbGZfaWdu b3JlX3JlbG9jKTogTmV3IGZ1bmN0aW9uLgorCSogbGliYmZkLmg6IFJlZ2Vu ZXJhdGVkLgorCSogcmVsb2MuYyAoQkZEX1JFTE9DX1JJU0NWX1NFVF9VTEVC MTI4LCBCRkRfUkVMT0NfUklTQ1ZfU1VCX1VMRUIxMjgpOgorCU5ldyByZWxv Y2F0aW9ucyB0byBzdXBwb3J0IC51bGViMTI4LgorCiAyMDIwLTAxLTA0ICBB bGFuIE1vZHJhICA8YW1vZHJhQGdtYWlsLmNvbT4KIAogCSogZm9ybWF0LmMg KGJmZF9jaGVja19mb3JtYXRfbWF0Y2hlcyk6IEFkZCBwcmVzZXJ2ZV9tYXRj aC4KZGlmZiAtLWdpdCBhL2JmZC9iZmQtaW4yLmggYi9iZmQvYmZkLWluMi5o CmluZGV4IDdjMTNiYzhjOTEuLmU0M2MzYTU1NTcgMTAwNjQ0Ci0tLSBhL2Jm ZC9iZmQtaW4yLmgKKysrIGIvYmZkL2JmZC1pbjIuaApAQCAtNDM4Myw2ICs0 MzgzLDggQEAgbnVtYmVyIGZvciB0aGUgU0JJQywgU0JJUywgU0JJIGFuZCBD QkkgaW5zdHJ1Y3Rpb25zICAqLwogICBCRkRfUkVMT0NfUklTQ1ZfU0VUMTYs CiAgIEJGRF9SRUxPQ19SSVNDVl9TRVQzMiwKICAgQkZEX1JFTE9DX1JJU0NW XzMyX1BDUkVMLAorICBCRkRfUkVMT0NfUklTQ1ZfU0VUX1VMRUIxMjgsCisg IEJGRF9SRUxPQ19SSVNDVl9TVUJfVUxFQjEyOCwKIAogLyogUmVuZXNhcyBS TDc4IFJlbG9jYXRpb25zLiAgKi8KICAgQkZEX1JFTE9DX1JMNzhfTkVHOCwK ZGlmZiAtLWdpdCBhL2JmZC9lbGZubi1yaXNjdi5jIGIvYmZkL2VsZm5uLXJp c2N2LmMKaW5kZXggZDMwZmM4YjY2YS4uMWFlOGRkODNkMCAxMDA2NDQKLS0t IGEvYmZkL2VsZm5uLXJpc2N2LmMKKysrIGIvYmZkL2VsZm5uLXJpc2N2LmMK QEAgLTE0MTksNiArMTQxOSwyNiBAQCByaXNjdl9nbG9iYWxfcG9pbnRlcl92 YWx1ZSAoc3RydWN0IGJmZF9saW5rX2luZm8gKmluZm8pCiAgIHJldHVybiBo LT51LmRlZi52YWx1ZSArIHNlY19hZGRyIChoLT51LmRlZi5zZWN0aW9uKTsK IH0KIAorLyogV3JpdGUgVkFMIGluIHVsZWIxMjggZm9ybWF0IHRvIFAsIHJl dHVybmluZyBhIHBvaW50ZXIgdG8gdGhlCisgICBmb2xsb3dpbmcgYnl0ZS4K KyAgIFRoaXMgY29kZSBpcyBjb3BpZWQgZnJvbSBlbGYtYXR0ci5jLiAgKi8K Kworc3RhdGljIGJmZF9ieXRlICoKK3dyaXRlX3VsZWIxMjggKGJmZF9ieXRl ICpwLCB1bnNpZ25lZCBpbnQgdmFsKQoreworICBiZmRfYnl0ZSBjOworICBk bworICAgIHsKKyAgICAgIGMgPSB2YWwgJiAweDdmOworICAgICAgdmFsID4+ PSA3OworICAgICAgaWYgKHZhbCkKKwljIHw9IDB4ODA7CisgICAgICAqKHAr KykgPSBjOworICAgIH0KKyAgd2hpbGUgKHZhbCk7CisgIHJldHVybiBwOwor fQorCiAvKiBFbXBsYWNlIGEgc3RhdGljIHJlbG9jYXRpb24uICAqLwogCiBz dGF0aWMgYmZkX3JlbG9jX3N0YXR1c190eXBlCkBAIC0xNTEyLDYgKzE1MzIs MjUgQEAgcGVyZm9ybV9yZWxvY2F0aW9uIChjb25zdCByZWxvY19ob3d0b190 eXBlICpob3d0bywKIAl2YWx1ZSA9IEVOQ09ERV9SVkNfTFVJX0lNTSAoUklT Q1ZfQ09OU1RfSElHSF9QQVJUICh2YWx1ZSkpOwogICAgICAgYnJlYWs7CiAK KyAgICBjYXNlIFJfUklTQ1ZfU0VUX1VMRUIxMjg6CisgICAgY2FzZSBSX1JJ U0NWX1NVQl9VTEVCMTI4OgorICAgICAgeworCXVuc2lnbmVkIGludCBsZW4g PSAwOworCWJmZF9ieXRlICplbmRwLCAqcDsKKworCV9iZmRfcmVhZF91bnNp Z25lZF9sZWIxMjggKGlucHV0X2JmZCwgY29udGVudHMgKyByZWwtPnJfb2Zm c2V0LCAmbGVuKTsKKworCS8qIENsZWFuIHRoZSBjb250ZW50cyB2YWx1ZSB0 byB6ZXJvLiAgRG8gbm90IHJlZHVjZSB0aGUgbGVuZ3RoLiAgKi8KKwlwID0g Y29udGVudHMgKyByZWwtPnJfb2Zmc2V0OworCWVuZHAgPSBwICsgbGVuIC0x OworCW1lbXNldCAocCwgMHg4MCwgbGVuIC0gMSk7CisJKihlbmRwKSA9IDA7 CisJcCA9IHdyaXRlX3VsZWIxMjggKHAsIHZhbHVlKSAtIDE7CisJaWYgKHAg PCBlbmRwKQorCSAgKnAgfD0gMHg4MDsKKwlyZXR1cm4gYmZkX3JlbG9jX29r OworICAgICAgfQorCiAgICAgY2FzZSBSX1JJU0NWXzMyOgogICAgIGNhc2Ug Ul9SSVNDVl82NDoKICAgICBjYXNlIFJfUklTQ1ZfQUREODoKQEAgLTE3Njcs NiArMTgwNiw4IEBAIHJpc2N2X2VsZl9yZWxvY2F0ZV9zZWN0aW9uIChiZmQg Km91dHB1dF9iZmQsCiAgIHN0cnVjdCBlbGZfbGlua19oYXNoX2VudHJ5ICoq c3ltX2hhc2hlcyA9IGVsZl9zeW1faGFzaGVzIChpbnB1dF9iZmQpOwogICBi ZmRfdm1hICpsb2NhbF9nb3Rfb2Zmc2V0cyA9IGVsZl9sb2NhbF9nb3Rfb2Zm c2V0cyAoaW5wdXRfYmZkKTsKICAgYmZkX2Jvb2xlYW4gYWJzb2x1dGU7Cisg IGJmZF92bWEgdWxlYjEyOF92bWE7CisgIEVsZl9JbnRlcm5hbF9SZWxhICp1 bGViMTI4X3JlbCA9IE5VTEw7CiAKICAgaWYgKCFyaXNjdl9pbml0X3BjcmVs X3JlbG9jcyAoJnBjcmVsX3JlbG9jcykpCiAgICAgcmV0dXJuIEZBTFNFOwpA QCAtMTg3MSw2ICsxOTEyLDQ3IEBAIHJpc2N2X2VsZl9yZWxvY2F0ZV9zZWN0 aW9uIChiZmQgKm91dHB1dF9iZmQsCiAJY2FzZSBSX1JJU0NWX0RFTEVURToK IAkgIC8qIFRoZXNlIHJlcXVpcmUgbm8gc3BlY2lhbCBoYW5kbGluZyBiZXlv bmQgcGVyZm9ybV9yZWxvY2F0aW9uLiAgKi8KIAkgIGJyZWFrOworCWNhc2Ug Ul9SSVNDVl9TRVRfVUxFQjEyODoKKwkgIGlmICghdWxlYjEyOF9yZWwpCisJ ICAgIHsKKwkgICAgICAvKiBTYXZlIHRoZSBtaW51ZW5kIHRvIHVzZSBsYXRl ci4gICovCisJICAgICAgdWxlYjEyOF92bWEgPSByZWxvY2F0aW9uOworCSAg ICAgIHVsZWIxMjhfcmVsID0gcmVsOworCSAgICAgIGNvbnRpbnVlOworCSAg ICB9CisJICBlbHNlCisJICAgIHsKKwkgICAgICBpZiAodWxlYjEyOF9yZWwt PnJfb2Zmc2V0ICE9IHJlbC0+cl9vZmZzZXQpCisJCXsKKwkJICBtc2cgPSAo IlJfUklTQ1ZfU0VUX1VMRUIxMjggYW5kIFJfUklTQ1ZfU1VCX1VMRUIxMjgg YXJlIG1pc21hdGNoZWQuICIpOworCQkgIHIgPSBiZmRfcmVsb2NfZGFuZ2Vy b3VzOworCQkgIGJyZWFrOworCQl9CisJICAgICAgcmVsb2NhdGlvbiA9IHJl bG9jYXRpb24gLSB1bGViMTI4X3ZtYTsKKwkgICAgICB1bGViMTI4X3JlbCA9 IE5VTEw7CisJICAgICAgYnJlYWs7CisJICAgIH0KKworCWNhc2UgUl9SSVND Vl9TVUJfVUxFQjEyODoKKwkgIGlmICh1bGViMTI4X3JlbCkKKwkgICAgewor CSAgICAgIGlmICh1bGViMTI4X3JlbC0+cl9vZmZzZXQgIT0gcmVsLT5yX29m ZnNldCkKKwkJeworCQkgIG1zZyA9ICgiUl9SSVNDVl9TRVRfVUxFQjEyOCBh bmQgUl9SSVNDVl9TVUJfVUxFQjEyOCBhcmUgbWlzbWF0Y2hlZC4gIik7CisJ CSAgciA9IGJmZF9yZWxvY19kYW5nZXJvdXM7CisJCSAgYnJlYWs7CisJCX0K KwkgICAgICByZWxvY2F0aW9uID0gdWxlYjEyOF92bWEgLSByZWxvY2F0aW9u OworCSAgICAgIHVsZWIxMjhfcmVsID0gTlVMTDsKKwkgICAgICBicmVhazsK KwkgICAgfQorCSAgZWxzZQorCSAgICB7CisJICAgICAgLyogU2F2ZSB0aGUg c3VidHJhaGVuZCB0byB1c2UgbGF0ZXIuICAqLworCSAgICAgIHVsZWIxMjhf dm1hID0gcmVsb2NhdGlvbjsKKwkgICAgICB1bGViMTI4X3JlbCA9IHJlbDsK KwkgICAgICBjb250aW51ZTsKKwkgICAgfQogCiAJY2FzZSBSX1JJU0NWX0dP VF9ISTIwOgogCSAgaWYgKGggIT0gTlVMTCkKZGlmZiAtLWdpdCBhL2JmZC9l bGZ4eC1yaXNjdi5jIGIvYmZkL2VsZnh4LXJpc2N2LmMKaW5kZXggNjU4NjI5 YzBjOC4uYzA4Yjk1ZWMyNCAxMDA2NDQKLS0tIGEvYmZkL2VsZnh4LXJpc2N2 LmMKKysrIGIvYmZkL2VsZnh4LXJpc2N2LmMKQEAgLTM4LDYgKzM4LDggQEAK ICAgIHJlbG9jYXRpb25zIGZvciB0aGUgZGVidWcgaW5mby4gICovCiBzdGF0 aWMgYmZkX3JlbG9jX3N0YXR1c190eXBlIHJpc2N2X2VsZl9hZGRfc3ViX3Jl bG9jCiAgIChiZmQgKiwgYXJlbGVudCAqLCBhc3ltYm9sICosIHZvaWQgKiwg YXNlY3Rpb24gKiwgYmZkICosIGNoYXIgKiopOworc3RhdGljIGJmZF9yZWxv Y19zdGF0dXNfdHlwZSByaXNjdl9lbGZfaWdub3JlX3JlbG9jCisgIChiZmQg KiwgYXJlbGVudCAqLCBhc3ltYm9sICosIHZvaWQgKiwgYXNlY3Rpb24gKiwg YmZkICosIGNoYXIgKiopOwogCiAvKiBUaGUgcmVsb2NhdGlvbiB0YWJsZSB1 c2VkIGZvciBTSFRfUkVMQSBzZWN0aW9ucy4gICovCiAKQEAgLTg1NSw4ICs4 NTcsNDEgQEAgc3RhdGljIHJlbG9jX2hvd3RvX3R5cGUgaG93dG9fdGFibGVb XSA9CiAJIDAsCQkJCS8qIHNyY19tYXNrICovCiAJIE1JTlVTX09ORSwJCQkv KiBkc3RfbWFzayAqLwogCSBGQUxTRSksCQkJLyogcGNyZWxfb2Zmc2V0ICov CisKKyAgLyogVGhlIGxlbmd0aCBvZiB1bnNpZ25lZC1sZWIxMjggaXMgdmFy aWFibGUsIGp1c3QgYXNzdW1lIHRoZQorICAgICBzaXplIGlzIG9uZSBieXRl IGhlcmUuICAqLworICBIT1dUTyAoUl9SSVNDVl9TRVRfVUxFQjEyOCwJCS8q IHR5cGUgKi8KKwkgMCwJCQkJLyogcmlnaHRzaGlmdCAqLworCSAwLAkJCQkv KiBzaXplICovCisJIDAsCQkJCS8qIGJpdHNpemUgKi8KKwkgRkFMU0UsCQkJ CS8qIHBjX3JlbGF0aXZlICovCisJIDAsCQkJCS8qIGJpdHBvcyAqLworCSBj b21wbGFpbl9vdmVyZmxvd19kb250LAkvKiBjb21wbGFpbl9vbl9vdmVyZmxv dyAqLworCSByaXNjdl9lbGZfaWdub3JlX3JlbG9jLAkvKiBzcGVjaWFsX2Z1 bmN0aW9uICovCisJICJSX1JJU0NWX1NFVF9VTEVCMTI4IiwJCS8qIG5hbWUg Ki8KKwkgRkFMU0UsCQkJCS8qIHBhcnRpYWxfaW5wbGFjZSAqLworCSAwLAkJ CQkvKiBzcmNfbWFzayAqLworCSAwLAkJCQkvKiBkc3RfbWFzayAqLworCSBG QUxTRSksCQkJLyogcGNyZWxfb2Zmc2V0ICovCisKKyAgLyogVGhlIGxlbmd0 aCBvZiB1bnNpZ25lZC1sZWIxMjggaXMgdmFyaWFibGUsIGp1c3QgYXNzdW1l IHRoZQorICAgICBzaXplIGlzIG9uZSBieXRlIGhlcmUuICAqLworICBIT1dU TyAoUl9SSVNDVl9TVUJfVUxFQjEyOCwJCS8qIHR5cGUgKi8KKwkgMCwJCQkJ LyogcmlnaHRzaGlmdCAqLworCSAwLAkJCQkvKiBzaXplICovCisJIDAsCQkJ CS8qIGJpdHNpemUgKi8KKwkgRkFMU0UsCQkJCS8qIHBjX3JlbGF0aXZlICov CisJIDAsCQkJCS8qIGJpdHBvcyAqLworCSBjb21wbGFpbl9vdmVyZmxvd19k b250LAkvKiBjb21wbGFpbl9vbl9vdmVyZmxvdyAqLworCSByaXNjdl9lbGZf aWdub3JlX3JlbG9jLAkvKiBzcGVjaWFsX2Z1bmN0aW9uICovCisJICJSX1JJ U0NWX1NVQl9VTEVCMTI4IiwJCS8qIG5hbWUgKi8KKwkgRkFMU0UsCQkJCS8q IHBhcnRpYWxfaW5wbGFjZSAqLworCSAwLAkJCQkvKiBzcmNfbWFzayAqLwor CSAwLAkJCQkvKiBkc3RfbWFzayAqLworCSBGQUxTRSksCQkJLyogcGNyZWxf b2Zmc2V0ICovCiB9OwogCisKIC8qIEEgbWFwcGluZyBmcm9tIEJGRCByZWxv YyB0eXBlcyB0byBSSVNDLVYgRUxGIHJlbG9jIHR5cGVzLiAgKi8KIAogc3Ry dWN0IGVsZl9yZWxvY19tYXAKQEAgLTkxNyw2ICs5NTIsOCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGVsZl9yZWxvY19tYXAgcmlzY3ZfcmVsb2NfbWFwW10g PQogICB7IEJGRF9SRUxPQ19SSVNDVl9TRVQxNiwgUl9SSVNDVl9TRVQxNiB9 LAogICB7IEJGRF9SRUxPQ19SSVNDVl9TRVQzMiwgUl9SSVNDVl9TRVQzMiB9 LAogICB7IEJGRF9SRUxPQ19SSVNDVl8zMl9QQ1JFTCwgUl9SSVNDVl8zMl9Q Q1JFTCB9LAorICB7IEJGRF9SRUxPQ19SSVNDVl9TRVRfVUxFQjEyOCwgUl9S SVNDVl9TRVRfVUxFQjEyOCB9LAorICB7IEJGRF9SRUxPQ19SSVNDVl9TVUJf VUxFQjEyOCwgUl9SSVNDVl9TVUJfVUxFQjEyOCB9LAogfTsKIAogLyogR2l2 ZW4gYSBCRkQgcmVsb2MgdHlwZSwgcmV0dXJuIGEgaG93dG8gc3RydWN0dXJl LiAgKi8KQEAgLTEwMTEsNiArMTA0OCwyMCBAQCByaXNjdl9lbGZfYWRkX3N1 Yl9yZWxvYyAoYmZkICphYmZkLAogICByZXR1cm4gYmZkX3JlbG9jX29rOwog fQogCisvKiBTcGVjaWFsIGhhbmRsZXIgZm9yIHJlbG9jYXRpb25zIHdoaWNo IGRvbid0IGhhdmUgdG8gYmUgcmVsb2NhdGVkLgorICAgVGhpcyBmdW5jdGlv biBqdXN0IHNpbXBseSByZXR1cm4gYmZkX3JlbG9jX29rLiAgKi8KK3N0YXRp YyBiZmRfcmVsb2Nfc3RhdHVzX3R5cGUKK3Jpc2N2X2VsZl9pZ25vcmVfcmVs b2MgKGJmZCAqYWJmZCBBVFRSSUJVVEVfVU5VU0VELCBhcmVsZW50ICpyZWxv Y19lbnRyeSwKKwkJCWFzeW1ib2wgKnN5bWJvbCBBVFRSSUJVVEVfVU5VU0VE LAorCQkJdm9pZCAqZGF0YSBBVFRSSUJVVEVfVU5VU0VELCBhc2VjdGlvbiAq aW5wdXRfc2VjdGlvbiwKKwkJCWJmZCAqb3V0cHV0X2JmZCwgY2hhciAqKmVy cm9yX21lc3NhZ2UgQVRUUklCVVRFX1VOVVNFRCkKK3sKKyAgaWYgKG91dHB1 dF9iZmQgIT0gTlVMTCkKKyAgICByZWxvY19lbnRyeS0+YWRkcmVzcyArPSBp bnB1dF9zZWN0aW9uLT5vdXRwdXRfb2Zmc2V0OworCisgIHJldHVybiBiZmRf cmVsb2Nfb2s7Cit9CisKIC8qIFBhcnNpbmcgc3Vic2V0IHZlcnNpb24uCiAK ICAgIFJldHVybiBWYWx1ZToKZGlmZiAtLWdpdCBhL2JmZC9saWJiZmQuaCBi L2JmZC9saWJiZmQuaAppbmRleCBkOTdkNGU1N2E3Li43NGQxMmQ4Yjk5IDEw MDY0NAotLS0gYS9iZmQvbGliYmZkLmgKKysrIGIvYmZkL2xpYmJmZC5oCkBA IC0yMzI3LDYgKzIzMjcsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qg YmZkX3JlbG9jX2NvZGVfcmVhbF9uYW1lc1tdID0geyAiQEB1bmluaXRpYWxp emVkQEAiLAogICAiQkZEX1JFTE9DX1JJU0NWX1NFVDE2IiwKICAgIkJGRF9S RUxPQ19SSVNDVl9TRVQzMiIsCiAgICJCRkRfUkVMT0NfUklTQ1ZfMzJfUENS RUwiLAorICAiQkZEX1JFTE9DX1JJU0NWX1NFVF9VTEVCMTI4IiwKKyAgIkJG RF9SRUxPQ19SSVNDVl9TVUJfVUxFQjEyOCIsCiAgICJCRkRfUkVMT0NfUkw3 OF9ORUc4IiwKICAgIkJGRF9SRUxPQ19STDc4X05FRzE2IiwKICAgIkJGRF9S RUxPQ19STDc4X05FRzI0IiwKZGlmZiAtLWdpdCBhL2JmZC9yZWxvYy5jIGIv YmZkL3JlbG9jLmMKaW5kZXggMzNjZDY3MTUwYy4uOWI3OTdlNzkyMCAxMDA2 NDQKLS0tIGEvYmZkL3JlbG9jLmMKKysrIGIvYmZkL3JlbG9jLmMKQEAgLTUy MTIsNiArNTIxMiwxMCBAQCBFTlVNWAogICBCRkRfUkVMT0NfUklTQ1ZfU0VU MzIKIEVOVU1YCiAgIEJGRF9SRUxPQ19SSVNDVl8zMl9QQ1JFTAorRU5VTVgK KyAgQkZEX1JFTE9DX1JJU0NWX1NFVF9VTEVCMTI4CitFTlVNWAorICBCRkRf UkVMT0NfUklTQ1ZfU1VCX1VMRUIxMjgKIEVOVU1ET0MKICAgUklTQy1WIHJl bG9jYXRpb25zLgogCmRpZmYgLS1naXQgYS9nYXMvQ2hhbmdlTG9nIGIvZ2Fz L0NoYW5nZUxvZwppbmRleCA1YTE2YjkxNDRhLi42OWVjNDIzMzViIDEwMDY0 NAotLS0gYS9nYXMvQ2hhbmdlTG9nCisrKyBiL2dhcy9DaGFuZ2VMb2cKQEAg LTEsMyArMSwxMSBAQAorMjAyMC0wMS0wNiAgS3Vhbi1MaW4gQ2hlbiAgPGt1 YW5saW5jaGVudHdAZ21haWwuY29tPgorCisJKiBjb25maWcvdGMtcmlzY3Yu YyAobWRfYXBwbHlfZml4KTogQWRkIEJGRF9SRUxPQ19SSVNDVl9TRVRfVUxF QjEyOCBhbmQKKwlCRkRfUkVMT0NfUklTQ1ZfU1VCX1VMRUIxMjguCisJKHJp c2N2X2luc2VydF91bGViMTI4X2ZpeGVzKTogTmV3IGZ1bmN0aW9uLgorCShy aXNjdl9tZF9lbmQpOiBTY2FuIHJzX2xlYjEyOCBmcmFnbWVudHMuCisJKHJp c2N2X3BzZXVkb190YWJsZSk6IFJlbW92ZSB1bGViMTI4LgorCiAyMDIwLTAx LTAzICBTZXJnZXkgQmVseWFzaG92ICA8c2VyZ2V5LmJlbHlhc2hvdkBnbWFp bC5jb20+CiAKIAlQUiAyNTMxMQpkaWZmIC0tZ2l0IGEvZ2FzL2NvbmZpZy90 Yy1yaXNjdi5jIGIvZ2FzL2NvbmZpZy90Yy1yaXNjdi5jCmluZGV4IDIxZmZm OGZmYWIuLmUxZTM3YzI2N2EgMTAwNjQ0Ci0tLSBhL2dhcy9jb25maWcvdGMt cmlzY3YuYworKysgYi9nYXMvY29uZmlnL3RjLXJpc2N2LmMKQEAgLTIzOTIs NiArMjM5Miw5IEBAIG1kX2FwcGx5X2ZpeCAoZml4UyAqZml4UCwgdmFsdWVU ICp2YWxQLCBzZWdUIHNlZyBBVFRSSUJVVEVfVU5VU0VEKQogICAgIGNhc2Ug QkZEX1JFTE9DX1JJU0NWX1NVQjMyOgogICAgIGNhc2UgQkZEX1JFTE9DX1JJ U0NWX1NVQjY0OgogICAgIGNhc2UgQkZEX1JFTE9DX1JJU0NWX1JFTEFYOgor ICAgIC8qIGN2dF9mcmFnX3RvX2ZpbGwgKCkgaGFzIGNhbGxlZCBvdXRwdXRf bGViMTI4ICgpLiAgKi8KKyAgICBjYXNlIEJGRF9SRUxPQ19SSVNDVl9TRVRf VUxFQjEyODoKKyAgICBjYXNlIEJGRF9SRUxPQ19SSVNDVl9TVUJfVUxFQjEy ODoKICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBCRkRfUkVMT0NfUklTQ1Zf VFBSRUxfSEkyMDoKQEAgLTMxMzEsMTEgKzMxMzQsNTYgQEAgcmlzY3Zfc2V0 X3B1YmxpY19hdHRyaWJ1dGVzICh2b2lkKQogICAgIHJpc2N2X3dyaXRlX291 dF9hcmNoX2F0dHIgKCk7CiB9CiAKKy8qIFNjYW4gdWxlYjEyOCBzdWJ0cmFj dGlvbiBleHByZXNzaW9ucyBhbmQgaW5zZXJ0IGZpeHVwcyBmb3IgdGhlbS4K KyAgIGUuZy4sIC51bGViMTI4IC5MMSAtIC5MMAorICAgQmVjYXVzZSByZWxh eGF0aW9uIG1heSBjaGFuZ2UgdGhlIHZhbHVlIG9mIHRoZSBzdWJ0cmFjdGlv biwgd2UKKyAgIG11c3QgcmVzb2x2ZSB0aGVtIGF0IGxpbmstdGltZS4gICov CisKK3N0YXRpYyB2b2lkCityaXNjdl9pbnNlcnRfdWxlYjEyOF9maXhlcyAo YmZkICphYmZkIEFUVFJJQlVURV9VTlVTRUQsCisJCQkgICAgYXNlY3Rpb24g KnNlYywgdm9pZCAqeHh4IEFUVFJJQlVURV9VTlVTRUQpCit7CisgIHNlZ21l bnRfaW5mb190eXBlICpzZWdpbmZvID0gc2VnX2luZm8gKHNlYyk7CisgIHN0 cnVjdCBmcmFnICpmcmFnUDsKKworICBzdWJzZWdfc2V0IChzZWMsIDApOwor CisgIGZvciAoZnJhZ1AgPSBzZWdpbmZvLT5mcmNoYWluUC0+ZnJjaF9yb290 OworICAgICAgIGZyYWdQOyBmcmFnUCA9IGZyYWdQLT5mcl9uZXh0KQorICAg IHsKKyAgICAgIGV4cHJlc3Npb25TICpleHAsICpleHBfZHVwOworCisgICAg ICBpZiAoZnJhZ1AtPmZyX3R5cGUgIT0gcnNfbGViMTI4ICB8fCBmcmFnUC0+ ZnJfc3ltYm9sID09IE5VTEwpCisJY29udGludWU7CisKKyAgICAgIGV4cCA9 IHN5bWJvbF9nZXRfdmFsdWVfZXhwcmVzc2lvbiAoZnJhZ1AtPmZyX3N5bWJv bCk7CisKKyAgICAgIGlmIChleHAtPlhfb3AgIT0gT19zdWJ0cmFjdCkKKwlj b250aW51ZTsKKworICAgICAgLyogT25seSB1bnNpZ25lZCBsZWIxMjggY2Fu IGJlIGhhbmRsZWQuICAqLworICAgICAgZ2FzX2Fzc2VydCAoZnJhZ1AtPmZy X3N1YnR5cGUgPT0gMCk7CisgICAgICBleHBfZHVwID0geG1lbWR1cCAoZXhw LCBzaXplb2YgKCpleHApLCBzaXplb2YgKCpleHApKTsKKyAgICAgIGV4cF9k dXAtPlhfb3AgPSBPX3N5bWJvbDsKKyAgICAgIGV4cF9kdXAtPlhfb3Bfc3lt Ym9sID0gTlVMTDsKKworICAgICAgLyogSW5zZXJ0IHJlbG9jYXRpb25zIHRv IHJlc29sdmUgdGhlIHN1YnRyYWN0aW9uIGF0IGxpbmstdGltZS4gICovCisg ICAgICBmaXhfbmV3X2V4cCAoZnJhZ1AsIGZyYWdQLT5mcl9maXgsIDAsCisJ CSAgIGV4cF9kdXAsIDAsIEJGRF9SRUxPQ19SSVNDVl9TRVRfVUxFQjEyOCk7 CisgICAgICBleHBfZHVwLT5YX2FkZF9zeW1ib2wgPSBleHAtPlhfb3Bfc3lt Ym9sOworICAgICAgZml4X25ld19leHAgKGZyYWdQLCBmcmFnUC0+ZnJfZml4 LCAwLAorCQkgICBleHBfZHVwLCAwLCBCRkRfUkVMT0NfUklTQ1ZfU1VCX1VM RUIxMjgpOworICAgIH0KK30KKwogLyogQ2FsbGVkIGFmdGVyIGFsbCBhc3Nl bWJseSBoYXMgYmVlbiBkb25lLiAgKi8KIAogdm9pZAogcmlzY3ZfbWRfZW5k ICh2b2lkKQogeworCisgIGlmIChyaXNjdl9vcHRzLnJlbGF4KQorICAgIGJm ZF9tYXBfb3Zlcl9zZWN0aW9ucyAoc3Rkb3V0cHV0LCByaXNjdl9pbnNlcnRf dWxlYjEyOF9maXhlcywgTlVMTCk7CiAgIHJpc2N2X3NldF9wdWJsaWNfYXR0 cmlidXRlcyAoKTsKIH0KIApAQCAtMzIxOSw3ICszMjY3LDYgQEAgc3RhdGlj IGNvbnN0IHBzZXVkb190eXBlUyByaXNjdl9wc2V1ZG9fdGFibGVbXSA9CiAg IHsiZHRwcmVsd29yZCIsIHNfZHRwcmVsLCA0fSwKICAgeyJkdHByZWxkd29y ZCIsIHNfZHRwcmVsLCA4fSwKICAgeyJic3MiLCBzX2JzcywgMH0sCi0gIHsi dWxlYjEyOCIsIHNfcmlzY3ZfbGViMTI4LCAwfSwKICAgeyJzbGViMTI4Iiwg c19yaXNjdl9sZWIxMjgsIDF9LAogICB7Imluc24iLCBzX3Jpc2N2X2luc24s IDB9LAogICB7ImF0dHJpYnV0ZSIsIHNfcmlzY3ZfYXR0cmlidXRlLCAwfSwK ZGlmZiAtLWdpdCBhL2luY2x1ZGUvQ2hhbmdlTG9nIGIvaW5jbHVkZS9DaGFu Z2VMb2cKaW5kZXggZTI4YzE2OGY1NS4uMzE2NmY3MDhjZiAxMDA2NDQKLS0t IGEvaW5jbHVkZS9DaGFuZ2VMb2cKKysrIGIvaW5jbHVkZS9DaGFuZ2VMb2cK QEAgLTEsMyArMSw3IEBACisyMDIwLTAxLTA2ICBLdWFuLUxpbiBDaGVuICA8 a3VhbmxpbmNoZW50d0BnbWFpbC5jb20+CisKKwkqIGVsZi9yaXNjdi5oICgo Ul9SSVNDVl9TRVRfVUxFQjEyOCwgKFJfUklTQ1ZfU1VCX1VMRUIxMjgpOiBE ZWZpbmUuCisKIDIwMjAtMDEtMDIgIFNlcmdleSBCZWx5YXNob3YgIDxzZXJn ZXkuYmVseWFzaG92QGdtYWlsLmNvbT4KIAogCSogY29mZi9pbnRlcm5hbC5o OiBBZGQgZGVmaW50aW9ucyBvZiBaODAgcmVsb2MgbmFtZXMuCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2VsZi9yaXNjdi5oIGIvaW5jbHVkZS9lbGYvcmlzY3Yu aAppbmRleCA1MDYyYTQ5OThjLi5hODM5YTBjODQzIDEwMDY0NAotLS0gYS9p bmNsdWRlL2VsZi9yaXNjdi5oCisrKyBiL2luY2x1ZGUvZWxmL3Jpc2N2LmgK QEAgLTg4LDYgKzg4LDggQEAgU1RBUlRfUkVMT0NfTlVNQkVSUyAoZWxmX3Jp c2N2X3JlbG9jX3R5cGUpCiAgIFJFTE9DX05VTUJFUiAoUl9SSVNDVl9TRVQx NiwgNTUpCiAgIFJFTE9DX05VTUJFUiAoUl9SSVNDVl9TRVQzMiwgNTYpCiAg IFJFTE9DX05VTUJFUiAoUl9SSVNDVl8zMl9QQ1JFTCwgNTcpCisgIFJFTE9D X05VTUJFUiAoUl9SSVNDVl9TRVRfVUxFQjEyOCwgNTgpCisgIFJFTE9DX05V TUJFUiAoUl9SSVNDVl9TVUJfVUxFQjEyOCwgNTkpCiBFTkRfUkVMT0NfTlVN QkVSUyAoUl9SSVNDVl9tYXgpCiAKIC8qIFByb2Nlc3NvciBzcGVjaWZpYyBm bGFncyBmb3IgdGhlIEVMRiBoZWFkZXIgZV9mbGFncyBmaWVsZC4gICovCmRp ZmYgLS1naXQgYS9sZC9DaGFuZ2VMb2cgYi9sZC9DaGFuZ2VMb2cKaW5kZXgg NDc2ZTZjYjg5NC4uZDFhOTcwMzUyNiAxMDA2NDQKLS0tIGEvbGQvQ2hhbmdl TG9nCisrKyBiL2xkL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkgQEAKKzIwMjAt MDEtMDYgIEt1YW4tTGluIENoZW4gIDxrdWFubGluY2hlbnR3QGdtYWlsLmNv bT4KKworCSogdGVzdHN1aXRlL2xkLXJpc2N2LWVsZi9sZC1yaXNjdi1lbGYu ZXhwOiBBZGQgdWxlYjEyOC4KKwkqIHRlc3RzdWl0ZS9sZC1yaXNjdi1lbGYv dWxlYjEyOC5kOiBOZXcgdGVzdC4KKwkqIHRlc3RzdWl0ZS9sZC1yaXNjdi1l bGYvdWxlYjEyOC5zOiBOZXcgZmlsZS4KKwogMjAyMC0wMS0wMyAgSGFubmVz IERvbWFuaSAgPHNzYnNzYUB5YWhvby5kZT4KIAogCSogZW11bHRlbXBsL3Bl LmVtOiBBZGQgbmV3IG9wdGlvbiAtLWVuYWJsZS1yZWxvYy1zZWN0aW9uLgpk aWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xkLXJpc2N2LWVsZi9sZC1yaXNj di1lbGYuZXhwIGIvbGQvdGVzdHN1aXRlL2xkLXJpc2N2LWVsZi9sZC1yaXNj di1lbGYuZXhwCmluZGV4IDBlOTc1MGU0OTYuLjQxMmMwMGQxZWMgMTAwNjQ0 Ci0tLSBhL2xkL3Rlc3RzdWl0ZS9sZC1yaXNjdi1lbGYvbGQtcmlzY3YtZWxm LmV4cAorKysgYi9sZC90ZXN0c3VpdGUvbGQtcmlzY3YtZWxmL2xkLXJpc2N2 LWVsZi5leHAKQEAgLTM4LDYgKzM4LDcgQEAgaWYgW2lzdGFyZ2V0ICJyaXNj diotKi0qIl0gewogICAgIHJ1bl9kdW1wX3Rlc3QgImF0dHItbWVyZ2UtcHJp di1zcGVjIgogICAgIHJ1bl9kdW1wX3Rlc3QgImF0dHItbWVyZ2UtYXJjaC1m YWlsZWQtMDEiCiAgICAgcnVuX2R1bXBfdGVzdCAiYXR0ci1tZXJnZS1zdGFj ay1hbGlnbi1mYWlsZWQiCisgICAgcnVuX2R1bXBfdGVzdCAidWxlYjEyOCIK ICAgICBydW5fbGRfbGlua190ZXN0cyB7CiAJeyAiV2VhayByZWZlcmVuY2Ug MzIiICItVCB3ZWFrcmVmLmxkIC1tZWxmMzJscmlzY3YiICIiCiAJICAgICIt bWFyY2g9cnYzMmkgLW1hYmk9aWxwMzIiIHt3ZWFrcmVmMzIuc30KLS0gCjIu MTcuMAoK --00000000000019cfdf059b744dc2--