diff --git a/.github/workflows/labview-ci.yml b/.github/workflows/labview-ci.yml index fe2d534..50989a7 100644 --- a/.github/workflows/labview-ci.yml +++ b/.github/workflows/labview-ci.yml @@ -1,6 +1,6 @@ # This is a basic workflow to help you get started with Actions -name: Check_Broken_VIs +name: labview-ci # Controls when the workflow will run on: @@ -13,7 +13,7 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" - Check_Broken_VIs: + labview-ci: # The type of runner that the job will run on runs-on: [self-hosted, lv2017] @@ -22,12 +22,61 @@ jobs: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v4 + # 安装依赖包(一次,供检查 / 测试 / 构建共用) + - uses: NEVSTOP-LAB/InstallNevstopPackage@main + with: + LabVIEW_Version: 2017 + NEVSTOP-FTP-IP: ${{ secrets.VIPM_FTP_IP }} + NEVSTOP-FTP-PORT: ${{ secrets.VIPM_FTP_PORT }} + PackageName: NEVSTOP-Programming-Palette + # Runs a set of commands using the runners shell - id: Check_Broken_VIs - uses: LV-APT/lvCICD@main + uses: NEVSTOP-LAB/lvCICD@main with: LabVIEW_Version: 2017 Operation: VIAn_CheckBrokenVIs Parameter1: ${{ github.workspace }} + # --- Step 2: Build the VIPM library --- + # Get env variables + # https://github.com/marketplace/actions/github-environment-variables-action + - uses: FranzDiebold/github-env-vars-action@v2 + - name: BuildDailyVIP + id: build-vip + uses: NEVSTOP-LAB/lvCICD@main + with: + LabVIEW_Version: 2017 + Operation: vipm_BuildDailyVIP + Parameter1: ${{ github.workspace }} + Parameter2: NO + + - id: vip-name + run: + $vipName=Split-Path -Path ${{ steps.build-vip.outputs.Result }} -Leaf; + echo "vipName=$vipName" >> $env:GITHUB_OUTPUT + shell: powershell + + - name: Upload a Build Artifact + uses: actions/upload-artifact@v4.3.2 + with: + # Artifact name + name: ${{ steps.vip-name.outputs.vipName }} + path: ${{ steps.build-vip.outputs.Result }} + # The desired behavior if no files are found using the provided path. + if-no-files-found: warn + retention-days: 90 + + # Backup generated files by ftp + # https://github.com/marketplace/actions/simple-ftp-upload + - name: backup Build Artifact by ftp + uses: dennisameling/ftp-upload-action@v1.0.9 + with: + server: ${{ secrets.VIPM_FTP_IP }} + port: ${{ secrets.VIPM_FTP_PORT }} + username: ${{ secrets.VIPM_FTP_USER }} + password: ${{ secrets.VIPM_FTP_PASSWORD }} + secure: false + server_dir: /${{ env.CI_REPOSITORY_OWNER_SLUG }}/${{ env.CI_REPOSITORY_NAME }}/${{ env.CI_ACTION_REF_NAME }}/ + local_dir: ./vip/ diff --git a/.gitignore b/.gitignore index 5c99fff..4da75cc 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ Release/ Debug/ ipch/ +.*.UserState #VC6.0 #---------------------------------- diff --git a/Application/application.lvclass b/Application/application.lvclass index aaa37cc..49503fa 100644 --- a/Application/application.lvclass +++ b/Application/application.lvclass @@ -1,5 +1,5 @@  - + 0 4944486 13816530 @@ -10,26 +10,27 @@ 1 application.lvlib ../application.lvlib - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!+V!!!*Q(C=T:1^DBJ"%)5@FK6VSAH7YAK6/O1+H-"389&Q*X$!&3IBWQ4BU"'2]\I#UPI#/,5F./.PGD;`8FB,NL4>V-#]6VX^48=T5GHPJ,@K<L8(K_X)F`LY@<HQ?_0I=OHXQVYQ`GDQ8`H0]>^KONL/`@H]GD^@<J@,_8-_<I^UEH(QKXO7M@=0\C\DX._?_/WFPTR5;.NW_Q?`:L4NMTY:S`;K8_X8ZS^0`0,T>0WXW\X@0W<./.[`\=Y`=M`XPRC0SY.^=8[W*_[F8UHX.\@0Z_XDX>T_%`T@*AU++:&%%%Z9?<IOU2-^U2-^U2-^U!-^U!-^U!0>U2X>U2X>U2X>U!X>U!X>U!W^>(3B#VXIL%IS?4*25D1JE#3$IO33]#1]#5`#Q[U3HI1HY5FY%BZ3F0!E0!F0QJ0Q-%Q*4]+4]#1]#1_F#EG7DAZ0QE.Z"4Q"4]!4]!1]4+G!*Q!)*AM+"U8!5'!'0Q+?A#@AY;=#HI!HY!FY!BZM"4Q"4]!4]!1]$#GL%I7G\_DQ5%9/D]0D]$A]$A_FZ@!Y0![0Q_0Q-*U=(I@(A8!G>)K$)'?1E_$=/$Q/$V^S?"Q?B]@B=8CQSAZZ7:G?JO`I]"A]"I`"9`!90*31Q70Q'$Q'D]&$72E]"I`"9`!90%QFA]@A-8A-%'.3JJ>2T"BI*"G#Q=/HH"9LOR3&R%KP@]X>165^A+I(3`8!K"Y%V1V7X4D6$6&>;.5&6&U9V1>7@2"61.7*61OK*GL$>5WMC!5R)[<%B"A4)W,9$`X(C:P.2OPV7KP63IP&1L0:4.0J6*0*2/0R7+023-0B=0_W?E`@N=(*?SE`>NW8TVXXK@`_PIP;'H+<PN]^$:L\(Y0GI2UQ]+8RL8HI@D<X@.^V8ZM"GDY-_JK\^^*L?$@KD<KDVTRL^!OVS::W!!!!!! - 335577088 + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!+V!!!*Q(C=T:1^DBJ"%)5@FK6VSAH7YAK6/O1+H-"389&Q*X$!&3IBWQ4BU"'2]\I#UPI#/,5F./.PGD;`8FB,NL4>V-#]6VX^48=T5GHPJ,@K<L8(K_X)F`LY@<HQ?_0I=OHXQVYQ`GDQ8`H0]>^KONL/`@H]GD^@<J@,_8-_<I^UEH(QKXO7M@=0\C\DX._?_/WFPTR5;.NW_Q?`:L4NMTY:S`;K8_X8ZS^0`0,T>0WXW\X@0W<./.[`\=Y`=M`XPRC0SY.^=8[W*_[F8UHX.\@0Z_XDX>T_%`T@*AU++:&%%%Z9?<IOU2-^U2-^U2-^U!-^U!-^U!0>U2X>U2X>U2X>U!X>U!X>U!W^>(3B#VXIL%IS?4*25D1JE#3$IO33]#1]#5`#Q[U3HI1HY5FY%BZ3F0!E0!F0QJ0Q-%Q*4]+4]#1]#1_F#EG7DAZ0QE.Z"4Q"4]!4]!1]4+G!*Q!)*AM+"U8!5'!'0Q+?A#@AY;=#HI!HY!FY!BZM"4Q"4]!4]!1]$#GL%I7G\_DQ5%9/D]0D]$A]$A_FZ@!Y0![0Q_0Q-*U=(I@(A8!G>)K$)'?1E_$=/$Q/$V^S?"Q?B]@B=8CQSAZZ7:G?JO`I]"A]"I`"9`!90*31Q70Q'$Q'D]&$72E]"I`"9`!90%QFA]@A-8A-%'.3JJ>2T"BI*"G#Q=/HH"9LOR3&R%KP@]X>165^A+I(3`8!K"Y%V1V7X4D6$6&>;.5&6&U9V1>7@2"61.7*61OK*GL$>5WMC!5R)[<%B"A4)W,9$`X(C:P.2OPV7KP63IP&1L0:4.0J6*0*2/0R7+023-0B=0_W?E`@N=(*?SE`>NW8TVXXK@`_PIP;'H+<PN]^$:L\(Y0GI2UQ]+8RL8HI@D<X@.^V8ZM"GDY-_JK\^^*L?$@KD<KDVTRL^!OVS::W!!!!!! + 385908736 1.0.0.0 true true true - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!#\55F.31QU+!!.-6E.$4%*76Q!!+FQ!!!2Y!!!!)!!!+DQ!!!!K!!!!!B&B=("M;7.B>'FP<CZM>GRJ9B.B=("M;7.B>'FP<CZM>G.M98.T!!!!!!#1&!#!!!!Q!!!)!!1!!!!!"!!$!$Q!P!!@1)!#!!!!!!%!!1!'`````Q!!!!!!!!!!!!!!!*G;I><Z[>"&P0$;#!S_`/)!!!!-!!!!%!!!!!*MW02?[CK#3L.^UVK\<&SBV"W-W9]!MA4JA!G9\0B#@A!!%!!!!!!!D(J^H^X4HUK)P@`'I>/]2A%!!!$`````!!!!%0Z5W*@%YM):WY=\RW])JH!!!!!%!!!!!!!!!(Y!!5R71U-!!!!#!!*735R#!!!!!&"53$!!!!!&!!%!!1!!!!!#!!*735.$!!!!!!%52%6',5RB9F:*26=A35Z'4SZD>'Q!5&2)-!!!!#-!!1!%!!!(=X6Q='^S>"2%259N4'&C6EF&6S"*4E:0,G.U<!!!!!)!!5)!!!!!!!-!!!!!!!)!!A!!!!!!*A!!!#JYH'0A:W"O9,D!!-3-$%Q.4!J!VA='"AY%&)"!"A#6$161!!!!!!#G!!!#%XC=9W$!"0_"!%AR-D!QGQ&J&D2R-!VD5R0A-B?886"R:KA<71.#0!S!N!?)T?AM(&#5HV[5G+PAFJG47KSA57&BJCHCFVC3G:_8G+0AG6>=5F3;GZJ85MTDEZA5ZOE;LG"E9'D#$?8IJ6;E1M+!!57?"H9Q1-W%B4/'H5B?:LW$0Q1:'*DW!'EG5,"!A]==9C)43/Y%OA:_+$U$31Q!25N@2!!!!!!!$!!"6EF%5Q!!!!!!!Q!!"7]!!!R=?*S66W&I7V55PD?^<6_SF*?.-K,O2X!0K6O66-09;*2UST3>>;;T<NE7:M!)G24MJ%)LJ9N^C?PLX6M2.B$][Y`^&7(WR^#U+5VL`?%G#H9KD0V::?"U5.%`^:R\XFOD3<<V18JS\TXH/^`^TLPHJD-_REY`PX>0;!ND4:SR>J:H<\W<@<O.Q:D2%`?T_]]"RX;6SMK_TGFMXP(,O"%QRYSA2S]]"4-S-6DJC?+;V#RB6/+'BA/Q!OV[@][=^Z>FH^&O^2E#0'YL(*C\J@!#A.=O]S/1Q)*9')8!#L!\#%[ROLV&"171T=ZNQ/@95@0/)+#/!7J/&IQ]5`&:[=6ISU^JL)8CGF\M"3<SKF&!DO"N^QDQS5''L&E3+OC-!,^#/TLMM1],Q%T,\>;!E6HVU6YS3ITL5CMO7=N[!<=G(Z.0\&P2#]`">\P0S%$1!.A"M(\=C26&^A,65&S+*<XY.7C.?2&(,T1DCN?=R8QJ#>EA9\*Y8<]QTJ2<'G$[9#UB7<6WN+FBAOKT%RD?"RN,%&*#RE3N_U&S4ZMF$6$4Y*YS:T5H=@+1EXF[;HV^82&%H@I&4/>=D8J&L<+`?R2KDEDE)#J,*,*V3:1]G[B!4&5A\F9A`N!+R#&I,^C^`[O!N\I#,XA;63!+1M1B9Q1L]$*6)&:0_8]YL2(V''QIOI%1/?2!4-^O4ML0?)W5&*7>CIH*(E&LX&XL):&Z,<W4$9'Q*A$UK!8I6!5)OQ5)0\1!91ASQ"I0+M"6VKA!(3"@'$+'KAL17;]!I]Y;5?_%$86M))1//2$V#G!H3>&?-:FQB/#O%(;3+Z([O4T4,%?^]HD<6/`7S=27+^6GD8CNI79LS<P7L,PG`/#J.U_7W2>!)QG27HZE*S."OEIHSJ6]R'G7,OM4:@9^=`NHI%'(=RPH<;`<[?[Z@3Y,LM-1EA(')[IXA7<6MI#O&U(;(_G-:[DS[*UG8>*1?@#B[I:F#W#FY*-U&]2K/_6//BR3V07\VK18[`-E2OS4_LZ:K[T<,<AJ;"H7MFE24S]CB0NW5.S.YAX^QGHU'I;T.!;(IU8K>:BW%N-Y-9U$URB6+!:-]8D5BPQ."^?M;/;#^AIEG@[5CJNU6G^Y;L:/A/G'A*=X(`*_<5B$A;0QC61*((%%DJ,!VM)$")ZO#"RR"9ZO#,Q<9WK&,6\D+*'!J%KCHUCCC%._BG^[PU5-A8P*XC`5[T=-)81\ZM=&US_6]R_A7:D]-\Q3`B5O'@#H9Z3R_TF"=^H,[U$P;AA.QQZM*0+)[$YK^)NT?P%:\#`K['<_K`?/$<XR4!62<ZT4L]SN,J.O15@XU#0I(NL10?DK(HKY\M>:0>W$TEZD<&-C&BYH`O:>PKL>V_N+S:T09N?RBTC=L9Q^SO&YJ?'L([S7(_5!-9O`IP2,=Z0@B2@$X_C&,1KJB%B@!3@\*?RV@PM96E;4:^P#3^XD<@LUC_BW@A`3@%`L(N,U=ZUY-W'I'>%^*02TCN4%.JT:VBX1T[%YHX0>B!0"QEP[F7PY>L(#EB[@7TU#O:LO`V\5Y%5,T.Y5]E-'@/S0];`%_W&!#V<C7O>W]/+,V@?B/;_6$TDR2R&AW!B9%874=0=GE3W67-=EX"[67(N+G>S)$]V)!MM7'ZK"U1T_!<24:9<N$8`H\G,VH`0QC4,/\I%>"(M7-K8!,I*^"_R@H/:@^>"YT%.DXE2__ZNI`B0(XH4MB+$VMK$R+("^&OR+-`*J9Q6Y]TA,MC^<;+SVULC\F=;`//0>'NG0(0O'F_RF(`(_&GQ(]A(_L=SD^M3:RAK_+>]0PJ^^NXS`_@\QL@E;<0_2HA/PR1^7D^X`&`Y&U"JE[Q!!!!!4!!!!#8C=9W"A9'2E!!)!!"1!!Q!!!!!/&!'!#!!!"D%U,D!O-1!!!!!!!!Q5!)!!!!!%-41O-!!!!!!/&!'!#!!!"D%U,D!O-1!!!!!!!!Q5!)!!!!!%-41O-!!!!!!/&!'!#!!!"D%U,D!O-1!!!!!!!"1"!!!!^6=VAHEGIIQO=V*/"EEZH1!!!!U!!!!!!!!!!!!!!!!!!!!!!!!!A0```````````]RD``_VL@``B'0``\8P``_V\````````````Y!!!!'!!9!"A!@A!9!@_!'!@`Y"A0``!9$``Q'!``]"A0``!9$``Q'!``]"A0``!9$``Q'!``]"A0``!9$``_'!@``ZA"``Y9!(`]'!!@]"A!!]!9!!!!(`````!!!#!0`````````````````````_\O\O\O\O\O\O\O\O\O\P`O\O\OY!\A!/Y!$O\O\O\`\O\O\A\AY/Y/$O$O\O\O`_\O\OY!!/!!\A!/\O\O\P`O\O\O$O$A\OY/\O\O\O\`\O\O\A\AY/\O$O\O\O\O`_\O\O\O\O\O\O\O\O\O\P``````````````````````!!!!!!!!!!!!!!!!!!!!`Q!!!!!!!!$O!!!!!!!!!0]!!!!!!!$P``Y!!!!!!!$`!!!!!!$P`O\P`A!!!!!!`Q!!!!$P`O\O\O`_!!!!!0]!!!!0`O\O\O\O\`!!!!$`!!!!$`\O\O\O\O`Q!!!!`Q!!!!```O\O\O``]!!!!0]!!!!0```_\O````!!!!$`!!!!$``````````Q!!!!`Q!!!!``````````]!!!!0]!!!!0``````````!!!!$`!!!!$``````````Q!!!!`Q!!!!``````````]!!!!0]!!!!0``````````!!!!$`!!!!$````````````Q!!`Q!!!!$`````````````!0]!!!!!!0``````````!!$`!!!!!!!!```_````]!!!`Q!!!!!!!!$_````]!!!!0]!!!!!!!!!!!``]!!!!!$`!!!!!!!!!!!!!!!!!!!!``````````````````````!!!%!0```````````````````````````````````````````[7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ@``J;7FJ;7FJ;7F!!#FJ1!!!+7F!!!!J;7FJ;7FJ;7F``_FJ;7FJ;7FJ1#FJ1#F!+7F!+5!J;5!J;7FJ;7FJ;8``[7FJ;7FJ;7F!!!!!+5!!!#FJ1!!!+7FJ;7FJ;7FJ@``J;7FJ;7FJ;5!J;5!J1#FJ;7F!+7FJ;7FJ;7FJ;7F``_FJ;7FJ;7FJ1#FJ1#F!+7FJ;5!J;7FJ;7FJ;7FJ;8``[7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ@````````````````````````````````````````````]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!HJY!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!HKT]L+S?!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!HKT]J;7FJ;SMHA!!!!!!!!!!!!$``Q!!!!!!!!!!HKT]J;7FJ;7FJ;7ML*Y!!!!!!!!!!0``!!!!!!!!!+T]J;7FJ;7FJ;7FJ;7FL+Q!!!!!!!!!``]!!!!!!!!!`0SFJ;7FJ;7FJ;7FJ;8_L!!!!!!!!!$``Q!!!!!!!!$]L+T]J;7FJ;7FJ;8_`P\]!!!!!!!!!0``!!!!!!!!!0SML+SM`+7FJ;8_`P\_`PQ!!!!!!!!!``]!!!!!!!!!`+SML+SML0SM`P\_`P\_`!!!!!!!!!$``Q!!!!!!!!$]L+SML+SML0\_`P\_`P\]!!!!!!!!!0``!!!!!!!!!0SML+SML+SM`P\_`P\_`PQ!!!!!!!!!``]!!!!!!!!!`+SML+SML+T_`P\_`P\_`!!!!!!!!!$``Q!!!!!!!!$]L+SML+SML0\_`P\_`P\]!!!!!!!!!0``!!!!!!!!!0SML+SML+SM`P\_`P\_`PQ!!!!!!!!!``]!!!!!!!!!L+SML+SML+T_`P\_`P[ML+SML!!!!!$``Q!!!!!!!!!!`0SML+SML0\_`P[ML0SML+SML+Q!!0``!!!!!!!!!!!!!0SML+SM`P[ML0SML+SML+Q!!!!!``]!!!!!!!!!!!!!!!$]L+SML+7ML+SML+SM!!!!!!$``Q!!!!!!!!!!!!!!!!!!`+7ML+SML+SM!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!#ML+SM!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$```````````````````````````````````````````]!!!!#!!)!!!!!!(9!!5:13&!!!!!"!!*52%.$!!!!!22%259N4'&C6EF&6S"*4E:0,G.U<!"16%AQ!!!!)Q!"!!1!!!>T>8"Q<X*U&%2&2CV-97*73568)%F/2E]O9X2M!!!!!A!!1A!!!!!!!!!"!!!!9F"53$!!!!!!!!!!!!!$!!!!!![#!!"!H(C=X6R\=&46'@`/\C<M*BOS'\)*U5!W92/31$$&&S_&SI+%NS2"%'M)W18#B!3T#QWW0G>,3[WDDD05RVA@-W7K<1>H_)/JRM?U+^JO7RZ/>62ME+L9K5[RF:%C.\@@/@@?P;_T?W`7G'(9G>R:VO]\XXH]PN@P\!KQY&(@2-=QX#5!]:X&.]M&+)CE#%#SS1XSKWY0_.L*VU"++YA!#^TNPP=>Q[23!']E6?>O$O_&-SANHB4XO/9[J`I_2.&]8Q5/6C"!=326\F];'P+&$F3'^O9JI`JBEO]"-OR9&[L[SPV!IA].1K+?0PV.:"B)O.LF3N3M\OS.*E,U5U_4OY).[2(!&UY6^9?'JO+);0LX<%DH1[[FTG?5)1'(L)?$"Q_K3HZ*K9Z.9R<KO*9#O$9Y(]KC5R*/49K&BK9TH1+GAX9W+(<#6=/0U,F4*;0KB($+B[KI.S!PG?IK?M)#JH@KV#H5Q[?MNV7!UN$1$?Y+^Y?2^`++<EI=!A)E=61]#%X*$P@QZW+F[S6HFX]F01OG59,(%5K2WDH%VYL`<"7A-:&S<!3[T[+)W`)=G=H/Q[7=RTQ]$\+9H9=HP.=([I%]9H%A96?S:N,#HJWR?,1`W,=ZW.84'9M&>`2X\_K-2Y/2THCH_;CO#[=]V^*NI-993C!!,O>_-E/\\8WQ@`^_X!F]KKL8IWJZ;#CNZ]@60)_L5<9_IGY^N;JOY8T=QP#ZNCVU'WPH/"4Q?BFYJ\.H#XM_Q:\\W@-1?\\$HK@9=RJ\.N%H!@:E]#=.+PRH)PT^0O0#>0#`?P4B@QWC]CY$`%GD]W%S.QO5LZ7560A\(]<^@*9U:N':B4JX;_'0.BJ2:[YV`'?<Y%^V$@$@NW_@4A`0<EY;`CZ#UP#`)&Z!_)P6YIOO/]A!A\_8;<4C=;4R\H3BF8NBCQ\P:(Z'P-_WA@?#NO\NC0;7XMV^UE(Y;C8@1R%)V2/=;[XG<-A#,NZB.X2:Y:V]VYRXO".89Y6X=I-/\UY&\Q[+6M?,$,-N;=S3KYW9::049J<-'BX-7GT6<![-I1-CM#-T*-E=)YR2(G!H>'42G7O%-?JUI-Y/3RC4?3995VV,'*0LMM$YQFPC0Y6OW-6A\'!;K`#=)CE8<K&U,"@?%3])$JCF/R<()%8SD?R9!CK3]`"=:NJ!MLMVXNE@DU<G=Q]HU9!@?H6(Z"5=,S-E:Y;'VD+$R=RA'5S";JC*SZ[]$+X1J\^+]D=S\!QGK[2>+I4C2*#*6./HLU<?[7XO'DK]741C5F&]7IN_]V%^6?I;8]%VFI7'!KL<Z5%>8)M,("Q=R!8CE\@!!/Z"E)F5UW>[`'\T6#22CJ*K_L17`?;D;B@YKB33VGM/E;ZR'MT49J[XRMNQ'Y*-J*I_US<#ZNFQ2;EXWJ-=_;$;&<YGL8#>:I6?6/?NE/AN6+%)<T*<>3<1I:?Q',P')]69&]<90<@2)Z!FBD$%2F+/N!-,$H4AO<#"/@!Y*;YOSZC+:NF*2=S"AT1B7=@8EQ*:DB'&?G_")2>>D>/3!ZDI:Q(M`0HTO%8(DR_8T/&?X/.S*%,U%U^4-FZ9/[^WRJ8L#GI(LG^,<TJ:%5Z69,:WM.'<*6C*:S')_E<8=?AXP2C]8*"XG2%AC:J"XG7!!&EJT=<*:B-E>$:"H-U6O=^GE`X:<.,."N0'+EYKH[XGD1SJ@*6!6E>3_28O]&"6KQ9C@NA)D8!HQZ*$7@!;8(#**GT26Q6-MH*J+M)"P-":<3<24POC'_W,>BA^LJ6Z8/"FS?0S*)^$<67CD5GU0S:*Z+.%C1>(GZKMSB/3-R_`*R3%!E^*A@S2OTD[!N#0#N$/3EWZY(\`]%[X_"FG:`R4DY*A7Y5<[TC*2;5,FOK,SC:O+K;?P$3\*Q=>)(GTNT5;DX@X<AGO[)NQ`>FB3-:E"I+K6*?I(&!$%[QSM2`]X*T:9TY<3>3=-T/+@P.2N4Z]B24'<^;%]7,5$U%AD7L9T&VD!%555+&)WE35FT9VIK*^U=>S&^7COBER7\M?;G]"T#;F%H,(3>D'@:,FVG$$+;.P&Q!C]"B$HU>"HZO<2RJQB.U7[-M(7K1H;YI8>`>%AYM'YN(?7(>@<]Q;A+M&YIGEP*Z_$%YXB!Z-$OW^CJI>DWK.U-$GF[>EHE+;?@LVG7==TGYCV()T$TY.G1=`]41FYL5TGD?L_0"+V;AWRF0TF4$?+M;02R'<-6Y3N9LR/*MC;4<;`+@IZTA<4P\,.*MO9]9:D\0ZPC<D/+%).[<"OHEMVA#SL6M#J,NODU->OA3(PDEU."E8+D?$>.?HQX2^2]PJHC;A:MT9$$?BAQY;9-$JBEP4(*^([1Y$-)C[@^&#X'!QE/Y/08*XW+[VR^5J3X?((LE\<.@</:NJ?2.R??W[,.]!W^"8,@?]1LPH7[5^^^4N=4)+\S;"6',83<1\VIQLU(8I5^1/89E!YL]:9BIN7`2ET<CVU8\K^N:?8SC1E&2:&5O7X(2+_6B&FE!",O\>^U\ALOT=]\1;F?H3PXJ4!D*\`Y<G`7(._^=V#%9\N:+>8:+>V[A>"^IJ:X<1QKD9Q;WL1TPINY5;5,K9H@NN6-5OJ3J754!6R^07?P2V/4RID9*[,1J?FV"1A#BQNS:?R;6$X4XQS=-F!8IYI1II#*35+7`,3MK6N_8S?+U#.+7*--?6G$6W16R0`([2M@O9<L.G==?EGC6GZC4`9_;^SH&8Z_P*(#\0_V^$M4Q"BV[)E\@E?<`5<K$-@B8KLCJ)O=L6@K8DP:4*[<D;`YU_6XO?2X,V1$W7]ZFZV[^.*&=^;S"[MOB=-*&=^7BHNG)H'V=LG%GO?M67.KZW/,X`:KLL/0C3(7\B!`(9=!8%."=77%?59Z-$.(U,2]60B801JKE?U%%H:=4J<=L[P]R=X6#=_M,>M2U^H<N:LVS`0>:AF`,#-$2:&_Z9'#L&<"I#$\0IF3V734/7NOB=MRJOTFWB?4^$]\Z*%Z+/;5)3VEN6H%[>'KW$<@K9B+9,W!1+F37\1+K:EF09*N%L(\<9QCS,V>66'-'#Y:2<[Y!F?A!-P[5XL5;Q;IU$ND]F/;!8;Y?[)#SOHOKLKYH9;,5W#$!^EMJDA"$0M(LOJ)YWA8X5,<G!;,9:O$SMX&X>'>^KH@,1Y-_FUKZ16\=5Y:[=S*YCUM>B4".?!2\&?A<(H#;NQ5P(L)!]G!+&/))ICK'(#+^7,)"],!$JQH4NMOAVVYJ;52QQ,6JIK"8BM8!KA,';;#"/?;&[]&K600#Y)>HZ736YUJ,9A&^39M.L)D:/91=\L#-WY'U/M?'(3CNCAYLQ?)84P);5,`K*@>'0\9N_:'A"Y5/.VXA83&Z4J,3!F;L=:^LU>EK3'Y`VA@]-GPWJK]I64&14L"/3.>\6<5O;=1IO/A`8&&@)=U9?ZC9"JMG>Z$CM#;[%=`K-NT#D;VVFNS:9O#)=\/HGX`E9CUE)GYN*GIGHD()R#9P-R?1%"P(2,3:B-3^35$N@ZF2-QIV=`TJH81MNY234R<394(PA+1E(Z"_)AX(1LK].0[)YY0*:\4;9[;,7X>MX^@5%&`@N\/8@,RH*,0DY%C?TY*.,H]S#URQSSW=EMT!%P3.$\R!!QM]1AN\.'),7WY#?LT8;%_W+2S0"%@3U].Y9B;(XRSA-H2DF-02"LG(I\ZQQZ&@$U"I"$MF97)&9/'1A.O&X8#R19H/L$6L$+U-AO,Q\&L@$;-+,E:3XQA;D#9.9I6?-/K-*,UN=R-8";-)LUGQO$E948M8:Z-*IQGM=2L.%SWD#(X$IH"B.3/</;-,L/4#;=(DED#;]E3OD#7`CRO4#;-)@/9TG"*82B$^L'=VF]AJU;?#P9]:IQJ'R944B[.AQGH"M>"F./*YDIQFP=;*`K9<240RJR,TG"A(W+_Q!Q8)%]]9Z04PQKYTVQW)<^5/B8,L;ZA;?S]1.Z**K-?A_@`(Q!L`/H2@Y45Y&!X9FP_8T!O?BBJ4J?9%$FTIP]!+(&QBQ?)'$(&[A</3]Q".3)1:HU;GKD58ZERG>SEY`/&ZWKJ%%Z6_-55H_V"C6Z%_0=EH_4+YF_</=I&SO+]F<:#25INZ:UKAPS6>F,-H\<8\8Q,O]=^0;FE5XW`Q3.:<FK_W7Z7O_H<+]^;)KS^MOKL+]0>?S@#WH,*_I+]P8ZVS7X])PS`^'!N:F_1:/75Y#K&O8J=3_V637*\8WO$L@-Z8F3<W>D.HV.EZ:`K\[;YL-?^\"+=MLF,)])M#G5+J;W;S>/(HK8%\&]S05]V?CZY=06#V63P,0!=2B;,(\*<?2O8[L!&(J%BN^@[E#^)XQK:[MX+*-4.-K300S7,9+I2KQ]_-%W'K_T[9V^;XQE?6^>L@B0FN:A_6J<?0=:V_G_T5($,$H@?KN^H<>L<9S26UO\RO,8X0!$NZ&^UF9"V^EO<3_X842P1[VOJ5,*;Z/P_GC?RX;[6<M:,PIDJEPON?JFV?:,\LD73[[Z:]G03=_A4\U,]VP/L"TO1]\&R_\VTQN(M%SYY#_=UFE,,)ONZ&;Q_RU_&U,-89N0T+XC$:P.0-TXGDOQ9/Y3$K8(_@?O@QEVRP.P<:P./_`V$O8HX%[F]MZH=O$H-[F=O3>SQ!FE[B8P31?%5`,8J5/>X>E^#IL)CFM13129]`SAT(K78YY2DX,H<QIY<+/%JF[FLNS]CU%SNW=HG53[VEY8S?B+-!`6@M2D8<2-EF\-M)R`U&'2"&'1?8<I;$-VE"_O6N$9@(Q,6`,/&W#@XFEY946`8V<_DOX"_HX47,"_I&:VT35LOS-)[![?\!)CM8\>W[0^M:D[=*I:P.XLCK5`T%D/B$&=?B7[0\\NW!$N0\&MQHK+_]%=&`:NM?X#)`C<A%#Y95F2XQN^0?[\B<X)N_47,6A!60G@N*^.PFW_P]9E&S?VEQ=B>M>;U/06\EH`B^[#-\D!!!!!!!%!!!"%Q!!!!1!!!!!!!!!$!!"1E2)5!!!!!!!!Q!!!')!!!"S?*RD9'$)%Z"A_M>1^Z?"3?!LE#(^FY&:U)`R.Q-$JZ`!93$.+#!*&*<^S]!OK!U7VD[CS]%!";JMD"S3()=&/=!S(#U;$0```_@Y?O1;8-52(TB4::9]BQ1!&'):!!!!!!!!"!!!!!=!!!BV!!!!"Q!!!#&@<GF@4'&T>%NO<X>O4X>O;7ZH4&:$<'&T=U.M>8.U:8)5!)!!!!!!!1!)!$$`````!!%!!!!!!?!!!!!4!"*!-P````]*2GFM:3"1982I!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!&]!]1!!!!!!!!!$%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!!1!#$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!--4'&C6EF&6S"*<G:P!!!91$$`````$F.Z<7*P<#"7:8*T;7^O!!!51$,`````#V.Z<7*P<#"1982I!"J!1!!"`````Q!"$&:F=H.J<WYA4'FT>!!!'E!Q`````R"4:7RF9X2F:#"7:8*T;7^O!!!31#%.5XFN9G^M)%:P>7ZE0Q!31$$`````#%..2#"M;7ZF!!!81!-!%%2J=X"M98EA6'FN:3BN=SE!!"*!5!!"!!M)=W6U>'FO:X-!!"R!1!!"`````Q!"$U:J<'5A28BU:7ZT;7^O=Q!31#%-5W6U>'FO:S".<W2F!!!/1#%)5X2B=H2F:$]!!"*!6!!'#F.U98*U)&2J<75!!":!5!!#!!]!%!J5;7VF=C"*<G:P!!!?!&!!$!!!!!1!"1!'!!=!#!!*!!I!$!!.!!Y!%1!"!")!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U962B9E^S:'6S&!#!!!!!!!)!"1!(!!!-!%!!!@````]!!!!"!!%!!!!0!!!!!!!!!!%!!!!#!!!!!Q!!!!1!!!!&!!!!"A!!!!=!!!!)!!!!#1!!!!I!!!!,!!!!$!!!!!U!!!!/!!!!!!!!!"N-6E.M98.T5(*J>G&U:52B>'&5;7VF=X2B<8!5!)!!!!!!!1!&!!=!!!%!!._'K])!!!!!!!!!*ER71WRB=X.1=GFW982F2'&U95RB=X2"=("M;76E6'FN:8.U97VQ&!#!!!!!!!%!"1!(!!!"!!$@BKP#!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&5?8"F2'6T9R1!A!!!!!!"!!A!-0````]!!1!!!!!"Y!!!!"-!%E!S`````QF';7RF)&"B>'A!%%!Q`````Q>7:8*T;7^O!!Z!-P````]%5'&U;!!!8Q$R!!!!!!!!!!-298"Q<'FD982J<WYO<(:M;7)498"Q<'FD982J<WYO<(:D<'&T=R2%259N4'&C6EF&6S"*4E:0,G.U<!!=1&!!!A!"!!)-4'&C6EF&6S"*<G:P!!!;1%!!!@````]!!QR-97*73568)%FO:G]!!"B!-0````]/5XFN9G^M)&:F=H.J<WY!!"2!-P````],5XFN9G^M)&"B>'A!'E"!!!(`````!!%-6G6S=WFP<C"-;8.U!!!;1$$`````%&.F<'6D>'6E)&:F=H.J<WY!!"*!)1V4?7VC<WQA2G^V<G1`!"*!-0````])1UV%)'RJ<G5!!">!!Q!12'FT='RB?3"5;7VF+'VT+1!!%E"1!!%!#QBT:82U;7ZH=Q!!(%"!!!(`````!!%02GFM:3"&?(2F<H.J<WZT!"*!)1R4:82U;7ZH)%VP:'5!!!Z!)1B4>'&S>'6E0Q!!%E"5!!9+5X2B=H1A6'FN:1!!&E"1!!)!$Q!1#F2J<76S)%FO:G]!!"Y!5!!-!!!!"!!&!!9!"Q!)!!E!#A!-!!U!$A!2!!%!%A!!!!!!!!!?4&:$<'&T=V"S;8:B>'6%982B2':M>%2B>'&4;8JF&!#!!!!!!!%!"1!$!!!"!!!!!!!X!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&%:GRU2'&U921!A!!!!!!4!"*!-P````]*2GFM:3"1982I!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!&]!]1!!!!!!!!!$%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!!1!#$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!--4'&C6EF&6S"*<G:P!!!91$$`````$F.Z<7*P<#"7:8*T;7^O!!!51$,`````#V.Z<7*P<#"1982I!"J!1!!"`````Q!"$&:F=H.J<WYA4'FT>!!!'E!Q`````R"4:7RF9X2F:#"7:8*T;7^O!!!31#%.5XFN9G^M)%:P>7ZE0Q!31$$`````#%..2#"M;7ZF!!!81!-!%%2J=X"M98EA6'FN:3BN=SE!!"*!5!!"!!M)=W6U>'FO:X-!!"R!1!!"`````Q!"$U:J<'5A28BU:7ZT;7^O=Q!31#%-5W6U>'FO:S".<W2F!!!/1#%)5X2B=H2F:$]!!"*!6!!'#F.U98*U)&2J<75!!":!5!!#!!]!%!J5;7VF=C"*<G:P!!!?!&!!$!!!!!1!"1!'!!=!#!!*!!I!$!!.!!Y!%1!"!"*16%AQ!!!!3!!!!!5"1R.1=G^H=G&N)%:J<'6T)#BY/$9J&%ZB>'FP<G&M)%FO=X2S>7VF<H2T$%RB9F:*26=A-D!R.!N-97*73568,G6Y:1!!!!%!!!!-4'&C6EF&6S!S-$%U5&2)-!!!!%A!!!!&!5-45(*P:X*B<3"';7RF=S!I?$AW+22/982J<WZB<#"*<H.U=H6N:7ZU=QR-97*73568)$)Q-41,4'&C6EF&6SZF?'5!!!!!5&2)-!!!!!1!!!!!!!!!!1!!!!R-97*73568)$)Q-41!!!!!!!!!!!!!!!8=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!"Y!%A!!!!1!!!,!!!!!+!!!!!)!!!1!!!!!'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*>!!!%S8C=L60<4B.2&&VF3G_5NE#Z#%60]19KB?+L#:.1GJ#!6%PQ59@/&#=:/EXHF-#,]=G@]3`]%8^"PE$8/4.NM@JAC(-S=]\?:__V^GU!P%4"X0\**XHK^!,8\S"H\CAZXL$E2_!^<B!_RIT6\8JOSZ+UKHC8HHMW^\OGZ6F"5+TNVT=0L<04A`VXYO"V`<D3EBZ+:A-4")FFBV?>NA`-BG4JOOMZ1D-OGS:C3I?*->OF-."=]`LCT0@%)&Y51YSJ3$_'AGRE+!\>1))X'K81>$SH*2V\B$.LFK=DD,L@\^C\V'D<V.Z248BORQ%741/&GBNU0?N;H,A8TPJ&M+&='YBB+B5Y5LK>]Q"-?"B!8C?X@S7>DC)+&&'W'6K+)^]G<-YMJZL3[D'?896WAE2'SZI$7.$FS[/158)P+MAHX(T`]P8<P`=G@VOHWG)3.QM$=5QCA3233#.$T42SG&H>]`K"**P@&NJ>>(POJ35>96P3IM=E;'STK4]Q2]')2-\50.*G%E<</U@+`'TY<W7I=0QWZ[V"UU5MY:\2N^PEV/XDLIO..`^HYH*1*3NBB?E-7L&[[VRCUG73KM<.-XG7H/%L(Y%VL/H#L/#_2HD!L_"<ZEHAI3'P\-BW'9]YFX_@\>%-0BG\?276`?G>SEYOZ=:0$(4^1/IY[AR(9!00W!KVHD/JQ:K,VJ_;U=U,P=,_R<!Z$0%OER'(#C[*K%9+=)P\,)J9Q'/MIU*:1;O\*)'TG-%W>6P=]USD1*)KK@DT9IKS1;1U1[AK5-I*QF@JP]-T;Y#*8^NR(=Y!!!!!!!#*!!%!!A!$!!9!!!"I!!]%!!!!!!]!W1$5!!!!=1!0"!!!!!!0!.E!V!!!!(I!$Q1!!!!!$Q$:!.1!!!#$A!#%!)!!!!]!W1$5!!!!B9!!B!#!!!!0!.E!V!!!!)?!!)1!A!!!$Q$:!.1)5W6H<W5A65E)5W6H<W5A65E)5W6H<W5A65E"-!%S!4%!!!"35V*$$1I!!UR71U.-1F:8!!!K8!!!"(A!!!!A!!!K0!!!!!!!!!!!!!!!)!!!!$1!!!2I!!!!(ER*1EY!!!!!!!!"?%R75V)!!!!!!!!"D&*55U=!!!!!!!!"I%.$5V1!!!!!!!!"N%R*>GE!!!!!!!!"S%.04F!!!!!!!!!"X&2./$!!!!!!!!!"]%2'2&-!!!!!!!!#"%R*:(-!!!!!!!!#'&:*1U1!!!!!!!!#,%>$2%E!!!!!!!!#1(:F=H-!!!!%!!!#6&.$5V)!!!!!!!!#O%>$5&)!!!!!!!!#T%F$4UY!!!!!!!!#Y'FD<$1!!!!!!!!#^'FD<$A!!!!!!!!$#%.11T)!!!!!!!!$(%R*:H!!!!!!!!!$-%:13')!!!!!!!!$2%:15U5!!!!!!!!$7&:12&!!!!!!!!!$<%R*9G1!!!!!!!!$A%*%3')!!!!!!!!$F%*%5U5!!!!!!!!$K&:*6&-!!!!!!!!$P%253&!!!!!!!!!$U%V6351!!!!!!!!$Z%B*5V1!!!!!!!!$_&:$6&!!!!!!!!!%$%:515)!!!!!!!!%)!!!!!$`````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!`````Q!!!!!!!!$%!!!!!!!!!!$`````!!!!!!!!!.A!!!!!!!!!!0````]!!!!!!!!!Y!!!!!!!!!!!`````Q!!!!!!!!&E!!!!!!!!!!$`````!!!!!!!!!7Q!!!!!!!!!!0````]!!!!!!!!"G!!!!!!!!!!!`````Q!!!!!!!!*%!!!!!!!!!!$`````!!!!!!!!!F1!!!!!!!!!!0````]!!!!!!!!(S!!!!!!!!!!%`````Q!!!!!!!!@A!!!!!!!!!!@`````!!!!!!!!"`1!!!!!!!!!#0````]!!!!!!!!)"!!!!!!!!!!*`````Q!!!!!!!!A9!!!!!!!!!!L`````!!!!!!!!##A!!!!!!!!!!0````]!!!!!!!!)0!!!!!!!!!!!`````Q!!!!!!!!B5!!!!!!!!!!$`````!!!!!!!!#'A!!!!!!!!!!0````]!!!!!!!!)\!!!!!!!!!!!`````Q!!!!!!!!LQ!!!!!!!!!!$`````!!!!!!!!$P1!!!!!!!!!!0````]!!!!!!!!/`!!!!!!!!!!!`````Q!!!!!!!!^Y!!!!!!!!!!$`````!!!!!!!!(A!!!!!!!!!!!0````]!!!!!!!!?#!!!!!!!!!!!`````Q!!!!!!!"Y1!!!!!!!!!!$`````!!!!!!!!(C!!!!!!!!!!!0````]!!!!!!!!?C!!!!!!!!!!!`````Q!!!!!!!"[1!!!!!!!!!!$`````!!!!!!!!*QQ!!!!!!!!!!0````]!!!!!!!!H&!!!!!!!!!!!`````Q!!!!!!!#==!!!!!!!!!!$`````!!!!!!!!*UA!!!!!!!!!A0````]!!!!!!!!JL!!!!!!098"Q<'FD982J<WYO9X2M!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!$$I5F.31QU+!!.-6E.$4%*76Q!!,&1!!!35!!!!)!!!,$1!!!!K!!!!!B&B=("M;7.B>'FP<CZM>GRJ9B.B=("M;7.B>'FP<CZM>G.M98.T!!!!!!#A&Q#!!!!Q!!!)!!1!!!!!"!!$!$Q!P!!@1)!#!!!!!!%!!1!'`````Q!!!!!!!!!!!!!!!*G;I><Z[>"&P0$;#!S_`/)!!!!-!!!!%!!!!!*MW02?[CK#3L.^UVK\<&SBV"W-W9]!MA4JA!G9\0B#@A!!%!!!!!!!D(J^H^X4HUK)P@`'I>/]2A%!!!$`````V"W-W9]!MA4JA!G9\0B#@A!!!"$_6.C8R/,#'>O(/]>P#+:Q!!!!"!!!!!!!!!"_!!&-6E.$!!!!!A!#6EF-1A!!!!"16%AQ!!!!"1!"!!%!!!!!!A!#6EF$1Q!!!!!"&%2&2CV-97*73568)%F/2E]O9X2M!&"53$!!!!!D!!%!"!!!"X.V=("P=H152%6',5RB9F:*26=A35Z'4SZD>'Q!!!!#!!&#!!!!!!!$!!!!!!!#!!)!!!!!!#A!!!!C?*RDY'2A<G#YQ!$%D!R-$6R!&J-#!ZBG_-$!Q#(!!!#$SQ?/!!!!&!!!!":YH'0A:/"BY%#$$!!%.Q"7!!!!K1!!!B.YH'.AQ!4`A1")-4)Q-&M!;49U=4!.9V-4Y$)8FVV1=79A:A&CVI!1$Q-A\1&C-TI,"R4FJR=FZCKY:?;E&CNI6&C9;9LY*::EZO=FZCBYZB78&*8GJO;6&00Y*#;&?<K'+RA:'*JQ1TF[K27JE$"A1*'HA2U-5$.:I.\#M"0*S[RX])=A!Q04(C$."$)/'DTG%"."I=2U!FU$0Z2_A#1'!#@`8J-!!!!!!!!-!!&73524!!!!!!!$!!!"O1!!!]"YH.P!S-#1;7RBRM$%Q-!-:)MT.$!EZ[?E]D)!_1Q1I!.D5!!#I/:JI9E<(DC="A2[`0)N9(\T'ZZO&R7"ZBI6#;:3E7Y@&:&/(R774B;6&X`_```@@)4H=,>(TH&('Z$;<A[A_(%8&1Y1"UCTA/D`A2EA6;DGS81#:9'U"*)'O)%I^A=!68%U6#ATF,!9(IA[@,T"B"(C5*A4IL#ZFXDTG^^Q!$UF=0!B3X?D"J$@/R&%!I6Y/E-Y*)[\=/C)!@G-*U!'>P,!@-U"^U]9S)!3&9&/%Z"&,)QQC\L:DDNIA-0"112#:5#I#AB6!+*WA&VQB#0O-$T]V\[_NYM63,-BR9E$%$?!'%SI7)_"E9%2T'2E7!N6;Q.E-U(&9(%,9CN!AUU$39],6)S2Q2YO>BOO"S&7D?1/*L"[2I9`$$#^10OAZD2!X1U3]Q7+(9#S1Y$M#6"W.*$^!=J/!L)&I/R-).O!%=,/A\,"FD(AJJX^86S2AAG=,W":QRS)EX-,$!TUKA.UIAVVKI.V!GJD>9!EC"=-9DE"=87G4SV5Q%GHWEH(.[3WFM%-J,=AO9Q-L1Q!%[#J\Q!!!!!!!N-!!!7!?*S6F%V-%U%5RW@;I6E)O'J)8/.81T9'EQV:1K.C?WDK9E22&S&!1N6'E)3$M;F,I*:#EW54VMF'$XDRY-7D?D!RR(AK"1P6CV\&%'^+[M&Y-"R-[JPN1N>1D%TS_N\/T0_^.\`O4BAB..JW_O2$AJ!8)X1!:>$1H?&<S$7E'L4D[/HPU\]05U854%7-U3ZRQOQ3IR427P$%*/+XX[63S=DS=VH?O/^&#,<'L0-%6NHOK,Z!<%'9'&FN(Z7J$`)-A+F[HB1<FS&A:=!0-._;<@V&;YW#>ICW5\Z^Q6R-_U!`9,\8F]G*&;9LVGVN8D67J\12.FLY9T.WP[9G+O;E'+9_SLM\V$?QX?*8D^WC5GZ2A2<$6D=R?U%2*L346$H6+Z$ISZS?ZSY;K^.01+U[+Y]^W]Z<4B<>HGSTA:&>;*QS<>MF6<''Q!+<7!-/VF!:KZGPAD65Q2KQM9;WM$:8!WA]R1Q&A2I-R7>I+O$U_!$P(M5AU`3#*E,MFUM$T78\8*EJAPB(CZF\T/6H@]K@Z$8?/!,\,27<4.+.S\ER\=46=J@14LHBM2G]3+_39"`BZX*DRSW6>2L\#_J""[I@4'"1$`0TO@6H:;C#!^@`$\D_#FT"BOP@ACN7A4NWI1,W#Z!5<,"D:`Y@E#:!B`I08+RV)-RH^;8B[T='&[UYBO]C:C5R@"J2#/P"=ZEE"P&#:I+ZX/Q(?56_JX&-"4H?7O=QV+SX_BFIDEYXS)8A6-.UU_22GO##=7Z=3$43"!H'S@C?2"X>(^Q\\HO*\XLE!D``]48]5WCGQ#OZ^31=TX7@P#COP9(8'7(88"D-CRL!%'*L4=Y]CT>==>)2.3%"_:SZ*>>["[\%.:Z+L,LCZ[\YJL>3HYWT6Z1/^^X(\E77]B49U/WY,,?E6'GQ65LV3'L[GA3`\+G(22'QV'B8WJG)3+G)>+EXH5:`!%S9M:1!!!!#JA!!"=BYH*75TWM4124(:\-4431FZ&+0&NR$$YME7%)+R7\3,32BV3U*'GH51&093M!'UK,%.)'YE/GY08D2C`_"YFU15PR2?B*[&51]#@8A+1>2YJO>D2F-AH6B>V\G@>`\PPF!2E-)<6R-R&M9)6F#[#RKI<7\Z85E0$5`GPDELF^L@[N11XF!$-7C$Z57<"*>+>-A@$%*+6^`^PN^]N\OB?V@-E)AN:QEBK2&1><O9F>>R8;P&K&RZQK'2E5[4@*+[@D-A;[5G%XMC!<M1`+BBOE]8:T`59M\BF)#:2\70+QB[")!.@;"_A!LL-BVNLNBWW;_T!6[V0QUW.ZH*A5+&G"DWE=\/Z!OBM^J<(1$=GG+Y)M*&M?`R.M94JK6'X#3./_5JBI?F9?ZP.DO"K"L%?3&^H\!-T;TX,GZZQ\'I+RAW,)'1$*YF.^LH^P2YA.95&8G!Z4($L$H/S&OT=7NO\DVC<BV5#:A49CYZ4'YJXXD=#`!K87QG10=3Z$7RC(_+,GF'J^4A_E8BN6T76\?@0=@T)AUQIR8F8=VX%FCHJ-'O33H+9W/JEVMR/"$IZ/16FX35:>U>#,J+#A67*6`E8[/RJ'?"6:2M*E"UIO16E>*<WWR@4[D#J00$CNHMLSU?@A8:=@EW$+YE`:/+QV/[ZC33W*&IF5`P2_E.[:W-Z&//E)+5_2?E'T[C3H&?O2\_WXFVOX6.X`ODR@(HV\"V9-EY5\2Y,U$/[>A:8`H,^Y_C^?E9<TM']:0B0CT%,_5?@Q)2:(M_4TV_L(YN']96TVN"8\*8PVZQ4MC?$`WYI+A@3:I1])-W`,Q8/R:OKIP#]>V\V@7,M\/N\GW@;&OKKMRN:Z4T=:.&<\M6YZ&+8DL'U<$WUCJ^:2[/>^I)01<W//P7A!!!!!!$"=!A!5!!!1R.SYQ!!!!!!Q8!)!!!!!%-4=O-!!!!!!-&Q#!"1!!"$%X,D!!!!!!$"=!A!!!!!1R.SYQ!!!!!!Q8!)!&!!!%-4=O-!!!!!!5!1!!!068.9*Z*K+-,H.34A:*/:U!!!!.!!!!!!!!!!!!!!!!!!!!!!!!!)$````````````-9```N;X``Y2D``_V\```N?````````````_!!!!"A!'!!9!(Y!'!(`A"A(`_!9$``Q'!``]"A0``!9$``Q'!``]"A0``!9$``Q'!``]"A0``!9$``Q'!```BA(``_9!@`_'!"``"A!(`!9!!0!'!!!!"`````Q!!!A$``````````````````````O\O\O\O\O\O\O\O\O\O\`\O\O\O!/Y!$O!!\O\O\O`_\O\OY/Y/$O$A\A\O\O\P`O\O\O!!$A!/Y!$O\O\O\`\O\O\A\AY/\O$O\O\O\O`_\O\OY/Y/$O\A\O\O\O\P`O\O\O\O\O\O\O\O\O\O\``````````````````````Q!!!!!!!!!!!!!!!!!!!0]!!!!!!!!!\A!!!!!!!!$`!!!!!!!!\``_!!!!!!!!`Q!!!!!!\`\O\`Y!!!!!!0]!!!!!\`\O\O\P`A!!!!$`!!!!$`\O\O\O\O`Q!!!!`Q!!!!`_\O\O\O\P]!!!!0]!!!!0``\O\O\P``!!!!$`!!!!$````O\P```Q!!!!`Q!!!!``````````]!!!!0]!!!!0``````````!!!!$`!!!!$``````````Q!!!!`Q!!!!``````````]!!!!0]!!!!0``````````!!!!$`!!!!$``````````Q!!!!`Q!!!!````````````]!!0]!!!!!`````````````Q$`!!!!!!$``````````Q!!`Q!!!!!!!0```P````!!!0]!!!!!!!!!`P````!!!!$`!!!!!!!!!!!0``!!!!!!`Q!!!!!!!!!!!!!!!!!!!0`````````````````````Q!!"!$```````````````````````````````````````````_FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;8``[7FJ;7FJ;7FJ1!!J;5!!!#FJ1!!!+7FJ;7FJ;7FJ@``J;7FJ;7FJ;5!J;5!J1#FJ1#F!+7F!+7FJ;7FJ;7F``_FJ;7FJ;7FJ1!!!!#F!!!!J;5!!!#FJ;7FJ;7FJ;8``[7FJ;7FJ;7F!+7F!+5!J;7FJ1#FJ;7FJ;7FJ;7FJ@``J;7FJ;7FJ;5!J;5!J1#FJ;7F!+7FJ;7FJ;7FJ;7F``_FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;7FJ;8`````````````````````````````````````````````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!!!!!!*[?!!!!!!!!!!!!!!!!!!$``Q!!!!!!!!!!!!!!!*[M`+SMHA!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!*[M`+7FJ;7ML*Y!!!!!!!!!!!!!``]!!!!!!!!!!*[M`+7FJ;7FJ;7FL+S?!!!!!!!!!!$``Q!!!!!!!!#M`+7FJ;7FJ;7FJ;7FJ;SM!!!!!!!!!0``!!!!!!!!!0T]J;7FJ;7FJ;7FJ;7F`KQ!!!!!!!!!``]!!!!!!!!!`+SM`+7FJ;7FJ;7F`P\_`!!!!!!!!!$``Q!!!!!!!!$]L+SML0SFJ;7F`P\_`P\]!!!!!!!!!0``!!!!!!!!!0SML+SML+T]L0\_`P\_`PQ!!!!!!!!!``]!!!!!!!!!`+SML+SML+T_`P\_`P\_`!!!!!!!!!$``Q!!!!!!!!$]L+SML+SML0\_`P\_`P\]!!!!!!!!!0``!!!!!!!!!0SML+SML+SM`P\_`P\_`PQ!!!!!!!!!``]!!!!!!!!!`+SML+SML+T_`P\_`P\_`!!!!!!!!!$``Q!!!!!!!!$]L+SML+SML0\_`P\_`P\]!!!!!!!!!0``!!!!!!!!!+SML+SML+SM`P\_`P\_L+SML+Q!!!!!``]!!!!!!!!!!0T]L+SML+T_`P\_L+T]L+SML+SM!!$``Q!!!!!!!!!!!!$]L+SML0\_L+T]L+SML+SM!!!!!0``!!!!!!!!!!!!!!!!`+SML+SFL+SML+SML!!!!!!!``]!!!!!!!!!!!!!!!!!!0SFL+SML+SML!!!!!!!!!$``Q!!!!!!!!!!!!!!!!!!!!!!L+SML!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!````````````````````````````````````````````!!!!!A!#!!!!!!"W!!&'5%B1!!!!!1!#6%2$1Q!!!!%52%6',5RB9F:*26=A35Z'4SZD>'Q!5&2)-!!!!#-!!1!%!!!(=X6Q='^S>"2%259N4'&C6EF&6S"*4E:0,G.U<!!!!!)!!%)!!!!!!!!!!1!!!'*16%AQ!!!!!!!!!!!!!Q!!!!!/:!!!1+6YH.V=#X"5V2H_T_YG\#9,W4QW)2L94>C%%*-1]97!1G6"QFM31!7&Q#Y1*S'987SM62G\R6,L;-=/L4J7\9R-8QZWG#F4#_KU#WKX"=&7K^)'5`%RV2FM:;#9G^P`H(PPXM??O`>GD2G':8*H7@\``/@R`;`P:!'9][RPP'-)\B/!_-\AG]5#&%23"#$:Z!<Z6<=4@#P*FU$++IE!=^QL@?]ZBEC6!.Z)KM\>%NY&JV&;0#HO>-VU4P;^D[,ZPEI=L%#!IECKIHBBK.]8WFM6WJ7HD&I+!>`$:-BR=SBQVPVQIA=.1K+?0IO<S"#1=,8,F;B:XL%VGAD24TV.\EIWJ%=!8TAVND@50RF(2..`9%-[(X5N>$[L$!EY:$XMW\>063K7F/L9.+;DDGMBA'O.]^%M/C8BV)29K,_2[21Q(<3T2L%4$AQ^2O>/F9SKJ?'5$V62LU^?-N66^)1Z4'^A9!$V]#HL<2'A,.2`A\P3`8\EX<SR.S8W!Q'3?%0="UX*>?[BT]1KV__>'YO8UL.A'C6Y(+%5K:V"@'XYVT9"'B)JRXKA_SQ+O#V`)^09?<C5]ZB&TW-_/Q^0?*=0V!.ZTO*!QKZET93Z8>ND]7BPM'>4='.82SQ7X.<<?6>(0"K->-1\-I`KOH#K]BK[$>191QF5A-PZ6^+MX@9?W,.H$_Y%0F86[V'V)N3@VCP&V@Q>6[.M@54>?GJ6X=,:O)8B=_W<[4<7TH!IY05S]$;S:SN\0MG??^BT0XO_T:Y$\(E:?T<2*Q(W:0!H5V4Y4U0Y&`O-#^0"`[K2B``6C-L\$0!H$=[$:'97+&]D+;HQ>R\%`4R#'L,I4%?>_\8Q2RM.K$04'P\8:M#@[BLAPXPX<JU?HNW-.0R>B+4B0SA/)PT&3?+,LG_40A:`,^.IQ_/A?0@2D887I:8H9<-/\W3W+>ZHW]"\18NH.[+^>?OG(OEA@,73\[%)B/I*TL67=T:E$B@P]"X9;)6X]IV-P-/$O"ILP*-<>(BX+HBX5,1[8G39<5VDFFRFR#S<H";T:0L)9.:CK[\FQ"D712>M-Y=EG7'%-=I$X!PLMOD-.-)9>>;BTD:,'*.:'4#GOJ9Q*N>FA@(A<]20B"PB,A:D"^.9BO=53<F]2$[7Q8XCY/"*G+Y\&M="?CQXMG0RKUD/QX/:<A0*\L:Y2W]]'JH.0:T%&0T1KTMCL_!YC*#=&OJ@R1Q7-90D92,_G9<,HLA)L>"H=5$S.T,E$#9$UCY61F%CS%3K[>.8)_`U(?Y;/HSG;%3EIPCU&PXKIXI#[BJ@QD77B`L^KNPF14V=AQM]=/!!,B#@P!8[=1_#4+3;0N0D>W:/22+F++GG4WP2LT[K>I%P3S(J&MUBUD5WQ3QNZHFLP!3X)=B%KOET<3+=/2OO+06'?Z,$(V3\QF?E&>[M7?%Y6/?NE/AN"&#%.ZEN/B0IU!N9D&XBE7+M#W0MTNPJ%=A3`2BC)SG([M!HR5%B!'O9!Y^2YOICUV2UP:V5R"QY3"/3>8Q^+:$&'&'I^R99=N&-H*9=Q-2C&M$/HT_07X4]_((*(/\&$J=D%;+@?*K3]=,;7<8.6^R=5.NX@8N[U]E3X(4-VAYW?IM%+`%-V+#_U85=_EUP!C]8Z"MT%3#*:I*]IQ%#:+EU'S?<4:$1W>4A<#\0@49<\-^GAWYWG$;7=6,Z<$6PG+4S:1*:(EHF6\L$`9%W$52+94UUQLU-3QZFQ3P12)EG<.&8*5SQ=GEKQA']Q&GNG7C(@>(V^E88'4WOD8G=`[$E=8G3R['W+N(/*&9_,EHEIU3*"U?<H!TE#=FJ4_Q)";(!5V)A@_1OCLY!^+-#N,.55S[YXTO]X3V_CNE:@^3D)*D[+9[=N(;NAR8[KL+*GYOJ+[`)\MJ""UDO\'W,RO/>7T=(F`2%O!\N-'2DUIR(8K<,6!Y)1;F6+C['9G\3\-I](%EU-WG;CH\V5<6/0&7+Y[MV=<Q9^?P!HY9V</+OU9]C#KJ1*'UCSMO<'F(2PODDO9NK9>W#I+W^"7JP"5QH:2*URUDARHW3Z6:ARSH$T`%DB"`!-19`DQ)`.T?44%&)\,#!8T\1-DV:5T3`MSM;H.=8DW[.>@:MD6ED=,F!0*'5N\)8Q^-.I<U41\OOJ':^K.9-5^D]]J4=5UBT4[]_^YT""6Y#N>T=AU^$\M&00%W*?'VTSS96)&[J(N6'?:LIKW#=6:1@BS)WI\QE;B8F=4:DJ>FI-[#CH_.M/"H1<$9<D4FH(-\GGZK=YY3R-"(0R<*^,.)AMLV41K3\<K>$(<I%BVY>[J_)#Z8<18LI,>#I\WEZ`6-J;M;-\8!4<)%$"BBQ_O%S<.MEFM_D^)=6=!"V`[+&O-'A0^U@?O4_=,87(F?H0.U@?O4_=,8?TBGTZ9X(Z;X5Z@EJW"]?M^\T3OW?<Z(WX&/XU]F)P*M%5E7^8\NDUX!&OBZ^ENKD+R&!`)QB:KJFEZ[M'<-KWEP>XNLL#Q53EGKL)MG3GUYJ(_P)%CD!R<XT\AH=F?U\HV($-FX[W>=E),0XLWL?(^;]0[2"-.KJF?T=*>FZB>JRI*U+:A=ND)A>X,I[S7],.;"U-4M0W;C,85J>L+*AMK(;I[^,Y2&L&.2L58")1E%"IM$>FHA:FQZV/_$$(Z<Y[?'%+K(!8V+OP#UPK6$?6MDDN1H1F+<#()M!-(0%^>4PZ[<^2YP.IM5>EYK77#9L_:^-ZKM3>X7?HM\B-LX`.7SA(Y>OR=F<-LV@;$>1ZL]+>:=6J%*F;]`KG#^F=DKW^H]DT^;?Z^&=8;SA.W>?P]SAO2J2[TLISK)TG%&T.;+>[R1\W>B;):0G;F2M:7.LB^,\HUFW(1>@=JV</#1?'S)1UVR:9"V2A7U/KW[%XYI@#Q01LKE?U%%HG/*UE\,_,]SL'YJ48\ATNKWLYW\7,>>XR[<9*<UQ$%X5B4M7BMIRG^;$BVHUSB9$UISF,4L8II;<=V-V\ZMV\ZMU)?G9*C2BP24A^/L5;!0=I9^*;,K!4;"17<),J*IJ/9FNECDCHN$&&G::L+[OQAA7$+@';RWQ4!_!I4@VJN5)6KVRQ*603Q\IR>KB,ADTKS@\[GIC.JKN.1)U2F*Z$"$C;41^%5\KC"09<1K)+WQ',A]L>Z>XR,>9JTQU_/0-&&'"^61$H-C?)N,(95Q48A&_AP[*9VYGL=&,R\Q5]K!7#H%%522$DR*?L6A!_6A!UI8J'G<2GVEL;E6RQ,2II;&7B-@$+4`';K+"/'7''M"L6@,!%RRKIRH0SYL;A/=IN?(.I$9'M)5>UF%<]";(WCC'+CNKAYLQG)70?"UJ8`2$_[+H\)N_9/A"Y8W.VXDH3&YT6OE"KV3Z4\8J<5#3'Y@V1@&J.0N^6]!64&14L"/3.>\F\1N;=!IO/A`8*&@)=VI?ZC9",F.;S1F9&#S#=`K5.^@5NSRO&>3C9/[3=,#LEX`N9[QG):R:4>*58$P#V34-S[QG`1TD)VN.QHR?K+"WPMCJGI1<O1ZWTLI97M#J*INI.:FWQ1%:#/1M!G%#L.68BR_95FJL<<$49^PO\N\1UR7=X\.^+`_/S=BHQ;G,H-_#$S^_0AM_YP":0C/@B5(I<16\LQ-A`AR"["X4)"3RA4V@7\1LOD%?D13(U><#O[-5C.Y<J5"U9I1$U4^S$54`Z!3C9D51L2"APQ+'WR!-LRP)4@C>+<H:9Y0;]-I9##\OD-8NM*LQIEV7%QZ],;QG(,S17%VY[5*C.?(F(&F.?)8$;J:I75XY9[[M*C2T:T8B5![M*BQ?0KM*L_<+;M*L/<+;]$K(V3R675XYMZ<68#+P1*=(DIQ;KQF(2Y@6B$>'B^7%9S0,;M,R(&F.?*-4`MMUL'<C4]0G.N=)M%>B#-B5T"GXS16%GC(YO7E"M=B'!6%I&[_W_9&@G0%$O?2;$,K`P(#YA6`FTAX]/K?+!2O4Z`H=Q(E)E8)^.\$X9O='8O"Q!XY/.\#0QQW5$Z]<?&+JR0"!U,--:@F4JFZVOQWP'C>\V8#C]E^(K3B`?J3+]G>'O#B`.N?C`'?=K&SB+]J<:3BA@17%E!:^5<\-N#C`R_:P((A8>WR9V4JPN=V@JM<#@,H>QHT&VV/9NVV1B8H\"679L]SV-&`&+=T([QLT7X)OT'`F&_<^R'^>G+`B&/<%D\JV79LMN2G&_2'N0;\/<2G&_2'^(>0]?DOH-0_8_KU+]TV@RSH-+Z8#0#,!"H4^;G7X\M(:5_^S+KY@I;[`&&U`P$?Q5+H+0Q%1"_X`MNPQ@,^.A+BUFYX/PV""?A1_VD/7GZ7*;<I&;6Y?SWYB6!.WPK5!7T+PN7F:P2Y_M,T7\O25U(1.FM>V"_>;_R,>VTKADTU@5#_XOX78W]I5>>G]:T3_VA(<?0@>*W%N@*\F\PL/D0PON;D6L>QL=86[-_[\V[+><M6/NPPO7/:^^VLV$MP]PDO?Z<Z<`I\3=_+4[*8`VHSZ!ZO8"^,8G[@%I\DB?`8.3]+UT+KSE6P$\(4YD1MR.C\@T@FC-^`U9H0HB>/]0*B\]`+^8#]W>^G_W(TI9G^?@M"J8C\F.#_0=*K8KO%X,XVSR3LO&Y_+JW3P3I?\<ZF[F278&,<AEICR;\FHF,K7<Y^3VX+P7>>C%38-OJ<\=P)N"-L^H+ZF!ON;/,^61F'!0[LW9RLNM9ME\9E)R`R('">&'!O6<Y?&SL1']MP>&AK,BW`^5M<J!PT*)X.,F`@W</\N[!\38TO*"?P\JF]^J7RJ2RQ"V>'&26!MXLO^/\IV(EM82N.;,L_S50Z,=\1PCO01L>$^_^>A!\4_R<-*[CPP"("@W<<(.Q_0YHY"`/'Z*5>^L@3,O_Z7^TT@5VCV9!&4\H\+@3<Z6PK`$EAO4GMGXI!\(;N#4Q4=Y`]0+E`8A!!!!!1!!!%4!!!!"!!!!!!!!!!-!!&#2%B1!!!!!!!$!!!!9A!!!(*YH'.A9-A4E'$[RV$XFY&*Y#O1)@W8A6H1D`%X!Q/HH]"B)-UI)!E5FPX,Q#[I$2<70K,,Q1!&KGS-(*)=BQ5ZQ$)=,2I-````Z`B[Z"J=R2%@/&.FFDS("!!59BE!!!!!!!!%!!!!"Q!!#*%!!!!(!!!!)6^O;6^-98.U3WZP>WZ0>WZJ<G>-6E.M98.T1WRV=X2F=A!!!@Q8!)!!!!!!!1!)!$$`````!!%!!!!!!?!!!!!4!"*!-P````]*2GFM:3"1982I!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!&]!]1!!!!!!!!!$%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!!1!#$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!--4'&C6EF&6S"*<G:P!!!91$$`````$F.Z<7*P<#"7:8*T;7^O!!!51$,`````#V.Z<7*P<#"1982I!"J!1!!"`````Q!"$&:F=H.J<WYA4'FT>!!!'E!Q`````R"4:7RF9X2F:#"7:8*T;7^O!!!31#%.5XFN9G^M)%:P>7ZE0Q!31$$`````#%..2#"M;7ZF!!!81!-!%%2J=X"M98EA6'FN:3BN=SE!!"*!5!!"!!M)=W6U>'FO:X-!!"R!1!!"`````Q!"$U:J<'5A28BU:7ZT;7^O=Q!31#%-5W6U>'FO:S".<W2F!!!/1#%)5X2B=H2F:$]!!"*!6!!'#F.U98*U)&2J<75!!":!5!!#!!]!%!J5;7VF=C"*<G:P!!!?!&!!$!!!!!1!"1!'!!=!#!!*!!I!$!!.!!Y!%1!"!")!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U962B9E^S:'6S!!!!92=!A!!!!!!#!!5!"Q!!$!"!!!(`````!!!!!1!"!!!!$Q!!!!!!!!!"!!!!!A!!!!-!!!!%!!!!"1!!!!9!!!!(!!!!#!!!!!E!!!!+!!!!#Q!!!!Q!!!!.!!!!$A!!!!!!!!!<4&:$<'&T=V"S;8:B>'6%982B6'FN:8.U97VQ!!!!'2=!A!!!!!!"!!5!"Q!!!1!!XY;LQA!!!!!!!!!G4&:$<'&T=V"S;8:B>'6%982B4'&T>%&Q='RJ:725;7VF=X2B<8!!!!!:&Q#!!!!!!!%!"1!(!!!"!!$@BKP#!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&5?8"F2'6T9Q!!!@Q8!)!!!!!!!1!)!$$`````!!%!!!!!!?!!!!!4!"*!-P````]*2GFM:3"1982I!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!&]!]1!!!!!!!!!$%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!!1!#$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!--4'&C6EF&6S"*<G:P!!!91$$`````$F.Z<7*P<#"7:8*T;7^O!!!51$,`````#V.Z<7*P<#"1982I!"J!1!!"`````Q!"$&:F=H.J<WYA4'FT>!!!'E!Q`````R"4:7RF9X2F:#"7:8*T;7^O!!!31#%.5XFN9G^M)%:P>7ZE0Q!31$$`````#%..2#"M;7ZF!!!81!-!%%2J=X"M98EA6'FN:3BN=SE!!"*!5!!"!!M)=W6U>'FO:X-!!"R!1!!"`````Q!"$U:J<'5A28BU:7ZT;7^O=Q!31#%-5W6U>'FO:S".<W2F!!!/1#%)5X2B=H2F:$]!!"*!6!!'#F.U98*U)&2J<75!!":!5!!#!!]!%!J5;7VF=C"*<G:P!!!?!&!!$!!!!!1!"1!'!!=!#!!*!!I!$!!.!!Y!%1!"!")!!!!!!!!!(ER71WRB=X.1=GFW982F2'&U952G<(2%982B5WF[:1!!!"E8!)!!!!!!!1!&!!-!!!%!!!!!!$=!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U952G<(2%982B!!!#YR=!A!!!!!!4!"*!-P````]*2GFM:3"1982I!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!&]!]1!!!!!!!!!$%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!!1!#$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!--4'&C6EF&6S"*<G:P!!!91$$`````$F.Z<7*P<#"7:8*T;7^O!!!51$,`````#V.Z<7*P<#"1982I!"J!1!!"`````Q!"$&:F=H.J<WYA4'FT>!!!'E!Q`````R"4:7RF9X2F:#"7:8*T;7^O!!!31#%.5XFN9G^M)%:P>7ZE0Q!31$$`````#%..2#"M;7ZF!!!81!-!%%2J=X"M98EA6'FN:3BN=SE!!"*!5!!"!!M)=W6U>'FO:X-!!"R!1!!"`````Q!"$U:J<'5A28BU:7ZT;7^O=Q!31#%-5W6U>'FO:S".<W2F!!!/1#%)5X2B=H2F:$]!!"*!6!!'#F.U98*U)&2J<75!!":!5!!#!!]!%!J5;7VF=C"*<G:P!!!?!&!!$!!!!!1!"1!'!!=!#!!*!!I!$!!.!!Y!%1!"!"*16%AQ!!!!3!!!!!5"1R.1=G^H=G&N)%:J<'6T)#BY/$9J&%ZB>'FP<G&M)%FO=X2S>7VF<H2T$%RB9F:*26=A-D!R.!N-97*73568,G6Y:1!!!!%!!!!-4'&C6EF&6S!S-$%U5&2)-!!!!%A!!!!&!5-45(*P:X*B<3"';7RF=S!I?$AW+22/982J<WZB<#"*<H.U=H6N:7ZU=QR-97*73568)$)Q-41,4'&C6EF&6SZF?'5!!!!!5&2)-!!!!!1!!!!!!!!!!1!!!!R-97*73568)$)Q-41!!!!!!!!!!!!!!!8=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!"Y!&1!!!!1!!!,!!!!!+!!!!!)!!!1!!!!!'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*F!!!%W8C=L60<4B.2&&VF3C^1?K(=Z++H?!/6CM6(%S;B<5)#7#X"2RU[5ZREWGE[JQ2?D%`_D(`BD`A,]A7[TJFJCRA41ZS>TJS^T^ZL\6M"P%4?X0\**XHC^!08\S*L6J1?<VDS)`!?6QA@IW$V?J\<MC3^SN[ZZZY7@\?U0#M)ZKKV_N;">8KS8XMH^I`KL]MN[7(6<'##),(-[+L<^I(:E#R>>TV(;-:FUU2-W4"RQX=J4$4<P/S=_JY9ZIOZ%'-[MN^!13:S&!>O)-%<D:*P/J\4EIY^RJEV3T-22NU@>/V>7L2P;O_Q+DSX[Q#,JI&]V1V[HH5JDNW/M^%*.F6I!T&-JQ*(3L>\&I!&DR,)[?*K&^,J+K*!%77;I;=Y^'X#:MV3KCGN0P0:67D(3%RJ88-!#\J^/?3HF.[0'P)*6^_`@0XW\\0*8<?JM:D%T="!(*.)))E5UJCC:1::&.<WP%%AS?;XB1Y8P<Z\<EF(W*;U'$%*/NM=[A]5K2C2CBX-)WUG9<3^-[4-TY<`6I9'RW^TXRJU8=13\BA$OUV/04Z_><0RZP^M8";K:;N994H$5;R>/[_S["**V?$G74R<TP26D-![VH6D6H"8)^TD7`"8YEHAPC%P\-BX'1^Y;KH.JCT^:=P(W`DYRMWL;!!<NRI!O6198T%Q^!/JY[AT-9%H?-KB+(H']I:3D/20S`BG3UMYS2D+IR2PMS.RK/33C,KF!#P]TG)/#XC)2^DE\TGW]5)4+)]EY4-IU,*.+8$J"@+EKJ#1@W:-5T?)FV;,I[#J*UB39@Q/T_Q%*HY"NX-?U1!!!!!!!+=!!1!#!!-!"A!!!'A!%1!!!!!!%1$R!/5!!!"\!"%!!!!!!"%!]1$F!!!!DA!2!!!!!!!2!0%!Z1!!!+'!!)!!A!!!%1$R!/5!!!#DA!#!!)!!!"%!]1$F!!!!J9!!A!#!!!!2!0%!Z2*.;7.S<X.P:H1A77&):7EA65E347FD=G^T<W:U)&FB3'6J)&6*%EVJ9X*P=W^G>#":95BF;3"631%Q!4)"-1"35V*$$1I!!UR71U.-1F:8!!!M6!!!"*1!!!!A!!!M.!!!!!!!!!!!!!!!)!!!!$1!!!3%!!!!(5R*1EY!!!!!!!!"<%R75V)!!!!!!!!"A&*55U=!!!!!!!!"F%.$5V1!!!!!!!!"K%R*>GE!!!!!!!!"P%.04F!!!!!!!!!"U&2./$!!!!!"!!!"Z%2'2&-!!!!!!!!#$%R*:(-!!!!!!!!#)&:*1U1!!!!#!!!#.(:F=H-!!!!%!!!#=&.$5V)!!!!!!!!#V%>$5&)!!!!!!!!#[%F$4UY!!!!!!!!#`'FD<$1!!!!!!!!$%'FD<$A!!!!!!!!$*%.11T)!!!!!!!!$/%R*:H!!!!!!!!!$4%:13')!!!!!!!!$9%:15U5!!!!!!!!$>&:12&!!!!!!!!!$C%R*9G1!!!!!!!!$H%*%3')!!!!!!!!$M%*%5U5!!!!!!!!$R&:*6&-!!!!!!!!$W%253&!!!!!!!!!$\%V6351!!!!!!!!%!%B*5V1!!!!!!!!%&&:$6&!!!!!!!!!%+%:515)!!!!!!!!%0!!!!!$`````!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!`````Q!!!!!!!!$5!!!!!!!!!!$`````!!!!!!!!!/A!!!!!!!!!!0````]!!!!!!!!!]!!!!!!!!!!!`````Q!!!!!!!!&U!!!!!!!!!!$`````!!!!!!!!!8Q!!!!!!!!!!P````]!!!!!!!!"K!!!!!!!!!!!`````Q!!!!!!!!(!!!!!!!!!!!$`````!!!!!!!!!H!!!!!!!!!!!0````]!!!!!!!!#A!!!!!!!!!!"`````Q!!!!!!!!2!!!!!!!!!!!,`````!!!!!!!!"RA!!!!!!!!!"0````]!!!!!!!!*R!!!!!!!!!!(`````Q!!!!!!!!H5!!!!!!!!!!D`````!!!!!!!!#?1!!!!!!!!!#@````]!!!!!!!!*^!!!!!!!!!!+`````Q!!!!!!!!I%!!!!!!!!!!$`````!!!!!!!!#B1!!!!!!!!!!0````]!!!!!!!!+,!!!!!!!!!!!`````Q!!!!!!!!J!!!!!!!!!!!$`````!!!!!!!!#M1!!!!!!!!!!0````]!!!!!!!!-S!!!!!!!!!!!`````Q!!!!!!!"$-!!!!!!!!!!$`````!!!!!!!!%.1!!!!!!!!!!0````]!!!!!!!!25!!!!!!!!!!!`````Q!!!!!!!"_Y!!!!!!!!!!$`````!!!!!!!!(]!!!!!!!!!!!0````]!!!!!!!!@S!!!!!!!!!!!`````Q!!!!!!!"`9!!!!!!!!!!$`````!!!!!!!!)%!!!!!!!!!!!0````]!!!!!!!!A3!!!!!!!!!!!`````Q!!!!!!!#DA!!!!!!!!!!$`````!!!!!!!!+/A!!!!!!!!!!0````]!!!!!!!!I]!!!!!!!!!!!`````Q!!!!!!!#E=!!!!!!!!!)$`````!!!!!!!!+YA!!!!!$W&Q='RJ9W&U;7^O,G.U<!!!!!! !!!!!B&B=("M;7.B>'FP<CZM>GRJ9B.B=("M;7.B>'FP<CZM>G.M98.T5&2)-!!!!!!!!!!!!!!!!!!-!!%!!!!!!!!"!!!!!1!'!&!!!!!"!!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!"1!A!!!!!!!!!!!!!!!!!!"!!!!!!!"!1!!!!I!%%!Q`````Q>7:8*T;7^O!!Z!-P````]%5'&U;!!!41$R!!!!!!!!!!)498"Q<'FD982J<WYO<(:D<'&T=R2%259N4'&C6EF&6S"*4E:0,G.U<!!=1&!!!A!!!!%-4'&C6EF&6S"*<G:P!!!;1%!!!@````]!!AR-97*73568)%FO:G]!!"B!-0````]/5XFN9G^M)&:F=H.J<WY!!"2!-P````],5XFN9G^M)&"B>'A!'E"!!!(`````!!!-6G6S=WFP<C"-;8.U!!!;1$$`````%&.F<'6D>'6E)&:F=H.J<WY!!"*!)1V4?7VC<WQA2G^V<G1`!'!!]>4S_^=!!!!#%W&Q='RJ9W&U;7^O,GRW9WRB=X-098"Q<'FD982J<WYO9X2M!$2!5!!'!!-!"!!&!!9!"Q!)(5.M>8.U:8)A<W9A9WRB=X-A=(*J>G&U:3"E982B!!%!#1!!!!<```````````````````````````````]!!!!!!!!!!&"53$!!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!"1!A!!!!!!!!!!!!!!!!!!"!!!!!!!#!1!!!!M!%%!Q`````Q>7:8*T;7^O!!Z!-P````]%5'&U;!!!41$R!!!!!!!!!!)498"Q<'FD982J<WYO<(:D<'&T=R2%259N4'&C6EF&6S"*4E:0,G.U<!!=1&!!!A!!!!%-4'&C6EF&6S"*<G:P!!!;1%!!!@````]!!AR-97*73568)%FO:G]!!"B!-0````]/5XFN9G^M)&:F=H.J<WY!!"2!-P````],5XFN9G^M)&"B>'A!'E"!!!(`````!!!-6G6S=WFP<C"-;8.U!!!;1$$`````%&.F<'6D>'6E)&:F=H.J<WY!!"*!)1V4?7VC<WQA2G^V<G1`!"*!-0````])1UV%)'RJ<G5!!')!]>4T!#!!!!!#%W&Q='RJ9W&U;7^O,GRW9WRB=X-098"Q<'FD982J<WYO9X2M!$:!5!!(!!-!"!!&!!9!"Q!)!!E>1WRV=X2F=C"P:C"D<'&T=S"Q=GFW982F)'2B>'%!!1!+!!!!"Q!!!!!!!!!"!!!!!A!!!!-!!!!%!!!!"@````]!!!!!!!!!!&"53$!!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"$ERB9F:*26=A4W*K:7.U!&"53$!!!!!!!!!!!!!5!)!!!!!!!!!!!!!!!!!!!1!!!!!!!Q%!!!!-!":!-P````]-5(*P;G6D>#"1982I!!!11$$`````"V:F=H.J<WY!$E!S`````Q21982I!!".!0%!!!!!!!!!!B.B=("M;7.B>'FP<CZM>G.M98.T&%2&2CV-97*73568)%F/2E]O9X2M!"R!5!!#!!%!!AR-97*73568)%FO:G]!!"J!1!!"`````Q!$$%RB9F:*26=A37ZG<Q!!'%!Q`````QZ4?7VC<WQA6G6S=WFP<A!!&%!S`````QN4?7VC<WQA5'&U;!!;1%!!!@````]!!1R7:8*T;7^O)%RJ=X1!!"J!-0````]15W6M:7.U:71A6G6S=WFP<A!!%E!B$6.Z<7*P<#"'<X6O:$]!%E!Q`````QB$451A<'FO:1!!:!$RV0-!01!!!!)498"Q<'FD982J<WYO<(:D<'&T=Q^B=("M;7.B>'FP<CZD>'Q!/%"1!!A!!!!%!!5!"A!(!!A!#1!+(5.M>8.U:8)A<W9A9WRB=X-A=(*J>G&U:3"E982B!!%!#Q!!!!D`````!!!!!!!!!!%!!!!#!!!!!Q!!!!1!!!!&!!!!"F"53$!!!!!%!!!!!!!!!!!!!!!!5&2)-!!!!!1!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!"1!A!!!!!!!!!!!!!!!!!!"!!!!!!!%!1!!!!Y!&E!S`````QR1=G^K:7.U)&"B>'A!!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!%U!]1!!!!!!!!!#%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!!1!#$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!--4'&C6EF&6S"*<G:P!!!91$$`````$F.Z<7*P<#"7:8*T;7^O!!!51$,`````#V.Z<7*P<#"1982I!"J!1!!"`````Q!"$&:F=H.J<WYA4'FT>!!!'E!Q`````R"4:7RF9X2F:#"7:8*T;7^O!!!31#%.5XFN9G^M)%:P>7ZE0Q!31$$`````#%..2#"M;7ZF!!!81!-!%%2J=X"M98EA6'FN:3BN=SE!!"*!5!!"!!M)=W6U>'FO:X-!!'9!]>4T"#E!!!!#%W&Q='RJ9W&U;7^O,GRW9WRB=X-098"Q<'FD982J<WYO9X2M!$J!5!!*!!!!"!!&!!9!"Q!)!!E!#A!-(5.M>8.U:8)A<W9A9WRB=X-A=(*J>G&U:3"E982B!!%!$1!!!!E!!!!!!!!!!1!!!!)!!!!$!!!!"!!!!!5!!!!'!!!!"`````^16%AQ!!!!"!!!!!!!!!!!!!!!!&"53$!!!!!%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1Z-97*73568)%^C;G6D>!"16%AQ!!!!!!!!!!!!&!#!!!!!!!!!!!!!!!!!!!%!!!!!!!5"!!!!$A!71$,`````$&"S<WJF9X1A5'&U;!!!%%!Q`````Q>7:8*T;7^O!!Z!-P````]%5'&U;!!!41$R!!!!!!!!!!)498"Q<'FD982J<WYO<(:D<'&T=R2%259N4'&C6EF&6S"*4E:0,G.U<!!=1&!!!A!"!!)-4'&C6EF&6S"*<G:P!!!;1%!!!@````]!!QR-97*73568)%FO:G]!!"B!-0````]/5XFN9G^M)&:F=H.J<WY!!"2!-P````],5XFN9G^M)&"B>'A!'E"!!!(`````!!%-6G6S=WFP<C"-;8.U!!!;1$$`````%&.F<'6D>'6E)&:F=H.J<WY!!"*!)1V4?7VC<WQA2G^V<G1`!"*!-0````])1UV%)'RJ<G5!!">!!Q!12'FT='RB?3"5;7VF+'VT+1!!%E"1!!%!#QBT:82U;7ZH=Q!!:A$RV0-'(1!!!!)498"Q<'FD982J<WYO<(:D<'&T=Q^B=("M;7.B>'FP<CZD>'Q!/E"1!!E!!!!%!!5!"A!(!!A!#1!+!!Q>1WRV=X2F=C"P:C"D<'&T=S"Q=GFW982F)'2B>'%!!1!.!!!!#A!!!!!!!!!"!!!!!A!!!!-!!!!%!!!!"1!!!!9!!!!(!!!!#!!!!!F16%AQ!!!!3!!!!!5"1R.1=G^H=G&N)%:J<'6T)#BY/$9J&%ZB>'FP<G&M)%FO=X2S>7VF<H2T$%RB9F:*26=A-D!R.!N-97*73568,G6Y:1!!!!%!!!!-4'&C6EF&6S!S-$%U5&2)-!!!!%A!!!!&!5-45(*P:X*B<3"';7RF=S!I?$AW+22/982J<WZB<#"*<H.U=H6N:7ZU=QR-97*73568)$)Q-41,4'&C6EF&6SZF?'5!!!!!5&2)-!!!!!1!!!!!!!!!!1!!!!R-97*73568)$)Q-41!!!!!!!!!!!!!!!8=!!!!!1Z-97*73568)%^C;G6D>!"16%AQ!!!!!!!!!!!!&!#!!!!!!!!!!!!!!!!!!!%!!!!!!!9"!!!!$Q!71$,`````$&"S<WJF9X1A5'&U;!!!%%!Q`````Q>7:8*T;7^O!!Z!-P````]%5'&U;!!!41$R!!!!!!!!!!)498"Q<'FD982J<WYO<(:D<'&T=R2%259N4'&C6EF&6S"*4E:0,G.U<!!=1&!!!A!"!!)-4'&C6EF&6S"*<G:P!!!;1%!!!@````]!!QR-97*73568)%FO:G]!!"B!-0````]/5XFN9G^M)&:F=H.J<WY!!"2!-P````],5XFN9G^M)&"B>'A!'E"!!!(`````!!%-6G6S=WFP<C"-;8.U!!!;1$$`````%&.F<'6D>'6E)&:F=H.J<WY!!"*!)1V4?7VC<WQA2G^V<G1`!"*!-0````])1UV%)'RJ<G5!!">!!Q!12'FT='RB?3"5;7VF+'VT+1!!%E"1!!%!#QBT:82U;7ZH=Q!!(%"!!!(`````!!%02GFM:3"&?(2F<H.J<WZT!'A!]>4TJ:-!!!!#%W&Q='RJ9W&U;7^O,GRW9WRB=X-098"Q<'FD982J<WYO9X2M!$R!5!!+!!!!"!!&!!9!"Q!)!!E!#A!-!!U>1WRV=X2F=C"P:C"D<'&T=S"Q=GFW982F)'2B>'%!!1!/!!!!#Q!!!!!!!!!"!!!!!A!!!!-!!!!%!!!!"1!!!!9!!!!(!!!!#!!!!!H`````5&2)-!!!!%A!!!!&!5-45(*P:X*B<3"';7RF=S!I?$AW+22/982J<WZB<#"*<H.U=H6N:7ZU=QR-97*73568)$)Q-41,4'&C6EF&6SZF?'5!!!!"!!!!$%RB9F:*26=A-D!R.&"53$!!!!")!!!!"1&$%V"S<W>S97UA2GFM:8-A+(AY.CE54G&U;7^O97QA37ZT>(*V<76O>(--4'&C6EF&6S!S-$%U#URB9F:*26=O:8BF!!!!!&"53$!!!!!%!!!!!!!!!!%!!!!-4'&C6EF&6S!S-$%U!!!!!!!!!!!!!!!&X!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!"1!A!!!!!!!!!!!!!!!!!!"!!!!!!!(!1!!!"!!%E!S`````QF';7RF)&"B>'A!%%!Q`````Q>7:8*T;7^O!!Z!-P````]%5'&U;!!!41$R!!!!!!!!!!)498"Q<'FD982J<WYO<(:D<'&T=R2%259N4'&C6EF&6S"*4E:0,G.U<!!=1&!!!A!"!!)-4'&C6EF&6S"*<G:P!!!;1%!!!@````]!!QR-97*73568)%FO:G]!!"B!-0````]/5XFN9G^M)&:F=H.J<WY!!"2!-P````],5XFN9G^M)&"B>'A!'E"!!!(`````!!%-6G6S=WFP<C"-;8.U!!!;1$$`````%&.F<'6D>'6E)&:F=H.J<WY!!"*!)1V4?7VC<WQA2G^V<G1`!"*!-0````])1UV%)'RJ<G5!!">!!Q!12'FT='RB?3"5;7VF+'VT+1!!%E"1!!%!#QBT:82U;7ZH=Q!!(%"!!!(`````!!%02GFM:3"&?(2F<H.J<WZT!"*!)1R4:82U;7ZH)%VP:'5!!'I!]>4T]#Q!!!!#%W&Q='RJ9W&U;7^O,GRW9WRB=X-098"Q<'FD982J<WYO9X2M!$Z!5!!,!!!!"!!&!!9!"Q!)!!E!#A!-!!U!$BV$<(6T>'6S)'^G)'.M98.T)("S;8:B>'5A:'&U91!"!!]!!!!-!!!!!!!!!!%!!!!#!!!!!Q!!!!1!!!!&!!!!"A!!!!=!!!!)!!!!#1!!!!L`````5&2)-!!!!%A!!!!&!5-45(*P:X*B<3"';7RF=S!I?$AW+22/982J<WZB<#"*<H.U=H6N:7ZU=QR-97*73568)$)Q-41,4'&C6EF&6SZF?'5!!!!"!!!!$%RB9F:*26=A-D!R.&"53$!!!!")!!!!"1&$%V"S<W>S97UA2GFM:8-A+(AY.CE54G&U;7^O97QA37ZT>(*V<76O>(--4'&C6EF&6S!S-$%U#URB9F:*26=O:8BF!!!!!&"53$!!!!!%!!!!!!!!!!%!!!!-4'&C6EF&6S!S-$%U!!!!!!!!!!!!!!!&X!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!"1!A!!!!!!!!!!!!!!!!!!"!!!!!!!)!1!!!"-!%E!S`````QF';7RF)&"B>'A!%%!Q`````Q>7:8*T;7^O!!Z!-P````]%5'&U;!!!41$R!!!!!!!!!!)498"Q<'FD982J<WYO<(:D<'&T=R2%259N4'&C6EF&6S"*4E:0,G.U<!!=1&!!!A!"!!)-4'&C6EF&6S"*<G:P!!!;1%!!!@````]!!QR-97*73568)%FO:G]!!"B!-0````]/5XFN9G^M)&:F=H.J<WY!!"2!-P````],5XFN9G^M)&"B>'A!'E"!!!(`````!!%-6G6S=WFP<C"-;8.U!!!;1$$`````%&.F<'6D>'6E)&:F=H.J<WY!!"*!)1V4?7VC<WQA2G^V<G1`!"*!-0````])1UV%)'RJ<G5!!">!!Q!12'FT='RB?3"5;7VF+'VT+1!!%E"1!!%!#QBT:82U;7ZH=Q!!(%"!!!(`````!!%02GFM:3"&?(2F<H.J<WZT!"*!)1R4:82U;7ZH)%VP:'5!!!Z!)1B4>'&S>'6E0Q!!%E"5!!9+5X2B=H1A6'FN:1!!&E"1!!)!$Q!1#F2J<76S)%FO:G]!!'Q!]>4_(U]!!!!#%W&Q='RJ9W&U;7^O,GRW9WRB=X-098"Q<'FD982J<WYO9X2M!%"!5!!-!!!!"!!&!!9!"Q!)!!E!#A!-!!U!$A!2(5.M>8.U:8)A<W9A9WRB=X-A=(*J>G&U:3"E982B!!%!%A!!!!U!!!!!!!!!!1!!!!)!!!!$!!!!"!!!!!5!!!!'!!!!"Q!!!!A!!!!*!!!!#A!!!!P`````5&2)-!!!!%A!!!!&!5-45(*P:X*B<3"';7RF=S!I?$AW+22/982J<WZB<#"*<H.U=H6N:7ZU=QR-97*73568)$)Q-41,4'&C6EF&6SZF?'5!!!!"!!!!$%RB9F:*26=A-D!R.&"53$!!!!")!!!!"1&$%V"S<W>S97UA2GFM:8-A+(AY.CE54G&U;7^O97QA37ZT>(*V<76O>(--4'&C6EF&6S!S-$%U#URB9F:*26=O:8BF!!!!!&"53$!!!!!%!!!!!!!!!!%!!!!-4'&C6EF&6S!S-$%U!!!!!!!!!!!!!!!&X!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"$ERB9F:*26=A4W*K:7.U!&"53$!!!!!!!!!!!!!5!)!!!!!!!!!!!!!!!!!!!1!!!!!!#1%!!!!6!"*!-P````]*2GFM:3"1982I!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!%U!]1!!!!!!!!!#%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!!1!#$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!--4'&C6EF&6S"*<G:P!!!91$$`````$F.Z<7*P<#"7:8*T;7^O!!!51$,`````#V.Z<7*P<#"1982I!"J!1!!"`````Q!"$&:F=H.J<WYA4'FT>!!!'E!Q`````R"4:7RF9X2F:#"7:8*T;7^O!!!31#%.5XFN9G^M)%:P>7ZE0Q!31$$`````#%..2#"M;7ZF!!!81!-!%%2J=X"M98EA6'FN:3BN=SE!!"B!-P````]/5W6B=G.I;7ZH)&"B>'A!!#B!1!!"`````Q!-'URB9F:*26=O:8BF)&.F98*D;'FO:S"1982I=Q!51&!!!A!,!!U)=W6U>'FO:X-!!"R!1!!"`````Q!"$U:J<'5A28BU:7ZT;7^O=Q!31#%-5W6U>'FO:S".<W2F!!!/1#%)5X2B=H2F:$]!!"*!6!!'#F.U98*U)&2J<75!!":!5!!#!"%!%AJ5;7VF=C"*<G:P!!"M!0(@@K<>!!!!!B.B=("M;7.B>'FP<CZM>G.M98.T$W&Q='RJ9W&U;7^O,G.U<!"!1&!!$!!!!!1!"1!'!!=!#!!*!!I!$A!0!"!!%RV$<(6T>'6S)'^G)'.M98.T)("S;8:B>'5A:'&U91!"!"1!!!!1!!!!!!!!!!%!!!!#!!!!!Q!!!!1!!!!&!!!!"A!!!!=!!!!)!!!!#@````]!!!!+!!!!#Q!!!!Q!!!!.!!!!$F"53$!!!!")!!!!"1&$%V"S<W>S97UA2GFM:8-A+(AY.CE54G&U;7^O97QA37ZT>(*V<76O>(--4'&C6EF&6S!S-$%U#URB9F:*26=O:8BF!!!!!1!!!!R-97*73568)$)Q-4216%AQ!!!!3!!!!!5"1R.1=G^H=G&N)%:J<'6T)#BY/$9J&%ZB>'FP<G&M)%FO=X2S>7VF<H2T$%RB9F:*26=A-D!R.!N-97*73568,G6Y:1!!!!"16%AQ!!!!"!!!!!!!!!!"!!!!$%RB9F:*26=A-D!R.!!!!!!!!!!!!!!!">Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1Z-97*73568)%^C;G6D>!"16%AQ!!!!!!!!!!!!&!#!!!!!!!!!!!!!!!!!!!%!!!!!!!I"!!!!%Q!31$,`````#5:J<'5A5'&U;!!11$$`````"V:F=H.J<WY!$E!S`````Q21982I!!".!0%!!!!!!!!!!B.B=("M;7.B>'FP<CZM>G.M98.T&%2&2CV-97*73568)%F/2E]O9X2M!"R!5!!#!!%!!AR-97*73568)%FO:G]!!"J!1!!"`````Q!$$%RB9F:*26=A37ZG<Q!!'%!Q`````QZ4?7VC<WQA6G6S=WFP<A!!&%!S`````QN4?7VC<WQA5'&U;!!;1%!!!@````]!!1R7:8*T;7^O)%RJ=X1!!"J!-0````]15W6M:7.U:71A6G6S=WFP<A!!%E!B$6.Z<7*P<#"'<X6O:$]!%E!Q`````QB$451A<'FO:1!!&U!$!""%;8.Q<'&Z)&2J<75I<8-J!!!31&!!!1!,#(.F>(2J<G>T!!!=1%!!!@````]!!1^';7RF)%6Y>'6O=WFP<H-!%E!B$&.F>(2J<G=A47^E:1!!$E!B#&.U98*U:71`!!!31&1!"AJ4>'&S>#"5;7VF!!!71&!!!A!0!"!+6'FN:8)A37ZG<Q!!<!$RXX[I"Q!!!!)498"Q<'FD982J<WYO<(:D<'&T=Q^B=("M;7.B>'FP<CZD>'Q!1%"1!!Q!!!!%!!5!"A!(!!A!#1!+!!Q!$1!/!"%>1WRV=X2F=C"P:C"D<'&T=S"Q=GFW982F)'2B>'%!!1!3!!!!$Q!!!!!!!!!"!!!!!A!!!!-!!!!%!!!!"1!!!!9!!!!(!!!!#!!!!!E!!!!,!!!!$!!!!!U!!!!/!!!!$V"53$!!!!")!!!!"1&$%V"S<W>S97UA2GFM:8-A+(AY.CE54G&U;7^O97QA37ZT>(*V<76O>(--4'&C6EF&6S!S-$%U#URB9F:*26=O:8BF!!!!!1!!!!R-97*73568)$)Q-4216%AQ!!!!3!!!!!5"1R.1=G^H=G&N)%:J<'6T)#BY/$9J&%ZB>'FP<G&M)%FO=X2S>7VF<H2T$%RB9F:*26=A-D!R.!N-97*73568,G6Y:1!!!!"16%AQ!!!!"!!!!!!!!!!"!!!!$%RB9F:*26=A-D!R.!!!!!!!!!!!!!!!">Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1Z-97*73568)%^C;G6D>!"16%AQ!!!!!!!!!!!!&!#!!!!!!!!!!!!!!!!!!!%!!!!!!!!!!!!!%Q!31$,`````#5:J<'5A5'&U;!!11$$`````"V:F=H.J<WY!$E!S`````Q21982I!!"@!0%!!!!!!!!!!R&B=("M;7.B>'FP<CZM>GRJ9B.B=("M;7.B>'FP<CZM>G.M98.T&%2&2CV-97*73568)%F/2E]O9X2M!"R!5!!#!!%!!AR-97*73568)%FO:G]!!"J!1!!"`````Q!$$%RB9F:*26=A37ZG<Q!!'%!Q`````QZ4?7VC<WQA6G6S=WFP<A!!&%!S`````QN4?7VC<WQA5'&U;!!;1%!!!@````]!!1R7:8*T;7^O)%RJ=X1!!"J!-0````]15W6M:7.U:71A6G6S=WFP<A!!%E!B$6.Z<7*P<#"'<X6O:$]!%E!Q`````QB$451A<'FO:1!!&U!$!""%;8.Q<'&Z)&2J<75I<8-J!!!31&!!!1!,#(.F>(2J<G>T!!!=1%!!!@````]!!1^';7RF)%6Y>'6O=WFP<H-!%E!B$&.F>(2J<G=A47^E:1!!$E!B#&.U98*U:71`!!!31&1!"AJ4>'&S>#"5;7VF!!!71&!!!A!0!"!+6'FN:8)A37ZG<Q!!@A$RXY;LQA!!!!-298"Q<'FD982J<WYO<(:M;7)498"Q<'FD982J<WYO<(:D<'&T=Q^B=("M;7.B>'FP<CZD>'Q!1%"1!!Q!!!!%!!5!"A!(!!A!#1!+!!Q!$1!/!"%>1WRV=X2F=C"P:C"D<'&T=S"Q=GFW982F)'2B>'%!!1!3!!!!!@````Z16%AQ!!!!3!!!!!5"1R.1=G^H=G&N)%:J<'6T)#BY/$9J&%ZB>'FP<G&M)%FO=X2S>7VF<H2T$%RB9F:*26=A-D!R.!N-97*73568,G6Y:1!!!!%!!!!-4'&C6EF&6S!S-$%U5&2)-!!!!%A!!!!&!5-45(*P:X*B<3"';7RF=S!I?$AW+22/982J<WZB<#"*<H.U=H6N:7ZU=QR-97*73568)$)Q-41,4'&C6EF&6SZF?'5!!!!!5&2)-!!!!!1!!!!!!!!!!1!!!!R-97*73568)$)Q-41!!!!!!!!!!!!!!!8=!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%/4'&C6EF&6S"09GJF9X1!5&2)-!!!!!!!!!!!!"1!A!!!!!!!!!!!!!!"!!!!%W&Q='RJ9W&U;7^O,GRW9WRB=X- false + 1.0.0.0 3 2 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"T!!!!!Q!11$$`````"V:F=H.J<WY!$E!S`````Q21982I!!".!0%!!!!!!!!!!B.B=("M;7.B>'FP<CZM>G.M98.T&%2&2CV-97*73568)%F/2E]O9X2M!"R!5!!#!!!!!1R-97*73568)%FO:G]!!!%!!A!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"T!!!!!Q!11$$`````"V:F=H.J<WY!$E!S`````Q21982I!!".!0%!!!!!!!!!!B.B=("M;7.B>'FP<CZM>G.M98.T&%2&2CV-97*73568)%F/2E]O9X2M!"R!5!!#!!!!!1R-97*73568)%FO:G]!!!%!!A!!!!! -1 1048576 true @@ -38,7 +39,7 @@ 1082143234 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"Z!!!!"!!11#%+2GFS=X1A5H6O0Q!!%%!Q`````Q:T>(*J<G=!!""!1!!"`````Q!"!U6Y>!""!0%!!!!!!!!!!B.B=("M;7.B>'FP<CZM>G.M98.T$E2&2CV3:7>&?(1O9X2M!":!5!!#!!!!!A:3:7>&?(1!!!%!!Q!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"Z!!!!"!!11#%+2GFS=X1A5H6O0Q!!%%!Q`````Q:T>(*J<G=!!""!1!!"`````Q!"!U6Y>!""!0%!!!!!!!!!!B.B=("M;7.B>'FP<CZM>G.M98.T$E2&2CV3:7>&?(1O9X2M!":!5!!#!!!!!A:3:7>&?(1!!!%!!Q!!!!! -1 1048576 true @@ -51,7 +52,7 @@ 2 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!$T!!!!#Q!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!"2!-P````]+5'&U;#!I:(6Q+1!!&E"1!!-!!!!"!!)):8*S<X)A;7Y!!""!-0````]'=(*F:GFY!!!/1$$`````"%ZB<75!!!Z!-P````]%5'&U;!!!6!$Q!!Q!!Q!%!!1!"1!%!!1!"!!%!!9!"Q!)!!E$!!"Y!!!.#!!!!!!!!!!!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!)1!!!#%!!!!"!!!!!!!1!+!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!$T!!!!#Q!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!"2!-P````]+5'&U;#!I:(6Q+1!!&E"1!!-!!!!"!!)):8*S<X)A;7Y!!""!-0````]'=(*F:GFY!!!/1$$`````"%ZB<75!!!Z!-P````]%5'&U;!!!6!$Q!!Q!!Q!%!!1!"1!%!!1!"!!%!!9!"Q!)!!E$!!"Y!!!.#!!!!!!!!!!!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!)1!!!#%!!!!"!!!!!!!1!+!!!!!! -1 0 true @@ -60,7 +61,7 @@ 1082143248 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%(!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!G1&!!!Q!!!!%!!BFF=H*P=C"J<C!I<G]A:8*S<X)J)#BE>8!J!!1!!!!91$,`````$G2V=#"Q982I)#BE>8!J!!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!""!-0````](='&U>'6S<A!31$,`````#'2V=#"Q982I!!"5!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!%!!=!#!-!!(A!!!E!!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!1!!!!%!!!!!!"!!E!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%(!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!G1&!!!Q!!!!%!!BFF=H*P=C"J<C!I<G]A:8*S<X)J)#BE>8!J!!1!!!!91$,`````$G2V=#"Q982I)#BE>8!J!!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!""!-0````](='&U>'6S<A!31$,`````#'2V=#"Q982I!!"5!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!%!!=!#!-!!(A!!!E!!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!1!!!!%!!!!!!"!!E!!!!! -1 0 true @@ -69,7 +70,7 @@ 1082143248 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%,!!!!$!!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!%%!Q`````Q:4>(*J<G=!!!R!)1:&?'FU=T]!!"2!-P````]+='&U;#!I:(6Q+1!!"!!!!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!%%!Q`````Q>Q982U:8*O!!Z!-P````]%='&U;!!!6!$Q!!Q!!Q!%!!5!"A!(!!=!"Q!(!!A!"Q!*!!I$!!"Y!!!.#!!!#1!!!!E!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!"%A!!!"!!!!!!!1!,!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%,!!!!$!!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!%%!Q`````Q:4>(*J<G=!!!R!)1:&?'FU=T]!!"2!-P````]+='&U;#!I:(6Q+1!!"!!!!#"!5!!$!!!!!1!#%W6S=G^S)'FO)#BO<S"F=H*P=CE!%%!Q`````Q>Q982U:8*O!!Z!-P````]%='&U;!!!6!$Q!!Q!!Q!%!!5!"A!(!!=!"Q!(!!A!"Q!*!!I$!!"Y!!!.#!!!#1!!!!E!!!!.#Q!!!!!!!!!!!!!!!!!!!!!!!!I!!!!!!!!"%A!!!"!!!!!!!1!,!!!!!! -1 0 true @@ -78,17 +79,17 @@ 1082143248 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%@!!!!$1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!%%!Q`````Q>7:8*T;7^O!!R!)1:&?'FU=T]!!"2!-P````]+='&U;#!I:(6Q+1!!&%!S`````QN4?7VC<WQA='&U;!!%!!!!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!11$$`````"X"B>(2F=GY!$E!S`````Q2Q982I!!"5!0!!$!!$!!1!"1!'!!=!#!!)!!A!#1!)!!I!#Q-!!(A!!!U)!!!*!!!!#1!!!!U,!!!*!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!1!!!!%!!!!!!"!!Q!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%@!!!!$1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!%%!Q`````Q>7:8*T;7^O!!R!)1:&?'FU=T]!!"2!-P````]+='&U;#!I:(6Q+1!!&%!S`````QN4?7VC<WQA='&U;!!%!!!!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!11$$`````"X"B>(2F=GY!$E!S`````Q2Q982I!!"5!0!!$!!$!!1!"1!'!!=!#!!)!!A!#1!)!!I!#Q-!!(A!!!U)!!!*!!!!#1!!!!U,!!!*!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!1!!!!%!!!!!!"!!Q!!!!! -1 16777344 true 2 1 - 1115685392 + 1117782544 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!'/!!!!$A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!&]!]1!!!!!!!!!$%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!"1!'$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!=-4'&C6EF&6S"*<G:P!!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!":!)2%T-G*J>#B5+3]W.'*J>#B'+1!31$,`````#'2V=#"Q982I!!!31%!!!@````]!#Q6"=H*B?1"5!0!!$!!$!!1!"!!)!!1!"!!%!!1!#1!%!!I!$!-!!(A!!!U)!!!!!!!!!!!!!!E!!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!)!!!#%!!!!!!"!!U!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!'/!!!!$A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!""!-0````](6G6S=WFP<A!/1$,`````"&"B>'A!!&]!]1!!!!!!!!!$%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-52%6',5RB9F:*26=A35Z'4SZD>'Q!(%"1!!)!"1!'$%RB9F:*26=A37ZG<Q!!'E"!!!(`````!!=-4'&C6EF&6S"*<G:P!!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!":!)2%T-G*J>#B5+3]W.'*J>#B'+1!31$,`````#'2V=#"Q982I!!!31%!!!@````]!#Q6"=H*B?1"5!0!!$!!$!!1!"!!)!!1!"!!%!!1!#1!%!!I!$!-!!(A!!!U)!!!!!!!!!!!!!!E!!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!!!!!!)!!!#%!!!!!!"!!U!!!!! -1 0 true @@ -97,7 +98,7 @@ 1350574608 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!$L!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!!Z!-0````]%>'6Y>!!!%E!S`````QF1982I+'2V=#E!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!/1$,`````"&"B>'A!!&1!]!!-!!-!"!!&!!9!"!!%!!1!"!!(!!1!"!!)!Q!!?!!!$1A!!!!!!!!*!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!+!!!!!!!!!!!!!!!)!!!!!!%!#1!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!$L!!!!#A!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!!Z!-0````]%>'6Y>!!!%E!S`````QF1982I+'2V=#E!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!/1$,`````"&"B>'A!!&1!]!!-!!-!"!!&!!9!"!!%!!1!"!!(!!1!"!!)!Q!!?!!!$1A!!!!!!!!*!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!+!!!!!!!!!!!!!!!)!!!!!!%!#1!!!!! -1 0 true @@ -106,7 +107,7 @@ 1082143250 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&9!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!%J!=!!?!!!H%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-!'7&Q='RJ9W&U;7^O,GRW9WRB=X-A+'2V=#E!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1"%1(!!(A!!*R&B=("M;7.B>'FP<CZM>GRJ9B.B=("M;7.B>'FP<CZM>G.M98.T!".B=("M;7.B>'FP<CZM>G.M98.T!'%!]!!-!!-!"!!%!!5!"!!%!!1!"!!'!!1!"!!(!Q!!?!!!$1A!!!!!!!!!!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!+!!!!!!!!!!!!!!!3!!!.!!!!$!!!!!!!!!!!!!!"!!A!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&9!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!%J!=!!?!!!H%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-!'7&Q='RJ9W&U;7^O,GRW9WRB=X-A+'2V=#E!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1"%1(!!(A!!*R&B=("M;7.B>'FP<CZM>GRJ9B.B=("M;7.B>'FP<CZM>G.M98.T!".B=("M;7.B>'FP<CZM>G.M98.T!'%!]!!-!!-!"!!%!!5!"!!%!!1!"!!'!!1!"!!(!Q!!?!!!$1A!!!!!!!!!!!!!$1M!!!!!!!!!!!!!!!!!!!!!!!!+!!!!!!!!!!!!!!!3!!!.!!!!$!!!!!!!!!!!!!!"!!A!!!!! -1 0 true @@ -115,7 +116,7 @@ 1350574608 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&+!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!%"!=!!?!!!H%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-!$W&Q='RJ9W&U;7^O)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!%"!=!!?!!!H%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-!$G&Q='RJ9W&U;7^O)'FO!!"B!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!%!!1!"Q-!!(A!!!U)!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!%A!!$1!!!!Q!!!!!!!!!!!!!!1!)!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&+!!!!#1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!AFF=H*P=C"P>81!"!!!!%"!=!!?!!!H%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-!$W&Q='RJ9W&U;7^O)'^V>!!A1&!!!Q!!!!%!!B.F=H*P=C"J<C!I<G]A:8*S<X)J!%"!=!!?!!!H%7&Q='RJ9W&U;7^O,GRW<'FC%W&Q='RJ9W&U;7^O,GRW9WRB=X-!$G&Q='RJ9W&U;7^O)'FO!!"B!0!!$!!$!!1!"!!&!!1!"!!%!!1!"A!%!!1!"Q-!!(A!!!U)!!!!!!!!!!!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#!!!!!!!!!!!!!!!%A!!$1!!!!Q!!!!!!!!!!!!!!1!)!!!!!! -1 0 true @@ -124,7 +125,7 @@ 1082139152 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"[!!!!"!!%!!!!$%!B"U*P<WRF97Y!$E!S`````Q2Q982I!!"5!0!!$!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!A)!!(A!!!!!!!!!!!!!!!!!!!E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!"!!-!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"[!!!!"!!%!!!!$%!B"U*P<WRF97Y!$E!S`````Q2Q982I!!"5!0!!$!!!!!!!!!!"!!!!!!!!!!!!!!!!!!!!!A)!!(A!!!!!!!!!!!!!!!!!!!E!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!!!"!!-!!!!! -1 160 true @@ -133,7 +134,7 @@ 1082143234 - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"S!!!!!Q!%!!!!%E!S`````QB*4EEA5'&U;!!!6!$Q!!Q!!!!!!!!!!1!!!!!!!!!!!!!!!!!!!!!$!!"Y!!!!!!!!!!!!!!!!!!!*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!#!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"S!!!!!Q!%!!!!%E!S`````QB*4EEA5'&U;!!!6!$Q!!Q!!!!!!!!!!1!!!!!!!!!!!!!!!!!!!!!$!!"Y!!!!!!!!!!!!!!!!!!!*!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!#!!!!!! -1 0 true @@ -143,7 +144,7 @@ - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"A!!!!!A!%!!!!6!$Q!!Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!"Y!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!"!!!!!! + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!"A!!!!!A!%!!!!6!$Q!!Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$!!"Y!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1!"!!!!!! -1 256 true diff --git a/Application/application.lvlib b/Application/application.lvlib index 63f100d..4490583 100644 --- a/Application/application.lvlib +++ b/Application/application.lvlib @@ -1,7 +1,7 @@  - - &!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(]!!!*Q(C=\>8"=>MQ%!8143;(8.6"2CVM#WJ",7Q,SN&(N<!NK!7VM#WI"<8A0$%94UZ2$P%E"Y.?G@I%A7=11U>M\7P%FXB^VL\`NHV=@X<^39O0^N(_<8NZOEH@@=^_CM?,3)VK63LD->8LS%=_]J'0@/1N<XH,7^\SFJ?]Z#5P?=F,HP+5JTTF+5`Z>MB$(P+1)YX*RU2DU$(![)Q3YW.YBG>YBM@8'*\B':\B'2Z>9HC':XC':XD=&M-T0--T0-.DK%USWS(H'2\$2`-U4`-U4`/9-JKH!>JE<?!W#%;UC_WE?:KH?:R']T20]T20]\A=T>-]T>-]T?/7<66[UTQ//9^BIHC+JXC+JXA-(=640-640-6DOCC?YCG)-G%:(#(+4;6$_6)]R?.8&%`R&%`R&)^,WR/K<75?GM=BZUG?Z%G?Z%E?1U4S*%`S*%`S'$;3*XG3*XG3RV320-G40!G3*D6^J-(3D;F4#J,(T\:<=HN+P5FS/S,7ZIWV+7.NNFC<+.<GC0819TX-7!]JVO,(7N29CR6L%7,^=<(1M4#R*IFV][.DX(X?V&6>V&G>V&%>V&\N(L@_Z9\X_TVONVN=L^?Y8#ZR0J`D>$L&]8C-Q_%1_`U_>LP>WWPAG_0NB@$TP@4C`%`KH@[8`A@PRPA=PYZLD8Y!#/7SO!!!!!! - 335577088 + + &Q#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(]!!!*Q(C=\>8"=>MQ%!8143;(8.6"2CVM#WJ",7Q,SN&(N<!NK!7VM#WI"<8A0$%94UZ2$P%E"Y.?G@I%A7=11U>M\7P%FXB^VL\`NHV=@X<^39O0^N(_<8NZOEH@@=^_CM?,3)VK63LD->8LS%=_]J'0@/1N<XH,7^\SFJ?]Z#5P?=F,HP+5JTTF+5`Z>MB$(P+1)YX*RU2DU$(![)Q3YW.YBG>YBM@8'*\B':\B'2Z>9HC':XC':XD=&M-T0--T0-.DK%USWS(H'2\$2`-U4`-U4`/9-JKH!>JE<?!W#%;UC_WE?:KH?:R']T20]T20]\A=T>-]T>-]T?/7<66[UTQ//9^BIHC+JXC+JXA-(=640-640-6DOCC?YCG)-G%:(#(+4;6$_6)]R?.8&%`R&%`R&)^,WR/K<75?GM=BZUG?Z%G?Z%E?1U4S*%`S*%`S'$;3*XG3*XG3RV320-G40!G3*D6^J-(3D;F4#J,(T\:<=HN+P5FS/S,7ZIWV+7.NNFC<+.<GC0819TX-7!]JVO,(7N29CR6L%7,^=<(1M4#R*IFV][.DX(X?V&6>V&G>V&%>V&\N(L@_Z9\X_TVONVN=L^?Y8#ZR0J`D>$L&]8C-Q_%1_`U_>LP>WWPAG_0NB@$TP@4C`%`KH@[8`A@PRPA=PYZLD8Y!#/7SO!!!!!! + 385908736 1.0.0.0 true diff --git a/Application/application.vi b/Application/application.vi index 69f9f8b..5f00145 100644 Binary files a/Application/application.vi and b/Application/application.vi differ diff --git a/Application/support/DEF-LabVIEW INFO.ctl b/Application/support/DEF-LabVIEW INFO.ctl index a8481af..9bba7ad 100644 Binary files a/Application/support/DEF-LabVIEW INFO.ctl and b/Application/support/DEF-LabVIEW INFO.ctl differ diff --git a/Application/support/DEF-RegExt.ctl b/Application/support/DEF-RegExt.ctl index d3f6b18..e273967 100644 Binary files a/Application/support/DEF-RegExt.ctl and b/Application/support/DEF-RegExt.ctl differ diff --git a/Application/support/GetCMDLine.vi b/Application/support/GetCMDLine.vi index 106a757..4fbfb87 100644 Binary files a/Application/support/GetCMDLine.vi and b/Application/support/GetCMDLine.vi differ diff --git a/Application/support/GetLabVIEWInfos.vi b/Application/support/GetLabVIEWInfos.vi index 8f2d48b..483b506 100644 Binary files a/Application/support/GetLabVIEWInfos.vi and b/Application/support/GetLabVIEWInfos.vi differ diff --git a/Application/support/IniPath.vi b/Application/support/IniPath.vi index f8bfd49..4e0a076 100644 Binary files a/Application/support/IniPath.vi and b/Application/support/IniPath.vi differ diff --git a/Application/support/Symbol/CreateSymbolInDir.vi b/Application/support/Symbol/CreateSymbolInDir.vi index f99d1ae..f1155b0 100644 Binary files a/Application/support/Symbol/CreateSymbolInDir.vi and b/Application/support/Symbol/CreateSymbolInDir.vi differ diff --git a/Application/support/Symbol/DeleteSymbolsInDir.vi b/Application/support/Symbol/DeleteSymbolsInDir.vi index 34aa53a..68a25a5 100644 Binary files a/Application/support/Symbol/DeleteSymbolsInDir.vi and b/Application/support/Symbol/DeleteSymbolsInDir.vi differ diff --git a/Application/support/Symbol/FindSymbol.vi b/Application/support/Symbol/FindSymbol.vi index 35e1b47..01fb873 100644 Binary files a/Application/support/Symbol/FindSymbol.vi and b/Application/support/Symbol/FindSymbol.vi differ diff --git a/Application/support/Symbol/FindSymbolInDir.vi b/Application/support/Symbol/FindSymbolInDir.vi index 7ae4292..7783bb1 100644 Binary files a/Application/support/Symbol/FindSymbolInDir.vi and b/Application/support/Symbol/FindSymbolInDir.vi differ diff --git a/Application/support/_GetLVInfo.vi b/Application/support/_GetLVInfo.vi index e1145a4..a86c107 100644 Binary files a/Application/support/_GetLVInfo.vi and b/Application/support/_GetLVInfo.vi differ diff --git a/Application/support/_lvVersion - xml.vi b/Application/support/_lvVersion - xml.vi index db26c99..239ef85 100644 Binary files a/Application/support/_lvVersion - xml.vi and b/Application/support/_lvVersion - xml.vi differ diff --git a/Application/support/isRootDir.vi b/Application/support/isRootDir.vi index faea6ea..571dd82 100644 Binary files a/Application/support/isRootDir.vi and b/Application/support/isRootDir.vi differ diff --git a/LabVIEW-Version-Selector.lvproj b/LabVIEW-Version-Selector.lvproj index f9ca5e8..05df2fd 100644 --- a/LabVIEW-Version-Selector.lvproj +++ b/LabVIEW-Version-Selector.lvproj @@ -1,6 +1,8 @@  + 17.0 true + 201310 @@ -41,48 +43,56 @@ + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -92,88 +102,33 @@ + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/LabVIEW-Version-Selector.vipb b/LabVIEW-Version-Selector.vipb index 9821b73..89a8fb7 100644 --- a/LabVIEW-Version-Selector.vipb +++ b/LabVIEW-Version-Selector.vipb @@ -1,10 +1,10 @@ - + LabVIEW_Version_Selector - 2.1.0.41 + 2.1.0.42 false . - Build + vip NEVSTOP @@ -14,17 +14,14 @@ LabVIEW-Version-Selector true LabVIEW + false + jki_lib_state_machine >=3.0.0.8 jki_rsc_toolkits_palette >=1.1 - oglib_appcontrol >=4.1.0.7 - oglib_array >=4.1.1.14 - oglib_error >=4.2.0.23 - oglib_lvdata >=4.2.0.21 - oglib_string >=4.1.0.12 - oglib_variantconfig >=4.0.0.5 + nevstop_programming_palette >=2026.5.5.203240 nevstop_util_multi_labview_selector >=1.3.1.17 @@ -79,7 +76,8 @@ After `LabVIEW Version Selector.exe` is used to open file of those types, you ha NEVSTOP https://github.com/NEVSTOP-LIBs/LabVIEW-Version-Selector - 1. update documentation. + 1. change dependencies +2. #14 remove wmic functions @@ -170,6 +168,33 @@ After `LabVIEW Version Selector.exe` is used to open file of those types, you ha Build + + .github + + + .LabVIEW-Version-Selector.UserState + + + docs + + + [config].ini + + + _obsolete.zip + + + DEV ENVIRONMENT LabVIEW 2017 + + + LICENSE + + + README.md + + + vip + diff --git a/README.md b/README.md index 8338136..8bcc01f 100644 --- a/README.md +++ b/README.md @@ -39,15 +39,3 @@ After `LabVIEW Version Selector.exe` is used to open file of those types, you ha - E:\Program Files (x86)\National Instruments - F:\Program Files\National Instruments - F:\Program Files (x86)\National Instruments - -## Windows 11 WMIC support - -Some Windows 11 systems do not have `wmic` preinstalled. -If you see an error like `wmic is not recognized...`, run the script from the repository (or extracted zip) root: - -- Command Prompt: `cmd\install-wmic-if-missing.bat` -- PowerShell: `.\cmd\install-wmic-if-missing.bat` - -The script detects whether `wmic` is missing and installs the Windows capability `WMIC~~~~0.0.1.0` automatically (administrator permission required). -If started without administrator privileges, it will prompt for UAC elevation automatically. - diff --git a/_vip_support/Post-Install Custom Action.vi b/_vip_support/Post-Install Custom Action.vi index 0807d9e..e375f69 100644 Binary files a/_vip_support/Post-Install Custom Action.vi and b/_vip_support/Post-Install Custom Action.vi differ diff --git a/_vip_support/Post-Uninstall Custom Action.vi b/_vip_support/Post-Uninstall Custom Action.vi index 8ef1438..36febd6 100644 Binary files a/_vip_support/Post-Uninstall Custom Action.vi and b/_vip_support/Post-Uninstall Custom Action.vi differ diff --git a/cmd/OSArchitecture.vi b/cmd/OSArchitecture.vi index 3b57a43..7f68991 100644 Binary files a/cmd/OSArchitecture.vi and b/cmd/OSArchitecture.vi differ diff --git a/cmd/Open Explorer Window.vi b/cmd/Open Explorer Window.vi index 46e8453..39f4eac 100644 Binary files a/cmd/Open Explorer Window.vi and b/cmd/Open Explorer Window.vi differ diff --git a/cmd/RegPatchGenerator.vi b/cmd/RegPatchGenerator.vi index 0bbe2ed..84eaec1 100644 Binary files a/cmd/RegPatchGenerator.vi and b/cmd/RegPatchGenerator.vi differ diff --git a/cmd/SigCheck.vi b/cmd/SigCheck.vi index 0989afb..306533f 100644 Binary files a/cmd/SigCheck.vi and b/cmd/SigCheck.vi differ diff --git a/cmd/assoc.vi b/cmd/assoc.vi index 047162f..d234cde 100644 Binary files a/cmd/assoc.vi and b/cmd/assoc.vi differ diff --git a/cmd/install-wmic-if-missing.bat b/cmd/install-wmic-if-missing.bat deleted file mode 100644 index 360950b..0000000 --- a/cmd/install-wmic-if-missing.bat +++ /dev/null @@ -1,34 +0,0 @@ -@echo off -setlocal -set "UAC_CANCELLED=1223" -set "ELEVATE_ARGS=/c ""%~f0""" - -where wmic >nul 2>&1 -if not errorlevel 1 ( - echo WMIC is already available. - exit /b 0 -) - -echo WMIC is missing. Attempting to install Windows capability: WMIC~~~~0.0.1.0 - -net session >nul 2>&1 -if errorlevel 1 ( - echo Requesting administrator permission... - powershell -NoProfile -Command "try { $p = Start-Process -FilePath 'cmd.exe' -ArgumentList '%ELEVATE_ARGS%' -Verb RunAs -Wait -PassThru -ErrorAction Stop; exit $p.ExitCode } catch { exit %UAC_CANCELLED% }" - exit /b %errorlevel% -) - -dism /Online /Add-Capability /CapabilityName:WMIC~~~~0.0.1.0 /NoRestart -if errorlevel 1 ( - echo Failed to install WMIC capability. - exit /b 1 -) - -where wmic >nul 2>&1 -if not errorlevel 1 ( - echo WMIC was installed successfully. - exit /b 0 -) - -echo WMIC installation command finished, but wmic is still not found. -exit /b 1 diff --git a/docs/WMIC-Removal-and-Win10-Win11-Compatibility-Plan.md b/docs/WMIC-Removal-and-Win10-Win11-Compatibility-Plan.md new file mode 100644 index 0000000..1dfe85f --- /dev/null +++ b/docs/WMIC-Removal-and-Win10-Win11-Compatibility-Plan.md @@ -0,0 +1,181 @@ +# WMIC 移除与 Windows 10/11 兼容性改造计划 + +## 目标 + +移除 WMIC 的安装和运行时依赖,同时保持 LabVIEW Version Selector 在 Windows 10 与 Windows 11 上的现有行为。 + +LabVIEW 安装发现以由 `System Exec.vi` 执行的非提权批处理脚本为主要实现。脚本仅读取注册表和文件系统,不修改系统配置、不使用 DISM 且不请求 UAC 提权。对注册表未发现的安装,保留现有对 `C:` 至 `F:` 驱动器固定目录的扫描作为回退。 + +## 范围 + +包含: + +- 删除 WMIC 安装辅助脚本、相关文档和所有包分发引用。 +- 替换在 LabVIEW 程序框图中确认存在的每一处 WMIC 命令。 +- 保持现有 LabVIEW 信息记录、选择器 UI、命令行处理、文件关联行为和支持的文件类型。 +- 构建并验证标准与管理员 EXE 构建规格以及 VIP 包。 + +不包含: + +- 将扫描根目录改为可配置。 +- 自动枚举所有本地驱动器。 +- 将 PowerShell、CIM 或 LabVIEW 原生注册表 API 作为必需的运行时依赖。 +- 重构 `Sigcheck`,除非检查证实它直接调用 WMIC。 + +## 已确认的当前状态 + +| 位置 | 已确认行为 | 所需改动 | +| --- | --- | --- | +| `cmd/install-wmic-if-missing.bat` | 使用 `where wmic`;不可用时通过 PowerShell 提权,并使用 DISM 安装 `WMIC~~~~0.0.1.0`。 | 删除该文件。 | +| `README.md` | `Windows 11 WMIC support` 章节要求用户运行辅助脚本。 | 删除该章节。 | +| `LabVIEW-Version-Selector.vipb` | 以 `.` 为源目录,仅排除 `.gitignore` 和 `Build`;辅助脚本可能被纳入 VIP 源文件集。 | 从源目录删除脚本;仅当 VIPM 在项目配置中保留已删除路径的排除项时,添加显式排除。 | +| `LabVIEW-Version-Selector.lvproj` | EXE 构建规格包含应用程序库和 `Sigcheck`,未显式包含 `cmd`。 | 修改 VI 后重新构建两个 EXE 并检查构建输出。 | + +以下 VI 为二进制文件,尚未通过文本检查确定其实际命令用法,修改前必须验证: + +- `Application/support/GetLabVIEWInfos.vi` +- `Application/support/_GetLVInfo.vi` +- `cmd/OSArchitecture.vi` +- `cmd/SigCheck.vi` +- `_vip_support/Post-Install Custom Action.vi` +- `_vip_support/Post-Uninstall Custom Action.vi` + +## 阶段 1:审计二进制 VI + +在修改任何程序框图前,使用 LabVIEW 2017 中的 `labview-mcp` 检查候选 VI。 + +对每个候选 VI: + +1. 读取其程序框图和连接器窗格。 +2. 查找每个 `System Exec.vi` 或等效的外部进程节点。 +3. 记录命令字符串常量和构造出的命令字符串。 +4. 搜索 `wmic`、`wmic.exe`、`WMIC~~~~0.0.1.0`、`dism`、`powershell` 和 `sigcheck`。 +5. 检查调用者与被调用者,确定行为的归属 VI 和所有下游契约。 + +### 预期审计结论 + +| VI | 审计决策 | +| --- | --- | +| `Application/support/GetLabVIEWInfos.vi` | 确认它是否枚举 LabVIEW 安装,以及是否使用 WMIC 发现安装。 | +| `Application/support/_GetLVInfo.vi` | 确认它是否将安装路径转换为 `DEF-LabVIEW INFO.ctl`,以及是否调用外部进程。 | +| `cmd/OSArchitecture.vi` | 确认它是否依赖 WMIC 获取操作系统或进程架构。 | +| `cmd/SigCheck.vi` | 确认它对随包 Sysinternals 可执行文件的独立使用,以及与 WMIC 的关系。 | +| 安装后与卸载后动作 | 确认它们仅管理文件关联,不调用 WMIC 或已删除的辅助脚本。 | + +不能只因 VI 名称看似与 WMIC 有关就替换它。审计结果是后续每项程序框图改动的必要证据。 + +## 阶段 2:定义安装发现契约 + +改变发现逻辑前,依据审计后的程序框图记录 `Application/support/GetLabVIEWInfos.vi` 和 `Application/support/_GetLVInfo.vi` 的现有契约: + +1. 列出所有输入、输出和错误行为。 +2. 确定写入 `Application/support/DEF-LabVIEW INFO.ctl` 的字段。 +3. 记录当前排序、去重、版本筛选和无效路径处理方式。 +4. 确定当前 `C:` 至 `F:` 固定目录扫描的位置,并将其保留为回退阶段。 + +注册表实现必须返回调用者预期的相同有效 LabVIEW 安装记录,且不得改变选择器 UI 契约。 + +## 阶段 3:以非提权批处理脚本替换已确认的 WMIC 安装发现逻辑 + +仅在审计确定的归属 VI 中执行本阶段,预计为 `Application/support/GetLabVIEWInfos.vi` 或其直接子 VI。 + +1. 新增 `cmd/GetLabVIEWInstallPaths.bat`,仅使用 Windows 内置的 `reg.exe` 查询 National Instruments 与 LabVIEW 安装注册表项;不得调用 PowerShell、CIM、WMIC 或 DISM。 +2. 脚本分别使用 `reg query` 读取原生注册表视图和 `/reg:32`、`/reg:64` 指定的注册表视图,覆盖 32 位与 64 位 LabVIEW 安装。 +3. 脚本从审计中发现的每种受支持键布局读取安装根目录值,并以每行一个绝对路径的 UTF-8 或系统 ANSI 编码输出。实施时必须确定编码,并使 LabVIEW 端按相同编码解码。 +4. 脚本跳过缺失键、缺失值和无效路径;未发现任何安装时应正常退出,不得输出误导性的错误文本。 +5. 在归属 VI 中通过 `System Exec.vi` 调用该脚本,收集标准输出、标准错误和退出码。使用绝对脚本路径或基于应用程序目录构造的路径,避免依赖当前工作目录。 +6. 将标准输出解析为候选目录路径,规范化路径后确认目录包含预期的 `LabVIEW.exe`,再创建 LabVIEW 信息记录。 +7. 除非审计确定了其他现有转换子 VI,否则通过现有 `_GetLVInfo.vi` 的路径到记录逻辑转换有效路径。 +8. 合并批处理脚本发现的记录与现有 `C:` 至 `F:` 目录扫描得到的记录。 +9. 使用阶段 2 确定的相同身份标识和排序规则去重。 +10. 仅在当前调用者行为要求时传播脚本执行错误;无匹配注册表键或无有效路径必须视为空发现源,并继续执行目录回退。 + +### 批处理脚本契约 + +| 项目 | 约定 | +| --- | --- | +| 路径 | `cmd/GetLabVIEWInstallPaths.bat`;构建 EXE 时将其作为支持文件部署到 EXE 可访问目录。 | +| 权限 | 仅读取 `HKLM` 下注册表值和检查目录,普通用户可执行;不得使用 `runas`、`Start-Process -Verb RunAs`、`net session` 或任何提权逻辑。 | +| 标准输出 | 每行一个候选 LabVIEW 安装根目录;不输出状态提示、标题或调试信息。 | +| 标准错误 | 仅输出意外执行失败的诊断信息;LabVIEW 端记录或按既有错误策略处理。 | +| 退出码 | `0` 表示脚本已完成,包括未发现安装;非零表示脚本自身无法执行。 | +| 参数 | 初始版本不接收参数;注册表键路径由脚本内部维护。 | +| 兼容性 | 仅使用 Windows 10 和 Windows 11 自带的 `cmd.exe` 与 `reg.exe`。 | + +### 注册表兼容性要求 + +- 在可用时测试 32 位和 64 位 LabVIEW 安装。 +- 不得假定选择器 EXE 的位数与已安装 LabVIEW 的位数相同。 +- 将缺失的注册表值和失效的安装路径视为可跳过的非致命候选项。 +- 确认 `reg.exe` 查询 `HKLM` 不需要管理员权限,且脚本不包含任何写入注册表的命令。 +- 保留当前文档中的回退路径: + - `C:\Program Files\National Instruments` + - `C:\Program Files (x86)\National Instruments` + - `D:`、`E:` 和 `F:` 上的等效路径 + +## 阶段 4:仅在需要时替换架构逻辑 + +仅当审计确认 `cmd/OSArchitecture.vi` 调用 WMIC 时执行本阶段。 + +1. 确定 `cmd/OSArchitecture.vi` 的精确输出格式及其下游调用者。 +2. 新增或复用一个由 `System Exec.vi` 调用的非提权 `.bat` 脚本,以 Windows 10 和 Windows 11 自带命令提供所需的 32 位或 64 位结果;不得调用 WMIC、PowerShell、CIM 或 DISM。 +3. 保持调用者当前的输出类型、文本值和错误语义。 +4. 在普通和管理员 EXE 构建规格中验证行为。 + +若审计未发现 WMIC 调用或生产环境调用者,则不修改该 VI。 + +## 阶段 5:保留无关的外部进程行为 + +除非审计证明存在关联,`cmd/SigCheck.vi` 与 `Sigcheck` 目录和 WMIC 辅助脚本相互独立。 + +1. 若其支持已保存版本或签名检查,保留 `Sigcheck` 调用、可执行文件架构选择、输出解析和退出码处理。 +2. 本次工作不得使用 WMI、CIM 或 PowerShell 替换 `Sigcheck`。 +3. 若审计发现 `cmd/SigCheck.vi` 内存在 WMIC 命令,仅将该特定职责迁移至由 `System Exec.vi` 调用的非提权 `.bat` 脚本,其余 `Sigcheck` 职责保持不变。 + +## 阶段 6:移除 WMIC 产物 + +替换所有已确认的运行时 WMIC 调用后: + +1. 删除 `cmd/install-wmic-if-missing.bat`。 +2. 删除 `README.md` 中完整的 `## Windows 11 WMIC support` 章节。 +3. 将新的 `cmd/GetLabVIEWInstallPaths.bat` 明确纳入 EXE 构建支持文件和 VIP 源文件集;如有需要,更新 `LabVIEW-Version-Selector.vipb` 的源文件排除项,确保过期包配置不能包含已删除的辅助脚本。 +4. 在源文本和已审计的 VI 程序框图中搜索: + - `wmic` + - `wmic.exe` + - `WMIC~~~~0.0.1.0` + - `install-wmic-if-missing.bat` + - 通过 `dism` 安装 WMIC 功能的命令 +5. 发布前处理每一个剩余匹配项。 + +## 阶段 7:构建和打包 + +1. 在 `LabVIEW-Version-Selector.lvproj` 中构建 `LabVIEW Version Selector`。 +2. 构建 `LabVIEW Version Selector(admin)`。 +3. 检查两个构建输出中的损坏 VI 和意外缺失依赖,并确认两个构建输出都包含 `GetLabVIEWInstallPaths.bat`。 +4. 使用 `LabVIEW-Version-Selector.vipb` 构建 VIP。 +5. 检查生成的 VIP 内容,确认包含 `cmd/GetLabVIEWInstallPaths.bat` 且不包含 `cmd/install-wmic-if-missing.bat`。 + +## 验证矩阵 + +| 场景 | 操作 | 预期结果 | +| --- | --- | --- | +| Windows 10,WMIC 可用 | 使用代表性的 `.vi` 和 `.lvproj` 运行普通 EXE。 | 批处理脚本发现已安装 LabVIEW 版本;选定文件由所选版本打开。 | +| Windows 11,WMIC 不可用 | 使用代表性的 `.vi` 和 `.lvproj` 运行普通 EXE。 | 发现和选择正常,无错误、UAC 提示、DISM 调用或 WMIC 安装请求。 | +| 普通用户账户 | 从普通 EXE 运行安装发现。 | `System Exec.vi` 成功执行脚本,不触发 UAC;脚本仅执行注册表和目录读取。 | +| 64 位 LabVIEW 安装 | 从普通 EXE 运行安装发现。 | 批处理脚本的注册表查询为该安装返回一条有效记录。 | +| 32 位 LabVIEW 安装 | 从普通 EXE 运行安装发现。 | 批处理脚本检查备用注册表视图,并为该安装返回一条有效记录。 | +| 位于文档扫描根目录下的非标准安装 | 使用注册表测试数据中不存在、但位于 `C:` 至 `F:` NI 目录的有效 LabVIEW 安装。 | 目录回退能够发现该安装,且仍可选择。 | +| 失效注册表值 | 创建或使用安装路径中不再含 `LabVIEW.exe` 的注册表值。 | 跳过无效候选项;发现过程继续且不失败。 | +| 文件关联 | 安装生成的 VIP,运行安装后动作,再打开 `.vi`、`.ctl`、`.lvlib` 和 `.lvproj`。 | 现有文件关联行为保持不变。 | +| 卸载 | 运行 VIP 卸载动作。 | 现有文件关联清理行为保持不变。 | +| 包审计 | 检查构建的 VIP,并搜索已审计的程序框图和源代码。 | 不存在 WMIC 辅助脚本、WMIC 命令或 WMIC 安装说明。 | + +## 发布门禁 + +仅当下列条件全部满足时才能发布: + +1. `labview-mcp` 审计记录表明每条原有 WMIC 路径均已删除或替换。 +2. Windows 10 和 Windows 11 场景均通过,且不依赖 WMIC。 +3. 已在对应 LabVIEW 安装可用时测试 32 位和 64 位注册表视图,以及普通用户账户下的脚本执行。 +4. 两个 EXE 构建规格均构建成功且没有损坏 VI。 +5. 生成的 VIP 不包含已删除的批处理脚本。