From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44343) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eEfc3-0004Wd-0F for guix-patches@gnu.org; Tue, 14 Nov 2017 13:07:08 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eEfby-0007tQ-Vn for guix-patches@gnu.org; Tue, 14 Nov 2017 13:07:06 -0500 Received: from debbugs.gnu.org ([208.118.235.43]:60055) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eEfby-0007tH-NS for guix-patches@gnu.org; Tue, 14 Nov 2017 13:07:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eEfby-0007Nu-Bg for guix-patches@gnu.org; Tue, 14 Nov 2017 13:07:02 -0500 Subject: [bug#29294] [PATCH] gnu: wget: Add wget2. Resent-Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=_5e80a08aab2d70cc063f233b1a4dc3ba" Date: Tue, 14 Nov 2017 19:06:28 +0100 From: Rutger Helling In-Reply-To: <20171114155607.zym6uzztf2blfga7@abyayala> References: <002180def3dcabbd5ed927ecbd9d44df@mykolab.com> <20171114155607.zym6uzztf2blfga7@abyayala> Message-ID: <0b37be1edecb9136a3b1e9c112aec24c@mykolab.com> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: ng0 Cc: 29294@debbugs.gnu.org --=_5e80a08aab2d70cc063f233b1a4dc3ba Content-Type: multipart/alternative; boundary="=_5b75ff4ed53b65ac9d3474c363727fd3" --=_5b75ff4ed53b65ac9d3474c363727fd3 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Hi ng0, that makes sense. Here's an updated patch that uses gnutls/dane instead. I agree it's probably better to merge DANE functionality eventually. On 2017-11-14 16:56, ng0 wrote: > Rutger Helling transcribed 6.1K bytes: > >> Hey Guix, >> >> this patch adds wget2. > >> From 9e0271973c6c0c762cf4bcee987432864bc3e1d8 Mon Sep 17 00:00:00 2001 >> From: Rutger Helling >> Date: Tue, 14 Nov 2017 14:58:18 +0100 >> Subject: [PATCH] gnu: wget: Add wget2. >> >> * gnu/packages/wget.scm (wget2): New variable. >> --- >> gnu/packages/wget.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++ >> 1 file changed, 61 insertions(+) >> >> diff --git a/gnu/packages/wget.scm b/gnu/packages/wget.scm >> index bfcfcad23..6249f9eb3 100644 >> --- a/gnu/packages/wget.scm >> +++ b/gnu/packages/wget.scm >> @@ -2,6 +2,7 @@ >> ;;; Copyright (c) 2012 Nikita Karetnikov >> ;;; Copyright (c) 2014, 2015, 2017 Ludovic Courtès >> ;;; Copyright (c) 2016, 2017 Efraim Flashner >> +;;; Copyright (c) 2017 Rutger Helling >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -21,15 +22,23 @@ >> (define-module (gnu packages wget) >> #:use-module (guix licenses) >> #:use-module (gnu packages) >> + #:use-module (gnu packages autotools) >> + #:use-module (gnu packages base) >> #:use-module (gnu packages compression) >> + #:use-module (gnu packages documentation) >> + #:use-module (gnu packages flex) >> + #:use-module (gnu packages gettext) >> + #:use-module (gnu packages gnunet) >> #:use-module (gnu packages libidn) >> #:use-module (gnu packages python) >> #:use-module (gnu packages perl) >> #:use-module (gnu packages web) >> + #:use-module (gnu packages pcre) >> #:use-module (gnu packages pkg-config) >> #:use-module (gnu packages tls) >> #:use-module (guix packages) >> #:use-module (guix download) >> + #:use-module (guix git-download) >> #:use-module (guix build-system gnu)) >> >> (define-public wget >> @@ -112,3 +121,55 @@ in downloaded documents to relative links.") >> "@code{wgetpaste} is an extremely simple command-line interface to various >> online pastebin services.") >> (license public-domain))) >> + >> +(define-public wget2 >> + (package >> + (name "wget2") >> + (version "1.0.0") >> + (source >> + (origin >> + (method git-fetch) >> + (uri (git-reference >> + (url "https://github.com/rockdaboot/wget2") >> + (commit "b45709d3d21714135ce79df6abbdcb704684063d") >> + (recursive? #t))) ;; Needed for 'gnulib' git submodule. >> + (file-name (string-append name "-" version "-checkout")) >> + (sha256 >> + (base32 >> + "0ww84wwzmpyylkz8rnb6nk6f7x040132z81x52w7rjhk68p9mm24")))) >> + (build-system gnu-build-system) >> + (arguments >> + `(#:phases (modify-phases %standard-phases >> + (add-after 'unpack 'bootstrap >> + (lambda _ >> + ;; Make sure all the files are writable so that ./bootstrap >> + ;; can proceed. >> + (for-each (lambda (file) >> + (chmod file #o755)) >> + (find-files ".")) >> + (substitute* "./gnulib/gnulib-tool.py" >> + (("/usr/bin/python") (which "python3"))) >> + (zero? (system* "sh" "./bootstrap" >> + "--gnulib-srcdir=gnulib" >> + "--no-git"))))))) >> + (inputs `(("autoconf", autoconf) >> + ("automake", automake) >> + ("doxygen", doxygen) >> + ("flex", flex) >> + ("gettext", gettext-minimal) >> + ("gnutls", gnutls) > > As libmicrohttpd is build with GnuTLS with DANE ('gnutls/dane' package), > wouldn't it make sense to build this with gnutls/dane aswell? > > Or: In my opinion the gnuntls/dane package I've added should be merged > into gnutls unless someone disagrees. This way DANE functionality is > included by default. > >> + ("libiconv", libiconv) >> + ("libidn2", libidn2) >> + ("libmicrohttpd", libmicrohttpd) >> + ("libpsl", libpsl) >> + ("libtool", libtool) >> + ("pcre2", pcre2) >> + ("python", python))) >> + ;; TODO: Add libbrotlidec, libnghttp2. >> + (native-inputs `(("pkg-config", pkg-config))) >> + (home-page "https://github.com/rockdaboot/wget2") >> + (synopsis "Successor of GNU Wget") >> + (description "GNU Wget2 is the successor of GNU Wget, a file and recursive >> +website downloader. Designed and written from scratch it wraps around libwget, >> +that provides the basic functions needed by a web client.") >> + (license (list gpl3+ lgpl3+)))) >> -- >> 2.15.0 --=_5b75ff4ed53b65ac9d3474c363727fd3 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=UTF-8

Hi ng0,

that makes sense. Here's an updated patch that uses gnutls/dane instead= =2E I agree it's probably better to merge DANE functionality eventually.

On 2017-11-14 16:56, ng0 wrote:

= Rutger Helling transcribed 6.1K bytes:
Hey Guix,

this patch adds wget2.
From 9e0271973c6c0c762cf4bcee987432864bc3e1d8 Mon Sep = 17 00:00:00 2001
From: Rutger Helling <rhelling@mykolab.com>
Date: Tue, 14 Nov 2017 14:5= 8:18 +0100
Subject: [PATCH] gnu: wget: Add wget2.

* gnu/= packages/wget.scm (wget2): New variable.
---
 gnu/packages= /wget.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++
&n= bsp;1 file changed, 61 insertions(+)

diff --git a/gnu/packages= /wget.scm b/gnu/packages/wget.scm
index bfcfcad23..6249f9eb3 100644 --- a/gnu/packages/wget.scm
+++ b/gnu/packages/wget.scm
@@= -2,6 +2,7 @@
 ;;; Copyright © 2012 Nikita Karetnikov <<= a href=3D"mailto:nikita@karetnikov.org">nikita@karetnikov.org>
=  ;;; Copyright © 2014, 2015, 2017 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright= © 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2017 Rutge= r Helling <rhelling@mykolab.com<= /a>>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -21,15 +22,23 @@
 (define-module (gnu packa= ges wget)
   #:use-module (guix licenses)
 =   #:use-module (gnu packages)
+  #:use-module (gnu pac= kages autotools)
+  #:use-module (gnu packages base)
 = ;  #:use-module (gnu packages compression)
+  #:use-mo= dule (gnu packages documentation)
+  #:use-module (gnu packages = flex)
+  #:use-module (gnu packages gettext)
+  #:use= -module (gnu packages gnunet)
   #:use-module (gnu pac= kages libidn)
   #:use-module (gnu packages python)    #:use-module (gnu packages perl)
  &n= bsp;#:use-module (gnu packages web)
+  #:use-module (gnu package= s pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages tls)
   = ;#:use-module (guix packages)
   #:use-module (guix do= wnload)
+  #:use-module (guix git-download)
  &n= bsp;#:use-module (guix build-system gnu))
 
 (define-= public wget
@@ -112,3 +121,55 @@ in downloaded documents to relative = links.")
      "@code{wgetpaste} is an = extremely simple command-line interface to various
 online paste= bin services.")
     (license public-domain)= ))
+
+(define-public wget2
+  (package
+  = ; (name "wget2")
+   (version "1.0.0")
+  &= nbsp;(source
+    (origin
+    &n= bsp;(method git-fetch)
+     (uri (git-reference<= br /> +           (url "<= a href=3D"https://github.com/rockdaboot/wget2" target=3D"_blank" rel=3D"noo= pener noreferrer">https://github.com/rockdaboot/wget2
")
+  &= nbsp;        (commit "b45709d3d2171= 4135ce79df6abbdcb704684063d")
+       &= nbsp;   (recursive? #t))) ;; Needed for 'gnulib' git submodu= le.
+     (file-name (string-append name "-" vers= ion "-checkout"))
+     (sha256
+  &nb= sp;   (base32
+       "0= ww84wwzmpyylkz8rnb6nk6f7x040132z81x52w7rjhk68p9mm24"))))
+  &nbs= p;(build-system gnu-build-system)
+   (arguments
+ &n= bsp;  `(#:phases (modify-phases %standard-phases
+  &n= bsp;   (add-after 'unpack 'bootstrap
+   &nb= sp;    (lambda _
+      =     ;; Make sure all the files are writable so that ./b= ootstrap
+          ;; c= an proceed.
+          (= for-each (lambda (file)
+        &= nbsp;           &nbs= p; (chmod file #o755))
+       &nb= sp;            =   (find-files "."))
+       &= nbsp;  (substitute* "./gnulib/gnulib-tool.py"
+   = ;            &n= bsp;       (("/usr/bin/python") (which "= python3")))
+          (= zero? (system* "sh" "./bootstrap"
+      &nb= sp;            =        "--gnulib-srcdir=3Dgnulib"
= +             &= nbsp;           &nbs= p;"--no-git")))))))
+   (inputs `(("autoconf", autoconf) +            &nb= sp;("automake", automake)
+        = ;     ("doxygen", doxygen)
+   &nb= sp;         ("flex", flex)
+            &nbs= p;("gettext", gettext-minimal)
+       =       ("gnutls", gnutls)

As libmicrohttpd is build with GnuTLS with DANE ('gnutls/dane' packa= ge),
wouldn't it make sense to build this with gnutls/dane aswell?
Or: In my opinion the gnuntls/dane package I've added should be = merged
into gnutls unless someone disagrees. This way DANE functional= ity is
included by default.

+         &nbs= p;   ("libiconv", libiconv)
+     =         ("libidn2", libidn2)
= +             (= "libmicrohttpd", libmicrohttpd)
+       = ;      ("libpsl", libpsl)
+   = ;          ("libtool", li= btool)
+           =   ("pcre2", pcre2)
+       &n= bsp;     ("python", python)))
+   = ;; TODO: Add libbrotlidec, libnghttp2.
+   (native-inputs `= (("pkg-config", pkg-config)))
+   (home-page "https://github.com/rockdaboot/wget2")
+   (synops= is "Successor of GNU Wget")
+   (description "GNU Wget2 is = the successor of GNU Wget, a file and recursive
+website downloader= =2E  Designed and written from scratch it wraps around libwget,
= +that provides the basic functions needed by a web client.")
+  =  (license (list gpl3+ lgpl3+))))
--  2.15.0


--=_5b75ff4ed53b65ac9d3474c363727fd3-- --=_5e80a08aab2d70cc063f233b1a4dc3ba Content-Transfer-Encoding: base64 Content-Type: text/x-diff; name=0001-gnu-wget-Add-wget2-v2.patch Content-Disposition: attachment; filename=0001-gnu-wget-Add-wget2-v2.patch; size=3918 RnJvbSA2OGVkMGYxMGZhNDRjNTA2OTI0MDExYzA2NzdiMGU2YmViYTQzMzVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSdXRnZXIgSGVsbGluZyA8cmhlbGxpbmdAbXlrb2xhYi5jb20+ CkRhdGU6IFR1ZSwgMTQgTm92IDIwMTcgMTk6MDE6MDggKzAxMDAKU3ViamVjdDogW1BBVENIXSBn bnU6IHdnZXQ6IEFkZCB3Z2V0Mi4KCiogZ251L3BhY2thZ2VzL3dnZXQuc2NtICh3Z2V0Mik6IE5l dyB2YXJpYWJsZS4KLS0tCiBnbnUvcGFja2FnZXMvd2dldC5zY20gfCA2MSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIDEgZmlsZSBjaGFuZ2VkLCA2 MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL3dnZXQuc2NtIGIvZ251 L3BhY2thZ2VzL3dnZXQuc2NtCmluZGV4IGJmY2ZjYWQyMy4uYTQ4NjJkNTE1IDEwMDY0NAotLS0g YS9nbnUvcGFja2FnZXMvd2dldC5zY20KKysrIGIvZ251L3BhY2thZ2VzL3dnZXQuc2NtCkBAIC0y LDYgKzIsNyBAQAogOzs7IENvcHlyaWdodCDCqSAyMDEyIE5pa2l0YSBLYXJldG5pa292IDxuaWtp dGFAa2FyZXRuaWtvdi5vcmc+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMTQsIDIwMTUsIDIwMTcgTHVk b3ZpYyBDb3VydMOocyA8bHVkb0BnbnUub3JnPgogOzs7IENvcHlyaWdodCDCqSAyMDE2LCAyMDE3 IEVmcmFpbSBGbGFzaG5lciA8ZWZyYWltQGZsYXNobmVyLmNvLmlsPgorOzs7IENvcHlyaWdodCDC qSAyMDE3IFJ1dGdlciBIZWxsaW5nIDxyaGVsbGluZ0BteWtvbGFiLmNvbT4KIDs7OwogOzs7IFRo aXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgogOzs7CkBAIC0yMSwxNSArMjIsMjMgQEAKIChk ZWZpbmUtbW9kdWxlIChnbnUgcGFja2FnZXMgd2dldCkKICAgIzp1c2UtbW9kdWxlIChndWl4IGxp Y2Vuc2VzKQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcykKKyAgIzp1c2UtbW9kdWxlIChn bnUgcGFja2FnZXMgYXV0b3Rvb2xzKQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBiYXNl KQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBjb21wcmVzc2lvbikKKyAgIzp1c2UtbW9k dWxlIChnbnUgcGFja2FnZXMgZG9jdW1lbnRhdGlvbikKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFj a2FnZXMgZmxleCkKKyAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ2V0dGV4dCkKKyAgIzp1 c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ251bmV0KQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNr YWdlcyBsaWJpZG4pCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHB5dGhvbikKICAgIzp1 c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgcGVybCkKICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2Fn ZXMgd2ViKQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBwY3JlKQogICAjOnVzZS1tb2R1 bGUgKGdudSBwYWNrYWdlcyBwa2ctY29uZmlnKQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdl cyB0bHMpCiAgICM6dXNlLW1vZHVsZSAoZ3VpeCBwYWNrYWdlcykKICAgIzp1c2UtbW9kdWxlIChn dWl4IGRvd25sb2FkKQorICAjOnVzZS1tb2R1bGUgKGd1aXggZ2l0LWRvd25sb2FkKQogICAjOnVz ZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGdudSkpCiAKIChkZWZpbmUtcHVibGljIHdnZXQK QEAgLTExMiwzICsxMjEsNTUgQEAgaW4gZG93bmxvYWRlZCBkb2N1bWVudHMgdG8gcmVsYXRpdmUg bGlua3MuIikKICAgICAgIkBjb2Rle3dnZXRwYXN0ZX0gaXMgYW4gZXh0cmVtZWx5IHNpbXBsZSBj b21tYW5kLWxpbmUgaW50ZXJmYWNlIHRvIHZhcmlvdXMKIG9ubGluZSBwYXN0ZWJpbiBzZXJ2aWNl cy4iKQogICAgIChsaWNlbnNlIHB1YmxpYy1kb21haW4pKSkKKworKGRlZmluZS1wdWJsaWMgd2dl dDIKKyAgKHBhY2thZ2UKKyAgIChuYW1lICJ3Z2V0MiIpCisgICAodmVyc2lvbiAiMS4wLjAiKQor ICAgKHNvdXJjZQorICAgIChvcmlnaW4KKyAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICh1 cmkgKGdpdC1yZWZlcmVuY2UKKyAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3Jv Y2tkYWJvb3Qvd2dldDIiKQorICAgICAgICAgICAoY29tbWl0ICJiNDU3MDlkM2QyMTcxNDEzNWNl NzlkZjZhYmJkY2I3MDQ2ODQwNjNkIikKKyAgICAgICAgICAgKHJlY3Vyc2l2ZT8gI3QpKSkgOzsg TmVlZGVkIGZvciAnZ251bGliJyBnaXQgc3VibW9kdWxlLgorICAgICAoZmlsZS1uYW1lIChzdHJp bmctYXBwZW5kIG5hbWUgIi0iIHZlcnNpb24gIi1jaGVja291dCIpKQorICAgICAoc2hhMjU2Cisg ICAgICAoYmFzZTMyCisgICAgICAgIjB3dzg0d3d6bXB5eWxrejhybmI2bms2Zjd4MDQwMTMyejgx eDUydzdyamhrNjhwOW1tMjQiKSkpKQorICAgKGJ1aWxkLXN5c3RlbSBnbnUtYnVpbGQtc3lzdGVt KQorICAgKGFyZ3VtZW50cworICAgIGAoIzpwaGFzZXMgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJk LXBoYXNlcworICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdib290c3RyYXAKKyAgICAgICAgKGxh bWJkYSBfCisgICAgICAgICAgOzsgTWFrZSBzdXJlIGFsbCB0aGUgZmlsZXMgYXJlIHdyaXRhYmxl IHNvIHRoYXQgLi9ib290c3RyYXAKKyAgICAgICAgICA7OyBjYW4gcHJvY2VlZC4KKyAgICAgICAg ICAoZm9yLWVhY2ggKGxhbWJkYSAoZmlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAoY2htb2Qg ZmlsZSAjbzc1NSkpCisgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZXMgIi4iKSkKKyAg ICAgICAgICAoc3Vic3RpdHV0ZSogIi4vZ251bGliL2dudWxpYi10b29sLnB5IgorICAgICAgICAg ICAgICAgICAgICAgICAoKCIvdXNyL2Jpbi9weXRob24iKSAod2hpY2ggInB5dGhvbjMiKSkpCisg ICAgICAgICAgKHplcm8/IChzeXN0ZW0qICJzaCIgIi4vYm9vdHN0cmFwIgorICAgICAgICAgICAg ICAgICAgICAgICAgICAiLS1nbnVsaWItc3JjZGlyPWdudWxpYiIKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgIi0tbm8tZ2l0IikpKSkpKSkKKyAgIChpbnB1dHMgYCgoImF1dG9jb25mIiwgYXV0 b2NvbmYpCisgICAgICAgICAgICAgKCJhdXRvbWFrZSIsIGF1dG9tYWtlKQorICAgICAgICAgICAg ICgiZG94eWdlbiIsIGRveHlnZW4pCisgICAgICAgICAgICAgKCJmbGV4IiwgZmxleCkKKyAgICAg ICAgICAgICAoImdldHRleHQiLCBnZXR0ZXh0LW1pbmltYWwpCisgICAgICAgICAgICAgKCJnbnV0 bHMiLCBnbnV0bHMvZGFuZSkKKyAgICAgICAgICAgICAoImxpYmljb252IiwgbGliaWNvbnYpCisg ICAgICAgICAgICAgKCJsaWJpZG4yIiwgbGliaWRuMikKKyAgICAgICAgICAgICAoImxpYm1pY3Jv aHR0cGQiLCBsaWJtaWNyb2h0dHBkKQorICAgICAgICAgICAgICgibGlicHNsIiwgbGlicHNsKQor ICAgICAgICAgICAgICgibGlidG9vbCIsIGxpYnRvb2wpCisgICAgICAgICAgICAgKCJwY3JlMiIs IHBjcmUyKQorICAgICAgICAgICAgICgicHl0aG9uIiwgcHl0aG9uKSkpCisgICA7OyBUT0RPOiBB ZGQgbGliYnJvdGxpZGVjLCBsaWJuZ2h0dHAyLgorICAgKG5hdGl2ZS1pbnB1dHMgYCgoInBrZy1j b25maWciLCBwa2ctY29uZmlnKSkpCisgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20v cm9ja2RhYm9vdC93Z2V0MiIpCisgICAoc3lub3BzaXMgIlN1Y2Nlc3NvciBvZiBHTlUgV2dldCIp CisgICAoZGVzY3JpcHRpb24gIkdOVSBXZ2V0MiBpcyB0aGUgc3VjY2Vzc29yIG9mIEdOVSBXZ2V0 LCBhIGZpbGUgYW5kIHJlY3Vyc2l2ZQord2Vic2l0ZSBkb3dubG9hZGVyLiAgRGVzaWduZWQgYW5k IHdyaXR0ZW4gZnJvbSBzY3JhdGNoIGl0IHdyYXBzIGFyb3VuZCBsaWJ3Z2V0LAordGhhdCBwcm92 aWRlcyB0aGUgYmFzaWMgZnVuY3Rpb25zIG5lZWRlZCBieSBhIHdlYiBjbGllbnQuIikKKyAgIChs aWNlbnNlIChsaXN0IGdwbDMrIGxncGwzKykpKSkKLS0gCjIuMTUuMAoK --=_5e80a08aab2d70cc063f233b1a4dc3ba--