From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-oo1-xc32.google.com (mail-oo1-xc32.google.com [IPv6:2607:f8b0:4864:20::c32]) by sourceware.org (Postfix) with ESMTPS id E4B98385829D for ; Thu, 22 Sep 2022 13:28:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E4B98385829D Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=golang.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=golang.org Received: by mail-oo1-xc32.google.com with SMTP id r136-20020a4a378e000000b004755953bc6cso1404971oor.13 for ; Thu, 22 Sep 2022 06:28:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=golang-org.20210112.gappssmtp.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date; bh=AGj3XC2qR2acjaUwPZ1ZQ+MpYbphCPYKIPKji5qH338=; b=Gyj/9TCddVfOSZrG+f1tX06XCRagKiFTbanm7qP4dDTztez6ZvgS3HrM95yq8OkoLO QNPpN1hNHNkSnsI33z+XSxSQEZu1vQN3u08iyViKqUUshIi9YJR6h5fXKaMkVE6oMsKU 4nChI0c38wEwRgUf7Vz0oitJf1r3Lh5jDgBid97awsiXLTmJiJ8V6+4Qfecb8aVIY9H9 TIXTtHBjsMwLThENs7XoBo7TN8RNKpii1NqFPIMqRy63mBcLfrHkAOj8DKXC0UIdL4dm n+79Y87Mb2rpfkhL6LaJHpXxK5kqMkHofjTOia7b85VioIB0uY8tZA5blUE9BwloAcEH yF6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date; bh=AGj3XC2qR2acjaUwPZ1ZQ+MpYbphCPYKIPKji5qH338=; b=o2TjlG850+I+qQUipIe7K04aKTd8RzTgvB2ZkVVVSCNEcnr9An59i+DKPOBEqcQG8D DMqDIvAoCd5lodQIT00uKfEYCjPEtJWgzsCyrr9gkwVxw8iM+zr7F0sv3KvJ1Z5dAAoT VITxNgRmchgaYwx8y4wvsmJTSoMvDkDoDo5mVemHjEk+A6jwjtb+1pPoQVebI7NnE+au nIfxUw1U8qrlclcR3zUlzQpA9+BvYzqejIWxK+nIhJ5fAQ4C94b3fp7fnuwL8tqmzGmE N0fWuzBQE+mSEEdOUY5epnv/Ahc+hCE6eqHN2ov/XXHs2PNn3ujvYWwWCgIH9CmP6f8K JGrA== X-Gm-Message-State: ACrzQf07zUlertkBp0LsQxlI9CZx+oL41wUECgjKA4P6MgHKaB85mkhh fAe5Fv4cKJNpjwjPDjzFtUg7q6im4RXA5A2im+ntBbkMZGOGDg== X-Google-Smtp-Source: AMsMyM6LS/fLGD6Bk0+cMPePQBgjq3aGgMnXvS8VKJ9eCm7q7qlN4sCScBphLr+D65yMHo5NABPMgnjkFs44hhdpYQM= X-Received: by 2002:a4a:d4c1:0:b0:476:42e3:b45e with SMTP id r1-20020a4ad4c1000000b0047642e3b45emr1119042oos.89.1663853319790; Thu, 22 Sep 2022 06:28:39 -0700 (PDT) MIME-Version: 1.0 From: Ian Lance Taylor Date: Thu, 22 Sep 2022 06:28:29 -0700 Message-ID: Subject: libgo patch committed: Add cgo.Incomplete To: gcc-patches , gofrontend-dev Content-Type: multipart/mixed; boundary="00000000000015f10305e9440aa0" X-Spam-Status: No, score=-10.2 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --00000000000015f10305e9440aa0 Content-Type: text/plain; charset="UTF-8" This libgo patch changes the cgo command to use runtime/cgo.Incomplete instead of //go:notinheap, and to define the new type in the runtime/cgo package. This ports https://go.dev/cl/421879 to libgo. This is a quick port to update libgo to work with the version of cgo in gc mainline. A more complete port will follow, changing the gc version of cmd/cgo to choose an approach based on feature testing the gccgo in use. Bootstrapped and tested on x86_64-pc-linux-gnu. Committed to mainline. Ian --00000000000015f10305e9440aa0 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l8d3aj9r0 YzY5Yjg3Njc4ZDNjNGU5Yjk5NWI4Y2NiNTFmYjM4Yzc1YTEzNDMyMwpkaWZmIC0tZ2l0IGEvZ2Nj L2dvL2dvZnJvbnRlbmQvTUVSR0UgYi9nY2MvZ28vZ29mcm9udGVuZC9NRVJHRQppbmRleCBkY2Uz OGU3MjdhNy4uZjdhNzk4NTI4N2QgMTAwNjQ0Ci0tLSBhL2djYy9nby9nb2Zyb250ZW5kL01FUkdF CisrKyBiL2djYy9nby9nb2Zyb250ZW5kL01FUkdFCkBAIC0xLDQgKzEsNCBAQAotNjU0M2I3ZmM2 ZGE1MzNlYjk3NmIzNzY0OWE5MjVlN2ZkNWE1MjFmYQorNDJlZmVjOGMxMjZjZjM3ODdiYzdjODlk OWM3ZjIyNGVmZjdjNWEyMQogCiBUaGUgZmlyc3QgbGluZSBvZiB0aGlzIGZpbGUgaG9sZHMgdGhl IGdpdCByZXZpc2lvbiBudW1iZXIgb2YgdGhlIGxhc3QKIG1lcmdlIGRvbmUgZnJvbSB0aGUgZ29m cm9udGVuZCByZXBvc2l0b3J5LgpkaWZmIC0tZ2l0IGEvbGliZ28vZ28vY21kL2Nnby9nY2MuZ28g Yi9saWJnby9nby9jbWQvY2dvL2djYy5nbwppbmRleCAwMjM5MTQ5NWJiZS4uZTc4NmFlYWFmYTkg MTAwNjQ0Ci0tLSBhL2xpYmdvL2dvL2NtZC9jZ28vZ2NjLmdvCisrKyBiL2xpYmdvL2dvL2NtZC9j Z28vZ2NjLmdvCkBAIC0xMzIsMTIgKzEzMiwxMSBAQCBmdW5jIChwICpQYWNrYWdlKSBhZGRUb0Zs YWcoZmxhZyBzdHJpbmcsIGFyZ3MgW11zdHJpbmcpIHsKIC8vCiAvLyBGb3IgZXhhbXBsZSwgdGhl IGZvbGxvd2luZyBzdHJpbmc6CiAvLwotLy8gICAgIGBhIGI6ImMgZCIgJ2UnJ2YnICAiZ1wiImAK Ky8vCWBhIGI6ImMgZCIgJ2UnJ2YnICAiZ1wiImAKIC8vCiAvLyBXb3VsZCBiZSBwYXJzZWQgYXM6 CiAvLwotLy8gICAgIFtdc3RyaW5neyJhIiwgImI6YyBkIiwgImVmIiwgYGciYH0KLS8vCisvLwlb XXN0cmluZ3siYSIsICJiOmMgZCIsICJlZiIsIGBnImB9CiBmdW5jIHNwbGl0UXVvdGVkKHMgc3Ry aW5nKSAociBbXXN0cmluZywgZXJyIGVycm9yKSB7CiAJdmFyIGFyZ3MgW11zdHJpbmcKIAlhcmcg Oj0gbWFrZShbXXJ1bmUsIGxlbihzKSkKQEAgLTExNTYsMTMgKzExNTUsMTkgQEAgZnVuYyAocCAq UGFja2FnZSkgbWFuZ2xlKGYgKkZpbGUsIGFyZyAqYXN0LkV4cHIsIGFkZFBvc2l0aW9uIGJvb2wp IChhc3QuRXhwciwgYm8KIAogLy8gY2hlY2tJbmRleCBjaGVja3Mgd2hldGhlciBhcmcgaGFzIHRo ZSBmb3JtICZhW2ldLCBwb3NzaWJseSBpbnNpZGUKIC8vIHR5cGUgY29udmVyc2lvbnMuIElmIHNv LCB0aGVuIGluIHRoZSBnZW5lcmFsIGNhc2UgaXQgd3JpdGVzCi0vLyAgICBfY2dvSW5kZXhOTiA6 PSBhCi0vLyAgICBfY2dvTk4gOj0gJmNnb0luZGV4Tk5baV0gLy8gd2l0aCB0eXBlIGNvbnZlcnNp b25zLCBpZiBhbnkKKy8vCisvLwlfY2dvSW5kZXhOTiA6PSBhCisvLwlfY2dvTk4gOj0gJmNnb0lu ZGV4Tk5baV0gLy8gd2l0aCB0eXBlIGNvbnZlcnNpb25zLCBpZiBhbnkKKy8vCiAvLyB0byBzYiwg YW5kIHdyaXRlcwotLy8gICAgX2Nnb0NoZWNrUG9pbnRlcihfY2dvTk4sIF9jZ29JbmRleE5OKQor Ly8KKy8vCV9jZ29DaGVja1BvaW50ZXIoX2Nnb05OLCBfY2dvSW5kZXhOTikKKy8vCiAvLyB0byBz YkNoZWNrLCBhbmQgcmV0dXJucyB0cnVlLiBJZiBhIGlzIGEgc2ltcGxlIHZhcmlhYmxlIG9yIGZp ZWxkIHJlZmVyZW5jZSwKIC8vIGl0IHdyaXRlcwotLy8gICAgX2Nnb0luZGV4Tk4gOj0gJmEKKy8v CisvLwlfY2dvSW5kZXhOTiA6PSAmYQorLy8KIC8vIGFuZCBkZXJlZmVyZW5jZXMgdGhlIHVzZXMg b2YgX2Nnb0luZGV4Tk4uIFRha2luZyB0aGUgYWRkcmVzcyBhdm9pZHMKIC8vIG1ha2luZyBhIGNv cHkgb2YgYW4gYXJyYXkuCiAvLwpAQCAtMTIxMCwxMCArMTIxNSwxNCBAQCBmdW5jIChwICpQYWNr YWdlKSBjaGVja0luZGV4KHNiLCBzYkNoZWNrICpieXRlcy5CdWZmZXIsIGFyZyBhc3QuRXhwciwg aSBpbnQpIGJvbwogCiAvLyBjaGVja0FkZHIgY2hlY2tzIHdoZXRoZXIgYXJnIGhhcyB0aGUgZm9y bSAmeCwgcG9zc2libHkgaW5zaWRlIHR5cGUKIC8vIGNvbnZlcnNpb25zLiBJZiBzbywgaXQgd3Jp dGVzCi0vLyAgICBfY2dvQmFzZU5OIDo9ICZ4Ci0vLyAgICBfY2dvTk4gOj0gX2Nnb0Jhc2VOTiAv LyB3aXRoIHR5cGUgY29udmVyc2lvbnMsIGlmIGFueQorLy8KKy8vCV9jZ29CYXNlTk4gOj0gJngK Ky8vCV9jZ29OTiA6PSBfY2dvQmFzZU5OIC8vIHdpdGggdHlwZSBjb252ZXJzaW9ucywgaWYgYW55 CisvLwogLy8gdG8gc2IsIGFuZCB3cml0ZXMKLS8vICAgIF9jZ29DaGVja1BvaW50ZXIoX2Nnb0Jh c2VOTiwgdHJ1ZSkKKy8vCisvLwlfY2dvQ2hlY2tQb2ludGVyKF9jZ29CYXNlTk4sIHRydWUpCisv LwogLy8gdG8gc2JDaGVjaywgYW5kIHJldHVybnMgdHJ1ZS4gVGhpcyB0ZWxscyBfY2dvQ2hlY2tQ b2ludGVyIHRvIGNoZWNrCiAvLyBqdXN0IHRoZSBjb250ZW50cyBvZiB0aGUgcG9pbnRlciBiZWlu ZyBwYXNzZWQsIG5vdCBhbnkgb3RoZXIgcGFydAogLy8gb2YgdGhlIG1lbW9yeSBhbGxvY2F0aW9u LiBUaGlzIGlzIHJ1biBhZnRlciBjaGVja0luZGV4LCB3aGljaCBsb29rcwpAQCAtMjEzMSw4ICsy MTQwLDggQEAgdHlwZSB0eXBlQ29udiBzdHJ1Y3QgewogCS8vIFR5cGUgbmFtZXMgWCBmb3Igd2hp Y2ggdGhlcmUgZXhpc3RzIGFuIFhHZXRUeXBlSUQgZnVuY3Rpb24gd2l0aCB0eXBlIGZ1bmMoKSBD RlR5cGVJRC4KIAlnZXRUeXBlSURzIG1hcFtzdHJpbmddYm9vbAogCi0JLy8gYmFkU3RydWN0cyBj b250YWlucyBDIHN0cnVjdHMgdGhhdCBzaG91bGQgYmUgbWFya2VkIE5vdEluSGVhcC4KLQlub3RJ bkhlYXBTdHJ1Y3RzIG1hcFtzdHJpbmddYm9vbAorCS8vIGluY29tcGxldGVTdHJ1Y3RzIGNvbnRh aW5zIEMgc3RydWN0cyB0aGF0IHNob3VsZCBiZSBtYXJrZWQgSW5jb21wbGV0ZS4KKwlpbmNvbXBs ZXRlU3RydWN0cyBtYXBbc3RyaW5nXWJvb2wKIAogCS8vIFByZWRlY2xhcmVkIHR5cGVzLgogCWJv b2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5FeHByCkBAIC0yMTQ1LDcg KzIxNTQsNiBAQCB0eXBlIHR5cGVDb252IHN0cnVjdCB7CiAJc3RyaW5nICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgYXN0LkV4cHIKIAlnb1ZvaWQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBhc3QuRXhwciAvLyBfQ3R5cGVfdm9pZCwgZGVub3RlcyBDJ3Mgdm9pZAogCWdv Vm9pZFB0ciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFzdC5FeHByIC8vIHVuc2FmZS5Q b2ludGVyIG9yICpieXRlCi0JZ29Wb2lkUHRyTm9IZWFwICAgICAgICAgICAgICAgICAgICAgICAg YXN0LkV4cHIgLy8gKl9DdHlwZV92b2lkX25vdGluaGVhcCwgbGlrZSBnb1ZvaWRQdHIgYnV0IG1h cmtlZCBOb3RJbkhlYXAKIAogCXB0clNpemUgaW50NjQKIAlpbnRTaXplIGludDY0CkBAIC0yMTY5 LDcgKzIxNzcsNyBAQCBmdW5jIChjICp0eXBlQ29udikgSW5pdChwdHJTaXplLCBpbnRTaXplIGlu dDY0KSB7CiAJYy5tID0gbWFrZShtYXBbc3RyaW5nXSpUeXBlKQogCWMucHRycyA9IG1ha2UobWFw W3N0cmluZ11bXSpUeXBlKQogCWMuZ2V0VHlwZUlEcyA9IG1ha2UobWFwW3N0cmluZ11ib29sKQot CWMubm90SW5IZWFwU3RydWN0cyA9IG1ha2UobWFwW3N0cmluZ11ib29sKQorCWMuaW5jb21wbGV0 ZVN0cnVjdHMgPSBtYWtlKG1hcFtzdHJpbmddYm9vbCkKIAljLmJvb2wgPSBjLklkZW50KCJib29s IikKIAljLmJ5dGUgPSBjLklkZW50KCJieXRlIikKIAljLmludDggPSBjLklkZW50KCJpbnQ4IikK QEAgLTIxODgsNyArMjE5Niw2IEBAIGZ1bmMgKGMgKnR5cGVDb252KSBJbml0KHB0clNpemUsIGlu dFNpemUgaW50NjQpIHsKIAljLnZvaWQgPSBjLklkZW50KCJ2b2lkIikKIAljLnN0cmluZyA9IGMu SWRlbnQoInN0cmluZyIpCiAJYy5nb1ZvaWQgPSBjLklkZW50KCJfQ3R5cGVfdm9pZCIpCi0JYy5n b1ZvaWRQdHJOb0hlYXAgPSBjLklkZW50KCIqX0N0eXBlX3ZvaWRfbm90aW5oZWFwIikKIAogCS8v IE5vcm1hbGx5IGNnbyB0cmFuc2xhdGVzIHZvaWQqIHRvIHVuc2FmZS5Qb2ludGVyLAogCS8vIGJ1 dCBmb3IgaGlzdG9yaWNhbCByZWFzb25zIC1nb2RlZnMgdXNlcyAqYnl0ZSBpbnN0ZWFkLgpAQCAt MjUzMSwxOSArMjUzOCwxMyBAQCBmdW5jIChjICp0eXBlQ29udikgbG9hZFR5cGUoZHR5cGUgZHdh cmYuVHlwZSwgcG9zIHRva2VuLlBvcywgcGFyZW50IHN0cmluZykgKlR5cAogCQkJLy8gb3RoZXIg dGhhbiB0cnkgdG8gZGV0ZXJtaW5lIGEgR28gcmVwcmVzZW50YXRpb24uCiAJCQl0dCA6PSAqdAog CQkJdHQuQyA9ICZUeXBlUmVwcnsiJXMgJXMiLCBbXWludGVyZmFjZXt9e2R0LktpbmQsIHRhZ319 Ci0JCQl0dC5HbyA9IGMuSWRlbnQoInN0cnVjdHt9IikKLQkJCWlmIGR0LktpbmQgPT0gInN0cnVj dCIgewotCQkJCS8vIFdlIGRvbid0IGtub3cgd2hhdCB0aGUgcmVwcmVzZW50YXRpb24gb2YgdGhp cyBzdHJ1Y3QgaXMsIHNvIGRvbid0IGxldAotCQkJCS8vIGFueW9uZSBhbGxvY2F0ZSBvbmUgb24g dGhlIEdvIHNpZGUuIEFzIGEgc2lkZSBlZmZlY3Qgb2YgdGhpcyBhbm5vdGF0aW9uLAotCQkJCS8v IHBvaW50ZXJzIHRvIHRoaXMgdHlwZSB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIHBvaW50ZXJzIGlu IEdvLiBUaGV5IHdvbid0Ci0JCQkJLy8gZ2V0IHdyaXRlYmFycmllci1lZCBvciBhZGp1c3RlZCBk dXJpbmcgYSBzdGFjayBjb3B5LiBUaGlzIHNob3VsZCBoYW5kbGUKLQkJCQkvLyBhbGwgdGhlIGNh c2VzIGJhZFBvaW50ZXJUeXBlZGVmIHVzZWQgdG8gaGFuZGxlLCBidXQgaG9wZWZ1bGx5IHdpbGwK LQkJCQkvLyBjb250aW51ZSB0byB3b3JrIGdvaW5nIGZvcndhcmQgd2l0aG91dCBhbnkgbW9yZSBu ZWVkIGZvciBjZ28gY2hhbmdlcy4KLQkJCQl0dC5Ob3RJbkhlYXAgPSB0cnVlCi0JCQkJLy8gVE9E Tzogd2Ugc2hvdWxkIHByb2JhYmx5IGRvIHRoZSBzYW1lIGZvciB1bmlvbnMuIFVuaW9ucyBjYW4n dCBsaXZlCi0JCQkJLy8gb24gdGhlIEdvIGhlYXAsIHJpZ2h0PyBJdCBjdXJyZW50bHkgZG9lc24n dCB3b3JrIGZvciB1bmlvbnMgYmVjYXVzZQotCQkJCS8vIHRoZXkgYXJlIGRlZmluZWQgYXMgYSB0 eXBlIGFsaWFzIGZvciBzdHJ1Y3R7fSwgbm90IGEgZGVmaW5lZCB0eXBlLgotCQkJfQorCQkJLy8g V2UgZG9uJ3Qga25vdyB3aGF0IHRoZSByZXByZXNlbnRhdGlvbiBvZiB0aGlzIHN0cnVjdCBpcywg c28gZG9uJ3QgbGV0CisJCQkvLyBhbnlvbmUgYWxsb2NhdGUgb25lIG9uIHRoZSBHbyBzaWRlLiBB cyBhIHNpZGUgZWZmZWN0IG9mIHRoaXMgYW5ub3RhdGlvbiwKKwkJCS8vIHBvaW50ZXJzIHRvIHRo aXMgdHlwZSB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIHBvaW50ZXJzIGluIEdvLiBUaGV5IHdvbid0 CisJCQkvLyBnZXQgd3JpdGViYXJyaWVyLWVkIG9yIGFkanVzdGVkIGR1cmluZyBhIHN0YWNrIGNv cHkuIFRoaXMgc2hvdWxkIGhhbmRsZQorCQkJLy8gYWxsIHRoZSBjYXNlcyBiYWRQb2ludGVyVHlw ZWRlZiB1c2VkIHRvIGhhbmRsZSwgYnV0IGhvcGVmdWxseSB3aWxsCisJCQkvLyBjb250aW51ZSB0 byB3b3JrIGdvaW5nIGZvcndhcmQgd2l0aG91dCBhbnkgbW9yZSBuZWVkIGZvciBjZ28gY2hhbmdl cy4KKwkJCXR0LkdvID0gYy5JZGVudCgiX2Nnb3BhY2thZ2UuSW5jb21wbGV0ZSIpCiAJCQl0eXBl ZGVmW25hbWUuTmFtZV0gPSAmdHQKIAkJCWJyZWFrCiAJCX0KQEAgLTI1NjksNyArMjU3MCw5IEBA IGZ1bmMgKGMgKnR5cGVDb252KSBsb2FkVHlwZShkdHlwZSBkd2FyZi5UeXBlLCBwb3MgdG9rZW4u UG9zLCBwYXJlbnQgc3RyaW5nKSAqVHlwCiAJCQkJdHQuQyA9ICZUeXBlUmVwcnsic3RydWN0ICVz IiwgW11pbnRlcmZhY2V7fXt0YWd9fQogCQkJfQogCQkJdHQuR28gPSBnCi0JCQl0dC5Ob3RJbkhl YXAgPSBjLm5vdEluSGVhcFN0cnVjdHNbdGFnXQorCQkJaWYgYy5pbmNvbXBsZXRlU3RydWN0c1t0 YWddIHsKKwkJCQl0dC5HbyA9IGMuSWRlbnQoIl9jZ29wYWNrYWdlLkluY29tcGxldGUiKQorCQkJ fQogCQkJdHlwZWRlZltuYW1lLk5hbWVdID0gJnR0CiAJCX0KIApAQCAtMjYxNCw5ICsyNjE3LDkg QEAgZnVuYyAoYyAqdHlwZUNvbnYpIGxvYWRUeXBlKGR0eXBlIGR3YXJmLlR5cGUsIHBvcyB0b2tl bi5Qb3MsIHBhcmVudCBzdHJpbmcpICpUeXAKIAkJCX0KIAkJfQogCQlpZiBjLmJhZFZvaWRQb2lu dGVyVHlwZWRlZihkdCkgewotCQkJLy8gVHJlYXQgdGhpcyB0eXBlZGVmIGFzIGEgcG9pbnRlciB0 byBhIE5vdEluSGVhcCB2b2lkLgorCQkJLy8gVHJlYXQgdGhpcyB0eXBlZGVmIGFzIGEgcG9pbnRl ciB0byBhIF9jZ29wYWNrYWdlLkluY29tcGxldGUuCiAJCQlzIDo9ICpzdWIKLQkJCXMuR28gPSBj LmdvVm9pZFB0ck5vSGVhcAorCQkJcy5HbyA9IGMuSWRlbnQoIipfY2dvcGFja2FnZS5JbmNvbXBs ZXRlIikKIAkJCXN1YiA9ICZzCiAJCQkvLyBNYWtlIHN1cmUgd2UgdXBkYXRlIGFueSBwcmV2aW91 c2x5IGNvbXB1dGVkIHR5cGUuCiAJCQlpZiBvbGRUeXBlIDo9IHR5cGVkZWZbbmFtZS5OYW1lXTsg b2xkVHlwZSAhPSBuaWwgewpAQCAtMjYyNCwyMiArMjYyNywyMSBAQCBmdW5jIChjICp0eXBlQ29u dikgbG9hZFR5cGUoZHR5cGUgZHdhcmYuVHlwZSwgcG9zIHRva2VuLlBvcywgcGFyZW50IHN0cmlu ZykgKlR5cAogCQkJfQogCQl9CiAJCS8vIENoZWNrIGZvciBub24tcG9pbnRlciAic3RydWN0IDx0 YWc+ey4uLn07IHR5cGVkZWYgc3RydWN0IDx0YWc+ICo8bmFtZT4iCi0JCS8vIHR5cGVkZWZzIHRo YXQgc2hvdWxkIGJlIG1hcmtlZCBOb3RJbkhlYXAuCisJCS8vIHR5cGVkZWZzIHRoYXQgc2hvdWxk IGJlIG1hcmtlZCBJbmNvbXBsZXRlLgogCQlpZiBwdHIsIG9rIDo9IGR0LlR5cGUuKCpkd2FyZi5Q dHJUeXBlKTsgb2sgewogCQkJaWYgc3RyY3QsIG9rIDo9IHB0ci5UeXBlLigqZHdhcmYuU3RydWN0 VHlwZSk7IG9rIHsKIAkJCQlpZiBjLmJhZFN0cnVjdFBvaW50ZXJUeXBlZGVmKGR0Lk5hbWUsIHN0 cmN0KSB7Ci0JCQkJCWMubm90SW5IZWFwU3RydWN0c1tzdHJjdC5TdHJ1Y3ROYW1lXSA9IHRydWUK KwkJCQkJYy5pbmNvbXBsZXRlU3RydWN0c1tzdHJjdC5TdHJ1Y3ROYW1lXSA9IHRydWUKIAkJCQkJ Ly8gTWFrZSBzdXJlIHdlIHVwZGF0ZSBhbnkgcHJldmlvdXNseSBjb21wdXRlZCB0eXBlLgogCQkJ CQluYW1lIDo9ICJfQ3R5cGVfc3RydWN0XyIgKyBzdHJjdC5TdHJ1Y3ROYW1lCiAJCQkJCWlmIG9s ZFR5cGUgOj0gdHlwZWRlZltuYW1lXTsgb2xkVHlwZSAhPSBuaWwgewotCQkJCQkJb2xkVHlwZS5O b3RJbkhlYXAgPSB0cnVlCisJCQkJCQlvbGRUeXBlLkdvID0gYy5JZGVudCgiX2Nnb3BhY2thZ2Uu SW5jb21wbGV0ZSIpCiAJCQkJCX0KIAkJCQl9CiAJCQl9CiAJCX0KIAkJdC5HbyA9IG5hbWUKIAkJ dC5CYWRQb2ludGVyID0gc3ViLkJhZFBvaW50ZXIKLQkJdC5Ob3RJbkhlYXAgPSBzdWIuTm90SW5I ZWFwCiAJCWlmIHVuaW9uV2l0aFBvaW50ZXJbc3ViLkdvXSB7CiAJCQl1bmlvbldpdGhQb2ludGVy W3QuR29dID0gdHJ1ZQogCQl9CkBAIC0yNjUwLDcgKzI2NTIsNiBAQCBmdW5jIChjICp0eXBlQ29u dikgbG9hZFR5cGUoZHR5cGUgZHdhcmYuVHlwZSwgcG9zIHRva2VuLlBvcywgcGFyZW50IHN0cmlu ZykgKlR5cAogCQkJdHQgOj0gKnQKIAkJCXR0LkdvID0gc3ViLkdvCiAJCQl0dC5CYWRQb2ludGVy ID0gc3ViLkJhZFBvaW50ZXIKLQkJCXR0Lk5vdEluSGVhcCA9IHN1Yi5Ob3RJbkhlYXAKIAkJCXR5 cGVkZWZbbmFtZS5OYW1lXSA9ICZ0dAogCQl9CiAKQEAgLTMxNzQsNyArMzE3NSw3IEBAIGZ1bmMg KGMgKnR5cGVDb252KSBhbm9ueW1vdXNTdHJ1Y3RUeXBlZGVmKGR0ICpkd2FyZi5UeXBlZGVmVHlw ZSkgYm9vbCB7CiAvLyBub24tcG9pbnRlcnMgaW4gdGhpcyB0eXBlLgogLy8gVE9ETzogQ3VycmVu dGx5IG91ciBiZXN0IHNvbHV0aW9uIGlzIHRvIGZpbmQgdGhlc2UgbWFudWFsbHkgYW5kIGxpc3Qg dGhlbSBhcwogLy8gdGhleSBjb21lIHVwLiBBIGJldHRlciBzb2x1dGlvbiBpcyBkZXNpcmVkLgot Ly8gTm90ZTogREVQUkVDQVRFRC4gVGhlcmUgaXMgbm93IGEgYmV0dGVyIHNvbHV0aW9uLiBTZWFy Y2ggZm9yIE5vdEluSGVhcCBpbiB0aGlzIGZpbGUuCisvLyBOb3RlOiBERVBSRUNBVEVELiBUaGVy ZSBpcyBub3cgYSBiZXR0ZXIgc29sdXRpb24uIFNlYXJjaCBmb3IgX2Nnb3BhY2thZ2UuSW5jb21w bGV0ZSBpbiB0aGlzIGZpbGUuCiBmdW5jIChjICp0eXBlQ29udikgYmFkUG9pbnRlclR5cGVkZWYo ZHQgKmR3YXJmLlR5cGVkZWZUeXBlKSBib29sIHsKIAlpZiBjLmJhZENGVHlwZShkdCkgewogCQly ZXR1cm4gdHJ1ZQpAQCAtMzE4OCw3ICszMTg5LDcgQEAgZnVuYyAoYyAqdHlwZUNvbnYpIGJhZFBv aW50ZXJUeXBlZGVmKGR0ICpkd2FyZi5UeXBlZGVmVHlwZSkgYm9vbCB7CiAJcmV0dXJuIGZhbHNl CiB9CiAKLS8vIGJhZFZvaWRQb2ludGVyVHlwZWRlZiBpcyBsaWtlIGJhZFBvaW50ZXJUeXBlRGVm LCBidXQgZm9yICJ2b2lkICoiIHR5cGVkZWZzIHRoYXQgc2hvdWxkIGJlIE5vdEluSGVhcC4KKy8v IGJhZFZvaWRQb2ludGVyVHlwZWRlZiBpcyBsaWtlIGJhZFBvaW50ZXJUeXBlRGVmLCBidXQgZm9y ICJ2b2lkICoiIHR5cGVkZWZzIHRoYXQgc2hvdWxkIGJlIF9jZ29wYWNrYWdlLkluY29tcGxldGUu CiBmdW5jIChjICp0eXBlQ29udikgYmFkVm9pZFBvaW50ZXJUeXBlZGVmKGR0ICpkd2FyZi5UeXBl ZGVmVHlwZSkgYm9vbCB7CiAJLy8gTWF0Y2ggdGhlIFdpbmRvd3MgSEFORExFIHR5cGUgKCM0MjAx OCkuCiAJaWYgZ29vcyAhPSAid2luZG93cyIgfHwgZHQuTmFtZSAhPSAiSEFORExFIiB7CmRpZmYg LS1naXQgYS9saWJnby9nby9jbWQvY2dvL21haW4uZ28gYi9saWJnby9nby9jbWQvY2dvL21haW4u Z28KaW5kZXggNTg0NzdlNDcwNDUuLjE4NmFlZjA2YzA4IDEwMDY0NAotLS0gYS9saWJnby9nby9j bWQvY2dvL21haW4uZ28KKysrIGIvbGliZ28vZ28vY21kL2Nnby9tYWluLmdvCkBAIC0xNTMsNyAr MTUzLDYgQEAgdHlwZSBUeXBlIHN0cnVjdCB7CiAJRW51bVZhbHVlcyBtYXBbc3RyaW5nXWludDY0 CiAJVHlwZWRlZiAgICBzdHJpbmcKIAlCYWRQb2ludGVyIGJvb2wgLy8gdGhpcyBwb2ludGVyIHR5 cGUgc2hvdWxkIGJlIHJlcHJlc2VudGVkIGFzIGEgdWludHB0ciAoZGVwcmVjYXRlZCkKLQlOb3RJ bkhlYXAgIGJvb2wgLy8gdGhpcyB0eXBlIHNob3VsZCBoYXZlIGEgZ286bm90aW5oZWFwIGFubm90 YXRpb24KIH0KIAogLy8gQSBGdW5jVHlwZSBjb2xsZWN0cyBpbmZvcm1hdGlvbiBhYm91dCBhIGZ1 bmN0aW9uIHR5cGUgaW4gYm90aCB0aGUgQyBhbmQgR28gd29ybGRzLgpkaWZmIC0tZ2l0IGEvbGli Z28vZ28vY21kL2Nnby9vdXQuZ28gYi9saWJnby9nby9jbWQvY2dvL291dC5nbwppbmRleCA4ZDFl YjViNmE5Ni4uOWVkODhiODQ5NzQgMTAwNjQ0Ci0tLSBhL2xpYmdvL2dvL2NtZC9jZ28vb3V0Lmdv CisrKyBiL2xpYmdvL2dvL2NtZC9jZ28vb3V0LmdvCkBAIC04NSwxMSArODUsMTQgQEAgZnVuYyAo cCAqUGFja2FnZSkgd3JpdGVEZWZzKCkgewogCWZtdC5GcHJpbnRmKGZnbzIsICIvLyBDb2RlIGdl bmVyYXRlZCBieSBjbWQvY2dvOyBETyBOT1QgRURJVC5cblxuIikKIAlmbXQuRnByaW50ZihmZ28y LCAicGFja2FnZSAlc1xuXG4iLCBwLlBhY2thZ2VOYW1lKQogCWZtdC5GcHJpbnRmKGZnbzIsICJp bXBvcnQgXCJ1bnNhZmVcIlxuXG4iKQotCWlmICEqZ2NjZ28gJiYgKmltcG9ydFJ1bnRpbWVDZ28g ewotCQlmbXQuRnByaW50ZihmZ28yLCAiaW1wb3J0IF8gXCJydW50aW1lL2Nnb1wiXG5cbiIpCi0J fQogCWlmICppbXBvcnRTeXNjYWxsIHsKIAkJZm10LkZwcmludGYoZmdvMiwgImltcG9ydCBcInN5 c2NhbGxcIlxuXG4iKQorCX0KKwlpZiAqaW1wb3J0UnVudGltZUNnbyB7CisJCWZtdC5GcHJpbnRm KGZnbzIsICJpbXBvcnQgX2Nnb3BhY2thZ2UgXCJydW50aW1lL2Nnb1wiXG5cbiIpCisJCWZtdC5G cHJpbnRmKGZnbzIsICJ0eXBlIF8gX2Nnb3BhY2thZ2UuSW5jb21wbGV0ZVxuIikgLy8gcHJldmVu dCBpbXBvcnQtbm90LXVzZWQgZXJyb3IKKwl9CisJaWYgKmltcG9ydFN5c2NhbGwgewogCQlmbXQu RnByaW50ZihmZ28yLCAidmFyIF8gc3lzY2FsbC5FcnJub1xuIikKIAl9CiAJZm10LkZwcmludGYo ZmdvMiwgImZ1bmMgX0Nnb19wdHIocHRyIHVuc2FmZS5Qb2ludGVyKSB1bnNhZmUuUG9pbnRlciB7 IHJldHVybiBwdHIgfVxuXG4iKQpAQCAtMTEzLDkgKzExNiw2IEBAIGZ1bmMgKHAgKlBhY2thZ2Up IHdyaXRlRGVmcygpIHsKIAlzb3J0LlN0cmluZ3ModHlwZWRlZk5hbWVzKQogCWZvciBfLCBuYW1l IDo9IHJhbmdlIHR5cGVkZWZOYW1lcyB7CiAJCWRlZiA6PSB0eXBlZGVmW25hbWVdCi0JCWlmIGRl Zi5Ob3RJbkhlYXAgewotCQkJZm10LkZwcmludGYoZmdvMiwgIi8vZ286bm90aW5oZWFwXG4iKQot CQl9CiAJCWZtdC5GcHJpbnRmKGZnbzIsICJ0eXBlICVzICIsIG5hbWUpCiAJCS8vIFdlIGRvbid0 IGhhdmUgc291cmNlIGluZm8gZm9yIHRoZXNlIHR5cGVzLCBzbyB3cml0ZSB0aGVtIG91dCB3aXRo b3V0IHNvdXJjZSBpbmZvLgogCQkvLyBPdGhlcndpc2UgdHlwZXMgd291bGQgbG9vayBsaWtlOgpA QCAtMTQwLDcgKzE0MCw2IEBAIGZ1bmMgKHAgKlBhY2thZ2UpIHdyaXRlRGVmcygpIHsKIAkJZm10 LkZwcmludGYoZmdvMiwgIiVzIiwgYnVmLkJ5dGVzKCkpCiAJCWZtdC5GcHJpbnRmKGZnbzIsICJc blxuIikKIAl9Ci0JZm10LkZwcmludGYoZmdvMiwgIi8vZ286bm90aW5oZWFwXG50eXBlIF9DdHlw ZV92b2lkX25vdGluaGVhcCBzdHJ1Y3R7fVxuXG4iKQogCWlmICpnY2NnbyB7CiAJCWZtdC5GcHJp bnRmKGZnbzIsICJ0eXBlIF9DdHlwZV92b2lkIGJ5dGVcbiIpCiAJfSBlbHNlIHsKZGlmZiAtLWdp dCBhL2xpYmdvL2dvL2NtZC9nby9pbnRlcm5hbC9sb2FkL3BrZy5nbyBiL2xpYmdvL2dvL2NtZC9n by9pbnRlcm5hbC9sb2FkL3BrZy5nbwppbmRleCA0NGJkNjFjYWVhNy4uOWM1YzBhMWNlMjYgMTAw NjQ0Ci0tLSBhL2xpYmdvL2dvL2NtZC9nby9pbnRlcm5hbC9sb2FkL3BrZy5nbworKysgYi9saWJn by9nby9jbWQvZ28vaW50ZXJuYWwvbG9hZC9wa2cuZ28KQEAgLTE4MTgsNyArMTgxOCw3IEBAIGZ1 bmMgKHAgKlBhY2thZ2UpIGxvYWQoY3R4IGNvbnRleHQuQ29udGV4dCwgb3B0cyBQYWNrYWdlT3B0 cywgcGF0aCBzdHJpbmcsIHN0ayAqCiAJCWlmIHAuVXNlc0NnbygpIHsKIAkJCWFkZEltcG9ydCgi dW5zYWZlIiwgdHJ1ZSkKIAkJfQotCQlpZiBwLlVzZXNDZ28oKSAmJiAoIXAuU3RhbmRhcmQgfHwg IWNnb0V4Y2x1ZGVbcC5JbXBvcnRQYXRoXSkgJiYgY2ZnLkJ1aWxkQ29udGV4dC5Db21waWxlciAh PSAiZ2NjZ28iIHsKKwkJaWYgcC5Vc2VzQ2dvKCkgJiYgKCFwLlN0YW5kYXJkIHx8ICFjZ29FeGNs dWRlW3AuSW1wb3J0UGF0aF0pIHsKIAkJCWFkZEltcG9ydCgicnVudGltZS9jZ28iLCB0cnVlKQog CQl9CiAJCWlmIHAuVXNlc0NnbygpICYmICghcC5TdGFuZGFyZCB8fCAhY2dvU3lzY2FsbEV4Y2x1 ZGVbcC5JbXBvcnRQYXRoXSkgewpAQCAtMTgyOCw5ICsxODI4LDcgQEAgZnVuYyAocCAqUGFja2Fn ZSkgbG9hZChjdHggY29udGV4dC5Db250ZXh0LCBvcHRzIFBhY2thZ2VPcHRzLCBwYXRoIHN0cmlu Zywgc3RrICoKIAkJLy8gU1dJRyBhZGRzIGltcG9ydHMgb2Ygc29tZSBzdGFuZGFyZCBwYWNrYWdl cy4KIAkJaWYgcC5Vc2VzU3dpZygpIHsKIAkJCWFkZEltcG9ydCgidW5zYWZlIiwgdHJ1ZSkKLQkJ CWlmIGNmZy5CdWlsZENvbnRleHQuQ29tcGlsZXIgIT0gImdjY2dvIiB7Ci0JCQkJYWRkSW1wb3J0 KCJydW50aW1lL2NnbyIsIHRydWUpCi0JCQl9CisJCQlhZGRJbXBvcnQoInJ1bnRpbWUvY2dvIiwg dHJ1ZSkKIAkJCWFkZEltcG9ydCgic3lzY2FsbCIsIHRydWUpCiAJCQlhZGRJbXBvcnQoInN5bmMi LCB0cnVlKQogCkBAIC0yNDU1LDcgKzI0NTMsNyBAQCBmdW5jIExpbmtlckRlcHMocCAqUGFja2Fn ZSkgW11zdHJpbmcgewogCWRlcHMgOj0gW11zdHJpbmd7InJ1bnRpbWUifQogCiAJLy8gRXh0ZXJu YWwgbGlua2luZyBtb2RlIGZvcmNlcyBhbiBpbXBvcnQgb2YgcnVudGltZS9jZ28uCi0JaWYgZXh0 ZXJuYWxMaW5raW5nRm9yY2VkKHApICYmIGNmZy5CdWlsZENvbnRleHQuQ29tcGlsZXIgIT0gImdj Y2dvIiB7CisJaWYgZXh0ZXJuYWxMaW5raW5nRm9yY2VkKHApIHsKIAkJZGVwcyA9IGFwcGVuZChk ZXBzLCAicnVudGltZS9jZ28iKQogCX0KIAkvLyBPbiBBUk0gd2l0aCBHT0FSTT01LCBpdCBmb3Jj ZXMgYW4gaW1wb3J0IG9mIG1hdGgsIGZvciBzb2Z0IGZsb2F0aW5nIHBvaW50LgpkaWZmIC0tZ2l0 IGEvbGliZ28vZ28vcnVudGltZS9jZ28vY2dvLmdvIGIvbGliZ28vZ28vcnVudGltZS9jZ28vY2dv LmdvCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41OTIxNDM1Njk2Ygot LS0gL2Rldi9udWxsCisrKyBiL2xpYmdvL2dvL3J1bnRpbWUvY2dvL2Nnby5nbwpAQCAtMCwwICsx LDE4IEBACisvLyBDb3B5cmlnaHQgMjAxMCBUaGUgR28gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNl cnZlZC4KKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0 eWxlCisvLyBsaWNlbnNlIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisK Ky8qCitQYWNrYWdlIGNnbyBjb250YWlucyBydW50aW1lIHN1cHBvcnQgZm9yIGNvZGUgZ2VuZXJh dGVkCitieSB0aGUgY2dvIHRvb2wuICBTZWUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSBjZ28g Y29tbWFuZAorZm9yIGRldGFpbHMgb24gdXNpbmcgY2dvLgorKi8KK3BhY2thZ2UgY2dvCisKKy8v IEluY29tcGxldGUgaXMgdXNlZCBzcGVjaWZpY2FsbHkgZm9yIHRoZSBzZW1hbnRpY3Mgb2YgaW5j b21wbGV0ZSBDIHR5cGVzLgorLy8KKy8vZ286bm90aW5oZWFwCit0eXBlIEluY29tcGxldGUgc3Ry dWN0IHsKKwkvLwlfIHN5cy5Ob3RJbkhlYXAKKwlfIHN0cnVjdHsgXyBzdHJ1Y3R7fSB9Cit9Cg== --00000000000015f10305e9440aa0--