Advanced Topics on Classes

!
"
"
# $
!
"
# $
&
&
&
&
0
'
*+
*+
*+
(
1
$
,(
#(
(
'
'
'
#
(
!
,-
!! "
"
!
-
-
" "
3(
# $#
+
)
)
8
'
4
4
-
)
)
)
&
)
5 )
!!
!!
5
)
&
!!
!!
!!
)
6
6
6
)
5
)
)
6
-
) '
0*
8
&
&
/
&
0$
)
-
(
%2
%2
# $
01 !! >
-
&
02
'
;
) '
)
#
&
#
%
$
$
!! >
&
$
&
)
4
)
.
)
$(
&
' &
)
&
/
.
)
4
!!
&
5 )
!!
!!
!!
'
00
3
%#&9
!! :
!!
'
!! ) '
!!
!!
!!
)
'
/
)
)
0% !! >
6
!
9
)#
$* !!
$%
5
5 '
)
//
5
9
6
-
$0
&
4
"
#
-
3
/
!!
(
*
%
0
$
1
2
(
( +
7
) '
7
3
'
!!
"
)
!! 4
)
1 "
%#
'
)
-
-
4
%#
2
/
-
#
)
,
4
!! "
!!
+
)
5
&
) '
3
)
)
)
)
(
*
%
0
$
1
2
0 -
(
((
(*
(%
(0
($
(1
(2
*
*
*
*(
**
*%
*0
*$
*1
*2
%
%
%
%(
%*
%%
%0
%$
%1
%2
0
0
0
0(
!
%#&
'
'
, -%./
, -%./
!!
/
'& "
# $#
!!
( !!
* + ' ) '
% +) '
0
$
1
2
-
"/
(
&
*
+,
. "
"
!
"
'& "
-,
-,
-,
+
2
!
"
)
(
.
/
%
%
%
)
!
$$
77
$1
77
&
7
= 9 9
7
99
= 9 9
77 9 91
77 &
99
"
4
77
$2
!! 4
)
&
&
!! 4
)
1
&
/
& 83
3
1
*
= &
1
!!
5
)
)
) '
4
)
//
)
!!
&
44
?
)
1(
&
3
!! 4
)
&
<< & 7
83
&
<<
7 0
=
)
4
) 3
)
83
<<
7 0
=
1*
77
1%
77
7
= 9 9
99
77
10
77
) 7
= 9 9
99
77
1$
77
11
&
&
33
7
=
= 9
9
&
@
9 ? 9
77 9 9
77 9 9
)
": ) );
-
,
2
4 ,5
12
2
2
2
2(
2*
2%
20
2$
21
22
!! "
!!
!!
+
# $#
'
#
'
9
B
<
&
=
#
%#&9
6 2
B C D
B C D #
#
(
*
%
0
$
1
2
$.
A
6
)
0
*%
/
!!
!!
!!
!!
1
/
B C D #
#
#
#
!!
4
!!
!!
!!
5
)
)
(
A
A
- E-F "DG: ,HG
6
!!
/
6
. "
7
)
(
5 $
" "
-
HEI-:
6
# M
: 00
3
)
6
!! "
!! D
( !!
* +
%
0
$
1
2
" "
/
J
J &
4
J
)
"
-
" "
)
&
"-
#
J
)
<J
J
)
.-
)J
<J
)
-
" "
&
" "
>
)
"" 6
B
# $#
'
$.
#
'
)
?
;
)
6
7
;
5
(*
,
%
77 9E '
(0
($
9
#
6 2
(1
)
)
)
'
(2
A 3
*
,
)),
ANN
77 9 '
*
3
N3
A 7 (
# )),
*
3
)
)
@
(%
#
8
,
(
*
%
0
$
1
2
J
J
J
6
$ /
,
6
%
: 00
J
,
"
,
,
6
2 "
:
###
"
$. #
) '
$. #
*
'
J
:
K
'
) L'
$. #
J & J
'
J
:
K
'
%#
M
# M #
&
"
9 77 A N
77 9
9
#
*(
**
*%
*0
!!
!! :
,
'
E '
'
'
'
,
,
!!
(
*
% !! ?
) ,
0
$
1
2
(
(
(
((
)
;
$
$
:-
)
77 9
77 9
"
3 ;
) $
77
)
!! "
# $#*
)
!!
2 "
!
!
9
&
#
) '
* + ' ) '
- ./
% +) '
- ./
)
)
#
2
$
1
-
-
'
0
!
. "
2
" "
#&
'
( !!
2
3 %
3 %
3 %
3 %
%
)
"
" "
3 9 77
3 9 77
2
3
%
'
3
&
3
3
3
(
2
1 " "
3
)
!
3
)
:
!
;
3
!!
O
!!
(
&
) )
!!
6
*
) 5
!!
6(
%
5
!!
2
!! ) '
)
'
)
&!) 5!5
)
'
)
&
5 5
0
$
!!
1
5 '
&
2
+
) '
C
5
) 5 '
&
) 5
!! "
# $#*
( !!
)
#
'
* +
)
+
) '
7
'
#
8
%
0
)
$
)
3
$
)
1
2 +
)
9)
#&9
(
(
!! :
(
!!
:
'
'
5 '
(( !!
'
&
C
&
5
'
) 5#
(*
)5
5
(%
'
(0
8
<<
73
!!
)
&
&
& 3
($
(1
(2
& 3
77 9
*
& 9 77
77 9
)# 4
&
#L 9
5
2
*
*
*(
5
**
) 5 3
3 5
!!
&
C
5
)5
&
)
!!
)
)
&
$
) 5
$
*%
*0
77 9
A
'
)
9
!!
*$
77
*1
B
&
)
*2
%
1* !! "
# $#*
5 #&
1% !!
'
10 !!
&
'
7
-
5
) '
#
)
5 #
1$ + ' ) ' - ?TU ./
11 +) '
3
- ?TU ./
$
%
%
%(
%*
%%
%0
%$
%1
%2
0
0
0
0(
0*
0%
00
0$
01
02
$
$
$
$(
$*
$%
$0
$$
$1
$2
1
1
1
1(
!! ?
)
A
77
!!
+
)
9)
#&9
) )
77 9
77
!! D
!!
!! ,
-
2
5
2(
2*
-
5
2%
20
&
V
&
V
2
)
O-
5
!!
) )
'
)
)
2$
21
&
22
&
'
G
G
P
P
2 "
!
*+
) '
6
(
*
%
0
$
1
2
(
(
(
((
(*
(%
(0
-
($
(1
<
) -
'
) 5
$
$)
1
77 9
&P ( Q 3
(
(
(
<<
5
# $#*
'
) 7
5
@
:&
(
& Q
C '
5
5 77 9
)# 4
) 5
#L 9
'
)
8
'
-
5
#
3
7
9
9)
5
&
V'
&
&
&
) 5
5
& &) 5 &5
&
5 '
& 3
& 3
5 '
G
P
5
& 3
& 3
5
G
P
G
'
% =
'
& Q 3 JL J
"
6
&
&
77
&
G
77 9
9 77 '
G
77 9L /
)
9
-
#
*
77 9
*(
&
**
E
& )
4
9
-
$
$
&
&
&
'
2
*
-
& Q 3 JL J
A
77 J J 77
G
9
77
A
B
)
%1
)
)
=
&
A
#
8
3
)
,-
?
A
*%
-
-
5
%2
)
9
5 #&9
B
5#&
""
0
-"
!
"
$
)
0
!
$
$
$. *#
7
%$
0 +
!
#
77
5
+
*
)
% =
G
'
7
,
'
&
G
5
G
5
5
&5
)
& 7
G
& 7
77 977 '
# $#*
'
-
V
) 5
&) 5
%0
*
$
8
5 #&9
#&9
-
)
(
)
&
%( !! "
5
S3
&
&
!!
(
&P
A
5 #
) '
8
)
)
'
(
5 73 ) 5 ?
5 9 77
C
) 5
) 5 ?
(
(
(
!!
5
9
=
5
5
& 33
<<
!! "
5 33 2 <<
@ *
33
RR
@ * 33
<< 5
5
)
)
)
)
'
#
5
C
5
5
%% +
)
#&
*
2*2
(
2
#
0(
0*
*0
-
5
9E
9
9I
9
$
(
211
0%
*$ !!
*1 -
'
%* !!
5
(2
*
&
5
&
5 8
!!
&
(
)
! &
&
&
'
)
5 '
)
&
% !! "
0 !!
$+
1
2
% Q
(
A
'
2
% Q
5
)
(
+
(+
*+
%
0$
1
2
2
&!) 5!5
O
12
2
'
& 77 J!J 77 ) 5 77 J!J 77 5
) )
5
O-
'
)
(
*2
%
77 9-
%
77
5
G
00
)
5
A
77 9
)
9 77 '
9
G
77
)
-
$
$
0$
77 JL J
#
01
02
77 9L
$
)
$
77
*
B
(%
22*
!!
&
)
L 9
)
)
$
%
$(
+
A
A
-
'
'
5
I
/
)
E
(!
! 211
E
& )
B
& *
5 (%
A
)# 4
)# 4
A
-
)
)
E
A
)
A
)
)
5
A
A
&
#
)
) 5
'
'
'
'
?
$! *! 2*2
&
)
$! *! 2*2
(! ! 211
I
)
I
)
)
%
)
#
#
! ! 22*
E
(! ! 211
$! *! 2*2
4
'
$
!
C
9
'
9
-
)
:
(
*
:
H
'
:
)
77 9
(
W
(
#M
1
((
:
:
'
!!
&
B
9
+
)
,
#
(*
%
(%
#M
#M
'
'
W '
) '
%
1
$
:
#
W '
:
:
)
;
)
) :
)
'
)
W
:
<
!! '
M 3
!!
77 M 77
M
)
!!
6 :
!! )
"
W
W
)
) )
) '5
)
W :
)
)
<
'
' :
) '
' :
" "
:
-
2
!!
W
$
'
)
' :
(
*
%
0
$
1
2
(
) '
'
'
8
#M 3
D
H
W '
M B
B
)
$. %#
)
%
0
$
1 !! :
2 !!
)
)
-
) '
:
:
M
-
A
""
: E '
)
) E;
:
'
) E E '
'
) :;
'
)
)
'
5"
'
)
'
# $#%
)
) 7
" "
-
'
$
1 !!
2
) -
-
4
4
) (
)
'
)
)" "
'
)
'
'
2
!! "
!! "
( +
*
%
0
4
) -
'
! ! 22*
9
'
@
#
:
77 9
#
#M
!! " # $#0 '
!! G 6'
)!
( !!
)
* +
) 7
%
0
)
$
)
)
1
2 !!
) ' ) :
:
:
(
*
%
0
$
1 !! "
2 !!
)
$. 0#
6
'
8
9
5
'
#
% 2
5 $
4
M 3
77 M 77
M
W
'
'
#
)
)
!!
)
)
!!
!! )
) '5
)
'
4
#M 3
(
*
%
0
$
1
2
(
(
'
W
:
' :
' :
)
#
<
!! -FFHF
J:
MJ
4
W
"
E
:
4
W
(
!!
4
W
'
)
5
:
"
L
-
7
###
$. 0#
CL
L
& (L M
: *1 JMJ
J:
J
L
CL
L
&
"
$. 0#
%
M
# M #
# M
6
L:& $L"
(L M
)
$. 0L"
$. 0#
)
8
!
)
%
L:& $L"
$. 0L
' JMJ
$
B
'&
9
"
!
"
4
6
"
"
# $
%
&
&
#
!
$
!
-"
" "
" "
&
" "
" "
-
$
6
-
6
5
-
-
-
!
&
-
5
&
V
2
-
" "
!
5
-
-
-
5
5
V
2
-
!
5
<
!
'& "
C
"
-
# $
$
=
%
!
&
" "
" "
C
" "
C-
#
-
'& ! ;
"
!
!! "
!! D
( +
*
%
0
$
1
2
# $#$
&
) 7
)
)
'
&
"-
'& -
$. $#
A
#
"
4
V &
4
4
) (
:
) (
-
"
-
"
) (
4
) (
+@
#
&
V &
M 3
68M 3
#M 3
%
#
)
3
!! ) '
6
"
"
-
M
M 3
)
!!
!!
77 9
77 9L
77 9L
(
*
%
0
$
1
2
(
(
(
#
/
&
)
;
?
'
8
)
(
*
%
0
$
1
2
4
!
#
#
-
:
#
#
%
/
/
#
'& -
-
V &
#
V &
C-
!
#M
-
$
" "
. "
M
68M
V &
2
# $
'& "
&
"
&
V &
M 3 9 77 M
68M 3 9 77
#M 3 9 77
) V &
& 68M
V &
K
#M 77
,H A
H A
V
M)&
$ 68
)
MV F
& #M
:;
#
7
!! "
!! :
(
*
%
0
$
1
2
# $#1
)
!!
!!
+ ' ) '
+) '
0#&
'
'
#
'
, -0./
, -0./
) '
3
!!
(
*
%
0
$
1
2
)
0#
3
3
!! ) '
'
<
<
<
<
!!
/
4
!!
)
'
4
)
)
&
&
!!
!!
!!
)
6
6
6
)
<6 !
%
!
)
5 )
!!
!!
5
)
&
9)
5 )
!!
!!
!!
)
)
)
!!
&
!!
!!
!!
'
/
4
(
*
%
0
$
1
2
(
(
(
(( +
+
#
)
)
5
)
(
%2
%2
) '
0% !! 4
00
<
0$
01
02
$
$
$
$( !! 4
$*
<
$%
$0
$$
$1
$2
1
1 !! >
1
1(
1* !! >
1%
10
1$ !! >
&
++
3
83
V &
<<
7 0
=
!!
&
4
0 -
)
83
V &
!! "
!!
+
# $#1
'
) 7
+
)
<<
7 0
!!
V &
-
)
&
)
4
)
5
)
5 '
'
'
;
)
) '
#
#
#
&
!! 4
&
' &
)
<
&
/
&
4
)
V &
!! 4
&
)
/
3
&
& 83
<< & 7
V &
2%
20
2$ !!
21
)
22
V &
-
&
<
&
)#
0 -
!!
*
= &
!!
)
+5
5
) ) '
4
)
//
# $#1
)
& &
) 7
'
44
?
)
77
&
33
RR &
77 9 9 77
7
77 9 9 77
) 7
77
&
7
= 9
9
33
= 9 9
= 9 9
9 ? 9
=
99
99
$. 1#
'
&
@
77
77
77
77
&
77
)
7
//
7
= 9 9
99
77 &
= 9 9
99
77
)
9
(
*
%
0
77 9 9
77777777777777777777777777
3
$
)
4
-
&
)
)
6
!
&
8
)
9
0#&9
2
%
-
-
4
-
#
/
77 9
1
#
#
(
5
#
5
$
0#&9
&
(+
*
%
0
$
1
2
&
&
$
#
&
/
11
12
2 !!
2
)
2
2(
2*
'
3
9
)
)
&
+
) '
8
!! :
!! :
!!
'
(
*
% !! "
0 !! :
$ !! B
1+
2
=
#
)
)
)
) 3
(*
(%
(0
($
(1
(2
*
*
*
*(
**
*%
*0
*$
*1
*2
%
%
%
%(
%*
%%
%0
%$
%1
%2
0
0
0
0(
0*
77 9L 4
4
)
5
)
)
#
4
)
#
9
)
-
2
)
4
) ") )
!
4
)
)
$ -
#
-
9
77 9L L G B
)
#
)
#
9
4
)
)
+7
+8
1
2
" "
(
%
4
G B
)
5
)
)
1 (
0 (
)
?
1
%
?
#
!
9 "
'
!
$
$
-
.
" A
!
"
)
'&
G
2
: !
;
&
)
8
+<
+=
-
4
%
-
" "
!
-
6
2
-
-
:
F
" "
!
" "
-
" "
-
# $#2
-
5
"
"
:
5 #&
+?
5
( + ' ) ' - ?THU ./
* +) '
- ?THU ./
%
-
0
5
,
$
1
-
2
O-
5
&
&
V
!!
'
!! )
V
"
&
V
T
!!
(
V
5
&
G
!!
G
2
'
!!
'
*
:
!!
+
A
)
%
" "
0
$
&
V'
1
&
V
-
G
G
2
!!
)
!!
'
A
)
(
* +
%$
%1
%2
0
0
0
0(
0*
0%
00
0$
01
02
$
$
$
$(
$*
$%
$0
$$
$1
$2
1
1
1
1(
1*
1%
10
1$
) '
77 95
77 J J 77
!!
-
'
G
)
5
O-
!! F
&
)5
'
V-
!! :
!!
!! )
G
77
!!
!!
5
'
)
5
G
)
5
)
5
) '
)
9 77 '
"
$
5
5
5
5
G
5
&
# :
)
G
" "
3
)
5
'
)
) '
) '5
'
)
'
V-
5
'
)
G
# :
)
T
-
%
0
$
1
2
(
(
(
((
(*
(%
(0
($
(1
(2
*
*
*
*(
**
*%
*0
*$
*1
*2
%
%
%
%(
%*
%%
%0
!! "
!!
+
11
12
2
2
2
2(
2*
2%
20
2$
21
22
!! "
!!
+
(
*
%
0
$
1
2
#
G
!! F
!! :
!!
!! )
9 77 '
)#9 77
'
'
'
&
9
5
77 9O5
77 J J 77
PQ '
G
PQ
G
!! )
)
)
66
77
# $#2
'
) 7
':
)
5
)
) '
)
) '5
'
")
"
#
(
*
%
0
$
1
5 #
) '
+
+
+
)
)
)
!!
!!
&
)5
&
5
A
5
)
)
5
-
5
3
'
'
G
3
5
NN
)
B
G
G
)
9
&9
'
&
B
G
G
& P
S3
'
V'
&
'
!!
& P
S3
'
N
N
V
Q
5
)
5
"
5
5
5
:
-
-
5
5
V
V
77 9G
77
?
77
77
77
77
77
77
)
?
?
"
&
:
6
;
B
5 #&9
'
5
?
?
68
5
'
77
:
3
3
'
:
B B -
5
5
5
9L L 5
9
? 68
"
G
9 9 77
? 68
T
9L 5
9
? 68
"
G
9 9 77
? 68
T
)
94
9F
-!!
'
?
5
9 9E C
9G 9I
'
%
:9
68
5
$ -
:
9
'9
'
5
$ A
'
9
G
G
-
5
'
4
E C
-
5
'
F
I
-
5
4
E C
-
5
F
I
)#
)#
77 9L L 9
?
!!
5
?
!!
5
3
)
!
5
"-
G
77 9G
77 -
-
)
"
)
" "
3
$
Q
!!
$. 2#
&
8
" "
-
5
A
'
7
)
)-
)#
5
&
!!
# $#2
+
'
'
:
)
G
6
;
)
&
&
'
: ,-
$
3
5
!! :
!! '
!! & '
5
3
" "
:
)
8
8
5 #&9
;
'
5
-
5
-
-
)
7
7
9
!! ,
-
5@
'
8
)
)
5
G
5
&
&
&
"
!!
-
&
!
4
!! "
4
;
5
O-
5
) '
4
E C
O-
5
) '
F
I
3
<
2
5+
77 9G
'
77 -
5
5
'
:
)
77
'
55
(
)
)
#
"
(
A
*
G
G
5
5
-
5
5
OOG
&
9
'
5
'
5
'
'
'
'
4
F
E C
I
2
'& "
%
)#
)#
) '
) '
5
4
F
E C
I
'
"
A
/
(
:
H 6
2
HC
#
E C
I
5
5
'
4
F
)
"
"
- -
"
: ; "
6 - :H C ;
$
- -
;
"
- A "
"
"
$
: (4 ;
)
.
$
!
"
'
2II
-"
&
-
%
-
$
57
&
*+
(
""
2 -
,(
" A
'
58
-,
&
(4
*+
%
-
.
#(
A
-
. &")
-
-,
2II
2II
%-
'
$
"
"
"
"
"
"
9% 3 %
"
-3 - A $
&
)
"
""
"
:2
*J;
"
5<
&
*+
/
(
'
5=
-,
K- -
0
2
HA $
:
;
2
CC LC
!
-
"
' ,- -
"
,- -
"
"
A
'& "
/
A ,- -
( ,- 0 "
"
K- 2
"
" ,- -
"
"
"
!
"
!
"
(4
"
"
,- - " "
-
- -
A
:
;
-
&
&
"
:
"
";
2
G
'
(
A$
"-
"
-
A" A
$ M
N
"
-
=