Re: Tab Order / Focus after replacement per Ajax
Joachim Tuchel <[email protected]> Fri, 23 Jun 2023 08:48:08 +0200
| Newsgroups | gmane.comp.lang.smalltalk.squeak.seaside |
|---|---|
| Organization | objektfarik Joachim Tuchel |
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --===============6719389251617777953== Content-Type: multipart/alternative; boundary="------------63gs7tPKmFAZU00YBAvPhy5E" This is a multi-part message in MIME format. --------------63gs7tPKmFAZU00YBAvPhy5E Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit HI Karsten, thanks for your input. Sounds good, and since we assign ids to all our compoinents and save them on the server side already, might work in many situations. However, the order of components (and tehrefor their íd) is not necessarily the order of the components' tabbing order. If an input is part of a component and the next tabbable element is a subcomponent of another component, there is not really an easy way to know the "real" tabbing order of the page in a browser. The order of the ids also doesn't really match wirh the order of the elements on that page. We tried to assign a tabindex at render time and were hoping to solve problems that way, but we never found a solution that is reliable enough. One idea we haven't investigated to the bottom is to extend WARenderCanvas to assign tabindex at render time. But in case of replacements in Ajax callbacks (load html: or replaceWith:), the canvas that renders the new elements is a new one. It would have to have knowledge of the origina tabindeces.... Maybe we could let the canvas set the tabindex on a currently rendered component (write back to the WAComponent at ender time)... and reuse these on every subsequent render.... need to think about this. So I guess the only "reliably correct" way to do things is to ask the Browser for the actual elelemnts in tabbing order and compare the situation before/after replacement. (onBeforeSend...). Border cases like the old element not being part of the replaced section of the page, or being re-rendered as disabled need to be addressed too... There seems to be no way to ask the browser for the actual tab order (although it must be able to determine it, since it provides the tabbing...). JQeury has the pseudo-class :tabbable which seems to be lose to the truth, so maybe I'll play with it for a while... Joachim Am 22.06.23 um 12:03 schrieb Karsten Kusche: > Hi Joachim, > > you need to explicitly set the keyboard focus after the replacement. > One possibility is to remember the focused element’s id before the > replacement and then use the information after replacement. > > Kind regards > Karsten > > > > Georg Heeg eK | Amtsgericht Dortmund HR A 12812 > Wallstr. 22 | D-06366 Köthen > Tel.: +49-3496-214328 <tel:+49-3496-214328> > Web: www.heeg.de <https://www.heeg.de/> > > > Am 22. Juni 2023 um 11:53:09, Joachim Tuchel ([email protected]) > schrieb: > >> Dear Seasiders, >> >> >> it seems this list is more or less abandoned, but I'll try anyways... My >> question is probably more JS related that Seaside.. >> >> I have a question regarding tab order and replaced components via Ajax. >> Let's assume we have a form with 3 inputs. Teh middle one has an onblur >> event handler that replaces the form. So far, so good. The problem is >> that the focus moves to the first text input element instead of the >> "next" one (which is not the same element as before, because we replaced >> all three with new ones). >> >> I tried a few things like using the tablndex attribute on elements, but >> found nothing that works. Does anybody have a clue what to do in this >> situation? I am pretty sure it is a JS only or even plan HTML solution, >> but cannot find it on my own... >> >> >> Joachim >> >> >> _______________________________________________ >> seaside mailing list -- [email protected] >> To unsubscribe send an email to [email protected] -- ----------------------------------------------------------------------- Objektfabrik Joachim Tuchelmailto:[email protected] Fliederweg 1http://www.objektfabrik.de D-71640 Ludwigsburghttp://joachimtuchel.wordpress.com Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 --------------63gs7tPKmFAZU00YBAvPhy5E Content-Type: multipart/related; boundary="------------p1gHOIV0zNEfrNDu0ha5y95P" --------------p1gHOIV0zNEfrNDu0ha5y95P Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>HI Karsten,</p> <p><br> </p> <p>thanks for your input. Sounds good, and since we assign ids to all our compoinents and save them on the server side already, might work in many situations.</p> <p>However, the order of components (and tehrefor their íd) is not necessarily the order of the components' tabbing order. If an input is part of a component and the next tabbable element is a subcomponent of another component, there is not really an easy way to know the "real" tabbing order of the page in a browser. The order of the ids also doesn't really match wirh the order of the elements on that page. We tried to assign a tabindex at render time and were hoping to solve problems that way, but we never found a solution that is reliable enough. <br> </p> <p>One idea we haven't investigated to the bottom is to extend WARenderCanvas to assign tabindex at render time. But in case of replacements in Ajax callbacks (load html: or replaceWith:), the canvas that renders the new elements is a new one. It would have to have knowledge of the origina tabindeces.... Maybe we could let the canvas set the tabindex on a currently rendered component (write back to the WAComponent at ender time)... and reuse these on every subsequent render.... need to think about this.<br> </p> <p>So I guess the only "reliably correct" way to do things is to ask the Browser for the actual elelemnts in tabbing order and compare the situation before/after replacement. (onBeforeSend...). Border cases like the old element not being part of the replaced section of the page, or being re-rendered as disabled need to be addressed too... <br> </p> <p>There seems to be no way to ask the browser for the actual tab order (although it must be able to determine it, since it provides the tabbing...). JQeury has the pseudo-class :tabbable which seems to be lose to the truth, so maybe I'll play with it for a while...</p> <p><br> </p> <p>Joachim<br> </p> <p><br> </p> <div class="moz-cite-prefix">Am 22.06.23 um 12:03 schrieb Karsten Kusche:<br> </div> <blockquote type="cite" cite="mid:[email protected]"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style>body{font-family:Helvetica,Arial;font-size:13px}</style> <div style="font-family:Helvetica,Arial;font-size:13px; ">Hi Joachim,</div> <div style="font-family:Helvetica,Arial;font-size:13px; "><br> </div> <div style="font-family:Helvetica,Arial;font-size:13px; ">you need to explicitly set the keyboard focus after the replacement. One possibility is to remember the focused element’s id before the replacement and then use the information after replacement.</div> <div style="font-family:Helvetica,Arial;font-size:13px; "><br> </div> <div style="font-family:Helvetica,Arial;font-size:13px; ">Kind regards</div> <div style="font-family:Helvetica,Arial;font-size:13px; ">Karsten</div> <br> <div class="gmail_signature"> <table class="MsoNormalTable" style="font-family: Helvetica; width: 683px;" width="100%" cellpadding="0" border="0"> <tbody> <tr> <td style="width: 67.5pt; padding: 0.75pt;" width="93"> <p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"> <img src="cid:[email protected]" class=""><o:p></o:p></p> </td> <td style="padding: 0.75pt;"> <p class="MsoNormal" style="margin: 0cm 0cm 0.0001pt; font-size: 11pt; font-family: Calibri, sans-serif;"> Georg Heeg eK | Amtsgericht Dortmund HR A 12812<br> Wallstr. <span lang="DE">22 | D-06366 Köthen<br> Tel.: </span><a href="tel:+49-3496-214328" target="_blank" style="color: rgb(149, 79, 114);" moz-do-not-send="true"><span style="color: windowtext;" lang="DE">+49-3496-214328</span></a><span lang="DE"><br> Web: </span><a href="https://www.heeg.de/" style="color: rgb(149, 79, 114);" moz-do-not-send="true"><span style="color: windowtext;" lang="DE">www.heeg.de</span></a></p> </td> </tr> </tbody> </table> </div> <br> <p class="airmail_on">Am 22. Juni 2023 um 11:53:09, Joachim Tuchel (<a href="mailto:[email protected]" moz-do-not-send="true" class="moz-txt-link-freetext">[email protected]</a>) schrieb:</p> <blockquote type="cite" class="clean_bq"><span> <div> <div>Dear Seasiders, <br> <br> <br> it seems this list is more or less abandoned, but I'll try anyways... My <br> question is probably more JS related that Seaside.. <br> <br> I have a question regarding tab order and replaced components via Ajax. <br> Let's assume we have a form with 3 inputs. Teh middle one has an onblur <br> event handler that replaces the form. So far, so good. The problem is <br> that the focus moves to the first text input element instead of the <br> "next" one (which is not the same element as before, because we replaced <br> all three with new ones). <br> <br> I tried a few things like using the tablndex attribute on elements, but <br> found nothing that works. Does anybody have a clue what to do in this <br> situation? I am pretty sure it is a JS only or even plan HTML solution, <br> but cannot find it on my own... <br> <br> <br> Joachim <br> <br> <br> _______________________________________________ <br> seaside mailing list -- <a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a> <br> To unsubscribe send an email to <a class="moz-txt-link-abbreviated" href="mailto:[email protected]">[email protected]</a> <br> </div> </div> </span></blockquote> </blockquote> <pre class="moz-signature" cols="72">-- ----------------------------------------------------------------------- Objektfabrik Joachim Tuchel <a class="moz-txt-link-freetext" href="mailto:[email protected]">mailto:[email protected]</a> Fliederweg 1 <a class="moz-txt-link-freetext" href="http://www.objektfabrik.de">http://www.objektfabrik.de</a> D-71640 Ludwigsburg <a class="moz-txt-link-freetext" href="http://joachimtuchel.wordpress.com">http://joachimtuchel.wordpress.com</a> Telefon: +49 7141 56 10 86 0 Fax: +49 7141 56 10 86 1 </pre> </body> </html> --------------p1gHOIV0zNEfrNDu0ha5y95P Content-Type: image/png; name="88B4C6D5-0BDC-431B-84B6-CB438ECA0C62.png" Content-Disposition: inline; filename="88B4C6D5-0BDC-431B-84B6-CB438ECA0C62.png" Content-Id: <[email protected]> Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAEgAAAAvCAYAAABAHIylAAAAAXNSR0IArs4c6QAAAAlwSFlz AAAOxAAADsQBlSsOGwAAABl0RVh0U29mdHdhcmUATWljcm9zb2Z0IE9mZmljZX/tNXEAABWj SURBVGhDzVoJfFXVnT7bXd57yXsJIRJoQggINAEUXIqotLVat7bWikyqccwIcaTW1tTS2tGO aVxG246aLtOmTERTDZgKbUXb39gVtErdakEkRSABWRKI4b3kJe/dd5dz5jsPtC6BLIDt1Qjm 3nvuOd/5L9//+x9RX19P/pmuuro6+r1p04z8bj/PzrFPcAn5EOFsMlVqKpOklDBWJqk6kSiS i3m7lBBTzx9/4ofi14RIpXo4pVvxv+0KP1zS14VLtvohYztpf7mnrb5eDnfNYrgPHo/nbqsr Zw/nf6vQzicTiWSTfSWnrZw4a7LKqGKZaxYpRiNhygwOELBQ/WP4VJlAwaAUcOB3LAvLQXAI bmiAmKJ5BmOzGSMzGFGeZNTN8MDLSLePls58tfzB1WtJxn+ybUnlnqHW9YECVNT8jJ3r7Z0i GCmXhFWsKFXTBWGTAE6BSWnEYjxXSpKD3edAgHCsWQOgrwA/vtLLD4gjVQBb6QUsfUyRhCJy AH/vZYTEJVMBAGK+lGGqaASgRqSUE/B+WZRxKigDaOTcPptcXra89e6ORZV/OBJIxxWgouY1 ebkkPV0GbIZSahp2fZrgvBhAjMFWjwUGMRv/MSimrJcOANI0ICkVkIwi+7HobljFXvy5F9Ak pCL9kvo98I/9hIo3ZeD3CyIcnzDPI04/0CyLEfMcWNm+A0FmHfGFI/AAhs4xmCxUgToxzPip ktDP5nPjPHwvd2xTy5ffrKl64XAgHXOAyhtXT5OmPBmLqCBKzQpxUUwZnYAFjo8wJmzKiaJK WwHpD3ziEtUJX9mDGLMrUGSPK4NOuEZXhpBuwkWflw4SPsBxQqGUHY87+fH2FGKINqh3XUVN LWWFzKrMY8ZHMWafo+TAziWVy9/3XGNziWXajxMlvprLxDxY6EXJhoZNmdra1GAgHROAyjA5 k5mnwaRPZRY9yWBiGsx6UpRzbjMOp1AkKQMyIOW+FJHbEGt2OkrB/+VOANmFB7qx2/vgRPs7 llTGj2TyXYPcLGpsLsyzI7cbhFe5SlEbCJuU7SlqaHi06z0L71pSvQtD7AqaWsdP4GJ2hPMp xM4P43fHFqCihjXh/Jz0HJ+xM2wRmgsMTkdsmZTLOWFwmRRW3a9kX78vt7s0aHel3IJosgUx ZjsxnB12e3vXYJYwVNAc7H7EtK8xCb0MG0EHgoDYEqFZyjcmxuOuBnRqU+sck4uSFCNbOqoX bNFzD8X4lEBJy1dkH3FI+pi5GHZrbK4Vnmnk0XMZEZ+kksyNwUp0MO1H7EgEwZuwhPZMoLYi nbyCCWwwmdzUvqhysM0fDR7vemdq8+ozTCpqEN/CqUCSGBckJf0tXuD/8iKY6CMPtl6Qa4il RLFpgVR/ntjUssKMGqfFqHGtJ1VnPPB+n6mtRpAf/Bq2i5U3r4n5XnqWZedciiB3iUXp1BBM 2QNCvdIHH6EdCK5tsJKnBZPPFogJG5+rnu8cNQJHGKCocU0hMeVSg4uyDFxYZz5YRQLB9393 /nvVHx9oajk9TEWdRfk8uDRB9JsY4dY5OYwXYr4H4Orf3Wc4zx5VFstbv16Mf23vhwlXC03G r4RvnyhgLa6SJBUEAz5RHR6RT2OHHjdY6tm26sPvxrEGK1d4lyADXhhIKXQGDHPuZqT/8wEu V5c1thZbpvUF3J93AMlAM8MQAMyhotCRcm+K+A1JlnooU12dHDVA5Y2tY6RFLuZcXA8XmmeA mOiJZIh0EAy3g5f8Ghxmpdi1acNI2OnRAlVeV8eTkytmIQfcCF4T0ZvFEffSQdDrIvCHAnam sOjliIsXIPZlmZSN+9jYgX4ZvOoQeV+P6a5JVFUjWR75GtTFNN3/WclJH6YG+zKC35XYhSjo vd4F31XBHqnYqkBmftodIlsSVVX4yIKhvnNM7muiOYHEizOTTpodCeQVIJQzMgBHb5ouMrQR IUHcZIF94xch0AOwKtBwylw81+5h3hnuP2y3b96WGGa58T6AbgM40yfPPJdJeovJxFngJ8CI kIyUCSpZqyfkI8l4akNX7ZFN85gg8p5BQt7+CoepOyOMz01TGoV1gEgrJIhDF1izdn+J34FT EcRJ/I0m8NzDLqfL7Hiyo+MIAXlIHqQtZ2ppxTUhwr4iGJ2JGkgzWnhw8Aew+5+4nrmuY/Fl yFL/mEsY/gEqRR+jdIxEUNbgWEgUGhTtRnD7bGx0AU4uMitYeMKR5IeeGzSAX/WMZtZvW5DV 0Jy7YtLMG0CyvmgS9iGduJOBpwf9EXz7p1fv2rwdlb8uhkZ9faSuxbqIvO6Odhw/TlI8Knsc FFg66MLFiAfXgbXsQprfi7Q9BUidhJrL1uEgI8nKPte7v2tJ5YHRTjoL0JkNzZE3Y+H/QBlw nU3YGG2iA9J/xSPq/m5XPpkAuz0aUUQHe2KJyv5J1jkr5Umd6sHHXiQBe25rzYL2kUycRdlZ lLJPaWtBnFGgFWvBs+5OS3ef4/vxAiN8F1L4KTogxwP/N7vd4DsDRwGOnlsWoH3RcA0GvR68 JgYtBUQrWA+rub2jpvL/RrKA9z5b3txa5AbsXGmJz9iEfIxQVpQDkuQR+mJP4GlXHTZAxY0t 0w3LvA6uU6rdCIG5gzB5Z0f1wWp8yvLWi5DGTwNRFABnU5qoBoCz42jmnwWouLF1km3xRSHK YjoboF56IaW823bWXPG70Qz+kZYWqzstTmaEnUo5+yjGPROpeKK2Sv2D2MZcqTrgAtuGO37R moZwjlVyBSr/c7SPg14MpInftP0QOGVNrTMsLuryhShPq+BNbPBP+na6a4c7/pGeE5ZJa7CA Uh3mUF2/5hB1+85FIwMnb32dKHytYprP2Yw+Yp0aE/QMLGQu0qvtaQlDIsxjFnncID2+//xA 4Ny7u6bqbYA+X9diPlpfBfFw8Cu0f9z5hqBXQiYxMwFEDqXWSe48cDA8rAl3x/jXwozNcWFY fb7f0iPkqkR9lXdMAGKUXA02nAuK7rlU/fClHe5vCoYxMizF7E7bJYTLyYLMPMUS7EwL80UF PxYiGOlD7ktKP+Mp0BDwEZ1VHBXslsq/C+C8lEJSODmWc5Ygcvzzhbbe7Y48WN+fXn/dn/kO OUO7lm2YSxBzpupyAnPdCLL37d2Lqvfn1a0X3aWZf7UIuwzEx0RdtW7Akw2Jxceu7sP8oNwh I4J++0yytoLDII/JG3YyNy8U8sawwC3ppeasCCdzQRrPsiGCQevJplgnkAdQLL6aUcEWeNNH QTKnaX1U8xFPBXdt6HPWTmtsnTMuP3YpXPrqDFFbg4jsmL78sbMENcd9rrTC8Ze3JgQVUEgk pYZ5BWfs48hWenwFptxFDKHgVmezEjYLrvx1pP3cFBgzxtvJTVJW1rR6LByRHanQ1CQSJiYN PHjQHgRQ8FHqiiDt+yKEv/gQ4wRMfzk+cFMOY7lJ4n8cNcw21P5pEiJGKI3cE/LDfiAmmNSc wkz3wwB0NiLJSSgAx0IvzroOWKrsD4L9A4Hchsz7hOvKVkwuwiwy10JkxpczAG1Fr8vWzoqG LwlTfgu+V4G0/MyBILXMoOZ8k7HbgCJmmeXEoDAqjRe5UNRENtUbmP0tQsFZ4UCthF6teWAM YxsaHK1Hw3AvtRT7OFSEQFFNAg5/CQyFsbV0m8FzYJvKVIoZmo9HOANQoBIq2CtSnmwyGL04 j4nTMckb4RAnRynZAVzziaEmqMD4EGIUeBGJgiMxgIlgq1/WVqcGsKP7sHPPK0qf8Dy5FoSs EyAXUJMuBYgz9dSxuD0ulRtiBr0uwsWiKBfR3sD7S48MbjO4KUKS1oYoF3DBrPwKNUf/E9JS vH5fL1RX6rgQESimR6JgQVkhTicWkb2lNWwaxXP6fvYairQdUnrfflY/r3/gzkgEUqJ66BQg UbsjTa0NGcLuAMGa7DD5OTwU4PuawR9qFhxsqOiXEXRdFKtxbMBfgfgfsHm/F/0DW2i8Pd1x KHYIi5yP16/BnnM8rxA3TK7YTTZnpaASNtLwS32Bd/POPmfznPxYfVTQ3GQQuBp7bSUoDRDO NBgw/Kx4zzAdzBn3MHEGxsyz3QvM6pC4n12bjnXDAeYtu9I9APz7LkPTi0ZNrnxJdiAy3JN1 04KQv0qXwa7iS7GTp+quguZDegDdSUA8QWZWuyljrzApn6NSPk8Msp3Gjd4ttZe+S42b2tg6 m1usFrsQGUBQhQVoYx8PnsU1gUv6wdpez7v93/ZsXveTyZMLPUleSSt6j6M84Mj6MV3d5/oC gJmITocuH+IIzi8DjDa9P5LK0/H3+brtA8vRYHYg/b2GVabhorq+GM2lm0gWVozKhWJ5pAd0 4an88uInsgC9UFXlIgj/PD8tNnMuLwggbWD382Dq3ZB4N+LFNmWhGk7KbttxEm2HKfigNk6w zNzFCHyn6bjwVncO1a7OA2Qg8H+Bxd4NcF7S5YbT0nIAqeFRiMSYn6Py4/EgFRt/XgRsCd0H gkl6cKP7k1z+1EmTftsXedEQXQo3na/dC0F/A0TEm6UvN6fhyFmfHOWVJjZD3GUYgzjpAW+v E49vnbfQfzvQQ7ZwE4RsLG9o3u7k5KzyDGIZJEjjwwe6hhCV9Jx0oftIycxLBFNXAWCmLU/P Vi9U+3Naqgcykt4Pdt72VtmCb3r45tt8Jb+xdaKt+A1wxXH6XYzxSJLJZV3VlRD0oS0vX30m zP9i7XZuIHs8Kb+zvabyN6PEZFivvS8THrKOjmG9/Y6HVpRUzIeZfBnulId4ggAC7SGb5VQS gfT7yGw/RgA/bCezqKE55sfCt4QIPU+7FkjregjwP+665iA4xU2ts8BHlo7h5sS0DDJwvSdE v7NmpPMc6fPD1qSPNDAmPxUNwa/AWsp1e0enak0Mfan2oD/VkORWU9eSS2Asg1+aIOZG7SqU JVchBqI7GOxD3Lu3f9fEV/QbVmPjmByzoBqAn61pBcZ8PSWC7+0eobYzUnD080cNUFFj6/io bdyIYvTCNOIOFCyCXhOiqWxDtvtut7WpJVFVf9gyQk+iIMPmm5TfhAwXgXXIVOA37kl2/jpT X5klccVm/qdBQSpzuGA9vpdAbFq2u7ryr6NZ8EjfOSqA4BY5ObGc60AGr0S8gAZzUMBCebE+ Q/xvb7mm8nFCFh5xTmUoJVAQLs1BAw/EEbqyejLlOcvQ6cxmR2zAbMPiS8CdimGdabjWY2nu PDzShY72+VEDBHCicItFYUqvBTD5sBYtjGu++2xKenXbF1X+cahJgVDmc8u8HhLqBZoAwXo2 I4Hd3bW4Gv14FLfomMaM0I1g7PPQ09KiPMYOftC1qBoHFz6Ya1QA5WFhAGexxcTXwUcKkb6z MQclAQpJeQdOTAwJju5uQgBbFCZssWauWHiXQ+V37fZNL+omgC6Geyy7xib8MxDBSLfv7XYI XKum8tUPBpqDXxkxQEUNreOiUf5FuNKXkHLz9AEEWABaQUES3OdBgPPboRag2zZOScVnw8z4 Eth7pDcAnZBBc/wNvwXdhuzBhJ6M+WlY52JwnoI+uFbA5EOF0zf/YsTpdajJDHF/RACNhbg2 JipuRcCsQgURQrbJ1iNI7dIJ6BPxPufR4cwH4JwNZfF6gFOqS3aXBGt2een/ztRXZzlRcdPq WSYnN6NROUXrSbDMNZ7BH3phXv2hyns4Xzk2zwwbIKTyiqgp7jAZ/QyhChV0tozI9sIhQ7yW ll5LorYaZ3qOfOEgwVTIF7UhtJS0PAJm/Rzj8s7MkupstwTuWxA2+DeR1U7XfCgh/Q0DIJlv VC3cPtTYx+P+sADCjp6SK/g9yFaf0AYDaSMJAmiFtMIHTQAZa2VRSP7ujSFmiANVMXRDv4rm wMUGqCQENVABcj905U36VathTWhslNbajH4KcYn2Bv4A4s6P+yx/7fFY/HDGHBIgiE+nQTy6 BwTuXE3/wZI3IaWvtxi9IMbExETgP54M/J9tRaky1AcjQeYGiGhXIWaZ/YF3IK385rjl/ypr OXUtRmGpeTnAuxalRAT9fl2iPIQTVqsS1xwb+XSo+Q12/4gATUUs4EzdAYEL4FAI+sFrOAF2 L1zkEwCnADrPTohlD3bVVA1p/qXLW6twmOq6HMqzVT7Y8C+SrvNAYtHB/nhhiT0PQf9WaE/j tIwBgW09BMQHR9vwGw0YIwIIsaAEWtaXwIov1KVDv/K34czPreCBxblcXIBSNJL0vf/cXrPw yaEmg/g1P9cwboKLlmgrBJ95ulex7+O0VzbuQD49kXP2zTAT07XEgozWg/rtv7bWVL481NjH +/6gFqTNfVypfRkUxH9Bt4DEfb/bV4E+XNyVww3dnDuh23N/nSTyLzOaVy9AImKdXD6TqH6/ WF7c1DI5h9u3CkXmQLlEnSW3oTnwva7Fl2/Ui4NEUmwakVsRkD+Z7alDM4P4tMxX7v7y5Y9d htMjOztnTNiQmDfvA89gen6DApRfIk6BuV+BDkWsT/rdcKMfJF3/5XzLui8Hx2ghl77hkWD1 CcK4BBLKgoAxOT7wf2Q3NPzonWcCEb+mWMy6BR/5JDReilqt30PPam9f6in98XLcV2boZpxp vkrTBYhyylHkKank83kidAOY+dkDTLbH/rb7O4l55LjKGoezxEEBgtF8DIFyDuKEi2Nt61xf Phcz7G/kMqYLUjWg/P8BYUGXiy4wKClFv0q3Y8737fxV+NAOfUJkZUnFbIPzryF2fR6WQ7V2 jJj1WK+bWqGPvKHMmEhN8Q2cIKl5SwuG1r0Nm3EfxjwHwXwhpFY7h9IyFK8bQS5/90GeQXoL sMEBInQcTN6EPJrCblqWwa4Fq63Ugh2agM8NcLLCCgi0azkGZ5R1BwKyrHIEsbMB92GcLTKZ ugui/UVaycbpV7iW/6eUZDhIcLDOIpb8FKz0at170ODBelIDSi5z+6xnzdzMYrxno2rPiuJc Ub+TXJg1suMdc947/qAAwRp6sNsSOx9Ga+rTSL36hLomdfsgpDbkt2/udCZXbES2+Rv4zClJ qU9c+GvRAOjM+i2Xc3EG+SItmkH81kG3DX2Vut01C/5eRymmT8SZuneTRksL1vp4mqeWddUu TKHP/hcMcw541glx392BNvOfE/X/RDEIQvrTQtDfworOdpCtdOzECbOuFHiJ6Ov8lT6+C4n1 6RWlFQ1oVV+IZsTz4CvvKDNkDyyqM0qZiRMYOCCibjXvfXUtafv7STSP+89gC36JIn0WGPUL SUnvQJXepwGWfeThVEyG0Uc4HUekVu0jbjZm/SOuQS0IFfOfQk2tdzqc3QYXOA9dzX2ZIPhB /k7//hfqa7OEUIvuWwlZAaBWvve8T5I560TAbk4pMgNk8KnHz5jx9My2he9yj93VVS9ObGxd jBP0BQf6dnQiuPe/BUBHbdYSv6Vj2e1HeSbpaEH9fwgOuFnaNrplAAAAAElFTkSuQmCC --------------p1gHOIV0zNEfrNDu0ha5y95P-- --------------63gs7tPKmFAZU00YBAvPhy5E-- --===============6719389251617777953== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ seaside mailing list -- [email protected] To unsubscribe send an email to [email protected] --===============6719389251617777953==--