From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Newsgroups: gmane.emacs.bugs Subject: bug#41615: [feature/native-comp] Dump prettier C code. Date: Mon, 1 Jun 2020 09:25:18 -0300 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="000000000000ec52de05a704e3ff" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="76816"; mail-complaints-to="usenet@ciao.gmane.io" Cc: 41615@debbugs.gnu.org To: Andrea Corallo Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jun 01 14:26:10 2020 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jfjW6-000JwP-4d for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 01 Jun 2020 14:26:10 +0200 Original-Received: from localhost ([::1]:54728 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jfjW5-00087M-5m for geb-bug-gnu-emacs@m.gmane-mx.org; Mon, 01 Jun 2020 08:26:09 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:52614) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jfjVy-00085v-O2 for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2020 08:26:02 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:51430) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jfjVx-0001JW-PN for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2020 08:26:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jfjVx-0002s0-MV for bug-gnu-emacs@gnu.org; Mon, 01 Jun 2020 08:26:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Nicolas =?UTF-8?Q?B=C3=A9rtolo?= Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 01 Jun 2020 12:26:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41615 X-GNU-PR-Package: emacs Original-Received: via spool by 41615-submit@debbugs.gnu.org id=B41615.159101433611000 (code B ref 41615); Mon, 01 Jun 2020 12:26:01 +0000 Original-Received: (at 41615) by debbugs.gnu.org; 1 Jun 2020 12:25:36 +0000 Original-Received: from localhost ([127.0.0.1]:34743 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfjVX-0002rM-RC for submit@debbugs.gnu.org; Mon, 01 Jun 2020 08:25:36 -0400 Original-Received: from mail-oo1-f48.google.com ([209.85.161.48]:41805) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jfjVW-0002r9-SN for 41615@debbugs.gnu.org; Mon, 01 Jun 2020 08:25:35 -0400 Original-Received: by mail-oo1-f48.google.com with SMTP id 7so1356317oof.8 for <41615@debbugs.gnu.org>; Mon, 01 Jun 2020 05:25:34 -0700 (PDT) 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=+BTf4rZQlGgB8DkAGayEllNB456BfD7dirZUHILqTYI=; b=aVsSakVg94RMD89gDS8K7A0ntkM8m8j9MhIbhqEa7EAcM4btWsIRYfIPUQvN7XhYDw nn2MptIojvcKc9wEYdSyU/7kS31bvWxCqJMozgPGcQk8Q2dHcoq8EIMAixhJ9i+uzUxP Rse/vXLPKLOzBWKwgYO4qLBF1KAM4B79Er10KctUKYh92+TZOSCGFM/jHLCx0eOei8PM 5Zr6ILVJc05jZIQOKqgHRQbHDziZUforahGgX9rVftN9eeIzsfK+S5+IDheViH2ey6VI cDvI17b/vS2wamt+JmAYUfbQSEx1koGjp1VbbfR9detDSmra1gD2nvpiIDvvdIIcSAd9 vHMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+BTf4rZQlGgB8DkAGayEllNB456BfD7dirZUHILqTYI=; b=oJ+zuhch25togXZkn3+aNto/8cIxPX/lch0zQatGH9QOeUvz7JLJd4Gfd1HDPpmwR0 +TGPFhQyfa9nQ5VeVPHttQZf/m4e2U50iYwjbja4FiDqCpsbcYMjxSAQrVDc9APKINjf TFXqdD738hd2IojUdCLILemfOQ3QP4JZtZWM5Ed6a/vgvHjE4DCP4MWhlEwS49aguumF nTW5nqQtY8J3FbDEwaXQtAkrgTz8uM/IRtYXLVtt/E/uY/8TpYPts+TgPaNl+budglKM GNpDbkO+pOER3fJb30u7vCST4PgNgfPrR+LSEbNz6Zg4ScnT/NiAY8ar7oVwywcBsySC +yOA== X-Gm-Message-State: AOAM532zxy3uzaJbt3KNf6e0NVSPrDCWI76myP0lW8+VLrbOj1MkQMSE 9Fekpm9xazlsdhldboIq3YFxCYbD01fpeQOlXAsdpaYsCRo= X-Google-Smtp-Source: ABdhPJzRkRTtFNFCzvAQDkOIUeL+uASauSv2tPXzLUpNDTrFk+1S3CQ5KLWfmCvSWcgk/jjyNhmITi7mFUV/gbjJIuA= X-Received: by 2002:a4a:7ac2:: with SMTP id a185mr16721971ooc.84.1591014329133; Mon, 01 Jun 2020 05:25:29 -0700 (PDT) In-Reply-To: X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.io gmane.emacs.bugs:181334 Archived-At: --000000000000ec52de05a704e3ff Content-Type: text/plain; charset="UTF-8" I rewrote the "cast with functions" patch and added a few more patches. - Implement cast to bool as !!x instead of (x & 0xFF). - Throw an ICE when asked to perform sign extension. I didn't see any issues with this one. So for now it is not necessary to implement them. Nico. --000000000000ec52de05a704e3ff Content-Type: application/octet-stream; name="0003-Implement-casts-to-bool-using-double-negation-like-i.patch" Content-Disposition: attachment; filename="0003-Implement-casts-to-bool-using-double-negation-like-i.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kawgudto2 RnJvbSAzOWI4ZDdiMGJiY2RhNGY0ZjM0NzU5YjAyY2MyY2YzMDUyMzUzNmZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMSBNYXkgMjAyMCAxNzoy NDowMyAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMy80XSBJbXBsZW1lbnQgY2FzdHMgdG8gYm9vbCB1 c2luZyBkb3VibGUgbmVnYXRpb24gbGlrZSBpbiBDLgoKKiBzcmMvY29tcC5jIChkZWZpbmVfY2Fz dF90b19ib29sKTogTmV3IGZ1bmN0aW9uIHRoYXQgdXNlcyBkb3VibGUKbmVnYXRpb24gdG8gY2Fz dCB0byBib29sLgotLS0KIHNyYy9jb21wLmMgfCA2NiArKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2NiBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggNmY5Mjgw MWIxM2YuLmVkMmU1ZjM3MzM4IDEwMDY0NAotLS0gYS9zcmMvY29tcC5jCisrKyBiL3NyYy9jb21w LmMKQEAgLTI5MDksMTAgKzI5MDksNzYgQEAgZGVmaW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKHZv aWQpCiAgIHNpemVfdCBieXRlc19zaXplOwogfTsKIAorc3RhdGljIGdjY19qaXRfZnVuY3Rpb24g KgorZGVmaW5lX2Nhc3RfdG9fYm9vbCAoc3RydWN0IGNhc3RfdHlwZSBmcm9tLCBpbnQgZnJvbV9p bmRleCkKK3sKKyAgY2hhciAqbmFtZSA9IGZvcm1hdF9zdHJpbmcgKCJjYXN0X2Zyb21fJXNfdG9f JXMiLCBmcm9tLm5hbWUsICJib29sIik7CisgIGdjY19qaXRfcGFyYW0gKnBhcmFtID0gZ2NjX2pp dF9jb250ZXh0X25ld19wYXJhbSAoY29tcC5jdHh0LCBOVUxMLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20udHlwZSwgImFyZyIpOworICBn Y2Nfaml0X2Z1bmN0aW9uICpyZXN1bHQgPSBnY2Nfaml0X2NvbnRleHRfbmV3X2Z1bmN0aW9uIChj b21wLmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBHQ0NfSklUX0ZVTkNUSU9OX0lOVEVSTkFMLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuYm9vbF90eXBlLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFyYW0sCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMCk7CisKKyAgREVDTF9CTE9DSyAoZW50cnlfYmxvY2ssIHJlc3VsdCk7 CisKKyAgZ2NjX2ppdF9sdmFsdWUgKnRtcF91bmlvbgorICAgID0gZ2NjX2ppdF9mdW5jdGlvbl9u ZXdfbG9jYWwgKHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxM LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY2FzdF91bmlvbl90eXBl LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmlvbl9jYXN0Iik7CisKKyAg LyogIFplcm8gdGhlIHVuaW9uIGZpcnN0LiAgKi8KKyAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdu bWVudCAoZW50cnlfYmxvY2ssIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVsZCAodG1wX3VuaW9uLCBOVUxMLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY2FzdF91bmlvbl9maWVsZHNbTlVNX0NBU1Rf VFlQRVNdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2NvbnRl eHRfbmV3X3J2YWx1ZV9mcm9tX2ludCAoCisJCQkJICAgIGNvbXAuY3R4dCwKKwkJCQkgICAgY29t cC5jYXN0X3R5cGVzW05VTV9DQVNUX1RZUEVTXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIDApKTsKKworICBnY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50IChlbnRyeV9i bG9jaywgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9sdmFs dWVfYWNjZXNzX2ZpZWxkICh0bXBfdW5pb24sIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29tcC5jYXN0X3VuaW9uX2ZpZWxkc1tmcm9tX2luZGV4XSksCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfcGFyYW1fYXNfcnZhbHVlIChwYXJhbSkp OworCisgIGdjY19qaXRfcnZhbHVlICpjYXN0X3RvX2JpZ2dlc3QKKyAgICA9IGdjY19qaXRfcnZh bHVlX2FjY2Vzc19maWVsZCAoZ2NjX2ppdF9sdmFsdWVfYXNfcnZhbHVlICh0bXBfdW5pb24pLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25fZmllbGRzW05VTV9DQVNUX1RZUEVT XSk7CisKKyAgZ2NjX2ppdF9ydmFsdWUgKmZpcnN0X25lZ2F0aW9uCisgICAgPSBnY2Nfaml0X2Nv bnRleHRfbmV3X3VuYXJ5X29wIChjb21wLmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0ND X0pJVF9VTkFSWV9PUF9MT0dJQ0FMX05FR0FURSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbXAuYm9vbF90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgY2FzdF90b19iaWdnZXN0KTsKKworICBnY2Nfaml0X3J2YWx1ZSAqc2Vjb25kX25lZ2F0 aW9uCisgICAgPSBnY2Nfaml0X2NvbnRleHRfbmV3X3VuYXJ5X29wIChjb21wLmN0eHQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR0NDX0pJVF9VTkFSWV9PUF9MT0dJQ0FMX05FR0FURSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuYm9vbF90eXBlLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfbmVnYXRpb24pOworCisgIGdjY19qaXRf YmxvY2tfZW5kX3dpdGhfcmV0dXJuIChlbnRyeV9ibG9jaywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWNv bmRfbmVnYXRpb24pOworCisgIHJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBnY2Nfaml0X2Z1 bmN0aW9uICoKIGRlZmluZV9jYXN0X2Zyb21fdG8gKHN0cnVjdCBjYXN0X3R5cGUgZnJvbSwgaW50 IGZyb21faW5kZXgsIHN0cnVjdCBjYXN0X3R5cGUgdG8sCiAgICAgICAgICAgICAgICAgICAgIGlu dCB0b19pbmRleCkKIHsKKyAgaWYgKHRvLnR5cGUgPT0gY29tcC5ib29sX3R5cGUpCisgICAgcmV0 dXJuIGRlZmluZV9jYXN0X3RvX2Jvb2wgKGZyb20sIGZyb21faW5kZXgpOworCiAgIGNoYXIgKm5h bWUgPSBmb3JtYXRfc3RyaW5nICgiY2FzdF9mcm9tXyVzX3RvXyVzIiwgZnJvbS5uYW1lLCB0by5u YW1lKTsKICAgZ2NjX2ppdF9wYXJhbSAqcGFyYW0gPSBnY2Nfaml0X2NvbnRleHRfbmV3X3BhcmFt IChjb21wLmN0eHQsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZnJvbS50eXBlLCAiYXJnIik7Ci0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000ec52de05a704e3ff Content-Type: application/octet-stream; name="0004-Throw-an-ICE-when-asked-to-emit-a-cast-with-sign-ext.patch" Content-Disposition: attachment; filename="0004-Throw-an-ICE-when-asked-to-emit-a-cast-with-sign-ext.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kawgudts3 RnJvbSA0MzVlZDg0YzZkZjQ5MTFiMjM4ZjY3Yzc5NDkyNTMzZTBjNzFjYTQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMSBNYXkgMjAyMCAxODow OToxMiAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggNC80XSBUaHJvdyBhbiBJQ0Ugd2hlbiBhc2tlZCB0 byBlbWl0IGEgY2FzdCB3aXRoIHNpZ24KIGV4dGVuc2lvbi4KCiogc3JjL2NvbXAuYyAoY2FzdF9r aW5kX29mX3R5cGUpOiBFbnVtIHRoYXQgc3BlY2lmaWVzIHRoZSBraW5kIG9mIHR5cGUKaW4gdGhl IGNhc3QgZW51bSAodW5zaWduZWQsIHNpZ25lZCwgcG9pbnRlcikuCihlbWl0X2NvZXJjZSk6IFRo cm93IGFuIElDRSB3aGVuIGFza2VkIHRvIGVtaXQgYSBjYXN0IHdpdGggc2lnbgpleHRlbnNpb24u CihkZWZpbmVfY2FzdF9mcm9tX3RvKTogUmV0dXJuIE5VTEwgZm9yIGNhc3RzIGludm9sdmluZyBz aWduIGV4dGVuc2lvbi4KKGRlZmluZV9jYXN0X2Z1bmN0aW9ucyk6IFNwZWNpZnkgdGhlIGtpbmQg b2YgZWFjaCB0eXBlIGluIHRoZSBjYXN0CnVuaW9uLgotLS0KIHNyYy9jb21wLmMgfCA1OCArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvY29tcC5jIGIvc3JjL2NvbXAuYwppbmRleCBlZDJlNWYzNzMzOC4uOGRjOTM2ZjQ1MWEg MTAwNjQ0Ci0tLSBhL3NyYy9jb21wLmMKKysrIGIvc3JjL2NvbXAuYwpAQCAtNDUwLDYgKzQ1MCwx MyBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogCiAjZGVmaW5lIE5VTV9DQVNUX1RZ UEVTIDE1CiAKK2VudW0gY2FzdF9raW5kX29mX3R5cGUKKyAgeworICAgIGtpbmRfdW5zaWduZWQs CisgICAga2luZF9zaWduZWQsCisgICAga2luZF9wb2ludGVyCisgIH07CisKIC8qIEMgc2lkZSBv ZiB0aGUgY29tcGlsZXIgY29udGV4dC4gICovCiAKIHR5cGVkZWYgc3RydWN0IHsKQEAgLTUxNCw2 ICs1MjEsNyBAQCAjZGVmaW5lIE5VTV9DQVNUX1RZUEVTIDE1CiAgICAgICBtZW1iZXIuICAqLwog ICBnY2Nfaml0X3R5cGUgKmNhc3RfdHlwZXNbTlVNX0NBU1RfVFlQRVMrMV07CiAgIHNpemVfdCBj YXN0X3R5cGVfc2l6ZXNbTlVNX0NBU1RfVFlQRVMrMV07CisgIGVudW0gY2FzdF9raW5kX29mX3R5 cGUgY2FzdF90eXBlX2tpbmRbTlVNX0NBU1RfVFlQRVMrMV07CiAgIGNvbnN0IGNoYXIgKmNhc3Rf dHlwZV9uYW1lc1tOVU1fQ0FTVF9UWVBFUysxXTsKICAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlv bl9maWVsZHNbTlVNX0NBU1RfVFlQRVMrMV07CiAgIHNpemVfdCBjYXN0X3VuaW9uX2ZpZWxkX2Jp Z2dlc3RfdHlwZTsKQEAgLTk4MCw2ICs5ODgsMTMgQEAgZW1pdF9jb2VyY2UgKGdjY19qaXRfdHlw ZSAqbmV3X3R5cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgIGludCBvbGRfaW5kZXggPSB0eXBl X3RvX2Nhc3RfaW5kZXggKG9sZF90eXBlKTsKICAgaW50IG5ld19pbmRleCA9IHR5cGVfdG9fY2Fz dF9pbmRleCAobmV3X3R5cGUpOwogCisgIGlmIChjb21wLmNhc3RfdHlwZV9zaXplc1tvbGRfaW5k ZXhdIDwgY29tcC5jYXN0X3R5cGVfc2l6ZXNbbmV3X2luZGV4XQorICAgICAgJiYgY29tcC5jYXN0 X3R5cGVfa2luZFtuZXdfaW5kZXhdID09IGtpbmRfc2lnbmVkKQorICAgIHhzaWduYWwzIChRbmF0 aXZlX2ljZSwKKyAgICAgICAgICAgICAgYnVpbGRfc3RyaW5nICgiRklYTUU6IHNpZ24gZXh0ZW5z aW9uIG5vdCBpbXBsZW1lbnRlZCIpLAorICAgICAgICAgICAgICBidWlsZF9zdHJpbmcgKGNvbXAu Y2FzdF90eXBlX25hbWVzW29sZF9pbmRleF0pLAorICAgICAgICAgICAgICBidWlsZF9zdHJpbmcg KGNvbXAuY2FzdF90eXBlX25hbWVzW25ld19pbmRleF0pKTsKKwogICAvKiBMb29rdXAgdGhlIGFw cHJvcHJpYXRlIGNhc3QgZnVuY3Rpb24gaW4gdGhlIGNhc3QgbWF0cml4LiAgKi8KICAgcmV0dXJu IGdjY19qaXRfY29udGV4dF9uZXdfY2FsbCAoY29tcC5jdHh0LAogICAgICAgICAgICBOVUxMLApA QCAtMjkwNyw2ICsyOTIyLDcgQEAgZGVmaW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKHZvaWQpCiAg IGdjY19qaXRfdHlwZSAqdHlwZTsKICAgY29uc3QgY2hhciAqbmFtZTsKICAgc2l6ZV90IGJ5dGVz X3NpemU7CisgIGVudW0gY2FzdF9raW5kX29mX3R5cGUga2luZDsKIH07CiAKIHN0YXRpYyBnY2Nf aml0X2Z1bmN0aW9uICoKQEAgLTI5NzksNiArMjk5NSwxMSBAQCBkZWZpbmVfY2FzdF9mcm9tX3Rv IChzdHJ1Y3QgY2FzdF90eXBlIGZyb20sIGludCBmcm9tX2luZGV4LCBzdHJ1Y3QgY2FzdF90eXBl IHRvLAogICBpZiAodG8udHlwZSA9PSBjb21wLmJvb2xfdHlwZSkKICAgICByZXR1cm4gZGVmaW5l X2Nhc3RfdG9fYm9vbCAoZnJvbSwgZnJvbV9pbmRleCk7CiAKKyAgLyogIEZJWE1FOiBzaWduIGV4 dGVuc2lvbiBub3QgaW1wbGVtZW50ZWQuICAqLworICBpZiAoY29tcC5jYXN0X3R5cGVfc2l6ZXNb ZnJvbV9pbmRleF0gPCBjb21wLmNhc3RfdHlwZV9zaXplc1t0b19pbmRleF0KKyAgICAgICYmIGNv bXAuY2FzdF90eXBlX2tpbmRbdG9faW5kZXhdID09IGtpbmRfc2lnbmVkKQorICAgIHJldHVybiBO VUxMOworCiAgIGNoYXIgKm5hbWUgPSBmb3JtYXRfc3RyaW5nICgiY2FzdF9mcm9tXyVzX3RvXyVz IiwgZnJvbS5uYW1lLCB0by5uYW1lKTsKICAgZ2NjX2ppdF9wYXJhbSAqcGFyYW0gPSBnY2Nfaml0 X2NvbnRleHRfbmV3X3BhcmFtIChjb21wLmN0eHQsIE5VTEwsCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbS50eXBlLCAiYXJnIik7CkBAIC0z MDI3LDIyICszMDQ4LDI3IEBAIGRlZmluZV9jYXN0X2Zyb21fdG8gKHN0cnVjdCBjYXN0X3R5cGUg ZnJvbSwgaW50IGZyb21faW5kZXgsIHN0cnVjdCBjYXN0X3R5cGUgdG8sCiBkZWZpbmVfY2FzdF9m dW5jdGlvbnMgKHZvaWQpCiB7CiAgIHN0cnVjdCBjYXN0X3R5cGUgY2FzdF90eXBlc1tOVU1fQ0FT VF9UWVBFU10KLSAgICA9IHsgeyBjb21wLmJvb2xfdHlwZSwgImJvb2wiLCBzaXplb2YgKGJvb2wp IH0sCi0gICAgICAgIHsgY29tcC5jaGFyX3B0cl90eXBlLCAiY2hhcl9wdHIiLCBzaXplb2YgKGNo YXIgKikgfSwKLSAgICAgICAgeyBjb21wLmludF90eXBlLCAiaW50Iiwgc2l6ZW9mIChpbnQpIH0s Ci0gICAgICAgIHsgY29tcC5saXNwX2NvbnNfcHRyX3R5cGUsICJjb25zX3B0ciIsIHNpemVvZiAo c3RydWN0IExpc3BfQ29ucyAqKSB9LAotICAgICAgICB7IGNvbXAubGlzcF9vYmpfcHRyX3R5cGUs ICJsaXNwX29ial9wdHIiLCBzaXplb2YgKExpc3BfT2JqZWN0ICopIH0sCi0gICAgICAgIHsgY29t cC5saXNwX3dvcmRfdGFnX3R5cGUsICJsaXNwX3dvcmRfdGFnIiwgc2l6ZW9mIChMaXNwX1dvcmRf dGFnKSB9LAotICAgICAgICB7IGNvbXAubGlzcF93b3JkX3R5cGUsICJsaXNwX3dvcmQiLCBzaXpl b2YgKExpc3BfV29yZCkgfSwKLSAgICAgICAgeyBjb21wLmxvbmdfbG9uZ190eXBlLCAibG9uZ19s b25nIiwgc2l6ZW9mIChsb25nIGxvbmcpIH0sCi0gICAgICAgIHsgY29tcC5sb25nX3R5cGUsICJs b25nIiwgc2l6ZW9mIChsb25nKSB9LAotICAgICAgICB7IGNvbXAucHRyZGlmZl90eXBlLCAicHRy ZGlmZiIsIHNpemVvZiAocHRyZGlmZl90KSB9LAotICAgICAgICB7IGNvbXAudWludHB0cl90eXBl LCAidWludHB0ciIsIHNpemVvZiAodWludHB0cl90KSB9LAorICAgID0geyB7IGNvbXAuYm9vbF90 eXBlLCAiYm9vbCIsIHNpemVvZiAoYm9vbCksIGtpbmRfdW5zaWduZWQgfSwKKyAgICAgICAgeyBj b21wLmNoYXJfcHRyX3R5cGUsICJjaGFyX3B0ciIsIHNpemVvZiAoY2hhciAqKSwga2luZF9wb2lu dGVyIH0sCisgICAgICAgIHsgY29tcC5pbnRfdHlwZSwgImludCIsIHNpemVvZiAoaW50KSwga2lu ZF9zaWduZWQgfSwKKyAgICAgICAgeyBjb21wLmxpc3BfY29uc19wdHJfdHlwZSwgImNvbnNfcHRy Iiwgc2l6ZW9mIChzdHJ1Y3QgTGlzcF9Db25zICopLAorICAgICAgICAgIGtpbmRfcG9pbnRlciB9 LAorICAgICAgICB7IGNvbXAubGlzcF9vYmpfcHRyX3R5cGUsICJsaXNwX29ial9wdHIiLCBzaXpl b2YgKExpc3BfT2JqZWN0ICopLAorICAgICAgICAgIGtpbmRfcG9pbnRlciB9LAorICAgICAgICB7 IGNvbXAubGlzcF93b3JkX3RhZ190eXBlLCAibGlzcF93b3JkX3RhZyIsIHNpemVvZiAoTGlzcF9X b3JkX3RhZyksCisgICAgICAgICAga2luZF91bnNpZ25lZCB9LAorICAgICAgICB7IGNvbXAubGlz cF93b3JkX3R5cGUsICJsaXNwX3dvcmQiLCBzaXplb2YgKExpc3BfV29yZCksCisgICAgICAgICAg TElTUF9XT1JEU19BUkVfUE9JTlRFUlMgPyBraW5kX3BvaW50ZXIgOiBraW5kX3NpZ25lZCB9LAor ICAgICAgICB7IGNvbXAubG9uZ19sb25nX3R5cGUsICJsb25nX2xvbmciLCBzaXplb2YgKGxvbmcg bG9uZyksIGtpbmRfc2lnbmVkIH0sCisgICAgICAgIHsgY29tcC5sb25nX3R5cGUsICJsb25nIiwg c2l6ZW9mIChsb25nKSwga2luZF9zaWduZWQgfSwKKyAgICAgICAgeyBjb21wLnB0cmRpZmZfdHlw ZSwgInB0cmRpZmYiLCBzaXplb2YgKHB0cmRpZmZfdCksIGtpbmRfc2lnbmVkIH0sCisgICAgICAg IHsgY29tcC51aW50cHRyX3R5cGUsICJ1aW50cHRyIiwgc2l6ZW9mICh1aW50cHRyX3QpLCBraW5k X3Vuc2lnbmVkIH0sCiAgICAgICAgIHsgY29tcC51bnNpZ25lZF9sb25nX2xvbmdfdHlwZSwgInVu c2lnbmVkX2xvbmdfbG9uZyIsCi0gICAgICAgICAgc2l6ZW9mICh1bnNpZ25lZCBsb25nIGxvbmcp IH0sCi0gICAgICAgIHsgY29tcC51bnNpZ25lZF9sb25nX3R5cGUsICJ1bnNpZ25lZF9sb25nIiwg c2l6ZW9mICh1bnNpZ25lZCBsb25nKSB9LAotICAgICAgICB7IGNvbXAudW5zaWduZWRfdHlwZSwg InVuc2lnbmVkIiwgc2l6ZW9mICh1bnNpZ25lZCkgfSwKLSAgICAgICAgeyBjb21wLnZvaWRfcHRy X3R5cGUsICJ2b2lkX3B0ciIsIHNpemVvZiAodm9pZCopIH0gfTsKKyAgICAgICAgICBzaXplb2Yg KHVuc2lnbmVkIGxvbmcgbG9uZyksIGtpbmRfdW5zaWduZWQgfSwKKyAgICAgICAgeyBjb21wLnVu c2lnbmVkX2xvbmdfdHlwZSwgInVuc2lnbmVkX2xvbmciLCBzaXplb2YgKHVuc2lnbmVkIGxvbmcp LAorICAgICAgICAgIGtpbmRfdW5zaWduZWQgfSwKKyAgICAgICAgeyBjb21wLnVuc2lnbmVkX3R5 cGUsICJ1bnNpZ25lZCIsIHNpemVvZiAodW5zaWduZWQpLCBraW5kX3Vuc2lnbmVkIH0sCisgICAg ICAgIHsgY29tcC52b2lkX3B0cl90eXBlLCAidm9pZF9wdHIiLCBzaXplb2YgKHZvaWQqKSwga2lu ZF9wb2ludGVyIH0gfTsKIAogICAvKiBGaW5kIHRoZSBiaWdnZXN0IHNpemUuICBJdCBzaG91bGQg YmUgdW5zaWduZWQgbG9uZyBsb25nLCBidXQgdG8gYmUKICAgICAgc3VyZSB3ZSBmaW5kIGl0IHBy b2dyYW1tYXRpY2FsbHkuICAqLwpAQCAtMzA2MCw2ICszMDg2LDcgQEAgZGVmaW5lX2Nhc3RfZnVu Y3Rpb25zICh2b2lkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzdF90 eXBlc1tpXS5uYW1lKTsKICAgICAgIGNvbXAuY2FzdF90eXBlX25hbWVzW2ldID0gY2FzdF90eXBl c1tpXS5uYW1lOwogICAgICAgY29tcC5jYXN0X3R5cGVfc2l6ZXNbaV0gPSBjYXN0X3R5cGVzW2ld LmJ5dGVzX3NpemU7CisgICAgICBjb21wLmNhc3RfdHlwZV9raW5kW2ldID0gY2FzdF90eXBlc1tp XS5raW5kOwogICAgIH0KIAogICBnY2Nfaml0X3R5cGUgKmJpZ2dlc3RfdHlwZSA9IGdjY19qaXRf Y29udGV4dF9nZXRfaW50X3R5cGUgKGNvbXAuY3R4dCwKQEAgLTMwNzAsNiArMzA5Nyw3IEBAIGRl ZmluZV9jYXN0X2Z1bmN0aW9ucyAodm9pZCkKICAgICA9IGdjY19qaXRfY29udGV4dF9uZXdfZmll bGQgKGNvbXAuY3R4dCwgTlVMTCwgYmlnZ2VzdF90eXBlLCAiYmlnZ2VzdF90eXBlIik7CiAgIGNv bXAuY2FzdF90eXBlX25hbWVzW05VTV9DQVNUX1RZUEVTXSA9ICJiaWdnZXN0X3R5cGUiOwogICBj b21wLmNhc3RfdHlwZV9zaXplc1tOVU1fQ0FTVF9UWVBFU10gPSBiaWdnZXN0X3NpemU7CisgIGNv bXAuY2FzdF90eXBlX2tpbmRbTlVNX0NBU1RfVFlQRVNdID0ga2luZF91bnNpZ25lZDsKIAogICBj b21wLmNhc3RfdW5pb25fdHlwZSA9CiAgICAgZ2NjX2ppdF9jb250ZXh0X25ld191bmlvbl90eXBl IChjb21wLmN0eHQsCi0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000ec52de05a704e3ff Content-Type: application/octet-stream; name="0001-Remove-unnecessary-DLL-load-of-gcc_jit_block_add_ass.patch" Content-Disposition: attachment; filename="0001-Remove-unnecessary-DLL-load-of-gcc_jit_block_add_ass.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kawguds80 RnJvbSBlYzdhZjIyMWM3ZGJmOWI5ZmM1NTFlZjM4ZDZlNzBhMWJmMDlkNGU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU3VuLCAzMSBNYXkgMjAyMCAxNTo1 NToxOCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMS80XSBSZW1vdmUgdW5uZWNlc3NhcnkgRExMIGxv YWQgb2YKIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnRfb3AuCgotLS0KIHNyYy9jb21wLmMg fCA3IC0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9jb21wLmMgYi9zcmMvY29tcC5jCmluZGV4IDgxYzRkMmZlMzJhLi44ZDgwOTRlOTg2OSAx MDA2NDQKLS0tIGEvc3JjL2NvbXAuYworKysgYi9zcmMvY29tcC5jCkBAIC00Niw3ICs0Niw2IEBA CiAjIGluY2x1ZGUgInczMmNvbW1vbi5oIgogCiAjdW5kZWYgZ2NjX2ppdF9ibG9ja19hZGRfYXNz aWdubWVudAotI3VuZGVmIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnRfb3AKICN1bmRlZiBn Y2Nfaml0X2Jsb2NrX2FkZF9jb21tZW50CiAjdW5kZWYgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbAog I3VuZGVmIGdjY19qaXRfYmxvY2tfZW5kX3dpdGhfY29uZGl0aW9uYWwKQEAgLTIwMSwxMCArMjAw LDYgQEAgREVGX0RMTF9GTiAoZ2NjX2ppdF90eXBlICosIGdjY19qaXRfdHlwZV9nZXRfcG9pbnRl ciwgKGdjY19qaXRfdHlwZSAqdHlwZSkpOwogREVGX0RMTF9GTiAodm9pZCwgZ2NjX2ppdF9ibG9j a19hZGRfYXNzaWdubWVudCwKICAgICAgICAgICAgIChnY2Nfaml0X2Jsb2NrICpibG9jaywgZ2Nj X2ppdF9sb2NhdGlvbiAqbG9jLCBnY2Nfaml0X2x2YWx1ZSAqbHZhbHVlLAogICAgICAgICAgICAg IGdjY19qaXRfcnZhbHVlICpydmFsdWUpKTsKLURFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRfYmxv Y2tfYWRkX2Fzc2lnbm1lbnRfb3AsCi0gICAgICAgICAgICAoZ2NjX2ppdF9ibG9jayAqYmxvY2ss IGdjY19qaXRfbG9jYXRpb24gKmxvYywKLSAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZSAqbHZh bHVlLCBlbnVtIGdjY19qaXRfYmluYXJ5X29wIG9wLAotICAgICAgICAgICAgIGdjY19qaXRfcnZh bHVlICpydmFsdWUpKTsKIERFRl9ETExfRk4gKHZvaWQsIGdjY19qaXRfYmxvY2tfYWRkX2V2YWws CiAgICAgICAgICAgICAoZ2NjX2ppdF9ibG9jayAqYmxvY2ssIGdjY19qaXRfbG9jYXRpb24gKmxv YywKICAgICAgICAgICAgICBnY2Nfaml0X3J2YWx1ZSAqcnZhbHVlKSk7CkBAIC0yNDcsNyArMjQy LDYgQEAgaW5pdF9nY2NqaXRfZnVuY3Rpb25zICh2b2lkKQogCiAgIC8qIEluIGFscGhhYmV0aWNh bCBvcmRlciAqLwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfYXNz aWdubWVudCk7Ci0gIExPQURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2FkZF9hc3Np Z25tZW50X29wKTsKICAgTE9BRF9ETExfRk4gKGxpYnJhcnksIGdjY19qaXRfYmxvY2tfYWRkX2Nv bW1lbnQpOwogICBMT0FEX0RMTF9GTiAobGlicmFyeSwgZ2NjX2ppdF9ibG9ja19hZGRfZXZhbCk7 CiAgIExPQURfRExMX0ZOIChsaWJyYXJ5LCBnY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlv bmFsKTsKQEAgLTMwNiw3ICszMDAsNiBAQCBpbml0X2djY2ppdF9mdW5jdGlvbnMgKHZvaWQpCiAK IC8qIEluIGFscGhhYmV0aWNhbCBvcmRlciAqLwogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9h c3NpZ25tZW50IGZuX2djY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQKLSNkZWZpbmUgZ2NjX2pp dF9ibG9ja19hZGRfYXNzaWdubWVudF9vcCBmbl9nY2Nfaml0X2Jsb2NrX2FkZF9hc3NpZ25tZW50 X29wCiAjZGVmaW5lIGdjY19qaXRfYmxvY2tfYWRkX2NvbW1lbnQgZm5fZ2NjX2ppdF9ibG9ja19h ZGRfY29tbWVudAogI2RlZmluZSBnY2Nfaml0X2Jsb2NrX2FkZF9ldmFsIGZuX2djY19qaXRfYmxv Y2tfYWRkX2V2YWwKICNkZWZpbmUgZ2NjX2ppdF9ibG9ja19lbmRfd2l0aF9jb25kaXRpb25hbCBm bl9nY2Nfaml0X2Jsb2NrX2VuZF93aXRoX2NvbmRpdGlvbmFsCi0tIAoyLjI1LjEud2luZG93cy4x Cgo= --000000000000ec52de05a704e3ff Content-Type: application/octet-stream; name="0002-Define-casts-using-functions.patch" Content-Disposition: attachment; filename="0002-Define-casts-using-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kawgudtk1 RnJvbSA5MTE4OTM0M2NjZDY5NDNlYWZjMmYzZGM4YjNiMTliOGVhODc5OTAzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Tmljb2w9QzM9QTFzPTIwQj1DMz1BOXJ0b2xv Pz0gPG5pY29sYXNiZXJ0b2xvQGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAzMCBNYXkgMjAyMCAxODoz Mzo1OCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggMi80XSBEZWZpbmUgY2FzdHMgdXNpbmcgZnVuY3Rp b25zLgoKVGhpcyBpcyB0byBkdW1wIHByZXR0aWVyIEMgZmlsZXMuClRoaXMgZG9lcyBub3QgYWZm ZWN0IGNvbXBpbGF0aW9uIHRpbWVzIGluIG15IHRlc3RzLgoKKiBzcmMvY29tcC5jOiBEZWZpbmUg YSAxNXgxNSBjYXN0IG1hdHJpeC4gVXNlIGl0IGluIGVtaXRfY29lcmNlKCkuCi0tLQogc3JjL2Nv bXAuYyB8IDMxMyArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEzOCBpbnNlcnRpb25zKCspLCAxNzUgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2NvbXAuYyBiL3NyYy9jb21wLmMKaW5kZXggOGQ4MDk0ZTk4 NjkuLjZmOTI4MDFiMTNmIDEwMDY0NAotLS0gYS9zcmMvY29tcC5jCisrKyBiL3NyYy9jb21wLmMK QEAgLTQ0OCw2ICs0NDgsOCBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogCiBzdGF0 aWMgZl9yZWxvY190IGZyZWxvYzsKIAorI2RlZmluZSBOVU1fQ0FTVF9UWVBFUyAxNQorCiAvKiBD IHNpZGUgb2YgdGhlIGNvbXBpbGVyIGNvbnRleHQuICAqLwogCiB0eXBlZGVmIHN0cnVjdCB7CkBA IC01MDcsMjEgKzUwOSwxNCBAQCAjZGVmaW5lIEZfUkVMT0NfTUFYX1NJWkUgMTUwMAogICAvKiBs aWJnY2NqaXQgaGFzIHJlYWxseSBsaW1pdGVkIHN1cHBvcnQgZm9yIGNhc3RpbmcgdGhlcmVmb3Jl IHRoaXMgdW5pb24gd2lsbAogICAgICBiZSB1c2VkIGZvciB0aGUgc2NvcGUuICAqLwogICBnY2Nf aml0X3R5cGUgKmNhc3RfdW5pb25fdHlwZTsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9h c19sbDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bGw7Ci0gIGdjY19qaXRfZmll bGQgKmNhc3RfdW5pb25fYXNfbDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191bDsK LSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc191OwotICBnY2Nfaml0X2ZpZWxkICpjYXN0 X3VuaW9uX2FzX2k7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfYjsKLSAgZ2NjX2pp dF9maWVsZCAqY2FzdF91bmlvbl9hc191aW50cHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3Vu aW9uX2FzX3B0cmRpZmY7Ci0gIGdjY19qaXRfZmllbGQgKmNhc3RfdW5pb25fYXNfY19wOwotICBn Y2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX3ZfcDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91 bmlvbl9hc19saXNwX2NvbnNfcHRyOwotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xp c3Bfd29yZDsKLSAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnOwot ICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0cjsKKyAgZ2NjX2ppdF9m dW5jdGlvbiAqY2FzdF9mdW5jdGlvbnNfZnJvbV90b1tOVU1fQ0FTVF9UWVBFU11bTlVNX0NBU1Rf VFlQRVNdOworICAvKiAgV2UgYWRkIG9uZSB0byBtYWtlIHNwYWNlIGZvciB0aGUgbGFzdCBtZW1i ZXIgd2hpY2ggaXMgdGhlICJiaWdnZXN0X3R5cGUiCisgICAgICBtZW1iZXIuICAqLworICBnY2Nf aml0X3R5cGUgKmNhc3RfdHlwZXNbTlVNX0NBU1RfVFlQRVMrMV07CisgIHNpemVfdCBjYXN0X3R5 cGVfc2l6ZXNbTlVNX0NBU1RfVFlQRVMrMV07CisgIGNvbnN0IGNoYXIgKmNhc3RfdHlwZV9uYW1l c1tOVU1fQ0FTVF9UWVBFUysxXTsKKyAgZ2NjX2ppdF9maWVsZCAqY2FzdF91bmlvbl9maWVsZHNb TlVNX0NBU1RfVFlQRVMrMV07CisgIHNpemVfdCBjYXN0X3VuaW9uX2ZpZWxkX2JpZ2dlc3RfdHlw ZTsKICAgZ2NjX2ppdF9mdW5jdGlvbiAqZnVuYzsgLyogQ3VycmVudCBmdW5jdGlvbiBiZWluZyBj b21waWxlZC4gICovCiAgIGJvb2wgZnVuY19oYXNfbm9uX2xvY2FsOyAvKiBGcm9tIGNvbXAtZnVu YyBoYXMtbm9uLWxvY2FsIHNsb3QuICAqLwogICBnY2Nfaml0X2x2YWx1ZSAqKmZfZnJhbWU7IC8q ICJGbG9hdGluZyIgZnJhbWUgZm9yIHRoZSBjdXJyZW50IGZ1bmN0aW9uLiAgKi8KQEAgLTY3OCw0 NyArNjczLDYgQEAgYmNhbGwwIChMaXNwX09iamVjdCBmKQogICBGZnVuY2FsbCAoMSwgJmYpOwog fQogCi1zdGF0aWMgZ2NjX2ppdF9maWVsZCAqCi10eXBlX3RvX2Nhc3RfZmllbGQgKGdjY19qaXRf dHlwZSAqdHlwZSkKLXsKLSAgZ2NjX2ppdF9maWVsZCAqZmllbGQ7Ci0KLSAgaWYgKHR5cGUgPT0g Y29tcC5sb25nX2xvbmdfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19sbDsK LSAgZWxzZSBpZiAodHlwZSA9PSBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlKQotICAgIGZp ZWxkID0gY29tcC5jYXN0X3VuaW9uX2FzX3VsbDsKLSAgZWxzZSBpZiAodHlwZSA9PSBjb21wLmxv bmdfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19sOwotICBlbHNlIGlmICh0 eXBlID09IGNvbXAudW5zaWduZWRfbG9uZ190eXBlKQotICAgIGZpZWxkID0gY29tcC5jYXN0X3Vu aW9uX2FzX3VsOwotICBlbHNlIGlmICh0eXBlID09IGNvbXAudW5zaWduZWRfdHlwZSkKLSAgICBm aWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc191OwotICBlbHNlIGlmICh0eXBlID09IGNvbXAuaW50 X3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfaTsKLSAgZWxzZSBpZiAodHlw ZSA9PSBjb21wLmJvb2xfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19iOwot ICBlbHNlIGlmICh0eXBlID09IGNvbXAudm9pZF9wdHJfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAu Y2FzdF91bmlvbl9hc192X3A7Ci0gIGVsc2UgaWYgKHR5cGUgPT0gY29tcC51aW50cHRyX3R5cGUp Ci0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfdWludHB0cjsKLSAgZWxzZSBpZiAodHlw ZSA9PSBjb21wLnB0cmRpZmZfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19w dHJkaWZmOwotICBlbHNlIGlmICh0eXBlID09IGNvbXAuY2hhcl9wdHJfdHlwZSkKLSAgICBmaWVs ZCA9IGNvbXAuY2FzdF91bmlvbl9hc19jX3A7Ci0gIGVsc2UgaWYgKHR5cGUgPT0gY29tcC5saXNw X2NvbnNfcHRyX3R5cGUpCi0gICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF9jb25z X3B0cjsKLSAgZWxzZSBpZiAodHlwZSA9PSBjb21wLmxpc3Bfd29yZF90eXBlKQotICAgIGZpZWxk ID0gY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfd29yZDsKLSAgZWxzZSBpZiAodHlwZSA9PSBjb21w Lmxpc3Bfd29yZF90YWdfdHlwZSkKLSAgICBmaWVsZCA9IGNvbXAuY2FzdF91bmlvbl9hc19saXNw X3dvcmRfdGFnOwotICBlbHNlIGlmICh0eXBlID09IGNvbXAubGlzcF9vYmpfcHRyX3R5cGUpCi0g ICAgZmllbGQgPSBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF9vYmpfcHRyOwotICBlbHNlCi0gICAg eHNpZ25hbDEgKFFuYXRpdmVfaWNlLCBidWlsZF9zdHJpbmcgKCJ1bnN1cHBvcnRlZCBjYXN0Iikp OwotCi0gIHJldHVybiBmaWVsZDsKLX0KLQogc3RhdGljIGdjY19qaXRfYmxvY2sgKgogcmV0cml2 ZV9ibG9jayAoTGlzcF9PYmplY3QgYmxvY2tfbmFtZSkKIHsKQEAgLTk3OSwxMSArOTMzLDE5IEBA IGVtaXRfY29uZF9qdW1wIChnY2Nfaml0X3J2YWx1ZSAqdGVzdCwKIAogfQogCitzdGF0aWMgaW50 Cit0eXBlX3RvX2Nhc3RfaW5kZXggKGdjY19qaXRfdHlwZSAqIHR5cGUpCit7CisgIGZvciAoaW50 IGkgPSAwOyBpIDwgTlVNX0NBU1RfVFlQRVM7ICsraSkKKyAgICBpZiAodHlwZSA9PSBjb21wLmNh c3RfdHlwZXNbaV0pCisgICAgICByZXR1cm4gaTsKKworICB4c2lnbmFsMSAoUW5hdGl2ZV9pY2Us IGJ1aWxkX3N0cmluZyAoInVuc3VwcG9ydGVkIGNhc3QiKSk7Cit9CisKIHN0YXRpYyBnY2Nfaml0 X3J2YWx1ZSAqCiBlbWl0X2NvZXJjZSAoZ2NjX2ppdF90eXBlICpuZXdfdHlwZSwgZ2NjX2ppdF9y dmFsdWUgKm9iaikKIHsKLSAgc3RhdGljIHB0cmRpZmZfdCBpOwotCiAgIGdjY19qaXRfdHlwZSAq b2xkX3R5cGUgPSBnY2Nfaml0X3J2YWx1ZV9nZXRfdHlwZSAob2JqKTsKIAogICBpZiAobmV3X3R5 cGUgPT0gb2xkX3R5cGUpCkBAIC0xMDE1LDI1ICs5NzcsMTQgQEAgZW1pdF9jb2VyY2UgKGdjY19q aXRfdHlwZSAqbmV3X3R5cGUsIGdjY19qaXRfcnZhbHVlICpvYmopCiAgICAgfQogI2VuZGlmCiAK LSAgZ2NjX2ppdF9maWVsZCAqb3JpZ19maWVsZCA9Ci0gICAgdHlwZV90b19jYXN0X2ZpZWxkIChv bGRfdHlwZSk7Ci0gIGdjY19qaXRfZmllbGQgKmRlc3RfZmllbGQgPSB0eXBlX3RvX2Nhc3RfZmll bGQgKG5ld190eXBlKTsKLQotICBnY2Nfaml0X2x2YWx1ZSAqdG1wX3UgPQotICAgIGdjY19qaXRf ZnVuY3Rpb25fbmV3X2xvY2FsIChjb21wLmZ1bmMsCi0JCQkJTlVMTCwKLQkJCQljb21wLmNhc3Rf dW5pb25fdHlwZSwKLQkJCQlmb3JtYXRfc3RyaW5nICgidW5pb25fY2FzdF8ldGQiLCBpKyspKTsK LSAgZ2NjX2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoY29tcC5ibG9jaywKLQkJCQlOVUxMLAot CQkJCWdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVsZCAodG1wX3UsCi0JCQkJCQkJICAgICBOVUxM LAotCQkJCQkJCSAgICAgb3JpZ19maWVsZCksCi0JCQkJb2JqKTsKKyAgaW50IG9sZF9pbmRleCA9 IHR5cGVfdG9fY2FzdF9pbmRleCAob2xkX3R5cGUpOworICBpbnQgbmV3X2luZGV4ID0gdHlwZV90 b19jYXN0X2luZGV4IChuZXdfdHlwZSk7CiAKLSAgcmV0dXJuIGdjY19qaXRfcnZhbHVlX2FjY2Vz c19maWVsZCAoIGdjY19qaXRfbHZhbHVlX2FzX3J2YWx1ZSAodG1wX3UpLAotCQkJCSAgICAgICBO VUxMLAotCQkJCSAgICAgICBkZXN0X2ZpZWxkKTsKKyAgLyogTG9va3VwIHRoZSBhcHByb3ByaWF0 ZSBjYXN0IGZ1bmN0aW9uIGluIHRoZSBjYXN0IG1hdHJpeC4gICovCisgIHJldHVybiBnY2Nfaml0 X2NvbnRleHRfbmV3X2NhbGwgKGNvbXAuY3R4dCwKKyAgICAgICAgICAgTlVMTCwKKyAgICAgICAg ICAgY29tcC5jYXN0X2Z1bmN0aW9uc19mcm9tX3RvW29sZF9pbmRleF1bbmV3X2luZGV4XSwKKyAg ICAgICAgICAgMSwgJm9iaik7CiB9CiAKIHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCkBAIC0xMDkw LDcgKzEwNDEsNyBAQCBlbWl0X3J2YWx1ZV9mcm9tX2xvbmdfbG9uZyAoZ2NjX2ppdF90eXBlICp0 eXBlLCBsb25nIGxvbmcgbikKIAkgIGdjY19qaXRfY29udGV4dF9uZXdfcnZhbHVlX2Zyb21faW50 IChjb21wLmN0eHQsCiAJCQkJCSAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAog CQkJCQkgICAgICAgMzIpKSwKLQlsb3cpKTsKKyAgICAgICAgICAgICBsb3cpKTsKIH0KIAogc3Rh dGljIGdjY19qaXRfcnZhbHVlICoKQEAgLTExMzIsNyArMTA4Myw3IEBAIGVtaXRfcnZhbHVlX2Zy b21fdW5zaWduZWRfbG9uZ19sb25nIChnY2Nfaml0X3R5cGUgKnR5cGUsIHVuc2lnbmVkIGxvbmcg bG9uZyBuKQogICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9p bnQgKGNvbXAuY3R4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb21wLnVuc2lnbmVkX2xvbmdfbG9uZ190eXBlLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSksCi0gICAgICAgICAgICAg bG93KSk7CisJbG93KSk7CiB9CiAKIHN0YXRpYyBnY2Nfaml0X3J2YWx1ZSAqCkBAIC0yOTUxLDEw OSArMjkwMiwxMjEgQEAgZGVmaW5lX3RocmVhZF9zdGF0ZV9zdHJ1Y3QgKHZvaWQpCiAgICAgZ2Nj X2ppdF90eXBlX2dldF9wb2ludGVyIChnY2Nfaml0X3N0cnVjdF9hc190eXBlIChjb21wLnRocmVh ZF9zdGF0ZV9zKSk7CiB9CiAKLXN0YXRpYyB2b2lkCi1kZWZpbmVfY2FzdF91bmlvbiAodm9pZCkK K3N0cnVjdCBjYXN0X3R5cGUKIHsKKyAgZ2NjX2ppdF90eXBlICp0eXBlOworICBjb25zdCBjaGFy ICpuYW1lOworICBzaXplX3QgYnl0ZXNfc2l6ZTsKK307CiAKLSAgY29tcC5jYXN0X3VuaW9uX2Fz X2xsID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAg ICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmxvbmdfbG9uZ190eXBlLAotCQkJICAgICAgICJsbCIp OwotICBjb21wLmNhc3RfdW5pb25fYXNfdWxsID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3X2Zp ZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLnVuc2lnbmVk X2xvbmdfbG9uZ190eXBlLAotCQkJICAgICAgICJ1bGwiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2Fz X2wgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAg ICBOVUxMLAotCQkJICAgICAgIGNvbXAubG9uZ190eXBlLAotCQkJICAgICAgICJsIik7Ci0gIGNv bXAuY2FzdF91bmlvbl9hc191bCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29t cC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC51bnNpZ25lZF9sb25nX3R5 cGUsCi0JCQkgICAgICAgInVsIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc191ID0KLSAgICBnY2Nf aml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAg ICAgICBjb21wLnVuc2lnbmVkX3R5cGUsCi0JCQkgICAgICAgInUiKTsKLSAgY29tcC5jYXN0X3Vu aW9uX2FzX2kgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJ CSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAuaW50X3R5cGUsCi0JCQkgICAgICAgImkiKTsK LSAgY29tcC5jYXN0X3VuaW9uX2FzX2IgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQg KGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJICAgICAgIGNvbXAuYm9vbF90eXBlLAot CQkJICAgICAgICJiIik7Ci0gIGNvbXAuY2FzdF91bmlvbl9hc191aW50cHRyID0KLSAgICBnY2Nf aml0X2NvbnRleHRfbmV3X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAg ICAgICBjb21wLnVpbnRwdHJfdHlwZSwKLQkJCSAgICAgICAidWludHB0ciIpOwotICBjb21wLmNh c3RfdW5pb25fYXNfcHRyZGlmZiA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29t cC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC5wdHJkaWZmX3R5cGUsCi0J CQkgICAgICAgInB0cmRpZmYiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2NfcCA9Ci0gICAgZ2Nj X2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkg ICAgICAgY29tcC5jaGFyX3B0cl90eXBlLAotCQkJICAgICAgICJjX3AiKTsKLSAgY29tcC5jYXN0 X3VuaW9uX2FzX3ZfcCA9Ci0gICAgZ2NjX2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0 LAotCQkJICAgICAgIE5VTEwsCi0JCQkgICAgICAgY29tcC52b2lkX3B0cl90eXBlLAotCQkJICAg ICAgICJ2X3AiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3BfY29uc19wdHIgPQotICAgIGdj Y19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKLQkJCSAgICAgICBOVUxMLAotCQkJ ICAgICAgIGNvbXAubGlzcF9jb25zX3B0cl90eXBlLAotCQkJICAgICAgICJjb25zX3B0ciIpOwot ICBjb21wLmNhc3RfdW5pb25fYXNfbGlzcF93b3JkID0KLSAgICBnY2Nfaml0X2NvbnRleHRfbmV3 X2ZpZWxkIChjb21wLmN0eHQsCi0JCQkgICAgICAgTlVMTCwKLQkJCSAgICAgICBjb21wLmxpc3Bf d29yZF90eXBlLAotCQkJICAgICAgICJsaXNwX3dvcmQiKTsKLSAgY29tcC5jYXN0X3VuaW9uX2Fz X2xpc3Bfd29yZF90YWcgPQotICAgIGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4 dCwKK3N0YXRpYyBnY2Nfaml0X2Z1bmN0aW9uICoKK2RlZmluZV9jYXN0X2Zyb21fdG8gKHN0cnVj dCBjYXN0X3R5cGUgZnJvbSwgaW50IGZyb21faW5kZXgsIHN0cnVjdCBjYXN0X3R5cGUgdG8sCisg ICAgICAgICAgICAgICAgICAgIGludCB0b19pbmRleCkKK3sKKyAgY2hhciAqbmFtZSA9IGZvcm1h dF9zdHJpbmcgKCJjYXN0X2Zyb21fJXNfdG9fJXMiLCBmcm9tLm5hbWUsIHRvLm5hbWUpOworICBn Y2Nfaml0X3BhcmFtICpwYXJhbSA9IGdjY19qaXRfY29udGV4dF9uZXdfcGFyYW0gKGNvbXAuY3R4 dCwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmcm9tLnR5cGUsICJhcmciKTsKKyAgZ2NjX2ppdF9mdW5jdGlvbiAqcmVzdWx0ID0gZ2Nj X2ppdF9jb250ZXh0X25ld19mdW5jdGlvbiAoY29tcC5jdHh0LAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcC5s aXNwX3dvcmRfdGFnX3R5cGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxpc3Bf d29yZF90YWciKTsKLSAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0ciA9Ci0gICAgZ2Nj X2ppdF9jb250ZXh0X25ld19maWVsZCAoY29tcC5jdHh0LAotCQkJICAgICAgIE5VTEwsCi0JCQkg ICAgICAgY29tcC5saXNwX29ial9wdHJfdHlwZSwKLQkJCSAgICAgICAibGlzcF9vYmpfcHRyIik7 Ci0KLQotICBnY2Nfaml0X2ZpZWxkICpjYXN0X3VuaW9uX2ZpZWxkc1tdID0KLSAgICB7IGNvbXAu Y2FzdF91bmlvbl9hc19sbCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191bGwsCi0gICAgICBj b21wLmNhc3RfdW5pb25fYXNfbCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191bCwKLSAgICAg IGNvbXAuY2FzdF91bmlvbl9hc191LAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2ksCi0gICAg ICBjb21wLmNhc3RfdW5pb25fYXNfYiwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc191aW50cHRy LAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3B0cmRpZmYsCi0gICAgICBjb21wLmNhc3RfdW5p b25fYXNfY19wLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX3ZfcCwKLSAgICAgIGNvbXAuY2Fz dF91bmlvbl9hc19saXNwX2NvbnNfcHRyLAotICAgICAgY29tcC5jYXN0X3VuaW9uX2FzX2xpc3Bf d29yZCwKLSAgICAgIGNvbXAuY2FzdF91bmlvbl9hc19saXNwX3dvcmRfdGFnLAotICAgICAgY29t cC5jYXN0X3VuaW9uX2FzX2xpc3Bfb2JqX3B0ciB9OworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIEdDQ19KSVRfRlVOQ1RJT05fSU5URVJOQUwsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdG8udHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJnBhcmFtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDApOworCisg IERFQ0xfQkxPQ0sgKGVudHJ5X2Jsb2NrLCByZXN1bHQpOworCisgIGdjY19qaXRfbHZhbHVlICp0 bXBfdW5pb24KKyAgICA9IGdjY19qaXRfZnVuY3Rpb25fbmV3X2xvY2FsIChyZXN1bHQsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb21wLmNhc3RfdW5pb25fdHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAidW5pb25fY2FzdCIpOworCisgIC8qICBaZXJvIHRoZSB1bmlvbiBmaXJz dC4gICovCisgIGdjY19qaXRfYmxvY2tfYWRkX2Fzc2lnbm1lbnQgKGVudHJ5X2Jsb2NrLCBOVUxM LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2Nfaml0X2x2YWx1ZV9hY2Nlc3Nf ZmllbGQgKHRtcF91bmlvbiwgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb21wLmNhc3RfdW5pb25fZmllbGRzW05VTV9DQVNUX1RZUEVTXSksCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9jb250ZXh0X25ld19ydmFsdWVfZnJvbV9pbnQg KAorCQkJCSAgICBjb21wLmN0eHQsCisJCQkJICAgIGNvbXAuY2FzdF90eXBlc1tOVU1fQ0FTVF9U WVBFU10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwKSk7CisKKyAgZ2Nj X2ppdF9ibG9ja19hZGRfYXNzaWdubWVudCAoZW50cnlfYmxvY2ssIE5VTEwsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdjY19qaXRfbHZhbHVlX2FjY2Vzc19maWVsZCAodG1wX3Vu aW9uLCBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXAuY2FzdF91 bmlvbl9maWVsZHNbZnJvbV9pbmRleF0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBnY2Nfaml0X3BhcmFtX2FzX3J2YWx1ZSAocGFyYW0pKTsKKworICBnY2Nfaml0X2Jsb2NrX2Vu ZF93aXRoX3JldHVybiAoZW50cnlfYmxvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NjX2ppdF9ydmFs dWVfYWNjZXNzX2ZpZWxkICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Nj X2ppdF9sdmFsdWVfYXNfcnZhbHVlICh0bXBfdW5pb24pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj b21wLmNhc3RfdW5pb25fZmllbGRzW3RvX2luZGV4XSkpOworCisgIHJldHVybiByZXN1bHQ7Cit9 CisKK3N0YXRpYyB2b2lkCitkZWZpbmVfY2FzdF9mdW5jdGlvbnMgKHZvaWQpCit7CisgIHN0cnVj dCBjYXN0X3R5cGUgY2FzdF90eXBlc1tOVU1fQ0FTVF9UWVBFU10KKyAgICA9IHsgeyBjb21wLmJv b2xfdHlwZSwgImJvb2wiLCBzaXplb2YgKGJvb2wpIH0sCisgICAgICAgIHsgY29tcC5jaGFyX3B0 cl90eXBlLCAiY2hhcl9wdHIiLCBzaXplb2YgKGNoYXIgKikgfSwKKyAgICAgICAgeyBjb21wLmlu dF90eXBlLCAiaW50Iiwgc2l6ZW9mIChpbnQpIH0sCisgICAgICAgIHsgY29tcC5saXNwX2NvbnNf cHRyX3R5cGUsICJjb25zX3B0ciIsIHNpemVvZiAoc3RydWN0IExpc3BfQ29ucyAqKSB9LAorICAg ICAgICB7IGNvbXAubGlzcF9vYmpfcHRyX3R5cGUsICJsaXNwX29ial9wdHIiLCBzaXplb2YgKExp c3BfT2JqZWN0ICopIH0sCisgICAgICAgIHsgY29tcC5saXNwX3dvcmRfdGFnX3R5cGUsICJsaXNw X3dvcmRfdGFnIiwgc2l6ZW9mIChMaXNwX1dvcmRfdGFnKSB9LAorICAgICAgICB7IGNvbXAubGlz cF93b3JkX3R5cGUsICJsaXNwX3dvcmQiLCBzaXplb2YgKExpc3BfV29yZCkgfSwKKyAgICAgICAg eyBjb21wLmxvbmdfbG9uZ190eXBlLCAibG9uZ19sb25nIiwgc2l6ZW9mIChsb25nIGxvbmcpIH0s CisgICAgICAgIHsgY29tcC5sb25nX3R5cGUsICJsb25nIiwgc2l6ZW9mIChsb25nKSB9LAorICAg ICAgICB7IGNvbXAucHRyZGlmZl90eXBlLCAicHRyZGlmZiIsIHNpemVvZiAocHRyZGlmZl90KSB9 LAorICAgICAgICB7IGNvbXAudWludHB0cl90eXBlLCAidWludHB0ciIsIHNpemVvZiAodWludHB0 cl90KSB9LAorICAgICAgICB7IGNvbXAudW5zaWduZWRfbG9uZ19sb25nX3R5cGUsICJ1bnNpZ25l ZF9sb25nX2xvbmciLAorICAgICAgICAgIHNpemVvZiAodW5zaWduZWQgbG9uZyBsb25nKSB9LAor ICAgICAgICB7IGNvbXAudW5zaWduZWRfbG9uZ190eXBlLCAidW5zaWduZWRfbG9uZyIsIHNpemVv ZiAodW5zaWduZWQgbG9uZykgfSwKKyAgICAgICAgeyBjb21wLnVuc2lnbmVkX3R5cGUsICJ1bnNp Z25lZCIsIHNpemVvZiAodW5zaWduZWQpIH0sCisgICAgICAgIHsgY29tcC52b2lkX3B0cl90eXBl LCAidm9pZF9wdHIiLCBzaXplb2YgKHZvaWQqKSB9IH07CisKKyAgLyogRmluZCB0aGUgYmlnZ2Vz dCBzaXplLiAgSXQgc2hvdWxkIGJlIHVuc2lnbmVkIGxvbmcgbG9uZywgYnV0IHRvIGJlCisgICAg IHN1cmUgd2UgZmluZCBpdCBwcm9ncmFtbWF0aWNhbGx5LiAgKi8KKyAgc2l6ZV90IGJpZ2dlc3Rf c2l6ZSA9IDA7CisgIGZvciAoaW50IGkgPSAwOyBpIDwgTlVNX0NBU1RfVFlQRVM7ICsraSkKKyAg ICBiaWdnZXN0X3NpemUgPSBtYXggKGJpZ2dlc3Rfc2l6ZSwgY2FzdF90eXBlc1tpXS5ieXRlc19z aXplKTsKKworICAvKiBEZWZpbmUgdGhlIHVuaW9uIHVzZWQgZm9yIGNhc3RpbmcuICAqLworICBm b3IgKGludCBpID0gMDsgaSA8IE5VTV9DQVNUX1RZUEVTOyArK2kpCisgICAgeworICAgICAgY29t cC5jYXN0X3R5cGVzW2ldID0gY2FzdF90eXBlc1tpXS50eXBlOworICAgICAgY29tcC5jYXN0X3Vu aW9uX2ZpZWxkc1tpXSA9IGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAuY3R4dCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXN0X3R5cGVzW2ldLnR5cGUsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjYXN0X3R5cGVzW2ldLm5hbWUpOworICAgICAgY29tcC5jYXN0 X3R5cGVfbmFtZXNbaV0gPSBjYXN0X3R5cGVzW2ldLm5hbWU7CisgICAgICBjb21wLmNhc3RfdHlw ZV9zaXplc1tpXSA9IGNhc3RfdHlwZXNbaV0uYnl0ZXNfc2l6ZTsKKyAgICB9CisKKyAgZ2NjX2pp dF90eXBlICpiaWdnZXN0X3R5cGUgPSBnY2Nfaml0X2NvbnRleHRfZ2V0X2ludF90eXBlIChjb21w LmN0eHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYmlnZ2VzdF9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsKKyAgY29tcC5jYXN0X3R5cGVz W05VTV9DQVNUX1RZUEVTXSA9IGJpZ2dlc3RfdHlwZTsKKyAgY29tcC5jYXN0X3VuaW9uX2ZpZWxk c1tOVU1fQ0FTVF9UWVBFU10KKyAgICA9IGdjY19qaXRfY29udGV4dF9uZXdfZmllbGQgKGNvbXAu Y3R4dCwgTlVMTCwgYmlnZ2VzdF90eXBlLCAiYmlnZ2VzdF90eXBlIik7CisgIGNvbXAuY2FzdF90 eXBlX25hbWVzW05VTV9DQVNUX1RZUEVTXSA9ICJiaWdnZXN0X3R5cGUiOworICBjb21wLmNhc3Rf dHlwZV9zaXplc1tOVU1fQ0FTVF9UWVBFU10gPSBiaWdnZXN0X3NpemU7CisKICAgY29tcC5jYXN0 X3VuaW9uX3R5cGUgPQogICAgIGdjY19qaXRfY29udGV4dF9uZXdfdW5pb25fdHlwZSAoY29tcC5j dHh0LAogCQkJCSAgICBOVUxMLAogCQkJCSAgICAiY2FzdF91bmlvbiIsCi0JCQkJICAgIEFSUkFZ RUxUUyAoY2FzdF91bmlvbl9maWVsZHMpLAotCQkJCSAgICBjYXN0X3VuaW9uX2ZpZWxkcyk7CisJ CQkJICAgIE5VTV9DQVNUX1RZUEVTKzEsCisJCQkJICAgIGNvbXAuY2FzdF91bmlvbl9maWVsZHMp OworCisgIC8qIERlZmluZSB0aGUgY2FzdCBmdW5jdGlvbnMgdXNpbmcgYSBtYXRyaXguICAqLwor ICBmb3IgKGludCBpID0gMDsgaSA8IE5VTV9DQVNUX1RZUEVTOyArK2kpCisgICAgZm9yIChpbnQg aiA9IDA7IGogPCBOVU1fQ0FTVF9UWVBFUzsgKytqKQorICAgICAgICBjb21wLmNhc3RfZnVuY3Rp b25zX2Zyb21fdG9baV1bal0KKyAgICAgICAgICA9IGRlZmluZV9jYXN0X2Zyb21fdG8gKGNhc3Rf dHlwZXNbaV0sIGksIGNhc3RfdHlwZXNbal0sIGopOwogfQogCiBzdGF0aWMgdm9pZApAQCAtMzg2 OSw3ICszODMyLDcgQEAgREVGVU4gKCJjb21wLS1pbml0LWN0eHQiLCBGY29tcF9faW5pdF9jdHh0 LCBTY29tcF9faW5pdF9jdHh0LAogICBkZWZpbmVfam1wX2J1ZiAoKTsKICAgZGVmaW5lX2hhbmRs ZXJfc3RydWN0ICgpOwogICBkZWZpbmVfdGhyZWFkX3N0YXRlX3N0cnVjdCAoKTsKLSAgZGVmaW5l X2Nhc3RfdW5pb24gKCk7CisgIGRlZmluZV9jYXN0X2Z1bmN0aW9ucyAoKTsKIAogICByZXR1cm4g UXQ7CiB9Ci0tIAoyLjI1LjEud2luZG93cy4xCgo= --000000000000ec52de05a704e3ff--