From debbugs-submit-bounces@debbugs.gnu.org Mon Apr 19 17:20:14 2021 Received: (at submit) by debbugs.gnu.org; 19 Apr 2021 21:20:14 +0000 Received: from localhost ([127.0.0.1]:52261 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lYbJW-0008BK-2T for submit@debbugs.gnu.org; Mon, 19 Apr 2021 17:20:14 -0400 Received: from lists.gnu.org ([209.51.188.17]:47822) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lYbJQ-0008B4-IM for submit@debbugs.gnu.org; Mon, 19 Apr 2021 17:20:12 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46760) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lYbJP-00059j-OW for guix-patches@gnu.org; Mon, 19 Apr 2021 17:20:08 -0400 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]:36709) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lYbJM-0001iJ-9O for guix-patches@gnu.org; Mon, 19 Apr 2021 17:20:07 -0400 Received: by mail-wr1-x435.google.com with SMTP id m9so22715996wrx.3 for ; Mon, 19 Apr 2021 14:20:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=NaCpJqiT+3A9770YIsZCUPqf0kxTLAneyOSfOO8eEfk=; b=Bxhc5uF3LFTKPKPE01gS/KvPdfpcPUKITaQq2jDogqq0Ilc+5sgt1pbxMOWE75+oQK LHgu4ABqF5lHStG9uSzcw0AQ2W9uewjcF6gK1+9M5J56BNUw4+MyoPeMBpxwWZMQpt8s jyjOGF2jxtxcMP5yecS6uBJRLgwsfytgedqMAxyROvshyoPo6S0DuHqdISdyY054nPdi tdsqkJoSoKRAs9DggxZI/xjGegOW2zmc1B21BU/ABYK/Un52/Gn041uEHAKbw6y4Dt3+ I6s4umFNUoNFnZWLjUAtQiSrEmdNu1SbYYfAEC+dLLTptKnLLfrXTq2WqvVEeVyk0Cp0 N/sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=NaCpJqiT+3A9770YIsZCUPqf0kxTLAneyOSfOO8eEfk=; b=WPwA7ytn5AvMbX0m7925GuB+z/BQiuOHOiR/hoOEmRGeO2jCk1L9kj8giz31M0hwmB OtCUltUxCSruARei5h/7AcdITJ4DOOxYgupLW3cjN7RX4vzuOWiv7eMCeZzoC6nm1WWX TMg/IQMlqVK3IUp3NwAXnSoNCqtfns2oUaq9b+QLiifYOQoF7hptE1bmmsxjKeAOHlYH EH1bzzDnTonqS/3wOQfpQugjjnlWzWIBOexfDrZDRRX8PhPZhXi+mqMBuQeDsewfE2HA kxEtcn8GtkWaeSTLaaBkXIZ8AdOhILm/4b4InPH32QESO50ewwr4OaiDSahZLT1BTML1 Ns5A== X-Gm-Message-State: AOAM5300EyM6IobpuA6Fzx+AvTqIIbmmGxpsMedgtcqtPOddJSi4FWLw 3V2PVUJNF6Z1v6N0+1fLRNd1RtzxcDDcHD9//Z5XM7r2QBA= X-Google-Smtp-Source: ABdhPJxJgCCcGCbEqZDuU8ItViYXgtjFxAk1Mx/uozZRQmWXh14qWCudm5SeMMRt8pK8huPSdnGUiOiKsL6oCi5a/pU= X-Received: by 2002:a5d:4f82:: with SMTP id d2mr16961907wru.228.1618867201953; Mon, 19 Apr 2021 14:20:01 -0700 (PDT) MIME-Version: 1.0 From: Sharlatan Hellseher Date: Mon, 19 Apr 2021 21:19:51 +0000 Message-ID: Subject: [PATCH] Prototype for guix import quicklisp To: guix-patches@gnu.org Content-Type: multipart/mixed; boundary="00000000000083318305c059e42d" Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=sharlatanus@gmail.com; helo=mail-wr1-x435.google.com X-Spam_score_int: 6 X-Spam_score: 0.6 X-Spam_bar: / X-Spam_report: (0.6 / 5.0 requ) BAYES_50=0.8, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --00000000000083318305c059e42d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Guix team! This script could be a quick prototype solution for anyone who start packing Common Lisp system distributed by Quicklisp. I know it's better to implement it in Guile to be available in Guix directly - it could be a starting point for that process. Time to learn Scheme! (for me ;-) --- EXAMPLE --- ./etc/guix-import-quicklisp.sh cl-gamepad t [1618866903.257]: [ PASS ] verification of required commands completed ___ Quicklisp ___ fetch-method: git guix-package: not-availalbe project-dependencies: cffi documentation-utils trivial-features project-systems: cl-gamepad project-url: https://github.com/Shirakumo/cl-gamepad.git system-project: cl-gamepad system: cl-gamepad [1618866906.296]: [ INFO ] Fetch https://github.com/Shirakumo/cl-gamepad.git with git (define-public sbcl-cl-gamepad (let ((commit "ed75ed3ea387957912b90efd82340ba3064cab5b") (revision "1")) (package (name "sbcl-cl-gamepad") (version (git-version "0.0.0" revision commit)) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/Shirakumo/cl-gamepad.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 "0saww9ar1ifd9scg0ml7gqy3wsmidrri61kcd1a3n57vzd8dch7m")))) (build-system asdf-build-system/sbcl) (inputs `(("cffi" ,sbcl-cffi) ("documentation-utils" ,sbcl-documentation-utils) ("trivial-features" ,sbcl-trivial-features))) (home-page "https://github.com/Shirakumo/cl-gamepad.git") (synopsis "TBC") (description "TBC") (license #f)))) ___ Quicklisp ___ guix-package: available system-project: cffi system: cffi ___ Quicklisp ___ guix-package: available system-project: documentation-utils system: documentation-utils ___ Quicklisp ___ guix-package: available system-project: trivial-features --- EXAMPLE --- -- =E2=80=A6 =D0=BD=D0=B0=D1=88 =D1=80=D0=B0=D0=B7=D1=83=D0=BC - =D0=BF=D1=80= =D0=B5=D0=B2=D0=BE=D1=81=D1=85=D0=BE=D0=B4=D0=BD=D0=B0=D1=8F =D0=BE=D0=B1= =D1=8A=D1=8F=D1=81=D0=BD=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D0=B0=D1=8F = =D0=BC=D0=B0=D1=88=D0=B8=D0=BD=D0=B0 =D0=BA=D0=BE=D1=82=D0=BE=D1=80=D0=B0= =D1=8F =D1=81=D0=BF=D0=BE=D1=81=D0=BE=D0=B1=D0=BD=D0=B0 =D0=BD=D0=B0=D0=B9=D1=82=D0=B8 =D1=81=D0=BC=D1=8B=D1=81=D0=BB =D0=BF=D0=BE= =D1=87=D1=82=D0=B8 =D0=B2 =D1=87=D0=B5=D0=BC =D1=83=D0=B3=D0=BE=D0=B4=D0=BD= =D0=BE, =D0=B8=D1=81=D1=82=D0=BE=D0=BB=D0=BA=D0=BE=D0=B2=D0=B0=D1=82=D1=8C = =D0=BB=D1=8E=D0=B1=D0=BE=D0=B9 =D1=84=D0=B5=D0=BD=D0=BE=D0=BC=D0=B5=D0=BD, = =D0=BD=D0=BE =D1=81=D0=BE=D0=B2=D0=B5=D1=80=D1=88=D0=B5=D0=BD=D0=BD=D0=BE =D0=BD=D0=B5 = =D0=B2 =D1=81=D0=BE=D1=81=D1=82=D0=BE=D1=8F=D0=BD=D0=B8=D0=B8 =D0=BF=D1=80= =D0=B8=D0=BD=D1=8F=D1=82=D1=8C =D0=BC=D1=8B=D1=81=D0=BB=D1=8C =D0=BE =D0=BD= =D0=B5=D0=BF=D1=80=D0=B5=D0=B4=D1=81=D0=BA=D0=B0=D0=B7=D1=83=D0=B5=D0=BC=D0= =BE=D1=81=D1=82=D0=B8. --00000000000083318305c059e42d Content-Type: application/x-patch; name="0001-Add-prototype-for-guix-import-quicklisp.patch" Content-Disposition: attachment; filename="0001-Add-prototype-for-guix-import-quicklisp.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_knp3o4wo0 RnJvbSBkYTkxMjk2NjMzOWEyNTE0MDE2Yzk1YmVlYjYwNDM2N2ExZDc5ZGIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFybGF0YW4gSGVsbHNlaGVyIDxzaGFybGF0YW51c0BnbWFp bC5jb20+CkRhdGU6IE1vbiwgMTkgQXByIDIwMjEgMjI6MTM6MTAgKzAxMDAKU3ViamVjdDogW1BB VENIXSBBZGQgcHJvdG90eXBlIGZvciBndWl4IGltcG9ydCBxdWlja2xpc3AKCi0tLQogZXRjL2d1 aXgtaW1wb3J0LXF1aWNrbGlzcC5zaCB8IDQyMCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDQyMCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAx MDA3NTUgZXRjL2d1aXgtaW1wb3J0LXF1aWNrbGlzcC5zaAoKZGlmZiAtLWdpdCBhL2V0Yy9ndWl4 LWltcG9ydC1xdWlja2xpc3Auc2ggYi9ldGMvZ3VpeC1pbXBvcnQtcXVpY2tsaXNwLnNoCm5ldyBm aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAuLjdhMDUwZmY3YzQKLS0tIC9kZXYvbnVs bAorKysgYi9ldGMvZ3VpeC1pbXBvcnQtcXVpY2tsaXNwLnNoCkBAIC0wLDAgKzEsNDIwIEBACisj IS9iaW4vc2gKKyMgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5hZ2VtZW50IGZv ciBHTlUKKyMgQ29weXJpZ2h0IMKpIDIwMjEgU2hhcmxhdGFuIEhlbGxzZWhlciA8c2hhcmxhdGFu dXNAZ21haWwuY29tPgorCisjIyBDb21tZW50YXJ5OgorIyBUaGlzIHNjcmlwdCBwcm92aWRlIGEg cXVpY2sgcHJvdG90eXBlIHRvIGdlbmVyYXRlIEd1aXggcGFja2FnZSBkZWZpbml0aW9uIG9mCisj IENvbW1vbiBMaXNwIHN5c3RlbSBhdmFpbGFsYmUgaW4gUXVpY2tsaXNwIGRpc3RyaWJ1dGlvbi4g SXQncyBub3QgYSBmaW5hbAorIyBzb2x1dGlvbiwgd2hpY2ggbmVlZHMgdG8gYmUgaW1wbGVtZW50 ZWQgaW4gR3VpbGUgYW5kIGludGVncmF0ZWQgdG8gR3VpeCwgYnV0CisjIGl0IHdvdWxkIGhlbHAg YWNjZWxlcmF0ZSBwYWNrYWdlIHByb3RvdHlwaW5nLgorIworIyBSZWxhdGVkIHRvIFF1aWNrbGlz cCByZXNvdXJjZXM6CisjCisjIGh0dHBzOi8vZ2l0aHViLmNvbS9ib3JvZHVzdC9ib2RnZS1wcm9q ZWN0cworIyBodHRwczovL2JvZGdlLmJvcm9kdXN0Lm9yZy9kaXN0L29yZy5ib3JvZHVzdC5ib2Rn ZS50eHQKKyMKKyMgaHR0cHM6Ly9naXRodWIuY29tL3F1aWNrbGlzcC9xdWlja2xpc3AtcHJvamVj dHMKKyMgaHR0cDovL2JldGEucXVpY2tsaXNwLm9yZy9kaXN0L3F1aWNrbGlzcC50eHQKKyMKKyMg aHR0cDovL2Rpc3QudHltb29uLmV1L3NoaXJha3Vtby50eHQKKyMgaHR0cDovL2JvZGdlLmJvcm9k dXN0Lm9yZy9kaXN0L29yZy5ib3JvZHVzdC5ib2RnZS50eHQKKworUkVRVUlSRT0oCisgICBhd2sK KyAgIGN1cmwKKyAgIGdpdAorICAgZ3JlcAorICAgZ3VpeAorKQorCitQQVM9JCdbIFwwMzNbMzI7 MW1QQVNTXDAzM1swbSBdICcKK0VSUj0kJ1sgXDAzM1szMTsxbUZBSUxcMDMzWzBtIF0gJworV0FS PSQnWyBcMDMzWzMzOzFtV0FSTlwwMzNbMG0gXSAnCitJTkY9IlsgSU5GTyBdICIKKworREVCVUc9 IiR7REVCVUc6LTB9IgoraWYgWyAiJHtERUJVR30iIC1lcSAxIF0KK3RoZW4KKyAgICBzZXQgLXgK K2ZpCisKK1FMX1BSRUZJWF9VUkw9Imh0dHBzOi8vYmV0YS5xdWlja2xpc3Aub3JnL2Rpc3QiCisK KyMgcXVpY2tsaXNwLXByb2plY3RzIGhhcyBtZXRhZGF0YSBmb3IgQ29tbW9uIExpc3AgcHJvamVj dHMgdHJhY2tlZCBieSBRdWlja2xpc3AuCisjIEVhY2ggc3ViZGlyZWN0b3J5IGlzIG5hbWVkIGFm dGVyIGEgcHJvamVjdCwgYW5kIGEgcHJvamVjdCdzIHN1YmRpcmVjdG9yeSBoYXMgYQorIyBzb3Vy Y2UudHh0IGZpbGUgZGVzY3JpYmluZyBob3cgdG8gZ2V0IHRoZSBwcm9qZWN0J3MgZmlsZXMuCitR TF9QUk9KRUNUUz0iaHR0cHM6Ly9naXRodWIuY29tL3F1aWNrbGlzcC9xdWlja2xpc3AtcHJvamVj dHMiCisKK1FMX0lHTk9SRV9TWVNURU1TPSJhc2RmXHx1b2lwXHx0ZXN0IgorCitxdWlja2xpc3Bf dmVyc2lvbj0KK3BhY2thZ2VfbmFtZT0KK2NvbW1pdD0KK3ZlcnNpb249Cit1cmw9CitpbnB1dHM9 CitzeW5vcHNpcz0KK2Rlc2NyaXB0aW9uPQorbGljZW5zZT0KK3NoYTI1Nl9iYXNlMzI9CisKK21h aW4oKQoreworICAgIGxvY2FsIHN5c3RlbT0iJHsxOi19IgorICAgIGxvY2FsIHJlY3Vyc2l2ZT0i JHsyOi19IgorCisgICAgbG9jYWwgcGFja2FnZV9hdmFpbGFibGUKKyAgICBsb2NhbCBwcm9qZWN0 CisgICAgbG9jYWwgcHJvamVjdF9kZXBlbmRlbmNpZXMKKyAgICBsb2NhbCBwcm9qZWN0X2ZldGNo X21ldGhvZAorICAgIGxvY2FsIHByb2plY3Rfc3lzdGVtcworICAgIGxvY2FsIHByb2plY3RfdXJs CisgICAgbG9jYWwgcWxfZGlzdAorICAgIGxvY2FsIHFsX2Rpc3RfdXJsCisgICAgbG9jYWwgcWxf cHJvamVjdHMKKyAgICBsb2NhbCBxbF9wcm9qZWN0c190b3RhbAorICAgIGxvY2FsIHFsX3N5c3Rl bV9pbmRleF91cmwKKyAgICBsb2NhbCBxbF9zeXN0ZW1fc3JjCisgICAgbG9jYWwgcWxfc3lzdGVt cworICAgIGxvY2FsIHFsX3N5c3RlbXNfdG90YWwKKyAgICBsb2NhbCBxbF92ZXJzaW9uCisgICAg bG9jYWwgc3lzdGVtX2RlcHMKKyAgICBsb2NhbCBzeXN0ZW1fbWFpbgorICAgIGxvY2FsIHN5c3Rl bV9wcm9qZWN0CisgICAgbG9jYWwgc3lzdGVtX3Byb2plY3QKKyAgICBsb2NhbCB0bXBfcWxfY2Fj aGUKKworICAgIGNoa19yZXF1aXJlCisKKyAgICB0bXBfcWxfY2FjaGU9IiQobWt0ZW1wIC1kIC10 IHF1aWNrbGlzcC1jYWNoZS5YWFhYWFhYKSIKKyAgICBxbF9kaXN0X3VybD0iJHtRTF9QUkVGSVhf VVJMfS9xdWlja2xpc3AudHh0IgorCisgICAgcWxfZGlzdD0iJHt0bXBfcWxfY2FjaGV9L3F1aWNr bGlzcC1kaXN0IgorICAgIHFsX3N5c3RlbXM9IiR7dG1wX3FsX2NhY2hlfS9zeXN0ZW1zIgorICAg IHFsX3Byb2plY3RzPSIke3RtcF9xbF9jYWNoZX0vcXVpY2tsaXNwLXByb2plY3RzIgorCisgICAg X2N1cmwgIiR7cWxfZGlzdF91cmx9IiAiJHtxbF9kaXN0fSIKKworICAgIHFsX3ZlcnNpb249IiQo Z3JlcCAtb1AgJyg/PD12ZXJzaW9uOiApLionICR7cWxfZGlzdH0pIgorICAgIHFsX3N5c3RlbV9p bmRleF91cmw9IiR7UUxfUFJFRklYX1VSTH0vcXVpY2tsaXNwLyR7cWxfdmVyc2lvbn0vc3lzdGVt cy50eHQiCisKKyAgICBfY3VybCAiJHtxbF9zeXN0ZW1faW5kZXhfdXJsfSIgIiR7cWxfc3lzdGVt c30iCisgICAgcWxfc3lzdGVtc190b3RhbD0iJChhd2sgJ3twcmludCAkM30nICR7cWxfc3lzdGVt c30gfCBzb3J0IC11IHwgd2MgLWwpIgorICAgIHFsX3Byb2plY3RzX3RvdGFsPSIkKGF3ayAne3By aW50ICQxfScgJHtxbF9zeXN0ZW1zfSB8IHNvcnQgLXUgfCB3YyAtbCkiCisKKyAgICBmZXRjaF93 aXRoIGdpdCAiJHtRTF9QUk9KRUNUU30iICIke3FsX3Byb2plY3RzfSIKKworICAgIGlmIFsgLXog IiR7c3lzdGVtLXh9IiBdCisgICAgdGhlbgorICAgICAgICBwcmludGYgIl9fXyBRdWlja2xpc3Ag X19fXG4iCisgICAgICAgIHByaW50ZiAiZGlzdHJpYnV0aW9uIFVSTDogJXNcbiIgIiR7cWxfZGlz dF91cmx9IgorICAgICAgICBwcmludGYgInByb2plY3RzIFVSTDogJXNcbiIgIiR7UUxfUFJPSkVD VFN9IgorICAgICAgICBwcmludGYgInZlcnNpb246ICVzXG4iICIke3FsX3ZlcnNpb259IgorICAg ICAgICBwcmludGYgInN5c3RlbXM6ICVzXG4iICIke3FsX3N5c3RlbXNfdG90YWx9IgorICAgICAg ICBwcmludGYgInByb2plY3RzOiAlc1xuIiAiJHtxbF9wcm9qZWN0c190b3RhbH0iCisgICAgZWxp ZiAhIGdyZXAgIiR7c3lzdGVtfSIgIiR7cWxfc3lzdGVtc30iICY+L2Rldi9udWxsCisgICAgdGhl bgorICAgICAgICBfZXJyICIke0VSUn0gJHtzeXN0ZW19IGlzIG5vdCBwcmVzZW50IGluIFF1aWNr bGlzcCBkaXN0cmlidXRpb24gJHtxbF92ZXJzaW9ufSIKKyAgICBlbHNlCisgICAgICAgIHN5c3Rl bV9wcm9qZWN0PSIkKHFsX3N5c3RlbV9xdWVyeSAiJHtzeXN0ZW19IiBzeXN0ZW0gIiR7cWxfc3lz dGVtc30iKSIKKyAgICAgICAgcWxfc3lzdGVtX3NyYz0iJHtxbF9wcm9qZWN0c30vcHJvamVjdHMv JHtzeXN0ZW1fcHJvamVjdH0vc291cmNlLnR4dCIKKyAgICAgICAgcHJvamVjdD0iJHt0bXBfcWxf Y2FjaGV9LyR7c3lzdGVtX3Byb2plY3R9IgorCisgICAgICAgIHByb2plY3RfZGVwZW5kZW5jaWVz PSIkKHFsX3N5c3RlbV9xdWVyeSAiJHtzeXN0ZW1fcHJvamVjdH0iIGRlcGVuZGVuY3kgIiR7cWxf c3lzdGVtc30iKSIKKyAgICAgICAgcHJvamVjdF9zeXN0ZW1zPSIkKHFsX3N5c3RlbV9xdWVyeSAi JHtzeXN0ZW1fcHJvamVjdH0iIHByb2plY3QgIiR7cWxfc3lzdGVtc30iKSIKKworICAgICAgICBw cm9qZWN0X2ZldGNoX21ldGhvZD0iJChhd2sgJ3twcmludCAkMX0nICR7cWxfc3lzdGVtX3NyY30p IgorICAgICAgICBwcm9qZWN0X3VybD0iJChhd2sgJ3twcmludCAkMn0nICR7cWxfc3lzdGVtX3Ny Y30pIgorCisgICAgICAgIHBhY2thZ2VfYXZhaWxhYmxlPSIkKGd1aXhfcGFja2FnZV9hdmFpbGFi bGUgIiR7c3lzdGVtX3Byb2plY3R9IikiCisKKyAgICAgICAgcHJpbnRmICJfX18gUXVpY2tsaXNw IF9fX1xuIgorICAgICAgICBwcmludGYgImZldGNoLW1ldGhvZDogJXNcbiIgIiR7cHJvamVjdF9m ZXRjaF9tZXRob2R9IgorICAgICAgICBwcmludGYgImd1aXgtcGFja2FnZTogJXNcbiIgIiR7cGFj a2FnZV9hdmFpbGFibGV9IgorICAgICAgICBwcmludGYgInByb2plY3QtZGVwZW5kZW5jaWVzOiAl c1xuIiAiJHtwcm9qZWN0X2RlcGVuZGVuY2llc30iCisgICAgICAgIHByaW50ZiAicHJvamVjdC1z eXN0ZW1zOiAlc1xuIiAiJHtwcm9qZWN0X3N5c3RlbXN9IgorICAgICAgICBwcmludGYgInByb2pl Y3QtdXJsOiAlc1xuIiAiJHtwcm9qZWN0X3VybH0iCisgICAgICAgIHByaW50ZiAic3lzdGVtLXBy b2plY3Q6ICVzXG4iICIke3N5c3RlbV9wcm9qZWN0fSIKKyAgICAgICAgcHJpbnRmICJzeXN0ZW06 ICVzXG4iICIke3N5c3RlbX0iCisgICAgZmkKKworICAgIF9tc2cgIiR7SU5GfSBGZXRjaCAke3By b2plY3RfdXJsfSB3aXRoICR7cHJvamVjdF9mZXRjaF9tZXRob2R9IgorICAgIGZldGNoX3dpdGgg IiR7cHJvamVjdF9mZXRjaF9tZXRob2R9IiAiJHtwcm9qZWN0X3VybH0iICIke3Byb2plY3R9Igor CisgICAgaGFzaD0iJChndWl4X2hhc2ggIiR7cHJvamVjdH0iICIke3Byb2plY3RfZmV0Y2hfbWV0 aG9kfSIpIgorICAgIGNvbW1pdD0iJChnZXRfY29tbWl0ICIke3Byb2plY3R9IiAiJHtwcm9qZWN0 X2ZldGNoX21ldGhvZH0iKSIKKyAgICBpbnB1dHM9IiQoZ3VpeF9zYmNsX2lucHV0cyAiJHtwcm9q ZWN0X2RlcGVuZGVuY2llc30iKSIKKworICAgIGd1aXhfcGFja2FnZSAiJHtzeXN0ZW1fcHJvamVj dH0iICIke2NvbW1pdH0iICIke3Byb2plY3RfdXJsfSIgIiR7aW5wdXRzfSIgIiR7aGFzaH0iCisK KyAgICBpZiBbIC16ICIke3JlY3Vyc2l2ZS14fSIgXQorICAgIHRoZW4KKyAgICAgICAgaWYgWyAi JHtwYWNrYWdlX2F2YWlsYWJsZX0iID0gIm5vdC1hdmFpbGFsYmUiIF0KKyAgICAgICAgdGhlbgor ICAgICAgICAgICAgZmV0Y2hfd2l0aCAiJHtwcm9qZWN0X2ZldGNoX21ldGhvZH0iICIke3Byb2pl Y3RfdXJsfSIgIiR7cHJvamVjdH0iCisgICAgICAgICAgICBscyAtbGEgIiR7dG1wX3FsX2NhY2hl fSIKKyAgICAgICAgICAgIGxzIC1sYSAiJHtwcm9qZWN0fSIKKyAgICAgICAgZmkKKyAgICBlbHNl CisgICAgICAgIGZvciBzeXN0ZW0gaW4gJHtwcm9qZWN0X2RlcGVuZGVuY2llc1tAXX0KKyAgICAg ICAgZG8KKyAgICAgICAgICAgIHN5c3RlbV9wcm9qZWN0PSIkKHFsX3N5c3RlbV9xdWVyeSAiJHtz eXN0ZW19IiBzeXN0ZW0gIiR7cWxfc3lzdGVtc30iKSIKKyAgICAgICAgICAgIHFsX3N5c3RlbV9z cmM9IiR7cWxfcHJvamVjdHN9L3Byb2plY3RzLyR7c3lzdGVtX3Byb2plY3R9L3NvdXJjZS50eHQi CisgICAgICAgICAgICBwcm9qZWN0PSIke3RtcF9xbF9jYWNoZX0vJHtzeXN0ZW1fcHJvamVjdH0i CisKKyAgICAgICAgICAgIHBhY2thZ2VfYXZhaWxhYmxlPSIkKGd1aXhfcGFja2FnZV9hdmFpbGFi bGUgIiR7c3lzdGVtX3Byb2plY3R9IikiCisKKyAgICAgICAgICAgIHByaW50ZiAiX19fIFF1aWNr bGlzcCBfX19cbiIKKyAgICAgICAgICAgIHByaW50ZiAiZ3VpeC1wYWNrYWdlOiAlc1xuIiAiJHtw YWNrYWdlX2F2YWlsYWJsZX0iCisgICAgICAgICAgICBwcmludGYgInN5c3RlbS1wcm9qZWN0OiAl c1xuIiAiJHtzeXN0ZW1fcHJvamVjdH0iCisgICAgICAgICAgICBwcmludGYgInN5c3RlbTogJXNc biIgIiR7c3lzdGVtfSIKKworICAgICAgICAgICAgaWYgWyAiJHtwYWNrYWdlX2F2YWlsYWJsZX0i ID0gIm5vdC1hdmFpbGFsYmUiIF0KKyAgICAgICAgICAgIHRoZW4KKyAgICAgICAgICAgICAgICBw cm9qZWN0X2RlcGVuZGVuY2llcz0iJChxbF9zeXN0ZW1fcXVlcnkgIiR7c3lzdGVtX3Byb2plY3R9 IiBkZXBlbmRlbmN5ICIke3FsX3N5c3RlbXN9IikiCisgICAgICAgICAgICAgICAgcHJvamVjdF9z eXN0ZW1zPSIkKHFsX3N5c3RlbV9xdWVyeSAiJHtzeXN0ZW1fcHJvamVjdH0iIHByb2plY3QgIiR7 cWxfc3lzdGVtc30iKSIKKyAgICAgICAgICAgICAgICBwcm9qZWN0X2ZldGNoX21ldGhvZD0iJChh d2sgJ3twcmludCAkMX0nICR7cWxfc3lzdGVtX3NyY30pIgorICAgICAgICAgICAgICAgIHByb2pl Y3RfdXJsPSIkKGF3ayAne3ByaW50ICQyfScgJHtxbF9zeXN0ZW1fc3JjfSkiCisKKyAgICAgICAg ICAgICAgICBwcmludGYgIl9fXyBRdWlja2xpc3AgX19fXG4iCisgICAgICAgICAgICAgICAgcHJp bnRmICJmZXRjaC1tZXRob2Q6ICVzXG4iICIke3Byb2plY3RfZmV0Y2hfbWV0aG9kfSIKKyAgICAg ICAgICAgICAgICBwcmludGYgImd1aXgtcGFja2FnZTogJXNcbiIgIiR7cGFja2FnZV9hdmFpbGFi bGV9IgorICAgICAgICAgICAgICAgIHByaW50ZiAicHJvamVjdC1kZXBlbmRlbmNpZXM6ICVzXG4i ICIke3Byb2plY3RfZGVwZW5kZW5jaWVzfSIKKyAgICAgICAgICAgICAgICBwcmludGYgInByb2pl Y3Qtc3lzdGVtczogJXNcbiIgIiR7cHJvamVjdF9zeXN0ZW1zfSIKKyAgICAgICAgICAgICAgICBw cmludGYgInByb2plY3QtdXJsOiAlc1xuIiAiJHtwcm9qZWN0X3VybH0iCisgICAgICAgICAgICAg ICAgcHJpbnRmICJzeXN0ZW0tcHJvamVjdDogJXNcbiIgIiR7c3lzdGVtX3Byb2plY3R9IgorICAg ICAgICAgICAgICAgIHByaW50ZiAic3lzdGVtOiAlc1xuIiAiJHtzeXN0ZW19IgorCisKKyAgICAg ICAgICAgICAgICBfbXNnICIke0lORn0gRmV0Y2ggJHtwcm9qZWN0X3VybH0gd2l0aCAke3Byb2pl Y3RfZmV0Y2hfbWV0aG9kfSIKKyAgICAgICAgICAgICAgICBmZXRjaF93aXRoICIke3Byb2plY3Rf ZmV0Y2hfbWV0aG9kfSIgIiR7cHJvamVjdF91cmx9IiAiJHtwcm9qZWN0fSIKKworICAgICAgICAg ICAgICAgIGhhc2g9IiQoZ3VpeF9oYXNoICIke3Byb2plY3R9IiAiJHtwcm9qZWN0X2ZldGNoX21l dGhvZH0iKSIKKyAgICAgICAgICAgICAgICBjb21taXQ9IiQoZ2V0X2NvbW1pdCAiJHtwcm9qZWN0 fSIgIiR7cHJvamVjdF9mZXRjaF9tZXRob2R9IikiCisgICAgICAgICAgICAgICAgaW5wdXRzPSIk KGd1aXhfc2JjbF9pbnB1dHMgIiR7cHJvamVjdF9kZXBlbmRlbmNpZXN9IikiCisKKyAgICAgICAg ICAgICAgICBndWl4X3BhY2thZ2UgIiR7c3lzdGVtX3Byb2plY3R9IiAiJHtjb21taXR9IiAiJHtw cm9qZWN0X3VybH0iICIke2lucHV0c30iICIke2hhc2h9IgorICAgICAgICAgICAgZmkKKyAgICAg ICAgZG9uZQorICAgIGZpCisKKyAgICBybSAtcmYgIiR7dG1wX3FsX2NhY2hlfSIKK30KKworX2Vy cigpCit7ICMgQWxsIGVycm9ycyBnbyB0byBzdGRlcnIuCisgICAgcHJpbnRmICJbJXNdOiAlc1xu IiAiJChkYXRlICslcy4lM04pIiAiJDEiCit9CisKK19tc2coKQoreyAjIERlZmF1bHQgbWVzc2Fn ZSB0byBzdGRvdXQuCisgICAgcHJpbnRmICJbJXNdOiAlc1xuIiAiJChkYXRlICslcy4lM04pIiAi JDEiCit9CisKK19kZWJ1ZygpCit7CisgICAgaWYgWyAiJHtERUJVR30iID0gJzEnIF07IHRoZW4K KyAgICAgICAgcHJpbnRmICJbJXNdOiAlc1xuIiAiJChkYXRlICslcy4lM04pIiAiJDEiCisgICAg ZmkKK30KKworX2N1cmwoKQoreyAjIFF1aWNrbGlzcCBkaXN0cmlidXRlcyBtZXRhZGF0YSBpbiBw bGFpbiB0ZXh0IGZvcm1hdCwgdHJ5IHRvIGRvd25sb2FkCisgICMgbWV0YWRhdGEgZmlsZXMgZnJv bSBVUkwgYW5kIHNhdmVkIGl0IHVuZGVyIERTVCBuYW1lLgorICAgIGxvY2FsIHVybD0iJDEiCisg ICAgbG9jYWwgZHN0PSIkMiIKKworICAgIF9kZWJ1ZyAiLS0tIFsgJEZVTkNOQU1FIF0gLS0tIgor CisgICAgaWYgWyAiJHtERUJVR30iIC1lcSAxIF0KKyAgICB0aGVuCisgICAgICAgIGN1cmwgLS12 ZXJib3NlICIke3VybH0iID4gIiR7ZHN0fSIKKyAgICBlbHNlCisgICAgICAgIGN1cmwgLS1zaWxl bnQgIiR7dXJsfSIgPiAiJHtkc3R9IgorICAgIGZpCit9CisKK2ZldGNoX3dpdGgoKQoreyAjIFVz ZSBNRVRIT0QgdG8gb2J0YWluIFBSSiBmcm9tIFVSTC4gUFJKIGNvdWxkIGJlIGFuIGFic29sdXRl IGRlc3RpbmF0aW9uIHBhdGguCisgICAgbG9jYWwgbWV0aG9kPSIkMSIKKyAgICBsb2NhbCB1cmw9 IiQyIgorICAgIGxvY2FsIHByaj0iJDMiCisKKyAgICBfZGVidWcgIi0tLSBbICRGVU5DTkFNRSBd IC0tLSIKKworICAgICMgTWV0aG9kcyBhcyB0aGV5IGNvdWxkIGJlIG9idGFpbmVkIGZyb20gJ3Nv dXJjZS50eHQnIGZpbGUgb2YKKyAgICAjICdxdWlja2xpc3AtcHJvamVjdHMnCisgICAgY2FzZSAi JHttZXRob2R9IiBpbgorICAgICAgICBnaXQpCisgICAgICAgICAgICBpZiBbICIke0RFQlVHfSIg LWVxIDEgXQorICAgICAgICAgICAgdGhlbgorICAgICAgICAgICAgICAgIGdpdCBjbG9uZSAiJHt1 cmx9IiAiJHtwcmp9IgorICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGdpdCBjbG9u ZSAtLXF1aWV0ICIke3VybH0iICIke2RzdH0ke3Byan0iCisgICAgICAgICAgICBmaQorICAgICAg ICAgICAgOzsKKyAgICAgICAgbGF0ZXN0LWdpdGh1Yi1yZWxlYXNlKQorICAgICAgICAgICAgaWYg WyAiJHtERUJVR30iIC1lcSAxIF0KKyAgICAgICAgICAgIHRoZW4KKyAgICAgICAgICAgICAgICBn aXQgY2xvbmUgIiR7dXJsfSIgIiR7cHJqfSIKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg ICAgICBnaXQgY2xvbmUgLS1xdWlldCAiJHt1cmx9IiAiJHtkc3R9JHtwcmp9IgorICAgICAgICAg ICAgZmkKKyAgICAgICAgICAgIDs7CisgICAgICAgIGh0dHBzIHwgaHR0cCkKKyAgICAgICAgICAg IG1rZGlyICIkcHJqIgorICAgICAgICAgICAgaWYgWyAiJHtERUJVR30iIC1lcSAxIF0KKyAgICAg ICAgICAgIHRoZW4KKyAgICAgICAgICAgICAgICBjdXJsICR7dXJsfSAtLW91dHB1dCAke3Byan0K KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBjdXJsIC0tc2lsZW50ICR7dXJsfSAt LW91dHB1dCAke3Byan0vCisgICAgICAgICAgICBmaQorICAgICAgICAgICAgOzsKKyAgICAgICAg KikKKyAgICAgICAgICAgIF9lcnIgIiR7RVJSfSBOb3Qgc3VwcG9ydGVkIFZDUyAke3Zjc30uIgor ICAgICAgICAgICAgcmV0dXJuIDEKKyAgICAgICAgICAgIDs7CisgICAgZXNhYworfQorCitxbF9z eXN0ZW1fcXVlcnkoKQoreworICAgIGxvY2FsIHF1ZXJ5PSIkMSIKKyAgICBsb2NhbCB0eXBlPSIk MiIKKyAgICBsb2NhbCBzeXN0ZW1zPSIkMyIKKworICAgICMgcHJvamVjdCBzeXN0ZW0tZmlsZSBz eXN0ZW0tbmFtZSBbZGVwZW5kZW5jeTEuLmRlcGVuZGVuY3lOXQorICAgIGNhc2UgIiR0eXBlIiBp bgorICAgICAgICBzeXN0ZW0pCisgICAgICAgICAgICAjIFF1ZXJ5IGluIHN5c3RlbSBjb2x1bW50 IGFuZCByZXR1cm4gcmVsYXRlZCBwcm9qZWN0CisgICAgICAgICAgICBhd2sgLXYgcT0iJHF1ZXJ5 IiAnKCQzID09IHEpIHtwcmludCAkMX0nICIke3N5c3RlbXN9IgorICAgICAgICAgICAgOzsKKyAg ICAgICAgcHJvamVjdCkKKyAgICAgICAgICAgICMgUXVlcnkgaW4gcHJvamVjdCBjb2x1bW50IGFu ZCByZXR1cm4gYWxsIG91dHB1dCBzeXN0ZW1zCisgICAgICAgICAgICBhd2sgLXYgcT0iJHF1ZXJ5 IiAnKCQxID09IHEpIHtwcmludCAkM30nICIke3N5c3RlbXN9IiB8CisgICAgICAgICAgICAgICAg Z3JlcCAtLWludmVydC1tYXRjaCAiJHtRTF9JR05PUkVfU1lTVEVNU30iIHwKKyAgICAgICAgICAg ICAgICB4YXJncworICAgICAgICAgICAgOzsKKyAgICAgICAgZGVwZW5kZW5jeSkKKyAgICAgICAg ICAgICMgUXVlcnkgaW4gcHJvamVjdCBjb2x1bW50IGFuZCBjb21iaW5lIGFsbCBkZXBkbmVuY2ll cworICAgICAgICAgICAgYXdrIC12IHE9IiRxdWVyeSIgJygkMSA9PSBxKScgIiR7c3lzdGVtc30i IHwKKyAgICAgICAgICAgICAgICBjdXQgLWY0LSAtZCcgJyB8CisgICAgICAgICAgICAgICAgeGFy Z3MgfAorICAgICAgICAgICAgICAgIHhhcmdzIC1uMSB8CisgICAgICAgICAgICAgICAgZ3JlcCAt LWludmVydC1tYXRjaCAiJHtRTF9JR05PUkVfU1lTVEVNU30iIHwKKyAgICAgICAgICAgICAgICBz b3J0IC11IHwKKyAgICAgICAgICAgICAgICB4YXJncworICAgICAgICAgICAgOzsKKyAgICBlc2Fj Cit9CisKK2dldF9jb21taXQoKQoreyAjIFJldHVybiBsYXRlc3QgY29tbWl0IG9mIGdpdmVuIFNS QyBhbmQgVkNTIHR5cGUgaWYgYXBwbGljYWJsZS4KKyAgICBsb2NhbCBzcmM9IiQxIgorICAgIGxv Y2FsIHZjcz0iJDIiCisKKyAgICBjYXNlICIke3Zjc30iIGluCisgICAgICAgIGdpdCkKKyAgICAg ICAgICAgIGdpdCAtLWdpdC1kaXIgIiR7c3JjfS8uZ2l0IiBsb2cgLW4xIC0tZm9ybWF0PWZvcm1h dDoiJUgiCisgICAgICAgICAgICA7OworICAgICAgICAqKQorICAgICAgICAgICAgZWNobyAibm90 LWF2YWlsYWJsZSIKKyAgICAgICAgICAgIDs7CisgICAgZXNhYworfQorZ3VpeF9zYmNsX2lucHV0 cygpCit7ICMgUmV0dXJuIGEgYmxvY2sgb2YgbGlzcCBsaXN0IG9mIHByb3ZpZGVkIERFUFMKKyAg ICBsb2NhbCBkZXBzPSIkMSIKKworICAgIGZvciBkIGluICR7ZGVwc1tAXX0KKyAgICBkbworICAg ICAgICBwcmludGYgIihcIiVzXCIgLHNiY2wtJXMpXG4iICIkZCIgIiRkIgorICAgIGRvbmUKK30K KworZ3VpeF9oYXNoKCkKK3sgIyBSZXR1cm4gYmFzZTMyIHNoYTI1NHN1bSBzdW0gb2YgZ2l2ZW4g U1JDIGFuZCBUWVBFCisgICAgbG9jYWwgc3JjPSIkMSIKKyAgICBsb2NhbCB0eXBlPSIkezI6LX0i CisKKyAgICBjYXNlICIke3R5cGV9IiBpbgorICAgICAgICBnaXQpCisgICAgICAgICAgICBndWl4 IGhhc2ggLS1yZWN1cnNpdmUgLS1leGNsdWRlLXZjcyAiJHtzcmN9IgorICAgICAgICAgICAgOzsK KyAgICAgICAgaHR0cHMgfCBodHRwKQorICAgICAgICAgICAgZ3VpeCBoYXNoICIke3NyY30iCisg ICAgICAgICAgICA7OworICAgIGVzYWMKK30KKworZ3VpeF9wYWNrYWdlX2F2YWlsYWJsZSgpCit7 ICMgQ2hlY2sgaWYgcHJvdmlkZWQgQ29tbW9uIExpc3AgU1lTVEVNIGlzIGF2YWlsYWJsZSBpbiBH dWl4IHVwc3RyZWFtIHBhY2thZ2VzLgorICAgIGxvY2FsIHN5c3RlbT0iJDEiCisKKyAgICBpZiBn dWl4IHBhY2thZ2UgLS1zaG93PSJzYmNsLSR7c3lzdGVtfSIgJj4vZGV2L251bGwKKyAgICB0aGVu CisgICAgICAgIGVjaG8gImF2YWlsYWJsZSIKKyAgICBlbHNlCisgICAgICAgIGVjaG8gIm5vdC1h dmFpbGFsYmUiCisgICAgZmkKK30KKworY2hrX3JlcXVpcmUoKQoreyAjIENoZWNrIHRoYXQgZXZl cnkgcmVxdWlyZWQgY29tbWFuZCBpcyBhdmFpbGFibGUuCisgICAgZGVjbGFyZSAtYSB3YXJuCisK KyAgICBfZGVidWcgIi0tLSBbICRGVU5DTkFNRSBdIC0tLSIKKworICAgIGZvciBjIGluICIke1JF UVVJUkVbQF19IjsgZG8KKyAgICAgICAgY29tbWFuZCAtdiAiJGMiICY+L2Rldi9udWxsIHx8IHdh cm4rPSgiJGMiKQorICAgIGRvbmUKKworICAgIFsgIiR7I3dhcm59IiAtbmUgMCBdICYmCisgICAg ICAgIHsgX2VyciAiJHtFUlJ9TWlzc2luZyBjb21tYW5kczogJHt3YXJuWypdfS4iOworICAgICAg ICAgIHJldHVybiAxOyB9CisKKyAgICBfbXNnICIke1BBU312ZXJpZmljYXRpb24gb2YgcmVxdWly ZWQgY29tbWFuZHMgY29tcGxldGVkIgorfQorCitndWl4X3BhY2thZ2UoKQoreyAjIFJldHVybiBH dWl4IHBhY2thZ2UgZGVmaW5pdGlvbgorICAgIGxvY2FsIHBhY2thZ2VfbmFtZT0iJDEiCisgICAg bG9jYWwgY29tbWl0PSIkMiIKKyAgICBsb2NhbCB2ZXJzaW9uPSIwLjAuMCIKKyAgICBsb2NhbCB1 cmw9IiQzIgorICAgIGxvY2FsIGlucHV0cz0iJDQiCisgICAgbG9jYWwgc3lub3BzaXM9IlRCQyIK KyAgICBsb2NhbCBkZXNjcmlwdGlvbj0iVEJDIgorICAgIGxvY2FsIGxpY2Vuc2U9IiNmIgorICAg IGxvY2FsIHNoYTI1Nl9iYXNlMzI9IiQ1IgorCisgICAgY2F0IDw8RU9GCisoZGVmaW5lLXB1Ymxp YyBzYmNsLSR7cGFja2FnZV9uYW1lfQorICAobGV0ICgoY29tbWl0ICIke2NvbW1pdH0iKQorICAg ICAgICAocmV2aXNpb24gIjEiKSkKKyAgICAocGFja2FnZQorICAgICAgKG5hbWUgInNiY2wtJHtw YWNrYWdlX25hbWV9IikKKyAgICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiJHt2ZXJzaW9ufSIg cmV2aXNpb24gY29tbWl0KSkKKyAgICAgIChzb3VyY2UKKyAgICAgICAob3JpZ2luCisgICAgICAg ICAobWV0aG9kIGdpdC1mZXRjaCkKKyAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAg ICAgICAgICAgICh1cmwgIiR7dXJsfSIpCisgICAgICAgICAgICAgICAoY29tbWl0IGNvbW1pdCkp KQorICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQorICAg ICAgICAgKHNoYTI1NgorICAgICAgICAgIChiYXNlMzIKKyAgICAgICAgICAgIiR7c2hhMjU2X2Jh c2UzMn0iKSkpKQorICAgICAgKGJ1aWxkLXN5c3RlbSBhc2RmLWJ1aWxkLXN5c3RlbS9zYmNsKQor ICAgICAgKGlucHV0cworICAgICAgIFxgKCR7aW5wdXRzfSkpCisgICAgICAoaG9tZS1wYWdlICIk e3VybH0iKQorICAgICAgKHN5bm9wc2lzICIke3N5bm9wc2lzfSIpCisgICAgICAoZGVzY3JpcHRp b24KKyIke2Rlc2NyaXB0aW9ufSIpCisgICAgICAobGljZW5zZSAke2xpY2Vuc2V9KSkpKQorRU9G Cit9CisKK21haW4gIiRAIgorIyBFbmQgb2YgZ3VpeC1pbXBvcnQtcXVpY2tsaXNwLmJhc2gKLS0g CjIuMzAuMgoK --00000000000083318305c059e42d--