From pieter.kuijpers at luminis.nl Tue Aug 7 10:59:26 2007 Content-Type: multipart/mixed; boundary="===============5788247538047264313==" MIME-Version: 1.0 From: Pieter Kuijpers To: jsfunit-dev at lists.jboss.org Subject: [jsfunit-dev] ClientFacade.clickLink not working for h:commandLink Date: Tue, 07 Aug 2007 16:59:27 +0200 Message-ID: <3AA4358A-E3C1-4F2D-BC59-6CB6CE19F8F2@luminis.nl> --===============5788247538047264313== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable I'm trying to test a commandLink in a page with = ClientFacade.clickLink, but this does not seem to be working. link.jsp: <%@ taglib uri=3D"http://java.sun.com/jsf/core" prefix=3D"f"%> <%@ taglib uri=3D"http://java.sun.com/jsf/html" prefix=3D"h"%> Link test target.jsp: Link test successful Success. Test code: public class LinkTest extends TestCase { public void testClickLink() throws Exception { ClientFacade client =3D new ClientFacade("/link.faces"); client.clickLink("link"); assertEquals("Link test successful", client.getWebResponse = ().getTitle()); } } The HTML that is returned using client.getWebResponse().getText is = that of link.jsp. When I try the same test by hand, it is working OK. How is this supposed to work? Thanks, Pieter Kuijpers. --===============5788247538047264313== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PEhUTUw+PEJPRFkgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLWtodG1sLW5ic3AtbW9k ZTogc3BhY2U7IC1raHRtbC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsgIj5JJ20gdHJ5 aW5nIHRvIHRlc3QgYSBjb21tYW5kTGluayBpbiBhIHBhZ2Ugd2l0aCBDbGllbnRGYWNhZGUuY2xp Y2tMaW5rLCBidXQgdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIHdvcmtpbmcuPERJVj48QlIgY2xh c3M9ImtodG1sLWJsb2NrLXBsYWNlaG9sZGVyIj48L0RJVj48RElWPmxpbmsuanNwOjwvRElWPjxE SVY+PEJSIGNsYXNzPSJraHRtbC1ibG9jay1wbGFjZWhvbGRlciI+PC9ESVY+PERJViBzdHlsZT0i bWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBt YXJnaW4tbGVmdDogMHB4OyAiPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0i IzAwODA4MCIgZmFjZT0iTW9uYWNvIj4mbHQ7PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHls ZS1zcGFuIiBjb2xvcj0iIzNGN0Y3RiIgZmFjZT0iTW9uYWNvIj5odG1sIDwvRk9OVD48Rk9OVCBj bGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiM3RjAwN0YiIGZhY2U9Ik1vbmFjbyI+eG1s bnM8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9Ik1vbmFjbyI+PTwv Rk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMyQTAwRkYiIGZhY2U9 Ik1vbmFjbyI+IjxBIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPmh0dHA6Ly93 d3cudzMub3JnLzE5OTkveGh0bWw8L0E+IjwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUt c3BhbiIgY29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmd0OzwvRk9OVD48L0RJVj48RElW IHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9t OiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4i IGNvbG9yPSIjQkY1RjNGIiBmYWNlPSJNb25hY28iPiZsdDslQCA8L0ZPTlQ+PEZPTlQgY2xhc3M9 IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjM0Y3RjdGIiBmYWNlPSJNb25hY28iPnRhZ2xpYiA8 L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjN0YwMDdGIiBmYWNl PSJNb25hY28iPnVyaTwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0i TW9uYWNvIj49PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzJB MDBGRiIgZmFjZT0iTW9uYWNvIj4iPEEgaHJlZj0iaHR0cDovL2phdmEuc3VuLmNvbS9qc2YvY29y ZSI+aHR0cDovL2phdmEuc3VuLmNvbS9qc2YvY29yZTwvQT4iIDwvRk9OVD48Rk9OVCBjbGFzcz0i QXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiM3RjAwN0YiIGZhY2U9Ik1vbmFjbyI+cHJlZml4PC9G T05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25hY28iPj08L0ZPTlQ+ PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMkEwMEZGIiBmYWNlPSJNb25h Y28iPiJmIjwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiNCRjVG M0YiIGZhY2U9Ik1vbmFjbyI+JSZndDs8L0ZPTlQ+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRv cDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVm dDogMHB4OyAiPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iI0JGNUYzRiIg ZmFjZT0iTW9uYWNvIj4mbHQ7JUAgPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFu IiBjb2xvcj0iIzNGN0Y3RiIgZmFjZT0iTW9uYWNvIj50YWdsaWIgPC9GT05UPjxGT05UIGNsYXNz PSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzdGMDA3RiIgZmFjZT0iTW9uYWNvIj51cmk8L0ZP TlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9Ik1vbmFjbyI+PTwvRk9OVD48 Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMyQTAwRkYiIGZhY2U9Ik1vbmFj byI+IjxBIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vanNmL2h0bWwiPmh0dHA6Ly9qYXZhLnN1 bi5jb20vanNmL2h0bWw8L0E+IiA8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4i IGNvbG9yPSIjN0YwMDdGIiBmYWNlPSJNb25hY28iPnByZWZpeDwvRk9OVD48Rk9OVCBjbGFzcz0i QXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj49PC9GT05UPjxGT05UIGNsYXNzPSJBcHBs ZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzJBMDBGRiIgZmFjZT0iTW9uYWNvIj4iaCI8L0ZPTlQ+PEZP TlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjQkY1RjNGIiBmYWNlPSJNb25hY28i PiUmZ3Q7PC9GT05UPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJp Z2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48Rk9OVCBj bGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmx0 OzwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMzRjdGN0YiIGZh Y2U9Ik1vbmFjbyI+Zjp2aWV3PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBj b2xvcj0iIzAwODA4MCIgZmFjZT0iTW9uYWNvIj4mZ3Q7PC9GT05UPjwvRElWPjxESVYgc3R5bGU9 Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsg bWFyZ2luLWxlZnQ6IDBweDsgIj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3 aGl0ZS1zcGFjZTpwcmUiPgk8L1NQQU4+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNv bG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPiZsdDs8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxl LXN0eWxlLXNwYW4iIGNvbG9yPSIjM0Y3RjdGIiBmYWNlPSJNb25hY28iPmhlYWQ8L0ZPTlQ+PEZP TlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28i PiZndDs8L0ZPTlQ+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmln aHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxTUEFOIGNs YXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvU1BBTj48U1BB TiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L1NQQU4+ PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25h Y28iPiZsdDs8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjM0Y3 RjdGIiBmYWNlPSJNb25hY28iPm1ldGEgPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBjb2xvcj0iIzdGMDA3RiIgZmFjZT0iTW9uYWNvIj5odHRwLWVxdWl2PC9GT05UPjxGT05U IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25hY28iPj08L0ZPTlQ+PEZPTlQgY2xh c3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMkEwMEZGIiBmYWNlPSJNb25hY28iPiJDb250 ZW50LVR5cGUiIDwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiM3 RjAwN0YiIGZhY2U9Ik1vbmFjbyI+Y29udGVudDwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5 bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj49PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBjb2xvcj0iIzJBMDBGRiIgZmFjZT0iTW9uYWNvIj4idGV4dC9odG1sOyBjaGFyc2V0PVVU Ri04IiA8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgw IiBmYWNlPSJNb25hY28iPi8mZ3Q7PC9GT05UPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6 IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6 IDBweDsgIj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgk8L1NQQU4+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9TUEFOPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAw ODA4MCIgZmFjZT0iTW9uYWNvIj4mbHQ7PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBjb2xvcj0iIzNGN0Y3RiIgZmFjZT0iTW9uYWNvIj50aXRsZTwvRk9OVD48Rk9OVCBjbGFz cz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmd0Ozwv Rk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj5MaW5rIHRl c3Q8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBm YWNlPSJNb25hY28iPiZsdDsvPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBj b2xvcj0iIzNGN0Y3RiIgZmFjZT0iTW9uYWNvIj50aXRsZTwvRk9OVD48Rk9OVCBjbGFzcz0iQXBw bGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmd0OzwvRk9OVD48 L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJn aW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLXRh Yi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JPC9TUEFOPjxGT05UIGNsYXNzPSJBcHBs ZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAwODA4MCIgZmFjZT0iTW9uYWNvIj4mbHQ7LzwvRk9OVD48 Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMzRjdGN0YiIGZhY2U9Ik1vbmFj byI+aGVhZDwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgw ODAiIGZhY2U9Ik1vbmFjbyI+Jmd0OzwvRk9OVD48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9w OiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0 OiAwcHg7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6 cHJlIj4JPC9TUEFOPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAwODA4 MCIgZmFjZT0iTW9uYWNvIj4mbHQ7PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFu IiBjb2xvcj0iIzNGN0Y3RiIgZmFjZT0iTW9uYWNvIj5ib2R5PC9GT05UPjxGT05UIGNsYXNzPSJB cHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAwODA4MCIgZmFjZT0iTW9uYWNvIj4mZ3Q7PC9GT05U PjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1h cmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48U1BBTiBjbGFzcz0iQXBwbGUt dGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L1NQQU4+PEZPTlQgY2xhc3M9IkFw cGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPiZsdDs8L0ZPTlQ+ PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjM0Y3RjdGIiBmYWNlPSJNb25h Y28iPmg6Zm9ybTwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMw MDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmd0OzwvRk9OVD48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4t dG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1s ZWZ0OiAwcHg7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3Bh Y2U6cHJlIj4JPC9TUEFOPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CTwvU1BBTj48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9 IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmx0OzwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5 bGUtc3BhbiIgY29sb3I9IiMzRjdGN0YiIGZhY2U9Ik1vbmFjbyI+aDpjb21tYW5kTGluayA8L0ZP TlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjN0YwMDdGIiBmYWNlPSJN b25hY28iPmlkPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25h Y28iPj08L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMkEwMEZG IiBmYWNlPSJNb25hY28iPiJsaW5rIiA8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNw YW4iIGNvbG9yPSIjN0YwMDdGIiBmYWNlPSJNb25hY28iPnZhbHVlPC9GT05UPjxGT05UIGNsYXNz PSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25hY28iPj08L0ZPTlQ+PEZPTlQgY2xhc3M9IkFw cGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMkEwMEZGIiBmYWNlPSJNb25hY28iPiJjbGljayBtZSIg PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzdGMDA3RiIgZmFj ZT0iTW9uYWNvIj5hY3Rpb248L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZh Y2U9Ik1vbmFjbyI+PTwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9 IiMyQTAwRkYiIGZhY2U9Ik1vbmFjbyI+InRhcmdldCI8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxl LXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPi8mZ3Q7PC9GT05UPjwv RElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdp bi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48U1BBTiBjbGFzcz0iQXBwbGUtdGFi LXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L1NQQU4+PEZPTlQgY2xhc3M9IkFwcGxl LXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPiZsdDsvPC9GT05UPjxG T05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzNGN0Y3RiIgZmFjZT0iTW9uYWNv Ij5oOmZvcm08L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4 MDgwIiBmYWNlPSJNb25hY28iPiZndDs8L0ZPTlQ+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRv cDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVm dDogMHB4OyAiPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvU1BBTj48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgw ODAiIGZhY2U9Ik1vbmFjbyI+Jmx0Oy88L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNw YW4iIGNvbG9yPSIjM0Y3RjdGIiBmYWNlPSJNb25hY28iPmJvZHk8L0ZPTlQ+PEZPTlQgY2xhc3M9 IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPiZndDs8L0ZP TlQ+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsg bWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxGT05UIGNsYXNzPSJBcHBs ZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAwODA4MCIgZmFjZT0iTW9uYWNvIj4mbHQ7LzwvRk9OVD48 Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMzRjdGN0YiIGZhY2U9Ik1vbmFj byI+Zjp2aWV3PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAw ODA4MCIgZmFjZT0iTW9uYWNvIj4mZ3Q7PC9GT05UPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10 b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxl ZnQ6IDBweDsgIj48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAi IGZhY2U9Ik1vbmFjbyI+Jmx0Oy88L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4i IGNvbG9yPSIjM0Y3RjdGIiBmYWNlPSJNb25hY28iPmh0bWw8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFw cGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPiZndDs8L0ZPTlQ+ PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFy Z2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxGT05UIGNsYXNzPSJBcHBsZS1z dHlsZS1zcGFuIiBjb2xvcj0iIzAwODA4MCIgZmFjZT0iTW9uYWNvIj48QlIgY2xhc3M9ImtodG1s LWJsb2NrLXBsYWNlaG9sZGVyIj48L0ZPTlQ+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDog MHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDog MHB4OyAiPnRhcmdldC5qc3A6PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIj MDA4MDgwIiBmYWNlPSJNb25hY28iPjwvRk9OVD48L0RJVj48RElWPjxESVY+PFNQQU4gY2xhc3M9 IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlOyBib3Jk ZXItc3BhY2luZzogMHB4IDBweDsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IEhl bHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQtdmFyaWFu dDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9ybWFsOyBs aW5lLWhlaWdodDogbm9ybWFsOyB0ZXh0LWFsaWduOiBhdXRvOyAta2h0bWwtdGV4dC1kZWNvcmF0 aW9ucy1pbi1lZmZlY3Q6IG5vbmU7IHRleHQtaW5kZW50OiAwcHg7IC1hcHBsZS10ZXh0LXNpemUt YWRqdXN0OiBhdXRvOyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgb3JwaGFuczogMjsgd2hpdGUtc3Bh Y2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgIj48RElWIGlkPSJzaWci IHN0eWxlPSJmb250LWZhbWlseTogQXJpYWw7Y29sb3I6ICMwMDMzNjY7Ij48Rk9OVCBjbGFzcz0i QXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDAwMDAiIGZhY2U9IkhlbHZldGljYSI+PFNQQU4g Y2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJib3JkZXItY29sbGFwc2U6IHNlcGFyYXRl OyBib3JkZXItc3BhY2luZzogMHB4IDBweDsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1p bHk6IEhlbHZldGljYTsgZm9udC1zaXplOiAxMnB4OyBmb250LXN0eWxlOiBub3JtYWw7IGZvbnQt dmFyaWFudDogbm9ybWFsOyBmb250LXdlaWdodDogbm9ybWFsOyBsZXR0ZXItc3BhY2luZzogbm9y bWFsOyBsaW5lLWhlaWdodDogbm9ybWFsOyB0ZXh0LWFsaWduOiBhdXRvOyAta2h0bWwtdGV4dC1k ZWNvcmF0aW9ucy1pbi1lZmZlY3Q6IG5vbmU7IHRleHQtaW5kZW50OiAwcHg7IC1hcHBsZS10ZXh0 LXNpemUtYWRqdXN0OiBhdXRvOyB0ZXh0LXRyYW5zZm9ybTogbm9uZTsgb3JwaGFuczogMjsgd2hp dGUtc3BhY2U6IG5vcm1hbDsgd2lkb3dzOiAyOyB3b3JkLXNwYWNpbmc6IDBweDsgIj48QlIgY2xh c3M9IkFwcGxlLWludGVyY2hhbmdlLW5ld2xpbmUiPjwvU1BBTj4gPC9GT05UPjwvRElWPjxESVYg c3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206 IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIg Y29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmx0OzwvRk9OVD48Rk9OVCBjbGFzcz0iQXBw bGUtc3R5bGUtc3BhbiIgY29sb3I9IiMzRjdGN0YiIGZhY2U9Ik1vbmFjbyI+aHRtbCA8L0ZPTlQ+ PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjN0YwMDdGIiBmYWNlPSJNb25h Y28iPnhtbG5zPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25h Y28iPj08L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMkEwMEZG IiBmYWNlPSJNb25hY28iPiI8QSBocmVmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj5o dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sPC9BPiI8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxl LXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPiZndDs8L0ZPTlQ+PC9E SVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2lu LWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxTUEFOIGNsYXNzPSJBcHBsZS10YWIt c3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvU1BBTj48Rk9OVCBjbGFzcz0iQXBwbGUt c3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmx0OzwvRk9OVD48Rk9O VCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMzRjdGN0YiIGZhY2U9Ik1vbmFjbyI+ aGVhZDwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAi IGZhY2U9Ik1vbmFjbyI+Jmd0OzwvRk9OVD48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAw cHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAw cHg7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9TUEFOPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CTwvU1BBTj48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgw ODAiIGZhY2U9Ik1vbmFjbyI+Jmx0OzwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3Bh biIgY29sb3I9IiMzRjdGN0YiIGZhY2U9Ik1vbmFjbyI+bWV0YSA8L0ZPTlQ+PEZPTlQgY2xhc3M9 IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjN0YwMDdGIiBmYWNlPSJNb25hY28iPmh0dHAtZXF1 aXY8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9Ik1vbmFjbyI+PTwv Rk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMyQTAwRkYiIGZhY2U9 Ik1vbmFjbyI+IkNvbnRlbnQtVHlwZSIgPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBjb2xvcj0iIzdGMDA3RiIgZmFjZT0iTW9uYWNvIj5jb250ZW50PC9GT05UPjxGT05UIGNs YXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25hY28iPj08L0ZPTlQ+PEZPTlQgY2xhc3M9 IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMkEwMEZGIiBmYWNlPSJNb25hY28iPiJ0ZXh0L2h0 bWw7IGNoYXJzZXQ9VVRGLTgiIDwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIg Y29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+LyZndDs8L0ZPTlQ+PC9ESVY+PERJViBzdHls ZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4 OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9 IndoaXRlLXNwYWNlOnByZSI+CTwvU1BBTj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L1NQQU4+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNw YW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPiZsdDs8L0ZPTlQ+PEZPTlQgY2xhc3M9 IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjM0Y3RjdGIiBmYWNlPSJNb25hY28iPnRpdGxlPC9G T05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAwODA4MCIgZmFjZT0i TW9uYWNvIj4mZ3Q7PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJN b25hY28iPkxpbmsgdGVzdCBzdWNjZXNzZnVsPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHls ZS1zcGFuIiBjb2xvcj0iIzAwODA4MCIgZmFjZT0iTW9uYWNvIj4mbHQ7LzwvRk9OVD48Rk9OVCBj bGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMzRjdGN0YiIGZhY2U9Ik1vbmFjbyI+dGl0 bGU8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBm YWNlPSJNb25hY28iPiZndDs8L0ZPTlQ+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4 OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4 OyAiPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+ CTwvU1BBTj48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAiIGZh Y2U9Ik1vbmFjbyI+Jmx0Oy88L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNv bG9yPSIjM0Y3RjdGIiBmYWNlPSJNb25hY28iPmhlYWQ8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxl LXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28iPiZndDs8L0ZPTlQ+PC9E SVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2lu LWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxTUEFOIGNsYXNzPSJBcHBsZS10YWIt c3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvU1BBTj48Rk9OVCBjbGFzcz0iQXBwbGUt c3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmx0OzwvRk9OVD48Rk9O VCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMzRjdGN0YiIGZhY2U9Ik1vbmFjbyI+ Ym9keTwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMwMDgwODAi IGZhY2U9Ik1vbmFjbyI+Jmd0OzwvRk9OVD48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAw cHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAw cHg7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJl Ij4JPC9TUEFOPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25hY28iPlN1 Y2Nlc3MuPC9GT05UPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJp Z2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48U1BBTiBj bGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L1NQQU4+PEZP TlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28i PiZsdDsvPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzNGN0Y3 RiIgZmFjZT0iTW9uYWNvIj5ib2R5PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFu IiBjb2xvcj0iIzAwODA4MCIgZmFjZT0iTW9uYWNvIj4mZ3Q7PC9GT05UPjwvRElWPjxESVYgc3R5 bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBw eDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29s b3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+Jmx0Oy88L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxl LXN0eWxlLXNwYW4iIGNvbG9yPSIjM0Y3RjdGIiBmYWNlPSJNb25hY28iPmh0bWw8L0ZPTlQ+PEZP TlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDA4MDgwIiBmYWNlPSJNb25hY28i PiZndDs8L0ZPTlQ+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmln aHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxGT05UIGNs YXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzAwODA4MCIgZmFjZT0iTW9uYWNvIj48QlIg Y2xhc3M9ImtodG1sLWJsb2NrLXBsYWNlaG9sZGVyIj48L0ZPTlQ+PC9ESVY+PERJViBzdHlsZT0i bWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBt YXJnaW4tbGVmdDogMHB4OyAiPlRlc3QgY29kZTo8Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3Bh biIgY29sb3I9IiMwMDgwODAiIGZhY2U9Ik1vbmFjbyI+PC9GT05UPjwvRElWPjxESVYgc3R5bGU9 Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsg bWFyZ2luLWxlZnQ6IDBweDsgIj48QlIgY2xhc3M9ImtodG1sLWJsb2NrLXBsYWNlaG9sZGVyIj48 L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJn aW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+PEZPTlQgY2xhc3M9IkFwcGxlLXN0 eWxlLXNwYW4iIGNvbG9yPSIjN0YwMDU1IiBmYWNlPSJNb25hY28iPnB1YmxpYzwvRk9OVD48Rk9O VCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj4gPC9GT05UPjxGT05UIGNs YXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzdGMDA1NSIgZmFjZT0iTW9uYWNvIj5jbGFz czwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj4gTGlu a1Rlc3QgPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzdGMDA1 NSIgZmFjZT0iTW9uYWNvIj5leHRlbmRzPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBmYWNlPSJNb25hY28iPiBUZXN0Q2FzZSB7PC9GT05UPjwvRElWPjxESVYgc3R5bGU9Im1h cmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFy Z2luLWxlZnQ6IDBweDsgIj48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9u YWNvIj6gIKAgPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzdG MDA1NSIgZmFjZT0iTW9uYWNvIj5wdWJsaWM8L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxl LXNwYW4iIGZhY2U9Ik1vbmFjbyI+IDwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3Bh biIgY29sb3I9IiM3RjAwNTUiIGZhY2U9Ik1vbmFjbyI+dm9pZDwvRk9OVD48Rk9OVCBjbGFzcz0i QXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj4gdGVzdENsaWNrTGluaygpIDwvRk9OVD48 Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiM3RjAwNTUiIGZhY2U9Ik1vbmFj byI+dGhyb3dzPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25h Y28iPiBFeGNlcHRpb24gezwvRk9OVD48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7 IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7 ICI+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9Ik1vbmFjbyI+oCCgIKAgoCA8 L0ZPTlQ+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGZhY2U9Ik1vbmFjbyI+Q2xpZW50 RmFjYWRlIGNsaWVudCA9IDwvRk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29s b3I9IiM3RjAwNTUiIGZhY2U9Ik1vbmFjbyI+bmV3PC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1z dHlsZS1zcGFuIiBmYWNlPSJNb25hY28iPiBDbGllbnRGYWNhZGUoPC9GT05UPjxGT05UIGNsYXNz PSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzJBMDBGRiIgZmFjZT0iTW9uYWNvIj4iL2xpbmsu ZmFjZXMiPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25hY28i Pik7PC9GT05UPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0 OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48Rk9OVCBjbGFz cz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj6gIKAgoCCgIDwvRk9OVD48Rk9OVCBj bGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj5jbGllbnQuY2xpY2tMaW5rKDwv Rk9OVD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgY29sb3I9IiMyQTAwRkYiIGZhY2U9 Ik1vbmFjbyI+ImxpbmsiPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNl PSJNb25hY28iPik7PC9GT05UPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFy Z2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48 Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj6gIKAgoCCgIDwvRk9O VD48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj5hc3NlcnRFcXVh bHMoPC9GT05UPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzJBMDBGRiIg ZmFjZT0iTW9uYWNvIj4iTGluayB0ZXN0IHN1Y2Nlc3NmdWwiPC9GT05UPjxGT05UIGNsYXNzPSJB cHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25hY28iPiwgY2xpZW50LmdldFdlYlJlc3BvbnNlKCku Z2V0VGl0bGUoKSk7PC9GT05UPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFy Z2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48 Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgZmFjZT0iTW9uYWNvIj6gIKAgPC9GT05UPjxG T05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBmYWNlPSJNb25hY28iPn08L0ZPTlQ+PC9ESVY+ PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJv dHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBmYWNlPSJNb25hY28iPn08L0ZPTlQ+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDog MHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDog MHB4OyAiPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBjb2xvcj0iIzdGMDA1NSIgZmFj ZT0iTW9uYWNvIj48QlIgY2xhc3M9ImtodG1sLWJsb2NrLXBsYWNlaG9sZGVyIj48L0ZPTlQ+PC9E SVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2lu LWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPlRoZSBIVE1MIHRoYXQgaXMgcmV0dXJu ZWQgdXNpbmcgY2xpZW50LmdldFdlYlJlc3BvbnNlKCkuZ2V0VGV4dCBpcyB0aGF0IG9mIGxpbmsu anNwLiBXaGVuIEkgdHJ5IHRoZSBzYW1lIHRlc3QgYnkgaGFuZCwgaXQgaXMgd29ya2luZyBPSy48 L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJn aW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+PEJSIGNsYXNzPSJraHRtbC1ibG9j ay1wbGFjZWhvbGRlciI+PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4t cmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPkhvdyBp cyB0aGlzIHN1cHBvc2VkIHRvIHdvcms/PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4 OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4 OyAiPjxCUiBjbGFzcz0ia2h0bWwtYmxvY2stcGxhY2Vob2xkZXIiPjwvRElWPjxESVYgc3R5bGU9 Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsg bWFyZ2luLWxlZnQ6IDBweDsgIj5UaGFua3MsPC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDog MHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDog MHB4OyAiPlBpZXRlciBLdWlqcGVycy48L0RJVj48RElWIGlkPSJzaWciIHN0eWxlPSJmb250LWZh bWlseTogQXJpYWw7Y29sb3I6ICMwMDMzNjY7Ij48Rk9OVCBjbGFzcz0iQXBwbGUtc3R5bGUtc3Bh biIgY29sb3I9IiMwMDAwMDAiIGZhY2U9IkhlbHZldGljYSI+PEJSIGNsYXNzPSJraHRtbC1ibG9j ay1wbGFjZWhvbGRlciI+PC9GT05UPjwvRElWPjxGT05UIGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFu IiBjb2xvcj0iIzAwMDAwMCIgZmFjZT0iSGVsdmV0aWNhIj48L0ZPTlQ+PC9TUEFOPjwvRElWPjxC Uj48L0RJVj48L0JPRFk+PC9IVE1MPg== --===============5788247538047264313==-- From ssilvert at redhat.com Tue Aug 7 11:36:24 2007 Content-Type: multipart/mixed; boundary="===============0627884484139719517==" MIME-Version: 1.0 From: Stan Silvert To: jsfunit-dev at lists.jboss.org Subject: Re: [jsfunit-dev] ClientFacade.clickLink not working for h:commandLink Date: Tue, 07 Aug 2007 11:36:09 -0400 Message-ID: <46B89169.9060804@redhat.com> In-Reply-To: 3AA4358A-E3C1-4F2D-BC59-6CB6CE19F8F2@luminis.nl --===============0627884484139719517== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Pieter, It looks like you've found a bug in JSFUnit. Our test suite doesn't = include an example of using plain . We only have it for = an AJAXified commandLink. The clickLink() method was really meant for static links of the type = that get created when you use . I'm not sure if I should = overload this method for use with or not. Any thoughts? Anyway, I'll be fixing this ASAP and let you know. Stan Pieter Kuijpers wrote: > I'm trying to test a commandLink in a page with ClientFacade.clickLink, = > but this does not seem to be working. > = > link.jsp: > = > > <%@ taglib uri=3D"http://java.sun.com/jsf/core" prefix=3D"f"%> > <%@ taglib uri=3D"http://java.sun.com/jsf/html" prefix=3D"h"%> > > > > Link test > > > > > > > > > = > target.jsp: > = > > > > Link test successful > > > Success. > > > = > Test code: > = > public class LinkTest extends TestCase { > public void testClickLink() throws Exception { > ClientFacade client =3D new ClientFacade("/link.faces"); > client.clickLink("link"); > assertEquals("Link test successful", = > client.getWebResponse().getTitle()); > } > } > = > The HTML that is returned using client.getWebResponse().getText is that = > of link.jsp. When I try the same test by hand, it is working OK. > = > How is this supposed to work? > = > Thanks, > Pieter Kuijpers. > = > = > = > ------------------------------------------------------------------------ > = > _______________________________________________ > jsfunit-dev mailing list > jsfunit-dev(a)lists.jboss.org > https://lists.jboss.org/mailman/listinfo/jsfunit-dev --===============0627884484139719517==-- From ssilvert at redhat.com Tue Aug 7 20:41:30 2007 Content-Type: multipart/mixed; boundary="===============6446440682260360379==" MIME-Version: 1.0 From: Stan Silvert To: jsfunit-dev at lists.jboss.org Subject: Re: [jsfunit-dev] ClientFacade.clickLink not working for h:commandLink Date: Tue, 07 Aug 2007 20:41:16 -0400 Message-ID: <46B9112C.8090800@redhat.com> In-Reply-To: 3AA4358A-E3C1-4F2D-BC59-6CB6CE19F8F2@luminis.nl --===============6446440682260360379== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Pieter, The fix is taking a little longer than I expected. If you comment out = two lines of code in WebConversationFactory then the client.clickLink() = on a commandLink will work (at least with MyFaces 1.1). The two lines are: HTMLParserFactory.useJTidyParser(); HttpUnitOptions.setScriptingEnabled(false); The problem is, that will break AJAX support. So I'm not sure what the = final solution will be. Stan Pieter Kuijpers wrote: > I'm trying to test a commandLink in a page with ClientFacade.clickLink, = > but this does not seem to be working. > = > link.jsp: > = > > <%@ taglib uri=3D"http://java.sun.com/jsf/core" prefix=3D"f"%> > <%@ taglib uri=3D"http://java.sun.com/jsf/html" prefix=3D"h"%> > > > > Link test > > > > > > > > > = > target.jsp: > = > > > > Link test successful > > > Success. > > > = > Test code: > = > public class LinkTest extends TestCase { > public void testClickLink() throws Exception { > ClientFacade client =3D new ClientFacade("/link.faces"); > client.clickLink("link"); > assertEquals("Link test successful", = > client.getWebResponse().getTitle()); > } > } > = > The HTML that is returned using client.getWebResponse().getText is that = > of link.jsp. When I try the same test by hand, it is working OK. > = > How is this supposed to work? > = > Thanks, > Pieter Kuijpers. > = > = > = > ------------------------------------------------------------------------ > = > _______________________________________________ > jsfunit-dev mailing list > jsfunit-dev(a)lists.jboss.org > https://lists.jboss.org/mailman/listinfo/jsfunit-dev --===============6446440682260360379==-- From pieter.kuijpers at luminis.nl Wed Aug 8 04:22:44 2007 Content-Type: multipart/mixed; boundary="===============3834085738716030530==" MIME-Version: 1.0 From: Pieter Kuijpers To: jsfunit-dev at lists.jboss.org Subject: Re: [jsfunit-dev] ClientFacade.clickLink not working for h:commandLink Date: Wed, 08 Aug 2007 10:22:47 +0200 Message-ID: In-Reply-To: 46B9112C.8090800@redhat.com --===============3834085738716030530== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Hi Stan, Thanks for the quick response. I've tried commenting out the two = lines you indicated, but still no luck. HttpUnit doesn't seem to be = able to cope with the JavaScript that is generated for the = commandLink. The error I get is: com.meterware.httpunit.ScriptException: Event 'if(typeof jsfcljs =3D=3D = 'function'){jsfcljs(document.forms['form'],'form:link,form:link','');} = return false' failed: TypeError: undefined is not a function. = (httpunit; ) at com.meterware.httpunit.javascript.JavaScript = $JavaScriptEngine.handleScriptException(JavaScript.java:202) at com.meterware.httpunit.javascript.JavaScript = $JavaScriptEngine.performEvent(JavaScript.java:175) at com.meterware.httpunit.scripting.ScriptableDelegate.doEvent = (ScriptableDelegate.java:56) at com.meterware.httpunit.WebRequestSource.submitRequest = (WebRequestSource.java:232) at com.meterware.httpunit.WebLink.click(WebLink.java:98) I'm using JBoss 4.2.0GA, that in turn uses the JSF reference = implementation, so that may explain why this fix is working for you = but not for me. The HTML/Javascript that is generated for link.jsp is: Link test
click me
My JavaScript knowledge is not very deep, so I'm having trouble = understanding the error message from HttpUnit. Regards, Pieter. Op 8-aug-2007, om 2:41 heeft Stan Silvert het volgende geschreven: > Hi Pieter, > > The fix is taking a little longer than I expected. If you comment = > out two lines of code in WebConversationFactory then the = > client.clickLink() on a commandLink will work (at least with = > MyFaces 1.1). The two lines are: > > HTMLParserFactory.useJTidyParser(); > HttpUnitOptions.setScriptingEnabled(false); > > The problem is, that will break AJAX support. So I'm not sure what = > the final solution will be. > > Stan > > Pieter Kuijpers wrote: >> I'm trying to test a commandLink in a page with = >> ClientFacade.clickLink, but this does not seem to be working. >> link.jsp: >> >> <%@ taglib uri=3D"http://java.sun.com/jsf/core" prefix=3D"f"%> >> <%@ taglib uri=3D"http://java.sun.com/jsf/html" prefix=3D"h"%> >> >> >> >> Link test >> >> >> >> >> >> >> >> >> target.jsp: >> >> >> >> Link test successful >> >> >> Success. >> >> >> Test code: >> public class LinkTest extends TestCase { >> public void testClickLink() throws Exception { >> ClientFacade client =3D new ClientFacade("/link.faces"); >> client.clickLink("link"); >> assertEquals("Link test successful", client.getWebResponse = >> ().getTitle()); >> } >> } >> The HTML that is returned using client.getWebResponse().getText is = >> that of link.jsp. When I try the same test by hand, it is working OK. >> How is this supposed to work? >> Thanks, >> Pieter Kuijpers. >> --------------------------------------------------------------------- = >> --- >> _______________________________________________ >> jsfunit-dev mailing list >> jsfunit-dev(a)lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/jsfunit-dev > -- =EF=BF=BCPieter Kuijpers Senior software engineer luminis=C2=AE ------------------------------------------------- 06 174 185 34 pieter.kuijpers(a)luminis.nl www.luminis.nl ------------------------------------------------- --===============3834085738716030530== Content-Type: text/html MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" PEhUTUw+PEJPRFkgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLWtodG1sLW5ic3AtbW9k ZTogc3BhY2U7IC1raHRtbC1saW5lLWJyZWFrOiBhZnRlci13aGl0ZS1zcGFjZTsgIj5IaSBTdGFu LDxESVY+PEJSIGNsYXNzPSJraHRtbC1ibG9jay1wbGFjZWhvbGRlciI+PC9ESVY+PERJVj5UaGFu a3MgZm9yIHRoZSBxdWljayByZXNwb25zZS4gSSd2ZSB0cmllZCBjb21tZW50aW5nIG91dCB0aGUg dHdvIGxpbmVzIHlvdSBpbmRpY2F0ZWQsIGJ1dCBzdGlsbCBubyBsdWNrLiBIdHRwVW5pdCBkb2Vz bid0IHNlZW0gdG8gYmUgYWJsZSB0byBjb3BlIHdpdGggdGhlIEphdmFTY3JpcHQgdGhhdCBpcyBn ZW5lcmF0ZWQgZm9yIHRoZSBjb21tYW5kTGluay4gVGhlIGVycm9yIEkgZ2V0IGlzOjwvRElWPjxE SVY+PEJSIGNsYXNzPSJraHRtbC1ibG9jay1wbGFjZWhvbGRlciI+PC9ESVY+PERJViBzdHlsZT0i bWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBt YXJnaW4tbGVmdDogMHB4OyAiPmNvbS5tZXRlcndhcmUuaHR0cHVuaXQuU2NyaXB0RXhjZXB0aW9u OiBFdmVudCAnaWYodHlwZW9mIGpzZmNsanMgPT0gJ2Z1bmN0aW9uJyl7anNmY2xqcyhkb2N1bWVu dC5mb3Jtc1snZm9ybSddLCdmb3JtOmxpbmssZm9ybTpsaW5rJywnJyk7fXJldHVybiBmYWxzZScg ZmFpbGVkOiBUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYSBmdW5jdGlvbi4gKGh0dHB1bml0 OyApPC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsg bWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPmF0IGNvbS5tZXRlcndhcmUu aHR0cHVuaXQuamF2YXNjcmlwdC5KYXZhU2NyaXB0JEphdmFTY3JpcHRFbmdpbmUuaGFuZGxlU2Ny aXB0RXhjZXB0aW9uKEphdmFTY3JpcHQuamF2YToyMDIpPC9ESVY+PERJViBzdHlsZT0ibWFyZ2lu LXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4t bGVmdDogMHB4OyAiPmF0IGNvbS5tZXRlcndhcmUuaHR0cHVuaXQuamF2YXNjcmlwdC5KYXZhU2Ny aXB0JEphdmFTY3JpcHRFbmdpbmUucGVyZm9ybUV2ZW50KEphdmFTY3JpcHQuamF2YToxNzUpPC9E SVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2lu LWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPmF0IGNvbS5tZXRlcndhcmUuaHR0cHVu aXQuc2NyaXB0aW5nLlNjcmlwdGFibGVEZWxlZ2F0ZS5kb0V2ZW50KFNjcmlwdGFibGVEZWxlZ2F0 ZS5qYXZhOjU2KTwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0 OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5hdCBjb20ubWV0 ZXJ3YXJlLmh0dHB1bml0LldlYlJlcXVlc3RTb3VyY2Uuc3VibWl0UmVxdWVzdChXZWJSZXF1ZXN0 U291cmNlLmphdmE6MjMyKTwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2lu LXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5hdCBj b20ubWV0ZXJ3YXJlLmh0dHB1bml0LldlYkxpbmsuY2xpY2soV2ViTGluay5qYXZhOjk4KTwvRElW PjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1i b3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48QlIgY2xhc3M9ImtodG1sLWJsb2NrLXBs YWNlaG9sZGVyIj48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdo dDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+SSdtIHVzaW5n IEpCb3NzIDQuMi4wR0EsIHRoYXQgaW4gdHVybiB1c2VzIHRoZSBKU0YgcmVmZXJlbmNlIGltcGxl bWVudGF0aW9uLCBzbyB0aGF0IG1heSBleHBsYWluIHdoeSB0aGlzIGZpeCBpcyB3b3JraW5nIGZv ciB5b3UgYnV0IG5vdCBmb3IgbWUuPC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBt YXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAi PjxCUiBjbGFzcz0ia2h0bWwtYmxvY2stcGxhY2Vob2xkZXIiPjwvRElWPjxESVYgc3R5bGU9Im1h cmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFy Z2luLWxlZnQ6IDBweDsgIj5UaGUgSFRNTC9KYXZhc2NyaXB0IHRoYXQgaXMgZ2VuZXJhdGVkIGZv ciBsaW5rLmpzcCBpczo8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1y aWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+PEJSIGNs YXNzPSJraHRtbC1ibG9jay1wbGFjZWhvbGRlciI+PC9ESVY+PERJVj4mbHQ7P3htbCB2ZXJzaW9u PSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/Jmd0OzwvRElWPjxESVY+Jmx0OyFET0NUWVBFIGh0bWwg UFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiI8L0RJVj48RElWPjxTUEFO IGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CTwvU1BBTj4g IjxBIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5k dGQiPmh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQ8L0E+ IiZndDs8L0RJVj48RElWPjxCUiBjbGFzcz0ia2h0bWwtYmxvY2stcGxhY2Vob2xkZXIiPjwvRElW PjxESVY+Jmx0O2h0bWwgeG1sbnM9IjxBIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0 bWwiPmh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWw8L0E+IiZndDs8L0RJVj48RElWPiZsdDto ZWFkJmd0OzwvRElWPjxESVY+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JPC9TUEFOPiZsdDttZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIg Y29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04IiAvJmd0OzwvRElWPjxESVY+PEJSIGNs YXNzPSJraHRtbC1ibG9jay1wbGFjZWhvbGRlciI+PC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBw bGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L1NQQU4+Jmx0O3RpdGxlJmd0 O0xpbmsgdGVzdCZsdDsvdGl0bGUmZ3Q7PC9ESVY+PERJVj4mbHQ7L2hlYWQmZ3Q7PC9ESVY+PERJ Vj48QlIgY2xhc3M9ImtodG1sLWJsb2NrLXBsYWNlaG9sZGVyIj48L0RJVj48RElWPiZsdDtib2R5 Jmd0OzwvRElWPjxESVY+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JPC9TUEFOPiZsdDtmb3JtIGlkPSJqX2lkX2pzcF85MTg4MjIyMjRfMSIgPC9E SVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgkJCTwvU1BBTj5uYW1lPSJqX2lkX2pzcF85MTg4MjIyMjRfMSIgPC9ESVY+PERJVj48U1BB TiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvU1BB Tj5tZXRob2Q9InBvc3QiIGFjdGlvbj0iL0pzZlRlc3QvbGluay5mYWNlcyIgZW5jdHlwZT0iYXBw bGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIiZndDs8L0RJVj48RElWPjxTUEFOIGNsYXNz PSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L1NQQU4+Jmx0O2lu cHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ial9pZF9qc3BfOTE4ODIyMjI0XzEiIHZhbHVlPSJqX2lk X2pzcF85MTg4MjIyMjRfMSIgLyZndDsgPC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFi LXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9TUEFOPiZsdDtzY3JpcHQgdHlwZT0i dGV4dC9qYXZhc2NyaXB0IiBsYW5ndWFnZT0iSmF2YXNjcmlwdCImZ3Q7PC9ESVY+PERJVj48U1BB TiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9TUEFO Pi8vJmx0OyFbQ0RBVEFbPC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9TUEFOPmZ1bmN0aW9uIGRwZihmKSB7PC9ESVY+PERJ Vj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJ CTwvU1BBTj52YXIgYWRwID0gZi5hZHA7PC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFi LXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvU1BBTj5pZiAoYWRwICE9IG51bGwp IHs8L0RJVj48RElWPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQkJCTwvU1BBTj5mb3IgKHZhciBpID0gMDtpICZsdDsgYWRwLmxlbmd0aDtpKysp IHs8L0RJVj48RElWPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNw YWNlOnByZSI+CQkJCQk8L1NQQU4+Zi5yZW1vdmVDaGlsZChhZHBbaV0pOzwvRElWPjxESVY+PFNQ QU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9T UEFOPn08L0RJVj48RElWPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRl LXNwYWNlOnByZSI+CQkJPC9TUEFOPn08L0RJVj48RElWPjxTUEFOIGNsYXNzPSJBcHBsZS10YWIt c3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L1NQQU4+fTs8L0RJVj48RElWPjxTUEFO IGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L1NQQU4+ ZnVuY3Rpb24gYXBmKGYsIHB2cCkgezwvRElWPjxESVY+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1z cGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L1NQQU4+dmFyIGFkcCA9IG5ldyBBcnJh eSgpOzwvRElWPjxESVY+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L1NQQU4+Zi5hZHAgPSBhZHA7PC9ESVY+PERJVj48U1BBTiBjbGFzcz0i QXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvU1BBTj52YXIgcHMg PSBwdnAuc3BsaXQoJywnKTs8L0RJVj48RElWPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIg c3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9TUEFOPmZvciAodmFyIGkgPSAwLGlpID0gMDtp ICZsdDsgcHMubGVuZ3RoO2krKyxpaSsrKSB7PC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUt dGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L1NQQU4+dmFyIHAgPSBkb2N1 bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOzwvRElWPjxESVY+PFNQQU4gY2xhc3M9IkFwcGxl LXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9TUEFOPnAudHlwZSA9ICJo aWRkZW4iOzwvRElWPjxESVY+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hp dGUtc3BhY2U6cHJlIj4JCQkJPC9TUEFOPnAubmFtZSA9IHBzW2ldOzwvRElWPjxESVY+PFNQQU4g Y2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQkJPC9TUEFO PnAudmFsdWUgPSBwc1tpICsgMV07PC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNw YW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCQk8L1NQQU4+Zi5hcHBlbmRDaGlsZChwKTs8 L0RJVj48RElWPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQkJCTwvU1BBTj5hZHBbaWldID0gcDtpICs9IDE7PC9ESVY+PERJVj48U1BBTiBjbGFz cz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJCTwvU1BBTj59PC9E SVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpw cmUiPgkJPC9TUEFOPn07PC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0 eWxlPSJ3aGl0ZS1zcGFjZTpwcmUiPgkJPC9TUEFOPmZ1bmN0aW9uIGpzZmNsanMoZiwgcHZwLCB0 KSB7PC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1z cGFjZTpwcmUiPgkJCTwvU1BBTj5hcGYoZiwgcHZwKTs8L0RJVj48RElWPjxTUEFOIGNsYXNzPSJB cHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9TUEFOPmlmICh0KSB7 PC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFj ZTpwcmUiPgkJCQk8L1NQQU4+Zi50YXJnZXQgPSB0OzwvRElWPjxESVY+PFNQQU4gY2xhc3M9IkFw cGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4JCQk8L1NQQU4+fTwvRElWPjxE SVY+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUtc3BhY2U6cHJlIj4J CQk8L1NQQU4+Zi5zdWJtaXQoKTs8L0RJVj48RElWPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3Bh biIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQkJPC9TUEFOPmRwZihmKTs8L0RJVj48RElWPjxT UEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNlOnByZSI+CQk8L1NQ QU4+fTs8L0RJVj48RElWPi8vXV0mZ3Q7PC9ESVY+PERJVj4mbHQ7L3NjcmlwdCZndDsgPC9ESVY+ PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxlPSJ3aGl0ZS1zcGFjZTpwcmUi PgkJPC9TUEFOPiZsdDthIGlkPSJqX2lkX2pzcF85MTg4MjIyMjRfMTpsaW5rIiBocmVmPSIjIiA8 L0RJVj48RElWPjxTUEFOIGNsYXNzPSJBcHBsZS10YWItc3BhbiIgc3R5bGU9IndoaXRlLXNwYWNl OnByZSI+CQkJPC9TUEFOPm9uY2xpY2s9ImlmKHR5cGVvZiBqc2ZjbGpzID09ICdmdW5jdGlvbicp e2pzZmNsanMoZG9jdW1lbnQuZm9ybXNbJ2pfaWRfanNwXzkxODgyMjIyNF8xJ10sJ2pfaWRfanNw XzkxODgyMjIyNF8xOmxpbmssal9pZF9qc3BfOTE4ODIyMjI0XzE6bGluaycsJycpO31yZXR1cm4g ZmFsc2UiIG5hbWU9ImpfaWRfanNwXzkxODgyMjIyNF8xOmxpbmsiJmd0O2NsaWNrIG1lJmx0Oy9h Jmd0OzwvRElWPjxESVY+PFNQQU4gY2xhc3M9IkFwcGxlLXRhYi1zcGFuIiBzdHlsZT0id2hpdGUt c3BhY2U6cHJlIj4JCQk8L1NQQU4+Jmx0O2lucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iamF2YXgu ZmFjZXMuVmlld1N0YXRlIiBpZD0iamF2YXguZmFjZXMuVmlld1N0YXRlIiB2YWx1ZT0ial9pZDE6 al9pZDIiIC8mZ3Q7PC9ESVY+PERJVj48U1BBTiBjbGFzcz0iQXBwbGUtdGFiLXNwYW4iIHN0eWxl PSJ3aGl0ZS1zcGFjZTpwcmUiPgk8L1NQQU4+Jmx0Oy9mb3JtJmd0OzwvRElWPjxESVY+Jmx0Oy9i b2R5Jmd0OzwvRElWPjxESVY+Jmx0Oy9odG1sJmd0OzwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10 b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxl ZnQ6IDBweDsgIj48QlIgY2xhc3M9ImtodG1sLWJsb2NrLXBsYWNlaG9sZGVyIj48L0RJVj48RElW IHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9t OiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+TXkgSmF2YVNjcmlwdCBrbm93bGVkZ2UgaXMgbm90 IHZlcnkgZGVlcCwgc28gSSdtIGhhdmluZyB0cm91YmxlIHVuZGVyc3RhbmRpbmcgdGhlIGVycm9y IG1lc3NhZ2UgZnJvbSBIdHRwVW5pdC48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7 IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7 ICI+PEJSIGNsYXNzPSJraHRtbC1ibG9jay1wbGFjZWhvbGRlciI+PC9ESVY+PERJViBzdHlsZT0i bWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBt YXJnaW4tbGVmdDogMHB4OyAiPlJlZ2FyZHMsPC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDog MHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDog MHB4OyAiPlBpZXRlci48L0RJVj48RElWPjxCUiBjbGFzcz0ia2h0bWwtYmxvY2stcGxhY2Vob2xk ZXIiPjwvRElWPjxESVY+PEJSPjxESVY+PERJVj5PcCA4LWF1Zy0yMDA3LCBvbSAyOjQxIGhlZWZ0 IFN0YW4gU2lsdmVydCBoZXQgdm9sZ2VuZGUgZ2VzY2hyZXZlbjo8L0RJVj48QlIgY2xhc3M9IkFw cGxlLWludGVyY2hhbmdlLW5ld2xpbmUiPjxCTE9DS1FVT1RFIHR5cGU9ImNpdGUiPjxESVYgc3R5 bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBw eDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5IaSBQaWV0ZXIsPC9ESVY+PERJViBzdHlsZT0ibWFyZ2lu LXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4t bGVmdDogMHB4OyBtaW4taGVpZ2h0OiAxNHB4OyAiPjxCUj48L0RJVj48RElWIHN0eWxlPSJtYXJn aW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdp bi1sZWZ0OiAwcHg7ICI+VGhlIGZpeCBpcyB0YWtpbmcgYSBsaXR0bGUgbG9uZ2VyIHRoYW4gSSBl eHBlY3RlZC48U1BBTiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj6gIDwvU1BBTj5JZiB5 b3UgY29tbWVudCBvdXQgdHdvIGxpbmVzIG9mIGNvZGUgaW4gV2ViQ29udmVyc2F0aW9uRmFjdG9y eSB0aGVuIHRoZSBjbGllbnQuY2xpY2tMaW5rKCkgb24gYSBjb21tYW5kTGluayB3aWxsIHdvcmsg KGF0IGxlYXN0IHdpdGggTXlGYWNlcyAxLjEpLjxTUEFOIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQt c3BhY2UiPqAgPC9TUEFOPlRoZSB0d28gbGluZXMgYXJlOjwvRElWPjxESVYgc3R5bGU9Im1hcmdp bi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2lu LWxlZnQ6IDBweDsgbWluLWhlaWdodDogMTRweDsgIj48QlI+PC9ESVY+PERJViBzdHlsZT0ibWFy Z2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJn aW4tbGVmdDogMHB4OyAiPkhUTUxQYXJzZXJGYWN0b3J5LnVzZUpUaWR5UGFyc2VyKCk7PC9ESVY+ PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJv dHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPkh0dHBVbml0T3B0aW9ucy5zZXRTY3JpcHRp bmdFbmFibGVkKGZhbHNlKTs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdp bi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7IG1pbi1o ZWlnaHQ6IDE0cHg7ICI+PEJSPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFy Z2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5U aGUgcHJvYmxlbSBpcywgdGhhdCB3aWxsIGJyZWFrIEFKQVggc3VwcG9ydC48U1BBTiBjbGFzcz0i QXBwbGUtY29udmVydGVkLXNwYWNlIj6gIDwvU1BBTj5TbyBJJ20gbm90IHN1cmUgd2hhdCB0aGUg ZmluYWwgc29sdXRpb24gd2lsbCBiZS48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7 IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7 IG1pbi1oZWlnaHQ6IDE0cHg7ICI+PEJSPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBw eDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBw eDsgIj5TdGFuPC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6 IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtaW4taGVpZ2h0OiAx NHB4OyAiPjxCUj48L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdo dDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+UGlldGVyIEt1 aWpwZXJzIHdyb3RlOjwvRElWPiA8QkxPQ0tRVU9URSB0eXBlPSJjaXRlIj48RElWIHN0eWxlPSJt YXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1h cmdpbi1sZWZ0OiAwcHg7ICI+SSdtIHRyeWluZyB0byB0ZXN0IGEgY29tbWFuZExpbmsgaW4gYSBw YWdlIHdpdGggQ2xpZW50RmFjYWRlLmNsaWNrTGluaywgYnV0IHRoaXMgZG9lcyBub3Qgc2VlbSB0 byBiZSB3b3JraW5nLjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJp Z2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5saW5rLmpz cDo8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBt YXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+Jmx0O2h0bWwgeG1sbnM9IjxB IGhyZWY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPmh0dHA6Ly93d3cudzMub3JnLzE5 OTkveGh0bWw8L0E+IiZndDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdp bi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+Jmx0 OyVAIHRhZ2xpYiB1cmk9IjxBIGhyZWY9Imh0dHA6Ly9qYXZhLnN1bi5jb20vanNmL2NvcmUiPmh0 dHA6Ly9qYXZhLnN1bi5jb20vanNmL2NvcmU8L0E+IiBwcmVmaXg9ImYiJSZndDs8L0RJVj48RElW IHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9t OiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+Jmx0OyVAIHRhZ2xpYiB1cmk9IjxBIGhyZWY9Imh0 dHA6Ly9qYXZhLnN1bi5jb20vanNmL2h0bWwiPmh0dHA6Ly9qYXZhLnN1bi5jb20vanNmL2h0bWw8 L0E+IiBwcmVmaXg9ImgiJSZndDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1h cmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+ Jmx0O2Y6dmlldyZndDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1y aWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+Jmx0O2hl YWQmZ3Q7PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBw eDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPiZsdDttZXRhIGh0dHAt ZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAv Jmd0OzwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7 IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj4mbHQ7dGl0bGUmZ3Q7TGlu ayB0ZXN0Jmx0Oy90aXRsZSZndDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1h cmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+ Jmx0Oy9oZWFkJmd0OzwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJp Z2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj4mbHQ7Ym9k eSZndDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4 OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+Jmx0O2g6Zm9ybSZndDs8 L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJn aW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+Jmx0O2g6Y29tbWFuZExpbmsgaWQ9 ImxpbmsiIHZhbHVlPSJjbGljayBtZSIgYWN0aW9uPSJ0YXJnZXQiLyZndDs8L0RJVj48RElWIHN0 eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAw cHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+Jmx0Oy9oOmZvcm0mZ3Q7PC9ESVY+PERJViBzdHlsZT0i bWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBt YXJnaW4tbGVmdDogMHB4OyAiPiZsdDsvYm9keSZndDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4t dG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1s ZWZ0OiAwcHg7ICI+Jmx0Oy9mOnZpZXcmZ3Q7PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDog MHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDog MHB4OyAiPiZsdDsvaHRtbCZndDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1h cmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+ dGFyZ2V0LmpzcDo8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdo dDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+Jmx0O2h0bWwg eG1sbnM9IjxBIGhyZWY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPmh0dHA6Ly93d3cu dzMub3JnLzE5OTkveGh0bWw8L0E+IiZndDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAw cHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAw cHg7ICI+Jmx0O2hlYWQmZ3Q7PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJn aW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPiZs dDttZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy c2V0PVVURi04IiAvJmd0OzwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2lu LXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj4mbHQ7 dGl0bGUmZ3Q7TGluayB0ZXN0IHN1Y2Nlc3NmdWwmbHQ7L3RpdGxlJmd0OzwvRElWPjxESVYgc3R5 bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBw eDsgbWFyZ2luLWxlZnQ6IDBweDsgIj4mbHQ7L2hlYWQmZ3Q7PC9ESVY+PERJViBzdHlsZT0ibWFy Z2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJn aW4tbGVmdDogMHB4OyAiPiZsdDtib2R5Jmd0OzwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6 IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6 IDBweDsgIj5TdWNjZXNzLjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2lu LXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj4mbHQ7 L2JvZHkmZ3Q7PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6 IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPiZsdDsvaHRtbCZn dDs8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBt YXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+VGVzdCBjb2RlOjwvRElWPjxE SVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0 b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5wdWJsaWMgY2xhc3MgTGlua1Rlc3QgZXh0ZW5k cyBUZXN0Q2FzZSB7PC9ESVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmln aHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxTUEFOIGNs YXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3BhY2UiPqAgoCA8L1NQQU4+cHVibGljIHZvaWQgdGVzdENs aWNrTGluaygpIHRocm93cyBFeGNlcHRpb24gezwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6 IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6 IDBweDsgIj48U1BBTiBjbGFzcz0iQXBwbGUtY29udmVydGVkLXNwYWNlIj6gIKAgoCCgIDwvU1BB Tj5DbGllbnRGYWNhZGUgY2xpZW50ID0gbmV3IENsaWVudEZhY2FkZSgiL2xpbmsuZmFjZXMiKTs8 L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJn aW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLWNv bnZlcnRlZC1zcGFjZSI+oCCgIKAgoCA8L1NQQU4+Y2xpZW50LmNsaWNrTGluaygibGluayIpOzwv RElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdp bi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48U1BBTiBjbGFzcz0iQXBwbGUtY29u dmVydGVkLXNwYWNlIj6gIKAgoCCgIDwvU1BBTj5hc3NlcnRFcXVhbHMoIkxpbmsgdGVzdCBzdWNj ZXNzZnVsIiwgY2xpZW50LmdldFdlYlJlc3BvbnNlKCkuZ2V0VGl0bGUoKSk7PC9ESVY+PERJViBz dHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTog MHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPjxTUEFOIGNsYXNzPSJBcHBsZS1jb252ZXJ0ZWQtc3Bh Y2UiPqAgoCA8L1NQQU4+fTwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2lu LXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj59PC9E SVY+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2lu LWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPlRoZSBIVE1MIHRoYXQgaXMgcmV0dXJu ZWQgdXNpbmcgY2xpZW50LmdldFdlYlJlc3BvbnNlKCkuZ2V0VGV4dCBpcyB0aGF0IG9mIGxpbmsu anNwLiBXaGVuIEkgdHJ5IHRoZSBzYW1lIHRlc3QgYnkgaGFuZCwgaXQgaXMgd29ya2luZyBPSy48 L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDogMHB4OyBtYXJn aW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+SG93IGlzIHRoaXMgc3VwcG9zZWQg dG8gd29yaz88L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdpbi1yaWdodDog MHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+VGhhbmtzLDwvRElW PjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1i b3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5QaWV0ZXIgS3VpanBlcnMuPC9ESVY+PERJ ViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4tcmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRv bTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyAiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTwvRElWPjxESVYgc3R5 bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBw eDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXzwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2luLXJp Z2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj5qc2Z1bml0 LWRldiBtYWlsaW5nIGxpc3Q8L0RJVj48RElWIHN0eWxlPSJtYXJnaW4tdG9wOiAwcHg7IG1hcmdp bi1yaWdodDogMHB4OyBtYXJnaW4tYm90dG9tOiAwcHg7IG1hcmdpbi1sZWZ0OiAwcHg7ICI+PEEg aHJlZj0ibWFpbHRvOmpzZnVuaXQtZGV2QGxpc3RzLmpib3NzLm9yZyI+anNmdW5pdC1kZXZAbGlz dHMuamJvc3Mub3JnPC9BPjwvRElWPjxESVYgc3R5bGU9Im1hcmdpbi10b3A6IDBweDsgbWFyZ2lu LXJpZ2h0OiAwcHg7IG1hcmdpbi1ib3R0b206IDBweDsgbWFyZ2luLWxlZnQ6IDBweDsgIj48QSBo cmVmPSJodHRwczovL2xpc3RzLmpib3NzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2pzZnVuaXQtZGV2 Ij5odHRwczovL2xpc3RzLmpib3NzLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2pzZnVuaXQtZGV2PC9B PjwvRElWPiA8L0JMT0NLUVVPVEU+PERJViBzdHlsZT0ibWFyZ2luLXRvcDogMHB4OyBtYXJnaW4t cmlnaHQ6IDBweDsgbWFyZ2luLWJvdHRvbTogMHB4OyBtYXJnaW4tbGVmdDogMHB4OyBtaW4taGVp Z2h0OiAxNHB4OyAiPjxCUj48L0RJVj4gPC9CTE9DS1FVT1RFPjwvRElWPjxCUj48RElWPiA8U1BB TiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc3R5bGU9ImJvcmRlci1jb2xsYXBzZTogc2VwYXJh dGU7IGJvcmRlci1zcGFjaW5nOiAwcHggMHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZh bWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7IGZvbnQtc3R5bGU6IG5vcm1hbDsgZm9u dC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxldHRlci1zcGFjaW5nOiBu b3JtYWw7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGF1dG87IC1raHRtbC10ZXh0 LWRlY29yYXRpb25zLWluLWVmZmVjdDogbm9uZTsgdGV4dC1pbmRlbnQ6IDBweDsgLWFwcGxlLXRl eHQtc2l6ZS1hZGp1c3Q6IGF1dG87IHRleHQtdHJhbnNmb3JtOiBub25lOyBvcnBoYW5zOiAyOyB3 aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQtc3BhY2luZzogMHB4OyAiPjxESVYg aWQ9InNpZyIgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbDtjb2xvcjogIzAwMzM2NjsiPjxTUEFO IGNsYXNzPSJBcHBsZS1zdHlsZS1zcGFuIiBzdHlsZT0iY29sb3I6IHJnYigwLCA1MSwgMTAyKTsg Zm9udC1mYW1pbHk6IEFyaWFsOyAiPi0tPC9TUEFOPjxCUiBzdHlsZT0iY29sb3I6IHJnYigwLCA1 MSwgMTAyKTsgZm9udC1mYW1pbHk6IEFyaWFsOyAiPjxTUEFOIGNsYXNzPSJBcHBsZS1zdHlsZS1z cGFuIiBzdHlsZT0iY29sb3I6IHJnYigwLCA1MSwgMTAyKTsgZm9udC1mYW1pbHk6IEFyaWFsOyAi PqA8L1NQQU4+PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDAwMDAwIiBm YWNlPSJIZWx2ZXRpY2EiPjxJTUcgc3JjPSJjaWQ6NkNFQUMxMzQtRUFCQi00RTg5LUIyODAtMjE2 RjQwQjE0QjRGQGxvY2FsIj48U1BBTiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc3R5bGU9ImJv cmRlci1jb2xsYXBzZTogc2VwYXJhdGU7IGJvcmRlci1zcGFjaW5nOiAwcHggMHB4OyBjb2xvcjog cmdiKDAsIDAsIDApOyBmb250LWZhbWlseTogSGVsdmV0aWNhOyBmb250LXNpemU6IDEycHg7IGZv bnQtc3R5bGU6IG5vcm1hbDsgZm9udC12YXJpYW50OiBub3JtYWw7IGZvbnQtd2VpZ2h0OiBub3Jt YWw7IGxldHRlci1zcGFjaW5nOiBub3JtYWw7IGxpbmUtaGVpZ2h0OiBub3JtYWw7IHRleHQtYWxp Z246IGF1dG87IC1raHRtbC10ZXh0LWRlY29yYXRpb25zLWluLWVmZmVjdDogbm9uZTsgdGV4dC1p bmRlbnQ6IDBweDsgLWFwcGxlLXRleHQtc2l6ZS1hZGp1c3Q6IGF1dG87IHRleHQtdHJhbnNmb3Jt OiBub25lOyBvcnBoYW5zOiAyOyB3aGl0ZS1zcGFjZTogbm9ybWFsOyB3aWRvd3M6IDI7IHdvcmQt c3BhY2luZzogMHB4OyAiPjxESVYgaWQ9InNpZyIgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbDtj b2xvcjogIzAwMzM2NjsiPjxTUEFOIHN0eWxlPSJjb2xvcjogI2ZmOTkwMDtmb250LXdlaWdodDog Ym9sZDtmb250LXN0eWxlOiBub3JtYWw7Zm9udC1zaXplOiB4LWxhcmdlOzsgZm9udC1mYW1pbHk6 IEFyaWFsOyBmb250LXNpemU6IDE4cHg7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4i IHN0eWxlPSJjb2xvcjogcmdiKDI1NSwgMTUzLCAwKTsgZm9udC1mYW1pbHk6IEFyaWFsOyBmb250 LXNpemU6IDE4cHg7IGZvbnQtd2VpZ2h0OiBib2xkOyAiPlBpZXRlciBLdWlqcGVyczwvU1BBTj48 L1NQQU4+PEJSIHN0eWxlPSJjb2xvcjogcmdiKDAsIDUxLCAxMDIpOyBmb250LWZhbWlseTogQXJp YWw7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJjb2xvcjogcmdiKDAs IDUxLCAxMDIpOyBmb250LWZhbWlseTogQXJpYWw7ICI+U2VuaW9yIHNvZnR3YXJlIGVuZ2luZWVy IDwvU1BBTj48QiBzdHlsZT0iY29sb3I6IHJnYigwLCA1MSwgMTAyKTsgZm9udC1mYW1pbHk6IEFy aWFsOyBmb250LXdlaWdodDogYm9sZDsgIj48U1BBTiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIg c3R5bGU9ImNvbG9yOiByZ2IoMCwgNTEsIDEwMik7IGZvbnQtZmFtaWx5OiBBcmlhbDsgZm9udC13 ZWlnaHQ6IGJvbGQ7ICI+bHVtaW5pczwvU1BBTj48L0I+PFNQQU4gY2xhc3M9IkFwcGxlLXN0eWxl LXNwYW4iIHN0eWxlPSJjb2xvcjogcmdiKDAsIDUxLCAxMDIpOyBmb250LWZhbWlseTogQXJpYWw7 ICI+rjwvU1BBTj48QlIgc3R5bGU9ImNvbG9yOiByZ2IoMCwgNTEsIDEwMik7IGZvbnQtZmFtaWx5 OiBBcmlhbDsgIj48U1BBTiBjbGFzcz0iQXBwbGUtc3R5bGUtc3BhbiIgc3R5bGU9ImNvbG9yOiBy Z2IoMCwgNTEsIDEwMik7IGZvbnQtZmFtaWx5OiBBcmlhbDsgIj4tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPC9TUEFOPjxCUiBzdHlsZT0iY29sb3I6IHJn YigwLCA1MSwgMTAyKTsgZm9udC1mYW1pbHk6IEFyaWFsOyAiPjxTUEFOIGNsYXNzPSJBcHBsZS1z dHlsZS1zcGFuIiBzdHlsZT0iY29sb3I6IHJnYigwLCA1MSwgMTAyKTsgZm9udC1mYW1pbHk6IEFy aWFsOyAiPjA2IDE3NCAxODUgMzQ8L1NQQU4+PEJSIHN0eWxlPSJjb2xvcjogcmdiKDAsIDUxLCAx MDIpOyBmb250LWZhbWlseTogQXJpYWw7ICI+PFNQQU4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4i IHN0eWxlPSJjb2xvcjogcmdiKDAsIDUxLCAxMDIpOyBmb250LWZhbWlseTogQXJpYWw7ICI+PEEg aHJlZj0ibWFpbHRvOnBpZXRlci5rdWlqcGVyc0BsdW1pbmlzLm5sIj5waWV0ZXIua3VpanBlcnNA bHVtaW5pcy5ubDwvQT48L1NQQU4+PEJSIHN0eWxlPSJjb2xvcjogcmdiKDAsIDUxLCAxMDIpOyBm b250LWZhbWlseTogQXJpYWw7ICI+PEEgaHJlZj0iaHR0cDovL3d3dy5sdW1pbmlzLm5sLyI+PFNQ QU4gY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIHN0eWxlPSJjb2xvcjogcmdiKDAsIDAsIDIzOCk7 IGZvbnQtZmFtaWx5OiBBcmlhbDsgLWtodG1sLXRleHQtZGVjb3JhdGlvbnMtaW4tZWZmZWN0OiB1 bmRlcmxpbmU7ICI+d3d3Lmx1bWluaXMubmw8L1NQQU4+PC9BPjxCUiBzdHlsZT0iY29sb3I6IHJn YigwLCA1MSwgMTAyKTsgZm9udC1mYW1pbHk6IEFyaWFsOyAiPjxTUEFOIGNsYXNzPSJBcHBsZS1z dHlsZS1zcGFuIiBzdHlsZT0iY29sb3I6IHJnYigwLCA1MSwgMTAyKTsgZm9udC1mYW1pbHk6IEFy aWFsOyAiPi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS08 L1NQQU4+PERJViBzdHlsZT0iY29sb3I6IHJnYigwLCA1MSwgMTAyKTsgZm9udC1mYW1pbHk6IEFy aWFsOyAiPjxCUiBjbGFzcz0ia2h0bWwtYmxvY2stcGxhY2Vob2xkZXIiPjwvRElWPjwvRElWPjxC UiBjbGFzcz0iQXBwbGUtaW50ZXJjaGFuZ2UtbmV3bGluZSI+PC9TUEFOPiA8L0ZPTlQ+PC9ESVY+ PEZPTlQgY2xhc3M9IkFwcGxlLXN0eWxlLXNwYW4iIGNvbG9yPSIjMDAwMDAwIiBmYWNlPSJIZWx2 ZXRpY2EiPjwvRk9OVD48L1NQQU4+PC9ESVY+PEJSPjwvRElWPjwvQk9EWT48L0hUTUw+ --===============3834085738716030530== Content-Type: image/jpeg MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="onbekend.jpg" /9j/4AAQSkZJRgABAQEASABIAAD//gAMQXBwbGVNYXJrCv/bAIQABwUFBgUFBwYGBggHBwgKEQsK CQkKFA8PDBEYFRkZFxUXFxodJSAaHCMcFxchLCEjJygqKioZHy4xLSkxJSkqKAEHCAgKCQoTCwsT KBsXGygoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8QB ogAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoLAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJ CgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJ ChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeI iYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq 8fLz9PX29/j5+hEAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMz UvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3 eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna 4uPk5ebn6Onq8vP09fb3+Pn6/8AAEQgAKwArAwEiAAIRAQMRAf/aAAwDAQACEQMRAD8A+ib+/t9N tnubl9ka/mT6D3rz3VvGWoX7sts5tIOwQ/Mfqf8ACjxlqzX2pvbq37i1OwAdC38R/p+FZ1zoOqWk SzS2cnlMoYOg3AA+uOn418dmWYV605U6F+WO7X+fY+owOCo0oRnWtzS2v/W5XK3s+JCtxLnkNtZs /jVmz1zVNNk/c3Uq7TzHISV+hBr0bwz/AMgCw/65CvP73Tb3Udav1tLWSb/SXyVXgfMep6VzV8FU w1OnVpTblLtvtc6KOLp4ic6dSKSj39TtfD3iiHWR5EqiG7Azszw49V/wrfrx2SO60i/KNmG5t3B4 PQ9RXqml6nFqOn291uVTImWXPQ9D+oNe9lWPlXTpVvjj+P8AwUeNmOCjRaqUvhkeVLLG1+JrpWaM zb5FXqRnJFenaf4l0rUiqQ3SpI3Aik+Vvpz1/CvOddsm0/VrqAjA3lk91PIrp/BGhwmMarMUkfJW JAc7PUn3/wA968fKqmIpYqVCCWr96/kepmMKFTDqtJvbS3mdoAAMAYHtVS91Ox0xQbu5jgzyFJ5P 0HU1T1DxJZ6dqdvYSn5pfvvniLP3c/Wk8SaLDq9gwYrHNCC0UrcAeoJ9DX1FWu3Cf1ezlHofPU6K U4e2uoy6nC+KNSstV1EXNmsgGwK7OuNxHQj8Kr2t/cQwJGjMFGcY+tZxGDiu/wBE8LxSaVbSXGVl ddxGOgJJH6Yr4vDU6+OxE5w0b1fQ+rrzo4SjGMtVsi74o8PDWYBLBhbuIfLno4/un+lcJZahqHh6 9Yx7opFOJIZBw31H9a9aqjqel2WoxN9qtklKqcMeGH4jmvpcdlntp+3oy5Zr8TwMJmHsoexqx5oH k1xPJdzyTzMXkkYszHuau3mvahfWUNlNOfJiXaQOr+m496L+1hhumSNNqg9Mk113hfRNOkh+0SWi SSg8F8sB+B4r5nC4WvWqypRna+++v+Z7+IxFGlTjUlG9tvIxvC/heXUJkvLyMpaKdyqw5lP+Fei9 KOnAor7PBYKng6fJDVvd9z5XF4ueKnzS26I//9k= --===============3834085738716030530==-- From ssilvert at redhat.com Wed Aug 8 10:46:21 2007 Content-Type: multipart/mixed; boundary="===============5454854864481236573==" MIME-Version: 1.0 From: Stan Silvert To: jsfunit-dev at lists.jboss.org Subject: Re: [jsfunit-dev] ClientFacade.clickLink not working for h:commandLink Date: Wed, 08 Aug 2007 10:46:06 -0400 Message-ID: <46B9D72E.4090904@redhat.com> In-Reply-To: D1CE10C9-2485-4BE5-A27A-72B92BEB5C51@luminis.nl --===============5454854864481236573== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Thanks for letting me know that it fails on JBoss 4.2/JSF 1.2. That = saves me a bit of time. I think we're going to have to treat the commandLink component the same = way we do an AJAX component. We just ignore all the javascript and send = the equivalent HTTP request to the server. Stan Pieter Kuijpers wrote: > Hi Stan, > = > Thanks for the quick response. I've tried commenting out the two lines = > you indicated, but still no luck. HttpUnit doesn't seem to be able to = > cope with the JavaScript that is generated for the commandLink. The = > error I get is: > = > com.meterware.httpunit.ScriptException: Event 'if(typeof jsfcljs =3D=3D = > 'function'){jsfcljs(document.forms['form'],'form:link,form:link','');}ret= urn = > false' failed: TypeError: undefined is not a function. (httpunit; ) > at = > com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.handleScrip= tException(JavaScript.java:202) > at = > com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.performEven= t(JavaScript.java:175) > at = > com.meterware.httpunit.scripting.ScriptableDelegate.doEvent(ScriptableDel= egate.java:56) > at = > com.meterware.httpunit.WebRequestSource.submitRequest(WebRequestSource.ja= va:232) > at com.meterware.httpunit.WebLink.click(WebLink.java:98) > = > I'm using JBoss 4.2.0GA, that in turn uses the JSF reference = > implementation, so that may explain why this fix is working for you but = > not for me. > = > The HTML/Javascript that is generated for link.jsp is: > = > > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > = > > > > = > Link test > > = > >
name=3D"j_id_jsp_918822224_1" > method=3D"post" action=3D"/JsfTest/link.faces" = > enctype=3D"application/x-www-form-urlencoded"> > value=3D"j_id_jsp_918822224_1" /> > > onclick=3D"if(typeof jsfcljs =3D=3D = > 'function'){jsfcljs(document.forms['j_id_jsp_918822224_1'],'j_id_jsp_9188= 22224_1:link,j_id_jsp_918822224_1:link','');}return = > false" name=3D"j_id_jsp_918822224_1:link">click me > id=3D"javax.faces.ViewState" value=3D"j_id1:j_id2" /> >
> > > = > My JavaScript knowledge is not very deep, so I'm having trouble = > understanding the error message from HttpUnit. > = > Regards, > Pieter. > = > = > Op 8-aug-2007, om 2:41 heeft Stan Silvert het volgende geschreven: > = >> Hi Pieter, >> >> The fix is taking a little longer than I expected. If you comment out = >> two lines of code in WebConversationFactory then the = >> client.clickLink() on a commandLink will work (at least with MyFaces = >> 1.1). The two lines are: >> >> HTMLParserFactory.useJTidyParser(); >> HttpUnitOptions.setScriptingEnabled(false); >> >> The problem is, that will break AJAX support. So I'm not sure what = >> the final solution will be. >> >> Stan >> >> Pieter Kuijpers wrote: >>> I'm trying to test a commandLink in a page with = >>> ClientFacade.clickLink, but this does not seem to be working. >>> link.jsp: >>> >>> <%@ taglib uri=3D"http://java.sun.com/jsf/core" prefix=3D"f"%> >>> <%@ taglib uri=3D"http://java.sun.com/jsf/html" prefix=3D"h"%> >>> >>> >>> >>> Link test >>> >>> >>> >>> >>> >>> >>> >>> >>> target.jsp: >>> >>> >>> >>> Link test successful >>> >>> >>> Success. >>> >>> >>> Test code: >>> public class LinkTest extends TestCase { >>> public void testClickLink() throws Exception { >>> ClientFacade client =3D new ClientFacade("/link.faces"); >>> client.clickLink("link"); >>> assertEquals("Link test successful", = >>> client.getWebResponse().getTitle()); >>> } >>> } >>> The HTML that is returned using client.getWebResponse().getText is = >>> that of link.jsp. When I try the same test by hand, it is working OK. >>> How is this supposed to work? >>> Thanks, >>> Pieter Kuijpers. >>> ------------------------------------------------------------------------ >>> _______________________________________________ >>> jsfunit-dev mailing list >>> jsfunit-dev(a)lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/jsfunit-dev >> > = > -- > = > Pieter Kuijpers > Senior software engineer *luminis*=C2=AE > ------------------------------------------------- > 06 174 185 34 > pieter.kuijpers(a)luminis.nl > www.luminis.nl > ------------------------------------------------- > = > = > = --===============5454854864481236573==-- From ssilvert at redhat.com Thu Aug 9 11:18:54 2007 Content-Type: multipart/mixed; boundary="===============8211828294185624364==" MIME-Version: 1.0 From: Stan Silvert To: jsfunit-dev at lists.jboss.org Subject: Re: [jsfunit-dev] ClientFacade.clickLink not working for h:commandLink Date: Thu, 09 Aug 2007 11:18:38 -0400 Message-ID: <46BB304E.4090302@redhat.com> In-Reply-To: D1CE10C9-2485-4BE5-A27A-72B92BEB5C51@luminis.nl --===============8211828294185624364== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Pieter, I've committed a fix for commandLink. It has been tested on MyFaces = 1.1.4, MyFaces 1.1.5, and JSF RI 1.2_04_P02 (the one that ships with = JBoss 4.2). There is a new method in ClientFacade called clickCommandLink(). You = will need to use that instead of clickLink(). Can you try it out and let us know if it works for you? Thanks, Stan Pieter Kuijpers wrote: > Hi Stan, > = > Thanks for the quick response. I've tried commenting out the two lines = > you indicated, but still no luck. HttpUnit doesn't seem to be able to = > cope with the JavaScript that is generated for the commandLink. The = > error I get is: > = > com.meterware.httpunit.ScriptException: Event 'if(typeof jsfcljs =3D=3D = > 'function'){jsfcljs(document.forms['form'],'form:link,form:link','');}ret= urn = > false' failed: TypeError: undefined is not a function. (httpunit; ) > at = > com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.handleScrip= tException(JavaScript.java:202) > at = > com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.performEven= t(JavaScript.java:175) > at = > com.meterware.httpunit.scripting.ScriptableDelegate.doEvent(ScriptableDel= egate.java:56) > at = > com.meterware.httpunit.WebRequestSource.submitRequest(WebRequestSource.ja= va:232) > at com.meterware.httpunit.WebLink.click(WebLink.java:98) > = > I'm using JBoss 4.2.0GA, that in turn uses the JSF reference = > implementation, so that may explain why this fix is working for you but = > not for me. > = > The HTML/Javascript that is generated for link.jsp is: > = > > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> > = > > > > = > Link test > > = > >
name=3D"j_id_jsp_918822224_1" > method=3D"post" action=3D"/JsfTest/link.faces" = > enctype=3D"application/x-www-form-urlencoded"> > value=3D"j_id_jsp_918822224_1" /> > > onclick=3D"if(typeof jsfcljs =3D=3D = > 'function'){jsfcljs(document.forms['j_id_jsp_918822224_1'],'j_id_jsp_9188= 22224_1:link,j_id_jsp_918822224_1:link','');}return = > false" name=3D"j_id_jsp_918822224_1:link">click me > id=3D"javax.faces.ViewState" value=3D"j_id1:j_id2" /> >
> > > = > My JavaScript knowledge is not very deep, so I'm having trouble = > understanding the error message from HttpUnit. > = > Regards, > Pieter. > = > = > Op 8-aug-2007, om 2:41 heeft Stan Silvert het volgende geschreven: > = >> Hi Pieter, >> >> The fix is taking a little longer than I expected. If you comment out = >> two lines of code in WebConversationFactory then the = >> client.clickLink() on a commandLink will work (at least with MyFaces = >> 1.1). The two lines are: >> >> HTMLParserFactory.useJTidyParser(); >> HttpUnitOptions.setScriptingEnabled(false); >> >> The problem is, that will break AJAX support. So I'm not sure what = >> the final solution will be. >> >> Stan >> >> Pieter Kuijpers wrote: >>> I'm trying to test a commandLink in a page with = >>> ClientFacade.clickLink, but this does not seem to be working. >>> link.jsp: >>> >>> <%@ taglib uri=3D"http://java.sun.com/jsf/core" prefix=3D"f"%> >>> <%@ taglib uri=3D"http://java.sun.com/jsf/html" prefix=3D"h"%> >>> >>> >>> >>> Link test >>> >>> >>> >>> >>> >>> >>> >>> >>> target.jsp: >>> >>> >>> >>> Link test successful >>> >>> >>> Success. >>> >>> >>> Test code: >>> public class LinkTest extends TestCase { >>> public void testClickLink() throws Exception { >>> ClientFacade client =3D new ClientFacade("/link.faces"); >>> client.clickLink("link"); >>> assertEquals("Link test successful", = >>> client.getWebResponse().getTitle()); >>> } >>> } >>> The HTML that is returned using client.getWebResponse().getText is = >>> that of link.jsp. When I try the same test by hand, it is working OK. >>> How is this supposed to work? >>> Thanks, >>> Pieter Kuijpers. >>> ------------------------------------------------------------------------ >>> _______________________________________________ >>> jsfunit-dev mailing list >>> jsfunit-dev(a)lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/jsfunit-dev >> > = > -- > = > Pieter Kuijpers > Senior software engineer *luminis*=C2=AE > ------------------------------------------------- > 06 174 185 34 > pieter.kuijpers(a)luminis.nl > www.luminis.nl > ------------------------------------------------- > = > = > = --===============8211828294185624364==--