Loading ...
Sorry, an error occurred while loading the content.
 

Re: Intermediate step?

Expand Messages
  • cacharbe
    ... the ... Erm, no. I m working on that for the perl parser I m building for the prettylst rewrite. The hopes (as I mentioned on the main list) is that some
    Message 1 of 5 , Aug 13, 2002
      > Step 1: create a formalized grammar for PCGen tags. I looked around
      the
      > files section, but I didn't find anything like this. Is there such?
      >

      Erm, no.

      I'm working on that for the perl parser I'm building for the
      prettylst rewrite.

      The hopes (as I mentioned on the main list) is that some of the
      measures taken by Bryan and Mynex over the past couple days will help
      us move to a standardized set of tags, which will actually mean that
      I can write a grammar that isn't obsolete within a week because some
      Yahoo adds five tags to fix a small, narrow scoped problem, only to
      create a HUGE one in the code and for the other LST monkeys.

      Anyway...

      All input is welcome.

      My thought is that starting on files that have the fewest changes
      over time would be a good exercise, then we can get all the rest.

      Which means we should just start on "All the rest". *grin*

      Chuck.
    • Eric Beaudoin
      ... Count on it. Expect the next list right after the next release of PCGEN. There are too many changes hapening right now for a imediate release to be useful.
      Message 2 of 5 , Aug 13, 2002
        At 23:11 2002.08.13, Keith Davies wrote:
        >Eric was maintaining a list of tags used in the LST files, but he was
        >away for a time. I suspect he'll have a new version of that file for us
        >sometime (soon, I hope) that we can use to start gearing up the parsers
        >for conversion (which Chuck has been working on, with Eric).
        >
        >
        >Keith

        Count on it. Expect the next list right after the next release of PCGEN. There are too many changes hapening right now for a imediate release to be useful.

        Best


        -----------------------------------------------------------
        √Čric "Space Monkey" Beaudoin
        >> In space, no one can hear you sleep...
        >> Camels to can climb trees (and sometime eat them)
        <mailto:beaudoer@...>
      • Keith Davies
        ... Option A: Already have this -- the *sheet*.fo templates write XSL-FO, which is an XML file. I know it s a generic one (in that it focuses only on
        Message 3 of 5 , Aug 13, 2002
          On Tue, Aug 13, 2002 at 07:58:13PM -0500, Drew Bernat wrote:
          > If I'm starting to sound like a broken record (Or a CS major in the
          > shower) please let me know.
          >
          > It seems to me that doing a full-blown conversion of PCGen to XML would be
          > Hard. However, intermediate steps would be very possible:
          >
          > 1) Output to an XML character sheet

          Option A: Already have this -- the *sheet*.fo templates write XSL-FO,
          which is an XML file. I know it's a generic one (in that it focuses
          only on presentation and all context is lost), but technically it
          meets this requirement.

          Option B: Create an XML schema that describes -- with full, or at least
          significant, context -- and output the data to an XML file that
          contains this data.

          Which, weirdly enough, is part of what we're trying to do here. We
          could even use the existing template mechanism (slightly modified, so
          it picks up the new *.xml templates and doesn't try to convert them to
          PDF or the like. All we have to do is, well, come up with a schema to
          adequately describe the data being output.

          > 2) Create a standardized parser for LST files

          This would be very cool to have. My understanding of the current parser
          is that it is largely ad hoc and can use some redesign and rebuilding.
          OTOH, there is an existing parser that reads the stuff and stores it.
          In designing the XML schema, we'll be thinking a lot, and really hard,
          about how the data interacts with itself... which is what would be
          needed to redesign the internal data model. It's not such an exciting
          exercise that I would ask people to do it more than once.

          > 3) Create a standardized parser for PC files

          I think a reasonably-designed schema would be useable for both purposes.
          If we keep a high level of context in the data, then reducing it (for
          instance, collapsing all boni to attributes and saves and presenting
          only the end result) is reasonably easy.

          > If we do #2 or #3 right then we should be able to drop in an XML
          > replacement at a later date, as the point of a parser is to separate the
          > form of the data from the data itself.

          That would be a wonderful idea if we were merely converting the existing
          LST format to XML. However, it was decided months ago that the better
          thing to do is remodel the schema around the data (rather than the
          existing files), which may well make what you're proposing impossible,
          or at least improbably difficult.

          > I'd like to start an effort towards doing the second, particularly aimed
          > at removing as many string manipulations as possible within the PCGen
          > backend. This should be relatively easy to do, given that it is working
          > with a fairly small part of the code.
          >
          > I hope.
          >
          > Step 1: create a formalized grammar for PCGen tags. I looked around the
          > files section, but I didn't find anything like this. Is there such?

          Step 2: ???

          Step 3: Great Data!


          Eric was maintaining a list of tags used in the LST files, but he was
          away for a time. I suspect he'll have a new version of that file for us
          sometime (soon, I hope) that we can use to start gearing up the parsers
          for conversion (which Chuck has been working on, with Eric).


          Keith
          --
          Keith Davies
          keith.davies@...

          PCGen-XML Reaper, smartass
        • Stuart Updegrave
          ... XSL-FO, ... focuses ... This is rather ad-hoc, and I certainly have not created DTD / XSD for it, but attached is the XML character sheet I m using
          Message 4 of 5 , Aug 13, 2002
            > From: Keith Davies [mailto:keith.davies@...]
            >
            > >
            > > 1) Output to an XML character sheet
            >
            > Option A: Already have this -- the *sheet*.fo templates write
            XSL-FO,
            > which is an XML file. I know it's a generic one (in that it
            focuses
            > only on presentation and all context is lost), but technically it
            > meets this requirement.

            This is rather ad-hoc, and I certainly have not created DTD / XSD for
            it, but attached is the XML character sheet I'm using currently. Feel
            free to use it as you see fit. Or not.

            Hope it proves useful.



            begin 666 csheet-su.xml
            M/#]X;6P@=F5R<VEO;CTB,2XP(B!E;F-O9&EN9STB=71F+3@B(#\^( T*/#]X
            M;6PM<W1Y;&5S:&5E="!T>7!E/2)T97AT+WAS;"(@:')E9CTB<F5S+V-S:&5E
            M="US=2YX<VQT(C\^#0H-"CQC:&%R86-T97(@;F%M93TB?$Y!345\(B!R86-E
            M/2)\4D%#17PB('!L87EE<FYA;64](GQ03$%915).04U%?"(@86QI9VX](GQ!
            M3$E'3DU%3E1\(B!D96ET>3TB?$1%2519?"(^#0I\)41/34%)3C!\#0H\9&]M
            M86EN<SX-"GQ&3U(N,"Q#3U5.5%M$3TU!24Y372PQ+#QD;VUA:6X@;F%M93TB
            M7$1/34%)3B5<(B!P;W=E<CT](EQ$3TU!24XE+E!/5T527"(L? T*/"]D;VUA
            M:6YS/@T*?"5\#0H)/&QE=F5L<R!T;W1A;#TB?%1/5$%,3$5614Q3?"(^#0H)
            M"3QX<"!C=7)R96YT/2)\15A0+D-54E)%3E1\(B!N97AT/2)\15A0+DY%6%1\
            M(B O/@T*"0D\8VQA<W-E<R!A;&P](GQ#3$%34TQ)4U1\(CX-"@D)?$9/4BXP
            M+$-/54Y46T-,05-315-=+#$L/&-L87-S(&YA;64](EQ#3$%34R5<(B!A8F)R
            M/2)<0TQ!4U-!0D(E7"(@;&5V96P](EQ#3$%34R4N3$5614Q<(B O/BQ\#0H)
            M"3PO8VQA<W-E<SX-"@D\+VQE=F5L<SX-"@D\8FEO/@T*"0D\<W1A=',@9V5N
            M9&5R/2)\1T5.1$52?"(@<VEZ93TB?%-)6D5\(B!H96EG:'0](GQ(14E'2%0N
            M1D]/5%!!4E1\)WQ(14E'2%0N24Y#2%!!4E1\(B!W96EG:'0](GQ714E'2%1\
            M(B!V:7-I;VX](GQ625-)3TY\(B!A9V4](GQ!1T5\(B!E>64](GQ#3TQ/4BY%
            M645\(B!H86ER/2)\0T],3U(N2$%)4GPL('Q,14Y'5$@N2$%)4GPB(&UO=F4]
            M(GQ-3U9%345.5'PB("\^#0H)"3QP:&]B:6%S/GQ02$]"24%3?#PO<&AO8FEA
            M<SX-"@D)/'!E<G-O;F%L:71Y/GQ015)33TY!3$E463)\/"]P97)S;VYA;&ET
            M>3X-"@D)/&EN=&5R97-T<SY\24Y415)%4U13?#PO:6YT97)E<W1S/@T*"0D\
            M9&5S8W)I<'1I;VX^/"%;0T1!5$%;?$1%4T-\75T^/"]D97-C<FEP=&EO;CX-
            M"@D)/&QO8V%T:6]N/GQ,3T-!5$E/3GP\+VQO8V%T:6]N/@T*"0D\8FEO/GQ"
            M24]\/"]B:6\^#0H)/"]B:6\^#0H)/&%B:6QI=&EE<SX-"@D)/&%B:6QI='D@
            M;F%M93TB<W1R(B!S=&%T/2)\4U1!5#!\(B!M;V0](GQ35$%4,"Y-3T1\(B O
            M/@T*"0D\86)I;&ET>2!N86UE/2)D97@B('-T870](GQ35$%4,7PB(&UO9#TB
            M?%-4050Q+DU/1'PB("\^#0H)"3QA8FEL:71Y(&YA;64](F-O;B(@<W1A=#TB
            M?%-4050R?"(@;6]D/2)\4U1!5#(N34]$?"(@+SX-"@D)/&%B:6QI='D@;F%M
            M93TB:6YT(B!S=&%T/2)\4U1!5#-\(B!M;V0](GQ35$%4,RY-3T1\(B O/@T*
            M"0D\86)I;&ET>2!N86UE/2)W:7,B('-T870](GQ35$%4-'PB(&UO9#TB?%-4
            M050T+DU/1'PB("\^#0H)"3QA8FEL:71Y(&YA;64](F-H82(@<W1A=#TB?%-4
            M050U?"(@;6]D/2)\4U1!5#4N34]$?"(@+SX-"@D\+V%B:6QI=&EE<SX-"@D\
            M<V%V97,^#0H)"3QS879E(&YA;64](D9/4E1)5%5$12(@=&]T86P](GQ&3U)4
            M25151$4N5$]404Q\(B!B87-E/2)\1D]25$E4541%+D)!4T5\(B!M;V0](GQ3
            M5$%4,BY-3T1\(B!M86=I8STB?$9/4E1)5%5$12Y-04=)0WPB(')A8V4](GQ&
            M3U)425151$4N4D%#17PB("\^#0H)"3QS879E(&YA;64](E)%1DQ%6"(@=&]T
            M86P](GQ2149,15@N5$]404Q\(B!B87-E/2)\4D5&3$58+D)!4T5\(B!M;V0]
            M(GQ35$%4,2Y-3T1\(B!M86=I8STB?%)%1DQ%6"Y-04=)0WPB(')A8V4](GQ2
            M149,15@N4D%#17PB("\^#0H)"3QS879E(&YA;64](E=)3$PB('1O=&%L/2)\
            M5TE,3"Y43U1!3'PB(&)A<V4](GQ724Q,+D)!4T5\(B!M;V0](GQ35$%4-"Y-
            M3T1\(B!M86=I8STB?%=)3$PN34%'24-\(B!R86-E/2)\5TE,3"Y204-%?"(@
            M+SX-"@D\+W-A=F5S/@T*"3QA8R!T;W1A;#TB?$%#+E1/5$%,?"(@8F%S93TB
            M?$%#+D)!4T5\(B!E<75I<#TB?$%#+D5154E0?"(@86)I;&ET>3TB?$%#+D%"
            M24Q)5%E\(B!S:7IE/2)\04,N4TE:17PB("\^#0H)/&AP('1O=&%L/2)\2%!\
            M(B O/@T*"3QM;W9E;65N="!V86QU93TB?$U/5D5-14Y4?"(@+SX-"@D\:6YI
            M=&EA=&EV92!M;V0](GQ)3DE424%4259%34]$?"(@+SX-"@D\871T86-K/@T*
            M"0D\;65L964@=&]T86P](GQ!5%1!0TLN345,144N5$]404Q\(B!A='1A8VL]
            M(GQ!5%1!0TLN345,145\(B!B87-E/2)\051404-++DU%3$5%+D)!4T5\(B\^
            M#0H)"3QR86YG960@=&]T86P](GQ!5%1!0TLN4D%.1T5$+E1/5$%,?"(@871T
            M86-K/2)\051404-++E)!3D=%1'PB(&)A<V4](GQ!5%1!0TLN4D%.1T5$+D)!
            M4T5\(B\^#0H)"3QU;F%R;65D('1O=&%L/2)\051404-++E5.05)-140N5$]4
            M04Q\(B!A='1A8VL](GQ!5%1!0TLN54Y!4DU%1'PB(&)A<V4](GQ!5%1!0TLN
            M54Y!4DU%1"Y"05-%?"(@9&%M86=E/2)\1$%-04=%+E5.05)-141\(B\^#0H)
            M/"]A='1A8VL^#0H)/&5Q=6EP('=E:6=H=#TB?%1/5$%,+E=%24=(5'PB('9A
            M;'5E/2)\5$]404PN5D%,545\(CX-"@D)/'=E87!O;G,^#0H)"7Q&3U(N,"Q#
            M3U5.5%M%45194$4N5T5!4$].72PQ+" \=V5A<&]N(&YA;64](EQ714%03TXE
            M+DY!345<(B!T;W1A;&AI=#TB7%=%05!/3B4N5$]404Q(251<(B!D86UA9V4]
            M(EQ714%03TXE+D1!34%'15PB(&UU;'0](EQ714%03TXE+DU53%1<(B!H86YD
            M/2)<5T5!4$].)2Y(04Y$7"(@<F%N9V4](EQ714%03TXE+E)!3D=%7"(@='EP
            M93TB7%=%05!/3B4N5%E015PB('-I>F4](EQ714%03TXE+E-)6D5<(B!S<')O
            M<#TB7%=%05!/3B4N4U!23U!<(B O/GP-"@D)/"]W96%P;VYS/@T*"0D\87)M
            M;W(^#0H)"7Q&3U(N,"Q#3U5.5%M%45194$4N05)-3U)=+#$L(#QI=&5M(&YA
            M;64](EQ!4DU/4B4N3D%-15PB(&%C8F]N=7,](EQ!4DU/4B4N04-"3TY54UPB
            M(&%C8VAE8VL](EQ!4DU/4B4N04-#2$5#2UPB(&)A<V5A8STB7$%234]2)2Y"
            M05-%04-<(B!F;&%T86,](EQ!4DU/4B4N1DQ!5$%#7"(@;6%X9&5X/2)<05)-
            M3U(E+DU!6$1%6%PB(&UO=F4](EQ!4DU/4B4N34]615PB('-P96QL9F%I;#TB
            M7$%234]2)2Y34$5,3$9!24Q<(B!S<')O<#TB7$%234]2)2Y34%)/4%PB('1O
            M=&%L86,](EQ!4DU/4B4N5$]404Q!0UPB('1Y<&4](EQ!4DU/4B4N5%E015PB
            M('=T/2)<05)-3U(E+E=47"(@+SY\#0H)"3PO87)M;W(^#0H)"3QC;VEN/@T*
            M"0E\1D]2+C L0T]53E1;15%465!%+D-O:6Y=+#$L/&ET96T@;F%M93TB7$51
            M5%E012Y#;VEN+B4N3D%-15PB(&-O<W0](EQ%45194$4N0V]I;BXE+D-/4U1<
            M(B!Q='D](EQ%45194$4N0V]I;BXE+E%465PB(&5Q=6EP<&5D/2)<15%465!%
            M+D-O:6XN)2Y%455)4%!%1%PB(&-O;G1E;G1S/2)<15%465!%+D-O:6XN)2Y#
            M3TY414Y44UPB(&QO8V%T:6]N/2)<15%465!%+D-O:6XN)2Y,3T-!5$E/3EPB
            M('=T/2)<15%465!%+D-O:6XN)2Y75%PB("\^? T*"0D\+V-O:6X^#0H)"3QG
            M96US/@T*"0E\1D]2+C L0T]53E1;15%465!%+D=E;5TL,2P\:71E;2!N86UE
            M/2)<15%465!%+D=E;2XE+DY!345<(B!C;W-T/2)<15%465!%+D=E;2XE+D-/
            M4U1<(B!Q='D](EQ%45194$4N1V5M+B4N45197"(@97%U:7!P960](EQ%4519
            M4$4N1V5M+B4N15%525!0141<(B!C;VYT96YT<STB7$515%E012Y'96TN)2Y#
            M3TY414Y44UPB(&QO8V%T:6]N/2)<15%465!%+D=E;2XE+DQ/0T%424].7"(@
            M=W0](EQ%45194$4N1V5M+B4N5U1<(B O/GP-"@D)/"]G96US/@T*"0D\<V-R
            M;VQL<SX-"@D)?$9/4BXP+$-/54Y46T515%E012Y38W)O;&Q=+#$L/&ET96T@
            M;F%M93TB7$515%E012Y38W)O;&PN)2Y.04U%7"(@8V]S=#TB7$515%E012Y3
            M8W)O;&PN)2Y#3U-47"(@<71Y/2)<15%465!%+E-C<F]L;"XE+E%465PB(&5Q
            M=6EP<&5D/2)<15%465!%+E-C<F]L;"XE+D5154E04$5$7"(@8V]N=&5N=',]
            M(EQ%45194$4N4V-R;VQL+B4N0T].5$5.5%-<(B!L;V-A=&EO;CTB7$515%E0
            M12Y38W)O;&PN)2Y,3T-!5$E/3EPB('=T/2)<15%465!%+E-C<F]L;"XE+E=4
            M7"(@+SY\#0H)"3PO<V-R;VQL<SX-"@D)/'=A;F1S/@T*"0E\1D]2+C L0T]5
            M3E1;15%465!%+E=A;F1=+#$L/&ET96T@;F%M93TB7$515%E012Y786YD+B4N
            M3D%-15PB(&-O<W0](EQ%45194$4N5V%N9"XE+D-/4U1<(B!Q='D](EQ%4519
            M4$4N5V%N9"XE+E%465PB(&5Q=6EP<&5D/2)<15%465!%+E=A;F0N)2Y%455)
            M4%!%1%PB(&-O;G1E;G1S/2)<15%465!%+E=A;F0N)2Y#3TY414Y44UPB(&QO
            M8V%T:6]N/2)<15%465!%+E=A;F0N)2Y,3T-!5$E/3EPB('=T/2)<15%465!%
            M+E=A;F0N)2Y75%PB("\^? T*"0D\+W=A;F1S/@T*"0D\<&]T:6]N<SX-"@D)
            M?$9/4BXP+$-/54Y46T515%E012Y0;W1I;VY=+#$L/&ET96T@;F%M93TB7$51
            M5%E012Y0;W1I;VXN)2Y.04U%7"(@8V]S=#TB7$515%E012Y0;W1I;VXN)2Y#
            M3U-47"(@<71Y/2)<15%465!%+E!O=&EO;BXE+E%465PB(&5Q=6EP<&5D/2)<
            M15%465!%+E!O=&EO;BXE+D5154E04$5$7"(@8V]N=&5N=',](EQ%45194$4N
            M4&]T:6]N+B4N0T].5$5.5%-<(B!L;V-A=&EO;CTB7$515%E012Y0;W1I;VXN
            M)2Y,3T-!5$E/3EPB('=T/2)<15%465!%+E!O=&EO;BXE+E=47"(@+SY\#0H)
            M"3PO<&]T:6]N<SX)"0T*"0D\9V5A<CX-"@D)"7Q&3U(N,"Q#3U5.5%M%455)
            M4$U%3E0N3D]4+E=%05!/3BY.3U0N36%G:6,N3D]4+D%234]2+DY/5"Y38W)O
            M;&PN3D]4+E=A;F0N3D]4+E!O=&EO;BY.3U0N0V]I;BY.3U0N1V5M72PQ+#QI
            M=&5M(&YA;64](EQ%455)4$U%3E0N3D]4+E-C<F]L;"Y.3U0N5V%N9"Y.3U0N
            M4&]T:6]N+DY/5"Y#;VEN+DY/5"Y'96TN)2Y.04U%7"(@8V]S=#TB7$5154E0
            M345.5"Y.3U0N5T5!4$].+DY/5"Y-86=I8RY.3U0N05)-3U(N3D]4+E-C<F]L
            M;"Y.3U0N5V%N9"Y.3U0N4&]T:6]N+DY/5"Y#;VEN+DY/5"Y'96TN)2Y#3U-4
            M7"(@<71Y/2)<15%525!-14Y4+DY/5"Y714%03TXN3D]4+DUA9VEC+DY/5"Y!
            M4DU/4BY.3U0N4V-R;VQL+DY/5"Y786YD+DY/5"Y0;W1I;VXN3D]4+D-O:6XN
            M3D]4+D=E;2XE+E%465PB(&5Q=6EP<&5D/2)<15%525!-14Y4+DY/5"Y714%0
            M3TXN3D]4+DUA9VEC+DY/5"Y!4DU/4BY.3U0N4V-R;VQL+DY/5"Y786YD+DY/
            M5"Y0;W1I;VXN3D]4+D-O:6XN3D]4+D=E;2XE+D5154E04$5$7"(@8V]N=&5N
            M=',](EQ%455)4$U%3E0N3D]4+E=%05!/3BY.3U0N36%G:6,N3D]4+D%234]2
            M+DY/5"Y38W)O;&PN3D]4+E=A;F0N3D]4+E!O=&EO;BY.3U0N0V]I;BY.3U0N
            M1V5M+B4N0T].5$5.5%-<(B!L;V-A=&EO;CTB7$5154E0345.5"Y.3U0N5T5!
            M4$].+DY/5"Y-86=I8RY.3U0N05)-3U(N3D]4+E-C<F]L;"Y.3U0N5V%N9"Y.
            M3U0N4&]T:6]N+DY/5"Y#;VEN+DY/5"Y'96TN)2Y,3T-!5$E/3EPB('=T/2)<
            M15%525!-14Y4+DY/5"Y714%03TXN3D]4+DUA9VEC+DY/5"Y!4DU/4BY.3U0N
            M4V-R;VQL+DY/5"Y786YD+DY/5"Y0;W1I;VXN3D]4+D-O:6XN3D]4+D=E;2XE
            M+E=47"(@+SY\#0H)"3PO9V5A<CX-"@D)/&UA9VEC/@T*"0E\1D]2+C L0T]5
            M3E1;15%465!%+DUA9VEC+DY/5"Y0;W1I;VY=+#$L/&ET96T@;F%M93TB7$51
            M5%E012Y-86=I8RY.3U0N4&]T:6]N+B4N3D%-15PB(&-O<W0](EQ%45194$4N
            M36%G:6,N3D]4+E!O=&EO;BXE+D-/4U1<(B!Q='D](EQ%45194$4N36%G:6,N
            M3D]4+E!O=&EO;BXE+E%465PB(&5Q=6EP<&5D/2)<15%465!%+DUA9VEC+DY/
            M5"Y0;W1I;VXN)2Y%455)4%!%1%PB(&-O;G1E;G1S/2)<15%465!%+DUA9VEC
            M+DY/5"Y0;W1I;VXN)2Y#3TY414Y44UPB(&QO8V%T:6]N/2)<15%465!%+DUA
            M9VEC+DY/5"Y0;W1I;VXN)2Y,3T-!5$E/3EPB('=T/2)<15%465!%+DUA9VEC
            M+DY/5"Y0;W1I;VXN)2Y75%PB("\^? T*"0D\+VUA9VEC/@T*"3PO97%U:7 ^
            M#0H)/'-K:6QL<SX-"@E\1D]2+C L0T]53E1;4TM)3$Q372PQ+#QS:VEL;"!N
            M86UE/2)<4TM)3$PE7"(@86)I;&ET>3TB7%-+24Q,)2Y!0DE,25197"(@=&]T
            M86P](EQ32TE,3"4N5$]404Q<(B!M;V0](EQ32TE,3"4N04)-3T1<(B!R86YK
            M/2)<4TM)3$PE+E)!3DM<(B!M:7-C/2)<4TM)3$PE+DU)4T-<(B O/BQ\#0H)
            M/"]S:VEL;',^#0H)/&9E871S/@T*"7Q&3U(N,"PQ,"PQ+" \9F5A="!N86UE
            M/2)<1D5!5$%,3"5<(B!D97-C/2)<1D5!5$%,3"4N1$530UPB("\^+'P-"@D\
            M+V9E871S/@T*"3QS<&5C:6%L/@T*"7Q&3U(N,"Q#3U5.5%M305TL,2P@/'-P
            M96-I86P@;F%M93TB7%-014-)04Q!0DE,2519)5PB("\^+'P-"@D\+W-P96-I
            M86P^#0H)/&5N8W5M8G)A;F-E(&QI9VAT/2)\5T5)1TA4+DQ)1TA4?"(@;65D
            M:75M/2)\5T5)1TA4+DU%1$E537PB(&AE879Y/2)\5T5)1TA4+DA%0599?"(@
            M+SX-"@D\<W!E;&QS/@T*?$9/4BPE8VQA<W,L,"Q#3U5.5%M#3$%34T5372PQ
            M+#%\#0I\)5-014Q,3$E35$-,05-3)6-L87-S? T*/'-P96QL8VQA<W,@;F%M
            M93TB?%-014Q,3$E35$-,05-3)6-L87-S?"(^#0I\1D]2+"5L979E;"PP+#DL
            M,2PQ? T*/'-P96QL;&5V96P@;&5V96P](B5L979E;"(@8V]U;G0](GQ34$5,
            M3$Q)4U1#05-4)6-L87-S+B5L979E;'PB($1#/2)\4U!%3$Q,25-41$,E8VQA
            M<W,N)6QE=F5L?"(^#0I\1D]2+C L,3 P+#$L;F%M93TB7%-014Q,345-)6-L
            M87-S+BTQ+B5L979E;"XE+DY!345<(B!T:6UE<STB7%-014Q,345-)6-L87-S
            M+BTQ+B5L979E;"XE+E1)34537"(@<F%N9V4](EQ34$5,3$U%325C;&%S<RXM
            M,2XE;&5V96PN)2Y204Y'15PB(&-O;7!O;F5N=',](EQ34$5,3$U%325C;&%S
            M<RXM,2XE;&5V96PN)2Y#3TU03TY%3E137"(@8V%S=&EN9W1I;64](EQ34$5,
            M3$U%325C;&%S<RXM,2XE;&5V96PN)2Y#05-424Y'5$E-15PB(&1U<F%T:6]N
            M/2)<4U!%3$Q-14TE8VQA<W,N+3$N)6QE=F5L+B4N1%52051)3TY<(B!E9F9E
            M8W0](EQ34$5,3$U%325C;&%S<RXM,2XE;&5V96PN)2Y%1D9%0U1<(B!E9F9E
            M8W1T>7!E/2)<4U!%3$Q-14TE8VQA<W,N+3$N)6QE=F5L+B4N149&14-45%E0
            M15PB('-A=F5I;F9O/2)<4U!%3$Q-14TE8VQA<W,N+3$N)6QE=F5L+B4N4T%6
            M14E.1D]<(B!S8VAO;VP](EQ34$5,3$U%325C;&%S<RXM,2XE;&5V96PN)2Y3
            M0TA/3TQ<(B!S;W5R8V4](EQ34$5,3$U%325C;&%S<RXM,2XE;&5V96PN)2Y3
            M3U520T5<(B!S;W5R8V5P86=E/2)<4U!%3$Q-14TE8VQA<W,N+3$N)6QE=F5L
            M+B4N4T]54D-%4$%'15PB('-O=7)C97-H;W)T/2)<4U!%3$Q-14TE8VQA<W,N
            M+3$N)6QE=F5L+B4N4T]54D-%4TA/4E1<(B!S=6)S8VAO;VP](EQ34$5,3$U%
            M325C;&%S<RXM,2XE;&5V96PN)2Y354)30TA/3TQ<(B!S<CTB7%-014Q,345-
            M)6-L87-S+BTQ+B5L979E;"XE+E-27"(L/'-P96QL("P@+SXL,7P-"CPO<W!E
            M;&QL979E;#X-"GQ%3D1&3U)\#0H\+W-P96QL8VQA<W,^#0I\)7P-"GQ%3D1&
            =3U)\#0H)/"]S<&5L;',^#0H\+V-H87)A8W1E<CX`
            `
            end
          Your message has been successfully submitted and would be delivered to recipients shortly.