You are on page 1of 26

Đề thi HK1 2019-2020

https://courses.uit.edu.vn/pluginfile.php/328300/mod_resource/content/2/
DeThiLTHQTCSDL_DHCNTT_CuoiKy_HK1_2019-2020.pdf

Câu 1:
a. Dùng đồ thị chờ để đánh giá lịch S có xảy ra deadlock hay không?
● Xét đơn vị dữ liệu A
○ Cặp (1, 13): T1 → T2
● Xét đơn vị dữ liệu B
○ Cặp (5, 9): T3 → T2
● Xét đơn vị dữ liệu C
○ Cặp (3, 11): T2 → T1
○ Cặp (3, 15): T3 → T1

Đồ thị chờ có chu trình (T1 → T2, T2 → T1) nên lịch S xảy ra deadlock.
b. Nếu có deadlock, hãy đưa ra 1 giải pháp cụ thể để giải quyết deadlock. Cho biết
các giá trị của A, B, C, D ứng với giải pháp này sau khi kết thúc các Ti.
Chọn T1 để rollback
● T1 giải phóng khóa đang giữ trên C và trên D.
● T2 hoặc T3 sẽ được khóa trên C.
● Giả sử T2 xin được khóa trên C, T2 thực hiện xong và kết thúc, T2 giải
phóng khóa trên A, B và C.
● T3 xin được khóa trên B và C, thực hiện xong và kết thúc.
T1 sẽ được thực hiện lại ở 1 thời điểm nào đó và sẽ nhận được khóa trên A khi T2, T3
hoàn tất.
Lịch khả tuần tự theo thứ tự {T2, T3, T1}
● Sau khi T2 thực hiện, ta có: B=3, C=2
● Sau khi T3 thực hiện, ta có: C=4
● Sau khi T1 thực hiện, ta có: A=3
Kết luận: A=3, B=3, C=4, D=2
c. Hãy điều khiển việc truy xuất đồng thời của các giao tác dùng kỹ thuật timestamp
từng phần
STT T1 T2 T3 A B C D Ghi chú
TS=20 TS=10 TS=30 RT=0 RT=0 RT=0 RT=0
WT=0 WT=0 WT=0 WT=0

1 R(A) RT=10 WT(A)<=TS(T2)


WT=0 T2 đọc được A

2 R(C) RT=20 WT(C)<=TS(T1)


WT=0 T1 đọc được C

3 W(B) RT=0 RT(B)<=TS(T2)


WT=10 WT(B)<=TS(T2)
T2 ghi được B

4 R(D) RT=20 WT(D)<=TS(T1)


WT=0 T1 đọc được D

5 R(B) RT=30 WT(B)<=TS(T3)


WT=10 T3 đọc được B

6 W(C) RT(C)>TS(T2)
↓ T2 không ghi được C
Abort Rollback(T2)

7 W(A)

8 W(C)
Tại thời điểm 6, T2 bị Rollback, khởi tạo lại T2 với TS(T2) = 40

STT T1 T2 T3 A B C D Ghi chú


TS=20 TS=40 TS=30 RT=0 RT=0 RT=0 RT=0
WT=0 WT=0 WT=0 WT=0

1 R(C) RT=20 WT(C)<=TS(T1)


WT=0 T1 đọc được C

2 R(D) RT=20 WT(D)<=TS(T1)


WT=0 T1 đọc được D

3 R(B) RT=30 WT(B)<=TS(T3)


WT=0 T3 đọc được B

4 W(A) RT=0 RT(A)<=TS(T1)


WT=20 WT(A)<=TS(T1)
T1 ghi được A

5 W(C) RT=20 RT(C)<=TS(T3)


WT=30 WT(C)<=TS(T3)
T3 ghi được C

6 R(A) RT=40 WT(A)<=TS(T2)


WT=20 T2 đọc được A

7 W(B) RT=30 RT(B)<=TS(T2)


WT=40 WT(B)<=TS(T2)
T2 ghi được B

8 W(C) RT=20 RT(C)<=TS(T2)


WT=40 WT(C)<=TS(T2)
T2 ghi được C

Lịch S khả tuần tự theo thứ tự {T1, T3, T2}


Câu 2: Cho tập tin nhật ký sau:
<START T1>
<T1, A, 60>
<COMMIT T1>
<START T2>
<T2, A, 10>
<START CKPT (T2)>
<START T3>
<T3, B, 20>
<T2, C, 30>
<START T4>
<T3, D, 40>
<T4, F, 70>
<T2, E, 50>
<COMMIT T2>
<END CKPT>
<T4, B, 80>

Hãy mô tả tiến trình khôi phục của DBMS khi dùng phương pháp Undo logging
 <T4, B, 80>
○ T4 chưa kết thúc
○ Khôi phục B=80
● <END CKPT>
○ Những giao tác bắt đầu trước <start CKPT> đã hoàn tất
○ T1 và T2 đã hoàn tất
● <T4, F, 70>
○ Khôi phục F=70
● <T3, D, 40>
○ Khôi phục D=40
● <T3, B, 20>
○ Khôi phục B=30
● <START CKPT (T2)>
○ Dừng
Câu 3: (2.5 điểm)
Cho lược đồ quan hệ như sau:
TACGIA (MaTG, HoTen, DiaChi, NgSinh, SoDT)
SACH (MaSach, TenSach, TheLoai)
TACGIA_SACH (MaTG, MaSach)
PHATHANH (MaPH, MaSach, NgayPH, SoLuong, NhaXuatBan)

Hãy mô tả tiến trình tối ưu hóa câu truy vấn sau:


SELECT TG.MaTG, HoTen, SoDT
FROM TACGIA TG, SACH S, TACGIA_SACH TG_S, PHATHANH PH
WHERE TG.MaTG = TG_S.MaTG
AND S.MaSach = TG_S.MaSach
AND S.MaSach = PH.MaSach
AND TheLoai = “Truyện ngắn”
AND NhaXuatBan = “NXB Văn học”

 Cây biểu diễn biểu thức truy vấn ban đầu


 Cây biểu diễn biểu thức truy vấn sau khi tối ưu
 Câu truy vấn
SELECT TACGIA.MaTG, HoTen, SoDT
FROM
(SELECT TACGIA.MaTG, HoTen, SoDT, MaSach
FROM (SELECT MaTG, HoTen, SoDT FROM TACGIA)
JOIN
(SELECT MaTG, MaSach FROM TACGIA_SACH)
ON TACGIA.MaTG=TACGIA_SACH.MaTG)
JOIN
(SELECT SACH.MaSach
FROM (SELECT MaSach FROM PHATHANH WHERE NhaXuatban=”NXB Văn học”)
JOIN
(SELECT MaSach FROM SACH WHERE TheLoai=”Truyện ngắn”)
ON SACH.MaSach=PHATHANH.MaSach)
ON SACH.MaSach=TACGIA_SACH.MaSach
Đề thi HK1 2018-2019
https://courses.uit.edu.vn/pluginfile.php/328301/mod_resource/content/2/
DeThiLTHQTCSDL_DHCNTT_CuoiKy_HK1_2018-2019_De01_v3.pdf

Câu 1:

a) Dùng đồ thị chờ để đánh giá lịch S có xảy ra deadlock hay không? Giải thích. (1.0
điểm)
● Xét đơn vị dữ liệu A
○ Cặp (1, 8): T2 → T1
● Xét đơn vị dữ liệu B
● Cặp (3, 4): T4 → T1
○ Cặp (3, 6): T3 → T1
● Xét đơn vị dữ liệu C
○ Cặp (2, 7): T1 → T2
○ Cặp (2, 9): T3 → T2
● Xét đơn vị dữ liệu D
○ Cặp (5, 10): T3 → T4

Đồ thị chờ có chu trình (T1 → T2, T2 → T1) nên lịch S xảy ra deadlock.
b) Nếu có deadlock, hãy đưa ra 1 giải pháp cụ thể để tránh và 1 giải pháp để giải quyết.
(2.0 điểm)
Chọn T1 để rollback
● T1 giải phóng khóa đang giữ trên A và B.
● T2 sẽ được khóa trên A, T3 hoặc T4 sẽ được khóa trên B
● T2 thực hiện xong và kết thúc, T2 giải phóng khóa trên A và C, T1 hoặc T3
sẽ được khóa trên C
● Giả sử T4 xin được khóa trên B, T4 thực hiện xong và kết thúc, T4 giải
phóng khóa trên B và D.
● Giả sử T3 xin được khóa trên C, T3 có khóa trên B và D, T3 thực hiện xong
và kết thúc, T3 giải phóng khóa trên B, C và D
T1 sẽ được thực hiện lại ở 1 thời điểm nào đó và sẽ nhận được khóa trên C khi T2, T4,
T3 hoàn tất.
Lịch khả tuần tự theo thứ tự {T2, T4, T3, T1}

Giải pháp để tránh deadlock (wait-die)

Khi T2 bị rollback, T1 nhận được khóa trên C, thực hiện xong và kết thúc.
T2, T4, T3 thực hiện lại.
T2 nhận được khóa trên A. T4 nhận được khóa trên B.
T3 thực hiện lại, nhận được khóa trên B, C, D sau khi T4, T2 thực hiện xong và kết thúc.

Lịch S khả tuần tự theo thứ tự {T1, T4, T2, T3}


c. Hãy điều khiển việc truy xuất đồng thời của các giao tác dùng kỹ thuật timestamp từng phần.
S T1 T2 T3 T4 A B C D Ghi chú
T TS(T1)=10 TS(T2)=20 TS(T3)=40 TS(T4)=30 RT(A)=0 RT(B)=0 RT(C)=0 RT(D)=0
T WT(A)=0 WT(B)=0 WT(C)=0 WT(D)=0

1 R(A) RT(A)=10 WT(A)<=TS(T1)


WT(A)=0 T1 đọc được A

2 R(C) RT(C)=20 WT(C)<=TS(T2)


WT(C)=0 T2 đọc được C

3 W(B) RT(B)=0 RT(B)<=TS(T1)


WT(B)=10 WT(B)<=TS(T1)
T1 ghi được trên B

4 W(B) RT(B)=0 RT(B)<=TS(T4)


WT(B)=30 WT(B)<=TS(T4)
T4 ghi được trên B

5 W(D) RT(D)=0 RT(D)<=TS(T4)


WT(D)=30 WT(D)<=TS(T4)

6 R(B) RT(B)=40 WT(B)<=TS(T3)


WT(B)=30 T3 đọc được trên B

7 W(C) RT(C)>TS(T1)
↓ T1 không ghi được
Abort trên C
Rollback(T1)

8 W(A)

9 W(C)

10 R(D)

Tại thời điểm 7: RT(C)>TS(T1): hủy T1 và khởi tạo lại TS(T1) = 50


S T1 T2 T3 T4 A B C D Ghi chú
T TS(T1)=50 TS(T2)=20 TS(T3)=40 TS(T4)=30 RT(A)=0 RT(B)=0 RT(C)=0 RT(D)=0
T WT(A)=0 WT(B)=0 WT(C)=0 WT(D)=0

1 R(C) RT(C)=20 WT(C)<=TS(T2)


WT(C)=0 T2 đọc được C

2 W(B) RT(B)=0 RT(B)<=TS(T4)


WT(B)=30 WT(B)<=TS(T4)
T4 ghi được trên B

3 W(D) RT(D)=0 RT(D)<=TS(T4)


WT(D)=30 WT(D)<=TS(T4)
4 R(B) RT(B)=40 WT(B)<=TS(T3)
WT(B)=30 T3 đọc được trên B

5 W(A) RT(A)=0 RT(A)<=TS(T2)


WT(A)=20 WT(A)<=TS(T2)
T2 ghi được trên A

6 W(C) RT(C)=20 RT(C)<=TS(T3)


WT(C)=40 WT(C)<=TS(T3)
T3 ghi được trên C

7 R(D) RT(D)=40 WT(D)<=TS(T3)


WT(D)=30 T3 đọc được trên D

8 R(A) RT(A)=50 WT(A)<=TS(T1)


WT(A)=20 T1 đọc được A

9 W(B) RT(B)=40 RT(B)<=TS(T1)


WT(B)=50 WT(B)<=TS(T1)
T1 ghi được trên B

10 W(C) RT(C)=20 RT(C)<=TS(T1)


WT(C)=50 WT(C)<=TS(T1)
T1 ghi được trên C

Lịch S khả tuần tự theo thứ tự {T2, T4, T3, T1}

Câu 2:
Hãy mô tả tiến trình khôi phục của DBMS khi dùng phương pháp Undo/Redo logging.
● T1 đã hoàn thành trước <start CKPT>
○ Có thể đã được ghi xuống đĩa
○ Nếu chưa thì trước khi <end CKPT> cũng được ghi xuống đĩa
● Giá trị B=22 đã được ghi xuống đĩa
● Tìm thấy <end CKPT>
○ T1 không cần thực hiện lại
● Xét T2, T3 và T4
● <commit T2> (redo, sau)
○ Thực hiện lại T2 và ghi D=41, F=71
○ Không cần ghi B
● <commit T3>
○ Thực hiện lại T3 và ghi C=61, E=31
● T4 chưa kết thúc (undo, trước)
○ Khôi phục G=51
○ Khôi phục G=50

Câu 3:
 Cây biểu diễn biểu thức truy vấn ban đầu

 Cây biểu diễn biểu thức truy vấn sau khi tối ưu hóa
 Câu truy vấn

SELECT NHACSI.MaNS, TenNS, SoDT


FROM
(SELECT BAIHAT.MaBH
FROM (SELECT MaBH FROM BAIHAT WHERE TheLoai="Pop-ballad")
JOIN (SELECT MaBH FROM PHATHANH
WHERE HinhThuc="CD" AND SL>=15000)
ON BAIHAT.MaBH=PHATHANH.MaBH)
JOIN
(SELECT NHACSI.MaNS, TenNS, SoDT, MaBH
FROM (SELECT MaNS, MaBH FROM SANGTAC)
JOIN (SELECT MaNS, TenNS, SoDT FROM NHACSI
WHERE Year(NgSinh)<1975)
ON NHACSI.MaNS=SANGTAC.MaNS)
ON BAIHAT.MaBH JOIN SANGTAC.MaBH

Đề học kỳ 2 2019-2020

Câu 2
<START T1> <T2, E, 5>
<T1, A, 10> <COMMIT T2>
<START T2> --------- <T3, F, 1>
<T2, B, 5> <T4, G, 15>
<T1, C, 7> <END CKPT>
<START T3> <COMMIT T3>
<T3, D, 12> <START T5>
<COMMIT T1> <T5, H, 3>
<START CKPT (T2, T3)> <START CKPT (T4, T5)>
<START T4> <COMMIT T5>

Redo Logging
 T1 đã hoàn tất trước <start CKPT (T2, T3)>
o Có thể được ghi xuống đĩa
o Nếu chưa thì trước khi <end CKPT> cũng được ghi xuống đĩa
 Sau <start CKPT (T2, T3)>
o T2 thực thi và kết thúc
o T3 đang thực thi
o T4 bắt đầu thực thi
 Sau <end CKPT>
o T3 hoàn tất
o T4 chưa hoàn tất
 Sau <start CKPT (T4, T5)>
o T5 hoàn tất
o T4 đang thực thi
 Tìm thấy <end CKPT>
 Chỉ xét T2, T3, T5
 <commit T2>
o Thực hiện lại T2
 Ghi B=5, E=5
 <commit T3>
o Thực hiện lại T3
 Ghi D=12, F=1
 <commit T5>
o Thực hiện lại T5
 Ghi H=3

Đề thi HK2 2018-2019


https://courses.uit.edu.vn/pluginfile.php/330729/mod_resource/content/1/
DeThiLTHQTCSDL_DHCNTT_CuoiKy_HK2_2018-2019_v5_Duyet.pdf
Câu 1:
a) Dùng đồ thị chờ để đánh giá lịch S có xảy ra deadlock hay không? Giải thích. (1.0
điểm)

● Xét đơn vị dữ liệu A


○ Cặp (1,8): T4 → T1
● Xét đơn vị dữ liệu B
○ Cặp (2,6): T2 → T2
● Xét đơn vị dữ liệu C
○ Cặp (3,7): T2 → T1
● Xét đơn vị dữ liệu D
○ Cặp (4,9): T1 → T3

Đồ thị chờ có chu trình (T1T3, T3T2T1) nên lịch S xảy ra deadlock

b) Nếu có deadlock, hãy đưa ra 2 giải pháp cụ thể để giải quyết deadlock. (1.5 điểm)
Chọn T1 để rollback
● T1 giải phóng khóa đang giữ trên A và C.
● T4 sẽ được khóa trên A, T2 sẽ được khóa trên C.
Giải pháp 1: T4 xin được khóa trên A
● T4 thực hiện xong và kết thúc, giải phóng khóa trên E và A
● T2 thực hiện xong và kết thúc, giải phóng khóa trên B và C
● T3 xin được khóa trên B, thực hiện xong và kết thúc, giải phóng khóa trên D và B
T1 sẽ được thực hiện lại ở 1 thời điểm nào đó và sẽ nhận được khóa trên D khi T2, T3,
T4 hoàn tất.
Lịch khả tuần tự theo thứ tự {T4, T2, T3, T1}

Giải pháp 2: T2 xin được khóa trên C


 T2 thực hiện xong và kết thúc, giải phóng khóa trên B và C
 T4 thực hiện xong và kết thúc, giải phóng khóa trên E và A
 T3 xin được khóa trên B, thực hiện xong và kết thúc, giải phóng khóa trên D và B
T1 sẽ được thực hiện lại ở 1 thời điểm nào đó và sẽ nhận được khóa trên D khi T2, T4,
T3 hoàn tất.
Lịch khả tuần tự theo thứ tự {T2, T4, T3, T1}
c) Hãy điều khiển việc truy xuất đồng thời của các giao tác dùng kỹ thuật timestamp từng phần.

S T1 T2 T3 T4 A B C D E Ghi chú
T TS=10 TS=20 TS=30 TS=40 RT=0 RT=0 RT=0 RT=0 RT=0
T WT=0 WT=0 WT=0 WT=0 WT=0

1 R(A) RT=10 WT(A)<=TS(T1)


WT=0 T1 đọc được A

2 R(B) RT=20 WT(B)<=TS(T2)


WT=0 T2 đọc được B

3 W(C) RT=0 RT(C)<=TS(T1)


WT=10 WT(C)<=TS(T1)
T1 ghi được C

4 R(D) RT=30 WT(D)<=TS(T3)


WT=0 T3 đọc được D

5 R(E) RT=40 WT(E)<=TS(T4)


WT=0 T4 đọc được E

6 W(B) RT=20 RT(B)<=TS(T3)


WT=30 WT(B)<=TS(T3)
T3 ghi được B

7 W(C) RT=0 RT(C)<=TS(T2)


WT=20 WT(C)<=TS(T2)
T2 ghi được C

8 W(A) RT=10 RT(A)<=TS(T4)


WT=40 WT(A)<=TS(T4)
T4 ghi được A

9 W(D) RT(D)>TS(T1)
 T1 không ghi được trên D
Rollback Rollback(T1)
Tại thời điểm 9, T1 bị Rollback, khởi tạo lại T1 với TS(T1)=50

S T1 T2 T3 T4 A B C D E Ghi chú
T TS=50 TS=20 TS=30 TS=40 RT=0 RT=0 RT=0 RT=0 RT=0
T WT=0 WT=0 WT=0 WT=0 WT=0

1 R(B) RT=20 WT(B)<=TS(T2)


WT=0 T2 đọc được B

2 R(D) RT=30 WT(D)<=TS(T3)


WT=0 T3 đọc được D

3 R(E) RT=40 WT(E)<=TS(T4)


WT=0 T4 đọc được E

4 W(B) RT=20 RT(B)<=TS(T3)


WT=30 WT(B)<=TS(T3)
T3 ghi được B

5 W(C) RT=0 RT(C)<=TS(T2)


WT=20 WT(C)<=TS(T2)
T2 ghi được C

6 W(A) RT=0 RT(A)<=TS(T4)


WT=40 WT(A)<=TS(T4)
T4 ghi được A

7 R(A) RT=50 WT(A)<=TS(T1)


WT=40 T1 đọc được A

8 W(C) RT=0 RT(C)<=TS(T1)


WT=20 WT(C)<=TS(T1)
T1 ghi được C

9 W(D) RT=30 RT(D)<=TS(T1)


WT=50 WT(D)<=TS(T1)
T1 ghi được trên D

Lịch S khả tuần tự theo thứ tự {T2, T3, T4, T1}


Câu 2:

<START S>
<S, A, 60>
<COMMIT S>
<START T> ----
<T, A, 10>
<start CKPT T>
<START U>
<U, B, 20>
<T, C, 30>
<START V>
<U, D, 40>
<V, F, 70>
---------------------
<COMMIT U>
<T, E, 50>
<COMMIT T>
<end CKPT>
<V, B, 80>
<COMMIT V>
a. Giả sử đặt một điểm lưu trữ (nonquiescent checkpoint) sau bước <T, A, 10> thì mẫu tin
<END CKPT> có thể được ghi xuống bộ nhớ sau bước <commit T>
b. Dùng nhật ký của câu (a): giả sử rằng một sự cố xảy ra ngay sau bước <V, F, 70> thì
tiến trình khôi phục của DBMS như thế nào khi dùng phương pháp Undo-Logging?
 <V, F, 70>
o V chưa kết thúc
o Khôi phục F=70
 <U, D, 40>
o U chưa kết thúc
o Khôi phục D=40
 <T, C, 30>
o T bắt đầu trước <start CKPT> và chưa kết thúc
o Khôi phục C=30
 <U, B, 20>
o Khôi phục B=20
 <T, A, 10>
o Khôi phục A =10
 <start T>
o Dừng

c. Dùng phương pháp Redo-Logging cho nhật ký NKĐB trên: Giả sử đặt một điểm
lưu trữ (nonquiescent checkpoint) sau bước <T, E, 50> thì mẫu tin <END CKPT>
có thể được ghi xuống bộ nhớ sau <start CKPT> và trước <commit T>
<START S>
<S, A, 60>
<COMMIT S>
<START T>
<T, A, 10>
<START U>
<U, B, 20>
<T, C, 30>
<START V>
<U, D, 40>
<V, F, 70>
<COMMIT U>
<T, E, 50>
<start CKPT(T, V)>
<end CKPT>
<COMMIT T>
<V, B, 80>
<COMMIT V>
-------------
d. Dùng nhật ký của câu (c): giả sử rằng một sự cố xảy ra ở cuối tập tin nhật ký (ngay
sau bước <COMMIT V>) thì tiến trình khôi phục của DBMS như thế nào khi
dùng phương pháp Redo-Logging?
 S và U đã hoàn tất trước <start CKPT>
o Có thể đã được ghi xuống đĩa
o Nếu chưa thì trước khi <end CKPT> cũng được ghi xuống đĩa
 <commit T>
o Thực hiện lại T, ghi A=10, C=30, E=50
 <commit V>
o Thực hiện lại V, ghi F=70, V=80

Câu 3:
 Cây biểu diễn biểu thức truy vấn ban đầu
 Cây biểu diễn biểu thức truy vấn sau khi tối ưu

 Câu truy vấn

SELECT HOCVIEN.MaHV, HoTen, SDT


FROM
(SELECT MaHV
FROM (SELECT MaHV, MaLop FROM THAMGIAHOC WHERE Diem<5)
JOIN (SELECT MaLop
FROM (SELECT MaHV, MaLop FROM LOP
WHERE TrinhDo="Master")
JOIN (SELECT MaKH FROM KHOAHOC
WHERE TenKH="UML" AND BatDau="15/07/2019)
ON LOP.MaKH=KHOAHOC.MaKH)
ON THAMGIAHOC.MaLop=LOP.MaLop)
JOIN (SELECT MaHV, HoTen, SDT FROM HOCVIEN)
ON HOCVIEN.MaHV=THAMGIAHOC.MaHV
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

You might also like