From chunnuan.chen@sun.com Thu Jul 19 19:39:13 2018 From: Chunnuan Chen To: smartlist@lists.rwth-aachen.de Subject: Re: Web subscription form Date: Mon, 26 Nov 2001 12:51:55 -0800 Message-ID: <3C02AB6B.2000609@sun.com> In-Reply-To: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8468561593773424106==" --===============8468561593773424106== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit I have a website which does the html form-based mailing-list subscription using jsp as the action target. Here is the snippet of th html form: ------------------------------------------------------ Bioweircom.org MailingList
Your Email Address:   
------------------------------------------------------ and the snippet of the Subscribe.jsp: ------------------------------------------------------ <%@ page import="java.io.*" %> <%@ page import="java.text.*" %> <%@ page import="java.util.*" %> <%@ page import="javax.mail.Message" %> <%@ page import="javax.mail.Session" %> <%@ page import="javax.mail.Transport" %> <%@ page import="javax.mail.internet.InternetAddress" %> <%@ page import="javax.mail.internet.MimeMessage" %> <%@ page import="javax.naming.Context" %> <%@ page import="javax.naming.InitialContext" %> <% String title="Subscribing to bio93(a)bioweircom.org"; %> <%= title %>


<% String email=request.getParameter("email"); String action=request.getParameter("action"); if(email==null||email.compareTo("")==0||email.indexOf('@') <= 0){ %> Invalid email address. Click the "Back" button above to subscribe again.

<% return; } %> <% try { // Acquire our JavaMail session object Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); Session mailsession = (Session) envCtx.lookup("mail/Session"); // Prepare our mail message Message message = new MimeMessage(mailsession); message.setFrom(new InternetAddress(email)); InternetAddress dests[] = new InternetAddress[]{ new InternetAddress("bio93-request(a)bioweircom.org") }; message.setRecipients(Message.RecipientType.TO, dests); message.setSubject(action); message.setContent("", "text/plain"); if(action.compareTo("subscribe")==0){ out.println("You have successfully "+action+"d to bio93(a)biweircom.org. A confirmation email will be sent to you shortly.
"); }else{ out.println("You have successfully "+action+"d from bio93(a)biweircom.org. A confirmation email will be sent to you shortly.
"); } } catch (Throwable t) { out.println(""); out.println("ENCOUNTERED EXCEPTION: " + t); out.println("
");
        t.printStackTrace();
        out.println("
"); out.println("
"); } %>


-------------------------------------------------------------------------------------------------------------------------------------------------------------------- Above jsp is run within Tomcat-4.0, which can be downloaded from www.apache.org. There is a send-mail sample code coming with the Tomcat download. Good luck, Chun-Nuan Peter Hartzler wrote: >Kevin -- > >Regarding the questions you sent to me off-list... > >The standard way to subscribe to a SL list is to send an email from the >email account you wish subscribed, to the -request address of the list, >with "subscribe" in the subject. > >For instance: if your list is called gorp, you might tell your clientele: > >Welcome to Gorp, blah blah blah... > >To join our email discussion list, send an email to >gorp-request(a)example.com with the SUBJECT (not body) of your message >reading "subscribe" (without the quotes.) > >Hmm... I'm sure this is all covered in the docs. have you been to >http://www.hartzler.net/smartlist/ ? > >-ph > > >On Mon, 26 Nov 2001, Peter Hartzler wrote: > >>The usual approach is to write a cgi that takes a submitted email address >>and creates a subscribe message which it sends to the list-request >>address. Quite simple to do if you have any chops at all in web based >>apps. You'll want to enable confirmation, to avoid the addition of bogus >>email addresses. >> >>On the other hand, pure email based subscription mechanisms such as the >>standard SmartList approach aren't that hard -- but I won't ask why you >>don't want to go that route. (Odds are someone else on this list will, >>however. ;) >> >>-ph >> >>On Mon, 26 Nov 2001, Peterson, Kevin wrote: >> >>>I am looking for advice, example, instruction, anything that will help me >>>create a web-based subscription form >>>for a smartlist mailing list. I have been looking for hours, and thought >>>that the members of this forum may be able >>>to lend a hand. >>> >>>I am trying to free myself of free e-mail hosts (Topica), and use the >>>smartlist installed on my web site. >>> >>>Any help or advice is appreciated. >>> >>>Kevin S. Peterson >>> >>> >>>_______________________________________________ >>>Smartlist mailing list >>>Smartlist(a)lists.RWTH-Aachen.DE >>>http://MailMan.RWTH-Aachen.DE/mailman/listinfo/smartlist >>> >>_______________________________________________ >>Smartlist mailing list >>Smartlist(a)lists.RWTH-Aachen.DE >>http://MailMan.RWTH-Aachen.DE/mailman/listinfo/smartlist >> > >_______________________________________________ >Smartlist mailing list >Smartlist(a)lists.RWTH-Aachen.DE >http://MailMan.RWTH-Aachen.DE/mailman/listinfo/smartlist > --===============8468561593773424106== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMDEgVHJhbnNpdGlvbmFs Ly9FTiI+CjxodG1sPgo8aGVhZD4KICA8dGl0bGU+PC90aXRsZT4KPC9oZWFkPgo8Ym9keT4KSSBo YXZlIGEgd2Vic2l0ZSB3aGljaCBkb2VzIHRoZSBodG1sIGZvcm0tYmFzZWQgbWFpbGluZy1saXN0 IHN1YnNjcmlwdGlvbgp1c2luZyBqc3AgYXMgdGhlIGFjdGlvbiB0YXJnZXQuIEhlcmUgaXMgdGhl IHNuaXBwZXQgb2YgdGggaHRtbCBmb3JtOjxicj4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPGJyPgombHQ7aHRtbCZndDs8YnI+CiZsdDt0aXRs ZSZndDsgQmlvd2VpcmNvbS5vcmcgTWFpbGluZ0xpc3QmbHQ7L3RpdGxlJmd0Ozxicj4KJmx0O2Jv ZHkmZ3Q7PGJyPgombHQ7YnImZ3Q7PGJyPgombHQ7Y2VudGVyJmd0Ozxicj4KJmx0O2Zvcm0gTUVU SE9UPXBvc3QgQUNUSU9OPTxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0 dHA6Ly93d3cuYmlvd2VpcmNvbS5vcmcvamF2YS9qc3AvU3Vic2NyaWJlLmpzcCI+aHR0cDovL3d3 dy5iaW93ZWlyY29tLm9yZy9qYXZhL2pzcC9TdWJzY3JpYmUuanNwPC9hPiZndDs8YnI+CiZuYnNw O1lvdXIgRW1haWwgQWRkcmVzczogJmx0O2lucHV0IHR5cGU9dGV4dCBuYW1lPWVtYWlsIHNpemU9 MzAgbWF4bGVuZ3RoPTQwJmd0Ozxicj4KJmx0O2lucHV0IHR5cGU9c3VibWl0IG5hbWU9YWN0aW9u IHZhbHVlPXN1YnNjcmliZSZndDs8YnI+CiZhbXA7bmJzcDsmYW1wO25ic3A7PGJyPgombHQ7aW5w dXQgdHlwZT1zdWJtaXQgbmFtZT1hY3Rpb24gdmFsdWU9dW5zYnNjcmliZSZndDs8YnI+CiZsdDsv Zm9ybSZndDs8YnI+CiZsdDsvY2VudGVyJmd0Ozxicj4KJmx0Oy9ib2R5Jmd0Ozxicj4KJmx0Oy9o dG1sJmd0Ozxicj4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tPGJyPgo8YnI+CmFuZCB0aGUgc25pcHBldCBvZiB0aGUgU3Vic2NyaWJlLmpzcDo8 YnI+Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LTxicj4KJmx0OyVAIHBhZ2UgaW1wb3J0PSJqYXZhLmlvLioiICUmZ3Q7PGJyPgombHQ7JUAgcGFn ZSBpbXBvcnQ9ImphdmEudGV4dC4qIiAlJmd0Ozxicj4KJmx0OyVAIHBhZ2UgaW1wb3J0PSJqYXZh LnV0aWwuKiIgJSZndDs8YnI+CiZsdDslQCBwYWdlIGltcG9ydD0iamF2YXgubWFpbC5NZXNzYWdl IiAlJmd0Ozxicj4KJmx0OyVAIHBhZ2UgaW1wb3J0PSJqYXZheC5tYWlsLlNlc3Npb24iICUmZ3Q7 PGJyPgombHQ7JUAgcGFnZSBpbXBvcnQ9ImphdmF4Lm1haWwuVHJhbnNwb3J0IiAlJmd0Ozxicj4K Jmx0OyVAIHBhZ2UgaW1wb3J0PSJqYXZheC5tYWlsLmludGVybmV0LkludGVybmV0QWRkcmVzcyIg JSZndDs8YnI+CiZsdDslQCBwYWdlIGltcG9ydD0iamF2YXgubWFpbC5pbnRlcm5ldC5NaW1lTWVz c2FnZSIgJSZndDs8YnI+CiZsdDslQCBwYWdlIGltcG9ydD0iamF2YXgubmFtaW5nLkNvbnRleHQi ICUmZ3Q7PGJyPgombHQ7JUAgcGFnZSBpbXBvcnQ9ImphdmF4Lm5hbWluZy5Jbml0aWFsQ29udGV4 dCIgJSZndDs8YnI+Cjxicj4KJmx0O2h0bWwmZ3Q7PGJyPgombHQ7aGVhZCZndDs8YnI+CiZsdDsl PGJyPgombmJzcDsmbmJzcDsmbmJzcDsgU3RyaW5nIHRpdGxlPSJTdWJzY3JpYmluZyB0byA8YSBj bGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86YmlvOTNAYmlvd2Vp cmNvbS5vcmciPmJpbzkzQGJpb3dlaXJjb20ub3JnPC9hPiI7PGJyPgolJmd0Ozxicj4KJmx0O3Rp dGxlJmd0OyAmbHQ7JT0gdGl0bGUgJSZndDsgJmx0Oy90aXRsZSZndDs8YnI+CiZsdDsvaGVhZCZn dDs8YnI+CiZsdDtib2R5IGJnY29sb3I9IndoaXRlIiZndDs8YnI+CiZsdDtjZW50ZXImZ3Q7PGJy PgombHQ7aHIgY29sb3I9Ymx1ZSZndDs8YnI+CiZsdDticiZndDs8YnI+Cjxicj4KJmx0OyU8YnI+ CiZuYnNwOyZuYnNwOyZuYnNwOyBTdHJpbmcgZW1haWw9cmVxdWVzdC5nZXRQYXJhbWV0ZXIoImVt YWlsIik7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsgU3RyaW5nIGFjdGlvbj1yZXF1ZXN0LmdldFBh cmFtZXRlcigiYWN0aW9uIik7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsgaWYoZW1haWw9PW51bGx8 fGVtYWlsLmNvbXBhcmVUbygiIik9PTB8fGVtYWlsLmluZGV4T2YoJ0AnKSAmbHQ7PSAwKXs8YnI+ CiUmZ3Q7PGJyPgombHQ7Zm9udCBzaXplPSsxIGNvbG9yPXJlZCZndDtJbnZhbGlkIGVtYWlsIGFk ZHJlc3MuIENsaWNrIHRoZSAiQmFjayIgYnV0dG9uCmFib3ZlIHRvIHN1YnNjcmliZSBhZ2Fpbi4m bHQ7L2ZvbnQmZ3Q7PGJyPgombHQ7YnImZ3Q7Jmx0O2hyIGNvbG9yPWJsdWUmZ3Q7PGJyPgombHQ7 L2NlbnRlciZndDs8YnI+CiZsdDsvYm9keSZndDs8YnI+CiZsdDsvaHRtbCZndDs8YnI+CiZsdDsl PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgcmV0dXJuOzxi cj4KJm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+CiUmZ3Q7PGJyPgombHQ7JTxicj4KJm5ic3A7Jm5i c3A7Jm5ic3A7IHRyeSB7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsgLy8gQWNxdWlyZSBvdXIgSmF2YU1haWwgc2Vzc2lvbiBvYmplY3Q8YnI+CiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBDb250ZXh0IGluaXRDdHggPSBuZXcg SW5pdGlhbENvbnRleHQoKTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyBDb250ZXh0IGVudkN0eCA9IChDb250ZXh0KSBpbml0Q3R4Lmxvb2t1cCgiamF2YTpj b21wL2VudiIpOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 IFNlc3Npb24gbWFpbHNlc3Npb24gPSAoU2Vzc2lvbikgZW52Q3R4Lmxvb2t1cCgibWFpbC9TZXNz aW9uIik7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgLy8g UHJlcGFyZSBvdXIgbWFpbCBtZXNzYWdlPGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsgTWVzc2FnZSBtZXNzYWdlID0gbmV3IE1pbWVNZXNzYWdlKG1haWxzZXNz aW9uKTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtZXNz YWdlLnNldEZyb20obmV3IEludGVybmV0QWRkcmVzcyhlbWFpbCkpOzxicj4KJm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IEludGVybmV0QWRkcmVzcyBkZXN0c1tdID0g bmV3IEludGVybmV0QWRkcmVzc1tdeyBuZXcgSW50ZXJuZXRBZGRyZXNzKDxhIGNsYXNzPSJtb3ot dHh0LWxpbmstcmZjMjM5NkUiIGhyZWY9Im1haWx0bzpiaW85My1yZXF1ZXN0QGJpb3dlaXJjb20u b3JnIj4iYmlvOTMtcmVxdWVzdEBiaW93ZWlyY29tLm9yZyI8L2E+KQp9Ozxicj4KJm5ic3A7Jm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG1lc3NhZ2Uuc2V0UmVjaXBpZW50cyhN ZXNzYWdlLlJlY2lwaWVudFR5cGUuVE8sIGRlc3RzKTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtZXNzYWdlLnNldFN1YmplY3QoYWN0aW9uKTs8YnI+CiZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBtZXNzYWdlLnNldENvbnRl bnQoIiIsICJ0ZXh0L3BsYWluIik7PGJyPgombmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsgaWYoYWN0aW9uLmNvbXBhcmVUbygic3Vic2NyaWJlIik9PTApezxicj4KJm5i c3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG91dC5wcmludGxuKCJZb3UgaGF2ZSBzdWNj ZXNzZnVsbHkgIithY3Rpb24rImQgdG8mbHQ7Zm9udApjb2xvcj1yZWQmZ3Q7Jmx0O3N0cm9uZyZn dDsgPGEgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZpYXRlZCIgaHJlZj0ibWFpbHRvOmJpbzkz QGJpd2VpcmNvbS5vcmciPmJpbzkzQGJpd2VpcmNvbS5vcmc8L2E+Jmx0Oy9zdHJvbmcmZ3Q7Jmx0 Oy9mb250Jmd0Oy4KQSBjb25maXJtYXRpb24gZW1haWwgd2lsbCBiZSBzZW50IHRvIHlvdSBzaG9y dGx5LiZsdDticiZndDsiKTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyB9ZWxzZXs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvdXQu cHJpbnRsbigiWW91IGhhdmUgc3VjY2Vzc2Z1bGx5ICIrYWN0aW9uKyJkIGZyb20mbHQ7Zm9udApj b2xvcj1yZWQmZ3Q7Jmx0O3N0cm9uZyZndDsgPGEgY2xhc3M9Im1vei10eHQtbGluay1hYmJyZXZp YXRlZCIgaHJlZj0ibWFpbHRvOmJpbzkzQGJpd2VpcmNvbS5vcmciPmJpbzkzQGJpd2VpcmNvbS5v cmc8L2E+Jmx0Oy9zdHJvbmcmZ3Q7Jmx0Oy9mb250Jmd0Oy4KQSBjb25maXJtYXRpb24gZW1haWwg d2lsbCBiZSBzZW50IHRvIHlvdSBzaG9ydGx5LiZsdDticiZndDsiKTs8YnI+CiZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB9PGJyPgo8YnI+CiZuYnNwOyZuYnNwOyZu YnNwOyB9IGNhdGNoIChUaHJvd2FibGUgdCkgezxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7Jm5ic3A7Jm5ic3A7IG91dC5wcmludGxuKCImbHQ7Zm9udCBjb2xvcj1cInJlZFwiJmd0 OyIpOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IG91dC5w cmludGxuKCJFTkNPVU5URVJFRCBFWENFUFRJT046Jm5ic3A7ICIgKyB0KTs8YnI+CiZuYnNwOyZu YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvdXQucHJpbnRsbigiJmx0O3ByZSZn dDsiKTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyB0LnBy aW50U3RhY2tUcmFjZSgpOzxicj4KJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7 Jm5ic3A7IG91dC5wcmludGxuKCImbHQ7L3ByZSZndDsiKTs8YnI+CiZuYnNwOyZuYnNwOyZuYnNw OyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyBvdXQucHJpbnRsbigiJmx0Oy9mb250Jmd0OyIpOzxi cj4KJm5ic3A7Jm5ic3A7Jm5ic3A7IH08YnI+CiUmZ3Q7PGJyPgombHQ7YnImZ3Q7Jmx0O2hyIGNv bG9yPWJsdWUmZ3Q7Jmx0O2JyJmd0Ozxicj4KJmx0Oy9jZW50ZXImZ3Q7PGJyPgombHQ7L2JvZHkm Z3Q7PGJyPgombHQ7L2h0bWwmZ3Q7PGJyPgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLTxicj4KPGJyPgpBYm92ZSBqc3AgaXMgcnVuIHdpdGhpbiBUb21j YXQtNC4wLCB3aGljaCBjYW4gYmUgZG93bmxvYWRlZCBmcm9tIDxhIGNsYXNzPSJtb3otdHh0LWxp bmstYWJicmV2aWF0ZWQiIGhyZWY9Imh0dHA6Ly93d3cuYXBhY2hlLm9yZyI+d3d3LmFwYWNoZS5v cmc8L2E+LgpUaGVyZSBpcyBhIHNlbmQtbWFpbCBzYW1wbGUgY29kZSBjb21pbmcgd2l0aCB0aGUg VG9tY2F0IGRvd25sb2FkLjxicj4KPGJyPgpHb29kIGx1Y2ssPGJyPgo8YnI+CkNodW4tTnVhbjxi cj4KPGJyPgo8YnI+Cjxicj4KUGV0ZXIgSGFydHpsZXIgd3JvdGU6PGJyPgo8YmxvY2txdW90ZSB0 eXBlPSJjaXRlIiBjaXRlPSJtaWQ6UGluZS5MTlguNC4zMy4wMTExMjYxNTA5MTYwLjE3NzAxLTEw MDAwMEBib2luay5oYXJ0emxlci5ob21lIj4KICA8cHJlIHdyYXA9IiI+S2V2aW4gLS08YnI+PGJy PlJlZ2FyZGluZyB0aGUgcXVlc3Rpb25zIHlvdSBzZW50IHRvIG1lIG9mZi1saXN0Li4uPGJyPjxi cj5UaGUgc3RhbmRhcmQgd2F5IHRvIHN1YnNjcmliZSB0byBhIFNMIGxpc3QgaXMgdG8gc2VuZCBh biBlbWFpbCBmcm9tIHRoZTxicj5lbWFpbCBhY2NvdW50IHlvdSB3aXNoIHN1YnNjcmliZWQsIHRv IHRoZSAtcmVxdWVzdCBhZGRyZXNzIG9mIHRoZSBsaXN0LDxicj53aXRoICJzdWJzY3JpYmUiIGlu IHRoZSBzdWJqZWN0Ljxicj48YnI+Rm9yIGluc3RhbmNlOiBpZiB5b3VyIGxpc3QgaXMgY2FsbGVk IGdvcnAsIHlvdSBtaWdodCB0ZWxsIHlvdXIgY2xpZW50ZWxlOjxicj48YnI+V2VsY29tZSB0byBH b3JwLCBibGFoIGJsYWggYmxhaC4uLjxicj48YnI+VG8gam9pbiBvdXIgZW1haWwgZGlzY3Vzc2lv biBsaXN0LCBzZW5kIGFuIGVtYWlsIHRvPGJyPjxhIGNsYXNzPSJtb3otdHh0LWxpbmstYWJicmV2 aWF0ZWQiIGhyZWY9Im1haWx0bzpnb3JwLXJlcXVlc3RAZXhhbXBsZS5jb20iPmdvcnAtcmVxdWVz dEBleGFtcGxlLmNvbTwvYT4gd2l0aCB0aGUgU1VCSkVDVCAobm90IGJvZHkpIG9mIHlvdXIgbWVz c2FnZTxicj5yZWFkaW5nICJzdWJzY3JpYmUiICh3aXRob3V0IHRoZSBxdW90ZXMuKTxicj48YnI+ SG1tLi4uIEknbSBzdXJlIHRoaXMgaXMgYWxsIGNvdmVyZWQgaW4gdGhlIGRvY3MuICBoYXZlIHlv dSBiZWVuIHRvPGJyPjxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHA6 Ly93d3cuaGFydHpsZXIubmV0L3NtYXJ0bGlzdC8iPmh0dHA6Ly93d3cuaGFydHpsZXIubmV0L3Nt YXJ0bGlzdC88L2E+ID88YnI+PGJyPi1waDxicj48YnI+PGJyPk9uIE1vbiwgMjYgTm92IDIwMDEs IFBldGVyIEhhcnR6bGVyIHdyb3RlOjxicj48YnI+PC9wcmU+CiAgPGJsb2NrcXVvdGUgdHlwZT0i Y2l0ZSI+CiAgICA8cHJlIHdyYXA9IiI+VGhlIHVzdWFsIGFwcHJvYWNoIGlzIHRvIHdyaXRlIGEg Y2dpIHRoYXQgdGFrZXMgYSBzdWJtaXR0ZWQgZW1haWwgYWRkcmVzczxicj5hbmQgY3JlYXRlcyBh IHN1YnNjcmliZSBtZXNzYWdlIHdoaWNoIGl0IHNlbmRzIHRvIHRoZSBsaXN0LXJlcXVlc3Q8YnI+ YWRkcmVzcy4gIFF1aXRlIHNpbXBsZSB0byBkbyBpZiB5b3UgaGF2ZSBhbnkgY2hvcHMgYXQgYWxs IGluIHdlYiBiYXNlZDxicj5hcHBzLiAgWW91J2xsIHdhbnQgdG8gZW5hYmxlIGNvbmZpcm1hdGlv biwgdG8gYXZvaWQgdGhlIGFkZGl0aW9uIG9mIGJvZ3VzPGJyPmVtYWlsIGFkZHJlc3Nlcy48YnI+ PGJyPk9uIHRoZSBvdGhlciBoYW5kLCBwdXJlIGVtYWlsIGJhc2VkIHN1YnNjcmlwdGlvbiBtZWNo YW5pc21zIHN1Y2ggYXMgdGhlPGJyPnN0YW5kYXJkIFNtYXJ0TGlzdCBhcHByb2FjaCBhcmVuJ3Qg dGhhdCBoYXJkIC0tIGJ1dCBJIHdvbid0IGFzayB3aHkgeW91PGJyPmRvbid0IHdhbnQgdG8gZ28g dGhhdCByb3V0ZS4gIChPZGRzIGFyZSBzb21lb25lIGVsc2Ugb24gdGhpcyBsaXN0IHdpbGwsPGJy Pmhvd2V2ZXIuICA7KTxicj48YnI+LXBoPGJyPjxicj5PbiBNb24sIDI2IE5vdiAyMDAxLCBQZXRl cnNvbiwgS2V2aW4gd3JvdGU6PGJyPjxicj48L3ByZT4KICAgIDxibG9ja3F1b3RlIHR5cGU9ImNp dGUiPgogICAgICA8cHJlIHdyYXA9IiI+SSBhbSBsb29raW5nIGZvciBhZHZpY2UsIGV4YW1wbGUs IGluc3RydWN0aW9uLCBhbnl0aGluZyB0aGF0IHdpbGwgaGVscCBtZTxicj5jcmVhdGUgYSB3ZWIt YmFzZWQgc3Vic2NyaXB0aW9uIGZvcm08YnI+Zm9yIGEgc21hcnRsaXN0IG1haWxpbmcgbGlzdC4g IEkgaGF2ZSBiZWVuIGxvb2tpbmcgZm9yIGhvdXJzLCBhbmQgdGhvdWdodDxicj50aGF0IHRoZSBt ZW1iZXJzIG9mIHRoaXMgZm9ydW0gbWF5IGJlIGFibGU8YnI+dG8gbGVuZCBhIGhhbmQuPGJyPjxi cj5JIGFtIHRyeWluZyB0byBmcmVlIG15c2VsZiBvZiBmcmVlIGUtbWFpbCBob3N0cyAoVG9waWNh KSwgYW5kIHVzZSB0aGU8YnI+c21hcnRsaXN0IGluc3RhbGxlZCBvbiBteSB3ZWIgc2l0ZS48YnI+ PGJyPkFueSBoZWxwIG9yIGFkdmljZSBpcyBhcHByZWNpYXRlZC48YnI+PGJyPktldmluIFMuIFBl dGVyc29uPGJyPjxicj48YnI+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX188YnI+U21hcnRsaXN0IG1haWxpbmcgbGlzdDxicj48YSBjbGFzcz0ibW96LXR4dC1s aW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86U21hcnRsaXN0QGxpc3RzLlJXVEgtQWFjaGVu LkRFIj5TbWFydGxpc3RAbGlzdHMuUldUSC1BYWNoZW4uREU8L2E+PGJyPjxhIGNsYXNzPSJtb3ot dHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHA6Ly9NYWlsTWFuLlJXVEgtQWFjaGVuLkRFL21h aWxtYW4vbGlzdGluZm8vc21hcnRsaXN0Ij5odHRwOi8vTWFpbE1hbi5SV1RILUFhY2hlbi5ERS9t YWlsbWFuL2xpc3RpbmZvL3NtYXJ0bGlzdDwvYT48YnI+PGJyPjwvcHJlPgogICAgICA8L2Jsb2Nr cXVvdGU+CiAgICAgIDxwcmUgd3JhcD0iIj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXzxicj5TbWFydGxpc3QgbWFpbGluZyBsaXN0PGJyPjxhIGNsYXNzPSJt b3otdHh0LWxpbmstYWJicmV2aWF0ZWQiIGhyZWY9Im1haWx0bzpTbWFydGxpc3RAbGlzdHMuUldU SC1BYWNoZW4uREUiPlNtYXJ0bGlzdEBsaXN0cy5SV1RILUFhY2hlbi5ERTwvYT48YnI+PGEgY2xh c3M9Im1vei10eHQtbGluay1mcmVldGV4dCIgaHJlZj0iaHR0cDovL01haWxNYW4uUldUSC1BYWNo ZW4uREUvbWFpbG1hbi9saXN0aW5mby9zbWFydGxpc3QiPmh0dHA6Ly9NYWlsTWFuLlJXVEgtQWFj aGVuLkRFL21haWxtYW4vbGlzdGluZm8vc21hcnRsaXN0PC9hPjxicj48YnI+PC9wcmU+CiAgICAg IDwvYmxvY2txdW90ZT4KICAgICAgPHByZSB3cmFwPSIiPjwhLS0tLT48YnI+X19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX188YnI+U21hcnRsaXN0IG1haWxpbmcg bGlzdDxicj48YSBjbGFzcz0ibW96LXR4dC1saW5rLWFiYnJldmlhdGVkIiBocmVmPSJtYWlsdG86 U21hcnRsaXN0QGxpc3RzLlJXVEgtQWFjaGVuLkRFIj5TbWFydGxpc3RAbGlzdHMuUldUSC1BYWNo ZW4uREU8L2E+PGJyPjxhIGNsYXNzPSJtb3otdHh0LWxpbmstZnJlZXRleHQiIGhyZWY9Imh0dHA6 Ly9NYWlsTWFuLlJXVEgtQWFjaGVuLkRFL21haWxtYW4vbGlzdGluZm8vc21hcnRsaXN0Ij5odHRw Oi8vTWFpbE1hbi5SV1RILUFhY2hlbi5ERS9tYWlsbWFuL2xpc3RpbmZvL3NtYXJ0bGlzdDwvYT48 YnI+PC9wcmU+CiAgICAgIDwvYmxvY2txdW90ZT4KICAgICAgPGJyPgogICAgICA8L2JvZHk+CiAg ICAgIDwvaHRtbD4K --===============8468561593773424106==--