legco is an R package to fetch data from the Hong Kong Legislative Council (LegCo) APIs. It provides easy access to LegCo’s open data in an intergrated manner without having to dig deep into the structures and parameters of the APIs. Each function corresponds to a data endpoint of the APIs. Data is retrieved in json format and presented in a dataframe.

Installing legco

From GitHub

install.packages("devtools")
devtools::install_github("elgarteo/legco")

Load legco

library(legco)

Understanding the LegCo APIs

The LegCo APIs consist of different databases with seperate structures and identifiers, and each database has its own API. The functions in this package correspond to the various data endpoints of these APIs. The databases supported by this package and the associating functions are as follow.

  1. 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.

  2. 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.

    Comapred 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.

  3. 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 statments 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.

  4. 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.

  5. 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 APIs 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.

API Limits

Request Limit

LegCo APIs have a 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:

## Retrieving records...
## Error in legco_api("hansard", query, 1000, count, verbose): The request did not return any data. Please check your parameters.

Node Count Limit

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 19 filtering conditions in most cases. For instance, the following code contains 20 filtering conditions and thus reach the node count limit:

# A request with 20 filtering conditions
x <- c(1, 3, 5, 7, 9, 11, 13, 15, 17, 19,
       21, 23, 25, 27, 29, 31, 33, 35, 37, 39)
speakers(x)
## Retrieving records...
## Retrieved 20 record(s). 20 record(s) available in total.
##    SpeakerID                NameChi
## 1          7             政務司司長
## 2          5         代理全委會主席
## 3          3               代理主席
## 4          1                   主席
## 5         15   政制及內地事務局局長
## 6         21             發展局局長
## 7         17             教育局局長
## 8         19       食物及衞生局局長
## 9         13   財經事務及庫務局局長
## 10        11         民政事務局局長
## 11         9             律政司司長
## 12        31 商務及經濟發展局副局長
## 13        29           教育局副局長
## 14        25           環境局副局長
## 15        23 財經事務及庫務局副局長
## 16        27           保安局副局長
## 17        35                 李卓人
## 18        33                 何俊仁
## 19        39                 涂謹申
## 20        37                 李華明
##                                                    NameEng Type Initial
## 1                       CHIEF SECRETARY FOR ADMINISTRATION   PO     CSA
## 2                                          DEPUTY CHAIRMAN   LC     DCM
## 3                                         DEPUTY PRESIDENT   LC    DPSD
## 4                                                PRESIDENT   LC     PSD
## 5        SECRETARY FOR CONSTITUTIONAL AND MAINLAND AFFAIRS   PO    SCMA
## 6                                SECRETARY FOR DEVELOPMENT   PO      SD
## 7                                  SECRETARY FOR EDUCATION   PO      SE
## 8                            SECRETARY FOR FOOD AND HEALTH   PO     SFH
## 9        SECRETARY FOR FINANCIAL SERVICES AND THE TREASURY   PO    SFST
## 10                              SECRETARY FOR HOME AFFAIRS   PO     SHA
## 11                                   SECRETARY FOR JUSTICE   PO      SJ
## 12   UNDER SECRETARY FOR COMMERCE AND ECONOMIC DEVELOPMENT   PO   USCED
## 13                           UNDER SECRETARY FOR EDUCATION   PO   USEDU
## 14                     UNDER SECRETARY FOR THE ENVIRONMENT   PO   USENV
## 15 UNDER SECRETARY FOR FINANCIAL SERVICES AND THE TREASURY   PO  USFAST
## 16                            UNDER SECRETARY FOR SECURITY   PO     USS
## 17                                           LEE CHEUK-YAN   MB     LCY
## 18                                               ALBERT HO   MB      AH
## 19                                                JAMES TO   MB     TKS
## 20                                                 FRED LI   MB      FL
##    FirstName LastName
## 1                    
## 2                    
## 3                    
## 4                    
## 5                    
## 6                    
## 7                    
## 8                    
## 9                    
## 10                   
## 11                   
## 12                   
## 13                   
## 14                   
## 15                   
## 16                   
## 17 Cheuk-yan      LEE
## 18  Chun-yan       HO
## 19   Kun-sun       TO
## 20  Wah-ming       LI

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:

# A request with sequential numeric filtering conditions
x <- c(1:50)
speakers(x)

The code above will execute just fine without reaching the node count limit even though it effectively contains 50 filtering conditions.

Examples

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-02T00:00:00 2018-05-02T00:00:00         0      0
## 2       2526 2018-05-03T00:00:00 2018-05-02T00:00:00         0      0
## 3       2405 2018-05-03T00:00:00 2018-05-03T00:00:00         1      0
## 4       2418 2018-05-09T00:00:00 2018-05-09T00:00:00         0      0
## 5       2419 2018-05-10T00:00:00 2018-05-09T00:00:00         0      0
## 6       2425 2018-05-16T00:00:00 2018-05-16T00:00:00         0      0
## 7       2434 2018-05-17T00:00:00 2018-05-16T00:00:00         0      0
## 8       2443 2018-05-23T00:00:00 2018-05-23T00:00:00         0      1
## 9       2451 2018-05-23T00:00:00 2018-05-23T00:00:00         0      0
## 10      2450 2018-05-24T00:00:00 2018-05-23T00:00:00         0      0
## 11      2541 2018-05-30T00:00:00 2018-05-30T00:00:00         0      0
## 12      2462 2018-05-31T00:00:00 2018-05-30T00: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-23T00:00:00
## 2  2018-05-23T00:00:00
## 3  2018-05-23T00:00:00
## 4  2018-05-23T00:00:00
## 5  2018-05-23T00:00:00
## 6  2018-05-23T00:00:00
## 7  2018-05-23T00:00:00
## 8  2018-05-23T00:00:00
## 9  2018-05-23T00:00:00
## 10 2018-05-23T00:00:00
## 11 2018-05-23T00:00:00
## 12 2018-05-23T00:00:00
## 13 2018-05-23T00:00:00
## 14 2018-05-23T00:00:00
## 15 2018-05-23T00:00:00
## 16 2018-05-23T00:00:00
## 17 2018-05-23T00:00:00
## 18 2018-05-23T00:00:00
## 19 2018-05-23T00:00:00
## 20 2018-05-23T00:00:00
## 21 2018-05-23T00:00:00
## 22 2018-05-23T00:00:00
## 23 2018-05-23T00:00:00
## 24 2018-05-23T00:00:00
## 25 2018-05-23T00:00:00
## 26 2018-05-23T00:00:00
## 27 2018-05-23T00:00:00
## 28 2018-05-23T00:00:00
## 29 2018-05-23T00:00:00
## 30 2018-05-23T00:00:00
## 31 2018-05-23T00:00:00
## 32 2018-05-23T00:00:00
## 33 2018-05-23T00:00:00
## 34 2018-05-23T00:00:00
## 35 2018-05-23T00:00:00
## 36 2018-05-23T00: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 exmaple, 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
## 45         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(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:

x <- unique(w$SpeakerID[!is.na(w$SpeakerID)])
speakers(id = x)
## Error in legco_api("hansard", query, 1000, count, verbose): Parameters too long. Please shorten your parameters and break down into multiple requests.

The code above produces 27 filtering conditions which reahces the node count limit. If you need have parameters longer than that, break them down into multiple requests:

y1 <- speakers(id = x[1:19])
y2 <- speakers(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
## 3 2018-05-23T00:00:00 Not forgetting the 4 June incident  Negatived
##   SectionCode RundownID HansardID
## 3         mbm    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]
##                NameEn Constituency
## 2            James TO   Functional
## 3     LEUNG Yiu-chung   Functional
## 6     Prof Joseph LEE   Functional
## 16         Claudia MO Geographical
## 20         WU Chi-wai Geographical
## 23  Charles Peter MOK   Functional
## 24     CHAN Chi-chuen Geographical
## 27      Kenneth LEUNG   Functional
## 29      Dr KWOK Ka-ki Geographical
## 31        Dennis KWOK   Functional
## 33 Dr Fernando CHEUNG Geographical
## 34     Dr Helena WONG Geographical
## 35        IP Kin-yuen   Functional
## 42        Alvin YEUNG Geographical
## 43         Andrew WAN Geographical
## 44       CHU Hoi-dick Geographical
## 48     LAM Cheuk-ting Geographical
## 51       SHIU Ka-chun   Functional
## 56         Tanya CHAN Geographical
## 58       HUI Chi-fung Geographical
## 63      KWONG Chun-yu   Functional
## 64         Jeremy TAM Geographical
## 65           Gary FAN Geographical
## 66         AU Nok-hin Geographical

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
## 1 2018-05-23T08:30:00           Open       公開會議      Rm 3
## 2 2018-05-23T11:30:00           Open       公開會議   Chamber
## 3 2018-05-23T11:00:00           Open       公開會議   Chamber
## 4 2018-05-23T08:30:00           Open       公開會議      Rm 1
## 5 2018-05-23T08:30:00           Open       公開會議      Rm 2
##        VenueNameEng VenueNameChi TermID
## 1 Conference Room 3      會議室3      5
## 2           Chamber       會議廳      5
## 3           Chamber       會議廳      5
## 4 Conference Room 1      會議室1      5
## 5 Conference Room 2      會議室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 Tanya CHAN        陳淑莊議員       Present
## 2           Hon Tommy CHEUNG Yu-yan        張宇人議員       Present
## 3               Hon LEUNG Yiu-chung        梁耀忠議員       Present
## 4                  Hon MA Fung-kwok        馬逢國議員       Present
## 5          Hon Abraham SHEK Lai-him        石禮謙議員       Present
## 6              Hon James TO Kun-sun        涂謹申議員       Present
## 7  Dr Hon Fernando CHEUNG Chiu-hung        張超雄議員       Present
## 8                 Dr Hon KWOK Ka-ki        郭家麒議員       Present
## 9          Hon Jeffrey LAM Kin-fung        林健鋒議員       Present
## 10     Prof Hon Joseph LEE Kok-long        李國麟議員       Present
## 11      Hon Andrew LEUNG Kwan-yuen         梁君彥議員       Present
## 12              Hon WONG Ting-kwong        黃定光議員       Present
## 13          Hon Starry LEE Wai-king        李慧琼議員       Present
## 14                 Hon CHAN Hak-kan        陳克勤議員       Present
## 15                 Hon CHAN Kin-por        陳健波議員       Present
## 16   Dr Hon Priscilla LEUNG Mei-fun        梁美芬議員       Present
## 17                Hon WONG Kwok-kin        黃國健議員       Present
## 18    Hon Mrs Regina IP LAU Suk-yee      葉劉淑儀議員       Present
## 19            Hon Paul TSE Wai-chun        謝偉俊議員       Present
## 20       Dr Hon Helena WONG Pik-wan        黃碧雲議員       Present
## 21            Dr Hon CHIANG Lai-wan        蔣麗芸議員       Present
## 22                   Hon Claudia MO        毛孟靜議員       Present
## 23                   Hon WU Chi-wai        胡志偉議員       Present
## 24             Hon LEUNG Che-cheung        梁志祥議員       Present
## 25           Hon Alice MAK Mei-kuen        麥美娟議員       Present
## 26         Hon Michael TIEN Puk-sun        田北辰議員       Present
## 27                 Hon CHAN Han-pan        陳恒鑌議員       Present
## 28            Dr Hon Elizabeth QUAT        葛珮帆議員       Present
## 29               Hon CHAN Chi-chuen        陳志全議員       Present
## 30            Hon Gary FAN Kwok-wai        范國威議員       Present
## 31           Hon Steven HO Chun-yin        何俊賢議員       Present
## 32        Hon Frankie YICK Chi-ming        易志明議員       Present
## 33                  Hon IP Kin-yuen        葉建源議員       Present
## 34        Hon Dennis KWOK Wing-hang        郭榮鏗議員       Present
## 35                Hon Kenneth LEUNG        梁繼昌議員       Present
## 36            Ir Dr Hon LO Wai-kwok        盧偉國議員       Present
## 37           Hon Tony TSE Wai-chuen        謝偉銓議員       Present
## 38               Hon KWOK Wai-keung        郭偉强議員       Present
## 39                Hon POON Siu-ping        潘兆平議員       Present
## 40                  Hon YIU Si-wing        姚思榮議員       Present
## 41      Hon Martin LIAO Cheung-kong        廖長江議員       Present
## 42  Hon Christopher CHEUNG Wah-fung        張華峰議員       Present
## 43               Hon CHUNG Kwok-pan        鍾國斌議員       Present
## 44            Hon Charles Peter MOK        莫乃光議員       Present
## 45                  Hon Alvin YEUNG        楊岳橋議員       Present
## 46             Hon CHEUNG Kwok-kwan        張國鈞議員       Present
## 47                 Hon HUI Chi-fung        許智峯議員       Present
## 48        Hon Wilson OR Chong-shing        柯創盛議員       Present
## 49            Hon Jeremy TAM Man-ho        譚文豪議員       Present
## 50           Hon Andrew WAN Siu-kin        尹兆堅議員       Present
## 51           Dr Hon CHENG Chung-tai        鄭松泰議員       Present
## 52        Dr Hon Junius HO Kwan-yiu        何君堯議員       Present
## 53                 Hon CHU Hoi-dick        朱凱廸議員       Present
## 54               Hon LAM Cheuk-ting        林卓廷議員       Present
## 55                 Hon YUNG Hoi-yan        容海恩議員       Present
## 56         Hon Kenneth LAU Ip-keung        劉業強議員       Present
## 57               Dr Hon Pierre CHAN        陳沛然議員       Present
## 58                  Hon HO Kai-ming        何啟明議員       Present
## 59               Hon LUK Chung-hung        陸頌雄議員       Present
## 60                 Hon SHIU Ka-chun        邵家臻議員       Present
## 61             Hon Jimmy NG Wing-ka        吳永嘉議員       Present
## 62               Hon CHAN Chun-ying        陳振英議員       Present
## 63                  Hon SHIU Ka-fai        邵家輝議員       Present
## 64                 Hon LAU Kwok-fan        劉國勳議員       Present
## 65                Hon KWONG Chun-yu        鄺俊宇議員       Present
## 66          Hon Holden CHOW Ho-ding        周浩鼎議員       Present
## 67                   Hon AU Nok-hin        區諾軒議員       Present
## 68      Hon Vincent CHENG Wing-shun        鄭泳舜議員       Present