Platform

Choose application
HAL
Nfc provides functions to enable and disable the NFC interface.<\/p>\n<h2 id=\"content-required-header\"><a href=https://samsungtizenos.com/"#content-required-header\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Required Header<\/h2>\n<p>#include &lt;hal-nfc.h&gt;<\/p>\n<h2 id=\"content-overview\"><a href=https://samsungtizenos.com/"#content-overview\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Overview<\/h2>\n<p>The Nfc provides to get\/put backend and enable\/disable Nfc interface.<\/p>\n<ul>\n<li>hal_nfc_get_backend<\/li>\n<li>hal_nfc_put_backend<\/li>\n<li>hal_nfc_start<\/li>\n<li>hal_nfc_stop<\/li>\n<\/ul>\n<p>For more information on the Nfc features and the macros, see HAL Nfc programming guides and tutorials.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Typedefs<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2aa72f38bd5b06146b4d3c1dd3743a2b\">_net_nfc_message_service_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gadc81029fab3f567a734bb9dba13a0684\">net_nfc_message_service_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different types of NFC service messages.<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaba574a6aef47010d18e0c930bd0ef390\">_client_state_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga30fbf77f464add7f7fb861ee1fc18ed1\">net_nfc_client_state_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different states of NFC clients.<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaa8a2bd119771288029e0f4aef8f850f6\">_net_nfc_launch_popup_check_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaf497e2c45a1b02b7325d5141a62ae068\">net_nfc_launch_popup_check_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different types of launch popup checks.<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2e904f9a16c2eabf6421e70e832a84b4\">_net_nfc_launch_popup_state_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga53c06836491825e4231846f1335b6088\">net_nfc_launch_popup_state_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different states of launch popup selection.<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga572ebe75a5cc9347305a5fec2fbde09e\">_net_nfc_privilege_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0dee900078f0344762abe35232042ca2\">net_nfc_privilege_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different types of NFC privileges.<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaff1793154170ba3466a58280a331486f\">_net_nfc_discovery_mode_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga54013c0491df098da462bafe4d543f8f\">net_nfc_discovery_mode_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different types of discovery modes.<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaaaa48e691b2f2567aad854e9fe3ac209\">_net_nfc_secure_element_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1aeb75e3260606f7376fb06c6018a84c\">net_nfc_secure_element_type_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different types of secure element (SE) types.<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga965de0ea19f35169e13d20fd470fd03a\">_net_nfc_secure_element_state_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0de48df3e57c9b89adf5e07034b64b5d\">net_nfc_secure_element_state_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different states of secure element (SE).<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga387e2b287b3793fee6f6dd1ead1c7813\">_net_nfc_secure_element_mode_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gafdc8574b967c2a6fce01eb7d5c049ff8\">net_nfc_secure_element_mode_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different modes of secure element (SE).<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gad4d5ecdc374d698fa48efb736c31a614\">_net_nfc_connection_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga63d69ff9fce95e54f36f3b99dbb24cf8\">net_nfc_connection_type_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different types of NFC connection types.<\/td>\n<\/tr>\n<tr>\n<td>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gabf35ddef9d8185334ec48f68660b8642\">_llcp_event_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga122c3670040e2d480b8b643aa01c3de9\">net_nfc_llcp_event_e<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Enumeration for different types of LLCP events.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct _net_nfc_data_s *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga42846b82cb8f0652a1f10786da12d483\">net_nfc_data_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Handle for data structure.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__record__s\">_net_nfc_ndef_record_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gae128d706f555e40e275f9563fffcbb58\">net_nfc_ndef_record_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Handle for NDEF record structure.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__message__s\">_net_nfc_ndef_message_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gafc1f12e232b1372545ae3ff89ad44d46\">net_nfc_ndef_message_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Handle for NDEF message structure.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__target__info__s\">_net_nfc_target_info_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga3993a054c9d86e23c989d6ad83096207\">net_nfc_target_info_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Handle for NFC target information structure.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__config__info__s\">_net_nfc_llcp_config_info_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a5f75a49385c4d70a1cd715fc52863e\">net_nfc_llcp_config_info_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Handle for LLCP configuration information structure.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__socket__option__s\">_net_nfc_llcp_socket_option_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga31ece768bc9fa18f934aa39319f8c593\">net_nfc_llcp_socket_option_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Handle for LLCP socket option structure.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__target__handle__s\">_net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga01221e8a61794dd9fc0df2eec4e99bd9\">net_nfc_target_handle_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Handle for NFC target handle structure.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__connection__handover__info__s\">_net_nfc_connection_handover_info_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gad762428990b3f9b89d2fbdec63dfe536\">net_nfc_connection_handover_info_h<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Handle for connection handover information structure.<\/td>\n<\/tr>\n<tr>\n<td>typedef uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga174298a0445f3edf7d0097872c63ee54\">net_nfc_sap_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Typedef for Service Access Point (SAP) type.<\/td>\n<\/tr>\n<tr>\n<td>typedef uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Typedef for LLCP socket type.<\/td>\n<\/tr>\n<tr>\n<td>typedef void(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga491c253ca239587a0eeed81e3b247d25\">net_nfc_llcp_socket_cb<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga4da3344a045b69ecbb61071aa9f3653d\">net_nfc_llcp_message_e<\/a> message, int result, void *data, void *user_data, void *trans_data)<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Callback function for LLCP socket events.<\/td>\n<\/tr>\n<tr>\n<td>typedef void(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gab1c196151212b5077c95dcf829433bf9\">net_nfc_target_detection_listener_cb<\/a> )(void *data, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Callback function for target detection events.<\/td>\n<\/tr>\n<tr>\n<td>typedef void(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gae34af6c761426a484feb24469743413a\">net_nfc_se_transaction_listener_cb<\/a> )(void *data, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Callback function for secure element (SE) transaction events.<\/td>\n<\/tr>\n<tr>\n<td>typedef void(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga689b87dfe5157e1c96704763025f72e1\">net_nfc_llcp_event_listener_cb<\/a> )(void *data, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Callback function for LLCP event events.<\/td>\n<\/tr>\n<tr>\n<td>typedef void(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaab83db4473e27b1c8685e6f88d2413a5\">net_nfc_hce_apdu_listener_cb<\/a> )(void *data, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Callback function for HCE APDU events.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__data__t\">_net_nfc_data_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC data containing a buffer and its length.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__internal__data__t\">_net_nfc_internal_data_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC internal data containing a buffer and its length.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__target__handle__s\">_net_nfc_target_handle_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC target handle containing connection information.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__current__target__info__s\">_net_nfc_current_target_info_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gabda4c7219d885d9716d835bb3e4c6277\">net_nfc_current_target_info_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for current NFC target information containing handle and other details.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__config__info__s\">_net_nfc_llcp_config_info_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1744b33ffe287bfb06c19182d2c78334\">net_nfc_llcp_config_info_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for LLCP configuration information containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__socket__option__s\">_net_nfc_llcp_socket_option_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga748791370c02d9e8c3d162a8d2fe1d5b\">net_nfc_llcp_socket_option_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for LLCP socket option containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__internal__socket__s\">_net_nfc_llcp_internal_socket_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0a0b99d0385d7bd0b4940ee8c5b667e0\">net_nfc_llcp_internal_socket_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for internal LLCP socket containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__record__s\">_net_nfc_ndef_record_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0ba4dabc5c9061a1b69b886cd239d4f9\">net_nfc_ndef_record_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NDEF record containing various fields.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__message__s\">_net_nfc_ndef_message_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gac1fa068a86c561a73747e4e25b9376a7\">net_nfc_ndef_message_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NDEF message containing records.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__tag__info__s\">_net_nfc_tag_info_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga912ce58093f674b6e3fb856bd5555dfe\">net_nfc_tag_info_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC tag information containing key-value pairs.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__target__info__s\">_net_nfc_target_info_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga8e5cda4eba3751dc4bd07f669ce08ba9\">net_nfc_target_info_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC target information containing various details.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__se__event__info__s\">_net_nfc_se_event_info_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gab63986c5cefc1d1aedaea166a464ea4e\">net_nfc_se_event_info_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for secure element event information containing AID and parameter.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__transceive__info__s\">_net_nfc_transceive_info_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga391ea6af4449b623e11bbabe384fff2d\">net_nfc_transceive_info_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for transceive information containing device type and data.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__connection__handover__info__s\">_net_nfc_connection_handover_info_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga135034acca8eff6ea49d58339bd5ecfc\">net_nfc_connection_handover_info_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for connection handover information containing type and data.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__msg__t\">_net_nfc_request_msg_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaf3fa94d7f75c1a42e36be1b78d7a154d\">net_nfc_request_msg_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC request message containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__target__detected__t\">_net_nfc_request_target_detected_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gadeb11a9ddaffd494eaa2a18b257c68bc\">net_nfc_request_target_detected_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC request target detected containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__se__event__t\">_net_nfc_request_se_event_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga745bf5badd2d411366769f90e3c5d470\">net_nfc_request_se_event_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC request secure element event containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__llcp__msg__t\">_net_nfc_request_llcp_msg_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0834aa61f03afe0ccb42a0e3b6828eaa\">net_nfc_request_llcp_msg_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC request LLCP message containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__hce__apdu__t\">_net_nfc_request_hce_apdu_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gac812f30fb37daaab913e6d562b533406\">net_nfc_request_hce_apdu_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC request HCE APDU containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__listen__socket__t\">_net_nfc_request_listen_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga9b269d0ec75e30aa1347034570b03c14\">net_nfc_request_listen_socket_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC request listen socket containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__receive__socket__t\">_net_nfc_request_receive_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gabd74828e570eebc7884bceec5a4c42fb\">net_nfc_request_receive_socket_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC request receive socket containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__receive__from__socket__t\">_net_nfc_request_receive_from_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga09873ddea4d34085cc47be45f3abade2\">net_nfc_request_receive_from_socket_t<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC request receive from socket containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__stack__information__s\">_net_nfc_stack_information_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaf18fa15f673dad09d6b50cd30f4808e2\">net_nfc_stack_information_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for NFC stack information containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__secure__element__info__s\">_secure_element_info_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga264592dafa734827e956a10b7b21be0d\">net_nfc_secure_element_info_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for secure element information containing various parameters.<\/td>\n<\/tr>\n<tr>\n<td>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__hal__backend__nfc__funcs\">_hal_backend_nfc_funcs<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaa56563da02d908665512a8a3b34830f6\">hal_backend_nfc_funcs<\/a><\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td>Structure for nfc functions.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h2 id=\"content-data-structure-documentation\"><a href=https://samsungtizenos.com/"#content-data-structure-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Data Structure Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_data_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC data containing a buffer and its length.<\/p>\n<p>This structure defines an NFC data structure containing a buffer and its length.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint8_t *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a781a6dc78c2a84f97584cca587b4ef91\">buffer<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab317b2a11e2ef21bc677270ec279b1ec\">length<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation\"><a href=https://samsungtizenos.com/"#content-field-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a781a6dc78c2a84f97584cca587b4ef91\">_net_nfc_data_t::buffer<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Buffer array.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab317b2a11e2ef21bc677270ec279b1ec\">_net_nfc_data_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the buffer.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_internal_data_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC internal data containing a buffer and its length.<\/p>\n<p>This structure defines an NFC data structure containing a buffer and its length.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af543930d13ac5d2caa452f61d9514291\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7276823307c9a9a33cfea7c2aaf8ca19\">buffer<\/a> [0]<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-1\"><a href=https://samsungtizenos.com/"#content-field-documentation-1\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7276823307c9a9a33cfea7c2aaf8ca19\">_net_nfc_internal_data_t::buffer<\/a>[0]<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Buffer array.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af543930d13ac5d2caa452f61d9514291\">_net_nfc_internal_data_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the buffer.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_target_handle_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC target handle containing connection information.<\/p>\n<p>This structure defines an NFC target handle structure containing connection information.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a20e98b5a1f44e1062622f3e98fe4c814\">connection_id<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga63d69ff9fce95e54f36f3b99dbb24cf8\">net_nfc_connection_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abf3b26e6c321b0926addb02940686465\">connection_type<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga6bd59af1d3fa16d15ee7c4ae6f836814\">net_nfc_target_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a84063a283c03865878be1badae737a4d\">target_type<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga8614cd6ed288b7c683198f8b67329e9d\">net_nfc_llcp_app_protocol_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a30ec2b99e24c85b06bbebb06114ee91f\">app_type<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-2\"><a href=https://samsungtizenos.com/"#content-field-documentation-2\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga8614cd6ed288b7c683198f8b67329e9d\">net_nfc_llcp_app_protocol_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a30ec2b99e24c85b06bbebb06114ee91f\">_net_nfc_target_handle_s::app_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Application protocol type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a20e98b5a1f44e1062622f3e98fe4c814\">_net_nfc_target_handle_s::connection_id<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Connection ID.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga63d69ff9fce95e54f36f3b99dbb24cf8\">net_nfc_connection_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abf3b26e6c321b0926addb02940686465\">_net_nfc_target_handle_s::connection_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Connection type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga6bd59af1d3fa16d15ee7c4ae6f836814\">net_nfc_target_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a84063a283c03865878be1badae737a4d\">_net_nfc_target_handle_s::target_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Target type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_current_target_info_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for current NFC target information containing handle and other details.<\/p>\n<p>This structure defines a current NFC target information structure containing handle and other details.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aba0ea9f7bf6220c63e36d2cda6897624\">handle<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8480e7790b3e6284036f9a8916ac1974\">devType<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a21dfdf72a5258dcb0d354470baba77a6\">number_of_keys<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af54b7f738fbd5e7e3ae2c5bec93d5b1f\">target_info_values<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-3\"><a href=https://samsungtizenos.com/"#content-field-documentation-3\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8480e7790b3e6284036f9a8916ac1974\">_net_nfc_current_target_info_s::devType<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Device type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aba0ea9f7bf6220c63e36d2cda6897624\">_net_nfc_current_target_info_s::handle<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NFC target handle.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a21dfdf72a5258dcb0d354470baba77a6\">_net_nfc_current_target_info_s::number_of_keys<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of keys.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af54b7f738fbd5e7e3ae2c5bec93d5b1f\">_net_nfc_current_target_info_s::target_info_values<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Target information values.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_llcp_config_info_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for LLCP configuration information containing various parameters.<\/p>\n<p>This structure defines an LLCP configuration information structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint16_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a756ef3886b4e0ae13cdca0a199bf0bdf\">miu<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint16_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af31ae842e3ef16d9ddf41a64e9568dd0\">wks<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#afbf3d2e664521b8db3fbd4b7a04b03f1\">lto<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#adfc42906eb9ba7aacf2fac9654440bf2\">option<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-4\"><a href=https://samsungtizenos.com/"#content-field-documentation-4\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#afbf3d2e664521b8db3fbd4b7a04b03f1\">_net_nfc_llcp_config_info_s::lto<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Link Time Out.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint16_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a756ef3886b4e0ae13cdca0a199bf0bdf\">_net_nfc_llcp_config_info_s::miu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Maximum Information Unit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#adfc42906eb9ba7aacf2fac9654440bf2\">_net_nfc_llcp_config_info_s::option<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Option.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint16_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af31ae842e3ef16d9ddf41a64e9568dd0\">_net_nfc_llcp_config_info_s::wks<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Well-Known Services.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_llcp_socket_option_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for LLCP socket option containing various parameters.<\/p>\n<p>This structure defines an LLCP socket option structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint16_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa2c3c4833a7319cc8df76ae1153516a5\">miu<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a165315b3ac47307b7fe9021bd4d0061d\">rw<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae0f7ba89c8d687999ff678915bd1d85b\">type<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-5\"><a href=https://samsungtizenos.com/"#content-field-documentation-5\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint16_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa2c3c4833a7319cc8df76ae1153516a5\">_net_nfc_llcp_socket_option_s::miu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Maximum Information Unit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a165315b3ac47307b7fe9021bd4d0061d\">_net_nfc_llcp_socket_option_s::rw<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Receive Window Size.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae0f7ba89c8d687999ff678915bd1d85b\">_net_nfc_llcp_socket_option_s::type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Socket type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_llcp_internal_socket_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for internal LLCP socket containing various parameters.<\/p>\n<p>This structure defines an internal LLCP socket structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint16_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac138ccb4c98682dcf5a19f8346a2bad3\">miu<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a26f141791c5b6821da0902d81901fdf0\">rw<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a895bb111d055b6dd9cd508d42209bb1d\">type<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3978ccec7f07f438e4f64b812eb0b330\">oal_socket<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a097225cfd362a43b09b2221a7427769e\">client_socket<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga174298a0445f3edf7d0097872c63ee54\">net_nfc_sap_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a69e1816cec4fbeac347dd0d080e44326\">sap<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a71ffdd8d4f0ca57e927ec067f1ae0fd0\">service_name<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ad7255e6629a9c92a919c9890c98d436e\">device_id<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga491c253ca239587a0eeed81e3b247d25\">net_nfc_llcp_socket_cb<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a9d92dd3228c3eae3c44e1e8313f0e6bb\">cb<\/a><\/td>\n<\/tr>\n<tr>\n<td>bool<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7a166b08cec35ffa0946b1905ebcfb3a\">close_requested<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3506552cab1c4abc3d34b47e5f8ab57a\">register_param<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-6\"><a href=https://samsungtizenos.com/"#content-field-documentation-6\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga491c253ca239587a0eeed81e3b247d25\">net_nfc_llcp_socket_cb<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a9d92dd3228c3eae3c44e1e8313f0e6bb\">_net_nfc_llcp_internal_socket_s::cb<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Callback function.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a097225cfd362a43b09b2221a7427769e\">_net_nfc_llcp_internal_socket_s::client_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>bool <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7a166b08cec35ffa0946b1905ebcfb3a\">_net_nfc_llcp_internal_socket_s::close_requested<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Close requested flag.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ad7255e6629a9c92a919c9890c98d436e\">_net_nfc_llcp_internal_socket_s::device_id<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Device ID.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint16_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac138ccb4c98682dcf5a19f8346a2bad3\">_net_nfc_llcp_internal_socket_s::miu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Maximum Information Unit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3978ccec7f07f438e4f64b812eb0b330\">_net_nfc_llcp_internal_socket_s::oal_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>OAL socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3506552cab1c4abc3d34b47e5f8ab57a\">_net_nfc_llcp_internal_socket_s::register_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Register parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a26f141791c5b6821da0902d81901fdf0\">_net_nfc_llcp_internal_socket_s::rw<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Receive Window Size.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga174298a0445f3edf7d0097872c63ee54\">net_nfc_sap_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a69e1816cec4fbeac347dd0d080e44326\">_net_nfc_llcp_internal_socket_s::sap<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Service Access Point.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a71ffdd8d4f0ca57e927ec067f1ae0fd0\">_net_nfc_llcp_internal_socket_s::service_name<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Service name.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a895bb111d055b6dd9cd508d42209bb1d\">_net_nfc_llcp_internal_socket_s::type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Socket type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_ndef_record_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NDEF record containing various fields.<\/p>\n<p>This structure defines an NDEF record structure containing various fields.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8f041f7d25f2f3877dd09b93c44132f3\">MB<\/a>:1<\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a389597dc48eadff2bf3d3b55aa9f622e\">ME<\/a>:1<\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a20e25df8fd0738debe110f1f984463c3\">CF<\/a>:1<\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a42e8d022ce8875102e9a33ac4e8e3d0c\">SR<\/a>:1<\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8a885ac20ed6f58312bf8f666104291b\">IL<\/a>:1<\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1e0793963339bc141068493c4f1e7cdc\">TNF<\/a>:3<\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab0f3a10b854355e79f52cadb4b964d9a\">type_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa2319831882510f0c192874202aeb121\">id_s<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae8944b9d4da04e5c9d1d8505a019a7e0\">payload_s<\/a><\/td>\n<\/tr>\n<tr>\n<td>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__record__s\">_net_nfc_ndef_record_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a97602a13d5f6ec6e671e022ed0eeebac\">next<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-7\"><a href=https://samsungtizenos.com/"#content-field-documentation-7\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a20e25df8fd0738debe110f1f984463c3\">_net_nfc_ndef_record_s::CF<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Chunk Flag bit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa2319831882510f0c192874202aeb121\">_net_nfc_ndef_record_s::id_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>ID field.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8a885ac20ed6f58312bf8f666104291b\">_net_nfc_ndef_record_s::IL<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>ID Length Present bit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8f041f7d25f2f3877dd09b93c44132f3\">_net_nfc_ndef_record_s::MB<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Message Begin bit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a389597dc48eadff2bf3d3b55aa9f622e\">_net_nfc_ndef_record_s::ME<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Message End bit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__record__s\">_net_nfc_ndef_record_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a97602a13d5f6ec6e671e022ed0eeebac\">_net_nfc_ndef_record_s::next<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Pointer to next record.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae8944b9d4da04e5c9d1d8505a019a7e0\">_net_nfc_ndef_record_s::payload_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Payload field.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a42e8d022ce8875102e9a33ac4e8e3d0c\">_net_nfc_ndef_record_s::SR<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Short Record bit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1e0793963339bc141068493c4f1e7cdc\">_net_nfc_ndef_record_s::TNF<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Type Name Format bits.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab0f3a10b854355e79f52cadb4b964d9a\">_net_nfc_ndef_record_s::type_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Type field.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_ndef_message_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NDEF message containing records.<\/p>\n<p>This structure defines an NDEF message structure containing records.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a24e52af93a4736e615f2074c4c65ee4e\">recordCount<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0ba4dabc5c9061a1b69b886cd239d4f9\">net_nfc_ndef_record_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#afbf0387f8437c4b9fa69dc389ba6997a\">records<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-8\"><a href=https://samsungtizenos.com/"#content-field-documentation-8\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a24e52af93a4736e615f2074c4c65ee4e\">_net_nfc_ndef_message_s::recordCount<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of records.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0ba4dabc5c9061a1b69b886cd239d4f9\">net_nfc_ndef_record_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#afbf0387f8437c4b9fa69dc389ba6997a\">_net_nfc_ndef_message_s::records<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Pointer to records.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_tag_info_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC tag information containing key-value pairs.<\/p>\n<p>This structure defines an NFC tag information structure containing key-value pairs.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>char *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae90755a842165925fb833fad62885885\">key<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga42846b82cb8f0652a1f10786da12d483\">net_nfc_data_h<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0a7f0c2185dd05c47f9f079b558f6028\">value<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-9\"><a href=https://samsungtizenos.com/"#content-field-documentation-9\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>char* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae90755a842165925fb833fad62885885\">_net_nfc_tag_info_s::key<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Key.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga42846b82cb8f0652a1f10786da12d483\">net_nfc_data_h<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0a7f0c2185dd05c47f9f079b558f6028\">_net_nfc_tag_info_s::value<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Value.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_target_info_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC target information containing various details.<\/p>\n<p>This structure defines an NFC target information structure containing various details.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a023eb542f84246760df09f2fae6e085f\">handle<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga6bd59af1d3fa16d15ee7c4ae6f836814\">net_nfc_target_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae40ef40b06b73dd2cb276fc5018820e0\">devType<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#acc7292bc1c38310bca6df743e0639b3a\">is_ndef_supported<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a6a1eb26060788eba261edfe098383d15\">ndef_card_state<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2fb5e3364f4258e9f7564a489435cd27\">max_data_size<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7394031e659c41cb296b829cecc60f12\">actual_data_size<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4ca306cf0c635d016b2d1a54caa2fc39\">number_of_keys<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga912ce58093f674b6e3fb856bd5555dfe\">net_nfc_tag_info_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4cb6c70789b08514fc46b1866eea65ef\">tag_info_list<\/a><\/td>\n<\/tr>\n<tr>\n<td>char **<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae62e46e837f0e05d728db09e9823222c\">keylist<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a82a899a02edb7f4d5d793becc1b86889\">raw_data<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-10\"><a href=https://samsungtizenos.com/"#content-field-documentation-10\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7394031e659c41cb296b829cecc60f12\">_net_nfc_target_info_s::actual_data_size<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Actual data size.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga6bd59af1d3fa16d15ee7c4ae6f836814\">net_nfc_target_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae40ef40b06b73dd2cb276fc5018820e0\">_net_nfc_target_info_s::devType<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Device type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a023eb542f84246760df09f2fae6e085f\">_net_nfc_target_info_s::handle<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NFC target handle.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#acc7292bc1c38310bca6df743e0639b3a\">_net_nfc_target_info_s::is_ndef_supported<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NDEF support flag.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>char** <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae62e46e837f0e05d728db09e9823222c\">_net_nfc_target_info_s::keylist<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Key list.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2fb5e3364f4258e9f7564a489435cd27\">_net_nfc_target_info_s::max_data_size<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Maximum data size.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a6a1eb26060788eba261edfe098383d15\">_net_nfc_target_info_s::ndef_card_state<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NDEF card state.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4ca306cf0c635d016b2d1a54caa2fc39\">_net_nfc_target_info_s::number_of_keys<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of keys.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a82a899a02edb7f4d5d793becc1b86889\">_net_nfc_target_info_s::raw_data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Raw data.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga912ce58093f674b6e3fb856bd5555dfe\">net_nfc_tag_info_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4cb6c70789b08514fc46b1866eea65ef\">_net_nfc_target_info_s::tag_info_list<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Tag information list.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_se_event_info_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for secure element event information containing AID and parameter.<\/p>\n<p>This structure defines a secure element event information structure containing AID and parameter.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7a596009b78381892cc0b8a8ec8a4588\">aid<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ad23d94971c96d6b90b1c1f12b4df4b4d\">param<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-11\"><a href=https://samsungtizenos.com/"#content-field-documentation-11\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7a596009b78381892cc0b8a8ec8a4588\">_net_nfc_se_event_info_s::aid<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>AID.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ad23d94971c96d6b90b1c1f12b4df4b4d\">_net_nfc_se_event_info_s::param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_transceive_info_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for transceive information containing device type and data.<\/p>\n<p>This structure defines a transceive information structure containing device type and data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab4305bb5506d9d982ddd43566644062a\">dev_type<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac13b6d044f392ba63eed780a0fe4f6d6\">trans_data<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-12\"><a href=https://samsungtizenos.com/"#content-field-documentation-12\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab4305bb5506d9d982ddd43566644062a\">_net_nfc_transceive_info_s::dev_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Device type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac13b6d044f392ba63eed780a0fe4f6d6\">_net_nfc_transceive_info_s::trans_data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Transceive data.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_connection_handover_info_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for connection handover information containing type and data.<\/p>\n<p>This structure defines a connection handover information structure containing type and data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga9886708261dfc063bc1de9579df5b533\">net_nfc_conn_handover_carrier_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#acf71cfbc678043e0f92a647dc644ee30\">type<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a82ffc7789aa6ca97bc5109d82a6b32fd\">data<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-13\"><a href=https://samsungtizenos.com/"#content-field-documentation-13\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a82ffc7789aa6ca97bc5109d82a6b32fd\">_net_nfc_connection_handover_info_s::data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Data.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga9886708261dfc063bc1de9579df5b533\">net_nfc_conn_handover_carrier_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#acf71cfbc678043e0f92a647dc644ee30\">_net_nfc_connection_handover_info_s::type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Connection handover carrier type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_request_msg_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request message containing various parameters.<\/p>\n<p>This structure defines an NFC request message structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ad40880a402828f045120fe8bc0a9dd15\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa6e6f1153f54f15638c12e683ce28d93\">request_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a6e647fd167bb8eab65cc2b2e61fecf7e\">client_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a809f594fca377e83dec3ab90e4826104\">flags<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab1def6b35bc158be8ed39346bdb4d170\">user_param<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-14\"><a href=https://samsungtizenos.com/"#content-field-documentation-14\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a6e647fd167bb8eab65cc2b2e61fecf7e\">_net_nfc_request_msg_t::client_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client file descriptor.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a809f594fca377e83dec3ab90e4826104\">_net_nfc_request_msg_t::flags<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flags.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ad40880a402828f045120fe8bc0a9dd15\">_net_nfc_request_msg_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the message.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa6e6f1153f54f15638c12e683ce28d93\">_net_nfc_request_msg_t::request_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab1def6b35bc158be8ed39346bdb4d170\">_net_nfc_request_msg_t::user_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>User parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_request_target_detected_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request target detected containing various parameters.<\/p>\n<p>This structure defines an NFC request target detected structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a221981508790227093eb1b828f60bbee\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a52532bf07d8faada9879a097187de84c\">request_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8ffbf429d1ed20e1495607dca99eb02b\">client_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8ad500b954df42764fd5bc5dcefd5dd8\">flags<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae8c119976c2b6c19049a32a36aeaef05\">user_param<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abc501ecfcc173e4e2b0c36f8ea0d7fba\">handle<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1206a84d0ae069a5326d7d21d44abff4\">dev_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>int<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abd9fed6bb2043eaf4d91def8769577a8\">number_of_keys<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a75e49236fc235fb963c64f17ec7d1d86\">target_info_values<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-15\"><a href=https://samsungtizenos.com/"#content-field-documentation-15\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8ffbf429d1ed20e1495607dca99eb02b\">_net_nfc_request_target_detected_t::client_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client file descriptor.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1206a84d0ae069a5326d7d21d44abff4\">_net_nfc_request_target_detected_t::dev_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Device type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8ad500b954df42764fd5bc5dcefd5dd8\">_net_nfc_request_target_detected_t::flags<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flags.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abc501ecfcc173e4e2b0c36f8ea0d7fba\">_net_nfc_request_target_detected_t::handle<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NFC target handle.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a221981508790227093eb1b828f60bbee\">_net_nfc_request_target_detected_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the message.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abd9fed6bb2043eaf4d91def8769577a8\">_net_nfc_request_target_detected_t::number_of_keys<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Number of keys.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a52532bf07d8faada9879a097187de84c\">_net_nfc_request_target_detected_t::request_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a75e49236fc235fb963c64f17ec7d1d86\">_net_nfc_request_target_detected_t::target_info_values<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Target information values.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae8c119976c2b6c19049a32a36aeaef05\">_net_nfc_request_target_detected_t::user_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>User parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_request_se_event_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request secure element event containing various parameters.<\/p>\n<p>This structure defines an NFC request secure element event structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a437c3c72f84dd2e42789537a25cb4620\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7bea79931093d3f99f413e4c669c13f3\">request_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aebae0d2c1297b81df0cffe09c28f8f67\">client_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a82b19736221916e2707061e0dbdb966a\">flags<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4e81ebec6ef3ecaa3104d97e56e8e33e\">user_param<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac365b90cc4598ae3f7a2a186d9587ffb\">aid<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af2ba4f52dfa199cd7134cb6f16138c1d\">param<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-16\"><a href=https://samsungtizenos.com/"#content-field-documentation-16\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac365b90cc4598ae3f7a2a186d9587ffb\">_net_nfc_request_se_event_t::aid<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>AID.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aebae0d2c1297b81df0cffe09c28f8f67\">_net_nfc_request_se_event_t::client_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client file descriptor.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a82b19736221916e2707061e0dbdb966a\">_net_nfc_request_se_event_t::flags<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flags.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a437c3c72f84dd2e42789537a25cb4620\">_net_nfc_request_se_event_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the message.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af2ba4f52dfa199cd7134cb6f16138c1d\">_net_nfc_request_se_event_t::param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7bea79931093d3f99f413e4c669c13f3\">_net_nfc_request_se_event_t::request_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4e81ebec6ef3ecaa3104d97e56e8e33e\">_net_nfc_request_se_event_t::user_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>User parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_request_llcp_msg_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request LLCP message containing various parameters.<\/p>\n<p>This structure defines an NFC request LLCP message structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3ebd5f681476e6c53774c3134b59f7b0\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2e5eccee40f4bd9d83fd1ec2242ac3d6\">request_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aaf414bf80f0b3f8025cdef667c78340b\">client_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae38906d03944709c054788f183735cd3\">flags<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abad4b2d07213346800aabc43a1d9bfc8\">user_param<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1e9e24d998b3d0f954301b5b50b745f0\">result<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a20d55eb60f145cae731d3864058c14fc\">llcp_socket<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-17\"><a href=https://samsungtizenos.com/"#content-field-documentation-17\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aaf414bf80f0b3f8025cdef667c78340b\">_net_nfc_request_llcp_msg_t::client_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client file descriptor.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae38906d03944709c054788f183735cd3\">_net_nfc_request_llcp_msg_t::flags<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flags.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3ebd5f681476e6c53774c3134b59f7b0\">_net_nfc_request_llcp_msg_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the message.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a20d55eb60f145cae731d3864058c14fc\">_net_nfc_request_llcp_msg_t::llcp_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>LLCP socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2e5eccee40f4bd9d83fd1ec2242ac3d6\">_net_nfc_request_llcp_msg_t::request_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1e9e24d998b3d0f954301b5b50b745f0\">_net_nfc_request_llcp_msg_t::result<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Result.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abad4b2d07213346800aabc43a1d9bfc8\">_net_nfc_request_llcp_msg_t::user_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>User parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_request_hce_apdu_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request HCE APDU containing various parameters.<\/p>\n<p>This structure defines an NFC request HCE APDU structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4368251619f330b134a99d46f06518d5\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aaa664875343e6a8412ac01bf6d88db0c\">request_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0b62aff673a0d83cf0fcbb3748249a5a\">client_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa33a868d75fdc16412276eb734e4c6ce\">flags<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1177628a7ce4a555d3c385c7f746b32d\">user_param<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a480fde76d45157579e1ba582e0f9c8f3\">apdu<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-18\"><a href=https://samsungtizenos.com/"#content-field-documentation-18\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a480fde76d45157579e1ba582e0f9c8f3\">_net_nfc_request_hce_apdu_t::apdu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>APDU.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0b62aff673a0d83cf0fcbb3748249a5a\">_net_nfc_request_hce_apdu_t::client_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client file descriptor.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa33a868d75fdc16412276eb734e4c6ce\">_net_nfc_request_hce_apdu_t::flags<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flags.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4368251619f330b134a99d46f06518d5\">_net_nfc_request_hce_apdu_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the message.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aaa664875343e6a8412ac01bf6d88db0c\">_net_nfc_request_hce_apdu_t::request_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1177628a7ce4a555d3c385c7f746b32d\">_net_nfc_request_hce_apdu_t::user_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>User parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_request_listen_socket_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request listen socket containing various parameters.<\/p>\n<p>This structure defines an NFC request listen socket structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a387becc7c979c63c17ed787829a793de\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab79222962a22d46e39f13ecce3460435\">request_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a97debc4e2b90d089031745f8f1d973c7\">client_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ada470201cf74d17542891e955b99b3d1\">flags<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aaf19deb2eccdddb3e94d7780ce9d709a\">user_param<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af0615e6ad0bfa44a074489505848b233\">result<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aefaeb7c2b66c24909177471accb48091\">handle<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3ca8548e12dfcac4a4ef67987d6a2aef\">client_socket<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint16_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac7b181cd3d87641114b42d20a218745c\">miu<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint8_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac31400cd935f8c2858507653187c4cb2\">rw<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a92cbd9cbedc8a3e168749976137f1501\">type<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a712918600e7846d87e9bbebd57508f10\">oal_socket<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga174298a0445f3edf7d0097872c63ee54\">net_nfc_sap_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aee6b576bcb6dae67575ee6209b0af1ad\">sap<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa136c5dce27508e4b999c775129fb940\">trans_param<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a9ffac1ef3ad840b26627ccb9e322c5a4\">service_name<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-19\"><a href=https://samsungtizenos.com/"#content-field-documentation-19\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a97debc4e2b90d089031745f8f1d973c7\">_net_nfc_request_listen_socket_t::client_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client file descriptor.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3ca8548e12dfcac4a4ef67987d6a2aef\">_net_nfc_request_listen_socket_t::client_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ada470201cf74d17542891e955b99b3d1\">_net_nfc_request_listen_socket_t::flags<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flags.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aefaeb7c2b66c24909177471accb48091\">_net_nfc_request_listen_socket_t::handle<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NFC target handle.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a387becc7c979c63c17ed787829a793de\">_net_nfc_request_listen_socket_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the message.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint16_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac7b181cd3d87641114b42d20a218745c\">_net_nfc_request_listen_socket_t::miu<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Maximum Information Unit.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a712918600e7846d87e9bbebd57508f10\">_net_nfc_request_listen_socket_t::oal_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>OAL socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ab79222962a22d46e39f13ecce3460435\">_net_nfc_request_listen_socket_t::request_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af0615e6ad0bfa44a074489505848b233\">_net_nfc_request_listen_socket_t::result<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Result.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac31400cd935f8c2858507653187c4cb2\">_net_nfc_request_listen_socket_t::rw<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Receive Window Size.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga174298a0445f3edf7d0097872c63ee54\">net_nfc_sap_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aee6b576bcb6dae67575ee6209b0af1ad\">_net_nfc_request_listen_socket_t::sap<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Service Access Point.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a9ffac1ef3ad840b26627ccb9e322c5a4\">_net_nfc_request_listen_socket_t::service_name<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Service name.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa136c5dce27508e4b999c775129fb940\">_net_nfc_request_listen_socket_t::trans_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Transaction parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a92cbd9cbedc8a3e168749976137f1501\">_net_nfc_request_listen_socket_t::type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Socket type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aaf19deb2eccdddb3e94d7780ce9d709a\">_net_nfc_request_listen_socket_t::user_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>User parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_request_receive_socket_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request receive socket containing various parameters.<\/p>\n<p>This structure defines an NFC request receive socket structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a70d6175e20e67c3eb32a2959eabe53ed\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8d18220c9098b5e492bf0c68bc25a567\">request_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a40a6b0fd44a6046d3f9e869dac31eb2f\">client_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a667709def78fb3307f1e31e5159f8ba9\">flags<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a98e2c2b32c50c6a4996438025d65fd5f\">user_param<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4972c96e8f9ade4e706d33b3d2700d5a\">result<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a644e5999f0d15ca1cf49c25317b8bb9e\">handle<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac210b83592f2634c23579015e1d1771c\">client_socket<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac5a44fb5b97e5f8808380b2ee54fba59\">oal_socket<\/a><\/td>\n<\/tr>\n<tr>\n<td>size_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a09d4035fe07ad1231a1e14057dee01aa\">req_length<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a35d1a0433c270f1bc88528107935b6d0\">trans_param<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa59859884a29bb97be53ddbcfe913a6c\">data<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-20\"><a href=https://samsungtizenos.com/"#content-field-documentation-20\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a40a6b0fd44a6046d3f9e869dac31eb2f\">_net_nfc_request_receive_socket_t::client_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client file descriptor.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac210b83592f2634c23579015e1d1771c\">_net_nfc_request_receive_socket_t::client_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa59859884a29bb97be53ddbcfe913a6c\">_net_nfc_request_receive_socket_t::data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Data.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a667709def78fb3307f1e31e5159f8ba9\">_net_nfc_request_receive_socket_t::flags<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flags.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a644e5999f0d15ca1cf49c25317b8bb9e\">_net_nfc_request_receive_socket_t::handle<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NFC target handle.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a70d6175e20e67c3eb32a2959eabe53ed\">_net_nfc_request_receive_socket_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the message.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac5a44fb5b97e5f8808380b2ee54fba59\">_net_nfc_request_receive_socket_t::oal_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>OAL socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>size_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a09d4035fe07ad1231a1e14057dee01aa\">_net_nfc_request_receive_socket_t::req_length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request length.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8d18220c9098b5e492bf0c68bc25a567\">_net_nfc_request_receive_socket_t::request_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4972c96e8f9ade4e706d33b3d2700d5a\">_net_nfc_request_receive_socket_t::result<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Result.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a35d1a0433c270f1bc88528107935b6d0\">_net_nfc_request_receive_socket_t::trans_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Transaction parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a98e2c2b32c50c6a4996438025d65fd5f\">_net_nfc_request_receive_socket_t::user_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>User parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_request_receive_from_socket_t<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request receive from socket containing various parameters.<\/p>\n<p>This structure defines an NFC request receive from socket structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abca6a34de900d07ededc5dc8da2902e0\">length<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aed3d8c2f077bd7676407dd8909f2ff2b\">request_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2eae7e0d0d2043ad6bd277c765a67e23\">client_fd<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3d41aeea33c0f907ff7213a372c7bf99\">flags<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aac5c998b4d428550b7f93541799ed5dc\">user_param<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a118ff39493d970ad411204b459018e93\">result<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2e8a381835d12f00e6e780c06dd4f2b8\">handle<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa7632601c9c3e23ea4991ad1007ae7ec\">client_socket<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac29272a09e6de8b70aedb5c48833ffd2\">oal_socket<\/a><\/td>\n<\/tr>\n<tr>\n<td>size_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4cc7406a4dd3c2656b8f20881145866d\">req_length<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga174298a0445f3edf7d0097872c63ee54\">net_nfc_sap_t<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4bab00965ea6ebb9e49e79affd129b9a\">sap<\/a><\/td>\n<\/tr>\n<tr>\n<td>void *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aae24b79181ec7b30e1186d1c34394397\">trans_param<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#afed1af8dde70878bb85f44601de646ea\">data<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-21\"><a href=https://samsungtizenos.com/"#content-field-documentation-21\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2eae7e0d0d2043ad6bd277c765a67e23\">_net_nfc_request_receive_from_socket_t::client_fd<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client file descriptor.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa7632601c9c3e23ea4991ad1007ae7ec\">_net_nfc_request_receive_from_socket_t::client_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Client socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#afed1af8dde70878bb85f44601de646ea\">_net_nfc_request_receive_from_socket_t::data<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Data.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3d41aeea33c0f907ff7213a372c7bf99\">_net_nfc_request_receive_from_socket_t::flags<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Flags.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2e8a381835d12f00e6e780c06dd4f2b8\">_net_nfc_request_receive_from_socket_t::handle<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NFC target handle.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abca6a34de900d07ededc5dc8da2902e0\">_net_nfc_request_receive_from_socket_t::length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Length of the message.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac29272a09e6de8b70aedb5c48833ffd2\">_net_nfc_request_receive_from_socket_t::oal_socket<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>OAL socket.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>size_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4cc7406a4dd3c2656b8f20881145866d\">_net_nfc_request_receive_from_socket_t::req_length<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request length.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aed3d8c2f077bd7676407dd8909f2ff2b\">_net_nfc_request_receive_from_socket_t::request_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Request type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a118ff39493d970ad411204b459018e93\">_net_nfc_request_receive_from_socket_t::result<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Result.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga174298a0445f3edf7d0097872c63ee54\">net_nfc_sap_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4bab00965ea6ebb9e49e79affd129b9a\">_net_nfc_request_receive_from_socket_t::sap<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Service Access Point.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aae24b79181ec7b30e1186d1c34394397\">_net_nfc_request_receive_from_socket_t::trans_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Transaction parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>void* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aac5c998b4d428550b7f93541799ed5dc\">_net_nfc_request_receive_from_socket_t::user_param<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>User parameter.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _net_nfc_stack_information_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC stack information containing various parameters.<\/p>\n<p>This structure defines an NFC stack information structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae929c8303717b9222ed4cca24da30bab\">net_nfc_supported_target_type<\/a><\/td>\n<\/tr>\n<tr>\n<td>uint32_t<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa75712f42048aba842dcc5e162e8b495\">net_nfc_fw_version<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-22\"><a href=https://samsungtizenos.com/"#content-field-documentation-22\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa75712f42048aba842dcc5e162e8b495\">_net_nfc_stack_information_s::net_nfc_fw_version<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Firmware version.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae929c8303717b9222ed4cca24da30bab\">_net_nfc_stack_information_s::net_nfc_supported_target_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Supported target type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _secure_element_info_s<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for secure element information containing various parameters.<\/p>\n<p>This structure defines a secure element information structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a50dba28340eb37a6c6c552a1c8b19c24\">handle<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1aeb75e3260606f7376fb06c6018a84c\">net_nfc_secure_element_type_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af81f519bc7fa6bc3973c757e5f12764b\">secure_element_type<\/a><\/td>\n<\/tr>\n<tr>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0de48df3e57c9b89adf5e07034b64b5d\">net_nfc_secure_element_state_e<\/a><\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#acf15f8944229b5a1fc12866294af1f3a\">secure_element_state<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-23\"><a href=https://samsungtizenos.com/"#content-field-documentation-23\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a50dba28340eb37a6c6c552a1c8b19c24\">_secure_element_info_s::handle<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>NFC target handle.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0de48df3e57c9b89adf5e07034b64b5d\">net_nfc_secure_element_state_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#acf15f8944229b5a1fc12866294af1f3a\">_secure_element_info_s::secure_element_state<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Secure element state.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1aeb75e3260606f7376fb06c6018a84c\">net_nfc_secure_element_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af81f519bc7fa6bc3973c757e5f12764b\">_secure_element_info_s::secure_element_type<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Secure element type.<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>struct _hal_backend_nfc_funcs<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for nfc functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>Data Fields<\/th>\n<th><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae9ad81a02d4e638bdc47438b9dd8df79\">start<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a553e1516df468b46c5330c5f26a6b769\">stop<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aac1c02f521da0d0cf01efd529b6df34c\">register_listener<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gab1c196151212b5077c95dcf829433bf9\">net_nfc_target_detection_listener_cb<\/a> target_detection_listener, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gae34af6c761426a484feb24469743413a\">net_nfc_se_transaction_listener_cb<\/a> se_transaction_listener, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga689b87dfe5157e1c96704763025f72e1\">net_nfc_llcp_event_listener_cb<\/a> llcp_event_listener, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaab83db4473e27b1c8685e6f88d2413a5\">net_nfc_hce_apdu_listener_cb<\/a> hce_apdu_listener)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae63e52da3c3a8ce2df0ea4d4f455ac8e\">unregister_listener<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa93c106ddf027af57923d6cfb4f3bd2c\">get_firmware_version<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **data)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#adba1cbfe7e81c25b8a977e714e6e61c7\">support_nfc<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a829c5336b0e205e722ec40bd3996174a\">check_firmware_version<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a91c120bec45421200f247a39298dda2d\">update_firmware<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8dc9177ed91e2efff071def076cf8281\">get_stack_information<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaf18fa15f673dad09d6b50cd30f4808e2\">net_nfc_stack_information_s<\/a> *stack_info)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2b151c5e9a07b84b0750c849caca824a\">configure_discovery<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga54013c0491df098da462bafe4d543f8f\">net_nfc_discovery_mode_e<\/a> mode, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaafb66cc4832fc6141bf322480cb12ebb\">net_nfc_event_filter_e<\/a> config)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#afbfdae0df1c8559c3ba3343fbcb4d5e7\">check_target_presence<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ad2f137497d61c134dda667cffe64dd73\">connect<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a6985012425018438520d22b152eb0eef\">disconnect<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a53a83cb05042c2ea00042ef816c2ac35\">check_ndef<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, uint8_t *ndef_card_state, int *max_data_size, int *real_data_size)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3cf86845de82d44f1f41219d49506ac2\">read_ndef<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **data)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0a43787821cc9aec1ccb772c0fd457ff\">write_ndef<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a781a1e926e08ea662db54b9716309d08\">make_read_only_ndef<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0b17e47716bec35001336f5c34e65e76\">format_ndef<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *secure_key)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a95eae4056ef250077f253ae832acea05\">transceive<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga391ea6af4449b623e11bbabe384fff2d\">net_nfc_transceive_info_s<\/a> *info, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **data)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a01832ebf5b99aa5cc38caf4db9debfae\">exception_handler<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abc4b6137088dc8c134ca9d338ed6f81c\">is_ready<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0ac34f031a96b1529087c1505f42e34e\">llcp_config<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1744b33ffe287bfb06c19182d2c78334\">net_nfc_llcp_config_info_s<\/a> *config)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a33e809b4c15519069fd08636c5800f1d\">llcp_check_llcp<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a532b03a3101f7f51076335cdd300b1ae\">llcp_activate_llcp<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a456bb1d5fe3ffdf7112b01e9e86c67f7\">llcp_create_socket<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> *socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a> type, uint16_t miu, uint8_t rw, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac048c44ce943419542c667488eab22ca\">llcp_bind<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, uint8_t service_access_point)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7aa3afa4d70958a47beea27ef03f4c9f\">llcp_listen<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, uint8_t *service_access_name, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a84c40f60c989e01c0bab32cb55279f25\">llcp_accept<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4d12462633c9c9b69c6ac8b1091c47d4\">llcp_connect_by_url<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, uint8_t *service_access_name, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a12db9cbf52c5e7ad04e21f330eec8a62\">llcp_connect<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, uint8_t service_access_point, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aefaa866f0a7a8e3ad43c93d307ca6921\">llcp_disconnect<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae3074e927485218df0dec0aa632a8e2c\">llcp_socket_close<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a894f73e9b2406024b866f453e6b581c0\">llcp_recv<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa272f838cdab66af24b50c29916e7fa6\">llcp_send<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a50212b3323adc1567b72d379cf4e1c9e\">llcp_recv_from<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a48dc6c48177f6bf20f6c833fb6fc1129\">llcp_send_to<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data, uint8_t service_access_point, void *user_param)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a6e9cabbba6c4d8974d5c4677ded8dbac\">llcp_reject<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1d7c6daf7351a8cc3753d99a5493b006\">llcp_get_remote_config<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1744b33ffe287bfb06c19182d2c78334\">net_nfc_llcp_config_info_s<\/a> *config)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aca3485bc650845b2f3f38a6a55b36a74\">llcp_get_remote_socket_info<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga748791370c02d9e8c3d162a8d2fe1d5b\">net_nfc_llcp_socket_option_s<\/a> *option)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3aae9f68ae9bc0a4c543bd70a890d11a\">secure_element_open<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1aeb75e3260606f7376fb06c6018a84c\">net_nfc_secure_element_type_e<\/a> element_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> **handle)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3039cf59bcb89d78cf23e924be27833f\">secure_element_get_atr<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **atr)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae320d71b2e4af79d4ef57d6c0779fc62\">secure_element_send_apdu<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *command, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **response)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2329e871d40cf7f5b0253192fddb48ac\">secure_element_close<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1cc78bcdfa067030ef8b5317c1ac4766\">get_secure_element_list<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga264592dafa734827e956a10b7b21be0d\">net_nfc_secure_element_info_s<\/a> *list, int *count)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac1755d5f32b8b6e46d869f8d2de23872\">set_secure_element_mode<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1aeb75e3260606f7376fb06c6018a84c\">net_nfc_secure_element_type_e<\/a> element_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gafdc8574b967c2a6fce01eb7d5c049ff8\">net_nfc_secure_element_mode_e<\/a> mode)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#adbd6d76113511ee9feed953823622269\">test_mode_on<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4333bcd6edbd19cd636a6b0548db569c\">test_mode_off<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a59a4c70d8c8bf379665671a8a504f29a\">hce_response_apdu<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *response)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2fe223952e3d0119372c48702ab19c06\">secure_element_route_aid<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *aid, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> se_type, int power)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af6ffb0cac254ddab95e4f6c0a4012c89\">secure_element_unroute_aid<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *aid)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aabcf5e94827c7eec8d4346a0d5ebb540\">secure_element_commit_routing<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4174a796da2d8e4e158adb323d398d38\">secure_element_set_default_route<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> switch_on, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> switch_off, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> battery_off)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a45e286ee5e3c208be088a5e15cec1e9b\">secure_element_clear_aid_table<\/a> )(void)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae3f56e81c0efb7f1a08766a0a1040863\">secure_element_get_aid_table_size<\/a> )(int *table_size)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a04cc92713aa4b934154d94c1fa1163da\">secure_element_set_route_entry<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2fa2c686a8ef9bb6e466bcc7ea3fd513\">net_nfc_se_entry_type_e<\/a> type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaee9af17942e5f94d71b5e2d108fb97b4\">net_nfc_se_tech_protocol_type_e<\/a> value, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> route, int power)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a68095ea62af2829491edf327f6a33410\">secure_element_clear_routing_entry<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2fa2c686a8ef9bb6e466bcc7ea3fd513\">net_nfc_se_entry_type_e<\/a> type)<\/td>\n<\/tr>\n<tr>\n<td>int(*<\/td>\n<td><a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a61d595ef4e7113f5c77c33c734fb4734\">secure_element_set_listen_tech_mask<\/a> )(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaee9af17942e5f94d71b5e2d108fb97b4\">net_nfc_se_tech_protocol_type_e<\/a> screen_state)<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/div>\n<hr \/>\n<h4 id=\"content-field-documentation-24\"><a href=https://samsungtizenos.com/"#content-field-documentation-24\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Field Documentation<\/h4>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a829c5336b0e205e722ec40bd3996174a\">_hal_backend_nfc_funcs::check_firmware_version<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Updates the firmware of the NFC module<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a53a83cb05042c2ea00042ef816c2ac35\">_hal_backend_nfc_funcs::check_ndef<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, uint8_t *ndef_card_state, int *max_data_size, int *real_data_size)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Reads an NDEF message<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#afbfdae0df1c8559c3ba3343fbcb4d5e7\">_hal_backend_nfc_funcs::check_target_presence<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Connects to a target<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2b151c5e9a07b84b0750c849caca824a\">_hal_backend_nfc_funcs::configure_discovery<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga54013c0491df098da462bafe4d543f8f\">net_nfc_discovery_mode_e<\/a> mode, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaafb66cc4832fc6141bf322480cb12ebb\">net_nfc_event_filter_e<\/a> config)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Checks whether a target is present<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ad2f137497d61c134dda667cffe64dd73\">_hal_backend_nfc_funcs::connect<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Disconnects from a target<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a6985012425018438520d22b152eb0eef\">_hal_backend_nfc_funcs::disconnect<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Checks whether an NDEF message is supported<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a01832ebf5b99aa5cc38caf4db9debfae\">_hal_backend_nfc_funcs::exception_handler<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Checks whether the NFC module is ready<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0b17e47716bec35001336f5c34e65e76\">_hal_backend_nfc_funcs::format_ndef<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *secure_key)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Transceives data with a target<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa93c106ddf027af57923d6cfb4f3bd2c\">_hal_backend_nfc_funcs::get_firmware_version<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **data)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Checks whether the NFC module is supported<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1cc78bcdfa067030ef8b5317c1ac4766\">_hal_backend_nfc_funcs::get_secure_element_list<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga264592dafa734827e956a10b7b21be0d\">net_nfc_secure_element_info_s<\/a> *list, int *count)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sets the mode of a secure element<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a8dc9177ed91e2efff071def076cf8281\">_hal_backend_nfc_funcs::get_stack_information<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaf18fa15f673dad09d6b50cd30f4808e2\">net_nfc_stack_information_s<\/a> *stack_info)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Configures the discovery mode and settings<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a59a4c70d8c8bf379665671a8a504f29a\">_hal_backend_nfc_funcs::hce_response_apdu<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *response)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Routes an AID to a secure element<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#abc4b6137088dc8c134ca9d338ed6f81c\">_hal_backend_nfc_funcs::is_ready<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Configures LLCP settings<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a84c40f60c989e01c0bab32cb55279f25\">_hal_backend_nfc_funcs::llcp_accept<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Connects using a URL<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a532b03a3101f7f51076335cdd300b1ae\">_hal_backend_nfc_funcs::llcp_activate_llcp<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Creates a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac048c44ce943419542c667488eab22ca\">_hal_backend_nfc_funcs::llcp_bind<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, uint8_t service_access_point)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Listens on a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a33e809b4c15519069fd08636c5800f1d\">_hal_backend_nfc_funcs::llcp_check_llcp<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Activates LLCP<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0ac34f031a96b1529087c1505f42e34e\">_hal_backend_nfc_funcs::llcp_config<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1744b33ffe287bfb06c19182d2c78334\">net_nfc_llcp_config_info_s<\/a> *config)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Checks whether LLCP is supported<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a12db9cbf52c5e7ad04e21f330eec8a62\">_hal_backend_nfc_funcs::llcp_connect<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, uint8_t service_access_point, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Disconnects from a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4d12462633c9c9b69c6ac8b1091c47d4\">_hal_backend_nfc_funcs::llcp_connect_by_url<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, uint8_t *service_access_name, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Connects using a service access point<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a456bb1d5fe3ffdf7112b01e9e86c67f7\">_hal_backend_nfc_funcs::llcp_create_socket<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> *socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a> type, uint16_t miu, uint8_t rw, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Binds a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aefaa866f0a7a8e3ad43c93d307ca6921\">_hal_backend_nfc_funcs::llcp_disconnect<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Closes a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a1d7c6daf7351a8cc3753d99a5493b006\">_hal_backend_nfc_funcs::llcp_get_remote_config<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1744b33ffe287bfb06c19182d2c78334\">net_nfc_llcp_config_info_s<\/a> *config)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Gets the remote socket information<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aca3485bc650845b2f3f38a6a55b36a74\">_hal_backend_nfc_funcs::llcp_get_remote_socket_info<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga748791370c02d9e8c3d162a8d2fe1d5b\">net_nfc_llcp_socket_option_s<\/a> *option)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Opens a secure element<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a7aa3afa4d70958a47beea27ef03f4c9f\">_hal_backend_nfc_funcs::llcp_listen<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, uint8_t *service_access_name, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Accepts a connection request<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a894f73e9b2406024b866f453e6b581c0\">_hal_backend_nfc_funcs::llcp_recv<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sends data on a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a50212b3323adc1567b72d379cf4e1c9e\">_hal_backend_nfc_funcs::llcp_recv_from<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sends data on a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a6e9cabbba6c4d8974d5c4677ded8dbac\">_hal_backend_nfc_funcs::llcp_reject<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Gets the remote LLCP configuration<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aa272f838cdab66af24b50c29916e7fa6\">_hal_backend_nfc_funcs::llcp_send<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Receives data on a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a48dc6c48177f6bf20f6c833fb6fc1129\">_hal_backend_nfc_funcs::llcp_send_to<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data, uint8_t service_access_point, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Rejects a connection request<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae3074e927485218df0dec0aa632a8e2c\">_hal_backend_nfc_funcs::llcp_socket_close<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a> socket)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Receives data on a socket<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a781a1e926e08ea662db54b9716309d08\">_hal_backend_nfc_funcs::make_read_only_ndef<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Formats an NDEF message<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3cf86845de82d44f1f41219d49506ac2\">_hal_backend_nfc_funcs::read_ndef<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **data)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Writes an NDEF message<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aac1c02f521da0d0cf01efd529b6df34c\">_hal_backend_nfc_funcs::register_listener<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gab1c196151212b5077c95dcf829433bf9\">net_nfc_target_detection_listener_cb<\/a> target_detection_listener, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gae34af6c761426a484feb24469743413a\">net_nfc_se_transaction_listener_cb<\/a> se_transaction_listener, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga689b87dfe5157e1c96704763025f72e1\">net_nfc_llcp_event_listener_cb<\/a> llcp_event_listener, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaab83db4473e27b1c8685e6f88d2413a5\">net_nfc_hce_apdu_listener_cb<\/a> hce_apdu_listener)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Unregisters the registered listener<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a45e286ee5e3c208be088a5e15cec1e9b\">_hal_backend_nfc_funcs::secure_element_clear_aid_table<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Gets the size of the AID table<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a68095ea62af2829491edf327f6a33410\">_hal_backend_nfc_funcs::secure_element_clear_routing_entry<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2fa2c686a8ef9bb6e466bcc7ea3fd513\">net_nfc_se_entry_type_e<\/a> type)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sets the technology mask for listening<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2329e871d40cf7f5b0253192fddb48ac\">_hal_backend_nfc_funcs::secure_element_close<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Gets the list of secure elements<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#aabcf5e94827c7eec8d4346a0d5ebb540\">_hal_backend_nfc_funcs::secure_element_commit_routing<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sets the default route for different states<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae3f56e81c0efb7f1a08766a0a1040863\">_hal_backend_nfc_funcs::secure_element_get_aid_table_size<\/a>)(int *table_size)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sets a routing entry<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3039cf59bcb89d78cf23e924be27833f\">_hal_backend_nfc_funcs::secure_element_get_atr<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **atr)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sends an APDU command to a secure element<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a3aae9f68ae9bc0a4c543bd70a890d11a\">_hal_backend_nfc_funcs::secure_element_open<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1aeb75e3260606f7376fb06c6018a84c\">net_nfc_secure_element_type_e<\/a> element_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> **handle)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Gets the ATR information of a secure element<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a2fe223952e3d0119372c48702ab19c06\">_hal_backend_nfc_funcs::secure_element_route_aid<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *aid, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> se_type, int power)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Unroutes an AID from a secure element<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae320d71b2e4af79d4ef57d6c0779fc62\">_hal_backend_nfc_funcs::secure_element_send_apdu<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *command, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **response)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Closes a secure element<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4174a796da2d8e4e158adb323d398d38\">_hal_backend_nfc_funcs::secure_element_set_default_route<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> switch_on, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> switch_off, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> battery_off)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Clears the AID table<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a61d595ef4e7113f5c77c33c734fb4734\">_hal_backend_nfc_funcs::secure_element_set_listen_tech_mask<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaee9af17942e5f94d71b5e2d108fb97b4\">net_nfc_se_tech_protocol_type_e<\/a> screen_state)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sets the screen state<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a04cc92713aa4b934154d94c1fa1163da\">_hal_backend_nfc_funcs::secure_element_set_route_entry<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2fa2c686a8ef9bb6e466bcc7ea3fd513\">net_nfc_se_entry_type_e<\/a> type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaee9af17942e5f94d71b5e2d108fb97b4\">net_nfc_se_tech_protocol_type_e<\/a> value, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a> route, int power)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Clears a routing entry<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#af6ffb0cac254ddab95e4f6c0a4012c89\">_hal_backend_nfc_funcs::secure_element_unroute_aid<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *aid)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Commits the routing table<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ac1755d5f32b8b6e46d869f8d2de23872\">_hal_backend_nfc_funcs::set_secure_element_mode<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1aeb75e3260606f7376fb06c6018a84c\">net_nfc_secure_element_type_e<\/a> element_type, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gafdc8574b967c2a6fce01eb7d5c049ff8\">net_nfc_secure_element_mode_e<\/a> mode)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enables test mode<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae9ad81a02d4e638bdc47438b9dd8df79\">_hal_backend_nfc_funcs::start<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>&lt; Starts the NFC module Stops the NFC module<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a553e1516df468b46c5330c5f26a6b769\">_hal_backend_nfc_funcs::stop<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Registers listeners for specific events<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#adba1cbfe7e81c25b8a977e714e6e61c7\">_hal_backend_nfc_funcs::support_nfc<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Checks the firmware version of the NFC module<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a4333bcd6edbd19cd636a6b0548db569c\">_hal_backend_nfc_funcs::test_mode_off<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Sends a response APDU in HCE mode<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#adbd6d76113511ee9feed953823622269\">_hal_backend_nfc_funcs::test_mode_on<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Disables test mode<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a95eae4056ef250077f253ae832acea05\">_hal_backend_nfc_funcs::transceive<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga391ea6af4449b623e11bbabe384fff2d\">net_nfc_transceive_info_s<\/a> *info, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> **data)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handles exceptions<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ae63e52da3c3a8ce2df0ea4d4f455ac8e\">_hal_backend_nfc_funcs::unregister_listener<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Gets the firmware version of the NFC module<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a91c120bec45421200f247a39298dda2d\">_hal_backend_nfc_funcs::update_firmware<\/a>)(void)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Gets the stack information of the NFC module<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>int(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#a0a43787821cc9aec1ccb772c0fd457ff\">_hal_backend_nfc_funcs::write_ndef<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a> *handle, <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a> *data)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Makes an NDEF message read-only<\/p>\n<hr \/>\n<h2 id=\"content-typedef-documentation\"><a href=https://samsungtizenos.com/"#content-typedef-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Typedef Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__hal__backend__nfc__funcs\">_hal_backend_nfc_funcs<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaa56563da02d908665512a8a3b34830f6\">hal_backend_nfc_funcs<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for nfc functions.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaba574a6aef47010d18e0c930bd0ef390\">_client_state_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga30fbf77f464add7f7fb861ee1fc18ed1\">net_nfc_client_state_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different states of NFC clients.<\/p>\n<p>This enumeration defines different states of NFC clients that can be encountered.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__connection__handover__info__s\">_net_nfc_connection_handover_info_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gad762428990b3f9b89d2fbdec63dfe536\">net_nfc_connection_handover_info_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handle for connection handover information structure.<\/p>\n<p>This typedef defines a handle for a connection handover information structure.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__connection__handover__info__s\">_net_nfc_connection_handover_info_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga135034acca8eff6ea49d58339bd5ecfc\">net_nfc_connection_handover_info_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for connection handover information containing type and data.<\/p>\n<p>This structure defines a connection handover information structure containing type and data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gad4d5ecdc374d698fa48efb736c31a614\">_net_nfc_connection_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga63d69ff9fce95e54f36f3b99dbb24cf8\">net_nfc_connection_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC connection types.<\/p>\n<p>This enumeration defines different types of NFC connection types that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__current__target__info__s\">_net_nfc_current_target_info_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gabda4c7219d885d9716d835bb3e4c6277\">net_nfc_current_target_info_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for current NFC target information containing handle and other details.<\/p>\n<p>This structure defines a current NFC target information structure containing handle and other details.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct _net_nfc_data_s* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga42846b82cb8f0652a1f10786da12d483\">net_nfc_data_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handle for data structure.<\/p>\n<p>This typedef defines a handle for a data structure.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__data__t\">_net_nfc_data_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga82486310604b9278c3c38d93831cdebb\">net_nfc_data_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC data containing a buffer and its length.<\/p>\n<p>This structure defines an NFC data structure containing a buffer and its length.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaff1793154170ba3466a58280a331486f\">_net_nfc_discovery_mode_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga54013c0491df098da462bafe4d543f8f\">net_nfc_discovery_mode_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of discovery modes.<\/p>\n<p>This enumeration defines different types of discovery modes that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaab83db4473e27b1c8685e6f88d2413a5\">net_nfc_hce_apdu_listener_cb<\/a>)(void *data, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Callback function for HCE APDU events.<\/p>\n<p>This typedef defines a callback function for HCE APDU events.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Parameters:<\/strong>\n: | [in] | data | The data associated with the event. |\n| --- | --- | --- |\n| [in] | user_param | The user parameter passed to the callback function. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__internal__data__t\">_net_nfc_internal_data_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga908d497090cf5f6d986072f1ed3c3841\">net_nfc_internal_data_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC internal data containing a buffer and its length.<\/p>\n<p>This structure defines an NFC data structure containing a buffer and its length.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaa8a2bd119771288029e0f4aef8f850f6\">_net_nfc_launch_popup_check_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaf497e2c45a1b02b7325d5141a62ae068\">net_nfc_launch_popup_check_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of launch popup checks.<\/p>\n<p>This enumeration defines different types of launch popup checks that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2e904f9a16c2eabf6421e70e832a84b4\">_net_nfc_launch_popup_state_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga53c06836491825e4231846f1335b6088\">net_nfc_launch_popup_state_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different states of launch popup selection.<\/p>\n<p>This enumeration defines different states of launch popup selection that can be encountered.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__config__info__s\">_net_nfc_llcp_config_info_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a5f75a49385c4d70a1cd715fc52863e\">net_nfc_llcp_config_info_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handle for LLCP configuration information structure.<\/p>\n<p>This typedef defines a handle for an LLCP configuration information structure.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__config__info__s\">_net_nfc_llcp_config_info_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1744b33ffe287bfb06c19182d2c78334\">net_nfc_llcp_config_info_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for LLCP configuration information containing various parameters.<\/p>\n<p>This structure defines an LLCP configuration information structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gabf35ddef9d8185334ec48f68660b8642\">_llcp_event_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga122c3670040e2d480b8b643aa01c3de9\">net_nfc_llcp_event_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of LLCP events.<\/p>\n<p>This enumeration defines different types of LLCP events that can be received.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga689b87dfe5157e1c96704763025f72e1\">net_nfc_llcp_event_listener_cb<\/a>)(void *data, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Callback function for LLCP event events.<\/p>\n<p>This typedef defines a callback function for LLCP event events.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Parameters:<\/strong>\n: | [in] | data | The data associated with the event. |\n| --- | --- | --- |\n| [in] | user_param | The user parameter passed to the callback function. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__internal__socket__s\">_net_nfc_llcp_internal_socket_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0a0b99d0385d7bd0b4940ee8c5b667e0\">net_nfc_llcp_internal_socket_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for internal LLCP socket containing various parameters.<\/p>\n<p>This structure defines an internal LLCP socket structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga491c253ca239587a0eeed81e3b247d25\">net_nfc_llcp_socket_cb<\/a>)(<a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga4da3344a045b69ecbb61071aa9f3653d\">net_nfc_llcp_message_e<\/a> message, int result, void *data, void *user_data, void *trans_data)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Callback function for LLCP socket events.<\/p>\n<p>This typedef defines a callback function for LLCP socket events.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Parameters:<\/strong>\n: | [in] | message | The type of LLCP message. |\n| --- | --- | --- |\n| [in] | result | The result of the operation. |\n| [in] | data | The data associated with the message. |\n| [in] | user_data | The user data passed to the callback function. |\n| [in] | trans_data | The transaction data associated with the message. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__socket__option__s\">_net_nfc_llcp_socket_option_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga31ece768bc9fa18f934aa39319f8c593\">net_nfc_llcp_socket_option_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handle for LLCP socket option structure.<\/p>\n<p>This typedef defines a handle for an LLCP socket option structure.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__llcp__socket__option__s\">_net_nfc_llcp_socket_option_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga748791370c02d9e8c3d162a8d2fe1d5b\">net_nfc_llcp_socket_option_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for LLCP socket option containing various parameters.<\/p>\n<p>This structure defines an LLCP socket option structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef uint32_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga7a74f4caf125ec4d444841a066834fc3\">net_nfc_llcp_socket_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Typedef for LLCP socket type.<\/p>\n<p>This typedef defines a type for LLCP socket.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2aa72f38bd5b06146b4d3c1dd3743a2b\">_net_nfc_message_service_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gadc81029fab3f567a734bb9dba13a0684\">net_nfc_message_service_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC service messages.<\/p>\n<p>This enumeration defines different types of NFC service messages that can be received.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__message__s\">_net_nfc_ndef_message_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gafc1f12e232b1372545ae3ff89ad44d46\">net_nfc_ndef_message_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handle for NDEF message structure.<\/p>\n<p>This typedef defines a handle for an NDEF message structure.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__message__s\">_net_nfc_ndef_message_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gac1fa068a86c561a73747e4e25b9376a7\">net_nfc_ndef_message_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NDEF message containing records.<\/p>\n<p>This structure defines an NDEF message structure containing records.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__record__s\">_net_nfc_ndef_record_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gae128d706f555e40e275f9563fffcbb58\">net_nfc_ndef_record_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handle for NDEF record structure.<\/p>\n<p>This typedef defines a handle for an NDEF record structure.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__ndef__record__s\">_net_nfc_ndef_record_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0ba4dabc5c9061a1b69b886cd239d4f9\">net_nfc_ndef_record_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NDEF record containing various fields.<\/p>\n<p>This structure defines an NDEF record structure containing various fields.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga572ebe75a5cc9347305a5fec2fbde09e\">_net_nfc_privilege_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0dee900078f0344762abe35232042ca2\">net_nfc_privilege_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC privileges.<\/p>\n<p>This enumeration defines different types of NFC privileges that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__hce__apdu__t\">_net_nfc_request_hce_apdu_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gac812f30fb37daaab913e6d562b533406\">net_nfc_request_hce_apdu_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request HCE APDU containing various parameters.<\/p>\n<p>This structure defines an NFC request HCE APDU structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__listen__socket__t\">_net_nfc_request_listen_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga9b269d0ec75e30aa1347034570b03c14\">net_nfc_request_listen_socket_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request listen socket containing various parameters.<\/p>\n<p>This structure defines an NFC request listen socket structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__llcp__msg__t\">_net_nfc_request_llcp_msg_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0834aa61f03afe0ccb42a0e3b6828eaa\">net_nfc_request_llcp_msg_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request LLCP message containing various parameters.<\/p>\n<p>This structure defines an NFC request LLCP message structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__msg__t\">_net_nfc_request_msg_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaf3fa94d7f75c1a42e36be1b78d7a154d\">net_nfc_request_msg_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request message containing various parameters.<\/p>\n<p>This structure defines an NFC request message structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__receive__from__socket__t\">_net_nfc_request_receive_from_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga09873ddea4d34085cc47be45f3abade2\">net_nfc_request_receive_from_socket_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request receive from socket containing various parameters.<\/p>\n<p>This structure defines an NFC request receive from socket structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__receive__socket__t\">_net_nfc_request_receive_socket_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gabd74828e570eebc7884bceec5a4c42fb\">net_nfc_request_receive_socket_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request receive socket containing various parameters.<\/p>\n<p>This structure defines an NFC request receive socket structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__se__event__t\">_net_nfc_request_se_event_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga745bf5badd2d411366769f90e3c5d470\">net_nfc_request_se_event_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request secure element event containing various parameters.<\/p>\n<p>This structure defines an NFC request secure element event structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__request__target__detected__t\">_net_nfc_request_target_detected_t<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gadeb11a9ddaffd494eaa2a18b257c68bc\">net_nfc_request_target_detected_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC request target detected containing various parameters.<\/p>\n<p>This structure defines an NFC request target detected structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef uint8_t <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga174298a0445f3edf7d0097872c63ee54\">net_nfc_sap_t<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Typedef for Service Access Point (SAP) type.<\/p>\n<p>This typedef defines a type for Service Access Point (SAP).<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__se__event__info__s\">_net_nfc_se_event_info_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gab63986c5cefc1d1aedaea166a464ea4e\">net_nfc_se_event_info_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for secure element event information containing AID and parameter.<\/p>\n<p>This structure defines a secure element event information structure containing AID and parameter.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gae34af6c761426a484feb24469743413a\">net_nfc_se_transaction_listener_cb<\/a>)(void *data, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Callback function for secure element (SE) transaction events.<\/p>\n<p>This typedef defines a callback function for secure element (SE) transaction events.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Parameters:<\/strong>\n: | [in] | data | The data associated with the event. |\n| --- | --- | --- |\n| [in] | user_param | The user parameter passed to the callback function. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__secure__element__info__s\">_secure_element_info_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga264592dafa734827e956a10b7b21be0d\">net_nfc_secure_element_info_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for secure element information containing various parameters.<\/p>\n<p>This structure defines a secure element information structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga387e2b287b3793fee6f6dd1ead1c7813\">_net_nfc_secure_element_mode_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gafdc8574b967c2a6fce01eb7d5c049ff8\">net_nfc_secure_element_mode_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different modes of secure element (SE).<\/p>\n<p>This enumeration defines different modes of secure element (SE) that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga965de0ea19f35169e13d20fd470fd03a\">_net_nfc_secure_element_state_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga0de48df3e57c9b89adf5e07034b64b5d\">net_nfc_secure_element_state_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different states of secure element (SE).<\/p>\n<p>This enumeration defines different states of secure element (SE) that can be encountered.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaaaa48e691b2f2567aad854e9fe3ac209\">_net_nfc_secure_element_type_e<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1aeb75e3260606f7376fb06c6018a84c\">net_nfc_secure_element_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of secure element (SE) types.<\/p>\n<p>This enumeration defines different types of secure element (SE) types that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__stack__information__s\">_net_nfc_stack_information_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaf18fa15f673dad09d6b50cd30f4808e2\">net_nfc_stack_information_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC stack information containing various parameters.<\/p>\n<p>This structure defines an NFC stack information structure containing various parameters.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__tag__info__s\">_net_nfc_tag_info_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga912ce58093f674b6e3fb856bd5555dfe\">net_nfc_tag_info_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC tag information containing key-value pairs.<\/p>\n<p>This structure defines an NFC tag information structure containing key-value pairs.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef void(* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gab1c196151212b5077c95dcf829433bf9\">net_nfc_target_detection_listener_cb<\/a>)(void *data, void *user_param)<\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Callback function for target detection events.<\/p>\n<p>This typedef defines a callback function for target detection events.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Parameters:<\/strong>\n: | [in] | data | The data associated with the event. |\n| --- | --- | --- |\n| [in] | user_param | The user parameter passed to the callback function. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__target__handle__s\">_net_nfc_target_handle_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga01221e8a61794dd9fc0df2eec4e99bd9\">net_nfc_target_handle_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handle for NFC target handle structure.<\/p>\n<p>This typedef defines a handle for an NFC target handle structure.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__target__handle__s\">_net_nfc_target_handle_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace33740668597fb5c65a0c2d0d4ae1e7\">net_nfc_target_handle_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC target handle containing connection information.<\/p>\n<p>This structure defines an NFC target handle structure containing connection information.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__target__info__s\">_net_nfc_target_info_s<\/a>* <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga3993a054c9d86e23c989d6ad83096207\">net_nfc_target_info_h<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Handle for NFC target information structure.<\/p>\n<p>This typedef defines a handle for an NFC target information structure.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__target__info__s\">_net_nfc_target_info_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga8e5cda4eba3751dc4bd07f669ce08ba9\">net_nfc_target_info_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for NFC target information containing various details.<\/p>\n<p>This structure defines an NFC target information structure containing various details.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>typedef struct <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#struct__net__nfc__transceive__info__s\">_net_nfc_transceive_info_s<\/a> <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga391ea6af4449b623e11bbabe384fff2d\">net_nfc_transceive_info_s<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for transceive information containing device type and data.<\/p>\n<p>This structure defines a transceive information structure containing device type and data.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<hr \/>\n<h2 id=\"content-enumeration-type-documentation\"><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\" class=\"heading-permalink\" aria-hidden=\"true\" title=\"Permalink\">\u00b6<\/a>Enumeration Type Documentation<\/h2>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaba574a6aef47010d18e0c930bd0ef390\">_client_state_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different states of NFC clients.<\/p>\n<p>This enumeration defines different states of NFC clients that can be encountered.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_CLIENT_INACTIVE_STATE<\/em> | Inactive state of NFC client. |\n| --- | --- |\n| <em>NET_NFC_CLIENT_ACTIVE_STATE<\/em> | Active state of NFC client. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gabf35ddef9d8185334ec48f68660b8642\">_llcp_event_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of LLCP events.<\/p>\n<p>This enumeration defines different types of LLCP events that can be received.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_LLCP_EVENT_SOCKET_ACCEPTED<\/em> | LLCP socket accepted event type. |\n| --- | --- |\n| <em>NET_NFC_LLCP_EVENT_SOCKET_ERROR<\/em> | LLCP socket error event type. |\n| <em>NET_NFC_LLCP_EVENT_DEACTIVATED<\/em> | LLCP deactivated event type. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gad4d5ecdc374d698fa48efb736c31a614\">_net_nfc_connection_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC connection types.<\/p>\n<p>This enumeration defines different types of NFC connection types that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_TAG_CONNECTION<\/em> | Tag connection type. |\n| --- | --- |\n| <em>NET_NFC_P2P_CONNECTION_TARGET<\/em> | Peer-to-peer connection target type. |\n| <em>NET_NFC_P2P_CONNECTION_INITIATOR<\/em> | Peer-to-peer connection initiator type. |\n| <em>NET_NFC_SE_CONNECTION<\/em> | Secure element connection type. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaff1793154170ba3466a58280a331486f\">_net_nfc_discovery_mode_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of discovery modes.<\/p>\n<p>This enumeration defines different types of discovery modes that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_DISCOVERY_MODE_STOP<\/em> | Stop discovery mode. |\n| --- | --- |\n| <em>NET_NFC_DISCOVERY_MODE_CONFIG_POLLING<\/em> | Configure polling mode. |\n| <em>NET_NFC_DISCOVERY_MODE_CONFIG_LISTENING<\/em> | Configure listening mode. |\n| <em>NET_NFC_DISCOVERY_MODE_CONFIG_P2P<\/em> | Configure peer-to-peer mode. |\n| <em>NET_NFC_DISCOVERY_MODE_CONFIG_ALL<\/em> | Configure all modes. |\n| <em>NET_NFC_DISCOVERY_MODE_CONFIG_DEFAULT<\/em> | Configure default modes. |\n| <em>NET_NFC_DISCOVERY_MODE_CONFIG<\/em> | Configure modes. |\n| <em>NET_NFC_DISCOVERY_MODE_START_LISTENING<\/em> | Start listening mode. |\n| <em>NET_NFC_DISCOVERY_MODE_START_POLLING<\/em> | Start polling mode. |\n| <em>NET_NFC_DISCOVERY_MODE_START_ALL<\/em> | Start all modes. |\n| <em>NET_NFC_DISCOVERY_MODE_START_DEFAULT<\/em> | Start default modes. |\n| <em>NET_NFC_DISCOVERY_MODE_START<\/em> | Start modes. |\n| <em>NET_NFC_DISCOVERY_MODE_RESUME<\/em> | Resume modes. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaa8a2bd119771288029e0f4aef8f850f6\">_net_nfc_launch_popup_check_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of launch popup checks.<\/p>\n<p>This enumeration defines different types of launch popup checks that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_CHECK_FOREGROUND<\/em> | Check foreground. |\n| --- | --- |\n| <em>NET_NFC_NO_CHECK_FOREGROUND<\/em> | No check foreground. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2e904f9a16c2eabf6421e70e832a84b4\">_net_nfc_launch_popup_state_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different states of launch popup selection.<\/p>\n<p>This enumeration defines different states of launch popup selection that can be encountered.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_LAUNCH_APP_SELECT<\/em> | Launch app select. |\n| --- | --- |\n| <em>NET_NFC_NO_LAUNCH_APP_SELECT<\/em> | No launch app select. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2aa72f38bd5b06146b4d3c1dd3743a2b\">_net_nfc_message_service_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC service messages.<\/p>\n<p>This enumeration defines different types of NFC service messages that can be received.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_MESSAGE_SERVICE_RESET<\/em> | Reset NFC service message type. |\n| --- | --- |\n| <em>NET_NFC_MESSAGE_SERVICE_INIT<\/em> | Initialize NFC service message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_ACTIVATE<\/em> | Activate NFC service message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_DEACTIVATE<\/em> | Deactivate NFC service message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_DEINIT<\/em> | Deinitialize NFC service message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_STANDALONE_TARGET_DETECTED<\/em> | Standalone target detected message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_SE<\/em> | Secure element message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_TERMINATION<\/em> | Termination message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_SLAVE_TARGET_DETECTED<\/em> | Slave target detected message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_SLAVE_ESE_DETECTED<\/em> | Secure element detected message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_RESTART_POLLING_LOOP<\/em> | Restart polling loop message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_LISTEN<\/em> | LLCP listen message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_INCOMING<\/em> | LLCP incoming message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_ACCEPT<\/em> | LLCP accept message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_REJECT<\/em> | LLCP reject message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_SEND<\/em> | LLCP send message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_SEND_TO<\/em> | LLCP send to message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_RECEIVE<\/em> | LLCP receive message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_RECEIVE_FROM<\/em> | LLCP receive from message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_CONNECT<\/em> | LLCP connect message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_CONNECT_SAP<\/em> | LLCP connect SAP message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_DISCONNECT<\/em> | LLCP disconnect message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_DEACTIVATED<\/em> | LLCP deactivated message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_SOCKET_ERROR<\/em> | LLCP socket error message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_LLCP_SOCKET_ACCEPTED_ERROR<\/em> | LLCP socket accepted error message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_CHANGE_CLIENT_STATE<\/em> | Change client state message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_WATCH_DOG<\/em> | Watchdog message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_CLEANER<\/em> | Cleaner message type. |\n| <em>NET_NFC_MESSAGE_SERVICE_SET_LAUNCH_STATE<\/em> | Set launch state message type. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga572ebe75a5cc9347305a5fec2fbde09e\">_net_nfc_privilege_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC privileges.<\/p>\n<p>This enumeration defines different types of NFC privileges that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_PRIVILEGE_NFC<\/em> | NFC privilege. |\n| --- | --- |\n| <em>NET_NFC_PRIVILEGE_NFC_ADMIN<\/em> | NFC admin privilege. |\n| <em>NET_NFC_PRIVILEGE_NFC_TAG<\/em> | NFC tag privilege. |\n| <em>NET_NFC_PRIVILEGE_NFC_P2P<\/em> | NFC peer-to-peer privilege. |\n| <em>NET_NFC_PRIVILEGE_NFC_CARD_EMUL<\/em> | NFC card emulation privilege. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga387e2b287b3793fee6f6dd1ead1c7813\">_net_nfc_secure_element_mode_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different modes of secure element (SE).<\/p>\n<p>This enumeration defines different modes of secure element (SE) that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SECURE_ELEMENT_WIRED_MODE<\/em> | Enables wired mode communication. This mode shall be applied to eSE. |\n| --- | --- |\n| <em>NET_NFC_SECURE_ELEMENT_VIRTUAL_MODE<\/em> | Enables virtual mode communication. This can be applied to UICC as well as eSE. |\n| <em>NET_NFC_SECURE_ELEMENT_OFF_MODE<\/em> | Inactivates SE. This means, put SE in inactive state. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga965de0ea19f35169e13d20fd470fd03a\">_net_nfc_secure_element_state_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different states of secure element (SE).<\/p>\n<p>This enumeration defines different states of secure element (SE) that can be encountered.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SECURE_ELEMENT_INACTIVE_STATE<\/em> | Inactive state of SE. |\n| --- | --- |\n| <em>NET_NFC_SECURE_ELEMENT_ACTIVE_STATE<\/em> | Active state of SE. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaaaa48e691b2f2567aad854e9fe3ac209\">_net_nfc_secure_element_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of secure element (SE) types.<\/p>\n<p>This enumeration defines different types of secure element (SE) types that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SECURE_ELEMENT_TYPE_INVALID<\/em> | Indicates SE type is invalid. |\n| --- | --- |\n| <em>NET_NFC_SECURE_ELEMENT_TYPE_ESE<\/em> | Indicates SE type is SmartMX. |\n| <em>NET_NFC_SECURE_ELEMENT_TYPE_UICC<\/em> | Indicates SE type is UICC. |\n| <em>NET_NFC_SECURE_ELEMENT_TYPE_SDCARD<\/em> | Indicates SE type is SDCARD. |\n| <em>NET_NFC_SECURE_ELEMENT_TYPE_HCE<\/em> | Indicates SE type is HCE. |\n| <em>NET_NFC_SECURE_ELEMENT_TYPE_UNKNOWN<\/em> | Indicates SE type is unknown. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga9886708261dfc063bc1de9579df5b533\">net_nfc_conn_handover_carrier_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of connection handover carriers.<\/p>\n<p>This enumeration defines different types of connection handover carriers that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_CONN_HANDOVER_CARRIER_BT<\/em> | Bluetooth carrier. |\n| --- | --- |\n| <em>NET_NFC_CONN_HANDOVER_CARRIER_WIFI_WPS<\/em> | Wi-Fi Protected Setup carrier. |\n| <em>NET_NFC_CONN_HANDOVER_CARRIER_WIFI_P2P<\/em> | Wi-Fi Peer-to-Peer carrier. |\n| <em>NET_NFC_CONN_HANDOVER_CARRIER_BT_LE<\/em> | Bluetooth Low Energy carrier. |\n| <em>NET_NFC_CONN_HANDOVER_CARRIER_UNKNOWN<\/em> | Unknown carrier. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gac78954094d35f4dcd6851e6950f84f6b\">net_nfc_error_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Structure for nfc error.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_OK<\/em> | Status is OK |\n| --- | --- |\n| <em>NET_NFC_UNKNOWN_ERROR<\/em> | Unknown error |\n| <em>NET_NFC_ALLOC_FAIL<\/em> | Memory allocation is failed |\n| <em>NET_NFC_THREAD_CREATE_FAIL<\/em> | Thread creation is failed |\n| <em>NET_NFC_INVALID_STATE<\/em> | State of NFC-Manager or nfc-stack is not normal |\n| <em>NET_NFC_IPC_FAIL<\/em> | Communication with ipc is failed. (from client to server) |\n| <em>NET_NFC_OUT_OF_BOUND<\/em> | Index is out of bound |\n| <em>NET_NFC_NULL_PARAMETER<\/em> | Unexpected NULL parameter is received |\n| <em>NET_NFC_BUFFER_TOO_SMALL<\/em> | Requested buffer is too small to store data, this error should be received |\n| <em>NET_NFC_ALREADY_INITIALIZED<\/em> | You tried to initialized again without de-init |\n| <em>NET_NFC_COMMUNICATE_WITH_CONTROLLER_FAILED<\/em> | Communication with Controller Chipset is failed this is Fatal Error |\n| <em>NET_NFC_RF_TIMEOUT<\/em> | Timeout is raised while communicate with a tag |\n| <em>NET_NFC_RF_ERROR<\/em> | Unexpected package is received from target, you may receive this error comes by the low level RF communication fault |\n| <em>NET_NFC_NOT_INITIALIZED<\/em> | Application tries to request without initialization |\n| <em>NET_NFC_NOT_SUPPORTED<\/em> | Request information or command is not supported in current connected target |\n| <em>NET_NFC_ALREADY_REGISTERED<\/em> | Requested SAP number is already used by other socket or data is already appended or registered |\n| <em>NET_NFC_NOT_ALLOWED_OPERATION<\/em> | Requested Operation is not allowed in the situation in critical time (such as write data on target) |\n| <em>NET_NFC_BUSY<\/em> | Previous operation is not finished. don't worry to get this message, most of request will be executed in the serial queue |\n| <em>NET_NFC_INVALID_HANDLE<\/em> | Requested Device in not valid device |\n| <em>NET_NFC_TAG_READ_FAILED<\/em> | Tag reading is failed because of unexpected chunk data is received or error ack is received |\n| <em>NET_NFC_TAG_WRITE_FAILED<\/em> | When you try to write on read only tag or error ack is received |\n| <em>NET_NFC_NO_NDEF_SUPPORT<\/em> | Tag is not supported NDEF format for tag is not formatted for NDEF |\n| <em>NET_NFC_NO_NDEF_MESSAGE<\/em> | No data is received after NDEF reading |\n| <em>NET_NFC_INVALID_FORMAT<\/em> | Received data is not readable or it has illegal values or format |\n| <em>NET_NFC_INSUFFICIENT_STORAGE<\/em> | The connected tag does not have enough information |\n| <em>NET_NFC_OPERATION_FAIL<\/em> | The remote target returned error while doing a operation |\n| <em>NET_NFC_NOT_CONNECTED<\/em> | remote is not connected correctly. This can be happened when the RF does not have enough strength |\n| <em>NET_NFC_NO_DATA_FOUND<\/em> | Requested data is not found in the list or properties |\n| <em>NET_NFC_SECURITY_FAIL<\/em> | Authentication is failed while communication with nfc-manager server |\n| <em>NET_NFC_TARGET_IS_MOVED_AWAY<\/em> | Target is lost while doing a operation |\n| <em>NET_NFC_NOT_REGISTERED<\/em> | Target is already formatted removal is requested but requested data is not registered |\n| <em>NET_NFC_INVALID_PARAM<\/em> | removal is requested but requested data is not registered |\n| <em>NET_NFC_PERMISSION_DENIED<\/em> | privilege check is failed |\n| <em>NET_NFC_NOT_ACTIVATED<\/em> | Application tries to request without activation |\n| <em>NET_NFC_DATA_CONFLICTED<\/em> | Data is conflicted with another one |\n| <em>NET_NFC_NDEF_TYPE_LENGTH_IS_NOT_OK<\/em> | Illegal ndef record type length |\n| <em>NET_NFC_NDEF_PAYLOAD_LENGTH_IS_NOT_OK<\/em> | Illegal ndef record payload length |\n| <em>NET_NFC_NDEF_ID_LENGTH_IS_NOT_OK<\/em> | Illegal ndef record id length |\n| <em>NET_NFC_NDEF_RECORD_IS_NOT_EXPECTED_TYPE<\/em> | Parameter record is not expected record. for example, try to URI from text record |\n| <em>NET_NFC_NDEF_BUF_END_WITHOUT_ME<\/em> | NDEF messages is terminated without ME flag |\n| <em>NET_NFC_DEVICE_DOES_NOT_SUPPORT_NFC<\/em> | Current device does not support NFC feature or this manager does not found plugin library |\n| <em>NET_NFC_LLCP_INVALID_SOCKET<\/em> | socket is not valid socket |\n| <em>NET_NFC_LLCP_SOCKET_DISCONNECTED<\/em> | socket is disconnected |\n| <em>NET_NFC_LLCP_SOCKET_FRAME_REJECTED<\/em> | send data is rejected from remote side |\n| <em>NET_NFC_P2P_SEND_FAIL<\/em> | P2P data send fail |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaafb66cc4832fc6141bf322480cb12ebb\">net_nfc_event_filter_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different event filters for NFC events.<\/p>\n<p>This enumeration defines different event filters that can be used to control which NFC events are received.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_ALL_DISABLE<\/em> | Disable all NFC events. |\n| --- | --- |\n| <em>NET_NFC_ISO14443A_ENABLE<\/em> | Enable ISO\/IEC 14443 Type A events. |\n| <em>NET_NFC_ISO14443B_ENABLE<\/em> | Enable ISO\/IEC 14443 Type B events. |\n| <em>NET_NFC_ISO15693_ENABLE<\/em> | Enable ISO\/IEC 15693 events. |\n| <em>NET_NFC_FELICA_ENABLE<\/em> | Enable Felica events. |\n| <em>NET_NFC_JEWEL_ENABLE<\/em> | Enable Jewel events. |\n| <em>NET_NFC_IP_ENABLE<\/em> | Enable NFC-IP events. |\n| <em>NET_NFC_ALL_ENABLE<\/em> | Enable all NFC events. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga8614cd6ed288b7c683198f8b67329e9d\">net_nfc_llcp_app_protocol_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of application protocols supported by LLCP.<\/p>\n<p>This enumeration defines different types of application protocols that can be used in LLCP communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SNEP<\/em> | SNEP (Simple NDEF Exchange Protocol) application protocol. |\n| --- | --- |\n| <em>NET_NFC_NPP<\/em> | NPP (NFC Data Exchange Format) application protocol. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga4da3344a045b69ecbb61071aa9f3653d\">net_nfc_llcp_message_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of LLCP messages.<\/p>\n<p>This enumeration defines different types of LLCP messages that can be received.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_MESSAGE_LLCP_LISTEN<\/em> | LLCP listen message type. |\n| --- | --- |\n| <em>NET_NFC_MESSAGE_LLCP_ACCEPTED<\/em> | LLCP accepted message type. |\n| <em>NET_NFC_MESSAGE_LLCP_CONNECT<\/em> | LLCP connect message type. |\n| <em>NET_NFC_MESSAGE_LLCP_CONNECT_SAP<\/em> | LLCP connect SAP message type. |\n| <em>NET_NFC_MESSAGE_LLCP_SEND<\/em> | LLCP send message type. |\n| <em>NET_NFC_MESSAGE_LLCP_SEND_TO<\/em> | LLCP send to message type. |\n| <em>NET_NFC_MESSAGE_LLCP_RECEIVE<\/em> | LLCP receive message type. |\n| <em>NET_NFC_MESSAGE_LLCP_RECEIVE_FROM<\/em> | LLCP receive from message type. |\n| <em>NET_NFC_MESSAGE_LLCP_DISCONNECT<\/em> | LLCP disconnect message type. |\n| <em>NET_NFC_MESSAGE_LLCP_ERROR<\/em> | LLCP error message type. |\n| <em>NET_NFC_MESSAGE_LLCP_CONNECT_REQ<\/em> | LLCP connect request message type. |\n| <em>NET_NFC_MESSAGE_LLCP_ACCEPT<\/em> | LLCP accept message type. |\n| <em>NET_NFC_MESSAGE_LLCP_REJECT<\/em> | LLCP reject message type. |\n| <em>NET_NFC_MESSAGE_LLCP_REJECTED<\/em> | LLCP rejected message type. |\n| <em>NET_NFC_MESSAGE_LLCP_CLOSE<\/em> | LLCP close message type. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gad2b38daa37d5eaa281983abfef7d8eef\">net_nfc_message_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC messages.<\/p>\n<p>This enumeration defines different types of NFC messages that can be received.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_MESSAGE_TRANSCEIVE<\/em> | Transceive message type. |\n| --- | --- |\n| <em>NET_NFC_MESSAGE_READ_NDEF<\/em> | Read NDEF message type. |\n| <em>NET_NFC_MESSAGE_WRITE_NDEF<\/em> | Write NDEF message type. |\n| <em>NET_NFC_MESSAGE_MAKE_READ_ONLY_NDEF<\/em> | Make read-only NDEF message type. |\n| <em>NET_NFC_MESSAGE_IS_TAG_CONNECTED<\/em> | Check if tag is connected message type. |\n| <em>NET_NFC_MESSAGE_GET_CURRENT_TAG_INFO<\/em> | Get current tag information message type. |\n| <em>NET_NFC_MESSAGE_GET_CURRENT_TARGET_HANDLE<\/em> | Get current target handle message type. |\n| <em>NET_NFC_MESSAGE_TAG_DISCOVERED<\/em> | Tag discovered message type. |\n| <em>NET_NFC_MESSAGE_NOTIFY<\/em> | Notify message type. |\n| <em>NET_NFC_MESSAGE_TAG_DETACHED<\/em> | Tag detached message type. |\n| <em>NET_NFC_MESSAGE_LLCP_DISCOVERED<\/em> | LLCP discovered message type. |\n| <em>NET_NFC_MESSAGE_P2P_DETACHED<\/em> | P2P detached message type. |\n| <em>NET_NFC_MESSAGE_LLCP_CONFIG<\/em> | LLCP configuration message type. |\n| <em>NET_NFC_MESSAGE_P2P_DISCOVERED<\/em> | P2P discovered message type. |\n| <em>NET_NFC_MESSAGE_P2P_SEND<\/em> | P2P send message type. |\n| <em>NET_NFC_MESSAGE_P2P_RECEIVE<\/em> | P2P receive message type. |\n| <em>NET_NFC_MESSAGE_SE_START_TRANSACTION<\/em> | Secure element start transaction message type. |\n| <em>NET_NFC_MESSAGE_SE_END_TRANSACTION<\/em> | Secure element end transaction message type. |\n| <em>NET_NFC_MESSAGE_SE_TYPE_TRANSACTION<\/em> | Secure element type transaction message type. |\n| <em>NET_NFC_MESSAGE_SE_CONNECTIVITY<\/em> | Secure element connectivity message type. |\n| <em>NET_NFC_MESSAGE_SE_FIELD_ON<\/em> | Secure element field on message type. |\n| <em>NET_NFC_MESSAGE_SE_FIELD_OFF<\/em> | Secure element field off message type. |\n| <em>NET_NFC_MESSAGE_SE_TYPE_CHANGED<\/em> | Secure element type changed message type. |\n| <em>NET_NFC_MESSAGE_SE_CARD_EMULATION_CHANGED<\/em> | Secure element card emulation changed message type. |\n| <em>NET_NFC_MESSAGE_CONNECTION_HANDOVER<\/em> | Connection handover message type. |\n| <em>NET_NFC_MESSAGE_SET_SE<\/em> | Set secure element message type. |\n| <em>NET_NFC_MESSAGE_GET_SE<\/em> | Get secure element message type. |\n| <em>NET_NFC_MESSAGE_OPEN_INTERNAL_SE<\/em> | Open internal secure element message type. |\n| <em>NET_NFC_MESSAGE_CLOSE_INTERNAL_SE<\/em> | Close internal secure element message type. |\n| <em>NET_NFC_MESSAGE_SEND_APDU_SE<\/em> | Send APDU to secure element message type. |\n| <em>NET_NFC_MESSAGE_GET_ATR_SE<\/em> | Get ATR from secure element message type. |\n| <em>NET_NFC_GET_SERVER_STATE<\/em> | Get server state message type. |\n| <em>NET_NFC_MESSAGE_INIT<\/em> | Initialize NFC message type. |\n| <em>NET_NFC_MESSAGE_DEINIT<\/em> | Deinitialize NFC message type. |\n| <em>NET_NFC_MESSAGE_GET_FIRMWARE_VERSION<\/em> | Get firmware version message type. |\n| <em>NET_NFC_MESSAGE_SNEP_START_SERVER<\/em> | Start SNEP server message type. |\n| <em>NET_NFC_MESSAGE_SNEP_START_CLIENT<\/em> | Start SNEP client message type. |\n| <em>NET_NFC_MESSAGE_SNEP_REQUEST<\/em> | SNEP request message type. |\n| <em>NET_NFC_MESSAGE_SNEP_STOP_SERVICE<\/em> | Stop SNEP service message type. |\n| <em>NET_NFC_MESSAGE_SNEP_REGISTER_SERVER<\/em> | Register SNEP server message type. |\n| <em>NET_NFC_MESSAGE_SNEP_UNREGISTER_SERVER<\/em> | Unregister SNEP server message type. |\n| <em>NET_NFC_MESSAGE_CONNECT<\/em> | Connect message type. |\n| <em>NET_NFC_MESSAGE_DISCONNECT<\/em> | Disconnect message type. |\n| <em>NET_NFC_MESSAGE_SET_CARD_EMULATION<\/em> | Set card emulation message type. |\n| <em>NET_NFC_MESSAGE_ROUTING_HOST_EMU_ACTIVATED<\/em> | Routing host emulation activated message type. |\n| <em>NET_NFC_MESSAGE_ROUTING_HOST_EMU_DEACTIVATED<\/em> | Routing host emulation deactivated message type. |\n| <em>NET_NFC_MESSAGE_ROUTING_HOST_EMU_DATA<\/em> | Routing host emulation data message type. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga55a6b9bb0fa7c90fbc26cba6e6eedb98\">net_nfc_ndef_card_state_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different states of NFC NDEF cards.<\/p>\n<p>This enumeration defines different states of NFC NDEF cards that can be encountered.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_NDEF_CARD_INVALID<\/em> | The card is not NFC forum specified tag. The ndef format will be needed. |\n| --- | --- |\n| <em>NET_NFC_NDEF_CARD_INITIALISED<\/em> | The card is NFC forum specified tag, but It has no actual data. So, the ndef write will be needed. |\n| <em>NET_NFC_NDEF_CARD_READ_WRITE<\/em> | The card is NFC forum specified tag. The ndef read and write will be allowed. |\n| <em>NET_NFC_NDEF_CARD_READ_ONLY<\/em> | The card is NFC forum specified tag, but only the ndef read will be allowed. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gace966438e8e4aa31cc13e2757b7d59bc\">net_nfc_record_tnf_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC records.<\/p>\n<p>This enumeration defines different types of NFC records that can be encountered.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_RECORD_EMPTY<\/em> | Empty record type. |\n| --- | --- |\n| <em>NET_NFC_RECORD_WELL_KNOWN_TYPE<\/em> | Well-known type record. |\n| <em>NET_NFC_RECORD_MIME_TYPE<\/em> | Media type record (e.g., image\/jpeg). |\n| <em>NET_NFC_RECORD_URI<\/em> | URI record (e.g., <a href=https://samsungtizenos.com/"http:////example.com/">http:////example.com). |\n| <em>NET_NFC_RECORD_EXTERNAL_RTD<\/em> | External RTD record. |\n| <em>NET_NFC_RECORD_UNKNOWN<\/em> | Unknown record type. |\n| <em>NET_NFC_RECORD_UNCHANGED<\/em> | Unchanged record type. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaadc713820da5bf98732625ac37d8fbe0\">net_nfc_schema_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of URI schemes.<\/p>\n<p>This enumeration defines different types of URI schemes that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SCHEMA_FULL_URI<\/em> | Protocol is specified by payload. |\n| --- | --- |\n| <em>NET_NFC_SCHEMA_HTTP_WWW<\/em> | <a href=https://samsungtizenos.com/"http:////www/">http:////www. |\n| <em>NET_NFC_SCHEMA_HTTPS_WWW<\/em> | <a href=https://samsungtizenos.com/"https:////www/">https:////www. |\n| <em>NET_NFC_SCHEMA_HTTP<\/em> | <a href=https://samsungtizenos.com/"http://///">http://// |\n| <em>NET_NFC_SCHEMA_HTTPS<\/em> | <a href=https://samsungtizenos.com/"https://///">https://// |\n| <em>NET_NFC_SCHEMA_TEL<\/em> | tel: |\n| <em>NET_NFC_SCHEMA_MAILTO<\/em> | mailto: |\n| <em>NET_NFC_SCHEMA_FTP_ANONYMOUS<\/em> | <a href=https://samsungtizenos.com/"ftp:////anonymous:anonymous@/">ftp:////anonymous:anonymous@ |\n| <em>NET_NFC_SCHEMA_FTP_FTP<\/em> | <a href=https://samsungtizenos.com/"ftp:////ftp/">ftp:////ftp. |\n| <em>NET_NFC_SCHEMA_FTPS<\/em> | ftps:\/\/ |\n| <em>NET_NFC_SCHEMA_SFTP<\/em> | sftp:\/\/ |\n| <em>NET_NFC_SCHEMA_SMB<\/em> | smb:\/\/ |\n| <em>NET_NFC_SCHEMA_NFS<\/em> | nfs:\/\/ |\n| <em>NET_NFC_SCHEMA_FTP<\/em> | <a href=https://samsungtizenos.com/"ftp://///">ftp://// |\n| <em>NET_NFC_SCHEMA_DAV<\/em> | dav:\/\/ |\n| <em>NET_NFC_SCHEMA_NEWS<\/em> | <a href=https://samsungtizenos.com/"news://///">news://// |\n| <em>NET_NFC_SCHEMA_TELNET<\/em> | telnet:\/\/ |\n| <em>NET_NFC_SCHEMA_IMAP<\/em> | imap: |\n| <em>NET_NFC_SCHEMA_RTSP<\/em> | rtsp:\/\/ |\n| <em>NET_NFC_SCHEMA_URN<\/em> | urn: |\n| <em>NET_NFC_SCHEMA_POP<\/em> | pop: |\n| <em>NET_NFC_SCHEMA_SIP<\/em> | sip: |\n| <em>NET_NFC_SCHEMA_SIPS<\/em> | sips: |\n| <em>NET_NFC_SCHEMA_TFTP<\/em> | tftp: |\n| <em>NET_NFC_SCHEMA_BTSPP<\/em> | btspp:\/\/ |\n| <em>NET_NFC_SCHEMA_BTL2CAP<\/em> | btl2cap:\/\/ |\n| <em>NET_NFC_SCHEMA_BTGOEP<\/em> | btgoep:\/\/ |\n| <em>NET_NFC_SCHEMA_TCPOBEX<\/em> | tcpobex:\/\/ |\n| <em>NET_NFC_SCHEMA_IRDAOBEX<\/em> | irdaobex:\/\/ |\n| <em>NET_NFC_SCHEMA_FILE<\/em> | <a href=https://samsungtizenos.com/"file://///">file://// |\n| <em>NET_NFC_SCHEMA_URN_EPC_ID<\/em> | urn:epc:id: |\n| <em>NET_NFC_SCHEMA_URN_EPC_TAG<\/em> | urn:epc:tag: |\n| <em>NET_NFC_SCHEMA_URN_EPC_PAT<\/em> | urn:epc:pat: |\n| <em>NET_NFC_SCHEMA_URN_EPC_RAW<\/em> | urn:epc:raw: |\n| <em>NET_NFC_SCHEMA_URN_EPC<\/em> | urn:epc: |\n| <em>NET_NFC_SCHEMA_URN_NFC<\/em> | urn:epc:nfc: |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gad1f9b1b785e271c576a715c763ee1f4f\">net_nfc_screen_state_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of screen state types.<\/p>\n<p>This enumeration defines different types of screen state types that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SCREEN_INVALID<\/em> | Indicates screen state is invalid. |\n| --- | --- |\n| <em>NET_NFC_SCREEN_OFF<\/em> | Screen is off. |\n| <em>NET_NFC_SCREEN_ON_LOCK<\/em> | Screen is on but locked. |\n| <em>NET_NFC_SCREEN_ON_UNLOCK<\/em> | Screen is on and unlocked. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga2fa2c686a8ef9bb6e466bcc7ea3fd513\">net_nfc_se_entry_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of SE entry types.<\/p>\n<p>This enumeration defines different types of SE entry types that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SE_INVALID_ENTRY<\/em> | Indicates SE entry type is invalid. |\n| --- | --- |\n| <em>NET_NFC_SE_TECH_ENTRY<\/em> | Technology entry type. |\n| <em>NET_NFC_SE_PROTOCOL_ENTRY<\/em> | Protocol entry type. |\n| <em>NET_NFC_SE_AID_ENTRY<\/em> | Application Identifier (AID) entry type. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#gaee9af17942e5f94d71b5e2d108fb97b4\">net_nfc_se_tech_protocol_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of SE technology and protocol types.<\/p>\n<p>This enumeration defines different types of SE technology and protocol types that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SE_INVALID_TECH_PROTO<\/em> | Indicates SE technology and protocol type is invalid. |\n| --- | --- |\n| <em>NET_NFC_SE_TECH_A_ISODEP<\/em> | Type A \/ ISO-DEP. |\n| <em>NET_NFC_SE_TECH_B_NFCDEP<\/em> | Type B \/ NFC-DEP. |\n| <em>NET_NFC_SE_TECH_A_B_ISO_NFC_DEP<\/em> | Type A\/B \/ ISO-DEP\/NFC-DEP. |\n| <em>NET_NFC_SE_TECH_F<\/em> | Type F. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga1de003af1d3dcfe3587bd60cbb0c3283\">net_nfc_se_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of Secure Element (SE) types.<\/p>\n<p>This enumeration defines different types of Secure Element (SE) types that can be used in NFC communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_SE_TYPE_NONE<\/em> | Invalid SE type. |\n| --- | --- |\n| <em>NET_NFC_SE_TYPE_ESE<\/em> | Embedded Secure Element (eSE). |\n| <em>NET_NFC_SE_TYPE_UICC<\/em> | Universal Integrated Circuit Card (UICC). |\n| <em>NET_NFC_SE_TYPE_SDCARD<\/em> | SDCard. |\n| <em>NET_NFC_SE_TYPE_HCE<\/em> | Host Card Emulation (HCE). |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga88ed642aac9deb1ae02b4ba5d7403863\">net_nfc_socket_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of socket types in LLCP.<\/p>\n<p>This enumeration defines different types of socket types that can be used in LLCP communication.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_LLCP_SOCKET_TYPE_CONNECTIONORIENTED<\/em> | Connection-oriented socket type. |\n| --- | --- |\n| <em>NET_NFC_LLCP_SOCKET_TYPE_CONNECTIONLESS<\/em> | Connectionless socket type. |<\/p>\n<div class=\"overflow-auto grid table-fixed\" data-table-container=\"data-table-container\"><table>\n<thead>\n<tr>\n<th>enum <a href=https://samsungtizenos.com/"group__HALAPI__HAL__NFC__MODULE.md#ga6bd59af1d3fa16d15ee7c4ae6f836814\">net_nfc_target_type_e<\/a><\/th>\n<\/tr>\n<\/thead>\n<\/table><\/div>\n<p>Enumeration for different types of NFC target types.<\/p>\n<p>This enumeration defines different types of NFC targets that can be detected.<\/p>\n<p><strong>Since:<\/strong>\n: HAL_MODULE_NFC 1.0<\/p>\n<p><strong>Enumerator:<\/strong>\n: | <em>NET_NFC_UNKNOWN_TARGET<\/em> | Unknown target type. |\n| --- | --- |\n| <em>NET_NFC_GENERIC_PICC<\/em> | Generic PICC (Proximity Coupling Device) target type. |\n| <em>NET_NFC_ISO14443_A_PICC<\/em> | ISO\/IEC 14443 Type A PICC target type. |\n| <em>NET_NFC_ISO14443_4A_PICC<\/em> | ISO\/IEC 14443 Part 4 Type A PICC target type. |\n| <em>NET_NFC_ISO14443_3A_PICC<\/em> | ISO\/IEC 14443 Part 3 Type A PICC target type. |\n| <em>NET_NFC_MIFARE_MINI_PICC<\/em> | Mifare Mini PICC target type. |\n| <em>NET_NFC_MIFARE_1K_PICC<\/em> | Mifare 1k PICC target type. |\n| <em>NET_NFC_MIFARE_4K_PICC<\/em> | Mifare 4k PICC target type. |\n| <em>NET_NFC_MIFARE_ULTRA_PICC<\/em> | Mifare Ultra PICC target type. |\n| <em>NET_NFC_MIFARE_DESFIRE_PICC<\/em> | Mifare Desfire PICC target type. |\n| <em>NET_NFC_ISO14443_B_PICC<\/em> | ISO\/IEC 14443 Type B PICC target type. |\n| <em>NET_NFC_ISO14443_4B_PICC<\/em> | ISO\/IEC 14443 Part 4 Type B PICC target type. |\n| <em>NET_NFC_ISO14443_BPRIME_PICC<\/em> | ISO\/IEC 14443 Prime Type B PICC target type. |\n| <em>NET_NFC_FELICA_PICC<\/em> | Felica PICC target type. |\n| <em>NET_NFC_JEWEL_PICC<\/em> | Jewel PICC target type. |\n| <em>NET_NFC_ISO15693_PICC<\/em> | ISO\/IEC 15693 PICC target type. |\n| <em>NET_NFC_BARCODE_128_PICC<\/em> | Barcode 128 PICC target type. |\n| <em>NET_NFC_BARCODE_256_PICC<\/em> | Barcode 256 PICC target type. |\n| <em>NET_NFC_NFCIP1_TARGET<\/em> | NFC-IP1 target type. |\n| <em>NET_NFC_NFCIP1_INITIATOR<\/em> | NFC-IP1 initiator type. |<\/p>\n<hr \/>\n<p>Except as noted, this content - excluding the Code Examples - is licensed under <a href=https://samsungtizenos.com/"http:////creativecommons.org//licenses//by//3.0//legalcode/">Creative Commons Attribution 3.0<\/a>\nand all of the Code Examples contained herein are licensed under <a href=https://samsungtizenos.com/"https:////www.tizen.org//bsd-3-clause-license/">BSD-3-Clause.
Content License<\/a>.<\/p>\n","table_of_content":"<ul class=\"table-of-contents\">\n<li><a href=https://samsungtizenos.com/"#content-required-header\">Required Header<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-overview\">Overview<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-data-structure-documentation\">Data Structure Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-1\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-2\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-3\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-4\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-5\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-6\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-7\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-8\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-9\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-10\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-11\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-12\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-13\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-14\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-15\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-16\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-17\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-18\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-19\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-20\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-21\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-22\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-23\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-field-documentation-24\">Field Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-typedef-documentation\">Typedef Documentation<\/a><\/li>\n<li><a href=https://samsungtizenos.com/"#content-enumeration-type-documentation\">Enumeration Type Documentation<\/a><\/li>\n<\/ul>\n","title":"Tizen HAL API: Nfc","raw":null},{"class":"App\\Services\\Documentation\\Data\\RenderedMarkdown","s":"wrbl"}]},"memo":{"id":"I4JHtSQbELjp1yYL8Kxh","name":"documentation::article","path":"docs\/platform\/hal\/api\/1.0.0\/group__HALAPI__HAL__NFC__MODULE","method":"GET","release":"a-a-a","children":[],"scripts":[],"assets":[],"lazyLoaded":false,"lazyIsolated":true,"errors":[],"locale":"en","islands":[]},"checksum":"54310391a0bfc26d3e7cd22f56a75d971a219a51665e8ec0e6311f2625ad6489"}" wire:effects="[]" wire:id="I4JHtSQbELjp1yYL8Kxh" wire:name="documentation::article" x-init="$wire.__lazyLoad('eyJkYXRhIjp7ImZvck1vdW50IjpbeyJtYXJrZG93biI6W3siYm9keSI6IjxoMSBpZD1cImNvbnRlbnQtdGl6ZW4taGFsLWFwaS1uZmNcIj48YSBocmVmPVwiI2NvbnRlbnQtdGl6ZW4taGFsLWFwaS1uZmNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlRpemVuIEhBTCBBUEk6IE5mYzxcL2gxPjxkaXYgZGF0YS1rbm93bGVkZ2UtYmFzZS1tZXRhZGF0YT48XC9kaXY+XG48aHIgXC8+XG48cD5UaGUgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWRcIj5OZmM8XC9hPiBwcm92aWRlcyBmdW5jdGlvbnMgdG8gZW5hYmxlIGFuZCBkaXNhYmxlIHRoZSBORkMgaW50ZXJmYWNlLjxcL3A+XG48aDIgaWQ9XCJjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiPjxhIGhyZWY9XCIjY29udGVudC1yZXF1aXJlZC1oZWFkZXJcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlJlcXVpcmVkIEhlYWRlcjxcL2gyPlxuPHA+I2luY2x1ZGUgJmx0O2hhbC1uZmMuaCZndDs8XC9wPlxuPGgyIGlkPVwiY29udGVudC1vdmVydmlld1wiPjxhIGhyZWY9XCIjY29udGVudC1vdmVydmlld1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+T3ZlcnZpZXc8XC9oMj5cbjxwPlRoZSBOZmMgcHJvdmlkZXMgdG8gZ2V0XC9wdXQgYmFja2VuZCBhbmQgZW5hYmxlXC9kaXNhYmxlIE5mYyBpbnRlcmZhY2UuPFwvcD5cbjx1bD5cbjxsaT5oYWxfbmZjX2dldF9iYWNrZW5kPFwvbGk+XG48bGk+aGFsX25mY19wdXRfYmFja2VuZDxcL2xpPlxuPGxpPmhhbF9uZmNfc3RhcnQ8XC9saT5cbjxsaT5oYWxfbmZjX3N0b3A8XC9saT5cbjxcL3VsPlxuPHA+Rm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIE5mYyBmZWF0dXJlcyBhbmQgdGhlIG1hY3Jvcywgc2VlIEhBTCBOZmMgcHJvZ3JhbW1pbmcgZ3VpZGVzIGFuZCB0dXRvcmlhbHMuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPlR5cGVkZWZzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnR5cGVkZWYgZW51bSAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMmFhNzJmMzhiZDViMDYxNDZiNGQzYzFkZDM3NDNhMmJcIj5fbmV0X25mY19tZXNzYWdlX3NlcnZpY2VfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FkYzgxMDI5ZmFiM2Y1NjdhNzM0YmI5ZGJhMTNhMDY4NFwiPm5ldF9uZmNfbWVzc2FnZV9zZXJ2aWNlX2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBORkMgc2VydmljZSBtZXNzYWdlcy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWJhNTc0YTZhZWY0NzAxMGQxOGUwYzkzMGJkMGVmMzkwXCI+X2NsaWVudF9zdGF0ZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTMwZmJmNzdmNDY0YWRkN2Y3ZmI4NjFlZTFmYzE4ZWQxXCI+bmV0X25mY19jbGllbnRfc3RhdGVfZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHN0YXRlcyBvZiBORkMgY2xpZW50cy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgZW51bSAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYThhMmJkMTE5NzcxMjg4MDI5ZTBmNGFlZjhmODUwZjZcIj5fbmV0X25mY19sYXVuY2hfcG9wdXBfY2hlY2tfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FmNDk3ZTJjNDVhMWIwMmI3MzI1ZDUxNDFhNjJhZTA2OFwiPm5ldF9uZmNfbGF1bmNoX3BvcHVwX2NoZWNrX2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBsYXVuY2ggcG9wdXAgY2hlY2tzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBlbnVtICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EyZTkwNGY5YTE2YzJlYWJmNjQyMWU3MGU4MzJhODRiNFwiPl9uZXRfbmZjX2xhdW5jaF9wb3B1cF9zdGF0ZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTUzYzA2ODM2NDkxODI1ZTQyMzE4NDZmMTMzNWI2MDg4XCI+bmV0X25mY19sYXVuY2hfcG9wdXBfc3RhdGVfZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHN0YXRlcyBvZiBsYXVuY2ggcG9wdXAgc2VsZWN0aW9uLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBlbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNTcyZWJlNzVhNWNjOTM0NzMwNWE1ZmVjMmZiZGUwOWVcIj5fbmV0X25mY19wcml2aWxlZ2VfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EwZGVlOTAwMDc4ZjAzNDQ3NjJhYmUzNTIzMjA0MmNhMlwiPm5ldF9uZmNfcHJpdmlsZWdlX2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBORkMgcHJpdmlsZWdlcy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgZW51bSAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhZmYxNzkzMTU0MTcwYmEzNDY2YTU4MjgwYTMzMTQ4NmZcIj5fbmV0X25mY19kaXNjb3ZlcnlfbW9kZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTU0MDEzYzA0OTFkZjA5OGRhNDYyYmFmZTRkNTQzZjhmXCI+bmV0X25mY19kaXNjb3ZlcnlfbW9kZV9lPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgZGlzY292ZXJ5IG1vZGVzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBlbnVtICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FhYWE0OGU2OTFiMmYyNTY3YWFkODU0ZTlmZTNhYzIwOVwiPl9uZXRfbmZjX3NlY3VyZV9lbGVtZW50X3R5cGVfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExYWViNzVlMzI2MDYwNmY3Mzc2ZmIwNmM2MDE4YTg0Y1wiPm5ldF9uZmNfc2VjdXJlX2VsZW1lbnRfdHlwZV9lPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2Ygc2VjdXJlIGVsZW1lbnQgKFNFKSB0eXBlcy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgZW51bSAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhOTY1ZGUwZWExOWYzNTE2OWUxM2QyMGZkNDcwZmQwM2FcIj5fbmV0X25mY19zZWN1cmVfZWxlbWVudF9zdGF0ZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTBkZTQ4ZGYzZTU3YzliODlhZGY1ZTA3MDM0YjY0YjVkXCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF9zdGF0ZV9lPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgc3RhdGVzIG9mIHNlY3VyZSBlbGVtZW50IChTRSkuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIGVudW0gICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTM4N2UyYjI4N2IzNzkzZmVlNmY2ZGQxZWFkMWM3ODEzXCI+X25ldF9uZmNfc2VjdXJlX2VsZW1lbnRfbW9kZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWZkYzg1NzRiOTY3YzJhNmZjZTAxZWI3ZDVjMDQ5ZmY4XCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF9tb2RlX2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCBtb2RlcyBvZiBzZWN1cmUgZWxlbWVudCAoU0UpLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBlbnVtICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FkNGQ1ZWNkYzM3NGQ2OThmYTQ4ZWZiNzM2YzMxYTYxNFwiPl9uZXRfbmZjX2Nvbm5lY3Rpb25fdHlwZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTYzZDY5ZmY5ZmNlOTVlNTRmMzZmM2I5OWRiYjI0Y2Y4XCI+bmV0X25mY19jb25uZWN0aW9uX3R5cGVfZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIE5GQyBjb25uZWN0aW9uIHR5cGVzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBlbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYmYzNWRkZWY5ZDgxODUzMzRlYzQ4ZjY4NjYwYjg2NDJcIj5fbGxjcF9ldmVudF9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTEyMmMzNjcwMDQwZTJkNDgwYjhiNjQzYWEwMWMzZGU5XCI+bmV0X25mY19sbGNwX2V2ZW50X2U8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBMTENQIGV2ZW50cy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0IF9uZXRfbmZjX2RhdGFfcyAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E0Mjg0NmI4MmNiOGYwNjUyYTFmMTA3ODZkYTEyZDQ4M1wiPm5ldF9uZmNfZGF0YV9oPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkhhbmRsZSBmb3IgZGF0YSBzdHJ1Y3R1cmUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX25kZWZfX3JlY29yZF9fc1wiPl9uZXRfbmZjX25kZWZfcmVjb3JkX3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FlMTI4ZDcwNmY1NTVlNDBlMjc1Zjk1NjNmZmZjYmI1OFwiPm5ldF9uZmNfbmRlZl9yZWNvcmRfaDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5IYW5kbGUgZm9yIE5ERUYgcmVjb3JkIHN0cnVjdHVyZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fbmRlZl9fbWVzc2FnZV9fc1wiPl9uZXRfbmZjX25kZWZfbWVzc2FnZV9zPFwvYT4gKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhZmMxZjEyZTIzMmIxMzcyNTQ1YWUzZmY4OWFkNDRkNDZcIj5uZXRfbmZjX25kZWZfbWVzc2FnZV9oPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkhhbmRsZSBmb3IgTkRFRiBtZXNzYWdlIHN0cnVjdHVyZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fdGFyZ2V0X19pbmZvX19zXCI+X25ldF9uZmNfdGFyZ2V0X2luZm9fczxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTM5OTNhMDU0YzlkODZlMjNjOTg5ZDZhZDgzMDk2MjA3XCI+bmV0X25mY190YXJnZXRfaW5mb19oPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkhhbmRsZSBmb3IgTkZDIHRhcmdldCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX2xsY3BfX2NvbmZpZ19faW5mb19fc1wiPl9uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9fczxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNWY3NWE0OTM4NWM0ZDcwYTFjZDcxNWZjNTI4NjNlXCI+bmV0X25mY19sbGNwX2NvbmZpZ19pbmZvX2g8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+SGFuZGxlIGZvciBMTENQIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gc3RydWN0dXJlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19sbGNwX19zb2NrZXRfX29wdGlvbl9fc1wiPl9uZXRfbmZjX2xsY3Bfc29ja2V0X29wdGlvbl9zPFwvYT4gKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMzFlY2U3NjhiYzlmYTE4ZjkzNGFhMzkzMTlmOGM1OTNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X29wdGlvbl9oPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkhhbmRsZSBmb3IgTExDUCBzb2NrZXQgb3B0aW9uIHN0cnVjdHVyZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fdGFyZ2V0X19oYW5kbGVfX3NcIj5fbmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EwMTIyMWU4YTYxNzk0ZGQ5ZmMwZGYyZWVjNGU5OWJkOVwiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9oPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkhhbmRsZSBmb3IgTkZDIHRhcmdldCBoYW5kbGUgc3RydWN0dXJlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19jb25uZWN0aW9uX19oYW5kb3Zlcl9faW5mb19fc1wiPl9uZXRfbmZjX2Nvbm5lY3Rpb25faGFuZG92ZXJfaW5mb19zPFwvYT4gKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhZDc2MjQyODk5MGIzZjliODlkMmZiZGVjNjNkZmU1MzZcIj5uZXRfbmZjX2Nvbm5lY3Rpb25faGFuZG92ZXJfaW5mb19oPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkhhbmRsZSBmb3IgY29ubmVjdGlvbiBoYW5kb3ZlciBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTE3NDI5OGEwNDQ1ZjNlZGY3ZDAwOTc4NzJjNjNlZTU0XCI+bmV0X25mY19zYXBfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5UeXBlZGVmIGZvciBTZXJ2aWNlIEFjY2VzcyBQb2ludCAoU0FQKSB0eXBlLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiB1aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+VHlwZWRlZiBmb3IgTExDUCBzb2NrZXQgdHlwZS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdm9pZCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E0OTFjMjUzY2EyMzk1ODdhMGVlZWQ4MWUzYjI0N2QyNVwiPm5ldF9uZmNfbGxjcF9zb2NrZXRfY2I8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNGRhMzM0NGEwNDViNjllY2JiNjEwNzFhYTlmMzY1M2RcIj5uZXRfbmZjX2xsY3BfbWVzc2FnZV9lPFwvYT4gbWVzc2FnZSwgaW50IHJlc3VsdCwgdm9pZCAqZGF0YSwgdm9pZCAqdXNlcl9kYXRhLCB2b2lkICp0cmFuc19kYXRhKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+Q2FsbGJhY2sgZnVuY3Rpb24gZm9yIExMQ1Agc29ja2V0IGV2ZW50cy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdm9pZCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FiMWMxOTYxNTEyMTJiNTA3N2M5NWRjZjgyOTQzM2JmOVwiPm5ldF9uZmNfdGFyZ2V0X2RldGVjdGlvbl9saXN0ZW5lcl9jYjxcL2E+ICkodm9pZCAqZGF0YSwgdm9pZCAqdXNlcl9wYXJhbSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPkNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0YXJnZXQgZGV0ZWN0aW9uIGV2ZW50cy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgdm9pZCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FlMzRhZjZjNzYxNDI2YTQ4NGZlYjI0NDY5NzQzNDEzYVwiPm5ldF9uZmNfc2VfdHJhbnNhY3Rpb25fbGlzdGVuZXJfY2I8XC9hPiApKHZvaWQgKmRhdGEsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5DYWxsYmFjayBmdW5jdGlvbiBmb3Igc2VjdXJlIGVsZW1lbnQgKFNFKSB0cmFuc2FjdGlvbiBldmVudHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHZvaWQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNjg5Yjg3ZGZlNTE1N2UxYzk2NzA0NzYzMDI1ZjcyZTFcIj5uZXRfbmZjX2xsY3BfZXZlbnRfbGlzdGVuZXJfY2I8XC9hPiApKHZvaWQgKmRhdGEsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5DYWxsYmFjayBmdW5jdGlvbiBmb3IgTExDUCBldmVudCBldmVudHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHZvaWQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYWI4M2RiNDQ3M2UyN2IxYzg2ODVlNmY4OGQyNDEzYTVcIj5uZXRfbmZjX2hjZV9hcGR1X2xpc3RlbmVyX2NiPFwvYT4gKSh2b2lkICpkYXRhLCB2b2lkICp1c2VyX3BhcmFtKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+Q2FsbGJhY2sgZnVuY3Rpb24gZm9yIEhDRSBBUERVIGV2ZW50cy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX2RhdGFfX3RcIj5fbmV0X25mY19kYXRhX3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIE5GQyBkYXRhIGNvbnRhaW5pbmcgYSBidWZmZXIgYW5kIGl0cyBsZW5ndGguPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX2ludGVybmFsX19kYXRhX190XCI+X25ldF9uZmNfaW50ZXJuYWxfZGF0YV90PFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTkwOGQ0OTcwOTBjZjVmNmQ5ODYwNzJmMWVkM2MzODQxXCI+bmV0X25mY19pbnRlcm5hbF9kYXRhX3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBORkMgaW50ZXJuYWwgZGF0YSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX190YXJnZXRfX2hhbmRsZV9fc1wiPl9uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3IgTkZDIHRhcmdldCBoYW5kbGUgY29udGFpbmluZyBjb25uZWN0aW9uIGluZm9ybWF0aW9uLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19jdXJyZW50X190YXJnZXRfX2luZm9fX3NcIj5fbmV0X25mY19jdXJyZW50X3RhcmdldF9pbmZvX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYmRhNGM3MjE5ZDg4NWQ5NzE2ZDgzNWJiM2U0YzYyNzdcIj5uZXRfbmZjX2N1cnJlbnRfdGFyZ2V0X2luZm9fczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIGN1cnJlbnQgTkZDIHRhcmdldCBpbmZvcm1hdGlvbiBjb250YWluaW5nIGhhbmRsZSBhbmQgb3RoZXIgZGV0YWlscy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fbGxjcF9fY29uZmlnX19pbmZvX19zXCI+X25ldF9uZmNfbGxjcF9jb25maWdfaW5mb19zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTE3NDRiMzNmZmUyODdiZmIwNmMxOTE4MmQyYzc4MzM0XCI+bmV0X25mY19sbGNwX2NvbmZpZ19pbmZvX3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBMTENQIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX2xsY3BfX3NvY2tldF9fb3B0aW9uX19zXCI+X25ldF9uZmNfbGxjcF9zb2NrZXRfb3B0aW9uX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNzQ4NzkxMzcwYzAyZDllOGMzZDE2MmE4ZDJmZTFkNWJcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X29wdGlvbl9zPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3IgTExDUCBzb2NrZXQgb3B0aW9uIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19sbGNwX19pbnRlcm5hbF9fc29ja2V0X19zXCI+X25ldF9uZmNfbGxjcF9pbnRlcm5hbF9zb2NrZXRfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EwYTBiOTlkMDM4NWQ3YmQwYjQ5NDBlZThjNWI2NjdlMFwiPm5ldF9uZmNfbGxjcF9pbnRlcm5hbF9zb2NrZXRfczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIGludGVybmFsIExMQ1Agc29ja2V0IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19uZGVmX19yZWNvcmRfX3NcIj5fbmV0X25mY19uZGVmX3JlY29yZF9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTBiYTRkYWJjNWM5MDYxYTFiNjliODg2Y2QyMzlkNGY5XCI+bmV0X25mY19uZGVmX3JlY29yZF9zPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3IgTkRFRiByZWNvcmQgY29udGFpbmluZyB2YXJpb3VzIGZpZWxkcy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fbmRlZl9fbWVzc2FnZV9fc1wiPl9uZXRfbmZjX25kZWZfbWVzc2FnZV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWMxZmEwNjhhODZjNTYxYTczNzQ3ZTRlMjViOTM3NmE3XCI+bmV0X25mY19uZGVmX21lc3NhZ2VfczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIE5ERUYgbWVzc2FnZSBjb250YWluaW5nIHJlY29yZHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX190YWdfX2luZm9fX3NcIj5fbmV0X25mY190YWdfaW5mb19zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTkxMmNlNTgwOTNmNjc0YjZlM2ZiODU2YmQ1NTU1ZGZlXCI+bmV0X25mY190YWdfaW5mb19zPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3IgTkZDIHRhZyBpbmZvcm1hdGlvbiBjb250YWluaW5nIGtleS12YWx1ZSBwYWlycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fdGFyZ2V0X19pbmZvX19zXCI+X25ldF9uZmNfdGFyZ2V0X2luZm9fczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4ZTVjZGE0ZWJhMzc1MWRjNGJkMDdmNjY5Y2UwOGJhOVwiPm5ldF9uZmNfdGFyZ2V0X2luZm9fczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIE5GQyB0YXJnZXQgaW5mb3JtYXRpb24gY29udGFpbmluZyB2YXJpb3VzIGRldGFpbHMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3NlX19ldmVudF9faW5mb19fc1wiPl9uZXRfbmZjX3NlX2V2ZW50X2luZm9fczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FiNjM5ODZjNWNlZmMxZDFhZWRhZWExNjZhNDY0ZWE0ZVwiPm5ldF9uZmNfc2VfZXZlbnRfaW5mb19zPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3Igc2VjdXJlIGVsZW1lbnQgZXZlbnQgaW5mb3JtYXRpb24gY29udGFpbmluZyBBSUQgYW5kIHBhcmFtZXRlci48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fdHJhbnNjZWl2ZV9faW5mb19fc1wiPl9uZXRfbmZjX3RyYW5zY2VpdmVfaW5mb19zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTM5MWVhNmFmNDQ0OWI2MjNlMTFiYmFiZTM4NGZmZjJkXCI+bmV0X25mY190cmFuc2NlaXZlX2luZm9fczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIHRyYW5zY2VpdmUgaW5mb3JtYXRpb24gY29udGFpbmluZyBkZXZpY2UgdHlwZSBhbmQgZGF0YS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fY29ubmVjdGlvbl9faGFuZG92ZXJfX2luZm9fX3NcIj5fbmV0X25mY19jb25uZWN0aW9uX2hhbmRvdmVyX2luZm9fczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExMzUwMzRhY2NhOGVmZjZlYTQ5ZDU4MzM5YmQ1ZWNmY1wiPm5ldF9uZmNfY29ubmVjdGlvbl9oYW5kb3Zlcl9pbmZvX3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBjb25uZWN0aW9uIGhhbmRvdmVyIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdHlwZSBhbmQgZGF0YS48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fcmVxdWVzdF9fbXNnX190XCI+X25ldF9uZmNfcmVxdWVzdF9tc2dfdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FmM2ZhOTRkN2Y3NWMxYTQyZTM2YmUxYjc4ZDdhMTU0ZFwiPm5ldF9uZmNfcmVxdWVzdF9tc2dfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IG1lc3NhZ2UgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD50eXBlZGVmIHN0cnVjdCAgIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3JlcXVlc3RfX3RhcmdldF9fZGV0ZWN0ZWRfX3RcIj5fbmV0X25mY19yZXF1ZXN0X3RhcmdldF9kZXRlY3RlZF90PFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWRlYjExYTlkZGFmZmQ0OTRlYWEyYTE4YjI1N2M2OGJjXCI+bmV0X25mY19yZXF1ZXN0X3RhcmdldF9kZXRlY3RlZF90PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3IgTkZDIHJlcXVlc3QgdGFyZ2V0IGRldGVjdGVkIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19yZXF1ZXN0X19zZV9fZXZlbnRfX3RcIj5fbmV0X25mY19yZXF1ZXN0X3NlX2V2ZW50X3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNzQ1YmY1YmFkZDJkNDExMzY2NzY5ZjkwZTNjNWQ0NzBcIj5uZXRfbmZjX3JlcXVlc3Rfc2VfZXZlbnRfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IHNlY3VyZSBlbGVtZW50IGV2ZW50IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19yZXF1ZXN0X19sbGNwX19tc2dfX3RcIj5fbmV0X25mY19yZXF1ZXN0X2xsY3BfbXNnX3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMDgzNGFhNjFmMDNhZmUwY2NiNDJhMGUzYjY4MjhlYWFcIj5uZXRfbmZjX3JlcXVlc3RfbGxjcF9tc2dfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IExMQ1AgbWVzc2FnZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fcmVxdWVzdF9faGNlX19hcGR1X190XCI+X25ldF9uZmNfcmVxdWVzdF9oY2VfYXBkdV90PFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWM4MTJmMzBmYjM3ZGFhYWI5MTNlNmQ1NjJiNTMzNDA2XCI+bmV0X25mY19yZXF1ZXN0X2hjZV9hcGR1X3Q8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBORkMgcmVxdWVzdCBIQ0UgQVBEVSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnR5cGVkZWYgc3RydWN0ICAgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fcmVxdWVzdF9fbGlzdGVuX19zb2NrZXRfX3RcIj5fbmV0X25mY19yZXF1ZXN0X2xpc3Rlbl9zb2NrZXRfdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5YjI2OWQwZWM3NWUzMGFhMTM0NzAzNDU3MGIwM2MxNFwiPm5ldF9uZmNfcmVxdWVzdF9saXN0ZW5fc29ja2V0X3Q8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBORkMgcmVxdWVzdCBsaXN0ZW4gc29ja2V0IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19yZXF1ZXN0X19yZWNlaXZlX19zb2NrZXRfX3RcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfc29ja2V0X3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYmQ3NDgyOGU1NzBlZWJjNzg4NGJjZWVjNWE0YzQyZmJcIj5uZXRfbmZjX3JlcXVlc3RfcmVjZWl2ZV9zb2NrZXRfdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IHJlY2VpdmUgc29ja2V0IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19yZXF1ZXN0X19yZWNlaXZlX19mcm9tX19zb2NrZXRfX3RcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfZnJvbV9zb2NrZXRfdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EwOTg3M2RkZWE0ZDM0MDg1Y2M0N2JlNDVmM2FiYWRlMlwiPm5ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX2Zyb21fc29ja2V0X3Q8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBORkMgcmVxdWVzdCByZWNlaXZlIGZyb20gc29ja2V0IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19zdGFja19faW5mb3JtYXRpb25fX3NcIj5fbmV0X25mY19zdGFja19pbmZvcm1hdGlvbl9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWYxOGZhMTVmNjczZGFkMDlkNmI1MGNkMzBmNDgwOGUyXCI+bmV0X25mY19zdGFja19pbmZvcm1hdGlvbl9zPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxcL3RkPlxuPHRkPlN0cnVjdHVyZSBmb3IgTkZDIHN0YWNrIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX3NlY3VyZV9fZWxlbWVudF9faW5mb19fc1wiPl9zZWN1cmVfZWxlbWVudF9pbmZvX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMjY0NTkyZGFmYTczNDgyN2U5NTZhMTBiN2IyMWJlMGRcIj5uZXRfbmZjX3NlY3VyZV9lbGVtZW50X2luZm9fczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48XC90ZD5cbjx0ZD5TdHJ1Y3R1cmUgZm9yIHNlY3VyZSBlbGVtZW50IGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dHlwZWRlZiBzdHJ1Y3QgICA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX2hhbF9fYmFja2VuZF9fbmZjX19mdW5jc1wiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYTU2NTYzZGEwMmQ5MDg2NjU1MTJhOGEzYjM0ODMwZjZcIj5oYWxfYmFja2VuZF9uZmNfZnVuY3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PFwvdGQ+XG48dGQ+U3RydWN0dXJlIGZvciBuZmMgZnVuY3Rpb25zLjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoMiBpZD1cImNvbnRlbnQtZGF0YS1zdHJ1Y3R1cmUtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC1kYXRhLXN0cnVjdHVyZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5EYXRhIFN0cnVjdHVyZSBEb2N1bWVudGF0aW9uPFwvaDI+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfZGF0YV90PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgZGF0YSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dWludDhfdCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTc4MWE2ZGM3OGMyYTg0Zjk3NTg0Y2NhNTg3YjRlZjkxXCI+YnVmZmVyPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWIzMTdiMmExMWUyZWYyMWJjNjc3MjcwZWMyNzliMWVjXCI+bGVuZ3RoPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvblwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDhfdCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTc4MWE2ZGM3OGMyYTg0Zjk3NTg0Y2NhNTg3YjRlZjkxXCI+X25ldF9uZmNfZGF0YV90OjpidWZmZXI8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkJ1ZmZlciBhcnJheS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWIzMTdiMmExMWUyZWYyMWJjNjc3MjcwZWMyNzliMWVjXCI+X25ldF9uZmNfZGF0YV90OjpsZW5ndGg8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkxlbmd0aCBvZiB0aGUgYnVmZmVyLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfaW50ZXJuYWxfZGF0YV90PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgaW50ZXJuYWwgZGF0YSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZjU0MzkzMGQxM2FjNWQyY2FhNDUyZjYxZDk1MTQyOTFcIj5sZW5ndGg8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDhfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E3Mjc2ODIzMzA3YzlhOWEzM2NmZWE3YzJhYWY4Y2ExOVwiPmJ1ZmZlcjxcL2E+IFswXTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDhfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNzI3NjgyMzMwN2M5YTlhMzNjZmVhN2MyYWFmOGNhMTlcIj5fbmV0X25mY19pbnRlcm5hbF9kYXRhX3Q6OmJ1ZmZlcjxcL2E+WzBdPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QnVmZmVyIGFycmF5LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZjU0MzkzMGQxM2FjNWQyY2FhNDUyZjYxZDk1MTQyOTFcIj5fbmV0X25mY19pbnRlcm5hbF9kYXRhX3Q6Omxlbmd0aDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TGVuZ3RoIG9mIHRoZSBidWZmZXIuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfbmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyB0YXJnZXQgaGFuZGxlIGNvbnRhaW5pbmcgY29ubmVjdGlvbiBpbmZvcm1hdGlvbi48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBORkMgdGFyZ2V0IGhhbmRsZSBzdHJ1Y3R1cmUgY29udGFpbmluZyBjb25uZWN0aW9uIGluZm9ybWF0aW9uLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMjBlOThiNWExZjQ0ZTEwNjI2MjJmM2U5OGZlNGM4MTRcIj5jb25uZWN0aW9uX2lkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNjNkNjlmZjlmY2U5NWU1NGYzNmYzYjk5ZGJiMjRjZjhcIj5uZXRfbmZjX2Nvbm5lY3Rpb25fdHlwZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYmYzYjI2ZTZjMzIxYjA5MjZhZGRiMDI5NDA2ODY0NjVcIj5jb25uZWN0aW9uX3R5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E2YmQ1OWFmMWQzZmExNmQxNWVlN2M0YWU2ZjgzNjgxNFwiPm5ldF9uZmNfdGFyZ2V0X3R5cGVfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTg0MDYzYTI4M2MwMzg2NTg3OGJlMWJhZGFlNzM3YTRkXCI+dGFyZ2V0X3R5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4NjE0Y2Q2ZWQyODhiN2M2ODMxOThmOGI2NzMyOWU5ZFwiPm5ldF9uZmNfbGxjcF9hcHBfcHJvdG9jb2xfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTMwZWMyYjk5ZTI0Yzg1YjA2YmJlYmIwNjExNGVlOTFmXCI+YXBwX3R5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMlwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4NjE0Y2Q2ZWQyODhiN2M2ODMxOThmOGI2NzMyOWU5ZFwiPm5ldF9uZmNfbGxjcF9hcHBfcHJvdG9jb2xfZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzMGVjMmI5OWUyNGM4NWIwNmJiZWJiMDYxMTRlZTkxZlwiPl9uZXRfbmZjX3RhcmdldF9oYW5kbGVfczo6YXBwX3R5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFwcGxpY2F0aW9uIHByb3RvY29sIHR5cGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyMGU5OGI1YTFmNDRlMTA2MjYyMmYzZTk4ZmU0YzgxNFwiPl9uZXRfbmZjX3RhcmdldF9oYW5kbGVfczo6Y29ubmVjdGlvbl9pZDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q29ubmVjdGlvbiBJRC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E2M2Q2OWZmOWZjZTk1ZTU0ZjM2ZjNiOTlkYmIyNGNmOFwiPm5ldF9uZmNfY29ubmVjdGlvbl90eXBlX2U8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYmYzYjI2ZTZjMzIxYjA5MjZhZGRiMDI5NDA2ODY0NjVcIj5fbmV0X25mY190YXJnZXRfaGFuZGxlX3M6OmNvbm5lY3Rpb25fdHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q29ubmVjdGlvbiB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTZiZDU5YWYxZDNmYTE2ZDE1ZWU3YzRhZTZmODM2ODE0XCI+bmV0X25mY190YXJnZXRfdHlwZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTg0MDYzYTI4M2MwMzg2NTg3OGJlMWJhZGFlNzM3YTRkXCI+X25ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zOjp0YXJnZXRfdHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGFyZ2V0IHR5cGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfbmV0X25mY19jdXJyZW50X3RhcmdldF9pbmZvX3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIGN1cnJlbnQgTkZDIHRhcmdldCBpbmZvcm1hdGlvbiBjb250YWluaW5nIGhhbmRsZSBhbmQgb3RoZXIgZGV0YWlscy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhIGN1cnJlbnQgTkZDIHRhcmdldCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmluZyBoYW5kbGUgYW5kIG90aGVyIGRldGFpbHMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWJhMGVhOWY3YmY2MjIwYzYzZTM2ZDJjZGE2ODk3NjI0XCI+aGFuZGxlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTg0ODBlNzc5MGIzZTYyODQwMzZmOWE4OTE2YWMxOTc0XCI+ZGV2VHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMjFkZmRmNzJhNTI1OGRjYjBkMzU0NDcwYmFiYTc3YTZcIj5udW1iZXJfb2Zfa2V5czxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FmNTRiN2Y3MzhmYmQ1ZTdlM2FlMmM1YmVjOTNkNWIxZlwiPnRhcmdldF9pbmZvX3ZhbHVlczxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTNcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0zXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhODQ4MGU3NzkwYjNlNjI4NDAzNmY5YTg5MTZhYzE5NzRcIj5fbmV0X25mY19jdXJyZW50X3RhcmdldF9pbmZvX3M6OmRldlR5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRldmljZSB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWJhMGVhOWY3YmY2MjIwYzYzZTM2ZDJjZGE2ODk3NjI0XCI+X25ldF9uZmNfY3VycmVudF90YXJnZXRfaW5mb19zOjpoYW5kbGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk5GQyB0YXJnZXQgaGFuZGxlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTIxZGZkZjcyYTUyNThkY2IwZDM1NDQ3MGJhYmE3N2E2XCI+X25ldF9uZmNfY3VycmVudF90YXJnZXRfaW5mb19zOjpudW1iZXJfb2Zfa2V5czxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TnVtYmVyIG9mIGtleXMuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FmNTRiN2Y3MzhmYmQ1ZTdlM2FlMmM1YmVjOTNkNWIxZlwiPl9uZXRfbmZjX2N1cnJlbnRfdGFyZ2V0X2luZm9fczo6dGFyZ2V0X2luZm9fdmFsdWVzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UYXJnZXQgaW5mb3JtYXRpb24gdmFsdWVzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfbGxjcF9jb25maWdfaW5mb19zPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBMTENQIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTExDUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnVpbnQxNl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTc1NmVmMzg4NmI0ZTBhZTEzY2RjYTBhMTk5YmYwYmRmXCI+bWl1PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQxNl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWYzMWFlODQyZTNlZjE2ZDlkZGY0MWE2NGU5NTY4ZGQwXCI+d2tzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZmJmM2QyZTY2NDUyMWI4ZGIzZmJkNGI3YTA0YjAzZjFcIj5sdG88XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDhfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FkZmM0MjkwNmViOWJhN2FhY2YyZmFjOTY1NDQ0MGJmMlwiPm9wdGlvbjxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTRcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50OF90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FmYmYzZDJlNjY0NTIxYjhkYjNmYmQ0YjdhMDRiMDNmMVwiPl9uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9fczo6bHRvPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5MaW5rIFRpbWUgT3V0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MTZfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNzU2ZWYzODg2YjRlMGFlMTNjZGNhMGExOTliZjBiZGZcIj5fbmV0X25mY19sbGNwX2NvbmZpZ19pbmZvX3M6Om1pdTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TWF4aW11bSBJbmZvcm1hdGlvbiBVbml0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50OF90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FkZmM0MjkwNmViOWJhN2FhY2YyZmFjOTY1NDQ0MGJmMlwiPl9uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9fczo6b3B0aW9uPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5PcHRpb24uPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQxNl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FmMzFhZTg0MmUzZWYxNmQ5ZGRmNDFhNjRlOTU2OGRkMFwiPl9uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9fczo6d2tzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5XZWxsLUtub3duIFNlcnZpY2VzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfbGxjcF9zb2NrZXRfb3B0aW9uX3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIExMQ1Agc29ja2V0IG9wdGlvbiBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBMTENQIHNvY2tldCBvcHRpb24gc3RydWN0dXJlIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dWludDE2X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYTJjM2M0ODMzYTczMTljYzhkZjc2YWUxMTUzNTE2YTVcIj5taXU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDhfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2ExNjUzMTViM2FjNDczMDdiN2ZlOTAyMWJkNGQwMDYxZFwiPnJ3PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODhlZDY0MmFhYzlkZWIxYWUwMmI0YmE1ZDc0MDM4NjNcIj5uZXRfbmZjX3NvY2tldF90eXBlX2U8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlMGY3YmE4OWM4ZDY4Nzk5OWZmNjc4OTE1YmQxZDg1YlwiPnR5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi01XCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNVwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDE2X3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWEyYzNjNDgzM2E3MzE5Y2M4ZGY3NmFlMTE1MzUxNmE1XCI+X25ldF9uZmNfbGxjcF9zb2NrZXRfb3B0aW9uX3M6Om1pdTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TWF4aW11bSBJbmZvcm1hdGlvbiBVbml0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50OF90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2ExNjUzMTViM2FjNDczMDdiN2ZlOTAyMWJkNGQwMDYxZFwiPl9uZXRfbmZjX2xsY3Bfc29ja2V0X29wdGlvbl9zOjpydzxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+UmVjZWl2ZSBXaW5kb3cgU2l6ZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4OGVkNjQyYWFjOWRlYjFhZTAyYjRiYTVkNzQwMzg2M1wiPm5ldF9uZmNfc29ja2V0X3R5cGVfZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlMGY3YmE4OWM4ZDY4Nzk5OWZmNjc4OTE1YmQxZDg1YlwiPl9uZXRfbmZjX2xsY3Bfc29ja2V0X29wdGlvbl9zOjp0eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Tb2NrZXQgdHlwZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9uZXRfbmZjX2xsY3BfaW50ZXJuYWxfc29ja2V0X3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIGludGVybmFsIExMQ1Agc29ja2V0IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIGludGVybmFsIExMQ1Agc29ja2V0IHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnVpbnQxNl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWMxMzhjY2I0Yzk4NjgyZGNmNWExOWY4MzQ2YTJiYWQzXCI+bWl1PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMjZmMTQxNzkxYzViNjgyMWRhMDkwMmQ4MTkwMWZkZjBcIj5ydzxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTg4ZWQ2NDJhYWM5ZGViMWFlMDJiNGJhNWQ3NDAzODYzXCI+bmV0X25mY19zb2NrZXRfdHlwZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhODk1YmIxMTFkMDU1YjZkZDljZDUwOGQ0MjIwOWJiMWRcIj50eXBlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzOTc4Y2NlYzdmMDdmNDM4ZTRmNjRiODEyZWIwYjMzMFwiPm9hbF9zb2NrZXQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTA5NzIyNWNmZDM2MmE0M2IwOWIyMjIxYTc0Mjc3NjllXCI+Y2xpZW50X3NvY2tldDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTE3NDI5OGEwNDQ1ZjNlZGY3ZDAwOTc4NzJjNjNlZTU0XCI+bmV0X25mY19zYXBfdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTY5ZTE4MTZjZWM0ZmJlYWMzNDdkZDBkMDgwZTQ0MzI2XCI+c2FwPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQ4X3QgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E3MWZmZGQ4ZDRmMGNhNTdlOTI3ZWMwNjdmMWFlMGZkMFwiPnNlcnZpY2VfbmFtZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWQ3MjU1ZTY2MjlhOWM5MmE5MTljOTg5MGM5OGQ0MzZlXCI+ZGV2aWNlX2lkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNDkxYzI1M2NhMjM5NTg3YTBlZWVkODFlM2IyNDdkMjVcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X2NiPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOWQ5MmRkMzIyOGMzZWFlM2M0NGUxZTgzMTNmMGU2YmJcIj5jYjxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5ib29sPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTdhMTY2YjA4Y2VjMzVmZmEwOTQ2YjE5MDVlYmNmYjNhXCI+Y2xvc2VfcmVxdWVzdGVkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnZvaWQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzNTA2NTUyY2FiMWM0YWJjM2QzNGI0N2U1ZjhhYjU3YVwiPnJlZ2lzdGVyX3BhcmFtPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNlwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTZcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNDkxYzI1M2NhMjM5NTg3YTBlZWVkODFlM2IyNDdkMjVcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X2NiPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTlkOTJkZDMyMjhjM2VhZTNjNDRlMWU4MzEzZjBlNmJiXCI+X25ldF9uZmNfbGxjcF9pbnRlcm5hbF9zb2NrZXRfczo6Y2I8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNhbGxiYWNrIGZ1bmN0aW9uLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTA5NzIyNWNmZDM2MmE0M2IwOWIyMjIxYTc0Mjc3NjllXCI+X25ldF9uZmNfbGxjcF9pbnRlcm5hbF9zb2NrZXRfczo6Y2xpZW50X3NvY2tldDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2xpZW50IHNvY2tldC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+Ym9vbCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhN2ExNjZiMDhjZWMzNWZmYTA5NDZiMTkwNWViY2ZiM2FcIj5fbmV0X25mY19sbGNwX2ludGVybmFsX3NvY2tldF9zOjpjbG9zZV9yZXF1ZXN0ZWQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNsb3NlIHJlcXVlc3RlZCBmbGFnLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWQ3MjU1ZTY2MjlhOWM5MmE5MTljOTg5MGM5OGQ0MzZlXCI+X25ldF9uZmNfbGxjcF9pbnRlcm5hbF9zb2NrZXRfczo6ZGV2aWNlX2lkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EZXZpY2UgSUQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQxNl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjMTM4Y2NiNGM5ODY4MmRjZjVhMTlmODM0NmEyYmFkM1wiPl9uZXRfbmZjX2xsY3BfaW50ZXJuYWxfc29ja2V0X3M6Om1pdTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TWF4aW11bSBJbmZvcm1hdGlvbiBVbml0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTM5NzhjY2VjN2YwN2Y0MzhlNGY2NGI4MTJlYjBiMzMwXCI+X25ldF9uZmNfbGxjcF9pbnRlcm5hbF9zb2NrZXRfczo6b2FsX3NvY2tldDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+T0FMIHNvY2tldC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTM1MDY1NTJjYWIxYzRhYmMzZDM0YjQ3ZTVmOGFiNTdhXCI+X25ldF9uZmNfbGxjcF9pbnRlcm5hbF9zb2NrZXRfczo6cmVnaXN0ZXJfcGFyYW08XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlZ2lzdGVyIHBhcmFtZXRlci48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDhfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMjZmMTQxNzkxYzViNjgyMWRhMDkwMmQ4MTkwMWZkZjBcIj5fbmV0X25mY19sbGNwX2ludGVybmFsX3NvY2tldF9zOjpydzxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+UmVjZWl2ZSBXaW5kb3cgU2l6ZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExNzQyOThhMDQ0NWYzZWRmN2QwMDk3ODcyYzYzZWU1NFwiPm5ldF9uZmNfc2FwX3Q8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNjllMTgxNmNlYzRmYmVhYzM0N2RkMGQwODBlNDQzMjZcIj5fbmV0X25mY19sbGNwX2ludGVybmFsX3NvY2tldF9zOjpzYXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlcnZpY2UgQWNjZXNzIFBvaW50LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50OF90KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNzFmZmRkOGQ0ZjBjYTU3ZTkyN2VjMDY3ZjFhZTBmZDBcIj5fbmV0X25mY19sbGNwX2ludGVybmFsX3NvY2tldF9zOjpzZXJ2aWNlX25hbWU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlcnZpY2UgbmFtZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4OGVkNjQyYWFjOWRlYjFhZTAyYjRiYTVkNzQwMzg2M1wiPm5ldF9uZmNfc29ja2V0X3R5cGVfZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4OTViYjExMWQwNTViNmRkOWNkNTA4ZDQyMjA5YmIxZFwiPl9uZXRfbmZjX2xsY3BfaW50ZXJuYWxfc29ja2V0X3M6OnR5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNvY2tldCB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfbmRlZl9yZWNvcmRfczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTkRFRiByZWNvcmQgY29udGFpbmluZyB2YXJpb3VzIGZpZWxkcy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBOREVGIHJlY29yZCBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIGZpZWxkcy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOGYwNDFmN2QyNWYyZjM4NzdkZDA5YjkzYzQ0MTMyZjNcIj5NQjxcL2E+OjE8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMzg5NTk3ZGM0OGVhZGZmMmJmM2QzYjU1YWE5ZjYyMmVcIj5NRTxcL2E+OjE8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMjBlMjVkZjhmZDA3MzhkZWJlMTEwZjFmOTg0NDYzYzNcIj5DRjxcL2E+OjE8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNDJlOGQwMjJjZTg4NzUxMDJlOWEzM2FjNGU4ZTNkMGNcIj5TUjxcL2E+OjE8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOGE4ODVhYzIwZWQ2ZjU4MzEyYmY4ZjY2NjEwNDI5MWJcIj5JTDxcL2E+OjE8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQ4X3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMWUwNzkzOTYzMzM5YmMxNDEwNjg0OTNjNGYxZTdjZGNcIj5UTkY8XC9hPjozPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FiMGYzYTEwYjg1NDM1NWU3OWY1MmNhZGI0Yjk2NGQ5YVwiPnR5cGVfczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FhMjMxOTgzMTg4MjUxMGYwYzE5Mjg3NDIwMmFlYjEyMVwiPmlkX3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZTg5NDRiOWQ0ZGEwNGU1YzlkMWQ4NTA1YTAxOWE3ZTBcIj5wYXlsb2FkX3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX25kZWZfX3JlY29yZF9fc1wiPl9uZXRfbmZjX25kZWZfcmVjb3JkX3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTk3NjAyYTEzZDVmNmVjNmU2NzFlMDIyZWQwZWVlYmFjXCI+bmV4dDxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTdcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi03XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50OF90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyMGUyNWRmOGZkMDczOGRlYmUxMTBmMWY5ODQ0NjNjM1wiPl9uZXRfbmZjX25kZWZfcmVjb3JkX3M6OkNGPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DaHVuayBGbGFnIGJpdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWEyMzE5ODMxODgyNTEwZjBjMTkyODc0MjAyYWViMTIxXCI+X25ldF9uZmNfbmRlZl9yZWNvcmRfczo6aWRfczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+SUQgZmllbGQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQ4X3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYThhODg1YWMyMGVkNmY1ODMxMmJmOGY2NjYxMDQyOTFiXCI+X25ldF9uZmNfbmRlZl9yZWNvcmRfczo6SUw8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPklEIExlbmd0aCBQcmVzZW50IGJpdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDhfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOGYwNDFmN2QyNWYyZjM4NzdkZDA5YjkzYzQ0MTMyZjNcIj5fbmV0X25mY19uZGVmX3JlY29yZF9zOjpNQjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TWVzc2FnZSBCZWdpbiBiaXQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQ4X3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTM4OTU5N2RjNDhlYWRmZjJiZjNkM2I1NWFhOWY2MjJlXCI+X25ldF9uZmNfbmRlZl9yZWNvcmRfczo6TUU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk1lc3NhZ2UgRW5kIGJpdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX25kZWZfX3JlY29yZF9fc1wiPl9uZXRfbmZjX25kZWZfcmVjb3JkX3M8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTk3NjAyYTEzZDVmNmVjNmU2NzFlMDIyZWQwZWVlYmFjXCI+X25ldF9uZmNfbmRlZl9yZWNvcmRfczo6bmV4dDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+UG9pbnRlciB0byBuZXh0IHJlY29yZC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWU4OTQ0YjlkNGRhMDRlNWM5ZDFkODUwNWEwMTlhN2UwXCI+X25ldF9uZmNfbmRlZl9yZWNvcmRfczo6cGF5bG9hZF9zPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5QYXlsb2FkIGZpZWxkLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50OF90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0MmU4ZDAyMmNlODg3NTEwMmU5YTMzYWM0ZThlM2QwY1wiPl9uZXRfbmZjX25kZWZfcmVjb3JkX3M6OlNSPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TaG9ydCBSZWNvcmQgYml0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50OF90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2ExZTA3OTM5NjMzMzliYzE0MTA2ODQ5M2M0ZjFlN2NkY1wiPl9uZXRfbmZjX25kZWZfcmVjb3JkX3M6OlRORjxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VHlwZSBOYW1lIEZvcm1hdCBiaXRzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYjBmM2ExMGI4NTQzNTVlNzlmNTJjYWRiNGI5NjRkOWFcIj5fbmV0X25mY19uZGVmX3JlY29yZF9zOjp0eXBlX3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlR5cGUgZmllbGQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfbmV0X25mY19uZGVmX21lc3NhZ2VfczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTkRFRiBtZXNzYWdlIGNvbnRhaW5pbmcgcmVjb3Jkcy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBOREVGIG1lc3NhZ2Ugc3RydWN0dXJlIGNvbnRhaW5pbmcgcmVjb3Jkcy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTI0ZTUyYWY5M2E0NzM2ZTYxNWYyMDc0YzRjNjVlZTRlXCI+cmVjb3JkQ291bnQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EwYmE0ZGFiYzVjOTA2MWExYjY5Yjg4NmNkMjM5ZDRmOVwiPm5ldF9uZmNfbmRlZl9yZWNvcmRfczxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZmJmMDM4N2Y4NDM3YzRiOWZhNjlkYzM4OWJhNjk5N2FcIj5yZWNvcmRzPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tOFwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLThcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyNGU1MmFmOTNhNDczNmU2MTVmMjA3NGM0YzY1ZWU0ZVwiPl9uZXRfbmZjX25kZWZfbWVzc2FnZV9zOjpyZWNvcmRDb3VudDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TnVtYmVyIG9mIHJlY29yZHMuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMGJhNGRhYmM1YzkwNjFhMWI2OWI4ODZjZDIzOWQ0ZjlcIj5uZXRfbmZjX25kZWZfcmVjb3JkX3M8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWZiZjAzODdmODQzN2M0YjlmYTY5ZGMzODliYTY5OTdhXCI+X25ldF9uZmNfbmRlZl9tZXNzYWdlX3M6OnJlY29yZHM8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlBvaW50ZXIgdG8gcmVjb3Jkcy48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9uZXRfbmZjX3RhZ19pbmZvX3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyB0YWcgaW5mb3JtYXRpb24gY29udGFpbmluZyBrZXktdmFsdWUgcGFpcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHRhZyBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmluZyBrZXktdmFsdWUgcGFpcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD5jaGFyICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZTkwNzU1YTg0MjE2NTkyNWZiODMzZmFkNjI4ODU4ODVcIj5rZXk8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E0Mjg0NmI4MmNiOGYwNjUyYTFmMTA3ODZkYTEyZDQ4M1wiPm5ldF9uZmNfZGF0YV9oPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMGE3ZjBjMjE4NWRkMDVjNDdmOWYwNzliNTU4ZjYwMjhcIj52YWx1ZTxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTlcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi05XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5jaGFyKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZTkwNzU1YTg0MjE2NTkyNWZiODMzZmFkNjI4ODU4ODVcIj5fbmV0X25mY190YWdfaW5mb19zOjprZXk8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPktleS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E0Mjg0NmI4MmNiOGYwNjUyYTFmMTA3ODZkYTEyZDQ4M1wiPm5ldF9uZmNfZGF0YV9oPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTBhN2YwYzIxODVkZDA1YzQ3ZjlmMDc5YjU1OGY2MDI4XCI+X25ldF9uZmNfdGFnX2luZm9fczo6dmFsdWU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlZhbHVlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfdGFyZ2V0X2luZm9fczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTkZDIHRhcmdldCBpbmZvcm1hdGlvbiBjb250YWluaW5nIHZhcmlvdXMgZGV0YWlscy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBORkMgdGFyZ2V0IGluZm9ybWF0aW9uIHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgZGV0YWlscy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMDIzZWI1NDJmODQyNDY3NjBkZjA5ZjJmYWU2ZTA4NWZcIj5oYW5kbGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E2YmQ1OWFmMWQzZmExNmQxNWVlN2M0YWU2ZjgzNjgxNFwiPm5ldF9uZmNfdGFyZ2V0X3R5cGVfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWU0MGVmNDBiMDZiNzNkZDJjYjI3NmZjNTAxODgyMGUwXCI+ZGV2VHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50OF90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWNjNzI5MmJjMWMzODMxMGJjYTZkZjc0M2UwNjM5YjNhXCI+aXNfbmRlZl9zdXBwb3J0ZWQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDhfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E2YTFlYjI2MDYwNzg4ZWJhMjYxZWRmZTA5ODM4M2QxNVwiPm5kZWZfY2FyZF9zdGF0ZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyZmI1ZTMzNjRmNDI1OGU5Zjc1NjRhNDg5NDM1Y2QyN1wiPm1heF9kYXRhX3NpemU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNzM5NDAzMWU2NTljNDFjYjI5NmI4MjljZWNjNjBmMTJcIj5hY3R1YWxfZGF0YV9zaXplPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0Y2EzMDZjZjBjNjM1ZDAxNmIyZDFhNTRjYWEyZmMzOVwiPm51bWJlcl9vZl9rZXlzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhOTEyY2U1ODA5M2Y2NzRiNmUzZmI4NTZiZDU1NTVkZmVcIj5uZXRfbmZjX3RhZ19pbmZvX3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTRjYjZjNzA3ODliMDg1MTRmYzQ2YjE4NjZlZWE2NWVmXCI+dGFnX2luZm9fbGlzdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5jaGFyICoqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWU2MmU0NmU4MzdmMGUwNWQ3MjhkYjA5ZTk4MjMyMjJjXCI+a2V5bGlzdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4MmE4OTlhMDJlZGI3ZjRkNWQ3OTNiZWNjMWI4Njg4OVwiPnJhd19kYXRhPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMTBcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xMFwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTczOTQwMzFlNjU5YzQxY2IyOTZiODI5Y2VjYzYwZjEyXCI+X25ldF9uZmNfdGFyZ2V0X2luZm9fczo6YWN0dWFsX2RhdGFfc2l6ZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QWN0dWFsIGRhdGEgc2l6ZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E2YmQ1OWFmMWQzZmExNmQxNWVlN2M0YWU2ZjgzNjgxNFwiPm5ldF9uZmNfdGFyZ2V0X3R5cGVfZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlNDBlZjQwYjA2YjczZGQyY2IyNzZmYzUwMTg4MjBlMFwiPl9uZXRfbmZjX3RhcmdldF9pbmZvX3M6OmRldlR5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRldmljZSB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTAyM2ViNTQyZjg0MjQ2NzYwZGYwOWYyZmFlNmUwODVmXCI+X25ldF9uZmNfdGFyZ2V0X2luZm9fczo6aGFuZGxlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5ORkMgdGFyZ2V0IGhhbmRsZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDhfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhY2M3MjkyYmMxYzM4MzEwYmNhNmRmNzQzZTA2MzliM2FcIj5fbmV0X25mY190YXJnZXRfaW5mb19zOjppc19uZGVmX3N1cHBvcnRlZDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TkRFRiBzdXBwb3J0IGZsYWcuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmNoYXIqKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZTYyZTQ2ZTgzN2YwZTA1ZDcyOGRiMDllOTgyMzIyMmNcIj5fbmV0X25mY190YXJnZXRfaW5mb19zOjprZXlsaXN0PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5LZXkgbGlzdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTJmYjVlMzM2NGY0MjU4ZTlmNzU2NGE0ODk0MzVjZDI3XCI+X25ldF9uZmNfdGFyZ2V0X2luZm9fczo6bWF4X2RhdGFfc2l6ZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TWF4aW11bSBkYXRhIHNpemUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQ4X3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTZhMWViMjYwNjA3ODhlYmEyNjFlZGZlMDk4MzgzZDE1XCI+X25ldF9uZmNfdGFyZ2V0X2luZm9fczo6bmRlZl9jYXJkX3N0YXRlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5OREVGIGNhcmQgc3RhdGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNGNhMzA2Y2YwYzYzNWQwMTZiMmQxYTU0Y2FhMmZjMzlcIj5fbmV0X25mY190YXJnZXRfaW5mb19zOjpudW1iZXJfb2Zfa2V5czxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TnVtYmVyIG9mIGtleXMuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4MmE4OTlhMDJlZGI3ZjRkNWQ3OTNiZWNjMWI4Njg4OVwiPl9uZXRfbmZjX3RhcmdldF9pbmZvX3M6OnJhd19kYXRhPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SYXcgZGF0YS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5MTJjZTU4MDkzZjY3NGI2ZTNmYjg1NmJkNTU1NWRmZVwiPm5ldF9uZmNfdGFnX2luZm9fczxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNGNiNmM3MDc4OWIwODUxNGZjNDZiMTg2NmVlYTY1ZWZcIj5fbmV0X25mY190YXJnZXRfaW5mb19zOjp0YWdfaW5mb19saXN0PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5UYWcgaW5mb3JtYXRpb24gbGlzdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9uZXRfbmZjX3NlX2V2ZW50X2luZm9fczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3Igc2VjdXJlIGVsZW1lbnQgZXZlbnQgaW5mb3JtYXRpb24gY29udGFpbmluZyBBSUQgYW5kIHBhcmFtZXRlci48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhIHNlY3VyZSBlbGVtZW50IGV2ZW50IGluZm9ybWF0aW9uIHN0cnVjdHVyZSBjb250YWluaW5nIEFJRCBhbmQgcGFyYW1ldGVyLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhN2E1OTYwMDliNzgzODE4OTJjYzBiOGE4ZWM4YTQ1ODhcIj5haWQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZDIzZDk0OTcxYzk2ZDZiOTBiMWMxZjEyYjRkZjRiNGRcIj5wYXJhbTxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTExXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMTFcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E3YTU5NjAwOWI3ODM4MTg5MmNjMGI4YThlYzhhNDU4OFwiPl9uZXRfbmZjX3NlX2V2ZW50X2luZm9fczo6YWlkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5BSUQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FkMjNkOTQ5NzFjOTZkNmI5MGIxYzFmMTJiNGRmNGI0ZFwiPl9uZXRfbmZjX3NlX2V2ZW50X2luZm9fczo6cGFyYW08XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlBhcmFtZXRlci48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9uZXRfbmZjX3RyYW5zY2VpdmVfaW5mb19zPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciB0cmFuc2NlaXZlIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgZGV2aWNlIHR5cGUgYW5kIGRhdGEuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYSB0cmFuc2NlaXZlIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBjb250YWluaW5nIGRldmljZSB0eXBlIGFuZCBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYjQzMDViYjU1MDZkOWQ5ODJkZGQ0MzU2NjY0NDA2MmFcIj5kZXZfdHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjMTNiNmQwNDRmMzkyYmE2M2VlZDc4MGEwZmU0ZjZkNlwiPnRyYW5zX2RhdGE8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xMlwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTEyXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYjQzMDViYjU1MDZkOWQ5ODJkZGQ0MzU2NjY0NDA2MmFcIj5fbmV0X25mY190cmFuc2NlaXZlX2luZm9fczo6ZGV2X3R5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRldmljZSB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYzEzYjZkMDQ0ZjM5MmJhNjNlZWQ3ODBhMGZlNGY2ZDZcIj5fbmV0X25mY190cmFuc2NlaXZlX2luZm9fczo6dHJhbnNfZGF0YTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VHJhbnNjZWl2ZSBkYXRhLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfY29ubmVjdGlvbl9oYW5kb3Zlcl9pbmZvX3M8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIGNvbm5lY3Rpb24gaGFuZG92ZXIgaW5mb3JtYXRpb24gY29udGFpbmluZyB0eXBlIGFuZCBkYXRhLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGEgY29ubmVjdGlvbiBoYW5kb3ZlciBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmluZyB0eXBlIGFuZCBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5ODg2NzA4MjYxZGZjMDYzYmMxZGU5NTc5ZGY1YjUzM1wiPm5ldF9uZmNfY29ubl9oYW5kb3Zlcl9jYXJyaWVyX3R5cGVfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWNmNzFjZmJjNjc4MDQzZTBmOTJhNjQ3ZGM2NDRlZTMwXCI+dHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4MmZmYzc3ODlhYTZjYTk3YmM1MTA5ZDgyYTZiMzJmZFwiPmRhdGE8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xM1wiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTEzXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhODJmZmM3Nzg5YWE2Y2E5N2JjNTEwOWQ4MmE2YjMyZmRcIj5fbmV0X25mY19jb25uZWN0aW9uX2hhbmRvdmVyX2luZm9fczo6ZGF0YTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGF0YS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5ODg2NzA4MjYxZGZjMDYzYmMxZGU5NTc5ZGY1YjUzM1wiPm5ldF9uZmNfY29ubl9oYW5kb3Zlcl9jYXJyaWVyX3R5cGVfZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjZjcxY2ZiYzY3ODA0M2UwZjkyYTY0N2RjNjQ0ZWUzMFwiPl9uZXRfbmZjX2Nvbm5lY3Rpb25faGFuZG92ZXJfaW5mb19zOjp0eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Db25uZWN0aW9uIGhhbmRvdmVyIGNhcnJpZXIgdHlwZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9uZXRfbmZjX3JlcXVlc3RfbXNnX3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IG1lc3NhZ2UgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHJlcXVlc3QgbWVzc2FnZSBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FkNDA4ODBhNDAyODI4ZjA0NTEyMGZlOGJjMGE5ZGQxNVwiPmxlbmd0aDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FhNmU2ZjExNTNmNTRmMTU2MzhjMTJlNjgzY2UyOGQ5M1wiPnJlcXVlc3RfdHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E2ZTY0N2ZkMTY3YmI4ZWFiNjVjYzJiMmU2MWZlY2Y3ZVwiPmNsaWVudF9mZDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4MDlmNTk0ZmNhMzc3ZTgzZGVjM2FiOTBlNDgyNjEwNFwiPmZsYWdzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnZvaWQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FiMWRlZjZiMzViYzE1OGJlOGVkMzkzNDZiZGI0ZDE3MFwiPnVzZXJfcGFyYW08XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xNFwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTE0XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNmU2NDdmZDE2N2JiOGVhYjY1Y2MyYjJlNjFmZWNmN2VcIj5fbmV0X25mY19yZXF1ZXN0X21zZ190OjpjbGllbnRfZmQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNsaWVudCBmaWxlIGRlc2NyaXB0b3IuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4MDlmNTk0ZmNhMzc3ZTgzZGVjM2FiOTBlNDgyNjEwNFwiPl9uZXRfbmZjX3JlcXVlc3RfbXNnX3Q6OmZsYWdzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GbGFncy48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWQ0MDg4MGE0MDI4MjhmMDQ1MTIwZmU4YmMwYTlkZDE1XCI+X25ldF9uZmNfcmVxdWVzdF9tc2dfdDo6bGVuZ3RoPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5MZW5ndGggb2YgdGhlIG1lc3NhZ2UuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FhNmU2ZjExNTNmNTRmMTU2MzhjMTJlNjgzY2UyOGQ5M1wiPl9uZXRfbmZjX3JlcXVlc3RfbXNnX3Q6OnJlcXVlc3RfdHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+UmVxdWVzdCB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD52b2lkKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYjFkZWY2YjM1YmMxNThiZThlZDM5MzQ2YmRiNGQxNzBcIj5fbmV0X25mY19yZXF1ZXN0X21zZ190Ojp1c2VyX3BhcmFtPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Vc2VyIHBhcmFtZXRlci48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9uZXRfbmZjX3JlcXVlc3RfdGFyZ2V0X2RldGVjdGVkX3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IHRhcmdldCBkZXRlY3RlZCBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBORkMgcmVxdWVzdCB0YXJnZXQgZGV0ZWN0ZWQgc3RydWN0dXJlIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMjIxOTgxNTA4NzkwMjI3MDkzZWIxYjgyOGY2MGJiZWVcIj5sZW5ndGg8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNTI1MzJiZjA3ZDhmYWFkYTk4NzlhMDk3MTg3ZGU4NGNcIj5yZXF1ZXN0X3R5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOGZmYmY0MjlkMWVkMjBlMTQ5NTYwN2RjYTk5ZWIwMmJcIj5jbGllbnRfZmQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOGFkNTAwYjk1NGRmNDI3NjRmZDViYzVkY2VmZDVkZDhcIj5mbGFnczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZThjMTE5OTc2YzJiNmMxOTA0OWEzMmEzNmFlYWVmMDVcIj51c2VyX3BhcmFtPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYmM1MDFlY2ZjYzE3M2U0ZTJiMGMzNmY4ZWEwZDdmYmFcIj5oYW5kbGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMTIwNmE4NGQwYWUwNjlhNTMyNmQ3ZDIxZDQ0YWJmZjRcIj5kZXZfdHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQ8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYmQ5ZmVkNmJiMjA0M2VhZjRkOTFkZWY4NzY5NTc3YThcIj5udW1iZXJfb2Zfa2V5czxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTkwOGQ0OTcwOTBjZjVmNmQ5ODYwNzJmMWVkM2MzODQxXCI+bmV0X25mY19pbnRlcm5hbF9kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E3NWU0OTIzNmZjMjM1ZmI5NjNjNjRmMTdlYzdkMWQ4NlwiPnRhcmdldF9pbmZvX3ZhbHVlczxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTE1XCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMTVcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4ZmZiZjQyOWQxZWQyMGUxNDk1NjA3ZGNhOTllYjAyYlwiPl9uZXRfbmZjX3JlcXVlc3RfdGFyZ2V0X2RldGVjdGVkX3Q6OmNsaWVudF9mZDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2xpZW50IGZpbGUgZGVzY3JpcHRvci48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTEyMDZhODRkMGFlMDY5YTUzMjZkN2QyMWQ0NGFiZmY0XCI+X25ldF9uZmNfcmVxdWVzdF90YXJnZXRfZGV0ZWN0ZWRfdDo6ZGV2X3R5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRldmljZSB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOGFkNTAwYjk1NGRmNDI3NjRmZDViYzVkY2VmZDVkZDhcIj5fbmV0X25mY19yZXF1ZXN0X3RhcmdldF9kZXRlY3RlZF90OjpmbGFnczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RmxhZ3MuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYmM1MDFlY2ZjYzE3M2U0ZTJiMGMzNmY4ZWEwZDdmYmFcIj5fbmV0X25mY19yZXF1ZXN0X3RhcmdldF9kZXRlY3RlZF90OjpoYW5kbGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk5GQyB0YXJnZXQgaGFuZGxlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMjIxOTgxNTA4NzkwMjI3MDkzZWIxYjgyOGY2MGJiZWVcIj5fbmV0X25mY19yZXF1ZXN0X3RhcmdldF9kZXRlY3RlZF90OjpsZW5ndGg8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkxlbmd0aCBvZiB0aGUgbWVzc2FnZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FiZDlmZWQ2YmIyMDQzZWFmNGQ5MWRlZjg3Njk1NzdhOFwiPl9uZXRfbmZjX3JlcXVlc3RfdGFyZ2V0X2RldGVjdGVkX3Q6Om51bWJlcl9vZl9rZXlzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5OdW1iZXIgb2Yga2V5cy48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTUyNTMyYmYwN2Q4ZmFhZGE5ODc5YTA5NzE4N2RlODRjXCI+X25ldF9uZmNfcmVxdWVzdF90YXJnZXRfZGV0ZWN0ZWRfdDo6cmVxdWVzdF90eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZXF1ZXN0IHR5cGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhOTA4ZDQ5NzA5MGNmNWY2ZDk4NjA3MmYxZWQzYzM4NDFcIj5uZXRfbmZjX2ludGVybmFsX2RhdGFfczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E3NWU0OTIzNmZjMjM1ZmI5NjNjNjRmMTdlYzdkMWQ4NlwiPl9uZXRfbmZjX3JlcXVlc3RfdGFyZ2V0X2RldGVjdGVkX3Q6OnRhcmdldF9pbmZvX3ZhbHVlczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VGFyZ2V0IGluZm9ybWF0aW9uIHZhbHVlcy48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWU4YzExOTk3NmMyYjZjMTkwNDlhMzJhMzZhZWFlZjA1XCI+X25ldF9uZmNfcmVxdWVzdF90YXJnZXRfZGV0ZWN0ZWRfdDo6dXNlcl9wYXJhbTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VXNlciBwYXJhbWV0ZXIuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfbmV0X25mY19yZXF1ZXN0X3NlX2V2ZW50X3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IHNlY3VyZSBlbGVtZW50IGV2ZW50IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyByZXF1ZXN0IHNlY3VyZSBlbGVtZW50IGV2ZW50IHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQzN2MzYzcyZjg0ZGQyZTQyNzg5NTM3YTI1Y2I0NjIwXCI+bGVuZ3RoPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTdiZWE3OTkzMTA5M2QzZjk5ZjQxM2U0YzY2OWMxM2YzXCI+cmVxdWVzdF90eXBlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWViYWUwZDJjMTI5N2I4MWRmMGNmZmUwOWMyOGY4ZjY3XCI+Y2xpZW50X2ZkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTgyYjE5NzM2MjIxOTE2ZTI3MDcwNjFlMGRiZGI5NjZhXCI+ZmxhZ3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dm9pZCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTRlODFlYmVjNmVmM2VjYWEzMTA0ZDk3ZTU2ZThlMzNlXCI+dXNlcl9wYXJhbTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjMzY1YjkwY2M0NTk4YWUzZjdhMmExODZkOTU4N2ZmYlwiPmFpZDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FmMmJhNGY1MmRmYTE5OWNkNzEzNGNiNmYxNjEzOGMxZFwiPnBhcmFtPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMTZcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xNlwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWMzNjViOTBjYzQ1OThhZTNmN2EyYTE4NmQ5NTg3ZmZiXCI+X25ldF9uZmNfcmVxdWVzdF9zZV9ldmVudF90OjphaWQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFJRC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWViYWUwZDJjMTI5N2I4MWRmMGNmZmUwOWMyOGY4ZjY3XCI+X25ldF9uZmNfcmVxdWVzdF9zZV9ldmVudF90OjpjbGllbnRfZmQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNsaWVudCBmaWxlIGRlc2NyaXB0b3IuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4MmIxOTczNjIyMTkxNmUyNzA3MDYxZTBkYmRiOTY2YVwiPl9uZXRfbmZjX3JlcXVlc3Rfc2VfZXZlbnRfdDo6ZmxhZ3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZsYWdzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNDM3YzNjNzJmODRkZDJlNDI3ODk1MzdhMjVjYjQ2MjBcIj5fbmV0X25mY19yZXF1ZXN0X3NlX2V2ZW50X3Q6Omxlbmd0aDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TGVuZ3RoIG9mIHRoZSBtZXNzYWdlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZjJiYTRmNTJkZmExOTljZDcxMzRjYjZmMTYxMzhjMWRcIj5fbmV0X25mY19yZXF1ZXN0X3NlX2V2ZW50X3Q6OnBhcmFtPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5QYXJhbWV0ZXIuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E3YmVhNzk5MzEwOTNkM2Y5OWY0MTNlNGM2NjljMTNmM1wiPl9uZXRfbmZjX3JlcXVlc3Rfc2VfZXZlbnRfdDo6cmVxdWVzdF90eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZXF1ZXN0IHR5cGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnZvaWQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0ZTgxZWJlYzZlZjNlY2FhMzEwNGQ5N2U1NmU4ZTMzZVwiPl9uZXRfbmZjX3JlcXVlc3Rfc2VfZXZlbnRfdDo6dXNlcl9wYXJhbTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VXNlciBwYXJhbWV0ZXIuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfbmV0X25mY19yZXF1ZXN0X2xsY3BfbXNnX3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IExMQ1AgbWVzc2FnZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBORkMgcmVxdWVzdCBMTENQIG1lc3NhZ2Ugc3RydWN0dXJlIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhM2ViZDVmNjgxNDc2ZTZjNTM3NzRjMzEzNGI1OWY3YjBcIj5sZW5ndGg8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMmU1ZWNjZWU0MGY0YmQ5ZDgzZmQxZWMyMjQyYWMzZDZcIj5yZXF1ZXN0X3R5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYWY0MTRiZjgwZjBiM2Y4MDI1Y2RlZjY2N2M3ODM0MGJcIj5jbGllbnRfZmQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZTM4OTA2ZDAzOTQ0NzA5YzA1NDc4OGYxODM3MzVjZDNcIj5mbGFnczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYmFkNGIyZDA3MjEzMzQ2ODAwYWFiYzQzYTFkOWJmYzhcIj51c2VyX3BhcmFtPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTFlOWUyNGQ5OThiM2QwZjk1NDMwMWI1YjUwYjc0NWYwXCI+cmVzdWx0PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyMGQ1NWViNjBmMTQ1Y2FlNzMxZDM4NjQwNThjMTRmY1wiPmxsY3Bfc29ja2V0PFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMTdcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xN1wiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWFmNDE0YmY4MGYwYjNmODAyNWNkZWY2NjdjNzgzNDBiXCI+X25ldF9uZmNfcmVxdWVzdF9sbGNwX21zZ190OjpjbGllbnRfZmQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNsaWVudCBmaWxlIGRlc2NyaXB0b3IuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlMzg5MDZkMDM5NDQ3MDljMDU0Nzg4ZjE4MzczNWNkM1wiPl9uZXRfbmZjX3JlcXVlc3RfbGxjcF9tc2dfdDo6ZmxhZ3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZsYWdzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhM2ViZDVmNjgxNDc2ZTZjNTM3NzRjMzEzNGI1OWY3YjBcIj5fbmV0X25mY19yZXF1ZXN0X2xsY3BfbXNnX3Q6Omxlbmd0aDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TGVuZ3RoIG9mIHRoZSBtZXNzYWdlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTIwZDU1ZWI2MGYxNDVjYWU3MzFkMzg2NDA1OGMxNGZjXCI+X25ldF9uZmNfcmVxdWVzdF9sbGNwX21zZ190OjpsbGNwX3NvY2tldDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TExDUCBzb2NrZXQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyZTVlY2NlZTQwZjRiZDlkODNmZDFlYzIyNDJhYzNkNlwiPl9uZXRfbmZjX3JlcXVlc3RfbGxjcF9tc2dfdDo6cmVxdWVzdF90eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZXF1ZXN0IHR5cGUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2ExZTllMjRkOTk4YjNkMGY5NTQzMDFiNWI1MGI3NDVmMFwiPl9uZXRfbmZjX3JlcXVlc3RfbGxjcF9tc2dfdDo6cmVzdWx0PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZXN1bHQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnZvaWQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FiYWQ0YjJkMDcyMTMzNDY4MDBhYWJjNDNhMWQ5YmZjOFwiPl9uZXRfbmZjX3JlcXVlc3RfbGxjcF9tc2dfdDo6dXNlcl9wYXJhbTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VXNlciBwYXJhbWV0ZXIuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfbmV0X25mY19yZXF1ZXN0X2hjZV9hcGR1X3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IEhDRSBBUERVIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyByZXF1ZXN0IEhDRSBBUERVIHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQzNjgyNTE2MTlmMzMwYjEzNGE5OWQ0NmYwNjUxOGQ1XCI+bGVuZ3RoPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWFhNjY0ODc1MzQzZTZhODQxMmFjMDFiZjZkODhkYjBjXCI+cmVxdWVzdF90eXBlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTBiNjJhZmY2NzNhMGQ4M2NmMGZjYmIzNzQ4MjQ5YTVhXCI+Y2xpZW50X2ZkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWEzM2E4NjhkNzVmZGMxNjQxMjI3NmViNzM0ZTRjNmNlXCI+ZmxhZ3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dm9pZCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTExNzc2MjhhN2NlNGE1NTVkM2MzODVjN2Y3NDZiMzJkXCI+dXNlcl9wYXJhbTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0ODBmZGU3NmQ0NTE1NzU3OWUxYmE1ODJlMGY5YzhmM1wiPmFwZHU8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xOFwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTE4XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNDgwZmRlNzZkNDUxNTc1NzllMWJhNTgyZTBmOWM4ZjNcIj5fbmV0X25mY19yZXF1ZXN0X2hjZV9hcGR1X3Q6OmFwZHU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFQRFUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EwYjYyYWZmNjczYTBkODNjZjBmY2JiMzc0ODI0OWE1YVwiPl9uZXRfbmZjX3JlcXVlc3RfaGNlX2FwZHVfdDo6Y2xpZW50X2ZkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DbGllbnQgZmlsZSBkZXNjcmlwdG9yLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYTMzYTg2OGQ3NWZkYzE2NDEyMjc2ZWI3MzRlNGM2Y2VcIj5fbmV0X25mY19yZXF1ZXN0X2hjZV9hcGR1X3Q6OmZsYWdzPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GbGFncy48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQzNjgyNTE2MTlmMzMwYjEzNGE5OWQ0NmYwNjUxOGQ1XCI+X25ldF9uZmNfcmVxdWVzdF9oY2VfYXBkdV90OjpsZW5ndGg8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkxlbmd0aCBvZiB0aGUgbWVzc2FnZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWFhNjY0ODc1MzQzZTZhODQxMmFjMDFiZjZkODhkYjBjXCI+X25ldF9uZmNfcmVxdWVzdF9oY2VfYXBkdV90OjpyZXF1ZXN0X3R5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlcXVlc3QgdHlwZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTExNzc2MjhhN2NlNGE1NTVkM2MzODVjN2Y3NDZiMzJkXCI+X25ldF9uZmNfcmVxdWVzdF9oY2VfYXBkdV90Ojp1c2VyX3BhcmFtPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Vc2VyIHBhcmFtZXRlci48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+c3RydWN0IF9uZXRfbmZjX3JlcXVlc3RfbGlzdGVuX3NvY2tldF90PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgcmVxdWVzdCBsaXN0ZW4gc29ja2V0IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyByZXF1ZXN0IGxpc3RlbiBzb2NrZXQgc3RydWN0dXJlIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+RGF0YSBGaWVsZHM8XC90aD5cbjx0aD48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48dGJvZHk+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMzg3YmVjYzdjOTc5YzYzYzE3ZWQ3ODc4MjlhNzkzZGVcIj5sZW5ndGg8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYjc5MjIyOTYyYTIyZDQ2ZTM5ZjEzZWNjZTM0NjA0MzVcIj5yZXF1ZXN0X3R5cGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOTdkZWJjNGUyYjkwZDA4OTAzMTc0NWY4ZjFkOTczYzdcIj5jbGllbnRfZmQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZGE0NzAyMDFjZjc0ZDE3NTQyODkxZTk1NWI5OWIzZDFcIj5mbGFnczxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD52b2lkICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYWYxOWRlYjJlY2NkZGRiM2U5NGQ3NzgwY2U5ZDcwOWFcIj51c2VyX3BhcmFtPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWYwNjE1ZTZhZDBiZmE0NGEwNzQ0ODk1MDU4NDhiMjMzXCI+cmVzdWx0PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZWZhZWI3YzJiNjZjMjQ5MDkxNzc0NzFhY2NiNDgwOTFcIj5oYW5kbGU8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTNjYTg1NDhlMTJkZmNhYzRhNGVmNjc5ODdkNmEyYWVmXCI+Y2xpZW50X3NvY2tldDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MTZfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjN2IxODFjZDNkODc2NDExMTRiNDJkMjBhMjE4NzQ1Y1wiPm1pdTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50OF90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWMzMTQwMGNkOTM1ZjhjMjg1ODUwNzY1MzE4N2M0Y2IyXCI+cnc8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4OGVkNjQyYWFjOWRlYjFhZTAyYjRiYTVkNzQwMzg2M1wiPm5ldF9uZmNfc29ja2V0X3R5cGVfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTkyY2JkOWNiZWRjOGEzZTE2ODc0OTk3NjEzN2YxNTAxXCI+dHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNzEyOTE4NjAwZTc4NDZkODdlOWJiZWJkNTc1MDhmMTBcIj5vYWxfc29ja2V0PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMTc0Mjk4YTA0NDVmM2VkZjdkMDA5Nzg3MmM2M2VlNTRcIj5uZXRfbmZjX3NhcF90PFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZWU2YjU3NmJjYjZkYWU2NzU3NWVlNjIwOWIwYWYxYWRcIj5zYXA8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dm9pZCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWExMzZjNWRjZTI3NTA4ZTRiOTk5Yzc3NTEyOWZiOTQwXCI+dHJhbnNfcGFyYW08XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5MDhkNDk3MDkwY2Y1ZjZkOTg2MDcyZjFlZDNjMzg0MVwiPm5ldF9uZmNfaW50ZXJuYWxfZGF0YV9zPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOWZmYWMxZWYzYWQ4NDBiMjY2MjdjY2I5ZTMyMmM1YTRcIj5zZXJ2aWNlX25hbWU8XC9hPjxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xOVwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTE5XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOTdkZWJjNGUyYjkwZDA4OTAzMTc0NWY4ZjFkOTczYzdcIj5fbmV0X25mY19yZXF1ZXN0X2xpc3Rlbl9zb2NrZXRfdDo6Y2xpZW50X2ZkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DbGllbnQgZmlsZSBkZXNjcmlwdG9yLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTNjYTg1NDhlMTJkZmNhYzRhNGVmNjc5ODdkNmEyYWVmXCI+X25ldF9uZmNfcmVxdWVzdF9saXN0ZW5fc29ja2V0X3Q6OmNsaWVudF9zb2NrZXQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNsaWVudCBzb2NrZXQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FkYTQ3MDIwMWNmNzRkMTc1NDI4OTFlOTU1Yjk5YjNkMVwiPl9uZXRfbmZjX3JlcXVlc3RfbGlzdGVuX3NvY2tldF90OjpmbGFnczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RmxhZ3MuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZWZhZWI3YzJiNjZjMjQ5MDkxNzc0NzFhY2NiNDgwOTFcIj5fbmV0X25mY19yZXF1ZXN0X2xpc3Rlbl9zb2NrZXRfdDo6aGFuZGxlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5ORkMgdGFyZ2V0IGhhbmRsZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTM4N2JlY2M3Yzk3OWM2M2MxN2VkNzg3ODI5YTc5M2RlXCI+X25ldF9uZmNfcmVxdWVzdF9saXN0ZW5fc29ja2V0X3Q6Omxlbmd0aDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TGVuZ3RoIG9mIHRoZSBtZXNzYWdlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MTZfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYzdiMTgxY2QzZDg3NjQxMTE0YjQyZDIwYTIxODc0NWNcIj5fbmV0X25mY19yZXF1ZXN0X2xpc3Rlbl9zb2NrZXRfdDo6bWl1PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5NYXhpbXVtIEluZm9ybWF0aW9uIFVuaXQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNzEyOTE4NjAwZTc4NDZkODdlOWJiZWJkNTc1MDhmMTBcIj5fbmV0X25mY19yZXF1ZXN0X2xpc3Rlbl9zb2NrZXRfdDo6b2FsX3NvY2tldDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+T0FMIHNvY2tldC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWI3OTIyMjk2MmEyMmQ0NmUzOWYxM2VjY2UzNDYwNDM1XCI+X25ldF9uZmNfcmVxdWVzdF9saXN0ZW5fc29ja2V0X3Q6OnJlcXVlc3RfdHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+UmVxdWVzdCB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZjA2MTVlNmFkMGJmYTQ0YTA3NDQ4OTUwNTg0OGIyMzNcIj5fbmV0X25mY19yZXF1ZXN0X2xpc3Rlbl9zb2NrZXRfdDo6cmVzdWx0PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZXN1bHQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQ4X3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWMzMTQwMGNkOTM1ZjhjMjg1ODUwNzY1MzE4N2M0Y2IyXCI+X25ldF9uZmNfcmVxdWVzdF9saXN0ZW5fc29ja2V0X3Q6OnJ3PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZWNlaXZlIFdpbmRvdyBTaXplLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTE3NDI5OGEwNDQ1ZjNlZGY3ZDAwOTc4NzJjNjNlZTU0XCI+bmV0X25mY19zYXBfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlZTZiNTc2YmNiNmRhZTY3NTc1ZWU2MjA5YjBhZjFhZFwiPl9uZXRfbmZjX3JlcXVlc3RfbGlzdGVuX3NvY2tldF90OjpzYXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlcnZpY2UgQWNjZXNzIFBvaW50LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTkwOGQ0OTcwOTBjZjVmNmQ5ODYwNzJmMWVkM2MzODQxXCI+bmV0X25mY19pbnRlcm5hbF9kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOWZmYWMxZWYzYWQ4NDBiMjY2MjdjY2I5ZTMyMmM1YTRcIj5fbmV0X25mY19yZXF1ZXN0X2xpc3Rlbl9zb2NrZXRfdDo6c2VydmljZV9uYW1lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZXJ2aWNlIG5hbWUuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnZvaWQqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FhMTM2YzVkY2UyNzUwOGU0Yjk5OWM3NzUxMjlmYjk0MFwiPl9uZXRfbmZjX3JlcXVlc3RfbGlzdGVuX3NvY2tldF90Ojp0cmFuc19wYXJhbTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VHJhbnNhY3Rpb24gcGFyYW1ldGVyLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTg4ZWQ2NDJhYWM5ZGViMWFlMDJiNGJhNWQ3NDAzODYzXCI+bmV0X25mY19zb2NrZXRfdHlwZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTkyY2JkOWNiZWRjOGEzZTE2ODc0OTk3NjEzN2YxNTAxXCI+X25ldF9uZmNfcmVxdWVzdF9saXN0ZW5fc29ja2V0X3Q6OnR5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNvY2tldCB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD52b2lkKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYWYxOWRlYjJlY2NkZGRiM2U5NGQ3NzgwY2U5ZDcwOWFcIj5fbmV0X25mY19yZXF1ZXN0X2xpc3Rlbl9zb2NrZXRfdDo6dXNlcl9wYXJhbTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VXNlciBwYXJhbWV0ZXIuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnN0cnVjdCBfbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfc29ja2V0X3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IHJlY2VpdmUgc29ja2V0IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyByZXF1ZXN0IHJlY2VpdmUgc29ja2V0IHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTcwZDYxNzVlMjBlNjdjM2ViMzJhMjk1OWVhYmU1M2VkXCI+bGVuZ3RoPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYThkMTgyMjBjOTA5OGI1ZTQ5MmJmMGM2OGJjMjVhNTY3XCI+cmVxdWVzdF90eXBlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQwYTZiMGZkNDRhNjA0NmQzZjllODY5ZGFjMzFlYjJmXCI+Y2xpZW50X2ZkPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTY2NzcwOWRlZjc4ZmIzMzA3ZjFlMzFlNTE1OWY4YmE5XCI+ZmxhZ3M8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dm9pZCAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTk4ZTJjMmIzMmM1MGM2YTQ5OTY0MzgwMjVkNjVmZDVmXCI+dXNlcl9wYXJhbTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0OTcyYzk2ZThmOWFkZTRlNzA2ZDMzYjNkMjcwMGQ1YVwiPnJlc3VsdDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTY0NGU1OTk5ZjBkMTVjYTFjZjQ5YzI1MzE3YjhiYjllXCI+aGFuZGxlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjMjEwYjgzNTkyZjI2MzRjMjM1NzkwMTVlMWQxNzcxY1wiPmNsaWVudF9zb2NrZXQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWM1YTQ0ZmI1Yjk3ZTVmODgwODM4MGIyZWU1NGZiYTU5XCI+b2FsX3NvY2tldDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5zaXplX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMDlkNDAzNWZlMDdhZDEyMzFhMWUxNDA1N2RlZTAxYWFcIj5yZXFfbGVuZ3RoPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnZvaWQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzNWQxYTA0MzNjMjcwZjFiYzg4NTI4MTA3OTM1YjZkMFwiPnRyYW5zX3BhcmFtPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhOTA4ZDQ5NzA5MGNmNWY2ZDk4NjA3MmYxZWQzYzM4NDFcIj5uZXRfbmZjX2ludGVybmFsX2RhdGFfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWE1OTg1OTg4NGEyOWJiOTdiZTUzZGRiY2ZlOTEzYTZjXCI+ZGF0YTxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTIwXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMjBcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0MGE2YjBmZDQ0YTYwNDZkM2Y5ZTg2OWRhYzMxZWIyZlwiPl9uZXRfbmZjX3JlcXVlc3RfcmVjZWl2ZV9zb2NrZXRfdDo6Y2xpZW50X2ZkPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DbGllbnQgZmlsZSBkZXNjcmlwdG9yLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWMyMTBiODM1OTJmMjYzNGMyMzU3OTAxNWUxZDE3NzFjXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX3NvY2tldF90OjpjbGllbnRfc29ja2V0PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DbGllbnQgc29ja2V0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTkwOGQ0OTcwOTBjZjVmNmQ5ODYwNzJmMWVkM2MzODQxXCI+bmV0X25mY19pbnRlcm5hbF9kYXRhX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYTU5ODU5ODg0YTI5YmI5N2JlNTNkZGJjZmU5MTNhNmNcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfc29ja2V0X3Q6OmRhdGE8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRhdGEuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E2Njc3MDlkZWY3OGZiMzMwN2YxZTMxZTUxNTlmOGJhOVwiPl9uZXRfbmZjX3JlcXVlc3RfcmVjZWl2ZV9zb2NrZXRfdDo6ZmxhZ3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkZsYWdzLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTY0NGU1OTk5ZjBkMTVjYTFjZjQ5YzI1MzE3YjhiYjllXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX3NvY2tldF90OjpoYW5kbGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk5GQyB0YXJnZXQgaGFuZGxlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNzBkNjE3NWUyMGU2N2MzZWIzMmEyOTU5ZWFiZTUzZWRcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfc29ja2V0X3Q6Omxlbmd0aDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TGVuZ3RoIG9mIHRoZSBtZXNzYWdlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWM1YTQ0ZmI1Yjk3ZTVmODgwODM4MGIyZWU1NGZiYTU5XCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX3NvY2tldF90OjpvYWxfc29ja2V0PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5PQUwgc29ja2V0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zaXplX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTA5ZDQwMzVmZTA3YWQxMjMxYTFlMTQwNTdkZWUwMWFhXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX3NvY2tldF90OjpyZXFfbGVuZ3RoPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZXF1ZXN0IGxlbmd0aC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYThkMTgyMjBjOTA5OGI1ZTQ5MmJmMGM2OGJjMjVhNTY3XCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX3NvY2tldF90OjpyZXF1ZXN0X3R5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlcXVlc3QgdHlwZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQ5NzJjOTZlOGY5YWRlNGU3MDZkMzNiM2QyNzAwZDVhXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX3NvY2tldF90OjpyZXN1bHQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlc3VsdC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTM1ZDFhMDQzM2MyNzBmMWJjODg1MjgxMDc5MzViNmQwXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX3NvY2tldF90Ojp0cmFuc19wYXJhbTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VHJhbnNhY3Rpb24gcGFyYW1ldGVyLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD52b2lkKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOThlMmMyYjMyYzUwYzZhNDk5NjQzODAyNWQ2NWZkNWZcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfc29ja2V0X3Q6OnVzZXJfcGFyYW08XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlVzZXIgcGFyYW1ldGVyLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX2Zyb21fc29ja2V0X3Q8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IHJlY2VpdmUgZnJvbSBzb2NrZXQgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHJlcXVlc3QgcmVjZWl2ZSBmcm9tIHNvY2tldCBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FiY2E2YTM0ZGU5MDBkMDdlZGVkYzVkYzhkYTI5MDJlMFwiPmxlbmd0aDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlZDNkOGMyZjA3N2JkNzY3NjQwN2RkODkwOWYyZmYyYlwiPnJlcXVlc3RfdHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyZWFlN2UwZDBkMjA0M2FkNmJkMjc3Yzc2NWE2N2UyM1wiPmNsaWVudF9mZDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzZDQxYWVlYTMzYzBmOTA3ZmY3MjEzYTM3MmM3YmY5OVwiPmZsYWdzPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnZvaWQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FhYzVjOTk4YjRkNDI4NTUwYjdmOTM1NDE3OTllZDVkY1wiPnVzZXJfcGFyYW08XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+dWludDMyX3Q8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMTE4ZmYzOTQ5M2Q5NzBhZDQxMTIwNGI0NTkwMThlOTNcIj5yZXN1bHQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyZThhMzgxODM1ZDEyZjAwZTZlNzgwYzA2ZGQ0ZjJiOFwiPmhhbmRsZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYTc2MzI2MDFjOWMzZTIzZWE0OTkxYWQxMDA3YWU3ZWNcIj5jbGllbnRfc29ja2V0PFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjMjkyNzJhMDllNmRlOGI3MGFlZGI1YzQ4ODMzZmZkMlwiPm9hbF9zb2NrZXQ8XC9hPjxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+c2l6ZV90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTRjYzc0MDZhNGRkM2MyNjU2YjhmMjA4ODExNDU4NjZkXCI+cmVxX2xlbmd0aDxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTE3NDI5OGEwNDQ1ZjNlZGY3ZDAwOTc4NzJjNjNlZTU0XCI+bmV0X25mY19zYXBfdDxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTRiYWIwMDk2NWVhNmViYjllNDllNzlhZmZkMTI5YjlhXCI+c2FwPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnZvaWQgKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FhZTI0Yjc5MTgxZWM3YjMwZTExODZkMWMzNDM5NDM5N1wiPnRyYW5zX3BhcmFtPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhOTA4ZDQ5NzA5MGNmNWY2ZDk4NjA3MmYxZWQzYzM4NDFcIj5uZXRfbmZjX2ludGVybmFsX2RhdGFfczxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWZlZDFhZjhkZGU3MDg3OGJiODVmNDQ2MDFkZTY0NmVhXCI+ZGF0YTxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTIxXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMjFcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyZWFlN2UwZDBkMjA0M2FkNmJkMjc3Yzc2NWE2N2UyM1wiPl9uZXRfbmZjX3JlcXVlc3RfcmVjZWl2ZV9mcm9tX3NvY2tldF90OjpjbGllbnRfZmQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNsaWVudCBmaWxlIGRlc2NyaXB0b3IuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYTc2MzI2MDFjOWMzZTIzZWE0OTkxYWQxMDA3YWU3ZWNcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfZnJvbV9zb2NrZXRfdDo6Y2xpZW50X3NvY2tldDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2xpZW50IHNvY2tldC48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5MDhkNDk3MDkwY2Y1ZjZkOTg2MDcyZjFlZDNjMzg0MVwiPm5ldF9uZmNfaW50ZXJuYWxfZGF0YV9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWZlZDFhZjhkZGU3MDg3OGJiODVmNDQ2MDFkZTY0NmVhXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX2Zyb21fc29ja2V0X3Q6OmRhdGE8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkRhdGEuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzZDQxYWVlYTMzYzBmOTA3ZmY3MjEzYTM3MmM3YmY5OVwiPl9uZXRfbmZjX3JlcXVlc3RfcmVjZWl2ZV9mcm9tX3NvY2tldF90OjpmbGFnczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RmxhZ3MuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMmU4YTM4MTgzNWQxMmYwMGU2ZTc4MGMwNmRkNGYyYjhcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfZnJvbV9zb2NrZXRfdDo6aGFuZGxlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5ORkMgdGFyZ2V0IGhhbmRsZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWJjYTZhMzRkZTkwMGQwN2VkZWRjNWRjOGRhMjkwMmUwXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX2Zyb21fc29ja2V0X3Q6Omxlbmd0aDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TGVuZ3RoIG9mIHRoZSBtZXNzYWdlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWMyOTI3MmEwOWU2ZGU4YjcwYWVkYjVjNDg4MzNmZmQyXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX2Zyb21fc29ja2V0X3Q6Om9hbF9zb2NrZXQ8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk9BTCBzb2NrZXQuPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnNpemVfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNGNjNzQwNmE0ZGQzYzI2NTZiOGYyMDg4MTE0NTg2NmRcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfZnJvbV9zb2NrZXRfdDo6cmVxX2xlbmd0aDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+UmVxdWVzdCBsZW5ndGguPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlZDNkOGMyZjA3N2JkNzY3NjQwN2RkODkwOWYyZmYyYlwiPl9uZXRfbmZjX3JlcXVlc3RfcmVjZWl2ZV9mcm9tX3NvY2tldF90OjpyZXF1ZXN0X3R5cGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlcXVlc3QgdHlwZS48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTExOGZmMzk0OTNkOTcwYWQ0MTEyMDRiNDU5MDE4ZTkzXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX2Zyb21fc29ja2V0X3Q6OnJlc3VsdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+UmVzdWx0LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTE3NDI5OGEwNDQ1ZjNlZGY3ZDAwOTc4NzJjNjNlZTU0XCI+bmV0X25mY19zYXBfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0YmFiMDA5NjVlYTZlYmI5ZTQ5ZTc5YWZmZDEyOWI5YVwiPl9uZXRfbmZjX3JlcXVlc3RfcmVjZWl2ZV9mcm9tX3NvY2tldF90OjpzYXA8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlcnZpY2UgQWNjZXNzIFBvaW50LjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD52b2lkKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYWUyNGI3OTE4MWVjN2IzMGUxMTg2ZDFjMzQzOTQzOTdcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfZnJvbV9zb2NrZXRfdDo6dHJhbnNfcGFyYW08XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRyYW5zYWN0aW9uIHBhcmFtZXRlci48XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dm9pZCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWFjNWM5OThiNGQ0Mjg1NTBiN2Y5MzU0MTc5OWVkNWRjXCI+X25ldF9uZmNfcmVxdWVzdF9yZWNlaXZlX2Zyb21fc29ja2V0X3Q6OnVzZXJfcGFyYW08XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlVzZXIgcGFyYW1ldGVyLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX25ldF9uZmNfc3RhY2tfaW5mb3JtYXRpb25fczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTkZDIHN0YWNrIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyBzdGFjayBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD51aW50MzJfdDxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlOTI5YzgzMDM3MTdiOTIyMmVkNGNjYTI0ZGEzMGJhYlwiPm5ldF9uZmNfc3VwcG9ydGVkX3RhcmdldF90eXBlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPnVpbnQzMl90PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWE3NTcxMmY0MjA0OGFiYTg0MmRjYzVlMTYyZThiNDk1XCI+bmV0X25mY19md192ZXJzaW9uPFwvYT48XC90ZD5cbjxcL3RyPlxuPFwvdGJvZHk+XG48XC90YWJsZT48XC9kaXY+XG48aHIgXC8+XG48aDQgaWQ9XCJjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMjJcIj48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yMlwiIGNsYXNzPVwiaGVhZGluZy1wZXJtYWxpbmtcIiBhcmlhLWhpZGRlbj1cInRydWVcIiB0aXRsZT1cIlBlcm1hbGlua1wiPlx1MDBiNjxcL2E+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2g0PlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dWludDMyX3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWE3NTcxMmY0MjA0OGFiYTg0MmRjYzVlMTYyZThiNDk1XCI+X25ldF9uZmNfc3RhY2tfaW5mb3JtYXRpb25fczo6bmV0X25mY19md192ZXJzaW9uPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5GaXJtd2FyZSB2ZXJzaW9uLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD51aW50MzJfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZTkyOWM4MzAzNzE3YjkyMjJlZDRjY2EyNGRhMzBiYWJcIj5fbmV0X25mY19zdGFja19pbmZvcm1hdGlvbl9zOjpuZXRfbmZjX3N1cHBvcnRlZF90YXJnZXRfdHlwZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3VwcG9ydGVkIHRhcmdldCB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX3NlY3VyZV9lbGVtZW50X2luZm9fczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3Igc2VjdXJlIGVsZW1lbnQgaW5mb3JtYXRpb24gY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYSBzZWN1cmUgZWxlbWVudCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5EYXRhIEZpZWxkczxcL3RoPlxuPHRoPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjx0Ym9keT5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTUwZGJhMjgzNDBlYjM3YTZjNmM1NTJhMWM4YjE5YzI0XCI+aGFuZGxlPFwvYT48XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMWFlYjc1ZTMyNjA2MDZmNzM3NmZiMDZjNjAxOGE4NGNcIj5uZXRfbmZjX3NlY3VyZV9lbGVtZW50X3R5cGVfZTxcL2E+PFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWY4MWY1MTliYzdmYTZiYzM5NzNjNzU3ZTVmMTI3NjRiXCI+c2VjdXJlX2VsZW1lbnRfdHlwZTxcL2E+PFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTBkZTQ4ZGYzZTU3YzliODlhZGY1ZTA3MDM0YjY0YjVkXCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF9zdGF0ZV9lPFwvYT48XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhY2YxNWY4OTQ0MjI5YjVhMWZjMTI4NjYyOTRhZjFmM2FcIj5zZWN1cmVfZWxlbWVudF9zdGF0ZTxcL2E+PFwvdGQ+XG48XC90cj5cbjxcL3Rib2R5PlxuPFwvdGFibGU+PFwvZGl2PlxuPGhyIFwvPlxuPGg0IGlkPVwiY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTIzXCI+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMjNcIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPkZpZWxkIERvY3VtZW50YXRpb248XC9oND5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNTBkYmEyODM0MGViMzdhNmM2YzU1MmExYzhiMTljMjRcIj5fc2VjdXJlX2VsZW1lbnRfaW5mb19zOjpoYW5kbGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPk5GQyB0YXJnZXQgaGFuZGxlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTBkZTQ4ZGYzZTU3YzliODlhZGY1ZTA3MDM0YjY0YjVkXCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF9zdGF0ZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWNmMTVmODk0NDIyOWI1YTFmYzEyODY2Mjk0YWYxZjNhXCI+X3NlY3VyZV9lbGVtZW50X2luZm9fczo6c2VjdXJlX2VsZW1lbnRfc3RhdGU8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlY3VyZSBlbGVtZW50IHN0YXRlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTFhZWI3NWUzMjYwNjA2ZjczNzZmYjA2YzYwMThhODRjXCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF90eXBlX2U8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZjgxZjUxOWJjN2ZhNmJjMzk3M2M3NTdlNWYxMjc2NGJcIj5fc2VjdXJlX2VsZW1lbnRfaW5mb19zOjpzZWN1cmVfZWxlbWVudF90eXBlPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZWN1cmUgZWxlbWVudCB0eXBlLjxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5zdHJ1Y3QgX2hhbF9iYWNrZW5kX25mY19mdW5jczxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgbmZjIGZ1bmN0aW9ucy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPkRhdGEgRmllbGRzPFwvdGg+XG48dGg+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPHRib2R5PlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWU5YWQ4MWEwMmQ0ZTYzOGJkYzQ3NDM4YjlkZDhkZjc5XCI+c3RhcnQ8XC9hPiApKHZvaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E1NTNlMTUxNmRmNDY4YjQ2YzUzMzBjNWYyNmE2Yjc2OVwiPnN0b3A8XC9hPiApKHZvaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FhYzFjMDJmNTIxZGEwZDBjZjAxZWZkNTI5YjZkZjM0Y1wiPnJlZ2lzdGVyX2xpc3RlbmVyPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWIxYzE5NjE1MTIxMmI1MDc3Yzk1ZGNmODI5NDMzYmY5XCI+bmV0X25mY190YXJnZXRfZGV0ZWN0aW9uX2xpc3RlbmVyX2NiPFwvYT4gdGFyZ2V0X2RldGVjdGlvbl9saXN0ZW5lciwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FlMzRhZjZjNzYxNDI2YTQ4NGZlYjI0NDY5NzQzNDEzYVwiPm5ldF9uZmNfc2VfdHJhbnNhY3Rpb25fbGlzdGVuZXJfY2I8XC9hPiBzZV90cmFuc2FjdGlvbl9saXN0ZW5lciwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E2ODliODdkZmU1MTU3ZTFjOTY3MDQ3NjMwMjVmNzJlMVwiPm5ldF9uZmNfbGxjcF9ldmVudF9saXN0ZW5lcl9jYjxcL2E+IGxsY3BfZXZlbnRfbGlzdGVuZXIsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYWI4M2RiNDQ3M2UyN2IxYzg2ODVlNmY4OGQyNDEzYTVcIj5uZXRfbmZjX2hjZV9hcGR1X2xpc3RlbmVyX2NiPFwvYT4gaGNlX2FwZHVfbGlzdGVuZXIpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlNjNlNTJkYTNjM2E4Y2UyZGYwZWE0ZDRmNDU1YWM4ZVwiPnVucmVnaXN0ZXJfbGlzdGVuZXI8XC9hPiApKHZvaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FhOTNjMTA2ZGRmMDI3YWY1NzkyM2Q2Y2ZiNGYzYmQyY1wiPmdldF9maXJtd2FyZV92ZXJzaW9uPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqKmRhdGEpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FkYmExY2JmZTdlODFjMjViOGE5NzdlNzE0ZTZlNjFjN1wiPnN1cHBvcnRfbmZjPFwvYT4gKSh2b2lkKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhODI5YzUzMzZiMGUyMDVlNzIyZWM0MGJkMzk5NjE3NGFcIj5jaGVja19maXJtd2FyZV92ZXJzaW9uPFwvYT4gKSh2b2lkKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOTFjMTIwYmVjNDU0MjEyMDBmMjQ3YTM5Mjk4ZGRhMmRcIj51cGRhdGVfZmlybXdhcmU8XC9hPiApKHZvaWQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4ZGM5MTc3ZWQ5MWUyZWZmZjA3MWRlZjA3NmNmODI4MVwiPmdldF9zdGFja19pbmZvcm1hdGlvbjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FmMThmYTE1ZjY3M2RhZDA5ZDZiNTBjZDMwZjQ4MDhlMlwiPm5ldF9uZmNfc3RhY2tfaW5mb3JtYXRpb25fczxcL2E+ICpzdGFja19pbmZvKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMmIxNTFjNWU5YTA3Yjg0YjA3NTBjODQ5Y2FjYTgyNGFcIj5jb25maWd1cmVfZGlzY292ZXJ5PFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTU0MDEzYzA0OTFkZjA5OGRhNDYyYmFmZTRkNTQzZjhmXCI+bmV0X25mY19kaXNjb3ZlcnlfbW9kZV9lPFwvYT4gbW9kZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FhZmI2NmNjNDgzMmZjNjE0MWJmMzIyNDgwY2IxMmViYlwiPm5ldF9uZmNfZXZlbnRfZmlsdGVyX2U8XC9hPiBjb25maWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FmYmZkYWUwZGYxYzg1NTljM2JhMzM0M2ZiY2I0ZDVlN1wiPmNoZWNrX3RhcmdldF9wcmVzZW5jZTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWQyZjEzNzQ5N2Q2MWMxMzRkZGE2NjdjZmZlNjRkZDczXCI+Y29ubmVjdDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTY5ODUwMTI0MjUwMTg0Mzg1MjBkMjJiMTUyZWIwZWVmXCI+ZGlzY29ubmVjdDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTUzYTgzY2IwNTA0MmMyZWEwMDA0MmVmODE2YzJhYzM1XCI+Y2hlY2tfbmRlZjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgdWludDhfdCAqbmRlZl9jYXJkX3N0YXRlLCBpbnQgKm1heF9kYXRhX3NpemUsIGludCAqcmVhbF9kYXRhX3NpemUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzY2Y4Njg0NWRlODJkNDRmMWY0MTIxOWQ0OTUwNmFjMlwiPnJlYWRfbmRlZjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKipkYXRhKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMGE0Mzc4NzgyMWNjOWFlYzFjY2I3NzJjMGZkNDU3ZmZcIj53cml0ZV9uZGVmPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqZGF0YSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTc4MWExZTkyNmUwOGVhNjYyZGI1NGI5NzE2MzA5ZDA4XCI+bWFrZV9yZWFkX29ubHlfbmRlZjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTBiMTdlNDc3MTZiZWMzNTAwMTMzNmY1YzM0ZTY1ZTc2XCI+Zm9ybWF0X25kZWY8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpzZWN1cmVfa2V5KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOTVlYWU0MDU2ZWYyNTAwNzdmMjUzYWU4MzJhY2VhMDVcIj50cmFuc2NlaXZlPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTM5MWVhNmFmNDQ0OWI2MjNlMTFiYmFiZTM4NGZmZjJkXCI+bmV0X25mY190cmFuc2NlaXZlX2luZm9fczxcL2E+ICppbmZvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqKmRhdGEpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EwMTgzMmViZjViOTlhYTVjYzM4Y2FmNGRiOWRlYmZhZVwiPmV4Y2VwdGlvbl9oYW5kbGVyPFwvYT4gKSh2b2lkKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYmM0YjYxMzcwODhkYzhjMTM0Y2E5ZDMzOGVkNmY4MWNcIj5pc19yZWFkeTxcL2E+ICkodm9pZCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTBhYzM0ZjAzMWE5NmIxNTI5MDg3YzE1MDVmNDJlMzRlXCI+bGxjcF9jb25maWc8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMTc0NGIzM2ZmZTI4N2JmYjA2YzE5MTgyZDJjNzgzMzRcIj5uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9fczxcL2E+ICpjb25maWcpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzM2U4MDliNGMxNTUxOTA2OWZkMDg2MzZjNTgwMGYxZFwiPmxsY3BfY2hlY2tfbGxjcDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTUzMmIwM2EzMTAxZjdmNTEwNzYzMzVjZGQzMDBiMWFlXCI+bGxjcF9hY3RpdmF0ZV9sbGNwPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNDU2YmIxZDVmZTNmZmRmNzExMmIwMWU5ZTg2YzY3ZjdcIj5sbGNwX2NyZWF0ZV9zb2NrZXQ8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiAqc29ja2V0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTg4ZWQ2NDJhYWM5ZGViMWFlMDJiNGJhNWQ3NDAzODYzXCI+bmV0X25mY19zb2NrZXRfdHlwZV9lPFwvYT4gdHlwZSwgdWludDE2X3QgbWl1LCB1aW50OF90IHJ3LCB2b2lkICp1c2VyX3BhcmFtKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYzA0OGM0NGNlOTQzNDE5NTQyYzY2NzQ4OGVhYjIyY2FcIj5sbGNwX2JpbmQ8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIHVpbnQ4X3Qgc2VydmljZV9hY2Nlc3NfcG9pbnQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E3YWEzYWZhNGQ3MDk1OGE0N2JlZWEyN2VmMDNmNGM5ZlwiPmxsY3BfbGlzdGVuPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCB1aW50OF90ICpzZXJ2aWNlX2FjY2Vzc19uYW1lLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gc29ja2V0LCB2b2lkICp1c2VyX3BhcmFtKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhODRjNDBmNjBjOTg5ZTAxYzBiYWIzMmNiNTUyNzlmMjVcIj5sbGNwX2FjY2VwdDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+IHNvY2tldCwgdm9pZCAqdXNlcl9wYXJhbSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTRkMTI0NjI2MzNjOWM5YjY5YzZhYzhiMTA5MWM0N2Q0XCI+bGxjcF9jb25uZWN0X2J5X3VybDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+IHNvY2tldCwgdWludDhfdCAqc2VydmljZV9hY2Nlc3NfbmFtZSwgdm9pZCAqdXNlcl9wYXJhbSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTEyZGI5Y2JmNTJjNWU3YWQwNGUyMWYzMzBlZWM4YTYyXCI+bGxjcF9jb25uZWN0PFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gc29ja2V0LCB1aW50OF90IHNlcnZpY2VfYWNjZXNzX3BvaW50LCB2b2lkICp1c2VyX3BhcmFtKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZWZhYTg2NmYwYTdhOGUzYWQ0M2M5M2QzMDdjYTY5MjFcIj5sbGNwX2Rpc2Nvbm5lY3Q8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlMzA3NGU5Mjc0ODUyMThkZjBkZWMwYWE2MzJhOGUyY1wiPmxsY3Bfc29ja2V0X2Nsb3NlPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gc29ja2V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhODk0ZjczZTliMjQwNjAyNGI4NjZmNDUzZTZiNTgxYzBcIj5sbGNwX3JlY3Y8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpkYXRhLCB2b2lkICp1c2VyX3BhcmFtKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYTI3MmY4MzhjZGFiNjZhZjI0YjUwYzI5OTE2ZTdmYTZcIj5sbGNwX3NlbmQ8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpkYXRhLCB2b2lkICp1c2VyX3BhcmFtKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNTAyMTJiMzMyM2FkYzE1NjdiNzJkMzc5Y2Y0ZTFjOWVcIj5sbGNwX3JlY3ZfZnJvbTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+IHNvY2tldCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKmRhdGEsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0OGRjNmM0ODE3N2Y2YmYyMGY2YzgzM2ZiNmZjMTEyOVwiPmxsY3Bfc2VuZF90bzxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+IHNvY2tldCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKmRhdGEsIHVpbnQ4X3Qgc2VydmljZV9hY2Nlc3NfcG9pbnQsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E2ZTljYWJiYmE2YzRkODk3NGQ1YzQ2NzdkZWQ4ZGJhY1wiPmxsY3BfcmVqZWN0PFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gc29ja2V0KTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMWQ3YzZkYWY3MzUxYThjYzM3NTNkOTlhNTQ5M2IwMDZcIj5sbGNwX2dldF9yZW1vdGVfY29uZmlnPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTE3NDRiMzNmZmUyODdiZmIwNmMxOTE4MmQyYzc4MzM0XCI+bmV0X25mY19sbGNwX2NvbmZpZ19pbmZvX3M8XC9hPiAqY29uZmlnKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhY2EzNDg1YmM2NTA4NDViMmYzZjM4YTZhNTViMzZhNzRcIj5sbGNwX2dldF9yZW1vdGVfc29ja2V0X2luZm88XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNzQ4NzkxMzcwYzAyZDllOGMzZDE2MmE4ZDJmZTFkNWJcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X29wdGlvbl9zPFwvYT4gKm9wdGlvbik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTNhYWU5ZjY4YWU5YmMwYTRjNTQzYmQ3MGE4OTBkMTFhXCI+c2VjdXJlX2VsZW1lbnRfb3BlbjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExYWViNzVlMzI2MDYwNmY3Mzc2ZmIwNmM2MDE4YTg0Y1wiPm5ldF9uZmNfc2VjdXJlX2VsZW1lbnRfdHlwZV9lPFwvYT4gZWxlbWVudF90eXBlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqKmhhbmRsZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTMwMzljZjU5YmNiODlkNzhjZjIzZTkyNGJlMjc4MzNmXCI+c2VjdXJlX2VsZW1lbnRfZ2V0X2F0cjxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKiphdHIpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlMzIwZDcxYjJlNGFmNzlkNGVmNTdkNmMwNzc5ZmM2MlwiPnNlY3VyZV9lbGVtZW50X3NlbmRfYXBkdTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKmNvbW1hbmQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICoqcmVzcG9uc2UpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EyMzI5ZTg3MWQ0MGNmN2Y1YjAyNTMxOTJmZGRiNDhhY1wiPnNlY3VyZV9lbGVtZW50X2Nsb3NlPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMWNjNzhiY2RmYTA2NzAzMGVmOGI1MzE3YzFhYzQ3NjZcIj5nZXRfc2VjdXJlX2VsZW1lbnRfbGlzdDxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EyNjQ1OTJkYWZhNzM0ODI3ZTk1NmExMGI3YjIxYmUwZFwiPm5ldF9uZmNfc2VjdXJlX2VsZW1lbnRfaW5mb19zPFwvYT4gKmxpc3QsIGludCAqY291bnQpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjMTc1NWQ1ZjMyYjhiNmU0NmQ4NjlmOGQyZGUyMzg3MlwiPnNldF9zZWN1cmVfZWxlbWVudF9tb2RlPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTFhZWI3NWUzMjYwNjA2ZjczNzZmYjA2YzYwMThhODRjXCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF90eXBlX2U8XC9hPiBlbGVtZW50X3R5cGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhZmRjODU3NGI5NjdjMmE2ZmNlMDFlYjdkNWMwNDlmZjhcIj5uZXRfbmZjX3NlY3VyZV9lbGVtZW50X21vZGVfZTxcL2E+IG1vZGUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FkYmQ2ZDc2MTEzNTExZWU5ZmVlZDk1MzgyMzYyMjI2OVwiPnRlc3RfbW9kZV9vbjxcL2E+ICkodm9pZCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQzMzNiY2Q2ZWRiZDE5Y2Q2MzZhNmIwNTQ4ZGI1NjljXCI+dGVzdF9tb2RlX29mZjxcL2E+ICkodm9pZCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTU5YTRjNzBkOGM4YmYzNzk2NjU2NzFhOGE1MDRmMjlhXCI+aGNlX3Jlc3BvbnNlX2FwZHU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpyZXNwb25zZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTJmZTIyMzk1MmUzZDAxMTkzNzJjNDg3MDJhYjE5YzA2XCI+c2VjdXJlX2VsZW1lbnRfcm91dGVfYWlkPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqYWlkLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTFkZTAwM2FmMWQzZGNmZTM1ODdiZDYwY2JiMGMzMjgzXCI+bmV0X25mY19zZV90eXBlX2U8XC9hPiBzZV90eXBlLCBpbnQgcG93ZXIpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FmNmZmYjBjYWMyNTRkZGFiOTVlNGY2YzBhNDAxMmM4OVwiPnNlY3VyZV9lbGVtZW50X3Vucm91dGVfYWlkPFwvYT4gKSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqYWlkKTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+aW50KCo8XC90ZD5cbjx0ZD48YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYWJjZjVlOTQ4MjdjN2VlYzhkNDM0NmEwZDVlYmI1NDBcIj5zZWN1cmVfZWxlbWVudF9jb21taXRfcm91dGluZzxcL2E+ICkodm9pZCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQxNzRhNzk2ZGEyZDhlNGUxNThhZGIzMjNkMzk4ZDM4XCI+c2VjdXJlX2VsZW1lbnRfc2V0X2RlZmF1bHRfcm91dGU8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMWRlMDAzYWYxZDNkY2ZlMzU4N2JkNjBjYmIwYzMyODNcIj5uZXRfbmZjX3NlX3R5cGVfZTxcL2E+IHN3aXRjaF9vbiwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExZGUwMDNhZjFkM2RjZmUzNTg3YmQ2MGNiYjBjMzI4M1wiPm5ldF9uZmNfc2VfdHlwZV9lPFwvYT4gc3dpdGNoX29mZiwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExZGUwMDNhZjFkM2RjZmUzNTg3YmQ2MGNiYjBjMzI4M1wiPm5ldF9uZmNfc2VfdHlwZV9lPFwvYT4gYmF0dGVyeV9vZmYpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0NWUyODZlZTVlM2MyMDhiZTA4OGE1ZTE1Y2VjMWU5YlwiPnNlY3VyZV9lbGVtZW50X2NsZWFyX2FpZF90YWJsZTxcL2E+ICkodm9pZCk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWUzZjU2ZTgxYzBlZmI3ZjFhMDg3NjZhMGExMDQwODYzXCI+c2VjdXJlX2VsZW1lbnRfZ2V0X2FpZF90YWJsZV9zaXplPFwvYT4gKShpbnQgKnRhYmxlX3NpemUpPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5pbnQoKjxcL3RkPlxuPHRkPjxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EwNGNjOTI3MTNhYTRiOTM0MTU0ZDk0YzFmYTExNjNkYVwiPnNlY3VyZV9lbGVtZW50X3NldF9yb3V0ZV9lbnRyeTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EyZmEyYzY4NmE4ZWY5YmI2ZTQ2NmJjYzdlYTNmZDUxM1wiPm5ldF9uZmNfc2VfZW50cnlfdHlwZV9lPFwvYT4gdHlwZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FlZTlhZjE3OTQyZTVmOTRkNzFiNWUyZDEwOGZiOTdiNFwiPm5ldF9uZmNfc2VfdGVjaF9wcm90b2NvbF90eXBlX2U8XC9hPiB2YWx1ZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExZGUwMDNhZjFkM2RjZmUzNTg3YmQ2MGNiYjBjMzI4M1wiPm5ldF9uZmNfc2VfdHlwZV9lPFwvYT4gcm91dGUsIGludCBwb3dlcik8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTY4MDk1ZWE2MmFmMjgyOTQ5MWVkZjMyN2Y2YTMzNDEwXCI+c2VjdXJlX2VsZW1lbnRfY2xlYXJfcm91dGluZ19lbnRyeTxcL2E+ICkoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EyZmEyYzY4NmE4ZWY5YmI2ZTQ2NmJjYzdlYTNmZDUxM1wiPm5ldF9uZmNfc2VfZW50cnlfdHlwZV9lPFwvYT4gdHlwZSk8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmludCgqPFwvdGQ+XG48dGQ+PGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTYxZDU5NWVmNGU3MTEzZjVjNzdjMzNjNzM0ZmI0NzM0XCI+c2VjdXJlX2VsZW1lbnRfc2V0X2xpc3Rlbl90ZWNoX21hc2s8XC9hPiApKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhZWU5YWYxNzk0MmU1Zjk0ZDcxYjVlMmQxMDhmYjk3YjRcIj5uZXRfbmZjX3NlX3RlY2hfcHJvdG9jb2xfdHlwZV9lPFwvYT4gc2NyZWVuX3N0YXRlKTxcL3RkPlxuPFwvdHI+XG48XC90Ym9keT5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxociBcLz5cbjxoNCBpZD1cImNvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yNFwiPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTI0XCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5GaWVsZCBEb2N1bWVudGF0aW9uPFwvaDQ+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhODI5YzUzMzZiMGUyMDVlNzIyZWM0MGJkMzk5NjE3NGFcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpjaGVja19maXJtd2FyZV92ZXJzaW9uPFwvYT4pKHZvaWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VXBkYXRlcyB0aGUgZmlybXdhcmUgb2YgdGhlIE5GQyBtb2R1bGU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTUzYTgzY2IwNTA0MmMyZWEwMDA0MmVmODE2YzJhYzM1XCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6Y2hlY2tfbmRlZjxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCB1aW50OF90ICpuZGVmX2NhcmRfc3RhdGUsIGludCAqbWF4X2RhdGFfc2l6ZSwgaW50ICpyZWFsX2RhdGFfc2l6ZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZWFkcyBhbiBOREVGIG1lc3NhZ2U8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWZiZmRhZTBkZjFjODU1OWMzYmEzMzQzZmJjYjRkNWU3XCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6Y2hlY2tfdGFyZ2V0X3ByZXNlbmNlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q29ubmVjdHMgdG8gYSB0YXJnZXQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTJiMTUxYzVlOWEwN2I4NGIwNzUwYzg0OWNhY2E4MjRhXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6Y29uZmlndXJlX2Rpc2NvdmVyeTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTU0MDEzYzA0OTFkZjA5OGRhNDYyYmFmZTRkNTQzZjhmXCI+bmV0X25mY19kaXNjb3ZlcnlfbW9kZV9lPFwvYT4gbW9kZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FhZmI2NmNjNDgzMmZjNjE0MWJmMzIyNDgwY2IxMmViYlwiPm5ldF9uZmNfZXZlbnRfZmlsdGVyX2U8XC9hPiBjb25maWcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2hlY2tzIHdoZXRoZXIgYSB0YXJnZXQgaXMgcHJlc2VudDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZDJmMTM3NDk3ZDYxYzEzNGRkYTY2N2NmZmU2NGRkNzNcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpjb25uZWN0PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlzY29ubmVjdHMgZnJvbSBhIHRhcmdldDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNjk4NTAxMjQyNTAxODQzODUyMGQyMmIxNTJlYjBlZWZcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpkaXNjb25uZWN0PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2hlY2tzIHdoZXRoZXIgYW4gTkRFRiBtZXNzYWdlIGlzIHN1cHBvcnRlZDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMDE4MzJlYmY1Yjk5YWE1Y2MzOGNhZjRkYjlkZWJmYWVcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpleGNlcHRpb25faGFuZGxlcjxcL2E+KSh2b2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNoZWNrcyB3aGV0aGVyIHRoZSBORkMgbW9kdWxlIGlzIHJlYWR5PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EwYjE3ZTQ3NzE2YmVjMzUwMDEzMzZmNWMzNGU2NWU3NlwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OmZvcm1hdF9uZGVmPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpzZWN1cmVfa2V5KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlRyYW5zY2VpdmVzIGRhdGEgd2l0aCBhIHRhcmdldDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYTkzYzEwNmRkZjAyN2FmNTc5MjNkNmNmYjRmM2JkMmNcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpnZXRfZmlybXdhcmVfdmVyc2lvbjxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqKmRhdGEpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2hlY2tzIHdoZXRoZXIgdGhlIE5GQyBtb2R1bGUgaXMgc3VwcG9ydGVkPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2ExY2M3OGJjZGZhMDY3MDMwZWY4YjUzMTdjMWFjNDc2NlwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OmdldF9zZWN1cmVfZWxlbWVudF9saXN0PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMjY0NTkyZGFmYTczNDgyN2U5NTZhMTBiN2IyMWJlMGRcIj5uZXRfbmZjX3NlY3VyZV9lbGVtZW50X2luZm9fczxcL2E+ICpsaXN0LCBpbnQgKmNvdW50KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldHMgdGhlIG1vZGUgb2YgYSBzZWN1cmUgZWxlbWVudDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhOGRjOTE3N2VkOTFlMmVmZmYwNzFkZWYwNzZjZjgyODFcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpnZXRfc3RhY2tfaW5mb3JtYXRpb248XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FmMThmYTE1ZjY3M2RhZDA5ZDZiNTBjZDMwZjQ4MDhlMlwiPm5ldF9uZmNfc3RhY2tfaW5mb3JtYXRpb25fczxcL2E+ICpzdGFja19pbmZvKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNvbmZpZ3VyZXMgdGhlIGRpc2NvdmVyeSBtb2RlIGFuZCBzZXR0aW5nczxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNTlhNGM3MGQ4YzhiZjM3OTY2NTY3MWE4YTUwNGYyOWFcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpoY2VfcmVzcG9uc2VfYXBkdTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqcmVzcG9uc2UpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Um91dGVzIGFuIEFJRCB0byBhIHNlY3VyZSBlbGVtZW50PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FiYzRiNjEzNzA4OGRjOGMxMzRjYTlkMzM4ZWQ2ZjgxY1wiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OmlzX3JlYWR5PFwvYT4pKHZvaWQpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q29uZmlndXJlcyBMTENQIHNldHRpbmdzPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E4NGM0MGY2MGM5ODllMDFjMGJhYjMyY2I1NTI3OWYyNVwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OmxsY3BfYWNjZXB0PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q29ubmVjdHMgdXNpbmcgYSBVUkw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTUzMmIwM2EzMTAxZjdmNTEwNzYzMzVjZGQzMDBiMWFlXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6bGxjcF9hY3RpdmF0ZV9sbGNwPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q3JlYXRlcyBhIHNvY2tldDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYzA0OGM0NGNlOTQzNDE5NTQyYzY2NzQ4OGVhYjIyY2FcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpsbGNwX2JpbmQ8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+IHNvY2tldCwgdWludDhfdCBzZXJ2aWNlX2FjY2Vzc19wb2ludCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5MaXN0ZW5zIG9uIGEgc29ja2V0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzM2U4MDliNGMxNTUxOTA2OWZkMDg2MzZjNTgwMGYxZFwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OmxsY3BfY2hlY2tfbGxjcDxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFjdGl2YXRlcyBMTENQPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EwYWMzNGYwMzFhOTZiMTUyOTA4N2MxNTA1ZjQyZTM0ZVwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OmxsY3BfY29uZmlnPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMTc0NGIzM2ZmZTI4N2JmYjA2YzE5MTgyZDJjNzgzMzRcIj5uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9fczxcL2E+ICpjb25maWcpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2hlY2tzIHdoZXRoZXIgTExDUCBpcyBzdXBwb3J0ZWQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTEyZGI5Y2JmNTJjNWU3YWQwNGUyMWYzMzBlZWM4YTYyXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6bGxjcF9jb25uZWN0PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIHVpbnQ4X3Qgc2VydmljZV9hY2Nlc3NfcG9pbnQsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RGlzY29ubmVjdHMgZnJvbSBhIHNvY2tldDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNGQxMjQ2MjYzM2M5YzliNjljNmFjOGIxMDkxYzQ3ZDRcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpsbGNwX2Nvbm5lY3RfYnlfdXJsPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIHVpbnQ4X3QgKnNlcnZpY2VfYWNjZXNzX25hbWUsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q29ubmVjdHMgdXNpbmcgYSBzZXJ2aWNlIGFjY2VzcyBwb2ludDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNDU2YmIxZDVmZTNmZmRmNzExMmIwMWU5ZTg2YzY3ZjdcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpsbGNwX2NyZWF0ZV9zb2NrZXQ8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+ICpzb2NrZXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODhlZDY0MmFhYzlkZWIxYWUwMmI0YmE1ZDc0MDM4NjNcIj5uZXRfbmZjX3NvY2tldF90eXBlX2U8XC9hPiB0eXBlLCB1aW50MTZfdCBtaXUsIHVpbnQ4X3QgcncsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+QmluZHMgYSBzb2NrZXQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWVmYWE4NjZmMGE3YThlM2FkNDNjOTNkMzA3Y2E2OTIxXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6bGxjcF9kaXNjb25uZWN0PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2xvc2VzIGEgc29ja2V0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2ExZDdjNmRhZjczNTFhOGNjMzc1M2Q5OWE1NDkzYjAwNlwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OmxsY3BfZ2V0X3JlbW90ZV9jb25maWc8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExNzQ0YjMzZmZlMjg3YmZiMDZjMTkxODJkMmM3ODMzNFwiPm5ldF9uZmNfbGxjcF9jb25maWdfaW5mb19zPFwvYT4gKmNvbmZpZyk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXRzIHRoZSByZW1vdGUgc29ja2V0IGluZm9ybWF0aW9uPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjYTM0ODViYzY1MDg0NWIyZjNmMzhhNmE1NWIzNmE3NFwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OmxsY3BfZ2V0X3JlbW90ZV9zb2NrZXRfaW5mbzxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gc29ja2V0LCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTc0ODc5MTM3MGMwMmQ5ZThjM2QxNjJhOGQyZmUxZDViXCI+bmV0X25mY19sbGNwX3NvY2tldF9vcHRpb25fczxcL2E+ICpvcHRpb24pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+T3BlbnMgYSBzZWN1cmUgZWxlbWVudDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhN2FhM2FmYTRkNzA5NThhNDdiZWVhMjdlZjAzZjRjOWZcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpsbGNwX2xpc3RlbjxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCB1aW50OF90ICpzZXJ2aWNlX2FjY2Vzc19uYW1lLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gc29ja2V0LCB2b2lkICp1c2VyX3BhcmFtKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkFjY2VwdHMgYSBjb25uZWN0aW9uIHJlcXVlc3Q8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTg5NGY3M2U5YjI0MDYwMjRiODY2ZjQ1M2U2YjU4MWMwXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6bGxjcF9yZWN2PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpkYXRhLCB2b2lkICp1c2VyX3BhcmFtKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlbmRzIGRhdGEgb24gYSBzb2NrZXQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTUwMjEyYjMzMjNhZGMxNTY3YjcyZDM3OWNmNGUxYzllXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6bGxjcF9yZWN2X2Zyb208XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+IHNvY2tldCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKmRhdGEsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2VuZHMgZGF0YSBvbiBhIHNvY2tldDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNmU5Y2FiYmJhNmM0ZDg5NzRkNWM0Njc3ZGVkOGRiYWNcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpsbGNwX3JlamVjdDxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTdhNzRmNGNhZjEyNWVjNGQ0NDQ4NDFhMDY2ODM0ZmMzXCI+bmV0X25mY19sbGNwX3NvY2tldF90PFwvYT4gc29ja2V0KTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldHMgdGhlIHJlbW90ZSBMTENQIGNvbmZpZ3VyYXRpb248XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWEyNzJmODM4Y2RhYjY2YWYyNGI1MGMyOTkxNmU3ZmE2XCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6bGxjcF9zZW5kPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpkYXRhLCB2b2lkICp1c2VyX3BhcmFtKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlY2VpdmVzIGRhdGEgb24gYSBzb2NrZXQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQ4ZGM2YzQ4MTc3ZjZiZjIwZjZjODMzZmI2ZmMxMTI5XCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6bGxjcF9zZW5kX3RvPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPiBzb2NrZXQsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpkYXRhLCB1aW50OF90IHNlcnZpY2VfYWNjZXNzX3BvaW50LCB2b2lkICp1c2VyX3BhcmFtKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlJlamVjdHMgYSBjb25uZWN0aW9uIHJlcXVlc3Q8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWUzMDc0ZTkyNzQ4NTIxOGRmMGRlYzBhYTYzMmE4ZTJjXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6bGxjcF9zb2NrZXRfY2xvc2U8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3YTc0ZjRjYWYxMjVlYzRkNDQ0ODQxYTA2NjgzNGZjM1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfdDxcL2E+IHNvY2tldCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZWNlaXZlcyBkYXRhIG9uIGEgc29ja2V0PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E3ODFhMWU5MjZlMDhlYTY2MmRiNTRiOTcxNjMwOWQwOFwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6Om1ha2VfcmVhZF9vbmx5X25kZWY8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Gb3JtYXRzIGFuIE5ERUYgbWVzc2FnZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhM2NmODY4NDVkZTgyZDQ0ZjFmNDEyMTlkNDk1MDZhYzJcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpyZWFkX25kZWY8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKipkYXRhKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPldyaXRlcyBhbiBOREVGIG1lc3NhZ2U8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWFjMWMwMmY1MjFkYTBkMGNmMDFlZmQ1MjliNmRmMzRjXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6cmVnaXN0ZXJfbGlzdGVuZXI8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FiMWMxOTYxNTEyMTJiNTA3N2M5NWRjZjgyOTQzM2JmOVwiPm5ldF9uZmNfdGFyZ2V0X2RldGVjdGlvbl9saXN0ZW5lcl9jYjxcL2E+IHRhcmdldF9kZXRlY3Rpb25fbGlzdGVuZXIsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhZTM0YWY2Yzc2MTQyNmE0ODRmZWIyNDQ2OTc0MzQxM2FcIj5uZXRfbmZjX3NlX3RyYW5zYWN0aW9uX2xpc3RlbmVyX2NiPFwvYT4gc2VfdHJhbnNhY3Rpb25fbGlzdGVuZXIsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNjg5Yjg3ZGZlNTE1N2UxYzk2NzA0NzYzMDI1ZjcyZTFcIj5uZXRfbmZjX2xsY3BfZXZlbnRfbGlzdGVuZXJfY2I8XC9hPiBsbGNwX2V2ZW50X2xpc3RlbmVyLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWFiODNkYjQ0NzNlMjdiMWM4Njg1ZTZmODhkMjQxM2E1XCI+bmV0X25mY19oY2VfYXBkdV9saXN0ZW5lcl9jYjxcL2E+IGhjZV9hcGR1X2xpc3RlbmVyKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlVucmVnaXN0ZXJzIHRoZSByZWdpc3RlcmVkIGxpc3RlbmVyPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0NWUyODZlZTVlM2MyMDhiZTA4OGE1ZTE1Y2VjMWU5YlwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OnNlY3VyZV9lbGVtZW50X2NsZWFyX2FpZF90YWJsZTxcL2E+KSh2b2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldHMgdGhlIHNpemUgb2YgdGhlIEFJRCB0YWJsZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhNjgwOTVlYTYyYWYyODI5NDkxZWRmMzI3ZjZhMzM0MTBcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpzZWN1cmVfZWxlbWVudF9jbGVhcl9yb3V0aW5nX2VudHJ5PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMmZhMmM2ODZhOGVmOWJiNmU0NjZiY2M3ZWEzZmQ1MTNcIj5uZXRfbmZjX3NlX2VudHJ5X3R5cGVfZTxcL2E+IHR5cGUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0cyB0aGUgdGVjaG5vbG9neSBtYXNrIGZvciBsaXN0ZW5pbmc8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTIzMjllODcxZDQwY2Y3ZjViMDI1MzE5MmZkZGI0OGFjXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6c2VjdXJlX2VsZW1lbnRfY2xvc2U8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXRzIHRoZSBsaXN0IG9mIHNlY3VyZSBlbGVtZW50czxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhYWJjZjVlOTQ4MjdjN2VlYzhkNDM0NmEwZDVlYmI1NDBcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpzZWN1cmVfZWxlbWVudF9jb21taXRfcm91dGluZzxcL2E+KSh2b2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNldHMgdGhlIGRlZmF1bHQgcm91dGUgZm9yIGRpZmZlcmVudCBzdGF0ZXM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWUzZjU2ZTgxYzBlZmI3ZjFhMDg3NjZhMGExMDQwODYzXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6c2VjdXJlX2VsZW1lbnRfZ2V0X2FpZF90YWJsZV9zaXplPFwvYT4pKGludCAqdGFibGVfc2l6ZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TZXRzIGEgcm91dGluZyBlbnRyeTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMzAzOWNmNTliY2I4OWQ3OGNmMjNlOTI0YmUyNzgzM2ZcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpzZWN1cmVfZWxlbWVudF9nZXRfYXRyPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICoqYXRyKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlbmRzIGFuIEFQRFUgY29tbWFuZCB0byBhIHNlY3VyZSBlbGVtZW50PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EzYWFlOWY2OGFlOWJjMGE0YzU0M2JkNzBhODkwZDExYVwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OnNlY3VyZV9lbGVtZW50X29wZW48XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExYWViNzVlMzI2MDYwNmY3Mzc2ZmIwNmM2MDE4YTg0Y1wiPm5ldF9uZmNfc2VjdXJlX2VsZW1lbnRfdHlwZV9lPFwvYT4gZWxlbWVudF90eXBlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqKmhhbmRsZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXRzIHRoZSBBVFIgaW5mb3JtYXRpb24gb2YgYSBzZWN1cmUgZWxlbWVudDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhMmZlMjIzOTUyZTNkMDExOTM3MmM0ODcwMmFiMTljMDZcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpzZWN1cmVfZWxlbWVudF9yb3V0ZV9haWQ8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKmFpZCwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExZGUwMDNhZjFkM2RjZmUzNTg3YmQ2MGNiYjBjMzI4M1wiPm5ldF9uZmNfc2VfdHlwZV9lPFwvYT4gc2VfdHlwZSwgaW50IHBvd2VyKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlVucm91dGVzIGFuIEFJRCBmcm9tIGEgc2VjdXJlIGVsZW1lbnQ8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWUzMjBkNzFiMmU0YWY3OWQ0ZWY1N2Q2YzA3NzlmYzYyXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6c2VjdXJlX2VsZW1lbnRfc2VuZF9hcGR1PFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhY2UzMzc0MDY2ODU5N2ZiNWM2NWEwYzJkMGQ0YWUxZTdcIj5uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+ICpoYW5kbGUsIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+ICpjb21tYW5kLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqKnJlc3BvbnNlKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNsb3NlcyBhIHNlY3VyZSBlbGVtZW50PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E0MTc0YTc5NmRhMmQ4ZTRlMTU4YWRiMzIzZDM5OGQzOFwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OnNlY3VyZV9lbGVtZW50X3NldF9kZWZhdWx0X3JvdXRlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMWRlMDAzYWYxZDNkY2ZlMzU4N2JkNjBjYmIwYzMyODNcIj5uZXRfbmZjX3NlX3R5cGVfZTxcL2E+IHN3aXRjaF9vbiwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExZGUwMDNhZjFkM2RjZmUzNTg3YmQ2MGNiYjBjMzI4M1wiPm5ldF9uZmNfc2VfdHlwZV9lPFwvYT4gc3dpdGNoX29mZiwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExZGUwMDNhZjFkM2RjZmUzNTg3YmQ2MGNiYjBjMzI4M1wiPm5ldF9uZmNfc2VfdHlwZV9lPFwvYT4gYmF0dGVyeV9vZmYpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2xlYXJzIHRoZSBBSUQgdGFibGU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTYxZDU5NWVmNGU3MTEzZjVjNzdjMzNjNzM0ZmI0NzM0XCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6c2VjdXJlX2VsZW1lbnRfc2V0X2xpc3Rlbl90ZWNoX21hc2s8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FlZTlhZjE3OTQyZTVmOTRkNzFiNWUyZDEwOGZiOTdiNFwiPm5ldF9uZmNfc2VfdGVjaF9wcm90b2NvbF90eXBlX2U8XC9hPiBzY3JlZW5fc3RhdGUpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U2V0cyB0aGUgc2NyZWVuIHN0YXRlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EwNGNjOTI3MTNhYTRiOTM0MTU0ZDk0YzFmYTExNjNkYVwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OnNlY3VyZV9lbGVtZW50X3NldF9yb3V0ZV9lbnRyeTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTJmYTJjNjg2YThlZjliYjZlNDY2YmNjN2VhM2ZkNTEzXCI+bmV0X25mY19zZV9lbnRyeV90eXBlX2U8XC9hPiB0eXBlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWVlOWFmMTc5NDJlNWY5NGQ3MWI1ZTJkMTA4ZmI5N2I0XCI+bmV0X25mY19zZV90ZWNoX3Byb3RvY29sX3R5cGVfZTxcL2E+IHZhbHVlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTFkZTAwM2FmMWQzZGNmZTM1ODdiZDYwY2JiMGMzMjgzXCI+bmV0X25mY19zZV90eXBlX2U8XC9hPiByb3V0ZSwgaW50IHBvd2VyKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNsZWFycyBhIHJvdXRpbmcgZW50cnk8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWY2ZmZiMGNhYzI1NGRkYWI5NWU0ZjZjMGE0MDEyYzg5XCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6c2VjdXJlX2VsZW1lbnRfdW5yb3V0ZV9haWQ8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKmFpZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5Db21taXRzIHRoZSByb3V0aW5nIHRhYmxlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FjMTc1NWQ1ZjMyYjhiNmU0NmQ4NjlmOGQyZGUyMzg3MlwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OnNldF9zZWN1cmVfZWxlbWVudF9tb2RlPFwvYT4pKDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMWFlYjc1ZTMyNjA2MDZmNzM3NmZiMDZjNjAxOGE4NGNcIj5uZXRfbmZjX3NlY3VyZV9lbGVtZW50X3R5cGVfZTxcL2E+IGVsZW1lbnRfdHlwZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FmZGM4NTc0Yjk2N2MyYTZmY2UwMWViN2Q1YzA0OWZmOFwiPm5ldF9uZmNfc2VjdXJlX2VsZW1lbnRfbW9kZV9lPFwvYT4gbW9kZSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbmFibGVzIHRlc3QgbW9kZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZTlhZDgxYTAyZDRlNjM4YmRjNDc0MzhiOWRkOGRmNzlcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjpzdGFydDxcL2E+KSh2b2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPiZsdDsgU3RhcnRzIHRoZSBORkMgbW9kdWxlIFN0b3BzIHRoZSBORkMgbW9kdWxlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E1NTNlMTUxNmRmNDY4YjQ2YzUzMzBjNWYyNmE2Yjc2OVwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OnN0b3A8XC9hPikodm9pZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5SZWdpc3RlcnMgbGlzdGVuZXJzIGZvciBzcGVjaWZpYyBldmVudHM8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYWRiYTFjYmZlN2U4MWMyNWI4YTk3N2U3MTRlNmU2MWM3XCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6c3VwcG9ydF9uZmM8XC9hPikodm9pZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DaGVja3MgdGhlIGZpcm13YXJlIHZlcnNpb24gb2YgdGhlIE5GQyBtb2R1bGU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTQzMzNiY2Q2ZWRiZDE5Y2Q2MzZhNmIwNTQ4ZGI1NjljXCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6dGVzdF9tb2RlX29mZjxcL2E+KSh2b2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlNlbmRzIGEgcmVzcG9uc2UgQVBEVSBpbiBIQ0UgbW9kZTxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5pbnQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNhZGJkNmQ3NjExMzUxMWVlOWZlZWQ5NTM4MjM2MjIyNjlcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzOjp0ZXN0X21vZGVfb248XC9hPikodm9pZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5EaXNhYmxlcyB0ZXN0IG1vZGU8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+aW50KCogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjYTk1ZWFlNDA1NmVmMjUwMDc3ZjI1M2FlODMyYWNlYTA1XCI+X2hhbF9iYWNrZW5kX25mY19mdW5jczo6dHJhbnNjZWl2ZTxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiAqaGFuZGxlLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTM5MWVhNmFmNDQ0OWI2MjNlMTFiYmFiZTM4NGZmZjJkXCI+bmV0X25mY190cmFuc2NlaXZlX2luZm9fczxcL2E+ICppbmZvLCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTgyNDg2MzEwNjA0YjkyNzhjM2MzOGQ5MzgzMWNkZWJiXCI+bmV0X25mY19kYXRhX3M8XC9hPiAqKmRhdGEpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+SGFuZGxlcyBleGNlcHRpb25zPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2FlNjNlNTJkYTNjM2E4Y2UyZGYwZWE0ZDRmNDU1YWM4ZVwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OnVucmVnaXN0ZXJfbGlzdGVuZXI8XC9hPikodm9pZCk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5HZXRzIHRoZSBmaXJtd2FyZSB2ZXJzaW9uIG9mIHRoZSBORkMgbW9kdWxlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2E5MWMxMjBiZWM0NTQyMTIwMGYyNDdhMzkyOThkZGEyZFwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OnVwZGF0ZV9maXJtd2FyZTxcL2E+KSh2b2lkKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkdldHMgdGhlIHN0YWNrIGluZm9ybWF0aW9uIG9mIHRoZSBORkMgbW9kdWxlPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmludCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2EwYTQzNzg3ODIxY2M5YWVjMWNjYjc3MmMwZmQ0NTdmZlwiPl9oYWxfYmFja2VuZF9uZmNfZnVuY3M6OndyaXRlX25kZWY8XC9hPikoPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTMzNzQwNjY4NTk3ZmI1YzY1YTBjMmQwZDRhZTFlN1wiPm5ldF9uZmNfdGFyZ2V0X2hhbmRsZV9zPFwvYT4gKmhhbmRsZSwgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E4MjQ4NjMxMDYwNGI5Mjc4YzNjMzhkOTM4MzFjZGViYlwiPm5ldF9uZmNfZGF0YV9zPFwvYT4gKmRhdGEpPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+TWFrZXMgYW4gTkRFRiBtZXNzYWdlIHJlYWQtb25seTxcL3A+XG48aHIgXC8+XG48aDIgaWQ9XCJjb250ZW50LXR5cGVkZWYtZG9jdW1lbnRhdGlvblwiPjxhIGhyZWY9XCIjY29udGVudC10eXBlZGVmLWRvY3VtZW50YXRpb25cIiBjbGFzcz1cImhlYWRpbmctcGVybWFsaW5rXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgdGl0bGU9XCJQZXJtYWxpbmtcIj5cdTAwYjY8XC9hPlR5cGVkZWYgRG9jdW1lbnRhdGlvbjxcL2gyPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19oYWxfX2JhY2tlbmRfX25mY19fZnVuY3NcIj5faGFsX2JhY2tlbmRfbmZjX2Z1bmNzPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FhNTY1NjNkYTAyZDkwODY2NTUxMmE4YTNiMzQ4MzBmNlwiPmhhbF9iYWNrZW5kX25mY19mdW5jczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBuZmMgZnVuY3Rpb25zLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBlbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYmE1NzRhNmFlZjQ3MDEwZDE4ZTBjOTMwYmQwZWYzOTBcIj5fY2xpZW50X3N0YXRlX2U8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTMwZmJmNzdmNDY0YWRkN2Y3ZmI4NjFlZTFmYzE4ZWQxXCI+bmV0X25mY19jbGllbnRfc3RhdGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCBzdGF0ZXMgb2YgTkZDIGNsaWVudHMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgc3RhdGVzIG9mIE5GQyBjbGllbnRzIHRoYXQgY2FuIGJlIGVuY291bnRlcmVkLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fY29ubmVjdGlvbl9faGFuZG92ZXJfX2luZm9fX3NcIj5fbmV0X25mY19jb25uZWN0aW9uX2hhbmRvdmVyX2luZm9fczxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWQ3NjI0Mjg5OTBiM2Y5Yjg5ZDJmYmRlYzYzZGZlNTM2XCI+bmV0X25mY19jb25uZWN0aW9uX2hhbmRvdmVyX2luZm9faDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+SGFuZGxlIGZvciBjb25uZWN0aW9uIGhhbmRvdmVyIGluZm9ybWF0aW9uIHN0cnVjdHVyZS48XC9wPlxuPHA+VGhpcyB0eXBlZGVmIGRlZmluZXMgYSBoYW5kbGUgZm9yIGEgY29ubmVjdGlvbiBoYW5kb3ZlciBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19jb25uZWN0aW9uX19oYW5kb3Zlcl9faW5mb19fc1wiPl9uZXRfbmZjX2Nvbm5lY3Rpb25faGFuZG92ZXJfaW5mb19zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2ExMzUwMzRhY2NhOGVmZjZlYTQ5ZDU4MzM5YmQ1ZWNmY1wiPm5ldF9uZmNfY29ubmVjdGlvbl9oYW5kb3Zlcl9pbmZvX3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgY29ubmVjdGlvbiBoYW5kb3ZlciBpbmZvcm1hdGlvbiBjb250YWluaW5nIHR5cGUgYW5kIGRhdGEuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYSBjb25uZWN0aW9uIGhhbmRvdmVyIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBjb250YWluaW5nIHR5cGUgYW5kIGRhdGEuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIGVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FkNGQ1ZWNkYzM3NGQ2OThmYTQ4ZWZiNzM2YzMxYTYxNFwiPl9uZXRfbmZjX2Nvbm5lY3Rpb25fdHlwZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E2M2Q2OWZmOWZjZTk1ZTU0ZjM2ZjNiOTlkYmIyNGNmOFwiPm5ldF9uZmNfY29ubmVjdGlvbl90eXBlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgTkZDIGNvbm5lY3Rpb24gdHlwZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgTkZDIGNvbm5lY3Rpb24gdHlwZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiBORkMgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX2N1cnJlbnRfX3RhcmdldF9faW5mb19fc1wiPl9uZXRfbmZjX2N1cnJlbnRfdGFyZ2V0X2luZm9fczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYmRhNGM3MjE5ZDg4NWQ5NzE2ZDgzNWJiM2U0YzYyNzdcIj5uZXRfbmZjX2N1cnJlbnRfdGFyZ2V0X2luZm9fczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBjdXJyZW50IE5GQyB0YXJnZXQgaW5mb3JtYXRpb24gY29udGFpbmluZyBoYW5kbGUgYW5kIG90aGVyIGRldGFpbHMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYSBjdXJyZW50IE5GQyB0YXJnZXQgaW5mb3JtYXRpb24gc3RydWN0dXJlIGNvbnRhaW5pbmcgaGFuZGxlIGFuZCBvdGhlciBkZXRhaWxzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgX25ldF9uZmNfZGF0YV9zKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTQyODQ2YjgyY2I4ZjA2NTJhMWYxMDc4NmRhMTJkNDgzXCI+bmV0X25mY19kYXRhX2g8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkhhbmRsZSBmb3IgZGF0YSBzdHJ1Y3R1cmUuPFwvcD5cbjxwPlRoaXMgdHlwZWRlZiBkZWZpbmVzIGEgaGFuZGxlIGZvciBhIGRhdGEgc3RydWN0dXJlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fZGF0YV9fdFwiPl9uZXRfbmZjX2RhdGFfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODI0ODYzMTA2MDRiOTI3OGMzYzM4ZDkzODMxY2RlYmJcIj5uZXRfbmZjX2RhdGFfczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgZGF0YSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBlbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhZmYxNzkzMTU0MTcwYmEzNDY2YTU4MjgwYTMzMTQ4NmZcIj5fbmV0X25mY19kaXNjb3ZlcnlfbW9kZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E1NDAxM2MwNDkxZGYwOThkYTQ2MmJhZmU0ZDU0M2Y4ZlwiPm5ldF9uZmNfZGlzY292ZXJ5X21vZGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBkaXNjb3ZlcnkgbW9kZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgZGlzY292ZXJ5IG1vZGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTkZDIGNvbW11bmljYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHZvaWQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWFiODNkYjQ0NzNlMjdiMWM4Njg1ZTZmODhkMjQxM2E1XCI+bmV0X25mY19oY2VfYXBkdV9saXN0ZW5lcl9jYjxcL2E+KSh2b2lkICpkYXRhLCB2b2lkICp1c2VyX3BhcmFtKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNhbGxiYWNrIGZ1bmN0aW9uIGZvciBIQ0UgQVBEVSBldmVudHMuPFwvcD5cbjxwPlRoaXMgdHlwZWRlZiBkZWZpbmVzIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIEhDRSBBUERVIGV2ZW50cy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+UGFyYW1ldGVyczo8XC9zdHJvbmc+XG46ICAgfCBbaW5dIHwgZGF0YSB8IFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnQuIHxcbnwgLS0tIHwgLS0tIHwgLS0tIHxcbnwgW2luXSB8IHVzZXJfcGFyYW0gfCBUaGUgdXNlciBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19pbnRlcm5hbF9fZGF0YV9fdFwiPl9uZXRfbmZjX2ludGVybmFsX2RhdGFfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhOTA4ZDQ5NzA5MGNmNWY2ZDk4NjA3MmYxZWQzYzM4NDFcIj5uZXRfbmZjX2ludGVybmFsX2RhdGFfczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgaW50ZXJuYWwgZGF0YSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyBkYXRhIHN0cnVjdHVyZSBjb250YWluaW5nIGEgYnVmZmVyIGFuZCBpdHMgbGVuZ3RoLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBlbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYThhMmJkMTE5NzcxMjg4MDI5ZTBmNGFlZjhmODUwZjZcIj5fbmV0X25mY19sYXVuY2hfcG9wdXBfY2hlY2tfZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhZjQ5N2UyYzQ1YTFiMDJiNzMyNWQ1MTQxYTYyYWUwNjhcIj5uZXRfbmZjX2xhdW5jaF9wb3B1cF9jaGVja19lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIGxhdW5jaCBwb3B1cCBjaGVja3MuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgbGF1bmNoIHBvcHVwIGNoZWNrcyB0aGF0IGNhbiBiZSB1c2VkIGluIE5GQyBjb21tdW5pY2F0aW9uLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBlbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMmU5MDRmOWExNmMyZWFiZjY0MjFlNzBlODMyYTg0YjRcIj5fbmV0X25mY19sYXVuY2hfcG9wdXBfc3RhdGVfZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNTNjMDY4MzY0OTE4MjVlNDIzMTg0NmYxMzM1YjYwODhcIj5uZXRfbmZjX2xhdW5jaF9wb3B1cF9zdGF0ZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHN0YXRlcyBvZiBsYXVuY2ggcG9wdXAgc2VsZWN0aW9uLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHN0YXRlcyBvZiBsYXVuY2ggcG9wdXAgc2VsZWN0aW9uIHRoYXQgY2FuIGJlIGVuY291bnRlcmVkLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fbGxjcF9fY29uZmlnX19pbmZvX19zXCI+X25ldF9uZmNfbGxjcF9jb25maWdfaW5mb19zPFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E1Zjc1YTQ5Mzg1YzRkNzBhMWNkNzE1ZmM1Mjg2M2VcIj5uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9faDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+SGFuZGxlIGZvciBMTENQIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gc3RydWN0dXJlLjxcL3A+XG48cD5UaGlzIHR5cGVkZWYgZGVmaW5lcyBhIGhhbmRsZSBmb3IgYW4gTExDUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHN0cnVjdHVyZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX2xsY3BfX2NvbmZpZ19faW5mb19fc1wiPl9uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9fczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMTc0NGIzM2ZmZTI4N2JmYjA2YzE5MTgyZDJjNzgzMzRcIj5uZXRfbmZjX2xsY3BfY29uZmlnX2luZm9fczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBMTENQIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTExDUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWJmMzVkZGVmOWQ4MTg1MzM0ZWM0OGY2ODY2MGI4NjQyXCI+X2xsY3BfZXZlbnRfZTxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMTIyYzM2NzAwNDBlMmQ0ODBiOGI2NDNhYTAxYzNkZTlcIj5uZXRfbmZjX2xsY3BfZXZlbnRfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBMTENQIGV2ZW50cy48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCB0eXBlcyBvZiBMTENQIGV2ZW50cyB0aGF0IGNhbiBiZSByZWNlaXZlZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdm9pZCgqIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNjg5Yjg3ZGZlNTE1N2UxYzk2NzA0NzYzMDI1ZjcyZTFcIj5uZXRfbmZjX2xsY3BfZXZlbnRfbGlzdGVuZXJfY2I8XC9hPikodm9pZCAqZGF0YSwgdm9pZCAqdXNlcl9wYXJhbSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DYWxsYmFjayBmdW5jdGlvbiBmb3IgTExDUCBldmVudCBldmVudHMuPFwvcD5cbjxwPlRoaXMgdHlwZWRlZiBkZWZpbmVzIGEgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIExMQ1AgZXZlbnQgZXZlbnRzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5QYXJhbWV0ZXJzOjxcL3N0cm9uZz5cbjogICB8IFtpbl0gfCBkYXRhIHwgVGhlIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBldmVudC4gfFxufCAtLS0gfCAtLS0gfCAtLS0gfFxufCBbaW5dIHwgdXNlcl9wYXJhbSB8IFRoZSB1c2VyIHBhcmFtZXRlciBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX2xsY3BfX2ludGVybmFsX19zb2NrZXRfX3NcIj5fbmV0X25mY19sbGNwX2ludGVybmFsX3NvY2tldF9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EwYTBiOTlkMDM4NWQ3YmQwYjQ5NDBlZThjNWI2NjdlMFwiPm5ldF9uZmNfbGxjcF9pbnRlcm5hbF9zb2NrZXRfczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBpbnRlcm5hbCBMTENQIHNvY2tldCBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBpbnRlcm5hbCBMTENQIHNvY2tldCBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHZvaWQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTQ5MWMyNTNjYTIzOTU4N2EwZWVlZDgxZTNiMjQ3ZDI1XCI+bmV0X25mY19sbGNwX3NvY2tldF9jYjxcL2E+KSg8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTRkYTMzNDRhMDQ1YjY5ZWNiYjYxMDcxYWE5ZjM2NTNkXCI+bmV0X25mY19sbGNwX21lc3NhZ2VfZTxcL2E+IG1lc3NhZ2UsIGludCByZXN1bHQsIHZvaWQgKmRhdGEsIHZvaWQgKnVzZXJfZGF0YSwgdm9pZCAqdHJhbnNfZGF0YSk8XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5DYWxsYmFjayBmdW5jdGlvbiBmb3IgTExDUCBzb2NrZXQgZXZlbnRzLjxcL3A+XG48cD5UaGlzIHR5cGVkZWYgZGVmaW5lcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBMTENQIHNvY2tldCBldmVudHMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPlBhcmFtZXRlcnM6PFwvc3Ryb25nPlxuOiAgIHwgW2luXSB8IG1lc3NhZ2UgfCBUaGUgdHlwZSBvZiBMTENQIG1lc3NhZ2UuIHxcbnwgLS0tIHwgLS0tIHwgLS0tIHxcbnwgW2luXSB8IHJlc3VsdCB8IFRoZSByZXN1bHQgb2YgdGhlIG9wZXJhdGlvbi4gfFxufCBbaW5dIHwgZGF0YSB8IFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVzc2FnZS4gfFxufCBbaW5dIHwgdXNlcl9kYXRhIHwgVGhlIHVzZXIgZGF0YSBwYXNzZWQgdG8gdGhlIGNhbGxiYWNrIGZ1bmN0aW9uLiB8XG58IFtpbl0gfCB0cmFuc19kYXRhIHwgVGhlIHRyYW5zYWN0aW9uIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXNzYWdlLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX2xsY3BfX3NvY2tldF9fb3B0aW9uX19zXCI+X25ldF9uZmNfbGxjcF9zb2NrZXRfb3B0aW9uX3M8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EzMWVjZTc2OGJjOWZhMThmOTM0YWEzOTMxOWY4YzU5M1wiPm5ldF9uZmNfbGxjcF9zb2NrZXRfb3B0aW9uX2g8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkhhbmRsZSBmb3IgTExDUCBzb2NrZXQgb3B0aW9uIHN0cnVjdHVyZS48XC9wPlxuPHA+VGhpcyB0eXBlZGVmIGRlZmluZXMgYSBoYW5kbGUgZm9yIGFuIExMQ1Agc29ja2V0IG9wdGlvbiBzdHJ1Y3R1cmUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19sbGNwX19zb2NrZXRfX29wdGlvbl9fc1wiPl9uZXRfbmZjX2xsY3Bfc29ja2V0X29wdGlvbl9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3NDg3OTEzNzBjMDJkOWU4YzNkMTYyYThkMmZlMWQ1YlwiPm5ldF9uZmNfbGxjcF9zb2NrZXRfb3B0aW9uX3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTExDUCBzb2NrZXQgb3B0aW9uIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIExMQ1Agc29ja2V0IG9wdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHVpbnQzMl90IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhN2E3NGY0Y2FmMTI1ZWM0ZDQ0NDg0MWEwNjY4MzRmYzNcIj5uZXRfbmZjX2xsY3Bfc29ja2V0X3Q8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlR5cGVkZWYgZm9yIExMQ1Agc29ja2V0IHR5cGUuPFwvcD5cbjxwPlRoaXMgdHlwZWRlZiBkZWZpbmVzIGEgdHlwZSBmb3IgTExDUCBzb2NrZXQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIGVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EyYWE3MmYzOGJkNWIwNjE0NmI0ZDNjMWRkMzc0M2EyYlwiPl9uZXRfbmZjX21lc3NhZ2Vfc2VydmljZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FkYzgxMDI5ZmFiM2Y1NjdhNzM0YmI5ZGJhMTNhMDY4NFwiPm5ldF9uZmNfbWVzc2FnZV9zZXJ2aWNlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgTkZDIHNlcnZpY2UgbWVzc2FnZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgTkZDIHNlcnZpY2UgbWVzc2FnZXMgdGhhdCBjYW4gYmUgcmVjZWl2ZWQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19uZGVmX19tZXNzYWdlX19zXCI+X25ldF9uZmNfbmRlZl9tZXNzYWdlX3M8XC9hPiogPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FmYzFmMTJlMjMyYjEzNzI1NDVhZTNmZjg5YWQ0NGQ0NlwiPm5ldF9uZmNfbmRlZl9tZXNzYWdlX2g8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkhhbmRsZSBmb3IgTkRFRiBtZXNzYWdlIHN0cnVjdHVyZS48XC9wPlxuPHA+VGhpcyB0eXBlZGVmIGRlZmluZXMgYSBoYW5kbGUgZm9yIGFuIE5ERUYgbWVzc2FnZSBzdHJ1Y3R1cmUuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19uZGVmX19tZXNzYWdlX19zXCI+X25ldF9uZmNfbmRlZl9tZXNzYWdlX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWMxZmEwNjhhODZjNTYxYTczNzQ3ZTRlMjViOTM3NmE3XCI+bmV0X25mY19uZGVmX21lc3NhZ2VfczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBOREVGIG1lc3NhZ2UgY29udGFpbmluZyByZWNvcmRzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5ERUYgbWVzc2FnZSBzdHJ1Y3R1cmUgY29udGFpbmluZyByZWNvcmRzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fbmRlZl9fcmVjb3JkX19zXCI+X25ldF9uZmNfbmRlZl9yZWNvcmRfczxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWUxMjhkNzA2ZjU1NWU0MGUyNzVmOTU2M2ZmZmNiYjU4XCI+bmV0X25mY19uZGVmX3JlY29yZF9oPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5IYW5kbGUgZm9yIE5ERUYgcmVjb3JkIHN0cnVjdHVyZS48XC9wPlxuPHA+VGhpcyB0eXBlZGVmIGRlZmluZXMgYSBoYW5kbGUgZm9yIGFuIE5ERUYgcmVjb3JkIHN0cnVjdHVyZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX25kZWZfX3JlY29yZF9fc1wiPl9uZXRfbmZjX25kZWZfcmVjb3JkX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTBiYTRkYWJjNWM5MDYxYTFiNjliODg2Y2QyMzlkNGY5XCI+bmV0X25mY19uZGVmX3JlY29yZF9zPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5ERUYgcmVjb3JkIGNvbnRhaW5pbmcgdmFyaW91cyBmaWVsZHMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkRFRiByZWNvcmQgc3RydWN0dXJlIGNvbnRhaW5pbmcgdmFyaW91cyBmaWVsZHMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIGVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E1NzJlYmU3NWE1Y2M5MzQ3MzA1YTVmZWMyZmJkZTA5ZVwiPl9uZXRfbmZjX3ByaXZpbGVnZV9lPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EwZGVlOTAwMDc4ZjAzNDQ3NjJhYmUzNTIzMjA0MmNhMlwiPm5ldF9uZmNfcHJpdmlsZWdlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgTkZDIHByaXZpbGVnZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgTkZDIHByaXZpbGVnZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiBORkMgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3JlcXVlc3RfX2hjZV9fYXBkdV9fdFwiPl9uZXRfbmZjX3JlcXVlc3RfaGNlX2FwZHVfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYzgxMmYzMGZiMzdkYWFhYjkxM2U2ZDU2MmI1MzM0MDZcIj5uZXRfbmZjX3JlcXVlc3RfaGNlX2FwZHVfdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgcmVxdWVzdCBIQ0UgQVBEVSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBORkMgcmVxdWVzdCBIQ0UgQVBEVSBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19yZXF1ZXN0X19saXN0ZW5fX3NvY2tldF9fdFwiPl9uZXRfbmZjX3JlcXVlc3RfbGlzdGVuX3NvY2tldF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5YjI2OWQwZWM3NWUzMGFhMTM0NzAzNDU3MGIwM2MxNFwiPm5ldF9uZmNfcmVxdWVzdF9saXN0ZW5fc29ja2V0X3Q8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTkZDIHJlcXVlc3QgbGlzdGVuIHNvY2tldCBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+VGhpcyBzdHJ1Y3R1cmUgZGVmaW5lcyBhbiBORkMgcmVxdWVzdCBsaXN0ZW4gc29ja2V0IHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3JlcXVlc3RfX2xsY3BfX21zZ19fdFwiPl9uZXRfbmZjX3JlcXVlc3RfbGxjcF9tc2dfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMDgzNGFhNjFmMDNhZmUwY2NiNDJhMGUzYjY4MjhlYWFcIj5uZXRfbmZjX3JlcXVlc3RfbGxjcF9tc2dfdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgcmVxdWVzdCBMTENQIG1lc3NhZ2UgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHJlcXVlc3QgTExDUCBtZXNzYWdlIHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3JlcXVlc3RfX21zZ19fdFwiPl9uZXRfbmZjX3JlcXVlc3RfbXNnX3Q8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWYzZmE5NGQ3Zjc1YzFhNDJlMzZiZTFiNzhkN2ExNTRkXCI+bmV0X25mY19yZXF1ZXN0X21zZ190PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IG1lc3NhZ2UgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHJlcXVlc3QgbWVzc2FnZSBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19yZXF1ZXN0X19yZWNlaXZlX19mcm9tX19zb2NrZXRfX3RcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfZnJvbV9zb2NrZXRfdDxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMDk4NzNkZGVhNGQzNDA4NWNjNDdiZTQ1ZjNhYmFkZTJcIj5uZXRfbmZjX3JlcXVlc3RfcmVjZWl2ZV9mcm9tX3NvY2tldF90PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IHJlY2VpdmUgZnJvbSBzb2NrZXQgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHJlcXVlc3QgcmVjZWl2ZSBmcm9tIHNvY2tldCBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19yZXF1ZXN0X19yZWNlaXZlX19zb2NrZXRfX3RcIj5fbmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfc29ja2V0X3Q8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWJkNzQ4MjhlNTcwZWViYzc4ODRiY2VlYzVhNGM0MmZiXCI+bmV0X25mY19yZXF1ZXN0X3JlY2VpdmVfc29ja2V0X3Q8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTkZDIHJlcXVlc3QgcmVjZWl2ZSBzb2NrZXQgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHJlcXVlc3QgcmVjZWl2ZSBzb2NrZXQgc3RydWN0dXJlIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fcmVxdWVzdF9fc2VfX2V2ZW50X190XCI+X25ldF9uZmNfcmVxdWVzdF9zZV9ldmVudF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E3NDViZjViYWRkMmQ0MTEzNjY3NjlmOTBlM2M1ZDQ3MFwiPm5ldF9uZmNfcmVxdWVzdF9zZV9ldmVudF90PFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyByZXF1ZXN0IHNlY3VyZSBlbGVtZW50IGV2ZW50IGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyByZXF1ZXN0IHNlY3VyZSBlbGVtZW50IGV2ZW50IHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3JlcXVlc3RfX3RhcmdldF9fZGV0ZWN0ZWRfX3RcIj5fbmV0X25mY19yZXF1ZXN0X3RhcmdldF9kZXRlY3RlZF90PFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FkZWIxMWE5ZGRhZmZkNDk0ZWFhMmExOGIyNTdjNjhiY1wiPm5ldF9uZmNfcmVxdWVzdF90YXJnZXRfZGV0ZWN0ZWRfdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgcmVxdWVzdCB0YXJnZXQgZGV0ZWN0ZWQgY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHJlcXVlc3QgdGFyZ2V0IGRldGVjdGVkIHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgdWludDhfdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTE3NDI5OGEwNDQ1ZjNlZGY3ZDAwOTc4NzJjNjNlZTU0XCI+bmV0X25mY19zYXBfdDxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+VHlwZWRlZiBmb3IgU2VydmljZSBBY2Nlc3MgUG9pbnQgKFNBUCkgdHlwZS48XC9wPlxuPHA+VGhpcyB0eXBlZGVmIGRlZmluZXMgYSB0eXBlIGZvciBTZXJ2aWNlIEFjY2VzcyBQb2ludCAoU0FQKS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3NlX19ldmVudF9faW5mb19fc1wiPl9uZXRfbmZjX3NlX2V2ZW50X2luZm9fczxcL2E+IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYjYzOTg2YzVjZWZjMWQxYWVkYWVhMTY2YTQ2NGVhNGVcIj5uZXRfbmZjX3NlX2V2ZW50X2luZm9fczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBzZWN1cmUgZWxlbWVudCBldmVudCBpbmZvcm1hdGlvbiBjb250YWluaW5nIEFJRCBhbmQgcGFyYW1ldGVyLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGEgc2VjdXJlIGVsZW1lbnQgZXZlbnQgaW5mb3JtYXRpb24gc3RydWN0dXJlIGNvbnRhaW5pbmcgQUlEIGFuZCBwYXJhbWV0ZXIuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHZvaWQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWUzNGFmNmM3NjE0MjZhNDg0ZmViMjQ0Njk3NDM0MTNhXCI+bmV0X25mY19zZV90cmFuc2FjdGlvbl9saXN0ZW5lcl9jYjxcL2E+KSh2b2lkICpkYXRhLCB2b2lkICp1c2VyX3BhcmFtKTxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkNhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZWN1cmUgZWxlbWVudCAoU0UpIHRyYW5zYWN0aW9uIGV2ZW50cy48XC9wPlxuPHA+VGhpcyB0eXBlZGVmIGRlZmluZXMgYSBjYWxsYmFjayBmdW5jdGlvbiBmb3Igc2VjdXJlIGVsZW1lbnQgKFNFKSB0cmFuc2FjdGlvbiBldmVudHMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPlBhcmFtZXRlcnM6PFwvc3Ryb25nPlxuOiAgIHwgW2luXSB8IGRhdGEgfCBUaGUgZGF0YSBhc3NvY2lhdGVkIHdpdGggdGhlIGV2ZW50LiB8XG58IC0tLSB8IC0tLSB8IC0tLSB8XG58IFtpbl0gfCB1c2VyX3BhcmFtIHwgVGhlIHVzZXIgcGFyYW1ldGVyIHBhc3NlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb24uIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19zZWN1cmVfX2VsZW1lbnRfX2luZm9fX3NcIj5fc2VjdXJlX2VsZW1lbnRfaW5mb19zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EyNjQ1OTJkYWZhNzM0ODI3ZTk1NmExMGI3YjIxYmUwZFwiPm5ldF9uZmNfc2VjdXJlX2VsZW1lbnRfaW5mb19zPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIHNlY3VyZSBlbGVtZW50IGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGEgc2VjdXJlIGVsZW1lbnQgaW5mb3JtYXRpb24gc3RydWN0dXJlIGNvbnRhaW5pbmcgdmFyaW91cyBwYXJhbWV0ZXJzLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBlbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMzg3ZTJiMjg3YjM3OTNmZWU2ZjZkZDFlYWQxYzc4MTNcIj5fbmV0X25mY19zZWN1cmVfZWxlbWVudF9tb2RlX2U8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWZkYzg1NzRiOTY3YzJhNmZjZTAxZWI3ZDVjMDQ5ZmY4XCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF9tb2RlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgbW9kZXMgb2Ygc2VjdXJlIGVsZW1lbnQgKFNFKS48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCBtb2RlcyBvZiBzZWN1cmUgZWxlbWVudCAoU0UpIHRoYXQgY2FuIGJlIHVzZWQgaW4gTkZDIGNvbW11bmljYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIGVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5NjVkZTBlYTE5ZjM1MTY5ZTEzZDIwZmQ0NzBmZDAzYVwiPl9uZXRfbmZjX3NlY3VyZV9lbGVtZW50X3N0YXRlX2U8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTBkZTQ4ZGYzZTU3YzliODlhZGY1ZTA3MDM0YjY0YjVkXCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF9zdGF0ZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHN0YXRlcyBvZiBzZWN1cmUgZWxlbWVudCAoU0UpLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHN0YXRlcyBvZiBzZWN1cmUgZWxlbWVudCAoU0UpIHRoYXQgY2FuIGJlIGVuY291bnRlcmVkLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBlbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYWFhNDhlNjkxYjJmMjU2N2FhZDg1NGU5ZmUzYWMyMDlcIj5fbmV0X25mY19zZWN1cmVfZWxlbWVudF90eXBlX2U8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTFhZWI3NWUzMjYwNjA2ZjczNzZmYjA2YzYwMThhODRjXCI+bmV0X25mY19zZWN1cmVfZWxlbWVudF90eXBlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2Ygc2VjdXJlIGVsZW1lbnQgKFNFKSB0eXBlcy48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCB0eXBlcyBvZiBzZWN1cmUgZWxlbWVudCAoU0UpIHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTkZDIGNvbW11bmljYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX19zdGFja19faW5mb3JtYXRpb25fX3NcIj5fbmV0X25mY19zdGFja19pbmZvcm1hdGlvbl9zPFwvYT4gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FmMThmYTE1ZjY3M2RhZDA5ZDZiNTBjZDMwZjQ4MDhlMlwiPm5ldF9uZmNfc3RhY2tfaW5mb3JtYXRpb25fczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBORkMgc3RhY2sgaW5mb3JtYXRpb24gY29udGFpbmluZyB2YXJpb3VzIHBhcmFtZXRlcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHN0YWNrIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBjb250YWluaW5nIHZhcmlvdXMgcGFyYW1ldGVycy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3RhZ19faW5mb19fc1wiPl9uZXRfbmZjX3RhZ19pbmZvX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTkxMmNlNTgwOTNmNjc0YjZlM2ZiODU2YmQ1NTU1ZGZlXCI+bmV0X25mY190YWdfaW5mb19zPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyB0YWcgaW5mb3JtYXRpb24gY29udGFpbmluZyBrZXktdmFsdWUgcGFpcnMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHRhZyBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmluZyBrZXktdmFsdWUgcGFpcnMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHZvaWQoKiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWIxYzE5NjE1MTIxMmI1MDc3Yzk1ZGNmODI5NDMzYmY5XCI+bmV0X25mY190YXJnZXRfZGV0ZWN0aW9uX2xpc3RlbmVyX2NiPFwvYT4pKHZvaWQgKmRhdGEsIHZvaWQgKnVzZXJfcGFyYW0pPFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+Q2FsbGJhY2sgZnVuY3Rpb24gZm9yIHRhcmdldCBkZXRlY3Rpb24gZXZlbnRzLjxcL3A+XG48cD5UaGlzIHR5cGVkZWYgZGVmaW5lcyBhIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciB0YXJnZXQgZGV0ZWN0aW9uIGV2ZW50cy48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+UGFyYW1ldGVyczo8XC9zdHJvbmc+XG46ICAgfCBbaW5dIHwgZGF0YSB8IFRoZSBkYXRhIGFzc29jaWF0ZWQgd2l0aCB0aGUgZXZlbnQuIHxcbnwgLS0tIHwgLS0tIHwgLS0tIHxcbnwgW2luXSB8IHVzZXJfcGFyYW0gfCBUaGUgdXNlciBwYXJhbWV0ZXIgcGFzc2VkIHRvIHRoZSBjYWxsYmFjayBmdW5jdGlvbi4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX190YXJnZXRfX2hhbmRsZV9fc1wiPl9uZXRfbmZjX3RhcmdldF9oYW5kbGVfczxcL2E+KiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTAxMjIxZThhNjE3OTRkZDlmYzBkZjJlZWM0ZTk5YmQ5XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX2g8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkhhbmRsZSBmb3IgTkZDIHRhcmdldCBoYW5kbGUgc3RydWN0dXJlLjxcL3A+XG48cD5UaGlzIHR5cGVkZWYgZGVmaW5lcyBhIGhhbmRsZSBmb3IgYW4gTkZDIHRhcmdldCBoYW5kbGUgc3RydWN0dXJlLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+dHlwZWRlZiBzdHJ1Y3QgPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjc3RydWN0X19uZXRfX25mY19fdGFyZ2V0X19oYW5kbGVfX3NcIj5fbmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWNlMzM3NDA2Njg1OTdmYjVjNjVhMGMyZDBkNGFlMWU3XCI+bmV0X25mY190YXJnZXRfaGFuZGxlX3M8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPlN0cnVjdHVyZSBmb3IgTkZDIHRhcmdldCBoYW5kbGUgY29udGFpbmluZyBjb25uZWN0aW9uIGluZm9ybWF0aW9uLjxcL3A+XG48cD5UaGlzIHN0cnVjdHVyZSBkZWZpbmVzIGFuIE5GQyB0YXJnZXQgaGFuZGxlIHN0cnVjdHVyZSBjb250YWluaW5nIGNvbm5lY3Rpb24gaW5mb3JtYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX190YXJnZXRfX2luZm9fX3NcIj5fbmV0X25mY190YXJnZXRfaW5mb19zPFwvYT4qIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMzk5M2EwNTRjOWQ4NmUyM2M5ODlkNmFkODMwOTYyMDdcIj5uZXRfbmZjX3RhcmdldF9pbmZvX2g8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkhhbmRsZSBmb3IgTkZDIHRhcmdldCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUuPFwvcD5cbjxwPlRoaXMgdHlwZWRlZiBkZWZpbmVzIGEgaGFuZGxlIGZvciBhbiBORkMgdGFyZ2V0IGluZm9ybWF0aW9uIHN0cnVjdHVyZS48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPnR5cGVkZWYgc3RydWN0IDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI3N0cnVjdF9fbmV0X19uZmNfX3RhcmdldF9faW5mb19fc1wiPl9uZXRfbmZjX3RhcmdldF9pbmZvX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYThlNWNkYTRlYmEzNzUxZGM0YmQwN2Y2NjljZTA4YmE5XCI+bmV0X25mY190YXJnZXRfaW5mb19zPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5TdHJ1Y3R1cmUgZm9yIE5GQyB0YXJnZXQgaW5mb3JtYXRpb24gY29udGFpbmluZyB2YXJpb3VzIGRldGFpbHMuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYW4gTkZDIHRhcmdldCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmUgY29udGFpbmluZyB2YXJpb3VzIGRldGFpbHMuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD50eXBlZGVmIHN0cnVjdCA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNzdHJ1Y3RfX25ldF9fbmZjX190cmFuc2NlaXZlX19pbmZvX19zXCI+X25ldF9uZmNfdHJhbnNjZWl2ZV9pbmZvX3M8XC9hPiA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTM5MWVhNmFmNDQ0OWI2MjNlMTFiYmFiZTM4NGZmZjJkXCI+bmV0X25mY190cmFuc2NlaXZlX2luZm9fczxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciB0cmFuc2NlaXZlIGluZm9ybWF0aW9uIGNvbnRhaW5pbmcgZGV2aWNlIHR5cGUgYW5kIGRhdGEuPFwvcD5cbjxwPlRoaXMgc3RydWN0dXJlIGRlZmluZXMgYSB0cmFuc2NlaXZlIGluZm9ybWF0aW9uIHN0cnVjdHVyZSBjb250YWluaW5nIGRldmljZSB0eXBlIGFuZCBkYXRhLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPGhyIFwvPlxuPGgyIGlkPVwiY29udGVudC1lbnVtZXJhdGlvbi10eXBlLWRvY3VtZW50YXRpb25cIj48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCIgY2xhc3M9XCJoZWFkaW5nLXBlcm1hbGlua1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiIHRpdGxlPVwiUGVybWFsaW5rXCI+XHUwMGI2PFwvYT5FbnVtZXJhdGlvbiBUeXBlIERvY3VtZW50YXRpb248XC9oMj5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FiYTU3NGE2YWVmNDcwMTBkMThlMGM5MzBiZDBlZjM5MFwiPl9jbGllbnRfc3RhdGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCBzdGF0ZXMgb2YgTkZDIGNsaWVudHMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgc3RhdGVzIG9mIE5GQyBjbGllbnRzIHRoYXQgY2FuIGJlIGVuY291bnRlcmVkLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5ORVRfTkZDX0NMSUVOVF9JTkFDVElWRV9TVEFURTxcL2VtPiB8IEluYWN0aXZlIHN0YXRlIG9mIE5GQyBjbGllbnQuIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPk5FVF9ORkNfQ0xJRU5UX0FDVElWRV9TVEFURTxcL2VtPiB8IEFjdGl2ZSBzdGF0ZSBvZiBORkMgY2xpZW50LiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FiZjM1ZGRlZjlkODE4NTMzNGVjNDhmNjg2NjBiODY0MlwiPl9sbGNwX2V2ZW50X2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgTExDUCBldmVudHMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgTExDUCBldmVudHMgdGhhdCBjYW4gYmUgcmVjZWl2ZWQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfTExDUF9FVkVOVF9TT0NLRVRfQUNDRVBURUQ8XC9lbT4gfCBMTENQIHNvY2tldCBhY2NlcHRlZCBldmVudCB0eXBlLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX0xMQ1BfRVZFTlRfU09DS0VUX0VSUk9SPFwvZW0+IHwgTExDUCBzb2NrZXQgZXJyb3IgZXZlbnQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19MTENQX0VWRU5UX0RFQUNUSVZBVEVEPFwvZW0+IHwgTExDUCBkZWFjdGl2YXRlZCBldmVudCB0eXBlLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FkNGQ1ZWNkYzM3NGQ2OThmYTQ4ZWZiNzM2YzMxYTYxNFwiPl9uZXRfbmZjX2Nvbm5lY3Rpb25fdHlwZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIE5GQyBjb25uZWN0aW9uIHR5cGVzLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHR5cGVzIG9mIE5GQyBjb25uZWN0aW9uIHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTkZDIGNvbW11bmljYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfVEFHX0NPTk5FQ1RJT048XC9lbT4gfCBUYWcgY29ubmVjdGlvbiB0eXBlLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX1AyUF9DT05ORUNUSU9OX1RBUkdFVDxcL2VtPiB8IFBlZXItdG8tcGVlciBjb25uZWN0aW9uIHRhcmdldCB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX1AyUF9DT05ORUNUSU9OX0lOSVRJQVRPUjxcL2VtPiB8IFBlZXItdG8tcGVlciBjb25uZWN0aW9uIGluaXRpYXRvciB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX1NFX0NPTk5FQ1RJT048XC9lbT4gfCBTZWN1cmUgZWxlbWVudCBjb25uZWN0aW9uIHR5cGUuIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWZmMTc5MzE1NDE3MGJhMzQ2NmE1ODI4MGEzMzE0ODZmXCI+X25ldF9uZmNfZGlzY292ZXJ5X21vZGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBkaXNjb3ZlcnkgbW9kZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgZGlzY292ZXJ5IG1vZGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTkZDIGNvbW11bmljYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfRElTQ09WRVJZX01PREVfU1RPUDxcL2VtPiB8IFN0b3AgZGlzY292ZXJ5IG1vZGUuIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPk5FVF9ORkNfRElTQ09WRVJZX01PREVfQ09ORklHX1BPTExJTkc8XC9lbT4gfCBDb25maWd1cmUgcG9sbGluZyBtb2RlLiB8XG58IDxlbT5ORVRfTkZDX0RJU0NPVkVSWV9NT0RFX0NPTkZJR19MSVNURU5JTkc8XC9lbT4gfCBDb25maWd1cmUgbGlzdGVuaW5nIG1vZGUuIHxcbnwgPGVtPk5FVF9ORkNfRElTQ09WRVJZX01PREVfQ09ORklHX1AyUDxcL2VtPiB8IENvbmZpZ3VyZSBwZWVyLXRvLXBlZXIgbW9kZS4gfFxufCA8ZW0+TkVUX05GQ19ESVNDT1ZFUllfTU9ERV9DT05GSUdfQUxMPFwvZW0+IHwgQ29uZmlndXJlIGFsbCBtb2Rlcy4gfFxufCA8ZW0+TkVUX05GQ19ESVNDT1ZFUllfTU9ERV9DT05GSUdfREVGQVVMVDxcL2VtPiB8IENvbmZpZ3VyZSBkZWZhdWx0IG1vZGVzLiB8XG58IDxlbT5ORVRfTkZDX0RJU0NPVkVSWV9NT0RFX0NPTkZJRzxcL2VtPiB8IENvbmZpZ3VyZSBtb2Rlcy4gfFxufCA8ZW0+TkVUX05GQ19ESVNDT1ZFUllfTU9ERV9TVEFSVF9MSVNURU5JTkc8XC9lbT4gfCBTdGFydCBsaXN0ZW5pbmcgbW9kZS4gfFxufCA8ZW0+TkVUX05GQ19ESVNDT1ZFUllfTU9ERV9TVEFSVF9QT0xMSU5HPFwvZW0+IHwgU3RhcnQgcG9sbGluZyBtb2RlLiB8XG58IDxlbT5ORVRfTkZDX0RJU0NPVkVSWV9NT0RFX1NUQVJUX0FMTDxcL2VtPiB8IFN0YXJ0IGFsbCBtb2Rlcy4gfFxufCA8ZW0+TkVUX05GQ19ESVNDT1ZFUllfTU9ERV9TVEFSVF9ERUZBVUxUPFwvZW0+IHwgU3RhcnQgZGVmYXVsdCBtb2Rlcy4gfFxufCA8ZW0+TkVUX05GQ19ESVNDT1ZFUllfTU9ERV9TVEFSVDxcL2VtPiB8IFN0YXJ0IG1vZGVzLiB8XG58IDxlbT5ORVRfTkZDX0RJU0NPVkVSWV9NT0RFX1JFU1VNRTxcL2VtPiB8IFJlc3VtZSBtb2Rlcy4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYThhMmJkMTE5NzcxMjg4MDI5ZTBmNGFlZjhmODUwZjZcIj5fbmV0X25mY19sYXVuY2hfcG9wdXBfY2hlY2tfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBsYXVuY2ggcG9wdXAgY2hlY2tzLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHR5cGVzIG9mIGxhdW5jaCBwb3B1cCBjaGVja3MgdGhhdCBjYW4gYmUgdXNlZCBpbiBORkMgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19DSEVDS19GT1JFR1JPVU5EPFwvZW0+IHwgQ2hlY2sgZm9yZWdyb3VuZC4gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19OT19DSEVDS19GT1JFR1JPVU5EPFwvZW0+IHwgTm8gY2hlY2sgZm9yZWdyb3VuZC4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhMmU5MDRmOWExNmMyZWFiZjY0MjFlNzBlODMyYTg0YjRcIj5fbmV0X25mY19sYXVuY2hfcG9wdXBfc3RhdGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCBzdGF0ZXMgb2YgbGF1bmNoIHBvcHVwIHNlbGVjdGlvbi48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCBzdGF0ZXMgb2YgbGF1bmNoIHBvcHVwIHNlbGVjdGlvbiB0aGF0IGNhbiBiZSBlbmNvdW50ZXJlZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19MQVVOQ0hfQVBQX1NFTEVDVDxcL2VtPiB8IExhdW5jaCBhcHAgc2VsZWN0LiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX05PX0xBVU5DSF9BUFBfU0VMRUNUPFwvZW0+IHwgTm8gbGF1bmNoIGFwcCBzZWxlY3QuIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTJhYTcyZjM4YmQ1YjA2MTQ2YjRkM2MxZGQzNzQzYTJiXCI+X25ldF9uZmNfbWVzc2FnZV9zZXJ2aWNlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgTkZDIHNlcnZpY2UgbWVzc2FnZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgTkZDIHNlcnZpY2UgbWVzc2FnZXMgdGhhdCBjYW4gYmUgcmVjZWl2ZWQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX1JFU0VUPFwvZW0+IHwgUmVzZXQgTkZDIHNlcnZpY2UgbWVzc2FnZSB0eXBlLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VSVklDRV9JTklUPFwvZW0+IHwgSW5pdGlhbGl6ZSBORkMgc2VydmljZSBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX0FDVElWQVRFPFwvZW0+IHwgQWN0aXZhdGUgTkZDIHNlcnZpY2UgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VSVklDRV9ERUFDVElWQVRFPFwvZW0+IHwgRGVhY3RpdmF0ZSBORkMgc2VydmljZSBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX0RFSU5JVDxcL2VtPiB8IERlaW5pdGlhbGl6ZSBORkMgc2VydmljZSBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX1NUQU5EQUxPTkVfVEFSR0VUX0RFVEVDVEVEPFwvZW0+IHwgU3RhbmRhbG9uZSB0YXJnZXQgZGV0ZWN0ZWQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VSVklDRV9TRTxcL2VtPiB8IFNlY3VyZSBlbGVtZW50IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfVEVSTUlOQVRJT048XC9lbT4gfCBUZXJtaW5hdGlvbiBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX1NMQVZFX1RBUkdFVF9ERVRFQ1RFRDxcL2VtPiB8IFNsYXZlIHRhcmdldCBkZXRlY3RlZCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX1NMQVZFX0VTRV9ERVRFQ1RFRDxcL2VtPiB8IFNlY3VyZSBlbGVtZW50IGRldGVjdGVkIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfUkVTVEFSVF9QT0xMSU5HX0xPT1A8XC9lbT4gfCBSZXN0YXJ0IHBvbGxpbmcgbG9vcCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX0xMQ1BfTElTVEVOPFwvZW0+IHwgTExDUCBsaXN0ZW4gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VSVklDRV9MTENQX0lOQ09NSU5HPFwvZW0+IHwgTExDUCBpbmNvbWluZyBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX0xMQ1BfQUNDRVBUPFwvZW0+IHwgTExDUCBhY2NlcHQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VSVklDRV9MTENQX1JFSkVDVDxcL2VtPiB8IExMQ1AgcmVqZWN0IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfTExDUF9TRU5EPFwvZW0+IHwgTExDUCBzZW5kIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfTExDUF9TRU5EX1RPPFwvZW0+IHwgTExDUCBzZW5kIHRvIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfTExDUF9SRUNFSVZFPFwvZW0+IHwgTExDUCByZWNlaXZlIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfTExDUF9SRUNFSVZFX0ZST008XC9lbT4gfCBMTENQIHJlY2VpdmUgZnJvbSBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX0xMQ1BfQ09OTkVDVDxcL2VtPiB8IExMQ1AgY29ubmVjdCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX0xMQ1BfQ09OTkVDVF9TQVA8XC9lbT4gfCBMTENQIGNvbm5lY3QgU0FQIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfTExDUF9ESVNDT05ORUNUPFwvZW0+IHwgTExDUCBkaXNjb25uZWN0IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfTExDUF9ERUFDVElWQVRFRDxcL2VtPiB8IExMQ1AgZGVhY3RpdmF0ZWQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VSVklDRV9MTENQX1NPQ0tFVF9FUlJPUjxcL2VtPiB8IExMQ1Agc29ja2V0IGVycm9yIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfTExDUF9TT0NLRVRfQUNDRVBURURfRVJST1I8XC9lbT4gfCBMTENQIHNvY2tldCBhY2NlcHRlZCBlcnJvciBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX0NIQU5HRV9DTElFTlRfU1RBVEU8XC9lbT4gfCBDaGFuZ2UgY2xpZW50IHN0YXRlIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFUlZJQ0VfV0FUQ0hfRE9HPFwvZW0+IHwgV2F0Y2hkb2cgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VSVklDRV9DTEVBTkVSPFwvZW0+IHwgQ2xlYW5lciBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVJWSUNFX1NFVF9MQVVOQ0hfU1RBVEU8XC9lbT4gfCBTZXQgbGF1bmNoIHN0YXRlIG1lc3NhZ2UgdHlwZS4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNTcyZWJlNzVhNWNjOTM0NzMwNWE1ZmVjMmZiZGUwOWVcIj5fbmV0X25mY19wcml2aWxlZ2VfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBORkMgcHJpdmlsZWdlcy48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCB0eXBlcyBvZiBORkMgcHJpdmlsZWdlcyB0aGF0IGNhbiBiZSB1c2VkIGluIE5GQyBjb21tdW5pY2F0aW9uLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5ORVRfTkZDX1BSSVZJTEVHRV9ORkM8XC9lbT4gfCBORkMgcHJpdmlsZWdlLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX1BSSVZJTEVHRV9ORkNfQURNSU48XC9lbT4gfCBORkMgYWRtaW4gcHJpdmlsZWdlLiB8XG58IDxlbT5ORVRfTkZDX1BSSVZJTEVHRV9ORkNfVEFHPFwvZW0+IHwgTkZDIHRhZyBwcml2aWxlZ2UuIHxcbnwgPGVtPk5FVF9ORkNfUFJJVklMRUdFX05GQ19QMlA8XC9lbT4gfCBORkMgcGVlci10by1wZWVyIHByaXZpbGVnZS4gfFxufCA8ZW0+TkVUX05GQ19QUklWSUxFR0VfTkZDX0NBUkRfRU1VTDxcL2VtPiB8IE5GQyBjYXJkIGVtdWxhdGlvbiBwcml2aWxlZ2UuIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTM4N2UyYjI4N2IzNzkzZmVlNmY2ZGQxZWFkMWM3ODEzXCI+X25ldF9uZmNfc2VjdXJlX2VsZW1lbnRfbW9kZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IG1vZGVzIG9mIHNlY3VyZSBlbGVtZW50IChTRSkuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgbW9kZXMgb2Ygc2VjdXJlIGVsZW1lbnQgKFNFKSB0aGF0IGNhbiBiZSB1c2VkIGluIE5GQyBjb21tdW5pY2F0aW9uLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5ORVRfTkZDX1NFQ1VSRV9FTEVNRU5UX1dJUkVEX01PREU8XC9lbT4gfCBFbmFibGVzIHdpcmVkIG1vZGUgY29tbXVuaWNhdGlvbi4gVGhpcyBtb2RlIHNoYWxsIGJlIGFwcGxpZWQgdG8gZVNFLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX1NFQ1VSRV9FTEVNRU5UX1ZJUlRVQUxfTU9ERTxcL2VtPiB8IEVuYWJsZXMgdmlydHVhbCBtb2RlIGNvbW11bmljYXRpb24uIFRoaXMgY2FuIGJlIGFwcGxpZWQgdG8gVUlDQyBhcyB3ZWxsIGFzIGVTRS4gfFxufCA8ZW0+TkVUX05GQ19TRUNVUkVfRUxFTUVOVF9PRkZfTU9ERTxcL2VtPiB8IEluYWN0aXZhdGVzIFNFLiBUaGlzIG1lYW5zLCBwdXQgU0UgaW4gaW5hY3RpdmUgc3RhdGUuIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTk2NWRlMGVhMTlmMzUxNjllMTNkMjBmZDQ3MGZkMDNhXCI+X25ldF9uZmNfc2VjdXJlX2VsZW1lbnRfc3RhdGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCBzdGF0ZXMgb2Ygc2VjdXJlIGVsZW1lbnQgKFNFKS48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCBzdGF0ZXMgb2Ygc2VjdXJlIGVsZW1lbnQgKFNFKSB0aGF0IGNhbiBiZSBlbmNvdW50ZXJlZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19TRUNVUkVfRUxFTUVOVF9JTkFDVElWRV9TVEFURTxcL2VtPiB8IEluYWN0aXZlIHN0YXRlIG9mIFNFLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX1NFQ1VSRV9FTEVNRU5UX0FDVElWRV9TVEFURTxcL2VtPiB8IEFjdGl2ZSBzdGF0ZSBvZiBTRS4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYWFhNDhlNjkxYjJmMjU2N2FhZDg1NGU5ZmUzYWMyMDlcIj5fbmV0X25mY19zZWN1cmVfZWxlbWVudF90eXBlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2Ygc2VjdXJlIGVsZW1lbnQgKFNFKSB0eXBlcy48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCB0eXBlcyBvZiBzZWN1cmUgZWxlbWVudCAoU0UpIHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTkZDIGNvbW11bmljYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfU0VDVVJFX0VMRU1FTlRfVFlQRV9JTlZBTElEPFwvZW0+IHwgSW5kaWNhdGVzIFNFIHR5cGUgaXMgaW52YWxpZC4gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19TRUNVUkVfRUxFTUVOVF9UWVBFX0VTRTxcL2VtPiB8IEluZGljYXRlcyBTRSB0eXBlIGlzIFNtYXJ0TVguIHxcbnwgPGVtPk5FVF9ORkNfU0VDVVJFX0VMRU1FTlRfVFlQRV9VSUNDPFwvZW0+IHwgSW5kaWNhdGVzIFNFIHR5cGUgaXMgVUlDQy4gfFxufCA8ZW0+TkVUX05GQ19TRUNVUkVfRUxFTUVOVF9UWVBFX1NEQ0FSRDxcL2VtPiB8IEluZGljYXRlcyBTRSB0eXBlIGlzIFNEQ0FSRC4gfFxufCA8ZW0+TkVUX05GQ19TRUNVUkVfRUxFTUVOVF9UWVBFX0hDRTxcL2VtPiB8IEluZGljYXRlcyBTRSB0eXBlIGlzIEhDRS4gfFxufCA8ZW0+TkVUX05GQ19TRUNVUkVfRUxFTUVOVF9UWVBFX1VOS05PV048XC9lbT4gfCBJbmRpY2F0ZXMgU0UgdHlwZSBpcyB1bmtub3duLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E5ODg2NzA4MjYxZGZjMDYzYmMxZGU5NTc5ZGY1YjUzM1wiPm5ldF9uZmNfY29ubl9oYW5kb3Zlcl9jYXJyaWVyX3R5cGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBjb25uZWN0aW9uIGhhbmRvdmVyIGNhcnJpZXJzLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHR5cGVzIG9mIGNvbm5lY3Rpb24gaGFuZG92ZXIgY2FycmllcnMgdGhhdCBjYW4gYmUgdXNlZCBpbiBORkMgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19DT05OX0hBTkRPVkVSX0NBUlJJRVJfQlQ8XC9lbT4gfCBCbHVldG9vdGggY2Fycmllci4gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19DT05OX0hBTkRPVkVSX0NBUlJJRVJfV0lGSV9XUFM8XC9lbT4gfCBXaS1GaSBQcm90ZWN0ZWQgU2V0dXAgY2Fycmllci4gfFxufCA8ZW0+TkVUX05GQ19DT05OX0hBTkRPVkVSX0NBUlJJRVJfV0lGSV9QMlA8XC9lbT4gfCBXaS1GaSBQZWVyLXRvLVBlZXIgY2Fycmllci4gfFxufCA8ZW0+TkVUX05GQ19DT05OX0hBTkRPVkVSX0NBUlJJRVJfQlRfTEU8XC9lbT4gfCBCbHVldG9vdGggTG93IEVuZXJneSBjYXJyaWVyLiB8XG58IDxlbT5ORVRfTkZDX0NPTk5fSEFORE9WRVJfQ0FSUklFUl9VTktOT1dOPFwvZW0+IHwgVW5rbm93biBjYXJyaWVyLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjNzg5NTQwOTRkMzVmNGRjZDY4NTFlNjk1MGY4NGY2YlwiPm5ldF9uZmNfZXJyb3JfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+U3RydWN0dXJlIGZvciBuZmMgZXJyb3IuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfT0s8XC9lbT4gfCBTdGF0dXMgaXMgT0sgfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19VTktOT1dOX0VSUk9SPFwvZW0+IHwgVW5rbm93biBlcnJvciB8XG58IDxlbT5ORVRfTkZDX0FMTE9DX0ZBSUw8XC9lbT4gfCBNZW1vcnkgYWxsb2NhdGlvbiBpcyBmYWlsZWQgfFxufCA8ZW0+TkVUX05GQ19USFJFQURfQ1JFQVRFX0ZBSUw8XC9lbT4gfCBUaHJlYWQgY3JlYXRpb24gaXMgZmFpbGVkIHxcbnwgPGVtPk5FVF9ORkNfSU5WQUxJRF9TVEFURTxcL2VtPiB8IFN0YXRlIG9mIE5GQy1NYW5hZ2VyIG9yIG5mYy1zdGFjayBpcyBub3Qgbm9ybWFsIHxcbnwgPGVtPk5FVF9ORkNfSVBDX0ZBSUw8XC9lbT4gfCBDb21tdW5pY2F0aW9uIHdpdGggaXBjIGlzIGZhaWxlZC4gKGZyb20gY2xpZW50IHRvIHNlcnZlcikgfFxufCA8ZW0+TkVUX05GQ19PVVRfT0ZfQk9VTkQ8XC9lbT4gfCBJbmRleCBpcyBvdXQgb2YgYm91bmQgfFxufCA8ZW0+TkVUX05GQ19OVUxMX1BBUkFNRVRFUjxcL2VtPiB8IFVuZXhwZWN0ZWQgTlVMTCBwYXJhbWV0ZXIgaXMgcmVjZWl2ZWQgfFxufCA8ZW0+TkVUX05GQ19CVUZGRVJfVE9PX1NNQUxMPFwvZW0+IHwgUmVxdWVzdGVkIGJ1ZmZlciBpcyB0b28gc21hbGwgdG8gc3RvcmUgZGF0YSwgdGhpcyBlcnJvciBzaG91bGQgYmUgcmVjZWl2ZWQgfFxufCA8ZW0+TkVUX05GQ19BTFJFQURZX0lOSVRJQUxJWkVEPFwvZW0+IHwgWW91IHRyaWVkIHRvIGluaXRpYWxpemVkIGFnYWluIHdpdGhvdXQgZGUtaW5pdCB8XG58IDxlbT5ORVRfTkZDX0NPTU1VTklDQVRFX1dJVEhfQ09OVFJPTExFUl9GQUlMRUQ8XC9lbT4gfCBDb21tdW5pY2F0aW9uIHdpdGggQ29udHJvbGxlciBDaGlwc2V0IGlzIGZhaWxlZCB0aGlzIGlzIEZhdGFsIEVycm9yIHxcbnwgPGVtPk5FVF9ORkNfUkZfVElNRU9VVDxcL2VtPiB8IFRpbWVvdXQgaXMgcmFpc2VkIHdoaWxlIGNvbW11bmljYXRlIHdpdGggYSB0YWcgfFxufCA8ZW0+TkVUX05GQ19SRl9FUlJPUjxcL2VtPiB8IFVuZXhwZWN0ZWQgcGFja2FnZSBpcyByZWNlaXZlZCBmcm9tIHRhcmdldCwgeW91IG1heSByZWNlaXZlIHRoaXMgZXJyb3IgY29tZXMgYnkgdGhlIGxvdyBsZXZlbCBSRiBjb21tdW5pY2F0aW9uIGZhdWx0IHxcbnwgPGVtPk5FVF9ORkNfTk9UX0lOSVRJQUxJWkVEPFwvZW0+IHwgQXBwbGljYXRpb24gdHJpZXMgdG8gcmVxdWVzdCB3aXRob3V0IGluaXRpYWxpemF0aW9uIHxcbnwgPGVtPk5FVF9ORkNfTk9UX1NVUFBPUlRFRDxcL2VtPiB8IFJlcXVlc3QgaW5mb3JtYXRpb24gb3IgY29tbWFuZCBpcyBub3Qgc3VwcG9ydGVkIGluIGN1cnJlbnQgY29ubmVjdGVkIHRhcmdldCB8XG58IDxlbT5ORVRfTkZDX0FMUkVBRFlfUkVHSVNURVJFRDxcL2VtPiB8IFJlcXVlc3RlZCBTQVAgbnVtYmVyIGlzIGFscmVhZHkgdXNlZCBieSBvdGhlciBzb2NrZXQgb3IgZGF0YSBpcyBhbHJlYWR5IGFwcGVuZGVkIG9yIHJlZ2lzdGVyZWQgfFxufCA8ZW0+TkVUX05GQ19OT1RfQUxMT1dFRF9PUEVSQVRJT048XC9lbT4gfCBSZXF1ZXN0ZWQgT3BlcmF0aW9uIGlzIG5vdCBhbGxvd2VkIGluIHRoZSBzaXR1YXRpb24gaW4gY3JpdGljYWwgdGltZSAoc3VjaCBhcyB3cml0ZSBkYXRhIG9uIHRhcmdldCkgfFxufCA8ZW0+TkVUX05GQ19CVVNZPFwvZW0+IHwgUHJldmlvdXMgb3BlcmF0aW9uIGlzIG5vdCBmaW5pc2hlZC4gZG9uJ3Qgd29ycnkgdG8gZ2V0IHRoaXMgbWVzc2FnZSwgbW9zdCBvZiByZXF1ZXN0IHdpbGwgYmUgZXhlY3V0ZWQgaW4gdGhlIHNlcmlhbCBxdWV1ZSB8XG58IDxlbT5ORVRfTkZDX0lOVkFMSURfSEFORExFPFwvZW0+IHwgUmVxdWVzdGVkIERldmljZSBpbiBub3QgdmFsaWQgZGV2aWNlIHxcbnwgPGVtPk5FVF9ORkNfVEFHX1JFQURfRkFJTEVEPFwvZW0+IHwgVGFnIHJlYWRpbmcgaXMgZmFpbGVkIGJlY2F1c2Ugb2YgdW5leHBlY3RlZCBjaHVuayBkYXRhIGlzIHJlY2VpdmVkIG9yIGVycm9yIGFjayBpcyByZWNlaXZlZCB8XG58IDxlbT5ORVRfTkZDX1RBR19XUklURV9GQUlMRUQ8XC9lbT4gfCBXaGVuIHlvdSB0cnkgdG8gd3JpdGUgb24gcmVhZCBvbmx5IHRhZyBvciBlcnJvciBhY2sgaXMgcmVjZWl2ZWQgfFxufCA8ZW0+TkVUX05GQ19OT19OREVGX1NVUFBPUlQ8XC9lbT4gfCBUYWcgaXMgbm90IHN1cHBvcnRlZCBOREVGIGZvcm1hdCBmb3IgdGFnIGlzIG5vdCBmb3JtYXR0ZWQgZm9yIE5ERUYgfFxufCA8ZW0+TkVUX05GQ19OT19OREVGX01FU1NBR0U8XC9lbT4gfCBObyBkYXRhIGlzIHJlY2VpdmVkIGFmdGVyIE5ERUYgcmVhZGluZyB8XG58IDxlbT5ORVRfTkZDX0lOVkFMSURfRk9STUFUPFwvZW0+IHwgUmVjZWl2ZWQgZGF0YSBpcyBub3QgcmVhZGFibGUgb3IgaXQgaGFzIGlsbGVnYWwgdmFsdWVzIG9yIGZvcm1hdCB8XG58IDxlbT5ORVRfTkZDX0lOU1VGRklDSUVOVF9TVE9SQUdFPFwvZW0+IHwgVGhlIGNvbm5lY3RlZCB0YWcgZG9lcyBub3QgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gfFxufCA8ZW0+TkVUX05GQ19PUEVSQVRJT05fRkFJTDxcL2VtPiB8IFRoZSByZW1vdGUgdGFyZ2V0IHJldHVybmVkIGVycm9yIHdoaWxlIGRvaW5nIGEgb3BlcmF0aW9uIHxcbnwgPGVtPk5FVF9ORkNfTk9UX0NPTk5FQ1RFRDxcL2VtPiB8IHJlbW90ZSBpcyBub3QgY29ubmVjdGVkIGNvcnJlY3RseS4gVGhpcyBjYW4gYmUgaGFwcGVuZWQgd2hlbiB0aGUgUkYgZG9lcyBub3QgaGF2ZSBlbm91Z2ggc3RyZW5ndGggfFxufCA8ZW0+TkVUX05GQ19OT19EQVRBX0ZPVU5EPFwvZW0+IHwgUmVxdWVzdGVkIGRhdGEgaXMgbm90IGZvdW5kIGluIHRoZSBsaXN0IG9yIHByb3BlcnRpZXMgfFxufCA8ZW0+TkVUX05GQ19TRUNVUklUWV9GQUlMPFwvZW0+IHwgQXV0aGVudGljYXRpb24gaXMgZmFpbGVkIHdoaWxlIGNvbW11bmljYXRpb24gd2l0aCBuZmMtbWFuYWdlciBzZXJ2ZXIgfFxufCA8ZW0+TkVUX05GQ19UQVJHRVRfSVNfTU9WRURfQVdBWTxcL2VtPiB8IFRhcmdldCBpcyBsb3N0IHdoaWxlIGRvaW5nIGEgb3BlcmF0aW9uIHxcbnwgPGVtPk5FVF9ORkNfTk9UX1JFR0lTVEVSRUQ8XC9lbT4gfCBUYXJnZXQgaXMgYWxyZWFkeSBmb3JtYXR0ZWQgcmVtb3ZhbCBpcyByZXF1ZXN0ZWQgYnV0IHJlcXVlc3RlZCBkYXRhIGlzIG5vdCByZWdpc3RlcmVkIHxcbnwgPGVtPk5FVF9ORkNfSU5WQUxJRF9QQVJBTTxcL2VtPiB8IHJlbW92YWwgaXMgcmVxdWVzdGVkIGJ1dCByZXF1ZXN0ZWQgZGF0YSBpcyBub3QgcmVnaXN0ZXJlZCB8XG58IDxlbT5ORVRfTkZDX1BFUk1JU1NJT05fREVOSUVEPFwvZW0+IHwgcHJpdmlsZWdlIGNoZWNrIGlzIGZhaWxlZCB8XG58IDxlbT5ORVRfTkZDX05PVF9BQ1RJVkFURUQ8XC9lbT4gfCBBcHBsaWNhdGlvbiB0cmllcyB0byByZXF1ZXN0IHdpdGhvdXQgYWN0aXZhdGlvbiB8XG58IDxlbT5ORVRfTkZDX0RBVEFfQ09ORkxJQ1RFRDxcL2VtPiB8IERhdGEgaXMgY29uZmxpY3RlZCB3aXRoIGFub3RoZXIgb25lIHxcbnwgPGVtPk5FVF9ORkNfTkRFRl9UWVBFX0xFTkdUSF9JU19OT1RfT0s8XC9lbT4gfCBJbGxlZ2FsIG5kZWYgcmVjb3JkIHR5cGUgbGVuZ3RoIHxcbnwgPGVtPk5FVF9ORkNfTkRFRl9QQVlMT0FEX0xFTkdUSF9JU19OT1RfT0s8XC9lbT4gfCBJbGxlZ2FsIG5kZWYgcmVjb3JkIHBheWxvYWQgbGVuZ3RoIHxcbnwgPGVtPk5FVF9ORkNfTkRFRl9JRF9MRU5HVEhfSVNfTk9UX09LPFwvZW0+IHwgSWxsZWdhbCBuZGVmIHJlY29yZCBpZCBsZW5ndGggfFxufCA8ZW0+TkVUX05GQ19OREVGX1JFQ09SRF9JU19OT1RfRVhQRUNURURfVFlQRTxcL2VtPiB8IFBhcmFtZXRlciByZWNvcmQgaXMgbm90IGV4cGVjdGVkIHJlY29yZC4gZm9yIGV4YW1wbGUsIHRyeSB0byBVUkkgZnJvbSB0ZXh0IHJlY29yZCB8XG58IDxlbT5ORVRfTkZDX05ERUZfQlVGX0VORF9XSVRIT1VUX01FPFwvZW0+IHwgTkRFRiBtZXNzYWdlcyBpcyB0ZXJtaW5hdGVkIHdpdGhvdXQgTUUgZmxhZyB8XG58IDxlbT5ORVRfTkZDX0RFVklDRV9ET0VTX05PVF9TVVBQT1JUX05GQzxcL2VtPiB8IEN1cnJlbnQgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQgTkZDIGZlYXR1cmUgb3IgdGhpcyBtYW5hZ2VyIGRvZXMgbm90IGZvdW5kIHBsdWdpbiBsaWJyYXJ5IHxcbnwgPGVtPk5FVF9ORkNfTExDUF9JTlZBTElEX1NPQ0tFVDxcL2VtPiB8IHNvY2tldCBpcyBub3QgdmFsaWQgc29ja2V0IHxcbnwgPGVtPk5FVF9ORkNfTExDUF9TT0NLRVRfRElTQ09OTkVDVEVEPFwvZW0+IHwgc29ja2V0IGlzIGRpc2Nvbm5lY3RlZCB8XG58IDxlbT5ORVRfTkZDX0xMQ1BfU09DS0VUX0ZSQU1FX1JFSkVDVEVEPFwvZW0+IHwgc2VuZCBkYXRhIGlzIHJlamVjdGVkIGZyb20gcmVtb3RlIHNpZGUgfFxufCA8ZW0+TkVUX05GQ19QMlBfU0VORF9GQUlMPFwvZW0+IHwgUDJQIGRhdGEgc2VuZCBmYWlsIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWFmYjY2Y2M0ODMyZmM2MTQxYmYzMjI0ODBjYjEyZWJiXCI+bmV0X25mY19ldmVudF9maWx0ZXJfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCBldmVudCBmaWx0ZXJzIGZvciBORkMgZXZlbnRzLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IGV2ZW50IGZpbHRlcnMgdGhhdCBjYW4gYmUgdXNlZCB0byBjb250cm9sIHdoaWNoIE5GQyBldmVudHMgYXJlIHJlY2VpdmVkLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5ORVRfTkZDX0FMTF9ESVNBQkxFPFwvZW0+IHwgRGlzYWJsZSBhbGwgTkZDIGV2ZW50cy4gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19JU08xNDQ0M0FfRU5BQkxFPFwvZW0+IHwgRW5hYmxlIElTT1wvSUVDIDE0NDQzIFR5cGUgQSBldmVudHMuIHxcbnwgPGVtPk5FVF9ORkNfSVNPMTQ0NDNCX0VOQUJMRTxcL2VtPiB8IEVuYWJsZSBJU09cL0lFQyAxNDQ0MyBUeXBlIEIgZXZlbnRzLiB8XG58IDxlbT5ORVRfTkZDX0lTTzE1NjkzX0VOQUJMRTxcL2VtPiB8IEVuYWJsZSBJU09cL0lFQyAxNTY5MyBldmVudHMuIHxcbnwgPGVtPk5FVF9ORkNfRkVMSUNBX0VOQUJMRTxcL2VtPiB8IEVuYWJsZSBGZWxpY2EgZXZlbnRzLiB8XG58IDxlbT5ORVRfTkZDX0pFV0VMX0VOQUJMRTxcL2VtPiB8IEVuYWJsZSBKZXdlbCBldmVudHMuIHxcbnwgPGVtPk5FVF9ORkNfSVBfRU5BQkxFPFwvZW0+IHwgRW5hYmxlIE5GQy1JUCBldmVudHMuIHxcbnwgPGVtPk5FVF9ORkNfQUxMX0VOQUJMRTxcL2VtPiB8IEVuYWJsZSBhbGwgTkZDIGV2ZW50cy4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhODYxNGNkNmVkMjg4YjdjNjgzMTk4ZjhiNjczMjllOWRcIj5uZXRfbmZjX2xsY3BfYXBwX3Byb3RvY29sX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgYXBwbGljYXRpb24gcHJvdG9jb2xzIHN1cHBvcnRlZCBieSBMTENQLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHR5cGVzIG9mIGFwcGxpY2F0aW9uIHByb3RvY29scyB0aGF0IGNhbiBiZSB1c2VkIGluIExMQ1AgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19TTkVQPFwvZW0+IHwgU05FUCAoU2ltcGxlIE5ERUYgRXhjaGFuZ2UgUHJvdG9jb2wpIGFwcGxpY2F0aW9uIHByb3RvY29sLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX05QUDxcL2VtPiB8IE5QUCAoTkZDIERhdGEgRXhjaGFuZ2UgRm9ybWF0KSBhcHBsaWNhdGlvbiBwcm90b2NvbC4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNGRhMzM0NGEwNDViNjllY2JiNjEwNzFhYTlmMzY1M2RcIj5uZXRfbmZjX2xsY3BfbWVzc2FnZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIExMQ1AgbWVzc2FnZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgTExDUCBtZXNzYWdlcyB0aGF0IGNhbiBiZSByZWNlaXZlZC48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19NRVNTQUdFX0xMQ1BfTElTVEVOPFwvZW0+IHwgTExDUCBsaXN0ZW4gbWVzc2FnZSB0eXBlLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfTExDUF9BQ0NFUFRFRDxcL2VtPiB8IExMQ1AgYWNjZXB0ZWQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfTExDUF9DT05ORUNUPFwvZW0+IHwgTExDUCBjb25uZWN0IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0xMQ1BfQ09OTkVDVF9TQVA8XC9lbT4gfCBMTENQIGNvbm5lY3QgU0FQIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0xMQ1BfU0VORDxcL2VtPiB8IExMQ1Agc2VuZCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9MTENQX1NFTkRfVE88XC9lbT4gfCBMTENQIHNlbmQgdG8gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfTExDUF9SRUNFSVZFPFwvZW0+IHwgTExDUCByZWNlaXZlIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0xMQ1BfUkVDRUlWRV9GUk9NPFwvZW0+IHwgTExDUCByZWNlaXZlIGZyb20gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfTExDUF9ESVNDT05ORUNUPFwvZW0+IHwgTExDUCBkaXNjb25uZWN0IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0xMQ1BfRVJST1I8XC9lbT4gfCBMTENQIGVycm9yIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0xMQ1BfQ09OTkVDVF9SRVE8XC9lbT4gfCBMTENQIGNvbm5lY3QgcmVxdWVzdCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9MTENQX0FDQ0VQVDxcL2VtPiB8IExMQ1AgYWNjZXB0IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0xMQ1BfUkVKRUNUPFwvZW0+IHwgTExDUCByZWplY3QgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfTExDUF9SRUpFQ1RFRDxcL2VtPiB8IExMQ1AgcmVqZWN0ZWQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfTExDUF9DTE9TRTxcL2VtPiB8IExMQ1AgY2xvc2UgbWVzc2FnZSB0eXBlLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FkMmIzOGRhYTM3ZDVlYWEyODE5ODNhYmZlZjdkOGVlZlwiPm5ldF9uZmNfbWVzc2FnZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIE5GQyBtZXNzYWdlcy48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCB0eXBlcyBvZiBORkMgbWVzc2FnZXMgdGhhdCBjYW4gYmUgcmVjZWl2ZWQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfTUVTU0FHRV9UUkFOU0NFSVZFPFwvZW0+IHwgVHJhbnNjZWl2ZSBtZXNzYWdlIHR5cGUuIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9SRUFEX05ERUY8XC9lbT4gfCBSZWFkIE5ERUYgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfV1JJVEVfTkRFRjxcL2VtPiB8IFdyaXRlIE5ERUYgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfTUFLRV9SRUFEX09OTFlfTkRFRjxcL2VtPiB8IE1ha2UgcmVhZC1vbmx5IE5ERUYgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfSVNfVEFHX0NPTk5FQ1RFRDxcL2VtPiB8IENoZWNrIGlmIHRhZyBpcyBjb25uZWN0ZWQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfR0VUX0NVUlJFTlRfVEFHX0lORk88XC9lbT4gfCBHZXQgY3VycmVudCB0YWcgaW5mb3JtYXRpb24gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfR0VUX0NVUlJFTlRfVEFSR0VUX0hBTkRMRTxcL2VtPiB8IEdldCBjdXJyZW50IHRhcmdldCBoYW5kbGUgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfVEFHX0RJU0NPVkVSRUQ8XC9lbT4gfCBUYWcgZGlzY292ZXJlZCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9OT1RJRlk8XC9lbT4gfCBOb3RpZnkgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfVEFHX0RFVEFDSEVEPFwvZW0+IHwgVGFnIGRldGFjaGVkIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0xMQ1BfRElTQ09WRVJFRDxcL2VtPiB8IExMQ1AgZGlzY292ZXJlZCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9QMlBfREVUQUNIRUQ8XC9lbT4gfCBQMlAgZGV0YWNoZWQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfTExDUF9DT05GSUc8XC9lbT4gfCBMTENQIGNvbmZpZ3VyYXRpb24gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfUDJQX0RJU0NPVkVSRUQ8XC9lbT4gfCBQMlAgZGlzY292ZXJlZCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9QMlBfU0VORDxcL2VtPiB8IFAyUCBzZW5kIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1AyUF9SRUNFSVZFPFwvZW0+IHwgUDJQIHJlY2VpdmUgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VfU1RBUlRfVFJBTlNBQ1RJT048XC9lbT4gfCBTZWN1cmUgZWxlbWVudCBzdGFydCB0cmFuc2FjdGlvbiBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRV9FTkRfVFJBTlNBQ1RJT048XC9lbT4gfCBTZWN1cmUgZWxlbWVudCBlbmQgdHJhbnNhY3Rpb24gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VfVFlQRV9UUkFOU0FDVElPTjxcL2VtPiB8IFNlY3VyZSBlbGVtZW50IHR5cGUgdHJhbnNhY3Rpb24gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VfQ09OTkVDVElWSVRZPFwvZW0+IHwgU2VjdXJlIGVsZW1lbnQgY29ubmVjdGl2aXR5IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFX0ZJRUxEX09OPFwvZW0+IHwgU2VjdXJlIGVsZW1lbnQgZmllbGQgb24gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VfRklFTERfT0ZGPFwvZW0+IHwgU2VjdXJlIGVsZW1lbnQgZmllbGQgb2ZmIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NFX1RZUEVfQ0hBTkdFRDxcL2VtPiB8IFNlY3VyZSBlbGVtZW50IHR5cGUgY2hhbmdlZCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRV9DQVJEX0VNVUxBVElPTl9DSEFOR0VEPFwvZW0+IHwgU2VjdXJlIGVsZW1lbnQgY2FyZCBlbXVsYXRpb24gY2hhbmdlZCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9DT05ORUNUSU9OX0hBTkRPVkVSPFwvZW0+IHwgQ29ubmVjdGlvbiBoYW5kb3ZlciBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TRVRfU0U8XC9lbT4gfCBTZXQgc2VjdXJlIGVsZW1lbnQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfR0VUX1NFPFwvZW0+IHwgR2V0IHNlY3VyZSBlbGVtZW50IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX09QRU5fSU5URVJOQUxfU0U8XC9lbT4gfCBPcGVuIGludGVybmFsIHNlY3VyZSBlbGVtZW50IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0NMT1NFX0lOVEVSTkFMX1NFPFwvZW0+IHwgQ2xvc2UgaW50ZXJuYWwgc2VjdXJlIGVsZW1lbnQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VORF9BUERVX1NFPFwvZW0+IHwgU2VuZCBBUERVIHRvIHNlY3VyZSBlbGVtZW50IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0dFVF9BVFJfU0U8XC9lbT4gfCBHZXQgQVRSIGZyb20gc2VjdXJlIGVsZW1lbnQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX0dFVF9TRVJWRVJfU1RBVEU8XC9lbT4gfCBHZXQgc2VydmVyIHN0YXRlIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0lOSVQ8XC9lbT4gfCBJbml0aWFsaXplIE5GQyBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9ERUlOSVQ8XC9lbT4gfCBEZWluaXRpYWxpemUgTkZDIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX0dFVF9GSVJNV0FSRV9WRVJTSU9OPFwvZW0+IHwgR2V0IGZpcm13YXJlIHZlcnNpb24gbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU05FUF9TVEFSVF9TRVJWRVI8XC9lbT4gfCBTdGFydCBTTkVQIHNlcnZlciBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TTkVQX1NUQVJUX0NMSUVOVDxcL2VtPiB8IFN0YXJ0IFNORVAgY2xpZW50IG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NORVBfUkVRVUVTVDxcL2VtPiB8IFNORVAgcmVxdWVzdCBtZXNzYWdlIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUVTU0FHRV9TTkVQX1NUT1BfU0VSVklDRTxcL2VtPiB8IFN0b3AgU05FUCBzZXJ2aWNlIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1NORVBfUkVHSVNURVJfU0VSVkVSPFwvZW0+IHwgUmVnaXN0ZXIgU05FUCBzZXJ2ZXIgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU05FUF9VTlJFR0lTVEVSX1NFUlZFUjxcL2VtPiB8IFVucmVnaXN0ZXIgU05FUCBzZXJ2ZXIgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfQ09OTkVDVDxcL2VtPiB8IENvbm5lY3QgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfRElTQ09OTkVDVDxcL2VtPiB8IERpc2Nvbm5lY3QgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfU0VUX0NBUkRfRU1VTEFUSU9OPFwvZW0+IHwgU2V0IGNhcmQgZW11bGF0aW9uIG1lc3NhZ2UgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NRVNTQUdFX1JPVVRJTkdfSE9TVF9FTVVfQUNUSVZBVEVEPFwvZW0+IHwgUm91dGluZyBob3N0IGVtdWxhdGlvbiBhY3RpdmF0ZWQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfUk9VVElOR19IT1NUX0VNVV9ERUFDVElWQVRFRDxcL2VtPiB8IFJvdXRpbmcgaG9zdCBlbXVsYXRpb24gZGVhY3RpdmF0ZWQgbWVzc2FnZSB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01FU1NBR0VfUk9VVElOR19IT1NUX0VNVV9EQVRBPFwvZW0+IHwgUm91dGluZyBob3N0IGVtdWxhdGlvbiBkYXRhIG1lc3NhZ2UgdHlwZS4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhNTVhNmI5YmIwZmE3YzkwZmJjMjZjYmE2ZTZlZWRiOThcIj5uZXRfbmZjX25kZWZfY2FyZF9zdGF0ZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHN0YXRlcyBvZiBORkMgTkRFRiBjYXJkcy48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCBzdGF0ZXMgb2YgTkZDIE5ERUYgY2FyZHMgdGhhdCBjYW4gYmUgZW5jb3VudGVyZWQuPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfTkRFRl9DQVJEX0lOVkFMSUQ8XC9lbT4gfCBUaGUgY2FyZCBpcyBub3QgTkZDIGZvcnVtIHNwZWNpZmllZCB0YWcuIFRoZSBuZGVmIGZvcm1hdCB3aWxsIGJlIG5lZWRlZC4gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19OREVGX0NBUkRfSU5JVElBTElTRUQ8XC9lbT4gfCBUaGUgY2FyZCBpcyBORkMgZm9ydW0gc3BlY2lmaWVkIHRhZywgYnV0IEl0IGhhcyBubyBhY3R1YWwgZGF0YS4gU28sIHRoZSBuZGVmIHdyaXRlIHdpbGwgYmUgbmVlZGVkLiB8XG58IDxlbT5ORVRfTkZDX05ERUZfQ0FSRF9SRUFEX1dSSVRFPFwvZW0+IHwgVGhlIGNhcmQgaXMgTkZDIGZvcnVtIHNwZWNpZmllZCB0YWcuIFRoZSBuZGVmIHJlYWQgYW5kIHdyaXRlIHdpbGwgYmUgYWxsb3dlZC4gfFxufCA8ZW0+TkVUX05GQ19OREVGX0NBUkRfUkVBRF9PTkxZPFwvZW0+IHwgVGhlIGNhcmQgaXMgTkZDIGZvcnVtIHNwZWNpZmllZCB0YWcsIGJ1dCBvbmx5IHRoZSBuZGVmIHJlYWQgd2lsbCBiZSBhbGxvd2VkLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FjZTk2NjQzOGU4ZTRhYTMxY2MxM2UyNzU3YjdkNTliY1wiPm5ldF9uZmNfcmVjb3JkX3RuZl9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIE5GQyByZWNvcmRzLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHR5cGVzIG9mIE5GQyByZWNvcmRzIHRoYXQgY2FuIGJlIGVuY291bnRlcmVkLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5ORVRfTkZDX1JFQ09SRF9FTVBUWTxcL2VtPiB8IEVtcHR5IHJlY29yZCB0eXBlLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX1JFQ09SRF9XRUxMX0tOT1dOX1RZUEU8XC9lbT4gfCBXZWxsLWtub3duIHR5cGUgcmVjb3JkLiB8XG58IDxlbT5ORVRfTkZDX1JFQ09SRF9NSU1FX1RZUEU8XC9lbT4gfCBNZWRpYSB0eXBlIHJlY29yZCAoZS5nLiwgaW1hZ2VcL2pwZWcpLiB8XG58IDxlbT5ORVRfTkZDX1JFQ09SRF9VUkk8XC9lbT4gfCBVUkkgcmVjb3JkIChlLmcuLCA8YSBocmVmPVwiaHR0cDpcL1wvZXhhbXBsZS5jb21cIj5odHRwOlwvXC9leGFtcGxlLmNvbTxcL2E+KS4gfFxufCA8ZW0+TkVUX05GQ19SRUNPUkRfRVhURVJOQUxfUlREPFwvZW0+IHwgRXh0ZXJuYWwgUlREIHJlY29yZC4gfFxufCA8ZW0+TkVUX05GQ19SRUNPUkRfVU5LTk9XTjxcL2VtPiB8IFVua25vd24gcmVjb3JkIHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfUkVDT1JEX1VOQ0hBTkdFRDxcL2VtPiB8IFVuY2hhbmdlZCByZWNvcmQgdHlwZS4gfDxcL3A+XG48ZGl2IGNsYXNzPVwib3ZlcmZsb3ctYXV0byBncmlkIHRhYmxlLWZpeGVkXCIgZGF0YS10YWJsZS1jb250YWluZXI9XCJkYXRhLXRhYmxlLWNvbnRhaW5lclwiPjx0YWJsZT5cbjx0aGVhZD5cbjx0cj5cbjx0aD5lbnVtIDxhIGhyZWY9XCJncm91cF9fSEFMQVBJX19IQUxfX05GQ19fTU9EVUxFLm1kI2dhYWRjNzEzODIwZGE1YmY5ODczMjYyNWFjMzdkOGZiZTBcIj5uZXRfbmZjX3NjaGVtYV90eXBlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgVVJJIHNjaGVtZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgVVJJIHNjaGVtZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiBORkMgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19TQ0hFTUFfRlVMTF9VUkk8XC9lbT4gfCBQcm90b2NvbCBpcyBzcGVjaWZpZWQgYnkgcGF5bG9hZC4gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfSFRUUF9XV1c8XC9lbT4gfCA8YSBocmVmPVwiaHR0cDpcL1wvd3d3XCI+aHR0cDpcL1wvd3d3PFwvYT4uIHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX0hUVFBTX1dXVzxcL2VtPiB8IDxhIGhyZWY9XCJodHRwczpcL1wvd3d3XCI+aHR0cHM6XC9cL3d3dzxcL2E+LiB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9IVFRQPFwvZW0+IHwgPGEgaHJlZj1cImh0dHA6XC9cL1wiPmh0dHA6XC9cLzxcL2E+IHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX0hUVFBTPFwvZW0+IHwgPGEgaHJlZj1cImh0dHBzOlwvXC9cIj5odHRwczpcL1wvPFwvYT4gfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfVEVMPFwvZW0+IHwgdGVsOiB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9NQUlMVE88XC9lbT4gfCBtYWlsdG86IHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX0ZUUF9BTk9OWU1PVVM8XC9lbT4gfCA8YSBocmVmPVwiZnRwOlwvXC9hbm9ueW1vdXM6YW5vbnltb3VzQFwiPmZ0cDpcL1wvYW5vbnltb3VzOmFub255bW91c0A8XC9hPiB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9GVFBfRlRQPFwvZW0+IHwgPGEgaHJlZj1cImZ0cDpcL1wvZnRwXCI+ZnRwOlwvXC9mdHA8XC9hPi4gfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfRlRQUzxcL2VtPiB8IGZ0cHM6XC9cLyB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9TRlRQPFwvZW0+IHwgc2Z0cDpcL1wvIHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX1NNQjxcL2VtPiB8IHNtYjpcL1wvIHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX05GUzxcL2VtPiB8IG5mczpcL1wvIHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX0ZUUDxcL2VtPiB8IDxhIGhyZWY9XCJmdHA6XC9cL1wiPmZ0cDpcL1wvPFwvYT4gfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfREFWPFwvZW0+IHwgZGF2OlwvXC8gfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfTkVXUzxcL2VtPiB8IDxhIGhyZWY9XCJuZXdzOlwvXC9cIj5uZXdzOlwvXC88XC9hPiB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9URUxORVQ8XC9lbT4gfCB0ZWxuZXQ6XC9cLyB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9JTUFQPFwvZW0+IHwgaW1hcDogfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfUlRTUDxcL2VtPiB8IHJ0c3A6XC9cLyB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9VUk48XC9lbT4gfCB1cm46IHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX1BPUDxcL2VtPiB8IHBvcDogfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfU0lQPFwvZW0+IHwgc2lwOiB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9TSVBTPFwvZW0+IHwgc2lwczogfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfVEZUUDxcL2VtPiB8IHRmdHA6IHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX0JUU1BQPFwvZW0+IHwgYnRzcHA6XC9cLyB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9CVEwyQ0FQPFwvZW0+IHwgYnRsMmNhcDpcL1wvIHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX0JUR09FUDxcL2VtPiB8IGJ0Z29lcDpcL1wvIHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX1RDUE9CRVg8XC9lbT4gfCB0Y3BvYmV4OlwvXC8gfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfSVJEQU9CRVg8XC9lbT4gfCBpcmRhb2JleDpcL1wvIHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX0ZJTEU8XC9lbT4gfCA8YSBocmVmPVwiZmlsZTpcL1wvXCI+ZmlsZTpcL1wvPFwvYT4gfFxufCA8ZW0+TkVUX05GQ19TQ0hFTUFfVVJOX0VQQ19JRDxcL2VtPiB8IHVybjplcGM6aWQ6IHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX1VSTl9FUENfVEFHPFwvZW0+IHwgdXJuOmVwYzp0YWc6IHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX1VSTl9FUENfUEFUPFwvZW0+IHwgdXJuOmVwYzpwYXQ6IHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX1VSTl9FUENfUkFXPFwvZW0+IHwgdXJuOmVwYzpyYXc6IHxcbnwgPGVtPk5FVF9ORkNfU0NIRU1BX1VSTl9FUEM8XC9lbT4gfCB1cm46ZXBjOiB8XG58IDxlbT5ORVRfTkZDX1NDSEVNQV9VUk5fTkZDPFwvZW0+IHwgdXJuOmVwYzpuZmM6IHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYWQxZjliMWI3ODVlMjcxYzU3NmE3MTVjNzYzZWUxZjRmXCI+bmV0X25mY19zY3JlZW5fc3RhdGVfdHlwZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIHNjcmVlbiBzdGF0ZSB0eXBlcy48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCB0eXBlcyBvZiBzY3JlZW4gc3RhdGUgdHlwZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiBORkMgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19TQ1JFRU5fSU5WQUxJRDxcL2VtPiB8IEluZGljYXRlcyBzY3JlZW4gc3RhdGUgaXMgaW52YWxpZC4gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19TQ1JFRU5fT0ZGPFwvZW0+IHwgU2NyZWVuIGlzIG9mZi4gfFxufCA8ZW0+TkVUX05GQ19TQ1JFRU5fT05fTE9DSzxcL2VtPiB8IFNjcmVlbiBpcyBvbiBidXQgbG9ja2VkLiB8XG58IDxlbT5ORVRfTkZDX1NDUkVFTl9PTl9VTkxPQ0s8XC9lbT4gfCBTY3JlZW4gaXMgb24gYW5kIHVubG9ja2VkLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2EyZmEyYzY4NmE4ZWY5YmI2ZTQ2NmJjYzdlYTNmZDUxM1wiPm5ldF9uZmNfc2VfZW50cnlfdHlwZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIFNFIGVudHJ5IHR5cGVzLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHR5cGVzIG9mIFNFIGVudHJ5IHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTkZDIGNvbW11bmljYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfU0VfSU5WQUxJRF9FTlRSWTxcL2VtPiB8IEluZGljYXRlcyBTRSBlbnRyeSB0eXBlIGlzIGludmFsaWQuIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPk5FVF9ORkNfU0VfVEVDSF9FTlRSWTxcL2VtPiB8IFRlY2hub2xvZ3kgZW50cnkgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19TRV9QUk9UT0NPTF9FTlRSWTxcL2VtPiB8IFByb3RvY29sIGVudHJ5IHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfU0VfQUlEX0VOVFJZPFwvZW0+IHwgQXBwbGljYXRpb24gSWRlbnRpZmllciAoQUlEKSBlbnRyeSB0eXBlLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2FlZTlhZjE3OTQyZTVmOTRkNzFiNWUyZDEwOGZiOTdiNFwiPm5ldF9uZmNfc2VfdGVjaF9wcm90b2NvbF90eXBlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgU0UgdGVjaG5vbG9neSBhbmQgcHJvdG9jb2wgdHlwZXMuPFwvcD5cbjxwPlRoaXMgZW51bWVyYXRpb24gZGVmaW5lcyBkaWZmZXJlbnQgdHlwZXMgb2YgU0UgdGVjaG5vbG9neSBhbmQgcHJvdG9jb2wgdHlwZXMgdGhhdCBjYW4gYmUgdXNlZCBpbiBORkMgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19TRV9JTlZBTElEX1RFQ0hfUFJPVE88XC9lbT4gfCBJbmRpY2F0ZXMgU0UgdGVjaG5vbG9neSBhbmQgcHJvdG9jb2wgdHlwZSBpcyBpbnZhbGlkLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX1NFX1RFQ0hfQV9JU09ERVA8XC9lbT4gfCBUeXBlIEEgXC8gSVNPLURFUC4gfFxufCA8ZW0+TkVUX05GQ19TRV9URUNIX0JfTkZDREVQPFwvZW0+IHwgVHlwZSBCIFwvIE5GQy1ERVAuIHxcbnwgPGVtPk5FVF9ORkNfU0VfVEVDSF9BX0JfSVNPX05GQ19ERVA8XC9lbT4gfCBUeXBlIEFcL0IgXC8gSVNPLURFUFwvTkZDLURFUC4gfFxufCA8ZW0+TkVUX05GQ19TRV9URUNIX0Y8XC9lbT4gfCBUeXBlIEYuIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTFkZTAwM2FmMWQzZGNmZTM1ODdiZDYwY2JiMGMzMjgzXCI+bmV0X25mY19zZV90eXBlX2U8XC9hPjxcL3RoPlxuPFwvdHI+XG48XC90aGVhZD5cbjxcL3RhYmxlPjxcL2Rpdj5cbjxwPkVudW1lcmF0aW9uIGZvciBkaWZmZXJlbnQgdHlwZXMgb2YgU2VjdXJlIEVsZW1lbnQgKFNFKSB0eXBlcy48XC9wPlxuPHA+VGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVzIGRpZmZlcmVudCB0eXBlcyBvZiBTZWN1cmUgRWxlbWVudCAoU0UpIHR5cGVzIHRoYXQgY2FuIGJlIHVzZWQgaW4gTkZDIGNvbW11bmljYXRpb24uPFwvcD5cbjxwPjxzdHJvbmc+U2luY2U6PFwvc3Ryb25nPlxuOiAgIEhBTF9NT0RVTEVfTkZDIDEuMDxcL3A+XG48cD48c3Ryb25nPkVudW1lcmF0b3I6PFwvc3Ryb25nPlxuOiAgIHwgPGVtPk5FVF9ORkNfU0VfVFlQRV9OT05FPFwvZW0+IHwgSW52YWxpZCBTRSB0eXBlLiB8XG58IC0tLSB8IC0tLSB8XG58IDxlbT5ORVRfTkZDX1NFX1RZUEVfRVNFPFwvZW0+IHwgRW1iZWRkZWQgU2VjdXJlIEVsZW1lbnQgKGVTRSkuIHxcbnwgPGVtPk5FVF9ORkNfU0VfVFlQRV9VSUNDPFwvZW0+IHwgVW5pdmVyc2FsIEludGVncmF0ZWQgQ2lyY3VpdCBDYXJkIChVSUNDKS4gfFxufCA8ZW0+TkVUX05GQ19TRV9UWVBFX1NEQ0FSRDxcL2VtPiB8IFNEQ2FyZC4gfFxufCA8ZW0+TkVUX05GQ19TRV9UWVBFX0hDRTxcL2VtPiB8IEhvc3QgQ2FyZCBFbXVsYXRpb24gKEhDRSkuIHw8XC9wPlxuPGRpdiBjbGFzcz1cIm92ZXJmbG93LWF1dG8gZ3JpZCB0YWJsZS1maXhlZFwiIGRhdGEtdGFibGUtY29udGFpbmVyPVwiZGF0YS10YWJsZS1jb250YWluZXJcIj48dGFibGU+XG48dGhlYWQ+XG48dHI+XG48dGg+ZW51bSA8YSBocmVmPVwiZ3JvdXBfX0hBTEFQSV9fSEFMX19ORkNfX01PRFVMRS5tZCNnYTg4ZWQ2NDJhYWM5ZGViMWFlMDJiNGJhNWQ3NDAzODYzXCI+bmV0X25mY19zb2NrZXRfdHlwZV9lPFwvYT48XC90aD5cbjxcL3RyPlxuPFwvdGhlYWQ+XG48XC90YWJsZT48XC9kaXY+XG48cD5FbnVtZXJhdGlvbiBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIHNvY2tldCB0eXBlcyBpbiBMTENQLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHR5cGVzIG9mIHNvY2tldCB0eXBlcyB0aGF0IGNhbiBiZSB1c2VkIGluIExMQ1AgY29tbXVuaWNhdGlvbi48XC9wPlxuPHA+PHN0cm9uZz5TaW5jZTo8XC9zdHJvbmc+XG46ICAgSEFMX01PRFVMRV9ORkMgMS4wPFwvcD5cbjxwPjxzdHJvbmc+RW51bWVyYXRvcjo8XC9zdHJvbmc+XG46ICAgfCA8ZW0+TkVUX05GQ19MTENQX1NPQ0tFVF9UWVBFX0NPTk5FQ1RJT05PUklFTlRFRDxcL2VtPiB8IENvbm5lY3Rpb24tb3JpZW50ZWQgc29ja2V0IHR5cGUuIHxcbnwgLS0tIHwgLS0tIHxcbnwgPGVtPk5FVF9ORkNfTExDUF9TT0NLRVRfVFlQRV9DT05ORUNUSU9OTEVTUzxcL2VtPiB8IENvbm5lY3Rpb25sZXNzIHNvY2tldCB0eXBlLiB8PFwvcD5cbjxkaXYgY2xhc3M9XCJvdmVyZmxvdy1hdXRvIGdyaWQgdGFibGUtZml4ZWRcIiBkYXRhLXRhYmxlLWNvbnRhaW5lcj1cImRhdGEtdGFibGUtY29udGFpbmVyXCI+PHRhYmxlPlxuPHRoZWFkPlxuPHRyPlxuPHRoPmVudW0gPGEgaHJlZj1cImdyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUubWQjZ2E2YmQ1OWFmMWQzZmExNmQxNWVlN2M0YWU2ZjgzNjgxNFwiPm5ldF9uZmNfdGFyZ2V0X3R5cGVfZTxcL2E+PFwvdGg+XG48XC90cj5cbjxcL3RoZWFkPlxuPFwvdGFibGU+PFwvZGl2PlxuPHA+RW51bWVyYXRpb24gZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBORkMgdGFyZ2V0IHR5cGVzLjxcL3A+XG48cD5UaGlzIGVudW1lcmF0aW9uIGRlZmluZXMgZGlmZmVyZW50IHR5cGVzIG9mIE5GQyB0YXJnZXRzIHRoYXQgY2FuIGJlIGRldGVjdGVkLjxcL3A+XG48cD48c3Ryb25nPlNpbmNlOjxcL3N0cm9uZz5cbjogICBIQUxfTU9EVUxFX05GQyAxLjA8XC9wPlxuPHA+PHN0cm9uZz5FbnVtZXJhdG9yOjxcL3N0cm9uZz5cbjogICB8IDxlbT5ORVRfTkZDX1VOS05PV05fVEFSR0VUPFwvZW0+IHwgVW5rbm93biB0YXJnZXQgdHlwZS4gfFxufCAtLS0gfCAtLS0gfFxufCA8ZW0+TkVUX05GQ19HRU5FUklDX1BJQ0M8XC9lbT4gfCBHZW5lcmljIFBJQ0MgKFByb3hpbWl0eSBDb3VwbGluZyBEZXZpY2UpIHRhcmdldCB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX0lTTzE0NDQzX0FfUElDQzxcL2VtPiB8IElTT1wvSUVDIDE0NDQzIFR5cGUgQSBQSUNDIHRhcmdldCB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX0lTTzE0NDQzXzRBX1BJQ0M8XC9lbT4gfCBJU09cL0lFQyAxNDQ0MyBQYXJ0IDQgVHlwZSBBIFBJQ0MgdGFyZ2V0IHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfSVNPMTQ0NDNfM0FfUElDQzxcL2VtPiB8IElTT1wvSUVDIDE0NDQzIFBhcnQgMyBUeXBlIEEgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NSUZBUkVfTUlOSV9QSUNDPFwvZW0+IHwgTWlmYXJlIE1pbmkgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NSUZBUkVfMUtfUElDQzxcL2VtPiB8IE1pZmFyZSAxayBQSUNDIHRhcmdldCB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX01JRkFSRV80S19QSUNDPFwvZW0+IHwgTWlmYXJlIDRrIFBJQ0MgdGFyZ2V0IHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfTUlGQVJFX1VMVFJBX1BJQ0M8XC9lbT4gfCBNaWZhcmUgVWx0cmEgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19NSUZBUkVfREVTRklSRV9QSUNDPFwvZW0+IHwgTWlmYXJlIERlc2ZpcmUgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19JU08xNDQ0M19CX1BJQ0M8XC9lbT4gfCBJU09cL0lFQyAxNDQ0MyBUeXBlIEIgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19JU08xNDQ0M180Ql9QSUNDPFwvZW0+IHwgSVNPXC9JRUMgMTQ0NDMgUGFydCA0IFR5cGUgQiBQSUNDIHRhcmdldCB0eXBlLiB8XG58IDxlbT5ORVRfTkZDX0lTTzE0NDQzX0JQUklNRV9QSUNDPFwvZW0+IHwgSVNPXC9JRUMgMTQ0NDMgUHJpbWUgVHlwZSBCIFBJQ0MgdGFyZ2V0IHR5cGUuIHxcbnwgPGVtPk5FVF9ORkNfRkVMSUNBX1BJQ0M8XC9lbT4gfCBGZWxpY2EgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19KRVdFTF9QSUNDPFwvZW0+IHwgSmV3ZWwgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19JU08xNTY5M19QSUNDPFwvZW0+IHwgSVNPXC9JRUMgMTU2OTMgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19CQVJDT0RFXzEyOF9QSUNDPFwvZW0+IHwgQmFyY29kZSAxMjggUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19CQVJDT0RFXzI1Nl9QSUNDPFwvZW0+IHwgQmFyY29kZSAyNTYgUElDQyB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19ORkNJUDFfVEFSR0VUPFwvZW0+IHwgTkZDLUlQMSB0YXJnZXQgdHlwZS4gfFxufCA8ZW0+TkVUX05GQ19ORkNJUDFfSU5JVElBVE9SPFwvZW0+IHwgTkZDLUlQMSBpbml0aWF0b3IgdHlwZS4gfDxcL3A+XG48aHIgXC8+XG48cD5FeGNlcHQgYXMgbm90ZWQsIHRoaXMgY29udGVudCAtIGV4Y2x1ZGluZyB0aGUgQ29kZSBFeGFtcGxlcyAtIGlzIGxpY2Vuc2VkIHVuZGVyIDxhIGhyZWY9XCJodHRwOlwvXC9jcmVhdGl2ZWNvbW1vbnMub3JnXC9saWNlbnNlc1wvYnlcLzMuMFwvbGVnYWxjb2RlXCI+Q3JlYXRpdmUgQ29tbW9ucyBBdHRyaWJ1dGlvbiAzLjA8XC9hPlxuYW5kIGFsbCBvZiB0aGUgQ29kZSBFeGFtcGxlcyBjb250YWluZWQgaGVyZWluIGFyZSBsaWNlbnNlZCB1bmRlciA8YSBocmVmPVwiaHR0cHM6XC9cL3d3dy50aXplbi5vcmdcL2JzZC0zLWNsYXVzZS1saWNlbnNlXCI+QlNELTMtQ2xhdXNlPFwvYT4uPGJyIFwvPlxuRm9yIGRldGFpbHMsIHNlZSB0aGUgPGEgaHJlZj1cImh0dHBzOlwvXC93d3cudGl6ZW4ub3JnXC9jb250ZW50LWxpY2Vuc2VcIj5Db250ZW50IExpY2Vuc2U8XC9hPi48XC9wPlxuIiwidGFibGVfb2ZfY29udGVudCI6Ijx1bCBjbGFzcz1cInRhYmxlLW9mLWNvbnRlbnRzXCI+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LXJlcXVpcmVkLWhlYWRlclwiPlJlcXVpcmVkIEhlYWRlcjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LW92ZXJ2aWV3XCI+T3ZlcnZpZXc8XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1kYXRhLXN0cnVjdHVyZS1kb2N1bWVudGF0aW9uXCI+RGF0YSBTdHJ1Y3R1cmUgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb25cIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMlwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTNcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi00XCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tNVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTZcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi03XCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tOFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTlcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xMFwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTExXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMTJcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xM1wiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTE0XCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMTVcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xNlwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTE3XCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMThcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0xOVwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTIwXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMjFcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZmllbGQtZG9jdW1lbnRhdGlvbi0yMlwiPkZpZWxkIERvY3VtZW50YXRpb248XC9hPjxcL2xpPlxuPGxpPjxhIGhyZWY9XCIjY29udGVudC1maWVsZC1kb2N1bWVudGF0aW9uLTIzXCI+RmllbGQgRG9jdW1lbnRhdGlvbjxcL2E+PFwvbGk+XG48bGk+PGEgaHJlZj1cIiNjb250ZW50LWZpZWxkLWRvY3VtZW50YXRpb24tMjRcIj5GaWVsZCBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtdHlwZWRlZi1kb2N1bWVudGF0aW9uXCI+VHlwZWRlZiBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxsaT48YSBocmVmPVwiI2NvbnRlbnQtZW51bWVyYXRpb24tdHlwZS1kb2N1bWVudGF0aW9uXCI+RW51bWVyYXRpb24gVHlwZSBEb2N1bWVudGF0aW9uPFwvYT48XC9saT5cbjxcL3VsPlxuIiwidGl0bGUiOiJUaXplbiBIQUwgQVBJOiBOZmMiLCJyYXciOm51bGx9LHsiY2xhc3MiOiJBcHBcXFNlcnZpY2VzXFxEb2N1bWVudGF0aW9uXFxEYXRhXFxSZW5kZXJlZE1hcmtkb3duIiwicyI6IndyYmwifV19LHsicyI6ImFyciJ9XX0sIm1lbW8iOnsiaWQiOiI5bXkwaHlXVHgzYnU1dlp3cDU4RiIsIm5hbWUiOiJfX21vdW50UGFyYW1zQ29udGFpbmVyIiwicGF0aCI6ImRvY3NcL3BsYXRmb3JtXC9oYWxcL2FwaVwvMS4wLjBcL2dyb3VwX19IQUxBUElfX0hBTF9fTkZDX19NT0RVTEUiLCJtZXRob2QiOiJHRVQiLCJyZWxlYXNlIjoiYS1hLWEifSwiY2hlY2tzdW0iOiJlNWUxZGNjMDMxZWU0ZDU4NTk0ZTY4Mjc1Njg5MTMzZjkxZmY0ZTM4NDE0MTQ2MGQ0OTJhYWZlOTkzMzAxNThkIn0=')" >

For the best experience,
Please visit us from a computer

Copyright © 2026 SAMSUNG. All rights reserved.

Customize your cookie preferences

You can enable or disable non-essential cookies. Essential cookies are always on to ensure the site works properly and to keep you signed in.

Necessary

These cookies are necessary for the website to function properly and cannot be switched off. They help with things like logging in and setting your privacy preferences.

Always on

Analytics

These cookies help us improve the site by tracking which pages are most popular and how visitors move around the site.

Enable analytics cookies
Public Forum Public Forum
Employees only. Please sign in with your company account.