From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dmitry Nikolaev Subject: Hack font family for GuixSD. Date: Thu, 2 Jun 2016 08:13:23 +0300 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=001a1142ad625505c0053444aa51 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:60290) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b8Kwh-0008AR-PS for guix-devel@gnu.org; Thu, 02 Jun 2016 01:13:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b8Kwe-0002W2-VY for guix-devel@gnu.org; Thu, 02 Jun 2016 01:13:26 -0400 Received: from mail-lf0-x236.google.com ([2a00:1450:4010:c07::236]:35435) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b8Kwe-0002Vw-Hv for guix-devel@gnu.org; Thu, 02 Jun 2016 01:13:24 -0400 Received: by mail-lf0-x236.google.com with SMTP id w16so26261106lfd.2 for ; Wed, 01 Jun 2016 22:13:24 -0700 (PDT) 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" To: guix-devel --001a1142ad625505c0053444aa51 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Hi. I wrote expression for adding Hack font family to GuixSD. You can see it my guix package repository: https://github.com/8p8c/my-guix/blob/master/packages/font-hack.scm Here is patch for fonts.scm: --- fonts.scm 2016-06-02 08:01:49.387086500 +0300 +++ fonts.new.scm 2016-06-02 08:05:30.005373478 +0300 @@ -9,6 +9,7 @@ ;;; Copyright =C2=A9 2016 Nils Gillmann ;;; Copyright =C2=A9 2016 Jookia <166291@gmail.com> ;;; Copyright =C2=A9 2016 Eric Bavier +;;; Copyright =C2=A9 2016 Dmitry Nikolaev ;;; ;;; This file is part of GNU Guix. ;;; @@ -921,3 +922,54 @@ (home-page "https://fontlibrary.org/en/font/fantasque-sans-mono") (license license:silofl1.1))) +(define-public font-hack + (package + (name "font-hack") + (version "2.020") + (source (origin + (method url-fetch) + (uri (string-append + " https://github.com/chrissimpkins/Hack/releases/download/v" + version + "/Hack-v" + "2_020" ;; FIXME + "-ttf.zip")) + (sha256 + (base32 + "16kkmc3psckw1b7k07ccn1gi5ymhlg9djh43nqjzg065g6p6d184")))) + (build-system trivial-build-system) + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils) + (srfi srfi-26)) + + (let ((PATH (string-append (assoc-ref %build-inputs + "unzip") + "/bin")) + (font-dir (string-append %output + "/share/fonts/truetype")) + (doc-dir (string-append %output "/share/doc/" + ,name "-" ,version))) + (setenv "PATH" PATH) + (system* "unzip" (assoc-ref %build-inputs "source")) + + (mkdir-p font-dir) + (mkdir-p doc-dir) + (for-each (lambda (ttf) + (copy-file ttf + (string-append font-dir "/" ttf))) + (find-files "." "\\.ttf$")) + (for-each (lambda (doc) + (copy-file doc + (string-append doc-dir "/" doc))) + (find-files "." "\\.txt$")))))) + (native-inputs `(("source" ,source) + ("unzip" ,unzip))) + (home-page "https://sourcefoundry.org/hack/") + (synopsis "A typeface designed for sourcecode.") + (description "The Hack Font is designed for the screen.") + (license + (license:non-copyleft ;;FIXME + "https://github.com/chrissimpkins/Hack/blob/master/LICENSE.md" + "Hack Open Font License v2.0")))) But there are two FIXME issues. First with URI string generation. Sorry, I haven't mastered Scheme yet: (uri (string-append " https://github.com/chrissimpkins/Hack/releases/download/v" version "/Hack-v" "2_020" ;; FIXME. This should be generated from version "2.020" "-ttf.zip")) And second with licence. I've marked it as non-copyleft, but I'm not sure about it: (license (license:non-copyleft ;;FIXME "https://github.com/chrissimpkins/Hack/blob/master/LICENSE.md" "Hack Open Font License v2.0")) Dmitry --001a1142ad625505c0053444aa51 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2PjxkaXY+PGRpdj5IaS4gSSB3cm90ZSBleHByZXNzaW9u IGZvciBhZGRpbmcgSGFjayBmb250IGZhbWlseSB0byBHdWl4U0QuIFlvdSBjYW4gc2VlIGl0IG15 IGd1aXggcGFja2FnZSByZXBvc2l0b3J5Ojxicj48YnI+PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIu Y29tLzhwOGMvbXktZ3VpeC9ibG9iL21hc3Rlci9wYWNrYWdlcy9mb250LWhhY2suc2NtIj5odHRw czovL2dpdGh1Yi5jb20vOHA4Yy9teS1ndWl4L2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2ZvbnQtaGFj ay5zY208L2E+PGJyPjxicj48L2Rpdj5IZXJlIGlzIHBhdGNoIGZvciBmb250cy5zY206PGJyPjxi cj4tLS0gZm9udHMuc2NtwqDCoMKgIDIwMTYtMDYtMDIgMDg6MDE6NDkuMzg3MDg2NTAwICswMzAw PGJyPisrKyBmb250cy5uZXcuc2NtwqDCoMKgIDIwMTYtMDYtMDIgMDg6MDU6MzAuMDA1MzczNDc4 ICswMzAwPGJyPkBAIC05LDYgKzksNyBAQDxicj7CoDs7OyBDb3B5cmlnaHQgwqkgMjAxNiBOaWxz IEdpbGxtYW5uICZsdDs8YSBocmVmPSJtYWlsdG86bmlhc3Rlcmlza0BncnJsei5uZXQiPm5pYXN0 ZXJpc2tAZ3JybHoubmV0PC9hPiZndDs8YnI+wqA7OzsgQ29weXJpZ2h0IMKpIDIwMTYgSm9va2lh ICZsdDs8YSBocmVmPSJtYWlsdG86MTY2MjkxQGdtYWlsLmNvbSI+MTY2MjkxQGdtYWlsLmNvbTwv YT4mZ3Q7PGJyPsKgOzs7IENvcHlyaWdodCDCqSAyMDE2IEVyaWMgQmF2aWVyICZsdDs8YSBocmVm PSJtYWlsdG86YmF2aWVyQG1lbWJlci5mc2Yub3JnIj5iYXZpZXJAbWVtYmVyLmZzZi5vcmc8L2E+ Jmd0Ozxicj4rOzs7IENvcHlyaWdodCDCqSAyMDE2IERtaXRyeSBOaWtvbGFldiAmbHQ7PGEgaHJl Zj0ibWFpbHRvOmNhbWVsdGhlbWFuQGdtYWlsLmNvbSI+Y2FtZWx0aGVtYW5AZ21haWwuY29tPC9h PiZndDs8YnI+wqA7Ozs8YnI+wqA7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguPGJy PsKgOzs7PGJyPkBAIC05MjEsMyArOTIyLDU0IEBAPGJyPsKgwqDCoMKgIChob21lLXBhZ2UgJnF1 b3Q7PGEgaHJlZj0iaHR0cHM6Ly9mb250bGlicmFyeS5vcmcvZW4vZm9udC9mYW50YXNxdWUtc2Fu cy1tb25vIj5odHRwczovL2ZvbnRsaWJyYXJ5Lm9yZy9lbi9mb250L2ZhbnRhc3F1ZS1zYW5zLW1v bm88L2E+JnF1b3Q7KTxicj7CoMKgwqDCoCAobGljZW5zZSBsaWNlbnNlOnNpbG9mbDEuMSkpKTxi cj7CoDxicj4rKGRlZmluZS1wdWJsaWMgZm9udC1oYWNrPGJyPivCoCAocGFja2FnZTxicj4rwqDC oMKgIChuYW1lICZxdW90O2ZvbnQtaGFjayZxdW90Oyk8YnI+K8KgwqDCoCAodmVyc2lvbiAmcXVv dDsyLjAyMCZxdW90Oyk8YnI+K8KgwqDCoCAoc291cmNlIChvcmlnaW48YnI+K8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChtZXRob2QgdXJsLWZldGNoKTxicj4rwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKHVyaSAoc3RyaW5nLWFwcGVuZDxicj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJnF1b3Q7PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Nocmlzc2lt cGtpbnMvSGFjay9yZWxlYXNlcy9kb3dubG9hZC92Ij5odHRwczovL2dpdGh1Yi5jb20vY2hyaXNz aW1wa2lucy9IYWNrL3JlbGVhc2VzL2Rvd25sb2FkL3Y8L2E+JnF1b3Q7PGJyPivCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB2ZXJzaW9uPGJyPivCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmcXVvdDsvSGFjay12JnF1b3Q7PGJyPivCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmcXVvdDsyXzAyMCZxdW90OyA7OyBGSVhNRTxi cj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnF1b3Q7LXR0Zi56aXAm cXVvdDspKTxicj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNoYTI1Njxicj4rwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYmFzZTMyPGJyPivCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgJnF1b3Q7MTZra21jM3BzY2t3MWI3azA3Y2NuMWdpNXltaGxnOWRqaDQzbnFqemcw NjVnNnA2ZDE4NCZxdW90OykpKSk8YnI+K8KgwqDCoCAoYnVpbGQtc3lzdGVtIHRyaXZpYWwtYnVp bGQtc3lzdGVtKTxicj4rwqDCoMKgIChhcmd1bWVudHM8YnI+K8KgwqDCoMKgIGAoIzptb2R1bGVz ICgoZ3VpeCBidWlsZCB1dGlscykpPGJyPivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAjOmJ1aWxkZXIgKGJlZ2luPGJyPivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodXNlLW1vZHVsZXMgKGd1aXggYnVpbGQgdXRpbHMpPGJy PivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChzcmZpIHNyZmktMjYpKTxicj4rPGJyPivCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGV0 ICgoUEFUSMKgwqDCoMKgIChzdHJpbmctYXBwZW5kIChhc3NvYy1yZWYgJWJ1aWxkLWlucHV0czxi cj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJnF1b3Q7dW56aXAmcXVvdDspPGJyPivCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICZxdW90Oy9iaW4mcXVvdDspKTxicj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGZvbnQtZGlyIChzdHJpbmctYXBw ZW5kICVvdXRwdXQ8YnI+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgJnF1b3Q7L3NoYXJlL2ZvbnRzL3RydWV0eXBlJnF1b3Q7KSk8 YnI+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChkb2MtZGlywqAgKHN0cmluZy1hcHBlbmQgJW91dHB1dCAmcXVvdDsv c2hhcmUvZG9jLyZxdW90Ozxicj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAsbmFtZSAmcXVvdDstJnF1b3Q7ICx2ZXJzaW9uKSkp PGJyPivCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKHNldGVudiAmcXVvdDtQQVRIJnF1b3Q7IFBBVEgpPGJyPivCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHN5c3RlbSog JnF1b3Q7dW56aXAmcXVvdDsgKGFzc29jLXJlZiAlYnVpbGQtaW5wdXRzICZxdW90O3NvdXJjZSZx dW90OykpPGJyPis8YnI+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAobWtkaXItcCBmb250LWRpcik8YnI+K8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobWtkaXItcCBk b2MtZGlyKTxicj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChmb3ItZWFjaCAobGFtYmRhICh0dGYpPGJyPivCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKGNvcHktZmlsZSB0dGY8YnI+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHN0cmluZy1hcHBlbmQgZm9udC1kaXIgJnF1b3Q7 LyZxdW90OyB0dGYpKSk8YnI+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChmaW5kLWZpbGVzICZx dW90Oy4mcXVvdDsgJnF1b3Q7XFwudHRmJCZxdW90OykpPGJyPivCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGZvci1lYWNoIChsYW1i ZGEgKGRvYyk8YnI+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoY29weS1maWxlIGRvYzxi cj4rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3Ry aW5nLWFwcGVuZCBkb2MtZGlyICZxdW90Oy8mcXVvdDsgZG9jKSkpPGJyPivCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAoZmluZC1maWxlcyAmcXVvdDsuJnF1b3Q7ICZxdW90O1xcLnR4dCQmcXVvdDsp KSkpKSk8YnI+K8KgwqDCoCAobmF0aXZlLWlucHV0cyBgKCgmcXVvdDtzb3VyY2UmcXVvdDsgLHNv dXJjZSk8YnI+K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKCZxdW90 O3VuemlwJnF1b3Q7ICx1bnppcCkpKTxicj4rwqDCoMKgIChob21lLXBhZ2UgJnF1b3Q7PGEgaHJl Zj0iaHR0cHM6Ly9zb3VyY2Vmb3VuZHJ5Lm9yZy9oYWNrLyI+aHR0cHM6Ly9zb3VyY2Vmb3VuZHJ5 Lm9yZy9oYWNrLzwvYT4mcXVvdDspPGJyPivCoMKgwqAgKHN5bm9wc2lzICZxdW90O0EgdHlwZWZh Y2UgZGVzaWduZWQgZm9yIHNvdXJjZWNvZGUuJnF1b3Q7KTxicj4rwqDCoMKgIChkZXNjcmlwdGlv biAmcXVvdDtUaGUgSGFjayBGb250IGlzIGRlc2lnbmVkIGZvciB0aGUgc2NyZWVuLiZxdW90Oyk8 YnI+K8KgwqDCoCAobGljZW5zZTxicj4rwqDCoMKgwqAgKGxpY2Vuc2U6bm9uLWNvcHlsZWZ0IDs7 RklYTUU8YnI+K8KgwqDCoMKgwqAgJnF1b3Q7PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2No cmlzc2ltcGtpbnMvSGFjay9ibG9iL21hc3Rlci9MSUNFTlNFLm1kIj5odHRwczovL2dpdGh1Yi5j b20vY2hyaXNzaW1wa2lucy9IYWNrL2Jsb2IvbWFzdGVyL0xJQ0VOU0UubWQ8L2E+JnF1b3Q7PGJy PivCoMKgwqDCoMKgICZxdW90O0hhY2sgT3BlbiBGb250IExpY2Vuc2UgdjIuMCZxdW90OykpKSk8 YnI+PGJyPjwvZGl2PkJ1dCB0aGVyZSBhcmUgdHdvIEZJWE1FIGlzc3Vlcy4gRmlyc3Qgd2l0aCBV Ukkgc3RyaW5nIGdlbmVyYXRpb24uIFNvcnJ5LCBJIGhhdmVuJiMzOTt0IG1hc3RlcmVkIFNjaGVt ZSB5ZXQ6PGJyPjxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodXJpIChzdHJpbmctYXBw ZW5kPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZxdW90OzxhIGhy ZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3NpbXBraW5zL0hhY2svcmVsZWFzZXMvZG93bmxv YWQvdiI+aHR0cHM6Ly9naXRodWIuY29tL2Nocmlzc2ltcGtpbnMvSGFjay9yZWxlYXNlcy9kb3du bG9hZC92PC9hPiZxdW90Ozxicj7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCB2ZXJzaW9uPGJyPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZxdW90 Oy9IYWNrLXYmcXVvdDs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg JnF1b3Q7Ml8wMjAmcXVvdDsgOzsgRklYTUUuIFRoaXMgc2hvdWxkIGJlIGdlbmVyYXRlZCBmcm9t IHZlcnNpb24gJnF1b3Q7Mi4wMjAmcXVvdDs8YnI+wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgJnF1b3Q7LXR0Zi56aXAmcXVvdDspKTxicj48YnI+PC9kaXY+QW5kIHNlY29u ZCB3aXRoIGxpY2VuY2UuIEkmIzM5O3ZlIG1hcmtlZCBpdCBhcyBub24tY29weWxlZnQsIGJ1dCBJ JiMzOTttIG5vdCBzdXJlIGFib3V0IGl0Ojxicj48YnI+wqDCoMKgIChsaWNlbnNlPGJyPsKgwqDC oMKgIChsaWNlbnNlOm5vbi1jb3B5bGVmdCA7O0ZJWE1FPGJyPsKgwqDCoMKgwqAgJnF1b3Q7PGEg aHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL2Nocmlzc2ltcGtpbnMvSGFjay9ibG9iL21hc3Rlci9M SUNFTlNFLm1kIj5odHRwczovL2dpdGh1Yi5jb20vY2hyaXNzaW1wa2lucy9IYWNrL2Jsb2IvbWFz dGVyL0xJQ0VOU0UubWQ8L2E+JnF1b3Q7PGJyPsKgwqDCoMKgwqAgJnF1b3Q7SGFjayBPcGVuIEZv bnQgTGljZW5zZSB2Mi4wJnF1b3Q7KSk8YnI+PGJyPjwvZGl2PkRtaXRyeTxicj48L2Rpdj4NCg== --001a1142ad625505c0053444aa51--