403Webshell
Server IP : 216.92.14.13  /  Your IP : 216.73.216.171
Web Server : Apache
System : Linux vps4089.pairvps.com 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64
User : rmlac2fmr ( 1040637)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/lib/frr/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/frr/mgmtd
ELF>p9@�O@8
@ @@@����   ]8]8```���������������0088800hhhllS�td88800P�td8Z8Z8Z��Q�tdR�td�������c�c/lib64/ld-linux-x86-64.so.2 GNU���GNU$����*��3q�]~���GNU	XREFFRRouting�OLZa�
 T DF�� @@`�
 <Ha�p��\��"@
Â`�+P*!P��f��%� Jm��&@@���@X��� 0�@U&	�����������������������������������������	
!"%&')+,/23478;>ABCs".Q�:��C�
�Z2v����
:�3���
��ʷ꘿��M��EHf�߸�.gw�)~�b1tqBN�.�_D��e�m��7շ)�u������?�Q��v]X�
�?Rj�WW%P�4U��t�RzL���T�5�G}��qd'�ݱ��D�%��+CE��q��X^u�pA��C4��=���!�;	3C��*5S-���Qmm>�2b��Ojs(�U�I�|"�CI���K��~��qX��?GRQ�)x裒����1I<���a�D��|��~�I�6��E�����yH��xY�Y�RQ��@���;W*F�x�a2�~�q7�WW�
��_…��wfY�!u��$���K��텅=�8�k	C֮z9���ȋ��?�=�W�]�c����n��&B�k�|��&������WW�P֌ΉQJR�+M#�u
Q�?0ZŬjo+d?�l�S{"#���ЍH���40@ؤ�*���T@ _x�4���QBم�e���G3���Y��
��
�
���S�9(
�S��\.	�	�	�3 ��	G-[��S�	�u�N=	6f	N	�+H��D�|�
� bK������Az, �
�s$�}$

j�
���J���L�
&��	S���/'��	)x	�<ch
�e��	/�xq	�cb
�	q=�	�����5�C

h�s����a
+y�h����{
���	�	��/G����
Z	ebb:GU�&�:�	�;
���	P
M�I�0Dg�SF�F@qP~�
0�p ;`G@k0o`�R��Л������i� G@A��W�T��`E@�`O�0]4F"��f�F@��D@�Жh�e�������|� S@C�C��E@Lp�e%ZO���	����P�<r`t� F@p=��|a^�`��
��,�bk��G0:������`���[
n��
�Pd��yw
p9&J`�w��8 o	R��+ E@�`400|^�����
�_
�ih`D@� j�[hip�5��a�p��@f]@dY6`F@PY>��^��~i�C0�o���@��!P����������}0D
��T(�Y'����&�G@�����i�]5D(��a�����nFb�_#�_���%�Y8: �|��u�b�6CQ�y��E@X�Cz^~`[W�0{�V0h���*�@�i��=�" up%@pR�\5�D@� h���~�
p]4+���`�d�
�R@�
Pw;��C��t���]�L�_!__gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalize__libc_start_main__start_xref_array__stop_xref_arrayzlog_rotate__stack_chk_failtypesafe_slist_sentinellyd_print_allyang_dnode_getlyd_print_treevty_outstrcmpMTYPE_DARR__darr_resizeqstrdupjhash2vzlogxqcalloc_zlog_assert_failedhash_alloc_internhash_getmgmtd__fe_lock_ds_reply__initmgmtd__fe_message__initmgmtd__fe_message__get_packed_sizemgmtd__fe_message__packmsg_conn_send_msgmgmtd__fe_set_config_reply__init_event_add_timer_tvgettimeofdaymgmtd__fe_commit_config_reply__initmgmtd__fe_get_reply__initMTYPE_MSG_NATIVE_TREE_DATAyang_print_tree_appendqfreeMTYPE_MSG_NATIVE_RPC_REPLY__snprintf_chkmsg_server_conn_createabortlyd_childlyd_pathlysc_pathxref_block_addnb_config_freeyang_dnode_freehash_cleanhash_freeyang_dnode_dupnb_config_replacely_native_ctxyang_dnode_newrunning_confignb_config_dupvty_mgmt_candidate_configly_out_new_filepathly_out_freenb_node_findlyd_free_treelyd_parse_data_pathnb_config_newlyd_merge_siblingsnb_config_mergestrlcpystrlenlyd_parently_out_new_filely_out_new_memorystrncmpmgmtd__be_txn_req__initmgmtd__be_message__initmgmtd__be_message__get_packed_sizemgmtd__be_message__packmgmtd__be_cfg_data_create_req__initmgmtd__be_cfg_data_apply_req__initevent_cancelmsg_server_conn_deletefrr_runstatedirmsg_server_initfrrstr_skip_over_charnb_config_diff_add_changehash_createhash_lookupmgmtd__yang_data_reply__initmgmtd__yang_data__initmgmtd__yang_data_value__initlyd_get_valuelocaltime_rstrftimeaccessunlink__errno_locationsafe_strerrorclock_gettimefrr_libstatedirvty_mgmt_resume_responsemg_insertlyd_free_all_event_add_timerhash_releasemsg_server_cleanuphash_clean_and_freeMTYPE_MSG_NATIVE_EDIT_REPLYmemcpyyang_lyd_trim_xpathnb_candidate_edit_config_changesnb_config_diff_del_changesfrr_early_finifrr_pthread_stop_allfrr_fini_event_add_timer_msecMTYPE_MSG_NATIVE_GET_TREEmemsetlyd_find_xpathly_set_freelyd_dup_siblingslyd_dup_singlenb_candidate_edit_treeMTYPE_MSG_NATIVE_RPCmgmtd__fe_message__unpackmgmtd__fe_message__free_unpackedmsg_conn_disconnectyang_resolve_snode_xpathlys_find_pathlyd_parse_data_memyang_parse_rpcly_strerrcodemgmtd__be_message__unpackmgmtd__be_message__free_unpackedmgmtd__be_subscribe_reply__initnb_config_diffvty_init_mgmt_fefrr_preinitfrr_opt_addfrr_getoptstrchroptargstrtolfrr_help_exitvrf_configure_backendstderr__fprintf_chkfrr_initvrf_cmd_initif_cmd_initfrr_config_forkfrr_runfrr_filter_cli_infofrr_interface_cli_infofrr_route_map_cli_infofrr_routing_cli_infofrr_vrf_cli_infofrr_affinity_map_cli_infofrr_zebra_cli_infoietf_key_chain_cli_infoietf_key_chain_deviation_infofrr_ripd_cli_infofrr_ripngd_cli_infofrr_staticd_cli_infovty_mgmt_send_commit_configvty_mgmt_send_config_datavty_mgmt_send_edit_reqvty_mgmt_send_rpc_reqvty_mgmt_send_get_reqvty_mgmt_send_get_data_reqMTYPE_TMPcmd_show_lib_debugsnb_cli_show_dnode_cmdsfilter_cli_initroute_map_cli_initaffinity_map_initkeychain_cli_initzebra_cli_initrip_cli_initripng_cli_initstatic_vty_init_event_add_eventinstall_node_install_elementmgmt_fe_client_lib_vty_initvmgmt_msg_native_send_erroryang_module_embedfopenfclosevty_mgmt_fe_enabledmgmt_vty_read_configsfwritenb_config_cbs_RB_TYPE_rb_min_rb_nextnb_candidate_validate_yangmgmtd__yang_cfg_data_req__initfreadmgmtd__fe_session_reply__initlibfrr.so.0libmgmt_be_nb.so.0libyang.so.2libc.so.6MTYPE_MGMTD_TXN_COMMCFG_REQmgmt_ds_lockmgmt_ds_delete_data_nodesmgmt_be_get_adapter_configmgmt_daemon_infomgmt_fe_adapter_reset_perf_statsmgmt_txn_notify_be_txn_replymgmt_be_client_namesmgmt_ds_reset_candidatemgmt_be_adapter_status_writeMTYPE_MGMTDietf_netconf_with_defaults_infomgmt_ds_dump_ds_to_filezebra_route_map_infomgmt_master_initmgmt_ds_load_config_from_fileMTYPE_MGMTD_BE_ADPATERmgmt_ds_get_ctx_by_idmgmt_ds_status_write_onemgmt_txn_send_set_config_reqmgmt_terminatemgmt_txn_rollback_trigger_cfg_applyMTYPE_MGMTD_TXN_SETCFG_REQshow_mgmt_cmt_historymgmt_txn_notify_be_cfg_apply_replymgmt_txn_destroyMTYPE_MGMTD_TXN_REQmgmt_fe_get_session_setcfg_statsmgmt_be_adapter_unlockmgmt_txn_send_get_req_IO_stdin_usedmgmt_history_rollback_by_id_mg_MGMTDmgmt_be_send_nativemmmgmt_history_destroymgmt_privs__data_startMTYPE_MGMTD_TXN_CFG_BATCHMTYPE_MGMTD_TXN_GETDATA_REPLYmgmt_vty_initmgmt_be_create_adaptermgmt_txn_notify_errormgmt_fe_adapter_lockmgmt_history_new_recordmgmt_fe_adapter_unlockmgmt_ds_is_lockedmgmt_be_send_cfgapply_reqmgmt_be_send_cfgdata_reqmgmt_fe_adapter_initmgmt_be_adapter_toggle_client_debugMTYPE_MGMTD_CMT_INFOmgmt_be_client_id2namemgmt_be_get_adapter_by_idmgmt_txn_notify_tree_data_replymgmt_ds_initMTYPE_MGMTD_TXN_RPC_REQmgmt_txn_send_rpcmgmt_fe_adapter_send_notifymgmt_be_xpath_register_writemgmt_history_rollback_nconfig_write_mgmt_debugmgmt_ds_get_nb_configmgmt_ds_find_data_node_by_xpathMTYPE_MGMTD_ERRmgmt_debug_txnmgmt_ds_is_configMTYPE_MGMTD_FE_SESSIONmgmt_txn_initmgmt_fe_adapter_send_tree_dataMTYPE_MGMTD_TXN_GETTREE_REQmgmt_ds_iter_datamgmt_ds_destroymgmt_ds_namesmgmt_debug_femgmt_txn_get_session_idmgmt_txn_send_edit__bss_startmgmt_history_rollback_completemgmt_be_send_txn_reqmgmt_config_txn_in_progressmgmt_fe_adapter_txn_errormgmt_fe_get_session_commit_statsmgmt_ds_status_writemgmt_history_initmgmt_fe_adapter_destroymgmt_fe_adapter_send_rpc_replymgmt_fe_adapter_toggle_client_debugmgmt_fe_adapter_status_writemgmt_ds_unlock_endmgmt_txn_notify_be_cfgdata_replymgmt_be_get_adapter_by_namemgmt_fe_send_commit_cfg_replymgmt_txn_send_commit_config_reqmgmt_fe_send_get_replymgmt_debug_beMTYPE_MGMTD_FE_ADPATERmgmt_debug_dsmgmt_be_show_xpath_registriesmgmt_fe_adapter_perf_measurementMTYPE_MGMTD_TXN_GETDATA_REQmgmt_destroy_txnmgmt_txn_status_writemgmt_ds_copy_dss_edatamgmt_be_adapter_initmgmt_txn_send_get_tree_opermgmt_initmgmt_fe_create_adaptermgmt_be_adapter_destroymgmt_txn_notify_be_adapter_connmgmt_create_txnmgmt_be_interested_clientsmgmt_fe_adapter_send_edit_replymgmt_txn_notify_rpc_replymgmt_ds_dump_treeMTYPE_MGMTD_XPATHmgmt_be_adapter_lockmgmt_fe_send_set_cfg_replyMTYPE_MGMTD_TXNGLIBC_2.14GLIBC_2.34GLIBC_2.4GLIBC_2.3.4GLIBC_2.17GLIBC_2.2.5/usr/lib/x86_64-linux-gnu/frr�
���x����ii
�ti	�����ui	����6��8���6��9��P:��`4���4��:М>g؜���Rg�>g�� ��eP�>gX���`�Zg��>g������bgН>g؝���wg�>g��� ��gP��gX���`��g���g���g���g���g��h�h����:h�Kh�Xh�� �kh(�h0��g8�{h@�Kh`�khh�hp��gx�{h��Kh��h���h��kh��{h��:h��XhȟKh��h���h@��hH��hP��h`��Bp�
ix������h���������>g�����(�Сi� �>g������5i ��0�>g8�0�@�h�P�8�`��p�>gx�0������x���@��>g��0����ТЦ���>g��0��М��� �0�>g8�`�@�0�P�Ц`�`p�>gx�`���Л��������>g��`�����УЦ� �>g��`�������0�>g8���@�X�`��p�>gx�����P���Ц�����>g�������ФЦ�@�>g�����К���0�>g8���@�>iH�Ni`��p�>gx�����x���������>g������8�Х���>g�����Rg0�>g8� �@�`ip�>gx�����ji��i��`��>g�������Ц�����>g�����Ȍ��� � 0�>g8���@��eP���`��p�>gx��������ا�����>g��@�����Чا�@�>g��@����ا ��0�>g8�p�@��P�(�p�>gx�p���P���>g��p������>g��@����0�>g8�@�@��i`�	p�>gx���������(���`	��>g������P�Щ�i�>g������k ��	0�>g8���@�H�P���`� 
p�>gx����� ��� ����
��>g��������ЪP���
�>g��������5i0�>g8�`�@��p�>gx�`����i��>g��p���(��>g��p���i��i0�>g8�p�@�jH�jp�>gx�p���/j��Kj��>g��p���_jȬxj�>g��p���j �@0�>g8��@�@qP�P�`��p�>gx� ���H���������>g�� ���ZeЭ���`�>g�� ������ ��0�>g8�@�@���P��j`� 
p�>gx�@���X������>g��@����j�>g��@��8� ��
0�>g8�@�@�ȂP�h�p�>gx�@����e���
��>g��`���X~Я���>g��`���j0�>g8�`�@�8�`�@p�>gx�����0~���j�����>g�������}а���>g������}�X� �`0�>g8���@�PyP���p�>gx���������>g���������>g������i ��0�>g8���@��xP���p�>gx������e�� ��>g������H�вi�>g�����ج0�>g8���@��e`��p�>gx���������i��>g���������>g������e ��0�>g8��@�ȅP� �`�@p�>gx� ������P������>g��@����pдi�>g��@����0�>g8�@�@��e`�p�>gx�`���h�������`��>g��`��� �е�����>g��`��Ȉ�ح0�>g8�`�@�0�p�>gx�`���X���>g��`������ �>g��`�������0�>g8�`�@��ep�>gx�����������>g��������зH��>g������� ��0�>g8���@���P�h�`�@p�>gx�����X����������>g������ �и����>g��������� �`0�>g8���@���P���`��p�>gx�����P������� ��>g�������pй����>g�����@p�� ��0�>g8���@��oP��`�@p�>gx������o��������>g������`oк���k������k0��k8���@��kp��kx������k���k�������k���k�������0��k8� �@��kp��kx� ����k��`���g��������м�k����g����P��H�0��g8�@�@�lp��gx�@����k�� ���g�� ���@}н�����g��@��0u��i ��0��g8�`�@�huP��`�@p��gx�`���}�������g��`���	l��g��`��l0��g8���@�7lp��gx�����Hl������g������p�п�����g����� ���� �`0��g8���@��P��`��p��gx�����@���8����g������l��g������k � 0��g8���@���P���`��p��gx��������p�������g�����������@��g����ȑ���0��g8��@�[l`��p��gx��������������g�� ���8�������`���g�� ��p����0��g8� �@��k`��p��gx�`������8����g��`�������g��`���k0��g8�`�@��k`� p��gx�����h���8�������g������ ���8����g������k0��g8���@��k`��p��gx���������0���@ ���g�� ������wl��� ���g�� ��ؓ��� �!0��g8�`�@�0�P���`�`!p��gx�������������!���g������p��� ��� "���g����� ���� ��"0��g8���@��P�h�`��"p��gx��������� ���@#���g������P��������#���g��������� �$0��g8���@��P�0�`�`$p��gx���������`����$���g������x����l�� %���g�����0���l ��%0��g8���@��tP�H�`��%p��gx�����ht������@&���g�������s������&���g�����xs��� �'0��g8� �@��P��ip��gx�P����l��`'���g��P�������i���'���g��p��0s��0��g8�p�@��g`� (p��gx������r������g�������g���g�����8���l0��g8���@��lH�m`��(p��gx������r������g�������g���(���g�����0r�X�0��g8���@���`�@)p��gx�����v�������)���g������v�����*���g��0���q��� �`*0��g8�0�@��qP���`��*p��gx�0���hq����� +��am��P���`{�������+��am��P���a�|m ��+0�am8�p�@��{P���`�@,p�amx�p����{�������,��am��p����{�� ���am��p���m0�am8��@�P�`�-p�amx������u���i��am����������`-��am�����{��� ��-0�am8���@��zP��`� .p�amx������z�������.��am������xz������.��am�����Pz��m0���8���`�@/p�amx�����(z���m���/��am������z���m����������� �00�am8���@��yP��mh���p�`�x� ������`0��am�������y��5i���0��am�� ��8{���0�am8� �@�lp�amx�@���7l��am��`���p��� 1��am��`������� ��10�am8��@�(�P��m`��1p�amx��������5i��@2��am��0���h��������2��am��0��О��i �30�am8�0�@���P��`�`3p�amx�0���`�������3��am��0���0������ 4��am��P��p����0�am8���@��mH��m`��4p�amx�������������4��am������@�������@5��am���������� ��50�am8���@���P� �`�6p�amx����������i��`6��am���������������6��am�����`��p� � 70�am8���@� �P��l`��7p�amx�����؟���l���7��am�������x������@8��am����@x��� ��80�am8�0�@�xP���`�9p�amx�`���P����i��am�������l��`9��am����� ���i ��90�Mn8���@��wP�`n`� :p�Mnx�����hw��pn��Mn����������:��Mn������`�� ��:0�Mn8���@�0wP�~n`�@;p�Mnx����Hv���n���;��Mn�����r`��|m��Mn����8� �<0�Mn8��@�vP�`�`�`<p�Mnx�����u���n��Mn������n��Mn��(���k ��<0�Mn8�(�@�pvP���p�Mnx������k��Mn�������k��Mn�������0�Mn8���@�(�p�Mnx�@������ =��Mn��@����`��P����n��n �o@�o��
i������;o��
i������Go��B�
i��� ��e0���@�@CP�
iX���`��`p�����
i�������g������<m��>g���;���0���8��;@�`�p���x��;�����������;�� ��������;���0���8��;@���p���x��;�����������;��@��������;���0���8��;@��p���x��;��`��������;�����������;� �0���8��;@���p���x��;�����������;��@��������;���0���8��;@��p���x��;��`��������;�����������;� �0���8��;@���p���x��;�����������;��@��������;���0���8��;@��p���x��;��`����I���g��<���B���i�� J���k��`;�@B�H� ��J0��k8�`;@�BP�S�`��Jp��kx�`;���A��H���@K���k���;���>�������K���k���;��>�H� �L0�>g8� <@��>P��B`�`Lp�>gx� <��`>���B���L��>g��P<���?������ M��>g��P<�x?��� ��M0�>g8�P<@�(?P���p�>gx��;���i���M��>g��p<��hA��|m��@N��>g��p<�HA�C ��N0�>g8�p<@�(AP�@C`�Op�>gx��<��(>��hC��`O��>g���<���=���C��>g���<�j� ��O0�>g8��<@��=P�D`���h�`Dx��/�������������������D�����E������� �(E(�PE8�P>@��EX���`������E��8F�� >���������$����F��G���<�/���� �A�@��GH��GX�7`�O�x�����d���`H���H��@:��u����������pI��I� & ���8���@���`�8Jh��Jx��!���������������K���K�� ����������� ���(��L8�@��X���`�8���P����L�����m�����������hM���M��@������ ���@�NH�8NX��`���x����������N���N�����������������O�p< �8�8���@�O�`�Ph�@Px�p9��b�������z����P��XQ���3����������� ��R(�XS8�@*@���X���`������U���U�� (���������������V��W���f����� �#�@�0�H��WX�@`�J�x�����\���HX��xX��0���j��������Y�@Y��| ���8���@���`���h��Yx�{����������������;�!��5������< �!�(�5�@� PP���X��<`��=p�5i��������(�8��h���X��М0�xЛ���8���P���XК�x�8�x��Ȍ8�e������X���	��x	P��	H�8
 ��
���
��X@q�H�Zex����8
X��
Ȃ�
X~X0~��}�}xPy��x8H�����ȅX���ph�x ��Ȉ8��������XX�� ��x���P�8�p�@p��oX�o�`o�x���P�8@}�0u�huX}�p� �x��@�8�������Xȑ���8�xp���8h�� ����X �� ؓ!0�x!���!p�8" ��"��"��X#P��#��$�x$���$x�8%0��%�t�%htX&�s�&xs'�x'��'0s8(�r�(�r�(0rX)�v�)�v*�qx*�q�*hq8+`{�+�a�+�{X,�{�,�{-�ux-{�-�z8.�z�.xz�.PzX/(z�/z0�yx0�y�08{81���1(��1��X2h��2О3��x3`��30�84p��4��4@�X5���5��6��x6���6`�87 ��7؟�7�xX8@x�8x9P�x9 ��9�w8:hw�:�`�:0wX;Hv�;r`<vx<�u�<pv8=�`p= H�= �=�h�=�h>�h(>0Y@>�:X>p�p>p��>@��B�e�B�hXC�`�C\k�CDm�C	n�C1n�C��C�g�C�g�C���C=nD�nD�nD�nD�n D=n8D�nHD�SPD^pD�e�D�j�Dk0E
kpEk�E0k�EFk0FskpF�k�F�k�F&l0G3mpG�m�G%nH��0H�h8HoHH�>�H$oxI >�I�=�I���I�B8J@B�JB�J�AXK�>�K�>L�>xL`>�L�?8Mx?�M(?�MhAXNHA�N(AO(>xO�=�O�=8P�=�P���P���P���P���P���P�g�P���P���P���P��Q�gQ��Q�� Q��(Q HQ��PQ��XQ��`Q��hQ`h�Q�h�Q���Q���Q���Q ��Q���Q���Q���Q���Q��R�hR�R�� R��(R�HR�PR�XR��`R��hR`�R�h�R���R@0�R$�0S?�`S�pS��xS00�S���S��S ��S`��S���S��S ��S`��S���S��S �T`�T��T�T � T`�(T��0T�8T �@T��HT`�PT��XT�`T �hT`�pT��xT��T ��T`��T���T��T ��T`��T���T��T ��T`��T���T��T ��T`��T���T�U �U`�U��U� U�(U �0U`�8U��@U�HU �PU`�XU��`U�hU �pU`�xU���U��U ��U`��U���U��U ��U`��U���U��U ��U`��U���U��U ��U`��U��V�V �V`�V�� V�(V �0V`�8V��@V�HV �PV`�XV��`V�hV �pV`�xV���V��V ��V`��V���V��V ��V`��V@��V���V���V��V���V��V ��V`��V��W�W �W`�W�� W�(W �0W`�8W��@W�HW �PW`�XW��`W�hW �pW`�xW���W��W ��W`��W���W��W ��W`��W���W��W ��W`��W���W��W ��W`��W��X��X �X`�X�� X��(X �0X`�8X��@X��HX �PX`�XX��`X��hX �pX`�xX���X���X ��X`��X���X���X ��X`��X���X���X ��X`��X���X���X ��X`��X��Y��Y �Y`�Y�� Y��(Y �0Y`�8Y��@Y@�HY��PY �XY`�`Y��hY��pY �xY`��Y���Y���Y ��Y`��Y���Y���Y ��Y`��Y���Y���Y ��Y`��Y���Y���Y`��Y��Z �Z��Z��Z � Z`�(Z��0Z��8Z �@Z`�HZ��PZ��XZ �`Z`�hZ��pZ��xZ ��Z`��Z���Z���Z ��Z`��Z���Z���Z ��Z`��Z���Z���Z ��Z`��Z���Z���Z �[`�[��[��[ � [`�([��0[��8[ �@[`�H[��P[��X[ �`[`�h[��p[��x[ ��[`��[���[���[���[��[`��[@��[���[���[���[���[ ��[`��[���[���[ �\`�\��\��\ � \��(\`�0\��8\��@\ �H\`�P\��X\��`\ �h\ �p\`�x\���\���\ ��\`��\���\���\ ��\`��\���\���\ ��\`��\���\���\ ��\`��\��]��] �]`�]�� ]��(] �0]`�8]��@]��H]H�P]��X]�`]h�h]��p](�x]���]���]H��]���]��]h��]���](��]���]���]H��]���]��]h��]��](��]��^��^�^@�����_��Q��������������K����<8�
@�H�P�X�?`�Ch�Jp�Lx�S�����W��Z��d��p��v��w���������������������8�@�H�P�X�`�h�	p�x�
�������������������������� �!�"�#�$ �%(�&0�'8�(@�)H�*P�+X�,`�-h�.p�/x�0��1��2��3��4��5��6��7��8��9�:�;�=�>�@�A��B�D�E�F�G �H(�I0�M8�N@�OH�PP�RX�T`�Uh�Vp�Xx�Y��[��\��]��^��`��a��b��c��e�f�g�h�i�j�k��l�m�n�o�q �r(�s0�t8�u@�xH�yP�zX�{`�|h�}p�~x��������������������������������������������������� ��(��0��8��@��H��P��X��`��h��p��x���������������������������������������������������� ��(��0����H��H�A�H��t��H����5��%���h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h	��Q������h
��A������h��1������h��!������h
��������h��������h������h�������h��������h�������h�������h�������h�������h�������h��q������h��a������h��Q������h��A������h��1������h��!������h��������h��������h������h �������h!��������h"�������h#�������h$�������h%�������h&�������h'��q������h(��a������h)��Q������h*��A������h+��1������h,��!������h-��������h.��������h/������h0�������h1��������h2�������h3�������h4�������h5�������h6�������h7��q������h8��a������h9��Q������h:��A������h;��1������h<��!������h=��������h>��������h?������h@�������hA��������hB�������hC�������hD�������hE�������hF�������hG��q������hH��a������hI��Q������hJ��A������hK��1������hL��!������hM��������hN��������hO������hP�������hQ��������hR�������hS�������hT�������hU�������hV�������hW��q������hX��a������hY��Q������hZ��A������h[��1������h\��!������h]��������h^��������h_������h`�������ha��������hb�������hc�������hd�������he�������hf�������hg��q������hh��a������hi��Q������hj��A������hk��1������hl��!������hm��������hn��������ho������hp�������hq��������hr�������hs�������ht�������hu�������hv�������hw��q������hx��a������hy��Q������hz��A������h{��1������h|��!������h}��������h~��������h������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h�������h��������h���������h��������h��������h��������h��������h��������h���q������h���a������h���Q������h���A������h���1������h���!������h���������h���������h��������%E�D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%}�D���%u�D���%m�D���%e�D���%]�D���%U�D���%M�D���%E�D���%=�D���%5�D���%-�D���%%�D���%�D���%�D���%
�D���%�D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%}�D���%u�D���%m�D���%e�D���%]�D���%U�D���%M�D���%E�D���%=�D���%5�D���%-�D���%%�D���%�D���%�D���%
�D���%�D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%}�D���%u�D���%m�D���%e�D���%]�D���%U�D���%M�D���%E�D���%=�D���%5�D���%-�D���%%�D���%�D���%�D���%
�D���%�D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%}�D���%u�D���%m�D���%e�D���%]�D���%U�D���%M�D���%E�D���%=�D���%5�D���%-�D���%%�D���%�D���%�D���%
�D���%�D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%��D���%}�D���%u�D���%m�D���%e�D���%]�D���%U�D���%M�D���%E�D���%=�D���%5�D���%-�D���%%�D���%�D���%�D���%
�D���%�D���%��D���%��D�%�H�%f���H�uH�H��tH�JH�HH�RH��f.���H��H�H��tH�JH�HH�RH�H��H�H��tH�JH�HH�RH�H�	H�H��tH�JH�HH�RH�H�kH�H��tH�JH�HH�RH�H��H�H��tH�JH�HH�RH�H��H�H��tH�JH�HH�RH�H�H�H��tH�JH�HH�RH�H��H�H��tH�JH�HH�RH�H��H�H��tH�JH�HH�RH�H�7H�H��tH�JH�HH�RH�H�H�H��tH�JH�HH�RH�H�;H�H��tH�JH�HH�RH�H��H�H��tH�JH�HH�RH�H�?H�H��tH�JH�HH�RH�H�aH�H��tH�JH�HH�RH�H�CH�H��tH�JH�HH�RH��f.����H�=�
������H���H�>H�
H�HH�H����UH��H��AWAVL�5�AUA���ATI��S��H�=AH�����H��mH�5�H�==0����fD1�L������A�Dž�t����L���f���H��uQA���tsA��nt5A��suH�X��
1�H�8�y���A���@E��t���a������V����@H�Q�D���H��mH�81�����c����S���D��H���!1��q���1����e����H��&H�H�8���H��1�[A\A]A^A_]�f.���H�
�H�5�H�AH�QH��HD�H�xH�FH�0H�*
H�rH�PH�H�H�U
H�BH�H��H�PH�H�y
H�BH�H�kH�PH�H��
H�BH�H��
H�PH�H��H�BH�H�sH�PH�H�%H�BH�H��H�PH�H�	H�BH�H��H�PH�H�-H�BH�H�Q��UH�=tH�����H�=����H�=�����H�=
����H�=A���H�=u���H�=����H�=�]������1�I��^H��H���PTE1�1�H�=!����c��f.�H�=H��H9�tH���H��t	�����H�=�H�5�H)�H��H��?H��H�H�tH�m�H��t��fD�����=$u+UH�=Z�H��tH�=�����d�����#]������w������H�FH9G�����H�FH9G�����������U�+H��H��dH�%(H�E�1�H�}�H�}��CH�E�dH+%(u�����ff.�f�UH��AUATSH��dH�%(H�E�H��#H��tgH�x(t`H�@L�%��L9�tPH�H�P�H�U�L9�tcH�ÀL�m��+L���H�]�H���L9�tH�À��D�+L���H�E�dH+%(u$H��[A\A]]�f�H�}о+�b�����ff.�UH��AVA��AUI��ATS�>�OL�Gu2��tM�M��tm��D��L��L���E���[1�A\A]A^]�f.�H��I���tM�L��L�����I��H��t'�K��A�<$t�D��H��L���D���1�[A\A]A^]ø������f�U1�H��AWAVE1�AUATI��SH��H��H�H�5�#��H�CL��rA��A��u�H��[A\A]A^A_]�f�L�=�!L�-o#f�D��H�5H�=E#H�<#I�<�HE�H��L��L��1�A����A��t�H�CL��r�A��A��u�H��[A\A]A^A_]ÐUH��AWI��AVAUATA��SH�V#H����t!H�>#��t��H�G#H�8#HD�L�3M���0@A�F�H��L�L9���I�uL�������I��M��u�E1�A��H�
�L���D�E���D�E�H�I��E�F�H�=�	L��M����D��I��H��I�FH��[A\A]A^A_]��E�n�E�EA���AE�I��A9v�s��{���@D����I	EH��[A\A]A^A_]�ff.�����~h�B�1�H�t��@H�zH��H9�t0H�H�B8H��t�8nu�xou�xuڋ��t�H��H�z0H9�u�H��tH��H��@Y1��DH��H��@Y1��ff.�@��H��1Ҿ���ff.����H��1Ҿ��ff.����UI��H��H���H��`���H��h���L��p���L��x�����t )E�)M�)U�)]�)e�)m�)u�)}�dH�%(H��H���1��w(H�EH��0���H��8���L��H��P���H��@���Dž0���Dž4���0�}�H��H���dH+%(u����@UH��AVI��� AUI��H�=fATS����L�(I��L�p�X�������=�������H�=��(���I���I�D$I��$H�
I��$H�I���I���H�H��u L����[L��A\A]A^]��I�L$M�M1�H��M�EH�53/H�=Ty�O����DH�=��(�'�I���I�D$I��$H�
I��$H�I���I���H�oH���Y���I�L$M�M1�H��M�EH�5�.H�=�x�����+���H�=��0��I���I�D$I��$H�
I��$H�I���I���H��H������I�L$M�M1�H���M�EH�5�.H�=�w�@������I���H��H����H�
��I�T$DI�D$pI��$��H��H�@H�H�@H��H9�u�A�D$@�;���H�=��(��I���I�D$I��$H�
I��$H�I���I���H��H�����I�L$M�M1�H�
�M�EH�5�,H�=�w�S������fDI�L$M�M1�H�օM�EH�5�,H�=dw�������f.���UH��ATH��L�g0M��tYA�|$uaI��$�t>I�L$H���H�5�-1�H�=Jq����L��L�e�H��-ɾ�l@L�e���f�1�H�=�q1���1�H�=Gq1����UH��H��AVAUA��ATSH����u#H��tE1�H�x8t[L��A\A]A^]��H�@L�5ݻL9�tOH�L�`�L9�H�B��HD�1��"DH��t*H���I��H�Q�L9�HD�H��I;$u�E;l$t�H��u�H�=����I��H�D�hH�'I��$�H�HH�1I��$�H�H�PI��$�H�@ I��$�I��$�I��$�I��$�I��$�I��$�IDŽ$�IDŽ$�IDŽ$�IDŽ$�I��$�H�P0M��$�M��$�H�JM��$�M��$�IDŽ$�A�D$xH��u
��H�H0H�x(L��I�T$H������H�-�H��u*A��uH�L�`8L��#��[L��A\A]A^]�M�D$H�
�A��tw3E��H�
H�}HE�H�9�H�5r+1�H�=Ig�D����A��H�
\H��HE���f.�U��L�B�|
(H��H��t<�H��H�5A+H�=2�9�HF�H��1�L������1�]�f.�H��t{�~���FL�F�D
(H�
-�H�	��u
1�]�fD�H�2L�BH�=E�9�H���HG�H�
Q�L�NH�5.+H��1��[���1���H�=��1���f�H�
��H�	��u�����]���H�2L�BH�=
�9�H��HG�H�
�L�NH�5n*H��1����볐UH��AWAVL�}�AUA��ATI��E��SH��H����H���L��@���D��L���dH�%(H�U�H�L��H�D��,��L�e�H�S��H���D��L���D�m�L��@���H�U��u�D�e�M��tL�M�L��P���L�����L��p���Džh���H���H��uNH�L���s�L��1�E��L���H�;H����H�U�dH+%(uBH�Ę[A\A]A^A_]��H�E��H���H�5�)H�=u�H�H1��������UH��AWAVAUATSH��H����L�����H���dH�%(H�U�1�H�?��I��M��L�}�E��E����L����I�VH�]���L�����H���H�U�A�ԉE��]��U�M��tL�m�L��P���L����L��p���Džh���H�p�H����L�=KI�I��PYE��tk����I�H���H+CHHi�@BH��H+CPH���H;��vH���H���H���H;��sH���H���H������	H��H+�Hi�@BH�H+�H�� H;�(vH��(H;�0rnH��@L��H�A�H��8H�1�H��H��8�L�H�;E1�L��L���1�H����H�U�dH+%(��H�Ę[A\A]A^A_]�DH��0��H� �?���H�5�L�O0H��M��H�eH�=n�H�E�H�E�
�)�����@H��1��B�I����f.�I�H�ցH�5�'H�=X�H�H1��
��&����H���1����I��PY�"���fD1�H�=W�1��@���ff.�U��H��AWAVI��AUATSH��D��<���H�UdH�%(H�M�1�H�?�3L�m�E��H��A��L��H��0�����8������E��L�u�H�K��8���A��A��D�}�A��H��0���H�M��E�D��D	����E���<����E�H��tH�U�L��P���L����L��p���Džh���
H�l�H���^H�{ t��<�����D����E����H�$H��xY�	H�H���H+CHHi�@BH��H+CPH���H;��vH���H���H���H;��rIL����H�;E1�L��L��1�H����H�U�dH+%(��H�Ĩ[A\A]A^A_]�f�H���H���H����f�H�5�L�K0H��L��@���H�tbH�=�~HDž@���HDžH���
��H�H��xY�����H�1�H����������H�H��~H�5'%H�=�}H�H1��]��z����1�H�=�}1�����{�ff.�UH��AWAVA��AUATSH��dH�%(H�M�1�H�?�`L�}�H����<���M��L��H��0���M���n��H�K��<���A��H��0����E�H�M��u�H�U�L�m�M��tL�e�L��P���L���/�L��p���Džh���H��H����H�{tE��t]M��tI�}(xQ�H�L�����E1�L��1�L���H�;H�����H�U�dH+%(��H�Ĩ[A\A]A^A_]�fDH�5L�K8H��L��@���H�t`H�=�|HDž@���HDžH���
���m���DH�H�}H�5�#H�=p{H�H1����'���1�H�=�{1�������ff.�UH��AWI��1�AVA��AUI��� ATE��S�Ӻ��H��(L�M�H�
ϯdH�%(H�E�1�����f�H�u�H�}�@I�W�@� H�P�UH�E��Pf�D��D�pE����L�hD���u�����H�V�H��tDH�U�1�H��t�B�H��I�7M�GM��PH�x{H�=!y1�AVH�NH�5b#S��H�� H�U�1�H��t�J�I�A��E1��H�8�$��A��H�E�H��t
H�x�H�p����H�E�dH+%(uPH�e�D��[A\A]A^A_]�f.�AVA��I�H��zSM�GM��H�5Z"H�HH�=�x1����XZ��'��UH��AWI��AVA�ֺAUI��1�ATSH�� H��H�
P�dH�%(H�E�1��,��f�@I�U�@� H�PH�E�H�Xf�8D�pM��t E��H�}�1�L��D�����A���H���H��uhH�U�1�H��t�J�I�EE1�E1��H�8����A��H�E�H��t
H�x�H�p��J��H�E�dH+%(��H�e�D��[A\A]A^A_]�DH�U�1�H��t�B�H��I�uM�EI��PH�[y1�H�=�vH�NH�5O"��XZ�S���H��I�EM�EI��AVH�5�!H�yH�HH�=�v1��W�Y^�@������ff.���UH�D
H��AVAUATA��SH�ȬH9�tVH�H������H9�H�������HD��@H��H������L�E; �H��tH��HH9�u�L�E; �H�=~��P���E�� L��L�pI�ź1�� L���:��I�](I�E(D��H��I�E8H��A�dI�E0I��HH�=\A��H�
A�E@I��HH�
ȋH�H��ZH�?H�WPAUhH�0���H�� I�EH�|�H���I�U��.IDž0����IDž�����H��uM�EH�e�L��[A\A]A^]�L��H��tH�5� 1�H�=Zi��M�E��ff.�@��UH�H��tH�5� H�OL�GH�=[iH��L�HH��LD�H��1��?��:��f.���UH��AUATA��SH��H�UH�5��H9�tFH�H�H�H9�H�B��HD��H��H�B�H�D;"�5H��tH�PHH9�u�H�D9 �H�=���P���E�� L��
�@L�hH�ú� L��1��1��H�CHH��D��C8H��
A��A��H�=�
H�
H�KHH�
�H�H�psH��
H�y
PShH�s
H�C@���H�� H�H���H���H���.H��uH�H�e�[A\A]]�DL��1�H�<wH�5]H�=�y��H�H�e�[A\A]]�1�H�=z1�����UH��AWAVAUATSH��(H������dH�%(H�E�1�H���=I��I��H��M��H�Z�H���tM����H�<�H����I�GL��L��L��H�PH��I�GE1��t/H�E�dH+%(��H��(D��[A\A]A^A_]��L���(��H����M��I��H������L������L������I��I�EH���dH�xH�Y�L��1�L�����H���H��uvM��L��L��L��H���������:M�mM��u�L������E1�H�@�H���#���L��H�xH�591�H�=H�D��������D��������L��H��wH�511�H�=V�����f���@H��1�H��wH�5�H�=���M���m���H������L��H�8�n��I��H���O���A������x����I�H������1�����H�BwH�5CH��H�=A�1��:�����D1�H�=�1����1�H�=�����f�L������A�������<��ff.����H�5SH�=��1�������H��I��1��H��H��L���H�H��5���H��f���H��H�H�P`H�@pH�PhH�P`�f���UH�=LH������H�=H�2���]H�����UH�����H�tH��t4H�x(H��t+H�5g��b��H�SH�x(�"��H�CH�@(]��H����UH��ATSH��H����I��H���H��u\A�|$�Ct ����1�H�=��1��������u�H�{H��t���I�|$�t��H�C1�[A\]�f���H�
�H�=��9�HG‹�9�L��HG�H�5�1�L��H� uL�����W���I�t$H�{����[1�A\]�fD������x������f���UH��SH��H�H�H�@HH�@H�8H��t�T��H�]��H�8� ��I��H�H�]�H�@HH�@L���f���UH��SH��H�=���H�@H����H�H��H�P��H�:�H�8H����H�=����v���H�*����H��H�H�����H�8�[��H�TH��H�&H�C@H�{H�CHH�PH�CPH�]�1��O�5��1�H�=j�1�����1�H�=�1���������t��t"��t1��f.�H�GH�H�G@�H�GP�ff.���H��t�G�f�1��ff.�f���H��t�G��tH9w����U1�H�=F�1�H���,��ff.����H��t��u
�G1�H�wÐU1�H�=ƀ1�H������ff.����UH��SH��H��t^�H��t
�CH�]�����L�GH�5�H�=/�9�HG�H��H��H�r1����CH�]���fD1�H�=�1��`��UH��AVA��AUI��ATI��SB�|2(L��t1C�D4(L���S���H�<�H��uJ[A\A]A^]�f��H�t�H�5H�=oA9�IF�H��I�T$1��o��D�I�$M�D$H�59�H�=�nHG�H��L�JH�$nH��[1�A\A]A^]�!����UH��AUI��ATH�u�E1�H��dH�%(H�E�1������tH�E�dH+%(u9H��D��A\A]]�f�H�M�L��H�5Tq�H��H�}�1�1�A��������������1�H��t�tH�G�f.��ff.�@��H��t�L�GtM�L���2��f�1��ff.�f���UH��AUATSH��dH�%(H�E�1�H����H��H��I�������{I����H�{L������I��H����M��t=I��H��t1L�����L��L��Ѐ{tsH�CH�8L�����H��H��t����L������1�H�U�dH+%(uKH��[A\A]]��H�CL��H�8�A��I��H���t�����fDH�{뎸������v��fD��UH��AUATSH��HdH�%(H�E�1�H����H�ОI����L�M�A��
�H�E�H�8I�����H�}����(�S���E�H�E�A�$�E���u@H�}�L������L�m�L���(��1�H�U�dH+%(� H��H[A\A]]��H�y�H�����}�A�D$t��u[1�H�=�y1������u�L�m�I�|$1�L���!�����y�����H��mH�5Q1�H�=@y����V���fDL�m�I�|$�L�������D�E�A�$1�H�omH�5]�H�=qy����L����H��t�V��1�L��H�ZmH�5�H�=|y�w�����������������������ff.���UH��AWAVAUATI��SH��dH�%(H�E�1�H���)L������H��A��I��L��L�����L������H����H���H������������I�<$H�t����H�xH��u�f�I��H� H�u�f�L��I��L��L��L�����M�M��u�H�U�dH+%(uzH��[A\A]A^A_]�f�I�D��8/�V�����N���f.�I��L��1�L��L�����D��H��kH�5w1�H�=�v�������������w����%��D��Uf�H��AWI��AVH�����AUI�͹~ATI��SH��(dH�%(H�E�1�)������H�H����H��E��H������H��t+H�ߺ�.��H���V��H��tH�D��8/��M��t[H������L������D��H��L��H���������H������1�1��G��H�E�dH+%(u|H��([A\A]A^A_]�fDH������H������1�����D��H��L��H�������V��H������H�5��1�L������@��P���H�51L�������u����������UH��ATI��SH��tm��H��H�5*�9�HG�H�/�H��1����H��L��1�H�5
�����{H��[H��L��A\]HD�H�5��1��U��D[H�5�A\1�]�>��ff.���UH�5�1�H��ATI��H�����H�Z�L��H�p@�.���H�G�L��H�pH����H�4�L��L�e�H�pP�������UH��AWAVAUATSH��H�uȅ���B�H��L�=c�E1�L�d���M�uH��L9�t-L�+I�}8H��t�L�������u�A�E��t�H��M�u0L9�u�M����A�>a��L�=��1�I�<ߺ L���)����tH��H��u��Nf�H�)�H���ty��u,H�rPH��t(H�}ȉE������E�H��[A\A]A^A_]�D��tKH�}�L��H�5-1��������H�}��o���H��1�[A\A]A^A_]�fDH�rH�f�H�r@�������H�-���w
H�����H���f���UH��AWAVL��p���L�u�AUI��ATI��L��S����H��hdH�%(H�E�1����L���]�L�m������E�L�}�H�-�H��uCL���+��I�<$E1�L��L��1�H���0��H�U�dH+%(u7H��h[A\A]A^A_]�f�I�L$M��1�H�OfH�5 H�=1q�,����e��D��UH��AWI��AVI��AUE��ATI��SH��H��dH�%(H�E�1�H�E�H��H��X����W��L�u�L��`���A��L��L�e�L�}��U�����H��X���Džx���H�E�H�)�H��t8E��H���H�KM��L�
��H�`eLD�H�5�H�=p1��W��L������H�;E1�L��L���1�H�����H�U�dH+%(uH�Ĉ[A\A]A^A_]��O��ff.�@��UH��AVAUL�u�L�m�ATI��SH��L��H��PdH�%(H�E�1����L��L�e������E�L�u�H�:�H��u@L���8��H�;E1�L��L��1�H���>��H�U�dH+%(u4H��P[A\A]A^]�f�H�KM��H�"d1�H�5�
H�=�n�=����v��fD��UH��AWAVAUATSH��L�g0M���~L�-w�I�E���I��$�H���g�C@����wy���AH�:�H��xY��A�|$�1M��$�1�L�=��M���I�FhH���9H��H��u�I�E��`H��[A\A]A^A_]��u�H���H��xY��I�|$@t
I�|$@�u��1�1�H��L��[A\A]A^A_]���I��$�L�
�H��t%�@@L�
?���twC��L�
�H��LD�I�L$M�$1�H�m[H�5vH�=�E������D��L�
��H���LD��f�H��L��[A\A]A^A_]��f.�H��1�H��P�^�������f�I�t$I�<ߺ�=����������H�.���@H���H��xY��A�|$��E1�L�56��C<�����H�ChL��rf�I��I���b���H�ChL��s�O�<�M���K���I�t$L��������6H��H���A�g��1�H�=�D1���1�H�=7D1����H��1�H��0�^���A�|$uI��$�H���E���1�H�=�C1�襽��DH��1�H�� �����\���f�I��$�L�
�H��t%�@@L�
7���twK��L�
�H��LD�I�L$M�$1�H��[H�@YA\H�5�
A]H�=�BA^A_]���@��L�
��H���LD��f�1�H�=�B1����H��
��.���ff.�@��H��w4��H�{�H��H��t"1�H��t�N�H�8E1�E1���տ��D������f.����G8����UH��ATSL�'M����A�D$8������H��A�D$8tH�[A\]�H���H�J�H9�tI�t$HH9�u�O�H9�tSH��H�H9�u�I�|$t�I�|$���I�<$�M���H�=��L��螿��H�[A\]�H�
{�I�D$HH�-{�H�I9T$HtI�D$HI�|$u��fDH�
I����1�H�=/d1��X������UH��AWAVAUATSH��H�$H��8L�5��H����dH�%(H�E�1�M����H����H��H���H���H��H���H���H���H���5HDž��L�-
]DH��������D�`�M��u�HI�6�D��I�����I�>t.H��t�I�L��H�5�1�H�=fa������H����H�b\L�=�L�4�M��u�H�I�6�D��I�����I�>t&H��t�I�L��L��H�=�`1��u����H����H�Z`L�=�L�4�M��u�@I�6�D��I���,��I�>t&H��t�I�L��L��H�=�_1������H������H����H�4aL�<�M��tSL�5�L�%�`�I�7����1�I�����I�?t&H��t�I�L��L��L��1�������H����H�J`L�4�H��H�����>���fDH��t-H���1�H��t�H�H�[H�5�1�H�=�^�9��H��t-H���1�H��t�H�H��ZH�5�1�H�=G^���H��t-H�Q�1�H��t�H�H��ZH�5�1�H�=�]����H��t-H��1�H��t�H�H�yZH�5�1�H�=Y]���L�
��L�����1�L�����L������H�
/�I��H����L�]L��H�=���ϼ����uPH�E�dH+%(u`H��8[A\A]A^A_]�H��YH�5�1�H�=�_������1�H�=�_�[���H�=�_H�5�1�������l����������1���w
��H���H������UH��AWAVAUATE1�SH��H���L�5"�L9�tMH�X�H�I��L9�H�P�LE�E1��I�T$HL��H�B�L9�ID�I��H�{� L��職����tM��u�H��L��[A\A]A^A_]�fDI����ff.���H�5�H�5��A��H9�tFH�H�R�H9�tB@��.H�H��HH�H9�t@H�B�D��.H�PHH�H9�u�@��.Ð��@��.���UH��AWAVAUATSH��H�����+��L�����LD��M��H���H����H�CM��E1�H�E�M��tkDA�D$�H��L�I9�sU�M�}H�}ȅ�u)�~fDA�I�w��tl9�u%H��I��H�x���tW��[uھ]���H��u�I��M��u�H�K�H��t1�I��rq����u�H��L��[A\A]A^A_]��MuI���E1���LD��M������H��H��VH�5��1�H�=X�I������L�%�����L�=aVL�%jL�-�WH���H��t
�DI��r����u��T���DH�����L��L��H��L��1������ϐ��UH��AWAVAUATSH��(H�}�H�u�dH�%(H�E�1�H�@�E���H�E�H�u�L�5�UH��@H�H���H�L�(M���L��H�CH��t
f�8��1�1�1�H���r���I��H�E�D�xA���uH���H��t)H���D��M��H�5pH�=�WH��L��1�����1�L���Y���L��H�n�H����t&H�g�D��H�5�H�=�VH��L��1����L���p���I9�t4H�CH����I�MH�S�@H�@H����H��H�RH9�u�M�mM����H�E�dH+%(��H��([A\A]A^A_]���t&H���D��H�5�H�=QVH��L��1����H�E�H�U�H��1�H�8�n���L��趴��H���>���H���5���H���j���D�@�n�����@1�H�=oV1�����1�H�=�V�
����շ��D��U1�H�5�H��AWAVAUATI��SH��躶��H���H;��L�h�H�H;�L�=��L�5��L�@��IE�H���#�H�SH1�H;��I��H�B�HD�H��I�UL��L��1��D���I�EL��L��1��1���A�UL��1�H�5������A�U8L��1�H�5������I�EH�5��L��H���1����I�EH�5��L��H���1��ϵ��I�EH�5��L��H���1�賵��I�EH�5��L��H���1�藵��H���������H��L��H�5��[1�A\A]A^A_]�i���f���UH��H���p���1�]�ff.����UH�L�1�H��ATSH��H��t�P�H�5�H��1�����L�%)�L���)@�P�H��H�I9�sL��H��I������H���H��u�H���1�H��t�P�H�5�H��1�贴��L�%��L���-��P�H��H�I9�sL��H��I���b���H���H��u�H��1�H��t�P�H�5fH��1��T���L�%]�L���-��P�H��H�I9�sL��H��I������H�+�H��u�H��1�H��t�P�H�5>H��1���L�%��L���-��P�H��H�I9�sL��H��I��袿��H���H��u�[A\]Ð��UH��H���`���1�]�ff.����UH��AWI��1�AVAUATI��L��SH��(����L��H��H�E��w����L��I��H�E��c���L	�L��I��H�E��L���I��L��L��M	�H�E�H�52�1�I	�1�M������I��r ����u�H�e�[A\A]A^A_]�f�L��L�=F�M��I��H�U���H�=�A��H�E�H��L�M�L��H��L�E�N��L��H���I��RI���L�҉�A��A��1�����H�h�J��XYH��t'H�5��L��1��\����f.�I���v�������u�H�e�[A\A]A^A_]�ff.�@��H���H�5f�A��H9�tVH�H������H9�tO@��.H�H-HH�H9�t$�H������D��.H��HH�H9�u�@��.���@��.���UH������E1�H��tL�@L��]�f���H���1�H��tH�z8���D��UH��AWAVAUATSH��H��9H���L�%��I��L9��L������H�I��H������L9�HE�H�E�f�I�E(L9�tXH�H�H�L9���H��@��H�K@H�A�L9�HD�H��H��H�AI�}E1�E1�L��L���I�G����H��u�H�}�tzH�E�H��HL9�tH-HL�m�H�E��u���DH�E�H�@(L9�tEH�L�m�H�H�H�E�L9��`���H�@�I�}E1�E1�L��L���I�G蕮��H�}�u�I�GH��[A\A]A^A_]�1�H�=�>1���������G@����UH��ATSL�'M����A�D$@������H��A�D$@tH�[A\]�H�Y�H��~H9�t%I��$HH9�u
�:fDH9�t;H��H�H9�u�I�<$���H�=��L���P���H�[A\]�H�
��DI��$HH�-��H�I9�$HtIDŽ$H�DH�
�����1�H�=�=1��������UH��AUATH��H�$H��dH�%(H�E�1�H�=e���H��}I��H�=m�H�=F�H�S�H�<�H�5�H�6���H���H�5J���H�=ü��L�������L�
}�L��H�	�L���1���y���L�
B�L��L��H�
u��L�iNH�=�}�2�����u>H�E�dH+%(uNH��A\A]]�f�1�H�=7<���f�1�H�=�;1��Ш��H�=�;H�5J�1��K��������|���ff.����UH��f�H��AWAVM��AUATA��SH��hD�MH�=+�D��|���dH�%(H�U�1�H�E�)E�)E�)E�)E�H����H��H�u�H�E�I��E��薮��H��H��tnH�H H9�uEH�E�dH+%(D��|���ur1�E��M��L����H��hD��E��[A\A]A^A_]�����I��H�VEH�5o�1�H�=�9�A����H�E�dH+%(uH��h�����[A\A]A^A_]��X������UH��f�H��AWAVM��AUA��ATA��SH��hD�EH�UH�=�D��t���H��x���dH�%(H�M�1�H�E�)E�)E�)E�)E�H��tbH��H�u�H�E�E���o���H��H��tGH9X uAH�E�dH+%(H��x���D��t���uGH�UH��hE��L��[D��D��A\A]A^A_]���H�E�dH+%(uH��h�����[A\A]A^A_]��X������UH��f�H��AWAVM��AUATA��SH��hL�MH�=�L��x���dH�%(H�U�1�H�E�)E�)E�)E�)E�H��t`H��H�u�H�E�I��E���z���H��H��tBH9Xu<H�E�dH+%(L��x���uI1�E��M��L����H��hD��[A\A]A^A_]�"��f�H�E�dH+%(uH��h�����[A\A]A^A_]��h����UH��AVAUATSH��H����L�sI��I��L���c���Hc�sH�C H��xH�C(H�������uIc�$ H�C0H�0�H����A�M���e�G�A���wH��@H�5��1�H�=�)�{���I��$H������~ML�kPE1�DJ���H��t����JDŽ�I�}H��t
���I�EI��I��(D9#�H�S8H�{@f�1�H��H��CH��xH)�C��@C(���H�C8Hǃp�H�H����xH��FF F0Hǃ�Hǃ�)�������H�H��H���H�H��(H��H9�u�H�e�[A\A]A^]��A�����������I�EH��I�MM��A�$E1�H�pH�8j����ZY�������I�EM�MH�c?H�5��H�=u(H�HL�1�����g���f�H�K L�C01�H�/?H�5@�H�=�(輶��A�M���
����j���f.���H����H�F���UH��AWAVAUATI��SH���y��L�yM���M��H�}�H�u�IcEH��H��I�|8M���L����H�}��"���L��H�CP����H�}�ǃ�d�3���L�sXH���A�EA�� H�T�H��u:A�}tcH��[A\A]A^A_]�@��1�H�=�&1������A�� L���1�H��=L�CPH�5��H�=�%�r����H��L��L��[A\A]A^A_]�7����1�H�=&1�谡����UH���H��H��dH�%(H�E�1�H�����H���H�H�n�H��t1H�x(H��t(H������̧��H��tH�H�U�dH+%(u	��1����������Uf�H��H��PdH�%(H�E�1�H���H�E�)E�)E�)E�)E�H��t&H�}�H�u�H���M���H��tH�H��H��HE�H�U�dH+%(u��聦�����Uf�H��H��PdH�%(H�E�1�H�B�H�E�)E�)E�)E�)E�H��t#H�}�H�u�H���ͦ��H��tH�H�PHH��HE�H�U�dH+%(u������@��UH��AWI��AVAUATSH��H@������H�5M�dH�%(H�E�1��Ӥ��H���H;t��H������H�H;tƅ����H������H�������HE�H������f�H������H�5��L��1�H�S�d���H�H�5��L���1��N�����������1�H�5��L���0���H������H�@(H;vs�L�p�H�H;bsM��L�`��LD�H���H�X �L��H�5|�L��1��ԣ��I�UL��1�H�5y�I��(軣��I�U�L��1�H�5|�覣��H�5��L��1�蕣��L�5�A�}uGI��I��I9�u쀽����tQM��tbI�T$@H;�rM��H�B��HD�I���`����I�H�57�L��1��,���ƅ�����1�H�5&�L������M��u�H������H�5�L��1��S8���H�H�5�L��H���1��Ԣ��H�H�5�L��H���1�蹢��H�H�5�L��H���1�螢��H�H�5�L��H���1�胢��H������H����H��HH;�qH������H�������HD�H����������H�[�H��xY���L������1�H�5��L��I��@����H��xY�����I��@�iL������1�H�5
�L��I����ա��I��������H��xY�2H������H�5\�L��H���1�蛡��H��xY��H������H�5��L��H���1��o���H��xY��L������H�5��L��1�I����C���I���H�5��1�L���+���I���1�L��H�5������H��xY����H�5A�L��L�e�1���H������L������H��0���L��L�5��H�AHH��0���HiAP�H��8���賢��L��L��L�����H���2�I�<L��8���L�k�H��H������H)�1�L�����迢��L��L��1�H�5���K���H������H�� ���L��H�AXH�� ���HiA`�H��(�������L��L��L���(���H����L��(���H��I�<L���H)�H�����1���3���L��L��1�H�5��L��@���踟��H������H�����L��H�AhH�����HiAp�H�����舡��L��L��L��蕢��H���L�����H��I�<L�B�H)�H�����1��蠡��L��L��1�H�5!�L�������%���H������H�����L��H�AxH�����Hi���H�������L��L��L�����H���qL�����H��I�<L���H)�H�����1���
���L��L��1�H�5��L������菞��H������H���L��H���H���Hi���H�������Y���L��L��L���f���H����L������H��I�<L��H)�H�����1���q���L��L��1�H�5:�L��������H������H����L��H���H����Hi���H�������L��L��L���͠��H���?L����H��I�<L�z�H)�H�����1���؟��L��L��1�H�5��L��@����]���H������H�����L��H���H�����Hi���H������'���L��L��L���4���H����L�����H��I�<L���H)�H������1��?���L��L��1�H�5G��˜�����H�E�dH+%(�_�}�H��HL��1�[H�5��A\A]A^A_]鋜��L������L��1�L�e�H�5��L��@���I��(�a���I��0H�5��1�L���I���I��8H�5��1�L���1���H�5��L��1�� ���I��H������L��H������Ii��L�5��H��������L��L��L�����H���iA�I�<L�����L���L��H������H)�1����L��L��1�H�5��舛��H������H������H��H������Hi��H������H��H������H�������D���L��L��H�������M���H����L������L��I�<L���H)�H������1��X���1�L��L��H�5�����H��xY������f�H������H�5��L��H���1�豚������H������H�5��L��H���1�荚���&���H������H�5�L��H���1��i������1�H�=K&1��t����?���ff.�@��UH��AWAVAUATSH��H�uȅ�~{�B�H��L�5��E1�L�d��@M�}H��I9�t-L�+I�}8H��t�L�������u�A�E��t�H��M�}0I9�u�1�M��@��H�}���H��1�[A\A]A^A_]�1���@��H���H�@�pY�ff.�f���H�5�L��hL9���H������H�L������L9��LD��H�Q(f�Hǁ@��� �0L9�tVH�2L��L�IPH�V�L9�H�qHHD��	DH��@L��H��H�H��I�B�H)�������H�H��t	H�R@L9�u�M��t!I��HH������L9�L��HD�I���Q�����ff.�@��UH��H����1�]�ff.����U1�H��ATI��H��踚����tL�e���fDL��耔����t�觘���8�@���L��L�e�H�5���H��H�=w#1�鰦����U�HH��AVAUL��P���L�u�ATSH��H�=�dH�%(H�E�1��_���1�L��I��蒒��H��`���L��I�\$(螙��L��L��蓙��L��H��H�[�蜚��H����L��X����H�<H�����H)ƺ1�L�6�I�\$蠙��L��L���5���L��H��H����>���H���tL��X����H�<L���H)�H������1��G���H���1�S�I�|$F�L�
�eL�p�����H���XZH�H�yp
tFL�A`H�y`M�$M�`I�|$H�ApL�a`H�E�dH+%(��H�e�L��[A\A]A^]�DL�A`H�y`I9���M����I�1�L��H9�HD�E1��f�H����H�0I��H9�t\H��H��H��u�M���j���I�}F���I�MI�UL��H�H�=�H�H�JH�hpI�EI�E�ɔ��H������I��M�������f�1�H�=� 1����1�H�=� 1�谐��1�1��P���I���w����j���f.���UH��ATI��H���Z���L��H�xF����L�e���$�@��UH��AUI��ATS��H��������uIA�Ą�tA�}tH��D��[A\A]]�D���L��H�xF����ʫH��D��[A\A]]�@A��������U@��H�=�����
H���c���]H�w��fD��UH�5X�1�H��AWAVI��AUATSH���z���H�5�L��1��i���L�%��I�$H�P`H��`H9�t\H��tWH�H9�t^E1�L�-���H�H��`1�H9�H��HD�H��H�JL�B(L��D��L��1�A�����I�$H��u�H��[A\A]A^A_]�H��H�JL�B(L��[1�A\1�A]H�5��A^A_]齓��ff.�f���UH��AVAUATSH���H�H�r`H�J`H��tlH9�tgH�H9�twL�%��I��E1��fDI�H�J`L��H9�L��HE�I��H�NL��H�H�HH�jpH�H�F�*���H�M��u�H�J`f�H�A[A\A]A^]�H�NH�=+�H�H�HH�jpH�H�F�ۑ��H��fD��UH��AWI��AVAUATSH��HH�?�w[�GH�
�#H��Hc�H�>���H��H�kH�L9���HdžH�E�H���I�?H�=�H�E��)�ϤI�7H�}��3���I�H��H[A\A]A^A_]�DH�1�H�E�H���oI�H�0H�@H�x(H����5���I�H�=K�H�@H�p �ΐ��I�H�=�H�@H�@ H�0谐��I�H�=��H�pH�薐��I�H�@H�L�-�`I�7L9�����H��H��H9�u�����H9�����H��H�L9�u�H�E�H�����I�L�CH�\)H�5=�H�=�H�H1��ß�����fDL�gfA��$t<1�fDH��H��H�H��I��H��t�P���A��$H��9��I�?H�գH�H�E�H�ÈH����I�H�=?�H�p膏��I�H�@���fDH�G1ۋ���~$Hc�H�|�H��t�΍��I�H�B��9��H�U�H�H�E�H�àH���YI�H�pL��M��t!H�=��L�����I�H�pHdžH�~H��t����I�H�pH�=9��Ď��I�H�@�)���@H�ɢH�E�H���wI�H�0H�@H�x H����͌��I�H�=��H�@H�0�g���I�H�=��H�pH��M���I�H�@���DH�Q�H�E�H����I�7�F@H�u�H��H�vX����H���E�H��H�E���H�CXI�?H�E�L�-/^L�}�H�H�M�H���H�E���H�@�M�H�D�pH�u�L9���L���_��H�M��H���_��L9�HD�H�E�H����@I�H���d�x�ZA�vH���H�vH��H�DpL9�t)I��(�H9�u��@H9���H��H�L9�u�I�~t	I�~����E1�I���M��0<t'I�<$H��t
�b���I�$I��I��(M;��rپfL���L�H�=�L��譌��H����H��(�1�I��H���_��L9�HD�H��H�E�H������I�H�{%H�5��H�=�H�H1���������H�Tp�I��(�H�vH��H���H�
M9�(�tIdž(����DH�Px��f�1�H�=�1�����H�S�s����H�u�H�M�f�U�H�vH�D�pH�@H�E�H���HDŽ��H���L��H�E�H�8M��t�}�tH�E��u�H�@hH���H�E�H�E�H�������L�}������I�H�5^�H�=�H�H�H1�L�BH�[$�֚�������I�H�5��H�=?H�H�H1�L�BH�+$覚���Z����I�H�5��H�=�H�H�H1�L�BH��#�v����(����I�H�5.�H�=H�H�H1�L�BH��#�F����x����I�H�5n�H�=oH�H�H1�L�BH��#�����b���H��xH���u,A�PH�IhH������H�pL��1�����H�E�H�8���1�H�=�1��5���D��UH��H�� dH�%(H�E�1�H�=�H�E�H�E�
��L�x�M��t{H�����vE����L�O@A�XL��H�@���H�=	�T���H�E�dH+%(�������uSL�O L�E�L��H����H�=J�Չ���1�H�=�1��`���L�O(L�E�L��H�NH�=�袉���L�OL�E�L��H��H�=7肉���i���1�H�=$1��
����؊�����UH��AWAVAUATSH��HdH�%(H�E�H�G0H�E�H���L�=ƜI����H�E�H���H;�X��H����H�H;�X�E�H�����HEуxH�U��;L�hM�eM���"H�E�I��H�E�H����A������H�E�1�H�p8L��xH�u�L��M��I��H�ÐD�m�I����H�E�H���H�H��(H��H9�u�K�T�L�E�L��H�
��A�>���������I����H�E�H�}�L��I���@���E9��v���H�}�����E��E�=��~H�M�H���qH��H;�WH�����HD�H�ȃxH�U�����1�H�=v1������K�L�H��H�5��1�H�=L臖����f�H�E�O�D�H�pH�5��H�=��1��Y�������M��I��uYH�E�H��E1�A�H�=��H�HH�E�H�pWA�UH�8���XZ���H�=��8���H�E�I������Lcu�H��H�5�1�H�=SK�L��ɕ���1�H�=>1��'���H�E�H��H�5M�H�=�H���L�L�@1�艕���<����E�H�E�H���u,H�E�dH+%(uyH�e�[A\A]A^A_]�1�H�=�賁��I��u+H�E�dH+%(uCH�}�H�eؾ[A\A]A^A_]�N����M�A��1�H�H�5U�H�=������"���f���UH��SH��H�=3���H�=��u{H�\UH�GH�(H�=�H�5��H��H�G H�WH�GtH�{8u1H�]�1���f�H�̺H�5����H�=;����F���H�C(��1�H�=�1�谀��1�H�=71�蠀����U�H��ATSL���H��H��H�L��dH�%(H�E�1��H�H�X�H��t8H�x(H��t/L��H������賆��H���H��t�+L��蚗H�H�E�dH+%(uH��[A\]��Ӆ��UH��AVAUI��ATSL�'I�<$��L�5ݲI�H�pHH�x@荮��I�|$ �QI�|$�5�I��{���t ����������I��{���u�H�pHH��t�A�|(����u�I�<$H��SH�G(H9�t)I�t$@H9�u�fDH9���H��H�H9�u�@��L�����H�=˳L���ۅ��H�=��L���܂��[A\I�EA]A^]�H�p@�^����H�pPH���b���A�|$+�V���L���W����D���H�O(fDI�D$@H�o8H�I9T$@tDI�D$@�Z���fDI�|$��������I�|$ ����I�|$��������H�O0I�D$@����fD1�H�=�1��(~���UH��AWAVAUATSH��(H�}�dH�%(H�E�1�H��H����L�m�L�%RI�E(M�u(L9�tGH�P�H�L�}�H�U�H�X�L9�t'�L�����H�]�H�[@L9�tH��@��DL�����f�AE(I�FA�}@u`H�}��g��H�E�dH+%(uXH��([A\A]A^A_]�f�H�E�H��H�5~�H�=7H�H1�謐���0����1�H�=�1��}���˂��ff.���UH��ATH��L�� H��H��uL�����L�e�1���f.�I�L$1�H�2H�5�H�=$����L���g���L�e�1���ff.�@��UH�=QH��ATS�|��H��H��PH9�t;L� H������I9�t'I��H����I��$HL��H9�tL��������f����[H�5���H�=��A\]����@��H�0H�u�H���7������UH��SH��H���H�_0H�H�pHH�x@�h���H�{ u	H�]���H�{ H�]�����f.���UH��f�H��AWI��AVAUATSH��hH�=�D�mdH�%(H�U�1�H�E�)E�)E�)E�)E�H����I��H�u�H�E�A��L��p���D��|����u���H��H��teL9pu_�EH��A��A��L��p���D��|���L��H��P�ޞ��H�{A���"���XZH�E�dH+%(u!H�e�D��[A\A]A^A_]��A��������[���ff.���UH��f�H��AWAVAUI��ATSH��XH�=�dH�%(H�U�1�H�E�)E�)E�)E�)E�H��tfI��H�u�H�E�A��M��舀��H��H��tHL9puBL��H��A��L��訟��H�{A���L���H�E�dH+%(uH��XD��[A\A]A^A_]�A����������ff.���UH��f�H��AWAVAUATI��SH��H�]D�uD��l���H�=0�H��X���dH�%(H�U�1�H�E�)E�)E�)E�)E�H���9H��`���H�u�A��M��H�E����H��H���H�@ L��`���L9���H��t
��l�����E���<fE���H�
�L�� 1���{��f�L���@� I��@H�CM�fI�FfA��{��L�@D�x!E;~���E�~�L��I�~ L��L��`���蜀��L��`���E�FH�j�H����H�A�N�E1�E1�L��H�8�{��I�~�I�v�A���{��H�{ t
��l����CH�E�dH+%(��H�e�D��[A\A]A^A_]�fDL��X���L��A��1�L���H��1��~A���f.�H���H�H�pHH���)H�ڿ�,�����l��������H�x�H�H�p@H���H�ڿ����j���fDH�5�L�K0H��L��p���H�d���H�=�HDžp���HDžx���
�r{������DA�������DH�
�JL���D��L��`����y��L��`���I���E���H�{ �������f.�H�H��L�CM��H�H�5T�H�HA�F�H�=�P1��
���XZ�*���fDH�=91��bv��H�=�1��Tv���|��ff.�@��UH��AWAVI��AUI��H������ATH��A�̹SH��HdH�%(H�E�1��H�H��H����H�x(H����L������M���B|��H����H�H����H�=n�f�H�E�)E�)E�)E�)E�H��teH�u�H�E��{��H��H��tPH��A��M��1�L�9�L��1��|H�{A����H�E�dH+%(u?H��HD��[A\A]A^A_]�L��H�vH�5?�1�H�=&A�����蛈�����z��@UH��AWAVAUI��ATI��SH��H�^L�vH��x���dH�%(H�E�1�H�Ht	H�H�y���{H�C u~H����I�EH�{ H�0�t����taH��x���A�A���I�L$D�KM��1�H��H�5��H�=%����I�|$D��1�L��L�������f�L�K M����{�	H�=ʨf�SD�C�KM�mM�T$H�E�I�$)E�)E�)E�)E�H����H�u�L��X���L��`�����o���D��p�����t���H�E��z����t���D��p���H����o���I��L��`���L��X�����L;PuzH��L��H��R1��p���I�A����H��x����X�XZE��ukH�E�dH+%(uWH�e�D��[A\A]A^A_]�E1�����H�3L���uz��I�����DH��x���A�����A���������b����x��E���T���ff.�f���UH��AUATL�o0M�eM��tGA�|$uOI�L$H�5��H�=\�1�H������I�EL��L���@����A\A]]�c���1�H�=��1��Pr��1�H�=W�1��@r��UH��AWAVAUATSH��H��xH��x���L�fL�vdH�%(H�U�1�H�Pt	H�P��v��M�D$ L�{M��tH�����1�L��L�����H��x������H�E�dH+%(��H��x1�[A\A]A^A_]�fDI�L$(f�H�=P�A�T$H�)E�H��p���H�E�)E�)E�)E�H��tYH�u���o���H�E���w����o���H��p���H��I��t&L9xu H��L�����I�}A����E���>���A�T$L�{D��M��L��1�H�w
H�50�H�=���|���H�{�����1�L�r�L���������v�����UH��AUATSH��L�o0M�eM��tbA�|$ujI�L$H��H�5?�1�H�=���	���H�=‰I�]H�5W��w��L��L��H�C H��[A\A]]�	���f�1�H�=�1��0p��1�H�=w�1�� p����UI��H��AWAVAUATI��H������SH��H�˹H��x�EL��������l���H�E H��`���dH�%(H�E�1��H�H���H���3H�x(H���&L������A��M���v��H��p���H�����l���tH�����H��p���L��詃��H������L�`H������E�,$M��I�\$�[L��1�M��I��f�E��$I�ދQ ���H�5(��Hc�H�>��@�A��I��I��I�I��O�,A��H�džH��tXI��L���H�@H�P H��tL�B H�l�M��LD�H�HH��	H�5��1�H�=��L��x������L��x���I��K�|�H�@H�p�m��I��H�@H�@ H���uH�x H���h�s��I��H��tH��H���RH������fA��$L�xH��H9����������M����l���H�=��f�A���EA��H��`���I��H��p���H�H�E�)E�)E�)E�)E�H��t&H�u�H�E���s��H��H��tH�8H��H��HE�I�� H��p������1�H�U�dH+%(��H��x[A\A]A^A_]�@H�AH�x�ks���H������H�H������f�8������P��������fD1�����f�IDž���I��H��H�5+�1�H�=b�I���������D������5���1�H��H�5~�H�=����������������r��ff.���UI��I��H��AWAVH������AUH��I�͹ATSH��h�EL�}(D�������������E�������E ��|���dH�%(H�E�1��H�H�ɞH���8H�x(L��p���H���$L������A��L���r��I��H���H���L��p�����H��L�������|���H�=�f�D�pH��L�h ��������H�Z0�B(������L�zX�
�����	��J<����	ȈB<I�$H�E�)E�)E�)E�)E�H��t1H�u�H������H�E��[q��H������H��H��tH�8H�GHH��HE�H���L����1�H�U�dH+%(uSH��h[A\A]A^A_]���������f�H�HL�1�H��H�5!�H�=����}���������!p�����UH��AWAVAUATSH��8L�g0dH�%(H�E�1�M���lL�-͞f�I�$HDž���)�����)����)���)��M��t,L��H������H������;p��I��H��tL�(I�EHM��LE�H���H���8I��$�H;�=�[L����H�H;�=L������L������H�����HD�E1�A��zI�wH�FH���}�x�H�xH����H������H��E1�1���PL������hM��ƅ�����sl��������AYI�GAZ�����QI��$���L��M����A�yI�$��1��Ll��I�WH��M�D$M�$H�5��H�=����PH�?1��{��I�GI�OL�
��I�t$I�<$A����$�虿��XZ�H������A���0��A�����H������H����H��H;-<I��H�����HD�A�H�������1�H�=��1���g��@��H��I�OL�
��M�T$P�I�<$A�L����A[A]�W����H��I�OI�t$E1�jI�<$E1�����Y^���&���I�L$M�$1�H�H�5��H�=F��z�����@��H��I�OL�
z�M�T$P�c����H��I�OI�t$M����I�<$A�R��7���_AX����I;Q����D��H�HI�wI�|$jjjj��[���H���H�� H��xY��H������H����?����I��$�M�$1�H�#M�D$H�5_�H�=����y�����fDHDž����E1�M��$�M��usH�E�dH+%(��H�e�[A\A]A^A_]�H������1��rf���Z���D1�H�=��1���e���1�H�=G�1��e��1�H�=7��e��H��}H��u�L���T���j���A��D��1�H�=H�5>�H�=/���x�����#k����U�H��AWAVAUI��ATSH��H��H��dH�%(H�E�1�H�E��H�@����H���L�%09H�RL9�twH�z�H�L�59�H�Z�L9�HD��&@H��tSH���H��H�B�L9�HD�H�Ãu�H���H��t�A�UH�@hH��s�L���сH��u�@E1�H�E�dH+%(�vH��D��[A\A]A^A_]�H�I�H�L�p@M���A�~A�����u�A�FH�u�L��I�F�ӯ��H�E�H����H�8���1��|��I��H����H��{H��ux�1�L��E1��x���L���P<�@H�@ ����@(��L�p0�P<H�U�H��H�P`�N������f�A�ML��E1�耕�����I�OM�E1�H�Z�H�5[�H�=���v���_���1�H�=y�1��"c��I�MH�'�1�H�5�H�=��v��L������H�}��1c���w����h���UH��SH��H�}�H��zH��uBH�]�1�H���d����C��wH�u�H���C�{8u@H�}��'���H�]��ÐH�E�H�uH�5��H�=�H�H1���u���f.�1�H�=W1��@b����UH��ATH��L�� H�DzH��uL���2���L�e�1���f.�I�L$1�H��H�5��H�=��ou��L�����L�e�1���ff.�@��UH�=�6H��ATS�Ib��H�r�H��5H9�t;L� H�x�I9�t*I��HfD���I�D$HL��H9�tL�`�����{���H�T�H���<��B�H��H�H9��H�3H�=;}H���e��H�C�H��H��u�H���H���7f��B�H��H�H9��H�3H�=�|H���d��H�C�H�ÕH��u�H���H���?f.��B�H��H�H9���H�3H�=�|H���jd��H�C�H�k�H��u�H�W�H���;f.��B�H��H�H9�sIH�3H�=W|H���d��H�C�H��H��u�[A\]�H�z�H�r��c��H�
����H�z�H�r���c��H�ؔ��H�z�H�r��c��H�Ɣ�[���H�z�H�r��c��H������@��UH���3�������n��H���H��t4H�x(H��t+H�5}n���xc��H�i�H�x(�8g��H�Y�H�@(���H�=Ք�h`��H�=��H����_��]H����@��U1�H�5*�H�={H���r��H���H��xXt1�H�=1���^���@X�'����f���d���8c��1���^�����UH��ATH��L�g0M��t)I�$���x�L���B�����uL�e����1�H�=�1��p^��H�5i�H�=�1���q��H�5�M�L$L��L�e�A�2H�{���H�=�	��n`��ff.���UI��H��AWAVA��H�����AUH��ATSH�˹H��dH�%(H�E�1��H�H�ϐH���nH�x(H���aL�����A���"d��I��H���F�x�<L���E����M���SE���*A�@���KM�OhI��I��A��M���uH�II��H���H�PpH;s1H�������H���_��H�H;U1L���_���IE�I���,�I��(�H;*1H���_���HD�L��I��E1�I��I�t$H��L9����H���H��2A����������I��H���M��u�1�H�U�dH+%(��H��[A\A]A^A_]�f��������f�H���L���y�f.�1�H�=��1�� \��H�9��L���\yI�L$1�L�CH��H�5K�H�=|��wo��1��R���1�H�=��1���[��1�H�=�1��[���a��ff.���UI��H��AWAVA��H�����AUH��ATSH�˹H��dH�%(H�E�1��H�H�_�H���H�x(H���L�����I���a��I��H�����x��L���M����E��ugL�@H�KM����M��H���H�5e�1�H�=<��wn��L��L���'x1�H�U�dH+%(��H��[A\A]A^A_]�H��rH��t6M��H�9�M�D$H�KLD�H�1�H�5��1�H�=��M���m���CI�wL��A�D�D�t1��u���f.�������a���fDL�
͎H���1�H�5��H�=b��m��L�-�������_��ff.����UI��H��AWAVAUI�͹ATS��H�����H��H��dH�%(H�E�1��H�H���H���H�x(H���L�����I����_��I��H�����x��L���M������uqL�@I�MM����M��H���H�5'�1�H�=���l��L��L��E1��fvH�E�dH+%(��H��D��[A\A]A^A_]�fDA�UA�D�DH��I�WhA�MH��sI�t$1�L���J���L��I�wE1���rH���H��xYt�I��1�H��@�Y���n���@A������_���DL�

�H���1�H�5I�H�="���k��L�5�������^��ff.����UI��H��AWI�ϹAVAUI��H�����ATH��SH��dH�%(H�E�1��H�H�ߊH���H�x(H����L�����A��L��M���,^��H�����H��H����L����k��I��H�@L�xE1�D�0M��u7�t@J��M�uH�@H�x�\��K�D�I��A��M9�vEI��w?H�HoH��t�J��H���H�5Z�H�=��H�@H�H1��j���@H����������1�H�U�dH+%(uH��[A\A]A^A_]�@��������\��ff.����UH��AWAVL�����AUI��ATE��SH��H�EH�����������L�} ������EH������L��D������������dH�%(H�E�1���X���L��H������1��H�H�0�H����H�x(H���vH������L��H������|\��H������H��H���MH��������8j��H�=�qL��H�XH�������������C������CD����C�������C��\��H�A���JA����������M����D������A��!�^��H�
b)D���1��sX��1�D�p�L������H��I��I�V!�T��H������A�D$L��I�VI�|$ E1�I�D$H������I�D$�fA�$�KT��M����A��A��u�@I�|$�I�t$��X��H�{�>H������H������A�XH���H�5,�H�=m�L�HH�4V��1�H�U�dH+%(�YH��H[A\A]A^A_]�DE��A��woH�(�J��H��tiA�L$�H�8E1�E1�L���W����uJH�)lH��ug�D����H	C�
�M��r�A��A��u�����A���.H�lJ��H��H�5�1�H�=��Og���DH��kH���H�5�H�=��J��1��!g���m���@H�E�dH+%(�OH������H������H��H[A\A]A^A_]�Q���H�I������H��������������H�BHH��������x�x���L�@M���k���I�8L��L��L������HDž����uT��L��������uAH������tlw:1��Y���%����H�
Y��������������H�B@�t����C���I�81�H�K �	�Z����u
�CH�����뢉CH������H�G1�H�K �
H�8�U����u�H�{ H�t��S��H�xH�C H��u����W�����UH��AWAVAUATSH��H�$H��H�$H��8�EL�m8L�}@������EI�̹H�����������E0H�����H����������H��D�����L����������dH�%(H�E�1��H�H�x�H���H�x(H���
H�����H�������W��H��H����H�=l��W��I��M���.A�|$�"I�|$H���L������U L��I��h �����M��ARL�������R��YL�������A��^uo�����u~H�sARM��H�����H�;AUE1������D���������H�=kkL���sT��XZH�E�dH+%(��H�e�D��[A\A]A^A_]�@A������A��������AV�����L�������L�����jD�����H�����jjH�����A�����H�� �v����1�H�=��1���O���U��ff.���UH��AWAVAUI��H�����ATSH��8H�EH������H��������L������H������dH�%(H�E�1��H�H�v�H���pH�x(H���cH������H��M��H������U��H������H��H���7�L���c��H�=8kL��L�xH�������EV�������H�
_#1�I�� A�W��R��f�L���@� I��@H������M�l$I�D$�fA�$�����A�D$�+Q��L�hD�@!E9D$��0E�D$�I�|$ L��L��D������V��H������E�l$tFD�����H�������E�tL�AE�A9t$���E�t$�H������K�<,H�������WV��E1�H��� L����A��A��u��I�|$�I�t$���Q��I���H������H������A�<H���H�5L�H�=M�L�HP�TO��1�H�U�dH+%(��H��8[A\A]A^A_]�DA��t�E��I����E��H�9�J��H��t}A�L$�H�8E1�E1�L���P����u^H�:eH���|�D����I	GA�FA��u��������������H��s��i����H�
��I��uH�eD��H��H���H�5o�1�H�=���I`����H��dH���H�5��H�=d�J��1��`���X���H�
] L���O��I���%���H�
A D��L��D������jO��D�����I�����H�E�dH+%(u>H������H������H��8[A\A]A^A_]����������I���1�H�=B�1���K���Q��fD��UH��AWI��AVAUATI��SH��L�� dH�%(H�E�1�@����H��1�L���K��I��H����
H��cH���TA�L$��w:H�����Hc�H�>���M�EH�E�1�H�54�H�=��^��H�E�dH+%(��H�e�L��1�[A\A]A^A_]��R��DH���H�=�f�H�E�L�F)E�)E�)E�)E�H����H�u�L�E��)Q��I��H���vL;(��E�$fA���tfA����
fA����H��I��I�L$1�AUM�D$H���H�5��H�=����]��XZH�E�dH+%(��H�e�[A\A]A^A_]�f.�E�D$L��M�M1�H�+�H�5,�H�=���]��A�L$����������DH�E�dH+%(��I��I�MH���H�5X�H�=�H�e�1�[A\A]A^A_]�,]��@I�D$ H�=D~f�H�@H�E�)E�)E�)E�)E�H��tH�u�H�E���O��H��H��x���H����	M�t$ L��x���E�~$I�V(A�G�H��h������j	H�|A��H�L�HHLEH@M����I�}L��`�����I�}���`��L��`���H���:H�@I�EH���1H����1�A�ytI�y��J��I�}M�N0D��M�F8H��h���H��H���H���@���H��h���E1�1�D��L�
ڶL���j��H��tH���eI��I�}�
���I�}������@I�D$ H�=�|f�H�@H�E�)E�)E�)E�)E�H��tH�u�H�E��ZN��H��H��x���H��tkI�T$ I��A�H�50`�z4�B$�H�z���D9�IG�D�ITL�ƋB �9�HG�H���L��AU1�H�5
�WH�=��L���Z��XZL�5dzM�l$ L��x���I��xY�I�A�u H���H�I9E ��I����B�������*1�H�=��1��F��f.�I�D$ H�=�{f�H�@H�E�)E�)E�)E�)E�H���xO��H�u�H�E��M��H��x���H�H��@H��tZI�T$ �I��H�=
��B H�r9�HG�H�
�^�z@L��H�J0�AUV���H�N�H�5��D�@T1���Y��AXAYL�51yM�l$ L��x���I��xY�(A�u ���+I�L�rHM����A�M@A�ED�������_L�R@M����A�*��I� �_I��L��h����]��L��h���H����H�@I�G H����H���2A�E@E�] �I�u(H����M�M0M�E8I� ��ARL��A�UD��RD��P���H�� ������A�M@I�U(L��L���A�u ��A��1�E���a��������I� �[������fDI�D$ D�xE���n�x�dH���OI�D$ H�
�L�@ I�E(H9�tFH�L�x�H9�H�B��HD��@I��H�B�M;G�(H��tH�P@H9�u�L;@�
H����H�=�_�HL��h����J��I�U0L��h���L�(I��H�@@H�
L�@�H�@�H�@�A�E@I�N@H�I�E0H��xI�E8H�PH��u
��I�FH�=�xL��H�axH��B���L��L���po�{���I�D$ H�=Txf�H�@H�E�)E�)E�)E�)E�H��tH�u�H�E���I��H��H��x���H���M�l$ L��x���A�}(A�U,�G�����H�+v��H�H�pHHEp@H�������;��A�|(�m
L���u��E�U,1�I�U A�A�u(L��E����E1��^���������H�������I�A�M(H���H�5ͬM�FH�=j�L�H1��V���Z���f.�H���RI�D$ H�p�>�0���M�}� L���A��H��vH�
yH9�����L������H�L��`���H��h���M��H��L������H9ȸIE�I���3f�I�<$1��H��M���|	I��H1�M��H������H9�HD�I��M9�t�I�t$� L���B����u�H��h���H��t�I�$I�EL��H�51�H�=�D�
D�H�M�1��U���q����H�H9P�,���H���OI�D$ H�=�uf�H�@ H�E�)E�)E�)E�)E�H��tH�u�H�E��G��H��H��x���H���L��1��lH��x���������H��XH������H�E�dH+%(�kM�EL��H���H�5��H�=������A�E0E1�I�M(A�U$��H�h�A��H��PA�L���1`��Y^�*���f.�I�T$ �I��H�5C�H�=��B(D�Z,L�JH�"�9�HG�H�
�XE��L��H�JzH�
'�HD�H��1�AU�S��A]A^���fDA�}@I�U(L�����L��A��1�E���\�����L�
٭E1�1�D��L���a���d�@I�D$ �H�5_�H�=��L�HL�@0�@$9�HG�H��WH��I��H��AUH�K�1���R��XZ���DI�1�H�xH�?������DI�D$ H��H�5}�H�=��H�H1��R�����fDI�1�H���o?������f.�L���8Y��������1�I�U A�},L��A�u(��L�
l�E1��LZ���g��HDžx���M�l$H��VH���3I�� �iC�|<��]M�NM����	E�L$A���
H�1�B��E�L$��h���A�A�<�D	H�����M�|$ ��H��w���L��H��x�����`���H�EH�8�?�����	H��x���H��tH�x�H�p��A��HDžx����L��複��I��H��uA�D$��
I�~�L��X����U��L��X���H���\	H�@I�FH���S	H����H��I�~L��L����w�����`���AWP��h���PE�L$E�D$�V�H�� ����f.�H��x���H�����H�x�H�p���@����fDM�l$H��TH����A�D$M�O����I9����A�| �M�T$ 1�I9�M�<LF�I�FH���H��1�L��1�L��`���H�8L��h����P?��L��h���L��`���H���M�f-f�����L�׾L��`���L��h����
���L��h���L��`���H����	I�~�L��X���L��h���H��`�����S��L��h���L��`���H��L��X����&H�@I�FH��tJH���
A�D$H��I�~L��A�L$M��L��I)�AQM����Y^����I�~辺��H�E�dH+%(��L�������1�L��H�e�L��1�[A\A]A^A_]�bBf�A�|$��A�D$I�� ���C��I9��8��A�| �)M�L$ 1�I9�I�HG�H��`���H��mH�H�XHH����
L�h@M���rA�D$A��A������h����SA�~*�'
E��tA�~)�I�~�L��X����pR��L��X���H����H�@I�F H��t{H�LRH����	H��I�t$I�~ H���`���A��AQM��A�D$PA�D$PA�D$P1�E����P��h���P��H��@�����I�~ �(�����h�����H�E�dH+%(�[I�t$L����1��V���H�E�dH+%(�0L��s���1�L���-��������u	L�RP�r���e�1�H�=��1��79��M�D$f�H�E�dH+%(��
I�MH���H�5#�H�=���N��M�NL������1�L��L��1��@����@1�H�=W�1��8��H�E�dH+%(�`
I�t$L�s���1��[���DI�U ��L�
{�E1�1�L���&T���A��L��`����4�@H�E�dH+%(�
I�t$L��r��I�M�L$H�9�H�5��M�FH�=��H�H1��K������I�M�L$H�A�H�5�M�FH�=��H�H1��dK�������I�MM�E1�H�G�H�5��H�=��L��`����-K��L��`�������I�EH��h���E1�1�D��L�
ʥL����Y���5�DH���kA�E@I�u(1�E�] �����H��E1�L�W�1�D��L���T�����DL�pPM����A�U$���r���`��t1�H�=7�1���6��L�p@��L�pH�L�H@M��tۉ�A�|(tA��A�|(t7I� H����H��iH��tRH�x8tK1�H�=��1��6���E�u0E1�I�M(L��H���A�E��A��H��P�$V��A_X��I��L��h����GN��L��h���H���H�@I�G H���vH���^A�U$A�u I� M�U(j1�L��jE�E4E��A�Љ�L����PE�]01�E����P���H�� �����A�}0E1�I�M(H�\�A�U$A�u ��A��H���%���L�HP���L�HH���I�U(A�1�L��L�����SR���.�M����H��A�vI��L��L��������1�1�L���p<_AX�����I�U(L��oL��A���1�E����Q�����I�D$ M�EH���H�5��H�=��H�H 1��fH����H��A�vL�����1�L��L��1���;[A\���H��A�vL��L��L�I������1�1���;A]A^�z���1�H�=�1��j4��1�H�=��1��Z4��I��H���'H��x���L��h���L��x����/���L��h������H��L��A�v�M���I�FL�Fn�����1�1�L��L���,;���I�O M�G1�H���H�5��H�=��L��h����LG��L��h����^���I�G A�u@I�U(L���L����A�u A��1�E���qP���L�H�E�dH+%(�M��L�.n���H�e�L��L��1�[1�A\A]A^A_]�}:L��H�޿L��X����M��L��X������|E�������L��L��L��X����gM��L��X������s���L��H�޿�xe��H�E�dH+%(�xI�t$L����1��s���DI�G A�]0E1�I�M(H��A�U$A�u ��A��H����I�D$ M�EH�g�H�5`�H�=��H�H 1���E����I�O M�G1��H�5ÝH�<�L��h���H�=.��E��A�E@E�] I�u(L��h�����H����H�E�dH+%(��M��L�~�������r���M�NL�!����������I�F ���I�O M�G1�H�i�H�5�H�=[�L��h����E��A�U$A�u I� L��h����k���I�~辰���R���I�NM�F1�H�X�H�5!�H�=J�L��X����D��L��X������I�OH���H�5X�1�H�=W�L��h����D��L��h������L��H�޿�c��E������L��L���fc������L��H�G�H�58�1�H�=��L��h����+D��L��h����6�I�F�$���1Ʌ�I�U ����L�
ƙE1�L���L���.�H�E�dH+%(��I�t$L��j��1���I�N M�F1�H�R�H�5˔H�=��L��X����C��L��X�������1�H�=C�1���/��H�E�dH+%(��M��L��j������k���H���oA�L$AQ1�E1�jD��h���L��L���S��AZA[��I�NM�F1�H���H�5e�H�=��L��X���L��`���L��h�����B��L��X���L��`���L��h�����1�H�=A�1��*/��M�NM�FL��1�H�f�H�5_�L��h���H�=���B��L��h������H��h���E1�1�D��L�
Z�L���2Q��H�����I�MM�E1�H�C�H�5T�H�=���0B���k�H�E�dH+%(u?I�t$L�����1��:�H�E�dH+%(uI�t$L��h��1����4��M�NM�FL��1�H�D�H�5��H�=v��A���e���1Ʌ�I�U ����L�
��E1�L���I��������UH��AWI��AVH�����AUATSH��H��(�����D�w�H�����H��L������dH�%(H�E�1��H�H��`H���aH�x(H���TL�������3��1�L�����H��I���3H���H�
�H9�tPH�0L����H9�H����HD��fDI��H����M9L$��H��tH��H9�u�L;H��I���H9�tLH�L����H9�H�����HD��DI��H����M9L$tJH��tH��H9�u�L;Ht01�H�KH���M��H�5�H�=���
@��������I��1�H�KH�P�M��H�5�H�=���?��A�D$�������8I�\$�D��L��������HCH�CM��t.L�5YEH�s L����/��H�C L��L���3��H�C H�CH9C��1�H�U�dH+%(��H��([A\A]A^A_]ÐI�T$������D����HB�ZH�BH;Bu�H�E�dH+%(��H��(L��L��[A\A]A^A_]�[���H�E�dH+%(u^H��(L��L��[A\A]A^A_]���D1�H�KH��M��H�5Q�H�=Z��>��������%���1�H�=��1���*���0��fD��U�H��AWE1�AVL�����AUATSH��(H������H�^dH�%(H�E�H�FH������GL�ω�����L���H�H�u]H���TH�x(H���GH�����I��L��L������H������0��L������HDž���H��I���H���H�
S�H9�tJH�0L����H9�H����ID��@I��H����I9\$�~H��tH��H9�u�H;XtdH������L�����1�I��H���H�5��H��H�=���+=�������fDH�U�dH+%(��H�e�[A\A]A^A_]�fDI��H���A�UI�u E1��M�|$H�8�0��A�Å���I� H�����tWI� ��1��A�Å�tFH������L�����������I��H���H�5��1�H��H�=p��k<��D�������f�I�w A�G��uA�E��AD�A�GA�}I�Wu���������H	�I�W1�I9W�����L��L���~������f�A�EH��H������H�)�L�����I��H�5��H�=�PH��1�D�������;��ZD������Y�T���HDž���H������L�����1�H��H�5��H�=@�H���w;��������M����-�����U�H��AWE1�AVL�����AUATSH��8H������H�^H������H�VdH�%(H�E�1��GL��H�����������L���H�H�\ZH���kH�x(H���^I��L��H�����L�������-��L������H������H��I���+H���H�5E�H9�tLH�L����H9�H����ID��fDI��H����I9\$�~H��tH��H9�u�H;XtdH������L������1�I��H�B�H�5�H��H�=���:�������fDH�U�dH+%(��H�e�[A\A]A^A_]�fDI��M�|$HDž���H�� u/������1���IWI�WI;Wu�L��L���ֳ���@A�uI�?I�U ���&������H�����H��t�I�(��I�(��].���Dž�t��r*��H��I��H������PL������1�H�C�H��H�5p�H�=!��9��XZL�-�>I�w L���W)��I�G H�5��L���,��I�G �����I�w(���������)��H������L������H�5��PA�EI��H���H��H�=ٛP1��8��Y^�p���f.�H������L������1�H�y�H�5�H�=�H���R8��������8����*����UH��AWI��AVI��AUATSH��xL�� dH�%(H�E�1�@����H��1�L���x'��I��H����L�=u<I���A�D$��������������I��taI�T$ H�
_M�EH��^H�5��Z$D�r H�={�L�JH��^��HD�E��H�
�^HD�H���H��P1��I7��A_XI�D$ 1�L��D�P$D�X H�xE����1�E��@���l��@H�E�dH+%(��	H�e�L��1�[A\A]A^A_]�"��D��	u�I��tZI�T$ H�
�WM�EH�=B�H�B(�r L�JH��H��HD���H�
^HD�H�5��H��PH��1��6��_AXI�D$ 1��H H�P(H�x��L��@�������B���f.�H���&D�fA������fE����fA���H��:H���KH�E�dH+%(�sH�e�L��L��L��[A\A]A^A_]�h����I���jI�D$ H�p�>��H�P ��t1�Z�E1�H���@I��H�@(A�}1�J�40�q3��I�D$ L9�u�H�P0��t3�Z�E1�H���I��H�@8A�}�J�40�63��I�D$ L9�u�H�P@��t8�Z�E1�H����I��H�@HA�}�J�40�2��I�D$ L9�u�H�PP��t8�Z�E1�H����I�D$ I��H�@XA�}�J�40�2��L9�u�H�]�L�u�H���)��L���E��&���E�H�]�I����L���%��I�}E1�L��L���H��1��!$���D���@E�D$1�M�ML��H���H�5|�H�=���04��A�D$���Y����HH�E�dH+%(��I��I�MH���H�5��H�=1�H�e�1�[A\A]A^A_]��3��@I��t;I�D$ H��TI�MH�5��H�=p�L�H(L�@M��LD�H�*�1��3��I�D$ 1�L��D�H H�P(H�xE��@���1���T���@fA���]H��7H��ugH�E�dH+%(��H�e�L��L��L��[A\A]A^A_]���DH��7H��uwH�E�dH+%(�sH�e�[A\A]A^A_]�L�FI�MH��1�H�5E�H�=���2���p���L�FI�MH���1�H�5�H�=���2�����H�E�dH+%(��M�EL��H��H�5h�H�=a��k���@I�D$ H��H�5͓H�=��L�H0L�@ H�H�pP�p@1��%2��XZ�\���fDM�u� 1�L������L��x���M��M��H��6� L��H�<��0������H��H��u�M��M��1�L��x���L��H�E�H�5�A�EH�=���1��I�}1��$���r���f.�H�	6H����H��RH�����x���A�GI�V����H9����I�_ A�| H��p�����H��p�����#��L�-hRH��h���L��M��H��uj�u�A�D$�H��L�H9�sXL�+L������L���H��h���H��x���H�p������H��x���H��p���L����������f�H��M��u�H�E�dH+%(��H�e�L��L��[A\A]A^A_]�Kp��H��4H���BH�E�dH+%(��A�OI�WM�G L��I�wH�e�[A\A]A^A_]��f�H��I��I�O1�AUM�GH�5-�H��H�=W���/��Y^����I�MA�1�H��H�5��H�=g��/������DH�CE1���A��A�����L��s�@D��H�
�NH��H��tH�8E1�E1�L��L������A��A��tH�CfDL��r�A��A��u�L�%yP���M��M��L��x���H�@NA�]��L�,�H�/PH;����L�X�H�H;|�L��x���M��L�P��IE�H���(�H��tQH�SH1�H;F�I��H�B�HD�H��M9�t�I�t$� L��������u�I����I�<$1��|!���L��x���H�5|OM�MA�2L��H���H�=1�����I�D$ �r���H��H�5�1�H�=K��.���z���L�FI�MH��1�H�5��H�=b���-�����I�MH�ݼ1�H�5t�H�=}��-���H���I�$I�EL��H�5��H�=��D�
D�H��1��-���������H��p���H�^�H�5o�H�=`��[-������fD��U1�H�5�TH��AWAVAUATI��SH���z��H��LH�PH;���	H�H;��H�Z�L�=�TL�5�TH�H��HE�I���g@��H��MH��MHE�H�5�TL��1�����Sx1�L��H�5�T���M����I���H;8�L��H�B��HD�I��H��L��L��1����H�SL��L��1����H�L��1�H�5T����CH�^M���i����O�����H�JMH�uNHE��I���DH�qK�P H��L��1�[H�5UOA\A]A^A_]�7�����UH��H�����1�]�ff.����U�1�H��AWAVAUL�-$KATI��L��SH��1�H��H��K�H�M��t
A�|$tI�t$1�H��t
�{tH�{L�5�KL�����H�=�K���1��/��I��H����H��/H��u[�1�L����+���L���P<�@L�` ����@(��H�X0�P<L��L�p`����1�H��[A\A]A^A_]�I�OH���H�5��1�H�=%��*������������1�H�k�H�5D�H�==��x*�������뢐UH�=�IH��AWAVAUI��AT�cH��IH�L�`HL�x@M��� M���/A�|$H��`��|A�D$A�I�D$ubA�GI�G��uH��F1�L���K��A�ƅ���L��L������A�ƅ�ur�1H��QL�-�HI��x�A\D��A]A^A_]�L���0H���A��������L��H�5ٍH��1�����A\D��A]A^A_]�f.���H�5�L��1����L����G��L����G��A\D��A]A^A_]É�H�5��L��1��m����1�H�=�1��x���1�H�=��1��`��H�5�1�A������,���������UH��AWAVAUATSH��L�-$HH�}�M�uI�~ptiM�~`I�F`H�E�I9�tXM��tSI�I��L��H9ظHD�I���DI��H��L�������tMM��tI�L��H9E�u�I�~L�������t,H�}�H�58P1��z��H�������[A\A]A^A_]�fDE1��H�H��`I��H9�ID�H��I�L���H����t\I�F�ˀ��I�I�OL��I�EH�=F/H�H�JH�hpI�I�G���I�UH��u�H��1�[A\A]A^A_]�@H�}�H��L��1�[A\A]A^A_]���ff.����U�H��AWAVAUATSH����H��FH�}�EƉẺ�H�H�PpA��9��������L�``H��`M����I9���M�<$L�-k.I9ǸLD�E1��&f.�I�H��`1�M��H9�HD�D9u�tgI��I�|$FA�����I�|$H�L��I�$H�H�zL��H�hpI�$I�D$����H�M��u�H�Rp1�H��t/H��[A\A]A^A_]�1�L��H�}�H��[A\A]A^A_]����@�kB���1���H�}�D��H�5T�1��]��������H�5��1��H�������뒐��UH��SH��H�LEH�;�tB��H�H�P`H�@pH�PhH�P`��;H�;H�7�͐��H�H�8�h������H�H�]�H�8��V�����UH��AWAVAUATSH��H�uȅ����B�H��L�5��E1�L�d���M�}H��L9�t-L�+I�}8H��t�L�������u�A�E��t�H��M�}0L9�u�M��t91�A�bH�}���1�A�?c@���D���
��E�H��[A\A]A^A_]�H�}�H���H�5��1����H���[A\A]A^A_]�ff.���UH��AWAVAUATSH��8H�u�����B�H�E�I��L�=��H�D�H�E�L�5��H�E��-A�$����I�L$��H�E�HD�H�M�H�E�I��L;m�tSM�eI�|$8H��t�L��H�}��Y��H�}�L�����K����t���u�A�$����I�D$0I��H�E�L;m�u�@H�}���H�}���H�]�H�u��H��`�Q��H�M�H��1�ǃ`1�H��hHǃX�u��H��81�[A\A]A^A_]�@I�T$0��H�E�HD�H�U�H�E�����@I�D$H�E�����f�H�w�H�}�H�5S�1��W��H��8�[A\A]A^A_]�H�1������UH��AWAVAUATSH��8H�u�����B�H�E�I��L�=�H�D�H�E�L�5�H�E��-A�$����I�L$��H�E�HD�H�M�H�E�I��L;m�tSM�eI�|$8H��t�L��H�}����H�}�L���������t���u�A�$����I�D$0I��H�E�L;m�u�@H�}���H�}���H�]�H�u��H��`�
��H�M�H��1�ǃ`1�H��hHǃX����H��81�[A\A]A^A_]�@I�T$0��H�E�HD�H�U�H�E�����@I�D$H�E�����f�H�DzH�}�H�5��1����H��8�[A\A]A^A_]�H��������UH��AWAVAUATSH��H�uȅ����B�H��L�5J�E1�L�d���M�}H��L9�t-L�+I�}8H��t�L���/����u�A�E��t�H��M�}0L9�u�M��tYH�]�L���H��`�Y��H��1�1�Hǃhǃ`HǃX�}��H��1�[A\A]A^A_]�@H�}�H���H�5��1����H���[A\A]A^A_]�ff.���UH��AWAVAUATSH��H�uȅ����B�H��L�5:�E1�L�d���M�}H��L9�t-L�+I�}8H��t�L�������u�A�E��t�H��M�}0L9�u�M��tYH�]�L���H��`�I��H��1�1�Hǃhǃ`HǃX�m��H��1�[A\A]A^A_]�@H�}�H���H�5{�1����H���[A\A]A^A_]�ff.���UH��AWAVAUATSH��8H�u�����B�H�E�I��L�="�H�D�H�E�L�5$�H�E��-A�$����I�L$��H�E�HD�H�M�H�E�I��L;m�tSM�eI�|$8H��t�L��H�}�����H�}�L����������t���u�A�$����I�D$0I��H�E�L;m�u�@H�}���H�}���H�]�H�u��H��`��	��H�M�H��1�ǃ`1�H��hHǃX���H��81�[A\A]A^A_]�@I�T$0��H�E�HD�H�U�H�E�����@I�D$H�E�����f�H���H�}�H�5Ӯ1�����H��8�[A\A]A^A_]�H��������UH��AWAVAUATSH��XH�u����'�B�H�E�H��L�-�KH�D�H�E�H�E�H�E�H�E�H�E�H�E��@E�$E���I�L$H�M�H�ʅ��H�E�H�E�H�5$�L���������H�E�H�E�H�5	�L���������H�E�H�E�H�5z�L����������H�E�H�E�H�5=�L�������H�E�HDE�H�E�H��H9]���L�#M�|$8M��t�A���oA��uA�G��pA��uE�wL��L���h��E���������oE�$E����I�D$0H�E�����@H�59�L���)������A�<$���uI�D$0H�E������H�5s�L����
�����=���A�$���MI�D$0H��H�E�H9]��(���fDH�}��=H�}��H�E��H��t1Ҁ8x�ƒ�H�E��@��e<
�H�
W���Hc�H�>��f.�H�5�L���Q
�����I���A�4$����I�D$0H�E��e����I�T$0H�U������H�5�L��H�U��
��H�U��������H�U�����H�5�L�������������E�$E��tHI�T$0�ɐI�D$H�E����f�I�D$H�E�����f�I�D$H�E����f�I�D$H�E�����f�I�T$�~���fDH�}�H�5r�1��N���
H�e�[A\A]A^A_]�H�}�A�tQH�}�L�M����H�}��ȃ�H�}�E�H���u������XZH�e�[1�A\A]A^A_]�H�}�A�u�H�}�H�5�1���
���
�w���E1�H�}�u���A��|���A��q���fDH��GH�}�H�5{�1��
��H�eظ[A\A]A^A_]�H�F��ff.�@��UH��AWAVAUATSH��8H�u������B�H�E�I��L�50GH�D�H�E�H�E�H�E��Y�A�����I�OH�M�H�ʅ���H�E�H�E�H�5U�L����
����H�E�HDE�H�E�I��L;m���M�}M�g8M��t�L��L���
��H�5��L����
����t�����A�����I�G0H�E��@I�W0H�U����n���H�5ˬL��H�U��E
��H�U����u���H�U�I��L;m��q���H�}���H�E��H��t1��8x@�ƃ�H�M�H�U�H�}��a��1�H��8[A\A]A^A_]�H�5S�L����	��������A���t"I�W0���f�I�GH�E����I�W�^����H�}�H��EH�5c�1��g����~���ff.�f���UH��AWAVAUATSH���H�����dH�%(H�E�1������B�I��HDž0���L�=�8H�D�L�5�HDž ���H��(����8f�����>H�K��H��0���HD�H�� ���H��0���I��L;�(���tZI�]H�{8H��t�L��H��8������H��8���L��A�����E��t���u������H�C0I��H��0���L;�(���u��H��0�����L��@���1��H�� ���L��A��H�t3L�5�E1�K�<�H�� ���� E�������t
I��I��u�E1�H��0���H�����L��D��A��H��@����	��1�H�U�dH+%(uuH���[A\A]A^A_]�DH�S0��H��0���HD�H�� ���H��0������@H�CH��0������H�����H�J�H�5@�1��D����|����%��D��UH��AWAVAUATSH��HH�u������B�H�E�H��E1�H�D�H�E�H�E�H�E�H�E�H�E��E�$E����M�t$L�����L�u�H�5�L���������H�E�H�E�H�5٥L��������)H�E�H�E�A��w��A�d��A���H�E�H�E�H�5V�L���J����H�E�HDE�H�E�H��H;]���L�#M�|$8M��t�H�5�L�����E�/D���duA�W��suA�W���������A�<$���*I�D$0H�E��
���@H�5�L��������QA�$���I�D$0H�E�A��w����f�H�5��L��������>���A�$����I�D$0H��H�E�H;]��)���fDM����H�E�A�H��tE1�8xA��A��L�����H�}�I����H�E��8w�Ã��؃�H�}�E�H�E�E1�H��t�8tA�tE1��x-A��A��H�E�A�H��t�A�<ct
E1�<rA��A��A��~Ic�A�|�/A�T��p��/��H�}���M��D��D���r��H��H1�[A\A]A^A_]ÐA��w����A�d�����A������A�$����I�D$0H�E�����fDM�t$0L����M���H�5A�L��H�M����H�M����)���H�M��H����H�5�L������������A�4$��tQI�L$0��f.�I�D$H�E����f�I�D$H�E��9���f�I�D$H�E�����f�I�D$H�E��7���f�I�L$�u���fD��O���fDH�}�H�-�H�5#�1��'��H��H�[A\A]A^A_]���*�����A��L��L�59�D�E�Mc�L���:��D�E�H�}���B� D��D��I��H�E�����H�u�L�����H��H1�[A\A]A^A_]�A���DUH��AWAVI��AUATSH��@��H�%H��HH�I��I!�H�
#H�9H	�I��I!�H�
�H�1H	�I��I!�H�
]H�	H��H	�H!�H��t61�H�5y�L�����M��u6M��uGM��uXH��uiH�5F�L��1����H��1�[A\A]A^A_]�D1�H�58�L������M��t�1�H�5P6L�����M��t�1�H�5�L�����H��t�H�5�;L��1�����ff.���U1�H��ATI��H�5ޠL��H���^��L��1����L�����L�e�1���@������f���UH���H��ATSH�H�H��tI��H��1�L������H�[H��u�[�A\]���UH��ATL�%�H�������Q����\�����������M����H�������H��E1�1�H�=��H�H��-H�L�JPH��H�0����H�=i"����H�=}!���H�5Q�����H�5����v��H�5o���e��H�5����T��H�5����C��H�5���2��H�5����!��H�5:�����H�5�����H�5X�����H�5������H�5v������H�5�����H�5������H�5#�����H�5������H�5A���w���H�5н��f���H�5_���U���H�5���D���H�5}���3���L���&���L������H�5�������H�5!�����H�5������L�e���\���ff.����UH��H��H���L��x�����t )E�)M�)U�)]�)e�)m�)u�)}�dH�%(H��H���1�H�EH�wH��H��8���M��H��P���D��H��@���H�1�H��0���WDž0���(H�8Dž4���0���H��H���dH+%(u���������UH��AWAVAUATSH��8H�u�����B�H��E1�H�E�H�D�H�E�H�E�H�E��nA�4$���dM�l$L���dL�m�H�5��L���q�������H�E�H�E�H�5^�L���R�����H�E�HDE�H�E�H��H;]���L�#M�|$8M��t�H�5�,L������H�5��L��A������E���^������A�$���*I�D$0H�E��\���@H�5՛L��������u�A�$���	I�D$0H��H�E�H;]��m���f�H�}���H�E�1ۀ8j�Ã�M���}L�5�E1�K�<�� L���R�������I��I��u�H�}�H�5�1��.�����@M�l$0L�������H�5��L��H�U��
���H�U����)���H�U�����H�5e�L�����������A�$��t1I�T$0��f.�I�D$H�E��2���f�I�D$H�E��_���f�I�T$�f�H��(H�A����A��tnA������L�h@M������H�}�H��tfH�5Ԛ�J���I��H����H�U�H�}�A��H��L����-��L����1�H��8[A\A]A^A_]��L�hP�f�H�	(H�L�hH�H�U�H�}�A��L��1��-��H��81�[A\A]A^A_]�f.�H�}�H���H�5��1����H��8�[A\A]A^A_]�H�U�H�}�H�5�1��m���1��X���fD��UH��AWAVAUATSH��(H�u�����B�H��L�=�)E1�H�D�H�E�H�E��,@A�U������M�eH�E�ID�H�E�H��H;]�tXL�+I�}8H��t�L��H�}����H�}�H�5Y�A������E��t���u�A�E����I�E0H��H�E�H;]�u�fDM���gH�}��4L�5
E1�K�<�� L���i�A����tbI��I��u�H�}�L��H�5�1��C���A�����M�e0H�E�ID�H�E�����f�I�EH�E��	���H�&H�A����A��unL�pPM��t�H�}�H�5g�D�M����D�M�H��I����H�}�A�H��L��H�9�D�M��i+��L���q���D�M�H��(D��[A\A]A^A_]�A������L�p@��L�pH�u����H�՗H�}�H�53�1��7���A���H��'��H�U�H�}�H�5�1��	���D�M��s�����UH��AWAVAUATSH��H�uȅ�~{�B�H��L�5ΚE1�L�d��@M�}H��L9�t-L�+I�}8H��t�L�������u�A�E��t�H��M�}0L9�u�M��t!H�}�L����B��H��1�[A\A]A^A_]�@H�}�H�U�H�5K�1��O���H���[A\A]A^A_]�ff.���UH��AWAVAUATSH��8H�u������B�H�E�I��L�=��H�D�H�E�L�5֕H�E��-A�$����I�L$��H�E�HD�H�M�H�E�I��L;m�tSM�eI�|$8H��t�L��H�}����H�}�L���������t���u�A�$����I�D$0I��H�E�L;m�u�@H�}���H�}���H�E�H�}��8m��1���������H�E#H�H�xHH����H�u����%����uEH��8[A\A]A^A_]�fDI�T$0��H�E�HD�H�U�H�E�����@I�D$H�E�����f�H�}���H�5�g1���H��81�[A\A]A^A_]�H���H�}�H�5{�1���H��8�[A\A]A^A_]�H��������8��H�U�H�}�H�5֔H��1��3��$���H�}�H�5�1�������ff.�f���UH��H���P_��1�]�ff.����UH��AWAVAUATSH��HH�u�dH�%(H�E�1����@�B�H�E�H��L�=C�H�D�H�E�L�55�H�E�H�E��E�H�E��f�H��H;]���L�#M�l$8M��t�L��L���Z��uA�$����I�D$H�E�L��L���6��u�I�|$0H�u��
�o�H�U�H�E�H�H�H0H9�t�:t�H�P8H�}�1�H��H�5�����E�H;]��l����U����uH�}��u�tJH�u�H�}����1�H�U�dH+%(u9H��H[A\A]A^A_]�I�D$0H�E��I���f.�1�H�}����1���L�ff.����UH��AWAVAUATSH��8H�u����<�B�H�E�I��1�H�E�L�l�E1�L�=�'H�E��D�E���H�ZI��E���H�]���d���w��s�����H�M�H�M���f����e��H�E�H�E�L�����LDe�I��M9���I�H�z8H��t���ƃ�nu
�w��ou�wA��A��buD�GA��euD�G���>���E����D�
E����H�J0H�M���d�A�����fu+�eu%�u�
����H�B0H�E��R����L��H�U������E���H�U�����VI��L�b0M9��3���DH�E�A��x0�DD�H�}�t,H��H���BD����H!1�H��@���5��H�}��cH���"D��H����H!H�}���H�X�H!1�H��@����=��M��tD���H���NH��H!H��81�[A\A]A^A_]�f�H�Z0I��E������d������w��s������t<������d������w��s�������x���D�E���|L�J0L�M�����L�b�����H�JH�M��s���H�BH�E����D���H	���@H��D���H	H�}�tBH�<�H	1������L�J�����H�}�����H��t
D������D���M������H���H	�����D����M����������f.���UH������t]�I�f�H���H�5r�1�H�=)�����H�M�1�]A�H�=ʹH�H�SH�L�JPH�����H�0���ff.�f����GxH�!H��u�fDU�GL�
�H�W�OxH��twD��L�
�H��LD�QA��H�
�$1�RH�5�H��H�=M��H���XZ��@��L�
�H�TLD��f���UH��ATSH�H���9�Bx���.��H�dI���BxH����I�4$�Fx�����~�H�~(t
H�~(��I�4$H�~0t
H�~0���I�4$H�~ t
H�~ ���I�4$H�~@t
H�~@��I�4$H�~Ht
H�~H��I�4$H��H�x(��L��H��I�<$I�@H9�t(H���H9�u�Kf.�H9�tCH��H�H9�u�H��u_fDI�4$H�=5�@�I�$H�e�[A\]�I�HH���I�h H�H9���DHLJ�H��t�I�$H�
�L�L�@�@��t����H�
�H��HD�H��H�5m�1�H�=���W����R���f�H�L�
f�HxH�P�@��twE��L�
EH�9LD�QA��H�
4"1�RH�5�H�u�H�=~����ZY����f���L�
=H�LD��f�1�H�=��1��0�H�!H;p8���H�@8I�4$����fD��H�
�H��HD�����fDI�H���ff.�@��UH��AUATI��SH��H��L�-��I�E�uWH�KP�S(1�H��s
9T�,�>H��H��u���S(I�E���H��L��[A\A]]�(_���H���L��H��t%�@@L���tw<��L��H��LD�I�L$H���H�5�1�H�=̣����K���f���L��H��LD��f�I��$�L�eH��t%�@@L����tw;��L�cH�gLD�I�L$H��H�5|�1�H�=������������L�EH�NLD���f�H��[A\A]]�D��UH��AVAUATSL��$P��H��H�$L9�u�H������L�
�L���dH�%(H�E�1�L��M��L����H�5��L����H����I��H��L�I�q`I��`L9���H����H�1�L��]��M��I9�HD�1�E1��!f.�H�H��I9�ID�I��HH�¹	L�ǃ��H�H��u�L��Hc�L��H��L��I�����D9�u#H�E�dH+%(uXH���[A\A]A^]�@H�5Y�H�=�1��{���L���cO��뾐L�����L��H�5�H�=�1��N���������UH��AVAUATSH��H���H�}�H����A�	��L�HXH��I��A��I��A��M����A��H�PH�sH�;M���AVA�j�h��ZY���OH�{@t	H�{@���H���E1��P<A��tA��A��A��A��H�;�����L�h0H�x L�������uE��tA�}��H���H�;�P<t��tH�p H�x0�b��H����P<����H�x ���H���H�x0���1�H�=��H���H��P<��tWH�x0�c��H����Ef.�AVA�j��qg��^_���7H����P<���c���{��u�HǀH�����R��H�;uH�}ؾ+�:���H�e�[A\A]A^]�DD�H<A��ueH�?H����A����L�@�H(A���PH�sAVAU�8��AZA[���xH���L�HXM�������D�H<A����DH�;H���A��uyH��H�H�PM��H�sjI��M��E��s7��AXAY����H���L�HXM��t:���f�����������f�H�KL�H���1�H�5�H�=Ҟ�M�M�������H����P<�������H�p H�x0�S��H����P<�������H�x ���H���H�x0����
���@���f������L��������L��L��H�xF�������`���DH�KL�H���1�H�5��H�=R�����H�KL�H���1�H�5y�H�=j��e��`�����UH��AWAVAUATSH��H�$H��H�$H��f�H��8��dH�%(H�E�1�H���)����HDž���H�p`H�����H��H��H���.H�KH��xY�GH�_�H��H��H�H��H��@�����Dž\��H��P��H���tH��P��H��@��H��H��h�����H�{01�1�1�H��P�����I��H����H��h��H�x0�u�H�5u�H��HE�H��x��H���H���<1�L��1��'��L��I������H��x������t����������p��I��������u�H�=�H���H��`���+�H�����H��`��L��H	Hh�f��H��P����H�����Hc�\��H��H������]H�����1�H�QhH��s�D�DH��H��u�H��8���H���H���@@�]V���H���PV��H��H�����H�E�dH+%(��H�Ĩ [A\A]A^A_]�L��x��L��1�H��H�5��H�=��������x��H������x(�H�����H�@ H����H�����H�y0�H������A<���x�L�`M���H��H��H�������L�����L��)�����H���L���������PH��8��H���H�@0H����xtH�@H��H��H��H��H�����L��H�����H�������H��8��H��H��H���H�����H�H��xY�����H�����1�H��H���n��H��8��H���H��������HDž`��L�����f����9��H�n
L�<�M���#���H��H	�`��H�����L����M��t+I���H��@tA�� ���t���p��9���H�����H�=C��0�H�����L� ���A�XL��I��L� ���I��$�H�����H����H�<RI��(�H��H�L8pH�|8xL�M��(�H�7H�q��t��H�AI���M�}�p��ADž ���A�G8L�������)�A�� �H��I�|��w��I���H��h��H��H��I�LI��<I���2�V ���E�A�T8��I���H�����H��H��I�LI��<H�����H�A0H��������H�����H�����H��0<I��n�X��I���H��H��I�TI��nH��8<H��x��ǂ0ndH��8nH���H��uDI�����\���
I�����������u�H��`��L������1�������@E���I�O1�H��H�5��H�=v����1�H�=����H��8��1�1��Q������L��H���H�5��1�H�=��m�HDž`�����H�����H���H�8�����-���H��8��H�����������H�����H��Hǀ�H�����H����H�8�������HDžH����H���������L������H�5}L��H9�HF�������tSH��8��L���?��v���H��8��H�����"��Y���H��8��H�������<���� H�5�|L�������H��8��H�������H��H������A��H��8��H�8|������@��UH��AWAVAUATSH��H�$H��H�$H��h���L�
��L��{dH�%(H�E�1�H�����H��H��x��H��1����H�5�{H�����H���BI��E1�H����L����L�=1�f�L���HH�����H����A��
��1�L�������urH�=s��HA������H�H��H�xH��H��H�H�U�H)�H)΁�HH��@H�#���H�H�H�JhH�1H�0H�FH�HH�H�Bp�[���L��L��H�={�1��t��?����L�����H�E�dH+%(unH��h [A\A]A^A_]��H��x��H�5J�H�=�1���L���D����������t���t�H��x��H�5��H�=,�1��������ff.���UH��AWAVL�}�I��AUL��I��ATA��S��H��xdH�%(H�E�1����A�ĉE�E��tI�E�E�H�E�I�EL��`�����L��]�H�E�����L�}�Džx���H���H��uFL�����I�>1�A�L�ԧH��L������H�E�dH+%(u4H��x[A\A]A^A_]�I�NH���1�H�5D�H�=]����������H��H���inactive - xpath: '%s'
   -- %s-client: '%s'
NoneCONFIGSHOWRPCUnknown-FD-%dFE-adapterNULLBE-adapterDS: %s:  -- Child xpath: %sSIGHUP received, ignoringDS: %s: Replacing %s with %sDS: %s: Merging DS %d with %dTrueFalse  DS: %s
    DS-Hndl: 			%p
    Config: 			%s
MGMTD Datastores
dsnameinvalid client idyesnoCREATE-TXNPREP-CFGAPPLY-CFGInvalid/UnknownDELETE-TXN%s/mgmtd_be.sockBE-ADAPTER: %s: XPATH: '%s'MGMTD Backend Adapters
  Client: 			%s
    Conn-FD: 			%d
    Client-Id: 			%d
    Ref-Count: 			%u
    Msg-Recvd: 			%llu
    Bytes-Recvd: 		%llu
    Msg-Sent: 			%llu
    Bytes-Sent: 		%llu
  Total: %d
XPath: '%s'
    -- Adapter: %p
MGMT Frontend Sessions%s/mgmtd_fe.sockMGMTD Frontend Adpaters
  Client: 				%s
    Conn-FD: 				%d
    Num-Set-Cfg: 			%lu
    Last-Set-Cfg-Details:
%Y-%m-%dT%H:%M:%S,%09lu      Set-Cfg Start: 			%s
      Set-Cfg End: 			%s
    Num-Commits: 			%lu
    Last-Commit-Details:
      Commit Start: 			%s
      Commit End: 			%s
    Sessions
      Session: 				%p
        Client-Id: 			%llu
        Session-Id: 			%llu
        DS-Locks:
          %s
          None
    Total-Sessions: 			%d
    Msg-Recvd: 				%llu
    Bytes-Recvd: 			%llu
    Msg-Sent: 				%llu
    Bytes-Sent: 			%llu
detail%Y%m%d%H%M%S%s/commit-%s.jsonLast 10 commit history:
%4d %23s %s
TXN: %s: Invalid Xpath '%sInvalid xpathMGMT TransactionsNo such datastore!Terminating on signalTXN: %s: XPath: '%s'UNfailed to create a 'show' txnUnsupported datastoreInvalid messageCandidate DS is not lockedRunning DS is not lockedNo such path: %sNot an RPC or action path: %ssuccessfailureCreateDeletesuccessfulMGMTD Transactions
  Txn: 			0x%p
    Txn-Id: 			%llu
    Session-Id: 		%llu
    Type: 			%s
    Ref-Count: 			%d
ROLLBACKInvalid commit Id
s:n../mgmtd/mgmt_txn.cclientstxn_reqtxn_req->req.set_cfgtxn_req->req.get_datatxn_req->req.rpc../mgmtd/mgmt_fe_adapter.csession->adapter/frr-ripngd/frr-ripd/frr-ripngd:ripngd/frr-ripd:ripd/ietf-key-chain:key-chains/frr-interface:lib/interface/frr-zebra:zebra/frr-vrf:lib/frr-interface:lib/frr-filter:lib/frr-route-map:lib/frr-affinity-map:libfrr-zebra-route-mapietf-netconf-with-defaultsmgmtd10.1.1mgmtd daemonfrrfrrvtyMGMTD restarting!../mgmtd/mgmt_main.c__func__, txn->txn_id__func__txn_rpc_timeout&txn->rpc_timeoutnb_configtxn_get_tree_timeout&txn->get_tree_timeouttxn->commit_cfg_req__func__, adapter->name!mm->cfg_txnmgmt_txn_cfg_commit_timedout&txn->comm_cfg_timeoutmgmt_txn_process_get_cfg&txn->proc_get_cfgmgmt_txn_process_commit_cfg&txn->proc_comm_cfgmgmt_txn_process_set_cfg&txn->proc_set_cfgmgmt_txn_mm && mgmt_txn_tm__func__, num_processed, 128cfg_rootget_req__func__, txn_req->req_eventtxn config batcheserrortxn get-data repliestxn rpc requeststxn get-tree requeststxn get-data requestsManagement transactiontxn set-config requeststxn request../mgmtd/mgmt_history.cdst_ds_ctxsrc_ds_ctx../mgmtd/mgmt_history.hn < szcommit info__func__, txn_idrds_ctx!mgmt_fe_sessions!mgmt_loopfrontend adaptera && a->refcountmsg->refer_id == 0session->adapter == adapter__func__, client_id__func__, len, adapter->name__func__, adapter->name, lenadapter->refcount == 1&session->proc_show_txn_clnpmgmt_fe_session_cfg_txn_clnup&session->proc_cfg_txn_clnpfrontend sessionManagement frontend adapater../mgmtd/mgmt_be_adapter.c__func__, xpathid < MGMTD_BE_CLIENT_ID_MAX__func__, *initbackend adapter__func__, notifmgmt_be_adapter_conn_init&adapter->conn_init_evManagement backend adapaterxpath regexmgmtd-testcUnknown/Invalid../mgmtd/mgmt_ds.c__func__, ds_id__func__, ret__func__, file_path__func__, base_xpathmgmt_ds_node_iter_fnnonerunningcandidateoperationalManagement datastoreskip_runasno_zebrasocket_sizevrfwnetnsMGMTDFRR Management Daemon.status == 0mm->terminating == falseTXN: %s: Added a new SETCFG req-id: %llu txn-id: %llu, session-id: %lluTXN: %s: Added a new COMMITCFG req-id: %llu txn-id: %llu session-id: %lluTXN: %s: Added a new GETCFG req-id: %llu txn-id: %llu session-id: %lluTXN: %s: Added a new GETTREE req-id: %llu txn-id: %llu session-id: %lluTXN: %s: Added a new RPC req-id: %llu txn-id: %llu session-id: %llu%s: ERROR: Backend timeout txn-id: %llu aborting commitOperation on the backend timed-out. Aborting commit!TXN: %s: Added new '%s' txn-id: %llumultiple lock taken by session-id: %llu on DS:%sFE-ADAPTER: %s: Failed to lock the DS:%s for session-id: %llu from %s!FE-ADAPTER: %s: Write-Locked the DS:%s for session-id: %llu from %sFE-ADAPTER: %s: Sending LOCK_DS_REPLY message to MGMTD Frontend client '%s' scok: %dFE-ADAPTER: %s: Sending SETCFG_REPLY message to MGMTD Frontend client '%s'FE-ADAPTER: %s: Sending COMMIT_CONFIG_REPLY message to MGMTD Frontend client '%s'FE-ADAPTER: %s: Sending GET_REPLY message to MGMTD Frontend client '%s'FE-ADAPTER: %s: ERROR: Error building get-tree result for client %s session-id %llu req-id %llu scok %d result type %uFE-ADAPTER: %s: Sending get-tree result from adapter %s to session-id %llu req-id %llu scok %d result type %u len %uFE-ADAPTER: %s: ERROR: Error building rpc-reply result for client %s session-id %llu req-id %llu result type %uFE-ADAPTER: %s: Sending rpc-reply from adapter %s to session-id %llu req-id %llu len %uFE-ADAPTER: %s: Added new MGMTD Frontend adapter '%s'FE-ADAPTER: %s: ERROR: found orphaned session id %llu client id %llu adapter %sBE-ADAPTER: %s: Added new MGMTD Backend adapter '%s'DS: %s:  -- START: base xpath: '%s'DS: %s:            search base schema: '%s'DS: %s:  -- END: base xpath: '%s'%s: WARNING: unlock on unlocked in DS:%s last session-id %lluunlock unlocked by session-id: %llu on DS:%sFE-ADAPTER: %s: Unlocked DS:%s write-locked earlier by session-id: %llu from %s%s: ERROR: Failed to load config from the file %s%s: ERROR: merge failed with err: %dDS: %s:  -- START DS walk for DSid: %d    >>>>> Datastore Not Initialized!
ERROR: Could not access %s datastore!
BE-ADAPTER: %s: Sending TXN_REQ to '%s' txn-id: %lluBE-ADAPTER: %s: Sending CFGDATA_CREATE_REQ to '%s' txn-id: %llu last: %sBE-ADAPTER: %s: Sending CFG_APPLY_REQ to '%s' txn-id: %lluTXN: %s: Processing COMMIT_CONFIG for txn-id: %llu session-id: %llu Phase '%s'Could not send TXN_CREATE to backend adapterTXN: %s: txn-id: %llu session-id: %llu Phase '%s'Could not send CFG_APPLY_REQ to backend adapterBE-ADAPTER: %s: Init XPath MapsBE-ADAPTER: %s:  - CFG XPATH: '%s'BE-ADAPTER: %s:  - OPER XPATH: '%s'BE-ADAPTER: %s:  - NOTIF XPATH: '%s'BE-ADAPTER: %s:  - RPC XPATH: '%s'BE-ADAPTER: %s: Total Cfg XPath Maps: %uBE-ADAPTER: %s: Total Oper XPath Maps: %uBE-ADAPTER: %s: Total Noitf XPath Maps: %uBE-ADAPTER: %s: Total RPC XPath Maps: %ucannot initialize backend serverBE-ADAPTER: %s: Cient: %s: subscribedBE-ADAPTER: %s: Checking client: %s for xpath: '%s'BE-ADAPTER: %s: client: %s: interestedBE-ADAPTER: %s: client: %s: not interestedMGMTD Backend CFG XPath Registry: Count: %u

MGMTD Backend OPER XPath Registry: Count: %u

MGMTD Backend NOTIFY XPath Registry: Count: %u

MGMTD Backend RPC XPath Registry: Count: %u
  -- Client: '%s'	config:%d notify:%d oper:%d rpc:%d
cannot initialize frontend serverFE-ADAPTER: %s: ERROR: txn-id doesn't match, session txn-id is %llu current txnid: %lluTXN: %s: Sending %zu Get-Config/Data replies next-index:%lld%s: ERROR: Failed to send GET-CONFIG-REPLY txn-id: %llu session-id: %llu req-id: %llu%s: ERROR: Invalid Txn-Req-Event %uTXN: %s:  [%d] XPATH: '%s', Value: '%s'    Max-Set-Cfg-Duration: 		%lu uSec
    Min-Set-Cfg-Duration: 		%lu uSec
    Avg-Set-Cfg-Duration: 		%lu uSec
    Max-Commit-Duration: 		%lu uSecs
    Max-Commit-Batch-Size: 		%lu
    Min-Commit-Duration: 		%lu uSecs
    Min-Commit-Batch-Size: 		%lu
    Last-Commit-Duration: 		%lu uSecs
    Last-Commit-Batch-Size: 		%lu
    Last-Commit-CfgData-Reqs: 		%lu
    Last-Commit-CfgApply-Reqs: 		%lu
        Prep-Config Start: 		%s
        Txn-Create Start: 		%s
        Apply-Config Start: 		%s
        Apply-Config End: 		%s
        Txn-Delete Start: 		%s
Failed to remove commit history file %s: %sSlot Commit-ID               Commit-Record-Time
TXN: %s: Deleting SETCFG req-id: %llu txn-id: %lluTXN: %s: Deleting COMMITCFG req-id: %llu txn-id: %lluTXN: %s:  freeing batch txn-id %lluTXN: %s: Deleting GETCFG req-id: %llu txn-id: %lluTXN: %s: Deleting GETTREE req-id: %llu of txn-id: %lluTXN: %s: Deleting RPC req-id: %llu txn-id: %lluTXN: %s: Removed req-id: %llu from request-list (left:%zu)TXN: %s: Processing %zu GET_CONFIG requests txn-id: %llu session-id: %lluTXN: %s: Trying to get all data under '%s'TXN: %s: Got %d remaining data-replies for xpath '%s'TXN: %s: Processed maximum number of Get-Config requests (%d/%d). Rescheduling for rest.FE-ADAPTER: %s: deleting client adapter '%s'FE-ADAPTER: %s: notify disconnect for client adapter '%s'FE-ADAPTER: %s: Sending edit-reply from adapter %s to session-id %llu req-id %llu len %uFE-ADAPTER: %s: ERROR: failed sending error for txn-id %llu session not found%s: ERROR: Error sending the results of GETTREE for txn-id %llu req_id %llu to requested type %uError converting results of GETTREE%s: ERROR: Backend timeout txn-id: %llu ending get-tree%s: ERROR: Error sending the results of RPC for txn-id %llu req_id %llu to requested type %uError converting results of RPC%s: ERROR: Backend timeout txn-id: %llu ending rpcOperation on the backend timed-out%s: ERROR: For implicit commit config only one SETCFG-REQ can be allowed!TXN: %s: XPath: '%s', Value: '%s'TXN: %s: Allocated value at %p ==> '%s'%s: ERROR: Commit already in-progress txn-id: %llu session-id: %llu. Cannot start anotherTXN: %s: Processing %zu SET_CONFIG requests txn-id:%llu session-id: %lluUnable to retrieve DS Config Tree!%s: ERROR: Failed to send SET_CONFIG_REPLY txn-id %llu session-id: %lluTXN: %s: Processed maximum number of Set-Config requests (%d/%d/%d). Rescheduling for rest.%s: ERROR: DS %u not locked for implicit commit txn-id: %llu session-id: %llu err: %srunning DS not locked for implicit commit%s: ERROR: Failed to create CONFIG Transaction for downloading CONFIGs for client '%s'TXN: %s: Created initial txn-id: %llu for BE client '%s'Backend daemon disconnected while processing commit!BE-ADAPTER: %s: deleting client adapter '%s'BE-ADAPTER: %s: notify disconnect for client adapter '%s'XXX txn in progress, retry initInternal Error! Could not send config data to backend!%s: ERROR: Could not send CFGDATA_CREATE txn-id: %llu to client '%sInternal error! Failed to initiate transaction at backend!Internal error! Failed to download config data to backend!TXN: %s: CFGDATA_CREATE_REQ sent to '%s' was successful txn-id: %llu err: %s%s: ERROR: CFGDATA_CREATE_REQ sent to '%s' failed txn-id: %llu err: %sInternal error! Failed to apply config data on backend!%s: ERROR: CFGDATA_APPLY_REQ sent to '%s' failed txn-id: %llu err: %s%s: ERROR: Could not send get-tree message to backend client %sTXN: %s: Sent get-tree req to backend client %s%s: ERROR: Could not send rpc message to backend client %sTXN: %s: Sent rpc req to backend client %sFE-ADAPTER: %s: ERROR: adapter %s: recv msg unknown session-id %lluFE-ADAPTER: %s: Received get-data request from client %s for session-id %llu req-id %lluInvalid message rcvd from session-id: %lluInvalid defaults value %u for session-id: %lluUnsupported datastore %u requested from session-id: %lluXPath doesn't resolve for session-id: %lluFE-ADAPTER: %s: No backends provide xpath: %s for txn-id: %llu session-id: %lluFE-ADAPTER: %s: Created new show txn-id: %llu for session-id: %lluCandidate DS is locked by another sessionRunning DS is locked by another sessionFailed to create a configuration transactionFE-ADAPTER: %s: Created new config txn-id: %llu for session-id: %lluFE-ADAPTER: %s: Received RPC request from client %s for session-id %llu req-id %lluFE-ADAPTER: %s: No backends implement xpath: %s for txn-id: %llu session-id: %lluNo backends implement xpath: %sFailed to create an RPC transactionFE-ADAPTER: %s: Created new rpc txn-id: %llu for session-id: %lluFE-ADAPTER: %s: ERROR: unknown native message session-id %llu req-id %llu code %u to FE adapter %sFE-ADAPTER: %s: ERROR: native message to adapter %s too short %zuFE-ADAPTER: %s: Failed to decode %zu bytes for adapter: %sFE-ADAPTER: %s: Decoded %zu bytes of message: %u from adapter: %sFE-ADAPTER: %s: Got REGISTER_REQ from '%s'FE-ADAPTER: %s: Client '%s' (FD:%d) seems to have reconnected. Removing old connection (FD:%d)FE-ADAPTER: %s: Got SESSION_REQ (create) for client-id %llu from '%s'FE-ADAPTER: %s: Found session-id %llu using client-id %lluFE-ADAPTER: %s: Session not found using client-id %lluFE-ADAPTER: %s: Got SESSION_REQ (destroy) for session-id %llufrom '%s'FE-ADAPTER: %s: Got LOCKDS_REQ (%sLOCK) for DS:%s for session-id %llu from '%s'Lock/Unlock on DS other than candidate or running DS not supportedFailed to retrieve handle for DS!Lock already taken on DS by another session!Lock on DS was not taken by this session!FE-ADAPTER: %s: Failed to send LOCK_DS_REPLY for DS %u session-id: %llu from %sFE-ADAPTER: %s: Got SETCFG_REQ (%d Xpaths, Implicit:%c) on DS:%s for session-id %llu from '%s'Set-Config on datastores other than Candidate DS not supportedImplicit commit on datastores other than running DS not supportedFailed to create a Configuration session!FE-ADAPTER: %s: Created new Config txn-id: %llu for session-id %lluFE-ADAPTER: %s: Config txn-id: %llu for session-id: %llu already createdA Configuration transaction is already in progress!Request processing for SET-CONFIG failed!FE-ADAPTER: %s: Got COMMCFG_REQ for src-DS:%s dst-DS:%s (Abort:%c) on session-id %llu from '%s'Source/Dest for commit must be candidate/running DSCommit requires lock on candidate and/or running DSFE-ADAPTER: %s: Created txn-id: %llu for session-id %llu for COMMIT-CFG-REQRequest processing for COMMIT-CONFIG failed!FE-ADAPTER: %s: Got GET_REQ for DS:%s (xpaths: %d) on session-id %llu from '%s'get-req on unsupported datastoreFailed to create a Show transaction!Request processing for GET failed!FE-ADAPTER: %s: Transaction in progress txn-id: %llu for session-id: %lluFE-ADAPTER: %s: ERROR: Got unhandled message of type %u from '%s'%s: ERROR: Error reply from %s cannot find txn-id %llu%s: ERROR: Error reply from %s for txn-id %llu cannot find req_id %llu%s: ERROR: Error reply from %s for txn-id %llu req_id %llu%s: ERROR: GETTREE reply from %s for a missing txn-id %llu%s: ERROR: GETTREE reply from %s for txn-id %llu req_id %llu error parsing result of type %u%s: ERROR: GETTREE reply from %s for txn-id %llu req_id %llu error merging result%s: ERROR: GETTREE reply from %s for txn-id %llu missing req_id %llu%s: ERROR: RPC reply from %s for a missing txn-id %llu%s: ERROR: RPC reply from %s for txn-id %llu req_id %llu error parsing result of type %u: %s%s: ERROR: RPC reply from %s for txn-id %llu req_id %llu error merging result: %sCannot parse result from the backend%s: ERROR: RPC reply from %s for txn-id %llu missing req_id %lluBE-ADAPTER: %s: Got ERROR from '%s' txn-id %llxBE-ADAPTER: %s: Got TREE_DATA from '%s' txn-id %llxBE-ADAPTER: %s: Got RPC_REPLY from '%s' txn-id %llxBE-ADAPTER: %s: Got NOTIFY from '%s'BE-ADAPTER: %s: ERROR: Corrupt notify msgBE-ADAPTER: %s: ERROR: No schema found for notification: %sBE-ADAPTER: %s: ERROR: unknown native message txn-id %llu req-id %llu code %u from BE client for adapter %sBE-ADAPTER: %s: ERROR: native message to adapter %s too short %zuBE-ADAPTER: %s: Failed to decode %zu bytes for adapter: %sBE-ADAPTER: %s: Decoded %zu bytes of message: %u for adapter: %sBE-ADAPTER: %s: Got SUBSCR_REQ from '%s' to register xpaths config: %zu oper: %zu notif: %zu rpc: %zuBE-ADAPTER: %s: Client '%s' (FD:%d) seems to have reconnected. Removing old connection (FD:%d)!BE-ADAPTER: %s: Sending SUBSCR_REPLY client: %s sucess: %uBE-ADAPTER: %s: Got %s TXN_REPLY from '%s' txn-id %llx with '%s'BE-ADAPTER: %s: Got CFGDATA_REPLY from '%s' txn-id %llx err:'%s'BE-ADAPTER: %s: Got %s CFG_APPLY_REPLY from '%s' txn-id %llx err:'%s'BE-ADAPTER: %s: ERROR: Unable to resolve adapter '%s' to a valid ID. Disconnecting!%s: ERROR: Failed to create CONFIG Transaction for downloading CONFIGsTXN: %s: Created rollback txn-id: %lluERROR: Rollback already in progress!
Failed to lock the DS %u for rollback Reason: %s!
Error with parsing the file with error code %d
Error with creating commit apply txn with error code %d
Number of commits found (%d) less than required to rollback
Number of commits found (%d), Rollback of last commit is not supported
  -s, --socket_size  Set MGMTD peer socket send buffer size
  -n, --vrfwnetns    Use NetNS as VRF backend
The -%c option no longer exists.
Please refer to the manual.
%s: ERROR: Unable to retrieve config from DS %d txn-id: %llu session-id: %llu req-id: %llu/frr-vrf:lib/vrf/frr-zebra:zebra/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-staticd:staticd__func__, adapter->name, txn_id, req_id, ly_strerrcode(err)__func__, adapter->name, txn_id, req_id, reply_msg->result_type, ly_strerrcode(err)__func__, adapter->name, txn_id, req_id__func__, adapter->name, txn_id__func__, adapter->name, txn_id, req_id, data_msg->result_type!"non-native req event in native erorr path"__func__, mgmt_be_client_id2name(id)__func__, data_req[indx]->data->xpath__func__, adapter->name, txn->txn_id, error_if_any ? error_if_any : "None"__func__, txn->txn_id, adapter->nameIS_IDBIT_SET(cmtcfg_req->clients, adapter->id)txn->type == MGMTD_TXN_TYPE_CONFIG && txn->commit_cfg_reqcmtcfg_req->phase == MGMTD_COMMIT_PHASE_TXN_CREATE__func__, txn->txn_id, txn->session_id__func__, cfg_chg->value, cfg_chg->value__func__, cfg_req[indx]->data->xpath, (cfg_req[indx]->data->value && cfg_req[indx]->data->value->encoded_str_val ? cfg_req[indx]->data->value->encoded_str_val : "NULL")!"MGMTD TXN: Call txn_init() only once"!"code bug do not register this event"__func__, mgmt_txn_type2str(type), txn->txn_id__func__, get_reply->num_reply, get_data->xpaths[indx]__func__, get_data->xpaths[indx]__func__, txn_req->req.get_data->ds_id, txn->txn_id, txn->session_id, txn_req->req_idtxn_req->req_event == MGMTD_TXN_PROC_GETCFG__func__, mgmt_txn_reqs_count(&txn->get_cfg_reqs), txn->txn_id, txn->session_id__func__, get_req->total_reply, data->xpath, data_value->encoded_str_val__func__, txn_req->txn->txn_id, txn_req->txn->session_id, txn_req->req_id__func__, data_reply->n_data, data_reply->next_indx__func__, txn->txn_id, txn->session_id, mgmt_txn_commit_phase_str(txn)txn->type == MGMTD_TXN_TYPE_RPCtxn->type == MGMTD_TXN_TYPE_SHOW__func__, txn->txn_id, req_id, rpc->result_type__func__, txn->txn_id, req_id, get_tree->result_typetxn->type == MGMTD_TXN_TYPE_CONFIG__func__, num_processed, 128, (int)left__func__, txn_req->req.set_cfg->dst_ds_id, txn->txn_id, txn->session_id, strerror(ret)txn_req->req.set_cfg->dst_ds_ctxmgmt_txn_reqs_count(&txn->set_cfg_reqs) == 1txn_req->req_event == MGMTD_TXN_PROC_SETCFG__func__, mgmt_txn_reqs_count(&txn->set_cfg_reqs), txn->txn_id, txn->session_id(*batch)->txn && (*batch)->txn->type == MGMTD_TXN_TYPE_CONFIG__func__, (*batch)->txn->txn_id__func__, (*txn_req)->req_id, mgmt_txn_reqs_count(req_list)__func__, (*txn_req)->req_id, (*txn_req)->txn->txn_id__func__, txn_req->req_id, txn->txn_id, txn->session_idpath, safe_strerror((*__errno_location ()))__func__, session->adapter->name, session->session_id, req_id, (((((uint8_t *)(msg)) == ((void *)0)) ? 0 : (((struct darr_metadata *)((uint8_t *)(msg))) - 1)->len))__func__, session->cfg_txn_id, txn_id__func__, session->session_id, session->client_id, session->adapter ? session->adapter->name : "NULL"__func__, session->txn_id, session->session_id__func__, msg->xpath, session->txn_id, session->session_id__func__, session->adapter->name, session->session_id, msg->req_id__func__, session->cfg_txn_id, session->session_id__func__, xpath, session->txn_id, session->session_id__func__, msg->refer_id, msg->req_id, msg->code, adapter->name__func__, adapter->name, msg->refer_id!mgmt_config_txn_in_progress()__func__, lockds_req->ds_id, session->session_id, session->adapter->name__func__, session->session_id, client_id__func__, adapter->name, adapter->conn->fd, old->conn->fd__func__, fe_msg->message_case, adapter->name__func__, mgmt_ds_id2name(fe_msg->get_req->ds_id), (int)fe_msg->get_req->n_data, fe_msg->get_req->session_id, adapter->name__func__, mgmt_ds_id2name(fe_msg->commcfg_req->src_ds_id), mgmt_ds_id2name(fe_msg->commcfg_req->dst_ds_id), fe_msg->commcfg_req->abort ? 'T' : 'F', fe_msg->commcfg_req->session_id, adapter->name__func__, (int)fe_msg->setcfg_req->n_data, fe_msg->setcfg_req->implicit_commit ? 'T' : 'F', mgmt_ds_id2name(fe_msg->setcfg_req->ds_id), fe_msg->setcfg_req->session_id, adapter->name__func__, fe_msg->lockds_req->lock ? "" : "UN", mgmt_ds_id2name(fe_msg->lockds_req->ds_id), fe_msg->lockds_req->session_id, adapter->name__func__, fe_msg->session_req->session_id, adapter->name__func__, fe_msg->session_req->client_conn_id, adapter->name__func__, fe_msg->register_req->client_name__func__, len, fe_msg->message_case, adapter->name__func__, session->adapter->name, session->session_id, req_id, result_type__func__, session->adapter->name, session->session_id, req_id, short_circuit_ok, result_type, (((((uint8_t *)(msg)) == ((void *)0)) ? 0 : (((struct darr_metadata *)((uint8_t *)(msg))) - 1)->len))__func__, session->adapter->name, session->session_id, req_id, short_circuit_ok, result_type__func__, session->adapter->namemgmt_fe_session_show_txn_clnup__func__, session->adapter->name, scoksession->adapter->refcount > 1__func__, mgmt_ds_id2name(ds_id), session->session_id, session->adapter->namesession->session_id, mgmt_ds_id2name(ds_id)__func__, mgmt_be_client_id2name(id), xpathRB_EMPTY(nb_config_cbs, &adapter->cfg_chgs)!mgmt_be_find_adapter_by_fd(conn_fd)__func__, (((be_rpc_xpath_map) == ((void *)0)) ? 0 : (((struct darr_metadata *)(be_rpc_xpath_map)) - 1)->len)__func__, (((be_notif_xpath_map) == ((void *)0)) ? 0 : (((struct darr_metadata *)(be_notif_xpath_map)) - 1)->len)__func__, (((be_oper_xpath_map) == ((void *)0)) ? 0 : (((struct darr_metadata *)(be_oper_xpath_map)) - 1)->len)__func__, (((be_cfg_xpath_map) == ((void *)0)) ? 0 : (((struct darr_metadata *)(be_cfg_xpath_map)) - 1)->len)adapter && adapter->conn->fd >= 0__func__, adapter->name, success__func__, be_msg->cfg_apply_reply->success ? "successful" : "failed", adapter->name, be_msg->cfg_apply_reply->txn_id, be_msg->cfg_apply_reply->error_if_any ? be_msg->cfg_apply_reply->error_if_any : "None"__func__, adapter->name, be_msg->cfg_data_reply->txn_id, be_msg->cfg_data_reply->error_if_any ? be_msg->cfg_data_reply->error_if_any : "None"__func__, be_msg->txn_reply->create ? "Create" : "Delete", adapter->name, be_msg->txn_reply->txn_id, be_msg->txn_reply->success ? "success" : "failure"__func__, be_msg->subscr_req->client_name, be_msg->subscr_req->n_config_xpaths, be_msg->subscr_req->n_oper_xpaths, be_msg->subscr_req->n_notif_xpaths, be_msg->subscr_req->n_rpc_xpaths__func__, len, be_msg->message_case, adapter->name__func__, adapter->name, txn_id, end_of_data ? "yes" : "no"!src->config_ds && !dst->config_ds__func__, dst->ds_id, src->ds_iddnode->schema && dnode->schema->priv__func__, lysc_path(base_dnode->schema, LYSC_PATH_LOG, xpath, sizeof(xpath))__func__, mgmt_ds_id2name(ds_ctx->ds_id), ds_ctx->vty_session_id!"MGMTD: Call ds_init after frr_init only!"!"MGMTD: Call ds_init only once!"__func__, mgmt_ds_id2name(dst->ds_id), mgmt_ds_id2name(src->ds_id)|��������`�� ��������������������������@'���$�����&������"������!�����( �����������p��p��mgmt_txn_send_editmgmt_txn_notify_be_txn_replymgmt_txn_initmgmt_txn_register_eventmgmt_txn_send_be_cfg_applymgmt_txn_send_be_txn_deletemgmt_history_rollback_to_cmtmgmt_time_to_stringremove_filemgmt_time_to_stringmgmt_fe_adapter_send_edit_replymgmt_fe_adapter_initmgmt_fe_adapter_unlockmgmt_fe_adapter_send_notifymgmt_fe_session_register_eventmgmt_fe_cleanup_sessionmgmt_be_get_adapter_configmgmt_be_adapter_initmgmt_be_adapter_unlockmgmt_be_adapter_conn_initmgmt_be_adapter_sched_init_eventmgmt_ds_lockmgmt_ds_is_lockedmgmt_ds_initmgmt_exitsigintsighupmgmt_txn_rollback_trigger_cfg_applymgmt_txn_notify_rpc_replymgmt_txn_notify_tree_data_replymgmt_txn_notify_errormgmt_txn_send_rpcmgmt_txn_send_get_tree_opermgmt_txn_send_get_reqmgmt_txn_notify_be_cfg_apply_replymgmt_txn_notify_be_cfgdata_replymgmt_txn_send_be_cfg_datamgmt_txn_notify_be_adapter_connmgmt_txn_send_commit_config_reqmgmt_txn_send_set_config_reqmgmt_txn_create_newmgmt_txn_get_configmgmt_txn_process_get_cfgtxn_iter_get_config_data_cbmgmt_txn_send_getcfg_reply_datamgmt_txn_send_be_txn_createmgmt_txn_process_commit_cfgtxn_rpc_timeouttxn_get_tree_timeouttxn_rpc_donetxn_get_tree_data_donemgmt_txn_cfg_commit_timedoutmgmt_txn_process_set_cfgmgmt_txn_cfg_batch_freemgmt_txn_req_freemgmt_txn_req_allocmgmt_fe_adapter_txn_errorfe_adapter_send_edit_replymgmt_fe_send_set_cfg_replymgmt_fe_create_adaptermgmt_fe_abort_if_session �fe_adapter_handle_get_datafe_adapter_handle_editfe_adapter_handle_rpcfe_adapter_handle_native_msgmgmt_fe_session_handle_get_req_msgmgmt_fe_session_handle_commit_config_req_msgmgmt_fe_session_handle_setcfg_req_msgmgmt_fe_session_handle_lockds_req_msgmgmt_fe_find_session_by_client_idmgmt_fe_adapter_cleanup_old_connmgmt_fe_adapter_handle_msgmgmt_fe_adapter_process_msgfe_adapter_send_rpc_replyfe_adapter_send_tree_datamgmt_fe_adapter_notify_disconnectmgmt_fe_adapter_deletefe_adapter_send_get_replyfe_adapter_send_commit_cfg_replyfe_adapter_send_set_cfg_replyfe_adapter_send_lockds_replymgmt_fe_session_unlock_dsmgmt_fe_session_write_lock_dsmgmt_be_interested_clientsbe_is_client_interestedmgmt_be_create_adaptermgmt_be_xpath_map_initmgmt_be_adapter_send_notifybe_adapter_handle_native_msgmgmt_be_send_subscr_replymgmt_be_adapter_cleanup_old_connmgmt_be_adapter_handle_msgmgmt_be_adapter_process_msgmgmt_be_send_cfgapply_reqmgmt_be_send_cfgdata_reqmgmt_be_send_txn_reqmgmt_be_adapter_notify_disconnectmgmt_be_adapter_deletemgmt_ds_iter_datamgmt_ds_merge_src_with_dst_dsmgmt_ds_load_config_from_filemgmt_walk_ds_nodesmgmt_ds_unlockmgmt_ds_replace_dst_with_src_dstypeInternal CLI error [%s]
valuefmtlockInvalid operation!
Data tree is missing!
contentexactdebug mgmt backend frontendMGMT debugging status:
filepathw/ERROR: File %s : %s
last%% invalid input for %s: %s
%s/commit-index.datwb<<container>>No such source datastore! Validation failedrbdummybatch../mgmtd/mgmt_vty.cfrr-staticd2019-12-032019-09-09frr-bfdd2019-05-092011-06-01ietf-netconf2020-01-02frr-zebra2019-06-01txn commit-config requestsinstanceindex_pathcmt_info.cmt_json_file*txn && (*txn)->refcountshow debugging [mgmt]show_debugging_mgmt_cmdshow_debugging_mgmtmgmt reset-statisticsmgmt_reset_performance_statsmgmt_performance_measurementdebug_mgmt_cmddebug_mgmtmgmt_rollback_cmdmgmt_rollbackmgmt_save_config_cmdmgmt_save_configmgmt_load_config_cmdmgmt_load_configmgmt_rpc_cmdmgmt_rpcmgmt_edit_cmdmgmt_editmgmt_replace_config_data_cmdmgmt_replace_config_datamgmt remove-config WORD$pathmgmt_remove_config_data_cmdmgmt_remove_config_datamgmt delete-config WORD$pathmgmt_delete_config_data_cmdmgmt_delete_config_datamgmt_set_config_data_cmdmgmt_set_config_datamgmt_create_config_data_cmdmgmt_create_config_datamgmt_commit_cmdmgmt_commitshow mgmt commit-historyshow_mgmt_cmt_hist_cmdshow_mgmt_cmt_histshow_mgmt_map_xpath_cmdshow_mgmt_map_xpathshow_mgmt_dump_data_cmdshow_mgmt_dump_datashow_mgmt_get_data_cmdshow_mgmt_get_datashow_mgmt_get_config_cmdshow_mgmt_get_configshow_mgmt_ds_cmdshow_mgmt_dsshow mgmt transaction allshow_mgmt_txn_cmdshow_mgmt_txnshow_mgmt_fe_adapter_cmdshow_mgmt_fe_adaptershow_mgmt_be_xpath_reg_cmdshow_mgmt_be_xpath_regshow mgmt backend-adapter allshow_mgmt_be_adapter_cmdshow_mgmt_be_adaptermgmt debugmgmt_config_read_in&mgmt_daemon_info->read_inPN���M���M���M���M���M���M��gN��\N���M���M���M���M��'N��mgmt_fe_create_session// SPDX-License-Identifier: BSD-2-Clause
module frr-staticd {
  yang-version 1.1;
  namespace "http://frrouting.org/yang/staticd";
  prefix frr-staticd;

  import frr-routing {
    prefix frr-rt;
  }

  import frr-nexthop {
    prefix frr-nexthop;
  }

  import ietf-inet-types {
    prefix inet;
  }

  import frr-bfdd {
    prefix frr-bfdd;
  }

  organization
    "FRRouting";
  contact
    "FRR Users List: <mailto:frog@lists.frrouting.org>
     FRR Development List: <mailto:dev@lists.frrouting.org>";
  description
    "This module defines a model for managing FRR staticd information.
     This YANG module augments the ietf-routing with additional
     nexthop information

     Copyright 2020 FRRouting

     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions
     are met:

     1. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";

  revision 2019-12-03 {
    description
      "Initial revision.";
  }

  identity staticd {
    base frr-rt:routing-protocol;
    description
      "'Staticd' routing pseudo-protocol.";
  }

  grouping staticd-prefix-attributes {
    list path-list {
      key "table-id distance";
      leaf table-id {
        type uint32;
        description
          "Table-id";
      }

      leaf distance {
        type frr-rt:administrative-distance;
        description
          "Admin distance associated with this route.";
      }

      leaf tag {
        type uint32;
        default "0";
        description
          "Route tag";
      }

      uses frr-nexthop:frr-nexthop;
    }
  }

  augment "/frr-rt:routing/frr-rt:control-plane-protocols/frr-rt:control-plane-protocol" {
    container staticd {
      when "../frr-rt:type = 'frr-staticd:staticd'" {
        description
          "This container is only valid for the 'staticd' routing
           protocol.";
      }
      description
        "Support for a 'staticd' pseudo-protocol instance
         consists of a list of routes.";
      list route-list {
        key "prefix afi-safi";
        description
          "List of staticd IP routes.";
        leaf prefix {
          type inet:ip-prefix;
          description
            "IP prefix.";
        }
        leaf afi-safi {
          type identityref {
            base frr-rt:afi-safi-type;
          }
          description
            "AFI-SAFI type.";
        }

        uses staticd-prefix-attributes {
          augment "path-list/frr-nexthops/nexthop" {
            container bfd-monitoring {
              description "BFD monitoring options.";
              presence
                "Present if BFD configuration is available.";

              when "../nh-type = 'ip4' or ../nh-type = 'ip4-ifindex' or
                    ../nh-type = 'ip6' or ../nh-type = 'ip6-ifindex'";
              uses frr-bfdd:bfd-monitoring;
            }
          }
        }

        list src-list {
          key "src-prefix";
          leaf src-prefix {
            type inet:ipv6-prefix;
            description
              "IPv6 source prefix";
          }

          uses staticd-prefix-attributes;
        }
      }
    }
  }
}
// SPDX-License-Identifier: BSD-2-Clause
module frr-ripngd {
  yang-version 1.1;
  namespace "http://frrouting.org/yang/ripngd";
  prefix frr-ripngd;

  import ietf-inet-types {
    prefix inet;
  }
  import ietf-yang-types {
    prefix yang;
  }
  import frr-if-rmap {
    prefix frr-if-rmap;
  }
  import frr-filter {
    prefix frr-filter;
  }
  import frr-interface {
    prefix frr-interface;
  }
  import frr-vrf {
    prefix frr-vrf;
  }
  import frr-route-map {
    prefix frr-route-map;
  }
  import frr-route-types {
    prefix frr-route-types;
  }

  organization
    "FRRouting";
  contact
    "FRR Users List:       <mailto:frog@lists.frrouting.org>
     FRR Development List: <mailto:dev@lists.frrouting.org>";
  description
    "This module defines a model for managing FRR ripngd daemon.

     Copyright 2020 FRRouting

     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions
     are met:

     1. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";

  revision 2019-09-09 {
    description
      "Changed interface references to use
      frr-interface:interface-ref typedef";
    reference "FRRouting";
  }
  revision 2018-11-27 {
    description
      "Initial revision.";
    reference
      "RFC 2080: RIPng for IPv6.";
  }

  container ripngd {
    description "ripng routing instance data";
    /*
     * Routing instance configuration.
     */
    list instance {
      key "vrf";
      description
        "RIPng routing instance.";

      leaf vrf {
        type frr-vrf:vrf-ref;
        description
          "VRF name.";
      }
      leaf allow-ecmp {
        type uint8;
        default 0;
        description
          "Allow equal-cost multi-path.";
      }
      leaf default-information-originate {
        type boolean;
        default "false";
        description
          "Control distribution of default route.";
      }
      leaf default-metric {
        type uint8 {
          range "1..16";
        }
        default "1";
        description
          "Default metric of redistributed routes.";
      }
      leaf-list network {
        type inet:ipv6-prefix;
        description
          "Enable RIPng on the specified IPv6 network.";
      }
      leaf-list interface {
        type frr-interface:interface-ref;
        description
          "Enable RIPng on the specified interface.";
      }
      list offset-list {
        key "interface direction";
        description
          "Offset-list to modify route metric.";
        leaf interface {
          type union {
            type frr-interface:interface-ref;
            type enumeration {
              enum '*' {
                description
                  "Match all interfaces.";
              }
            }
          }
          description
            "Interface to match. Use '*' to match all interfaces.";
        }
        leaf direction {
          type enumeration {
            enum in {
              value 0;
              description
                "Incoming updates.";
            }
            enum out {
              value 1;
              description
                "Outgoing updates.";
            }
          }
          description
            "Incoming or outgoing updates.";
        }
        leaf access-list {
          type string;
          mandatory true;
          description
            "Access-list name.";
        }
        leaf metric {
          type uint8 {
            range "0..16";
          }
          mandatory true;
          description
            "Route metric.";
        }
      }
      leaf-list passive-interface {
        type frr-interface:interface-ref;
        description
          "A list of interfaces where the sending of RIPng packets
           is disabled.";
      }

      uses frr-filter:distribute-list-group;

      list redistribute {
        key "protocol";
        description
          "Redistributes routes learned from other routing protocols.";
        leaf protocol {
          type frr-route-types:frr-route-types-v6;
          must '. != "ripng"';
          description
            "Routing protocol.";
        }
        leaf route-map {
          type frr-route-map:route-map-ref;
          description
            "Applies the conditions of the specified route-map to
             routes that are redistributed into the RIPng routing
             instance.";
        }
        leaf metric {
          type uint8 {
            range "0..16";
          }
          description
            "Metric used for the redistributed route. If a metric is
             not specified, the metric configured with the
             default-metric attribute in RIPng router configuration is
             used. If the default-metric attribute has not been
             configured, the default metric for redistributed routes
             is 0.";
        }
      }

      uses frr-if-rmap:if-route-maps-group;

      leaf-list static-route {
        type inet:ipv6-prefix;
        description
          "RIPng static routes.";
      }
      leaf-list aggregate-address {
        type inet:ipv6-prefix;
        description
          "RIPng aggregate route announcement.";
      }
      container timers {
        description
          "Settings of basic timers";
        leaf flush-interval {
          type uint16 {
            range "1..65535";
          }
          units "seconds";
          default "120";
          description
            "Interval before a route is flushed from the routing
             table.";
        }
        leaf holddown-interval {
          type uint16 {
            range "1..65535";
          }
          units "seconds";
          default "180";
          description
            "Interval before better routes are released.";
        }
        leaf update-interval {
          type uint16 {
            range "1..65535";
          }
          units "seconds";
          default "30";
          description
            "Interval at which RIPng updates are sent.";
        }
      }

      /*
       * Operational data.
       */
      container state {
        config false;
        description
          "Operational data.";

        container neighbors {
          description
            "Neighbor information.";
          list neighbor {
            key "address";
            description
              "A RIPng neighbor.";
            leaf address {
              type inet:ipv6-address;
              description
                "IPv6 address that a RIPng neighbor is using as its
                 source address.";
            }
            leaf last-update {
              type yang:date-and-time;
              description
                "The time when the most recent RIPng update was
                 received from this neighbor.";
            }
            leaf bad-packets-rcvd {
              type yang:counter32;
              description
                "The number of RIPng invalid packets received from
                 this neighbor which were subsequently discarded
                 for any reason (e.g. a version 0 packet, or an
                 unknown command type).";
            }
            leaf bad-routes-rcvd {
              type yang:counter32;
              description
                "The number of routes received from this neighbor,
                 in valid RIPng packets, which were ignored for any
                 reason (e.g. unknown address family, or invalid
                 metric).";
            }
          }
        }
        container routes {
          description
            "Route information.";
          list route {
            key "prefix";
            description
              "A RIPng IPv6 route.";
            leaf prefix {
              type inet:ipv6-prefix;
              description
                "IPv6 address and prefix length, in the format
                 specified in RFC6991.";
            }
            leaf next-hop {
              type inet:ipv6-address;
              description
                "Next hop IPv6 address.";
            }
            leaf interface {
              type frr-interface:interface-ref;
              description
                "The interface that the route uses.";
            }
            leaf metric {
              type uint8 {
                range "0..16";
              }
              description
                "Route metric.";
            }
          }
        }
      }
    }
  }

  /*
   * Per-interface configuration data
   */
  augment "/frr-interface:lib/frr-interface:interface" {
    description "RIPng interface augmentation.";
    container ripng {
      description
        "RIPng interface parameters.";
      leaf split-horizon {
        type enumeration {
          enum "disabled" {
            value 0;
            description
              "Disables split-horizon processing.";
          }
          enum "simple" {
            value 1;
            description
              "Enables simple split-horizon processing.";
          }
          enum "poison-reverse" {
            value 2;
            description
              "Enables split-horizon processing with poison
               reverse.";
          }
        }
        default "simple";
        description
          "Controls RIPng split-horizon processing on the specified
           interface.";
      }
    }
  }

  /*
   * RPCs
   */
  rpc clear-ripng-route {
    description
      "Clears RIPng routes from the IPv6 routing table and routes
       redistributed into the RIPng protocol.";

    input {
      leaf vrf {
        type frr-vrf:vrf-ref;
        description
          "VRF name identifying a specific RIPng instance.
           This leaf is optional for the rpc.
           If it is specified, the rpc will clear all routes in the
           specified RIPng instance;
           if it is not specified, the rpc will clear all routes in
           all RIPng instances.";
      }
    }
  }
}
// SPDX-License-Identifier: BSD-2-Clause
module frr-ripd {
  yang-version 1.1;
  namespace "http://frrouting.org/yang/ripd";
  prefix frr-ripd;

  import ietf-inet-types {
    prefix inet;
  }
  import ietf-yang-types {
    prefix yang;
  }
  import frr-if-rmap {
    prefix frr-if-rmap;
  }
  import frr-bfdd {
    prefix frr-bfdd;
  }
  import frr-filter {
    prefix frr-filter;
  }
  import frr-interface {
    prefix frr-interface;
  }
  import frr-nexthop {
    prefix frr-nexthop;
  }
  import frr-vrf {
    prefix frr-vrf;
  }
  import frr-route-map {
    prefix frr-route-map;
  }
  import frr-route-types {
    prefix frr-route-types;
  }

  organization
    "FRRouting";
  contact
    "FRR Users List:       <mailto:frog@lists.frrouting.org>
     FRR Development List: <mailto:dev@lists.frrouting.org>";
  description
    "This module defines a model for managing FRR ripd daemon.

     Copyright 2020 FRRouting

     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions
     are met:

     1. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";

  revision 2019-09-09 {
    description
      "Changed interface references to use
      frr-interface:interface-ref typedef";
    reference "FRRouting";
  }
  revision 2017-12-06 {
    description
      "Initial revision.";
    reference
      "RFC 1058: Routing Information Protocol.
       RFC 2453: RIP Version 2.";
  }

  typedef rip-route-type {
    type enumeration {
      enum normal {
        value 0;
        description "Normal RIP route type.";
      }
      enum static {
        value 1;
        description "Static RIP route type.";
      }
      enum default {
        value 2;
        description "Default RIP route type.";
      }
      enum redistribute {
        value 3;
        description "Redistribute RIP route type.";
      }
      enum interface {
        value 4;
        description "Interface RIP route type.";
      }
    }
    description
      "Types of RIP routes.";
  }

  container ripd {
    description "rip routing instance data";
    list instance {
      key "vrf";
      description
        "RIP routing instance.";

      leaf vrf {
        type frr-vrf:vrf-ref;
        description
          "VRF name.";
      }
      leaf allow-ecmp {
        type uint8;
        default 0;
        description
          "Allow equal-cost multi-path.";
      }
      leaf default-information-originate {
        type boolean;
        default "false";
        description
          "Control distribution of default route.";
      }
      leaf default-metric {
        type uint8 {
          range "1..16";
        }
        default "1";
        description
          "Default metric of redistributed routes.";
      }
      container distance {
        description
          "Administrative distance.";
        leaf default {
          type uint8 {
            range "0..255";
          }
          default "0";
          description
            "Default administrative distance.";
        }
        list source {
          key "prefix";
          description
            "Custom administrative distance per IP prefix.";
          leaf prefix {
            type inet:ipv4-prefix;
            description
              "Prefix.";
          }
          leaf distance {
            type uint8 {
              range "1..255";
            }
            mandatory true;
            description
              "Administrative distance.";
          }
          leaf access-list {
            type string;
            description
              "Access-list name.";
          }
        }
      }
      leaf-list explicit-neighbor {
        type inet:ipv4-address;
        description
          "Specifies the RIP neighbors. Useful for a
           non-broadcast multiple access (NBMA) network.";
      }
      leaf-list network {
        type inet:ipv4-prefix;
        description
          "Enable RIP on the specified IP network.";
      }
      leaf-list interface {
        type frr-interface:interface-ref;
        description
          "Enable RIP on the specified interface.";
      }
      list offset-list {
        key "interface direction";
        description
          "Offset-list to modify route metric.";
        leaf interface {
          type union {
            type frr-interface:interface-ref;
            type enumeration {
              enum '*' {
                description
                  "Match all interfaces.";
              }
            }
          }
          description
            "Interface to match. Use '*' to match all interfaces.";
        }
        leaf direction {
          type enumeration {
            enum in {
              value 0;
              description
                "Incoming updates.";
            }
            enum out {
              value 1;
              description
                "Outgoing updates.";
            }
          }
          description
            "Incoming or outgoing updates.";
        }
        leaf access-list {
          type string;
          mandatory true;
          description
            "Access-list name.";
        }
        leaf metric {
          type uint8 {
            range "0..16";
          }
          mandatory true;
          description
            "Route metric.";
        }
      }
      leaf passive-default {
        type boolean;
        default "false";
        description
          "Control whether interfaces are in the passive mode
           by default or not.";
      }
      leaf-list passive-interface {
        when "../passive-default = 'false'";
        type frr-interface:interface-ref;
        description
          "A list of interfaces where the sending of RIP packets
           is disabled.";
      }
      leaf-list non-passive-interface {
        when "../passive-default = 'true'";
        type frr-interface:interface-ref;
        description
          "A list of interfaces where the sending of RIP packets
           is enabled.";
      }

      uses frr-filter:distribute-list-group;

      list redistribute {
        key "protocol";
        description
          "Redistributes routes learned from other routing protocols.";
        leaf protocol {
          type frr-route-types:frr-route-types-v4;
          must '. != "rip"';
          description
            "Routing protocol.";
        }
        leaf route-map {
          type frr-route-map:route-map-ref;
          description
            "Applies the conditions of the specified route-map to
             routes that are redistributed into the RIP routing
             instance.";
        }
        leaf metric {
          type uint8 {
            range "0..16";
          }
          description
            "Metric used for the redistributed route. If a metric is
             not specified, the metric configured with the
             default-metric attribute in RIP router configuration is
             used. If the default-metric attribute has not been
             configured, the default metric for redistributed routes
             is 0.";
        }
      }

      uses frr-if-rmap:if-route-maps-group;

      leaf-list static-route {
        type inet:ipv4-prefix;
        description
          "RIP static routes.";
      }
      container timers {
        description
          "Settings of basic timers";
        leaf flush-interval {
          type uint32 {
            range "5..2147483647";
          }
          units "seconds";
          default "120";
          description
            "Interval before a route is flushed from the routing
             table.";
        }
        leaf holddown-interval {
          type uint32 {
            range "5..2147483647";
          }
          units "seconds";
          default "180";
          description
            "Interval before better routes are released.";
        }
        leaf update-interval {
          type uint32 {
            range "5..2147483647";
          }
          units "seconds";
          default "30";
          description
            "Interval at which RIP updates are sent.";
        }
      }
      container version {
        description "version of rip";
        leaf receive {
          type enumeration {
            enum "1" {
              value 1;
              description
                "Accept RIPv1 updates only.";
            }
            enum "2" {
              value 2;
              description
                "Accept RIPv2 updates only.";
            }
            enum "1-2" {
              value 3;
              description
                "Accept both RIPv1 and RIPv2 updates.";
            }
          }
          must
            '(. = "1" and ../send = "1") or ' +
            '(. = "2" and ../send = "2") or ' +
            '(. = "1-2" and ../send = "2")';
          default "1-2";
          description
            "Advertisement reception - Version control.";
        }
        leaf send {
          type enumeration {
            enum "1" {
              value 1;
              description
                "Send RIPv1 updates only.";
            }
            enum "2" {
              value 2;
              description
                "Send RIPv2 updates only.";
            }
          }
          must
            '(../receive = "1" and . = "1") or ' +
            '(../receive = "2" and . = "2") or ' +
            '(../receive = "1-2" and . = "2")';
          default "2";
          description
            "Advertisement transmission - Version control.";
        }
      }

      leaf default-bfd-profile {
        type frr-bfdd:profile-ref;
        description
          "Use this BFD profile for all peers by default.";
      }

      /*
       * Operational data.
       */
      container state {
        config false;
        description
          "Operational data.";

        container neighbors {
          description
            "Neighbor information.";
          list neighbor {
            key "address";
            description
              "A RIP neighbor.";
            leaf address {
              type inet:ipv4-address;
              description
                "IP address that a RIP neighbor is using as its
                 source address.";
            }
            leaf last-update {
              type yang:date-and-time;
              description
                "The time when the most recent RIP update was
                 received from this neighbor.";
            }
            leaf bad-packets-rcvd {
              type yang:counter32;
              description
                "The number of RIP invalid packets received from
                 this neighbor which were subsequently discarded
                 for any reason (e.g. a version 0 packet, or an
                 unknown command type).";
            }
            leaf bad-routes-rcvd {
              type yang:counter32;
              description
                "The number of routes received from this neighbor,
                 in valid RIP packets, which were ignored for any
                 reason (e.g. unknown address family, or invalid
                 metric).";
            }
          }
        }
        container routes {
          description
            "Route information.";
          list route {
            key "prefix";
            description
              "A RIP IPv4 route.";
            leaf prefix {
              type inet:ipv4-prefix;
              description
                "IP address (in the form A.B.C.D) and prefix length,
                 separated by the slash (/) character. The range of
                 values for the prefix-length is 0 to 32.";
            }
            container nexthops {
              description "container of nexthops";
              list nexthop {
                description "A list of nexthop objects.";
                leaf nh-type {
                  type frr-nexthop:nexthop-type;
                  mandatory true;
                  description
                    "The nexthop type.";
                }
                leaf protocol {
                  type frr-route-types:frr-route-types-v4;
                  description
                    "The protocol originating this route.";
                }
                leaf rip-type {
                  type rip-route-type;
                  description
                    "The RIP type of route.";
                }
                leaf gateway {
                  type inet:ipv4-address;
                  description
                    "The nexthop gateway address.";
                }
                leaf interface {
                  type frr-interface:interface-ref;
                  description
                    "The nexthop egress interface.";
                }
                leaf from {
                  type inet:ipv4-address;
                  description
                    "The nexthop gateway address.";
                }
                leaf tag {
                  type uint32;
                  default "0";
                  description
                    "Route tag";
                }
                leaf external-metric {
                  type uint32;
                  description
                    "External metric if learned from external protocol.";
                }
                leaf expire-time {
                  type uint32;
                  description
                    "Seconds before route expires.";
                }
              }
            }
            leaf metric {
              type uint8 {
                range "0..16";
              }
              description
                "Route metric.";
            }
            /*
             * Replaced by container `nexthops` above.
             */
            leaf next-hop {
              type inet:ipv4-address;
              status deprecated;
              description
                "Next hop IPv4 address.";
            }
            leaf interface {
              type frr-interface:interface-ref;
              status deprecated;
              description
                "The interface that the route uses.";
            }
          }
        }
      }
    }
  }

  /*
   * Per-interface configuration data
   */
  augment "/frr-interface:lib/frr-interface:interface" {
    description "rip interface data";
    container rip {
      description
        "RIP interface parameters.";
      leaf split-horizon {
        type enumeration {
          enum "disabled" {
            value 0;
            description
              "Disables split-horizon processing.";
          }
          enum "simple" {
            value 1;
            description
              "Enables simple split-horizon processing.";
          }
          enum "poison-reverse" {
            value 2;
            description
              "Enables split-horizon processing with poison
               reverse.";
          }
        }
        default "simple";
        description
          "Controls RIP split-horizon processing on the specified
           interface.";
      }
      leaf v2-broadcast {
        type boolean;
        default "false";
        description
          "Send IP broadcast v2 update.";
      }
      leaf version-receive {
        type enumeration {
          enum "unspecified" {
            value 0;
            description
              "Inherit configuration from the routing instance.";
          }
          enum "1" {
            value 1;
            description
              "Accept RIPv1 updates only.";
          }
          enum "2" {
            value 2;
            description
              "Accept RIPv2 updates only.";
          }
          enum "both" {
            value 3;
            description
              "Accept both RIPv1 and RIPv2 updates.";
          }
          enum "none" {
            value 4;
            description
              "Do not accept neither RIPv1 nor RIPv2 updates.";
          }
        }
        default "unspecified";
        description
          "Advertisement reception - Version control.";
      }
      leaf version-send {
        type enumeration {
          enum "unspecified" {
            value 0;
            description
              "Inherit configuration from the routing instance.";
          }
          enum "1" {
            value 1;
            description
              "Send RIPv1 updates only.";
          }
          enum "2" {
            value 2;
            description
              "Send RIPv2 updates only.";
          }
          enum "both" {
            value 3;
            description
              "Send both RIPv1 and RIPv2 updates.";
          }
          enum "none" {
            value 4;
            description
              "Do not send neither RIPv1 nor RIPv2 updates.";
          }
        }
        default "unspecified";
        description
          "Advertisement transmission - Version control.";
      }
      container authentication-scheme {
        description
          "Specify the authentication scheme for the RIP interface";
        leaf mode {
          type enumeration {
            enum "none" {
              value 0;
              description
                "No authentication.";
            }
            enum "plain-text" {
              value 2;
              description
                "Plain-text authentication.";
            }
            enum "md5" {
              value 3;
              description
                "MD5 authentication.";
            }
          }
          default "none";
          description
            "Specify the authentication mode.";
        }
        leaf md5-auth-length {
          when "../mode = 'md5'";
          type enumeration {
            enum "16" {
              value 16;
              description
                "RFC compatible.";
            }
            enum "20" {
              value 20;
              description
                "Old ripd compatible.";
            }
          }
          default "20";
          description
            "MD5 authentication data length.";
        }
      }
      choice authentication-data {
        description
          "Choose whether to use a simple password or a key-chain.";
        leaf authentication-password {
          type string {
            length "1..16";
          }
          description
            "Authentication string.";
        }
        leaf authentication-key-chain {
          type string;
          description
            "Key-chain name.";
        }
      }

      container bfd-monitoring {
        presence
          "Present if BFD is configured for RIP peers in this interface.";
        description "Configure BFD use in RIPD";

        leaf enable {
          type boolean;
          default false;
          description
            "Enable/disable BFD monitoring.";
        }

        leaf profile {
          type frr-bfdd:profile-ref;
          description
            "BFD profile to use.";
        }
      }
    }
  }

  /*
   * RPCs
   */
  rpc clear-rip-route {
    description
      "Clears RIP routes from the IP routing table and routes
       redistributed into the RIP protocol.";

    input {
      leaf vrf {
        type frr-vrf:vrf-ref;
        description
          "VRF name identifying a specific RIP instance.
           This leaf is optional for the rpc.
           If it is specified, the rpc will clear all routes in the
           specified RIP instance;
           if it is not specified, the rpc will clear all routes in
           all RIP instances.";
      }
    }
  }

  /*
   * Notifications
   */
  notification authentication-type-failure {
    description
      "This notification is sent when the system
       receives a PDU with the wrong authentication type
       field.";
    leaf interface-name {
      type frr-interface:interface-ref;
      description
        "Describes the name of the RIP interface.";
    }
    leaf raw-pdu {
      type binary;
      description
        "Received raw PDU.";
    }
  }
  notification authentication-failure {
    description
      "This notification is sent when the system
       receives a PDU with the wrong authentication
       information.";
    leaf interface-name {
      type frr-interface:interface-ref;
      description
        "Describes the name of the RIP interface.";
    }
    leaf raw-pdu {
      type binary;
      description
        "Received raw PDU.";
    }
  }
}
// SPDX-License-Identifier: BSD-2-Clause
module frr-bfdd {
  yang-version 1.1;
  namespace "http://frrouting.org/yang/bfdd";
  prefix frr-bfdd;

  import ietf-inet-types {
    prefix inet;
  }
  import ietf-yang-types {
    prefix yang;
  }
  import frr-interface {
    prefix frr-interface;
  }
  import frr-vrf {
    prefix frr-vrf;
  }
  import frr-route-types {
    prefix frr-route-types;
  }

  organization "FRRouting";
  contact
    "FRR Users List:       <mailto:frog@lists.frrouting.org>
     FRR Development List: <mailto:dev@lists.frrouting.org>";
  description
    "This module defines a model for managing FRR bfdd daemon.

     Copyright 2020 FRRouting

     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions
     are met:

     1. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";

  revision 2019-05-09 {
    description "Initial revision.";
    reference
      "RFC 5880: Bidirectional Forwarding Detection (BFD).
       RFC 5881: Bidirectional Forwarding Detection (BFD)
                 for IPv4 and IPv6 (Single Hop).
       RFC 5883: Bidirectional Forwarding Detection (BFD) for Multihop Paths.";
  }


  /*
   * BFD types declaration.
   */
  typedef multiplier {
    description "Detection multiplier";
    type uint8 {
      range "2..255";
    }
  }

  typedef discriminator {
    description "BFD session identification";
    type uint32 {
      range "1..4294967295";
    }
  }

  typedef state {
    description "BFD session state";
    type enumeration {
      enum admin-down {
        value 0;
        description "Administratively down";
      }
      enum down {
        value 1;
        description "Down";
      }
      enum init {
        value 2;
        description "Initializing";
      }
      enum up {
        value 3;
        description "Up";
      }
    }
  }

  typedef diagnostic {
    description "BFD session diagnostic";
    type enumeration {
      enum ok {
        value 0;
        description "Ok";
      }
      enum control-expired {
        value 1;
        description "Control timer expired";
      }
      enum echo-failed {
        value 2;
        description "Echo function failed";
      }
      enum neighbor-down {
        value 3;
        description "Neighbor signaled session down";
      }
      enum forwarding-reset {
        value 4;
        description "Forwarding plane reset";
      }
      enum path-down {
        value 5;
        description "Path down";
      }
      enum concatenated-path-down {
        value 6;
        description "Concatenated path down";
      }
      enum administratively-down {
        value 7;
        description "Administratively down";
      }
      enum reverse-concat-path-down {
        value 8;
        description "Reverse concatenated path down";
      }
    }
  }

  typedef profile-name {
    type string {
      length "1..64";
    }
    description "Profile name format";
  }

  typedef profile-ref {
    type leafref {
      path "/frr-bfdd:bfdd/frr-bfdd:bfd/frr-bfdd:profile/frr-bfdd:name";
      require-instance false;
    }
    description "Reference to a BFD profile";
  }

  /*
   * Shared BFD items.
   */
  grouping session-common {
    description "Common BFD session settings";

    leaf detection-multiplier {
      type multiplier;
      default 3;
      description "Local session detection multiplier";
    }

    leaf desired-transmission-interval {
      type uint32 {
          range "10000..60000000";
      }
      units microseconds;
      default 300000;
      description "Minimum desired control packet transmission interval";
    }

    leaf required-receive-interval {
      type uint32 {
          range "10000..60000000";
      }
      units microseconds;
      default 300000;
      description "Minimum required control packet receive interval";
    }

    leaf administrative-down {
      type boolean;
      default false;
      description "Disables or enables the session administratively";
    }

    leaf passive-mode {
      type boolean;
      default false;
      description
        "Don't attempt to start session establishment.";
    }
  }

  grouping session-echo {
    description "BFD session echo settings";

    leaf echo-mode {
      type boolean;
      default false;
      description "Use echo packets to detect failures";
    }

    leaf desired-echo-transmission-interval {
      type uint32 {
          range "10000..60000000";
      }
      units microseconds;
      default 50000;
      description "Minimum desired echo packet transmission interval";
    }

    leaf required-echo-receive-interval {
      type uint32 {
          range "0 | 10000..60000000";
      }
      units microseconds;
      default 50000;
      description "Minimum required echo packet receive interval";
    }
  }

  grouping session-multi-hop {
    description "BFD session multi hop settings.";

    leaf minimum-ttl {
      type uint8 {
        range "1..254";
      }
      default "254";
      description
        "Minimum expected TTL on received packets.";
    }
  }

  grouping bfd-monitoring {
    description
      "BFD monitoring template for protocol integration.";

    leaf source {
      type inet:ip-address;
      description
        "Source address to use for liveness check.

         When source is not set and multi-hop is `false` the source
         address will be `0.0.0.0` (any).

         When source is not set and multi-hop is `true` the source
         address will be automatic selected through Next Hop Tracking (NHT).";
    }

    leaf multi-hop {
      description
        "Use multi hop session instead of single hop.";
      type boolean;
      default false;
    }

    leaf profile {
      description
        "BFD pre configured profile.";
      type frr-bfdd:profile-ref;
    }
  }

  grouping session-states {
    /*
     * Local settings.
     */
    leaf local-discriminator {
      type discriminator;
      description "Local session identifier";
    }

    leaf local-state {
      type state;
      description "Local session state";
    }

    leaf local-diagnostic {
      type diagnostic;
      description "Local session diagnostic";
    }

    leaf local-multiplier {
      type multiplier;
      description "Local session current multiplier";
    }

    /*
     * Remote settings.
     */
    leaf remote-discriminator {
      type discriminator;
      description "Remote session identifier";
    }

    leaf remote-state {
      type state;
      description "Remote session state";
    }

    leaf remote-diagnostic {
      type diagnostic;
      description "Local session diagnostic";
    }

    leaf remote-multiplier {
      type multiplier;
      description "Remote session detection multiplier";
    }

    /*
     * Negotiated settings.
     */
    leaf negotiated-transmission-interval {
      description "Negotiated transmit interval";
      type uint32;
      units microseconds;
    }

    leaf negotiated-receive-interval {
      description "Negotiated receive interval";
      type uint32;
      units microseconds;
    }

    leaf detection-mode {
      description "Detection mode";

      type enumeration {
        enum async-with-echo {
          value "1";
          description "Async with echo";
        }
        enum async-without-echo {
          value "2";
          description "Async without echo";
        }
        enum demand-with-echo {
          value "3";
          description "Demand with echo";
        }
        enum demand-without-echo {
          value "4";
          description "Demand without echo";
        }
      }
    }

    /*
     * Statistics.
     */
    leaf last-down-time {
      type yang:date-and-time;
      description "Time and date of the last time session was down";
    }

    leaf last-up-time {
      type yang:date-and-time;
      description "Time and date of the last time session was up";
    }

    leaf session-down-count {
      type uint32;
      description "Number of times the session went down";
    }

    leaf session-up-count {
      type uint32;
      description "Number of times the session went up";
    }

    leaf control-packet-input-count {
      type uint64;
      description "Number of control packets received";
    }

    leaf control-packet-output-count {
      type uint64;
      description "Number of control packets sent";
    }

    /*
     * Echo mode operational data.
     */
    leaf negotiated-echo-transmission-interval {
      type uint32;
      units microseconds;
      description "Negotiated echo transmit interval";
    }

    /*
     * Statistics.
     */
    leaf echo-packet-input-count {
      type uint64;
      description "Number of echo packets received";
    }

    leaf echo-packet-output-count {
      type uint64;
      description "Number of echo packets sent";
    }
  }

  /*
   * BFD operational.
   */
  container bfdd {
    container bfd {
      presence "Present if the BFD protocol is enabled";

      list profile {
        key "name";
        description "BFD pre configuration profiles";

        leaf name {
          type profile-name;
          description "Profile name";
        }

        uses session-common;
        uses session-echo;
        uses session-multi-hop;
      }

      container sessions {
        list single-hop {
          key "dest-addr interface vrf";
          description "List of single hop sessions";

          leaf dest-addr {
            type inet:ip-address;
            description "IP address of the peer";
          }

          leaf interface {
            type frr-interface:interface-ref;
            description "Interface to use to contact peer";
          }

          leaf vrf {
            type frr-vrf:vrf-ref;
            description "Virtual Routing Domain name";
          }

          leaf source-addr {
            type inet:ip-address;
            description "Local IP address";
          }

          leaf profile {
            type profile-ref;
            description "Override defaults with profile.";
          }

          uses session-common;
          uses session-echo;

          container stats {
            uses session-states;
            config false;
          }
        }

        list multi-hop {
          key "source-addr dest-addr vrf";
          description "List of multi hop sessions";

          leaf source-addr {
            type inet:ip-address;
            description "Local IP address";
          }

          leaf dest-addr {
            type inet:ip-address;
            description "IP address of the peer";
          }

          leaf vrf {
            type frr-vrf:vrf-ref;
            description "Virtual Routing Domain name";
          }

          leaf profile {
            type profile-ref;
            description "Override defaults with profile.";
          }

          uses session-common;
          uses session-multi-hop;

          container stats {
            uses session-states;
            config false;
          }
        }
      }
    }
  }
}
module ietf-netconf-with-defaults {

   namespace "urn:ietf:params:xml:ns:yang:ietf-netconf-with-defaults";

   prefix ncwd;

   import ietf-netconf { prefix nc; }

   organization
    "IETF NETCONF (Network Configuration Protocol) Working Group";

   contact
    "WG Web:   <http://tools.ietf.org/wg/netconf/>

     WG List:  <netconf@ietf.org>

     WG Chair: Bert Wijnen
               <bertietf@bwijnen.net>

     WG Chair: Mehmet Ersue
               <mehmet.ersue@nsn.com>

     Editor: Andy Bierman
             <andy.bierman@brocade.com>

     Editor: Balazs Lengyel
             <balazs.lengyel@ericsson.com>";

   description
    "This module defines an extension to the NETCONF protocol
     that allows the NETCONF client to control how default
     values are handled by the server in particular NETCONF
     operations.

     Copyright (c) 2011 IETF Trust and the persons identified as
     the document authors.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (http://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC 6243; see
     the RFC itself for full legal notices.";

   revision 2011-06-01 {
     description
       "Initial version.";
     reference
      "RFC 6243: With-defaults Capability for NETCONF";
   }

   typedef with-defaults-mode {
      description
        "Possible modes to report default data.";
      reference
         "RFC 6243; Section 3.";
      type enumeration {
         enum report-all {
             description
               "All default data is reported.";
             reference
               "RFC 6243; Section 3.1";
         }
         enum report-all-tagged {
             description
               "All default data is reported.
                Any nodes considered to be default data
                will contain a 'default' XML attribute,
                set to 'true' or '1'.";
             reference
               "RFC 6243; Section 3.4";
         }
         enum trim {
             description
               "Values are not reported if they contain the default.";
             reference
               "RFC 6243; Section 3.2";
         }
         enum explicit {
             description
               "Report values that contain the definition of
                explicitly set data.";
             reference
               "RFC 6243; Section 3.3";
         }
     }
   }

   grouping with-defaults-parameters {
     description
       "Contains the <with-defaults> parameter for control
        of defaults in NETCONF retrieval operations.";

     leaf with-defaults {
       description
         "The explicit defaults processing mode requested.";
       reference
         "RFC 6243; Section 4.5.1";

       type with-defaults-mode;
     }
   }

   // extending the get-config operation
   augment /nc:get-config/nc:input {
       description
         "Adds the <with-defaults> parameter to the
          input of the NETCONF <get-config> operation.";
       reference
         "RFC 6243; Section 4.5.1";

       uses with-defaults-parameters;
   }

   // extending the get operation
   augment /nc:get/nc:input {
       description
         "Adds the <with-defaults> parameter to
          the input of the NETCONF <get> operation.";
       reference
         "RFC 6243; Section 4.5.1";

       uses with-defaults-parameters;
   }

   // extending the copy-config operation
   augment /nc:copy-config/nc:input {
       description
         "Adds the <with-defaults> parameter to
          the input of the NETCONF <copy-config> operation.";
       reference
         "RFC 6243; Section 4.5.1";

       uses with-defaults-parameters;
   }
}
module ietf-netconf {

  // the namespace for NETCONF XML definitions is unchanged
  // from RFC 4741, which this document replaces
  namespace "urn:ietf:params:xml:ns:netconf:base:1.0";

  prefix nc;

  import ietf-inet-types {
    prefix inet;
  }

  import ietf-netconf-acm { prefix nacm; }

  organization
    "IETF NETCONF (Network Configuration) Working Group";

  contact
    "WG Web:   <http://tools.ietf.org/wg/netconf/>
     WG List:  <netconf@ietf.org>

     WG Chair: Bert Wijnen
               <bertietf@bwijnen.net>

     WG Chair: Mehmet Ersue
               <mehmet.ersue@nsn.com>

     Editor:   Martin Bjorklund
               <mbj@tail-f.com>

     Editor:   Juergen Schoenwaelder
               <j.schoenwaelder@jacobs-university.de>

     Editor:   Andy Bierman
               <andy.bierman@brocade.com>";
  description
    "NETCONF Protocol Data Types and Protocol Operations.

     Copyright (c) 2011 IETF Trust and the persons identified as
     the document authors.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (http://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC 6241; see
     the RFC itself for full legal notices.";

  revision 2011-06-01 {
    description
      "Initial revision;
       2013-09-29: Updated to include NACM attributes,
       as specified in RFC 6536: sec 3.2.5 and 3.2.8";
    reference
      "RFC 6241: Network Configuration Protocol";
  }

  extension get-filter-element-attributes {
    description
      "If this extension is present within an 'anyxml'
       statement named 'filter', which must be conceptually
       defined within the RPC input section for the <get>
       and <get-config> protocol operations, then the
       following unqualified XML attribute is supported
       within the <filter> element, within a <get> or
       <get-config> protocol operation:

         type : optional attribute with allowed
                value strings 'subtree' and 'xpath'.
                If missing, the default value is 'subtree'.

       If the 'xpath' feature is supported, then the
       following unqualified XML attribute is
       also supported:

         select: optional attribute containing a
                 string representing an XPath expression.
                 The 'type' attribute must be equal to 'xpath'
                 if this attribute is present.";
  }

  // NETCONF capabilities defined as features
  feature writable-running {
    description
      "NETCONF :writable-running capability;
       If the server advertises the :writable-running
       capability for a session, then this feature must
       also be enabled for that session.  Otherwise,
       this feature must not be enabled.";
    reference "RFC 6241, Section 8.2";
  }

  feature candidate {
    description
      "NETCONF :candidate capability;
       If the server advertises the :candidate
       capability for a session, then this feature must
       also be enabled for that session.  Otherwise,
       this feature must not be enabled.";
    reference "RFC 6241, Section 8.3";
  }

  feature confirmed-commit {
    if-feature candidate;
    description
      "NETCONF :confirmed-commit:1.1 capability;
       If the server advertises the :confirmed-commit:1.1
       capability for a session, then this feature must
       also be enabled for that session.  Otherwise,
       this feature must not be enabled.";

    reference "RFC 6241, Section 8.4";
  }

  feature rollback-on-error {
    description
      "NETCONF :rollback-on-error capability;
       If the server advertises the :rollback-on-error
       capability for a session, then this feature must
       also be enabled for that session.  Otherwise,
       this feature must not be enabled.";
    reference "RFC 6241, Section 8.5";
  }

  feature validate {
    description
      "NETCONF :validate:1.1 capability;
       If the server advertises the :validate:1.1
       capability for a session, then this feature must
       also be enabled for that session.  Otherwise,
       this feature must not be enabled.";
    reference "RFC 6241, Section 8.6";
  }

  feature startup {
    description
      "NETCONF :startup capability;
       If the server advertises the :startup
       capability for a session, then this feature must
       also be enabled for that session.  Otherwise,
       this feature must not be enabled.";
    reference "RFC 6241, Section 8.7";
  }

  feature url {
    description
      "NETCONF :url capability;
       If the server advertises the :url
       capability for a session, then this feature must
       also be enabled for that session.  Otherwise,
       this feature must not be enabled.";
    reference "RFC 6241, Section 8.8";
  }

  feature xpath {
    description
      "NETCONF :xpath capability;
       If the server advertises the :xpath
       capability for a session, then this feature must
       also be enabled for that session.  Otherwise,
       this feature must not be enabled.";
    reference "RFC 6241, Section 8.9";
  }

  // NETCONF Simple Types

  typedef session-id-type {
    type uint32 {
      range "1..max";
    }
    description
      "NETCONF Session Id";
  }

  typedef session-id-or-zero-type {
    type uint32;
    description
      "NETCONF Session Id or Zero to indicate none";
  }
  typedef error-tag-type {
    type enumeration {
       enum in-use {
         description
           "The request requires a resource that
            already is in use.";
       }
       enum invalid-value {
         description
           "The request specifies an unacceptable value for one
            or more parameters.";
       }
       enum too-big {
         description
           "The request or response (that would be generated) is
            too large for the implementation to handle.";
       }
       enum missing-attribute {
         description
           "An expected attribute is missing.";
       }
       enum bad-attribute {
         description
           "An attribute value is not correct; e.g., wrong type,
            out of range, pattern mismatch.";
       }
       enum unknown-attribute {
         description
           "An unexpected attribute is present.";
       }
       enum missing-element {
         description
           "An expected element is missing.";
       }
       enum bad-element {
         description
           "An element value is not correct; e.g., wrong type,
            out of range, pattern mismatch.";
       }
       enum unknown-element {
         description
           "An unexpected element is present.";
       }
       enum unknown-namespace {
         description
           "An unexpected namespace is present.";
       }
       enum access-denied {
         description
           "Access to the requested protocol operation or
            data model is denied because authorization failed.";
       }
       enum lock-denied {
         description
           "Access to the requested lock is denied because the
            lock is currently held by another entity.";
       }
       enum resource-denied {
         description
           "Request could not be completed because of
            insufficient resources.";
       }
       enum rollback-failed {
         description
           "Request to roll back some configuration change (via
            rollback-on-error or <discard-changes> operations)
            was not completed for some reason.";

       }
       enum data-exists {
         description
           "Request could not be completed because the relevant
            data model content already exists.  For example,
            a 'create' operation was attempted on data that
            already exists.";
       }
       enum data-missing {
         description
           "Request could not be completed because the relevant
            data model content does not exist.  For example,
            a 'delete' operation was attempted on
            data that does not exist.";
       }
       enum operation-not-supported {
         description
           "Request could not be completed because the requested
            operation is not supported by this implementation.";
       }
       enum operation-failed {
         description
           "Request could not be completed because the requested
            operation failed for some reason not covered by
            any other error condition.";
       }
       enum partial-operation {
         description
           "This error-tag is obsolete, and SHOULD NOT be sent
            by servers conforming to this document.";
       }
       enum malformed-message {
         description
           "A message could not be handled because it failed to
            be parsed correctly.  For example, the message is not
            well-formed XML or it uses an invalid character set.";
       }
     }
     description "NETCONF Error Tag";
     reference "RFC 6241, Appendix A";
  }

  typedef error-severity-type {
    type enumeration {
      enum error {
        description "Error severity";
      }
      enum warning {
        description "Warning severity";
      }
    }
    description "NETCONF Error Severity";
    reference "RFC 6241, Section 4.3";
  }

  typedef edit-operation-type {
    type enumeration {
      enum merge {
        description
          "The configuration data identified by the
           element containing this attribute is merged
           with the configuration at the corresponding
           level in the configuration datastore identified
           by the target parameter.";
      }
      enum replace {
        description
          "The configuration data identified by the element
           containing this attribute replaces any related
           configuration in the configuration datastore
           identified by the target parameter.  If no such
           configuration data exists in the configuration
           datastore, it is created.  Unlike a
           <copy-config> operation, which replaces the
           entire target configuration, only the configuration
           actually present in the config parameter is affected.";
      }
      enum create {
        description
          "The configuration data identified by the element
           containing this attribute is added to the
           configuration if and only if the configuration
           data does not already exist in the configuration
           datastore.  If the configuration data exists, an
           <rpc-error> element is returned with an
           <error-tag> value of 'data-exists'.";
      }
      enum delete {
        description
          "The configuration data identified by the element
           containing this attribute is deleted from the
           configuration if and only if the configuration
           data currently exists in the configuration
           datastore.  If the configuration data does not
           exist, an <rpc-error> element is returned with
           an <error-tag> value of 'data-missing'.";
      }
      enum remove {
        description
          "The configuration data identified by the element
           containing this attribute is deleted from the
           configuration if the configuration
           data currently exists in the configuration
           datastore.  If the configuration data does not
           exist, the 'remove' operation is silently ignored
           by the server.";
      }
    }
    default "merge";
    description "NETCONF 'operation' attribute values";
    reference "RFC 6241, Section 7.2";
  }

  // NETCONF Standard Protocol Operations

  rpc get-config {
    description
      "Retrieve all or part of a specified configuration.";

    reference "RFC 6241, Section 7.1";

    input {
      container source {
        description
          "Particular configuration to retrieve.";

        choice config-source {
          mandatory true;
          description
            "The configuration to retrieve.";
          leaf candidate {
            if-feature candidate;
            type empty;
            description
              "The candidate configuration is the config source.";
          }
          leaf running {
            type empty;
            description
              "The running configuration is the config source.";
          }
          leaf startup {
            if-feature startup;
            type empty;
            description
              "The startup configuration is the config source.
               This is optional-to-implement on the server because
               not all servers will support filtering for this
               datastore.";
          }
        }
      }

      anyxml filter {
        description
          "Subtree or XPath filter to use.";
        nc:get-filter-element-attributes;
      }
    }

    output {
      anyxml data {
        description
          "Copy of the source datastore subset that matched
           the filter criteria (if any).  An empty data container
           indicates that the request did not produce any results.";
      }
    }
  }

  rpc edit-config {
    description
      "The <edit-config> operation loads all or part of a specified
       configuration to the specified target configuration.";

    reference "RFC 6241, Section 7.2";

    input {
      container target {
        description
          "Particular configuration to edit.";

        choice config-target {
          mandatory true;
          description
            "The configuration target.";

          leaf candidate {
            if-feature candidate;
            type empty;
            description
              "The candidate configuration is the config target.";
          }
          leaf running {
            if-feature writable-running;
            type empty;
            description
              "The running configuration is the config source.";
          }
        }
      }

      leaf default-operation {
        type enumeration {
          enum merge {
            description
              "The default operation is merge.";
          }
          enum replace {
            description
              "The default operation is replace.";
          }
          enum none {
            description
              "There is no default operation.";
          }
        }
        default "merge";
        description
          "The default operation to use.";
      }

      leaf test-option {
        if-feature validate;
        type enumeration {
          enum test-then-set {
            description
              "The server will test and then set if no errors.";
          }
          enum set {
            description
              "The server will set without a test first.";
          }

          enum test-only {
            description
              "The server will only test and not set, even
               if there are no errors.";
          }
        }
        default "test-then-set";
        description
          "The test option to use.";
      }

      leaf error-option {
        type enumeration {
          enum stop-on-error {
            description
              "The server will stop on errors.";
          }
          enum continue-on-error {
            description
              "The server may continue on errors.";
          }
          enum rollback-on-error {
            description
              "The server will roll back on errors.
               This value can only be used if the 'rollback-on-error'
               feature is supported.";
          }
        }
        default "stop-on-error";
        description
          "The error option to use.";
      }

      choice edit-content {
        mandatory true;
        description
          "The content for the edit operation.";

        anyxml config {
          description
            "Inline Config content.";
        }
        leaf url {
          if-feature url;
          type inet:uri;
          description
            "URL-based config content.";
        }
      }
    }
  }

  rpc copy-config {
    description
      "Create or replace an entire configuration datastore with the
       contents of another complete configuration datastore.";

    reference "RFC 6241, Section 7.3";

    input {
      container target {
        description
          "Particular configuration to copy to.";

        choice config-target {
          mandatory true;
          description
            "The configuration target of the copy operation.";

          leaf candidate {
            if-feature candidate;
            type empty;
            description
              "The candidate configuration is the config target.";
          }
          leaf running {
            if-feature writable-running;
            type empty;
            description
              "The running configuration is the config target.
               This is optional-to-implement on the server.";
          }
          leaf startup {
            if-feature startup;
            type empty;
            description
              "The startup configuration is the config target.";
          }
          leaf url {
            if-feature url;
            type inet:uri;
            description
              "The URL-based configuration is the config target.";
          }
        }
      }

      container source {
        description
          "Particular configuration to copy from.";

        choice config-source {
          mandatory true;
          description
            "The configuration source for the copy operation.";

          leaf candidate {
            if-feature candidate;
            type empty;
            description
              "The candidate configuration is the config source.";
          }
          leaf running {
            type empty;
            description
              "The running configuration is the config source.";
          }
          leaf startup {
            if-feature startup;
            type empty;
            description
              "The startup configuration is the config source.";
          }
          leaf url {
            if-feature url;
            type inet:uri;
            description
              "The URL-based configuration is the config source.";
          }
          anyxml config {
            description
              "Inline Config content: <config> element.  Represents
               an entire configuration datastore, not
               a subset of the running datastore.";
          }
        }
      }
    }
  }

  rpc delete-config {
    nacm:default-deny-all;
    description
      "Delete a configuration datastore.";

    reference "RFC 6241, Section 7.4";

    input {
      container target {
        description
          "Particular configuration to delete.";

        choice config-target {
          mandatory true;
          description
            "The configuration target to delete.";

          leaf startup {
            if-feature startup;
            type empty;
            description
              "The startup configuration is the config target.";
          }
          leaf url {
            if-feature url;
            type inet:uri;
            description
              "The URL-based configuration is the config target.";
          }
        }
      }
    }
  }

  rpc lock {
    description
      "The lock operation allows the client to lock the configuration
       system of a device.";

    reference "RFC 6241, Section 7.5";

    input {
      container target {
        description
          "Particular configuration to lock.";

        choice config-target {
          mandatory true;
          description
            "The configuration target to lock.";

          leaf candidate {
            if-feature candidate;
            type empty;
            description
              "The candidate configuration is the config target.";
          }
          leaf running {
            type empty;
            description
              "The running configuration is the config target.";
          }
          leaf startup {
            if-feature startup;
            type empty;
            description
              "The startup configuration is the config target.";
          }
        }
      }
    }
  }

  rpc unlock {
    description
      "The unlock operation is used to release a configuration lock,
       previously obtained with the 'lock' operation.";

    reference "RFC 6241, Section 7.6";

    input {
      container target {
        description
          "Particular configuration to unlock.";

        choice config-target {
          mandatory true;
          description
            "The configuration target to unlock.";

          leaf candidate {
            if-feature candidate;
            type empty;
            description
              "The candidate configuration is the config target.";
          }
          leaf running {
            type empty;
            description
              "The running configuration is the config target.";
          }
          leaf startup {
            if-feature startup;
            type empty;
            description
              "The startup configuration is the config target.";
          }
        }
      }
    }
  }

  rpc get {
    description
      "Retrieve running configuration and device state information.";

    reference "RFC 6241, Section 7.7";

    input {
      anyxml filter {
        description
          "This parameter specifies the portion of the system
           configuration and state data to retrieve.";
        nc:get-filter-element-attributes;
      }
    }

    output {
      anyxml data {
        description
          "Copy of the running datastore subset and/or state
           data that matched the filter criteria (if any).
           An empty data container indicates that the request did not
           produce any results.";
      }
    }
  }

  rpc close-session {
    description
      "Request graceful termination of a NETCONF session.";

    reference "RFC 6241, Section 7.8";
  }

  rpc kill-session {
    nacm:default-deny-all;
    description
      "Force the termination of a NETCONF session.";

    reference "RFC 6241, Section 7.9";

    input {
      leaf session-id {
        type session-id-type;
        mandatory true;
        description
          "Particular session to kill.";
      }
    }
  }

  rpc commit {
    if-feature candidate;

    description
      "Commit the candidate configuration as the device's new
       current configuration.";

    reference "RFC 6241, Section 8.3.4.1";

    input {
      leaf confirmed {
        if-feature confirmed-commit;
        type empty;
        description
          "Requests a confirmed commit.";
        reference "RFC 6241, Section 8.3.4.1";
      }

      leaf confirm-timeout {
        if-feature confirmed-commit;
        type uint32 {
          range "1..max";
        }
        units "seconds";
        default "600";   // 10 minutes
        description
          "The timeout interval for a confirmed commit.";
        reference "RFC 6241, Section 8.3.4.1";
      }

      leaf persist {
        if-feature confirmed-commit;
        type string;
        description
          "This parameter is used to make a confirmed commit
           persistent.  A persistent confirmed commit is not aborted
           if the NETCONF session terminates.  The only way to abort
           a persistent confirmed commit is to let the timer expire,
           or to use the <cancel-commit> operation.

           The value of this parameter is a token that must be given
           in the 'persist-id' parameter of <commit> or
           <cancel-commit> operations in order to confirm or cancel
           the persistent confirmed commit.

           The token should be a random string.";
        reference "RFC 6241, Section 8.3.4.1";
      }

      leaf persist-id {
        if-feature confirmed-commit;
        type string;
        description
          "This parameter is given in order to commit a persistent
           confirmed commit.  The value must be equal to the value
           given in the 'persist' parameter to the <commit> operation.
           If it does not match, the operation fails with an
          'invalid-value' error.";
        reference "RFC 6241, Section 8.3.4.1";
      }

    }
  }

  rpc discard-changes {
    if-feature candidate;

    description
      "Revert the candidate configuration to the current
       running configuration.";
    reference "RFC 6241, Section 8.3.4.2";
  }

  rpc cancel-commit {
    if-feature confirmed-commit;
    description
      "This operation is used to cancel an ongoing confirmed commit.
       If the confirmed commit is persistent, the parameter
       'persist-id' must be given, and it must match the value of the
       'persist' parameter.";
    reference "RFC 6241, Section 8.4.4.1";

    input {
      leaf persist-id {
        type string;
        description
          "This parameter is given in order to cancel a persistent
           confirmed commit.  The value must be equal to the value
           given in the 'persist' parameter to the <commit> operation.
           If it does not match, the operation fails with an
          'invalid-value' error.";
      }
    }
  }

  rpc validate {
    if-feature validate;

    description
      "Validates the contents of the specified configuration.";

    reference "RFC 6241, Section 8.6.4.1";

    input {
      container source {
        description
          "Particular configuration to validate.";

        choice config-source {
          mandatory true;
          description
            "The configuration source to validate.";

          leaf candidate {
            if-feature candidate;
            type empty;
            description
              "The candidate configuration is the config source.";
          }
          leaf running {
            type empty;
            description
              "The running configuration is the config source.";
          }
          leaf startup {
            if-feature startup;
            type empty;
            description
              "The startup configuration is the config source.";
          }
          leaf url {
            if-feature url;
            type inet:uri;
            description
              "The URL-based configuration is the config source.";
          }
          anyxml config {
            description
              "Inline Config content: <config> element.  Represents
               an entire configuration datastore, not
               a subset of the running datastore.";
          }
        }
      }
    }
  }
}
module frr-zebra-route-map {
  yang-version 1.1;
  namespace "http://frrouting.org/yang/zebra-route-map";
  prefix frr-zebra-route-map;

  import ietf-inet-types {
    prefix inet;
  }

  import frr-route-map {
    prefix frr-route-map;
  }

  import frr-route-types {
    prefix frr-route-types;
  }

  organization
    "Free Range Routing";
  contact
    "FRR Users List:       <mailto:frog@lists.frrouting.org>
     FRR Development List: <mailto:dev@lists.frrouting.org>";
  description
    "This module defines zebra route map settings";

  revision 2020-01-02 {
    description
      "Initial revision";
  }

  identity ipv4-prefix-length {
    base frr-route-map:rmap-match-type;
    description
      "Match IPv4 address prefix length";
  }

  identity ipv4-next-hop-prefix-length {
    base frr-route-map:rmap-match-type;
    description
      "Match IPv4 next-hop address prefix length";
  }

  identity ipv6-prefix-length {
    base frr-route-map:rmap-match-type;
    description
      "Match IPv6 address prefix length";
  }

  identity source-instance {
    base frr-route-map:rmap-match-type;
    description
      "Match the protocol's instance number";
  }

  identity source-protocol {
    base frr-route-map:rmap-match-type;
    description
      "Match protocol via which the route was learnt";
  }

  identity src-address {
    base frr-route-map:rmap-set-type;
    description
      "Set IPv4/IPv6 source address for route";
  }

  augment "/frr-route-map:lib"
    + "/frr-route-map:route-map"
    + "/frr-route-map:entry"
    + "/frr-route-map:match-condition"
    + "/frr-route-map:rmap-match-condition"
    + "/frr-route-map:match-condition" {
    case ipv4-prefix-length {
      when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv4-prefix-length') or "
         + "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv4-next-hop-prefix-length')";
      leaf ipv4-prefix-length {
        type uint8 {
          range "0..32";
        }
      }
    }

    case ipv6-prefix-length {
      when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:ipv6-prefix-length')";
      leaf ipv6-prefix-length {
        type uint8 {
          range "0..128";
        }
      }
    }

    case source-instance {
      when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:source-instance')";
      leaf source-instance {
        type uint8 {
          range "0..255";
        }
      }
    }

    case source-protocol {
      when "derived-from-or-self(../frr-route-map:condition, 'frr-zebra-route-map:source-protocol')";
      leaf source-protocol {
        type frr-route-types:frr-route-types;
      }
    }
  }

  augment "/frr-route-map:lib"
    + "/frr-route-map:route-map"
    + "/frr-route-map:entry"
    + "/frr-route-map:set-action"
    + "/frr-route-map:rmap-set-action"
    + "/frr-route-map:set-action" {
    case src-address {
      when "derived-from-or-self(../frr-route-map:action, 'frr-zebra-route-map:src-address')";
      choice src-address {
        description
          "Value of the source address";
        case ipv4-src-address {
          leaf ipv4-src-address {
            type inet:ipv4-address;
            mandatory true;
          }
        }

        case ipv6-src-address {
          leaf ipv6-src-address {
            type inet:ipv6-address;
            mandatory true;
          }
        }
      }
    }
  }
}
module frr-zebra {
  yang-version 1.1;
  namespace "http://frrouting.org/yang/zebra";
  prefix frr-zebra;

  import ietf-yang-types {
    prefix yang;
  }

  import ietf-inet-types {
    prefix inet;
  }

  import frr-affinity-map {
    prefix frr-affinity-map;
  }

  import frr-route-map {
    prefix frr-route-map;
  }

  import frr-route-types {
    prefix frr-route-types;
  }

  import ietf-routing-types {
    prefix rt-types;
  }

  import frr-nexthop {
    prefix frr-nh;
  }

  import frr-routing {
    prefix frr-rt;
  }

  import frr-interface {
    prefix frr-interface;
  }

  import frr-vrf {
    prefix frr-vrf;
  }

  organization
    "FRRouting";
  contact
    "FRR Users List: <mailto:frog@lists.frrouting.org>
     FRR Development List: <mailto:dev@lists.frrouting.org>";
  description
    "This module defines a model for managing the FRR zebra daemon.

     Copyright 2020 FRRouting

     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions
     are met:

     1. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.

     2. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.

     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";

  revision 2019-06-01 {
    description
      "Initial revision.";
  }

  feature ipv6-router-advertisements {
    description
      "Support for IPv6 Router Advertisements.";
  }

  feature ptm-bfd {
    description
      "Using an external PTM daemon that implements BFD.";
  }

  typedef unix-timestamp {
    type uint32;
    units "seconds";
    description
      "An absolute time in seconds since the unix epoch.";
  }

  identity zebra-interface-type {
    description
      "zebra interface type.";
  }

  identity zif-other {
    base zebra-interface-type;
    description
      "Zebra interface type other.";
  }

  identity zif-bridge {
    base zebra-interface-type;
    description
      "Zebra interface type bridge.";
  }

  identity zif-vlan {
    base zebra-interface-type;
    description
      "Zebra interface type vlan.";
  }

  identity zif-vxlan {
    base zebra-interface-type;
    description
      "Zebra interface type vxlan.";
  }

  identity zif-vrf {
    base zebra-interface-type;
    description
      "Zebra interface type vrf.";
  }

  identity zif-veth {
    base zebra-interface-type;
    description
      "Zebra interface type veth.";
  }

  identity zif-bond {
    base zebra-interface-type;
    description
      "Zebra interface type bond.";
  }

  identity zif-macvlan {
    base zebra-interface-type;
    description
      "Zebra interface type macvlan.";
  }

  identity zif-gre {
    base zebra-interface-type;
    description
      "Zebra interface type gre.";
  }

  /*
   * Multicast RPF mode configurable type
   */

  typedef mcast-rpf-lookup-mode {
    type enumeration {
      enum "none" {
        value 0;
        description
          "No mode set.";
      }
      enum "mrib-only" {
        value 1;
        description
          "Lookup in unicast RIB only.";
      }
      enum "urib-only" {
        value 2;
        description
          "Lookup in multicast RIB only.";
      }
      enum "mrib-then-urib" {
        value 3;
        description
          "Try multicast RIB first, fall back to unicast RIB.";
      }
      enum "lower-distance" {
        value 4;
        description
          "Lookup both unicast and mcast, use entry with lower distance.";
      }
      enum "longer-prefix" {
        value 5;
        description
          "Lookup both unicast and mcast, use entry with longer prefix.";
      }
    }
    description
      "Multicast RPF lookup behavior";
  }

  // End of ip6-route
  /*
   * VxLAN Network Identifier type
   */

  typedef vni-id-type {
    type uint32 {
      range "0..16777215";
    }
    description
      "A VxLAN network identifier value.";
  }

  typedef vni-vtep-flood-type {
    type enumeration {
      enum "head-end-repl" {
        value 0;
        description
          "Head-end replication.";
      }
      enum "disabled" {
        value 1;
        description
          "Flooding disabled.";
      }
      enum "pim-sm" {
        value 2;
        description
          "Multicast PIM-SM.";
      }
    }
  }

  /*
   * Common route data, shared by v4 and v6 routes.
   */

  grouping route-common {
    description
      "Common information about a route.";

    leaf distance {
      type uint8;
      description
        "Admin distance based on routing protocol.";
    }

    leaf metric {
      type uint32;
      description
        "Route metric value.";
    }

    leaf tag {
      type uint32 {
        range "1..4294967295";
      }
      description
        "Route tag value.";
    }

    leaf selected {
      type empty;
      description
        "Route is the selected or preferred route for the prefix.";
    }

    leaf installed {
      type empty;
      description
        "Route is installed in the FIB.";
    }

    leaf failed {
      type empty;
      description
        "Route installation in FIB has failed.";
    }

    leaf queued {
      type empty;
      description
        "Route has a pending FIB operation that has not completed.";
    }

    leaf internal-flags {
      type int32;
      description
        "Internal flags for the route.";
    }

    leaf internal-status {
      type int32;
      description
        "Internal status for the route.";
    }

    leaf uptime {
      type yang:date-and-time;
      description
        "Uptime for the route.";
    }

    uses frr-nh:frr-nexthop-group-operational;
  }

  // End of route-common
  /*
   * IPv4 Route object.
   */

  grouping ip4-route {
    description
      "An IPv4 route.";
    leaf prefix {
      type inet:ipv4-prefix;
      description
        "IP address (in the form A.B.C.D) and prefix length,
         separated by the slash (/) character. The range of
         values for the prefix-length is 0 to 32.";
    }

    leaf protocol {
      type frr-route-types:frr-route-types-v4;
      description
        "The protocol owning the route.";
    }

    uses route-common;
  }

  // End of ip4-route
  /*
   * IPv6 Route object.
   */

  grouping ip6-route {
    description
      "An IPv6 route.";
    leaf prefix {
      type inet:ipv6-prefix;
      description
        "The route's IPv6 prefix.";
    }

    leaf protocol {
      type frr-route-types:frr-route-types-v6;
      description
        "The protocol owning the route.";
    }

    uses route-common;
  }
  // End of ip6-route

  /*
   * Information about EVPN VNIs
   */

  grouping vni-information {
    choice type-choice {
      case l2 {
        leaf is-layer2 {
          type empty;
          description
            "Information about an L2 VNI.";
        }

        leaf vtep-count {
          type uint32;
          description
            "Number of VTEPs.";
        }
      }

      case l3 {
        leaf is-layer3 {
          type empty;
          description
            "Information about an L3 VNI.";
        }
      }
    }

    leaf vni-id {
      type vni-id-type;
      description
        "The VNI identifier.";
    }

    leaf vxlan-ifname {
      type frr-interface:interface-ref;
      description
        "The VxLAN interface name.";
    }

    leaf mac-count {
      type uint32;
      description
        "Number of valid MACs.";
    }

    leaf neighbor-count {
      type uint32;
      description
        "Number of neighbors.";
    }

    leaf vrf {
      type frr-vrf:vrf-ref;
      description
        "The tenant VRF.";
    }

    leaf local-vtep-addr {
      type inet:ipv4-address;
      description
        "The local VTEP IP address.";
    }
  }

  /*
   * Detailed EVPN VNI information for L2.
   */

  grouping vni-l2-detail {
    leaf if-index {
      type uint32;
      description
        "The VxLAN ifindex.";
    }

    leaf advertise-gw {
      type empty;
      description
        "The gateway MAC-IP is being advertised.";
    }

    leaf mcast-group {
      type rt-types:ipv4-multicast-group-address;
      description
        "The VNI multicast group for BUM traffic.";
    }

    list remote-vtep-list {
      leaf remote-vtep {
        type inet:ipv4-address;
        description
          "The remote VTEP IP address.";
      }

      leaf vtep-flood {
        type vni-vtep-flood-type;
      }
    }
  }

  /*
   * Detailed EVPN VNI information for L3.
   */

  grouping vni-l3-detail {
    leaf svi-interface {
      type frr-interface:interface-ref;
      description
        "The SVI interface.";
    }

    leaf is-up {
      type empty;
      description
        "The state is active.";
    }

    leaf prefix-only {
      type empty;
      description
        "Prefix routes only";
    }

    leaf router-mac {
      type yang:mac-address;
      description
        "The VNI Router MAC address.";
    }

    list vni-list {
      description
        "A list of the associated L2 VNIs.";
      leaf vni-id {
        type vni-id-type;
        description
          "An L2 VNI identifier.";
      }
    }
  }

  /*
   * Debug options
   */

  grouping zebra-debugs {
    leaf debug-events {
      type boolean;
      description
        "Debug ZAPI events.";
    }

    leaf debug-zapi-send {
      type boolean;
      description
        "Debug ZAPI messages sent.";
    }

    leaf debug-zapi-recv {
      type boolean;
      description
        "Debug ZAPI messages received.";
    }

    leaf debug-zapi-detail {
      type boolean;
      description
        "Debug ZAPI details.";
    }

    leaf debug-kernel {
      type boolean;
      description
        "Debug kernel events.";
    }

    leaf debug-kernel-msg-send {
      type boolean;
      description
        "Debug kernel messages sent.";
    }

    leaf debug-kernel-msg-recv {
      type boolean;
      description
        "Debug kernel messages received.";
    }

    leaf debug-rib {
      type boolean;
      description
        "Debug RIB processing.";
    }

    leaf debug-rib-detail {
      type boolean;
      description
        "Debug RIB processing details.";
    }

    leaf debug-fpm {
      type boolean;
      description
        "Debug the FIB Push Interface subsystem.";
    }

    leaf debug-nht {
      type boolean;
      description
        "Debug Nexthop-tracking.";
    }

    leaf debug-nht-detail {
      type boolean;
      description
        "Debug Nexthop-tracking details.";
    }

    leaf debug-mpls {
      type boolean;
      description
        "Debug MPLS.";
    }

    leaf debug-vxlan {
      type boolean;
      description
        "Debug VxLAN.";
    }

    leaf debug-pw {
      type boolean;
      description
        "Debug pseudowires.";
    }

    leaf debug-dplane {
      type boolean;
      description
        "Debug the dataplane subsystem.";
    }

    leaf debug-dplane-detail {
      type boolean;
      description
        "Debug dataplane subsystem details.";
    }

    leaf debug-mlag {
      type boolean;
      description
        "Debug MLAG.";
    }
  }

  grouping ribs {
    container ribs {
      config false;
      description
        "RIBs supported by FRR.";
      list rib {
        key "afi-safi-name table-id";
        leaf afi-safi-name {
          type identityref {
            base frr-rt:afi-safi-type;
          }
          description
            "AFI, SAFI name.";
        }

        leaf table-id {
          type uint32;
          description
            "Routing Table id (default id - 254).";
        }

        list route {
          key "prefix";
          leaf prefix {
            type inet:ip-prefix;
            description
              "The route's prefix.";
          }

          list route-entry {
            key "protocol";
            leaf protocol {
              type frr-route-types:frr-route-types;
              description
                "The protocol owning the route.";
            }

            leaf instance {
              type uint16;
              must "../protocol = \"ospf\"";
              description
                "Retrieve routes from a specific OSPF instance.";
            }

            uses route-common;
          }
        }
      }
    }
  }

  grouping vrf-vni-mapping {
    description
      "EVPN L3-VNI mapping corresponding to a VRF.";
    leaf l3vni-id {
      type vni-id-type;
      description
        "EVPN L3-VNI id to map to the VRF.";
    }

    leaf prefix-only {
      type boolean;
      default "false";
      description
        "EVPN asymmetric mode advertise prefix routes only.";
    }
  }

  // End of zebra container
  /*
   * RPCs
   */

  rpc get-route-information {
    description
      "Retrieve IPv4 or IPv6 unicast routes.";
    input {
      choice ip-type {
        case v4 {
          leaf ipv4 {
            type empty;
            mandatory true;
            description
              "Retrieve IPv4 routes.";
          }

          leaf prefix-v4 {
            type inet:ipv4-prefix;
            description
              "Retrieve routes matching a specific prefix.";
          }

          leaf supernets-only {
            type empty;
            description
              "Skip routes that are subnets of classful prefix sizes.";
          }
        }

        case v6 {
          leaf ipv6 {
            type empty;
            mandatory true;
            description
              "Retrieve IPv6 routes.";
          }

          leaf prefix-v6 {
            type inet:ipv6-prefix;
            description
              "Retrieve routes matching a specific prefix.";
          }
        }
      }

      choice vrf-choice {
        case single {
          leaf vrf {
            type frr-vrf:vrf-ref;
            description
              "Retrieve routes in a non-default vrf.";
          }
        }

        case all {
          leaf all-vrfs {
            type empty;
            description
              "Retrieve routes from all vrfs.";
          }
        }
      }

      leaf fib-routes {
        type empty;
        description
          "Retrieve FIB routes rather than RIB routes.";
      }

      leaf table-id {
        type uint32 {
          range "1..4294967295";
        }
        description
          "Routing table id to retrieve.";
      }

      leaf protocol {
        type frr-route-types:frr-route-types-v4;
        description
          "Retrieve routes from a specific protocol daemon.";
      }

      leaf ospf-instance {
        type uint32 {
          range "1..65535";
        }
        must "../protocol = \"ospf\"";
        description
          "Retrieve routes from a specific OSPF instance.";
      }

      choice detail {
        case det {
          leaf include-detail {
            type empty;
            description
              "Include detailed information.";
          }
        }

        case summ {
          leaf summary {
            type empty;
            description
              "Include summary information only.";
          }
        }
      }
    }
    // End of input
    output {
      choice route-list {
        case v4 {
          container routes-v4 {
            description
              "IPv4 route information.";
            list route {
              uses ip4-route;
            }
          }
        }

        case v6 {
          container routes-v6 {
            description
              "IPv6 route information.";
            list route {
              uses ip6-route;
            }
          }
        }
      }
    }
    // End of output
  }

  // End get-route-information

  rpc get-v6-mroute-info {
    description
      "Retrieve IPv6 multicast routes.";
    input {
      choice vrf-choice {
        case single {
          leaf vrf {
            type frr-vrf:vrf-ref;
            description
              "Retrieve routes in a non-default vrf.";
          }
        }

        case all {
          leaf all-vrfs {
            type empty;
            description
              "Retrieve routes from all vrfs.";
          }
        }
      }
    }

    output {
      container routes {
        description
          "IPv6 mcast route information.";
        list route {
          uses ip6-route;
        }
      }
    }
  }

  // End get-v6-mroute-info

  rpc get-vrf-info {
    description
      "Retrieve VRF information; the default VRF is elided.";
    // Note: no input clause.
    output {
      list vrf-list {
        leaf name {
          type frr-vrf:vrf-ref;
          description
            "The VRF name";
        }

        leaf is-user-config {
          type empty;
          description
            "The VRF was configured by an admin.";
        }

        leaf vrf-id {
          type uint32;
          description
            "The VRF id.";
        }

        choice vrf-type {
          case inactive {
            leaf is-inactive {
              type empty;
              description
                "The VRF is inactive.";
            }
          }

          case netns {
            leaf netns-name {
              type string;
              description
                "The net namespace name associated with the VRF.";
            }
          }

          case table {
            leaf table-id {
              type uint32;
              description
                "The table-id associated with the VRF.";
            }
          }
        }
      }
    }
  }

  // End get-vrf-info

  rpc get-vrf-vni-info {
    description
      "Retrieve mappings between EVPN VNI and VRF.";
    // Note: no input clause.
    output {
      list vrf-vni-list {
        leaf vrf-name {
          type frr-vrf:vrf-ref;
          description
            "The VRF name.";
        }

        leaf vni-id {
          type vni-id-type;
          description
            "The EVPN VNI.";
        }

        leaf vxlan-if-name {
          type frr-interface:interface-ref;
          description
            "The VxLAN interface name.";
        }

        leaf svi-if-name {
          type frr-interface:interface-ref;
          description
            "The SVI interface name.";
        }

        leaf router-mac-addr {
          type yang:mac-address;
          description
            "Router MAC address.";
        }

        leaf is-up {
          type empty;
          description
            "The state is active.";
        }
      }
    }
  }

  // End get-vrf-vni-info

  rpc get-evpn-info {
    description
      "Retrieve global information about EVPN.";
    // Note: No input clause.
    output {
      leaf l2vni-count {
        type uint32;
        description
          "Number of L2 VNIs.";
      }

      leaf l3vni-count {
        type uint32;
        description
          "Number of L3 VNIs.";
      }

      leaf advertise-gateway {
        type empty;
        description
          "Advertise the gateway MAC-IP.";
      }

      leaf advertise-svi {
        type empty;
        description
          "Advertise SVI MAC-IP.";
      }

      leaf dup-detect {
        type empty;
        description
          "Duplicate address detection is enabled.";
      }

      leaf dad-max-moves {
        type uint32;
        description
          "Maximum moves allowed before address is considered duplicate.";
      }

      leaf dad-timeout {
        type uint32;
        units "seconds";
        description
          "Duplicate address detection timeout.";
      }

      leaf dad-freeze {
        type empty;
        description
          "Duplicate address detection freeze enabled.";
      }

      choice dad-freeze-choice {
        case freeze-permanent {
          leaf dad-freeze-perm {
            type empty;
            description
              "Duplicate address detection freeze is permanent.";
          }
        }

        case freeze-time {
          leaf dad-freeze-time {
            type uint32;
            units "seconds";
            description
              "Duplicate address detection freeze timer.";
          }
        }
      }
    }
  }

  // End get-evpn-info

  rpc get-vni-info {
    // If no vni is specified, retrieve global list.
    input {
      choice vni-choice {
        default "all-vnis";
        case all-vnis {
          leaf all-vnis {
            type empty;
            description
              "Retrieve information about all VNIs.";
          }
        }

        case single-vni {
          leaf vni-id {
            type vni-id-type;
            description
              "Retrieve information about a specific EVPN VNI.";
          }
        }
      }

      leaf detailed-info {
        type empty;
        description
          "Retrieve detailed information.";
      }
    }

    output {
      list vni-list {
        description
          "Information about EVPN VNI objects.";
        uses vni-information;

        choice detail-choice {
          case l2 {
            description
              "Detailed L2 information.";
            uses vni-l2-detail;
          }

          case l3 {
            description
              "Detailed L3 information.";
            uses vni-l3-detail;
          }
        }
      }
    }
  }

  // End get-vni-info

  rpc get-evpn-vni-rmac {
    description
      "Retrieve information about VxLAN VNI RMACs.";
    input {
      choice vni-choice {
        default "all-vnis";
        case all-vnis {
          leaf all-vnis {
            type empty;
            description
              "Retrieve information about all VNIs.";
          }
        }

        case single-vni {
          leaf vni-id {
            type vni-id-type;
            description
              "Retrieve information about a specific EVPN VNI.";
          }

          leaf vni-rmac {
            type yang:mac-address;
            description
              "A single RMAC address.";
          }
        }
      }
    }

    output {
      list rmac-info-list {
        leaf rmac {
          type yang:mac-address;
          description
            "The RMAC address.";
        }

        leaf remote-vtep {
          type inet:ipv4-address;
          description
            "The remote VTEP IP address.";
        }

        leaf refcount {
          type uint32;
          description
            "The refcount of the RMAC.";
        }

        list prefix-list {
          leaf prefix-item {
            type inet:ip-prefix;
            description
              "IP prefixes associated with the RMAC.";
          }
        }
      }
    }
  }

  // End get-evpn-vni-rmac

  rpc get-evpn-vni-nexthops {
    description
      "Retrieve information about EVPN nexthops.";
    input {
      choice vni-choice {
        default "all-vnis";
        case all-vnis {
          leaf all-vnis {
            type empty;
            description
              "Retrieve information about all VNIs.";
          }
        }

        case single-vni {
          leaf vni-id {
            type vni-id-type;
            description
              "Retrieve information about a specific EVPN VNI.";
          }

          leaf vni-ipaddr {
            type inet:ip-address;
            description
              "A single host IP address (v4 or v6).";
          }
        }
      }
    }

    output {
      list nh-info-list {
        leaf ip-addr {
          type inet:ip-address;
          description
            "The nexthop IP address.";
        }

        leaf mac-addr {
          type yang:mac-address;
          description
            "The nexthop MAC address.";
        }

        leaf refcount {
          type uint32;
          description
            "The refcount of the RMAC.";
        }

        list prefix-list {
          leaf prefix-item {
            type inet:ip-prefix;
            description
              "IP prefixes associated with the RMAC.";
          }
        }
      }
    }
  }

  // End get-evpn-vni-vteps

  rpc clear-evpn-dup-addr {
    description
      "Clear duplicate address detection state for one or all VNIs.";
    input {
      choice clear-dup-choice {
        case all-case {
          leaf all-vnis {
            type empty;
            description
              "Clear all VNIs.";
          }
        }

        case single-case {
          leaf vni-id {
            type vni-id-type;
            description
              "Clear state for a single EVPN VNI.";
          }

          choice ip-mac-choice {
            description
              "Clear state for a specific MAC or IP address.";
            case ip-case {
              leaf vni-ipaddr {
                type inet:ip-address;
                description
                  "A specific IP address (v4 or v6).";
              }
            }

            case mac-case {
              leaf mac-addr {
                type yang:mac-address;
                description
                  "A specific MAC address.";
              }
            }
          }
        }
      }
    }
  }

  // End clear-evpn-dup-addr

  rpc get-evpn-macs {
    description
      "Retrieve information about EVPN MAC addresses.";
    input {
      choice all-choice {
        default "all-vni";
        case all-vni {
          leaf all-vnis {
            type empty;
            description
              "Retrieve information for all VNIs.";
          }

          choice all-choices {
            case detail-case {
              leaf all-detail {
                type empty;
                description
                  "Include detailed results.";
              }
            }

            case vtep-case {
              leaf all-vtep-addr {
                type inet:ipv4-address;
                description
                  "A single VTEP address.";
              }
            }

            case dup-case {
              leaf all-dup {
                type empty;
                description
                  "Show duplicate addresses.";
              }
            }
          }
        }

        case single-vni {
          leaf vni-id {
            type vni-id-type;
            description
              "Retrieve information for a single VNI.";
          }

          choice single-choices {
            case detail-case {
              leaf single-detail {
                type empty;
                description
                  "Include detailed results.";
              }
            }

            case mac-case {
              leaf single-mac {
                type yang:mac-address;
                description
                  "A specific MAC address.";
              }
            }

            case vtep-case {
              leaf single-vtep {
                type inet:ipv4-address;
                description
                  "A single VTEP address.";
              }
            }

            case dup-case {
              leaf single-dup {
                type empty;
                description
                  "Show duplicate addresses.";
              }
            }
          }
        }
      }
    }
    // End of input section
    output {
      list mac-list {
        leaf mac-addr {
          type yang:mac-address;
          description
            "The MAC address.";
        }

        leaf vni {
          type vni-id-type;
          description
            "The VNI value.";
        }

        leaf local-sequence {
          type uint32;
          description
            "Local sequence number.";
        }

        leaf remote-sequence {
          type uint32;
          description
            "Remote sequence number.";
        }

        leaf dad-count {
          type uint32;
          description
            "Duplicate detection counter.";
        }

        leaf is-duplicate {
          type empty;
          description
            "Duplicate MAC detected.";
        }

        leaf dup-detect-time {
          type unix-timestamp;
          description
            "If a duplicate, the detection time.";
        }

        container dup-detect-started {
          leaf dup-detect-start {
            type unix-timestamp;
            description
              "Duplicate detection process start time.";
          }

          leaf dup-count {
            type uint32;
            description
              "Duplicate detection count.";
          }
        }

        leaf is-auto {
          type empty;
          description
            "This is an Auto MAC.";
        }

        leaf is-sticky {
          type empty;
          description
            "This is a sticky MAC.";
        }

        leaf is-default-gw {
          type empty;
          description
            "This is a default-gateway MAC.";
        }

        leaf is-remote-gw {
          type empty;
          description
            "This is a remote-gateway MAC.";
        }

        list neighbor-list {
          leaf neighbor-addr {
            type inet:ip-address;
            description
              "Neighbor address.";
          }

          leaf is-active {
            type empty;
            description
              "Neighbor is active.";
          }
        }

        leaf mac-count {
          type uint32;
          description
            "Number of MACs (local and remote).";
        }

        choice local-rem-choice {
          case local-case {
            leaf intf {
              type frr-interface:interface-ref;
              description
                "The local interface name.";
            }

            leaf vlan {
              type uint32;
              description
                "A VLAN id.";
            }
          }

          case remote-case {
            leaf vtep-addr {
              type inet:ipv4-address;
              description
                "The remote VTEP IP address.";
            }
          }
        }
      }
    }
  }

  // End get-evpn-macs

  rpc get-evpn-arp-cache {
    description
      "Retrieve information about EVPN neighbor cache entries.";
    input {
      choice all-choice {
        default "all-vni";
        case all-vni {
          leaf all-vnis {
            type empty;
            description
              "Retrieve information for all VNIs.";
          }

          choice all-choices {
            case detail-case {
              leaf all-detail {
                type empty;
                description
                  "Include detailed results.";
              }
            }

            case dup-case {
              leaf all-dup {
                type empty;
                description
                  "Show duplicates.";
              }
            }
          }
        }

        case single-vni {
          leaf vni-id {
            type vni-id-type;
            description
              "Retrieve information for a single VNI.";
          }

          choice single-choices {
            case vtep-case {
              leaf single-vtep {
                type inet:ipv4-address;
                description
                  "A single VTEP address.";
              }
            }

            case neighbor-case {
              leaf neighbor-addr {
                type inet:ip-address;
                description
                  "A single neighbor address.";
              }
            }

            case dup-case {
              leaf single-dup {
                type empty;
                description
                  "Show duplicates.";
              }
            }
          }
        }
      }
    }
    // End input section
    output {
      list vni-list {
        container vni-container {
          description
            "Information for one VNI.";
          leaf vni-id {
            type vni-id-type;
            description
              "The VNI id.";
          }

          list neigh-list {
            description
              "Information about a VNI's neighbor cache.";
            leaf mac-addr {
              type yang:mac-address;
              description
                "A neighbor MAC address.";
            }

            leaf ip-addr {
              type inet:ip-address;
              description
                "A neighbor IP address.";
            }

            leaf state-active {
              type empty;
              description
                "Indicates whether the entry is active.";
            }

            choice local-remote-choice {
              case local-case {
                leaf is-local {
                  type empty;
                  description
                    "The entry is local.";
                }
              }

              case remote-case {
                leaf is-remote {
                  type empty;
                  description
                    "The entry is remote.";
                }
              }
            }

            leaf is-dup {
              type empty;
              description
                "The entry is a detected duplicate.";
            }

            leaf is-default-gw {
              type empty;
              description
                "The entry is a default gateway.";
            }

            leaf is-router {
              type empty;
              description
                "The entry is a router.";
            }

            leaf local-sequence {
              type uint32;
              description
                "The local sequence number.";
            }

            leaf remote-sequence {
              type uint32;
              description
                "The remote sequence number.";
            }

            leaf remote-vtep {
              type inet:ipv4-address;
              description
                "The remote VTEP address.";
            }
          }
        }
      }
    }
  }

  // End get-evpn-arp-cache

  rpc get-pbr-ipset {
    input {
      leaf name {
        type string {
          length "1..32";
        }
        description
          "An optional specific IPset name.";
      }
    }

    output {
      list ipset-list {
        leaf name {
          type string {
            length "1..32";
          }
          description
            "The IPset name.";
        }

        leaf ipset-type {
          type enumeration {
            enum "net-net" {
              value 1;
              description
                "";
            }
            enum "net-port-net" {
              value 2;
              description
                "";
            }
            enum "net-port" {
              value 3;
              description
                "";
            }
            enum "net" {
              value 4;
              description
                "";
            }
          }
        }

        leaf src-prefix {
          type inet:ip-prefix;
          description
            "";
        }

        leaf dest-prefix {
          type inet:ip-prefix;
          description
            "";
        }

        leaf src-port {
          type inet:port-number;
          description
            "";
        }

        leaf dest-port {
          type inet:port-number;
          description
            "";
        }

        choice proto-choice {
          description
            "Filter UDP/TCP only, or a specific protocol number.";
          case udp-tcp-case {
            leaf is-udp-tcp {
              type empty;
              description
                "Filter TCP/UDP ports only.";
            }
          }

          case proto-case {
            leaf proto {
              type uint32;
              description
                "Filter a specific protocol number.";
            }
          }
        }

        container icmp-info {
          description
            "Additional information for ICMP filters.";
          leaf type-min {
            type uint8;
            description
              "";
          }

          leaf type-max {
            type uint8;
            description
              "";
          }

          leaf code-min {
            type uint8;
            description
              "";
          }

          leaf code-max {
            type uint8;
            description
              "";
          }
        }

        container ipset-stats {
          leaf is-unique {
            type empty;
            description
              "";
          }

          leaf packet-counter {
            type uint64;
            description
              "";
          }

          leaf bytes-counter {
            type uint64;
            description
              "";
          }
        }
      }
    }
  }

  // End get-pbr-ipset

  rpc get-pbr-iptable {
    input {
      leaf name {
        type string {
          length "1..32";
        }
        description
          "An optional single IPtable name.";
      }
    }

    output {
      list iptable-list {
        leaf name {
          type string {
            length "1..32";
          }
          description
            "The IPtable name.";
        }

        leaf unique-val {
          type uint32;
          description
            "";
        }

        choice action-choice {
          description
            "The table action.";
          case drop-case {
            leaf action-drop {
              type empty;
              description
                "";
            }
          }

          case redirect-case {
            leaf action-redirect {
              type empty;
              description
                "";
            }
          }
        }

        leaf min-packet {
          type uint32;
          description
            "";
        }

        leaf max-packet {
          type uint32;
          description
            "";
        }

        leaf lookup-src-port {
          type empty;
          description
            "";
        }

        leaf lookup-dst-port {
          type empty;
          description
            "";
        }

        leaf tcp-flags {
          type uint16;
          description
            "";
        }

        leaf tcp-flags-mask {
          type uint16;
          description
            "";
        }

        leaf protocol-val {
          type uint32;
          description
            "An IP protocol number.";
        }

        container dscp-info {
          leaf dscp-value {
            type uint32;
            description
              "A DSCP value to match.";
          }

          leaf invert-match {
            type empty;
            description
              "If set, exclude the specified value";
          }
        }

        container fragment-info {
          leaf fragment-val {
            type uint32;
            description
              "An IP fragment value.";
          }

          leaf invert-match {
            type empty;
            description
              "If set, exclude the specified value.";
          }
        }

        container iptable-stats {
          leaf packet-counter {
            type uint64;
            description
              "";
          }

          leaf bytes-counter {
            type uint64;
            description
              "";
          }
        }

        container rule-info {
          description
            "Information about a rule, for redirect tables.";
          leaf table-id {
            type uint32;
            description
              "The rule table id.";
          }

          leaf table-fwmark {
            type uint32;
            description
              "The firewall mark for the rule.";
          }
        }
      }
    }
  }

  // End get-pbr-iptable
  /*
   * Handy 'all-at-once' api to retrieve debugs
   */

  rpc get-debugs {
    output {
      uses zebra-debugs;
    }
  }

  // End get-debugs

  augment "/frr-interface:lib/frr-interface:interface" {
    description
      "Extends interface model with Zebra-related parameters.";
    container zebra {
      list ipv4-addrs {
        key "ip prefix-length";
        description
          "The list of configured IPv4 addresses on the interface.";

        leaf ip {
          type inet:ipv4-address-no-zone;
          description
            "The IPv4 address on the interface.";
        }

        leaf prefix-length {
          type uint8 {
            range "0..32";
          }
          description
            "The length of the subnet prefix.";
        }

        leaf label {
          type string;
          description
            "Optional string label for the address.";
        }
      }

      list ipv4-p2p-addrs {
        key "ip peer-ip peer-prefix-length";
        description
          "The list of configured peer-to-peer IPv4 addresses on the interface.";

        leaf ip {
          type inet:ipv4-address-no-zone;
          description
            "The IPv4 address on the interface.";
        }

        leaf peer-ip {
          type inet:ipv4-address-no-zone;
          description
            "Peer address.";
        }

        leaf peer-prefix-length {
          type uint8 {
            range "0..32";
          }
          description
            "The length of the peer subnet prefix.";
        }

        leaf label {
          type string;
          description
            "Optional string label for the address.";
        }
      }

      list ipv6-addrs {
        key "ip prefix-length";
        description
          "The list of configured IPv6 addresses on the interface.";

        leaf ip {
          type inet:ipv6-address-no-zone;
          description
            "The IPv6 address on the interface.";
        }

        leaf prefix-length {
          type uint8 {
            range "0..128";
          }
          description
            "The length of the subnet prefix.";
        }
      }

      leaf multicast {
        type boolean;
        description
          "Multicast flag for the interface.";
      }

      leaf link-detect {
        type boolean;
        default "true";
        description
          "Link-detection for the interface.";
      }

      leaf enabled {
        type boolean;
        description
          "Interface admin status.";
      }

      leaf mpls {
        type boolean;
        description
          "Interface MPLS status.";
      }

      leaf bandwidth {
        type uint32 {
          range "1..1000000";
        }
        units "megabits/sec";
        description
          "Link bandwidth informational parameter, in megabits.";
      }
      container link-params {
        presence "Activates link parameters on this interface.";
        description
          "link-params for Traffic-Engineering (TE) use in IGP extensions.";
        leaf metric {
          type uint32;
          description
            "Link metric for MPLS-TE purpose.";
        }
        leaf max-bandwidth {
          type rt-types:bandwidth-ieee-float32;
          description
            "Maximum bandwidth.";
        }
        leaf max-reservable-bandwidth {
          type rt-types:bandwidth-ieee-float32;
          description
            "Maximum reservable bandwidth.";
        }
        container unreserved-bandwidths {
          description
            "All unreserved bandwidths.";
          list unreserved-bandwidth {
            key "priority";
            leaf priority {
              type uint8 {
                range "0 .. 7";
              }
              description
                "Priority from 0 to 7.";
            }
            leaf unreserved-bandwidth {
              type rt-types:bandwidth-ieee-float32;
              mandatory true;
              description
                "Unreserved bandwidth.";
            }
            description
              "List of unreserved bandwidths for different
                priorities.";
          }
        }
        leaf residual-bandwidth {
          type rt-types:bandwidth-ieee-float32;
          description
            "Unidirectional residual bandwidth.";
        }
        leaf available-bandwidth {
          type rt-types:bandwidth-ieee-float32;
          description
            "Unidirectional available bandwidth.";
        }
        leaf utilized-bandwidth {
          type rt-types:bandwidth-ieee-float32;
          description
            "Unidirectional utilized bandwidth.";
        }
        choice admin-group-mode {
          description "Admin-group mode";
          case legacy {
            description
              "Legacy mode. Only support standard admin-group (RFC3630/5305/5329)";
            leaf legacy-admin-group {
              description "Admin-Group value";
              type uint32;
            }
          }
          case affinity {
            container affinities {
              leaf-list affinity {
                type frr-affinity-map:affinity-map-ref;
                max-elements "256";
                must '../../affinity-mode != "standard" or /frr-affinity-map:lib/frr-affinity-map:affinity-maps/frr-affinity-map:affinity-map[frr-affinity-map:name=current()]/frr-affinity-map:value < 32' {
                  error-message "Affinity bit-position must be less than 32 when used with standard affinity mode";
                }
                description
                  "Array of Attribute Names";
              }
            }
          }
        }
        leaf affinity-mode {
          description
            "Affinity mode";
          default "extended";
          type enumeration {
              enum extended {
              value 0;
              description
                "Extended Admin-Group only (RFC7308)";
            }
            enum standard {
            value 1;
              description
                "Standard Admin-Group only (RFC3630/5305/5329)";
            }
            enum both {
              value 2;
              description
                "Standard and extended Admin-Group";
            }
          }
        }
        container neighbor {
          description "Remote ASBR information (RFC 5316 & RFC 5392)";
          presence "Activates neighbor information on this interface.";
          leaf remote-as {
            type inet:as-number;
            mandatory true;
            description
              "Remote AS Number (RFC 5316 & RFC 5392)";
          }
          leaf ipv4-remote-id {
            type inet:ipv4-address;
            mandatory true;
            description
              "IPv4 Remote ASBR ID (RFC 5316 & RFC 5392)";
          }
        }
        leaf delay {
          type uint32 {
            range "0..16777215";
          }
          description
            "Average Unidirectional Link Delay";
        }
        container min-max-delay {
          description
            "Min/Max Unidirectional Link Delay";
          presence "Activates min/max delay.";
          leaf delay-min {
            type uint32 {
              range "0..16777215";
            }
            must '. <= ../../delay' {
              error-message "Min delay must be less than or equal to delay";
            }
            mandatory true;
            description
              "Min Delay";
          }
          leaf delay-max {
            type uint32 {
              range "0..16777215";
            }
            must '. >= ../../delay' {
              error-message "Max delay must be greater than or equal to delay";
            }
            mandatory true;
            description
              "Max Delay";
          }
        }
        leaf delay-variation {
          type uint32 {
            range "0..16777215";
          }
          description
            "Unidirectional Delay Variation";
        }
        leaf packet-loss {
          type decimal64 {
            fraction-digits 6;
            range "0..50.331642";
          }
          description
            "Unidirectional Link Packet Loss";
        }
        // TODO -- other link-params options
        // for (experimental/partial TE use in IGP extensions)
      }
      container evpn-mh {
        description "EVPN multihoming configuration";
        choice esi-choice {
          description "ESI type";
          container type-0 {
            leaf esi {
              type yang:hex-string {
                length "29";
              }
              description
                "10-octet ESI.";
              }
          }
          container type-3 {
            leaf system-mac {
              type yang:mac-address;
              description
                "System MAC address.";
            }
            leaf local-discriminator {
              type uint32 {
                range "1..16777215";
              }
              description
                "Local discriminator.";
            }
          }
        }
        leaf df-preference {
          type uint16;
          default "32767";
          description
            "Preference value used for DF election.";
        }
        leaf bypass {
          type boolean;
          default "false";
          description
            "Bypass mode.";
        }
        leaf uplink {
          type boolean;
          default "false";
          description
            "Uplink to the VxLAN core.";
        }
      }
      container ipv6-router-advertisements {
        if-feature "ipv6-router-advertisements";
        description
          "Support for IPv6 Router Advertisements.";
        leaf send-advertisements {
          type boolean;
          default "false";
          description
            "A flag indicating whether or not the router sends
            periodic Router Advertisements and responds to
            Router Solicitations.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvSendAdvertisements";
        }
        leaf max-rtr-adv-interval {
          type uint32 {
            range "70..1800000";
          }
          units "milliseconds";
          default "600000";
          description
            "The maximum time allowed between sending unsolicited
            multicast Router Advertisements from the interface.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - MaxRtrAdvInterval
             RFC 6275: Mobility Support in IPv6";
        }
        // Setting this value is not yet supported by the actual code.
        /*
        leaf min-rtr-adv-interval {
          type uint32 {
            range "30..1350000";
          }
          units "milliseconds";
          must ". <= 0.75 * ../max-rtr-adv-interval" {
            description
              "The value MUST NOT be greater than 75% of
              'max-rtr-adv-interval'.";
          }
          description
            "The minimum time allowed between sending unsolicited
            multicast Router Advertisements from the interface.

            The default value to be used operationally if this
            leaf is not configured is determined as follows:

            - if max-rtr-adv-interval >= 9 seconds, the default
              value is 0.33 * max-rtr-adv-interval;

            - otherwise, it is 0.75 * max-rtr-adv-interval.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - MaxRtrAdvInterval
             RFC 6275: Mobility Support in IPv6";
        }
        */
        leaf managed-flag {
          type boolean;
          default "false";
          description
            "The value to be placed in the 'Managed address
            configuration' flag field in the Router
            Advertisement.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvManagedFlag";
        }
        leaf other-config-flag {
          type boolean;
          default "false";
          description
            "The value to be placed in the 'Other configuration'
            flag field in the Router Advertisement.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvOtherConfigFlag";
        }
        leaf home-agent-flag {
          type boolean;
          default "false";
          description
            "The value to be placed in the 'Home Agent'
            flag field in the Router Advertisement.";
          reference
            "RFC 6275: Mobility Support in IPv6";
        }
        leaf link-mtu {
          type uint32;
          default "0";
          description
            "The value to be placed in MTU options sent by the
            router.  A value of zero indicates that no MTU options
            are sent.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvLinkMTU";
        }
        leaf reachable-time {
          type uint32 {
            range "0..3600000";
          }
          units "milliseconds";
          default "0";
          description
            "The value to be placed in the Reachable Time field in
            the Router Advertisement messages sent by the router.
            A value of zero means unspecified (by this router).";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvReachableTime";
        }
        leaf retrans-timer {
          type uint32;
          units "milliseconds";
          default "0";
          description
            "The value to be placed in the Retrans Timer field in
            the Router Advertisement messages sent by the router.
            A value of zero means unspecified (by this router).";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvRetransTimer";
        }
        leaf cur-hop-limit {
          type uint8;
          description
            "The value to be placed in the Cur Hop Limit field in
            the Router Advertisement messages sent by the router.
            A value of zero means unspecified (by this router).

            If this parameter is not configured, the device SHOULD
            use the IANA-specified value for the default IPv4
            Time to Live (TTL) parameter that was in effect at the
            time of implementation.";
          reference
            "RFC 3232: Assigned Numbers: RFC 1700 is Replaced by
                       an On-line Database
             RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvCurHopLimit
             IANA: IP Parameters
                   (https://www.iana.org/assignments/ip-parameters)";
        }
        leaf default-lifetime {
          type uint16 {
            range "0..9000";
          }
          units "seconds";
          must ". = 0 or . * 1000 >= ../max-rtr-adv-interval" {
            description
              "The value MUST NOT be less than max-rtr-adv-interval.";
          }
          description
            "The value to be placed in the Router Lifetime field of
            Router Advertisements sent from the interface, in
            seconds.  It MUST be either zero or between
            max-rtr-adv-interval and 9000 seconds.  A value of zero
            indicates that the router is not to be used as a
            default router.  These limits may be overridden by
            specific documents that describe how IPv6 operates over
            different link layers.

            If this parameter is not configured, the device SHOULD
            use a value of 3 * max-rtr-adv-interval.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvDefaultLifetime";
        }
        leaf fast-retransmit {
          type boolean;
          default "true";
          description
            "Allow sending unsolicited multicast Router Advertisements
            more frequently than once every 3 seconds as required by
            RFC 4861.";
        }
        leaf advertisement-interval-option {
          type boolean;
          default "false";
          description
            "Enable sending the Advertisement Interval Option in
            Router Advertisements.";
          reference
            "RFC 6275: Mobility Support in IPv6";
        }
        leaf home-agent-preference {
          type uint16;
          description
            "The value to be placed in the Home Agent Preference
            field in the Router Advertisement messages sent by the
            router.";
          reference
            "RFC 6275: Mobility Support in IPv6";
        }
        leaf home-agent-lifetime {
          type uint16;
          description
            "The value to be placed in the Home Agent Lifetime
            field in the Router Advertisement messages sent by the
            router.";
          reference
            "RFC 6275: Mobility Support in IPv6";
        }
        leaf default-router-preference {
          type enumeration {
            enum high {
              value 1; /* 01 */
              description
                "High preference.";
            }
            enum medium {
              value 0; /* 00 */
              description
                "Medium preference.";
            }
            enum low {
              value 3; /* 11 */
              description
                "Low preference.";
            }
          }
          default "medium";
          description
            "The value to be placed in the Default Router
            Preference field in the Router Advertisement messages
            sent by the router.";
          reference
            "RFC 4191: Default Router Preferences and More-Specific
                       Routes";
        }
        container prefix-list {
          description
            "Support for prefixes to be placed in Prefix
            Information options in Router Advertisement messages
            sent from the interface.

            Prefixes that are advertised by default but do not
            have their entries in the child 'prefix' list are
            advertised with the default values of all parameters.

            The link-local prefix SHOULD NOT be included in the
            list of advertised prefixes.";
          reference
            "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
                       - AdvPrefixList";
          list prefix {
            key "prefix-spec";
            description
              "Support for an advertised prefix entry.";
            leaf prefix-spec {
              type inet:ipv6-prefix;
              description
                "IPv6 address prefix.";
            }
            // FRR doesn't support 'no-advertise'. Keeping the code
            // here for future reference.
            /*
            choice control-adv-prefixes {
              default "advertise";
              description
                "Either (1) the prefix is explicitly removed from the
                set of advertised prefixes or (2) the parameters with
                which the prefix is advertised are specified (default
                case).";
              leaf no-advertise {
                type empty;
                description
                  "The prefix will not be advertised.

                  This can be used for removing the prefix from
                  the default set of advertised prefixes.";
              }
              case advertise {
            */
                leaf valid-lifetime {
                  type uint32;
                  units "seconds";
                  default "2592000";
                  description
                    "The value to be placed in the Valid Lifetime
                    in the Prefix Information option.  The
                    designated value of all 1's (0xffffffff)
                      represents infinity.";
                  reference
                    "RFC 4861: Neighbor Discovery for IP version 6
                              (IPv6) - AdvValidLifetime";
                }
                leaf on-link-flag {
                  type boolean;
                  default "true";
                  description
                    "The value to be placed in the on-link flag
                    ('L-bit') field in the Prefix Information
                    option.";
                  reference
                    "RFC 4861: Neighbor Discovery for IP version 6
                              (IPv6) - AdvOnLinkFlag";
                }
                leaf preferred-lifetime {
                  type uint32;
                  units "seconds";
                  must ". <= ../valid-lifetime" {
                    description
                      "This value MUST NOT be greater than
                      valid-lifetime.";
                  }
                  default "604800";
                  description
                    "The value to be placed in the Preferred
                    Lifetime in the Prefix Information option.
                    The designated value of all 1's (0xffffffff)
                    represents infinity.";
                  reference
                    "RFC 4861: Neighbor Discovery for IP version 6
                              (IPv6) - AdvPreferredLifetime";
                }
                leaf autonomous-flag {
                  type boolean;
                  default "true";
                  description
                    "The value to be placed in the Autonomous Flag
                    field in the Prefix Information option.";
                  reference
                    "RFC 4861: Neighbor Discovery for IP version 6
                              (IPv6) - AdvAutonomousFlag";
                }
                leaf router-address-flag {
                  type boolean;
                  default "false";
                  description
                    "The value to be placed in the Router Address
                    flag field in the Prefix Information option.";
                  reference
                    "RFC 6275: Mobility Support in IPv6";
                }
            /*
              }
            }
            */
            // This is closing brackets for `case advertise` and
            // `choice control-adv-prefixes`.
          }
        }
        container rdnss {
          description
            "A list of recursive DNS server addresses that are placed
            in Recursive DNS Server (RDNSS) options in Router
            Advertisement messages sent from the interface.";
          reference
            "RFC 8106: IPv6 Router Advertisement Options for DNS
                       Configuration";
          list rdnss-address {
            key "address";
            description
              "Recursive DNS server address.";
            leaf address {
              type inet:ipv6-address;
              description
                "IPv6 address of a recursive DNS server.";
            }
            leaf lifetime {
              type uint32;
              units "seconds";
              description
                "The value that is placed in the Lifetime field in the
                RDNSS option.  The designated value of all 1's
                (0xffffffff) represents infinity.";
            }
          }
        }
        container dnssl {
          description
            "A list of domain names that are placed in DNS Search List (DNSSL)
            options in Router Advertisement messages sent from the interface.";
          reference
            "RFC 8106: IPv6 Router Advertisement Options for DNS
                       Configuration";
          list dnssl-domain {
            key "domain";
            description
              "Domain name for the search list.";
            leaf domain {
              type inet:domain-name;
              description
                "Domain name for the search list.";
            }
            leaf lifetime {
              type uint32;
              units "seconds";
              description
                "The value that is placed in the Lifetime field in the
                DNSSL option.  The designated value of all 1's
                (0xffffffff) represents infinity.";
            }
          }
        }
      }
      leaf ptm-enable {
        if-feature ptm-bfd;
        type boolean;
        default "true";
        description
          "Enable PTM on the interface.";
      }
      container state {
        config false;
        description
          "Operational data.";
        leaf up-count {
          type uint16;
          description
            "Interface Up count.";
        }

        leaf down-count {
          type uint16;
          description
            "Interface Down count.";
        }

        leaf zif-type {
          type identityref {
            base zebra-interface-type;
          }
          description
            "zebra interface type.";
        }

        leaf ptm-status {
          type string;
          default "disabled";
          description
            "Interface PTM status.";
        }

        leaf vlan-id {
          type uint16 {
            range "1..4094";
          }
          description
            "A VLAN id.";
        }

        leaf vni-id {
          type vni-id-type;
        }

        leaf remote-vtep {
          type inet:ipv4-address;
          description
            "The remote VTEP IP address.";
        }

        leaf mcast-group {
          type rt-types:ipv4-multicast-group-address;
          description
            "The VNI multicast group for BUM traffic.";
        }

        leaf bond {
          type frr-interface:interface-ref;
          description
            "The bond interface this interface belongs to.";
        }
      }
    }
  }

  augment "/frr-vrf:lib/frr-vrf:vrf" {
    description
      "Extends VRF model with Zebra-related parameters.";
    container zebra {
      description
        "Zebra's vrf specific configuration and operational model.";

      leaf router-id {
        type yang:dotted-quad;
        description
          "A 32-bit number in the form of a dotted quad that is used by
           some routing protocols identifying a router.";
      }

      leaf ipv6-router-id {
        type inet:ipv6-address-no-zone;
        description
          "A 128-bit number in the form of an IPv6 address that is used by
           some routing protocols identifying a router.";
      }

      list filter-protocol {
        key "afi-safi protocol";
        description
          "Filter routing info exchanged between zebra and protocol.";
        leaf afi-safi {
          type identityref {
            base frr-rt:afi-safi-type;
          }
          description
            "AFI-SAFI type.";
        }
        leaf protocol {
          // This should be identityref to frr-rt:control-plane-protocol someday
          type string;
          description
            "The protocol to filter.";
        }
        leaf route-map {
          type frr-route-map:route-map-ref;
          mandatory true;
          description
            "A route-map to filter routes.";
        }
      }

      list filter-nht {
        key "afi-safi protocol";
        description
          "Filter next hop tracking route resolution.";
        leaf afi-safi {
          type identityref {
            base frr-rt:afi-safi-type;
          }
          description
            "AFI-SAFI type.";
        }
        leaf protocol {
          // This should be identityref to frr-rt:control-plane-protocol someday
          type string;
          description
            "The protocol to filter.";
        }
        leaf route-map {
          type frr-route-map:route-map-ref;
          mandatory true;
          description
            "A route-map to filter nexthops.";
        }
      }

      leaf resolve-via-default {
        type boolean;
        description
          "Resolve IPv4 nexthops via the default route. This is true by default
           for traditional profile and false by default for datacenter profile.
           Removing the leaf sets it back to the default value for the profile.";
      }

      leaf ipv6-resolve-via-default {
        type boolean;
        description
          "Resolve IPv4 nexthops via the default route. This is true by default
           for traditional profile and false by default for datacenter profile.
           Removing the leaf sets it back to the default value for the profile.";
      }

      container netns {
        description
          "Configuration for netns VRF backend.";
        container table-range {
          presence "Activates table-range configuration.";
          description
            "The range of tables to use for this netns.";
          leaf start {
            type uint32;
            mandatory true;
            description
              "The first table to use.";
          }
          leaf end {
            type uint32;
            mandatory true;
            must ". >= ../start" {
              error-message "End table must be greater than or equal to start table";
            }
            description
              "The last table to use.";
          }
        }
      }

      uses ribs;

      uses vrf-vni-mapping;
    }
  }

  augment "/frr-vrf:lib/frr-vrf:vrf/frr-zebra:zebra/ribs/rib/route/route-entry/nexthop-group/nexthop" {
    uses frr-nh:frr-nexthop-operational;
  }

  /*
   * Main zebra container
   */

  container zebra {
    description
      "Data model for the Zebra daemon.";
    leaf mcast-rpf-lookup {
      type frr-zebra:mcast-rpf-lookup-mode;
      default "mrib-then-urib";
      description
        "Multicast RPF lookup behavior.";
    }
    leaf ip-forwarding {
      type boolean;
      description
        "IP forwarding status.";
    }
    leaf ipv6-forwarding {
      type enumeration {
        enum unknown {
          value -1;
          description
            "Unknown state.";
        }
        enum off {
          value 0;
          description
            "IPv6 forwarding disabled.";
        }
        enum on {
          value 1;
          description
            "IPv6 forwarding enabled.";
        }
      }
      description
        "IPv6 forwarding status.";
    }
    leaf workqueue-hold-timer {
      type uint32 {
        range "0..10000";
      }
      units "milliseconds";
      default "10";
      description
        "Work-queue processing hold timer, in milliseconds.";
    }
    leaf zapi-packets {
      type uint32 {
        range "1..10000";
      }
      default "1000";
      description
        "Number of ZAPI packets to process before relinquishing
         the main thread.";
    }
    container import-kernel-table {
      description
        "Parameters to use when importing IPv4 routes from a non-main kernel
         routing table.";
      leaf table-id {
        type uint32 {
          range "1..252";
        }
        description
          "The kernel table id.";
      }
      leaf distance {
        type uint32 {
          range "1..255";
        }
        default "15";
        description
          "The admin distance to use for imported routes.";
      }
      leaf route-map {
        type frr-route-map:route-map-ref;
        description
          "A route-map to filter imported routes.";
      }
    }
    leaf allow-external-route-update {
      type empty;
      description
        "Allow FRR-controlled routes to be overwritten by external processes";
    }
    leaf dplane-queue-limit {
      type uint32 {
        range "0..10000";
      }
      default "200";
      description
        "Limit on the number of updates queued to the dataplane subsystem.";
    }
    leaf ptm-enable {
      if-feature ptm-bfd;
      type boolean;
      default "false";
      description
        "Enable PTM globally.";
    }
    leaf route-map-delay {
      type uint32 {
        range "0..600";
      }
      units "seconds";
      default "5";
      description
        "Time to wait before route-map updates are processed.";
    }
    /*
     * Debug options
     */
    container debugs {
      uses zebra-debugs;
    }
    /* End of debugs */
    /*
     * End of configuration attributes
     */
    /*
     * Operational data.
     */
    container state {
      config false;
      description
        "Operational data.";
    }
    // End of operational / state container
  }
}
mgmt_history_read_cmt_record_indexmgmt_history_dump_cmt_record_indexmgmt_txn_cfg_batch_allocmgmt_vty_initfe_adapter_send_session_replymgmt_try_move_commit_to_next_phasemgmt_txn_send_commit_cfg_replymgmt_txn_create_config_batchesmgmt_txn_unlockmgmt_txn_lockmgmt_config_read_inERROR: Could not access datastore!
Could not open file pointed by filepath %s
ERROR: Could not access the '%s' datastore!
ERROR: Could not access Candidate datastore!
%s: no connection to front-end server, retry in 1sTXN: %s: %s:%d --> Lock %s txn-id: %llu refcnt: %dTXN: %s: %s:%d --> Unlock %s txn-id: %llu refcnt: %dTXN: %s: Deleted %s txn-id: %llu session-id: %lluTXN: %s: txn-id: %llu, Phase '%s'TXN: %s: Move entire txn-id: %llu to phase '%s'Failed to open commit history %pSQq for writing: %mFailed to write full commit history, removing file%s: ERROR: Failed to send COMMIT-CONFIG-REPLY txn-id: %llu session-id: %llu%s: ERROR: Failed to send SET-CONFIG-REPLY txn-id: %llu session-id: %llu%s: ERROR: Failed to send EDIT-REPLY txn-id: %llu session-id: %lluSource DS cannot be any other than CANDIDATE!Destination DS cannot be any other than RUNNING!No such destination datastore!Unable to retrieve Commit DS Config Tree!No changes found to be committed!Internal error! Could not get Xpath from Ds node!TXN: %s: XPATH: %s, Value: '%s'TXN: %s:  -- %s, batch item:%dTXN: %s: Daemons interested in XPATH are not currently connected: %sNo connected daemons interested in changesFailed to open commit history %pSQq for reading: %mCommit in index, but file %s missingMore records found in commit history file %pSQq than expectedFE-ADAPTER: %s: Sending SESSION_REPLY message to MGMTD Frontend client '%s'__func__, txn->txn_id, mgmt_txn_commit_phase_str(txn)__func__, adapter->name, (int)batch->num_cfg_data__func__, xpath, value ? value : "NIL"__func__, mgmt_txn_type2str((*txn)->type), (*txn)->txn_id, (*txn)->session_id__func__, file, line, mgmt_txn_type2str((*txn)->type), (*txn)->txn_id, (*txn)->refcount__func__, file, line, mgmt_txn_type2str(txn->type), txn->txn_id, txn->refcountShow running system information
Debugging functions
MGMT Information
Management Daemon (MGMTD) information
Reset the Performance measurement statistics
mgmt_reset_performance_stats_cmd[no] mgmt performance-measurementNegate a command or set its defaults
Management Daemon (MGMTD) information
Enable performance measurement
mgmt_performance_measurement_cmd[no$no] debug mgmt {backend$be|datastore$ds|frontend$fe|transaction$txn}Negate a command or set its defaults
Debugging functions
Management Daemon (MGMTD) information
Backend debug
Datastore debug
Frontend debug
Transaction debug
mgmt rollback <commit-id WORD$commit | last [(1-10)]$last>Management Daemon (MGMTD) information
Rollback commits
Rollback to commit ID
Commit-ID
Rollbak n commits
Number of commits
mgmt save-config <candidate|running>$dsname WORD$filepathManagement Daemon (MGMTD) information
Save configuration from datastore
Candidate datastore
Running datastore
Full path of the file
mgmt load-config WORD$filepath <merge|replace>$typeManagement Daemon (MGMTD) information
Load configuration onto Candidate Datastore
Full path of the file
Merge configuration with contents of Candidate Datastore
Replace the existing contents of Candidate datastore
mgmt rpc XPATH [json|xml]$fmt [DATA]Management Daemon (MGMTD) information
Invoke RPC
XPath expression specifying the YANG data path
JSON input format (default)
XML input format
Input data tree
mgmt edit {create|delete|merge|replace|remove}$op XPATH [json|xml]$fmt [lock$lock] [commit$commit] [DATA]Management Daemon (MGMTD) information
Edit configuration data
Create data
Delete data
Merge data
Replace data
Remove data
XPath expression specifying the YANG data path
JSON input format (default)
XML input format
Lock the datastores automatically
Commit the changes automatically
Data tree
mgmt replace-config WORD$path VALUEManagement Daemon (MGMTD) information
Replace configuration data
XPath expression specifying the YANG data path
Value of the data to set
Management Daemon (MGMTD) information
Remove configuration data
XPath expression specifying the YANG data path
Management Daemon (MGMTD) information
Delete configuration data
XPath expression specifying the YANG data path
mgmt set-config WORD$path VALUEManagement Daemon (MGMTD) information
Set configuration data
XPath expression specifying the YANG data path
Value of the data to set
mgmt create-config WORD$path VALUEManagement Daemon (MGMTD) information
Create configuration data
XPath expression specifying the YANG data path
Value of the data to create
mgmt commit <check|apply|abort>$typeManagement Daemon (MGMTD) information
Commit action
Validate the set of config commands
Validate and apply the set of config commands
Abort and drop the set of config commands recently added
Show running system information
Management Daemon (MGMTD) information
Show commit history
show mgmt yang-xpath-subscription WORD$pathShow running system information
Management Daemon (MGMTD) information
Get YANG Backend Subscription
XPath expression specifying the YANG data path
show mgmt datastore-contents [candidate|operational|running]$dsname [xpath WORD$path] [file WORD$filepath] <json|xml>$fmtShow running system information
Management Daemon (MGMTD) information
Get Datastore contents from a specific datastore
Candidate datastore (default)
Operational datastore
Running datastore
XPath expression specifying the YANG data path
XPath string
Dump the contents to a file
Full path of the file
json output
xml output
show mgmt get-data WORD$path [datastore <candidate|running|operational>$ds] [with-config|only-config]$content [exact]$exact [with-defaults <trim|all-tag|all>$wd] [json|xml]$fmtShow running system information
Management Daemon (MGMTD) information
Get a data from the operational datastore
XPath expression specifying the YANG data root
Specify datastore to get data from (operational by default)
Candidate datastore
Running datastore
Operational datastore
Include "config true" data
Get only "config true" data
Get exact node instead of the whole data tree
Configure 'with-defaults' mode per RFC 6243 ("explicit" mode by default)
Use "trim" mode
Use "report-all-tagged" mode
Use "report-all" mode
JSON output format
XML output format
show mgmt get-config [candidate|operational|running]$dsname WORD$pathShow running system information
Management Daemon (MGMTD) information
Get configuration data from a specific configuration datastore
Candidate datastore (default)
Operational datastore
Running datastore
XPath expression specifying the YANG data path
show mgmt datastore [all|candidate|operational|running]$dsnameShow running system information
Management Daemon (MGMTD) information
MGMTD Datastore information
All datastores (default)
Candidate datastore
Operational datastore
Running datastore
Show running system information
Management Daemon (MGMTD) information
MGMTD Transaction information
Display all Transactions
show mgmt frontend-adapter all [detail$detail]Show running system information
Management Daemon (MGMTD) information
MGMTD Frontend Adapter information
Display all Frontend Adapters
Display more details
show mgmt backend-yang-xpath-registryShow running system information
Management Daemon (MGMTD) information
Backend Adapter YANG Xpath Registry
Show running system information
Management Daemon (MGMTD) information
MGMTD Backend Adapter information
Display all Backend Adapters
;�����(���P��h������(��X��t!H���
X��x��$���@!���T!8��(��8��H��X�����x��8��l���������������,h�X�����H��(�	��L	h���|	����	�����	h���
����(
X���\
�����
����
X����
�����
����
��(��P���t������������8���x������$���XH���x���������������
��(
h��X
���
h���
�
���
�
���
��� ���P���|��������������(��LH��`����X������X��� ��,� ��L�"��p�"���$����$����$����$��H&��<X&��PX'����(����)����*���+��PH.��|�/���(0����0��(1��<�;��l�<����<����=����=���8>���@��4�@��ThA����A����B���hC��,(K��\XL���P����P���XQ��8S��,hT��X�T���hU����U����U����V���W��@[��pX\����^���_����`��$8a��Le��|g���l���xn��o��0�o��X�q���8r����r���8s����u��hw��D(y��t�z���8��x���0x���hh����x�������H����x��������(���(x���X�������������h���XX��������������(���X����������� ��0 ���p ���� ���� ��� H��� ���!X���!����!8���!�$"8�`"X��"���"���"(�#��(#��P#��#���#���#���$���8$zRx� ��&D$4����
FJw�?:*3$"\���t���
������������	����CE�H
p
A$�����A�C
I����
J0l���A�C
B�E�F��t
KF
A0D����A�E
D��G��D�x
Cn0xd��5A�C
B�I���D��
ID�p����������� ����E�F
�
A(���&A�C
B�J�M���
H(8���E�C
F�L
NE
C0d�VA�J
D��F��b
I�
A,�4�?A�Q
s
Kq
Gp
H,�D�=A�C
D��F�E�H��
I,�T��A�C
I������
F,(��A�E
D��O����
C,Xd��A�C
D��O���
G0����A�C
B�G�E�J�D�5
K,�P��A�C
B�E�J�H���
F(����E�J
F���D�r
AT�FE�u
04��E�C
D��H�>
Fl
D(h��A�C
P������
H�h������`�>���'���8E�J
]��OE�C
F4$��N�C
C��r
Ji
GJ��� \���WE�C
E�I ����
E�C
E��
A�����5�$����0���4a�N
�T���4a�N
(x����E�C
E�W
DA
G00����A�C
B�E�E�D�r
Jz$dh���E�C
B�I�z
C�����!����#$�����
E�C
L����
I$����E�C
I����
I,����kE�C
H����K��
C,4���YE�G
B�N��J�K��
G(d����E�C
B�D�[
WM �|���]E�L
B�E0�����YE�C
M������
FA
G���,���E�C
D��M�E�G��
C,,���E�C
B�E�E�E�D��
A(\����E�C
D��J�D��
CD�4���E�C
M������
B@
H�
O�
I����F���	,���E�C
C��q
Dm
A,(	���E�C
Y������
AX	�
��,l	�
���E�C
H����H�q
G�	P��p(�	����E�C
I������
H,�	@
��;E�C
M������
I(
P��wE�L
H����H�Q8
���E�F
H X
����E�L
C��z|
��E�F
H0�
��aE�C
B�K���K��
J��
L����
���E�C
U���,���iE�C
M�����C
AH��	,\���E�C
C��q
D[
A$����TE�C
T���
C4���E�J
D��G��H��
LB
A4�����E�J
D��E�E�H��
Eb
A4$����E�J
D��G��H��
Gb
A(\p��vA�C
G�����
DP����`[�C
H����H��E������H������S
�B�B�B�B�A�L ����yE�K
\
D 
,��E�G
m
A $
���|E�G
j
A,H
����
E�C
B�Q����e
E(x
�(���E�C
M�����
D�
�(���
)����
�)��E�F
H$�
�)��`E�E
B�U
Gg((*���E�H
D��U��t
F@�,��,E�C
B�],`�,��pE�C
B�F��j
Fc
E��,��*E�S
F0��,���E�L
D��L����
Ad(��-���E�C
G�����
AL�� $��#,84.���E�C
B�N�����
F h�5��(E�C
�
H0��6���E�C
M�����)
A~
E �L:���E�C
E�Y
J$��:���E�H
C���
A(P;���A�C
D��F��
D(8=��%A�C
M������
J$d>��qE�C
F�g
Kp �`>��|E�J
C��e��>��$��>��FE�C
E�g
DI,��>���E�J
B�N�����
H,�?���E�J
F���J���
D,L`@��aE�J
H����K��
G,|�C��<E�C
D��E�O�P��
D,��D��3A�C
F���E�K��
A$��F���E�C
D��L
H(G��xA�C
I������
G$0lH���E�C
I���a
N,X�H���E�F
H����N��
E,��L���E�I
P���R��x
H,�TN���E�C
P�����D
D,�$S��iE�H
F���F���
A dU���A�C
E�U
B$<�U��qE�C
F�g
Kp$d8V��E�J
C���
A� X���E�C
x��X��_E�S
$��X���E�C
F�i
IM,�LY��eE�F
D��R����
J, �[���E�F
D��R����
A,P]���E�F
F���K���
G,��^��dE�F
B�L��W��#
E8��_���E�C
D��I�E�K�-
F
F� ���
������,0d��5E�C
h������
E4<@f���E�C
F���T��0
F~
ELtj���E�C
B�I���K��
J�
K
Iq
G�
E�U���
������<�����
E�C
B�Q����#
BP
Hf
J,$X���E�H
B�X����J
G,T8���E�H
B�X����J
G`�(����
E�C
B�E�L���3
J
M�
I�
Jr
A�
HJ
N(�����iE�L
H����H�C����E�F
H,4����OE�J
F���I�G��
A8d����A�K
F���E��
D}
Ko
A4�|���dE�C
M������
G�
EW0�����oE�H
M������
AW
I �hE�C
E�V00L���CE�F
D��I�H�F�,d����E�C
M������
Dl4�ȡ���E�C
M�����&
E\
D4�@����E�C
M�����&
E\
D,����E�C
M������
El,4����E�C
M������
El4dx����E�C
M�����&
E\
D<��QE�C
M�����`
AP
A}
D,�����E�C
M�����j
A,��E�C
P������
F<<���E�C
M������
B<
Dd
A,| ���A�C
D��L����
F����<E�E
B�o�0��� �,���@E�J
C��m H���DE�C
B�5 (t����E�F
�
AL�����`l���iE�J
U�ܸ���8�ȷ��zE�C
M������
H}
Kl
A,����`E�C
M������
D,<����E�C
M�����~
El80ܽ��#E�C
M�����$
GT
Dl
Dl�E�F
H,���E�C
M�����?
D,�0����E�C
M�����X
C ����sE�C
J
Nf ���a�T
F
E$4����E�C
C��5
A,\0���E�C
D��D�c
M
(�����E�C
g����
E(�����E�C
K�����
F,����|E�C
h�����P
A,���E�C
e�����s
H,D����E�C
D��L�E�D��
D�68�69P:`4�4:��	>g��Rg�>g��e��>g��Zg��>g��bg��>g��wg��>g���g�X�g���g�g�g�g�ghh��:hKhXh�khh�g{hKhkhh�g{hKhh�hkh{h:hXhKh�h�h�h�h�h�BJ
i���h���l>g�(�i g>g��5i�>g0�h�8��>g0��x�@>g0����
>g0����
>g`�0�Ц`�
>g`����
>g`���Ц �
>g`�������
>g��X��z
>g��P��t
>g���Ц@f
>g����R
>g��>iNi�F
>g��x���A
>g��8����=
>g��Rg�
>g �`i�	>g��jii`�	>g�������	>g��Ȍ�� c	>g���e���3	>g���ا�	>g@���ا@	>g@��ا��>gp��(���>gp�P���>gp�����>g@�����>g@��i	�>g����(�`	�>g��P��i��>g���k�	b>g��H��� 
C>g�� � ��
5>g����P��

>g����5i��>g`����>g`��i��>gp�(��>gp��i�i�>gp�jj�>gp�/jKj�>gp�_jxj��>gp��j@>g�@qP���>g �H����>g �Ze��`�>g ������>g@����j 
�>g@�X����>g@��j��>g@�8��
�>g@�Ȃh���>g@��e�
t>g`�X~���f>g`��j�c>g`�8�@I>g��0~�j�>>g���}�5>g���}X�`�>g��Py����>g������>g������>g���i��>g���x����>g���e �>g��H�i��>g��ج�>g���e�i>g����i�f>g�����e>g���e�O>g�ȅ �@6>g ��P��>g@��pi��>g@�����>g@��e�>g`�h���`�>g`� ����v>g`�Ȉح�q>g`�0��p>g`�X��E>g`��� ?>g`������<>g`��e�W>g����U>g����H���>g�����%>g����h�@>g��X����>g�� ���>g�����`�>g��������>g��P��� �>g���p���>g��@p���>g���o�@�>g���o���>g��`o����k���k���k���k�M�k���k�Q�k���k0�k����Q�k ��k�M�k ��k`&�g�����k���g�P�H���g@�l��g@��k ��g �@}����g@�0u�i�R�g`�hu�@I�g`�}���@�g`�	l�;�g`�l�*�g��7l��g��Hl��g��p�����g�� ���`��g�����g�g��@�8��/�g��l�+�g���k ��g���������g���p����g�����@��g�ȑ�����g�[l���g����$�g �8���`�g �p�����g ��k�}�g`��8��n�g`���_�g`��k�]�g`��k ��g��h�8����g�� �8����g���k���g���k���g����0�@ ��g ��wl� ��g �ؓ��![�g`�0���`!��g������!��g��p� � "��g�� ����"��g���h��"��g���� �@#��g��P����#��g�����$��g���0�`$�g����`��$�g��x��l %�g��0��l�%k�g���tH��%c�g��ht��@&B�g���s��&;�g��xs��'F�g ���i�>�gP��l`'7�gP���i�'��gp�0s����gp��g (��g���r����g���g!�g��8��l�g���lm�(��g���r��v�g���g�(g�g��0rX����g����@)l�g��v���)g�g��v�*Y�g0��q��`*Q�g0��q���*L�g0�hq� +�amP�`{���+�amP��a|m�+amp��{��@,amp��{���,�amp��{ ���amp��m��am�P�-�am���u�i�wam����`-Bam��{���-Aam���z� .@am���z���.?am��xz��.9am��Pz�m����@/2am��(z�m�/+am��z�m�����0$am���y�m��`� ��`0am���y5i�0]am �8{���Sam �l�@am@�7l�am`�p� 1'am`������1�am�(��m�1�am���5i@2�am0�h����2�am0�О�i3�am0����`3�am0�`���3�am0�0�� 4�amP�p���3am���m�m�4�am������4am��@���@5am�������5am���� �6�am�����i`6�am�������6am��`�p� 7am�� ��l�7�am��؟�l�7|am���x��@8iam�@x���8Ram0�x��9�am`�P��i��am���l`9vam�� ��i�9�Mn���w`n :tMn��hwpn�oMn����:jMn���`��:�Mn��0w~n@;ZMn�Hv�n�;RMn�r`|m�NMn�8�<9Mn�v`�`<.Mn��u�n�,Mn��n��Mn(��k�<�Mn(�pv����Mn���k��Mn���k��Mn������Mn��(��YMn@�� =SMn@��`P��nS�nZoson�q
i��;o�W
i��Go�BV
i���e��@C8
i���`���
i����g��<m�=>g�;������;`�����;������; �����;������;������;������;@�����;������;�����;`�����;������; �����;������;������;@�����;������;�����;`�����;������; �����;������;������;@�����;������;�����;`��II�g<�B�i J��k`;@BH��J��k`;BS��Jx�k`;�AH�@K��k�;�>���K��k�;�>H�Ld>g <�>�B`LI>g <`>�B�L�>gP<�?�� M�>gP<x?���M�>gP<(?���B>g�;�i�M�>gp<hA|m@N�>gp<HAC�N�>gp<(A@CO�>g�<(>hC`Oz>g�<�=�C�w>g�<j��Op>g�<�=D��`D�/��W�������D�EW����(EPEP>�EH�����E8F >�c��$��FG�</���A��G�G7O����d�`H�H@:u������pI�I &��+����8J�J�!��������K�K ����������L����8�P��L�m������hM�M@�������N8N���������N�N��������Op<8���O�P@Pp9b����z��PXQ�3��������RXS@*��N�����U�U (��:�����VW�f�o��#�0��W@J�b��\�HXxX0�j�;����Y@Y�|��/�������Y{��"�������;!�5�����<!�5� P����<�=5i����
�
�
�
� 
PX��(�����o�H&�
� �� B��	���o���o�A���o�o"?���oL�0 @ P ` p � � � � � � � � !! !0!@!P!`!p!�!�!�!�!�!�!�!�!"" "0"@"P"`"p"�"�"�"�"�"�"�"�"## #0#@#P#`#p#�#�#�#�#�#�#�#�#$$ $0$@$P$`$p$�$�$�$�$�$�$�$�$%% %0%@%P%`%p%�%�%�%�%�%�%�%�%&& &0&@&P&`&p&�&�&�&�&�&�&�&�&'' '0'@'P'`'p'�'�'�'�'�'�'�'�'(( (0(@(P(`(p(�(�(�(�(�(�(�(�()) )0)@)P)`)p)�)�)�)�)�)�)�)�)** *��������(��h���М0�Л����P��Кx�8��Ȍ�e��������P�H� �����@qH�Ze���X�ȂX~0~�}�}Py�xH���ȅ��ph� �Ȉ������X� ����P��p@p�o�o`o���P�@}0uhu}p� ��@������ȑ��8�p��h� ����ؓ0���p� ����P������x�0��tht�sxs��0s�r�r0r�v�v�q�qhq`{�a�{�{�{�u{�z�zxzPz(zz�y�y8{��(���h�О��`�0�p��@���������`� �؟�x@xxP� ��whw�`0wHvr`v�upv�` H �h�h�h0Y
�:p�p�@��e�h�`\kDm	n1n��g�g��=n�n�n�n�n=n�n�S^�e�jk
kk0kFksk�k�k&l3m�m%n����ho�>?
$o >�=���B@BB�A�>�>�>`>�?x?(?hAHA(A(>�=�=�=�����������g���������g������ ��������`h�h������ ������������h������������`�hc��@0$�?����00��� �`���� �`���� �`���� �`���� ���`���� �`���� �`���� �`���� �`���� �`���� �`����� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`�@��������� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`���� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`���@��� �`����� �`����� �`����� �`����� �`�����`��� ����� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`����� �`��������`�@��������� �`����� �`����� ���`����� �`����� � �`����� �`����� �`����� �`����� �`����� �`����� �`�����H����h���(�����H����h���(�����H����h��(������@�a511ab91c587d42aff963371c75d7ea8821b8a.debug��E�.shstrtab.interp.note.gnu.property.note.gnu.build-id.note.ABI-tag.note.FRR.gnu.hash.dynsym.dynstr.gnu.version.gnu.version_r.rela.dyn.rela.plt.init.plt.got.plt.sec.text.fini.rodata.eh_frame_hdr.eh_frame.init_array.fini_array.data.rel.ro.dynamic.dataxref_array.bss.gnu_debuglink880&hh$9�� G��(Q���o��[��`cH&H&�k���o"?"?�x���o�A�Ap� B B���B���  �    
�0*0*�@*@*
�@4@4$�PXPX
�``6� �8Z8Z��0`0`t�����(����������0[ ���0� � ��
��S �S�Cp
 ^Nx #N4LN2

Youez - 2016 - github.com/yon3zu
LinuXploit