Re: [BLACKBOX] [Fwd: Re: [BLACKBOX] Long running command and Dialog.ShowStatus]

From: [at]} <Bob>
Date: Sat, 5 Dec 2009 11:10:22 -0000

----boundary-LibPST-iamunique-1054093884_-_-
Content-type: text/plain

> It's always possible to rewrite a program which has inner
> loops into the equivalent program with a single loop, without
> resorting to awkward logic.

I thought it might be of some interest to people for me to back up my claim
with an example. Coincidentally I have been reading "The Design of the UNIX
Operating System" by Maurice J Bach, so I have used his state transition
diagram (Figure 2.6 in the book) of unix process states and transitions to
illustrate my point. My version of the STD is at
<http://www.web-options.com/UnixProcessSTD.htm>. The equivalent state table
is at <http://www.web-options.com/ProcessSTT.htm>.

The attached module contains 3 procedures which are essentially syntax
analysers for Bach's STD.

Background.A is based on my ebnf version of the STD which I have coded
following the usual principles for coding from ebnf. It contains nested
loops and conditions and would be difficult to use effectively with
Services.DoLater.

Background.B is an equivalent based on the STD and does not use
Services.DoLater. It shows that the same structure can be coded simply and
efficiently without nested loops - just one outer loop.

Background.C is a refinement of the STD version which uses Services.Do
Later. It shows how easy it is to convert a STD-based algorithm to use
Service.DoLater and I think it shows that if you need to write a
long-running process for BB or ETH Oberon it is better to design
specifically for it, using the state-transition method rather than the more
Wirthian method based on EBNF.

Note however that Services.DoLater carries a very heavy performance penalty!

Bob

StdCoder.Decode ..,, ..WP,...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
 hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX
 7.2.s,sNh.0k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O
 NbXmb.2.gqJk2kKL,,6.,U08J99SdfJHPNjvQCJuGKfaqmY6MwdONl1QCh0708T,U..w.weJ.,
 sUGpmWbBxhYhAbndMHT9NY6Mw.sQq2Y6cwB.0.1v2w,AfHE.0E.E54.86.QC18RdfQHfMf9R9v
 Q7ONb17.,.b,0.p.0.4.0EJ2wAC.6.VQ.kuq.2.uFq8Ua5V0cUXDF9fR5uPPPP1fP7PNZvQRtI
 dHf.2UlbcZpC.c9h0E.8z,U.EEE.E1U.M3c1,.,.x.Umr,6.222.o.6.K,.,.x..U...B.0UJU
 ha.yzayIWKJaKIE8okCqpSKtyquuKmin4WGJqEs8rrCqmCrt0mS0GECLu4KtGLEiLEWmtartCq
 kmKq0Gy0mouKuKKt8ru0LuaGEiLEiLEaKrG5EEmLE.kj8rmGru8Lr0my0mh0mtmqmKKs0mv4qp
 Kqu0LECrlWqmGqumqm0mi0my0GtKKuK56R9fQPPORPMdPN,d9Pc8HN1PMGP8ITeId86bONZfRH
 vM9vQN76HePN76NuPD99,7FHPMNvPDvCPM1dOKVOFPM0HME59RHvPR96v76VuHHeHdOFZ86duH
 ,dI9uETeI786FtI9fQUiAcXZidlIqk2akWuIWin4ak2qk2aUqhgiZix2Y,JeGBcN3Ym2aUwd43
 Y13d,JevgV7AV7AVBEe8rkuqtaKuaqruKEcI9uEM1HM0HsQdPMdPNp76HeHdOFDOFZuCP.9fR9
 fPeHEKIvKKrQbBA,uqmWLueHEaIb.kWu2M15uHRuId86PM0dPNZPP.v7637R9fQP1IYv2244qH
 E8mtGrk8bWQbUQitRCkS00nvQ513tC,NOR1Z1,ND,louKuK4c6r76b9PkS0WnZhZhA3tC,tR1v
 OkSsR1vO9XWQbBsQ59O91g5CrlWqmUWQ5ZPNd1qHE8GtKKuK53tC,NOIiZZC22AB85c6gVBAVd
 phdZiUgbUgZlQbUYiZJC,ND,NCnNCr76fvQ9fQZORRfPHfPD96v76VtC,tO9fQRPNNfIffPR1M
 Ar761vQNPN9HEcAr76AgYBjIxhGhii3Yx2YnQbBAVBAVC3YxMAVtCPM0PcJ1eIPM0b9R..ak4a
 kmO5e1kRk2CLueHE4Id83uIEyIX0Ge8rku4kRqk2uKR0mYu2k4qEc8pbCoWGoe8pW0GdKqkGqR
 qEVKoXaIbqk2aIrumdGLtaKrSKI0mmOrmuaUAZvgV3pd23YGhgVVB28.0mWqqoGrRqEV.Goo4K
 qc9b8OTvRb8R1nuCLI0mmO5.MFPPOM1.668LtyKtWGECLR0mU83wd43Y1VUAZvgV0h6EayqnuG
 auqRqk2morsIdfQUWgcs3iZRgohgY3YWQZnRZWoZUocjhii763t89fR91MFEt85rN1HM1VeI.A
 ceQbBIc3,HePRtHVPNRvCPMGB86HePR7FTfP996d8G9eHPM0ZON19NPMFR8Fr76PMGB869fR91
 vltGrk66d8G909OPH9RAVGhAiX7we6BdAhcU2Z7phi.H76B76FNNhPNs6,7R9Xd,H767uHPM0H
 MGB86.vVtRC66d8Gk2akWq4M098HbOGB8691kouKuK466d8G.q4UANFPM0HM08LtyackwC5s8,
 d6,tPZ96376L76HfP.AZvM0HEbM1IeZ,we6,...CWmhgoVd2Y2x7AVL,..2ZZpCMD.kIwdG3Yc
 gA.cQ91AZUY6k2a2.UZ,0Ge.A,9OP.akWm2k2gch,M09eH.HcIM1HM0K2U7FIaIr.UZ,sQNPNA
 ZUYe6,AV3hB.HcIsCk2a2...sR1vOM8,,U7MF.A,Z0U7MG...UnRgc,aGEGJY.a.90U7MFN0M0
 gcm,QAUUAZvg,A,9eH.HEd.M098H.HkW85sR110mIi1A,Z0P.HMFR0EaA7a2EE.M09eQUnZhZF
 EiGE.EtK42YdQ5M0Z0r,KIbM0HM0HM1HM090PU7p6.A3.Um,aGEGJY.Koq.KIag6A,Z1IiZZC2
 2UC,83kWu2Ad4,...d1..gch,KIa.9eQUohgm,2YdU3p7gcAR8gcm,CLu44a090akmO5Ibx2YW
 IZeIZeIYvgV7gch,9eH0mUin4qEc.EY4KrGKqKqWOrmsC82M090AV7ltGrkGrm0mSABH9RGJYU
 7A7K42YxsQdHt6J.HsQ44enS0muCrm.sCPM0HMFN0ak2KIt..HV7A,RmRMFNmYsQYCqXpRC.2Y
 I3d3,H0.G5.GJY66PM0Hkt.pVohAqk2akWm22ZZ,sQn1AZUw7.koYCUd6JM1A,.QhZJCMRUBAV
 7U3V7gcm,G5a4QZW2YjJCimtartC4iGF0mrUdphohAEEam4ak2KIbgV7gcANGQCkSQhZ,.00U7
 ,.b9PEeW2M0b1I54qtm4qk2gcA,91Et.GJYK2..f1.q...AB.Y8U3,..Z1..K2akW85sQN1Ld6
 ,,.UfIYU.Et.am4aU3p7U7lt.vlkC522.H0.S5Ee.akt.pVmhgVNSUBAV7gcANFM09eQUr,A3E
 bQ5kY.MD85.0GeW2MG.ktC4UI,AVn,e1L1..mY3,9eQUnRA.H,o7PUCtCK2,7G1fP.Q5P..8IJ
 in482kt.MORPOin4Adi,M0HeFa2EE.aEdkRM0j0.kIUnZiVVX2YoVd2Y2,H6G1fP71.HUG,MFQ
 5HMFR09WUIcvgVB..FNMp761uMdPOAZUYcjRbBIc3,Wok..83kY68H0...Ee.HsI9fQh1YcjZd
 VZiZJic2YVZZUQeZ,cPTvR,N8rN1K2r,0GWyqRgVE,U1JZvgVKBcGlkeHE42sC82EbKofWGE4K
 EamRsQd1,dC.Er.EXA7UU.AVG,AV7FI.A3.s6..AVH,EW.Z1.Ui,M09WvM090K2,tErN1PM19e
 H7GV4ql.oZBgV0IcVRgf,MEPM13cE.EVqk48..sEPM1b9R1fQqktartC4qkouKuK4M1HfP85M1
 b9P9XBwiVRhZl4CrlW4M1ZPNdPRkwC5.91..Et.YB...CLqK4..Um,MS.MN.cQ.m4....AD.gA
 ...Z1Eq...sQ...cQ.a5.K4.85Ug,....n1.91..Et.YB...C5...85Ut,UZ,Um,6P....kw.k
 m...IC.N1..Un,..Um,MS.MN.cQ.m4....AD.gA...Z1Eq...sQ...cQ.a5.K4.85Ug,....n1
 .91..Et.YB...C5...85Ut,UZ,Um,6P....kw.km...IC.N1..Un,..Um,MS.MN.cQ.m4....A
 D.gA...Z1Eq...sQ...cQ.dPNZPPHnkcUXDJ9X1xhiZimxhgZhZJinpZH7N58RZ9P7ONbvM,Mw
 d0.UiQcjpho,YcZRiX3.5011.85...CLL.U2V.Iy2U.UIE.0.aU.2U.2..AU0CyIVGhighgmRi
 iQ88pum470,Mwd0UnpZGhighA70,cw5.0.L3D.53,6.C6.QiiQ8CJuaLqKKWKqt2Ul1.RVtZBE
 .8z1U..2,I9,U.E,,.RNEd1YCG20U2U...GW.6.16.6.665hK2.,sFnQ.ytrM.M.6.,U0KyB.,
 ..e,2.A.c8.2UEC.6..mEw7169rwKiEw3c0Cy2xBqqmU1xB..8F.E..U6U..HE.6UjuQmmECe.
 az86Utj00khWagaYM0r91...
 --- end of encoding ---


> -----Original Message-----
> From: Bob Walkden [mailto:bob{([at]})nowhere.xy
> Sent: 03 December 2009 23:25
> To: 'BlackBox'
> Subject: RE: [BLACKBOX] [Fwd: Re: [BLACKBOX] Long running
> command and Dialog.ShowStatus]
>
> [...]
> >
> > 2) But the logic involved in using Actions can be very
> awkward. If the
> > task is a simple loop, as in this example, it is not too
> bad. But if
> > the task is several nested loops, and you need to be able
> to interrupt
> > it partly through the inner loop, it is less easy (but
> possible, and
> > sometimes necessary).
> >

> > Surely these problems (apparent hanging of BlackBox, and
> the fact that
> > Ctrl-Break does not work as advertised) can and should be
> solved at a
> > lower level than imposing lots of awkward logic into every
> > application?
>
> It's always possible to rewrite a program which has inner
> loops into the equivalent program with a single loop, without
> resorting to awkward logic.
>
> Structured programming encouraged us to design our algorithms
> to match our data structures, and this close match leads
> naturally to nested loops. However, any design based on say
> EBNF can be transformed straightforwardly into the equivalent
> design using statecharts. Statecharts (and more particularly
> state tables) lead quite naturally to a structure containing
> only one loop, with the state variable & current input event
> determining what happens next.
>
> Although I haven't used Actions for anything serious, I think
> the approach to designing a bit of software for it is to
> treat it as an event-driven design based on statecharts. This
> would also work with the original ETH Oberon keyboard / mouse
> / network loop and seems appropriate for a single-user system
> without the overhead of threads or the need for statements
> which let the program breathe, and suchlike.
>
> Bob


----
To unsubscribe, send a message with body "SIGNOFF BLACKBOX" to LISTSERV{([at]})nowhere.xy----boundary-LibPST-iamunique-1054093884_-_-
Content-type: application/rtf
Content-transfer-encoding: base64
Content-Disposition: attachment; filename="rtf-body.rtf"
e1xydGYxXGFuc2lcYW5zaWNwZzEyNTJcZnJvbXRleHQgXGRlZmYwe1xmb250dGJsDQp7XGYwXGZz
d2lzcyBBcmlhbDt9DQp7XGYxXGZtb2Rlcm4gQ291cmllciBOZXc7fQ0Ke1xmMlxmbmlsXGZjaGFy
c2V0MiBTeW1ib2w7fQ0Ke1xmM1xmbW9kZXJuXGZjaGFyc2V0MCBDb3VyaWVyIE5ldzt9fQ0Ke1xj
b2xvcnRibFxyZWQwXGdyZWVuMFxibHVlMDtccmVkMFxncmVlbjBcYmx1ZTI1NTt9DQpcdWMxXHBh
cmRccGxhaW5cZGVmdGFiMzYwIFxmMFxmczIwID4gSXQncyBhbHdheXMgcG9zc2libGUgdG8gcmV3
cml0ZSBhIHByb2dyYW0gd2hpY2ggaGFzIGlubmVyIFxwYXINCj4gbG9vcHMgaW50byB0aGUgZXF1
aXZhbGVudCBwcm9ncmFtIHdpdGggYSBzaW5nbGUgbG9vcCwgd2l0aG91dCBccGFyDQo+IHJlc29y
dGluZyB0byBhd2t3YXJkIGxvZ2ljLiBccGFyDQpccGFyDQpJIHRob3VnaHQgaXQgbWlnaHQgYmUg
b2Ygc29tZSBpbnRlcmVzdCB0byBwZW9wbGUgZm9yIG1lIHRvIGJhY2sgdXAgbXkgY2xhaW1ccGFy
DQp3aXRoIGFuIGV4YW1wbGUuIENvaW5jaWRlbnRhbGx5IEkgaGF2ZSBiZWVuIHJlYWRpbmcgIlRo
ZSBEZXNpZ24gb2YgdGhlIFVOSVhccGFyDQpPcGVyYXRpbmcgU3lzdGVtIiBieSBNYXVyaWNlIEog
QmFjaCwgc28gSSBoYXZlIHVzZWQgaGlzIHN0YXRlIHRyYW5zaXRpb25ccGFyDQpkaWFncmFtIChG
aWd1cmUgMi42IGluIHRoZSBib29rKSBvZiB1bml4IHByb2Nlc3Mgc3RhdGVzIGFuZCB0cmFuc2l0
aW9ucyB0b1xwYXINCmlsbHVzdHJhdGUgbXkgcG9pbnQuIE15IHZlcnNpb24gb2YgdGhlIFNURCBp
cyBhdFxwYXINCjxodHRwOi8vd3d3LndlYi1vcHRpb25zLmNvbS9Vbml4UHJvY2Vzc1NURC5odG0+
LiBUaGUgZXF1aXZhbGVudCBzdGF0ZSB0YWJsZVxwYXINCmlzIGF0IDxodHRwOi8vd3d3LndlYi1v
cHRpb25zLmNvbS9Qcm9jZXNzU1RULmh0bT4uXHBhcg0KXHBhcg0KVGhlIGF0dGFjaGVkIG1vZHVs
ZSBjb250YWlucyAzIHByb2NlZHVyZXMgd2hpY2ggYXJlIGVzc2VudGlhbGx5IHN5bnRheFxwYXIN
CmFuYWx5c2VycyBmb3IgQmFjaCdzIFNURC5ccGFyDQpccGFyDQpCYWNrZ3JvdW5kLkEgaXMgYmFz
ZWQgb24gbXkgZWJuZiB2ZXJzaW9uIG9mIHRoZSBTVEQgd2hpY2ggSSBoYXZlIGNvZGVkXHBhcg0K
Zm9sbG93aW5nIHRoZSB1c3VhbCBwcmluY2lwbGVzIGZvciBjb2RpbmcgZnJvbSBlYm5mLiBJdCBj
b250YWlucyBuZXN0ZWRccGFyDQpsb29wcyBhbmQgY29uZGl0aW9ucyBhbmQgd291bGQgYmUgZGlm
ZmljdWx0IHRvIHVzZSBlZmZlY3RpdmVseSB3aXRoXHBhcg0KU2VydmljZXMuRG9MYXRlci4gXHBh
cg0KXHBhcg0KQmFja2dyb3VuZC5CIGlzIGFuIGVxdWl2YWxlbnQgYmFzZWQgb24gdGhlIFNURCBh
bmQgZG9lcyBub3QgdXNlXHBhcg0KU2VydmljZXMuRG9MYXRlci4gSXQgc2hvd3MgdGhhdCB0aGUg
c2FtZSBzdHJ1Y3R1cmUgY2FuIGJlIGNvZGVkIHNpbXBseSBhbmRccGFyDQplZmZpY2llbnRseSB3
aXRob3V0IG5lc3RlZCBsb29wcyAtIGp1c3Qgb25lIG91dGVyIGxvb3AuXHBhcg0KXHBhcg0KQmFj
a2dyb3VuZC5DIGlzIGEgcmVmaW5lbWVudCBvZiB0aGUgU1REIHZlcnNpb24gd2hpY2ggdXNlcyBT
ZXJ2aWNlcy5Eb1xwYXINCkxhdGVyLiBJdCBzaG93cyBob3cgZWFzeSBpdCBpcyB0byBjb252ZXJ0
IGEgU1RELWJhc2VkIGFsZ29yaXRobSB0byB1c2VccGFyDQpTZXJ2aWNlLkRvTGF0ZXIgYW5kIEkg
dGhpbmsgaXQgc2hvd3MgdGhhdCBpZiB5b3UgbmVlZCB0byB3cml0ZSBhXHBhcg0KbG9uZy1ydW5u
aW5nIHByb2Nlc3MgZm9yIEJCIG9yIEVUSCBPYmVyb24gaXQgaXMgYmV0dGVyIHRvIGRlc2lnblxw
YXINCnNwZWNpZmljYWxseSBmb3IgaXQsIHVzaW5nIHRoZSBzdGF0ZS10cmFuc2l0aW9uIG1ldGhv
ZCByYXRoZXIgdGhhbiB0aGUgbW9yZVxwYXINCldpcnRoaWFuIG1ldGhvZCBiYXNlZCBvbiBFQk5G
LlxwYXINClxwYXINCk5vdGUgaG93ZXZlciB0aGF0IFNlcnZpY2VzLkRvTGF0ZXIgY2FycmllcyBh
IHZlcnkgaGVhdnkgcGVyZm9ybWFuY2UgcGVuYWx0eSFccGFyDQpccGFyDQpCb2JccGFyDQpccGFy
DQpTdGRDb2Rlci5EZWNvZGUgLi4sLCAuLldQLC4uLjNRdzd1UDVQUlBQTlI5UmJmOWI4Ujc5RlR2
TWYxR29tQ3JsQXkyeGhYLENiMnhccGFyDQogaFhoQzZGVTF4aGlaaVZCaGloZ21SaWlvZWRoZ3Ja
Y1pSaVhGZmFxbVNydHVHZmE0NzAwemRHcnI4cm1DTExDSnV5S3RZY1pSaVhccGFyDQogNy4yLnMs
c05oLjBrLDVUV3lxbC5ibmF5S21LS3FHb21DNVh6RVQxLlB1UC5NSFQ5TjludHVtYVUyLENKdXlL
dFFDOThQOVBQN09ccGFyDQogTmJYbWIuMi5ncUprMmtLTCwsNi4sVTA4Sjk5U2RmSkhQTmp2UUNK
dUdLZmFxbVk2TXdkT05sMVFDaDA3MDhULFUuLncud2VKLixccGFyDQogc1VHcG1XYkJ4aFloQWJu
ZE1IVDlOWTZNdy5zUXEyWTZjd0IuMC4xdjJ3LEFmSEUuMEUuRTU0Ljg2LlFDMThSZGZRSGZNZjlS
OXZccGFyDQogUTdPTmIxNy4sLmIsMC5wLjAuNC4wRUoyd0FDLjYuVlEua3VxLjIudUZxOFVhNVYw
Y1VYREY5ZlI1dVBQUFAxZlA3UE5adlFSdElccGFyDQogZEhmLjJVbGJjWnBDLmM5aDBFLjh6LFUu
RUVFLkUxVS5NM2MxLC4sLnguVW1yLDYuMjIyLm8uNi5LLC4sLnguLlUuLi5CLjBVSlVccGFyDQog
aGEueXpheUlXS0phS0lFOG9rQ3FwU0t0eXF1dUttaW40V0dKcUVzOHJyQ3FtQ3J0MG1TMEdFQ0x1
NEt0R0xFaUxFV210YXJ0Q3FccGFyDQoga21LcTBHeTBtb3VLdUtLdDhydTBMdWFHRWlMRWlMRWFL
ckc1RUVtTEUua2o4cm1HcnU4THIwbXkwbWgwbXRtcW1LS3MwbXY0cXBccGFyDQogS3F1MExFQ3Js
V3FtR3F1bXFtMG1pMG15MEd0S0t1SzU2UjlmUVBQT1JQTWRQTixkOVBjOEhOMVBNR1A4SVRlSWQ4
NmJPTlpmUkhccGFyDQogdk05dlFONzZIZVBONzZOdVBEOTksN0ZIUE1OdlBEdkNQTTFkT0tWT0ZQ
TTBITUU1OVJIdlBSOTZ2NzZWdUhIZUhkT0ZaODZkdUhccGFyDQogLGRJOXVFVGVJNzg2RnRJOWZR
VWlBY1haaWRsSXFrMmFrV3VJV2luNGFrMnFrMmFVcWhnaVppeDJZLEplR0JjTjNZbTJhVXdkNDNc
cGFyDQogWTEzZCxKZXZnVjdBVjdBVkJFZThya3VxdGFLdWFxcnVLRWNJOXVFTTFITTBIc1FkUE1k
UE5wNzZIZUhkT0ZET0ZadUNQLjlmUjlccGFyDQogZlBlSEVLSXZLS3JRYkJBLHVxbVdMdWVIRWFJ
Yi5rV3UyTTE1dUhSdUlkODZQTTBkUE5aUFAudjc2MzdSOWZRUDFJWXYyMjQ0cUhccGFyDQogRTht
dEdyazhiV1FiVVFpdFJDa1MwMG52UTUxM3RDLE5PUjFaMSxORCxsb3VLdUs0YzZyNzZiOVBrUzBX
blpoWmhBM3RDLHRSMXZccGFyDQogT2tTc1Ixdk85WFdRYkJzUTU5TzkxZzVDcmxXcW1VV1E1WlBO
ZDFxSEU4R3RLS3VLNTN0QyxOT0lpWlpDMjJBQjg1YzZnVkJBVmRccGFyDQogcGhkWmlVZ2JVZ1ps
UWJVWWlaSkMsTkQsTkNuTkNyNzZmdlE5ZlFaT1JSZlBIZlBEOTZ2NzZWdEMsdE85ZlFSUE5OZklm
ZlBSMU1ccGFyDQogQXI3NjF2UU5QTjlIRWNBcjc2QWdZQmpJeGhHaGlpM1l4MlluUWJCQVZCQVZD
M1l4TUFWdENQTTBQY0oxZUlQTTBiOVIuLmFrNGFccGFyDQoga21PNWUxa1JrMkNMdWVIRTRJZDgz
dUlFeUlYMEdlOHJrdTRrUnFrMnVLUjBtWXUyazRxRWM4cGJDb1dHb2U4cFcwR2RLcWtHcVJccGFy
DQogcUVWS29YYUlicWsyYUlydW1kR0x0YUtyU0tJMG1tT3JtdWFVQVp2Z1YzcGQyM1lHaGdWVkIy
OC4wbVdxcW9HclJxRVYuR29vNEtccGFyDQogcWM5YjhPVHZSYjhSMW51Q0xJMG1tTzUuTUZQUE9N
MS42NjhMdHlLdFdHRUNMUjBtVTgzd2Q0M1kxVlVBWnZnVjBoNkVheXFudUdccGFyDQogYXVxUnFr
Mm1vcnNJZGZRVVdnY3MzaVpSZ29oZ1kzWVdRWm5SWldvWlVvY2poaWk3NjN0ODlmUjkxTUZFdDg1
ck4xSE0xVmVJLkFccGFyDQogY2VRYkJJYzMsSGVQUnRIVlBOUnZDUE1HQjg2SGVQUjdGVGZQOTk2
ZDhHOWVIUE0wWk9OMTlOUE1GUjhGcjc2UE1HQjg2OWZSOTFccGFyDQogdmx0R3JrNjZkOEc5MDlP
UEg5UkFWR2hBaVg3d2U2QmRBaGNVMlo3cGhpLkg3NkI3NkZOTmhQTnM2LDdSOVhkLEg3Njd1SFBN
MEhccGFyDQogTUdCODYudlZ0UkM2NmQ4R2syYWtXcTRNMDk4SGJPR0I4Njkxa291S3VLNDY2ZDhH
LnE0VUFORlBNMEhNMDhMdHlhY2t3QzVzOCxccGFyDQogZDYsdFBaOTYzNzZMNzZIZlAuQVp2TTBI
RWJNMUllWix3ZTYsLi4uQ1dtaGdvVmQyWTJ4N0FWTCwuLjJaWnBDTUQua0l3ZEczWWNccGFyDQog
Z0EuY1E5MUFaVVk2azJhMi5VWiwwR2UuQSw5T1AuYWtXbTJrMmdjaCxNMDllSC5IY0lNMUhNMEsy
VTdGSWFJci5VWixzUU5QTkFccGFyDQogWlVZZTYsQVYzaEIuSGNJc0NrMmEyLi4uc1Ixdk9NOCws
VTdNRi5BLFowVTdNRy4uLlVuUmdjLGFHRUdKWS5hLjkwVTdNRk4wTTBccGFyDQogZ2NtLFFBVVVB
WnZnLEEsOWVILkhFZC5NMDk4SC5Ia1c4NXNSMTEwbUlpMUEsWjBQLkhNRlIwRWFBN2EyRUUuTTA5
ZVFVblpoWkZccGFyDQogRWlHRS5FdEs0MllkUTVNMFowcixLSWJNMEhNMEhNMUhNMDkwUFU3cDYu
QTMuVW0sYUdFR0pZLktvcS5LSWFnNkEsWjFJaVpaQzJccGFyDQogMlVDLDgza1d1MkFkNCwuLi5k
MS4uZ2NoLEtJYS45ZVFVb2hnbSwyWWRVM3A3Z2NBUjhnY20sQ0x1NDRhMDkwYWttTzVJYngyWVdc
cGFyDQogSVplSVplSVl2Z1Y3Z2NoLDllSDBtVWluNHFFYy5FWTRLckdLcUtxV09ybXNDODJNMDkw
QVY3bHRHcmtHcm0wbVNBQkg5UkdKWVVccGFyDQogN0E3SzQyWXhzUWRIdDZKLkhzUTQ0ZW5TMG11
Q3JtLnNDUE0wSE1GTjBhazJLSXQuLkhWN0EsUm1STUZObVlzUVlDcVhwUkMuMllccGFyDQogSTNk
MyxIMC5HNS5HSlk2NlBNMEhrdC5wVm9oQXFrMmFrV20yMlpaLHNRbjFBWlV3Ny5rb1lDVWQ2Sk0x
QSwuUWhaSkNNUlVCQVZccGFyDQogN1UzVjdnY20sRzVhNFFaVzJZakpDaW10YXJ0QzRpR0YwbXJV
ZHBob2hBRUVhbTRhazJLSWJnVjdnY0FOR1FDa1NRaFosLjAwVTdccGFyDQogLC5iOVBFZVcyTTBi
MUk1NHF0bTRxazJnY0EsOTFFdC5HSllLMi4uZjEucS4uLkFCLlk4VTMsLi5aMS4uSzJha1c4NXNR
TjFMZDZccGFyDQogLCwuVWZJWVUuRXQuYW00YVUzcDdVN2x0LnZsa0M1MjIuSDAuUzVFZS5ha3Qu
cFZtaGdWTlNVQkFWN2djQU5GTTA5ZVFVcixBM0VccGFyDQogYlE1a1kuTUQ4NS4wR2VXMk1HLmt0
QzRVSSxBVm4sZTFMMS4ubVkzLDllUVVuUkEuSCxvN1BVQ3RDSzIsN0cxZlAuUTVQLi44SUpccGFy
DQogaW40ODJrdC5NT1JQT2luNEFkaSxNMEhlRmEyRUUuYUVka1JNMGowLmtJVW5aaVZWWDJZb1Zk
MlkyLEg2RzFmUDcxLkhVRyxNRlFccGFyDQogNUhNRlIwOVdVSWN2Z1ZCLi5GTk1wNzYxdU1kUE9B
WlVZY2pSYkJJYzMsV29rLi44M2tZNjhIMC4uLkVlLkhzSTlmUWgxWWNqWmRccGFyDQogVlppWkpp
YzJZVlpaVVFlWixjUFR2UixOOHJOMUsyciwwR1d5cVJnVkUsVTFKWnZnVktCY0dsa2VIRTQyc0M4
MkViS29mV0dFNEtccGFyDQogRWFtUnNRZDEsZEMuRXIuRVhBN1VVLkFWRyxBVjdGSS5BMy5zNi4u
QVZILEVXLloxLlVpLE0wOVd2TTA5MEsyLHRFck4xUE0xOWVccGFyDQogSDdHVjRxbC5vWkJnVjBJ
Y1ZSZ2YsTUVQTTEzY0UuRVZxazQ4Li5zRVBNMWI5UjFmUXFrdGFydEM0cWtvdUt1SzRNMUhmUDg1
TTFccGFyDQogYjlQOVhCd2lWUmhabDRDcmxXNE0xWlBOZFBSa3dDNS45MS4uRXQuWUIuLi5DTHFL
NC4uVW0sTVMuTU4uY1EubTQuLi4uQUQuZ0FccGFyDQogLi4uWjFFcS4uLnNRLi4uY1EuYTUuSzQu
ODVVZywuLi4ubjEuOTEuLkV0LllCLi4uQzUuLi44NVV0LFVaLFVtLDZQLi4uLmt3LmtccGFyDQog
bS4uLklDLk4xLi5VbiwuLlVtLE1TLk1OLmNRLm00Li4uLkFELmdBLi4uWjFFcS4uLnNRLi4uY1Eu
YTUuSzQuODVVZywuLi4ubjFccGFyDQogLjkxLi5FdC5ZQi4uLkM1Li4uODVVdCxVWixVbSw2UC4u
Li5rdy5rbS4uLklDLk4xLi5VbiwuLlVtLE1TLk1OLmNRLm00Li4uLkFccGFyDQogRC5nQS4uLlox
RXEuLi5zUS4uLmNRLmRQTlpQUEhua2NVWERKOVgxeGhpWmlteGhnWmhaSmlucFpIN041OFJaOVA3
T05idk0sTXdccGFyDQogZDAuVWlRY2pwaG8sWWNaUmlYMy41MDExLjg1Li4uQ0xMLlUyVi5JeTJV
LlVJRS4wLmFVLjJVLjIuLkFVMEN5SVZHaGlnaGdtUmlccGFyDQogaVE4OHB1bTQ3MCxNd2QwVW5w
WkdoaWdoQTcwLGN3NS4wLkwzRC41Myw2LkM2LlFpaVE4Q0p1YUxxS0tXS3F0MlVsMS5SVnRaQkVc
cGFyDQogLjh6MVUuLjIsSTksVS5FLCwuUk5FZDFZQ0cyMFUyVS4uLkdXLjYuMTYuNi42NjVoSzIu
LHNGblEueXRyTS5NLjYuLFUwS3lCLixccGFyDQogLi5lLDIuQS5jOC4yVUVDLjYuLm1FdzcxNjly
d0tpRXczYzBDeTJ4QnFxbVUxeEIuLjhGLkUuLlU2VS4uSEUuNlVqdVFtbUVDZS5ccGFyDQogYXo4
NlV0ajAwa2hXYWdhWU0wcjkxLi4uXHBhcg0KIC0tLSBlbmQgb2YgZW5jb2RpbmcgLS0tXHBhcg0K
XHBhcg0KXHBhcg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLVxwYXINCj4gRnJvbTogQm9i
IFdhbGtkZW4gW21haWx0bzpib2JAd2ViLW9wdGlvbnMuY29tXSBccGFyDQo+IFNlbnQ6IDAzIERl
Y2VtYmVyIDIwMDkgMjM6MjVccGFyDQo+IFRvOiAnQmxhY2tCb3gnXHBhcg0KPiBTdWJqZWN0OiBS
RTogW0JMQUNLQk9YXSBbRndkOiBSZTogW0JMQUNLQk9YXSBMb25nIHJ1bm5pbmcgXHBhcg0KPiBj
b21tYW5kIGFuZCBEaWFsb2cuU2hvd1N0YXR1c11ccGFyDQo+IFxwYXINCj4gWy4uLl1ccGFyDQo+
ID4gXHBhcg0KPiA+IDIpIEJ1dCB0aGUgbG9naWMgaW52b2x2ZWQgaW4gdXNpbmcgQWN0aW9ucyBj
YW4gYmUgdmVyeSBccGFyDQo+IGF3a3dhcmQuIElmIHRoZSBccGFyDQo+ID4gdGFzayBpcyBhIHNp
bXBsZSBsb29wLCBhcyBpbiB0aGlzIGV4YW1wbGUsIGl0IGlzIG5vdCB0b28gXHBhcg0KPiBiYWQu
IEJ1dCBpZiBccGFyDQo+ID4gdGhlIHRhc2sgaXMgc2V2ZXJhbCBuZXN0ZWQgbG9vcHMsIGFuZCB5
b3UgbmVlZCB0byBiZSBhYmxlIFxwYXINCj4gdG8gaW50ZXJydXB0IFxwYXINCj4gPiBpdCBwYXJ0
bHkgdGhyb3VnaCB0aGUgaW5uZXIgbG9vcCwgaXQgaXMgbGVzcyBlYXN5IChidXQgXHBhcg0KPiBw
b3NzaWJsZSwgYW5kIFxwYXINCj4gPiBzb21ldGltZXMgbmVjZXNzYXJ5KS5ccGFyDQo+ID4gXHBh
cg0KPiA+IFN1cmVseSB0aGVzZSBwcm9ibGVtcyAoYXBwYXJlbnQgaGFuZ2luZyBvZiBCbGFja0Jv
eCwgYW5kIFxwYXINCj4gdGhlIGZhY3QgdGhhdCBccGFyDQo+ID4gQ3RybC1CcmVhayBkb2VzIG5v
dCB3b3JrIGFzIGFkdmVydGlzZWQpIGNhbiBhbmQgc2hvdWxkIGJlIFxwYXINCj4gc29sdmVkIGF0
IGEgXHBhcg0KPiA+IGxvd2VyIGxldmVsIHRoYW4gaW1wb3NpbmcgbG90cyBvZiBhd2t3YXJkIGxv
Z2ljIGludG8gZXZlcnkgXHBhcg0KPiA+IGFwcGxpY2F0aW9uP1xwYXINCj4gXHBhcg0KPiBJdCdz
IGFsd2F5cyBwb3NzaWJsZSB0byByZXdyaXRlIGEgcHJvZ3JhbSB3aGljaCBoYXMgaW5uZXIgXHBh
cg0KPiBsb29wcyBpbnRvIHRoZSBlcXVpdmFsZW50IHByb2dyYW0gd2l0aCBhIHNpbmdsZSBsb29w
LCB3aXRob3V0IFxwYXINCj4gcmVzb3J0aW5nIHRvIGF3a3dhcmQgbG9naWMuIFxwYXINCj4gXHBh
cg0KPiBTdHJ1Y3R1cmVkIHByb2dyYW1taW5nIGVuY291cmFnZWQgdXMgdG8gZGVzaWduIG91ciBh
bGdvcml0aG1zIFxwYXINCj4gdG8gbWF0Y2ggb3VyIGRhdGEgc3RydWN0dXJlcywgYW5kIHRoaXMg
Y2xvc2UgbWF0Y2ggbGVhZHMgXHBhcg0KPiBuYXR1cmFsbHkgdG8gbmVzdGVkIGxvb3BzLiBIb3dl
dmVyLCBhbnkgZGVzaWduIGJhc2VkIG9uIHNheSBccGFyDQo+IEVCTkYgY2FuIGJlIHRyYW5zZm9y
bWVkIHN0cmFpZ2h0Zm9yd2FyZGx5IGludG8gdGhlIGVxdWl2YWxlbnQgXHBhcg0KPiBkZXNpZ24g
dXNpbmcgc3RhdGVjaGFydHMuIFN0YXRlY2hhcnRzIChhbmQgbW9yZSBwYXJ0aWN1bGFybHkgXHBh
cg0KPiBzdGF0ZSB0YWJsZXMpIGxlYWQgcXVpdGUgbmF0dXJhbGx5IHRvIGEgc3RydWN0dXJlIGNv
bnRhaW5pbmcgXHBhcg0KPiBvbmx5IG9uZSBsb29wLCB3aXRoIHRoZSBzdGF0ZSB2YXJpYWJsZSAm
IGN1cnJlbnQgaW5wdXQgZXZlbnQgXHBhcg0KPiBkZXRlcm1pbmluZyB3aGF0IGhhcHBlbnMgbmV4
dC4gXHBhcg0KPiBccGFyDQo+IEFsdGhvdWdoIEkgaGF2ZW4ndCB1c2VkIEFjdGlvbnMgZm9yIGFu
eXRoaW5nIHNlcmlvdXMsIEkgdGhpbmsgXHBhcg0KPiB0aGUgYXBwcm9hY2ggdG8gZGVzaWduaW5n
IGEgYml0IG9mIHNvZnR3YXJlIGZvciBpdCBpcyB0byBccGFyDQo+IHRyZWF0IGl0IGFzIGFuIGV2
ZW50LWRyaXZlbiBkZXNpZ24gYmFzZWQgb24gc3RhdGVjaGFydHMuIFRoaXMgXHBhcg0KPiB3b3Vs
ZCBhbHNvIHdvcmsgd2l0aCB0aGUgb3JpZ2luYWwgRVRIIE9iZXJvbiBrZXlib2FyZCAvIG1vdXNl
IFxwYXINCj4gLyBuZXR3b3JrIGxvb3AgYW5kIHNlZW1zIGFwcHJvcHJpYXRlIGZvciBhIHNpbmds
ZS11c2VyIHN5c3RlbSBccGFyDQo+IHdpdGhvdXQgdGhlIG92ZXJoZWFkIG9mIHRocmVhZHMgb3Ig
dGhlIG5lZWQgZm9yIHN0YXRlbWVudHMgXHBhcg0KPiB3aGljaCBsZXQgdGhlIHByb2dyYW0gYnJl
YXRoZSwgYW5kIHN1Y2hsaWtlLlxwYXINCj4gXHBhcg0KPiBCb2JccGFyDQpccGFyDQpccGFyDQot
LS0tXHBhcg0KVG8gdW5zdWJzY3JpYmUsIHNlbmQgYSBtZXNzYWdlIHdpdGggYm9keSAiU0lHTk9G
RiBCTEFDS0JPWCIgdG8gTElTVFNFUlZATElTVFMuT0JFUk9OLkNIfX0AdVEwZw==
----boundary-LibPST-iamunique-1054093884_-_---
Received on Sat Dec 05 2009 - 12:10:22 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:30:39 UTC