============================================================================= From: Michael J. Alexander, Asst. Prof. School of EE/CS, Wash. St. Univ. Pullman, WA 99164-2752 (509)335-2448 fax:(509)335-3818 email: alexander@eecs.wsu.edu http://www.eecs.wsu.edu/~alexande Hello, I am sending you the source code which you requested for the Steiner Problem in a Graph (SPG). I hope it is useful in your routing research. The code is written in C++ and compiles cleanly using our (GNU) g++ and CenterLine C++ compilers, which are running on SunOS on Sun SparcStatiions. I don't think there should be any problem compiling it on a different system -- if there is, let me know and I'm sure it can be fixed easily. Now, let me explain what I've included. The code contains eight different deterministic heuristics for SPG; these algorithms are named as follows: KMB -- implementation of Kou, Markowsky, Berman 1981 IKMB -- Iterated-KMB algorithm ZEL -- implementation of Alexander Zelikovsky's 11/6 approximation. IZEL -- Iterated-ZEL algorithm DOM -- a "dominance-based" algorithm for shortest-path Steiner trees (termed Steiner arborescences) DJKA -- variation of Dijkstra's algorithm for Steiner arborescences PFA -- Path-Folding Steiner arborescence algorithm IDOM -- Iterated-DOM algorithm You'll notice that the last four algorithms (DOM, DJKA, PFA, IDOM) compute Steiner arborescences, rather than ordinary Steiner trees. A graph Steiner arborescence is a (rooted) Steiner tree, where all source-sink paths must be as short as possible, and tree cost is then minimized. These algorithms are discussed in our DAC'95 paper, "New Performance-Driven FPGA Routing Algorithms", which is available via our WWW homepage. We've found arborescences useful for minimizing delay in our routing -- I hope you look them over for your network routing (multicast, etc.) and let us know what you think. You'll also notice that I've supplied two different driver programs, "main_grid" and "main_complete", both of which exercise the exact same algorithm code. The two drivers simply construct different "shaped" SPG instances, passing these SPG instances on to the same SPG algorithms to be solved. The first driver represents some FPGA routing experiments which we ran, and the latter runs the Steiner algorithms on a complete graph with random edge weights. Both programs take command-line arguments, and the source code should be easily modifiable to run other variations. After compiling them, run "main_grid" (or "main_complete") without any arguments to see what arguments the programs take. Program "main_grid" constructs a 20-by-20 grid graph (the dimensions are easily changed) and then routes an n-pin net on this graph. In order to model FPGA routing and congestion, the code models previously routed nets by making edge weights non-rectilinear (See Experimental Results section of the DAC'95 paper for details). If you're not solving SPG in grid-like graphs, you'll probably find the program "main_complete" more useful; it assigns random edge weights to a complete graph, and then spans a subset of size n of the total nodes. The code is appended below; it is a uuencoded file containing SPG1.tar. Save the appended file below as SPG1.uue, and then run the command "uudecode SPG1.uue" which will create the file SPG1.tar. The contents of SPG1.tar are the following: $tar tvf SPG1.tar -rw-r--r--3712/26 6653 Jan 25 16:05 1996 ./arb.C -rw-r--r--3712/26 5590 Jan 25 16:05 1996 ./complete.C -rw-r--r--3712/26 16436 Jan 25 16:05 1996 ./graph.C -rw-r--r--3712/26 9835 Jan 25 16:05 1996 ./grid.C -rw-r--r--3712/26 14569 Jan 25 16:05 1996 ./heap.C -rw-r--r--3712/26 6712 Jan 25 16:05 1996 ./idom.C -rw-r--r--3712/26 8571 Jan 25 16:05 1996 ./ikmb.C -rw-r--r--3712/26 8502 Jan 25 16:05 1996 ./kmb.C -rw-r--r--3712/26 9420 Jan 25 16:05 1996 ./main_complete.C -rw-r--r--3712/26 9448 Jan 25 16:05 1996 ./main_grid.C -rw-r--r--3712/26 9405 Jan 25 16:05 1996 ./pfa.C -rw-r--r--3712/26 2389 Jan 25 16:05 1996 ./random.C -rw-r--r--3712/26 8555 Jan 25 16:05 1996 ./stats.C -rw-r--r--3712/26 12606 Jan 25 16:05 1996 ./tree.C -rw-r--r--3712/26 8027 Jan 25 16:05 1996 ./util.C -rw-r--r--3712/26 9795 Jan 25 16:05 1996 ./zel.C -rw-r--r--3712/26 11083 Jan 25 16:05 1996 ./include.h -rw-r--r--3712/26 1831 Oct 31 16:26 1995 ./makefile $ Running the command "tar xvf SPG1.tar" will extract these files into the current working directory. Please don't hesitate to contact me if you have any questions and/or problems with the code, want more info on the specific algorithms, etc. Good luck. Mike A --------------------Save below as "SPG1.uue" ----------------------- begin 644 SPG1.tar M+B]A7)I9VAT("AC*2`Q.3DT+"`Q.3DU+"`Q.3DV("`@("`@("`@ M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@*B\*+RH@("`@ M(%1H92!296-T;W(@86YD(%9I2!N;W0@8F4@9&ES=')I8G5T960@ M9G5R=&AE2!P87)T:6-U;&%R('!UV%L97AA;F1E MPH@("!I;G0@:2P@:BP@=V5I9VAT+"!F:6YA;%]C M;W-T.R`*("`@5')E95]4>7!E("IP871H7V1A9',["B`@('-TPH@("`@("!I9B`H(&=?;F]D97-;:ETN M;G1Y<&4@(3T@4TE.2R`I"B`@("`@("`@(&-O;G1I;G5E.R`*("`@("`@:68@ M*"!G7VYO9&5S6VI=+FYT>7!E(#T](%-/55)#12`I"B`@("`@("`@(&-O;G1I M;G5E.R`*("`@("`@9V5T7W!A=&A?;F]D97,@*"!SPH@("`@("`@("!I9B`H('!A=&A?9&%D%]R861I=7,@*"!SPH@("!S=')U8W0@7!E(#T](%-)3DL@?'P@(&=?;F]D97-;:5TN;G1Y<&4@ M/3T@4T]54D-%("D@>PH@("`@("`@("!S:&]R=&5S=%]P871H7W1R964@*"!I M("D[(`H@("`@("`@("!A9&1?=')E92`H('1H:7,@*3L@"B`@("`@('T*("`@ M?0H*("`@7!E(%L@=&]T7VYO M9&5S("L@,2!=.R`*"B`@('-T7V=R87!H(&1O;5]GPH@("`@("!D;VU?9W)A<&@N9U]N;V1E7!E(#T] M(%-/55)#12D@*2`*("`@("`@("`@("`@8V]N=&EN=64[(`H@("`@("`@("!I M9B`H(&L@/3T@:B`I(`H@("`@("`@("`@("!C;VYT:6YU93L@"B`@("`@("`@ M(&EF("@@(61O;6EN871E2`F)@H@("`@("`O+R`@("`@(&=?;F]D97-;:ETN=B`\("!G7VYO9&5S M6VM=+G8@*0H@("`@("`O+R`@("!C;VYT:6YU93L*("`@("`@("`@9&ES="`] M(&UI;G!A=&@@*"!K+"!J("D[(`H@("`@("`@("!I9B`H(&1IPH@("`@("`@("!I9B`H('!A=&A?9&%D2P@=&AI6-L M97,@86YD('!R;V1U8V5S(&$@=')E92X*"B`@(&1O;5]G%]R861I=7,@*"!S2!O9B!6:7)G:6YI82`@("`@("`@("`@("HO"B\J("`@("`@ M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@("`@("`@("`@("HO"B\J(%1H:7,@8V]D92!M87D@;F]T(&)E M(&1I2!O9B!6:7)G:6YI M82X@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("HO"B\J(%1H:7,@ M8V]D92!I2!T:&4@:6YP=70@PH@("`@("!G7VYO9&5S6VE=+G@@("`@("`@("`]($E. M4%54+3YG7VYO9&5S6VE=+G@[("`@("`@("\O("AX+'DI('5S960@9F]R(`H@ M("`@("!G7VYO9&5S6VE=+GD@("`@("`@("`]($E.4%54+3YG7VYO9&5S6VE= M+GD[("`@("`@("\O('!L;W1T:6YG(&]N;'D*("`@("`@9U]N;V1EF4@*0I["B`@(&EN="!I+"!P:6YS+"!V M97)T97@[(`H@("!I;G0@=&%K96Y;('1O=%]N;V1E%T@*2`*("`@("`@("`@8V]N M=&EN=64[(`H@("`@("!G7VYO9&5S6W9E%TN;G1Y<&4@/2!324Y+.R`* M("`@("`@9U]N;V1E%T@/2`Q.R`*+R\@("`@<')I;G1F*"(E9"P@(BP@=F5R M=&5X("D[(`H@("`@("`K*W!I;G,[(`H@("!]"B\O('!R:6YT9B@B7&XB*3L@ M"GT*"B\J*BHM("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M*BHJ+R`*+RHJ*B!S971U<%]G2D@<&%I2!F;W(@ M<&QO='1I;F<@;F]D97,L(&%N9"!I%]I>"`^(&1I;2`I('L* M("`@+R\@("`@>%]I>"`](#`[(`H@("`O+R`@("`K*WE?:7@[(`H@("`O+R!] M"B`@("`@('A?:7@@/2!R86YD;VT@*"`P+"`Q,#`@*3L@"B`@("`@('E?:7@@ M/2!R86YD;VT@*"`P+"`Q,#`@*3L@"@H@("`@("!G7VYO9&5S6W-T7VEX72YX M(#T@>%]I>#L@"B`@("`@(&=?;F]D97-;%TN;G1Y<&4@/2!35$5) M3D52.R`*("`@("`@9U]N;V1E%TN%TN=B`]('-T7VEX.R`*("`@("`@*RMS=%]I>#L@ M"B`@('T*?0H*+RHJ*BT@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("TJ*BHO(`HO*BHJ('-E='5P M7V=R87!H7V5D9V5S*"D@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@("HJ*B\@"B\J*BHM("T@+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M*BHJ+R`*=F]I M9"!S=%]GPH@("`@("!F;W(@*"!J(#T@:2`K(#$[(&H@/"!T M;W1?;F]D97,[(&HK*R`I('L*("`@("`@("`@961G95]W96EG:'0@/2!R86YD M;VT@*"!-24Y?141'15]714E'2%0L($U!6%]%1$=%7U=%24=(5"`I.PH@("`@ M("`@("!S971?961G95]L96X@*"!I+"!J+"!E9&=E7W=E:6=H="`I.R`*("`@ M("`@+R\@<')I;G1F*"(C($5D9V4@*"5D+"5D*2!H87,@=V5I9VAT("5D7&XB M+"!I+"!J+"!E9&=E7W=E:6=H="`I.R`*("`@("`@?0H@("!]"GT*"@`````` M`````````````````````````````````````````````````"XO9W)A<&@N M0P`````````````````````````````````````````````````````````` M```````````````````````````````````````````````````````````` M```P,3`P-C0T`#`P,#2!O9B!6:7)G:6YI M82`@("`@("`@("`@("HO"B\J("`@("`@("`@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("HO M"B\J(%1H:7,@8V]D92!M87D@;F]T(&)E(&1I2!O9B!6:7)G:6YI82X@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@("`@("HO"B\J(%1H:7,@8V]D92!IPH@("!I;G0@:3L@"B`@(&EN="!C=7)?;&5N+"!M87A?;&5N.R`*"B`@ M(&UA>%]L96X@/2`M24Y&24Y)5$4[(`H@("!F;W(@*"!I(#T@,#L@:2`\('1O M=%]N;V1EPH@("`@("!I9B`H(&=?;F]D97-;:5TN;G1Y<&4@ M(3T@4TE.2R`I(`H@("`@("`@("!C;VYT:6YU93L@"B`@("`@(&-UPH@("`@("`@("!M87A?;&5N("`](&-U%]L96X[(`I]"@HO*BHJ+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M("T@+2`M("T@+2HJ*B\@"B\J*BH@9FEN9%]N;V1E7W!OPH@("!I;G0@ M:3L@"@H@("!F;W(@*"!I(#T@,#L@:2`\('1O=%]N;V1EPH@ M("`@("!I9B`H(&YO9&5S6VE=+G8@/3T@;B`I(`H@("`@("`@("!R971UPH@("`@ M("!I9B`H(&5?<'1R+3YV(#T](&XR("D@>PH@("`@("`@("!D:7-T(#T@95]P M='(M/G<[(`H@("`@("`@("!R971UPH@("`@("!I9B`H(&5?<'1R+3YV(#T](&XR("D@>PH@("`@("`@ M("!E7W!T2!E>&ES=',@:6X@=&AE(&=R87!H+B`@268@ M:70@9&]EPH@("`@("!I9B`H(&5?<'1R M+3YV(#T](&XR("D@"B`@("`@("`@(')E='5R;B`Q.R`*("`@?0H@("`*(VEF M9&5F(%9%4D)/4T4*("`@<')I;G1F*")A9&1I;F<@961G92!F3$@/2!G7VYO9&5S6S!=+GD[ M(`H@("!X,2`]('-C86QE7W@@*"!X,2`I.R`*("`@>3$@/2!S8V%L95]Y("@@ M>3$@*3L@"B\O('!R:6YT9B`H(G0@)60@)60@)60@)61<;B(L(#$L('@Q+"!Y M,2P@,2`I.R`*"B`@(&-O;&]R(#T@9V5T7V-O;&]R*"D[(`H*("`@5B`](&UA M>%]N;V1EPH@("`@ M("!I9B`H(&=?;F]D97-;:UTN;G1Y<&4@/3T@4TE.2R`I('L*("`@("`@("`@ M>#$@/2!G7VYO9&5S6VM=+G@[(`H@("`@("`@("!Y,2`](&=?;F]D97-;:UTN M>3L@"B`@("`@("`@('@Q(#T@"`H('@Q("D[(`H@("`@("`@("!Y M,2`]('-C86QE7WD@*"!Y,2`I.R`*("`@("`@("`@<')I;G1F("@B="`E9"`E M9"`E9"`E9%QN(BP@,"P@>#$L('DQ+"`P("D[(`H@("`@("!]"B`@("`@(&5L M7!E(#T](%-/55)#12`I('L*("`@("`@ M("`@>#$@/2!G7VYO9&5S6VM=+G@[(`H@("`@("`@("!Y,2`](&=?;F]D97-; M:UTN>3L@"B`@("`@("`@('@Q(#T@"`H('@Q("D[(`H@("`@("`@ M("!Y,2`]('-C86QE7WD@*"!Y,2`I.R`*("`@("`@("`@<')I;G1F("@B="`E M9"`E9"`E9"`E9%QN(BP@,2P@>#$L('DQ+"`Q("D[(`H@("`@("!]"B`@("`@ M(&EF("@@9&%D6VM=("$]($Y/7T1!1"`I('L*("`@("`@("`@>#$@/2!G7VYO M9&5S6VM=+G@[(`H@("`@("`@("!Y,2`](&=?;F]D97-;:UTN>3L@"B`@("`@ M("`@('@R(#T@9U]N;V1E"`H('@Q M("D[(`H@("`@("`@("!Y,2`]('-C86QE7WD@*"!Y,2`I.R`*("`@("`@("`@ M>#(@/2!S8V%L95]X("@@>#(@*3L@"B`@("`@("`@('DR(#T@2`H M('DR("D[(`H*("`@("`@("`@<')I;G1F("@B=R`E9"`E9"`E9"`E9"`E9"`E M9%QN(BP@8V]L;W(L('@Q+"!Y,2P@>#(L('DR+"!C;VQOPH@("!R971U3([(`H*("`@=')A=F5RPH@("`@("!F M;W(@*"!E7W!TCL@95]P='(@/2!E7W!T M#$@/2!G7VYO9&5S6V9R;VU= M+G@["B`@("`@("`@('DQ(#T@9U]N;V1E#L*("`@("`@("`@>3(@/2!G7VYO9&5S6W1O M("!=+GD["@H@("`@("`@("!P#(L('DR("D[(`H@("`@("`@("!E7W!TCL@95]P M='(R(#T@95]P='(R+3YN97AT("D@>PH@("`@("`@("`@("!I9B`H(&5?<'1R M,BT^=B`]/2!FPH@("`@("`@("`@("`@("!E7W!TPH@ M("!I;G0@8V]L;W([(`H@("!I;G0@:2P@9G)O;2P@=&\[(`H@("!G7V5D9V4@ M*F5?<'1R+"`J95]P='(R.R`*("`@:6YT('@Q+"!Y,2P@>#(L('DR.R`*"B`@ M(&-O;&]R(#T@9V5T7V-O;&]R*"D[(`H*("`@=')A=F5R3$@/2!G7VYO M9&5S6V9R;VU=+GD[(`H@("`@("`@("!X,B`](&=?;F]D97-;=&\@(%TN>#L@ M"B`@("`@("`@('DR(#T@9U]N;V1E3$@/2!S8V%L95]Y("@@ M>3$@*3L@"B`@("`@("`@('@R(#T@"`H('@R("D[(`H@("`@("`@ M("!Y,B`]('-C86QE7WD@*"!Y,B`I.R`*"@H@("`@("\O("!P3$L('@Q+"!Y,BP@,2D[ M"B`@("`@+R\@('!R:6YT9B`H(G<@)60@)60@)60@)60@)60@)61<;B(L(#$L M('@R+"!Y,BP@>#$L('DR+"`Q*3L*"B`@("`@("`@('!R:6YT9B`H(G<@)60@ M)60@)60@)60@)60@)61<;B(L(&-O;&]R+"!X,2P@>3$L('@R+"!Y,BP@8V]L M;W(I.PH@("`@("`@("`@("`@("`@("`@("`@("\O($UAPH@("`@("`@("`H*F9N*2`H(&5?<'1R("D[(`H@("`@("!]"B`@('T* M?0H*+RHJ*BT@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M("T@+2`M("T@+2`M("T@+2`M("TJ*BHO(`HO*BHJ(')EPH@("!E7W!TPH@("!I9B`H(&XQ+3YX(#P@;C(M/G@@*2`*("`@("`@"`^(&XR+3YX("D@"B`@("`@(')E='5R M;B`Q.R`*("`@("`@("`@("`@("`@+R\@17%U86PL(&)R96%K('1I97,@9FER M2!C;V]R9"XN+@H@("!I9B`H(&XQ+3YY(#P@;C(M/GD@*2`*("`@ M("`@2`^(&XR+3YY("D@"B`@("`@ M(')E='5R;B`Q.R`*("`@("`@("`@("`@("`@+R\@+BXN=&AE;B!B>2!V97)T M97@@;G5M8F5R+@H@("!I9B`H(&XQ+3YV(#P@;C(M/G8@*2`*("`@("`@"`\(&XR+3YX("D@"B`@("`@(')E='5R;B`M,3L@"B`@(&EF("@@ M;C$M/G@@/B!N,BT^>"`I(`H@("`@("!R971U%]E9&=E&ET M("@@+3$@*3L@"B`@('T*("`@>BT^;F5X="`]('H[(`H@("!F;W(@*"!I(#T@ M,#L@:2`\(&YU;5]N;V1EPH@("`@("!A9&I;:5T@/2!Z.R`* M("`@("`@9U]N;V1E'1? M961G92`](&5D9V5?PH@("!I;G0@:3L@ M"@H@("!TCL@"B`@("`@(&=?;F]D97-;:5TN;G1Y<&4@/2!.3TY%.R`*("`@?0H@ M("!N97AT7V5D9V4@/2!E9&=E7W-T86-K.R`*?0H*+RHJ*BT@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M("TJ*BHO(`HO*BHJ(')ECL@="`]('0M/FYE>'0@*2![ M"B`@("`@("`@(&EF("@@=F%L6W0M/G9=(#P@,"`I('L*("`@("`@("`@("`@ M<')I;W)I='D@/2!V86Q;:UT@*R`H5F%L7U1Y<&4I('0M/G<[(`H@("`@("`@ M("`@("!I9B`H(&AE87!?=7!D871E*'0M/G8L('!R:6]R:71Y*2`I('L*("`@ M("`@("`@("`@("`@=F%L6W0M/G9=(#T@+7!R:6]R:71Y.PH@("`@("`@("`@ M("`@("!D861;="T^=ET@/2!K.PH@("`@("`@("`@("!]"B`@("`@("`@('T* M("`@("`@?0H@("!]"GT*"B\J*BHM("T@+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M*BHJ M+PHO*BHJ(&UI;E]S<&%N;FEN9U]T3L@"B`@(&EN="!K.R`*"B`@(&AE87!?PH@("`@("`@ M("`@("!P2`]("A686Q?5'EP92D@="T^=SL@"B`@("`@("`@("`@ M(&EF("@@:&5A<%]U<&1A=&4H="T^=BP@<')I;W)I='DI("D@>PH@("`@("`@ M("`@("`@("!V86Q;="T^=ET@/2`M<')I;W)I='D["B`@("`@("`@("`@("`@ M(&1A9%MT+3YV72`](&L["B`@("`@("`@("`@('T*("`@("`@("`@?0H@("`@ M("!]"B`@('T*?0H*+RHJ*BT@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("TJ*BHO"B\J M*BH@"`H*2`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@("`@("`@("`@("`@("`@*BHJ+PHO*BHJ+2`M("T@+2`M("T@ M+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2HJ*B\*:6YT('-C86QE7W@@*"!I;G0@>"`I"GL*("`@2`H*2`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@("`@("`@*BHJ+PHO*BHJ+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2HJ*B\*:6YT('-C86QE7WD@*"!I;G0@>2`I"GL*("`@2!N;W0@8F4@9&ES=')I8G5T960@9G5R=&AE2!P87)T:6-U;&%R M('!UV%L97AA;F1EPH@("`@("!G7VYO9&5S M6VE=+G@@("`@("`@("`]($E.4%54+3YG7VYO9&5S6VE=+G@[(`H@("`@("!G M7VYO9&5S6VE=+GD@("`@("`@("`]($E.4%54+3YG7VYO9&5S6VE=+GD[(`H@ M("`@("!G7VYO9&5S6VE=+FYT>7!E("`@("`]($E.4%54+3YG7VYO9&5S6VE= M+FYT>7!E.R`*("`@("`@9U]N;V1EPH@("`@("`@("!L969T("`](&)AF4@/2!R86YD;VT@*"`R+"`U*3L@"@H@("`@("!G96YE MPH@("`@("!T86ME;B!;(&D@72`@/2`P M.R`*("`@?0H*("`@"`](')A;F1O;2`H M(#`L($=2241?1$E-*D=2241?1$E-("T@,2`I.R`*("`@("`@:68@*"!T86ME M;EMV97)T97A=("D@"B`@("`@("`@(&-O;G1I;G5E.R`*("`@("`@9U]N;V1E M7!E(#T@4TE.2SL@"B`@("`@(&=?;F]D97-;=F5R=&5X M72YS=&%T=7,@/2!!0U1)5D4[(`H@("`@("!T86ME;EMV97)T97A=(#T@,3L@ M"B\O("`@('!R:6YT9B@B)60L("(L('9E"`I.R`*("`@("`@*RMP:6YS M.R`*("`@?0HO+R!P%TN>"`](&H@*B!0 M3$]47U)!3D=%+T=2241?1$E-.R`*("`@("`@("`@9U]N;V1E%TN M>2`](&D@*B!03$]47U)!3D=%+T=2241?1$E-.PH@("`@("`@("!G7VYO9&5S M6W-T7VEX72YN='EP92`](%-414E.15([(`H@("`@("`@("!G7VYO9&5S6W-T M7VEX72YS=&%T=7,@/2!)3D%#5$E613L@"B`@("`@("`@(&=?;F]D97-;PH@("!I;G0@:2P@:BP@ M8F%S92P@;&5F="P@PH@("`@("`@("!L969T M("`](&)APH@("`@("!B87-E(#T@:2`J($=2241?1$E-.R`*("`@("`@ M9F]R("@@:B`](#`[(&H@/"!'4DE$7T1)32`M(#$[(&HK*R`I('L*("`@("`@ M("`@;&5F="`@/2!B87-E("L@:CL@"B`@("`@("`@(')I9VAT(#T@;&5F="`K M(#$[(`H@("`@("`@("!S971?961G95]L96X@*"!L969T+"!R:6=H="P@24Y) M5$E!3%]714E'2%0@*3L@"B`@("`@('T*("`@?0H@("`@("`*("`@9F]R("@@ M:2`](#`[(&D@/"!'4DE$7T1)32`M(#$[(&DK*R`I('L*("`@("`@8F%S92`] M(&D@*B!'4DE$7T1)33L@"B`@("`@(&9OPH@("!I;G0@:2P@:BP@ M8F%S92P@;&5F="P@PH@ M("`@("`@("!L969T("`](&)A2!N;W0@8F4@9&ES=')I8G5T960@9G5R=&AE2!P87)T:6-U;&%R('!U MV%L97AA;F1EPH@("!S=')U8W0@:&5A<%]N;V1E("IN<'1R M.R`*("`@:6YT(&D[(`H*("`@;6%X7W-I>F4@/2!M87A?:&5A<%]S:7IE("L@ M,3L@"@H@("!A(#T@;F5W("!S=')U8W0@:&5A<%]N;V1E*EMM87A?&ET("@@+3$@ M*3L@"B`@('T*("`@9F]R("@@:2`](#`[(&D@/"!M87A?F4[(&DK*R`I('L*("`@("`@;F]D M95]S=&%C:UMI72`](&YP='(["B`@("`@("LK;G!T#L*("`@;F]D95]S=&%C:R!; M(&YO9&5?2P@PH@("`@("!H96%P7VYO9&4@/2!A6VE=.R`* M("`@+R\@<')I;G1F*"(@*"4S9"D@)3)D(%QT('<@/2`E-2XS9EQN(BP@"B`@ M("\O("`@(&AE87!?;F]D92T^<&]S+"!H96%P7VYO9&4M/G8L(&AE87!?;F]D M92T^=R`I.PH@("`@("!PPH@("!I;G0@:3L@"B`@('-TF4[(&DK*R`I('L)"B`@("`@(&EF("@@85MI72T^=B`]/2!K("D@>R`)+RHJ M*B!I65S+BXN8G5T('=I M=&@@:&EG:&5R('!R:6]R:71Y/R`J*BHO"B`@("`@('`M/G<@/2!C;VUP87)E M.R`)"2\J*BH@:68@2`J*BHO M"B`@("`@('5P7VAE87`@*"!P;W,@*3L@"B`@("`@(')E='5R;B`Q.R`*("`@ M?0H@("!E;'-E"B`@("`@(')E='5R;B`P.R`*?0H@("`*+RHJ*BT@+2`M("T@ M+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("TJ*BHO"B\J*BH@:6YS97)T7VAE87!?;F]D92@I("`@ M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ M*BHJ+PHO*BHJ+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2HJ*B\*=F]I9"!M:6Y? M:&5A<#HZ:6YS97)T7VAE87!?;F]D92`H(&EN="!N;V1E7VYU;2P@5F%L7U1Y M<&4@=V5I9VAT("D*>PH@("!S=')U8W0@:&5A<%]N;V1E("IN97=?:&5A<%]N M;V1E.R`*("`@:6YT(&D[(`H*("`@;F5W7VAE87!?;F]D92`](&=I;6UE7VYO M9&4H*3L*("`@:68@*"`A;F5W7VAE87!?;F]D92`I('L*("`@("`@9G!R:6YT M9BAS=&1EF4[(`H@("!W:&EL92`H(&D@/B`Q("8F M($=4*&%;4$%214Y4*&DI72QN97=?:&5A<%]N;V1E*2`I('L*("`@("`@85MI M72`](&%;4$%214Y4*&DI73L@"B\O("`@(&%;:5TM/G!OPH@("!S=')U8W0@:&5A<%]N;V1E("IM:6X[(`H*("`@:68@*"!H96%P M7W-I>F4@/3T@,"`I(`H@("`@(')E='5R;B`HF4[(`H@("!D M;W=N7VAE87`@*"`Q("D[(`H*+R\@;6EN+3YP;W,@/2`P.R`)+R\@;6%R:R!T M:&ES(&AE87!?;F]D92!APH@("!S=')U8W0@:&5A<%]N;V1E("IT;7`[(`H@("!I;G0@;&5F M="P@%]H96%P7W-I>F4@*0I["GT*"B\J*BHM("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M("T@+2`M("T@+2`M*BHJ+PHO*BHJ('YM87A?:&5A<"@I("T@9&5S=')U M8W1O%]H96%P M.CI^;6%X7VAE87`@*"`@*0I["GT*"B\J*BHM("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M*BHJ+PHO*BHJ(&AE87!?=7!D871E*"D@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("HJ*B\*+RHJ*BT@ M+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("TJ*BHO"FEN="!M87A?:&5A<#HZ:&5A<%]U M<&1A=&4@*"!I;G0@:RP@5F%L7U1Y<&4@8V]M<&%R92`I"GL*("`@:6YT(&D[ M(`H@("!S=')U8W0@:&5A<%]N;V1E("IP.R`*("`@:6YT('!OR`)"2\O(&YO+BXN MPDO+R!Y97,N+BYB=70@ M=VET:"!L;W=E3\@"B`@("`@('`M/G<@/2!C;VUP87)E.R`) M"2\O(&EF('-O+"!C:&%N9V4@=&\@;&]W97(@<')I;W)I='D*("`@("`@=7!? M:&5A<"`H('!O%]H96%P.CII;G-E MPH@("`@("!F<')I;G1F*'-T9&5R5QN M(BD[(`H@("`@("!A8F]R=%]I;F9O*"D[(`H@("`@("!E>&ET("@@,2`I.R`* M("`@?0H@("!N97=?:&5A<%]N;V1E+3YV(#T@;F]D95]N=6T[(`H@("!N97=? M:&5A<%]N;V1E+3YW(#T@=V5I9VAT.R`*"B`@("LK:&5A<%]S:7IE.R`*("`@ M:2`](&AE87!?PH@("`@("!A6VE=(#T@85M005)% M3E0H:2E=.R`*+R\@("`@85MI72T^<&]S(#T@:3L@"B`@("`@(&D@/2!005)% M3E0H:2D[(`H@("!]"B`@(&%;:5T@/2!N97=?:&5A<%]N;V1E.R`*+R\@85MI M72T^<&]S(#T@:3L@"GT*("`@("`@"B\J*BHM("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M*BHJ+PHO*BHJ(&EN7!E('=E:6=H="P@ M:6YT('`L(&EN="!Q("D*>PH@("!S=')U8W0@:&5A<%]N;V1E("IN97=?:&5A M<%]N;V1E.R`*("`@:6YT(&D[(`H*("`@;F5W7VAE87!?;F]D92`](&=I;6UE M7VYO9&4H*3L*("`@:68@*"`A;F5W7VAE87!?;F]D92`I('L*("`@("`@9G!R M:6YT9BAS=&1EF4[(`H@("!I(#T@:&5A<%]S:7IE.R`*("`@=VAI;&4@ M*"!I(#X@,2`F)B!,5"AA6U!!4D5.5"AI*5TL;F5W7VAE87!?;F]D92D@*2![ M"B`@("`@(&%;:5T@/2!A6U!!4D5.5"AI*5T[(`HO+R`@("!A6VE=+3YP;W,@ M/2!I.R`*("`@("`@:2`](%!!4D5.5"AI*3L@"B`@('T*("`@85MI72`](&YE M=U]H96%P7VYO9&4[(`HO+R!A6VE=+3YP;W,@/2!I.R`*?0H@("`@("`*+RHJ M*BT@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@ M+2`M("T@+2`M("T@+2`M("T@+2`M("TJ*BHO"B\J*BH@:&5A<%]R96UO=F4H M*2`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@*BHJ+PHO*BHJ+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2`M("T@+2HJ*B\* M:6YT(&UA>%]H96%P.CIH96%P7W)E;6]V92`H("D*>PH@("!S=')U8W0@:&5A M<%]N;V1E("IP.R`*("`@:6YT(&YO9&5?;G5M.R`*"B`@('`@/2!E>'1R86-T M7VUA>%]H96%P7VYO9&4H*3L@"B`@(&YO9&5?;G5M(#T@<"T^=CL@"B`@('!U M=&)A8VM?;F]D92`H('`@*3L@"@H@("!R971U%]H96%P.CIE>'1R86-T7VUA>%]H M96%P7VYO9&4@*"`I"GL*("`@"`](&%;,5T[(`H@("!A6S%=(#T@ M85MH96%P7W-I>F5=.R`*+R\@85LQ72T^<&]S(#T@,3L@"B`@("TM:&5A<%]S M:7IE.R`*("`@9&]W;E]H96%P("@@,2`I.R`*"B\O(&UA>"T^<&]S(#T@,#L@ M"2\O(&UAF4@)B8@1U0H85MR:6=H=%TL85ML87)G97-T M72D@*0H@("`@("!L87)G97-T(#T@PH@("!S=')U8W0@:&5A M<%]N;V1E("IT;7`[(`H@("!I;G0@<&%R96YT.R`*"B`@('!APH@("`@("!T;7`@/2!A6VE=.R`*("`@("`@85MI72`](&%; M<&%R96YT73L@"B\O("`@(&%;:5TM/G!OPH@("!I;G0@:3L@"B`@('-T7)I9VAT("AC*2`Q.3DT+"`Q.3DU+"`Q.3DV("`@("`@("`@("`@ M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@*B\*+RH@("`@(%1H M92!296-T;W(@86YD(%9I2!N;W0@8F4@9&ES=')I8G5T960@9G5R M=&AE2!P87)T:6-U;&%R('!UV%L97AA;F1EPH@("!I;G0@:2P@7!E(#T](%-/55)#12`I('L*("`@ M("`@("`@PH@("`@("!S=%]N;V1E M7V%D9&5D(#T@,#L@"B`@("`@('-T7VYO9&4@/2!.3TY%.R`*("`@("`@("`@ M("`@("`@("`@("`@("`O+R!!9&0@96%C:"!3=&5I;F5R('!O:6YT('1O('1H M92!N970L(&]N92!B>2!O;F4L"B`@("`@("`@("`@("`@("`@("`@("`@+R\@ M;F]T:6YG('=H:6-H(%-0("AI9B!A;GDI(')E9'5C97,@=&AE(&-OPH@("`@("`@("`@("!G7VYO9&5S6VE=+FYT>7!E("`] M(%-)3DL["B`@("`@("`@("`@(&=?;F]D97-;:5TNPH@("`@("`@("`@("`@("!B97-T7V-O'0@PH@("`@("`@("!S=%]N;V1E7V%D9&5D(#T@PH@("`@("`@("!"(#T@="T^=CL@ M"B`@("`@("`@(&1I"!N=6UB97(@=&\@;6%K90H@("`@("`@("`@ M("`@("`@("!C;VYT:6YU93L@("`@("`@("`@("`@("`@("`@("`@("`O+R`@ M9&]M:6YA;F-E('5N:7%U92X@"B`@("`@("`@("`@('T*("`@("`@("`@("`@ M:68@*"!D:7-T7T%"(#P@8VQOPH@("`@("`@("`@("`@ M("!C;&]S97-T7VYO9&4@/2!".R`*("`@("`@("`@("`@("`@8VQOR`@("\O($9O7!E("`](%-414E.15([(`H@("`@+B]I:VUB+D,````````````` M```````````````````````````````````````````````````````````` M`````````````````````````````````````````````````#`Q,#`V-#0` M,#`P-S(P,``P,#`P,#,R`#`P,#`P,#(P-37)I9VAT("AC M*2`Q.3DT+"`Q.3DU+"`Q.3DV("`@("`@("`@("`@("`@("`@("`@("`@("`@ M("`@("`@("`@("`@("`@("`@*B\*+RH@("`@(%1H92!296-T;W(@86YD(%9I M2!N;W0@8F4@9&ES=')I8G5T960@9G5R=&AE2!P87)T:6-U;&%R('!U MV%L97AA;F1EPH@("!S=')U8W0@2`H($=3("D[(`H@("!B97-T7TM-0BT^ M=')E95]C;W-T*"D["@H@("`@("`@("`@("`@("`@("`@("`@+R\@5&AE;BP@ M861D(%-T96EN97(@<&]I;G1S(&EN(')O=6YD%]R861I=7,@*"!S'1? M>#L@"B`@(&EN="!K;6)?<"P@9&5L=&%?:VUB7W!?>"P@:VUB7W!?=5]S+"!K M;6)?<%]S7W@L(&1E;'1A7VMM8E]P7W-?>#L@"@H@("!S=%]N;V1E7V%D9&5D M(#T@,#L@"2\O($9L86<@*')E='5R;B!V86QU92D@:6YD:6-A=&EN9R!I9B!A M="!L96%S="`*"0D)+R\@;VYE(&YO9&4@=V%S(&%D9&5D('1H:7,@"D@/2!+34(H4"D@+2!+34(H M4"!U('MX?2DN("!4;R!D;R!T:&ES+"`*"0DO+R!F:7)S="!C;VUP=71E($M- M0BA0*2P@=&AE(&-O2`H;F5W*2!3=&5I;F5R(&-A;F1I9&%T97,N"@H@("!B=6EL9%]',5]G MWA]*2!F;W(@8V%N9&ED871E('@N("!)9B!D M96QT85]+34(H4"QX*0H)"2\O(&ES("AS=')I8W1L>2D@9W)E871E"UH96%P(&1E;'1A7VMM8BP@ M=VAI8V@@:7,@"`](&MM8E]C86YD+3YE M>'1R86-T7VUI;E]H96%P7VYO9&4H*3L*("`@("`@9&5L=&%?:VUB7W!?>"`] M(&MM8E]P("T@:VUB7W!?=5]X+3YW.R`*("`@("`@:68@*"!D96QT85]K;6)? M<%]X(#X@,"`I('L*("`@("`@("`@9&5L=&%?:VUB+3YI;G-E2!T;R!TWA]*2P@+BXN"@H@ M("`@("!N97AT7W@@/2!D96QT85]K;6(M/F5X=')A8W1?;6%X7VAE87!?;F]D M92@I.PH@("`@("!S=%]C86YD(#T@;F5X=%]X+3YV.R`*("`@("`@:68@*"!G M7VYO9&5S6W-T7V-A;F1=+FYT>7!E(#T](%-414E.15(@)B8@(`H@("`@("`@ M("`@(&=?;F]D97-;"`](&MM8E]P7W5?#L@"@H)"0DO+R!)9B!D96QT85]+34(H4"!U(%,L>WA]*2!I"DL M('1H96X@=')Y(&%D9&EN9R!X(&1UPH@("`@("`@("`@("!G7VYO9&5S6W-T7V-A;F1=+G-T871UPHC:69D968@4TA/5U])2TU""B`@("`@("`@("`@('!R:6YT M9B@B061D:6YG('-T7V-A;F0@/2`@)61<;B(L('-T7V-A;F0@*3L@"B`@("`@ M("`@("`@('!R:6YT9B@B4F5P;&%C:6YG(&)E7!E("`](%-)3DL["B`@("`@("`@("`@ M('-T7VYO9&5?861D960@/2!S=%]C86YD.R`*("`@("`@("`@("`@PH@("`@("`@("!C;VYT:6YU93L@"B`@("`@('T*("`@?0H*("`@PH@("!I;G0@:2P@7!E("ID860["B`@(&EN="`J M=F%L.R`*("`@:6YT(')O;W0[(`H*("`@9&5GPH@ M("`@("`@("!I9B`H(%137W1M<"T^861D7V5D9V4H8W5R+&1A9%MC=7)=+'9A M;%MC=7)=*2`I"B`@("`@("`@("`@(&)R96%K.PH@("`@("`@("!C=7(@/2!D M861;8W5R73L*("`@("`@?0H@("!]"@H@("`@("`@("`@("`@("`@+R\@3F]W M+"!L;V]K(&%T('1H92!3=&5I;F5R('!O:6YT2!O9B!T:&5S92!H879E(&1E9W)E92!O9@H@("`@("`@ M("`@("`@("`@+R\@,B`H;W(@;&5S2!S:&]U;&0@8F4@PH@("`@("!I9B`H("$H9U]N;V1E'0@/3T@ M>B`I('L*("`@("`@("`@9&5G2!N M;W0@8F4@9&ES=')I8G5T960@9G5R=&AE2!P87)T:6-U;&%R('!UV%L97AA;F1E%]R861I=7,@/2`@;6%X7W)A9&EUPH@("!I;G0@=V5I9VAT.R`*("`@:6YT(&DL M(')O;W0L('!A7!E(%L@=&]T7VYO9&5S("L@,2!=.R`*("`@9U]N;V1E("IG(#T@9U]N;V1E MPH@("`@("`@("`@("!'4U]P='(M/F=?;F]D M97-;7!E(#T]($Y/ M3D4@*0H@("`@("`@("!C;VYT:6YU93L@"B`@("`@(&-UPH@("`@("`@("!I9B`H(%137W1M<"T^861D7V5D9V4H8W5R+&1A M9%MC=7)=+'9A;%MC=7)=*2`I"B`@("`@("`@("`@(&)R96%K.R`)"0H@("`@ M("`@("!C=7(@/2!D861;8W5R73L@"B`@("`@('T*("`@?0H*("`@=G-T(#T@ M;F5W("`@(%1R965?5'EP92!;=&]T7VYO9&5S72P@,#L@"@H@("!F;W(@*"!I M(#T@,#L@:2`\('1O=%]N;V1ECL@="`]('0M/FYE>'0@*2!["B`@("`@(&EF("@@=G-T6W0M/G9=(#T] M(#`@*0H@("`@("`@("!C:&EL9')E;E]B96QO=R`K/2!R96-U2!N;V1E(&L@:7,@82!L96%F+@H)"0DO M+R!)9B!T:&ES(&QE868@:7,@*FYO="H@86X@86-T=6%L(&YE="!P:6X@;W(* M"0D)+R\@82`J<')E=FEO=7-L>2H@<&QA8V5D(%-T96EN97(@<&]I;G0L(&ET M"@D)"2\O(&ES('!E;F1A;G0@86YD(&ES(&1E;&5T960N"@H@("!I9B`H("%C M:&EL9')E;E]B96QO=R`I('L*("`@("`@:68@*"`A*&=?;F]D97-;:UTN;G1Y M<&4@/3T@4TE.2R!\?"!G7VYO9&5S6VM=+FYT>7!E(#T](%-/55)#12D@*2![ M"B`@("`@("`@('0@(#T@5%-?=&UP+3YA9&I;:UT["0DO+R!&;W(@=&AE(%13 M7W1M<"!G'0[(`DO+R`N+BYA;F0@=&AE;B!T:&4@;W1H97(N"B`@("`@ M("`@('T*("`@("`@("`@96QS92!["B`@("`@("`@("`@('!R978@/2!T,CL@ M"B`@("`@("`@("`@('0R(#T@=#(M/FYE>'0[(`H@("`@("`@("`@("!W:&EL M92`H('0R+3YV("$](&L@*2!["B`@("`@("`@("`@("`@('!R978@/2!T,CL@ M"B`@("`@("`@("`@("`@('0R(#T@=#(M/FYE>'0[(`H@("`@("`@("`@("!] M"B`@("`@("`@("`@('!R978M/FYE>'0@/2!T,BT^;F5X=#L@"0DO+R`N+BYA M;F0@=&AE;B!T:&4@;W1H97(N"B`@("`@("`@('T*("`@("`@("`@9&%D6VM= M(#T@3D]?1$%$.R`)+R\@3F]W+"!D96QE=&4@=&AI&%C=&QY+@H*("`@("`@("`@7)I9VAT("AC*2`Q.3DT+"`Q.3DU+"`Q.3DV M("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@("`@ M*B\*+RH@("`@(%1H92!296-T;W(@86YD(%9I2!N;W0@8F4@9&ES M=')I8G5T960@9G5R=&AE2!P87)T:6-U;&%R('!UV%L97AA;F1E%]G%]G%]G%]G%]GPH@("!S=')U8W0@%]E9&=E%]E9&=E2!:14P@86QG M;W)I=&AM("TM+0H*("`@:6YT('IE;%]S:6U?;F]D97,@/2!:14PM/F=E=%]S M:6U?;F]D97,H*3L*("`@:6YT('IE;%]T;W1?;F]D97,@/2!:14PM/F=E=%]T M;W1?;F]D97,H*3L*("`@:6YT('IE;%]M87A?961G97,@/2!:14PM/F=E=%]M M87A?961G97,H*3L*"B`@(&=R87!H("`@("`@1B`H('IE;%]T;W1?;F]D97,L M(#(J>F5L7W-I;5]N;V1EF5L7TF5L7W1O=%]N;V1EF5L M7W-I;5]N;V1EF5L7W-I;5]N;V1EF5L7W1O=%]N;V1EF5L7VUA M>%]E9&=E2!01D$@86QG;W)I=&AM("TM+0H*("`@:6YT('!F85]S:6U?;F]D97,@/2!0 M1D$M/F=E=%]S:6U?;F]D97,H*3L*("`@:6YT('!F85]T;W1?;F]D97,@/2!0 M1D$M/F=E=%]T;W1?;F]D97,H*3L*"B`@(&UA>%]H96%P('!F85]H96%P("`H M(#(J,BIP9F%?=&]T7VYO9&5S*G!F85]T;W1?;F]D97,@*3L@"B`@(&=R87!H M('!F85]T;7`@*"!P9F%?=&]T7VYO9&5S+"`R*C(J<&9A7W1O=%]N;V1E2!)1$]-(&%L9V]R:71H;2`M+2T*"B`@(&EN="!I9&]M7W-I;5]N M;V1EF5L7T8L("9I>F5L7T