From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id MIuPLfGLoWPZGQEAbAwnHQ (envelope-from ) for ; Tue, 20 Dec 2022 11:18:25 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id MOt/LfGLoWM8KgAA9RJhRA (envelope-from ) for ; Tue, 20 Dec 2022 11:18:25 +0100 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 3A00F40904 for ; Tue, 20 Dec 2022 11:18:25 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p7Zg8-0001Vr-Br; Tue, 20 Dec 2022 05:16:56 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p7Zg3-0001Ti-Qy for guix-devel@gnu.org; Tue, 20 Dec 2022 05:16:54 -0500 Received: from mail-0301.mail-europe.com ([188.165.51.139]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p7Zfy-00032W-Di for guix-devel@gnu.org; Tue, 20 Dec 2022 05:16:51 -0500 Date: Tue, 20 Dec 2022 10:16:34 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=elenq.tech; s=protonmail3; t=1671531399; x=1671790599; bh=rHKFo7Tn4QzrK5xBZwRSfGgbBxLdsRZzeKfZsrwratc=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=Zjg5nysM7dCuFUj2P+hJW3oqT/NOwfK3toBdqypc1OJAAe3k4HbOEb5yCd1H/unsf nOh0BG+ynDHFORbYkKIWHsKU1s2rw0+ALoSroofH+bDOP9k7hDmj+PoN3UhATHItCb CmK/vfcf4n4g3G12OLXWPWrrNsijH9UHTu2Wr0l+HXa8l9nA11FR/6t2zIp5hIP042 08Llab5P80VtawCPjRaJ0rOOTw4gkOejztYiVzv9SboBLfJWYnG4uh3xDfJwBUpvIe LvlNhunnBq1o3k2KyuLq7Si0Yz5Z/qmUbIVjx3CVwLldIUG6/q/36baT821VuTmYIZ ahI9tXHct8ozA== To: Efraim Flashner From: Ekaitz Zarraga Cc: "guix-devel\\\\@gnu.org" Subject: Re: WIP: zig-build-system Message-ID: In-Reply-To: References: Feedback-ID: 3263582:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_sjkBZYQH7Hx0N3YOKALv5CwqqRFKlixnrKmVUxRLhOE" Received-SPF: pass client-ip=188.165.51.139; envelope-from=ekaitz@elenq.tech; helo=mail-0301.mail-europe.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=elenq.tech header.s=protonmail3 header.b=Zjg5nysM; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=elenq.tech ARC-Seal: i=1; s=key1; d=yhetil.org; t=1671531505; a=rsa-sha256; cv=none; b=qr8mH111eRcyRGJkFhU/hmh6UgIYCPHmZdHyoOmToEHkAl9R3NFlrbrMRvVbNia6UhzR1A PVmCyydIeEN3V1h4x+/umISWa7jKeKxyZHg91zNFr+fh7XnOrD5rgtAI6VEByDSS03R4xn eRyEVp8dHoOHmucD4ZSLAUhn6xZ/4ISkBjEiQYL4hHjNi826Hy5qYfzSfu5wK0zztgqp+D uK1AeYxgKwIvqzTYSe99Ze1K3F+Qbhek/9CVlNyEzI1ho85fNu/YtUHIvhEMoX/yI8/DEY 3XWk7bf9ObIo2nI7P0I349C4hLnXVkFdwVwszraD6LWTaJtj6ti/UPe02w6VUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1671531505; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=rHKFo7Tn4QzrK5xBZwRSfGgbBxLdsRZzeKfZsrwratc=; b=WX6VqF6DMoWBirulkvIed3M3HUy5dqvT35+c2OmeeNxgDEH1ehvCnju5WOoJHI8D2lX0rE sqB/s1YbprtwURQ6mPV0Z/hJq+7K86yt84c2y6WQjQGxbXGpK4sz5IMNyAj7a10JZLqXV2 rygBR/9yS88GAELwvGqxzqGkOW1h9FvB3Bg7llhIlHl8DHMv6LIOIKKZc0AIqBJbOifWYB boLQvhElZMn/L1KmwtesYJWkbSzKuTLTfYYr4obXRntLn67JvTXDN1IG4oJRTwJPVkotNq ZXwiu8wuQb3mnBOAQV1mEt90Y3TjWAxC06APaIDqR/DCeSb3krsNk0fa2BvAVg== X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=elenq.tech header.s=protonmail3 header.b=Zjg5nysM; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=elenq.tech X-Migadu-Spam-Score: -10.23 X-Spam-Score: -10.23 X-Migadu-Queue-Id: 3A00F40904 X-TUID: TSSJhBt3Wsl+ This is a multi-part message in MIME format. --b1_sjkBZYQH7Hx0N3YOKALv5CwqqRFKlixnrKmVUxRLhOE Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi Efraim and everyone, > cross-compilation can come later. It's not uncommon when writing new > build systems. Great! > > - The `zig` command uses a compiler to find the libc it needs to use > > we should be able to remove the `gcc-toolchain` from the > > dependencies if we just add the libc to the build system properly > > (this point is mixed with the point above) > > > Are you sure about removing gcc-toolchain? I don't have a problem with > it if it is possible, especially since zig does provide a 'zig cc' > command. We'd still likely need to use something like the > make-gcc-toolchain to properly use ld-wrapper, unless we somehow > wouldn't need that either. I managed to remove it from the package descriptions because, as you said, = it comes with the gnu-build-system that I used as a base, but we still need to (setenv "CC" "gcc") and I don't really like it because I think this will ca= use problems in other usecases... Like cross-compilation. I have to ask the Zig people (hello? Anyone?) about how important having a = GCC around is, maybe we can substitute that GCC call with something else that w= e add to the build system. Simply finding the correct libc should be somethin= g we can do. I've found here and there that the Zig compiler supports a `--libc` argumen= t which receives a text file as an input, and they probably build that input = from the GCC command. I'm pretty sure that we can build that from our zig-build-system directly, using scheme code. That way we could tweak it in= the future with no reliance on GCC, which is way more flexible. Also, I don't like relying in GCC's output a lot because it's a supercomple= x package and it's hard to maintain/understand. If we can stay away from it, better for everyone. > Isn't gcc-toolchain part of %standard-packages in a build-system? Did I > miss it not being there or does it also need to be added here for the > reason you listed below? True. Removed from the package as the build-system includes it. > by default glibc is named 'libc' in the build system, and when > cross-compiling 'libc' is generally the correct libc that you'd be > looking for. Also I'd be curious about reusing the libc vendored in zig > itself or if that's not actually possible/only for embedded uses. > > Also if you just need libc you could import glibc-final for the > non-cross-build as a standard native-input (input?) and then you'd have > it available. I'm not sure if I understood this (which probably means I didn't). Can you = give me an example about how to use the `libc` in the build system? I'm not used to the gexps yet and I don't find the best way to do this :S The libc that comes with Zig we can use, but in that case we have to check = the system and all that so maybe it's better to leave it for the cross-compilat= ion step. Also, I'm not sure if it will affect reproducibility somehow? > > + (add-before 'build 'set-env > > + (lambda _ > > + (setenv "CC" "gcc")))))) > > > If you really don't need gcc by default you could consider something > like what we have in the cargo-build-system: > > (when (assoc-ref inputs "openssl") > (setenv "OPENSSL_DIR" (assoc-ref inputs "openssl"))) > > could be: > > (cond > ((assoc-ref inputs "gcc") (setenv "CC" "gcc")) > ((assoc-ref inputs "clang") (setenv "CC" "llvm")) > (_ (setenv "CC" "zig cc"))) That's an accurate suggestion, but we need to solve first if we need to actually use the external compiler or not. I need a Zig mentor for this :D > > +(define (default-zig) > > + "Return the default zig package." > > + ;; Lazily resolve the binding to avoid a circular dependency. > > + (let ((zig (resolve-interface '(gnu packages zig)))) > > + (module-ref zig 'zig))) > > + > > +(define %zig-build-system-modules > > + ;; Build-side modules imported by default. > > + `((guix build zig-build-system) > > + (guix build syscalls) > > + ,@%gnu-build-system-modules)) > > + > > +(define* (zig-build name inputs > > + #:key > > + source > > + (tests? #t) > > + (test-target #f) > > + (zig-build-flags ''()) > > > Is it possible to pass flags during the test phase also? If it is then > having a zig-test-flags keyword would also be good. I think it is! Good catch. > I would also suggest a 'zig' flag, to allow choosing a different zig > binary to be used for a build. Done. > I would define a global-cache-dir and use ZIG_GLOBAL_CACHE_DIR to refer > to it and not pass it around to all the phases. I don't know if I understood what you mean, check the new patch set please = and confirm. > > + "-p" "" ;; Don't add /usr > > If '-p' is the short form of '--prefix' or something then use the long > form. Done > cmake-build-system has an option to determine Release or Debug (or to > leave it as RelWithDebInfo) named 'build-type'. I think that should be > added here. I did something similar, check please if you like it. > I assume this is to prevent overwriting the actual binary with the tests > enabled binary? I would consider unsetting it at the end of the phase. > Or storing its previous value and setting it back to that, we have seen > packages which use DESTDIR and I wouldn't want any surprises. Good, applied. > > + (apply invoke > > + `("zig" "build" "test" > > + "--global-cache-dir" "zig-cache")))) > > What's the difference between 'zig test build.zig' and 'zig build test'? I'll give you a really na=C3=AFve answer: in my computer the second works a= nd the first doesn't. > Beware of copy-pasting :). You don't use inputs, don't need let* vs let, > and could probably directly (copy-recursively #$output out). Or rely on > 'make install'. 'make install' was available for ncdu2, not sure about > other zig projects. Make install won't be available generally, but yeah, I got you. Should this install phase be something like: `(map (lambda (out) (copy-recursively (car out) (cdr out))) outputs)` Maybe this allows an easier way to generate outputs? Or should we just rely= on the packages themselves to define a better install phase than this? I mean, if we have just this phase, any package that needs to install docs, just adding a `doc` output and leaving its contents in a `/doc` folder shou= ld work... IDK --b1_sjkBZYQH7Hx0N3YOKALv5CwqqRFKlixnrKmVUxRLhOE Content-Type: text/x-patch; name=0001-WIP-Add-a-zig-build-system.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-WIP-Add-a-zig-build-system.patch RnJvbSBiODY4MTIzZDk1NDI5MDI1ZjY3Yjg3OTk4NTUxNDA4MzUxMGY2YWNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFa2FpdHogWmFycmFnYSA8ZWthaXR6QGVsZW5xLnRlY2g+CkRh dGU6IFRodSwgMTUgRGVjIDIwMjIgMTM6MDE6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDEvMl0g V0lQOiBBZGQgYSB6aWctYnVpbGQtc3lzdGVtCgotLS0KIE1ha2VmaWxlLmFtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGV0Yy9zbmlwcGV0cy95YXMvc2NoZW1lLW1vZGUv Z3VpeC1wYWNrYWdlIHwgICA1ICstCiBndWl4L2J1aWxkLXN5c3RlbS96aWcuc2NtICAgICAgICAg ICAgICAgICB8IDExOSArKysrKysrKysrKysrKysrKysrKysrCiBndWl4L2J1aWxkL3ppZy1idWls ZC1zeXN0ZW0uc2NtICAgICAgICAgICB8ICA5NCArKysrKysrKysrKysrKysrKwogNCBmaWxlcyBj aGFuZ2VkLCAyMTggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBndWl4L2J1aWxkLXN5c3RlbS96aWcuc2NtCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ3VpeC9i dWlsZC96aWctYnVpbGQtc3lzdGVtLnNjbQoKZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFr ZWZpbGUuYW0KaW5kZXggYjU0Mjg4YzBmYy4uNGNjN2MyZTVjZiAxMDA2NDQKLS0tIGEvTWFrZWZp bGUuYW0KKysrIGIvTWFrZWZpbGUuYW0KQEAgLTE3OSw2ICsxNzksNyBAQCBNT0RVTEVTID0JCQkJ CVwKICAgZ3VpeC9idWlsZC1zeXN0ZW0vc2NvbnMuc2NtCQkJXAogICBndWl4L2J1aWxkLXN5c3Rl bS90ZXhsaXZlLnNjbQkJCVwKICAgZ3VpeC9idWlsZC1zeXN0ZW0vdHJpdmlhbC5zY20JCQlcCisg IGd1aXgvYnVpbGQtc3lzdGVtL3ppZy5zY20JCQlcCiAgIGd1aXgvZnRwLWNsaWVudC5zY20JCQkJ XAogICBndWl4L2h0dHAtY2xpZW50LnNjbQkJCQlcCiAgIGd1aXgvZ251cGcuc2NtCQkJCVwKQEAg LTI2Myw2ICsyNjQsNyBAQCBNT0RVTEVTID0JCQkJCVwKICAgZ3VpeC9idWlsZC9ncmFmdC5zY20J CQkJXAogICBndWl4L2J1aWxkL2JvdXJuaXNoLnNjbQkJCVwKICAgZ3VpeC9idWlsZC9xdC11dGls cy5zY20JCQlcCisgIGd1aXgvYnVpbGQvemlnLWJ1aWxkLXN5c3RlbS5zY20JCVwKICAgZ3VpeC9i dWlsZC9tYWtlLWJvb3RzdHJhcC5zY20JCQlcCiAgIGd1aXgvc2VhcmNoLXBhdGhzLnNjbQkJCQlc CiAgIGd1aXgvcGFja2FnZXMuc2NtCQkJCVwKZGlmZiAtLWdpdCBhL2V0Yy9zbmlwcGV0cy95YXMv c2NoZW1lLW1vZGUvZ3VpeC1wYWNrYWdlIGIvZXRjL3NuaXBwZXRzL3lhcy9zY2hlbWUtbW9kZS9n dWl4LXBhY2thZ2UKaW5kZXggNzI0YTM5MmY4MS4uM2JiNjMwNzY1OSAxMDA2NDQKLS0tIGEvZXRj L3NuaXBwZXRzL3lhcy9zY2hlbWUtbW9kZS9ndWl4LXBhY2thZ2UKKysrIGIvZXRjL3NuaXBwZXRz L3lhcy9zY2hlbWUtbW9kZS9ndWl4LXBhY2thZ2UKQEAgLTQzLDggKzQzLDkgQEAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzY29ucy1idWlsZC1zeXN0ZW0iCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGV4bGl2ZS1idWlsZC1z eXN0ZW0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHJpdmlh bC1idWlsZC1zeXN0ZW0iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAid2FmLWJ1aWxkLXN5c3RlbSIpfSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICJ3YWYtYnVpbGQtc3lzdGVtIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgInppZy1idWlsZC1zeXN0ZW0iKX0pCiAgICAgKGhvbWUtcGFnZSAiJDQi KQogICAgIChzeW5vcHNpcyAiJDUiKQogICAgIChkZXNjcmlwdGlvbiAiJDYiKQotICAgIChsaWNl bnNlICQ3KSkpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorICAgIChsaWNlbnNlICQ3KSkp CmRpZmYgLS1naXQgYS9ndWl4L2J1aWxkLXN5c3RlbS96aWcuc2NtIGIvZ3VpeC9idWlsZC1zeXN0 ZW0vemlnLnNjbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43NzAxMGYx YmVkCi0tLSAvZGV2L251bGwKKysrIGIvZ3VpeC9idWlsZC1zeXN0ZW0vemlnLnNjbQpAQCAtMCww ICsxLDExOSBAQAorOzs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVu dCBmb3IgR05VCis7OzsgQ29weXJpZ2h0IMKpIDIwMjIgRWthaXR6IFphcnJhZ2EgPGVrYWl0ekBl bGVucS50ZWNoPgorOzs7Cis7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCis7OzsK Kzs7OyBHTlUgR3VpeCBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5IGl0Cis7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKzs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKKzs7OyB5b3Vy IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmli dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKzs7OyBXSVRIT1VU IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7Ozsg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl IHRoZQorOzs7IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7 OzsKKzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZQorOzs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKKyhkZWZpbmUtbW9kdWxlIChndWl4IGJ1 aWxkLXN5c3RlbSB6aWcpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzZWFyY2gtcGF0aHMpCisgICM6 dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxzKQorICAj OnVzZS1tb2R1bGUgKGd1aXggZ2V4cCkKKyAgIzp1c2UtbW9kdWxlIChndWl4IG1vbmFkcykKKyAg Izp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQt c3lzdGVtKQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGdudSkKKyAgIzp1c2Ut bW9kdWxlIChpY2UtOSBtYXRjaCkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMjYpCisgICM6 ZXhwb3J0ICh6aWctYnVpbGQtc3lzdGVtKSkKKworCisoZGVmaW5lIChkZWZhdWx0LXppZykKKyAg IlJldHVybiB0aGUgZGVmYXVsdCB6aWcgcGFja2FnZS4iCisgIDs7IExhemlseSByZXNvbHZlIHRo ZSBiaW5kaW5nIHRvIGF2b2lkIGEgY2lyY3VsYXIgZGVwZW5kZW5jeS4KKyAgKGxldCAoKHppZyAo cmVzb2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgemlnKSkpKQorICAgIChtb2R1bGUtcmVm IHppZyAnemlnKSkpCisKKyhkZWZpbmUgJXppZy1idWlsZC1zeXN0ZW0tbW9kdWxlcworICA7OyBC dWlsZC1zaWRlIG1vZHVsZXMgaW1wb3J0ZWQgYnkgZGVmYXVsdC4KKyAgYCgoZ3VpeCBidWlsZCB6 aWctYnVpbGQtc3lzdGVtKQorICAgIChndWl4IGJ1aWxkIHN5c2NhbGxzKQorICAgICxAJWdudS1i dWlsZC1zeXN0ZW0tbW9kdWxlcykpCisKKyhkZWZpbmUqICh6aWctYnVpbGQgbmFtZSBpbnB1dHMK KyAgICAgICAgICAgICAgICAgICAgIzprZXkKKyAgICAgICAgICAgICAgICAgICAgc291cmNlCisg ICAgICAgICAgICAgICAgICAgICh0ZXN0cz8gI3QpCisgICAgICAgICAgICAgICAgICAgICh0ZXN0 LXRhcmdldCAjZikKKyAgICAgICAgICAgICAgICAgICAgKHppZy1idWlsZC1mbGFncyAnJygpKQor ICAgICAgICAgICAgICAgICAgICAocGhhc2VzICclc3RhbmRhcmQtcGhhc2VzKQorICAgICAgICAg ICAgICAgICAgICAob3V0cHV0cyAnKCJvdXQiKSkKKyAgICAgICAgICAgICAgICAgICAgKHNlYXJj aC1wYXRocyAnKCkpCisgICAgICAgICAgICAgICAgICAgIChzeXN0ZW0gKCVjdXJyZW50LXN5c3Rl bSkpCisgICAgICAgICAgICAgICAgICAgIChndWlsZSAjZikKKyAgICAgICAgICAgICAgICAgICAg KGltcG9ydGVkLW1vZHVsZXMgJXppZy1idWlsZC1zeXN0ZW0tbW9kdWxlcykKKyAgICAgICAgICAg ICAgICAgICAgKG1vZHVsZXMgJygoZ3VpeCBidWlsZCB6aWctYnVpbGQtc3lzdGVtKQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChndWl4IGJ1aWxkIHV0aWxzKSkpKQorICAiQnVpbGQg U09VUkNFIHVzaW5nIFppZywgYW5kIHdpdGggSU5QVVRTLiIKKyAgKGRlZmluZSBidWlsZGVyCisg ICAgKHdpdGgtaW1wb3J0ZWQtbW9kdWxlcyBpbXBvcnRlZC1tb2R1bGVzCisgICAgICAjfihiZWdp bgorICAgICAgICAgICh1c2UtbW9kdWxlcyAjJEAoc2V4cC0+Z2V4cCBtb2R1bGVzKSkKKyAgICAg ICAgICAoemlnLWJ1aWxkICM6bmFtZSAjJG5hbWUKKyAgICAgICAgICAgICAgICAgICAgICM6c291 cmNlICMrc291cmNlCisgICAgICAgICAgICAgICAgICAgICAjOnN5c3RlbSAjJHN5c3RlbQorICAg ICAgICAgICAgICAgICAgICAgIzp0ZXN0LXRhcmdldCAjJHRlc3QtdGFyZ2V0CisgICAgICAgICAg ICAgICAgICAgICAjOnppZy1idWlsZC1mbGFncyAjJHppZy1idWlsZC1mbGFncworICAgICAgICAg ICAgICAgICAgICAgIzp0ZXN0cz8gIyR0ZXN0cz8KKyAgICAgICAgICAgICAgICAgICAgICM6cGhh c2VzICMkcGhhc2VzCisgICAgICAgICAgICAgICAgICAgICAjOm91dHB1dHMgIyQob3V0cHV0cy0+ Z2V4cCBvdXRwdXRzKQorICAgICAgICAgICAgICAgICAgICAgIzpzZWFyY2gtcGF0aHMgJyMkKHNl eHAtPmdleHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWFwIHNl YXJjaC1wYXRoLXNwZWNpZmljYXRpb24tPnNleHAKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNlYXJjaC1wYXRocykpCisgICAgICAgICAgICAgICAgICAgICAj OmlucHV0cyAjJChpbnB1dC10dXBsZXMtPmdleHAgaW5wdXRzKSkpKSkKKworICAobWxldCAlc3Rv cmUtbW9uYWQgKChndWlsZSAocGFja2FnZS0+ZGVyaXZhdGlvbiAob3IgZ3VpbGUgKGRlZmF1bHQt Z3VpbGUpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzeXN0ZW0gIzpncmFmdD8gI2YpKSkKKyAgICAoZ2V4cC0+ZGVyaXZhdGlvbiBuYW1lIGJ1aWxk ZXIKKyAgICAgICAgICAgICAgICAgICAgICAjOnN5c3RlbSBzeXN0ZW0KKyAgICAgICAgICAgICAg ICAgICAgICAjOmd1aWxlLWZvci1idWlsZCBndWlsZSkpKQorCisoZGVmaW5lKiAobG93ZXIgbmFt ZQorICAgICAgICAgICAgICAgICM6a2V5IHNvdXJjZSBpbnB1dHMgbmF0aXZlLWlucHV0cyBvdXRw dXRzIHN5c3RlbSB0YXJnZXQKKyAgICAgICAgICAgICAgICAoemlnIChkZWZhdWx0LXppZykpCisg ICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzCisgICAgICAgICAgICAgICAgIzpyZXN0 IGFyZ3VtZW50cykKKyAgIlJldHVybiBhIGJhZyBmb3IgTkFNRS4iCisKKyAgKGRlZmluZSBwcml2 YXRlLWtleXdvcmRzCisgICAgJygjOnRhcmdldCAjOnppZyAjOmlucHV0cyAjOm5hdGl2ZS1pbnB1 dHMgIzpvdXRwdXRzKSkKKworICA7OyBUT0RPOiBzdXBwb3J0IGNyb3NzLWNvbXBpbGF0aW9uCisg IDs7IEl0J3MgYXMgc2ltcGxlIGFzIGFkZGluZyBzb21lIGJ1aWxkIGZsYWdzIHRvIGB6aWctYnVp bGQtZmxhZ3NgCisgIChhbmQgKG5vdCB0YXJnZXQpCisgICAgICAgKGJhZworICAgICAgICAgKG5h bWUgbmFtZSkKKyAgICAgICAgIChzeXN0ZW0gc3lzdGVtKQorICAgICAgICAgKHRhcmdldCB0YXJn ZXQpCisgICAgICAgICAoaG9zdC1pbnB1dHMgYCgsQChpZiBzb3VyY2UKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGAoKCJzb3VyY2UiICxzb3VyY2UpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJygpKQorICAgICAgICAgICAgICAgICAgICAgICAgLEBpbnB1dHMKKworICAg ICAgICAgICAgICAgICAgICAgICAgOzsgS2VlcCB0aGUgc3RhbmRhcmQgaW5wdXRzIG9mICdnbnUt YnVpbGQtc3lzdGVtJworICAgICAgICAgICAgICAgICAgICAgICAgOzsgVE9ETzogZG8gd2UgbmVl ZCB0aGlzPworICAgICAgICAgICAgICAgICAgICAgICAgLEAoc3RhbmRhcmQtcGFja2FnZXMpKSkK KyAgICAgICAgIChidWlsZC1pbnB1dHMgYCgoInppZyIgLHppZykKKyAgICAgICAgICAgICAgICAg ICAgICAgICAsQG5hdGl2ZS1pbnB1dHMpKQorICAgICAgICAgKG91dHB1dHMgb3V0cHV0cykKKyAg ICAgICAgIChidWlsZCB6aWctYnVpbGQpCisgICAgICAgICAoYXJndW1lbnRzIChzdHJpcC1rZXl3 b3JkLWFyZ3VtZW50cyBwcml2YXRlLWtleXdvcmRzIGFyZ3VtZW50cykpKSkpCisKKyhkZWZpbmUg emlnLWJ1aWxkLXN5c3RlbQorICAoYnVpbGQtc3lzdGVtCisgICAgKG5hbWUgJ3ppZykKKyAgICAo ZGVzY3JpcHRpb24KKyAgICAgIlppZyBidWlsZCBzeXN0ZW0sIHRvIGJ1aWxkIFppZyBwYWNrYWdl cyIpCisgICAgKGxvd2VyIGxvd2VyKSkpCmRpZmYgLS1naXQgYS9ndWl4L2J1aWxkL3ppZy1idWls ZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWlsZC96aWctYnVpbGQtc3lzdGVtLnNjbQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi43NWE0MjU0M2NmCi0tLSAvZGV2L251bGwKKysr IGIvZ3VpeC9idWlsZC96aWctYnVpbGQtc3lzdGVtLnNjbQpAQCAtMCwwICsxLDk0IEBACis7Ozsg R05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKKzs7OyBD b3B5cmlnaHQgwqkgMjAyMiBFa2FpdHogWmFycmFnYSA8ZWthaXR6QGVsZW5xLnRlY2g+Cis7OzsK Kzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQK Kzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFz IHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2 ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0 ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl Cis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUgKGd1aXggYnVpbGQgemlnLWJ1aWxkLXN5 c3RlbSkKKyAgIzp1c2UtbW9kdWxlICgoZ3VpeCBidWlsZCBnbnUtYnVpbGQtc3lzdGVtKSAjOnBy ZWZpeCBnbnU6KQorICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgICM6dXNlLW1v ZHVsZSAoaWNlLTkgcG9wZW4pCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgcmRlbGltKQorICAjOnVz ZS1tb2R1bGUgKGljZS05IGZ0dykKKyAgIzp1c2UtbW9kdWxlIChpY2UtOSBmb3JtYXQpCisgICM6 dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAocm5ycyBpbyBwb3J0cykK KyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmkt MjYpCisgICM6ZXhwb3J0ICglc3RhbmRhcmQtcGhhc2VzCisgICAgICAgICAgICB6aWctYnVpbGQp KQorCis7OyBJbnRlcmVzdGluZyBndWlkZSBoZXJlOgorOzsgaHR0cHM6Ly9naXRodWIuY29tL3Jp dmVyd20vcml2ZXIvYmxvYi9tYXN0ZXIvUEFDS0FHSU5HLm1kCisoZGVmaW5lIGdsb2JhbC1jYWNo ZS1kaXIgInppZy1jYWNoZSIpCisKKyhkZWZpbmUqIChzZXQtemlnLWdsb2JhbC1jYWNoZS1kaXIg IzpyZXN0IGFyZ3MpCisgIChzZXRlbnYgIlpJR19HTE9CQUxfQ0FDSEVfRElSIiBnbG9iYWwtY2Fj aGUtZGlyKSkKKworKGRlZmluZSogKGJ1aWxkICM6a2V5CisgICAgICAgICAgICAgICAgKHppZyAi emlnIikKKyAgICAgICAgICAgICAgICAoemlnLWJ1aWxkLWZsYWdzICcoKSkKKyAgICAgICAgICAg ICAgICB6aWctcmVsZWFzZS10eXBlICAgICAgOzsgInNhZmUiLCAiZmFzdCIgb3IgInNtYWxsIiBl bXB0eSBmb3IgYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBkZWJ1 ZyBidWlsZCIKKyAgICAgICAgICAgICAgICAjOmFsbG93LW90aGVyLWtleXMpCisgICJCdWlsZCBh IGdpdmVuIFppZyBwYWNrYWdlLiIKKyAgKHNldGVudiAiREVTVERJUiIgIm91dCIpCisgIChsZXQg KChjYWxsIGAoLHppZyAiYnVpbGQiCisgICAgICAgICAgICAgICAgICAgICAiLS1wcmVmaXgiICAg ICAgICAgICAgICIiICAgICAgICAgICAgOzsgRG9uJ3QgYWRkIC91c3IKKyAgICAgICAgICAgICAg ICAgICAgICItLXByZWZpeC1saWItZGlyIiAgICAgImxpYiIKKyAgICAgICAgICAgICAgICAgICAg ICItLXByZWZpeC1leGUtZGlyIiAgICAgImJpbiIKKyAgICAgICAgICAgICAgICAgICAgICItLXBy ZWZpeC1pbmNsdWRlLWRpciIgImluY2x1ZGUiCisgICAgICAgICAgICAgICAgICAgICAsQChpZiB6 aWctcmVsZWFzZS10eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgKGxpc3QgKHN0cmluZy1h cHBlbmQgIi1EcmVsZWFzZS0iIHppZy1yZWxlYXNlLXR5cGUpKQorICAgICAgICAgICAgICAgICAg ICAgICAgICcoKSkKKyAgICAgICAgICAgICAgICAgICAgICxAemlnLWJ1aWxkLWZsYWdzKSkpCisg IChmb3JtYXQgI3QgInJ1bm5pbmc6IH5zfiUiIGNhbGwpCisgIChhcHBseSBpbnZva2UgY2FsbCkp KQorCisoZGVmaW5lKiAoY2hlY2sgIzprZXkgdGVzdHM/CisgICAgICAgICAgICAgICAgKHppZy10 ZXN0LWZsYWdzICcoKSkKKyAgICAgICAgICAgICAgICAoemlnICJ6aWciKQorICAgICAgICAgICAg ICAgICM6YWxsb3ctb3RoZXIta2V5cykKKyAgIlJ1biBhbGwgdGhlIHRlc3RzIgorICAod2hlbiB0 ZXN0cz8KKyAgICAobGV0ICgob2xkLWRlc3RkaXIgKGdldGVudiAiREVTVERJUiIpKSkKKyAgICAg IChzZXRlbnYgIkRFU1RESVIiICJ0ZXN0LW91dCIpIDs7IEF2b2lkIGNvbGlzaW9ucyB3aXRoIHRo ZSBidWlsZCBvdXRwdXQKKyAgICAgIChsZXQgKChjYWxsIGAoLHppZyAiYnVpbGQiICJ0ZXN0Igor ICAgICAgICAgICAgICAgICAgICAsQHppZy10ZXN0LWZsYWdzKSkpCisgICAgICAgIChmb3JtYXQg I3QgInJ1bm5pbmc6IH5zfiUiIGNhbGwpCisgICAgICAgIChhcHBseSBpbnZva2UgY2FsbCkpCisg ICAgICAoaWYgb2xkLWRlc3RkaXIKKyAgICAgICAgKHNldGVudiAiREVTVERJUiIgb2xkLWRlc3Rk aXIpCisgICAgICAgICh1bnNldGVudiAiREVTVERJUiIpKSkpKQorCisoZGVmaW5lKiAoaW5zdGFs bCAjOmtleSBpbnB1dHMgb3V0cHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisgICJJbnN0YWxsIGEg Z2l2ZW4gWmlnIHBhY2thZ2UuIgorICAobGV0ICgob3V0IChhc3NvYy1yZWYgb3V0cHV0cyAib3V0 IikpKQorICAgIChjb3B5LXJlY3Vyc2l2ZWx5ICJvdXQiIG91dCkpKQorCisoZGVmaW5lICVzdGFu ZGFyZC1waGFzZXMKKyAgKG1vZGlmeS1waGFzZXMgZ251OiVzdGFuZGFyZC1waGFzZXMKKyAgICAo ZGVsZXRlICdib290c3RyYXApCisgICAgKGRlbGV0ZSAnY29uZmlndXJlKQorICAgIChhZGQtYmVm b3JlICdidWlsZCAnc2V0LXppZy1nbG9iYWwtY2FjaGUtZGlyIHNldC16aWctZ2xvYmFsLWNhY2hl LWRpcikKKyAgICAocmVwbGFjZSAnYnVpbGQgYnVpbGQpCisgICAgKHJlcGxhY2UgJ2NoZWNrIGNo ZWNrKQorICAgIChyZXBsYWNlICdpbnN0YWxsIGluc3RhbGwpKSkKKworCisoZGVmaW5lKiAoemln LWJ1aWxkICM6a2V5IGlucHV0cyAocGhhc2VzICVzdGFuZGFyZC1waGFzZXMpCisgICAgICAgICAg ICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzICM6cmVzdCBhcmdzKQorICAiQnVpbGQgdGhl IGdpdmVuIFppZyBwYWNrYWdlLCBhcHBseWluZyBhbGwgb2YgUEhBU0VTIGluIG9yZGVyLiIKKyAg KGFwcGx5IGdudTpnbnUtYnVpbGQgIzppbnB1dHMgaW5wdXRzICM6cGhhc2VzIHBoYXNlcyBhcmdz KSkKLS0gCjIuMzguMAoK --b1_sjkBZYQH7Hx0N3YOKALv5CwqqRFKlixnrKmVUxRLhOE Content-Type: text/x-patch; name=0002-Add-a-sample-package-for-testing-the-zig-build-syste.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0002-Add-a-sample-package-for-testing-the-zig-build-syste.patch RnJvbSAwNmU0MjBjMzAxYjQ2YTBkYjI5NTQ2YWE3NTdjNzVhYmNkNmU2OWJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFa2FpdHogWmFycmFnYSA8ZWthaXR6QGVsZW5xLnRlY2g+CkRh dGU6IFRodSwgMTUgRGVjIDIwMjIgMTM6MDI6MjUgKzAxMDAKU3ViamVjdDogW1BBVENIIDIvMl0g QWRkIGEgc2FtcGxlIHBhY2thZ2UgZm9yIHRlc3RpbmcgdGhlIHppZyBidWlsZCBzeXN0ZW0KCi0t LQogZ251L3BhY2thZ2VzL3ppZy5zY20gfCA0MiArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCspLCAxIGRlbGV0 aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL3ppZy5zY20gYi9nbnUvcGFja2FnZXMv emlnLnNjbQppbmRleCBjZGE5M2JlZDJlLi40M2IyZjYwNzIyIDEwMDY0NAotLS0gYS9nbnUvcGFj a2FnZXMvemlnLnNjbQorKysgYi9nbnUvcGFja2FnZXMvemlnLnNjbQpAQCAtMjUsNyArMjUsOSBA QCAoZGVmaW5lLW1vZHVsZSAoZ251IHBhY2thZ2VzIHppZykKICAgIzp1c2UtbW9kdWxlICgoZ3Vp eCBsaWNlbnNlcykgIzpwcmVmaXggbGljZW5zZTopCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBidWls ZC1zeXN0ZW0gY21ha2UpCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzKQotICAjOnVzZS1t b2R1bGUgKGdudSBwYWNrYWdlcyBsbHZtKSkKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMg bGx2bSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSB6aWcpCisgICM6dXNlLW1v ZHVsZSAoZ251IHBhY2thZ2VzIGNvbW1lbmNlbWVudCkpCiAKIChkZWZpbmUtcHVibGljIHppZwog ICAocGFja2FnZQpAQCAtMTA0LDMgKzEwNiw0MSBAQCAoZGVmaW5lLXB1YmxpYyB6aWcKICAgICA7 OyBodHRwczovL2dpdGh1Yi5jb20vemlnbGFuZy96aWcvaXNzdWVzLzY0ODUKICAgICAoc3VwcG9y dGVkLXN5c3RlbXMgJTY0Yml0LXN1cHBvcnRlZC1zeXN0ZW1zKQogICAgIChsaWNlbnNlIGxpY2Vu c2U6ZXhwYXQpKSkKKworCisoZGVmaW5lLXB1YmxpYyB0aWdlcmJlZXRsZQorICAobGV0ICgoY29t bWl0LWlkICIyMDIyLTEyLTEyLXdlZWtseSIpCisgICAgICAgIChyZXZpc2lvbiAiMCIpKQorICAg IChwYWNrYWdlCisgICAgICAobmFtZSAidGlnZXJiZWV0bGUiKQorICAgICAgKHZlcnNpb24gKHN0 cmluZy1hcHBlbmQgcmV2aXNpb24gIi0iIGNvbW1pdC1pZCkpCisgICAgICAoc291cmNlCisgICAg ICAgIChvcmlnaW4KKyAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAgICAodXJp IChnaXQtcmVmZXJlbmNlCisgICAgICAgICAgICAgICAgICh1cmwgImh0dHBzOi8vZ2l0aHViLmNv bS90aWdlcmJlZXRsZWRiL3RpZ2VyYmVldGxlLmdpdCIpCisgICAgICAgICAgICAgICAgIChjb21t aXQgY29tbWl0LWlkKSkpCisgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1l IHZlcnNpb24pKQorICAgICAgICAgIChzaGEyNTYKKyAgICAgICAgICAgIChiYXNlMzIgIjE4cmF3 bDhyaHlwbHc4aHBhM2Z6YnE5ZnFnMDg4eDBjYWx6Njg4Yzd6ZGZmNnk2ZjZtY3IiKSkpKQorICAg ICAgKGJ1aWxkLXN5c3RlbSB6aWctYnVpbGQtc3lzdGVtKQorCisgICAgICAoYXJndW1lbnRzCisg ICAgICAgICBgKCM6cGhhc2VzCisgICAgICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1w aGFzZXMKKyAgICAgICAgICA7OyBUT0RPOiBaaWcgbmVlZHMgdGhlIGdjYy10b29sY2hhaW4gaW4g b3JkZXIgdG8gZmluZCB0aGUgbGliYy4KKyAgICAgICAgICA7OyAgICAgICB3ZSBuZWVkIHRvIHRo aW5rIGFib3V0IGhvdyB0byBzb2x2ZSB0aGlzIGluIHRoZSBidWlsZCBzeXN0ZW0KKyAgICAgICAg ICA7OyAgICAgICBkaXJlY3RseTogLS1saWJjCisgICAgICAgICAgICAgICAgICAgICAgICAgIChh ZGQtYmVmb3JlICdidWlsZCAnc2V0LWVudgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs YW1iZGEgXworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNldGVudiAiQ0MiICJnY2Mi KSkpKSkpCisKKyAgICAgIChzeW5vcHNpcyAiRGlzdHJpYnV0ZWQgZmluYW5jaWFsIGFjY291bnRp bmcgZGF0YWJhc2UgZGVzaWduZWQgZm9yIG1pc3Npb24KK2NyaXRpY2FsIHNhZmV0eSBhbmQgcGVy Zm9ybWFuY2UiKQorCisgICAgICAoZGVzY3JpcHRpb24gIkZpbmFuY2lhbCBhY2NvdW50aW5nIGRh dGFiYXNlIGRlc2lnbmVkIGZvciBtaXNzaW9uIGNyaXRpY2FsCitzYWZldCB5IGFuZCBwZXJmb3Jt YW5jZSB0byBwb3dlciB0aGUgZnV0dXJlIG9mIGZpbmFuY2lhbAorc2VydmljZXMuIikKKyAgICAg IChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS90aWdlcmJlZXRsZWRiL3RpZ2VyYmVldGxl LmdpdCIpCisgICAgICAoc3VwcG9ydGVkLXN5c3RlbXMgJTY0Yml0LXN1cHBvcnRlZC1zeXN0ZW1z KQorICAgICAgKGxpY2Vuc2UgbGljZW5zZTphc2wyLjApKSkpCi0tIAoyLjM4LjAKCg== --b1_sjkBZYQH7Hx0N3YOKALv5CwqqRFKlixnrKmVUxRLhOE--