This file lists functions and variables which were part of l3kernel but which are either deprecated or which have been removed entirely. The file is split into two parts. The first part lists functions which are deprecated but are still currently included in the extracted files. The second part lists functions which have been removed from the distribution entirely. Functions which were added with 'experimental' status only are not listed. Deprecated functions and variables ================================== These functions are deprecated and should be removed from packages. They will be removed from the sources at the end of the given year. -------------------------------------- Function Expires end -------------------------------------- \c_minus_one 2018 \box_resize:cnn 2018 \box_resize:Nnn 2018 \box_use_clear:c 2018 \box_use_clear:N 2018 \file_add_path:nN 2018 \file_if_exist_input:nT 2017 \file_if_exist_input:nTF 2017 \file_list: 2018 \file_path_include:n 2018 \file_path_remove:n 2018 \g_file_current_name_tl 2018 \ior_get_str:NN 2017 \ior_list_streams: 2018 \ior_log_streams: 2018 \iow_list_streams: 2018 \iow_log_streams: 2018 \sort_ordered: 2018 \sort_reversed: 2018 \tl_to_lowercase:n 2017 \tl_to_uppercase:n 2017 \token_new:Nn 2018 [fp function] round+ 2017 [fp function] round- 2017 [fp function] round0 2017 --------------------------------------- Removed functions and variables =============================== The 'Date removed' column details when the functions were removed from the sources. ---------------------------------------------------------- Function Date removed ---------------------------------------------------------- \c_active_char_token 2011-09-08 \c_alignment_tab_token 2011-09-08 \c_empty_toks 2011-09-08 \c_job_name_tl 2017-01-01 \c_keys_code_root_tl 2013-01-08 \c_letter_token 2011-09-08 \c_luatex_is_engine_bool 2011-12-30 \c_math_shift_token 2011-09-08 \c_other_char_token 2011-09-08 \c_pdftex_is_engine_bool 2011-12-30 \c_string_cctab 2012-06-30 \c_undefined_fp 2014-05-28 \c_xetex_is_engine_bool 2011-12-30 \char_make_active:N 2011-09-08 \char_make_active:n 2011-09-08 \char_make_alignment_tab:N 2011-09-08 \char_make_alignment_tab:n 2011-09-08 \char_make_begin_group:N 2011-09-08 \char_make_begin_group:n 2011-09-08 \char_make_comment:N 2011-09-08 \char_make_comment:n 2011-09-08 \char_make_end_group:N 2011-09-08 \char_make_end_group:n 2011-09-08 \char_make_end_line:N 2011-09-08 \char_make_end_line:n 2011-09-08 \char_make_escape:N 2011-09-08 \char_make_escape:n 2011-09-08 \char_make_ignore:N 2011-09-08 \char_make_ignore:n 2011-09-08 \char_make_invalid:N 2011-09-08 \char_make_invalid:n 2011-09-08 \char_make_letter:N 2011-09-08 \char_make_letter:n 2011-09-08 \char_make_math_shift:N 2011-09-08 \char_make_math_shift:n 2011-09-08 \char_make_math_subscript:N 2011-09-08 \char_make_math_subscript:n 2011-09-08 \char_make_math_superscript:N 2011-09-08 \char_make_math_superscript:n 2011-09-08 \char_make_other:N 2011-09-08 \char_make_other:n 2011-09-08 \char_make_parameter:N 2011-09-08 \char_make_parameter:n 2011-09-08 \char_make_space:N 2011-09-08 \char_make_space:n 2011-09-08 \char_set_catcode:w 2011-09-08 \char_set_lccode:w 2011-09-08 \char_set_mathcode:w 2011-09-08 \char_set_sfcode:w 2011-09-08 \char_set_uccode:w 2011-09-08 \char_show_value_catcode:w 2011-09-08 \char_show_value_lccode:w 2011-09-08 \char_show_value_mathcode:w 2011-09-08 \char_show_value_sfcode:w 2011-09-08 \char_show_value_uccode:w 2011-09-08 \char_value_catcode:w 2011-09-08 \char_value_lccode:w 2011-09-08 \char_value_mathcode:w 2011-09-08 \char_value_sfcode:w 2011-09-08 \char_value_uccode:w 2011-09-08 \chk_if_free_cs:N 2013-01-08 \clist_display:c 2011-09-08 \clist_display:N 2011-09-08 \clist_gremove_element:Nn 2011-09-08 \clist_gtrim_spaces:c 2011-12-20 \clist_gtrim_spaces:N 2011-12-20 \clist_if_eq_p:cc 2013-01-08 \clist_if_eq:ccF 2013-01-08 \clist_if_eq:ccT 2013-01-08 \clist_if_eq:ccTF 2013-01-08 \clist_if_eq_p:cN 2013-01-08 \clist_if_eq:cNF 2013-01-08 \clist_if_eq:cNT 2013-01-08 \clist_if_eq:cNTF 2013-01-08 \clist_if_eq_p:Nc 2013-01-08 \clist_if_eq:NcF 2013-01-08 \clist_if_eq:NcT 2013-01-08 \clist_if_eq:NcTF 2013-01-08 \clist_length:c 2013-01-08 \clist_length:N 2013-01-08 \clist_length:n 2013-01-08 \clist_remove_element:Nn 2011-09-08 \clist_top:cN 2011-09-08 \clist_trim_spaces:c 2011-12-20 \clist_trim_spaces:N 2011-12-20 \clist_use:c 2013-01-08 \clist_use:N 2013-01-08 \cs_gnew_eq:cc 2011-09-08 \cs_gnew_eq:cN 2011-09-08 \cs_gnew_eq:Nc 2011-09-08 \cs_gnew_nopar:cpn 2011-09-08 \cs_gnew_nopar:cpx 2011-09-08 \cs_gnew_nopar:Npn 2011-09-08 \cs_gnew_nopar:Npx 2011-09-08 \cs_gnew_protected_nopar:cpn 2011-09-08 \cs_gnew_protected_nopar:cpx 2011-09-08 \cs_gnew_protected_nopar:Npn 2011-09-08 \cs_gnew_protected_nopar:Npx 2011-09-08 \cs_gnew_protected:cpn 2011-09-08 \cs_gnew_protected:cpx 2011-09-08 \cs_gnew_protected:Npn 2011-09-08 \cs_gnew_protected:Npx 2011-09-08 \cs_gnew:cpn 2011-09-08 \cs_gnew:cpx 2011-09-08 \cs_gnew:Npn 2011-09-08 \cs_gnew:Npx 2011-09-08 \cs_gundefine:c 2011-09-08 \cs_gundefine:N 2011-09-08 \cs_set_eq:NwN 2011-12-30 \dim_case:nnn 2015-07-14 \dim_eval:w 2013-01-08 \dim_eval_end: 2013-01-08 \dim_gset_max:cn 2013-01-08 \dim_gset_max:Nn 2013-01-08 \dim_gset_min:cn 2013-01-08 \dim_gset_min:Nn 2013-01-08 \dim_set_max:cn 2013-01-08 \dim_set_max:Nn 2013-01-08 \dim_set_min:cn 2013-01-08 \dim_set_min:Nn 2013-01-08 \ExplSyntaxNamesOff 2013-01-08 \ExplSyntaxNamesOn 2013-01-08 \fp_abs:c 2014-05-28 \fp_abs:N 2014-05-28 \fp_compare:NNNF 2014-05-28 \fp_compare:NNNT 2014-05-28 \fp_compare:NNNTF 2014-05-28 \fp_cos:cn 2014-05-28 \fp_cos:Nn 2014-05-28 \fp_div:cn 2014-05-28 \fp_div:Nn 2014-05-28 \fp_exp:cn 2014-05-28 \fp_exp:Nn 2014-05-28 \fp_gabs:c 2014-05-28 \fp_gabs:N 2014-05-28 \fp_gcos:cn 2014-05-28 \fp_gcos:Nn 2014-05-28 \fp_gdiv:cn 2014-05-28 \fp_gdiv:Nn 2014-05-28 \fp_gexp:cn 2014-05-28 \fp_gexp:Nn 2014-05-28 \fp_gln:cn 2014-05-28 \fp_gln:Nn 2014-05-28 \fp_gmul:cn 2014-05-28 \fp_gmul:Nn 2014-05-28 \fp_gneg:c 2014-05-28 \fp_gneg:N 2014-05-28 \fp_gpow:cn 2014-05-28 \fp_gpow:Nn 2014-05-28 \fp_ground_figures:cn 2014-05-28 \fp_ground_figures:Nn 2014-05-28 \fp_ground_places:cn 2014-05-28 \fp_ground_places:Nn 2014-05-28 \fp_gsin:cn 2014-05-28 \fp_gsin:Nn 2014-05-28 \fp_gtan:cn 2014-05-28 \fp_gtan:Nn 2014-05-28 \fp_if_undefined_p:N 2014-05-28 \fp_if_undefined:NF 2014-05-28 \fp_if_undefined:NT 2014-05-28 \fp_if_undefined:NTF 2014-05-28 \fp_if_zero_p:N 2014-05-28 \fp_if_zero:NF 2014-05-28 \fp_if_zero:NT 2014-05-28 \fp_if_zero:NTF 2014-05-28 \fp_ln:cn 2014-05-28 \fp_ln:Nn 2014-05-28 \fp_mul:cn 2014-05-28 \fp_mul:Nn 2014-05-28 \fp_neg:c 2014-05-28 \fp_neg:N 2014-05-28 \fp_pow:cn 2014-05-28 \fp_pow:Nn 2014-05-28 \fp_round_figures:cn 2014-05-28 \fp_round_figures:Nn 2014-05-28 \fp_round_places:cn 2014-05-28 \fp_round_places:Nn 2014-05-28 \fp_sin:cn 2014-05-28 \fp_sin:Nn 2014-05-28 \fp_tan:cn 2014-05-28 \fp_tan:Nn 2014-05-28 \g_tmpa_toks 2011-09-08 \g_tmpb_toks 2011-09-08 \g_tmpc_toks 2011-09-08 \group_execute_after:N 2011-09-08 \hbox_gset_inline_begin:c 2014-08-09 \hbox_gset_inline_begin:N 2014-08-09 \hbox_gset_inline_end: 2014-08-09 \hbox_set_inline_begin:c 2014-08-09 \hbox_set_inline_begin:N 2014-08-09 \hbox_set_inline_end: 2014-08-09 \if_num:w 2013-01-08 \int_case:nnn 2015-07-14 \int_convert_from_base_ten:nn 2011-11-22 \int_convert_from_symbols:nn 2011-11-22 \int_convert_to_base_ten:nn 2011-11-22 \int_eval:w 2013-01-08 \int_eval_end: 2013-01-08 \int_from_binary:n 2016-01-05 \int_from_hexadecimal:n 2016-01-05 \int_from_octal:n 2016-01-05 \int_to_binary:n 2016-01-05 \int_to_hexadecimal:n 2016-01-05 \int_to_octal:n 2016-01-05 \int_to_symbol:n 2011-11-22 \int_value:w 2013-01-08 \ior_gto:NN 2013-07-28 \ior_open_streams: 2011-09-08 \ior_str_gto:NN 2013-07-28 \ior_str_to:NN 2013-07-28 \ior_to:NN 2013-07-28 \iow_now_buffer_safe:Nn 2011-09-08 \iow_now_buffer_safe:Nx 2011-09-08 \iow_now_when_avail:Nn 2012-06-05 \iow_now_when_avail:Nx 2012-06-05 \iow_open_streams: 2011-09-08 \iow_wrap:xnnnN 2013-01-08 \KV_process_no_space_removal_no_sanitize:NNn 2011-09-08 \KV_process_space_removal_no_sanitize:NNn 2011-09-08 \KV_process_space_removal_sanitize:NNn 2011-09-08 \l_iow_line_length_int 2013-01-08 \l_last_box 2012-05-11 \l_tl_replace_toks 2011-09-08 \l_tmpa_toks 2011-09-08 \l_tmpb_toks 2011-09-08 \l_tmpc_int 2013-01-08 \l_tmpc_toks 2011-09-08 \luatex_if_engine_p: 2017-01-01 \luatex_if_engine:F 2017-01-01 \luatex_if_engine:T 2017-01-01 \luatex_if_engine:TF 2017-01-01 \msg_class_new:nn 2011-09-08 \msg_class_set:nn 2013-01-08 \msg_direct_interrupt:xxxxx 2011-09-08 \msg_direct_log:xx 2011-09-08 \msg_direct_term:xx 2011-09-08 \msg_generic_new:nn 2011-09-08 \msg_generic_new:nnn 2011-09-08 \msg_generic_set:nn 2011-09-08 \msg_generic_set:nnn 2011-09-08 \msg_interrupt:xxx 2013-01-08 \msg_log:x 2013-01-08 \msg_newline: 2013-01-08 \msg_term:x 2013-01-08 \msg_trace:nn 2011-09-08 \msg_trace:nnx 2011-09-08 \msg_trace:nnxx 2011-09-08 \msg_trace:nnxxx 2011-09-08 \msg_trace:nnxxxx 2011-09-08 \msg_two_newlines: 2013-01-08 \pdftex_if_engine_p: 2017-01-01 \pdftex_if_engine:F 2017-01-01 \pdftex_if_engine:T 2017-01-01 \pdftex_if_engine:TF 2017-01-01 \peek_after:NN 2011-09-08 \peek_gafter:NN 2011-09-08 \prg_case_dim:nnn 2013-01-08 \prg_case_int:nnn 2013-01-08 \prg_case_str:nnn 2013-01-08 \prg_case_str:onn 2013-01-08 \prg_case_str:xxn 2013-01-08 \prg_case_tl:cnn 2013-01-08 \prg_case_tl:Nnn 2013-01-08 \prg_new_map_functions:Nn 2011-09-08 \prg_set_map_functions:Nn 2011-09-08 \prg_stepwise_function:nnnN 2013-01-08 \prg_stepwise_inline:nnnn 2013-01-08 \prg_stepwise_variable:nnnNn 2013-01-08 \prop_del:cn 2013-01-08 \prop_del:cV 2013-01-08 \prop_del:Nn 2013-01-08 \prop_del:NV 2013-01-08 \prop_display:c 2011-09-08 \prop_display:N 2011-09-08 \prop_gdel:cn 2013-01-08 \prop_gdel:cV 2013-01-08 \prop_gdel:Nn 2013-01-08 \prop_gdel:NV 2013-01-08 \prop_get:cn 2016-01-05 \prop_get:Nn 2016-01-05 \prop_get_gdel:NnN 2011-09-08 \prop_gget:cnN 2011-09-08 \prop_gget:cVN 2011-09-08 \prop_gget:NnN 2011-09-08 \prop_gget:NVN 2011-09-08 \prop_gput:ccx 2011-09-08 \prop_if_eq_p:cc 2011-09-08 \prop_if_eq_p:cN 2011-09-08 \prop_if_eq_p:Nc 2011-09-08 \prop_if_eq_p:NN 2011-09-08 \prop_if_eq:ccF 2011-09-08 \prop_if_eq:ccT 2011-09-08 \prop_if_eq:ccTF 2011-09-08 \prop_if_eq:cNF 2011-09-08 \prop_if_eq:cNT 2011-09-08 \prop_if_eq:cNTF 2011-09-08 \prop_if_eq:NcF 2011-09-08 \prop_if_eq:NcT 2011-09-08 \prop_if_eq:NcTF 2011-09-08 \prop_if_eq:NNF 2011-09-08 \prop_if_eq:NNT 2011-09-08 \prop_if_eq:NNTF 2011-09-08 \prop_if_in:ccF 2011-09-08 \prop_if_in:ccT 2011-09-08 \prop_if_in:ccTF 2011-09-08 \quark_if_recursion_tail_break:N 2015-07-14 \quark_if_recursion_tail_break:n 2015-07-14 \scan_align_safe_stop: 2017-01-01 \seq_display:c 2011-09-08 \seq_display:N 2011-09-08 \seq_length:c 2013-01-08 \seq_length:N 2013-01-08 \seq_top:cN 2011-09-08 \seq_top:NN 2011-09-08 \seq_use:c 2013-01-08 \seq_use:N 2013-01-08 \skip_if_infinite_glue_p:n 2013-01-08 \skip_if_infinite_glue:nF 2013-01-08 \skip_if_infinite_glue:nT 2013-01-08 \skip_if_infinite_glue:nTF 2013-01-08 \str_case:nnn 2015-07-14 \str_case:onn 2015-07-14 \str_case_x:nnn 2015-07-14 \str_if_eq_p:xx 2013-01-08 \str_if_eq:xxF 2013-01-08 \str_if_eq:xxT 2013-01-08 \str_if_eq:xxTF 2013-01-08 \tl_case:cnn 2015-07-14 \tl_case:Nnn 2015-07-14 \tl_elt_count:c 2011-09-08 \tl_elt_count:n 2011-09-08 \tl_elt_count:N 2011-09-08 \tl_elt_count:o 2011-09-08 \tl_elt_count:V 2011-09-08 \tl_gremove_all_in:cn 2011-09-08 \tl_gremove_all_in:Nn 2011-09-08 \tl_gremove_in:cn 2011-09-08 \tl_gremove_in:Nn 2011-09-08 \tl_greplace_all_in:cnn 2011-09-08 \tl_greplace_all_in:Nnn 2011-09-08 \tl_greplace_in:cnn 2011-09-08 \tl_greplace_in:Nnn 2011-09-08 \tl_gset:Nc 2011-09-08 \tl_head_i:n 2011-09-08 \tl_head_i:w 2011-09-08 \tl_head_iii:f 2011-09-08 \tl_head_iii:n 2011-09-08 \tl_head_iii:w 2011-09-08 \tl_if_empty:xF 2013-01-08 \tl_if_empty:xT 2013-01-08 \tl_if_empty:xTF 2013-01-08 \tl_if_head_group_p:n 2013-01-08 \tl_if_head_group:nF 2013-01-08 \tl_if_head_group:nT 2013-01-08 \tl_if_head_group:nTF 2013-01-08 \tl_if_head_N_type_p:n 2013-01-08 \tl_if_head_N_type:nF 2013-01-08 \tl_if_head_N_type:nT 2013-01-08 \tl_if_head_N_type:nTF 2013-01-08 \tl_if_head_space_p:n 2013-01-08 \tl_if_head_space:nF 2013-01-08 \tl_if_head_space:nT 2013-01-08 \tl_if_head_space:nTF 2013-01-08 \tl_length:c 2013-01-08 \tl_length:n 2013-01-08 \tl_length:N 2013-01-08 \tl_length:o 2013-01-08 \tl_length:V 2013-01-08 \tl_new:cn 2011-09-08 \tl_new:Nn 2011-09-08 \tl_new:Nx 2011-09-08 \tl_remove_all_in:cn 2011-09-08 \tl_remove_all_in:Nn 2011-09-08 \tl_remove_in:cn 2011-09-08 \tl_remove_in:Nn 2011-09-08 \tl_replace_all_in:cnn 2011-09-08 \tl_replace_all_in:Nnn 2011-09-08 \tl_replace_in:cnn 2011-09-08 \tl_replace_in:Nnn 2011-09-08 \tl_set:Nc 2011-09-08 \tl_tail:w 2013-01-08 \token_if_active_char_p:N 2011-09-08 \token_if_active_char:NF 2011-09-08 \token_if_active_char:NT 2011-09-08 \token_if_active_char:NTF 2011-09-08 \token_if_alignment_tab_p:N 2011-09-08 \token_if_alignment_tab:NF 2011-09-08 \token_if_alignment_tab:NT 2011-09-08 \token_if_alignment_tab:NTF 2011-09-08 \token_if_math_shift_p:N 2011-09-08 \token_if_math_shift:NF 2011-09-08 \token_if_math_shift:NT 2011-09-08 \token_if_math_shift:NTF 2011-09-08 \token_if_other_char_p:N 2011-09-08 \token_if_other_char:NF 2011-09-08 \token_if_other_char:NT 2011-09-08 \token_if_other_char:NTF 2011-09-08 \toks_clear:c 2011-09-08 \toks_clear:N 2011-09-08 \toks_gclear:c 2011-09-08 \toks_gclear:N 2011-09-08 \toks_gput_left:cn 2011-09-08 \toks_gput_left:co 2011-09-08 \toks_gput_left:cV 2011-09-08 \toks_gput_left:Nn 2011-09-08 \toks_gput_left:No 2011-09-08 \toks_gput_left:NV 2011-09-08 \toks_gput_left:Nx 2011-09-08 \toks_gput_right:cn 2011-09-08 \toks_gput_right:co 2011-09-08 \toks_gput_right:cV 2011-09-08 \toks_gput_right:Nn 2011-09-08 \toks_gput_right:No 2011-09-08 \toks_gput_right:NV 2011-09-08 \toks_gput_right:Nx 2011-09-08 \toks_gset_eq:cc 2011-09-08 \toks_gset_eq:cN 2011-09-08 \toks_gset_eq:Nc 2011-09-08 \toks_gset_eq:NN 2011-09-08 \toks_gset:cn 2011-09-08 \toks_gset:co 2011-09-08 \toks_gset:cV 2011-09-08 \toks_gset:cx 2011-09-08 \toks_gset:Nn 2011-09-08 \toks_gset:No 2011-09-08 \toks_gset:NV 2011-09-08 \toks_gset:Nx 2011-09-08 \toks_if_empty_p:c 2011-09-08 \toks_if_empty_p:N 2011-09-08 \toks_if_empty:cF 2011-09-08 \toks_if_empty:cT 2011-09-08 \toks_if_empty:cTF 2011-09-08 \toks_if_empty:NF 2011-09-08 \toks_if_empty:NT 2011-09-08 \toks_if_empty:NTF 2011-09-08 \toks_if_eq_p:cc 2011-09-08 \toks_if_eq_p:cN 2011-09-08 \toks_if_eq_p:Nc 2011-09-08 \toks_if_eq_p:NN 2011-09-08 \toks_if_eq:ccF 2011-09-08 \toks_if_eq:ccT 2011-09-08 \toks_if_eq:ccTF 2011-09-08 \toks_if_eq:cNF 2011-09-08 \toks_if_eq:cNT 2011-09-08 \toks_if_eq:cNTF 2011-09-08 \toks_if_eq:NcF 2011-09-08 \toks_if_eq:NcT 2011-09-08 \toks_if_eq:NcTF 2011-09-08 \toks_if_eq:NNF 2011-09-08 \toks_if_eq:NNT 2011-09-08 \toks_if_eq:NNTF 2011-09-08 \toks_new:c 2011-09-08 \toks_new:N 2011-09-08 \toks_put_left:cn 2011-09-08 \toks_put_left:co 2011-09-08 \toks_put_left:cV 2011-09-08 \toks_put_left:Nn 2011-09-08 \toks_put_left:No 2011-09-08 \toks_put_left:NV 2011-09-08 \toks_put_left:Nx 2011-09-08 \toks_put_right:cn 2011-09-08 \toks_put_right:co 2011-09-08 \toks_put_right:cV 2011-09-08 \toks_put_right:Nf 2011-09-08 \toks_put_right:Nn 2011-09-08 \toks_put_right:No 2011-09-08 \toks_put_right:NV 2011-09-08 \toks_put_right:Nx 2011-09-08 \toks_set_eq:cc 2011-09-08 \toks_set_eq:cN 2011-09-08 \toks_set_eq:Nc 2011-09-08 \toks_set_eq:NN 2011-09-08 \toks_set:cf 2011-09-08 \toks_set:cn 2011-09-08 \toks_set:co 2011-09-08 \toks_set:cV 2011-09-08 \toks_set:cv 2011-09-08 \toks_set:cx 2011-09-08 \toks_set:Nf 2011-09-08 \toks_set:Nn 2011-09-08 \toks_set:No 2011-09-08 \toks_set:NV 2011-09-08 \toks_set:Nv 2011-09-08 \toks_set:Nx 2011-09-08 \toks_show:c 2011-09-08 \toks_show:N 2011-09-08 \toks_use_clear:c 2011-09-08 \toks_use_clear:N 2011-09-08 \toks_use_gclear:c 2011-09-08 \toks_use_gclear:N 2011-09-08 \toks_use:c 2011-09-08 \toks_use:N 2011-09-08 \use_i_after_else:nw 2011-12-30 \use_i_after_fi:nw 2011-12-30 \use_i_after_or:nw 2011-12-30 \use_i_after_orelse:nw 2011-12-30 \vbox_gset_inline_begin:c 2014-08-09 \vbox_gset_inline_begin:N 2014-08-09 \vbox_gset_inline_end: 2014-08-09 \vbox_set_inline_begin:c 2014-08-09 \vbox_set_inline_begin:N 2014-08-09 \vbox_set_inline_end: 2014-08-09 \xetex_if_engine_p: 2017-01-01 \xetex_if_engine:F 2017-01-01 \xetex_if_engine:T 2017-01-01 \xetex_if_engine:TF 2017-01-01 [key property] .choice_code:n 2015-07-14 [key property] .choice_code:x 2015-07-14 [key property] .code:x 2013-07-10 [key property] .generate_choices:n 2015-07-14 [key property] .meta:x 2013-07-10 [key property] .value_forbidden: 2017-01-01 [key property] .value_required: 2017-01-01 ----------------------------------------------------------