You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by Maksim Kashynski <ka...@gmail.com> on 2005/06/13 18:41:30 UTC

CForms-XUL project information

Hi Antonio, Helma, and all others!
Thank you for your remarks.
I have attached some documentation i've written concerning CForms-XUL.
Please take a look at it.
Thanks!
Maksim Kashynski 


begin 666 Cocoon CForms - XUL - proposal.html
M/&@R/D-&;W)M<R M(%A53"!F<F]N="UE;F0@<')O:F5C="!P<F]P;W-A;#PO
M:#(^#0H\:#,^4')O8FQE;2!O=F5R=FEE=SPO:#,^#0H-"CQP/D-O8V]O;B!#
M1F]R;7,@:7,@82!F<F%M97=O<FL@<')O=FED:6YG(&5A<WD@9F]R;2UH86YD
M;&EN9RX@270@9&5F:6YE<R!P;&%T9F]R;2UI;F1E<&5N9&5N="!F;W)M(&UO
M9&5L(&%N9"!P;&%T9F]R;2UD97!E;F1E;G0@9F]R;2!T96UP;&%T92!W:&EC
M:"!A<F4@=&AE;B!R96YD97)E9"!T;R!T87)G970@<&QA=&9O<FT@<F5P<F5S
M96YT871I;VXN(%1A<F=E="!P;&%T9F]R;2!C86X@8F4@86YY($=522!T;V]L
M:VET+B!#=7)R96YT;'D@;VYL>2!(5$U,(&ES('-U<'!O<G1E9"P@<V]M92!O
M=&AE<B!P;&%T9F]R;7,@87)E(&EN('!R;V=R97-S+CPO<#X-"CQP/DUO>FEL
M;&$@6%5,(&ES(%A-3"UB87-E9"!P;W=E<F9U;"!'54D@=&]O;&MI="!R=6YN
M:6YG('5N9&5R($=E8VMO(%)U;G1I;64@*&%L<V\@=&AE<F4@87)E(&]T:&5R
M(&5N9VEN97,I+B!)="!P<F]V:61E<R!E87-Y(&)U:6QD:6YG(&]F(')I8V@@
M8VQI96YT<RX@6%5,(&-O;G1A:6YS(&UA;GD@<')E9&5F:6YE9"!W:61G971S
M(&%S('=E;&P@87,@<W5P<&]R="!F;W(@=7-E<BUD969I;F5D(&]N97,N(%1H
M92!M;W-T('!R;VUI;F5N="!E>&%M<&QE<R!A<F4@36]Z:6QL82!S=6ET92P@
M1FER949O>"!A;F0@5&AU;F1E<F)I<F0N(%A53"!A<'!L:6-A=&EO;G,@87)E
M(&-O;7!L971E;'D@8W)O<W,M<&QA=&9O<FTN(%1H92!D979E;&]P;65N="!O
M9B!854PM8F%S960@87!P;&EC871I;VYS(&ES('9E<GD@<VEM:6QA<B!T;R!(
M5$U,+"!B96-A=7-E(&)O=&@@;&%N9W5A9V5S('5S92!$3TT@86YD($IA=F%3
M8W)I<'0@9F]R('5S97(@:6YT97)A8W1I;VXN/"]P/@T*/' ^061D:6YG(%A5
M3"!F<F]N="UE;F0@=&\@0T9O<FUS('=I;&P@;6%K92!I="!P;W-S:6)L92!T
M;R!B=6EL9"!M;W)E(&EN=&5R86-T:79E(&%P<&QI8V%T:6]N<R!W:71H($-O
M8V]O;BX@06QS;R!T:&ES('=I;&P@:&5L<"!#;V-O;VX@8V]M;75N:71Y('1O
M(&=E="!I;B!T;W5C:"!W:71H($UO>FEL;&$@8V]M;75N:71Y+B!4:&5S92!T
M=V\@9F%C=',@=VEL;"!N;R!D;W5B="!M86ME($-O8V]O;B!M;W)E('!O<'5L
M87(N/"]P/@T*#0H\:#,^4V]L=71I;VX\+V@S/@T*/' ^4')O=FED92!854P@
M<F5N9&5R:6YG(&9O<B!#1F]R;7,@=7-I;F<@97AI<W1I;F<@0T9O<FUS(&UO
M9&5L(&)Y(&%D9&EN9R!A<'!R;W!R:6%T92!T<F%N<V9O<FUA=&EO;G,L(&UO
M<W1L>2!84TP@<W1Y;&4@<VAE971S+B!4:&4@;F5W(%A53"!I;G1E<F9A8V4@
M=VEL;"!I;G1E<F%C="!W:71H('1H92!#1F]R;7,@<V5R=F5R(&UO9&5L(&%T
M(&QE87-T(&%S('=E;&P@=&AA;B!C=7)R96YT($A434P@:6UP;&5M96YT871I
M;VXN/"]P/@T*#0H\:#,^26UP;&5M96YT871I;VX@9&5T86EL<SPO:#,^#0H\
M<#Y#1F]R;7,@9G)A;65W;W)K(&-U<G)E;G1L>2!P<F]V:61E<R!S;W!H:7-T
M:6-A=&5D($A434P@<W5P<&]R="P@6%5,(&ES('-I;6EL87(@=&\@2%1-3"P@
M<V\@0T9O<FUS+5A53"!I;7!L96UE;G1A=&EO;B!I<R!A;'-O('-I;6EL87(N
M($ET(&1O97,@;F]T(&%F9F5C="!S97)V97(@;6]D96PL(&%N9"!D96%L<R!M
M;W-T;'D@=VET:"!4<F%N<V9O<FUE<G,N/"]P/@T*#0H\<#Y4:&4@8V]M;75N
M:6-A=&EO;B!M;V1E;"!I<R!D:69F97)E;G0@9G)O;2!(5$U,(&%P<')O86-H
M+B!!($A434P@<&%G92!I<R!A;'=A>7,@*'=I=&@@97AC97!T:6]N('1O(%A-
M3$AT='!297%U97-T*2!S=6)M:71T960@=&\@<V5R=F5R+"!A;F0@=&AE;B!A
M(&YE=R!I;G-T86YC92!O9B!P86=E(&ES(')E='5R;F5D('1O('5S97(N(%=I
M=&@@6%5,('-U8V@@8F5H879I;W(@;6%Y(&QO;VL@<75I=&4@=V5I<F0@EB!W
M:&5N(&$@<')O9W)A;2!W:6YD;W<@8VQO<V5S+"!A;F0@=&AE;B!O<&5N<R!B
M86-K(&%G86EN+B!3;R!T:&5R92!S:&]U;&0@8F4@86YO=&AE<BP@04I!6"UL
M:6ME(&%P<')O86-H+B \+W ^#0H-"CQP/E=H96X@=7-E<B!F:7)S="!R97%U
M97-T<R!A('!A9V4@EB!I;FET:6%L(')E;F1E<FEN9R!I<R!P97)F;W)M960@
M:6X@2%1-3"UL:6ME('=A>2P@97AC97!T(&9O<B!84TQ4+"!W:&EC:"!W:6QL
M(&)E(')E=W)I='1E;B!A;F5W('1O('!E<F9O<FT@1D0@=&\@6%5,('1R86YS
M9F]R;6%T:6]N+"!L:6ME(" \8V]D93XH9F0Z9FEE;&0I/"]C;V1E/B!T;R \
M8V]D93XH=&5X=&)O>"D\+V-O9&4^+"!C;VYT<F]L<R!A<F4@<&]P=6QA=&5D
M('=I=&@@:6YI=&EA;"!V86QU97,N/"]P/@T*/' ^5VAE;B!U<V5R(')E<75E
M<W1S('-O;64@86-T:6]N+"!R97-U;'1S(&]F('=H:6-H('-H;W5L9"!B92!D
M:7-P;&%Y960@:6X@=&AE('-A;64@9F]R;2P@9&%T82!F<F]M('1H92!F;W)M
M(&ES('-E;G0@=&\@=&AE('-E<G9E<BP@=&AE;B!F;W)M(')E8V5I=F5S(')E
M<W!O;G-E(&%N9"!R97!O<'5L871E<R!C;VYT<F]L<Y(@=F%L=65S+B!4:&ES
M(&EN=F]L=F5S(&%N(&%M;W5N="!O9B!*879A4V-R:7!T(&-O9&4@*'1H92!M
M86EN('-C<FEP=&EN9R!L86YG=6%G92!I;B!854PI('1O('!I8VL@87!P<F]P
M<FEA=&4@=F%L=65S(&9R;VT@<V5R=F5R(')E<W!O;G-E+"!A;F0@=&\@:61E
M;G1I9GD@=VAE=&AE<B!I="!I<R!T:&4@<V%M92!W:6YD;W<L(&]R(&$@;F5W
M(&]N92X\+W ^#0H-"CQP/E1H92!P:7!E;&EN92!R96UA:6YS('1H92!S86UE
M(&%S(&EN($A434P@8V%S92 H<V5E(#QA(&AR968](FAT=' Z+R]C;V-O;VXN
M87!A8VAE+F]R9R\R+C$O=7-E<F1O8W,O9F]R;7,O:6YD97@N:'1M;"(^:'1T
M<#HO+V-O8V]O;BYA<&%C:&4N;W)G+S(N,2]U<V5R9&]C<R]F;W)M<R]I;F1E
M>"YH=&UL/"]A/BDL(&5X8V5P="!F;W(@=&AE(&9O;&QO=VEN9RX@/"]P/@T*
M/&QI/E1H92!&;W)M(%1E;7!L871E(&ES(&$@6%5,(&9I;&4L(&9O<FUS('1A
M9W,@87)E('!L86-E9"!E>&%C=&QY('1H92!S86UE('=A>2!A<R!I;B!(5$U,
M+CPO;&D^#0H\;&D^5&AE(%1E;7!L871E(&%N9"!),3AN(%1R86YS9F]R;65R
M<R!A<F4@;6]S="!L:6ME;'D@=6YA9F9E8W1E9"P@8F5C875S92!D871A('1H
M97D@<')O8V5S<R!I<R!N;W0@<F5L871E9"!T;R!A;GD@<&QA=&9O<FTN($%L
M<V\@0FEN9&EN9R!A;F0@5F%L:61A=&EO;B!R96UA:6X@=&AE('-A;64N/"]L
M:3X-"CQL:3Y4;R!P97)F;W)M(&9I;F%L(')E;F1E<FEN9RP@8V]M<&QE=&5L
M>2!N97<@6%-,('-T>6QE('-H965T<R!W:6QL(&)E('=R:71T96XN(%1H97D@
M=VEL;"!P<F]V:61E(&9L97AI8FQE('1R86YS9F]R;6%T:6]N(&%N9"!S='EL
M:6YG+"!L:6ME(&9O<FUS+2HM<W1Y;&EN9RYX<VPN/"]L:3X-"CQL:3Y/=71P
M=70@:7,@<V5R:6%L:7IE9"!W:71H(')E9W5L87(@6$U,('-E<FEA;&EZ97(N
M/"]L:3X-"@T*/' ^5&\@:6UP<F]V92!P97)F;W)M86YC92!A;F]T:&5R('!I
M<&5L:6YE('=I;&P@8F4@861D960N($ET('=I;&P@9&5A;"!O;FQY('=I=&@@
M8F%R92!D871A(')E='5R;F5D('1O('1H92!E>&ES=&EN9R!F;W)M(&)Y('1H
M92!S97)V97(N($ET('=I;&P@<VAA<F4@=&AE(&1A=&$@;6]D96P@=VET:"!F
M:7)S="!P:7!E;&EN92P@8G5T('=I;&P@:&%V92!A;F]T:&5R('1E;7!L871E
M('1R86YS9F]R;65R('1O('!R;V1U8V4@9F]R;2!D871A('=I=&AO=70@86YY
@('5N;F5C97-S87)Y(%5)(&EN9F]R;6%T:6]N+CPO<#X`
`
end



Re: CForms-XUL project information

Posted by Claas Thiele <ct...@ct42.de>.
Hi,

I forgot one of the most important things:

An form element does not exists in XUL. Yes, it is still possible to 
embed HTML tags, but this is not the preferred way.
In XUL the request is send to the server as an http request independent 
of the page load using JavaScript. It is also possible to trigger a SOAP 
or XML-RPC call.

It means, it would be still possible to send an http request like an 
html form does. But what is coming back has nothing to do with the next 
page to be displayed. It should be something the JavaScript can process 
like a return code.

On the other hand it is more flexible. It is possible to trigger server 
side validation without any page update or showing the status of 
asynchronous processes runnning on the server.


Regards

Claas Thiele

Re: CForms-XUL project information

Posted by Claas Thiele <ct...@ct42.de>.
Hi,

I think the proposed way using XUL is more different from CForms 
principles than described in the proposal.

It is possible to use XUL in the way described in the proposal but this 
would not be the way the advantages of XUL can used.

XUL will separate style, layout description, and dynamic content by its own.

A XUL file is the layout description and will normally remain static, 
can be cached by the client therefore it will be loaded only once on 
application startup.

Styling is done using CSS in a more cleaner and powerful way as it is 
known for HTML.

Dynamic content is sent to the client as RDF and weaved in using XUL 
templates. Dynamic content is requested from the server for a widget, 
not for a page. So XUL is comparable to an HTML application using 
iFrames and layers.

For i18n XML entities are used.

A good way to use XUL is moving logic (content invalidation, input 
validation, ..) to the client and implementing it in JavaScript. Doing 
this XUL will be the basis for a Rich Client Architecture.


Following this 'XUl principles' it has a huge impact of the CForms strategy:
- The one and only transformation to be done seems to be the 
transformation of dynamic content to RDF (sometimes a crucial thing, 
Jörg can tell you something about that)
- It should be possible to mix client side and server side input 
validation (is this already done in CForms?)
- While XUL will not update the whole page it is more a multiform 
approach. This will have an impact on form handling.
- Instead of using the i18n transformer the xml entity approach of XUL 
should be used. I don't like it, but otherwise it is very difficult to 
use XUL files as static layout description.

Using XUL as it is made for will enable you to build complex user 
interfaces with very good usability and more performant than an HTML 
based web application. This can be reached with the proposed approach 
partially only.


Regards

Claas Thiele


Re: CForms-XUL project information

Posted by Maksim Kaszynski <ka...@gmail.com>.
Sure!


On 6/14/05, Antonio Gallardo <ag...@agssa.net> wrote:
> Hi Maksim,
> 
> can you repost the proposal.html? See below what I got.
> 
> Best Regards,
> 
> Antonio Gallardo
>

Re: CForms-XUL project information

Posted by Antonio Gallardo <ag...@agssa.net>.
Hi Maksim,

can you repost the proposal.html? See below what I got.

Best Regards,

Antonio Gallardo

On Lun, 13 de Junio de 2005, 11:41, Maksim Kashynski dijo:
> Hi Antonio, Helma, and all others!
> Thank you for your remarks.
> I have attached some documentation i've written concerning CForms-XUL.
> Please take a look at it.
> Thanks!
> Maksim Kashynski
>
>
> begin 666 Cocoon CForms - XUL - proposal.html
> M/&@R/D-&;W)M<R M(%A53"!F<F]N="UE;F0@<')O:F5C="!P<F]P;W-A;#PO
> M:#(^#0H\:#,^4')O8FQE;2!O=F5R=FEE=SPO:#,^#0H-"CQP/D-O8V]O;B!#
> M1F]R;7,@:7,@82!F<F%M97=O<FL@<')O=FED:6YG(&5A<WD@9F]R;2UH86YD
> M;&EN9RX@270@9&5F:6YE<R!P;&%T9F]R;2UI;F1E<&5N9&5N="!F;W)M(&UO
> M9&5L(&%N9"!P;&%T9F]R;2UD97!E;F1E;G0@9F]R;2!T96UP;&%T92!W:&EC
> M:"!A<F4@=&AE;B!R96YD97)E9"!T;R!T87)G970@<&QA=&9O<FT@<F5P<F5S
> M96YT871I;VXN(%1A<F=E="!P;&%T9F]R;2!C86X@8F4@86YY($=522!T;V]L
> M:VET+B!#=7)R96YT;'D@;VYL>2!(5$U,(&ES('-U<'!O<G1E9"P@<V]M92!O
> M=&AE<B!P;&%T9F]R;7,@87)E(&EN('!R;V=R97-S+CPO<#X-"CQP/DUO>FEL
> M;&$@6%5,(&ES(%A-3"UB87-E9"!P;W=E<F9U;"!'54D@=&]O;&MI="!R=6YN
> M:6YG('5N9&5R($=E8VMO(%)U;G1I;64@*&%L<V\@=&AE<F4@87)E(&]T:&5R
> M(&5N9VEN97,I+B!)="!P<F]V:61E<R!E87-Y(&)U:6QD:6YG(&]F(')I8V@@
> M8VQI96YT<RX@6%5,(&-O;G1A:6YS(&UA;GD@<')E9&5F:6YE9"!W:61G971S
> M(&%S('=E;&P@87,@<W5P<&]R="!F;W(@=7-E<BUD969I;F5D(&]N97,N(%1H
> M92!M;W-T('!R;VUI;F5N="!E>&%M<&QE<R!A<F4@36]Z:6QL82!S=6ET92P@
> M1FER949O>"!A;F0@5&AU;F1E<F)I<F0N(%A53"!A<'!L:6-A=&EO;G,@87)E
> M(&-O;7!L971E;'D@8W)O<W,M<&QA=&9O<FTN(%1H92!D979E;&]P;65N="!O
> M9B!854PM8F%S960@87!P;&EC871I;VYS(&ES('9E<GD@<VEM:6QA<B!T;R!(
> M5$U,+"!B96-A=7-E(&)O=&@@;&%N9W5A9V5S('5S92!$3TT@86YD($IA=F%3
> M8W)I<'0@9F]R('5S97(@:6YT97)A8W1I;VXN/"]P/@T*/' ^061D:6YG(%A5
> M3"!F<F]N="UE;F0@=&\@0T9O<FUS('=I;&P@;6%K92!I="!P;W-S:6)L92!T
> M;R!B=6EL9"!M;W)E(&EN=&5R86-T:79E(&%P<&QI8V%T:6]N<R!W:71H($-O
> M8V]O;BX@06QS;R!T:&ES('=I;&P@:&5L<"!#;V-O;VX@8V]M;75N:71Y('1O
> M(&=E="!I;B!T;W5C:"!W:71H($UO>FEL;&$@8V]M;75N:71Y+B!4:&5S92!T
> M=V\@9F%C=',@=VEL;"!N;R!D;W5B="!M86ME($-O8V]O;B!M;W)E('!O<'5L
> M87(N/"]P/@T*#0H\:#,^4V]L=71I;VX\+V@S/@T*/' ^4')O=FED92!854P@
> M<F5N9&5R:6YG(&9O<B!#1F]R;7,@=7-I;F<@97AI<W1I;F<@0T9O<FUS(&UO
> M9&5L(&)Y(&%D9&EN9R!A<'!R;W!R:6%T92!T<F%N<V9O<FUA=&EO;G,L(&UO
> M<W1L>2!84TP@<W1Y;&4@<VAE971S+B!4:&4@;F5W(%A53"!I;G1E<F9A8V4@
> M=VEL;"!I;G1E<F%C="!W:71H('1H92!#1F]R;7,@<V5R=F5R(&UO9&5L(&%T
> M(&QE87-T(&%S('=E;&P@=&AA;B!C=7)R96YT($A434P@:6UP;&5M96YT871I
> M;VXN/"]P/@T*#0H\:#,^26UP;&5M96YT871I;VX@9&5T86EL<SPO:#,^#0H\
> M<#Y#1F]R;7,@9G)A;65W;W)K(&-U<G)E;G1L>2!P<F]V:61E<R!S;W!H:7-T
> M:6-A=&5D($A434P@<W5P<&]R="P@6%5,(&ES('-I;6EL87(@=&\@2%1-3"P@
> M<V\@0T9O<FUS+5A53"!I;7!L96UE;G1A=&EO;B!I<R!A;'-O('-I;6EL87(N
> M($ET(&1O97,@;F]T(&%F9F5C="!S97)V97(@;6]D96PL(&%N9"!D96%L<R!M
> M;W-T;'D@=VET:"!4<F%N<V9O<FUE<G,N/"]P/@T*#0H\<#Y4:&4@8V]M;75N
> M:6-A=&EO;B!M;V1E;"!I<R!D:69F97)E;G0@9G)O;2!(5$U,(&%P<')O86-H
> M+B!!($A434P@<&%G92!I<R!A;'=A>7,@*'=I=&@@97AC97!T:6]N('1O(%A-
> M3$AT='!297%U97-T*2!S=6)M:71T960@=&\@<V5R=F5R+"!A;F0@=&AE;B!A
> M(&YE=R!I;G-T86YC92!O9B!P86=E(&ES(')E='5R;F5D('1O('5S97(N(%=I
> M=&@@6%5,('-U8V@@8F5H879I;W(@;6%Y(&QO;VL@<75I=&4@=V5I<F0@EB!W
> M:&5N(&$@<')O9W)A;2!W:6YD;W<@8VQO<V5S+"!A;F0@=&AE;B!O<&5N<R!B
> M86-K(&%G86EN+B!3;R!T:&5R92!S:&]U;&0@8F4@86YO=&AE<BP@04I!6"UL
> M:6ME(&%P<')O86-H+B \+W ^#0H-"CQP/E=H96X@=7-E<B!F:7)S="!R97%U
> M97-T<R!A('!A9V4@EB!I;FET:6%L(')E;F1E<FEN9R!I<R!P97)F;W)M960@
> M:6X@2%1-3"UL:6ME('=A>2P@97AC97!T(&9O<B!84TQ4+"!W:&EC:"!W:6QL
> M(&)E(')E=W)I='1E;B!A;F5W('1O('!E<F9O<FT@1D0@=&\@6%5,('1R86YS
> M9F]R;6%T:6]N+"!L:6ME(" \8V]D93XH9F0Z9FEE;&0I/"]C;V1E/B!T;R \
> M8V]D93XH=&5X=&)O>"D\+V-O9&4^+"!C;VYT<F]L<R!A<F4@<&]P=6QA=&5D
> M('=I=&@@:6YI=&EA;"!V86QU97,N/"]P/@T*/' ^5VAE;B!U<V5R(')E<75E
> M<W1S('-O;64@86-T:6]N+"!R97-U;'1S(&]F('=H:6-H('-H;W5L9"!B92!D
> M:7-P;&%Y960@:6X@=&AE('-A;64@9F]R;2P@9&%T82!F<F]M('1H92!F;W)M
> M(&ES('-E;G0@=&\@=&AE('-E<G9E<BP@=&AE;B!F;W)M(')E8V5I=F5S(')E
> M<W!O;G-E(&%N9"!R97!O<'5L871E<R!C;VYT<F]L<Y(@=F%L=65S+B!4:&ES
> M(&EN=F]L=F5S(&%N(&%M;W5N="!O9B!*879A4V-R:7!T(&-O9&4@*'1H92!M
> M86EN('-C<FEP=&EN9R!L86YG=6%G92!I;B!854PI('1O('!I8VL@87!P<F]P
> M<FEA=&4@=F%L=65S(&9R;VT@<V5R=F5R(')E<W!O;G-E+"!A;F0@=&\@:61E
> M;G1I9GD@=VAE=&AE<B!I="!I<R!T:&4@<V%M92!W:6YD;W<L(&]R(&$@;F5W
> M(&]N92X\+W ^#0H-"CQP/E1H92!P:7!E;&EN92!R96UA:6YS('1H92!S86UE
> M(&%S(&EN($A434P@8V%S92 H<V5E(#QA(&AR968](FAT=' Z+R]C;V-O;VXN
> M87!A8VAE+F]R9R\R+C$O=7-E<F1O8W,O9F]R;7,O:6YD97@N:'1M;"(^:'1T
> M<#HO+V-O8V]O;BYA<&%C:&4N;W)G+S(N,2]U<V5R9&]C<R]F;W)M<R]I;F1E
> M>"YH=&UL/"]A/BDL(&5X8V5P="!F;W(@=&AE(&9O;&QO=VEN9RX@/"]P/@T*
> M/&QI/E1H92!&;W)M(%1E;7!L871E(&ES(&$@6%5,(&9I;&4L(&9O<FUS('1A
> M9W,@87)E('!L86-E9"!E>&%C=&QY('1H92!S86UE('=A>2!A<R!I;B!(5$U,
> M+CPO;&D^#0H\;&D^5&AE(%1E;7!L871E(&%N9"!),3AN(%1R86YS9F]R;65R
> M<R!A<F4@;6]S="!L:6ME;'D@=6YA9F9E8W1E9"P@8F5C875S92!D871A('1H
> M97D@<')O8V5S<R!I<R!N;W0@<F5L871E9"!T;R!A;GD@<&QA=&9O<FTN($%L
> M<V\@0FEN9&EN9R!A;F0@5F%L:61A=&EO;B!R96UA:6X@=&AE('-A;64N/"]L
> M:3X-"CQL:3Y4;R!P97)F;W)M(&9I;F%L(')E;F1E<FEN9RP@8V]M<&QE=&5L
> M>2!N97<@6%-,('-T>6QE('-H965T<R!W:6QL(&)E('=R:71T96XN(%1H97D@
> M=VEL;"!P<F]V:61E(&9L97AI8FQE('1R86YS9F]R;6%T:6]N(&%N9"!S='EL
> M:6YG+"!L:6ME(&9O<FUS+2HM<W1Y;&EN9RYX<VPN/"]L:3X-"CQL:3Y/=71P
> M=70@:7,@<V5R:6%L:7IE9"!W:71H(')E9W5L87(@6$U,('-E<FEA;&EZ97(N
> M/"]L:3X-"@T*/' ^5&\@:6UP<F]V92!P97)F;W)M86YC92!A;F]T:&5R('!I
> M<&5L:6YE('=I;&P@8F4@861D960N($ET('=I;&P@9&5A;"!O;FQY('=I=&@@
> M8F%R92!D871A(')E='5R;F5D('1O('1H92!E>&ES=&EN9R!F;W)M(&)Y('1H
> M92!S97)V97(N($ET('=I;&P@<VAA<F4@=&AE(&1A=&$@;6]D96P@=VET:"!F
> M:7)S="!P:7!E;&EN92P@8G5T('=I;&P@:&%V92!A;F]T:&5R('1E;7!L871E
> M('1R86YS9F]R;65R('1O('!R;V1U8V4@9F]R;2!D871A('=I=&AO=70@86YY
> @('5N;F5C97-S87)Y(%5)(&EN9F]R;6%T:6]N+CPO<#X`
> `
> end
>
>