From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amirouche Boubekki Subject: Installing guix Date: Sun, 14 Dec 2014 19:43:34 +0100 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=089e01681dee0c923f050a3182c2 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48311) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y0E99-0008B0-Sr for guix-devel@gnu.org; Sun, 14 Dec 2014 13:44:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y0E95-0002ts-VW for guix-devel@gnu.org; Sun, 14 Dec 2014 13:43:59 -0500 Received: from mail-yh0-x234.google.com ([2607:f8b0:4002:c01::234]:63829) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y0E95-0002tk-NT for guix-devel@gnu.org; Sun, 14 Dec 2014 13:43:55 -0500 Received: by mail-yh0-f52.google.com with SMTP id z6so4513242yhz.39 for ; Sun, 14 Dec 2014 10:43:55 -0800 (PST) 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+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: guix-devel --089e01681dee0c923f050a3182c2 Content-Type: text/plain; charset=UTF-8 Hello, I installed GNU Guix distribution on my other machine to use it more often. This will be a bit a long explanation. My machine is kind of recent, and previously with other distro I had all sort of trouble with uefi. Not this time, I don't know what is the configuration of guix, I've just setup my bios to avoid uefi. Here is what I've done: The 0.8 release has not wpa_supplicant and I didn't want to move the machine around, so I modified the system/install.scm in guix-0.8 and ran: # guix system disk-image gnu/system/install.scm I dropped "--image-size=800MiB" otherwise the image failed build. # dd if=/gnu/store/.....image-disk of=/dev/sdb When I boot the disk, I find out guix is version 0.7. I was under the impression that this wasn't compatible with my system config.scm. So I went back to guix-0.8 and changed package-mangement.scm recipe so that guix is guix 0.8 instead of 0.7. There is also guix-devel but... This was not very user friendly but hey, guix is alpha. When the disk boots I connect to the wifi with the following commands # wpa_passphrase > wpa.conf # wpa_supplicant -B -w -cwpa.conf Then: # dhclient To create partitions I used the graphical cfdisk command, then format them with: # mkfs.ext4 -L I used two partition one for root another for home. I mounted only the root partition (previous attempts I learned that it's not required to mount home, but you need to create the home directory with the correct permissions...): # mount -L root /mnt/ I copy pasted the config.scm to /mnt/etc/ that I had cooked started cow-store with # deco start cow-store /mnt I went swimming and when back GNU Guix was on my system :) I did quite a bit of experiments to get nouveau drivers (libre nvidia drivers) working. I remember trying them previously and they are (can be) quiet good. I just tested http://minetest.net it reports that nouveau drivers are kicking. With slim-service, Xorg will look for a .xsession in $HOME and not .xinitrc! I attached my .xsession file, but do not use it if you don't have all the command available, otherwise xorg will loop-restart indefinitly... It's not the case anymore but at some point I had several version of guix 0.7, 0.8-devel, and 0.9. Now I have only 0.9. - Also su and sudo doesn't source /etc/profile. - xterm was aweful, I installed st cf. suckless.scm I use ``guix -L `pwd` -e "(let ((x (use-modules (suckless)))) st)"`` command to install st. I'm wondering if there is better way to do. - I find my "nouveau hack" quiet ugly, but I'm not sure how the situation can be improved (cf. config.scm) - During my test, I failed to get XORG_DRI_DRIVER_PATH working (cf (gnu services xorg)) , nix-os is the only distro to use it. LIBGL_DRIVERS_PATH doesn't work either. - I'm not sure anymore about .guix-profile link, whether it gets created or not at some point. - I don't know if it's on purpose but $HOME/.guix-profile/sbin is missing from $PATH - I need a hat. At some point, I'm not sure why anymore, I had to chroot into the installed guix from the installation disk, here is what I did: # sh ./connect-to-wifi.sh # mount --bind /dev /mnt/dev # mount -t proc /proc /mnt/proc # cp /etc/resolv.conf /mnt/etc/ # chroot /mnt /bin/sh # source /etc/profile # guix-builder --build-users-group=guixbuild & # guix foo bar baz I still need a service for wpa-supplicant at some point, but my current configuration is good. So far, so good. Thanks guix people, all the best! --089e01681dee0c923f050a3182c2 Content-Type: application/octet-stream; name="config.scm" Content-Disposition: attachment; filename="config.scm" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i3or18lr0 OzsgVGhpcyBpcyBhbiBvcGVyYXRpbmcgc3lzdGVtIGNvbmZpZ3VyYXRpb24gdGVtcGxhdGUuCihk ZWZpbmUtbW9kdWxlIChjb25maWcpKQoKKHVzZS1tb2R1bGVzICgoZ3VpeCBwYWNrYWdlcykpKQoo dXNlLW1vZHVsZXMgKChndWl4IGRvd25sb2FkKSkpCih1c2UtbW9kdWxlcyAoKGd1aXggZ2l0LWRv d25sb2FkKSkpCih1c2UtbW9kdWxlcyAoKGd1aXggYnVpbGQgdXRpbHMpKSkKKHVzZS1tb2R1bGVz ICgoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KSkpCih1c2UtbW9kdWxlcyAoKGd1aXggbGljZW5zZXMp ICM6cHJlZml4IGxpY2Vuc2U6KSkKCih1c2UtbW9kdWxlcyAoKGdudSkpKQoodXNlLW1vZHVsZXMg KChnbnUgcGFja2FnZXMpKSkKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIG00KSkpCih1c2Ut bW9kdWxlcyAoKGdudSBwYWNrYWdlcyBwa2ctY29uZmlnKSkpCih1c2UtbW9kdWxlcyAoKGdudSBw YWNrYWdlcyBhdXRvdG9vbHMpKSkKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIGNvbXByZXNz aW9uKSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBnZXR0ZXh0KSkpCih1c2UtbW9kdWxl cyAoKGdudSBwYWNrYWdlcyBnbnVwZykpKQoodXNlLW1vZHVsZXMgKChnbnUgcGFja2FnZXMgZGF0 YWJhc2VzKSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBlbWFjcykpKQoodXNlLW1vZHVs ZXMgKChnbnUgcGFja2FnZXMgYmFzZSkpKQoodXNlLW1vZHVsZXMgKChnbnUgcGFja2FnZXMgZHdt KSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBhZG1pbikpKQoodXNlLW1vZHVsZXMgKChn bnUgcGFja2FnZXMgbGludXgpKSkKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIGdudXppbGxh KSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBhdXRvdG9vbHMpKSkKKHVzZS1tb2R1bGVz ICgoZ251IHBhY2thZ2VzIHZlcnNpb24tY29udHJvbCkpKQoodXNlLW1vZHVsZXMgKChnbnUgcGFj a2FnZXMgZ3VpbGUpKSkKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIGdudXBnKSkpCih1c2Ut bW9kdWxlcyAoKGdudSBwYWNrYWdlcyB4b3JnKSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdl cyB4ZGlzb3JnKSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBjb21tZW5jZW1lbnQpKSkK KHVzZS1tb2R1bGVzICgoZ251IHNlcnZpY2VzIGJhc2UpKSkKKHVzZS1tb2R1bGVzICgoZ251IHNl cnZpY2VzIHhvcmcpKSkKKHVzZS1tb2R1bGVzICgoZ251IHNlcnZpY2VzIG5ldHdvcmtpbmcpKSkK KHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIGJpc29uKSkpCih1c2UtbW9kdWxlcyAoKGdudSBw YWNrYWdlcyBmbGV4KSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBweXRob24pKSkKKHVz ZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIHhtbCkpKQoodXNlLW1vZHVsZXMgKChnbnUgcGFja2Fn ZXMgZm9udHV0aWxzKSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBnZXR0ZXh0KSkpCih1 c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBpbWFnZSkpKQoodXNlLW1vZHVsZXMgKChnbnUgcGFj a2FnZXMgZ2hvc3RzY3JpcHQpKSkKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIGdsaWIpKSkK KHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIGdudXRscykpKQoodXNlLW1vZHVsZXMgKChnbnUg cGFja2FnZXMgb3BlbmxkYXApKSkKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIG1wMykpKQoo dXNlLW1vZHVsZXMgKChnbnUgcGFja2FnZXMgbmN1cnNlcykpKQoodXNlLW1vZHVsZXMgKChnbnUg cGFja2FnZXMgcGhvdG8pKSkKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIHNhbWJhKSkpCih1 c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBzY2FubmVyKSkpCih1c2UtbW9kdWxlcyAoKGdudSBw YWNrYWdlcyBnbCkpKQoodXNlLW1vZHVsZXMgKChnbnUgcGFja2FnZXMgZ2FtZXMpKSkKKHVzZS1t b2R1bGVzICgoZ251IHBhY2thZ2VzIHBlcmwpKSkKCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdl cyBiYXNoKSkpCih1c2UtbW9kdWxlcyAoKGd1aXggZ2V4cCkpKQoodXNlLW1vZHVsZXMgKChndWl4 IG1vbmFkcykpKQoodXNlLW1vZHVsZXMgKChndWl4IGRlcml2YXRpb25zKSkpCih1c2UtbW9kdWxl cyAoKHNyZmkgc3JmaS0xKSkpCih1c2UtbW9kdWxlcyAoKHNyZmkgc3JmaS0yNikpKQoodXNlLW1v ZHVsZXMgKChpY2UtOSBtYXRjaCkpKQoKCgooZGVmaW5lLXB1YmxpYyBsaWJkcm0KICAocGFja2Fn ZQogICAgKG5hbWUgImxpYmRybSIpCiAgICAodmVyc2lvbiAiMi40LjQ2IikKICAgIChzb3VyY2UK ICAgICAgKG9yaWdpbgoJKG1ldGhvZCB1cmwtZmV0Y2gpCgkodXJpIChzdHJpbmctYXBwZW5kCgkg ICAgICAgImh0dHA6Ly9kcmkuZnJlZWRlc2t0b3Aub3JnL2xpYmRybS9saWJkcm0tIgoJICAgICAg IHZlcnNpb24KCSAgICAgICAiLnRhci5iejIiKSkKCShzaGEyNTYKCSAgKGJhc2UzMgoJICAgICIx d2FoNHFtcnJjdjBnbng2NWxocmx4YjZncHJ4Y2g5Mnd5OGxoeHY2MTAyZm1sNms1a3JrIikpKSkK ICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgIChpbnB1dHMKICAgICAgYCgo ImxpYnBjaWFjY2VzcyIgLGxpYnBjaWFjY2VzcykKCSgibGlicHRocmVhZC1zdHVicyIgLGxpYnB0 aHJlYWQtc3R1YnMpKSkKICAgIChuYXRpdmUtaW5wdXRzCiAgICAgICBgKCgicGtnLWNvbmZpZyIg LHBrZy1jb25maWcpKSkKICAgIChob21lLXBhZ2UgImh0dHA6Ly9kcmkuZnJlZWRlc2t0b3Aub3Jn L3dpa2kvIikKICAgIChzeW5vcHNpcyAiRGlyZWN0IHJlbmRlcmluZyB1c2Vyc3BhY2UgbGlicmFy eSIpCiAgICAoZGVzY3JpcHRpb24gIlRoZSBEaXJlY3QgUmVuZGVyaW5nIEluZnJhc3RydWN0dXJl LCBhbHNvIGtub3duIGFzIHRoZSBEUkksCmlzIGEgZnJhbWV3b3JrIGZvciBhbGxvd2luZyBkaXJl Y3QgYWNjZXNzIHRvIGdyYXBoaWNzIGhhcmR3YXJlIHVuZGVyIHRoZQpYIFdpbmRvdyBTeXN0ZW0g aW4gYSBzYWZlIGFuZCBlZmZpY2llbnQgbWFubmVyLiAgSXQgaW5jbHVkZXMgY2hhbmdlcyB0byB0 aGUKWCBzZXJ2ZXIsIHRvIHNldmVyYWwgY2xpZW50IGxpYnJhcmllcywgYW5kIHRvIHRoZSBrZXJu ZWwgKERSTSwgRGlyZWN0ClJlbmRlcmluZyBNYW5hZ2VyKS4gIFRoZSBtb3N0IGltcG9ydGFudCB1 c2UgZm9yIHRoZSBEUkkgaXMgdG8gY3JlYXRlIGZhc3QKT3BlbkdMIGltcGxlbWVudGF0aW9ucyBw cm92aWRpbmcgaGFyZHdhcmUgYWNjZWxlcmF0aW9uIGZvciBNZXNhLgpTZXZlcmFsIDNEIGFjY2Vs ZXJhdGVkIGRyaXZlcnMgaGF2ZSBiZWVuIHdyaXR0ZW4gdG8gdGhlIERSSSBzcGVjaWZpY2F0aW9u LAppbmNsdWRpbmcgZHJpdmVycyBmb3IgY2hpcHNldHMgcHJvZHVjZWQgYnkgM0RGWCwgQU1EIChm b3JtZXJseSBBVEkpLCBJbnRlbAphbmQgTWF0cm94LiIpCiAgICAobGljZW5zZSBsaWNlbnNlOngx MSkpKQoKCihkZWZpbmUtcHVibGljIG5vdXZlYXUtbWVzYQogIChwYWNrYWdlCiAgICAobmFtZSAi bm91dmVhdS1tZXNhIikKICAgIDs7IEluIG5ld2VyIHZlcnNpb25zICg5LjAuNSwgOS4xIGFuZCA5 LjIgdGVzdGVkKSwgIm1ha2UiIHJlc3VsdHMgaW4gYW4KICAgIDs7IGluZmluaXRlIGNvbmZpZ3Vy ZSBsb29wLCBzZWUKICAgIDs7IGh0dHBzOi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcu Y2dpP2lkPTU4ODEyCiAgICAodmVyc2lvbiAiOS4yLjUiKQogICAgKHNvdXJjZQogICAgICAob3Jp Z2luCgkobWV0aG9kIHVybC1mZXRjaCkKCSh1cmkgImZ0cDovL2Z0cC5mcmVlZGVza3RvcC5vcmcv cHViL21lc2Evb2xkZXItdmVyc2lvbnMvOS54LzkuMi41L01lc2FMaWItOS4yLjUudGFyLmJ6MiIp Cgkoc2hhMjU2CgkgIChiYXNlMzIKCSAgICAiMXczYnhjbGd3bDJod3l4azN6YTdkYmRha2I4anN5 YTdhZmNrMzVjejB2OHB4cHB2anNtbCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1z eXN0ZW0pCiAgICAocHJvcGFnYXRlZC1pbnB1dHMKICAgICAgYCgoImdscHJvdG8iICxnbHByb3Rv KQoJKCJsaWJkcm0iICxsaWJkcm0pCgkoImxpYngxMSIgLGxpYngxMSkKCSgibGlieGRhbWFnZSIg LGxpYnhkYW1hZ2UpCgkoImxpYnh4Zjg2dm0iICxsaWJ4eGY4NnZtKSkpCiAgICAoaW5wdXRzCiAg ICAgIGAoKCJkcmkycHJvdG8iICxkcmkycHJvdG8pCgkoImV4cGF0IiAsZXhwYXQpCgkoImxpYnhm aXhlcyIgLGxpYnhmaXhlcykKCSgidWRldiIgLHVkZXYpCgkoImxpYnhtbDIiICxsaWJ4bWwyKQoJ KCJtYWtlZGVwZW5kIiAsbWFrZWRlcGVuZCkpKQogICAgKG5hdGl2ZS1pbnB1dHMKICAgICBgKCgi bTQiICxtNCkKICAgICAgICgicGVybCIgLHBlcmwpCiAgICAgICAoImdldHRleHQiICxnbnUtZ2V0 dGV4dCkKICAgICAgICgiYXV0b2NvbmYiICxhdXRvY29uZikKICAgICAgICgiYXV0b21ha2UiICxh dXRvbWFrZSkKICAgICAgICgicGtnLWNvbmZpZyIgLHBrZy1jb25maWcpCiAgICAgICAoImxpYnRv b2wiICxsaWJ0b29sKQogICAgICAgKCJsaWJ0b29sIiAsbGlidG9vbCAiYmluIikKICAgICAgICgi ZmxleCIgLGZsZXgpCiAgICAgICAoImJpc29uIiAsYmlzb24pCiAgICAgICAoInB5dGhvbiIgLHB5 dGhvbi0yKSkpIDsgaW5jb21wYXRpYmxlIHdpdGggUHl0aG9uIDMgKHByaW50IHN5bnRheCkKICAg IChhcmd1bWVudHMKICAgICAgYCgjOmNvbmZpZ3VyZS1mbGFncwoJYCgiLS1lbmFibGUtdGV4dHVy ZS1mbG9hdCIKCSAgIi0tZW5hYmxlLWdsZXMxIgoJICAiLS1lbmFibGUtZ2xlczIiCgkgICItLWVu YWJsZS1nbHgiCgkgICItLWVuYWJsZS1nYWxsaXVtLWVnbCIKCSAgIi0tZW5hYmxlLWdhbGxpdW0t bGx2bSIKCSAgIi0tZW5hYmxlLWVnbCIKCSAgIi0tZW5hYmxlLWdhbGxpdW0tZWdsIgoJICAiLS1l bmFibGUtc2hhcmVkLWdsYXBpIgoJICAiLS1lbmFibGUtZ2JtIgoJICAiLS1lbmFibGUtZ2x4LXRs cyIKCSAgIi0tZW5hYmxlLWRyaSIKCSAgIi0tZW5hYmxlLW9zbWVzYSIKCSAgIi0td2l0aC1lZ2wt cGxhdGZvcm1zPXgxMSxkcm0iCgkgICItLWVuYWJsZS1nYm0iCgkgICItLWVuYWJsZS1zaGFyZWQt Z2xhcGkiCgkgICItLXdpdGgtZ2FsbGl1bS1kcml2ZXJzPW5vdXZlYXUiCgkgICItLXdpdGgtZHJp LWRyaXZlcnM9bm91dmVhdSIpKSkKICAgIChob21lLXBhZ2UgImh0dHA6Ly9tZXNhM2Qub3JnLyIp CiAgICAoc3lub3BzaXMgIk9wZW5HTCBpbXBsZW1lbnRhdGlvbiIpCiAgICAoZGVzY3JpcHRpb24g Ik1lc2EgaXMgYSBmcmVlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBPcGVuR0wgc3BlY2lmaWNhdGlv biAtCmEgc3lzdGVtIGZvciByZW5kZXJpbmcgaW50ZXJhY3RpdmUgM0QgZ3JhcGhpY3MuICBBIHZh cmlldHkgb2YgZGV2aWNlIGRyaXZlcnMKYWxsb3dzIE1lc2EgdG8gYmUgdXNlZCBpbiBtYW55IGRp ZmZlcmVudCBlbnZpcm9ubWVudHMgcmFuZ2luZyBmcm9tIHNvZnR3YXJlCmVtdWxhdGlvbiB0byBj b21wbGV0ZSBoYXJkd2FyZSBhY2NlbGVyYXRpb24gZm9yIG1vZGVybiBHUFVzLiIpCiAgICAobGlj ZW5zZSBsaWNlbnNlOngxMSkpKQoKCihkZWZpbmUtcHVibGljIHhvcmctbm91dmVhdS1tZXNhCiAg KHBhY2thZ2UgKGluaGVyaXQgeG9yZy1zZXJ2ZXIpCgkgICAobmFtZSAieG9yZy1ub3V2ZWF1LW1l c2EiKQoJICAgKGlucHV0cyBgKCgibm91dmVhdS1tZXNhIiAsbm91dmVhdS1tZXNhKQoJCSAgICAg LEAoYWxpc3QtZGVsZXRlICJtZXNhIiAocGFja2FnZS1pbnB1dHMgeG9yZy1zZXJ2ZXIpKSkpKSkK CgooZGVmaW5lLXB1YmxpYyBtaW5ldGVzdC1ub3V2ZWF1CiAgKHBhY2thZ2UgKGluaGVyaXQgbWlu ZXRlc3QpCgkgICAobmFtZSAibWluZXRlc3Qtbm91dmVhdSIpCgkgICAoaW5wdXRzIGAoKCJub3V2 ZWF1LW1lc2EiICxub3V2ZWF1LW1lc2EpCgkJICAgICAsQChhbGlzdC1kZWxldGUgIm1lc2EiIChw YWNrYWdlLWlucHV0cyBtaW5ldGVzdCkpKSkpKQoKCihkZWZpbmUtcHVibGljIHhmODYtdmlkZW8t bm91dmVhdQogIChwYWNrYWdlCiAgICAobmFtZSAieGY4Ni12aWRlby1ub3V2ZWF1IikKICAgICh2 ZXJzaW9uICIxLjAuMTEiKQogICAgKHNvdXJjZQogICAgIChvcmlnaW4KICAgICAgIChtZXRob2Qg Z2l0LWZldGNoKQogICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQoJICAgICAodXJsICJodHRwOi8v Y2dpdC5mcmVlZGVza3RvcC5vcmcvbm91dmVhdS94Zjg2LXZpZGVvLW5vdXZlYXUvIikKCSAgICAg KGNvbW1pdCAiM2NkNGM4NCIpKSkKICAgICAgIChzaGEyNTYKCShiYXNlMzIKCSAiMHpkYjZiMG43 cHpmM2w4ajhobDdnZnNoZzhqc21jbWsxMWlzdnZsNTQyeWMzNjE2MmFocCIpKSkpCiAgICAoYnVp bGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pCiAgICAobmF0aXZlLWlucHV0cyBgKCgibTQiICxt NCkKCQkgICAgICgiYXV0b2NvbmYiICxhdXRvY29uZikKCQkgICAgICgiYXV0b21ha2UiICxhdXRv bWFrZSkKCQkgICAgICgibGlidG9vbCIgLGxpYnRvb2wpCgkJICAgICAoImxpYnRvb2wiICxsaWJ0 b29sICJiaW4iKQoJCSAgICAgKCJwa2ctY29uZmlnIiAscGtnLWNvbmZpZykpKQogICAgKGlucHV0 cwogICAgIGAoKCJsaWJ4MTEiICxsaWJ4MTEpCiAgICAgICAoInhvcmctbm91dmVhdS1tZXNhIiAs eG9yZy1ub3V2ZWF1LW1lc2EpCiAgICAgICAoIm5vdXZlYXUtbWVzYSIgLG5vdXZlYXUtbWVzYSkK ICAgICAgICgibGliZHJtIiAsbGliZHJtKSkpCiAgICAoYXJndW1lbnRzCiAgICAgJygjOnBoYXNl cwoJKGFsaXN0LWNvbnMtYmVmb3JlCgkgJ2NvbmZpZ3VyZQoJICdhdXRvZ2VuIChsYW1iZGEgXwoJ CSAgICA7OyAoc2V0ZW52ICJDUEFUSCIgKHN0cmluZy1qb2luICMkbGliZHJtICJpbmNsdWRlOiIg KGdldGVudiAiQ1BBVEgiKSkpCgkJICAgIDs7IChzZXRlbnYgIkxJQlJBUllfUEFUSCIgKHN0cmlu Zy1qb2luICMkbGliZHJtICJsaWI6IiAoZ2V0ZW52ICJMSUJSQVJZX1BBVEgiKSkpCgkJICAgIDs7 IChzZXRlbnYgIlBLR19DT05GSUdfUEFUSCIgKHN0cmluZy1qb2luICMkbGliZHJtICJsaWIvcGtn Y29uZmlnOiIgKGdldGVudiAiUEtHX0xJQlJBUllfUEFUSCIpKSkKCQkgICAgKGlmICh6ZXJvPyAo c3lzdGVtKiAiLi9hdXRvZ2VuLnNoIikpCgkJCShmb3ItZWFjaCBwYXRjaC1zaGViYW5nICAoZmlu ZC1maWxlcyAieGY4Ni12aWRlby1ub3V2ZWF1LTEuMC4xMSIgIioiKSkKCQkJLTEpKQoJICVzdGFu ZGFyZC1waGFzZXMpKSkKICAgIChob21lLXBhZ2UgImh0dHA6Ly9ub3V2ZWF1LmZyZWVkZXNrdG9w Lm9yZy8iKQogICAgKHN5bm9wc2lzICJEcml2ZXJzIHN1cHBvcnRpbmcgM0QgYW5kIDJEIGFjY2Vs ZXJhdGlvbiBmb3IgbnZpZGlhIHZpZGVvIGNhcmRzIikKICAgIChkZXNjcmlwdGlvbiAibm91dmVh dSBkcml2ZXJzIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6eDExKSkpCgoKCihkZWZpbmUtcHVibGlj IG5vdXZlYXUtZ2x1CiAgKHBhY2thZ2UKICAgIChuYW1lICJub3V2ZWF1LWdsdSIpCiAgICAodmVy c2lvbiAiOS4wLjAiKQogICAgKHNvdXJjZSAob3JpZ2luCgkgICAgIChtZXRob2QgdXJsLWZldGNo KQoJICAgICAodXJpIChzdHJpbmctYXBwZW5kICJmdHA6Ly9mdHAuZnJlZWRlc2t0b3Aub3JnL3B1 Yi9tZXNhL2dsdS9nbHUtIgoJCQkJICB2ZXJzaW9uICIudGFyLmd6IikpCgkgICAgIChzaGEyNTYK CSAgICAgIChiYXNlMzIgIjByNzJ5eWhqMDl4M2tybjNrbjYyOWpxYnd5cTUwamk4dzVyaTJwbjZ6 d3JrMzVtNGcxczMiKSkpKQogICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAg KGlucHV0cyBgKCgibm91dmVhdS1tZXNhIiAsbm91dmVhdS1tZXNhKSkpCiAgICAoaG9tZS1wYWdl ICJodHRwOi8vd3d3Lm9wZW5nbC5vcmcvYXJjaGl2ZXMvcmVzb3VyY2VzL2ZhcS90ZWNobmljYWwv Z2x1Lmh0bSIpCiAgICAoc3lub3BzaXMgIk1lc2EgT3BlbkdMIFV0aWxpdHkgbGlicmFyeSIpCiAg ICAoZGVzY3JpcHRpb24KICAgICAiR0xVLCBvciBPcGVuR0wgVXRpbGl0eSBMaWJyYXJ5IHByb3Zp ZGVzIHNvbWUgaGlnaGVyLWxldmVsIGZ1bmN0aW9uYWxpdHkKbm90IHByb3ZpZGVkIGJ5IGp1c3Qg T3BlbkdMIGl0c2VsZi4gIFNvbWUgb2YgR0xVJ3MgRmVhdHVyZXMKaW5jbHVkZTogU2NhbGluZyBv ZiAyRCBpbWFnZXMgYW5kIGNyZWF0aW9uIG9mIG1pcG1hcCBweXJhbWlkcywKVHJhbnNmb3JtYXRp b24gb2Ygb2JqZWN0IGNvb3JkaW5hdGVzIGludG8gZGV2aWNlIGNvb3JkaW5hdGVzIGFuZAp2aWNl IHZlcnNhLCBTdXBwb3J0IGZvciBOVVJCUyBzdXJmYWNlcywgU3VwcG9ydCBmb3IgdGVzc2VsbGF0 aW9uCm9mIGNvbmNhdmUgb3IgYm93IHRpZSBwb2x5Z29uYWwgcHJpbWl0aXZlcywgU3BlY2lhbHR5 IHRyYW5zZm9ybWF0aW9uCm1hdHJpY2VzIGZvciBjcmVhdGluZyBwZXJzcGVjdGl2ZSBhbmQgb3J0 aG9ncmFwaGljIHByb2plY3Rpb25zLApwb3NpdGlvbmluZyBhIGNhbWVyYSwgYW5kIHNlbGVjdGlv bi9waWNraW5nLCBSZW5kZXJpbmcgb2YgZGlzaywKY3lsaW5kZXIsIGFuZCBzcGhlcmUgcHJpbWl0 aXZlcywgSW50ZXJwcmV0aW5nIE9wZW5HTCBlcnJvciB2YWx1ZXMKYXMgQVNDSUkgdGV4dC4iKQog ICAgKGxpY2Vuc2UgKGxpY2Vuc2U6eDExLXN0eWxlICJodHRwOi8vZGlyZWN0b3J5LmZzZi5vcmcv d2lraS9MaWNlbnNlOlNHSUZyZWVCdjIiKSkpKQoKCgooZGVmaW5lLXB1YmxpYyB3aW5lCiAgKHBh Y2thZ2UKICAgIChuYW1lICJ3aW5lIikKICAgICh2ZXJzaW9uICIxLjcuMzMiKQogICAgKHNvdXJj ZSAob3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCiAgICAgICAgICAgICAg KHVyaSAoc3RyaW5nLWFwcGVuZCAibWlycm9yOi8vc291cmNlZm9yZ2Uvd2luZS8iCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lICItIiB2ZXJzaW9uICIudGFyLmJ6MiIpKQog ICAgICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAg ICAgIjB4Y2pzaDM2MzVpOHdweml4enNsMDVtM2RrcTc0dnExOTN4M2lwanIzZnkwbDlwcnNsZzMi KSkKICAgICAgICAgICAgICAobW9kdWxlcyAnKChndWl4IGJ1aWxkIHV0aWxzKSkpCiAgICAgICAg ICAgICAgKHNuaXBwZXQKICAgICAgICAgICAgICAgJyhzdWJzdGl0dXRlKiAiTWFrZS52YXJzLmlu IgogICAgICAgICAgICAgICAgICAoKCIvYmluL3NoIikgIkBTSEVMTEAiKSkpKSkKICAgIChidWls ZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3RlbSkKICAgIChuYXRpdmUtaW5wdXRzIGAoKCJwa2ctY29u ZmlnIiAscGtnLWNvbmZpZykKICAgICAgICAgICAgICAgICAgICAgKCJnZXR0ZXh0IiAsZ251LWdl dHRleHQpCiAgICAgICAgICAgICAgICAgICAgICgiZmxleCIgLGZsZXgpCiAgICAgICAgICAgICAg ICAgICAgICgiYmlzb24iICxiaXNvbikKICAgICAgICAgICAgICAgICAgICAgKCJwZXJsIiAscGVy bCkpKQogICAgKGlucHV0cwogICAgIGAoKCJhbHNhLWxpYiIgLGFsc2EtbGliKQogICAgICAgKCJk YnVzIiAsZGJ1cykKICAgICAgICgiZm9udGNvbmZpZyIgLGZvbnRjb25maWcpCiAgICAgICAoImZy ZWV0eXBlIiAsZnJlZXR5cGUpCiAgICAgICAoImdudXRscyIgLGdudXRscykKICAgICAgICgibm91 dmVhdS1nbHUiICxub3V2ZWF1LWdsdSkKICAgICAgICgibGNtcyIgLGxjbXMpCiAgICAgICAoImxp YnhtbDIiICxsaWJ4bWwyKQogICAgICAgKCJsaWJ4c2x0IiAsbGlieHNsdCkKICAgICAgICgibGli Z3Bob3RvMiIgLGxpYmdwaG90bzIpCiAgICAgICAoImxpYm1wZzEyMyIgLG1wZzEyMykKICAgICAg ICgibGlibGRhcCIgLG9wZW5sZGFwKQogICAgICAgKCJsaWJuZXRhcGkiICxzYW1iYSkKICAgICAg ICgibGlic2FuZSIgLHNhbmUtYmFja2VuZHMpCiAgICAgICAoImxpYnBuZyIgLGxpYnBuZykKICAg ICAgICgibGlianBlZyIgLGxpYmpwZWcpCiAgICAgICAoImxpYnRpZmYiICxsaWJ0aWZmKQogICAg ICAgKCJsaWJJQ0UiICxsaWJpY2UpCiAgICAgICAoImxpYlgxMSIgLGxpYngxMSkKICAgICAgICgi bGliWGkiICxsaWJ4aSkKICAgICAgICgibGliWGV4dCIgLGxpYnhleHQpCiAgICAgICAoImxpYlhj dXJzb3IiICxsaWJ4Y3Vyc29yKQogICAgICAgKCJsaWJYcmVuZGVyIiAsbGlieHJlbmRlcikKICAg ICAgICgibGliWHJhbmRyIiAsbGlieHJhbmRyKQogICAgICAgKCJsaWJYaW5lcmFtYSIgLGxpYnhp bmVyYW1hKQogICAgICAgKCJsaWJYeGY4NnZtIiAsbGlieHhmODZ2bSkKICAgICAgICgibGliWGNv bXBvc2l0ZSIgLGxpYnhjb21wb3NpdGUpCiAgICAgICAoImNvbXBvc2l0ZXByb3RvIiAsY29tcG9z aXRlcHJvdG8pCiAgICAgICAoIm5vdXZlYXUtbWVzYSIgLG5vdXZlYXUtbWVzYSkKICAgICAgICgi bmN1cnNlcyIgLG5jdXJzZXMpCiAgICAgICAoInVuaXhvZGJjIiAsdW5peG9kYmMpCiAgICAgICAo InpsaWIiICx6bGliKSkpCiAgICAoYXJndW1lbnRzCiAgICAgYCg7OyBUaGUgNjQtYml0IGJ1aWxk IG9mIFdpbmUgaXMgcmVwb3J0ZWRseSBsZXNzIHVzZWZ1bCBvciBldmVuIHVzYWJsZSwKICAgICAg IDs7IHNvIGZvcmNlIGEgMzItYml0IGJ1aWxkICh1bmRlciB0aGUgYXNzdW1wdGlvbiB0aGF0IHRo aXMgcGFja2FnZSBpcwogICAgICAgOzsgYmVpbmcgdXNlZCBvbiBhbiBJQTMyLWNvbXBhdGlibGUg YXJjaGl0ZWN0dXJlLikKICAgICAgICM6c3lzdGVtICJpNjg2LWxpbnV4IgoKICAgICAgIDs7IFhY WDogVGhlcmUncyBhIHRlc3Qgc3VpdGUsIGJ1dCBpdCdzIHVuY2xlYXIgd2hldGhlciBpdCdzIHN1 cHBvc2VkIHRvCiAgICAgICA7OyBwYXNzLgogICAgICAgIzp0ZXN0cz8gI2YKCiAgICAgICAjOnBo YXNlcwogICAgICAgKGFsaXN0LWNvbnMtYWZ0ZXIKICAgICAgICAnY29uZmlndXJlICdwYXRjaC1k bG9wZW4tcGF0aHMKICAgICAgICA7OyBIYXJkY29kZSBkbG9wZW5lZCBzb25hbWVzIHRvIGFic29s dXRlIHBhdGhzLgogICAgICAgIChsYW1iZGEgXwogICAgICAgICAgKGxldCogKChsaWJyYXJ5LXBh dGggKHNlYXJjaC1wYXRoLWFzLXN0cmluZy0+bGlzdAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIChnZXRlbnYgIkxJQlJBUllfUEFUSCIpKSkKICAgICAgICAgICAgICAgICAoZmluZC1z byAobGFtYmRhIChzb25hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VhcmNoLXBh dGggbGlicmFyeS1wYXRoIHNvbmFtZSkpKSkKICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJpbmNs dWRlL2NvbmZpZy5oIgogICAgICAgICAgICAgICgoIigjZGVmaW5lIFNPTkFNRV8uKiApXCIoLiop XCIiIF8gZGVmc28gc29uYW1lKQogICAgICAgICAgICAgICAoZm9ybWF0ICNmICJ+YVwifmFcIiIg ZGVmc28gKGZpbmQtc28gc29uYW1lKSkpKSkpCiAgICAgICAgJXN0YW5kYXJkLXBoYXNlcykpKQog ICAgKGhvbWUtcGFnZSAiaHR0cDovL3d3dy53aW5laHEub3JnLyIpCiAgICAoc3lub3BzaXMgIklt cGxlbWVudGF0aW9uIG9mIHRoZSBXaW5kb3dzIEFQSSIpCiAgICAoZGVzY3JpcHRpb24KICAgICAi V2luZSAob3JpZ2luYWxseSBhbiBhY3JvbnltIGZvciBcIldpbmUgSXMgTm90IGFuIEVtdWxhdG9y XCIpIGlzIGEKY29tcGF0aWJpbGl0eSBsYXllciBjYXBhYmxlIG9mIHJ1bm5pbmcgV2luZG93cyBh cHBsaWNhdGlvbnMuICBJbnN0ZWFkIG9mCnNpbXVsYXRpbmcgaW50ZXJuYWwgV2luZG93cyBsb2dp YyBsaWtlIGEgdmlydHVhbCBtYWNoaW5lIG9yIGVtdWxhdG9yLCBXaW5lCnRyYW5zbGF0ZXMgV2lu ZG93cyBBUEkgY2FsbHMgaW50byBQT1NJWCBjYWxscyBvbi10aGUtZmx5LCBlbGltaW5hdGluZyB0 aGUKcGVyZm9ybWFuY2UgYW5kIG1lbW9yeSBwZW5hbHRpZXMgb2Ygb3RoZXIgbWV0aG9kcyBhbmQg YWxsb3dpbmcgeW91IHRvIGNsZWFubHkKaW50ZWdyYXRlIFdpbmRvd3MgYXBwbGljYXRpb25zIGlu dG8geW91ciBkZXNrdG9wLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmxncGwyLjErKQoKICAgIDs7 IEl0IHJlYWxseSBvbmx5IHN1cHBvcnRzIElBMzIsIGJ1dCBidWlsZGluZyBvbiB4ODZfNjQgd2ls bCBoYXZlIHRoZSBzYW1lCiAgICA7OyBlZmZlY3QgYXMgYnVpbGRpbmcgb24gaTY4NiBhbnl3YXku CiAgICAoc3VwcG9ydGVkLXN5c3RlbXMgJygiaTY4Ni1saW51eCIgIng4Nl82NC1saW51eCIpKSkp CgoKCgooZGVmaW5lKiAoeG9yZy1zdGFydC1jb21tYW5kICM6a2V5CgkJCSAgICAgKGd1aWxlIChj YW5vbmljYWwtcGFja2FnZSBndWlsZS0yLjApKQoJCQkgICAgICh4b3JnLXNlcnZlciB4b3JnLW5v dXZlYXUtbWVzYSkKCQkJICAgICAoZHJpdmVycyAnKCkpIChyZXNvbHV0aW9ucyAnKCkpKQogICJS ZXR1cm4gYSBkZXJpdmF0aW9uIHRoYXQgYnVpbGRzIGEgQHZhcntndWlsZX0gc2NyaXB0IHRvIHN0 YXJ0IHRoZSBYIHNlcnZlcgpmcm9tIEB2YXJ7eG9yZy1zZXJ2ZXJ9LiAgVXN1YWxseSB0aGUgWCBz ZXJ2ZXIgaXMgc3RhcnRlZCBieSBhIGxvZ2luIG1hbmFnZXIuCgpAdmFye2RyaXZlcnN9IG11c3Qg YmUgZWl0aGVyIHRoZSBlbXB0eSBsaXN0LCBpbiB3aGljaCBjYXNlIFhvcmcgY2hvb3NlcyBhCmdy YXBoaWNzIGRyaXZlciBhdXRvbWF0aWNhbGx5LCBvciBhIGxpc3Qgb2YgZHJpdmVyIG5hbWVzIHRo YXQgd2lsbCBiZSB0cmllZCBpbgp0aGlzIG9yZGVyLS0tZS5nLiwgQGNvZGV7KFwibW9kZXNldHRp bmdcIiBcInZlc2FcIil9LgoKTGlrZXdpc2UsIHdoZW4gQHZhcntyZXNvbHV0aW9uc30gaXMgdGhl IGVtcHR5IGxpc3QsIFhvcmcgY2hvb3NlcyBhbgphcHByb3ByaWF0ZSBzY3JlZW4gcmVzb2x1dGlv bjsgb3RoZXJ3aXNlLCBpdCBtdXN0IGJlIGEgbGlzdCBvZgpyZXNvbHV0aW9ucy0tLWUuZy4sIEBj b2RleygoMTAyNCA3NjgpICg2NDAgNDgwKSl9LiIKCiAgKGRlZmluZSAoZGV2aWNlLXNlY3Rpb24g ZHJpdmVyKQogICAgKHN0cmluZy1hcHBlbmQgIgpTZWN0aW9uIFwiRGV2aWNlXCIKICBJZGVudGlm aWVyIFwiZGV2aWNlLSIgZHJpdmVyICJcIgogIERyaXZlciBcIiIgZHJpdmVyICJcIgpFbmRTZWN0 aW9uIikpCgogIChkZWZpbmUgKHNjcmVlbi1zZWN0aW9uIGRyaXZlciByZXNvbHV0aW9ucykKICAg IChzdHJpbmctYXBwZW5kICIKU2VjdGlvbiBcIlNjcmVlblwiCiAgSWRlbnRpZmllciBcInNjcmVl bi0iIGRyaXZlciAiXCIKICBEZXZpY2UgXCJkZXZpY2UtIiBkcml2ZXIgIlwiCiAgU3ViU2VjdGlv biBcIkRpc3BsYXlcIgogICAgTW9kZXMgIgogIChzdHJpbmctam9pbiAobWFwIChtYXRjaC1sYW1i ZGEKCQkgICAgICgoeCB5KQoJCSAgICAgIChzdHJpbmctYXBwZW5kICJcIiIgKG51bWJlci0+c3Ry aW5nIHgpCgkJCQkgICAgICJ4IiAobnVtYmVyLT5zdHJpbmcgeSkgIlwiIikpKQoJCSAgICByZXNv bHV0aW9ucykpICIKICBFbmRTdWJTZWN0aW9uCkVuZFNlY3Rpb24iKSkKCiAgKGRlZmluZSAoeHNl cnZlci5jb25mKQogICAgKHRleHQtZmlsZSogInhzZXJ2ZXIuY29uZiIgIgpTZWN0aW9uIFwiRmls ZXNcIgogIEZvbnRQYXRoIFwiIiBmb250LWFkb2JlNzVkcGkgIi9zaGFyZS9mb250cy9YMTEvNzVk cGlcIgogIE1vZHVsZVBhdGggXCIiIHhmODYtdmlkZW8tbm91dmVhdSAiL2xpYi94b3JnL21vZHVs ZXMvZHJpdmVyc1wiCiAgTW9kdWxlUGF0aCBcIiIgeGY4Ni1pbnB1dC1rZXlib2FyZCAiL2xpYi94 b3JnL21vZHVsZXMvaW5wdXRcIgogIE1vZHVsZVBhdGggXCIiIHhmODYtaW5wdXQtbW91c2UgIi9s aWIveG9yZy9tb2R1bGVzL2lucHV0XCIKICBNb2R1bGVQYXRoIFwiIiB4Zjg2LWlucHV0LXN5bmFw dGljcyAiL2xpYi94b3JnL21vZHVsZXMvaW5wdXRcIgogIE1vZHVsZVBhdGggXCIiIHhvcmctc2Vy dmVyICIvbGliL3hvcmcvbW9kdWxlc1wiCiAgTW9kdWxlUGF0aCBcIiIgeG9yZy1zZXJ2ZXIgIi9s aWIveG9yZy9tb2R1bGVzL2V4dGVuc2lvbnNcIgogIE1vZHVsZVBhdGggXCIiIHhvcmctc2VydmVy ICIvbGliL3hvcmcvbW9kdWxlcy9tdWx0aW1lZGlhXCIKRW5kU2VjdGlvbgoKU2VjdGlvbiBcIlNl cnZlckZsYWdzXCIKICBPcHRpb24gXCJBbGxvd01vdXNlT3BlbkZhaWxcIiBcIm9uXCIKRW5kU2Vj dGlvbgoiCiAgKHN0cmluZy1qb2luIChtYXAgZGV2aWNlLXNlY3Rpb24gZHJpdmVycykgIlxuIikK ICAoc3RyaW5nLWpvaW4gKG1hcCAoY3V0IHNjcmVlbi1zZWN0aW9uIDw+IHJlc29sdXRpb25zKQoJ CSAgICBkcml2ZXJzKQoJICAgICAgICJcbiIpKSkKCiAgKG1sZXQgJXN0b3JlLW1vbmFkICgoY29u ZmlnICh4c2VydmVyLmNvbmYpKSkKICAgIChkZWZpbmUgc2NyaXB0CiAgICAgIDs7IFdyaXRlIGEg c21hbGwgd3JhcHBlciBhcm91bmQgdGhlIFggc2VydmVyLgogICAgICAjfihiZWdpbgoJICAoc2V0 ZW52ICJYS0JfQklORElSIiAoc3RyaW5nLWFwcGVuZCAjJHhrYmNvbXAgIi9iaW4iKSkKCgkgIChh cHBseSBleGVjbCAoc3RyaW5nLWFwcGVuZCAjJHhvcmctc2VydmVyICIvYmluL1giKQoJCSAoc3Ry aW5nLWFwcGVuZCAjJHhvcmctc2VydmVyICIvYmluL1giKSA7YXJndlswXQoJCSAiLWxvZ3ZlcmJv c2UiICItdmVyYm9zZSIKCQkgIi14a2JkaXIiIChzdHJpbmctYXBwZW5kICMkeGtleWJvYXJkLWNv bmZpZyAiL3NoYXJlL1gxMS94a2IiKQoJCSAiLWNvbmZpZyIgIyRjb25maWcKCQkgIi1ub2xpc3Rl biIgInRjcCIgIi10ZXJtaW5hdGUiCgoJCSA7OyBOb3RlOiBTTGlNIGFuZCBvdGhlciBkaXNwbGF5 IG1hbmFnZXJzIGFkZCB0aGUKCQkgOzsgJy1hdXRoJyBmbGFnIGJ5IHRoZW1zZWx2ZXMuCgkJIChj ZHIgKGNvbW1hbmQtbGluZSkpKSkpCgogICAgKGdleHAtPnNjcmlwdCAic3RhcnQteG9yZyIgc2Ny aXB0KSkpCgoob3BlcmF0aW5nLXN5c3RlbQogIChob3N0LW5hbWUgImFta3Jhd24iKQogICh0aW1l em9uZSAiRXVyb3BlL1BhcmlzIikKICAobG9jYWxlICJmcl9GUi51dGY4IikKICAKICA7OyBBc3N1 bWluZyAvZGV2L3NkWCBpcyB0aGUgdGFyZ2V0IGhhcmQgZGlzaywgYW5kICJyb290IiBpcwogIDs7 IHRoZSBsYWJlbCBvZiB0aGUgdGFyZ2V0IHJvb3QgZmlsZSBzeXN0ZW0uCiAgKGJvb3Rsb2FkZXIg KGdydWItY29uZmlndXJhdGlvbiAoZGV2aWNlICIvZGV2L3NkYSIpKSkKICAoZmlsZS1zeXN0ZW1z CgkJKGNvbnMgKGZpbGUtc3lzdGVtCgkJCShkZXZpY2UgInJvb3QiKQoJCQkodGl0bGUgJ2xhYmVs KQoJCQkobW91bnQtcG9pbnQgIi8iKQoJCQkodHlwZSAiZXh0NCIpKQoJKGNvbnMgKGZpbGUtc3lz dGVtCgkJKGRldmljZSAiaG9tZSIpCgkJKHRpdGxlICdsYWJlbCkKCQkobW91bnQtcG9pbnQgIi9o b21lLyIpCgkJKHR5cGUgImV4dDQiKSkKCQkgICAgICAlYmFzZS1maWxlLXN5c3RlbXMpKSkKCiAg KHN3YXAtZGV2aWNlcyAnKCIvZGV2L3NkYTIiKSkKCiAgKHBhY2thZ2VzIChjb25zKiBzZXR4a2Jt YXAgZHdtIGZlaCB3aW5lIG1pbmV0ZXN0LW5vdXZlYXUgeG9yZy1ub3V2ZWF1LW1lc2Egbm91dmVh dS1tZXNhIHhmODYtdmlkZW8tbm91dmVhdSBhdXRvY29uZiBhdXRvbWFrZSBiemlwMiBsaWJnY3J5 cHQgcGtnLWNvbmZpZyBzcWxpdGUgZ2l0IGljZWNhdCBlbWFjcy1uby14LXRvb2xraXQgd2lyZWxl c3MtdG9vbHMgd3BhLXN1cHBsaWNhbnQgJWJhc2UtcGFja2FnZXMpKQogIChzZXJ2aWNlcyAoY29u cyogKGRoY3AtY2xpZW50LXNlcnZpY2UpIChzbGltLXNlcnZpY2UgIzphdXRvLWxvZ2luPyAjdCAj OmRlZmF1bHQtdXNlciAiYW1pcm91Y2hlIiAjOnN0YXJ0eCAoeG9yZy1zdGFydC1jb21tYW5kKSkg JWJhc2Utc2VydmljZXMpKQoKICA7OyBUaGlzIGlzIHdoZXJlIHVzZXIgYWNjb3VudHMgYXJlIHNw ZWNpZmllZC4gIFRoZSAicm9vdCIKICA7OyBhY2NvdW50IGlzIGltcGxpY2l0LCBhbmQgaXMgaW5p dGlhbGx5IGNyZWF0ZWQgd2l0aCB0aGUKICA7OyBlbXB0eSBwYXNzd29yZC4KICAodXNlcnMgKGxp c3QgKHVzZXItYWNjb3VudAoJCShuYW1lICJhbWlyb3VjaGUiKQoJCShncm91cCAidXNlcnMiKQoJ CShzdXBwbGVtZW50YXJ5LWdyb3VwcyAnKCJ3aGVlbCIKCQkJCQkiYXVkaW8iICJ2aWRlbyIpKQoJ CShob21lLWRpcmVjdG9yeSAiL2hvbWUvYW1pcm91Y2hlIikpKSkpCg== --089e01681dee0c923f050a3182c2 Content-Type: application/octet-stream; name=".xsession" Content-Disposition: attachment; filename=".xsession" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i3or1jev1 IyEvYmluL3NoCgpzb3VyY2UgJEhPTUUvLmJhc2hyYwoKZW52ID4gfi8uZW52CgpmZWggLS1iZy1z Y2FsZSAkSE9NRS9zcmMvZ3VpeC9ndWl4LWFydHdvcmsvc2xpbS8wLjgvYmFja2dyb3VuZC5wbmcK CnNldHhrYm1hcCAtbW9kZWwgcGMxMDUgLWxheW91dCBmciAtdmFyaWFudCBsYXRpbjkKCmR3bQo= --089e01681dee0c923f050a3182c2 Content-Type: application/octet-stream; name="suckless.scm" Content-Disposition: attachment; filename="suckless.scm" Content-Transfer-Encoding: base64 X-Attachment-Id: f_i3or29ug2 Ozs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCjs7 OyBDb3B5cmlnaHQgwqkgMjAxMyBDeXJpbCBSb2VsYW5kdCA8dGlwZWNhbWxAZ21haWwuY29tPgo7 OzsKOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4Lgo7OzsKOzs7IEdOVSBHdWl4IGlz IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQK Ozs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMg cHVibGlzaGVkIGJ5Cjs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIg dmVyc2lvbi4KOzs7Cjs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKOzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKOzs7IEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCjs7Owo7OzsgWW91IHNob3VsZCBoYXZlIHJl Y2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKOzs7IGFsb25n IHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uCgooZGVmaW5lLW1vZHVsZSAoc3Vja2xlc3MpCiAgIzp1c2UtbW9kdWxlICgoZ3VpeCBsaWNl bnNlcykgIzpwcmVmaXggbGljZW5zZTopCiAgIzp1c2UtbW9kdWxlIChndWl4IHBhY2thZ2VzKQog ICM6dXNlLW1vZHVsZSAoZ3VpeCBkb3dubG9hZCkKICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdl cyBwa2ctY29uZmlnKQogICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gZ251KQogICM6 dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzKQogICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHhv cmcpKQoKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIHhvcmcpKSkKKHVzZS1tb2R1bGVzICgo Z251IHBhY2thZ2VzIG5jdXJzZXMpKSkKKHVzZS1tb2R1bGVzICgoZ251IHBhY2thZ2VzIGZvbnRz KSkpCih1c2UtbW9kdWxlcyAoKGdudSBwYWNrYWdlcyBmb250dXRpbHMpKSkKCgooZGVmaW5lIChj dXJyZW50LXBhdGggLiBwYXRjaGVzKQogKG1hcCAobGFtYmRhICh4KSAoc3RyaW5nLWFwcGVuZCAo ZGlybmFtZSAoY3VycmVudC1maWxlbmFtZSkpICIvIiB4KSkgcGF0Y2hlcykpCgoKKGRlZmluZS1w dWJsaWMgZHdtCiAgKHBhY2thZ2UKICAgIChuYW1lICJkd20iKQogICAgKHZlcnNpb24gIjYuMCIp CiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAg ICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cDovL2RsLnN1Y2tsZXNzLm9yZy9kd20v ZHdtLSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIp KQogICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgIChiYXNlMzIgIjBtcGJpdnk5ajgw bDFqcXE0YmQ0ZzR6OHM1YzU0Znhyamo0NGF2bWZ3bmNqd3F5bGlmZGoiKSkpKQogICAgKGJ1aWxk LXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgIGAoIzp0ZXN0cz8g I2YKICAgICAgICM6cGhhc2VzCiAgICAgICAoYWxpc3QtcmVwbGFjZQogICAgICAgICdjb25maWd1 cmUKICAgICAgICAobGFtYmRhIF8KICAgICAgICAgKHN1YnN0aXR1dGUqICJNYWtlZmlsZSIgKCgi XFwkXFx7Q0NcXH0iKSAiZ2NjIikpCiAgICAgICAgICN0KQogICAgICAgIChhbGlzdC1yZXBsYWNl CiAgICAgICAgICdpbnN0YWxsCiAgICAgICAgIChsYW1iZGEqICgjOmtleSBvdXRwdXRzICM6YWxs b3ctb3RoZXIta2V5cykKICAgICAgICAgIChsZXQgKChvdXQgKGFzc29jLXJlZiBvdXRwdXRzICJv dXQiKSkpCiAgICAgICAgICAgKHplcm8/CiAgICAgICAgICAgIChzeXN0ZW0qICJtYWtlIiAiaW5z dGFsbCIKICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIkRFU1RESVI9IiBvdXQp ICJQUkVGSVg9IikpKSkKICAgICAgICAgJXN0YW5kYXJkLXBoYXNlcykpKSkKICAgIChpbnB1dHMK ICAgICBgKCgibGlieDExIiAsbGlieDExKQogICAgICAgKCJsaWJ4aW5lcmFtYSIgLGxpYnhpbmVy YW1hKSkpCiAgICAoaG9tZS1wYWdlICJodHRwOi8vZHdtLnN1Y2tsZXNzLm9yZy8iKQogICAgKHN5 bm9wc2lzICJEeW5hbWljIHdpbmRvdyBtYW5hZ2VyIikKICAgIChkZXNjcmlwdGlvbgogICAgICJk d20gaXMgYSBkeW5hbWljIHdpbmRvdyBtYW5hZ2VyIGZvciBYLiAgSXQgbWFuYWdlcyB3aW5kb3dz IGluIHRpbGVkLAptb25vY2xlIGFuZCBmbG9hdGluZyBsYXlvdXRzLiAgQWxsIG9mIHRoZSBsYXlv dXRzIGNhbiBiZSBhcHBsaWVkIGR5bmFtaWNhbGx5LApvcHRpbWlzaW5nIHRoZSBlbnZpcm9ubWVu dCBmb3IgdGhlIGFwcGxpY2F0aW9uIGluIHVzZSBhbmQgdGhlIHRhc2sgcGVyZm9ybWVkLgoKZHdt IGRyYXdzIGEgc21hbGwgY3VzdG9taXphYmxlIGJvcmRlciBhcm91bmQgd2luZG93cyB0byBpbmRp Y2F0ZSB0aGUgZm9jdXMKc3RhdGUuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6eDExKSkpCgooZGVm aW5lLXB1YmxpYyBkbWVudQogIChwYWNrYWdlCiAgICAobmFtZSAiZG1lbnUiKQogICAgKHZlcnNp b24gIjQuNSIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAobWV0aG9kIHVybC1m ZXRjaCkKICAgICAgICAgICAgICAodXJpIChzdHJpbmctYXBwZW5kICJodHRwOi8vZGwuc3Vja2xl c3Mub3JnL3Rvb2xzL2RtZW51LSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZl cnNpb24gIi50YXIuZ3oiKSkKICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgIChi YXNlMzIKICAgICAgICAgICAgICAgICIwbDU4anB4cnI4MGZteXc1cGd3NWFsbTVxcnk0OWF3Nnkw NDk3NDV3bDk5MXYyY2RjYjA4IikpKSkKICAgIChidWlsZC1zeXN0ZW0gZ251LWJ1aWxkLXN5c3Rl bSkKICAgIChhcmd1bWVudHMKICAgICAnKCM6dGVzdHM/ICNmIDsgbm8gdGVzdHMKICAgICAgICM6 bWFrZS1mbGFncyAobGlzdCAiQ0M9Z2NjIgogICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJp bmctYXBwZW5kICJQUkVGSVg9IiAlb3V0cHV0KSkKICAgICAgICM6cGhhc2VzCiAgICAgICAoYWxp c3QtZGVsZXRlICdjb25maWd1cmUgJXN0YW5kYXJkLXBoYXNlcykpKQogICAgKGlucHV0cwogICAg IGAoKCJsaWJ4MTEiICxsaWJ4MTEpCiAgICAgICAoImxpYnhpbmVyYW1hIiAsbGlieGluZXJhbWEp KSkKICAgIChob21lLXBhZ2UgImh0dHA6Ly90b29scy5zdWNrbGVzcy5vcmcvZG1lbnUvIikKICAg IChzeW5vcHNpcyAiRHluYW1pYyBtZW51IikKICAgIChkZXNjcmlwdGlvbgogICAgICJBIGR5bmFt aWMgbWVudSBmb3IgWCwgb3JpZ2luYWxseSBkZXNpZ25lZCBmb3IgZHdtLiAgSXQgbWFuYWdlcyBs YXJnZQpudW1iZXJzIG9mIHVzZXItZGVmaW5lZCBtZW51IGl0ZW1zIGVmZmljaWVudGx5LiIpCiAg ICAobGljZW5zZSBsaWNlbnNlOngxMSkpKQoKCihkZWZpbmUtcHVibGljIHN0CiAgKHBhY2thZ2UK ICAgIChuYW1lICJzdCIpCiAgICAodmVyc2lvbiAiMC41IikKICAgIChzb3VyY2UgKG9yaWdpbgog ICAgICAgICAgICAgIChtZXRob2QgdXJsLWZldGNoKQogICAgICAgICAgICAgICh1cmkgKHN0cmlu Zy1hcHBlbmQgImh0dHA6Ly9kbC5zdWNrbGVzcy5vcmcvc3Qvc3QtIgogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdmVyc2lvbiAiLnRhci5neiIpKQogICAgICAgICAgICAgIChzaGEy NTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgIjBrbnhwemFhODZwcHJu ZzZoYWs4aHg4YncyMnl3MjJycHoxZmZ4anBjdnFsejN4ZHYwNWYiKSkpKQogICAgKGJ1aWxkLXN5 c3RlbSBnbnUtYnVpbGQtc3lzdGVtKQogICAgKGFyZ3VtZW50cwogICAgICcoIzp0ZXN0cz8gI2Yg OyBubyB0ZXN0cwogICAgICAgIzptYWtlLWZsYWdzIChsaXN0ICJDQz1nY2MiCiAgICAgICAgICAg ICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgIlBSRUZJWD0iICVvdXRwdXQpKQogICAgICAg IzpwaGFzZXMKICAgICAgIChhbGlzdC1kZWxldGUgJ2NvbmZpZ3VyZSAlc3RhbmRhcmQtcGhhc2Vz KSkpCiAgICAoaW5wdXRzCiAgICAgYCgoImxpYngxMSIgLGxpYngxMSkKICAgICAgICgibGlieGZ0 IiAsbGlieGZ0KQogICAgICAgKCJsaWJ4Y29tcG9zaXRlIiAsbGlieGNvbXBvc2l0ZSkKICAgICAg ICgiY29tcG9zaXRlcHJvdG8iICxjb21wb3NpdGVwcm90bykKICAgICAgICgibGlieGV4dCIgLGxp YnhleHQpCiAgICAgICAoInhleHRwcm90byIgLHhleHRwcm90bykKICAgICAgICgibGlieHJlbmRl ciIgLGxpYnhyZW5kZXIpCiAgICAgICAoImZvbnRjb25maWciICxmb250Y29uZmlnKQogICAgICAg KCJmcmVldHlwZSIgLGZyZWV0eXBlKQogICAgICAgKCJ0ZXJtaW51cy1mb250IiAsdGVybWludXMt Zm9udCkpKQogICAgKG5hdGl2ZS1pbnB1dHMgYCgoInBrZy1jb25maWciICxwa2ctY29uZmlnKQoJ CSAgICAgKCJuY3Vyc2VzIiAsbmN1cnNlcykpKQogICAgKGhvbWUtcGFnZSAiaHR0cDovL3N0LnN1 Y2tsZXNzLm9yZy8iKQogICAgKHN5bm9wc2lzICJhIHh0ZXJtIHJlcGxhY2VtZW50IikKICAgIChk ZXNjcmlwdGlvbgogICAgICJ4dGVybSBpcyBibG9hdGVkIGFuZCB1bm1haW50YWluYWJsZS4gSXQg aGFzIG92ZXIgNjVLIGxpbmVzIG9mIGNvZGUgYW5kCiAgICAgIGVtdWxhdGVzIG9ic2N1cmUgYW5k IG9ic29sZXRlIHRlcm1pbmFscyB5b3Ugd2lsbCBuZXZlciBuZWVkLiBUaGUgcG9wdWxhcgogICAg ICBhbHRlcm5hdGl2ZSwgcnh2dCBoYXMgb25seSAzMksgbGluZXMgb2YgY29kZS4gVGhpcyBpcyBq dXN0IHRvbyBtdWNoIGZvcgogICAgICBzb21ldGhpbmcgYXMgc2ltcGxlIGFzIGEgdGVybWluYWwg ZW11bGF0b3I7IGl04oCZcyB5ZXQgYW5vdGhlciBleGFtcGxlIG9mCiAgICAgIGNvZGUgY29tcGxl eGl0eS4gc3QgZml4IHRoYXQuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6eDExKSkpCgoKKGRlZmlu ZS1wdWJsaWMgc2xvY2sKICAocGFja2FnZQogICAgKG5hbWUgInNsb2NrIikKICAgICh2ZXJzaW9u ICIxLjEiKQogICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0 Y2gpCiAgICAgICAgICAgICAgKHVyaSAoc3RyaW5nLWFwcGVuZCAiaHR0cDovL2RsLnN1Y2tsZXNz Lm9yZy90b29scy9zbG9jay0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJz aW9uICIudGFyLmd6IikpCiAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAoYmFz ZTMyCiAgICAgICAgICAgICAgICAiMXI3MHMzbnBtcDBueXJmZHN4ejhjdzFpMXo4bjlwaHFkbHcw MndqcGh2MzQxaDN5YWpwMCIpKSkpCiAgICAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0p CiAgICAoYXJndW1lbnRzCiAgICAgJygjOnRlc3RzPyAjZiA7IG5vIHRlc3RzCiAgICAgICAjOm1h a2UtZmxhZ3MgKGxpc3QgIkNDPWdjYyIKICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5n LWFwcGVuZCAiUFJFRklYPSIgJW91dHB1dCkpCiAgICAgICAjOnBoYXNlcyAoYWxpc3QtZGVsZXRl ICdjb25maWd1cmUgJXN0YW5kYXJkLXBoYXNlcykpKQogICAgKGlucHV0cwogICAgIGAoKCJsaWJ4 MTEiICxsaWJ4MTEpCiAgICAgICAoImxpYnhleHQiICxsaWJ4ZXh0KQogICAgICAgKCJsaWJ4aW5l cmFtYSIgLGxpYnhpbmVyYW1hKSkpCiAgICAoaG9tZS1wYWdlICJodHRwOi8vdG9vbHMuc3Vja2xl c3Mub3JnL3Nsb2NrLyIpCiAgICAoc3lub3BzaXMgIlNpbXBsZSBYIHNlc3Npb24gbG9jayIpCiAg ICAoZGVzY3JpcHRpb24KICAgICAiU2ltcGxlIFggc2Vzc2lvbiBsb2NrIHdpdGggdHJpdmlhbCBm ZWVkYmFjayBvbiBwYXNzd29yZCBlbnRyeS4iKQogICAgKGxpY2Vuc2UgbGljZW5zZTp4MTEpKSkK --089e01681dee0c923f050a3182c2--