From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id cFbUD/Min14EGwAA0tVLHw (envelope-from ) for ; Tue, 21 Apr 2020 16:44:35 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2 with LMTPS id eAHmIvgin16OZgAAB5/wlQ (envelope-from ) for ; Tue, 21 Apr 2020 16:44:40 +0000 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 14F9C941E18 for ; Tue, 21 Apr 2020 16:44:40 +0000 (UTC) Received: from localhost ([::1]:33272 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQw0l-0002oF-I6 for larch@yhetil.org; Tue, 21 Apr 2020 12:44:39 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:57784) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jQvzS-00025R-0t for emacs-orgmode@gnu.org; Tue, 21 Apr 2020 12:43:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.90_1) (envelope-from ) id 1jQvzR-0005So-9G for emacs-orgmode@gnu.org; Tue, 21 Apr 2020 12:43:17 -0400 Received: from mail-pj1-x1033.google.com ([2607:f8b0:4864:20::1033]:37926) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jQvzQ-0005Rr-Pj for emacs-orgmode@gnu.org; Tue, 21 Apr 2020 12:43:16 -0400 Received: by mail-pj1-x1033.google.com with SMTP id t40so1573631pjb.3 for ; Tue, 21 Apr 2020 09:43:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=ncsW/lJYqhs4hOs9nmEQnCjBQhHNd+YRf4aRj6iorsQ=; b=tuGpNyuGG4WHm8/uBnSRU9AhVcriXheyWJkQEJV4Xd7SQTUPzsibkIDgAjJTi5D4O+ gk4XDLxnZPNSPO52oBSPi4Yco3woMT6IgyJp5BcPCsll50R7F/j4oW3BNUnil2p62Yxz FdgFYUnddyHJIknby2najFtLRto0EuW38LycY4JYtUcvsSxWb4xyoMvHEK8/5K6vDNo1 qn0xSmirB7a10uGme5Zf9IoWWsz6wjkAGQglxeMRTLnBTIl5ysU5snwNwmcasQlM9qZw fTdxE32dprkPQEsUGedtvSL9ClQJcx7c2DNRQwxyvZheba4dKPChHA45C+z2BfG/65Qm NBtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=ncsW/lJYqhs4hOs9nmEQnCjBQhHNd+YRf4aRj6iorsQ=; b=LYky2xKrRbhJLpHxGumR3G+Bve1CqAYU1+fNODBZyrtcHrwA+Jnn6vB7QNf8OwvUKR YlNp9E/jpi/6j31g7nf6uIYdrXPr9n6zxqgPF+K+8ttHeXoH52vyX0GSmo8OhlH9l5eZ Hfdb1pXJnoEEwchUSGSF8cJ558O/kj2GUldSEbEPwgKZi1m8sgUU9v5+1aTxZdXTDHd3 zSmnRxzEenpTUx08y9Ivq3nDtv4gjpvjlhnvbvnceYo6I/RZOmCFV7XnKnVz04mII73u QzU0uAoMq6XWhNTb+2vyQmpF3uNvvJHxwPjRdWk7WVFrtp2wjEM5gwHsS8EUy0vkwejI qeEw== X-Gm-Message-State: AGi0PuaExG1KV5kMog3g/0LROr5DOzJu0YMS5cHOJGkXSjDW8eXdCwxX pGIfsT0f2CaToHqXLFzFSlqfXUDBxOAvexSRc3S4+kQY X-Google-Smtp-Source: APiQypJSMLnqo809qcFAO8Ebeb8AdRgCFAfT/rAD325kH6B0X4NHuYGymTEG+qC8IEJHzwO+qHhzENryHArVAkWp7iI= X-Received: by 2002:a17:902:8688:: with SMTP id g8mr23398953plo.268.1587487394553; Tue, 21 Apr 2020 09:43:14 -0700 (PDT) MIME-Version: 1.0 References: <87tv1d2p19.fsf@hornfels.zedat.fu-berlin.de> <87wo690wkr.fsf@hornfels.zedat.fu-berlin.de> In-Reply-To: <87wo690wkr.fsf@hornfels.zedat.fu-berlin.de> From: Steve Downey Date: Tue, 21 Apr 2020 12:42:58 -0400 Message-ID: Subject: Re: Conditionally loading ob-sh or ob-shell To: Loris Bennett Content-Type: multipart/alternative; boundary="0000000000003ce5a505a3cfb6f4" Received-SPF: pass client-ip=2607:f8b0:4864:20::1033; envelope-from=sdowney@gmail.com; helo=mail-pj1-x1033.google.com X-detected-operating-system: by eggs.gnu.org: Error: [-] PROGRAM ABORT : Malformed IPv6 address (bad octet value). Location : parse_addr6(), p0f-client.c:67 X-Received-From: 2607:f8b0:4864:20::1033 X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Org Mode Mailing List Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: scn0 X-Spam-Score: -1.71 Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=gmail.com header.s=20161025 header.b=tuGpNyuG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Scan-Result: default: False [-1.71 / 13.00]; GENERIC_REPUTATION(0.00)[-0.56822726139537]; R_SPF_ALLOW(-0.20)[+ip4:209.51.188.0/24:c]; FREEMAIL_FROM(0.00)[gmail.com]; IP_REPUTATION_HAM(0.00)[asn: 22989(0.23), country: US(-0.01), ip: 209.51.188.17(-0.57)]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MIME_BASE64_TEXT(0.10)[]; RCPT_COUNT_TWO(0.00)[2]; MX_GOOD(-0.50)[cached: eggs.gnu.org]; MAILLIST(-0.20)[mailman]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; RCVD_IN_DNSWL_LOW(-0.10)[209.51.188.17:from]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:22989, ipnet:209.51.188.0/24, country:US]; TAGGED_FROM(0.00)[larch=yhetil.org]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; ARC_NA(0.00)[]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20161025]; RCVD_COUNT_FIVE(0.00)[6]; FROM_HAS_DN(0.00)[]; URIBL_BLOCKED(0.00)[init.org:url,fu-berlin.de:email]; FROM_NEQ_ENVFROM(0.00)[sdowney@gmail.com,emacs-orgmode-bounces@gnu.org]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; PREVIOUSLY_DELIVERED(0.00)[emacs-orgmode@gnu.org]; HAS_LIST_UNSUB(-0.01)[]; FORGED_RECIPIENTS_MAILLIST(0.00)[]; FORGED_SENDER_MAILLIST(0.00)[] X-TUID: QmBs5Dy1v/Wv --0000000000003ce5a505a3cfb6f4 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable My workaround for dealing with different org versions on different machines= : > (org-babel-do-load-languages > 'org-babel-load-languages > `((perl . t) > (ruby . t) > ,(if (version< org-version "9.0") > '(sh . t) > '(shell . t)) > (python . t) > (emacs-lisp . t) > (C . t) > (dot . t))))) > On Tue, Apr 21, 2020 at 9:59 AM Loris Bennett wrote: > Loris Bennett writes: > > > Hi, > > > > I want to use one init.el across multiple machines with different > > versions of Emacs and Org. Since 'ob-sh.el' changed to 'ob-shell', I > > need to do either > > > > (org-babel-do-load-languages > > 'org-babel-load-languages > > '((org . t) > > (emacs-lisp . t) > > (shell . t) > > (perl . t) > > (R . t) > > (matlab . t) > > (gnuplot . t) > > (dot . t) > > (ditaa . t) > > (plantuml . t) > > (sqlite . t) > > (python . t) > > (latex . t))) > > or > > > > (org-babel-do-load-languages > > 'org-babel-load-languages > > '((org . t) > > (emacs-lisp . t) > > (sh . t) > > (perl . t) > > (R . t) > > (matlab . t) > > (gnuplot . t) > > (dot . t) > > (ditaa . t) > > (plantuml . t) > > (sqlite . t) > > (python . t) > > (latex . t))) > > > > I can obviously use a conditional to test the Emacs or Org version and > > execute one block or the other. However, since the list of languages i= s > > quite long, I would like to avoid repeating it. > > > > I create init.el from an init.org, so I am open to tangling solutions > too. > > > > Cheers, > > > > Loris > > I discovered > > append org-babel-load-languages > > and solved the problem like this: > > (org-babel-do-load-languages > > 'org-babel-load-languages > > '( > > (org . t) > > (emacs-lisp . t) > > (perl . t) > > (R . t) > > (matlab . t) > > (gnuplot . t) > > (dot . t) > > (ditaa . t) > > (plantuml . t) > > (sqlite . t) > > (python . t) > > (latex . t))) > > (if (string=3D org-version "8.2.10") > > (org-babel-do-load-languages > > 'org-babel-load-languages > > (append org-babel-load-languages > > '((sh . t)))) > > (org-babel-do-load-languages > > 'org-babel-load-languages > > (append org-babel-load-languages > > '((shell . t))))) > > The version test is a bit rigid, but > > org-version-check > > is deprecated in my newer, primary version of Org and I couldn't work > out how to use it anyway =F0=9F=98=85 > > Cheers, > > Loris > > -- > This signature is currently under construction. > > --0000000000003ce5a505a3cfb6f4 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+TXkgd29ya2Fyb3VuZMKgZm9yIGRlYWxpbmcgd2l0aCBkaWZmZXJlbnQg b3JnIHZlcnNpb25zIG9uIGRpZmZlcmVudCBtYWNoaW5lczo8YnI+PGJsb2NrcXVvdGUgY2xhc3M9 ImdtYWlsX3F1b3RlIiBzdHlsZT0ibWFyZ2luOjBweCAwcHggMHB4IDAuOGV4O2JvcmRlci1sZWZ0 OjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpO3BhZGRpbmctbGVmdDoxZXgiPsKgKG9yZy1iYWJl bC1kby1sb2FkLWxhbmd1YWdlczxicj7CoCAmIzM5O29yZy1iYWJlbC1sb2FkLWxhbmd1YWdlczxi cj7CoCBgKChwZXJsIMKgIMKgIMKgIC4gdCk8YnI+wqAgwqAgKHJ1YnkgwqAgwqAgwqAgLiB0KTxi cj7CoCDCoCAsKGlmICh2ZXJzaW9uJmx0OyBvcmctdmVyc2lvbiAmcXVvdDs5LjAmcXVvdDspPGJy PsKgIMKgIMKgIMKgIMKgJiMzOTsoc2ggwqAgwqAgwqAgwqAgLiB0KTxicj7CoCDCoCDCoCDCoCYj Mzk7KHNoZWxsIMKgIMKgIMKgLiB0KSk8YnI+wqAgwqAgKHB5dGhvbiDCoCDCoCAuIHQpPGJyPsKg IMKgIChlbWFjcy1saXNwIC4gdCk8YnI+wqAgwqAgKEMgwqAgwqAgwqAgwqAgwqAuIHQpPGJyPsKg IMKgIChkb3QgwqAgwqAgwqAgwqAuIHQpKSkpKTxicj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjxk aXYgY2xhc3M9ImdtYWlsX3F1b3RlIj48ZGl2IGRpcj0ibHRyIiBjbGFzcz0iZ21haWxfYXR0ciI+ T24gVHVlLCBBcHIgMjEsIDIwMjAgYXQgOTo1OSBBTSBMb3JpcyBCZW5uZXR0ICZsdDs8YSBocmVm PSJtYWlsdG86bG9yaXMuYmVubmV0dEBmdS1iZXJsaW4uZGUiPmxvcmlzLmJlbm5ldHRAZnUtYmVy bGluLmRlPC9hPiZndDsgd3JvdGU6PGJyPjwvZGl2PjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9x dW90ZSIgc3R5bGU9Im1hcmdpbjowcHggMHB4IDBweCAwLjhleDtib3JkZXItbGVmdDoxcHggc29s aWQgcmdiKDIwNCwyMDQsMjA0KTtwYWRkaW5nLWxlZnQ6MWV4Ij5Mb3JpcyBCZW5uZXR0ICZsdDs8 YSBocmVmPSJtYWlsdG86bG9yaXMuYmVubmV0dEBmdS1iZXJsaW4uZGUiIHRhcmdldD0iX2JsYW5r Ij5sb3Jpcy5iZW5uZXR0QGZ1LWJlcmxpbi5kZTwvYT4mZ3Q7IHdyaXRlczo8YnI+DQo8YnI+DQom Z3Q7IEhpLDxicj4NCiZndDs8YnI+DQomZ3Q7IEkgd2FudCB0byB1c2Ugb25lIGluaXQuZWwgYWNy b3NzIG11bHRpcGxlIG1hY2hpbmVzIHdpdGggZGlmZmVyZW50PGJyPg0KJmd0OyB2ZXJzaW9ucyBv ZiBFbWFjcyBhbmQgT3JnLsKgIFNpbmNlICYjMzk7b2Itc2guZWwmIzM5OyBjaGFuZ2VkIHRvICYj Mzk7b2Itc2hlbGwmIzM5OywgSTxicj4NCiZndDsgbmVlZCB0byBkbyBlaXRoZXI8YnI+DQomZ3Q7 PGJyPg0KJmd0O8KgIMKgKG9yZy1iYWJlbC1kby1sb2FkLWxhbmd1YWdlczxicj4NCiZndDvCoCDC oCAmIzM5O29yZy1iYWJlbC1sb2FkLWxhbmd1YWdlczxicj4NCiZndDvCoCDCoCAmIzM5Oygob3Jn IC4gdCk8YnI+DQomZ3Q7wqAgwqAgwqAgKGVtYWNzLWxpc3AgLiB0KTxicj4NCiZndDvCoCDCoCDC oCAoc2hlbGwgLiB0KTxicj4NCiZndDvCoCDCoCDCoCAocGVybCAuIHQpPGJyPg0KJmd0O8KgIMKg IMKgIChSIC4gdCk8YnI+DQomZ3Q7wqAgwqAgwqAgKG1hdGxhYiAuIHQpPGJyPg0KJmd0O8KgIMKg IMKgIChnbnVwbG90IC4gdCk8YnI+DQomZ3Q7wqAgwqAgwqAgKGRvdCAuIHQpPGJyPg0KJmd0O8Kg IMKgIMKgIChkaXRhYSAuIHQpPGJyPg0KJmd0O8KgIMKgIMKgIChwbGFudHVtbCAuIHQpPGJyPg0K Jmd0O8KgIMKgIMKgIChzcWxpdGUgLiB0KTxicj4NCiZndDvCoCDCoCDCoCAocHl0aG9uIC4gdCk8 YnI+DQomZ3Q7wqAgwqAgwqAgKGxhdGV4IC4gdCkpKTxicj4NCiZndDsgb3IgPGJyPg0KJmd0Ozxi cj4NCiZndDvCoCDCoChvcmctYmFiZWwtZG8tbG9hZC1sYW5ndWFnZXM8YnI+DQomZ3Q7wqAgwqAg JiMzOTtvcmctYmFiZWwtbG9hZC1sYW5ndWFnZXM8YnI+DQomZ3Q7wqAgwqAgJiMzOTsoKG9yZyAu IHQpPGJyPg0KJmd0O8KgIMKgIMKgIChlbWFjcy1saXNwIC4gdCk8YnI+DQomZ3Q7wqAgwqAgwqAg KHNoIC4gdCk8YnI+DQomZ3Q7wqAgwqAgwqAgKHBlcmwgLiB0KTxicj4NCiZndDvCoCDCoCDCoCAo UiAuIHQpPGJyPg0KJmd0O8KgIMKgIMKgIChtYXRsYWIgLiB0KTxicj4NCiZndDvCoCDCoCDCoCAo Z251cGxvdCAuIHQpPGJyPg0KJmd0O8KgIMKgIMKgIChkb3QgLiB0KTxicj4NCiZndDvCoCDCoCDC oCAoZGl0YWEgLiB0KTxicj4NCiZndDvCoCDCoCDCoCAocGxhbnR1bWwgLiB0KTxicj4NCiZndDvC oCDCoCDCoCAoc3FsaXRlIC4gdCk8YnI+DQomZ3Q7wqAgwqAgwqAgKHB5dGhvbiAuIHQpPGJyPg0K Jmd0O8KgIMKgIMKgIChsYXRleCAuIHQpKSk8YnI+DQomZ3Q7wqAgwqAgwqAgPGJyPg0KJmd0OyBJ IGNhbiBvYnZpb3VzbHkgdXNlIGEgY29uZGl0aW9uYWwgdG8gdGVzdCB0aGUgRW1hY3Mgb3IgT3Jn IHZlcnNpb24gYW5kPGJyPg0KJmd0OyBleGVjdXRlIG9uZSBibG9jayBvciB0aGUgb3RoZXIuwqAg SG93ZXZlciwgc2luY2UgdGhlIGxpc3Qgb2YgbGFuZ3VhZ2VzIGlzPGJyPg0KJmd0OyBxdWl0ZSBs b25nLCBJIHdvdWxkIGxpa2UgdG8gYXZvaWQgcmVwZWF0aW5nIGl0Ljxicj4NCiZndDs8YnI+DQom Z3Q7IEkgY3JlYXRlIGluaXQuZWwgZnJvbSBhbiA8YSBocmVmPSJodHRwOi8vaW5pdC5vcmciIHJl bD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPmluaXQub3JnPC9hPiwgc28gSSBhbSBvcGVu IHRvIHRhbmdsaW5nIHNvbHV0aW9ucyB0b28uPGJyPg0KJmd0Ozxicj4NCiZndDsgQ2hlZXJzLDxi cj4NCiZndDs8YnI+DQomZ3Q7IExvcmlzPGJyPg0KPGJyPg0KSSBkaXNjb3ZlcmVkPGJyPg0KPGJy Pg0KwqAgYXBwZW5kIG9yZy1iYWJlbC1sb2FkLWxhbmd1YWdlcyA8YnI+DQo8YnI+DQphbmQgc29s dmVkIHRoZSBwcm9ibGVtIGxpa2UgdGhpczo8YnI+DQo8YnI+DQrCoCAob3JnLWJhYmVsLWRvLWxv YWQtbGFuZ3VhZ2VzwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJy Pg0KwqAgwqAmIzM5O29yZy1iYWJlbC1sb2FkLWxhbmd1YWdlc8KgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj4NCsKgIMKgJiMzOTsowqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqA8YnI+DQrCoCDCoCDCoChvcmcgLiB0KcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj4NCsKgIMKgIMKgKGVt YWNzLWxpc3AgLiB0KcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgPGJyPg0KwqAgwqAgwqAocGVybCAuIHQpwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+DQrCoCDCoCDC oChSIC4gdCnCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+DQrCoCDCoCDCoChtYXRsYWIgLiB0KcKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPg0K wqAgwqAgwqAoZ251cGxvdCAuIHQpwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPg0KwqAgwqAgwqAoZG90IC4gdCnCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8 YnI+DQrCoCDCoCDCoChkaXRhYSAuIHQpwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPg0KwqAgwqAgwqAocGxhbnR1bWwgLiB0 KcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgPGJyPg0KwqAgwqAgwqAoc3FsaXRlIC4gdCnCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj4NCsKgIMKgIMKgKHB5dGhvbiAu IHQpwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqA8YnI+DQrCoCDCoCDCoChsYXRleCAuIHQpKSk8YnI+DQo8YnI+DQrCoCAoaWYgKHN0 cmluZz0gb3JnLXZlcnNpb24gJnF1b3Q7OC4yLjEwJnF1b3Q7KcKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIDxicj4NCsKgIMKgIMKgIChvcmctYmFiZWwtZG8tbG9hZC1sYW5ndWFnZXPC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+DQrCoCDCoCDCoCDCoCYjMzk7 b3JnLWJhYmVsLWxvYWQtbGFuZ3VhZ2VzwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgPGJyPg0KwqAgwqAgwqAgwqAoYXBwZW5kIG9yZy1iYWJlbC1sb2FkLWxhbmd1YWdlc8Kg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAm IzM5Oygoc2ggLiB0KSkpKcKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIDxicj4NCsKgIMKgIChvcmctYmFiZWwtZG8tbG9hZC1sYW5ndWFnZXPCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+DQrCoCDCoCDCoCYjMzk7b3JnLWJhYmVsLWxv YWQtbGFuZ3VhZ2VzwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJy Pg0KwqAgwqAgwqAoYXBwZW5kIG9yZy1iYWJlbC1sb2FkLWxhbmd1YWdlc8KgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgPGJyPg0KwqAgwqAgwqAgwqAgwqAgwqAgwqAmIzM5Oygoc2hlbGwg LiB0KSkpKSnCoCDCoCDCoCDCoCDCoCDCoDxicj4NCjxicj4NClRoZSB2ZXJzaW9uIHRlc3QgaXMg YSBiaXQgcmlnaWQsIGJ1dDxicj4NCjxicj4NCsKgIG9yZy12ZXJzaW9uLWNoZWNrPGJyPg0KPGJy Pg0KaXMgZGVwcmVjYXRlZCBpbiBteSBuZXdlciwgcHJpbWFyeSB2ZXJzaW9uIG9mIE9yZyBhbmQg SSBjb3VsZG4mIzM5O3Qgd29yazxicj4NCm91dCBob3cgdG8gdXNlIGl0IGFueXdheSDwn5iFPGJy Pg0KPGJyPg0KQ2hlZXJzLDxicj4NCjxicj4NCkxvcmlzPGJyPg0KPGJyPg0KLS0gPGJyPg0KVGhp cyBzaWduYXR1cmUgaXMgY3VycmVudGx5IHVuZGVyIGNvbnN0cnVjdGlvbi48YnI+DQo8YnI+DQo8 L2Jsb2NrcXVvdGU+PC9kaXY+DQo= --0000000000003ce5a505a3cfb6f4--