Sei sulla pagina 1di 231

$ % #

&'(

!
!
" #
$
$ #
&'(')')
&' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *+

&'&' , '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *-

&'*' . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' */

&'+' 0 " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *1

&'-' " $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *(

&'/' 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *4

&'1' 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *6

&'1'&' 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *6

&'1'*' $ 5 . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *6

&'1'+' 7 8 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +)

&'1'-' " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +)

&'1'/' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +)

&'1'1' . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +)

&'1'(' 5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&

*' 9 : ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ++

+' ; < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +/

+'&' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +1

+'*' , 8 # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -/

+'*'&' 0 " ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -/

+'*'*' , " ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -4

-' $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /&

-'&' # , ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /*
-'&'&' 9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /*

-'&'*' , ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /*

-'&'+' $ 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /+

-'&'-' " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' //

-'&'/' 5 # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /6

-'&'1' " ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /6

-'&'(' $ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1&

-'&'4' . ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1+

-'&'6' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4-

-'*' # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4/

-'+' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4(

-'+'&' . 8 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4(

-'+'*' 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 44

-'-' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 46

/' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6)

/'&' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6&

/'*' $ . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6*

/'*'&' 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6*

/'*'*' 7 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6-

/'*'+' $ 5 . =$ 5. > '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6-

/'+' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6(

/'-' ? @ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 66

/'-'&' " ! ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 66


/'-'*' " ? ! ''''''''''''''''''''''''''''''''''''''''''''''''' &))

/'-'+' " $ A ! ? '''''''''''''''''''''''''''''''''''' &)&

/'/' " $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)*

/'/'&' " $ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)*

/'/'*' " $ 9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)/

/'1' B < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)1

/'1'&' 5 < '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)1

/'1'*' < 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)1

/'1'+' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)(

/'1'-' B < ''''''''''''''''''''''''''''''''''''''''''''''''''''' &)4

/'1'/' 9 . ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&+

/'1'1' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&+

/'(' 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&-

/'4' " 0# $ . ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&/

/'6' , C .8 $ . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&1

/'6'&' 2 7 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&1

/'6'*' $ 5 . =$ 5. > '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&(

/'&)' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&6

/'&&' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*)

/'&&'&' $ $ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*)

/'&&'*' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*)

/'&&'+' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*)

/'&&'-' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*&


/'&&'/' $ B ? @ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*&

/'&&'1' " $ . ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*&

/'&*' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*+

/'&*'&' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*+

/'&*'*' " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*-

/'&*'+' . ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*-

/'&*'-' " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*/

/'&*'/' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*/

/'&*'1' A ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*/

/'&*'(' - ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*1

/'&*'4' 9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*(

/'&+' , '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*6

/'&+'&' , ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*6

/'&+'*' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+&

/'&+'+' ? @ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+*

/'&+'-' 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &++

/'&-' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+/

/'&/' 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''' &+1

/'&1' $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+(

1' ; < 5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+6

1'&' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-)

1'&'&' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-)

1'&'*' ! , 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-&


1'*' , < 8 $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &--

1'*'&' $ # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &--

1'*'*' # 2 ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-(

1'+' " ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-6

1'+'&' . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-6

1'+'*' 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/)

1'+'+' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/*

(' $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/-

('&' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &//

('&'&' ! ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &//

('&'*' ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &//

('&'+' # $ # '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &//

('&'-' # 2 ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/1

('*' ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/4

('*'&' $ . ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/4

('+' 2 C ! ''''''''''''''''''''''''''''''''''''' &/6

('+'&' C '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/6

('+'*' C ! ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/6

('+'+' ? C ! ? ''''''''''''''''''''''''''''''''''''''''''''' &1)

('+'-' 9 ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &1*

('-' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &1-

('-'&' , $ ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &1-

('-'*' , ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(*


('/' ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(1

('/'&' " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(1

('/'*' " # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(1

('/'+' # " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(1

('/'-' ! " ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &((

('/'/' " " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(4

('/'1' " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(4

('/'(' ! # '''''''''''''''''''''''''''''''''''''''''''' &(4

('1' 5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(6

('1'&' " 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(6

('1'*' 9 " 5 '''''''''''''''''''''''''''''''''''''''''''' &(6

('1'+' 9 5 C ! ''''''''''''''''''''''''''''''''''' &4)

('(' ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &4&

('('&' 23 $ " ! ''''''''''''''''''''''''''''''''''''''''''''' &4&

('('*' .8 ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &46

('4' B < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &6-

('4'&' B < 23 ''''''''''''''''''''''''''''''''''''''''' &6-

('4'*' < ! '''''''''''''''''''''''''''''''''''''''''''''''''''''' &6(

('4'+' 2 8 < ''''''''''''''''''''''''''''''''''''''''''''''''''''''' &66

('6' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)&

('6'&' 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)&

('6'*' " 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)*

('&)' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)+


('&)'&' " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)+

('&)'*' 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)/

('&)'+' . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)1

('&&' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)(

('&*' $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)4

4' , '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)6

4'&' , '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&)

4'&'&' 9 , ''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&)

4'&'*' '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&&

4'&'+' ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&&

4'*' , < 8 $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&-

4'*'&' # $ # '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&-

4'*'*' # 2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&/

" 3 " D2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&6

" '& 8 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&6

" '* 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' **)

" '+ E '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' **)

3 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' **+
? &D; < F '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +(

? *D; < F$ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +4

? +D; < F" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +6

? -D; < F$ ''''''''''''''''''''''''''''''''''''''''''''''''''''' +6

? /D; < F '''''''''''''''''''''''''''''''''''''''' -)

? 1D; < F! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -)

? (D; < F ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -&

? 4D; < F. ''''''''''''''''''''''''''''''''''''''' -*

? 6D; < F ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -+

? &) D ; < F? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' --

? && D ; < F '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -/

? &* D ; < F! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -1

? &+ D ; < F$ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -(

? &- 0 ; < F ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -4

? &/ 0 ; < F$ # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -6

? &1 0 % 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /*

? &( D , F, ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /+

? &4 D , F$ ''''''''''''''''''''''''''''''''''''''''''''''''''' /-

? &60 , F" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /-

? *) D , F# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' //

? *& D , F
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /1
? ** D , F '''''''''''''''''''''' /(

? *+ 0 , F ''''''''''''''''''''''''''''''''''' /4

? *- D , F ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /6

? */ D , F" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1)

? *1 D , F '''''''''''''''''''''''''''''''''''''''''''''''''''''' 1&

? *( D , F" G '''''''''''''''''''''''''''''''''''''''''''''''''''''' 1*

? *4 D , F. ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1+

? *6 D , F ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1-

? +) D , F ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 11

? +& D , F : $ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 16

? +* D , F. ''''''''''''''''''''''''''''''''''''''''''''''''''''' (&

? ++ D , F A , '''''''''''''''''''''''''''''''''' (+

? +- D , F? ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (+

? +/ D , F2 8 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (-

? +1 D , FA ! 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (-

? +( 0 , F2 : '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (/

? +4 D , F , ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (1

? +6 D , F $ 5. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ((

? -) D , F $ 5. 8 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (6

? -& D , F" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4)

? -* D , F 7 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4&

? -+ D , F7 8 < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4+

? -- D , F '''''''''''''''''''''''''''''''''''''''''''''''''' 4-
? -/ D , F# $ '''''''''''''''''''''''''''''''''''''''''''''''''''' 4/

? -1 D F , 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-)

? -( D F! ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-&

? -4 D F! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-*

? -6 D F5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-*

? /) D F '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-+

? /& 0 F$ # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &--

? /* 0 F " $ # '''''''''''''''''''''''''''''''''''' &-/

? /+ D F? 5 3 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-1

? /- 0 F5 ! 9 ''''''''''''''''''''''''''''''''''''''' &-1

? // 0 F2 ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-(

? /1 0 F 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-4

? /( 0 F . ? '''''''''''''''''''''''''''''''''''''''''''''''''' &-6

? /4 0 F 9 ? = > '''''''''''''''''''''''''''''''''''''''''' &/&

? /6 0 F 9 ? =2 > '''''''''''''''''' &/*

? 1) 0 F ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/+

? 1& D # $ # '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/1

? 1* D # 2 ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/(

? 1+ D # < '''''''''''''''''''''''''''''''''''' &(&

? 1- 0 ! ! 23 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(*

? 1/ D ! ! *23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(/

? 11 D ! ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(1

? 1( D 8 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)&
? 14 D , F$ !" # " '''''''''' *&&

? 16 D , F !" # " ! '''''''''''''' *&*

? () D , F; < " '''''''''''''''''''''''''''''''''''''' *&*

? (& D , F ''''''''''''''''''''''''''''''''''''''''''''''''' *&+

? (* D , F$ # '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&-

? (+ D , F $ % '''''''''''''''''''' *&/

? (- D , F2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&1

? (/ D , F 8 ''''''''''''''''''''''''''''''''''''''''''' *&(
5 &D5 . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&

5 * D !" 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +*

5 +D, F2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 11

5 -0, F2 % '''''''''''''''''''''''''''''''''''''''''''''''''''''''' 14

5 /0, F2 % : ''''''''''''''''''''''''''''''''''''''''''''''''''' ()

5 1D, F2 % . ! '''''''''''''''''''''''''''''''''''''''''''' (*

5 (D, F$ 5 . =$ 5.> '''''''''''''''''''''''''''''''''' (4

5 4D, F $ 5.% '''''''''''''''''''''''''''''''''''''''''''''''''''' (6

5 6D, F7 8 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4&

5 &) D , F7 8 % '''''''''''''''''''''''''''''''''''''''''''''''' 4*

5 && D , F '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4(

5 &* D " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6-

5 &+ D " $ 5.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6/

5 &- D & ' ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)-

5 &/ 0 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)(

5 &1 D 9 : A '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)4

5 &( D RemoteSecureRequestHandler . ''''''''''''''''''''''''''''''''''''''''' &)6

5 &4 D B < '''''''''''''''''''''''''''''''''''''''' &&)

5 &6 D ! < $ '''''''''''''''''''''''''''''''' &&&

5 *) D B < 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&*

5 *& 0 , 8 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&(

5 ** 0 , 8 $ 5 . =$ 5.> ''''''''''''''''''''''''''''''''''''''''' &&4


5 *+ D 5 $ 8 $ ! '''''''''''''''''''''''''''''''''''''''''''''' &*&

5 *- D '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+/

5 */ 0 F5 < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/)

5 *1 D '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(4

5 *( D " $ A ! ? '''''''''''''''' &44

5 *4 D 23 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &6-
&D" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6(

*D9 ? @ 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 66

+D ? @ ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &))

-D ? @ ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &))

/0" $ A '''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)/

1 0 SystemObjectList (() ? !" ''' &&+

(D, 8 2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&(

4D, 8 $ 5 . =$ 5.>'''''''''''''''''''''''''''''''''''''''''' &&4

60 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*+

&) D " ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*-

&& 0 . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*/

&* 0 " '''''''''''''''''''''''''''''''''''''''''''''' &*/

&+ 0 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*/

&- 0 A ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*1

&/ 0 - '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*1

&1 0 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*(

&( D ! 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+)

&4 D ! 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+&

&6 D ! ? 23 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &++

*) D ! ? 9 = > ''''''''''''''''' &+-

*& D C ! ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/6

** D C ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &1&
*+ D C ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &1*

*- 0 $ ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &11

*/ 0 C ! ? 8 5 ''''''''''''''''''''''''''''''''''''''''''' &14

*1 D # ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &()

*( D ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &()

*4 D ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(+

*6 0 * '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(-

+) D # " ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &((

+& D 9 ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &4&

+* D ! 9 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &6)

++ 0 ! ? 9 = > '''''''''''''''''' &6&

+- 0 ! 9 23 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &6+

+/ 0 B < 23 ''''''''''''''''''''''''''''''''''''''''''''''''' &6(

+1 D A B < 23 '''''''''''''''''''''''''''''' &66

+( D " ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)-

+4 D 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)/
*+

&'
!" B '

8 ' 8 '

5 !" * 8 8 <
8 0

'

5 !"
!" ' + '
= > 8 3
< <
' 8 !"
8
'

? !" ' +
8 '
*-

) ) # % ! !"
5
'5
'

5 8 0
< 8 '5
' !" !, '

" '
'
8 8
' 8
3 '

5 8
'"
< '

5 !"

'

5 8 : 8 F H"
8
8 'I
*/

) ) - ( (
!" * 8 <
8
'
'

. !" '5
'

'

A 8 !" *
'
*1

). ) " / %
5 !" *
'5
'

8 8 '

8
: '5 : : 8
8 8
'

" 8
3 <
8 < '
*(

)0)
!"
'" !,
8 &'

!,

'

'

& . = ; >
'
*4

) ) !" &1
!"
< '

"
' 8 8
'5 8
'. %
'

. : 8
!" % =
< >'

'5
8
'" 8 '

8 !"
< '5
8 8 < 8 <'

. < '
*6

)2 ) * +
8 !"
3 '

)2 ) ) &
& '5
8 '5 !,
8 = >
!" '

!,
'

= >
'2 : 8
'

!" !" * %
'$ 'A 8
!, !"
= < >'

8 < '

)2 ) )
2 : '" =
0 0 >'

8 <
= > '
'
0 0 0 ! +
' 0 0

'

2 $ 5. '
+)

)2 ). ) 3 4
3 4 ' & 8
'

" 8 & 8
< ' <
'

, < 8
8 '

)2 )0)
& = > 8 &
: 8
!" '

5 8
= ('&'+ # $ # >
= ('&'- # 2 ? >'

&
!" * '

)2 ) ) ! + (
& '5
'5
' &
= >
8 '

)2 )2 ) ' +
' + !" 8 <
' 8 8
8 8 3
F
+&

. <
5 " "

2 C C

$ 5. C C

5 &D5 .

.5
' + ' ' +
' 8 J& '%
'

)2 )5) !" ' +


" !"
< '
8 < 8
'

!" < 0
' + 8 !" * '5
F

5 $

% '

. <
= > < '

. < A
= > < '

. 2
$ 5 . '

'
+*

8
8 8 8 '

9
'
8 '

8
'

9 $ 8 8

'

'

5 * D !" 5

3 !" * 3
' 8 3
!" * 8 '
++

*' 9 :
!" 8 : F

• , 8 64G 5G *)))G K G 7

• 7 *))/ 7 L *))/ 2 3 2

• ; *)))G ; *))/G .

• ' ? 8 < *')

• " /&*! =&# >


+-
+/

+' ; <
: 8 !" < <
8 < 8 !" '

5 !" 0
0 3 8 %
D ! %4 '

" 8 ! %4
8 8 '
+1

. ) ) !" *
!" * 8 8
!" '
= $ 5. > 8
!, '

!" *
'

8 :
' 8
3
< < ! 1 '

5 !" * " 6 # 7 8
'2
3 ' 8 8
!" * " 6 # 7 '

8 !" * 8
8 '"
3
M
+(

? &D; < F

" !" * # + =? &>' <


! 1 '( =? *>'
+4

? *D; < F$

!"
'

8 ! %4 3 =
> < ! 1 '

" 6 # 7 <
( =? +>'
+6

? +D; < F"

. (( ; =
> ! %4 3 '

8
8 ' 8 8 =?
->

? -D; < F$

8 .E '
! %4
'

? + ! %4 '
-)

< 3 < ! +
< ! 1 '

!" 8 8 ! %4 <
8 !" ' + =? />

? /D; < F

< 9 =? 1> 8
# '

? 1D; < F!

: )!& ; < ) + 4 8 < # : )!&


; < ) < 3' 5 8 !" # "
! %4 '

< ! 1 ! + ( =? (>'
-&

? (D; < F

"
D ! %4 '
8 ! %4 < ! 1
+ + =? 4>

'A '

" 8 8 <
!"
8
= ' ' 8
J. $ %>'
-*

? 4D; < F.

< : < 8
8 8
! 1 =? 6>'

8
'

"=>!" :
'5 : < 3
&4/! '
-+

? 6D; < F

< $ % ! %4 '5 8 < /

8 '

$ ( =? &)> 8
8 8 '5 8
< < F

< F

$ ( =? &)>'
--

? &) D ; < F?
-/

.) ) # % 4 6
, 8 8
! %4 ' 0 8
8 ' 8
'

.) ) ) " / ((
$ (
=? &)> <'
=? 6>
8 0 < F

!
!"

0 < F

! !"

$ 8 !" '
< 8 '
< 8 '

" ! %4 =?
&&>

? && D ; < F
-1

! %4 & ( ((
=? &*>' " 8
'

? &* D ; < F!

C 8 8 ! %4 <
! %4 3'

C <
< & 'C
" (' ? +
'

C 3 ! 23 : 4 :
&1 ( '
-(

? &+ D ; < F$

C <
8 '

C !" "
% < !" " % '

? < @ ? <
' + 3' C
'

? =2 # M >
8 !" " %
'

" 8
< 8 '
-4

.) ) ) # ((
, !" :
& '

5 8
! )# ) (( ! %4 "
'

=? &->

? &- 0 ; < F

8 J + A 8 J + A ! %4
# (( '

!" # (( 8
< '"
!" (( !" # ((

'
-6

? &/ 0 ; < F$ #

" <
!" # (( '. <
'

, 8 8 !" 'C
0 8
8 '" 8 3
'
/)
/&

-' $
A 3 8
< !" * '

" 8 !"
'5 8 8 F

'

$
'

'

" $ 5.
'

8 $ 5.
!" '

C 8 8
'

" 8 8
'
/*

0) ) " 6 # 7
" !" * " 6 # 7
8 '2
3
'

! < '5
8 "
6 # 7 '

A 8 < + +
8 <'

+ + '

5 8 !" * % "
6 # 7 8 8
" 6 # 7 %
'

0) ) ) ?
" 6 # 7 '
C < !" * %
=? &1>'

? &1 0 % 5

C < ( !" * %
8 '

0) ) ) # + :
# + "
6 # 7 ' 8 " 6
# 7 8 '
/+

? &( D , F,

! 1 '( '

0) ). ) '(
? 8 '
8 F

= 8 ( & /
&>

= &1 ( & >

= &1 ( & >

" 6 # 7 < 8 8 <


3 3 '
/-

? &4 D , F$

< ! 1 ((
'

? &600 ,
&6 F"
//

0) )0) ((
A " 6 # 7 8
<
'

(( 8
8 '

? *) D , F#

? 8 6 8
8 !" F

2 $

" C '
5

'

9 : C C 8
3 8
3 8 8
'

8 8
' L
'

9 C 5 '
9 !
'

9 C
8 '5
8
/1

: '

9 C ?
G
'

0) )0) )

? "
? *&'

? *& D , F

C
8 ' % 3
8
'

" +
8 ' 8 '
8
/(

!" % = &'1'1 . >'


!" *'

C 8 8
< < 3
@ + : 4 '

8 8 < !"
* '

! + '. '

0) )0) )

? "
? **'

? ** D , F

2 G$ B + '
&1 ( < = > B
+ '

2 8 ' J% % 8 8 J% %
'

* $
!" '
/4

! + ? " &'

0) )0). )

? " ( ? *+'

? *+ 0 , F

, +
' < % 8 + '

2 8 8
8 8 <'

! + '

0) )0)0) , 4 ((

!"
nhibernate !"
% (() !" # " % # ) '

< !"
'" < 8
!"
'

5
= /'&*'- " >'
/6

0) ) ) ' + 6
" ! 1
+ '$ +
" 6 # 7 '

8 3 !" *
' !"
* 8 =? *->'

? *- D , F

9 8 '
! M ', < 8 8 '

0) )2 )
+
!" #
'

. !"
' !" 8 # ! 4 '
8 # : )!& ; < ) 6 @-
= 8 >'
1)

? */ D , F"

C 8 &1 ( # '
' &1 (
# &1 ( +'

!" " &1 (


8
!" )" ) (( ) 1 ) =
('&)'& " >'

0) )2 ) ) !" # "

C !" # " '5


!" # " < # : )!& ; <
) 6 @- < 3'

!" # "
: )!& ; < ) '

+ &1 ( 1'+ '


1&

5 < E #
'

!" *
< 3 8 '

, 8 <
! 1 ! + ( '

0) )5) ! + (
8 8
'

? *1 D , F

8
1*

C (( ! + D) ) )C (( ! + D0= ' '! %4 ) )


)! %4 >'

C G 8 <
< 3 ! + ( <
? * + + ( '

C G 8 <
< 3
< * + ( ' !" * 8
8 G 8 8
G 8 '

C 8 < " + ( '"


+ ( B ( 8
'? ! + ( +
" ( '

5 8
C (( + D) ) ) 3 '

!" " % 'C


< " '

? *( D , F" G

C ! + (
< ? + + ( '

" ! + (
< ? + + ( '.
8 '

- 7 C (( ! + D ((
+ " 8
= -'&'- " >'
1+

" < ! 1
+ + '

0) )E ) +
5 " 6 # 7 '

=? *4>'

? *4 D , F. !

5 < 0
8 $ 5. 8
'

:
8 6
6 6 & $ + , * '

7 " ( '9
'?
('6 '
1-

5 8 0 '

0) )E ) ) &

5 /

=? *6>'

? *6 D , F

" 8
!" * 8 '

5 8 D& ' : ( '

/ ? &'1'& 2 '
1/

& '
'5 8 F

2 $

5
'

!, . 1F

C
N N

N C .
'

$ N C
N

$ N C
N

N C 2 '

C
'

, ; C ; 8
'

!" " F

$ C 5
% 6 &
$ + % 8 8

= > '
8 J! + A
'

1 9 !, '
11

9 C 9
% 6 & $ + '

C 6 & $ +
8
'

5 +D, F2

: (
' 8 6 & $ + 'C
8 @(
4 '

C & ( ( ' 0
< < &
'& ( ( ' =? +)>
: $ =? +&> =? +*>'

? +) D , F
1(

5 8 F

2 $

? '

'

5 5
'

!, (F

# C

'

$ $ 8
8
'

? < N $ < N

9 : N C
O 8
'

N N"
'

N N"
'

!" F

9 N C 6 &
$ + N

( 9 !,
14

7 # N C 7 6 & $ + '

? 8 N C
N

N C G
3 3 = >N

3 6 & $ + '

C
6 & $ + % '

?
'"
= ' '
>'

C
6 & $ + '
" 8
= ' ' + >'

? C ?
'

P C G P
'

5 -0, F2 %
16

? +& D , F : $

5 8 : $ F

2 $

? '

'

5 5
'

< C G $
< N2 <
'

< '

? < $ < N
()

!" F

9 : N C ! 6 &
$ + '

7 # N C 7 6 & $ + '

? 8 N C
N

N C G
3 3 = >N

3 C 6 & $ + '

C
6 & $ + % '

?
'"
= ' '
>'

9 C G <
8
N

C
6 & $ + '
" 8
= ' ' + >'

? C ?
'

P C P
'

5 /0, F2 % :
(&

? +* D , F.

5 8 F

2 $

? '

'

5 5
'

? C ?
'

C
'
(*

'

!, 4F

, ; C ; 8
'

C '

!" F

3 C 6 & $ + '

C
6 & $ + % '

5 1D, F2 % . !

8 !, < '
3 < + ( ( ( '
: ( ' !, " + ( " # 7 8
=? ++>'

4 9 !,
(+

? ++ D , F A ,

C !, < $ +
$ : ( ' =? +->'

? +- D , F? ?

" % % 8 8
8 < " ( 4 =? +/>'
(-

? +/ D , F2 8

. 8 8 A ! 8 < ,*
( 4 =>'

? +1 D , FA ! 8
(/

C : < &F '


8 : 8
=? +(>'

? +( 0 , F2 :

" !" *
'C ( % %'
4 7 => 8 ',
< '
8 =
> '
(1

? +4 D , F ,

0) )E ) )

5 6

=? +6>'

6 ? $ 5. &'1'* $ 5 . '
((

? +6 D , F $ 5.

" 8
!" * 8 '

" 8 D
G H : ( '

G H
'5 8 F

2 $

5
'

C
8
'

9 & ' 8 '5

': (
= >
(4

'

!"

'

6 * '

C ,
# !" " N
N 8 8
6 6 '

5 (D, F$ 5 . =$ 5.>
5.>

: (
' : ( 8
'
5 8 F

2 $

9 C
8 '

9 C G
?
( ( '
'

( ( ''

7 # C 7 6 6 '

5 5
'

C
6 6 % '
(6

3 C 6 6 '

C
6 6 '
" 8
= ' ' + >'

? C ?
'

5 4D, 5.%%
F $ 5.

" $ 5.% % 8 8
$ 5. 8 < " ( 4 =>'

? -) D , F $ 55.
. 8

? + : ( +

!" *
% 'A 8 8
= > '
4)

C '" :
8 6 &
+ '

C < ? +
( ( ' '

: (

3 8
'C 8 3
8
= ' ' 8
% ! %4 3 >'

C < ( ( ' 8
( ( ' =? -&>

? -& D , F"

5 : ( ' + " ( ? ( ( '


'
? : ( ' '

. ? ( ( '
D
8 '

0) )E ). ) 3 4

7 8 ' <
'5 8 <
8 G '
4&

? -* D , F 7 8

5 8 8 D3 4 : (
'

3 4 8 8 F

2 $

C 5 8
8 '

9 C 9 8
% 6 & + '

C 6 & +
8 8 '

5 6D, F7 8
4*

: ( 8
8 F

2 $

? '

'

5 5
'

$ C $ 8 8
=8 8
>'

3 C 6 & $ + '

C
6 & + % '

? '"

= ' ' >'

? 8 C
N

9 C 6 &
+ N

: C ! 6 & + '

7 # C 7 6 & + '

C
6 & $ + '
" 8
= ' ' + >'

? C ? '

5 &) D , F7 8 %
4+

0) )E )0) 3 4 : + ' I '

7 8 < 'A 8 8
8 8 8 8 < = :
>'

'C 8
< 8 ( + ' 8 ' 4 => < -
+ 'C <
'

? -+ D , F7 8 <

0) )E ) ) ? + 3 4

8 '5
8 8 8 <
'
4-

C 8 < ? +
' 8 0
< 8
+ + ' 8 <
8 8 3
!" * '

0) )E )2 )

C 'A 8
3 'C
8 8 => < '

? -- D , F

0) ) ) "
5 'A 8
8 '

" < $ %
'
4/

0) ) 6 :
#
' ? 8 < '7 :
'

$ 8
= ' '
>' ? -/ 8 !"
: & J8 !" * &
!" ' + '

? -/ D , F# $

5 <
'
41

8 0 ) " )
!" * J '
'
4(

0). )

0). ) ) 4
# '
)))>C ( ( ! + D > >C ( ( ! + D = ' '
J)))>! % 4 > >" >! %4 %>'

8 8 8
F

<ApplicationName>. 5 '
Server.Data
8 '

<ApplicationName>. 5 '5
Server.Services
8 8
'

<ApplicationName>. 5 8 8
Server.WindowsService
'

<ApplicationName>. 5
Client.Controls
'
'

<ApplicationName>. '
Client.StartApplication
5 && D , F

? 8
/'&
'

!"
8 '"

&) (( ! + (( + !"
* % " 0 -'&'- "
44

!" " !" *


!" )" )" '

$ 8 8
1 '

0). ) ) * ?

$5 Q5
' : ( ' : ( ( :
!" ) ) + + ' (( ! %4 )" )
(( '

8 3 % (()
!" ) ) + + ' (( '

!" E '7
E 'C
( % ' + ) + ) +
F

<channel ref="http" port="8100">

C !" " !"


%
'

8 J + % 8 J + %8
'
!" *
8 8 '
46

0)0)
C !" , 8 '
',
!" , 8 N 'C
, 8 8 8 %
'

C 8 )))>C (( ! + D> >C (( ! + D>


!" ) )# 4 (> '

< ' 3 !" 8 , 8


'
6)

/'
!" !" % 0
' 8
< '

8
8 '

5 8
< 8
6 6 6 & $ + '

8 !" "
< < '
6&

) ) * " (
5 3 !" ' !"
8 F

'

' &&

' 8 8
' !" < 8 D& 3 4
" '5 8 8 ' '
5 !" ) ) 8
= &'1'( 5 >' 5
C (( ! + D) ) 8
!" * 'C 8
8 8 8 '

' 8 '"
8 8 ' '5
!" ) ) 8 !" % '
<
'5
C (( ! + D) ) 8 !"
* '
'

' '
8 !" " '

&& 8 ? @
6*

) )
5 8
!" J '5
& 3 4 = >' $
!" * '

$ ' %
8 !" " !" " 8
'

) ) ) &
& '?
!, '5
8 !" '

? 8
'"
Serializable '"
% 8 D
Serializable '

3 8
GenericBaseEntity '5 :
!, % <
'! !" :
GenericBaseEntity '

2 % : '
8
8 8
Equals true 8
' Equals GenericBaseEntity
8 : ' :
:
'

" !"
' 8
'
6+

5 8 F

" &* " $

AssigningId
'

CompositeIdComponent(string
fieldName)
E '"

'

CustomFormat(string value) " R


'

Default(string value)
'5

8 '

FieldLength(int value)
'"
'

FilterableField

'

Format(CoreEnums.FormatType " ?
value)
# '
#

? '

LogicalDeletion(string
propertyName, object
'
deletedValue)

&* " 8 8 Attribute 3 = ' ' ReadOnlyObject


: ReadOnlyObjectAttribute>
6-

ManyToOneProperty(string $
propertyName)
< '

PrimaryKeyType(Type value) $ <

8 GenericBaseEntity
' CompositeTwoKey

8 <
8 '

ReadOnlyObject 0
#

Sort(int sortIndex)
'

UseMemoField !
3 3'

Visible
'

5 &* D "

" 6 & $ +
8 6 6 '

) ) ) 3 4
3 4 < ' 8
8 '9 5 &*
8 '

) ). ) G H
5 = >
8 < = " , " >' .
8 '

'5
< '
6/

?
'
!, % , :
8 % '

8
" , " : < '

" 6
6 = ('&'+ # $ # > 8
% '

5 8 $ 5.F

" &+ " $

CustomFormat(string value) " R


'

Format(CoreEnums.FormatType " ?
value)
# '
#

? '

RootEntityType(Type value) '

Sort(int sortIndex)
'

Visible(bool value)
'

RootPropertyName(string value)
%
'

5 &+ D " $ 5.

&+ " 8 8 Attribute 3 = ' ' ReadOnlyObject


: ReadOnlyObjectAttribute>
61

) ). ) ) , *

" !" ,
'

9 : 8 , *
, 8 F

8 8
'

2 R 3 <
' 8 8
8 8 8 8
'

2 R RootPropertyName
8
'

" R !" * : '


6(

). )
3 !" %
< ' 8
< '2
' '

8 8 8 8
< '
'

8 8
C (( ! + D) ) = ' '! %4 ) ) > '
9 /'&& 8
8 '

< 3 3 8
= 8 >F

public class DoSomethingWithAnEntityService : ALockableSecure, ISecure,


ILocking, ILockReleasing
{
private GenericBaseEntity _Entity;
private Object _Result;

public DoSomethingWithAnEntityService(GenericBaseEntity entity)


{
_Entity = entity;
AddDeletePermissionToCheck(entity.GetType());
AddLockData(entity.GetType(), entity.Id);
}

public override void Process()


{
_Result = SomeDao.GetInstance().DoSomethingWithAnEntity(_Entity);
}

public Object ReturnData


{
get { return _Result; }
}
}

&D"

5 3
ALockableSecure
D ' ALockableSecure
8 F
64

. <

3 ALockableSecure 3 ASecure
8
' ALockableSecure 3 ASecure
< '

3 8 '
3 ISecure ILocking ILockReleasing '

C
ALockableSecure ASecure '
3 3
: @ = ' '
RemoteSecureRequestHandler -> < <
< <
'

3 8 '!
AddDeletePermissionToCheck 8
< 8 : 8 AddLockData
8 < < < '5
< 8 : @
'

? < 8
< /'1'-
B < '

SomeDao14
G '

&- $ $ " .
G 8 < '
66

)0) $ K
? @
' 8
'

, & ( (( !" *
@ '5 @
C (( ! + D) ) )
C (( ! + D$ = ' '! %4 ) ) )! % 4 $ >'

8 8
8 '

? @ C (( ! + D$ = ' '
! %4 $ > 8 '
!" % (() 8
system.runtime.remoting F

<service>
<wellknown mode="Singleton" type="<ApplicationName>.Server.Services.
<ApplicationName>Facade, <ApplicationName>.Server.Services"
objectUri="<ApplicationName>Facade" />
</service>

*D9 ? @ 9

C (( ! + D$
3 % *' ? '"
8 &/'

)0) ) % $
" @ '
8 8 8
8 ' '

&/ ! D < 7
'" !" % =$ 5. 8 >
'
&))

A 3 F

public long SomeMethod(string parameter)


{
return Northwind.Server.Services.SomeFolder.SomeMethod(parameter);
}
+D ? @ !

< '
8
'" < 8
8 ' 8 8
'

. 8
'

)0) ) $ %
C = /'+
8 > 'C
Q '?
!" R /'1 B < '

A 3 F

public Object DoSomethingWithAnEntity(object sessionId, GenericBaseEntity entity)


{
IRemoteHandler handler = new RemoteSecureRequestHandler(sessionId);
DoSomethingWithAnEntityService service = new
DoSomethingWithAnEntityService(entity);

handler.ProcessRequest(service);

return service.ReturnData;
}
-D ? @ !

sessionId = >
8 '

ProcessRequest '
&)&

)0). ) , % $
" 3 8
RemoteSecureRequestHandlerR ProcessRequest
'

3
RemoteSecureRequestHandler < 3
0 8 '
&)*

) )
8 $ 5.
/'* $ . '5
'

) ) ) %
. & ' 8
'& '
' '

EntityDao.GetInstance().SaveOrUpdate(someEntity);

5 & ' 8 &1'

! $

Void SaveOrUpdate(object entity) = :


> = :
> '

Void Save(object entity)


: '

IGenericBaseEntity
Save(IGenericBaseEntity entity)
=8
: >

void Update(IGenericBaseEntity
entity)
: '

IList LoadEntityList(Type 9
persistentClass, bool
=
clearSession)
> '

&1 2 8 '
&)+

'

IList LoadEntityList(Type 9
persistentClass, int
= >
recordsNumber)

recordsNumber'

Object Load(Type persistentClass, 9


object id)
'

Object 9
LoadDefaultCatalogEntity(Type
'"
persistentClass)
J %
-
true'

IList LoadEntityList(Type 9
persistentClass)
= >
'

IList 9
LoadEntityListWithCriteria(Type
= >
persistentClass, SimpleExpression
criteria)
'

IList 9
LoadEntityListWithCriteria(Type
=
persistentClass, IList criteria)
>

criteria '

void Delete(IGenericBaseEntity $
entity)
= >
'

void DeleteById(Type $
persistentClass, object entityId)
= >

:
'

IList 9 =
LoadDataTransferObjectsList(Type
dtoClass, int)
>
&)-

maxRecords '

FilterSearchResult 9 $ 5.
LoadDataTransferObjectsResult(Type
3 '
dtoClass, SearchContext
searchContext)

FilterSearchResult 9 $ 5.
LoadDataTransferObjectsResult(Type
3
dtoClass, SearchContext
searchContext,
int maxRecords) maxRecords '

FilterSearchResult 9 $ 5.
LoadDataTransferObjectsResult(Type
dtoClass, AdvancedSearchContext
searchContext) 3 '

FilterSearchResult 9 $ 5.
LoadDataTransferObjectsResult(Type
dtoClass, AdvancedSearchContext
searchContext, int maxRecords) 3
maxRecords '

void SaveOrUpdateEntities(IList = :
entityList)
> = :
>
'

5 &- D & ' !

LoadDataTransferObjectsList , *
, '? , *
' :
8 = /'*'+'& A ; >'

C 8 5 &- 8 !"
= /'+ >' 8 !" %
!" <
'

) ) ) ) % % !,

5 &- !" ' + '


5 8 8 D
8 '
&)/

5 !, , '
, '

23 !, R
,
<' 9 !, '

5 !" !,
'A 3
&(F

public void SessionAndHQLExample()


{
// Session is set up by suitable request handler
ISession session = RequestContext.GetInstance().CurrentSession;

// Accessing data through HQL


IQuery query = session.CreateQuery("from SystemObjectsEntity so where
so.Name = :name");
query.SetString("name", typeof(SystemUsersEntity).FullName);
IList entityList1 = query.List();

// Acessing data through session method


ICriteria criteria = session.CreateCriteria(typeof(SystemObjectsEntity));
criteria.Add(Expression.Eq("Name", typeof(SystemUsersEntity).FullName));
IList entityList2 = criteria.List();
}
/0" $ A

5 8 3 / 3 ' ,
% CreateQuery % CreateCriteria
'

:
'

) ) ) ? + '
! & ' !"
!" ) ) '? 8
('('& 23 $ " ! '

&( 9 /'&+ , 3 '


&)1

)2 ) ' L 8
. !"
< '

)2 ) ) '( 8
8 8
< 8 < < 8 <
8 !" '

5 8 < D ',
<
&4' 3 8
< '"
8 3 8
< '

, <
8
'. 8
'5 8
'

5 <
< 8
< '

)2 ) ) 8 +
5 < !"
LockTimeoutMinutes '

< 8 <
'" 8

'

&4 . '
&)(

< < '

)2 ). ) : +
!"
D 4 + + 8 F

9 '

, 3 '

'

8 '5
8
4 < 8

< '

23 3 '

7 <
'

2 <
'

5 &/ 0

8 '
8 '

,
8 '

5 8 'C
InheritsCreate !" true

4 '
&)4

)2 )0) -+ ( + ' L 8
< !"
!" = /'+ >'

8 RemoteRequestHandler
RemoteSecureRequestHandler = - &))
3 >' 5 8 3 F

RemoteRequestHandler <

<

RemoteSecureRequestHandler <

<

5 &1 D 9 : A

, RemoteSecureRequestHandler 8
: ProcesRequest F

5 '

&6 ISecure
< '

ILocking
< '

IWriteLockChecking
< < 8

&6 " 8
8 ' ' public void SomeService :
ALockableSecure, ISecure, ILocking = SomeService
>'
&)6

IDeleteLockChecking
< <

Process '

ILockReleasing <
'

5 &( D RemoteSecureRequestHandler .

C
ALockableSecure ASecure
AExecutableSecure '5 8 ALockableSecure ASecure
ASecure : ILocking
ILockReleasing 8 < : F

ASecure 8 <
:

ISecure

ALocableSecure 8 <
< :

23 ASecure ISecure

ILocking

IWriteLockChecking

IDeleteLockChecking

ILockReleasing

AExecutableSecure 8 <
:

23 ASecure ISecure

" 3
< '

IServiceProcessor 8
< '
&&)

< '

5 &4 D B <

.< 8 < 8 8 8 8 < <


'" 8
8 *) <
'

C = Process
D 5 &(> 8
ASecure ALocableSecure F

! $ $

void ASecure
AddReadPermissionToCh
*&
eck(Type type)

< '

void ASecure
AddWritePermissionToC
heck(Type type) 8

< '

void ASecure
AddCreatePermissionTo
Check(Type type)

< '

void ASecure
AddDeletePermissionTo
Check(Type type)

< '

*) 5 J' + % 4 '

*& % Process
&&&

void AddLockData(Type AlockableSecure %


type, object
idObjectInstance)
ILocking

:
<

ILockReleasing
<

IWriteLockChecking

: <

void AExecutableSecu
AddExecutePermissionT re
oCheck(IExecutableObj 3
ect executableObject)

< '

Q$

8
AExecutableSecure
'

5 &6 D ! < $

RemoteSecureRequestHandler <
< ' :
&&*

< 3 8 '
RemoteSecureRequestHandler 8 8 3 F

23 $

ReadPermissionException 5 8 8

8
: '

WritePermissionException 5 8 8
8

8 8
: '

CreatePermissionException 5 8 8

8
: '

DeletePermissionException 5 8 8

8
: '

SystemObjectLockedException 5 8 8 8
<

< '

ObjectLockClameOvertakenException 5 8 8 8
<

< = ' '

<
3 >'

5 *) D B < 23
&&+

" 3 !" " 8


'$ 8

= 5 &(>'

)2 ) ) ? ' +
<
'
!" = >'

" IGenericBaseEntity IExecutableObject


8 SystemObjectList
!" % (() '

A 3 (() % SystemObjectList F

<SystemObjectList>
<add key="NConstruct.Server.Data" value=""/>
<add key="NConstruct.Server.Services" value=""/>
<add key="TestModule.Server.Data" value=""/>
<add key="TestModule.Server.Services" value=""/>
</SystemObjectList>

1 0 SystemObjectList (() ? !"

)2 )2 ) - '
" 8 !" *
8 '? 8 J + %
8 J + A 8 8 8
8 8 8 8 '

- ( 8
8 '

,
8 8 J + %
'
&&-

)5) - '
5
:
= /'+ >'

: = ' '
RemoteSecureRequestHandler> : <
3 =
/'-'+ " $ A ! ? >'

3 : 8
< 3 <'
&&/

)E ) /6
!" * = 4
>
8 !" '

& 4
6 & $ + '" 0 8 8
C (( ! + D) ) )
C! + ( ! + D )& '! % + '

6
6 '#
'" 0
C (( ! + D) ) )C ! + ( ! + D)

% '5
, , =
/'*'+'& A ; >' . 6
6 6 & $ + '

< 0
'
&&1

) ) # 9 4
8 8
!" '

) ) ) & 3 4
& 4 8 '?
8 !,
'2 8 !" *
% 8 '

5 3 % < < F

using System;
using NConstruct.NET.Common.Attributes;
using NConstruct.Server.Data.Core.Entity;
using NConstruct.Server.Data.Security.Entity;

[Serializable, DefaultAttribute(SystemUsersEntity.UsernameProperty)]
public class PersonEntity : GenericBaseEntity, IComparable
{
public const string FirstNameProperty = "FirstName";
public const string LastNameProperty = "LastName";

private string _FirstName;


private string _LastName;

[Visible,
ReadOnlyObject,
FieldLength(200),
FilterableField]
public string FirstName
{
get { return _FirstName; }
set { _FirstName = value; }
}

[Visible,
ReadOnlyObject,
FieldLength(200),
FilterableField]
public string LastName
{
get { return _LastName; }
set { _LastName = value; }
}

public int CompareTo(object obj)


{
if (obj is PersonEntity)
{
&&(

PersonEntity otherPerson = (PersonEntity)obj;


return (FirstName + LastName).CompareTo(otherPerson.FirstName +
otherPerson.LastName);
}
return 0;
}
}
(D, 8 2

C 8 8 8 8 8 F

"

23 GenericBaseEntity

IComparable

" '

5 *& 0 , 8 2

? /'*'& 2 '

) ) ) G H
5 3 8 8 8 % < <
F

using System;
using NConstruct.NET.Common.Attributes;
using NConstruct.Server.Data.Core.DTO;

[Serializable, RootEntityType(typeof(PersonEntity))]
public class PersonDTO : GenericBaseDTO
{
private string _FirstName;
private string _LastName;

public PersonDTO(
object id,
string firstName,
string lastName,
bool isSuperuser)
{
base.Id = id;
_FirstName = firstName;
_LastName = lastName;
}
&&4

[RootPropertyName(PersonEntity.FirstNameProperty),
VisibleAttribute]
public string FirstName
{
get { return _FirstName; }
set { _FirstName = value; }
}

[RootPropertyName(PersonEntity.FirstNameProperty),
VisibleAttribute]
public string LastName
{
get { return _LastName; }
set { _LastName = value; }
}
}

4D, 8 $ 5 . =$ 5.>

C 8 8 8 8 F

"

23 GenericBaseDTO

8 = ' ' , *
/'*'+'& A ; >

" '

5 ** 0 , 8 $ 5 . =$ 5.>

! <
' '

? /'*'+ $
5 . =$ 5. >'
&&6

) )
!" 3 )1
8 !" ' %
(() log4net '

!" (()
8 8
= ' ' '" >F

private static readonly ILog _Log =


LogManager.GetLogger(typeof(MyClass));

C 8 8 F

_Log.Error("My message");
_Log.Info("My message");

!" " 0 0
8 '
&*)

) )* :
, 8 8 8 : 8
!" % '
8 8 !" '

) ) ) '
C 8 '
'

5
= > :
8 8 '

) ) ) @ !" *
!" * '
" + = -'&'4 .
! > !" * 8 0
= 4 >'

!" *
!" '

) ). ) *
'.
8
'"
'

. '
8 !" !,
' !, '

, 8 8
= !,
>'
&*&

) )0)
!" = /'+
>' 8 8
'" < 8
'

) ) ) L $ K
" 8 '" 8
@ = /'- ? @ >'

) )2 )
2 =
8 >
'

8 :
8 F

$ = 8
>

, :

5 *+ D 5 $ 8 $ !

!" 8
8 8 '
/'6 , C .8 $ .
!" < , * 6
6 & $ + '

. 8 8
'
&**

8 %
8 '
&*+

) )" !"
, !" *
!" % (() '

5 3 '

) ) ) "
? (() 8
' 8
F !, 0

'"
(()
3 '

<configSections>
<section
name="nhibernate"
type="System.Configuration.NameValueSectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
<section
name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
<section
name="SystemObjectList"
type="System.Configuration.DictionarySectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
<section
name="ApplicationSettingClasses"
type="System.Configuration.DictionarySectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
<section
name="UserSettingClasses"
type="System.Configuration.DictionarySectionHandler, System,
Version=1.0.5000.0,Culture=neutral, PublicKeyToken=b77a5c561934e089"
/>
</configSections>

60
&*-

) ) ) ((
(( (() '
' 8 8
: '

<appSettings>

<!--needed for encryption NcSqlMembershipProvider-->


<add key="MachineValidationKey" value="..." />
<add key="MachineDecryptionKey" value="..." />
<add key="MachineValidationMode" value="SHA1" />
<!--needed for encryption & decryption -->
<add key="PrivateKeyFile" value="" />
<add key="SessionKeyFile" value="" />
<!--needed for recryption -->
<add key="OldPrivateKeyFile" value="Security\PrivateKey.xml" />

<add key="RunMultiClientSimulation" value="False" />

<!-- User application and configured property settings go here.-->


<add key="UserDefinedModule" value="Northwind.Server.Data" />
<add key="NewsWebModule" value="" />
<add key="SimulationThreadWorkerThreadInterval" value="1000" />

<!--Real impl of abstract AXServerFactory-->


<add
key="DefaultApplicationProjectFactory"
value="Northwind.Server.Services.NorthwindServerFactory,
Northwind.Server.Services" />
<add
key="DaoFactory"
value="NConstruct.Server.Services.SystemRemote.Dao.DaoFactory,
NConstruct.Server.Services" />
<add
key="RequestContextFactory"
value="NConstruct.Server.Services.SystemRemote.RequestContextFactory,
NConstruct.Server.Services" />

</appSettings>

&) D "

) ). ) ' + "
8
0 =
/'1'/ 9 . >'

<SystemObjectList>
<add key="NConstruct.Server.Data" value=""/>
<add key="NConstruct.Server.Services" value=""/>
<add key="Northwind.Server.Data" value=""/>
&*/

<add key="Northwind.Server.Services" value=""/>


</SystemObjectList>

&& 0 .

) )0) (( "
" '"

'

<ApplicationSettingClasses>
<add
key="NConstruct.Server.Data.Settings.ApplicationSettings,
NConstruct.Server.Data"
value=""
/>
</ApplicationSettingClasses>

&* 0 "

) ) ) @ "
'"
'

<UserSettingClasses>
<add
key="NConstruct.Server.Data.Settings.UserSettings, NConstruct.Server.Data"
value=""
/>
</UserSettingClasses>

&+ 0

) )2 ) !, "
5 !, '
" !" * '

nhibernate>
<add
key="hibernate.show_sql"
value="true"
/>
<add
key="hibernate.connection.provider"
&*1

value="NHibernate.Connection.DriverConnectionProvider"
/>
<add
key="hibernate.dialect"
value="NHibernate.Dialect.MsSql2000Dialect"
/>
<add
key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver"
/>
<add
key="hibernate.connection.connection_string"
value="Server=B;initial catalog=Northwind;Integrated Security=SSPI;Min Pool
Size=10"
/>
<add key="hibernate.cache.provider_class"
value="NHibernate.Cache.HashtableCacheProvider"
/>
<add
key="hibernate.use_outer_join"
value="true"
/>
</nhibernate>

&- 0 A

9 !, 3
'

) )5) 0 "
0 '
8 )1 8 8
'$ '

<log4net debug="true">

<appender name="A1" type="log4net.Appender.ConsoleAppender,log4net" >


<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="[%X{CLIENT_SESSION_ID}] %d [%t] %-
5p - %m%n" />
</layout>
</appender>

<root>
<level value="INFO" />
<appender-ref ref="A1" />
</root>

</log4net>

&/ 0 -

9 0 '
&*(

) )E ) ? + "
5 8
'

<system.runtime.remoting>
<customErrors mode="Off"/>
<application>
<service>
<wellknown
mode="Singleton"
type="NConstruct.Server.Services.SecurityFacade,
NConstruct.Server.Services"
objectUri="SecurityFacade" />
</service>
<service>
<wellknown
mode="Singleton"
type="NConstruct.Server.Services.CoreFacade, NConstruct.Server.Services"
objectUri="CoreFacade" />
</service>
<service>
<wellknown
mode="Singleton"
type="Northwind.Server.Services.NorthwindFacade,
Northwind.Server.Services"
objectUri="NorthwindFacade" />
</service>

<channels>
<channel ref="http" port="8100">
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full" />
</serverProviders>
</channel>
</channels>
</application>
</system.runtime.remoting>

&1 0 9

9 ' 58
!" % F '$ " $ '

5 !" * '

C (( ! + D) )? + $ )C ( ( ! + D$ = ' '
! %4 ) )? + $ )! %4 $ >' 5 8
8 @ = /'- ? @
>'

58 '? 8
8 ' !" E 'C
&*4

!" '
!"
'A 8 !"
!" " = ('&) >

5 8 'C
8 8 8
'
&*6

) . )# (( @(
8 !" %
< ' 8
'

? 8 8 8 8 ' 8
'5 <
8 , 3
!" = /'/'& " $
>'

) .) ) # ' *
" !" )&1 + ( ) !"
< !" ! 4
: M '

" < ! 4
$ ' 8 =$ $ " . **>'

" ' + ( ) <


" M ' 8 F

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Server.Data.Core.Entity;
using NConstruct.Server.Services.SystemRemote.SessionContext;
using log4net;
using NHibernate;
using System.Collections;
using NConstruct.NET.Common.Core.Reflection;

namespace NConstruct.Example.Services.Dao
{
public class MySampleDao
{
private static readonly ILog _Log =
LogManager.GetLogger(typeof(MySampleDao));
private static MySampleDao _Instance;

** C *
% 8 '
&+)

private MySampleDao()
{
}

public static MySampleDao GetInstance()


{
if (_Instance == null)
{
_Instance = new MySampleDao();
}
return _Instance;
}

public bool IsSystemObject(Type type)


{
_Log.Info("Executing IsSystemObject method...");

// Session is set up by suitable request handler


ISession session = RequestContext.GetInstance().CurrentSession;

IList resultList = new ArrayList();


StringBuilder builder = new StringBuilder();

// Prepare a hql statment


builder.Append("from SystemObjectsEntity so")
.Append(" where so.Name = :name");

// Create NHibernate query from hql statment


IQuery query = session.CreateQuery(builder.ToString());

// Set :name parameter in query


query.SetString(
"name",
ReflectionManager.GetInstance().
CreateClassPlusAssemblyName (type));

// Run query
resultList = query.List();

// If entity is registered then hql returned it


if (resultList.Count == 1) return true;
else return false;
}
}
}
&( D ! 23

C 8 8 <
? ? M * 4 =
>F 0 ) !, ) '

" !" ) )" + + O !" ) ) J


!" ) ) !" )!& )" + + :
= !" * & < >'
&+&

? 3 8 < CurrentSession
RequestContext 'C
!" IsSystemObject '

) .) ) "
8 3 : 8
!" '$ 8
/'+ '

? <
! 4 $ '5 ' + ( )
< " M ' 8
F

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Server.Data.Security.Entity;
using NConstruct.Example.Services.Dao;
using NConstruct.Server.Data.Security.Permissions;

namespace NConstruct.Example.Services.Services
{
public class MySampleService : ALockableSecure, ISecure, ILocking,
ILockReleasing
{
private Type _Type;
private bool _IsSystemObject = false;

public MySampleService(Type type, object currentUserId)


{
_Type = type;
AddReadPermissionToCheck(typeof(SystemObjectsEntity));
AddLockData(typeof(SystemUsersEntity), currentUserId);
}

public override void Process()


{
_IsSystemObject = MySampleDao.GetInstance().IsSystemObject(_Type);
}

public object IsSystemObject


{
get { return _IsSystemObject; }
}
}
}
&4 D ! 23

3 ALockableSecure 8 <
< '
&+*

3 ISecure
AddReadPermissionToCheck ASecure 8
MySampleService 3 ALockableSecure
< 8 :
3 @ '9
SystemObjectsEntity < 3 '

3 ILocking
AddLockData ALockableSecure
3 <
% Process '" %
3 Process 8 8 SystemObjectLockedException'
, 8 N, < '

3 ILockReleasing
AddLockData ALockableSecure
% < % Process
3 ' 3
Process =
ReadPermissionException SystemObjectLockedException> <
'C 3 <
= ('('& 23 $ " !
0 ReleaseLock >'

ISecure ILocking ILockReleasing


:
ALockableSecure ASecure '

) . ). ) " $ K
" Process
: '9 : 8

< : ' <


!, % '

8 :
8 8
8 3
8 = >' @
@ '
&++

5 <
!" )&1 + ( )? + $ !"
< !" ! 4 : M '

" ' + ( $ ) !" )&1 + ( )? + $


< " M ' 8
F

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Example.Services.Services;
using NConstruct.Server.Services.SystemRemote;
using NConstruct.Server.Data.Core.Request;

namespace NConstruct.Example.RemoteFacade
{
public class MySampleFacade : MarshalByRefObject
{
public bool IsSystemObject(object sessionId, Type type, object
currentUserId)
{
IRemoteHandler handler = new RemoteSecureRequestHandler(sessionId);
MySampleService service = new MySampleService(type, currentUserId);

handler.ProcessRequest(service);

return (bool)service.IsSystemObject;
}
}
}
&6 D ! ? 23

C 8 8 <
? ? M : = 8
!" * & >F !" ) )
!" ) ) !" )&1 + ( ) '

" < !"


'

) . )0) " ? +
5 < !"
MySampleFacade ' MySampleFacade
8 F

3 MarshalByRefObject '

" '
&+-

" '

3 = >
MySampleFacade (()
!" ) ) + + ' (( '5 8
<application> <system.runtime.remoting>
(() F

<service>
<wellknown
mode="Singleton"
type="NConstruct.Example.RemoteFacade.MySampleFacade,
NConstruct.Example.RemoteFacade" objectUri="MySampleFacade" />
</service>

*) D ! ? 9 = >

Q !" ) )
+ + ' ((
!" )&1 + ( )? + $ !" )&1 + ( )
< ? ? M : '

5 'C 8
!" <
!" " '

A 8 8 8 8
!" % ' < < ('('*
.8 ! !" '
&+/

) 0) !
!" 8 F

Bamboo.Prevalence.dll

Castle.DynamicProxy.dll

HashCodeProvider.dll

Iesi.Collections.dll

log4net.dll

MemberRole.dll

NHibernate.dll

Nullables.dll

Nullables.NHibernate.dll

nmock.dll

nunit.framework.dll

Telligent.CommunityServer.EncryptionModule.dll

Telligent.CommunityServer.SecurityModules.dll

5 *- D

5 8
!" '
&+1

) )? !"
C 8 !" # 4 '7 &'(
!" # 4 '
!" * A '
C (( ! + D) )# 4 = ' '! %4 ) )
# 4 >'

!" =
8 >'
&+(

) 2) ( ' !"
!" &'(
' !" ) )# 4 (
'"
() 1 =8 !" ) )
# 4 ( )+ >'
&+4
&+6

1' ; < 5
5 !" " '
!" " % 8 D 8
8 !" * '

5 8 !" " '


5 ( $ '
&-)

2 ) ) !" " *
!" 8 D
( &1 ( 2 ). '
8 ( &1 (
!" '" ( &1 ( 2 ).
!" '

5 8 3 '2
( &1 ( 8 (
&1 ( '

2) ) ) -
5 8 !" " ' <
!"
'

5 D# 4
'

, 8 8 8
, 8 8 8 8
8 '9 1'+'+
'

? -1 D F , 8
&-&

" !" 0 8
'A J + % 8 J + %' C
'" 8
8 J + % '

2) ) ) # 4
" !" " '

? -( D F! ?

! 8 <
' F

" G2 G$

"
&-*

! <

"

7 8 3

? -4 D F!

5 8 < 8

3
&1 '

? -6 D F5

< '5 8
' ' + = 1'+ " >
< 8 = ' '! %4 > <
= 1'* , < 8 $ >'

, < < 8 <


', <
'2 : 8 8
< '. 8 8
< < '
&-+

? /) D F
&--

2) ) # 8 4 %

2) ) ) 6
*+

' =? /&> '

? /& 0 F$ #

$ <
'? 8 < '

$ 8 '

*+ " 3 0 # * 4 8
!" " '
&-/

'$
8 " $ '

5
=? -6>' C
8 = 1'*'* # 2 ? >' "
(' 8 = > 3
8 'C
'

? %
'5 0

'C 8 8
'

C 0? 8
8 '

? /* 0 F " $ #

3 '
.
3 '

2) ) ) ) $ 1

$ 1 8 < =? /+>
'2 8 $ 1 8
'
&-1

? /+ D F? 5 3

5
= >
% 8 < '
< 8 < 8
'5 !"
', 3
!" " :
8 '

? /- 0 F5 ! 9

$ 1 8 '6 %
8 $ %
'
&-(

C < =S> 8
: '

2) ) ) 6 & $ +
5 6 & $ +
'

? // 0 F2 ?

" & $ + %
8 "
'

" 8 'C
: : 4 '

" " " +


" 8 & $ + '
&-4

< : 4 =? /1>'

? /1 0 F 8

9 6 & $ + '5
8 6 & $ +
'C 8
= 1 !" * > < ?
' '

" < ',


< = 1'+'&'& 5
< >'
&-6

2 ). ) ' + +
!" '
8 <
'

'$ J + %= 1'&'& > !"


% 0 '

2 ). ) ) ' +
5 !"
= > ' + '
'
4 '

C ' + ' +
' ' +
*-'

, ' + 8
< '

? /( 0 F . ?

*- !" % '
&/)

2 ). ) ) ) '( 8

5 <
8 '

5 $
<

< '

.
8 8
'.

'

. '
.
8 '

A 8 <
*/' 3

' 8
3
'

5 */ 0 F5 <

2 ). ) ) ' + ?
8
8 '

C ' + ? ' +
' ' + ?
'

*/ < 8 '
&/&

C ' + 8
=8 :
> '

? /4 0 F 9 ? = >

" : 8 <
< @ $ + '.
< ? + <'

" 'C < <


< 3 : + F

& ( + ? # "
'

( + &1
'

( + & 3
'
&/*

# + ( + & 3
< 8 '

? /6 0 F 9 ? =2 >

2 ). ). ) ' + @
' + @ ' +
' ' + @
'

C ' + @ 8
% 8 '
&/+

? 1) 0 F ?

5 ' + @ 8 '(
8 < '9 " 3 " D2
'
&/-

(' $
!" "
' %
'

8
8 3 &1 '

!" " '


+ 8 + '
!"
8 < ' D
8 '

!" "
8 8 '

5 !" " % 8
8 8 8 '
&//

5) ) * " (

5) ) ) $ +
5 8 8 8 D
( &1 ( 'C 8 8
DefaultClientApplicationProjectFactory
!" )" ) (( % (() '
8 ( &1 (
!" * = -'&'1 "
! >' ( &1 (
( &1 ( 2 ). '

!"
8 8 '

5) ) )
'
! + ( !" * =
-'&'( $ > '9 ('*
! % 8 8 8
8 '

5 8 ' 8
!" " % 8 < '5
: '9 ('-'* , ! '

5) ). ) 6 6
!" 6 6 ' !" "

6 6 '

6 6
= /'*'+ $ 5 . =$ 5. > /'*'&
2 > = ('6 >'
&/1

6 6 <
3 &1
'

C 8 ' ('-
'

? 1& D # $ #

5) )0) 6 & $ +
" 8 !" 6 & $ + '
'

6 & $ +
= /'*'& 2 >
= ('6 >'
&/(

? 1* D # 2 ?
&/4

5) )
, 8 : 8 !"
8 8
!" '

!" 0 '"
!" "
8
'

5 8
F " + " + '

5) ) )
5 !" *
8 ' !"
* < '

<
' < " (
% = ? +6 (( ('6
>'

<
'" " (
= ? *( 1* ('6 >'

8
'

6 6 6 & $ +
'
&/6

5). ) : ( & + 9 " +

' !" : &


!" ' + % '5
8 ' !" * &
'

5). ) ) : ( 9 :
8 8 8 '
8 !" = ' '
! %4 > !" )&1 + ( '

5). ) ) : ( 9 $ +
5 8 8 0 <
# 4 $ + M ' ' $ + ) <
' 8 8 < MainForm
Form'

C 8 !" )" ) "


= ' ' % / /$ >' C 8
>" > !"
!" : '

public partial class MyMainForm : MainForm


{
public MyMainForm()
{
InitializeComponent();
}
}
*& D C ! ?

C 8 8 8 8
'
&1)

5). ). ) : ( $ ' 9 $ +
!" ' + '?
8 8
8 8 8 '

5 !" 8
J % !" ' + )

? IControlsFactory '
8 8 !"
' + % 3 8 ' $ + '

" MyControlFactory !" )&1 + ( = **>'

using System;
using System.Collections;
using System.Windows.Forms;
using NConstruct.Client.Common.Core.Controls;
using NConstruct.Client.Common.Core.Find;
using NConstruct.Client.Common.Core.Forms;
using NConstruct.Client.Common.Presentation.Context;
using NConstruct.Client.Common.Presentation.Forms;
using NConstruct.Client.Common.Security.Forms;
using NConstruct.Client.Common.Security.Login;
using NConstruct.Client.MsControls.Core.Controls.Lookup;
using NConstruct.Client.MsControls.Core.Forms;
using NConstruct.Client.MsControls.Security.Authorization;
using NConstruct.Client.MsControls.Security.Forms;
using NConstruct.Client.MsWidget;
using NConstruct.Examples;

namespace NConstruct.Examples
{
public class MyControlFactory : IControlsFactory
{
public ILoginForm CreateLoginForm()
{
return new LoginForm();
}

public IMainForm CreateMainForm()


{
return new MyMainForm();
}

public ISetPasswordForm CreateSetPasswordForm(object idSystemUser)


{
return new SetPasswordForm(idSystemUser);
}

public IGenericEntityComponent CreateGenericEntityForm(Type entityType,


object idEntity, bool addMode)
{
return new GenericEntityForm(entityType, idEntity, addMode);
&1&

public ITextEditForm CreateMemoForm(string text)


{
return new TextEditForm(text);
}
public ISystemUserForm CreateSystemUserForm(object idEntity)
{
return new SystemUserForm(idEntity);
}

public ISystemObjectForm CreateSystemObjectForm(object idEntity)


{
return new SystemObjectForm(idEntity);
}

public ISystemRoleForm CreateSystemRoleForm(object idEntity)


{
return new SystemRoleForm(idEntity);
}

public ISelectionForm CreateSelectionForm(SelectionInputContextData


selectionInputContextData)
{
return new SelectionForm(selectionInputContextData);
}

public ISearchDialog CreateSearchDialog()


{
return new SimpleFindDialogForm();
}

public IPropertyGridForm CreatePropertyGridForm(object objectInstance)


{
return new PropertyGridForm(objectInstance);
}

public ILookupForm CreateLookupForm(UserControl parentControl, Type


manyToOneDtoType, object id)
{
return new LookupForm(parentControl, manyToOneDtoType, id);
}
}
}
** D C ?

5 !" 8 3
ANcFactory MyControlFactory
'

" MyNcFactory !" )&1 + ( =>'

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Client.Common;
using NConstruct.Client.Common.Core.Builders;
&1*

using NConstruct.Client.Common.Core.Controls;
using NConstruct.NET.Common.Core.Reflection;

namespace NConstruct.Examples
{
class MyNcFactory : ANcFactory
{
private const string ControlsFactory =
"NConstruct.Examples.MyControlFactory, NConstruct.Examples";

private IControlsFactory _ControlsFactory;

public override ITreeBuilder CreateTreeBuilder() { return null; }

public override IControlsFactory GetControlsFactory()


{
if (_ControlsFactory == null)
{
_ControlsFactory =
(IControlsFactory)ReflectionManager.GetInstance().
InvokeObjectConstructor(ControlsFactory);
}
return _ControlsFactory;
}
}
}

*+ D C

C 8 !" )" )" + +


!" )" ) " J !" )" ) #
!" )! )" + + 'C 8 >" >
!"
!" : '

5). )0) ? $ '


!" ' + ANcFactory '
,
DefaultClientApplicationProjectFactory
!" )" ) (( % (() '

NConstruct.Examples.MyNcFactory,
NConstruct.Examples 8 MyNcFactory
MyControlFactory MyMainForm
!" % MainForm'

C !" )&1 + (
!" )" ) (( 8 '
&1+

5 'C 8 MainForm MyMainForm '


, MyMainForm MainForm MainForm
8 8 8
8 '
&1-

5)0) " + +

5)0) ) # " +
C 3 8
8 '5 8 3
'

5)0) ) )

? 8 8
!" '

5 8 8 8 !" " '? 8


'
8 D
'.
'

9 ('/ ! '

5)0) ) ) #

%
'5 8 0
< 8 6 6 = ('&'+ # $ # > 3
GenericTableForm*1'

' = 4 > 8
/'* $ . %
= >
GenericTableForm '

*1 NConstruct.Client.MsControls.Core.Forms.GenericTableForm '
&1/

&1 6 6

' = 4 > 8
/'* $ .
8 8 GenericTableForm '

3 8 8
!" )&1 + ( = ('+
2 C ! >'

? 8 0 <
# 4 $ + M ' ' $ + ) < '

8 8 ' $ + 8 8
F

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using NConstruct.Client.MsControls.Core.Forms;
using NConstruct.NET.Common.Core.Localization;
using NConstruct.Client.Common.Presentation.Actions;
using NConstruct.Client.Common;
using NConstruct.Server.Data.Security.Entity;
using NConstruct.Server.Data.SystemData.Exceptions;
using NConstruct.Client.Common.Presentation.Forms;

namespace NConstruct.Examples
{
public partial class MyModuleListForm : GenericTableForm
{
public MyModuleListForm()
{
InitializeComponent();
}

protected override string GetTitle()


{
return "My Module"; // TODO: resx
}

public MyModuleListForm(Type entityDataType)


: base(entityDataType)
{
try
{
InitializeComponent();
}
catch (PermissionException ex)
{
string message = LocalizationManager.GetLocalizedText(
&11

ex.GetType().Name) + ex.Message;
NcMessageBox.ShowMessage(message, ex);
}
}

private void DoMyAction(object key, object sender, EventArgs e)


{
object objectID = this.GetSelectedObjectId();
MessageBox.Show(
"This is your first sucessfull action!\nObjectId is " + objectID,
"Congrataltions");
}

protected override void RegisterToolbars()


{
base.RegisterToolbars();
ToolbarsManager.AddSupportedBar("MyToolBar");

protected override void RegisterActions()


{
base.RegisterActions();
_ActionsManager.RemoveSupportedActions(Action.DeleteRecord);
_ActionsManager.AddSupportedAction(
MyAction.MyAction1,
new NcDelegates.ActionModuleHandler(DoMyAction));
}
}
}
*- 0 $ !

C 8 !" ) )
= ' ' % / /$ >' 5
!" ) ) PermissionException 3 8
8
' 8 8 8
'5 8
8 /'*
$ . 'C 8 8 8 8
8 '

C # )# $ + @ -) 8 )
GenericTableForm 8 MyModuleListForm 'C 8
>" > !" '

" 3 3 8 8
RegisterActions ' DeleteRecord
8 MyAction1 8
3 : '
5 RegisterToolbars
8 '
&1(

. 3 8 %
'" !" )&1 + (
MyAction' " 8 MyAction F

public const string MyAction1 = "MyAction1";

C 8 8 8 <
'

" ( *

$ MainForm 8 '5
'C
NConstruct.Client.Common.Presentation.Actions '

, 8 8
MyMainForm' MyMainForm '
C F

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using NConstruct.Client.MsControls;
using NConstruct.Client.Common.Presentation.Actions;
using NConstruct.Client.MsControls.Common.Actions;

namespace NConstruct.Examples
{
public partial class MyMainForm : MainForm
{
private System.Windows.Forms.ToolStripButton _MyToolStripButton1 =
new System.Windows.Forms.ToolStripButton();
private System.Windows.Forms.ToolStrip _MyToolStrip =
new System.Windows.Forms.ToolStrip();

public MyMainForm()
{
InitializeComponent();
InitRuntimeToolStripButtons();
}

private void InitRuntimeToolStripButtons()


{
this._MyToolStrip.SuspendLayout();
&14

//
// _ToolStrip
//
this._MyToolStrip.Items.AddRange(new
System.Windows.Forms.ToolStripItem[] {
this._MyToolStripButton1});
this._MyToolStrip.Location = new System.Drawing.Point(0, 24);
this._MyToolStrip.Name = "_MyToolStrip";
this._MyToolStrip.Size = new System.Drawing.Size(100, 25);
this._MyToolStrip.TabIndex = 2;
this._MyToolStrip.Text = "_MyToolStrip";

//
// _MyToolStripButton1
//
this._MyToolStripButton1.Image =
global::NConstruct.Examples.Resources.table_key;
this._MyToolStripButton1.ImageTransparentColor =
System.Drawing.Color.Magenta;
this._MyToolStripButton1.Name = "_MyToolStripButton1";
this._MyToolStripButton1.Size = new System.Drawing.Size(66, 22);
this._MyToolStripButton1.Text = "My Action";

this.Controls.Add(this._MyToolStrip);
this._MyToolStrip.ResumeLayout(false);
this._MyToolStrip.PerformLayout();
}

public override void RegisterToolbars()


{
base.RegisterToolbars();
ToolbarsManager.RegisterBar(
"MyToolBar",
new NcToolbarToolStripActionListener(_MyToolStrip));
}

public override void RegisterActions()


{
base.RegisterActions();
ActionsManager.RegisterAction(
MyAction.MyAction1,
new ToolbarActionListener(_MyToolStripButton1));
}
}
}
*/ 0 C ! ? 8 5

8 8
table_key '5 8
'. %
8 '

" 0 <
! 4 - + M ' ? $ ? ) 1 <
' ? ) 1 8 &1 $ M
&16

? 8 '" = 3 >
table_key *('

" !" ' + 8 8 ' $ +


' % 8 8
< ' ' 6 ('

! !" ' +
8
!" ' +
'?
('/ ! '? 8 %
< 8 8 ' $ +
'

" MyActionGroup1 8 8
!" )&1 + ( F

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Client.Common.Presentation.Actions.System;
using NConstruct.Client.Common.Core.Generators;

namespace NConstruct.Examples
{
public class MyActionGroup1 : AAction
{
public MyActionGroup1(
AActionsManager actionsManager,
bool isVisibleInMenu,
bool isEnabledInMenu,
bool isVisibleInNavigation,
bool isEnabledInNavigation)
: base(
actionsManager,
null,
isVisibleInMenu,
isEnabledInMenu,
isVisibleInNavigation,
isEnabledInNavigation,
11)
{
Image = Resources.table_key;
}

*( . 8 < 8 <
'
&()

public override void Execute(object sender, EventArgs e)


{
}
}
}
*1 D #

" MyAction1 8 8
!" )&1 + ( F

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Client.Common.Presentation.Actions.Custom;
using NConstruct.Client.Common.Core.Generators;
using NConstruct.NET.Common.Core.Reflection;
using NConstruct.Server.Data.Security.DTO;

namespace NConstruct.Examples
{
public class MyAction1 : AModuleAction
{
public MyAction1(
AActionsManager actionsManager,
bool isVisibleInMenu,
bool isEnabledInMenu,
bool isVisibleInNavigation,
bool isEnabledInNavigation)
: base(
actionsManager,
typeof(MyActionGroup1),
isVisibleInMenu,
isEnabledInMenu,
isVisibleInNavigation,
isEnabledInNavigation,
1,
typeof(MyModuleListForm),
typeof(SystemObjectsDTO))
{
Image = Resources.table_key;
}
}
}
*( D

.< < '"


!" ' + 8 < 'C
8 ActionsSystemObjectList
C (( ! + D )" ) (( = ' '! %4 )" )
(( > % (() F

<add key="NConstruct.Examples" value=""/>


&(&

C 8 'A 8
< 8 ' 6 (
' '

C 8 MyActionGroup1
MyAction1 6 7 ) 1 F

? 1+ D # <

, 3 8 8
< ' F
&(*

? 1- 0 ! ! 23

5)0) ) # " +
, 8
3 8 '

"
!" )&1 + ( = ('+ 2
C ! >'

? 0 <
! 4 - + M '" - % $ +
' $ + ) < '

" ModuleForm < I '"


8 MyModule2Form '" 3 3 3
MyTextBox'
&(+

8 8 MyModule2Form 8 8 F

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using NConstruct.Client.Common.Presentation.Actions;
using NConstruct.Client.Common;

namespace NConstruct.Examples
{
public partial class MyModule2Form :
NConstruct.Client.Common.Presentation.Forms.ModuleForm
{
public MyModule2Form()
{
InitializeComponent();
}

private void DoMyAction(object key, object sender, EventArgs e)


{
MessageBox.Show("Congratulations! You entered: " +
MyTextBox.Text, "MyAction");
}

protected override void RegisterToolbars()


{
base.RegisterToolbars();
ToolbarsManager.AddSupportedBar("MyToolBar");
}

protected override void RegisterActions()


{
base.RegisterActions();
_ActionsManager.AddSupportedAction(MyAction.MyAction1,
new NcDelegates.ActionModuleHandler(DoMyAction));
}

}
}

*4 D !

? ModuleForm
'5 !" '

5 ModuleForm : !" )&1 + (


# )# $ + @ -) 8 ) '9 0 < %
? ? M ' * 4 8
>" > !" 8 8 :
'
&(-

" 3 ' 8
3 3 3' 9
' < _MyToolStripButton1 '

" 3
'" '" MyAction2
3 F

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Client.Common.Presentation.Actions.Custom;
using NConstruct.Client.Common.Core.Generators;

namespace NConstruct.Examples
{
public class MyAction2 : AModuleAction
{
public MyAction2(
AActionsManager actionsManager,
bool isVisibleInMenu,
bool isEnabledInMenu,
bool isVisibleInNavigation,
bool isEnabledInNavigation)
: base(
actionsManager,
typeof(MyActionGroup1),
isVisibleInMenu,
isEnabledInMenu,
isVisibleInNavigation,
isEnabledInNavigation,
2,
typeof(MyModule2Form),
null)
{
Image = Resources.table_key;
}
}
}
*6 0 *

< 3
MyActionGroup1 '

3 8 8
< ' F
&(/

? 1/ D ! ! * 23
&(1

5) ) ! *
!" % % 8 8
'C ' !" ' +

'

? 11 D ! !

5) ) )
5 8 ' 3
AAction 8 Execute
8 8 8 '

" =AModuleAction>' 5
8
Execute 8 '

5) ) ) 6 (
" '
8
'

$ : 3
*1 &()'

5) ). ) 6
# 8 'C
3 AAction '" MyAction3 3
F

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Client.Common.Presentation.Actions.System;
&((

using NConstruct.Client.Common.Core.Generators;
using System.Windows.Forms;

namespace NConstruct.Examples
{
public class MyAction3 : AAction
{
public MyAction3(
AActionsManager actionsManager,
bool isVisibleInMenu,
bool isEnabledInMenu,
bool isVisibleInNavigation,
bool isEnabledInNavigation)
: base(
actionsManager,
typeof(MyActionGroup1),
isVisibleInMenu,
isEnabledInMenu,
isVisibleInNavigation,
isEnabledInNavigation,
3)
{
Image = Resources.table_key;
}

public override void Execute(object sender, EventArgs e)


{
MessageBox.Show("Hello world!", "Greetings");
}
}
}
+) D # "

5 % 8
8 '

" 3 MyAction3 MyActionGroup1 8


JA 8 Q% 3'

5) )0)
! 8 3 AModuleAction '5
8 'C
8 8
8 8 '.
Execute '

8 8 GenericTableForm
' '
&(4

=
>
' 3 '

C 3 *6 &(-'

5) ) ) ( ' +
" !" 8
' 8
< ActionsSystemObjectList
C (( ! + D )" ) (( % (() '

" IAction
'

5) )2 ) : +
5 8 8
8 '
< '

5) )5) ! 6
!
F

-3 - '

-& - '

-3 - ! '

-3 - ! '

5 *1 D
&(6

5)2 )
5 < '5
8
'
= ('/'& " >' :
'

5)2 ) ) *
!" : & 8
'C 8 !"
' + '

. !" * & 8

('+ 2 C ! '

= ' '
MyMainForm> 8 8
MSMainForm 8 MSMainForm
< MSMainFormJ 8 '

C */
&14'

5)2 ) ) ? *
5
8 8 : *4' $ %

NConstruct.Client.Common.Presentation.Actions.Action 'C
8 8 8 = ' '
$ " &1(>'

*4 . = ' 'H " I>


8 0 0
'
&4)

,
RegisterActions = ' '
MyMainForm> MSMainForm !" :
& 8 F

ActionsManager.RegisterAction(
MyAction.MyAction1,
new ToolbarActionListener(_MyToolStripButton1));

*/ &14 3 '

5)2 ). ) ? * 9
!" ' +
'C 8 8
'
8 '

C RegisterActions
8 F

_ActionsManager.AddSupportedAction(MyAction.MyAction1,
new NcDelegates.ActionModuleHandler(DoMyAction));

, 8 8
= ' ' DoMyAction>' 5 8 8 <
8 '

. 3 NcModuleForm
' ('-'* , ! 3 '
&4&

5)5) " !" %


8 8 !" % 8
'5 8
3 !"
8 8 !" % '

5 8 8 !"
8 8
'

5)5) ) " &1 %


? < < !"
'C Remote
!" )" )" + + '

Remote
!" 8 !" "
'

" Remote 8 8
F

try
{
IList entityList = Remote.LoadEntityList(true, ypeof(SystemObjectsEntity));
}
catch (ReadPermissionException ex)
{
// Handle exception
}
+& D 9 !

5 3
'.
: SystemObjectsEntity '. 8
ReadPermissionException 3 '
&4*

A !"
= 8 8 >F

! $

LoadDefaultCatalogEntity(Type type)
'

IList LoadEntityList(bool closeSession, 9


Type persistentClass)
'5

*6

'

IList LoadEntityList(bool closeSession, LoadEntityList


Type persistentClass, int recordsNumber)
3
recordsNumber
'

IList LoadEntityList(Type 9
persistentClass, SimpleExpression
simpleExpression)

3 '

IList LoadEntityListWithCriteria(Type 9
persistentClass, Hashtable criteria)
8
'
5
*6

'

criteria A
< 0 = 0 >
8 <

*6 /'1'/ 9 . '
&4+

'

IGenericBaseEntity SaveOrUpdate(bool =
closeSession, IGenericBaseEntity
:
baseEntity)
> =
:
>
'9
8 '
:
=8 >
8 =8 >

'

IGenericBaseEntity Save(bool '


closeSession, IGenericBaseEntity entity)
9 8
- '
:

'

void SaveOrUpdateEntityList(IList =
entityList)
:
> =
:
>
'
: =8
> 8 =8
>

'

void DeleteEntityById(bool closeSession, $


Type type, object id)
'
:

'
&4-

Object Load(bool closeSession, Type type,


object id)
< '
:

'

Object Read(bool closeSession, Type type,


object id)
8
< '
:

'

IList GetUserSettingsByUserName(string 9
username)
'
2

UserSettingsEntity '

: '

IList GetSystemRolesList() 9
SystemRolesDTO

'
:

SystemRolesEntity
'

IList GetSystemUsersInRolesList() 9
SystemUsersDTO

'.

'
:

SystemUsersInRolesEntity

'

IList GetSystemUsersInRolesList(object 9
idSystemRole)
&4/

idSystemRole) SystemUsersDTO

'
:

SystemUsersInRolesEntity

'

void SetPassword(object userId, string 8


oldEncryptedPassword, string
userId
newEncryptedPassword)
'
8 8

Cryptography '.
8
userId
% '

Object Create(Type type)


'
:

'

ReleaseLock(IGenericBaseEntity 9 <
baseEntity)
'

SystemUsersEntity GetLoggedUser() 9
'
:
SystemUsersEntity

IList LoadDataTransferDataResults(bool 9 %
closeSession, Type entityType)
'
:

'
'
&41

IList LoadDataTransferDataResults(bool 3
closeSession, Type entityType, int
maxResults)
maxResults '

IList LoadDataTransferDataResults(bool 9 %
closeSession, Type entityType,
SearchContext searchContext)

SearchContext'
:

'
'

IList LoadDataTransferDataResults(bool 3
closeSession, Type entityType,
SearchContext searchContext, int
maxResults) maxResults '

IList LoadDataTransferDataList(bool 9 %
closeSession, Type entityType,
AdvancedSearchContext searchContext)

AdvancedSearchContext'
:

'
'

IList LoadDataTransferDataList(bool 3
closeSession, Type entityType,
AdvancedSearchContext searchContext, int
maxResults) maxResults '

object SaveOrUpdateSystemRole( =idSystemRole


object idSystemRole, string name,
null>
IList systemUserIds, IList
systemObjectsPermission , =idSystemRole null>
IList actionPermissionsDTOList,
IList webActionPermissionsDTOList) 8
'
9 '
:

SystemRolesEntity
&4(

'

IList GetSystemUserList() 9
SystemUsersDTO

'
:

SystemUsersEntity
'

IList GetSystemUserList(IList 9
excludedSystemUserIds)
SystemUsersDTO

excludedSystemUserIds
'
:
SystemUsersEntity

'

object SaveOrUpdateSystemUser( =id null>


object id, string username, string
password, string firstName, string
=id null>
lastName, string email, int '
authenticationType, bool isSuperuser) 9 '
:

SystemUsersEntity

'

int RecryptPasswords() 9 8
<
8 '
:
RecryptPasswords

'

void AddNewSystemObjects(bool 9
closeSession, IList currentSystemObjects,
int systemObjectType)
'
&44

'

DictionaryMap<string, #
ActionPermissionsDTO>
'
GetCurrentUserActionPermissionList(bool
closeSession, int systemObjectType,
SystemUsersEntity loggedUser)

DictionaryMap<string, #
ActionPermissionsDTO>
'
GetCurrentUserActionPermissionList(int
systemObjectType)

IList GetSystemPermissionsList(object #
idSystemRole)
'

Notification ValidateObject(bool 7 '


closeSession, IGenericBaseEntity entity)

ApplicationSettings 9
GetApplicationSettings()
'

UserSettings GetUserSettings(object 9
idSystemUser)
'

UserSettings GetLoggedUserSettings() 9
'

void UpdateUserSettingValuesWithDefaults(
bool closeSession, object idSystemUser)
'

void
UpdateUserSettingValues(IBaseUserSettings
'
userSettings, bool closeSession, object
idSystemUser)

void UpdateApplicationSettingValues(
IBaseApplicationSettings
'
applicationSettings)

bool PingServer() 9
8 '

5 *( D " $ A ! ?

" 8 < 3
8 8 0 8 3
&46

'9 !" % :- ('4 B


< '

5)5) ) " ' 4 %


/ 8
'5 8
F

& 8 /'6 , C
.8 $ . 8 < !" %
< 8 6 6
6 & $ + ' <

'

C 8
/'+ '5 8
< '

: '5
8 @
/'-'* " ? ! '$ K '?

'$ K
8 @
8 '

" @
/'&*'4 9 '

8 =8 8 8
8 >
'

5 8 8 8 8
'C

8 '

/'&+'+ ? @ @ 8
'
!" )&1 + ( )? + $ ) !" %
&6)

!" )&1 + ( )? + $ > > !" " %


'

< ('-'* , !
!" )&1 + ( '

? @ !" )&1 + (
< ? ? M '
* 4 8 !" )&1 + ( )? + $ )
!" " % '

" '? + ) !" )&1 + ( <


!" )&1 + ( " M ' 8
F

using System;
using System.Collections.Generic;
using System.Text;
using NConstruct.Example.RemoteFacade;
using NConstruct.Client.Common.ApplicationEngine;

namespace NConstruct.Examples
{
public class MyRemote
{
private static MySampleFacade _MySampleFacade;

public static MySampleFacade GetMySampleFacade()


{
if (_MySampleFacade == null)
{
_MySampleFacade = new MySampleFacade();
}
return _MySampleFacade;
}

protected static object GetSessionId()


{
return NcApplicationContext.SessionId;
}

public static bool IsSystemObject(Type type)


{
return GetMySampleFacade().IsSystemObject(
GetSessionId(),
type,
NcApplicationContext.LoggedUser.Id
);
}
}
}
+* D ! 9 23
&6&

5 8 < IsSystemObject
'

3 MySampleFacade
'C 8 <application>
<system.runtime.remoting> C (( ! + D )" )
(( % (() F

<client>
<wellknown
type="NConstruct.Example.RemoteFacade.MySampleFacade,
NConstruct.Example.RemoteFacade"
url="http://localhost:8100/MySampleFacade" />
</client>

++ 0 ! ? 9 = >

" @
!" )" ) (( 8
'

, ' : < 8
DoMyAction ' " 3 = *-
&11>F

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using NConstruct.Client.MsControls.Core.Forms;
using NConstruct.NET.Common.Core.Localization;
using NConstruct.Client.Common.Presentation.Actions;
using NConstruct.Client.Common;
using NConstruct.Server.Data.Security.Entity;
using NConstruct.Examples;
using NConstruct.Server.Data.SystemData.Exceptions;
using NConstruct.Client.Common.Presentation.Forms;

namespace NConstruct.Examples
{
public partial class MyModuleListForm : GenericTableForm
{
public MyModuleListForm()
{
InitializeComponent();
}

protected override string GetTitle()


{
return "My Module"; // TODO: resx
}
&6*

public MyModuleListForm(Type entityDataType)


: base(entityDataType)
{
try
{
InitializeComponent();
}
catch (PermissionException ex)
{
string message = LocalizationManager.GetLocalizedText(
ex.GetType().Name) + ex.Message;
NcMessageBox.ShowMessage(message, ex);
}
}

private void DoMyAction(object key, object sender, EventArgs e)


{
object selectedObjectId = this.GetSelectedObjectId();

// Bad example – load locks system object!!!


SystemObjectsEntity selectedEntity =
(SystemObjectsEntity)Remote.Load(true,
typeof(SystemObjectsEntity),
selectedObjectId);

try
{
Type selectedEntityType = Type.GetType(selectedEntity.Name);

// Remote call 1.
bool answer = MyRemote.IsSystemObject(selectedEntityType);

MessageBox.Show(
selectedEntity.Name + " IS " + (answer ? "" : "NOT ") +
"sytem object!",
"MyAction");

// Remote call 2.
answer = MyRemote.IsSystemObject(typeof(System.Int64));

MessageBox.Show("System.Int64 IS " + (answer ? "" : "NOT ") +


"sytem object!",
"MyAction");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Something went wrong!");
}
}

protected override void RegisterToolbars()


{
base.RegisterToolbars();
ToolbarsManager.AddSupportedBar("MyToolBar");

protected override void RegisterActions()


{
base.RegisterActions();
&6+

_ActionsManager.RemoveSupportedActions(Action.DeleteRecord);
_ActionsManager.AddSupportedAction(
MyAction.MyAction1,
new NcDelegates.ActionModuleHandler(DoMyAction));
}
}
}
+- 0 ! 9 23 5

5 '5 '? !" !" " '


8 = J + % 8 J + %> 8
'
< ' '

? 8 8
= 8 > 8 < &'
" 3 8 8 System.Int64
= 8 %> 8 < *'

. 3 8 < 0 ' 23
8 0 = ' ' >' 8 N
&6-

5)E ) ' L 8
< + !"
/'1'- B < '5
8 + 8 '

5 < !" % <


< 8 3 < '

A 8 < !" % 3
'" < D
< 8 '

5 3 < 8 <
'

$ 3 8 '#
< 3 8 3 F

3
< 3
C 8 3
3
5 *4 D 23

< 3 /'1'-
B < 'C 5 *) &&*
< 3 3 8
'

A 8 8 < 3 8 < 3
'

5)E ) ) " % ' L 8 &1 (


< 3 +- &6+ 3
!" % Load '

SystemObjectsEntity selectedEntity =
(SystemObjectsEntity)Remote.Load(true,
&6/

typeof(SystemObjectsEntity),
selectedObjectId);

58 < 3 '?
ReadPermissionException, 8 8
SystemObjectsEntity '

SystemObjectLockedException, 8 8
< SystemObjectsEntity = 1'+'&'& 5
< >' <
SystemObjectsEntity SystemObjectsEntity
selectedObjectId < SystemObjectLockedException 8 '

3 F

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using NConstruct.Client.MsControls.Core.Forms;
using NConstruct.NET.Common.Core.Localization;
using NConstruct.Client.Common.Presentation.Actions;
using NConstruct.Client.Common;
using NConstruct.Server.Data.Security.Entity;
using NConstruct.Examples;
using NConstruct.Server.Data.SystemData.Exceptions;
using NConstruct.Client.Common.Presentation.Forms;

namespace NConstruct.Examples
{
public partial class MyModuleListForm : GenericTableForm
{
public MyModuleListForm()
{
InitializeComponent();
}

protected override string GetTitle()


{
return "My Module"; // TODO: resx
}

public MyModuleListForm(Type entityDataType)


: base(entityDataType)
{
try
{
InitializeComponent();
}
catch (PermissionException ex)
{
string message = LocalizationManager.GetLocalizedText(
ex.GetType().Name) + ex.Message;
&61

NcMessageBox.ShowMessage(message, ex);
}
}

private void DoMyAction(object key, object sender, EventArgs e)


{
try
{
object selectedObjectId = this.GetSelectedObjectId();

SystemObjectsEntity selectedEntity =
(SystemObjectsEntity)Remote.Load(true,
typeof(SystemObjectsEntity),
selectedObjectId);

// Obtain type from type name.


Type selectedEntityType = Type.GetType(selectedEntity.Name);

// Remote call 1.
bool answer = MyRemote.IsSystemObject(selectedEntityType);

MessageBox.Show(selectedEntity.Name + " IS " +


(answer ? "" : "NOT ") +
"sytem object!",
"MyAction");

// Remote call 2.
answer = MyRemote.IsSystemObject(typeof(System.Int64));

MessageBox.Show("System.Int64 IS " + (answer ? "" : "NOT ") +


"sytem object!",
"MyAction");
}
catch (ReadPermissionException rp_ex)
{
MessageBox.Show("No read permission on object: " +
rp_ex.Message,
"Permission Exception");
}
catch (SystemObjectLockedException sol_ex)
{
MessageBox.Show("Object locked: " + sol_ex.Message,
"Locking Exception");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Exception");
}
}

protected override void RegisterToolbars()


{
base.RegisterToolbars();
ToolbarsManager.AddSupportedBar("MyToolBar");

protected override void RegisterActions()


{
base.RegisterActions();
_ActionsManager.RemoveSupportedActions(Action.DeleteRecord);
&6(

_ActionsManager.AddSupportedAction(
MyAction.MyAction1,
new NcDelegates.ActionModuleHandler(DoMyAction));
}
}
}
+/ 0 B < 23

? !" 8
3 8 8 !" " % :-
'

! 3 2 '9 ('6
8
'

5)E ) ) - 8 % +
" 3 < '5
Load < SystemObjectsEntity 8
: ' <
+)'

<
'

, 3 < 8 '
< < 8
= % < >' . 8
ObjectLockClameOvertakenException 8 8
8 < '

< ObjectLockClameOvertakenException 8
'

5 F

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;

+) 3 D 1'+'&'& 5 < '


&64

using System.Windows.Forms;
using NConstruct.Client.MsControls.Core.Forms;
using NConstruct.NET.Common.Core.Localization;
using NConstruct.Client.Common.Presentation.Actions;
using NConstruct.Client.Common;
using NConstruct.Server.Data.Security.Entity;
using NConstruct.Examples;
using NConstruct.Server.Data.SystemData.Exceptions;
using NConstruct.Client.Common.Presentation.Forms;

namespace NConstruct.Examples
{
public partial class MyModuleListForm : GenericTableForm
{
public MyModuleListForm()
{
InitializeComponent();
}

protected override string GetTitle()


{
return "My Module"; // TODO: resx
}

public MyModuleListForm(Type entityDataType)


: base(entityDataType)
{
try
{
InitializeComponent();
}
catch (PermissionException ex)
{
string message = LocalizationManager.GetLocalizedText(
ex.GetType().Name) + ex.Message;
NcMessageBox.ShowMessage(message, ex);
}
}

private void DoMyAction(object key, object sender, EventArgs e)


{
bool operationCanceled = false;

try
{
object selectedObjectId = this.GetSelectedObjectId();

SystemObjectsEntity selectedEntity =
(SystemObjectsEntity)Remote.Load(true,
typeof(SystemObjectsEntity),
selectedObjectId);

if (operationCanceled)
{
// Release lock!
Remote.ReleaseLock(selectedEntity);
}
else
{
// Do something with an entity
selectedEntity.Description = "Atered description!";
&66

// Update an entity
Remote.SaveOrUpdate(true, selectedEntity);
}
}
catch (ReadPermissionException rp_ex)
{
MessageBox.Show("No read permission on object: " +
rp_ex.Message,
"Permission Exception");
}
catch (SystemObjectLockedException sol_ex)
{
MessageBox.Show("Object locked: " + sol_ex.Message,
"Locking Exception");
}
catch (ObjectLockClameOvertakenException olco_ex)
{
MessageBox.Show("Lock expired: " + olco_ex.Message,
"Locking Exception");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Exception");
}
}

protected override void RegisterToolbars()


{
base.RegisterToolbars();
ToolbarsManager.AddSupportedBar("MyToolBar");

protected override void RegisterActions()


{
base.RegisterActions();
_ActionsManager.RemoveSupportedActions(Action.DeleteRecord);
_ActionsManager.AddSupportedAction(
MyAction.MyAction1,
new NcDelegates.ActionModuleHandler(DoMyAction));
}
}
}
+1 D A B < 23

5)E ). ) & 4 % 8
C 8 < 'C Read
!" % Remote ' <
8 Read
ObjectLockClameOvertakenException 3 8 '

. 8 Load
< 'C
*))

SaveOrUpdate Update < ReleaseLock


'

Load D ReleaseLock
'. 8
8 8 <
'9 /'/'& " $ /'1'-
B < '
*)&

5) ) 7
" !" '
LocalizationManager
8
C (( ! + D )" ) (( ) ? '

5) ) ) 4 % +
C 8
!" " ' 8 8
' !" " % '

? 1( D 8

$ !" "
# 4 ' 3 !" " 8
'
*)*

, !"
8 '

!" *
7 )C D) 1 '
7 < " (
3 '

=> '

5) ) ) 7 ?
C 8 F

string congratulations = LocalizationManager.GetLocalizedText(


"Congratulations");
*)+

5) )" !" "


!" " (()
!" )" ) (( '
!" " 8 8 8 8
'

5) ) ) ((
(( (() '
' 8 8
8 '

<appSettings>
<!--Needed for recryption - for backward compatibility (will be deleted in
2.0). -->
<add key="MachineValidationKey"
value="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902" />
<!--Needed for recryption - for backward compatibility (will be deleted in
2.0). -->
<add key="MachineDecryptionKey"
value="F9D1A2D3E1D3E2F7B3D9F90FF3965ABDAC304902F8D923AC" />
<!--Needed for recryption - for backward compatibility (will be deleted in
2.0). -->
<add key="MachineValidationMode" value="SHA1" />
<!--Needed for encryption Cryptography. If the value is empty the default
embedded PublicKey.xml will be used.-->
<add key="PublicKeyFile" value="" />
<!--This is relevant only when we don't have a remote application.
DefaultApplicationProjectFactory represents the real implementation of the
abstract AXServerFactory.-->
<add key="DefaultApplicationProjectFactory"
value="Northwind.Server.Services.NorthwindServerFactory,
Northwind.Server.Services" />
<!--UserDefinedModule is the assembly name with all data objects (entitites,
DTO's, mapping files...).-->
<add key="UserDefinedModule" value="Northwind.Server.Data" />
<!--NewsWebModule is the assembly name of the NewsWeb module data objects.-->
<add key="NewsWebModule" value="" />
<!--Change to custom DaoFactory class if you want to create your own
implementation of DaoFactory methods.-->
<add key="DaoFactory"
value="NConstruct.Server.Services.SystemRemote.Dao.DaoFactory,
NConstruct.Server.Services" />
<!--Change to custom RequestContextFactory class if you want to create your
own implementation of RequestContextFactory methods.-->
<add key="RequestContextFactory"
value="NConstruct.Server.Services.SystemRemote.RequestContextFactory,
NConstruct.Server.Services" />
<!--Change to custom Factory class if you want to create your own
implementation of ANcFactory methods.-->
<add key="DefaultClientApplicationProjectFactory"
value="NConstruct.Examples.MyNcFactory, NConstruct.Examples" />
*)-

<!--Components' provider name. Possible values are Microsoft, DevExpress,


Krypton.-->
<add key="ComponentsProvider" value="Microsoft" />
<!--IP or name of the SMTP server using in the EmailManager for sending
application error to support department.-->
<add key="SmtpServer" value="127.0.0.1" />
<!--Email address of the sender using in the EmailManager for sending
application error to support department.-->
<add key="EmailFrom" value="support@nconstruct.com" />
<!--Email address of the recipient(s) using in the EmailManager for sending
application error to support department.-->
<add key="EmailTo" value="support@nconstruct.com" />
<!--The maximum length of Text field (defined in FieldLengthAttribute) which
causes ordinary TextEdit to display instead of MemoEdit.-->
<add key="FieldLengthMemoBoundary" value="100" />
<!--Specific image handling for Northwind-style image blob fields (leading
header) for the ImageManager class.-->
<add key="UseNorthwindImageHandle" value="True" />
<!--Initial tab content which is displayed on the startup and is not related
to the database.-->
<add key="WelcomePageURL"
value="http://www.nconstruct.com/App/Features.aspx?PageId=4" />
<!--Initial tab content which is displayed on the startup and is related to
the database.-->
<add key="DefaultModuleToShowName" value="SystemRolesAction" />
<!--Set this key to False in a single-user desktop application when no remote
server is needed.-->
<add key="IsRemoteApplication" value="True" />
<!--Determines if Windows authentication is enabled or not (Login window will
show Windows authentication checkbox if this value is True).-->
<add key="WindowsAuthenticationSupported" value="True" />
<!--Determines if the authentication is required or not. If not, client will
try to establish conenction with the server
via WindowsIdentity for remoting application and via AppUsername
and AppPassword for applications with no remoting.-->
<add key="ApplicationLoginRequired" value="True" />
<!--Use this settings only with ApplicationLoginRequired(False) and
IsRemoteApplication(False) combination.
For such applications no security is needed but there must exist
one user in the SystemUsers table with this
username and password (see also AppPassword setting).-->
<add key="AppUsername" value="admin" />
<!--See the comment for AppUsername. Be aware that password in the database is
encrypted while in the app.config is not.-->
<add key="AppPassword" value="admin" />
<!--Determines if application displays NcSplashWindow with animated gif or
not. Set to False if you experience problems with debugging in a multithread
process.-->
<add key="ShowAnimatedSplash" value="True" />
<!--A timeout [seconds] for a client to check if a server is ready for
client's requests-->
<add key="ApplicationServerPingTimeout" value="60" />
</appSettings>
+( D "
*)/

5) ) ) ? + "
5 8 '
8 = /'&*'4 9
>'

<system.runtime.remoting>
<application>
<channels>
<channel ref="http">
<clientProviders>
<formatter ref="binary" />
</clientProviders>
<serverProviders>
<formatter ref="binary" typeFilterLevel="Full" />
</serverProviders>
</channel>
</channels>
<client>
<wellknown
type="NConstruct.Server.Services.CoreFacade,
NConstruct.Server.Services"
url="http://localhost:8100/CoreFacade" />
</client>
<client>
<wellknown
type="NConstruct.Server.Services.SecurityFacade,
NConstruct.Server.Services"
url="http://localhost:8100/SecurityFacade" />
</client>
<customErrors mode="on" />
</application>
</system.runtime.remoting>

+4 D 9

<
8 8 !" % '$
" $ '

5 8 3 D
('('* .8 ! /'&+'- 9 '

5 8 8 '? 8
8 '5
!" '5 '"
'
*)1

5) ). ) ' + "
'"
' 8
'

ActionsSystemObjectList 8 <
'

<!--The list of assemblies which contains AAction derived classes.-->


<ActionsSystemObjectList>
<add key="NConstruct.Client.Common" value=""/>
<add key="NConstruct.Client.MsControls" value=""/>
<add key="NConstruct.Client.NewsModule.Controls" value=""/>
<add key="Nc.Web.MSControls" value=""/>
<add key="Northwind.Client.Controls" value=""/>
<add key="NConstruct.Examples" value=""/>
</ActionsSystemObjectList>
*)(

5) ) !
!" " 8 '

5 8
!" '
*)4

5) ) ( ' !" "


5 8 !" "
!" )" ) (( '9
8 '
*)6

4' ,
5 !" # " '
!" # " % 8 D 8
8 !" * '
*&)

E ) ) !" # " *
!" # " !" # 4 " '
!" # "
'. 8 '

E) ) ) ? !" # "
!" # " !" "
8 8 '5
8
!" # " '

" < 8 !" " !"


!" # " '5
' 8 !" # " '

.52 Q !" # "


3 : 8 3 # (( :
/ '

!" " ! )# ) ((
= 0 < @( :
0 8 > M 8 !" #
" 8 '
*&&

? 14 D , F$ !" # "

E) ) ) -
$ !" # " ' < 8
!" " 8 !" # "
'

" !" 0 8
'A J + % 8 J + %'

E ) ). ) :
" '
*&*

? 16 D , F !" # " !

! : < <
8 < '

; <
8 8 < 8 '5
< : < 8
'

? () D , F; < "

< '5 8
'! 4 < 8 8
= ' ' 8 > < = 4'* , < 8 $ >
*&+

? (& D , F

, < < 8 <


' < !" " !" # "
8 < ' 8 8
< '
*&-

E) ) # 8 4 %

E) ) ) 6 6

' =? (*>
8 !" "
0
'

$ 'C
'

? (* D , F$ #
*&/

" $ %
=? (+>' $ %
8 '

? (+ D , F $ %

5
= >
% '

E) ) ) 6 & :
5 6 & :
'
*&1

? (- D , F2

" + & : 8 "


& : 8 '

" < ',


< = 1'+'&'& 5
< >'

C : : 4 : '
*&(

? (/ D , F 8
*&4
*&6

" 3 " D2
!"
'"
/'1 B < 8 D 8 8
8
' !" ' + '

!" ' + 9 " ' <


3 '9
RSACryptoServiceProvider 8 3 9 "
< 3 ' !" ' +
9 " < '

3 < <
'

) : 4 & '(
8 ' + @ 'A 8
8 '
8 8
<
: I ' )1 + ' !" )!& )" + + '

" 8 ' 8
8 <
: I ' )1 + ' !" )!& )" + + '

5 < : I ' )1 + 8
8 '

Q$ < ' !" )!& )" + +


8
', <
< 8 8 !"
' + '9 " '+ E 8
< '
**)

) & '(
" 0 !" "
!" '
'"
'
8 <
I ' )1 + '
!" )!& )" + + '

Q, < <
8 8 !" ' + '9
" '+ E 8 8
< '

). "% I '

). ) "% : 4 I '

8 < 8
8 8 < '" 8

!"
8 8 '

8 < : 8 <
+& 8 D8
8 < 8 8
< '

C 8 < PrivateKeyFile
(() !" ) ) + + ' (( ' PrivateKeyFile
: I ' )1 +
' !" )!& )" + +
'

C 8 < PublicKeyFile
(() !" )" ) (( ' PublicKeyFile

+& " '


**&

: I ' )1 +
' !" )!& )" + + '

). ) ? '(

9 'C
< ? '( ' + @ !"
'

8 <
OldPrivateKeyFile PrivateKeyFile (()
!" ) ) + + ' (( '

). ) "% I '

< 8 < !" ' +


8 '
< = >
'

C 8 < SessionKeyFile
(() !" ) ) + + ' (( ' SessionKeyFile
I ' )1 +
' !" )!& )" + +
'

). ). "% I ' # ((

? 8 <
PrivateKeyFile PublicKeyFile # )
! )# ) (( '
: I ' )1 + : I ' )1 +
' !" )!& )" + + '
***
**+

3
" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &46
" 9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *4
" $ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *( &)& &)*
" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &11 &4)
9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(6 &4)
" ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /& /6
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 44 &-& &-6 &6+ *&&
" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 44 &-& &-6 &6+ *&&
" 9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-&
" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *4 &&+
" ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&/
" 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)6 &&&
; < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -) /6 1)
" < '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6( 64 &)4 &)6 &+& &+*
(() ''''''''''''' /4 44 66 &&+ &&6 &*+ &*- &+- &// &1* &() &(4 &6& *)+
" ''''' *+ *- */ *4 +& +* +/ +1 -/ -6 1) 1& 44 &)) &&+ &*) &+- &-)
&(6 &46 &6& *)+ **)
2 " ''''''' *+ *- +) +1 -6 /& /6 1+ 1- &&+ &*& &*+ &+/ &/-
*)( *&*
" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 64 &)6 &&) &+*
: )!& ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -) /6 1)
" < =S>''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-(
" '''''''''''''''''' *4 +) -& /& 1+ 1- (1 44 6* 6+ 6- 6/ 61 &)- &&4 &// &/1
? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6+ 6/
$ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6+
? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6+
? ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6+
? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6+
$ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6+
E 5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6-
9 . . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6+ 6- 6/
9 2 5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6/
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6/ 61
7 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6/
" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-) &/* &4& *&& **)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-)
, 8 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-) **)
" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 44
" A ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-/
" 0# $ . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&/
" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *- +)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (4
**-

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6( &*)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 41 44 &1( &(4 *&)
' *+ *- */ 4( 6) 6& 6( 64 66 &)) &)& &)* &)1 &&+ &*) &*& &*-
&*( &*6 &+- &46 *))
L '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ++
'''''''''''''''''''''''''''''''''''''''''' // 1* 1+ 11 14 () (* (( (4 4) 4& 4* &/4 *)*
23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &6-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 44
''''''' +& -& 1/ (( (4 4& 4* 6* 6- 6( 64 66 &)* &)- &)4 &)6 &&) &&( &&4
&&6 &*6 &+& &+* &++ &+- &/6 &1) &1& &1/ &1( &16 &() &(+ &(1 &(( &(6
&4) &4& &4- &4/ &46 &6) &6& &66 *)& *&6
'''' *+ *1 *4 +& -/ -( -6 11 4& 4( 44 6) 6* 6- 66 &)) &)& &)/ &)( &&-
&&/ &*) &*( &*4 &+* &++ &+- &-) &/- &/4 &(4 &4& &46 &6& &6- *)+ *)/
*&) *&6 **)
0 " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1&
# , ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +1 +4 /* /+ // /6 1+
A ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -( &--
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' */ &1(
5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /&

" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*+ &*- *)+


0 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*+ &*1
A '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*+ &*/
9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 44 66 &*+ &*( *)/
. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*+ &*-
? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1) 44 &&+ &*+ &*- &// *)+
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&6 &*+ &*1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6/ 61 64 &&) &&& &(( &(4
"
( &1 ( ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-) &//
"
! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1) &-) &//
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-/
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-) **)
? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 14 () (6 4*
! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/6 &(* &(+ &(-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/4
$ " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6) &)* &&/ &4&
$ " ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &4&
$ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6& &*&
$ ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&/ &--
$ # '' *4 *6 -1 -( -4 1+ 14 () (( (6 4) 4* 6- 6/ &*& &-* &-- &-/ &-(
&11 *&- *&/
$ A ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *+ -4 &*) &/- &4*
**/

$ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6& 6*
$ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
$ ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +) +& -4
$ ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-/ &4& *))
$ . ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4( 6) 6* &&1 &*) &*&
$ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *-
$ 5 . =$ 5.> *6 +) +& +1 /& 1+ (1 (( (4 (6 4) 4+ 4- 4( 6& 6*
6- 6/ 61 66 &)* &)+ &)- &&) &&/ &&( &&4 &*) &*& &// &/4 &1- &1/ &(1
&(( &(4 &4/ &41 &46 *)*
$ 5 .
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&(
$ 5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 14 () (6 4* 6* 6/
$
E '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *6 +) 16 6-
5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *( *6 (6
: '''''''''''''''''''''''''''''''''''''''''''''''''' 6* &)* &)+ &)- &&& &11 &4+ &6(
$ $ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*) &*&
$ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1/ () (4
$ ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)4
$ '''''''''''''''''''''''''''' *+ *- */ *( +) +1 /* &-) &/- &(6 &4& *)* *&* **)
( &1 ( ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-) &//
$ 2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4/ &/-
&1 ( ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1)
$ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4/
$ 8 ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -( &--
$ 5.
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4+ 4-
2 ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +) 4( &-/
2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *1 &4/ *&6 **)
2 " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -1 66
2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -/
2
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&1
2 '' *6 +) +& +1 /& 1+ 1- 1/ 11 1( () (( (4 (6 4) 4+ 4( 6* 6- 6/ 61 6(
66 &)* &)+ &)- &)( &&) &&* &&/ &&( &&4 &*) &*& &-6 &/& &// &/1 &1-
&1/ &11 &4& &4* &4+ &4- &4/ &41 &6( &66 *)*
2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
& ' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1- 1/
& ' " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)* &)/
2 < '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &4- &66
23 ''''''''''''''''''''''''''''''''''''''''''''''' &)& &)1 &&* &&- &+* &11 &4& &44 &6/ &66
23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&*
$ 23 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&*
. < . < 23 '''''''''''''''''''''''''''''''''''''''''''''''' &&* &6( &66
9 23 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&* &+* &4& &6/
**1

. < 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&* &+* &6/


, 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&*
23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&* &&+ &44 &6- &6/ &6(
? @ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6&
? < '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&*
? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-1
? 5 3 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-/ &-1
? 8 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 14 () 4*
? ''''''''''''''''''''''''''''''''''''''''''''''''''' *4 -( 14 () 4* 6+ &-- &-/ &-1 &/- &/1 *&/
? 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 14 () (6 4*
# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-1
# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4/
# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/-
# $ # ''''' +) 1+ (4 4( 6) 6- 6/ &&/ &// &/1 &/4 &1- &1/ &11 &(1
&46 *&-
# 2 ? +) 1+ 1/ 11 1( 14 () (* (6 4* 6) 6- &&/ &*& &-/ &-( &/1
&/( &/4 &46
# 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&/
# $ 5.''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (4 &&4
# 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6* 6- 6( &&(
# ! 2 # ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &1- &11
# ''''''''''''''''''''''''''''''''''''''''''''''''''' *4 -) /6 1) 14 () (4 4* 6-
# 3 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -1
, ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1+ 6/ 61 &)- &)/ &&/ &&4 &*& &*6
A; ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1+ 61 &)- &&/ &&4 &*&
23 . ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&& &&+
# 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)* &)+ &&+ &4+ &4/
< < '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6( 64
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)(
0 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-& &-6 *&&
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 64 &)4 &)6 &+*
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6( 64 &)4 &)6 &+*
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)6
" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6- 6/
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -( 1+ &6( *)& *)*
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -( 1+ &6( *)& *)*
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*)
' 4/ 4( 6& 6* 6( 66 &)/ &+* &+/ &/6 &1* &11 &(+ &46 &6) &6& *)( *&)
!" ) ) ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6& &&+ &*- &+) &11
!" ) ) '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6& &&+ &*- &+)
9 ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4(
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4( 6&
8 '''''''''''''''''''''''''''''''''''''''''''''''''''''' *- -( &)( &&4 &-* &/& &/* &16 &() &(& *&+
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1+ &// &/1 &/4 &(& &6( *)& *)*
! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)& *)*
**(

< 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)1 &/) &6(


< 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &6(
< '''''' *+ *4 +) +& -( -6 6) 6& 6( 64 &)1 &)4 &)6 &&) &&& &&+ &&- &&/
&*& &+& &+* &-4 &-6 &/) &/- &44 &46 &6- &6/ &6( *)) *&1
< < '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 64 &)4 &)6
. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *4 &/)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-6
: + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/)
5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)1 &/) &6(
< . '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&) &+* &6-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /4
0 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&6 &*+ &*1 &+) &+/
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *- &&+ &&6 &*1 *&& **)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -/ 44 &)) &-) &1) &4& *&& *&6 **) **&
? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -/ &-) *&&
! ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-&
! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&&
!
< ''''''''''''''''''''''''''''''''''''''''''''''' *- *4 6) 6& &)1 &)4 &&+ &&/ &/- &46 &6-
. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6* &)1 &)( &6( &66
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *4 &)1 &6/ &6(
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *- *4 &/- *&6
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
! '''''''''''''''''''''''''''''''''''''''''''''''''''' *- *( *4 *6 +1 -& /& 1/ 4& 6* &&/ &&1
% *' ? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 66 &++
! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ++ 6/
!
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)(
! 23 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -1 &-* &/- &/1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *( +/ +4 /+ /1
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *( +4 /+
! -) -6 /* /6 1) 1* 4( &-* &-- &-6 &/) &/* &// &/1 &/4 &1- &11 &16
&(& &(* &(+ &(- &(1 &(( &(4 &4) &4& &6+ *&& *&* *&+ *&-
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/6 &(* &(+ &(-
$ ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/4 &1-
! '''''''''''''''''''''''''''''''''''''''''''''''' &// &/4 &/6 &1/ &(* &(6 &4) &6)
$ . ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/4
!
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/* &/+
. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-6
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +4 /+ /4
! ! ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/6 &1* &1+ &1( &(6 &4)
! 0 2 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-/
'''''''''''''''''''''''''''''''''''''''''''''''' +) -& /& /* 1& 1* 1+ &&/ &// &/4 &4&
**4

! + '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -) /( /4
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /&
1* &)( &-& &-* &-6 &/) &/* &/4 &1- &16 &() &(& &(1 &(4 &(6
*&* *&+
# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/4 &(4
< ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/4
! ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(* &(+ &4)

# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *( *6 +) -+ 1) 4- 44
" ''''''''''''''''''''''''''' +4 +6 /- // /1 /( /4 1& 1* 4( &*/
$ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +( /+ /-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -)
! + ( '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -)
+ + '''''''''''''''''''''''''''''''''''''''''''''''''' -& /* 1+
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -* -/
# + ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +( /* /+
''''''' -( 1) 1* 44 6) 6& 6* &&+ &*4 &+- &+6 &-) &-& &-* &-+
&-- &-/ &-1 &-( &-6 &/) &/& &/* &/+ &/- &// &/4 &1- &4& &44 &6) &6+
&6( *)& *)+ *)( *)4 *&) *&& *&- **)
'''' +& /4 44 6) 6& 66 &&+ &&6 &*+ &*4 &*6 &++ &+/ &+1 &+(
&-) &4& &46 &6+ &6- *)/ *&) **)
, '''''''''''''' -) /4 1) *)6 *&) *&& *&* *&+ *&- *&/ *&1 *&(
8 < '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *6 6- &-1
8 < 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-1
8 ! ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&*
!, ''''''''' *- *( *6 +1 6* 6/ &)- &)/ &&1 &*) &*+ &*/ &*1 &+) &+* &+/
A '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *6 &&/
8 '' +/ +4 +6 -) -& -+ -/ -1 -4 1* 4) 4( 6( 66 &)) &*- &*( &+1 &-*
*&*
. 0. 5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *-
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *( ++ +4 /+ /(
8 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /( *&6 **)

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)(
23 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)( &/&
23 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)( &/&
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)( &+*
, '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)(
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6*
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 44 &)) &*( *)/
E '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *6 +) 16 6-
9 : ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)) &)&
''''' *- -4 4( 44 6( &*6 &+) &+& &+* &++ &+- &// &/6 &1) &1* &1/ &11
&1( &14 &16 &() &(* &(+ &(4 &6) &6& *)+ *)4 *&) *&6 **)
**6

$ " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4)
9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' () (4 4)
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' (6
: ( ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1- 11 (( (4 4*
''' *4 *6 -& /& 1+ 1- 1/ 11 1( 14 16 () (& (* (1 (( (4 (6 4) 4* 6*
6+ 6/ 61 &)+ &&( &&4 &4* &4+ *)*
# ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *4
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*4 *)/
; < " ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&*
; < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +1
9 ' *( *4 *6 +& -1 -( 6* &)* &)+ &&/ &&1 &-* &-/ &-1 &-( &-4 &-6 &/)
&/1 &11 *&- *&/ *&1
9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+) &++ &+- &(+ &6)
9 $ '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *- */
9 5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *-
9
! 05 0. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *6
9 < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &66
9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)( &&- &6& &6+
9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &4& &6& &6- &66
9 ! '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &4* &46 &6- &6(
9 9 : A '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 64 &&-
9 9 : A '''''''''''''''''''''''''''''''''' 64 &)& &)4 &)6 &&& &&-
9 '''''''''''''''''''''''''''''' 44 6* 66 &*+ &*( &*4 &+* &++ &+- &46 &6& *)/ *&)
9 : A ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)/ &)4 &&- &+& &+* &46
9 : 3 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)/ &+&
9 ? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 1+ *)*
9 2 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ((
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /( /4 44 &*4 &+6 *)6 *&)
? ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-/
'''''' *+ *- *1 *4 +) +& 6) 6& 6( 64 &)) &)1 &)6 &&) &&+ &&- &*& &*4
&+& &+* &-6 &46 &6- &6/ *)) *&6
" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/&
'' +) +& +* -( -6 /( /4 6) 64 &)) &)( &)4 &)6 &&) &&& &&* &&+
&+* &-6 &/) &/& &/* &/- &11 &16 &(4 &4& &4* &4+ &4- &4/ &41 &4(
&44 &6/
# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -( &/)
9
" '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &/&
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -( &-) &/& &/*
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6* 6- 66 &++ &+- &46
*+)

''' *+ *1 *4 +4 +6 -/ -6 /& /+ 4( 44 6) 6& 6* 66 &)* &)1 &)( &&+ &&-


&&/ &&6 &*) &*- &*1 &*( &*4 &*6 &+* &+- &+/ &-) &-1 &-4 &-6 &/) &11
&(4 &4& &46 &6- *)) *)/ *&) *&& *&/ *&1 *&6 **)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&)
0 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*-
''' /4 4( 44 6( &)) &)( &)4 &&) &&- &*& &*( &+& &+* &+1 &/& &46 *)/
*&)
< '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6& 6( 66
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)) &)* &)- &)/ &+* **) **&
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*)
'' +* +1 +6 -& /* // /4 1) 1* 1+ 1- 1/ 11 (( (4 (6 4& 4* 4( 64 &&+
&&6 &*- &-) &/- &4- *)+ *)-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*) *)+
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /* /6
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /*
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' /*
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *)4
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *1 -* -+ -/ &*)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*6 &++
. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &--
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' */ -) 4/
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4/
0
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-& &-6 *&&
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &*-
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4/
" ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-6
# '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -( &-* &-6 &/) &/*
. '''''' +) +& -( /( &)1 &)( &&) &&& &&+ &&/ &*+ &*- &*/ &-6 &/&
&/- &(4 &4& &4* &6+
9 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&+
. ''' +) -( 64 &)1 &)( &&) &&& &&* &&+ &&/ &*+ &*- &*6 &+* &-6
&/) &/& &/- &(4 &4& &4* &4/ &6+ &6/ &6(
. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &&+ &*- &*/
5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +* -) /( /6 6&
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
. < '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
. < A ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +&
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +*
9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +*
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +* *&6
9 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +*
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' +*
*+&

% '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -(
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+) &++ &+- &-* &/& &/* &6)
5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(*
5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)1 &)( &/) &6(
5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -1 /* &-& &-( &(& &(- &(6 &4) &6+
5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &(6 &4) &6+
5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)& &&- &*&
5 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &)- &)4 &&- &+*
5 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6( 64
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' -) /(
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *-
''''''''''''''''''''''''''''''''''''''''''''''' -4 /( /4 44 &&+ &-) &-& &4- &4( &6+ *&&
7 8 ' *6 +) -& /& 1& 1* 1+ 4) 4& 4* 4( 6- 66 &)* &)( &&) &&/ &&1 &&( &*)
&*& &+6 &-6 &/- &/6 &1- &1/ &14 &(* &(+ &(6 &4* *)6
3 4 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 4&
, " '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 6- 6/
, " " 0 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&)
# ( '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *&)
, '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-(
# 4 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &+1
, ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' *+ &/4
, < ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' &-& &-* &-/ &// *&* *&+