From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms0.migadu.com with LMTPS id mDhwHqHNQGFvDwAAgWs5BA (envelope-from ) for ; Tue, 14 Sep 2021 18:28:17 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id GCoDGqHNQGFFcwAAB5/wlQ (envelope-from ) for ; Tue, 14 Sep 2021 16:28:17 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 017E01B618 for ; Tue, 14 Sep 2021 18:28:17 +0200 (CEST) Received: from localhost ([::1]:57082 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mQBI8-0000RU-0R for larch@yhetil.org; Tue, 14 Sep 2021 12:28:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:53806) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mQB8F-0000pp-3h for guix-patches@gnu.org; Tue, 14 Sep 2021 12:18:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:38484) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mQB8E-0000Fm-3t for guix-patches@gnu.org; Tue, 14 Sep 2021 12:18:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1mQB8E-0003yJ-0d for guix-patches@gnu.org; Tue, 14 Sep 2021 12:18:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#47006] [WIP PATCH v2 2/2] gnu: Add zig. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 14 Sep 2021 16:18:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 47006 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Sarah Morgensen Cc: 47006@debbugs.gnu.org, =?UTF-8?Q?Andr=C3=A1s_?= =?UTF-8?Q?V=C3=B6r=C3=B6sk=C5=91i?= , maximedevos@telenet.be, efraim@flashner.co.il Received: via spool by 47006-submit@debbugs.gnu.org id=B47006.163163624715193 (code B ref 47006); Tue, 14 Sep 2021 16:18:01 +0000 Received: (at 47006) by debbugs.gnu.org; 14 Sep 2021 16:17:27 +0000 Received: from localhost ([127.0.0.1]:50027 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQB7e-0003wy-H4 for submit@debbugs.gnu.org; Tue, 14 Sep 2021 12:17:27 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:45876) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1mQB7b-0003wj-VZ for 47006@debbugs.gnu.org; Tue, 14 Sep 2021 12:17:25 -0400 Received: by mail-wr1-f65.google.com with SMTP id d21so13452855wra.12 for <47006@debbugs.gnu.org>; Tue, 14 Sep 2021 09:17:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:subject:from:to:cc:date:in-reply-to:references :user-agent:mime-version; bh=g6apZ5C3+e/gZCpQ6nipEa357Co+vyJkUmpi8AWeWdo=; b=BCEDxfqYNg4gpHEi3xxpekzLNkxMBYkOYXg9MUN/K1GTWUX9yhdYMRu+t9wimgEDje hQhf1AhFdqiJCowXVefl6ebl3fJQlRXeuzyBof5+o3dnILxvFYhSIqwcpTPuhZT4PV5/ J+7+rgqFBZ1soLywFt/rL97223nQB5j7QQP9KKJy9ol/y3KNvAeITmFwyODqRCxOFQd8 O/lzYo/ncOlZ4172wmIKUohsZrQnKgu341zsSVen6MkQZnfe1HHXV7nLj5ZsmFULFXBt Mj3VsQ/2Mpd9r/ZPgrXMPf/Ay0HkCe3FbNdNuxkmYFJcmIuuUmqcHGWLPurT3mKsxdfv cR1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:user-agent:mime-version; bh=g6apZ5C3+e/gZCpQ6nipEa357Co+vyJkUmpi8AWeWdo=; b=gV/Izly050wkhN6sZHvNeFFUGNrCNngZJPU8awzyfIOm7TCc0MmYgnYMHM3FMiMfzr vjoH/hRLWm+xFHssLFFZ3ysZrM4oJKORHk3h3bdgZV3bPssKDtYQGSMv9fADXNKOnGVw DaVFitHz5KURItaUawXubMRCNwsGcImAVH9pobDEfm2MhyRGqWDhao4ObUr/m9F502SM 1oNHyouuln8wqxu1u+qt/a+rrRq8Z9ZoCmEjGzNs2L6JHkCJiZ5kK3Dwc7wOC9DliI2x tw3cPhJU9TnfVuhspIUbBmr3sjAM99lKI3q3gtaHwQesnYwVHaO3QAyCYF8/DRbOeoi/ CTKg== X-Gm-Message-State: AOAM531atQACj2ycQ7v9GMRov7IX8XTpqR5Mb3L69uiEQfZbT3FF2HOv gf1fjxwEOAgM3NDQ0p9ywMk= X-Google-Smtp-Source: ABdhPJxajjln1HAl+PYMwbS04Jc/+P+3jrOjXyhYSRQ0WwEpdRIGFs9G0vck4c1tf2RHrelLE3ea6w== X-Received: by 2002:a5d:64a7:: with SMTP id m7mr19870760wrp.171.1631636238071; Tue, 14 Sep 2021 09:17:18 -0700 (PDT) Received: from nijino.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id v8sm9268024wrt.12.2021.09.14.09.17.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Sep 2021 09:17:16 -0700 (PDT) Message-ID: <7b114e500e29364f44b0080e0f782255e92be74f.camel@gmail.com> From: Liliana Marie Prikler Date: Tue, 14 Sep 2021 18:17:14 +0200 In-Reply-To: <86czpdl8ns.fsf@mgsn.dev> References: <0f6c5b692df8d06a0d7adddc9e5abf93894a366f.1631226695.git.liliana.prikler@gmail.com> <86wnnmnceg.fsf@mgsn.dev> <865yv6mmk2.fsf@mgsn.dev> <93454096d15aed82b9bf4b1401a0fddcb156f2b7.camel@gmail.com> <86czpdl8ns.fsf@mgsn.dev> Content-Type: multipart/mixed; boundary="=-7fRrHtBzNGkQVuWOI6v/" User-Agent: Evolution 3.34.2 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -4.00 Authentication-Results: aspmx1.migadu.com; none X-Migadu-Queue-Id: 017E01B618 X-Spam-Score: -4.00 X-Migadu-Scanner: scn0.migadu.com X-TUID: O2l7lWfC9UhO --=-7fRrHtBzNGkQVuWOI6v/ Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Hi, Am Sonntag, den 12.09.2021, 15:40 -0700 schrieb Sarah Morgensen: > > > + (patches > > > + (search-patches > > > + "zig-disable-libc-note-test.patch" > > Is this test really necessary to skip that test? If not, let's try > > to use the command line for that. > > We could use "-Dskip-compile-errors", but that also skips ~600 other > test cases. Point taken, let's keep it then. > > > + ;; XXX: Remove the following patch when updating LLVM > > > to 12.0.1. > > > + "zig-disable-MIPS-tests.patch" > > There's a patch for LLVM 12.0.1 waiting in the ML and we could > > potentially bump lld to 12.0.1 regardless. (Can LLVM components be > > mix-matched like that?) > > I have no idea if they *can*, but I'm pretty sure they're not > intended to be, as LLVM wants you to build everything together in one > big blob. Fair enough, I've tried to rebase this based on AndrĂ¡s patch regardless. In some sense this counts as a review of #50486, but I obviously haven't tested all the problematic packages that would keep it from being merged, like mesa. > > > + "zig-fix-cross-native-execution.patch" > > IIUC this is weaker than "-Dskip-non-native". Is there a reason to > > include specifically these non-native tests? > > Yes, as I wrote in the patch header, it fixes the behavior of 'zig > run' and 'zig test' when the target is cross-native. Would we want > to stick to upstream, even if it's buggy? I'm not particularly sure about 'zig run', but imo we should simply supply the correct linker in cross-native and not worry about upstream bugs in the negative case. > We might want to add "-Dskip-non-native" anyway as it speeds up tests > by an order of magnitude, in which case tests will succeed without > the patch. It looks their CI uses it "-Dskip-non-native" as well, > and I suppose there's not a whole lot Guix can do to mess up Zig's > cross-compiling anyway, since it's pretty self-contained... Did that. > > > + (native-search-paths > > > + (list > > > + (search-path-specification > > > + (variable "ZIG_INCLUDE_DIRS") > > > + ;; XXX: It doesn't seem as though Zig can distinguish > > > between > > > C and C++ > > > + ;; include paths, so provide both. > > > + (files '("include/c++" "include"))) > > > + (search-path-specification > > > + ;; TODO: Might be confused with "ZIG_LIB_DIR"... Maybe > > > use > > > + ;; "ZIG_INCLUDE_PATH" and "ZIG_LIBRARY_PATH"? > > > + (variable "ZIG_LIB_DIRS") > > > + (files '("lib" "lib64"))))) > > You can rewrite "zig-use-explicit-paths.patch" in-place with Emacs' > > query-replace and/or sed (or even just manually, there are no lines > > to add or remove) if you disagree with my environment variable > > naming choice. Just make sure you don't accidentally break diff by > > deleting trailing space. > > Another potential naming choice would be to prefix everything with > > ZIG_LIBC_ rather than simply ZIG_. Of course I thought about that > > only after sending my previous mail ^^" > > Ah, I meant to mention it in my last e-mail but I forgot. I didn't > want to just go changing it on you without discussing it. > > As far as I can tell, there's no such thing as a "Zig library" or a > "Zig header"; these are for including system C headers and > libraries. So, I would just go with LIBRARY_PATH and > CPLUS_INCLUDE_PATH unless we anticipate needing to tell Zig something > different than what we tell GCC/Clang. Furthermore, the in- > development 'zig cc' command is intended to be a drop-in replacement > for GCC/Clang, so it should probably honor the same environment > variables. Fair enough, I now have zig search the paths that would normally be expected to be accordingly set. This leads to doubly adding "/include", but I suppose that's fine as we risk not including the right things in a C only context otherwise. Regards --=-7fRrHtBzNGkQVuWOI6v/ Content-Disposition: attachment; filename="v4-0001-gnu-lld-Update-to-12.0.1.patch" Content-Type: text/x-patch; name="v4-0001-gnu-lld-Update-to-12.0.1.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBkOWY4ZDU4YzAyNDliMjhlZmQ5NjU1MGE5YjQ2ZGU2OWM0M2I2ZTJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaWxpYW5hIFByaWtsZXIgPGxpbGlhbmEucHJpa2xlckBnbWFp bC5jb20+CkRhdGU6IFRodSwgOSBTZXAgMjAyMSAxNTozMjoyMCArMDIwMApTdWJqZWN0OiBbUEFU Q0ggdjQgMS8yXSBnbnU6IGxsZDogVXBkYXRlIHRvIDEyLjAuMS4KCiogZ251L3BhY2thZ2VzL2xs dm0uc2NtIChsbHZtLXN1YnByb2plY3RzLW9yaWdpbiwgJWxsdm0tcHJvamVjdC0xMi1oYXNoKToK TmV3IHZhcmlhYmxlcy4KKGxsZC0xMSwgbGxkLTEyKTogTmV3IHZhcmlhYmxlcy4KKGxsZCk6IFBv aW50IHRvIGxsZC0xMS4KLS0tCiBnbnUvcGFja2FnZXMvbGx2bS5zY20gfCA0NCArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNDMgaW5z ZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9sbHZt LnNjbSBiL2dudS9wYWNrYWdlcy9sbHZtLnNjbQppbmRleCBkZTk2NGIwMjBkLi41NDJhNTUzNDAw IDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvbGx2bS5zY20KKysrIGIvZ251L3BhY2thZ2VzL2xs dm0uc2NtCkBAIC05Myw2ICs5MywyMiBAQCBhcyBcIng4Nl82NC1saW51eFwiLiIKICAgKHN0cmlu Zy1hcHBlbmQgImh0dHBzOi8vZ2l0aHViLmNvbS9sbHZtL2xsdm0tcHJvamVjdC9yZWxlYXNlcy9k b3dubG9hZCIKICAgICAgICAgICAgICAgICAgIi9sbHZtb3JnLSIgdmVyc2lvbiAiLyIgY29tcG9u ZW50ICItIiB2ZXJzaW9uICIuc3JjLnRhci54eiIpKQogCisoZGVmaW5lKiAobGx2bS1zdWJwcm9q ZWN0cy1vcmlnaW4gY29tcG9uZW50cyB2ZXJzaW9uIGJhc2UzMi1oYXNoCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIzpvcHRpb25hbCAocGF0Y2hlcyAnKCkpKQorICAob3JpZ2lu CisgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCisgICAgKHVyaSAobGx2bS11cmkgImxsdm0tcHJvamVj dCIgdmVyc2lvbikpCisgICAgKHNoYTI1NiBiYXNlMzItaGFzaCkKKyAgICAocGF0Y2hlcyAobWFw IHNlYXJjaC1wYXRjaCBwYXRjaGVzKSkKKyAgICAobW9kdWxlcyAnKChndWl4IGJ1aWxkIHV0aWxz KQorICAgICAgICAgICAgICAgKGljZS05IGZ0dykpKQorICAgIChzbmlwcGV0CisgICAgIGAoZm9y LWVhY2gKKyAgICAgICAobGFtYmRhIChmaWxlKQorICAgICAgICAgKHVubGVzcyAobWVtYmVyIGZp bGUgJygiLiIgIi4uIiAsQGNvbXBvbmVudHMpKQorICAgICAgICAgICAoZGVsZXRlLWZpbGUtcmVj dXJzaXZlbHkgZmlsZSkpKQorICAgICAgIChzY2FuZGlyICIuIikpKSkpCisKIChkZWZpbmUqIChj bGFuZy1ydW50aW1lLWZyb20tbGx2bSBsbHZtIGhhc2gKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAjOm9wdGlvbmFsIChwYXRjaGVzICcoKSkpCiAgIChwYWNrYWdlCkBAIC05MTgs NyArOTM0LDcgQEAgb2YgcHJvZ3JhbW1pbmcgdG9vbHMgYXMgd2VsbCBhcyBsaWJyYXJpZXMgd2l0 aCBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkuIikKICAgICAgICAgICAgICAgICAgICxAKHBhY2th Z2UtcHJvcGVydGllcyBsbHZtLTEyKSkpKSkKIAogDAotKGRlZmluZS1wdWJsaWMgbGxkCisoZGVm aW5lLXB1YmxpYyBsbGQtMTEKICAgKHBhY2thZ2UKICAgICAobmFtZSAibGxkIikKICAgICAodmVy c2lvbiAiMTEuMC4wIikKQEAgLTk0Miw2ICs5NTgsMzIgQEAgb2YgcHJvZ3JhbW1pbmcgdG9vbHMg YXMgd2VsbCBhcyBsaWJyYXJpZXMgd2l0aCBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkuIikKIGNv bXBvbmVudHMgd2hpY2ggaGlnaGx5IGxldmVyYWdlIGV4aXN0aW5nIGxpYnJhcmllcyBpbiB0aGUg bGFyZ2VyIExMVk0gUHJvamVjdC4iKQogICAgIChsaWNlbnNlIGxpY2Vuc2U6YXNsMi4wKSkpIDsg V2l0aCBMTFZNIGV4Y2VwdGlvbgogCisoZGVmaW5lICVsbHZtLXByb2plY3QtMTItaGFzaAorICAo YmFzZTMyICIwM3BzN2FrdmJreHhhNHh6YWw0OXY3bHczYno0MXptanNwNmZhN2NzbHhybnM1ZmI1 NzBqIikpCisKKyhkZWZpbmUtcHVibGljIGxsZC0xMgorICAocGFja2FnZQorICAgIChpbmhlcml0 IGxsZC0xMSkKKyAgICAodmVyc2lvbiAiMTIuMC4xIikKKyAgICAoc291cmNlIChsbHZtLXN1YnBy b2plY3RzLW9yaWdpbiAnKCJsbGQiICJsaWJ1bndpbmQiKSB2ZXJzaW9uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJWxsdm0tcHJvamVjdC0xMi1oYXNoKSkKKyAgICAoYXJn dW1lbnRzCisgICAgIGAoLEAocGFja2FnZS1hcmd1bWVudHMgbGxkLTExKQorICAgICAgICM6cGhh c2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcworICAgICAgICAgKGFk ZC1hZnRlciAndW5wYWNrICdkaXNzZWN0CisgICAgICAgICAgIChsYW1iZGEgXworICAgICAgICAg ICAgIDs7IEZpbmQgbGlidW53aW5kIGluIHVucGFja2VkIHNvdXJjZXMKKyAgICAgICAgICAgICAo c3Vic3RpdHV0ZSogImxsZC9NYWNoTy9DTWFrZUxpc3RzLnR4dCIKKyAgICAgICAgICAgICAgICgo IlxcJFxce0xMVk1fTUFJTl9TUkNfRElSXFx9L1xcLlxcLi9saWJ1bndpbmQiKQorICAgICAgICAg ICAgICAgIChzdHJpbmctYXBwZW5kIChnZXRjd2QpICIvbGlidW53aW5kIikpKQorICAgICAgICAg ICAgIDs7IGNoZGlyIHRvIGFjdHVhbCBzb3VyY2UgZm9sZGVyCisgICAgICAgICAgICAgKGNoZGly ICJsbGQiKSkpKSkpCisgICAgKGlucHV0cworICAgICBgKCgibGx2bSIgLGxsdm0tMTIpKSkpKQor CisoZGVmaW5lLXB1YmxpYyBsbGQgbGxkLTExKQorCiAoZGVmaW5lLXB1YmxpYyBsbGRiCiAgIChw YWNrYWdlCiAgICAgKG5hbWUgImxsZGIiKQotLSAKMi4zMy4wCgo= --=-7fRrHtBzNGkQVuWOI6v/ Content-Disposition: attachment; filename="v4-0002-gnu-Add-zig.patch" Content-Type: text/x-patch; name="v4-0002-gnu-Add-zig.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBlZTJkYTA3ZmRkM2ZkMWE3OTIyMzczMmM0M2NmYzZhYzAxNWNiZjlmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMaWxpYW5hIFByaWtsZXIgPGxpbGlhbmEucHJpa2xlckBnbWFp bC5jb20+CkRhdGU6IFRodSwgOSBTZXAgMjAyMSAxNTozMjoyMiArMDIwMApTdWJqZWN0OiBbUEFU Q0ggdjQgMi8yXSBnbnU6IEFkZCB6aWcuCgoqIGdudS9wYWNrYWdlcy9wYXRjaGVzL3ppZy1kaXNh YmxlLWxpYmMtbm90ZS10ZXN0LnBhdGNoLApnbnUvcGFja2FnZXMvcGF0Y2hlcy96aWctdXNlLXN5 c3RlbS1wYXRocy5wYXRjaDogTmV3IGZpbGVzLgoqIGdudS9wYWNrYWdlcy96aWcuc2NtOiBOZXcg ZmlsZS4KKiBnbnUvbG9jYWwubWsgKEdOVV9TWVNURU1fTU9EVUxFUywgZGlzdF9wYXRjaF9EQVRB KTogQWRqdXN0IGFjY29yZGluZ2x5LgotLS0KIGdudS9sb2NhbC5tayAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgMyArCiAuLi4vcGF0Y2hlcy96aWctZGlzYWJsZS1saWJjLW5v dGUtdGVzdC5wYXRjaCAgfCAgMzEgKysrKwogLi4uL3BhdGNoZXMvemlnLXVzZS1zeXN0ZW0tcGF0 aHMucGF0Y2ggICAgICAgIHwgMTQzICsrKysrKysrKysrKysrKysrKwogZ251L3BhY2thZ2VzL3pp Zy5zY20gICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTA0ICsrKysrKysrKysrKysKIDQgZmls ZXMgY2hhbmdlZCwgMjgxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnbnUvcGFj a2FnZXMvcGF0Y2hlcy96aWctZGlzYWJsZS1saWJjLW5vdGUtdGVzdC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGdudS9wYWNrYWdlcy9wYXRjaGVzL3ppZy11c2Utc3lzdGVtLXBhdGhzLnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgZ251L3BhY2thZ2VzL3ppZy5zY20KCmRpZmYgLS1naXQgYS9n bnUvbG9jYWwubWsgYi9nbnUvbG9jYWwubWsKaW5kZXggMGUyNGQzNWM0Mi4uMDA5N2E5OWIyZSAx MDA2NDQKLS0tIGEvZ251L2xvY2FsLm1rCisrKyBiL2dudS9sb2NhbC5tawpAQCAtNTk4LDYgKzU5 OCw3IEBAIEdOVV9TWVNURU1fTU9EVUxFUyA9CQkJCVwKICAgJUQlL3BhY2thZ2VzL3hkaXNvcmcu c2NtCQkJXAogICAlRCUvcGFja2FnZXMveG9yZy5zY20JCQkJXAogICAlRCUvcGFja2FnZXMveGZj ZS5zY20JCQkJXAorICAlRCUvcGFja2FnZXMvemlnLnNjbQkJCQlcCiAgICVEJS9wYWNrYWdlcy96 aWxlLnNjbQkJCQlcCiAgICVEJS9wYWNrYWdlcy96d2F2ZS5zY20JCQlcCiAJCQkJCQlcCkBAIC0x OTA0LDYgKzE5MDUsOCBAQCBkaXN0X3BhdGNoX0RBVEEgPQkJCQkJCVwKICAgJUQlL3BhY2thZ2Vz L3BhdGNoZXMveXRmemYtdXBkYXRlcy5wYXRjaCAgICAgICAgXAogICAlRCUvcGFja2FnZXMvcGF0 Y2hlcy95dG5lZi1DVkUtMjAyMS0zNDAzLnBhdGNoCVwKICAgJUQlL3BhY2thZ2VzL3BhdGNoZXMv eXRuZWYtQ1ZFLTIwMjEtMzQwNC5wYXRjaAlcCisgICVEJS9wYWNrYWdlcy9wYXRjaGVzL3ppZy1k aXNhYmxlLWxpYmMtbm90ZS10ZXN0LnBhdGNoICAgICAgICAgXAorICAlRCUvcGFja2FnZXMvcGF0 Y2hlcy96aWctdXNlLXN5c3RlbS1wYXRocy5wYXRjaAkgICAgICAgIFwKICAgJUQlL3BhY2thZ2Vz L3BhdGNoZXMvenN0ZC1DVkUtMjAyMS0yNDAzMV9DVkUtMjAyMS0yNDAzMi5wYXRjaAlcCiAgICVE JS9wYWNrYWdlcy9wYXRjaGVzL3p6aXBsaWItQ1ZFLTIwMTgtMTY1NDgucGF0Y2gKIApkaWZmIC0t Z2l0IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvemlnLWRpc2FibGUtbGliYy1ub3RlLXRlc3QucGF0 Y2ggYi9nbnUvcGFja2FnZXMvcGF0Y2hlcy96aWctZGlzYWJsZS1saWJjLW5vdGUtdGVzdC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45NzFhZTUzOTEyCi0tLSAv ZGV2L251bGwKKysrIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvemlnLWRpc2FibGUtbGliYy1ub3Rl LXRlc3QucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorVGhpcyB0ZXN0IGZhaWxzIHdpdGggImVycm9y LkNvbXBpbGF0aW9uSW5jb3JyZWN0bHlTdWNjZWVkZWQiLgorCitkaWZmIC0tZ2l0IGEvdGVzdC9j b21waWxlX2Vycm9ycy56aWcgYi90ZXN0L2NvbXBpbGVfZXJyb3JzLnppZworaW5kZXggZmQxMjU1 Yy4uMjBkNTU0OCAxMDA2NDQKKy0tLSBhL3Rlc3QvY29tcGlsZV9lcnJvcnMuemlnCisrKysgYi90 ZXN0L2NvbXBpbGVfZXJyb3JzLnppZworQEAgLTI3NTEsMTUgKzI3NTEsMTUgQEAgcHViIGZuIGFk ZENhc2VzKGNhc2VzOiAqdGVzdHMuQ29tcGlsZUVycm9yQ29udGV4dCkgdm9pZCB7CisgICAgICAg ICAgICAgInRtcC56aWc6Mzo1OiBlcnJvcjogZGVwZW5kZW5jeSBvbiBsaWJjIG11c3QgYmUgZXhw bGljaXRseSBzcGVjaWZpZWQgaW4gdGhlIGJ1aWxkIGNvbW1hbmQiLAorICAgICAgICAgfSk7Cisg CistICAgICAgICBjYXNlcy5hZGRUZXN0KCJsaWJjIGhlYWRlcnMgbm90ZSIsCistICAgICAgICAg ICAgXFxjb25zdCBjID0gQGNJbXBvcnQoQGNJbmNsdWRlKCJzdGRpby5oIikpOworLSAgICAgICAg ICAgIFxcZXhwb3J0IGZuIGVudHJ5KCkgdm9pZCB7CistICAgICAgICAgICAgXFwgICAgXyA9IGMu cHJpbnRmKCJoZWxsbywgd29ybGQhXG4iKTsKKy0gICAgICAgICAgICBcXH0KKy0gICAgICAgICwg JltfXVtdY29uc3QgdTh7CistICAgICAgICAgICAgInRtcC56aWc6MToxMTogZXJyb3I6IEMgaW1w b3J0IGZhaWxlZCIsCistICAgICAgICAgICAgInRtcC56aWc6MToxMTogbm90ZTogbGliYyBoZWFk ZXJzIG5vdCBhdmFpbGFibGU7IGNvbXBpbGF0aW9uIGRvZXMgbm90IGxpbmsgYWdhaW5zdCBsaWJj IiwKKy0gICAgICAgIH0pOworKy8vICAgICAgICBjYXNlcy5hZGRUZXN0KCJsaWJjIGhlYWRlcnMg bm90ZSIsCisrLy8gICAgICAgICAgICBcXGNvbnN0IGMgPSBAY0ltcG9ydChAY0luY2x1ZGUoInN0 ZGlvLmgiKSk7CisrLy8gICAgICAgICAgICBcXGV4cG9ydCBmbiBlbnRyeSgpIHZvaWQgeworKy8v ICAgICAgICAgICAgXFwgICAgXyA9IGMucHJpbnRmKCJoZWxsbywgd29ybGQhXG4iKTsKKysvLyAg ICAgICAgICAgIFxcfQorKy8vICAgICAgICAsICZbX11bXWNvbnN0IHU4eworKy8vICAgICAgICAg ICAgInRtcC56aWc6MToxMTogZXJyb3I6IEMgaW1wb3J0IGZhaWxlZCIsCisrLy8gICAgICAgICAg ICAidG1wLnppZzoxOjExOiBub3RlOiBsaWJjIGhlYWRlcnMgbm90IGF2YWlsYWJsZTsgY29tcGls YXRpb24gZG9lcyBub3QgbGluayBhZ2FpbnN0IGxpYmMiLAorKy8vICAgICAgICB9KTsKKyAgICAg fQorIAorICAgICBjYXNlcy5hZGRUZXN0KCJjb21wdGltZSB2ZWN0b3Igb3ZlcmZsb3cgc2hvd3Mg dGhlIGluZGV4IiwKZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy9wYXRjaGVzL3ppZy11c2Utc3lz dGVtLXBhdGhzLnBhdGNoIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvemlnLXVzZS1zeXN0ZW0tcGF0 aHMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWQxMjJkYWMy MgotLS0gL2Rldi9udWxsCisrKyBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL3ppZy11c2Utc3lzdGVt LXBhdGhzLnBhdGNoCkBAIC0wLDAgKzEsMTQzIEBACitUaGlzIHBhdGNoIHJlcGxhY2VzIHRoZSBP Uy1zcGVjaWZpYyBkZXRlY3Rpb24gbWVjaGFuaXNtIGJ5IG9uZSB0aGF0IHNvbGVseQorcmVsaWVz IG9uIGVudmlyb25tZW50IHZhcmlhYmxlcy4gIFRoaXMgaGFzIHRoZSBiZW5lZml0IHRoYXQgc2Fp ZCBlbnZpcm9ubWVudAordmFyaWFibGVzIGNhbiBiZSB1c2VkIGFzIHNlYXJjaCBwYXRocyBpbiBH dWl4LgorCitJbmRleDogemlnLTAuOC4xL2xpYi9zdGQvemlnL3N5c3RlbS56aWcKKz09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKy0tLSB6aWctMC44LjEub3JpZy9saWIvc3RkL3ppZy9zeXN0ZW0uemlnCisrKysgemlnLTAu OC4xL2xpYi9zdGQvemlnL3N5c3RlbS56aWcKK0BAIC0zOSwxMDEgKzM5LDU3IEBAIHB1YiBjb25z dCBOYXRpdmVQYXRocyA9IHN0cnVjdCB7CisgICAgICAgICB9OworICAgICAgICAgZXJyZGVmZXIg c2VsZi5kZWluaXQoKTsKKyAKKy0gICAgICAgIHZhciBpc19uaXggPSBmYWxzZTsKKy0gICAgICAg IGlmIChwcm9jZXNzLmdldEVudlZhck93bmVkKGFsbG9jYXRvciwgIk5JWF9DRkxBR1NfQ09NUElM RSIpKSB8bml4X2NmbGFnc19jb21waWxlfCB7CistICAgICAgICAgICAgZGVmZXIgYWxsb2NhdG9y LmZyZWUobml4X2NmbGFnc19jb21waWxlKTsKKy0KKy0gICAgICAgICAgICBpc19uaXggPSB0cnVl OworLSAgICAgICAgICAgIHZhciBpdCA9IG1lbS50b2tlbml6ZShuaXhfY2ZsYWdzX2NvbXBpbGUs ICIgIik7CisrICAgICAgICAvLyBUT0RPOiBTdXBwb3J0IGNyb3NzLWNvbXBpbGUgcGF0aHM/Cisr ICAgICAgICBpZiAocHJvY2Vzcy5nZXRFbnZWYXJPd25lZChhbGxvY2F0b3IsICJDX0lOQ0xVREVf UEFUSCIpKSB8Y19pbmNsdWRlX3BhdGh8IHsKKysgICAgICAgICAgICBkZWZlciBhbGxvY2F0b3Iu ZnJlZShjX2luY2x1ZGVfcGF0aCk7CisrICAgICAgICAgICAgdmFyIGl0ID0gbWVtLnRva2VuaXpl KGNfaW5jbHVkZV9wYXRoLCAiOiIpOworICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CistICAg ICAgICAgICAgICAgIGNvbnN0IHdvcmQgPSBpdC5uZXh0KCkgb3JlbHNlIGJyZWFrOworLSAgICAg ICAgICAgICAgICBpZiAobWVtLmVxbCh1OCwgd29yZCwgIi1pc3lzdGVtIikpIHsKKy0gICAgICAg ICAgICAgICAgICAgIGNvbnN0IGluY2x1ZGVfcGF0aCA9IGl0Lm5leHQoKSBvcmVsc2UgeworLSAg ICAgICAgICAgICAgICAgICAgICAgIHRyeSBzZWxmLmFkZFdhcm5pbmcoIkV4cGVjdGVkIGFyZ3Vt ZW50IGFmdGVyIC1pc3lzdGVtIGluIE5JWF9DRkxBR1NfQ09NUElMRSIpOworLSAgICAgICAgICAg ICAgICAgICAgICAgIGJyZWFrOworLSAgICAgICAgICAgICAgICAgICAgfTsKKy0gICAgICAgICAg ICAgICAgICAgIHRyeSBzZWxmLmFkZEluY2x1ZGVEaXIoaW5jbHVkZV9wYXRoKTsKKy0gICAgICAg ICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgICAgIGlmIChtZW0uc3RhcnRzV2l0 aCh1OCwgd29yZCwgIi1mcmFuZG9tLXNlZWQ9IikpIHsKKy0gICAgICAgICAgICAgICAgICAgICAg ICBjb250aW51ZTsKKy0gICAgICAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgICAg IHRyeSBzZWxmLmFkZFdhcm5pbmdGbXQoIlVucmVjb2duaXplZCBDIGZsYWcgZnJvbSBOSVhfQ0ZM QUdTX0NPTVBJTEU6IHtzfSIsIC57d29yZH0pOworLSAgICAgICAgICAgICAgICB9CisrICAgICAg ICAgICAgICAgIGNvbnN0IGRpciA9IGl0Lm5leHQoKSBvcmVsc2UgYnJlYWs7CisrICAgICAgICAg ICAgICAgIHRyeSBzZWxmLmFkZEluY2x1ZGVEaXIoZGlyKTsKKyAgICAgICAgICAgICB9CisgICAg ICAgICB9IGVsc2UgfGVycnwgc3dpdGNoIChlcnIpIHsKKyAgICAgICAgICAgICBlcnJvci5JbnZh bGlkVXRmOCA9PiB7fSwKKyAgICAgICAgICAgICBlcnJvci5FbnZpcm9ubWVudFZhcmlhYmxlTm90 Rm91bmQgPT4ge30sCisgICAgICAgICAgICAgZXJyb3IuT3V0T2ZNZW1vcnkgPT4gfGV8IHJldHVy biBlLAorICAgICAgICAgfQorLSAgICAgICAgaWYgKHByb2Nlc3MuZ2V0RW52VmFyT3duZWQoYWxs b2NhdG9yLCAiTklYX0xERkxBR1MiKSkgfG5peF9sZGZsYWdzfCB7CistICAgICAgICAgICAgZGVm ZXIgYWxsb2NhdG9yLmZyZWUobml4X2xkZmxhZ3MpOworIAorLSAgICAgICAgICAgIGlzX25peCA9 IHRydWU7CistICAgICAgICAgICAgdmFyIGl0ID0gbWVtLnRva2VuaXplKG5peF9sZGZsYWdzLCAi ICIpOworKyAgICAgICAgaWYgKHByb2Nlc3MuZ2V0RW52VmFyT3duZWQoYWxsb2NhdG9yLCAiQ1BM VVNfSU5DTFVERV9QQVRIIikpIHxjcGx1c19pbmNsdWRlX3BhdGh8IHsKKysgICAgICAgICAgICBk ZWZlciBhbGxvY2F0b3IuZnJlZShjcGx1c19pbmNsdWRlX3BhdGgpOworKyAgICAgICAgICAgIHZh ciBpdCA9IG1lbS50b2tlbml6ZShjcGx1c19pbmNsdWRlX3BhdGgsICI6Iik7CisgICAgICAgICAg ICAgd2hpbGUgKHRydWUpIHsKKy0gICAgICAgICAgICAgICAgY29uc3Qgd29yZCA9IGl0Lm5leHQo KSBvcmVsc2UgYnJlYWs7CistICAgICAgICAgICAgICAgIGlmIChtZW0uZXFsKHU4LCB3b3JkLCAi LXJwYXRoIikpIHsKKy0gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJwYXRoID0gaXQubmV4dCgp IG9yZWxzZSB7CistICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHNlbGYuYWRkV2FybmluZygi RXhwZWN0ZWQgYXJndW1lbnQgYWZ0ZXIgLXJwYXRoIGluIE5JWF9MREZMQUdTIik7CistICAgICAg ICAgICAgICAgICAgICAgICAgYnJlYWs7CistICAgICAgICAgICAgICAgICAgICB9OworLSAgICAg ICAgICAgICAgICAgICAgdHJ5IHNlbGYuYWRkUlBhdGgocnBhdGgpOworLSAgICAgICAgICAgICAg ICB9IGVsc2UgaWYgKHdvcmQubGVuID4gMiBhbmQgd29yZFswXSA9PSAnLScgYW5kIHdvcmRbMV0g PT0gJ0wnKSB7CistICAgICAgICAgICAgICAgICAgICBjb25zdCBsaWJfcGF0aCA9IHdvcmRbMi4u XTsKKy0gICAgICAgICAgICAgICAgICAgIHRyeSBzZWxmLmFkZExpYkRpcihsaWJfcGF0aCk7Cist ICAgICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAgICAgICB0cnkgc2VsZi5h ZGRXYXJuaW5nRm10KCJVbnJlY29nbml6ZWQgQyBmbGFnIGZyb20gTklYX0xERkxBR1M6IHtzfSIs IC57d29yZH0pOworLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CistICAgICAgICAgICAgICAg IH0KKysgICAgICAgICAgICAgICAgY29uc3QgZGlyID0gaXQubmV4dCgpIG9yZWxzZSBicmVhazsK KysgICAgICAgICAgICAgICAgdHJ5IHNlbGYuYWRkSW5jbHVkZURpcihkaXIpOworICAgICAgICAg ICAgIH0KKyAgICAgICAgIH0gZWxzZSB8ZXJyfCBzd2l0Y2ggKGVycikgeworICAgICAgICAgICAg IGVycm9yLkludmFsaWRVdGY4ID0+IHt9LAorICAgICAgICAgICAgIGVycm9yLkVudmlyb25tZW50 VmFyaWFibGVOb3RGb3VuZCA9PiB7fSwKKyAgICAgICAgICAgICBlcnJvci5PdXRPZk1lbW9yeSA9 PiB8ZXwgcmV0dXJuIGUsCisgICAgICAgICB9CistICAgICAgICBpZiAoaXNfbml4KSB7CistICAg ICAgICAgICAgcmV0dXJuIHNlbGY7CistICAgICAgICB9CistCistICAgICAgICBpZiAoY29tcHRp bWUgVGFyZ2V0LmN1cnJlbnQuaXNEYXJ3aW4oKSkgeworLSAgICAgICAgICAgIHRyeSBzZWxmLmFk ZEluY2x1ZGVEaXIoIi91c3IvaW5jbHVkZSIpOworLSAgICAgICAgICAgIHRyeSBzZWxmLmFkZElu Y2x1ZGVEaXIoIi91c3IvbG9jYWwvaW5jbHVkZSIpOworIAorLSAgICAgICAgICAgIHRyeSBzZWxm LmFkZExpYkRpcigiL3Vzci9saWIiKTsKKy0gICAgICAgICAgICB0cnkgc2VsZi5hZGRMaWJEaXIo Ii91c3IvbG9jYWwvbGliIik7CistCistICAgICAgICAgICAgdHJ5IHNlbGYuYWRkRnJhbWV3b3Jr RGlyKCIvTGlicmFyeS9GcmFtZXdvcmtzIik7CistICAgICAgICAgICAgdHJ5IHNlbGYuYWRkRnJh bWV3b3JrRGlyKCIvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3JrcyIpOworLQorLSAgICAgICAgICAg IHJldHVybiBzZWxmOworKyAgICAgICAgaWYgKHByb2Nlc3MuZ2V0RW52VmFyT3duZWQoYWxsb2Nh dG9yLCAiTElCUkFSWV9QQVRIIikpIHxsaWJyYXJ5X3BhdGh8IHsKKysgICAgICAgICAgICBkZWZl ciBhbGxvY2F0b3IuZnJlZShsaWJyYXJ5X3BhdGgpOworKyAgICAgICAgICAgIHZhciBpdCA9IG1l bS50b2tlbml6ZShsaWJyYXJ5X3BhdGgsICI6Iik7CisrICAgICAgICAgICAgd2hpbGUgKHRydWUp IHsKKysgICAgICAgICAgICAgICAgY29uc3QgZGlyID0gaXQubmV4dCgpIG9yZWxzZSBicmVhazsK KysgICAgICAgICAgICAgICAgdHJ5IHNlbGYuYWRkTGliRGlyKGRpcik7CisrICAgICAgICAgICAg fQorKyAgICAgICAgfSBlbHNlIHxlcnJ8IHN3aXRjaCAoZXJyKSB7CisrICAgICAgICAgICAgZXJy b3IuSW52YWxpZFV0ZjggPT4ge30sCisrICAgICAgICAgICAgZXJyb3IuRW52aXJvbm1lbnRWYXJp YWJsZU5vdEZvdW5kID0+IHt9LAorKyAgICAgICAgICAgIGVycm9yLk91dE9mTWVtb3J5ID0+IHxl fCByZXR1cm4gZSwKKyAgICAgICAgIH0KKyAKKy0gICAgICAgIGlmIChuYXRpdmVfdGFyZ2V0Lm9z LnRhZyAhPSAud2luZG93cykgeworLSAgICAgICAgICAgIGNvbnN0IHRyaXBsZSA9IHRyeSBuYXRp dmVfdGFyZ2V0LmxpbnV4VHJpcGxlKGFsbG9jYXRvcik7CistICAgICAgICAgICAgY29uc3QgcXVh bCA9IG5hdGl2ZV90YXJnZXQuY3B1LmFyY2gucHRyQml0V2lkdGgoKTsKKy0KKy0gICAgICAgICAg ICAvLyBUT0RPOiAkIGxkIC0tdmVyYm9zZSB8IGdyZXAgU0VBUkNIX0RJUgorLSAgICAgICAgICAg IC8vIHRoZSBvdXRwdXQgY29udGFpbnMgc29tZSBwYXRocyB0aGF0IGVuZCB3aXRoIGxpYjY0LCBt YXliZSBpbmNsdWRlIHRoZW0gdG9vPworLSAgICAgICAgICAgIC8vIFRPRE86IHdoYXQgaXMgdGhl IGJlc3QgcG9zc2libGUgb3JkZXIgb2YgdGhpbmdzPworLSAgICAgICAgICAgIC8vIFRPRE86IHNv bWUgb2YgdGhlc2UgYXJlIHN1c3BlY3QgYW5kIHNob3VsZCBvbmx5IGJlIGFkZGVkIG9uIHNvbWUg c3lzdGVtcy4gYXVkaXQgbmVlZGVkLgorLQorLSAgICAgICAgICAgIHRyeSBzZWxmLmFkZEluY2x1 ZGVEaXIoIi91c3IvbG9jYWwvaW5jbHVkZSIpOworLSAgICAgICAgICAgIHRyeSBzZWxmLmFkZExp YkRpckZtdCgiL3Vzci9sb2NhbC9saWJ7ZH0iLCAue3F1YWx9KTsKKy0gICAgICAgICAgICB0cnkg c2VsZi5hZGRMaWJEaXIoIi91c3IvbG9jYWwvbGliIik7CistCistICAgICAgICAgICAgdHJ5IHNl bGYuYWRkSW5jbHVkZURpckZtdCgiL3Vzci9pbmNsdWRlL3tzfSIsIC57dHJpcGxlfSk7CistICAg ICAgICAgICAgdHJ5IHNlbGYuYWRkTGliRGlyRm10KCIvdXNyL2xpYi97c30iLCAue3RyaXBsZX0p OworLQorLSAgICAgICAgICAgIHRyeSBzZWxmLmFkZEluY2x1ZGVEaXIoIi91c3IvaW5jbHVkZSIp OworLSAgICAgICAgICAgIHRyeSBzZWxmLmFkZExpYkRpckZtdCgiL2xpYntkfSIsIC57cXVhbH0p OworLSAgICAgICAgICAgIHRyeSBzZWxmLmFkZExpYkRpcigiL2xpYiIpOworLSAgICAgICAgICAg IHRyeSBzZWxmLmFkZExpYkRpckZtdCgiL3Vzci9saWJ7ZH0iLCAue3F1YWx9KTsKKy0gICAgICAg ICAgICB0cnkgc2VsZi5hZGRMaWJEaXIoIi91c3IvbGliIik7CistCistICAgICAgICAgICAgLy8g ZXhhbXBsZTogb24gYSA2NC1iaXQgZGViaWFuLWJhc2VkIGxpbnV4IGRpc3Rybywgd2l0aCB6bGli IGluc3RhbGxlZCBmcm9tIGFwdDoKKy0gICAgICAgICAgICAvLyB6bGliLmggaXMgaW4gL3Vzci9p bmNsdWRlIChhZGRlZCBhYm92ZSkKKy0gICAgICAgICAgICAvLyBsaWJ6LnNvLjEgaXMgaW4gL2xp Yi94ODZfNjQtbGludXgtZ251IChhZGRlZCBoZXJlKQorLSAgICAgICAgICAgIHRyeSBzZWxmLmFk ZExpYkRpckZtdCgiL2xpYi97c30iLCAue3RyaXBsZX0pOworKyAgICAgICAgaWYgKHByb2Nlc3Mu Z2V0RW52VmFyT3duZWQoYWxsb2NhdG9yLCAiRFlMRF9GUkFNRVdPUktfUEFUSCIpKSB8ZHlsZF9m cmFtZXdvcmtfcGF0aHwgeworKyAgICAgICAgICAgIGRlZmVyIGFsbG9jYXRvci5mcmVlKGR5bGRf ZnJhbWV3b3JrX3BhdGgpOworKyAgICAgICAgICAgIHZhciBpdCA9IG1lbS50b2tlbml6ZShkeWxk X2ZyYW1ld29ya19wYXRoLCAiOiIpOworKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisrICAg ICAgICAgICAgICAgIGNvbnN0IGRpciA9IGl0Lm5leHQoKSBvcmVsc2UgYnJlYWs7CisrICAgICAg ICAgICAgICAgIHRyeSBzZWxmLmFkZEZyYW1ld29ya0RpcihkaXIpOworKyAgICAgICAgICAgIH0K KysgICAgICAgIH0gZWxzZSB8ZXJyfCBzd2l0Y2ggKGVycikgeworKyAgICAgICAgICAgIGVycm9y LkludmFsaWRVdGY4ID0+IHt9LAorKyAgICAgICAgICAgIGVycm9yLkVudmlyb25tZW50VmFyaWFi bGVOb3RGb3VuZCA9PiB7fSwKKysgICAgICAgICAgICBlcnJvci5PdXRPZk1lbW9yeSA9PiB8ZXwg cmV0dXJuIGUsCisgICAgICAgICB9CisgCisgICAgICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdp dCBhL2dudS9wYWNrYWdlcy96aWcuc2NtIGIvZ251L3BhY2thZ2VzL3ppZy5zY20KbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZWY1ZmUwNGM4NgotLS0gL2Rldi9udWxsCisr KyBiL2dudS9wYWNrYWdlcy96aWcuc2NtCkBAIC0wLDAgKzEsMTA0IEBACis7OzsgR05VIEd1aXgg LS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKKzs7OyBDb3B5cmlnaHQg wqkgMjAyMSBMaWxpYW5hIFByaWtsZXIgPGxpbGlhbmEucHJpa2xlckBnbWFpbC5jb20+Cis7Ozsg Q29weXJpZ2h0IMKpIDIwMjEgU2FyYWggTW9yZ2Vuc2VuIDxpc2thcmlhbkBtZ3NuLmRldj4KKzs7 OworOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7Cis7OzsgR05VIEd1aXgg aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBp dAorOzs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug YXMgcHVibGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7 IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7IE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorOzs7Cis7OzsgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKzs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251 Lm9yZy9saWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ251IHBhY2thZ2VzIHppZykKKyAg Izp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQorICAjOnVzZS1tb2R1bGUgKGd1aXggZ2l0LWRv d25sb2FkKQorICAjOnVzZS1tb2R1bGUgKChndWl4IGxpY2Vuc2VzKSAjOnByZWZpeCBsaWNlbnNl OikKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBjbWFrZSkKKyAgIzp1c2UtbW9k dWxlIChnbnUgcGFja2FnZXMpCisgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGxsdm0pKQor CisoZGVmaW5lLXB1YmxpYyB6aWcKKyAgKHBhY2thZ2UKKyAgICAobmFtZSAiemlnIikKKyAgICAo dmVyc2lvbiAiMC44LjEiKQorICAgIChzb3VyY2UKKyAgICAgKG9yaWdpbgorICAgICAgIChtZXRo b2QgZ2l0LWZldGNoKQorICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAgICAgICAo dXJsICJodHRwczovL2dpdGh1Yi5jb20vemlnbGFuZy96aWcuZ2l0IikKKyAgICAgICAgICAgICAo Y29tbWl0IHZlcnNpb24pKSkKKyAgICAgICAoZmlsZS1uYW1lIChnaXQtZmlsZS1uYW1lIG5hbWUg dmVyc2lvbikpCisgICAgICAgKHNoYTI1NgorICAgICAgICAoYmFzZTMyICIxNDdxeDd4Z2owcjM1 M3doNXJhZ3puNmttbTF2cmYzMWk4MDM4ejN6cXdqbnFxZ3F4aTZjIikpCisgICAgICAgKHBhdGNo ZXMKKyAgICAgICAgKHNlYXJjaC1wYXRjaGVzCisgICAgICAgICAiemlnLWRpc2FibGUtbGliYy1u b3RlLXRlc3QucGF0Y2giCisgICAgICAgICAiemlnLXVzZS1zeXN0ZW0tcGF0aHMucGF0Y2giKSkp KQorICAgIChidWlsZC1zeXN0ZW0gY21ha2UtYnVpbGQtc3lzdGVtKQorICAgIChpbnB1dHMKKyAg ICAgYCgoImNsYW5nIiAsY2xhbmctMTIpIDsgQ2xhbmcgcHJvcGFnYXRlcyBsbHZtLgorICAgICAg ICgibGxkIiAsbGxkLTEyKSkpCisgICAgOzsgWmlnIGNvbXBpbGVzIGZpbmUgd2l0aCBHQ0MsIGJ1 dCBhbHNvIG5lZWRzIG5hdGl2ZSBMTFZNIGxpYnJhcmllcy4KKyAgICAobmF0aXZlLWlucHV0cwor ICAgICBgKCgibGx2bSIgLGxsdm0tMTIpKSkKKyAgICAoYXJndW1lbnRzCisgICAgIGAoIzpjb25m aWd1cmUtZmxhZ3MKKyAgICAgICAobGlzdCAsQChpZiAoJWN1cnJlbnQtdGFyZ2V0LXN5c3RlbSkK KyAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiLURaSUdfVEFSR0VUX1RSSVBMRT0i CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCVjdXJyZW50LXRhcmdldC1zeXN0 ZW0pKQorICAgICAgICAgICAgICAgICAgICcoKSkpCisgICAgICAgIzpvdXQtb2Ytc291cmNlPyAj ZiA7IGZvciB0ZXN0cworICAgICAgICM6cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0 YW5kYXJkLXBoYXNlcworICAgICAgICAgKGFkZC1hZnRlciAnY29uZmlndXJlICdzZXQtY2FjaGUt ZGlyCisgICAgICAgICAgIChsYW1iZGEgXworICAgICAgICAgICAgIDs7IFNldCBjYWNoZSBkaXIs IG90aGVyd2lzZSBaaWcgbG9va3MgZm9yIGAkSE9NRS8uY2FjaGUnLgorICAgICAgICAgICAgIChz ZXRlbnYgIlpJR19HTE9CQUxfQ0FDSEVfRElSIgorICAgICAgICAgICAgICAgICAgICAgKHN0cmlu Zy1hcHBlbmQgKGdldGN3ZCkgIi96aWctY2FjaGUiKSkpKQorICAgICAgICAgKGRlbGV0ZSAnY2hl Y2spCisgICAgICAgICAoYWRkLWFmdGVyICdpbnN0YWxsICdjaGVjaworICAgICAgICAgICAobGFt YmRhKiAoIzprZXkgb3V0cHV0cyB0ZXN0cz8gIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAg ICAgICh3aGVuIHRlc3RzPworICAgICAgICAgICAgICAgKGludm9rZSAoc3RyaW5nLWFwcGVuZCAo YXNzb2MtcmVmIG91dHB1dHMgIm91dCIpICIvYmluL3ppZyIpCisgICAgICAgICAgICAgICAgICAg ICAgIDs7IFRlc3RpbmcgdGhlIHN0YW5kYXJkIGxpYnJhcnkgdGFrZXMgPjcuNUdCIFJBTSwgYW5k CisgICAgICAgICAgICAgICAgICAgICAgIDs7IHdpbGwgZmFpbCBpZiBpdCBpcyBPT00ta2lsbGVk LiAgVGhlICd0ZXN0LXRvb2xjaGFpbicKKyAgICAgICAgICAgICAgICAgICAgICAgOzsgdGFyZ2V0 IHNraXBzIHN0YW5kYXJkIGxpYnJhcnkgYW5kIGRvYyB0ZXN0cy4KKyAgICAgICAgICAgICAgICAg ICAgICAgImJ1aWxkIiAidGVzdC10b29sY2hhaW4iCisgICAgICAgICAgICAgICAgICAgICAgIDs7 IFN0YWdlIDIgaXMgZXhwZXJpbWVudGFsLCBub3Qgd2hhdCB3ZSBydW4gd2l0aCBgemlnJywKKyAg ICAgICAgICAgICAgICAgICAgICAgOzsgYW5kIHN0YWdlIDIgdGVzdHMgcmVxdWlyZSBhIGxvdCBv ZiBSQU0uCisgICAgICAgICAgICAgICAgICAgICAgICItRHNraXAtc3RhZ2UyLXRlc3RzIgorICAg ICAgICAgICAgICAgICAgICAgICA7OyBOb24tbmF0aXZlIHRlc3RzIHRyeSB0byBsaW5rIGFuZCBl eGVjdXRlIG5vbi1uYXRpdmUKKyAgICAgICAgICAgICAgICAgICAgICAgOzsgYmluYXJpZXMuCisg ICAgICAgICAgICAgICAgICAgICAgICItRHNraXAtbm9uLW5hdGl2ZSIpKSkpKSkpCisgICAgKG5h dGl2ZS1zZWFyY2gtcGF0aHMKKyAgICAgKGxpc3QKKyAgICAgIChzZWFyY2gtcGF0aC1zcGVjaWZp Y2F0aW9uCisgICAgICAgKHZhcmlhYmxlICJDX0lOQ0xVREVfUEFUSCIpCisgICAgICAgKGZpbGVz ICcoImluY2x1ZGUiKSkpCisgICAgICAoc2VhcmNoLXBhdGgtc3BlY2lmaWNhdGlvbgorICAgICAg ICh2YXJpYWJsZSAiQ1BMVVNfSU5DTFVERV9QQVRIIikKKyAgICAgICAoZmlsZXMgJygiaW5jbHVk ZS9jKysiICJpbmNsdWRlIikpKQorICAgICAgKHNlYXJjaC1wYXRoLXNwZWNpZmljYXRpb24KKyAg ICAgICAodmFyaWFibGUgIkxJQlJBUllfUEFUSCIpCisgICAgICAgKGZpbGVzICcoImxpYiIgImxp YjY0IikpKSkpCisgICAgKHN5bm9wc2lzICJHZW5lcmFsIHB1cnBvc2UgcHJvZ3JhbW1pbmcgbGFu Z3VhZ2UgYW5kIHRvb2xjaGFpbiIpCisgICAgKGRlc2NyaXB0aW9uICJaaWcgaXMgYSBnZW5lcmFs LXB1cnBvc2UgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYW5kCit0b29sY2hhaW4uICBBbW9uZyBvdGhl ciBmZWF0dXJlcyBpdCBwcm92aWRlcworQGl0ZW1pemUKK0BpdGVtIGFuIE9wdGlvbmFsIHR5cGUg aW5zdGVhZCBvZiBudWxsIHBvaW50ZXJzLAorQGl0ZW0gbWFudWFsIG1lbW9yeSBtYW5hZ2VtZW50 LAorQGl0ZW0gZ2VuZXJpYyBkYXRhIHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucywKK0BpdGVtIGNv bXBpbGUtdGltZSByZWZsZWN0aW9uIGFuZCBjb21waWxlLXRpbWUgY29kZSBleGVjdXRpb24sCitA aXRlbSBpbnRlZ3JhdGlvbiB3aXRoIEMgdXNpbmcgemlnIGFzIGEgQyBjb21waWxlciwgYW5kCitA aXRlbSBjb25jdXJyZW5jeSB2aWEgYXN5bmMgZnVuY3Rpb25zLgorQGVuZCBpdGVtaXplIikKKyAg ICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vemlnbGFuZy96aWciKQorICAgIChsaWNl bnNlIGxpY2Vuc2U6ZXhwYXQpKSkKLS0gCjIuMzMuMAoK --=-7fRrHtBzNGkQVuWOI6v/--