Nghiên cứu công nghệ mã vạch hai chiều và đề xuất dự án ứng dụng nghiệp vụ nhập điểm tại đại học quốc gia hà nội - Pdf 30


ĐẠI HỌC QUỐC GIA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN

PHẠM THỊ LAM

NGHIÊN CỨU CÔNG NGHỆ MÃ VẠCH HAI CHIỀU
VÀ ĐỀ XUẤT DỰ ÁN ỨNG DỤNG NGHIỆP VỤ NHẬP ĐIỂM
TẠI ĐẠI HỌC QUỐC GIA HÀ NỘI
NGHIÊN CỨU CÔNG NGHỆ MÃ VẠCH HAI CHIỀU
VÀ ĐỀ XUẤT DỰ ÁN ỨNG DỤNG NGHIỆP VỤ NHẬP ĐIỂM
TẠI ĐẠI HỌC QUỐC GIA HÀ NỘI

Ngành: Công nghệ thông tin
Chuyên ngành: Quản lý Hệ thống thông tin
Mã số: Chuyên ngành đào tạo thí điểm LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. LÊ QUANG MINH Hà Nội - 2015



Trang 4
LỜI CẢM ƠN
Trước tiên, tôi xin được gửi lời cảm ơn đến tất cả quý thầy cô đã giảng dạy
trong chương trình thạc sĩ chuyên ngành Quản lý Hệ thống thông tin - Viện Công nghệ
Thông tin - Đại học Quốc gia Hà Nội, những người đã truyền đạt cho tôi những kiến
thức hữu ích về Công nghệ thông tin làm cơ sở cho tôi thực hiện tốt luận văn này.
Tôi xin trân trọng cảm ơn TS. Lê Quang Minh đã tận tình hướng dẫn cho tôi
trong thời gian thực hiện luận văn. Mặc dù, trong quá trình thực hiện luận văn có giai
đoạn không được thuận lợi nhưng những gì TS đã hướng dẫn, đã chỉ bảo cho tôi nhiều
kinh nghiệm trong thời gian thực hiện đề tài.
Tôi cũng xin gửi lời cảm ơn đến Trung tâm ứng dụng Công nghệ thông tin đã
tận tình giúp đỡ trong quá trình thu thập dữ liệu và thông tin của luận văn.
Sau cùng tôi xin gửi lời biết ơn sâu sắc đến gia đình đã luôn tạo điều kiện tốt
nhất cho tôi trong suốt quá trình học cũng như thực hiện luận văn.
Do thời gian có hạn và kinh nghiệm nghiên cứu khoa học chưa nhiều nên luận
văn còn nhiều thiếu sót, rất mong nhận được ý kiến góp ý của Thầy/Cô và các anh chị
học viên.
Hà Nội, tháng 12 năm 2014.
Học viên Phạm Thị Lam



1.3 Ứng dụng của mã vạch. 14

CHƯƠNG 2: CÔNG NGHỆ MÃ VẠCH HAI CHIỀU 17

2.1 Công nghệ mã vạch hai chiều PDF417: 17

2.1.1 Cấu trúc mỗi hàng PDF417 gồm có: 17

2.1.2 Cấu trúc mỗi cột của mã vạch hai chiều PDF417 19

2.1.3

Codeword: 19

2.1.4

Mã hóa 19

2.2 Ứng dụng mã vạch hai chiều PDF417 trong nghiệp vụ nhập điểm. 25

2.2.1 Khả năng lưu trữ thông tin: 26

2.2.2 Khả năng sửa lỗi: 26

2.2.3 Lưu thông tin số trên giấy: 26

2.3 Quy trình nghiệp vụ nhập điểm ứng dụng công mã vạch hai chiều
PDF417. 27


3.1.9 Thời gian thực hiện 33

3.1.10 Dự kiến hiệu quả đạt được 33

3.2 Sự cần thiết phải đầu tư 34

3.2.1 Hiện trạng tin học hóa tại ĐHQGHN 34

3.2.2 Sự cần thiết phải sử dụng phần mềm nhập điểm 38

3.3 Thuyết minh giải pháp kỹ thuật công nghệ đề xuất 41

3.3.1 Mô hình tổng quan hệ thống 42

3.3.2 Yêu cầu đối với nền tảng phần mềm 43

3.3.3 Yêu cầu chức năng đối với phần mềm 43

3.3.3.1 Khả năng liên kết 46

3.3.3.2 Tích hợp mở rộng 46

3.3.3.3 Yêu cầu về mỹ thuật, kỹ thuật cần đạt được của các giao diện 47

3.3.3.4 Các yêu cầu cần đáp ứng về thời gian xử lý, độ phức tạp xử lý của các
chức năng phần mềm 47

3.3.3.5 Các yêu cầu về phân quyền 47

3.3.4 Các yêu cầu phi chức năng khác 47


3.7.2 Lịch trình thực hiện 57

3.7.3 Quản lý tổng thể dự án 58

3.7.3.1 Các chủ thể. 58

3.7.3.2 Quan hệ giữa các chủ thể. 58

3.7.4 Mua sắm đấu thầu 60

3.7.5 Kế hoạch hoạt động khoa học công nghệ 60

3.7.6 Hoạt động đào tạo 60

3.7.7 Quản lý tài chính 60

3.7.8 Giám sát, đánh giá, tổng kết 61

3.7.9 Tổ chức vận hành và khai thác 61

3.8 Tính bền vững của dự án 61

3.9 Hiệu quả và tác động của dự án. 61

KẾT LUẬN VÀ KIẾN NGHỊ 62

TÀI LIỆU THAM KHẢO 63

PHỤ LỤC 64

WEB Một dạng thức thông tin trên Internet theo đó các trang tin gọi là trang
web, chúng không chỉ chứa chính thông tin văn bản mà chứa cả các liên
kết tới các trang Web khác hay các dịch vụ hoặc các kịch bản tương tác
của con người với hệ thống.
XML Extended Makup Language, một định dạng là sự phát triển kế tiếp của
HTML cho phép tự định nghĩa các ứng xử của các thẻ.
Trang 9
MỞ ĐẦU
Công nghệ thông tin được xem là một ngành mũi nhọn của các quốc gia, đặc
biệt là các quốc gia đang phát triển, như nước ta hiện nay. Sự bùng nổ thông tin và sự
phát triển mạnh của công nghệ kỹ thuật số, yêu cầu phải tin học hoá tất cả các ngành,
các lĩnh vực. Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần
mềm ngày càng hoàn thiện hơn và hỗ trợ hiệu quả cho con người. Các phần mềm hiện
nay đã mô phỏng được rất nhiều nghiệp vụ khó, hỗ trợ cho người dùng thuận tiện sử
dụng, thời gian xử lý nhanh, và một số nghiệp vụ được tự động hoá cao. Do vậy, đòi
hỏi đối với triển khai, phát triển phần mềm không chỉ là sự chính xác, xử lý được
nhiều nghiệp vụ thực tế mà còn phải đáp ứng các yêu cầu khác như về tốc độ, giao
diện thân thiện, mô hình hoá được thực tế vào máy tính để người sử dụng tiện lợi,
tương thích cao, bảo mật cao… Các phần mềm ra đời giúp tiết kiệm một lượng lớn
thời gian, công sức của con người, tăng độ chính xác và hiệu quả trong công việc.
Trong các trường đại học thì việc quản lý đào tạo đòi hỏi mất nhiều công sức và
thời gian. Đại học Quốc gia Hà nội đã có phần mềm quản lý đào tạo dùng chung cho
tất cả các đơn vị thành viên. Quản lý điểm của sinh viên là một trong số các nghiệp vụ
trong phần mềm quản lý đào tạo, việc quản lý này phải cần khá nhiều người, chia
thành nhiều khâu, khâu nhập điểm đòi hỏi nhiều thời gian và công sức, mà độ chính
xác và hiệu quả chưa đạt yêu cầu, vì còn đang nhập điểm bằng thủ công nên đòi hỏi
mất rất nhiều thời gian cho khâu kiểm tra điểm giữa bảng điểm giảng viên nộp và bảng

Năm 1960 Silver tiếp tục phát minh ra tia laser đã làm cho các thiết bị đọc mã
vạch trở nên rẻ tiền hơn, và sự phát triển của mạch bán dẫn (IC) làm cho việc giải mã
các tín hiệu thu được từ mã vạch có ý nghĩa thực tiễn.
Năm 1972, RCA thử nghiệm việc sử dụng đầu đọc mã vạch điểm đen nhưng
khi in ra nó rất dễ nhòe.
Năm 1973, Woodland đã phát triển mã vạch tuyến tính được chấp nhận như
là Mã sản phẩm chung (tiếng Anh: Universal Product Code, hay UPC).
Năm 1974, đầu đọc mã vạch đã được sử dụng tại siêu thị Marsh ở Troy, Ohio.
Ngày nay, mã vạch đã phát triển nhanh chóng, rộng khắp, nhiều loại mã vạch ra
đời và trở thành một phương thức đơn giản, tiện lợi để lưu trữ thông tin cho các hệ
thống tự động. Trang 11

1.2. Các dạng mã vạch phổ biến hiện nay:
1.2.1 Mã vạch một chiều (mã vạch tuyến tính):
Là chuẩn mã vạch trên các sản phẩm mọi người thường thấy, được tổ chức GS1
(One global Standard) chứng nhận và sử dụng trong ngành công nghiệp bán lẻ trên
toàn thế giới.

Hình 1.1: Mã vạch một chiều (tuyến tính)
Các loại mã vạch một chiều phổ biến:
Loại Thuộc tính

Độ rộng Sử dụng
Plessey Liên tục 2
Catalog, các giá hàng trong cửa hàng,
hàng tồn kho
UPC Liên tục Nhiều Bán lẻ ở Mỹ

ArrayTag Từ ArrayTech Systems.
Aztec Code Từ Welch Allyn (hiện nay là Handheld Products). Phạm vi công cộng.
Code 1 Phạm vi công cộng.
CP Code Từ CP Tron, Inc.
DataGlyphs Từ Xerox PARC.
Datamatrix Từ RVSI Acuity CiMatrix. Hiện nay thuộc phạm vi công cộng.
Điểm đen
Mã vạch này đã được thử nghiệm ở cửa hàng Kroger ở Cincinnati. Nó
sử dụng các vạch đồng tâm.
HueCode Từ Robot Design Associates. Sử dụng thang màu xám hoặc nhiều màu.
INTACTA.CODE

Từ INTACTA Technologies, Inc.
MaxiCode
Sử dụng bởi Dịch vụ chuyển phát hàng hóa Mỹ (United Parcel
Service).
MiniCode Từ Omniplanar, Inc.
PDF417 Có nguồn gốc từ Symbol Technologies. Phạm vi công cộng.
QR Code Từ Nippondenso ID Systems. Phạm vi công cộng. Trang 13

Loại Ghi chú
SpotCode Mã vòng từ High Energy Magic Ltd.
SuperCode Phạm vi công cộng.
UltraCode Có các phiên bản đen trắng và màu. Phạm vi công cộng.
1.2.3 Mã vạch cụm:
Là trung gian giữa mã vạch 2D thực thụ và mã vạch tuyến tính, chúng được tạo
ra bằng cách đặt các mã vạch tuyến tính truyền thống trên các loại giấy hay các vật

Các dữ liệu chứa trong mã vạch thay đổi tùy theo ứng dụng. Trong trường hợp
đơn giản nhất là một chuỗi số định danh được sử dụng như là chỉ mục trong cơ sở dữ
liệu trong đó toàn bộ các thông tin khác được lưu trữ. Các mã EAN-13 và UPC tìm
thấy phổ biến trên hàng bán lẻ làm việc theo phương thức này.
Mã vạch còn chứa toàn bộ thông tin về sản phẩm, mà không cần cơ sở dữ liệu
ngoài. Điều này dẫn tới việc phát triển mã vạch tượng trưng mà có khả năng biểu diễn
nhiều hơn là chỉ các số thập phân, có thể là bổ sung thêm các ký tự hoa và thường của
bảng chữ cái cho đến toàn bộ bảng mã ký tự ASCII và nhiều hơn thế. Việc lưu trữ
nhiều thông tin hơn đã dẫn đến việc phát triển của các ma trận mã (một dạng của mã
vạch 2D), trong đó không chứa các vạch mà là một lưới các ô vuông.
Ngày này, mã vạch hai chiều được ưa chuộng nhiều và ứng dụng rộng rãi, đặc
biệt là đối với những người sở hữu smartphone. Đơn giản và hiệu quả, người sử dụng
chỉ cần nhận dạng mã vạch hai chiều thông qua camera được trang bị với một đầu đọc
mã vạch gắn trên điện thoại. Qua đó, đầu đọc sẽ trả về kết quả là những đoạn URL đã
được phân tích, và lập tức truy cập vào các trình duyệt có liên quan trên một website.
Do vậy, mã vạch hai chiều rất có ích cho lĩnh vực tiếp thị qua di động. Một số
hệ thống mã vạch hai chiều khác thì lại trực tiếp cung cấp thông tin cho khách hàng
nhận được mà không cần phải truy cập website.
Mã vạch hai chiều ngày càng được ưa chuộng vì người ta nhận ra những đặc
tính độc đáo của nó không có mặt trong các mã vạch tuyến tính truyền thống và được
nhằm vào ba ứng dụng chính:
1. Đối với các món hàng nhỏ: Nếu in mã vạch tuyến tính thông dụng trên các
món hàng nhỏ thì thường gặp trở ngại về kích thước của mã vạch vẫn còn quá lớn so
với các món hàng cực nhỏ. Với mã vạch hai chiều người ta có thể in mã vạch ngay
trên món hàng có kích thước rất nhỏ.
2. Nội dung thông tin: Công nghệ hai chiều cho phép mã hóa một lượng lớn
thông tin trong một diện tích nhỏ hẹp. Cả lượng thông tin lưu trong cùng một ký hiệu
mã vạch 2D có thể coi như là 1 file dữ liệu nhỏ gọn. Do đó khi sử dụng loại mã 2D, có
thể không cần đến cơ sở dữ liệu bên trong máy vi tính.
3. Quét tầm xa: Khi sử dụng các ký hiệu 2D, máy in không đòi hỏi in ở độ phân

hoàn thuế, hoặc khi cần tra cứu thông tin, số liệu khác tại cơ quan thuế
- Từ ngày 01/01/2014, Bảo hiểm xã hội Việt nam đã ban hành mẫu thẻ Bảo
hiểm y tế mới, có mã vạch hai chiều chứa các thông tin trên thẻ và chuỗi ký tự kiểm
tra. In thẻ có mã vạch hai chiều giúp quản lý được dữ liệu phát hành thẻ chính xác, dễ
dàng phát hiện thẻ giả, tránh được những sai sót về trùng dữ liệu thẻ, sai mã thẻ, sai
mã đối tượng hưởng quyền lợi, giúp tiết kiệm được chi phí hành chính đối với cơ quan
bảo hiểm xã hội và cả đối với các cơ sở khám chữa bệnh.

Hình 1.4: Mã vạch hai chiều ở mặt trước thẻ bảo hiểm y tế Trang
16
Với khá nhiều cách sử dụng, mã vạch hai chiều có thể được sử dụng rộng rãi
trong tương lai như:
- Đi xe buýt: người dùng quét mã của bến xe bus sẽ biết thông tin về các chuyến
xe sắp tới. - Tại bảo tàng: người dùng chỉ cần quét mã đặt cạnh vật trưng bày để biết
được thông tin chi tiết về đồ vật đó.
- Khi mua hàng: người dùng nếu thấy thích mặt hàng đang quảng cáo khi đi tàu
điện ngầm, xe bus … có thể đặt mua ngay lập tức thông qua mã vạch và Mobile
Internet. Đồng thời người mua hàng có thể quét mã vạch để biết được hàm lượng dinh
dưỡng của đồ ăn cần mua. Hoặc để biết công thức và cách chế biến món ăn mình mua.
- Tại các hội thảo: người tham gia hội thảo có thể sử dụng mã vạch thay cho
Business Card của mình.
- Với các tờ báo/tạp chí giấy: người đọc có thể quét mã vạch được in trong tờ
báo/tạp chí giấy để truy cập phiên bản online của tờ báo/tạp chí này.
- Sử dụng tại quán bar/club : để xác định xem ca sỹ, ban nhạc, bản nhạc đang
chơi là ai/bản nhạc gì?
So sánh giữa các loại mã vạch:
STT

nhau có khả năng ứng dụng cao trong chuyển tin, thẻ nhận dạng và quản lý thông tin.
Mã vạch hai chiều PDF417 là sự phát triển mới nhất trong xu hướng để đóng gói khối
lượng dữ liệu lớn trong không gian nhỏ nhất. PDF417 được thiết lập vững chắc là sự
lựa chọn hàng đầu cho các ứng dụng mã vạch 2D, cho phép máy đọc được dữ liệu có
sẵn trên mã vạch mà không cần thiết phải kết nối đến cơ sở dữ liệu như các loại mã
vạch thông thường. Loại mã vạch này có khả năng sửa lỗi và tùy chọn khả năng sửa
lỗi tùy theo mức sửa lỗi và loại dữ liệu được mã hóa. Mã PDF417 được phát minh bởi
tiến sĩ Ynjin P.Wang tại Symbol Technology năm 1991, và được công nhận theo
chuẩn ISO 15438. Hình 2.1: Mã vạch hai chiều PDF417
Mỗi mã vạch hai chiều PDF417 có các hàng liên kết với nhau theo chiều dọc
với tối thiểu là 3 hàng, tối đa là 90 hàng. Mỗi hàng chứa ít nhất 1 một codeword và tối
đa là 34 codeword. Đơn vị nhỏ nhất trong mã vạch hai chiều PDF417 là module, mỗi
module tương ứng với một đơn vị độ dài.
Với các loại mã vạch một chiều, chúng đóng vai trò là khóa để truy nhập cơ sở
dữ liệu. Nhưng với mã vạch hai chiều PDF417 có thể truy nhập trực tiếp dữ liệu mà
không cần có các dữ liệu trước đó cũng như đảm bảo an toàn cho dữ liệu thông qua
quá trình mã hóa dữ liệu vào các biểu tượng của mã vạch.
2.1.1 Cấu trúc mỗi hàng PDF417 gồm có:
- Vùng lặng (quiet zone)
- Dấu hiệu bắt đầu thể hiện bằng một số vạch (Start Pattern)
- Codeword chỉ báo biên trái của dòng (Left row Indicator Codeword)
- Vùng dữ liệu (các codeword)
- Codeword chỉ báo biên phải của dòng (Right row Indicator Codeword) Trang 18


có tối đa là 34 cột.
2.1.3 Codeword:

Hình 2.5: Cấu trúc codeword PDF417
Codeword là phần giao nhau giữa hàng và cột, mỗi codeword biểu diễn các con
số, ký tự hoặc các ký hiệu. Thông thường mỗi codeword gồm có 4 vạch tối, 4 vạch
sáng và tổng độ dài mỗi codeword có 17 module.
2.1.4 Mã hóa
Quá trình mã hóa thực hiện mã vạch hai chiều PDF417 trong hai giai đoạn đó là
mã hóa cấp cao và mã hóa cấp thấp.
 Mã hóa cấp cao (High level encoding): các dữ liệu được chuyển đổi thành các
codeword.
Dữ liệu được mã hóa vào các codeword theo một trong ba phương thức mã hóa
(mặc định là chế độ nén text). Trang 20

Chế độ nén Dữ liệu mã hóa Tỷ lệ nén
“Byet” ASCII từ 0 đến 225 1.2 byte/codeword
“TEXT” ASCII 9, 10,13 và từ 32 đến 127 2 ký tự/ codeword
“Numeric” Chỉ có chữ số từ 0 đến 9 2.9 chữ số/codeword
Codeword từ 900 đến 928 là các codeword dùng để chuyển đổi giữa các chế độ
nén để tối ưu hóa mã.
a. Chế độ nén “Byte”:
Chế độ nén byte cho phép mã hóa 256 byte khác nhau thuộc bảng ASCII mở
rộng. Từ các chế độ khác muốn chuyển sang chế độ nén byte và nếu số byte là bội của
6 chúng ta sử dụng codeword 924 nếu khác chúng ta sử dụng mã 901 để chuyển.
Để mã hóa ta làm các bước sau:
- Tạo một nhóm gồm 6 ký tự, từ X

5
+ 105 x 256
4
+ 101 x 256
3
+ 109 x 256
2
+ 115 x 256 + 111
= 110 403 836 015 471
CW
0
= 110 403 836 015 471 MOD 900 = 71
S = 110 403 836 015 471 / 900 = 122 670 928 906
CW
1
= 122 670 928 906 MOD 900 = 106
S = 122 670 928 906 / 900 = 136 301 032
CW
2
= 136 301 032 MOD 900 = 532
S = 136 301 032/ 900 = 151 445 Trang 21

CW3 = 151 445 MOD 900 = 245
S = 151 445 / 900 = 168
CW4 = 168 MOD 900 = 168
Kết quả chuỗi giá trị mã hóa là:
924, 168, 245, 532, 106, 71

Value Char ASCII Char ASCII Char ASCII Char ASCII

8 I 73 i 105 8 56 ‘ 96
9 J 74 j 106 9 57 ~ 126
10 K 75 k 107 & 38 ! 33
11 L 76 l 108 CR 13 CR 13
12 M 77 m 109 HT 9 HT 9
13 N 78 n 110 , 44 , 44
14 O 79 o 111 : 58 : 58
15 P 80 p 112 # 35 LF 10
16 Q 81 q 113 - 45 - 45
17 R 82 r 114 . 46 . 46
18 S 83 s 115 $ 36 $ 36
19 T 84 t 116 / 47 / 47
20 U 85 u 117 + 43 “ 34
21 V 86 v 118 % 37 | 124
22 W 87 w 119 * 42 * 42
23 X 88 x 120 = 61 ( 40
24 Y 89 y 121 ^ 94 ) 41
25 Z 90 z 122 PUN ? 63
26 SP 32 SP 32 SP 32 { 123
27 LOW T_UPP LOW } 125 Trang 23

Text Compaction Sub-Modes
Base 30 Uppercase Lowercase Mixed Punctuation
Value Char ASCII Char ASCII Char ASCII Char ASCII


= 12 x 30 + 26 = 386
CW
4
= 29 x 30 + 10 = 880
Chuỗi mã hóa dạng như sau: 117, 244, 386, 880
c. Chế độ nén “Numeric”:
Để thực hiện chuyển đổi:
Chia mỗi nhóm 44 chữ số (nhóm cuối cùng có ít hơn hoặc bằng 44 chữ số);
Thêm chữ số 1 vào đầu;
Thực hiện thay đổi cơ bản như chế độ “Byte”; Trang 24

Mỗi nhóm 44 chữ số thì có 15 codeword, nếu nhỏ hơn 44 ta có công thức tính
như sau: Số chữ số / 3 + 1
Ví dụ: Mã hóa chuỗi: 12345
Tính số codeword: 5 \ 3 + 1 = 2 (CW)
thêm chữ số “1” vào đầu, ta được: 112 345
CW
0
= 112 345 MOD 900 =745
S = 112 345 / 900 = 124
CW
1
= 124 MOD 900 = 124
Kết quả thu được: 124, 745
Codeword trái và phải

Hình 2.6: Minh họa mã vạch

11111 0 1 0 1 0 11 00000

11 0 1 0 1 0 11111 00000

1111 0 1 0 1 0 1111 0000

111111 0 1 0 1 0 111 000

111 0 1 0 1 0 111111 000

11111 0 1 0 1 0 11111 00

1111 0 1 0 1 00 1 000000

1 0 1 0 1 00 1111 000000

… … …
Và mỗi dòng chỉ thuộc một bảng, cách xác định:
K= ((số dòng -1) MOD 3)*3
Các phép toán: -/phép trừ, */phép nhân, MOD/phép lấy dư
Với K là giá trị tương ứng của bảng 1, bảng 2 và bảng 3:
Bảng 1 0
Bảng 2 3
Bảng 3 6
2.2 Ứng dụng mã vạch hai chiều PDF417 trong nghiệp vụ nhập điểm.
Bài toán đặt ra là giải quyết vấn đề nhập điểm hiện nay cho cán bộ nhập điểm
thi tại các trường đại học cần có phương pháp hiệu quả hơn để thay thế phương pháp
truyền thống. Mã PDF417 có khả năng lưu trữ lượng thông tin rất lớn, đủ để mã hóa
dữ liệu điểm của sinh viên trên một tờ A4. Đồng thời, thời gian đọc mã vạch của các
thiết bị đọc mã vạch là nhanh hơn rất nhiều so với việc nhập điểm bằng thủ công hiện


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status