legco
is an R package to fetch data from the Hong Kong
Legislative Council (LegCo) API. It provides easy access to LegCo’s open
data in an integrated manner without having to dig deep into the
structures and parameters of the API. Each function corresponds to a
data endpoint of the API. Data is retrieved in json format and presented
in a dataframe.
install.packages("devtools")
devtools::install_github("elgarteo/legco")
And to load it before every use:
The LegCo API consists of different databases with separate structures and identifiers. The functions in this package correspond to the various data endpoints of these databases. The databases supported by this package and the associating functions are as follow.
Bills Database
This database contains key information of all the bills that have been presented in LegCo since 1906. This database is accessible with the following function:
all_bills()
fetches the information of bills that have
gone through LegCo.Compared to bills()
of the Hansard Database,
all_bills()
provides much more comprehensive information of
bills, including all key dates and the proposer.
See here for more information of this database.
Hansard Database
This database contains information on matters discussed in Council meeting since the fifth term of LegCo. Hinting by its name, the database is built upon the PDF hansard files. Relying on the bookmarks and section codes of the hansard files, the data endpoints retrieve data from the files directly. This database is accessible with the following functions/data:
hansard()
fetches the information of the hansard
files.legco_section_type
is a data frame that explains that
meaning of the section codes used in the hansard files.subjects()
fetches the subjects in the hansard files,
which are essentially items in the meeting agenda.speakers()
fetches the speakers in meetings, including
members, government officials and secretariat staff.rundown()
fetches the full text of the hansard
files.questions()
fetches the questions put on the government
by the members during Council meetings.bills()
fetches bills that have been debated in Council
meetings.motions()
fetches motions that have been debated in
Council meetings.petitions()
fetches petitions initiated by members in
Council meetings.addresses()
fetches addresses made by members or
government officials while presenting papers to the Council.statements()
fetches statements made by government
officials in Council meetings.voting_results()
fetches the results of votes conducted
in Council meetings.summoning_bells()
fetches instances in which the
summoning bell have been rung in Council meetings.When using in combination, these functions are essentially hansard files crawler.
See here for more information of this database.
Meeting Attendance Database
This database contains the attendance record of Council and committee open meetings since the sixth term.
This database is accessible with the following function:
attendance()
fetches the attendance of members in
Council and committee meetings.See here for more information of this database.
Meeting Schedule Database
This database contains the member list and the meeting schedule of the Council and every committee since the fifth term of LegCo. This database is accessible with the following functions:
term()
fetches the terms in LegCo.session()
fetches the sessions in LegCo.committee()
fetches a list of LegCo committees.membership()
fetches the members of each committee in
the form of Member ID.member()
fetches the members in LegCo.member_term()
fetches the terms LegCo members have
served in.meeting()
fetches the meeting schedule of LegCo
committees in the form of Meet ID.meeting_committee()
fetches which committee holds a
meeting.While the purpose of member()
is similar to
speakers()
of the Hansard Database, member()
returns only LegCo members. Their identifiers, i.e. Speaker ID and
Member ID, are unique and not interchangeable.
See here for more information of this database.
Voting Results Database
This database contains voting results of the Council, the House Committee and the Finance Committee and its subcomittees starting from the fifth term of LegCo. This database is accessible with the following function:
voting_record()
fetches the information of votes
conducted in the meetings, including the voting record of each
member.While voting_results()
of the Hansard Database returns
only the overall result of votes conducted in Council meetings,
voting_record()
returns much more detailed information of
votes conducted in Council and other four committees and subcommittees
meetings.
See here for more information of this database.
A generic function legco_api()
is available for access
to other databases and endpoints of the LegCo API that are not specified
here.
All functions can also be accessed with the prefix
legco_
, e.g. legco_speakers()
and
speakers()
return the same result.
LegCo API has a rate limit of approximately 1000 requests per IP per hour. Once the limit is reached, you will not be able to retrieve any data for awhile. If you run into the following error message while pretty sure you have entered the correct parameters, you have probably reached the limit:
## Error: The request did not return any data: Invalid search parameters or rate limit exceeded.
Another limit is the node count limit which is associated with the setting of the LegCo API server. The limit is at most 100 nodes per request, or approximately 20 filtering conditions in most cases. For instance, the following code contains 21 filtering conditions and thus reach the node count limit:
## Error: Parameters too long. Please shorten your parameters and break down into multiple requests.
If you run into the error message above, you need to break it down to multiple smaller requests, like one of the examples below.
Note that numeric filtering conditions that are sequential are not subjected to this limit:
The code above will execute just fine without reaching the node count limit even though it effectively contains 50 filtering conditions.
It is common for the connection to the LegCo API to experience SSL error from time to time, especially during repeated requests. This can usually be resolved simply by retrying. This package automatically retries the request once when an SSL error occurs with the following messages:
## Encountered Error in open.connection(con, "rb"): LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to app.legco.gov.hk:443
## Possible common connection problem resolvable by retrying.
## Retrying...
If the same error happens again after retrying, the process will be terminated with an error message. In this case, the cause of the problem is likely to be a genuine SSL error.
Another common problem is that the LegCo API sometimes returns an empty json file when it is not supposed to. Again, this can usually be resolved by retrying. This package automatically retries the request once to make sure that an invalid search query or rate limit is not the cause of the problem. The following messages will be shown if this problem occurs:
If the API returns an empty result again, the process will be terminated with an error message. In this case, the cause is likely to be invalid search parameters or that you have exceeded the rate limit (see here).
The following code shows all the Council meetings held from May 1, 2018 to May 31, 2018.
hansard(from = "2018-05-01", to = "2018-05-31")
## HansardID MeetingDate AgendaDate isCEQandA isCEQT
## 1 2407 2018-05-02 00:00:00 2018-05-02 00:00:00 0 0
## 2 2526 2018-05-03 00:00:00 2018-05-02 00:00:00 0 0
## 3 2405 2018-05-03 00:00:00 2018-05-03 00:00:00 1 0
## 4 2418 2018-05-09 00:00:00 2018-05-09 00:00:00 0 0
## 5 2419 2018-05-10 00:00:00 2018-05-09 00:00:00 0 0
## 6 2425 2018-05-16 00:00:00 2018-05-16 00:00:00 0 0
## 7 2434 2018-05-17 00:00:00 2018-05-16 00:00:00 0 0
## 8 2443 2018-05-23 00:00:00 2018-05-23 00:00:00 0 1
## 9 2451 2018-05-23 00:00:00 2018-05-23 00:00:00 0 0
## 10 2450 2018-05-24 00:00:00 2018-05-23 00:00:00 0 0
## 11 2541 2018-05-30 00:00:00 2018-05-30 00:00:00 0 0
## 12 2462 2018-05-31 00:00:00 2018-05-30 00:00:00 0 0
## HansardFileURL
## 1 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180502-translate-e.pdf
## 2 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180503-translate-e.pdf
## 3 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180503a-translate-e.pdf
## 4 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180509-translate-e.pdf
## 5 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180510-translate-e.pdf
## 6 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180516-translate-e.pdf
## 7 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180517-translate-e.pdf
## 8 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180523q-translate-e.pdf
## 9 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180523-translate-e.pdf
## 10 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180524-translate-e.pdf
## 11 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180530-translate-e.pdf
## 12 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180531-translate-e.pdf
To fetch the items on the agenda of the meeting on May 23, 2018:
subjects(hansard_id = 2451)
## MeetingDate
## 1 2018-05-23 00:00:00
## 2 2018-05-23 00:00:00
## 3 2018-05-23 00:00:00
## 4 2018-05-23 00:00:00
## 5 2018-05-23 00:00:00
## 6 2018-05-23 00:00:00
## 7 2018-05-23 00:00:00
## 8 2018-05-23 00:00:00
## 9 2018-05-23 00:00:00
## 10 2018-05-23 00:00:00
## 11 2018-05-23 00:00:00
## 12 2018-05-23 00:00:00
## 13 2018-05-23 00:00:00
## 14 2018-05-23 00:00:00
## 15 2018-05-23 00:00:00
## 16 2018-05-23 00:00:00
## 17 2018-05-23 00:00:00
## 18 2018-05-23 00:00:00
## 19 2018-05-23 00:00:00
## 20 2018-05-23 00:00:00
## 21 2018-05-23 00:00:00
## 22 2018-05-23 00:00:00
## 23 2018-05-23 00:00:00
## 24 2018-05-23 00:00:00
## 25 2018-05-23 00:00:00
## 26 2018-05-23 00:00:00
## 27 2018-05-23 00:00:00
## 28 2018-05-23 00:00:00
## 29 2018-05-23 00:00:00
## 30 2018-05-23 00:00:00
## 31 2018-05-23 00:00:00
## 32 2018-05-23 00:00:00
## 33 2018-05-23 00:00:00
## 34 2018-05-23 00:00:00
## 35 2018-05-23 00:00:00
## 36 2018-05-23 00:00:00
## Subject
## 1 MEETING COMMENCED
## 2 ORAL ANSWERS TO QUESTIONS
## 3 Collection of handling charges from persons purchasing tickets online
## 4 Measures to improve the reception of visitors to Hong Kong
## 5 Foreign domestic helpers congregating in public places during holidays
## 6 Pressure on road traffic brought about by cross-boundary vehicles
## 7 Assisting local residents in acquiring properties by levying new taxes
## 8 Maternity protection for female employees
## 9 WRITTEN ANSWERS TO QUESTIONS
## 10 Lack of berthing spaces at typhoon shelters for small fishing vessels
## 11 Sponsored Visitors Programme
## 12 A large number of Mainland tourists staying overnight in local camp sites and beaches
## 13 Combating traffic contraventions in New Territories North and Kowloon East
## 14 Helping ethnic minority women integrate into the community
## 15 Employment of academic staff by post-secondary institutions
## 16 Assessments to rates for properties on agricultural lands
## 17 Child health assessment and rehabilitation services
## 18 Measures to boost the supply of industrial lands
## 19 Development of high-tier data centres and cross-boundary transmission of data
## 20 Bogus marriage-related offences involving human trafficking
## 21 Provision of community support services for residents of new public rental housing estates
## 22 Support for single-parent families
## 23 Trading of shark fins
## 24 Management of water resources
## 25 Supply of first-hand private residential units
## 26 GOVERNMENT BILL
## 27 FIRST READING OF GOVERNMENT BILL
## 28 Inland Revenue (Amendment) (No. 4) Bill 2018
## 29 SECOND READING OF GOVERNMENT BILL
## 30 Inland Revenue (Amendment) (No. 4) Bill 2018
## 31 MEMBERS' MOTIONS
## 32 Proposed resolution under section 34(4) of the Interpretation and General Clauses Ordinance
## 33 Motion under Rule 49B(1A) of the Rules of Procedure
## 34 Report of the Joint Subcommittee on Long-term Care Policy
## 35 Not forgetting the 4 June incident
## 36 SUSPENSION OF MEETING
## ResumptionOf SectionCode RundownID HansardID
## 1 NA mtc 828481 2451
## 2 NA orq 828485 2451
## 3 NA orq 828487 2451
## 4 NA orq 828511 2451
## 5 NA orq 828541 2451
## 6 NA orq 828581 2451
## 7 NA orq 828603 2451
## 8 NA orq 828643 2451
## 9 NA wrq 828673 2451
## 10 NA wrq 828674 2451
## 11 NA wrq 828677 2451
## 12 NA wrq 828680 2451
## 13 NA wrq 828683 2451
## 14 NA wrq 828686 2451
## 15 NA wrq 828689 2451
## 16 NA wrq 828692 2451
## 17 NA wrq 828695 2451
## 18 NA wrq 828698 2451
## 19 NA wrq 828701 2451
## 20 NA wrq 828704 2451
## 21 NA wrq 828707 2451
## 22 NA wrq 828710 2451
## 23 NA wrq 828713 2451
## 24 NA wrq 828716 2451
## 25 NA wrq 828719 2451
## 26 NA bil 828722 2451
## 27 NA b1r 828723 2451
## 28 NA b1r 828725 2451
## 29 NA b2r 828727 2451
## 30 NA b2r 828729 2451
## 31 NA mbm 828732 2451
## 32 NA mbm 828734 2451
## 33 NA mbm 828743 2451
## 34 NA mbm 828747 2451
## 35 NA mbm 828783 2451
## 36 NA som 828827 2451
In this example, we will look into the motion Not forgetting the 4 June incident.
The section codes indicate the type of the business. For example, the section code “mbm” of the Not forgetting the 4 June incident means that it is a member’s motion:
legco_section_type[legco_section_type$SectionCode == "mbm", ]
## SectionCode NameEng NameChi
## 44 mbm Members' motions 議員議案
The RundownID indicates the location of the first paragraph of the matter concerned in the hansard file. In other words, paragraphs of RundownID between 828783 and 828826 (one RundownID prior to the next item on the agenda) are the records of the matter the Not forgetting the 4 June incident during the meeting. The full text of these paragraphs can be fetched by:
w <- rundown(rundown_id = 828783:828826)
# Order by RundownID, i.e. chronological order
w <- w[order(w$RundownID), ]
rownames(w) <- 1:nrow(w)
# Some two paragraphs of the hansard relevant to the discussion of the motion
w$Content[41:42]
## [1] "PRESIDENT (in Cantonese): Will Members please proceed to vote."
## [2] "PRESIDENT (in Cantonese): Mr Abraham SHEK, do you wish to cast your vote?(Mr Abraham SHEK did not cast any vote)"
To check which members have spoken about the motion and to look up some of their names:
## Error: Parameters too long. Please shorten your parameters and break down into multiple requests.
The code above produces 27 filtering conditions which exceed the node count limit. If you need have parameters longer than that, break them down into multiple requests:
y1 <- speakers(speaker_id = x[1:19])
y2 <- speakers(speaker_id = x[20:27])
y <- rbind(y1, y2)
# Show members who have spoken about this motion
head(y[y$Type == "MB", ])
## SpeakerID NameChi NameEng Type Initial FirstName LastName
## 2 138 林卓廷 LAM CHEUK-TING MB LCT Cheuk-ting LAM
## 3 148 許智峯 HUI CHI-FUNG MB HCF Chi-fung HUI
## 4 115 張超雄 FERNANDO CHEUNG MB CCH Chiu-hung CHEUNG
## 5 99 胡志偉 WU CHI-WAI MB WCW Chi-wai WU
## 6 141 邵家臻 SHIU KA-CHUN MB SKC Ka-chun SHIU
## 7 109 梁繼昌 KENNETH LEUNG MB KL Kai-cheong LEUNG
To find out the voting results of the motion:
v <- voting_results(from = w$MeetingDate[1], to = w$MeetingDate[1], section_code = "mbm")
v[v$Subject == "Not forgetting the 4 June incident", ]
## MeetingDate Subject VoteResult SectionCode
## 3 2018-05-23 00:00:00 Not forgetting the 4 June incident Negatived mbm
## RundownID HansardID
## 3 828826 2451
## HansardFileURL
## 3 https://www.legco.gov.hk/yr17-18/english/counmtg/hansard/cm20180523-translate-e.pdf#nameddest=EV_VOTED_00349
It is possible to fetch the detailed voting record of each member on this motion. To get a list of members who voted yes:
v <- voting_record(from = w$MeetingDate[1], to = w$MeetingDate[1])
v[v$Vote == "Yes", 32:33]
## NameCh NameEn
## 2 涂謹申 James TO
## 3 梁耀忠 LEUNG Yiu-chung
## 6 李國麟 Prof Joseph LEE
## 16 毛孟靜 Claudia MO
## 20 胡志偉 WU Chi-wai
## 23 莫乃光 Charles Peter MOK
## 24 陳志全 CHAN Chi-chuen
## 27 梁繼昌 Kenneth LEUNG
## 29 郭家麒 Dr KWOK Ka-ki
## 31 郭榮鏗 Dennis KWOK
## 33 張超雄 Dr Fernando CHEUNG
## 34 黃碧雲 Dr Helena WONG
## 35 葉建源 IP Kin-yuen
## 42 楊岳橋 Alvin YEUNG
## 43 尹兆堅 Andrew WAN
## 44 朱凱廸 CHU Hoi-dick
## 48 林卓廷 LAM Cheuk-ting
## 51 邵家臻 SHIU Ka-chun
## 56 陳淑莊 Tanya CHAN
## 58 許智峯 HUI Chi-fung
## 63 鄺俊宇 KWONG Chun-yu
## 64 譚文豪 Jeremy TAM
## 65 范國威 Gary FAN
## 66 區諾軒 AU Nok-hin
To check the attendance of this meeting:
# Find out MeetID of the Council meeting on May 23, 2018
meeting(from = w$MeetingDate[1], to = w$MeetingDate[1])
## SlotID MeetID
## 1 174096 131473
## 2 169121 126590
## 3 172136 129529
## 4 169842 127310
## 5 174121 131498
## SubjectEng
## 1 Meeting of Bills Committee on Inland Revenue (Amendment)(No. 6) Bill 2017
## 2 Council meeting (Regular meeting)\n(or to be held immediately after the meeting for Chief Executive’s Question Time)
## 3 Council meeting (The Chief Executive's Question Time)
## 4 Meeting of Public Works Subcommittee
## 5 Meeting of Subcommittee on Medical Council (Election and Appointment of Lay Members) Regulation
## SubjectChi
## 1 《2017年稅務(修訂)(第6號)條例草案》委員會會議
## 2 立法會會議 (例行會議)\n(或緊接行政長官質詢時間的會議後開始)
## 3 立法會會議 (行政長官質詢時間)
## 4 工務小組委員會會議
## 5 《醫務委員會(選舉和委任業外委員)規例》小組委員會會議
## StartDateTime MeetingTypeEng MeetingTypeChi VenueCode VenueNameEng
## 1 2018-05-23 08:30:00 Open 公開會議 Rm 3 Conference Room 3
## 2 2018-05-23 11:30:00 Open 公開會議 Chamber Chamber
## 3 2018-05-23 11:00:00 Open 公開會議 Chamber Chamber
## 4 2018-05-23 08:30:00 Open 公開會議 Rm 1 Conference Room 1
## 5 2018-05-23 08:30:00 Open 公開會議 Rm 2 Conference Room 2
## VenueNameChi TermID
## 1 會議室3 5
## 2 會議廳 5
## 3 會議廳 5
## 4 會議室1 5
## 5 會議室2 5
## AgendaUrlEng
## 1 http://www.legco.gov.hk/yr17-18/english/bc/bc02/agenda/bc0220180523.htm
## 2 http://www.legco.gov.hk/yr17-18/english/counmtg/agenda/cm20180523.htm
## 3 http://www.legco.gov.hk/yr17-18/english/counmtg/agenda/cm20180523q.htm
## 4 http://www.legco.gov.hk/yr17-18/english/fc/pwsc/agenda/pwsc20180523.htm
## 5 http://www.legco.gov.hk/yr17-18/english/hc/sub_leg/sc58/agenda/sc5820180523.htm
## AgendaUrlChi
## 1 http://www.legco.gov.hk/yr17-18/chinese/bc/bc02/agenda/bc0220180523.htm
## 2 http://www.legco.gov.hk/yr17-18/chinese/counmtg/agenda/cm20180523.htm
## 3 http://www.legco.gov.hk/yr17-18/chinese/counmtg/agenda/cm20180523q.htm
## 4 http://www.legco.gov.hk/yr17-18/chinese/fc/pwsc/agenda/pwsc20180523.htm
## 5 http://www.legco.gov.hk/yr17-18/chinese/hc/sub_leg/sc58/agenda/sc5820180523.htm
z <- attendance(meet_id = 126590)
# Show members who were present
z[z$PresentAbsent == "Present", 7:9]
## MemberNameEnglish MemberNameChinese PresentAbsent
## 1 Hon Andrew LEUNG Kwan-yuen (President) 梁君彥議員 (主席) Present
## 2 Hon James TO Kun-sun 涂謹申議員 Present
## 3 Hon LEUNG Yiu-chung 梁耀忠議員 Present
## 4 Hon Abraham SHEK Lai-him 石禮謙議員 Present
## 5 Hon Tommy CHEUNG Yu-yan 張宇人議員 Present
## 6 Prof Hon Joseph LEE Kok-long 李國麟議員 Present
## 7 Hon Jeffrey LAM Kin-fung 林健鋒議員 Present
## 8 Hon WONG Ting-kwong 黃定光議員 Present
## 9 Hon Starry LEE Wai-king 李慧琼議員 Present
## 10 Hon CHAN Hak-kan 陳克勤議員 Present
## 11 Hon CHAN Kin-por 陳健波議員 Present
## 12 Dr Hon Priscilla LEUNG Mei-fun 梁美芬議員 Present
## 13 Hon WONG Kwok-kin 黃國健議員 Present
## 14 Hon Mrs Regina IP LAU Suk-yee 葉劉淑儀議員 Present
## 15 Hon Paul TSE Wai-chun 謝偉俊議員 Present
## 16 Hon Claudia MO 毛孟靜議員 Present
## 17 Hon Michael TIEN Puk-sun 田北辰議員 Present
## 18 Hon Steven HO Chun-yin 何俊賢議員 Present
## 19 Hon Frankie YICK Chi-ming 易志明議員 Present
## 20 Hon WU Chi-wai 胡志偉議員 Present
## 21 Hon YIU Si-wing 姚思榮議員 Present
## 22 Hon MA Fung-kwok 馬逢國議員 Present
## 23 Hon Charles Peter MOK 莫乃光議員 Present
## 24 Hon CHAN Chi-chuen 陳志全議員 Present
## 25 Hon CHAN Han-pan 陳恒鑌議員 Present
## 26 Hon LEUNG Che-cheung 梁志祥議員 Present
## 27 Hon Kenneth LEUNG 梁繼昌議員 Present
## 28 Hon Alice MAK Mei-kuen 麥美娟議員 Present
## 29 Dr Hon KWOK Ka-ki 郭家麒議員 Present
## 30 Hon KWOK Wai-keung 郭偉强議員 Present
## 31 Hon Dennis KWOK Wing-hang 郭榮鏗議員 Present
## 32 Hon Christopher CHEUNG Wah-fung 張華峰議員 Present
## 33 Dr Hon Fernando CHEUNG Chiu-hung 張超雄議員 Present
## 34 Dr Hon Helena WONG Pik-wan 黃碧雲議員 Present
## 35 Hon IP Kin-yuen 葉建源議員 Present
## 36 Hon Elizabeth QUAT 葛珮帆議員 Present
## 37 Hon Martin LIAO Cheung-kong 廖長江議員 Present
## 38 Hon POON Siu-ping 潘兆平議員 Present
## 39 Dr Hon CHIANG Lai-wan 蔣麗芸議員 Present
## 40 Ir Dr Hon LO Wai-kwok 盧偉國議員 Present
## 41 Hon CHUNG Kwok-pan 鍾國斌議員 Present
## 42 Hon Alvin YEUNG 楊岳橋議員 Present
## 43 Hon Andrew WAN Siu-kin 尹兆堅議員 Present
## 44 Hon CHU Hoi-dick 朱凱廸議員 Present
## 45 Hon Jimmy NG Wing-ka 吳永嘉議員 Present
## 46 Dr Hon Junius HO Kwan-yiu 何君堯議員 Present
## 47 Hon HO Kai-ming 何啟明議員 Present
## 48 Hon LAM Cheuk-ting 林卓廷議員 Present
## 49 Hon Holden CHOW Ho-ding 周浩鼎議員 Present
## 50 Hon SHIU Ka-fai 邵家輝議員 Present
## 51 Hon SHIU Ka-chun 邵家臻議員 Present
## 52 Hon Wilson OR Chong-shing 柯創盛議員 Present
## 53 Hon YUNG Hoi-yan 容海恩議員 Present
## 54 Dr Hon Pierre CHAN 陳沛然議員 Present
## 55 Hon CHAN Chun-ying 陳振英議員 Present
## 56 Hon Tanya CHAN 陳淑莊議員 Present
## 57 Hon CHEUNG Kwok-kwan 張國鈞議員 Present
## 58 Hon HUI Chi-fung 許智峯議員 Present
## 59 Hon LUK Chung-hung 陸頌雄議員 Present
## 60 Hon LAU Kwok-fan 劉國勳議員 Present
## 61 Hon Kenneth LAU Ip-keung 劉業強議員 Present
## 62 Dr Hon CHENG Chung-tai 鄭松泰議員 Present
## 63 Hon KWONG Chun-yu 鄺俊宇議員 Present
## 64 Hon Jeremy TAM Man-ho 譚文豪議員 Present
## 65 Hon Vincent CHENG Wing-shun 鄭泳舜議員 Present
## 66 Hon Tony TSE Wai-chuen 謝偉銓議員 Present